diff --git a/CHANGELOG.md b/CHANGELOG.md index c40b8a7c..b96fe8b0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,47 @@ # Change log +## Version 0.7.6 (2022/11/09) + +### Translations + +* [3c8d9c2](https://github.com/SamR1/FitTrackee/commit/3c8d9c262358958346125dd286f09ed9881fda4b) - fix api locale file (remove trailing comma) + +### Misc + +* dev dependencies update + + +## Version 0.7.5 (2022/11/09) + +### Bugs Fixed + +* [#264](https://github.com/SamR1/FitTrackee/issues/264) - UI has white and gray background + +### Translations + +* [#266](https://github.com/SamR1/FitTrackee/issues/266) - Translations update from Hosted Weblate (German, thanks to @qwerty287) + + +## Version 0.7.4 (2022/11/05) + +### Bugs Fixed + +* [#260](https://github.com/SamR1/FitTrackee/issues/260) - Files size is not checked in zip archive +* [#261](https://github.com/SamR1/FitTrackee/issues/261) - The API should return an error when the number of files in an archive exceeds the limit + +Note: archive import still needs some improvements (see [#89](https://github.com/SamR1/FitTrackee/issues/89)) + +### Translations + +* [b1536fc](https://github.com/SamR1/FitTrackee/pull/262/commits/b1536fc637649c4c32a88af6d96c131f05bc1742) - fix french translations in administration + +### Documentation + +* [#257](https://github.com/SamR1/FitTrackee/issues/257) - Add client_max_body_size note to example nginx config + +Thanks to @jat255 + + ## Version 0.7.3 (2022/11/01) ### Features and enhancements diff --git a/VERSION b/VERSION index f38fc539..c0062185 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.7.3 +0.7.6 diff --git a/docs/.buildinfo b/docs/.buildinfo index 027b167b..087c12f5 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: 01a21335d6c252b5c95dfc3e08342cc3 +config: 7a319e6b5c7607babcbd1c24c3d01358 tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/docs/_images/fittrackee_screenshot-01.png b/docs/_images/fittrackee_screenshot-01.png index 84ff3912..f076e33a 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 d6ee9be3..f91b97c5 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 a4db44e5..84761f5b 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 5b7c72bf..53338160 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 3ef4608a..418737d0 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 0c1ad133..875261bf 100644 Binary files a/docs/_images/fittrackee_screenshot-06.png and b/docs/_images/fittrackee_screenshot-06.png differ diff --git a/docs/_images/fittrackee_screenshot-07.png b/docs/_images/fittrackee_screenshot-07.png index e0b97bf2..d6b6a50d 100644 Binary files a/docs/_images/fittrackee_screenshot-07.png and b/docs/_images/fittrackee_screenshot-07.png differ diff --git a/docs/_images/fittrackee_screenshot-08.png b/docs/_images/fittrackee_screenshot-08.png index aba6ea64..0b5fa02b 100644 Binary files a/docs/_images/fittrackee_screenshot-08.png and b/docs/_images/fittrackee_screenshot-08.png differ diff --git a/docs/_sources/changelog.md.txt b/docs/_sources/changelog.md.txt index c40b8a7c..b96fe8b0 100644 --- a/docs/_sources/changelog.md.txt +++ b/docs/_sources/changelog.md.txt @@ -1,5 +1,47 @@ # Change log +## Version 0.7.6 (2022/11/09) + +### Translations + +* [3c8d9c2](https://github.com/SamR1/FitTrackee/commit/3c8d9c262358958346125dd286f09ed9881fda4b) - fix api locale file (remove trailing comma) + +### Misc + +* dev dependencies update + + +## Version 0.7.5 (2022/11/09) + +### Bugs Fixed + +* [#264](https://github.com/SamR1/FitTrackee/issues/264) - UI has white and gray background + +### Translations + +* [#266](https://github.com/SamR1/FitTrackee/issues/266) - Translations update from Hosted Weblate (German, thanks to @qwerty287) + + +## Version 0.7.4 (2022/11/05) + +### Bugs Fixed + +* [#260](https://github.com/SamR1/FitTrackee/issues/260) - Files size is not checked in zip archive +* [#261](https://github.com/SamR1/FitTrackee/issues/261) - The API should return an error when the number of files in an archive exceeds the limit + +Note: archive import still needs some improvements (see [#89](https://github.com/SamR1/FitTrackee/issues/89)) + +### Translations + +* [b1536fc](https://github.com/SamR1/FitTrackee/pull/262/commits/b1536fc637649c4c32a88af6d96c131f05bc1742) - fix french translations in administration + +### Documentation + +* [#257](https://github.com/SamR1/FitTrackee/issues/257) - Add client_max_body_size note to example nginx config + +Thanks to @jat255 + + ## Version 0.7.3 (2022/11/01) ### Features and enhancements diff --git a/docs/_sources/features.rst.txt b/docs/_sources/features.rst.txt index 7f17a1f1..01f757a7 100644 --- a/docs/_sources/features.rst.txt +++ b/docs/_sources/features.rst.txt @@ -105,9 +105,9 @@ Administration The following parameters can be set: - active users limit. If 0, registration is enabled (no limit defined) - - maximum size of uploaded files + - maximum size of gpx file (individually uploaded or in a zip archive) (*changed in 0.7.4*) - maximum size of zip archive - - maximum number of files in the zip archive. If an archive contains more files, only the configured number of files is processed, without raising errors. + - maximum number of files in the zip archive (*changed in 0.7.4*) - administrator email for contact (*new in 0.6.0*) .. warning:: diff --git a/docs/_sources/installation.rst.txt b/docs/_sources/installation.rst.txt index 93dd4c9a..694fadc0 100644 --- a/docs/_sources/installation.rst.txt +++ b/docs/_sources/installation.rst.txt @@ -480,13 +480,13 @@ Production environment .. warning:: | Note that FitTrackee is under heavy development, some features may be unstable. -- Download the last release (for now, it is the release v0.7.3): +- Download the last release (for now, it is the release v0.7.6): .. code:: bash - $ wget https://github.com/SamR1/FitTrackee/archive/v0.7.3.tar.gz - $ tar -xzf v0.7.3.tar.gz - $ mv FitTrackee-0.7.3 FitTrackee + $ wget https://github.com/SamR1/FitTrackee/archive/v0.7.6.tar.gz + $ tar -xzf v0.7.6.tar.gz + $ mv FitTrackee-0.7.6 FitTrackee $ cd FitTrackee - Create **.env** from example and update it @@ -606,13 +606,13 @@ Prod environment - Change to the directory where FitTrackee directory is located -- Download the last release (for now, it is the release v0.7.3) and overwrite existing files: +- Download the last release (for now, it is the release v0.7.6) and overwrite existing files: .. code:: bash - $ wget https://github.com/SamR1/FitTrackee/archive/v0.7.3.tar.gz - $ tar -xzf v0.7.3.tar.gz - $ cp -R FitTrackee-0.7.3/* FitTrackee/ + $ wget https://github.com/SamR1/FitTrackee/archive/v0.7.6.tar.gz + $ tar -xzf v0.7.6.tar.gz + $ cp -R FitTrackee-0.7.6/* FitTrackee/ $ cd FitTrackee - Update **.env** if needed (see `Environment variables `__). @@ -733,6 +733,14 @@ Examples (to update depending on your application configuration and given distri ssl_certificate fullchain.pem; ssl_certificate_key privkey.pem; + ## this parameter controls how large of a file can be + ## uploaded, and defaults to 1MB. If you change the FitTrackee + ## settings to allow larger uploads, you'll need to change this + ## setting by uncommenting the line below and setting the size limit + ## you want. Set to "0" to prevent nginx from checking the + ## request body size at all + # client_max_body_size 1m; + location / { proxy_pass http://127.0.0.1:5000; proxy_redirect default; diff --git a/docs/_static/documentation_options.js b/docs/_static/documentation_options.js index 1239c673..c24828c5 100644 --- a/docs/_static/documentation_options.js +++ b/docs/_static/documentation_options.js @@ -1,6 +1,6 @@ var DOCUMENTATION_OPTIONS = { URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'), - VERSION: '0.7.3', + VERSION: '0.7.6', LANGUAGE: 'en', COLLAPSE_INDEX: false, BUILDER: 'html', diff --git a/docs/api/auth.html b/docs/api/auth.html index b79ee8c0..cbfa024e 100644 --- a/docs/api/auth.html +++ b/docs/api/auth.html @@ -5,7 +5,7 @@ - Authentication — FitTrackee 0.7.3 + <title>Authentication — FitTrackee 0.7.6 documentation @@ -42,7 +42,7 @@ FitTrackee - 0.7.3 + 0.7.6 diff --git a/docs/api/configuration.html b/docs/api/configuration.html index ffa4748a..a2ea2914 100644 --- a/docs/api/configuration.html +++ b/docs/api/configuration.html @@ -5,7 +5,7 @@ - Configuration — FitTrackee 0.7.3 + <title>Configuration — FitTrackee 0.7.6 documentation @@ -42,7 +42,7 @@ FitTrackee - 0.7.3 + 0.7.6 @@ -154,7 +154,7 @@ "max_users": 0, "max_zip_file_size": 10485760, "map_attribution": "&copy; <a href=http://www.openstreetmap.org/copyright>OpenStreetMap</a> contributors" - "version": "0.7.3" + "version": "0.7.6" }, "status": "success" } @@ -195,7 +195,7 @@ "max_users": 10, "max_zip_file_size": 10485760, "map_attribution": "&copy; <a href=http://www.openstreetmap.org/copyright>OpenStreetMap</a> contributors" - "version": "0.7.3" + "version": "0.7.6" }, "status": "success" } diff --git a/docs/api/index.html b/docs/api/index.html index b7660fb7..746635d8 100644 --- a/docs/api/index.html +++ b/docs/api/index.html @@ -5,7 +5,7 @@ - API documentation — FitTrackee 0.7.3 + <title>API documentation — FitTrackee 0.7.6 documentation @@ -42,7 +42,7 @@ FitTrackee - 0.7.3 + 0.7.6 diff --git a/docs/api/oauth2.html b/docs/api/oauth2.html index 2a09eee8..e0f119ff 100644 --- a/docs/api/oauth2.html +++ b/docs/api/oauth2.html @@ -5,7 +5,7 @@ - OAuth2 — FitTrackee 0.7.3 + <title>OAuth2 — FitTrackee 0.7.6 documentation @@ -42,7 +42,7 @@ FitTrackee - 0.7.3 + 0.7.6 diff --git a/docs/api/records.html b/docs/api/records.html index 1b7edc00..ca22ecd2 100644 --- a/docs/api/records.html +++ b/docs/api/records.html @@ -5,7 +5,7 @@ - Records — FitTrackee 0.7.3 + <title>Records — FitTrackee 0.7.6 documentation @@ -42,7 +42,7 @@ FitTrackee - 0.7.3 + 0.7.6 diff --git a/docs/api/sports.html b/docs/api/sports.html index b44793dd..dfa41e6b 100644 --- a/docs/api/sports.html +++ b/docs/api/sports.html @@ -5,7 +5,7 @@ - Sports — FitTrackee 0.7.3 + <title>Sports — FitTrackee 0.7.6 documentation @@ -42,7 +42,7 @@ FitTrackee - 0.7.3 + 0.7.6 diff --git a/docs/api/stats.html b/docs/api/stats.html index 51ceebe3..d6004495 100644 --- a/docs/api/stats.html +++ b/docs/api/stats.html @@ -5,7 +5,7 @@ - Statistics — FitTrackee 0.7.3 + <title>Statistics — FitTrackee 0.7.6 documentation @@ -42,7 +42,7 @@ FitTrackee - 0.7.3 + 0.7.6 diff --git a/docs/api/users.html b/docs/api/users.html index fcb34f3e..c66300f7 100644 --- a/docs/api/users.html +++ b/docs/api/users.html @@ -5,7 +5,7 @@ - Users — FitTrackee 0.7.3 + <title>Users — FitTrackee 0.7.6 documentation @@ -42,7 +42,7 @@ FitTrackee - 0.7.3 + 0.7.6 diff --git a/docs/api/workouts.html b/docs/api/workouts.html index 44bdc979..2fde79c1 100644 --- a/docs/api/workouts.html +++ b/docs/api/workouts.html @@ -5,7 +5,7 @@ - Workouts — FitTrackee 0.7.3 + <title>Workouts — FitTrackee 0.7.6 documentation @@ -42,7 +42,7 @@ FitTrackee - 0.7.3 + 0.7.6 diff --git a/docs/apps.html b/docs/apps.html index 87aa5b99..e050849b 100644 --- a/docs/apps.html +++ b/docs/apps.html @@ -5,7 +5,7 @@ - Third-party applications — FitTrackee 0.7.3 + <title>Third-party applications — FitTrackee 0.7.6 documentation @@ -42,7 +42,7 @@ FitTrackee - 0.7.3 + 0.7.6 diff --git a/docs/changelog.html b/docs/changelog.html index 09a8ff7e..2aade233 100644 --- a/docs/changelog.html +++ b/docs/changelog.html @@ -5,7 +5,7 @@ - Change log — FitTrackee 0.7.3 + <title>Change log — FitTrackee 0.7.6 documentation @@ -41,7 +41,7 @@ FitTrackee - 0.7.3 + 0.7.6 @@ -81,331 +81,347 @@ role="menu" aria-labelledby="dLabelLocalToc">
  • Change log
      -
    • Version 0.7.3 (2022/11/01)
        -
      • Features and enhancements
      • -
      • Bugs Fixed
      • +
      • Version 0.7.6 (2022/11/09)
      • -
      • Version 0.7.2 (2022/09/21)
          +
        • Version 0.7.5 (2022/11/09)
        • -
        • Version 0.7.1 (2022/09/21)
            +
          • Version 0.7.4 (2022/11/05) +
          • +
          • Version 0.7.3 (2022/11/01) +
          • +
          • Version 0.7.2 (2022/09/21) +
          • +
          • Version 0.7.1 (2022/09/21)
          • Version 0.7.0 (2022/09/19)
          • Version 0.6.12 (2022/09/14)
          • Version 0.6.11 (2022/07/27)
              -
            • Issues Closed
                -
              • Bugs Fixed
              • +
              • Issues Closed
              • -
              • Pull Requests
                  +
                • Pull Requests
                • Version 0.6.10 (2022/07/13)
                • -
                • Issues Closed
                    -
                  • Bugs Fixed
                  • +
                  • Issues Closed
                  • -
                  • Pull Requests
                  • Version 0.6.9 (2022/07/03)
                      -
                    • Issues Closed
                    • Version 0.6.8 (2022/06/22)
                        -
                      • Issues Closed
                      • Version 0.6.7 (2022/06/11)
                          -
                        • Issues Closed
                        • Version 0.6.6 (2022/05/29)
                        • Version 0.6.5 (2022/04/24)
                            -
                          • Issues Closed
                          • Version 0.6.4 (2022/04/23) -
                          • -
                          • Version 0.6.3 (2022/04/09) -
                          • -
                          • Version 0.6.2 (2022/04/03) -
                          • -
                          • Version 0.6.1 (2022/03/27)
                          • -
                          • Version 0.6.0 (2022/03/27)
                              -
                            • Issues Closed
                                -
                              • Features
                              • -
                              • Bugs Fixed
                              • +
                              • Version 0.6.3 (2022/04/09)
                                  +
                                • Pull Requests
                                • -
                                • Pull Requests +
                                • +
                                • Version 0.6.2 (2022/04/03) +
                                • +
                                • 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)
                                          -
                                        • Issues Closed
                                        • Version 0.5.4 (2022/01/01)
                                            -
                                          • Issues Closed
                                          • Version 0.5.3 (2022/01/01)
                                              -
                                            • Issues Closed
                                            • Version 0.5.2 (2021/12/19)
                                                -
                                              • Issues Closed
                                              • Version 0.5.1 (2021/11/30)
                                                  -
                                                • Issues Closed
                                                • Version 0.5.0 (2021/11/14)
                                                    -
                                                  • Issues Closed
                                                  • Version 0.4.9 (2021/07/16)
                                                      -
                                                    • Issues Closed
                                                    • Version 0.4.8 (2021/07/03)
                                                        -
                                                      • Issues Closed
                                                      • Version 0.4.7 (2021/04/07)
                                                          -
                                                        • Issues Closed
                                                        • Version 0.4.6 (2021/02/21)
                                                            -
                                                          • Issues Closed
                                                          • Version 0.4.5 (2021/02/17) -
                                                          • -
                                                          • Version 0.4.4 (2021/01/31) -
                                                          • -
                                                          • Version 0.4.3 (2021/01/10)
                                                              -
                                                            • Issues Closed
                                                            • +
                                                            • Version 0.4.4 (2021/01/31) +
                                                            • +
                                                            • Version 0.4.3 (2021/01/10) +
                                                            • Version 0.4.2 (2021/01/03)
                                                            • Version 0.4.1 (2020/12/31)
                                                                -
                                                              • Issues Closed
                                                              • Version 0.4.0 - FitTrackee on PyPI (2020/09/19)
                                                                  -
                                                                • Issues Closed
                                                                • Version 0.3.0 - Administration (2020/07/15)
                                                                    -
                                                                  • Issues Closed
                                                                  • 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 @@ -457,6 +473,60 @@

                                                                                  Change log

                                                                                  +
                                                                                  +

                                                                                  Version 0.7.6 (2022/11/09)

                                                                                  +
                                                                                  +

                                                                                  Translations

                                                                                  +
                                                                                    +
                                                                                  • 3c8d9c2 - fix api locale file (remove trailing comma)

                                                                                  • +
                                                                                  +
                                                                                  +
                                                                                  +

                                                                                  Misc

                                                                                  +
                                                                                    +
                                                                                  • dev dependencies update

                                                                                  • +
                                                                                  +
                                                                                  +
                                                                                  +
                                                                                  +

                                                                                  Version 0.7.5 (2022/11/09)

                                                                                  +
                                                                                  +

                                                                                  Bugs Fixed

                                                                                  +
                                                                                    +
                                                                                  • #264 - UI has white and gray background

                                                                                  • +
                                                                                  +
                                                                                  +
                                                                                  +

                                                                                  Translations

                                                                                  +
                                                                                    +
                                                                                  • #266 - Translations update from Hosted Weblate (German, thanks to @qwerty287)

                                                                                  • +
                                                                                  +
                                                                                  +
                                                                                  +
                                                                                  +

                                                                                  Version 0.7.4 (2022/11/05)

                                                                                  +
                                                                                  +

                                                                                  Bugs Fixed

                                                                                  +
                                                                                    +
                                                                                  • #260 - Files size is not checked in zip archive

                                                                                  • +
                                                                                  • #261 - The API should return an error when the number of files in an archive exceeds the limit

                                                                                  • +
                                                                                  +

                                                                                  Note: archive import still needs some improvements (see #89)

                                                                                  +
                                                                                  +
                                                                                  +

                                                                                  Translations

                                                                                  +
                                                                                    +
                                                                                  • b1536fc - fix french translations in administration

                                                                                  • +
                                                                                  +
                                                                                  +
                                                                                  +

                                                                                  Documentation

                                                                                  +
                                                                                    +
                                                                                  • #257 - Add client_max_body_size note to example nginx config

                                                                                  • +
                                                                                  +

                                                                                  Thanks to @jat255

                                                                                  +
                                                                                  +

                                                                                  Version 0.7.3 (2022/11/01)

                                                                                  @@ -467,15 +537,15 @@

                                                                                Thanks to @jat255

                                                                                -
                                                                                -

                                                                                Bugs Fixed

                                                                                +
                                                                                +

                                                                                Bugs Fixed

                                                                                • #246 - Add support to PostgreSQL 15

                                                                                • #247 - Segments duration is displayed with microseconds

                                                                                -
                                                                                -

                                                                                Translations

                                                                                +
                                                                                +

                                                                                Translations

                                                                                • PR#252 - init Norwegian Bokmål translations files

                                                                                @@ -484,8 +554,8 @@

                                                                                Version 0.7.2 (2022/09/21)

                                                                                -
                                                                                -

                                                                                Translations

                                                                                +
                                                                                +

                                                                                Translations

                                                                                • PR#242 - Translations update from Weblate (German, thanks to @qwerty287)

                                                                                @@ -493,14 +563,14 @@

                                                                                Version 0.7.1 (2022/09/21)

                                                                                -
                                                                                -

                                                                                Bugs Fixed

                                                                                +
                                                                                +

                                                                                Bugs Fixed

                                                                                • PR#241 - Add missing password strength estimation package (german)

                                                                                -
                                                                                -

                                                                                Translations

                                                                                +
                                                                                +

                                                                                Translations

                                                                                • PR#239 - Translations update from Weblate (German, thanks to @qwerty287)

                                                                                • cb9d02f - Update OAuth 2.0 translations (English & French)

                                                                                • @@ -509,23 +579,23 @@

                                                                                Version 0.7.0 (2022/09/19)

                                                                                -
                                                                                -

                                                                                Features and enhancements

                                                                                +
                                                                                +

                                                                                Features and enhancements

                                                                                • #88 - OAuth 2.0 access token for api access

                                                                                • #231 - Invalidate token on logout

                                                                                • PR#236 - Add API rate limits

                                                                                -
                                                                                -

                                                                                Bugs Fixed

                                                                                +
                                                                                +

                                                                                Bugs Fixed

                                                                                • #232 - Speed chart can not be hidden

                                                                                • #237 - Can not edit a workout when notes value is null

                                                                                -
                                                                                -

                                                                                Translations

                                                                                +
                                                                                +

                                                                                Translations

                                                                                • PR#212 - Translations update from Hosted Weblate (thanks to J. Lavoie)

                                                                                @@ -536,8 +606,8 @@

                                                                                Version 0.6.12 (2022/09/14)

                                                                                Issues Closed

                                                                                -
                                                                                -

                                                                                Bugs Fixed

                                                                                +
                                                                                +

                                                                                Bugs Fixed

                                                                                • #230 - Database problem after upgrade to 0.6.11

                                                                                @@ -545,8 +615,8 @@

                                                                                Pull Requests

                                                                                -
                                                                                -

                                                                                Misc

                                                                                +
                                                                                +

                                                                                Misc

                                                                                • #225 - Fix grammar issue

                                                                                @@ -557,17 +627,17 @@

                                                                                Version 0.6.11 (2022/07/27)

                                                                                -
                                                                                -

                                                                                Issues Closed

                                                                                -
                                                                                -

                                                                                Bugs Fixed

                                                                                +
                                                                                +

                                                                                Issues Closed

                                                                                +
                                                                                +

                                                                                Bugs Fixed

                                                                                • #213 - Statistics - When using imperial measurements, ascent/descent should be in ft not mi

                                                                                -
                                                                                -

                                                                                Pull Requests

                                                                                +
                                                                                +

                                                                                Pull Requests

                                                                                Features

                                                                                  @@ -582,19 +652,19 @@

                                                                                  Version 0.6.10 (2022/07/13)

                                                                                  -
                                                                                  -

                                                                                  Issues Closed

                                                                                  -
                                                                                  -

                                                                                  Bugs Fixed

                                                                                  +
                                                                                  +

                                                                                  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

                                                                                  +
                                                                                  +

                                                                                  Pull Requests

                                                                                  +
                                                                                  +

                                                                                  Bugs Fixed

                                                                                  • #209 - Incorrect duration with track containing multiple segments

                                                                                  @@ -606,23 +676,23 @@

                                                                                  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

                                                                                  -
                                                                                  -

                                                                                  Features

                                                                                  +
                                                                                  +

                                                                                  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

                                                                                  -
                                                                                  -

                                                                                  Translations

                                                                                  +
                                                                                  +

                                                                                  Translations

                                                                                  • PR#197 - Translations update from Weblate (French)

                                                                                  • #196 - Use translation management tool

                                                                                  • @@ -639,10 +709,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

                                                                                  • @@ -650,8 +720,8 @@
                                                                                  -
                                                                                  -

                                                                                  Misc

                                                                                  +
                                                                                  +

                                                                                  Misc

                                                                                  • change gpx and map file naming (included in PR#195)
                                                                                    Note: it does not affect previously imported files

                                                                                  • cc4287e - Fix docker env file

                                                                                  • @@ -661,10 +731,10 @@

                                                                                  Version 0.6.7 (2022/06/11)

                                                                                  -
                                                                                  -

                                                                                  Issues Closed

                                                                                  -
                                                                                  -

                                                                                  Bugs Fixed

                                                                                  +
                                                                                  +

                                                                                  Issues Closed

                                                                                  +
                                                                                  +

                                                                                  Bugs Fixed

                                                                                  • #156 - Process gpx file with offset

                                                                                  @@ -674,8 +744,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.

                                                                                  @@ -684,10 +754,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

                                                                                  @@ -697,10 +767,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

                                                                                  @@ -710,10 +780,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

                                                                                      @@ -727,10 +797,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

                                                                                  • @@ -741,10 +811,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

                                                                                  @@ -755,26 +825,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

                                                                                  • @@ -789,17 +859,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

                                                                                      @@ -817,8 +887,8 @@ It reduces pre-requisites for single-user instances.

                                                                                    -
                                                                                    -

                                                                                    Misc

                                                                                    +
                                                                                    +

                                                                                    Misc

                                                                                    • #152 - Fixes and improvements:

                                                                                        @@ -834,17 +904,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

                                                                                    @@ -853,8 +923,8 @@ It reduces pre-requisites for single-user instances.

                                                                                    Version 0.5.5 (2022/01/19)

                                                                                    -
                                                                                    -

                                                                                    Issues Closed

                                                                                    +
                                                                                    +

                                                                                    Issues Closed

                                                                                    New Features

                                                                                      @@ -864,8 +934,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

                                                                                    @@ -875,10 +945,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

                                                                                    @@ -888,10 +958,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”

                                                                                    • @@ -902,10 +972,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

                                                                                    • @@ -916,10 +986,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

                                                                                    • @@ -931,10 +1001,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

                                                                                    • @@ -942,21 +1012,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

                                                                                    • @@ -973,17 +1043,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

                                                                                    • @@ -994,10 +1064,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

                                                                                    @@ -1007,17 +1077,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://.

                                                                                    @@ -1026,10 +1096,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

                                                                                    • @@ -1041,10 +1111,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

                                                                                    • @@ -1055,17 +1125,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.

                                                                                    • @@ -1075,16 +1145,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

                                                                                    @@ -1094,18 +1164,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

                                                                                    @@ -1121,10 +1191,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

                                                                                  • @@ -1140,10 +1210,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

                                                                                  • @@ -1155,8 +1225,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

                                                                                    • @@ -1169,10 +1239,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

                                                                                    • @@ -1183,17 +1253,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

                                                                                    @@ -1203,10 +1273,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

                                                                                    @@ -1216,10 +1286,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

                                                                                    • @@ -1230,15 +1300,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

                                                                                    @@ -1247,17 +1317,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

                                                                                    @@ -1266,17 +1336,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

                                                                                    • @@ -1325,10 +1395,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 318ad334..4a10abfb 100644 --- a/docs/cli.html +++ b/docs/cli.html @@ -5,7 +5,7 @@ - Command line interface — FitTrackee 0.7.3 + <title>Command line interface — FitTrackee 0.7.6 documentation @@ -42,7 +42,7 @@ FitTrackee - 0.7.3 + 0.7.6 diff --git a/docs/features.html b/docs/features.html index 7cca19ba..442a73e8 100644 --- a/docs/features.html +++ b/docs/features.html @@ -5,7 +5,7 @@ - Features — FitTrackee 0.7.3 + <title>Features — FitTrackee 0.7.6 documentation @@ -42,7 +42,7 @@ FitTrackee - 0.7.3 + 0.7.6 @@ -290,9 +290,9 @@ A user with an inactive account cannot log in. (new in 0.6.0)

                                                                                      The following parameters can be set:

                                                                                      • active users limit. If 0, registration is enabled (no limit defined)

                                                                                      • -
                                                                                      • maximum size of uploaded files

                                                                                      • +
                                                                                      • maximum size of gpx file (individually uploaded or in a zip archive) (changed in 0.7.4)

                                                                                      • maximum size of zip archive

                                                                                      • -
                                                                                      • maximum number of files in the zip archive. If an archive contains more files, only the configured number of files is processed, without raising errors.

                                                                                      • +
                                                                                      • maximum number of files in the zip archive (changed in 0.7.4)

                                                                                      • administrator email for contact (new in 0.6.0)

                                                                                      diff --git a/docs/genindex.html b/docs/genindex.html index 003f3d38..c85eac41 100644 --- a/docs/genindex.html +++ b/docs/genindex.html @@ -4,7 +4,7 @@ - Index — FitTrackee 0.7.3 + <title>Index — FitTrackee 0.7.6 documentation @@ -39,7 +39,7 @@ FitTrackee - 0.7.3 + 0.7.6
                                                                                      diff --git a/docs/http-routingtable.html b/docs/http-routingtable.html index 51f5f0aa..17cca228 100644 --- a/docs/http-routingtable.html +++ b/docs/http-routingtable.html @@ -4,7 +4,7 @@ - HTTP Routing Table — FitTrackee 0.7.3 + <title>HTTP Routing Table — FitTrackee 0.7.6 documentation @@ -46,7 +46,7 @@ FitTrackee - 0.7.3 + 0.7.6 diff --git a/docs/index.html b/docs/index.html index 9a147a31..c2dc4392 100644 --- a/docs/index.html +++ b/docs/index.html @@ -5,7 +5,7 @@ - FitTrackee — FitTrackee 0.7.3 + <title>FitTrackee — FitTrackee 0.7.6 documentation @@ -41,7 +41,7 @@ FitTrackee - 0.7.3 + 0.7.6 diff --git a/docs/installation.html b/docs/installation.html index 1d99f5ff..70519d6e 100644 --- a/docs/installation.html +++ b/docs/installation.html @@ -5,7 +5,7 @@ - Installation — FitTrackee 0.7.3 + <title>Installation — FitTrackee 0.7.6 documentation @@ -42,7 +42,7 @@ FitTrackee - 0.7.3 + 0.7.6 @@ -794,11 +794,11 @@ $ make install-db
                                                                                        -
                                                                                      • Download the last release (for now, it is the release v0.7.3):

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

                                                                                      -
                                                                                      $ wget https://github.com/SamR1/FitTrackee/archive/v0.7.3.tar.gz
                                                                                      -$ tar -xzf v0.7.3.tar.gz
                                                                                      -$ mv FitTrackee-0.7.3 FitTrackee
                                                                                      +
                                                                                      $ wget https://github.com/SamR1/FitTrackee/archive/v0.7.6.tar.gz
                                                                                      +$ tar -xzf v0.7.6.tar.gz
                                                                                      +$ mv FitTrackee-0.7.6 FitTrackee
                                                                                       $ cd FitTrackee
                                                                                       
                                                                                      @@ -918,11 +918,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.7.3) and overwrite existing files:

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

                                                                                      -
                                                                                      $ wget https://github.com/SamR1/FitTrackee/archive/v0.7.3.tar.gz
                                                                                      -$ tar -xzf v0.7.3.tar.gz
                                                                                      -$ cp -R FitTrackee-0.7.3/* FitTrackee/
                                                                                      +
                                                                                      $ wget https://github.com/SamR1/FitTrackee/archive/v0.7.6.tar.gz
                                                                                      +$ tar -xzf v0.7.6.tar.gz
                                                                                      +$ cp -R FitTrackee-0.7.6/* FitTrackee/
                                                                                       $ cd FitTrackee
                                                                                       
                                                                                      @@ -1044,6 +1044,14 @@ One way is to use a systemd services and Nginx ssl_certificate fullchain.pem; ssl_certificate_key privkey.pem; + ## this parameter controls how large of a file can be + ## uploaded, and defaults to 1MB. If you change the FitTrackee + ## settings to allow larger uploads, you'll need to change this + ## setting by uncommenting the line below and setting the size limit + ## you want. Set to "0" to prevent nginx from checking the + ## request body size at all + # client_max_body_size 1m; + location / { proxy_pass http://127.0.0.1:5000; proxy_redirect default; diff --git a/docs/objects.inv b/docs/objects.inv index a940bebd..422cdb7a 100644 Binary files a/docs/objects.inv and b/docs/objects.inv differ diff --git a/docs/search.html b/docs/search.html index dfdfc99d..61fe89e1 100644 --- a/docs/search.html +++ b/docs/search.html @@ -4,7 +4,7 @@ - Search — FitTrackee 0.7.3 + <title>Search — FitTrackee 0.7.6 documentation @@ -46,7 +46,7 @@ FitTrackee - 0.7.3 + 0.7.6
                                                                                      diff --git a/docs/searchindex.js b/docs/searchindex.js index c4e1d4f0..5d022816 100644 --- a/docs/searchindex.js +++ b/docs/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["api/auth", "api/configuration", "api/index", "api/oauth2", "api/records", "api/sports", "api/stats", "api/users", "api/workouts", "apps", "changelog", "cli", "features", "index", "installation", "troubleshooting/administrator", "troubleshooting/index", "troubleshooting/user"], "filenames": ["api/auth.rst", "api/configuration.rst", "api/index.rst", "api/oauth2.rst", "api/records.rst", "api/sports.rst", "api/stats.rst", "api/users.rst", "api/workouts.rst", "apps.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", "OAuth2", "Records", "Sports", "Statistics", "Users", "Workouts", "Third-party applications", "Change log", "Command line interface", "Features", "FitTrackee", "Installation", "Administrator", "Troubleshooting", "User"], "terms": {"post": [0, 3, 8, 9], "api": [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13], "auth": [0, 1, 3, 4, 5, 6, 7, 8, 9, 14], "regist": [0, 1, 12, 14], "user": [0, 1, 2, 3, 4, 5, 6, 8, 9, 10, 12, 14, 16], "send": [0, 7, 10, 12, 14], "confirm": [0, 3, 10, 12, 14], "email": [0, 1, 7, 10, 11, 12, 15], "The": [0, 9, 10, 11, 12, 14], "newli": [0, 14], "creat": [0, 3, 8, 9, 10, 12, 14], "account": [0, 7, 10, 11, 14], "i": [0, 1, 3, 9, 10, 11, 12, 13, 14, 16], "inact": [0, 7, 12, 14], "must": [0, 1, 3, 5, 7, 9, 10, 12, 14, 15], "hi": [0, 7, 10, 12], "activ": [0, 5, 7, 10, 11, 12, 13, 14], "exampl": [0, 1, 3, 4, 5, 6, 7, 8, 9, 13, 14], "request": [0, 1, 3, 4, 5, 6, 7, 8, 9, 14], "http": [0, 1, 3, 4, 5, 6, 7, 8, 9, 14], "1": [0, 1, 3, 4, 5, 6, 7, 8, 12, 14], "content": [0, 1, 3, 4, 5, 6, 7, 8], "type": [0, 1, 3, 4, 5, 6, 7, 8, 10, 14], "applic": [0, 1, 3, 4, 5, 6, 7, 8, 10, 12, 13, 14], "json": [0, 1, 3, 4, 5, 6, 7, 8], "respons": [0, 1, 3, 4, 5, 6, 7, 8], "success": [0, 1, 3, 4, 5, 6, 7, 8], "200": [0, 1, 3, 4, 5, 6, 7, 8, 10, 14], "statu": [0, 1, 3, 4, 5, 6, 7, 8, 11], "error": [0, 1, 3, 5, 7, 8, 10, 12, 14, 15], "registr": [0, 1, 9, 10, 12, 14], "400": [0, 1, 3, 5, 7, 8], "bad": [0, 1, 3, 5, 7, 8], "messag": [0, 1, 3, 8, 10, 11, 14], "valid": [0, 1, 3, 4, 5, 6, 7, 8, 10, 14, 15], "provid": [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15], "n": 0, "object": [0, 1, 5, 7, 8], "usernam": [0, 6, 7, 10, 14], "string": [0, 1, 3, 5, 6, 7, 8, 9, 14], "3": [0, 1, 5, 6, 7, 8, 12, 14], "30": [0, 6], "charact": [0, 10], "requir": [0, 9, 10, 14], "password": [0, 7, 10, 11, 12, 14], "8": [0, 8], "lang": [0, 10], "languag": [0, 7, 10, 12], "prefer": [0, 7, 10], "invalid": [0, 1, 3, 4, 5, 6, 7, 8, 10, 14], "fallback": 0, "en": [0, 7], "english": [0, 10], "code": [0, 1, 3, 4, 5, 6, 7, 8, 9, 10], "ok": [0, 1, 3, 4, 5, 6, 7, 8], "payload": [0, 1, 3, 5, 7, 8], "sorri": 0, "alreadi": 0, "taken": 0, "onli": [0, 3, 7, 8, 9, 10, 11, 12, 14], "alphanumer": [0, 10], "underscor": 0, "_": [0, 10], "allow": [0, 1, 8, 9, 10, 12, 13], "403": [0, 1, 5, 6, 7, 8], "forbidden": [0, 1, 5, 6, 7, 8], "disabl": [0, 10, 12, 14], "500": [0, 1, 5, 7, 8, 10], "intern": [0, 1, 5, 7, 8], "server": [0, 1, 5, 7, 8, 10, 12, 13], "pleas": [0, 1, 3, 4, 5, 6, 7, 8, 10], "try": [0, 7, 8], "again": [0, 1, 3, 4, 5, 6, 7, 8], "contact": [0, 1, 7, 8, 12], "administr": [0, 1, 7, 8, 9, 16], "after": [0, 3, 9, 10, 12, 14], "auth_token": 0, "web": [0, 9, 13, 14], "token": [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11], "resend": 0, "instruct": [0, 10, 12, 14], "If": [0, 3, 9, 12, 14], "thi": [0, 3, 8, 10, 11, 12, 13, 14], "endpoint": [0, 1, 3, 9, 10, 14], "avail": [0, 4, 9, 11, 12, 14], "resent": 0, "404": [0, 3, 5, 6, 7, 8, 10], "Not": [0, 3, 5, 6, 7, 8], "found": [0, 3, 5, 6, 7, 8, 10], "url": [0, 3, 9, 10, 14, 15], "wa": [0, 10], "login": 0, "an": [0, 1, 3, 5, 7, 9, 10, 12, 14, 15], "can": [0, 7, 9, 10, 12, 13, 14, 15], "log": [0, 1, 3, 4, 5, 6, 7, 8, 12, 13, 14, 15], "successfulli": 0, "401": [0, 1, 3, 4, 5, 6, 7, 8], "unauthor": [0, 1, 3, 4, 5, 6, 7, 8], "credenti": [0, 14], "get": [0, 1, 3, 4, 5, 6, 7, 8, 9], "profil": [0, 3, 9, 10], "info": 0, "scope": [0, 1, 3, 4, 5, 6, 7, 8], "read": [0, 3, 4, 5, 6, 7, 8, 9, 10], "data": [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14], "admin": [0, 1, 4, 5, 6, 7, 8, 10, 11, 12, 14], "fals": [0, 1, 3, 5, 7, 8, 14], "bio": [0, 7], "null": [0, 5, 7, 8, 10], "birth_dat": [0, 7], "created_at": [0, 7], "sun": [0, 4, 7, 8], "14": [0, 3, 7, 8], "jul": [0, 4, 7, 8], "2019": [0, 4, 6, 7, 8], "09": [0, 7], "58": [0, 7, 10], "gmt": [0, 3, 4, 7, 8], "display_asc": 0, "true": [0, 1, 3, 5, 7, 10, 14], "sam": [0, 4, 7, 8], "com": [0, 1, 3, 7, 9, 14], "first_nam": [0, 7], "imperial_unit": [0, 7], "is_act": [0, 5, 7], "last_nam": [0, 7], "locat": [0, 7, 14], "nb_sport": [0, 7], "nb_workout": [0, 6, 7], "6": [0, 5, 7, 8, 11, 12, 14], "pictur": [0, 7, 8, 10], "record": [0, 2, 7, 8, 10, 12], "id": [0, 3, 4, 5, 6, 7, 8, 9], "9": [0, 4, 7, 12, 14], "record_typ": [0, 4, 7, 8], "AS": [0, 4, 7, 8], "sport_id": [0, 4, 5, 6, 7, 8], "valu": [0, 3, 4, 7, 8, 9, 10, 14], "18": [0, 4, 7, 8, 10], "workout_d": [0, 4, 7, 8], "07": [0, 4, 7, 8], "08": [0, 4, 7, 8], "00": [0, 4, 7, 8], "workout_id": [0, 4, 7, 8], "hvybqybra7wwxpastwr4v2": [0, 4, 7, 8], "10": [0, 1, 4, 7, 8, 14], "fd": [0, 4, 7, 8], "13": [0, 4, 7, 8], "ha": [0, 4, 7, 8, 12, 13], "43": [0, 4, 7, 8, 10], "97": [0, 4, 7, 8], "11": [0, 4, 7, 12], "ld": [0, 4, 7, 8], "01": [0, 4, 6, 7, 8], "12": [0, 4, 7, 8, 12], "m": [0, 4, 6, 7, 8], "sports_list": [0, 7], "4": [0, 5, 6, 7, 8, 14], "timezon": [0, 7, 8, 10, 12], "europ": [0, 7], "pari": [0, 7], "total_dist": [0, 6, 7], "67": [0, 7], "895": [0, 7], "total_dur": [0, 6, 7], "50": [0, 7, 10, 14], "27": [0, 3, 7], "weekm": [0, 6, 7], "header": [0, 1, 3, 4, 5, 6, 7, 8, 9], "author": [0, 1, 3, 4, 5, 6, 7, 8, 9, 14], "oauth": [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 14], "2": [0, 1, 3, 4, 5, 6, 7, 8, 9, 12, 14], "0": [0, 1, 3, 4, 5, 6, 7, 8, 9, 11, 12, 14], "bearer": [0, 1, 3, 4, 5, 6, 7, 8], "signatur": [0, 1, 3, 4, 5, 6, 7, 8], "expir": [0, 1, 3, 4, 5, 6, 7, 8, 11], "edit": [0, 10, 12], "write": [0, 1, 3, 5, 7, 8, 9], "updat": [0, 1, 5, 7, 8, 10, 12, 14], "first": [0, 3, 9, 12], "name": [0, 3, 7, 10, 14], "last": [0, 10, 14], "biographi": 0, "birth": [0, 10], "date": [0, 6, 8, 10, 12], "format": [0, 6, 8, 10, 12], "y": [0, 6, 8, 14], "d": [0, 6, 8], "support": [0, 3, 9, 10, 12, 14, 15], "mm": 0, "dd": 0, "yyyi": 0, "default": [0, 3, 6, 7, 8, 10, 12, 14], "date_str": 0, "correspond": 0, "client": [0, 3, 9, 10, 12, 14], "mmm": 0, "do": [0, 1, 5, 6, 7, 8], "local": [0, 10, 13, 14], "fr": [0, 7, 14], "de": [0, 14], "date_format": 0, "us": [0, 3, 7, 8, 9, 10, 12, 13, 14], "displai": [0, 8, 9, 10, 11, 12, 13, 14, 16], "app": [0, 3, 9, 10, 12, 13], "boolean": [0, 1, 3, 7, 11], "highest": [0, 4, 12], "ascent": [0, 4, 8, 10, 12], "total": [0, 3, 10, 12], "distanc": [0, 4, 8, 10, 12], "imperi": [0, 10, 12], "unit": [0, 10, 14], "time": [0, 6, 8, 10, 12], "zone": 0, "doe": [0, 6, 7, 8, 10], "week": [0, 6, 10, 12], "start": [0, 6, 8, 10, 12, 14, 16], "mondai": [0, 6, 12], "don": 0, "t": [0, 10, 15], "match": [0, 10], "sport": [0, 2, 6, 8, 10, 12, 14], "color": [0, 5, 10, 12], "000000": 0, "stopped_speed_threshold": [0, 5], "user_id": 0, "hexadecim": 0, "when": [0, 1, 10, 11, 12, 14], "ad": [0, 10, 11, 12], "workout": [0, 2, 3, 4, 5, 6, 9, 10, 13, 16], "float": [0, 8], "stop": [0, 10, 12, 14], "speed": [0, 4, 8, 10, 12, 14], "threshold": [0, 10, 12], "gpxpy": [0, 12, 14], "exist": [0, 6, 7, 8, 12, 13, 14], "delet": [0, 3, 7, 8, 10, 11, 12], "reset": [0, 7, 10, 11, 12, 14], "given": [0, 3, 14], "204": [0, 3, 7, 8], "paramet": [0, 3, 5, 6, 7, 8, 9, 10, 12], "No": [0, 3, 7, 8, 10, 13], "multipart": [0, 3, 8], "form": [0, 3, 8], "file": [0, 1, 8, 10, 11, 12, 13, 14], "imag": [0, 7, 8, 10, 12, 14, 16], "extens": [0, 8, 14], "jpg": 0, "png": [0, 8, 14], "gif": 0, "part": [0, 8], "select": [0, 8, 12], "413": [0, 8], "entiti": [0, 8], "too": [0, 8], "larg": [0, 8, 12], "dure": [0, 8], "size": [0, 1, 8, 10, 12], "exce": [0, 8], "0mb": [0, 8], "NO": [0, 3, 7, 8], "handl": [0, 12, 14], "process": [0, 10, 12, 14], "patch": [0, 1, 5, 7, 8], "It": [0, 7, 9, 10, 12, 13, 15], "enabl": [0, 1, 7, 12, 14], "chang": [0, 12, 13, 14], "one": [0, 7, 8, 12], "current": [0, 10], "address": [0, 12, 14], "inform": [0, 10, 13, 14], "anoth": [0, 7, 14], "new": [0, 7, 9, 11, 12, 14], "new_password": 0, "miss": [0, 10], "logout": [0, 10], "blacklist": [0, 11], "out": 0, "access": [0, 3, 9, 10, 14], "revok": [0, 3], "malform": 0, "other": [0, 7, 14], "reason": 0, "config": [1, 10, 14], "admin_contact": 1, "gpx_limit_import": 1, "is_email_sending_en": 1, "is_registration_en": 1, "max_single_file_s": 1, "1048576": 1, "max_us": 1, "max_zip_file_s": 1, "10485760": 1, "map_attribut": [1, 14], "copi": [1, 14], "href": [1, 14], "www": [1, 14], "openstreetmap": [1, 10, 14], "org": [1, 14], "copyright": [1, 14], "contributor": [1, 10, 14], "version": [1, 11, 14], "7": [1, 8, 9, 11, 12, 14], "authent": [1, 2, 3, 4, 5, 7, 8, 9], "integ": [1, 3, 5, 6, 7, 8], "max": [1, 7, 8, 10], "number": [1, 7, 8, 10, 11, 12, 14], "zip": [1, 8, 10, 12], "archiv": [1, 10, 12, 14], "singl": [1, 7, 10, 12, 14], "instanc": [1, 3, 9, 10, 12, 14], "you": [1, 5, 6, 7, 8, 12, 13], "have": [1, 5, 6, 7, 8, 10], "permiss": [1, 5, 6, 7, 8], "ping": 1, "health": 1, "check": [1, 10, 14, 15], "pong": 1, "configur": [2, 9, 10, 12, 14], "oauth2": [2, 9], "statist": 2, "pagin": [3, 7, 8], "5": [3, 5, 6, 7, 8, 11, 12, 14], "page": [3, 7, 8, 10], "fittracke": [3, 9, 11, 12, 14, 16], "parti": [3, 12, 13], "without": [3, 6, 7, 8, 10, 12, 13], "client_descript": 3, "client_id": [3, 9], "o22a27s2abpuoxjbxv3ujdox": 3, "issued_at": 3, "thu": 3, "juli": 3, "2022": 3, "06": [3, 6], "53": [3, 10], "gpx": [3, 8, 10, 12, 13, 14], "import": [3, 10, 14], "redirect_uri": 3, "callback": [3, 9], "websit": 3, "has_next": 3, "has_prev": 3, "queri": [3, 6, 7, 8], "client_secret": 3, "secret": [3, 9, 14], "client_nam": 3, "client_uri": 3, "arrai": 3, "list": [3, 10, 13, 14], "redirect": [3, 9], "descript": [3, 11, 14], "option": [3, 9, 10, 11, 14], "client_client_id": 3, "NOT": [3, 5, 8], "int": [3, 5, 8], "by_id": 3, "all": [3, 4, 5, 6, 7, 14], "associ": 3, "issu": [3, 13, 14], "response_typ": [3, 9], "state": [3, 9], "uniqu": [3, 9], "prevent": [3, 9], "cross": [3, 9, 12], "site": [3, 9], "forgeri": [3, 9], "mandatori": [3, 8, 9, 10, 14], "recommend": [3, 9, 14], "code_challeng": [3, 9], "gener": [3, 9, 10, 12, 14], "from": [3, 6, 8, 9, 10, 12, 13], "verifi": [3, 9], "pkce": [3, 9], "code_challenge_method": [3, 9], "method": [3, 9, 14], "challeng": [3, 9], "s256": [3, 9], "return": [3, 4, 7, 8, 10, 14], "authlib": [3, 9, 14], "librari": [3, 9, 14], "refresh": [3, 10], "access_token": 3, "roehv64thcg28wcewzhrnvlusoduvw8nvnhkcml57": 3, "expires_in": 3, "864000": 3, "refresh_token": 3, "nuv9cy8vqonrqkhtz5pqaq2zw7msh0mornpjr14amswd6f6i": 3, "token_typ": 3, "expires_at": 3, "1658660147": 3, "0667062": 3, "grant_typ": 3, "grant": [3, 9], "authorization_cod": [3, 9], "ar": [3, 4, 8, 9, 10, 11, 12, 13, 14, 16], "code_verifi": 3, "follow": [4, 9, 11, 12, 14, 15], "averag": [4, 8, 10, 12], "farthest": [4, 10, 12], "longest": [4, 10, 12], "durat": [4, 8, 10, 12], "maximum": [4, 10, 12], "non": [5, 13], "is_active_for_us": 5, "label": [5, 10], "cycl": [5, 10, 12], "transport": [5, 10, 12], "hike": [5, 10, 12], "mountain": [5, 12], "bike": [5, 8, 10, 12], "run": [5, 9, 10, 12, 14], "walk": [5, 10, 12], "has_workout": 5, "stat": [6, 10], "user_nam": [6, 7], "by_tim": 6, "2018": [6, 8], "2017": [6, 8], "average_spe": 6, "48": 6, "total_asc": 6, "203": 6, "156": [6, 10], "15": [6, 8], "282": 6, "12341": 6, "16": [6, 8], "99": [6, 10], "150": 6, "178": [6, 10], "47": [6, 8, 10], "9960": 6, "95": [6, 10], "46": [6, 10], "78": 6, "613": 6, "1267": 6, "end": [6, 8], "frame": 6, "sundai": [6, 8, 12], "month": [6, 10, 12], "year": [6, 12], "by_sport": 6, "uploads_dir_s": 6, "1000": 6, "regardless": 7, "right": [7, 9, 10, 11, 12, 14], "some": [7, 8, 9, 10, 12, 13, 14], "order_bi": [7, 8], "workouts_count": 7, "par_pag": 7, "is_admin": 7, "sat": 7, "20": 7, "03": [7, 8], "per_pag": [7, 8], "per": [7, 8, 10, 14], "q": 7, "order": [7, 8, 9, 10], "sort": [7, 8], "asc": [7, 8], "desc": [7, 8], "criteria": [7, 8], "detail": [7, 10, 14, 16], "jpeg": 7, "add": [7, 10, 11, 12, 13], "remov": [7, 10, 11, 12], "modifi": [7, 10, 11, 14], "new_email": 7, "reset_password": 7, "differ": [7, 10, 12], "than": [7, 10, 11], "curent": 7, "A": [7, 10, 11, 12, 14, 15], "own": [7, 12, 13], "except": [7, 14, 15], "he": 7, "": [7, 8, 10, 14], "john_do": 7, "your": [7, 12, 13, 14], "02": 8, "31": 8, "least": 8, "ave_spe": 8, "bound": 8, "creation_d": 8, "51": 8, "descent": [8, 10, 12], "17": [8, 14], "04": 8, "kjxavsturjvoah2wvcegef": 8, "map": [8, 10, 12, 13, 16], "max_alt": 8, "max_spe": 8, "min_alt": 8, "modification_d": 8, "move": [8, 10], "next_workout": 8, "note": [8, 10, 12, 14], "paus": [8, 10], "previous_workout": 8, "mon": 8, "jan": 8, "segment": [8, 10, 12], "titl": 8, "weather_end": 8, "weather_start": 8, "with_gpx": 8, "100": [8, 10, 12], "distance_from": 8, "minim": [8, 9], "distance_to": 8, "maxim": 8, "duration_from": 8, "h": [8, 12], "duration_to": 8, "ave_speed_from": 8, "ave_speed_to": 8, "max_speed_from": 8, "max_speed_to": 8, "workout_short_id": 8, "57": [8, 10], "45": 8, "22": 8, "morn": 8, "short": 8, "leaflet": [8, 14], "chart_data": 8, "chart": [8, 10, 12, 14], "j": [8, 10, 14], "elev": [8, 10, 12, 14], "279": 8, "latitud": 8, "5078118": 8, "longitud": 8, "1232004": 8, "63": 8, "fri": 8, "44": [8, 10], "7380": 8, "280": 8, "5079733": 8, "1234538": 8, "39": 8, "segment_id": 8, "rechart": 8, "map_id": 8, "fa33f4d996844a5c73ecd1ae24456ab8": 8, "1563529507772": 8, "map_til": 8, "z": [8, 14], "x": [8, 9, 14], "tile": [8, 10, 12], "c": [8, 14], "4109": 8, "2930": 8, "subdomain": [8, 10, 14], "zoom": 8, "index": 8, "along": 8, "axi": 8, "download": [8, 10, 12, 14], "xml": 8, "201": [8, 10], "no_gpx": 8, "uuid": [8, 10], "km": [8, 12], "second": 8, "rest": 9, "see": [9, 10, 12, 13, 14, 15], "document": [9, 10, 13, 14], "whose": 9, "most": 9, "To": [9, 10, 14], "interact": 9, "set": [9, 10, 11, 12, 14, 15], "tab": 9, "exchang": 9, "sent": [9, 10, 12, 14], "bodi": 9, "better": [9, 10], "secur": 9, "relat": [9, 12, 14], "shown": [9, 10, 16], "thei": [9, 14], "store": [9, 12, 13], "3rd": 9, "need": [9, 10, 14], "fittrackee_host": 9, "sinc": [9, 14], "separ": [9, 14], "space": 9, "For": [9, 12, 14], "3aread": 9, "3awrit": 9, "so": 9, "fetch": [9, 14], "implement": 9, "behind": 9, "proxi": [9, 14], "forward": [9, 14], "proto": [9, 14], "nginx": [9, 12, 14], "proxy_set_head": [9, 14], "scheme": [9, 14], "about": [9, 14], "simplifi": [9, 10], "aaron": 9, "parecki": 9, "oauthlib": 9, "python": [9, 10, 14], "session": 9, "112": 10, "244": 10, "virtual": [10, 12], "ride": 10, "thank": 10, "jat255": 10, "246": 10, "postgresql": [10, 14, 15], "247": 10, "microsecond": 10, "pr": 10, "252": 10, "init": [10, 14], "norwegian": 10, "bokm\u00e5l": 10, "contain": [10, 12, 14], "databas": [10, 12, 14, 15], "migrat": [10, 11, 14], "upgrad": 10, "242": 10, "weblat": 10, "german": 10, "qwerty287": 10, "241": 10, "strength": 10, "estim": 10, "packag": [10, 14], "239": 10, "cb9d02f": 10, "88": 10, "231": 10, "236": 10, "rate": 10, "limit": [10, 12], "232": 10, "hidden": [10, 12], "237": 10, "212": 10, "host": [10, 14], "lavoi": 10, "230": 10, "problem": 10, "225": 10, "grammar": 10, "skylan0916": 10, "In": [10, 12], "execut": 10, "lower": 10, "v0": [10, 14], "postgr": [10, 15], "213": 10, "measur": 10, "should": [10, 14], "ft": 10, "mi": 10, "223": 10, "icon": [10, 14], "167": 10, "dashboard": 10, "162": 10, "fmstrat": 10, "210": 10, "could": 10, "environ": [10, 11, 15], "variabl": [10, 15], "staticmap_subdomain": [10, 14], "209": 10, "incorrect": 10, "track": [10, 13], "multipl": 10, "gorgobacka": 10, "now": [10, 11, 12, 14], "And": 10, "detect": 10, "browser": 10, "208": 10, "card": 10, "html": 10, "attribut": [10, 14], "197": 10, "196": 10, "manag": [10, 11, 14], "tool": [10, 14], "190": 10, "were": 10, "193": 10, "192": 10, "instead": [10, 12], "191": 10, "layout": 10, "includ": 10, "195": 10, "affect": 10, "previous": 10, "cc4287e": 10, "docker": 10, "env": [10, 14], "offset": 10, "depend": [10, 14], "refacto": 10, "befor": [10, 14], "introduc": 10, "possibl": [10, 12, 13, 14], "smtp": [10, 14], "reduc": 10, "pre": 10, "requisit": 10, "cli": [10, 11, 12, 14], "180": 10, "cannot": [10, 12], "tl": [10, 14], "177": 10, "posit": [10, 12], "small": 10, "screen": [10, 12], "175": 10, "173": 10, "link": [10, 14], "171": 10, "correctli": 10, "155": 10, "106": 10, "169": 10, "161": 10, "160": 10, "sever": [10, 12, 13, 14], "danielsiersleben": 10, "report": 10, "initi": [10, 14], "command": [10, 12, 13, 14], "149": 10, "initialis": [10, 14], "152": 10, "autoescap": 10, "jinja": 10, "templat": 10, "151": 10, "sanit": 10, "input": 10, "serv": [10, 14], "dramatiq": [10, 14], "warn": [10, 12], "launch": 10, "worker": [10, 14], "w": 10, "script": 10, "entrypoint": 10, "drop": 10, "avoid": 10, "product": 10, "dotenv": 10, "146": 10, "filter": [10, 12], "145": 10, "model": 10, "140": 10, "fullscreen": 10, "control": [10, 12], "138": 10, "135": 10, "finish": 10, "marker": 10, "134": 10, "wind": [10, 12], "direct": [10, 12], "877fa0f": 10, "calendar": [10, 12], "resolut": 10, "131": 10, "129": 10, "127": [10, 14], "pars": [10, 14], "legitim": 10, "uri": 10, "localhost": [10, 14], "25": [10, 14], "123": 10, "121": 10, "snowsho": [10, 12], "116": 10, "ui": 10, "button": 10, "graph": 10, "115": 10, "91": 10, "min": 10, "altitud": 10, "90": 10, "seem": 10, "104": 10, "switch": 10, "agplv3": 10, "licens": [10, 13, 14], "101": 10, "full": [10, 12], "develop": [10, 11, 13], "98": 10, "109": 10, "slow": 10, "movement": 10, "84": 10, "93": 10, "paf38": 10, "83": 10, "static": [10, 12, 14], "keep": [10, 13, 14], "default_staticmap": [10, 14], "81": 10, "remain": 10, "textarea": 10, "82": 10, "dai": [10, 11, 12, 14], "80": [10, 14], "save": [10, 12], "79": 10, "fail": [10, 16], "make": [10, 14], "rebuild": 10, "75": 10, "same": 10, "javascript": [10, 14], "due": 10, "sqlalchemi": [10, 14, 15], "engin": [10, 14, 15], "longer": [10, 15], "database_url": [10, 14], "72": 10, "exceed": 10, "71": 10, "greater": 10, "70": 10, "less": 10, "upload": [10, 11, 12, 14], "66": 10, "64": 10, "62": 10, "refactor": 10, "evalu": [10, 14], "purpos": [10, 14], "standard": [10, 14], "term": [10, 14], "directori": [10, 12, 14], "also": [10, 11, 13, 14], "59": 10, "major": 10, "instal": [10, 13], "becom": 10, "more": [10, 11, 12, 13, 14], "easi": 10, "been": [10, 13], "renam": 10, "layer": [10, 14], "replac": [10, 14], "thunderforest": [10, 14], "outdoor": [10, 12, 13, 14], "54": 10, "redi": [10, 14], "complet": 10, "side": 10, "4c3fc34": 10, "empti": [10, 11, 14], "34614d5": 10, "spinner": 10, "load": [10, 15], "b862a77": 10, "2e1ee2c": 10, "interceptor": 10, "rout": [10, 14], "definit": 10, "down": 10, "weekend": 10, "background": 10, "40": 10, "i18n": 10, "41": 10, "show": [10, 11, 14], "point": [10, 14], "mous": 10, "over": 10, "choos": [10, 12], "36": 10, "33": 10, "37": 10, "34": 10, "weather": [10, 12, 14], "anymor": 10, "poetri": [10, 14], "pipenv": 10, "calcul": 10, "28": 10, "26": 10, "tooltip": [10, 12], "creation": [10, 12], "montain": 10, "even": [10, 12], "enter": [10, 12], "darkski": [10, 12], "kei": [10, 12, 14], "farest": 10, "search": 10, "owner": [10, 12, 14], "view": [10, 12, 14], "usag": [11, 14], "arg": [11, 14], "help": [11, 14], "exit": [11, 14], "deprec": 11, "next": [11, 12], "fittrackee_set_admin": 11, "fittrackee_upgrade_db": 11, "appli": 11, "kind": 12, "encrypt": 12, "With": [12, 14], "open": [12, 13, 14], "street": [12, 13], "electr": 12, "row": 12, "ski": 12, "alpin": 12, "countri": 12, "trail": 12, "overridden": 12, "which": 12, "up": [12, 13], "metric": 12, "system": [12, 14], "arrow": 12, "indic": 12, "come": 12, "period": 12, "mai": [12, 13, 14], "origin": 12, "dropdown": 12, "On": [12, 14], "case": [12, 14], "line": [12, 13, 14], "between": 12, "hide": 12, "overrid": 12, "appear": 12, "still": [12, 13, 14], "third": [12, 13], "defin": 12, "rais": 12, "necessari": [12, 14], "like": [12, 14], "lock": 12, "via": 12, "mobil": 13, "yet": 13, "export": [13, 14], "them": 13, "android": 13, "exhaust": 13, "runner": 13, "gpl": 13, "v3": 13, "forrunn": 13, "opentrack": 13, "apach": 13, "fitotrack": 13, "under": [13, 14], "heavi": [13, 14], "featur": [13, 14], "unstabl": [13, 14], "interfac": [13, 14], "troubleshoot": 13, "written": 14, "typescript": 14, "flask": 14, "staticmap": 14, "coordin": 14, "forecast": 14, "io": 14, "dark": 14, "sky": 14, "former": 14, "task": 14, "queue": 14, "vue3": 14, "vuex": 14, "logo": 14, "made": 14, "freepik": 14, "flaticon": 14, "fork": 14, "awesom": 14, "yarn": 14, "compos": 14, "step": 14, "describ": 14, "linux": 14, "test": 14, "debian": 14, "arch": 14, "o": 14, "encount": 14, "adapt": 14, "makefil": 14, "custom": 14, "flask_app": 14, "modul": 14, "pwd": 14, "__main__": 14, "py": 14, "els": 14, "port": 14, "5000": 14, "app_set": 14, "productionconfig": 14, "app_secret_kei": 14, "strong": 14, "jwt": 14, "app_work": 14, "spawn": 14, "gunicorn": [14, 15], "app_log": 14, "path": [14, 15], "upload_fold": [14, 15], "absolut": [14, 15], "where": 14, "folder": 14, "application_directori": 14, "virtualenv": 14, "5432": 14, "begin": 14, "database_disable_pool": 14, "pool": 14, "entri": 14, "directli": 14, "ui_url": 14, "email_url": [14, 15], "sender_email": 14, "sender": 14, "redis_url": 14, "workers_process": 14, "api_rate_limit": 14, "300": 14, "minut": 14, "tile_server_url": 14, "b": 14, "osm": 14, "franc": 14, "target": 14, "_blank": 14, "rel": 14, "noopen": 14, "noreferr": 14, "komoot": 14, "otherwis": 14, "insensit": 14, "weather_api_kei": 14, "weather_api": 14, "vue_app_api_url": 14, "unencrypt": 14, "ssl": 14, "465": 14, "starttl": 14, "587": 14, "office365": 14, "work": 14, "omit": 14, "old": 14, "adress": 14, "apikei": 14, "xxxx": 14, "servic": 14, "expect": 14, "osmfr": 14, "fond": 14, "cart": 14, "par": 14, "mention": 14, "legal": 14, "nofollow": 14, "sou": 14, "nbsp": 14, "creativecommon": 14, "sa": 14, "licenc": 14, "cc": 14, "BY": 14, "chosen": 14, "randomli": 14, "base": 14, "ip": 14, "fix": 14, "window": 14, "strategi": 14, "subject": 14, "asset": 14, "notat": 14, "comma": 14, "hour": 14, "mainten": 14, "diagnost": 14, "util": 14, "commmand": 14, "clear": 14, "specif": 14, "enumer": 14, "wai": 14, "pip": 14, "WITH": 14, "schema": 14, "privileg": 14, "nano": 14, "ftcli": 14, "db": 14, "fittrackee_work": 14, "systemd": 14, "3000": 14, "archlinux": 14, "yai": 14, "project": 14, "clone": 14, "repo": 14, "git": 14, "github": 14, "samr1": 14, "cd": 14, "vue": 14, "releas": 14, "wget": 14, "tar": 14, "gz": 14, "xzf": 14, "mv": 14, "sql": 14, "backup": 14, "pg_dump": 14, "u": 14, "changelog": 14, "restart": 14, "pull": 14, "repositori": 14, "overwrit": 14, "cp": 14, "r": 14, "There": 14, "One": 14, "pass": 14, "distribut": 14, "network": 14, "startlimitintervalsec": 14, "simpl": 14, "alwai": 14, "restartsec": 14, "standardoutput": 14, "syslog": 14, "standarderror": 14, "syslogidentifi": 14, "workingdirectori": 14, "home": 14, "execstart": 14, "venv": 14, "bin": 14, "create_app": 14, "logfil": 14, "wantedbi": 14, "multi": 14, "OF": 14, "listen": 14, "443": 14, "http2": 14, "server_nam": 14, "ssl_certif": 14, "fullchain": 14, "pem": 14, "ssl_certificate_kei": 14, "privkei": 14, "proxy_pass": 14, "proxy_redirect": 14, "real": 14, "remote_addr": 14, "proxy_add_x_forwarded_for": 14, "301": 14, "request_uri": 14, "larger": 14, "client_max_body_s": 14, "build": 14, "8025": 14, "mailhog": 14, "shell": 14, "insid": 14, "addit": 14, "fittrackee_cli": 14, "lint": 14, "exc": 15, "nosuchmoduleerror": 15, "plugin": 15, "dialect": 15, "invalidemailurlschem": 15, "todo": 17}, "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-logout", "/api/auth/logout"], [0, 0, 1, "post--api-auth-password-reset-request", "/api/auth/password/reset-request"], [0, 0, 1, "post--api-auth-password-update", "/api/auth/password/update"], [0, 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"], [3, 2, 1, "get--api-oauth-apps", "/api/oauth/apps"], [3, 0, 1, "post--api-oauth-apps", "/api/oauth/apps"], [3, 1, 1, "delete--api-oauth-apps-(int-client_id)", "/api/oauth/apps/(int:client_id)"], [3, 2, 1, "get--api-oauth-apps-(int-client_id)-by_id", "/api/oauth/apps/(int:client_id)/by_id"], [3, 0, 1, "post--api-oauth-apps-(int-client_id)-revoke", "/api/oauth/apps/(int:client_id)/revoke"], [3, 2, 1, "get--api-oauth-apps-(string-client_client_id)", "/api/oauth/apps/(string:client_client_id)"], [3, 0, 1, "post--api-oauth-authorize", "/api/oauth/authorize"], [3, 0, 1, "post--api-oauth-revoke", "/api/oauth/revoke"], [3, 0, 1, "post--api-oauth-token", "/api/oauth/token"], [1, 2, 1, "get--api-ping", "/api/ping"], [4, 2, 1, "get--api-records", "/api/records"], [5, 2, 1, "get--api-sports", "/api/sports"], [5, 2, 1, "get--api-sports-(int-sport_id)", "/api/sports/(int:sport_id)"], [5, 3, 1, "patch--api-sports-(int-sport_id)", "/api/sports/(int:sport_id)"], [6, 2, 1, "get--api-stats-(user_name)-by_sport", "/api/stats/(user_name)/by_sport"], [6, 2, 1, "get--api-stats-(user_name)-by_time", "/api/stats/(user_name)/by_time"], [6, 2, 1, "get--api-stats-all", "/api/stats/all"], [7, 2, 1, "get--api-users", "/api/users"], [7, 1, 1, "delete--api-users-(user_name)", "/api/users/(user_name)"], [7, 2, 1, "get--api-users-(user_name)", "/api/users/(user_name)"], [7, 3, 1, "patch--api-users-(user_name)", "/api/users/(user_name)"], [7, 2, 1, "get--api-users-(user_name)-picture", "/api/users/(user_name)/picture"], [8, 2, 1, "get--api-workouts", "/api/workouts"], [8, 0, 1, "post--api-workouts", "/api/workouts"], [8, 1, 1, "delete--api-workouts-(string-workout_short_id)", "/api/workouts/(string:workout_short_id)"], [8, 2, 1, "get--api-workouts-(string-workout_short_id)", "/api/workouts/(string:workout_short_id)"], [8, 3, 1, "patch--api-workouts-(string-workout_short_id)", "/api/workouts/(string:workout_short_id)"], [8, 2, 1, "get--api-workouts-(string-workout_short_id)-chart_data", "/api/workouts/(string:workout_short_id)/chart_data"], [8, 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)"], [8, 2, 1, "get--api-workouts-(string-workout_short_id)-gpx", "/api/workouts/(string:workout_short_id)/gpx"], [8, 2, 1, "get--api-workouts-(string-workout_short_id)-gpx-download", "/api/workouts/(string:workout_short_id)/gpx/download"], [8, 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)"], [8, 2, 1, "get--api-workouts-map-(map_id)", "/api/workouts/map/(map_id)"], [8, 0, 1, "post--api-workouts-no_gpx", "/api/workouts/no_gpx"], [14, 4, 1, "envvar-API_RATE_LIMITS", "API_RATE_LIMITS \ud83c\udd95"], [14, 4, 1, "-", "APP_LOG"], [14, 4, 1, "-", "APP_SECRET_KEY"], [14, 4, 1, "-", "APP_SETTINGS"], [14, 4, 1, "-", "APP_WORKERS"], [14, 4, 1, "-", "DATABASE_DISABLE_POOLING"], [14, 4, 1, "-", "DATABASE_URL"], [14, 4, 1, "-", "DEFAULT_STATICMAP"], [14, 4, 1, "-", "EMAIL_URL"], [14, 4, 1, "-", "FLASK_APP"], [14, 4, 1, "-", "HOST"], [14, 4, 1, "-", "MAP_ATTRIBUTION"], [14, 4, 1, "-", "PORT"], [14, 4, 1, "-", "REDIS_URL"], [14, 4, 1, "-", "SENDER_EMAIL"], [14, 4, 1, "-", "STATICMAP_SUBDOMAINS"], [14, 4, 1, "-", "TILE_SERVER_URL"], [14, 4, 1, "-", "UI_URL"], [14, 4, 1, "-", "UPLOAD_FOLDER"], [14, 4, 1, "-", "VUE_APP_API_URL"], [14, 4, 1, "-", "WEATHER_API_KEY"], [14, 4, 1, "-", "WORKERS_PROCESSES"]], "/api/workouts/map_tile/(s)/(z)/(x)/(y)": [[8, 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, 14], "document": 2, "endpoint": 2, "oauth2": [3, 11], "record": 4, "sport": 5, "statist": [6, 10, 12], "user": [7, 11, 17], "workout": [8, 12, 15], "third": 9, "parti": 9, "applic": 9, "scope": 9, "flow": 9, "resourc": 9, "chang": 10, "log": 10, "version": 10, "0": 10, "7": 10, "3": 10, "2022": 10, "11": 10, "01": 10, "featur": [10, 12], "enhanc": 10, "bug": 10, "fix": 10, "translat": [10, 12], "2": 10, "09": 10, "21": 10, "1": 10, "19": 10, "6": 10, "12": 10, "14": 10, "issu": 10, "close": 10, "pull": 10, "request": 10, "misc": 10, "07": 10, "27": 10, "10": 10, "13": 10, "9": 10, "03": 10, "8": 10, "06": 10, "22": 10, "05": 10, "29": 10, "5": 10, "04": 10, "24": 10, "4": 10, "23": 10, "02": 10, "secur": 10, "new": 10, "2021": 10, "30": 10, "16": 10, "17": 10, "31": 10, "2020": 10, "fittracke": [10, 13, 15], "pypi": [10, 14], "administr": [10, 12, 15], "15": 10, "improv": 10, "minor": 10, "avail": 10, "french": 10, "2019": 10, "first": 10, "releas": 10, "2018": 10, "command": 11, "line": 11, "interfac": 11, "databas": 11, "ftcli": 11, "db": 11, "upgrad": [11, 14], "drop": 11, "clean": 11, "clean_token": 11, "updat": 11, "account": 12, "prefer": 12, "screenshot": 12, "dashboard": 12, "detail": [12, 15], "list": 12, "tabl": 13, "content": 13, "instal": 14, "prerequisit": 14, "environ": 14, "variabl": 14, "email": 14, "map": [14, 15], "tile": 14, "server": 14, "rate": 14, "limit": 14, "from": 14, "sourc": 14, "dev": 14, "product": 14, "prod": 14, "deploy": 14, "docker": 14, "develop": 14, "fail": 15, "start": 15, "imag": 15, "ar": 15, "displai": 15, "i": 15, "shown": 15, "troubleshoot": 16}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 8, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx": 57}, "alltitles": {"Authentication": [[0, "authentication"]], "Configuration": [[1, "configuration"]], "API documentation": [[2, "api-documentation"]], "Endpoints:": [[2, null]], "OAuth2": [[3, "oauth2"], [11, "oauth2"]], "Records": [[4, "records"]], "Sports": [[5, "sports"]], "Statistics": [[6, "statistics"], [12, "statistics"]], "Users": [[7, "users"], [11, "users"]], "Workouts": [[8, "workouts"], [12, "workouts"]], "Third-party applications": [[9, "third-party-applications"]], "Scopes": [[9, "scopes"]], "Flow": [[9, "flow"]], "Resources": [[9, "resources"]], "Change log": [[10, "change-log"]], "Version 0.7.3 (2022/11/01)": [[10, "version-0-7-3-2022-11-01"]], "Features and enhancements": [[10, "features-and-enhancements"], [10, "id4"]], "Bugs Fixed": [[10, "bugs-fixed"], [10, "id2"], [10, "id5"], [10, "id7"], [10, "id9"], [10, "id12"], [10, "id14"], [10, "id17"], [10, "id20"], [10, "id23"], [10, "id28"], [10, "id30"], [10, "id32"], [10, "id34"], [10, "id37"], [10, "id39"], [10, "id45"], [10, "id48"], [10, "id50"], [10, "id52"], [10, "id59"], [10, "id64"], [10, "id66"], [10, "id68"], [10, "id71"], [10, "id73"], [10, "id75"], [10, "id79"], [10, "id89"], [10, "id92"], [10, "id94"], [10, "id97"], [10, "id104"]], "Translations": [[10, "translations"], [10, "id1"], [10, "id3"], [10, "id6"], [10, "id18"], [12, "translations"]], "Version 0.7.2 (2022/09/21)": [[10, "version-0-7-2-2022-09-21"]], "Version 0.7.1 (2022/09/21)": [[10, "version-0-7-1-2022-09-21"]], "Version 0.7.0 (2022/09/19)": [[10, "version-0-7-0-2022-09-19"]], "Version 0.6.12 (2022/09/14)": [[10, "version-0-6-12-2022-09-14"]], "Issues Closed": [[10, "issues-closed"], [10, "id8"], [10, "id11"], [10, "id15"], [10, "id19"], [10, "id22"], [10, "id25"], [10, "id27"], [10, "id31"], [10, "id33"], [10, "id35"], [10, "id40"], [10, "id44"], [10, "id47"], [10, "id49"], [10, "id51"], [10, "id53"], [10, "id55"], [10, "id57"], [10, "id62"], [10, "id65"], [10, "id67"], [10, "id70"], [10, "id72"], [10, "id74"], [10, "id77"], [10, "id81"], [10, "id83"], [10, "id85"], [10, "id88"], [10, "id90"], [10, "id93"], [10, "id95"], [10, "id99"], [10, "id102"], [10, "id105"]], "Pull Requests": [[10, "pull-requests"], [10, "id10"], [10, "id13"], [10, "id29"], [10, "id38"], [10, "id42"], [10, "id46"], [10, "id61"]], "Misc": [[10, "misc"], [10, "id21"], [10, "id24"], [10, "id41"], [10, "id43"], [10, "id60"], [10, "id69"], [10, "id76"], [10, "id80"], [10, "id87"], [10, "id98"], [10, "id101"]], "Version 0.6.11 (2022/07/27)": [[10, "version-0-6-11-2022-07-27"]], "Features": [[10, "features"], [10, "id16"], [10, "id26"], [10, "id36"], [12, "features"]], "Version 0.6.10 (2022/07/13)": [[10, "version-0-6-10-2022-07-13"]], "Version 0.6.9 (2022/07/03)": [[10, "version-0-6-9-2022-07-03"]], "Version 0.6.8 (2022/06/22)": [[10, "version-0-6-8-2022-06-22"]], "Version 0.6.7 (2022/06/11)": [[10, "version-0-6-7-2022-06-11"]], "Version 0.6.6 (2022/05/29)": [[10, "version-0-6-6-2022-05-29"]], "Version 0.6.5 (2022/04/24)": [[10, "version-0-6-5-2022-04-24"]], "Version 0.6.4 (2022/04/23)": [[10, "version-0-6-4-2022-04-23"]], "Version 0.6.3 (2022/04/09)": [[10, "version-0-6-3-2022-04-09"]], "Version 0.6.2 (2022/04/03)": [[10, "version-0-6-2-2022-04-03"]], "Version 0.6.1 (2022/03/27)": [[10, "version-0-6-1-2022-03-27"]], "Version 0.6.0 (2022/03/27)": [[10, "version-0-6-0-2022-03-27"]], "Version 0.5.7 (2022/02/13)": [[10, "version-0-5-7-2022-02-13"]], "Security": [[10, "security"]], "Version 0.5.6 (2022/02/05)": [[10, "version-0-5-6-2022-02-05"]], "Version 0.5.5 (2022/01/19)": [[10, "version-0-5-5-2022-01-19"]], "New Features": [[10, "new-features"], [10, "id54"], [10, "id56"], [10, "id58"], [10, "id63"], [10, "id78"], [10, "id82"], [10, "id84"], [10, "id86"], [10, "id91"], [10, "id96"], [10, "id100"], [10, "id103"], [10, "id106"]], "Version 0.5.4 (2022/01/01)": [[10, "version-0-5-4-2022-01-01"]], "Version 0.5.3 (2022/01/01)": [[10, "version-0-5-3-2022-01-01"]], "Version 0.5.2 (2021/12/19)": [[10, "version-0-5-2-2021-12-19"]], "Version 0.5.1 (2021/11/30)": [[10, "version-0-5-1-2021-11-30"]], "Version 0.5.0 (2021/11/14)": [[10, "version-0-5-0-2021-11-14"]], "Version 0.4.9 (2021/07/16)": [[10, "version-0-4-9-2021-07-16"]], "Version 0.4.8 (2021/07/03)": [[10, "version-0-4-8-2021-07-03"]], "Version 0.4.7 (2021/04/07)": [[10, "version-0-4-7-2021-04-07"]], "Version 0.4.6 (2021/02/21)": [[10, "version-0-4-6-2021-02-21"]], "Version 0.4.5 (2021/02/17)": [[10, "version-0-4-5-2021-02-17"]], "Version 0.4.4 (2021/01/31)": [[10, "version-0-4-4-2021-01-31"]], "Version 0.4.3 (2021/01/10)": [[10, "version-0-4-3-2021-01-10"]], "Version 0.4.2 (2021/01/03)": [[10, "version-0-4-2-2021-01-03"]], "Version 0.4.1 (2020/12/31)": [[10, "version-0-4-1-2020-12-31"]], "Version 0.4.0 - FitTrackee on PyPI (2020/09/19)": [[10, "version-0-4-0-fittrackee-on-pypi-2020-09-19"]], "Version 0.3.0 - Administration (2020/07/15)": [[10, "version-0-3-0-administration-2020-07-15"]], "Version 0.2.5 - Fix and improvements (2020/01/31)": [[10, "version-0-2-5-fix-and-improvements-2020-01-31"]], "Version 0.2.4 - Minor fix (2020/01/30)": [[10, "version-0-2-4-minor-fix-2020-01-30"]], "Version 0.2.3 - FitTrackee available in French (2019/12/29)": [[10, "version-0-2-3-fittrackee-available-in-french-2019-12-29"]], "Version 0.2.2 - Statistics fix (2019/09/23)": [[10, "version-0-2-2-statistics-fix-2019-09-23"]], "Version 0.2.1 - Fix and improvements (2019/09/01)": [[10, "version-0-2-1-fix-and-improvements-2019-09-01"]], "Version 0.2.0 - Statistics (2019/07/07)": [[10, "version-0-2-0-statistics-2019-07-07"]], "Version 0.1.1 - Fix and improvements (2019/02/07)": [[10, "version-0-1-1-fix-and-improvements-2019-02-07"]], "Version 0.1.0 - First release \ud83c\udf89 (2018-07-04)": [[10, "version-0-1-0-first-release-2018-07-04"]], "Command line interface": [[11, "command-line-interface"]], "Database": [[11, "database"]], "ftcli db upgrade": [[11, "ftcli-db-upgrade"]], "ftcli db drop": [[11, "ftcli-db-drop"]], "ftcli oauth2 clean": [[11, "ftcli-oauth2-clean"]], "ftcli users clean_tokens": [[11, "ftcli-users-clean-tokens"]], "ftcli users update": [[11, "ftcli-users-update"]], "Account & preferences": [[12, "account-preferences"]], "Administration": [[12, "administration"], [12, "id1"]], "Screenshots": [[12, "screenshots"]], "Dashboard": [[12, "dashboard"]], "Workout detail": [[12, "workout-detail"]], "Workouts list": [[12, "workouts-list"]], "FitTrackee": [[13, "fittrackee"]], "Table of contents": [[13, "table-of-contents"]], "Installation": [[14, "installation"], [14, "id2"], [14, "id6"]], "Prerequisites": [[14, "prerequisites"]], "Environment variables": [[14, "environment-variables"]], "Emails": [[14, "emails"]], "Map tile server": [[14, "map-tile-server"]], "API rate limits \ud83c\udd95": [[14, "api-rate-limits"]], "From PyPI": [[14, "from-pypi"], [14, "id3"]], "From sources": [[14, "from-sources"], [14, "id4"]], "Dev environment": [[14, "dev-environment"], [14, "id5"]], "Production environment": [[14, "production-environment"]], "Upgrade": [[14, "upgrade"]], "Prod environment": [[14, "prod-environment"]], "Deployment": [[14, "deployment"]], "Docker": [[14, "docker"]], "Development": [[14, "development"]], "Administrator": [[15, "administrator"]], "FitTrackee fails to start": [[15, "fittrackee-fails-to-start"]], "Map images are not displayed but map is shown in Workout detail": [[15, "map-images-are-not-displayed-but-map-is-shown-in-workout-detail"]], "Troubleshooting": [[16, "troubleshooting"]], "User": [[17, "user"]]}, "indexentries": {"api_rate_limits \ud83c\udd95": [[14, "envvar-API_RATE_LIMITS"]], "app_log": [[14, "envvar-APP_LOG"]], "app_secret_key": [[14, "envvar-APP_SECRET_KEY"]], "app_settings": [[14, "envvar-APP_SETTINGS"]], "app_workers": [[14, "envvar-APP_WORKERS"]], "database_disable_pooling": [[14, "envvar-DATABASE_DISABLE_POOLING"]], "database_url": [[14, "envvar-DATABASE_URL"]], "default_staticmap": [[14, "envvar-DEFAULT_STATICMAP"]], "email_url": [[14, "envvar-EMAIL_URL"]], "flask_app": [[14, "envvar-FLASK_APP"]], "host": [[14, "envvar-HOST"]], "map_attribution": [[14, "envvar-MAP_ATTRIBUTION"]], "port": [[14, "envvar-PORT"]], "redis_url": [[14, "envvar-REDIS_URL"]], "sender_email": [[14, "envvar-SENDER_EMAIL"]], "staticmap_subdomains": [[14, "envvar-STATICMAP_SUBDOMAINS"]], "tile_server_url": [[14, "envvar-TILE_SERVER_URL"]], "ui_url": [[14, "envvar-UI_URL"]], "upload_folder": [[14, "envvar-UPLOAD_FOLDER"]], "vue_app_api_url": [[14, "envvar-VUE_APP_API_URL"]], "weather_api_key": [[14, "envvar-WEATHER_API_KEY"]], "workers_processes": [[14, "envvar-WORKERS_PROCESSES"]], "environment variable": [[14, "envvar-API_RATE_LIMITS"], [14, "envvar-APP_LOG"], [14, "envvar-APP_SECRET_KEY"], [14, "envvar-APP_SETTINGS"], [14, "envvar-APP_WORKERS"], [14, "envvar-DATABASE_DISABLE_POOLING"], [14, "envvar-DATABASE_URL"], [14, "envvar-DEFAULT_STATICMAP"], [14, "envvar-EMAIL_URL"], [14, "envvar-FLASK_APP"], [14, "envvar-HOST"], [14, "envvar-MAP_ATTRIBUTION"], [14, "envvar-PORT"], [14, "envvar-REDIS_URL"], [14, "envvar-SENDER_EMAIL"], [14, "envvar-STATICMAP_SUBDOMAINS"], [14, "envvar-TILE_SERVER_URL"], [14, "envvar-UI_URL"], [14, "envvar-UPLOAD_FOLDER"], [14, "envvar-VUE_APP_API_URL"], [14, "envvar-WEATHER_API_KEY"], [14, "envvar-WORKERS_PROCESSES"]]}}) \ No newline at end of file +Search.setIndex({"docnames": ["api/auth", "api/configuration", "api/index", "api/oauth2", "api/records", "api/sports", "api/stats", "api/users", "api/workouts", "apps", "changelog", "cli", "features", "index", "installation", "troubleshooting/administrator", "troubleshooting/index", "troubleshooting/user"], "filenames": ["api/auth.rst", "api/configuration.rst", "api/index.rst", "api/oauth2.rst", "api/records.rst", "api/sports.rst", "api/stats.rst", "api/users.rst", "api/workouts.rst", "apps.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", "OAuth2", "Records", "Sports", "Statistics", "Users", "Workouts", "Third-party applications", "Change log", "Command line interface", "Features", "FitTrackee", "Installation", "Administrator", "Troubleshooting", "User"], "terms": {"post": [0, 3, 8, 9], "api": [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13], "auth": [0, 1, 3, 4, 5, 6, 7, 8, 9, 14], "regist": [0, 1, 12, 14], "user": [0, 1, 2, 3, 4, 5, 6, 8, 9, 10, 12, 14, 16], "send": [0, 7, 10, 12, 14], "confirm": [0, 3, 10, 12, 14], "email": [0, 1, 7, 10, 11, 12, 15], "The": [0, 9, 10, 11, 12, 14], "newli": [0, 14], "creat": [0, 3, 8, 9, 10, 12, 14], "account": [0, 7, 10, 11, 14], "i": [0, 1, 3, 9, 10, 11, 12, 13, 14, 16], "inact": [0, 7, 12, 14], "must": [0, 1, 3, 5, 7, 9, 10, 12, 14, 15], "hi": [0, 7, 10, 12], "activ": [0, 5, 7, 10, 11, 12, 13, 14], "exampl": [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 13, 14], "request": [0, 1, 3, 4, 5, 6, 7, 8, 9, 14], "http": [0, 1, 3, 4, 5, 6, 7, 8, 9, 14], "1": [0, 1, 3, 4, 5, 6, 7, 8, 12, 14], "content": [0, 1, 3, 4, 5, 6, 7, 8], "type": [0, 1, 3, 4, 5, 6, 7, 8, 10, 14], "applic": [0, 1, 3, 4, 5, 6, 7, 8, 10, 12, 13, 14], "json": [0, 1, 3, 4, 5, 6, 7, 8], "respons": [0, 1, 3, 4, 5, 6, 7, 8], "success": [0, 1, 3, 4, 5, 6, 7, 8], "200": [0, 1, 3, 4, 5, 6, 7, 8, 10, 14], "statu": [0, 1, 3, 4, 5, 6, 7, 8, 11], "error": [0, 1, 3, 5, 7, 8, 10, 14, 15], "registr": [0, 1, 9, 10, 12, 14], "400": [0, 1, 3, 5, 7, 8], "bad": [0, 1, 3, 5, 7, 8], "messag": [0, 1, 3, 8, 10, 11, 14], "valid": [0, 1, 3, 4, 5, 6, 7, 8, 10, 14, 15], "provid": [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15], "n": 0, "object": [0, 1, 5, 7, 8], "usernam": [0, 6, 7, 10, 14], "string": [0, 1, 3, 5, 6, 7, 8, 9, 14], "3": [0, 5, 6, 7, 8, 12, 14], "30": [0, 6], "charact": [0, 10], "requir": [0, 9, 10, 14], "password": [0, 7, 10, 11, 12, 14], "8": [0, 8], "lang": [0, 10], "languag": [0, 7, 10, 12], "prefer": [0, 7, 10], "invalid": [0, 1, 3, 4, 5, 6, 7, 8, 10, 14], "fallback": 0, "en": [0, 7], "english": [0, 10], "code": [0, 1, 3, 4, 5, 6, 7, 8, 9, 10], "ok": [0, 1, 3, 4, 5, 6, 7, 8], "payload": [0, 1, 3, 5, 7, 8], "sorri": 0, "alreadi": 0, "taken": 0, "onli": [0, 3, 7, 8, 9, 10, 11, 12, 14], "alphanumer": [0, 10], "underscor": 0, "_": [0, 10], "allow": [0, 1, 8, 9, 10, 12, 13, 14], "403": [0, 1, 5, 6, 7, 8], "forbidden": [0, 1, 5, 6, 7, 8], "disabl": [0, 10, 12, 14], "500": [0, 1, 5, 7, 8, 10], "intern": [0, 1, 5, 7, 8], "server": [0, 1, 5, 7, 8, 10, 12, 13], "pleas": [0, 1, 3, 4, 5, 6, 7, 8, 10], "try": [0, 7, 8], "again": [0, 1, 3, 4, 5, 6, 7, 8], "contact": [0, 1, 7, 8, 12], "administr": [0, 1, 7, 8, 9, 16], "after": [0, 3, 9, 10, 12, 14], "auth_token": 0, "web": [0, 9, 13, 14], "token": [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11], "resend": 0, "instruct": [0, 10, 12, 14], "If": [0, 3, 9, 12, 14], "thi": [0, 3, 8, 10, 11, 12, 13, 14], "endpoint": [0, 1, 3, 9, 10, 14], "avail": [0, 4, 9, 11, 12, 14], "resent": 0, "404": [0, 3, 5, 6, 7, 8, 10], "Not": [0, 3, 5, 6, 7, 8], "found": [0, 3, 5, 6, 7, 8, 10], "url": [0, 3, 9, 10, 14, 15], "wa": [0, 10], "login": 0, "an": [0, 1, 3, 5, 7, 9, 10, 12, 14, 15], "can": [0, 7, 9, 10, 12, 13, 14, 15], "log": [0, 1, 3, 4, 5, 6, 7, 8, 12, 13, 14, 15], "successfulli": 0, "401": [0, 1, 3, 4, 5, 6, 7, 8], "unauthor": [0, 1, 3, 4, 5, 6, 7, 8], "credenti": [0, 14], "get": [0, 1, 3, 4, 5, 6, 7, 8, 9], "profil": [0, 3, 9, 10], "info": 0, "scope": [0, 1, 3, 4, 5, 6, 7, 8], "read": [0, 3, 4, 5, 6, 7, 8, 9, 10], "data": [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14], "admin": [0, 1, 4, 5, 6, 7, 8, 10, 11, 12, 14], "fals": [0, 1, 3, 5, 7, 8, 14], "bio": [0, 7], "null": [0, 5, 7, 8, 10], "birth_dat": [0, 7], "created_at": [0, 7], "sun": [0, 4, 7, 8], "14": [0, 3, 7, 8], "jul": [0, 4, 7, 8], "2019": [0, 4, 6, 7, 8], "09": [0, 7], "58": [0, 7, 10], "gmt": [0, 3, 4, 7, 8], "display_asc": 0, "true": [0, 1, 3, 5, 7, 10, 14], "sam": [0, 4, 7, 8], "com": [0, 1, 3, 7, 9, 14], "first_nam": [0, 7], "imperial_unit": [0, 7], "is_act": [0, 5, 7], "last_nam": [0, 7], "locat": [0, 7, 14], "nb_sport": [0, 7], "nb_workout": [0, 6, 7], "6": [0, 1, 5, 7, 8, 11, 12, 14], "pictur": [0, 7, 8, 10], "record": [0, 2, 7, 8, 10, 12], "id": [0, 3, 4, 5, 6, 7, 8, 9], "9": [0, 4, 7, 12, 14], "record_typ": [0, 4, 7, 8], "AS": [0, 4, 7, 8], "sport_id": [0, 4, 5, 6, 7, 8], "valu": [0, 3, 4, 7, 8, 9, 10, 14], "18": [0, 4, 7, 8, 10], "workout_d": [0, 4, 7, 8], "07": [0, 4, 7, 8], "08": [0, 4, 7, 8], "00": [0, 4, 7, 8], "workout_id": [0, 4, 7, 8], "hvybqybra7wwxpastwr4v2": [0, 4, 7, 8], "10": [0, 1, 4, 7, 8, 14], "fd": [0, 4, 7, 8], "13": [0, 4, 7, 8], "ha": [0, 4, 7, 8, 10, 12, 13], "43": [0, 4, 7, 8, 10], "97": [0, 4, 7, 8], "11": [0, 4, 7, 12], "ld": [0, 4, 7, 8], "01": [0, 4, 6, 7, 8], "12": [0, 4, 7, 8, 12], "m": [0, 4, 6, 7, 8], "sports_list": [0, 7], "4": [0, 5, 6, 7, 8, 12, 14], "timezon": [0, 7, 8, 10, 12], "europ": [0, 7], "pari": [0, 7], "total_dist": [0, 6, 7], "67": [0, 7], "895": [0, 7], "total_dur": [0, 6, 7], "50": [0, 7, 10, 14], "27": [0, 3, 7], "weekm": [0, 6, 7], "header": [0, 1, 3, 4, 5, 6, 7, 8, 9], "author": [0, 1, 3, 4, 5, 6, 7, 8, 9, 14], "oauth": [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 14], "2": [0, 1, 3, 4, 5, 6, 7, 8, 9, 12, 14], "0": [0, 1, 3, 4, 5, 6, 7, 8, 9, 11, 12, 14], "bearer": [0, 1, 3, 4, 5, 6, 7, 8], "signatur": [0, 1, 3, 4, 5, 6, 7, 8], "expir": [0, 1, 3, 4, 5, 6, 7, 8, 11], "edit": [0, 10, 12], "write": [0, 1, 3, 5, 7, 8, 9], "updat": [0, 1, 5, 7, 8, 10, 12, 14], "first": [0, 3, 9, 12], "name": [0, 3, 7, 10, 14], "last": [0, 10, 14], "biographi": 0, "birth": [0, 10], "date": [0, 6, 8, 10, 12], "format": [0, 6, 8, 10, 12], "y": [0, 6, 8, 14], "d": [0, 6, 8], "support": [0, 3, 9, 10, 12, 14, 15], "mm": 0, "dd": 0, "yyyi": 0, "default": [0, 3, 6, 7, 8, 10, 12, 14], "date_str": 0, "correspond": 0, "client": [0, 3, 9, 10, 12, 14], "mmm": 0, "do": [0, 1, 5, 6, 7, 8], "local": [0, 10, 13, 14], "fr": [0, 7, 14], "de": [0, 14], "date_format": 0, "us": [0, 3, 7, 8, 9, 10, 12, 13, 14], "displai": [0, 8, 9, 10, 11, 12, 13, 14, 16], "app": [0, 3, 9, 10, 12, 13], "boolean": [0, 1, 3, 7, 11], "highest": [0, 4, 12], "ascent": [0, 4, 8, 10, 12], "total": [0, 3, 10, 12], "distanc": [0, 4, 8, 10, 12], "imperi": [0, 10, 12], "unit": [0, 10, 14], "time": [0, 6, 8, 10, 12], "zone": 0, "doe": [0, 6, 7, 8, 10], "week": [0, 6, 10, 12], "start": [0, 6, 8, 10, 12, 14, 16], "mondai": [0, 6, 12], "don": 0, "t": [0, 10, 15], "match": [0, 10], "sport": [0, 2, 6, 8, 10, 12, 14], "color": [0, 5, 10, 12], "000000": 0, "stopped_speed_threshold": [0, 5], "user_id": 0, "hexadecim": 0, "when": [0, 1, 10, 11, 12, 14], "ad": [0, 10, 11, 12], "workout": [0, 2, 3, 4, 5, 6, 9, 10, 13, 16], "float": [0, 8], "stop": [0, 10, 12, 14], "speed": [0, 4, 8, 10, 12, 14], "threshold": [0, 10, 12], "gpxpy": [0, 12, 14], "exist": [0, 6, 7, 8, 12, 13, 14], "delet": [0, 3, 7, 8, 10, 11, 12], "reset": [0, 7, 10, 11, 12, 14], "given": [0, 3, 14], "204": [0, 3, 7, 8], "paramet": [0, 3, 5, 6, 7, 8, 9, 10, 12, 14], "No": [0, 3, 7, 8, 10, 13], "multipart": [0, 3, 8], "form": [0, 3, 8], "file": [0, 1, 8, 10, 11, 12, 13, 14], "imag": [0, 7, 8, 10, 12, 14, 16], "extens": [0, 8, 14], "jpg": 0, "png": [0, 8, 14], "gif": 0, "part": [0, 8], "select": [0, 8, 12], "413": [0, 8], "entiti": [0, 8], "too": [0, 8], "larg": [0, 8, 12, 14], "dure": [0, 8], "size": [0, 1, 8, 10, 12, 14], "exce": [0, 8, 10], "0mb": [0, 8], "NO": [0, 3, 7, 8], "handl": [0, 12, 14], "process": [0, 10, 14], "patch": [0, 1, 5, 7, 8], "It": [0, 7, 9, 10, 12, 13, 15], "enabl": [0, 1, 7, 12, 14], "chang": [0, 12, 13, 14], "one": [0, 7, 8, 12], "current": [0, 10], "address": [0, 12, 14], "inform": [0, 10, 13, 14], "anoth": [0, 7, 14], "new": [0, 7, 9, 11, 12, 14], "new_password": 0, "miss": [0, 10], "logout": [0, 10], "blacklist": [0, 11], "out": 0, "access": [0, 3, 9, 10, 14], "revok": [0, 3], "malform": 0, "other": [0, 7, 14], "reason": 0, "config": [1, 10, 14], "admin_contact": 1, "gpx_limit_import": 1, "is_email_sending_en": 1, "is_registration_en": 1, "max_single_file_s": 1, "1048576": 1, "max_us": 1, "max_zip_file_s": 1, "10485760": 1, "map_attribut": [1, 14], "copi": [1, 14], "href": [1, 14], "www": [1, 14], "openstreetmap": [1, 10, 14], "org": [1, 14], "copyright": [1, 14], "contributor": [1, 10, 14], "version": [1, 11, 14], "7": [1, 8, 9, 11, 12, 14], "authent": [1, 2, 3, 4, 5, 7, 8, 9], "integ": [1, 3, 5, 6, 7, 8], "max": [1, 7, 8, 10], "number": [1, 7, 8, 10, 11, 12, 14], "zip": [1, 8, 10, 12], "archiv": [1, 10, 12, 14], "singl": [1, 7, 10, 12, 14], "instanc": [1, 3, 9, 10, 12, 14], "you": [1, 5, 6, 7, 8, 12, 13, 14], "have": [1, 5, 6, 7, 8, 10], "permiss": [1, 5, 6, 7, 8], "ping": 1, "health": 1, "check": [1, 10, 14, 15], "pong": 1, "configur": [2, 9, 10, 12, 14], "oauth2": [2, 9], "statist": 2, "pagin": [3, 7, 8], "5": [3, 5, 6, 7, 8, 11, 12, 14], "page": [3, 7, 8, 10], "fittracke": [3, 9, 11, 12, 14, 16], "parti": [3, 12, 13], "without": [3, 6, 7, 8, 10, 12, 13], "client_descript": 3, "client_id": [3, 9], "o22a27s2abpuoxjbxv3ujdox": 3, "issued_at": 3, "thu": 3, "juli": 3, "2022": 3, "06": [3, 6], "53": [3, 10], "gpx": [3, 8, 10, 12, 13, 14], "import": [3, 10, 14], "redirect_uri": 3, "callback": [3, 9], "websit": 3, "has_next": 3, "has_prev": 3, "queri": [3, 6, 7, 8], "client_secret": 3, "secret": [3, 9, 14], "client_nam": 3, "client_uri": 3, "arrai": 3, "list": [3, 10, 13, 14], "redirect": [3, 9], "descript": [3, 11, 14], "option": [3, 9, 10, 11, 14], "client_client_id": 3, "NOT": [3, 5, 8], "int": [3, 5, 8], "by_id": 3, "all": [3, 4, 5, 6, 7, 14], "associ": 3, "issu": [3, 13, 14], "response_typ": [3, 9], "state": [3, 9], "uniqu": [3, 9], "prevent": [3, 9, 14], "cross": [3, 9, 12], "site": [3, 9], "forgeri": [3, 9], "mandatori": [3, 8, 9, 10, 14], "recommend": [3, 9, 14], "code_challeng": [3, 9], "gener": [3, 9, 10, 12, 14], "from": [3, 6, 8, 9, 10, 12, 13], "verifi": [3, 9], "pkce": [3, 9], "code_challenge_method": [3, 9], "method": [3, 9, 14], "challeng": [3, 9], "s256": [3, 9], "return": [3, 4, 7, 8, 10, 14], "authlib": [3, 9, 14], "librari": [3, 9, 14], "refresh": [3, 10], "access_token": 3, "roehv64thcg28wcewzhrnvlusoduvw8nvnhkcml57": 3, "expires_in": 3, "864000": 3, "refresh_token": 3, "nuv9cy8vqonrqkhtz5pqaq2zw7msh0mornpjr14amswd6f6i": 3, "token_typ": 3, "expires_at": 3, "1658660147": 3, "0667062": 3, "grant_typ": 3, "grant": [3, 9], "authorization_cod": [3, 9], "ar": [3, 4, 8, 9, 10, 11, 12, 13, 14, 16], "code_verifi": 3, "follow": [4, 9, 11, 12, 14, 15], "averag": [4, 8, 10, 12], "farthest": [4, 10, 12], "longest": [4, 10, 12], "durat": [4, 8, 10, 12], "maximum": [4, 10, 12], "non": [5, 13], "is_active_for_us": 5, "label": [5, 10], "cycl": [5, 10, 12], "transport": [5, 10, 12], "hike": [5, 10, 12], "mountain": [5, 12], "bike": [5, 8, 10, 12], "run": [5, 9, 10, 12, 14], "walk": [5, 10, 12], "has_workout": 5, "stat": [6, 10], "user_nam": [6, 7], "by_tim": 6, "2018": [6, 8], "2017": [6, 8], "average_spe": 6, "48": 6, "total_asc": 6, "203": 6, "156": [6, 10], "15": [6, 8], "282": 6, "12341": 6, "16": [6, 8], "99": [6, 10], "150": 6, "178": [6, 10], "47": [6, 8, 10], "9960": 6, "95": [6, 10], "46": [6, 10], "78": 6, "613": 6, "1267": 6, "end": [6, 8], "frame": 6, "sundai": [6, 8, 12], "month": [6, 10, 12], "year": [6, 12], "by_sport": 6, "uploads_dir_s": 6, "1000": 6, "regardless": 7, "right": [7, 9, 10, 11, 12, 14], "some": [7, 8, 9, 10, 12, 13, 14], "order_bi": [7, 8], "workouts_count": 7, "par_pag": 7, "is_admin": 7, "sat": 7, "20": 7, "03": [7, 8], "per_pag": [7, 8], "per": [7, 8, 10, 14], "q": 7, "order": [7, 8, 9, 10], "sort": [7, 8], "asc": [7, 8], "desc": [7, 8], "criteria": [7, 8], "detail": [7, 10, 14, 16], "jpeg": 7, "add": [7, 10, 11, 12, 13], "remov": [7, 10, 11, 12], "modifi": [7, 10, 11, 14], "new_email": 7, "reset_password": 7, "differ": [7, 10, 12], "than": [7, 10, 11], "curent": 7, "A": [7, 10, 11, 12, 14, 15], "own": [7, 12, 13], "except": [7, 14, 15], "he": 7, "": [7, 8, 10, 14], "john_do": 7, "your": [7, 12, 13, 14], "02": 8, "31": 8, "least": 8, "ave_spe": 8, "bound": 8, "creation_d": 8, "51": 8, "descent": [8, 10, 12], "17": [8, 14], "04": 8, "kjxavsturjvoah2wvcegef": 8, "map": [8, 10, 12, 13, 16], "max_alt": 8, "max_spe": 8, "min_alt": 8, "modification_d": 8, "move": [8, 10], "next_workout": 8, "note": [8, 10, 12, 14], "paus": [8, 10], "previous_workout": 8, "mon": 8, "jan": 8, "segment": [8, 10, 12], "titl": 8, "weather_end": 8, "weather_start": 8, "with_gpx": 8, "100": [8, 10, 12], "distance_from": 8, "minim": [8, 9], "distance_to": 8, "maxim": 8, "duration_from": 8, "h": [8, 12], "duration_to": 8, "ave_speed_from": 8, "ave_speed_to": 8, "max_speed_from": 8, "max_speed_to": 8, "workout_short_id": 8, "57": [8, 10], "45": 8, "22": 8, "morn": 8, "short": 8, "leaflet": [8, 14], "chart_data": 8, "chart": [8, 10, 12, 14], "j": [8, 10, 14], "elev": [8, 10, 12, 14], "279": 8, "latitud": 8, "5078118": 8, "longitud": 8, "1232004": 8, "63": 8, "fri": 8, "44": [8, 10], "7380": 8, "280": 8, "5079733": 8, "1234538": 8, "39": 8, "segment_id": 8, "rechart": 8, "map_id": 8, "fa33f4d996844a5c73ecd1ae24456ab8": 8, "1563529507772": 8, "map_til": 8, "z": [8, 14], "x": [8, 9, 14], "tile": [8, 10, 12], "c": [8, 14], "4109": 8, "2930": 8, "subdomain": [8, 10, 14], "zoom": 8, "index": 8, "along": 8, "axi": 8, "download": [8, 10, 12, 14], "xml": 8, "201": [8, 10], "no_gpx": 8, "uuid": [8, 10], "km": [8, 12], "second": 8, "rest": 9, "see": [9, 10, 12, 13, 14, 15], "document": [9, 13, 14], "whose": 9, "most": 9, "To": [9, 10, 14], "interact": 9, "set": [9, 10, 11, 12, 14, 15], "tab": 9, "exchang": 9, "sent": [9, 10, 12, 14], "bodi": [9, 10, 14], "better": [9, 10], "secur": 9, "relat": [9, 12, 14], "shown": [9, 10, 16], "thei": [9, 14], "store": [9, 12, 13], "3rd": 9, "need": [9, 10, 14], "fittrackee_host": 9, "sinc": [9, 14], "separ": [9, 14], "space": 9, "For": [9, 12, 14], "3aread": 9, "3awrit": 9, "so": 9, "fetch": [9, 14], "implement": 9, "behind": 9, "proxi": [9, 14], "forward": [9, 14], "proto": [9, 14], "nginx": [9, 10, 12, 14], "proxy_set_head": [9, 14], "scheme": [9, 14], "about": [9, 14], "simplifi": [9, 10], "aaron": 9, "parecki": 9, "oauthlib": 9, "python": [9, 10, 14], "session": 9, "3c8d9c2": 10, "trail": [10, 12], "comma": [10, 14], "dev": 10, "depend": [10, 14], "264": 10, "ui": 10, "white": 10, "grai": 10, "background": 10, "266": 10, "host": [10, 14], "weblat": 10, "german": 10, "thank": 10, "qwerty287": 10, "260": 10, "261": 10, "should": [10, 14], "limit": [10, 12], "still": [10, 12, 13, 14], "89": 10, "b1536fc": 10, "257": 10, "jat255": 10, "112": 10, "244": 10, "virtual": [10, 12], "ride": 10, "246": 10, "postgresql": [10, 14, 15], "247": 10, "microsecond": 10, "pr": 10, "252": 10, "init": [10, 14], "norwegian": 10, "bokm\u00e5l": 10, "contain": [10, 14], "databas": [10, 12, 14, 15], "migrat": [10, 11, 14], "upgrad": 10, "242": 10, "241": 10, "strength": 10, "estim": 10, "packag": [10, 14], "239": 10, "cb9d02f": 10, "88": 10, "231": 10, "236": 10, "rate": 10, "232": 10, "hidden": [10, 12], "237": 10, "212": 10, "lavoi": 10, "230": 10, "problem": 10, "225": 10, "grammar": 10, "skylan0916": 10, "In": [10, 12], "execut": 10, "lower": 10, "v0": [10, 14], "postgr": [10, 15], "213": 10, "measur": 10, "ft": 10, "mi": 10, "223": 10, "icon": [10, 14], "167": 10, "dashboard": 10, "162": 10, "fmstrat": 10, "210": 10, "could": 10, "environ": [10, 11, 15], "variabl": [10, 15], "staticmap_subdomain": [10, 14], "209": 10, "incorrect": 10, "track": [10, 13], "multipl": 10, "gorgobacka": 10, "now": [10, 11, 12, 14], "And": 10, "detect": 10, "browser": 10, "208": 10, "card": 10, "html": 10, "attribut": [10, 14], "197": 10, "196": 10, "manag": [10, 11, 14], "tool": [10, 14], "190": 10, "were": 10, "193": 10, "192": 10, "instead": [10, 12], "191": 10, "layout": 10, "includ": 10, "195": 10, "affect": 10, "previous": 10, "cc4287e": 10, "docker": 10, "env": [10, 14], "offset": 10, "refacto": 10, "befor": [10, 14], "introduc": 10, "possibl": [10, 12, 13, 14], "smtp": [10, 14], "reduc": 10, "pre": 10, "requisit": 10, "cli": [10, 11, 12, 14], "180": 10, "cannot": [10, 12], "tl": [10, 14], "177": 10, "posit": [10, 12], "small": 10, "screen": [10, 12], "175": 10, "173": 10, "link": [10, 14], "171": 10, "correctli": 10, "155": 10, "106": 10, "169": 10, "161": 10, "160": 10, "sever": [10, 12, 13, 14], "danielsiersleben": 10, "report": 10, "initi": [10, 14], "command": [10, 12, 13, 14], "149": 10, "initialis": [10, 14], "152": 10, "autoescap": 10, "jinja": 10, "templat": 10, "151": 10, "sanit": 10, "input": 10, "serv": [10, 14], "dramatiq": [10, 14], "warn": [10, 12], "launch": 10, "worker": [10, 14], "w": 10, "script": 10, "entrypoint": 10, "drop": 10, "avoid": 10, "product": 10, "dotenv": 10, "146": 10, "filter": [10, 12], "145": 10, "model": 10, "140": 10, "fullscreen": 10, "control": [10, 12, 14], "138": 10, "135": 10, "finish": 10, "marker": 10, "134": 10, "wind": [10, 12], "direct": [10, 12], "877fa0f": 10, "calendar": [10, 12], "resolut": 10, "131": 10, "129": 10, "127": [10, 14], "pars": [10, 14], "legitim": 10, "uri": 10, "localhost": [10, 14], "25": [10, 14], "123": 10, "121": 10, "snowsho": [10, 12], "116": 10, "button": 10, "graph": 10, "115": 10, "91": 10, "min": 10, "altitud": 10, "90": 10, "seem": 10, "104": 10, "switch": 10, "agplv3": 10, "licens": [10, 13, 14], "101": 10, "full": [10, 12], "develop": [10, 11, 13], "98": 10, "109": 10, "slow": 10, "movement": 10, "84": 10, "93": 10, "paf38": 10, "83": 10, "static": [10, 12, 14], "keep": [10, 13, 14], "default_staticmap": [10, 14], "81": 10, "remain": 10, "textarea": 10, "82": 10, "dai": [10, 11, 12, 14], "80": [10, 14], "save": [10, 12], "79": 10, "fail": [10, 16], "make": [10, 14], "rebuild": 10, "75": 10, "same": 10, "javascript": [10, 14], "due": 10, "sqlalchemi": [10, 14, 15], "engin": [10, 14, 15], "longer": [10, 15], "database_url": [10, 14], "72": 10, "exceed": 10, "71": 10, "greater": 10, "70": 10, "less": 10, "upload": [10, 11, 12, 14], "66": 10, "64": 10, "62": 10, "refactor": 10, "evalu": [10, 14], "purpos": [10, 14], "standard": [10, 14], "term": [10, 14], "directori": [10, 12, 14], "also": [10, 11, 13, 14], "59": 10, "major": 10, "instal": [10, 13], "becom": 10, "more": [10, 11, 13, 14], "easi": 10, "been": [10, 13], "renam": 10, "layer": [10, 14], "replac": [10, 14], "thunderforest": [10, 14], "outdoor": [10, 12, 13, 14], "54": 10, "redi": [10, 14], "complet": 10, "side": 10, "4c3fc34": 10, "empti": [10, 11, 14], "34614d5": 10, "spinner": 10, "load": [10, 15], "b862a77": 10, "2e1ee2c": 10, "interceptor": 10, "rout": [10, 14], "definit": 10, "down": 10, "weekend": 10, "40": 10, "i18n": 10, "41": 10, "show": [10, 11, 14], "point": [10, 14], "mous": 10, "over": 10, "choos": [10, 12], "36": 10, "33": 10, "37": 10, "34": 10, "weather": [10, 12, 14], "anymor": 10, "poetri": [10, 14], "pipenv": 10, "calcul": 10, "28": 10, "26": 10, "tooltip": [10, 12], "creation": [10, 12], "montain": 10, "even": [10, 12], "enter": [10, 12], "darkski": [10, 12], "kei": [10, 12, 14], "farest": 10, "search": 10, "owner": [10, 12, 14], "view": [10, 12, 14], "usag": [11, 14], "arg": [11, 14], "help": [11, 14], "exit": [11, 14], "deprec": 11, "next": [11, 12], "fittrackee_set_admin": 11, "fittrackee_upgrade_db": 11, "appli": 11, "kind": 12, "encrypt": 12, "With": [12, 14], "open": [12, 13, 14], "street": [12, 13], "electr": 12, "row": 12, "ski": 12, "alpin": 12, "countri": 12, "overridden": 12, "which": 12, "up": [12, 13], "metric": 12, "system": [12, 14], "arrow": 12, "indic": 12, "come": 12, "period": 12, "mai": [12, 13, 14], "origin": 12, "dropdown": 12, "On": [12, 14], "case": [12, 14], "line": [12, 13, 14], "between": 12, "hide": 12, "overrid": 12, "appear": 12, "third": [12, 13], "defin": 12, "individu": 12, "necessari": [12, 14], "like": [12, 14], "lock": 12, "via": 12, "mobil": 13, "yet": 13, "export": [13, 14], "them": 13, "android": 13, "exhaust": 13, "runner": 13, "gpl": 13, "v3": 13, "forrunn": 13, "opentrack": 13, "apach": 13, "fitotrack": 13, "under": [13, 14], "heavi": [13, 14], "featur": [13, 14], "unstabl": [13, 14], "interfac": [13, 14], "troubleshoot": 13, "written": 14, "typescript": 14, "flask": 14, "staticmap": 14, "coordin": 14, "forecast": 14, "io": 14, "dark": 14, "sky": 14, "former": 14, "task": 14, "queue": 14, "vue3": 14, "vuex": 14, "logo": 14, "made": 14, "freepik": 14, "flaticon": 14, "fork": 14, "awesom": 14, "yarn": 14, "compos": 14, "step": 14, "describ": 14, "linux": 14, "test": 14, "debian": 14, "arch": 14, "o": 14, "encount": 14, "adapt": 14, "makefil": 14, "custom": 14, "flask_app": 14, "modul": 14, "pwd": 14, "__main__": 14, "py": 14, "els": 14, "port": 14, "5000": 14, "app_set": 14, "productionconfig": 14, "app_secret_kei": 14, "strong": 14, "jwt": 14, "app_work": 14, "spawn": 14, "gunicorn": [14, 15], "app_log": 14, "path": [14, 15], "upload_fold": [14, 15], "absolut": [14, 15], "where": 14, "folder": 14, "application_directori": 14, "virtualenv": 14, "5432": 14, "begin": 14, "database_disable_pool": 14, "pool": 14, "entri": 14, "directli": 14, "ui_url": 14, "email_url": [14, 15], "sender_email": 14, "sender": 14, "redis_url": 14, "workers_process": 14, "api_rate_limit": 14, "300": 14, "minut": 14, "tile_server_url": 14, "b": 14, "osm": 14, "franc": 14, "target": 14, "_blank": 14, "rel": 14, "noopen": 14, "noreferr": 14, "komoot": 14, "otherwis": 14, "insensit": 14, "weather_api_kei": 14, "weather_api": 14, "vue_app_api_url": 14, "unencrypt": 14, "ssl": 14, "465": 14, "starttl": 14, "587": 14, "office365": 14, "work": 14, "omit": 14, "old": 14, "adress": 14, "apikei": 14, "xxxx": 14, "servic": 14, "expect": 14, "osmfr": 14, "fond": 14, "cart": 14, "par": 14, "mention": 14, "legal": 14, "nofollow": 14, "sou": 14, "nbsp": 14, "creativecommon": 14, "sa": 14, "licenc": 14, "cc": 14, "BY": 14, "chosen": 14, "randomli": 14, "base": 14, "ip": 14, "fix": 14, "window": 14, "strategi": 14, "subject": 14, "asset": 14, "notat": 14, "hour": 14, "mainten": 14, "diagnost": 14, "util": 14, "commmand": 14, "clear": 14, "specif": 14, "enumer": 14, "wai": 14, "pip": 14, "WITH": 14, "schema": 14, "privileg": 14, "nano": 14, "ftcli": 14, "db": 14, "fittrackee_work": 14, "systemd": 14, "3000": 14, "archlinux": 14, "yai": 14, "project": 14, "clone": 14, "repo": 14, "git": 14, "github": 14, "samr1": 14, "cd": 14, "vue": 14, "releas": 14, "wget": 14, "tar": 14, "gz": 14, "xzf": 14, "mv": 14, "sql": 14, "backup": 14, "pg_dump": 14, "u": 14, "changelog": 14, "restart": 14, "pull": 14, "repositori": 14, "overwrit": 14, "cp": 14, "r": 14, "There": 14, "One": 14, "pass": 14, "distribut": 14, "network": 14, "startlimitintervalsec": 14, "simpl": 14, "alwai": 14, "restartsec": 14, "standardoutput": 14, "syslog": 14, "standarderror": 14, "syslogidentifi": 14, "workingdirectori": 14, "home": 14, "execstart": 14, "venv": 14, "bin": 14, "create_app": 14, "logfil": 14, "wantedbi": 14, "multi": 14, "OF": 14, "listen": 14, "443": 14, "http2": 14, "server_nam": 14, "ssl_certif": 14, "fullchain": 14, "pem": 14, "ssl_certificate_kei": 14, "privkei": 14, "how": 14, "1mb": 14, "larger": 14, "ll": 14, "uncom": 14, "below": 14, "want": 14, "client_max_body_s": 14, "1m": 14, "proxy_pass": 14, "proxy_redirect": 14, "real": 14, "remote_addr": 14, "proxy_add_x_forwarded_for": 14, "301": 14, "request_uri": 14, "build": 14, "8025": 14, "mailhog": 14, "shell": 14, "insid": 14, "addit": 14, "fittrackee_cli": 14, "lint": 14, "exc": 15, "nosuchmoduleerror": 15, "plugin": 15, "dialect": 15, "invalidemailurlschem": 15, "todo": 17}, "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-logout", "/api/auth/logout"], [0, 0, 1, "post--api-auth-password-reset-request", "/api/auth/password/reset-request"], [0, 0, 1, "post--api-auth-password-update", "/api/auth/password/update"], [0, 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"], [3, 2, 1, "get--api-oauth-apps", "/api/oauth/apps"], [3, 0, 1, "post--api-oauth-apps", "/api/oauth/apps"], [3, 1, 1, "delete--api-oauth-apps-(int-client_id)", "/api/oauth/apps/(int:client_id)"], [3, 2, 1, "get--api-oauth-apps-(int-client_id)-by_id", "/api/oauth/apps/(int:client_id)/by_id"], [3, 0, 1, "post--api-oauth-apps-(int-client_id)-revoke", "/api/oauth/apps/(int:client_id)/revoke"], [3, 2, 1, "get--api-oauth-apps-(string-client_client_id)", "/api/oauth/apps/(string:client_client_id)"], [3, 0, 1, "post--api-oauth-authorize", "/api/oauth/authorize"], [3, 0, 1, "post--api-oauth-revoke", "/api/oauth/revoke"], [3, 0, 1, "post--api-oauth-token", "/api/oauth/token"], [1, 2, 1, "get--api-ping", "/api/ping"], [4, 2, 1, "get--api-records", "/api/records"], [5, 2, 1, "get--api-sports", "/api/sports"], [5, 2, 1, "get--api-sports-(int-sport_id)", "/api/sports/(int:sport_id)"], [5, 3, 1, "patch--api-sports-(int-sport_id)", "/api/sports/(int:sport_id)"], [6, 2, 1, "get--api-stats-(user_name)-by_sport", "/api/stats/(user_name)/by_sport"], [6, 2, 1, "get--api-stats-(user_name)-by_time", "/api/stats/(user_name)/by_time"], [6, 2, 1, "get--api-stats-all", "/api/stats/all"], [7, 2, 1, "get--api-users", "/api/users"], [7, 1, 1, "delete--api-users-(user_name)", "/api/users/(user_name)"], [7, 2, 1, "get--api-users-(user_name)", "/api/users/(user_name)"], [7, 3, 1, "patch--api-users-(user_name)", "/api/users/(user_name)"], [7, 2, 1, "get--api-users-(user_name)-picture", "/api/users/(user_name)/picture"], [8, 2, 1, "get--api-workouts", "/api/workouts"], [8, 0, 1, "post--api-workouts", "/api/workouts"], [8, 1, 1, "delete--api-workouts-(string-workout_short_id)", "/api/workouts/(string:workout_short_id)"], [8, 2, 1, "get--api-workouts-(string-workout_short_id)", "/api/workouts/(string:workout_short_id)"], [8, 3, 1, "patch--api-workouts-(string-workout_short_id)", "/api/workouts/(string:workout_short_id)"], [8, 2, 1, "get--api-workouts-(string-workout_short_id)-chart_data", "/api/workouts/(string:workout_short_id)/chart_data"], [8, 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)"], [8, 2, 1, "get--api-workouts-(string-workout_short_id)-gpx", "/api/workouts/(string:workout_short_id)/gpx"], [8, 2, 1, "get--api-workouts-(string-workout_short_id)-gpx-download", "/api/workouts/(string:workout_short_id)/gpx/download"], [8, 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)"], [8, 2, 1, "get--api-workouts-map-(map_id)", "/api/workouts/map/(map_id)"], [8, 0, 1, "post--api-workouts-no_gpx", "/api/workouts/no_gpx"], [14, 4, 1, "envvar-API_RATE_LIMITS", "API_RATE_LIMITS \ud83c\udd95"], [14, 4, 1, "-", "APP_LOG"], [14, 4, 1, "-", "APP_SECRET_KEY"], [14, 4, 1, "-", "APP_SETTINGS"], [14, 4, 1, "-", "APP_WORKERS"], [14, 4, 1, "-", "DATABASE_DISABLE_POOLING"], [14, 4, 1, "-", "DATABASE_URL"], [14, 4, 1, "-", "DEFAULT_STATICMAP"], [14, 4, 1, "-", "EMAIL_URL"], [14, 4, 1, "-", "FLASK_APP"], [14, 4, 1, "-", "HOST"], [14, 4, 1, "-", "MAP_ATTRIBUTION"], [14, 4, 1, "-", "PORT"], [14, 4, 1, "-", "REDIS_URL"], [14, 4, 1, "-", "SENDER_EMAIL"], [14, 4, 1, "-", "STATICMAP_SUBDOMAINS"], [14, 4, 1, "-", "TILE_SERVER_URL"], [14, 4, 1, "-", "UI_URL"], [14, 4, 1, "-", "UPLOAD_FOLDER"], [14, 4, 1, "-", "VUE_APP_API_URL"], [14, 4, 1, "-", "WEATHER_API_KEY"], [14, 4, 1, "-", "WORKERS_PROCESSES"]], "/api/workouts/map_tile/(s)/(z)/(x)/(y)": [[8, 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, 14], "document": [2, 10], "endpoint": 2, "oauth2": [3, 11], "record": 4, "sport": 5, "statist": [6, 10, 12], "user": [7, 11, 17], "workout": [8, 12, 15], "third": 9, "parti": 9, "applic": 9, "scope": 9, "flow": 9, "resourc": 9, "chang": 10, "log": 10, "version": 10, "0": 10, "7": 10, "6": 10, "2022": 10, "11": 10, "09": 10, "translat": [10, 12], "misc": 10, "5": 10, "bug": 10, "fix": 10, "4": 10, "05": 10, "3": 10, "01": 10, "featur": [10, 12], "enhanc": 10, "2": 10, "21": 10, "1": 10, "19": 10, "12": 10, "14": 10, "issu": 10, "close": 10, "pull": 10, "request": 10, "07": 10, "27": 10, "10": 10, "13": 10, "9": 10, "03": 10, "8": 10, "06": 10, "22": 10, "29": 10, "04": 10, "24": 10, "23": 10, "02": 10, "secur": 10, "new": 10, "2021": 10, "30": 10, "16": 10, "17": 10, "31": 10, "2020": 10, "fittracke": [10, 13, 15], "pypi": [10, 14], "administr": [10, 12, 15], "15": 10, "improv": 10, "minor": 10, "avail": 10, "french": 10, "2019": 10, "first": 10, "releas": 10, "2018": 10, "command": 11, "line": 11, "interfac": 11, "databas": 11, "ftcli": 11, "db": 11, "upgrad": [11, 14], "drop": 11, "clean": 11, "clean_token": 11, "updat": 11, "account": 12, "prefer": 12, "screenshot": 12, "dashboard": 12, "detail": [12, 15], "list": 12, "tabl": 13, "content": 13, "instal": 14, "prerequisit": 14, "environ": 14, "variabl": 14, "email": 14, "map": [14, 15], "tile": 14, "server": 14, "rate": 14, "limit": 14, "from": 14, "sourc": 14, "dev": 14, "product": 14, "prod": 14, "deploy": 14, "docker": 14, "develop": 14, "fail": 15, "start": 15, "imag": 15, "ar": 15, "displai": 15, "i": 15, "shown": 15, "troubleshoot": 16}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 8, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx": 57}, "alltitles": {"Authentication": [[0, "authentication"]], "Configuration": [[1, "configuration"]], "API documentation": [[2, "api-documentation"]], "Endpoints:": [[2, null]], "OAuth2": [[3, "oauth2"], [11, "oauth2"]], "Records": [[4, "records"]], "Sports": [[5, "sports"]], "Statistics": [[6, "statistics"], [12, "statistics"]], "Users": [[7, "users"], [11, "users"]], "Workouts": [[8, "workouts"], [12, "workouts"]], "Third-party applications": [[9, "third-party-applications"]], "Scopes": [[9, "scopes"]], "Flow": [[9, "flow"]], "Resources": [[9, "resources"]], "Change log": [[10, "change-log"]], "Version 0.7.6 (2022/11/09)": [[10, "version-0-7-6-2022-11-09"]], "Translations": [[10, "translations"], [10, "id1"], [10, "id3"], [10, "id5"], [10, "id6"], [10, "id8"], [10, "id11"], [10, "id24"], [12, "translations"]], "Misc": [[10, "misc"], [10, "id13"], [10, "id27"], [10, "id30"], [10, "id47"], [10, "id49"], [10, "id66"], [10, "id75"], [10, "id82"], [10, "id86"], [10, "id93"], [10, "id104"], [10, "id107"]], "Version 0.7.5 (2022/11/09)": [[10, "version-0-7-5-2022-11-09"]], "Bugs Fixed": [[10, "bugs-fixed"], [10, "id2"], [10, "id4"], [10, "id7"], [10, "id10"], [10, "id12"], [10, "id15"], [10, "id18"], [10, "id20"], [10, "id23"], [10, "id26"], [10, "id29"], [10, "id34"], [10, "id36"], [10, "id38"], [10, "id40"], [10, "id43"], [10, "id45"], [10, "id51"], [10, "id54"], [10, "id56"], [10, "id58"], [10, "id65"], [10, "id70"], [10, "id72"], [10, "id74"], [10, "id77"], [10, "id79"], [10, "id81"], [10, "id85"], [10, "id95"], [10, "id98"], [10, "id100"], [10, "id103"], [10, "id110"]], "Version 0.7.4 (2022/11/05)": [[10, "version-0-7-4-2022-11-05"]], "Documentation": [[10, "documentation"]], "Version 0.7.3 (2022/11/01)": [[10, "version-0-7-3-2022-11-01"]], "Features and enhancements": [[10, "features-and-enhancements"], [10, "id9"]], "Version 0.7.2 (2022/09/21)": [[10, "version-0-7-2-2022-09-21"]], "Version 0.7.1 (2022/09/21)": [[10, "version-0-7-1-2022-09-21"]], "Version 0.7.0 (2022/09/19)": [[10, "version-0-7-0-2022-09-19"]], "Version 0.6.12 (2022/09/14)": [[10, "version-0-6-12-2022-09-14"]], "Issues Closed": [[10, "issues-closed"], [10, "id14"], [10, "id17"], [10, "id21"], [10, "id25"], [10, "id28"], [10, "id31"], [10, "id33"], [10, "id37"], [10, "id39"], [10, "id41"], [10, "id46"], [10, "id50"], [10, "id53"], [10, "id55"], [10, "id57"], [10, "id59"], [10, "id61"], [10, "id63"], [10, "id68"], [10, "id71"], [10, "id73"], [10, "id76"], [10, "id78"], [10, "id80"], [10, "id83"], [10, "id87"], [10, "id89"], [10, "id91"], [10, "id94"], [10, "id96"], [10, "id99"], [10, "id101"], [10, "id105"], [10, "id108"], [10, "id111"]], "Pull Requests": [[10, "pull-requests"], [10, "id16"], [10, "id19"], [10, "id35"], [10, "id44"], [10, "id48"], [10, "id52"], [10, "id67"]], "Version 0.6.11 (2022/07/27)": [[10, "version-0-6-11-2022-07-27"]], "Features": [[10, "features"], [10, "id22"], [10, "id32"], [10, "id42"], [12, "features"]], "Version 0.6.10 (2022/07/13)": [[10, "version-0-6-10-2022-07-13"]], "Version 0.6.9 (2022/07/03)": [[10, "version-0-6-9-2022-07-03"]], "Version 0.6.8 (2022/06/22)": [[10, "version-0-6-8-2022-06-22"]], "Version 0.6.7 (2022/06/11)": [[10, "version-0-6-7-2022-06-11"]], "Version 0.6.6 (2022/05/29)": [[10, "version-0-6-6-2022-05-29"]], "Version 0.6.5 (2022/04/24)": [[10, "version-0-6-5-2022-04-24"]], "Version 0.6.4 (2022/04/23)": [[10, "version-0-6-4-2022-04-23"]], "Version 0.6.3 (2022/04/09)": [[10, "version-0-6-3-2022-04-09"]], "Version 0.6.2 (2022/04/03)": [[10, "version-0-6-2-2022-04-03"]], "Version 0.6.1 (2022/03/27)": [[10, "version-0-6-1-2022-03-27"]], "Version 0.6.0 (2022/03/27)": [[10, "version-0-6-0-2022-03-27"]], "Version 0.5.7 (2022/02/13)": [[10, "version-0-5-7-2022-02-13"]], "Security": [[10, "security"]], "Version 0.5.6 (2022/02/05)": [[10, "version-0-5-6-2022-02-05"]], "Version 0.5.5 (2022/01/19)": [[10, "version-0-5-5-2022-01-19"]], "New Features": [[10, "new-features"], [10, "id60"], [10, "id62"], [10, "id64"], [10, "id69"], [10, "id84"], [10, "id88"], [10, "id90"], [10, "id92"], [10, "id97"], [10, "id102"], [10, "id106"], [10, "id109"], [10, "id112"]], "Version 0.5.4 (2022/01/01)": [[10, "version-0-5-4-2022-01-01"]], "Version 0.5.3 (2022/01/01)": [[10, "version-0-5-3-2022-01-01"]], "Version 0.5.2 (2021/12/19)": [[10, "version-0-5-2-2021-12-19"]], "Version 0.5.1 (2021/11/30)": [[10, "version-0-5-1-2021-11-30"]], "Version 0.5.0 (2021/11/14)": [[10, "version-0-5-0-2021-11-14"]], "Version 0.4.9 (2021/07/16)": [[10, "version-0-4-9-2021-07-16"]], "Version 0.4.8 (2021/07/03)": [[10, "version-0-4-8-2021-07-03"]], "Version 0.4.7 (2021/04/07)": [[10, "version-0-4-7-2021-04-07"]], "Version 0.4.6 (2021/02/21)": [[10, "version-0-4-6-2021-02-21"]], "Version 0.4.5 (2021/02/17)": [[10, "version-0-4-5-2021-02-17"]], "Version 0.4.4 (2021/01/31)": [[10, "version-0-4-4-2021-01-31"]], "Version 0.4.3 (2021/01/10)": [[10, "version-0-4-3-2021-01-10"]], "Version 0.4.2 (2021/01/03)": [[10, "version-0-4-2-2021-01-03"]], "Version 0.4.1 (2020/12/31)": [[10, "version-0-4-1-2020-12-31"]], "Version 0.4.0 - FitTrackee on PyPI (2020/09/19)": [[10, "version-0-4-0-fittrackee-on-pypi-2020-09-19"]], "Version 0.3.0 - Administration (2020/07/15)": [[10, "version-0-3-0-administration-2020-07-15"]], "Version 0.2.5 - Fix and improvements (2020/01/31)": [[10, "version-0-2-5-fix-and-improvements-2020-01-31"]], "Version 0.2.4 - Minor fix (2020/01/30)": [[10, "version-0-2-4-minor-fix-2020-01-30"]], "Version 0.2.3 - FitTrackee available in French (2019/12/29)": [[10, "version-0-2-3-fittrackee-available-in-french-2019-12-29"]], "Version 0.2.2 - Statistics fix (2019/09/23)": [[10, "version-0-2-2-statistics-fix-2019-09-23"]], "Version 0.2.1 - Fix and improvements (2019/09/01)": [[10, "version-0-2-1-fix-and-improvements-2019-09-01"]], "Version 0.2.0 - Statistics (2019/07/07)": [[10, "version-0-2-0-statistics-2019-07-07"]], "Version 0.1.1 - Fix and improvements (2019/02/07)": [[10, "version-0-1-1-fix-and-improvements-2019-02-07"]], "Version 0.1.0 - First release \ud83c\udf89 (2018-07-04)": [[10, "version-0-1-0-first-release-2018-07-04"]], "Command line interface": [[11, "command-line-interface"]], "Database": [[11, "database"]], "ftcli db upgrade": [[11, "ftcli-db-upgrade"]], "ftcli db drop": [[11, "ftcli-db-drop"]], "ftcli oauth2 clean": [[11, "ftcli-oauth2-clean"]], "ftcli users clean_tokens": [[11, "ftcli-users-clean-tokens"]], "ftcli users update": [[11, "ftcli-users-update"]], "Account & preferences": [[12, "account-preferences"]], "Administration": [[12, "administration"], [12, "id1"]], "Screenshots": [[12, "screenshots"]], "Dashboard": [[12, "dashboard"]], "Workout detail": [[12, "workout-detail"]], "Workouts list": [[12, "workouts-list"]], "FitTrackee": [[13, "fittrackee"]], "Table of contents": [[13, "table-of-contents"]], "Installation": [[14, "installation"], [14, "id2"], [14, "id6"]], "Prerequisites": [[14, "prerequisites"]], "Environment variables": [[14, "environment-variables"]], "Emails": [[14, "emails"]], "Map tile server": [[14, "map-tile-server"]], "API rate limits \ud83c\udd95": [[14, "api-rate-limits"]], "From PyPI": [[14, "from-pypi"], [14, "id3"]], "From sources": [[14, "from-sources"], [14, "id4"]], "Dev environment": [[14, "dev-environment"], [14, "id5"]], "Production environment": [[14, "production-environment"]], "Upgrade": [[14, "upgrade"]], "Prod environment": [[14, "prod-environment"]], "Deployment": [[14, "deployment"]], "Docker": [[14, "docker"]], "Development": [[14, "development"]], "Administrator": [[15, "administrator"]], "FitTrackee fails to start": [[15, "fittrackee-fails-to-start"]], "Map images are not displayed but map is shown in Workout detail": [[15, "map-images-are-not-displayed-but-map-is-shown-in-workout-detail"]], "Troubleshooting": [[16, "troubleshooting"]], "User": [[17, "user"]]}, "indexentries": {"api_rate_limits \ud83c\udd95": [[14, "envvar-API_RATE_LIMITS"]], "app_log": [[14, "envvar-APP_LOG"]], "app_secret_key": [[14, "envvar-APP_SECRET_KEY"]], "app_settings": [[14, "envvar-APP_SETTINGS"]], "app_workers": [[14, "envvar-APP_WORKERS"]], "database_disable_pooling": [[14, "envvar-DATABASE_DISABLE_POOLING"]], "database_url": [[14, "envvar-DATABASE_URL"]], "default_staticmap": [[14, "envvar-DEFAULT_STATICMAP"]], "email_url": [[14, "envvar-EMAIL_URL"]], "flask_app": [[14, "envvar-FLASK_APP"]], "host": [[14, "envvar-HOST"]], "map_attribution": [[14, "envvar-MAP_ATTRIBUTION"]], "port": [[14, "envvar-PORT"]], "redis_url": [[14, "envvar-REDIS_URL"]], "sender_email": [[14, "envvar-SENDER_EMAIL"]], "staticmap_subdomains": [[14, "envvar-STATICMAP_SUBDOMAINS"]], "tile_server_url": [[14, "envvar-TILE_SERVER_URL"]], "ui_url": [[14, "envvar-UI_URL"]], "upload_folder": [[14, "envvar-UPLOAD_FOLDER"]], "vue_app_api_url": [[14, "envvar-VUE_APP_API_URL"]], "weather_api_key": [[14, "envvar-WEATHER_API_KEY"]], "workers_processes": [[14, "envvar-WORKERS_PROCESSES"]], "environment variable": [[14, "envvar-API_RATE_LIMITS"], [14, "envvar-APP_LOG"], [14, "envvar-APP_SECRET_KEY"], [14, "envvar-APP_SETTINGS"], [14, "envvar-APP_WORKERS"], [14, "envvar-DATABASE_DISABLE_POOLING"], [14, "envvar-DATABASE_URL"], [14, "envvar-DEFAULT_STATICMAP"], [14, "envvar-EMAIL_URL"], [14, "envvar-FLASK_APP"], [14, "envvar-HOST"], [14, "envvar-MAP_ATTRIBUTION"], [14, "envvar-PORT"], [14, "envvar-REDIS_URL"], [14, "envvar-SENDER_EMAIL"], [14, "envvar-STATICMAP_SUBDOMAINS"], [14, "envvar-TILE_SERVER_URL"], [14, "envvar-UI_URL"], [14, "envvar-UPLOAD_FOLDER"], [14, "envvar-VUE_APP_API_URL"], [14, "envvar-WEATHER_API_KEY"], [14, "envvar-WORKERS_PROCESSES"]]}}) \ No newline at end of file diff --git a/docs/troubleshooting/administrator.html b/docs/troubleshooting/administrator.html index a6467849..fb913a23 100644 --- a/docs/troubleshooting/administrator.html +++ b/docs/troubleshooting/administrator.html @@ -5,7 +5,7 @@ - Administrator — FitTrackee 0.7.3 + <title>Administrator — FitTrackee 0.7.6 documentation @@ -42,7 +42,7 @@ FitTrackee - 0.7.3 + 0.7.6
                                                                                      diff --git a/docs/troubleshooting/index.html b/docs/troubleshooting/index.html index 67280899..1a0a54e2 100644 --- a/docs/troubleshooting/index.html +++ b/docs/troubleshooting/index.html @@ -5,7 +5,7 @@ - Troubleshooting — FitTrackee 0.7.3 + <title>Troubleshooting — FitTrackee 0.7.6 documentation @@ -42,7 +42,7 @@ FitTrackee - 0.7.3 + 0.7.6
                                                                                      diff --git a/docs/troubleshooting/user.html b/docs/troubleshooting/user.html index 4fc38829..58fec7c3 100644 --- a/docs/troubleshooting/user.html +++ b/docs/troubleshooting/user.html @@ -5,7 +5,7 @@ - User — FitTrackee 0.7.3 + <title>User — FitTrackee 0.7.6 documentation @@ -42,7 +42,7 @@ FitTrackee - 0.7.3 + 0.7.6
                                                                                      diff --git a/docsrc/source/_images/fittrackee_screenshot-01.png b/docsrc/source/_images/fittrackee_screenshot-01.png index 84ff3912..f076e33a 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 d6ee9be3..f91b97c5 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 a4db44e5..84761f5b 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 5b7c72bf..53338160 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 3ef4608a..418737d0 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 0c1ad133..875261bf 100644 Binary files a/docsrc/source/_images/fittrackee_screenshot-06.png and b/docsrc/source/_images/fittrackee_screenshot-06.png differ diff --git a/docsrc/source/_images/fittrackee_screenshot-07.png b/docsrc/source/_images/fittrackee_screenshot-07.png index e0b97bf2..d6b6a50d 100644 Binary files a/docsrc/source/_images/fittrackee_screenshot-07.png and b/docsrc/source/_images/fittrackee_screenshot-07.png differ diff --git a/docsrc/source/_images/fittrackee_screenshot-08.png b/docsrc/source/_images/fittrackee_screenshot-08.png index aba6ea64..0b5fa02b 100644 Binary files a/docsrc/source/_images/fittrackee_screenshot-08.png and b/docsrc/source/_images/fittrackee_screenshot-08.png differ diff --git a/docsrc/source/features.rst b/docsrc/source/features.rst index 7f17a1f1..01f757a7 100644 --- a/docsrc/source/features.rst +++ b/docsrc/source/features.rst @@ -105,9 +105,9 @@ Administration The following parameters can be set: - active users limit. If 0, registration is enabled (no limit defined) - - maximum size of uploaded files + - maximum size of gpx file (individually uploaded or in a zip archive) (*changed in 0.7.4*) - maximum size of zip archive - - maximum number of files in the zip archive. If an archive contains more files, only the configured number of files is processed, without raising errors. + - maximum number of files in the zip archive (*changed in 0.7.4*) - administrator email for contact (*new in 0.6.0*) .. warning:: diff --git a/docsrc/source/installation.rst b/docsrc/source/installation.rst index 494c7c9b..694fadc0 100644 --- a/docsrc/source/installation.rst +++ b/docsrc/source/installation.rst @@ -480,13 +480,13 @@ Production environment .. warning:: | Note that FitTrackee is under heavy development, some features may be unstable. -- Download the last release (for now, it is the release v0.7.3): +- Download the last release (for now, it is the release v0.7.6): .. code:: bash - $ wget https://github.com/SamR1/FitTrackee/archive/v0.7.3.tar.gz - $ tar -xzf v0.7.3.tar.gz - $ mv FitTrackee-0.7.3 FitTrackee + $ wget https://github.com/SamR1/FitTrackee/archive/v0.7.6.tar.gz + $ tar -xzf v0.7.6.tar.gz + $ mv FitTrackee-0.7.6 FitTrackee $ cd FitTrackee - Create **.env** from example and update it @@ -606,13 +606,13 @@ Prod environment - Change to the directory where FitTrackee directory is located -- Download the last release (for now, it is the release v0.7.3) and overwrite existing files: +- Download the last release (for now, it is the release v0.7.6) and overwrite existing files: .. code:: bash - $ wget https://github.com/SamR1/FitTrackee/archive/v0.7.3.tar.gz - $ tar -xzf v0.7.3.tar.gz - $ cp -R FitTrackee-0.7.3/* FitTrackee/ + $ wget https://github.com/SamR1/FitTrackee/archive/v0.7.6.tar.gz + $ tar -xzf v0.7.6.tar.gz + $ cp -R FitTrackee-0.7.6/* FitTrackee/ $ cd FitTrackee - Update **.env** if needed (see `Environment variables `__). diff --git a/fittrackee/__init__.py b/fittrackee/__init__.py index 2829a9f1..b15f51d6 100644 --- a/fittrackee/__init__.py +++ b/fittrackee/__init__.py @@ -25,7 +25,7 @@ from werkzeug.middleware.proxy_fix import ProxyFix from fittrackee.emails.email import EmailService from fittrackee.request import CustomRequest -VERSION = __version__ = '0.7.3' +VERSION = __version__ = '0.7.6' REDIS_URL = os.getenv('REDIS_URL', 'redis://') API_RATE_LIMITS = os.environ.get('API_RATE_LIMITS', '300 per 5 minutes').split( ',' diff --git a/fittrackee/application/app_config.py b/fittrackee/application/app_config.py index ca63218a..03a8465a 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.7.3" + "version": "0.7.6" }, "status": "success" } @@ -100,7 +100,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.7.3" + "version": "0.7.6" }, "status": "success" } diff --git a/fittrackee/dist/index.html b/fittrackee/dist/index.html index a1c92f0e..01242ede 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 1e3402c9..358f91c3 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-db5fc017"],(function(s){"use strict";s.setCacheNameDetails({prefix:"fittrackee_client"}),self.addEventListener("message",(s=>{s.data&&"SKIP_WAITING"===s.data.type&&self.skipWaiting()})),s.precacheAndRoute([{url:"/img/bike.svg",revision:"ab4faed007625b209af72b9b8dce84db"},{url:"/img/weather/breeze.svg",revision:"428c6ccb838f8e91dc4826c5b650a98b"},{url:"/img/weather/clear-day.svg",revision:"f3e8628de2e5089f508f03944f8be951"},{url:"/img/weather/clear-night.svg",revision:"6a0d6579a93e89fdf1a2a95b398e0935"},{url:"/img/weather/cloudy.svg",revision:"c52fe62c9d9fea2cdf5ae2813b3df366"},{url:"/img/weather/fog.svg",revision:"9f4d74289594eb83f9c175d13167a0eb"},{url:"/img/weather/partly-cloudy-day.svg",revision:"f730c2e4f4c014e8b49c9d4a0a141b90"},{url:"/img/weather/partly-cloudy-night.svg",revision:"0d9270901c4dffbc05f3998d835171c8"},{url:"/img/weather/pour-rain.svg",revision:"91eb3159ba8781d258d8c384a8ef987c"},{url:"/img/weather/rain.svg",revision:"c52ca88ce0ddf4de0fc29167e578b2be"},{url:"/img/weather/sleet.svg",revision:"97d61d89332f912c1ec27bcbe077b7bd"},{url:"/img/weather/snow.svg",revision:"9e88c89c0d6d14174e9665e98932dd80"},{url:"/img/weather/temperature.svg",revision:"d42b62d0b57d5d326506277d87b70435"},{url:"/img/weather/wind.svg",revision:"d75fbe559220d7b2b9577a98a91f38d0"},{url:"/img/workouts/finish.svg",revision:"375196b7ade7c07c3b64ac4cb8b850a8"},{url:"/img/workouts/mountains.svg",revision:"0b94f1d4a050a86ca5ac89ab3ed60f9c"},{url:"/img/workouts/start.svg",revision:"97f6a197b6c2869e0cb2ff0e7697af86"},{url:"/index.html",revision:"c43fe6476930d6fc83b1d6c65c49311f"},{url:"/manifest.json",revision:"c61028ca6e9f81bf958e6b66238e2d7c"},{url:"/robots.txt",revision:"b6216d61c03e6ce0c9aea6ca7808f7ca"},{url:"/static/css/admin.73df498d.css",revision:null},{url:"/static/css/app.564b9516.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.40e24e75.css",revision:null},{url:"/static/css/workouts.41709693.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.e551248f.js",revision:null},{url:"/static/js/431.e5102e07.js",revision:null},{url:"/static/js/633.81a8ddc8.js",revision:null},{url:"/static/js/858.3f2a93f2.js",revision:null},{url:"/static/js/93.02cf293c.js",revision:null},{url:"/static/js/admin.9bc68088.js",revision:null},{url:"/static/js/app.f7049224.js",revision:null},{url:"/static/js/chunk-vendors.50f5c7a2.js",revision:null},{url:"/static/js/profile.430ae7df.js",revision:null},{url:"/static/js/reset.d9073cf1.js",revision:null},{url:"/static/js/statistics.c9a8011a.js",revision:null},{url:"/static/js/workouts.8abaa659.js",revision:null}],{})})); +if(!self.define){let s,e={};const i=(i,t)=>(i=new URL(i+".js",t).href,e[i]||new Promise((e=>{if("document"in self){const s=document.createElement("script");s.src=i,s.onload=e,document.head.appendChild(s)}else s=i,importScripts(i),e()})).then((()=>{let s=e[i];if(!s)throw new Error(`Module ${i} didn’t register its module`);return s})));self.define=(t,r)=>{const a=s||("document"in self?document.currentScript.src:"")||location.href;if(e[a])return;let n={};const l=s=>i(s,a),c={module:{uri:a},exports:n,require:l};e[a]=Promise.all(t.map((s=>c[s]||l(s)))).then((s=>(r(...s),n)))}}define(["./workbox-db5fc017"],(function(s){"use strict";s.setCacheNameDetails({prefix:"fittrackee_client"}),self.addEventListener("message",(s=>{s.data&&"SKIP_WAITING"===s.data.type&&self.skipWaiting()})),s.precacheAndRoute([{url:"/img/bike.svg",revision:"ab4faed007625b209af72b9b8dce84db"},{url:"/img/weather/breeze.svg",revision:"428c6ccb838f8e91dc4826c5b650a98b"},{url:"/img/weather/clear-day.svg",revision:"f3e8628de2e5089f508f03944f8be951"},{url:"/img/weather/clear-night.svg",revision:"6a0d6579a93e89fdf1a2a95b398e0935"},{url:"/img/weather/cloudy.svg",revision:"c52fe62c9d9fea2cdf5ae2813b3df366"},{url:"/img/weather/fog.svg",revision:"9f4d74289594eb83f9c175d13167a0eb"},{url:"/img/weather/partly-cloudy-day.svg",revision:"f730c2e4f4c014e8b49c9d4a0a141b90"},{url:"/img/weather/partly-cloudy-night.svg",revision:"0d9270901c4dffbc05f3998d835171c8"},{url:"/img/weather/pour-rain.svg",revision:"91eb3159ba8781d258d8c384a8ef987c"},{url:"/img/weather/rain.svg",revision:"c52ca88ce0ddf4de0fc29167e578b2be"},{url:"/img/weather/sleet.svg",revision:"97d61d89332f912c1ec27bcbe077b7bd"},{url:"/img/weather/snow.svg",revision:"9e88c89c0d6d14174e9665e98932dd80"},{url:"/img/weather/temperature.svg",revision:"d42b62d0b57d5d326506277d87b70435"},{url:"/img/weather/wind.svg",revision:"d75fbe559220d7b2b9577a98a91f38d0"},{url:"/img/workouts/finish.svg",revision:"375196b7ade7c07c3b64ac4cb8b850a8"},{url:"/img/workouts/mountains.svg",revision:"0b94f1d4a050a86ca5ac89ab3ed60f9c"},{url:"/img/workouts/start.svg",revision:"97f6a197b6c2869e0cb2ff0e7697af86"},{url:"/index.html",revision:"209fcc38f5e2ffdde052e98715c1bbff"},{url:"/manifest.json",revision:"c61028ca6e9f81bf958e6b66238e2d7c"},{url:"/robots.txt",revision:"b6216d61c03e6ce0c9aea6ca7808f7ca"},{url:"/static/css/admin.73df498d.css",revision:null},{url:"/static/css/app.b6bd588e.css",revision:null},{url:"/static/css/fork-awesome.min.css",revision:"82c1118c918377daaa71a320ab8eea42"},{url:"/static/css/leaflet.css",revision:"5c761a156eea82263d8bacf1718fe04d"},{url:"/static/css/profile.9f83730d.css",revision:null},{url:"/static/css/reset.e2527ec6.css",revision:null},{url:"/static/css/statistics.40e24e75.css",revision:null},{url:"/static/css/workouts.babda0d5.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.e551248f.js",revision:null},{url:"/static/js/431.e5102e07.js",revision:null},{url:"/static/js/633.81a8ddc8.js",revision:null},{url:"/static/js/858.3f2a93f2.js",revision:null},{url:"/static/js/93.02cf293c.js",revision:null},{url:"/static/js/admin.4b3687ad.js",revision:null},{url:"/static/js/app.81fed7e5.js",revision:null},{url:"/static/js/chunk-vendors.d575ea61.js",revision:null},{url:"/static/js/profile.6c65e34f.js",revision:null},{url:"/static/js/reset.f95630ef.js",revision:null},{url:"/static/js/statistics.71389307.js",revision:null},{url:"/static/js/workouts.5d4c1679.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 c99a61a1..2074b555 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/a0976c7ca834784fb0d1a256ec4db231/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\": \"c43fe6476930d6fc83b1d6c65c49311f\"\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.564b9516.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.40e24e75.css\",\n \"revision\": null\n },\n {\n \"url\": \"/static/css/workouts.41709693.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.e551248f.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/431.e5102e07.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/633.81a8ddc8.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/858.3f2a93f2.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/93.02cf293c.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/admin.9bc68088.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/app.f7049224.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/chunk-vendors.50f5c7a2.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/profile.430ae7df.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/reset.d9073cf1.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/statistics.c9a8011a.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/workouts.8abaa659.js\",\n \"revision\": null\n }\n], {});\n\n\n\n\n\n\n\n\n"],"names":["workbox_core_setCacheNameDetails","prefix","self","addEventListener","event","data","type","skipWaiting","workbox_precaching_precacheAndRoute","url","revision"],"mappings":"0nBAiBAA,EAAAA,oBAAiC,CAACC,OAAQ,sBAG1CC,KAAKC,iBAAiB,WAAYC,IAC5BA,EAAMC,MAA4B,iBAApBD,EAAMC,KAAKC,MAC3BJ,KAAKK,aACP,IAWFC,EAAAA,iBAAoC,CAClC,CACEC,IAAO,gBACPC,SAAY,oCAEd,CACED,IAAO,0BACPC,SAAY,oCAEd,CACED,IAAO,6BACPC,SAAY,oCAEd,CACED,IAAO,+BACPC,SAAY,oCAEd,CACED,IAAO,0BACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,qCACPC,SAAY,oCAEd,CACED,IAAO,uCACPC,SAAY,oCAEd,CACED,IAAO,6BACPC,SAAY,oCAEd,CACED,IAAO,wBACPC,SAAY,oCAEd,CACED,IAAO,yBACPC,SAAY,oCAEd,CACED,IAAO,wBACPC,SAAY,oCAEd,CACED,IAAO,+BACPC,SAAY,oCAEd,CACED,IAAO,wBACPC,SAAY,oCAEd,CACED,IAAO,2BACPC,SAAY,oCAEd,CACED,IAAO,8BACPC,SAAY,oCAEd,CACED,IAAO,0BACPC,SAAY,oCAEd,CACED,IAAO,cACPC,SAAY,oCAEd,CACED,IAAO,iBACPC,SAAY,oCAEd,CACED,IAAO,cACPC,SAAY,oCAEd,CACED,IAAO,iCACPC,SAAY,MAEd,CACED,IAAO,+BACPC,SAAY,MAEd,CACED,IAAO,mCACPC,SAAY,oCAEd,CACED,IAAO,0BACPC,SAAY,oCAEd,CACED,IAAO,mCACPC,SAAY,MAEd,CACED,IAAO,iCACPC,SAAY,MAEd,CACED,IAAO,sCACPC,SAAY,MAEd,CACED,IAAO,oCACPC,SAAY,MAEd,CACED,IAAO,wCACPC,SAAY,oCAEd,CACED,IAAO,wCACPC,SAAY,oCAEd,CACED,IAAO,wCACPC,SAAY,oCAEd,CACED,IAAO,yCACPC,SAAY,oCAEd,CACED,IAAO,0CACPC,SAAY,oCAEd,CACED,IAAO,kDACPC,SAAY,MAEd,CACED,IAAO,oDACPC,SAAY,MAEd,CACED,IAAO,mDACPC,SAAY,MAEd,CACED,IAAO,kDACPC,SAAY,MAEd,CACED,IAAO,uDACPC,SAAY,MAEd,CACED,IAAO,qDACPC,SAAY,MAEd,CACED,IAAO,qDACPC,SAAY,MAEd,CACED,IAAO,sDACPC,SAAY,MAEd,CACED,IAAO,uDACPC,SAAY,MAEd,CACED,IAAO,sDACPC,SAAY,MAEd,CACED,IAAO,sDACPC,SAAY,MAEd,CACED,IAAO,wDACPC,SAAY,MAEd,CACED,IAAO,+BACPC,SAAY,MAEd,CACED,IAAO,gDACPC,SAAY,MAEd,CACED,IAAO,mDACPC,SAAY,MAEd,CACED,IAAO,oDACPC,SAAY,MAEd,CACED,IAAO,6BACPC,SAAY,MAEd,CACED,IAAO,6BACPC,SAAY,MAEd,CACED,IAAO,6BACPC,SAAY,MAEd,CACED,IAAO,6BACPC,SAAY,MAEd,CACED,IAAO,4BACPC,SAAY,MAEd,CACED,IAAO,+BACPC,SAAY,MAEd,CACED,IAAO,6BACPC,SAAY,MAEd,CACED,IAAO,uCACPC,SAAY,MAEd,CACED,IAAO,iCACPC,SAAY,MAEd,CACED,IAAO,+BACPC,SAAY,MAEd,CACED,IAAO,oCACPC,SAAY,MAEd,CACED,IAAO,kCACPC,SAAY,OAEb,CAAA"} \ No newline at end of file +{"version":3,"file":"service-worker.js","sources":["../../../../../../tmp/6d073f638d08f6ec32ad00407551b471/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\": \"209fcc38f5e2ffdde052e98715c1bbff\"\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.b6bd588e.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.9f83730d.css\",\n \"revision\": null\n },\n {\n \"url\": \"/static/css/reset.e2527ec6.css\",\n \"revision\": null\n },\n {\n \"url\": \"/static/css/statistics.40e24e75.css\",\n \"revision\": null\n },\n {\n \"url\": \"/static/css/workouts.babda0d5.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.e551248f.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/431.e5102e07.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/633.81a8ddc8.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/858.3f2a93f2.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/93.02cf293c.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/admin.4b3687ad.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/app.81fed7e5.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/chunk-vendors.d575ea61.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/profile.6c65e34f.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/reset.f95630ef.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/statistics.71389307.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/workouts.5d4c1679.js\",\n \"revision\": null\n }\n], {});\n\n\n\n\n\n\n\n\n"],"names":["workbox_core_setCacheNameDetails","prefix","self","addEventListener","event","data","type","skipWaiting","workbox_precaching_precacheAndRoute","url","revision"],"mappings":"0nBAiBAA,EAAAA,oBAAiC,CAACC,OAAQ,sBAG1CC,KAAKC,iBAAiB,WAAYC,IAC5BA,EAAMC,MAA4B,iBAApBD,EAAMC,KAAKC,MAC3BJ,KAAKK,aACP,IAWFC,EAAAA,iBAAoC,CAClC,CACEC,IAAO,gBACPC,SAAY,oCAEd,CACED,IAAO,0BACPC,SAAY,oCAEd,CACED,IAAO,6BACPC,SAAY,oCAEd,CACED,IAAO,+BACPC,SAAY,oCAEd,CACED,IAAO,0BACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,qCACPC,SAAY,oCAEd,CACED,IAAO,uCACPC,SAAY,oCAEd,CACED,IAAO,6BACPC,SAAY,oCAEd,CACED,IAAO,wBACPC,SAAY,oCAEd,CACED,IAAO,yBACPC,SAAY,oCAEd,CACED,IAAO,wBACPC,SAAY,oCAEd,CACED,IAAO,+BACPC,SAAY,oCAEd,CACED,IAAO,wBACPC,SAAY,oCAEd,CACED,IAAO,2BACPC,SAAY,oCAEd,CACED,IAAO,8BACPC,SAAY,oCAEd,CACED,IAAO,0BACPC,SAAY,oCAEd,CACED,IAAO,cACPC,SAAY,oCAEd,CACED,IAAO,iBACPC,SAAY,oCAEd,CACED,IAAO,cACPC,SAAY,oCAEd,CACED,IAAO,iCACPC,SAAY,MAEd,CACED,IAAO,+BACPC,SAAY,MAEd,CACED,IAAO,mCACPC,SAAY,oCAEd,CACED,IAAO,0BACPC,SAAY,oCAEd,CACED,IAAO,mCACPC,SAAY,MAEd,CACED,IAAO,iCACPC,SAAY,MAEd,CACED,IAAO,sCACPC,SAAY,MAEd,CACED,IAAO,oCACPC,SAAY,MAEd,CACED,IAAO,wCACPC,SAAY,oCAEd,CACED,IAAO,wCACPC,SAAY,oCAEd,CACED,IAAO,wCACPC,SAAY,oCAEd,CACED,IAAO,yCACPC,SAAY,oCAEd,CACED,IAAO,0CACPC,SAAY,oCAEd,CACED,IAAO,kDACPC,SAAY,MAEd,CACED,IAAO,oDACPC,SAAY,MAEd,CACED,IAAO,mDACPC,SAAY,MAEd,CACED,IAAO,kDACPC,SAAY,MAEd,CACED,IAAO,uDACPC,SAAY,MAEd,CACED,IAAO,qDACPC,SAAY,MAEd,CACED,IAAO,qDACPC,SAAY,MAEd,CACED,IAAO,sDACPC,SAAY,MAEd,CACED,IAAO,uDACPC,SAAY,MAEd,CACED,IAAO,sDACPC,SAAY,MAEd,CACED,IAAO,sDACPC,SAAY,MAEd,CACED,IAAO,wDACPC,SAAY,MAEd,CACED,IAAO,+BACPC,SAAY,MAEd,CACED,IAAO,gDACPC,SAAY,MAEd,CACED,IAAO,mDACPC,SAAY,MAEd,CACED,IAAO,oDACPC,SAAY,MAEd,CACED,IAAO,6BACPC,SAAY,MAEd,CACED,IAAO,6BACPC,SAAY,MAEd,CACED,IAAO,6BACPC,SAAY,MAEd,CACED,IAAO,6BACPC,SAAY,MAEd,CACED,IAAO,4BACPC,SAAY,MAEd,CACED,IAAO,+BACPC,SAAY,MAEd,CACED,IAAO,6BACPC,SAAY,MAEd,CACED,IAAO,uCACPC,SAAY,MAEd,CACED,IAAO,iCACPC,SAAY,MAEd,CACED,IAAO,+BACPC,SAAY,MAEd,CACED,IAAO,oCACPC,SAAY,MAEd,CACED,IAAO,kCACPC,SAAY,OAEb,CAAA"} \ No newline at end of file diff --git a/fittrackee/dist/static/css/app.564b9516.css b/fittrackee/dist/static/css/app.564b9516.css deleted file mode 100644 index 523cc0a7..00000000 --- a/fittrackee/dist/static/css/app.564b9516.css +++ /dev/null @@ -1 +0,0 @@ -#footer[data-v-2c73279e]{display:flex;bottom:0;position:fixed;width:100%;background:var(--footer-background-color);color:var(--footer-color);font-size:.9em}#footer a[data-v-2c73279e]{text-decoration:none}#footer .footer-items[data-v-2c73279e]{display:flex;align-content:center;justify-content:center;width:100%}#footer .footer-items .footer-item[data-v-2c73279e]{padding:10px 10px;border-top:solid 1px var(--footer-border-color);text-align:center}@media screen and (max-width:500px){#footer .footer-items[data-v-2c73279e]{font-size:.85em}#footer .footer-items .footer-item[data-v-2c73279e]{padding:5px 5px}#footer .footer-items .bullet[data-v-2c73279e]{padding:5px 0}}.user-picture{display:flex;justify-content:center;align-items:center;min-width:30%;line-height:1.2em}.user-picture img{border-radius:50%;height:90px;width:90px}.user-picture .no-picture{color:var(--app-a-color);font-size:5.5em}[data-v-95c1cc02]:root{--app-background-color:#fff;--app-color:#2c3e50;--app-color-light:#808b96;--app-a-color:#40578a;--app-shadow-color:#d3d3d3;--app-loading-color:#f3f3f3;--app-loading-top-color:var(--app-color);--button-hover-color:#fff;--button-cancel-bg-color:#fff;--button-cancel-color:var(--app-color);--button-confirm-bg-color:#fff;--button-confirm-color:var(--app-color);--button-danger-bg-color:#fff;--button-danger-color:#dc3545;--button-danger-hover-bg-color:#dc3545;--button-danger-hover-color:#fff;--card-border-color:#c4c7cf;--input-border-color:#9da3af;--input-bg-color:#fff;--input-error-color:#dc3545;--dropdown-hover-color:#eff0f5;--custom-checkbox-border-color:#9da3af;--custom-checkbox-checked-bg-color:#9da3af;--custom-checkbox-checked-color:#fff;--calendar-border-color:#c4c7cf;--calendar-week-end-color:#f5f5f5;--calendar-today-color:#eff1f3;--modal-background-color:rgba(0,0,0,.3);--nav-bar-background-color:#fff;--nav-bar-link-active:#485b6e;--nav-border-color:#c5ccdb;--mobile-menu-selected-color:#fff;--mobile-menu-selected-bgcolor:#9da3af;--footer-background-color:#fff;--footer-border-color:#ebeef3;--footer-color:#8b8c8c;--alert-background-color:#d6dde3;--alert-color:#3f3f3f;--info-background-color:#e5e7ea;--info-color:var(--app-color);--error-background-color:#ffd2d2;--error-color:#db1924;--success-background-color:#d9ecd9;--success-color:#306430;--disabled-background-color:#e0e0e0;--disabled-color:#a3a3a3;--disabled-sport-color:#616161;--scroll-button-bg-color:hsla(0,0%,100%,.7);--workout-trophy-color:#daa520;--workout-img-color:invert(22%) sepia(25%) saturate(646%) hue-rotate(169deg) brightness(97%) contrast(96%);--workout-no-map-bg-color:#eaeaea;--workout-no-map-color:#666;--cell-heading-bg-color:#eee;--cell-heading-color:#696969;--svg-filter:drop-shadow(10px 10px 10px var(--app-shadow-color));--password-bg-color:#d7dadf;--password-color-weak:#e46d6e;--password-color-medium:#f8bc4a;--password-color-good:#acc578;--password-color-strong:#57c255}#nav[data-v-95c1cc02]{background:var(--nav-bar-background-color);display:flex;padding:15px 10px}#nav .nav-container[data-v-95c1cc02]{display:flex;margin-left:auto;margin-right:auto;padding:0 15px 15px 15px;max-width:1140px;width:100%;border-bottom:solid 1px var(--nav-border-color)}#nav a.router-link-exact-active[data-v-95c1cc02]{color:var(--nav-bar-link-active);font-weight:700}#nav .app-name[data-v-95c1cc02]{font-size:1.2em;font-weight:700;margin-right:10px}#nav .app-name[data-v-95c1cc02]:hover{cursor:pointer}#nav .fa[data-v-95c1cc02]{font-size:1.2em}#nav .close-icon[data-v-95c1cc02],#nav .hamburger-icon[data-v-95c1cc02],#nav .nav-icon-open[data-v-95c1cc02]{display:none}#nav .nav-items[data-v-95c1cc02]{display:flex;flex:1;justify-content:space-between;line-height:1.8em;width:100%}#nav .nav-items .nav-items-close[data-v-95c1cc02]{display:none}#nav .nav-items .nav-items-app-menu[data-v-95c1cc02],#nav .nav-items .nav-items-user-menu[data-v-95c1cc02]{display:flex;margin:0;padding:0}#nav .nav-items .nav-items-group[data-v-95c1cc02]{display:flex}#nav .nav-items .nav-item[data-v-95c1cc02]{padding:0 10px}#nav .nav-items .nav-item.dropdown-wrapper[data-v-95c1cc02]{width:60px}#nav .nav-items .nav-item[data-v-95c1cc02] .dropdown-list{margin-left:-10px;padding-left:10px;width:75px}#nav .nav-items .nav-link[data-v-95c1cc02]{color:var(--app-a-color);cursor:pointer}#nav .nav-items .nav-profile-img[data-v-95c1cc02]{margin-bottom:-10px}#nav .nav-items .nav-profile-img[data-v-95c1cc02] .user-picture img{height:32px;width:32px;-o-object-fit:cover;object-fit:cover}#nav .nav-items .nav-profile-img[data-v-95c1cc02] .user-picture .no-picture{font-size:1.7em}#nav .nav-items .nav-separator[data-v-95c1cc02]{display:none}@media screen and (max-width:1000px){#nav .hamburger-icon[data-v-95c1cc02]{display:block}#nav .nav-icon-open[data-v-95c1cc02]{display:block;text-align:right;width:100%}#nav .nav-icon-open.menu-open[data-v-95c1cc02]{display:none}#nav .close-icon[data-v-95c1cc02]{display:block}#nav .close-icon.menu-closed[data-v-95c1cc02],#nav .nav-items[data-v-95c1cc02]{display:none}#nav .nav-items.menu-open[data-v-95c1cc02]{display:flex;flex-direction:column;justify-content:flex-start;z-index:1001;position:absolute;top:0;right:0;bottom:0;left:0;background:var(--nav-bar-background-color)}#nav .nav-items.menu-open .nav-items-app-menu[data-v-95c1cc02],#nav .nav-items.menu-open .nav-items-close[data-v-95c1cc02],#nav .nav-items.menu-open .nav-items-user-menu[data-v-95c1cc02]{display:flex;flex-direction:column}#nav .nav-items.menu-open .nav-items-close[data-v-95c1cc02]{align-items:center;display:flex;flex-direction:row;justify-content:space-between}#nav .nav-items.menu-open .nav-items-close .app-name[data-v-95c1cc02]{padding:15px 25px}#nav .nav-items.menu-open .nav-items-group[data-v-95c1cc02]{display:flex;flex-direction:column}#nav .nav-items.menu-open .nav-item[data-v-95c1cc02]{padding:7px 25px}#nav .nav-items.menu-open .nav-profile-img[data-v-95c1cc02]{display:none}#nav .nav-items.menu-open .nav-separator[data-v-95c1cc02]{display:flex;border-top:solid 1px var(--nav-border-color);margin:0 20px;padding:0}}#no-config[data-v-47759238]{display:flex;align-items:center;justify-content:space-around;padding:10px;height:100%}#no-config .error-page[data-v-47759238]{display:flex;flex-direction:column;align-items:center;max-width:100%}#no-config .error-page .error-img[data-v-47759238]{width:150px}#no-config .error-page .error-img svg[data-v-47759238]{stroke:none;fill-rule:nonzero;fill:var(--app-color);filter:var(--svg-filter)}#no-config .error-page .error-message[data-v-47759238]{font-size:1.2em;text-align:center}@media screen and (max-width:1000px){#no-config .error-page .error-message[data-v-47759238]{font-size:1em}}:root{--app-background-color:#fff;--app-color:#2c3e50;--app-color-light:#808b96;--app-a-color:#40578a;--app-shadow-color:#d3d3d3;--app-loading-color:#f3f3f3;--app-loading-top-color:var(--app-color);--button-hover-color:#fff;--button-cancel-bg-color:#fff;--button-cancel-color:var(--app-color);--button-confirm-bg-color:#fff;--button-confirm-color:var(--app-color);--button-danger-bg-color:#fff;--button-danger-color:#dc3545;--button-danger-hover-bg-color:#dc3545;--button-danger-hover-color:#fff;--card-border-color:#c4c7cf;--input-border-color:#9da3af;--input-bg-color:#fff;--input-error-color:#dc3545;--dropdown-hover-color:#eff0f5;--custom-checkbox-border-color:#9da3af;--custom-checkbox-checked-bg-color:#9da3af;--custom-checkbox-checked-color:#fff;--calendar-border-color:#c4c7cf;--calendar-week-end-color:#f5f5f5;--calendar-today-color:#eff1f3;--modal-background-color:rgba(0,0,0,.3);--nav-bar-background-color:#fff;--nav-bar-link-active:#485b6e;--nav-border-color:#c5ccdb;--mobile-menu-selected-color:#fff;--mobile-menu-selected-bgcolor:#9da3af;--footer-background-color:#fff;--footer-border-color:#ebeef3;--footer-color:#8b8c8c;--alert-background-color:#d6dde3;--alert-color:#3f3f3f;--info-background-color:#e5e7ea;--info-color:var(--app-color);--error-background-color:#ffd2d2;--error-color:#db1924;--success-background-color:#d9ecd9;--success-color:#306430;--disabled-background-color:#e0e0e0;--disabled-color:#a3a3a3;--disabled-sport-color:#616161;--scroll-button-bg-color:hsla(0,0%,100%,.7);--workout-trophy-color:#daa520;--workout-img-color:invert(22%) sepia(25%) saturate(646%) hue-rotate(169deg) brightness(97%) contrast(96%);--workout-no-map-bg-color:#eaeaea;--workout-no-map-color:#666;--cell-heading-bg-color:#eee;--cell-heading-color:#696969;--svg-filter:drop-shadow(10px 10px 10px var(--app-shadow-color));--password-bg-color:#d7dadf;--password-color-weak:#e46d6e;--password-color-medium:#f8bc4a;--password-color-good:#acc578;--password-color-strong:#57c255}#app,body{margin:0}#app{font-family:PT Sans,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--app-color);background-color:var(--app-background-color);min-height:100vh}a{color:var(--app-a-color);text-decoration:none}img{max-width:100%}input,select,textarea{background-color:var(--input-bg-color);border-radius:4px;border:solid 1px var(--input-border-color);padding:10px}input:disabled,select:disabled,textarea:disabled{background-color:var(--disabled-background-color);border-color:var(--disabled-color)}form.errors :invalid{outline:2px solid var(--input-error-color)}label{font-weight:700}button{background:var(--app-background-color);border:solid 1px var(--input-border-color);border-radius:4px;box-shadow:2px 2px 2px var(--app-shadow-color);color:var(--app-color);padding:6px 14px}button:hover{background:var(--app-color);color:var(--button-hover-color)}button:enabled:active{box-shadow:2px 0 2px var(--app-shadow-color);transform:translateY(2px)}button.confirm:disabled,button:disabled{background:var(--disabled-background-color);border-color:var(--disabled-color);color:var(--disabled-color)}button.cancel{background:var(--button-cancel-bg-color);color:var(--button-cancel-color)}button.cancel:hover{background:var(--app-color);color:var(--button-hover-color)}button.confirm{background:var(--button-confirm-bg-color);color:var(--button-confirm-color)}button.confirm:hover{background:var(--app-color);color:var(--button-hover-color)}button.danger{background:var(--button-danger-bg-color);color:var(--button-danger-color)}button.danger:hover{background:var(--button-danger-hover-bg-color);color:var(--button-danger-hover-color)}button.danger:disabled{background:var(--disabled-background-color);border-color:var(--disabled-color);color:var(--disabled-color)}.box{border:solid 1px var(--card-border-color);margin:10px}.box,.info-box{border-radius:4px;padding:10px}.info-box{background-color:var(--info-background-color);color:var(--info-color);font-size:.8em}.container{display:flex;margin-left:auto;margin-right:auto;padding-left:15px;padding-right:15px;max-width:1140px}.form-box .form-items{display:flex;flex-direction:column}.form-box .form-items input{margin:10px;padding:5px}.form-info{color:var(--alert-color);font-size:.8em;margin-top:-2px;padding:0 15px}.success-message{margin:20px 0;background-color:var(--success-background-color);color:var(--success-color)}.upper{text-transform:uppercase}.view{padding-bottom:35px}.fa-trophy{color:var(--workout-trophy-color)}.mountains{margin-bottom:-3px;height:16px;filter:var(--workout-img-color)}.section-title{font-weight:700;padding-top:15px;padding-left:10px;text-transform:capitalize}.no-map{background-color:var(--workout-no-map-bg-color);background-image:url(/static/img/map.5b26d82b.svg);background-size:contain;background-repeat:no-repeat;background-position:50%;color:var(--workout-no-map-color);font-style:italic;font-weight:700;text-align:center;vertical-align:center}.custom-checkboxes-group{display:flex;justify-content:space-around}.custom-checkboxes-group .custom-checkboxes{display:inline-flex}@media screen and (max-width:300px){.custom-checkboxes-group .custom-checkboxes{display:flex;flex-direction:column;align-items:center;gap:5px}}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label{font-weight:400;float:left;padding:0 5px;cursor:pointer}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label input{display:none}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label span{border:solid 1px var(--custom-checkbox-border-color);border-radius:5px;display:block;font-size:.9em;padding:2px 6px;text-align:center}.custom-checkboxes-group .custom-checkboxes .custom-checkbox input:checked+span{background-color:var(--custom-checkbox-checked-bg-color);color:var(--custom-checkbox-checked-color)}.description-list dl{display:flex;flex-direction:column;width:100%}.description-list dl dt{font-weight:700}.description-list dl dd{margin-bottom:10px}.center-card{margin:0 auto;width:700px}.center-card.with-margin{margin-top:100px}@media screen and (max-width:1000px){.center-card{width:100%;margin:0 auto 50px auto}}.text-center{text-align:center}.text-left{text-align:left}.responsive-table{margin-bottom:15px}.responsive-table table{width:100%;padding:10px;font-size:.9em;border-collapse:collapse}.responsive-table table thead th{vertical-align:center;padding:10px;border-bottom:2px solid var(--card-border-color)}.responsive-table table tbody{font-size:.95em}.responsive-table table tbody td{padding:10px;border-bottom:1px solid var(--card-border-color)}.responsive-table table tbody tr:last-child td{border:none}.responsive-table table .cell-heading{background:var(--cell-heading-bg-color);color:var(--cell-heading-color);display:none;font-size:10px;font-weight:700;padding:5px;position:absolute;text-transform:uppercase;top:0;left:0}@media screen and (max-width:700px){.responsive-table table thead{left:-9999px;position:absolute;visibility:hidden}.responsive-table table tr{border-bottom:0;display:flex;flex-direction:row;flex-wrap:wrap;margin-bottom:40px}.responsive-table table td{margin:0 -1px -1px 0;padding-top:25px!important;position:relative;text-align:center;width:45%}.responsive-table table tbody tr:last-child td,.responsive-table table td{border:1px solid var(--card-border-color)}.responsive-table table .cell-heading{display:flex}}@media screen and (max-width:500px){.responsive-table table td{width:100%}}.profile-buttons{display:flex;gap:10px}.medium-sport-img{height:35px;width:35px;margin:0 auto}.app-container{height:calc(100vh - 130px)}.app-container.hide-scroll{overflow:hidden}.app-container .app-loading{display:flex;align-items:center;height:100%}.scroll{display:flex;justify-content:flex-end;position:fixed;bottom:42px;right:-15px;padding:0 25px}.scroll .scroll-button{background-color:var(--scroll-button-bg-color);border-radius:4px;box-shadow:1px 1px 3px #d3d3d3;display:none;padding:0 10px}.scroll .scroll-button.display-button{display:block}.user-limit-help[data-v-24ec93e2]{display:flex}.user-limit-help span[data-v-24ec93e2]{font-style:italic}.user-limit-help .fa-info-circle[data-v-24ec93e2]{margin-right:10px}.no-contact[data-v-24ec93e2]{font-style:italic}.stat-card{flex:1;max-width:25%}@media screen and (max-width:700px){.stat-card{flex:1 0 50%;max-width:49%}}.stat-card .stat-content{display:flex;flex-direction:row;justify-content:space-between;padding:10px 20px}.stat-card .stat-content .stat-icon{width:30%;text-align:center;vertical-align:center}@media screen and (max-width:1000px){.stat-card .stat-content .stat-icon{width:50%;text-align:left}}.stat-card .stat-content .stat-icon .fa{font-size:3em}@media screen and (max-width:1000px){.stat-card .stat-content .stat-icon .fa{font-size:2em}}@media screen and (max-width:500px){.stat-card .stat-content .stat-icon .fa{font-size:1.5em}}.stat-card .stat-content .stat-details{width:70%;text-align:right}@media screen and (max-width:1000px){.stat-card .stat-content .stat-details{width:100%}}.stat-card .stat-content .stat-details .stat-huge{font-size:1.7em;font-weight:700}@media screen and (max-width:1000px){.stat-card .stat-content .stat-details .stat-huge{font-size:1.3em}}@media screen and (max-width:500px){.stat-card .stat-content .stat-details .stat-huge{font-size:1em}}.stat-card .stat-content .stat-details .stat{font-size:1em}@media screen and (max-width:1000px){.stat-card .stat-content .stat-details .stat{font-size:.9em}}@media screen and (max-width:500px){.stat-card .stat-content .stat-details .stat{font-size:.8em}}.card{border:solid 1px var(--card-border-color);border-radius:4px;margin:10px}.card .card-title{font-weight:700;border-bottom:solid 1px var(--card-border-color);padding:10px 20px}.card .card-content{padding:10px 20px}#admin-menu[data-v-0dd66f89]{display:flex}#admin-menu.center-card[data-v-0dd66f89]{width:100%}#admin-menu[data-v-0dd66f89] .card{flex-grow:1}#admin-menu[data-v-0dd66f89] .card .admin-menu{padding:0 10px}#admin-menu[data-v-0dd66f89] .card .admin-menu dd{margin-bottom:30px}#admin-menu[data-v-0dd66f89] .card .admin-menu .application-config-details{display:flex;flex-direction:column}#admin-menu[data-v-0dd66f89] .card .admin-menu .application-config-details .email-sending-status,#admin-menu[data-v-0dd66f89] .card .admin-menu .application-config-details .registration-status{font-weight:700}#admin-sports table td[data-v-6d62af67]{font-size:1.1em}#admin-sports .sport-img[data-v-6d62af67]{height:35px;width:35px;margin:0 auto}#admin-sports .has-workouts[data-v-6d62af67]{font-size:.95em;font-style:italic;padding:0 10px}#admin-sports .sport-action[data-v-6d62af67]{padding-left:40px}#admin-sports .action-button[data-v-6d62af67]{display:block}#admin-sports .top-button[data-v-6d62af67]{display:none}@media screen and (max-width:700px){#admin-sports .sport-action[data-v-6d62af67]{padding-left:10px}#admin-sports .has-workouts[data-v-6d62af67]{padding-top:5px}#admin-sports .action-button[data-v-6d62af67]{display:flex;align-items:center;flex-wrap:wrap;flex-direction:column}#admin-sports .top-button[data-v-6d62af67]{display:block;margin-bottom:20px}}.table-selects[data-v-72463173]{display:flex;justify-content:space-between;margin:10px 0}.table-selects label select[data-v-72463173]{margin-left:10px;padding:5px}@media screen and (max-width:700px){.table-selects[data-v-72463173]{flex-wrap:wrap}.table-selects label[data-v-72463173]{margin-bottom:10px}.table-selects label select[data-v-72463173]{margin-left:0}}.pagination-center[data-v-3a9a4a65]{display:flex;justify-content:center;font-size:.9em}.pagination-center .pagination[data-v-3a9a4a65]{display:flex;padding-left:0;list-style:none;border-radius:.25rem}.pagination-center .pagination .page-next[data-v-3a9a4a65],.pagination-center .pagination .page-prev[data-v-3a9a4a65],.pagination-center .pagination .page[data-v-3a9a4a65]{border:solid 1px var(--card-border-color);padding:10px 15px}.pagination-center .pagination .page-next.active[data-v-3a9a4a65],.pagination-center .pagination .page-prev.active[data-v-3a9a4a65],.pagination-center .pagination .page.active[data-v-3a9a4a65]{font-weight:700}.pagination-center .pagination .page-next.disabled[data-v-3a9a4a65],.pagination-center .pagination .page-prev.disabled[data-v-3a9a4a65],.pagination-center .pagination .page.disabled[data-v-3a9a4a65]{cursor:default}.pagination-center .pagination .page-next.disabled a[data-v-3a9a4a65],.pagination-center .pagination .page-prev.disabled a[data-v-3a9a4a65],.pagination-center .pagination .page.disabled a[data-v-3a9a4a65]{cursor:default;pointer-events:none;color:var(--disabled-color)}.pagination-center .pagination .page[data-v-3a9a4a65]{margin-left:-1px}.pagination-center .pagination .page-prev[data-v-3a9a4a65]{border-top-left-radius:5px;border-bottom-left-radius:5px}.pagination-center .pagination .page-next[data-v-3a9a4a65]{border-top-right-radius:5px;border-bottom-right-radius:5px;margin-left:-1px}.pagination-center .pagination .fa[data-v-3a9a4a65]{font-size:.8em;padding:0 5px}@media screen and (max-width:1000px){.pagination-center .pagination .page[data-v-3a9a4a65]{display:none}}.users-filters[data-v-627a8e91]{display:flex;align-items:center;padding:10px 0;gap:10px}.users-filters .fa[data-v-627a8e91]{font-size:1.5em}.users-filters .fa-disabled[data-v-627a8e91]{color:var(--disabled-color)}.users-filters .search-username[data-v-627a8e91]{display:flex;align-items:center;justify-content:space-between;gap:10px;border:solid 1px var(--card-border-color);border-radius:4px;color:var(--info-color);width:45%}.users-filters .search-username input[data-v-627a8e91]{border:none;height:12px;width:90%}.users-filters .search-username input[data-v-627a8e91]:focus{outline:none}.users-filters .search-username .fa-times[data-v-627a8e91]{padding-right:10px}@media screen and (max-width:700px){.users-filters .search-username[data-v-627a8e91]{width:400px}}@media screen and (max-width:500px){.users-filters .search-username[data-v-627a8e91]{width:90%}}#admin-users .top-button[data-v-dc12ff78]{display:none}#admin-users .no-users[data-v-dc12ff78]{display:flex;justify-content:center;padding:20px 0;font-weight:700}#admin-users table td[data-v-dc12ff78]{font-size:1.1em}#admin-users .left-text[data-v-dc12ff78]{text-align:left}#admin-users[data-v-dc12ff78] .user-picture img{height:30px;width:30px}#admin-users[data-v-dc12ff78] .user-picture .no-picture{font-size:2em}@media screen and (max-width:700px){#admin-users .top-button[data-v-dc12ff78]{display:block;margin-bottom:20px}#admin-users .pagination-center[data-v-dc12ff78]{margin-top:-30px}}.user-header[data-v-20291951]{display:flex;align-items:stretch}.user-header .user-details[data-v-20291951]{flex-grow:1;padding:10px;display:flex;flex-direction:column;align-items:center}.user-header .user-details .user-name[data-v-20291951]{font-size:2em;height:60%}.user-header .user-details .user-stats[data-v-20291951]{display:flex;gap:40px}.user-header .user-details .user-stats .user-stat[data-v-20291951]{display:flex;flex-direction:column;align-items:center;padding-top:10px}.user-header .user-details .user-stats .user-stat .stat-label[data-v-20291951],.user-header .user-details .user-stats .user-stat .stat-number[data-v-20291951]{padding:0 5px}.user-header .user-details .user-stats .user-stat .stat-number[data-v-20291951],.user-header .user-details .user-stats .user-stat[data-v-20291951] .distance{font-weight:700;font-size:1.5em}@media screen and (max-width:500px){.user-header .user-details .user-name[data-v-20291951]{font-size:1.5em}.user-header .user-details .user-stats[data-v-20291951]{gap:20px}.user-header .user-details .user-stats .user-stat .stat-number[data-v-20291951],.user-header .user-details .user-stats .user-stat[data-v-20291951] .distance{font-weight:700;font-size:1.2em}.user-header .user-details .user-stats .user-stat.hide-small[data-v-20291951]{display:none}}.profile-tabs-checkboxes{display:flex;justify-content:center;flex-wrap:wrap;gap:5px}#user-profile[data-v-9729cba4]{margin:auto;width:700px}@media screen and (max-width:1000px){#user-profile[data-v-9729cba4]{width:100%;margin:0 auto 50px auto}}#user-infos .user-bio[data-v-217519af]{white-space:pre-wrap}#user-infos .alert-message[data-v-217519af]{margin:0}#user-infos .profile-buttons[data-v-217519af]{display:flex;flex-wrap:wrap}#user-infos .email-form[data-v-217519af]{display:flex}#user-infos .email-form form[data-v-217519af]{width:100%}#user-infos .email-form .form-buttons[data-v-217519af]{display:flex;gap:10px;margin-top:10px}.password-strength[data-v-74e71df5]{cursor:default;display:flex;flex-direction:column}.password-strength .password-slider[data-v-74e71df5]{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;border-radius:8px;height:5px;outline:none;padding:0}.password-strength .strength-0[data-v-74e71df5],.password-strength .strength-1[data-v-74e71df5]{background:var(--password-bg-color);background-image:linear-gradient(to right,var(--password-color-weak) 0,var(--password-color-weak) 100%);background-repeat:no-repeat}.password-strength .strength-2[data-v-74e71df5]{background:var(--password-bg-color);background-image:linear-gradient(to right,var(--password-color-medium) 0,var(--password-color-medium) 100%);background-repeat:no-repeat}.password-strength .strength-3[data-v-74e71df5]{background:var(--password-bg-color);background-image:linear-gradient(to right,var(--password-color-good) 0,var(--password-color-good) 100%);background-repeat:no-repeat}.password-strength .strength-4[data-v-74e71df5]{background:var(--password-bg-color);background-image:linear-gradient(to right,var(--password-color-strong) 0,var(--password-color-strong) 100%);background-repeat:no-repeat}.password-strength .password-slider[data-v-74e71df5]::-moz-range-thumb,.password-strength .password-slider[data-v-74e71df5]::-webkit-slider-thumb{opacity:0}.password-strength .password-slider[data-v-74e71df5]::-webkit-slider-thumb{-webkit-appearance:none}.password-strength .password-slider[data-v-74e71df5]::-moz-range-thumb{-moz-appearance:none;appearance:none}.password-strength .password-strength-details[data-v-74e71df5]{margin-bottom:5px;margin-top:-10px;padding:0 10px}.password-strength .password-strength-details .password-strength-value[data-v-74e71df5]{font-size:.85em}.password-strength .password-strength-details .info-box[data-v-74e71df5]{padding:1px 10px}.password-strength .password-strength-details .info-box .password-feedback[data-v-74e71df5]{padding-left:20px}.password-input[data-v-5a126514]{display:flex;flex-direction:column}.password-input .show-password[data-v-5a126514]{font-style:italic;font-size:.85em;text-align:right;margin-top:-7.5px;padding-right:10px;cursor:pointer}.form-items .password-input[data-v-37b8c4c8] .show-password{font-weight:400;font-size:.8em;margin-top:-4px;padding-left:0}.form-items .password-input[data-v-37b8c4c8] .form-info{font-weight:400;padding-left:10px}.form-items .password-input[data-v-37b8c4c8] .password-strength-details{font-weight:400;margin-top:0}.form-buttons[data-v-37b8c4c8]{flex-direction:row}@media screen and (max-width:500px){.form-buttons[data-v-37b8c4c8]{flex-direction:column}}.form-items .password-input[data-v-5e5a4552] .show-password{font-weight:400;font-size:.8em;margin-top:-4px;padding-left:0}.form-buttons[data-v-5e5a4552]{flex-direction:row}@media screen and (max-width:500px){.form-buttons[data-v-5e5a4552]{flex-direction:column}}#user-picture-edition .user-picture-form[data-v-687e9604]{display:flex;flex-direction:column;margin-top:10px}#user-picture-edition .user-picture-form form[data-v-687e9604]{display:flex;flex-direction:column;gap:10px;justify-content:flex-start}#user-picture-edition .user-picture-form form input[data-v-687e9604]{margin-top:10px;padding:5px}#user-picture-edition .user-picture-form form span[data-v-687e9604]{font-style:italic;font-size:.9em;padding-left:5px}#user-picture-edition .user-picture-form form .picture-help[data-v-687e9604]{display:flex}#user-picture-edition .user-picture-form form .picture-help span[data-v-687e9604]{font-style:italic;padding:10px}#user-picture-edition .user-picture-form form .picture-help .fa-info-circle[data-v-687e9604]{margin-right:10px}#user-picture-edition .user-picture-form .picture-buttons[data-v-687e9604]{display:flex;flex-direction:row;align-items:center;gap:10px}@media screen and (max-width:500px){#user-picture-edition .user-picture-form .picture-buttons[data-v-687e9604],#user-picture-edition .user-picture-form .picture-help[data-v-687e9604]{flex-direction:column;align-items:stretch}}#tz-dropdown[data-v-47ea2903]{display:flex;flex-direction:column;position:relative}#tz-dropdown .tz-dropdown-list[data-v-47ea2903]{background-color:var(--input-bg-color);border-radius:4px;border:solid 1px var(--input-border-color);padding:5px 0;position:absolute;overflow-y:auto;top:20px;left:0;right:0;max-height:200px;width:inherit}#tz-dropdown .tz-dropdown-item[data-v-47ea2903]{cursor:pointer;font-size:.9em;font-weight:400;padding:5px}#tz-dropdown .tz-dropdown-item.focus[data-v-47ea2903]{background-color:var(--dropdown-hover-color)}#user-preferences-edition .form-items[data-v-065d5e6c]{padding-top:5px}#user-preferences-edition .form-checkboxes .checkboxes-label[data-v-065d5e6c]{font-weight:700}#user-preferences-edition .form-checkboxes .checkboxes[data-v-065d5e6c]{display:flex;gap:10px;flex-wrap:wrap}#user-preferences-edition .form-checkboxes .checkboxes .checkbox-label[data-v-065d5e6c]{padding-left:5px}#user-preferences-edition .form-checkboxes .checkboxes label[data-v-065d5e6c]{font-weight:400}#new-oauth2-app #new-oauth2-title[data-v-0657ee77]{font-size:1.05em;font-weight:700;padding:0 10px}#new-oauth2-app #apps-form .form-items[data-v-0657ee77]{display:flex;flex-direction:column}#new-oauth2-app #apps-form .form-items input[type=text][data-v-0657ee77]{height:20px}#new-oauth2-app #apps-form .form-items .form-item-scope[data-v-0657ee77]{padding:10px}#new-oauth2-app #apps-form .form-items .form-item-scope .form-item-scope-label[data-v-0657ee77]{font-weight:700}#new-oauth2-app #apps-form .form-items .form-item-scope .form-item-scope-checkboxes[data-v-0657ee77]{padding-bottom:10px}#new-oauth2-app #apps-form .form-items .form-item-scope .form-item-scope-checkboxes .scope-label[data-v-0657ee77]{height:inherit}#new-oauth2-app #apps-form .form-items .form-item-scope .form-item-scope-checkboxes .scope-description[data-v-0657ee77]{font-style:italic;margin:0 5px}#new-oauth2-app #apps-form .form-items .form-item[data-v-0657ee77]{display:flex;flex-direction:column;padding:10px}#new-oauth2-app #apps-form .form-buttons[data-v-0657ee77]{display:flex;justify-content:flex-end}#new-oauth2-app #apps-form .form-buttons button[data-v-0657ee77]{margin:5px}#authorize-oauth2-app #authorize-oauth2-title[data-v-3b2fe9ed]{font-size:1.05em;font-weight:700;padding:0 10px}#authorize-oauth2-app .oauth2-access[data-v-3b2fe9ed]{padding:0 10px}#authorize-oauth2-app .authorize-oauth2-buttons[data-v-3b2fe9ed]{display:flex}#authorize-oauth2-app .authorize-oauth2-buttons button[data-v-3b2fe9ed]{margin:5px}#oauth2-app .app-buttons[data-v-3a844fa2]{display:flex;flex-wrap:wrap;gap:10px}#oauth2-app .app-secret[data-v-3a844fa2]{word-break:break-word}#oauth2-app .client-scopes[data-v-3a844fa2]{display:flex;flex-wrap:wrap}#oauth2-app .client-scopes .client-scope[data-v-3a844fa2]{padding-right:15px}#oauth2-app .fa-copy[data-v-3a844fa2]{font-size:.9em}#oauth2-app .no-description[data-v-3a844fa2]{font-style:italic}#oauth2-app .no-app[data-v-3a844fa2]{font-style:italic;padding:10px 0}#oauth2-apps-list ul[data-v-efa45ea0]{list-style:square}#oauth2-apps-list ul li[data-v-efa45ea0]{padding-bottom:10px}#oauth2-apps-list .app-issued-at[data-v-efa45ea0]{font-size:.85em;font-style:italic;padding-left:10px}#oauth2-apps-list .apps-list[data-v-efa45ea0]{font-size:1.05em;font-weight:700}#oauth2-apps-list .app-list-buttons[data-v-efa45ea0]{display:flex;gap:10px}#oauth2-apps-list .no-apps[data-v-efa45ea0]{font-style:italic;padding-bottom:20px}#user-sport-preferences .sport-img[data-v-74e52489]{height:35px;width:35px;margin:0 auto}#user-sport-preferences .sport-color[data-v-74e52489]{border:none;margin:6px 1px 6px 0;padding:0;width:40px}#user-sport-preferences .sport-label[data-v-74e52489]{width:170px}#user-sport-preferences .disabled-sport[data-v-74e52489]{font-style:italic;color:var(--disabled-sport-color)}#user-sport-preferences .disabled-sport .disabled-message[data-v-74e52489]{font-size:.9em}#user-sport-preferences .disabled-sport .cell-heading[data-v-74e52489]{font-style:normal}#user-sport-preferences .action-buttons[data-v-74e52489]{width:70px}#user-sport-preferences .edition-buttons[data-v-74e52489]{display:flex;flex-wrap:wrap;gap:5px;line-height:1.3em}#user-sport-preferences .edition-buttons button[data-v-74e52489]{text-align:center;min-width:80px}#user-sport-preferences .threshold-input[data-v-74e52489]{padding:5px;width:50px}#user-sport-preferences .mobile-display[data-v-74e52489]{display:none}#user-sport-preferences div.error-message[data-v-74e52489]{margin:0}@media screen and (max-width:700px){#user-sport-preferences .action-buttons[data-v-74e52489],#user-sport-preferences .sport-label[data-v-74e52489]{width:45%}#user-sport-preferences .edition-buttons[data-v-74e52489]{justify-content:center}#user-sport-preferences .mobile-display[data-v-74e52489]{display:flex;margin:20px 0 10px}}@media screen and (max-width:500px){#user-sport-preferences .action-buttons[data-v-74e52489],#user-sport-preferences .sport-label[data-v-74e52489]{width:100%}}[data-v-74257266]:root{--app-background-color:#fff;--app-color:#2c3e50;--app-color-light:#808b96;--app-a-color:#40578a;--app-shadow-color:#d3d3d3;--app-loading-color:#f3f3f3;--app-loading-top-color:var(--app-color);--button-hover-color:#fff;--button-cancel-bg-color:#fff;--button-cancel-color:var(--app-color);--button-confirm-bg-color:#fff;--button-confirm-color:var(--app-color);--button-danger-bg-color:#fff;--button-danger-color:#dc3545;--button-danger-hover-bg-color:#dc3545;--button-danger-hover-color:#fff;--card-border-color:#c4c7cf;--input-border-color:#9da3af;--input-bg-color:#fff;--input-error-color:#dc3545;--dropdown-hover-color:#eff0f5;--custom-checkbox-border-color:#9da3af;--custom-checkbox-checked-bg-color:#9da3af;--custom-checkbox-checked-color:#fff;--calendar-border-color:#c4c7cf;--calendar-week-end-color:#f5f5f5;--calendar-today-color:#eff1f3;--modal-background-color:rgba(0,0,0,.3);--nav-bar-background-color:#fff;--nav-bar-link-active:#485b6e;--nav-border-color:#c5ccdb;--mobile-menu-selected-color:#fff;--mobile-menu-selected-bgcolor:#9da3af;--footer-background-color:#fff;--footer-border-color:#ebeef3;--footer-color:#8b8c8c;--alert-background-color:#d6dde3;--alert-color:#3f3f3f;--info-background-color:#e5e7ea;--info-color:var(--app-color);--error-background-color:#ffd2d2;--error-color:#db1924;--success-background-color:#d9ecd9;--success-color:#306430;--disabled-background-color:#e0e0e0;--disabled-color:#a3a3a3;--disabled-sport-color:#616161;--scroll-button-bg-color:hsla(0,0%,100%,.7);--workout-trophy-color:#daa520;--workout-img-color:invert(22%) sepia(25%) saturate(646%) hue-rotate(169deg) brightness(97%) contrast(96%);--workout-no-map-bg-color:#eaeaea;--workout-no-map-color:#666;--cell-heading-bg-color:#eee;--cell-heading-color:#696969;--svg-filter:drop-shadow(10px 10px 10px var(--app-shadow-color));--password-bg-color:#d7dadf;--password-color-weak:#e46d6e;--password-color-medium:#f8bc4a;--password-color-good:#acc578;--password-color-strong:#57c255}@font-face{font-family:PT Sans;font-style:normal;font-weight:400;src:url(/static/fonts/pt-sans-v9-latin-regular.c5a514ae.eot);src:local("PT Sans"),local("PTSans-Regular"),url(/static/fonts/pt-sans-v9-latin-regular.c5a514ae.eot?#iefix) format("embedded-opentype"),url(/static/fonts/pt-sans-v9-latin-regular.e7867499.woff2) format("woff2"),url(/static/fonts/pt-sans-v9-latin-regular.b5b74f16.woff) format("woff"),url(/static/fonts/pt-sans-v9-latin-regular.c43bc0a2.ttf) format("truetype"),url(/static/img/pt-sans-v9-latin-regular.59a385b4.svg#PTSans) format("svg")}@font-face{font-family:PT Sans;font-style:italic;font-weight:400;src:url(/static/fonts/pt-sans-v9-latin-italic.8293436e.eot);src:local("PT Sans Italic"),local("PTSans-Italic"),url(/static/fonts/pt-sans-v9-latin-italic.8293436e.eot?#iefix) format("embedded-opentype"),url(/static/fonts/pt-sans-v9-latin-italic.10011d51.woff2) format("woff2"),url(/static/fonts/pt-sans-v9-latin-italic.fe36f54f.woff) format("woff"),url(/static/fonts/pt-sans-v9-latin-italic.6206408d.ttf) format("truetype"),url(/static/img/pt-sans-v9-latin-italic.0b285c83.svg#PTSans) format("svg")}@font-face{font-family:PT Sans;font-style:normal;font-weight:700;src:url(/static/fonts/pt-sans-v9-latin-700.01a58da9.eot);src:local("PT Sans Bold"),local("PTSans-Bold"),url(/static/fonts/pt-sans-v9-latin-700.01a58da9.eot?#iefix) format("embedded-opentype"),url(/static/fonts/pt-sans-v9-latin-700.51b1613b.woff2) format("woff2"),url(/static/fonts/pt-sans-v9-latin-700.5ff2a2d7.woff) format("woff"),url(/static/fonts/pt-sans-v9-latin-700.6514157e.ttf) format("truetype"),url(/static/img/pt-sans-v9-latin-700.b8a7047e.svg#PTSans) format("svg")}body[data-v-74257266]{margin:0}#app[data-v-74257266]{font-family:PT Sans,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--app-color);background-color:var(--app-background-color);margin:0;min-height:100vh}a[data-v-74257266]{color:var(--app-a-color);text-decoration:none}img[data-v-74257266]{max-width:100%}input[data-v-74257266],select[data-v-74257266],textarea[data-v-74257266]{background-color:var(--input-bg-color);border-radius:4px;border:solid 1px var(--input-border-color);padding:10px}input[data-v-74257266]:disabled,select[data-v-74257266]:disabled,textarea[data-v-74257266]:disabled{background-color:var(--disabled-background-color);border-color:var(--disabled-color)}form.errors[data-v-74257266] :invalid{outline:2px solid var(--input-error-color)}label[data-v-74257266]{font-weight:700}button[data-v-74257266]{background:var(--app-background-color);border:solid 1px var(--input-border-color);border-radius:4px;box-shadow:2px 2px 2px var(--app-shadow-color);color:var(--app-color);padding:6px 14px}button[data-v-74257266]:hover{background:var(--app-color);color:var(--button-hover-color)}button[data-v-74257266]:enabled:active{box-shadow:2px 0 2px var(--app-shadow-color);transform:translateY(2px)}button.confirm[data-v-74257266]:disabled,button[data-v-74257266]:disabled{background:var(--disabled-background-color);border-color:var(--disabled-color);color:var(--disabled-color)}button.cancel[data-v-74257266]{background:var(--button-cancel-bg-color);color:var(--button-cancel-color)}button.cancel[data-v-74257266]:hover{background:var(--app-color);color:var(--button-hover-color)}button.confirm[data-v-74257266]{background:var(--button-confirm-bg-color);color:var(--button-confirm-color)}button.confirm[data-v-74257266]:hover{background:var(--app-color);color:var(--button-hover-color)}button.danger[data-v-74257266]{background:var(--button-danger-bg-color);color:var(--button-danger-color)}button.danger[data-v-74257266]:hover{background:var(--button-danger-hover-bg-color);color:var(--button-danger-hover-color)}button.danger[data-v-74257266]:disabled{background:var(--disabled-background-color);border-color:var(--disabled-color);color:var(--disabled-color)}.box[data-v-74257266]{border:solid 1px var(--card-border-color);border-radius:4px;padding:10px;margin:10px}.info-box[data-v-74257266]{background-color:var(--info-background-color);border-radius:4px;color:var(--info-color);font-size:.8em;padding:10px}.container[data-v-74257266]{display:flex;margin-left:auto;margin-right:auto;padding-left:15px;padding-right:15px;max-width:1140px}.form-box .form-items[data-v-74257266]{display:flex;flex-direction:column}.form-box .form-items input[data-v-74257266]{margin:10px;padding:5px}.form-info[data-v-74257266]{color:var(--alert-color);font-size:.8em;margin-top:-2px;padding:0 15px}.success-message[data-v-74257266]{margin:20px 0;background-color:var(--success-background-color);color:var(--success-color)}.upper[data-v-74257266]{text-transform:uppercase}.view[data-v-74257266]{padding-bottom:35px}.fa-trophy[data-v-74257266]{color:var(--workout-trophy-color)}.mountains[data-v-74257266]{margin-bottom:-3px;height:16px;filter:var(--workout-img-color)}.section-title[data-v-74257266]{font-weight:700;padding-top:15px;padding-left:10px;text-transform:capitalize}.no-map[data-v-74257266]{background-color:var(--workout-no-map-bg-color);background-image:url(/static/img/map.5b26d82b.svg);background-size:contain;background-repeat:no-repeat;background-position:50%;color:var(--workout-no-map-color);font-style:italic;font-weight:700;text-align:center;vertical-align:center}.custom-checkboxes-group[data-v-74257266]{display:flex;justify-content:space-around}.custom-checkboxes-group .custom-checkboxes[data-v-74257266]{display:inline-flex}@media screen and (max-width:300px){.custom-checkboxes-group .custom-checkboxes[data-v-74257266]{display:flex;flex-direction:column;align-items:center;gap:5px}}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label[data-v-74257266]{font-weight:400;float:left;padding:0 5px;cursor:pointer}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label input[data-v-74257266]{display:none}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label span[data-v-74257266]{border:solid 1px var(--custom-checkbox-border-color);border-radius:5px;display:block;font-size:.9em;padding:2px 6px;text-align:center}.custom-checkboxes-group .custom-checkboxes .custom-checkbox input:checked+span[data-v-74257266]{background-color:var(--custom-checkbox-checked-bg-color);color:var(--custom-checkbox-checked-color)}.description-list dl[data-v-74257266]{display:flex;flex-direction:column;width:100%}.description-list dl dt[data-v-74257266]{font-weight:700}.description-list dl dd[data-v-74257266]{margin-bottom:10px}.center-card[data-v-74257266]{margin:0 auto;width:700px}.center-card.with-margin[data-v-74257266]{margin-top:100px}@media screen and (max-width:1000px){.center-card[data-v-74257266]{width:100%;margin:0 auto 50px auto}}.text-center[data-v-74257266]{text-align:center}.text-left[data-v-74257266]{text-align:left}.responsive-table[data-v-74257266]{margin-bottom:15px}.responsive-table table[data-v-74257266]{width:100%;padding:10px;font-size:.9em;border-collapse:collapse}.responsive-table table thead th[data-v-74257266]{vertical-align:center;padding:10px;border-bottom:2px solid var(--card-border-color)}.responsive-table table tbody[data-v-74257266]{font-size:.95em}.responsive-table table tbody td[data-v-74257266]{padding:10px;border-bottom:1px solid var(--card-border-color)}.responsive-table table tbody tr:last-child td[data-v-74257266]{border:none}.responsive-table table .cell-heading[data-v-74257266]{background:var(--cell-heading-bg-color);color:var(--cell-heading-color);display:none;font-size:10px;font-weight:700;padding:5px;position:absolute;text-transform:uppercase;top:0;left:0}@media screen and (max-width:700px){.responsive-table table thead[data-v-74257266]{left:-9999px;position:absolute;visibility:hidden}.responsive-table table tr[data-v-74257266]{border-bottom:0;display:flex;flex-direction:row;flex-wrap:wrap;margin-bottom:40px}.responsive-table table td[data-v-74257266]{border:1px solid var(--card-border-color);margin:0 -1px -1px 0;padding-top:25px!important;position:relative;text-align:center;width:45%}.responsive-table table tbody tr:last-child td[data-v-74257266]{border:1px solid var(--card-border-color)}.responsive-table table .cell-heading[data-v-74257266]{display:flex}}@media screen and (max-width:500px){.responsive-table table td[data-v-74257266]{width:100%}}.profile-buttons[data-v-74257266]{display:flex;gap:10px}.medium-sport-img[data-v-74257266]{height:35px;width:35px;margin:0 auto}.about-text[data-v-74257266]{margin-top:200px}@media screen and (max-width:700px){.about-text[data-v-74257266]{margin-top:0}}.about-text .fa-padding[data-v-74257266]{padding-right:10px}#bike[data-v-795f7f5f]{display:flex;justify-content:center;margin-top:180px;padding:10px}#bike .bike-img[data-v-795f7f5f]{max-width:200px}@media screen and (max-width:700px){#bike[data-v-795f7f5f]{margin-top:10px}#bike .bike-img[data-v-795f7f5f]{max-width:150px}}#about[data-v-bffb50d0]{display:flex;height:100%}#about .container[data-v-bffb50d0]{display:flex;flex-direction:row;justify-content:space-evenly;margin-bottom:20px;width:100%}#about .container .container-sub[data-v-bffb50d0]{min-width:50%;height:100%}#about .container .about-details[data-v-bffb50d0]{width:100%}@media screen and (max-width:1000px){#about[data-v-bffb50d0]{height:auto}#about .container .container-sub[data-v-bffb50d0]{align-items:center}#about .container .container-sub .bike-img[data-v-bffb50d0]{max-width:60%}}@media screen and (max-width:700px){#about .container[data-v-bffb50d0]{flex-direction:column}}.static-map{display:flex;position:relative}.static-map.display-hover{position:absolute;margin-left:20px;margin-top:3px;width:400px;height:225px;z-index:100}.static-map .bg-map-image{background-size:cover;background-position:50%;opacity:.6;height:200px;width:100%}.static-map .map-attribution{top:0;right:0;font-size:11px;position:absolute}.static-map .map-attribution-text{background-color:hsla(0,0%,100%,.7)}.mountains[data-v-96abcc38]{padding-right:5px}.timeline-workout[data-v-96abcc38]{margin-bottom:20px}.timeline-workout .box[data-v-96abcc38]{flex-direction:column;padding:0}.timeline-workout .box .workout-user-date[data-v-96abcc38]{display:flex;justify-content:space-between;align-items:flex-start;padding:5px 10px}.timeline-workout .box .workout-user-date .workout-user[data-v-96abcc38]{display:flex}.timeline-workout .box .workout-user-date .workout-user[data-v-96abcc38] .user-picture img{height:25px;width:25px}.timeline-workout .box .workout-user-date .workout-user[data-v-96abcc38] .user-picture .no-picture{font-size:1.5em}.timeline-workout .box .workout-user-date .workout-user .workout-user-name[data-v-96abcc38]{white-space:nowrap;padding-left:5px}.timeline-workout .box .workout-user-date .workout-date[data-v-96abcc38]{font-size:.85em;font-style:italic;white-space:nowrap}.timeline-workout .box .workout-user-date .workout-title[data-v-96abcc38]{display:block;text-align:center;padding:0 10px}@media screen and (max-width:500px){.timeline-workout .box .workout-user-date .workout-title[data-v-96abcc38]{display:none}}.timeline-workout .box .workout-map[data-v-96abcc38]{background-color:var(--workout-no-map-bg-color);height:150px}.timeline-workout .box .workout-map .no-map[data-v-96abcc38]{line-height:150px}.timeline-workout .box .workout-map[data-v-96abcc38] .bg-map-image{height:150px}.timeline-workout .box .workout-data[data-v-96abcc38]{display:flex;padding:5px;font-size:.9em}.timeline-workout .box .workout-data .sport-img[data-v-96abcc38]{height:25px;width:25px}.timeline-workout .box .workout-data .data[data-v-96abcc38],.timeline-workout .box .workout-data .img[data-v-96abcc38]{display:flex;align-items:center}.timeline-workout .box .workout-data .data .data-values[data-v-96abcc38],.timeline-workout .box .workout-data .img .data-values[data-v-96abcc38]{display:flex;flex-wrap:wrap}.timeline-workout .box .workout-data .img[data-v-96abcc38]{justify-content:flex-end;width:10%}.timeline-workout .box .workout-data .data[data-v-96abcc38]{justify-content:center;width:22%}@media screen and (max-width:500px){.timeline-workout .box .workout-data .img[data-v-96abcc38]{justify-content:center;width:20%}.timeline-workout .box .workout-data .data[data-v-96abcc38]{justify-content:center;width:40%}.timeline-workout .box .workout-data .altitude[data-v-96abcc38],.timeline-workout .box .workout-data .elevation[data-v-96abcc38]{display:none}}.timeline-workout .box .workout-data.without-gpx .data[data-v-96abcc38],.timeline-workout .box .workout-data.without-gpx .img[data-v-96abcc38]{justify-content:center;width:33%}.timeline-workout .box .workout-data[data-v-96abcc38],.timeline-workout .box .workout-map[data-v-96abcc38]{cursor:pointer}.timeline-workout .box .no-cursor[data-v-96abcc38]{cursor:default}.timeline-workout .box .fa[data-v-96abcc38]{padding-right:10px}.no-workouts[data-v-4b4d15fb]{display:flex;justify-content:center}#timeline[data-v-35567bf2]{margin-bottom:20px}#timeline .more-workouts[data-v-35567bf2]{display:flex;justify-content:center}.calendar-workout{display:flex;padding:1px;cursor:pointer}.calendar-workout .sport-img{width:18px;height:18px}.calendar-workout sup{position:relative;top:-8px;left:-3px;width:2px}.calendar-workout sup .custom-fa-small{font-size:.7em}@media screen and (max-width:700px){.calendar-workout .sport-img{padding:3px;width:20px;height:20px}.calendar-workout sup .custom-fa-small{font-size:.6em}}.calendar-workouts-chart[data-v-52d4310a]{display:flex}.calendar-workouts-chart .workouts-chart[data-v-52d4310a]{position:relative}.calendar-workouts-chart .workouts-chart .workouts-count[data-v-52d4310a]{display:flex;justify-content:center;position:absolute;top:4px;left:6px;width:20px;font-size:1.1em;font-weight:700}@media screen and (max-width:700px){.calendar-workouts-chart .workouts-chart .workouts-count[data-v-52d4310a]{top:16px;left:6px}.calendar-workouts-chart .workouts-chart[data-v-52d4310a] .donut-chart{padding-top:12px}.calendar-workouts-chart .workouts-chart[data-v-52d4310a] .donut-chart svg g circle{stroke-width:2;stroke-opacity:.8}}.calendar-workouts-chart .workouts-pane[data-v-52d4310a]{display:flex;padding-left:40px}.calendar-workouts-chart .workouts-pane .more-workouts[data-v-52d4310a]{background:#f5f5f5;border-radius:4px;box-shadow:0 4px 8px 0 rgba(0,0,0,.2),0 6px 20px 0 rgba(0,0,0,.19);position:absolute;top:52px;left:0;min-width:60px;margin-bottom:20px;padding:10px 10px;display:flex;flex-wrap:wrap;z-index:1000}@media screen and (max-width:700px){.calendar-workouts-chart .workouts-pane .more-workouts[data-v-52d4310a]{min-width:70px}}.calendar-workouts-chart .workouts-pane .more-workouts .calendar-more[data-v-52d4310a]{position:absolute;font-size:.9em;top:5px;right:5px}.calendar-workouts .desktop-display{display:flex}.calendar-workouts .mobile-display{display:none}.calendar-workouts .workouts-display{display:flex;flex-wrap:wrap;position:relative;margin:0 10px 0 0}.calendar-workouts .donut-display{display:flex;height:34px;width:34px}@media screen and (max-width:700px){.calendar-workouts .desktop-display{display:none}.calendar-workouts .mobile-display{display:flex}}.calendar-cells{display:flex;flex-direction:column;width:100%}.calendar-cells .calendar-row{display:flex;flex-wrap:wrap;border-top:solid 1px var(--calendar-border-color)}.calendar-cells .calendar-row .calendar-cell{border-right:solid 1px var(--calendar-border-color);height:40px;flex-grow:1;flex-basis:8%;padding:5px 10px 5px 5px;width:8%;position:relative}.calendar-cells .calendar-row .calendar-cell .calendar-cell-day{position:absolute;font-size:.8em;line-height:1;top:.5em;right:.5em;font-weight:700}.calendar-cells .calendar-row .calendar-cell:last-child{border-right:0}@media screen and (max-width:700px){.calendar-cells .calendar-row .calendar-cell:last-child .calendar-workouts .more-workouts{left:-45px}}.calendar-cells .calendar-row .disabled-cell{color:var(--app-color-light)}.calendar-cells .calendar-row .week-end{background:var(--calendar-week-end-color)}.calendar-cells .calendar-row .today{background:var(--calendar-today-color)}@media screen and (max-width:700px){.calendar-cells .calendar-row:last-child .calendar-workouts .more-workouts{top:inherit;bottom:20px}}.calendar-days{display:flex;flex-direction:row;border-top:solid 1px var(--calendar-border-color)}.calendar-days .calendar-day{flex-grow:1;padding:5px;text-align:center;text-transform:uppercase;color:var(--app-color-light)}.calendar-header{display:flex;flex-direction:row}.calendar-header .calendar-arrow,.calendar-header .calendar-month{flex-grow:1;padding:10px}.calendar-header .calendar-arrow-left{text-align:left;cursor:pointer}.calendar-header .calendar-arrow-right{text-align:right;cursor:pointer}.calendar-header .calendar-month{font-weight:700;text-align:center;text-transform:uppercase}#user-calendar .calendar-card,#user-calendar .calendar-card .card-content{padding:0}.start-chart .chart-radio[data-v-d5e9b348]{display:flex;justify-content:space-between;flex-wrap:wrap;padding:10px}.start-chart .chart-radio label[data-v-d5e9b348]{font-size:.85em;font-weight:400}@media screen and (max-width:700px){.start-chart .chart-radio label[data-v-d5e9b348]{padding-bottom:10px}}.user-month-stats[data-v-1bcddc12] .card-content{padding:10px}.records-card[data-v-8d17c606]{width:100%;padding-bottom:3px}.records-card[data-v-8d17c606] .card{font-size:.9em}.records-card[data-v-8d17c606] .card .card-title{display:flex;font-size:.9em}.records-card[data-v-8d17c606] .card .card-title .sport-img{padding-right:10px;height:20px;width:20px}.records-card[data-v-8d17c606] .card .card-content{font-size:.9em;padding:10px}.records-card[data-v-8d17c606] .card .card-content .record{display:flex;align-items:center;justify-content:space-between}.records-card[data-v-8d17c606] .card .card-content .record span{padding:2px}.records-card[data-v-8d17c606] .card .card-content .record .record-type{flex-grow:1}.records-card[data-v-8d17c606] .card .card-content .record .record-value{font-weight:700;white-space:nowrap;padding-right:10px}.records-card[data-v-8d17c606] .card .card-content .record .record-date{white-space:nowrap;min-width:30%;text-align:right}@media screen and (max-width:1000px){.records-card[data-v-8d17c606] .card,.records-card[data-v-8d17c606] .card .card-title{font-size:1em}.records-card[data-v-8d17c606] .card .card-title .sport-img{height:22px;width:22px}}.user-records .no-records[data-v-f0c85cb8]{border:solid 1px var(--card-border-color);border-radius:4px;padding:10px;margin:10px}#user-stats{display:flex;flex:1 0 25%;justify-content:space-around;flex-wrap:wrap}#dashboard .dashboard-container[data-v-4c0893c1]{display:flex;flex-direction:row}#dashboard .dashboard-container .dashboard-sub-container[data-v-4c0893c1]{display:flex;flex-direction:column}#dashboard .dashboard-container .left-container[data-v-4c0893c1]{width:32%}#dashboard .dashboard-container .right-container[data-v-4c0893c1]{width:68%}#dashboard .mobile-menu[data-v-4c0893c1]{display:none}@media screen and (max-width:1000px){#dashboard[data-v-4c0893c1]{padding-bottom:60px}#dashboard .dashboard-container[data-v-4c0893c1]{display:flex;flex-direction:column}#dashboard .dashboard-container .left-container[data-v-4c0893c1],#dashboard .dashboard-container .right-container[data-v-4c0893c1]{width:100%}#dashboard .mobile-menu[data-v-4c0893c1]{display:flex}#dashboard .mobile-menu .box[data-v-4c0893c1]{display:flex;justify-content:space-between;padding:0;width:100%}#dashboard .mobile-menu .box .mobile-menu-item[data-v-4c0893c1]{display:flex;justify-content:space-around;border:none;border-radius:4px;box-shadow:none;font-size:.95em;padding:10px;width:25%}#dashboard .mobile-menu .box .mobile-menu-item .fa-trophy[data-v-4c0893c1]{color:var(--app-color)}#dashboard .mobile-menu .box .mobile-menu-item.is-selected[data-v-4c0893c1]{color:var(--mobile-menu-selected-color);background-color:var(--mobile-menu-selected-bgcolor)}#dashboard .mobile-menu .box .mobile-menu-item.is-selected .fa-trophy[data-v-4c0893c1]{color:var(--mobile-menu-selected-color)}#dashboard .is-hidden[data-v-4c0893c1]{display:none}}#error[data-v-b60bfa80]{display:flex;align-items:center;justify-content:center;height:75vh;text-align:center}#error .error-content[data-v-b60bfa80]{margin-top:50px}#error .error-content h1[data-v-b60bfa80]{font-size:6em;text-shadow:4px 4px 0 var(--app-shadow-color)}#error .error-content p[data-v-b60bfa80]{font-size:1.2em;margin:30px 0}[data-v-b3c885de]:root{--app-background-color:#fff;--app-color:#2c3e50;--app-color-light:#808b96;--app-a-color:#40578a;--app-shadow-color:#d3d3d3;--app-loading-color:#f3f3f3;--app-loading-top-color:var(--app-color);--button-hover-color:#fff;--button-cancel-bg-color:#fff;--button-cancel-color:var(--app-color);--button-confirm-bg-color:#fff;--button-confirm-color:var(--app-color);--button-danger-bg-color:#fff;--button-danger-color:#dc3545;--button-danger-hover-bg-color:#dc3545;--button-danger-hover-color:#fff;--card-border-color:#c4c7cf;--input-border-color:#9da3af;--input-bg-color:#fff;--input-error-color:#dc3545;--dropdown-hover-color:#eff0f5;--custom-checkbox-border-color:#9da3af;--custom-checkbox-checked-bg-color:#9da3af;--custom-checkbox-checked-color:#fff;--calendar-border-color:#c4c7cf;--calendar-week-end-color:#f5f5f5;--calendar-today-color:#eff1f3;--modal-background-color:rgba(0,0,0,.3);--nav-bar-background-color:#fff;--nav-bar-link-active:#485b6e;--nav-border-color:#c5ccdb;--mobile-menu-selected-color:#fff;--mobile-menu-selected-bgcolor:#9da3af;--footer-background-color:#fff;--footer-border-color:#ebeef3;--footer-color:#8b8c8c;--alert-background-color:#d6dde3;--alert-color:#3f3f3f;--info-background-color:#e5e7ea;--info-color:var(--app-color);--error-background-color:#ffd2d2;--error-color:#db1924;--success-background-color:#d9ecd9;--success-color:#306430;--disabled-background-color:#e0e0e0;--disabled-color:#a3a3a3;--disabled-sport-color:#616161;--scroll-button-bg-color:hsla(0,0%,100%,.7);--workout-trophy-color:#daa520;--workout-img-color:invert(22%) sepia(25%) saturate(646%) hue-rotate(169deg) brightness(97%) contrast(96%);--workout-no-map-bg-color:#eaeaea;--workout-no-map-color:#666;--cell-heading-bg-color:#eee;--cell-heading-color:#696969;--svg-filter:drop-shadow(10px 10px 10px var(--app-shadow-color));--password-bg-color:#d7dadf;--password-color-weak:#e46d6e;--password-color-medium:#f8bc4a;--password-color-good:#acc578;--password-color-strong:#57c255}#user-auth-form[data-v-b3c885de]{display:flex}#user-auth-form #user-form[data-v-b3c885de]{width:60%}#user-auth-form #user-form .account[data-v-b3c885de]{font-size:.9em;padding-left:10px}#user-auth-form #user-form .links[data-v-b3c885de]{font-size:.9em;font-style:italic;padding:0 10px}#user-auth-form #user-form button[data-v-b3c885de]{margin:10px;border:solid 1px var(--app-color)}#user-auth-form #user-form button[data-v-b3c885de]:disabled{border-color:var(--disabled-color)}#user-auth-form #user-form .success-message[data-v-b3c885de]{margin:10px}@media screen and (max-width:1000px){#user-auth-form[data-v-b3c885de]{margin-bottom:50px}#user-auth-form #user-form[data-v-b3c885de]{width:100%}}.user-form[data-v-b3c885de]{margin-top:200px}@media screen and (max-width:700px){.user-form[data-v-b3c885de]{margin-top:10px}}#loginOrRegister[data-v-6a38125b]{display:flex;height:100%}#loginOrRegister .container[data-v-6a38125b]{display:flex;flex-direction:row;justify-content:space-evenly;margin-bottom:20px;width:100%}#loginOrRegister .container .container-sub[data-v-6a38125b]{min-width:50%;height:100%}@media screen and (max-width:1000px){#loginOrRegister[data-v-6a38125b]{height:auto}#loginOrRegister .container .container-sub[data-v-6a38125b]{align-items:center}#loginOrRegister .container .container-sub .bike-img[data-v-6a38125b]{max-width:60%}}@media screen and (max-width:700px){#loginOrRegister .container[data-v-6a38125b]{flex-direction:column}}.alert-message[data-v-69d7e4ff]{background:var(--alert-background-color);color:var(--alert-color);border-radius:4px;margin:10px;padding:10px}.custom-textarea[data-v-8cf5cc64]{display:flex;flex-direction:column}.custom-textarea .remaining-chars[data-v-8cf5cc64]{font-size:.8em;font-style:italic}.strong[data-v-f46ff1d6]{font-weight:700}.dropdown-list[data-v-2d3b4eac]{list-style-type:none;background-color:#fff;padding:0;margin-top:5px;margin-left:-20px!important;position:absolute;text-align:left;border:1px solid #d3d3d3;box-shadow:2px 2px 5px #d3d3d3;width:auto!important}.dropdown-list li[data-v-2d3b4eac]{padding-top:5px;padding-right:5px}.dropdown-list li[data-v-2d3b4eac]:last-child{padding-bottom:5px}.dropdown-item[data-v-2d3b4eac]{cursor:default}.dropdown-item.selected[data-v-2d3b4eac]{font-weight:700}.dropdown-item.selected[data-v-2d3b4eac]:after{content:" ✔"}.error-message[data-v-2659a79a]{background:var(--error-background-color);color:var(--error-color);border-radius:4px;margin:10px;padding:10px}.loader[data-v-4c9921ee]{animation:spin-4c9921ee 2s linear infinite;border:14px solid var(--app-loading-color);border-top:14px solid var(--app-loading-top-color);border-radius:50%;height:60px;margin-left:41%;width:60px}@keyframes spin-4c9921ee{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}#modal[data-v-e8fcfaba]{position:fixed;top:0;bottom:0;left:0;right:0;background-color:var(--modal-background-color);padding:10px;z-index:1240}#modal .custom-modal[data-v-e8fcfaba]{background-color:var(--app-background-color);border-radius:4px;max-width:500px;margin:25% auto;z-index:1250}@media screen and (max-width:1000px){#modal .custom-modal[data-v-e8fcfaba]{margin:15% auto;width:100%}}@media screen and (max-width:700px){#modal .custom-modal[data-v-e8fcfaba]{margin:50% 0;width:100%}}#modal .custom-modal[data-v-e8fcfaba] .card{border:0;margin:0}#modal .custom-modal[data-v-e8fcfaba] .card .card-content{display:flex;flex-direction:column}#modal .custom-modal[data-v-e8fcfaba] .card .card-content .modal-message{padding:10px}#modal .custom-modal[data-v-e8fcfaba] .card .card-content .modal-message span{font-weight:700}#modal .custom-modal[data-v-e8fcfaba] .card .card-content .modal-buttons{display:flex;justify-content:flex-end}#modal .custom-modal[data-v-e8fcfaba] .card .card-content .modal-buttons button{margin:5px} \ No newline at end of file diff --git a/fittrackee/dist/static/css/app.b6bd588e.css b/fittrackee/dist/static/css/app.b6bd588e.css new file mode 100644 index 00000000..60c9d394 --- /dev/null +++ b/fittrackee/dist/static/css/app.b6bd588e.css @@ -0,0 +1 @@ +#footer[data-v-2c73279e]{display:flex;bottom:0;position:fixed;width:100%;background:var(--footer-background-color);color:var(--footer-color);font-size:.9em}#footer a[data-v-2c73279e]{text-decoration:none}#footer .footer-items[data-v-2c73279e]{display:flex;align-content:center;justify-content:center;width:100%}#footer .footer-items .footer-item[data-v-2c73279e]{padding:10px 10px;border-top:solid 1px var(--footer-border-color);text-align:center}@media screen and (max-width:500px){#footer .footer-items[data-v-2c73279e]{font-size:.85em}#footer .footer-items .footer-item[data-v-2c73279e]{padding:5px 5px}#footer .footer-items .bullet[data-v-2c73279e]{padding:5px 0}}.user-picture{display:flex;justify-content:center;align-items:center;min-width:30%;line-height:1.2em}.user-picture img{border-radius:50%;height:90px;width:90px}.user-picture .no-picture{color:var(--app-a-color);font-size:5.5em}[data-v-95c1cc02]:root{--app-background-color:#fff;--app-color:#2c3e50;--app-color-light:#808b96;--app-a-color:#40578a;--app-shadow-color:#d3d3d3;--app-loading-color:#f3f3f3;--app-loading-top-color:var(--app-color);--button-hover-color:#fff;--button-cancel-bg-color:#fff;--button-cancel-color:var(--app-color);--button-confirm-bg-color:#fff;--button-confirm-color:var(--app-color);--button-danger-bg-color:#fff;--button-danger-color:#dc3545;--button-danger-hover-bg-color:#dc3545;--button-danger-hover-color:#fff;--card-border-color:#c4c7cf;--input-border-color:#9da3af;--input-bg-color:#fff;--input-error-color:#dc3545;--dropdown-hover-color:#eff0f5;--custom-checkbox-border-color:#9da3af;--custom-checkbox-checked-bg-color:#9da3af;--custom-checkbox-checked-color:#fff;--calendar-border-color:#c4c7cf;--calendar-week-end-color:#f5f5f5;--calendar-today-color:#eff1f3;--modal-background-color:rgba(0,0,0,.3);--nav-bar-background-color:#fff;--nav-bar-link-active:#485b6e;--nav-border-color:#c5ccdb;--mobile-menu-selected-color:#fff;--mobile-menu-selected-bgcolor:#9da3af;--footer-background-color:#fff;--footer-border-color:#ebeef3;--footer-color:#8b8c8c;--alert-background-color:#d6dde3;--alert-color:#3f3f3f;--info-background-color:#e5e7ea;--info-color:var(--app-color);--error-background-color:#ffd2d2;--error-color:#db1924;--success-background-color:#d9ecd9;--success-color:#306430;--disabled-background-color:#e0e0e0;--disabled-color:#a3a3a3;--disabled-sport-color:#616161;--scroll-button-bg-color:hsla(0,0%,100%,.7);--workout-trophy-color:#daa520;--workout-img-color:invert(22%) sepia(25%) saturate(646%) hue-rotate(169deg) brightness(97%) contrast(96%);--workout-no-map-bg-color:#eaeaea;--workout-no-map-color:#666;--cell-heading-bg-color:#eee;--cell-heading-color:#696969;--svg-filter:drop-shadow(10px 10px 10px var(--app-shadow-color));--password-bg-color:#d7dadf;--password-color-weak:#e46d6e;--password-color-medium:#f8bc4a;--password-color-good:#acc578;--password-color-strong:#57c255}#nav[data-v-95c1cc02]{background:var(--nav-bar-background-color);display:flex;padding:15px 10px}#nav .nav-container[data-v-95c1cc02]{display:flex;margin-left:auto;margin-right:auto;padding:0 15px 15px 15px;max-width:1140px;width:100%;border-bottom:solid 1px var(--nav-border-color)}#nav a.router-link-exact-active[data-v-95c1cc02]{color:var(--nav-bar-link-active);font-weight:700}#nav .app-name[data-v-95c1cc02]{font-size:1.2em;font-weight:700;margin-right:10px}#nav .app-name[data-v-95c1cc02]:hover{cursor:pointer}#nav .fa[data-v-95c1cc02]{font-size:1.2em}#nav .close-icon[data-v-95c1cc02],#nav .hamburger-icon[data-v-95c1cc02],#nav .nav-icon-open[data-v-95c1cc02]{display:none}#nav .nav-items[data-v-95c1cc02]{display:flex;flex:1;justify-content:space-between;line-height:1.8em;width:100%}#nav .nav-items .nav-items-close[data-v-95c1cc02]{display:none}#nav .nav-items .nav-items-app-menu[data-v-95c1cc02],#nav .nav-items .nav-items-user-menu[data-v-95c1cc02]{display:flex;margin:0;padding:0}#nav .nav-items .nav-items-group[data-v-95c1cc02]{display:flex}#nav .nav-items .nav-item[data-v-95c1cc02]{padding:0 10px}#nav .nav-items .nav-item.dropdown-wrapper[data-v-95c1cc02]{width:60px}#nav .nav-items .nav-item[data-v-95c1cc02] .dropdown-list{margin-left:-10px;padding-left:10px;width:75px}#nav .nav-items .nav-link[data-v-95c1cc02]{color:var(--app-a-color);cursor:pointer}#nav .nav-items .nav-profile-img[data-v-95c1cc02]{margin-bottom:-10px}#nav .nav-items .nav-profile-img[data-v-95c1cc02] .user-picture img{height:32px;width:32px;-o-object-fit:cover;object-fit:cover}#nav .nav-items .nav-profile-img[data-v-95c1cc02] .user-picture .no-picture{font-size:1.7em}#nav .nav-items .nav-separator[data-v-95c1cc02]{display:none}@media screen and (max-width:1000px){#nav .hamburger-icon[data-v-95c1cc02]{display:block}#nav .nav-icon-open[data-v-95c1cc02]{display:block;text-align:right;width:100%}#nav .nav-icon-open.menu-open[data-v-95c1cc02]{display:none}#nav .close-icon[data-v-95c1cc02]{display:block}#nav .close-icon.menu-closed[data-v-95c1cc02],#nav .nav-items[data-v-95c1cc02]{display:none}#nav .nav-items.menu-open[data-v-95c1cc02]{display:flex;flex-direction:column;justify-content:flex-start;z-index:1001;position:absolute;top:0;right:0;bottom:0;left:0;background:var(--nav-bar-background-color)}#nav .nav-items.menu-open .nav-items-app-menu[data-v-95c1cc02],#nav .nav-items.menu-open .nav-items-close[data-v-95c1cc02],#nav .nav-items.menu-open .nav-items-user-menu[data-v-95c1cc02]{display:flex;flex-direction:column}#nav .nav-items.menu-open .nav-items-close[data-v-95c1cc02]{align-items:center;display:flex;flex-direction:row;justify-content:space-between}#nav .nav-items.menu-open .nav-items-close .app-name[data-v-95c1cc02]{padding:15px 25px}#nav .nav-items.menu-open .nav-items-group[data-v-95c1cc02]{display:flex;flex-direction:column}#nav .nav-items.menu-open .nav-item[data-v-95c1cc02]{padding:7px 25px}#nav .nav-items.menu-open .nav-profile-img[data-v-95c1cc02]{display:none}#nav .nav-items.menu-open .nav-separator[data-v-95c1cc02]{display:flex;border-top:solid 1px var(--nav-border-color);margin:0 20px;padding:0}}#no-config[data-v-47759238]{display:flex;align-items:center;justify-content:space-around;padding:10px;height:100%}#no-config .error-page[data-v-47759238]{display:flex;flex-direction:column;align-items:center;max-width:100%}#no-config .error-page .error-img[data-v-47759238]{width:150px}#no-config .error-page .error-img svg[data-v-47759238]{stroke:none;fill-rule:nonzero;fill:var(--app-color);filter:var(--svg-filter)}#no-config .error-page .error-message[data-v-47759238]{font-size:1.2em;text-align:center}@media screen and (max-width:1000px){#no-config .error-page .error-message[data-v-47759238]{font-size:1em}}:root{--app-background-color:#fff;--app-color:#2c3e50;--app-color-light:#808b96;--app-a-color:#40578a;--app-shadow-color:#d3d3d3;--app-loading-color:#f3f3f3;--app-loading-top-color:var(--app-color);--button-hover-color:#fff;--button-cancel-bg-color:#fff;--button-cancel-color:var(--app-color);--button-confirm-bg-color:#fff;--button-confirm-color:var(--app-color);--button-danger-bg-color:#fff;--button-danger-color:#dc3545;--button-danger-hover-bg-color:#dc3545;--button-danger-hover-color:#fff;--card-border-color:#c4c7cf;--input-border-color:#9da3af;--input-bg-color:#fff;--input-error-color:#dc3545;--dropdown-hover-color:#eff0f5;--custom-checkbox-border-color:#9da3af;--custom-checkbox-checked-bg-color:#9da3af;--custom-checkbox-checked-color:#fff;--calendar-border-color:#c4c7cf;--calendar-week-end-color:#f5f5f5;--calendar-today-color:#eff1f3;--modal-background-color:rgba(0,0,0,.3);--nav-bar-background-color:#fff;--nav-bar-link-active:#485b6e;--nav-border-color:#c5ccdb;--mobile-menu-selected-color:#fff;--mobile-menu-selected-bgcolor:#9da3af;--footer-background-color:#fff;--footer-border-color:#ebeef3;--footer-color:#8b8c8c;--alert-background-color:#d6dde3;--alert-color:#3f3f3f;--info-background-color:#e5e7ea;--info-color:var(--app-color);--error-background-color:#ffd2d2;--error-color:#db1924;--success-background-color:#d9ecd9;--success-color:#306430;--disabled-background-color:#e0e0e0;--disabled-color:#a3a3a3;--disabled-sport-color:#616161;--scroll-button-bg-color:hsla(0,0%,100%,.7);--workout-trophy-color:#daa520;--workout-img-color:invert(22%) sepia(25%) saturate(646%) hue-rotate(169deg) brightness(97%) contrast(96%);--workout-no-map-bg-color:#eaeaea;--workout-no-map-color:#666;--cell-heading-bg-color:#eee;--cell-heading-color:#696969;--svg-filter:drop-shadow(10px 10px 10px var(--app-shadow-color));--password-bg-color:#d7dadf;--password-color-weak:#e46d6e;--password-color-medium:#f8bc4a;--password-color-good:#acc578;--password-color-strong:#57c255}#app,body{margin:0}#app{font-family:PT Sans,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--app-color);background-color:var(--app-background-color);min-height:100vh}a{color:var(--app-a-color);text-decoration:none}img{max-width:100%}input,select,textarea{background-color:var(--input-bg-color);border-radius:4px;border:solid 1px var(--input-border-color);padding:10px}input:disabled,select:disabled,textarea:disabled{background-color:var(--disabled-background-color);border-color:var(--disabled-color)}form.errors :invalid{outline:2px solid var(--input-error-color)}label{font-weight:700}button{background:var(--app-background-color);border:solid 1px var(--input-border-color);border-radius:4px;box-shadow:2px 2px 2px var(--app-shadow-color);color:var(--app-color);padding:6px 14px}button:hover{background:var(--app-color);color:var(--button-hover-color)}button:enabled:active{box-shadow:2px 0 2px var(--app-shadow-color);transform:translateY(2px)}button.confirm:disabled,button:disabled{background:var(--disabled-background-color);border-color:var(--disabled-color);color:var(--disabled-color)}button.cancel{background:var(--button-cancel-bg-color);color:var(--button-cancel-color)}button.cancel:hover{background:var(--app-color);color:var(--button-hover-color)}button.confirm{background:var(--button-confirm-bg-color);color:var(--button-confirm-color)}button.confirm:hover{background:var(--app-color);color:var(--button-hover-color)}button.danger{background:var(--button-danger-bg-color);color:var(--button-danger-color)}button.danger:hover{background:var(--button-danger-hover-bg-color);color:var(--button-danger-hover-color)}button.danger:disabled{background:var(--disabled-background-color);border-color:var(--disabled-color);color:var(--disabled-color)}.box{border:solid 1px var(--card-border-color);margin:10px}.box,.info-box{border-radius:4px;padding:10px}.info-box{background-color:var(--info-background-color);color:var(--info-color);font-size:.8em}.container{display:flex;margin-left:auto;margin-right:auto;padding-left:15px;padding-right:15px;max-width:1140px}.form-box .form-items{display:flex;flex-direction:column}.form-box .form-items input{margin:10px;padding:5px}.form-info{color:var(--alert-color);font-size:.8em;margin-top:-2px;padding:0 15px}.success-message{margin:20px 0;background-color:var(--success-background-color);color:var(--success-color)}.upper{text-transform:uppercase}.view{padding-bottom:35px;background-color:var(--app-background-color)}.fa-trophy{color:var(--workout-trophy-color)}.mountains{margin-bottom:-3px;height:16px;filter:var(--workout-img-color)}.section-title{font-weight:700;padding-top:15px;padding-left:10px;text-transform:capitalize}.no-map{background-color:var(--workout-no-map-bg-color);background-image:url(/static/img/map.5b26d82b.svg);background-size:contain;background-repeat:no-repeat;background-position:50%;color:var(--workout-no-map-color);font-style:italic;font-weight:700;text-align:center;vertical-align:center}.custom-checkboxes-group{display:flex;justify-content:space-around}.custom-checkboxes-group .custom-checkboxes{display:inline-flex}@media screen and (max-width:300px){.custom-checkboxes-group .custom-checkboxes{display:flex;flex-direction:column;align-items:center;gap:5px}}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label{font-weight:400;float:left;padding:0 5px;cursor:pointer}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label input{display:none}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label span{border:solid 1px var(--custom-checkbox-border-color);border-radius:5px;display:block;font-size:.9em;padding:2px 6px;text-align:center}.custom-checkboxes-group .custom-checkboxes .custom-checkbox input:checked+span{background-color:var(--custom-checkbox-checked-bg-color);color:var(--custom-checkbox-checked-color)}.description-list dl{display:flex;flex-direction:column;width:100%}.description-list dl dt{font-weight:700}.description-list dl dd{margin-bottom:10px}.center-card{margin:0 auto;width:700px}.center-card.with-margin{margin-top:100px}@media screen and (max-width:1000px){.center-card{width:100%;margin:0 auto 50px auto}}.text-center{text-align:center}.text-left{text-align:left}.responsive-table{margin-bottom:15px}.responsive-table table{width:100%;padding:10px;font-size:.9em;border-collapse:collapse}.responsive-table table thead th{vertical-align:center;padding:10px;border-bottom:2px solid var(--card-border-color)}.responsive-table table tbody{font-size:.95em}.responsive-table table tbody td{padding:10px;border-bottom:1px solid var(--card-border-color)}.responsive-table table tbody tr:last-child td{border:none}.responsive-table table .cell-heading{background:var(--cell-heading-bg-color);color:var(--cell-heading-color);display:none;font-size:10px;font-weight:700;padding:5px;position:absolute;text-transform:uppercase;top:0;left:0}@media screen and (max-width:700px){.responsive-table table thead{left:-9999px;position:absolute;visibility:hidden}.responsive-table table tr{border-bottom:0;display:flex;flex-direction:row;flex-wrap:wrap;margin-bottom:40px}.responsive-table table td{margin:0 -1px -1px 0;padding-top:25px!important;position:relative;text-align:center;width:45%}.responsive-table table tbody tr:last-child td,.responsive-table table td{border:1px solid var(--card-border-color)}.responsive-table table .cell-heading{display:flex}}@media screen and (max-width:500px){.responsive-table table td{width:100%}}.profile-buttons{display:flex;gap:10px}.medium-sport-img{height:35px;width:35px;margin:0 auto}.app-container{height:calc(100vh - 130px)}.app-container.hide-scroll{overflow:hidden}.app-container .app-loading{display:flex;align-items:center;height:100%}.scroll{display:flex;justify-content:flex-end;position:fixed;bottom:42px;right:-15px;padding:0 25px}.scroll .scroll-button{background-color:var(--scroll-button-bg-color);border-radius:4px;box-shadow:1px 1px 3px #d3d3d3;display:none;padding:0 10px}.scroll .scroll-button.display-button{display:block}.user-limit-help[data-v-24ec93e2]{display:flex}.user-limit-help span[data-v-24ec93e2]{font-style:italic}.user-limit-help .fa-info-circle[data-v-24ec93e2]{margin-right:10px}.no-contact[data-v-24ec93e2]{font-style:italic}.stat-card{flex:1;max-width:25%}@media screen and (max-width:700px){.stat-card{flex:1 0 50%;max-width:49%}}.stat-card .stat-content{display:flex;flex-direction:row;justify-content:space-between;padding:10px 20px}.stat-card .stat-content .stat-icon{width:30%;text-align:center;vertical-align:center}@media screen and (max-width:1000px){.stat-card .stat-content .stat-icon{width:50%;text-align:left}}.stat-card .stat-content .stat-icon .fa{font-size:3em}@media screen and (max-width:1000px){.stat-card .stat-content .stat-icon .fa{font-size:2em}}@media screen and (max-width:500px){.stat-card .stat-content .stat-icon .fa{font-size:1.5em}}.stat-card .stat-content .stat-details{width:70%;text-align:right}@media screen and (max-width:1000px){.stat-card .stat-content .stat-details{width:100%}}.stat-card .stat-content .stat-details .stat-huge{font-size:1.7em;font-weight:700}@media screen and (max-width:1000px){.stat-card .stat-content .stat-details .stat-huge{font-size:1.3em}}@media screen and (max-width:500px){.stat-card .stat-content .stat-details .stat-huge{font-size:1em}}.stat-card .stat-content .stat-details .stat{font-size:1em}@media screen and (max-width:1000px){.stat-card .stat-content .stat-details .stat{font-size:.9em}}@media screen and (max-width:500px){.stat-card .stat-content .stat-details .stat{font-size:.8em}}.card{border:solid 1px var(--card-border-color);border-radius:4px;margin:10px}.card .card-title{font-weight:700;border-bottom:solid 1px var(--card-border-color);padding:10px 20px}.card .card-content{padding:10px 20px}#admin-menu[data-v-0dd66f89]{display:flex}#admin-menu.center-card[data-v-0dd66f89]{width:100%}#admin-menu[data-v-0dd66f89] .card{flex-grow:1}#admin-menu[data-v-0dd66f89] .card .admin-menu{padding:0 10px}#admin-menu[data-v-0dd66f89] .card .admin-menu dd{margin-bottom:30px}#admin-menu[data-v-0dd66f89] .card .admin-menu .application-config-details{display:flex;flex-direction:column}#admin-menu[data-v-0dd66f89] .card .admin-menu .application-config-details .email-sending-status,#admin-menu[data-v-0dd66f89] .card .admin-menu .application-config-details .registration-status{font-weight:700}#admin-sports table td[data-v-6d62af67]{font-size:1.1em}#admin-sports .sport-img[data-v-6d62af67]{height:35px;width:35px;margin:0 auto}#admin-sports .has-workouts[data-v-6d62af67]{font-size:.95em;font-style:italic;padding:0 10px}#admin-sports .sport-action[data-v-6d62af67]{padding-left:40px}#admin-sports .action-button[data-v-6d62af67]{display:block}#admin-sports .top-button[data-v-6d62af67]{display:none}@media screen and (max-width:700px){#admin-sports .sport-action[data-v-6d62af67]{padding-left:10px}#admin-sports .has-workouts[data-v-6d62af67]{padding-top:5px}#admin-sports .action-button[data-v-6d62af67]{display:flex;align-items:center;flex-wrap:wrap;flex-direction:column}#admin-sports .top-button[data-v-6d62af67]{display:block;margin-bottom:20px}}.table-selects[data-v-72463173]{display:flex;justify-content:space-between;margin:10px 0}.table-selects label select[data-v-72463173]{margin-left:10px;padding:5px}@media screen and (max-width:700px){.table-selects[data-v-72463173]{flex-wrap:wrap}.table-selects label[data-v-72463173]{margin-bottom:10px}.table-selects label select[data-v-72463173]{margin-left:0}}.pagination-center[data-v-3a9a4a65]{display:flex;justify-content:center;font-size:.9em}.pagination-center .pagination[data-v-3a9a4a65]{display:flex;padding-left:0;list-style:none;border-radius:.25rem}.pagination-center .pagination .page-next[data-v-3a9a4a65],.pagination-center .pagination .page-prev[data-v-3a9a4a65],.pagination-center .pagination .page[data-v-3a9a4a65]{border:solid 1px var(--card-border-color);padding:10px 15px}.pagination-center .pagination .page-next.active[data-v-3a9a4a65],.pagination-center .pagination .page-prev.active[data-v-3a9a4a65],.pagination-center .pagination .page.active[data-v-3a9a4a65]{font-weight:700}.pagination-center .pagination .page-next.disabled[data-v-3a9a4a65],.pagination-center .pagination .page-prev.disabled[data-v-3a9a4a65],.pagination-center .pagination .page.disabled[data-v-3a9a4a65]{cursor:default}.pagination-center .pagination .page-next.disabled a[data-v-3a9a4a65],.pagination-center .pagination .page-prev.disabled a[data-v-3a9a4a65],.pagination-center .pagination .page.disabled a[data-v-3a9a4a65]{cursor:default;pointer-events:none;color:var(--disabled-color)}.pagination-center .pagination .page[data-v-3a9a4a65]{margin-left:-1px}.pagination-center .pagination .page-prev[data-v-3a9a4a65]{border-top-left-radius:5px;border-bottom-left-radius:5px}.pagination-center .pagination .page-next[data-v-3a9a4a65]{border-top-right-radius:5px;border-bottom-right-radius:5px;margin-left:-1px}.pagination-center .pagination .fa[data-v-3a9a4a65]{font-size:.8em;padding:0 5px}@media screen and (max-width:1000px){.pagination-center .pagination .page[data-v-3a9a4a65]{display:none}}.users-filters[data-v-627a8e91]{display:flex;align-items:center;padding:10px 0;gap:10px}.users-filters .fa[data-v-627a8e91]{font-size:1.5em}.users-filters .fa-disabled[data-v-627a8e91]{color:var(--disabled-color)}.users-filters .search-username[data-v-627a8e91]{display:flex;align-items:center;justify-content:space-between;gap:10px;border:solid 1px var(--card-border-color);border-radius:4px;color:var(--info-color);width:45%}.users-filters .search-username input[data-v-627a8e91]{border:none;height:12px;width:90%}.users-filters .search-username input[data-v-627a8e91]:focus{outline:none}.users-filters .search-username .fa-times[data-v-627a8e91]{padding-right:10px}@media screen and (max-width:700px){.users-filters .search-username[data-v-627a8e91]{width:400px}}@media screen and (max-width:500px){.users-filters .search-username[data-v-627a8e91]{width:90%}}#admin-users .top-button[data-v-dc12ff78]{display:none}#admin-users .no-users[data-v-dc12ff78]{display:flex;justify-content:center;padding:20px 0;font-weight:700}#admin-users table td[data-v-dc12ff78]{font-size:1.1em}#admin-users .left-text[data-v-dc12ff78]{text-align:left}#admin-users[data-v-dc12ff78] .user-picture img{height:30px;width:30px}#admin-users[data-v-dc12ff78] .user-picture .no-picture{font-size:2em}@media screen and (max-width:700px){#admin-users .top-button[data-v-dc12ff78]{display:block;margin-bottom:20px}#admin-users .pagination-center[data-v-dc12ff78]{margin-top:-30px}}.user-header[data-v-20291951]{display:flex;align-items:stretch}.user-header .user-details[data-v-20291951]{flex-grow:1;padding:10px;display:flex;flex-direction:column;align-items:center}.user-header .user-details .user-name[data-v-20291951]{font-size:2em;height:60%}.user-header .user-details .user-stats[data-v-20291951]{display:flex;gap:40px}.user-header .user-details .user-stats .user-stat[data-v-20291951]{display:flex;flex-direction:column;align-items:center;padding-top:10px}.user-header .user-details .user-stats .user-stat .stat-label[data-v-20291951],.user-header .user-details .user-stats .user-stat .stat-number[data-v-20291951]{padding:0 5px}.user-header .user-details .user-stats .user-stat .stat-number[data-v-20291951],.user-header .user-details .user-stats .user-stat[data-v-20291951] .distance{font-weight:700;font-size:1.5em}@media screen and (max-width:500px){.user-header .user-details .user-name[data-v-20291951]{font-size:1.5em}.user-header .user-details .user-stats[data-v-20291951]{gap:20px}.user-header .user-details .user-stats .user-stat .stat-number[data-v-20291951],.user-header .user-details .user-stats .user-stat[data-v-20291951] .distance{font-weight:700;font-size:1.2em}.user-header .user-details .user-stats .user-stat.hide-small[data-v-20291951]{display:none}}.profile-tabs-checkboxes{display:flex;justify-content:center;flex-wrap:wrap;gap:5px}#user-profile[data-v-9729cba4]{margin:auto;width:700px}@media screen and (max-width:1000px){#user-profile[data-v-9729cba4]{width:100%;margin:0 auto 50px auto}}#user-infos .user-bio[data-v-217519af]{white-space:pre-wrap}#user-infos .alert-message[data-v-217519af]{margin:0}#user-infos .profile-buttons[data-v-217519af]{display:flex;flex-wrap:wrap}#user-infos .email-form[data-v-217519af]{display:flex}#user-infos .email-form form[data-v-217519af]{width:100%}#user-infos .email-form .form-buttons[data-v-217519af]{display:flex;gap:10px;margin-top:10px}.password-strength[data-v-74e71df5]{cursor:default;display:flex;flex-direction:column}.password-strength .password-slider[data-v-74e71df5]{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;border-radius:8px;height:5px;outline:none;padding:0}.password-strength .strength-0[data-v-74e71df5],.password-strength .strength-1[data-v-74e71df5]{background:var(--password-bg-color);background-image:linear-gradient(to right,var(--password-color-weak) 0,var(--password-color-weak) 100%);background-repeat:no-repeat}.password-strength .strength-2[data-v-74e71df5]{background:var(--password-bg-color);background-image:linear-gradient(to right,var(--password-color-medium) 0,var(--password-color-medium) 100%);background-repeat:no-repeat}.password-strength .strength-3[data-v-74e71df5]{background:var(--password-bg-color);background-image:linear-gradient(to right,var(--password-color-good) 0,var(--password-color-good) 100%);background-repeat:no-repeat}.password-strength .strength-4[data-v-74e71df5]{background:var(--password-bg-color);background-image:linear-gradient(to right,var(--password-color-strong) 0,var(--password-color-strong) 100%);background-repeat:no-repeat}.password-strength .password-slider[data-v-74e71df5]::-moz-range-thumb,.password-strength .password-slider[data-v-74e71df5]::-webkit-slider-thumb{opacity:0}.password-strength .password-slider[data-v-74e71df5]::-webkit-slider-thumb{-webkit-appearance:none}.password-strength .password-slider[data-v-74e71df5]::-moz-range-thumb{-moz-appearance:none;appearance:none}.password-strength .password-strength-details[data-v-74e71df5]{margin-bottom:5px;margin-top:-10px;padding:0 10px}.password-strength .password-strength-details .password-strength-value[data-v-74e71df5]{font-size:.85em}.password-strength .password-strength-details .info-box[data-v-74e71df5]{padding:1px 10px}.password-strength .password-strength-details .info-box .password-feedback[data-v-74e71df5]{padding-left:20px}.password-input[data-v-5a126514]{display:flex;flex-direction:column}.password-input .show-password[data-v-5a126514]{font-style:italic;font-size:.85em;text-align:right;margin-top:-7.5px;padding-right:10px;cursor:pointer}.form-items .password-input[data-v-37b8c4c8] .show-password{font-weight:400;font-size:.8em;margin-top:-4px;padding-left:0}.form-items .password-input[data-v-37b8c4c8] .form-info{font-weight:400;padding-left:10px}.form-items .password-input[data-v-37b8c4c8] .password-strength-details{font-weight:400;margin-top:0}.form-buttons[data-v-37b8c4c8]{flex-direction:row}@media screen and (max-width:500px){.form-buttons[data-v-37b8c4c8]{flex-direction:column}}.form-items .password-input[data-v-5e5a4552] .show-password{font-weight:400;font-size:.8em;margin-top:-4px;padding-left:0}.form-buttons[data-v-5e5a4552]{flex-direction:row}@media screen and (max-width:500px){.form-buttons[data-v-5e5a4552]{flex-direction:column}}#user-picture-edition .user-picture-form[data-v-687e9604]{display:flex;flex-direction:column;margin-top:10px}#user-picture-edition .user-picture-form form[data-v-687e9604]{display:flex;flex-direction:column;gap:10px;justify-content:flex-start}#user-picture-edition .user-picture-form form input[data-v-687e9604]{margin-top:10px;padding:5px}#user-picture-edition .user-picture-form form span[data-v-687e9604]{font-style:italic;font-size:.9em;padding-left:5px}#user-picture-edition .user-picture-form form .picture-help[data-v-687e9604]{display:flex}#user-picture-edition .user-picture-form form .picture-help span[data-v-687e9604]{font-style:italic;padding:10px}#user-picture-edition .user-picture-form form .picture-help .fa-info-circle[data-v-687e9604]{margin-right:10px}#user-picture-edition .user-picture-form .picture-buttons[data-v-687e9604]{display:flex;flex-direction:row;align-items:center;gap:10px}@media screen and (max-width:500px){#user-picture-edition .user-picture-form .picture-buttons[data-v-687e9604],#user-picture-edition .user-picture-form .picture-help[data-v-687e9604]{flex-direction:column;align-items:stretch}}#tz-dropdown[data-v-47ea2903]{display:flex;flex-direction:column;position:relative}#tz-dropdown .tz-dropdown-list[data-v-47ea2903]{background-color:var(--input-bg-color);border-radius:4px;border:solid 1px var(--input-border-color);padding:5px 0;position:absolute;overflow-y:auto;top:20px;left:0;right:0;max-height:200px;width:inherit}#tz-dropdown .tz-dropdown-item[data-v-47ea2903]{cursor:pointer;font-size:.9em;font-weight:400;padding:5px}#tz-dropdown .tz-dropdown-item.focus[data-v-47ea2903]{background-color:var(--dropdown-hover-color)}#user-preferences-edition .form-items[data-v-065d5e6c]{padding-top:5px}#user-preferences-edition .form-checkboxes .checkboxes-label[data-v-065d5e6c]{font-weight:700}#user-preferences-edition .form-checkboxes .checkboxes[data-v-065d5e6c]{display:flex;gap:10px;flex-wrap:wrap}#user-preferences-edition .form-checkboxes .checkboxes .checkbox-label[data-v-065d5e6c]{padding-left:5px}#user-preferences-edition .form-checkboxes .checkboxes label[data-v-065d5e6c]{font-weight:400}#new-oauth2-app #new-oauth2-title[data-v-0657ee77]{font-size:1.05em;font-weight:700;padding:0 10px}#new-oauth2-app #apps-form .form-items[data-v-0657ee77]{display:flex;flex-direction:column}#new-oauth2-app #apps-form .form-items input[type=text][data-v-0657ee77]{height:20px}#new-oauth2-app #apps-form .form-items .form-item-scope[data-v-0657ee77]{padding:10px}#new-oauth2-app #apps-form .form-items .form-item-scope .form-item-scope-label[data-v-0657ee77]{font-weight:700}#new-oauth2-app #apps-form .form-items .form-item-scope .form-item-scope-checkboxes[data-v-0657ee77]{padding-bottom:10px}#new-oauth2-app #apps-form .form-items .form-item-scope .form-item-scope-checkboxes .scope-label[data-v-0657ee77]{height:inherit}#new-oauth2-app #apps-form .form-items .form-item-scope .form-item-scope-checkboxes .scope-description[data-v-0657ee77]{font-style:italic;margin:0 5px}#new-oauth2-app #apps-form .form-items .form-item[data-v-0657ee77]{display:flex;flex-direction:column;padding:10px}#new-oauth2-app #apps-form .form-buttons[data-v-0657ee77]{display:flex;justify-content:flex-end}#new-oauth2-app #apps-form .form-buttons button[data-v-0657ee77]{margin:5px}#authorize-oauth2-app #authorize-oauth2-title[data-v-3b2fe9ed]{font-size:1.05em;font-weight:700;padding:0 10px}#authorize-oauth2-app .oauth2-access[data-v-3b2fe9ed]{padding:0 10px}#authorize-oauth2-app .authorize-oauth2-buttons[data-v-3b2fe9ed]{display:flex}#authorize-oauth2-app .authorize-oauth2-buttons button[data-v-3b2fe9ed]{margin:5px}#oauth2-app .app-buttons[data-v-3a844fa2]{display:flex;flex-wrap:wrap;gap:10px}#oauth2-app .app-secret[data-v-3a844fa2]{word-break:break-word}#oauth2-app .client-scopes[data-v-3a844fa2]{display:flex;flex-wrap:wrap}#oauth2-app .client-scopes .client-scope[data-v-3a844fa2]{padding-right:15px}#oauth2-app .fa-copy[data-v-3a844fa2]{font-size:.9em}#oauth2-app .no-description[data-v-3a844fa2]{font-style:italic}#oauth2-app .no-app[data-v-3a844fa2]{font-style:italic;padding:10px 0}#oauth2-apps-list ul[data-v-efa45ea0]{list-style:square}#oauth2-apps-list ul li[data-v-efa45ea0]{padding-bottom:10px}#oauth2-apps-list .app-issued-at[data-v-efa45ea0]{font-size:.85em;font-style:italic;padding-left:10px}#oauth2-apps-list .apps-list[data-v-efa45ea0]{font-size:1.05em;font-weight:700}#oauth2-apps-list .app-list-buttons[data-v-efa45ea0]{display:flex;gap:10px}#oauth2-apps-list .no-apps[data-v-efa45ea0]{font-style:italic;padding-bottom:20px}#user-sport-preferences .sport-img[data-v-74e52489]{height:35px;width:35px;margin:0 auto}#user-sport-preferences .sport-color[data-v-74e52489]{border:none;margin:6px 1px 6px 0;padding:0;width:40px}#user-sport-preferences .sport-label[data-v-74e52489]{width:170px}#user-sport-preferences .disabled-sport[data-v-74e52489]{font-style:italic;color:var(--disabled-sport-color)}#user-sport-preferences .disabled-sport .disabled-message[data-v-74e52489]{font-size:.9em}#user-sport-preferences .disabled-sport .cell-heading[data-v-74e52489]{font-style:normal}#user-sport-preferences .action-buttons[data-v-74e52489]{width:70px}#user-sport-preferences .edition-buttons[data-v-74e52489]{display:flex;flex-wrap:wrap;gap:5px;line-height:1.3em}#user-sport-preferences .edition-buttons button[data-v-74e52489]{text-align:center;min-width:80px}#user-sport-preferences .threshold-input[data-v-74e52489]{padding:5px;width:50px}#user-sport-preferences .mobile-display[data-v-74e52489]{display:none}#user-sport-preferences div.error-message[data-v-74e52489]{margin:0}@media screen and (max-width:700px){#user-sport-preferences .action-buttons[data-v-74e52489],#user-sport-preferences .sport-label[data-v-74e52489]{width:45%}#user-sport-preferences .edition-buttons[data-v-74e52489]{justify-content:center}#user-sport-preferences .mobile-display[data-v-74e52489]{display:flex;margin:20px 0 10px}}@media screen and (max-width:500px){#user-sport-preferences .action-buttons[data-v-74e52489],#user-sport-preferences .sport-label[data-v-74e52489]{width:100%}}[data-v-74257266]:root{--app-background-color:#fff;--app-color:#2c3e50;--app-color-light:#808b96;--app-a-color:#40578a;--app-shadow-color:#d3d3d3;--app-loading-color:#f3f3f3;--app-loading-top-color:var(--app-color);--button-hover-color:#fff;--button-cancel-bg-color:#fff;--button-cancel-color:var(--app-color);--button-confirm-bg-color:#fff;--button-confirm-color:var(--app-color);--button-danger-bg-color:#fff;--button-danger-color:#dc3545;--button-danger-hover-bg-color:#dc3545;--button-danger-hover-color:#fff;--card-border-color:#c4c7cf;--input-border-color:#9da3af;--input-bg-color:#fff;--input-error-color:#dc3545;--dropdown-hover-color:#eff0f5;--custom-checkbox-border-color:#9da3af;--custom-checkbox-checked-bg-color:#9da3af;--custom-checkbox-checked-color:#fff;--calendar-border-color:#c4c7cf;--calendar-week-end-color:#f5f5f5;--calendar-today-color:#eff1f3;--modal-background-color:rgba(0,0,0,.3);--nav-bar-background-color:#fff;--nav-bar-link-active:#485b6e;--nav-border-color:#c5ccdb;--mobile-menu-selected-color:#fff;--mobile-menu-selected-bgcolor:#9da3af;--footer-background-color:#fff;--footer-border-color:#ebeef3;--footer-color:#8b8c8c;--alert-background-color:#d6dde3;--alert-color:#3f3f3f;--info-background-color:#e5e7ea;--info-color:var(--app-color);--error-background-color:#ffd2d2;--error-color:#db1924;--success-background-color:#d9ecd9;--success-color:#306430;--disabled-background-color:#e0e0e0;--disabled-color:#a3a3a3;--disabled-sport-color:#616161;--scroll-button-bg-color:hsla(0,0%,100%,.7);--workout-trophy-color:#daa520;--workout-img-color:invert(22%) sepia(25%) saturate(646%) hue-rotate(169deg) brightness(97%) contrast(96%);--workout-no-map-bg-color:#eaeaea;--workout-no-map-color:#666;--cell-heading-bg-color:#eee;--cell-heading-color:#696969;--svg-filter:drop-shadow(10px 10px 10px var(--app-shadow-color));--password-bg-color:#d7dadf;--password-color-weak:#e46d6e;--password-color-medium:#f8bc4a;--password-color-good:#acc578;--password-color-strong:#57c255}@font-face{font-family:PT Sans;font-style:normal;font-weight:400;src:url(/static/fonts/pt-sans-v9-latin-regular.c5a514ae.eot);src:local("PT Sans"),local("PTSans-Regular"),url(/static/fonts/pt-sans-v9-latin-regular.c5a514ae.eot?#iefix) format("embedded-opentype"),url(/static/fonts/pt-sans-v9-latin-regular.e7867499.woff2) format("woff2"),url(/static/fonts/pt-sans-v9-latin-regular.b5b74f16.woff) format("woff"),url(/static/fonts/pt-sans-v9-latin-regular.c43bc0a2.ttf) format("truetype"),url(/static/img/pt-sans-v9-latin-regular.59a385b4.svg#PTSans) format("svg")}@font-face{font-family:PT Sans;font-style:italic;font-weight:400;src:url(/static/fonts/pt-sans-v9-latin-italic.8293436e.eot);src:local("PT Sans Italic"),local("PTSans-Italic"),url(/static/fonts/pt-sans-v9-latin-italic.8293436e.eot?#iefix) format("embedded-opentype"),url(/static/fonts/pt-sans-v9-latin-italic.10011d51.woff2) format("woff2"),url(/static/fonts/pt-sans-v9-latin-italic.fe36f54f.woff) format("woff"),url(/static/fonts/pt-sans-v9-latin-italic.6206408d.ttf) format("truetype"),url(/static/img/pt-sans-v9-latin-italic.0b285c83.svg#PTSans) format("svg")}@font-face{font-family:PT Sans;font-style:normal;font-weight:700;src:url(/static/fonts/pt-sans-v9-latin-700.01a58da9.eot);src:local("PT Sans Bold"),local("PTSans-Bold"),url(/static/fonts/pt-sans-v9-latin-700.01a58da9.eot?#iefix) format("embedded-opentype"),url(/static/fonts/pt-sans-v9-latin-700.51b1613b.woff2) format("woff2"),url(/static/fonts/pt-sans-v9-latin-700.5ff2a2d7.woff) format("woff"),url(/static/fonts/pt-sans-v9-latin-700.6514157e.ttf) format("truetype"),url(/static/img/pt-sans-v9-latin-700.b8a7047e.svg#PTSans) format("svg")}body[data-v-74257266]{margin:0}#app[data-v-74257266]{font-family:PT Sans,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--app-color);background-color:var(--app-background-color);margin:0;min-height:100vh}a[data-v-74257266]{color:var(--app-a-color);text-decoration:none}img[data-v-74257266]{max-width:100%}input[data-v-74257266],select[data-v-74257266],textarea[data-v-74257266]{background-color:var(--input-bg-color);border-radius:4px;border:solid 1px var(--input-border-color);padding:10px}input[data-v-74257266]:disabled,select[data-v-74257266]:disabled,textarea[data-v-74257266]:disabled{background-color:var(--disabled-background-color);border-color:var(--disabled-color)}form.errors[data-v-74257266] :invalid{outline:2px solid var(--input-error-color)}label[data-v-74257266]{font-weight:700}button[data-v-74257266]{background:var(--app-background-color);border:solid 1px var(--input-border-color);border-radius:4px;box-shadow:2px 2px 2px var(--app-shadow-color);color:var(--app-color);padding:6px 14px}button[data-v-74257266]:hover{background:var(--app-color);color:var(--button-hover-color)}button[data-v-74257266]:enabled:active{box-shadow:2px 0 2px var(--app-shadow-color);transform:translateY(2px)}button.confirm[data-v-74257266]:disabled,button[data-v-74257266]:disabled{background:var(--disabled-background-color);border-color:var(--disabled-color);color:var(--disabled-color)}button.cancel[data-v-74257266]{background:var(--button-cancel-bg-color);color:var(--button-cancel-color)}button.cancel[data-v-74257266]:hover{background:var(--app-color);color:var(--button-hover-color)}button.confirm[data-v-74257266]{background:var(--button-confirm-bg-color);color:var(--button-confirm-color)}button.confirm[data-v-74257266]:hover{background:var(--app-color);color:var(--button-hover-color)}button.danger[data-v-74257266]{background:var(--button-danger-bg-color);color:var(--button-danger-color)}button.danger[data-v-74257266]:hover{background:var(--button-danger-hover-bg-color);color:var(--button-danger-hover-color)}button.danger[data-v-74257266]:disabled{background:var(--disabled-background-color);border-color:var(--disabled-color);color:var(--disabled-color)}.box[data-v-74257266]{border:solid 1px var(--card-border-color);border-radius:4px;padding:10px;margin:10px}.info-box[data-v-74257266]{background-color:var(--info-background-color);border-radius:4px;color:var(--info-color);font-size:.8em;padding:10px}.container[data-v-74257266]{display:flex;margin-left:auto;margin-right:auto;padding-left:15px;padding-right:15px;max-width:1140px}.form-box .form-items[data-v-74257266]{display:flex;flex-direction:column}.form-box .form-items input[data-v-74257266]{margin:10px;padding:5px}.form-info[data-v-74257266]{color:var(--alert-color);font-size:.8em;margin-top:-2px;padding:0 15px}.success-message[data-v-74257266]{margin:20px 0;background-color:var(--success-background-color);color:var(--success-color)}.upper[data-v-74257266]{text-transform:uppercase}.view[data-v-74257266]{padding-bottom:35px;background-color:var(--app-background-color)}.fa-trophy[data-v-74257266]{color:var(--workout-trophy-color)}.mountains[data-v-74257266]{margin-bottom:-3px;height:16px;filter:var(--workout-img-color)}.section-title[data-v-74257266]{font-weight:700;padding-top:15px;padding-left:10px;text-transform:capitalize}.no-map[data-v-74257266]{background-color:var(--workout-no-map-bg-color);background-image:url(/static/img/map.5b26d82b.svg);background-size:contain;background-repeat:no-repeat;background-position:50%;color:var(--workout-no-map-color);font-style:italic;font-weight:700;text-align:center;vertical-align:center}.custom-checkboxes-group[data-v-74257266]{display:flex;justify-content:space-around}.custom-checkboxes-group .custom-checkboxes[data-v-74257266]{display:inline-flex}@media screen and (max-width:300px){.custom-checkboxes-group .custom-checkboxes[data-v-74257266]{display:flex;flex-direction:column;align-items:center;gap:5px}}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label[data-v-74257266]{font-weight:400;float:left;padding:0 5px;cursor:pointer}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label input[data-v-74257266]{display:none}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label span[data-v-74257266]{border:solid 1px var(--custom-checkbox-border-color);border-radius:5px;display:block;font-size:.9em;padding:2px 6px;text-align:center}.custom-checkboxes-group .custom-checkboxes .custom-checkbox input:checked+span[data-v-74257266]{background-color:var(--custom-checkbox-checked-bg-color);color:var(--custom-checkbox-checked-color)}.description-list dl[data-v-74257266]{display:flex;flex-direction:column;width:100%}.description-list dl dt[data-v-74257266]{font-weight:700}.description-list dl dd[data-v-74257266]{margin-bottom:10px}.center-card[data-v-74257266]{margin:0 auto;width:700px}.center-card.with-margin[data-v-74257266]{margin-top:100px}@media screen and (max-width:1000px){.center-card[data-v-74257266]{width:100%;margin:0 auto 50px auto}}.text-center[data-v-74257266]{text-align:center}.text-left[data-v-74257266]{text-align:left}.responsive-table[data-v-74257266]{margin-bottom:15px}.responsive-table table[data-v-74257266]{width:100%;padding:10px;font-size:.9em;border-collapse:collapse}.responsive-table table thead th[data-v-74257266]{vertical-align:center;padding:10px;border-bottom:2px solid var(--card-border-color)}.responsive-table table tbody[data-v-74257266]{font-size:.95em}.responsive-table table tbody td[data-v-74257266]{padding:10px;border-bottom:1px solid var(--card-border-color)}.responsive-table table tbody tr:last-child td[data-v-74257266]{border:none}.responsive-table table .cell-heading[data-v-74257266]{background:var(--cell-heading-bg-color);color:var(--cell-heading-color);display:none;font-size:10px;font-weight:700;padding:5px;position:absolute;text-transform:uppercase;top:0;left:0}@media screen and (max-width:700px){.responsive-table table thead[data-v-74257266]{left:-9999px;position:absolute;visibility:hidden}.responsive-table table tr[data-v-74257266]{border-bottom:0;display:flex;flex-direction:row;flex-wrap:wrap;margin-bottom:40px}.responsive-table table td[data-v-74257266]{border:1px solid var(--card-border-color);margin:0 -1px -1px 0;padding-top:25px!important;position:relative;text-align:center;width:45%}.responsive-table table tbody tr:last-child td[data-v-74257266]{border:1px solid var(--card-border-color)}.responsive-table table .cell-heading[data-v-74257266]{display:flex}}@media screen and (max-width:500px){.responsive-table table td[data-v-74257266]{width:100%}}.profile-buttons[data-v-74257266]{display:flex;gap:10px}.medium-sport-img[data-v-74257266]{height:35px;width:35px;margin:0 auto}.about-text[data-v-74257266]{margin-top:200px}@media screen and (max-width:700px){.about-text[data-v-74257266]{margin-top:0}}.about-text .fa-padding[data-v-74257266]{padding-right:10px}#bike[data-v-795f7f5f]{display:flex;justify-content:center;margin-top:180px;padding:10px}#bike .bike-img[data-v-795f7f5f]{max-width:200px}@media screen and (max-width:700px){#bike[data-v-795f7f5f]{margin-top:10px}#bike .bike-img[data-v-795f7f5f]{max-width:150px}}#about[data-v-bffb50d0]{display:flex;height:100%}#about .container[data-v-bffb50d0]{display:flex;flex-direction:row;justify-content:space-evenly;margin-bottom:20px;width:100%}#about .container .container-sub[data-v-bffb50d0]{min-width:50%;height:100%}#about .container .about-details[data-v-bffb50d0]{width:100%}@media screen and (max-width:1000px){#about[data-v-bffb50d0]{height:auto}#about .container .container-sub[data-v-bffb50d0]{align-items:center}#about .container .container-sub .bike-img[data-v-bffb50d0]{max-width:60%}}@media screen and (max-width:700px){#about .container[data-v-bffb50d0]{flex-direction:column}}.static-map{display:flex;position:relative}.static-map.display-hover{position:absolute;margin-left:20px;margin-top:3px;width:400px;height:225px;z-index:100}.static-map .bg-map-image{background-size:cover;background-position:50%;opacity:.6;height:200px;width:100%}.static-map .map-attribution{top:0;right:0;font-size:11px;position:absolute}.static-map .map-attribution-text{background-color:hsla(0,0%,100%,.7)}.mountains[data-v-96abcc38]{padding-right:5px}.timeline-workout[data-v-96abcc38]{margin-bottom:20px}.timeline-workout .box[data-v-96abcc38]{flex-direction:column;padding:0}.timeline-workout .box .workout-user-date[data-v-96abcc38]{display:flex;justify-content:space-between;align-items:flex-start;padding:5px 10px}.timeline-workout .box .workout-user-date .workout-user[data-v-96abcc38]{display:flex}.timeline-workout .box .workout-user-date .workout-user[data-v-96abcc38] .user-picture img{height:25px;width:25px}.timeline-workout .box .workout-user-date .workout-user[data-v-96abcc38] .user-picture .no-picture{font-size:1.5em}.timeline-workout .box .workout-user-date .workout-user .workout-user-name[data-v-96abcc38]{white-space:nowrap;padding-left:5px}.timeline-workout .box .workout-user-date .workout-date[data-v-96abcc38]{font-size:.85em;font-style:italic;white-space:nowrap}.timeline-workout .box .workout-user-date .workout-title[data-v-96abcc38]{display:block;text-align:center;padding:0 10px}@media screen and (max-width:500px){.timeline-workout .box .workout-user-date .workout-title[data-v-96abcc38]{display:none}}.timeline-workout .box .workout-map[data-v-96abcc38]{background-color:var(--workout-no-map-bg-color);height:150px}.timeline-workout .box .workout-map .no-map[data-v-96abcc38]{line-height:150px}.timeline-workout .box .workout-map[data-v-96abcc38] .bg-map-image{height:150px}.timeline-workout .box .workout-data[data-v-96abcc38]{display:flex;padding:5px;font-size:.9em}.timeline-workout .box .workout-data .sport-img[data-v-96abcc38]{height:25px;width:25px}.timeline-workout .box .workout-data .data[data-v-96abcc38],.timeline-workout .box .workout-data .img[data-v-96abcc38]{display:flex;align-items:center}.timeline-workout .box .workout-data .data .data-values[data-v-96abcc38],.timeline-workout .box .workout-data .img .data-values[data-v-96abcc38]{display:flex;flex-wrap:wrap}.timeline-workout .box .workout-data .img[data-v-96abcc38]{justify-content:flex-end;width:10%}.timeline-workout .box .workout-data .data[data-v-96abcc38]{justify-content:center;width:22%}@media screen and (max-width:500px){.timeline-workout .box .workout-data .img[data-v-96abcc38]{justify-content:center;width:20%}.timeline-workout .box .workout-data .data[data-v-96abcc38]{justify-content:center;width:40%}.timeline-workout .box .workout-data .altitude[data-v-96abcc38],.timeline-workout .box .workout-data .elevation[data-v-96abcc38]{display:none}}.timeline-workout .box .workout-data.without-gpx .data[data-v-96abcc38],.timeline-workout .box .workout-data.without-gpx .img[data-v-96abcc38]{justify-content:center;width:33%}.timeline-workout .box .workout-data[data-v-96abcc38],.timeline-workout .box .workout-map[data-v-96abcc38]{cursor:pointer}.timeline-workout .box .no-cursor[data-v-96abcc38]{cursor:default}.timeline-workout .box .fa[data-v-96abcc38]{padding-right:10px}.no-workouts[data-v-4b4d15fb]{display:flex;justify-content:center}#timeline[data-v-35567bf2]{margin-bottom:20px}#timeline .more-workouts[data-v-35567bf2]{display:flex;justify-content:center}.calendar-workout{display:flex;padding:1px;cursor:pointer}.calendar-workout .sport-img{width:18px;height:18px}.calendar-workout sup{position:relative;top:-8px;left:-3px;width:2px}.calendar-workout sup .custom-fa-small{font-size:.7em}@media screen and (max-width:700px){.calendar-workout .sport-img{padding:3px;width:20px;height:20px}.calendar-workout sup .custom-fa-small{font-size:.6em}}.calendar-workouts-chart[data-v-52d4310a]{display:flex}.calendar-workouts-chart .workouts-chart[data-v-52d4310a]{position:relative}.calendar-workouts-chart .workouts-chart .workouts-count[data-v-52d4310a]{display:flex;justify-content:center;position:absolute;top:4px;left:6px;width:20px;font-size:1.1em;font-weight:700}@media screen and (max-width:700px){.calendar-workouts-chart .workouts-chart .workouts-count[data-v-52d4310a]{top:16px;left:6px}.calendar-workouts-chart .workouts-chart[data-v-52d4310a] .donut-chart{padding-top:12px}.calendar-workouts-chart .workouts-chart[data-v-52d4310a] .donut-chart svg g circle{stroke-width:2;stroke-opacity:.8}}.calendar-workouts-chart .workouts-pane[data-v-52d4310a]{display:flex;padding-left:40px}.calendar-workouts-chart .workouts-pane .more-workouts[data-v-52d4310a]{background:#f5f5f5;border-radius:4px;box-shadow:0 4px 8px 0 rgba(0,0,0,.2),0 6px 20px 0 rgba(0,0,0,.19);position:absolute;top:52px;left:0;min-width:60px;margin-bottom:20px;padding:10px 10px;display:flex;flex-wrap:wrap;z-index:1000}@media screen and (max-width:700px){.calendar-workouts-chart .workouts-pane .more-workouts[data-v-52d4310a]{min-width:70px}}.calendar-workouts-chart .workouts-pane .more-workouts .calendar-more[data-v-52d4310a]{position:absolute;font-size:.9em;top:5px;right:5px}.calendar-workouts .desktop-display{display:flex}.calendar-workouts .mobile-display{display:none}.calendar-workouts .workouts-display{display:flex;flex-wrap:wrap;position:relative;margin:0 10px 0 0}.calendar-workouts .donut-display{display:flex;height:34px;width:34px}@media screen and (max-width:700px){.calendar-workouts .desktop-display{display:none}.calendar-workouts .mobile-display{display:flex}}.calendar-cells{display:flex;flex-direction:column;width:100%}.calendar-cells .calendar-row{display:flex;flex-wrap:wrap;border-top:solid 1px var(--calendar-border-color)}.calendar-cells .calendar-row .calendar-cell{border-right:solid 1px var(--calendar-border-color);height:40px;flex-grow:1;flex-basis:8%;padding:5px 10px 5px 5px;width:8%;position:relative}.calendar-cells .calendar-row .calendar-cell .calendar-cell-day{position:absolute;font-size:.8em;line-height:1;top:.5em;right:.5em;font-weight:700}.calendar-cells .calendar-row .calendar-cell:last-child{border-right:0}@media screen and (max-width:700px){.calendar-cells .calendar-row .calendar-cell:last-child .calendar-workouts .more-workouts{left:-45px}}.calendar-cells .calendar-row .disabled-cell{color:var(--app-color-light)}.calendar-cells .calendar-row .week-end{background:var(--calendar-week-end-color)}.calendar-cells .calendar-row .today{background:var(--calendar-today-color)}@media screen and (max-width:700px){.calendar-cells .calendar-row:last-child .calendar-workouts .more-workouts{top:inherit;bottom:20px}}.calendar-days{display:flex;flex-direction:row;border-top:solid 1px var(--calendar-border-color)}.calendar-days .calendar-day{flex-grow:1;padding:5px;text-align:center;text-transform:uppercase;color:var(--app-color-light)}.calendar-header{display:flex;flex-direction:row}.calendar-header .calendar-arrow,.calendar-header .calendar-month{flex-grow:1;padding:10px}.calendar-header .calendar-arrow-left{text-align:left;cursor:pointer}.calendar-header .calendar-arrow-right{text-align:right;cursor:pointer}.calendar-header .calendar-month{font-weight:700;text-align:center;text-transform:uppercase}#user-calendar .calendar-card,#user-calendar .calendar-card .card-content{padding:0}.start-chart .chart-radio[data-v-d5e9b348]{display:flex;justify-content:space-between;flex-wrap:wrap;padding:10px}.start-chart .chart-radio label[data-v-d5e9b348]{font-size:.85em;font-weight:400}@media screen and (max-width:700px){.start-chart .chart-radio label[data-v-d5e9b348]{padding-bottom:10px}}.user-month-stats[data-v-1bcddc12] .card-content{padding:10px}.records-card[data-v-8d17c606]{width:100%;padding-bottom:3px}.records-card[data-v-8d17c606] .card{font-size:.9em}.records-card[data-v-8d17c606] .card .card-title{display:flex;font-size:.9em}.records-card[data-v-8d17c606] .card .card-title .sport-img{padding-right:10px;height:20px;width:20px}.records-card[data-v-8d17c606] .card .card-content{font-size:.9em;padding:10px}.records-card[data-v-8d17c606] .card .card-content .record{display:flex;align-items:center;justify-content:space-between}.records-card[data-v-8d17c606] .card .card-content .record span{padding:2px}.records-card[data-v-8d17c606] .card .card-content .record .record-type{flex-grow:1}.records-card[data-v-8d17c606] .card .card-content .record .record-value{font-weight:700;white-space:nowrap;padding-right:10px}.records-card[data-v-8d17c606] .card .card-content .record .record-date{white-space:nowrap;min-width:30%;text-align:right}@media screen and (max-width:1000px){.records-card[data-v-8d17c606] .card,.records-card[data-v-8d17c606] .card .card-title{font-size:1em}.records-card[data-v-8d17c606] .card .card-title .sport-img{height:22px;width:22px}}.user-records .no-records[data-v-f0c85cb8]{border:solid 1px var(--card-border-color);border-radius:4px;padding:10px;margin:10px}#user-stats{display:flex;flex:1 0 25%;justify-content:space-around;flex-wrap:wrap}#dashboard .dashboard-container[data-v-4c0893c1]{display:flex;flex-direction:row}#dashboard .dashboard-container .dashboard-sub-container[data-v-4c0893c1]{display:flex;flex-direction:column}#dashboard .dashboard-container .left-container[data-v-4c0893c1]{width:32%}#dashboard .dashboard-container .right-container[data-v-4c0893c1]{width:68%}#dashboard .mobile-menu[data-v-4c0893c1]{display:none}@media screen and (max-width:1000px){#dashboard[data-v-4c0893c1]{padding-bottom:60px}#dashboard .dashboard-container[data-v-4c0893c1]{display:flex;flex-direction:column}#dashboard .dashboard-container .left-container[data-v-4c0893c1],#dashboard .dashboard-container .right-container[data-v-4c0893c1]{width:100%}#dashboard .mobile-menu[data-v-4c0893c1]{display:flex}#dashboard .mobile-menu .box[data-v-4c0893c1]{display:flex;justify-content:space-between;padding:0;width:100%}#dashboard .mobile-menu .box .mobile-menu-item[data-v-4c0893c1]{display:flex;justify-content:space-around;border:none;border-radius:4px;box-shadow:none;font-size:.95em;padding:10px;width:25%}#dashboard .mobile-menu .box .mobile-menu-item .fa-trophy[data-v-4c0893c1]{color:var(--app-color)}#dashboard .mobile-menu .box .mobile-menu-item.is-selected[data-v-4c0893c1]{color:var(--mobile-menu-selected-color);background-color:var(--mobile-menu-selected-bgcolor)}#dashboard .mobile-menu .box .mobile-menu-item.is-selected .fa-trophy[data-v-4c0893c1]{color:var(--mobile-menu-selected-color)}#dashboard .is-hidden[data-v-4c0893c1]{display:none}}#error[data-v-b60bfa80]{display:flex;align-items:center;justify-content:center;height:75vh;text-align:center}#error .error-content[data-v-b60bfa80]{margin-top:50px}#error .error-content h1[data-v-b60bfa80]{font-size:6em;text-shadow:4px 4px 0 var(--app-shadow-color)}#error .error-content p[data-v-b60bfa80]{font-size:1.2em;margin:30px 0}[data-v-b3c885de]:root{--app-background-color:#fff;--app-color:#2c3e50;--app-color-light:#808b96;--app-a-color:#40578a;--app-shadow-color:#d3d3d3;--app-loading-color:#f3f3f3;--app-loading-top-color:var(--app-color);--button-hover-color:#fff;--button-cancel-bg-color:#fff;--button-cancel-color:var(--app-color);--button-confirm-bg-color:#fff;--button-confirm-color:var(--app-color);--button-danger-bg-color:#fff;--button-danger-color:#dc3545;--button-danger-hover-bg-color:#dc3545;--button-danger-hover-color:#fff;--card-border-color:#c4c7cf;--input-border-color:#9da3af;--input-bg-color:#fff;--input-error-color:#dc3545;--dropdown-hover-color:#eff0f5;--custom-checkbox-border-color:#9da3af;--custom-checkbox-checked-bg-color:#9da3af;--custom-checkbox-checked-color:#fff;--calendar-border-color:#c4c7cf;--calendar-week-end-color:#f5f5f5;--calendar-today-color:#eff1f3;--modal-background-color:rgba(0,0,0,.3);--nav-bar-background-color:#fff;--nav-bar-link-active:#485b6e;--nav-border-color:#c5ccdb;--mobile-menu-selected-color:#fff;--mobile-menu-selected-bgcolor:#9da3af;--footer-background-color:#fff;--footer-border-color:#ebeef3;--footer-color:#8b8c8c;--alert-background-color:#d6dde3;--alert-color:#3f3f3f;--info-background-color:#e5e7ea;--info-color:var(--app-color);--error-background-color:#ffd2d2;--error-color:#db1924;--success-background-color:#d9ecd9;--success-color:#306430;--disabled-background-color:#e0e0e0;--disabled-color:#a3a3a3;--disabled-sport-color:#616161;--scroll-button-bg-color:hsla(0,0%,100%,.7);--workout-trophy-color:#daa520;--workout-img-color:invert(22%) sepia(25%) saturate(646%) hue-rotate(169deg) brightness(97%) contrast(96%);--workout-no-map-bg-color:#eaeaea;--workout-no-map-color:#666;--cell-heading-bg-color:#eee;--cell-heading-color:#696969;--svg-filter:drop-shadow(10px 10px 10px var(--app-shadow-color));--password-bg-color:#d7dadf;--password-color-weak:#e46d6e;--password-color-medium:#f8bc4a;--password-color-good:#acc578;--password-color-strong:#57c255}#user-auth-form[data-v-b3c885de]{display:flex}#user-auth-form #user-form[data-v-b3c885de]{width:60%}#user-auth-form #user-form .account[data-v-b3c885de]{font-size:.9em;padding-left:10px}#user-auth-form #user-form .links[data-v-b3c885de]{font-size:.9em;font-style:italic;padding:0 10px}#user-auth-form #user-form button[data-v-b3c885de]{margin:10px;border:solid 1px var(--app-color)}#user-auth-form #user-form button[data-v-b3c885de]:disabled{border-color:var(--disabled-color)}#user-auth-form #user-form .success-message[data-v-b3c885de]{margin:10px}@media screen and (max-width:1000px){#user-auth-form[data-v-b3c885de]{margin-bottom:50px}#user-auth-form #user-form[data-v-b3c885de]{width:100%}}.user-form[data-v-b3c885de]{margin-top:200px}@media screen and (max-width:700px){.user-form[data-v-b3c885de]{margin-top:10px}}#loginOrRegister[data-v-58043acb]{display:flex}#loginOrRegister .container[data-v-58043acb]{display:flex;flex-direction:row;justify-content:space-evenly;margin-bottom:20px;width:100%}#loginOrRegister .container .container-sub[data-v-58043acb]{min-width:50%;height:100%}@media screen and (max-width:1000px){#loginOrRegister[data-v-58043acb]{height:auto}#loginOrRegister .container .container-sub[data-v-58043acb]{align-items:center}#loginOrRegister .container .container-sub .bike-img[data-v-58043acb]{max-width:60%}}@media screen and (max-width:700px){#loginOrRegister .container[data-v-58043acb]{flex-direction:column}}.alert-message[data-v-69d7e4ff]{background:var(--alert-background-color);color:var(--alert-color);border-radius:4px;margin:10px;padding:10px}.custom-textarea[data-v-8cf5cc64]{display:flex;flex-direction:column}.custom-textarea .remaining-chars[data-v-8cf5cc64]{font-size:.8em;font-style:italic}.strong[data-v-f46ff1d6]{font-weight:700}.dropdown-list[data-v-2d3b4eac]{list-style-type:none;background-color:#fff;padding:0;margin-top:5px;margin-left:-20px!important;position:absolute;text-align:left;border:1px solid #d3d3d3;box-shadow:2px 2px 5px #d3d3d3;width:auto!important}.dropdown-list li[data-v-2d3b4eac]{padding-top:5px;padding-right:5px}.dropdown-list li[data-v-2d3b4eac]:last-child{padding-bottom:5px}.dropdown-item[data-v-2d3b4eac]{cursor:default}.dropdown-item.selected[data-v-2d3b4eac]{font-weight:700}.dropdown-item.selected[data-v-2d3b4eac]:after{content:" ✔"}.error-message[data-v-2659a79a]{background:var(--error-background-color);color:var(--error-color);border-radius:4px;margin:10px;padding:10px}.loader[data-v-4c9921ee]{animation:spin-4c9921ee 2s linear infinite;border:14px solid var(--app-loading-color);border-top:14px solid var(--app-loading-top-color);border-radius:50%;height:60px;margin-left:41%;width:60px}@keyframes spin-4c9921ee{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}#modal[data-v-e8fcfaba]{position:fixed;top:0;bottom:0;left:0;right:0;background-color:var(--modal-background-color);padding:10px;z-index:1240}#modal .custom-modal[data-v-e8fcfaba]{background-color:var(--app-background-color);border-radius:4px;max-width:500px;margin:25% auto;z-index:1250}@media screen and (max-width:1000px){#modal .custom-modal[data-v-e8fcfaba]{margin:15% auto;width:100%}}@media screen and (max-width:700px){#modal .custom-modal[data-v-e8fcfaba]{margin:50% 0;width:100%}}#modal .custom-modal[data-v-e8fcfaba] .card{border:0;margin:0}#modal .custom-modal[data-v-e8fcfaba] .card .card-content{display:flex;flex-direction:column}#modal .custom-modal[data-v-e8fcfaba] .card .card-content .modal-message{padding:10px}#modal .custom-modal[data-v-e8fcfaba] .card .card-content .modal-message span{font-weight:700}#modal .custom-modal[data-v-e8fcfaba] .card .card-content .modal-buttons{display:flex;justify-content:flex-end}#modal .custom-modal[data-v-e8fcfaba] .card .card-content .modal-buttons button{margin:5px} \ No newline at end of file diff --git a/fittrackee/dist/static/css/profile.203e78e2.css b/fittrackee/dist/static/css/profile.203e78e2.css deleted file mode 100644 index a3493eda..00000000 --- a/fittrackee/dist/static/css/profile.203e78e2.css +++ /dev/null @@ -1 +0,0 @@ -#account-confirmation[data-v-785df978]{display:flex;flex-direction:column;align-items:center}#account-confirmation svg[data-v-785df978]{stroke:none;fill-rule:nonzero;fill:var(--app-color);filter:var(--svg-filter);width:100px}#account-confirmation .error-message[data-v-785df978]{font-size:1.1em;text-align:center;display:flex;flex-direction:column}@media screen and (max-width:1000px){#account-confirmation .error-message[data-v-785df978]{font-size:1em}}#email-update[data-v-8c2ec9ce]{display:flex;flex-direction:column;align-items:center}#email-update svg[data-v-8c2ec9ce]{stroke:none;fill-rule:nonzero;fill:var(--app-color);filter:var(--svg-filter);width:100px}#email-update .error-message[data-v-8c2ec9ce]{font-size:1.1em;text-align:center;display:flex;flex-direction:column}@media screen and (max-width:1000px){#email-update .error-message[data-v-8c2ec9ce]{font-size:1em}}#profile[data-v-05463732],#profile[data-v-05463732] .profile-form{display:flex;flex-direction:column}#profile[data-v-05463732] .profile-form hr{border-color:var(--card-border-color);border-width:1px 0 0 0}#profile[data-v-05463732] .profile-form .form-items{display:flex;flex-direction:column}#profile[data-v-05463732] .profile-form .form-items input{margin:5px 0}#profile[data-v-05463732] .profile-form .form-items select{height:35px;padding:5px 0}#profile[data-v-05463732] .profile-form .form-items ::v-deep(.custom-textarea) textarea{padding:5px}#profile[data-v-05463732] .profile-form .form-items .form-item{display:flex;flex-direction:column;padding:10px}#profile[data-v-05463732] .profile-form .form-items .birth-date{height:20px}#profile[data-v-05463732] .profile-form .form-buttons{display:flex;margin-top:10px;padding:10px 0;gap:10px}#user[data-v-af7007f4]{margin:auto;width:700px}@media screen and (max-width:1000px){#user[data-v-af7007f4]{width:100%;margin:0 auto 50px auto}} \ No newline at end of file diff --git a/fittrackee/dist/static/css/profile.9f83730d.css b/fittrackee/dist/static/css/profile.9f83730d.css new file mode 100644 index 00000000..3cbeec22 --- /dev/null +++ b/fittrackee/dist/static/css/profile.9f83730d.css @@ -0,0 +1 @@ +#account-confirmation[data-v-785df978]{display:flex;flex-direction:column;align-items:center}#account-confirmation svg[data-v-785df978]{stroke:none;fill-rule:nonzero;fill:var(--app-color);filter:var(--svg-filter);width:100px}#account-confirmation .error-message[data-v-785df978]{font-size:1.1em;text-align:center;display:flex;flex-direction:column}@media screen and (max-width:1000px){#account-confirmation .error-message[data-v-785df978]{font-size:1em}}#email-update[data-v-8c2ec9ce]{display:flex;flex-direction:column;align-items:center}#email-update svg[data-v-8c2ec9ce]{stroke:none;fill-rule:nonzero;fill:var(--app-color);filter:var(--svg-filter);width:100px}#email-update .error-message[data-v-8c2ec9ce]{font-size:1.1em;text-align:center;display:flex;flex-direction:column}@media screen and (max-width:1000px){#email-update .error-message[data-v-8c2ec9ce]{font-size:1em}}#profile[data-v-6646c65e]{padding:0 10px}#profile[data-v-6646c65e],#profile[data-v-6646c65e] .profile-form{display:flex;flex-direction:column}#profile[data-v-6646c65e] .profile-form hr{border-color:var(--card-border-color);border-width:1px 0 0 0}#profile[data-v-6646c65e] .profile-form .form-items{display:flex;flex-direction:column}#profile[data-v-6646c65e] .profile-form .form-items input{margin:5px 0}#profile[data-v-6646c65e] .profile-form .form-items select{height:35px;padding:5px 0}#profile[data-v-6646c65e] .profile-form .form-items ::v-deep(.custom-textarea) textarea{padding:5px}#profile[data-v-6646c65e] .profile-form .form-items .form-item{display:flex;flex-direction:column;padding:10px}#profile[data-v-6646c65e] .profile-form .form-items .birth-date{height:20px}#profile[data-v-6646c65e] .profile-form .form-buttons{display:flex;margin-top:10px;padding:10px 0;gap:10px}#user[data-v-af7007f4]{margin:auto;width:700px}@media screen and (max-width:1000px){#user[data-v-af7007f4]{width:100%;margin:0 auto 50px auto}} \ No newline at end of file diff --git a/fittrackee/dist/static/css/workouts.41709693.css b/fittrackee/dist/static/css/workouts.41709693.css deleted file mode 100644 index 9643caf7..00000000 --- a/fittrackee/dist/static/css/workouts.41709693.css +++ /dev/null @@ -1 +0,0 @@ -.workouts-filters .form[data-v-6c38593a]{display:flex;flex-direction:column;padding-top:0}.workouts-filters .form .form-items-group[data-v-6c38593a]{display:flex;flex-direction:column;padding:5px}.workouts-filters .form .form-items-group .form-item[data-v-6c38593a]{display:flex;flex-direction:column}.workouts-filters .form .form-items-group .form-item .form-inputs-group[data-v-6c38593a]{display:flex;flex-direction:row;justify-content:space-around;align-items:center}.workouts-filters .form .form-items-group .form-item .form-inputs-group input[data-v-6c38593a]{width:34%}.workouts-filters .form .form-items-group .form-item .form-inputs-group span[data-v-6c38593a]{padding:5px}.workouts-filters .form .form-items-group .form-item input[data-v-6c38593a]{height:16px}.workouts-filters .form .form-items-group .form-item select[data-v-6c38593a]{height:36px;padding:0 5px}.workouts-filters .form-button[data-v-6c38593a]{display:flex;justify-content:center;flex-wrap:wrap;margin:5px}.workouts-filters .form-button button[data-v-6c38593a]{margin-top:10px;width:100%}@media screen and (max-width:1000px){.workouts-filters .form[data-v-6c38593a]{flex-direction:row;padding-top:5px}.workouts-filters .form .form-items-group[data-v-6c38593a]{padding:0 5px;height:100%}.workouts-filters .form .form-items-group .form-item label[data-v-6c38593a]{font-size:.9em}.workouts-filters .form .form-items-group .form-item .form-inputs-group[data-v-6c38593a]{flex-direction:column;justify-content:normal;padding:0}.workouts-filters .form .form-items-group .form-item .form-inputs-group input[data-v-6c38593a]{width:75%}.workouts-filters .form-button[data-v-6c38593a]{flex-wrap:nowrap}.workouts-filters .form-button button[data-v-6c38593a]{margin:10px 5px;width:100%}}@media screen and (max-width:700px){.workouts-filters .form[data-v-6c38593a]{flex-direction:column;padding-top:0}.workouts-filters .form .form-items-group[data-v-6c38593a]{padding:5px}.workouts-filters .form .form-items-group .form-item label[data-v-6c38593a]{font-size:1em}.workouts-filters .form .form-items-group .form-item .form-inputs-group[data-v-6c38593a]{flex-direction:row;justify-content:space-around;align-items:center}.workouts-filters .form .form-items-group .form-item .form-inputs-group input[data-v-6c38593a]{width:50%}.workouts-filters .form .form-items-group .form-item .form-inputs-group span[data-v-6c38593a]{padding:5px}.workouts-filters .form-button[data-v-6c38593a]{flex-wrap:nowrap}.workouts-filters .form-button button[data-v-6c38593a]{margin:10px 5px}}@media screen and (max-width:500px){.workouts-filters .form-button[data-v-6c38593a]{flex-wrap:wrap}}.workouts-list[data-v-0f8ea7b0]{display:flex;flex-direction:column;margin-bottom:50px;width:100%}.workouts-list .box[data-v-0f8ea7b0]{padding:10px 15px}@media screen and (max-width:700px){.workouts-list .box.empty-table[data-v-0f8ea7b0]{display:none}}.workouts-list .box .total[data-v-0f8ea7b0]{display:flex;gap:5px}.workouts-list .box .total .total-label[data-v-0f8ea7b0]{font-weight:700}.workouts-list .box .top-pagination[data-v-0f8ea7b0]{display:none}@media screen and (max-width:700px){.workouts-list .box .top-pagination[data-v-0f8ea7b0]{display:flex}.workouts-list .box[data-v-0f8ea7b0] .pagination-center ul{margin-top:0}}.workouts-list .box .workouts-table .smaller th[data-v-0f8ea7b0]{font-size:.95em;padding:10px 0;max-width:100px}.workouts-list .box .workouts-table td[data-v-0f8ea7b0]{text-align:right}.workouts-list .box .workouts-table .sport-col[data-v-0f8ea7b0]{padding:0}.workouts-list .box .workouts-table .workout-title[data-v-0f8ea7b0]{text-align:left;width:100px;position:relative}.workouts-list .box .workouts-table .workout-title .fa-map-o[data-v-0f8ea7b0]{font-size:.75em;padding-right:5px}.workouts-list .box .workouts-table .workout-title .nav-item[data-v-0f8ea7b0]{white-space:nowrap}.workouts-list .box .workouts-table .workout-title .nav-item .title[data-v-0f8ea7b0]{word-break:break-word;white-space:normal}.workouts-list .box .workouts-table .workout-title .static-map[data-v-0f8ea7b0]{display:none;box-shadow:3px 3px 3px 1px #d3d3d3}.workouts-list .box .workouts-table .workout-title:hover .static-map[data-v-0f8ea7b0]{display:block}.workouts-list .box .workouts-table .sport-img[data-v-0f8ea7b0]{height:20px;width:20px}.workouts-list .box .workouts-table .workout-date[data-v-0f8ea7b0]{max-width:60px;text-align:left}@media screen and (max-width:700px){.workouts-list .box .workouts-table .workout-date[data-v-0f8ea7b0],.workouts-list .box .workouts-table .workout-title[data-v-0f8ea7b0],.workouts-list .box .workouts-table td[data-v-0f8ea7b0]{text-align:center}.workouts-list .box .workouts-table .sport-col[data-v-0f8ea7b0]{display:flex;justify-content:center;padding:10px}.workouts-list .box .workouts-table .workout-date[data-v-0f8ea7b0]{max-width:none}.workouts-list .box .workouts-table .workout-title[data-v-0f8ea7b0]{max-width:none;width:100%}.workouts-list .box .workouts-table .workout-title:hover .static-map[data-v-0f8ea7b0]{display:none}}.workouts-list .more-workouts[data-v-0f8ea7b0]{display:flex;justify-content:center;padding:10px}#workouts[data-v-77e54012]{height:100%}#workouts .workouts-container[data-v-77e54012]{display:flex;flex-direction:row}@media screen and (max-width:1000px){#workouts .workouts-container[data-v-77e54012]{flex-direction:column}}#workouts .workouts-container .filters-container[data-v-77e54012],#workouts .workouts-container .list-container[data-v-77e54012]{display:flex;flex-direction:column}#workouts .workouts-container .filters-container[data-v-77e54012]{width:25%}@media screen and (max-width:1000px){#workouts .workouts-container .filters-container[data-v-77e54012]{width:100%}}@media screen and (max-width:1000px)and (max-width:700px){#workouts .workouts-container .filters-container.hidden[data-v-77e54012]{display:none}}#workouts .workouts-container .display-filters[data-v-77e54012]{display:none;font-size:.8em;padding:0 20px}#workouts .workouts-container .display-filters span[data-v-77e54012]{cursor:pointer;font-weight:700;padding-left:5px}#workouts .workouts-container .display-filters .fa[data-v-77e54012]{cursor:pointer}@media screen and (max-width:700px){#workouts .workouts-container .display-filters[data-v-77e54012]{display:flex;justify-content:flex-end;align-items:center}}#workouts .workouts-container .list-container[data-v-77e54012]{width:75%}@media screen and (max-width:1000px){#workouts .workouts-container .list-container[data-v-77e54012]{width:100%}}#workout-card-title[data-v-4d9f9a8a]{display:flex;justify-content:space-between;align-items:center}#workout-card-title .workout-arrow[data-v-4d9f9a8a]{cursor:pointer}#workout-card-title .workout-arrow.inactive[data-v-4d9f9a8a]{color:var(--disabled-color);cursor:default}#workout-card-title .workout-card-title[data-v-4d9f9a8a]{display:flex;flex-grow:1;align-items:center}#workout-card-title .workout-card-title .sport-img[data-v-4d9f9a8a]{padding:0 10px}#workout-card-title .workout-card-title .sport-img[data-v-4d9f9a8a] svg{height:35px;width:35px}#workout-card-title .workout-card-title .workout-title span[data-v-4d9f9a8a]{margin-right:5px}#workout-card-title .workout-card-title .workout-date[data-v-4d9f9a8a]{font-size:.8em;font-weight:400}#workout-card-title .workout-card-title .workout-segment[data-v-4d9f9a8a]{font-weight:400}#workout-card-title .workout-card-title .workout-link[data-v-4d9f9a8a]{padding-left:10px}#workout-card-title .workout-card-title .fa[data-v-4d9f9a8a]{cursor:pointer;padding:0 3px}@media screen and (max-width:700px){#workout-card-title .workout-card-title .fa-download[data-v-4d9f9a8a],#workout-card-title .workout-card-title .fa-edit[data-v-4d9f9a8a],#workout-card-title .workout-card-title .fa-trash[data-v-4d9f9a8a]{padding:0 7px}}.workout-record sup[data-v-1a5282f6]{font-size:75%;line-height:0}.wind[data-v-46a7c31c]{display:flex;justify-content:center}.wind .wind-bearing[data-v-46a7c31c]{padding-left:5px}#workout-weather[data-v-76e9ab62]{padding-top:10px}#workout-weather .weather-img[data-v-76e9ab62]{height:30px;filter:var(--workout-img-color)}#workout-weather .weather-img-small[data-v-76e9ab62]{height:20px}#workout-weather .weather-table[data-v-76e9ab62]{width:100%;text-align:center}#workout-weather .weather-table .weather-th[data-v-76e9ab62]{display:flex;flex-direction:column;text-transform:capitalize}#workout-weather .weather-table tbody[data-v-76e9ab62]{font-size:.8em}#workout-info[data-v-74c5993b]{display:flex;flex-direction:column;padding:10px 20px;width:100%}#workout-info .fa[data-v-74c5993b],#workout-info .mountains[data-v-74c5993b]{padding-right:5px}#workout-info .workout-data[data-v-74c5993b]{padding:5px 0}#workout-info .workout-data .label[data-v-74c5993b]{text-transform:capitalize}#workout-info .workout-data .value[data-v-74c5993b]{font-weight:700;text-transform:lowercase}@media screen and (max-width:700px){#workout-info[data-v-74c5993b]{padding:10px}}.leaflet-image-layer,.leaflet-layer,.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-pane,.leaflet-pane>canvas,.leaflet-pane>svg,.leaflet-tile,.leaflet-tile-container,.leaflet-zoom-box{position:absolute;left:0;top:0}.leaflet-container{overflow:hidden}.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-tile{-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-user-drag:none}.leaflet-tile::-moz-selection{background:transparent}.leaflet-tile::selection{background:transparent}.leaflet-safari .leaflet-tile{image-rendering:-webkit-optimize-contrast}.leaflet-safari .leaflet-tile-container{width:1600px;height:1600px;-webkit-transform-origin:0 0}.leaflet-marker-icon,.leaflet-marker-shadow{display:block}.leaflet-container .leaflet-overlay-pane svg{max-width:none!important;max-height:none!important}.leaflet-container .leaflet-marker-pane img,.leaflet-container .leaflet-shadow-pane img,.leaflet-container .leaflet-tile,.leaflet-container .leaflet-tile-pane img,.leaflet-container img.leaflet-image-layer{max-width:none!important;max-height:none!important;width:auto;padding:0}.leaflet-container.leaflet-touch-zoom{touch-action:pan-x pan-y}.leaflet-container.leaflet-touch-drag{touch-action:none;touch-action:pinch-zoom}.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom{touch-action:none}.leaflet-container{-webkit-tap-highlight-color:transparent}.leaflet-container a{-webkit-tap-highlight-color:rgba(51,181,229,.4)}.leaflet-tile{filter:inherit;visibility:hidden}.leaflet-tile-loaded{visibility:inherit}.leaflet-zoom-box{width:0;height:0;box-sizing:border-box;z-index:800}.leaflet-overlay-pane svg{-moz-user-select:none}.leaflet-pane{z-index:400}.leaflet-tile-pane{z-index:200}.leaflet-overlay-pane{z-index:400}.leaflet-shadow-pane{z-index:500}.leaflet-marker-pane{z-index:600}.leaflet-tooltip-pane{z-index:650}.leaflet-popup-pane{z-index:700}.leaflet-map-pane canvas{z-index:100}.leaflet-map-pane svg{z-index:200}.leaflet-vml-shape{width:1px;height:1px}.lvml{behavior:url(#default#VML);display:inline-block;position:absolute}.leaflet-control{position:relative;z-index:800;pointer-events:visiblePainted;pointer-events:auto}.leaflet-bottom,.leaflet-top{position:absolute;z-index:1000;pointer-events:none}.leaflet-top{top:0}.leaflet-right{right:0}.leaflet-bottom{bottom:0}.leaflet-left{left:0}.leaflet-control{float:left;clear:both}.leaflet-right .leaflet-control{float:right}.leaflet-top .leaflet-control{margin-top:10px}.leaflet-bottom .leaflet-control{margin-bottom:10px}.leaflet-left .leaflet-control{margin-left:10px}.leaflet-right .leaflet-control{margin-right:10px}.leaflet-fade-anim .leaflet-popup{opacity:0;transition:opacity .2s linear}.leaflet-fade-anim .leaflet-map-pane .leaflet-popup{opacity:1}.leaflet-zoom-animated{transform-origin:0 0}svg.leaflet-zoom-animated{will-change:transform}.leaflet-zoom-anim .leaflet-zoom-animated{transition:transform .25s cubic-bezier(0,0,.25,1)}.leaflet-pan-anim .leaflet-tile,.leaflet-zoom-anim .leaflet-tile{transition:none}.leaflet-zoom-anim .leaflet-zoom-hide{visibility:hidden}.leaflet-interactive{cursor:pointer}.leaflet-grab{cursor:grab}.leaflet-crosshair,.leaflet-crosshair .leaflet-interactive{cursor:crosshair}.leaflet-control,.leaflet-popup-pane{cursor:auto}.leaflet-dragging .leaflet-grab,.leaflet-dragging .leaflet-grab .leaflet-interactive,.leaflet-dragging .leaflet-marker-draggable{cursor:move;cursor:grabbing}.leaflet-image-layer,.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-pane>svg path,.leaflet-tile-container{pointer-events:none}.leaflet-image-layer.leaflet-interactive,.leaflet-marker-icon.leaflet-interactive,.leaflet-pane>svg path.leaflet-interactive,svg.leaflet-image-layer.leaflet-interactive path{pointer-events:visiblePainted;pointer-events:auto}.leaflet-container{background:#ddd;outline-offset:1px}.leaflet-container a{color:#0078a8}.leaflet-zoom-box{border:2px dotted #38f;background:hsla(0,0%,100%,.5)}.leaflet-container{font-family:Helvetica Neue,Arial,Helvetica,sans-serif;font-size:12px;font-size:.75rem;line-height:1.5}.leaflet-bar{box-shadow:0 1px 5px rgba(0,0,0,.65);border-radius:4px}.leaflet-bar a{background-color:#fff;border-bottom:1px solid #ccc;width:26px;height:26px;line-height:26px;display:block;text-align:center;text-decoration:none;color:#000}.leaflet-bar a,.leaflet-control-layers-toggle{background-position:50% 50%;background-repeat:no-repeat;display:block}.leaflet-bar a:focus,.leaflet-bar a:hover{background-color:#f4f4f4}.leaflet-bar a:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.leaflet-bar a:last-child{border-bottom-left-radius:4px;border-bottom-right-radius:4px;border-bottom:none}.leaflet-bar a.leaflet-disabled{cursor:default;background-color:#f4f4f4;color:#bbb}.leaflet-touch .leaflet-bar a{width:30px;height:30px;line-height:30px}.leaflet-touch .leaflet-bar a:first-child{border-top-left-radius:2px;border-top-right-radius:2px}.leaflet-touch .leaflet-bar a:last-child{border-bottom-left-radius:2px;border-bottom-right-radius:2px}.leaflet-control-zoom-in,.leaflet-control-zoom-out{font:700 18px Lucida Console,Monaco,monospace;text-indent:1px}.leaflet-touch .leaflet-control-zoom-in,.leaflet-touch .leaflet-control-zoom-out{font-size:22px}.leaflet-control-layers{box-shadow:0 1px 5px rgba(0,0,0,.4);background:#fff;border-radius:5px}.leaflet-control-layers-toggle{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAQAAAADQ4RFAAACf0lEQVR4AY1UM3gkARTePdvdoTxXKc+qTl3aU5U6b2Kbkz3Gtq3Zw6ziLGNPzrYx7946Tr6/ee/XeCQ4D3ykPtL5tHno4n0d/h3+xfuWHGLX81cn7r0iTNzjr7LrlxCqPtkbTQEHeqOrTy4Yyt3VCi/IOB0v7rVC7q45Q3Gr5K6jt+3Gl5nCoDD4MtO+j96Wu8atmhGqcNGHObuf8OM/x3AMx38+4Z2sPqzCxRFK2aF2e5Jol56XTLyggAMTL56XOMoS1W4pOyjUcGGQdZxU6qRh7B9Zp+PfpOFlqt0zyDZckPi1ttmIp03jX8gyJ8a/PG2yutpS/Vol7peZIbZcKBAEEheEIAgFbDkz5H6Zrkm2hVWGiXKiF4Ycw0RWKdtC16Q7qe3X4iOMxruonzegJzWaXFrU9utOSsLUmrc0YjeWYjCW4PDMADElpJSSQ0vQvA1Tm6/JlKnqFs1EGyZiFCqnRZTEJJJiKRYzVYzJck2Rm6P4iH+cmSY0YzimYa8l0EtTODFWhcMIMVqdsI2uiTvKmTisIDHJ3od5GILVhBCarCfVRmo4uTjkhrhzkiBV7SsaqS+TzrzM1qpGGUFt28pIySQHR6h7F6KSwGWm97ay+Z+ZqMcEjEWebE7wxCSQwpkhJqoZA5ivCdZDjJepuJ9IQjGGUmuXJdBFUygxVqVsxFsLMbDe8ZbDYVCGKxs+W080max1hFCarCfV+C1KATwcnvE9gRRuMP2prdbWGowm1KB1y+zwMMENkM755cJ2yPDtqhTI6ED1M/82yIDtC/4j4BijjeObflpO9I9MwXTCsSX8jWAFeHr05WoLTJ5G8IQVS/7vwR6ohirYM7f6HzYpogfS3R2OAAAAAElFTkSuQmCC);width:36px;height:36px}.leaflet-retina .leaflet-control-layers-toggle{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAQAAABvcdNgAAAEsklEQVR4AWL4TydIhpZK1kpWOlg0w3ZXP6D2soBtG42jeI6ZmQTHzAxiTbSJsYLjO9HhP+WOmcuhciVnmHVQcJnp7DFvScowZorad/+V/fVzMdMT2g9Cv9guXGv/7pYOrXh2U+RRR3dSd9JRx6bIFc/ekqHI29JC6pJ5ZEh1yWkhkbcFeSjxgx3L2m1cb1C7bceyxA+CNjT/Ifff+/kDk2u/w/33/IeCMOSaWZ4glosqT3DNnNZQ7Cs58/3Ce5HL78iZH/vKVIaYlqzfdLu8Vi7dnvUbEza5Idt36tquZFldl6N5Z/POLof0XLK61mZCmJSWjVF9tEjUluu74IUXvgttuVIHE7YxSkaYhJZam7yiM9Pv82JYfl9nptxZaxMJE4YSPty+vF0+Y2up9d3wwijfjZbabqm/3bZ9ecKHsiGmRflnn1MW4pjHf9oLufyn2z3y1D6n8g8TZhxyzipLNPnAUpsOiuWimg52psrTZYnOWYNDTMuWBWa0tJb4rgq1UvmutpaYEbZlwU3CLJm/ayYjHW5/h7xWLn9Hh1vepDkyf7dE7MtT5LR4e7yYpHrkhOUpEfssBLq2pPhAqoSWKUkk7EDqkmK6RrCEzqDjhNDWNE+XSMvkJRDWlZTmCW0l0PHQGRZY5t1L83kT0Y3l2SItk5JAWHl2dCOBm+fPu3fo5/3v61RMCO9Jx2EEYYhb0rmNQMX/vm7gqOEJLcXTGw3CAuRNeyaPWwjR8PRqKQ1PDA/dpv+on9Shox52WFnx0KY8onHayrJzm87i5h9xGw/tfkev0jGsQizqezUKjk12hBMKJ4kbCqGPVNXudyyrShovGw5CgxsRICxF6aRmSjlBnHRzg7Gx8fKqEubI2rahQYdR1YgDIRQO7JvQyD52hoIQx0mxa0ODtW2Iozn1le2iIRdzwWewedyZzewidueOGqlsn1MvcnQpuVwLGG3/IR1hIKxCjelIDZ8ldqWz25jWAsnldEnK0Zxro19TGVb2ffIZEsIO89EIEDvKMPrzmBOQcKQ+rroye6NgRRxqR4U8EAkz0CL6uSGOm6KQCdWjvjRiSP1BPalCRS5iQYiEIvxuBMJEWgzSoHADcVMuN7IuqqTeyUPq22qFimFtxDyBBJEwNyt6TM88blFHao/6tWWhuuOM4SAK4EI4QmFHA+SEyWlp4EQoJ13cYGzMu7yszEIBOm2rVmHUNqwAIQabISNMRstmdhNWcFLsSm+0tjJH1MdRxO5Nx0WDMhCtgD6OKgZeljJqJKc9po8juskR9XN0Y1lZ3mWjLR9JCO1jRDMd0fpYC2VnvjBSEFg7wBENc0R9HFlb0xvF1+TBEpF68d+DHR6IOWVv2BECtxo46hOFUBd/APU57WIoEwJhIi2CdpyZX0m93BZicktMj1AS9dClteUFAUNUIEygRZCtik5zSxI9MubTBH1GOiHsiLJ3OCoSZkILa9PxiN0EbvhsAo8tdAf9Seepd36lGWHmtNANTv5Jd0z4QYyeo/UEJqxKRpg5LZx6btLPsOaEmdMyxYdlc8LMaJnikDlhclqmPiQnTEpLUIZEwkRagjYkEibQErwhkTAKCLQEbUgkzJQWc/0PstHHcfEdQ+UAAAAASUVORK5CYII=);background-size:26px 26px}.leaflet-touch .leaflet-control-layers-toggle{width:44px;height:44px}.leaflet-control-layers .leaflet-control-layers-list,.leaflet-control-layers-expanded .leaflet-control-layers-toggle{display:none}.leaflet-control-layers-expanded .leaflet-control-layers-list{display:block;position:relative}.leaflet-control-layers-expanded{padding:6px 10px 6px 6px;color:#333;background:#fff}.leaflet-control-layers-scrollbar{overflow-y:scroll;overflow-x:hidden;padding-right:5px}.leaflet-control-layers-selector{margin-top:2px;position:relative;top:1px}.leaflet-control-layers label{display:block;font-size:13px;font-size:1.08333em}.leaflet-control-layers-separator{height:0;border-top:1px solid #ddd;margin:5px -10px 5px -6px}.leaflet-default-icon-path{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAApCAYAAADAk4LOAAAFgUlEQVR4Aa1XA5BjWRTN2oW17d3YaZtr2962HUzbDNpjszW24mRt28p47v7zq/bXZtrp/lWnXr337j3nPCe85NcypgSFdugCpW5YoDAMRaIMqRi6aKq5E3YqDQO3qAwjVWrD8Ncq/RBpykd8oZUb/kaJutow8r1aP9II0WmLKLIsJyv1w/kqw9Ch2MYdB++12Onxee/QMwvf4/Dk/Lfp/i4nxTXtOoQ4pW5Aj7wpici1A9erdAN2OH64x8OSP9j3Ft3b7aWkTg/Fm91siTra0f9on5sQr9INejH6CUUUpavjFNq1B+Oadhxmnfa8RfEmN8VNAsQhPqF55xHkMzz3jSmChWU6f7/XZKNH+9+hBLOHYozuKQPxyMPUKkrX/K0uWnfFaJGS1QPRtZsOPtr3NsW0uyh6NNCOkU3Yz+bXbT3I8G3xE5EXLXtCXbbqwCO9zPQYPRTZ5vIDXD7U+w7rFDEoUUf7ibHIR4y6bLVPXrz8JVZEql13trxwue/uDivd3fkWRbS6/IA2bID4uk0UpF1N8qLlbBlXs4Ee7HLTfV1j54APvODnSfOWBqtKVvjgLKzF5YdEk5ewRkGlK0i33Eofffc7HT56jD7/6U+qH3Cx7SBLNntH5YIPvODnyfIXZYRVDPqgHtLs5ABHD3YzLuespb7t79FY34DjMwrVrcTuwlT55YMPvOBnRrJ4VXTdNnYug5ucHLBjEpt30701A3Ts+HEa73u6dT3FNWwflY86eMHPk+Yu+i6pzUpRrW7SNDg5JHR4KapmM5Wv2E8Tfcb1HoqqHMHU+uWDD7zg54mz5/2BSnizi9T1Dg4QQXLToGNCkb6tb1NU+QAlGr1++eADrzhn/u8Q2YZhQVlZ5+CAOtqfbhmaUCS1ezNFVm2imDbPmPng5wmz+gwh+oHDce0eUtQ6OGDIyR0uUhUsoO3vfDmmgOezH0mZN59x7MBi++WDL1g/eEiU3avlidO671bkLfwbw5XV2P8Pzo0ydy4t2/0eu33xYSOMOD8hTf4CrBtGMSoXfPLchX+J0ruSePw3LZeK0juPJbYzrhkH0io7B3k164hiGvawhOKMLkrQLyVpZg8rHFW7E2uHOL888IBPlNZ1FPzstSJM694fWr6RwpvcJK60+0HCILTBzZLFNdtAzJaohze60T8qBzyh5ZuOg5e7uwQppofEmf2++DYvmySqGBuKaicF1blQjhuHdvCIMvp8whTTfZzI7RldpwtSzL+F1+wkdZ2TBOW2gIF88PBTzD/gpeREAMEbxnJcaJHNHrpzji0gQCS6hdkEeYt9DF/2qPcEC8RM28Hwmr3sdNyht00byAut2k3gufWNtgtOEOFGUwcXWNDbdNbpgBGxEvKkOQsxivJx33iow0Vw5S6SVTrpVq11ysA2Rp7gTfPfktc6zhtXBBC+adRLshf6sG2RfHPZ5EAc4sVZ83yCN00Fk/4kggu40ZTvIEm5g24qtU4KjBrx/BTTH8ifVASAG7gKrnWxJDcU7x8X6Ecczhm3o6YicvsLXWfh3Ch1W0k8x0nXF+0fFxgt4phz8QvypiwCCFKMqXCnqXExjq10beH+UUA7+nG6mdG/Pu0f3LgFcGrl2s0kNNjpmoJ9o4B29CMO8dMT4Q5ox8uitF6fqsrJOr8qnwNbRzv6hSnG5wP+64C7h9lp30hKNtKdWjtdkbuPA19nJ7Tz3zR/ibgARbhb4AlhavcBebmTHcFl2fvYEnW0ox9xMxKBS8btJ+KiEbq9zA4RthQXDhPa0T9TEe69gWupwc6uBUphquXgf+/FrIjweHQS4/pduMe5ERUMHUd9xv8ZR98CxkS4F2n3EUrUZ10EYNw7BWm9x1GiPssi3GgiGRDKWRYZfXlON+dfNbM+GgIwYdwAAAAASUVORK5CYII=)}.leaflet-container .leaflet-control-attribution{background:#fff;background:hsla(0,0%,100%,.8);margin:0}.leaflet-control-attribution,.leaflet-control-scale-line{padding:0 5px;color:#333;line-height:1.4}.leaflet-control-attribution a{text-decoration:none}.leaflet-control-attribution a:focus,.leaflet-control-attribution a:hover{text-decoration:underline}.leaflet-attribution-flag{display:inline!important;vertical-align:baseline!important;width:1em;height:.6669em}.leaflet-left .leaflet-control-scale{margin-left:5px}.leaflet-bottom .leaflet-control-scale{margin-bottom:5px}.leaflet-control-scale-line{border:2px solid #777;border-top:none;line-height:1.1;padding:2px 5px 1px;white-space:nowrap;overflow:hidden;box-sizing:border-box;background:#fff;background:hsla(0,0%,100%,.5)}.leaflet-control-scale-line:not(:first-child){border-top:2px solid #777;border-bottom:none;margin-top:-2px}.leaflet-control-scale-line:not(:first-child):not(:last-child){border-bottom:2px solid #777}.leaflet-touch .leaflet-bar,.leaflet-touch .leaflet-control-attribution,.leaflet-touch .leaflet-control-layers{box-shadow:none}.leaflet-touch .leaflet-bar,.leaflet-touch .leaflet-control-layers{border:2px solid rgba(0,0,0,.2);background-clip:padding-box}.leaflet-popup{position:absolute;text-align:center;margin-bottom:20px}.leaflet-popup-content-wrapper{padding:1px;text-align:left;border-radius:12px}.leaflet-popup-content{margin:13px 24px 13px 20px;line-height:1.3;font-size:13px;font-size:1.08333em;min-height:1px}.leaflet-popup-content p{margin:17px 0;margin:1.3em 0}.leaflet-popup-tip-container{width:40px;height:20px;position:absolute;left:50%;margin-top:-1px;margin-left:-20px;overflow:hidden;pointer-events:none}.leaflet-popup-tip{width:17px;height:17px;padding:1px;margin:-10px auto 0;pointer-events:auto;transform:rotate(45deg)}.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:#fff;color:#333;box-shadow:0 3px 14px rgba(0,0,0,.4)}.leaflet-container a.leaflet-popup-close-button{position:absolute;top:0;right:0;border:none;text-align:center;width:24px;height:24px;font:16px/24px Tahoma,Verdana,sans-serif;color:#757575;text-decoration:none;background:transparent}.leaflet-container a.leaflet-popup-close-button:focus,.leaflet-container a.leaflet-popup-close-button:hover{color:#585858}.leaflet-popup-scrolled{overflow:auto}.leaflet-oldie .leaflet-popup-content-wrapper{-ms-zoom:1}.leaflet-oldie .leaflet-popup-tip{width:24px;margin:0 auto;-ms-filter:"progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)";filter:progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678,M12=0.70710678,M21=-0.70710678,M22=0.70710678)}.leaflet-oldie .leaflet-control-layers,.leaflet-oldie .leaflet-control-zoom,.leaflet-oldie .leaflet-popup-content-wrapper,.leaflet-oldie .leaflet-popup-tip{border:1px solid #999}.leaflet-div-icon{background:#fff;border:1px solid #666}.leaflet-tooltip{position:absolute;padding:6px;background-color:#fff;border:1px solid #fff;border-radius:3px;color:#222;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:none;box-shadow:0 1px 3px rgba(0,0,0,.4)}.leaflet-tooltip.leaflet-interactive{cursor:pointer;pointer-events:auto}.leaflet-tooltip-bottom:before,.leaflet-tooltip-left:before,.leaflet-tooltip-right:before,.leaflet-tooltip-top:before{position:absolute;pointer-events:none;border:6px solid transparent;background:transparent;content:""}.leaflet-tooltip-bottom{margin-top:6px}.leaflet-tooltip-top{margin-top:-6px}.leaflet-tooltip-bottom:before,.leaflet-tooltip-top:before{left:50%;margin-left:-6px}.leaflet-tooltip-top:before{bottom:0;margin-bottom:-12px;border-top-color:#fff}.leaflet-tooltip-bottom:before{top:0;margin-top:-12px;margin-left:-6px;border-bottom-color:#fff}.leaflet-tooltip-left{margin-left:-6px}.leaflet-tooltip-right{margin-left:6px}.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{top:50%;margin-top:-6px}.leaflet-tooltip-left:before{right:0;margin-right:-12px;border-left-color:#fff}.leaflet-tooltip-right:before{left:0;margin-left:-12px;border-right-color:#fff}@media print{.leaflet-control{-webkit-print-color-adjust:exact;print-color-adjust:exact}}#workout-map[data-v-6b490f5d]{padding:10px 0}#workout-map .leaflet-container[data-v-6b490f5d],#workout-map .no-map[data-v-6b490f5d]{height:400px;width:600px}#workout-map .no-map[data-v-6b490f5d]{line-height:400px}#workout-map .map-control[data-v-6b490f5d]{background:#fff;padding:5px 10px;border:2px solid #bfc0ab;border-radius:3px;color:#000}#workout-map[data-v-6b490f5d] .fullscreen{display:flex;align-items:center;z-index:1000}#workout-map[data-v-6b490f5d] .fullscreen .fullscreen-map{height:100%;width:100%}@media screen and (max-width:700px){#workout-map[data-v-6b490f5d]{padding:0}#workout-map .leaflet-container[data-v-6b490f5d]{width:100%;height:300px}#workout-map .no-map[data-v-6b490f5d]{display:none}}.workout-detail[data-v-9fc0bab8]{display:flex}.workout-detail[data-v-9fc0bab8] .card{width:100%}.workout-detail[data-v-9fc0bab8] .card .card-content{display:flex;flex-direction:row}@media screen and (max-width:1000px){.workout-detail[data-v-9fc0bab8] .card .card-content{flex-direction:column}}#workout-chart[data-v-dcea1168] .card .card-title{text-transform:capitalize}#workout-chart[data-v-dcea1168] .card .card-content{display:flex;flex-direction:column}#workout-chart[data-v-dcea1168] .card .card-content .chart-radio{width:100%;display:flex;justify-content:center}#workout-chart[data-v-dcea1168] .card .card-content .chart-radio label{padding:0 10px}#workout-chart[data-v-dcea1168] .card .card-content .chart-info{display:flex;justify-content:space-between;font-size:.85em;font-style:italic}#workout-chart[data-v-dcea1168] .card .card-content #chart-legend{display:flex;justify-content:center}#workout-chart[data-v-dcea1168] .card .card-content #chart-legend ul{display:flex;margin-bottom:0;padding:0}#workout-chart[data-v-dcea1168] .card .card-content #chart-legend ul li{cursor:pointer;display:flex;font-size:.85em;padding:0 5px}#workout-chart[data-v-dcea1168] .card .card-content #chart-legend ul li span{border-radius:5%;border-style:solid;border-width:1.5px;height:10px;margin-top:4px;margin-left:2px;width:20px}@media screen and (max-width:700px){#workout-chart[data-v-dcea1168] .card .card-content{padding:10px 0}#workout-chart[data-v-dcea1168] .card .card-content .chart-info{display:flex;flex-direction:column-reverse}#workout-chart[data-v-dcea1168] .card .card-content .chart-info .elevation-start{padding:10px 15px 0}#workout-chart[data-v-dcea1168] .card .card-content .chart-info .no-data-cleaning{padding:0 20px}}#workout-note[data-v-028ad527] .card-content{font-style:italic;white-space:pre-wrap}#workout-segments[data-v-6b8a27cd] .card .card-title{text-transform:capitalize}#workout-segments[data-v-6b8a27cd] .card .card-content{padding-bottom:0;padding-top:0}#workout-segments[data-v-6b8a27cd] .card .card-content a{font-weight:700}#workout-segments[data-v-6b8a27cd] .card .card-content ul{padding:0 10px;list-style:square}#workout[data-v-53c4e53a]{display:flex}#workout .container[data-v-53c4e53a]{width:100%;padding:0}#workout .container .workout-container[data-v-53c4e53a]{width:100%}#workout .container .workout-loading[data-v-53c4e53a]{height:calc(100vh - 130px);width:100%}#workout .container .workout-loading .loading[data-v-53c4e53a]{display:flex;align-items:center;height:100%}#workout-edition[data-v-886f93f6] .card .card-title{text-align:center;text-transform:uppercase}@media screen and (max-width:1000px){#workout-edition[data-v-886f93f6] .card .card-content{padding:10px 0}}#workout-edition[data-v-886f93f6] .card .card-content #workout-form .form-items{display:flex;flex-direction:column}#workout-edition[data-v-886f93f6] .card .card-content #workout-form .form-items input{height:20px}#workout-edition[data-v-886f93f6] .card .card-content #workout-form .form-items .workout-date-duration{display:flex;flex-direction:row;justify-content:space-between}@media screen and (max-width:1000px){#workout-edition[data-v-886f93f6] .card .card-content #workout-form .form-items .workout-date-duration{flex-direction:column}}#workout-edition[data-v-886f93f6] .card .card-content #workout-form .form-items .form-item{display:flex;flex-direction:column;padding:10px}#workout-edition[data-v-886f93f6] .card .card-content #workout-form .form-items .form-item .workout-date-time{display:flex}#workout-edition[data-v-886f93f6] .card .card-content #workout-form .form-items .form-item .workout-date-time #workout-date{margin-right:10px}#workout-edition[data-v-886f93f6] .card .card-content #workout-form .form-items .form-item .workout-duration{width:25px}#workout-edition[data-v-886f93f6] .card .card-content #workout-form .form-items .form-item-radio{display:flex;justify-content:space-around}#workout-edition[data-v-886f93f6] .card .card-content #workout-form .form-items .form-item-radio label{font-weight:400}@media screen and (max-width:1000px){#workout-edition[data-v-886f93f6] .card .card-content #workout-form .form-items .form-item-radio label{font-size:.9em}}#workout-edition[data-v-886f93f6] .card .card-content #workout-form .form-items .form-item-radio input{margin-top:-2px;vertical-align:middle}#workout-edition[data-v-886f93f6] .card .card-content #workout-form .form-buttons{display:flex;justify-content:flex-end}#workout-edition[data-v-886f93f6] .card .card-content #workout-form .form-buttons button{margin:5px}#workout-edition[data-v-886f93f6] .card .card-content #workout-form .files-help{display:flex;justify-content:space-around;margin-top:10px}#workout-edition[data-v-886f93f6] .card .card-content #workout-form .files-help div{display:flex}@media screen and (max-width:1000px){#workout-edition[data-v-886f93f6] .card .card-content #workout-form .files-help div{flex-direction:column}}#workout-edition[data-v-886f93f6] .card .card-content #workout-form .files-help div ul{margin:0;padding:0 20px}@media screen and (max-width:700px){#workout-edition[data-v-886f93f6]{margin-bottom:0}#workout-edition.center-form[data-v-886f93f6]{margin:50px auto}#workout-edition.with-margin[data-v-886f93f6]{margin-top:0}} \ No newline at end of file diff --git a/fittrackee/dist/static/css/workouts.babda0d5.css b/fittrackee/dist/static/css/workouts.babda0d5.css new file mode 100644 index 00000000..ed376cf4 --- /dev/null +++ b/fittrackee/dist/static/css/workouts.babda0d5.css @@ -0,0 +1 @@ +.workouts-filters .form[data-v-6c38593a]{display:flex;flex-direction:column;padding-top:0}.workouts-filters .form .form-items-group[data-v-6c38593a]{display:flex;flex-direction:column;padding:5px}.workouts-filters .form .form-items-group .form-item[data-v-6c38593a]{display:flex;flex-direction:column}.workouts-filters .form .form-items-group .form-item .form-inputs-group[data-v-6c38593a]{display:flex;flex-direction:row;justify-content:space-around;align-items:center}.workouts-filters .form .form-items-group .form-item .form-inputs-group input[data-v-6c38593a]{width:34%}.workouts-filters .form .form-items-group .form-item .form-inputs-group span[data-v-6c38593a]{padding:5px}.workouts-filters .form .form-items-group .form-item input[data-v-6c38593a]{height:16px}.workouts-filters .form .form-items-group .form-item select[data-v-6c38593a]{height:36px;padding:0 5px}.workouts-filters .form-button[data-v-6c38593a]{display:flex;justify-content:center;flex-wrap:wrap;margin:5px}.workouts-filters .form-button button[data-v-6c38593a]{margin-top:10px;width:100%}@media screen and (max-width:1000px){.workouts-filters .form[data-v-6c38593a]{flex-direction:row;padding-top:5px}.workouts-filters .form .form-items-group[data-v-6c38593a]{padding:0 5px;height:100%}.workouts-filters .form .form-items-group .form-item label[data-v-6c38593a]{font-size:.9em}.workouts-filters .form .form-items-group .form-item .form-inputs-group[data-v-6c38593a]{flex-direction:column;justify-content:normal;padding:0}.workouts-filters .form .form-items-group .form-item .form-inputs-group input[data-v-6c38593a]{width:75%}.workouts-filters .form-button[data-v-6c38593a]{flex-wrap:nowrap}.workouts-filters .form-button button[data-v-6c38593a]{margin:10px 5px;width:100%}}@media screen and (max-width:700px){.workouts-filters .form[data-v-6c38593a]{flex-direction:column;padding-top:0}.workouts-filters .form .form-items-group[data-v-6c38593a]{padding:5px}.workouts-filters .form .form-items-group .form-item label[data-v-6c38593a]{font-size:1em}.workouts-filters .form .form-items-group .form-item .form-inputs-group[data-v-6c38593a]{flex-direction:row;justify-content:space-around;align-items:center}.workouts-filters .form .form-items-group .form-item .form-inputs-group input[data-v-6c38593a]{width:50%}.workouts-filters .form .form-items-group .form-item .form-inputs-group span[data-v-6c38593a]{padding:5px}.workouts-filters .form-button[data-v-6c38593a]{flex-wrap:nowrap}.workouts-filters .form-button button[data-v-6c38593a]{margin:10px 5px}}@media screen and (max-width:500px){.workouts-filters .form-button[data-v-6c38593a]{flex-wrap:wrap}}.workouts-list[data-v-0f8ea7b0]{display:flex;flex-direction:column;margin-bottom:50px;width:100%}.workouts-list .box[data-v-0f8ea7b0]{padding:10px 15px}@media screen and (max-width:700px){.workouts-list .box.empty-table[data-v-0f8ea7b0]{display:none}}.workouts-list .box .total[data-v-0f8ea7b0]{display:flex;gap:5px}.workouts-list .box .total .total-label[data-v-0f8ea7b0]{font-weight:700}.workouts-list .box .top-pagination[data-v-0f8ea7b0]{display:none}@media screen and (max-width:700px){.workouts-list .box .top-pagination[data-v-0f8ea7b0]{display:flex}.workouts-list .box[data-v-0f8ea7b0] .pagination-center ul{margin-top:0}}.workouts-list .box .workouts-table .smaller th[data-v-0f8ea7b0]{font-size:.95em;padding:10px 0;max-width:100px}.workouts-list .box .workouts-table td[data-v-0f8ea7b0]{text-align:right}.workouts-list .box .workouts-table .sport-col[data-v-0f8ea7b0]{padding:0}.workouts-list .box .workouts-table .workout-title[data-v-0f8ea7b0]{text-align:left;width:100px;position:relative}.workouts-list .box .workouts-table .workout-title .fa-map-o[data-v-0f8ea7b0]{font-size:.75em;padding-right:5px}.workouts-list .box .workouts-table .workout-title .nav-item[data-v-0f8ea7b0]{white-space:nowrap}.workouts-list .box .workouts-table .workout-title .nav-item .title[data-v-0f8ea7b0]{word-break:break-word;white-space:normal}.workouts-list .box .workouts-table .workout-title .static-map[data-v-0f8ea7b0]{display:none;box-shadow:3px 3px 3px 1px #d3d3d3}.workouts-list .box .workouts-table .workout-title:hover .static-map[data-v-0f8ea7b0]{display:block}.workouts-list .box .workouts-table .sport-img[data-v-0f8ea7b0]{height:20px;width:20px}.workouts-list .box .workouts-table .workout-date[data-v-0f8ea7b0]{max-width:60px;text-align:left}@media screen and (max-width:700px){.workouts-list .box .workouts-table .workout-date[data-v-0f8ea7b0],.workouts-list .box .workouts-table .workout-title[data-v-0f8ea7b0],.workouts-list .box .workouts-table td[data-v-0f8ea7b0]{text-align:center}.workouts-list .box .workouts-table .sport-col[data-v-0f8ea7b0]{display:flex;justify-content:center;padding:10px}.workouts-list .box .workouts-table .workout-date[data-v-0f8ea7b0]{max-width:none}.workouts-list .box .workouts-table .workout-title[data-v-0f8ea7b0]{max-width:none;width:100%}.workouts-list .box .workouts-table .workout-title:hover .static-map[data-v-0f8ea7b0]{display:none}}.workouts-list .more-workouts[data-v-0f8ea7b0]{display:flex;justify-content:center;padding:10px}#workouts .workouts-container[data-v-57ec0168]{display:flex;flex-direction:row}@media screen and (max-width:1000px){#workouts .workouts-container[data-v-57ec0168]{flex-direction:column}}#workouts .workouts-container .filters-container[data-v-57ec0168],#workouts .workouts-container .list-container[data-v-57ec0168]{display:flex;flex-direction:column}#workouts .workouts-container .filters-container[data-v-57ec0168]{width:25%}@media screen and (max-width:1000px){#workouts .workouts-container .filters-container[data-v-57ec0168]{width:100%}}@media screen and (max-width:1000px)and (max-width:700px){#workouts .workouts-container .filters-container.hidden[data-v-57ec0168]{display:none}}#workouts .workouts-container .display-filters[data-v-57ec0168]{display:none;font-size:.8em;padding:0 20px}#workouts .workouts-container .display-filters span[data-v-57ec0168]{cursor:pointer;font-weight:700;padding-left:5px}#workouts .workouts-container .display-filters .fa[data-v-57ec0168]{cursor:pointer}@media screen and (max-width:700px){#workouts .workouts-container .display-filters[data-v-57ec0168]{display:flex;justify-content:flex-end;align-items:center}}#workouts .workouts-container .list-container[data-v-57ec0168]{width:75%}@media screen and (max-width:1000px){#workouts .workouts-container .list-container[data-v-57ec0168]{width:100%}}#workout-card-title[data-v-4d9f9a8a]{display:flex;justify-content:space-between;align-items:center}#workout-card-title .workout-arrow[data-v-4d9f9a8a]{cursor:pointer}#workout-card-title .workout-arrow.inactive[data-v-4d9f9a8a]{color:var(--disabled-color);cursor:default}#workout-card-title .workout-card-title[data-v-4d9f9a8a]{display:flex;flex-grow:1;align-items:center}#workout-card-title .workout-card-title .sport-img[data-v-4d9f9a8a]{padding:0 10px}#workout-card-title .workout-card-title .sport-img[data-v-4d9f9a8a] svg{height:35px;width:35px}#workout-card-title .workout-card-title .workout-title span[data-v-4d9f9a8a]{margin-right:5px}#workout-card-title .workout-card-title .workout-date[data-v-4d9f9a8a]{font-size:.8em;font-weight:400}#workout-card-title .workout-card-title .workout-segment[data-v-4d9f9a8a]{font-weight:400}#workout-card-title .workout-card-title .workout-link[data-v-4d9f9a8a]{padding-left:10px}#workout-card-title .workout-card-title .fa[data-v-4d9f9a8a]{cursor:pointer;padding:0 3px}@media screen and (max-width:700px){#workout-card-title .workout-card-title .fa-download[data-v-4d9f9a8a],#workout-card-title .workout-card-title .fa-edit[data-v-4d9f9a8a],#workout-card-title .workout-card-title .fa-trash[data-v-4d9f9a8a]{padding:0 7px}}.workout-record sup[data-v-1a5282f6]{font-size:75%;line-height:0}.wind[data-v-46a7c31c]{display:flex;justify-content:center}.wind .wind-bearing[data-v-46a7c31c]{padding-left:5px}#workout-weather[data-v-76e9ab62]{padding-top:10px}#workout-weather .weather-img[data-v-76e9ab62]{height:30px;filter:var(--workout-img-color)}#workout-weather .weather-img-small[data-v-76e9ab62]{height:20px}#workout-weather .weather-table[data-v-76e9ab62]{width:100%;text-align:center}#workout-weather .weather-table .weather-th[data-v-76e9ab62]{display:flex;flex-direction:column;text-transform:capitalize}#workout-weather .weather-table tbody[data-v-76e9ab62]{font-size:.8em}#workout-info[data-v-74c5993b]{display:flex;flex-direction:column;padding:10px 20px;width:100%}#workout-info .fa[data-v-74c5993b],#workout-info .mountains[data-v-74c5993b]{padding-right:5px}#workout-info .workout-data[data-v-74c5993b]{padding:5px 0}#workout-info .workout-data .label[data-v-74c5993b]{text-transform:capitalize}#workout-info .workout-data .value[data-v-74c5993b]{font-weight:700;text-transform:lowercase}@media screen and (max-width:700px){#workout-info[data-v-74c5993b]{padding:10px}}.leaflet-image-layer,.leaflet-layer,.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-pane,.leaflet-pane>canvas,.leaflet-pane>svg,.leaflet-tile,.leaflet-tile-container,.leaflet-zoom-box{position:absolute;left:0;top:0}.leaflet-container{overflow:hidden}.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-tile{-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-user-drag:none}.leaflet-tile::-moz-selection{background:transparent}.leaflet-tile::selection{background:transparent}.leaflet-safari .leaflet-tile{image-rendering:-webkit-optimize-contrast}.leaflet-safari .leaflet-tile-container{width:1600px;height:1600px;-webkit-transform-origin:0 0}.leaflet-marker-icon,.leaflet-marker-shadow{display:block}.leaflet-container .leaflet-overlay-pane svg{max-width:none!important;max-height:none!important}.leaflet-container .leaflet-marker-pane img,.leaflet-container .leaflet-shadow-pane img,.leaflet-container .leaflet-tile,.leaflet-container .leaflet-tile-pane img,.leaflet-container img.leaflet-image-layer{max-width:none!important;max-height:none!important;width:auto;padding:0}.leaflet-container.leaflet-touch-zoom{touch-action:pan-x pan-y}.leaflet-container.leaflet-touch-drag{touch-action:none;touch-action:pinch-zoom}.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom{touch-action:none}.leaflet-container{-webkit-tap-highlight-color:transparent}.leaflet-container a{-webkit-tap-highlight-color:rgba(51,181,229,.4)}.leaflet-tile{filter:inherit;visibility:hidden}.leaflet-tile-loaded{visibility:inherit}.leaflet-zoom-box{width:0;height:0;box-sizing:border-box;z-index:800}.leaflet-overlay-pane svg{-moz-user-select:none}.leaflet-pane{z-index:400}.leaflet-tile-pane{z-index:200}.leaflet-overlay-pane{z-index:400}.leaflet-shadow-pane{z-index:500}.leaflet-marker-pane{z-index:600}.leaflet-tooltip-pane{z-index:650}.leaflet-popup-pane{z-index:700}.leaflet-map-pane canvas{z-index:100}.leaflet-map-pane svg{z-index:200}.leaflet-vml-shape{width:1px;height:1px}.lvml{behavior:url(#default#VML);display:inline-block;position:absolute}.leaflet-control{position:relative;z-index:800;pointer-events:visiblePainted;pointer-events:auto}.leaflet-bottom,.leaflet-top{position:absolute;z-index:1000;pointer-events:none}.leaflet-top{top:0}.leaflet-right{right:0}.leaflet-bottom{bottom:0}.leaflet-left{left:0}.leaflet-control{float:left;clear:both}.leaflet-right .leaflet-control{float:right}.leaflet-top .leaflet-control{margin-top:10px}.leaflet-bottom .leaflet-control{margin-bottom:10px}.leaflet-left .leaflet-control{margin-left:10px}.leaflet-right .leaflet-control{margin-right:10px}.leaflet-fade-anim .leaflet-popup{opacity:0;transition:opacity .2s linear}.leaflet-fade-anim .leaflet-map-pane .leaflet-popup{opacity:1}.leaflet-zoom-animated{transform-origin:0 0}svg.leaflet-zoom-animated{will-change:transform}.leaflet-zoom-anim .leaflet-zoom-animated{transition:transform .25s cubic-bezier(0,0,.25,1)}.leaflet-pan-anim .leaflet-tile,.leaflet-zoom-anim .leaflet-tile{transition:none}.leaflet-zoom-anim .leaflet-zoom-hide{visibility:hidden}.leaflet-interactive{cursor:pointer}.leaflet-grab{cursor:grab}.leaflet-crosshair,.leaflet-crosshair .leaflet-interactive{cursor:crosshair}.leaflet-control,.leaflet-popup-pane{cursor:auto}.leaflet-dragging .leaflet-grab,.leaflet-dragging .leaflet-grab .leaflet-interactive,.leaflet-dragging .leaflet-marker-draggable{cursor:move;cursor:grabbing}.leaflet-image-layer,.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-pane>svg path,.leaflet-tile-container{pointer-events:none}.leaflet-image-layer.leaflet-interactive,.leaflet-marker-icon.leaflet-interactive,.leaflet-pane>svg path.leaflet-interactive,svg.leaflet-image-layer.leaflet-interactive path{pointer-events:visiblePainted;pointer-events:auto}.leaflet-container{background:#ddd;outline-offset:1px}.leaflet-container a{color:#0078a8}.leaflet-zoom-box{border:2px dotted #38f;background:hsla(0,0%,100%,.5)}.leaflet-container{font-family:Helvetica Neue,Arial,Helvetica,sans-serif;font-size:12px;font-size:.75rem;line-height:1.5}.leaflet-bar{box-shadow:0 1px 5px rgba(0,0,0,.65);border-radius:4px}.leaflet-bar a{background-color:#fff;border-bottom:1px solid #ccc;width:26px;height:26px;line-height:26px;display:block;text-align:center;text-decoration:none;color:#000}.leaflet-bar a,.leaflet-control-layers-toggle{background-position:50% 50%;background-repeat:no-repeat;display:block}.leaflet-bar a:focus,.leaflet-bar a:hover{background-color:#f4f4f4}.leaflet-bar a:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.leaflet-bar a:last-child{border-bottom-left-radius:4px;border-bottom-right-radius:4px;border-bottom:none}.leaflet-bar a.leaflet-disabled{cursor:default;background-color:#f4f4f4;color:#bbb}.leaflet-touch .leaflet-bar a{width:30px;height:30px;line-height:30px}.leaflet-touch .leaflet-bar a:first-child{border-top-left-radius:2px;border-top-right-radius:2px}.leaflet-touch .leaflet-bar a:last-child{border-bottom-left-radius:2px;border-bottom-right-radius:2px}.leaflet-control-zoom-in,.leaflet-control-zoom-out{font:700 18px Lucida Console,Monaco,monospace;text-indent:1px}.leaflet-touch .leaflet-control-zoom-in,.leaflet-touch .leaflet-control-zoom-out{font-size:22px}.leaflet-control-layers{box-shadow:0 1px 5px rgba(0,0,0,.4);background:#fff;border-radius:5px}.leaflet-control-layers-toggle{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAQAAAADQ4RFAAACf0lEQVR4AY1UM3gkARTePdvdoTxXKc+qTl3aU5U6b2Kbkz3Gtq3Zw6ziLGNPzrYx7946Tr6/ee/XeCQ4D3ykPtL5tHno4n0d/h3+xfuWHGLX81cn7r0iTNzjr7LrlxCqPtkbTQEHeqOrTy4Yyt3VCi/IOB0v7rVC7q45Q3Gr5K6jt+3Gl5nCoDD4MtO+j96Wu8atmhGqcNGHObuf8OM/x3AMx38+4Z2sPqzCxRFK2aF2e5Jol56XTLyggAMTL56XOMoS1W4pOyjUcGGQdZxU6qRh7B9Zp+PfpOFlqt0zyDZckPi1ttmIp03jX8gyJ8a/PG2yutpS/Vol7peZIbZcKBAEEheEIAgFbDkz5H6Zrkm2hVWGiXKiF4Ycw0RWKdtC16Q7qe3X4iOMxruonzegJzWaXFrU9utOSsLUmrc0YjeWYjCW4PDMADElpJSSQ0vQvA1Tm6/JlKnqFs1EGyZiFCqnRZTEJJJiKRYzVYzJck2Rm6P4iH+cmSY0YzimYa8l0EtTODFWhcMIMVqdsI2uiTvKmTisIDHJ3od5GILVhBCarCfVRmo4uTjkhrhzkiBV7SsaqS+TzrzM1qpGGUFt28pIySQHR6h7F6KSwGWm97ay+Z+ZqMcEjEWebE7wxCSQwpkhJqoZA5ivCdZDjJepuJ9IQjGGUmuXJdBFUygxVqVsxFsLMbDe8ZbDYVCGKxs+W080max1hFCarCfV+C1KATwcnvE9gRRuMP2prdbWGowm1KB1y+zwMMENkM755cJ2yPDtqhTI6ED1M/82yIDtC/4j4BijjeObflpO9I9MwXTCsSX8jWAFeHr05WoLTJ5G8IQVS/7vwR6ohirYM7f6HzYpogfS3R2OAAAAAElFTkSuQmCC);width:36px;height:36px}.leaflet-retina .leaflet-control-layers-toggle{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAQAAABvcdNgAAAEsklEQVR4AWL4TydIhpZK1kpWOlg0w3ZXP6D2soBtG42jeI6ZmQTHzAxiTbSJsYLjO9HhP+WOmcuhciVnmHVQcJnp7DFvScowZorad/+V/fVzMdMT2g9Cv9guXGv/7pYOrXh2U+RRR3dSd9JRx6bIFc/ekqHI29JC6pJ5ZEh1yWkhkbcFeSjxgx3L2m1cb1C7bceyxA+CNjT/Ifff+/kDk2u/w/33/IeCMOSaWZ4glosqT3DNnNZQ7Cs58/3Ce5HL78iZH/vKVIaYlqzfdLu8Vi7dnvUbEza5Idt36tquZFldl6N5Z/POLof0XLK61mZCmJSWjVF9tEjUluu74IUXvgttuVIHE7YxSkaYhJZam7yiM9Pv82JYfl9nptxZaxMJE4YSPty+vF0+Y2up9d3wwijfjZbabqm/3bZ9ecKHsiGmRflnn1MW4pjHf9oLufyn2z3y1D6n8g8TZhxyzipLNPnAUpsOiuWimg52psrTZYnOWYNDTMuWBWa0tJb4rgq1UvmutpaYEbZlwU3CLJm/ayYjHW5/h7xWLn9Hh1vepDkyf7dE7MtT5LR4e7yYpHrkhOUpEfssBLq2pPhAqoSWKUkk7EDqkmK6RrCEzqDjhNDWNE+XSMvkJRDWlZTmCW0l0PHQGRZY5t1L83kT0Y3l2SItk5JAWHl2dCOBm+fPu3fo5/3v61RMCO9Jx2EEYYhb0rmNQMX/vm7gqOEJLcXTGw3CAuRNeyaPWwjR8PRqKQ1PDA/dpv+on9Shox52WFnx0KY8onHayrJzm87i5h9xGw/tfkev0jGsQizqezUKjk12hBMKJ4kbCqGPVNXudyyrShovGw5CgxsRICxF6aRmSjlBnHRzg7Gx8fKqEubI2rahQYdR1YgDIRQO7JvQyD52hoIQx0mxa0ODtW2Iozn1le2iIRdzwWewedyZzewidueOGqlsn1MvcnQpuVwLGG3/IR1hIKxCjelIDZ8ldqWz25jWAsnldEnK0Zxro19TGVb2ffIZEsIO89EIEDvKMPrzmBOQcKQ+rroye6NgRRxqR4U8EAkz0CL6uSGOm6KQCdWjvjRiSP1BPalCRS5iQYiEIvxuBMJEWgzSoHADcVMuN7IuqqTeyUPq22qFimFtxDyBBJEwNyt6TM88blFHao/6tWWhuuOM4SAK4EI4QmFHA+SEyWlp4EQoJ13cYGzMu7yszEIBOm2rVmHUNqwAIQabISNMRstmdhNWcFLsSm+0tjJH1MdRxO5Nx0WDMhCtgD6OKgZeljJqJKc9po8juskR9XN0Y1lZ3mWjLR9JCO1jRDMd0fpYC2VnvjBSEFg7wBENc0R9HFlb0xvF1+TBEpF68d+DHR6IOWVv2BECtxo46hOFUBd/APU57WIoEwJhIi2CdpyZX0m93BZicktMj1AS9dClteUFAUNUIEygRZCtik5zSxI9MubTBH1GOiHsiLJ3OCoSZkILa9PxiN0EbvhsAo8tdAf9Seepd36lGWHmtNANTv5Jd0z4QYyeo/UEJqxKRpg5LZx6btLPsOaEmdMyxYdlc8LMaJnikDlhclqmPiQnTEpLUIZEwkRagjYkEibQErwhkTAKCLQEbUgkzJQWc/0PstHHcfEdQ+UAAAAASUVORK5CYII=);background-size:26px 26px}.leaflet-touch .leaflet-control-layers-toggle{width:44px;height:44px}.leaflet-control-layers .leaflet-control-layers-list,.leaflet-control-layers-expanded .leaflet-control-layers-toggle{display:none}.leaflet-control-layers-expanded .leaflet-control-layers-list{display:block;position:relative}.leaflet-control-layers-expanded{padding:6px 10px 6px 6px;color:#333;background:#fff}.leaflet-control-layers-scrollbar{overflow-y:scroll;overflow-x:hidden;padding-right:5px}.leaflet-control-layers-selector{margin-top:2px;position:relative;top:1px}.leaflet-control-layers label{display:block;font-size:13px;font-size:1.08333em}.leaflet-control-layers-separator{height:0;border-top:1px solid #ddd;margin:5px -10px 5px -6px}.leaflet-default-icon-path{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAApCAYAAADAk4LOAAAFgUlEQVR4Aa1XA5BjWRTN2oW17d3YaZtr2962HUzbDNpjszW24mRt28p47v7zq/bXZtrp/lWnXr337j3nPCe85NcypgSFdugCpW5YoDAMRaIMqRi6aKq5E3YqDQO3qAwjVWrD8Ncq/RBpykd8oZUb/kaJutow8r1aP9II0WmLKLIsJyv1w/kqw9Ch2MYdB++12Onxee/QMwvf4/Dk/Lfp/i4nxTXtOoQ4pW5Aj7wpici1A9erdAN2OH64x8OSP9j3Ft3b7aWkTg/Fm91siTra0f9on5sQr9INejH6CUUUpavjFNq1B+Oadhxmnfa8RfEmN8VNAsQhPqF55xHkMzz3jSmChWU6f7/XZKNH+9+hBLOHYozuKQPxyMPUKkrX/K0uWnfFaJGS1QPRtZsOPtr3NsW0uyh6NNCOkU3Yz+bXbT3I8G3xE5EXLXtCXbbqwCO9zPQYPRTZ5vIDXD7U+w7rFDEoUUf7ibHIR4y6bLVPXrz8JVZEql13trxwue/uDivd3fkWRbS6/IA2bID4uk0UpF1N8qLlbBlXs4Ee7HLTfV1j54APvODnSfOWBqtKVvjgLKzF5YdEk5ewRkGlK0i33Eofffc7HT56jD7/6U+qH3Cx7SBLNntH5YIPvODnyfIXZYRVDPqgHtLs5ABHD3YzLuespb7t79FY34DjMwrVrcTuwlT55YMPvOBnRrJ4VXTdNnYug5ucHLBjEpt30701A3Ts+HEa73u6dT3FNWwflY86eMHPk+Yu+i6pzUpRrW7SNDg5JHR4KapmM5Wv2E8Tfcb1HoqqHMHU+uWDD7zg54mz5/2BSnizi9T1Dg4QQXLToGNCkb6tb1NU+QAlGr1++eADrzhn/u8Q2YZhQVlZ5+CAOtqfbhmaUCS1ezNFVm2imDbPmPng5wmz+gwh+oHDce0eUtQ6OGDIyR0uUhUsoO3vfDmmgOezH0mZN59x7MBi++WDL1g/eEiU3avlidO671bkLfwbw5XV2P8Pzo0ydy4t2/0eu33xYSOMOD8hTf4CrBtGMSoXfPLchX+J0ruSePw3LZeK0juPJbYzrhkH0io7B3k164hiGvawhOKMLkrQLyVpZg8rHFW7E2uHOL888IBPlNZ1FPzstSJM694fWr6RwpvcJK60+0HCILTBzZLFNdtAzJaohze60T8qBzyh5ZuOg5e7uwQppofEmf2++DYvmySqGBuKaicF1blQjhuHdvCIMvp8whTTfZzI7RldpwtSzL+F1+wkdZ2TBOW2gIF88PBTzD/gpeREAMEbxnJcaJHNHrpzji0gQCS6hdkEeYt9DF/2qPcEC8RM28Hwmr3sdNyht00byAut2k3gufWNtgtOEOFGUwcXWNDbdNbpgBGxEvKkOQsxivJx33iow0Vw5S6SVTrpVq11ysA2Rp7gTfPfktc6zhtXBBC+adRLshf6sG2RfHPZ5EAc4sVZ83yCN00Fk/4kggu40ZTvIEm5g24qtU4KjBrx/BTTH8ifVASAG7gKrnWxJDcU7x8X6Ecczhm3o6YicvsLXWfh3Ch1W0k8x0nXF+0fFxgt4phz8QvypiwCCFKMqXCnqXExjq10beH+UUA7+nG6mdG/Pu0f3LgFcGrl2s0kNNjpmoJ9o4B29CMO8dMT4Q5ox8uitF6fqsrJOr8qnwNbRzv6hSnG5wP+64C7h9lp30hKNtKdWjtdkbuPA19nJ7Tz3zR/ibgARbhb4AlhavcBebmTHcFl2fvYEnW0ox9xMxKBS8btJ+KiEbq9zA4RthQXDhPa0T9TEe69gWupwc6uBUphquXgf+/FrIjweHQS4/pduMe5ERUMHUd9xv8ZR98CxkS4F2n3EUrUZ10EYNw7BWm9x1GiPssi3GgiGRDKWRYZfXlON+dfNbM+GgIwYdwAAAAASUVORK5CYII=)}.leaflet-container .leaflet-control-attribution{background:#fff;background:hsla(0,0%,100%,.8);margin:0}.leaflet-control-attribution,.leaflet-control-scale-line{padding:0 5px;color:#333;line-height:1.4}.leaflet-control-attribution a{text-decoration:none}.leaflet-control-attribution a:focus,.leaflet-control-attribution a:hover{text-decoration:underline}.leaflet-attribution-flag{display:inline!important;vertical-align:baseline!important;width:1em;height:.6669em}.leaflet-left .leaflet-control-scale{margin-left:5px}.leaflet-bottom .leaflet-control-scale{margin-bottom:5px}.leaflet-control-scale-line{border:2px solid #777;border-top:none;line-height:1.1;padding:2px 5px 1px;white-space:nowrap;overflow:hidden;box-sizing:border-box;background:#fff;background:hsla(0,0%,100%,.5)}.leaflet-control-scale-line:not(:first-child){border-top:2px solid #777;border-bottom:none;margin-top:-2px}.leaflet-control-scale-line:not(:first-child):not(:last-child){border-bottom:2px solid #777}.leaflet-touch .leaflet-bar,.leaflet-touch .leaflet-control-attribution,.leaflet-touch .leaflet-control-layers{box-shadow:none}.leaflet-touch .leaflet-bar,.leaflet-touch .leaflet-control-layers{border:2px solid rgba(0,0,0,.2);background-clip:padding-box}.leaflet-popup{position:absolute;text-align:center;margin-bottom:20px}.leaflet-popup-content-wrapper{padding:1px;text-align:left;border-radius:12px}.leaflet-popup-content{margin:13px 24px 13px 20px;line-height:1.3;font-size:13px;font-size:1.08333em;min-height:1px}.leaflet-popup-content p{margin:17px 0;margin:1.3em 0}.leaflet-popup-tip-container{width:40px;height:20px;position:absolute;left:50%;margin-top:-1px;margin-left:-20px;overflow:hidden;pointer-events:none}.leaflet-popup-tip{width:17px;height:17px;padding:1px;margin:-10px auto 0;pointer-events:auto;transform:rotate(45deg)}.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:#fff;color:#333;box-shadow:0 3px 14px rgba(0,0,0,.4)}.leaflet-container a.leaflet-popup-close-button{position:absolute;top:0;right:0;border:none;text-align:center;width:24px;height:24px;font:16px/24px Tahoma,Verdana,sans-serif;color:#757575;text-decoration:none;background:transparent}.leaflet-container a.leaflet-popup-close-button:focus,.leaflet-container a.leaflet-popup-close-button:hover{color:#585858}.leaflet-popup-scrolled{overflow:auto}.leaflet-oldie .leaflet-popup-content-wrapper{-ms-zoom:1}.leaflet-oldie .leaflet-popup-tip{width:24px;margin:0 auto;-ms-filter:"progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)";filter:progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678,M12=0.70710678,M21=-0.70710678,M22=0.70710678)}.leaflet-oldie .leaflet-control-layers,.leaflet-oldie .leaflet-control-zoom,.leaflet-oldie .leaflet-popup-content-wrapper,.leaflet-oldie .leaflet-popup-tip{border:1px solid #999}.leaflet-div-icon{background:#fff;border:1px solid #666}.leaflet-tooltip{position:absolute;padding:6px;background-color:#fff;border:1px solid #fff;border-radius:3px;color:#222;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:none;box-shadow:0 1px 3px rgba(0,0,0,.4)}.leaflet-tooltip.leaflet-interactive{cursor:pointer;pointer-events:auto}.leaflet-tooltip-bottom:before,.leaflet-tooltip-left:before,.leaflet-tooltip-right:before,.leaflet-tooltip-top:before{position:absolute;pointer-events:none;border:6px solid transparent;background:transparent;content:""}.leaflet-tooltip-bottom{margin-top:6px}.leaflet-tooltip-top{margin-top:-6px}.leaflet-tooltip-bottom:before,.leaflet-tooltip-top:before{left:50%;margin-left:-6px}.leaflet-tooltip-top:before{bottom:0;margin-bottom:-12px;border-top-color:#fff}.leaflet-tooltip-bottom:before{top:0;margin-top:-12px;margin-left:-6px;border-bottom-color:#fff}.leaflet-tooltip-left{margin-left:-6px}.leaflet-tooltip-right{margin-left:6px}.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{top:50%;margin-top:-6px}.leaflet-tooltip-left:before{right:0;margin-right:-12px;border-left-color:#fff}.leaflet-tooltip-right:before{left:0;margin-left:-12px;border-right-color:#fff}@media print{.leaflet-control{-webkit-print-color-adjust:exact;print-color-adjust:exact}}#workout-map[data-v-6b490f5d]{padding:10px 0}#workout-map .leaflet-container[data-v-6b490f5d],#workout-map .no-map[data-v-6b490f5d]{height:400px;width:600px}#workout-map .no-map[data-v-6b490f5d]{line-height:400px}#workout-map .map-control[data-v-6b490f5d]{background:#fff;padding:5px 10px;border:2px solid #bfc0ab;border-radius:3px;color:#000}#workout-map[data-v-6b490f5d] .fullscreen{display:flex;align-items:center;z-index:1000}#workout-map[data-v-6b490f5d] .fullscreen .fullscreen-map{height:100%;width:100%}@media screen and (max-width:700px){#workout-map[data-v-6b490f5d]{padding:0}#workout-map .leaflet-container[data-v-6b490f5d]{width:100%;height:300px}#workout-map .no-map[data-v-6b490f5d]{display:none}}.workout-detail[data-v-9fc0bab8]{display:flex}.workout-detail[data-v-9fc0bab8] .card{width:100%}.workout-detail[data-v-9fc0bab8] .card .card-content{display:flex;flex-direction:row}@media screen and (max-width:1000px){.workout-detail[data-v-9fc0bab8] .card .card-content{flex-direction:column}}#workout-chart[data-v-dcea1168] .card .card-title{text-transform:capitalize}#workout-chart[data-v-dcea1168] .card .card-content{display:flex;flex-direction:column}#workout-chart[data-v-dcea1168] .card .card-content .chart-radio{width:100%;display:flex;justify-content:center}#workout-chart[data-v-dcea1168] .card .card-content .chart-radio label{padding:0 10px}#workout-chart[data-v-dcea1168] .card .card-content .chart-info{display:flex;justify-content:space-between;font-size:.85em;font-style:italic}#workout-chart[data-v-dcea1168] .card .card-content #chart-legend{display:flex;justify-content:center}#workout-chart[data-v-dcea1168] .card .card-content #chart-legend ul{display:flex;margin-bottom:0;padding:0}#workout-chart[data-v-dcea1168] .card .card-content #chart-legend ul li{cursor:pointer;display:flex;font-size:.85em;padding:0 5px}#workout-chart[data-v-dcea1168] .card .card-content #chart-legend ul li span{border-radius:5%;border-style:solid;border-width:1.5px;height:10px;margin-top:4px;margin-left:2px;width:20px}@media screen and (max-width:700px){#workout-chart[data-v-dcea1168] .card .card-content{padding:10px 0}#workout-chart[data-v-dcea1168] .card .card-content .chart-info{display:flex;flex-direction:column-reverse}#workout-chart[data-v-dcea1168] .card .card-content .chart-info .elevation-start{padding:10px 15px 0}#workout-chart[data-v-dcea1168] .card .card-content .chart-info .no-data-cleaning{padding:0 20px}}#workout-note[data-v-028ad527] .card-content{font-style:italic;white-space:pre-wrap}#workout-segments[data-v-6b8a27cd] .card .card-title{text-transform:capitalize}#workout-segments[data-v-6b8a27cd] .card .card-content{padding-bottom:0;padding-top:0}#workout-segments[data-v-6b8a27cd] .card .card-content a{font-weight:700}#workout-segments[data-v-6b8a27cd] .card .card-content ul{padding:0 10px;list-style:square}#workout[data-v-53c4e53a]{display:flex}#workout .container[data-v-53c4e53a]{width:100%;padding:0}#workout .container .workout-container[data-v-53c4e53a]{width:100%}#workout .container .workout-loading[data-v-53c4e53a]{height:calc(100vh - 130px);width:100%}#workout .container .workout-loading .loading[data-v-53c4e53a]{display:flex;align-items:center;height:100%}#workout-edition[data-v-886f93f6] .card .card-title{text-align:center;text-transform:uppercase}@media screen and (max-width:1000px){#workout-edition[data-v-886f93f6] .card .card-content{padding:10px 0}}#workout-edition[data-v-886f93f6] .card .card-content #workout-form .form-items{display:flex;flex-direction:column}#workout-edition[data-v-886f93f6] .card .card-content #workout-form .form-items input{height:20px}#workout-edition[data-v-886f93f6] .card .card-content #workout-form .form-items .workout-date-duration{display:flex;flex-direction:row;justify-content:space-between}@media screen and (max-width:1000px){#workout-edition[data-v-886f93f6] .card .card-content #workout-form .form-items .workout-date-duration{flex-direction:column}}#workout-edition[data-v-886f93f6] .card .card-content #workout-form .form-items .form-item{display:flex;flex-direction:column;padding:10px}#workout-edition[data-v-886f93f6] .card .card-content #workout-form .form-items .form-item .workout-date-time{display:flex}#workout-edition[data-v-886f93f6] .card .card-content #workout-form .form-items .form-item .workout-date-time #workout-date{margin-right:10px}#workout-edition[data-v-886f93f6] .card .card-content #workout-form .form-items .form-item .workout-duration{width:25px}#workout-edition[data-v-886f93f6] .card .card-content #workout-form .form-items .form-item-radio{display:flex;justify-content:space-around}#workout-edition[data-v-886f93f6] .card .card-content #workout-form .form-items .form-item-radio label{font-weight:400}@media screen and (max-width:1000px){#workout-edition[data-v-886f93f6] .card .card-content #workout-form .form-items .form-item-radio label{font-size:.9em}}#workout-edition[data-v-886f93f6] .card .card-content #workout-form .form-items .form-item-radio input{margin-top:-2px;vertical-align:middle}#workout-edition[data-v-886f93f6] .card .card-content #workout-form .form-buttons{display:flex;justify-content:flex-end}#workout-edition[data-v-886f93f6] .card .card-content #workout-form .form-buttons button{margin:5px}#workout-edition[data-v-886f93f6] .card .card-content #workout-form .files-help{display:flex;justify-content:space-around;margin-top:10px}#workout-edition[data-v-886f93f6] .card .card-content #workout-form .files-help div{display:flex}@media screen and (max-width:1000px){#workout-edition[data-v-886f93f6] .card .card-content #workout-form .files-help div{flex-direction:column}}#workout-edition[data-v-886f93f6] .card .card-content #workout-form .files-help div ul{margin:0;padding:0 20px}@media screen and (max-width:700px){#workout-edition[data-v-886f93f6]{margin-bottom:0}#workout-edition.center-form[data-v-886f93f6]{margin:50px auto}#workout-edition.with-margin[data-v-886f93f6]{margin-top:0}} \ No newline at end of file diff --git a/fittrackee/dist/static/js/admin.9bc68088.js b/fittrackee/dist/static/js/admin.4b3687ad.js similarity index 85% rename from fittrackee/dist/static/js/admin.9bc68088.js rename to fittrackee/dist/static/js/admin.4b3687ad.js index 259f4776..26923f02 100644 --- a/fittrackee/dist/static/js/admin.9bc68088.js +++ b/fittrackee/dist/static/js/admin.4b3687ad.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(5801),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.9bc68088.js.map \ No newline at end of file +"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(5793),n=i(2715),s=i(8273),c=i(5801),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.4b3687ad.js.map \ No newline at end of file diff --git a/fittrackee/dist/static/js/admin.9bc68088.js.map b/fittrackee/dist/static/js/admin.4b3687ad.js.map similarity index 98% rename from fittrackee/dist/static/js/admin.9bc68088.js.map rename to fittrackee/dist/static/js/admin.4b3687ad.js.map index d2599353..07e7f0b4 100644 --- a/fittrackee/dist/static/js/admin.9bc68088.js.map +++ b/fittrackee/dist/static/js/admin.4b3687ad.js.map @@ -1 +1 @@ -{"version":3,"file":"static/js/admin.9bc68088.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,MAGN,CAEJ,I,UCvDA,MAAM4B,GAA2B,OAAgB,EAAQ,CAAC,CAAC,YAAY,qBAEvE,O","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 +{"version":3,"file":"static/js/admin.4b3687ad.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,MAGN,CAEJ,I,UCvDA,MAAM4B,GAA2B,OAAgB,EAAQ,CAAC,CAAC,YAAY,qBAEvE,O","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/app.81fed7e5.js b/fittrackee/dist/static/js/app.81fed7e5.js new file mode 100644 index 00000000..53f306a5 --- /dev/null +++ b/fittrackee/dist/static/js/app.81fed7e5.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(8566),s=n(2894),i=n(5801),l=n(2024);const c=a().create({baseURL:(0,l.k)()});c.interceptors.request.use((e=>{const t=new AbortController;e.signal=t.signal;const n=(0,o.a)(e);o.j.set(n,t);const r=s.Z.getters[i.YN.GETTERS.AUTH_TOKEN];if(r){const t=`Bearer ${r}`;e.headers&&e.headers.Authorization!==t&&(e.headers.Authorization=`Bearer ${r}`)}return e}),(e=>Promise.reject(e))),c.interceptors.response.use((e=>((0,o.a)(e.config),e)),(e=>("canceled"!==e.message&&(0,o.a)(e.response.config),Promise.reject(e)))),t["Z"]=c},8566:function(e,t,n){"use strict";n.d(t,{a:function(){return o},j:function(){return r}});const r=new Map,a=e=>{const{method:t,url:n,params:r={},data:a={}}=e;return[t,n,JSON.stringify(r),JSON.stringify(a)].join("")},o=e=>{const t=a(e);if(r.has(t)){const e=r.get(t)||{};e?.abort(),r.delete(t)}return t}},2540:function(e,t,n){"use strict";var r=n(9150);const a=["nb"];function o(){const e=n(4612),t={};return e.keys().forEach((n=>{const r=n.match(/([A-Za-z0-9-_]+)\./i);if(r&&r.length>1&&!a.includes(r[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:o()})},9923:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return S}});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(["Quellcode"])}},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."])},"at least one file in zip archive exceeds size limit, please check the archive":e=>{const{normalize:t}=e;return t(["Mindestens eine Datei im ZIP-Archiv überschreitet das Größenlimit, bitte überprüfe das Archiv."])},"email: valid email must be provided":e=>{const{normalize:t}=e;return t(["E-Mail: Eine gültige E-Mail muss angegeben werden."])},"error during gpx processing":e=>{const{normalize:t}=e;return t(["Fehler bei der GPX-Verarbeitung."])},"error during gpx file parsing":e=>{const{normalize:t}=e;return t(["Fehler beim Einlesen der GPX-Datei"])},"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."])},"the number of files in the archive exceeds the limit":e=>{const{normalize:t}=e;return t(["Die Anzahl der Dateien im Archiv überschreitet die Begrenzung."])},"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"])},AUTHORIZE:e=>{const{normalize:t}=e;return t(["Autorisieren"])},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(["Mein Konto löschen"])},DISABLE:e=>{const{normalize:t}=e;return t(["Deaktivieren"])},EDIT:e=>{const{normalize:t}=e;return t(["Bearbeiten"])},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(["Anmelden"])},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"])])},DISPLAYED:e=>{const{normalize:t}=e;return t(["Angezeigt"])},DOCUMENTATION:e=>{const{normalize:t}=e;return t(["Dokumentation (en)"])},HERE:e=>{const{normalize:t}=e;return t(["hier"])},HIDDEN:e=>{const{normalize:t}=e;return t(["Versteckt"])},HOME:e=>{const{normalize:t}=e;return t(["Startseite"])},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={ADD_A_NEW_APP:e=>{const{normalize:t}=e;return t(["Eine neue OAuth2-Anwendung hinzufügen"])},APP:{CLIENT_ID:e=>{const{normalize:t}=e;return t(["ID"])},CLIENT_SECRET:e=>{const{normalize:t}=e;return t(["Geheimnis"])},DESCRIPTION:e=>{const{normalize:t}=e;return t(["Anwendungsbeschreibung"])},ISSUE_AT:e=>{const{normalize:t}=e;return t(["Erstellt am"])},NAME:e=>{const{normalize:t}=e;return t(["Anwendungsname"])},REDIRECT_URL:e=>{const{normalize:t}=e;return t(["Weiterleitungs-URL"])},SCOPE:{LABEL:e=>{const{normalize:t}=e;return t(["Geltungsbereich"])},"profile:write_DESCRIPTION":e=>{const{normalize:t}=e;return t(["erlaubt Schreibzugriff auf auth-Endpunkte"])},"profile:read_DESCRIPTION":e=>{const{normalize:t}=e;return t(["erlaubt Lesezugriff auf auth-Endpunkte"])},"users:read_DESCRIPTION":e=>{const{normalize:t}=e;return t(["erlaubt Lesezugriff auf users-Endpunkte"])},"users:write_DESCRIPTION":e=>{const{normalize:t}=e;return t(["erlaubt Schreibzugriff auf users-Endpunkte"])},"workouts:read_DESCRIPTION":e=>{const{normalize:t}=e;return t(["erlaubt Lesezugriff auf workouts-Endpunkte"])},"workouts:write_DESCRIPTION":e=>{const{normalize:t}=e;return t(["erlaubt Schreibzugriff auf workouts-Endpunkte"])},"application:write_DESCRIPTION":e=>{const{normalize:t}=e;return t(["erlaubt Schreibzugriff auf die Anwendungskonfiguration"])}},URL:e=>{const{normalize:t}=e;return t(["Anwendungs-URL"])}},APP_CREATED_SUCCESSFULLY:e=>{const{normalize:t}=e;return t(["Anwendung erfolgreich erstellt. Stelle sicher, dass du das Geheimnis kopierst, du kannst es nicht erneut anzeigen."])},APP_DELETION_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Bist sicher, dass du diese App löschen willst?"])},APP_REQUESTING_ACCESS:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Die Anwendung ",n(r(0))," fragt an:"])},APPS_LIST:e=>{const{normalize:t}=e;return t(["OAuth2-Anwendungen"])},AUTHORIZE_APP:e=>{const{normalize:t,interpolate:n,list:r}=e;return t([n(r(0))," den Zugriff auf deinen Account erlauben?"])},COPY_TO_CLIPBOARD:e=>{const{normalize:t}=e;return t(["in Zwischenablage kopieren"])},DELETE_APP:e=>{const{normalize:t}=e;return t(["Anwendung löschen"])},NEW_APP:e=>{const{normalize:t}=e;return t(["Anwendung hinzufügen"])},NO_APP:e=>{const{normalize:t}=e;return t(["Anwendung wurde nicht gefunden!"])},NO_APPS:e=>{const{normalize:t}=e;return t(["keine Anwendungen"])},NO_DESCRIPTION:e=>{const{normalize:t}=e;return t(["keine Beschreibung"])},REVOKE_ALL_TOKENS:e=>{const{normalize:t}=e;return t(["Alle Tokens zurückrufen"])},TOKENS_REVOCATION_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Bist du sicher, dass du alle Tokens zurückrufen möchtest?"])},TOKENS_REVOKED:e=>{const{normalize:t}=e;return t(["Alle vorhandenen und vergebenen Tokens wurde zurückgerufen."])}},d={"Cycling (Sport)":{LABEL:e=>{const{normalize:t}=e;return t(["Radfahren (Sport)"])}},"Cycling (Transport)":{LABEL:e=>{const{normalize:t}=e;return t(["Radfahren (Pendeln)"])}},"Cycling (Virtual)":{LABEL:e=>{const{normalize:t}=e;return t(["Radfahren (Virtuell)"])}},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(["Gehen"])}}},m={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"])}}},_={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ätigungs-E-Mail 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"])},ASCENT_DATA:e=>{const{normalize:t}=e;return t(["Anstiegs-bezogene Daten (Aufnahmen, gesamt)"])},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"])},DATE_FORMAT:e=>{const{normalize:t}=e;return t(["Datumsanzeigeformat"])},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(["Registrierungsdatum"])},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"])},APPS:e=>{const{normalize:t}=e;return t(["Anwendungen"])},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(["E-Mail zur Kontobestätigung erneut senden"])},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."])}},E={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_HA:e=>{const{normalize:t}=e;return t(["Höchster Anstieg"])},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(["verbleibende Zeichen"])},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"])}},S={about:r,admin:a,api:o,buttons:s,common:i,dashboard:l,error:c,oauth2:u,sports:d,statistics:m,user:_,workouts:E}},8757:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return S}});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."])},"at least one file in zip archive exceeds size limit, please check the archive":e=>{const{normalize:t}=e;return t(["At least one file in zip archive exceeds size limit, please check the archive."])},"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."])},"the number of files in the archive exceeds the limit":e=>{const{normalize:t}=e;return t(["The number of files in the archive exceeds the limit."])},"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"])},AUTHORIZE:e=>{const{normalize:t}=e;return t(["Authorize"])},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"])])},DISPLAYED:e=>{const{normalize:t}=e;return t(["Displayed"])},DOCUMENTATION:e=>{const{normalize:t}=e;return t(["documentation"])},HERE:e=>{const{normalize:t}=e;return t(["here"])},HIDDEN:e=>{const{normalize:t}=e;return t(["Hidden"])},HOME:e=>{const{normalize:t}=e;return t(["Home"])},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={ADD_A_NEW_APP:e=>{const{normalize:t}=e;return t(["Add a new OAuth2 application"])},APP:{CLIENT_ID:e=>{const{normalize:t}=e;return t(["Id"])},CLIENT_SECRET:e=>{const{normalize:t}=e;return t(["Secret"])},DESCRIPTION:e=>{const{normalize:t}=e;return t(["Application description"])},ISSUE_AT:e=>{const{normalize:t}=e;return t(["Issue at"])},NAME:e=>{const{normalize:t}=e;return t(["Application name"])},REDIRECT_URL:e=>{const{normalize:t}=e;return t(["Redirect URL"])},SCOPE:{LABEL:e=>{const{normalize:t}=e;return t(["Scope"])},"application:write_DESCRIPTION":e=>{const{normalize:t}=e;return t(["grants write access to application configuration."])},"profile:read_DESCRIPTION":e=>{const{normalize:t}=e;return t(["grants read access to auth endpoints."])},"profile:write_DESCRIPTION":e=>{const{normalize:t}=e;return t(["grants write access to auth endpoints."])},"users:read_DESCRIPTION":e=>{const{normalize:t}=e;return t(["grants read access to users endpoints."])},"users:write_DESCRIPTION":e=>{const{normalize:t}=e;return t(["grants write access to users endpoints."])},"workouts:read_DESCRIPTION":e=>{const{normalize:t}=e;return t(["grants read access to workouts endpoints."])},"workouts:write_DESCRIPTION":e=>{const{normalize:t}=e;return t(["grants write access to workouts endpoints."])}},URL:e=>{const{normalize:t}=e;return t(["Application URL"])}},APP_CREATED_SUCCESSFULLY:e=>{const{normalize:t}=e;return t(["Application created successfully. Make sure to copy the secret now, it won't show up again."])},APP_DELETION_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Are you sure you want to delete this app?"])},APP_REQUESTING_ACCESS:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["The application ",n(r(0))," is requesting:"])},APPS_LIST:e=>{const{normalize:t}=e;return t(["OAuth2 applications"])},AUTHORIZE_APP:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Authorize ",n(r(0))," to use your account?"])},COPY_TO_CLIPBOARD:e=>{const{normalize:t}=e;return t(["copy to the clipboard"])},DELETE_APP:e=>{const{normalize:t}=e;return t(["Delete application"])},NEW_APP:e=>{const{normalize:t}=e;return t(["Add an application"])},NO_APP:e=>{const{normalize:t}=e;return t(["Application not found!"])},NO_APPS:e=>{const{normalize:t}=e;return t(["no applications"])},NO_DESCRIPTION:e=>{const{normalize:t}=e;return t(["no description"])},REVOKE_ALL_TOKENS:e=>{const{normalize:t}=e;return t(["Revoke all tokens"])},TOKENS_REVOCATION_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Are you sure you want to revoke all tokens?"])},TOKENS_REVOKED:e=>{const{normalize:t}=e;return t(["All existing associated tokens have been revoked."])}},d={"Cycling (Sport)":{LABEL:e=>{const{normalize:t}=e;return t(["Cycling (Sport)"])}},"Cycling (Transport)":{LABEL:e=>{const{normalize:t}=e;return t(["Cycling (Transport)"])}},"Cycling (Virtual)":{LABEL:e=>{const{normalize:t}=e;return t(["Cycling (Virtual)"])}},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"])}}},m={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"])}}},_={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"])},ASCENT_DATA:e=>{const{normalize:t}=e;return t(["Ascent-related data (records, total)"])},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"])},DATE_FORMAT:e=>{const{normalize:t}=e;return t(["Date display format"])},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"])},APPS:e=>{const{normalize:t}=e;return t(["apps"])},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.'])}},E={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_HA:e=>{const{normalize:t}=e;return t(["Highest ascent"])},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"])}},S={about:r,admin:a,api:o,buttons:s,common:i,dashboard:l,error:c,oauth2:u,sports:d,statistics:m,user:_,workouts:E}},6625:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return S}});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(["Nombre max. de fichiers dans une archive zip "])},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(["Taille max. des archives zip (en Mo) "])}},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."])},"at least one file in zip archive exceeds size limit, please check the archive":e=>{const{normalize:t}=e;return t(["Au moins un fichier de l'archive zip dépasse la taille maximale, veuillez vérifier l'archive."])},"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."])},"the number of files in the archive exceeds the limit":e=>{const{normalize:t}=e;return t(["Le nombre de fichiers de l'archive dépasse la limite."])},"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"])},AUTHORIZE:e=>{const{normalize:t}=e;return t(["Autoriser"])},BACK:e=>{const{normalize:t}=e;return t(["Retour"])},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"])])},DISPLAYED:e=>{const{normalize:t}=e;return t(["Affiché"])},DOCUMENTATION:e=>{const{normalize:t}=e;return t(["documentation (en)"])},HERE:e=>{const{normalize:t}=e;return t(["ici"])},HIDDEN:e=>{const{normalize:t}=e;return t(["Masqué"])},HOME:e=>{const{normalize:t}=e;return t(["Accueil"])},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={ADD_A_NEW_APP:e=>{const{normalize:t}=e;return t(["Ajouter une nouvelle application OAuth2"])},APP:{CLIENT_ID:e=>{const{normalize:t}=e;return t(["Identifiant"])},CLIENT_SECRET:e=>{const{normalize:t}=e;return t(["Secret"])},DESCRIPTION:e=>{const{normalize:t}=e;return t(["Description de l'application"])},ISSUE_AT:e=>{const{normalize:t}=e;return t(["Créée le"])},NAME:e=>{const{normalize:t}=e;return t(["Nom de l'application"])},REDIRECT_URL:e=>{const{normalize:t}=e;return t(["URL de redirection"])},SCOPE:{LABEL:e=>{const{normalize:t}=e;return t(["Scope"])},"application:write_DESCRIPTION":e=>{const{normalize:t}=e;return t(["donne les droits en écriture à la configuration de l'application."])},"profile:read_DESCRIPTION":e=>{const{normalize:t}=e;return t(["donne les droits en lecture aux routes auth."])},"profile:write_DESCRIPTION":e=>{const{normalize:t}=e;return t(["donne les droits en écriture aux routes auth."])},"users:read_DESCRIPTION":e=>{const{normalize:t}=e;return t(["donne les droits en lecture aux routes users."])},"users:write_DESCRIPTION":e=>{const{normalize:t}=e;return t(["donne les droits en écriture aux routes users."])},"workouts:read_DESCRIPTION":e=>{const{normalize:t}=e;return t(["donne les droits en lecture aux routes workouts."])},"workouts:write_DESCRIPTION":e=>{const{normalize:t}=e;return t(["donne les droits en écriture aux routes workouts."])}},URL:e=>{const{normalize:t}=e;return t(["URL de l'application"])}},APP_CREATED_SUCCESSFULLY:e=>{const{normalize:t}=e;return t(["Application créée avec succès. Assurez-vous de copier le secret maintenant, il ne s'affichera plus."])},APP_DELETION_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Êtes-vous sûr de vouloir supprimer cette application ?"])},APP_REQUESTING_ACCESS:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["L'application ",n(r(0))," demande les accès suivants :"])},APPS_LIST:e=>{const{normalize:t}=e;return t(["Applications OAuth2"])},AUTHORIZE_APP:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Autoriser ",n(r(0))," à utiliser votre compte ?"])},COPY_TO_CLIPBOARD:e=>{const{normalize:t}=e;return t(["copier dans le presse papier"])},DELETE_APP:e=>{const{normalize:t}=e;return t(["Supprimer l'application"])},NEW_APP:e=>{const{normalize:t}=e;return t(["Ajouter une application"])},NO_APP:e=>{const{normalize:t}=e;return t(["Application introuvable !"])},NO_APPS:e=>{const{normalize:t}=e;return t(["pas de applications"])},NO_DESCRIPTION:e=>{const{normalize:t}=e;return t(["pas de description"])},REVOKE_ALL_TOKENS:e=>{const{normalize:t}=e;return t(["Révoquer tous les jetons"])},TOKENS_REVOCATION_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Êtes-vous sûr de vouloir révoquer tous les jetons ?"])},TOKENS_REVOKED:e=>{const{normalize:t}=e;return t(["Tous les jetons associés existants ont été révoqués."])}},d={"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)"])}},"Cycling (Virtual)":{LABEL:e=>{const{normalize:t}=e;return t(["Vélo (Virtuel)"])}},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"])}}},m={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"])}}},_={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 vos courriels. Un nouveau courriel de confirmation a été envoyé à l'adresse électronique 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·e 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(["Courriel"])},EMAIL_INFO:e=>{const{normalize:t}=e;return t(["Saisissez une adresse électronique valide."])},ENTER_PASSWORD:e=>{const{normalize:t}=e;return t(["Saisissez 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 vos courriels. Si vote adresse est dans notre base de données, vous recevrez un courriel avec un lien pour réinitialiser votre mot de passe."])},PASSWORD_STRENGTH:{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"])},ASCENT_DATA:e=>{const{normalize:t}=e;return t(["Données relatives au dénivelé positif (records, total)"])},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"])},DATE_FORMAT:e=>{const{normalize:t}=e;return t(["Format d'affichage de la date"])},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 électronique 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"])},APPS:e=>{const{normalize:t}=e;return t(["apps"])},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 boîte de réception pour valider votre nouvelle adresse électronique."])},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 électronique 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 le courriel 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."])}},E={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_HA:e=>{const{normalize:t}=e;return t(["Dénivelé positif le + élevé"])},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"])}},S={about:r,admin:a,api:o,buttons:s,common:i,dashboard:l,error:c,oauth2:u,sports:d,statistics:m,user:_,workouts:E}},8891:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return S}});var r={},a={},o={},s={},i={},l={},c={},u={},d={},m={},_={},E={},S={about:r,admin:a,api:o,buttons:s,common:i,dashboard:l,error:c,oauth2:u,sports:d,statistics:m,user:_,workouts:E}},4970:function(e,t,n){"use strict";var r=n(6775),a=n(6429),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(5793),c=n(2715),u=n(3577);const d=e=>((0,l.dD)("data-v-2c73279e"),e=e(),(0,l.Cn)(),e),m={id:"footer"},_={class:"footer-items"},E={class:"footer-item"},S=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"},R=["href"],I=d((()=>(0,l._)("div",{class:"footer-item bullet"},"•",-1))),U={class:"footer-item"},g={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",_,[(0,l._)("div",E,[S,(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,R)])):(0,l.kq)("",!0),I,(0,l._)("div",U,[(0,l._)("a",g,(0,u.zw)(e.$t("common.DOCUMENTATION")),1)])])])}}}),h=n(3744);const z=(0,h.Z)(N,[["__scopeId","data-v-2c73279e"]]);var w=z,f=(n(7658),n(6595)),v=n(5801),C=n(9917),D=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"},F=k((()=>(0,l._)("div",{class:"nav-item nav-separator"},null,-1))),W={class:"nav-items-user-menu"},K={key:0,class:"nav-items-group"},Y={class:"nav-item nav-profile-img"},x={key:1,class:"nav-items-group"},B=k((()=>(0,l._)("i",{class:"fa fa-language"},null,-1)));var $=(0,l.aZ)({__name:"NavBar",emits:["menuInteraction"],setup(e,{emit:t}){const n=(0,C.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 _(){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),F])):(0,l.kq)("",!0)]),(0,l._)("div",W,[(0,c.SU)(a)?((0,l.wg)(),(0,l.iD)("div",K,[(0,l._)("div",Y,[(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:_},(0,u.zw)(e.$t("user.LOGOUT")),1)])):((0,l.wg)(),(0,l.iD)("div",x,[(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)(D.mT)&&(0,c.SU)(o)?((0,l.wg)(),(0,l.j4)(E,{key:2,class:"nav-item",options:(0,c.SU)(D.mT),selected:(0,c.SU)(o),onSelected:m},{default:(0,l.w5)((()=>[B])),_:1},8,["options","selected"])):(0,l.kq)("",!0)])],2)])])}}});const Z=(0,h.Z)($,[["__scopeId","data-v-95c1cc02"]]);var H=Z,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,h.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,C.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 _(){let e="en";try{const t=navigator.language.split("-")[0];t in D.v1&&(e=t)}catch(n){e="en"}t.dispatch(v.SY.ACTIONS.UPDATE_APPLICATION_LANGUAGE,e)}return(0,l.wF)((()=>{_(),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)(w,{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(6176),_e=n(2894);const Ee={class:"alert-message"},Se=["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,Se)]))}});const pe=(0,h.Z)(Te,[["__scopeId","data-v-69d7e4ff"]]);var Ae=pe,Oe=n(2531);const Re={class:"custom-textarea"},Ie=["id","name","maxLenght","disabled"],Ue={class:"remaining-chars"};var ge=(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=null===e?"":e})),(t,n)=>((0,l.wg)(),(0,l.iD)("div",Re,[(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,Ie),[[o.nr,r.value]]),(0,l._)("div",Ue,(0,u.zw)(t.$t("workouts.REMAINING_CHARS"))+": "+(0,u.zw)(r.value.length)+"/"+(0,u.zw)(e.charLimit),1)]))}});const Ne=(0,h.Z)(ge,[["__scopeId","data-v-8cf5cc64"]]);var he=Ne,ze=n(3649),we=(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?ze.Dl[i.value].defaultTarget:i.value)),_=(0,l.Fl)((()=>d.value?(0,ze.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)(_)),3),(0,l.Uk)(" "+(0,u.zw)(" ")+" "),(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 fe=(0,h.Z)(we,[["__scopeId","data-v-f46ff1d6"]]);var ve=fe,Ce=n(2201);const De={class:"dropdown-wrapper"},ke={key:0,class:"dropdown-list"},Pe=["onClick"];var Le=(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",De,[(0,l._)("div",{class:"dropdown-selected",onClick:s},[(0,l.WI)(t.$slots,"default")]),a.value?((0,l.wg)(),(0,l.iD)("ul",ke,[((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,Pe)))),128))])):(0,l.kq)("",!0)]))}});const Me=(0,h.Z)(Le,[["__scopeId","data-v-2d3b4eac"]]);var be=Me;const ye={class:"error-message"},Ge={key:0},Fe={key:1};var We=(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",ye,[Array.isArray((0,c.SU)(n))?((0,l.wg)(),(0,l.iD)("ul",Ge,[((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 Ke=(0,h.Z)(We,[["__scopeId","data-v-2659a79a"]]);var Ye=Ke;const xe={version:"1.1",id:"Capa_1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",x:"0px",y:"0px",viewBox:"0 0 491.737 491.737",style:{"enable-background":"new 0 0 491.737 491.737"},"xml:space":"preserve"},Be=(0,l._)("desc",{id:"cyclingSportDescription"}," silhouette of a person riding a bicycle ",-1),$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),Ze=[Be,$e];function He(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",xe,Ze)}var qe={name:"CyclingSport"};const Ve=(0,h.Z)(qe,[["render",He]]);var je=Ve;const Xe={version:"1.1",id:"Capa_1",x:"0px",y:"0px",viewBox:"0 0 491.737 491.737",style:{"enable-background":"new 0 0 491.737 491.737"},"xml:space":"preserve",xmlns:"http://www.w3.org/2000/svg","xmlns:svg":"http://www.w3.org/2000/svg"},Je=(0,l._)("desc",{id:"cyclingTransportDescription"}," silhouette of a person riding a bicycle (for transportation) ",-1),Qe=(0,l._)("g",{id:"g147"},[(0,l._)("path",{d:"m 189.097,82.359 c 20.97701,12.331184 47.97442,5.308784 60.293,-15.652 12.32942,-20.979222 5.35418,-47.981117 -15.623,-60.304 -21.00482,-12.3391184 -47.99,-5.317 -60.314,15.65 -12.324,20.983 -5.34599,47.967183 15.644,60.306 z",id:"path143"}),(0,l._)("path",{d:"m 393.081,264.102 c -2.414,0 -4.8,0.194 -7.169,0.362 l -14.431,-71.605 4.702,-1.757 c 10.666,-3.987 16.093,-15.868 12.098,-26.54 -3.994,-10.681 -15.946,-16.084 -26.531,-12.09 l -63.05508,-1.53717 C 284.04753,137.09803 248.90259,106.55858 243.33317,101.62481 217.77732,75.090916 186.1698,85.012419 178.0988,91.544419 L 140.764,192.085 l 0.016,0.024 c -3.319,2.893 -6.089,6.485 -7.86,10.842 -2.191,5.396 -2.596,11.067 -1.564,16.384 -8.503,0.669 -15.255,7.571 -15.255,16.246 0,9.085 7.346,16.44 16.432,16.48 l -6.797,15.906 c -8.62,-2.465 -17.674,-3.866 -27.066,-3.866 C 44.27,264.102 0,308.354 0,362.754 c 0,54.403 44.27,98.663 98.668,98.663 54.403,0 98.652,-44.26 98.652,-98.663 0,-36.228 -19.683,-67.867 -48.858,-85.024 l 10.957,-25.652 h 17.767 l 60.281,24.462 -32.201,52.773 c -8.297,13.612 -3.994,31.382 9.615,39.685 4.691,2.86 9.878,4.229 15,4.229 9.729,0 19.234,-4.929 24.677,-13.838 l 29.339,-48.095 19.072,11.511 c -5.447,12.227 -8.54,25.726 -8.54,39.95 0,54.403 44.254,98.663 98.652,98.663 54.402,0 98.656,-44.26 98.656,-98.663 0,-54.401 -44.254,-98.653 -98.656,-98.653 z M 98.668,436.671 c -40.756,0 -73.923,-33.161 -73.923,-73.917 0,-40.756 33.167,-73.909 73.923,-73.909 5.944,0 11.649,0.896 17.188,2.224 L 95.38,338.962 c -11.758,1.619 -20.843,11.598 -20.843,23.792 0,13.323 10.808,24.132 24.13,24.132 8.767,0 16.367,-4.745 20.589,-11.76 h 52.065 c -5.926,34.862 -36.133,61.545 -72.653,61.545 z m 72.654,-86.288 h -52.065 c -0.355,-0.588 -0.708,-1.176 -1.112,-1.732 l 20.476,-47.901 c 17.058,11.026 29.172,28.845 32.701,49.633 z m 125.459,-60.208 7.666,-12.564 c 4.416,-7.233 5.431,-16.038 2.774,-24.084 -2.661,-8.046 -8.718,-14.515 -16.562,-17.704 l -73.83357,-31.7176 16.7558,-45.21274 c 10.36934,4.13303 41.82171,27.90767 45.77423,28.08592 3.271,1.981 8.57725,1.46711 12.29625,1.46711 2.435,0 18.50584,0.70472 20.84384,-0.16628 L 343.32113,188.03378 361.635,269.33 c -18.268,6.162 -34.117,17.51 -45.848,32.314 z m 78.615,47.458 -38.003,-22.94 c 7.877,-9.118 17.787,-16.319 29.205,-20.734 z m 17.685,99.038 c -40.757,0 -73.907,-33.161 -73.907,-73.917 0,-9.544 1.965,-18.597 5.268,-26.983 l 44.541,26.888 c 0,0.032 -0.016,0.064 -0.016,0.095 0,13.323 10.808,24.132 24.114,24.132 13.322,0 24.118,-10.81 24.118,-24.132 0,-10.478 -6.721,-19.307 -16.06,-22.64 l -10.277,-51.043 c 0.756,-0.024 1.463,-0.226 2.22,-0.226 40.757,0 73.911,33.153 73.911,73.909 -10e-4,40.756 -33.155,73.917 -73.912,73.917 z",id:"path145"})],-1),et=[Je,Qe];function tt(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",Xe,et)}var nt={name:"CyclingTransport"};const rt=(0,h.Z)(nt,[["render",tt]]);var at=rt;const ot={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"},st=(0,l.uE)(' silhouette of a person riding a bicycle with virtual indicator ',4),it=[st];function lt(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",ot,it)}var ct={name:"CyclingVirtual"};const ut=(0,h.Z)(ct,[["render",lt]]);var dt=ut;const mt={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"},_t=(0,l._)("desc",{id:"hikingDescription"},"silhouette of a person hiking",-1),Et=(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),St=[_t,Et];function Tt(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",mt,St)}var pt={name:"Hiking"};const At=(0,h.Z)(pt,[["render",Tt]]);var Ot=At;const Rt={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"},It=(0,l._)("desc",{id:"mountainBikingDescription"}," silhouette of a person riding a mountain bike ",-1),Ut=(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),gt=[It,Ut];function Nt(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",Rt,gt)}var ht={name:"MountainBiking"};const zt=(0,h.Z)(ht,[["render",Nt]]);var wt=zt;const ft={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"},vt=(0,l.uE)(' silhouette of a person riding an electric mountain bike ',18),Ct=[vt];function Dt(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",ft,Ct)}var kt={name:"MountainBikingElectric"};const Pt=(0,h.Z)(kt,[["render",Dt]]);var Lt=Pt;const Mt={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"},bt=(0,l._)("desc",{id:"rowingDescription"},"silhouette of a person rowing",-1),yt=(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),Gt=[bt,yt];function Ft(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",Mt,Gt)}var Wt={name:"Rowing"};const Kt=(0,h.Z)(Wt,[["render",Ft]]);var Yt=Kt;const xt={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"},Bt=(0,l._)("desc",{id:"runningDescription"},"silhouette of a running person",-1),$t=(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),Zt=[Bt,$t];function Ht(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",xt,Zt)}var qt={name:"Running"};const Vt=(0,h.Z)(qt,[["render",Ht]]);var jt=Vt;const Xt={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"},Jt=(0,l._)("desc",{id:"alpineSkiingDescription"},"silhouette of a person skiing",-1),Qt=(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),en=[Jt,Qt];function tn(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",Xt,en)}var nn={name:"SkiingAlpine"};const rn=(0,h.Z)(nn,[["render",tn]]);var an=rn;const on={version:"1.1",id:"Capa_1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",x:"0px",y:"0px",viewBox:"0 0 296 296",style:{"enable-background":"new 0 0 296 296"},"xml:space":"preserve"},sn=(0,l._)("desc",{id:"crossCountrySkiingDescription"}," silhouette of a person skiing (cross country) ",-1),ln=(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),cn=[sn,ln];function un(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",on,cn)}var dn={name:"SkiingCrossCountry"};const mn=(0,h.Z)(dn,[["render",un]]);var _n=mn;const En={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"},Sn=(0,l.uE)('silhouette of a person with snowshoes',6),Tn=[Sn];function pn(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",En,Tn)}var An={name:"Snowshoes"};const On=(0,h.Z)(An,[["render",pn]]);var Rn=On;const In={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"},Un=(0,l._)("desc",{id:"trailDescription"},"silhouette of a person running (trail)",-1),gn=(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),Nn=[Un,gn];function hn(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",In,Nn)}var zn={name:"Trail"};const wn=(0,h.Z)(zn,[["render",hn]]);var fn=wn;const vn={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 walking person',3),Dn=[Cn];function kn(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",vn,Dn)}var Pn={name:"Walking"};const Ln=(0,h.Z)(Pn,[["render",kn]]);var Mn=Ln;const bn=["title"];var yn=(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)(je,{key:0})):(0,l.kq)("",!0),"Cycling (Transport)"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(at,{key:1})):(0,l.kq)("",!0),"Cycling (Virtual)"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(dt,{key:2})):(0,l.kq)("",!0),"Hiking"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(Ot,{key:3})):(0,l.kq)("",!0),"Mountain Biking"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(wt,{key:4})):(0,l.kq)("",!0),"Mountain Biking (Electric)"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(Lt,{key:5})):(0,l.kq)("",!0),"Rowing"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(Yt,{key:6})):(0,l.kq)("",!0),"Running"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(jt,{key:7})):(0,l.kq)("",!0),"Skiing (Alpine)"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(an,{key:8})):(0,l.kq)("",!0),"Skiing (Cross Country)"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(_n,{key:9})):(0,l.kq)("",!0),"Snowshoes"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(Rn,{key:10})):(0,l.kq)("",!0),"Trail"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(fn,{key:11})):(0,l.kq)("",!0),"Walking"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(Mn,{key:12})):(0,l.kq)("",!0)],12,bn))}});const Gn=yn;var Fn=Gn;const Wn={class:"loader"};function Kn(e,t){return(0,l.wg)(),(0,l.iD)("div",Wn)}const Yn={},xn=(0,h.Z)(Yn,[["render",Kn],["__scopeId","data-v-4c9921ee"]]);var Bn=xn;const $n={id:"modal"},Zn={class:"custom-modal"},Hn={key:0,class:"modal-message"},qn={key:1,class:"modal-message"},Vn={class:"modal-buttons"};var jn=(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,C.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",$n,[(0,l._)("div",Zn,[(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",Hn,[(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",qn,(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",Vn,[(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 Xn=(0,h.Z)(jn,[["__scopeId","data-v-e8fcfaba"]]);var Jn=Xn;const Qn=[{target:Ae,name:"AlertMessage"},{target:Oe.Z,name:"Card"},{target:he,name:"CustomTextArea"},{target:ve,name:"Distance"},{target:be,name:"Dropdown"},{target:Ye,name:"ErrorMessage"},{target:Bn,name:"Loader"},{target:Jn,name:"Modal"},{target:Fn,name:"SportImage"}],er={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 tr=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 nr=(0,o.ri)(ue).provide("sportColors",tr.Zo).use(de.Z).use(_e.Z).use(me.Z).use(s.ZP,{name:"VFullscreen"}).directive("click-outside",er);Qn.forEach((e=>{nr.component(e.name,e.target)})),nr.mount("#app")},6176:function(e,t,n){"use strict";n.d(t,{Z:function(){return wl}});var r=n(2201),a=(n(7658),n(5793)),o=n(3577),s=n(9963),i=n(2715),l=n(5801),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"},_=["onSubmit"],E={for:"admin_contact"},S=["value"],T=["disabled"],p={for:"max_users"},A=["disabled"],O={class:"user-limit-help"},R={class:"info-box"},I=d((()=>(0,a._)("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1))),U={for:"max_single_file_size"},g=["disabled"],N={for:"max_zip_file_size"},h=["disabled"],z={for:"gpx_limit_import"},w=["disabled"],f={key:1,class:"form-buttons"},v={class:"confirm",type:"submit"},C=["onClick"],D={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,S))]),(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",R,[I,(0,a.Uk)(" "+(0,o.zw)(e.$t("admin.APP_CONFIG.MAX_USERS_HELP")),1)])]),(0,a._)("label",U,[(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,g),[[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,h),[[s.nr,P.max_zip_file_size]])]),(0,a._)("label",z,[(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,w),[[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,C)])):((0,a.wg)(),(0,a.iD)("div",D,[(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,_)])),_: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"},F={class:"stat-details"},W={class:"stat-huge"},K={class:"stat"};var Y=(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",F,[(0,a._)("div",W,(0,o.zw)((0,i.SU)(s)),1),(0,a._)("div",K,(0,o.zw)((0,i.SU)(r)),1)])])]))}});const x=Y;var B=x;const $={id:"user-stats"};var Z=(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",$,[(0,a.Wm)(B,{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)(B,{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)(B,{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)(B,{icon:"folder-open",value:(0,i.SU)(r).size,text:(0,i.SU)(r).suffix},null,8,["value","text"])]))}});const H=Z;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(9150),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))),_e={class:"text-left"},Ee={class:"text-left sport-action"},Se=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"},Re={class:"cell-heading"},Ie={class:"text-center"},Ue={class:"cell-heading"},ge={class:"sport-action"},Ne={class:"cell-heading"},he={class:"action-button"},ze=["onClick"],we={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",_e,(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),Se])]),(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",Re,(0,o.zw)(e.$t("admin.SPORTS.TABLE.LABEL")),1),(0,a.Uk)(" "+(0,o.zw)(t.translatedLabel),1)]),(0,a._)("td",Ie,[(0,a._)("span",Ue,(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",ge,[(0,a._)("span",Ne,(0,o.zw)(e.$t("admin.ACTION")),1),(0,a._)("div",he,[(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,ze),t.has_workouts?((0,a.wg)(),(0,a.iD)("span",we,[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 Ce=(0,P.Z)(ve,[["__scopeId","data-v-6d62af67"]]);var De=Ce,ke=n(8626),Pe=n(5020),Le=n(6595);const Me={class:"users-filters"},be={class:"search-username"},ye=["onKeyup","placeholder"];var Ge=(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",Me,[(0,a._)("div",be,[(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,ye),[[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)(Ge,[["__scopeId","data-v-627a8e91"]]);var We=Fe,Ke=n(2766),Ye=n(6558);const xe=e=>((0,a.dD)("data-v-dc12ff78"),e=e(),(0,a.Cn)(),e),Be={id:"admin-users",class:"admin-card"},$e={key:0,class:"no-users"},Ze={key:1,class:"responsive-table"},He=xe((()=>(0,a._)("th",null,"#",-1))),qe={class:"left-text"},Ve={class:"left-text"},je={class:"left-text"},Xe={class:"cell-heading"},Je={class:"cell-heading"},Qe={class:"cell-heading"},et={class:"cell-heading"},tt={class:"text-center"},nt={class:"cell-heading"},rt={class:"text-center"},at={class:"cell-heading"},ot={class:"text-center"},st={class:"cell-heading"},it={class:"text-center"},lt={class:"cell-heading"},ct=["disabled","onClick"];var ut=(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 _=(0,i.qj)((0,Ke.pm)(n.query,d,m));const E=(0,a.Fl)((()=>t.getters[l.YN.GETTERS.AUTH_USER_PROFILE])),S=(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){I("q",e.value)}function R(e,n){t.dispatch(l.RT.ACTIONS.UPDATE_USER,{username:e,admin:n})}function I(e,t){_[e]=t,"per_page"===e&&(_.page=1),u.push({path:"/admin/users",query:_})}return(0,a.wF)((()=>A(_))),(0,a.Ah)((()=>{t.dispatch(l.RT.ACTIONS.EMPTY_USERS)})),(0,a.YP)((()=>n.query),(e=>{_=(0,Ke.pm)(e,d,m,{query:_}),A(_)})),(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",Be,[(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)(We,{onFilterOnUsername:O}),(0,a.Wm)(ke.Z,{sort:(0,i.SU)(Ke.fS),order_by:d,query:(0,i.SU)(_),message:"admin.USERS.SELECTS.ORDER_BY",onUpdateSelect:I},null,8,["sort","query"]),0===(0,i.SU)(S).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",Ze,[(0,a._)("table",null,[(0,a._)("thead",null,[(0,a._)("tr",null,[He,(0,a._)("th",qe,(0,o.zw)(e.$t("user.USERNAME")),1),(0,a._)("th",Ve,(0,o.zw)(e.$t("user.EMAIL")),1),(0,a._)("th",je,(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)(S),(t=>((0,a.wg)(),(0,a.iD)("tr",{key:t.username},[(0,a._)("td",null,[(0,a._)("span",Xe,(0,o.zw)(e.$t("user.PROFILE.PICTURE")),1),(0,a.Wm)(Le.Z,{user:t},null,8,["user"])]),(0,a._)("td",null,[(0,a._)("span",Je,(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",Qe,(0,o.zw)(e.$t("user.EMAIL")),1),(0,a.Uk)(" "+(0,o.zw)(t.email),1)]),(0,a._)("td",null,[(0,a._)("span",et,(0,o.zw)(e.$t("user.PROFILE.REGISTRATION_DATE")),1),(0,a.Uk)(" "+(0,o.zw)((0,i.SU)(Ye.p6)(t.created_at,(0,i.SU)(E).timezone,(0,i.SU)(E).date_format)),1)]),(0,a._)("td",tt,[(0,a._)("span",nt,(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",rt,[(0,a._)("span",at,(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",ot,[(0,a._)("span",st,(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",it,[(0,a._)("span",lt,(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=>R(t.username,!t.admin)},(0,o.zw)(e.$t(`admin.USERS.TABLE.${t.admin?"REMOVE":"ADD"}_ADMIN_RIGHTS`)),11,ct)])])))),128))])]),(0,i.SU)(T).page?((0,a.wg)(),(0,a.j4)(Pe.Z,{key:0,path:"/admin/users",pagination:(0,i.SU)(T),query:(0,i.SU)(_)},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 dt=(0,P.Z)(ut,[["__scopeId","data-v-dc12ff78"]]);var mt=dt,_t=n(2179);const Et={class:"profile-tabs custom-checkboxes-group"},St={class:"profile-tabs-checkboxes custom-checkboxes"},Tt=["id","name","checked","disabled","onInput"];var pt=(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"APPS":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",Et,[(0,a._)("div",St,[((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).split("/")[0]===t,disabled:(0,i.SU)(s),onInput:n=>e.$router.push(l(t))},null,40,Tt),(0,a._)("span",null,(0,o.zw)(e.$t(`user.PROFILE.TABS.${t}`)),1)])])))),128))])]))}});const At=pt;var Ot=At;const Rt={id:"user-profile"},It={class:"box"};var Ut=(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","APPS"];return(e,t)=>{const s=(0,a.up)("router-view");return(0,a.wg)(),(0,a.iD)("div",Rt,[(0,a.Wm)(_t.Z,{user:(0,i.SU)(n)},null,8,["user"]),(0,a._)("div",It,[(0,a.Wm)(Ot,{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 gt=(0,P.Z)(Ut,[["__scopeId","data-v-9729cba4"]]);var Nt=gt,ht=n(1585),zt=n(6287);const wt={id:"user-preferences",class:"description-list"},ft={class:"profile-buttons"};var vt=(0,a.aZ)({__name:"UserPreferences",props:{user:null},setup(e){const t=e,n=(0,c.o)(),r=(0,a.Fl)((()=>n.getters[l.SY.GETTERS.LANGUAGE])),s=(0,a.Fl)((()=>t.user.language?zt.zK[t.user.language]:zt.zK.en)),u=(0,a.Fl)((()=>t.user.weekm?"MONDAY":"SUNDAY")),d=(0,a.Fl)((()=>t.user.timezone?t.user.timezone:"Europe/Paris")),m=(0,a.Fl)((()=>t.user.date_format?t.user.date_format:"MM/dd/yyyy")),_=(0,a.Fl)((()=>t.user.display_ascent?"DISPLAYED":"HIDDEN"));return(t,n)=>((0,a.wg)(),(0,a.iD)("div",wt,[(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)(s)),1),(0,a._)("dt",null,(0,o.zw)(t.$t("user.PROFILE.TIMEZONE"))+":",1),(0,a._)("dd",null,(0,o.zw)((0,i.SU)(d)),1),(0,a._)("dt",null,(0,o.zw)(t.$t("user.PROFILE.DATE_FORMAT"))+":",1),(0,a._)("dd",null,(0,o.zw)((0,i.SU)(Ye.mh)((0,i.SU)(m),(0,i.SU)(r))),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)(u)}`)),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._)("dt",null,(0,o.zw)(t.$t("user.PROFILE.ASCENT_DATA"))+":",1),(0,a._)("dd",null,(0,o.zw)(t.$t(`common.${(0,i.SU)(_)}`)),1)]),(0,a._)("div",ft,[(0,a._)("button",{onClick:n[0]||(n[0]=e=>t.$router.push("/profile/edit/preferences"))},(0,o.zw)(t.$t("user.PROFILE.EDIT_PREFERENCES")),1),(0,a._)("button",{onClick:n[1]||(n[1]=e=>t.$router.push("/"))},(0,o.zw)(t.$t("common.HOME")),1)])]))}});const Ct=vt;var Dt=Ct;const kt={id:"user-profile-edition",class:"center-card"};var Pt=(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",kt,[(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)(Ot,{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 Lt=Pt;var Mt=Lt,bt=n(8403);const yt={id:"user-infos-edition"},Gt={class:"profile-form form-box"},Ft={key:1,class:"info-box success-message"},Wt=["onSubmit"],Kt={class:"form-items",for:"email"},Yt=["disabled"],xt={class:"form-items",for:"password-field"},Bt={class:"form-items",for:"new-password-field"},$t={class:"form-buttons"},Zt={class:"confirm",type:"submit"};var Ht=(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])),_=(0,a.Fl)((()=>r.getters[l.YN.GETTERS.IS_SUCCESS])),E=(0,i.iH)(!1),S=(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 R(e){u.password=e}function I(e){u.new_password=e}function U(){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 g(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)((()=>_.value),(async e=>{e&&(R(""),I(""),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",yt,[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=>g(!1))},null,8,["title","message"])):(0,a.kq)("",!0),(0,a._)("div",Gt,[(0,i.SU)(S)?((0,a.wg)(),(0,a.j4)(l,{key:0,message:(0,i.SU)(S)},null,8,["message"])):(0,a.kq)("",!0),(0,i.SU)(_)?((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)(U,["prevent"])},[(0,a._)("label",Kt,[(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,Yt),[[s.nr,u.email]])]),(0,a._)("label",xt,[(0,a.Uk)((0,o.zw)(e.$t("user.CURRENT_PASSWORD"))+"* ",1),(0,a.Wm)(bt.Z,{id:"password-field",disabled:(0,i.SU)(d),password:u.password,required:!0,onUpdatePassword:R,onPasswordError:A},null,8,["disabled","password"])]),(0,a._)("label",Bt,[(0,a.Uk)((0,o.zw)(e.$t("user.NEW_PASSWORD"))+" ",1),(0,a.Wm)(bt.Z,{id:"new-password-field",disabled:(0,i.SU)(d),checkStrength:!0,password:u.new_password,isSuccess:!1,onUpdatePassword:I,onPasswordError:A},null,8,["disabled","password"])]),(0,a._)("div",$t,[(0,a._)("button",Zt,(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=>g(!0)),["prevent"]))},(0,o.zw)(e.$t("buttons.DELETE_MY_ACCOUNT")),1)])],42,Wt)])])}}});const qt=(0,P.Z)(Ht,[["__scopeId","data-v-37b8c4c8"]]);var Vt=qt,jt=n(4850);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 _n=(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,Ye.p6)(t.user.created_at,t.user.timezone,t.user.date_format):"")),d=(0,a.Fl)((()=>n.getters[l.YN.GETTERS.USER_LOADING])),m=(0,a.Fl)((()=>n.getters[l.SY.GETTERS.ERROR_MESSAGES]));function _(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,jt.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 S(){n.dispatch(l.YN.ACTIONS.UPDATE_USER_PROFILE,r)}return(0,a.bv)((()=>{t.user&&_(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)(S,["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)(_n,[["__scopeId","data-v-5e5a4552"]]);var Sn=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"],Rn={class:"picture-help"},In={class:"info-box"},Un=Tn((()=>(0,a._)("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1))),gn={class:"picture-buttons"},Nn=["disabled"];var hn=(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])),_=m.value.max_single_file_size?(0,u.Z)(m.value.max_single_file_size):"",E=(0,i.iH)(null);function S(){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)(Le.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",Rn,[(0,a._)("span",In,[Un,(0,a.Uk)(" "+(0,o.zw)(e.$t("workouts.MAX_SIZE"))+": "+(0,o.zw)((0,i.SU)(_)),1)])]),(0,a._)("div",gn,[(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:S},(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 zn=(0,P.Z)(hn,[["__scopeId","data-v-687e9604"]]);var wn=zn;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"},Cn=["value","disabled","onKeydown"],Dn=["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 _(e){return e.toLowerCase().match(c.value.toLowerCase())}function E(e){m.value=e}function S(e){c.value=e,u.value=!1,t("updateTimezone",e)}function T(e){e.preventDefault(),d.value?.firstElementChild?.innerHTML&&S(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=>S((0,i.SU)(r))),["esc"])),(0,s.D2)(T,["enter"])],onInput:p},null,40,Cn),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=>_(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=>S(e),onMouseover:e=>E(t),autofocus:t===m.value},(0,o.zw)(e),43,Dn)))),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"},Fn=["disabled"],Wn=["value"],Kn={class:"form-items"},Yn={class:"form-items"},xn=["disabled"],Bn=["value"],$n={class:"form-items form-checkboxes"},Zn={class:"checkboxes-label"},Hn={class:"checkboxes"},qn=["id","name","checked","disabled","onInput"],Vn={class:"checkbox-label"},jn={class:"form-items form-checkboxes"},Xn={class:"checkboxes-label"},Jn={class:"checkboxes"},Qn=["id","name","checked","disabled","onInput"],er={class:"checkbox-label"},tr={class:"form-items form-checkboxes"},nr={class:"checkboxes-label"},rr={class:"checkboxes"},ar=["id","name","checked","disabled","onInput"],or={class:"checkbox-label"},sr={class:"form-buttons"},ir={class:"confirm",type:"submit"};var lr=(0,a.aZ)({__name:"UserPreferencesEdition",props:{user:null},setup(e){const t=e,n=(0,c.o)(),r=(0,i.qj)({display_ascent:!0,imperial_units:!1,language:"",timezone:"Europe/Paris",date_format:"dd/MM/yyyy",weekm:!1}),u=[{label:"SUNDAY",value:!1},{label:"MONDAY",value:!0}],d=[{label:"METRIC",value:!1},{label:"IMPERIAL",value:!0}],m=[{label:"DISPLAYED",value:!0},{label:"HIDDEN",value:!1}],_=(0,a.Fl)((()=>n.getters[l.YN.GETTERS.USER_LOADING])),E=(0,a.Fl)((()=>n.getters[l.SY.GETTERS.ERROR_MESSAGES])),S=(0,a.Fl)((()=>(0,Ye.d2)((new Date).toUTCString(),t.user.timezone,r.language)));function T(e){r.display_ascent=e.display_ascent,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.date_format=e.date_format?e.date_format:"dd/MM/yyyy",r.weekm=!!e.weekm&&e.weekm}function p(){n.dispatch(l.YN.ACTIONS.UPDATE_USER_PREFERENCES,r)}function A(e){r.timezone=e}function O(e){r.display_ascent=e}function R(e){r.imperial_units=e}function I(e){r.weekm=e}return(0,a.bv)((()=>{t.user&&T(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)(E)?((0,a.wg)(),(0,a.j4)(n,{key:0,message:(0,i.SU)(E)},null,8,["message"])):(0,a.kq)("",!0),(0,a._)("form",{onSubmit:(0,s.iM)(p,["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)(_)},[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,i.SU)(zt.mT),(e=>((0,a.wg)(),(0,a.iD)("option",{value:e.value,key:e.value},(0,o.zw)(e.label),9,Wn)))),128))],8,Fn),[[s.bM,r.language]])]),(0,a._)("label",Kn,[(0,a.Uk)((0,o.zw)(e.$t("user.PROFILE.TIMEZONE"))+" ",1),(0,a.Wm)(Ln,{input:r.timezone,disabled:(0,i.SU)(_),onUpdateTimezone:A},null,8,["input","disabled"])]),(0,a._)("label",Yn,[(0,a.Uk)((0,o.zw)(e.$t("user.PROFILE.DATE_FORMAT"))+" ",1),(0,a.wy)((0,a._)("select",{id:"date_format","onUpdate:modelValue":t[1]||(t[1]=e=>r.date_format=e),disabled:(0,i.SU)(_)},[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,i.SU)(S),(e=>((0,a.wg)(),(0,a.iD)("option",{value:e.value,key:e.value},(0,o.zw)(e.label),9,Bn)))),128))],8,xn),[[s.bM,r.date_format]])]),(0,a._)("div",$n,[(0,a._)("span",Zn,(0,o.zw)(e.$t("user.PROFILE.FIRST_DAY_OF_WEEK")),1),(0,a._)("div",Hn,[((0,a.wg)(),(0,a.iD)(a.HY,null,(0,a.Ko)(u,(t=>(0,a._)("label",{key:t.label},[(0,a._)("input",{type:"radio",id:t.label,name:t.label,checked:t.value===r.weekm,disabled:(0,i.SU)(_),onInput:e=>I(t.value)},null,40,qn),(0,a._)("span",Vn,(0,o.zw)(e.$t(`user.PROFILE.${t.label}`)),1)]))),64))])]),(0,a._)("div",jn,[(0,a._)("span",Xn,(0,o.zw)(e.$t("user.PROFILE.UNITS.LABEL")),1),(0,a._)("div",Jn,[((0,a.wg)(),(0,a.iD)(a.HY,null,(0,a.Ko)(d,(t=>(0,a._)("label",{key:t.label},[(0,a._)("input",{type:"radio",id:t.label,name:t.label,checked:t.value===r.imperial_units,disabled:(0,i.SU)(_),onInput:e=>R(t.value)},null,40,Qn),(0,a._)("span",er,(0,o.zw)(e.$t(`user.PROFILE.UNITS.${t.label}`)),1)]))),64))])]),(0,a._)("div",tr,[(0,a._)("span",nr,(0,o.zw)(e.$t("user.PROFILE.ASCENT_DATA")),1),(0,a._)("div",rr,[((0,a.wg)(),(0,a.iD)(a.HY,null,(0,a.Ko)(m,(t=>(0,a._)("label",{key:t.label},[(0,a._)("input",{type:"radio",id:t.label,name:t.label,checked:t.value===r.display_ascent,disabled:(0,i.SU)(_),onInput:e=>O(t.value)},null,40,ar),(0,a._)("span",or,(0,o.zw)(e.$t(`common.${t.label}`)),1)]))),64))])]),(0,a._)("div",sr,[(0,a._)("button",ir,(0,o.zw)(e.$t("buttons.SUBMIT")),1),(0,a._)("button",{class:"cancel",onClick:t[2]||(t[2]=(0,s.iM)((t=>e.$router.push("/profile/preferences")),["prevent"]))},(0,o.zw)(e.$t("buttons.CANCEL")),1)])],40,yn)])])}}});const cr=(0,P.Z)(lr,[["__scopeId","data-v-065d5e6c"]]);var ur=cr;const dr=["profile:read","profile:write","users:read","users:write","workouts:read","workouts:write"],mr=["application:write"],_r={id:"new-oauth2-app"},Er={id:"new-oauth2-title"},Sr={id:"apps-form"},Tr=["onSubmit"],pr={class:"form-items"},Ar={class:"form-item"},Or={for:"app-name"},Rr={class:"form-item"},Ir={for:"app-description"},Ur={class:"form-item"},gr={for:"app-url"},Nr={class:"form-item"},hr={for:"app-redirect-uri"},zr={class:"form-item-scope"},wr={class:"form-item-scope-label"},fr={class:"scope-label"},vr=["name","checked","onChange"],Cr=["innerHTML"],Dr={class:"form-buttons"},kr=["disabled"];var Pr=(0,a.aZ)({__name:"AddUserApp",props:{authUser:null},setup(e){const t=e,n=(0,c.o)(),r=(0,i.qj)({client_name:"",client_uri:"",client_description:"",redirect_uri:""}),u=(0,i.qj)([]),d=(0,a.Fl)((()=>S(t.authUser,mr,dr)));function m(){const e={client_name:r.client_name,client_description:r.client_description,client_uri:r.client_uri,redirect_uris:[r.redirect_uri],scope:u.sort().join(" ")};n.dispatch(l.Km.ACTIONS.CREATE_CLIENT,e)}function _(e){r.client_description=e}function E(e){const t=u.indexOf(e);t>-1?u.splice(t,1):u.push(e)}function S(e,t,n){const r=[...n];return e.admin&&r.push(...t),r.sort()}return(e,t)=>{const n=(0,a.up)("CustomTextArea");return(0,a.wg)(),(0,a.iD)("div",_r,[(0,a._)("h1",Er,(0,o.zw)(e.$t("oauth2.ADD_A_NEW_APP")),1),(0,a._)("div",Sr,[(0,a._)("form",{onSubmit:(0,s.iM)(m,["prevent"])},[(0,a._)("div",pr,[(0,a._)("div",Ar,[(0,a._)("label",Or,(0,o.zw)(e.$t("oauth2.APP.NAME"))+"*",1),(0,a.wy)((0,a._)("input",{id:"app-name",type:"text",required:"","onUpdate:modelValue":t[0]||(t[0]=e=>r.client_name=e)},null,512),[[s.nr,r.client_name]])]),(0,a._)("div",Rr,[(0,a._)("label",Ir,(0,o.zw)(e.$t("oauth2.APP.DESCRIPTION")),1),(0,a.Wm)(n,{name:"app-description",charLimit:200,input:r.description,onUpdateValue:_},null,8,["input"])]),(0,a._)("div",Ur,[(0,a._)("label",gr,(0,o.zw)(e.$t("oauth2.APP.URL"))+"*",1),(0,a.wy)((0,a._)("input",{id:"app-url",type:"text",required:"","onUpdate:modelValue":t[1]||(t[1]=e=>r.client_uri=e)},null,512),[[s.nr,r.client_uri]])]),(0,a._)("div",Nr,[(0,a._)("label",hr,(0,o.zw)(e.$t("oauth2.APP.REDIRECT_URL"))+"* ",1),(0,a.wy)((0,a._)("input",{id:"app-redirect-uri",type:"text",required:"","onUpdate:modelValue":t[2]||(t[2]=e=>r.redirect_uri=e)},null,512),[[s.nr,r.redirect_uri]])]),(0,a._)("div",zr,[(0,a._)("div",wr,(0,o.zw)(e.$t("oauth2.APP.SCOPE.LABEL"))+"* ",1),((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,i.SU)(d),(t=>((0,a.wg)(),(0,a.iD)("div",{class:"form-item-scope-checkboxes",key:t},[(0,a._)("label",fr,[(0,a._)("input",{type:"checkbox",name:t,checked:u.includes(t),onChange:e=>E(t)},null,40,vr),(0,a._)("code",null,(0,o.zw)(t),1)]),(0,a._)("p",{class:"scope-description",innerHTML:e.$t(`oauth2.APP.SCOPE.${t}_DESCRIPTION`)},null,8,Cr)])))),128))])]),(0,a._)("div",Dr,[(0,a._)("button",{class:"confirm",type:"submit",disabled:0===u.length},(0,o.zw)(e.$t("buttons.SUBMIT")),9,kr),(0,a._)("button",{class:"cancel",onClick:t[3]||(t[3]=(0,s.iM)((()=>e.$router.push("/profile/apps")),["prevent"]))},(0,o.zw)(e.$t("buttons.CANCEL")),1)])],40,Tr)])])}}});const Lr=(0,P.Z)(Pr,[["__scopeId","data-v-0657ee77"]]);var Mr=Lr;const br={id:"authorize-oauth2-app"},yr={key:0},Gr={id:"authorize-oauth2-title"},Fr={class:"oauth2-access description-list"},Wr={class:"client-scope"},Kr=["innerHTML"],Yr={class:"authorize-oauth2-buttons"},xr={key:1},Br={class:"no-app"};var $r=(0,a.aZ)({__name:"AuthorizeUserApp",setup(e){const t=(0,r.yj)(),n=(0,c.o)(),s=(0,a.Fl)((()=>n.getters[l.Km.GETTERS.CLIENT])),u=(0,a.Fl)((()=>n.getters[l.SY.GETTERS.ERROR_MESSAGES]));function d(){t.query.client_id&&"string"===typeof t.query.client_id&&n.dispatch(l.Km.ACTIONS.GET_CLIENT_BY_CLIENT_ID,t.query.client_id)}function m(){n.dispatch(l.Km.ACTIONS.AUTHORIZE_CLIENT,{client_id:`${t.query.client_id}`,redirect_uri:`${t.query.redirect_uri}`,response_type:`${t.query.response_type}`,scope:`${t.query.scope}`,state:`${t.query.state?t.query.state:""}`,code_challenge:`${t.query.code_challenge?t.query.code_challenge:""}`,code_challenge_method:`${t.query.code_challenge_method?t.query.code_challenge_method:""}`})}return(0,a.wF)((()=>d())),(e,t)=>{const n=(0,a.up)("router-link"),r=(0,a.up)("i18n-t"),l=(0,a.up)("ErrorMessage");return(0,a.wg)(),(0,a.iD)("div",br,[(0,i.SU)(s).client_id?((0,a.wg)(),(0,a.iD)("div",yr,[(0,a._)("h1",Gr,[(0,a.Wm)(r,{keypath:"oauth2.AUTHORIZE_APP"},{default:(0,a.w5)((()=>[(0,a.Wm)(n,{to:{name:"UserApp",params:{id:(0,i.SU)(s).id}}},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)((0,i.SU)(s).name),1)])),_:1},8,["to"])])),_:1})]),(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._)("div",Fr,[(0,a._)("p",null,(0,o.zw)(e.$t("oauth2.APP_REQUESTING_ACCESS")),1),(0,a._)("dl",null,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,i.SU)(s).scope.split(" "),(t=>((0,a.wg)(),(0,a.iD)(a.HY,{key:t},[(0,a._)("dt",Wr,[(0,a._)("code",null,(0,o.zw)(t),1)]),(0,a._)("dd",{innerHTML:e.$t(`oauth2.APP.SCOPE.${t}_DESCRIPTION`)},null,8,Kr)],64)))),128))]),(0,a._)("div",Yr,[(0,a._)("button",{class:"danger",onClick:m},(0,o.zw)(e.$t("buttons.AUTHORIZE")),1),(0,a._)("button",{class:"cancel",onClick:t[0]||(t[0]=t=>e.$router.push("/profile/apps"))},(0,o.zw)(e.$t("buttons.CANCEL")),1)])])])):((0,a.wg)(),(0,a.iD)("div",xr,[(0,a._)("p",Br,(0,o.zw)(e.$t("oauth2.NO_APP")),1),(0,a._)("button",{onClick:t[1]||(t[1]=t=>e.$router.push("/profile/apps"))},(0,o.zw)(e.$t("buttons.BACK")),1)]))])}}});const Zr=(0,P.Z)($r,[["__scopeId","data-v-3b2fe9ed"]]);var Hr=Zr;const qr={id:"oauth2-apps"};var Vr=(0,a.aZ)({__name:"index",props:{user:null},setup(e){const t=e,n=(0,c.o)(),{user:r}=(0,i.BK)(t);return(0,a.Ah)((()=>{n.commit(l.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),n.commit(l.Km.MUTATIONS.SET_CLIENTS,[])})),(e,t)=>{const n=(0,a.up)("router-view");return(0,a.wg)(),(0,a.iD)("div",qr,[(0,a.Wm)(n,{authUser:(0,i.SU)(r)},null,8,["authUser"])])}}});const jr=Vr;var Xr=jr;const Jr={id:"oauth2-app",class:"description-list"},Qr={key:1},ea={key:0,class:"info-box success-message"},ta=["title"],na={key:0},ra={key:1,class:"app-secret"},aa=["title"],oa={class:"client-scopes"},sa={class:"app-buttons"},ia={key:2},la={class:"no-app"};var ca=(0,a.aZ)({__name:"UserApp",props:{authUser:null,afterCreation:{type:Boolean,default:!1}},setup(e){const t=e,n=(0,r.yj)(),s=(0,c.o)(),{afterCreation:u,authUser:d}=(0,i.BK)(t),m=(0,a.Fl)((()=>s.getters[l.Km.GETTERS.CLIENT])),_=(0,a.Fl)((()=>s.getters[l.Km.GETTERS.REVOCATION_SUCCESSFUL])),E=(0,i.iH)(!1),S=(0,i.iH)(null),T=(0,i.iH)(!1),p=(0,i.iH)(!1),A=(0,i.iH)(!1);function O(){!u.value&&n.params.id&&"string"===typeof n.params.id&&s.dispatch(l.Km.ACTIONS.GET_CLIENT_BY_ID,+n.params.id)}function R(e){S.value=e?"oauth2.APP_DELETION_CONFIRMATION":"oauth2.TOKENS_REVOCATION_CONFIRMATION",I(!0)}function I(e){E.value=e,e||(S.value=null)}function U(e){"oauth2.APP_DELETION_CONFIRMATION"===S.value?s.dispatch(l.Km.ACTIONS.DELETE_CLIENT,e):s.dispatch(l.Km.ACTIONS.REVOKE_ALL_TOKENS,e)}function g(){navigator.clipboard.writeText(m.value.client_id),T.value=!0,p.value=!1,setTimeout((()=>{T.value=!1}),3e3)}function N(){m.value.client_secret&&(navigator.clipboard.writeText(m.value.client_secret),p.value=!0,T.value=!1,setTimeout((()=>{p.value=!1}),3e3))}return(0,a.wF)((()=>{O(),navigator.clipboard&&(A.value=!0)})),(0,a.Ah)((()=>{s.commit(l.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),s.commit(l.Km.MUTATIONS.EMPTY_CLIENT),s.commit(l.Km.MUTATIONS.SET_REVOCATION_SUCCESSFUL,!1)})),(0,a.YP)((()=>_.value),(e=>{e&&I(!1)})),(e,t)=>{const n=(0,a.up)("Modal");return(0,a.wg)(),(0,a.iD)("div",Jr,[E.value?((0,a.wg)(),(0,a.j4)(n,{key:0,title:e.$t("common.CONFIRMATION"),message:e.$t(S.value),onConfirmAction:t[0]||(t[0]=e=>U((0,i.SU)(m).id)),onCancelAction:t[1]||(t[1]=e=>I(!1))},null,8,["title","message"])):(0,a.kq)("",!0),(0,i.SU)(m)&&(0,i.SU)(m).client_id?((0,a.wg)(),(0,a.iD)("div",Qr,[(0,i.SU)(u)||(0,i.SU)(_)?((0,a.wg)(),(0,a.iD)("div",ea,(0,o.zw)(e.$t((0,i.SU)(u)?"oauth2.APP_CREATED_SUCCESSFULLY":"oauth2.TOKENS_REVOKED")),1)):(0,a.kq)("",!0),(0,a._)("dl",null,[(0,a._)("dt",null,(0,o.zw)(e.$t("oauth2.APP.CLIENT_ID"))+":",1),(0,a._)("dd",null,[(0,a.Uk)((0,o.zw)((0,i.SU)(m).client_id)+" ",1),(0,i.SU)(u)&&A.value?((0,a.wg)(),(0,a.iD)("i",{key:0,class:(0,o.C_)("fa fa-"+(T.value?"check":"copy")),"aria-hidden":"true",title:e.$t("oauth2.COPY_TO_CLIPBOARD"),onClick:g},null,10,ta)):(0,a.kq)("",!0)]),(0,i.SU)(u)&&(0,i.SU)(m).client_secret?((0,a.wg)(),(0,a.iD)("dt",na,(0,o.zw)(e.$t("oauth2.APP.CLIENT_SECRET"))+": ",1)):(0,a.kq)("",!0),(0,i.SU)(u)&&(0,i.SU)(m).client_secret?((0,a.wg)(),(0,a.iD)("dd",ra,[(0,a.Uk)((0,o.zw)((0,i.SU)(m).client_secret)+" ",1),A.value?((0,a.wg)(),(0,a.iD)("i",{key:0,class:(0,o.C_)("fa fa-"+(p.value?"check":"copy")),"aria-hidden":"true",title:e.$t("oauth2.COPY_TO_CLIPBOARD"),onClick:N},null,10,aa)):(0,a.kq)("",!0)])):(0,a.kq)("",!0),(0,a._)("dt",null,(0,o.zw)((0,o.kC)(e.$t("oauth2.APP.ISSUE_AT")))+":",1),(0,a._)("dd",null,(0,o.zw)((0,i.SU)(Ye.p6)((0,i.SU)(m).issued_at,(0,i.SU)(d).timezone,(0,i.SU)(d).date_format)),1),(0,a._)("dt",null,(0,o.zw)(e.$t("oauth2.APP.NAME"))+":",1),(0,a._)("dd",null,(0,o.zw)((0,i.SU)(m).name),1),(0,a._)("dt",null,(0,o.zw)(e.$t("oauth2.APP.DESCRIPTION"))+":",1),(0,a._)("dd",{class:(0,o.C_)({"no-description":!(0,i.SU)(m).client_description})},(0,o.zw)((0,i.SU)(m).client_description?(0,i.SU)(m).client_description:e.$t("oauth2.NO_DESCRIPTION")),3),(0,a._)("dt",null,(0,o.zw)(e.$t("oauth2.APP.URL"))+":",1),(0,a._)("dd",null,(0,o.zw)((0,i.SU)(m).website),1),(0,a._)("dt",null,(0,o.zw)(e.$t("oauth2.APP.REDIRECT_URL"))+":",1),(0,a._)("dd",null,(0,o.zw)((0,i.SU)(m).redirect_uris.length>0?(0,i.SU)(m).redirect_uris[0]:""),1),(0,a._)("dt",null,(0,o.zw)(e.$t("oauth2.APP.SCOPE.LABEL"))+":",1),(0,a._)("dd",oa,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,i.SU)(m).scope.split(" "),(e=>((0,a.wg)(),(0,a.iD)("span",{class:"client-scope",key:e},[(0,a._)("code",null,(0,o.zw)(e),1)])))),128))])]),(0,a._)("div",sa,[(0,a._)("button",{class:"danger",onClick:t[2]||(t[2]=e=>R(!1))},(0,o.zw)(e.$t("oauth2.REVOKE_ALL_TOKENS")),1),(0,a._)("button",{class:"danger",onClick:t[3]||(t[3]=e=>R(!0))},(0,o.zw)(e.$t("oauth2.DELETE_APP")),1),(0,a._)("button",{onClick:t[4]||(t[4]=t=>e.$router.push("/profile/apps"))},(0,o.zw)(e.$t("buttons.BACK")),1)])])):((0,a.wg)(),(0,a.iD)("div",ia,[(0,a._)("p",la,(0,o.zw)(e.$t("oauth2.NO_APP")),1),(0,a._)("button",{onClick:t[5]||(t[5]=t=>e.$router.push("/profile/apps"))},(0,o.zw)(e.$t("buttons.BACK")),1)]))])}}});const ua=(0,P.Z)(ca,[["__scopeId","data-v-3a844fa2"]]);var da=ua;const ma={id:"oauth2-apps-list"},_a={class:"apps-list"},Ea={key:0},Sa={class:"app-issued-at"},Ta={key:1,class:"no-apps"},pa={class:"app-list-buttons"};var Aa=(0,a.aZ)({__name:"UserAppsList",props:{authUser:null},setup(e){const t=e,n=(0,c.o)(),s=(0,r.yj)(),{authUser:u}=(0,i.BK)(t),d=(0,a.Fl)((()=>n.getters[l.Km.GETTERS.CLIENTS])),m=(0,a.Fl)((()=>n.getters[l.Km.GETTERS.CLIENTS_PAGINATION]));let _=E(s.query);function E(e){const t={};return e.page&&(t.page=(0,Ke.z_)(e.page,Ke.Hf)),t}function S(e){n.dispatch(l.Km.ACTIONS.GET_CLIENTS,e)}return(0,a.wF)((()=>{S(_)})),(0,a.YP)((()=>s.query),(async e=>{_=E(e),S(_)})),(e,t)=>{const n=(0,a.up)("router-link");return(0,a.wg)(),(0,a.iD)("div",ma,[(0,a._)("p",_a,(0,o.zw)(e.$t("oauth2.APPS_LIST")),1),(0,i.SU)(d).length>0?((0,a.wg)(),(0,a.iD)("ul",Ea,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,i.SU)(d),(t=>((0,a.wg)(),(0,a.iD)("li",{key:t.client_id},[(0,a.Wm)(n,{to:{name:"UserApp",params:{id:t.id}}},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(t.name),1)])),_:2},1032,["to"]),(0,a._)("span",Sa,(0,o.zw)(e.$t("oauth2.APP.ISSUE_AT"))+" "+(0,o.zw)((0,i.SU)(Ye.p6)(t.issued_at,(0,i.SU)(u).timezone,(0,i.SU)(u).date_format)),1)])))),128))])):((0,a.wg)(),(0,a.iD)("div",Ta,(0,o.zw)(e.$t("oauth2.NO_APPS")),1)),(0,i.SU)(d).length>0?((0,a.wg)(),(0,a.j4)(Pe.Z,{key:2,pagination:(0,i.SU)(m),path:"/profile/apps",query:(0,i.SU)(_)},null,8,["pagination","query"])):(0,a.kq)("",!0),(0,a._)("div",pa,[(0,a._)("button",{onClick:t[0]||(t[0]=t=>e.$router.push("/profile/apps/new"))},(0,o.zw)(e.$t("oauth2.NEW_APP")),1),(0,a._)("button",{onClick:t[1]||(t[1]=t=>e.$router.push("/"))},(0,o.zw)(e.$t("common.HOME")),1)])])}}});const Oa=(0,P.Z)(Aa,[["__scopeId","data-v-efa45ea0"]]);var Ra=Oa;const Ia={id:"user-sport-preferences"},Ua={key:0,class:"responsive-table"},ga={class:"mobile-display"},Na={key:0,class:"profile-buttons mobile-display"},ha={key:1,class:"profile-buttons"},za={class:"text-left"},wa={key:0},fa={class:"cell-heading"},va=["value"],Ca={class:"cell-heading"},Da={key:0,class:"disabled-message"},ka={key:1,class:"fa fa-refresh fa-spin fa-fw"},Pa={class:"cell-heading"},La={class:"cell-heading"},Ma=["checked"],ba={class:"cell-heading"},ya=["value"],Ga={key:1},Fa={key:0,class:"action-buttons"},Wa={class:"cell-heading"},Ka=["onClick"],Ya={key:1,class:"edition-buttons"},xa=["disabled"],Ba=["disabled","onClick"],$a=["disabled"],Za={key:0,class:"profile-buttons"},Ha={key:1,class:"profile-buttons"};var qa=(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="#838383",_=(0,a.f3)("sportColors"),E=(0,a.Fl)((()=>n.getters[l.O8.GETTERS.SPORTS])),S=(0,a.Fl)((()=>(0,le.xH)(E.value,r,"is_active",d.value.sports_list))),T=(0,a.Fl)((()=>n.getters[l.YN.GETTERS.USER_LOADING])),p=(0,a.Fl)((()=>n.getters[l.SY.GETTERS.ERROR_MESSAGES])),A=(0,i.qj)({sport_id:0,color:null,is_active:!0,stopped_speed_threshold:1});function O(e){null!==e?(A.sport_id=e.id,A.color=e.color?e.color:_?_[e.label]:m,A.is_active=e.is_active_for_user,A.stopped_speed_threshold=e.stopped_speed_threshold):N()}function R(e){return A.sport_id===e}function I(e){A.color=e.target.value}function U(e){A.stopped_speed_threshold=parseFloat(e.target.value)}function g(e){A.is_active=e.target.checked}function N(){A.sport_id=0,A.color=null,A.is_active=!0,A.stopped_speed_threshold=1,n.commit(l.SY.MUTATIONS.EMPTY_ERROR_MESSAGES)}function h(e){e.preventDefault(),n.dispatch(l.YN.ACTIONS.UPDATE_USER_SPORT_PREFERENCES,A)}function z(e,t){e.preventDefault(),n.dispatch(l.YN.ACTIONS.RESET_USER_SPORT_PREFERENCES,t)}return(0,a.YP)((()=>T.value),(e=>{e||p.value||N()})),(e,t)=>{const n=(0,a.up)("SportImage"),r=(0,a.up)("ErrorMessage");return(0,a.wg)(),(0,a.iD)("div",Ia,[(0,i.SU)(E).length>0?((0,a.wg)(),(0,a.iD)("div",Ua,[(0,a._)("div",ga,[(0,i.SU)(u)?((0,a.wg)(),(0,a.iD)("div",Na,[(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",ha,[(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",za,(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",wa,(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)(S),(s=>((0,a.wg)(),(0,a.iD)("tr",{key:s.id},[(0,a._)("td",null,[(0,a._)("span",fa,(0,o.zw)(e.$t("user.PROFILE.SPORT.COLOR")),1),R(s.id)?((0,a.wg)(),(0,a.iD)("input",{key:0,class:"sport-color",type:"color",value:A.color,onInput:I},null,40,va)):((0,a.wg)(),(0,a.j4)(n,{key:1,title:s.translatedLabel,"sport-label":s.label,color:s.color?s.color:(0,i.SU)(_)[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",Ca,(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",Da," ("+(0,o.zw)(e.$t("user.PROFILE.SPORT.DISABLED_BY_ADMIN"))+") ",1)),(0,i.SU)(T)&&R(s.id)?((0,a.wg)(),(0,a.iD)("i",ka)):(0,a.kq)("",!0),(0,i.SU)(p)&&A.sport_id===s.id?((0,a.wg)(),(0,a.j4)(r,{key:2,message:(0,i.SU)(p)},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",Pa,(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",La,(0,o.zw)(e.$t("user.PROFILE.SPORT.IS_ACTIVE")),1),R(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,Ma)):((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",ba,(0,o.zw)(e.$t("user.PROFILE.SPORT.STOPPED_SPEED_THRESHOLD")),1),R(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:A.stopped_speed_threshold,onInput:U},null,40,ya)):((0,a.wg)(),(0,a.iD)("span",Ga,(0,o.zw)(s.stopped_speed_threshold),1))],2),(0,i.SU)(u)?((0,a.wg)(),(0,a.iD)("td",Fa,[(0,a._)("span",Wa,(0,o.zw)(e.$t("user.PROFILE.SPORT.ACTION")),1),0===A.sport_id?((0,a.wg)(),(0,a.iD)("button",{key:0,onClick:e=>O(s)},(0,o.zw)(e.$t("buttons.EDIT")),9,Ka)):(0,a.kq)("",!0),R(s.id)?((0,a.wg)(),(0,a.iD)("div",Ya,[(0,a._)("button",{disabled:(0,i.SU)(T),onClick:h},(0,o.zw)(e.$t("buttons.SUBMIT")),9,xa),(0,a._)("button",{disabled:(0,i.SU)(T),onClick:e=>z(e,s.id)},(0,o.zw)(e.$t("buttons.RESET")),9,Ba),(0,a._)("button",{disabled:(0,i.SU)(T),onClick:t[3]||(t[3]=e=>O(null))},(0,o.zw)(e.$t("buttons.CANCEL")),9,$a)])):(0,a.kq)("",!0)])):(0,a.kq)("",!0)])))),128))])]),(0,i.SU)(u)?((0,a.wg)(),(0,a.iD)("div",Za,[(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",Ha,[(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 Va=(0,P.Z)(qa,[["__scopeId","data-v-74e52489"]]);var ja=Va,Xa=n(2894);const Ja=e=>((0,a.dD)("data-v-74257266"),e=e(),(0,a.Cn)(),e),Qa={class:"about-text"},eo=["innerHTML"],to=Ja((()=>(0,a._)("i",{class:"fa fa-book fa-padding","aria-hidden":"true"},null,-1))),no={href:"https://samr1.github.io/FitTrackee/",target:"_blank",rel:"noopener noreferrer"},ro=Ja((()=>(0,a._)("i",{class:"fa fa-github fa-padding","aria-hidden":"true"},null,-1))),ao={href:"https://github.com/SamR1/FitTrackee",target:"_blank",rel:"noopener noreferrer"},oo=Ja((()=>(0,a._)("i",{class:"fa fa-balance-scale fa-padding","aria-hidden":"true"},null,-1))),so=Ja((()=>(0,a._)("a",{href:"https://choosealicense.com/licenses/agpl-3.0/",target:"_blank",rel:"noopener noreferrer"}," AGPLv3 ",-1))),io={key:0},lo=Ja((()=>(0,a._)("i",{class:"fa fa-envelope-o fa-padding","aria-hidden":"true"},null,-1))),co=["href"];var uo=(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",Qa,[(0,a._)("div",null,[(0,a._)("p",{class:"error-message",innerHTML:e.$t("about.FITTRACKEE_DESCRIPTION")},null,8,eo),(0,a._)("p",null,[to,(0,a._)("a",no,(0,o.zw)((0,o.kC)(e.$t("common.DOCUMENTATION"))),1)]),(0,a._)("p",null,[ro,(0,a._)("a",ao,(0,o.zw)(e.$t("about.SOURCE_CODE")),1)]),(0,a._)("p",null,[oo,(0,a.Wm)(r,{keypath:"about.FITTRACKEE_LICENSE"},{default:(0,a.w5)((()=>[so])),_:1})]),(0,i.SU)(n).admin_contact?((0,a.wg)(),(0,a.iD)("div",io,[lo,(0,a._)("a",{href:`mailto:${(0,i.SU)(n).admin_contact}`},(0,o.zw)(e.$t("about.CONTACT_ADMIN")),9,co)])):(0,a.kq)("",!0)])])}}});const mo=(0,P.Z)(uo,[["__scopeId","data-v-74257266"]]);var _o=mo;const Eo={id:"bike"},So=["src"];function To(e,t){return(0,a.wg)(),(0,a.iD)("div",Eo,[(0,a._)("img",{class:"bike-img",src:"/img/bike.svg",alt:"mountain bike"},null,8,So)])}const po={},Ao=(0,P.Z)(po,[["render",To],["__scopeId","data-v-795f7f5f"]]);var Oo=Ao;const Ro={id:"about",class:"view"},Io={class:"container"},Uo={class:"container-sub"},go={class:"container-sub about-details"};var No=(0,a.aZ)({__name:"AboutView",setup(e){return(e,t)=>((0,a.wg)(),(0,a.iD)("div",Ro,[(0,a._)("div",Io,[(0,a._)("div",Uo,[(0,a.Wm)(Oo)]),(0,a._)("div",go,[(0,a.Wm)(_o)])])]))}});const ho=(0,P.Z)(No,[["__scopeId","data-v-bffb50d0"]]);var zo=ho,wo=n(1818),fo=n(2056);const vo=e=>((0,a.dD)("data-v-96abcc38"),e=e(),(0,a.Cn)(),e),Co={class:"timeline-workout"},Do={class:"box"},ko={class:"workout-user-date"},Po={class:"workout-user"},Lo=["title"],Mo={key:0},bo={key:1,class:"no-map"},yo={class:"img"},Go={class:"data"},Fo=vo((()=>(0,a._)("i",{class:"fa fa-clock-o","aria-hidden":"true"},null,-1))),Wo={key:0},Ko={class:"data"},Yo=vo((()=>(0,a._)("i",{class:"fa fa-road","aria-hidden":"true"},null,-1))),xo={key:0,class:"data elevation"},Bo=["alt"],$o={class:"data-values"},Zo={key:1,class:"data altitude"},Ho=vo((()=>(0,a._)("i",{class:"fa fa-location-arrow","aria-hidden":"true"},null,-1))),qo={class:"data-values"};var Vo=(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",Co,[(0,a._)("div",Do,[(0,a._)("div",ko,[(0,a._)("div",Po,[(0,a.Wm)(Le.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)(Ye.p6)((0,i.SU)(s).workout_date,(0,i.SU)(r).timezone,(0,i.SU)(r).date_format)},(0,o.zw)((0,i.SU)(wo.Z)(new Date((0,i.SU)(s).workout_date),new Date,{addSuffix:!0,locale:(0,i.SU)(m)})),9,Lo)):(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",Mo,[(0,i.SU)(s).with_gpx?((0,a.wg)(),(0,a.j4)(fo.Z,{key:0,workout:(0,i.SU)(s)},null,8,["workout"])):((0,a.wg)(),(0,a.iD)("div",bo,(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",yo,[(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",Go,[Fo,(0,i.SU)(s)?((0,a.wg)(),(0,a.iD)("span",Wo,(0,o.zw)((0,i.SU)(s).moving),1)):(0,a.kq)("",!0)]),(0,a._)("div",Ko,[Yo,(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",xo,[(0,a._)("img",{class:"mountains",src:"/img/workouts/mountains.svg",alt:e.$t("workouts.ELEVATION")},null,8,Bo),(0,a._)("div",$o,[(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),(0,a.Uk)("/ "),(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",Zo,[Ho,(0,a._)("div",qo,[(0,a.Uk)(" +"),(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),(0,a.Uk)("/- "),(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 jo=(0,P.Z)(Vo,[["__scopeId","data-v-96abcc38"]]);var Xo=jo,Jo=n(5630),Qo=n(3768);const es={id:"timeline"},ts={class:"section-title"},ns={key:0},rs={key:1},as={key:1,class:"more-workouts"};var os=(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)((()=>S()));const _=(0,a.Fl)((()=>n.getters[l.aX.GETTERS.TIMELINE_WORKOUTS])),E=(0,a.Fl)((()=>_.value.length>0&&null!==_.value[_.value.length-1].previous_workout));function S(){n.dispatch(l.aX.ACTIONS.GET_TIMELINE_WORKOUTS,{page:u.value,per_page:d,...Qo.eR})}function T(){u.value+=1,n.dispatch(l.aX.ACTIONS.GET_MORE_TIMELINE_WORKOUTS,{page:u.value,per_page:d,...Qo.eR})}return(e,t)=>((0,a.wg)(),(0,a.iD)("div",es,[(0,a._)("div",ts,(0,o.zw)(e.$t("workouts.LATEST_WORKOUTS")),1),(0,i.SU)(s).nb_workouts>0&&0===(0,i.SU)(_).length?((0,a.wg)(),(0,a.iD)("div",ns,[((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)(Xo,{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",rs,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,i.SU)(_),(e=>((0,a.wg)(),(0,a.j4)(Xo,{workout:e,sport:(0,i.SU)(_).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)(_).length?((0,a.wg)(),(0,a.j4)(Jo.Z,{key:0})):(0,a.kq)("",!0),(0,i.SU)(E)?((0,a.wg)(),(0,a.iD)("div",as,[(0,a._)("button",{onClick:T},(0,o.zw)(e.$t("workouts.LOAD_MORE_WORKOUT")),1)])):(0,a.kq)("",!0)]))]))}});const ss=(0,P.Z)(os,[["__scopeId","data-v-35567bf2"]]);var is=ss,ls=n(1640),cs=n(4559),us=n(7349),ds=n(1743),ms=n(9160),_s=n(1085);const Es=["title"];var Ss=(0,a.aZ)({__name:"CalendarWorkout",props:{displayHARecord:{type:Boolean},workout:null,sportLabel:null,sportColor:null},setup(e){const t=e,{displayHARecord:n,workout:r,sportLabel:o,sportColor:s}=(0,i.BK)(t);return(e,t)=>{const l=(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)(r).id}}))},[(0,a.Wm)(l,{"sport-label":(0,i.SU)(o),title:(0,i.SU)(r).title,color:(0,i.SU)(s)},null,8,["sport-label","title","color"]),(0,a._)("sup",null,[(0,i.SU)(r).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)(r).records.filter((e=>!!(0,i.SU)(n)||"HA"!==e.record_type)).map((t=>` ${e.$t(`workouts.RECORD_${t.record_type}`)}`))},null,8,Es)):(0,a.kq)("",!0)])])}}});const Ts=Ss;var ps=Ts;const As={class:"donut-chart"},Os={height:"34",width:"34",viewBox:"0 0 34 34"},Rs=["stroke","stroke-dashoffset","transform"];var Is=(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",As,[((0,a.wg)(),(0,a.iD)("svg",Os,[((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,Rs)])))),128))]))]))}});const Us=Is;var gs=Us;const Ns={class:"calendar-workouts-chart"},hs={class:"workouts-count"},zs={key:0,class:"workouts-pane"},ws={class:"more-workouts"};var fs=(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",Ns,[(0,a._)("div",{class:"workouts-chart",onClick:u},[(0,a._)("div",hs,(0,o.zw)((0,i.SU)(l).length),1),(0,a.Wm)(gs,{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",zs,[(0,a.wy)(((0,a.wg)(),(0,a.iD)("div",ws,[(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)(ps,{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 vs=(0,P.Z)(fs,[["__scopeId","data-v-52d4310a"]]);var Cs=vs;const Ds={class:"calendar-workouts"},ks={class:"desktop-display"},Ps={key:0,class:"workouts-display"},Ls={key:1,class:"donut-display"},Ms={class:"mobile-display"},bs={key:0,class:"donut-display"};var ys=(0,a.aZ)({__name:"CalendarWorkouts",props:{displayHARecord:{type:Boolean},workouts:null,sports:null},setup(e){const t=e,{displayHARecord:n,workouts:r,sports:o}=(0,i.BK)(t),s=(0,a.Fl)((()=>(0,Qo.BN)(t.workouts))),l=(0,a.Fl)((()=>(0,le.Yx)(t.sports))),c=6;return(e,t)=>((0,a.wg)(),(0,a.iD)("div",Ds,[(0,a._)("div",ks,[(0,i.SU)(r).length<=c?((0,a.wg)(),(0,a.iD)("div",Ps,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,i.SU)(r).slice(0,c),((e,t)=>((0,a.wg)(),(0,a.j4)(ps,{key:t,displayHARecord:(0,i.SU)(n),workout:e,sportLabel:(0,i.SU)(le.PA)(e,(0,i.SU)(o)),sportColor:(0,i.SU)(le.CM)(e,(0,i.SU)(o))},null,8,["displayHARecord","workout","sportLabel","sportColor"])))),128))])):((0,a.wg)(),(0,a.iD)("div",Ls,[(0,a.Wm)(Cs,{workouts:(0,i.SU)(r),sports:(0,i.SU)(o),datasets:(0,i.SU)(s),colors:(0,i.SU)(l)},null,8,["workouts","sports","datasets","colors"])]))]),(0,a._)("div",Ms,[(0,i.SU)(r).length>0?((0,a.wg)(),(0,a.iD)("div",bs,[(0,a.Wm)(Cs,{workouts:(0,i.SU)(r),sports:(0,i.SU)(o),datasets:(0,i.SU)(s),colors:(0,i.SU)(l)},null,8,["workouts","sports","datasets","colors"])])):(0,a.kq)("",!0)])]))}});const Gs=ys;var Fs=Gs;const Ws={class:"calendar-cells"},Ks={class:"calendar-cell-day"};var Ys=(0,a.aZ)({__name:"CalendarCells",props:{currentDay:null,displayHARecord:{type:Boolean},endDate:null,sports:null,startDate:null,timezone:null,weekStartingMonday:{type:Boolean},workouts:null},setup(e){const t=e,{currentDay:n,displayHARecord:r,endDate:s,sports:l,startDate:c,timezone:u,weekStartingMonday:d,workouts:m}=(0,i.BK)(t),_=(0,i.iH)([]);function E(){_.value=[];let e=c.value;while(e<=s.value){const t=[];for(let n=0;n<7;n++)t.push(e),e=(0,us.Z)(e,1);_.value.push(t)}}function S(e){return d.value?[5,6].includes(e):[0,6].includes(e)}function T(e,t){return t?t.filter((t=>(0,ds.Z)((0,Ye.eB)(t.workout_date,u.value),e))).reverse():[]}return(0,a.bv)((()=>E())),(0,a.YP)((()=>t.currentDay),(()=>E())),(e,t)=>((0,a.wg)(),(0,a.iD)("div",Ws,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)(_.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)(ms.Z)(e,(0,i.SU)(n)),"week-end":S(t),today:(0,i.SU)(_s.Z)(e)}]),key:t},[(0,a.Wm)(Fs,{workouts:T(e,(0,i.SU)(m)),sports:(0,i.SU)(l),displayHARecord:(0,i.SU)(r)},null,8,["workouts","sports","displayHARecord"]),(0,a._)("div",Ks,(0,o.zw)((0,i.SU)(jt.Z)(e,"d")),1)],2)))),128))])))),128))]))}});const xs=Ys;var Bs=xs;const $s={class:"calendar-days"};var Zs=(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,us.Z)(t.startDate,r));return(t,r)=>((0,a.wg)(),(0,a.iD)("div",$s,[((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)(jt.Z)(t,"EEE",{locale:e.localeOptions})),1))),64))]))}});const Hs=Zs;var qs=Hs;const Vs={class:"calendar-header"},js=(0,a._)("i",{class:"fa fa-chevron-left","aria-hidden":"true"},null,-1),Xs=[js],Js={class:"calendar-month"},Qs=(0,a._)("i",{class:"fa fa-chevron-right","aria-hidden":"true"},null,-1),ei=[Qs];var ti=(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",Vs,[(0,a._)("div",{class:"calendar-arrow calendar-arrow-left",onClick:n[0]||(n[0]=e=>t("displayPreviousMonth"))},Xs),(0,a._)("div",Js,[(0,a._)("span",null,(0,o.zw)((0,i.SU)(jt.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"))},ei)]))}});const ni=ti;var ri=ni;const ai={id:"user-calendar"},oi={class:"calendar-card box"};var si=(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,Ye.yx)(u.value,t.user.weekm)),m=(0,a.Fl)((()=>n.getters[l.aX.GETTERS.CALENDAR_WORKOUTS])),_=(0,a.Fl)((()=>n.getters[l.SY.GETTERS.LOCALE]));function E(){d.value=(0,Ye.yx)(u.value,t.user.weekm);const e={from:(0,jt.Z)(d.value.start,s),to:(0,jt.Z)(d.value.end,s),page:1,per_page:100,...Qo.eR};n.dispatch(l.aX.ACTIONS.GET_CALENDAR_WORKOUTS,e)}function S(){u.value=(0,ls.Z)(u.value,1),E()}function T(){u.value=(0,cs.Z)(u.value,1),E()}return(0,a.wF)((()=>E())),(e,t)=>((0,a.wg)(),(0,a.iD)("div",ai,[(0,a._)("div",oi,[(0,a.Wm)(ri,{day:u.value,"locale-options":(0,i.SU)(_),onDisplayNextMonth:S,onDisplayPreviousMonth:T},null,8,["day","locale-options"]),(0,a.Wm)(qs,{"start-date":d.value.start,"locale-options":(0,i.SU)(_)},null,8,["start-date","locale-options"]),(0,a.Wm)(Bs,{currentDay:u.value,displayHARecord:(0,i.SU)(o).display_ascent,"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","displayHARecord","end-date","sports","start-date","timezone","workouts","weekStartingMonday"])])]))}});const ii=si;var li=ii,ci=n(3703),ui=n(4135),di=n(3170);const mi={class:"user-month-stats"};var _i=(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,ci.Z)(s),end:(0,ui.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",mi,[(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)(di.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 Ei=(0,P.Z)(_i,[["__scopeId","data-v-1bcddc12"]]);var Si=Ei,Ti=n(2540),pi=n(3649);const{locale:Ai}=Ti.Z.global,Oi=(e,t,n,r)=>{const a="km",o=n?pi.Dl[a].defaultTarget:a,s="m",i=n?pi.Dl[s].defaultTarget:s;let l;switch(e.record_type){case"AS":case"MS":l=`${(0,pi.sC)(+e.value,a,o,2)} ${o}/h`;break;case"FD":l=`${(0,pi.sC)(+e.value,a,o,3)} ${o}`;break;case"HA":l=`${(0,pi.sC)(+e.value,s,i,2)} ${i}`;break;case"LD":l=e.value;break;default:throw new Error(`Invalid record type, expected: "AS", "FD", "HA", "LD", "MD", got: "${e.record_type}"`)}return{workout_date:(0,Ye.p6)(e.workout_date,t,r,!1),workout_id:e.workout_id,id:e.id,record_type:e.record_type,value:l}},Ri=(e,t)=>{const n=e.label.toLowerCase(),r=t.label.toLowerCase();return n>r?1:n(o=(0,Ye.mh)(o,Ai.value),e.filter((e=>!!a||"HA"!==e.record_type)).reduce(((e,a)=>{const s=t.find((e=>e.id===a.sport_id));return s&&s.label&&(void 0===e[s.translatedLabel]&&(e[s.translatedLabel]={label:s.label,color:s.color,records:[]}),e[s.translatedLabel].records.push(Oi(a,n,r,o))),e}),{})),Ui={class:"records-card"},gi={class:"record-type"},Ni={class:"record-value"},hi={class:"record-date"};var zi=(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(Ri)}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",Ui,[(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",gi,(0,o.zw)(e.label),1),(0,a._)("span",Ni,(0,o.zw)(e.value),1),(0,a._)("span",hi,[(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 wi=(0,P.Z)(zi,[["__scopeId","data-v-8d17c606"]]);var fi=wi;const vi=e=>((0,a.dD)("data-v-f0c85cb8"),e=e(),(0,a.Cn)(),e),Ci={class:"user-records-section"},Di={class:"section-title"},ki=vi((()=>(0,a._)("i",{class:"fa fa-trophy custom-fa-small","aria-hidden":"true"},null,-1))),Pi={class:"user-records"},Li={key:0,class:"no-records"};var Mi=(0,a.aZ)({__name:"index",props:{sports:null,user:null},setup(e){const t=e,{t:n}=(0,ie.QT)(),r=(0,a.Fl)((()=>Ii(t.user.records,(0,le.xH)(t.sports,n),t.user.timezone,t.user.imperial_units,t.user.display_ascent,t.user.date_format)));return(t,n)=>((0,a.wg)(),(0,a.iD)("div",Ci,[(0,a._)("div",Di,[ki,(0,a.Uk)(" "+(0,o.zw)(t.$t("workouts.RECORD",2)),1)]),(0,a._)("div",Pi,[0===Object.keys((0,i.SU)(r)).length?((0,a.wg)(),(0,a.iD)("div",Li,(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)(fi,{sportTranslatedLabel:t,records:(0,i.SU)(r)[t],key:t,useImperialUnits:e.user.imperial_units},null,8,["sportTranslatedLabel","records","useImperialUnits"])))),128))])]))}});const bi=(0,P.Z)(Mi,[["__scopeId","data-v-f0c85cb8"]]);var yi=bi;const Gi={id:"user-stats"};var Fi=(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)((()=>E(o))),l="km",c=r.value.imperial_units?pi.Dl[l].defaultTarget:l,u=(0,a.Fl)((()=>r.value.imperial_units?(0,pi.sC)(r.value.total_distance,l,c,2):parseFloat(r.value.total_distance.toFixed(2)))),d="m",m=r.value.imperial_units?pi.Dl[d].defaultTarget:d,_=(0,a.Fl)((()=>r.value.imperial_units?(0,pi.sC)(r.value.total_ascent,d,m,2):parseFloat(r.value.total_ascent.toFixed(2))));function E(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",Gi,[(0,a.Wm)(B,{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)(B,{icon:"road",value:(0,i.SU)(u),text:"mi"===(0,i.SU)(c)?"miles":(0,i.SU)(c)},null,8,["value","text"]),(0,i.SU)(r).display_ascent?((0,a.wg)(),(0,a.j4)(B,{key:0,icon:"location-arrow",value:(0,i.SU)(_),text:"ft"===(0,i.SU)(m)?"feet":(0,i.SU)(m)},null,8,["value","text"])):(0,a.kq)("",!0),(0,a.Wm)(B,{icon:"clock-o",value:(0,i.SU)(s).days,text:(0,i.SU)(s).duration},null,8,["value","text"]),(0,i.SU)(r).display_ascent?(0,a.kq)("",!0):((0,a.wg)(),(0,a.j4)(B,{key:1,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 Wi=Fi;var Ki=Wi;const Yi=e=>((0,a.dD)("data-v-4c0893c1"),e=e(),(0,a.Cn)(),e),xi={key:0,id:"dashboard",class:"view"},Bi={class:"container mobile-menu"},$i={class:"box"},Zi=Yi((()=>(0,a._)("i",{class:"fa fa-calendar","aria-hidden":"true"},null,-1))),Hi=[Zi],qi=Yi((()=>(0,a._)("i",{class:"fa fa-bar-chart","aria-hidden":"true"},null,-1))),Vi=[qi],ji=Yi((()=>(0,a._)("i",{class:"fa fa-map-o","aria-hidden":"true"},null,-1))),Xi=[ji],Ji=Yi((()=>(0,a._)("i",{class:"fa fa-trophy","aria-hidden":"true"},null,-1))),Qi=[Ji],el={class:"container"},tl={class:"container dashboard-container"},nl={class:"left-container dashboard-sub-container"},rl={class:"right-container dashboard-sub-container"},al=Yi((()=>(0,a._)("div",{id:"bottom"},null,-1))),ol={key:1,class:"app-loading"};var sl=(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(0,a.wF)((()=>t.dispatch(l.YN.ACTIONS.GET_USER_PROFILE))),(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",xi,[(0,a._)("div",Bi,[(0,a._)("div",$i,[(0,a._)("div",{class:(0,o.C_)(["mobile-menu-item",{"is-selected":"calendar"===s.value}]),onClick:t[0]||(t[0]=e=>u("calendar"))},Hi,2),(0,a._)("div",{class:(0,o.C_)(["mobile-menu-item",{"is-selected":"chart"===s.value}]),onClick:t[1]||(t[1]=e=>u("chart"))},Vi,2),(0,a._)("div",{class:(0,o.C_)(["mobile-menu-item",{"is-selected":"timeline"===s.value}]),onClick:t[2]||(t[2]=e=>u("timeline"))},Xi,2),(0,a._)("div",{class:(0,o.C_)(["mobile-menu-item",{"is-selected":"records"===s.value}]),onClick:t[3]||(t[3]=e=>u("records"))},Qi,2)])]),(0,a._)("div",el,[(0,a.Wm)(Ki,{user:(0,i.SU)(n)},null,8,["user"])]),(0,a._)("div",tl,[(0,a._)("div",nl,[(0,a.Wm)(Si,{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)(yi,{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",rl,[(0,a.Wm)(li,{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)(is,{sports:(0,i.SU)(r),user:(0,i.SU)(n),class:(0,o.C_)({"is-hidden":!("timeline"===s.value)})},null,8,["sports","user","class"])])]),al])):((0,a.wg)(),(0,a.iD)("div",ol,[(0,a.Wm)(l)]))}}});const il=(0,P.Z)(sl,[["__scopeId","data-v-4c0893c1"]]);var ll=il,cl=n(8273);const ul={class:"not-found view"};var dl=(0,a.aZ)({__name:"NotFoundView",setup(e){return(e,t)=>((0,a.wg)(),(0,a.iD)("div",ul,[(0,a.Wm)(cl.Z)]))}});const ml=dl;var _l=ml,El=n(2411);const Sl={id:"loginOrRegister",class:"view"},Tl={class:"container"},pl={class:"container-sub"},Al={class:"container-sub"};var Ol=(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",Sl,[(0,a._)("div",Tl,[(0,a._)("div",pl,[(0,a.Wm)(Oo)]),(0,a._)("div",Al,[(0,a.Wm)(El.Z,{action:(0,i.SU)(n)},null,8,["action"])])])]))}});const Rl=(0,P.Z)(Ol,[["__scopeId","data-v-58043acb"]]);var Il=Rl;const Ul=e=>{const t=/(\/profile)(\/edit)*(\/*)/,n=e.replace(t,"").toUpperCase();return""===n?"PROFILE":n.toUpperCase()},gl=[{path:"/",name:"Dashboard",component:ll},{path:"/login",name:"Login",component:Il,props:{action:"login"}},{path:"/register",name:"Register",component:Il,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,1133)),children:[{path:"",name:"UserProfile",component:Nt,props:e=>({tab:Ul(e.path)}),children:[{path:"",name:"UserInfos",component:ht.Z},{path:"preferences",name:"UserPreferences",component:Dt},{path:"sports",name:"UserSportPreferences",component:ja,props:{isEdition:!1}},{path:"apps",name:"UserApps",component:Xr,children:[{path:"",name:"UserAppsList",component:Ra},{path:":id",name:"UserApp",component:da},{path:":id/created",name:"CreatedUserApp",component:da,props:{afterCreation:!0}},{path:"new",name:"AddUserApp",component:Mr},{path:"authorize",name:"AuthorizeUserApp",component:Hr}]}]},{path:"edit",name:"UserProfileEdition",component:Mt,props:e=>({tab:Ul(e.path)}),children:[{path:"",name:"UserInfosEdition",component:Sn},{path:"account",name:"UserAccountEdition",component:Vt},{path:"picture",name:"UserPictureEdition",component:wn},{path:"preferences",name:"UserPreferencesEdition",component:ur},{path:"sports",name:"UserSportPreferencesEdition",component:ja,props:{isEdition:!0}}]}]},{path:"/statistics",name:"Statistics",component:()=>n.e(193).then(n.bind(n,7885))},{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,3372))},{path:"/workouts/:workoutId",name:"Workout",component:()=>n.e(401).then(n.bind(n,4915)),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,4915)),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:De},{path:"users/:username",name:"UserFromAdmin",component:()=>n.e(845).then(n.bind(n,9453)),props:{fromAdmin:!0}},{path:"users",name:"UsersAdministration",component:mt}]},{path:"/about",name:"About",component:zo},{path:"/:pathMatch(.*)*",name:"not-found",component:_l}],Nl=(0,r.p7)({history:(0,r.PO)("/"),routes:gl}),hl=["/login","/password-reset","/password-reset/password-updated","/password-reset/request","/password-reset/sent","/register","/account-confirmation","/account-confirmation/resend","/account-confirmation/email-sent"],zl=["/email-update","/about"];Nl.beforeEach(((e,t,n)=>{Xa.Z.dispatch(l.YN.ACTIONS.CHECK_AUTH_USER).then((()=>{if(zl.includes(e.path))return n();if(Xa.Z.getters[l.YN.GETTERS.IS_AUTHENTICATED]&&hl.includes(e.path))return n("/");if(Xa.Z.getters[l.YN.GETTERS.IS_AUTHENTICATED]||hl.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 wl=Nl},5801:function(e,t,n){"use strict";var r,a,o,s,i,l,c,u,d,m,_,E,S,T,p,A,O,R;n.d(t,{YN:function(){return h},Km:function(){return z},SY:function(){return U},O8:function(){return g},gu:function(){return N},RT:function(){return w},aX:function(){return f}}),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["AUTHORIZE_CLIENT"]="AUTHORIZE_CLIENT",e["CREATE_CLIENT"]="CREATE_CLIENT",e["DELETE_CLIENT"]="DELETE_CLIENT",e["GET_CLIENTS"]="GET_CLIENTS",e["GET_CLIENT_BY_CLIENT_ID"]="GET_CLIENT_BY_CLIENT_ID",e["GET_CLIENT_BY_ID"]="GET_CLIENT_BY_ID",e["REVOKE_ALL_TOKENS"]="REVOKE_ALL_TOKENS"}(s||(s={})),function(e){e["CLIENT"]="CLIENT",e["CLIENTS"]="CLIENTS",e["CLIENTS_PAGINATION"]="CLIENTS_PAGINATION",e["REVOCATION_SUCCESSFUL"]="REVOCATION_SUCCESSFUL"}(i||(i={})),function(e){e["EMPTY_CLIENT"]="EMPTY_CLIENT",e["SET_CLIENT"]="SET_CLIENT",e["SET_CLIENTS"]="SET_CLIENTS",e["SET_CLIENTS_PAGINATION"]="SET_CLIENTS_PAGINATION",e["SET_REVOCATION_SUCCESSFUL"]="SET_REVOCATION_SUCCESSFUL"}(l||(l={})),function(e){e["GET_APPLICATION_CONFIG"]="GET_APPLICATION_CONFIG",e["GET_APPLICATION_STATS"]="GET_APPLICATION_STATS",e["UPDATE_APPLICATION_CONFIG"]="UPDATE_APPLICATION_CONFIG",e["UPDATE_APPLICATION_LANGUAGE"]="UPDATE_APPLICATION_LANGUAGE"}(c||(c={})),function(e){e["APP_CONFIG"]="APP_CONFIG",e["APP_LOADING"]="APP_LOADING",e["APP_STATS"]="APP_STATS",e["ERROR_MESSAGES"]="ERROR_MESSAGES",e["LANGUAGE"]="LANGUAGE",e["LOCALE"]="LOCALE"}(u||(u={})),function(e){e["EMPTY_ERROR_MESSAGES"]="EMPTY_ERROR_MESSAGES",e["SET_ERROR_MESSAGES"]="SET_ERROR_MESSAGES",e["UPDATE_APPLICATION_CONFIG"]="UPDATE_APPLICATION_CONFIG",e["UPDATE_APPLICATION_LOADING"]="UPDATE_APPLICATION_LOADING",e["UPDATE_APPLICATION_STATS"]="UPDATE_APPLICATION_STATS",e["UPDATE_LANG"]="UPDATE_LANG"}(d||(d={})),function(e){e["GET_SPORTS"]="GET_SPORTS",e["UPDATE_SPORTS"]="UPDATE_SPORTS"}(m||(m={})),function(e){e["SPORTS"]="SPORTS"}(_||(_={})),function(e){e["SET_SPORTS"]="SET_SPORTS"}(E||(E={})),function(e){e["GET_USER_STATS"]="GET_USER_STATS"}(S||(S={})),function(e){e["USER_STATS"]="USER_STATS"}(T||(T={})),function(e){e["EMPTY_USER_STATS"]="EMPTY_USER_STATS",e["UPDATE_USER_STATS"]="UPDATE_USER_STATS"}(p||(p={})),function(e){e["EMPTY_USER"]="EMPTY_USER",e["EMPTY_USERS"]="EMPTY_USERS",e["GET_USER"]="GET_USER",e["GET_USERS"]="GET_USERS",e["UPDATE_USER"]="UPDATE_USER",e["DELETE_USER_ACCOUNT"]="DELETE_USER_ACCOUNT"}(A||(A={})),function(e){e["USER"]="USER",e["USERS"]="USERS",e["USERS_IS_SUCCESS"]="USERS_IS_SUCCESS",e["USERS_LOADING"]="USERS_LOADING",e["USERS_PAGINATION"]="USERS_PAGINATION"}(O||(O={})),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"}(R||(R={}));var I=n(52);const U={ACTIONS:c,GETTERS:u,MUTATIONS:d},g={ACTIONS:m,GETTERS:_,MUTATIONS:E},N={ACTIONS:S,GETTERS:T,MUTATIONS:p},h={ACTIONS:r,GETTERS:a,MUTATIONS:o},z={ACTIONS:s,GETTERS:i,MUTATIONS:l},w={ACTIONS:A,GETTERS:O,MUTATIONS:R},f={ACTIONS:I.tW,GETTERS:I.JP,MUTATIONS:I.CW}},2894:function(e,t,n){"use strict";n.d(t,{Z:function(){return me}});var r=n(3907),a=(n(7658),n(5167)),o=n(9669),s=n.n(o),i=n(8566),l=n(2024);const c=s().create({baseURL:(0,l.k)()});c.interceptors.request.use((e=>{const t=new AbortController;e.signal=t.signal;const n=(0,i.a)(e);return i.j.set(n,t),e}),(e=>Promise.reject(e))),c.interceptors.response.use((e=>((0,i.a)(e.config),e)),(e=>("canceled"!==e.message&&(0,i.a)(e.response.config),Promise.reject(e))));var u=c,d=n(6176),m=n(5801);const _=(e,t)=>{e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),a.Z["delete"](`users/${t.username}`).then((n=>{204===n.status?t.fromAdmin?d.Z.push("/admin/users"):e.dispatch(m.YN.ACTIONS.LOGOUT).then((()=>d.Z.push("/"))):(0,l.S)(e,null)})).catch((t=>(0,l.S)(e,t)))},E={[m.RT.ACTIONS.EMPTY_USER](e){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.RT.MUTATIONS.UPDATE_USER,{})},[m.RT.ACTIONS.EMPTY_USERS](e){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.RT.MUTATIONS.UPDATE_USERS,[]),e.commit(m.RT.MUTATIONS.UPDATE_USERS_PAGINATION,{})},[m.RT.ACTIONS.GET_USER](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.RT.MUTATIONS.UPDATE_USERS_LOADING,!0),a.Z.get(`users/${t}`).then((t=>{"success"===t.data.status?e.commit(m.RT.MUTATIONS.UPDATE_USER,t.data.data.users[0]):(0,l.S)(e,null)})).catch((t=>(0,l.S)(e,t))).finally((()=>e.commit(m.RT.MUTATIONS.UPDATE_USERS_LOADING,!1)))},[m.RT.ACTIONS.GET_USERS](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.RT.MUTATIONS.UPDATE_USERS_LOADING,!0),a.Z.get("users",{params:t}).then((t=>{"success"===t.data.status?(e.commit(m.RT.MUTATIONS.UPDATE_USERS,t.data.data.users),e.commit(m.RT.MUTATIONS.UPDATE_USERS_PAGINATION,t.data.pagination)):(0,l.S)(e,null)})).catch((t=>(0,l.S)(e,t))).finally((()=>e.commit(m.RT.MUTATIONS.UPDATE_USERS_LOADING,!1)))},[m.RT.ACTIONS.UPDATE_USER](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.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(m.RT.MUTATIONS.UPDATE_USER_IN_USERS,n.data.data.users[0]),(t.resetPassword||t.new_email)&&e.commit(m.RT.MUTATIONS.UPDATE_IS_SUCCESS,!0),(t.activate||t.new_email)&&e.commit(m.RT.MUTATIONS.UPDATE_USER,n.data.data.users[0])):(0,l.S)(e,null)})).catch((t=>(0,l.S)(e,t))).finally((()=>e.commit(m.RT.MUTATIONS.UPDATE_USERS_LOADING,!1)))},[m.RT.ACTIONS.DELETE_USER_ACCOUNT](e,t){_(e,{username:t.username,fromAdmin:!0})}},S=e=>{localStorage.removeItem("authToken"),e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.gu.MUTATIONS.EMPTY_USER_STATS),e.commit(m.YN.MUTATIONS.CLEAR_AUTH_USER_TOKEN),e.commit(m.RT.MUTATIONS.UPDATE_USERS,[]),e.commit(m.aX.MUTATIONS.EMPTY_WORKOUTS),e.commit(m.aX.MUTATIONS.EMPTY_WORKOUT),d.Z.push("/login")},T={[m.YN.ACTIONS.CHECK_AUTH_USER](e){window.localStorage.authToken&&!e.getters[m.YN.GETTERS.IS_AUTHENTICATED]&&(e.commit(m.YN.MUTATIONS.UPDATE_AUTH_TOKEN,window.localStorage.authToken),e.dispatch(m.YN.ACTIONS.GET_USER_PROFILE)),!window.localStorage.authToken&&e.getters[m.YN.GETTERS.IS_AUTHENTICATED]&&S(e)},[m.YN.ACTIONS.CONFIRM_ACCOUNT](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),u.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(m.YN.MUTATIONS.UPDATE_AUTH_TOKEN,n),e.dispatch(m.YN.ACTIONS.GET_USER_PROFILE).then((()=>d.Z.push("/")))}else(0,l.S)(e,null)})).catch((t=>{(0,l.S)(e,t)}))},[m.YN.ACTIONS.CONFIRM_EMAIL](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.YN.MUTATIONS.UPDATE_IS_SUCCESS,!1),u.post("/auth/email/update",{token:t.token}).then((n=>{"success"===n.data.status?(e.commit(m.YN.MUTATIONS.UPDATE_IS_SUCCESS,!0),t.refreshUser&&e.dispatch(m.YN.ACTIONS.GET_USER_PROFILE).then((()=>d.Z.push("/profile/edit/account"))),d.Z.push("/profile/edit/account")):(0,l.S)(e,null)})).catch((t=>{(0,l.S)(e,t)}))},[m.YN.ACTIONS.GET_USER_PROFILE](e){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),a.Z.get("auth/profile").then((t=>{"success"===t.data.status?(e.commit(m.YN.MUTATIONS.UPDATE_AUTH_USER_PROFILE,t.data.data),t.data.data.language&&e.dispatch(m.SY.ACTIONS.UPDATE_APPLICATION_LANGUAGE,t.data.data.language),e.dispatch(m.O8.ACTIONS.GET_SPORTS)):((0,l.S)(e,null),S(e))})).catch((t=>{"canceled"!==t.message&&((0,l.S)(e,t),S(e))}))},[m.YN.ACTIONS.LOGIN_OR_REGISTER](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.YN.MUTATIONS.UPDATE_IS_REGISTRATION_SUCCESS,!1),u.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(m.YN.MUTATIONS.UPDATE_AUTH_TOKEN,r),e.dispatch(m.YN.ACTIONS.GET_USER_PROFILE).then((()=>d.Z.push("string"===typeof t.redirectUrl?t.redirectUrl:"/")))}else d.Z.push("/login").then((()=>e.commit(m.YN.MUTATIONS.UPDATE_IS_REGISTRATION_SUCCESS,!0)));else(0,l.S)(e,null)})).catch((t=>(0,l.S)(e,t)))},[m.YN.ACTIONS.LOGOUT](e){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),a.Z.post("auth/logout").then((t=>{"success"===t.data.status?S(e):(0,l.S)(e,null)})).catch((t=>(0,l.S)(e,t)))},[m.YN.ACTIONS.UPDATE_USER_PROFILE](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!0),a.Z.post("auth/profile/edit",t).then((t=>{"success"===t.data.status?(e.commit(m.YN.MUTATIONS.UPDATE_AUTH_USER_PROFILE,t.data.data),d.Z.push("/profile")):(0,l.S)(e,null)})).catch((t=>(0,l.S)(e,t))).finally((()=>e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!1)))},[m.YN.ACTIONS.UPDATE_USER_ACCOUNT](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!0),e.commit(m.YN.MUTATIONS.UPDATE_IS_SUCCESS,!1),a.Z.patch("auth/profile/edit/account",t).then((t=>{"success"===t.data.status?(e.commit(m.YN.MUTATIONS.UPDATE_AUTH_USER_PROFILE,t.data.data),e.commit(m.YN.MUTATIONS.UPDATE_IS_SUCCESS,!0)):(0,l.S)(e,null)})).catch((t=>(0,l.S)(e,t))).finally((()=>e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!1)))},[m.YN.ACTIONS.UPDATE_USER_PREFERENCES](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!0),a.Z.post("auth/profile/edit/preferences",t).then((t=>{"success"===t.data.status?(e.commit(m.YN.MUTATIONS.UPDATE_AUTH_USER_PROFILE,t.data.data),e.dispatch(m.SY.ACTIONS.UPDATE_APPLICATION_LANGUAGE,t.data.data.language).then((()=>d.Z.push("/profile/preferences")))):(0,l.S)(e,null)})).catch((t=>(0,l.S)(e,t))).finally((()=>e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!1)))},[m.YN.ACTIONS.RESET_USER_SPORT_PREFERENCES](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!0),a.Z["delete"](`auth/profile/reset/sports/${t}`).then((t=>{204===t.status?e.dispatch(m.O8.ACTIONS.GET_SPORTS):(0,l.S)(e,null)})).catch((t=>{(0,l.S)(e,t),e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!1)}))},[m.YN.ACTIONS.UPDATE_USER_SPORT_PREFERENCES](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!0),a.Z.post("auth/profile/edit/sports",t).then((t=>{"success"===t.data.status?e.dispatch(m.O8.ACTIONS.GET_SPORTS):(0,l.S)(e,null)})).catch((t=>{(0,l.S)(e,t),e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!1)}))},[m.YN.ACTIONS.UPDATE_USER_PICTURE](e,t){if(e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.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(m.YN.ACTIONS.GET_USER_PROFILE).then((()=>d.Z.push("/profile"))):(0,l.S)(e,null)})).catch((t=>(0,l.S)(e,t))).finally((()=>e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!1)))},[m.YN.ACTIONS.DELETE_ACCOUNT](e,t){_(e,t)},[m.YN.ACTIONS.DELETE_PICTURE](e){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!0),a.Z["delete"]("auth/picture").then((t=>{204===t.status?e.dispatch(m.YN.ACTIONS.GET_USER_PROFILE).then((()=>d.Z.push("/profile"))):(0,l.S)(e,null)})).catch((t=>(0,l.S)(e,t))).finally((()=>e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!1)))},[m.YN.ACTIONS.SEND_PASSWORD_RESET_REQUEST](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),u.post("auth/password/reset-request",t).then((t=>{"success"===t.data.status?d.Z.push("/password-reset/sent"):(0,l.S)(e,null)})).catch((t=>(0,l.S)(e,t)))},[m.YN.ACTIONS.RESEND_ACCOUNT_CONFIRMATION_EMAIL](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),u.post("auth/account/resend-confirmation",t).then((t=>{"success"===t.data.status?d.Z.push("/account-confirmation/email-sent"):(0,l.S)(e,null)})).catch((t=>(0,l.S)(e,t)))},[m.YN.ACTIONS.RESET_USER_PASSWORD](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),u.post("auth/password/update",t).then((t=>{"success"===t.data.status?d.Z.push("/password-reset/password-updated"):(0,l.S)(e,null)})).catch((t=>(0,l.S)(e,t)))}},p={[m.YN.GETTERS.AUTH_TOKEN]:e=>e.authToken,[m.YN.GETTERS.AUTH_USER_PROFILE]:e=>e.authUserProfile,[m.YN.GETTERS.IS_AUTHENTICATED]:e=>null!==e.authToken,[m.YN.GETTERS.IS_ADMIN]:e=>e.authUserProfile&&e.authUserProfile.admin,[m.YN.GETTERS.IS_REGISTRATION_SUCCESS]:e=>e.isRegistrationSuccess,[m.YN.GETTERS.IS_SUCCESS]:e=>e.isSuccess,[m.YN.GETTERS.USER_LOADING]:e=>e.loading},A={[m.YN.MUTATIONS.CLEAR_AUTH_USER_TOKEN](e){e.authToken=null,e.authUserProfile={}},[m.YN.MUTATIONS.UPDATE_AUTH_TOKEN](e,t){e.authToken=t},[m.YN.MUTATIONS.UPDATE_AUTH_USER_PROFILE](e,t){e.authUserProfile=t},[m.YN.MUTATIONS.UPDATE_IS_REGISTRATION_SUCCESS](e,t){e.isRegistrationSuccess=t},[m.YN.MUTATIONS.UPDATE_IS_SUCCESS](e,t){e.isSuccess=t},[m.YN.MUTATIONS.UPDATE_USER_LOADING](e,t){e.loading=t}},O={authToken:null,authUserProfile:{},isSuccess:!1,isRegistrationSuccess:!1,loading:!1},R={state:O,actions:T,getters:p,mutations:A};var I=R;const U=(e,t)=>{e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),a.Z.get(t).then((t=>{"success"===t.data.status?e.commit(m.Km.MUTATIONS.SET_CLIENT,t.data.data.client):(0,l.S)(e,null)})).catch((t=>(0,l.S)(e,t)))},g={[m.Km.ACTIONS.AUTHORIZE_CLIENT](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES);const n=new FormData;n.set("client_id",t.client_id),n.set("response_type",t.response_type),n.set("scope",t.scope),n.set("confirm","true"),t.state&&n.set("state",t.state),t.code_challenge&&n.set("code_challenge",t.code_challenge),t.code_challenge_method&&n.set("code_challenge_method",t.code_challenge_method),a.Z.post("oauth/authorize",n,{headers:{"Content-Type":"multipart/form-data"}}).then((t=>{200==t.status&&t.data.redirect_url?window.location.href=t.data.redirect_url:(0,l.S)(e,null)})).catch((t=>(0,l.S)(e,t)))},[m.Km.ACTIONS.CREATE_CLIENT](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),a.Z.post("oauth/apps",t).then((t=>{"created"===t.data.status?(e.commit(m.Km.MUTATIONS.SET_CLIENT,t.data.data.client),d.Z.push(`/profile/apps/${t.data.data.client.id}/created`)):(0,l.S)(e,null)})).catch((t=>(0,l.S)(e,t)))},[m.Km.ACTIONS.DELETE_CLIENT](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),a.Z["delete"](`oauth/apps/${t}`).then((t=>{204===t.status?e.dispatch(m.Km.ACTIONS.GET_CLIENTS).then((()=>d.Z.push("/profile/apps"))):(0,l.S)(e,null)})).catch((t=>(0,l.S)(e,t)))},[m.Km.ACTIONS.GET_CLIENT_BY_CLIENT_ID](e,t){U(e,`oauth/apps/${t}`)},[m.Km.ACTIONS.GET_CLIENT_BY_ID](e,t){U(e,`oauth/apps/${t}/by_id`)},[m.Km.ACTIONS.GET_CLIENTS](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),a.Z.get("oauth/apps",{params:t}).then((t=>{"success"===t.data.status?(e.commit(m.Km.MUTATIONS.SET_CLIENTS,t.data.data.clients),e.commit(m.Km.MUTATIONS.SET_CLIENTS_PAGINATION,t.data.pagination)):(0,l.S)(e,null)})).catch((t=>(0,l.S)(e,t)))},[m.Km.ACTIONS.REVOKE_ALL_TOKENS](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.Km.MUTATIONS.SET_REVOCATION_SUCCESSFUL,!1),a.Z.post(`oauth/apps/${t}/revoke`).then((t=>{"success"===t.data.status?e.commit(m.Km.MUTATIONS.SET_REVOCATION_SUCCESSFUL,!0):(0,l.S)(e,null)})).catch((t=>(0,l.S)(e,t)))}},N={[m.Km.GETTERS.CLIENT]:e=>e.client,[m.Km.GETTERS.CLIENTS]:e=>e.clients,[m.Km.GETTERS.CLIENTS_PAGINATION]:e=>e.pagination,[m.Km.GETTERS.REVOCATION_SUCCESSFUL]:e=>e.revocationSuccessful},h={[m.Km.MUTATIONS.SET_CLIENT](e,t){e.client=t},[m.Km.MUTATIONS.EMPTY_CLIENT](e){e.client={}},[m.Km.MUTATIONS.SET_CLIENTS](e,t){e.clients=t},[m.Km.MUTATIONS.SET_CLIENTS_PAGINATION](e,t){e.pagination=t},[m.Km.MUTATIONS.SET_REVOCATION_SUCCESSFUL](e,t){e.revocationSuccessful=t}},z={client:{},clients:[],pagination:{},revocationSuccessful:!1},w={state:z,actions:g,getters:N,mutations:h};var f=w,v=n(2540);const{locale:C}=v.Z.global,D={[m.SY.ACTIONS.GET_APPLICATION_CONFIG](e){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.SY.MUTATIONS.UPDATE_APPLICATION_LOADING,!0),a.Z.get("config").then((t=>{"success"===t.data.status?e.commit(m.SY.MUTATIONS.UPDATE_APPLICATION_CONFIG,t.data.data):(0,l.S)(e,null)})).catch((t=>(0,l.S)(e,t))).finally((()=>e.commit(m.SY.MUTATIONS.UPDATE_APPLICATION_LOADING,!1)))},[m.SY.ACTIONS.GET_APPLICATION_STATS](e){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),a.Z.get("stats/all").then((t=>{"success"===t.data.status?e.commit(m.SY.MUTATIONS.UPDATE_APPLICATION_STATS,t.data.data):(0,l.S)(e,null)})).catch((t=>(0,l.S)(e,t)))},[m.SY.ACTIONS.UPDATE_APPLICATION_CONFIG](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),a.Z.patch("config",t).then((t=>{"success"===t.data.status?(e.commit(m.SY.MUTATIONS.UPDATE_APPLICATION_CONFIG,t.data.data),d.Z.push("/admin/application")):(0,l.S)(e,null)})).catch((t=>(0,l.S)(e,t)))},[m.SY.ACTIONS.UPDATE_APPLICATION_LANGUAGE](e,t){document.querySelector("html")?.setAttribute("lang",t),e.commit(m.SY.MUTATIONS.UPDATE_LANG,t),C.value=t}},k={[m.SY.GETTERS.APP_CONFIG]:e=>e.application.config,[m.SY.GETTERS.APP_LOADING]:e=>e.appLoading,[m.SY.GETTERS.APP_STATS]:e=>e.application.statistics,[m.SY.GETTERS.ERROR_MESSAGES]:e=>e.errorMessages,[m.SY.GETTERS.LANGUAGE]:e=>e.language,[m.SY.GETTERS.LOCALE]:e=>e.locale};var P=n(6287);const L={[m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES](e){e.errorMessages=null},[m.SY.MUTATIONS.SET_ERROR_MESSAGES](e,t){e.errorMessages=t},[m.SY.MUTATIONS.UPDATE_APPLICATION_CONFIG](e,t){e.application.config=t},[m.SY.MUTATIONS.UPDATE_APPLICATION_LOADING](e,t){e.appLoading=t},[m.SY.MUTATIONS.UPDATE_APPLICATION_STATS](e,t){e.application.statistics=t},[m.SY.MUTATIONS.UPDATE_LANG](e,t){e.language=t,e.locale=P.v1[t]}};var M=n(5826);const b={root:!0,language:"en",locale:M.Z,errorMessages:null,application:{statistics:{sports:0,uploads_dir_size:0,users:0,workouts:0}},appLoading:!1},y={[m.O8.ACTIONS.GET_SPORTS](e){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),a.Z.get("sports").then((t=>{"success"===t.data.status?(e.commit(m.O8.MUTATIONS.SET_SPORTS,t.data.data.sports),e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!1)):(0,l.S)(e,null)})).catch((t=>(0,l.S)(e,t)))},[m.O8.ACTIONS.UPDATE_SPORTS](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),a.Z.patch(`sports/${t.id}`,{is_active:t.isActive}).then((t=>{"success"===t.data.status?e.dispatch(m.O8.ACTIONS.GET_SPORTS):(0,l.S)(e,null)})).catch((t=>(0,l.S)(e,t)))}},G={[m.O8.GETTERS.SPORTS]:e=>e.sports},F={[m.O8.MUTATIONS.SET_SPORTS](e,t){e.sports=t}},W={sports:[]},K={state:W,actions:y,getters:G,mutations:F};var Y=K;const x={[m.gu.ACTIONS.GET_USER_STATS](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),a.Z.get(`stats/${t.username}/${t.filterType}`,{params:t.params}).then((t=>{"success"===t.data.status?e.commit(m.gu.MUTATIONS.UPDATE_USER_STATS,t.data.data.statistics):(0,l.S)(e,null)})).catch((t=>(0,l.S)(e,t)))}},B={[m.gu.GETTERS.USER_STATS]:e=>e.statistics},$={[m.gu.MUTATIONS.UPDATE_USER_STATS](e,t){e.statistics=t},[m.gu.MUTATIONS.EMPTY_USER_STATS](e){e.statistics={}}},Z={statistics:{}},H={state:Z,actions:x,getters:B,mutations:$};var q=H;const V={[m.RT.GETTERS.USER]:e=>e.user,[m.RT.GETTERS.USERS]:e=>e.users,[m.RT.GETTERS.USERS_IS_SUCCESS]:e=>e.isSuccess,[m.RT.GETTERS.USERS_LOADING]:e=>e.loading,[m.RT.GETTERS.USERS_PAGINATION]:e=>e.pagination},j={[m.RT.MUTATIONS.UPDATE_USER](e,t){e.user=t},[m.RT.MUTATIONS.UPDATE_USER_IN_USERS](e,t){e.users=e.users.map((e=>e.username===t.username?t:e))},[m.RT.MUTATIONS.UPDATE_USERS](e,t){e.users=t},[m.RT.MUTATIONS.UPDATE_USERS_LOADING](e,t){e.loading=t},[m.RT.MUTATIONS.UPDATE_USERS_PAGINATION](e,t){e.pagination=t},[m.RT.MUTATIONS.UPDATE_IS_SUCCESS](e,t){e.isSuccess=t}},X={user:{},users:[],loading:!1,isSuccess:!1,pagination:{}},J={state:X,actions:E,getters:V,mutations:j};var Q=J,ee=n(52);const te=(e,t,n)=>{e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),a.Z.get("workouts",{params:t}).then((t=>{"success"===t.data.status?(e.commit(m.aX.MUTATIONS[n],t.data.data.workouts),n===ee.CW.SET_USER_WORKOUTS&&e.commit(m.aX.MUTATIONS.SET_WORKOUTS_PAGINATION,t.data.pagination)):(0,l.S)(e,null)})).catch((t=>(0,l.S)(e,t)))},ne={[m.aX.ACTIONS.GET_CALENDAR_WORKOUTS](e,t){e.commit(m.aX.MUTATIONS.EMPTY_CALENDAR_WORKOUTS),te(e,t,ee.CW.SET_CALENDAR_WORKOUTS)},[m.aX.ACTIONS.GET_USER_WORKOUTS](e,t){te(e,t,ee.CW.SET_USER_WORKOUTS)},[m.aX.ACTIONS.GET_TIMELINE_WORKOUTS](e,t){te(e,t,ee.CW.SET_TIMELINE_WORKOUTS)},[m.aX.ACTIONS.GET_MORE_TIMELINE_WORKOUTS](e,t){te(e,t,ee.CW.ADD_TIMELINE_WORKOUTS)},[m.aX.ACTIONS.GET_WORKOUT_DATA](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.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(m.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(m.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(m.aX.MUTATIONS.SET_WORKOUT_GPX,t.data.data.gpx)})))}else e.commit(m.aX.MUTATIONS.EMPTY_WORKOUT),(0,l.S)(e,null)})).catch((t=>{e.commit(m.aX.MUTATIONS.EMPTY_WORKOUT),(0,l.S)(e,t)})).finally((()=>e.commit(m.aX.MUTATIONS.SET_WORKOUT_LOADING,!1)))},[m.aX.ACTIONS.DELETE_WORKOUT](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.aX.MUTATIONS.SET_WORKOUT_LOADING,!0),a.Z["delete"](`workouts/${t.workoutId}`).then((()=>{e.commit(m.aX.MUTATIONS.EMPTY_WORKOUT),e.dispatch(m.YN.ACTIONS.GET_USER_PROFILE),d.Z.push("/")})).catch((t=>{(0,l.S)(e,t)})).finally((()=>e.commit(m.aX.MUTATIONS.SET_WORKOUT_LOADING,!1)))},[m.aX.ACTIONS.EDIT_WORKOUT](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.aX.MUTATIONS.SET_WORKOUT_LOADING,!0),a.Z.patch(`workouts/${t.workoutId}`,t.data).then((()=>{e.dispatch(m.YN.ACTIONS.GET_USER_PROFILE),e.dispatch(m.aX.ACTIONS.GET_WORKOUT_DATA,{workoutId:t.workoutId}).then((()=>{d.Z.push({name:"Workout",params:{workoutId:t.workoutId}})}))})).catch((t=>{(0,l.S)(e,t)})).finally((()=>e.commit(m.aX.MUTATIONS.SET_WORKOUT_LOADING,!1)))},[m.aX.ACTIONS.ADD_WORKOUT](e,t){if(e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.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(m.YN.ACTIONS.GET_USER_PROFILE);const n=t.data.data.workouts[0];d.Z.push(1===t.data.data.workouts.length?`/workouts/${n.id}`:"/")}})).catch((t=>{(0,l.S)(e,t)})).finally((()=>e.commit(m.aX.MUTATIONS.SET_WORKOUT_LOADING,!1)))},[m.aX.ACTIONS.ADD_WORKOUT_WITHOUT_GPX](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.aX.MUTATIONS.SET_WORKOUT_LOADING,!0),a.Z.post("workouts/no_gpx",t).then((t=>{if("created"===t.data.status){e.dispatch(m.YN.ACTIONS.GET_USER_PROFILE);const n=t.data.data.workouts[0];d.Z.push(`/workouts/${n.id}`)}})).catch((t=>{(0,l.S)(e,t)})).finally((()=>e.commit(m.aX.MUTATIONS.SET_WORKOUT_LOADING,!1)))}},re={[m.aX.GETTERS.CALENDAR_WORKOUTS]:e=>e.calendar_workouts,[m.aX.GETTERS.TIMELINE_WORKOUTS]:e=>e.timeline_workouts,[m.aX.GETTERS.USER_WORKOUTS]:e=>e.user_workouts,[m.aX.GETTERS.WORKOUT_DATA]:e=>e.workoutData,[m.aX.GETTERS.WORKOUTS_PAGINATION]:e=>e.pagination},ae={[m.aX.MUTATIONS.ADD_TIMELINE_WORKOUTS](e,t){e.timeline_workouts=e.timeline_workouts.concat(t)},[m.aX.MUTATIONS.SET_CALENDAR_WORKOUTS](e,t){e.calendar_workouts=t},[m.aX.MUTATIONS.SET_TIMELINE_WORKOUTS](e,t){e.timeline_workouts=t},[m.aX.MUTATIONS.SET_USER_WORKOUTS](e,t){e.user_workouts=t},[m.aX.MUTATIONS.SET_WORKOUTS_PAGINATION](e,t){e.pagination=t},[m.aX.MUTATIONS.SET_WORKOUT](e,t){e.workoutData.workout=t},[m.aX.MUTATIONS.SET_WORKOUT_CHART_DATA](e,t){e.workoutData.chartData=t},[m.aX.MUTATIONS.SET_WORKOUT_GPX](e,t){e.workoutData.gpx=t},[m.aX.MUTATIONS.SET_WORKOUT_LOADING](e,t){e.workoutData.loading=t},[m.aX.MUTATIONS.EMPTY_CALENDAR_WORKOUTS](e){e.calendar_workouts=[]},[m.aX.MUTATIONS.EMPTY_WORKOUTS](e){e.calendar_workouts=[],e.user_workouts=[],e.timeline_workouts=[]},[m.aX.MUTATIONS.EMPTY_WORKOUT](e){e.workoutData={gpx:"",loading:!1,workout:{},chartData:[]}}},oe={calendar_workouts:[],timeline_workouts:[],pagination:{},user_workouts:[],workoutData:{gpx:"",loading:!1,workout:{},chartData:[]}},se={state:oe,actions:ne,getters:re,mutations:ae};var ie=se;const le={authUserModule:I,oAuthModule:f,sportsModule:Y,statsModule:q,usersModule:Q,workoutsModule:ie},ce={state:b,actions:D,getters:k,mutations:L,modules:le};var ue=ce;const de=(0,r.MT)(ue);var me=de},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,{Hf:function(){return a},Ne:function(){return c},fS:function(){return r},lM:function(){return d},pm:function(){return l},z_:function(){return s}});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}"`)}},p=(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}"`)}},A=(e,t)=>(0,m.utcToZonedTime)(new Date(e),t),O=(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})}},R=(e,t=null,n=null)=>(t||(t="yyyy/MM/dd"),t=g(t,S.value),n||(n="HH:mm"),{workout_date:(0,d.Z)(e,t,{locale:E.v1[S.value]}),workout_time:(0,d.Z)(e,n)}),I=["MM/dd/yyyy","dd/MM/yyyy","yyyy-MM-dd","date_string"],U={de:"do MMM yyyy",en:"MMM. do, yyyy",fr:"d MMM yyyy"},g=(e,t)=>"date_string"===e?U[t]:e,N=(e,t,n,r=!0,a=null)=>(a||(a=S.value),(0,d.Z)(A(e,t),`${g(n,a)}${r?" HH:mm":""}`,{locale:E.v1[a]})),h=(e,t,n=null)=>{const r=n||S.value,a=[];return I.map((n=>{const o=g(n,r);a.push({label:`${o} - ${N(e,t,o,!1,r)}`,value:n})})),a}},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}});var r=n(5801);const a=()=>"/api/",o=(e,t,n="UNKNOWN")=>{if(t&&"canceled"===t.message)return;if(401===t?.response?.status&&"invalid_token"===t.response.data.error)return localStorage.removeItem("authToken"),void e.dispatch(r.YN.ACTIONS.CHECK_AUTH_USER);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}});const r={"Cycling (Sport)":"#4c9792","Cycling (Transport)":"#88af98","Cycling (Virtual)":"#64a360",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 C},aZ:function(){return v},v1:function(){return f}});n(7658);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),_=n(7982),E=n(3500),S=n(1640),T=n(2540),p=n(6558),A=n(6287),O=n(631),R=n(3649);const{locale:I}=T.Z.global,U={week:{api:"yyyy-MM-dd",chart:"MM/dd/yyyy"},month:{api:"yyyy-MM",chart:"MM/yyyy"},year:{api:"yyyy",chart:"yyyy"}},g=["average_speed","nb_workouts","total_duration","total_distance","total_ascent","total_descent"],N=(e,t)=>{const n=[];for(let r=(0,p.Nh)(e.duration,e.start,t);r<=e.end;r=(0,p.xA)(e.duration,r))n.push(r);return n},h=(e,t,n=!1)=>{const r={label:e,backgroundColor:[t],data:[]};return n&&(r.type="line",r.borderColor=[t],r.spanGaps=!0),r},z=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:O.Zo[e.label];t.average_speed.push(h(e.label,n,!0)),t.nb_workouts.push(h(e.label,n)),t.total_distance.push(h(e.label,n)),t.total_duration.push(h(e.label,n)),t.total_ascent.push(h(e.label,n)),t.total_descent.push(h(e.label,n))})),t},w=(e,t,n)=>{switch(e){case"average_speed":case"total_distance":case"total_ascent":case"total_descent":return(0,R.f3)(["average_speed","total_distance"].includes(e)?"km":"m",t,n);default:case"nb_workouts":case"total_duration":return t}},f=(e,t,n,a,o,s,i)=>{const l=N(e,t),c=U[e.duration],u=n.filter((e=>a.includes(e.id))),d=[],m=z(u),_={};return u.map((e=>_[e.label]=e.id)),l.map((t=>{const n=(0,r.Z)(t,c.api),a=(0,r.Z)(t,"week"===e.duration?(0,p.mh)(i,I.value):c.chart,{locale:A.v1[I.value]});d.push(a),g.map((e=>{m[e].map((t=>{t.data.push(n in o&&_[t.label]in o[n]?w(e,o[n][_[t.label]][e],s):"average_speed"===e?null:0)}))}))})),{labels:d,datasets:m}},v=(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)),_="year"===t?(0,c.Z)(e):"week"===t?(0,u.Z)(e,{weekStartsOn:r}):(0,d.Z)(e);return{duration:t,end:_,start:m}},C=(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,_.Z)(p,1):(0,E.Z)(p,1),{weekStartsOn:A}):(0,d.Z)(t?(0,i.Z)(p,1):(0,S.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,_.Z)(T,1):(0,E.Z)(T,1),{weekStartsOn:A}):(0,l.Z)(t?(0,i.Z)(T,1):(0,S.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}});n(7658);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(5793);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(5793),a=n(3577),o=n(2715);const s={class:"table-selects"},i=["value"],l=["value"],c=["value"],u=["value"],d=["value"],m=["value"];var _=(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:_,query:E,sort:S,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)(_),(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)(S),(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 S=(0,E.Z)(_,[["__scopeId","data-v-72463173"]]);var T=S},7167:function(e,t,n){"use strict";n.d(t,{Z:function(){return d}});var r=n(5793);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(5793),a=n(2715),o=(n(7658),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),o=(0,a.iH)(),s=(0,a.iH)(!1);function i(){o.value=setTimeout((()=>{s.value=!0}),500)}return(0,r.bv)((()=>i())),(0,r.Ah)((()=>{o.value&&clearTimeout(o.value)})),(e,t)=>s.value?((0,r.wg)(),(0,r.j4)(d,{key:0,title:"404",message:e.$t(`error.NOT_FOUND.${(0,a.SU)(n)}`),"button-text":e.$t("common.HOME")},null,8,["message","button-text"])):(0,r.kq)("",!0)}});const _=m;var E=_},5020:function(e,t,n){"use strict";n.d(t,{Z:function(){return T}});var r=n(5793),a=n(3577),o=n(2715),s=n(2766);const i=e=>((0,r.dD)("data-v-3a9a4a65"),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 _=(0,r.aZ)({__name:"Pagination",props:{pagination:null,path:null,query:null},setup(e){const t=e,{pagination:n,path:i,query:_}=(0,o.BK)(t);function E(e,t){const n=Object.assign({},_.value);return n.page=t?e+t:e,n}return(e,t)=>{const _=(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)(_,{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)(_,{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)(_,{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 S=(0,E.Z)(_,[["__scopeId","data-v-3a9a4a65"]]);var T=S},8403:function(e,t,n){"use strict";n.d(t,{Z:function(){return v}});var r=n(5793),a=n(2715),o=n(9963),s=n(3577),i=n(4366),l=n(5801),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=await n.e(881).then(n.bind(n,8056)),s={de:o,en:r,fr:a,nb:r},l=s[e],c={graphs:t.default.adjacencyGraphs,dictionary:{...t.default.dictionary,...l.default.dictionary}};i.Mu.setOptions(c)},d=e=>{switch(e){case 2:return"AVERAGE";case 3:return"GOOD";case 4:return"STRONG";default:return"WEAK"}},m={class:"password-strength"},_=["value"],E={key:0,class:"password-strength-details"},S={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])),R=(0,a.iH)(0),I=(0,a.iH)(""),U=(0,a.iH)([]),g=(0,a.iH)("0% 100%");function N(e){const t=(0,i.tu)(e);R.value=t.score,I.value=d(R.value),U.value=t.feedback.suggestions,g.value=100*R.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?I.value="":N(e)})),(e,t)=>((0,r.wg)(),(0,r.iD)("div",m,[(0,r._)("input",{class:(0,s.C_)(["password-slider",`strength-${R.value}`]),style:(0,s.j5)({backgroundSize:g.value}),type:"range",value:R.value,min:"0",max:"4",step:"1"},null,14,_),I.value?((0,r.wg)(),(0,r.iD)("div",E,[(0,r._)("span",S,(0,s.zw)(e.$t("user.PASSWORD_STRENGTH.LABEL"))+": "+(0,s.zw)(e.$t(`user.PASSWORD_STRENGTH.${I.value}`)),1),U.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)(U.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 R=(0,O.Z)(A,[["__scopeId","data-v-74e71df5"]]);var I=R;const U=e=>((0,r.dD)("data-v-5a126514"),e=e(),(0,r.Cn)(),e),g={class:"password-input"},N=["id","disabled","placeholder","required","type"],h={key:0,class:"form-info"},z=U((()=>(0,r._)("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1)));var w=(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),_=(0,a.iH)(!1),E=(0,a.iH)("");function S(){_.value=!_.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",g,[(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:_.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:S},[(0,r.Uk)((0,s.zw)(e.$t(`user.${_.value?"HIDE":"SHOW"}_PASSWORD`))+" ",1),(0,r._)("i",{class:(0,s.C_)(["fa","fa-eye"+(_.value?"-slash":"")]),"aria-hidden":"true"},null,2)]),(0,a.SU)(i)?((0,r.wg)(),(0,r.iD)("div",h,[z,(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)(I,{key:1,password:E.value},null,8,["password"])):(0,r.kq)("",!0)]))}});const f=(0,O.Z)(w,[["__scopeId","data-v-5a126514"]]);var v=f},2056:function(e,t,n){"use strict";n.d(t,{Z:function(){return u}});var r=n(5793),a=n(3577),o=n(2715),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},3170:function(e,t,n){"use strict";n.d(t,{Z:function(){return y}});var r=n(5793),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},_=["checked"],E={key:1},S=["checked"],T={key:2},p=["checked"];function A(e,t,n,A,O,R){const I=(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,_),(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,S),(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)(I,{key:0,datasets:e.datasets,labels:e.labels,displayedData:e.displayedData,displayedSportIds:e.displayedSportIds,fullStats:e.fullStats,useImperialUnits:e.user.imperial_units},null,8,["datasets","labels","displayedData","displayedSportIds","fullStats","useImperialUnits"])):(0,r.kq)("",!0)]))])}var O=n(4850),R=n(2715);const I={class:"chart"};function U(e,t,n,a,o,s){const i=(0,r.up)("BarChart");return(0,r.wg)(),(0,r.iD)("div",I,[(0,r.Wm)(i,(0,r.dG)(e.barChartProps,{class:"bar-chart"}),null,16)])}var g=n(6518),N=n(9150);const h=(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 z=n(3649);const w=(e,t,n,r=!0,a="km")=>{const o=n?z.Dl[a].defaultTarget:a;switch(e){case"average_speed":return`${t.toFixed(2)} ${o}/h`;case"total_duration":return h(t,r);case"total_distance":case"total_ascent":case"total_descent":return`${t.toFixed(2)} ${o}`;default:return t.toString()}};var f=(0,r.aZ)({name:"Chart",components:{BarChart:g.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)}function o(e){return["total_ascent","total_descent"].includes(e)?"m":"km"}const s=(0,r.Fl)((()=>({labels:e.labels,datasets:JSON.parse(JSON.stringify(e.datasets))}))),i=(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 w(e.displayedData,+t,e.useImperialUnits,!1,o(e.displayedData))}},afterFit:function(t){t.width=e.fullStats?90: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 w(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?w(e.displayedData,t,e.useImperialUnits,!1,o(e.displayedData)):null}}},legend:{display:!1},tooltip:{interaction:{intersect:!0,mode:"index",position:"average_speed"===e.displayedData?"nearest":"average"},filter:function(e){return"0"!==e.formattedValue},callbacks:{label:function(n){let r=t(`sports.${n.dataset.label}.LABEL`)||"";return r&&(r+=": "),null!==n.parsed.y&&(r+=w(e.displayedData,n.parsed.y,e.useImperialUnits,!0,o(e.displayedData))),r},footer:function(n){if("average_speed"===e.displayedData)return"";let r=0;return n.map((e=>{r+=e.parsed.y})),`${t("common.TOTAL")}: `+w(e.displayedData,r,e.useImperialUnits,!0,o(e.displayedData))}}}}}))),{barChartProps:l}=(0,g.xZ)({chartData:s,options:i});return{barChartProps:l}}}),v=n(3744);const C=(0,v.Z)(f,[["render",U]]);var D=C,k=n(5801),P=n(9917),L=n(9318),M=(0,r.aZ)({name:"UserMonthStats",components:{Chart:D},props:{sports:{type:Object,required:!0},user:{type:Object,required:!0},chartParams:{type:Object,required:!0},displayedSportIds:{type:Array,default:()=>[]},fullStats:{type:Boolean,default:!1},hideChartIfNoData:{type:Boolean,default:!1}},setup(e){const t=(0,P.o)(),n=(0,R.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,e.user.date_format)));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-d5e9b348"]]);var y=b},2179:function(e,t,n){"use strict";n.d(t,{Z:function(){return N}});var r=n(5793),a=n(2715),o=n(3577),s=n(6595),i=n(5801),l=n(9917);const c={class:"box user-header"},u={class:"user-details"},d={class:"user-name"},m={class:"user-stats"},_={class:"user-stat"},E={class:"stat-number"},S={class:"stat-label"},T={class:"user-stat"},p={class:"stat-label"},A={class:"user-stat hide-small"},O={class:"stat-number"},R={class:"stat-label"};var I=(0,r.aZ)({__name:"UserHeader",props:{user:null},setup(e){const t=e,{user:n}=(0,a.BK)(t),I=(0,l.o)(),U=(0,r.Fl)((()=>I.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",_,[(0,r._)("span",E,(0,o.zw)((0,a.SU)(n).nb_workouts),1),(0,r._)("span",S,(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)(U).imperial_units},null,8,["distance","useImperialUnits"]),(0,r._)("span",p,(0,o.zw)((0,a.SU)(U).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",R,(0,o.zw)(e.$t("workouts.SPORT",(0,a.SU)(n).nb_sports)),1)])])])])}}}),U=n(3744);const g=(0,U.Z)(I,[["__scopeId","data-v-20291951"]]);var N=g},1585:function(e,t,n){"use strict";n.d(t,{Z:function(){return f}});n(7658);var r=n(5793),a=n(2715),o=n(3577),s=n(9963),i=n(4850),l=n(5801),c=n(9917),u=n(6558),d=n(6287);const m={id:"user-infos",class:"description-list"},_={key:1,class:"info-box success-message"},E={key:4,class:"email-form form-box"},S={class:"form-items",for:"email"},T={class:"form-items",for:"email"},p={class:"form-buttons"},A={class:"confirm",type:"submit"},O=["onClick"],R={key:5},I={class:"user-bio"},U={key:0,class:"profile-buttons"},g=["onClick"],N={key:1,class:"profile-buttons"};var h=(0,r.aZ)({__name:"UserInfos",props:{user:null,fromAdmin:{type:Boolean,default:!1}},setup(e){const t=e,n=(0,c.o)(),{user:h,fromAdmin:z}=(0,a.BK)(t),w=(0,r.Fl)((()=>n.getters[l.SY.GETTERS.LANGUAGE])),f=(0,r.Fl)((()=>n.getters[l.YN.GETTERS.AUTH_USER_PROFILE])),v=(0,r.Fl)((()=>t.user.created_at?(0,u.p6)(t.user.created_at,f.value.timezone,f.value.date_format):"")),C=(0,r.Fl)((()=>t.user.birth_date?(0,i.Z)(new Date(t.user.birth_date),`${(0,u.mh)(f.value.date_format,w.value)}`,{locale:d.v1[w.value]}):"")),D=(0,r.Fl)((()=>n.getters[l.RT.GETTERS.USERS_IS_SUCCESS])),k=(0,r.Fl)((()=>n.getters[l.SY.GETTERS.ERROR_MESSAGES])),P=(0,r.Fl)((()=>n.getters[l.SY.GETTERS.APP_CONFIG])),L=(0,a.iH)(""),M=(0,a.iH)(!1),b=(0,a.iH)(!1),y=(0,a.iH)(""),G=(0,a.iH)("");function F(e){L.value=e,""!==e&&n.commit(l.RT.MUTATIONS.UPDATE_IS_SUCCESS,!1)}function W(e){n.dispatch(l.RT.ACTIONS.DELETE_USER_ACCOUNT,{username:e})}function K(e){G.value="password-reset",n.dispatch(l.RT.ACTIONS.UPDATE_USER,{username:e,resetPassword:!0})}function Y(e){n.dispatch(l.RT.ACTIONS.UPDATE_USER,{username:e,activate:!0})}function x(){Z(),y.value=h.value.email_to_confirm?h.value.email_to_confirm:"",b.value=!0,G.value="email-update"}function B(){y.value="",b.value=!1}function $(e){n.dispatch(l.RT.ACTIONS.UPDATE_USER,{username:e,new_email:y.value})}function Z(){n.commit(l.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),n.commit(l.RT.MUTATIONS.UPDATE_IS_SUCCESS,!1),G.value=""}return(0,r.Ah)((()=>Z())),(0,r.YP)((()=>D.value),(e=>{e&&(F(""),B())})),(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",m,[L.value?((0,r.wg)(),(0,r.j4)(n,{key:0,title:e.$t("common.CONFIRMATION"),message:"delete"===L.value?"admin.CONFIRM_USER_ACCOUNT_DELETION":"admin.CONFIRM_USER_PASSWORD_RESET",strongMessage:(0,a.SU)(h).username,onConfirmAction:t[0]||(t[0]=e=>"delete"===L.value?W((0,a.SU)(h).username):K((0,a.SU)(h).username)),onCancelAction:t[1]||(t[1]=e=>F(""))},null,8,["title","message","strongMessage"])):(0,r.kq)("",!0),(0,a.SU)(D)?((0,r.wg)(),(0,r.iD)("div",_,(0,o.zw)(e.$t(`admin.${"password-reset"===G.value?"PASSWORD_RESET":"USER_EMAIL_UPDATE"}_SUCCESSFUL`)),1)):(0,r.kq)("",!0),(0,a.SU)(h).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)(k)?((0,r.wg)(),(0,r.j4)(l,{key:3,message:(0,a.SU)(k)},null,8,["message"])):(0,r.kq)("",!0),b.value?((0,r.wg)(),(0,r.iD)("div",E,[(0,r._)("form",{class:(0,o.C_)({errors:M.value}),onSubmit:t[4]||(t[4]=(0,s.iM)((e=>$((0,a.SU)(h).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)(h).email=e),disabled:""},null,512),[[s.nr,(0,a.SU)(h).email]])]),(0,r._)("label",T,[(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=>y.value=e)},null,512),[[s.nr,y.value]])]),(0,r._)("div",p,[(0,r._)("button",A,(0,o.zw)(e.$t("buttons.SUBMIT")),1),(0,r._)("button",{class:"cancel",onClick:(0,s.iM)(B,["prevent"])},(0,o.zw)(e.$t("buttons.CANCEL")),9,O)])],34)])):((0,r.wg)(),(0,r.iD)("div",R,[(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)(v)),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)(h).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)(h).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)(C)),1),(0,r._)("dt",null,(0,o.zw)(e.$t("user.PROFILE.LOCATION"))+":",1),(0,r._)("dd",null,(0,o.zw)((0,a.SU)(h).location),1),(0,r._)("dt",null,(0,o.zw)(e.$t("user.PROFILE.BIO"))+":",1),(0,r._)("dd",I,(0,o.zw)((0,a.SU)(h).bio),1)]),(0,a.SU)(z)?((0,r.wg)(),(0,r.iD)("div",U,[(0,a.SU)(f).username!==(0,a.SU)(h).username?((0,r.wg)(),(0,r.iD)("button",{key:0,class:"danger",onClick:t[5]||(t[5]=(0,s.iM)((e=>F("delete")),["prevent"]))},(0,o.zw)(e.$t("admin.DELETE_USER")),1)):(0,r.kq)("",!0),(0,a.SU)(h).is_active?(0,r.kq)("",!0):((0,r.wg)(),(0,r.iD)("button",{key:1,onClick:t[6]||(t[6]=(0,s.iM)((e=>Y((0,a.SU)(h).username)),["prevent"]))},(0,o.zw)(e.$t("admin.ACTIVATE_USER_ACCOUNT")),1)),(0,a.SU)(f).username!==(0,a.SU)(h).username?((0,r.wg)(),(0,r.iD)("button",{key:2,onClick:(0,s.iM)(x,["prevent"])},(0,o.zw)(e.$t("admin.UPDATE_USER_EMAIL")),9,g)):(0,r.kq)("",!0),(0,a.SU)(f).username!==(0,a.SU)(h).username&&(0,a.SU)(P).is_email_sending_enabled?((0,r.wg)(),(0,r.iD)("button",{key:3,onClick:t[7]||(t[7]=(0,s.iM)((e=>F("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",N,[(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)]))]))])}}}),z=n(3744);const w=(0,z.Z)(h,[["__scopeId","data-v-217519af"]]);var f=w},2411:function(e,t,n){"use strict";n.d(t,{Z:function(){return C}});var r=n(5793),a=n(3577),o=n(2715),s=n(9963),i=n(2201),l=n(8403),c=n(5801),u=n(9917);const d=e=>((0,r.dD)("data-v-b3c885de"),e=e(),(0,r.Cn)(),e),m={id:"user-form"},_={key:2,class:"info-box success-message"},E={class:"form-items"},S=["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"},R=d((()=>(0,r._)("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1))),I=["disabled"],U={key:3},g={key:0},N={key:4},h={class:"account"},z={key:5};var w=(0,r.aZ)({__name:"UserAuthForm",props:{action:null,token:{default:""}},setup(e){const t=e,n=(0,i.yj)(),d=(0,u.o)(),{action:w}=(0,o.BK)(t),f=(0,o.qj)({username:"",email:"",password:""}),v=(0,r.Fl)((()=>G(t.action))),C=(0,r.Fl)((()=>d.getters[c.SY.GETTERS.ERROR_MESSAGES])),D=(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 F(){y.value=!0}function W(e){f.password=e}function K(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 Y(){f.username="",f.email="",f.password=""}return(0,r.Ah)((()=>d.commit(c.SY.MUTATIONS.EMPTY_ERROR_MESSAGES))),(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,Y()})),(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)(w))?(0,o.SU)(w):"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)(D)?((0,r.wg)(),(0,r.iD)("div",_,(0,a.zw)(e.$t("user.PROFILE.SUCCESSFUL_"+((0,o.SU)(D)?"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=>K((0,o.SU)(w))),["prevent"]))},[(0,r._)("div",E,["register"===(0,o.SU)(w)?(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:F,"onUpdate:modelValue":t[0]||(t[0]=e=>f.username=e),placeholder:e.$t("user.USERNAME")},null,40,S)),[[s.nr,f.username]]):(0,r.kq)("",!0),"register"===(0,o.SU)(w)?((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)(w)?(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:F,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)(w))?((0,r.wg)(),(0,r.iD)("div",O,[R,(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)(w))?(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)(w)?e.$t("user.ENTER_PASSWORD"):e.$t("user.PASSWORD"),password:f.password,checkStrength:["reset","register"].includes((0,o.SU)(w)),onUpdatePassword:W,onPasswordError:F},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,I)],34),"login"===(0,o.SU)(w)?((0,r.wg)(),(0,r.iD)("div",U,[(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",g,"-")):(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)(w)?((0,r.wg)(),(0,r.iD)("div",N,[(0,r._)("span",h,(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)(w))&&(0,o.SU)(P).is_email_sending_enabled?((0,r.wg)(),(0,r.iD)("div",z,[(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)(C)?((0,r.wg)(),(0,r.j4)(c,{key:6,message:(0,o.SU)(C)},null,8,["message"])):(0,r.kq)("",!0)],2)])],2)}}}),f=n(3744);const v=(0,f.Z)(w,[["__scopeId","data-v-b3c885de"]]);var C=v},6595:function(e,t,n){"use strict";n.d(t,{Z:function(){return _}});var r=n(5793),a=n(2715),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 _=m},5630:function(e,t,n){"use strict";n.d(t,{Z:function(){return u}});var r=n(5793),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":9923,"./en/en.ts":8757,"./fr/fr.ts":6625,"./nb/nb.ts":8891};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:"f95630ef",93:"02cf293c",193:"71389307",243:"e551248f",328:"4b3687ad",401:"5d4c1679",431:"e5102e07",633:"81a8ddc8",845:"6c65e34f",858:"3f2a93f2",881:"43430dfc"}[e]+".js"}}(),function(){n.miniCssF=function(e){return"static/css/"+{24:"reset",193:"statistics",328:"admin",401:"workouts",845:"profile"}[e]+"."+{24:"e2527ec6",193:"40e24e75",328:"73df498d",401:"babda0d5",845:"9f83730d"}[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 controller = new AbortController()\n config.signal = controller.signal\n const requestKey = removeRequestIfPending(config)\n pendingRequests.set(requestKey, controller)\n\n const authToken = store.getters[AUTH_USER_STORE.GETTERS.AUTH_TOKEN]\n if (authToken) {\n const auth = `Bearer ${authToken}`\n if (config.headers && config.headers.Authorization !== auth) {\n config.headers.Authorization = `Bearer ${authToken}`\n }\n }\n return config\n },\n (error) => Promise.reject(error)\n)\n\nauthApi.interceptors.response.use(\n (response) => {\n removeRequestIfPending(response.config)\n return response\n },\n (error) => {\n if (error.message !== 'canceled') {\n removeRequestIfPending(error.response.config)\n }\n return Promise.reject(error)\n }\n)\n\nexport default authApi\n","import { AxiosRequestConfig } from 'axios'\n\nexport const pendingRequests = new Map()\n\nconst generateRequestKey = (config: AxiosRequestConfig): string => {\n const { method, url, params = {}, data = {} } = config\n return [method, url, JSON.stringify(params), JSON.stringify(data)].join('')\n}\n\nexport const removeRequestIfPending = (config: AxiosRequestConfig): string => {\n const requestKey = generateRequestKey(config)\n if (pendingRequests.has(requestKey)) {\n const controller = pendingRequests.get(requestKey) || {}\n controller?.abort()\n pendingRequests.delete(requestKey)\n }\n return requestKey\n}\n","import { createI18n, LocaleMessages, VueMessageType } from 'vue-i18n'\n\n/**\n * Load locale messages\n *\n * The loaded `JSON` locale messages is pre-compiled by `@intlify/vue-i18n-loader`, which is integrated into `vue-cli-plugin-i18n`.\n * See: https://github.com/intlify/vue-i18n-loader#rocket-i18n-resource-pre-compilation\n */\nconst disabledLanguages = ['nb'] // to remove after norwegian translations release\n\nfunction loadLocaleMessages(): Record> {\n const locales = require.context('./locales', true, /[A-Za-z0-9-_,\\s]+\\.ts$/i)\n const messages: Record> = {}\n locales.keys().forEach((key) => {\n const matched = key.match(/([A-Za-z0-9-_]+)\\./i)\n if (\n matched &&\n matched.length > 1 &&\n !disabledLanguages.includes(matched[1])\n ) {\n const locale = matched[1]\n messages[locale] = locales(key).default\n }\n })\n return messages\n}\n\nexport default createI18n({\n legacy: false,\n locale: 'en',\n fallbackLocale: 'en',\n globalInjection: true,\n messages: loadLocaleMessages(),\n})\n","export default {\n \"CONTACT_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kontaktiere den Administrator\"])},\n \"FITTRACKEE_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"FitTrackee ist ein selbst-gehosteter Outdoor-Aktivitäts-Tracker.\"])},\n \"FITTRACKEE_LICENSE\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"unter \", _interpolate(_list(0)), \" Lizenz \"])},\n \"SOURCE_CODE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Quellcode\"])}\n}","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 \"at least one file in zip archive exceeds size limit, please check the archive\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mindestens eine Datei im ZIP-Archiv überschreitet das Größenlimit, bitte überprüfe das Archiv.\"])},\n \"email: valid email must be provided\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"E-Mail: Eine gültige E-Mail muss angegeben werden.\"])},\n \"error during gpx processing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fehler bei der GPX-Verarbeitung.\"])},\n \"error during gpx file parsing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fehler beim Einlesen der GPX-Datei\"])},\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 \"the number of files in the archive exceeds the limit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Die Anzahl der Dateien im Archiv überschreitet die Begrenzung.\"])},\n \"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 \"AUTHORIZE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Autorisieren\"])},\n \"BACK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Zurück\"])},\n \"CANCEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Abbrechen\"])},\n \"CLEAR_FILTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Filter löschen\"])},\n \"DELETE_MY_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mein Konto löschen\"])},\n \"DISABLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Deaktivieren\"])},\n \"EDIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bearbeiten\"])},\n \"ENABLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aktivieren\"])},\n \"FILTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Filter\"])},\n \"LOGIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anmelden\"])},\n \"NO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nein\"])},\n \"REGISTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registrieren\"])},\n \"RESET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Zurücksetzen\"])},\n \"SUBMIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Speichern\"])},\n \"YES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ja\"])}\n}","export default {\n \"ABOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Über\"])},\n \"CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bestätigung\"])},\n \"CONTACT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kontakt\"])},\n \"DAY\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"Tag\"]), _normalize([\"Tage\"])])},\n \"DISPLAYED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Angezeigt\"])},\n \"DOCUMENTATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dokumentation (en)\"])},\n \"HERE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"hier\"])},\n \"HIDDEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Versteckt\"])},\n \"HOME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Startseite\"])},\n \"SELECTS\": {\n \"ORDER_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 \"ADD_A_NEW_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Eine neue OAuth2-Anwendung hinzufügen\"])},\n \"APP\": {\n \"CLIENT_ID\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ID\"])},\n \"CLIENT_SECRET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geheimnis\"])},\n \"DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anwendungsbeschreibung\"])},\n \"ISSUE_AT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erstellt am\"])},\n \"NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anwendungsname\"])},\n \"REDIRECT_URL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Weiterleitungs-URL\"])},\n \"SCOPE\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geltungsbereich\"])},\n \"profile:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"erlaubt Schreibzugriff auf auth-Endpunkte\"])},\n \"profile:read_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"erlaubt Lesezugriff auf auth-Endpunkte\"])},\n \"users:read_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"erlaubt Lesezugriff auf users-Endpunkte\"])},\n \"users:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"erlaubt Schreibzugriff auf users-Endpunkte\"])},\n \"workouts:read_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"erlaubt Lesezugriff auf workouts-Endpunkte\"])},\n \"workouts:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"erlaubt Schreibzugriff auf workouts-Endpunkte\"])},\n \"application:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"erlaubt Schreibzugriff auf die Anwendungskonfiguration\"])}\n },\n \"URL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anwendungs-URL\"])}\n },\n \"APP_CREATED_SUCCESSFULLY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anwendung erfolgreich erstellt. Stelle sicher, dass du das Geheimnis kopierst, du kannst es nicht erneut anzeigen.\"])},\n \"APP_DELETION_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bist sicher, dass du diese App löschen willst?\"])},\n \"APP_REQUESTING_ACCESS\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Die Anwendung \", _interpolate(_list(0)), \" fragt an:\"])},\n \"APPS_LIST\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"OAuth2-Anwendungen\"])},\n \"AUTHORIZE_APP\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" den Zugriff auf deinen Account erlauben?\"])},\n \"COPY_TO_CLIPBOARD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"in Zwischenablage kopieren\"])},\n \"DELETE_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anwendung löschen\"])},\n \"NEW_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anwendung hinzufügen\"])},\n \"NO_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anwendung wurde nicht gefunden!\"])},\n \"NO_APPS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"keine Anwendungen\"])},\n \"NO_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"keine Beschreibung\"])},\n \"REVOKE_ALL_TOKENS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Alle Tokens zurückrufen\"])},\n \"TOKENS_REVOCATION_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bist du sicher, dass du alle Tokens zurückrufen möchtest?\"])},\n \"TOKENS_REVOKED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Alle vorhandenen und vergebenen Tokens wurde zurückgerufen.\"])}\n}","export default {\n \"Cycling (Sport)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Radfahren (Sport)\"])}\n },\n \"Cycling (Transport)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Radfahren (Pendeln)\"])}\n },\n \"Cycling (Virtual)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Radfahren (Virtuell)\"])}\n },\n \"Hiking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Wandern\"])}\n },\n \"Mountain Biking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mountainbiken\"])}\n },\n \"Mountain Biking (Electric)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mountainbiken (elektrisch)\"])}\n },\n \"Rowing\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Rudern\"])}\n },\n \"Running\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Laufen\"])}\n },\n \"Skiing (Alpine)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Skifahren (Alpin)\"])}\n },\n \"Skiing (Cross Country)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Skifahren (Langlauf)\"])}\n },\n \"Snowshoes\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Schneeschuhe\"])}\n },\n \"Trail\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Trail\"])}\n },\n \"Walking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Gehen\"])}\n }\n}","export default {\n \"STATISTICS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Statistik\"])},\n \"TIME_FRAMES\": {\n \"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ätigungs-E-Mail wurde an die angegebene Adresse geschickt.\"])},\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Admin\"])},\n \"ALREADY_HAVE_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hast du bereits ein Konto?\"])},\n \"CONFIRM_ACCOUNT_DELETION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Möchtest du dein Konto wirklich löschen? Alle Daten werden gelöscht. Dieser Vorgang kann nicht rückgängig gemacht werden\"])},\n \"CURRENT_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aktuelles Passwort\"])},\n \"EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"E-Mail\"])},\n \"EMAIL_INFO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Gebe eine gültige E-Mail-Adresse an.\"])},\n \"ENTER_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Gebe ein Passwort ein\"])},\n \"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 \"ASCENT_DATA\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anstiegs-bezogene Daten (Aufnahmen, gesamt)\"])},\n \"BACK_TO_PROFILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Zurück zum Profil\"])},\n \"BIO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Biographie\"])},\n \"BIRTH_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geburtsdatum\"])},\n \"DATE_FORMAT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Datumsanzeigeformat\"])},\n \"EDIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Profil bearbeiten\"])},\n \"EDIT_PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Einstellungen ändern\"])},\n \"EDIT_SPORTS_PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Einstellungen für Sportarten ändern\"])},\n \"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([\"Registrierungsdatum\"])},\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 \"APPS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anwendungen\"])},\n \"PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bild\"])},\n \"PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Einstellungen\"])},\n \"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([\"E-Mail zur Kontobestätigung erneut senden\"])},\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_HA\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Höchster Anstieg\"])},\n \"RECORD_LD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Längste Dauer\"])},\n \"RECORD_MS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. Geschwindigkeit\"])},\n \"REMAINING_CHARS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"verbleibende Zeichen\"])},\n \"SEGMENT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"Segment\"]), _normalize([\"Segmente\"])])},\n \"SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geschwindigkeit\"])},\n \"SPORT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"Sportart\"]), _normalize([\"Sportarten\"])])},\n \"START\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Start\"])},\n \"START_AND_FINISH\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Start und Ziel\"])},\n \"START_ELEVATION_AT_ZERO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Höhenachse bei Null starten\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Titel\"])},\n \"TO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"bis\"])},\n \"TOTAL_DURATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Gesamtdauer\"])},\n \"UPLOAD_FIRST_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Füge erstes Training hinzu!\"])},\n \"WEATHER\": {\n \"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 OAuth2Translations from './oauth2.json'\nimport SportsTranslations from './sports.json'\nimport StatisticsTranslations from './statistics.json'\nimport UserTranslations from './user.json'\nimport WorkoutsTranslations from './workouts.json'\n\nexport default {\n about: AboutTranslations,\n admin: AdministrationTranslations,\n api: ApiTranslations,\n buttons: ButtonsTranslations,\n common: CommonTranslations,\n dashboard: DashboardTranslations,\n error: ErrorTranslations,\n oauth2: OAuth2Translations,\n 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 \"at least one file in zip archive exceeds size limit, please check the archive\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"At least one file in zip archive exceeds size limit, please check the archive.\"])},\n \"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 \"the number of files in the archive exceeds the limit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"The number of files in the archive exceeds the limit.\"])},\n \"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 \"AUTHORIZE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Authorize\"])},\n \"BACK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Back\"])},\n \"CANCEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Cancel\"])},\n \"CLEAR_FILTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Clear filters\"])},\n \"DELETE_MY_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Delete my account\"])},\n \"DISABLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Disable\"])},\n \"EDIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Edit\"])},\n \"ENABLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enable\"])},\n \"FILTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Filter\"])},\n \"LOGIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Log in\"])},\n \"NO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No\"])},\n \"REGISTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Register\"])},\n \"RESET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reset\"])},\n \"SUBMIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Submit\"])},\n \"YES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Yes\"])}\n}","export default {\n \"ABOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"about\"])},\n \"CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Confirmation\"])},\n \"CONTACT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"contact\"])},\n \"DAY\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"day\"]), _normalize([\"days\"])])},\n \"DISPLAYED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Displayed\"])},\n \"DOCUMENTATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"documentation\"])},\n \"HERE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"here\"])},\n \"HIDDEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hidden\"])},\n \"HOME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Home\"])},\n \"SELECTS\": {\n \"ORDER_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 \"ADD_A_NEW_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Add a new OAuth2 application\"])},\n \"APP\": {\n \"CLIENT_ID\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Id\"])},\n \"CLIENT_SECRET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Secret\"])},\n \"DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Application description\"])},\n \"ISSUE_AT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Issue at\"])},\n \"NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Application name\"])},\n \"REDIRECT_URL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Redirect URL\"])},\n \"SCOPE\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Scope\"])},\n \"application:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"grants write access to application configuration.\"])},\n \"profile:read_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"grants read access to auth endpoints.\"])},\n \"profile:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"grants write access to auth endpoints.\"])},\n \"users:read_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"grants read access to users endpoints.\"])},\n \"users:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"grants write access to users endpoints.\"])},\n \"workouts:read_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"grants read access to workouts endpoints.\"])},\n \"workouts:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"grants write access to workouts endpoints.\"])}\n },\n \"URL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Application URL\"])}\n },\n \"APP_CREATED_SUCCESSFULLY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Application created successfully. Make sure to copy the secret now, it won't show up again.\"])},\n \"APP_DELETION_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Are you sure you want to delete this app?\"])},\n \"APP_REQUESTING_ACCESS\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"The application \", _interpolate(_list(0)), \" is requesting:\"])},\n \"APPS_LIST\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"OAuth2 applications\"])},\n \"AUTHORIZE_APP\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Authorize \", _interpolate(_list(0)), \" to use your account?\"])},\n \"COPY_TO_CLIPBOARD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"copy to the clipboard\"])},\n \"DELETE_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Delete application\"])},\n \"NEW_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Add an application\"])},\n \"NO_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Application not found!\"])},\n \"NO_APPS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"no applications\"])},\n \"NO_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"no description\"])},\n \"REVOKE_ALL_TOKENS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Revoke all tokens\"])},\n \"TOKENS_REVOCATION_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Are you sure you want to revoke all tokens?\"])},\n \"TOKENS_REVOKED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"All existing associated tokens have been revoked.\"])}\n}","export default {\n \"Cycling (Sport)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Cycling (Sport)\"])}\n },\n \"Cycling (Transport)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Cycling (Transport)\"])}\n },\n \"Cycling (Virtual)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Cycling (Virtual)\"])}\n },\n \"Hiking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hiking\"])}\n },\n \"Mountain Biking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mountain Biking\"])}\n },\n \"Mountain Biking (Electric)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mountain Biking (Electric)\"])}\n },\n \"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 \"ASCENT_DATA\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ascent-related data (records, total)\"])},\n \"BACK_TO_PROFILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Back to profile\"])},\n \"BIO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bio\"])},\n \"BIRTH_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Birth date\"])},\n \"DATE_FORMAT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Date display format\"])},\n \"EDIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Edit profile\"])},\n \"EDIT_PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Edit preferences\"])},\n \"EDIT_SPORTS_PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Edit sports preferences\"])},\n \"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 \"APPS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"apps\"])},\n \"PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"picture\"])},\n \"PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"preferences\"])},\n \"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_HA\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Highest ascent\"])},\n \"RECORD_LD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Longest duration\"])},\n \"RECORD_MS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. speed\"])},\n \"REMAINING_CHARS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"remaining characters\"])},\n \"SEGMENT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"segment\"]), _normalize([\"segments\"])])},\n \"SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"speed\"])},\n \"SPORT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"sport\"]), _normalize([\"sports\"])])},\n \"START\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"start\"])},\n \"START_AND_FINISH\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Start and finish\"])},\n \"START_ELEVATION_AT_ZERO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"start elevation axis at zero\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"title\"])},\n \"TO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"to\"])},\n \"TOTAL_DURATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"total duration\"])},\n \"UPLOAD_FIRST_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Upload one!\"])},\n \"WEATHER\": {\n \"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 OAuth2Translations from './oauth2.json'\nimport SportsTranslations from './sports.json'\nimport StatisticsTranslations from './statistics.json'\nimport UserTranslations from './user.json'\nimport WorkoutsTranslations from './workouts.json'\n\nexport default {\n about: AboutTranslations,\n admin: AdministrationTranslations,\n api: ApiTranslations,\n buttons: ButtonsTranslations,\n common: CommonTranslations,\n dashboard: DashboardTranslations,\n error: ErrorTranslations,\n oauth2: OAuth2Translations,\n 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([\"Nombre max. de fichiers dans une archive zip \"])},\n \"NO_CONTACT_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"non renseigné\"])},\n \"SINGLE_UPLOAD_MAX_SIZE_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Taille max. des fichiers (en Mo) \"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Configuration de l'application\"])},\n \"ZIP_UPLOAD_MAX_SIZE_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Taille max. des archives zip (en Mo) \"])}\n },\n \"BACK_TO_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Revenir à l'admin\"])},\n \"CONFIRM_USER_ACCOUNT_DELETION\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Êtes-vous sûr de vouloir supprimer le compte de l'utilisateur \", _interpolate(_list(0)), \" ? Toutes les données seront définitivement.\"])},\n \"CONFIRM_USER_PASSWORD_RESET\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Êtes-vous sûr de vouloir réinitialiser le mot de passe de l'utilisateur \", _interpolate(_list(0)), \" ?\"])},\n \"CURRENT_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Adresse email actuelle\"])},\n \"DELETE_USER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Supprimer l'utilisateur\"])},\n \"EMAIL_SENDING_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"L'envoi d'emails est désactivé.\"])},\n \"ENABLE_DISABLE_SPORTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Activer/désactiver des sports.\"])},\n \"NEW_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nouvelle adresse email\"])},\n \"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 \"at least one file in zip archive exceeds size limit, please check the archive\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Au moins un fichier de l'archive zip dépasse la taille maximale, veuillez vérifier l'archive.\"])},\n \"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 \"the number of files in the archive exceeds the limit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Le nombre de fichiers de l'archive dépasse la limite.\"])},\n \"user does not exist\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"L'utilisateur n'existe pas.\"])},\n \"valid email must be provided for admin contact\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Une adresse électronique doit être fournie pour le contact de l'administrateur\"])},\n \"you can not delete your account, no other user has admin rights\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vous ne pouvez pas supprimer votre compte, aucun autre utilisateur n'a des droits d'administration.\"])},\n \"you do not have permissions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vous n'avez pas les permissions nécessaires.\"])}\n },\n \"PAGINATION\": {\n \"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 \"AUTHORIZE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Autoriser\"])},\n \"BACK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Retour\"])},\n \"CANCEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Annuler\"])},\n \"CLEAR_FILTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Réinitialiser\"])},\n \"DELETE_MY_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Supprimer mon compte\"])},\n \"DISABLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Désactiver\"])},\n \"EDIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Modifier\"])},\n \"ENABLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Activer\"])},\n \"FILTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Filtrer\"])},\n \"LOGIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Se connecter\"])},\n \"NO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Non\"])},\n \"REGISTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"S'inscrire\"])},\n \"RESET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Réinit.\"])},\n \"SUBMIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Valider\"])},\n \"YES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Oui\"])}\n}","export default {\n \"ABOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"à propos\"])},\n \"CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Confirmation\"])},\n \"CONTACT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"contact\"])},\n \"DAY\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"jour\"]), _normalize([\"jours\"])])},\n \"DISPLAYED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Affiché\"])},\n \"DOCUMENTATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"documentation (en)\"])},\n \"HERE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ici\"])},\n \"HIDDEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Masqué\"])},\n \"HOME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Accueil\"])},\n \"SELECTS\": {\n \"ORDER_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 \"ADD_A_NEW_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ajouter une nouvelle application OAuth2\"])},\n \"APP\": {\n \"CLIENT_ID\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Identifiant\"])},\n \"CLIENT_SECRET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Secret\"])},\n \"DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Description de l'application\"])},\n \"ISSUE_AT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Créée le\"])},\n \"NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nom de l'application\"])},\n \"REDIRECT_URL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"URL de redirection\"])},\n \"SCOPE\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Scope\"])},\n \"application:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"donne les droits en écriture à la configuration de l'application.\"])},\n \"profile:read_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"donne les droits en lecture aux routes auth.\"])},\n \"profile:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"donne les droits en écriture aux routes auth.\"])},\n \"users:read_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"donne les droits en lecture aux routes users.\"])},\n \"users:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"donne les droits en écriture aux routes users.\"])},\n \"workouts:read_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"donne les droits en lecture aux routes workouts.\"])},\n \"workouts:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"donne les droits en écriture aux routes workouts.\"])}\n },\n \"URL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"URL de l'application\"])}\n },\n \"APP_CREATED_SUCCESSFULLY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Application créée avec succès. Assurez-vous de copier le secret maintenant, il ne s'affichera plus.\"])},\n \"APP_DELETION_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Êtes-vous sûr de vouloir supprimer cette application ?\"])},\n \"APP_REQUESTING_ACCESS\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"L'application \", _interpolate(_list(0)), \" demande les accès suivants :\"])},\n \"APPS_LIST\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Applications OAuth2\"])},\n \"AUTHORIZE_APP\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Autoriser \", _interpolate(_list(0)), \" à utiliser votre compte ?\"])},\n \"COPY_TO_CLIPBOARD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"copier dans le presse papier\"])},\n \"DELETE_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Supprimer l'application\"])},\n \"NEW_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ajouter une application\"])},\n \"NO_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Application introuvable !\"])},\n \"NO_APPS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"pas de applications\"])},\n \"NO_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"pas de description\"])},\n \"REVOKE_ALL_TOKENS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Révoquer tous les jetons\"])},\n \"TOKENS_REVOCATION_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Êtes-vous sûr de vouloir révoquer tous les jetons ?\"])},\n \"TOKENS_REVOKED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Tous les jetons associés existants ont été révoqués.\"])}\n}","export default {\n \"Cycling (Sport)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vélo (Sport)\"])}\n },\n \"Cycling (Transport)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vélo (Transport)\"])}\n },\n \"Cycling (Virtual)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vélo (Virtuel)\"])}\n },\n \"Hiking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Randonnée\"])}\n },\n \"Mountain Biking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"VTT\"])}\n },\n \"Mountain Biking (Electric)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"VTT (Électrique)\"])}\n },\n \"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 vos courriels. Un nouveau courriel de confirmation a été envoyé à l'adresse électronique fournie.\"])},\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Admin\"])},\n \"ALREADY_HAVE_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vous avez déjà un compte ?\"])},\n \"CONFIRM_ACCOUNT_DELETION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Êtes-vous sûr·e de vouloir supprimer votre compte ? Toutes les données seront définitivement effacés\"])},\n \"CURRENT_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mot de passe actuel\"])},\n \"EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Courriel\"])},\n \"EMAIL_INFO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Saisissez une adresse électronique valide.\"])},\n \"ENTER_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Saisissez un mot de passe\"])},\n \"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 vos courriels. Si vote adresse est dans notre base de données, vous recevrez un courriel avec un lien pour réinitialiser votre mot de passe.\"])},\n \"PASSWORD_STRENGTH\": {\n \"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 \"ASCENT_DATA\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Données relatives au dénivelé positif (records, total)\"])},\n \"BACK_TO_PROFILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Revenir au profil\"])},\n \"BIO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bio\"])},\n \"BIRTH_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Date de naissance\"])},\n \"DATE_FORMAT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Format d'affichage de la date\"])},\n \"EDIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Modifier le profil\"])},\n \"EDIT_PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Modifier les préférences\"])},\n \"EDIT_SPORTS_PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Modifier les préférences des sports\"])},\n \"ERRORED_EMAIL_UPDATE\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Veuillez vous \", _interpolate(_list(0)), \" pour changer de nouveau votre adresse électronique ou contacter l'administrateur\"])},\n \"FIRST_DAY_OF_WEEK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Premier jour de la semaine\"])},\n \"FIRST_NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Prénom\"])},\n \"LANGUAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Langue\"])},\n \"LAST_NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nom\"])},\n \"LOCATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Lieu\"])},\n \"MONDAY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Lundi\"])},\n \"PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Image de profil\"])},\n \"PICTURE_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mise à jour de l'image de profil\"])},\n \"PICTURE_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 \"APPS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"apps\"])},\n \"PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"image\"])},\n \"PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"préférences\"])},\n \"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 boîte de réception pour valider votre nouvelle adresse électronique.\"])},\n \"SUCCESSFUL_REGISTRATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Votre compte a été créé avec succès.\"])},\n \"SUCCESSFUL_REGISTRATION_WITH_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Un lien pour activer votre compte a été envoyé à l'adresse électronique fournie.\"])},\n \"SUCCESSFUL_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Votre compte a été modifié avec succès.\"])},\n \"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 le courriel 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_HA\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dénivelé positif le + élevé\"])},\n \"RECORD_LD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Durée la + longue\"])},\n \"RECORD_MS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vitesse max.\"])},\n \"REMAINING_CHARS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nombre de caractères restants \"])},\n \"SEGMENT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"segment\"]), _normalize([\"segments\"])])},\n \"SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"vitesse\"])},\n \"SPORT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"sport\"]), _normalize([\"sports\"])])},\n \"START\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"début\"])},\n \"START_AND_FINISH\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Départ et arrivée\"])},\n \"START_ELEVATION_AT_ZERO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"démarrer l'axe de l'altitude à 0\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"titre\"])},\n \"TO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"jusqu'au\"])},\n \"TOTAL_DURATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"durée totale\"])},\n \"UPLOAD_FIRST_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ajoutez votre première séance !\"])},\n \"WEATHER\": {\n \"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 OAuth2Translations from './oauth2.json'\nimport SportsTranslations from './sports.json'\nimport StatisticsTranslations from './statistics.json'\nimport UserTranslations from './user.json'\nimport WorkoutsTranslations from './workouts.json'\n\nexport default {\n about: AboutTranslations,\n admin: AdministrationTranslations,\n api: ApiTranslations,\n buttons: ButtonsTranslations,\n common: CommonTranslations,\n dashboard: DashboardTranslations,\n error: ErrorTranslations,\n oauth2: OAuth2Translations,\n sports: SportsTranslations,\n statistics: StatisticsTranslations,\n user: UserTranslations,\n workouts: WorkoutsTranslations,\n}\n","export default {\n \n}","export default {\n \n}","export default {\n \n}","export default {\n \n}","export default {\n \n}","export default {\n \n}","export default {\n \n}","export default {\n \n}","export default {\n \n}","export default {\n \n}","export default {\n \n}","export default {\n \n}","import AboutTranslations from './about.json'\nimport AdministrationTranslations from './administration.json'\nimport ApiTranslations from './api.json'\nimport ButtonsTranslations from './buttons.json'\nimport CommonTranslations from './common.json'\nimport DashboardTranslations from './dashboard.json'\nimport ErrorTranslations from './error.json'\nimport OAuth2Translations from './oauth2.json'\nimport SportsTranslations from './sports.json'\nimport StatisticsTranslations from './statistics.json'\nimport UserTranslations from './user.json'\nimport WorkoutsTranslations from './workouts.json'\n\nexport default {\n about: AboutTranslations,\n admin: AdministrationTranslations,\n api: ApiTranslations,\n buttons: ButtonsTranslations,\n common: CommonTranslations,\n dashboard: DashboardTranslations,\n error: ErrorTranslations,\n oauth2: OAuth2Translations,\n 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-8cf5cc64\"),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 | null\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'CustomTextArea',\n props: {\n name: null,\n charLimit: { default: 500 },\n disabled: { type: Boolean, default: false },\n input: { default: '' }\n },\n emits: ['updateValue'],\n setup(__props: any, { emit }) {\n\nconst props = __props as { name: string, charLimit: number, disabled: boolean, input: string | null };\n\n \n\n \n\n const text = ref('')\n\n function updateText(event: Event & { target: HTMLInputElement }) {\n emit('updateValue', event.target.value)\n }\n\n watch(\n () => props.input,\n (value) => {\n text.value = value === null ? '' : value\n }\n )\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _withDirectives(_createElementVNode(\"textarea\", {\n id: __props.name,\n name: __props.name,\n 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=8cf5cc64&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-8cf5cc64\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, toDisplayString as _toDisplayString, normalizeClass as _normalizeClass, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createTextVNode as _createTextVNode, Fragment as _Fragment } from \"vue\"\n\nimport { ComputedRef, computed, toRefs, withDefaults } from 'vue'\n\n import { TUnit } from '@/types/units'\n import { units, convertDistance } from '@/utils/units'\n\n interface Props {\n distance: number\n unitFrom: TUnit\n useImperialUnits: boolean\n digits?: number\n displayUnit?: boolean\n speed?: boolean\n strong?: boolean\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'Distance',\n props: {\n distance: null,\n unitFrom: null,\n useImperialUnits: { type: Boolean },\n digits: { default: 2 },\n displayUnit: { type: Boolean, default: true },\n speed: { type: Boolean, default: false },\n strong: { type: Boolean, default: false }\n },\n setup(__props: any) {\n\nconst props = __props as { distance: number, unitFrom: TUnit, useImperialUnits: boolean, digits: number, displayUnit: boolean, speed: boolean, strong: boolean };\n\n \n\n const {\n digits,\n displayUnit,\n distance,\n speed,\n strong,\n unitFrom,\n useImperialUnits,\n } = toRefs(props)\n const unitTo: ComputedRef = computed(() =>\n useImperialUnits.value\n ? units[unitFrom.value].defaultTarget\n : unitFrom.value\n )\n const convertedDistance = computed(() =>\n useImperialUnits.value\n ? convertDistance(\n distance.value,\n unitFrom.value,\n unitTo.value,\n digits.value\n )\n : parseFloat(distance.value.toFixed(digits.value))\n )\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n _createElementVNode(\"span\", {\n class: _normalizeClass([\"distance\", { strong: _unref(strong) }])\n }, _toDisplayString(_unref(convertedDistance)), 3),\n _createTextVNode(\" \" + _toDisplayString(' ') + \" \"),\n (_unref(displayUnit))\n ? (_openBlock(), _createElementBlock(\"span\", {\n key: 0,\n class: _normalizeClass([\"unit\", { strong: _unref(strong) }])\n }, _toDisplayString(_unref(unitTo)) + _toDisplayString(_unref(speed) ? '/h' : ''), 3))\n : _createCommentVNode(\"\", true)\n ], 64))\n}\n}\n\n})","import script from \"./Distance.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Distance.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./Distance.vue?vue&type=style&index=0&id=f46ff1d6&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-f46ff1d6\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { renderSlot as _renderSlot, createElementVNode as _createElementVNode, unref as _unref, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, normalizeClass as _normalizeClass, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-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 \"./CyclingVirtual.vue?vue&type=template&id=ec8f7bb6\"\nimport script from \"./CyclingVirtual.vue?vue&type=script&lang=js\"\nexport * from \"./CyclingVirtual.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\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 CyclingVirtual from '@/components/Common/Images/SportImage/CyclingVirtual.vue'\n import Hiking from '@/components/Common/Images/SportImage/Hiking.vue'\n import MountainBiking from '@/components/Common/Images/SportImage/MountainBiking.vue'\n import MountainBikingElectric from '@/components/Common/Images/SportImage/MountainBikingElectric.vue'\n import Rowing from '@/components/Common/Images/SportImage/Rowing.vue'\n import Running from '@/components/Common/Images/SportImage/Running.vue'\n import SkiingAlpine from '@/components/Common/Images/SportImage/SkiingAlpine.vue'\n import SkiingCrossCountry from '@/components/Common/Images/SportImage/SkiingCrossCountry.vue'\n import Snowshoes from '@/components/Common/Images/SportImage/Snowshoes.vue'\n import Trail from '@/components/Common/Images/SportImage/Trail.vue'\n import Walking from '@/components/Common/Images/SportImage/Walking.vue'\n\n interface Props {\n sportLabel: string\n color: string | null\n title?: string\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'index',\n props: {\n sportLabel: null,\n color: null,\n title: { default: '' }\n },\n setup(__props: any) {\n\nconst props = __props as { sportLabel: string, color: string | null, title: string };\n\n \n\n const { color, sportLabel, title } = toRefs(props)\n const sportColors = inject('sportColors')\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"sport-img\",\n style: _normalizeStyle({ fill: _unref(color) ? _unref(color) : _unref(sportColors)[_unref(sportLabel)] }),\n title: _unref(title) ? _unref(title) : _ctx.$t(`sports.${_unref(sportLabel)}.LABEL`)\n }, [\n (_unref(sportLabel) === 'Cycling (Sport)')\n ? (_openBlock(), _createBlock(CyclingSport, { key: 0 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Cycling (Transport)')\n ? (_openBlock(), _createBlock(CyclingTransport, { key: 1 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Cycling (Virtual)')\n ? (_openBlock(), _createBlock(CyclingVirtual, { key: 2 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Hiking')\n ? (_openBlock(), _createBlock(Hiking, { key: 3 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Mountain Biking')\n ? (_openBlock(), _createBlock(MountainBiking, { key: 4 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Mountain Biking (Electric)')\n ? (_openBlock(), _createBlock(MountainBikingElectric, { key: 5 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Rowing')\n ? (_openBlock(), _createBlock(Rowing, { key: 6 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Running')\n ? (_openBlock(), _createBlock(Running, { key: 7 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Skiing (Alpine)')\n ? (_openBlock(), _createBlock(SkiingAlpine, { key: 8 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Skiing (Cross Country)')\n ? (_openBlock(), _createBlock(SkiingCrossCountry, { key: 9 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Snowshoes')\n ? (_openBlock(), _createBlock(Snowshoes, { key: 10 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Trail')\n ? (_openBlock(), _createBlock(Trail, { key: 11 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Walking')\n ? (_openBlock(), _createBlock(Walking, { key: 12 }))\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-dc12ff78\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n id: \"admin-users\",\n class: \"admin-card\"\n}\nconst _hoisted_2 = {\n key: 0,\n class: \"no-users\"\n}\nconst _hoisted_3 = {\n key: 1,\n class: \"responsive-table\"\n}\nconst _hoisted_4 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"th\", null, \"#\", -1))\nconst _hoisted_5 = { class: \"left-text\" }\nconst _hoisted_6 = { class: \"left-text\" }\nconst _hoisted_7 = { class: \"left-text\" }\nconst _hoisted_8 = { class: \"cell-heading\" }\nconst _hoisted_9 = { class: \"cell-heading\" }\nconst _hoisted_10 = { class: \"cell-heading\" }\nconst _hoisted_11 = { class: \"cell-heading\" }\nconst _hoisted_12 = { class: \"text-center\" }\nconst _hoisted_13 = { class: \"cell-heading\" }\nconst _hoisted_14 = { class: \"text-center\" }\nconst _hoisted_15 = { class: \"cell-heading\" }\nconst _hoisted_16 = { class: \"text-center\" }\nconst _hoisted_17 = { class: \"cell-heading\" }\nconst _hoisted_18 = { class: \"text-center\" }\nconst _hoisted_19 = { class: \"cell-heading\" }\nconst _hoisted_20 = [\"disabled\", \"onClick\"]\n\nimport {\n ComputedRef,\n Ref,\n computed,\n reactive,\n watch,\n capitalize,\n onBeforeMount,\n onUnmounted,\n } from 'vue'\n import { LocationQuery, useRoute, useRouter } from 'vue-router'\n\n import FilterSelects from '@/components/Common/FilterSelects.vue'\n import Pagination from '@/components/Common/Pagination.vue'\n import UserPicture from '@/components/User/UserPicture.vue'\n import UsersNameFilter from '@/components/Users/UsersNameFilter.vue'\n import { AUTH_USER_STORE, ROOT_STORE, USERS_STORE } from '@/store/constants'\n import { IPagination, TPaginationPayload } from '@/types/api'\n import { IAuthUserProfile, IUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n import { getQuery, sortList } from '@/utils/api'\n import { formatDate } from '@/utils/dates'\n\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'AdminUsers',\n setup(__props) {\n\n const store = useStore()\n const route = useRoute()\n const router = useRouter()\n\n const orderByList: string[] = [\n 'is_active',\n 'admin',\n 'created_at',\n 'username',\n 'workouts_count',\n ]\n const defaultOrderBy = 'created_at'\n let query: TPaginationPayload = reactive(\n getQuery(route.query, orderByList, defaultOrderBy)\n )\n const authUser: ComputedRef = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.AUTH_USER_PROFILE]\n )\n const users: ComputedRef = computed(\n () => store.getters[USERS_STORE.GETTERS.USERS]\n )\n const pagination: ComputedRef = computed(\n () => store.getters[USERS_STORE.GETTERS.USERS_PAGINATION]\n )\n const errorMessages: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.ERROR_MESSAGES]\n )\n\n onBeforeMount(() => loadUsers(query))\n\n function loadUsers(queryParams: TPaginationPayload) {\n store.dispatch(USERS_STORE.ACTIONS.GET_USERS, queryParams)\n }\n function searchUsers(username: Ref) {\n reloadUsers('q', username.value)\n }\n\n function updateUser(username: string, admin: boolean) {\n store.dispatch(USERS_STORE.ACTIONS.UPDATE_USER, {\n username,\n admin,\n })\n }\n function reloadUsers(queryParam: string, queryValue: string) {\n query[queryParam] = queryValue\n if (queryParam === 'per_page') {\n query.page = 1\n }\n router.push({ path: '/admin/users', query })\n }\n\n onUnmounted(() => {\n store.dispatch(USERS_STORE.ACTIONS.EMPTY_USERS)\n })\n\n watch(\n () => route.query,\n (newQuery: LocationQuery) => {\n query = getQuery(newQuery, orderByList, defaultOrderBy, { query })\n loadUsers(query)\n }\n )\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_link = _resolveComponent(\"router-link\")!\n const _component_ErrorMessage = _resolveComponent(\"ErrorMessage\")!\n const _component_Card = _resolveComponent(\"Card\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_Card, null, {\n title: _withCtx(() => [\n _createTextVNode(_toDisplayString(capitalize(_ctx.$t('admin.USER', 0))), 1)\n ]),\n content: _withCtx(() => [\n _createElementVNode(\"button\", {\n class: \"top-button\",\n onClick: _cache[0] || (_cache[0] = _withModifiers(($event: any) => (_ctx.$router.push('/admin')), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('admin.BACK_TO_ADMIN')), 1),\n _createVNode(UsersNameFilter, { onFilterOnUsername: searchUsers }),\n _createVNode(FilterSelects, {\n sort: _unref(sortList),\n order_by: orderByList,\n query: _unref(query),\n message: \"admin.USERS.SELECTS.ORDER_BY\",\n onUpdateSelect: reloadUsers\n }, null, 8, [\"sort\", \"query\"]),\n (_unref(users).length === 0)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, _toDisplayString(_ctx.$t('user.NO_USERS_FOUND')), 1))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n _createElementVNode(\"table\", null, [\n _createElementVNode(\"thead\", null, [\n _createElementVNode(\"tr\", null, [\n _hoisted_4,\n _createElementVNode(\"th\", _hoisted_5, _toDisplayString(_ctx.$t('user.USERNAME')), 1),\n _createElementVNode(\"th\", _hoisted_6, _toDisplayString(_ctx.$t('user.EMAIL')), 1),\n _createElementVNode(\"th\", _hoisted_7, _toDisplayString(_ctx.$t('user.PROFILE.REGISTRATION_DATE')), 1),\n _createElementVNode(\"th\", null, _toDisplayString(capitalize(_ctx.$t('workouts.WORKOUT', 0))), 1),\n _createElementVNode(\"th\", null, _toDisplayString(_ctx.$t('admin.ACTIVE')), 1),\n _createElementVNode(\"th\", null, _toDisplayString(_ctx.$t('user.ADMIN')), 1),\n _createElementVNode(\"th\", null, _toDisplayString(_ctx.$t('admin.ACTION')), 1)\n ])\n ]),\n _createElementVNode(\"tbody\", null, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(users), (user) => {\n return (_openBlock(), _createElementBlock(\"tr\", {\n key: user.username\n }, [\n _createElementVNode(\"td\", null, [\n _createElementVNode(\"span\", _hoisted_8, _toDisplayString(_ctx.$t('user.PROFILE.PICTURE')), 1),\n _createVNode(UserPicture, { user: user }, null, 8, [\"user\"])\n ]),\n _createElementVNode(\"td\", null, [\n _createElementVNode(\"span\", _hoisted_9, _toDisplayString(_ctx.$t('user.USERNAME')), 1),\n _createVNode(_component_router_link, {\n to: `/admin/users/${user.username}`\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(user.username), 1)\n ]),\n _: 2\n }, 1032, [\"to\"])\n ]),\n _createElementVNode(\"td\", null, [\n _createElementVNode(\"span\", _hoisted_10, _toDisplayString(_ctx.$t('user.EMAIL')), 1),\n _createTextVNode(\" \" + _toDisplayString(user.email), 1)\n ]),\n _createElementVNode(\"td\", null, [\n _createElementVNode(\"span\", _hoisted_11, _toDisplayString(_ctx.$t('user.PROFILE.REGISTRATION_DATE')), 1),\n _createTextVNode(\" \" + _toDisplayString(_unref(formatDate)(\n user.created_at,\n _unref(authUser).timezone,\n _unref(authUser).date_format\n )), 1)\n ]),\n _createElementVNode(\"td\", _hoisted_12, [\n _createElementVNode(\"span\", _hoisted_13, _toDisplayString(capitalize(_ctx.$t('workouts.WORKOUT', 0))), 1),\n _createTextVNode(\" \" + _toDisplayString(user.nb_workouts), 1)\n ]),\n _createElementVNode(\"td\", _hoisted_14, [\n _createElementVNode(\"span\", _hoisted_15, _toDisplayString(_ctx.$t('admin.ACTIVE')), 1),\n _createElementVNode(\"i\", {\n class: _normalizeClass(`fa fa${user.is_active ? '-check' : ''}-square-o`),\n \"aria-hidden\": \"true\"\n }, null, 2)\n ]),\n _createElementVNode(\"td\", _hoisted_16, [\n _createElementVNode(\"span\", _hoisted_17, _toDisplayString(_ctx.$t('user.ADMIN')), 1),\n _createElementVNode(\"i\", {\n class: _normalizeClass(`fa fa${user.admin ? '-check' : ''}-square-o`),\n \"aria-hidden\": \"true\"\n }, null, 2)\n ]),\n _createElementVNode(\"td\", _hoisted_18, [\n _createElementVNode(\"span\", _hoisted_19, _toDisplayString(_ctx.$t('admin.ACTION')), 1),\n _createElementVNode(\"button\", {\n class: _normalizeClass({ danger: user.admin }),\n disabled: user.username === _unref(authUser).username,\n onClick: ($event: any) => (updateUser(user.username, !user.admin))\n }, _toDisplayString(_ctx.$t(\n `admin.USERS.TABLE.${\n user.admin ? 'REMOVE' : 'ADD'\n }_ADMIN_RIGHTS`\n )), 11, _hoisted_20)\n ])\n ]))\n }), 128))\n ])\n ]),\n (_unref(pagination).page)\n ? (_openBlock(), _createBlock(Pagination, {\n key: 0,\n path: \"/admin/users\",\n pagination: _unref(pagination),\n query: _unref(query)\n }, null, 8, [\"pagination\", \"query\"]))\n : _createCommentVNode(\"\", true),\n (_unref(errorMessages))\n ? (_openBlock(), _createBlock(_component_ErrorMessage, {\n key: 1,\n message: _unref(errorMessages)\n }, null, 8, [\"message\"]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"button\", {\n onClick: _cache[1] || (_cache[1] = _withModifiers(($event: any) => (_ctx.$router.push('/admin')), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('admin.BACK_TO_ADMIN')), 1)\n ]))\n ]),\n _: 1\n })\n ]))\n}\n}\n\n})","import script from \"./AdminUsers.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AdminUsers.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./AdminUsers.vue?vue&type=style&index=0&id=dc12ff78&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-dc12ff78\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createElementVNode as _createElementVNode, toDisplayString as _toDisplayString } from \"vue\"\n\nconst _hoisted_1 = { class: \"profile-tabs custom-checkboxes-group\" }\nconst _hoisted_2 = { class: \"profile-tabs-checkboxes custom-checkboxes\" }\nconst _hoisted_3 = [\"id\", \"name\", \"checked\", \"disabled\", \"onInput\"]\n\nimport { toRefs, withDefaults } from 'vue'\n\n interface Props {\n tabs: string[]\n selectedTab: string\n edition: boolean\n disabled?: boolean\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'UserProfileTabs',\n props: {\n tabs: null,\n selectedTab: null,\n edition: { type: Boolean },\n disabled: { type: Boolean, default: false }\n },\n setup(__props: any) {\n\nconst props = __props as { tabs: string[], selectedTab: string, edition: boolean, disabled: boolean };\n\n \n\n const { tabs, selectedTab, disabled } = toRefs(props)\n\n function getPath(tab: string) {\n switch (tab) {\n case 'ACCOUNT':\n case 'PICTURE':\n return `/profile/edit/${tab.toLocaleLowerCase()}`\n case 'APPS':\n case 'PREFERENCES':\n case 'SPORTS':\n return `/profile${\n props.edition ? '/edit' : ''\n }/${tab.toLocaleLowerCase()}`\n default:\n case 'PROFILE':\n return `/profile${props.edition ? '/edit' : ''}`\n }\n }\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(tabs), (tab) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"profile-tab custom-checkbox\",\n key: tab\n }, [\n _createElementVNode(\"label\", null, [\n _createElementVNode(\"input\", {\n type: \"radio\",\n id: tab,\n name: tab,\n checked: _unref(selectedTab).split('/')[0] === tab,\n disabled: _unref(disabled),\n onInput: ($event: any) => (_ctx.$router.push(getPath(tab)))\n }, null, 40, _hoisted_3),\n _createElementVNode(\"span\", null, _toDisplayString(_ctx.$t(`user.PROFILE.TABS.${tab}`)), 1)\n ])\n ]))\n }), 128))\n ])\n ]))\n}\n}\n\n})","import script from \"./UserProfileTabs.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserProfileTabs.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserProfileTabs.vue?vue&type=style&index=0&id=01b05f01&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createVNode as _createVNode, resolveComponent as _resolveComponent, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-9729cba4\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"user-profile\" }\nconst _hoisted_2 = { class: \"box\" }\n\nimport { toRefs } from 'vue'\n\n import UserHeader from '@/components/User/ProfileDisplay/UserHeader.vue'\n import UserProfileTabs from '@/components/User/UserProfileTabs.vue'\n import { IUserProfile } from '@/types/user'\n\n interface Props {\n user: IUserProfile\n tab: string\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'index',\n props: {\n user: null,\n tab: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n user: IUserProfile\n tab: string\n };\n\n \n\n const { user, tab } = toRefs(props)\n const tabs = ['PROFILE', 'PREFERENCES', 'SPORTS', 'APPS']\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_view = _resolveComponent(\"router-view\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(UserHeader, { user: _unref(user) }, null, 8, [\"user\"]),\n _createElementVNode(\"div\", _hoisted_2, [\n _createVNode(UserProfileTabs, {\n tabs: tabs,\n selectedTab: _unref(tab),\n edition: false\n }, null, 8, [\"selectedTab\"]),\n _createVNode(_component_router_view, { user: _unref(user) }, null, 8, [\"user\"])\n ])\n ]))\n}\n}\n\n})","import script from \"./index.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./index.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./index.vue?vue&type=style&index=0&id=9729cba4&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-9729cba4\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, unref as _unref, 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, ComputedRef } from 'vue'\n\n import { ROOT_STORE } from '@/store/constants'\n import { IAuthUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n import { getDateFormat } from '@/utils/dates'\n import { languageLabels } from '@/utils/locales'\n\n interface Props {\n user: IAuthUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'UserPreferences',\n props: {\n user: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n user: IAuthUserProfile\n };\n\n \n\n const store = useStore()\n\n const appLanguage: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.LANGUAGE]\n )\n const userLanguage = computed(() =>\n props.user.language\n ? languageLabels[props.user.language]\n : languageLabels['en']\n )\n const fistDayOfWeek = computed(() => (props.user.weekm ? 'MONDAY' : 'SUNDAY'))\n const timezone = computed(() =>\n props.user.timezone ? props.user.timezone : 'Europe/Paris'\n )\n const date_format = computed(() =>\n props.user.date_format ? props.user.date_format : 'MM/dd/yyyy'\n )\n const display_ascent = computed(() =>\n props.user.display_ascent ? 'DISPLAYED' : 'HIDDEN'\n )\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"dl\", null, [\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('user.PROFILE.LANGUAGE')) + \":\", 1),\n _createElementVNode(\"dd\", null, _toDisplayString(_unref(userLanguage)), 1),\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('user.PROFILE.TIMEZONE')) + \":\", 1),\n _createElementVNode(\"dd\", null, _toDisplayString(_unref(timezone)), 1),\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('user.PROFILE.DATE_FORMAT')) + \":\", 1),\n _createElementVNode(\"dd\", null, _toDisplayString(_unref(getDateFormat)(_unref(date_format), _unref(appLanguage))), 1),\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('user.PROFILE.FIRST_DAY_OF_WEEK')) + \":\", 1),\n _createElementVNode(\"dd\", null, _toDisplayString(_ctx.$t(`user.PROFILE.${_unref(fistDayOfWeek)}`)), 1),\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('user.PROFILE.UNITS.LABEL')) + \":\", 1),\n _createElementVNode(\"dd\", null, _toDisplayString(_ctx.$t(\n `user.PROFILE.UNITS.${__props.user.imperial_units ? 'IMPERIAL' : 'METRIC'}`\n )), 1),\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('user.PROFILE.ASCENT_DATA')) + \":\", 1),\n _createElementVNode(\"dd\", null, _toDisplayString(_ctx.$t(`common.${_unref(display_ascent)}`)), 1)\n ]),\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-5e5a4552\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"user-infos-edition\" }\nconst _hoisted_2 = { class: \"profile-form form-box\" }\nconst _hoisted_3 = [\"onSubmit\"]\nconst _hoisted_4 = {\n class: \"form-items\",\n for: \"registrationDate\"\n}\nconst _hoisted_5 = [\"value\"]\nconst _hoisted_6 = {\n class: \"form-items\",\n for: \"first_name\"\n}\nconst _hoisted_7 = [\"disabled\"]\nconst _hoisted_8 = {\n class: \"form-items\",\n for: \"last_name\"\n}\nconst _hoisted_9 = {\n class: \"form-items\",\n for: \"birth_date\"\n}\nconst _hoisted_10 = [\"disabled\"]\nconst _hoisted_11 = {\n class: \"form-items\",\n for: \"location\"\n}\nconst _hoisted_12 = [\"disabled\"]\nconst _hoisted_13 = { class: \"form-items\" }\nconst _hoisted_14 = { class: \"form-buttons\" }\nconst _hoisted_15 = {\n class: \"confirm\",\n type: \"submit\"\n}\n\nimport { format } from 'date-fns'\n import { ComputedRef, computed, reactive, onMounted, onUnmounted } from 'vue'\n\n import { AUTH_USER_STORE, ROOT_STORE } from '@/store/constants'\n import { IUserProfile, IUserPayload, IAuthUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n import { formatDate } from '@/utils/dates'\n\n interface Props {\n user: IAuthUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'UserInfosEdition',\n props: {\n user: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n user: IAuthUserProfile\n };\n\n \n\n const store = useStore()\n\n const userForm: IUserPayload = reactive({\n first_name: '',\n last_name: '',\n birth_date: '',\n location: '',\n bio: '',\n })\n const registrationDate = computed(() =>\n props.user.created_at\n ? formatDate(\n props.user.created_at,\n props.user.timezone,\n props.user.date_format\n )\n : ''\n )\n const loading = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.USER_LOADING]\n )\n const errorMessages: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.ERROR_MESSAGES]\n )\n\n onMounted(() => {\n if (props.user) {\n updateUserForm(props.user)\n }\n })\n\n function updateUserForm(user: IUserProfile) {\n userForm.first_name = user.first_name ? user.first_name : ''\n userForm.last_name = user.last_name ? user.last_name : ''\n userForm.birth_date = user.birth_date\n ? format(new Date(user.birth_date), 'yyyy-MM-dd')\n : ''\n userForm.location = user.location ? user.location : ''\n userForm.bio = user.bio ? user.bio : ''\n }\n function updateBio(value: string) {\n userForm.bio = value\n }\n function updateProfile() {\n store.dispatch(AUTH_USER_STORE.ACTIONS.UPDATE_USER_PROFILE, userForm)\n }\n\n onUnmounted(() => {\n store.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n })\n\nreturn (_ctx: any,_cache: any) => {\n const _component_ErrorMessage = _resolveComponent(\"ErrorMessage\")!\n const _component_CustomTextArea = _resolveComponent(\"CustomTextArea\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n (_unref(errorMessages))\n ? (_openBlock(), _createBlock(_component_ErrorMessage, {\n key: 0,\n message: _unref(errorMessages)\n }, null, 8, [\"message\"]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"form\", {\n onSubmit: _withModifiers(updateProfile, [\"prevent\"])\n }, [\n _createElementVNode(\"label\", _hoisted_4, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.PROFILE.REGISTRATION_DATE')) + \" \", 1),\n _createElementVNode(\"input\", {\n id: \"registrationDate\",\n value: _unref(registrationDate),\n disabled: \"\"\n }, null, 8, _hoisted_5)\n ]),\n _createElementVNode(\"label\", _hoisted_6, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.PROFILE.FIRST_NAME')) + \" \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"first_name\",\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((userForm.first_name) = $event)),\n disabled: _unref(loading)\n }, null, 8, _hoisted_7), [\n [_vModelText, userForm.first_name]\n ])\n ]),\n _createElementVNode(\"label\", _hoisted_8, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.PROFILE.LAST_NAME')) + \" \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"last_name\",\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => ((userForm.last_name) = $event))\n }, null, 512), [\n [_vModelText, userForm.last_name]\n ])\n ]),\n _createElementVNode(\"label\", _hoisted_9, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.PROFILE.BIRTH_DATE')) + \" \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"birth_date\",\n type: \"date\",\n class: \"birth-date\",\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => ((userForm.birth_date) = $event)),\n disabled: _unref(loading)\n }, null, 8, _hoisted_10), [\n [_vModelText, userForm.birth_date]\n ])\n ]),\n _createElementVNode(\"label\", _hoisted_11, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.PROFILE.LOCATION')) + \" \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"location\",\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = ($event: any) => ((userForm.location) = $event)),\n disabled: _unref(loading)\n }, null, 8, _hoisted_12), [\n [_vModelText, userForm.location]\n ])\n ]),\n _createElementVNode(\"label\", _hoisted_13, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.PROFILE.BIO')) + \" \", 1),\n _createVNode(_component_CustomTextArea, {\n name: \"bio\",\n charLimit: 200,\n input: userForm.bio,\n disabled: _unref(loading),\n onUpdateValue: updateBio\n }, null, 8, [\"input\", \"disabled\"])\n ]),\n _createElementVNode(\"div\", _hoisted_14, [\n _createElementVNode(\"button\", _hoisted_15, _toDisplayString(_ctx.$t('buttons.SUBMIT')), 1),\n _createElementVNode(\"button\", {\n class: \"cancel\",\n onClick: _cache[4] || (_cache[4] = _withModifiers(($event: any) => (_ctx.$router.push('/profile')), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('buttons.CANCEL')), 1)\n ])\n ], 40, _hoisted_3)\n ])\n ]))\n}\n}\n\n})","import script from \"./UserInfosEdition.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserInfosEdition.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserInfosEdition.vue?vue&type=style&index=0&id=5e5a4552&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-5e5a4552\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createVNode as _createVNode, createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, createElementBlock as _createElementBlock, withModifiers as _withModifiers, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-687e9604\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"user-picture-edition\" }\nconst _hoisted_2 = { class: \"user-picture-form\" }\nconst _hoisted_3 = [\"onSubmit\"]\nconst _hoisted_4 = { class: \"picture-help\" }\nconst _hoisted_5 = { class: \"info-box\" }\nconst _hoisted_6 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-info-circle\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_7 = { class: \"picture-buttons\" }\nconst _hoisted_8 = [\"disabled\"]\n\nimport { ComputedRef, Ref, computed, ref, toRefs, onUnmounted } from 'vue'\n\n import UserPicture from '@/components/User/UserPicture.vue'\n import { AUTH_USER_STORE, ROOT_STORE } from '@/store/constants'\n import { TAppConfig } from '@/types/application'\n import { IUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n import { getReadableFileSize } from '@/utils/files'\n\n interface Props {\n user: IUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'UserPictureEdition',\n props: {\n user: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n user: IUserProfile\n };\n\n \n\n const store = useStore()\n\n const { user } = toRefs(props)\n const errorMessages: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.ERROR_MESSAGES]\n )\n const appConfig: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.APP_CONFIG]\n )\n const fileSizeLimit = appConfig.value.max_single_file_size\n ? getReadableFileSize(appConfig.value.max_single_file_size)\n : ''\n const pictureFile: Ref = ref(null)\n\n function deleteUserPicture() {\n store.dispatch(AUTH_USER_STORE.ACTIONS.DELETE_PICTURE)\n }\n function updatePictureFile(event: Event & { target: HTMLInputElement }) {\n if (event.target.files) {\n pictureFile.value = event.target.files[0]\n }\n }\n function updateUserPicture() {\n if (pictureFile.value) {\n store.dispatch(AUTH_USER_STORE.ACTIONS.UPDATE_USER_PICTURE, {\n picture: pictureFile.value,\n })\n }\n }\n\n onUnmounted(() => {\n store.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n })\n\nreturn (_ctx: any,_cache: any) => {\n const _component_ErrorMessage = _resolveComponent(\"ErrorMessage\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n (_unref(errorMessages))\n ? (_openBlock(), _createBlock(_component_ErrorMessage, {\n key: 0,\n message: _unref(errorMessages)\n }, null, 8, [\"message\"]))\n : _createCommentVNode(\"\", true),\n _createVNode(UserPicture, { user: _unref(user) }, null, 8, [\"user\"]),\n _createElementVNode(\"form\", {\n onSubmit: _withModifiers(updateUserPicture, [\"prevent\"])\n }, [\n _createElementVNode(\"input\", {\n type: \"file\",\n name: \"picture\",\n accept: \".png,.jpg,.gif\",\n onInput: updatePictureFile\n }, null, 32),\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"span\", _hoisted_5, [\n _hoisted_6,\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('workouts.MAX_SIZE')) + \": \" + _toDisplayString(_unref(fileSizeLimit)), 1)\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_7, [\n _createElementVNode(\"button\", {\n type: \"submit\",\n disabled: !pictureFile.value\n }, _toDisplayString(_ctx.$t('user.PROFILE.PICTURE_UPDATE')), 9, _hoisted_8),\n (_unref(user).picture)\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 0,\n class: \"danger\",\n onClick: deleteUserPicture\n }, _toDisplayString(_ctx.$t('user.PROFILE.PICTURE_REMOVE')), 1))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"button\", {\n class: \"cancel\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.$router.push('/profile')))\n }, _toDisplayString(_ctx.$t('user.PROFILE.BACK_TO_PROFILE')), 1)\n ])\n ], 40, _hoisted_3)\n ])\n ]))\n}\n}\n\n})","import script from \"./UserPictureEdition.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserPictureEdition.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserPictureEdition.vue?vue&type=style&index=0&id=687e9604&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-687e9604\"]])\n\nexport default __exports__","export const timeZones = [\n 'Africa/Abidjan',\n 'Africa/Accra',\n 'Africa/Algiers',\n 'Africa/Bissau',\n 'Africa/Cairo',\n 'Africa/Casablanca',\n 'Africa/Ceuta',\n 'Africa/El_Aaiun',\n 'Africa/Johannesburg',\n 'Africa/Juba',\n 'Africa/Khartoum',\n 'Africa/Lagos',\n 'Africa/Maputo',\n 'Africa/Monrovia',\n 'Africa/Nairobi',\n 'Africa/Ndjamena',\n 'Africa/Sao_Tome',\n 'Africa/Tripoli',\n 'Africa/Tunis',\n 'Africa/Windhoek',\n 'America/Adak',\n 'America/Anchorage',\n 'America/Araguaina',\n 'America/Argentina/Buenos_Aires',\n 'America/Argentina/Catamarca',\n 'America/Argentina/Cordoba',\n 'America/Argentina/Jujuy',\n 'America/Argentina/La_Rioja',\n 'America/Argentina/Mendoza',\n 'America/Argentina/Rio_Gallegos',\n 'America/Argentina/Salta',\n 'America/Argentina/San_Juan',\n 'America/Argentina/San_Luis',\n 'America/Argentina/Tucuman',\n 'America/Argentina/Ushuaia',\n 'America/Asuncion',\n 'America/Atikokan',\n 'America/Bahia',\n 'America/Bahia_Banderas',\n 'America/Barbados',\n 'America/Belem',\n 'America/Belize',\n 'America/Blanc-Sablon',\n 'America/Boa_Vista',\n 'America/Bogota',\n 'America/Boise',\n 'America/Cambridge_Bay',\n 'America/Campo_Grande',\n 'America/Cancun',\n 'America/Caracas',\n 'America/Cayenne',\n 'America/Chicago',\n 'America/Chihuahua',\n 'America/Costa_Rica',\n 'America/Creston',\n 'America/Cuiaba',\n 'America/Curacao',\n 'America/Danmarkshavn',\n 'America/Dawson',\n 'America/Dawson_Creek',\n 'America/Denver',\n 'America/Detroit',\n 'America/Edmonton',\n 'America/Eirunepe',\n 'America/El_Salvador',\n 'America/Fortaleza',\n 'America/Fort_Nelson',\n 'America/Glace_Bay',\n 'America/Godthab',\n 'America/Goose_Bay',\n 'America/Grand_Turk',\n 'America/Guatemala',\n 'America/Guayaquil',\n 'America/Guyana',\n 'America/Halifax',\n 'America/Havana',\n 'America/Hermosillo',\n 'America/Indiana/Indianapolis',\n 'America/Indiana/Knox',\n 'America/Indiana/Marengo',\n 'America/Indiana/Petersburg',\n 'America/Indiana/Tell_City',\n 'America/Indiana/Vevay',\n 'America/Indiana/Vincennes',\n 'America/Indiana/Winamac',\n 'America/Inuvik',\n 'America/Iqaluit',\n 'America/Jamaica',\n 'America/Juneau',\n 'America/Kentucky/Louisville',\n 'America/Kentucky/Monticello',\n 'America/La_Paz',\n 'America/Lima',\n 'America/Los_Angeles',\n 'America/Maceio',\n 'America/Managua',\n 'America/Manaus',\n 'America/Martinique',\n 'America/Matamoros',\n 'America/Mazatlan',\n 'America/Menominee',\n 'America/Merida',\n 'America/Metlakatla',\n 'America/Mexico_City',\n 'America/Miquelon',\n 'America/Moncton',\n 'America/Monterrey',\n 'America/Montevideo',\n 'America/Nassau',\n 'America/New_York',\n 'America/Nipigon',\n 'America/Nome',\n 'America/Noronha',\n 'America/North_Dakota/Beulah',\n 'America/North_Dakota/Center',\n 'America/North_Dakota/New_Salem',\n 'America/Ojinaga',\n 'America/Panama',\n 'America/Pangnirtung',\n 'America/Paramaribo',\n 'America/Phoenix',\n 'America/Port-au-Prince',\n 'America/Port_of_Spain',\n 'America/Porto_Velho',\n 'America/Puerto_Rico',\n 'America/Punta_Arenas',\n 'America/Rainy_River',\n 'America/Rankin_Inlet',\n 'America/Recife',\n 'America/Regina',\n 'America/Resolute',\n 'America/Rio_Branco',\n 'America/Santarem',\n 'America/Santiago',\n 'America/Santo_Domingo',\n 'America/Sao_Paulo',\n 'America/Scoresbysund',\n 'America/Sitka',\n 'America/St_Johns',\n 'America/Swift_Current',\n 'America/Tegucigalpa',\n 'America/Thule',\n 'America/Thunder_Bay',\n 'America/Tijuana',\n 'America/Toronto',\n 'America/Vancouver',\n 'America/Whitehorse',\n 'America/Winnipeg',\n 'America/Yakutat',\n 'America/Yellowknife',\n 'Antarctica/Casey',\n 'Antarctica/Davis',\n 'Antarctica/DumontDUrville',\n 'Antarctica/Macquarie',\n 'Antarctica/Mawson',\n 'Antarctica/Palmer',\n 'Antarctica/Rothera',\n 'Antarctica/Syowa',\n 'Antarctica/Troll',\n 'Antarctica/Vostok',\n 'Asia/Almaty',\n 'Asia/Amman',\n 'Asia/Anadyr',\n 'Asia/Aqtau',\n 'Asia/Aqtobe',\n 'Asia/Ashgabat',\n 'Asia/Atyrau',\n 'Asia/Baghdad',\n 'Asia/Baku',\n 'Asia/Bangkok',\n 'Asia/Barnaul',\n 'Asia/Beirut',\n 'Asia/Bishkek',\n 'Asia/Brunei',\n 'Asia/Chita',\n 'Asia/Choibalsan',\n 'Asia/Colombo',\n 'Asia/Damascus',\n 'Asia/Dhaka',\n 'Asia/Dili',\n 'Asia/Dubai',\n 'Asia/Dushanbe',\n 'Asia/Famagusta',\n 'Asia/Gaza',\n 'Asia/Hebron',\n 'Asia/Ho_Chi_Minh',\n 'Asia/Hong_Kong',\n 'Asia/Hovd',\n 'Asia/Irkutsk',\n 'Asia/Jakarta',\n 'Asia/Jayapura',\n 'Asia/Jerusalem',\n 'Asia/Kabul',\n 'Asia/Kamchatka',\n 'Asia/Karachi',\n 'Asia/Kathmandu',\n 'Asia/Khandyga',\n 'Asia/Kolkata',\n 'Asia/Krasnoyarsk',\n 'Asia/Kuala_Lumpur',\n 'Asia/Kuching',\n 'Asia/Macau',\n 'Asia/Magadan',\n 'Asia/Makassar',\n 'Asia/Manila',\n 'Asia/Nicosia',\n 'Asia/Novokuznetsk',\n 'Asia/Novosibirsk',\n 'Asia/Omsk',\n 'Asia/Oral',\n 'Asia/Pontianak',\n 'Asia/Pyongyang',\n 'Asia/Qatar',\n 'Asia/Qostanay',\n 'Asia/Qyzylorda',\n 'Asia/Riyadh',\n 'Asia/Sakhalin',\n 'Asia/Samarkand',\n 'Asia/Seoul',\n 'Asia/Shanghai',\n 'Asia/Singapore',\n 'Asia/Srednekolymsk',\n 'Asia/Taipei',\n 'Asia/Tashkent',\n 'Asia/Tbilisi',\n 'Asia/Tehran',\n 'Asia/Thimphu',\n 'Asia/Tokyo',\n 'Asia/Tomsk',\n 'Asia/Ulaanbaatar',\n 'Asia/Urumqi',\n 'Asia/Ust-Nera',\n 'Asia/Vladivostok',\n 'Asia/Yakutsk',\n 'Asia/Yangon',\n 'Asia/Yekaterinburg',\n 'Asia/Yerevan',\n 'Atlantic/Azores',\n 'Atlantic/Bermuda',\n 'Atlantic/Canary',\n 'Atlantic/Cape_Verde',\n 'Atlantic/Faroe',\n 'Atlantic/Madeira',\n 'Atlantic/Reykjavik',\n 'Atlantic/South_Georgia',\n 'Atlantic/Stanley',\n 'Australia/Adelaide',\n 'Australia/Brisbane',\n 'Australia/Broken_Hill',\n 'Australia/Currie',\n 'Australia/Darwin',\n 'Australia/Eucla',\n 'Australia/Hobart',\n 'Australia/Lindeman',\n 'Australia/Lord_Howe',\n 'Australia/Melbourne',\n 'Australia/Perth',\n 'Australia/Sydney',\n 'Europe/Amsterdam',\n 'Europe/Andorra',\n 'Europe/Astrakhan',\n 'Europe/Athens',\n 'Europe/Belgrade',\n 'Europe/Berlin',\n 'Europe/Brussels',\n 'Europe/Bucharest',\n 'Europe/Budapest',\n 'Europe/Chisinau',\n 'Europe/Copenhagen',\n 'Europe/Dublin',\n 'Europe/Gibraltar',\n 'Europe/Helsinki',\n 'Europe/Istanbul',\n 'Europe/Kaliningrad',\n 'Europe/Kiev',\n 'Europe/Kirov',\n 'Europe/Lisbon',\n 'Europe/London',\n 'Europe/Luxembourg',\n 'Europe/Madrid',\n 'Europe/Malta',\n 'Europe/Minsk',\n 'Europe/Monaco',\n 'Europe/Moscow',\n 'Europe/Oslo',\n 'Europe/Paris',\n 'Europe/Prague',\n 'Europe/Riga',\n 'Europe/Rome',\n 'Europe/Samara',\n 'Europe/Saratov',\n 'Europe/Simferopol',\n 'Europe/Sofia',\n 'Europe/Stockholm',\n 'Europe/Tallinn',\n 'Europe/Tirane',\n 'Europe/Ulyanovsk',\n 'Europe/Uzhgorod',\n 'Europe/Vienna',\n 'Europe/Vilnius',\n 'Europe/Volgograd',\n 'Europe/Warsaw',\n 'Europe/Zaporozhye',\n 'Europe/Zurich',\n 'Indian/Chagos',\n 'Indian/Christmas',\n 'Indian/Cocos',\n 'Indian/Kerguelen',\n 'Indian/Mahe',\n 'Indian/Maldives',\n 'Indian/Mauritius',\n 'Indian/Reunion',\n 'Pacific/Apia',\n 'Pacific/Auckland',\n 'Pacific/Bougainville',\n 'Pacific/Chatham',\n 'Pacific/Chuuk',\n 'Pacific/Easter',\n 'Pacific/Efate',\n 'Pacific/Enderbury',\n 'Pacific/Fakaofo',\n 'Pacific/Fiji',\n 'Pacific/Funafuti',\n 'Pacific/Galapagos',\n 'Pacific/Gambier',\n 'Pacific/Guadalcanal',\n 'Pacific/Guam',\n 'Pacific/Honolulu',\n 'Pacific/Kiritimati',\n 'Pacific/Kosrae',\n 'Pacific/Kwajalein',\n 'Pacific/Majuro',\n 'Pacific/Marquesas',\n 'Pacific/Nauru',\n 'Pacific/Niue',\n 'Pacific/Norfolk',\n 'Pacific/Noumea',\n 'Pacific/Pago_Pago',\n 'Pacific/Palau',\n 'Pacific/Pitcairn',\n 'Pacific/Pohnpei',\n 'Pacific/Port_Moresby',\n 'Pacific/Rarotonga',\n 'Pacific/Tahiti',\n 'Pacific/Tarawa',\n 'Pacific/Tongatapu',\n 'Pacific/Wake',\n 'Pacific/Wallis',\n]\n","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, withKeys as _withKeys, createElementVNode as _createElementVNode, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, normalizeClass as _normalizeClass, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-47ea2903\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"tz-dropdown\" }\nconst _hoisted_2 = [\"value\", \"disabled\", \"onKeydown\"]\nconst _hoisted_3 = [\"onClick\", \"onMouseover\", \"autofocus\"]\n\nimport { Ref, ref, toRefs, watch, withDefaults } from 'vue'\n\n import { timeZones } from '@/utils/timezone'\n\n interface Props {\n input: string\n disabled?: boolean\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'TimezoneDropdown',\n props: {\n input: null,\n disabled: { type: Boolean, default: false }\n },\n emits: ['updateTimezone'],\n setup(__props: any, { emit }) {\n\nconst props = __props as { input: string, disabled: boolean };\n\n \n\n \n\n const { input, disabled } = toRefs(props)\n const timezone: Ref = ref(props.input)\n const isOpen: Ref = ref(false)\n const tzList: Ref = ref(null)\n const focusItemIndex: Ref = ref(0)\n\n function matchTimezone(t: string): RegExpMatchArray | null {\n return t.toLowerCase().match(timezone.value.toLowerCase())\n }\n function onMouseOver(index: number) {\n focusItemIndex.value = index\n }\n function onUpdateTimezone(value: string) {\n timezone.value = value\n isOpen.value = false\n emit('updateTimezone', value)\n }\n function onEnter(event: Event & { target: HTMLInputElement }) {\n event.preventDefault()\n if (tzList.value?.firstElementChild?.innerHTML) {\n onUpdateTimezone(tzList.value?.firstElementChild?.innerHTML)\n }\n }\n function openDropdown(event: Event & { target: HTMLInputElement }) {\n event.preventDefault()\n isOpen.value = true\n timezone.value = event.target.value.trim()\n }\n\n watch(\n () => props.input,\n (value) => {\n timezone.value = value\n }\n )\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"input\", {\n class: \"tz-dropdown-input\",\n id: \"timezone\",\n name: \"timezone\",\n value: timezone.value,\n disabled: _unref(disabled),\n required: \"\",\n onKeydown: [\n _cache[0] || (_cache[0] = _withKeys(($event: any) => (onUpdateTimezone(_unref(input))), [\"esc\"])),\n _withKeys(onEnter, [\"enter\"])\n ],\n onInput: openDropdown\n }, null, 40, _hoisted_2),\n (isOpen.value)\n ? (_openBlock(), _createElementBlock(\"ul\", {\n key: 0,\n class: \"tz-dropdown-list\",\n ref_key: \"tzList\",\n ref: tzList\n }, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(timeZones).filter((t) => matchTimezone(t)), (tz, index) => {\n return (_openBlock(), _createElementBlock(\"li\", {\n key: tz,\n class: _normalizeClass([\"tz-dropdown-item\", { focus: index === focusItemIndex.value }]),\n onClick: ($event: any) => (onUpdateTimezone(tz)),\n onMouseover: ($event: any) => (onMouseOver(index)),\n autofocus: index === focusItemIndex.value\n }, _toDisplayString(tz), 43, _hoisted_3))\n }), 128))\n ], 512))\n : _createCommentVNode(\"\", true)\n ]))\n}\n}\n\n})","import script from \"./TimezoneDropdown.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./TimezoneDropdown.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./TimezoneDropdown.vue?vue&type=style&index=0&id=47ea2903&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-47ea2903\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, renderList as _renderList, Fragment as _Fragment, createElementBlock as _createElementBlock, vModelSelect as _vModelSelect, createElementVNode as _createElementVNode, withDirectives as _withDirectives, createTextVNode as _createTextVNode, createVNode as _createVNode, withModifiers as _withModifiers, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-065d5e6c\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"user-preferences-edition\" }\nconst _hoisted_2 = { class: \"profile-form form-box\" }\nconst _hoisted_3 = [\"onSubmit\"]\nconst _hoisted_4 = { class: \"form-items\" }\nconst _hoisted_5 = [\"disabled\"]\nconst _hoisted_6 = [\"value\"]\nconst _hoisted_7 = { class: \"form-items\" }\nconst _hoisted_8 = { class: \"form-items\" }\nconst _hoisted_9 = [\"disabled\"]\nconst _hoisted_10 = [\"value\"]\nconst _hoisted_11 = { class: \"form-items form-checkboxes\" }\nconst _hoisted_12 = { class: \"checkboxes-label\" }\nconst _hoisted_13 = { class: \"checkboxes\" }\nconst _hoisted_14 = [\"id\", \"name\", \"checked\", \"disabled\", \"onInput\"]\nconst _hoisted_15 = { class: \"checkbox-label\" }\nconst _hoisted_16 = { class: \"form-items form-checkboxes\" }\nconst _hoisted_17 = { class: \"checkboxes-label\" }\nconst _hoisted_18 = { class: \"checkboxes\" }\nconst _hoisted_19 = [\"id\", \"name\", \"checked\", \"disabled\", \"onInput\"]\nconst _hoisted_20 = { class: \"checkbox-label\" }\nconst _hoisted_21 = { class: \"form-items form-checkboxes\" }\nconst _hoisted_22 = { class: \"checkboxes-label\" }\nconst _hoisted_23 = { class: \"checkboxes\" }\nconst _hoisted_24 = [\"id\", \"name\", \"checked\", \"disabled\", \"onInput\"]\nconst _hoisted_25 = { class: \"checkbox-label\" }\nconst _hoisted_26 = { class: \"form-buttons\" }\nconst _hoisted_27 = {\n class: \"confirm\",\n type: \"submit\"\n}\n\nimport { ComputedRef, computed, reactive, onMounted, onUnmounted } from 'vue'\n\n import TimezoneDropdown from '@/components/User/ProfileEdition/TimezoneDropdown.vue'\n import { AUTH_USER_STORE, ROOT_STORE } from '@/store/constants'\n import { IUserPreferencesPayload, IAuthUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n import { availableDateFormatOptions } from '@/utils/dates'\n import { availableLanguages } from '@/utils/locales'\n\n interface Props {\n user: IAuthUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'UserPreferencesEdition',\n props: {\n user: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n user: IAuthUserProfile\n };\n\n \n\n const store = useStore()\n\n const userForm: IUserPreferencesPayload = reactive({\n display_ascent: true,\n imperial_units: false,\n language: '',\n timezone: 'Europe/Paris',\n date_format: 'dd/MM/yyyy',\n weekm: false,\n })\n const weekStart = [\n {\n label: 'SUNDAY',\n value: false,\n },\n {\n label: 'MONDAY',\n value: true,\n },\n ]\n const imperialUnits = [\n {\n label: 'METRIC',\n value: false,\n },\n {\n label: 'IMPERIAL',\n value: true,\n },\n ]\n const ascentData = [\n {\n label: 'DISPLAYED',\n value: true,\n },\n {\n label: 'HIDDEN',\n value: false,\n },\n ]\n const loading = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.USER_LOADING]\n )\n const errorMessages: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.ERROR_MESSAGES]\n )\n const dateFormatOptions = computed(() =>\n availableDateFormatOptions(\n new Date().toUTCString(),\n props.user.timezone,\n userForm.language\n )\n )\n\n onMounted(() => {\n if (props.user) {\n updateUserForm(props.user)\n }\n })\n\n function updateUserForm(user: IAuthUserProfile) {\n userForm.display_ascent = user.display_ascent\n userForm.imperial_units = user.imperial_units ? user.imperial_units : false\n userForm.language = user.language ? user.language : 'en'\n userForm.timezone = user.timezone ? user.timezone : 'Europe/Paris'\n userForm.date_format = user.date_format ? user.date_format : 'dd/MM/yyyy'\n userForm.weekm = user.weekm ? user.weekm : false\n }\n function updateProfile() {\n store.dispatch(AUTH_USER_STORE.ACTIONS.UPDATE_USER_PREFERENCES, userForm)\n }\n function updateTZ(value: string) {\n userForm.timezone = value\n }\n function updateAscentDisplay(value: boolean) {\n userForm.display_ascent = value\n }\n function updateImperialUnit(value: boolean) {\n userForm.imperial_units = value\n }\n function updateWeekM(value: boolean) {\n userForm.weekm = value\n }\n\n onUnmounted(() => {\n store.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n })\n\nreturn (_ctx: any,_cache: any) => {\n const _component_ErrorMessage = _resolveComponent(\"ErrorMessage\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n (_unref(errorMessages))\n ? (_openBlock(), _createBlock(_component_ErrorMessage, {\n key: 0,\n message: _unref(errorMessages)\n }, null, 8, [\"message\"]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"form\", {\n onSubmit: _withModifiers(updateProfile, [\"prevent\"])\n }, [\n _createElementVNode(\"label\", _hoisted_4, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.PROFILE.LANGUAGE')) + \" \", 1),\n _withDirectives(_createElementVNode(\"select\", {\n id: \"language\",\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((userForm.language) = $event)),\n disabled: _unref(loading)\n }, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(availableLanguages), (lang) => {\n return (_openBlock(), _createElementBlock(\"option\", {\n value: lang.value,\n key: lang.value\n }, _toDisplayString(lang.label), 9, _hoisted_6))\n }), 128))\n ], 8, _hoisted_5), [\n [_vModelSelect, userForm.language]\n ])\n ]),\n _createElementVNode(\"label\", _hoisted_7, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.PROFILE.TIMEZONE')) + \" \", 1),\n _createVNode(TimezoneDropdown, {\n input: userForm.timezone,\n disabled: _unref(loading),\n onUpdateTimezone: updateTZ\n }, null, 8, [\"input\", \"disabled\"])\n ]),\n _createElementVNode(\"label\", _hoisted_8, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.PROFILE.DATE_FORMAT')) + \" \", 1),\n _withDirectives(_createElementVNode(\"select\", {\n id: \"date_format\",\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => ((userForm.date_format) = $event)),\n disabled: _unref(loading)\n }, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(dateFormatOptions), (dateFormat) => {\n return (_openBlock(), _createElementBlock(\"option\", {\n value: dateFormat.value,\n key: dateFormat.value\n }, _toDisplayString(dateFormat.label), 9, _hoisted_10))\n }), 128))\n ], 8, _hoisted_9), [\n [_vModelSelect, userForm.date_format]\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_11, [\n _createElementVNode(\"span\", _hoisted_12, _toDisplayString(_ctx.$t('user.PROFILE.FIRST_DAY_OF_WEEK')), 1),\n _createElementVNode(\"div\", _hoisted_13, [\n (_openBlock(), _createElementBlock(_Fragment, null, _renderList(weekStart, (start) => {\n return _createElementVNode(\"label\", {\n key: start.label\n }, [\n _createElementVNode(\"input\", {\n type: \"radio\",\n id: start.label,\n name: start.label,\n checked: start.value === userForm.weekm,\n disabled: _unref(loading),\n onInput: ($event: any) => (updateWeekM(start.value))\n }, null, 40, _hoisted_14),\n _createElementVNode(\"span\", _hoisted_15, _toDisplayString(_ctx.$t(`user.PROFILE.${start.label}`)), 1)\n ])\n }), 64))\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_16, [\n _createElementVNode(\"span\", _hoisted_17, _toDisplayString(_ctx.$t('user.PROFILE.UNITS.LABEL')), 1),\n _createElementVNode(\"div\", _hoisted_18, [\n (_openBlock(), _createElementBlock(_Fragment, null, _renderList(imperialUnits, (unit) => {\n return _createElementVNode(\"label\", {\n key: unit.label\n }, [\n _createElementVNode(\"input\", {\n type: \"radio\",\n id: unit.label,\n name: unit.label,\n checked: unit.value === userForm.imperial_units,\n disabled: _unref(loading),\n onInput: ($event: any) => (updateImperialUnit(unit.value))\n }, null, 40, _hoisted_19),\n _createElementVNode(\"span\", _hoisted_20, _toDisplayString(_ctx.$t(`user.PROFILE.UNITS.${unit.label}`)), 1)\n ])\n }), 64))\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_21, [\n _createElementVNode(\"span\", _hoisted_22, _toDisplayString(_ctx.$t('user.PROFILE.ASCENT_DATA')), 1),\n _createElementVNode(\"div\", _hoisted_23, [\n (_openBlock(), _createElementBlock(_Fragment, null, _renderList(ascentData, (status) => {\n return _createElementVNode(\"label\", {\n key: status.label\n }, [\n _createElementVNode(\"input\", {\n type: \"radio\",\n id: status.label,\n name: status.label,\n checked: status.value === userForm.display_ascent,\n disabled: _unref(loading),\n onInput: ($event: any) => (updateAscentDisplay(status.value))\n }, null, 40, _hoisted_24),\n _createElementVNode(\"span\", _hoisted_25, _toDisplayString(_ctx.$t(`common.${status.label}`)), 1)\n ])\n }), 64))\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_26, [\n _createElementVNode(\"button\", _hoisted_27, _toDisplayString(_ctx.$t('buttons.SUBMIT')), 1),\n _createElementVNode(\"button\", {\n class: \"cancel\",\n onClick: _cache[2] || (_cache[2] = _withModifiers(($event: any) => (_ctx.$router.push('/profile/preferences')), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('buttons.CANCEL')), 1)\n ])\n ], 40, _hoisted_3)\n ])\n ]))\n}\n}\n\n})","import script from \"./UserPreferencesEdition.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserPreferencesEdition.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserPreferencesEdition.vue?vue&type=style&index=0&id=065d5e6c&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-065d5e6c\"]])\n\nexport default __exports__","export const oauth2_scopes = [\n 'profile:read',\n 'profile:write',\n 'users:read',\n 'users:write',\n 'workouts:read',\n 'workouts:write',\n]\n\nexport const admin_oauth2_scopes = ['application:write']\n","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, vModelText as _vModelText, withDirectives as _withDirectives, resolveComponent as _resolveComponent, createVNode as _createVNode, unref as _unref, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, withModifiers as _withModifiers, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-0657ee77\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"new-oauth2-app\" }\nconst _hoisted_2 = { id: \"new-oauth2-title\" }\nconst _hoisted_3 = { id: \"apps-form\" }\nconst _hoisted_4 = [\"onSubmit\"]\nconst _hoisted_5 = { class: \"form-items\" }\nconst _hoisted_6 = { class: \"form-item\" }\nconst _hoisted_7 = { for: \"app-name\" }\nconst _hoisted_8 = { class: \"form-item\" }\nconst _hoisted_9 = { for: \"app-description\" }\nconst _hoisted_10 = { class: \"form-item\" }\nconst _hoisted_11 = { for: \"app-url\" }\nconst _hoisted_12 = { class: \"form-item\" }\nconst _hoisted_13 = { for: \"app-redirect-uri\" }\nconst _hoisted_14 = { class: \"form-item-scope\" }\nconst _hoisted_15 = { class: \"form-item-scope-label\" }\nconst _hoisted_16 = { class: \"scope-label\" }\nconst _hoisted_17 = [\"name\", \"checked\", \"onChange\"]\nconst _hoisted_18 = [\"innerHTML\"]\nconst _hoisted_19 = { class: \"form-buttons\" }\nconst _hoisted_20 = [\"disabled\"]\n\nimport { computed, reactive } from 'vue'\n\n import { OAUTH2_STORE } from '@/store/constants'\n import { IOAuth2ClientPayload } from '@/types/oauth'\n import { IAuthUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n import { admin_oauth2_scopes, oauth2_scopes } from '@/utils/oauth'\n\n interface Props {\n authUser: IAuthUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'AddUserApp',\n props: {\n authUser: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n authUser: IAuthUserProfile\n };\n\n \n\n const store = useStore()\n const appForm = reactive({\n client_name: '',\n client_uri: '',\n client_description: '',\n redirect_uri: '',\n })\n const scopes: string[] = reactive([])\n const filtered_scopes = computed(() =>\n getScopes(props.authUser, admin_oauth2_scopes, oauth2_scopes)\n )\n\n function createApp() {\n const payload: IOAuth2ClientPayload = {\n client_name: appForm.client_name,\n client_description: appForm.client_description,\n client_uri: appForm.client_uri,\n redirect_uris: [appForm.redirect_uri],\n scope: scopes.sort().join(' '),\n }\n store.dispatch(OAUTH2_STORE.ACTIONS.CREATE_CLIENT, payload)\n }\n function updateDescription(value: string) {\n appForm.client_description = value\n }\n function updateScopes(scope: string) {\n const index = scopes.indexOf(scope)\n if (index > -1) {\n scopes.splice(index, 1)\n } else {\n scopes.push(scope)\n }\n }\n function getScopes(\n authUser: IAuthUserProfile,\n admin_scopes: string[],\n scopes: string[]\n ) {\n const filtered_scopes = [...scopes]\n if (authUser.admin) {\n filtered_scopes.push(...admin_scopes)\n }\n return filtered_scopes.sort()\n }\n\nreturn (_ctx: any,_cache: any) => {\n const _component_CustomTextArea = _resolveComponent(\"CustomTextArea\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"h1\", _hoisted_2, _toDisplayString(_ctx.$t('oauth2.ADD_A_NEW_APP')), 1),\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"form\", {\n onSubmit: _withModifiers(createApp, [\"prevent\"])\n }, [\n _createElementVNode(\"div\", _hoisted_5, [\n _createElementVNode(\"div\", _hoisted_6, [\n _createElementVNode(\"label\", _hoisted_7, _toDisplayString(_ctx.$t('oauth2.APP.NAME')) + \"*\", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"app-name\",\n type: \"text\",\n required: \"\",\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((appForm.client_name) = $event))\n }, null, 512), [\n [_vModelText, appForm.client_name]\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_8, [\n _createElementVNode(\"label\", _hoisted_9, _toDisplayString(_ctx.$t('oauth2.APP.DESCRIPTION')), 1),\n _createVNode(_component_CustomTextArea, {\n name: \"app-description\",\n charLimit: 200,\n input: appForm.description,\n onUpdateValue: updateDescription\n }, null, 8, [\"input\"])\n ]),\n _createElementVNode(\"div\", _hoisted_10, [\n _createElementVNode(\"label\", _hoisted_11, _toDisplayString(_ctx.$t('oauth2.APP.URL')) + \"*\", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"app-url\",\n type: \"text\",\n required: \"\",\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => ((appForm.client_uri) = $event))\n }, null, 512), [\n [_vModelText, appForm.client_uri]\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_12, [\n _createElementVNode(\"label\", _hoisted_13, _toDisplayString(_ctx.$t('oauth2.APP.REDIRECT_URL')) + \"* \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"app-redirect-uri\",\n type: \"text\",\n required: \"\",\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => ((appForm.redirect_uri) = $event))\n }, null, 512), [\n [_vModelText, appForm.redirect_uri]\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_14, [\n _createElementVNode(\"div\", _hoisted_15, _toDisplayString(_ctx.$t('oauth2.APP.SCOPE.LABEL')) + \"* \", 1),\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(filtered_scopes), (scope) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"form-item-scope-checkboxes\",\n key: scope\n }, [\n _createElementVNode(\"label\", _hoisted_16, [\n _createElementVNode(\"input\", {\n type: \"checkbox\",\n name: scope,\n checked: scopes.includes(scope),\n onChange: ($event: any) => (updateScopes(scope))\n }, null, 40, _hoisted_17),\n _createElementVNode(\"code\", null, _toDisplayString(scope), 1)\n ]),\n _createElementVNode(\"p\", {\n class: \"scope-description\",\n innerHTML: _ctx.$t(`oauth2.APP.SCOPE.${scope}_DESCRIPTION`)\n }, null, 8, _hoisted_18)\n ]))\n }), 128))\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_19, [\n _createElementVNode(\"button\", {\n class: \"confirm\",\n type: \"submit\",\n disabled: scopes.length === 0\n }, _toDisplayString(_ctx.$t('buttons.SUBMIT')), 9, _hoisted_20),\n _createElementVNode(\"button\", {\n class: \"cancel\",\n onClick: _cache[3] || (_cache[3] = _withModifiers(() => _ctx.$router.push('/profile/apps'), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('buttons.CANCEL')), 1)\n ])\n ], 40, _hoisted_4)\n ])\n ]))\n}\n}\n\n})","import script from \"./AddUserApp.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AddUserApp.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./AddUserApp.vue?vue&type=style&index=0&id=0657ee77&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-0657ee77\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, createElementVNode as _createElementVNode, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, renderList as _renderList, Fragment as _Fragment, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-3b2fe9ed\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"authorize-oauth2-app\" }\nconst _hoisted_2 = { key: 0 }\nconst _hoisted_3 = { id: \"authorize-oauth2-title\" }\nconst _hoisted_4 = { class: \"oauth2-access description-list\" }\nconst _hoisted_5 = { class: \"client-scope\" }\nconst _hoisted_6 = [\"innerHTML\"]\nconst _hoisted_7 = { class: \"authorize-oauth2-buttons\" }\nconst _hoisted_8 = { key: 1 }\nconst _hoisted_9 = { class: \"no-app\" }\n\nimport { computed, ComputedRef, onBeforeMount } from 'vue'\n import { useRoute } from 'vue-router'\n\n import { OAUTH2_STORE, ROOT_STORE } from '@/store/constants'\n import { IOAuth2Client } from '@/types/oauth'\n import { useStore } from '@/use/useStore'\n\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'AuthorizeUserApp',\n setup(__props) {\n\n const route = useRoute()\n const store = useStore()\n\n const client: ComputedRef = computed(\n () => store.getters[OAUTH2_STORE.GETTERS.CLIENT]\n )\n const errorMessages: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.ERROR_MESSAGES]\n )\n\n onBeforeMount(() => loadApp())\n\n function loadApp() {\n if (route.query.client_id && typeof route.query.client_id === 'string') {\n store.dispatch(\n OAUTH2_STORE.ACTIONS.GET_CLIENT_BY_CLIENT_ID,\n route.query.client_id\n )\n }\n }\n\n function authorizeApp() {\n store.dispatch(OAUTH2_STORE.ACTIONS.AUTHORIZE_CLIENT, {\n client_id: `${route.query.client_id}`,\n redirect_uri: `${route.query.redirect_uri}`,\n response_type: `${route.query.response_type}`,\n scope: `${route.query.scope}`,\n state: `${route.query.state ? route.query.state : ''}`,\n code_challenge: `${\n route.query.code_challenge ? route.query.code_challenge : ''\n }`,\n code_challenge_method: `${\n route.query.code_challenge_method\n ? route.query.code_challenge_method\n : ''\n }`,\n })\n }\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_link = _resolveComponent(\"router-link\")!\n const _component_i18n_t = _resolveComponent(\"i18n-t\")!\n const _component_ErrorMessage = _resolveComponent(\"ErrorMessage\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_unref(client).client_id)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, [\n _createElementVNode(\"h1\", _hoisted_3, [\n _createVNode(_component_i18n_t, { keypath: \"oauth2.AUTHORIZE_APP\" }, {\n default: _withCtx(() => [\n _createVNode(_component_router_link, {\n to: { name: 'UserApp', params: { id: _unref(client).id } }\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_unref(client).name), 1)\n ]),\n _: 1\n }, 8, [\"to\"])\n ]),\n _: 1\n })\n ]),\n (_unref(errorMessages))\n ? (_openBlock(), _createBlock(_component_ErrorMessage, {\n key: 0,\n message: _unref(errorMessages)\n }, null, 8, [\"message\"]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"p\", null, _toDisplayString(_ctx.$t('oauth2.APP_REQUESTING_ACCESS')), 1),\n _createElementVNode(\"dl\", null, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(client).scope.split(' '), (scope) => {\n return (_openBlock(), _createElementBlock(_Fragment, { key: scope }, [\n _createElementVNode(\"dt\", _hoisted_5, [\n _createElementVNode(\"code\", null, _toDisplayString(scope), 1)\n ]),\n _createElementVNode(\"dd\", {\n innerHTML: _ctx.$t(`oauth2.APP.SCOPE.${scope}_DESCRIPTION`)\n }, null, 8, _hoisted_6)\n ], 64))\n }), 128))\n ]),\n _createElementVNode(\"div\", _hoisted_7, [\n _createElementVNode(\"button\", {\n class: \"danger\",\n onClick: authorizeApp\n }, _toDisplayString(_ctx.$t('buttons.AUTHORIZE')), 1),\n _createElementVNode(\"button\", {\n class: \"cancel\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.$router.push('/profile/apps')))\n }, _toDisplayString(_ctx.$t('buttons.CANCEL')), 1)\n ])\n ])\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_8, [\n _createElementVNode(\"p\", _hoisted_9, _toDisplayString(_ctx.$t('oauth2.NO_APP')), 1),\n _createElementVNode(\"button\", {\n onClick: _cache[1] || (_cache[1] = ($event: any) => (_ctx.$router.push('/profile/apps')))\n }, _toDisplayString(_ctx.$t('buttons.BACK')), 1)\n ]))\n ]))\n}\n}\n\n})","import script from \"./AuthorizeUserApp.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AuthorizeUserApp.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./AuthorizeUserApp.vue?vue&type=style&index=0&id=3b2fe9ed&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-3b2fe9ed\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, resolveComponent as _resolveComponent, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { id: \"oauth2-apps\" }\n\nimport { onUnmounted, toRefs } from 'vue'\n\n import { OAUTH2_STORE, ROOT_STORE } from '@/store/constants'\n import { IAuthUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n\n interface Props {\n user: IAuthUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'index',\n props: {\n user: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n user: IAuthUserProfile\n };\n\n \n\n const store = useStore()\n\n const { user } = toRefs(props)\n\n onUnmounted(() => {\n store.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n store.commit(OAUTH2_STORE.MUTATIONS.SET_CLIENTS, [])\n })\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_view = _resolveComponent(\"router-view\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_router_view, { authUser: _unref(user) }, null, 8, [\"authUser\"])\n ]))\n}\n}\n\n})","import script from \"./index.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./index.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { resolveComponent as _resolveComponent, unref as _unref, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, createElementBlock as _createElementBlock, createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, createTextVNode as _createTextVNode, renderList as _renderList, Fragment as _Fragment, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-3a844fa2\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n id: \"oauth2-app\",\n class: \"description-list\"\n}\nconst _hoisted_2 = { key: 1 }\nconst _hoisted_3 = {\n key: 0,\n class: \"info-box success-message\"\n}\nconst _hoisted_4 = [\"title\"]\nconst _hoisted_5 = { key: 0 }\nconst _hoisted_6 = {\n key: 1,\n class: \"app-secret\"\n}\nconst _hoisted_7 = [\"title\"]\nconst _hoisted_8 = { class: \"client-scopes\" }\nconst _hoisted_9 = { class: \"app-buttons\" }\nconst _hoisted_10 = { key: 2 }\nconst _hoisted_11 = { class: \"no-app\" }\n\nimport {\n ComputedRef,\n Ref,\n capitalize,\n computed,\n onBeforeMount,\n toRefs,\n ref,\n onUnmounted,\n withDefaults,\n watch,\n } from 'vue'\n import { useRoute } from 'vue-router'\n\n import { OAUTH2_STORE, ROOT_STORE } from '@/store/constants'\n import { IOAuth2Client } from '@/types/oauth'\n import { IAuthUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n import { formatDate } from '@/utils/dates'\n\n interface Props {\n authUser: IAuthUserProfile\n afterCreation?: boolean\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'UserApp',\n props: {\n authUser: null,\n afterCreation: { type: Boolean, default: false }\n },\n setup(__props: any) {\n\nconst props = __props as { authUser: IAuthUserProfile, afterCreation: boolean };\n\n \n const route = useRoute()\n const store = useStore()\n\n const { afterCreation, authUser } = toRefs(props)\n const client: ComputedRef = computed(\n () => store.getters[OAUTH2_STORE.GETTERS.CLIENT]\n )\n const revocationSuccessful: ComputedRef = computed(\n () => store.getters[OAUTH2_STORE.GETTERS.REVOCATION_SUCCESSFUL]\n )\n const displayModal: Ref = ref(false)\n const messageToDisplay: Ref = ref(null)\n const idCopied: Ref = ref(false)\n const secretCopied: Ref = ref(false)\n const clipboardSupport: Ref = ref(false)\n\n onBeforeMount(() => {\n loadClient()\n if (navigator.clipboard) {\n clipboardSupport.value = true\n }\n })\n\n function loadClient() {\n // after creation, client is already in store\n if (\n !afterCreation.value &&\n route.params.id &&\n typeof route.params.id === 'string'\n ) {\n store.dispatch(OAUTH2_STORE.ACTIONS.GET_CLIENT_BY_ID, +route.params.id)\n }\n }\n function updateMessageToDisplay(forDelete: boolean) {\n messageToDisplay.value = forDelete\n ? 'oauth2.APP_DELETION_CONFIRMATION'\n : 'oauth2.TOKENS_REVOCATION_CONFIRMATION'\n updateDisplayModal(true)\n }\n function updateDisplayModal(value: boolean) {\n displayModal.value = value\n if (!value) {\n messageToDisplay.value = null\n }\n }\n function confirmAction(clientId: number) {\n if (messageToDisplay.value === 'oauth2.APP_DELETION_CONFIRMATION') {\n store.dispatch(OAUTH2_STORE.ACTIONS.DELETE_CLIENT, clientId)\n } else {\n store.dispatch(OAUTH2_STORE.ACTIONS.REVOKE_ALL_TOKENS, clientId)\n }\n }\n function copyIdToClipboard() {\n navigator.clipboard.writeText(client.value.client_id)\n idCopied.value = true\n secretCopied.value = false\n setTimeout(() => {\n idCopied.value = false\n }, 3000)\n }\n function copySecretToClipboard() {\n if (client.value.client_secret) {\n navigator.clipboard.writeText(client.value.client_secret)\n secretCopied.value = true\n idCopied.value = false\n setTimeout(() => {\n secretCopied.value = false\n }, 3000)\n }\n }\n onUnmounted(() => {\n store.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n store.commit(OAUTH2_STORE.MUTATIONS.EMPTY_CLIENT)\n store.commit(OAUTH2_STORE.MUTATIONS.SET_REVOCATION_SUCCESSFUL, false)\n })\n\n watch(\n () => revocationSuccessful.value,\n (newValue) => {\n if (newValue) {\n updateDisplayModal(false)\n }\n }\n )\n\nreturn (_ctx: any,_cache: any) => {\n const _component_Modal = _resolveComponent(\"Modal\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (displayModal.value)\n ? (_openBlock(), _createBlock(_component_Modal, {\n key: 0,\n title: _ctx.$t('common.CONFIRMATION'),\n message: _ctx.$t(messageToDisplay.value),\n onConfirmAction: _cache[0] || (_cache[0] = ($event: any) => (confirmAction(_unref(client).id))),\n onCancelAction: _cache[1] || (_cache[1] = ($event: any) => (updateDisplayModal(false)))\n }, null, 8, [\"title\", \"message\"]))\n : _createCommentVNode(\"\", true),\n (_unref(client) && _unref(client).client_id)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, [\n (_unref(afterCreation) || _unref(revocationSuccessful))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, _toDisplayString(_ctx.$t(\n _unref(afterCreation)\n ? 'oauth2.APP_CREATED_SUCCESSFULLY'\n : 'oauth2.TOKENS_REVOKED'\n )), 1))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"dl\", null, [\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('oauth2.APP.CLIENT_ID')) + \":\", 1),\n _createElementVNode(\"dd\", null, [\n _createTextVNode(_toDisplayString(_unref(client).client_id) + \" \", 1),\n (_unref(afterCreation) && clipboardSupport.value)\n ? (_openBlock(), _createElementBlock(\"i\", {\n key: 0,\n class: _normalizeClass(`fa fa-${idCopied.value ? 'check' : 'copy'}`),\n \"aria-hidden\": \"true\",\n title: _ctx.$t('oauth2.COPY_TO_CLIPBOARD'),\n onClick: copyIdToClipboard\n }, null, 10, _hoisted_4))\n : _createCommentVNode(\"\", true)\n ]),\n (_unref(afterCreation) && _unref(client).client_secret)\n ? (_openBlock(), _createElementBlock(\"dt\", _hoisted_5, _toDisplayString(_ctx.$t('oauth2.APP.CLIENT_SECRET')) + \": \", 1))\n : _createCommentVNode(\"\", true),\n (_unref(afterCreation) && _unref(client).client_secret)\n ? (_openBlock(), _createElementBlock(\"dd\", _hoisted_6, [\n _createTextVNode(_toDisplayString(_unref(client).client_secret) + \" \", 1),\n (clipboardSupport.value)\n ? (_openBlock(), _createElementBlock(\"i\", {\n key: 0,\n class: _normalizeClass(`fa fa-${secretCopied.value ? 'check' : 'copy'}`),\n \"aria-hidden\": \"true\",\n title: _ctx.$t('oauth2.COPY_TO_CLIPBOARD'),\n onClick: copySecretToClipboard\n }, null, 10, _hoisted_7))\n : _createCommentVNode(\"\", true)\n ]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"dt\", null, _toDisplayString(capitalize(_ctx.$t('oauth2.APP.ISSUE_AT'))) + \":\", 1),\n _createElementVNode(\"dd\", null, _toDisplayString(_unref(formatDate)(\n _unref(client).issued_at,\n _unref(authUser).timezone,\n _unref(authUser).date_format\n )), 1),\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('oauth2.APP.NAME')) + \":\", 1),\n _createElementVNode(\"dd\", null, _toDisplayString(_unref(client).name), 1),\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('oauth2.APP.DESCRIPTION')) + \":\", 1),\n _createElementVNode(\"dd\", {\n class: _normalizeClass({ 'no-description': !_unref(client).client_description })\n }, _toDisplayString(_unref(client).client_description\n ? _unref(client).client_description\n : _ctx.$t('oauth2.NO_DESCRIPTION')), 3),\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('oauth2.APP.URL')) + \":\", 1),\n _createElementVNode(\"dd\", null, _toDisplayString(_unref(client).website), 1),\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('oauth2.APP.REDIRECT_URL')) + \":\", 1),\n _createElementVNode(\"dd\", null, _toDisplayString(_unref(client).redirect_uris.length > 0 ? _unref(client).redirect_uris[0] : ''), 1),\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('oauth2.APP.SCOPE.LABEL')) + \":\", 1),\n _createElementVNode(\"dd\", _hoisted_8, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(client).scope.split(' '), (scope) => {\n return (_openBlock(), _createElementBlock(\"span\", {\n class: \"client-scope\",\n key: scope\n }, [\n _createElementVNode(\"code\", null, _toDisplayString(scope), 1)\n ]))\n }), 128))\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_9, [\n _createElementVNode(\"button\", {\n class: \"danger\",\n onClick: _cache[2] || (_cache[2] = ($event: any) => (updateMessageToDisplay(false)))\n }, _toDisplayString(_ctx.$t('oauth2.REVOKE_ALL_TOKENS')), 1),\n _createElementVNode(\"button\", {\n class: \"danger\",\n onClick: _cache[3] || (_cache[3] = ($event: any) => (updateMessageToDisplay(true)))\n }, _toDisplayString(_ctx.$t('oauth2.DELETE_APP')), 1),\n _createElementVNode(\"button\", {\n onClick: _cache[4] || (_cache[4] = ($event: any) => (_ctx.$router.push('/profile/apps')))\n }, _toDisplayString(_ctx.$t('buttons.BACK')), 1)\n ])\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_10, [\n _createElementVNode(\"p\", _hoisted_11, _toDisplayString(_ctx.$t('oauth2.NO_APP')), 1),\n _createElementVNode(\"button\", {\n onClick: _cache[5] || (_cache[5] = ($event: any) => (_ctx.$router.push('/profile/apps')))\n }, _toDisplayString(_ctx.$t('buttons.BACK')), 1)\n ]))\n ]))\n}\n}\n\n})","import script from \"./UserApp.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserApp.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserApp.vue?vue&type=style&index=0&id=3a844fa2&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-3a844fa2\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, unref as _unref, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, createCommentVNode as _createCommentVNode, createBlock as _createBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-efa45ea0\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"oauth2-apps-list\" }\nconst _hoisted_2 = { class: \"apps-list\" }\nconst _hoisted_3 = { key: 0 }\nconst _hoisted_4 = { class: \"app-issued-at\" }\nconst _hoisted_5 = {\n key: 1,\n class: \"no-apps\"\n}\nconst _hoisted_6 = { class: \"app-list-buttons\" }\n\nimport { ComputedRef, computed, onBeforeMount, toRefs, watch } from 'vue'\n import { LocationQuery, useRoute } from 'vue-router'\n\n import Pagination from '@/components/Common/Pagination.vue'\n import { OAUTH2_STORE } from '@/store/constants'\n import { IPagination } from '@/types/api'\n import { IOAuth2Client, IOauth2ClientsPayload } from '@/types/oauth'\n import { IAuthUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n import { defaultPage, getNumberQueryValue } from '@/utils/api'\n import { formatDate } from '@/utils/dates'\n\n interface Props {\n authUser: IAuthUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'UserAppsList',\n props: {\n authUser: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n authUser: IAuthUserProfile\n };\n\n \n\n const store = useStore()\n const route = useRoute()\n\n const { authUser } = toRefs(props)\n const clients: ComputedRef = computed(\n () => store.getters[OAUTH2_STORE.GETTERS.CLIENTS]\n )\n\n const pagination: ComputedRef = computed(\n () => store.getters[OAUTH2_STORE.GETTERS.CLIENTS_PAGINATION]\n )\n let query: IOauth2ClientsPayload = getClientsQuery(route.query)\n\n onBeforeMount(() => {\n loadClients(query)\n })\n\n function getClientsQuery(newQuery: LocationQuery): IOauth2ClientsPayload {\n const clientsQuery: IOauth2ClientsPayload = {}\n if (newQuery.page) {\n clientsQuery.page = getNumberQueryValue(newQuery.page, defaultPage)\n }\n return clientsQuery\n }\n function loadClients(payload: IOauth2ClientsPayload) {\n store.dispatch(OAUTH2_STORE.ACTIONS.GET_CLIENTS, payload)\n }\n\n watch(\n () => route.query,\n async (newQuery) => {\n query = getClientsQuery(newQuery)\n loadClients(query)\n }\n )\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_link = _resolveComponent(\"router-link\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"p\", _hoisted_2, _toDisplayString(_ctx.$t('oauth2.APPS_LIST')), 1),\n (_unref(clients).length > 0)\n ? (_openBlock(), _createElementBlock(\"ul\", _hoisted_3, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(clients), (client) => {\n return (_openBlock(), _createElementBlock(\"li\", {\n key: client.client_id\n }, [\n _createVNode(_component_router_link, {\n to: { name: 'UserApp', params: { id: client.id } }\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(client.name), 1)\n ]),\n _: 2\n }, 1032, [\"to\"]),\n _createElementVNode(\"span\", _hoisted_4, _toDisplayString(_ctx.$t('oauth2.APP.ISSUE_AT')) + \" \" + _toDisplayString(_unref(formatDate)(\n client.issued_at,\n _unref(authUser).timezone,\n _unref(authUser).date_format\n )), 1)\n ]))\n }), 128))\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_5, _toDisplayString(_ctx.$t('oauth2.NO_APPS')), 1)),\n (_unref(clients).length > 0)\n ? (_openBlock(), _createBlock(Pagination, {\n key: 2,\n pagination: _unref(pagination),\n path: \"/profile/apps\",\n query: _unref(query)\n }, null, 8, [\"pagination\", \"query\"]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_6, [\n _createElementVNode(\"button\", {\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.$router.push('/profile/apps/new')))\n }, _toDisplayString(_ctx.$t('oauth2.NEW_APP')), 1),\n _createElementVNode(\"button\", {\n onClick: _cache[1] || (_cache[1] = ($event: any) => (_ctx.$router.push('/')))\n }, _toDisplayString(_ctx.$t('common.HOME')), 1)\n ])\n ]))\n}\n}\n\n})","import script from \"./UserAppsList.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserAppsList.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserAppsList.vue?vue&type=style&index=0&id=efa45ea0&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-efa45ea0\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, toDisplayString as _toDisplayString, withModifiers as _withModifiers, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, renderList as _renderList, Fragment as _Fragment, resolveComponent as _resolveComponent, createBlock as _createBlock, createTextVNode as _createTextVNode, normalizeClass as _normalizeClass, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-74e52489\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"user-sport-preferences\" }\nconst _hoisted_2 = {\n key: 0,\n class: \"responsive-table\"\n}\nconst _hoisted_3 = { class: \"mobile-display\" }\nconst _hoisted_4 = {\n key: 0,\n class: \"profile-buttons mobile-display\"\n}\nconst _hoisted_5 = {\n key: 1,\n class: \"profile-buttons\"\n}\nconst _hoisted_6 = { class: \"text-left\" }\nconst _hoisted_7 = { key: 0 }\nconst _hoisted_8 = { class: \"cell-heading\" }\nconst _hoisted_9 = [\"value\"]\nconst _hoisted_10 = { class: \"cell-heading\" }\nconst _hoisted_11 = {\n key: 0,\n class: \"disabled-message\"\n}\nconst _hoisted_12 = {\n key: 1,\n class: \"fa fa-refresh fa-spin fa-fw\"\n}\nconst _hoisted_13 = { class: \"cell-heading\" }\nconst _hoisted_14 = { class: \"cell-heading\" }\nconst _hoisted_15 = [\"checked\"]\nconst _hoisted_16 = { class: \"cell-heading\" }\nconst _hoisted_17 = [\"value\"]\nconst _hoisted_18 = { key: 1 }\nconst _hoisted_19 = {\n key: 0,\n class: \"action-buttons\"\n}\nconst _hoisted_20 = { class: \"cell-heading\" }\nconst _hoisted_21 = [\"onClick\"]\nconst _hoisted_22 = {\n key: 1,\n class: \"edition-buttons\"\n}\nconst _hoisted_23 = [\"disabled\"]\nconst _hoisted_24 = [\"disabled\", \"onClick\"]\nconst _hoisted_25 = [\"disabled\"]\nconst _hoisted_26 = {\n key: 0,\n class: \"profile-buttons\"\n}\nconst _hoisted_27 = {\n key: 1,\n class: \"profile-buttons\"\n}\n\nimport { ComputedRef, computed, inject, reactive, toRefs, watch } from 'vue'\n import { useI18n } from 'vue-i18n'\n\n import { AUTH_USER_STORE, ROOT_STORE, SPORTS_STORE } from '@/store/constants'\n import { ISport, ITranslatedSport } from '@/types/sports'\n import { IUserProfile, IUserSportPreferencesPayload } from '@/types/user'\n import { useStore } from '@/use/useStore'\n import { translateSports } from '@/utils/sports'\n\n interface Props {\n user: IUserProfile\n isEdition: boolean\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'UserSportPreferences',\n props: {\n user: null,\n isEdition: { type: Boolean }\n },\n setup(__props: any) {\n\nconst props = __props as {\n user: IUserProfile\n isEdition: boolean\n };\n\n \n\n const store = useStore()\n const { t } = useI18n()\n\n const { isEdition, user } = toRefs(props)\n const defaultColor = '#838383'\n const sportColors: Record | undefined = inject('sportColors')\n const sports: ComputedRef = computed(\n () => store.getters[SPORTS_STORE.GETTERS.SPORTS]\n )\n const translatedSports: ComputedRef = computed(() =>\n translateSports(sports.value, t, 'is_active', user.value.sports_list)\n )\n const loading = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.USER_LOADING]\n )\n const errorMessages: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.ERROR_MESSAGES]\n )\n const sportPayload: IUserSportPreferencesPayload = reactive({\n sport_id: 0,\n color: null,\n is_active: true,\n stopped_speed_threshold: 1,\n })\n\n function updateSportInEdition(sport: ISport | null) {\n if (sport !== null) {\n sportPayload.sport_id = sport.id\n sportPayload.color = sport.color\n ? sport.color\n : sportColors\n ? sportColors[sport.label]\n : defaultColor\n sportPayload.is_active = sport.is_active_for_user\n sportPayload.stopped_speed_threshold = sport.stopped_speed_threshold\n } else {\n resetSportPayload()\n }\n }\n function isSportInEdition(sportId: number) {\n return sportPayload.sport_id === sportId\n }\n function updateColor(event: Event & { target: HTMLInputElement }) {\n sportPayload.color = event.target.value\n }\n function updateThreshold(event: Event & { target: HTMLInputElement }) {\n sportPayload.stopped_speed_threshold = parseFloat(event.target.value)\n }\n function updateIsActive(event: Event & { target: HTMLInputElement }) {\n sportPayload.is_active = event.target.checked\n }\n function resetSportPayload() {\n sportPayload.sport_id = 0\n sportPayload.color = null\n sportPayload.is_active = true\n sportPayload.stopped_speed_threshold = 1\n store.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n }\n function updateSport(event: Event) {\n event.preventDefault()\n store.dispatch(\n AUTH_USER_STORE.ACTIONS.UPDATE_USER_SPORT_PREFERENCES,\n sportPayload\n )\n }\n function resetSport(event: Event, sportId: number) {\n event.preventDefault()\n store.dispatch(\n AUTH_USER_STORE.ACTIONS.RESET_USER_SPORT_PREFERENCES,\n sportId\n )\n }\n\n watch(\n () => loading.value,\n (newIsLoading) => {\n if (!newIsLoading && !errorMessages.value) {\n resetSportPayload()\n }\n }\n )\n\nreturn (_ctx: any,_cache: any) => {\n const _component_SportImage = _resolveComponent(\"SportImage\")!\n const _component_ErrorMessage = _resolveComponent(\"ErrorMessage\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_unref(sports).length > 0)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n (_unref(isEdition))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_4, [\n _createElementVNode(\"button\", {\n class: \"cancel\",\n onClick: _cache[0] || (_cache[0] = _withModifiers(($event: any) => (_ctx.$router.push('/profile/sports')), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('buttons.BACK')), 1)\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_5, [\n _createElementVNode(\"button\", {\n onClick: _cache[1] || (_cache[1] = ($event: any) => (_ctx.$router.push('/profile/edit/sports')))\n }, _toDisplayString(_ctx.$t('user.PROFILE.EDIT_SPORTS_PREFERENCES')), 1),\n _createElementVNode(\"button\", {\n onClick: _cache[2] || (_cache[2] = ($event: any) => (_ctx.$router.push('/')))\n }, _toDisplayString(_ctx.$t('common.HOME')), 1)\n ]))\n ]),\n _createElementVNode(\"table\", null, [\n _createElementVNode(\"thead\", null, [\n _createElementVNode(\"tr\", null, [\n _createElementVNode(\"th\", null, _toDisplayString(_ctx.$t('user.PROFILE.SPORT.COLOR')), 1),\n _createElementVNode(\"th\", _hoisted_6, _toDisplayString(_ctx.$t('workouts.SPORT', 0)), 1),\n _createElementVNode(\"th\", null, _toDisplayString(_ctx.$t('workouts.WORKOUT', 0)), 1),\n _createElementVNode(\"th\", null, _toDisplayString(_ctx.$t('user.PROFILE.SPORT.IS_ACTIVE')), 1),\n _createElementVNode(\"th\", null, _toDisplayString(_ctx.$t('user.PROFILE.SPORT.STOPPED_SPEED_THRESHOLD')), 1),\n (_unref(isEdition))\n ? (_openBlock(), _createElementBlock(\"th\", _hoisted_7, _toDisplayString(_ctx.$t('user.PROFILE.SPORT.ACTION')), 1))\n : _createCommentVNode(\"\", true)\n ])\n ]),\n _createElementVNode(\"tbody\", null, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(translatedSports), (sport) => {\n return (_openBlock(), _createElementBlock(\"tr\", {\n key: sport.id\n }, [\n _createElementVNode(\"td\", null, [\n _createElementVNode(\"span\", _hoisted_8, _toDisplayString(_ctx.$t('user.PROFILE.SPORT.COLOR')), 1),\n (isSportInEdition(sport.id))\n ? (_openBlock(), _createElementBlock(\"input\", {\n key: 0,\n class: \"sport-color\",\n type: \"color\",\n value: sportPayload.color,\n onInput: updateColor\n }, null, 40, _hoisted_9))\n : (_openBlock(), _createBlock(_component_SportImage, {\n key: 1,\n title: sport.translatedLabel,\n \"sport-label\": sport.label,\n color: sport.color ? sport.color : _unref(sportColors)[sport.label]\n }, null, 8, [\"title\", \"sport-label\", \"color\"]))\n ]),\n _createElementVNode(\"td\", {\n class: _normalizeClass([\"sport-label\", { 'disabled-sport': !sport.is_active }])\n }, [\n _createElementVNode(\"span\", _hoisted_10, _toDisplayString(_ctx.$t('user.PROFILE.SPORT.LABEL')), 1),\n _createTextVNode(\" \" + _toDisplayString(sport.translatedLabel) + \" \", 1),\n (!sport.is_active)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_11, \" (\" + _toDisplayString(_ctx.$t('user.PROFILE.SPORT.DISABLED_BY_ADMIN')) + \") \", 1))\n : _createCommentVNode(\"\", true),\n (_unref(loading) && isSportInEdition(sport.id))\n ? (_openBlock(), _createElementBlock(\"i\", _hoisted_12))\n : _createCommentVNode(\"\", true),\n (_unref(errorMessages) && sportPayload.sport_id === sport.id)\n ? (_openBlock(), _createBlock(_component_ErrorMessage, {\n key: 2,\n message: _unref(errorMessages)\n }, null, 8, [\"message\"]))\n : _createCommentVNode(\"\", true)\n ], 2),\n _createElementVNode(\"td\", {\n class: _normalizeClass([\"text-center\", { 'disabled-sport': !sport.is_active }])\n }, [\n _createElementVNode(\"span\", _hoisted_13, _toDisplayString(_ctx.$t('workouts.WORKOUT', 0)), 1),\n _createElementVNode(\"i\", {\n class: _normalizeClass(`fa fa${\n _unref(user).sports_list.includes(sport.id) ? '-check' : ''\n }`),\n \"aria-hidden\": \"true\"\n }, null, 2)\n ], 2),\n _createElementVNode(\"td\", {\n class: _normalizeClass([\"text-center\", { 'disabled-sport': !sport.is_active }])\n }, [\n _createElementVNode(\"span\", _hoisted_14, _toDisplayString(_ctx.$t('user.PROFILE.SPORT.IS_ACTIVE')), 1),\n (isSportInEdition(sport.id) && sport.is_active)\n ? (_openBlock(), _createElementBlock(\"input\", {\n key: 0,\n type: \"checkbox\",\n checked: sport.is_active_for_user,\n onChange: updateIsActive\n }, null, 40, _hoisted_15))\n : (_openBlock(), _createElementBlock(\"i\", {\n key: 1,\n class: _normalizeClass(`fa fa${sport.is_active_for_user ? '-check' : ''}`),\n \"aria-hidden\": \"true\"\n }, null, 2))\n ], 2),\n _createElementVNode(\"td\", {\n class: _normalizeClass([\"text-center\", { 'disabled-sport': !sport.is_active }])\n }, [\n _createElementVNode(\"span\", _hoisted_16, _toDisplayString(_ctx.$t('user.PROFILE.SPORT.STOPPED_SPEED_THRESHOLD')), 1),\n (isSportInEdition(sport.id) && sport.is_active)\n ? (_openBlock(), _createElementBlock(\"input\", {\n key: 0,\n class: \"threshold-input\",\n type: \"number\",\n min: \"0\",\n step: \"0.1\",\n value: sportPayload.stopped_speed_threshold,\n onInput: updateThreshold\n }, null, 40, _hoisted_17))\n : (_openBlock(), _createElementBlock(\"span\", _hoisted_18, _toDisplayString(sport.stopped_speed_threshold), 1))\n ], 2),\n (_unref(isEdition))\n ? (_openBlock(), _createElementBlock(\"td\", _hoisted_19, [\n _createElementVNode(\"span\", _hoisted_20, _toDisplayString(_ctx.$t('user.PROFILE.SPORT.ACTION')), 1),\n (sportPayload.sport_id === 0)\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 0,\n onClick: ($event: any) => (updateSportInEdition(sport))\n }, _toDisplayString(_ctx.$t('buttons.EDIT')), 9, _hoisted_21))\n : _createCommentVNode(\"\", true),\n (isSportInEdition(sport.id))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_22, [\n _createElementVNode(\"button\", {\n disabled: _unref(loading),\n onClick: updateSport\n }, _toDisplayString(_ctx.$t('buttons.SUBMIT')), 9, _hoisted_23),\n _createElementVNode(\"button\", {\n disabled: _unref(loading),\n onClick: (e) => resetSport(e, sport.id)\n }, _toDisplayString(_ctx.$t('buttons.RESET')), 9, _hoisted_24),\n _createElementVNode(\"button\", {\n disabled: _unref(loading),\n onClick: _cache[3] || (_cache[3] = ($event: any) => (updateSportInEdition(null)))\n }, _toDisplayString(_ctx.$t('buttons.CANCEL')), 9, _hoisted_25)\n ]))\n : _createCommentVNode(\"\", true)\n ]))\n : _createCommentVNode(\"\", true)\n ]))\n }), 128))\n ])\n ]),\n (_unref(isEdition))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_26, [\n _createElementVNode(\"button\", {\n class: \"cancel\",\n onClick: _cache[4] || (_cache[4] = _withModifiers(($event: any) => (_ctx.$router.push('/profile/sports')), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('buttons.BACK')), 1)\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_27, [\n _createElementVNode(\"button\", {\n onClick: _cache[5] || (_cache[5] = ($event: any) => (_ctx.$router.push('/profile/edit/sports')))\n }, _toDisplayString(_ctx.$t('user.PROFILE.EDIT_SPORTS_PREFERENCES')), 1),\n _createElementVNode(\"button\", {\n onClick: _cache[6] || (_cache[6] = ($event: any) => (_ctx.$router.push('/')))\n }, _toDisplayString(_ctx.$t('common.HOME')), 1)\n ]))\n ]))\n : _createCommentVNode(\"\", true)\n ]))\n}\n}\n\n})","import script from \"./UserSportPreferences.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserSportPreferences.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserSportPreferences.vue?vue&type=style&index=0&id=74e52489&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-74e52489\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, unref as _unref, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, 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-96abcc38\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"timeline-workout\" }\nconst _hoisted_2 = { class: \"box\" }\nconst _hoisted_3 = { class: \"workout-user-date\" }\nconst _hoisted_4 = { class: \"workout-user\" }\nconst _hoisted_5 = [\"title\"]\nconst _hoisted_6 = { key: 0 }\nconst _hoisted_7 = {\n key: 1,\n class: \"no-map\"\n}\nconst _hoisted_8 = { class: \"img\" }\nconst _hoisted_9 = { class: \"data\" }\nconst _hoisted_10 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-clock-o\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_11 = { key: 0 }\nconst _hoisted_12 = { class: \"data\" }\nconst _hoisted_13 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-road\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_14 = {\n key: 0,\n class: \"data elevation\"\n}\nconst _hoisted_15 = [\"alt\"]\nconst _hoisted_16 = { class: \"data-values\" }\nconst _hoisted_17 = {\n key: 1,\n class: \"data altitude\"\n}\nconst _hoisted_18 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-location-arrow\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_19 = { class: \"data-values\" }\n\nimport { Locale, formatDistance } from 'date-fns'\n import { ComputedRef, computed, toRefs, withDefaults } from 'vue'\n\n import StaticMap from '@/components/Common/StaticMap.vue'\n import UserPicture from '@/components/User/UserPicture.vue'\n import { ROOT_STORE } from '@/store/constants'\n import { ISport } from '@/types/sports'\n import { IUserProfile } from '@/types/user'\n import { IWorkout } from '@/types/workouts'\n import { useStore } from '@/use/useStore'\n import { formatDate } from '@/utils/dates'\n\n interface Props {\n user: IUserProfile\n useImperialUnits: boolean\n workout?: IWorkout\n sport?: ISport\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'WorkoutCard',\n props: {\n user: null,\n useImperialUnits: { type: Boolean },\n workout: { default: () => ({} as IWorkout) },\n sport: { default: () => ({} as ISport) }\n },\n setup(__props: any) {\n\nconst props = __props as { user: IUserProfile, useImperialUnits: boolean, workout: IWorkout, sport: ISport };\n\n \n\n const store = useStore()\n\n const { user, workout, sport, useImperialUnits } = toRefs(props)\n const locale: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.LOCALE]\n )\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_link = _resolveComponent(\"router-link\")!\n const _component_SportImage = _resolveComponent(\"SportImage\")!\n const _component_Distance = _resolveComponent(\"Distance\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", _hoisted_4, [\n _createVNode(UserPicture, { user: _unref(user) }, null, 8, [\"user\"]),\n (_unref(user).username)\n ? (_openBlock(), _createBlock(_component_router_link, {\n key: 0,\n class: \"workout-user-name\",\n to: {\n name: 'User',\n params: { username: _unref(user).username },\n }\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_unref(user).username), 1)\n ]),\n _: 1\n }, 8, [\"to\"]))\n : _createCommentVNode(\"\", true)\n ]),\n (_unref(workout).id)\n ? (_openBlock(), _createBlock(_component_router_link, {\n key: 0,\n class: \"workout-title\",\n to: {\n name: 'Workout',\n params: { workoutId: _unref(workout).id },\n }\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_unref(workout).title), 1)\n ]),\n _: 1\n }, 8, [\"to\"]))\n : _createCommentVNode(\"\", true),\n (_unref(workout).workout_date && _unref(user))\n ? (_openBlock(), _createElementBlock(\"div\", {\n key: 1,\n class: \"workout-date\",\n title: \n _unref(formatDate)(_unref(workout).workout_date, _unref(user).timezone, _unref(user).date_format)\n \n }, _toDisplayString(_unref(formatDistance)(new Date(_unref(workout).workout_date), new Date(), {\n addSuffix: true,\n locale: _unref(locale),\n })), 9, _hoisted_5))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"workout-map\", { 'no-cursor': !_unref(workout) }]),\n onClick: _cache[0] || (_cache[0] = ($event: any) => (\n _unref(workout).id\n ? _ctx.$router.push({\n name: 'Workout',\n params: { workoutId: _unref(workout).id },\n })\n : null\n ))\n }, [\n (_unref(workout))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_6, [\n (_unref(workout).with_gpx)\n ? (_openBlock(), _createBlock(StaticMap, {\n key: 0,\n workout: _unref(workout)\n }, null, 8, [\"workout\"]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_7, _toDisplayString(_ctx.$t('workouts.NO_MAP')), 1))\n ]))\n : _createCommentVNode(\"\", true)\n ], 2),\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"workout-data\", { 'without-gpx': _unref(workout) && !_unref(workout).with_gpx }]),\n onClick: _cache[1] || (_cache[1] = ($event: any) => (\n _unref(workout).id\n ? _ctx.$router.push({\n name: 'Workout',\n params: { workoutId: _unref(workout).id },\n })\n : null\n ))\n }, [\n _createElementVNode(\"div\", _hoisted_8, [\n (_unref(sport).label)\n ? (_openBlock(), _createBlock(_component_SportImage, {\n key: 0,\n \"sport-label\": _unref(sport).label,\n color: _unref(sport).color\n }, null, 8, [\"sport-label\", \"color\"]))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"div\", _hoisted_9, [\n _hoisted_10,\n (_unref(workout))\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_11, _toDisplayString(_unref(workout).moving), 1))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"div\", _hoisted_12, [\n _hoisted_13,\n (_unref(workout).id)\n ? (_openBlock(), _createBlock(_component_Distance, {\n key: 0,\n distance: _unref(workout).distance,\n digits: 3,\n unitFrom: \"km\",\n useImperialUnits: _unref(useImperialUnits)\n }, null, 8, [\"distance\", \"useImperialUnits\"]))\n : _createCommentVNode(\"\", true)\n ]),\n (_unref(workout) && _unref(workout).with_gpx)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_14, [\n _createElementVNode(\"img\", {\n class: \"mountains\",\n src: \"/img/workouts/mountains.svg\",\n alt: _ctx.$t('workouts.ELEVATION')\n }, null, 8, _hoisted_15),\n _createElementVNode(\"div\", _hoisted_16, [\n (_unref(workout).id)\n ? (_openBlock(), _createBlock(_component_Distance, {\n key: 0,\n distance: _unref(workout).min_alt,\n unitFrom: \"m\",\n displayUnit: false,\n useImperialUnits: _unref(useImperialUnits)\n }, null, 8, [\"distance\", \"useImperialUnits\"]))\n : _createCommentVNode(\"\", true),\n _createTextVNode(\"/ \"),\n (_unref(workout).id)\n ? (_openBlock(), _createBlock(_component_Distance, {\n key: 1,\n distance: _unref(workout).max_alt,\n unitFrom: \"m\",\n useImperialUnits: _unref(useImperialUnits)\n }, null, 8, [\"distance\", \"useImperialUnits\"]))\n : _createCommentVNode(\"\", true)\n ])\n ]))\n : _createCommentVNode(\"\", true),\n (_unref(workout) && _unref(workout).with_gpx)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_17, [\n _hoisted_18,\n _createElementVNode(\"div\", _hoisted_19, [\n _createTextVNode(\" +\"),\n (_unref(workout).id)\n ? (_openBlock(), _createBlock(_component_Distance, {\n key: 0,\n distance: _unref(workout).ascent,\n unitFrom: \"m\",\n displayUnit: false,\n useImperialUnits: _unref(useImperialUnits)\n }, null, 8, [\"distance\", \"useImperialUnits\"]))\n : _createCommentVNode(\"\", true),\n _createTextVNode(\"/- \"),\n (_unref(workout).id)\n ? (_openBlock(), _createBlock(_component_Distance, {\n key: 1,\n distance: _unref(workout).descent,\n unitFrom: \"m\",\n useImperialUnits: _unref(useImperialUnits)\n }, null, 8, [\"distance\", \"useImperialUnits\"]))\n : _createCommentVNode(\"\", true)\n ])\n ]))\n : _createCommentVNode(\"\", true)\n ], 2)\n ])\n ]))\n}\n}\n\n})","import script from \"./WorkoutCard.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./WorkoutCard.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./WorkoutCard.vue?vue&type=style&index=0&id=96abcc38&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-96abcc38\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, unref as _unref, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-35567bf2\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"timeline\" }\nconst _hoisted_2 = { class: \"section-title\" }\nconst _hoisted_3 = { key: 0 }\nconst _hoisted_4 = { key: 1 }\nconst _hoisted_5 = {\n key: 1,\n class: \"more-workouts\"\n}\n\nimport { ComputedRef, computed, ref, onBeforeMount, toRefs } from 'vue'\n\n import WorkoutCard from '@/components/Workout/WorkoutCard.vue'\n import NoWorkouts from '@/components/Workouts/NoWorkouts.vue'\n import { WORKOUTS_STORE } from '@/store/constants'\n import { ISport } from '@/types/sports'\n import { IUserProfile } from '@/types/user'\n import { IWorkout } from '@/types/workouts'\n import { useStore } from '@/use/useStore'\n import { defaultOrder } from '@/utils/workouts'\n\n interface Props {\n sports: ISport[]\n user: IUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'Timeline',\n props: {\n sports: null,\n user: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n sports: ISport[]\n user: IUserProfile\n };\n\n \n\n const store = useStore()\n\n const { sports, user } = toRefs(props)\n const page = ref(1)\n const per_page = 5\n const initWorkoutsCount =\n props.user.nb_workouts >= per_page ? per_page : props.user.nb_workouts\n onBeforeMount(() => loadWorkouts())\n const workouts: ComputedRef = computed(\n () => store.getters[WORKOUTS_STORE.GETTERS.TIMELINE_WORKOUTS]\n )\n const moreWorkoutsExist: ComputedRef = computed(() =>\n workouts.value.length > 0\n ? workouts.value[workouts.value.length - 1].previous_workout !== null\n : false\n )\n\n function loadWorkouts() {\n store.dispatch(WORKOUTS_STORE.ACTIONS.GET_TIMELINE_WORKOUTS, {\n page: page.value,\n per_page,\n ...defaultOrder,\n })\n }\n function loadMoreWorkouts() {\n page.value += 1\n store.dispatch(WORKOUTS_STORE.ACTIONS.GET_MORE_TIMELINE_WORKOUTS, {\n page: page.value,\n per_page,\n ...defaultOrder,\n })\n }\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, _toDisplayString(_ctx.$t('workouts.LATEST_WORKOUTS')), 1),\n (_unref(user).nb_workouts > 0 && _unref(workouts).length === 0)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList([...Array(_unref(initWorkoutsCount)).keys()], (index) => {\n return (_openBlock(), _createBlock(WorkoutCard, {\n user: _unref(user),\n useImperialUnits: _unref(user).imperial_units,\n key: index\n }, null, 8, [\"user\", \"useImperialUnits\"]))\n }), 128))\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_4, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(workouts), (workout) => {\n return (_openBlock(), _createBlock(WorkoutCard, {\n workout: workout,\n sport: \n _unref(workouts).length > 0\n ? _unref(sports).filter((s) => s.id === workout.sport_id)[0]\n : null\n ,\n user: _unref(user),\n useImperialUnits: _unref(user).imperial_units,\n key: workout.id\n }, null, 8, [\"workout\", \"sport\", \"user\", \"useImperialUnits\"]))\n }), 128)),\n (_unref(workouts).length === 0)\n ? (_openBlock(), _createBlock(NoWorkouts, { key: 0 }))\n : _createCommentVNode(\"\", true),\n (_unref(moreWorkoutsExist))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_5, [\n _createElementVNode(\"button\", { onClick: loadMoreWorkouts }, _toDisplayString(_ctx.$t('workouts.LOAD_MORE_WORKOUT')), 1)\n ]))\n : _createCommentVNode(\"\", true)\n ]))\n ]))\n}\n}\n\n})","import script from \"./Timeline.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Timeline.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./Timeline.vue?vue&type=style&index=0&id=35567bf2&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-35567bf2\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, resolveComponent as _resolveComponent, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode } from \"vue\"\n\nconst _hoisted_1 = [\"title\"]\n\nimport { toRefs } from 'vue'\n\n import { IWorkout } from '@/types/workouts'\n interface Props {\n displayHARecord: boolean\n workout: IWorkout\n sportLabel: string\n sportColor: string | null\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'CalendarWorkout',\n props: {\n displayHARecord: { type: Boolean },\n workout: null,\n sportLabel: null,\n sportColor: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n displayHARecord: boolean\n workout: IWorkout\n sportLabel: string\n sportColor: string | null\n };\n\n \n\n const { displayHARecord, workout, sportLabel, sportColor } = toRefs(props)\n\nreturn (_ctx: any,_cache: any) => {\n const _component_SportImage = _resolveComponent(\"SportImage\")!\n\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"calendar-workout\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (\n _ctx.$router.push({ name: 'Workout', params: { workoutId: _unref(workout).id } })\n ))\n }, [\n _createVNode(_component_SportImage, {\n \"sport-label\": _unref(sportLabel),\n title: _unref(workout).title,\n color: _unref(sportColor)\n }, null, 8, [\"sport-label\", \"title\", \"color\"]),\n _createElementVNode(\"sup\", null, [\n (_unref(workout).records.length > 0)\n ? (_openBlock(), _createElementBlock(\"i\", {\n key: 0,\n class: \"fa fa-trophy custom-fa-small\",\n \"aria-hidden\": \"true\",\n title: \n _unref(workout).records\n .filter((record) =>\n _unref(displayHARecord) ? true : record.record_type !== 'HA'\n )\n .map((record) => ` ${_ctx.$t(`workouts.RECORD_${record.record_type}`)}`)\n \n }, null, 8, _hoisted_1))\n : _createCommentVNode(\"\", true)\n ])\n ]))\n}\n}\n\n})","import script from \"./CalendarWorkout.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./CalendarWorkout.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./CalendarWorkout.vue?vue&type=style&index=0&id=331e1c8b&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createElementVNode as _createElementVNode } from \"vue\"\n\nconst _hoisted_1 = { class: \"donut-chart\" }\nconst _hoisted_2 = {\n height: \"34\",\n width: \"34\",\n viewBox: \"0 0 34 34\"\n}\nconst _hoisted_3 = [\"stroke\", \"stroke-dashoffset\", \"transform\"]\n\nimport { toRefs } from 'vue'\n\n interface Props {\n colors: Record\n datasets: Record>\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'DonutChart',\n props: {\n colors: null,\n datasets: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n colors: Record\n datasets: Record>\n };\n\n \n\n const { colors, datasets } = toRefs(props)\n let angleOffset = -90\n const cx = 16\n const cy = 16\n const radius = 14\n const circumference = 2 * Math.PI * radius\n\n function calculateStrokeDashOffset(\n percentage: number,\n circumference: number\n ): number {\n return circumference - percentage * circumference\n }\n function returnCircleTransformValue(\n index: number,\n percentage: number\n ): string {\n const rotation = `rotate(${angleOffset}, ${cx}, ${cy})`\n angleOffset = percentage * 360 + angleOffset\n return rotation\n }\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_openBlock(), _createElementBlock(\"svg\", _hoisted_2, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(Object.entries(_unref(datasets)), (data, index) => {\n return (_openBlock(), _createElementBlock(\"g\", { key: index }, [\n _createElementVNode(\"circle\", {\n cx: cx,\n cy: cy,\n r: radius,\n fill: \"transparent\",\n stroke: _unref(colors)[+data[0]],\n \"stroke-dashoffset\": \n calculateStrokeDashOffset(data[1].percentage, circumference)\n ,\n \"stroke-dasharray\": circumference,\n \"stroke-width\": \"3\",\n \"stroke-opacity\": \"0.8\",\n transform: returnCircleTransformValue(index, data[1].percentage)\n }, null, 8, _hoisted_3)\n ]))\n }), 128))\n ]))\n ]))\n}\n}\n\n})","import script from \"./DonutChart.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./DonutChart.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, createVNode as _createVNode, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createBlock as _createBlock, resolveDirective as _resolveDirective, withDirectives as _withDirectives, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-52d4310a\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"calendar-workouts-chart\" }\nconst _hoisted_2 = { class: \"workouts-count\" }\nconst _hoisted_3 = {\n key: 0,\n class: \"workouts-pane\"\n}\nconst _hoisted_4 = { class: \"more-workouts\" }\n\nimport { ref, toRefs } from 'vue'\n\n import CalendarWorkout from '@/components/Dashboard/UserCalendar/CalendarWorkout.vue'\n import DonutChart from '@/components/Dashboard/UserCalendar/DonutChart.vue'\n import { ISport } from '@/types/sports'\n import { IWorkout } from '@/types/workouts'\n import { getSportColor, getSportLabel } from '@/utils/sports'\n\n interface Props {\n colors: Record\n datasets: Record>\n sports: ISport[]\n workouts: IWorkout[]\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'CalendarWorkoutsChart',\n props: {\n colors: null,\n datasets: null,\n sports: null,\n workouts: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n colors: Record\n datasets: Record>\n sports: ISport[]\n workouts: IWorkout[]\n };\n\n \n\n const { colors, datasets, sports, workouts } = toRefs(props)\n const isHidden = ref(true)\n\n function togglePane(event: Event & { target: HTMLElement }) {\n event.stopPropagation()\n isHidden.value = !isHidden.value\n }\n\nreturn (_ctx: any,_cache: any) => {\n const _directive_click_outside = _resolveDirective(\"click-outside\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", {\n class: \"workouts-chart\",\n onClick: togglePane\n }, [\n _createElementVNode(\"div\", _hoisted_2, _toDisplayString(_unref(workouts).length), 1),\n _createVNode(DonutChart, {\n datasets: _unref(datasets),\n colors: _unref(colors)\n }, null, 8, [\"datasets\", \"colors\"])\n ]),\n (!isHidden.value)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n _withDirectives((_openBlock(), _createElementBlock(\"div\", _hoisted_4, [\n _createElementVNode(\"i\", {\n class: \"fa fa-times calendar-more\",\n \"aria-hidden\": \"true\",\n onClick: togglePane\n }),\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(workouts), (workout, index) => {\n return (_openBlock(), _createBlock(CalendarWorkout, {\n key: index,\n workout: workout,\n sportLabel: _unref(getSportLabel)(workout, _unref(sports)),\n sportColor: _unref(getSportColor)(workout, _unref(sports))\n }, null, 8, [\"workout\", \"sportLabel\", \"sportColor\"]))\n }), 128))\n ])), [\n [_directive_click_outside, togglePane]\n ])\n ]))\n : _createCommentVNode(\"\", true)\n ]))\n}\n}\n\n})","import script from \"./CalendarWorkoutsChart.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./CalendarWorkoutsChart.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./CalendarWorkoutsChart.vue?vue&type=style&index=0&id=52d4310a&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-52d4310a\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createVNode as _createVNode, createElementVNode as _createElementVNode } from \"vue\"\n\nconst _hoisted_1 = { class: \"calendar-workouts\" }\nconst _hoisted_2 = { class: \"desktop-display\" }\nconst _hoisted_3 = {\n key: 0,\n class: \"workouts-display\"\n}\nconst _hoisted_4 = {\n key: 1,\n class: \"donut-display\"\n}\nconst _hoisted_5 = { class: \"mobile-display\" }\nconst _hoisted_6 = {\n key: 0,\n class: \"donut-display\"\n}\n\nimport { computed, toRefs } from 'vue'\n\n import CalendarWorkout from '@/components/Dashboard/UserCalendar/CalendarWorkout.vue'\n import CalendarWorkoutsChart from '@/components/Dashboard/UserCalendar/CalendarWorkoutsChart.vue'\n import { ISport } from '@/types/sports'\n import { IWorkout } from '@/types/workouts'\n import { getSportColor, getSportLabel, sportIdColors } from '@/utils/sports'\n import { getDonutDatasets } from '@/utils/workouts'\n\n interface Props {\n displayHARecord: boolean\n workouts: IWorkout[]\n sports: ISport[]\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'CalendarWorkouts',\n props: {\n displayHARecord: { type: Boolean },\n workouts: null,\n sports: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n displayHARecord: boolean\n workouts: IWorkout[]\n sports: ISport[]\n };\n\n \n\n const { displayHARecord, workouts, sports } = toRefs(props)\n const chartDatasets = computed(() => getDonutDatasets(props.workouts))\n const colors = computed(() => sportIdColors(props.sports))\n const displayedWorkoutCount = 6\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n (_unref(workouts).length <= displayedWorkoutCount)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(workouts).slice(0, displayedWorkoutCount), (workout, index) => {\n return (_openBlock(), _createBlock(CalendarWorkout, {\n key: index,\n displayHARecord: _unref(displayHARecord),\n workout: workout,\n sportLabel: _unref(getSportLabel)(workout, _unref(sports)),\n sportColor: _unref(getSportColor)(workout, _unref(sports))\n }, null, 8, [\"displayHARecord\", \"workout\", \"sportLabel\", \"sportColor\"]))\n }), 128))\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_4, [\n _createVNode(CalendarWorkoutsChart, {\n workouts: _unref(workouts),\n sports: _unref(sports),\n datasets: _unref(chartDatasets),\n colors: _unref(colors)\n }, null, 8, [\"workouts\", \"sports\", \"datasets\", \"colors\"])\n ]))\n ]),\n _createElementVNode(\"div\", _hoisted_5, [\n (_unref(workouts).length > 0)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_6, [\n _createVNode(CalendarWorkoutsChart, {\n workouts: _unref(workouts),\n sports: _unref(sports),\n datasets: _unref(chartDatasets),\n colors: _unref(colors)\n }, null, 8, [\"workouts\", \"sports\", \"datasets\", \"colors\"])\n ]))\n : _createCommentVNode(\"\", true)\n ])\n ]))\n}\n}\n\n})","import script from \"./CalendarWorkouts.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./CalendarWorkouts.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./CalendarWorkouts.vue?vue&type=style&index=0&id=5aab7455&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, unref as _unref, createVNode as _createVNode, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, normalizeClass as _normalizeClass } from \"vue\"\n\nconst _hoisted_1 = { class: \"calendar-cells\" }\nconst _hoisted_2 = { class: \"calendar-cell-day\" }\n\nimport { addDays, format, isSameDay, isSameMonth, isToday } from 'date-fns'\n import { Ref, ref, toRefs, watch, onMounted } from 'vue'\n\n import CalendarWorkouts from '@/components/Dashboard/UserCalendar/CalendarWorkouts.vue'\n import { ISport } from '@/types/sports'\n import { IWorkout } from '@/types/workouts'\n import { getDateWithTZ } from '@/utils/dates'\n\n interface Props {\n currentDay: Date\n displayHARecord: boolean\n endDate: Date\n sports: ISport[]\n startDate: Date\n timezone: string\n weekStartingMonday: boolean\n workouts: IWorkout[]\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'CalendarCells',\n props: {\n currentDay: null,\n displayHARecord: { type: Boolean },\n endDate: null,\n sports: null,\n startDate: null,\n timezone: null,\n weekStartingMonday: { type: Boolean },\n workouts: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n currentDay: Date\n displayHARecord: boolean\n endDate: Date\n sports: ISport[]\n startDate: Date\n timezone: string\n weekStartingMonday: boolean\n workouts: IWorkout[]\n };\n\n \n\n const {\n currentDay,\n displayHARecord,\n endDate,\n sports,\n startDate,\n timezone,\n weekStartingMonday,\n workouts,\n } = toRefs(props)\n const rows: Ref = ref([])\n\n onMounted(() => getDays())\n\n function getDays() {\n rows.value = []\n let day = startDate.value\n while (day <= endDate.value) {\n const days: Date[] = []\n for (let i = 0; i < 7; i++) {\n days.push(day)\n day = addDays(day, 1)\n }\n rows.value.push(days)\n }\n }\n function isWeekEnd(day: number): boolean {\n return weekStartingMonday.value\n ? [5, 6].includes(day)\n : [0, 6].includes(day)\n }\n function filterWorkouts(day: Date, workouts: IWorkout[]) {\n if (workouts) {\n return workouts\n .filter((workout) =>\n isSameDay(getDateWithTZ(workout.workout_date, timezone.value), day)\n )\n .reverse()\n }\n return []\n }\n\n watch(\n () => props.currentDay,\n () => getDays()\n )\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(rows.value, (row, index) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"calendar-row\",\n key: index\n }, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(row, (day, i) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: _normalizeClass([\"calendar-cell\", {\n 'disabled-cell': !_unref(isSameMonth)(day, _unref(currentDay)),\n 'week-end': isWeekEnd(i),\n today: _unref(isToday)(day),\n }]),\n key: i\n }, [\n _createVNode(CalendarWorkouts, {\n workouts: filterWorkouts(day, _unref(workouts)),\n sports: _unref(sports),\n displayHARecord: _unref(displayHARecord)\n }, null, 8, [\"workouts\", \"sports\", \"displayHARecord\"]),\n _createElementVNode(\"div\", _hoisted_2, _toDisplayString(_unref(format)(day, 'd')), 1)\n ], 2))\n }), 128))\n ]))\n }), 128))\n ]))\n}\n}\n\n})","import script from \"./CalendarCells.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./CalendarCells.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./CalendarCells.vue?vue&type=style&index=0&id=34b99f0e&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, unref as _unref, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode } from \"vue\"\n\nconst _hoisted_1 = { class: \"calendar-days\" }\n\nimport { Locale, format, addDays } from 'date-fns'\n\n interface Props {\n startDate: Date\n localeOptions: Locale\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'CalendarDays',\n props: {\n startDate: null,\n localeOptions: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n startDate: Date\n localeOptions: Locale\n };\n\n \n\n const days = []\n for (let i = 0; i < 7; i++) {\n days.push(addDays(props.startDate, i))\n }\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_openBlock(), _createElementBlock(_Fragment, null, _renderList(days, (day, index) => {\n return _createElementVNode(\"div\", {\n class: \"calendar-day\",\n key: index\n }, _toDisplayString(_unref(format)(day, 'EEE', { locale: __props.localeOptions })), 1)\n }), 64))\n ]))\n}\n}\n\n})","import script from \"./CalendarDays.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./CalendarDays.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./CalendarDays.vue?vue&type=style&index=0&id=4f3dc99e&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, unref as _unref, toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"calendar-header\" }\nconst _hoisted_2 = /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-chevron-left\",\n \"aria-hidden\": \"true\"\n}, null, -1)\nconst _hoisted_3 = [\n _hoisted_2\n]\nconst _hoisted_4 = { class: \"calendar-month\" }\nconst _hoisted_5 = /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-chevron-right\",\n \"aria-hidden\": \"true\"\n}, null, -1)\nconst _hoisted_6 = [\n _hoisted_5\n]\n\nimport { Locale, format } from 'date-fns'\n import { toRefs } from 'vue'\n\n interface Props {\n day: Date\n localeOptions: Locale\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'CalendarHeader',\n props: {\n day: null,\n localeOptions: null\n },\n emits: ['displayNextMonth', 'displayPreviousMonth'],\n setup(__props: any, { emit }) {\n\nconst props = __props as {\n day: Date\n localeOptions: Locale\n };\n\n \n\n \n\n const { day, localeOptions } = toRefs(props)\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", {\n class: \"calendar-arrow calendar-arrow-left\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (emit('displayPreviousMonth')))\n }, _hoisted_3),\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"span\", null, _toDisplayString(_unref(format)(_unref(day), 'MMM yyyy', { locale: _unref(localeOptions) })), 1)\n ]),\n _createElementVNode(\"div\", {\n class: \"calendar-arrow calendar-arrow-right\",\n onClick: _cache[1] || (_cache[1] = ($event: any) => (emit('displayNextMonth')))\n }, _hoisted_6)\n ]))\n}\n}\n\n})","import script from \"./CalendarHeader.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./CalendarHeader.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./CalendarHeader.vue?vue&type=style&index=0&id=79a65a70&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createVNode as _createVNode, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { id: \"user-calendar\" }\nconst _hoisted_2 = { class: \"calendar-card box\" }\n\nimport { Locale, addMonths, format, subMonths } from 'date-fns'\n import { ComputedRef, computed, ref, toRefs, onBeforeMount } from 'vue'\n\n import CalendarCells from '@/components/Dashboard/UserCalendar/CalendarCells.vue'\n import CalendarDays from '@/components/Dashboard/UserCalendar/CalendarDays.vue'\n import CalendarHeader from '@/components/Dashboard/UserCalendar/CalendarHeader.vue'\n import { ROOT_STORE, WORKOUTS_STORE } from '@/store/constants'\n import { ISport } from '@/types/sports'\n import { IAuthUserProfile } from '@/types/user'\n import { IWorkout, TWorkoutsPayload } from '@/types/workouts'\n import { useStore } from '@/use/useStore'\n import { getCalendarStartAndEnd } from '@/utils/dates'\n import { defaultOrder } from '@/utils/workouts'\n\n interface Props {\n sports: ISport[]\n user: IAuthUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'index',\n props: {\n sports: null,\n user: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n sports: ISport[]\n user: IAuthUserProfile\n };\n\n \n\n const store = useStore()\n\n const { sports, user } = toRefs(props)\n const dateFormat = 'yyyy-MM-dd'\n const day = ref(new Date())\n const calendarDates = ref(getCalendarStartAndEnd(day.value, props.user.weekm))\n const calendarWorkouts: ComputedRef = computed(\n () => store.getters[WORKOUTS_STORE.GETTERS.CALENDAR_WORKOUTS]\n )\n const localeOptions: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.LOCALE]\n )\n\n onBeforeMount(() => getCalendarWorkouts())\n\n function getCalendarWorkouts() {\n calendarDates.value = getCalendarStartAndEnd(day.value, props.user.weekm)\n const apiParams: TWorkoutsPayload = {\n from: format(calendarDates.value.start, dateFormat),\n to: format(calendarDates.value.end, dateFormat),\n page: 1,\n per_page: 100,\n ...defaultOrder,\n }\n store.dispatch(WORKOUTS_STORE.ACTIONS.GET_CALENDAR_WORKOUTS, apiParams)\n }\n function displayNextMonth() {\n day.value = addMonths(day.value, 1)\n getCalendarWorkouts()\n }\n function displayPreviousMonth() {\n day.value = subMonths(day.value, 1)\n getCalendarWorkouts()\n }\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createVNode(CalendarHeader, {\n day: day.value,\n \"locale-options\": _unref(localeOptions),\n onDisplayNextMonth: displayNextMonth,\n onDisplayPreviousMonth: displayPreviousMonth\n }, null, 8, [\"day\", \"locale-options\"]),\n _createVNode(CalendarDays, {\n \"start-date\": calendarDates.value.start,\n \"locale-options\": _unref(localeOptions)\n }, null, 8, [\"start-date\", \"locale-options\"]),\n _createVNode(CalendarCells, {\n currentDay: day.value,\n displayHARecord: _unref(user).display_ascent,\n \"end-date\": calendarDates.value.end,\n sports: _unref(sports),\n \"start-date\": calendarDates.value.start,\n timezone: _unref(user).timezone,\n workouts: _unref(calendarWorkouts),\n weekStartingMonday: _unref(user).weekm\n }, null, 8, [\"currentDay\", \"displayHARecord\", \"end-date\", \"sports\", \"start-date\", \"timezone\", \"workouts\", \"weekStartingMonday\"])\n ])\n ]))\n}\n}\n\n})","import script from \"./index.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./index.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./index.vue?vue&type=style&index=0&id=3e7444d9&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, unref as _unref, createVNode as _createVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-1bcddc12\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"user-month-stats\" }\n\nimport { endOfMonth, startOfMonth } from 'date-fns'\n import { toRefs } from 'vue'\n\n import StatChart from '@/components/Common/StatsChart/index.vue'\n import { ISport } from '@/types/sports'\n import { IUserProfile } from '@/types/user'\n\n interface Props {\n sports: ISport[]\n user: IUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'UserMonthStats',\n props: {\n sports: null,\n user: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n sports: ISport[]\n user: IUserProfile\n };\n\n \n\n const { sports, user } = toRefs(props)\n const date = new Date()\n const chartParams = {\n duration: 'week',\n start: startOfMonth(date),\n end: endOfMonth(date),\n }\n const selectedSportIds = props.sports.map((sport) => sport.id)\n\nreturn (_ctx: any,_cache: any) => {\n const _component_Card = _resolveComponent(\"Card\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_Card, null, {\n title: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('dashboard.THIS_MONTH')), 1)\n ]),\n content: _withCtx(() => [\n _createVNode(StatChart, {\n sports: _unref(sports),\n user: _unref(user),\n \"chart-params\": chartParams,\n \"displayed-sport-ids\": _unref(selectedSportIds),\n \"hide-chart-if-no-data\": true\n }, null, 8, [\"sports\", \"user\", \"displayed-sport-ids\"])\n ]),\n _: 1\n })\n ]))\n}\n}\n\n})","import script from \"./UserMonthStats.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserMonthStats.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserMonthStats.vue?vue&type=style&index=0&id=1bcddc12&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-1bcddc12\"]])\n\nexport default __exports__","import createI18n from '@/i18n'\nimport { ITranslatedSport } from '@/types/sports'\nimport { TUnit } from '@/types/units'\nimport { ICardRecord, IRecord, IRecordsBySports } from '@/types/workouts'\nimport { formatDate, getDateFormat } from '@/utils/dates'\nimport { convertDistance, units } from '@/utils/units'\n\nconst { locale } = createI18n.global\n\nexport const formatRecord = (\n record: IRecord,\n tz: string,\n useImperialUnits: boolean,\n date_format: string\n): Record => {\n const distanceUnitFrom: TUnit = 'km'\n const distanceUnitTo: TUnit = useImperialUnits\n ? units[distanceUnitFrom].defaultTarget\n : distanceUnitFrom\n const ascentUnitFrom: TUnit = 'm'\n const ascentUnitTo: TUnit = useImperialUnits\n ? units[ascentUnitFrom].defaultTarget\n : ascentUnitFrom\n let value\n switch (record.record_type) {\n case 'AS':\n case 'MS':\n value = `${convertDistance(\n +record.value,\n distanceUnitFrom,\n distanceUnitTo,\n 2\n )} ${distanceUnitTo}/h`\n break\n case 'FD':\n value = `${convertDistance(\n +record.value,\n distanceUnitFrom,\n distanceUnitTo,\n 3\n )} ${distanceUnitTo}`\n break\n case 'HA':\n value = `${convertDistance(\n +record.value,\n ascentUnitFrom,\n ascentUnitTo,\n 2\n )} ${ascentUnitTo}`\n break\n case 'LD':\n value = record.value\n break\n default:\n throw new Error(\n `Invalid record type, expected: \"AS\", \"FD\", \"HA\", \"LD\", \"MD\", got: \"${record.record_type}\"`\n )\n }\n return {\n workout_date: formatDate(record.workout_date, tz, date_format, false),\n workout_id: record.workout_id,\n id: record.id,\n record_type: record.record_type,\n value: value,\n }\n}\n\nexport const sortRecords = (a: ICardRecord, b: ICardRecord): number => {\n const recordALabel = a.label.toLowerCase()\n const recordBLabel = b.label.toLowerCase()\n return recordALabel > recordBLabel ? 1 : recordALabel < recordBLabel ? -1 : 0\n}\n\nexport const getRecordsBySports = (\n records: IRecord[],\n translatedSports: ITranslatedSport[],\n tz: string,\n useImperialUnits: boolean,\n display_ascent: boolean,\n date_format: string\n): IRecordsBySports => {\n date_format = getDateFormat(date_format, locale.value)\n return records\n .filter((r) => (display_ascent ? true : r.record_type !== 'HA'))\n .reduce((sportList: IRecordsBySports, record) => {\n const sport = translatedSports.find((s) => s.id === record.sport_id)\n if (sport && sport.label) {\n if (sportList[sport.translatedLabel] === void 0) {\n sportList[sport.translatedLabel] = {\n label: sport.label,\n color: sport.color,\n records: [],\n }\n }\n sportList[sport.translatedLabel].records.push(\n formatRecord(record, tz, useImperialUnits, date_format)\n )\n }\n return sportList\n }, {})\n}\n","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, resolveComponent as _resolveComponent, createVNode as _createVNode, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createElementVNode as _createElementVNode, withCtx as _withCtx, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-8d17c606\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"records-card\" }\nconst _hoisted_2 = { class: \"record-type\" }\nconst _hoisted_3 = { class: \"record-value\" }\nconst _hoisted_4 = { class: \"record-date\" }\n\nimport { toRefs } from 'vue'\n import { useI18n } from 'vue-i18n'\n\n import { ICardRecord, IRecord, IRecordsBySports } from '@/types/workouts'\n import { sortRecords } from '@/utils/records'\n\n interface Props {\n records: IRecordsBySports\n sportTranslatedLabel: string\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'RecordsCard',\n props: {\n records: null,\n sportTranslatedLabel: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n records: IRecordsBySports\n sportTranslatedLabel: string\n };\n\n \n\n const { records, sportTranslatedLabel } = toRefs(props)\n\n const { t } = useI18n()\n\n function getTranslatedRecords(records: IRecord[]): ICardRecord[] {\n const translatedRecords: ICardRecord[] = []\n records.map((record) => {\n translatedRecords.push({\n ...record,\n label: t(`workouts.RECORD_${record.record_type}`),\n })\n })\n return translatedRecords.sort(sortRecords)\n }\n\nreturn (_ctx: any,_cache: any) => {\n const _component_SportImage = _resolveComponent(\"SportImage\")!\n const _component_router_link = _resolveComponent(\"router-link\")!\n const _component_Card = _resolveComponent(\"Card\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_Card, null, {\n title: _withCtx(() => [\n _createVNode(_component_SportImage, {\n \"sport-label\": _unref(records).label,\n color: _unref(records).color\n }, null, 8, [\"sport-label\", \"color\"]),\n _createTextVNode(\" \" + _toDisplayString(_unref(sportTranslatedLabel)), 1)\n ]),\n content: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(getTranslatedRecords(_unref(records).records), (record) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"record\",\n key: record.id\n }, [\n _createElementVNode(\"span\", _hoisted_2, _toDisplayString(record.label), 1),\n _createElementVNode(\"span\", _hoisted_3, _toDisplayString(record.value), 1),\n _createElementVNode(\"span\", _hoisted_4, [\n _createVNode(_component_router_link, {\n to: {\n name: 'Workout',\n params: { workoutId: record.workout_id },\n }\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(record.workout_date), 1)\n ]),\n _: 2\n }, 1032, [\"to\"])\n ])\n ]))\n }), 128))\n ]),\n _: 1\n })\n ]))\n}\n}\n\n})","import script from \"./RecordsCard.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./RecordsCard.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./RecordsCard.vue?vue&type=style&index=0&id=8d17c606&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-8d17c606\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, unref as _unref, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, renderList as _renderList, Fragment as _Fragment, createBlock as _createBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-f0c85cb8\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"user-records-section\" }\nconst _hoisted_2 = { class: \"section-title\" }\nconst _hoisted_3 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-trophy custom-fa-small\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_4 = { class: \"user-records\" }\nconst _hoisted_5 = {\n key: 0,\n class: \"no-records\"\n}\n\nimport { computed } from 'vue'\n import { useI18n } from 'vue-i18n'\n\n import RecordsCard from '@/components/Dashboard/UserRecords/RecordsCard.vue'\n import { ISport } from '@/types/sports'\n import { IAuthUserProfile } from '@/types/user'\n import { getRecordsBySports } from '@/utils/records'\n import { translateSports } from '@/utils/sports'\n\n interface Props {\n sports: ISport[]\n user: IAuthUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'index',\n props: {\n sports: null,\n user: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n sports: ISport[]\n user: IAuthUserProfile\n };\n\n \n\n const { t } = useI18n()\n\n const recordsBySport = computed(() =>\n getRecordsBySports(\n props.user.records,\n translateSports(props.sports, t),\n props.user.timezone,\n props.user.imperial_units,\n props.user.display_ascent,\n props.user.date_format\n )\n )\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _hoisted_3,\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('workouts.RECORD', 2)), 1)\n ]),\n _createElementVNode(\"div\", _hoisted_4, [\n (Object.keys(_unref(recordsBySport)).length === 0)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_5, _toDisplayString(_ctx.$t('workouts.NO_RECORDS')), 1))\n : _createCommentVNode(\"\", true),\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(Object.keys(_unref(recordsBySport)).sort(), (sportTranslatedLabel) => {\n return (_openBlock(), _createBlock(RecordsCard, {\n sportTranslatedLabel: sportTranslatedLabel,\n records: _unref(recordsBySport)[sportTranslatedLabel],\n key: sportTranslatedLabel,\n useImperialUnits: __props.user.imperial_units\n }, null, 8, [\"sportTranslatedLabel\", \"records\", \"useImperialUnits\"]))\n }), 128))\n ])\n ]))\n}\n}\n\n})","import script from \"./index.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./index.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./index.vue?vue&type=style&index=0&id=f0c85cb8&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-f0c85cb8\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createVNode as _createVNode, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { id: \"user-stats\" }\n\nimport { ComputedRef, computed, toRefs } from 'vue'\n import { useI18n } from 'vue-i18n'\n\n import StatCard from '@/components/Common/StatCard.vue'\n import { TUnit } from '@/types/units'\n import { IAuthUserProfile } from '@/types/user'\n import { convertDistance, units } from '@/utils/units'\n interface Props {\n user: IAuthUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'index',\n props: {\n user: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n user: IAuthUserProfile\n };\n\n \n\n const { t } = useI18n()\n\n const { user } = toRefs(props)\n const userTotalDuration: ComputedRef = computed(\n () => props.user.total_duration\n )\n const totalDuration = computed(() => get_duration(userTotalDuration))\n const distanceUnitFrom: TUnit = 'km'\n const distanceUnitTo: TUnit = user.value.imperial_units\n ? units[distanceUnitFrom].defaultTarget\n : distanceUnitFrom\n const totalDistance: ComputedRef = computed(() =>\n user.value.imperial_units\n ? convertDistance(user.value.total_distance, distanceUnitFrom, distanceUnitTo, 2)\n : parseFloat(user.value.total_distance.toFixed(2)))\n const ascentUnitFrom: TUnit = 'm'\n const ascentUnitTo: TUnit = user.value.imperial_units\n ? units[ascentUnitFrom].defaultTarget\n : ascentUnitFrom\n const totalAscent: ComputedRef = computed(() =>\n user.value.imperial_units\n ? convertDistance(user.value.total_ascent, ascentUnitFrom, ascentUnitTo, 2)\n : parseFloat(user.value.total_ascent.toFixed(2)))\n\n\n function get_duration(total_duration: ComputedRef) {\n const duration = total_duration.value.match(/day/g)\n ? total_duration.value.split(', ')[1]\n : total_duration.value\n return {\n days: total_duration.value.match(/day/g)\n ? `${total_duration.value.split(' ')[0]} ${\n total_duration.value.match(/days/g)\n ? t('common.DAY', 2)\n : t('common.DAY', 1)\n }`\n : `0 ${t('common.DAY', 2)},`,\n duration: `${duration.split(':')[0]}h ${duration.split(':')[1]}min`,\n }\n }\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(StatCard, {\n icon: \"calendar\",\n value: _unref(user).nb_workouts,\n text: _ctx.$t('workouts.WORKOUT', _unref(user).nb_workouts)\n }, null, 8, [\"value\", \"text\"]),\n _createVNode(StatCard, {\n icon: \"road\",\n value: _unref(totalDistance),\n text: _unref(distanceUnitTo) === 'mi' ? 'miles' : _unref(distanceUnitTo)\n }, null, 8, [\"value\", \"text\"]),\n (_unref(user).display_ascent)\n ? (_openBlock(), _createBlock(StatCard, {\n key: 0,\n icon: \"location-arrow\",\n value: _unref(totalAscent),\n text: _unref(ascentUnitTo) === 'ft' ? 'feet' : _unref(ascentUnitTo)\n }, null, 8, [\"value\", \"text\"]))\n : _createCommentVNode(\"\", true),\n _createVNode(StatCard, {\n icon: \"clock-o\",\n value: _unref(totalDuration).days,\n text: _unref(totalDuration).duration\n }, null, 8, [\"value\", \"text\"]),\n (!_unref(user).display_ascent)\n ? (_openBlock(), _createBlock(StatCard, {\n key: 1,\n icon: \"tags\",\n value: _unref(user).nb_sports,\n text: _ctx.$t('workouts.SPORT', _unref(user).nb_sports)\n }, null, 8, [\"value\", \"text\"]))\n : _createCommentVNode(\"\", true)\n ]))\n}\n}\n\n})","import script from \"./index.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./index.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./index.vue?vue&type=style&index=0&id=22dcb990&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","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-4c0893c1\"),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, onBeforeMount, ref } from 'vue'\n\n import Timeline from '@/components/Dashboard/Timeline.vue'\n import UserCalendar from '@/components/Dashboard/UserCalendar/index.vue'\n import UserMonthStats from '@/components/Dashboard/UserMonthStats.vue'\n import UserRecords from '@/components/Dashboard/UserRecords/index.vue'\n import UserStatsCards from '@/components/Dashboard/UserStatsCards/index.vue'\n import { AUTH_USER_STORE, SPORTS_STORE } from '@/store/constants'\n import { ISport } from '@/types/sports'\n import { IAuthUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'Dashboard',\n setup(__props) {\n\n const store = useStore()\n\n const authUser: ComputedRef = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.AUTH_USER_PROFILE]\n )\n const sports: ComputedRef = computed(\n () => store.getters[SPORTS_STORE.GETTERS.SPORTS]\n )\n const isSelected: Ref = ref('calendar')\n\n onBeforeMount(() => store.dispatch(AUTH_USER_STORE.ACTIONS.GET_USER_PROFILE))\n\n function updateDisplayColumn(target: string) {\n isSelected.value = target\n }\n\nreturn (_ctx: any,_cache: any) => {\n const _component_Loader = _resolveComponent(\"Loader\")!\n\n return (_unref(authUser).username && _unref(sports).length > 0)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"mobile-menu-item\", { 'is-selected': isSelected.value === 'calendar' }]),\n onClick: _cache[0] || (_cache[0] = ($event: any) => (updateDisplayColumn('calendar')))\n }, _hoisted_5, 2),\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"mobile-menu-item\", { 'is-selected': isSelected.value === 'chart' }]),\n onClick: _cache[1] || (_cache[1] = ($event: any) => (updateDisplayColumn('chart')))\n }, _hoisted_7, 2),\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"mobile-menu-item\", { 'is-selected': isSelected.value === 'timeline' }]),\n onClick: _cache[2] || (_cache[2] = ($event: any) => (updateDisplayColumn('timeline')))\n }, _hoisted_9, 2),\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"mobile-menu-item\", { 'is-selected': isSelected.value === 'records' }]),\n onClick: _cache[3] || (_cache[3] = ($event: any) => (updateDisplayColumn('records')))\n }, _hoisted_11, 2)\n ])\n ]),\n _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=4c0893c1&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-4c0893c1\"]])\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-58043acb\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n id: \"loginOrRegister\",\n class: \"view\"\n}\nconst _hoisted_2 = { class: \"container\" }\nconst _hoisted_3 = { class: \"container-sub\" }\nconst _hoisted_4 = { class: \"container-sub\" }\n\nimport { toRefs } from 'vue'\n\n import BikePic from '@/components/BikePic.vue'\n import LoginOrRegisterForm from '@/components/User/UserAuthForm.vue'\n\n interface Props {\n action: string\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'LoginOrRegister',\n props: {\n action: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n action: string\n };\n\n \n\n const { action } = toRefs(props)\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createVNode(BikePic)\n ]),\n _createElementVNode(\"div\", _hoisted_4, [\n _createVNode(LoginOrRegisterForm, { action: _unref(action) }, null, 8, [\"action\"])\n ])\n ])\n ]))\n}\n}\n\n})","import script from \"./LoginOrRegister.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./LoginOrRegister.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./LoginOrRegister.vue?vue&type=style&index=0&id=58043acb&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-58043acb\"]])\n\nexport default __exports__","import { createRouter, createWebHistory, RouteRecordRaw } from 'vue-router'\n\nimport AdminApplication from '@/components/Administration/AdminApplication.vue'\nimport AdminMenu from '@/components/Administration/AdminMenu.vue'\nimport AdminSports from '@/components/Administration/AdminSports.vue'\nimport AdminUsers from '@/components/Administration/AdminUsers.vue'\nimport Profile from '@/components/User/ProfileDisplay/index.vue'\nimport UserInfos from '@/components/User/ProfileDisplay/UserInfos.vue'\nimport UserPreferences from '@/components/User/ProfileDisplay/UserPreferences.vue'\nimport ProfileEdition from '@/components/User/ProfileEdition/index.vue'\nimport UserAccountEdition from '@/components/User/ProfileEdition/UserAccountEdition.vue'\nimport UserInfosEdition from '@/components/User/ProfileEdition/UserInfosEdition.vue'\nimport UserPictureEdition from '@/components/User/ProfileEdition/UserPictureEdition.vue'\nimport UserPreferencesEdition from '@/components/User/ProfileEdition/UserPreferencesEdition.vue'\nimport AddUserApp from '@/components/User/UserApps/AddUserApp.vue'\nimport AuthorizeUserApp from '@/components/User/UserApps/AuthorizeUserApp.vue'\nimport UserApps from '@/components/User/UserApps/index.vue'\nimport UserApp from '@/components/User/UserApps/UserApp.vue'\nimport UserAppsList from '@/components/User/UserApps/UserAppsList.vue'\nimport UserSportPreferences from '@/components/User/UserSportPreferences.vue'\nimport store from '@/store'\nimport { AUTH_USER_STORE } from '@/store/constants'\nimport AboutView from '@/views/AboutView.vue'\nimport Dashboard from '@/views/Dashboard.vue'\nimport NotFoundView from '@/views/NotFoundView.vue'\nimport LoginOrRegister from '@/views/user/LoginOrRegister.vue'\n\nconst getTabFromPath = (path: string): string => {\n const regex = /(\\/profile)(\\/edit)*(\\/*)/\n const tag = path.replace(regex, '').toUpperCase()\n return tag === '' ? 'PROFILE' : tag.toUpperCase()\n}\n\nconst routes: Array = [\n {\n path: '/',\n name: 'Dashboard',\n component: Dashboard,\n },\n {\n path: '/login',\n name: 'Login',\n component: LoginOrRegister,\n props: { action: 'login' },\n },\n {\n path: '/register',\n name: 'Register',\n component: LoginOrRegister,\n props: { action: 'register' },\n },\n {\n path: '/account-confirmation',\n name: 'AccountConfirmation',\n component: () =>\n import(\n /* webpackChunkName: 'profile' */ '@/views/user/AccountConfirmationView.vue'\n ),\n },\n {\n path: '/account-confirmation/resend',\n name: 'AccountConfirmationResend',\n component: () =>\n import(\n /* webpackChunkName: 'reset' */ '@/views/user/AccountConfirmationResendView.vue'\n ),\n props: { action: 'account-confirmation-resend' },\n },\n {\n path: '/account-confirmation/email-sent',\n name: 'AccountConfirmationEmailSend',\n component: () =>\n import(\n /* webpackChunkName: 'reset' */ '@/views/user/AccountConfirmationResendView.vue'\n ),\n props: { action: 'email-sent' },\n },\n {\n path: '/password-reset/sent',\n name: 'PasswordEmailSent',\n component: () =>\n import(\n /* webpackChunkName: 'reset' */ '@/views/user/PasswordResetView.vue'\n ),\n props: { action: 'request-sent' },\n },\n {\n path: '/password-reset/request',\n name: 'PasswordResetRequest',\n component: () =>\n import(\n /* webpackChunkName: 'reset' */ '@/views/user/PasswordResetView.vue'\n ),\n props: { action: 'reset-request' },\n },\n {\n path: '/password-reset/password-updated',\n name: 'PasswordUpdated',\n component: () =>\n import(\n /* webpackChunkName: 'reset' */ '@/views/user/PasswordResetView.vue'\n ),\n props: { action: 'password-updated' },\n },\n {\n path: '/password-reset',\n name: 'PasswordReset',\n component: () =>\n import(\n /* webpackChunkName: 'reset' */ '@/views/user/PasswordResetView.vue'\n ),\n props: { action: 'reset' },\n },\n {\n path: '/email-update',\n name: 'EmailUpdate',\n component: () =>\n import(\n /* webpackChunkName: 'profile' */ '@/views/user/EmailUpdateView.vue'\n ),\n },\n {\n path: '/profile',\n name: 'Profile',\n component: () =>\n import(/* webpackChunkName: 'profile' */ '@/views/user/ProfileView.vue'),\n children: [\n {\n path: '',\n name: 'UserProfile',\n component: Profile,\n props: (route) => ({\n tab: getTabFromPath(route.path),\n }),\n children: [\n {\n path: '',\n name: 'UserInfos',\n component: UserInfos,\n },\n {\n path: 'preferences',\n name: 'UserPreferences',\n component: UserPreferences,\n },\n {\n path: 'sports',\n name: 'UserSportPreferences',\n component: UserSportPreferences,\n props: { isEdition: false },\n },\n {\n path: 'apps',\n name: 'UserApps',\n component: UserApps,\n children: [\n {\n path: '',\n name: 'UserAppsList',\n component: UserAppsList,\n },\n {\n path: ':id',\n name: 'UserApp',\n component: UserApp,\n },\n {\n path: ':id/created',\n name: 'CreatedUserApp',\n component: UserApp,\n props: { afterCreation: true },\n },\n {\n path: 'new',\n name: 'AddUserApp',\n component: AddUserApp,\n },\n {\n path: 'authorize',\n name: 'AuthorizeUserApp',\n component: AuthorizeUserApp,\n },\n ],\n },\n ],\n },\n {\n path: 'edit',\n name: 'UserProfileEdition',\n component: ProfileEdition,\n props: (route) => ({\n tab: getTabFromPath(route.path),\n }),\n children: [\n {\n path: '',\n name: 'UserInfosEdition',\n component: UserInfosEdition,\n },\n {\n path: 'account',\n name: 'UserAccountEdition',\n component: UserAccountEdition,\n },\n {\n path: 'picture',\n name: 'UserPictureEdition',\n component: UserPictureEdition,\n },\n {\n path: 'preferences',\n name: 'UserPreferencesEdition',\n component: UserPreferencesEdition,\n },\n {\n path: 'sports',\n name: 'UserSportPreferencesEdition',\n component: UserSportPreferences,\n props: { isEdition: true },\n },\n ],\n },\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 OAuth2Actions {\n AUTHORIZE_CLIENT = 'AUTHORIZE_CLIENT',\n CREATE_CLIENT = 'CREATE_CLIENT',\n DELETE_CLIENT = 'DELETE_CLIENT',\n GET_CLIENTS = 'GET_CLIENTS',\n GET_CLIENT_BY_CLIENT_ID = 'GET_CLIENT_BY_CLIENT_ID',\n GET_CLIENT_BY_ID = 'GET_CLIENT_BY_ID',\n REVOKE_ALL_TOKENS = 'REVOKE_ALL_TOKENS',\n}\n\nexport enum OAuth2Getters {\n CLIENT = 'CLIENT',\n CLIENTS = 'CLIENTS',\n CLIENTS_PAGINATION = 'CLIENTS_PAGINATION',\n REVOCATION_SUCCESSFUL = 'REVOCATION_SUCCESSFUL',\n}\n\nexport enum OAuth2Mutations {\n EMPTY_CLIENT = 'EMPTY_CLIENT',\n SET_CLIENT = 'SET_CLIENT',\n SET_CLIENTS = 'SET_CLIENTS',\n SET_CLIENTS_PAGINATION = 'SET_CLIENTS_PAGINATION',\n SET_REVOCATION_SUCCESSFUL = 'SET_REVOCATION_SUCCESSFUL',\n}\n","export enum RootActions {\n GET_APPLICATION_CONFIG = 'GET_APPLICATION_CONFIG',\n GET_APPLICATION_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 OAuth2Actions,\n OAuth2Getters,\n OAuth2Mutations,\n} from '@/store/modules/oauth2/enums'\nimport {\n RootActions,\n RootGetters,\n RootMutations,\n} from '@/store/modules/root/enums'\nimport {\n SportsActions,\n SportsGetters,\n SportsMutation,\n} from '@/store/modules/sports/enums'\nimport {\n StatisticsActions,\n StatisticsGetters,\n StatisticsMutations,\n} from '@/store/modules/statistics/enums'\nimport {\n UsersActions,\n UsersGetters,\n UsersMutations,\n} from '@/store/modules/users/enums'\nimport {\n WorkoutsActions,\n WorkoutsGetters,\n WorkoutsMutations,\n} from '@/store/modules/workouts/enums'\n\nexport const ROOT_STORE = {\n ACTIONS: RootActions,\n GETTERS: RootGetters,\n MUTATIONS: RootMutations,\n}\n\nexport const SPORTS_STORE = {\n ACTIONS: SportsActions,\n GETTERS: SportsGetters,\n MUTATIONS: SportsMutation,\n}\n\nexport const STATS_STORE = {\n ACTIONS: StatisticsActions,\n GETTERS: StatisticsGetters,\n MUTATIONS: StatisticsMutations,\n}\n\nexport const AUTH_USER_STORE = {\n ACTIONS: AuthUserActions,\n GETTERS: AuthUserGetters,\n MUTATIONS: AuthUserMutations,\n}\nexport const OAUTH2_STORE = {\n ACTIONS: OAuth2Actions,\n GETTERS: OAuth2Getters,\n MUTATIONS: OAuth2Mutations,\n}\n\nexport const USERS_STORE = {\n ACTIONS: UsersActions,\n GETTERS: UsersGetters,\n MUTATIONS: UsersMutations,\n}\n\nexport const WORKOUTS_STORE = {\n ACTIONS: WorkoutsActions,\n GETTERS: WorkoutsGetters,\n MUTATIONS: WorkoutsMutations,\n}\n","import axios from 'axios'\n\nimport { pendingRequests, removeRequestIfPending } from '@/api/pending'\nimport { getApiUrl } from '@/utils'\n\nconst api = axios.create({\n baseURL: getApiUrl(),\n})\n\napi.interceptors.request.use(\n (config) => {\n const controller = new AbortController()\n config.signal = controller.signal\n const requestKey = removeRequestIfPending(config)\n pendingRequests.set(requestKey, controller)\n return config\n },\n (error) => Promise.reject(error)\n)\n\napi.interceptors.response.use(\n (response) => {\n removeRequestIfPending(response.config)\n return response\n },\n (error) => {\n if (error.message !== 'canceled') {\n removeRequestIfPending(error.response.config)\n }\n return Promise.reject(error)\n }\n)\n\nexport default api\n","import { ActionContext, ActionTree } from 'vuex'\n\nimport authApi from '@/api/authApi'\nimport router from '@/router'\nimport { AUTH_USER_STORE, ROOT_STORE, USERS_STORE } from '@/store/constants'\nimport { IAuthUserState } from '@/store/modules/authUser/types'\nimport { IRootState } from '@/store/modules/root/types'\nimport { IUsersActions, IUsersState } from '@/store/modules/users/types'\nimport { TPaginationPayload } from '@/types/api'\nimport { IAdminUserPayload, IUserDeletionPayload } from '@/types/user'\nimport { handleError } from '@/utils'\n\nexport const deleteUserAccount = (\n context:\n | ActionContext\n | ActionContext,\n payload: IUserDeletionPayload\n): void => {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n authApi\n .delete(`users/${payload.username}`)\n .then((res) => {\n if (res.status === 204) {\n if (payload.fromAdmin) {\n router.push('/admin/users')\n } else {\n context\n .dispatch(AUTH_USER_STORE.ACTIONS.LOGOUT)\n .then(() => router.push('/'))\n }\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n}\n\nexport const actions: ActionTree & IUsersActions = {\n [USERS_STORE.ACTIONS.EMPTY_USER](\n context: ActionContext\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(USERS_STORE.MUTATIONS.UPDATE_USER, {})\n },\n [USERS_STORE.ACTIONS.EMPTY_USERS](\n context: ActionContext\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(USERS_STORE.MUTATIONS.UPDATE_USERS, [])\n context.commit(USERS_STORE.MUTATIONS.UPDATE_USERS_PAGINATION, {})\n },\n [USERS_STORE.ACTIONS.GET_USER](\n context: ActionContext,\n username: string\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(USERS_STORE.MUTATIONS.UPDATE_USERS_LOADING, true)\n authApi\n .get(`users/${username}`)\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n USERS_STORE.MUTATIONS.UPDATE_USER,\n res.data.data.users[0]\n )\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n .finally(() =>\n context.commit(USERS_STORE.MUTATIONS.UPDATE_USERS_LOADING, false)\n )\n },\n [USERS_STORE.ACTIONS.GET_USERS](\n context: ActionContext,\n payload: TPaginationPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(USERS_STORE.MUTATIONS.UPDATE_USERS_LOADING, true)\n authApi\n .get('users', { params: payload })\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n USERS_STORE.MUTATIONS.UPDATE_USERS,\n res.data.data.users\n )\n context.commit(\n USERS_STORE.MUTATIONS.UPDATE_USERS_PAGINATION,\n res.data.pagination\n )\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n .finally(() =>\n context.commit(USERS_STORE.MUTATIONS.UPDATE_USERS_LOADING, false)\n )\n },\n [USERS_STORE.ACTIONS.UPDATE_USER](\n context: ActionContext,\n payload: IAdminUserPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(USERS_STORE.MUTATIONS.UPDATE_IS_SUCCESS, false)\n const data: Record = {}\n if (payload.admin !== undefined) {\n data.admin = payload.admin\n }\n if (payload.resetPassword) {\n data.reset_password = payload.resetPassword\n }\n if (payload.activate) {\n data.activate = payload.activate\n }\n if (payload.new_email !== undefined) {\n data.new_email = payload.new_email\n }\n authApi\n .patch(`users/${payload.username}`, data)\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n USERS_STORE.MUTATIONS.UPDATE_USER_IN_USERS,\n res.data.data.users[0]\n )\n if (payload.resetPassword || payload.new_email) {\n context.commit(USERS_STORE.MUTATIONS.UPDATE_IS_SUCCESS, true)\n }\n if (payload.activate || payload.new_email) {\n context.commit(\n USERS_STORE.MUTATIONS.UPDATE_USER,\n res.data.data.users[0]\n )\n }\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n .finally(() =>\n context.commit(USERS_STORE.MUTATIONS.UPDATE_USERS_LOADING, false)\n )\n },\n [USERS_STORE.ACTIONS.DELETE_USER_ACCOUNT](\n context: ActionContext,\n payload: IUserDeletionPayload\n ): void {\n deleteUserAccount(context, {\n username: payload.username,\n fromAdmin: true,\n })\n },\n}\n","import { ActionContext, ActionTree } from 'vuex'\n\nimport authApi from '@/api/authApi'\nimport api from '@/api/defaultApi'\nimport router from '@/router'\nimport {\n AUTH_USER_STORE,\n ROOT_STORE,\n SPORTS_STORE,\n STATS_STORE,\n USERS_STORE,\n WORKOUTS_STORE,\n} from '@/store/constants'\nimport {\n IAuthUserActions,\n IAuthUserState,\n} from '@/store/modules/authUser/types'\nimport { IRootState } from '@/store/modules/root/types'\nimport { deleteUserAccount } from '@/store/modules/users/actions'\nimport {\n ILoginOrRegisterData,\n IUserAccountPayload,\n IUserDeletionPayload,\n IUserAccountUpdatePayload,\n IUserEmailPayload,\n IUserPasswordResetPayload,\n IUserPayload,\n IUserPicturePayload,\n IUserPreferencesPayload,\n IUserSportPreferencesPayload,\n} from '@/types/user'\nimport { handleError } from '@/utils'\n\nconst removeAuthUserData = (\n context: ActionContext\n) => {\n localStorage.removeItem('authToken')\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(STATS_STORE.MUTATIONS.EMPTY_USER_STATS)\n context.commit(AUTH_USER_STORE.MUTATIONS.CLEAR_AUTH_USER_TOKEN)\n context.commit(USERS_STORE.MUTATIONS.UPDATE_USERS, [])\n context.commit(WORKOUTS_STORE.MUTATIONS.EMPTY_WORKOUTS)\n context.commit(WORKOUTS_STORE.MUTATIONS.EMPTY_WORKOUT)\n router.push('/login')\n}\n\nexport const actions: ActionTree &\n IAuthUserActions = {\n [AUTH_USER_STORE.ACTIONS.CHECK_AUTH_USER](\n context: ActionContext\n ): void {\n if (\n window.localStorage.authToken &&\n !context.getters[AUTH_USER_STORE.GETTERS.IS_AUTHENTICATED]\n ) {\n context.commit(\n AUTH_USER_STORE.MUTATIONS.UPDATE_AUTH_TOKEN,\n window.localStorage.authToken\n )\n context.dispatch(AUTH_USER_STORE.ACTIONS.GET_USER_PROFILE)\n }\n // after logout in another tab\n if (\n !window.localStorage.authToken &&\n context.getters[AUTH_USER_STORE.GETTERS.IS_AUTHENTICATED]\n ) {\n removeAuthUserData(context)\n }\n },\n [AUTH_USER_STORE.ACTIONS.CONFIRM_ACCOUNT](\n context: ActionContext,\n payload: IUserAccountUpdatePayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n api\n .post('auth/account/confirm', { token: payload.token })\n .then((res) => {\n if (res.data.status === 'success') {\n const token = res.data.auth_token\n window.localStorage.setItem('authToken', token)\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_AUTH_TOKEN, token)\n context\n .dispatch(AUTH_USER_STORE.ACTIONS.GET_USER_PROFILE)\n .then(() => router.push('/'))\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => {\n handleError(context, error)\n })\n },\n [AUTH_USER_STORE.ACTIONS.CONFIRM_EMAIL](\n context: ActionContext,\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 if (error.message !== 'canceled') {\n handleError(context, error)\n removeAuthUserData(context)\n }\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 context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n authApi\n .post('auth/logout')\n .then((res) => {\n if (res.data.status === 'success') {\n removeAuthUserData(context)\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\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 router from '@/router'\nimport { OAUTH2_STORE, ROOT_STORE } from '@/store/constants'\nimport { IOAuth2Actions, IOAuth2State } from '@/store/modules/oauth2/types'\nimport { IRootState } from '@/store/modules/root/types'\nimport {\n IOauth2ClientsPayload,\n IOAuth2ClientPayload,\n IOAuth2ClientAuthorizePayload,\n} from '@/types/oauth'\nimport { handleError } from '@/utils'\n\nconst get_client = (\n context: ActionContext,\n url: string\n) => {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n authApi\n .get(url)\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(OAUTH2_STORE.MUTATIONS.SET_CLIENT, res.data.data.client)\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n}\n\nexport const actions: ActionTree & IOAuth2Actions = {\n [OAUTH2_STORE.ACTIONS.AUTHORIZE_CLIENT](\n context: ActionContext,\n payload: IOAuth2ClientAuthorizePayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n const form = new FormData()\n form.set('client_id', payload.client_id)\n form.set('response_type', payload.response_type)\n form.set('scope', payload.scope)\n form.set('confirm', 'true')\n if (payload.state) {\n form.set('state', payload.state)\n }\n if (payload.code_challenge) {\n form.set('code_challenge', payload.code_challenge)\n }\n if (payload.code_challenge_method) {\n form.set('code_challenge_method', payload.code_challenge_method)\n }\n\n authApi\n .post('oauth/authorize', form, {\n headers: {\n 'Content-Type': 'multipart/form-data',\n },\n })\n .then((res) => {\n if (res.status == 200 && res.data.redirect_url) {\n window.location.href = res.data.redirect_url\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n [OAUTH2_STORE.ACTIONS.CREATE_CLIENT](\n context: ActionContext,\n payload: IOAuth2ClientPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n authApi\n .post('oauth/apps', payload)\n .then((res) => {\n if (res.data.status === 'created') {\n context.commit(\n OAUTH2_STORE.MUTATIONS.SET_CLIENT,\n res.data.data.client\n )\n router.push(`/profile/apps/${res.data.data.client.id}/created`)\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n [OAUTH2_STORE.ACTIONS.DELETE_CLIENT](\n context: ActionContext,\n id: number\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n authApi\n .delete(`oauth/apps/${id}`)\n .then((res) => {\n if (res.status === 204) {\n context\n .dispatch(OAUTH2_STORE.ACTIONS.GET_CLIENTS)\n .then(() => router.push('/profile/apps'))\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n [OAUTH2_STORE.ACTIONS.GET_CLIENT_BY_CLIENT_ID](\n context: ActionContext,\n client_id: string\n ): void {\n get_client(context, `oauth/apps/${client_id}`)\n },\n [OAUTH2_STORE.ACTIONS.GET_CLIENT_BY_ID](\n context: ActionContext,\n id: number\n ): void {\n get_client(context, `oauth/apps/${id}/by_id`)\n },\n [OAUTH2_STORE.ACTIONS.GET_CLIENTS](\n context: ActionContext,\n payload: IOauth2ClientsPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n authApi\n .get('oauth/apps', {\n params: payload,\n })\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n OAUTH2_STORE.MUTATIONS.SET_CLIENTS,\n res.data.data.clients\n )\n context.commit(\n OAUTH2_STORE.MUTATIONS.SET_CLIENTS_PAGINATION,\n res.data.pagination\n )\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n [OAUTH2_STORE.ACTIONS.REVOKE_ALL_TOKENS](\n context: ActionContext,\n id: number\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(OAUTH2_STORE.MUTATIONS.SET_REVOCATION_SUCCESSFUL, false)\n authApi\n .post(`oauth/apps/${id}/revoke`)\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(OAUTH2_STORE.MUTATIONS.SET_REVOCATION_SUCCESSFUL, true)\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n}\n","import { GetterTree } from 'vuex'\n\nimport { OAUTH2_STORE } from '@/store/constants'\nimport { IOAuth2Getters, IOAuth2State } from '@/store/modules/oauth2/types'\nimport { IRootState } from '@/store/modules/root/types'\n\nexport const getters: GetterTree & IOAuth2Getters = {\n [OAUTH2_STORE.GETTERS.CLIENT]: (state: IOAuth2State) => state.client,\n [OAUTH2_STORE.GETTERS.CLIENTS]: (state: IOAuth2State) => state.clients,\n [OAUTH2_STORE.GETTERS.CLIENTS_PAGINATION]: (state: IOAuth2State) =>\n state.pagination,\n [OAUTH2_STORE.GETTERS.REVOCATION_SUCCESSFUL]: (state: IOAuth2State) =>\n state.revocationSuccessful,\n}\n","import { MutationTree } from 'vuex'\n\nimport { OAUTH2_STORE } from '@/store/constants'\nimport { IOAuth2State, TOAuth2Mutations } from '@/store/modules/oauth2/types'\nimport { IPagination } from '@/types/api'\nimport { IOAuth2Client } from '@/types/oauth'\n\nexport const mutations: MutationTree & TOAuth2Mutations = {\n [OAUTH2_STORE.MUTATIONS.SET_CLIENT](\n state: IOAuth2State,\n client: IOAuth2Client\n ) {\n state.client = client\n },\n [OAUTH2_STORE.MUTATIONS.EMPTY_CLIENT](state: IOAuth2State) {\n state.client = {}\n },\n [OAUTH2_STORE.MUTATIONS.SET_CLIENTS](\n state: IOAuth2State,\n clients: IOAuth2Client[]\n ) {\n state.clients = clients\n },\n [OAUTH2_STORE.MUTATIONS.SET_CLIENTS_PAGINATION](\n state: IOAuth2State,\n pagination: IPagination\n ) {\n state.pagination = pagination\n },\n [OAUTH2_STORE.MUTATIONS.SET_REVOCATION_SUCCESSFUL](\n state: IOAuth2State,\n revocationSuccessful: boolean\n ) {\n state.revocationSuccessful = revocationSuccessful\n },\n}\n","import { IOAuth2State } from '@/store/modules/oauth2/types'\nimport { IPagination } from '@/types/api'\nimport { IOAuth2Client } from '@/types/oauth'\n\nexport const oAuth2State: IOAuth2State = {\n client: {},\n clients: [],\n pagination: {},\n revocationSuccessful: false,\n}\n","import { Module } from 'vuex'\n\nimport { actions } from '@/store/modules/oauth2/actions'\nimport { getters } from '@/store/modules/oauth2/getters'\nimport { mutations } from '@/store/modules/oauth2/mutations'\nimport { oAuth2State } from '@/store/modules/oauth2/state'\nimport { IOAuth2State } from '@/store/modules/oauth2/types'\nimport { IRootState } from '@/store/modules/root/types'\n\nconst oauth2: Module = {\n state: oAuth2State,\n actions,\n getters,\n mutations,\n}\n\nexport default oauth2\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 oAuthModule from '@/store/modules/oauth2'\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 oAuthModule,\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\nimport createI18n from '@/i18n'\nimport { localeFromLanguage } from '@/utils/locales'\n\nconst { locale } = createI18n.global\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 dateFormat = getDateFormat(dateFormat, locale.value)\n if (!timeFormat) {\n timeFormat = 'HH:mm'\n }\n return {\n workout_date: format(dateTime, dateFormat, {\n locale: localeFromLanguage[locale.value],\n }),\n workout_time: format(dateTime, timeFormat),\n }\n}\n\nconst availableDateFormats = [\n 'MM/dd/yyyy',\n 'dd/MM/yyyy',\n 'yyyy-MM-dd',\n 'date_string',\n]\nconst dateStringFormats: Record = {\n de: 'do MMM yyyy',\n en: 'MMM. do, yyyy',\n fr: 'd MMM yyyy',\n // nb: 'do MMM yyyy',\n}\n\nexport const getDateFormat = (dateFormat: string, language: string): string => {\n return dateFormat === 'date_string' ? dateStringFormats[language] : dateFormat\n}\n\nexport const formatDate = (\n dateString: string,\n timezone: string,\n dateFormat: string,\n withTime = true,\n language: string | null = null\n): string => {\n if (!language) {\n language = locale.value\n }\n return format(\n getDateWithTZ(dateString, timezone),\n `${getDateFormat(dateFormat, language)}${withTime ? ' HH:mm' : ''}`,\n { locale: localeFromLanguage[language] }\n )\n}\n\nexport const availableDateFormatOptions = (\n inputDate: string,\n timezone: string,\n language: string | null = null\n) => {\n const l: string = language ? language : locale.value\n const options: Record[] = []\n availableDateFormats.map((df) => {\n const dateFormat = getDateFormat(df, l)\n options.push({\n label: `${dateFormat} - ${formatDate(\n inputDate,\n timezone,\n dateFormat,\n false,\n l\n )}`,\n value: df,\n })\n })\n return options\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 { AUTH_USER_STORE, ROOT_STORE } from '@/store/constants'\nimport { IAuthUserState } from '@/store/modules/authUser/types'\nimport { IOAuth2State } from '@/store/modules/oauth2/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 | ActionContext,\n error: AxiosError | null,\n msg = 'UNKNOWN'\n): void => {\n // if request is cancelled, no error to display\n if (error && error.message === 'canceled') {\n return\n }\n\n // if stored token is blacklisted, disconnect user\n if (\n error?.response?.status === 401 &&\n error.response.data.error === 'invalid_token'\n ) {\n localStorage.removeItem('authToken')\n context.dispatch(AUTH_USER_STORE.ACTIONS.CHECK_AUTH_USER)\n return\n }\n\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 // nb: nb, // disabled for now\n}\n\nexport const languageLabels: Record = {\n de: 'Deutsch',\n en: 'English',\n fr: 'Français',\n // nb: 'Norsk bokmål', // disabled for now\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 'Cycling (Virtual)': '#64a360',\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 createI18n from '@/i18n'\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, getDateFormat } from '@/utils/dates'\nimport { localeFromLanguage } from '@/utils/locales'\nimport { sportColors } from '@/utils/sports'\nimport { convertStatsDistance } from '@/utils/units'\n\nconst { locale } = createI18n.global\n\nconst dateFormats: Record> = {\n week: {\n api: 'yyyy-MM-dd',\n chart: 'MM/dd/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 userDateFormat: string\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(\n key,\n params.duration === 'week'\n ? getDateFormat(userDateFormat, locale.value)\n : dateFormat.chart,\n { locale: localeFromLanguage[locale.value] }\n )\n labels.push(label)\n datasetKeys.map((datasetKey) => {\n datasets[datasetKey].map((dataset) => {\n dataset.data.push(\n date in apiStats && 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, createCommentVNode as _createCommentVNode } from \"vue\"\n\nimport { Ref, onMounted, ref, toRefs, withDefaults, onUnmounted } 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 const timer = ref()\n const errorDisplayed: Ref = ref(false)\n\n onMounted(() => displayError())\n\n function displayError() {\n timer.value = setTimeout(() => {\n errorDisplayed.value = true\n }, 500)\n }\n\n onUnmounted(() => {\n if (timer.value) {\n clearTimeout(timer.value)\n }\n })\n\nreturn (_ctx: any,_cache: any) => {\n return (errorDisplayed.value)\n ? (_openBlock(), _createBlock(Error, {\n key: 0,\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 : _createCommentVNode(\"\", true)\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-3a9a4a65\"),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 { IOauth2ClientsPayload } from '@/types/oauth'\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 | IOauth2ClientsPayload\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 | IOauth2ClientsPayload\n };\n\n \n\n const { pagination, path, query } = toRefs(props)\n\n function getQuery(\n page: number,\n cursor?: number\n ): TPaginationPayload | IOauth2ClientsPayload {\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=3a9a4a65&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-3a9a4a65\"]])\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 zxcvbnDePackage = await import(\n /* webpackChunkName: \"password\" */ '@zxcvbn-ts/language-de'\n )\n const zxcvbnLangPackages: Record = {\n de: zxcvbnDePackage,\n en: zxcvbnEnPackage,\n fr: zxcvbnFrPackage,\n // no package available for norwegian bokmal, fallback on english\n nb: zxcvbnEnPackage,\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-d5e9b348\"),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 unitFrom = 'km'\n): string => {\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 case 'total_ascent':\n case 'total_descent':\n return `${value.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 function getUnit(displayedData: string) {\n return ['total_ascent', 'total_descent'].includes(displayedData)\n ? 'm'\n : 'km'\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 getUnit(props.displayedData)\n )\n },\n },\n afterFit: function (scale: LayoutItem) {\n scale.width = props.fullStats ? 90 : 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 getUnit(props.displayedData)\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 true,\n getUnit(props.displayedData)\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 true,\n getUnit(props.displayedData)\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=6c8b76cd&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 props.user.date_format\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=d5e9b348&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=d5e9b348&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-d5e9b348\"]])\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-217519af\"),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 import { formatDate, getDateFormat } from '@/utils/dates'\n import { localeFromLanguage } from '@/utils/locales'\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 language: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.LANGUAGE]\n )\n const authUser: ComputedRef = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.AUTH_USER_PROFILE]\n )\n const registrationDate = computed(() =>\n props.user.created_at\n ? formatDate(\n props.user.created_at,\n authUser.value.timezone,\n authUser.value.date_format\n )\n : ''\n )\n const birthDate = computed(() =>\n props.user.birth_date\n ? format(\n new Date(props.user.birth_date),\n `${getDateFormat(authUser.value.date_format, language.value)}`,\n { locale: localeFromLanguage[language.value] }\n )\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=217519af&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-217519af\"]])\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-b3c885de\"),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 onUnmounted,\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 onUnmounted(() => store.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES))\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=b3c885de&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-b3c885de\"]])\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\": 9923,\n\t\"./en/en.ts\": 8757,\n\t\"./fr/fr.ts\": 6625,\n\t\"./nb/nb.ts\": 8891\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\":\"f95630ef\",\"93\":\"02cf293c\",\"193\":\"71389307\",\"243\":\"e551248f\",\"328\":\"4b3687ad\",\"401\":\"5d4c1679\",\"431\":\"e5102e07\",\"633\":\"81a8ddc8\",\"845\":\"6c65e34f\",\"858\":\"3f2a93f2\",\"881\":\"43430dfc\"}[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\":\"40e24e75\",\"328\":\"73df498d\",\"401\":\"babda0d5\",\"845\":\"9f83730d\"}[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__(4970); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["authApi","axios","baseURL","getApiUrl","interceptors","request","use","config","controller","AbortController","signal","requestKey","removeRequestIfPending","pendingRequests","authToken","store","AUTH_USER_STORE","auth","headers","Authorization","error","Promise","reject","response","message","Map","generateRequestKey","method","url","params","data","JSON","stringify","join","has","get","abort","delete","disabledLanguages","loadLocaleMessages","locales","require","messages","keys","forEach","key","matched","match","length","includes","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","oauth2","OAuth2Translations","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","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","cx","cy","r","sportLabel","color","title","sportColors","inject","_normalizeStyle","fill","CyclingSport","CyclingTransport","CyclingVirtual","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","_hoisted_20","edition","useRouter","appData","reactive","max_users","max_single_file_size","max_zip_file_size","gpx_limit_import","updateForm","Object","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","formatDate","created_at","timezone","date_format","nb_workouts","Pagination","tabs","selectedTab","getPath","tab","toLocaleLowerCase","checked","UserHeader","UserProfileTabs","appLanguage","userLanguage","languageLabels","fistDayOfWeek","weekm","display_ascent","getDateFormat","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","format","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","_hoisted_21","_hoisted_22","_hoisted_23","_hoisted_24","_hoisted_25","_hoisted_26","_hoisted_27","weekStart","imperialUnits","ascentData","dateFormatOptions","availableDateFormatOptions","toUTCString","updateTZ","updateAscentDisplay","updateImperialUnit","updateWeekM","lang","_vModelSelect","TimezoneDropdown","dateFormat","start","unit","status","oauth2_scopes","admin_oauth2_scopes","appForm","client_name","client_uri","client_description","redirect_uri","scopes","filtered_scopes","getScopes","redirect_uris","scope","OAUTH2_STORE","updateDescription","updateScopes","indexOf","splice","admin_scopes","description","onChange","client","loadApp","client_id","authorizeApp","response_type","state","code_challenge","code_challenge_method","afterCreation","revocationSuccessful","messageToDisplay","idCopied","secretCopied","clipboardSupport","loadClient","updateMessageToDisplay","forDelete","confirmAction","clientId","copyIdToClipboard","clipboard","writeText","copySecretToClipboard","client_secret","newValue","issued_at","website","clients","getClientsQuery","clientsQuery","getNumberQueryValue","defaultPage","loadClients","isEdition","defaultColor","sports_list","sportPayload","sport_id","stopped_speed_threshold","updateSportInEdition","is_active_for_user","resetSportPayload","isSportInEdition","sportId","updateColor","updateThreshold","updateIsActive","updateSport","resetSport","newIsLoading","src","alt","BikePic","About","workout","_component_Distance","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","displayHARecord","sportColor","records","record","record_type","height","width","colors","datasets","angleOffset","radius","circumference","Math","PI","calculateStrokeDashOffset","percentage","returnCircleTransformValue","rotation","entries","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","getDateWithTZ","reverse","row","isSameMonth","today","isToday","CalendarWorkouts","localeOptions","calendarDates","getCalendarStartAndEnd","calendarWorkouts","getCalendarWorkouts","apiParams","from","end","displayNextMonth","addMonths","displayPreviousMonth","subMonths","CalendarHeader","onDisplayNextMonth","onDisplayPreviousMonth","CalendarDays","CalendarCells","date","chartParams","duration","startOfMonth","endOfMonth","selectedSportIds","StatChart","formatRecord","distanceUnitFrom","distanceUnitTo","ascentUnitFrom","ascentUnitTo","Error","workout_id","sortRecords","a","b","recordALabel","recordBLabel","getRecordsBySports","reduce","sportList","find","sportTranslatedLabel","getTranslatedRecords","translatedRecords","recordsBySport","RecordsCard","userTotalDuration","total_duration","totalDuration","get_duration","totalDistance","total_distance","totalAscent","total_ascent","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","UserApps","UserAppsList","UserApp","AddUserApp","AuthorizeUserApp","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","OAuth2Actions","OAuth2Getters","OAuth2Mutations","RootActions","RootGetters","RootMutations","SportsActions","SportsGetters","SportsMutation","StatisticsActions","StatisticsGetters","StatisticsMutations","UsersActions","UsersGetters","UsersMutations","ACTIONS","GETTERS","MUTATIONS","STATS_STORE","WorkoutsActions","WorkoutsGetters","WorkoutsMutations","deleteUserAccount","context","res","handleError","actions","finally","resetPassword","reset_password","activate","new_email","removeAuthUserData","localStorage","removeItem","token","auth_token","setItem","refreshUser","actionType","redirectUrl","form","FormData","append","authUserProfile","isRegistrationSuccess","mutations","authUserState","get_client","set","redirect_url","oAuth2State","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","oAuthModule","sportsModule","statsModule","usersModule","workoutsModule","createStore","VuexStore","defaultPerPage","defaultValue","getStringQueryValue","availableValues","locationQuery","queryOptions","defaultSort","order","workoutsPayloadKeys","getRange","stop","rangePagination","pages","currentPage","getStartDate","startOfWeek","weekStartsOn","startOfYear","incrementDate","addYears","dateInUTC","utcToZonedTime","monthStart","monthEnd","endOfWeek","formatWorkoutDate","dateTime","timeFormat","workout_time","availableDateFormats","dateStringFormats","de","en","fr","dateString","withTime","inputDate","l","df","suffixes","fileSize","asText","floor","pow","msg","m","availableLocales","sortSports","sportATranslatedLabel","sportBTranslatedLabel","activeStatus","sportsToInclude","dateFormats","week","chart","month","year","datasetKeys","getDateKeys","getStatisticsChartDataset","isLineChart","dataset","backgroundColor","borderColor","spanGaps","getDatasets","displayedSports","average_speed","total_descent","convertStatsValue","datasetKey","convertStatsDistance","formatStats","displayedSportsId","apiStats","userDateFormat","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","timer","errorDisplayed","displayError","clearTimeout","cursor","has_prev","navigate","has_next","active","setZxcvbnOptions","zxcvbnCommonPackage","zxcvbnEnPackage","zxcvbnFrPackage","zxcvbnDePackage","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","getUnit","parse","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","getter","__esModule","leafPrototypes","getProto","getPrototypeOf","obj","__proto__","this","ns","create","def","current","getOwnPropertyNames","definition","defineProperty","enumerable","f","chunkId","all","promises","u","miniCssF","g","globalThis","Function","prop","prototype","hasOwnProperty","inProgress","dataWebpackPrefix","done","needAttach","scripts","getElementsByTagName","getAttribute","createElement","charset","timeout","nc","onScriptComplete","prev","onerror","onload","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.f7049224.js b/fittrackee/dist/static/js/app.f7049224.js deleted file mode 100644 index d4c9e64b..00000000 --- a/fittrackee/dist/static/js/app.f7049224.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(8566),s=n(2894),i=n(5801),l=n(2024);const c=a().create({baseURL:(0,l.k)()});c.interceptors.request.use((e=>{const t=new AbortController;e.signal=t.signal;const n=(0,o.a)(e);o.j.set(n,t);const r=s.Z.getters[i.YN.GETTERS.AUTH_TOKEN];if(r){const t=`Bearer ${r}`;e.headers&&e.headers.Authorization!==t&&(e.headers.Authorization=`Bearer ${r}`)}return e}),(e=>Promise.reject(e))),c.interceptors.response.use((e=>((0,o.a)(e.config),e)),(e=>("canceled"!==e.message&&(0,o.a)(e.response.config),Promise.reject(e)))),t["Z"]=c},8566:function(e,t,n){"use strict";n.d(t,{a:function(){return o},j:function(){return r}});const r=new Map,a=e=>{const{method:t,url:n,params:r={},data:a={}}=e;return[t,n,JSON.stringify(r),JSON.stringify(a)].join("")},o=e=>{const t=a(e);if(r.has(t)){const e=r.get(t)||{};e?.abort(),r.delete(t)}return t}},2540:function(e,t,n){"use strict";var r=n(9150);const a=["nb"];function o(){const e=n(4612),t={};return e.keys().forEach((n=>{const r=n.match(/([A-Za-z0-9-_]+)\./i);if(r&&r.length>1&&!a.includes(r[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:o()})},9923:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return S}});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 during gpx processing":e=>{const{normalize:t}=e;return t(["Fehler bei der GPX-Verarbeitung."])},"error during gpx file parsing":e=>{const{normalize:t}=e;return t(["Fehler beim Einlesen der GPX-Datei"])},"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"])},AUTHORIZE:e=>{const{normalize:t}=e;return t(["Autorisieren"])},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(["Mein Konto löschen"])},DISABLE:e=>{const{normalize:t}=e;return t(["Deaktivieren"])},EDIT:e=>{const{normalize:t}=e;return t(["Bearbeiten"])},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(["Anmelden"])},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"])])},DISPLAYED:e=>{const{normalize:t}=e;return t(["Angezeigt"])},DOCUMENTATION:e=>{const{normalize:t}=e;return t(["Dokumentation (en)"])},HERE:e=>{const{normalize:t}=e;return t(["hier"])},HIDDEN:e=>{const{normalize:t}=e;return t(["Versteckt"])},HOME:e=>{const{normalize:t}=e;return t(["Startseite"])},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={ADD_A_NEW_APP:e=>{const{normalize:t}=e;return t(["Eine neue OAuth2-Anwendung hinzufügen"])},APP:{CLIENT_ID:e=>{const{normalize:t}=e;return t(["ID"])},CLIENT_SECRET:e=>{const{normalize:t}=e;return t(["Geheimnis"])},DESCRIPTION:e=>{const{normalize:t}=e;return t(["Anwendungsbeschreibung"])},ISSUE_AT:e=>{const{normalize:t}=e;return t(["Erstellt am"])},NAME:e=>{const{normalize:t}=e;return t(["Anwendungsname"])},REDIRECT_URL:e=>{const{normalize:t}=e;return t(["Weiterleitungs-URL"])},SCOPE:{LABEL:e=>{const{normalize:t}=e;return t(["Geltungsbereich"])},"profile:write_DESCRIPTION":e=>{const{normalize:t}=e;return t(["erlaubt Schreibzugriff auf auth-Endpunkte"])},"profile:read_DESCRIPTION":e=>{const{normalize:t}=e;return t(["erlaubt Lesezugriff auf auth-Endpunkte"])},"users:read_DESCRIPTION":e=>{const{normalize:t}=e;return t(["erlaubt Lesezugriff auf users-Endpunkte"])},"users:write_DESCRIPTION":e=>{const{normalize:t}=e;return t(["erlaubt Schreibzugriff auf users-Endpunkte"])},"workouts:read_DESCRIPTION":e=>{const{normalize:t}=e;return t(["erlaubt Lesezugriff auf workouts-Endpunkte"])},"workouts:write_DESCRIPTION":e=>{const{normalize:t}=e;return t(["erlaubt Schreibzugriff auf workouts-Endpunkte"])},"application:write_DESCRIPTION":e=>{const{normalize:t}=e;return t(["erlaubt Schreibzugriff auf die Anwendungskonfiguration"])}},URL:e=>{const{normalize:t}=e;return t(["Anwendungs-URL"])}},APP_CREATED_SUCCESSFULLY:e=>{const{normalize:t}=e;return t(["Anwendung erfolgreich erstellt. Stelle sicher, dass du das Geheimnis kopierst, du kannst es nicht erneut anzeigen."])},APP_DELETION_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Bist sicher, dass du diese App löschen willst?"])},APP_REQUESTING_ACCESS:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Die Anwendung ",n(r(0))," fragt an:"])},APPS_LIST:e=>{const{normalize:t}=e;return t(["OAuth2-Anwendungen"])},AUTHORIZE_APP:e=>{const{normalize:t,interpolate:n,list:r}=e;return t([n(r(0))," den Zugriff auf deinen Account erlauben?"])},COPY_TO_CLIPBOARD:e=>{const{normalize:t}=e;return t(["in Zwischenablage kopieren"])},DELETE_APP:e=>{const{normalize:t}=e;return t(["Anwendung löschen"])},NEW_APP:e=>{const{normalize:t}=e;return t(["Anwendung hinzufügen"])},NO_APP:e=>{const{normalize:t}=e;return t(["Anwendung wurde nicht gefunden!"])},NO_APPS:e=>{const{normalize:t}=e;return t(["keine Anwendungen"])},NO_DESCRIPTION:e=>{const{normalize:t}=e;return t(["keine Beschreibung"])},REVOKE_ALL_TOKENS:e=>{const{normalize:t}=e;return t(["Alle Tokens zurückrufen"])},TOKENS_REVOCATION_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Bist du sicher, dass du alle Tokens zurückrufen möchtest?"])},TOKENS_REVOKED:e=>{const{normalize:t}=e;return t(["Alle vorhandenen und vergebenen Tokens wurde zurückgerufen."])}},d={"Cycling (Sport)":{LABEL:e=>{const{normalize:t}=e;return t(["Radfahren (Sport)"])}},"Cycling (Transport)":{LABEL:e=>{const{normalize:t}=e;return t(["Radfahren (Pendeln)"])}},"Cycling (Virtual)":{LABEL:e=>{const{normalize:t}=e;return t(["Radfahren (Virtuell)"])}},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(["Gehen"])}}},m={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"])}}},_={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ätigungs-E-Mail 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"])},ASCENT_DATA:e=>{const{normalize:t}=e;return t(["Anstiegs-bezogene Daten (Aufnahmen, gesamt)"])},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"])},DATE_FORMAT:e=>{const{normalize:t}=e;return t(["Datumsanzeigeformat"])},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"])},APPS:e=>{const{normalize:t}=e;return t(["Anwendungen"])},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(["E-Mail zur Kontobestätigung erneut senden"])},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."])}},E={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_HA:e=>{const{normalize:t}=e;return t(["Höchster Anstieg"])},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(["verbleibende Zeichen"])},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"])}},S={about:r,admin:a,api:o,buttons:s,common:i,dashboard:l,error:c,oauth2:u,sports:d,statistics:m,user:_,workouts:E}},8757:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return S}});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"])},AUTHORIZE:e=>{const{normalize:t}=e;return t(["Authorize"])},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"])])},DISPLAYED:e=>{const{normalize:t}=e;return t(["Displayed"])},DOCUMENTATION:e=>{const{normalize:t}=e;return t(["documentation"])},HERE:e=>{const{normalize:t}=e;return t(["here"])},HIDDEN:e=>{const{normalize:t}=e;return t(["Hidden"])},HOME:e=>{const{normalize:t}=e;return t(["Home"])},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={ADD_A_NEW_APP:e=>{const{normalize:t}=e;return t(["Add a new OAuth2 application"])},APP:{CLIENT_ID:e=>{const{normalize:t}=e;return t(["Id"])},CLIENT_SECRET:e=>{const{normalize:t}=e;return t(["Secret"])},DESCRIPTION:e=>{const{normalize:t}=e;return t(["Application description"])},ISSUE_AT:e=>{const{normalize:t}=e;return t(["Issue at"])},NAME:e=>{const{normalize:t}=e;return t(["Application name"])},REDIRECT_URL:e=>{const{normalize:t}=e;return t(["Redirect URL"])},SCOPE:{LABEL:e=>{const{normalize:t}=e;return t(["Scope"])},"application:write_DESCRIPTION":e=>{const{normalize:t}=e;return t(["grants write access to application configuration."])},"profile:read_DESCRIPTION":e=>{const{normalize:t}=e;return t(["grants read access to auth endpoints."])},"profile:write_DESCRIPTION":e=>{const{normalize:t}=e;return t(["grants write access to auth endpoints."])},"users:read_DESCRIPTION":e=>{const{normalize:t}=e;return t(["grants read access to users endpoints."])},"users:write_DESCRIPTION":e=>{const{normalize:t}=e;return t(["grants write access to users endpoints."])},"workouts:read_DESCRIPTION":e=>{const{normalize:t}=e;return t(["grants read access to workouts endpoints."])},"workouts:write_DESCRIPTION":e=>{const{normalize:t}=e;return t(["grants write access to workouts endpoints."])}},URL:e=>{const{normalize:t}=e;return t(["Application URL"])}},APP_CREATED_SUCCESSFULLY:e=>{const{normalize:t}=e;return t(["Application created successfully. Make sure to copy the secret now, it won't show up again."])},APP_DELETION_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Are you sure you want to delete this app?"])},APP_REQUESTING_ACCESS:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["The application ",n(r(0))," is requesting:"])},APPS_LIST:e=>{const{normalize:t}=e;return t(["OAuth2 applications"])},AUTHORIZE_APP:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Authorize ",n(r(0))," to use your account?"])},COPY_TO_CLIPBOARD:e=>{const{normalize:t}=e;return t(["copy to the clipboard"])},DELETE_APP:e=>{const{normalize:t}=e;return t(["Delete application"])},NEW_APP:e=>{const{normalize:t}=e;return t(["Add an application"])},NO_APP:e=>{const{normalize:t}=e;return t(["Application not found!"])},NO_APPS:e=>{const{normalize:t}=e;return t(["no applications"])},NO_DESCRIPTION:e=>{const{normalize:t}=e;return t(["no description"])},REVOKE_ALL_TOKENS:e=>{const{normalize:t}=e;return t(["Revoke all tokens"])},TOKENS_REVOCATION_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Are you sure you want to revoke all tokens?"])},TOKENS_REVOKED:e=>{const{normalize:t}=e;return t(["All existing associated tokens have been revoked."])}},d={"Cycling (Sport)":{LABEL:e=>{const{normalize:t}=e;return t(["Cycling (Sport)"])}},"Cycling (Transport)":{LABEL:e=>{const{normalize:t}=e;return t(["Cycling (Transport)"])}},"Cycling (Virtual)":{LABEL:e=>{const{normalize:t}=e;return t(["Cycling (Virtual)"])}},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"])}}},m={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"])}}},_={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"])},ASCENT_DATA:e=>{const{normalize:t}=e;return t(["Ascent-related data (records, total)"])},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"])},DATE_FORMAT:e=>{const{normalize:t}=e;return t(["Date display format"])},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"])},APPS:e=>{const{normalize:t}=e;return t(["apps"])},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.'])}},E={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_HA:e=>{const{normalize:t}=e;return t(["Highest ascent"])},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"])}},S={about:r,admin:a,api:o,buttons:s,common:i,dashboard:l,error:c,oauth2:u,sports:d,statistics:m,user:_,workouts:E}},6625:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return S}});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"])},AUTHORIZE:e=>{const{normalize:t}=e;return t(["Autoriser"])},BACK:e=>{const{normalize:t}=e;return t(["Retour"])},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"])])},DISPLAYED:e=>{const{normalize:t}=e;return t(["Affiché"])},DOCUMENTATION:e=>{const{normalize:t}=e;return t(["documentation (en)"])},HERE:e=>{const{normalize:t}=e;return t(["ici"])},HIDDEN:e=>{const{normalize:t}=e;return t(["Masqué"])},HOME:e=>{const{normalize:t}=e;return t(["Accueil"])},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={ADD_A_NEW_APP:e=>{const{normalize:t}=e;return t(["Ajouter une nouvelle application OAuth2"])},APP:{CLIENT_ID:e=>{const{normalize:t}=e;return t(["Identifiant"])},CLIENT_SECRET:e=>{const{normalize:t}=e;return t(["Secret"])},DESCRIPTION:e=>{const{normalize:t}=e;return t(["Description de l'application"])},ISSUE_AT:e=>{const{normalize:t}=e;return t(["Créée le"])},NAME:e=>{const{normalize:t}=e;return t(["Nom de l'application"])},REDIRECT_URL:e=>{const{normalize:t}=e;return t(["URL de redirection"])},SCOPE:{LABEL:e=>{const{normalize:t}=e;return t(["Scope"])},"application:write_DESCRIPTION":e=>{const{normalize:t}=e;return t(["donne les droits en écriture à la configuration de l'application."])},"profile:read_DESCRIPTION":e=>{const{normalize:t}=e;return t(["donne les droits en lecture aux routes auth."])},"profile:write_DESCRIPTION":e=>{const{normalize:t}=e;return t(["donne les droits en écriture aux routes auth."])},"users:read_DESCRIPTION":e=>{const{normalize:t}=e;return t(["donne les droits en lecture aux routes users."])},"users:write_DESCRIPTION":e=>{const{normalize:t}=e;return t(["donne les droits en écriture aux routes users."])},"workouts:read_DESCRIPTION":e=>{const{normalize:t}=e;return t(["donne les droits en lecture aux routes workouts."])},"workouts:write_DESCRIPTION":e=>{const{normalize:t}=e;return t(["donne les droits en écriture aux routes workouts."])}},URL:e=>{const{normalize:t}=e;return t(["URL de l'application"])}},APP_CREATED_SUCCESSFULLY:e=>{const{normalize:t}=e;return t(["Application créée avec succès. Assurez-vous de copier le secret maintenant, il ne s'affichera plus."])},APP_DELETION_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Êtes-vous sûr de vouloir supprimer cette application ?"])},APP_REQUESTING_ACCESS:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["L'application ",n(r(0))," demande les accès suivants :"])},APPS_LIST:e=>{const{normalize:t}=e;return t(["Applications OAuth2"])},AUTHORIZE_APP:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Autoriser ",n(r(0))," à utiliser votre compte ?"])},COPY_TO_CLIPBOARD:e=>{const{normalize:t}=e;return t(["copier dans le presse papier"])},DELETE_APP:e=>{const{normalize:t}=e;return t(["Supprimer l'application"])},NEW_APP:e=>{const{normalize:t}=e;return t(["Ajouter une application"])},NO_APP:e=>{const{normalize:t}=e;return t(["Application introuvable !"])},NO_APPS:e=>{const{normalize:t}=e;return t(["pas de applications"])},NO_DESCRIPTION:e=>{const{normalize:t}=e;return t(["pas de description"])},REVOKE_ALL_TOKENS:e=>{const{normalize:t}=e;return t(["Révoquer tous les jetons"])},TOKENS_REVOCATION_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Êtes-vous sûr de vouloir révoquer tous les jetons ?"])},TOKENS_REVOKED:e=>{const{normalize:t}=e;return t(["Tous les jetons associés existants ont été révoqués."])}},d={"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)"])}},"Cycling (Virtual)":{LABEL:e=>{const{normalize:t}=e;return t(["Vélo (Virtuel)"])}},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"])}}},m={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"])}}},_={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 vos courriels. Un nouveau courriel de confirmation a été envoyé à l'adresse électronique 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·e 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(["Courriel"])},EMAIL_INFO:e=>{const{normalize:t}=e;return t(["Saisissez une adresse électronique valide."])},ENTER_PASSWORD:e=>{const{normalize:t}=e;return t(["Saisissez 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 vos courriels. Si vote adresse est dans notre base de données, vous recevrez un courriel avec un lien pour réinitialiser votre mot de passe."])},PASSWORD_STRENGTH:{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"])},ASCENT_DATA:e=>{const{normalize:t}=e;return t(["Données relatives au dénivelé positif (records, total)"])},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"])},DATE_FORMAT:e=>{const{normalize:t}=e;return t(["Format d'affichage de la date"])},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 électronique 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"])},APPS:e=>{const{normalize:t}=e;return t(["apps"])},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 boîte de réception pour valider votre nouvelle adresse électronique."])},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 électronique 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 le courriel 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."])}},E={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_HA:e=>{const{normalize:t}=e;return t(["Dénivelé positif le + élevé"])},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"])}},S={about:r,admin:a,api:o,buttons:s,common:i,dashboard:l,error:c,oauth2:u,sports:d,statistics:m,user:_,workouts:E}},8891:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return S}});var r={},a={},o={},s={},i={},l={},c={},u={},d={},m={},_={},E={},S={about:r,admin:a,api:o,buttons:s,common:i,dashboard:l,error:c,oauth2:u,sports:d,statistics:m,user:_,workouts:E}},4970:function(e,t,n){"use strict";var r=n(6775),a=n(6429),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"},_={class:"footer-items"},E={class:"footer-item"},S=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"},R=["href"],I=d((()=>(0,l._)("div",{class:"footer-item bullet"},"•",-1))),U={class:"footer-item"},g={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",_,[(0,l._)("div",E,[S,(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,R)])):(0,l.kq)("",!0),I,(0,l._)("div",U,[(0,l._)("a",g,(0,u.zw)(e.$t("common.DOCUMENTATION")),1)])])])}}}),z=n(3744);const h=(0,z.Z)(N,[["__scopeId","data-v-2c73279e"]]);var w=h,f=(n(7658),n(6595)),v=n(5801),C=n(9917),D=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"},F=k((()=>(0,l._)("div",{class:"nav-item nav-separator"},null,-1))),W={class:"nav-items-user-menu"},K={key:0,class:"nav-items-group"},Y={class:"nav-item nav-profile-img"},x={key:1,class:"nav-items-group"},$=k((()=>(0,l._)("i",{class:"fa fa-language"},null,-1)));var B=(0,l.aZ)({__name:"NavBar",emits:["menuInteraction"],setup(e,{emit:t}){const n=(0,C.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 _(){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),F])):(0,l.kq)("",!0)]),(0,l._)("div",W,[(0,c.SU)(a)?((0,l.wg)(),(0,l.iD)("div",K,[(0,l._)("div",Y,[(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:_},(0,u.zw)(e.$t("user.LOGOUT")),1)])):((0,l.wg)(),(0,l.iD)("div",x,[(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)(D.mT)&&(0,c.SU)(o)?((0,l.wg)(),(0,l.j4)(E,{key:2,class:"nav-item",options:(0,c.SU)(D.mT),selected:(0,c.SU)(o),onSelected:m},{default:(0,l.w5)((()=>[$])),_:1},8,["options","selected"])):(0,l.kq)("",!0)])],2)])])}}});const Z=(0,z.Z)(B,[["__scopeId","data-v-95c1cc02"]]);var H=Z,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,C.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 _(){let e="en";try{const t=navigator.language.split("-")[0];t in D.v1&&(e=t)}catch(n){e="en"}t.dispatch(v.SY.ACTIONS.UPDATE_APPLICATION_LANGUAGE,e)}return(0,l.wF)((()=>{_(),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)(w,{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(5073),_e=n(2894);const Ee={class:"alert-message"},Se=["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,Se)]))}});const pe=(0,z.Z)(Te,[["__scopeId","data-v-69d7e4ff"]]);var Ae=pe,Oe=n(2531);const Re={class:"custom-textarea"},Ie=["id","name","maxLenght","disabled"],Ue={class:"remaining-chars"};var ge=(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=null===e?"":e})),(t,n)=>((0,l.wg)(),(0,l.iD)("div",Re,[(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,Ie),[[o.nr,r.value]]),(0,l._)("div",Ue,(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)(ge,[["__scopeId","data-v-8cf5cc64"]]);var ze=Ne,he=n(3649),we=(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?he.Dl[i.value].defaultTarget:i.value)),_=(0,l.Fl)((()=>d.value?(0,he.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)(_)),3),(0,l.Uk)(" "+(0,u.zw)(" ")+" "),(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 fe=(0,z.Z)(we,[["__scopeId","data-v-f46ff1d6"]]);var ve=fe,Ce=n(2201);const De={class:"dropdown-wrapper"},ke={key:0,class:"dropdown-list"},Pe=["onClick"];var Le=(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",De,[(0,l._)("div",{class:"dropdown-selected",onClick:s},[(0,l.WI)(t.$slots,"default")]),a.value?((0,l.wg)(),(0,l.iD)("ul",ke,[((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,Pe)))),128))])):(0,l.kq)("",!0)]))}});const Me=(0,z.Z)(Le,[["__scopeId","data-v-2d3b4eac"]]);var be=Me;const ye={class:"error-message"},Ge={key:0},Fe={key:1};var We=(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",ye,[Array.isArray((0,c.SU)(n))?((0,l.wg)(),(0,l.iD)("ul",Ge,[((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 Ke=(0,z.Z)(We,[["__scopeId","data-v-2659a79a"]]);var Ye=Ke;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"},$e=(0,l._)("desc",{id:"cyclingSportDescription"}," silhouette of a person riding a bicycle ",-1),Be=(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),Ze=[$e,Be];function He(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",xe,Ze)}var qe={name:"CyclingSport"};const Ve=(0,z.Z)(qe,[["render",He]]);var je=Ve;const Xe={version:"1.1",id:"Capa_1",x:"0px",y:"0px",viewBox:"0 0 491.737 491.737",style:{"enable-background":"new 0 0 491.737 491.737"},"xml:space":"preserve",xmlns:"http://www.w3.org/2000/svg","xmlns:svg":"http://www.w3.org/2000/svg"},Je=(0,l._)("desc",{id:"cyclingTransportDescription"}," silhouette of a person riding a bicycle (for transportation) ",-1),Qe=(0,l._)("g",{id:"g147"},[(0,l._)("path",{d:"m 189.097,82.359 c 20.97701,12.331184 47.97442,5.308784 60.293,-15.652 12.32942,-20.979222 5.35418,-47.981117 -15.623,-60.304 -21.00482,-12.3391184 -47.99,-5.317 -60.314,15.65 -12.324,20.983 -5.34599,47.967183 15.644,60.306 z",id:"path143"}),(0,l._)("path",{d:"m 393.081,264.102 c -2.414,0 -4.8,0.194 -7.169,0.362 l -14.431,-71.605 4.702,-1.757 c 10.666,-3.987 16.093,-15.868 12.098,-26.54 -3.994,-10.681 -15.946,-16.084 -26.531,-12.09 l -63.05508,-1.53717 C 284.04753,137.09803 248.90259,106.55858 243.33317,101.62481 217.77732,75.090916 186.1698,85.012419 178.0988,91.544419 L 140.764,192.085 l 0.016,0.024 c -3.319,2.893 -6.089,6.485 -7.86,10.842 -2.191,5.396 -2.596,11.067 -1.564,16.384 -8.503,0.669 -15.255,7.571 -15.255,16.246 0,9.085 7.346,16.44 16.432,16.48 l -6.797,15.906 c -8.62,-2.465 -17.674,-3.866 -27.066,-3.866 C 44.27,264.102 0,308.354 0,362.754 c 0,54.403 44.27,98.663 98.668,98.663 54.403,0 98.652,-44.26 98.652,-98.663 0,-36.228 -19.683,-67.867 -48.858,-85.024 l 10.957,-25.652 h 17.767 l 60.281,24.462 -32.201,52.773 c -8.297,13.612 -3.994,31.382 9.615,39.685 4.691,2.86 9.878,4.229 15,4.229 9.729,0 19.234,-4.929 24.677,-13.838 l 29.339,-48.095 19.072,11.511 c -5.447,12.227 -8.54,25.726 -8.54,39.95 0,54.403 44.254,98.663 98.652,98.663 54.402,0 98.656,-44.26 98.656,-98.663 0,-54.401 -44.254,-98.653 -98.656,-98.653 z M 98.668,436.671 c -40.756,0 -73.923,-33.161 -73.923,-73.917 0,-40.756 33.167,-73.909 73.923,-73.909 5.944,0 11.649,0.896 17.188,2.224 L 95.38,338.962 c -11.758,1.619 -20.843,11.598 -20.843,23.792 0,13.323 10.808,24.132 24.13,24.132 8.767,0 16.367,-4.745 20.589,-11.76 h 52.065 c -5.926,34.862 -36.133,61.545 -72.653,61.545 z m 72.654,-86.288 h -52.065 c -0.355,-0.588 -0.708,-1.176 -1.112,-1.732 l 20.476,-47.901 c 17.058,11.026 29.172,28.845 32.701,49.633 z m 125.459,-60.208 7.666,-12.564 c 4.416,-7.233 5.431,-16.038 2.774,-24.084 -2.661,-8.046 -8.718,-14.515 -16.562,-17.704 l -73.83357,-31.7176 16.7558,-45.21274 c 10.36934,4.13303 41.82171,27.90767 45.77423,28.08592 3.271,1.981 8.57725,1.46711 12.29625,1.46711 2.435,0 18.50584,0.70472 20.84384,-0.16628 L 343.32113,188.03378 361.635,269.33 c -18.268,6.162 -34.117,17.51 -45.848,32.314 z m 78.615,47.458 -38.003,-22.94 c 7.877,-9.118 17.787,-16.319 29.205,-20.734 z m 17.685,99.038 c -40.757,0 -73.907,-33.161 -73.907,-73.917 0,-9.544 1.965,-18.597 5.268,-26.983 l 44.541,26.888 c 0,0.032 -0.016,0.064 -0.016,0.095 0,13.323 10.808,24.132 24.114,24.132 13.322,0 24.118,-10.81 24.118,-24.132 0,-10.478 -6.721,-19.307 -16.06,-22.64 l -10.277,-51.043 c 0.756,-0.024 1.463,-0.226 2.22,-0.226 40.757,0 73.911,33.153 73.911,73.909 -10e-4,40.756 -33.155,73.917 -73.912,73.917 z",id:"path145"})],-1),et=[Je,Qe];function tt(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",Xe,et)}var nt={name:"CyclingTransport"};const rt=(0,z.Z)(nt,[["render",tt]]);var at=rt;const ot={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"},st=(0,l.uE)(' silhouette of a person riding a bicycle with virtual indicator ',4),it=[st];function lt(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",ot,it)}var ct={name:"CyclingVirtual"};const ut=(0,z.Z)(ct,[["render",lt]]);var dt=ut;const mt={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"},_t=(0,l._)("desc",{id:"hikingDescription"},"silhouette of a person hiking",-1),Et=(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),St=[_t,Et];function Tt(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",mt,St)}var pt={name:"Hiking"};const At=(0,z.Z)(pt,[["render",Tt]]);var Ot=At;const Rt={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"},It=(0,l._)("desc",{id:"mountainBikingDescription"}," silhouette of a person riding a mountain bike ",-1),Ut=(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),gt=[It,Ut];function Nt(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",Rt,gt)}var zt={name:"MountainBiking"};const ht=(0,z.Z)(zt,[["render",Nt]]);var wt=ht;const ft={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"},vt=(0,l.uE)(' silhouette of a person riding an electric mountain bike ',18),Ct=[vt];function Dt(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",ft,Ct)}var kt={name:"MountainBikingElectric"};const Pt=(0,z.Z)(kt,[["render",Dt]]);var Lt=Pt;const Mt={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"},bt=(0,l._)("desc",{id:"rowingDescription"},"silhouette of a person rowing",-1),yt=(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),Gt=[bt,yt];function Ft(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",Mt,Gt)}var Wt={name:"Rowing"};const Kt=(0,z.Z)(Wt,[["render",Ft]]);var Yt=Kt;const xt={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"},$t=(0,l._)("desc",{id:"runningDescription"},"silhouette of a running person",-1),Bt=(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),Zt=[$t,Bt];function Ht(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",xt,Zt)}var qt={name:"Running"};const Vt=(0,z.Z)(qt,[["render",Ht]]);var jt=Vt;const Xt={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"},Jt=(0,l._)("desc",{id:"alpineSkiingDescription"},"silhouette of a person skiing",-1),Qt=(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),en=[Jt,Qt];function tn(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",Xt,en)}var nn={name:"SkiingAlpine"};const rn=(0,z.Z)(nn,[["render",tn]]);var an=rn;const on={version:"1.1",id:"Capa_1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",x:"0px",y:"0px",viewBox:"0 0 296 296",style:{"enable-background":"new 0 0 296 296"},"xml:space":"preserve"},sn=(0,l._)("desc",{id:"crossCountrySkiingDescription"}," silhouette of a person skiing (cross country) ",-1),ln=(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),cn=[sn,ln];function un(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",on,cn)}var dn={name:"SkiingCrossCountry"};const mn=(0,z.Z)(dn,[["render",un]]);var _n=mn;const En={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"},Sn=(0,l.uE)('silhouette of a person with snowshoes',6),Tn=[Sn];function pn(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",En,Tn)}var An={name:"Snowshoes"};const On=(0,z.Z)(An,[["render",pn]]);var Rn=On;const In={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"},Un=(0,l._)("desc",{id:"trailDescription"},"silhouette of a person running (trail)",-1),gn=(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),Nn=[Un,gn];function zn(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",In,Nn)}var hn={name:"Trail"};const wn=(0,z.Z)(hn,[["render",zn]]);var fn=wn;const vn={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 walking person',3),Dn=[Cn];function kn(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",vn,Dn)}var Pn={name:"Walking"};const Ln=(0,z.Z)(Pn,[["render",kn]]);var Mn=Ln;const bn=["title"];var yn=(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)(je,{key:0})):(0,l.kq)("",!0),"Cycling (Transport)"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(at,{key:1})):(0,l.kq)("",!0),"Cycling (Virtual)"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(dt,{key:2})):(0,l.kq)("",!0),"Hiking"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(Ot,{key:3})):(0,l.kq)("",!0),"Mountain Biking"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(wt,{key:4})):(0,l.kq)("",!0),"Mountain Biking (Electric)"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(Lt,{key:5})):(0,l.kq)("",!0),"Rowing"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(Yt,{key:6})):(0,l.kq)("",!0),"Running"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(jt,{key:7})):(0,l.kq)("",!0),"Skiing (Alpine)"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(an,{key:8})):(0,l.kq)("",!0),"Skiing (Cross Country)"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(_n,{key:9})):(0,l.kq)("",!0),"Snowshoes"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(Rn,{key:10})):(0,l.kq)("",!0),"Trail"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(fn,{key:11})):(0,l.kq)("",!0),"Walking"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(Mn,{key:12})):(0,l.kq)("",!0)],12,bn))}});const Gn=yn;var Fn=Gn;const Wn={class:"loader"};function Kn(e,t){return(0,l.wg)(),(0,l.iD)("div",Wn)}const Yn={},xn=(0,z.Z)(Yn,[["render",Kn],["__scopeId","data-v-4c9921ee"]]);var $n=xn;const Bn={id:"modal"},Zn={class:"custom-modal"},Hn={key:0,class:"modal-message"},qn={key:1,class:"modal-message"},Vn={class:"modal-buttons"};var jn=(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,C.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",Bn,[(0,l._)("div",Zn,[(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",Hn,[(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",qn,(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",Vn,[(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 Xn=(0,z.Z)(jn,[["__scopeId","data-v-e8fcfaba"]]);var Jn=Xn;const Qn=[{target:Ae,name:"AlertMessage"},{target:Oe.Z,name:"Card"},{target:ze,name:"CustomTextArea"},{target:ve,name:"Distance"},{target:be,name:"Dropdown"},{target:Ye,name:"ErrorMessage"},{target:$n,name:"Loader"},{target:Jn,name:"Modal"},{target:Fn,name:"SportImage"}],er={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 tr=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 nr=(0,o.ri)(ue).provide("sportColors",tr.Zo).use(de.Z).use(_e.Z).use(me.Z).use(s.ZP,{name:"VFullscreen"}).directive("click-outside",er);Qn.forEach((e=>{nr.component(e.name,e.target)})),nr.mount("#app")},5073:function(e,t,n){"use strict";n.d(t,{Z:function(){return wl}});var r=n(2201),a=(n(7658),n(6252)),o=n(3577),s=n(9963),i=n(2262),l=n(5801),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"},_=["onSubmit"],E={for:"admin_contact"},S=["value"],T=["disabled"],p={for:"max_users"},A=["disabled"],O={class:"user-limit-help"},R={class:"info-box"},I=d((()=>(0,a._)("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1))),U={for:"max_single_file_size"},g=["disabled"],N={for:"max_zip_file_size"},z=["disabled"],h={for:"gpx_limit_import"},w=["disabled"],f={key:1,class:"form-buttons"},v={class:"confirm",type:"submit"},C=["onClick"],D={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,S))]),(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",R,[I,(0,a.Uk)(" "+(0,o.zw)(e.$t("admin.APP_CONFIG.MAX_USERS_HELP")),1)])]),(0,a._)("label",U,[(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,g),[[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",h,[(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,w),[[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,C)])):((0,a.wg)(),(0,a.iD)("div",D,[(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,_)])),_: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"},F={class:"stat-details"},W={class:"stat-huge"},K={class:"stat"};var Y=(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",F,[(0,a._)("div",W,(0,o.zw)((0,i.SU)(s)),1),(0,a._)("div",K,(0,o.zw)((0,i.SU)(r)),1)])])]))}});const x=Y;var $=x;const B={id:"user-stats"};var Z=(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",B,[(0,a.Wm)($,{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)($,{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)($,{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)($,{icon:"folder-open",value:(0,i.SU)(r).size,text:(0,i.SU)(r).suffix},null,8,["value","text"])]))}});const H=Z;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(9150),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))),_e={class:"text-left"},Ee={class:"text-left sport-action"},Se=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"},Re={class:"cell-heading"},Ie={class:"text-center"},Ue={class:"cell-heading"},ge={class:"sport-action"},Ne={class:"cell-heading"},ze={class:"action-button"},he=["onClick"],we={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",_e,(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),Se])]),(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",Re,(0,o.zw)(e.$t("admin.SPORTS.TABLE.LABEL")),1),(0,a.Uk)(" "+(0,o.zw)(t.translatedLabel),1)]),(0,a._)("td",Ie,[(0,a._)("span",Ue,(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",ge,[(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,he),t.has_workouts?((0,a.wg)(),(0,a.iD)("span",we,[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 Ce=(0,P.Z)(ve,[["__scopeId","data-v-6d62af67"]]);var De=Ce,ke=n(8626),Pe=n(5020),Le=n(6595);const Me={class:"users-filters"},be={class:"search-username"},ye=["onKeyup","placeholder"];var Ge=(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",Me,[(0,a._)("div",be,[(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,ye),[[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)(Ge,[["__scopeId","data-v-627a8e91"]]);var We=Fe,Ke=n(2766),Ye=n(6558);const xe=e=>((0,a.dD)("data-v-dc12ff78"),e=e(),(0,a.Cn)(),e),$e={id:"admin-users",class:"admin-card"},Be={key:0,class:"no-users"},Ze={key:1,class:"responsive-table"},He=xe((()=>(0,a._)("th",null,"#",-1))),qe={class:"left-text"},Ve={class:"left-text"},je={class:"left-text"},Xe={class:"cell-heading"},Je={class:"cell-heading"},Qe={class:"cell-heading"},et={class:"cell-heading"},tt={class:"text-center"},nt={class:"cell-heading"},rt={class:"text-center"},at={class:"cell-heading"},ot={class:"text-center"},st={class:"cell-heading"},it={class:"text-center"},lt={class:"cell-heading"},ct=["disabled","onClick"];var ut=(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 _=(0,i.qj)((0,Ke.pm)(n.query,d,m));const E=(0,a.Fl)((()=>t.getters[l.YN.GETTERS.AUTH_USER_PROFILE])),S=(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){I("q",e.value)}function R(e,n){t.dispatch(l.RT.ACTIONS.UPDATE_USER,{username:e,admin:n})}function I(e,t){_[e]=t,"per_page"===e&&(_.page=1),u.push({path:"/admin/users",query:_})}return(0,a.wF)((()=>A(_))),(0,a.Ah)((()=>{t.dispatch(l.RT.ACTIONS.EMPTY_USERS)})),(0,a.YP)((()=>n.query),(e=>{_=(0,Ke.pm)(e,d,m,{query:_}),A(_)})),(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",$e,[(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)(We,{onFilterOnUsername:O}),(0,a.Wm)(ke.Z,{sort:(0,i.SU)(Ke.fS),order_by:d,query:(0,i.SU)(_),message:"admin.USERS.SELECTS.ORDER_BY",onUpdateSelect:I},null,8,["sort","query"]),0===(0,i.SU)(S).length?((0,a.wg)(),(0,a.iD)("div",Be,(0,o.zw)(e.$t("user.NO_USERS_FOUND")),1)):((0,a.wg)(),(0,a.iD)("div",Ze,[(0,a._)("table",null,[(0,a._)("thead",null,[(0,a._)("tr",null,[He,(0,a._)("th",qe,(0,o.zw)(e.$t("user.USERNAME")),1),(0,a._)("th",Ve,(0,o.zw)(e.$t("user.EMAIL")),1),(0,a._)("th",je,(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)(S),(t=>((0,a.wg)(),(0,a.iD)("tr",{key:t.username},[(0,a._)("td",null,[(0,a._)("span",Xe,(0,o.zw)(e.$t("user.PROFILE.PICTURE")),1),(0,a.Wm)(Le.Z,{user:t},null,8,["user"])]),(0,a._)("td",null,[(0,a._)("span",Je,(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",Qe,(0,o.zw)(e.$t("user.EMAIL")),1),(0,a.Uk)(" "+(0,o.zw)(t.email),1)]),(0,a._)("td",null,[(0,a._)("span",et,(0,o.zw)(e.$t("user.PROFILE.REGISTRATION_DATE")),1),(0,a.Uk)(" "+(0,o.zw)((0,i.SU)(Ye.p6)(t.created_at,(0,i.SU)(E).timezone,(0,i.SU)(E).date_format)),1)]),(0,a._)("td",tt,[(0,a._)("span",nt,(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",rt,[(0,a._)("span",at,(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",ot,[(0,a._)("span",st,(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",it,[(0,a._)("span",lt,(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=>R(t.username,!t.admin)},(0,o.zw)(e.$t(`admin.USERS.TABLE.${t.admin?"REMOVE":"ADD"}_ADMIN_RIGHTS`)),11,ct)])])))),128))])]),(0,i.SU)(T).page?((0,a.wg)(),(0,a.j4)(Pe.Z,{key:0,path:"/admin/users",pagination:(0,i.SU)(T),query:(0,i.SU)(_)},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 dt=(0,P.Z)(ut,[["__scopeId","data-v-dc12ff78"]]);var mt=dt,_t=n(2179);const Et={class:"profile-tabs custom-checkboxes-group"},St={class:"profile-tabs-checkboxes custom-checkboxes"},Tt=["id","name","checked","disabled","onInput"];var pt=(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"APPS":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",Et,[(0,a._)("div",St,[((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).split("/")[0]===t,disabled:(0,i.SU)(s),onInput:n=>e.$router.push(l(t))},null,40,Tt),(0,a._)("span",null,(0,o.zw)(e.$t(`user.PROFILE.TABS.${t}`)),1)])])))),128))])]))}});const At=pt;var Ot=At;const Rt={id:"user-profile"},It={class:"box"};var Ut=(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","APPS"];return(e,t)=>{const s=(0,a.up)("router-view");return(0,a.wg)(),(0,a.iD)("div",Rt,[(0,a.Wm)(_t.Z,{user:(0,i.SU)(n)},null,8,["user"]),(0,a._)("div",It,[(0,a.Wm)(Ot,{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 gt=(0,P.Z)(Ut,[["__scopeId","data-v-9729cba4"]]);var Nt=gt,zt=n(1585),ht=n(6287);const wt={id:"user-preferences",class:"description-list"},ft={class:"profile-buttons"};var vt=(0,a.aZ)({__name:"UserPreferences",props:{user:null},setup(e){const t=e,n=(0,c.o)(),r=(0,a.Fl)((()=>n.getters[l.SY.GETTERS.LANGUAGE])),s=(0,a.Fl)((()=>t.user.language?ht.zK[t.user.language]:ht.zK.en)),u=(0,a.Fl)((()=>t.user.weekm?"MONDAY":"SUNDAY")),d=(0,a.Fl)((()=>t.user.timezone?t.user.timezone:"Europe/Paris")),m=(0,a.Fl)((()=>t.user.date_format?t.user.date_format:"MM/dd/yyyy")),_=(0,a.Fl)((()=>t.user.display_ascent?"DISPLAYED":"HIDDEN"));return(t,n)=>((0,a.wg)(),(0,a.iD)("div",wt,[(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)(s)),1),(0,a._)("dt",null,(0,o.zw)(t.$t("user.PROFILE.TIMEZONE"))+":",1),(0,a._)("dd",null,(0,o.zw)((0,i.SU)(d)),1),(0,a._)("dt",null,(0,o.zw)(t.$t("user.PROFILE.DATE_FORMAT"))+":",1),(0,a._)("dd",null,(0,o.zw)((0,i.SU)(Ye.mh)((0,i.SU)(m),(0,i.SU)(r))),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)(u)}`)),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._)("dt",null,(0,o.zw)(t.$t("user.PROFILE.ASCENT_DATA"))+":",1),(0,a._)("dd",null,(0,o.zw)(t.$t(`common.${(0,i.SU)(_)}`)),1)]),(0,a._)("div",ft,[(0,a._)("button",{onClick:n[0]||(n[0]=e=>t.$router.push("/profile/edit/preferences"))},(0,o.zw)(t.$t("user.PROFILE.EDIT_PREFERENCES")),1),(0,a._)("button",{onClick:n[1]||(n[1]=e=>t.$router.push("/"))},(0,o.zw)(t.$t("common.HOME")),1)])]))}});const Ct=vt;var Dt=Ct;const kt={id:"user-profile-edition",class:"center-card"};var Pt=(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",kt,[(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)(Ot,{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 Lt=Pt;var Mt=Lt,bt=n(8403);const yt={id:"user-infos-edition"},Gt={class:"profile-form form-box"},Ft={key:1,class:"info-box success-message"},Wt=["onSubmit"],Kt={class:"form-items",for:"email"},Yt=["disabled"],xt={class:"form-items",for:"password-field"},$t={class:"form-items",for:"new-password-field"},Bt={class:"form-buttons"},Zt={class:"confirm",type:"submit"};var Ht=(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])),_=(0,a.Fl)((()=>r.getters[l.YN.GETTERS.IS_SUCCESS])),E=(0,i.iH)(!1),S=(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 R(e){u.password=e}function I(e){u.new_password=e}function U(){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 g(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)((()=>_.value),(async e=>{e&&(R(""),I(""),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",yt,[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=>g(!1))},null,8,["title","message"])):(0,a.kq)("",!0),(0,a._)("div",Gt,[(0,i.SU)(S)?((0,a.wg)(),(0,a.j4)(l,{key:0,message:(0,i.SU)(S)},null,8,["message"])):(0,a.kq)("",!0),(0,i.SU)(_)?((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)(U,["prevent"])},[(0,a._)("label",Kt,[(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,Yt),[[s.nr,u.email]])]),(0,a._)("label",xt,[(0,a.Uk)((0,o.zw)(e.$t("user.CURRENT_PASSWORD"))+"* ",1),(0,a.Wm)(bt.Z,{id:"password-field",disabled:(0,i.SU)(d),password:u.password,required:!0,onUpdatePassword:R,onPasswordError:A},null,8,["disabled","password"])]),(0,a._)("label",$t,[(0,a.Uk)((0,o.zw)(e.$t("user.NEW_PASSWORD"))+" ",1),(0,a.Wm)(bt.Z,{id:"new-password-field",disabled:(0,i.SU)(d),checkStrength:!0,password:u.new_password,isSuccess:!1,onUpdatePassword:I,onPasswordError:A},null,8,["disabled","password"])]),(0,a._)("div",Bt,[(0,a._)("button",Zt,(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=>g(!0)),["prevent"]))},(0,o.zw)(e.$t("buttons.DELETE_MY_ACCOUNT")),1)])],42,Wt)])])}}});const qt=(0,P.Z)(Ht,[["__scopeId","data-v-37b8c4c8"]]);var Vt=qt,jt=n(4850);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 _n=(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,Ye.p6)(t.user.created_at,t.user.timezone,t.user.date_format):"")),d=(0,a.Fl)((()=>n.getters[l.YN.GETTERS.USER_LOADING])),m=(0,a.Fl)((()=>n.getters[l.SY.GETTERS.ERROR_MESSAGES]));function _(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,jt.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 S(){n.dispatch(l.YN.ACTIONS.UPDATE_USER_PROFILE,r)}return(0,a.bv)((()=>{t.user&&_(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)(S,["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)(_n,[["__scopeId","data-v-5e5a4552"]]);var Sn=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"],Rn={class:"picture-help"},In={class:"info-box"},Un=Tn((()=>(0,a._)("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1))),gn={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])),_=m.value.max_single_file_size?(0,u.Z)(m.value.max_single_file_size):"",E=(0,i.iH)(null);function S(){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)(Le.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",Rn,[(0,a._)("span",In,[Un,(0,a.Uk)(" "+(0,o.zw)(e.$t("workouts.MAX_SIZE"))+": "+(0,o.zw)((0,i.SU)(_)),1)])]),(0,a._)("div",gn,[(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:S},(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 hn=(0,P.Z)(zn,[["__scopeId","data-v-687e9604"]]);var wn=hn;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"},Cn=["value","disabled","onKeydown"],Dn=["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 _(e){return e.toLowerCase().match(c.value.toLowerCase())}function E(e){m.value=e}function S(e){c.value=e,u.value=!1,t("updateTimezone",e)}function T(e){e.preventDefault(),d.value?.firstElementChild?.innerHTML&&S(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=>S((0,i.SU)(r))),["esc"])),(0,s.D2)(T,["enter"])],onInput:p},null,40,Cn),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=>_(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=>S(e),onMouseover:e=>E(t),autofocus:t===m.value},(0,o.zw)(e),43,Dn)))),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"},Fn=["disabled"],Wn=["value"],Kn={class:"form-items"},Yn={class:"form-items"},xn=["disabled"],$n=["value"],Bn={class:"form-items form-checkboxes"},Zn={class:"checkboxes-label"},Hn={class:"checkboxes"},qn=["id","name","checked","disabled","onInput"],Vn={class:"checkbox-label"},jn={class:"form-items form-checkboxes"},Xn={class:"checkboxes-label"},Jn={class:"checkboxes"},Qn=["id","name","checked","disabled","onInput"],er={class:"checkbox-label"},tr={class:"form-items form-checkboxes"},nr={class:"checkboxes-label"},rr={class:"checkboxes"},ar=["id","name","checked","disabled","onInput"],or={class:"checkbox-label"},sr={class:"form-buttons"},ir={class:"confirm",type:"submit"};var lr=(0,a.aZ)({__name:"UserPreferencesEdition",props:{user:null},setup(e){const t=e,n=(0,c.o)(),r=(0,i.qj)({display_ascent:!0,imperial_units:!1,language:"",timezone:"Europe/Paris",date_format:"dd/MM/yyyy",weekm:!1}),u=[{label:"SUNDAY",value:!1},{label:"MONDAY",value:!0}],d=[{label:"METRIC",value:!1},{label:"IMPERIAL",value:!0}],m=[{label:"DISPLAYED",value:!0},{label:"HIDDEN",value:!1}],_=(0,a.Fl)((()=>n.getters[l.YN.GETTERS.USER_LOADING])),E=(0,a.Fl)((()=>n.getters[l.SY.GETTERS.ERROR_MESSAGES])),S=(0,a.Fl)((()=>(0,Ye.d2)((new Date).toUTCString(),t.user.timezone,r.language)));function T(e){r.display_ascent=e.display_ascent,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.date_format=e.date_format?e.date_format:"dd/MM/yyyy",r.weekm=!!e.weekm&&e.weekm}function p(){n.dispatch(l.YN.ACTIONS.UPDATE_USER_PREFERENCES,r)}function A(e){r.timezone=e}function O(e){r.display_ascent=e}function R(e){r.imperial_units=e}function I(e){r.weekm=e}return(0,a.bv)((()=>{t.user&&T(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)(E)?((0,a.wg)(),(0,a.j4)(n,{key:0,message:(0,i.SU)(E)},null,8,["message"])):(0,a.kq)("",!0),(0,a._)("form",{onSubmit:(0,s.iM)(p,["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)(_)},[((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,Wn)))),128))],8,Fn),[[s.bM,r.language]])]),(0,a._)("label",Kn,[(0,a.Uk)((0,o.zw)(e.$t("user.PROFILE.TIMEZONE"))+" ",1),(0,a.Wm)(Ln,{input:r.timezone,disabled:(0,i.SU)(_),onUpdateTimezone:A},null,8,["input","disabled"])]),(0,a._)("label",Yn,[(0,a.Uk)((0,o.zw)(e.$t("user.PROFILE.DATE_FORMAT"))+" ",1),(0,a.wy)((0,a._)("select",{id:"date_format","onUpdate:modelValue":t[1]||(t[1]=e=>r.date_format=e),disabled:(0,i.SU)(_)},[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,i.SU)(S),(e=>((0,a.wg)(),(0,a.iD)("option",{value:e.value,key:e.value},(0,o.zw)(e.label),9,$n)))),128))],8,xn),[[s.bM,r.date_format]])]),(0,a._)("div",Bn,[(0,a._)("span",Zn,(0,o.zw)(e.$t("user.PROFILE.FIRST_DAY_OF_WEEK")),1),(0,a._)("div",Hn,[((0,a.wg)(),(0,a.iD)(a.HY,null,(0,a.Ko)(u,(t=>(0,a._)("label",{key:t.label},[(0,a._)("input",{type:"radio",id:t.label,name:t.label,checked:t.value===r.weekm,disabled:(0,i.SU)(_),onInput:e=>I(t.value)},null,40,qn),(0,a._)("span",Vn,(0,o.zw)(e.$t(`user.PROFILE.${t.label}`)),1)]))),64))])]),(0,a._)("div",jn,[(0,a._)("span",Xn,(0,o.zw)(e.$t("user.PROFILE.UNITS.LABEL")),1),(0,a._)("div",Jn,[((0,a.wg)(),(0,a.iD)(a.HY,null,(0,a.Ko)(d,(t=>(0,a._)("label",{key:t.label},[(0,a._)("input",{type:"radio",id:t.label,name:t.label,checked:t.value===r.imperial_units,disabled:(0,i.SU)(_),onInput:e=>R(t.value)},null,40,Qn),(0,a._)("span",er,(0,o.zw)(e.$t(`user.PROFILE.UNITS.${t.label}`)),1)]))),64))])]),(0,a._)("div",tr,[(0,a._)("span",nr,(0,o.zw)(e.$t("user.PROFILE.ASCENT_DATA")),1),(0,a._)("div",rr,[((0,a.wg)(),(0,a.iD)(a.HY,null,(0,a.Ko)(m,(t=>(0,a._)("label",{key:t.label},[(0,a._)("input",{type:"radio",id:t.label,name:t.label,checked:t.value===r.display_ascent,disabled:(0,i.SU)(_),onInput:e=>O(t.value)},null,40,ar),(0,a._)("span",or,(0,o.zw)(e.$t(`common.${t.label}`)),1)]))),64))])]),(0,a._)("div",sr,[(0,a._)("button",ir,(0,o.zw)(e.$t("buttons.SUBMIT")),1),(0,a._)("button",{class:"cancel",onClick:t[2]||(t[2]=(0,s.iM)((t=>e.$router.push("/profile/preferences")),["prevent"]))},(0,o.zw)(e.$t("buttons.CANCEL")),1)])],40,yn)])])}}});const cr=(0,P.Z)(lr,[["__scopeId","data-v-065d5e6c"]]);var ur=cr;const dr=["profile:read","profile:write","users:read","users:write","workouts:read","workouts:write"],mr=["application:write"],_r={id:"new-oauth2-app"},Er={id:"new-oauth2-title"},Sr={id:"apps-form"},Tr=["onSubmit"],pr={class:"form-items"},Ar={class:"form-item"},Or={for:"app-name"},Rr={class:"form-item"},Ir={for:"app-description"},Ur={class:"form-item"},gr={for:"app-url"},Nr={class:"form-item"},zr={for:"app-redirect-uri"},hr={class:"form-item-scope"},wr={class:"form-item-scope-label"},fr={class:"scope-label"},vr=["name","checked","onChange"],Cr=["innerHTML"],Dr={class:"form-buttons"},kr=["disabled"];var Pr=(0,a.aZ)({__name:"AddUserApp",props:{authUser:null},setup(e){const t=e,n=(0,c.o)(),r=(0,i.qj)({client_name:"",client_uri:"",client_description:"",redirect_uri:""}),u=(0,i.qj)([]),d=(0,a.Fl)((()=>S(t.authUser,mr,dr)));function m(){const e={client_name:r.client_name,client_description:r.client_description,client_uri:r.client_uri,redirect_uris:[r.redirect_uri],scope:u.sort().join(" ")};n.dispatch(l.Km.ACTIONS.CREATE_CLIENT,e)}function _(e){r.client_description=e}function E(e){const t=u.indexOf(e);t>-1?u.splice(t,1):u.push(e)}function S(e,t,n){const r=[...n];return e.admin&&r.push(...t),r.sort()}return(e,t)=>{const n=(0,a.up)("CustomTextArea");return(0,a.wg)(),(0,a.iD)("div",_r,[(0,a._)("h1",Er,(0,o.zw)(e.$t("oauth2.ADD_A_NEW_APP")),1),(0,a._)("div",Sr,[(0,a._)("form",{onSubmit:(0,s.iM)(m,["prevent"])},[(0,a._)("div",pr,[(0,a._)("div",Ar,[(0,a._)("label",Or,(0,o.zw)(e.$t("oauth2.APP.NAME"))+"*",1),(0,a.wy)((0,a._)("input",{id:"app-name",type:"text",required:"","onUpdate:modelValue":t[0]||(t[0]=e=>r.client_name=e)},null,512),[[s.nr,r.client_name]])]),(0,a._)("div",Rr,[(0,a._)("label",Ir,(0,o.zw)(e.$t("oauth2.APP.DESCRIPTION")),1),(0,a.Wm)(n,{name:"app-description",charLimit:200,input:r.description,onUpdateValue:_},null,8,["input"])]),(0,a._)("div",Ur,[(0,a._)("label",gr,(0,o.zw)(e.$t("oauth2.APP.URL"))+"*",1),(0,a.wy)((0,a._)("input",{id:"app-url",type:"text",required:"","onUpdate:modelValue":t[1]||(t[1]=e=>r.client_uri=e)},null,512),[[s.nr,r.client_uri]])]),(0,a._)("div",Nr,[(0,a._)("label",zr,(0,o.zw)(e.$t("oauth2.APP.REDIRECT_URL"))+"* ",1),(0,a.wy)((0,a._)("input",{id:"app-redirect-uri",type:"text",required:"","onUpdate:modelValue":t[2]||(t[2]=e=>r.redirect_uri=e)},null,512),[[s.nr,r.redirect_uri]])]),(0,a._)("div",hr,[(0,a._)("div",wr,(0,o.zw)(e.$t("oauth2.APP.SCOPE.LABEL"))+"* ",1),((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,i.SU)(d),(t=>((0,a.wg)(),(0,a.iD)("div",{class:"form-item-scope-checkboxes",key:t},[(0,a._)("label",fr,[(0,a._)("input",{type:"checkbox",name:t,checked:u.includes(t),onChange:e=>E(t)},null,40,vr),(0,a._)("code",null,(0,o.zw)(t),1)]),(0,a._)("p",{class:"scope-description",innerHTML:e.$t(`oauth2.APP.SCOPE.${t}_DESCRIPTION`)},null,8,Cr)])))),128))])]),(0,a._)("div",Dr,[(0,a._)("button",{class:"confirm",type:"submit",disabled:0===u.length},(0,o.zw)(e.$t("buttons.SUBMIT")),9,kr),(0,a._)("button",{class:"cancel",onClick:t[3]||(t[3]=(0,s.iM)((()=>e.$router.push("/profile/apps")),["prevent"]))},(0,o.zw)(e.$t("buttons.CANCEL")),1)])],40,Tr)])])}}});const Lr=(0,P.Z)(Pr,[["__scopeId","data-v-0657ee77"]]);var Mr=Lr;const br={id:"authorize-oauth2-app"},yr={key:0},Gr={id:"authorize-oauth2-title"},Fr={class:"oauth2-access description-list"},Wr={class:"client-scope"},Kr=["innerHTML"],Yr={class:"authorize-oauth2-buttons"},xr={key:1},$r={class:"no-app"};var Br=(0,a.aZ)({__name:"AuthorizeUserApp",setup(e){const t=(0,r.yj)(),n=(0,c.o)(),s=(0,a.Fl)((()=>n.getters[l.Km.GETTERS.CLIENT])),u=(0,a.Fl)((()=>n.getters[l.SY.GETTERS.ERROR_MESSAGES]));function d(){t.query.client_id&&"string"===typeof t.query.client_id&&n.dispatch(l.Km.ACTIONS.GET_CLIENT_BY_CLIENT_ID,t.query.client_id)}function m(){n.dispatch(l.Km.ACTIONS.AUTHORIZE_CLIENT,{client_id:`${t.query.client_id}`,redirect_uri:`${t.query.redirect_uri}`,response_type:`${t.query.response_type}`,scope:`${t.query.scope}`,state:`${t.query.state?t.query.state:""}`,code_challenge:`${t.query.code_challenge?t.query.code_challenge:""}`,code_challenge_method:`${t.query.code_challenge_method?t.query.code_challenge_method:""}`})}return(0,a.wF)((()=>d())),(e,t)=>{const n=(0,a.up)("router-link"),r=(0,a.up)("i18n-t"),l=(0,a.up)("ErrorMessage");return(0,a.wg)(),(0,a.iD)("div",br,[(0,i.SU)(s).client_id?((0,a.wg)(),(0,a.iD)("div",yr,[(0,a._)("h1",Gr,[(0,a.Wm)(r,{keypath:"oauth2.AUTHORIZE_APP"},{default:(0,a.w5)((()=>[(0,a.Wm)(n,{to:{name:"UserApp",params:{id:(0,i.SU)(s).id}}},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)((0,i.SU)(s).name),1)])),_:1},8,["to"])])),_:1})]),(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._)("div",Fr,[(0,a._)("p",null,(0,o.zw)(e.$t("oauth2.APP_REQUESTING_ACCESS")),1),(0,a._)("dl",null,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,i.SU)(s).scope.split(" "),(t=>((0,a.wg)(),(0,a.iD)(a.HY,{key:t},[(0,a._)("dt",Wr,[(0,a._)("code",null,(0,o.zw)(t),1)]),(0,a._)("dd",{innerHTML:e.$t(`oauth2.APP.SCOPE.${t}_DESCRIPTION`)},null,8,Kr)],64)))),128))]),(0,a._)("div",Yr,[(0,a._)("button",{class:"danger",onClick:m},(0,o.zw)(e.$t("buttons.AUTHORIZE")),1),(0,a._)("button",{class:"cancel",onClick:t[0]||(t[0]=t=>e.$router.push("/profile/apps"))},(0,o.zw)(e.$t("buttons.CANCEL")),1)])])])):((0,a.wg)(),(0,a.iD)("div",xr,[(0,a._)("p",$r,(0,o.zw)(e.$t("oauth2.NO_APP")),1),(0,a._)("button",{onClick:t[1]||(t[1]=t=>e.$router.push("/profile/apps"))},(0,o.zw)(e.$t("buttons.BACK")),1)]))])}}});const Zr=(0,P.Z)(Br,[["__scopeId","data-v-3b2fe9ed"]]);var Hr=Zr;const qr={id:"oauth2-apps"};var Vr=(0,a.aZ)({__name:"index",props:{user:null},setup(e){const t=e,n=(0,c.o)(),{user:r}=(0,i.BK)(t);return(0,a.Ah)((()=>{n.commit(l.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),n.commit(l.Km.MUTATIONS.SET_CLIENTS,[])})),(e,t)=>{const n=(0,a.up)("router-view");return(0,a.wg)(),(0,a.iD)("div",qr,[(0,a.Wm)(n,{authUser:(0,i.SU)(r)},null,8,["authUser"])])}}});const jr=Vr;var Xr=jr;const Jr={id:"oauth2-app",class:"description-list"},Qr={key:1},ea={key:0,class:"info-box success-message"},ta=["title"],na={key:0},ra={key:1,class:"app-secret"},aa=["title"],oa={class:"client-scopes"},sa={class:"app-buttons"},ia={key:2},la={class:"no-app"};var ca=(0,a.aZ)({__name:"UserApp",props:{authUser:null,afterCreation:{type:Boolean,default:!1}},setup(e){const t=e,n=(0,r.yj)(),s=(0,c.o)(),{afterCreation:u,authUser:d}=(0,i.BK)(t),m=(0,a.Fl)((()=>s.getters[l.Km.GETTERS.CLIENT])),_=(0,a.Fl)((()=>s.getters[l.Km.GETTERS.REVOCATION_SUCCESSFUL])),E=(0,i.iH)(!1),S=(0,i.iH)(null),T=(0,i.iH)(!1),p=(0,i.iH)(!1),A=(0,i.iH)(!1);function O(){!u.value&&n.params.id&&"string"===typeof n.params.id&&s.dispatch(l.Km.ACTIONS.GET_CLIENT_BY_ID,+n.params.id)}function R(e){S.value=e?"oauth2.APP_DELETION_CONFIRMATION":"oauth2.TOKENS_REVOCATION_CONFIRMATION",I(!0)}function I(e){E.value=e,e||(S.value=null)}function U(e){"oauth2.APP_DELETION_CONFIRMATION"===S.value?s.dispatch(l.Km.ACTIONS.DELETE_CLIENT,e):s.dispatch(l.Km.ACTIONS.REVOKE_ALL_TOKENS,e)}function g(){navigator.clipboard.writeText(m.value.client_id),T.value=!0,p.value=!1,setTimeout((()=>{T.value=!1}),3e3)}function N(){m.value.client_secret&&(navigator.clipboard.writeText(m.value.client_secret),p.value=!0,T.value=!1,setTimeout((()=>{p.value=!1}),3e3))}return(0,a.wF)((()=>{O(),navigator.clipboard&&(A.value=!0)})),(0,a.Ah)((()=>{s.commit(l.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),s.commit(l.Km.MUTATIONS.EMPTY_CLIENT),s.commit(l.Km.MUTATIONS.SET_REVOCATION_SUCCESSFUL,!1)})),(0,a.YP)((()=>_.value),(e=>{e&&I(!1)})),(e,t)=>{const n=(0,a.up)("Modal");return(0,a.wg)(),(0,a.iD)("div",Jr,[E.value?((0,a.wg)(),(0,a.j4)(n,{key:0,title:e.$t("common.CONFIRMATION"),message:e.$t(S.value),onConfirmAction:t[0]||(t[0]=e=>U((0,i.SU)(m).id)),onCancelAction:t[1]||(t[1]=e=>I(!1))},null,8,["title","message"])):(0,a.kq)("",!0),(0,i.SU)(m)&&(0,i.SU)(m).client_id?((0,a.wg)(),(0,a.iD)("div",Qr,[(0,i.SU)(u)||(0,i.SU)(_)?((0,a.wg)(),(0,a.iD)("div",ea,(0,o.zw)(e.$t((0,i.SU)(u)?"oauth2.APP_CREATED_SUCCESSFULLY":"oauth2.TOKENS_REVOKED")),1)):(0,a.kq)("",!0),(0,a._)("dl",null,[(0,a._)("dt",null,(0,o.zw)(e.$t("oauth2.APP.CLIENT_ID"))+":",1),(0,a._)("dd",null,[(0,a.Uk)((0,o.zw)((0,i.SU)(m).client_id)+" ",1),(0,i.SU)(u)&&A.value?((0,a.wg)(),(0,a.iD)("i",{key:0,class:(0,o.C_)("fa fa-"+(T.value?"check":"copy")),"aria-hidden":"true",title:e.$t("oauth2.COPY_TO_CLIPBOARD"),onClick:g},null,10,ta)):(0,a.kq)("",!0)]),(0,i.SU)(u)&&(0,i.SU)(m).client_secret?((0,a.wg)(),(0,a.iD)("dt",na,(0,o.zw)(e.$t("oauth2.APP.CLIENT_SECRET"))+": ",1)):(0,a.kq)("",!0),(0,i.SU)(u)&&(0,i.SU)(m).client_secret?((0,a.wg)(),(0,a.iD)("dd",ra,[(0,a.Uk)((0,o.zw)((0,i.SU)(m).client_secret)+" ",1),A.value?((0,a.wg)(),(0,a.iD)("i",{key:0,class:(0,o.C_)("fa fa-"+(p.value?"check":"copy")),"aria-hidden":"true",title:e.$t("oauth2.COPY_TO_CLIPBOARD"),onClick:N},null,10,aa)):(0,a.kq)("",!0)])):(0,a.kq)("",!0),(0,a._)("dt",null,(0,o.zw)((0,o.kC)(e.$t("oauth2.APP.ISSUE_AT")))+":",1),(0,a._)("dd",null,(0,o.zw)((0,i.SU)(Ye.p6)((0,i.SU)(m).issued_at,(0,i.SU)(d).timezone,(0,i.SU)(d).date_format)),1),(0,a._)("dt",null,(0,o.zw)(e.$t("oauth2.APP.NAME"))+":",1),(0,a._)("dd",null,(0,o.zw)((0,i.SU)(m).name),1),(0,a._)("dt",null,(0,o.zw)(e.$t("oauth2.APP.DESCRIPTION"))+":",1),(0,a._)("dd",{class:(0,o.C_)({"no-description":!(0,i.SU)(m).client_description})},(0,o.zw)((0,i.SU)(m).client_description?(0,i.SU)(m).client_description:e.$t("oauth2.NO_DESCRIPTION")),3),(0,a._)("dt",null,(0,o.zw)(e.$t("oauth2.APP.URL"))+":",1),(0,a._)("dd",null,(0,o.zw)((0,i.SU)(m).website),1),(0,a._)("dt",null,(0,o.zw)(e.$t("oauth2.APP.REDIRECT_URL"))+":",1),(0,a._)("dd",null,(0,o.zw)((0,i.SU)(m).redirect_uris.length>0?(0,i.SU)(m).redirect_uris[0]:""),1),(0,a._)("dt",null,(0,o.zw)(e.$t("oauth2.APP.SCOPE.LABEL"))+":",1),(0,a._)("dd",oa,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,i.SU)(m).scope.split(" "),(e=>((0,a.wg)(),(0,a.iD)("span",{class:"client-scope",key:e},[(0,a._)("code",null,(0,o.zw)(e),1)])))),128))])]),(0,a._)("div",sa,[(0,a._)("button",{class:"danger",onClick:t[2]||(t[2]=e=>R(!1))},(0,o.zw)(e.$t("oauth2.REVOKE_ALL_TOKENS")),1),(0,a._)("button",{class:"danger",onClick:t[3]||(t[3]=e=>R(!0))},(0,o.zw)(e.$t("oauth2.DELETE_APP")),1),(0,a._)("button",{onClick:t[4]||(t[4]=t=>e.$router.push("/profile/apps"))},(0,o.zw)(e.$t("buttons.BACK")),1)])])):((0,a.wg)(),(0,a.iD)("div",ia,[(0,a._)("p",la,(0,o.zw)(e.$t("oauth2.NO_APP")),1),(0,a._)("button",{onClick:t[5]||(t[5]=t=>e.$router.push("/profile/apps"))},(0,o.zw)(e.$t("buttons.BACK")),1)]))])}}});const ua=(0,P.Z)(ca,[["__scopeId","data-v-3a844fa2"]]);var da=ua;const ma={id:"oauth2-apps-list"},_a={class:"apps-list"},Ea={key:0},Sa={class:"app-issued-at"},Ta={key:1,class:"no-apps"},pa={class:"app-list-buttons"};var Aa=(0,a.aZ)({__name:"UserAppsList",props:{authUser:null},setup(e){const t=e,n=(0,c.o)(),s=(0,r.yj)(),{authUser:u}=(0,i.BK)(t),d=(0,a.Fl)((()=>n.getters[l.Km.GETTERS.CLIENTS])),m=(0,a.Fl)((()=>n.getters[l.Km.GETTERS.CLIENTS_PAGINATION]));let _=E(s.query);function E(e){const t={};return e.page&&(t.page=(0,Ke.z_)(e.page,Ke.Hf)),t}function S(e){n.dispatch(l.Km.ACTIONS.GET_CLIENTS,e)}return(0,a.wF)((()=>{S(_)})),(0,a.YP)((()=>s.query),(async e=>{_=E(e),S(_)})),(e,t)=>{const n=(0,a.up)("router-link");return(0,a.wg)(),(0,a.iD)("div",ma,[(0,a._)("p",_a,(0,o.zw)(e.$t("oauth2.APPS_LIST")),1),(0,i.SU)(d).length>0?((0,a.wg)(),(0,a.iD)("ul",Ea,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,i.SU)(d),(t=>((0,a.wg)(),(0,a.iD)("li",{key:t.client_id},[(0,a.Wm)(n,{to:{name:"UserApp",params:{id:t.id}}},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(t.name),1)])),_:2},1032,["to"]),(0,a._)("span",Sa,(0,o.zw)(e.$t("oauth2.APP.ISSUE_AT"))+" "+(0,o.zw)((0,i.SU)(Ye.p6)(t.issued_at,(0,i.SU)(u).timezone,(0,i.SU)(u).date_format)),1)])))),128))])):((0,a.wg)(),(0,a.iD)("div",Ta,(0,o.zw)(e.$t("oauth2.NO_APPS")),1)),(0,i.SU)(d).length>0?((0,a.wg)(),(0,a.j4)(Pe.Z,{key:2,pagination:(0,i.SU)(m),path:"/profile/apps",query:(0,i.SU)(_)},null,8,["pagination","query"])):(0,a.kq)("",!0),(0,a._)("div",pa,[(0,a._)("button",{onClick:t[0]||(t[0]=t=>e.$router.push("/profile/apps/new"))},(0,o.zw)(e.$t("oauth2.NEW_APP")),1),(0,a._)("button",{onClick:t[1]||(t[1]=t=>e.$router.push("/"))},(0,o.zw)(e.$t("common.HOME")),1)])])}}});const Oa=(0,P.Z)(Aa,[["__scopeId","data-v-efa45ea0"]]);var Ra=Oa;const Ia={id:"user-sport-preferences"},Ua={key:0,class:"responsive-table"},ga={class:"mobile-display"},Na={key:0,class:"profile-buttons mobile-display"},za={key:1,class:"profile-buttons"},ha={class:"text-left"},wa={key:0},fa={class:"cell-heading"},va=["value"],Ca={class:"cell-heading"},Da={key:0,class:"disabled-message"},ka={key:1,class:"fa fa-refresh fa-spin fa-fw"},Pa={class:"cell-heading"},La={class:"cell-heading"},Ma=["checked"],ba={class:"cell-heading"},ya=["value"],Ga={key:1},Fa={key:0,class:"action-buttons"},Wa={class:"cell-heading"},Ka=["onClick"],Ya={key:1,class:"edition-buttons"},xa=["disabled"],$a=["disabled","onClick"],Ba=["disabled"],Za={key:0,class:"profile-buttons"},Ha={key:1,class:"profile-buttons"};var qa=(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="#838383",_=(0,a.f3)("sportColors"),E=(0,a.Fl)((()=>n.getters[l.O8.GETTERS.SPORTS])),S=(0,a.Fl)((()=>(0,le.xH)(E.value,r,"is_active",d.value.sports_list))),T=(0,a.Fl)((()=>n.getters[l.YN.GETTERS.USER_LOADING])),p=(0,a.Fl)((()=>n.getters[l.SY.GETTERS.ERROR_MESSAGES])),A=(0,i.qj)({sport_id:0,color:null,is_active:!0,stopped_speed_threshold:1});function O(e){null!==e?(A.sport_id=e.id,A.color=e.color?e.color:_?_[e.label]:m,A.is_active=e.is_active_for_user,A.stopped_speed_threshold=e.stopped_speed_threshold):N()}function R(e){return A.sport_id===e}function I(e){A.color=e.target.value}function U(e){A.stopped_speed_threshold=parseFloat(e.target.value)}function g(e){A.is_active=e.target.checked}function N(){A.sport_id=0,A.color=null,A.is_active=!0,A.stopped_speed_threshold=1,n.commit(l.SY.MUTATIONS.EMPTY_ERROR_MESSAGES)}function z(e){e.preventDefault(),n.dispatch(l.YN.ACTIONS.UPDATE_USER_SPORT_PREFERENCES,A)}function h(e,t){e.preventDefault(),n.dispatch(l.YN.ACTIONS.RESET_USER_SPORT_PREFERENCES,t)}return(0,a.YP)((()=>T.value),(e=>{e||p.value||N()})),(e,t)=>{const n=(0,a.up)("SportImage"),r=(0,a.up)("ErrorMessage");return(0,a.wg)(),(0,a.iD)("div",Ia,[(0,i.SU)(E).length>0?((0,a.wg)(),(0,a.iD)("div",Ua,[(0,a._)("div",ga,[(0,i.SU)(u)?((0,a.wg)(),(0,a.iD)("div",Na,[(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",za,[(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",ha,(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",wa,(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)(S),(s=>((0,a.wg)(),(0,a.iD)("tr",{key:s.id},[(0,a._)("td",null,[(0,a._)("span",fa,(0,o.zw)(e.$t("user.PROFILE.SPORT.COLOR")),1),R(s.id)?((0,a.wg)(),(0,a.iD)("input",{key:0,class:"sport-color",type:"color",value:A.color,onInput:I},null,40,va)):((0,a.wg)(),(0,a.j4)(n,{key:1,title:s.translatedLabel,"sport-label":s.label,color:s.color?s.color:(0,i.SU)(_)[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",Ca,(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",Da," ("+(0,o.zw)(e.$t("user.PROFILE.SPORT.DISABLED_BY_ADMIN"))+") ",1)),(0,i.SU)(T)&&R(s.id)?((0,a.wg)(),(0,a.iD)("i",ka)):(0,a.kq)("",!0),(0,i.SU)(p)&&A.sport_id===s.id?((0,a.wg)(),(0,a.j4)(r,{key:2,message:(0,i.SU)(p)},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",Pa,(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",La,(0,o.zw)(e.$t("user.PROFILE.SPORT.IS_ACTIVE")),1),R(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,Ma)):((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",ba,(0,o.zw)(e.$t("user.PROFILE.SPORT.STOPPED_SPEED_THRESHOLD")),1),R(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:A.stopped_speed_threshold,onInput:U},null,40,ya)):((0,a.wg)(),(0,a.iD)("span",Ga,(0,o.zw)(s.stopped_speed_threshold),1))],2),(0,i.SU)(u)?((0,a.wg)(),(0,a.iD)("td",Fa,[(0,a._)("span",Wa,(0,o.zw)(e.$t("user.PROFILE.SPORT.ACTION")),1),0===A.sport_id?((0,a.wg)(),(0,a.iD)("button",{key:0,onClick:e=>O(s)},(0,o.zw)(e.$t("buttons.EDIT")),9,Ka)):(0,a.kq)("",!0),R(s.id)?((0,a.wg)(),(0,a.iD)("div",Ya,[(0,a._)("button",{disabled:(0,i.SU)(T),onClick:z},(0,o.zw)(e.$t("buttons.SUBMIT")),9,xa),(0,a._)("button",{disabled:(0,i.SU)(T),onClick:e=>h(e,s.id)},(0,o.zw)(e.$t("buttons.RESET")),9,$a),(0,a._)("button",{disabled:(0,i.SU)(T),onClick:t[3]||(t[3]=e=>O(null))},(0,o.zw)(e.$t("buttons.CANCEL")),9,Ba)])):(0,a.kq)("",!0)])):(0,a.kq)("",!0)])))),128))])]),(0,i.SU)(u)?((0,a.wg)(),(0,a.iD)("div",Za,[(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",Ha,[(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 Va=(0,P.Z)(qa,[["__scopeId","data-v-74e52489"]]);var ja=Va,Xa=n(2894);const Ja=e=>((0,a.dD)("data-v-74257266"),e=e(),(0,a.Cn)(),e),Qa={class:"about-text"},eo=["innerHTML"],to=Ja((()=>(0,a._)("i",{class:"fa fa-book fa-padding","aria-hidden":"true"},null,-1))),no={href:"https://samr1.github.io/FitTrackee/",target:"_blank",rel:"noopener noreferrer"},ro=Ja((()=>(0,a._)("i",{class:"fa fa-github fa-padding","aria-hidden":"true"},null,-1))),ao={href:"https://github.com/SamR1/FitTrackee",target:"_blank",rel:"noopener noreferrer"},oo=Ja((()=>(0,a._)("i",{class:"fa fa-balance-scale fa-padding","aria-hidden":"true"},null,-1))),so=Ja((()=>(0,a._)("a",{href:"https://choosealicense.com/licenses/agpl-3.0/",target:"_blank",rel:"noopener noreferrer"}," AGPLv3 ",-1))),io={key:0},lo=Ja((()=>(0,a._)("i",{class:"fa fa-envelope-o fa-padding","aria-hidden":"true"},null,-1))),co=["href"];var uo=(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",Qa,[(0,a._)("div",null,[(0,a._)("p",{class:"error-message",innerHTML:e.$t("about.FITTRACKEE_DESCRIPTION")},null,8,eo),(0,a._)("p",null,[to,(0,a._)("a",no,(0,o.zw)((0,o.kC)(e.$t("common.DOCUMENTATION"))),1)]),(0,a._)("p",null,[ro,(0,a._)("a",ao,(0,o.zw)(e.$t("about.SOURCE_CODE")),1)]),(0,a._)("p",null,[oo,(0,a.Wm)(r,{keypath:"about.FITTRACKEE_LICENSE"},{default:(0,a.w5)((()=>[so])),_:1})]),(0,i.SU)(n).admin_contact?((0,a.wg)(),(0,a.iD)("div",io,[lo,(0,a._)("a",{href:`mailto:${(0,i.SU)(n).admin_contact}`},(0,o.zw)(e.$t("about.CONTACT_ADMIN")),9,co)])):(0,a.kq)("",!0)])])}}});const mo=(0,P.Z)(uo,[["__scopeId","data-v-74257266"]]);var _o=mo;const Eo={id:"bike"},So=["src"];function To(e,t){return(0,a.wg)(),(0,a.iD)("div",Eo,[(0,a._)("img",{class:"bike-img",src:"/img/bike.svg",alt:"mountain bike"},null,8,So)])}const po={},Ao=(0,P.Z)(po,[["render",To],["__scopeId","data-v-795f7f5f"]]);var Oo=Ao;const Ro={id:"about",class:"view"},Io={class:"container"},Uo={class:"container-sub"},go={class:"container-sub about-details"};var No=(0,a.aZ)({__name:"AboutView",setup(e){return(e,t)=>((0,a.wg)(),(0,a.iD)("div",Ro,[(0,a._)("div",Io,[(0,a._)("div",Uo,[(0,a.Wm)(Oo)]),(0,a._)("div",go,[(0,a.Wm)(_o)])])]))}});const zo=(0,P.Z)(No,[["__scopeId","data-v-bffb50d0"]]);var ho=zo,wo=n(1818),fo=n(2056);const vo=e=>((0,a.dD)("data-v-96abcc38"),e=e(),(0,a.Cn)(),e),Co={class:"timeline-workout"},Do={class:"box"},ko={class:"workout-user-date"},Po={class:"workout-user"},Lo=["title"],Mo={key:0},bo={key:1,class:"no-map"},yo={class:"img"},Go={class:"data"},Fo=vo((()=>(0,a._)("i",{class:"fa fa-clock-o","aria-hidden":"true"},null,-1))),Wo={key:0},Ko={class:"data"},Yo=vo((()=>(0,a._)("i",{class:"fa fa-road","aria-hidden":"true"},null,-1))),xo={key:0,class:"data elevation"},$o=["alt"],Bo={class:"data-values"},Zo={key:1,class:"data altitude"},Ho=vo((()=>(0,a._)("i",{class:"fa fa-location-arrow","aria-hidden":"true"},null,-1))),qo={class:"data-values"};var Vo=(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",Co,[(0,a._)("div",Do,[(0,a._)("div",ko,[(0,a._)("div",Po,[(0,a.Wm)(Le.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)(Ye.p6)((0,i.SU)(s).workout_date,(0,i.SU)(r).timezone,(0,i.SU)(r).date_format)},(0,o.zw)((0,i.SU)(wo.Z)(new Date((0,i.SU)(s).workout_date),new Date,{addSuffix:!0,locale:(0,i.SU)(m)})),9,Lo)):(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",Mo,[(0,i.SU)(s).with_gpx?((0,a.wg)(),(0,a.j4)(fo.Z,{key:0,workout:(0,i.SU)(s)},null,8,["workout"])):((0,a.wg)(),(0,a.iD)("div",bo,(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",yo,[(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",Go,[Fo,(0,i.SU)(s)?((0,a.wg)(),(0,a.iD)("span",Wo,(0,o.zw)((0,i.SU)(s).moving),1)):(0,a.kq)("",!0)]),(0,a._)("div",Ko,[Yo,(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",xo,[(0,a._)("img",{class:"mountains",src:"/img/workouts/mountains.svg",alt:e.$t("workouts.ELEVATION")},null,8,$o),(0,a._)("div",Bo,[(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),(0,a.Uk)("/ "),(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",Zo,[Ho,(0,a._)("div",qo,[(0,a.Uk)(" +"),(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),(0,a.Uk)("/- "),(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 jo=(0,P.Z)(Vo,[["__scopeId","data-v-96abcc38"]]);var Xo=jo,Jo=n(5630),Qo=n(3768);const es={id:"timeline"},ts={class:"section-title"},ns={key:0},rs={key:1},as={key:1,class:"more-workouts"};var os=(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)((()=>S()));const _=(0,a.Fl)((()=>n.getters[l.aX.GETTERS.TIMELINE_WORKOUTS])),E=(0,a.Fl)((()=>_.value.length>0&&null!==_.value[_.value.length-1].previous_workout));function S(){n.dispatch(l.aX.ACTIONS.GET_TIMELINE_WORKOUTS,{page:u.value,per_page:d,...Qo.eR})}function T(){u.value+=1,n.dispatch(l.aX.ACTIONS.GET_MORE_TIMELINE_WORKOUTS,{page:u.value,per_page:d,...Qo.eR})}return(e,t)=>((0,a.wg)(),(0,a.iD)("div",es,[(0,a._)("div",ts,(0,o.zw)(e.$t("workouts.LATEST_WORKOUTS")),1),(0,i.SU)(s).nb_workouts>0&&0===(0,i.SU)(_).length?((0,a.wg)(),(0,a.iD)("div",ns,[((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)(Xo,{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",rs,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,i.SU)(_),(e=>((0,a.wg)(),(0,a.j4)(Xo,{workout:e,sport:(0,i.SU)(_).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)(_).length?((0,a.wg)(),(0,a.j4)(Jo.Z,{key:0})):(0,a.kq)("",!0),(0,i.SU)(E)?((0,a.wg)(),(0,a.iD)("div",as,[(0,a._)("button",{onClick:T},(0,o.zw)(e.$t("workouts.LOAD_MORE_WORKOUT")),1)])):(0,a.kq)("",!0)]))]))}});const ss=(0,P.Z)(os,[["__scopeId","data-v-35567bf2"]]);var is=ss,ls=n(1640),cs=n(4559),us=n(7349),ds=n(1743),ms=n(9160),_s=n(1085);const Es=["title"];var Ss=(0,a.aZ)({__name:"CalendarWorkout",props:{displayHARecord:{type:Boolean},workout:null,sportLabel:null,sportColor:null},setup(e){const t=e,{displayHARecord:n,workout:r,sportLabel:o,sportColor:s}=(0,i.BK)(t);return(e,t)=>{const l=(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)(r).id}}))},[(0,a.Wm)(l,{"sport-label":(0,i.SU)(o),title:(0,i.SU)(r).title,color:(0,i.SU)(s)},null,8,["sport-label","title","color"]),(0,a._)("sup",null,[(0,i.SU)(r).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)(r).records.filter((e=>!!(0,i.SU)(n)||"HA"!==e.record_type)).map((t=>` ${e.$t(`workouts.RECORD_${t.record_type}`)}`))},null,8,Es)):(0,a.kq)("",!0)])])}}});const Ts=Ss;var ps=Ts;const As={class:"donut-chart"},Os={height:"34",width:"34",viewBox:"0 0 34 34"},Rs=["stroke","stroke-dashoffset","transform"];var Is=(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",As,[((0,a.wg)(),(0,a.iD)("svg",Os,[((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,Rs)])))),128))]))]))}});const Us=Is;var gs=Us;const Ns={class:"calendar-workouts-chart"},zs={class:"workouts-count"},hs={key:0,class:"workouts-pane"},ws={class:"more-workouts"};var fs=(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",Ns,[(0,a._)("div",{class:"workouts-chart",onClick:u},[(0,a._)("div",zs,(0,o.zw)((0,i.SU)(l).length),1),(0,a.Wm)(gs,{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",hs,[(0,a.wy)(((0,a.wg)(),(0,a.iD)("div",ws,[(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)(ps,{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 vs=(0,P.Z)(fs,[["__scopeId","data-v-52d4310a"]]);var Cs=vs;const Ds={class:"calendar-workouts"},ks={class:"desktop-display"},Ps={key:0,class:"workouts-display"},Ls={key:1,class:"donut-display"},Ms={class:"mobile-display"},bs={key:0,class:"donut-display"};var ys=(0,a.aZ)({__name:"CalendarWorkouts",props:{displayHARecord:{type:Boolean},workouts:null,sports:null},setup(e){const t=e,{displayHARecord:n,workouts:r,sports:o}=(0,i.BK)(t),s=(0,a.Fl)((()=>(0,Qo.BN)(t.workouts))),l=(0,a.Fl)((()=>(0,le.Yx)(t.sports))),c=6;return(e,t)=>((0,a.wg)(),(0,a.iD)("div",Ds,[(0,a._)("div",ks,[(0,i.SU)(r).length<=c?((0,a.wg)(),(0,a.iD)("div",Ps,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,i.SU)(r).slice(0,c),((e,t)=>((0,a.wg)(),(0,a.j4)(ps,{key:t,displayHARecord:(0,i.SU)(n),workout:e,sportLabel:(0,i.SU)(le.PA)(e,(0,i.SU)(o)),sportColor:(0,i.SU)(le.CM)(e,(0,i.SU)(o))},null,8,["displayHARecord","workout","sportLabel","sportColor"])))),128))])):((0,a.wg)(),(0,a.iD)("div",Ls,[(0,a.Wm)(Cs,{workouts:(0,i.SU)(r),sports:(0,i.SU)(o),datasets:(0,i.SU)(s),colors:(0,i.SU)(l)},null,8,["workouts","sports","datasets","colors"])]))]),(0,a._)("div",Ms,[(0,i.SU)(r).length>0?((0,a.wg)(),(0,a.iD)("div",bs,[(0,a.Wm)(Cs,{workouts:(0,i.SU)(r),sports:(0,i.SU)(o),datasets:(0,i.SU)(s),colors:(0,i.SU)(l)},null,8,["workouts","sports","datasets","colors"])])):(0,a.kq)("",!0)])]))}});const Gs=ys;var Fs=Gs;const Ws={class:"calendar-cells"},Ks={class:"calendar-cell-day"};var Ys=(0,a.aZ)({__name:"CalendarCells",props:{currentDay:null,displayHARecord:{type:Boolean},endDate:null,sports:null,startDate:null,timezone:null,weekStartingMonday:{type:Boolean},workouts:null},setup(e){const t=e,{currentDay:n,displayHARecord:r,endDate:s,sports:l,startDate:c,timezone:u,weekStartingMonday:d,workouts:m}=(0,i.BK)(t),_=(0,i.iH)([]);function E(){_.value=[];let e=c.value;while(e<=s.value){const t=[];for(let n=0;n<7;n++)t.push(e),e=(0,us.Z)(e,1);_.value.push(t)}}function S(e){return d.value?[5,6].includes(e):[0,6].includes(e)}function T(e,t){return t?t.filter((t=>(0,ds.Z)((0,Ye.eB)(t.workout_date,u.value),e))).reverse():[]}return(0,a.bv)((()=>E())),(0,a.YP)((()=>t.currentDay),(()=>E())),(e,t)=>((0,a.wg)(),(0,a.iD)("div",Ws,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)(_.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)(ms.Z)(e,(0,i.SU)(n)),"week-end":S(t),today:(0,i.SU)(_s.Z)(e)}]),key:t},[(0,a.Wm)(Fs,{workouts:T(e,(0,i.SU)(m)),sports:(0,i.SU)(l),displayHARecord:(0,i.SU)(r)},null,8,["workouts","sports","displayHARecord"]),(0,a._)("div",Ks,(0,o.zw)((0,i.SU)(jt.Z)(e,"d")),1)],2)))),128))])))),128))]))}});const xs=Ys;var $s=xs;const Bs={class:"calendar-days"};var Zs=(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,us.Z)(t.startDate,r));return(t,r)=>((0,a.wg)(),(0,a.iD)("div",Bs,[((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)(jt.Z)(t,"EEE",{locale:e.localeOptions})),1))),64))]))}});const Hs=Zs;var qs=Hs;const Vs={class:"calendar-header"},js=(0,a._)("i",{class:"fa fa-chevron-left","aria-hidden":"true"},null,-1),Xs=[js],Js={class:"calendar-month"},Qs=(0,a._)("i",{class:"fa fa-chevron-right","aria-hidden":"true"},null,-1),ei=[Qs];var ti=(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",Vs,[(0,a._)("div",{class:"calendar-arrow calendar-arrow-left",onClick:n[0]||(n[0]=e=>t("displayPreviousMonth"))},Xs),(0,a._)("div",Js,[(0,a._)("span",null,(0,o.zw)((0,i.SU)(jt.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"))},ei)]))}});const ni=ti;var ri=ni;const ai={id:"user-calendar"},oi={class:"calendar-card box"};var si=(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,Ye.yx)(u.value,t.user.weekm)),m=(0,a.Fl)((()=>n.getters[l.aX.GETTERS.CALENDAR_WORKOUTS])),_=(0,a.Fl)((()=>n.getters[l.SY.GETTERS.LOCALE]));function E(){d.value=(0,Ye.yx)(u.value,t.user.weekm);const e={from:(0,jt.Z)(d.value.start,s),to:(0,jt.Z)(d.value.end,s),page:1,per_page:100,...Qo.eR};n.dispatch(l.aX.ACTIONS.GET_CALENDAR_WORKOUTS,e)}function S(){u.value=(0,ls.Z)(u.value,1),E()}function T(){u.value=(0,cs.Z)(u.value,1),E()}return(0,a.wF)((()=>E())),(e,t)=>((0,a.wg)(),(0,a.iD)("div",ai,[(0,a._)("div",oi,[(0,a.Wm)(ri,{day:u.value,"locale-options":(0,i.SU)(_),onDisplayNextMonth:S,onDisplayPreviousMonth:T},null,8,["day","locale-options"]),(0,a.Wm)(qs,{"start-date":d.value.start,"locale-options":(0,i.SU)(_)},null,8,["start-date","locale-options"]),(0,a.Wm)($s,{currentDay:u.value,displayHARecord:(0,i.SU)(o).display_ascent,"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","displayHARecord","end-date","sports","start-date","timezone","workouts","weekStartingMonday"])])]))}});const ii=si;var li=ii,ci=n(3703),ui=n(4135),di=n(3170);const mi={class:"user-month-stats"};var _i=(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,ci.Z)(s),end:(0,ui.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",mi,[(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)(di.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 Ei=(0,P.Z)(_i,[["__scopeId","data-v-1bcddc12"]]);var Si=Ei,Ti=n(2540),pi=n(3649);const{locale:Ai}=Ti.Z.global,Oi=(e,t,n,r)=>{const a="km",o=n?pi.Dl[a].defaultTarget:a,s="m",i=n?pi.Dl[s].defaultTarget:s;let l;switch(e.record_type){case"AS":case"MS":l=`${(0,pi.sC)(+e.value,a,o,2)} ${o}/h`;break;case"FD":l=`${(0,pi.sC)(+e.value,a,o,3)} ${o}`;break;case"HA":l=`${(0,pi.sC)(+e.value,s,i,2)} ${i}`;break;case"LD":l=e.value;break;default:throw new Error(`Invalid record type, expected: "AS", "FD", "HA", "LD", "MD", got: "${e.record_type}"`)}return{workout_date:(0,Ye.p6)(e.workout_date,t,r,!1),workout_id:e.workout_id,id:e.id,record_type:e.record_type,value:l}},Ri=(e,t)=>{const n=e.label.toLowerCase(),r=t.label.toLowerCase();return n>r?1:n(o=(0,Ye.mh)(o,Ai.value),e.filter((e=>!!a||"HA"!==e.record_type)).reduce(((e,a)=>{const s=t.find((e=>e.id===a.sport_id));return s&&s.label&&(void 0===e[s.translatedLabel]&&(e[s.translatedLabel]={label:s.label,color:s.color,records:[]}),e[s.translatedLabel].records.push(Oi(a,n,r,o))),e}),{})),Ui={class:"records-card"},gi={class:"record-type"},Ni={class:"record-value"},zi={class:"record-date"};var hi=(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(Ri)}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",Ui,[(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",gi,(0,o.zw)(e.label),1),(0,a._)("span",Ni,(0,o.zw)(e.value),1),(0,a._)("span",zi,[(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 wi=(0,P.Z)(hi,[["__scopeId","data-v-8d17c606"]]);var fi=wi;const vi=e=>((0,a.dD)("data-v-f0c85cb8"),e=e(),(0,a.Cn)(),e),Ci={class:"user-records-section"},Di={class:"section-title"},ki=vi((()=>(0,a._)("i",{class:"fa fa-trophy custom-fa-small","aria-hidden":"true"},null,-1))),Pi={class:"user-records"},Li={key:0,class:"no-records"};var Mi=(0,a.aZ)({__name:"index",props:{sports:null,user:null},setup(e){const t=e,{t:n}=(0,ie.QT)(),r=(0,a.Fl)((()=>Ii(t.user.records,(0,le.xH)(t.sports,n),t.user.timezone,t.user.imperial_units,t.user.display_ascent,t.user.date_format)));return(t,n)=>((0,a.wg)(),(0,a.iD)("div",Ci,[(0,a._)("div",Di,[ki,(0,a.Uk)(" "+(0,o.zw)(t.$t("workouts.RECORD",2)),1)]),(0,a._)("div",Pi,[0===Object.keys((0,i.SU)(r)).length?((0,a.wg)(),(0,a.iD)("div",Li,(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)(fi,{sportTranslatedLabel:t,records:(0,i.SU)(r)[t],key:t,useImperialUnits:e.user.imperial_units},null,8,["sportTranslatedLabel","records","useImperialUnits"])))),128))])]))}});const bi=(0,P.Z)(Mi,[["__scopeId","data-v-f0c85cb8"]]);var yi=bi;const Gi={id:"user-stats"};var Fi=(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)((()=>E(o))),l="km",c=r.value.imperial_units?pi.Dl[l].defaultTarget:l,u=(0,a.Fl)((()=>r.value.imperial_units?(0,pi.sC)(r.value.total_distance,l,c,2):parseFloat(r.value.total_distance.toFixed(2)))),d="m",m=r.value.imperial_units?pi.Dl[d].defaultTarget:d,_=(0,a.Fl)((()=>r.value.imperial_units?(0,pi.sC)(r.value.total_ascent,d,m,2):parseFloat(r.value.total_ascent.toFixed(2))));function E(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",Gi,[(0,a.Wm)($,{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)($,{icon:"road",value:(0,i.SU)(u),text:"mi"===(0,i.SU)(c)?"miles":(0,i.SU)(c)},null,8,["value","text"]),(0,i.SU)(r).display_ascent?((0,a.wg)(),(0,a.j4)($,{key:0,icon:"location-arrow",value:(0,i.SU)(_),text:"ft"===(0,i.SU)(m)?"feet":(0,i.SU)(m)},null,8,["value","text"])):(0,a.kq)("",!0),(0,a.Wm)($,{icon:"clock-o",value:(0,i.SU)(s).days,text:(0,i.SU)(s).duration},null,8,["value","text"]),(0,i.SU)(r).display_ascent?(0,a.kq)("",!0):((0,a.wg)(),(0,a.j4)($,{key:1,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 Wi=Fi;var Ki=Wi;const Yi=e=>((0,a.dD)("data-v-4c0893c1"),e=e(),(0,a.Cn)(),e),xi={key:0,id:"dashboard",class:"view"},$i={class:"container mobile-menu"},Bi={class:"box"},Zi=Yi((()=>(0,a._)("i",{class:"fa fa-calendar","aria-hidden":"true"},null,-1))),Hi=[Zi],qi=Yi((()=>(0,a._)("i",{class:"fa fa-bar-chart","aria-hidden":"true"},null,-1))),Vi=[qi],ji=Yi((()=>(0,a._)("i",{class:"fa fa-map-o","aria-hidden":"true"},null,-1))),Xi=[ji],Ji=Yi((()=>(0,a._)("i",{class:"fa fa-trophy","aria-hidden":"true"},null,-1))),Qi=[Ji],el={class:"container"},tl={class:"container dashboard-container"},nl={class:"left-container dashboard-sub-container"},rl={class:"right-container dashboard-sub-container"},al=Yi((()=>(0,a._)("div",{id:"bottom"},null,-1))),ol={key:1,class:"app-loading"};var sl=(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(0,a.wF)((()=>t.dispatch(l.YN.ACTIONS.GET_USER_PROFILE))),(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",xi,[(0,a._)("div",$i,[(0,a._)("div",Bi,[(0,a._)("div",{class:(0,o.C_)(["mobile-menu-item",{"is-selected":"calendar"===s.value}]),onClick:t[0]||(t[0]=e=>u("calendar"))},Hi,2),(0,a._)("div",{class:(0,o.C_)(["mobile-menu-item",{"is-selected":"chart"===s.value}]),onClick:t[1]||(t[1]=e=>u("chart"))},Vi,2),(0,a._)("div",{class:(0,o.C_)(["mobile-menu-item",{"is-selected":"timeline"===s.value}]),onClick:t[2]||(t[2]=e=>u("timeline"))},Xi,2),(0,a._)("div",{class:(0,o.C_)(["mobile-menu-item",{"is-selected":"records"===s.value}]),onClick:t[3]||(t[3]=e=>u("records"))},Qi,2)])]),(0,a._)("div",el,[(0,a.Wm)(Ki,{user:(0,i.SU)(n)},null,8,["user"])]),(0,a._)("div",tl,[(0,a._)("div",nl,[(0,a.Wm)(Si,{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)(yi,{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",rl,[(0,a.Wm)(li,{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)(is,{sports:(0,i.SU)(r),user:(0,i.SU)(n),class:(0,o.C_)({"is-hidden":!("timeline"===s.value)})},null,8,["sports","user","class"])])]),al])):((0,a.wg)(),(0,a.iD)("div",ol,[(0,a.Wm)(l)]))}}});const il=(0,P.Z)(sl,[["__scopeId","data-v-4c0893c1"]]);var ll=il,cl=n(8273);const ul={class:"not-found view"};var dl=(0,a.aZ)({__name:"NotFoundView",setup(e){return(e,t)=>((0,a.wg)(),(0,a.iD)("div",ul,[(0,a.Wm)(cl.Z)]))}});const ml=dl;var _l=ml,El=n(2411);const Sl={id:"loginOrRegister",class:"view"},Tl={class:"container"},pl={class:"container-sub"},Al={class:"container-sub"};var Ol=(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",Sl,[(0,a._)("div",Tl,[(0,a._)("div",pl,[(0,a.Wm)(Oo)]),(0,a._)("div",Al,[(0,a.Wm)(El.Z,{action:(0,i.SU)(n)},null,8,["action"])])])]))}});const Rl=(0,P.Z)(Ol,[["__scopeId","data-v-6a38125b"]]);var Il=Rl;const Ul=e=>{const t=/(\/profile)(\/edit)*(\/*)/,n=e.replace(t,"").toUpperCase();return""===n?"PROFILE":n.toUpperCase()},gl=[{path:"/",name:"Dashboard",component:ll},{path:"/login",name:"Login",component:Il,props:{action:"login"}},{path:"/register",name:"Register",component:Il,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:Nt,props:e=>({tab:Ul(e.path)}),children:[{path:"",name:"UserInfos",component:zt.Z},{path:"preferences",name:"UserPreferences",component:Dt},{path:"sports",name:"UserSportPreferences",component:ja,props:{isEdition:!1}},{path:"apps",name:"UserApps",component:Xr,children:[{path:"",name:"UserAppsList",component:Ra},{path:":id",name:"UserApp",component:da},{path:":id/created",name:"CreatedUserApp",component:da,props:{afterCreation:!0}},{path:"new",name:"AddUserApp",component:Mr},{path:"authorize",name:"AuthorizeUserApp",component:Hr}]}]},{path:"edit",name:"UserProfileEdition",component:Mt,props:e=>({tab:Ul(e.path)}),children:[{path:"",name:"UserInfosEdition",component:Sn},{path:"account",name:"UserAccountEdition",component:Vt},{path:"picture",name:"UserPictureEdition",component:wn},{path:"preferences",name:"UserPreferencesEdition",component:ur},{path:"sports",name:"UserSportPreferencesEdition",component:ja,props:{isEdition:!0}}]}]},{path:"/statistics",name:"Statistics",component:()=>n.e(193).then(n.bind(n,7885))},{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,5651))},{path:"/workouts/:workoutId",name:"Workout",component:()=>n.e(401).then(n.bind(n,4915)),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,4915)),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:De},{path:"users/:username",name:"UserFromAdmin",component:()=>n.e(845).then(n.bind(n,9453)),props:{fromAdmin:!0}},{path:"users",name:"UsersAdministration",component:mt}]},{path:"/about",name:"About",component:ho},{path:"/:pathMatch(.*)*",name:"not-found",component:_l}],Nl=(0,r.p7)({history:(0,r.PO)("/"),routes:gl}),zl=["/login","/password-reset","/password-reset/password-updated","/password-reset/request","/password-reset/sent","/register","/account-confirmation","/account-confirmation/resend","/account-confirmation/email-sent"],hl=["/email-update","/about"];Nl.beforeEach(((e,t,n)=>{Xa.Z.dispatch(l.YN.ACTIONS.CHECK_AUTH_USER).then((()=>{if(hl.includes(e.path))return n();if(Xa.Z.getters[l.YN.GETTERS.IS_AUTHENTICATED]&&zl.includes(e.path))return n("/");if(Xa.Z.getters[l.YN.GETTERS.IS_AUTHENTICATED]||zl.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 wl=Nl},5801:function(e,t,n){"use strict";var r,a,o,s,i,l,c,u,d,m,_,E,S,T,p,A,O,R;n.d(t,{YN:function(){return z},Km:function(){return h},SY:function(){return U},O8:function(){return g},gu:function(){return N},RT:function(){return w},aX:function(){return f}}),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["AUTHORIZE_CLIENT"]="AUTHORIZE_CLIENT",e["CREATE_CLIENT"]="CREATE_CLIENT",e["DELETE_CLIENT"]="DELETE_CLIENT",e["GET_CLIENTS"]="GET_CLIENTS",e["GET_CLIENT_BY_CLIENT_ID"]="GET_CLIENT_BY_CLIENT_ID",e["GET_CLIENT_BY_ID"]="GET_CLIENT_BY_ID",e["REVOKE_ALL_TOKENS"]="REVOKE_ALL_TOKENS"}(s||(s={})),function(e){e["CLIENT"]="CLIENT",e["CLIENTS"]="CLIENTS",e["CLIENTS_PAGINATION"]="CLIENTS_PAGINATION",e["REVOCATION_SUCCESSFUL"]="REVOCATION_SUCCESSFUL"}(i||(i={})),function(e){e["EMPTY_CLIENT"]="EMPTY_CLIENT",e["SET_CLIENT"]="SET_CLIENT",e["SET_CLIENTS"]="SET_CLIENTS",e["SET_CLIENTS_PAGINATION"]="SET_CLIENTS_PAGINATION",e["SET_REVOCATION_SUCCESSFUL"]="SET_REVOCATION_SUCCESSFUL"}(l||(l={})),function(e){e["GET_APPLICATION_CONFIG"]="GET_APPLICATION_CONFIG",e["GET_APPLICATION_STATS"]="GET_APPLICATION_STATS",e["UPDATE_APPLICATION_CONFIG"]="UPDATE_APPLICATION_CONFIG",e["UPDATE_APPLICATION_LANGUAGE"]="UPDATE_APPLICATION_LANGUAGE"}(c||(c={})),function(e){e["APP_CONFIG"]="APP_CONFIG",e["APP_LOADING"]="APP_LOADING",e["APP_STATS"]="APP_STATS",e["ERROR_MESSAGES"]="ERROR_MESSAGES",e["LANGUAGE"]="LANGUAGE",e["LOCALE"]="LOCALE"}(u||(u={})),function(e){e["EMPTY_ERROR_MESSAGES"]="EMPTY_ERROR_MESSAGES",e["SET_ERROR_MESSAGES"]="SET_ERROR_MESSAGES",e["UPDATE_APPLICATION_CONFIG"]="UPDATE_APPLICATION_CONFIG",e["UPDATE_APPLICATION_LOADING"]="UPDATE_APPLICATION_LOADING",e["UPDATE_APPLICATION_STATS"]="UPDATE_APPLICATION_STATS",e["UPDATE_LANG"]="UPDATE_LANG"}(d||(d={})),function(e){e["GET_SPORTS"]="GET_SPORTS",e["UPDATE_SPORTS"]="UPDATE_SPORTS"}(m||(m={})),function(e){e["SPORTS"]="SPORTS"}(_||(_={})),function(e){e["SET_SPORTS"]="SET_SPORTS"}(E||(E={})),function(e){e["GET_USER_STATS"]="GET_USER_STATS"}(S||(S={})),function(e){e["USER_STATS"]="USER_STATS"}(T||(T={})),function(e){e["EMPTY_USER_STATS"]="EMPTY_USER_STATS",e["UPDATE_USER_STATS"]="UPDATE_USER_STATS"}(p||(p={})),function(e){e["EMPTY_USER"]="EMPTY_USER",e["EMPTY_USERS"]="EMPTY_USERS",e["GET_USER"]="GET_USER",e["GET_USERS"]="GET_USERS",e["UPDATE_USER"]="UPDATE_USER",e["DELETE_USER_ACCOUNT"]="DELETE_USER_ACCOUNT"}(A||(A={})),function(e){e["USER"]="USER",e["USERS"]="USERS",e["USERS_IS_SUCCESS"]="USERS_IS_SUCCESS",e["USERS_LOADING"]="USERS_LOADING",e["USERS_PAGINATION"]="USERS_PAGINATION"}(O||(O={})),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"}(R||(R={}));var I=n(52);const U={ACTIONS:c,GETTERS:u,MUTATIONS:d},g={ACTIONS:m,GETTERS:_,MUTATIONS:E},N={ACTIONS:S,GETTERS:T,MUTATIONS:p},z={ACTIONS:r,GETTERS:a,MUTATIONS:o},h={ACTIONS:s,GETTERS:i,MUTATIONS:l},w={ACTIONS:A,GETTERS:O,MUTATIONS:R},f={ACTIONS:I.tW,GETTERS:I.JP,MUTATIONS:I.CW}},2894:function(e,t,n){"use strict";n.d(t,{Z:function(){return me}});var r=n(3907),a=(n(7658),n(5167)),o=n(9669),s=n.n(o),i=n(8566),l=n(2024);const c=s().create({baseURL:(0,l.k)()});c.interceptors.request.use((e=>{const t=new AbortController;e.signal=t.signal;const n=(0,i.a)(e);return i.j.set(n,t),e}),(e=>Promise.reject(e))),c.interceptors.response.use((e=>((0,i.a)(e.config),e)),(e=>("canceled"!==e.message&&(0,i.a)(e.response.config),Promise.reject(e))));var u=c,d=n(5073),m=n(5801);const _=(e,t)=>{e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),a.Z["delete"](`users/${t.username}`).then((n=>{204===n.status?t.fromAdmin?d.Z.push("/admin/users"):e.dispatch(m.YN.ACTIONS.LOGOUT).then((()=>d.Z.push("/"))):(0,l.S)(e,null)})).catch((t=>(0,l.S)(e,t)))},E={[m.RT.ACTIONS.EMPTY_USER](e){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.RT.MUTATIONS.UPDATE_USER,{})},[m.RT.ACTIONS.EMPTY_USERS](e){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.RT.MUTATIONS.UPDATE_USERS,[]),e.commit(m.RT.MUTATIONS.UPDATE_USERS_PAGINATION,{})},[m.RT.ACTIONS.GET_USER](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.RT.MUTATIONS.UPDATE_USERS_LOADING,!0),a.Z.get(`users/${t}`).then((t=>{"success"===t.data.status?e.commit(m.RT.MUTATIONS.UPDATE_USER,t.data.data.users[0]):(0,l.S)(e,null)})).catch((t=>(0,l.S)(e,t))).finally((()=>e.commit(m.RT.MUTATIONS.UPDATE_USERS_LOADING,!1)))},[m.RT.ACTIONS.GET_USERS](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.RT.MUTATIONS.UPDATE_USERS_LOADING,!0),a.Z.get("users",{params:t}).then((t=>{"success"===t.data.status?(e.commit(m.RT.MUTATIONS.UPDATE_USERS,t.data.data.users),e.commit(m.RT.MUTATIONS.UPDATE_USERS_PAGINATION,t.data.pagination)):(0,l.S)(e,null)})).catch((t=>(0,l.S)(e,t))).finally((()=>e.commit(m.RT.MUTATIONS.UPDATE_USERS_LOADING,!1)))},[m.RT.ACTIONS.UPDATE_USER](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.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(m.RT.MUTATIONS.UPDATE_USER_IN_USERS,n.data.data.users[0]),(t.resetPassword||t.new_email)&&e.commit(m.RT.MUTATIONS.UPDATE_IS_SUCCESS,!0),(t.activate||t.new_email)&&e.commit(m.RT.MUTATIONS.UPDATE_USER,n.data.data.users[0])):(0,l.S)(e,null)})).catch((t=>(0,l.S)(e,t))).finally((()=>e.commit(m.RT.MUTATIONS.UPDATE_USERS_LOADING,!1)))},[m.RT.ACTIONS.DELETE_USER_ACCOUNT](e,t){_(e,{username:t.username,fromAdmin:!0})}},S=e=>{localStorage.removeItem("authToken"),e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.gu.MUTATIONS.EMPTY_USER_STATS),e.commit(m.YN.MUTATIONS.CLEAR_AUTH_USER_TOKEN),e.commit(m.RT.MUTATIONS.UPDATE_USERS,[]),e.commit(m.aX.MUTATIONS.EMPTY_WORKOUTS),e.commit(m.aX.MUTATIONS.EMPTY_WORKOUT),d.Z.push("/login")},T={[m.YN.ACTIONS.CHECK_AUTH_USER](e){window.localStorage.authToken&&!e.getters[m.YN.GETTERS.IS_AUTHENTICATED]&&(e.commit(m.YN.MUTATIONS.UPDATE_AUTH_TOKEN,window.localStorage.authToken),e.dispatch(m.YN.ACTIONS.GET_USER_PROFILE)),!window.localStorage.authToken&&e.getters[m.YN.GETTERS.IS_AUTHENTICATED]&&S(e)},[m.YN.ACTIONS.CONFIRM_ACCOUNT](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),u.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(m.YN.MUTATIONS.UPDATE_AUTH_TOKEN,n),e.dispatch(m.YN.ACTIONS.GET_USER_PROFILE).then((()=>d.Z.push("/")))}else(0,l.S)(e,null)})).catch((t=>{(0,l.S)(e,t)}))},[m.YN.ACTIONS.CONFIRM_EMAIL](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.YN.MUTATIONS.UPDATE_IS_SUCCESS,!1),u.post("/auth/email/update",{token:t.token}).then((n=>{"success"===n.data.status?(e.commit(m.YN.MUTATIONS.UPDATE_IS_SUCCESS,!0),t.refreshUser&&e.dispatch(m.YN.ACTIONS.GET_USER_PROFILE).then((()=>d.Z.push("/profile/edit/account"))),d.Z.push("/profile/edit/account")):(0,l.S)(e,null)})).catch((t=>{(0,l.S)(e,t)}))},[m.YN.ACTIONS.GET_USER_PROFILE](e){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),a.Z.get("auth/profile").then((t=>{"success"===t.data.status?(e.commit(m.YN.MUTATIONS.UPDATE_AUTH_USER_PROFILE,t.data.data),t.data.data.language&&e.dispatch(m.SY.ACTIONS.UPDATE_APPLICATION_LANGUAGE,t.data.data.language),e.dispatch(m.O8.ACTIONS.GET_SPORTS)):((0,l.S)(e,null),S(e))})).catch((t=>{"canceled"!==t.message&&((0,l.S)(e,t),S(e))}))},[m.YN.ACTIONS.LOGIN_OR_REGISTER](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.YN.MUTATIONS.UPDATE_IS_REGISTRATION_SUCCESS,!1),u.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(m.YN.MUTATIONS.UPDATE_AUTH_TOKEN,r),e.dispatch(m.YN.ACTIONS.GET_USER_PROFILE).then((()=>d.Z.push("string"===typeof t.redirectUrl?t.redirectUrl:"/")))}else d.Z.push("/login").then((()=>e.commit(m.YN.MUTATIONS.UPDATE_IS_REGISTRATION_SUCCESS,!0)));else(0,l.S)(e,null)})).catch((t=>(0,l.S)(e,t)))},[m.YN.ACTIONS.LOGOUT](e){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),a.Z.post("auth/logout").then((t=>{"success"===t.data.status?S(e):(0,l.S)(e,null)})).catch((t=>(0,l.S)(e,t)))},[m.YN.ACTIONS.UPDATE_USER_PROFILE](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!0),a.Z.post("auth/profile/edit",t).then((t=>{"success"===t.data.status?(e.commit(m.YN.MUTATIONS.UPDATE_AUTH_USER_PROFILE,t.data.data),d.Z.push("/profile")):(0,l.S)(e,null)})).catch((t=>(0,l.S)(e,t))).finally((()=>e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!1)))},[m.YN.ACTIONS.UPDATE_USER_ACCOUNT](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!0),e.commit(m.YN.MUTATIONS.UPDATE_IS_SUCCESS,!1),a.Z.patch("auth/profile/edit/account",t).then((t=>{"success"===t.data.status?(e.commit(m.YN.MUTATIONS.UPDATE_AUTH_USER_PROFILE,t.data.data),e.commit(m.YN.MUTATIONS.UPDATE_IS_SUCCESS,!0)):(0,l.S)(e,null)})).catch((t=>(0,l.S)(e,t))).finally((()=>e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!1)))},[m.YN.ACTIONS.UPDATE_USER_PREFERENCES](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!0),a.Z.post("auth/profile/edit/preferences",t).then((t=>{"success"===t.data.status?(e.commit(m.YN.MUTATIONS.UPDATE_AUTH_USER_PROFILE,t.data.data),e.dispatch(m.SY.ACTIONS.UPDATE_APPLICATION_LANGUAGE,t.data.data.language).then((()=>d.Z.push("/profile/preferences")))):(0,l.S)(e,null)})).catch((t=>(0,l.S)(e,t))).finally((()=>e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!1)))},[m.YN.ACTIONS.RESET_USER_SPORT_PREFERENCES](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!0),a.Z["delete"](`auth/profile/reset/sports/${t}`).then((t=>{204===t.status?e.dispatch(m.O8.ACTIONS.GET_SPORTS):(0,l.S)(e,null)})).catch((t=>{(0,l.S)(e,t),e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!1)}))},[m.YN.ACTIONS.UPDATE_USER_SPORT_PREFERENCES](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!0),a.Z.post("auth/profile/edit/sports",t).then((t=>{"success"===t.data.status?e.dispatch(m.O8.ACTIONS.GET_SPORTS):(0,l.S)(e,null)})).catch((t=>{(0,l.S)(e,t),e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!1)}))},[m.YN.ACTIONS.UPDATE_USER_PICTURE](e,t){if(e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.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(m.YN.ACTIONS.GET_USER_PROFILE).then((()=>d.Z.push("/profile"))):(0,l.S)(e,null)})).catch((t=>(0,l.S)(e,t))).finally((()=>e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!1)))},[m.YN.ACTIONS.DELETE_ACCOUNT](e,t){_(e,t)},[m.YN.ACTIONS.DELETE_PICTURE](e){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!0),a.Z["delete"]("auth/picture").then((t=>{204===t.status?e.dispatch(m.YN.ACTIONS.GET_USER_PROFILE).then((()=>d.Z.push("/profile"))):(0,l.S)(e,null)})).catch((t=>(0,l.S)(e,t))).finally((()=>e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!1)))},[m.YN.ACTIONS.SEND_PASSWORD_RESET_REQUEST](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),u.post("auth/password/reset-request",t).then((t=>{"success"===t.data.status?d.Z.push("/password-reset/sent"):(0,l.S)(e,null)})).catch((t=>(0,l.S)(e,t)))},[m.YN.ACTIONS.RESEND_ACCOUNT_CONFIRMATION_EMAIL](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),u.post("auth/account/resend-confirmation",t).then((t=>{"success"===t.data.status?d.Z.push("/account-confirmation/email-sent"):(0,l.S)(e,null)})).catch((t=>(0,l.S)(e,t)))},[m.YN.ACTIONS.RESET_USER_PASSWORD](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),u.post("auth/password/update",t).then((t=>{"success"===t.data.status?d.Z.push("/password-reset/password-updated"):(0,l.S)(e,null)})).catch((t=>(0,l.S)(e,t)))}},p={[m.YN.GETTERS.AUTH_TOKEN]:e=>e.authToken,[m.YN.GETTERS.AUTH_USER_PROFILE]:e=>e.authUserProfile,[m.YN.GETTERS.IS_AUTHENTICATED]:e=>null!==e.authToken,[m.YN.GETTERS.IS_ADMIN]:e=>e.authUserProfile&&e.authUserProfile.admin,[m.YN.GETTERS.IS_REGISTRATION_SUCCESS]:e=>e.isRegistrationSuccess,[m.YN.GETTERS.IS_SUCCESS]:e=>e.isSuccess,[m.YN.GETTERS.USER_LOADING]:e=>e.loading},A={[m.YN.MUTATIONS.CLEAR_AUTH_USER_TOKEN](e){e.authToken=null,e.authUserProfile={}},[m.YN.MUTATIONS.UPDATE_AUTH_TOKEN](e,t){e.authToken=t},[m.YN.MUTATIONS.UPDATE_AUTH_USER_PROFILE](e,t){e.authUserProfile=t},[m.YN.MUTATIONS.UPDATE_IS_REGISTRATION_SUCCESS](e,t){e.isRegistrationSuccess=t},[m.YN.MUTATIONS.UPDATE_IS_SUCCESS](e,t){e.isSuccess=t},[m.YN.MUTATIONS.UPDATE_USER_LOADING](e,t){e.loading=t}},O={authToken:null,authUserProfile:{},isSuccess:!1,isRegistrationSuccess:!1,loading:!1},R={state:O,actions:T,getters:p,mutations:A};var I=R;const U=(e,t)=>{e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),a.Z.get(t).then((t=>{"success"===t.data.status?e.commit(m.Km.MUTATIONS.SET_CLIENT,t.data.data.client):(0,l.S)(e,null)})).catch((t=>(0,l.S)(e,t)))},g={[m.Km.ACTIONS.AUTHORIZE_CLIENT](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES);const n=new FormData;n.set("client_id",t.client_id),n.set("response_type",t.response_type),n.set("scope",t.scope),n.set("confirm","true"),t.state&&n.set("state",t.state),t.code_challenge&&n.set("code_challenge",t.code_challenge),t.code_challenge_method&&n.set("code_challenge_method",t.code_challenge_method),a.Z.post("oauth/authorize",n,{headers:{"Content-Type":"multipart/form-data"}}).then((t=>{200==t.status&&t.data.redirect_url?window.location.href=t.data.redirect_url:(0,l.S)(e,null)})).catch((t=>(0,l.S)(e,t)))},[m.Km.ACTIONS.CREATE_CLIENT](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),a.Z.post("oauth/apps",t).then((t=>{"created"===t.data.status?(e.commit(m.Km.MUTATIONS.SET_CLIENT,t.data.data.client),d.Z.push(`/profile/apps/${t.data.data.client.id}/created`)):(0,l.S)(e,null)})).catch((t=>(0,l.S)(e,t)))},[m.Km.ACTIONS.DELETE_CLIENT](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),a.Z["delete"](`oauth/apps/${t}`).then((t=>{204===t.status?e.dispatch(m.Km.ACTIONS.GET_CLIENTS).then((()=>d.Z.push("/profile/apps"))):(0,l.S)(e,null)})).catch((t=>(0,l.S)(e,t)))},[m.Km.ACTIONS.GET_CLIENT_BY_CLIENT_ID](e,t){U(e,`oauth/apps/${t}`)},[m.Km.ACTIONS.GET_CLIENT_BY_ID](e,t){U(e,`oauth/apps/${t}/by_id`)},[m.Km.ACTIONS.GET_CLIENTS](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),a.Z.get("oauth/apps",{params:t}).then((t=>{"success"===t.data.status?(e.commit(m.Km.MUTATIONS.SET_CLIENTS,t.data.data.clients),e.commit(m.Km.MUTATIONS.SET_CLIENTS_PAGINATION,t.data.pagination)):(0,l.S)(e,null)})).catch((t=>(0,l.S)(e,t)))},[m.Km.ACTIONS.REVOKE_ALL_TOKENS](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.Km.MUTATIONS.SET_REVOCATION_SUCCESSFUL,!1),a.Z.post(`oauth/apps/${t}/revoke`).then((t=>{"success"===t.data.status?e.commit(m.Km.MUTATIONS.SET_REVOCATION_SUCCESSFUL,!0):(0,l.S)(e,null)})).catch((t=>(0,l.S)(e,t)))}},N={[m.Km.GETTERS.CLIENT]:e=>e.client,[m.Km.GETTERS.CLIENTS]:e=>e.clients,[m.Km.GETTERS.CLIENTS_PAGINATION]:e=>e.pagination,[m.Km.GETTERS.REVOCATION_SUCCESSFUL]:e=>e.revocationSuccessful},z={[m.Km.MUTATIONS.SET_CLIENT](e,t){e.client=t},[m.Km.MUTATIONS.EMPTY_CLIENT](e){e.client={}},[m.Km.MUTATIONS.SET_CLIENTS](e,t){e.clients=t},[m.Km.MUTATIONS.SET_CLIENTS_PAGINATION](e,t){e.pagination=t},[m.Km.MUTATIONS.SET_REVOCATION_SUCCESSFUL](e,t){e.revocationSuccessful=t}},h={client:{},clients:[],pagination:{},revocationSuccessful:!1},w={state:h,actions:g,getters:N,mutations:z};var f=w,v=n(2540);const{locale:C}=v.Z.global,D={[m.SY.ACTIONS.GET_APPLICATION_CONFIG](e){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.SY.MUTATIONS.UPDATE_APPLICATION_LOADING,!0),a.Z.get("config").then((t=>{"success"===t.data.status?e.commit(m.SY.MUTATIONS.UPDATE_APPLICATION_CONFIG,t.data.data):(0,l.S)(e,null)})).catch((t=>(0,l.S)(e,t))).finally((()=>e.commit(m.SY.MUTATIONS.UPDATE_APPLICATION_LOADING,!1)))},[m.SY.ACTIONS.GET_APPLICATION_STATS](e){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),a.Z.get("stats/all").then((t=>{"success"===t.data.status?e.commit(m.SY.MUTATIONS.UPDATE_APPLICATION_STATS,t.data.data):(0,l.S)(e,null)})).catch((t=>(0,l.S)(e,t)))},[m.SY.ACTIONS.UPDATE_APPLICATION_CONFIG](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),a.Z.patch("config",t).then((t=>{"success"===t.data.status?(e.commit(m.SY.MUTATIONS.UPDATE_APPLICATION_CONFIG,t.data.data),d.Z.push("/admin/application")):(0,l.S)(e,null)})).catch((t=>(0,l.S)(e,t)))},[m.SY.ACTIONS.UPDATE_APPLICATION_LANGUAGE](e,t){document.querySelector("html")?.setAttribute("lang",t),e.commit(m.SY.MUTATIONS.UPDATE_LANG,t),C.value=t}},k={[m.SY.GETTERS.APP_CONFIG]:e=>e.application.config,[m.SY.GETTERS.APP_LOADING]:e=>e.appLoading,[m.SY.GETTERS.APP_STATS]:e=>e.application.statistics,[m.SY.GETTERS.ERROR_MESSAGES]:e=>e.errorMessages,[m.SY.GETTERS.LANGUAGE]:e=>e.language,[m.SY.GETTERS.LOCALE]:e=>e.locale};var P=n(6287);const L={[m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES](e){e.errorMessages=null},[m.SY.MUTATIONS.SET_ERROR_MESSAGES](e,t){e.errorMessages=t},[m.SY.MUTATIONS.UPDATE_APPLICATION_CONFIG](e,t){e.application.config=t},[m.SY.MUTATIONS.UPDATE_APPLICATION_LOADING](e,t){e.appLoading=t},[m.SY.MUTATIONS.UPDATE_APPLICATION_STATS](e,t){e.application.statistics=t},[m.SY.MUTATIONS.UPDATE_LANG](e,t){e.language=t,e.locale=P.v1[t]}};var M=n(5826);const b={root:!0,language:"en",locale:M.Z,errorMessages:null,application:{statistics:{sports:0,uploads_dir_size:0,users:0,workouts:0}},appLoading:!1},y={[m.O8.ACTIONS.GET_SPORTS](e){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),a.Z.get("sports").then((t=>{"success"===t.data.status?(e.commit(m.O8.MUTATIONS.SET_SPORTS,t.data.data.sports),e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!1)):(0,l.S)(e,null)})).catch((t=>(0,l.S)(e,t)))},[m.O8.ACTIONS.UPDATE_SPORTS](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),a.Z.patch(`sports/${t.id}`,{is_active:t.isActive}).then((t=>{"success"===t.data.status?e.dispatch(m.O8.ACTIONS.GET_SPORTS):(0,l.S)(e,null)})).catch((t=>(0,l.S)(e,t)))}},G={[m.O8.GETTERS.SPORTS]:e=>e.sports},F={[m.O8.MUTATIONS.SET_SPORTS](e,t){e.sports=t}},W={sports:[]},K={state:W,actions:y,getters:G,mutations:F};var Y=K;const x={[m.gu.ACTIONS.GET_USER_STATS](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),a.Z.get(`stats/${t.username}/${t.filterType}`,{params:t.params}).then((t=>{"success"===t.data.status?e.commit(m.gu.MUTATIONS.UPDATE_USER_STATS,t.data.data.statistics):(0,l.S)(e,null)})).catch((t=>(0,l.S)(e,t)))}},$={[m.gu.GETTERS.USER_STATS]:e=>e.statistics},B={[m.gu.MUTATIONS.UPDATE_USER_STATS](e,t){e.statistics=t},[m.gu.MUTATIONS.EMPTY_USER_STATS](e){e.statistics={}}},Z={statistics:{}},H={state:Z,actions:x,getters:$,mutations:B};var q=H;const V={[m.RT.GETTERS.USER]:e=>e.user,[m.RT.GETTERS.USERS]:e=>e.users,[m.RT.GETTERS.USERS_IS_SUCCESS]:e=>e.isSuccess,[m.RT.GETTERS.USERS_LOADING]:e=>e.loading,[m.RT.GETTERS.USERS_PAGINATION]:e=>e.pagination},j={[m.RT.MUTATIONS.UPDATE_USER](e,t){e.user=t},[m.RT.MUTATIONS.UPDATE_USER_IN_USERS](e,t){e.users=e.users.map((e=>e.username===t.username?t:e))},[m.RT.MUTATIONS.UPDATE_USERS](e,t){e.users=t},[m.RT.MUTATIONS.UPDATE_USERS_LOADING](e,t){e.loading=t},[m.RT.MUTATIONS.UPDATE_USERS_PAGINATION](e,t){e.pagination=t},[m.RT.MUTATIONS.UPDATE_IS_SUCCESS](e,t){e.isSuccess=t}},X={user:{},users:[],loading:!1,isSuccess:!1,pagination:{}},J={state:X,actions:E,getters:V,mutations:j};var Q=J,ee=n(52);const te=(e,t,n)=>{e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),a.Z.get("workouts",{params:t}).then((t=>{"success"===t.data.status?(e.commit(m.aX.MUTATIONS[n],t.data.data.workouts),n===ee.CW.SET_USER_WORKOUTS&&e.commit(m.aX.MUTATIONS.SET_WORKOUTS_PAGINATION,t.data.pagination)):(0,l.S)(e,null)})).catch((t=>(0,l.S)(e,t)))},ne={[m.aX.ACTIONS.GET_CALENDAR_WORKOUTS](e,t){e.commit(m.aX.MUTATIONS.EMPTY_CALENDAR_WORKOUTS),te(e,t,ee.CW.SET_CALENDAR_WORKOUTS)},[m.aX.ACTIONS.GET_USER_WORKOUTS](e,t){te(e,t,ee.CW.SET_USER_WORKOUTS)},[m.aX.ACTIONS.GET_TIMELINE_WORKOUTS](e,t){te(e,t,ee.CW.SET_TIMELINE_WORKOUTS)},[m.aX.ACTIONS.GET_MORE_TIMELINE_WORKOUTS](e,t){te(e,t,ee.CW.ADD_TIMELINE_WORKOUTS)},[m.aX.ACTIONS.GET_WORKOUT_DATA](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.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(m.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(m.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(m.aX.MUTATIONS.SET_WORKOUT_GPX,t.data.data.gpx)})))}else e.commit(m.aX.MUTATIONS.EMPTY_WORKOUT),(0,l.S)(e,null)})).catch((t=>{e.commit(m.aX.MUTATIONS.EMPTY_WORKOUT),(0,l.S)(e,t)})).finally((()=>e.commit(m.aX.MUTATIONS.SET_WORKOUT_LOADING,!1)))},[m.aX.ACTIONS.DELETE_WORKOUT](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.aX.MUTATIONS.SET_WORKOUT_LOADING,!0),a.Z["delete"](`workouts/${t.workoutId}`).then((()=>{e.commit(m.aX.MUTATIONS.EMPTY_WORKOUT),e.dispatch(m.YN.ACTIONS.GET_USER_PROFILE),d.Z.push("/")})).catch((t=>{(0,l.S)(e,t)})).finally((()=>e.commit(m.aX.MUTATIONS.SET_WORKOUT_LOADING,!1)))},[m.aX.ACTIONS.EDIT_WORKOUT](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.aX.MUTATIONS.SET_WORKOUT_LOADING,!0),a.Z.patch(`workouts/${t.workoutId}`,t.data).then((()=>{e.dispatch(m.YN.ACTIONS.GET_USER_PROFILE),e.dispatch(m.aX.ACTIONS.GET_WORKOUT_DATA,{workoutId:t.workoutId}).then((()=>{d.Z.push({name:"Workout",params:{workoutId:t.workoutId}})}))})).catch((t=>{(0,l.S)(e,t)})).finally((()=>e.commit(m.aX.MUTATIONS.SET_WORKOUT_LOADING,!1)))},[m.aX.ACTIONS.ADD_WORKOUT](e,t){if(e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.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(m.YN.ACTIONS.GET_USER_PROFILE);const n=t.data.data.workouts[0];d.Z.push(1===t.data.data.workouts.length?`/workouts/${n.id}`:"/")}})).catch((t=>{(0,l.S)(e,t)})).finally((()=>e.commit(m.aX.MUTATIONS.SET_WORKOUT_LOADING,!1)))},[m.aX.ACTIONS.ADD_WORKOUT_WITHOUT_GPX](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.aX.MUTATIONS.SET_WORKOUT_LOADING,!0),a.Z.post("workouts/no_gpx",t).then((t=>{if("created"===t.data.status){e.dispatch(m.YN.ACTIONS.GET_USER_PROFILE);const n=t.data.data.workouts[0];d.Z.push(`/workouts/${n.id}`)}})).catch((t=>{(0,l.S)(e,t)})).finally((()=>e.commit(m.aX.MUTATIONS.SET_WORKOUT_LOADING,!1)))}},re={[m.aX.GETTERS.CALENDAR_WORKOUTS]:e=>e.calendar_workouts,[m.aX.GETTERS.TIMELINE_WORKOUTS]:e=>e.timeline_workouts,[m.aX.GETTERS.USER_WORKOUTS]:e=>e.user_workouts,[m.aX.GETTERS.WORKOUT_DATA]:e=>e.workoutData,[m.aX.GETTERS.WORKOUTS_PAGINATION]:e=>e.pagination},ae={[m.aX.MUTATIONS.ADD_TIMELINE_WORKOUTS](e,t){e.timeline_workouts=e.timeline_workouts.concat(t)},[m.aX.MUTATIONS.SET_CALENDAR_WORKOUTS](e,t){e.calendar_workouts=t},[m.aX.MUTATIONS.SET_TIMELINE_WORKOUTS](e,t){e.timeline_workouts=t},[m.aX.MUTATIONS.SET_USER_WORKOUTS](e,t){e.user_workouts=t},[m.aX.MUTATIONS.SET_WORKOUTS_PAGINATION](e,t){e.pagination=t},[m.aX.MUTATIONS.SET_WORKOUT](e,t){e.workoutData.workout=t},[m.aX.MUTATIONS.SET_WORKOUT_CHART_DATA](e,t){e.workoutData.chartData=t},[m.aX.MUTATIONS.SET_WORKOUT_GPX](e,t){e.workoutData.gpx=t},[m.aX.MUTATIONS.SET_WORKOUT_LOADING](e,t){e.workoutData.loading=t},[m.aX.MUTATIONS.EMPTY_CALENDAR_WORKOUTS](e){e.calendar_workouts=[]},[m.aX.MUTATIONS.EMPTY_WORKOUTS](e){e.calendar_workouts=[],e.user_workouts=[],e.timeline_workouts=[]},[m.aX.MUTATIONS.EMPTY_WORKOUT](e){e.workoutData={gpx:"",loading:!1,workout:{},chartData:[]}}},oe={calendar_workouts:[],timeline_workouts:[],pagination:{},user_workouts:[],workoutData:{gpx:"",loading:!1,workout:{},chartData:[]}},se={state:oe,actions:ne,getters:re,mutations:ae};var ie=se;const le={authUserModule:I,oAuthModule:f,sportsModule:Y,statsModule:q,usersModule:Q,workoutsModule:ie},ce={state:b,actions:D,getters:k,mutations:L,modules:le};var ue=ce;const de=(0,r.MT)(ue);var me=de},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,{Hf:function(){return a},Ne:function(){return c},fS:function(){return r},lM:function(){return d},pm:function(){return l},z_:function(){return s}});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}"`)}},p=(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}"`)}},A=(e,t)=>(0,m.utcToZonedTime)(new Date(e),t),O=(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})}},R=(e,t=null,n=null)=>(t||(t="yyyy/MM/dd"),t=g(t,S.value),n||(n="HH:mm"),{workout_date:(0,d.Z)(e,t,{locale:E.v1[S.value]}),workout_time:(0,d.Z)(e,n)}),I=["MM/dd/yyyy","dd/MM/yyyy","yyyy-MM-dd","date_string"],U={de:"do MMM yyyy",en:"MMM. do, yyyy",fr:"d MMM yyyy"},g=(e,t)=>"date_string"===e?U[t]:e,N=(e,t,n,r=!0,a=null)=>(a||(a=S.value),(0,d.Z)(A(e,t),`${g(n,a)}${r?" HH:mm":""}`,{locale:E.v1[a]})),z=(e,t,n=null)=>{const r=n||S.value,a=[];return I.map((n=>{const o=g(n,r);a.push({label:`${o} - ${N(e,t,o,!1,r)}`,value:n})})),a}},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}});var r=n(5801);const a=()=>"/api/",o=(e,t,n="UNKNOWN")=>{if(t&&"canceled"===t.message)return;if(401===t?.response?.status&&"invalid_token"===t.response.data.error)return localStorage.removeItem("authToken"),void e.dispatch(r.YN.ACTIONS.CHECK_AUTH_USER);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}});const r={"Cycling (Sport)":"#4c9792","Cycling (Transport)":"#88af98","Cycling (Virtual)":"#64a360",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 C},aZ:function(){return v},v1:function(){return f}});n(7658);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),_=n(7982),E=n(3500),S=n(1640),T=n(2540),p=n(6558),A=n(6287),O=n(631),R=n(3649);const{locale:I}=T.Z.global,U={week:{api:"yyyy-MM-dd",chart:"MM/dd/yyyy"},month:{api:"yyyy-MM",chart:"MM/yyyy"},year:{api:"yyyy",chart:"yyyy"}},g=["average_speed","nb_workouts","total_duration","total_distance","total_ascent","total_descent"],N=(e,t)=>{const n=[];for(let r=(0,p.Nh)(e.duration,e.start,t);r<=e.end;r=(0,p.xA)(e.duration,r))n.push(r);return n},z=(e,t,n=!1)=>{const r={label:e,backgroundColor:[t],data:[]};return n&&(r.type="line",r.borderColor=[t],r.spanGaps=!0),r},h=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:O.Zo[e.label];t.average_speed.push(z(e.label,n,!0)),t.nb_workouts.push(z(e.label,n)),t.total_distance.push(z(e.label,n)),t.total_duration.push(z(e.label,n)),t.total_ascent.push(z(e.label,n)),t.total_descent.push(z(e.label,n))})),t},w=(e,t,n)=>{switch(e){case"average_speed":case"total_distance":case"total_ascent":case"total_descent":return(0,R.f3)(["average_speed","total_distance"].includes(e)?"km":"m",t,n);default:case"nb_workouts":case"total_duration":return t}},f=(e,t,n,a,o,s,i)=>{const l=N(e,t),c=U[e.duration],u=n.filter((e=>a.includes(e.id))),d=[],m=h(u),_={};return u.map((e=>_[e.label]=e.id)),l.map((t=>{const n=(0,r.Z)(t,c.api),a=(0,r.Z)(t,"week"===e.duration?(0,p.mh)(i,I.value):c.chart,{locale:A.v1[I.value]});d.push(a),g.map((e=>{m[e].map((t=>{t.data.push(n in o&&_[t.label]in o[n]?w(e,o[n][_[t.label]][e],s):"average_speed"===e?null:0)}))}))})),{labels:d,datasets:m}},v=(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)),_="year"===t?(0,c.Z)(e):"week"===t?(0,u.Z)(e,{weekStartsOn:r}):(0,d.Z)(e);return{duration:t,end:_,start:m}},C=(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,_.Z)(p,1):(0,E.Z)(p,1),{weekStartsOn:A}):(0,d.Z)(t?(0,i.Z)(p,1):(0,S.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,_.Z)(T,1):(0,E.Z)(T,1),{weekStartsOn:A}):(0,l.Z)(t?(0,i.Z)(T,1):(0,S.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}});n(7658);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 _=(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:_,query:E,sort:S,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)(_),(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)(S),(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 S=(0,E.Z)(_,[["__scopeId","data-v-72463173"]]);var T=S},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(7658),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),o=(0,a.iH)(),s=(0,a.iH)(!1);function i(){o.value=setTimeout((()=>{s.value=!0}),500)}return(0,r.bv)((()=>i())),(0,r.Ah)((()=>{o.value&&clearTimeout(o.value)})),(e,t)=>s.value?((0,r.wg)(),(0,r.j4)(d,{key:0,title:"404",message:e.$t(`error.NOT_FOUND.${(0,a.SU)(n)}`),"button-text":e.$t("common.HOME")},null,8,["message","button-text"])):(0,r.kq)("",!0)}});const _=m;var E=_},5020: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-3a9a4a65"),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 _=(0,r.aZ)({__name:"Pagination",props:{pagination:null,path:null,query:null},setup(e){const t=e,{pagination:n,path:i,query:_}=(0,o.BK)(t);function E(e,t){const n=Object.assign({},_.value);return n.page=t?e+t:e,n}return(e,t)=>{const _=(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)(_,{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)(_,{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)(_,{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 S=(0,E.Z)(_,[["__scopeId","data-v-3a9a4a65"]]);var T=S},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(4366),l=n(5801),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=await n.e(881).then(n.bind(n,8056)),s={de:o,en:r,fr:a,nb:r},l=s[e],c={graphs:t.default.adjacencyGraphs,dictionary:{...t.default.dictionary,...l.default.dictionary}};i.Mu.setOptions(c)},d=e=>{switch(e){case 2:return"AVERAGE";case 3:return"GOOD";case 4:return"STRONG";default:return"WEAK"}},m={class:"password-strength"},_=["value"],E={key:0,class:"password-strength-details"},S={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])),R=(0,a.iH)(0),I=(0,a.iH)(""),U=(0,a.iH)([]),g=(0,a.iH)("0% 100%");function N(e){const t=(0,i.tu)(e);R.value=t.score,I.value=d(R.value),U.value=t.feedback.suggestions,g.value=100*R.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?I.value="":N(e)})),(e,t)=>((0,r.wg)(),(0,r.iD)("div",m,[(0,r._)("input",{class:(0,s.C_)(["password-slider",`strength-${R.value}`]),style:(0,s.j5)({backgroundSize:g.value}),type:"range",value:R.value,min:"0",max:"4",step:"1"},null,14,_),I.value?((0,r.wg)(),(0,r.iD)("div",E,[(0,r._)("span",S,(0,s.zw)(e.$t("user.PASSWORD_STRENGTH.LABEL"))+": "+(0,s.zw)(e.$t(`user.PASSWORD_STRENGTH.${I.value}`)),1),U.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)(U.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 R=(0,O.Z)(A,[["__scopeId","data-v-74e71df5"]]);var I=R;const U=e=>((0,r.dD)("data-v-5a126514"),e=e(),(0,r.Cn)(),e),g={class:"password-input"},N=["id","disabled","placeholder","required","type"],z={key:0,class:"form-info"},h=U((()=>(0,r._)("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1)));var w=(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),_=(0,a.iH)(!1),E=(0,a.iH)("");function S(){_.value=!_.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",g,[(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:_.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:S},[(0,r.Uk)((0,s.zw)(e.$t(`user.${_.value?"HIDE":"SHOW"}_PASSWORD`))+" ",1),(0,r._)("i",{class:(0,s.C_)(["fa","fa-eye"+(_.value?"-slash":"")]),"aria-hidden":"true"},null,2)]),(0,a.SU)(i)?((0,r.wg)(),(0,r.iD)("div",z,[h,(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)(I,{key:1,password:E.value},null,8,["password"])):(0,r.kq)("",!0)]))}});const f=(0,O.Z)(w,[["__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},3170: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},_=["checked"],E={key:1},S=["checked"],T={key:2},p=["checked"];function A(e,t,n,A,O,R){const I=(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,_),(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,S),(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)(I,{key:0,datasets:e.datasets,labels:e.labels,displayedData:e.displayedData,displayedSportIds:e.displayedSportIds,fullStats:e.fullStats,useImperialUnits:e.user.imperial_units},null,8,["datasets","labels","displayedData","displayedSportIds","fullStats","useImperialUnits"])):(0,r.kq)("",!0)]))])}var O=n(4850),R=n(2262);const I={class:"chart"};function U(e,t,n,a,o,s){const i=(0,r.up)("BarChart");return(0,r.wg)(),(0,r.iD)("div",I,[(0,r.Wm)(i,(0,r.dG)(e.barChartProps,{class:"bar-chart"}),null,16)])}var g=n(6518),N=n(9150);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 h=n(3649);const w=(e,t,n,r=!0,a="km")=>{const o=n?h.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":case"total_ascent":case"total_descent":return`${t.toFixed(2)} ${o}`;default:return t.toString()}};var f=(0,r.aZ)({name:"Chart",components:{BarChart:g.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)}function o(e){return["total_ascent","total_descent"].includes(e)?"m":"km"}const s=(0,r.Fl)((()=>({labels:e.labels,datasets:JSON.parse(JSON.stringify(e.datasets))}))),i=(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 w(e.displayedData,+t,e.useImperialUnits,!1,o(e.displayedData))}},afterFit:function(t){t.width=e.fullStats?90: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 w(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?w(e.displayedData,t,e.useImperialUnits,!1,o(e.displayedData)):null}}},legend:{display:!1},tooltip:{interaction:{intersect:!0,mode:"index",position:"average_speed"===e.displayedData?"nearest":"average"},filter:function(e){return"0"!==e.formattedValue},callbacks:{label:function(n){let r=t(`sports.${n.dataset.label}.LABEL`)||"";return r&&(r+=": "),null!==n.parsed.y&&(r+=w(e.displayedData,n.parsed.y,e.useImperialUnits,!0,o(e.displayedData))),r},footer:function(n){if("average_speed"===e.displayedData)return"";let r=0;return n.map((e=>{r+=e.parsed.y})),`${t("common.TOTAL")}: `+w(e.displayedData,r,e.useImperialUnits,!0,o(e.displayedData))}}}}}))),{barChartProps:l}=(0,g.xZ)({chartData:s,options:i});return{barChartProps:l}}}),v=n(3744);const C=(0,v.Z)(f,[["render",U]]);var D=C,k=n(5801),P=n(9917),L=n(9318),M=(0,r.aZ)({name:"UserMonthStats",components:{Chart:D},props:{sports:{type:Object,required:!0},user:{type:Object,required:!0},chartParams:{type:Object,required:!0},displayedSportIds:{type:Array,default:()=>[]},fullStats:{type:Boolean,default:!1},hideChartIfNoData:{type:Boolean,default:!1}},setup(e){const t=(0,P.o)(),n=(0,R.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,e.user.date_format)));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-d5e9b348"]]);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(5801),l=n(9917);const c={class:"box user-header"},u={class:"user-details"},d={class:"user-name"},m={class:"user-stats"},_={class:"user-stat"},E={class:"stat-number"},S={class:"stat-label"},T={class:"user-stat"},p={class:"stat-label"},A={class:"user-stat hide-small"},O={class:"stat-number"},R={class:"stat-label"};var I=(0,r.aZ)({__name:"UserHeader",props:{user:null},setup(e){const t=e,{user:n}=(0,a.BK)(t),I=(0,l.o)(),U=(0,r.Fl)((()=>I.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",_,[(0,r._)("span",E,(0,o.zw)((0,a.SU)(n).nb_workouts),1),(0,r._)("span",S,(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)(U).imperial_units},null,8,["distance","useImperialUnits"]),(0,r._)("span",p,(0,o.zw)((0,a.SU)(U).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",R,(0,o.zw)(e.$t("workouts.SPORT",(0,a.SU)(n).nb_sports)),1)])])])])}}}),U=n(3744);const g=(0,U.Z)(I,[["__scopeId","data-v-20291951"]]);var N=g},1585:function(e,t,n){"use strict";n.d(t,{Z:function(){return f}});n(7658);var r=n(6252),a=n(2262),o=n(3577),s=n(9963),i=n(4850),l=n(5801),c=n(9917),u=n(6558),d=n(6287);const m={id:"user-infos",class:"description-list"},_={key:1,class:"info-box success-message"},E={key:4,class:"email-form form-box"},S={class:"form-items",for:"email"},T={class:"form-items",for:"email"},p={class:"form-buttons"},A={class:"confirm",type:"submit"},O=["onClick"],R={key:5},I={class:"user-bio"},U={key:0,class:"profile-buttons"},g=["onClick"],N={key:1,class:"profile-buttons"};var z=(0,r.aZ)({__name:"UserInfos",props:{user:null,fromAdmin:{type:Boolean,default:!1}},setup(e){const t=e,n=(0,c.o)(),{user:z,fromAdmin:h}=(0,a.BK)(t),w=(0,r.Fl)((()=>n.getters[l.SY.GETTERS.LANGUAGE])),f=(0,r.Fl)((()=>n.getters[l.YN.GETTERS.AUTH_USER_PROFILE])),v=(0,r.Fl)((()=>t.user.created_at?(0,u.p6)(t.user.created_at,f.value.timezone,f.value.date_format):"")),C=(0,r.Fl)((()=>t.user.birth_date?(0,i.Z)(new Date(t.user.birth_date),`${(0,u.mh)(f.value.date_format,w.value)}`,{locale:d.v1[w.value]}):"")),D=(0,r.Fl)((()=>n.getters[l.RT.GETTERS.USERS_IS_SUCCESS])),k=(0,r.Fl)((()=>n.getters[l.SY.GETTERS.ERROR_MESSAGES])),P=(0,r.Fl)((()=>n.getters[l.SY.GETTERS.APP_CONFIG])),L=(0,a.iH)(""),M=(0,a.iH)(!1),b=(0,a.iH)(!1),y=(0,a.iH)(""),G=(0,a.iH)("");function F(e){L.value=e,""!==e&&n.commit(l.RT.MUTATIONS.UPDATE_IS_SUCCESS,!1)}function W(e){n.dispatch(l.RT.ACTIONS.DELETE_USER_ACCOUNT,{username:e})}function K(e){G.value="password-reset",n.dispatch(l.RT.ACTIONS.UPDATE_USER,{username:e,resetPassword:!0})}function Y(e){n.dispatch(l.RT.ACTIONS.UPDATE_USER,{username:e,activate:!0})}function x(){Z(),y.value=z.value.email_to_confirm?z.value.email_to_confirm:"",b.value=!0,G.value="email-update"}function $(){y.value="",b.value=!1}function B(e){n.dispatch(l.RT.ACTIONS.UPDATE_USER,{username:e,new_email:y.value})}function Z(){n.commit(l.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),n.commit(l.RT.MUTATIONS.UPDATE_IS_SUCCESS,!1),G.value=""}return(0,r.Ah)((()=>Z())),(0,r.YP)((()=>D.value),(e=>{e&&(F(""),$())})),(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",m,[L.value?((0,r.wg)(),(0,r.j4)(n,{key:0,title:e.$t("common.CONFIRMATION"),message:"delete"===L.value?"admin.CONFIRM_USER_ACCOUNT_DELETION":"admin.CONFIRM_USER_PASSWORD_RESET",strongMessage:(0,a.SU)(z).username,onConfirmAction:t[0]||(t[0]=e=>"delete"===L.value?W((0,a.SU)(z).username):K((0,a.SU)(z).username)),onCancelAction:t[1]||(t[1]=e=>F(""))},null,8,["title","message","strongMessage"])):(0,r.kq)("",!0),(0,a.SU)(D)?((0,r.wg)(),(0,r.iD)("div",_,(0,o.zw)(e.$t(`admin.${"password-reset"===G.value?"PASSWORD_RESET":"USER_EMAIL_UPDATE"}_SUCCESSFUL`)),1)):(0,r.kq)("",!0),(0,a.SU)(z).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)(k)?((0,r.wg)(),(0,r.j4)(l,{key:3,message:(0,a.SU)(k)},null,8,["message"])):(0,r.kq)("",!0),b.value?((0,r.wg)(),(0,r.iD)("div",E,[(0,r._)("form",{class:(0,o.C_)({errors:M.value}),onSubmit:t[4]||(t[4]=(0,s.iM)((e=>B((0,a.SU)(z).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)(z).email=e),disabled:""},null,512),[[s.nr,(0,a.SU)(z).email]])]),(0,r._)("label",T,[(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=>y.value=e)},null,512),[[s.nr,y.value]])]),(0,r._)("div",p,[(0,r._)("button",A,(0,o.zw)(e.$t("buttons.SUBMIT")),1),(0,r._)("button",{class:"cancel",onClick:(0,s.iM)($,["prevent"])},(0,o.zw)(e.$t("buttons.CANCEL")),9,O)])],34)])):((0,r.wg)(),(0,r.iD)("div",R,[(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)(v)),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)(z).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)(z).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)(C)),1),(0,r._)("dt",null,(0,o.zw)(e.$t("user.PROFILE.LOCATION"))+":",1),(0,r._)("dd",null,(0,o.zw)((0,a.SU)(z).location),1),(0,r._)("dt",null,(0,o.zw)(e.$t("user.PROFILE.BIO"))+":",1),(0,r._)("dd",I,(0,o.zw)((0,a.SU)(z).bio),1)]),(0,a.SU)(h)?((0,r.wg)(),(0,r.iD)("div",U,[(0,a.SU)(f).username!==(0,a.SU)(z).username?((0,r.wg)(),(0,r.iD)("button",{key:0,class:"danger",onClick:t[5]||(t[5]=(0,s.iM)((e=>F("delete")),["prevent"]))},(0,o.zw)(e.$t("admin.DELETE_USER")),1)):(0,r.kq)("",!0),(0,a.SU)(z).is_active?(0,r.kq)("",!0):((0,r.wg)(),(0,r.iD)("button",{key:1,onClick:t[6]||(t[6]=(0,s.iM)((e=>Y((0,a.SU)(z).username)),["prevent"]))},(0,o.zw)(e.$t("admin.ACTIVATE_USER_ACCOUNT")),1)),(0,a.SU)(f).username!==(0,a.SU)(z).username?((0,r.wg)(),(0,r.iD)("button",{key:2,onClick:(0,s.iM)(x,["prevent"])},(0,o.zw)(e.$t("admin.UPDATE_USER_EMAIL")),9,g)):(0,r.kq)("",!0),(0,a.SU)(f).username!==(0,a.SU)(z).username&&(0,a.SU)(P).is_email_sending_enabled?((0,r.wg)(),(0,r.iD)("button",{key:3,onClick:t[7]||(t[7]=(0,s.iM)((e=>F("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",N,[(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)]))]))])}}}),h=n(3744);const w=(0,h.Z)(z,[["__scopeId","data-v-217519af"]]);var f=w},2411:function(e,t,n){"use strict";n.d(t,{Z:function(){return C}});var r=n(6252),a=n(3577),o=n(2262),s=n(9963),i=n(2201),l=n(8403),c=n(5801),u=n(9917);const d=e=>((0,r.dD)("data-v-b3c885de"),e=e(),(0,r.Cn)(),e),m={id:"user-form"},_={key:2,class:"info-box success-message"},E={class:"form-items"},S=["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"},R=d((()=>(0,r._)("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1))),I=["disabled"],U={key:3},g={key:0},N={key:4},z={class:"account"},h={key:5};var w=(0,r.aZ)({__name:"UserAuthForm",props:{action:null,token:{default:""}},setup(e){const t=e,n=(0,i.yj)(),d=(0,u.o)(),{action:w}=(0,o.BK)(t),f=(0,o.qj)({username:"",email:"",password:""}),v=(0,r.Fl)((()=>G(t.action))),C=(0,r.Fl)((()=>d.getters[c.SY.GETTERS.ERROR_MESSAGES])),D=(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 F(){y.value=!0}function W(e){f.password=e}function K(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 Y(){f.username="",f.email="",f.password=""}return(0,r.Ah)((()=>d.commit(c.SY.MUTATIONS.EMPTY_ERROR_MESSAGES))),(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,Y()})),(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)(w))?(0,o.SU)(w):"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)(D)?((0,r.wg)(),(0,r.iD)("div",_,(0,a.zw)(e.$t("user.PROFILE.SUCCESSFUL_"+((0,o.SU)(D)?"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=>K((0,o.SU)(w))),["prevent"]))},[(0,r._)("div",E,["register"===(0,o.SU)(w)?(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:F,"onUpdate:modelValue":t[0]||(t[0]=e=>f.username=e),placeholder:e.$t("user.USERNAME")},null,40,S)),[[s.nr,f.username]]):(0,r.kq)("",!0),"register"===(0,o.SU)(w)?((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)(w)?(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:F,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)(w))?((0,r.wg)(),(0,r.iD)("div",O,[R,(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)(w))?(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)(w)?e.$t("user.ENTER_PASSWORD"):e.$t("user.PASSWORD"),password:f.password,checkStrength:["reset","register"].includes((0,o.SU)(w)),onUpdatePassword:W,onPasswordError:F},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,I)],34),"login"===(0,o.SU)(w)?((0,r.wg)(),(0,r.iD)("div",U,[(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",g,"-")):(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)(w)?((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)(w))&&(0,o.SU)(P).is_email_sending_enabled?((0,r.wg)(),(0,r.iD)("div",h,[(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)(C)?((0,r.wg)(),(0,r.j4)(c,{key:6,message:(0,o.SU)(C)},null,8,["message"])):(0,r.kq)("",!0)],2)])],2)}}}),f=n(3744);const v=(0,f.Z)(w,[["__scopeId","data-v-b3c885de"]]);var C=v},6595:function(e,t,n){"use strict";n.d(t,{Z:function(){return _}});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 _=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":9923,"./en/en.ts":8757,"./fr/fr.ts":6625,"./nb/nb.ts":8891};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:"d9073cf1",93:"02cf293c",193:"c9a8011a",243:"e551248f",328:"9bc68088",401:"8abaa659",431:"e5102e07",633:"81a8ddc8",845:"430ae7df",858:"3f2a93f2",881:"43430dfc"}[e]+".js"}}(),function(){n.miniCssF=function(e){return"static/css/"+{24:"reset",193:"statistics",328:"admin",401:"workouts",845:"profile"}[e]+"."+{24:"e2527ec6",193:"40e24e75",328:"73df498d",401:"41709693",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 controller = new AbortController()\n config.signal = controller.signal\n const requestKey = removeRequestIfPending(config)\n pendingRequests.set(requestKey, controller)\n\n const authToken = store.getters[AUTH_USER_STORE.GETTERS.AUTH_TOKEN]\n if (authToken) {\n const auth = `Bearer ${authToken}`\n if (config.headers && config.headers.Authorization !== auth) {\n config.headers.Authorization = `Bearer ${authToken}`\n }\n }\n return config\n },\n (error) => Promise.reject(error)\n)\n\nauthApi.interceptors.response.use(\n (response) => {\n removeRequestIfPending(response.config)\n return response\n },\n (error) => {\n if (error.message !== 'canceled') {\n removeRequestIfPending(error.response.config)\n }\n return Promise.reject(error)\n }\n)\n\nexport default authApi\n","import { AxiosRequestConfig } from 'axios'\n\nexport const pendingRequests = new Map()\n\nconst generateRequestKey = (config: AxiosRequestConfig): string => {\n const { method, url, params = {}, data = {} } = config\n return [method, url, JSON.stringify(params), JSON.stringify(data)].join('')\n}\n\nexport const removeRequestIfPending = (config: AxiosRequestConfig): string => {\n const requestKey = generateRequestKey(config)\n if (pendingRequests.has(requestKey)) {\n const controller = pendingRequests.get(requestKey) || {}\n controller?.abort()\n pendingRequests.delete(requestKey)\n }\n return requestKey\n}\n","import { createI18n, LocaleMessages, VueMessageType } from 'vue-i18n'\n\n/**\n * Load locale messages\n *\n * The loaded `JSON` locale messages is pre-compiled by `@intlify/vue-i18n-loader`, which is integrated into `vue-cli-plugin-i18n`.\n * See: https://github.com/intlify/vue-i18n-loader#rocket-i18n-resource-pre-compilation\n */\nconst disabledLanguages = ['nb'] // to remove after norwegian translations release\n\nfunction loadLocaleMessages(): Record> {\n const locales = require.context('./locales', true, /[A-Za-z0-9-_,\\s]+\\.ts$/i)\n const messages: Record> = {}\n locales.keys().forEach((key) => {\n const matched = key.match(/([A-Za-z0-9-_]+)\\./i)\n if (\n matched &&\n matched.length > 1 &&\n !disabledLanguages.includes(matched[1])\n ) {\n const locale = matched[1]\n messages[locale] = locales(key).default\n }\n })\n return messages\n}\n\nexport default createI18n({\n legacy: false,\n locale: 'en',\n fallbackLocale: 'en',\n globalInjection: true,\n messages: loadLocaleMessages(),\n})\n","export default {\n \"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 during gpx processing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fehler bei der GPX-Verarbeitung.\"])},\n \"error during gpx file parsing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fehler beim Einlesen der GPX-Datei\"])},\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 \"AUTHORIZE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Autorisieren\"])},\n \"BACK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Zurück\"])},\n \"CANCEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Abbrechen\"])},\n \"CLEAR_FILTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Filter löschen\"])},\n \"DELETE_MY_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mein Konto löschen\"])},\n \"DISABLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Deaktivieren\"])},\n \"EDIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bearbeiten\"])},\n \"ENABLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aktivieren\"])},\n \"FILTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Filter\"])},\n \"LOGIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anmelden\"])},\n \"NO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nein\"])},\n \"REGISTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registrieren\"])},\n \"RESET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Zurücksetzen\"])},\n \"SUBMIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Speichern\"])},\n \"YES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ja\"])}\n}","export default {\n \"ABOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Über\"])},\n \"CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bestätigung\"])},\n \"CONTACT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kontakt\"])},\n \"DAY\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"Tag\"]), _normalize([\"Tage\"])])},\n \"DISPLAYED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Angezeigt\"])},\n \"DOCUMENTATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dokumentation (en)\"])},\n \"HERE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"hier\"])},\n \"HIDDEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Versteckt\"])},\n \"HOME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Startseite\"])},\n \"SELECTS\": {\n \"ORDER_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 \"ADD_A_NEW_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Eine neue OAuth2-Anwendung hinzufügen\"])},\n \"APP\": {\n \"CLIENT_ID\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ID\"])},\n \"CLIENT_SECRET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geheimnis\"])},\n \"DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anwendungsbeschreibung\"])},\n \"ISSUE_AT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erstellt am\"])},\n \"NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anwendungsname\"])},\n \"REDIRECT_URL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Weiterleitungs-URL\"])},\n \"SCOPE\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geltungsbereich\"])},\n \"profile:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"erlaubt Schreibzugriff auf auth-Endpunkte\"])},\n \"profile:read_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"erlaubt Lesezugriff auf auth-Endpunkte\"])},\n \"users:read_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"erlaubt Lesezugriff auf users-Endpunkte\"])},\n \"users:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"erlaubt Schreibzugriff auf users-Endpunkte\"])},\n \"workouts:read_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"erlaubt Lesezugriff auf workouts-Endpunkte\"])},\n \"workouts:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"erlaubt Schreibzugriff auf workouts-Endpunkte\"])},\n \"application:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"erlaubt Schreibzugriff auf die Anwendungskonfiguration\"])}\n },\n \"URL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anwendungs-URL\"])}\n },\n \"APP_CREATED_SUCCESSFULLY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anwendung erfolgreich erstellt. Stelle sicher, dass du das Geheimnis kopierst, du kannst es nicht erneut anzeigen.\"])},\n \"APP_DELETION_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bist sicher, dass du diese App löschen willst?\"])},\n \"APP_REQUESTING_ACCESS\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Die Anwendung \", _interpolate(_list(0)), \" fragt an:\"])},\n \"APPS_LIST\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"OAuth2-Anwendungen\"])},\n \"AUTHORIZE_APP\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" den Zugriff auf deinen Account erlauben?\"])},\n \"COPY_TO_CLIPBOARD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"in Zwischenablage kopieren\"])},\n \"DELETE_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anwendung löschen\"])},\n \"NEW_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anwendung hinzufügen\"])},\n \"NO_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anwendung wurde nicht gefunden!\"])},\n \"NO_APPS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"keine Anwendungen\"])},\n \"NO_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"keine Beschreibung\"])},\n \"REVOKE_ALL_TOKENS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Alle Tokens zurückrufen\"])},\n \"TOKENS_REVOCATION_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bist du sicher, dass du alle Tokens zurückrufen möchtest?\"])},\n \"TOKENS_REVOKED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Alle vorhandenen und vergebenen Tokens wurde zurückgerufen.\"])}\n}","export default {\n \"Cycling (Sport)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Radfahren (Sport)\"])}\n },\n \"Cycling (Transport)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Radfahren (Pendeln)\"])}\n },\n \"Cycling (Virtual)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Radfahren (Virtuell)\"])}\n },\n \"Hiking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Wandern\"])}\n },\n \"Mountain Biking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mountainbiken\"])}\n },\n \"Mountain Biking (Electric)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mountainbiken (elektrisch)\"])}\n },\n \"Rowing\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Rudern\"])}\n },\n \"Running\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Laufen\"])}\n },\n \"Skiing (Alpine)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Skifahren (Alpin)\"])}\n },\n \"Skiing (Cross Country)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Skifahren (Langlauf)\"])}\n },\n \"Snowshoes\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Schneeschuhe\"])}\n },\n \"Trail\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Trail\"])}\n },\n \"Walking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Gehen\"])}\n }\n}","export default {\n \"STATISTICS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Statistik\"])},\n \"TIME_FRAMES\": {\n \"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ätigungs-E-Mail wurde an die angegebene Adresse geschickt.\"])},\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Admin\"])},\n \"ALREADY_HAVE_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hast du bereits ein Konto?\"])},\n \"CONFIRM_ACCOUNT_DELETION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Möchtest du dein Konto wirklich löschen? Alle Daten werden gelöscht. Dieser Vorgang kann nicht rückgängig gemacht werden\"])},\n \"CURRENT_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aktuelles Passwort\"])},\n \"EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"E-Mail\"])},\n \"EMAIL_INFO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Gebe eine gültige E-Mail-Adresse an.\"])},\n \"ENTER_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Gebe ein Passwort ein\"])},\n \"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 \"ASCENT_DATA\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anstiegs-bezogene Daten (Aufnahmen, gesamt)\"])},\n \"BACK_TO_PROFILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Zurück zum Profil\"])},\n \"BIO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Biographie\"])},\n \"BIRTH_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geburtsdatum\"])},\n \"DATE_FORMAT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Datumsanzeigeformat\"])},\n \"EDIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Profil bearbeiten\"])},\n \"EDIT_PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Einstellungen ändern\"])},\n \"EDIT_SPORTS_PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Einstellungen für Sportarten ändern\"])},\n \"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 \"APPS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anwendungen\"])},\n \"PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bild\"])},\n \"PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Einstellungen\"])},\n \"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([\"E-Mail zur Kontobestätigung erneut senden\"])},\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_HA\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Höchster Anstieg\"])},\n \"RECORD_LD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Längste Dauer\"])},\n \"RECORD_MS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. Geschwindigkeit\"])},\n \"REMAINING_CHARS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"verbleibende Zeichen\"])},\n \"SEGMENT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"Segment\"]), _normalize([\"Segmente\"])])},\n \"SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geschwindigkeit\"])},\n \"SPORT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"Sportart\"]), _normalize([\"Sportarten\"])])},\n \"START\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Start\"])},\n \"START_AND_FINISH\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Start und Ziel\"])},\n \"START_ELEVATION_AT_ZERO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Höhenachse bei Null starten\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Titel\"])},\n \"TO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"bis\"])},\n \"TOTAL_DURATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Gesamtdauer\"])},\n \"UPLOAD_FIRST_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Füge erstes Training hinzu!\"])},\n \"WEATHER\": {\n \"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 OAuth2Translations from './oauth2.json'\nimport SportsTranslations from './sports.json'\nimport StatisticsTranslations from './statistics.json'\nimport UserTranslations from './user.json'\nimport WorkoutsTranslations from './workouts.json'\n\nexport default {\n about: AboutTranslations,\n admin: AdministrationTranslations,\n api: ApiTranslations,\n buttons: ButtonsTranslations,\n common: CommonTranslations,\n dashboard: DashboardTranslations,\n error: ErrorTranslations,\n oauth2: OAuth2Translations,\n 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 \"AUTHORIZE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Authorize\"])},\n \"BACK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Back\"])},\n \"CANCEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Cancel\"])},\n \"CLEAR_FILTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Clear filters\"])},\n \"DELETE_MY_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Delete my account\"])},\n \"DISABLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Disable\"])},\n \"EDIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Edit\"])},\n \"ENABLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enable\"])},\n \"FILTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Filter\"])},\n \"LOGIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Log in\"])},\n \"NO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No\"])},\n \"REGISTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Register\"])},\n \"RESET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reset\"])},\n \"SUBMIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Submit\"])},\n \"YES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Yes\"])}\n}","export default {\n \"ABOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"about\"])},\n \"CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Confirmation\"])},\n \"CONTACT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"contact\"])},\n \"DAY\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"day\"]), _normalize([\"days\"])])},\n \"DISPLAYED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Displayed\"])},\n \"DOCUMENTATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"documentation\"])},\n \"HERE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"here\"])},\n \"HIDDEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hidden\"])},\n \"HOME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Home\"])},\n \"SELECTS\": {\n \"ORDER_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 \"ADD_A_NEW_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Add a new OAuth2 application\"])},\n \"APP\": {\n \"CLIENT_ID\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Id\"])},\n \"CLIENT_SECRET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Secret\"])},\n \"DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Application description\"])},\n \"ISSUE_AT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Issue at\"])},\n \"NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Application name\"])},\n \"REDIRECT_URL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Redirect URL\"])},\n \"SCOPE\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Scope\"])},\n \"application:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"grants write access to application configuration.\"])},\n \"profile:read_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"grants read access to auth endpoints.\"])},\n \"profile:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"grants write access to auth endpoints.\"])},\n \"users:read_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"grants read access to users endpoints.\"])},\n \"users:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"grants write access to users endpoints.\"])},\n \"workouts:read_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"grants read access to workouts endpoints.\"])},\n \"workouts:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"grants write access to workouts endpoints.\"])}\n },\n \"URL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Application URL\"])}\n },\n \"APP_CREATED_SUCCESSFULLY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Application created successfully. Make sure to copy the secret now, it won't show up again.\"])},\n \"APP_DELETION_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Are you sure you want to delete this app?\"])},\n \"APP_REQUESTING_ACCESS\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"The application \", _interpolate(_list(0)), \" is requesting:\"])},\n \"APPS_LIST\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"OAuth2 applications\"])},\n \"AUTHORIZE_APP\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Authorize \", _interpolate(_list(0)), \" to use your account?\"])},\n \"COPY_TO_CLIPBOARD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"copy to the clipboard\"])},\n \"DELETE_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Delete application\"])},\n \"NEW_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Add an application\"])},\n \"NO_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Application not found!\"])},\n \"NO_APPS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"no applications\"])},\n \"NO_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"no description\"])},\n \"REVOKE_ALL_TOKENS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Revoke all tokens\"])},\n \"TOKENS_REVOCATION_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Are you sure you want to revoke all tokens?\"])},\n \"TOKENS_REVOKED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"All existing associated tokens have been revoked.\"])}\n}","export default {\n \"Cycling (Sport)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Cycling (Sport)\"])}\n },\n \"Cycling (Transport)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Cycling (Transport)\"])}\n },\n \"Cycling (Virtual)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Cycling (Virtual)\"])}\n },\n \"Hiking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hiking\"])}\n },\n \"Mountain Biking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mountain Biking\"])}\n },\n \"Mountain Biking (Electric)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mountain Biking (Electric)\"])}\n },\n \"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 \"ASCENT_DATA\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ascent-related data (records, total)\"])},\n \"BACK_TO_PROFILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Back to profile\"])},\n \"BIO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bio\"])},\n \"BIRTH_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Birth date\"])},\n \"DATE_FORMAT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Date display format\"])},\n \"EDIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Edit profile\"])},\n \"EDIT_PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Edit preferences\"])},\n \"EDIT_SPORTS_PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Edit sports preferences\"])},\n \"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 \"APPS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"apps\"])},\n \"PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"picture\"])},\n \"PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"preferences\"])},\n \"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_HA\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Highest ascent\"])},\n \"RECORD_LD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Longest duration\"])},\n \"RECORD_MS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. speed\"])},\n \"REMAINING_CHARS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"remaining characters\"])},\n \"SEGMENT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"segment\"]), _normalize([\"segments\"])])},\n \"SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"speed\"])},\n \"SPORT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"sport\"]), _normalize([\"sports\"])])},\n \"START\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"start\"])},\n \"START_AND_FINISH\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Start and finish\"])},\n \"START_ELEVATION_AT_ZERO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"start elevation axis at zero\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"title\"])},\n \"TO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"to\"])},\n \"TOTAL_DURATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"total duration\"])},\n \"UPLOAD_FIRST_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Upload one!\"])},\n \"WEATHER\": {\n \"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 OAuth2Translations from './oauth2.json'\nimport SportsTranslations from './sports.json'\nimport StatisticsTranslations from './statistics.json'\nimport UserTranslations from './user.json'\nimport WorkoutsTranslations from './workouts.json'\n\nexport default {\n about: AboutTranslations,\n admin: AdministrationTranslations,\n api: ApiTranslations,\n buttons: ButtonsTranslations,\n common: CommonTranslations,\n dashboard: DashboardTranslations,\n error: ErrorTranslations,\n oauth2: OAuth2Translations,\n 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 \"AUTHORIZE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Autoriser\"])},\n \"BACK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Retour\"])},\n \"CANCEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Annuler\"])},\n \"CLEAR_FILTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Réinitialiser\"])},\n \"DELETE_MY_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Supprimer mon compte\"])},\n \"DISABLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Désactiver\"])},\n \"EDIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Modifier\"])},\n \"ENABLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Activer\"])},\n \"FILTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Filtrer\"])},\n \"LOGIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Se connecter\"])},\n \"NO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Non\"])},\n \"REGISTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"S'inscrire\"])},\n \"RESET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Réinit.\"])},\n \"SUBMIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Valider\"])},\n \"YES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Oui\"])}\n}","export default {\n \"ABOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"à propos\"])},\n \"CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Confirmation\"])},\n \"CONTACT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"contact\"])},\n \"DAY\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"jour\"]), _normalize([\"jours\"])])},\n \"DISPLAYED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Affiché\"])},\n \"DOCUMENTATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"documentation (en)\"])},\n \"HERE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ici\"])},\n \"HIDDEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Masqué\"])},\n \"HOME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Accueil\"])},\n \"SELECTS\": {\n \"ORDER_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 \"ADD_A_NEW_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ajouter une nouvelle application OAuth2\"])},\n \"APP\": {\n \"CLIENT_ID\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Identifiant\"])},\n \"CLIENT_SECRET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Secret\"])},\n \"DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Description de l'application\"])},\n \"ISSUE_AT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Créée le\"])},\n \"NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nom de l'application\"])},\n \"REDIRECT_URL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"URL de redirection\"])},\n \"SCOPE\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Scope\"])},\n \"application:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"donne les droits en écriture à la configuration de l'application.\"])},\n \"profile:read_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"donne les droits en lecture aux routes auth.\"])},\n \"profile:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"donne les droits en écriture aux routes auth.\"])},\n \"users:read_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"donne les droits en lecture aux routes users.\"])},\n \"users:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"donne les droits en écriture aux routes users.\"])},\n \"workouts:read_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"donne les droits en lecture aux routes workouts.\"])},\n \"workouts:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"donne les droits en écriture aux routes workouts.\"])}\n },\n \"URL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"URL de l'application\"])}\n },\n \"APP_CREATED_SUCCESSFULLY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Application créée avec succès. Assurez-vous de copier le secret maintenant, il ne s'affichera plus.\"])},\n \"APP_DELETION_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Êtes-vous sûr de vouloir supprimer cette application ?\"])},\n \"APP_REQUESTING_ACCESS\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"L'application \", _interpolate(_list(0)), \" demande les accès suivants :\"])},\n \"APPS_LIST\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Applications OAuth2\"])},\n \"AUTHORIZE_APP\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Autoriser \", _interpolate(_list(0)), \" à utiliser votre compte ?\"])},\n \"COPY_TO_CLIPBOARD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"copier dans le presse papier\"])},\n \"DELETE_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Supprimer l'application\"])},\n \"NEW_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ajouter une application\"])},\n \"NO_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Application introuvable !\"])},\n \"NO_APPS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"pas de applications\"])},\n \"NO_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"pas de description\"])},\n \"REVOKE_ALL_TOKENS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Révoquer tous les jetons\"])},\n \"TOKENS_REVOCATION_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Êtes-vous sûr de vouloir révoquer tous les jetons ?\"])},\n \"TOKENS_REVOKED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Tous les jetons associés existants ont été révoqués.\"])}\n}","export default {\n \"Cycling (Sport)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vélo (Sport)\"])}\n },\n \"Cycling (Transport)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vélo (Transport)\"])}\n },\n \"Cycling (Virtual)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vélo (Virtuel)\"])}\n },\n \"Hiking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Randonnée\"])}\n },\n \"Mountain Biking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"VTT\"])}\n },\n \"Mountain Biking (Electric)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"VTT (Électrique)\"])}\n },\n \"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 vos courriels. Un nouveau courriel de confirmation a été envoyé à l'adresse électronique fournie.\"])},\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Admin\"])},\n \"ALREADY_HAVE_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vous avez déjà un compte ?\"])},\n \"CONFIRM_ACCOUNT_DELETION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Êtes-vous sûr·e de vouloir supprimer votre compte ? Toutes les données seront définitivement effacés\"])},\n \"CURRENT_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mot de passe actuel\"])},\n \"EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Courriel\"])},\n \"EMAIL_INFO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Saisissez une adresse électronique valide.\"])},\n \"ENTER_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Saisissez un mot de passe\"])},\n \"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 vos courriels. Si vote adresse est dans notre base de données, vous recevrez un courriel avec un lien pour réinitialiser votre mot de passe.\"])},\n \"PASSWORD_STRENGTH\": {\n \"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 \"ASCENT_DATA\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Données relatives au dénivelé positif (records, total)\"])},\n \"BACK_TO_PROFILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Revenir au profil\"])},\n \"BIO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bio\"])},\n \"BIRTH_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Date de naissance\"])},\n \"DATE_FORMAT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Format d'affichage de la date\"])},\n \"EDIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Modifier le profil\"])},\n \"EDIT_PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Modifier les préférences\"])},\n \"EDIT_SPORTS_PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Modifier les préférences des sports\"])},\n \"ERRORED_EMAIL_UPDATE\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Veuillez vous \", _interpolate(_list(0)), \" pour changer de nouveau votre adresse électronique ou contacter l'administrateur\"])},\n \"FIRST_DAY_OF_WEEK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Premier jour de la semaine\"])},\n \"FIRST_NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Prénom\"])},\n \"LANGUAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Langue\"])},\n \"LAST_NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nom\"])},\n \"LOCATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Lieu\"])},\n \"MONDAY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Lundi\"])},\n \"PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Image de profil\"])},\n \"PICTURE_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mise à jour de l'image de profil\"])},\n \"PICTURE_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 \"APPS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"apps\"])},\n \"PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"image\"])},\n \"PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"préférences\"])},\n \"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 boîte de réception pour valider votre nouvelle adresse électronique.\"])},\n \"SUCCESSFUL_REGISTRATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Votre compte a été créé avec succès.\"])},\n \"SUCCESSFUL_REGISTRATION_WITH_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Un lien pour activer votre compte a été envoyé à l'adresse électronique fournie.\"])},\n \"SUCCESSFUL_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Votre compte a été modifié avec succès.\"])},\n \"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 le courriel 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_HA\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dénivelé positif le + élevé\"])},\n \"RECORD_LD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Durée la + longue\"])},\n \"RECORD_MS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vitesse max.\"])},\n \"REMAINING_CHARS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nombre de caractères restants \"])},\n \"SEGMENT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"segment\"]), _normalize([\"segments\"])])},\n \"SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"vitesse\"])},\n \"SPORT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"sport\"]), _normalize([\"sports\"])])},\n \"START\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"début\"])},\n \"START_AND_FINISH\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Départ et arrivée\"])},\n \"START_ELEVATION_AT_ZERO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"démarrer l'axe de l'altitude à 0\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"titre\"])},\n \"TO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"jusqu'au\"])},\n \"TOTAL_DURATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"durée totale\"])},\n \"UPLOAD_FIRST_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ajoutez votre première séance !\"])},\n \"WEATHER\": {\n \"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 OAuth2Translations from './oauth2.json'\nimport SportsTranslations from './sports.json'\nimport StatisticsTranslations from './statistics.json'\nimport UserTranslations from './user.json'\nimport WorkoutsTranslations from './workouts.json'\n\nexport default {\n about: AboutTranslations,\n admin: AdministrationTranslations,\n api: ApiTranslations,\n buttons: ButtonsTranslations,\n common: CommonTranslations,\n dashboard: DashboardTranslations,\n error: ErrorTranslations,\n oauth2: OAuth2Translations,\n sports: SportsTranslations,\n statistics: StatisticsTranslations,\n user: UserTranslations,\n workouts: WorkoutsTranslations,\n}\n","export default {\n \n}","export default {\n \n}","export default {\n \n}","export default {\n \n}","export default {\n \n}","export default {\n \n}","export default {\n \n}","export default {\n \n}","export default {\n \n}","export default {\n \n}","export default {\n \n}","export default {\n \n}","import AboutTranslations from './about.json'\nimport AdministrationTranslations from './administration.json'\nimport ApiTranslations from './api.json'\nimport ButtonsTranslations from './buttons.json'\nimport CommonTranslations from './common.json'\nimport DashboardTranslations from './dashboard.json'\nimport ErrorTranslations from './error.json'\nimport OAuth2Translations from './oauth2.json'\nimport SportsTranslations from './sports.json'\nimport StatisticsTranslations from './statistics.json'\nimport UserTranslations from './user.json'\nimport WorkoutsTranslations from './workouts.json'\n\nexport default {\n about: AboutTranslations,\n admin: AdministrationTranslations,\n api: ApiTranslations,\n buttons: ButtonsTranslations,\n common: CommonTranslations,\n dashboard: DashboardTranslations,\n error: ErrorTranslations,\n oauth2: OAuth2Translations,\n 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-8cf5cc64\"),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 | null\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'CustomTextArea',\n props: {\n name: null,\n charLimit: { default: 500 },\n disabled: { type: Boolean, default: false },\n input: { default: '' }\n },\n emits: ['updateValue'],\n setup(__props: any, { emit }) {\n\nconst props = __props as { name: string, charLimit: number, disabled: boolean, input: string | null }\n\n \n\n \n\n const text = ref('')\n\n function updateText(event: Event & { target: HTMLInputElement }) {\n emit('updateValue', event.target.value)\n }\n\n watch(\n () => props.input,\n (value) => {\n text.value = value === null ? '' : value\n }\n )\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _withDirectives(_createElementVNode(\"textarea\", {\n id: __props.name,\n name: __props.name,\n 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=8cf5cc64&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-8cf5cc64\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, toDisplayString as _toDisplayString, normalizeClass as _normalizeClass, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createTextVNode as _createTextVNode, Fragment as _Fragment } from \"vue\"\n\nimport { ComputedRef, computed, toRefs, withDefaults } from 'vue'\n\n import { TUnit } from '@/types/units'\n import { units, convertDistance } from '@/utils/units'\n\n interface Props {\n distance: number\n unitFrom: TUnit\n useImperialUnits: boolean\n digits?: number\n displayUnit?: boolean\n speed?: boolean\n strong?: boolean\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'Distance',\n props: {\n distance: null,\n unitFrom: null,\n useImperialUnits: { type: Boolean },\n digits: { default: 2 },\n displayUnit: { type: Boolean, default: true },\n speed: { type: Boolean, default: false },\n strong: { type: Boolean, default: false }\n },\n setup(__props: any) {\n\nconst props = __props as { distance: number, unitFrom: TUnit, useImperialUnits: boolean, digits: number, displayUnit: boolean, speed: boolean, strong: boolean }\n\n \n\n const {\n digits,\n displayUnit,\n distance,\n speed,\n strong,\n unitFrom,\n useImperialUnits,\n } = toRefs(props)\n const unitTo: ComputedRef = computed(() =>\n useImperialUnits.value\n ? units[unitFrom.value].defaultTarget\n : unitFrom.value\n )\n const convertedDistance = computed(() =>\n useImperialUnits.value\n ? convertDistance(\n distance.value,\n unitFrom.value,\n unitTo.value,\n digits.value\n )\n : parseFloat(distance.value.toFixed(digits.value))\n )\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n _createElementVNode(\"span\", {\n class: _normalizeClass([\"distance\", { strong: _unref(strong) }])\n }, _toDisplayString(_unref(convertedDistance)), 3),\n _createTextVNode(\" \" + _toDisplayString(' ') + \" \"),\n (_unref(displayUnit))\n ? (_openBlock(), _createElementBlock(\"span\", {\n key: 0,\n class: _normalizeClass([\"unit\", { strong: _unref(strong) }])\n }, _toDisplayString(_unref(unitTo)) + _toDisplayString(_unref(speed) ? '/h' : ''), 3))\n : _createCommentVNode(\"\", true)\n ], 64))\n}\n}\n\n})","import script from \"./Distance.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Distance.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./Distance.vue?vue&type=style&index=0&id=f46ff1d6&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-f46ff1d6\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { renderSlot as _renderSlot, createElementVNode as _createElementVNode, unref as _unref, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, normalizeClass as _normalizeClass, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-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 \"./CyclingVirtual.vue?vue&type=template&id=ec8f7bb6\"\nimport script from \"./CyclingVirtual.vue?vue&type=script&lang=js\"\nexport * from \"./CyclingVirtual.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\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 CyclingVirtual from '@/components/Common/Images/SportImage/CyclingVirtual.vue'\n import Hiking from '@/components/Common/Images/SportImage/Hiking.vue'\n import MountainBiking from '@/components/Common/Images/SportImage/MountainBiking.vue'\n import MountainBikingElectric from '@/components/Common/Images/SportImage/MountainBikingElectric.vue'\n import Rowing from '@/components/Common/Images/SportImage/Rowing.vue'\n import Running from '@/components/Common/Images/SportImage/Running.vue'\n import SkiingAlpine from '@/components/Common/Images/SportImage/SkiingAlpine.vue'\n import SkiingCrossCountry from '@/components/Common/Images/SportImage/SkiingCrossCountry.vue'\n import Snowshoes from '@/components/Common/Images/SportImage/Snowshoes.vue'\n import Trail from '@/components/Common/Images/SportImage/Trail.vue'\n import Walking from '@/components/Common/Images/SportImage/Walking.vue'\n\n interface Props {\n sportLabel: string\n color: string | null\n title?: string\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'index',\n props: {\n sportLabel: null,\n color: null,\n title: { default: '' }\n },\n setup(__props: any) {\n\nconst props = __props as { sportLabel: string, color: string | null, title: string }\n\n \n\n const { color, sportLabel, title } = toRefs(props)\n const sportColors = inject('sportColors')\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"sport-img\",\n style: _normalizeStyle({ fill: _unref(color) ? _unref(color) : _unref(sportColors)[_unref(sportLabel)] }),\n title: _unref(title) ? _unref(title) : _ctx.$t(`sports.${_unref(sportLabel)}.LABEL`)\n }, [\n (_unref(sportLabel) === 'Cycling (Sport)')\n ? (_openBlock(), _createBlock(CyclingSport, { key: 0 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Cycling (Transport)')\n ? (_openBlock(), _createBlock(CyclingTransport, { key: 1 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Cycling (Virtual)')\n ? (_openBlock(), _createBlock(CyclingVirtual, { key: 2 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Hiking')\n ? (_openBlock(), _createBlock(Hiking, { key: 3 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Mountain Biking')\n ? (_openBlock(), _createBlock(MountainBiking, { key: 4 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Mountain Biking (Electric)')\n ? (_openBlock(), _createBlock(MountainBikingElectric, { key: 5 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Rowing')\n ? (_openBlock(), _createBlock(Rowing, { key: 6 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Running')\n ? (_openBlock(), _createBlock(Running, { key: 7 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Skiing (Alpine)')\n ? (_openBlock(), _createBlock(SkiingAlpine, { key: 8 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Skiing (Cross Country)')\n ? (_openBlock(), _createBlock(SkiingCrossCountry, { key: 9 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Snowshoes')\n ? (_openBlock(), _createBlock(Snowshoes, { key: 10 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Trail')\n ? (_openBlock(), _createBlock(Trail, { key: 11 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Walking')\n ? (_openBlock(), _createBlock(Walking, { key: 12 }))\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-dc12ff78\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n id: \"admin-users\",\n class: \"admin-card\"\n}\nconst _hoisted_2 = {\n key: 0,\n class: \"no-users\"\n}\nconst _hoisted_3 = {\n key: 1,\n class: \"responsive-table\"\n}\nconst _hoisted_4 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"th\", null, \"#\", -1))\nconst _hoisted_5 = { class: \"left-text\" }\nconst _hoisted_6 = { class: \"left-text\" }\nconst _hoisted_7 = { class: \"left-text\" }\nconst _hoisted_8 = { class: \"cell-heading\" }\nconst _hoisted_9 = { class: \"cell-heading\" }\nconst _hoisted_10 = { class: \"cell-heading\" }\nconst _hoisted_11 = { class: \"cell-heading\" }\nconst _hoisted_12 = { class: \"text-center\" }\nconst _hoisted_13 = { class: \"cell-heading\" }\nconst _hoisted_14 = { class: \"text-center\" }\nconst _hoisted_15 = { class: \"cell-heading\" }\nconst _hoisted_16 = { class: \"text-center\" }\nconst _hoisted_17 = { class: \"cell-heading\" }\nconst _hoisted_18 = { class: \"text-center\" }\nconst _hoisted_19 = { class: \"cell-heading\" }\nconst _hoisted_20 = [\"disabled\", \"onClick\"]\n\nimport {\n ComputedRef,\n Ref,\n computed,\n reactive,\n watch,\n capitalize,\n onBeforeMount,\n onUnmounted,\n } from 'vue'\n import { LocationQuery, useRoute, useRouter } from 'vue-router'\n\n import FilterSelects from '@/components/Common/FilterSelects.vue'\n import Pagination from '@/components/Common/Pagination.vue'\n import UserPicture from '@/components/User/UserPicture.vue'\n import UsersNameFilter from '@/components/Users/UsersNameFilter.vue'\n import { AUTH_USER_STORE, ROOT_STORE, USERS_STORE } from '@/store/constants'\n import { IPagination, TPaginationPayload } from '@/types/api'\n import { IAuthUserProfile, IUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n import { getQuery, sortList } from '@/utils/api'\n import { formatDate } from '@/utils/dates'\n\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'AdminUsers',\n setup(__props) {\n\n const store = useStore()\n const route = useRoute()\n const router = useRouter()\n\n const orderByList: string[] = [\n 'is_active',\n 'admin',\n 'created_at',\n 'username',\n 'workouts_count',\n ]\n const defaultOrderBy = 'created_at'\n let query: TPaginationPayload = reactive(\n getQuery(route.query, orderByList, defaultOrderBy)\n )\n const authUser: ComputedRef = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.AUTH_USER_PROFILE]\n )\n const users: ComputedRef = computed(\n () => store.getters[USERS_STORE.GETTERS.USERS]\n )\n const pagination: ComputedRef = computed(\n () => store.getters[USERS_STORE.GETTERS.USERS_PAGINATION]\n )\n const errorMessages: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.ERROR_MESSAGES]\n )\n\n onBeforeMount(() => loadUsers(query))\n\n function loadUsers(queryParams: TPaginationPayload) {\n store.dispatch(USERS_STORE.ACTIONS.GET_USERS, queryParams)\n }\n function searchUsers(username: Ref) {\n reloadUsers('q', username.value)\n }\n\n function updateUser(username: string, admin: boolean) {\n store.dispatch(USERS_STORE.ACTIONS.UPDATE_USER, {\n username,\n admin,\n })\n }\n function reloadUsers(queryParam: string, queryValue: string) {\n query[queryParam] = queryValue\n if (queryParam === 'per_page') {\n query.page = 1\n }\n router.push({ path: '/admin/users', query })\n }\n\n onUnmounted(() => {\n store.dispatch(USERS_STORE.ACTIONS.EMPTY_USERS)\n })\n\n watch(\n () => route.query,\n (newQuery: LocationQuery) => {\n query = getQuery(newQuery, orderByList, defaultOrderBy, { query })\n loadUsers(query)\n }\n )\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_link = _resolveComponent(\"router-link\")!\n const _component_ErrorMessage = _resolveComponent(\"ErrorMessage\")!\n const _component_Card = _resolveComponent(\"Card\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_Card, null, {\n title: _withCtx(() => [\n _createTextVNode(_toDisplayString(capitalize(_ctx.$t('admin.USER', 0))), 1)\n ]),\n content: _withCtx(() => [\n _createElementVNode(\"button\", {\n class: \"top-button\",\n onClick: _cache[0] || (_cache[0] = _withModifiers(($event: any) => (_ctx.$router.push('/admin')), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('admin.BACK_TO_ADMIN')), 1),\n _createVNode(UsersNameFilter, { onFilterOnUsername: searchUsers }),\n _createVNode(FilterSelects, {\n sort: _unref(sortList),\n order_by: orderByList,\n query: _unref(query),\n message: \"admin.USERS.SELECTS.ORDER_BY\",\n onUpdateSelect: reloadUsers\n }, null, 8, [\"sort\", \"query\"]),\n (_unref(users).length === 0)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, _toDisplayString(_ctx.$t('user.NO_USERS_FOUND')), 1))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n _createElementVNode(\"table\", null, [\n _createElementVNode(\"thead\", null, [\n _createElementVNode(\"tr\", null, [\n _hoisted_4,\n _createElementVNode(\"th\", _hoisted_5, _toDisplayString(_ctx.$t('user.USERNAME')), 1),\n _createElementVNode(\"th\", _hoisted_6, _toDisplayString(_ctx.$t('user.EMAIL')), 1),\n _createElementVNode(\"th\", _hoisted_7, _toDisplayString(_ctx.$t('user.PROFILE.REGISTRATION_DATE')), 1),\n _createElementVNode(\"th\", null, _toDisplayString(capitalize(_ctx.$t('workouts.WORKOUT', 0))), 1),\n _createElementVNode(\"th\", null, _toDisplayString(_ctx.$t('admin.ACTIVE')), 1),\n _createElementVNode(\"th\", null, _toDisplayString(_ctx.$t('user.ADMIN')), 1),\n _createElementVNode(\"th\", null, _toDisplayString(_ctx.$t('admin.ACTION')), 1)\n ])\n ]),\n _createElementVNode(\"tbody\", null, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(users), (user) => {\n return (_openBlock(), _createElementBlock(\"tr\", {\n key: user.username\n }, [\n _createElementVNode(\"td\", null, [\n _createElementVNode(\"span\", _hoisted_8, _toDisplayString(_ctx.$t('user.PROFILE.PICTURE')), 1),\n _createVNode(UserPicture, { user: user }, null, 8, [\"user\"])\n ]),\n _createElementVNode(\"td\", null, [\n _createElementVNode(\"span\", _hoisted_9, _toDisplayString(_ctx.$t('user.USERNAME')), 1),\n _createVNode(_component_router_link, {\n to: `/admin/users/${user.username}`\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(user.username), 1)\n ]),\n _: 2\n }, 1032, [\"to\"])\n ]),\n _createElementVNode(\"td\", null, [\n _createElementVNode(\"span\", _hoisted_10, _toDisplayString(_ctx.$t('user.EMAIL')), 1),\n _createTextVNode(\" \" + _toDisplayString(user.email), 1)\n ]),\n _createElementVNode(\"td\", null, [\n _createElementVNode(\"span\", _hoisted_11, _toDisplayString(_ctx.$t('user.PROFILE.REGISTRATION_DATE')), 1),\n _createTextVNode(\" \" + _toDisplayString(_unref(formatDate)(\n user.created_at,\n _unref(authUser).timezone,\n _unref(authUser).date_format\n )), 1)\n ]),\n _createElementVNode(\"td\", _hoisted_12, [\n _createElementVNode(\"span\", _hoisted_13, _toDisplayString(capitalize(_ctx.$t('workouts.WORKOUT', 0))), 1),\n _createTextVNode(\" \" + _toDisplayString(user.nb_workouts), 1)\n ]),\n _createElementVNode(\"td\", _hoisted_14, [\n _createElementVNode(\"span\", _hoisted_15, _toDisplayString(_ctx.$t('admin.ACTIVE')), 1),\n _createElementVNode(\"i\", {\n class: _normalizeClass(`fa fa${user.is_active ? '-check' : ''}-square-o`),\n \"aria-hidden\": \"true\"\n }, null, 2)\n ]),\n _createElementVNode(\"td\", _hoisted_16, [\n _createElementVNode(\"span\", _hoisted_17, _toDisplayString(_ctx.$t('user.ADMIN')), 1),\n _createElementVNode(\"i\", {\n class: _normalizeClass(`fa fa${user.admin ? '-check' : ''}-square-o`),\n \"aria-hidden\": \"true\"\n }, null, 2)\n ]),\n _createElementVNode(\"td\", _hoisted_18, [\n _createElementVNode(\"span\", _hoisted_19, _toDisplayString(_ctx.$t('admin.ACTION')), 1),\n _createElementVNode(\"button\", {\n class: _normalizeClass({ danger: user.admin }),\n disabled: user.username === _unref(authUser).username,\n onClick: ($event: any) => (updateUser(user.username, !user.admin))\n }, _toDisplayString(_ctx.$t(\n `admin.USERS.TABLE.${\n user.admin ? 'REMOVE' : 'ADD'\n }_ADMIN_RIGHTS`\n )), 11, _hoisted_20)\n ])\n ]))\n }), 128))\n ])\n ]),\n (_unref(pagination).page)\n ? (_openBlock(), _createBlock(Pagination, {\n key: 0,\n path: \"/admin/users\",\n pagination: _unref(pagination),\n query: _unref(query)\n }, null, 8, [\"pagination\", \"query\"]))\n : _createCommentVNode(\"\", true),\n (_unref(errorMessages))\n ? (_openBlock(), _createBlock(_component_ErrorMessage, {\n key: 1,\n message: _unref(errorMessages)\n }, null, 8, [\"message\"]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"button\", {\n onClick: _cache[1] || (_cache[1] = _withModifiers(($event: any) => (_ctx.$router.push('/admin')), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('admin.BACK_TO_ADMIN')), 1)\n ]))\n ]),\n _: 1\n })\n ]))\n}\n}\n\n})","import script from \"./AdminUsers.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AdminUsers.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./AdminUsers.vue?vue&type=style&index=0&id=dc12ff78&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-dc12ff78\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createElementVNode as _createElementVNode, toDisplayString as _toDisplayString } from \"vue\"\n\nconst _hoisted_1 = { class: \"profile-tabs custom-checkboxes-group\" }\nconst _hoisted_2 = { class: \"profile-tabs-checkboxes custom-checkboxes\" }\nconst _hoisted_3 = [\"id\", \"name\", \"checked\", \"disabled\", \"onInput\"]\n\nimport { toRefs, withDefaults } from 'vue'\n\n interface Props {\n tabs: string[]\n selectedTab: string\n edition: boolean\n disabled?: boolean\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'UserProfileTabs',\n props: {\n tabs: null,\n selectedTab: null,\n edition: { type: Boolean },\n disabled: { type: Boolean, default: false }\n },\n setup(__props: any) {\n\nconst props = __props as { tabs: string[], selectedTab: string, edition: boolean, disabled: boolean }\n\n \n\n const { tabs, selectedTab, disabled } = toRefs(props)\n\n function getPath(tab: string) {\n switch (tab) {\n case 'ACCOUNT':\n case 'PICTURE':\n return `/profile/edit/${tab.toLocaleLowerCase()}`\n case 'APPS':\n case 'PREFERENCES':\n case 'SPORTS':\n return `/profile${\n props.edition ? '/edit' : ''\n }/${tab.toLocaleLowerCase()}`\n default:\n case 'PROFILE':\n return `/profile${props.edition ? '/edit' : ''}`\n }\n }\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(tabs), (tab) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"profile-tab custom-checkbox\",\n key: tab\n }, [\n _createElementVNode(\"label\", null, [\n _createElementVNode(\"input\", {\n type: \"radio\",\n id: tab,\n name: tab,\n checked: _unref(selectedTab).split('/')[0] === tab,\n disabled: _unref(disabled),\n onInput: ($event: any) => (_ctx.$router.push(getPath(tab)))\n }, null, 40, _hoisted_3),\n _createElementVNode(\"span\", null, _toDisplayString(_ctx.$t(`user.PROFILE.TABS.${tab}`)), 1)\n ])\n ]))\n }), 128))\n ])\n ]))\n}\n}\n\n})","import script from \"./UserProfileTabs.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserProfileTabs.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserProfileTabs.vue?vue&type=style&index=0&id=01b05f01&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createVNode as _createVNode, resolveComponent as _resolveComponent, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-9729cba4\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"user-profile\" }\nconst _hoisted_2 = { class: \"box\" }\n\nimport { toRefs } from 'vue'\n\n import UserHeader from '@/components/User/ProfileDisplay/UserHeader.vue'\n import UserProfileTabs from '@/components/User/UserProfileTabs.vue'\n import { IUserProfile } from '@/types/user'\n\n interface Props {\n user: IUserProfile\n tab: string\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'index',\n props: {\n user: null,\n tab: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n user: IUserProfile\n tab: string\n }\n\n \n\n const { user, tab } = toRefs(props)\n const tabs = ['PROFILE', 'PREFERENCES', 'SPORTS', 'APPS']\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_view = _resolveComponent(\"router-view\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(UserHeader, { user: _unref(user) }, null, 8, [\"user\"]),\n _createElementVNode(\"div\", _hoisted_2, [\n _createVNode(UserProfileTabs, {\n tabs: tabs,\n selectedTab: _unref(tab),\n edition: false\n }, null, 8, [\"selectedTab\"]),\n _createVNode(_component_router_view, { user: _unref(user) }, null, 8, [\"user\"])\n ])\n ]))\n}\n}\n\n})","import script from \"./index.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./index.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./index.vue?vue&type=style&index=0&id=9729cba4&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-9729cba4\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, unref as _unref, 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, ComputedRef } from 'vue'\n\n import { ROOT_STORE } from '@/store/constants'\n import { IAuthUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n import { getDateFormat } from '@/utils/dates'\n import { languageLabels } from '@/utils/locales'\n\n interface Props {\n user: IAuthUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'UserPreferences',\n props: {\n user: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n user: IAuthUserProfile\n }\n\n \n\n const store = useStore()\n\n const appLanguage: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.LANGUAGE]\n )\n const userLanguage = computed(() =>\n props.user.language\n ? languageLabels[props.user.language]\n : languageLabels['en']\n )\n const fistDayOfWeek = computed(() => (props.user.weekm ? 'MONDAY' : 'SUNDAY'))\n const timezone = computed(() =>\n props.user.timezone ? props.user.timezone : 'Europe/Paris'\n )\n const date_format = computed(() =>\n props.user.date_format ? props.user.date_format : 'MM/dd/yyyy'\n )\n const display_ascent = computed(() =>\n props.user.display_ascent ? 'DISPLAYED' : 'HIDDEN'\n )\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"dl\", null, [\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('user.PROFILE.LANGUAGE')) + \":\", 1),\n _createElementVNode(\"dd\", null, _toDisplayString(_unref(userLanguage)), 1),\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('user.PROFILE.TIMEZONE')) + \":\", 1),\n _createElementVNode(\"dd\", null, _toDisplayString(_unref(timezone)), 1),\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('user.PROFILE.DATE_FORMAT')) + \":\", 1),\n _createElementVNode(\"dd\", null, _toDisplayString(_unref(getDateFormat)(_unref(date_format), _unref(appLanguage))), 1),\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('user.PROFILE.FIRST_DAY_OF_WEEK')) + \":\", 1),\n _createElementVNode(\"dd\", null, _toDisplayString(_ctx.$t(`user.PROFILE.${_unref(fistDayOfWeek)}`)), 1),\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('user.PROFILE.UNITS.LABEL')) + \":\", 1),\n _createElementVNode(\"dd\", null, _toDisplayString(_ctx.$t(\n `user.PROFILE.UNITS.${__props.user.imperial_units ? 'IMPERIAL' : 'METRIC'}`\n )), 1),\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('user.PROFILE.ASCENT_DATA')) + \":\", 1),\n _createElementVNode(\"dd\", null, _toDisplayString(_ctx.$t(`common.${_unref(display_ascent)}`)), 1)\n ]),\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-5e5a4552\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"user-infos-edition\" }\nconst _hoisted_2 = { class: \"profile-form form-box\" }\nconst _hoisted_3 = [\"onSubmit\"]\nconst _hoisted_4 = {\n class: \"form-items\",\n for: \"registrationDate\"\n}\nconst _hoisted_5 = [\"value\"]\nconst _hoisted_6 = {\n class: \"form-items\",\n for: \"first_name\"\n}\nconst _hoisted_7 = [\"disabled\"]\nconst _hoisted_8 = {\n class: \"form-items\",\n for: \"last_name\"\n}\nconst _hoisted_9 = {\n class: \"form-items\",\n for: \"birth_date\"\n}\nconst _hoisted_10 = [\"disabled\"]\nconst _hoisted_11 = {\n class: \"form-items\",\n for: \"location\"\n}\nconst _hoisted_12 = [\"disabled\"]\nconst _hoisted_13 = { class: \"form-items\" }\nconst _hoisted_14 = { class: \"form-buttons\" }\nconst _hoisted_15 = {\n class: \"confirm\",\n type: \"submit\"\n}\n\nimport { format } from 'date-fns'\n import { ComputedRef, computed, reactive, onMounted, onUnmounted } from 'vue'\n\n import { AUTH_USER_STORE, ROOT_STORE } from '@/store/constants'\n import { IUserProfile, IUserPayload, IAuthUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n import { formatDate } from '@/utils/dates'\n\n interface Props {\n user: IAuthUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'UserInfosEdition',\n props: {\n user: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n user: IAuthUserProfile\n }\n\n \n\n const store = useStore()\n\n const userForm: IUserPayload = reactive({\n first_name: '',\n last_name: '',\n birth_date: '',\n location: '',\n bio: '',\n })\n const registrationDate = computed(() =>\n props.user.created_at\n ? formatDate(\n props.user.created_at,\n props.user.timezone,\n props.user.date_format\n )\n : ''\n )\n const loading = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.USER_LOADING]\n )\n const errorMessages: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.ERROR_MESSAGES]\n )\n\n onMounted(() => {\n if (props.user) {\n updateUserForm(props.user)\n }\n })\n\n function updateUserForm(user: IUserProfile) {\n userForm.first_name = user.first_name ? user.first_name : ''\n userForm.last_name = user.last_name ? user.last_name : ''\n userForm.birth_date = user.birth_date\n ? format(new Date(user.birth_date), 'yyyy-MM-dd')\n : ''\n userForm.location = user.location ? user.location : ''\n userForm.bio = user.bio ? user.bio : ''\n }\n function updateBio(value: string) {\n userForm.bio = value\n }\n function updateProfile() {\n store.dispatch(AUTH_USER_STORE.ACTIONS.UPDATE_USER_PROFILE, userForm)\n }\n\n onUnmounted(() => {\n store.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n })\n\nreturn (_ctx: any,_cache: any) => {\n const _component_ErrorMessage = _resolveComponent(\"ErrorMessage\")!\n const _component_CustomTextArea = _resolveComponent(\"CustomTextArea\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n (_unref(errorMessages))\n ? (_openBlock(), _createBlock(_component_ErrorMessage, {\n key: 0,\n message: _unref(errorMessages)\n }, null, 8, [\"message\"]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"form\", {\n onSubmit: _withModifiers(updateProfile, [\"prevent\"])\n }, [\n _createElementVNode(\"label\", _hoisted_4, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.PROFILE.REGISTRATION_DATE')) + \" \", 1),\n _createElementVNode(\"input\", {\n id: \"registrationDate\",\n value: _unref(registrationDate),\n disabled: \"\"\n }, null, 8, _hoisted_5)\n ]),\n _createElementVNode(\"label\", _hoisted_6, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.PROFILE.FIRST_NAME')) + \" \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"first_name\",\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((userForm.first_name) = $event)),\n disabled: _unref(loading)\n }, null, 8, _hoisted_7), [\n [_vModelText, userForm.first_name]\n ])\n ]),\n _createElementVNode(\"label\", _hoisted_8, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.PROFILE.LAST_NAME')) + \" \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"last_name\",\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => ((userForm.last_name) = $event))\n }, null, 512), [\n [_vModelText, userForm.last_name]\n ])\n ]),\n _createElementVNode(\"label\", _hoisted_9, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.PROFILE.BIRTH_DATE')) + \" \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"birth_date\",\n type: \"date\",\n class: \"birth-date\",\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => ((userForm.birth_date) = $event)),\n disabled: _unref(loading)\n }, null, 8, _hoisted_10), [\n [_vModelText, userForm.birth_date]\n ])\n ]),\n _createElementVNode(\"label\", _hoisted_11, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.PROFILE.LOCATION')) + \" \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"location\",\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = ($event: any) => ((userForm.location) = $event)),\n disabled: _unref(loading)\n }, null, 8, _hoisted_12), [\n [_vModelText, userForm.location]\n ])\n ]),\n _createElementVNode(\"label\", _hoisted_13, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.PROFILE.BIO')) + \" \", 1),\n _createVNode(_component_CustomTextArea, {\n name: \"bio\",\n charLimit: 200,\n input: userForm.bio,\n disabled: _unref(loading),\n onUpdateValue: updateBio\n }, null, 8, [\"input\", \"disabled\"])\n ]),\n _createElementVNode(\"div\", _hoisted_14, [\n _createElementVNode(\"button\", _hoisted_15, _toDisplayString(_ctx.$t('buttons.SUBMIT')), 1),\n _createElementVNode(\"button\", {\n class: \"cancel\",\n onClick: _cache[4] || (_cache[4] = _withModifiers(($event: any) => (_ctx.$router.push('/profile')), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('buttons.CANCEL')), 1)\n ])\n ], 40, _hoisted_3)\n ])\n ]))\n}\n}\n\n})","import script from \"./UserInfosEdition.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserInfosEdition.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserInfosEdition.vue?vue&type=style&index=0&id=5e5a4552&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-5e5a4552\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createVNode as _createVNode, createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, createElementBlock as _createElementBlock, withModifiers as _withModifiers, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-687e9604\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"user-picture-edition\" }\nconst _hoisted_2 = { class: \"user-picture-form\" }\nconst _hoisted_3 = [\"onSubmit\"]\nconst _hoisted_4 = { class: \"picture-help\" }\nconst _hoisted_5 = { class: \"info-box\" }\nconst _hoisted_6 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-info-circle\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_7 = { class: \"picture-buttons\" }\nconst _hoisted_8 = [\"disabled\"]\n\nimport { ComputedRef, Ref, computed, ref, toRefs, onUnmounted } from 'vue'\n\n import UserPicture from '@/components/User/UserPicture.vue'\n import { AUTH_USER_STORE, ROOT_STORE } from '@/store/constants'\n import { TAppConfig } from '@/types/application'\n import { IUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n import { getReadableFileSize } from '@/utils/files'\n\n interface Props {\n user: IUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'UserPictureEdition',\n props: {\n user: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n user: IUserProfile\n }\n\n \n\n const store = useStore()\n\n const { user } = toRefs(props)\n const errorMessages: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.ERROR_MESSAGES]\n )\n const appConfig: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.APP_CONFIG]\n )\n const fileSizeLimit = appConfig.value.max_single_file_size\n ? getReadableFileSize(appConfig.value.max_single_file_size)\n : ''\n const pictureFile: Ref = ref(null)\n\n function deleteUserPicture() {\n store.dispatch(AUTH_USER_STORE.ACTIONS.DELETE_PICTURE)\n }\n function updatePictureFile(event: Event & { target: HTMLInputElement }) {\n if (event.target.files) {\n pictureFile.value = event.target.files[0]\n }\n }\n function updateUserPicture() {\n if (pictureFile.value) {\n store.dispatch(AUTH_USER_STORE.ACTIONS.UPDATE_USER_PICTURE, {\n picture: pictureFile.value,\n })\n }\n }\n\n onUnmounted(() => {\n store.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n })\n\nreturn (_ctx: any,_cache: any) => {\n const _component_ErrorMessage = _resolveComponent(\"ErrorMessage\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n (_unref(errorMessages))\n ? (_openBlock(), _createBlock(_component_ErrorMessage, {\n key: 0,\n message: _unref(errorMessages)\n }, null, 8, [\"message\"]))\n : _createCommentVNode(\"\", true),\n _createVNode(UserPicture, { user: _unref(user) }, null, 8, [\"user\"]),\n _createElementVNode(\"form\", {\n onSubmit: _withModifiers(updateUserPicture, [\"prevent\"])\n }, [\n _createElementVNode(\"input\", {\n type: \"file\",\n name: \"picture\",\n accept: \".png,.jpg,.gif\",\n onInput: updatePictureFile\n }, null, 32),\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"span\", _hoisted_5, [\n _hoisted_6,\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('workouts.MAX_SIZE')) + \": \" + _toDisplayString(_unref(fileSizeLimit)), 1)\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_7, [\n _createElementVNode(\"button\", {\n type: \"submit\",\n disabled: !pictureFile.value\n }, _toDisplayString(_ctx.$t('user.PROFILE.PICTURE_UPDATE')), 9, _hoisted_8),\n (_unref(user).picture)\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 0,\n class: \"danger\",\n onClick: deleteUserPicture\n }, _toDisplayString(_ctx.$t('user.PROFILE.PICTURE_REMOVE')), 1))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"button\", {\n class: \"cancel\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.$router.push('/profile')))\n }, _toDisplayString(_ctx.$t('user.PROFILE.BACK_TO_PROFILE')), 1)\n ])\n ], 40, _hoisted_3)\n ])\n ]))\n}\n}\n\n})","import script from \"./UserPictureEdition.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserPictureEdition.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserPictureEdition.vue?vue&type=style&index=0&id=687e9604&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-687e9604\"]])\n\nexport default __exports__","export const timeZones = [\n 'Africa/Abidjan',\n 'Africa/Accra',\n 'Africa/Algiers',\n 'Africa/Bissau',\n 'Africa/Cairo',\n 'Africa/Casablanca',\n 'Africa/Ceuta',\n 'Africa/El_Aaiun',\n 'Africa/Johannesburg',\n 'Africa/Juba',\n 'Africa/Khartoum',\n 'Africa/Lagos',\n 'Africa/Maputo',\n 'Africa/Monrovia',\n 'Africa/Nairobi',\n 'Africa/Ndjamena',\n 'Africa/Sao_Tome',\n 'Africa/Tripoli',\n 'Africa/Tunis',\n 'Africa/Windhoek',\n 'America/Adak',\n 'America/Anchorage',\n 'America/Araguaina',\n 'America/Argentina/Buenos_Aires',\n 'America/Argentina/Catamarca',\n 'America/Argentina/Cordoba',\n 'America/Argentina/Jujuy',\n 'America/Argentina/La_Rioja',\n 'America/Argentina/Mendoza',\n 'America/Argentina/Rio_Gallegos',\n 'America/Argentina/Salta',\n 'America/Argentina/San_Juan',\n 'America/Argentina/San_Luis',\n 'America/Argentina/Tucuman',\n 'America/Argentina/Ushuaia',\n 'America/Asuncion',\n 'America/Atikokan',\n 'America/Bahia',\n 'America/Bahia_Banderas',\n 'America/Barbados',\n 'America/Belem',\n 'America/Belize',\n 'America/Blanc-Sablon',\n 'America/Boa_Vista',\n 'America/Bogota',\n 'America/Boise',\n 'America/Cambridge_Bay',\n 'America/Campo_Grande',\n 'America/Cancun',\n 'America/Caracas',\n 'America/Cayenne',\n 'America/Chicago',\n 'America/Chihuahua',\n 'America/Costa_Rica',\n 'America/Creston',\n 'America/Cuiaba',\n 'America/Curacao',\n 'America/Danmarkshavn',\n 'America/Dawson',\n 'America/Dawson_Creek',\n 'America/Denver',\n 'America/Detroit',\n 'America/Edmonton',\n 'America/Eirunepe',\n 'America/El_Salvador',\n 'America/Fortaleza',\n 'America/Fort_Nelson',\n 'America/Glace_Bay',\n 'America/Godthab',\n 'America/Goose_Bay',\n 'America/Grand_Turk',\n 'America/Guatemala',\n 'America/Guayaquil',\n 'America/Guyana',\n 'America/Halifax',\n 'America/Havana',\n 'America/Hermosillo',\n 'America/Indiana/Indianapolis',\n 'America/Indiana/Knox',\n 'America/Indiana/Marengo',\n 'America/Indiana/Petersburg',\n 'America/Indiana/Tell_City',\n 'America/Indiana/Vevay',\n 'America/Indiana/Vincennes',\n 'America/Indiana/Winamac',\n 'America/Inuvik',\n 'America/Iqaluit',\n 'America/Jamaica',\n 'America/Juneau',\n 'America/Kentucky/Louisville',\n 'America/Kentucky/Monticello',\n 'America/La_Paz',\n 'America/Lima',\n 'America/Los_Angeles',\n 'America/Maceio',\n 'America/Managua',\n 'America/Manaus',\n 'America/Martinique',\n 'America/Matamoros',\n 'America/Mazatlan',\n 'America/Menominee',\n 'America/Merida',\n 'America/Metlakatla',\n 'America/Mexico_City',\n 'America/Miquelon',\n 'America/Moncton',\n 'America/Monterrey',\n 'America/Montevideo',\n 'America/Nassau',\n 'America/New_York',\n 'America/Nipigon',\n 'America/Nome',\n 'America/Noronha',\n 'America/North_Dakota/Beulah',\n 'America/North_Dakota/Center',\n 'America/North_Dakota/New_Salem',\n 'America/Ojinaga',\n 'America/Panama',\n 'America/Pangnirtung',\n 'America/Paramaribo',\n 'America/Phoenix',\n 'America/Port-au-Prince',\n 'America/Port_of_Spain',\n 'America/Porto_Velho',\n 'America/Puerto_Rico',\n 'America/Punta_Arenas',\n 'America/Rainy_River',\n 'America/Rankin_Inlet',\n 'America/Recife',\n 'America/Regina',\n 'America/Resolute',\n 'America/Rio_Branco',\n 'America/Santarem',\n 'America/Santiago',\n 'America/Santo_Domingo',\n 'America/Sao_Paulo',\n 'America/Scoresbysund',\n 'America/Sitka',\n 'America/St_Johns',\n 'America/Swift_Current',\n 'America/Tegucigalpa',\n 'America/Thule',\n 'America/Thunder_Bay',\n 'America/Tijuana',\n 'America/Toronto',\n 'America/Vancouver',\n 'America/Whitehorse',\n 'America/Winnipeg',\n 'America/Yakutat',\n 'America/Yellowknife',\n 'Antarctica/Casey',\n 'Antarctica/Davis',\n 'Antarctica/DumontDUrville',\n 'Antarctica/Macquarie',\n 'Antarctica/Mawson',\n 'Antarctica/Palmer',\n 'Antarctica/Rothera',\n 'Antarctica/Syowa',\n 'Antarctica/Troll',\n 'Antarctica/Vostok',\n 'Asia/Almaty',\n 'Asia/Amman',\n 'Asia/Anadyr',\n 'Asia/Aqtau',\n 'Asia/Aqtobe',\n 'Asia/Ashgabat',\n 'Asia/Atyrau',\n 'Asia/Baghdad',\n 'Asia/Baku',\n 'Asia/Bangkok',\n 'Asia/Barnaul',\n 'Asia/Beirut',\n 'Asia/Bishkek',\n 'Asia/Brunei',\n 'Asia/Chita',\n 'Asia/Choibalsan',\n 'Asia/Colombo',\n 'Asia/Damascus',\n 'Asia/Dhaka',\n 'Asia/Dili',\n 'Asia/Dubai',\n 'Asia/Dushanbe',\n 'Asia/Famagusta',\n 'Asia/Gaza',\n 'Asia/Hebron',\n 'Asia/Ho_Chi_Minh',\n 'Asia/Hong_Kong',\n 'Asia/Hovd',\n 'Asia/Irkutsk',\n 'Asia/Jakarta',\n 'Asia/Jayapura',\n 'Asia/Jerusalem',\n 'Asia/Kabul',\n 'Asia/Kamchatka',\n 'Asia/Karachi',\n 'Asia/Kathmandu',\n 'Asia/Khandyga',\n 'Asia/Kolkata',\n 'Asia/Krasnoyarsk',\n 'Asia/Kuala_Lumpur',\n 'Asia/Kuching',\n 'Asia/Macau',\n 'Asia/Magadan',\n 'Asia/Makassar',\n 'Asia/Manila',\n 'Asia/Nicosia',\n 'Asia/Novokuznetsk',\n 'Asia/Novosibirsk',\n 'Asia/Omsk',\n 'Asia/Oral',\n 'Asia/Pontianak',\n 'Asia/Pyongyang',\n 'Asia/Qatar',\n 'Asia/Qostanay',\n 'Asia/Qyzylorda',\n 'Asia/Riyadh',\n 'Asia/Sakhalin',\n 'Asia/Samarkand',\n 'Asia/Seoul',\n 'Asia/Shanghai',\n 'Asia/Singapore',\n 'Asia/Srednekolymsk',\n 'Asia/Taipei',\n 'Asia/Tashkent',\n 'Asia/Tbilisi',\n 'Asia/Tehran',\n 'Asia/Thimphu',\n 'Asia/Tokyo',\n 'Asia/Tomsk',\n 'Asia/Ulaanbaatar',\n 'Asia/Urumqi',\n 'Asia/Ust-Nera',\n 'Asia/Vladivostok',\n 'Asia/Yakutsk',\n 'Asia/Yangon',\n 'Asia/Yekaterinburg',\n 'Asia/Yerevan',\n 'Atlantic/Azores',\n 'Atlantic/Bermuda',\n 'Atlantic/Canary',\n 'Atlantic/Cape_Verde',\n 'Atlantic/Faroe',\n 'Atlantic/Madeira',\n 'Atlantic/Reykjavik',\n 'Atlantic/South_Georgia',\n 'Atlantic/Stanley',\n 'Australia/Adelaide',\n 'Australia/Brisbane',\n 'Australia/Broken_Hill',\n 'Australia/Currie',\n 'Australia/Darwin',\n 'Australia/Eucla',\n 'Australia/Hobart',\n 'Australia/Lindeman',\n 'Australia/Lord_Howe',\n 'Australia/Melbourne',\n 'Australia/Perth',\n 'Australia/Sydney',\n 'Europe/Amsterdam',\n 'Europe/Andorra',\n 'Europe/Astrakhan',\n 'Europe/Athens',\n 'Europe/Belgrade',\n 'Europe/Berlin',\n 'Europe/Brussels',\n 'Europe/Bucharest',\n 'Europe/Budapest',\n 'Europe/Chisinau',\n 'Europe/Copenhagen',\n 'Europe/Dublin',\n 'Europe/Gibraltar',\n 'Europe/Helsinki',\n 'Europe/Istanbul',\n 'Europe/Kaliningrad',\n 'Europe/Kiev',\n 'Europe/Kirov',\n 'Europe/Lisbon',\n 'Europe/London',\n 'Europe/Luxembourg',\n 'Europe/Madrid',\n 'Europe/Malta',\n 'Europe/Minsk',\n 'Europe/Monaco',\n 'Europe/Moscow',\n 'Europe/Oslo',\n 'Europe/Paris',\n 'Europe/Prague',\n 'Europe/Riga',\n 'Europe/Rome',\n 'Europe/Samara',\n 'Europe/Saratov',\n 'Europe/Simferopol',\n 'Europe/Sofia',\n 'Europe/Stockholm',\n 'Europe/Tallinn',\n 'Europe/Tirane',\n 'Europe/Ulyanovsk',\n 'Europe/Uzhgorod',\n 'Europe/Vienna',\n 'Europe/Vilnius',\n 'Europe/Volgograd',\n 'Europe/Warsaw',\n 'Europe/Zaporozhye',\n 'Europe/Zurich',\n 'Indian/Chagos',\n 'Indian/Christmas',\n 'Indian/Cocos',\n 'Indian/Kerguelen',\n 'Indian/Mahe',\n 'Indian/Maldives',\n 'Indian/Mauritius',\n 'Indian/Reunion',\n 'Pacific/Apia',\n 'Pacific/Auckland',\n 'Pacific/Bougainville',\n 'Pacific/Chatham',\n 'Pacific/Chuuk',\n 'Pacific/Easter',\n 'Pacific/Efate',\n 'Pacific/Enderbury',\n 'Pacific/Fakaofo',\n 'Pacific/Fiji',\n 'Pacific/Funafuti',\n 'Pacific/Galapagos',\n 'Pacific/Gambier',\n 'Pacific/Guadalcanal',\n 'Pacific/Guam',\n 'Pacific/Honolulu',\n 'Pacific/Kiritimati',\n 'Pacific/Kosrae',\n 'Pacific/Kwajalein',\n 'Pacific/Majuro',\n 'Pacific/Marquesas',\n 'Pacific/Nauru',\n 'Pacific/Niue',\n 'Pacific/Norfolk',\n 'Pacific/Noumea',\n 'Pacific/Pago_Pago',\n 'Pacific/Palau',\n 'Pacific/Pitcairn',\n 'Pacific/Pohnpei',\n 'Pacific/Port_Moresby',\n 'Pacific/Rarotonga',\n 'Pacific/Tahiti',\n 'Pacific/Tarawa',\n 'Pacific/Tongatapu',\n 'Pacific/Wake',\n 'Pacific/Wallis',\n]\n","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, withKeys as _withKeys, createElementVNode as _createElementVNode, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, normalizeClass as _normalizeClass, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-47ea2903\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"tz-dropdown\" }\nconst _hoisted_2 = [\"value\", \"disabled\", \"onKeydown\"]\nconst _hoisted_3 = [\"onClick\", \"onMouseover\", \"autofocus\"]\n\nimport { Ref, ref, toRefs, watch, withDefaults } from 'vue'\n\n import { timeZones } from '@/utils/timezone'\n\n interface Props {\n input: string\n disabled?: boolean\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'TimezoneDropdown',\n props: {\n input: null,\n disabled: { type: Boolean, default: false }\n },\n emits: ['updateTimezone'],\n setup(__props: any, { emit }) {\n\nconst props = __props as { input: string, disabled: boolean }\n\n \n\n \n\n const { input, disabled } = toRefs(props)\n const timezone: Ref = ref(props.input)\n const isOpen: Ref = ref(false)\n const tzList: Ref = ref(null)\n const focusItemIndex: Ref = ref(0)\n\n function matchTimezone(t: string): RegExpMatchArray | null {\n return t.toLowerCase().match(timezone.value.toLowerCase())\n }\n function onMouseOver(index: number) {\n focusItemIndex.value = index\n }\n function onUpdateTimezone(value: string) {\n timezone.value = value\n isOpen.value = false\n emit('updateTimezone', value)\n }\n function onEnter(event: Event & { target: HTMLInputElement }) {\n event.preventDefault()\n if (tzList.value?.firstElementChild?.innerHTML) {\n onUpdateTimezone(tzList.value?.firstElementChild?.innerHTML)\n }\n }\n function openDropdown(event: Event & { target: HTMLInputElement }) {\n event.preventDefault()\n isOpen.value = true\n timezone.value = event.target.value.trim()\n }\n\n watch(\n () => props.input,\n (value) => {\n timezone.value = value\n }\n )\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"input\", {\n class: \"tz-dropdown-input\",\n id: \"timezone\",\n name: \"timezone\",\n value: timezone.value,\n disabled: _unref(disabled),\n required: \"\",\n onKeydown: [\n _cache[0] || (_cache[0] = _withKeys(($event: any) => (onUpdateTimezone(_unref(input))), [\"esc\"])),\n _withKeys(onEnter, [\"enter\"])\n ],\n onInput: openDropdown\n }, null, 40, _hoisted_2),\n (isOpen.value)\n ? (_openBlock(), _createElementBlock(\"ul\", {\n key: 0,\n class: \"tz-dropdown-list\",\n ref_key: \"tzList\",\n ref: tzList\n }, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(timeZones).filter((t) => matchTimezone(t)), (tz, index) => {\n return (_openBlock(), _createElementBlock(\"li\", {\n key: tz,\n class: _normalizeClass([\"tz-dropdown-item\", { focus: index === focusItemIndex.value }]),\n onClick: ($event: any) => (onUpdateTimezone(tz)),\n onMouseover: ($event: any) => (onMouseOver(index)),\n autofocus: index === focusItemIndex.value\n }, _toDisplayString(tz), 43, _hoisted_3))\n }), 128))\n ], 512))\n : _createCommentVNode(\"\", true)\n ]))\n}\n}\n\n})","import script from \"./TimezoneDropdown.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./TimezoneDropdown.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./TimezoneDropdown.vue?vue&type=style&index=0&id=47ea2903&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-47ea2903\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, renderList as _renderList, Fragment as _Fragment, createElementBlock as _createElementBlock, vModelSelect as _vModelSelect, createElementVNode as _createElementVNode, withDirectives as _withDirectives, createTextVNode as _createTextVNode, createVNode as _createVNode, withModifiers as _withModifiers, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-065d5e6c\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"user-preferences-edition\" }\nconst _hoisted_2 = { class: \"profile-form form-box\" }\nconst _hoisted_3 = [\"onSubmit\"]\nconst _hoisted_4 = { class: \"form-items\" }\nconst _hoisted_5 = [\"disabled\"]\nconst _hoisted_6 = [\"value\"]\nconst _hoisted_7 = { class: \"form-items\" }\nconst _hoisted_8 = { class: \"form-items\" }\nconst _hoisted_9 = [\"disabled\"]\nconst _hoisted_10 = [\"value\"]\nconst _hoisted_11 = { class: \"form-items form-checkboxes\" }\nconst _hoisted_12 = { class: \"checkboxes-label\" }\nconst _hoisted_13 = { class: \"checkboxes\" }\nconst _hoisted_14 = [\"id\", \"name\", \"checked\", \"disabled\", \"onInput\"]\nconst _hoisted_15 = { class: \"checkbox-label\" }\nconst _hoisted_16 = { class: \"form-items form-checkboxes\" }\nconst _hoisted_17 = { class: \"checkboxes-label\" }\nconst _hoisted_18 = { class: \"checkboxes\" }\nconst _hoisted_19 = [\"id\", \"name\", \"checked\", \"disabled\", \"onInput\"]\nconst _hoisted_20 = { class: \"checkbox-label\" }\nconst _hoisted_21 = { class: \"form-items form-checkboxes\" }\nconst _hoisted_22 = { class: \"checkboxes-label\" }\nconst _hoisted_23 = { class: \"checkboxes\" }\nconst _hoisted_24 = [\"id\", \"name\", \"checked\", \"disabled\", \"onInput\"]\nconst _hoisted_25 = { class: \"checkbox-label\" }\nconst _hoisted_26 = { class: \"form-buttons\" }\nconst _hoisted_27 = {\n class: \"confirm\",\n type: \"submit\"\n}\n\nimport { ComputedRef, computed, reactive, onMounted, onUnmounted } from 'vue'\n\n import TimezoneDropdown from '@/components/User/ProfileEdition/TimezoneDropdown.vue'\n import { AUTH_USER_STORE, ROOT_STORE } from '@/store/constants'\n import { IUserPreferencesPayload, IAuthUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n import { availableDateFormatOptions } from '@/utils/dates'\n import { availableLanguages } from '@/utils/locales'\n\n interface Props {\n user: IAuthUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'UserPreferencesEdition',\n props: {\n user: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n user: IAuthUserProfile\n }\n\n \n\n const store = useStore()\n\n const userForm: IUserPreferencesPayload = reactive({\n display_ascent: true,\n imperial_units: false,\n language: '',\n timezone: 'Europe/Paris',\n date_format: 'dd/MM/yyyy',\n weekm: false,\n })\n const weekStart = [\n {\n label: 'SUNDAY',\n value: false,\n },\n {\n label: 'MONDAY',\n value: true,\n },\n ]\n const imperialUnits = [\n {\n label: 'METRIC',\n value: false,\n },\n {\n label: 'IMPERIAL',\n value: true,\n },\n ]\n const ascentData = [\n {\n label: 'DISPLAYED',\n value: true,\n },\n {\n label: 'HIDDEN',\n value: false,\n },\n ]\n const loading = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.USER_LOADING]\n )\n const errorMessages: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.ERROR_MESSAGES]\n )\n const dateFormatOptions = computed(() =>\n availableDateFormatOptions(\n new Date().toUTCString(),\n props.user.timezone,\n userForm.language\n )\n )\n\n onMounted(() => {\n if (props.user) {\n updateUserForm(props.user)\n }\n })\n\n function updateUserForm(user: IAuthUserProfile) {\n userForm.display_ascent = user.display_ascent\n userForm.imperial_units = user.imperial_units ? user.imperial_units : false\n userForm.language = user.language ? user.language : 'en'\n userForm.timezone = user.timezone ? user.timezone : 'Europe/Paris'\n userForm.date_format = user.date_format ? user.date_format : 'dd/MM/yyyy'\n userForm.weekm = user.weekm ? user.weekm : false\n }\n function updateProfile() {\n store.dispatch(AUTH_USER_STORE.ACTIONS.UPDATE_USER_PREFERENCES, userForm)\n }\n function updateTZ(value: string) {\n userForm.timezone = value\n }\n function updateAscentDisplay(value: boolean) {\n userForm.display_ascent = value\n }\n function updateImperialUnit(value: boolean) {\n userForm.imperial_units = value\n }\n function updateWeekM(value: boolean) {\n userForm.weekm = value\n }\n\n onUnmounted(() => {\n store.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n })\n\nreturn (_ctx: any,_cache: any) => {\n const _component_ErrorMessage = _resolveComponent(\"ErrorMessage\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n (_unref(errorMessages))\n ? (_openBlock(), _createBlock(_component_ErrorMessage, {\n key: 0,\n message: _unref(errorMessages)\n }, null, 8, [\"message\"]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"form\", {\n onSubmit: _withModifiers(updateProfile, [\"prevent\"])\n }, [\n _createElementVNode(\"label\", _hoisted_4, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.PROFILE.LANGUAGE')) + \" \", 1),\n _withDirectives(_createElementVNode(\"select\", {\n id: \"language\",\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((userForm.language) = $event)),\n disabled: _unref(loading)\n }, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(availableLanguages), (lang) => {\n return (_openBlock(), _createElementBlock(\"option\", {\n value: lang.value,\n key: lang.value\n }, _toDisplayString(lang.label), 9, _hoisted_6))\n }), 128))\n ], 8, _hoisted_5), [\n [_vModelSelect, userForm.language]\n ])\n ]),\n _createElementVNode(\"label\", _hoisted_7, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.PROFILE.TIMEZONE')) + \" \", 1),\n _createVNode(TimezoneDropdown, {\n input: userForm.timezone,\n disabled: _unref(loading),\n onUpdateTimezone: updateTZ\n }, null, 8, [\"input\", \"disabled\"])\n ]),\n _createElementVNode(\"label\", _hoisted_8, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.PROFILE.DATE_FORMAT')) + \" \", 1),\n _withDirectives(_createElementVNode(\"select\", {\n id: \"date_format\",\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => ((userForm.date_format) = $event)),\n disabled: _unref(loading)\n }, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(dateFormatOptions), (dateFormat) => {\n return (_openBlock(), _createElementBlock(\"option\", {\n value: dateFormat.value,\n key: dateFormat.value\n }, _toDisplayString(dateFormat.label), 9, _hoisted_10))\n }), 128))\n ], 8, _hoisted_9), [\n [_vModelSelect, userForm.date_format]\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_11, [\n _createElementVNode(\"span\", _hoisted_12, _toDisplayString(_ctx.$t('user.PROFILE.FIRST_DAY_OF_WEEK')), 1),\n _createElementVNode(\"div\", _hoisted_13, [\n (_openBlock(), _createElementBlock(_Fragment, null, _renderList(weekStart, (start) => {\n return _createElementVNode(\"label\", {\n key: start.label\n }, [\n _createElementVNode(\"input\", {\n type: \"radio\",\n id: start.label,\n name: start.label,\n checked: start.value === userForm.weekm,\n disabled: _unref(loading),\n onInput: ($event: any) => (updateWeekM(start.value))\n }, null, 40, _hoisted_14),\n _createElementVNode(\"span\", _hoisted_15, _toDisplayString(_ctx.$t(`user.PROFILE.${start.label}`)), 1)\n ])\n }), 64))\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_16, [\n _createElementVNode(\"span\", _hoisted_17, _toDisplayString(_ctx.$t('user.PROFILE.UNITS.LABEL')), 1),\n _createElementVNode(\"div\", _hoisted_18, [\n (_openBlock(), _createElementBlock(_Fragment, null, _renderList(imperialUnits, (unit) => {\n return _createElementVNode(\"label\", {\n key: unit.label\n }, [\n _createElementVNode(\"input\", {\n type: \"radio\",\n id: unit.label,\n name: unit.label,\n checked: unit.value === userForm.imperial_units,\n disabled: _unref(loading),\n onInput: ($event: any) => (updateImperialUnit(unit.value))\n }, null, 40, _hoisted_19),\n _createElementVNode(\"span\", _hoisted_20, _toDisplayString(_ctx.$t(`user.PROFILE.UNITS.${unit.label}`)), 1)\n ])\n }), 64))\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_21, [\n _createElementVNode(\"span\", _hoisted_22, _toDisplayString(_ctx.$t('user.PROFILE.ASCENT_DATA')), 1),\n _createElementVNode(\"div\", _hoisted_23, [\n (_openBlock(), _createElementBlock(_Fragment, null, _renderList(ascentData, (status) => {\n return _createElementVNode(\"label\", {\n key: status.label\n }, [\n _createElementVNode(\"input\", {\n type: \"radio\",\n id: status.label,\n name: status.label,\n checked: status.value === userForm.display_ascent,\n disabled: _unref(loading),\n onInput: ($event: any) => (updateAscentDisplay(status.value))\n }, null, 40, _hoisted_24),\n _createElementVNode(\"span\", _hoisted_25, _toDisplayString(_ctx.$t(`common.${status.label}`)), 1)\n ])\n }), 64))\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_26, [\n _createElementVNode(\"button\", _hoisted_27, _toDisplayString(_ctx.$t('buttons.SUBMIT')), 1),\n _createElementVNode(\"button\", {\n class: \"cancel\",\n onClick: _cache[2] || (_cache[2] = _withModifiers(($event: any) => (_ctx.$router.push('/profile/preferences')), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('buttons.CANCEL')), 1)\n ])\n ], 40, _hoisted_3)\n ])\n ]))\n}\n}\n\n})","import script from \"./UserPreferencesEdition.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserPreferencesEdition.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserPreferencesEdition.vue?vue&type=style&index=0&id=065d5e6c&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-065d5e6c\"]])\n\nexport default __exports__","export const oauth2_scopes = [\n 'profile:read',\n 'profile:write',\n 'users:read',\n 'users:write',\n 'workouts:read',\n 'workouts:write',\n]\n\nexport const admin_oauth2_scopes = ['application:write']\n","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, vModelText as _vModelText, withDirectives as _withDirectives, resolveComponent as _resolveComponent, createVNode as _createVNode, unref as _unref, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, withModifiers as _withModifiers, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-0657ee77\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"new-oauth2-app\" }\nconst _hoisted_2 = { id: \"new-oauth2-title\" }\nconst _hoisted_3 = { id: \"apps-form\" }\nconst _hoisted_4 = [\"onSubmit\"]\nconst _hoisted_5 = { class: \"form-items\" }\nconst _hoisted_6 = { class: \"form-item\" }\nconst _hoisted_7 = { for: \"app-name\" }\nconst _hoisted_8 = { class: \"form-item\" }\nconst _hoisted_9 = { for: \"app-description\" }\nconst _hoisted_10 = { class: \"form-item\" }\nconst _hoisted_11 = { for: \"app-url\" }\nconst _hoisted_12 = { class: \"form-item\" }\nconst _hoisted_13 = { for: \"app-redirect-uri\" }\nconst _hoisted_14 = { class: \"form-item-scope\" }\nconst _hoisted_15 = { class: \"form-item-scope-label\" }\nconst _hoisted_16 = { class: \"scope-label\" }\nconst _hoisted_17 = [\"name\", \"checked\", \"onChange\"]\nconst _hoisted_18 = [\"innerHTML\"]\nconst _hoisted_19 = { class: \"form-buttons\" }\nconst _hoisted_20 = [\"disabled\"]\n\nimport { computed, reactive } from 'vue'\n\n import { OAUTH2_STORE } from '@/store/constants'\n import { IOAuth2ClientPayload } from '@/types/oauth'\n import { IAuthUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n import { admin_oauth2_scopes, oauth2_scopes } from '@/utils/oauth'\n\n interface Props {\n authUser: IAuthUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'AddUserApp',\n props: {\n authUser: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n authUser: IAuthUserProfile\n }\n\n \n\n const store = useStore()\n const appForm = reactive({\n client_name: '',\n client_uri: '',\n client_description: '',\n redirect_uri: '',\n })\n const scopes: string[] = reactive([])\n const filtered_scopes = computed(() =>\n getScopes(props.authUser, admin_oauth2_scopes, oauth2_scopes)\n )\n\n function createApp() {\n const payload: IOAuth2ClientPayload = {\n client_name: appForm.client_name,\n client_description: appForm.client_description,\n client_uri: appForm.client_uri,\n redirect_uris: [appForm.redirect_uri],\n scope: scopes.sort().join(' '),\n }\n store.dispatch(OAUTH2_STORE.ACTIONS.CREATE_CLIENT, payload)\n }\n function updateDescription(value: string) {\n appForm.client_description = value\n }\n function updateScopes(scope: string) {\n const index = scopes.indexOf(scope)\n if (index > -1) {\n scopes.splice(index, 1)\n } else {\n scopes.push(scope)\n }\n }\n function getScopes(\n authUser: IAuthUserProfile,\n admin_scopes: string[],\n scopes: string[]\n ) {\n const filtered_scopes = [...scopes]\n if (authUser.admin) {\n filtered_scopes.push(...admin_scopes)\n }\n return filtered_scopes.sort()\n }\n\nreturn (_ctx: any,_cache: any) => {\n const _component_CustomTextArea = _resolveComponent(\"CustomTextArea\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"h1\", _hoisted_2, _toDisplayString(_ctx.$t('oauth2.ADD_A_NEW_APP')), 1),\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"form\", {\n onSubmit: _withModifiers(createApp, [\"prevent\"])\n }, [\n _createElementVNode(\"div\", _hoisted_5, [\n _createElementVNode(\"div\", _hoisted_6, [\n _createElementVNode(\"label\", _hoisted_7, _toDisplayString(_ctx.$t('oauth2.APP.NAME')) + \"*\", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"app-name\",\n type: \"text\",\n required: \"\",\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((appForm.client_name) = $event))\n }, null, 512), [\n [_vModelText, appForm.client_name]\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_8, [\n _createElementVNode(\"label\", _hoisted_9, _toDisplayString(_ctx.$t('oauth2.APP.DESCRIPTION')), 1),\n _createVNode(_component_CustomTextArea, {\n name: \"app-description\",\n charLimit: 200,\n input: appForm.description,\n onUpdateValue: updateDescription\n }, null, 8, [\"input\"])\n ]),\n _createElementVNode(\"div\", _hoisted_10, [\n _createElementVNode(\"label\", _hoisted_11, _toDisplayString(_ctx.$t('oauth2.APP.URL')) + \"*\", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"app-url\",\n type: \"text\",\n required: \"\",\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => ((appForm.client_uri) = $event))\n }, null, 512), [\n [_vModelText, appForm.client_uri]\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_12, [\n _createElementVNode(\"label\", _hoisted_13, _toDisplayString(_ctx.$t('oauth2.APP.REDIRECT_URL')) + \"* \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"app-redirect-uri\",\n type: \"text\",\n required: \"\",\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => ((appForm.redirect_uri) = $event))\n }, null, 512), [\n [_vModelText, appForm.redirect_uri]\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_14, [\n _createElementVNode(\"div\", _hoisted_15, _toDisplayString(_ctx.$t('oauth2.APP.SCOPE.LABEL')) + \"* \", 1),\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(filtered_scopes), (scope) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"form-item-scope-checkboxes\",\n key: scope\n }, [\n _createElementVNode(\"label\", _hoisted_16, [\n _createElementVNode(\"input\", {\n type: \"checkbox\",\n name: scope,\n checked: scopes.includes(scope),\n onChange: ($event: any) => (updateScopes(scope))\n }, null, 40, _hoisted_17),\n _createElementVNode(\"code\", null, _toDisplayString(scope), 1)\n ]),\n _createElementVNode(\"p\", {\n class: \"scope-description\",\n innerHTML: _ctx.$t(`oauth2.APP.SCOPE.${scope}_DESCRIPTION`)\n }, null, 8, _hoisted_18)\n ]))\n }), 128))\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_19, [\n _createElementVNode(\"button\", {\n class: \"confirm\",\n type: \"submit\",\n disabled: scopes.length === 0\n }, _toDisplayString(_ctx.$t('buttons.SUBMIT')), 9, _hoisted_20),\n _createElementVNode(\"button\", {\n class: \"cancel\",\n onClick: _cache[3] || (_cache[3] = _withModifiers(() => _ctx.$router.push('/profile/apps'), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('buttons.CANCEL')), 1)\n ])\n ], 40, _hoisted_4)\n ])\n ]))\n}\n}\n\n})","import script from \"./AddUserApp.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AddUserApp.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./AddUserApp.vue?vue&type=style&index=0&id=0657ee77&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-0657ee77\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, createElementVNode as _createElementVNode, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, renderList as _renderList, Fragment as _Fragment, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-3b2fe9ed\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"authorize-oauth2-app\" }\nconst _hoisted_2 = { key: 0 }\nconst _hoisted_3 = { id: \"authorize-oauth2-title\" }\nconst _hoisted_4 = { class: \"oauth2-access description-list\" }\nconst _hoisted_5 = { class: \"client-scope\" }\nconst _hoisted_6 = [\"innerHTML\"]\nconst _hoisted_7 = { class: \"authorize-oauth2-buttons\" }\nconst _hoisted_8 = { key: 1 }\nconst _hoisted_9 = { class: \"no-app\" }\n\nimport { computed, ComputedRef, onBeforeMount } from 'vue'\n import { useRoute } from 'vue-router'\n\n import { OAUTH2_STORE, ROOT_STORE } from '@/store/constants'\n import { IOAuth2Client } from '@/types/oauth'\n import { useStore } from '@/use/useStore'\n\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'AuthorizeUserApp',\n setup(__props) {\n\n const route = useRoute()\n const store = useStore()\n\n const client: ComputedRef = computed(\n () => store.getters[OAUTH2_STORE.GETTERS.CLIENT]\n )\n const errorMessages: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.ERROR_MESSAGES]\n )\n\n onBeforeMount(() => loadApp())\n\n function loadApp() {\n if (route.query.client_id && typeof route.query.client_id === 'string') {\n store.dispatch(\n OAUTH2_STORE.ACTIONS.GET_CLIENT_BY_CLIENT_ID,\n route.query.client_id\n )\n }\n }\n\n function authorizeApp() {\n store.dispatch(OAUTH2_STORE.ACTIONS.AUTHORIZE_CLIENT, {\n client_id: `${route.query.client_id}`,\n redirect_uri: `${route.query.redirect_uri}`,\n response_type: `${route.query.response_type}`,\n scope: `${route.query.scope}`,\n state: `${route.query.state ? route.query.state : ''}`,\n code_challenge: `${\n route.query.code_challenge ? route.query.code_challenge : ''\n }`,\n code_challenge_method: `${\n route.query.code_challenge_method\n ? route.query.code_challenge_method\n : ''\n }`,\n })\n }\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_link = _resolveComponent(\"router-link\")!\n const _component_i18n_t = _resolveComponent(\"i18n-t\")!\n const _component_ErrorMessage = _resolveComponent(\"ErrorMessage\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_unref(client).client_id)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, [\n _createElementVNode(\"h1\", _hoisted_3, [\n _createVNode(_component_i18n_t, { keypath: \"oauth2.AUTHORIZE_APP\" }, {\n default: _withCtx(() => [\n _createVNode(_component_router_link, {\n to: { name: 'UserApp', params: { id: _unref(client).id } }\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_unref(client).name), 1)\n ]),\n _: 1\n }, 8, [\"to\"])\n ]),\n _: 1\n })\n ]),\n (_unref(errorMessages))\n ? (_openBlock(), _createBlock(_component_ErrorMessage, {\n key: 0,\n message: _unref(errorMessages)\n }, null, 8, [\"message\"]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"p\", null, _toDisplayString(_ctx.$t('oauth2.APP_REQUESTING_ACCESS')), 1),\n _createElementVNode(\"dl\", null, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(client).scope.split(' '), (scope) => {\n return (_openBlock(), _createElementBlock(_Fragment, { key: scope }, [\n _createElementVNode(\"dt\", _hoisted_5, [\n _createElementVNode(\"code\", null, _toDisplayString(scope), 1)\n ]),\n _createElementVNode(\"dd\", {\n innerHTML: _ctx.$t(`oauth2.APP.SCOPE.${scope}_DESCRIPTION`)\n }, null, 8, _hoisted_6)\n ], 64))\n }), 128))\n ]),\n _createElementVNode(\"div\", _hoisted_7, [\n _createElementVNode(\"button\", {\n class: \"danger\",\n onClick: authorizeApp\n }, _toDisplayString(_ctx.$t('buttons.AUTHORIZE')), 1),\n _createElementVNode(\"button\", {\n class: \"cancel\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.$router.push('/profile/apps')))\n }, _toDisplayString(_ctx.$t('buttons.CANCEL')), 1)\n ])\n ])\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_8, [\n _createElementVNode(\"p\", _hoisted_9, _toDisplayString(_ctx.$t('oauth2.NO_APP')), 1),\n _createElementVNode(\"button\", {\n onClick: _cache[1] || (_cache[1] = ($event: any) => (_ctx.$router.push('/profile/apps')))\n }, _toDisplayString(_ctx.$t('buttons.BACK')), 1)\n ]))\n ]))\n}\n}\n\n})","import script from \"./AuthorizeUserApp.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AuthorizeUserApp.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./AuthorizeUserApp.vue?vue&type=style&index=0&id=3b2fe9ed&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-3b2fe9ed\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, resolveComponent as _resolveComponent, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { id: \"oauth2-apps\" }\n\nimport { onUnmounted, toRefs } from 'vue'\n\n import { OAUTH2_STORE, ROOT_STORE } from '@/store/constants'\n import { IAuthUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n\n interface Props {\n user: IAuthUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'index',\n props: {\n user: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n user: IAuthUserProfile\n }\n\n \n\n const store = useStore()\n\n const { user } = toRefs(props)\n\n onUnmounted(() => {\n store.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n store.commit(OAUTH2_STORE.MUTATIONS.SET_CLIENTS, [])\n })\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_view = _resolveComponent(\"router-view\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_router_view, { authUser: _unref(user) }, null, 8, [\"authUser\"])\n ]))\n}\n}\n\n})","import script from \"./index.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./index.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { resolveComponent as _resolveComponent, unref as _unref, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, createElementBlock as _createElementBlock, createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, createTextVNode as _createTextVNode, renderList as _renderList, Fragment as _Fragment, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-3a844fa2\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n id: \"oauth2-app\",\n class: \"description-list\"\n}\nconst _hoisted_2 = { key: 1 }\nconst _hoisted_3 = {\n key: 0,\n class: \"info-box success-message\"\n}\nconst _hoisted_4 = [\"title\"]\nconst _hoisted_5 = { key: 0 }\nconst _hoisted_6 = {\n key: 1,\n class: \"app-secret\"\n}\nconst _hoisted_7 = [\"title\"]\nconst _hoisted_8 = { class: \"client-scopes\" }\nconst _hoisted_9 = { class: \"app-buttons\" }\nconst _hoisted_10 = { key: 2 }\nconst _hoisted_11 = { class: \"no-app\" }\n\nimport {\n ComputedRef,\n Ref,\n capitalize,\n computed,\n onBeforeMount,\n toRefs,\n ref,\n onUnmounted,\n withDefaults,\n watch,\n } from 'vue'\n import { useRoute } from 'vue-router'\n\n import { OAUTH2_STORE, ROOT_STORE } from '@/store/constants'\n import { IOAuth2Client } from '@/types/oauth'\n import { IAuthUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n import { formatDate } from '@/utils/dates'\n\n interface Props {\n authUser: IAuthUserProfile\n afterCreation?: boolean\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'UserApp',\n props: {\n authUser: null,\n afterCreation: { type: Boolean, default: false }\n },\n setup(__props: any) {\n\nconst props = __props as { authUser: IAuthUserProfile, afterCreation: boolean }\n\n \n const route = useRoute()\n const store = useStore()\n\n const { afterCreation, authUser } = toRefs(props)\n const client: ComputedRef = computed(\n () => store.getters[OAUTH2_STORE.GETTERS.CLIENT]\n )\n const revocationSuccessful: ComputedRef = computed(\n () => store.getters[OAUTH2_STORE.GETTERS.REVOCATION_SUCCESSFUL]\n )\n const displayModal: Ref = ref(false)\n const messageToDisplay: Ref = ref(null)\n const idCopied: Ref = ref(false)\n const secretCopied: Ref = ref(false)\n const clipboardSupport: Ref = ref(false)\n\n onBeforeMount(() => {\n loadClient()\n if (navigator.clipboard) {\n clipboardSupport.value = true\n }\n })\n\n function loadClient() {\n // after creation, client is already in store\n if (\n !afterCreation.value &&\n route.params.id &&\n typeof route.params.id === 'string'\n ) {\n store.dispatch(OAUTH2_STORE.ACTIONS.GET_CLIENT_BY_ID, +route.params.id)\n }\n }\n function updateMessageToDisplay(forDelete: boolean) {\n messageToDisplay.value = forDelete\n ? 'oauth2.APP_DELETION_CONFIRMATION'\n : 'oauth2.TOKENS_REVOCATION_CONFIRMATION'\n updateDisplayModal(true)\n }\n function updateDisplayModal(value: boolean) {\n displayModal.value = value\n if (!value) {\n messageToDisplay.value = null\n }\n }\n function confirmAction(clientId: number) {\n if (messageToDisplay.value === 'oauth2.APP_DELETION_CONFIRMATION') {\n store.dispatch(OAUTH2_STORE.ACTIONS.DELETE_CLIENT, clientId)\n } else {\n store.dispatch(OAUTH2_STORE.ACTIONS.REVOKE_ALL_TOKENS, clientId)\n }\n }\n function copyIdToClipboard() {\n navigator.clipboard.writeText(client.value.client_id)\n idCopied.value = true\n secretCopied.value = false\n setTimeout(() => {\n idCopied.value = false\n }, 3000)\n }\n function copySecretToClipboard() {\n if (client.value.client_secret) {\n navigator.clipboard.writeText(client.value.client_secret)\n secretCopied.value = true\n idCopied.value = false\n setTimeout(() => {\n secretCopied.value = false\n }, 3000)\n }\n }\n onUnmounted(() => {\n store.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n store.commit(OAUTH2_STORE.MUTATIONS.EMPTY_CLIENT)\n store.commit(OAUTH2_STORE.MUTATIONS.SET_REVOCATION_SUCCESSFUL, false)\n })\n\n watch(\n () => revocationSuccessful.value,\n (newValue) => {\n if (newValue) {\n updateDisplayModal(false)\n }\n }\n )\n\nreturn (_ctx: any,_cache: any) => {\n const _component_Modal = _resolveComponent(\"Modal\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (displayModal.value)\n ? (_openBlock(), _createBlock(_component_Modal, {\n key: 0,\n title: _ctx.$t('common.CONFIRMATION'),\n message: _ctx.$t(messageToDisplay.value),\n onConfirmAction: _cache[0] || (_cache[0] = ($event: any) => (confirmAction(_unref(client).id))),\n onCancelAction: _cache[1] || (_cache[1] = ($event: any) => (updateDisplayModal(false)))\n }, null, 8, [\"title\", \"message\"]))\n : _createCommentVNode(\"\", true),\n (_unref(client) && _unref(client).client_id)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, [\n (_unref(afterCreation) || _unref(revocationSuccessful))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, _toDisplayString(_ctx.$t(\n _unref(afterCreation)\n ? 'oauth2.APP_CREATED_SUCCESSFULLY'\n : 'oauth2.TOKENS_REVOKED'\n )), 1))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"dl\", null, [\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('oauth2.APP.CLIENT_ID')) + \":\", 1),\n _createElementVNode(\"dd\", null, [\n _createTextVNode(_toDisplayString(_unref(client).client_id) + \" \", 1),\n (_unref(afterCreation) && clipboardSupport.value)\n ? (_openBlock(), _createElementBlock(\"i\", {\n key: 0,\n class: _normalizeClass(`fa fa-${idCopied.value ? 'check' : 'copy'}`),\n \"aria-hidden\": \"true\",\n title: _ctx.$t('oauth2.COPY_TO_CLIPBOARD'),\n onClick: copyIdToClipboard\n }, null, 10, _hoisted_4))\n : _createCommentVNode(\"\", true)\n ]),\n (_unref(afterCreation) && _unref(client).client_secret)\n ? (_openBlock(), _createElementBlock(\"dt\", _hoisted_5, _toDisplayString(_ctx.$t('oauth2.APP.CLIENT_SECRET')) + \": \", 1))\n : _createCommentVNode(\"\", true),\n (_unref(afterCreation) && _unref(client).client_secret)\n ? (_openBlock(), _createElementBlock(\"dd\", _hoisted_6, [\n _createTextVNode(_toDisplayString(_unref(client).client_secret) + \" \", 1),\n (clipboardSupport.value)\n ? (_openBlock(), _createElementBlock(\"i\", {\n key: 0,\n class: _normalizeClass(`fa fa-${secretCopied.value ? 'check' : 'copy'}`),\n \"aria-hidden\": \"true\",\n title: _ctx.$t('oauth2.COPY_TO_CLIPBOARD'),\n onClick: copySecretToClipboard\n }, null, 10, _hoisted_7))\n : _createCommentVNode(\"\", true)\n ]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"dt\", null, _toDisplayString(capitalize(_ctx.$t('oauth2.APP.ISSUE_AT'))) + \":\", 1),\n _createElementVNode(\"dd\", null, _toDisplayString(_unref(formatDate)(\n _unref(client).issued_at,\n _unref(authUser).timezone,\n _unref(authUser).date_format\n )), 1),\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('oauth2.APP.NAME')) + \":\", 1),\n _createElementVNode(\"dd\", null, _toDisplayString(_unref(client).name), 1),\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('oauth2.APP.DESCRIPTION')) + \":\", 1),\n _createElementVNode(\"dd\", {\n class: _normalizeClass({ 'no-description': !_unref(client).client_description })\n }, _toDisplayString(_unref(client).client_description\n ? _unref(client).client_description\n : _ctx.$t('oauth2.NO_DESCRIPTION')), 3),\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('oauth2.APP.URL')) + \":\", 1),\n _createElementVNode(\"dd\", null, _toDisplayString(_unref(client).website), 1),\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('oauth2.APP.REDIRECT_URL')) + \":\", 1),\n _createElementVNode(\"dd\", null, _toDisplayString(_unref(client).redirect_uris.length > 0 ? _unref(client).redirect_uris[0] : ''), 1),\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('oauth2.APP.SCOPE.LABEL')) + \":\", 1),\n _createElementVNode(\"dd\", _hoisted_8, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(client).scope.split(' '), (scope) => {\n return (_openBlock(), _createElementBlock(\"span\", {\n class: \"client-scope\",\n key: scope\n }, [\n _createElementVNode(\"code\", null, _toDisplayString(scope), 1)\n ]))\n }), 128))\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_9, [\n _createElementVNode(\"button\", {\n class: \"danger\",\n onClick: _cache[2] || (_cache[2] = ($event: any) => (updateMessageToDisplay(false)))\n }, _toDisplayString(_ctx.$t('oauth2.REVOKE_ALL_TOKENS')), 1),\n _createElementVNode(\"button\", {\n class: \"danger\",\n onClick: _cache[3] || (_cache[3] = ($event: any) => (updateMessageToDisplay(true)))\n }, _toDisplayString(_ctx.$t('oauth2.DELETE_APP')), 1),\n _createElementVNode(\"button\", {\n onClick: _cache[4] || (_cache[4] = ($event: any) => (_ctx.$router.push('/profile/apps')))\n }, _toDisplayString(_ctx.$t('buttons.BACK')), 1)\n ])\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_10, [\n _createElementVNode(\"p\", _hoisted_11, _toDisplayString(_ctx.$t('oauth2.NO_APP')), 1),\n _createElementVNode(\"button\", {\n onClick: _cache[5] || (_cache[5] = ($event: any) => (_ctx.$router.push('/profile/apps')))\n }, _toDisplayString(_ctx.$t('buttons.BACK')), 1)\n ]))\n ]))\n}\n}\n\n})","import script from \"./UserApp.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserApp.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserApp.vue?vue&type=style&index=0&id=3a844fa2&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-3a844fa2\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, unref as _unref, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, createCommentVNode as _createCommentVNode, createBlock as _createBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-efa45ea0\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"oauth2-apps-list\" }\nconst _hoisted_2 = { class: \"apps-list\" }\nconst _hoisted_3 = { key: 0 }\nconst _hoisted_4 = { class: \"app-issued-at\" }\nconst _hoisted_5 = {\n key: 1,\n class: \"no-apps\"\n}\nconst _hoisted_6 = { class: \"app-list-buttons\" }\n\nimport { ComputedRef, computed, onBeforeMount, toRefs, watch } from 'vue'\n import { LocationQuery, useRoute } from 'vue-router'\n\n import Pagination from '@/components/Common/Pagination.vue'\n import { OAUTH2_STORE } from '@/store/constants'\n import { IPagination } from '@/types/api'\n import { IOAuth2Client, IOauth2ClientsPayload } from '@/types/oauth'\n import { IAuthUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n import { defaultPage, getNumberQueryValue } from '@/utils/api'\n import { formatDate } from '@/utils/dates'\n\n interface Props {\n authUser: IAuthUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'UserAppsList',\n props: {\n authUser: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n authUser: IAuthUserProfile\n }\n\n \n\n const store = useStore()\n const route = useRoute()\n\n const { authUser } = toRefs(props)\n const clients: ComputedRef = computed(\n () => store.getters[OAUTH2_STORE.GETTERS.CLIENTS]\n )\n\n const pagination: ComputedRef = computed(\n () => store.getters[OAUTH2_STORE.GETTERS.CLIENTS_PAGINATION]\n )\n let query: IOauth2ClientsPayload = getClientsQuery(route.query)\n\n onBeforeMount(() => {\n loadClients(query)\n })\n\n function getClientsQuery(newQuery: LocationQuery): IOauth2ClientsPayload {\n const clientsQuery: IOauth2ClientsPayload = {}\n if (newQuery.page) {\n clientsQuery.page = getNumberQueryValue(newQuery.page, defaultPage)\n }\n return clientsQuery\n }\n function loadClients(payload: IOauth2ClientsPayload) {\n store.dispatch(OAUTH2_STORE.ACTIONS.GET_CLIENTS, payload)\n }\n\n watch(\n () => route.query,\n async (newQuery) => {\n query = getClientsQuery(newQuery)\n loadClients(query)\n }\n )\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_link = _resolveComponent(\"router-link\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"p\", _hoisted_2, _toDisplayString(_ctx.$t('oauth2.APPS_LIST')), 1),\n (_unref(clients).length > 0)\n ? (_openBlock(), _createElementBlock(\"ul\", _hoisted_3, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(clients), (client) => {\n return (_openBlock(), _createElementBlock(\"li\", {\n key: client.client_id\n }, [\n _createVNode(_component_router_link, {\n to: { name: 'UserApp', params: { id: client.id } }\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(client.name), 1)\n ]),\n _: 2\n }, 1032, [\"to\"]),\n _createElementVNode(\"span\", _hoisted_4, _toDisplayString(_ctx.$t('oauth2.APP.ISSUE_AT')) + \" \" + _toDisplayString(_unref(formatDate)(\n client.issued_at,\n _unref(authUser).timezone,\n _unref(authUser).date_format\n )), 1)\n ]))\n }), 128))\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_5, _toDisplayString(_ctx.$t('oauth2.NO_APPS')), 1)),\n (_unref(clients).length > 0)\n ? (_openBlock(), _createBlock(Pagination, {\n key: 2,\n pagination: _unref(pagination),\n path: \"/profile/apps\",\n query: _unref(query)\n }, null, 8, [\"pagination\", \"query\"]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_6, [\n _createElementVNode(\"button\", {\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.$router.push('/profile/apps/new')))\n }, _toDisplayString(_ctx.$t('oauth2.NEW_APP')), 1),\n _createElementVNode(\"button\", {\n onClick: _cache[1] || (_cache[1] = ($event: any) => (_ctx.$router.push('/')))\n }, _toDisplayString(_ctx.$t('common.HOME')), 1)\n ])\n ]))\n}\n}\n\n})","import script from \"./UserAppsList.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserAppsList.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserAppsList.vue?vue&type=style&index=0&id=efa45ea0&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-efa45ea0\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, toDisplayString as _toDisplayString, withModifiers as _withModifiers, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, renderList as _renderList, Fragment as _Fragment, resolveComponent as _resolveComponent, createBlock as _createBlock, createTextVNode as _createTextVNode, normalizeClass as _normalizeClass, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-74e52489\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"user-sport-preferences\" }\nconst _hoisted_2 = {\n key: 0,\n class: \"responsive-table\"\n}\nconst _hoisted_3 = { class: \"mobile-display\" }\nconst _hoisted_4 = {\n key: 0,\n class: \"profile-buttons mobile-display\"\n}\nconst _hoisted_5 = {\n key: 1,\n class: \"profile-buttons\"\n}\nconst _hoisted_6 = { class: \"text-left\" }\nconst _hoisted_7 = { key: 0 }\nconst _hoisted_8 = { class: \"cell-heading\" }\nconst _hoisted_9 = [\"value\"]\nconst _hoisted_10 = { class: \"cell-heading\" }\nconst _hoisted_11 = {\n key: 0,\n class: \"disabled-message\"\n}\nconst _hoisted_12 = {\n key: 1,\n class: \"fa fa-refresh fa-spin fa-fw\"\n}\nconst _hoisted_13 = { class: \"cell-heading\" }\nconst _hoisted_14 = { class: \"cell-heading\" }\nconst _hoisted_15 = [\"checked\"]\nconst _hoisted_16 = { class: \"cell-heading\" }\nconst _hoisted_17 = [\"value\"]\nconst _hoisted_18 = { key: 1 }\nconst _hoisted_19 = {\n key: 0,\n class: \"action-buttons\"\n}\nconst _hoisted_20 = { class: \"cell-heading\" }\nconst _hoisted_21 = [\"onClick\"]\nconst _hoisted_22 = {\n key: 1,\n class: \"edition-buttons\"\n}\nconst _hoisted_23 = [\"disabled\"]\nconst _hoisted_24 = [\"disabled\", \"onClick\"]\nconst _hoisted_25 = [\"disabled\"]\nconst _hoisted_26 = {\n key: 0,\n class: \"profile-buttons\"\n}\nconst _hoisted_27 = {\n key: 1,\n class: \"profile-buttons\"\n}\n\nimport { ComputedRef, computed, inject, reactive, toRefs, watch } from 'vue'\n import { useI18n } from 'vue-i18n'\n\n import { AUTH_USER_STORE, ROOT_STORE, SPORTS_STORE } from '@/store/constants'\n import { ISport, ITranslatedSport } from '@/types/sports'\n import { IUserProfile, IUserSportPreferencesPayload } from '@/types/user'\n import { useStore } from '@/use/useStore'\n import { translateSports } from '@/utils/sports'\n\n interface Props {\n user: IUserProfile\n isEdition: boolean\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'UserSportPreferences',\n props: {\n user: null,\n isEdition: { type: Boolean }\n },\n setup(__props: any) {\n\nconst props = __props as {\n user: IUserProfile\n isEdition: boolean\n }\n\n \n\n const store = useStore()\n const { t } = useI18n()\n\n const { isEdition, user } = toRefs(props)\n const defaultColor = '#838383'\n const sportColors: Record | undefined = inject('sportColors')\n const sports: ComputedRef = computed(\n () => store.getters[SPORTS_STORE.GETTERS.SPORTS]\n )\n const translatedSports: ComputedRef = computed(() =>\n translateSports(sports.value, t, 'is_active', user.value.sports_list)\n )\n const loading = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.USER_LOADING]\n )\n const errorMessages: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.ERROR_MESSAGES]\n )\n const sportPayload: IUserSportPreferencesPayload = reactive({\n sport_id: 0,\n color: null,\n is_active: true,\n stopped_speed_threshold: 1,\n })\n\n function updateSportInEdition(sport: ISport | null) {\n if (sport !== null) {\n sportPayload.sport_id = sport.id\n sportPayload.color = sport.color\n ? sport.color\n : sportColors\n ? sportColors[sport.label]\n : defaultColor\n sportPayload.is_active = sport.is_active_for_user\n sportPayload.stopped_speed_threshold = sport.stopped_speed_threshold\n } else {\n resetSportPayload()\n }\n }\n function isSportInEdition(sportId: number) {\n return sportPayload.sport_id === sportId\n }\n function updateColor(event: Event & { target: HTMLInputElement }) {\n sportPayload.color = event.target.value\n }\n function updateThreshold(event: Event & { target: HTMLInputElement }) {\n sportPayload.stopped_speed_threshold = parseFloat(event.target.value)\n }\n function updateIsActive(event: Event & { target: HTMLInputElement }) {\n sportPayload.is_active = event.target.checked\n }\n function resetSportPayload() {\n sportPayload.sport_id = 0\n sportPayload.color = null\n sportPayload.is_active = true\n sportPayload.stopped_speed_threshold = 1\n store.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n }\n function updateSport(event: Event) {\n event.preventDefault()\n store.dispatch(\n AUTH_USER_STORE.ACTIONS.UPDATE_USER_SPORT_PREFERENCES,\n sportPayload\n )\n }\n function resetSport(event: Event, sportId: number) {\n event.preventDefault()\n store.dispatch(\n AUTH_USER_STORE.ACTIONS.RESET_USER_SPORT_PREFERENCES,\n sportId\n )\n }\n\n watch(\n () => loading.value,\n (newIsLoading) => {\n if (!newIsLoading && !errorMessages.value) {\n resetSportPayload()\n }\n }\n )\n\nreturn (_ctx: any,_cache: any) => {\n const _component_SportImage = _resolveComponent(\"SportImage\")!\n const _component_ErrorMessage = _resolveComponent(\"ErrorMessage\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_unref(sports).length > 0)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n (_unref(isEdition))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_4, [\n _createElementVNode(\"button\", {\n class: \"cancel\",\n onClick: _cache[0] || (_cache[0] = _withModifiers(($event: any) => (_ctx.$router.push('/profile/sports')), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('buttons.BACK')), 1)\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_5, [\n _createElementVNode(\"button\", {\n onClick: _cache[1] || (_cache[1] = ($event: any) => (_ctx.$router.push('/profile/edit/sports')))\n }, _toDisplayString(_ctx.$t('user.PROFILE.EDIT_SPORTS_PREFERENCES')), 1),\n _createElementVNode(\"button\", {\n onClick: _cache[2] || (_cache[2] = ($event: any) => (_ctx.$router.push('/')))\n }, _toDisplayString(_ctx.$t('common.HOME')), 1)\n ]))\n ]),\n _createElementVNode(\"table\", null, [\n _createElementVNode(\"thead\", null, [\n _createElementVNode(\"tr\", null, [\n _createElementVNode(\"th\", null, _toDisplayString(_ctx.$t('user.PROFILE.SPORT.COLOR')), 1),\n _createElementVNode(\"th\", _hoisted_6, _toDisplayString(_ctx.$t('workouts.SPORT', 0)), 1),\n _createElementVNode(\"th\", null, _toDisplayString(_ctx.$t('workouts.WORKOUT', 0)), 1),\n _createElementVNode(\"th\", null, _toDisplayString(_ctx.$t('user.PROFILE.SPORT.IS_ACTIVE')), 1),\n _createElementVNode(\"th\", null, _toDisplayString(_ctx.$t('user.PROFILE.SPORT.STOPPED_SPEED_THRESHOLD')), 1),\n (_unref(isEdition))\n ? (_openBlock(), _createElementBlock(\"th\", _hoisted_7, _toDisplayString(_ctx.$t('user.PROFILE.SPORT.ACTION')), 1))\n : _createCommentVNode(\"\", true)\n ])\n ]),\n _createElementVNode(\"tbody\", null, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(translatedSports), (sport) => {\n return (_openBlock(), _createElementBlock(\"tr\", {\n key: sport.id\n }, [\n _createElementVNode(\"td\", null, [\n _createElementVNode(\"span\", _hoisted_8, _toDisplayString(_ctx.$t('user.PROFILE.SPORT.COLOR')), 1),\n (isSportInEdition(sport.id))\n ? (_openBlock(), _createElementBlock(\"input\", {\n key: 0,\n class: \"sport-color\",\n type: \"color\",\n value: sportPayload.color,\n onInput: updateColor\n }, null, 40, _hoisted_9))\n : (_openBlock(), _createBlock(_component_SportImage, {\n key: 1,\n title: sport.translatedLabel,\n \"sport-label\": sport.label,\n color: sport.color ? sport.color : _unref(sportColors)[sport.label]\n }, null, 8, [\"title\", \"sport-label\", \"color\"]))\n ]),\n _createElementVNode(\"td\", {\n class: _normalizeClass([\"sport-label\", { 'disabled-sport': !sport.is_active }])\n }, [\n _createElementVNode(\"span\", _hoisted_10, _toDisplayString(_ctx.$t('user.PROFILE.SPORT.LABEL')), 1),\n _createTextVNode(\" \" + _toDisplayString(sport.translatedLabel) + \" \", 1),\n (!sport.is_active)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_11, \" (\" + _toDisplayString(_ctx.$t('user.PROFILE.SPORT.DISABLED_BY_ADMIN')) + \") \", 1))\n : _createCommentVNode(\"\", true),\n (_unref(loading) && isSportInEdition(sport.id))\n ? (_openBlock(), _createElementBlock(\"i\", _hoisted_12))\n : _createCommentVNode(\"\", true),\n (_unref(errorMessages) && sportPayload.sport_id === sport.id)\n ? (_openBlock(), _createBlock(_component_ErrorMessage, {\n key: 2,\n message: _unref(errorMessages)\n }, null, 8, [\"message\"]))\n : _createCommentVNode(\"\", true)\n ], 2),\n _createElementVNode(\"td\", {\n class: _normalizeClass([\"text-center\", { 'disabled-sport': !sport.is_active }])\n }, [\n _createElementVNode(\"span\", _hoisted_13, _toDisplayString(_ctx.$t('workouts.WORKOUT', 0)), 1),\n _createElementVNode(\"i\", {\n class: _normalizeClass(`fa fa${\n _unref(user).sports_list.includes(sport.id) ? '-check' : ''\n }`),\n \"aria-hidden\": \"true\"\n }, null, 2)\n ], 2),\n _createElementVNode(\"td\", {\n class: _normalizeClass([\"text-center\", { 'disabled-sport': !sport.is_active }])\n }, [\n _createElementVNode(\"span\", _hoisted_14, _toDisplayString(_ctx.$t('user.PROFILE.SPORT.IS_ACTIVE')), 1),\n (isSportInEdition(sport.id) && sport.is_active)\n ? (_openBlock(), _createElementBlock(\"input\", {\n key: 0,\n type: \"checkbox\",\n checked: sport.is_active_for_user,\n onChange: updateIsActive\n }, null, 40, _hoisted_15))\n : (_openBlock(), _createElementBlock(\"i\", {\n key: 1,\n class: _normalizeClass(`fa fa${sport.is_active_for_user ? '-check' : ''}`),\n \"aria-hidden\": \"true\"\n }, null, 2))\n ], 2),\n _createElementVNode(\"td\", {\n class: _normalizeClass([\"text-center\", { 'disabled-sport': !sport.is_active }])\n }, [\n _createElementVNode(\"span\", _hoisted_16, _toDisplayString(_ctx.$t('user.PROFILE.SPORT.STOPPED_SPEED_THRESHOLD')), 1),\n (isSportInEdition(sport.id) && sport.is_active)\n ? (_openBlock(), _createElementBlock(\"input\", {\n key: 0,\n class: \"threshold-input\",\n type: \"number\",\n min: \"0\",\n step: \"0.1\",\n value: sportPayload.stopped_speed_threshold,\n onInput: updateThreshold\n }, null, 40, _hoisted_17))\n : (_openBlock(), _createElementBlock(\"span\", _hoisted_18, _toDisplayString(sport.stopped_speed_threshold), 1))\n ], 2),\n (_unref(isEdition))\n ? (_openBlock(), _createElementBlock(\"td\", _hoisted_19, [\n _createElementVNode(\"span\", _hoisted_20, _toDisplayString(_ctx.$t('user.PROFILE.SPORT.ACTION')), 1),\n (sportPayload.sport_id === 0)\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 0,\n onClick: ($event: any) => (updateSportInEdition(sport))\n }, _toDisplayString(_ctx.$t('buttons.EDIT')), 9, _hoisted_21))\n : _createCommentVNode(\"\", true),\n (isSportInEdition(sport.id))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_22, [\n _createElementVNode(\"button\", {\n disabled: _unref(loading),\n onClick: updateSport\n }, _toDisplayString(_ctx.$t('buttons.SUBMIT')), 9, _hoisted_23),\n _createElementVNode(\"button\", {\n disabled: _unref(loading),\n onClick: (e) => resetSport(e, sport.id)\n }, _toDisplayString(_ctx.$t('buttons.RESET')), 9, _hoisted_24),\n _createElementVNode(\"button\", {\n disabled: _unref(loading),\n onClick: _cache[3] || (_cache[3] = ($event: any) => (updateSportInEdition(null)))\n }, _toDisplayString(_ctx.$t('buttons.CANCEL')), 9, _hoisted_25)\n ]))\n : _createCommentVNode(\"\", true)\n ]))\n : _createCommentVNode(\"\", true)\n ]))\n }), 128))\n ])\n ]),\n (_unref(isEdition))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_26, [\n _createElementVNode(\"button\", {\n class: \"cancel\",\n onClick: _cache[4] || (_cache[4] = _withModifiers(($event: any) => (_ctx.$router.push('/profile/sports')), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('buttons.BACK')), 1)\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_27, [\n _createElementVNode(\"button\", {\n onClick: _cache[5] || (_cache[5] = ($event: any) => (_ctx.$router.push('/profile/edit/sports')))\n }, _toDisplayString(_ctx.$t('user.PROFILE.EDIT_SPORTS_PREFERENCES')), 1),\n _createElementVNode(\"button\", {\n onClick: _cache[6] || (_cache[6] = ($event: any) => (_ctx.$router.push('/')))\n }, _toDisplayString(_ctx.$t('common.HOME')), 1)\n ]))\n ]))\n : _createCommentVNode(\"\", true)\n ]))\n}\n}\n\n})","import script from \"./UserSportPreferences.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserSportPreferences.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserSportPreferences.vue?vue&type=style&index=0&id=74e52489&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-74e52489\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, unref as _unref, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, 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-96abcc38\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"timeline-workout\" }\nconst _hoisted_2 = { class: \"box\" }\nconst _hoisted_3 = { class: \"workout-user-date\" }\nconst _hoisted_4 = { class: \"workout-user\" }\nconst _hoisted_5 = [\"title\"]\nconst _hoisted_6 = { key: 0 }\nconst _hoisted_7 = {\n key: 1,\n class: \"no-map\"\n}\nconst _hoisted_8 = { class: \"img\" }\nconst _hoisted_9 = { class: \"data\" }\nconst _hoisted_10 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-clock-o\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_11 = { key: 0 }\nconst _hoisted_12 = { class: \"data\" }\nconst _hoisted_13 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-road\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_14 = {\n key: 0,\n class: \"data elevation\"\n}\nconst _hoisted_15 = [\"alt\"]\nconst _hoisted_16 = { class: \"data-values\" }\nconst _hoisted_17 = {\n key: 1,\n class: \"data altitude\"\n}\nconst _hoisted_18 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-location-arrow\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_19 = { class: \"data-values\" }\n\nimport { Locale, formatDistance } from 'date-fns'\n import { ComputedRef, computed, toRefs, withDefaults } from 'vue'\n\n import StaticMap from '@/components/Common/StaticMap.vue'\n import UserPicture from '@/components/User/UserPicture.vue'\n import { ROOT_STORE } from '@/store/constants'\n import { ISport } from '@/types/sports'\n import { IUserProfile } from '@/types/user'\n import { IWorkout } from '@/types/workouts'\n import { useStore } from '@/use/useStore'\n import { formatDate } from '@/utils/dates'\n\n interface Props {\n user: IUserProfile\n useImperialUnits: boolean\n workout?: IWorkout\n sport?: ISport\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'WorkoutCard',\n props: {\n user: null,\n useImperialUnits: { type: Boolean },\n workout: { default: () => ({} as IWorkout) },\n sport: { default: () => ({} as ISport) }\n },\n setup(__props: any) {\n\nconst props = __props as { user: IUserProfile, useImperialUnits: boolean, workout: IWorkout, sport: ISport }\n\n \n\n const store = useStore()\n\n const { user, workout, sport, useImperialUnits } = toRefs(props)\n const locale: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.LOCALE]\n )\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_link = _resolveComponent(\"router-link\")!\n const _component_SportImage = _resolveComponent(\"SportImage\")!\n const _component_Distance = _resolveComponent(\"Distance\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", _hoisted_4, [\n _createVNode(UserPicture, { user: _unref(user) }, null, 8, [\"user\"]),\n (_unref(user).username)\n ? (_openBlock(), _createBlock(_component_router_link, {\n key: 0,\n class: \"workout-user-name\",\n to: {\n name: 'User',\n params: { username: _unref(user).username },\n }\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_unref(user).username), 1)\n ]),\n _: 1\n }, 8, [\"to\"]))\n : _createCommentVNode(\"\", true)\n ]),\n (_unref(workout).id)\n ? (_openBlock(), _createBlock(_component_router_link, {\n key: 0,\n class: \"workout-title\",\n to: {\n name: 'Workout',\n params: { workoutId: _unref(workout).id },\n }\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_unref(workout).title), 1)\n ]),\n _: 1\n }, 8, [\"to\"]))\n : _createCommentVNode(\"\", true),\n (_unref(workout).workout_date && _unref(user))\n ? (_openBlock(), _createElementBlock(\"div\", {\n key: 1,\n class: \"workout-date\",\n title: \n _unref(formatDate)(_unref(workout).workout_date, _unref(user).timezone, _unref(user).date_format)\n \n }, _toDisplayString(_unref(formatDistance)(new Date(_unref(workout).workout_date), new Date(), {\n addSuffix: true,\n locale: _unref(locale),\n })), 9, _hoisted_5))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"workout-map\", { 'no-cursor': !_unref(workout) }]),\n onClick: _cache[0] || (_cache[0] = ($event: any) => (\n _unref(workout).id\n ? _ctx.$router.push({\n name: 'Workout',\n params: { workoutId: _unref(workout).id },\n })\n : null\n ))\n }, [\n (_unref(workout))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_6, [\n (_unref(workout).with_gpx)\n ? (_openBlock(), _createBlock(StaticMap, {\n key: 0,\n workout: _unref(workout)\n }, null, 8, [\"workout\"]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_7, _toDisplayString(_ctx.$t('workouts.NO_MAP')), 1))\n ]))\n : _createCommentVNode(\"\", true)\n ], 2),\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"workout-data\", { 'without-gpx': _unref(workout) && !_unref(workout).with_gpx }]),\n onClick: _cache[1] || (_cache[1] = ($event: any) => (\n _unref(workout).id\n ? _ctx.$router.push({\n name: 'Workout',\n params: { workoutId: _unref(workout).id },\n })\n : null\n ))\n }, [\n _createElementVNode(\"div\", _hoisted_8, [\n (_unref(sport).label)\n ? (_openBlock(), _createBlock(_component_SportImage, {\n key: 0,\n \"sport-label\": _unref(sport).label,\n color: _unref(sport).color\n }, null, 8, [\"sport-label\", \"color\"]))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"div\", _hoisted_9, [\n _hoisted_10,\n (_unref(workout))\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_11, _toDisplayString(_unref(workout).moving), 1))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"div\", _hoisted_12, [\n _hoisted_13,\n (_unref(workout).id)\n ? (_openBlock(), _createBlock(_component_Distance, {\n key: 0,\n distance: _unref(workout).distance,\n digits: 3,\n unitFrom: \"km\",\n useImperialUnits: _unref(useImperialUnits)\n }, null, 8, [\"distance\", \"useImperialUnits\"]))\n : _createCommentVNode(\"\", true)\n ]),\n (_unref(workout) && _unref(workout).with_gpx)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_14, [\n _createElementVNode(\"img\", {\n class: \"mountains\",\n src: \"/img/workouts/mountains.svg\",\n alt: _ctx.$t('workouts.ELEVATION')\n }, null, 8, _hoisted_15),\n _createElementVNode(\"div\", _hoisted_16, [\n (_unref(workout).id)\n ? (_openBlock(), _createBlock(_component_Distance, {\n key: 0,\n distance: _unref(workout).min_alt,\n unitFrom: \"m\",\n displayUnit: false,\n useImperialUnits: _unref(useImperialUnits)\n }, null, 8, [\"distance\", \"useImperialUnits\"]))\n : _createCommentVNode(\"\", true),\n _createTextVNode(\"/ \"),\n (_unref(workout).id)\n ? (_openBlock(), _createBlock(_component_Distance, {\n key: 1,\n distance: _unref(workout).max_alt,\n unitFrom: \"m\",\n useImperialUnits: _unref(useImperialUnits)\n }, null, 8, [\"distance\", \"useImperialUnits\"]))\n : _createCommentVNode(\"\", true)\n ])\n ]))\n : _createCommentVNode(\"\", true),\n (_unref(workout) && _unref(workout).with_gpx)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_17, [\n _hoisted_18,\n _createElementVNode(\"div\", _hoisted_19, [\n _createTextVNode(\" +\"),\n (_unref(workout).id)\n ? (_openBlock(), _createBlock(_component_Distance, {\n key: 0,\n distance: _unref(workout).ascent,\n unitFrom: \"m\",\n displayUnit: false,\n useImperialUnits: _unref(useImperialUnits)\n }, null, 8, [\"distance\", \"useImperialUnits\"]))\n : _createCommentVNode(\"\", true),\n _createTextVNode(\"/- \"),\n (_unref(workout).id)\n ? (_openBlock(), _createBlock(_component_Distance, {\n key: 1,\n distance: _unref(workout).descent,\n unitFrom: \"m\",\n useImperialUnits: _unref(useImperialUnits)\n }, null, 8, [\"distance\", \"useImperialUnits\"]))\n : _createCommentVNode(\"\", true)\n ])\n ]))\n : _createCommentVNode(\"\", true)\n ], 2)\n ])\n ]))\n}\n}\n\n})","import script from \"./WorkoutCard.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./WorkoutCard.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./WorkoutCard.vue?vue&type=style&index=0&id=96abcc38&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-96abcc38\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, unref as _unref, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-35567bf2\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"timeline\" }\nconst _hoisted_2 = { class: \"section-title\" }\nconst _hoisted_3 = { key: 0 }\nconst _hoisted_4 = { key: 1 }\nconst _hoisted_5 = {\n key: 1,\n class: \"more-workouts\"\n}\n\nimport { ComputedRef, computed, ref, onBeforeMount, toRefs } from 'vue'\n\n import WorkoutCard from '@/components/Workout/WorkoutCard.vue'\n import NoWorkouts from '@/components/Workouts/NoWorkouts.vue'\n import { WORKOUTS_STORE } from '@/store/constants'\n import { ISport } from '@/types/sports'\n import { IUserProfile } from '@/types/user'\n import { IWorkout } from '@/types/workouts'\n import { useStore } from '@/use/useStore'\n import { defaultOrder } from '@/utils/workouts'\n\n interface Props {\n sports: ISport[]\n user: IUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'Timeline',\n props: {\n sports: null,\n user: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n sports: ISport[]\n user: IUserProfile\n }\n\n \n\n const store = useStore()\n\n const { sports, user } = toRefs(props)\n const page = ref(1)\n const per_page = 5\n const initWorkoutsCount =\n props.user.nb_workouts >= per_page ? per_page : props.user.nb_workouts\n onBeforeMount(() => loadWorkouts())\n const workouts: ComputedRef = computed(\n () => store.getters[WORKOUTS_STORE.GETTERS.TIMELINE_WORKOUTS]\n )\n const moreWorkoutsExist: ComputedRef = computed(() =>\n workouts.value.length > 0\n ? workouts.value[workouts.value.length - 1].previous_workout !== null\n : false\n )\n\n function loadWorkouts() {\n store.dispatch(WORKOUTS_STORE.ACTIONS.GET_TIMELINE_WORKOUTS, {\n page: page.value,\n per_page,\n ...defaultOrder,\n })\n }\n function loadMoreWorkouts() {\n page.value += 1\n store.dispatch(WORKOUTS_STORE.ACTIONS.GET_MORE_TIMELINE_WORKOUTS, {\n page: page.value,\n per_page,\n ...defaultOrder,\n })\n }\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, _toDisplayString(_ctx.$t('workouts.LATEST_WORKOUTS')), 1),\n (_unref(user).nb_workouts > 0 && _unref(workouts).length === 0)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList([...Array(_unref(initWorkoutsCount)).keys()], (index) => {\n return (_openBlock(), _createBlock(WorkoutCard, {\n user: _unref(user),\n useImperialUnits: _unref(user).imperial_units,\n key: index\n }, null, 8, [\"user\", \"useImperialUnits\"]))\n }), 128))\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_4, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(workouts), (workout) => {\n return (_openBlock(), _createBlock(WorkoutCard, {\n workout: workout,\n sport: \n _unref(workouts).length > 0\n ? _unref(sports).filter((s) => s.id === workout.sport_id)[0]\n : null\n ,\n user: _unref(user),\n useImperialUnits: _unref(user).imperial_units,\n key: workout.id\n }, null, 8, [\"workout\", \"sport\", \"user\", \"useImperialUnits\"]))\n }), 128)),\n (_unref(workouts).length === 0)\n ? (_openBlock(), _createBlock(NoWorkouts, { key: 0 }))\n : _createCommentVNode(\"\", true),\n (_unref(moreWorkoutsExist))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_5, [\n _createElementVNode(\"button\", { onClick: loadMoreWorkouts }, _toDisplayString(_ctx.$t('workouts.LOAD_MORE_WORKOUT')), 1)\n ]))\n : _createCommentVNode(\"\", true)\n ]))\n ]))\n}\n}\n\n})","import script from \"./Timeline.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Timeline.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./Timeline.vue?vue&type=style&index=0&id=35567bf2&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-35567bf2\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, resolveComponent as _resolveComponent, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode } from \"vue\"\n\nconst _hoisted_1 = [\"title\"]\n\nimport { toRefs } from 'vue'\n\n import { IWorkout } from '@/types/workouts'\n interface Props {\n displayHARecord: boolean\n workout: IWorkout\n sportLabel: string\n sportColor: string | null\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'CalendarWorkout',\n props: {\n displayHARecord: { type: Boolean },\n workout: null,\n sportLabel: null,\n sportColor: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n displayHARecord: boolean\n workout: IWorkout\n sportLabel: string\n sportColor: string | null\n }\n\n \n\n const { displayHARecord, workout, sportLabel, sportColor } = toRefs(props)\n\nreturn (_ctx: any,_cache: any) => {\n const _component_SportImage = _resolveComponent(\"SportImage\")!\n\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"calendar-workout\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (\n _ctx.$router.push({ name: 'Workout', params: { workoutId: _unref(workout).id } })\n ))\n }, [\n _createVNode(_component_SportImage, {\n \"sport-label\": _unref(sportLabel),\n title: _unref(workout).title,\n color: _unref(sportColor)\n }, null, 8, [\"sport-label\", \"title\", \"color\"]),\n _createElementVNode(\"sup\", null, [\n (_unref(workout).records.length > 0)\n ? (_openBlock(), _createElementBlock(\"i\", {\n key: 0,\n class: \"fa fa-trophy custom-fa-small\",\n \"aria-hidden\": \"true\",\n title: \n _unref(workout).records\n .filter((record) =>\n _unref(displayHARecord) ? true : record.record_type !== 'HA'\n )\n .map((record) => ` ${_ctx.$t(`workouts.RECORD_${record.record_type}`)}`)\n \n }, null, 8, _hoisted_1))\n : _createCommentVNode(\"\", true)\n ])\n ]))\n}\n}\n\n})","import script from \"./CalendarWorkout.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./CalendarWorkout.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./CalendarWorkout.vue?vue&type=style&index=0&id=331e1c8b&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createElementVNode as _createElementVNode } from \"vue\"\n\nconst _hoisted_1 = { class: \"donut-chart\" }\nconst _hoisted_2 = {\n height: \"34\",\n width: \"34\",\n viewBox: \"0 0 34 34\"\n}\nconst _hoisted_3 = [\"stroke\", \"stroke-dashoffset\", \"transform\"]\n\nimport { toRefs } from 'vue'\n\n interface Props {\n colors: Record\n datasets: Record>\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'DonutChart',\n props: {\n colors: null,\n datasets: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n colors: Record\n datasets: Record>\n }\n\n \n\n const { colors, datasets } = toRefs(props)\n let angleOffset = -90\n const cx = 16\n const cy = 16\n const radius = 14\n const circumference = 2 * Math.PI * radius\n\n function calculateStrokeDashOffset(\n percentage: number,\n circumference: number\n ): number {\n return circumference - percentage * circumference\n }\n function returnCircleTransformValue(\n index: number,\n percentage: number\n ): string {\n const rotation = `rotate(${angleOffset}, ${cx}, ${cy})`\n angleOffset = percentage * 360 + angleOffset\n return rotation\n }\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_openBlock(), _createElementBlock(\"svg\", _hoisted_2, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(Object.entries(_unref(datasets)), (data, index) => {\n return (_openBlock(), _createElementBlock(\"g\", { key: index }, [\n _createElementVNode(\"circle\", {\n cx: cx,\n cy: cy,\n r: radius,\n fill: \"transparent\",\n stroke: _unref(colors)[+data[0]],\n \"stroke-dashoffset\": \n calculateStrokeDashOffset(data[1].percentage, circumference)\n ,\n \"stroke-dasharray\": circumference,\n \"stroke-width\": \"3\",\n \"stroke-opacity\": \"0.8\",\n transform: returnCircleTransformValue(index, data[1].percentage)\n }, null, 8, _hoisted_3)\n ]))\n }), 128))\n ]))\n ]))\n}\n}\n\n})","import script from \"./DonutChart.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./DonutChart.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, createVNode as _createVNode, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createBlock as _createBlock, resolveDirective as _resolveDirective, withDirectives as _withDirectives, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-52d4310a\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"calendar-workouts-chart\" }\nconst _hoisted_2 = { class: \"workouts-count\" }\nconst _hoisted_3 = {\n key: 0,\n class: \"workouts-pane\"\n}\nconst _hoisted_4 = { class: \"more-workouts\" }\n\nimport { ref, toRefs } from 'vue'\n\n import CalendarWorkout from '@/components/Dashboard/UserCalendar/CalendarWorkout.vue'\n import DonutChart from '@/components/Dashboard/UserCalendar/DonutChart.vue'\n import { ISport } from '@/types/sports'\n import { IWorkout } from '@/types/workouts'\n import { getSportColor, getSportLabel } from '@/utils/sports'\n\n interface Props {\n colors: Record\n datasets: Record>\n sports: ISport[]\n workouts: IWorkout[]\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'CalendarWorkoutsChart',\n props: {\n colors: null,\n datasets: null,\n sports: null,\n workouts: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n colors: Record\n datasets: Record>\n sports: ISport[]\n workouts: IWorkout[]\n }\n\n \n\n const { colors, datasets, sports, workouts } = toRefs(props)\n const isHidden = ref(true)\n\n function togglePane(event: Event & { target: HTMLElement }) {\n event.stopPropagation()\n isHidden.value = !isHidden.value\n }\n\nreturn (_ctx: any,_cache: any) => {\n const _directive_click_outside = _resolveDirective(\"click-outside\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", {\n class: \"workouts-chart\",\n onClick: togglePane\n }, [\n _createElementVNode(\"div\", _hoisted_2, _toDisplayString(_unref(workouts).length), 1),\n _createVNode(DonutChart, {\n datasets: _unref(datasets),\n colors: _unref(colors)\n }, null, 8, [\"datasets\", \"colors\"])\n ]),\n (!isHidden.value)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n _withDirectives((_openBlock(), _createElementBlock(\"div\", _hoisted_4, [\n _createElementVNode(\"i\", {\n class: \"fa fa-times calendar-more\",\n \"aria-hidden\": \"true\",\n onClick: togglePane\n }),\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(workouts), (workout, index) => {\n return (_openBlock(), _createBlock(CalendarWorkout, {\n key: index,\n workout: workout,\n sportLabel: _unref(getSportLabel)(workout, _unref(sports)),\n sportColor: _unref(getSportColor)(workout, _unref(sports))\n }, null, 8, [\"workout\", \"sportLabel\", \"sportColor\"]))\n }), 128))\n ])), [\n [_directive_click_outside, togglePane]\n ])\n ]))\n : _createCommentVNode(\"\", true)\n ]))\n}\n}\n\n})","import script from \"./CalendarWorkoutsChart.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./CalendarWorkoutsChart.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./CalendarWorkoutsChart.vue?vue&type=style&index=0&id=52d4310a&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-52d4310a\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createVNode as _createVNode, createElementVNode as _createElementVNode } from \"vue\"\n\nconst _hoisted_1 = { class: \"calendar-workouts\" }\nconst _hoisted_2 = { class: \"desktop-display\" }\nconst _hoisted_3 = {\n key: 0,\n class: \"workouts-display\"\n}\nconst _hoisted_4 = {\n key: 1,\n class: \"donut-display\"\n}\nconst _hoisted_5 = { class: \"mobile-display\" }\nconst _hoisted_6 = {\n key: 0,\n class: \"donut-display\"\n}\n\nimport { computed, toRefs } from 'vue'\n\n import CalendarWorkout from '@/components/Dashboard/UserCalendar/CalendarWorkout.vue'\n import CalendarWorkoutsChart from '@/components/Dashboard/UserCalendar/CalendarWorkoutsChart.vue'\n import { ISport } from '@/types/sports'\n import { IWorkout } from '@/types/workouts'\n import { getSportColor, getSportLabel, sportIdColors } from '@/utils/sports'\n import { getDonutDatasets } from '@/utils/workouts'\n\n interface Props {\n displayHARecord: boolean\n workouts: IWorkout[]\n sports: ISport[]\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'CalendarWorkouts',\n props: {\n displayHARecord: { type: Boolean },\n workouts: null,\n sports: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n displayHARecord: boolean\n workouts: IWorkout[]\n sports: ISport[]\n }\n\n \n\n const { displayHARecord, workouts, sports } = toRefs(props)\n const chartDatasets = computed(() => getDonutDatasets(props.workouts))\n const colors = computed(() => sportIdColors(props.sports))\n const displayedWorkoutCount = 6\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n (_unref(workouts).length <= displayedWorkoutCount)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(workouts).slice(0, displayedWorkoutCount), (workout, index) => {\n return (_openBlock(), _createBlock(CalendarWorkout, {\n key: index,\n displayHARecord: _unref(displayHARecord),\n workout: workout,\n sportLabel: _unref(getSportLabel)(workout, _unref(sports)),\n sportColor: _unref(getSportColor)(workout, _unref(sports))\n }, null, 8, [\"displayHARecord\", \"workout\", \"sportLabel\", \"sportColor\"]))\n }), 128))\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_4, [\n _createVNode(CalendarWorkoutsChart, {\n workouts: _unref(workouts),\n sports: _unref(sports),\n datasets: _unref(chartDatasets),\n colors: _unref(colors)\n }, null, 8, [\"workouts\", \"sports\", \"datasets\", \"colors\"])\n ]))\n ]),\n _createElementVNode(\"div\", _hoisted_5, [\n (_unref(workouts).length > 0)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_6, [\n _createVNode(CalendarWorkoutsChart, {\n workouts: _unref(workouts),\n sports: _unref(sports),\n datasets: _unref(chartDatasets),\n colors: _unref(colors)\n }, null, 8, [\"workouts\", \"sports\", \"datasets\", \"colors\"])\n ]))\n : _createCommentVNode(\"\", true)\n ])\n ]))\n}\n}\n\n})","import script from \"./CalendarWorkouts.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./CalendarWorkouts.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./CalendarWorkouts.vue?vue&type=style&index=0&id=5aab7455&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, unref as _unref, createVNode as _createVNode, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, normalizeClass as _normalizeClass } from \"vue\"\n\nconst _hoisted_1 = { class: \"calendar-cells\" }\nconst _hoisted_2 = { class: \"calendar-cell-day\" }\n\nimport { addDays, format, isSameDay, isSameMonth, isToday } from 'date-fns'\n import { Ref, ref, toRefs, watch, onMounted } from 'vue'\n\n import CalendarWorkouts from '@/components/Dashboard/UserCalendar/CalendarWorkouts.vue'\n import { ISport } from '@/types/sports'\n import { IWorkout } from '@/types/workouts'\n import { getDateWithTZ } from '@/utils/dates'\n\n interface Props {\n currentDay: Date\n displayHARecord: boolean\n endDate: Date\n sports: ISport[]\n startDate: Date\n timezone: string\n weekStartingMonday: boolean\n workouts: IWorkout[]\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'CalendarCells',\n props: {\n currentDay: null,\n displayHARecord: { type: Boolean },\n endDate: null,\n sports: null,\n startDate: null,\n timezone: null,\n weekStartingMonday: { type: Boolean },\n workouts: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n currentDay: Date\n displayHARecord: boolean\n endDate: Date\n sports: ISport[]\n startDate: Date\n timezone: string\n weekStartingMonday: boolean\n workouts: IWorkout[]\n }\n\n \n\n const {\n currentDay,\n displayHARecord,\n endDate,\n sports,\n startDate,\n timezone,\n weekStartingMonday,\n workouts,\n } = toRefs(props)\n const rows: Ref = ref([])\n\n onMounted(() => getDays())\n\n function getDays() {\n rows.value = []\n let day = startDate.value\n while (day <= endDate.value) {\n const days: Date[] = []\n for (let i = 0; i < 7; i++) {\n days.push(day)\n day = addDays(day, 1)\n }\n rows.value.push(days)\n }\n }\n function isWeekEnd(day: number): boolean {\n return weekStartingMonday.value\n ? [5, 6].includes(day)\n : [0, 6].includes(day)\n }\n function filterWorkouts(day: Date, workouts: IWorkout[]) {\n if (workouts) {\n return workouts\n .filter((workout) =>\n isSameDay(getDateWithTZ(workout.workout_date, timezone.value), day)\n )\n .reverse()\n }\n return []\n }\n\n watch(\n () => props.currentDay,\n () => getDays()\n )\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(rows.value, (row, index) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"calendar-row\",\n key: index\n }, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(row, (day, i) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: _normalizeClass([\"calendar-cell\", {\n 'disabled-cell': !_unref(isSameMonth)(day, _unref(currentDay)),\n 'week-end': isWeekEnd(i),\n today: _unref(isToday)(day),\n }]),\n key: i\n }, [\n _createVNode(CalendarWorkouts, {\n workouts: filterWorkouts(day, _unref(workouts)),\n sports: _unref(sports),\n displayHARecord: _unref(displayHARecord)\n }, null, 8, [\"workouts\", \"sports\", \"displayHARecord\"]),\n _createElementVNode(\"div\", _hoisted_2, _toDisplayString(_unref(format)(day, 'd')), 1)\n ], 2))\n }), 128))\n ]))\n }), 128))\n ]))\n}\n}\n\n})","import script from \"./CalendarCells.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./CalendarCells.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./CalendarCells.vue?vue&type=style&index=0&id=34b99f0e&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, unref as _unref, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode } from \"vue\"\n\nconst _hoisted_1 = { class: \"calendar-days\" }\n\nimport { Locale, format, addDays } from 'date-fns'\n\n interface Props {\n startDate: Date\n localeOptions: Locale\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'CalendarDays',\n props: {\n startDate: null,\n localeOptions: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n startDate: Date\n localeOptions: Locale\n }\n\n \n\n const days = []\n for (let i = 0; i < 7; i++) {\n days.push(addDays(props.startDate, i))\n }\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_openBlock(), _createElementBlock(_Fragment, null, _renderList(days, (day, index) => {\n return _createElementVNode(\"div\", {\n class: \"calendar-day\",\n key: index\n }, _toDisplayString(_unref(format)(day, 'EEE', { locale: __props.localeOptions })), 1)\n }), 64))\n ]))\n}\n}\n\n})","import script from \"./CalendarDays.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./CalendarDays.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./CalendarDays.vue?vue&type=style&index=0&id=4f3dc99e&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, unref as _unref, toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"calendar-header\" }\nconst _hoisted_2 = /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-chevron-left\",\n \"aria-hidden\": \"true\"\n}, null, -1)\nconst _hoisted_3 = [\n _hoisted_2\n]\nconst _hoisted_4 = { class: \"calendar-month\" }\nconst _hoisted_5 = /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-chevron-right\",\n \"aria-hidden\": \"true\"\n}, null, -1)\nconst _hoisted_6 = [\n _hoisted_5\n]\n\nimport { Locale, format } from 'date-fns'\n import { toRefs } from 'vue'\n\n interface Props {\n day: Date\n localeOptions: Locale\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'CalendarHeader',\n props: {\n day: null,\n localeOptions: null\n },\n emits: ['displayNextMonth', 'displayPreviousMonth'],\n setup(__props: any, { emit }) {\n\nconst props = __props as {\n day: Date\n localeOptions: Locale\n }\n\n \n\n \n\n const { day, localeOptions } = toRefs(props)\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", {\n class: \"calendar-arrow calendar-arrow-left\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (emit('displayPreviousMonth')))\n }, _hoisted_3),\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"span\", null, _toDisplayString(_unref(format)(_unref(day), 'MMM yyyy', { locale: _unref(localeOptions) })), 1)\n ]),\n _createElementVNode(\"div\", {\n class: \"calendar-arrow calendar-arrow-right\",\n onClick: _cache[1] || (_cache[1] = ($event: any) => (emit('displayNextMonth')))\n }, _hoisted_6)\n ]))\n}\n}\n\n})","import script from \"./CalendarHeader.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./CalendarHeader.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./CalendarHeader.vue?vue&type=style&index=0&id=79a65a70&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createVNode as _createVNode, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { id: \"user-calendar\" }\nconst _hoisted_2 = { class: \"calendar-card box\" }\n\nimport { Locale, addMonths, format, subMonths } from 'date-fns'\n import { ComputedRef, computed, ref, toRefs, onBeforeMount } from 'vue'\n\n import CalendarCells from '@/components/Dashboard/UserCalendar/CalendarCells.vue'\n import CalendarDays from '@/components/Dashboard/UserCalendar/CalendarDays.vue'\n import CalendarHeader from '@/components/Dashboard/UserCalendar/CalendarHeader.vue'\n import { ROOT_STORE, WORKOUTS_STORE } from '@/store/constants'\n import { ISport } from '@/types/sports'\n import { IAuthUserProfile } from '@/types/user'\n import { IWorkout, TWorkoutsPayload } from '@/types/workouts'\n import { useStore } from '@/use/useStore'\n import { getCalendarStartAndEnd } from '@/utils/dates'\n import { defaultOrder } from '@/utils/workouts'\n\n interface Props {\n sports: ISport[]\n user: IAuthUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'index',\n props: {\n sports: null,\n user: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n sports: ISport[]\n user: IAuthUserProfile\n }\n\n \n\n const store = useStore()\n\n const { sports, user } = toRefs(props)\n const dateFormat = 'yyyy-MM-dd'\n const day = ref(new Date())\n const calendarDates = ref(getCalendarStartAndEnd(day.value, props.user.weekm))\n const calendarWorkouts: ComputedRef = computed(\n () => store.getters[WORKOUTS_STORE.GETTERS.CALENDAR_WORKOUTS]\n )\n const localeOptions: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.LOCALE]\n )\n\n onBeforeMount(() => getCalendarWorkouts())\n\n function getCalendarWorkouts() {\n calendarDates.value = getCalendarStartAndEnd(day.value, props.user.weekm)\n const apiParams: TWorkoutsPayload = {\n from: format(calendarDates.value.start, dateFormat),\n to: format(calendarDates.value.end, dateFormat),\n page: 1,\n per_page: 100,\n ...defaultOrder,\n }\n store.dispatch(WORKOUTS_STORE.ACTIONS.GET_CALENDAR_WORKOUTS, apiParams)\n }\n function displayNextMonth() {\n day.value = addMonths(day.value, 1)\n getCalendarWorkouts()\n }\n function displayPreviousMonth() {\n day.value = subMonths(day.value, 1)\n getCalendarWorkouts()\n }\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createVNode(CalendarHeader, {\n day: day.value,\n \"locale-options\": _unref(localeOptions),\n onDisplayNextMonth: displayNextMonth,\n onDisplayPreviousMonth: displayPreviousMonth\n }, null, 8, [\"day\", \"locale-options\"]),\n _createVNode(CalendarDays, {\n \"start-date\": calendarDates.value.start,\n \"locale-options\": _unref(localeOptions)\n }, null, 8, [\"start-date\", \"locale-options\"]),\n _createVNode(CalendarCells, {\n currentDay: day.value,\n displayHARecord: _unref(user).display_ascent,\n \"end-date\": calendarDates.value.end,\n sports: _unref(sports),\n \"start-date\": calendarDates.value.start,\n timezone: _unref(user).timezone,\n workouts: _unref(calendarWorkouts),\n weekStartingMonday: _unref(user).weekm\n }, null, 8, [\"currentDay\", \"displayHARecord\", \"end-date\", \"sports\", \"start-date\", \"timezone\", \"workouts\", \"weekStartingMonday\"])\n ])\n ]))\n}\n}\n\n})","import script from \"./index.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./index.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./index.vue?vue&type=style&index=0&id=3e7444d9&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, unref as _unref, createVNode as _createVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-1bcddc12\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"user-month-stats\" }\n\nimport { endOfMonth, startOfMonth } from 'date-fns'\n import { toRefs } from 'vue'\n\n import StatChart from '@/components/Common/StatsChart/index.vue'\n import { ISport } from '@/types/sports'\n import { IUserProfile } from '@/types/user'\n\n interface Props {\n sports: ISport[]\n user: IUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'UserMonthStats',\n props: {\n sports: null,\n user: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n sports: ISport[]\n user: IUserProfile\n }\n\n \n\n const { sports, user } = toRefs(props)\n const date = new Date()\n const chartParams = {\n duration: 'week',\n start: startOfMonth(date),\n end: endOfMonth(date),\n }\n const selectedSportIds = props.sports.map((sport) => sport.id)\n\nreturn (_ctx: any,_cache: any) => {\n const _component_Card = _resolveComponent(\"Card\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_Card, null, {\n title: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('dashboard.THIS_MONTH')), 1)\n ]),\n content: _withCtx(() => [\n _createVNode(StatChart, {\n sports: _unref(sports),\n user: _unref(user),\n \"chart-params\": chartParams,\n \"displayed-sport-ids\": _unref(selectedSportIds),\n \"hide-chart-if-no-data\": true\n }, null, 8, [\"sports\", \"user\", \"displayed-sport-ids\"])\n ]),\n _: 1\n })\n ]))\n}\n}\n\n})","import script from \"./UserMonthStats.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserMonthStats.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserMonthStats.vue?vue&type=style&index=0&id=1bcddc12&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-1bcddc12\"]])\n\nexport default __exports__","import createI18n from '@/i18n'\nimport { ITranslatedSport } from '@/types/sports'\nimport { TUnit } from '@/types/units'\nimport { ICardRecord, IRecord, IRecordsBySports } from '@/types/workouts'\nimport { formatDate, getDateFormat } from '@/utils/dates'\nimport { convertDistance, units } from '@/utils/units'\n\nconst { locale } = createI18n.global\n\nexport const formatRecord = (\n record: IRecord,\n tz: string,\n useImperialUnits: boolean,\n date_format: string\n): Record => {\n const distanceUnitFrom: TUnit = 'km'\n const distanceUnitTo: TUnit = useImperialUnits\n ? units[distanceUnitFrom].defaultTarget\n : distanceUnitFrom\n const ascentUnitFrom: TUnit = 'm'\n const ascentUnitTo: TUnit = useImperialUnits\n ? units[ascentUnitFrom].defaultTarget\n : ascentUnitFrom\n let value\n switch (record.record_type) {\n case 'AS':\n case 'MS':\n value = `${convertDistance(\n +record.value,\n distanceUnitFrom,\n distanceUnitTo,\n 2\n )} ${distanceUnitTo}/h`\n break\n case 'FD':\n value = `${convertDistance(\n +record.value,\n distanceUnitFrom,\n distanceUnitTo,\n 3\n )} ${distanceUnitTo}`\n break\n case 'HA':\n value = `${convertDistance(\n +record.value,\n ascentUnitFrom,\n ascentUnitTo,\n 2\n )} ${ascentUnitTo}`\n break\n case 'LD':\n value = record.value\n break\n default:\n throw new Error(\n `Invalid record type, expected: \"AS\", \"FD\", \"HA\", \"LD\", \"MD\", got: \"${record.record_type}\"`\n )\n }\n return {\n workout_date: formatDate(record.workout_date, tz, date_format, false),\n workout_id: record.workout_id,\n id: record.id,\n record_type: record.record_type,\n value: value,\n }\n}\n\nexport const sortRecords = (a: ICardRecord, b: ICardRecord): number => {\n const recordALabel = a.label.toLowerCase()\n const recordBLabel = b.label.toLowerCase()\n return recordALabel > recordBLabel ? 1 : recordALabel < recordBLabel ? -1 : 0\n}\n\nexport const getRecordsBySports = (\n records: IRecord[],\n translatedSports: ITranslatedSport[],\n tz: string,\n useImperialUnits: boolean,\n display_ascent: boolean,\n date_format: string\n): IRecordsBySports => {\n date_format = getDateFormat(date_format, locale.value)\n return records\n .filter((r) => (display_ascent ? true : r.record_type !== 'HA'))\n .reduce((sportList: IRecordsBySports, record) => {\n const sport = translatedSports.find((s) => s.id === record.sport_id)\n if (sport && sport.label) {\n if (sportList[sport.translatedLabel] === void 0) {\n sportList[sport.translatedLabel] = {\n label: sport.label,\n color: sport.color,\n records: [],\n }\n }\n sportList[sport.translatedLabel].records.push(\n formatRecord(record, tz, useImperialUnits, date_format)\n )\n }\n return sportList\n }, {})\n}\n","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, resolveComponent as _resolveComponent, createVNode as _createVNode, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createElementVNode as _createElementVNode, withCtx as _withCtx, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-8d17c606\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"records-card\" }\nconst _hoisted_2 = { class: \"record-type\" }\nconst _hoisted_3 = { class: \"record-value\" }\nconst _hoisted_4 = { class: \"record-date\" }\n\nimport { toRefs } from 'vue'\n import { useI18n } from 'vue-i18n'\n\n import { ICardRecord, IRecord, IRecordsBySports } from '@/types/workouts'\n import { sortRecords } from '@/utils/records'\n\n interface Props {\n records: IRecordsBySports\n sportTranslatedLabel: string\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'RecordsCard',\n props: {\n records: null,\n sportTranslatedLabel: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n records: IRecordsBySports\n sportTranslatedLabel: string\n }\n\n \n\n const { records, sportTranslatedLabel } = toRefs(props)\n\n const { t } = useI18n()\n\n function getTranslatedRecords(records: IRecord[]): ICardRecord[] {\n const translatedRecords: ICardRecord[] = []\n records.map((record) => {\n translatedRecords.push({\n ...record,\n label: t(`workouts.RECORD_${record.record_type}`),\n })\n })\n return translatedRecords.sort(sortRecords)\n }\n\nreturn (_ctx: any,_cache: any) => {\n const _component_SportImage = _resolveComponent(\"SportImage\")!\n const _component_router_link = _resolveComponent(\"router-link\")!\n const _component_Card = _resolveComponent(\"Card\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_Card, null, {\n title: _withCtx(() => [\n _createVNode(_component_SportImage, {\n \"sport-label\": _unref(records).label,\n color: _unref(records).color\n }, null, 8, [\"sport-label\", \"color\"]),\n _createTextVNode(\" \" + _toDisplayString(_unref(sportTranslatedLabel)), 1)\n ]),\n content: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(getTranslatedRecords(_unref(records).records), (record) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"record\",\n key: record.id\n }, [\n _createElementVNode(\"span\", _hoisted_2, _toDisplayString(record.label), 1),\n _createElementVNode(\"span\", _hoisted_3, _toDisplayString(record.value), 1),\n _createElementVNode(\"span\", _hoisted_4, [\n _createVNode(_component_router_link, {\n to: {\n name: 'Workout',\n params: { workoutId: record.workout_id },\n }\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(record.workout_date), 1)\n ]),\n _: 2\n }, 1032, [\"to\"])\n ])\n ]))\n }), 128))\n ]),\n _: 1\n })\n ]))\n}\n}\n\n})","import script from \"./RecordsCard.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./RecordsCard.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./RecordsCard.vue?vue&type=style&index=0&id=8d17c606&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-8d17c606\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, unref as _unref, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, renderList as _renderList, Fragment as _Fragment, createBlock as _createBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-f0c85cb8\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"user-records-section\" }\nconst _hoisted_2 = { class: \"section-title\" }\nconst _hoisted_3 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-trophy custom-fa-small\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_4 = { class: \"user-records\" }\nconst _hoisted_5 = {\n key: 0,\n class: \"no-records\"\n}\n\nimport { computed } from 'vue'\n import { useI18n } from 'vue-i18n'\n\n import RecordsCard from '@/components/Dashboard/UserRecords/RecordsCard.vue'\n import { ISport } from '@/types/sports'\n import { IAuthUserProfile } from '@/types/user'\n import { getRecordsBySports } from '@/utils/records'\n import { translateSports } from '@/utils/sports'\n\n interface Props {\n sports: ISport[]\n user: IAuthUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'index',\n props: {\n sports: null,\n user: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n sports: ISport[]\n user: IAuthUserProfile\n }\n\n \n\n const { t } = useI18n()\n\n const recordsBySport = computed(() =>\n getRecordsBySports(\n props.user.records,\n translateSports(props.sports, t),\n props.user.timezone,\n props.user.imperial_units,\n props.user.display_ascent,\n props.user.date_format\n )\n )\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _hoisted_3,\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('workouts.RECORD', 2)), 1)\n ]),\n _createElementVNode(\"div\", _hoisted_4, [\n (Object.keys(_unref(recordsBySport)).length === 0)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_5, _toDisplayString(_ctx.$t('workouts.NO_RECORDS')), 1))\n : _createCommentVNode(\"\", true),\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(Object.keys(_unref(recordsBySport)).sort(), (sportTranslatedLabel) => {\n return (_openBlock(), _createBlock(RecordsCard, {\n sportTranslatedLabel: sportTranslatedLabel,\n records: _unref(recordsBySport)[sportTranslatedLabel],\n key: sportTranslatedLabel,\n useImperialUnits: __props.user.imperial_units\n }, null, 8, [\"sportTranslatedLabel\", \"records\", \"useImperialUnits\"]))\n }), 128))\n ])\n ]))\n}\n}\n\n})","import script from \"./index.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./index.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./index.vue?vue&type=style&index=0&id=f0c85cb8&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-f0c85cb8\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createVNode as _createVNode, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { id: \"user-stats\" }\n\nimport { ComputedRef, computed, toRefs } from 'vue'\n import { useI18n } from 'vue-i18n'\n\n import StatCard from '@/components/Common/StatCard.vue'\n import { TUnit } from '@/types/units'\n import { IAuthUserProfile } from '@/types/user'\n import { convertDistance, units } from '@/utils/units'\n interface Props {\n user: IAuthUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'index',\n props: {\n user: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n user: IAuthUserProfile\n }\n\n \n\n const { t } = useI18n()\n\n const { user } = toRefs(props)\n const userTotalDuration: ComputedRef = computed(\n () => props.user.total_duration\n )\n const totalDuration = computed(() => get_duration(userTotalDuration))\n const distanceUnitFrom: TUnit = 'km'\n const distanceUnitTo: TUnit = user.value.imperial_units\n ? units[distanceUnitFrom].defaultTarget\n : distanceUnitFrom\n const totalDistance: ComputedRef = computed(() =>\n user.value.imperial_units\n ? convertDistance(user.value.total_distance, distanceUnitFrom, distanceUnitTo, 2)\n : parseFloat(user.value.total_distance.toFixed(2)))\n const ascentUnitFrom: TUnit = 'm'\n const ascentUnitTo: TUnit = user.value.imperial_units\n ? units[ascentUnitFrom].defaultTarget\n : ascentUnitFrom\n const totalAscent: ComputedRef = computed(() =>\n user.value.imperial_units\n ? convertDistance(user.value.total_ascent, ascentUnitFrom, ascentUnitTo, 2)\n : parseFloat(user.value.total_ascent.toFixed(2)))\n\n\n function get_duration(total_duration: ComputedRef) {\n const duration = total_duration.value.match(/day/g)\n ? total_duration.value.split(', ')[1]\n : total_duration.value\n return {\n days: total_duration.value.match(/day/g)\n ? `${total_duration.value.split(' ')[0]} ${\n total_duration.value.match(/days/g)\n ? t('common.DAY', 2)\n : t('common.DAY', 1)\n }`\n : `0 ${t('common.DAY', 2)},`,\n duration: `${duration.split(':')[0]}h ${duration.split(':')[1]}min`,\n }\n }\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(StatCard, {\n icon: \"calendar\",\n value: _unref(user).nb_workouts,\n text: _ctx.$t('workouts.WORKOUT', _unref(user).nb_workouts)\n }, null, 8, [\"value\", \"text\"]),\n _createVNode(StatCard, {\n icon: \"road\",\n value: _unref(totalDistance),\n text: _unref(distanceUnitTo) === 'mi' ? 'miles' : _unref(distanceUnitTo)\n }, null, 8, [\"value\", \"text\"]),\n (_unref(user).display_ascent)\n ? (_openBlock(), _createBlock(StatCard, {\n key: 0,\n icon: \"location-arrow\",\n value: _unref(totalAscent),\n text: _unref(ascentUnitTo) === 'ft' ? 'feet' : _unref(ascentUnitTo)\n }, null, 8, [\"value\", \"text\"]))\n : _createCommentVNode(\"\", true),\n _createVNode(StatCard, {\n icon: \"clock-o\",\n value: _unref(totalDuration).days,\n text: _unref(totalDuration).duration\n }, null, 8, [\"value\", \"text\"]),\n (!_unref(user).display_ascent)\n ? (_openBlock(), _createBlock(StatCard, {\n key: 1,\n icon: \"tags\",\n value: _unref(user).nb_sports,\n text: _ctx.$t('workouts.SPORT', _unref(user).nb_sports)\n }, null, 8, [\"value\", \"text\"]))\n : _createCommentVNode(\"\", true)\n ]))\n}\n}\n\n})","import script from \"./index.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./index.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./index.vue?vue&type=style&index=0&id=22dcb990&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","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-4c0893c1\"),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, onBeforeMount, ref } from 'vue'\n\n import Timeline from '@/components/Dashboard/Timeline.vue'\n import UserCalendar from '@/components/Dashboard/UserCalendar/index.vue'\n import UserMonthStats from '@/components/Dashboard/UserMonthStats.vue'\n import UserRecords from '@/components/Dashboard/UserRecords/index.vue'\n import UserStatsCards from '@/components/Dashboard/UserStatsCards/index.vue'\n import { AUTH_USER_STORE, SPORTS_STORE } from '@/store/constants'\n import { ISport } from '@/types/sports'\n import { IAuthUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'Dashboard',\n setup(__props) {\n\n const store = useStore()\n\n const authUser: ComputedRef = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.AUTH_USER_PROFILE]\n )\n const sports: ComputedRef = computed(\n () => store.getters[SPORTS_STORE.GETTERS.SPORTS]\n )\n const isSelected: Ref = ref('calendar')\n\n onBeforeMount(() => store.dispatch(AUTH_USER_STORE.ACTIONS.GET_USER_PROFILE))\n\n function updateDisplayColumn(target: string) {\n isSelected.value = target\n }\n\nreturn (_ctx: any,_cache: any) => {\n const _component_Loader = _resolveComponent(\"Loader\")!\n\n return (_unref(authUser).username && _unref(sports).length > 0)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"mobile-menu-item\", { 'is-selected': isSelected.value === 'calendar' }]),\n onClick: _cache[0] || (_cache[0] = ($event: any) => (updateDisplayColumn('calendar')))\n }, _hoisted_5, 2),\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"mobile-menu-item\", { 'is-selected': isSelected.value === 'chart' }]),\n onClick: _cache[1] || (_cache[1] = ($event: any) => (updateDisplayColumn('chart')))\n }, _hoisted_7, 2),\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"mobile-menu-item\", { 'is-selected': isSelected.value === 'timeline' }]),\n onClick: _cache[2] || (_cache[2] = ($event: any) => (updateDisplayColumn('timeline')))\n }, _hoisted_9, 2),\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"mobile-menu-item\", { 'is-selected': isSelected.value === 'records' }]),\n onClick: _cache[3] || (_cache[3] = ($event: any) => (updateDisplayColumn('records')))\n }, _hoisted_11, 2)\n ])\n ]),\n _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=4c0893c1&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-4c0893c1\"]])\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 AddUserApp from '@/components/User/UserApps/AddUserApp.vue'\nimport AuthorizeUserApp from '@/components/User/UserApps/AuthorizeUserApp.vue'\nimport UserApps from '@/components/User/UserApps/index.vue'\nimport UserApp from '@/components/User/UserApps/UserApp.vue'\nimport UserAppsList from '@/components/User/UserApps/UserAppsList.vue'\nimport UserSportPreferences from '@/components/User/UserSportPreferences.vue'\nimport store from '@/store'\nimport { AUTH_USER_STORE } from '@/store/constants'\nimport AboutView from '@/views/AboutView.vue'\nimport Dashboard from '@/views/Dashboard.vue'\nimport NotFoundView from '@/views/NotFoundView.vue'\nimport LoginOrRegister from '@/views/user/LoginOrRegister.vue'\n\nconst getTabFromPath = (path: string): string => {\n const regex = /(\\/profile)(\\/edit)*(\\/*)/\n const tag = path.replace(regex, '').toUpperCase()\n return tag === '' ? 'PROFILE' : tag.toUpperCase()\n}\n\nconst routes: Array = [\n {\n path: '/',\n name: 'Dashboard',\n component: Dashboard,\n },\n {\n path: '/login',\n name: 'Login',\n component: LoginOrRegister,\n props: { action: 'login' },\n },\n {\n path: '/register',\n name: 'Register',\n component: LoginOrRegister,\n props: { action: 'register' },\n },\n {\n path: '/account-confirmation',\n name: 'AccountConfirmation',\n component: () =>\n import(\n /* webpackChunkName: 'profile' */ '@/views/user/AccountConfirmationView.vue'\n ),\n },\n {\n path: '/account-confirmation/resend',\n name: 'AccountConfirmationResend',\n component: () =>\n import(\n /* webpackChunkName: 'reset' */ '@/views/user/AccountConfirmationResendView.vue'\n ),\n props: { action: 'account-confirmation-resend' },\n },\n {\n path: '/account-confirmation/email-sent',\n name: 'AccountConfirmationEmailSend',\n component: () =>\n import(\n /* webpackChunkName: 'reset' */ '@/views/user/AccountConfirmationResendView.vue'\n ),\n props: { action: 'email-sent' },\n },\n {\n path: '/password-reset/sent',\n name: 'PasswordEmailSent',\n component: () =>\n import(\n /* webpackChunkName: 'reset' */ '@/views/user/PasswordResetView.vue'\n ),\n props: { action: 'request-sent' },\n },\n {\n path: '/password-reset/request',\n name: 'PasswordResetRequest',\n component: () =>\n import(\n /* webpackChunkName: 'reset' */ '@/views/user/PasswordResetView.vue'\n ),\n props: { action: 'reset-request' },\n },\n {\n path: '/password-reset/password-updated',\n name: 'PasswordUpdated',\n component: () =>\n import(\n /* webpackChunkName: 'reset' */ '@/views/user/PasswordResetView.vue'\n ),\n props: { action: 'password-updated' },\n },\n {\n path: '/password-reset',\n name: 'PasswordReset',\n component: () =>\n import(\n /* webpackChunkName: 'reset' */ '@/views/user/PasswordResetView.vue'\n ),\n props: { action: 'reset' },\n },\n {\n path: '/email-update',\n name: 'EmailUpdate',\n component: () =>\n import(\n /* webpackChunkName: 'profile' */ '@/views/user/EmailUpdateView.vue'\n ),\n },\n {\n path: '/profile',\n name: 'Profile',\n component: () =>\n import(/* webpackChunkName: 'profile' */ '@/views/user/ProfileView.vue'),\n children: [\n {\n path: '',\n name: 'UserProfile',\n component: Profile,\n props: (route) => ({\n tab: getTabFromPath(route.path),\n }),\n children: [\n {\n path: '',\n name: 'UserInfos',\n component: UserInfos,\n },\n {\n path: 'preferences',\n name: 'UserPreferences',\n component: UserPreferences,\n },\n {\n path: 'sports',\n name: 'UserSportPreferences',\n component: UserSportPreferences,\n props: { isEdition: false },\n },\n {\n path: 'apps',\n name: 'UserApps',\n component: UserApps,\n children: [\n {\n path: '',\n name: 'UserAppsList',\n component: UserAppsList,\n },\n {\n path: ':id',\n name: 'UserApp',\n component: UserApp,\n },\n {\n path: ':id/created',\n name: 'CreatedUserApp',\n component: UserApp,\n props: { afterCreation: true },\n },\n {\n path: 'new',\n name: 'AddUserApp',\n component: AddUserApp,\n },\n {\n path: 'authorize',\n name: 'AuthorizeUserApp',\n component: AuthorizeUserApp,\n },\n ],\n },\n ],\n },\n {\n path: 'edit',\n name: 'UserProfileEdition',\n component: ProfileEdition,\n props: (route) => ({\n tab: getTabFromPath(route.path),\n }),\n children: [\n {\n path: '',\n name: 'UserInfosEdition',\n component: UserInfosEdition,\n },\n {\n path: 'account',\n name: 'UserAccountEdition',\n component: UserAccountEdition,\n },\n {\n path: 'picture',\n name: 'UserPictureEdition',\n component: UserPictureEdition,\n },\n {\n path: 'preferences',\n name: 'UserPreferencesEdition',\n component: UserPreferencesEdition,\n },\n {\n path: 'sports',\n name: 'UserSportPreferencesEdition',\n component: UserSportPreferences,\n props: { isEdition: true },\n },\n ],\n },\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 OAuth2Actions {\n AUTHORIZE_CLIENT = 'AUTHORIZE_CLIENT',\n CREATE_CLIENT = 'CREATE_CLIENT',\n DELETE_CLIENT = 'DELETE_CLIENT',\n GET_CLIENTS = 'GET_CLIENTS',\n GET_CLIENT_BY_CLIENT_ID = 'GET_CLIENT_BY_CLIENT_ID',\n GET_CLIENT_BY_ID = 'GET_CLIENT_BY_ID',\n REVOKE_ALL_TOKENS = 'REVOKE_ALL_TOKENS',\n}\n\nexport enum OAuth2Getters {\n CLIENT = 'CLIENT',\n CLIENTS = 'CLIENTS',\n CLIENTS_PAGINATION = 'CLIENTS_PAGINATION',\n REVOCATION_SUCCESSFUL = 'REVOCATION_SUCCESSFUL',\n}\n\nexport enum OAuth2Mutations {\n EMPTY_CLIENT = 'EMPTY_CLIENT',\n SET_CLIENT = 'SET_CLIENT',\n SET_CLIENTS = 'SET_CLIENTS',\n SET_CLIENTS_PAGINATION = 'SET_CLIENTS_PAGINATION',\n SET_REVOCATION_SUCCESSFUL = 'SET_REVOCATION_SUCCESSFUL',\n}\n","export enum RootActions {\n GET_APPLICATION_CONFIG = 'GET_APPLICATION_CONFIG',\n GET_APPLICATION_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 OAuth2Actions,\n OAuth2Getters,\n OAuth2Mutations,\n} from '@/store/modules/oauth2/enums'\nimport {\n RootActions,\n RootGetters,\n RootMutations,\n} from '@/store/modules/root/enums'\nimport {\n SportsActions,\n SportsGetters,\n SportsMutation,\n} from '@/store/modules/sports/enums'\nimport {\n StatisticsActions,\n StatisticsGetters,\n StatisticsMutations,\n} from '@/store/modules/statistics/enums'\nimport {\n UsersActions,\n UsersGetters,\n UsersMutations,\n} from '@/store/modules/users/enums'\nimport {\n WorkoutsActions,\n WorkoutsGetters,\n WorkoutsMutations,\n} from '@/store/modules/workouts/enums'\n\nexport const ROOT_STORE = {\n ACTIONS: RootActions,\n GETTERS: RootGetters,\n MUTATIONS: RootMutations,\n}\n\nexport const SPORTS_STORE = {\n ACTIONS: SportsActions,\n GETTERS: SportsGetters,\n MUTATIONS: SportsMutation,\n}\n\nexport const STATS_STORE = {\n ACTIONS: StatisticsActions,\n GETTERS: StatisticsGetters,\n MUTATIONS: StatisticsMutations,\n}\n\nexport const AUTH_USER_STORE = {\n ACTIONS: AuthUserActions,\n GETTERS: AuthUserGetters,\n MUTATIONS: AuthUserMutations,\n}\nexport const OAUTH2_STORE = {\n ACTIONS: OAuth2Actions,\n GETTERS: OAuth2Getters,\n MUTATIONS: OAuth2Mutations,\n}\n\nexport const USERS_STORE = {\n ACTIONS: UsersActions,\n GETTERS: UsersGetters,\n MUTATIONS: UsersMutations,\n}\n\nexport const WORKOUTS_STORE = {\n ACTIONS: WorkoutsActions,\n GETTERS: WorkoutsGetters,\n MUTATIONS: WorkoutsMutations,\n}\n","import axios from 'axios'\n\nimport { pendingRequests, removeRequestIfPending } from '@/api/pending'\nimport { getApiUrl } from '@/utils'\n\nconst api = axios.create({\n baseURL: getApiUrl(),\n})\n\napi.interceptors.request.use(\n (config) => {\n const controller = new AbortController()\n config.signal = controller.signal\n const requestKey = removeRequestIfPending(config)\n pendingRequests.set(requestKey, controller)\n return config\n },\n (error) => Promise.reject(error)\n)\n\napi.interceptors.response.use(\n (response) => {\n removeRequestIfPending(response.config)\n return response\n },\n (error) => {\n if (error.message !== 'canceled') {\n removeRequestIfPending(error.response.config)\n }\n return Promise.reject(error)\n }\n)\n\nexport default api\n","import { ActionContext, ActionTree } from 'vuex'\n\nimport authApi from '@/api/authApi'\nimport router from '@/router'\nimport { AUTH_USER_STORE, ROOT_STORE, USERS_STORE } from '@/store/constants'\nimport { IAuthUserState } from '@/store/modules/authUser/types'\nimport { IRootState } from '@/store/modules/root/types'\nimport { IUsersActions, IUsersState } from '@/store/modules/users/types'\nimport { TPaginationPayload } from '@/types/api'\nimport { IAdminUserPayload, IUserDeletionPayload } from '@/types/user'\nimport { handleError } from '@/utils'\n\nexport const deleteUserAccount = (\n context:\n | ActionContext\n | ActionContext,\n payload: IUserDeletionPayload\n): void => {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n authApi\n .delete(`users/${payload.username}`)\n .then((res) => {\n if (res.status === 204) {\n if (payload.fromAdmin) {\n router.push('/admin/users')\n } else {\n context\n .dispatch(AUTH_USER_STORE.ACTIONS.LOGOUT)\n .then(() => router.push('/'))\n }\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n}\n\nexport const actions: ActionTree & IUsersActions = {\n [USERS_STORE.ACTIONS.EMPTY_USER](\n context: ActionContext\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(USERS_STORE.MUTATIONS.UPDATE_USER, {})\n },\n [USERS_STORE.ACTIONS.EMPTY_USERS](\n context: ActionContext\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(USERS_STORE.MUTATIONS.UPDATE_USERS, [])\n context.commit(USERS_STORE.MUTATIONS.UPDATE_USERS_PAGINATION, {})\n },\n [USERS_STORE.ACTIONS.GET_USER](\n context: ActionContext,\n username: string\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(USERS_STORE.MUTATIONS.UPDATE_USERS_LOADING, true)\n authApi\n .get(`users/${username}`)\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n USERS_STORE.MUTATIONS.UPDATE_USER,\n res.data.data.users[0]\n )\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n .finally(() =>\n context.commit(USERS_STORE.MUTATIONS.UPDATE_USERS_LOADING, false)\n )\n },\n [USERS_STORE.ACTIONS.GET_USERS](\n context: ActionContext,\n payload: TPaginationPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(USERS_STORE.MUTATIONS.UPDATE_USERS_LOADING, true)\n authApi\n .get('users', { params: payload })\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n USERS_STORE.MUTATIONS.UPDATE_USERS,\n res.data.data.users\n )\n context.commit(\n USERS_STORE.MUTATIONS.UPDATE_USERS_PAGINATION,\n res.data.pagination\n )\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n .finally(() =>\n context.commit(USERS_STORE.MUTATIONS.UPDATE_USERS_LOADING, false)\n )\n },\n [USERS_STORE.ACTIONS.UPDATE_USER](\n context: ActionContext,\n payload: IAdminUserPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(USERS_STORE.MUTATIONS.UPDATE_IS_SUCCESS, false)\n const data: Record = {}\n if (payload.admin !== undefined) {\n data.admin = payload.admin\n }\n if (payload.resetPassword) {\n data.reset_password = payload.resetPassword\n }\n if (payload.activate) {\n data.activate = payload.activate\n }\n if (payload.new_email !== undefined) {\n data.new_email = payload.new_email\n }\n authApi\n .patch(`users/${payload.username}`, data)\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n USERS_STORE.MUTATIONS.UPDATE_USER_IN_USERS,\n res.data.data.users[0]\n )\n if (payload.resetPassword || payload.new_email) {\n context.commit(USERS_STORE.MUTATIONS.UPDATE_IS_SUCCESS, true)\n }\n if (payload.activate || payload.new_email) {\n context.commit(\n USERS_STORE.MUTATIONS.UPDATE_USER,\n res.data.data.users[0]\n )\n }\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n .finally(() =>\n context.commit(USERS_STORE.MUTATIONS.UPDATE_USERS_LOADING, false)\n )\n },\n [USERS_STORE.ACTIONS.DELETE_USER_ACCOUNT](\n context: ActionContext,\n payload: IUserDeletionPayload\n ): void {\n deleteUserAccount(context, {\n username: payload.username,\n fromAdmin: true,\n })\n },\n}\n","import { ActionContext, ActionTree } from 'vuex'\n\nimport authApi from '@/api/authApi'\nimport api from '@/api/defaultApi'\nimport router from '@/router'\nimport {\n AUTH_USER_STORE,\n ROOT_STORE,\n SPORTS_STORE,\n STATS_STORE,\n USERS_STORE,\n WORKOUTS_STORE,\n} from '@/store/constants'\nimport {\n IAuthUserActions,\n IAuthUserState,\n} from '@/store/modules/authUser/types'\nimport { IRootState } from '@/store/modules/root/types'\nimport { deleteUserAccount } from '@/store/modules/users/actions'\nimport {\n ILoginOrRegisterData,\n IUserAccountPayload,\n IUserDeletionPayload,\n IUserAccountUpdatePayload,\n IUserEmailPayload,\n IUserPasswordResetPayload,\n IUserPayload,\n IUserPicturePayload,\n IUserPreferencesPayload,\n IUserSportPreferencesPayload,\n} from '@/types/user'\nimport { handleError } from '@/utils'\n\nconst removeAuthUserData = (\n context: ActionContext\n) => {\n localStorage.removeItem('authToken')\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(STATS_STORE.MUTATIONS.EMPTY_USER_STATS)\n context.commit(AUTH_USER_STORE.MUTATIONS.CLEAR_AUTH_USER_TOKEN)\n context.commit(USERS_STORE.MUTATIONS.UPDATE_USERS, [])\n context.commit(WORKOUTS_STORE.MUTATIONS.EMPTY_WORKOUTS)\n context.commit(WORKOUTS_STORE.MUTATIONS.EMPTY_WORKOUT)\n router.push('/login')\n}\n\nexport const actions: ActionTree &\n IAuthUserActions = {\n [AUTH_USER_STORE.ACTIONS.CHECK_AUTH_USER](\n context: ActionContext\n ): void {\n if (\n window.localStorage.authToken &&\n !context.getters[AUTH_USER_STORE.GETTERS.IS_AUTHENTICATED]\n ) {\n context.commit(\n AUTH_USER_STORE.MUTATIONS.UPDATE_AUTH_TOKEN,\n window.localStorage.authToken\n )\n context.dispatch(AUTH_USER_STORE.ACTIONS.GET_USER_PROFILE)\n }\n // after logout in another tab\n if (\n !window.localStorage.authToken &&\n context.getters[AUTH_USER_STORE.GETTERS.IS_AUTHENTICATED]\n ) {\n removeAuthUserData(context)\n }\n },\n [AUTH_USER_STORE.ACTIONS.CONFIRM_ACCOUNT](\n context: ActionContext,\n payload: IUserAccountUpdatePayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n api\n .post('auth/account/confirm', { token: payload.token })\n .then((res) => {\n if (res.data.status === 'success') {\n const token = res.data.auth_token\n window.localStorage.setItem('authToken', token)\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_AUTH_TOKEN, token)\n context\n .dispatch(AUTH_USER_STORE.ACTIONS.GET_USER_PROFILE)\n .then(() => router.push('/'))\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => {\n handleError(context, error)\n })\n },\n [AUTH_USER_STORE.ACTIONS.CONFIRM_EMAIL](\n context: ActionContext,\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 if (error.message !== 'canceled') {\n handleError(context, error)\n removeAuthUserData(context)\n }\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 context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n authApi\n .post('auth/logout')\n .then((res) => {\n if (res.data.status === 'success') {\n removeAuthUserData(context)\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\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 router from '@/router'\nimport { OAUTH2_STORE, ROOT_STORE } from '@/store/constants'\nimport { IOAuth2Actions, IOAuth2State } from '@/store/modules/oauth2/types'\nimport { IRootState } from '@/store/modules/root/types'\nimport {\n IOauth2ClientsPayload,\n IOAuth2ClientPayload,\n IOAuth2ClientAuthorizePayload,\n} from '@/types/oauth'\nimport { handleError } from '@/utils'\n\nconst get_client = (\n context: ActionContext,\n url: string\n) => {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n authApi\n .get(url)\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(OAUTH2_STORE.MUTATIONS.SET_CLIENT, res.data.data.client)\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n}\n\nexport const actions: ActionTree & IOAuth2Actions = {\n [OAUTH2_STORE.ACTIONS.AUTHORIZE_CLIENT](\n context: ActionContext,\n payload: IOAuth2ClientAuthorizePayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n const form = new FormData()\n form.set('client_id', payload.client_id)\n form.set('response_type', payload.response_type)\n form.set('scope', payload.scope)\n form.set('confirm', 'true')\n if (payload.state) {\n form.set('state', payload.state)\n }\n if (payload.code_challenge) {\n form.set('code_challenge', payload.code_challenge)\n }\n if (payload.code_challenge_method) {\n form.set('code_challenge_method', payload.code_challenge_method)\n }\n\n authApi\n .post('oauth/authorize', form, {\n headers: {\n 'Content-Type': 'multipart/form-data',\n },\n })\n .then((res) => {\n if (res.status == 200 && res.data.redirect_url) {\n window.location.href = res.data.redirect_url\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n [OAUTH2_STORE.ACTIONS.CREATE_CLIENT](\n context: ActionContext,\n payload: IOAuth2ClientPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n authApi\n .post('oauth/apps', payload)\n .then((res) => {\n if (res.data.status === 'created') {\n context.commit(\n OAUTH2_STORE.MUTATIONS.SET_CLIENT,\n res.data.data.client\n )\n router.push(`/profile/apps/${res.data.data.client.id}/created`)\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n [OAUTH2_STORE.ACTIONS.DELETE_CLIENT](\n context: ActionContext,\n id: number\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n authApi\n .delete(`oauth/apps/${id}`)\n .then((res) => {\n if (res.status === 204) {\n context\n .dispatch(OAUTH2_STORE.ACTIONS.GET_CLIENTS)\n .then(() => router.push('/profile/apps'))\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n [OAUTH2_STORE.ACTIONS.GET_CLIENT_BY_CLIENT_ID](\n context: ActionContext,\n client_id: string\n ): void {\n get_client(context, `oauth/apps/${client_id}`)\n },\n [OAUTH2_STORE.ACTIONS.GET_CLIENT_BY_ID](\n context: ActionContext,\n id: number\n ): void {\n get_client(context, `oauth/apps/${id}/by_id`)\n },\n [OAUTH2_STORE.ACTIONS.GET_CLIENTS](\n context: ActionContext,\n payload: IOauth2ClientsPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n authApi\n .get('oauth/apps', {\n params: payload,\n })\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n OAUTH2_STORE.MUTATIONS.SET_CLIENTS,\n res.data.data.clients\n )\n context.commit(\n OAUTH2_STORE.MUTATIONS.SET_CLIENTS_PAGINATION,\n res.data.pagination\n )\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n [OAUTH2_STORE.ACTIONS.REVOKE_ALL_TOKENS](\n context: ActionContext,\n id: number\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(OAUTH2_STORE.MUTATIONS.SET_REVOCATION_SUCCESSFUL, false)\n authApi\n .post(`oauth/apps/${id}/revoke`)\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(OAUTH2_STORE.MUTATIONS.SET_REVOCATION_SUCCESSFUL, true)\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n}\n","import { GetterTree } from 'vuex'\n\nimport { OAUTH2_STORE } from '@/store/constants'\nimport { IOAuth2Getters, IOAuth2State } from '@/store/modules/oauth2/types'\nimport { IRootState } from '@/store/modules/root/types'\n\nexport const getters: GetterTree & IOAuth2Getters = {\n [OAUTH2_STORE.GETTERS.CLIENT]: (state: IOAuth2State) => state.client,\n [OAUTH2_STORE.GETTERS.CLIENTS]: (state: IOAuth2State) => state.clients,\n [OAUTH2_STORE.GETTERS.CLIENTS_PAGINATION]: (state: IOAuth2State) =>\n state.pagination,\n [OAUTH2_STORE.GETTERS.REVOCATION_SUCCESSFUL]: (state: IOAuth2State) =>\n state.revocationSuccessful,\n}\n","import { MutationTree } from 'vuex'\n\nimport { OAUTH2_STORE } from '@/store/constants'\nimport { IOAuth2State, TOAuth2Mutations } from '@/store/modules/oauth2/types'\nimport { IPagination } from '@/types/api'\nimport { IOAuth2Client } from '@/types/oauth'\n\nexport const mutations: MutationTree & TOAuth2Mutations = {\n [OAUTH2_STORE.MUTATIONS.SET_CLIENT](\n state: IOAuth2State,\n client: IOAuth2Client\n ) {\n state.client = client\n },\n [OAUTH2_STORE.MUTATIONS.EMPTY_CLIENT](state: IOAuth2State) {\n state.client = {}\n },\n [OAUTH2_STORE.MUTATIONS.SET_CLIENTS](\n state: IOAuth2State,\n clients: IOAuth2Client[]\n ) {\n state.clients = clients\n },\n [OAUTH2_STORE.MUTATIONS.SET_CLIENTS_PAGINATION](\n state: IOAuth2State,\n pagination: IPagination\n ) {\n state.pagination = pagination\n },\n [OAUTH2_STORE.MUTATIONS.SET_REVOCATION_SUCCESSFUL](\n state: IOAuth2State,\n revocationSuccessful: boolean\n ) {\n state.revocationSuccessful = revocationSuccessful\n },\n}\n","import { IOAuth2State } from '@/store/modules/oauth2/types'\nimport { IPagination } from '@/types/api'\nimport { IOAuth2Client } from '@/types/oauth'\n\nexport const oAuth2State: IOAuth2State = {\n client: {},\n clients: [],\n pagination: {},\n revocationSuccessful: false,\n}\n","import { Module } from 'vuex'\n\nimport { actions } from '@/store/modules/oauth2/actions'\nimport { getters } from '@/store/modules/oauth2/getters'\nimport { mutations } from '@/store/modules/oauth2/mutations'\nimport { oAuth2State } from '@/store/modules/oauth2/state'\nimport { IOAuth2State } from '@/store/modules/oauth2/types'\nimport { IRootState } from '@/store/modules/root/types'\n\nconst oauth2: Module = {\n state: oAuth2State,\n actions,\n getters,\n mutations,\n}\n\nexport default oauth2\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 oAuthModule from '@/store/modules/oauth2'\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 oAuthModule,\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\nimport createI18n from '@/i18n'\nimport { localeFromLanguage } from '@/utils/locales'\n\nconst { locale } = createI18n.global\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 dateFormat = getDateFormat(dateFormat, locale.value)\n if (!timeFormat) {\n timeFormat = 'HH:mm'\n }\n return {\n workout_date: format(dateTime, dateFormat, {\n locale: localeFromLanguage[locale.value],\n }),\n workout_time: format(dateTime, timeFormat),\n }\n}\n\nconst availableDateFormats = [\n 'MM/dd/yyyy',\n 'dd/MM/yyyy',\n 'yyyy-MM-dd',\n 'date_string',\n]\nconst dateStringFormats: Record = {\n de: 'do MMM yyyy',\n en: 'MMM. do, yyyy',\n fr: 'd MMM yyyy',\n // nb: 'do MMM yyyy',\n}\n\nexport const getDateFormat = (dateFormat: string, language: string): string => {\n return dateFormat === 'date_string' ? dateStringFormats[language] : dateFormat\n}\n\nexport const formatDate = (\n dateString: string,\n timezone: string,\n dateFormat: string,\n withTime = true,\n language: string | null = null\n): string => {\n if (!language) {\n language = locale.value\n }\n return format(\n getDateWithTZ(dateString, timezone),\n `${getDateFormat(dateFormat, language)}${withTime ? ' HH:mm' : ''}`,\n { locale: localeFromLanguage[language] }\n )\n}\n\nexport const availableDateFormatOptions = (\n inputDate: string,\n timezone: string,\n language: string | null = null\n) => {\n const l: string = language ? language : locale.value\n const options: Record[] = []\n availableDateFormats.map((df) => {\n const dateFormat = getDateFormat(df, l)\n options.push({\n label: `${dateFormat} - ${formatDate(\n inputDate,\n timezone,\n dateFormat,\n false,\n l\n )}`,\n value: df,\n })\n })\n return options\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 { AUTH_USER_STORE, ROOT_STORE } from '@/store/constants'\nimport { IAuthUserState } from '@/store/modules/authUser/types'\nimport { IOAuth2State } from '@/store/modules/oauth2/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 | ActionContext,\n error: AxiosError | null,\n msg = 'UNKNOWN'\n): void => {\n // if request is cancelled, no error to display\n if (error && error.message === 'canceled') {\n return\n }\n\n // if stored token is blacklisted, disconnect user\n if (\n error?.response?.status === 401 &&\n error.response.data.error === 'invalid_token'\n ) {\n localStorage.removeItem('authToken')\n context.dispatch(AUTH_USER_STORE.ACTIONS.CHECK_AUTH_USER)\n return\n }\n\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 // nb: nb, // disabled for now\n}\n\nexport const languageLabels: Record = {\n de: 'Deutsch',\n en: 'English',\n fr: 'Français',\n // nb: 'Norsk bokmål', // disabled for now\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 'Cycling (Virtual)': '#64a360',\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 createI18n from '@/i18n'\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, getDateFormat } from '@/utils/dates'\nimport { localeFromLanguage } from '@/utils/locales'\nimport { sportColors } from '@/utils/sports'\nimport { convertStatsDistance } from '@/utils/units'\n\nconst { locale } = createI18n.global\n\nconst dateFormats: Record> = {\n week: {\n api: 'yyyy-MM-dd',\n chart: 'MM/dd/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 userDateFormat: string\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(\n key,\n params.duration === 'week'\n ? getDateFormat(userDateFormat, locale.value)\n : dateFormat.chart,\n { locale: localeFromLanguage[locale.value] }\n )\n labels.push(label)\n datasetKeys.map((datasetKey) => {\n datasets[datasetKey].map((dataset) => {\n dataset.data.push(\n date in apiStats && 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, createCommentVNode as _createCommentVNode } from \"vue\"\n\nimport { Ref, onMounted, ref, toRefs, withDefaults, onUnmounted } 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 const timer = ref()\n const errorDisplayed: Ref = ref(false)\n\n onMounted(() => displayError())\n\n function displayError() {\n timer.value = setTimeout(() => {\n errorDisplayed.value = true\n }, 500)\n }\n\n onUnmounted(() => {\n if (timer.value) {\n clearTimeout(timer.value)\n }\n })\n\nreturn (_ctx: any,_cache: any) => {\n return (errorDisplayed.value)\n ? (_openBlock(), _createBlock(Error, {\n key: 0,\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 : _createCommentVNode(\"\", true)\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-3a9a4a65\"),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 { IOauth2ClientsPayload } from '@/types/oauth'\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 | IOauth2ClientsPayload\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 | IOauth2ClientsPayload\n }\n\n \n\n const { pagination, path, query } = toRefs(props)\n\n function getQuery(\n page: number,\n cursor?: number\n ): TPaginationPayload | IOauth2ClientsPayload {\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=3a9a4a65&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-3a9a4a65\"]])\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 zxcvbnDePackage = await import(\n /* webpackChunkName: \"password\" */ '@zxcvbn-ts/language-de'\n )\n const zxcvbnLangPackages: Record = {\n de: zxcvbnDePackage,\n en: zxcvbnEnPackage,\n fr: zxcvbnFrPackage,\n // no package available for norwegian bokmal, fallback on english\n nb: zxcvbnEnPackage,\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-d5e9b348\"),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 unitFrom = 'km'\n): string => {\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 case 'total_ascent':\n case 'total_descent':\n return `${value.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 function getUnit(displayedData: string) {\n return ['total_ascent', 'total_descent'].includes(displayedData)\n ? 'm'\n : 'km'\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 getUnit(props.displayedData)\n )\n },\n },\n afterFit: function (scale: LayoutItem) {\n scale.width = props.fullStats ? 90 : 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 getUnit(props.displayedData)\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 true,\n getUnit(props.displayedData)\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 true,\n getUnit(props.displayedData)\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=6c8b76cd&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 props.user.date_format\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=d5e9b348&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=d5e9b348&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-d5e9b348\"]])\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-217519af\"),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 import { formatDate, getDateFormat } from '@/utils/dates'\n import { localeFromLanguage } from '@/utils/locales'\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 language: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.LANGUAGE]\n )\n const authUser: ComputedRef = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.AUTH_USER_PROFILE]\n )\n const registrationDate = computed(() =>\n props.user.created_at\n ? formatDate(\n props.user.created_at,\n authUser.value.timezone,\n authUser.value.date_format\n )\n : ''\n )\n const birthDate = computed(() =>\n props.user.birth_date\n ? format(\n new Date(props.user.birth_date),\n `${getDateFormat(authUser.value.date_format, language.value)}`,\n { locale: localeFromLanguage[language.value] }\n )\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=217519af&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-217519af\"]])\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-b3c885de\"),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 onUnmounted,\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 onUnmounted(() => store.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES))\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=b3c885de&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-b3c885de\"]])\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\": 9923,\n\t\"./en/en.ts\": 8757,\n\t\"./fr/fr.ts\": 6625,\n\t\"./nb/nb.ts\": 8891\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\":\"d9073cf1\",\"93\":\"02cf293c\",\"193\":\"c9a8011a\",\"243\":\"e551248f\",\"328\":\"9bc68088\",\"401\":\"8abaa659\",\"431\":\"e5102e07\",\"633\":\"81a8ddc8\",\"845\":\"430ae7df\",\"858\":\"3f2a93f2\",\"881\":\"43430dfc\"}[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\":\"40e24e75\",\"328\":\"73df498d\",\"401\":\"41709693\",\"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__(4970); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["authApi","axios","baseURL","getApiUrl","interceptors","request","use","config","controller","AbortController","signal","requestKey","removeRequestIfPending","pendingRequests","authToken","store","AUTH_USER_STORE","auth","headers","Authorization","error","Promise","reject","response","message","Map","generateRequestKey","method","url","params","data","JSON","stringify","join","has","get","abort","delete","disabledLanguages","loadLocaleMessages","locales","require","messages","keys","forEach","key","matched","match","length","includes","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","oauth2","OAuth2Translations","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","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","cx","cy","r","sportLabel","color","title","sportColors","inject","_normalizeStyle","fill","CyclingSport","CyclingTransport","CyclingVirtual","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","_hoisted_20","edition","useRouter","appData","reactive","max_users","max_single_file_size","max_zip_file_size","gpx_limit_import","updateForm","Object","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","formatDate","created_at","timezone","date_format","nb_workouts","Pagination","tabs","selectedTab","getPath","tab","toLocaleLowerCase","checked","UserHeader","UserProfileTabs","appLanguage","userLanguage","languageLabels","fistDayOfWeek","weekm","display_ascent","getDateFormat","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","format","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","_hoisted_21","_hoisted_22","_hoisted_23","_hoisted_24","_hoisted_25","_hoisted_26","_hoisted_27","weekStart","imperialUnits","ascentData","dateFormatOptions","availableDateFormatOptions","toUTCString","updateTZ","updateAscentDisplay","updateImperialUnit","updateWeekM","lang","_vModelSelect","TimezoneDropdown","dateFormat","start","unit","status","oauth2_scopes","admin_oauth2_scopes","appForm","client_name","client_uri","client_description","redirect_uri","scopes","filtered_scopes","getScopes","redirect_uris","scope","OAUTH2_STORE","updateDescription","updateScopes","indexOf","splice","admin_scopes","description","onChange","client","loadApp","client_id","authorizeApp","response_type","state","code_challenge","code_challenge_method","afterCreation","revocationSuccessful","messageToDisplay","idCopied","secretCopied","clipboardSupport","loadClient","updateMessageToDisplay","forDelete","confirmAction","clientId","copyIdToClipboard","clipboard","writeText","copySecretToClipboard","client_secret","newValue","issued_at","website","clients","getClientsQuery","clientsQuery","getNumberQueryValue","defaultPage","loadClients","isEdition","defaultColor","sports_list","sportPayload","sport_id","stopped_speed_threshold","updateSportInEdition","is_active_for_user","resetSportPayload","isSportInEdition","sportId","updateColor","updateThreshold","updateIsActive","updateSport","resetSport","newIsLoading","src","alt","BikePic","About","workout","_component_Distance","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","displayHARecord","sportColor","records","record","record_type","height","width","colors","datasets","angleOffset","radius","circumference","Math","PI","calculateStrokeDashOffset","percentage","returnCircleTransformValue","rotation","entries","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","getDateWithTZ","reverse","row","isSameMonth","today","isToday","CalendarWorkouts","localeOptions","calendarDates","getCalendarStartAndEnd","calendarWorkouts","getCalendarWorkouts","apiParams","from","end","displayNextMonth","addMonths","displayPreviousMonth","subMonths","CalendarHeader","onDisplayNextMonth","onDisplayPreviousMonth","CalendarDays","CalendarCells","date","chartParams","duration","startOfMonth","endOfMonth","selectedSportIds","StatChart","formatRecord","distanceUnitFrom","distanceUnitTo","ascentUnitFrom","ascentUnitTo","Error","workout_id","sortRecords","a","b","recordALabel","recordBLabel","getRecordsBySports","reduce","sportList","find","sportTranslatedLabel","getTranslatedRecords","translatedRecords","recordsBySport","RecordsCard","userTotalDuration","total_duration","totalDuration","get_duration","totalDistance","total_distance","totalAscent","total_ascent","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","UserApps","UserAppsList","UserApp","AddUserApp","AuthorizeUserApp","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","OAuth2Actions","OAuth2Getters","OAuth2Mutations","RootActions","RootGetters","RootMutations","SportsActions","SportsGetters","SportsMutation","StatisticsActions","StatisticsGetters","StatisticsMutations","UsersActions","UsersGetters","UsersMutations","ACTIONS","GETTERS","MUTATIONS","STATS_STORE","WorkoutsActions","WorkoutsGetters","WorkoutsMutations","deleteUserAccount","context","res","handleError","actions","finally","resetPassword","reset_password","activate","new_email","removeAuthUserData","localStorage","removeItem","token","auth_token","setItem","refreshUser","actionType","redirectUrl","form","FormData","append","authUserProfile","isRegistrationSuccess","mutations","authUserState","get_client","set","redirect_url","oAuth2State","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","oAuthModule","sportsModule","statsModule","usersModule","workoutsModule","createStore","VuexStore","defaultPerPage","defaultValue","getStringQueryValue","availableValues","locationQuery","queryOptions","defaultSort","order","workoutsPayloadKeys","getRange","stop","rangePagination","pages","currentPage","getStartDate","startOfWeek","weekStartsOn","startOfYear","incrementDate","addYears","dateInUTC","utcToZonedTime","monthStart","monthEnd","endOfWeek","formatWorkoutDate","dateTime","timeFormat","workout_time","availableDateFormats","dateStringFormats","de","en","fr","dateString","withTime","inputDate","l","df","suffixes","fileSize","asText","floor","pow","msg","m","availableLocales","sortSports","sportATranslatedLabel","sportBTranslatedLabel","activeStatus","sportsToInclude","dateFormats","week","chart","month","year","datasetKeys","getDateKeys","getStatisticsChartDataset","isLineChart","dataset","backgroundColor","borderColor","spanGaps","getDatasets","displayedSports","average_speed","total_descent","convertStatsValue","datasetKey","convertStatsDistance","formatStats","displayedSportsId","apiStats","userDateFormat","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","timer","errorDisplayed","displayError","clearTimeout","cursor","has_prev","navigate","has_next","active","setZxcvbnOptions","zxcvbnCommonPackage","zxcvbnEnPackage","zxcvbnFrPackage","zxcvbnDePackage","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","getUnit","parse","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","getter","__esModule","leafPrototypes","getProto","getPrototypeOf","obj","__proto__","this","ns","create","def","current","getOwnPropertyNames","definition","defineProperty","enumerable","f","chunkId","all","promises","u","miniCssF","g","globalThis","Function","prop","prototype","hasOwnProperty","inProgress","dataWebpackPrefix","done","needAttach","scripts","getElementsByTagName","getAttribute","createElement","charset","timeout","nc","onScriptComplete","prev","onerror","onload","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.50f5c7a2.js.map b/fittrackee/dist/static/js/chunk-vendors.50f5c7a2.js.map deleted file mode 100644 index 24563a98..00000000 --- a/fittrackee/dist/static/js/chunk-vendors.50f5c7a2.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/chunk-vendors.50f5c7a2.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/vendor/fastest-levenshtein.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/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/an-object.js","webpack://fittrackee_client/./node_modules/core-js/internals/array-includes.js","webpack://fittrackee_client/./node_modules/core-js/internals/array-set-length.js","webpack://fittrackee_client/./node_modules/core-js/internals/classof-raw.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-all.js","webpack://fittrackee_client/./node_modules/core-js/internals/document-create-element.js","webpack://fittrackee_client/./node_modules/core-js/internals/does-not-exceed-safe-integer.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/export.js","webpack://fittrackee_client/./node_modules/core-js/internals/fails.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-raw.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/ie8-dom-define.js","webpack://fittrackee_client/./node_modules/core-js/internals/indexed-object.js","webpack://fittrackee_client/./node_modules/core-js/internals/inspect-source.js","webpack://fittrackee_client/./node_modules/core-js/internals/internal-state.js","webpack://fittrackee_client/./node_modules/core-js/internals/is-array.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-null-or-undefined.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/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-property-is-enumerable.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/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/symbol-constructor-detection.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/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/weak-map-basic-detection.js","webpack://fittrackee_client/./node_modules/core-js/internals/well-known-symbol.js","webpack://fittrackee_client/./node_modules/core-js/modules/es.array.push.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/defaultLocale/index.js","webpack://fittrackee_client/./node_modules/date-fns/_lib/defaultOptions/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/defaultLocale/index.js","webpack://fittrackee_client/./node_modules/date-fns/esm/_lib/defaultOptions/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/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-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/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/chart.js/dist/chart.mjs","webpack://fittrackee_client/./node_modules/chart.js/dist/chunks/helpers.segment.mjs","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","webpack://fittrackee_client/./node_modules/vue-router/dist/vue-router.mjs"],"sourcesContent":["import { extend, isArray, isMap, isIntegerKey, hasOwn, isSymbol, isObject, hasChanged, makeMap, capitalize, toRawType, def, isFunction, NOOP } from '@vue/shared';\n\nfunction warn(msg, ...args) {\n console.warn(`[Vue warn] ${msg}`, ...args);\n}\n\nlet activeEffectScope;\nclass EffectScope {\n constructor(detached = false) {\n this.detached = detached;\n /**\n * @internal\n */\n this.active = true;\n /**\n * @internal\n */\n this.effects = [];\n /**\n * @internal\n */\n this.cleanups = [];\n this.parent = activeEffectScope;\n if (!detached && activeEffectScope) {\n this.index =\n (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push(this) - 1;\n }\n }\n run(fn) {\n if (this.active) {\n const currentEffectScope = activeEffectScope;\n try {\n activeEffectScope = this;\n return fn();\n }\n finally {\n activeEffectScope = currentEffectScope;\n }\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n warn(`cannot run an inactive effect scope.`);\n }\n }\n /**\n * This should only be called on non-detached scopes\n * @internal\n */\n on() {\n activeEffectScope = this;\n }\n /**\n * This should only be called on non-detached scopes\n * @internal\n */\n off() {\n activeEffectScope = this.parent;\n }\n stop(fromParent) {\n if (this.active) {\n let i, l;\n for (i = 0, l = this.effects.length; i < l; i++) {\n this.effects[i].stop();\n }\n for (i = 0, l = this.cleanups.length; i < l; i++) {\n this.cleanups[i]();\n }\n if (this.scopes) {\n for (i = 0, l = this.scopes.length; i < l; i++) {\n this.scopes[i].stop(true);\n }\n }\n // nested scope, dereference from parent to avoid memory leaks\n if (!this.detached && this.parent && !fromParent) {\n // optimized O(1) removal\n const last = this.parent.scopes.pop();\n if (last && last !== this) {\n this.parent.scopes[this.index] = last;\n last.index = this.index;\n }\n }\n this.parent = undefined;\n this.active = false;\n }\n }\n}\nfunction effectScope(detached) {\n return new EffectScope(detached);\n}\nfunction recordEffectScope(effect, scope = activeEffectScope) {\n if (scope && scope.active) {\n scope.effects.push(effect);\n }\n}\nfunction getCurrentScope() {\n return activeEffectScope;\n}\nfunction onScopeDispose(fn) {\n if (activeEffectScope) {\n activeEffectScope.cleanups.push(fn);\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n warn(`onScopeDispose() is called when there is no active effect scope` +\n ` to be associated with.`);\n }\n}\n\nconst createDep = (effects) => {\n const dep = new Set(effects);\n dep.w = 0;\n dep.n = 0;\n return dep;\n};\nconst wasTracked = (dep) => (dep.w & trackOpBit) > 0;\nconst newTracked = (dep) => (dep.n & trackOpBit) > 0;\nconst initDepMarkers = ({ deps }) => {\n if (deps.length) {\n for (let i = 0; i < deps.length; i++) {\n deps[i].w |= trackOpBit; // set was tracked\n }\n }\n};\nconst finalizeDepMarkers = (effect) => {\n const { deps } = effect;\n if (deps.length) {\n let ptr = 0;\n for (let i = 0; i < deps.length; i++) {\n const dep = deps[i];\n if (wasTracked(dep) && !newTracked(dep)) {\n dep.delete(effect);\n }\n else {\n deps[ptr++] = dep;\n }\n // clear bits\n dep.w &= ~trackOpBit;\n dep.n &= ~trackOpBit;\n }\n deps.length = ptr;\n }\n};\n\nconst targetMap = new WeakMap();\n// The number of effects currently being tracked recursively.\nlet effectTrackDepth = 0;\nlet trackOpBit = 1;\n/**\n * The bitwise track markers support at most 30 levels of recursion.\n * This value is chosen to enable modern JS engines to use a SMI on all platforms.\n * When recursion depth is greater, fall back to using a full cleanup.\n */\nconst maxMarkerBits = 30;\nlet activeEffect;\nconst ITERATE_KEY = Symbol((process.env.NODE_ENV !== 'production') ? 'iterate' : '');\nconst MAP_KEY_ITERATE_KEY = Symbol((process.env.NODE_ENV !== 'production') ? 'Map key iterate' : '');\nclass ReactiveEffect {\n constructor(fn, scheduler = null, scope) {\n this.fn = fn;\n this.scheduler = scheduler;\n this.active = true;\n this.deps = [];\n this.parent = undefined;\n recordEffectScope(this, scope);\n }\n run() {\n if (!this.active) {\n return this.fn();\n }\n let parent = activeEffect;\n let lastShouldTrack = shouldTrack;\n while (parent) {\n if (parent === this) {\n return;\n }\n parent = parent.parent;\n }\n try {\n this.parent = activeEffect;\n activeEffect = this;\n shouldTrack = true;\n trackOpBit = 1 << ++effectTrackDepth;\n if (effectTrackDepth <= maxMarkerBits) {\n initDepMarkers(this);\n }\n else {\n cleanupEffect(this);\n }\n return this.fn();\n }\n finally {\n if (effectTrackDepth <= maxMarkerBits) {\n finalizeDepMarkers(this);\n }\n trackOpBit = 1 << --effectTrackDepth;\n activeEffect = this.parent;\n shouldTrack = lastShouldTrack;\n this.parent = undefined;\n if (this.deferStop) {\n this.stop();\n }\n }\n }\n stop() {\n // stopped while running itself - defer the cleanup\n if (activeEffect === this) {\n this.deferStop = true;\n }\n else if (this.active) {\n cleanupEffect(this);\n if (this.onStop) {\n this.onStop();\n }\n this.active = false;\n }\n }\n}\nfunction cleanupEffect(effect) {\n const { deps } = effect;\n if (deps.length) {\n for (let i = 0; i < deps.length; i++) {\n deps[i].delete(effect);\n }\n deps.length = 0;\n }\n}\nfunction effect(fn, options) {\n if (fn.effect) {\n fn = fn.effect.fn;\n }\n const _effect = new ReactiveEffect(fn);\n if (options) {\n extend(_effect, options);\n if (options.scope)\n recordEffectScope(_effect, options.scope);\n }\n if (!options || !options.lazy) {\n _effect.run();\n }\n const runner = _effect.run.bind(_effect);\n runner.effect = _effect;\n return runner;\n}\nfunction stop(runner) {\n runner.effect.stop();\n}\nlet shouldTrack = true;\nconst trackStack = [];\nfunction pauseTracking() {\n trackStack.push(shouldTrack);\n shouldTrack = false;\n}\nfunction enableTracking() {\n trackStack.push(shouldTrack);\n shouldTrack = true;\n}\nfunction resetTracking() {\n const last = trackStack.pop();\n shouldTrack = last === undefined ? true : last;\n}\nfunction track(target, type, key) {\n if (shouldTrack && activeEffect) {\n let depsMap = targetMap.get(target);\n if (!depsMap) {\n targetMap.set(target, (depsMap = new Map()));\n }\n let dep = depsMap.get(key);\n if (!dep) {\n depsMap.set(key, (dep = createDep()));\n }\n const eventInfo = (process.env.NODE_ENV !== 'production')\n ? { effect: activeEffect, target, type, key }\n : undefined;\n trackEffects(dep, eventInfo);\n }\n}\nfunction trackEffects(dep, debuggerEventExtraInfo) {\n let shouldTrack = false;\n if (effectTrackDepth <= maxMarkerBits) {\n if (!newTracked(dep)) {\n dep.n |= trackOpBit; // set newly tracked\n shouldTrack = !wasTracked(dep);\n }\n }\n else {\n // Full cleanup mode.\n shouldTrack = !dep.has(activeEffect);\n }\n if (shouldTrack) {\n dep.add(activeEffect);\n activeEffect.deps.push(dep);\n if ((process.env.NODE_ENV !== 'production') && activeEffect.onTrack) {\n activeEffect.onTrack(Object.assign({ effect: activeEffect }, debuggerEventExtraInfo));\n }\n }\n}\nfunction trigger(target, type, key, newValue, oldValue, oldTarget) {\n const depsMap = targetMap.get(target);\n if (!depsMap) {\n // never been tracked\n return;\n }\n let deps = [];\n if (type === \"clear\" /* TriggerOpTypes.CLEAR */) {\n // collection being cleared\n // trigger all effects for target\n deps = [...depsMap.values()];\n }\n else if (key === 'length' && isArray(target)) {\n depsMap.forEach((dep, key) => {\n if (key === 'length' || key >= newValue) {\n deps.push(dep);\n }\n });\n }\n else {\n // schedule runs for SET | ADD | DELETE\n if (key !== void 0) {\n deps.push(depsMap.get(key));\n }\n // also run for iteration key on ADD | DELETE | Map.SET\n switch (type) {\n case \"add\" /* TriggerOpTypes.ADD */:\n if (!isArray(target)) {\n deps.push(depsMap.get(ITERATE_KEY));\n if (isMap(target)) {\n deps.push(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n }\n else if (isIntegerKey(key)) {\n // new index added to array -> length changes\n deps.push(depsMap.get('length'));\n }\n break;\n case \"delete\" /* TriggerOpTypes.DELETE */:\n if (!isArray(target)) {\n deps.push(depsMap.get(ITERATE_KEY));\n if (isMap(target)) {\n deps.push(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n }\n break;\n case \"set\" /* TriggerOpTypes.SET */:\n if (isMap(target)) {\n deps.push(depsMap.get(ITERATE_KEY));\n }\n break;\n }\n }\n const eventInfo = (process.env.NODE_ENV !== 'production')\n ? { target, type, key, newValue, oldValue, oldTarget }\n : undefined;\n if (deps.length === 1) {\n if (deps[0]) {\n if ((process.env.NODE_ENV !== 'production')) {\n triggerEffects(deps[0], eventInfo);\n }\n else {\n triggerEffects(deps[0]);\n }\n }\n }\n else {\n const effects = [];\n for (const dep of deps) {\n if (dep) {\n effects.push(...dep);\n }\n }\n if ((process.env.NODE_ENV !== 'production')) {\n triggerEffects(createDep(effects), eventInfo);\n }\n else {\n triggerEffects(createDep(effects));\n }\n }\n}\nfunction triggerEffects(dep, debuggerEventExtraInfo) {\n // spread into array for stabilization\n const effects = isArray(dep) ? dep : [...dep];\n for (const effect of effects) {\n if (effect.computed) {\n triggerEffect(effect, debuggerEventExtraInfo);\n }\n }\n for (const effect of effects) {\n if (!effect.computed) {\n triggerEffect(effect, debuggerEventExtraInfo);\n }\n }\n}\nfunction triggerEffect(effect, debuggerEventExtraInfo) {\n if (effect !== activeEffect || effect.allowRecurse) {\n if ((process.env.NODE_ENV !== 'production') && effect.onTrigger) {\n effect.onTrigger(extend({ effect }, debuggerEventExtraInfo));\n }\n if (effect.scheduler) {\n effect.scheduler();\n }\n else {\n effect.run();\n }\n }\n}\n\nconst isNonTrackableKeys = /*#__PURE__*/ makeMap(`__proto__,__v_isRef,__isVue`);\nconst builtInSymbols = new Set(\n/*#__PURE__*/\nObject.getOwnPropertyNames(Symbol)\n // ios10.x Object.getOwnPropertyNames(Symbol) can enumerate 'arguments' and 'caller'\n // but accessing them on Symbol leads to TypeError because Symbol is a strict mode\n // function\n .filter(key => key !== 'arguments' && key !== 'caller')\n .map(key => Symbol[key])\n .filter(isSymbol));\nconst get = /*#__PURE__*/ createGetter();\nconst shallowGet = /*#__PURE__*/ createGetter(false, true);\nconst readonlyGet = /*#__PURE__*/ createGetter(true);\nconst shallowReadonlyGet = /*#__PURE__*/ createGetter(true, true);\nconst arrayInstrumentations = /*#__PURE__*/ createArrayInstrumentations();\nfunction createArrayInstrumentations() {\n const instrumentations = {};\n ['includes', 'indexOf', 'lastIndexOf'].forEach(key => {\n instrumentations[key] = function (...args) {\n const arr = toRaw(this);\n for (let i = 0, l = this.length; i < l; i++) {\n track(arr, \"get\" /* TrackOpTypes.GET */, i + '');\n }\n // we run the method using the original args first (which may be reactive)\n const res = arr[key](...args);\n if (res === -1 || res === false) {\n // if that didn't work, run it again using raw values.\n return arr[key](...args.map(toRaw));\n }\n else {\n return res;\n }\n };\n });\n ['push', 'pop', 'shift', 'unshift', 'splice'].forEach(key => {\n instrumentations[key] = function (...args) {\n pauseTracking();\n const res = toRaw(this)[key].apply(this, args);\n resetTracking();\n return res;\n };\n });\n return instrumentations;\n}\nfunction createGetter(isReadonly = false, shallow = false) {\n return function get(target, key, receiver) {\n if (key === \"__v_isReactive\" /* ReactiveFlags.IS_REACTIVE */) {\n return !isReadonly;\n }\n else if (key === \"__v_isReadonly\" /* ReactiveFlags.IS_READONLY */) {\n return isReadonly;\n }\n else if (key === \"__v_isShallow\" /* ReactiveFlags.IS_SHALLOW */) {\n return shallow;\n }\n else if (key === \"__v_raw\" /* ReactiveFlags.RAW */ &&\n receiver ===\n (isReadonly\n ? shallow\n ? shallowReadonlyMap\n : readonlyMap\n : shallow\n ? shallowReactiveMap\n : reactiveMap).get(target)) {\n return target;\n }\n const targetIsArray = isArray(target);\n if (!isReadonly && targetIsArray && hasOwn(arrayInstrumentations, key)) {\n return Reflect.get(arrayInstrumentations, key, receiver);\n }\n const res = Reflect.get(target, key, receiver);\n if (isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) {\n return res;\n }\n if (!isReadonly) {\n track(target, \"get\" /* TrackOpTypes.GET */, key);\n }\n if (shallow) {\n return res;\n }\n if (isRef(res)) {\n // ref unwrapping - skip unwrap for Array + integer key.\n return targetIsArray && isIntegerKey(key) ? res : res.value;\n }\n if (isObject(res)) {\n // Convert returned value into a proxy as well. we do the isObject check\n // here to avoid invalid value warning. Also need to lazy access readonly\n // and reactive here to avoid circular dependency.\n return isReadonly ? readonly(res) : reactive(res);\n }\n return res;\n };\n}\nconst set = /*#__PURE__*/ createSetter();\nconst shallowSet = /*#__PURE__*/ createSetter(true);\nfunction createSetter(shallow = false) {\n return function set(target, key, value, receiver) {\n let oldValue = target[key];\n if (isReadonly(oldValue) && isRef(oldValue) && !isRef(value)) {\n return false;\n }\n if (!shallow) {\n if (!isShallow(value) && !isReadonly(value)) {\n oldValue = toRaw(oldValue);\n value = toRaw(value);\n }\n if (!isArray(target) && isRef(oldValue) && !isRef(value)) {\n oldValue.value = value;\n return true;\n }\n }\n const hadKey = isArray(target) && isIntegerKey(key)\n ? Number(key) < target.length\n : hasOwn(target, key);\n const result = Reflect.set(target, key, value, receiver);\n // don't trigger if target is something up in the prototype chain of original\n if (target === toRaw(receiver)) {\n if (!hadKey) {\n trigger(target, \"add\" /* TriggerOpTypes.ADD */, key, value);\n }\n else if (hasChanged(value, oldValue)) {\n trigger(target, \"set\" /* TriggerOpTypes.SET */, key, value, oldValue);\n }\n }\n return result;\n };\n}\nfunction deleteProperty(target, key) {\n const hadKey = hasOwn(target, key);\n const oldValue = target[key];\n const result = Reflect.deleteProperty(target, key);\n if (result && hadKey) {\n trigger(target, \"delete\" /* TriggerOpTypes.DELETE */, key, undefined, oldValue);\n }\n return result;\n}\nfunction has(target, key) {\n const result = Reflect.has(target, key);\n if (!isSymbol(key) || !builtInSymbols.has(key)) {\n track(target, \"has\" /* TrackOpTypes.HAS */, key);\n }\n return result;\n}\nfunction ownKeys(target) {\n track(target, \"iterate\" /* TrackOpTypes.ITERATE */, isArray(target) ? 'length' : ITERATE_KEY);\n return Reflect.ownKeys(target);\n}\nconst mutableHandlers = {\n get,\n set,\n deleteProperty,\n has,\n ownKeys\n};\nconst readonlyHandlers = {\n get: readonlyGet,\n set(target, key) {\n if ((process.env.NODE_ENV !== 'production')) {\n warn(`Set operation on key \"${String(key)}\" failed: target is readonly.`, target);\n }\n return true;\n },\n deleteProperty(target, key) {\n if ((process.env.NODE_ENV !== 'production')) {\n warn(`Delete operation on key \"${String(key)}\" failed: target is readonly.`, target);\n }\n return true;\n }\n};\nconst shallowReactiveHandlers = /*#__PURE__*/ extend({}, mutableHandlers, {\n get: shallowGet,\n set: shallowSet\n});\n// Props handlers are special in the sense that it should not unwrap top-level\n// refs (in order to allow refs to be explicitly passed down), but should\n// retain the reactivity of the normal readonly object.\nconst shallowReadonlyHandlers = /*#__PURE__*/ extend({}, readonlyHandlers, {\n get: shallowReadonlyGet\n});\n\nconst toShallow = (value) => value;\nconst getProto = (v) => Reflect.getPrototypeOf(v);\nfunction get$1(target, key, isReadonly = false, isShallow = false) {\n // #1772: readonly(reactive(Map)) should return readonly + reactive version\n // of the value\n target = target[\"__v_raw\" /* ReactiveFlags.RAW */];\n const rawTarget = toRaw(target);\n const rawKey = toRaw(key);\n if (!isReadonly) {\n if (key !== rawKey) {\n track(rawTarget, \"get\" /* TrackOpTypes.GET */, key);\n }\n track(rawTarget, \"get\" /* TrackOpTypes.GET */, rawKey);\n }\n const { has } = getProto(rawTarget);\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\n if (has.call(rawTarget, key)) {\n return wrap(target.get(key));\n }\n else if (has.call(rawTarget, rawKey)) {\n return wrap(target.get(rawKey));\n }\n else if (target !== rawTarget) {\n // #3602 readonly(reactive(Map))\n // ensure that the nested reactive `Map` can do tracking for itself\n target.get(key);\n }\n}\nfunction has$1(key, isReadonly = false) {\n const target = this[\"__v_raw\" /* ReactiveFlags.RAW */];\n const rawTarget = toRaw(target);\n const rawKey = toRaw(key);\n if (!isReadonly) {\n if (key !== rawKey) {\n track(rawTarget, \"has\" /* TrackOpTypes.HAS */, key);\n }\n track(rawTarget, \"has\" /* TrackOpTypes.HAS */, rawKey);\n }\n return key === rawKey\n ? target.has(key)\n : target.has(key) || target.has(rawKey);\n}\nfunction size(target, isReadonly = false) {\n target = target[\"__v_raw\" /* ReactiveFlags.RAW */];\n !isReadonly && track(toRaw(target), \"iterate\" /* TrackOpTypes.ITERATE */, ITERATE_KEY);\n return Reflect.get(target, 'size', target);\n}\nfunction add(value) {\n value = toRaw(value);\n const target = toRaw(this);\n const proto = getProto(target);\n const hadKey = proto.has.call(target, value);\n if (!hadKey) {\n target.add(value);\n trigger(target, \"add\" /* TriggerOpTypes.ADD */, value, value);\n }\n return this;\n}\nfunction set$1(key, value) {\n value = toRaw(value);\n const target = toRaw(this);\n const { has, get } = getProto(target);\n let hadKey = has.call(target, key);\n if (!hadKey) {\n key = toRaw(key);\n hadKey = has.call(target, key);\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n checkIdentityKeys(target, has, key);\n }\n const oldValue = get.call(target, key);\n target.set(key, value);\n if (!hadKey) {\n trigger(target, \"add\" /* TriggerOpTypes.ADD */, key, value);\n }\n else if (hasChanged(value, oldValue)) {\n trigger(target, \"set\" /* TriggerOpTypes.SET */, key, value, oldValue);\n }\n return this;\n}\nfunction deleteEntry(key) {\n const target = toRaw(this);\n const { has, get } = getProto(target);\n let hadKey = has.call(target, key);\n if (!hadKey) {\n key = toRaw(key);\n hadKey = has.call(target, key);\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n checkIdentityKeys(target, has, key);\n }\n const oldValue = get ? get.call(target, key) : undefined;\n // forward the operation before queueing reactions\n const result = target.delete(key);\n if (hadKey) {\n trigger(target, \"delete\" /* TriggerOpTypes.DELETE */, key, undefined, oldValue);\n }\n return result;\n}\nfunction clear() {\n const target = toRaw(this);\n const hadItems = target.size !== 0;\n const oldTarget = (process.env.NODE_ENV !== 'production')\n ? isMap(target)\n ? new Map(target)\n : new Set(target)\n : undefined;\n // forward the operation before queueing reactions\n const result = target.clear();\n if (hadItems) {\n trigger(target, \"clear\" /* TriggerOpTypes.CLEAR */, undefined, undefined, oldTarget);\n }\n return result;\n}\nfunction createForEach(isReadonly, isShallow) {\n return function forEach(callback, thisArg) {\n const observed = this;\n const target = observed[\"__v_raw\" /* ReactiveFlags.RAW */];\n const rawTarget = toRaw(target);\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\n !isReadonly && track(rawTarget, \"iterate\" /* TrackOpTypes.ITERATE */, ITERATE_KEY);\n return target.forEach((value, key) => {\n // important: make sure the callback is\n // 1. invoked with the reactive map as `this` and 3rd arg\n // 2. the value received should be a corresponding reactive/readonly.\n return callback.call(thisArg, wrap(value), wrap(key), observed);\n });\n };\n}\nfunction createIterableMethod(method, isReadonly, isShallow) {\n return function (...args) {\n const target = this[\"__v_raw\" /* ReactiveFlags.RAW */];\n const rawTarget = toRaw(target);\n const targetIsMap = isMap(rawTarget);\n const isPair = method === 'entries' || (method === Symbol.iterator && targetIsMap);\n const isKeyOnly = method === 'keys' && targetIsMap;\n const innerIterator = target[method](...args);\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\n !isReadonly &&\n track(rawTarget, \"iterate\" /* TrackOpTypes.ITERATE */, isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY);\n // return a wrapped iterator which returns observed versions of the\n // values emitted from the real iterator\n return {\n // iterator protocol\n next() {\n const { value, done } = innerIterator.next();\n return done\n ? { value, done }\n : {\n value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value),\n done\n };\n },\n // iterable protocol\n [Symbol.iterator]() {\n return this;\n }\n };\n };\n}\nfunction createReadonlyMethod(type) {\n return function (...args) {\n if ((process.env.NODE_ENV !== 'production')) {\n const key = args[0] ? `on key \"${args[0]}\" ` : ``;\n console.warn(`${capitalize(type)} operation ${key}failed: target is readonly.`, toRaw(this));\n }\n return type === \"delete\" /* TriggerOpTypes.DELETE */ ? false : this;\n };\n}\nfunction createInstrumentations() {\n const mutableInstrumentations = {\n get(key) {\n return get$1(this, key);\n },\n get size() {\n return size(this);\n },\n has: has$1,\n add,\n set: set$1,\n delete: deleteEntry,\n clear,\n forEach: createForEach(false, false)\n };\n const shallowInstrumentations = {\n get(key) {\n return get$1(this, key, false, true);\n },\n get size() {\n return size(this);\n },\n has: has$1,\n add,\n set: set$1,\n delete: deleteEntry,\n clear,\n forEach: createForEach(false, true)\n };\n const readonlyInstrumentations = {\n get(key) {\n return get$1(this, key, true);\n },\n get size() {\n return size(this, true);\n },\n has(key) {\n return has$1.call(this, key, true);\n },\n add: createReadonlyMethod(\"add\" /* TriggerOpTypes.ADD */),\n set: createReadonlyMethod(\"set\" /* TriggerOpTypes.SET */),\n delete: createReadonlyMethod(\"delete\" /* TriggerOpTypes.DELETE */),\n clear: createReadonlyMethod(\"clear\" /* TriggerOpTypes.CLEAR */),\n forEach: createForEach(true, false)\n };\n const shallowReadonlyInstrumentations = {\n get(key) {\n return get$1(this, key, true, true);\n },\n get size() {\n return size(this, true);\n },\n has(key) {\n return has$1.call(this, key, true);\n },\n add: createReadonlyMethod(\"add\" /* TriggerOpTypes.ADD */),\n set: createReadonlyMethod(\"set\" /* TriggerOpTypes.SET */),\n delete: createReadonlyMethod(\"delete\" /* TriggerOpTypes.DELETE */),\n clear: createReadonlyMethod(\"clear\" /* TriggerOpTypes.CLEAR */),\n forEach: createForEach(true, true)\n };\n const iteratorMethods = ['keys', 'values', 'entries', Symbol.iterator];\n iteratorMethods.forEach(method => {\n mutableInstrumentations[method] = createIterableMethod(method, false, false);\n readonlyInstrumentations[method] = createIterableMethod(method, true, false);\n shallowInstrumentations[method] = createIterableMethod(method, false, true);\n shallowReadonlyInstrumentations[method] = createIterableMethod(method, true, true);\n });\n return [\n mutableInstrumentations,\n readonlyInstrumentations,\n shallowInstrumentations,\n shallowReadonlyInstrumentations\n ];\n}\nconst [mutableInstrumentations, readonlyInstrumentations, shallowInstrumentations, shallowReadonlyInstrumentations] = /* #__PURE__*/ createInstrumentations();\nfunction createInstrumentationGetter(isReadonly, shallow) {\n const instrumentations = shallow\n ? isReadonly\n ? shallowReadonlyInstrumentations\n : shallowInstrumentations\n : isReadonly\n ? readonlyInstrumentations\n : mutableInstrumentations;\n return (target, key, receiver) => {\n if (key === \"__v_isReactive\" /* ReactiveFlags.IS_REACTIVE */) {\n return !isReadonly;\n }\n else if (key === \"__v_isReadonly\" /* ReactiveFlags.IS_READONLY */) {\n return isReadonly;\n }\n else if (key === \"__v_raw\" /* ReactiveFlags.RAW */) {\n return target;\n }\n return Reflect.get(hasOwn(instrumentations, key) && key in target\n ? instrumentations\n : target, key, receiver);\n };\n}\nconst mutableCollectionHandlers = {\n get: /*#__PURE__*/ createInstrumentationGetter(false, false)\n};\nconst shallowCollectionHandlers = {\n get: /*#__PURE__*/ createInstrumentationGetter(false, true)\n};\nconst readonlyCollectionHandlers = {\n get: /*#__PURE__*/ createInstrumentationGetter(true, false)\n};\nconst shallowReadonlyCollectionHandlers = {\n get: /*#__PURE__*/ createInstrumentationGetter(true, true)\n};\nfunction checkIdentityKeys(target, has, key) {\n const rawKey = toRaw(key);\n if (rawKey !== key && has.call(target, rawKey)) {\n const type = toRawType(target);\n console.warn(`Reactive ${type} contains both the raw and reactive ` +\n `versions of the same object${type === `Map` ? ` as keys` : ``}, ` +\n `which can lead to inconsistencies. ` +\n `Avoid differentiating between the raw and reactive versions ` +\n `of an object and only use the reactive version if possible.`);\n }\n}\n\nconst reactiveMap = new WeakMap();\nconst shallowReactiveMap = new WeakMap();\nconst readonlyMap = new WeakMap();\nconst shallowReadonlyMap = new WeakMap();\nfunction targetTypeMap(rawType) {\n switch (rawType) {\n case 'Object':\n case 'Array':\n return 1 /* TargetType.COMMON */;\n case 'Map':\n case 'Set':\n case 'WeakMap':\n case 'WeakSet':\n return 2 /* TargetType.COLLECTION */;\n default:\n return 0 /* TargetType.INVALID */;\n }\n}\nfunction getTargetType(value) {\n return value[\"__v_skip\" /* ReactiveFlags.SKIP */] || !Object.isExtensible(value)\n ? 0 /* TargetType.INVALID */\n : targetTypeMap(toRawType(value));\n}\nfunction reactive(target) {\n // if trying to observe a readonly proxy, return the readonly version.\n if (isReadonly(target)) {\n return target;\n }\n return createReactiveObject(target, false, mutableHandlers, mutableCollectionHandlers, reactiveMap);\n}\n/**\n * Return a shallowly-reactive copy of the original object, where only the root\n * level properties are reactive. It also does not auto-unwrap refs (even at the\n * root level).\n */\nfunction shallowReactive(target) {\n return createReactiveObject(target, false, shallowReactiveHandlers, shallowCollectionHandlers, shallowReactiveMap);\n}\n/**\n * Creates a readonly copy of the original object. Note the returned copy is not\n * made reactive, but `readonly` can be called on an already reactive object.\n */\nfunction readonly(target) {\n return createReactiveObject(target, true, readonlyHandlers, readonlyCollectionHandlers, readonlyMap);\n}\n/**\n * Returns a reactive-copy of the original object, where only the root level\n * properties are readonly, and does NOT unwrap refs nor recursively convert\n * returned properties.\n * This is used for creating the props proxy object for stateful components.\n */\nfunction shallowReadonly(target) {\n return createReactiveObject(target, true, shallowReadonlyHandlers, shallowReadonlyCollectionHandlers, shallowReadonlyMap);\n}\nfunction createReactiveObject(target, isReadonly, baseHandlers, collectionHandlers, proxyMap) {\n if (!isObject(target)) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.warn(`value cannot be made reactive: ${String(target)}`);\n }\n return target;\n }\n // target is already a Proxy, return it.\n // exception: calling readonly() on a reactive object\n if (target[\"__v_raw\" /* ReactiveFlags.RAW */] &&\n !(isReadonly && target[\"__v_isReactive\" /* ReactiveFlags.IS_REACTIVE */])) {\n return target;\n }\n // target already has corresponding Proxy\n const existingProxy = proxyMap.get(target);\n if (existingProxy) {\n return existingProxy;\n }\n // only specific value types can be observed.\n const targetType = getTargetType(target);\n if (targetType === 0 /* TargetType.INVALID */) {\n return target;\n }\n const proxy = new Proxy(target, targetType === 2 /* TargetType.COLLECTION */ ? collectionHandlers : baseHandlers);\n proxyMap.set(target, proxy);\n return proxy;\n}\nfunction isReactive(value) {\n if (isReadonly(value)) {\n return isReactive(value[\"__v_raw\" /* ReactiveFlags.RAW */]);\n }\n return !!(value && value[\"__v_isReactive\" /* ReactiveFlags.IS_REACTIVE */]);\n}\nfunction isReadonly(value) {\n return !!(value && value[\"__v_isReadonly\" /* ReactiveFlags.IS_READONLY */]);\n}\nfunction isShallow(value) {\n return !!(value && value[\"__v_isShallow\" /* ReactiveFlags.IS_SHALLOW */]);\n}\nfunction isProxy(value) {\n return isReactive(value) || isReadonly(value);\n}\nfunction toRaw(observed) {\n const raw = observed && observed[\"__v_raw\" /* ReactiveFlags.RAW */];\n return raw ? toRaw(raw) : observed;\n}\nfunction markRaw(value) {\n def(value, \"__v_skip\" /* ReactiveFlags.SKIP */, true);\n return value;\n}\nconst toReactive = (value) => isObject(value) ? reactive(value) : value;\nconst toReadonly = (value) => isObject(value) ? readonly(value) : value;\n\nfunction trackRefValue(ref) {\n if (shouldTrack && activeEffect) {\n ref = toRaw(ref);\n if ((process.env.NODE_ENV !== 'production')) {\n trackEffects(ref.dep || (ref.dep = createDep()), {\n target: ref,\n type: \"get\" /* TrackOpTypes.GET */,\n key: 'value'\n });\n }\n else {\n trackEffects(ref.dep || (ref.dep = createDep()));\n }\n }\n}\nfunction triggerRefValue(ref, newVal) {\n ref = toRaw(ref);\n if (ref.dep) {\n if ((process.env.NODE_ENV !== 'production')) {\n triggerEffects(ref.dep, {\n target: ref,\n type: \"set\" /* TriggerOpTypes.SET */,\n key: 'value',\n newValue: newVal\n });\n }\n else {\n triggerEffects(ref.dep);\n }\n }\n}\nfunction isRef(r) {\n return !!(r && r.__v_isRef === true);\n}\nfunction ref(value) {\n return createRef(value, false);\n}\nfunction shallowRef(value) {\n return createRef(value, true);\n}\nfunction createRef(rawValue, shallow) {\n if (isRef(rawValue)) {\n return rawValue;\n }\n return new RefImpl(rawValue, shallow);\n}\nclass RefImpl {\n constructor(value, __v_isShallow) {\n this.__v_isShallow = __v_isShallow;\n this.dep = undefined;\n this.__v_isRef = true;\n this._rawValue = __v_isShallow ? value : toRaw(value);\n this._value = __v_isShallow ? value : toReactive(value);\n }\n get value() {\n trackRefValue(this);\n return this._value;\n }\n set value(newVal) {\n const useDirectValue = this.__v_isShallow || isShallow(newVal) || isReadonly(newVal);\n newVal = useDirectValue ? newVal : toRaw(newVal);\n if (hasChanged(newVal, this._rawValue)) {\n this._rawValue = newVal;\n this._value = useDirectValue ? newVal : toReactive(newVal);\n triggerRefValue(this, newVal);\n }\n }\n}\nfunction triggerRef(ref) {\n triggerRefValue(ref, (process.env.NODE_ENV !== 'production') ? ref.value : void 0);\n}\nfunction unref(ref) {\n return isRef(ref) ? ref.value : ref;\n}\nconst shallowUnwrapHandlers = {\n get: (target, key, receiver) => unref(Reflect.get(target, key, receiver)),\n set: (target, key, value, receiver) => {\n const oldValue = target[key];\n if (isRef(oldValue) && !isRef(value)) {\n oldValue.value = value;\n return true;\n }\n else {\n return Reflect.set(target, key, value, receiver);\n }\n }\n};\nfunction proxyRefs(objectWithRefs) {\n return isReactive(objectWithRefs)\n ? objectWithRefs\n : new Proxy(objectWithRefs, shallowUnwrapHandlers);\n}\nclass CustomRefImpl {\n constructor(factory) {\n this.dep = undefined;\n this.__v_isRef = true;\n const { get, set } = factory(() => trackRefValue(this), () => triggerRefValue(this));\n this._get = get;\n this._set = set;\n }\n get value() {\n return this._get();\n }\n set value(newVal) {\n this._set(newVal);\n }\n}\nfunction customRef(factory) {\n return new CustomRefImpl(factory);\n}\nfunction toRefs(object) {\n if ((process.env.NODE_ENV !== 'production') && !isProxy(object)) {\n console.warn(`toRefs() expects a reactive object but received a plain one.`);\n }\n const ret = isArray(object) ? new Array(object.length) : {};\n for (const key in object) {\n ret[key] = toRef(object, key);\n }\n return ret;\n}\nclass ObjectRefImpl {\n constructor(_object, _key, _defaultValue) {\n this._object = _object;\n this._key = _key;\n this._defaultValue = _defaultValue;\n this.__v_isRef = true;\n }\n get value() {\n const val = this._object[this._key];\n return val === undefined ? this._defaultValue : val;\n }\n set value(newVal) {\n this._object[this._key] = newVal;\n }\n}\nfunction toRef(object, key, defaultValue) {\n const val = object[key];\n return isRef(val)\n ? val\n : new ObjectRefImpl(object, key, defaultValue);\n}\n\nvar _a;\nclass ComputedRefImpl {\n constructor(getter, _setter, isReadonly, isSSR) {\n this._setter = _setter;\n this.dep = undefined;\n this.__v_isRef = true;\n this[_a] = false;\n this._dirty = true;\n this.effect = new ReactiveEffect(getter, () => {\n if (!this._dirty) {\n this._dirty = true;\n triggerRefValue(this);\n }\n });\n this.effect.computed = this;\n this.effect.active = this._cacheable = !isSSR;\n this[\"__v_isReadonly\" /* ReactiveFlags.IS_READONLY */] = isReadonly;\n }\n get value() {\n // the computed ref may get wrapped by other proxies e.g. readonly() #3376\n const self = toRaw(this);\n trackRefValue(self);\n if (self._dirty || !self._cacheable) {\n self._dirty = false;\n self._value = self.effect.run();\n }\n return self._value;\n }\n set value(newValue) {\n this._setter(newValue);\n }\n}\n_a = \"__v_isReadonly\" /* ReactiveFlags.IS_READONLY */;\nfunction computed(getterOrOptions, debugOptions, isSSR = false) {\n let getter;\n let setter;\n const onlyGetter = isFunction(getterOrOptions);\n if (onlyGetter) {\n getter = getterOrOptions;\n setter = (process.env.NODE_ENV !== 'production')\n ? () => {\n console.warn('Write operation failed: computed value is readonly');\n }\n : NOOP;\n }\n else {\n getter = getterOrOptions.get;\n setter = getterOrOptions.set;\n }\n const cRef = new ComputedRefImpl(getter, setter, onlyGetter || !setter, isSSR);\n if ((process.env.NODE_ENV !== 'production') && debugOptions && !isSSR) {\n cRef.effect.onTrack = debugOptions.onTrack;\n cRef.effect.onTrigger = debugOptions.onTrigger;\n }\n return cRef;\n}\n\nvar _a$1;\nconst tick = /*#__PURE__*/ Promise.resolve();\nconst queue = [];\nlet queued = false;\nconst scheduler = (fn) => {\n queue.push(fn);\n if (!queued) {\n queued = true;\n tick.then(flush);\n }\n};\nconst flush = () => {\n for (let i = 0; i < queue.length; i++) {\n queue[i]();\n }\n queue.length = 0;\n queued = false;\n};\nclass DeferredComputedRefImpl {\n constructor(getter) {\n this.dep = undefined;\n this._dirty = true;\n this.__v_isRef = true;\n this[_a$1] = true;\n let compareTarget;\n let hasCompareTarget = false;\n let scheduled = false;\n this.effect = new ReactiveEffect(getter, (computedTrigger) => {\n if (this.dep) {\n if (computedTrigger) {\n compareTarget = this._value;\n hasCompareTarget = true;\n }\n else if (!scheduled) {\n const valueToCompare = hasCompareTarget ? compareTarget : this._value;\n scheduled = true;\n hasCompareTarget = false;\n scheduler(() => {\n if (this.effect.active && this._get() !== valueToCompare) {\n triggerRefValue(this);\n }\n scheduled = false;\n });\n }\n // chained upstream computeds are notified synchronously to ensure\n // value invalidation in case of sync access; normal effects are\n // deferred to be triggered in scheduler.\n for (const e of this.dep) {\n if (e.computed instanceof DeferredComputedRefImpl) {\n e.scheduler(true /* computedTrigger */);\n }\n }\n }\n this._dirty = true;\n });\n this.effect.computed = this;\n }\n _get() {\n if (this._dirty) {\n this._dirty = false;\n return (this._value = this.effect.run());\n }\n return this._value;\n }\n get value() {\n trackRefValue(this);\n // the computed ref may get wrapped by other proxies e.g. readonly() #3376\n return toRaw(this)._get();\n }\n}\n_a$1 = \"__v_isReadonly\" /* ReactiveFlags.IS_READONLY */;\nfunction deferredComputed(getter) {\n return new DeferredComputedRefImpl(getter);\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, isObject, isOn, hasOwn, isModelListener, hasChanged, remove, 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 = [];\nfunction pushWarningContext(vnode) {\n stack.push(vnode);\n}\nfunction popWarningContext() {\n stack.pop();\n}\nfunction warn(msg, ...args) {\n // avoid props formatting or warn handler tracking deps that might be mutated\n // during patch, leading to infinite recursion.\n pauseTracking();\n const instance = stack.length ? stack[stack.length - 1].component : null;\n const appWarnHandler = instance && instance.appContext.config.warnHandler;\n const trace = getComponentTrace();\n if (appWarnHandler) {\n callWithErrorHandling(appWarnHandler, instance, 11 /* ErrorCodes.APP_WARN_HANDLER */, [\n msg + args.join(''),\n instance && instance.proxy,\n trace\n .map(({ vnode }) => `at <${formatComponentName(instance, vnode.type)}>`)\n .join('\\n'),\n trace\n ]);\n }\n else {\n const warnArgs = [`[Vue warn]: ${msg}`, ...args];\n /* istanbul ignore if */\n if (trace.length &&\n // avoid spamming console during tests\n !false) {\n warnArgs.push(`\\n`, ...formatTrace(trace));\n }\n console.warn(...warnArgs);\n }\n resetTracking();\n}\nfunction getComponentTrace() {\n let currentVNode = stack[stack.length - 1];\n if (!currentVNode) {\n return [];\n }\n // we can't just use the stack because it will be incomplete during updates\n // that did not start from the root. Re-construct the parent chain using\n // instance parent pointers.\n const normalizedStack = [];\n while (currentVNode) {\n const last = normalizedStack[0];\n if (last && last.vnode === currentVNode) {\n last.recurseCount++;\n }\n else {\n normalizedStack.push({\n vnode: currentVNode,\n recurseCount: 0\n });\n }\n const parentInstance = currentVNode.component && currentVNode.component.parent;\n currentVNode = parentInstance && parentInstance.vnode;\n }\n return normalizedStack;\n}\n/* istanbul ignore next */\nfunction formatTrace(trace) {\n const logs = [];\n trace.forEach((entry, i) => {\n logs.push(...(i === 0 ? [] : [`\\n`]), ...formatTraceEntry(entry));\n });\n return logs;\n}\nfunction formatTraceEntry({ vnode, recurseCount }) {\n const postfix = recurseCount > 0 ? `... (${recurseCount} recursive calls)` : ``;\n const isRoot = vnode.component ? vnode.component.parent == null : false;\n const open = ` at <${formatComponentName(vnode.component, vnode.type, isRoot)}`;\n const close = `>` + postfix;\n return vnode.props\n ? [open, ...formatProps(vnode.props), close]\n : [open + close];\n}\n/* istanbul ignore next */\nfunction formatProps(props) {\n const res = [];\n const keys = Object.keys(props);\n keys.slice(0, 3).forEach(key => {\n res.push(...formatProp(key, props[key]));\n });\n if (keys.length > 3) {\n res.push(` ...`);\n }\n return res;\n}\n/* istanbul ignore next */\nfunction formatProp(key, value, raw) {\n if (isString(value)) {\n value = JSON.stringify(value);\n return raw ? value : [`${key}=${value}`];\n }\n else if (typeof value === 'number' ||\n typeof value === 'boolean' ||\n value == null) {\n return raw ? value : [`${key}=${value}`];\n }\n else if (isRef(value)) {\n value = formatProp(key, toRaw(value.value), true);\n return raw ? value : [`${key}=Ref<`, value, `>`];\n }\n else if (isFunction(value)) {\n return [`${key}=fn${value.name ? `<${value.name}>` : ``}`];\n }\n else {\n value = toRaw(value);\n return raw ? value : [`${key}=`, value];\n }\n}\n\nconst ErrorTypeStrings = {\n [\"sp\" /* LifecycleHooks.SERVER_PREFETCH */]: 'serverPrefetch hook',\n [\"bc\" /* LifecycleHooks.BEFORE_CREATE */]: 'beforeCreate hook',\n [\"c\" /* LifecycleHooks.CREATED */]: 'created hook',\n [\"bm\" /* LifecycleHooks.BEFORE_MOUNT */]: 'beforeMount hook',\n [\"m\" /* LifecycleHooks.MOUNTED */]: 'mounted hook',\n [\"bu\" /* LifecycleHooks.BEFORE_UPDATE */]: 'beforeUpdate hook',\n [\"u\" /* LifecycleHooks.UPDATED */]: 'updated',\n [\"bum\" /* LifecycleHooks.BEFORE_UNMOUNT */]: 'beforeUnmount hook',\n [\"um\" /* LifecycleHooks.UNMOUNTED */]: 'unmounted hook',\n [\"a\" /* LifecycleHooks.ACTIVATED */]: 'activated hook',\n [\"da\" /* LifecycleHooks.DEACTIVATED */]: 'deactivated hook',\n [\"ec\" /* LifecycleHooks.ERROR_CAPTURED */]: 'errorCaptured hook',\n [\"rtc\" /* LifecycleHooks.RENDER_TRACKED */]: 'renderTracked hook',\n [\"rtg\" /* LifecycleHooks.RENDER_TRIGGERED */]: 'renderTriggered hook',\n [0 /* ErrorCodes.SETUP_FUNCTION */]: 'setup function',\n [1 /* ErrorCodes.RENDER_FUNCTION */]: 'render function',\n [2 /* ErrorCodes.WATCH_GETTER */]: 'watcher getter',\n [3 /* ErrorCodes.WATCH_CALLBACK */]: 'watcher callback',\n [4 /* ErrorCodes.WATCH_CLEANUP */]: 'watcher cleanup function',\n [5 /* ErrorCodes.NATIVE_EVENT_HANDLER */]: 'native event handler',\n [6 /* ErrorCodes.COMPONENT_EVENT_HANDLER */]: 'component event handler',\n [7 /* ErrorCodes.VNODE_HOOK */]: 'vnode hook',\n [8 /* ErrorCodes.DIRECTIVE_HOOK */]: 'directive hook',\n [9 /* ErrorCodes.TRANSITION_HOOK */]: 'transition hook',\n [10 /* ErrorCodes.APP_ERROR_HANDLER */]: 'app errorHandler',\n [11 /* ErrorCodes.APP_WARN_HANDLER */]: 'app warnHandler',\n [12 /* ErrorCodes.FUNCTION_REF */]: 'ref function',\n [13 /* ErrorCodes.ASYNC_COMPONENT_LOADER */]: 'async component loader',\n [14 /* ErrorCodes.SCHEDULER */]: 'scheduler flush. This is likely a Vue internals bug. ' +\n 'Please open an issue at https://new-issue.vuejs.org/?repo=vuejs/core'\n};\nfunction callWithErrorHandling(fn, instance, type, args) {\n let res;\n try {\n res = args ? fn(...args) : fn();\n }\n catch (err) {\n handleError(err, instance, type);\n }\n return res;\n}\nfunction callWithAsyncErrorHandling(fn, instance, type, args) {\n if (isFunction(fn)) {\n const res = callWithErrorHandling(fn, instance, type, args);\n if (res && isPromise(res)) {\n res.catch(err => {\n handleError(err, instance, type);\n });\n }\n return res;\n }\n const values = [];\n for (let i = 0; i < fn.length; i++) {\n values.push(callWithAsyncErrorHandling(fn[i], instance, type, args));\n }\n return values;\n}\nfunction handleError(err, instance, type, throwInDev = true) {\n const contextVNode = instance ? instance.vnode : null;\n if (instance) {\n let cur = instance.parent;\n // the exposed instance is the render proxy to keep it consistent with 2.x\n const exposedInstance = instance.proxy;\n // in production the hook receives only the error code\n const errorInfo = (process.env.NODE_ENV !== 'production') ? ErrorTypeStrings[type] : type;\n while (cur) {\n const errorCapturedHooks = cur.ec;\n if (errorCapturedHooks) {\n for (let i = 0; i < errorCapturedHooks.length; i++) {\n if (errorCapturedHooks[i](err, exposedInstance, errorInfo) === false) {\n return;\n }\n }\n }\n cur = cur.parent;\n }\n // app-level handling\n const appErrorHandler = instance.appContext.config.errorHandler;\n if (appErrorHandler) {\n callWithErrorHandling(appErrorHandler, null, 10 /* ErrorCodes.APP_ERROR_HANDLER */, [err, exposedInstance, errorInfo]);\n return;\n }\n }\n logError(err, type, contextVNode, throwInDev);\n}\nfunction logError(err, type, contextVNode, throwInDev = true) {\n if ((process.env.NODE_ENV !== 'production')) {\n const info = ErrorTypeStrings[type];\n if (contextVNode) {\n pushWarningContext(contextVNode);\n }\n warn(`Unhandled error${info ? ` during execution of ${info}` : ``}`);\n if (contextVNode) {\n popWarningContext();\n }\n // crash in dev by default so it's more noticeable\n if (throwInDev) {\n throw err;\n }\n else {\n console.error(err);\n }\n }\n else {\n // recover in prod to reduce the impact on end-user\n console.error(err);\n }\n}\n\nlet isFlushing = false;\nlet isFlushPending = false;\nconst queue = [];\nlet flushIndex = 0;\nconst pendingPostFlushCbs = [];\nlet activePostFlushCbs = null;\nlet postFlushIndex = 0;\nconst resolvedPromise = /*#__PURE__*/ Promise.resolve();\nlet currentFlushPromise = null;\nconst RECURSION_LIMIT = 100;\nfunction nextTick(fn) {\n const p = currentFlushPromise || resolvedPromise;\n return fn ? p.then(this ? fn.bind(this) : fn) : p;\n}\n// #2768\n// Use binary-search to find a suitable position in the queue,\n// so that the queue maintains the increasing order of job's id,\n// which can prevent the job from being skipped and also can avoid repeated patching.\nfunction findInsertionIndex(id) {\n // the start index should be `flushIndex + 1`\n let start = flushIndex + 1;\n let end = queue.length;\n while (start < end) {\n const middle = (start + end) >>> 1;\n const middleJobId = getId(queue[middle]);\n middleJobId < id ? (start = middle + 1) : (end = middle);\n }\n return start;\n}\nfunction queueJob(job) {\n // the dedupe search uses the startIndex argument of Array.includes()\n // by default the search index includes the current job that is being run\n // so it cannot recursively trigger itself again.\n // if the job is a watch() callback, the search will start with a +1 index to\n // allow it recursively trigger itself - it is the user's responsibility to\n // ensure it doesn't end up in an infinite loop.\n if (!queue.length ||\n !queue.includes(job, isFlushing && job.allowRecurse ? flushIndex + 1 : flushIndex)) {\n if (job.id == null) {\n queue.push(job);\n }\n else {\n queue.splice(findInsertionIndex(job.id), 0, job);\n }\n queueFlush();\n }\n}\nfunction queueFlush() {\n if (!isFlushing && !isFlushPending) {\n isFlushPending = true;\n currentFlushPromise = resolvedPromise.then(flushJobs);\n }\n}\nfunction invalidateJob(job) {\n const i = queue.indexOf(job);\n if (i > flushIndex) {\n queue.splice(i, 1);\n }\n}\nfunction queuePostFlushCb(cb) {\n if (!isArray(cb)) {\n if (!activePostFlushCbs ||\n !activePostFlushCbs.includes(cb, cb.allowRecurse ? postFlushIndex + 1 : postFlushIndex)) {\n pendingPostFlushCbs.push(cb);\n }\n }\n else {\n // if cb is an array, it is a component lifecycle hook which can only be\n // triggered by a job, which is already deduped in the main queue, so\n // we can skip duplicate check here to improve perf\n pendingPostFlushCbs.push(...cb);\n }\n queueFlush();\n}\nfunction flushPreFlushCbs(seen, \n// if currently flushing, skip the current job itself\ni = isFlushing ? flushIndex + 1 : 0) {\n if ((process.env.NODE_ENV !== 'production')) {\n seen = seen || new Map();\n }\n for (; i < queue.length; i++) {\n const cb = queue[i];\n if (cb && cb.pre) {\n if ((process.env.NODE_ENV !== 'production') && checkRecursiveUpdates(seen, cb)) {\n continue;\n }\n queue.splice(i, 1);\n i--;\n cb();\n }\n }\n}\nfunction flushPostFlushCbs(seen) {\n if (pendingPostFlushCbs.length) {\n const deduped = [...new Set(pendingPostFlushCbs)];\n pendingPostFlushCbs.length = 0;\n // #1947 already has active queue, nested flushPostFlushCbs call\n if (activePostFlushCbs) {\n activePostFlushCbs.push(...deduped);\n return;\n }\n activePostFlushCbs = deduped;\n if ((process.env.NODE_ENV !== 'production')) {\n seen = seen || new Map();\n }\n activePostFlushCbs.sort((a, b) => getId(a) - getId(b));\n for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) {\n if ((process.env.NODE_ENV !== 'production') &&\n checkRecursiveUpdates(seen, activePostFlushCbs[postFlushIndex])) {\n continue;\n }\n activePostFlushCbs[postFlushIndex]();\n }\n activePostFlushCbs = null;\n postFlushIndex = 0;\n }\n}\nconst getId = (job) => job.id == null ? Infinity : job.id;\nconst comparator = (a, b) => {\n const diff = getId(a) - getId(b);\n if (diff === 0) {\n if (a.pre && !b.pre)\n return -1;\n if (b.pre && !a.pre)\n return 1;\n }\n return diff;\n};\nfunction flushJobs(seen) {\n isFlushPending = false;\n isFlushing = true;\n if ((process.env.NODE_ENV !== 'production')) {\n seen = seen || new Map();\n }\n // Sort queue before flush.\n // This ensures that:\n // 1. Components are updated from parent to child. (because parent is always\n // created before the child so its render effect will have smaller\n // priority number)\n // 2. If a component is unmounted during a parent component's update,\n // its update can be skipped.\n queue.sort(comparator);\n // conditional usage of checkRecursiveUpdate must be determined out of\n // try ... catch block since Rollup by default de-optimizes treeshaking\n // inside try-catch. This can leave all warning code unshaked. Although\n // they would get eventually shaken by a minifier like terser, some minifiers\n // would fail to do that (e.g. https://github.com/evanw/esbuild/issues/1610)\n const check = (process.env.NODE_ENV !== 'production')\n ? (job) => checkRecursiveUpdates(seen, job)\n : NOOP;\n try {\n for (flushIndex = 0; flushIndex < queue.length; flushIndex++) {\n const job = queue[flushIndex];\n if (job && job.active !== false) {\n if ((process.env.NODE_ENV !== 'production') && check(job)) {\n continue;\n }\n // console.log(`running:`, job.id)\n callWithErrorHandling(job, null, 14 /* ErrorCodes.SCHEDULER */);\n }\n }\n }\n finally {\n flushIndex = 0;\n queue.length = 0;\n flushPostFlushCbs(seen);\n isFlushing = false;\n currentFlushPromise = null;\n // some postFlushCb queued jobs!\n // keep flushing until it drains.\n if (queue.length || pendingPostFlushCbs.length) {\n flushJobs(seen);\n }\n }\n}\nfunction checkRecursiveUpdates(seen, fn) {\n if (!seen.has(fn)) {\n seen.set(fn, 1);\n }\n else {\n const count = seen.get(fn);\n if (count > RECURSION_LIMIT) {\n const instance = fn.ownerInstance;\n const componentName = instance && getComponentName(instance.type);\n warn(`Maximum recursive updates exceeded${componentName ? ` in component <${componentName}>` : ``}. ` +\n `This means you have a reactive effect that is mutating its own ` +\n `dependencies and thus recursively triggering itself. Possible sources ` +\n `include component template, render function, updated hook or ` +\n `watcher source function.`);\n return true;\n }\n else {\n seen.set(fn, count + 1);\n }\n }\n}\n\n/* eslint-disable no-restricted-globals */\nlet isHmrUpdating = false;\nconst hmrDirtyComponents = new Set();\n// Expose the HMR runtime on the global object\n// This makes it entirely tree-shakable without polluting the exports and makes\n// it easier to be used in toolings like vue-loader\n// Note: for a component to be eligible for HMR it also needs the __hmrId option\n// to be set so that its instances can be registered / removed.\nif ((process.env.NODE_ENV !== 'production')) {\n getGlobalThis().__VUE_HMR_RUNTIME__ = {\n createRecord: tryWrap(createRecord),\n rerender: tryWrap(rerender),\n reload: tryWrap(reload)\n };\n}\nconst map = new Map();\nfunction registerHMR(instance) {\n const id = instance.type.__hmrId;\n let record = map.get(id);\n if (!record) {\n createRecord(id, instance.type);\n record = map.get(id);\n }\n record.instances.add(instance);\n}\nfunction unregisterHMR(instance) {\n map.get(instance.type.__hmrId).instances.delete(instance);\n}\nfunction createRecord(id, initialDef) {\n if (map.has(id)) {\n return false;\n }\n map.set(id, {\n initialDef: normalizeClassComponent(initialDef),\n instances: new Set()\n });\n return true;\n}\nfunction normalizeClassComponent(component) {\n return isClassComponent(component) ? component.__vccOpts : component;\n}\nfunction rerender(id, newRender) {\n const record = map.get(id);\n if (!record) {\n return;\n }\n // update initial record (for not-yet-rendered component)\n record.initialDef.render = newRender;\n [...record.instances].forEach(instance => {\n if (newRender) {\n instance.render = newRender;\n normalizeClassComponent(instance.type).render = newRender;\n }\n instance.renderCache = [];\n // this flag forces child components with slot content to update\n isHmrUpdating = true;\n instance.update();\n isHmrUpdating = false;\n });\n}\nfunction reload(id, newComp) {\n const record = map.get(id);\n if (!record)\n return;\n newComp = normalizeClassComponent(newComp);\n // update initial def (for not-yet-rendered components)\n updateComponentDef(record.initialDef, newComp);\n // create a snapshot which avoids the set being mutated during updates\n const instances = [...record.instances];\n for (const instance of instances) {\n const oldComp = normalizeClassComponent(instance.type);\n if (!hmrDirtyComponents.has(oldComp)) {\n // 1. Update existing comp definition to match new one\n if (oldComp !== record.initialDef) {\n updateComponentDef(oldComp, newComp);\n }\n // 2. mark definition dirty. This forces the renderer to replace the\n // component on patch.\n hmrDirtyComponents.add(oldComp);\n }\n // 3. invalidate options resolution cache\n instance.appContext.optionsCache.delete(instance.type);\n // 4. actually update\n if (instance.ceReload) {\n // custom element\n hmrDirtyComponents.add(oldComp);\n instance.ceReload(newComp.styles);\n hmrDirtyComponents.delete(oldComp);\n }\n else if (instance.parent) {\n // 4. Force the parent instance to re-render. This will cause all updated\n // components to be unmounted and re-mounted. Queue the update so that we\n // don't end up forcing the same parent to re-render multiple times.\n queueJob(instance.parent.update);\n // instance is the inner component of an async custom element\n // invoke to reset styles\n if (instance.parent.type.__asyncLoader &&\n instance.parent.ceReload) {\n instance.parent.ceReload(newComp.styles);\n }\n }\n else if (instance.appContext.reload) {\n // root instance mounted via createApp() has a reload method\n instance.appContext.reload();\n }\n else if (typeof window !== 'undefined') {\n // root instance inside tree created via raw render(). Force reload.\n window.location.reload();\n }\n else {\n console.warn('[HMR] Root or manually mounted instance modified. Full reload required.');\n }\n }\n // 5. make sure to cleanup dirty hmr components after update\n queuePostFlushCb(() => {\n for (const instance of instances) {\n hmrDirtyComponents.delete(normalizeClassComponent(instance.type));\n }\n });\n}\nfunction updateComponentDef(oldComp, newComp) {\n extend(oldComp, newComp);\n for (const key in oldComp) {\n if (key !== '__file' && !(key in newComp)) {\n delete oldComp[key];\n }\n }\n}\nfunction tryWrap(fn) {\n return (id, arg) => {\n try {\n return fn(id, arg);\n }\n catch (e) {\n console.error(e);\n console.warn(`[HMR] Something went wrong during Vue component hot-reload. ` +\n `Full reload required.`);\n }\n };\n}\n\nlet devtools;\nlet buffer = [];\nlet devtoolsNotInstalled = false;\nfunction emit(event, ...args) {\n if (devtools) {\n devtools.emit(event, ...args);\n }\n else if (!devtoolsNotInstalled) {\n buffer.push({ event, args });\n }\n}\nfunction setDevtoolsHook(hook, target) {\n var _a, _b;\n devtools = hook;\n if (devtools) {\n devtools.enabled = true;\n buffer.forEach(({ event, args }) => devtools.emit(event, ...args));\n buffer = [];\n }\n else if (\n // handle late devtools injection - only do this if we are in an actual\n // browser environment to avoid the timer handle stalling test runner exit\n // (#4815)\n typeof window !== 'undefined' &&\n // some envs mock window but not fully\n window.HTMLElement &&\n // also exclude jsdom\n !((_b = (_a = window.navigator) === null || _a === void 0 ? void 0 : _a.userAgent) === null || _b === void 0 ? void 0 : _b.includes('jsdom'))) {\n const replay = (target.__VUE_DEVTOOLS_HOOK_REPLAY__ =\n target.__VUE_DEVTOOLS_HOOK_REPLAY__ || []);\n replay.push((newHook) => {\n setDevtoolsHook(newHook, target);\n });\n // clear buffer after 3s - the user probably doesn't have devtools installed\n // at all, and keeping the buffer will cause memory leaks (#4738)\n setTimeout(() => {\n if (!devtools) {\n target.__VUE_DEVTOOLS_HOOK_REPLAY__ = null;\n devtoolsNotInstalled = true;\n buffer = [];\n }\n }, 3000);\n }\n else {\n // non-browser env, assume not installed\n devtoolsNotInstalled = true;\n buffer = [];\n }\n}\nfunction devtoolsInitApp(app, version) {\n emit(\"app:init\" /* DevtoolsHooks.APP_INIT */, app, version, {\n Fragment,\n Text,\n Comment,\n Static\n });\n}\nfunction devtoolsUnmountApp(app) {\n emit(\"app:unmount\" /* DevtoolsHooks.APP_UNMOUNT */, app);\n}\nconst devtoolsComponentAdded = /*#__PURE__*/ createDevtoolsComponentHook(\"component:added\" /* DevtoolsHooks.COMPONENT_ADDED */);\nconst devtoolsComponentUpdated = \n/*#__PURE__*/ createDevtoolsComponentHook(\"component:updated\" /* DevtoolsHooks.COMPONENT_UPDATED */);\nconst _devtoolsComponentRemoved = /*#__PURE__*/ createDevtoolsComponentHook(\"component:removed\" /* DevtoolsHooks.COMPONENT_REMOVED */);\nconst devtoolsComponentRemoved = (component) => {\n if (devtools &&\n typeof devtools.cleanupBuffer === 'function' &&\n // remove the component if it wasn't buffered\n !devtools.cleanupBuffer(component)) {\n _devtoolsComponentRemoved(component);\n }\n};\nfunction createDevtoolsComponentHook(hook) {\n return (component) => {\n emit(hook, component.appContext.app, component.uid, component.parent ? component.parent.uid : undefined, component);\n };\n}\nconst devtoolsPerfStart = /*#__PURE__*/ createDevtoolsPerformanceHook(\"perf:start\" /* DevtoolsHooks.PERFORMANCE_START */);\nconst devtoolsPerfEnd = /*#__PURE__*/ createDevtoolsPerformanceHook(\"perf:end\" /* DevtoolsHooks.PERFORMANCE_END */);\nfunction createDevtoolsPerformanceHook(hook) {\n return (component, type, time) => {\n emit(hook, component.appContext.app, component.uid, component, type, time);\n };\n}\nfunction devtoolsComponentEmit(component, event, params) {\n emit(\"component:emit\" /* DevtoolsHooks.COMPONENT_EMIT */, component.appContext.app, component, event, params);\n}\n\nfunction emit$1(instance, event, ...rawArgs) {\n if (instance.isUnmounted)\n return;\n const props = instance.vnode.props || EMPTY_OBJ;\n if ((process.env.NODE_ENV !== 'production')) {\n const { emitsOptions, propsOptions: [propsOptions] } = instance;\n if (emitsOptions) {\n if (!(event in emitsOptions) &&\n !(false )) {\n if (!propsOptions || !(toHandlerKey(event) in propsOptions)) {\n warn(`Component emitted event \"${event}\" but it is neither declared in ` +\n `the emits option nor as an \"${toHandlerKey(event)}\" prop.`);\n }\n }\n else {\n const validator = emitsOptions[event];\n if (isFunction(validator)) {\n const isValid = validator(...rawArgs);\n if (!isValid) {\n warn(`Invalid event arguments: event validation failed for event \"${event}\".`);\n }\n }\n }\n }\n }\n let args = rawArgs;\n const isModelListener = event.startsWith('update:');\n // for v-model update:xxx events, apply modifiers on args\n const modelArg = isModelListener && event.slice(7);\n if (modelArg && modelArg in props) {\n const modifiersKey = `${modelArg === 'modelValue' ? 'model' : modelArg}Modifiers`;\n const { number, trim } = props[modifiersKey] || EMPTY_OBJ;\n if (trim) {\n args = rawArgs.map(a => a.trim());\n }\n if (number) {\n args = rawArgs.map(toNumber);\n }\n }\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentEmit(instance, event, args);\n }\n if ((process.env.NODE_ENV !== 'production')) {\n const lowerCaseEvent = event.toLowerCase();\n if (lowerCaseEvent !== event && props[toHandlerKey(lowerCaseEvent)]) {\n warn(`Event \"${lowerCaseEvent}\" is emitted in component ` +\n `${formatComponentName(instance, instance.type)} but the handler is registered for \"${event}\". ` +\n `Note that HTML attributes are case-insensitive and you cannot use ` +\n `v-on to listen to camelCase events when using in-DOM templates. ` +\n `You should probably use \"${hyphenate(event)}\" instead of \"${event}\".`);\n }\n }\n let handlerName;\n let handler = props[(handlerName = toHandlerKey(event))] ||\n // also try camelCase event handler (#2249)\n props[(handlerName = toHandlerKey(camelize(event)))];\n // for v-model update:xxx events, also trigger kebab-case equivalent\n // for props passed via kebab-case\n if (!handler && isModelListener) {\n handler = props[(handlerName = toHandlerKey(hyphenate(event)))];\n }\n if (handler) {\n callWithAsyncErrorHandling(handler, instance, 6 /* ErrorCodes.COMPONENT_EVENT_HANDLER */, args);\n }\n const onceHandler = props[handlerName + `Once`];\n if (onceHandler) {\n if (!instance.emitted) {\n instance.emitted = {};\n }\n else if (instance.emitted[handlerName]) {\n return;\n }\n instance.emitted[handlerName] = true;\n callWithAsyncErrorHandling(onceHandler, instance, 6 /* ErrorCodes.COMPONENT_EVENT_HANDLER */, args);\n }\n}\nfunction normalizeEmitsOptions(comp, appContext, asMixin = false) {\n const cache = appContext.emitsCache;\n const cached = cache.get(comp);\n if (cached !== undefined) {\n return cached;\n }\n const raw = comp.emits;\n let normalized = {};\n // apply mixin/extends props\n let hasExtends = false;\n if (__VUE_OPTIONS_API__ && !isFunction(comp)) {\n const extendEmits = (raw) => {\n const normalizedFromExtend = normalizeEmitsOptions(raw, appContext, true);\n if (normalizedFromExtend) {\n hasExtends = true;\n extend(normalized, normalizedFromExtend);\n }\n };\n if (!asMixin && appContext.mixins.length) {\n appContext.mixins.forEach(extendEmits);\n }\n if (comp.extends) {\n extendEmits(comp.extends);\n }\n if (comp.mixins) {\n comp.mixins.forEach(extendEmits);\n }\n }\n if (!raw && !hasExtends) {\n if (isObject(comp)) {\n cache.set(comp, null);\n }\n return null;\n }\n if (isArray(raw)) {\n raw.forEach(key => (normalized[key] = null));\n }\n else {\n extend(normalized, raw);\n }\n if (isObject(comp)) {\n cache.set(comp, normalized);\n }\n return normalized;\n}\n// Check if an incoming prop key is a declared emit event listener.\n// e.g. With `emits: { click: null }`, props named `onClick` and `onclick` are\n// both considered matched listeners.\nfunction isEmitListener(options, key) {\n if (!options || !isOn(key)) {\n return false;\n }\n key = key.slice(2).replace(/Once$/, '');\n return (hasOwn(options, key[0].toLowerCase() + key.slice(1)) ||\n hasOwn(options, hyphenate(key)) ||\n hasOwn(options, key));\n}\n\n/**\n * mark the current rendering instance for asset resolution (e.g.\n * resolveComponent, resolveDirective) during render\n */\nlet currentRenderingInstance = null;\nlet currentScopeId = null;\n/**\n * Note: rendering calls maybe nested. The function returns the parent rendering\n * instance if present, which should be restored after the render is done:\n *\n * ```js\n * const prev = setCurrentRenderingInstance(i)\n * // ...render\n * setCurrentRenderingInstance(prev)\n * ```\n */\nfunction setCurrentRenderingInstance(instance) {\n const prev = currentRenderingInstance;\n currentRenderingInstance = instance;\n currentScopeId = (instance && instance.type.__scopeId) || null;\n return prev;\n}\n/**\n * Set scope id when creating hoisted vnodes.\n * @private compiler helper\n */\nfunction pushScopeId(id) {\n currentScopeId = id;\n}\n/**\n * Technically we no longer need this after 3.0.8 but we need to keep the same\n * API for backwards compat w/ code generated by compilers.\n * @private\n */\nfunction popScopeId() {\n currentScopeId = null;\n}\n/**\n * Only for backwards compat\n * @private\n */\nconst withScopeId = (_id) => withCtx;\n/**\n * Wrap a slot function to memoize current rendering instance\n * @private compiler helper\n */\nfunction withCtx(fn, ctx = currentRenderingInstance, isNonScopedSlot // false only\n) {\n if (!ctx)\n return fn;\n // already normalized\n if (fn._n) {\n return fn;\n }\n const renderFnWithContext = (...args) => {\n // If a user calls a compiled slot inside a template expression (#1745), it\n // can mess up block tracking, so by default we disable block tracking and\n // force bail out when invoking a compiled slot (indicated by the ._d flag).\n // This isn't necessary if rendering a compiled ``, so we flip the\n // ._d flag off when invoking the wrapped fn inside `renderSlot`.\n if (renderFnWithContext._d) {\n setBlockTracking(-1);\n }\n const prevInstance = setCurrentRenderingInstance(ctx);\n let res;\n try {\n res = fn(...args);\n }\n finally {\n setCurrentRenderingInstance(prevInstance);\n if (renderFnWithContext._d) {\n setBlockTracking(1);\n }\n }\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentUpdated(ctx);\n }\n return res;\n };\n // mark normalized to avoid duplicated wrapping\n renderFnWithContext._n = true;\n // mark this as compiled by default\n // this is used in vnode.ts -> normalizeChildren() to set the slot\n // rendering flag.\n renderFnWithContext._c = true;\n // disable block tracking by default\n renderFnWithContext._d = true;\n return renderFnWithContext;\n}\n\n/**\n * dev only flag to track whether $attrs was used during render.\n * If $attrs was used during render then the warning for failed attrs\n * fallthrough can be suppressed.\n */\nlet accessedAttrs = false;\nfunction markAttrsAccessed() {\n accessedAttrs = true;\n}\nfunction renderComponentRoot(instance) {\n const { type: Component, vnode, proxy, withProxy, props, propsOptions: [propsOptions], slots, attrs, emit, render, renderCache, data, setupState, ctx, inheritAttrs } = instance;\n let result;\n let fallthroughAttrs;\n const prev = setCurrentRenderingInstance(instance);\n if ((process.env.NODE_ENV !== 'production')) {\n accessedAttrs = false;\n }\n try {\n if (vnode.shapeFlag & 4 /* ShapeFlags.STATEFUL_COMPONENT */) {\n // withProxy is a proxy with a different `has` trap only for\n // runtime-compiled render functions using `with` block.\n const proxyToUse = withProxy || proxy;\n result = normalizeVNode(render.call(proxyToUse, proxyToUse, renderCache, props, setupState, data, ctx));\n fallthroughAttrs = attrs;\n }\n else {\n // functional\n const render = Component;\n // in dev, mark attrs accessed if optional props (attrs === props)\n if ((process.env.NODE_ENV !== 'production') && attrs === props) {\n markAttrsAccessed();\n }\n result = normalizeVNode(render.length > 1\n ? render(props, (process.env.NODE_ENV !== 'production')\n ? {\n get attrs() {\n markAttrsAccessed();\n return attrs;\n },\n slots,\n emit\n }\n : { attrs, slots, emit })\n : render(props, null /* we know it doesn't need it */));\n fallthroughAttrs = Component.props\n ? attrs\n : getFunctionalFallthrough(attrs);\n }\n }\n catch (err) {\n blockStack.length = 0;\n handleError(err, instance, 1 /* ErrorCodes.RENDER_FUNCTION */);\n result = createVNode(Comment);\n }\n // attr merging\n // in dev mode, comments are preserved, and it's possible for a template\n // to have comments along side the root element which makes it a fragment\n let root = result;\n let setRoot = undefined;\n if ((process.env.NODE_ENV !== 'production') &&\n result.patchFlag > 0 &&\n result.patchFlag & 2048 /* PatchFlags.DEV_ROOT_FRAGMENT */) {\n [root, setRoot] = getChildRoot(result);\n }\n if (fallthroughAttrs && inheritAttrs !== false) {\n const keys = Object.keys(fallthroughAttrs);\n const { shapeFlag } = root;\n if (keys.length) {\n if (shapeFlag & (1 /* ShapeFlags.ELEMENT */ | 6 /* ShapeFlags.COMPONENT */)) {\n if (propsOptions && keys.some(isModelListener)) {\n // If a v-model listener (onUpdate:xxx) has a corresponding declared\n // prop, it indicates this component expects to handle v-model and\n // it should not fallthrough.\n // related: #1543, #1643, #1989\n fallthroughAttrs = filterModelListeners(fallthroughAttrs, propsOptions);\n }\n root = cloneVNode(root, fallthroughAttrs);\n }\n else if ((process.env.NODE_ENV !== 'production') && !accessedAttrs && root.type !== Comment) {\n const allAttrs = Object.keys(attrs);\n const eventAttrs = [];\n const extraAttrs = [];\n for (let i = 0, l = allAttrs.length; i < l; i++) {\n const key = allAttrs[i];\n if (isOn(key)) {\n // ignore v-model handlers when they fail to fallthrough\n if (!isModelListener(key)) {\n // remove `on`, lowercase first letter to reflect event casing\n // accurately\n eventAttrs.push(key[2].toLowerCase() + key.slice(3));\n }\n }\n else {\n extraAttrs.push(key);\n }\n }\n if (extraAttrs.length) {\n warn(`Extraneous non-props attributes (` +\n `${extraAttrs.join(', ')}) ` +\n `were passed to component but could not be automatically inherited ` +\n `because component renders fragment or text root nodes.`);\n }\n if (eventAttrs.length) {\n warn(`Extraneous non-emits event listeners (` +\n `${eventAttrs.join(', ')}) ` +\n `were passed to component but could not be automatically inherited ` +\n `because component renders fragment or text root nodes. ` +\n `If the listener is intended to be a component custom event listener only, ` +\n `declare it using the \"emits\" option.`);\n }\n }\n }\n }\n // inherit directives\n if (vnode.dirs) {\n if ((process.env.NODE_ENV !== 'production') && !isElementRoot(root)) {\n warn(`Runtime directive used on component with non-element root node. ` +\n `The directives will not function as intended.`);\n }\n // clone before mutating since the root may be a hoisted vnode\n root = cloneVNode(root);\n root.dirs = root.dirs ? root.dirs.concat(vnode.dirs) : vnode.dirs;\n }\n // inherit transition data\n if (vnode.transition) {\n if ((process.env.NODE_ENV !== 'production') && !isElementRoot(root)) {\n warn(`Component inside renders non-element root node ` +\n `that cannot be animated.`);\n }\n root.transition = vnode.transition;\n }\n if ((process.env.NODE_ENV !== 'production') && setRoot) {\n setRoot(root);\n }\n else {\n result = root;\n }\n setCurrentRenderingInstance(prev);\n return result;\n}\n/**\n * dev only\n * In dev mode, template root level comments are rendered, which turns the\n * template into a fragment root, but we need to locate the single element\n * root for attrs and scope id processing.\n */\nconst getChildRoot = (vnode) => {\n const rawChildren = vnode.children;\n const dynamicChildren = vnode.dynamicChildren;\n const childRoot = filterSingleRoot(rawChildren);\n if (!childRoot) {\n return [vnode, undefined];\n }\n const index = rawChildren.indexOf(childRoot);\n const dynamicIndex = dynamicChildren ? dynamicChildren.indexOf(childRoot) : -1;\n const setRoot = (updatedRoot) => {\n rawChildren[index] = updatedRoot;\n if (dynamicChildren) {\n if (dynamicIndex > -1) {\n dynamicChildren[dynamicIndex] = updatedRoot;\n }\n else if (updatedRoot.patchFlag > 0) {\n vnode.dynamicChildren = [...dynamicChildren, updatedRoot];\n }\n }\n };\n return [normalizeVNode(childRoot), setRoot];\n};\nfunction filterSingleRoot(children) {\n let singleRoot;\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n if (isVNode(child)) {\n // ignore user comment\n if (child.type !== Comment || child.children === 'v-if') {\n if (singleRoot) {\n // has more than 1 non-comment child, return now\n return;\n }\n else {\n singleRoot = child;\n }\n }\n }\n else {\n return;\n }\n }\n return singleRoot;\n}\nconst getFunctionalFallthrough = (attrs) => {\n let res;\n for (const key in attrs) {\n if (key === 'class' || key === 'style' || isOn(key)) {\n (res || (res = {}))[key] = attrs[key];\n }\n }\n return res;\n};\nconst filterModelListeners = (attrs, props) => {\n const res = {};\n for (const key in attrs) {\n if (!isModelListener(key) || !(key.slice(9) in props)) {\n res[key] = attrs[key];\n }\n }\n return res;\n};\nconst isElementRoot = (vnode) => {\n return (vnode.shapeFlag & (6 /* ShapeFlags.COMPONENT */ | 1 /* ShapeFlags.ELEMENT */) ||\n vnode.type === Comment // potential v-if branch switch\n );\n};\nfunction shouldUpdateComponent(prevVNode, nextVNode, optimized) {\n const { props: prevProps, children: prevChildren, component } = prevVNode;\n const { props: nextProps, children: nextChildren, patchFlag } = nextVNode;\n const emits = component.emitsOptions;\n // Parent component's render function was hot-updated. Since this may have\n // caused the child component's slots content to have changed, we need to\n // force the child to update as well.\n if ((process.env.NODE_ENV !== 'production') && (prevChildren || nextChildren) && isHmrUpdating) {\n return true;\n }\n // force child update for runtime directive or transition on component vnode.\n if (nextVNode.dirs || nextVNode.transition) {\n return true;\n }\n if (optimized && patchFlag >= 0) {\n if (patchFlag & 1024 /* PatchFlags.DYNAMIC_SLOTS */) {\n // slot content that references values that might have changed,\n // e.g. in a v-for\n return true;\n }\n if (patchFlag & 16 /* PatchFlags.FULL_PROPS */) {\n if (!prevProps) {\n return !!nextProps;\n }\n // presence of this flag indicates props are always non-null\n return hasPropsChanged(prevProps, nextProps, emits);\n }\n else if (patchFlag & 8 /* PatchFlags.PROPS */) {\n const dynamicProps = nextVNode.dynamicProps;\n for (let i = 0; i < dynamicProps.length; i++) {\n const key = dynamicProps[i];\n if (nextProps[key] !== prevProps[key] &&\n !isEmitListener(emits, key)) {\n return true;\n }\n }\n }\n }\n else {\n // this path is only taken by manually written render functions\n // so presence of any children leads to a forced update\n if (prevChildren || nextChildren) {\n if (!nextChildren || !nextChildren.$stable) {\n return true;\n }\n }\n if (prevProps === nextProps) {\n return false;\n }\n if (!prevProps) {\n return !!nextProps;\n }\n if (!nextProps) {\n return true;\n }\n return hasPropsChanged(prevProps, nextProps, emits);\n }\n return false;\n}\nfunction hasPropsChanged(prevProps, nextProps, emitsOptions) {\n const nextKeys = Object.keys(nextProps);\n if (nextKeys.length !== Object.keys(prevProps).length) {\n return true;\n }\n for (let i = 0; i < nextKeys.length; i++) {\n const key = nextKeys[i];\n if (nextProps[key] !== prevProps[key] &&\n !isEmitListener(emitsOptions, key)) {\n return true;\n }\n }\n return false;\n}\nfunction updateHOCHostEl({ vnode, parent }, el // HostNode\n) {\n while (parent && parent.subTree === vnode) {\n (vnode = parent.vnode).el = el;\n parent = parent.parent;\n }\n}\n\nconst isSuspense = (type) => type.__isSuspense;\n// Suspense exposes a component-like API, and is treated like a component\n// in the compiler, but internally it's a special built-in type that hooks\n// directly into the renderer.\nconst SuspenseImpl = {\n name: 'Suspense',\n // In order to make Suspense tree-shakable, we need to avoid importing it\n // directly in the renderer. The renderer checks for the __isSuspense flag\n // on a vnode's type and calls the `process` method, passing in renderer\n // internals.\n __isSuspense: true,\n process(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, \n // platform-specific impl passed from renderer\n rendererInternals) {\n if (n1 == null) {\n mountSuspense(n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, rendererInternals);\n }\n else {\n patchSuspense(n1, n2, container, anchor, parentComponent, isSVG, slotScopeIds, optimized, rendererInternals);\n }\n },\n hydrate: hydrateSuspense,\n create: createSuspenseBoundary,\n normalize: normalizeSuspenseChildren\n};\n// Force-casted public typing for h and TSX props inference\nconst Suspense = (SuspenseImpl\n );\nfunction triggerEvent(vnode, name) {\n const eventListener = vnode.props && vnode.props[name];\n if (isFunction(eventListener)) {\n eventListener();\n }\n}\nfunction mountSuspense(vnode, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, rendererInternals) {\n const { p: patch, o: { createElement } } = rendererInternals;\n const hiddenContainer = createElement('div');\n const suspense = (vnode.suspense = createSuspenseBoundary(vnode, parentSuspense, parentComponent, container, hiddenContainer, anchor, isSVG, slotScopeIds, optimized, rendererInternals));\n // start mounting the content subtree in an off-dom container\n patch(null, (suspense.pendingBranch = vnode.ssContent), hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds);\n // now check if we have encountered any async deps\n if (suspense.deps > 0) {\n // has async\n // invoke @fallback event\n triggerEvent(vnode, 'onPending');\n triggerEvent(vnode, 'onFallback');\n // mount the fallback tree\n patch(null, vnode.ssFallback, container, anchor, parentComponent, null, // fallback tree will not have suspense context\n isSVG, slotScopeIds);\n setActiveBranch(suspense, vnode.ssFallback);\n }\n else {\n // Suspense has no async deps. Just resolve.\n suspense.resolve();\n }\n}\nfunction patchSuspense(n1, n2, container, anchor, parentComponent, isSVG, slotScopeIds, optimized, { p: patch, um: unmount, o: { createElement } }) {\n const suspense = (n2.suspense = n1.suspense);\n suspense.vnode = n2;\n n2.el = n1.el;\n const newBranch = n2.ssContent;\n const newFallback = n2.ssFallback;\n const { activeBranch, pendingBranch, isInFallback, isHydrating } = suspense;\n if (pendingBranch) {\n suspense.pendingBranch = newBranch;\n if (isSameVNodeType(newBranch, pendingBranch)) {\n // same root type but content may have changed.\n patch(pendingBranch, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds, optimized);\n if (suspense.deps <= 0) {\n suspense.resolve();\n }\n else if (isInFallback) {\n patch(activeBranch, newFallback, container, anchor, parentComponent, null, // fallback tree will not have suspense context\n isSVG, slotScopeIds, optimized);\n setActiveBranch(suspense, newFallback);\n }\n }\n else {\n // toggled before pending tree is resolved\n suspense.pendingId++;\n if (isHydrating) {\n // if toggled before hydration is finished, the current DOM tree is\n // no longer valid. set it as the active branch so it will be unmounted\n // when resolved\n suspense.isHydrating = false;\n suspense.activeBranch = pendingBranch;\n }\n else {\n unmount(pendingBranch, parentComponent, suspense);\n }\n // increment pending ID. this is used to invalidate async callbacks\n // reset suspense state\n suspense.deps = 0;\n // discard effects from pending branch\n suspense.effects.length = 0;\n // discard previous container\n suspense.hiddenContainer = createElement('div');\n if (isInFallback) {\n // already in fallback state\n patch(null, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds, optimized);\n if (suspense.deps <= 0) {\n suspense.resolve();\n }\n else {\n patch(activeBranch, newFallback, container, anchor, parentComponent, null, // fallback tree will not have suspense context\n isSVG, slotScopeIds, optimized);\n setActiveBranch(suspense, newFallback);\n }\n }\n else if (activeBranch && isSameVNodeType(newBranch, activeBranch)) {\n // toggled \"back\" to current active branch\n patch(activeBranch, newBranch, container, anchor, parentComponent, suspense, isSVG, slotScopeIds, optimized);\n // force resolve\n suspense.resolve(true);\n }\n else {\n // switched to a 3rd branch\n patch(null, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds, optimized);\n if (suspense.deps <= 0) {\n suspense.resolve();\n }\n }\n }\n }\n else {\n if (activeBranch && isSameVNodeType(newBranch, activeBranch)) {\n // root did not change, just normal patch\n patch(activeBranch, newBranch, container, anchor, parentComponent, suspense, isSVG, slotScopeIds, optimized);\n setActiveBranch(suspense, newBranch);\n }\n else {\n // root node toggled\n // invoke @pending event\n triggerEvent(n2, 'onPending');\n // mount pending branch in off-dom container\n suspense.pendingBranch = newBranch;\n suspense.pendingId++;\n patch(null, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds, optimized);\n if (suspense.deps <= 0) {\n // incoming branch has no async deps, resolve now.\n suspense.resolve();\n }\n else {\n const { timeout, pendingId } = suspense;\n if (timeout > 0) {\n setTimeout(() => {\n if (suspense.pendingId === pendingId) {\n suspense.fallback(newFallback);\n }\n }, timeout);\n }\n else if (timeout === 0) {\n suspense.fallback(newFallback);\n }\n }\n }\n }\n}\nlet hasWarned = false;\nfunction createSuspenseBoundary(vnode, parent, parentComponent, container, hiddenContainer, anchor, isSVG, slotScopeIds, optimized, rendererInternals, isHydrating = false) {\n /* istanbul ignore if */\n if ((process.env.NODE_ENV !== 'production') && !false && !hasWarned) {\n hasWarned = true;\n // @ts-ignore `console.info` cannot be null error\n console[console.info ? 'info' : 'log'](` is an experimental feature and its API will likely change.`);\n }\n const { p: patch, m: move, um: unmount, n: next, o: { parentNode, remove } } = rendererInternals;\n const timeout = toNumber(vnode.props && vnode.props.timeout);\n const suspense = {\n vnode,\n parent,\n parentComponent,\n isSVG,\n container,\n hiddenContainer,\n anchor,\n deps: 0,\n pendingId: 0,\n timeout: typeof timeout === 'number' ? timeout : -1,\n activeBranch: null,\n pendingBranch: null,\n isInFallback: true,\n isHydrating,\n isUnmounted: false,\n effects: [],\n resolve(resume = false) {\n if ((process.env.NODE_ENV !== 'production')) {\n if (!resume && !suspense.pendingBranch) {\n throw new Error(`suspense.resolve() is called without a pending branch.`);\n }\n if (suspense.isUnmounted) {\n throw new Error(`suspense.resolve() is called on an already unmounted suspense boundary.`);\n }\n }\n const { vnode, activeBranch, pendingBranch, pendingId, effects, parentComponent, container } = suspense;\n if (suspense.isHydrating) {\n suspense.isHydrating = false;\n }\n else if (!resume) {\n const delayEnter = activeBranch &&\n pendingBranch.transition &&\n pendingBranch.transition.mode === 'out-in';\n if (delayEnter) {\n activeBranch.transition.afterLeave = () => {\n if (pendingId === suspense.pendingId) {\n move(pendingBranch, container, anchor, 0 /* MoveType.ENTER */);\n }\n };\n }\n // this is initial anchor on mount\n let { anchor } = suspense;\n // unmount current active tree\n if (activeBranch) {\n // if the fallback tree was mounted, it may have been moved\n // as part of a parent suspense. get the latest anchor for insertion\n anchor = next(activeBranch);\n unmount(activeBranch, parentComponent, suspense, true);\n }\n if (!delayEnter) {\n // move content from off-dom container to actual container\n move(pendingBranch, container, anchor, 0 /* MoveType.ENTER */);\n }\n }\n setActiveBranch(suspense, pendingBranch);\n suspense.pendingBranch = null;\n suspense.isInFallback = false;\n // flush buffered effects\n // check if there is a pending parent suspense\n let parent = suspense.parent;\n let hasUnresolvedAncestor = false;\n while (parent) {\n if (parent.pendingBranch) {\n // found a pending parent suspense, merge buffered post jobs\n // into that parent\n parent.effects.push(...effects);\n hasUnresolvedAncestor = true;\n break;\n }\n parent = parent.parent;\n }\n // no pending parent suspense, flush all jobs\n if (!hasUnresolvedAncestor) {\n queuePostFlushCb(effects);\n }\n suspense.effects = [];\n // invoke @resolve event\n triggerEvent(vnode, 'onResolve');\n },\n fallback(fallbackVNode) {\n if (!suspense.pendingBranch) {\n return;\n }\n const { vnode, activeBranch, parentComponent, container, isSVG } = suspense;\n // invoke @fallback event\n triggerEvent(vnode, 'onFallback');\n const anchor = next(activeBranch);\n const mountFallback = () => {\n if (!suspense.isInFallback) {\n return;\n }\n // mount the fallback tree\n patch(null, fallbackVNode, container, anchor, parentComponent, null, // fallback tree will not have suspense context\n isSVG, slotScopeIds, optimized);\n setActiveBranch(suspense, fallbackVNode);\n };\n const delayEnter = fallbackVNode.transition && fallbackVNode.transition.mode === 'out-in';\n if (delayEnter) {\n activeBranch.transition.afterLeave = mountFallback;\n }\n suspense.isInFallback = true;\n // unmount current active branch\n unmount(activeBranch, parentComponent, null, // no suspense so unmount hooks fire now\n true // shouldRemove\n );\n if (!delayEnter) {\n mountFallback();\n }\n },\n move(container, anchor, type) {\n suspense.activeBranch &&\n move(suspense.activeBranch, container, anchor, type);\n suspense.container = container;\n },\n next() {\n return suspense.activeBranch && next(suspense.activeBranch);\n },\n registerDep(instance, setupRenderEffect) {\n const isInPendingSuspense = !!suspense.pendingBranch;\n if (isInPendingSuspense) {\n suspense.deps++;\n }\n const hydratedEl = instance.vnode.el;\n instance\n .asyncDep.catch(err => {\n handleError(err, instance, 0 /* ErrorCodes.SETUP_FUNCTION */);\n })\n .then(asyncSetupResult => {\n // retry when the setup() promise resolves.\n // component may have been unmounted before resolve.\n if (instance.isUnmounted ||\n suspense.isUnmounted ||\n suspense.pendingId !== instance.suspenseId) {\n return;\n }\n // retry from this component\n instance.asyncResolved = true;\n const { vnode } = instance;\n if ((process.env.NODE_ENV !== 'production')) {\n pushWarningContext(vnode);\n }\n handleSetupResult(instance, asyncSetupResult, false);\n if (hydratedEl) {\n // vnode may have been replaced if an update happened before the\n // async dep is resolved.\n vnode.el = hydratedEl;\n }\n const placeholder = !hydratedEl && instance.subTree.el;\n setupRenderEffect(instance, vnode, \n // component may have been moved before resolve.\n // if this is not a hydration, instance.subTree will be the comment\n // placeholder.\n parentNode(hydratedEl || instance.subTree.el), \n // anchor will not be used if this is hydration, so only need to\n // consider the comment placeholder case.\n hydratedEl ? null : next(instance.subTree), suspense, isSVG, optimized);\n if (placeholder) {\n remove(placeholder);\n }\n updateHOCHostEl(instance, vnode.el);\n if ((process.env.NODE_ENV !== 'production')) {\n popWarningContext();\n }\n // only decrease deps count if suspense is not already resolved\n if (isInPendingSuspense && --suspense.deps === 0) {\n suspense.resolve();\n }\n });\n },\n unmount(parentSuspense, doRemove) {\n suspense.isUnmounted = true;\n if (suspense.activeBranch) {\n unmount(suspense.activeBranch, parentComponent, parentSuspense, doRemove);\n }\n if (suspense.pendingBranch) {\n unmount(suspense.pendingBranch, parentComponent, parentSuspense, doRemove);\n }\n }\n };\n return suspense;\n}\nfunction hydrateSuspense(node, vnode, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, rendererInternals, hydrateNode) {\n /* eslint-disable no-restricted-globals */\n const suspense = (vnode.suspense = createSuspenseBoundary(vnode, parentSuspense, parentComponent, node.parentNode, document.createElement('div'), null, isSVG, slotScopeIds, optimized, rendererInternals, true /* hydrating */));\n // there are two possible scenarios for server-rendered suspense:\n // - success: ssr content should be fully resolved\n // - failure: ssr content should be the fallback branch.\n // however, on the client we don't really know if it has failed or not\n // attempt to hydrate the DOM assuming it has succeeded, but we still\n // need to construct a suspense boundary first\n const result = hydrateNode(node, (suspense.pendingBranch = vnode.ssContent), parentComponent, suspense, slotScopeIds, optimized);\n if (suspense.deps === 0) {\n suspense.resolve();\n }\n return result;\n /* eslint-enable no-restricted-globals */\n}\nfunction normalizeSuspenseChildren(vnode) {\n const { shapeFlag, children } = vnode;\n const isSlotChildren = shapeFlag & 32 /* ShapeFlags.SLOTS_CHILDREN */;\n vnode.ssContent = normalizeSuspenseSlot(isSlotChildren ? children.default : children);\n vnode.ssFallback = isSlotChildren\n ? normalizeSuspenseSlot(children.fallback)\n : createVNode(Comment);\n}\nfunction normalizeSuspenseSlot(s) {\n let block;\n if (isFunction(s)) {\n const trackBlock = isBlockTreeEnabled && s._c;\n if (trackBlock) {\n // disableTracking: false\n // allow block tracking for compiled slots\n // (see ./componentRenderContext.ts)\n s._d = false;\n openBlock();\n }\n s = s();\n if (trackBlock) {\n s._d = true;\n block = currentBlock;\n closeBlock();\n }\n }\n if (isArray(s)) {\n const singleChild = filterSingleRoot(s);\n if ((process.env.NODE_ENV !== 'production') && !singleChild) {\n warn(` slots expect a single root node.`);\n }\n s = singleChild;\n }\n s = normalizeVNode(s);\n if (block && !s.dynamicChildren) {\n s.dynamicChildren = block.filter(c => c !== s);\n }\n return s;\n}\nfunction queueEffectWithSuspense(fn, suspense) {\n if (suspense && suspense.pendingBranch) {\n if (isArray(fn)) {\n suspense.effects.push(...fn);\n }\n else {\n suspense.effects.push(fn);\n }\n }\n else {\n queuePostFlushCb(fn);\n }\n}\nfunction setActiveBranch(suspense, branch) {\n suspense.activeBranch = branch;\n const { vnode, parentComponent } = suspense;\n const el = (vnode.el = branch.el);\n // in case suspense is the root node of a component,\n // recursively update the HOC el\n if (parentComponent && parentComponent.subTree === vnode) {\n parentComponent.vnode.el = el;\n updateHOCHostEl(parentComponent, el);\n }\n}\n\nfunction provide(key, value) {\n if (!currentInstance) {\n if ((process.env.NODE_ENV !== 'production')) {\n warn(`provide() can only be used inside setup().`);\n }\n }\n else {\n let provides = currentInstance.provides;\n // by default an instance inherits its parent's provides object\n // but when it needs to provide values of its own, it creates its\n // own provides object using parent provides object as prototype.\n // this way in `inject` we can simply look up injections from direct\n // parent and let the prototype chain do the work.\n const parentProvides = currentInstance.parent && currentInstance.parent.provides;\n if (parentProvides === provides) {\n provides = currentInstance.provides = Object.create(parentProvides);\n }\n // TS doesn't allow symbol as index type\n provides[key] = value;\n }\n}\nfunction inject(key, defaultValue, treatDefaultAsFactory = false) {\n // fallback to `currentRenderingInstance` so that this can be called in\n // a functional component\n const instance = currentInstance || currentRenderingInstance;\n if (instance) {\n // #2400\n // to support `app.use` plugins,\n // fallback to appContext's `provides` if the instance is at root\n const provides = instance.parent == null\n ? instance.vnode.appContext && instance.vnode.appContext.provides\n : instance.parent.provides;\n if (provides && key in provides) {\n // TS doesn't allow symbol as index type\n return provides[key];\n }\n else if (arguments.length > 1) {\n return treatDefaultAsFactory && isFunction(defaultValue)\n ? defaultValue.call(instance.proxy)\n : defaultValue;\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n warn(`injection \"${String(key)}\" not found.`);\n }\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n warn(`inject() can only be used inside setup() or functional components.`);\n }\n}\n\n// Simple effect.\nfunction watchEffect(effect, options) {\n return doWatch(effect, null, options);\n}\nfunction watchPostEffect(effect, options) {\n return doWatch(effect, null, ((process.env.NODE_ENV !== 'production')\n ? Object.assign(Object.assign({}, options), { flush: 'post' }) : { flush: 'post' }));\n}\nfunction watchSyncEffect(effect, options) {\n return doWatch(effect, null, ((process.env.NODE_ENV !== 'production')\n ? Object.assign(Object.assign({}, options), { flush: 'sync' }) : { flush: 'sync' }));\n}\n// initial value for watchers to trigger on undefined initial values\nconst INITIAL_WATCHER_VALUE = {};\n// implementation\nfunction watch(source, cb, options) {\n if ((process.env.NODE_ENV !== 'production') && !isFunction(cb)) {\n warn(`\\`watch(fn, options?)\\` signature has been moved to a separate API. ` +\n `Use \\`watchEffect(fn, options?)\\` instead. \\`watch\\` now only ` +\n `supports \\`watch(source, cb, options?) signature.`);\n }\n return doWatch(source, cb, options);\n}\nfunction doWatch(source, cb, { immediate, deep, flush, onTrack, onTrigger } = EMPTY_OBJ) {\n if ((process.env.NODE_ENV !== 'production') && !cb) {\n if (immediate !== undefined) {\n warn(`watch() \"immediate\" option is only respected when using the ` +\n `watch(source, callback, options?) signature.`);\n }\n if (deep !== undefined) {\n warn(`watch() \"deep\" option is only respected when using the ` +\n `watch(source, callback, options?) signature.`);\n }\n }\n const warnInvalidSource = (s) => {\n warn(`Invalid watch source: `, s, `A watch source can only be a getter/effect function, a ref, ` +\n `a reactive object, or an array of these types.`);\n };\n const instance = currentInstance;\n let getter;\n let forceTrigger = false;\n let isMultiSource = false;\n if (isRef(source)) {\n getter = () => source.value;\n forceTrigger = isShallow$1(source);\n }\n else if (isReactive(source)) {\n getter = () => source;\n deep = true;\n }\n else if (isArray(source)) {\n isMultiSource = true;\n forceTrigger = source.some(s => isReactive(s) || isShallow$1(s));\n getter = () => source.map(s => {\n if (isRef(s)) {\n return s.value;\n }\n else if (isReactive(s)) {\n return traverse(s);\n }\n else if (isFunction(s)) {\n return callWithErrorHandling(s, instance, 2 /* ErrorCodes.WATCH_GETTER */);\n }\n else {\n (process.env.NODE_ENV !== 'production') && warnInvalidSource(s);\n }\n });\n }\n else if (isFunction(source)) {\n if (cb) {\n // getter with cb\n getter = () => callWithErrorHandling(source, instance, 2 /* ErrorCodes.WATCH_GETTER */);\n }\n else {\n // no cb -> simple effect\n getter = () => {\n if (instance && instance.isUnmounted) {\n return;\n }\n if (cleanup) {\n cleanup();\n }\n return callWithAsyncErrorHandling(source, instance, 3 /* ErrorCodes.WATCH_CALLBACK */, [onCleanup]);\n };\n }\n }\n else {\n getter = NOOP;\n (process.env.NODE_ENV !== 'production') && warnInvalidSource(source);\n }\n if (cb && deep) {\n const baseGetter = getter;\n getter = () => traverse(baseGetter());\n }\n let cleanup;\n let onCleanup = (fn) => {\n cleanup = effect.onStop = () => {\n callWithErrorHandling(fn, instance, 4 /* ErrorCodes.WATCH_CLEANUP */);\n };\n };\n // in SSR there is no need to setup an actual effect, and it should be noop\n // unless it's eager\n if (isInSSRComponentSetup) {\n // we will also not call the invalidate callback (+ runner is not set up)\n onCleanup = NOOP;\n if (!cb) {\n getter();\n }\n else if (immediate) {\n callWithAsyncErrorHandling(cb, instance, 3 /* ErrorCodes.WATCH_CALLBACK */, [\n getter(),\n isMultiSource ? [] : undefined,\n onCleanup\n ]);\n }\n return NOOP;\n }\n let oldValue = isMultiSource ? [] : INITIAL_WATCHER_VALUE;\n const job = () => {\n if (!effect.active) {\n return;\n }\n if (cb) {\n // watch(source, cb)\n const newValue = effect.run();\n if (deep ||\n forceTrigger ||\n (isMultiSource\n ? newValue.some((v, i) => hasChanged(v, oldValue[i]))\n : hasChanged(newValue, oldValue)) ||\n (false )) {\n // cleanup before running cb again\n if (cleanup) {\n cleanup();\n }\n callWithAsyncErrorHandling(cb, instance, 3 /* ErrorCodes.WATCH_CALLBACK */, [\n newValue,\n // pass undefined as the old value when it's changed for the first time\n oldValue === INITIAL_WATCHER_VALUE ? undefined : oldValue,\n onCleanup\n ]);\n oldValue = newValue;\n }\n }\n else {\n // watchEffect\n effect.run();\n }\n };\n // important: mark the job as a watcher callback so that scheduler knows\n // it is allowed to self-trigger (#1727)\n job.allowRecurse = !!cb;\n let scheduler;\n if (flush === 'sync') {\n scheduler = job; // the scheduler function gets called directly\n }\n else if (flush === 'post') {\n scheduler = () => queuePostRenderEffect(job, instance && instance.suspense);\n }\n else {\n // default: 'pre'\n job.pre = true;\n if (instance)\n job.id = instance.uid;\n scheduler = () => queueJob(job);\n }\n const effect = new ReactiveEffect(getter, scheduler);\n if ((process.env.NODE_ENV !== 'production')) {\n effect.onTrack = onTrack;\n effect.onTrigger = onTrigger;\n }\n // initial run\n if (cb) {\n if (immediate) {\n job();\n }\n else {\n oldValue = effect.run();\n }\n }\n else if (flush === 'post') {\n queuePostRenderEffect(effect.run.bind(effect), instance && instance.suspense);\n }\n else {\n effect.run();\n }\n return () => {\n effect.stop();\n if (instance && instance.scope) {\n remove(instance.scope.effects, effect);\n }\n };\n}\n// this.$watch\nfunction instanceWatch(source, value, options) {\n const publicThis = this.proxy;\n const getter = isString(source)\n ? source.includes('.')\n ? createPathGetter(publicThis, source)\n : () => publicThis[source]\n : source.bind(publicThis, publicThis);\n let cb;\n if (isFunction(value)) {\n cb = value;\n }\n else {\n cb = value.handler;\n options = value;\n }\n const cur = currentInstance;\n setCurrentInstance(this);\n const res = doWatch(getter, cb.bind(publicThis), options);\n if (cur) {\n setCurrentInstance(cur);\n }\n else {\n unsetCurrentInstance();\n }\n return res;\n}\nfunction createPathGetter(ctx, path) {\n const segments = path.split('.');\n return () => {\n let cur = ctx;\n for (let i = 0; i < segments.length && cur; i++) {\n cur = cur[segments[i]];\n }\n return cur;\n };\n}\nfunction traverse(value, seen) {\n if (!isObject(value) || value[\"__v_skip\" /* ReactiveFlags.SKIP */]) {\n return value;\n }\n seen = seen || new Set();\n if (seen.has(value)) {\n return value;\n }\n seen.add(value);\n if (isRef(value)) {\n traverse(value.value, seen);\n }\n else if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n traverse(value[i], seen);\n }\n }\n else if (isSet(value) || isMap(value)) {\n value.forEach((v) => {\n traverse(v, seen);\n });\n }\n else if (isPlainObject(value)) {\n for (const key in value) {\n traverse(value[key], seen);\n }\n }\n return value;\n}\n\nfunction useTransitionState() {\n const state = {\n isMounted: false,\n isLeaving: false,\n isUnmounting: false,\n leavingVNodes: new Map()\n };\n onMounted(() => {\n state.isMounted = true;\n });\n onBeforeUnmount(() => {\n state.isUnmounting = true;\n });\n return state;\n}\nconst TransitionHookValidator = [Function, Array];\nconst BaseTransitionImpl = {\n name: `BaseTransition`,\n props: {\n mode: String,\n appear: Boolean,\n persisted: Boolean,\n // enter\n onBeforeEnter: TransitionHookValidator,\n onEnter: TransitionHookValidator,\n onAfterEnter: TransitionHookValidator,\n onEnterCancelled: TransitionHookValidator,\n // leave\n onBeforeLeave: TransitionHookValidator,\n onLeave: TransitionHookValidator,\n onAfterLeave: TransitionHookValidator,\n onLeaveCancelled: TransitionHookValidator,\n // appear\n onBeforeAppear: TransitionHookValidator,\n onAppear: TransitionHookValidator,\n onAfterAppear: TransitionHookValidator,\n onAppearCancelled: TransitionHookValidator\n },\n setup(props, { slots }) {\n const instance = getCurrentInstance();\n const state = useTransitionState();\n let prevTransitionKey;\n return () => {\n const children = slots.default && getTransitionRawChildren(slots.default(), true);\n if (!children || !children.length) {\n return;\n }\n let child = children[0];\n if (children.length > 1) {\n let hasFound = false;\n // locate first non-comment child\n for (const c of children) {\n if (c.type !== Comment) {\n if ((process.env.NODE_ENV !== 'production') && hasFound) {\n // warn more than one non-comment child\n warn(' can only be used on a single element or component. ' +\n 'Use for lists.');\n break;\n }\n child = c;\n hasFound = true;\n if (!(process.env.NODE_ENV !== 'production'))\n break;\n }\n }\n }\n // there's no need to track reactivity for these props so use the raw\n // props for a bit better perf\n const rawProps = toRaw(props);\n const { mode } = rawProps;\n // check mode\n if ((process.env.NODE_ENV !== 'production') &&\n mode &&\n mode !== 'in-out' &&\n mode !== 'out-in' &&\n mode !== 'default') {\n warn(`invalid mode: ${mode}`);\n }\n if (state.isLeaving) {\n return emptyPlaceholder(child);\n }\n // in the case of , we need to\n // compare the type of the kept-alive children.\n const innerChild = getKeepAliveChild(child);\n if (!innerChild) {\n return emptyPlaceholder(child);\n }\n const enterHooks = resolveTransitionHooks(innerChild, rawProps, state, instance);\n setTransitionHooks(innerChild, enterHooks);\n const oldChild = instance.subTree;\n const oldInnerChild = oldChild && getKeepAliveChild(oldChild);\n let transitionKeyChanged = false;\n const { getTransitionKey } = innerChild.type;\n if (getTransitionKey) {\n const key = getTransitionKey();\n if (prevTransitionKey === undefined) {\n prevTransitionKey = key;\n }\n else if (key !== prevTransitionKey) {\n prevTransitionKey = key;\n transitionKeyChanged = true;\n }\n }\n // handle mode\n if (oldInnerChild &&\n oldInnerChild.type !== Comment &&\n (!isSameVNodeType(innerChild, oldInnerChild) || transitionKeyChanged)) {\n const leavingHooks = resolveTransitionHooks(oldInnerChild, rawProps, state, instance);\n // update old tree's hooks in case of dynamic transition\n setTransitionHooks(oldInnerChild, leavingHooks);\n // switching between different views\n if (mode === 'out-in') {\n state.isLeaving = true;\n // return placeholder node and queue update when leave finishes\n leavingHooks.afterLeave = () => {\n state.isLeaving = false;\n instance.update();\n };\n return emptyPlaceholder(child);\n }\n else if (mode === 'in-out' && innerChild.type !== Comment) {\n leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => {\n const leavingVNodesCache = getLeavingNodesForType(state, oldInnerChild);\n leavingVNodesCache[String(oldInnerChild.key)] = oldInnerChild;\n // early removal callback\n el._leaveCb = () => {\n earlyRemove();\n el._leaveCb = undefined;\n delete enterHooks.delayedLeave;\n };\n enterHooks.delayedLeave = delayedLeave;\n };\n }\n }\n return child;\n };\n }\n};\n// export the public type for h/tsx inference\n// also to avoid inline import() in generated d.ts files\nconst BaseTransition = BaseTransitionImpl;\nfunction getLeavingNodesForType(state, vnode) {\n const { leavingVNodes } = state;\n let leavingVNodesCache = leavingVNodes.get(vnode.type);\n if (!leavingVNodesCache) {\n leavingVNodesCache = Object.create(null);\n leavingVNodes.set(vnode.type, leavingVNodesCache);\n }\n return leavingVNodesCache;\n}\n// The transition hooks are attached to the vnode as vnode.transition\n// and will be called at appropriate timing in the renderer.\nfunction resolveTransitionHooks(vnode, props, state, instance) {\n const { appear, mode, persisted = false, onBeforeEnter, onEnter, onAfterEnter, onEnterCancelled, onBeforeLeave, onLeave, onAfterLeave, onLeaveCancelled, onBeforeAppear, onAppear, onAfterAppear, onAppearCancelled } = props;\n const key = String(vnode.key);\n const leavingVNodesCache = getLeavingNodesForType(state, vnode);\n const callHook = (hook, args) => {\n hook &&\n callWithAsyncErrorHandling(hook, instance, 9 /* ErrorCodes.TRANSITION_HOOK */, args);\n };\n const callAsyncHook = (hook, args) => {\n const done = args[1];\n callHook(hook, args);\n if (isArray(hook)) {\n if (hook.every(hook => hook.length <= 1))\n done();\n }\n else if (hook.length <= 1) {\n done();\n }\n };\n const hooks = {\n mode,\n persisted,\n beforeEnter(el) {\n let hook = onBeforeEnter;\n if (!state.isMounted) {\n if (appear) {\n hook = onBeforeAppear || onBeforeEnter;\n }\n else {\n return;\n }\n }\n // for same element (v-show)\n if (el._leaveCb) {\n el._leaveCb(true /* cancelled */);\n }\n // for toggled element with same key (v-if)\n const leavingVNode = leavingVNodesCache[key];\n if (leavingVNode &&\n isSameVNodeType(vnode, leavingVNode) &&\n leavingVNode.el._leaveCb) {\n // force early removal (not cancelled)\n leavingVNode.el._leaveCb();\n }\n callHook(hook, [el]);\n },\n enter(el) {\n let hook = onEnter;\n let afterHook = onAfterEnter;\n let cancelHook = onEnterCancelled;\n if (!state.isMounted) {\n if (appear) {\n hook = onAppear || onEnter;\n afterHook = onAfterAppear || onAfterEnter;\n cancelHook = onAppearCancelled || onEnterCancelled;\n }\n else {\n return;\n }\n }\n let called = false;\n const done = (el._enterCb = (cancelled) => {\n if (called)\n return;\n called = true;\n if (cancelled) {\n callHook(cancelHook, [el]);\n }\n else {\n callHook(afterHook, [el]);\n }\n if (hooks.delayedLeave) {\n hooks.delayedLeave();\n }\n el._enterCb = undefined;\n });\n if (hook) {\n callAsyncHook(hook, [el, done]);\n }\n else {\n done();\n }\n },\n leave(el, remove) {\n const key = String(vnode.key);\n if (el._enterCb) {\n el._enterCb(true /* cancelled */);\n }\n if (state.isUnmounting) {\n return remove();\n }\n callHook(onBeforeLeave, [el]);\n let called = false;\n const done = (el._leaveCb = (cancelled) => {\n if (called)\n return;\n called = true;\n remove();\n if (cancelled) {\n callHook(onLeaveCancelled, [el]);\n }\n else {\n callHook(onAfterLeave, [el]);\n }\n el._leaveCb = undefined;\n if (leavingVNodesCache[key] === vnode) {\n delete leavingVNodesCache[key];\n }\n });\n leavingVNodesCache[key] = vnode;\n if (onLeave) {\n callAsyncHook(onLeave, [el, done]);\n }\n else {\n done();\n }\n },\n clone(vnode) {\n return resolveTransitionHooks(vnode, props, state, instance);\n }\n };\n return hooks;\n}\n// the placeholder really only handles one special case: KeepAlive\n// in the case of a KeepAlive in a leave phase we need to return a KeepAlive\n// placeholder with empty content to avoid the KeepAlive instance from being\n// unmounted.\nfunction emptyPlaceholder(vnode) {\n if (isKeepAlive(vnode)) {\n vnode = cloneVNode(vnode);\n vnode.children = null;\n return vnode;\n }\n}\nfunction getKeepAliveChild(vnode) {\n return isKeepAlive(vnode)\n ? vnode.children\n ? vnode.children[0]\n : undefined\n : vnode;\n}\nfunction setTransitionHooks(vnode, hooks) {\n if (vnode.shapeFlag & 6 /* ShapeFlags.COMPONENT */ && vnode.component) {\n setTransitionHooks(vnode.component.subTree, hooks);\n }\n else if (vnode.shapeFlag & 128 /* ShapeFlags.SUSPENSE */) {\n vnode.ssContent.transition = hooks.clone(vnode.ssContent);\n vnode.ssFallback.transition = hooks.clone(vnode.ssFallback);\n }\n else {\n vnode.transition = hooks;\n }\n}\nfunction getTransitionRawChildren(children, keepComment = false, parentKey) {\n let ret = [];\n let keyedFragmentCount = 0;\n for (let i = 0; i < children.length; i++) {\n let child = children[i];\n // #5360 inherit parent key in case of