diff --git a/CHANGELOG.md b/CHANGELOG.md index d76f0d48d..977937f0d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,62 @@ # Change log +## Version 0.8.9 (2024/09/21) + +This release introduces a new field: the workout description. +This field is longer than the "Notes" field and will have the same visibility as the workout in a next version (see [#125](https://github.com/SamR1/FitTrackee/issues/125)). The "Notes" field will remain private. + +### Features and enhancements + +* [#610](https://github.com/SamR1/FitTrackee/issues/610) - Add a description field to workout + +### Bugs Fixed + +* [#621](https://github.com/SamR1/FitTrackee/issues/621) - email username may contain special characters +* [#622](https://github.com/SamR1/FitTrackee/issues/622) - Fix email sending by adding 'Message-ID' + +### Translations + +* [PR#616](https://github.com/SamR1/FitTrackee/pull/616) - Translations update (Dutch) +* [PR#617](https://github.com/SamR1/FitTrackee/pull/617) - Translations update (Italian) +* [PR#618](https://github.com/SamR1/FitTrackee/pull/618) - Translations update (Polish) +* [PR#620](https://github.com/SamR1/FitTrackee/pull/620) - Translations update (Polish) +* [PR#624](https://github.com/SamR1/FitTrackee/pull/624) - Translations update (Spanish) +* [PR#625](https://github.com/SamR1/FitTrackee/pull/625) - Translations update (Galician and Basque) +* [PR#626](https://github.com/SamR1/FitTrackee/pull/626) - Translations update (German) +* [PR#631](https://github.com/SamR1/FitTrackee/pull/631) - Translations update (Basque) + +Translation status: +- Basque: 100% +- Bulgarian: 99% +- Czech: 72% +- Dutch: 99% +- English: 100% +- French: 100% +- Galician: 100% +- German: 100% +- Italian: 82% +- Norwegian Bokmål: 52% +- Polish: 99% +- Portuguese: 97% +- Spanish: 100% + +### Misc + +* [PR#628](https://github.com/SamR1/FitTrackee/pull/628) - Replace markdown library + + +Thanks to the contributors: +- @boosterl +- @byakurau +- @dotlambda +- @erral +- @gallegonovato +- @qwerty287 +- @xmgz + +**Note:** This release contains database migration (see upgrade instructions in [documentation](https://samr1.github.io/FitTrackee/en/installation.html#upgrade)) + + ## Version 0.8.8 (2024/09/01) **FitTrackee** is now available in Bulgarian. diff --git a/README.md b/README.md index 19227ed0c..cbebc63fd 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ [![Flask Version](https://img.shields.io/badge/flask-3.0-brightgreen.svg)](http://flask.pocoo.org/) [![code formatter: ruff](https://img.shields.io/badge/code%20formatter-ruff-d7ff64)](https://docs.astral.sh/ruff/) [![type check: mypy](https://img.shields.io/badge/type%20check-mypy-blue)](http://mypy-lang.org/) -[![Vue Version](https://img.shields.io/badge/vue-3.4-brightgreen.svg)](https://v3.vuejs.org/) +[![Vue Version](https://img.shields.io/badge/vue-3.5-brightgreen.svg)](https://v3.vuejs.org/) [![code formatter: prettier](https://img.shields.io/badge/code%20formatter-prettier-ff69b4.svg)](https://github.com/prettier/prettier) [![Typescript Version](https://img.shields.io/npm/types/typescript)](https://www.typescriptlang.org/) [![pipeline status](https://github.com/SamR1/FitTrackee/actions/workflows/.tests-python.yml/badge.svg)](https://github.com/SamR1/FitTrackee/actions/workflows/.tests-python.yml) diff --git a/VERSION b/VERSION index 6201b5f77..55485e179 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.8.8 +0.8.9 diff --git a/docs/en/.buildinfo b/docs/en/.buildinfo index 853c475fd..88fe90e9b 100644 --- a/docs/en/.buildinfo +++ b/docs/en/.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: 66af52f1b6476857e98bdfa849aa3a8e +config: 9beb0f230a347042c935b664f4db524a tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/docs/en/_images/fittrackee_screenshot-01.png b/docs/en/_images/fittrackee_screenshot-01.png index 7131adb2c..cf2f32987 100644 Binary files a/docs/en/_images/fittrackee_screenshot-01.png and b/docs/en/_images/fittrackee_screenshot-01.png differ diff --git a/docs/en/_images/fittrackee_screenshot-02.png b/docs/en/_images/fittrackee_screenshot-02.png index cfbd2d2af..3aab4812d 100644 Binary files a/docs/en/_images/fittrackee_screenshot-02.png and b/docs/en/_images/fittrackee_screenshot-02.png differ diff --git a/docs/en/_images/fittrackee_screenshot-03.png b/docs/en/_images/fittrackee_screenshot-03.png index 6ca6fd76d..046d13aa2 100644 Binary files a/docs/en/_images/fittrackee_screenshot-03.png and b/docs/en/_images/fittrackee_screenshot-03.png differ diff --git a/docs/en/_images/fittrackee_screenshot-04.png b/docs/en/_images/fittrackee_screenshot-04.png index 83940e2a0..f1c160c69 100644 Binary files a/docs/en/_images/fittrackee_screenshot-04.png and b/docs/en/_images/fittrackee_screenshot-04.png differ diff --git a/docs/en/_images/fittrackee_screenshot-05.png b/docs/en/_images/fittrackee_screenshot-05.png index 595497416..6e8f252f9 100644 Binary files a/docs/en/_images/fittrackee_screenshot-05.png and b/docs/en/_images/fittrackee_screenshot-05.png differ diff --git a/docs/en/_images/fittrackee_screenshot-06.png b/docs/en/_images/fittrackee_screenshot-06.png index b0acf75ba..ba1e81f23 100644 Binary files a/docs/en/_images/fittrackee_screenshot-06.png and b/docs/en/_images/fittrackee_screenshot-06.png differ diff --git a/docs/en/_images/fittrackee_screenshot-07.png b/docs/en/_images/fittrackee_screenshot-07.png index a8e2057a1..6bb7d1d74 100644 Binary files a/docs/en/_images/fittrackee_screenshot-07.png and b/docs/en/_images/fittrackee_screenshot-07.png differ diff --git a/docs/en/_images/fittrackee_screenshot-08.png b/docs/en/_images/fittrackee_screenshot-08.png index 85c8a73d2..cd0f6aa2e 100644 Binary files a/docs/en/_images/fittrackee_screenshot-08.png and b/docs/en/_images/fittrackee_screenshot-08.png differ diff --git a/docs/en/_images/fittrackee_screenshot-09.png b/docs/en/_images/fittrackee_screenshot-09.png index c2fabfebf..fbe0c925c 100644 Binary files a/docs/en/_images/fittrackee_screenshot-09.png and b/docs/en/_images/fittrackee_screenshot-09.png differ diff --git a/docs/en/_images/fittrackee_screenshot-10.png b/docs/en/_images/fittrackee_screenshot-10.png index 52b4707d2..4f5beddf3 100644 Binary files a/docs/en/_images/fittrackee_screenshot-10.png and b/docs/en/_images/fittrackee_screenshot-10.png differ diff --git a/docs/en/_images/fittrackee_screenshot-11.png b/docs/en/_images/fittrackee_screenshot-11.png index 175dfb450..ba1ec4a0b 100644 Binary files a/docs/en/_images/fittrackee_screenshot-11.png and b/docs/en/_images/fittrackee_screenshot-11.png differ diff --git a/docs/en/_sources/changelog.md.txt b/docs/en/_sources/changelog.md.txt index d76f0d48d..977937f0d 100644 --- a/docs/en/_sources/changelog.md.txt +++ b/docs/en/_sources/changelog.md.txt @@ -1,5 +1,62 @@ # Change log +## Version 0.8.9 (2024/09/21) + +This release introduces a new field: the workout description. +This field is longer than the "Notes" field and will have the same visibility as the workout in a next version (see [#125](https://github.com/SamR1/FitTrackee/issues/125)). The "Notes" field will remain private. + +### Features and enhancements + +* [#610](https://github.com/SamR1/FitTrackee/issues/610) - Add a description field to workout + +### Bugs Fixed + +* [#621](https://github.com/SamR1/FitTrackee/issues/621) - email username may contain special characters +* [#622](https://github.com/SamR1/FitTrackee/issues/622) - Fix email sending by adding 'Message-ID' + +### Translations + +* [PR#616](https://github.com/SamR1/FitTrackee/pull/616) - Translations update (Dutch) +* [PR#617](https://github.com/SamR1/FitTrackee/pull/617) - Translations update (Italian) +* [PR#618](https://github.com/SamR1/FitTrackee/pull/618) - Translations update (Polish) +* [PR#620](https://github.com/SamR1/FitTrackee/pull/620) - Translations update (Polish) +* [PR#624](https://github.com/SamR1/FitTrackee/pull/624) - Translations update (Spanish) +* [PR#625](https://github.com/SamR1/FitTrackee/pull/625) - Translations update (Galician and Basque) +* [PR#626](https://github.com/SamR1/FitTrackee/pull/626) - Translations update (German) +* [PR#631](https://github.com/SamR1/FitTrackee/pull/631) - Translations update (Basque) + +Translation status: +- Basque: 100% +- Bulgarian: 99% +- Czech: 72% +- Dutch: 99% +- English: 100% +- French: 100% +- Galician: 100% +- German: 100% +- Italian: 82% +- Norwegian Bokmål: 52% +- Polish: 99% +- Portuguese: 97% +- Spanish: 100% + +### Misc + +* [PR#628](https://github.com/SamR1/FitTrackee/pull/628) - Replace markdown library + + +Thanks to the contributors: +- @boosterl +- @byakurau +- @dotlambda +- @erral +- @gallegonovato +- @qwerty287 +- @xmgz + +**Note:** This release contains database migration (see upgrade instructions in [documentation](https://samr1.github.io/FitTrackee/en/installation.html#upgrade)) + + ## Version 0.8.8 (2024/09/01) **FitTrackee** is now available in Bulgarian. diff --git a/docs/en/_sources/features.rst.txt b/docs/en/_sources/features.rst.txt index 5b1ccda2d..d10dcb581 100644 --- a/docs/en/_sources/features.rst.txt +++ b/docs/en/_sources/features.rst.txt @@ -71,7 +71,12 @@ Workouts - An `equipment `__ can be associated with a workout (*new in 0.8.0*). For now, only one equipment can be associated. - Segments can be displayed. - Workout gpx file can be downloaded (*new in 0.5.1*) -- Workout edition and deletion. User can add a note. +- Workout edition and deletion. User can add a description (*new in 0.8.9*) and a note. + +.. note:: + | This "Description" field is longer than the "Notes" field and will have the same visibility as the workout in a next version (see `#125 `__). The "Notes" field will remain private. + + - User statistics, by time period (week, month, year) and sport: - totals: - total distance @@ -116,6 +121,7 @@ Workouts - sports (only sports with workouts are displayed in sport dropdown) - equipment (only equipments with workouts are displayed in equipment dropdown) (*new in 0.8.0*) - title (*new in 0.7.15*) + - description (*new in 0.8.9*) - notes (*new in 0.8.0*) - distance - duration diff --git a/docs/en/_sources/installation.rst.txt b/docs/en/_sources/installation.rst.txt index 8a8849e6e..e430038ec 100644 --- a/docs/en/_sources/installation.rst.txt +++ b/docs/en/_sources/installation.rst.txt @@ -529,13 +529,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.8.8): +- Download the last release (for now, it is the release v0.8.9): .. code:: bash - $ wget https://github.com/SamR1/FitTrackee/archive/v0.8.8.tar.gz - $ tar -xzf v0.8.8.tar.gz - $ mv FitTrackee-0.8.8 FitTrackee + $ wget https://github.com/SamR1/FitTrackee/archive/v0.8.9.tar.gz + $ tar -xzf v0.8.9.tar.gz + $ mv FitTrackee-0.8.9 FitTrackee $ cd FitTrackee - Create **.env** from example and update it @@ -666,13 +666,13 @@ Prod environment - Change to the directory where FitTrackee directory is located -- Download the last release (for now, it is the release v0.8.8) and overwrite existing files: +- Download the last release (for now, it is the release v0.8.9) and overwrite existing files: .. code:: bash - $ wget https://github.com/SamR1/FitTrackee/archive/v0.8.8.tar.gz - $ tar -xzf v0.8.8.tar.gz - $ cp -R FitTrackee-0.8.8/* FitTrackee/ + $ wget https://github.com/SamR1/FitTrackee/archive/v0.8.9.tar.gz + $ tar -xzf v0.8.9.tar.gz + $ cp -R FitTrackee-0.8.9/* FitTrackee/ $ cd FitTrackee - Update **.env** if needed (see `Environment variables `__). @@ -915,3 +915,9 @@ Yunohost ~~~~~~~~ Thanks to contributors, a package is available, see https://github.com/YunoHost-Apps/fittrackee_ynh. + + +NixOS +~~~~~ + +Thanks to contributors, a package is available on NixOS, see https://mynixos.com/nixpkgs/package/fit-trackee. diff --git a/docs/en/_static/documentation_options.js b/docs/en/_static/documentation_options.js index 0dc212cc2..8f8e0594e 100644 --- a/docs/en/_static/documentation_options.js +++ b/docs/en/_static/documentation_options.js @@ -1,6 +1,6 @@ var DOCUMENTATION_OPTIONS = { URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'), - VERSION: '0.8.8', + VERSION: '0.8.9', LANGUAGE: 'en', COLLAPSE_INDEX: false, BUILDER: 'html', diff --git a/docs/en/api/auth.html b/docs/en/api/auth.html index eb2803e45..8ca52547a 100644 --- a/docs/en/api/auth.html +++ b/docs/en/api/auth.html @@ -6,7 +6,7 @@ - Authentication and account - FitTrackee 0.8.8 documentation + Authentication and account - FitTrackee 0.8.9 documentation @@ -169,7 +169,7 @@
-
@@ -197,7 +197,7 @@
- FitTrackee 0.8.8 + FitTrackee 0.8.9 documentation
diff --git a/docs/en/api/configuration.html b/docs/en/api/configuration.html index 594d5f1ce..2e282b8f4 100644 --- a/docs/en/api/configuration.html +++ b/docs/en/api/configuration.html @@ -6,7 +6,7 @@ - Configuration - FitTrackee 0.8.8 documentation + Configuration - FitTrackee 0.8.9 documentation @@ -169,7 +169,7 @@ diff --git a/docs/en/api/equipment_types.html b/docs/en/api/equipment_types.html index 8d199973b..32525204c 100644 --- a/docs/en/api/equipment_types.html +++ b/docs/en/api/equipment_types.html @@ -6,7 +6,7 @@ - Equipment Types - FitTrackee 0.8.8 documentation + Equipment Types - FitTrackee 0.8.9 documentation @@ -169,7 +169,7 @@
-
@@ -197,7 +197,7 @@
- FitTrackee 0.8.8 + FitTrackee 0.8.9 documentation @@ -626,7 +626,7 @@

Equipment Types +

diff --git a/docs/en/api/equipments.html b/docs/en/api/equipments.html index 580314a23..73d92d1f9 100644 --- a/docs/en/api/equipments.html +++ b/docs/en/api/equipments.html @@ -6,7 +6,7 @@ - Equipments - FitTrackee 0.8.8 documentation + Equipments - FitTrackee 0.8.9 documentation @@ -169,7 +169,7 @@
-
@@ -197,7 +197,7 @@
- FitTrackee 0.8.8 + FitTrackee 0.8.9 documentation @@ -846,7 +846,7 @@

Equipments +

diff --git a/docs/en/api/index.html b/docs/en/api/index.html index 7a79088c8..5be5df31d 100644 --- a/docs/en/api/index.html +++ b/docs/en/api/index.html @@ -6,7 +6,7 @@ - API documentation - FitTrackee 0.8.8 documentation + API documentation - FitTrackee 0.8.9 documentation @@ -169,7 +169,7 @@
-
@@ -197,7 +197,7 @@
- FitTrackee 0.8.8 + FitTrackee 0.8.9 documentation @@ -353,7 +353,7 @@

API documentation +

diff --git a/docs/en/api/oauth2.html b/docs/en/api/oauth2.html index 4979d835e..9beb0b051 100644 --- a/docs/en/api/oauth2.html +++ b/docs/en/api/oauth2.html @@ -6,7 +6,7 @@ - OAuth2 - FitTrackee 0.8.8 documentation + OAuth2 - FitTrackee 0.8.9 documentation @@ -169,7 +169,7 @@
-
@@ -197,7 +197,7 @@
- FitTrackee 0.8.8 + FitTrackee 0.8.9 documentation @@ -876,7 +876,7 @@

OAuth2

- + diff --git a/docs/en/api/records.html b/docs/en/api/records.html index 80aef6db6..482c1b794 100644 --- a/docs/en/api/records.html +++ b/docs/en/api/records.html @@ -6,7 +6,7 @@ - Records - FitTrackee 0.8.8 documentation + Records - FitTrackee 0.8.9 documentation @@ -169,7 +169,7 @@
-
@@ -197,7 +197,7 @@
- FitTrackee 0.8.8 + FitTrackee 0.8.9 documentation @@ -453,7 +453,7 @@

Records +

diff --git a/docs/en/api/sports.html b/docs/en/api/sports.html index c4f91198f..eefdfd950 100644 --- a/docs/en/api/sports.html +++ b/docs/en/api/sports.html @@ -6,7 +6,7 @@ - Sports - FitTrackee 0.8.8 documentation + Sports - FitTrackee 0.8.9 documentation @@ -169,7 +169,7 @@
-
@@ -197,7 +197,7 @@
- FitTrackee 0.8.8 + FitTrackee 0.8.9 documentation @@ -664,7 +664,7 @@

Sports

- + diff --git a/docs/en/api/stats.html b/docs/en/api/stats.html index 602e31a7d..4c20eb026 100644 --- a/docs/en/api/stats.html +++ b/docs/en/api/stats.html @@ -6,7 +6,7 @@ - Statistics - FitTrackee 0.8.8 documentation + Statistics - FitTrackee 0.8.9 documentation @@ -169,7 +169,7 @@
-
@@ -197,7 +197,7 @@
- FitTrackee 0.8.8 + FitTrackee 0.8.9 documentation @@ -704,7 +704,7 @@

Statistics +

diff --git a/docs/en/api/users.html b/docs/en/api/users.html index 3c5b1f67a..002966899 100644 --- a/docs/en/api/users.html +++ b/docs/en/api/users.html @@ -6,7 +6,7 @@ - Users - FitTrackee 0.8.8 documentation + Users - FitTrackee 0.8.9 documentation @@ -169,7 +169,7 @@
-
@@ -197,7 +197,7 @@
- FitTrackee 0.8.8 + FitTrackee 0.8.9 documentation @@ -848,7 +848,7 @@

Users

- + diff --git a/docs/en/api/workouts.html b/docs/en/api/workouts.html index 8c74d9f6d..ec0a1a542 100644 --- a/docs/en/api/workouts.html +++ b/docs/en/api/workouts.html @@ -6,7 +6,7 @@ - Workouts - FitTrackee 0.8.8 documentation + Workouts - FitTrackee 0.8.9 documentation @@ -169,7 +169,7 @@
-
@@ -197,7 +197,7 @@
- FitTrackee 0.8.8 + FitTrackee 0.8.9 documentation @@ -317,6 +317,7 @@

Workouts "bounds": [], "creation_date": "Sun, 14 Jul 2019 13:51:01 GMT", "descent": null, + "description": null, "distance": 10.0, "duration": "0:17:04", "equipments": [], @@ -434,6 +435,8 @@

WorkoutsRequest Headers: @@ -481,6 +484,7 @@

Workouts "bounds": [], "creation_date": "Sun, 14 Jul 2019 18:57:14 GMT", "descent": null, + "description": null, "distance": 12, "duration": "0:45:00", "equipments": [], @@ -926,6 +930,7 @@

Workouts "bounds": [], "creation_date": "Sun, 14 Jul 2019 13:51:01 GMT", "descent": null, + "description": null, "distance": 10.0, "duration": "0:17:04", "equipments": [], @@ -997,15 +1002,18 @@

WorkoutsForm Parameters:
  • file – gpx file (allowed extensions: .gpx, .zip)

  • -
  • data

    sport id, equipment id and notes (example: -{"sport_id": 1, "notes": "", "equipment_ids": []}). -Double quotes in notes must be escaped.

    +
  • data

    sport id, equipment id, description and notes, for example: +{“sport_id”: 1, “notes”: “”, “description”: “”, “equipment_ids”: []}. +Double quotes in notes and description must be escaped.

    +

    The maximum length of notes is 500 characters and that of the +description is 10000 characters. +Otherwise, they will be truncated.

    For equipment_ids, the id of the equipment to associate with this workout. Note: for now only one equipment can be associated. If not provided and default equipment exists for sport, default equipment will be associated.

    -

    Notes and equipment ids are not mandatory.

    +

    Notes, description and equipment ids are not mandatory.

@@ -1065,6 +1073,7 @@

Workouts "bounds": [], "creation_date": "Sun, 14 Jul 2019 13:51:01 GMT", "descent": null, + "description": null, "distance": 10.0, "duration": "0:17:04", "equipments": [], @@ -1139,15 +1148,19 @@

Workouts%Y-%m-%d %H:%M)

@@ -1204,6 +1217,7 @@

Workouts "bounds": [], "creation_date": "Sun, 14 Jul 2019 13:51:01 GMT", "descent": null, + "description": null, "distance": 10.0, "duration": "0:17:04", "equipments": [], @@ -1283,13 +1297,17 @@

Workouts +

diff --git a/docs/en/changelog.html b/docs/en/changelog.html index e4f974cb9..452353434 100644 --- a/docs/en/changelog.html +++ b/docs/en/changelog.html @@ -6,7 +6,7 @@ - Change log - FitTrackee 0.8.8 documentation + Change log - FitTrackee 0.8.9 documentation @@ -169,7 +169,7 @@
-
@@ -197,7 +197,7 @@
- FitTrackee 0.8.8 + FitTrackee 0.8.9 documentation @@ -283,18 +283,81 @@

Change log

-
-

Version 0.8.8 (2024/09/01)

-

FitTrackee is now available in Bulgarian.

+
+

Version 0.8.9 (2024/09/21)

+

This release introduces a new field: the workout description.
This field is longer than the “Notes” field and will have the same visibility as the workout in a next version (see #125). The “Notes” field will remain private.

+
+

Features and enhancements

+
    +
  • #610 - Add a description field to workout

  • +
+

Bugs Fixed

    -
  • #614 - Labels are not translated on workouts average chart

  • +
  • #621 - email username may contain special characters

  • +
  • #622 - Fix email sending by adding ‘Message-ID’

Translations

    +
  • PR#616 - Translations update (Dutch)

  • +
  • PR#617 - Translations update (Italian)

  • +
  • PR#618 - Translations update (Polish)

  • +
  • PR#620 - Translations update (Polish)

  • +
  • PR#624 - Translations update (Spanish)

  • +
  • PR#625 - Translations update (Galician and Basque)

  • +
  • PR#626 - Translations update (German)

  • +
  • PR#631 - Translations update (Basque)

  • +
+

Translation status:

+
    +
  • Basque: 100%

  • +
  • Bulgarian: 99%

  • +
  • Czech: 72%

  • +
  • Dutch: 99%

  • +
  • English: 100%

  • +
  • French: 100%

  • +
  • Galician: 100%

  • +
  • German: 100%

  • +
  • Italian: 82%

  • +
  • Norwegian Bokmål: 52%

  • +
  • Polish: 99%

  • +
  • Portuguese: 97%

  • +
  • Spanish: 100%

  • +
+
+
+

Misc

+
    +
  • PR#628 - Replace markdown library

  • +
+

Thanks to the contributors:

+
    +
  • @boosterl

  • +
  • @byakurau

  • +
  • @dotlambda

  • +
  • @erral

  • +
  • @gallegonovato

  • +
  • @qwerty287

  • +
  • @xmgz

  • +
+

Note: This release contains database migration (see upgrade instructions in documentation)

+
+
+
+

Version 0.8.8 (2024/09/01)

+

FitTrackee is now available in Bulgarian.

+
+

Bugs Fixed

+
    +
  • #614 - Labels are not translated on workouts average chart

  • +
+
+
+

Translations

+
diff --git a/docs/en/cli.html b/docs/en/cli.html index b1c06fc28..31228063f 100644 --- a/docs/en/cli.html +++ b/docs/en/cli.html @@ -6,7 +6,7 @@ - Command line interface - FitTrackee 0.8.8 documentation + Command line interface - FitTrackee 0.8.9 documentation @@ -169,7 +169,7 @@
-
@@ -197,7 +197,7 @@
- FitTrackee 0.8.8 + FitTrackee 0.8.9 documentation @@ -594,7 +594,7 @@

ftcli

- + diff --git a/docs/en/features.html b/docs/en/features.html index b336f26eb..998ab7eb3 100644 --- a/docs/en/features.html +++ b/docs/en/features.html @@ -6,7 +6,7 @@ - Features - FitTrackee 0.8.8 documentation + Features - FitTrackee 0.8.9 documentation @@ -169,7 +169,7 @@
-
@@ -197,7 +197,7 @@
- FitTrackee 0.8.8 + FitTrackee 0.8.9 documentation @@ -385,9 +385,17 @@

Workoutsequipment can be associated with a workout (new in 0.8.0). For now, only one equipment can be associated.

  • Segments can be displayed.

  • Workout gpx file can be downloaded (new in 0.5.1)

  • -
  • Workout edition and deletion. User can add a note.

  • +
  • Workout edition and deletion. User can add a description (new in 0.8.9) and a note.

  • + +
    +

    Note

    +
    +
    This “Description” field is longer than the “Notes” field and will have the same visibility as the workout in a next version (see #125). The “Notes” field will remain private.
    +
    +
    +

    diff --git a/docs/en/genindex.html b/docs/en/genindex.html index 196f103fb..5d736172a 100644 --- a/docs/en/genindex.html +++ b/docs/en/genindex.html @@ -4,7 +4,7 @@ - Index - FitTrackee 0.8.8 documentation + Index - FitTrackee 0.8.9 documentation @@ -167,7 +167,7 @@
    -
    @@ -195,7 +195,7 @@
    - FitTrackee 0.8.8 + FitTrackee 0.8.9 documentation @@ -373,7 +373,7 @@

    E

    - + diff --git a/docs/en/http-routingtable.html b/docs/en/http-routingtable.html index 94fad93cc..d5e31c63d 100644 --- a/docs/en/http-routingtable.html +++ b/docs/en/http-routingtable.html @@ -4,7 +4,7 @@ - HTTP Routing Table - FitTrackee 0.8.8 documentation + HTTP Routing Table - FitTrackee 0.8.9 documentation @@ -167,7 +167,7 @@
    -
    @@ -195,7 +195,7 @@
    - FitTrackee 0.8.8 + FitTrackee 0.8.9 documentation @@ -718,7 +718,7 @@

    HTTP Routing Table

    - + diff --git a/docs/en/index.html b/docs/en/index.html index cedf98ade..8343e79a1 100644 --- a/docs/en/index.html +++ b/docs/en/index.html @@ -6,7 +6,7 @@ - FitTrackee 0.8.8 documentation + FitTrackee 0.8.9 documentation @@ -169,7 +169,7 @@
    -
    @@ -197,7 +197,7 @@
    - FitTrackee 0.8.8 + FitTrackee 0.8.9 documentation @@ -365,7 +365,7 @@

    Table of contents +

    diff --git a/docs/en/installation.html b/docs/en/installation.html index 9eb0fe773..fe5933803 100644 --- a/docs/en/installation.html +++ b/docs/en/installation.html @@ -6,7 +6,7 @@ - Installation - FitTrackee 0.8.8 documentation + Installation - FitTrackee 0.8.9 documentation @@ -169,7 +169,7 @@
    -
    @@ -197,7 +197,7 @@
    - FitTrackee 0.8.8 + FitTrackee 0.8.9 documentation @@ -974,11 +974,11 @@

    Production environment

      -
    • Download the last release (for now, it is the release v0.8.8):

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

    -
    $ wget https://github.com/SamR1/FitTrackee/archive/v0.8.8.tar.gz
    -$ tar -xzf v0.8.8.tar.gz
    -$ mv FitTrackee-0.8.8 FitTrackee
    +
    $ wget https://github.com/SamR1/FitTrackee/archive/v0.8.9.tar.gz
    +$ tar -xzf v0.8.9.tar.gz
    +$ mv FitTrackee-0.8.9 FitTrackee
     $ cd FitTrackee
     
    @@ -1114,11 +1114,11 @@

    Prod environment
  • Stop the application

  • Change to the directory where FitTrackee directory is located

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

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

  • -
    -
    @@ -197,7 +197,7 @@
    - FitTrackee 0.8.8 + FitTrackee 0.8.9 documentation @@ -468,7 +468,7 @@

    Resources +

    diff --git a/docs/en/objects.inv b/docs/en/objects.inv index 830322b68..4f65ec49b 100644 Binary files a/docs/en/objects.inv and b/docs/en/objects.inv differ diff --git a/docs/en/search.html b/docs/en/search.html index 37933d4f0..b1e93c382 100644 --- a/docs/en/search.html +++ b/docs/en/search.html @@ -7,7 +7,7 @@ -Search - FitTrackee 0.8.8 +<title>Search - FitTrackee 0.8.9 documentation @@ -170,7 +170,7 @@

    -
    @@ -198,7 +198,7 @@
    - FitTrackee 0.8.8 + FitTrackee 0.8.9 documentation @@ -323,7 +323,7 @@
    -
    + diff --git a/docs/en/searchindex.js b/docs/en/searchindex.js index 86dbd9869..dea16220a 100644 --- a/docs/en/searchindex.js +++ b/docs/en/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["api/auth", "api/configuration", "api/equipment_types", "api/equipments", "api/index", "api/oauth2", "api/records", "api/sports", "api/stats", "api/users", "api/workouts", "changelog", "cli", "features", "index", "installation", "oauth", "third_party_tools", "troubleshooting/administrator", "troubleshooting/index"], "filenames": ["api/auth.rst", "api/configuration.rst", "api/equipment_types.rst", "api/equipments.rst", "api/index.rst", "api/oauth2.rst", "api/records.rst", "api/sports.rst", "api/stats.rst", "api/users.rst", "api/workouts.rst", "changelog.md", "cli.rst", "features.rst", "index.rst", "installation.rst", "oauth.rst", "third_party_tools.rst", "troubleshooting/administrator.rst", "troubleshooting/index.rst"], "titles": ["Authentication and account", "Configuration", "Equipment Types", "Equipments", "API documentation", "OAuth2", "Records", "Sports", "Statistics", "Users", "Workouts", "Change log", "Command line interface", "Features", "FitTrackee", "Installation", "OAuth 2.0", "Third-party tools", "Administrator", "Troubleshooting"], "terms": {"post": [0, 3, 5, 10, 16], "api": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 13, 14, 16], "auth": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 15, 16], "regist": [0, 1, 11, 13, 15], "user": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 15, 16], "send": [0, 9, 11, 13, 15], "confirm": [0, 5, 11, 13, 15], "email": [0, 1, 9, 11, 12, 13, 18], "The": [0, 3, 11, 13, 15, 16, 18], "newli": [0, 12, 15], "creat": [0, 3, 5, 10, 11, 13, 15, 16], "i": [0, 1, 3, 5, 10, 11, 12, 13, 14, 15, 16, 19], "inact": [0, 3, 9, 10, 13, 15], "must": [0, 1, 2, 3, 5, 7, 9, 10, 11, 13, 15, 16, 18], "hi": [0, 3, 9, 11, 13], "activ": [0, 2, 3, 7, 9, 11, 12, 13, 14, 15], "exampl": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 14, 15, 16], "request": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 12, 13, 15, 16], "http": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 15, 16], "1": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 12, 13, 15], "content": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11], "type": [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 15], "applic": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 14, 15, 16], "json": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 13], "respons": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11], "success": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10], "200": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 15], "statu": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 13], "error": [0, 1, 2, 3, 5, 7, 9, 10, 11, 13, 15, 18], "registr": [0, 1, 11, 12, 13, 15, 16], "400": [0, 1, 2, 3, 5, 7, 8, 9, 10, 11], "bad": [0, 1, 2, 3, 5, 7, 8, 9, 10], "messag": [0, 1, 5, 10, 11, 12, 13, 15], "valid": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 15, 18], "provid": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15, 16, 18], "n": 0, "object": [0, 1, 2, 3, 7, 9, 10], "usernam": [0, 8, 9, 11, 12, 15], "string": [0, 1, 3, 5, 7, 8, 9, 10, 15, 16], "3": [0, 2, 7, 8, 9, 10, 13, 15], "30": [0, 8], "charact": [0, 3, 11, 15], "requir": [0, 3, 11, 15, 16], "password": [0, 9, 11, 12, 13, 15], "8": [0, 1, 10, 12, 13, 15, 16], "lang": [0, 11, 12], "languag": [0, 9, 11, 12, 13], "prefer": [0, 9, 11, 12], "invalid": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 15], "fallback": 0, "en": [0, 9, 12], "english": [0, 11, 12, 13], "accepted_polici": 0, "boolean": [0, 1, 2, 3, 5, 7, 9, 12], "true": [0, 1, 2, 3, 5, 7, 9, 11, 15], "accept": 0, "privaci": [0, 1, 11, 13], "polici": [0, 1, 11, 13], "code": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 16], "ok": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10], "payload": [0, 1, 2, 5, 7, 9, 10], "sorri": 0, "alreadi": [0, 3, 11, 12], "taken": [0, 13], "you": [0, 1, 2, 3, 7, 8, 9, 10, 11, 13, 14, 15], "agre": [0, 11, 13], "onli": [0, 3, 5, 8, 9, 10, 11, 12, 13, 15, 16], "alphanumer": [0, 11], "underscor": 0, "_": [0, 11], "allow": [0, 1, 3, 10, 11, 12, 13, 14, 15, 16], "403": [0, 1, 2, 3, 7, 8, 9, 10], "forbidden": [0, 1, 2, 3, 7, 8, 9, 10], "disabl": [0, 11, 12, 13, 15], "500": [0, 1, 2, 3, 7, 9, 10, 11], "intern": [0, 1, 2, 3, 7, 9, 10], "server": [0, 1, 2, 3, 7, 9, 10, 11, 13, 14], "pleas": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11], "try": [0, 2, 3, 7, 9, 10], "again": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10], "contact": [0, 1, 2, 3, 7, 9, 10, 13], "administr": [0, 1, 2, 3, 7, 9, 10, 16, 19], "after": [0, 5, 11, 13, 15, 16], "auth_token": 0, "web": [0, 14, 15, 16], "token": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 16], "resend": 0, "instruct": [0, 11, 13, 15], "If": [0, 3, 5, 8, 10, 12, 13, 15, 16], "thi": [0, 3, 5, 10, 11, 12, 13, 14, 15], "endpoint": [0, 1, 5, 11, 15, 16], "avail": [0, 6, 12, 13, 15, 16, 17], "resent": 0, "404": [0, 2, 3, 5, 7, 8, 9, 10, 11], "Not": [0, 2, 3, 5, 7, 8, 9, 10], "found": [0, 2, 3, 5, 7, 8, 9, 10, 11], "url": [0, 5, 11, 15, 16, 18], "wa": [0, 3, 11, 13, 15], "login": [0, 11], "an": [0, 1, 2, 3, 5, 7, 9, 10, 11, 13, 15, 16, 18], "can": [0, 3, 8, 9, 10, 11, 12, 13, 14, 15, 16, 18], "log": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 13, 14, 15, 18], "successfulli": 0, "401": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11], "unauthor": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10], "credenti": [0, 15], "get": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 16], "profil": [0, 5, 11, 16], "info": [0, 11, 13], "scope": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10], "read": [0, 2, 3, 5, 6, 7, 8, 9, 10, 11, 16], "data": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 13, 14, 16], "accepted_privacy_polici": 0, "admin": [0, 1, 2, 6, 7, 8, 9, 10, 11, 12, 13, 15], "fals": [0, 1, 2, 5, 7, 9, 10, 15], "bio": [0, 9], "null": [0, 1, 3, 7, 9, 10, 11], "birth_dat": [0, 9], "created_at": [0, 9], "sun": [0, 6, 9, 10], "14": [0, 5, 9, 10], "jul": [0, 6, 9, 10], "2019": [0, 6, 8, 9, 10], "09": [0, 9], "58": [0, 9, 11], "gmt": [0, 3, 5, 6, 9, 10], "date_format": 0, "dd": 0, "mm": 0, "yyyi": 0, "display_asc": 0, "sam": [0, 6, 9, 10], "com": [0, 1, 5, 9, 11, 15, 16], "email_to_confirm": 0, "first_nam": [0, 9], "imperial_unit": [0, 9], "is_act": [0, 2, 3, 7, 9], "last_nam": [0, 9], "locat": [0, 9, 15], "nb_sport": [0, 9], "nb_workout": [0, 9], "6": [0, 2, 3, 7, 9, 10, 12, 13, 15], "pictur": [0, 9, 10, 11], "record": [0, 4, 9, 10, 11, 13], "id": [0, 2, 3, 5, 6, 7, 8, 9, 10, 16], "9": [0, 6, 9, 13, 15], "record_typ": [0, 6, 9, 10], "AS": [0, 6, 9, 10], "sport_id": [0, 3, 6, 7, 8, 9, 10], "valu": [0, 3, 5, 6, 9, 10, 11, 13, 15, 16, 18], "18": [0, 6, 9, 10, 13, 15], "workout_d": [0, 6, 9, 10], "07": [0, 6, 9, 10], "08": [0, 3, 6, 9, 10], "00": [0, 3, 6, 9, 10], "workout_id": [0, 6, 9, 10], "hvybqybra7wwxpastwr4v2": [0, 6, 9, 10], "10": [0, 1, 3, 6, 9, 10, 13, 15], "fd": [0, 6, 9, 10], "13": [0, 6, 9, 10, 12, 13, 15], "ha": [0, 3, 6, 7, 9, 10, 11, 13, 14], "43": [0, 6, 9, 10, 11], "97": [0, 6, 9, 10, 11], "11": [0, 6, 9, 13, 15], "ld": [0, 6, 9, 10], "01": [0, 6, 8, 9, 10], "12": [0, 6, 9, 10, 15, 17], "m": [0, 6, 8, 9, 10], "sports_list": [0, 9], "4": [0, 2, 7, 8, 9, 10, 12, 13, 15], "start_elevation_at_zero": 0, "timezon": [0, 9, 10, 11, 13], "europ": [0, 9], "pari": [0, 9], "total_asc": [0, 8], "720": 0, "35": [0, 11], "total_dist": [0, 3, 8, 9], "67": [0, 8, 9], "895": [0, 9], "total_dur": [0, 3, 8, 9], "50": [0, 3, 8, 9, 11, 15], "27": [0, 5, 9, 13], "use_dark_mod": 0, "use_raw_gpx_spe": 0, "weekm": [0, 8, 9], "header": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 16], "author": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 15, 16], "oauth": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 14, 15], "2": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 13, 14, 15], "0": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15], "bearer": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10], "signatur": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10], "expir": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 12], "edit": [0, 11, 13], "write": [0, 1, 2, 3, 5, 7, 9, 10, 16], "updat": [0, 1, 2, 3, 7, 9, 10, 11, 13, 15], "first": [0, 3, 5, 13, 16], "name": [0, 5, 9, 11, 15], "last": [0, 11, 15], "biographi": 0, "birth": [0, 11], "date": [0, 8, 10, 11, 13], "format": [0, 8, 10, 11, 13], "y": [0, 8, 10, 15], "d": [0, 8, 10], "support": [0, 5, 11, 12, 13, 15, 16, 18], "default": [0, 3, 5, 8, 9, 10, 11, 13, 15], "date_str": 0, "correspond": [0, 15], "client": [0, 5, 11, 13, 15, 16], "mmm": 0, "do": [0, 1, 2, 3, 7, 8, 9, 10, 15], "local": [0, 11, 14, 15], "e": 0, "fr": [0, 9, 15], "gl": 0, "nl": 0, "de": [0, 2, 15], "nb": 0, "us": [0, 3, 5, 9, 10, 11, 12, 13, 14, 15, 16], "displai": [0, 10, 11, 12, 13, 14, 15, 16, 19], "app": [0, 5, 11, 14, 15, 16], "highest": [0, 6, 13], "ascent": [0, 6, 10, 11, 13], "total": [0, 3, 5, 8, 11, 13], "distanc": [0, 6, 10, 11, 13], "imperi": [0, 11, 13], "unit": [0, 11, 15], "elev": [0, 10, 11, 13, 15], "plot": 0, "start": [0, 8, 10, 11, 13, 15, 19], "zero": [0, 11, 13], "time": [0, 8, 10, 11, 13], "zone": 0, "interfac": [0, 11, 13, 14, 15], "dark": [0, 11, 13], "mode": [0, 11], "browser": [0, 11, 13], "unfilt": 0, "gpx": [0, 5, 10, 11, 13, 14, 15, 17], "calcul": [0, 8, 11, 13], "speed": [0, 6, 10, 11, 13, 15], "doe": [0, 3, 8, 9, 10, 11], "week": [0, 8, 11, 13], "mondai": [0, 8, 13], "don": 0, "t": [0, 11, 18], "match": [0, 10, 11, 13], "sport": [0, 1, 3, 4, 8, 10, 11, 15], "color": [0, 7, 11, 13], "000000": 0, "default_equipment_id": 0, "stopped_speed_threshold": [0, 7], "user_id": [0, 3], "int": [0, 2, 3, 5, 7, 10], "which": [0, 13], "ar": [0, 3, 5, 6, 8, 10, 11, 13, 14, 15, 16, 17, 19], "modifi": [0, 9, 11, 12, 15], "hexadecim": 0, "when": [0, 1, 11, 12, 13, 15], "ad": [0, 3, 10, 11, 12, 13], "workout": [0, 1, 3, 4, 5, 6, 7, 8, 11, 14, 16, 17, 19], "float": [0, 10], "stop": [0, 11, 13, 15], "threshold": [0, 11, 13], "gpxpy": [0, 11, 13, 15], "arrai": [0, 3, 5, 10], "equip": [0, 4, 10, 11, 16], "note": [0, 10, 11, 13, 15], "now": [0, 8, 10, 11, 13, 15], "one": [0, 3, 9, 10, 13], "associ": [0, 3, 5, 10, 11, 13], "equipment_id": [0, 10], "exist": [0, 3, 8, 9, 10, 11, 13, 14, 15], "delet": [0, 3, 5, 9, 10, 11, 12, 13], "reset": [0, 9, 11, 12, 13, 15], "given": [0, 5, 8, 13], "204": [0, 3, 5, 9, 10], "paramet": [0, 2, 3, 5, 7, 8, 9, 10, 11, 13, 15, 16], "No": [0, 3, 5, 9, 10, 11, 14], "multipart": [0, 5, 10], "form": [0, 5, 10, 11], "file": [0, 1, 10, 11, 12, 13, 14, 15, 17, 19], "imag": [0, 9, 10, 11, 13, 15, 19], "extens": [0, 10, 15], "jpg": 0, "png": [0, 10, 15], "gif": 0, "part": [0, 10], "select": [0, 10, 13], "413": [0, 10], "entiti": [0, 10], "too": [0, 10], "larg": [0, 10, 13, 15], "dure": [0, 3, 10], "size": [0, 1, 10, 11, 13, 15], "exce": [0, 3, 10, 11], "0mb": [0, 10], "NO": [0, 3, 5, 9, 10], "handl": [0, 11, 13, 15, 18], "process": [0, 11, 12, 15], "patch": [0, 1, 2, 3, 7, 9, 10], "It": [0, 9, 11, 13, 14, 16], "enabl": [0, 1, 9, 13, 15], "chang": [0, 3, 12, 13, 14, 15], "current": [0, 3, 9, 11], "address": [0, 13, 15], "inform": [0, 1, 11, 13, 14, 15], "anoth": [0, 3, 9, 13, 15], "new": [0, 3, 9, 12, 13, 15, 16], "new_password": 0, "miss": [0, 11], "logout": [0, 11], "blacklist": [0, 12], "out": 0, "access": [0, 5, 8, 11, 15, 16], "revok": [0, 5], "malform": 0, "other": [0, 3, 9, 15], "reason": 0, "export": [0, 11, 12, 13, 14, 15], "return": [0, 5, 6, 8, 9, 10, 11, 15], "creation": [0, 11, 13], "in_progress": 0, "byte": 0, "wed": 0, "mar": [0, 3], "2023": [0, 3, 15], "31": [0, 10, 13, 15], "17": [0, 10], "file_nam": 0, "archive_rgjsr3fht295ywnqr5yp": 0, "zip": [0, 1, 10, 11, 13], "file_s": 0, "924": 0, "ongo": 0, "complet": [0, 11], "download": [0, 10, 11, 13, 15, 19], "archiv": [0, 1, 11, 12, 13, 15], "archive_rgjsr3fhr5yp": 0, "x": [0, 10, 11, 15, 16], "gzip": 0, "filenam": 0, "config": [1, 11, 15, 18], "about": [1, 11, 13, 15, 16], "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, 15], "copi": [1, 15], "href": [1, 15], "www": [1, 15], "openstreetmap": [1, 11, 15], "org": [1, 15], "copyright": [1, 15], "contributor": [1, 11, 15, 17], "privacy_polici": 1, "privacy_policy_d": 1, "stats_workouts_limit": 1, "10000": 1, "version": [1, 12, 13, 15], "weather_provid": 1, "authent": [1, 2, 4, 5, 6, 7, 8, 9, 10, 16], "instanc": [1, 5, 11, 13, 15, 16], "integ": [1, 2, 3, 5, 7, 8, 9, 10], "max": [1, 9, 10, 11, 12], "number": [1, 9, 10, 11, 12, 13, 15], "singl": [1, 9, 11, 13, 15], "statist": [1, 4], "greater": [1, 11], "than": [1, 3, 9, 11, 12], "equal": 1, "upload": [1, 11, 12, 13, 15, 17, 19], "have": [1, 2, 3, 7, 8, 9, 10, 11], "permiss": [1, 2, 3, 7, 8, 9, 10], "ping": 1, "health": 1, "check": [1, 7, 11, 15, 18], "pong": 1, "all": [2, 3, 5, 6, 7, 8, 9, 10, 11, 13, 15], "non": [2, 7, 14], "equipment_typ": [2, 3], "label": [2, 3, 7, 11, 13], "shoe": [2, 3, 13], "bike": [2, 3, 7, 10, 11, 13], "trainer": [2, 13], "kayak_boat": 2, "5": [2, 5, 7, 8, 9, 10, 12, 13, 15], "ski": [2, 13], "snowsho": [2, 11, 13], "has_equip": 2, "equipment_type_id": [2, 3], "NOT": [2, 3, 5, 7, 10], "owner": [3, 11, 13, 15], "see": [3, 11, 13, 14, 15, 16, 18], "some": [3, 9, 10, 11, 13, 14, 15, 16], "queri": [3, 5, 7, 8, 9, 10], "creation_d": [3, 10], "tue": 3, "21": 3, "06": [3, 5, 8], "default_for_sport_id": 3, "descript": [3, 5, 12, 13, 15], "fittracke": [3, 5, 12, 13, 15, 16, 17, 19], "2ukrviyshoakg8qsuknus4": 3, "my": 3, "total_mov": 3, "workouts_count": [3, 9], "29": 3, "second": [3, 10], "equipment_short_id": 3, "item": 3, "piec": [3, 13], "short": [3, 10], "201": [3, 10, 11], "from": [3, 5, 8, 10, 11, 13, 14, 16, 17], "brief": 3, "less": [3, 11], "perhap": 3, "longer": [3, 11, 15, 18], "limit": [3, 11, 13], "option": [3, 5, 11, 12, 15, 16], "whether": 3, "mandatori": [3, 5, 8, 10, 11, 12, 15, 16], "same": [3, 11, 13], "sport_label": 3, "equipment_type_label": 3, "save": [3, 11, 13], "": [3, 9, 10, 11, 13, 15], "remov": [3, 9, 10, 11, 12, 13], "qrj7by6h2iyjsv8sersfgv": 3, "28": 3, "suppli": 3, "refresh": [3, 5, 11], "case": [3, 10, 13, 15], "incorrect": [3, 11, 13], "A": [3, 9, 11, 12, 13, 15, 18], "own": [3, 9, 13, 14], "unless": 3, "forc": 3, "ani": [3, 10, 15], "between": [3, 11, 13], "those": 3, "set": [3, 11, 12, 13, 15, 16, 18], "argument": [3, 12], "cannot": [3, 11, 13], "without": [3, 5, 8, 9, 10, 11, 13, 14], "account": [4, 9, 11, 12, 15, 17], "configur": [4, 11, 13, 15, 16], "oauth2": [4, 16], "pagin": [5, 9, 10], "page": [5, 9, 10, 11, 13], "parti": [5, 13, 14, 16], "client_descript": 5, "client_id": [5, 16], "o22a27s2abpuoxjbxv3ujdox": 5, "issued_at": 5, "thu": 5, "juli": 5, "2022": 5, "53": [5, 11], "import": [5, 11, 13, 15], "redirect_uri": 5, "callback": [5, 16], "websit": 5, "has_next": 5, "has_prev": 5, "client_secret": 5, "secret": [5, 15, 16], "client_nam": 5, "client_uri": 5, "list": [5, 11, 14, 15], "redirect": [5, 11, 16], "client_client_id": 5, "by_id": 5, "issu": [5, 13, 14, 15], "response_typ": [5, 16], "state": [5, 16], "uniqu": [5, 16], "prevent": [5, 15, 16], "cross": [5, 13, 15, 16], "site": [5, 16], "forgeri": [5, 16], "recommend": [5, 15, 16], "code_challeng": [5, 16], "gener": [5, 11, 12, 13, 15, 16], "verifi": [5, 16], "pkce": [5, 16], "code_challenge_method": [5, 16], "method": [5, 15, 16], "challeng": [5, 16], "s256": [5, 16], "authlib": [5, 15, 16], "librari": [5, 11, 15, 16], "access_token": 5, "roehv64thcg28wcewzhrnvlusoduvw8nvnhkcml57": 5, "expires_in": 5, "864000": 5, "refresh_token": 5, "nuv9cy8vqonrqkhtz5pqaq2zw7msh0mornpjr14amswd6f6i": 5, "token_typ": 5, "expires_at": 5, "1658660147": 5, "0667062": 5, "grant_typ": 5, "grant": [5, 16], "authorization_cod": [5, 16], "code_verifi": 5, "follow": [6, 13, 15, 16, 17, 18], "averag": [6, 8, 10, 11, 13], "farthest": [6, 11, 13], "longest": [6, 11, 13], "durat": [6, 10, 11, 13], "maximum": [6, 11, 12, 13], "is_active_for_us": 7, "cycl": [7, 11, 13], "transport": [7, 11, 13], "hike": [7, 11, 13], "mountain": [7, 11, 13], "run": [7, 11, 12, 13, 15, 16], "walk": [7, 11, 13], "check_workout": 7, "has_workout": 7, "stat": [8, 11], "user_nam": [8, 9], "by_tim": 8, "For": [8, 10, 13, 15, 16], "2018": [8, 10], "2017": [8, 10], "total_workout": 8, "203": 8, "156": [8, 11], "15": [8, 10, 12, 13, 15], "282": [8, 11], "12341": 8, "150": 8, "178": [8, 11], "47": [8, 10, 11], "9960": 8, "46": [8, 11], "78": 8, "613": 8, "1267": 8, "average_asc": 8, "101": [8, 11], "average_dist": 8, "average_dur": 8, "7641": 8, "average_spe": 8, "48": 8, "average_desc": 8, "59": [8, 11], "33": [8, 11], "3320": 8, "16": [8, 10, 13], "99": [8, 11], "95": [8, 11], "end": [8, 10], "frame": 8, "sundai": [8, 10, 13], "month": [8, 11, 13], "year": [8, 13], "period": [8, 13, 15], "by_sport": 8, "uploads_dir_s": 8, "1000": 8, "regardless": 9, "right": [9, 11, 12, 13, 15, 16], "order_bi": [9, 10], "par_pag": 9, "is_admin": 9, "sat": 9, "20": [9, 13], "03": [9, 10], "per_pag": [9, 10], "per": [9, 10, 11, 15], "q": 9, "order": [9, 10, 11, 13, 16], "sort": [9, 10, 13], "asc": [9, 10], "desc": [9, 10], "criteria": [9, 10], "detail": [9, 11, 15, 19], "jpeg": 9, "add": [9, 11, 12, 13, 14], "new_email": 9, "reset_password": 9, "differ": [9, 11, 13], "except": [9, 13, 15, 18], "he": 9, "john_do": 9, "your": [9, 13, 14, 15], "02": 10, "least": 10, "ave_spe": 10, "bound": 10, "51": 10, "descent": [10, 11, 13], "04": 10, "kjxavsturjvoah2wvcegef": 10, "map": [10, 11, 13, 14, 19], "max_alt": 10, "max_spe": 10, "min_alt": 10, "modification_d": 10, "move": [10, 11], "next_workout": 10, "paus": [10, 11], "previous_workout": 10, "mon": 10, "jan": 10, "segment": [10, 11, 13], "titl": [10, 11, 13], "weather_end": 10, "weather_start": 10, "with_gpx": 10, "100": [10, 11, 13], "insensit": [10, 15], "distance_from": 10, "minim": [10, 16], "distance_to": 10, "maxim": 10, "duration_from": 10, "h": [10, 13], "duration_to": 10, "ave_speed_from": 10, "ave_speed_to": 10, "max_speed_from": 10, "max_speed_to": 10, "none": 10, "workout_short_id": 10, "57": [10, 11], "45": 10, "22": 10, "morn": 10, "leaflet": [10, 15], "chart_data": 10, "chart": [10, 11, 13, 15], "j": [10, 11, 15], "279": [10, 11], "latitud": 10, "5078118": 10, "longitud": 10, "1232004": 10, "63": 10, "fri": 10, "44": [10, 11], "7": [10, 12, 13, 15, 16], "7380": 10, "280": [10, 11], "5079733": 10, "1234538": 10, "39": 10, "segment_id": 10, "map_id": 10, "fa33f4d996844a5c73ecd1ae24456ab8": 10, "1563529507772": 10, "map_til": 10, "z": [10, 15], "tile": [10, 11, 13], "c": [10, 15], "4109": 10, "2930": 10, "subdomain": [10, 11, 15], "zoom": 10, "index": 10, "along": 10, "axi": [10, 11, 13], "xml": 10, "doubl": 10, "quot": 10, "escap": 10, "no_gpx": 10, "uuid": [10, 11], "km": [10, 13], "replac": [10, 11, 15], "empti": [10, 11, 12, 15], "bulgarian": [11, 13], "614": 11, "pr": 11, "607": 11, "german": [11, 13, 15], "608": 11, "609": 11, "galician": [11, 13], "spanish": [11, 13], "612": 11, "czech": [11, 13], "basqu": [11, 13], "73": 11, "dutch": [11, 13], "italian": [11, 13], "82": 11, "norwegian": [11, 13], "bokm\u00e5l": [11, 13], "52": 11, "polish": [11, 13], "91": 11, "portugues": [11, 13], "98": 11, "thank": [11, 15, 17], "gallegonovato": 11, "jmlich": 11, "mara21": 11, "qwerty287": 11, "xmgz": 11, "604": 11, "swimrun": [11, 13], "598": 11, "cli": [11, 12, 13, 15], "cleanup": 11, "600": 11, "603": 11, "72": 11, "erral": 11, "contain": [11, 13, 15], "databas": [11, 13, 15, 18], "migrat": [11, 12, 15], "upgrad": 11, "590": 11, "591": 11, "592": 11, "593": 11, "fb10602": 11, "92": 11, "595": 11, "ci": [11, 15], "up": [11, 13, 14], "test": [11, 15], "confusedalex": 11, "lukasitali": 11, "simontb": 11, "slothj": 11, "566": 11, "section": 11, "575": 11, "587": [11, 15], "588": 11, "click": 11, "checkbox": 11, "564": 11, "565": 11, "571": 11, "582": 11, "583": 11, "simplifi": [11, 16], "docker": 11, "deploy": 11, "byakurau": 11, "jderuit": 11, "pluja": 11, "f2aec30": 11, "strength": 11, "estim": 11, "563": 11, "init": 11, "550": 11, "typo": 11, "par": [11, 15], "instead": [11, 13], "551": 11, "555": 11, "558": 11, "74": 11, "88": 11, "556": 11, "refacto": 11, "557": 11, "prepar": 11, "sqlalchemi": [11, 15, 18], "voodoopt": 11, "546": 11, "545": 11, "urtzai": 11, "540": 11, "542": 11, "544": 11, "543": 11, "tool": [11, 13, 14, 15], "black": 11, "flake8": 11, "isort": 11, "ruff": 11, "ondrejzivni": 11, "527": 11, "531": 11, "navig": 11, "mobil": [11, 14], "532": 11, "footer": 11, "536": 11, "526": 11, "533": 11, "534": 11, "537": 11, "538": 11, "528": 11, "readm": 11, "rework": 11, "530": 11, "specifi": 11, "agplv3": 11, "licens": [11, 14, 15], "comradekingu": 11, "let": 11, "filter": [11, 13], "259": 11, "512": 11, "abil": 11, "508": 11, "3b6fa25": 11, "tabl": 11, "small": 11, "resolut": 11, "51758b4": 11, "hide": [11, 13], "507": 11, "510": 11, "511": 11, "521": 11, "524": 11, "89": 11, "75": 11, "502": 11, "deprec": 11, "command": [11, 13, 14, 15], "506": 11, "jat255": 11, "504": 11, "fail": [11, 19], "496": 11, "499": 11, "84": 11, "60": 11, "bjornclauw": 11, "mariuz": 11, "495": 11, "menu": 11, "490": 11, "eu": 11, "494": 11, "instal": [11, 14], "python": [11, 15, 16], "b748459": 11, "alert": 11, "481": 11, "keyboard": 11, "dropdown": [11, 13], "3821e37": 11, "make": [11, 15], "calendar": [11, 13], "arrow": [11, 13], "488": 11, "489": 11, "482": 11, "484": 11, "aff4d68": 11, "action": 11, "8aa4cff": 11, "loader": 11, "theme": [11, 13], "478": 11, "clickabl": 11, "dashboard": 11, "479": 11, "ui": 11, "476": 11, "477": 11, "475": 11, "build": [11, 15], "poetri": [11, 15], "core": 11, "traxi": 11, "koen": 11, "474": 11, "link": [11, 15], "6e215aa": 11, "background": 11, "modal": 11, "473": 11, "113": 11, "464": 11, "471": 11, "trekk": [11, 13], "469": 11, "ou": 11, "472": 11, "468": 11, "456": 11, "drop": 11, "postgresql": [11, 15, 18], "85": 11, "61": 11, "davidhenrythoreau": 11, "224": 11, "result": 11, "444": 11, "In": [11, 13], "addit": [11, 13, 15], "depend": [11, 13], "449": 11, "vue": [11, 15], "450": 11, "441": 11, "433": 11, "encod": [11, 15], "427": 11, "431": 11, "428": 11, "2bcff2e": 11, "flask": [11, 15], "436": 11, "438": 11, "workflow": 11, "421": 11, "darkski": [11, 15], "weather": [11, 13], "env": [11, 15], "426": 11, "astridx": 11, "422": 11, "e2": 11, "packag": [11, 15], "411": 11, "variou": 11, "416": 11, "410": 11, "415": 11, "417": 11, "418": 11, "mariusz": 11, "407": 11, "409": 11, "open": [11, 13, 14, 15], "water": [11, 13], "swim": [11, 13], "398": 11, "402": 11, "399": 11, "406": 11, "56": 11, "380": 11, "390": 11, "391": 11, "paraglid": [11, 13], "384": 11, "inconsist": 11, "gp": [11, 13], "393": 11, "pil": 11, "modul": [11, 15], "attribut": [11, 15], "antialia": 11, "394": 11, "397": 11, "386": 11, "contribut": 11, "md": 11, "388": 11, "395": 11, "cc3fe1c": 11, "42": 11, "dkm": 11, "partial": 11, "yet": [11, 14], "weblat": [11, 13], "minimum": [11, 13], "351": 11, "370": 11, "371": 11, "375": 11, "thovi98": 11, "376": 11, "1375986": 11, "furo": 11, "377": 11, "354": 11, "374": 11, "virtualenv": [11, 15], "87": 11, "36": 11, "366": 11, "369": 11, "host": [11, 15], "367": 11, "358": 11, "359": 11, "overlap": 11, "350": 11, "352": 11, "356": 11, "357": 11, "365": 11, "gnu": 11, "ewm": 11, "among": 11, "below": [11, 15], "sinc": [11, 15, 16], "servic": [11, 15], "shut": [11, 15], "down": [11, 15], "march": [11, 15], "319": 11, "329": 11, "sticki": 11, "333": 11, "338": 11, "relev": 11, "328": 11, "altitud": [11, 13], "track": [11, 14], "b29ed7a": 11, "250": 11, "320": 11, "323": 11, "06ba975": 11, "bcc568e": 11, "ea0ac99": 11, "a458f5f": 11, "075aeb9": 11, "60e164d": 11, "318": 11, "lavoi": 11, "mondstern": 11, "314": 11, "315": 11, "custom": [11, 13, 15], "defin": [11, 13], "review": [11, 13], "lastli": 11, "mai": [11, 13, 14, 15], "301": [11, 15], "304": 11, "305": 11, "307": 11, "posit": [11, 13], "297": 11, "308": 11, "310": 11, "290": 11, "294": 11, "postgresql10": 11, "265": 11, "implement": [11, 16], "altern": 11, "visualcross": 11, "environ": [11, 12, 18], "variabl": [11, 18], "weather_api_provid": [11, 15], "287": 11, "289": 11, "dperruso": 11, "c88a515": 11, "f96dcef": 11, "278": 11, "270": 11, "nederland": 11, "258": 11, "pars": [11, 15], "area": 11, "271": 11, "273": 11, "274": 11, "parallel": 11, "275": 11, "worker": [11, 12, 15, 18], "entri": [11, 15], "point": [11, 15], "fittrackee_work": [11, 15], "dramatiq": [11, 12, 15], "3c8d9c2": 11, "trail": [11, 13], "comma": [11, 15], "dev": 11, "264": 11, "white": 11, "grai": 11, "266": 11, "260": 11, "261": 11, "should": [11, 13, 15], "still": [11, 13, 14, 15], "need": [11, 13, 15, 16], "b1536fc": 11, "257": 11, "bodi": [11, 15, 16], "nginx": [11, 13, 15, 16, 18], "112": 11, "244": 11, "virtual": [11, 13], "ride": 11, "246": 11, "247": 11, "microsecond": 11, "252": 11, "242": 11, "241": 11, "239": 11, "cb9d02f": 11, "231": 11, "236": 11, "rate": 11, "232": 11, "hidden": [11, 13], "237": 11, "212": 11, "230": 11, "problem": 11, "225": 11, "grammar": 11, "skylan0916": 11, "execut": 11, "lower": 11, "v0": [11, 15], "postgr": [11, 18], "213": 11, "measur": 11, "ft": 11, "mi": 11, "223": 11, "icon": [11, 15], "167": 11, "162": 11, "fmstrat": 11, "210": 11, "could": 11, "staticmap_subdomain": [11, 15], "209": 11, "multipl": 11, "gorgobacka": 11, "And": 11, "detect": 11, "208": 11, "card": 11, "html": 11, "197": 11, "196": 11, "manag": [11, 12, 15], "190": 11, "were": 11, "193": 11, "192": 11, "191": 11, "layout": 11, "includ": 11, "195": 11, "affect": [11, 13], "previous": 11, "cc4287e": 11, "offset": 11, "befor": [11, 13, 15], "introduc": 11, "possibl": [11, 13, 14, 15], "smtp": [11, 15], "reduc": 11, "pre": 11, "requisit": 11, "To": [11, 15, 16], "180": 11, "tl": [11, 15], "177": 11, "screen": [11, 13], "175": 11, "173": 11, "171": 11, "correctli": 11, "sent": [11, 13, 15, 16], "155": 11, "106": 11, "169": 11, "161": 11, "160": 11, "sever": [11, 13, 14, 15], "danielsiersleben": 11, "report": 11, "initi": [11, 15], "149": 11, "initialis": 11, "152": 11, "autoescap": 11, "jinja": 11, "templat": 11, "151": 11, "sanit": 11, "input": 11, "serv": [11, 15], "warn": [11, 13], "launch": 11, "w": 11, "script": 11, "entrypoint": 11, "avoid": [11, 13], "product": 11, "dotenv": 11, "146": 11, "145": 11, "model": 11, "140": 11, "fullscreen": 11, "control": [11, 13, 15], "138": 11, "135": 11, "finish": 11, "marker": 11, "134": 11, "wind": [11, 13], "direct": [11, 13], "877fa0f": 11, "131": 11, "129": 11, "127": [11, 15], "legitim": 11, "uri": 11, "localhost": [11, 15], "123": 11, "121": 11, "116": 11, "better": [11, 16], "button": 11, "graph": 11, "115": 11, "min": 11, "90": 11, "seem": 11, "104": 11, "switch": 11, "full": [11, 13], "develop": [11, 12, 14], "109": 11, "slow": 11, "movement": 11, "93": 11, "paf38": 11, "83": 11, "static": [11, 13, 15], "keep": [11, 14, 15], "default_staticmap": [11, 15], "81": 11, "remain": [11, 13], "textarea": 11, "dai": [11, 12, 13, 15], "80": [11, 15], "79": 11, "rebuild": 11, "javascript": [11, 15], "due": 11, "engin": [11, 15, 18], "database_url": [11, 15, 18], "exceed": 11, "71": 11, "70": 11, "66": 11, "64": 11, "shown": [11, 16, 19], "62": 11, "refactor": 11, "evalu": [11, 15], "purpos": [11, 15], "standard": [11, 15], "term": [11, 15], "directori": [11, 13, 15], "also": [11, 12, 13, 14, 15], "major": 11, "becom": 11, "more": [11, 12, 13, 14, 15], "easi": 11, "been": [11, 14], "renam": 11, "layer": [11, 15], "thunderforest": [11, 15], "outdoor": [11, 13, 14, 15], "54": 11, "redi": [11, 12, 15], "side": 11, "4c3fc34": 11, "34614d5": 11, "spinner": 11, "load": [11, 18], "b862a77": 11, "2e1ee2c": 11, "interceptor": 11, "rout": [11, 15], "definit": 11, "weekend": 11, "40": 11, "i18n": 11, "41": 11, "show": [11, 12, 15], "mous": 11, "over": 11, "choos": [11, 13], "37": 11, "34": 11, "anymor": 11, "pipenv": 11, "tooltip": [11, 13], "even": [11, 13], "enter": [11, 13], "kei": [11, 13, 15], "search": 11, "view": [11, 13, 15], "usag": [12, 15], "arg": [12, 15], "help": [12, 15], "exit": [12, 15], "appli": 12, "relat": [12, 13, 15, 16], "random": 12, "two": 12, "letter": 12, "iso": 12, "639": 12, "fall": 12, "back": 12, "incomplet": 12, "store": [13, 14, 16], "kind": 13, "encrypt": 13, "With": [13, 15], "street": [13, 14], "electr": 13, "19": 13, "row": 13, "alpin": 13, "countri": 13, "overridden": 13, "analyz": 13, "wai": [13, 15], "specif": [13, 15], "moment": 13, "manual": 13, "metric": 13, "system": [13, 15], "otherwis": [13, 15], "occur": 13, "origin": 13, "particular": 13, "third": [13, 14, 16], "visual": [13, 15], "sourc": 13, "indic": 13, "come": 13, "There": [13, 15], "perform": 13, "reach": 13, "recent": 13, "On": [13, 15], "line": [13, 14, 15], "light": 13, "accord": 13, "exclud": 13, "extrem": 13, "next": 13, "overrid": 13, "appear": 13, "kayak": 13, "boat": 13, "visibl": 13, "its": [13, 15], "each": 13, "although": 13, "happen": 13, "recalcul": 13, "automat": 13, "deactiv": 13, "being": 13, "individu": 13, "1mb": [13, 15], "10mb": 13, "000": 13, "fetch": [13, 16], "necessari": [13, 15], "like": [13, 15], "markdown": 13, "syntax": 13, "adapt": [13, 15], "discours": 13, "lock": 13, "via": [13, 15], "french": 13, "releas": [13, 15], "them": 14, "android": 14, "exhaust": 14, "runner": 14, "gpl": 14, "v3": 14, "opentrack": 14, "apach": 14, "fitotrack": 14, "under": [14, 15], "heavi": [14, 15], "featur": [14, 15], "unstabl": [14, 15], "document": [14, 15, 16, 18], "troubleshoot": 14, "clone": 15, "repositori": 15, "so": [15, 16], "step": 15, "describ": 15, "linux": 15, "archlinux": 15, "base": 15, "o": 15, "ubuntu": 15, "oper": 15, "encount": 15, "guid": 15, "uberspac": 15, "debian": [15, 17], "net": 15, "written": 15, "typescript": 15, "staticmap": 15, "coordin": 15, "task": 15, "queue": 15, "gunicorn": [15, 18], "vue3": 15, "vuex": 15, "logo": 15, "made": 15, "freepik": 15, "flaticon": 15, "fork": 15, "awesom": 15, "node": 15, "yarn": 15, "compos": 15, "makefil": 15, "thei": [15, 16], "flask_app": 15, "pwd": 15, "__main__": 15, "py": 15, "els": 15, "port": 15, "5000": 15, "app_set": 15, "productionconfig": 15, "app_secret_kei": 15, "strong": 15, "jwt": 15, "app_work": 15, "spawn": 15, "app_log": 15, "path": [15, 18], "upload_fold": [15, 18], "absolut": [15, 18], "where": 15, "folder": 15, "application_directori": 15, "5432": 15, "begin": 15, "database_disable_pool": 15, "pool": 15, "directli": 15, "ui_url": 15, "email_url": [15, 18], "sender_email": 15, "sender": 15, "redis_url": 15, "workers_process": 15, "api_rate_limit": 15, "300": 15, "minut": 15, "tile_server_url": 15, "23": 15, "b": 15, "osm": 15, "franc": 15, "target": 15, "_blank": 15, "rel": 15, "noopen": 15, "noreferr": 15, "komoot": 15, "weather_api_kei": 15, "weather_api": 15, "vite_app_api_url": 15, "26": 15, "vue_app_api_url": 15, "unencrypt": 15, "25": 15, "ssl": 15, "465": 15, "starttl": 15, "office365": 15, "work": 15, "omit": 15, "old": 15, "notif": 15, "readi": 15, "24": 15, "special": 15, "passwordwith": 15, "40and": 15, "26and": 15, "3f": 15, "apikei": 15, "xxxx": 15, "expect": 15, "osmfr": 15, "fond": 15, "cart": 15, "mention": 15, "legal": 15, "nofollow": 15, "sou": 15, "nbsp": 15, "creativecommon": 15, "sa": 15, "licenc": 15, "cc": 15, "BY": 15, "chosen": 15, "randomli": 15, "ip": 15, "fix": 15, "window": 15, "strategi": 15, "subject": 15, "asset": 15, "notat": 15, "separ": [15, 16], "hour": 15, "mainten": 15, "diagnost": 15, "util": 15, "clear": 15, "enumer": 15, "histor": 15, "hourli": 15, "discontinu": 15, "simplest": 15, "pip": 15, "WITH": 15, "schema": 15, "privileg": 15, "nano": 15, "ftcli": 15, "db": 15, "systemd": 15, "project": 15, "repo": 15, "git": 15, "github": 15, "samr1": 15, "cd": 15, "3000": 15, "wget": 15, "tar": 15, "gz": 15, "xzf": 15, "mv": 15, "sql": 15, "backup": 15, "pg_dump": 15, "semant": 15, "backward": 15, "incompat": 15, "u": 15, "changelog": 15, "restart": 15, "pull": 15, "overwrit": 15, "cp": 15, "r": 15, "One": 15, "proxi": [15, 16], "pass": 15, "network": 15, "startlimitintervalsec": 15, "simpl": 15, "alwai": 15, "restartsec": 15, "standardoutput": 15, "syslog": 15, "standarderror": 15, "syslogidentifi": 15, "workingdirectori": 15, "home": 15, "execstart": 15, "venv": 15, "bin": 15, "create_app": 15, "logfil": 15, "wantedbi": 15, "multi": 15, "higher": 15, "timeout": [15, 18], "OF": 15, "listen": 15, "443": 15, "http2": 15, "server_nam": 15, "ssl_certif": 15, "fullchain": 15, "pem": 15, "ssl_certificate_kei": 15, "privkei": 15, "how": 15, "larger": [15, 18], "ll": 15, "uncom": 15, "want": 15, "client_max_body_s": [15, 18], "1m": 15, "proxy_pass": 15, "proxy_redirect": 15, "proxy_set_head": [15, 16], "real": 15, "remote_addr": 15, "forward": [15, 16], "proxy_add_x_forwarded_for": 15, "proto": [15, 16], "scheme": [15, 16], "request_uri": 15, "suitabl": 15, "8025": 15, "mailhog": 15, "shell": 15, "insid": 15, "fittrackee_cli": 15, "lint": 15, "fittrackee_ynh": 15, "rest": 16, "whose": 16, "most": 16, "interact": 16, "tab": 16, "exchang": 16, "secur": 16, "3rd": 16, "fittrackee_host": 16, "space": 16, "3aread": 16, "3awrit": 16, "behind": 16, "aaron": 16, "parecki": 16, "oauthlib": 16, "session": 16, "strava": 17, "fit": 17, "garmin": 17, "synchron": 17, "fittrackee_instal": 17, "sh": 17, "netinstal": 17, "exc": 18, "nosuchmoduleerror": 18, "plugin": 18, "dialect": 18, "invalidemailurlschem": 18, "increas": 18, "critic": 18}, "objects": {"": [[0, 0, 1, "post--api-auth-account-confirm", "/api/auth/account/confirm"], [0, 1, 1, "get--api-auth-account-export", "/api/auth/account/export"], [0, 1, 1, "get--api-auth-account-export-(string-file_name)", "/api/auth/account/export/(string:file_name)"], [0, 0, 1, "post--api-auth-account-export-request", "/api/auth/account/export/request"], [0, 0, 1, "post--api-auth-account-privacy-policy", "/api/auth/account/privacy-policy"], [0, 0, 1, "post--api-auth-account-resend-confirmation", "/api/auth/account/resend-confirmation"], [0, 0, 1, "post--api-auth-email-update", "/api/auth/email/update"], [0, 0, 1, "post--api-auth-login", "/api/auth/login"], [0, 0, 1, "post--api-auth-logout", "/api/auth/logout"], [0, 0, 1, "post--api-auth-password-reset-request", "/api/auth/password/reset-request"], [0, 0, 1, "post--api-auth-password-update", "/api/auth/password/update"], [0, 2, 1, "delete--api-auth-picture", "/api/auth/picture"], [0, 0, 1, "post--api-auth-picture", "/api/auth/picture"], [0, 1, 1, "get--api-auth-profile", "/api/auth/profile"], [0, 0, 1, "post--api-auth-profile-edit", "/api/auth/profile/edit"], [0, 3, 1, "patch--api-auth-profile-edit-account", "/api/auth/profile/edit/account"], [0, 0, 1, "post--api-auth-profile-edit-preferences", "/api/auth/profile/edit/preferences"], [0, 0, 1, "post--api-auth-profile-edit-sports", "/api/auth/profile/edit/sports"], [0, 2, 1, "delete--api-auth-profile-reset-sports-(sport_id)", "/api/auth/profile/reset/sports/(sport_id)"], [0, 0, 1, "post--api-auth-register", "/api/auth/register"], [1, 1, 1, "get--api-config", "/api/config"], [1, 3, 1, "patch--api-config", "/api/config"], [2, 1, 1, "get--api-equipment-types", "/api/equipment-types"], [2, 1, 1, "get--api-equipment-types-(int-equipment_type_id)", "/api/equipment-types/(int:equipment_type_id)"], [2, 3, 1, "patch--api-equipment-types-(int-equipment_type_id)", "/api/equipment-types/(int:equipment_type_id)"], [3, 1, 1, "get--api-equipments", "/api/equipments"], [3, 0, 1, "post--api-equipments", "/api/equipments"], [3, 2, 1, "delete--api-equipments-(string-equipment_short_id)", "/api/equipments/(string:equipment_short_id)"], [3, 1, 1, "get--api-equipments-(string-equipment_short_id)", "/api/equipments/(string:equipment_short_id)"], [3, 3, 1, "patch--api-equipments-(string-equipment_short_id)", "/api/equipments/(string:equipment_short_id)"], [3, 0, 1, "post--api-equipments-(string-equipment_short_id)-refresh", "/api/equipments/(string:equipment_short_id)/refresh"], [5, 1, 1, "get--api-oauth-apps", "/api/oauth/apps"], [5, 0, 1, "post--api-oauth-apps", "/api/oauth/apps"], [5, 2, 1, "delete--api-oauth-apps-(int-client_id)", "/api/oauth/apps/(int:client_id)"], [5, 1, 1, "get--api-oauth-apps-(int-client_id)-by_id", "/api/oauth/apps/(int:client_id)/by_id"], [5, 0, 1, "post--api-oauth-apps-(int-client_id)-revoke", "/api/oauth/apps/(int:client_id)/revoke"], [5, 1, 1, "get--api-oauth-apps-(string-client_client_id)", "/api/oauth/apps/(string:client_client_id)"], [5, 0, 1, "post--api-oauth-authorize", "/api/oauth/authorize"], [5, 0, 1, "post--api-oauth-revoke", "/api/oauth/revoke"], [5, 0, 1, "post--api-oauth-token", "/api/oauth/token"], [1, 1, 1, "get--api-ping", "/api/ping"], [6, 1, 1, "get--api-records", "/api/records"], [7, 1, 1, "get--api-sports", "/api/sports"], [7, 1, 1, "get--api-sports-(int-sport_id)", "/api/sports/(int:sport_id)"], [7, 3, 1, "patch--api-sports-(int-sport_id)", "/api/sports/(int:sport_id)"], [8, 1, 1, "get--api-stats-(user_name)-by_sport", "/api/stats/(user_name)/by_sport"], [8, 1, 1, "get--api-stats-(user_name)-by_time", "/api/stats/(user_name)/by_time"], [8, 1, 1, "get--api-stats-all", "/api/stats/all"], [9, 1, 1, "get--api-users", "/api/users"], [9, 2, 1, "delete--api-users-(user_name)", "/api/users/(user_name)"], [9, 1, 1, "get--api-users-(user_name)", "/api/users/(user_name)"], [9, 3, 1, "patch--api-users-(user_name)", "/api/users/(user_name)"], [9, 1, 1, "get--api-users-(user_name)-picture", "/api/users/(user_name)/picture"], [10, 1, 1, "get--api-workouts", "/api/workouts"], [10, 0, 1, "post--api-workouts", "/api/workouts"], [10, 2, 1, "delete--api-workouts-(string-workout_short_id)", "/api/workouts/(string:workout_short_id)"], [10, 1, 1, "get--api-workouts-(string-workout_short_id)", "/api/workouts/(string:workout_short_id)"], [10, 3, 1, "patch--api-workouts-(string-workout_short_id)", "/api/workouts/(string:workout_short_id)"], [10, 1, 1, "get--api-workouts-(string-workout_short_id)-chart_data", "/api/workouts/(string:workout_short_id)/chart_data"], [10, 1, 1, "get--api-workouts-(string-workout_short_id)-chart_data-segment-(int-segment_id)", "/api/workouts/(string:workout_short_id)/chart_data/segment/(int:segment_id)"], [10, 1, 1, "get--api-workouts-(string-workout_short_id)-gpx", "/api/workouts/(string:workout_short_id)/gpx"], [10, 1, 1, "get--api-workouts-(string-workout_short_id)-gpx-download", "/api/workouts/(string:workout_short_id)/gpx/download"], [10, 1, 1, "get--api-workouts-(string-workout_short_id)-gpx-segment-(int-segment_id)", "/api/workouts/(string:workout_short_id)/gpx/segment/(int:segment_id)"], [10, 1, 1, "get--api-workouts-map-(map_id)", "/api/workouts/map/(map_id)"], [10, 0, 1, "post--api-workouts-no_gpx", "/api/workouts/no_gpx"], [15, 4, 1, "-", "API_RATE_LIMITS"], [15, 4, 1, "-", "APP_LOG"], [15, 4, 1, "-", "APP_SECRET_KEY"], [15, 4, 1, "-", "APP_SETTINGS"], [15, 4, 1, "-", "APP_WORKERS"], [15, 4, 1, "-", "DATABASE_DISABLE_POOLING"], [15, 4, 1, "-", "DATABASE_URL"], [15, 4, 1, "-", "DEFAULT_STATICMAP"], [15, 4, 1, "-", "EMAIL_URL"], [15, 4, 1, "-", "FLASK_APP"], [15, 4, 1, "-", "HOST"], [15, 4, 1, "-", "MAP_ATTRIBUTION"], [15, 4, 1, "-", "PORT"], [15, 4, 1, "-", "REDIS_URL"], [15, 4, 1, "-", "SENDER_EMAIL"], [15, 4, 1, "-", "STATICMAP_SUBDOMAINS"], [15, 4, 1, "-", "TILE_SERVER_URL"], [15, 4, 1, "-", "UI_URL"], [15, 4, 1, "-", "UPLOAD_FOLDER"], [15, 4, 1, "-", "VITE_APP_API_URL"], [15, 4, 1, "-", "WEATHER_API_KEY"], [15, 4, 1, "envvar-WEATHER_API_PROVIDER", "WEATHER_API_PROVIDER \ud83c\udd95"], [15, 4, 1, "-", "WORKERS_PROCESSES"]], "/api/workouts/map_tile/(s)/(z)/(x)/(y)": [[10, 1, 1, "get--api-workouts-map_tile-(s)-(z)-(x)-(y).png", "png"]]}, "objtypes": {"0": "http:post", "1": "http:get", "2": "http:delete", "3": "http:patch", "4": "std:envvar"}, "objnames": {"0": ["http", "post", "HTTP post"], "1": ["http", "get", "HTTP get"], "2": ["http", "delete", "HTTP delete"], "3": ["http", "patch", "HTTP patch"], "4": ["std", "envvar", "environment variable"]}, "titleterms": {"authent": 0, "account": [0, 13], "configur": 1, "equip": [2, 3, 13], "type": [2, 13], "api": [4, 15], "document": [4, 11], "endpoint": 4, "oauth2": [5, 12], "record": 6, "sport": [7, 13], "statist": [8, 11, 13], "user": [9, 12, 13], "workout": [10, 13, 18], "chang": 11, "log": 11, "version": 11, "0": [11, 16], "8": 11, "2024": 11, "09": 11, "01": 11, "bug": 11, "fix": 11, "translat": [11, 13], "7": 11, "08": 11, "25": 11, "featur": [11, 13], "enhanc": 11, "6": 11, "03": 11, "misc": 11, "5": 11, "06": 11, "29": 11, "4": 11, "05": 11, "22": 11, "3": 11, "2": [11, 16], "1": 11, "04": 11, "21": 11, "32": 11, "10": 11, "31": 11, "02": 11, "30": 11, "28": 11, "2023": 11, "12": 11, "23": 11, "27": 11, "20": 11, "26": 11, "11": 11, "19": 11, "24": 11, "14": 11, "07": 11, "15": 11, "18": 11, "17": 11, "16": 11, "13": 11, "2022": 11, "9": 11, "issu": 11, "close": 11, "pull": 11, "request": 11, "secur": 11, "new": 11, "2021": 11, "2020": 11, "fittracke": [11, 14, 18], "pypi": [11, 15], "administr": [11, 13, 18], "improv": 11, "minor": 11, "avail": 11, "french": 11, "2019": 11, "first": 11, "releas": 11, "2018": 11, "command": 12, "line": 12, "interfac": 12, "databas": 12, "ftcli": 12, "db": 12, "drop": 12, "upgrad": [12, 15], "clean": 12, "clean_arch": 12, "clean_token": 12, "creat": 12, "export_arch": 12, "updat": 12, "prefer": 13, "oauth": [13, 16], "app": 13, "applic": 13, "screenshot": 13, "dashboard": 13, "detail": [13, 18], "list": 13, "tabl": 14, "content": 14, "instal": [15, 17], "main": 15, "depend": 15, "prerequisit": 15, "environ": 15, "variabl": 15, "email": 15, "map": [15, 18], "tile": 15, "server": 15, "rate": 15, "limit": 15, "weather": 15, "data": 15, "from": 15, "sourc": 15, "dev": 15, "product": 15, "prod": 15, "deploy": 15, "docker": 15, "develop": 15, "yunohost": 15, "scope": 16, "flow": 16, "resourc": 16, "third": 17, "parti": 17, "tool": 17, "import": 17, "script": 17, "fail": 18, "start": 18, "imag": 18, "ar": 18, "displai": 18, "i": 18, "shown": 18, "upload": 18, "download": 18, "file": 18, "troubleshoot": 19}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx": 58}, "alltitles": {"Authentication and account": [[0, "authentication-and-account"]], "Configuration": [[1, "configuration"]], "Equipment Types": [[2, "equipment-types"], [13, "equipment-types"]], "Equipments": [[3, "equipments"], [13, "equipments"], [13, "id1"]], "API documentation": [[4, "api-documentation"]], "Endpoints:": [[4, null]], "OAuth2": [[5, "oauth2"], [12, "oauth2"]], "Records": [[6, "records"]], "Sports": [[7, "sports"], [13, "sports"]], "Statistics": [[8, "statistics"], [13, "statistics"]], "Users": [[9, "users"], [12, "users"], [13, "users"]], "Workouts": [[10, "workouts"], [13, "workouts"]], "Change log": [[11, "change-log"]], "Version 0.8.8 (2024/09/01)": [[11, "version-0-8-8-2024-09-01"]], "Bugs Fixed": [[11, "bugs-fixed"], [11, "id1"], [11, "id5"], [11, "id11"], [11, "id16"], [11, "id20"], [11, "id23"], [11, "id25"], [11, "id29"], [11, "id33"], [11, "id37"], [11, "id40"], [11, "id43"], [11, "id46"], [11, "id47"], [11, "id50"], [11, "id52"], [11, "id54"], [11, "id57"], [11, "id60"], [11, "id68"], [11, "id71"], [11, "id74"], [11, "id77"], [11, "id89"], [11, "id94"], [11, "id96"], [11, "id100"], [11, "id103"], [11, "id106"], [11, "id108"], [11, "id111"], [11, "id114"], [11, "id116"], [11, "id119"], [11, "id122"], [11, "id125"], [11, "id130"], [11, "id132"], [11, "id134"], [11, "id136"], [11, "id139"], [11, "id141"], [11, "id147"], [11, "id150"], [11, "id152"], [11, "id154"], [11, "id161"], [11, "id166"], [11, "id168"], [11, "id170"], [11, "id173"], [11, "id175"], [11, "id177"], [11, "id181"], [11, "id191"], [11, "id194"], [11, "id196"], [11, "id199"], [11, "id206"]], "Translations": [[11, "translations"], [11, "id2"], [11, "id3"], [11, "id6"], [11, "id9"], [11, "id12"], [11, "id13"], [11, "id17"], [11, "id21"], [11, "id24"], [11, "id26"], [11, "id30"], [11, "id34"], [11, "id38"], [11, "id41"], [11, "id44"], [11, "id48"], [11, "id53"], [11, "id58"], [11, "id61"], [11, "id63"], [11, "id66"], [11, "id69"], [11, "id72"], [11, "id75"], [11, "id78"], [11, "id79"], [11, "id82"], [11, "id84"], [11, "id86"], [11, "id87"], [11, "id90"], [11, "id92"], [11, "id95"], [11, "id97"], [11, "id101"], [11, "id102"], [11, "id104"], [11, "id107"], [11, "id120"], [13, "translations"]], "Version 0.8.7 (2024/08/25)": [[11, "version-0-8-7-2024-08-25"]], "Features and enhancements": [[11, "features-and-enhancements"], [11, "id4"], [11, "id8"], [11, "id15"], [11, "id19"], [11, "id28"], [11, "id32"], [11, "id36"], [11, "id39"], [11, "id56"], [11, "id59"], [11, "id67"], [11, "id70"], [11, "id76"], [11, "id81"], [11, "id83"], [11, "id85"], [11, "id88"], [11, "id99"], [11, "id105"]], "Version 0.8.6 (2024/08/03)": [[11, "version-0-8-6-2024-08-03"]], "Misc": [[11, "misc"], [11, "id7"], [11, "id10"], [11, "id14"], [11, "id18"], [11, "id22"], [11, "id27"], [11, "id31"], [11, "id35"], [11, "id42"], [11, "id45"], [11, "id49"], [11, "id51"], [11, "id55"], [11, "id62"], [11, "id65"], [11, "id73"], [11, "id80"], [11, "id91"], [11, "id93"], [11, "id109"], [11, "id123"], [11, "id126"], [11, "id143"], [11, "id145"], [11, "id162"], [11, "id171"], [11, "id178"], [11, "id182"], [11, "id189"], [11, "id200"], [11, "id203"]], "Version 0.8.5 (2024/06/29)": [[11, "version-0-8-5-2024-06-29"]], "Version 0.8.4 (2024/05/22)": [[11, "version-0-8-4-2024-05-22"]], "Version 0.8.3 (2024/05/09)": [[11, "version-0-8-3-2024-05-09"]], "Version 0.8.2 (2024/05/08)": [[11, "version-0-8-2-2024-05-08"]], "Version 0.8.1 (2024/05/01)": [[11, "version-0-8-1-2024-05-01"]], "Version 0.8.0 (2024/04/21)": [[11, "version-0-8-0-2024-04-21"]], "Version 0.7.32 (2024/03/10)": [[11, "version-0-7-32-2024-03-10"]], "Version 0.7.31 (2024/02/10)": [[11, "version-0-7-31-2024-02-10"]], "Version 0.7.30 (2024/02/04)": [[11, "version-0-7-30-2024-02-04"]], "Version 0.7.29 (2024/01/06)": [[11, "version-0-7-29-2024-01-06"]], "Version 0.7.28 (2023/12/23)": [[11, "version-0-7-28-2023-12-23"]], "Version 0.7.27 (2023/12/20)": [[11, "version-0-7-27-2023-12-20"]], "Version 0.7.26 (2023/11/19)": [[11, "version-0-7-26-2023-11-19"]], "Version 0.7.25 (2023/10/08)": [[11, "version-0-7-25-2023-10-08"]], "Version 0.7.24 (2023/10/04)": [[11, "version-0-7-24-2023-10-04"]], "Version 0.7.23 (2023/09/14)": [[11, "version-0-7-23-2023-09-14"]], "Version 0.7.22 (2023/08/23)": [[11, "version-0-7-22-2023-08-23"]], "Version 0.7.21 (2023/07/30)": [[11, "version-0-7-21-2023-07-30"]], "Version 0.7.20 (2023/07/22)": [[11, "version-0-7-20-2023-07-22"]], "Version 0.7.19 (2023/07/15)": [[11, "version-0-7-19-2023-07-15"]], "Documentation": [[11, "documentation"], [11, "id64"], [11, "id98"]], "Version 0.7.18 (2023/06/25)": [[11, "version-0-7-18-2023-06-25"]], "Version 0.7.17 (2023/06/03)": [[11, "version-0-7-17-2023-06-03"]], "Version 0.7.16 (2023/05/29)": [[11, "version-0-7-16-2023-05-29"]], "Version 0.7.15 (2023/04/12)": [[11, "version-0-7-15-2023-04-12"]], "Version 0.7.14 (2023/03/08)": [[11, "version-0-7-14-2023-03-08"]], "Version 0.7.13 (2023/03/05)": [[11, "version-0-7-13-2023-03-05"]], "Version 0.7.12 (2023/02/16)": [[11, "version-0-7-12-2023-02-16"]], "Version 0.7.11 (2022/12/31)": [[11, "version-0-7-11-2022-12-31"]], "Version 0.7.10 (2022/12/21)": [[11, "version-0-7-10-2022-12-21"]], "Version 0.7.9 (2022/12/11)": [[11, "version-0-7-9-2022-12-11"]], "Version 0.7.8 (2022/11/30)": [[11, "version-0-7-8-2022-11-30"]], "Version 0.7.7 (2022/11/27)": [[11, "version-0-7-7-2022-11-27"]], "Version 0.7.6 (2022/11/09)": [[11, "version-0-7-6-2022-11-09"]], "Version 0.7.5 (2022/11/09)": [[11, "version-0-7-5-2022-11-09"]], "Version 0.7.4 (2022/11/05)": [[11, "version-0-7-4-2022-11-05"]], "Version 0.7.3 (2022/11/01)": [[11, "version-0-7-3-2022-11-01"]], "Version 0.7.2 (2022/09/21)": [[11, "version-0-7-2-2022-09-21"]], "Version 0.7.1 (2022/09/21)": [[11, "version-0-7-1-2022-09-21"]], "Version 0.7.0 (2022/09/19)": [[11, "version-0-7-0-2022-09-19"]], "Version 0.6.12 (2022/09/14)": [[11, "version-0-6-12-2022-09-14"]], "Issues Closed": [[11, "issues-closed"], [11, "id110"], [11, "id113"], [11, "id117"], [11, "id121"], [11, "id124"], [11, "id127"], [11, "id129"], [11, "id133"], [11, "id135"], [11, "id137"], [11, "id142"], [11, "id146"], [11, "id149"], [11, "id151"], [11, "id153"], [11, "id155"], [11, "id157"], [11, "id159"], [11, "id164"], [11, "id167"], [11, "id169"], [11, "id172"], [11, "id174"], [11, "id176"], [11, "id179"], [11, "id183"], [11, "id185"], [11, "id187"], [11, "id190"], [11, "id192"], [11, "id195"], [11, "id197"], [11, "id201"], [11, "id204"], [11, "id207"]], "Pull Requests": [[11, "pull-requests"], [11, "id112"], [11, "id115"], [11, "id131"], [11, "id140"], [11, "id144"], [11, "id148"], [11, "id163"]], "Version 0.6.11 (2022/07/27)": [[11, "version-0-6-11-2022-07-27"]], "Features": [[11, "features"], [11, "id118"], [11, "id128"], [11, "id138"], [13, "features"]], "Version 0.6.10 (2022/07/13)": [[11, "version-0-6-10-2022-07-13"]], "Version 0.6.9 (2022/07/03)": [[11, "version-0-6-9-2022-07-03"]], "Version 0.6.8 (2022/06/22)": [[11, "version-0-6-8-2022-06-22"]], "Version 0.6.7 (2022/06/11)": [[11, "version-0-6-7-2022-06-11"]], "Version 0.6.6 (2022/05/29)": [[11, "version-0-6-6-2022-05-29"]], "Version 0.6.5 (2022/04/24)": [[11, "version-0-6-5-2022-04-24"]], "Version 0.6.4 (2022/04/23)": [[11, "version-0-6-4-2022-04-23"]], "Version 0.6.3 (2022/04/09)": [[11, "version-0-6-3-2022-04-09"]], "Version 0.6.2 (2022/04/03)": [[11, "version-0-6-2-2022-04-03"]], "Version 0.6.1 (2022/03/27)": [[11, "version-0-6-1-2022-03-27"]], "Version 0.6.0 (2022/03/27)": [[11, "version-0-6-0-2022-03-27"]], "Version 0.5.7 (2022/02/13)": [[11, "version-0-5-7-2022-02-13"]], "Security": [[11, "security"]], "Version 0.5.6 (2022/02/05)": [[11, "version-0-5-6-2022-02-05"]], "Version 0.5.5 (2022/01/19)": [[11, "version-0-5-5-2022-01-19"]], "New Features": [[11, "new-features"], [11, "id156"], [11, "id158"], [11, "id160"], [11, "id165"], [11, "id180"], [11, "id184"], [11, "id186"], [11, "id188"], [11, "id193"], [11, "id198"], [11, "id202"], [11, "id205"], [11, "id208"]], "Version 0.5.4 (2022/01/01)": [[11, "version-0-5-4-2022-01-01"]], "Version 0.5.3 (2022/01/01)": [[11, "version-0-5-3-2022-01-01"]], "Version 0.5.2 (2021/12/19)": [[11, "version-0-5-2-2021-12-19"]], "Version 0.5.1 (2021/11/30)": [[11, "version-0-5-1-2021-11-30"]], "Version 0.5.0 (2021/11/14)": [[11, "version-0-5-0-2021-11-14"]], "Version 0.4.9 (2021/07/16)": [[11, "version-0-4-9-2021-07-16"]], "Version 0.4.8 (2021/07/03)": [[11, "version-0-4-8-2021-07-03"]], "Version 0.4.7 (2021/04/07)": [[11, "version-0-4-7-2021-04-07"]], "Version 0.4.6 (2021/02/21)": [[11, "version-0-4-6-2021-02-21"]], "Version 0.4.5 (2021/02/17)": [[11, "version-0-4-5-2021-02-17"]], "Version 0.4.4 (2021/01/31)": [[11, "version-0-4-4-2021-01-31"]], "Version 0.4.3 (2021/01/10)": [[11, "version-0-4-3-2021-01-10"]], "Version 0.4.2 (2021/01/03)": [[11, "version-0-4-2-2021-01-03"]], "Version 0.4.1 (2020/12/31)": [[11, "version-0-4-1-2020-12-31"]], "Version 0.4.0 - FitTrackee on PyPI (2020/09/19)": [[11, "version-0-4-0-fittrackee-on-pypi-2020-09-19"]], "Version 0.3.0 - Administration (2020/07/15)": [[11, "version-0-3-0-administration-2020-07-15"]], "Version 0.2.5 - Fix and improvements (2020/01/31)": [[11, "version-0-2-5-fix-and-improvements-2020-01-31"]], "Version 0.2.4 - Minor fix (2020/01/30)": [[11, "version-0-2-4-minor-fix-2020-01-30"]], "Version 0.2.3 - FitTrackee available in French (2019/12/29)": [[11, "version-0-2-3-fittrackee-available-in-french-2019-12-29"]], "Version 0.2.2 - Statistics fix (2019/09/23)": [[11, "version-0-2-2-statistics-fix-2019-09-23"]], "Version 0.2.1 - Fix and improvements (2019/09/01)": [[11, "version-0-2-1-fix-and-improvements-2019-09-01"]], "Version 0.2.0 - Statistics (2019/07/07)": [[11, "version-0-2-0-statistics-2019-07-07"]], "Version 0.1.1 - Fix and improvements (2019/02/07)": [[11, "version-0-1-1-fix-and-improvements-2019-02-07"]], "Version 0.1.0 - First release \ud83c\udf89 (2018-07-04)": [[11, "version-0-1-0-first-release-2018-07-04"]], "Command line interface": [[12, "command-line-interface"]], "Database": [[12, "database"]], "ftcli db drop": [[12, "ftcli-db-drop"]], "ftcli db upgrade": [[12, "ftcli-db-upgrade"]], "ftcli oauth2 clean": [[12, "ftcli-oauth2-clean"]], "ftcli users clean_archives": [[12, "ftcli-users-clean-archives"]], "ftcli users clean_tokens": [[12, "ftcli-users-clean-tokens"]], "ftcli users create": [[12, "ftcli-users-create"]], "ftcli users export_archives": [[12, "ftcli-users-export-archives"]], "ftcli users update": [[12, "ftcli-users-update"]], "Account & preferences": [[13, "account-preferences"]], "OAuth Apps": [[13, "oauth-apps"]], "Administration": [[13, "administration"], [13, "id2"]], "Application": [[13, "application"]], "Screenshots": [[13, "screenshots"]], "Dashboard": [[13, "dashboard"]], "Workout detail": [[13, "workout-detail"]], "Workouts list": [[13, "workouts-list"]], "FitTrackee": [[14, "fittrackee"]], "Table of contents": [[14, "table-of-contents"]], "Installation": [[15, "installation"], [15, "id2"], [15, "id6"]], "Main dependencies": [[15, "main-dependencies"]], "Prerequisites": [[15, "prerequisites"]], "Environment variables": [[15, "environment-variables"]], "Emails": [[15, "emails"]], "Map tile server": [[15, "map-tile-server"]], "API rate limits": [[15, "api-rate-limits"]], "Weather data": [[15, "weather-data"]], "From PyPI": [[15, "from-pypi"], [15, "id3"]], "From sources": [[15, "from-sources"], [15, "id4"]], "Dev environment": [[15, "dev-environment"], [15, "id5"]], "Production environment": [[15, "production-environment"]], "Upgrade": [[15, "upgrade"]], "Prod environment": [[15, "prod-environment"]], "Deployment": [[15, "deployment"]], "Docker": [[15, "docker"]], "Development": [[15, "development"]], "Yunohost": [[15, "yunohost"]], "OAuth 2.0": [[16, "oauth-2-0"]], "Scopes": [[16, "scopes"]], "Flow": [[16, "flow"]], "Resources": [[16, "resources"]], "Third-party tools": [[17, "third-party-tools"]], "Import tools": [[17, "import-tools"]], "Installation scripts": [[17, "installation-scripts"]], "Administrator": [[18, "administrator"]], "FitTrackee fails to start": [[18, "fittrackee-fails-to-start"]], "Map images are not displayed but map is shown in Workout detail": [[18, "map-images-are-not-displayed-but-map-is-shown-in-workout-detail"]], "Failed to upload or download files": [[18, "failed-to-upload-or-download-files"]], "Troubleshooting": [[19, "troubleshooting"]]}, "indexentries": {"api_rate_limits": [[15, "envvar-API_RATE_LIMITS"]], "app_log": [[15, "envvar-APP_LOG"]], "app_secret_key": [[15, "envvar-APP_SECRET_KEY"]], "app_settings": [[15, "envvar-APP_SETTINGS"]], "app_workers": [[15, "envvar-APP_WORKERS"]], "database_disable_pooling": [[15, "envvar-DATABASE_DISABLE_POOLING"]], "database_url": [[15, "envvar-DATABASE_URL"]], "default_staticmap": [[15, "envvar-DEFAULT_STATICMAP"]], "email_url": [[15, "envvar-EMAIL_URL"]], "flask_app": [[15, "envvar-FLASK_APP"]], "host": [[15, "envvar-HOST"]], "map_attribution": [[15, "envvar-MAP_ATTRIBUTION"]], "port": [[15, "envvar-PORT"]], "redis_url": [[15, "envvar-REDIS_URL"]], "sender_email": [[15, "envvar-SENDER_EMAIL"]], "staticmap_subdomains": [[15, "envvar-STATICMAP_SUBDOMAINS"]], "tile_server_url": [[15, "envvar-TILE_SERVER_URL"]], "ui_url": [[15, "envvar-UI_URL"]], "upload_folder": [[15, "envvar-UPLOAD_FOLDER"]], "vite_app_api_url": [[15, "envvar-VITE_APP_API_URL"]], "weather_api_key": [[15, "envvar-WEATHER_API_KEY"]], "weather_api_provider \ud83c\udd95": [[15, "envvar-WEATHER_API_PROVIDER"]], "workers_processes": [[15, "envvar-WORKERS_PROCESSES"]], "environment variable": [[15, "envvar-API_RATE_LIMITS"], [15, "envvar-APP_LOG"], [15, "envvar-APP_SECRET_KEY"], [15, "envvar-APP_SETTINGS"], [15, "envvar-APP_WORKERS"], [15, "envvar-DATABASE_DISABLE_POOLING"], [15, "envvar-DATABASE_URL"], [15, "envvar-DEFAULT_STATICMAP"], [15, "envvar-EMAIL_URL"], [15, "envvar-FLASK_APP"], [15, "envvar-HOST"], [15, "envvar-MAP_ATTRIBUTION"], [15, "envvar-PORT"], [15, "envvar-REDIS_URL"], [15, "envvar-SENDER_EMAIL"], [15, "envvar-STATICMAP_SUBDOMAINS"], [15, "envvar-TILE_SERVER_URL"], [15, "envvar-UI_URL"], [15, "envvar-UPLOAD_FOLDER"], [15, "envvar-VITE_APP_API_URL"], [15, "envvar-WEATHER_API_KEY"], [15, "envvar-WEATHER_API_PROVIDER"], [15, "envvar-WORKERS_PROCESSES"]]}}) \ No newline at end of file +Search.setIndex({"docnames": ["api/auth", "api/configuration", "api/equipment_types", "api/equipments", "api/index", "api/oauth2", "api/records", "api/sports", "api/stats", "api/users", "api/workouts", "changelog", "cli", "features", "index", "installation", "oauth", "third_party_tools", "troubleshooting/administrator", "troubleshooting/index"], "filenames": ["api/auth.rst", "api/configuration.rst", "api/equipment_types.rst", "api/equipments.rst", "api/index.rst", "api/oauth2.rst", "api/records.rst", "api/sports.rst", "api/stats.rst", "api/users.rst", "api/workouts.rst", "changelog.md", "cli.rst", "features.rst", "index.rst", "installation.rst", "oauth.rst", "third_party_tools.rst", "troubleshooting/administrator.rst", "troubleshooting/index.rst"], "titles": ["Authentication and account", "Configuration", "Equipment Types", "Equipments", "API documentation", "OAuth2", "Records", "Sports", "Statistics", "Users", "Workouts", "Change log", "Command line interface", "Features", "FitTrackee", "Installation", "OAuth 2.0", "Third-party tools", "Administrator", "Troubleshooting"], "terms": {"post": [0, 3, 5, 10, 16], "api": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 13, 14, 16], "auth": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 15, 16], "regist": [0, 1, 11, 13, 15], "user": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 15, 16], "send": [0, 9, 11, 13, 15], "confirm": [0, 5, 11, 13, 15], "email": [0, 1, 9, 11, 12, 13, 18], "The": [0, 3, 10, 11, 13, 15, 16, 18], "newli": [0, 12, 15], "creat": [0, 3, 5, 10, 11, 13, 15, 16], "i": [0, 1, 3, 5, 10, 11, 12, 13, 14, 15, 16, 19], "inact": [0, 3, 9, 10, 13, 15], "must": [0, 1, 2, 3, 5, 7, 9, 10, 11, 13, 15, 16, 18], "hi": [0, 3, 9, 11, 13], "activ": [0, 2, 3, 7, 9, 11, 12, 13, 14, 15], "exampl": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 14, 15, 16], "request": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 12, 13, 15, 16], "http": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 15, 16], "1": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 12, 13, 15], "content": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11], "type": [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 15], "applic": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 14, 15, 16], "json": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 13], "respons": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11], "success": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10], "200": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 15], "statu": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 13], "error": [0, 1, 2, 3, 5, 7, 9, 10, 11, 13, 15, 18], "registr": [0, 1, 11, 12, 13, 15, 16], "400": [0, 1, 2, 3, 5, 7, 8, 9, 10, 11], "bad": [0, 1, 2, 3, 5, 7, 8, 9, 10], "messag": [0, 1, 5, 10, 11, 12, 13, 15], "valid": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 15, 18], "provid": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15, 16, 18], "n": 0, "object": [0, 1, 2, 3, 7, 9, 10], "usernam": [0, 8, 9, 11, 12, 15], "string": [0, 1, 3, 5, 7, 8, 9, 10, 15, 16], "3": [0, 2, 7, 8, 9, 10, 13, 15], "30": [0, 8], "charact": [0, 3, 10, 11, 15], "requir": [0, 3, 11, 15, 16], "password": [0, 9, 11, 12, 13, 15], "8": [0, 1, 10, 12, 13, 15, 16], "lang": [0, 11, 12], "languag": [0, 9, 11, 12, 13], "prefer": [0, 9, 11, 12], "invalid": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 15], "fallback": 0, "en": [0, 9, 12], "english": [0, 11, 12, 13], "accepted_polici": 0, "boolean": [0, 1, 2, 3, 5, 7, 9, 12], "true": [0, 1, 2, 3, 5, 7, 9, 11, 15], "accept": 0, "privaci": [0, 1, 11, 13], "polici": [0, 1, 11, 13], "code": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 16], "ok": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10], "payload": [0, 1, 2, 5, 7, 9, 10], "sorri": 0, "alreadi": [0, 3, 11, 12], "taken": [0, 13], "you": [0, 1, 2, 3, 7, 8, 9, 10, 11, 13, 14, 15], "agre": [0, 11, 13], "onli": [0, 3, 5, 8, 9, 10, 11, 12, 13, 15, 16], "alphanumer": [0, 11], "underscor": 0, "_": [0, 11], "allow": [0, 1, 3, 10, 11, 12, 13, 14, 15, 16], "403": [0, 1, 2, 3, 7, 8, 9, 10], "forbidden": [0, 1, 2, 3, 7, 8, 9, 10], "disabl": [0, 11, 12, 13, 15], "500": [0, 1, 2, 3, 7, 9, 10, 11], "intern": [0, 1, 2, 3, 7, 9, 10], "server": [0, 1, 2, 3, 7, 9, 10, 11, 13, 14], "pleas": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11], "try": [0, 2, 3, 7, 9, 10], "again": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10], "contact": [0, 1, 2, 3, 7, 9, 10, 13], "administr": [0, 1, 2, 3, 7, 9, 10, 16, 19], "after": [0, 5, 11, 13, 15, 16], "auth_token": 0, "web": [0, 14, 15, 16], "token": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 16], "resend": 0, "instruct": [0, 11, 13, 15], "If": [0, 3, 5, 8, 10, 12, 13, 15, 16], "thi": [0, 3, 5, 10, 11, 12, 13, 14, 15], "endpoint": [0, 1, 5, 11, 15, 16], "avail": [0, 6, 12, 13, 15, 16, 17], "resent": 0, "404": [0, 2, 3, 5, 7, 8, 9, 10, 11], "Not": [0, 2, 3, 5, 7, 8, 9, 10], "found": [0, 2, 3, 5, 7, 8, 9, 10, 11], "url": [0, 5, 11, 15, 16, 18], "wa": [0, 3, 11, 13, 15], "login": [0, 11], "an": [0, 1, 2, 3, 5, 7, 9, 10, 11, 13, 15, 16, 18], "can": [0, 3, 8, 9, 10, 11, 12, 13, 14, 15, 16, 18], "log": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 13, 14, 15, 18], "successfulli": 0, "401": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11], "unauthor": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10], "credenti": [0, 15], "get": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 16], "profil": [0, 5, 11, 16], "info": [0, 11, 13], "scope": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10], "read": [0, 2, 3, 5, 6, 7, 8, 9, 10, 11, 16], "data": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 13, 14, 16], "accepted_privacy_polici": 0, "admin": [0, 1, 2, 6, 7, 8, 9, 10, 11, 12, 13, 15], "fals": [0, 1, 2, 5, 7, 9, 10, 15], "bio": [0, 9], "null": [0, 1, 3, 7, 9, 10, 11], "birth_dat": [0, 9], "created_at": [0, 9], "sun": [0, 6, 9, 10], "14": [0, 5, 9, 10], "jul": [0, 6, 9, 10], "2019": [0, 6, 8, 9, 10], "09": [0, 9], "58": [0, 9, 11], "gmt": [0, 3, 5, 6, 9, 10], "date_format": 0, "dd": 0, "mm": 0, "yyyi": 0, "display_asc": 0, "sam": [0, 6, 9, 10], "com": [0, 1, 5, 9, 11, 15, 16], "email_to_confirm": 0, "first_nam": [0, 9], "imperial_unit": [0, 9], "is_act": [0, 2, 3, 7, 9], "last_nam": [0, 9], "locat": [0, 9, 15], "nb_sport": [0, 9], "nb_workout": [0, 9], "6": [0, 2, 3, 7, 9, 10, 12, 13, 15], "pictur": [0, 9, 10, 11], "record": [0, 4, 9, 10, 11, 13], "id": [0, 2, 3, 5, 6, 7, 8, 9, 10, 11, 16], "9": [0, 1, 6, 9, 13, 15], "record_typ": [0, 6, 9, 10], "AS": [0, 6, 9, 10], "sport_id": [0, 3, 6, 7, 8, 9, 10], "valu": [0, 3, 5, 6, 9, 10, 11, 13, 15, 16, 18], "18": [0, 6, 9, 10, 13, 15], "workout_d": [0, 6, 9, 10], "07": [0, 6, 9, 10], "08": [0, 3, 6, 9, 10], "00": [0, 3, 6, 9, 10], "workout_id": [0, 6, 9, 10], "hvybqybra7wwxpastwr4v2": [0, 6, 9, 10], "10": [0, 1, 3, 6, 9, 10, 13, 15], "fd": [0, 6, 9, 10], "13": [0, 6, 9, 10, 12, 13, 15], "ha": [0, 3, 6, 7, 9, 10, 11, 13, 14], "43": [0, 6, 9, 10, 11], "97": [0, 6, 9, 10, 11], "11": [0, 6, 9, 13, 15], "ld": [0, 6, 9, 10], "01": [0, 6, 8, 9, 10], "12": [0, 6, 9, 10, 15, 17], "m": [0, 6, 8, 9, 10], "sports_list": [0, 9], "4": [0, 2, 7, 8, 9, 10, 12, 13, 15], "start_elevation_at_zero": 0, "timezon": [0, 9, 10, 11, 13], "europ": [0, 9], "pari": [0, 9], "total_asc": [0, 8], "720": 0, "35": [0, 11], "total_dist": [0, 3, 8, 9], "67": [0, 8, 9], "895": [0, 9], "total_dur": [0, 3, 8, 9], "50": [0, 3, 8, 9, 11, 15], "27": [0, 5, 9, 13], "use_dark_mod": 0, "use_raw_gpx_spe": 0, "weekm": [0, 8, 9], "header": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 16], "author": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 15, 16], "oauth": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 14, 15], "2": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 13, 14, 15], "0": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15], "bearer": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10], "signatur": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10], "expir": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 12], "edit": [0, 11, 13], "write": [0, 1, 2, 3, 5, 7, 9, 10, 16], "updat": [0, 1, 2, 3, 7, 9, 10, 11, 13, 15], "first": [0, 3, 5, 13, 16], "name": [0, 5, 9, 11, 15], "last": [0, 11, 15], "biographi": 0, "birth": [0, 11], "date": [0, 8, 10, 11, 13], "format": [0, 8, 10, 11, 13], "y": [0, 8, 10, 15], "d": [0, 8, 10], "support": [0, 5, 11, 12, 13, 15, 16, 18], "default": [0, 3, 5, 8, 9, 10, 11, 13, 15], "date_str": 0, "correspond": [0, 15], "client": [0, 5, 11, 13, 15, 16], "mmm": 0, "do": [0, 1, 2, 3, 7, 8, 9, 10, 15], "local": [0, 11, 14, 15], "e": 0, "fr": [0, 9, 15], "gl": 0, "nl": 0, "de": [0, 2, 15], "nb": 0, "us": [0, 3, 5, 9, 10, 11, 12, 13, 14, 15, 16], "displai": [0, 10, 11, 12, 13, 14, 15, 16, 19], "app": [0, 5, 11, 14, 15, 16], "highest": [0, 6, 13], "ascent": [0, 6, 10, 11, 13], "total": [0, 3, 5, 8, 11, 13], "distanc": [0, 6, 10, 11, 13], "imperi": [0, 11, 13], "unit": [0, 11, 15], "elev": [0, 10, 11, 13, 15], "plot": 0, "start": [0, 8, 10, 11, 13, 15, 19], "zero": [0, 11, 13], "time": [0, 8, 10, 11, 13], "zone": 0, "interfac": [0, 11, 13, 14, 15], "dark": [0, 11, 13], "mode": [0, 11], "browser": [0, 11, 13], "unfilt": 0, "gpx": [0, 5, 10, 11, 13, 14, 15, 17], "calcul": [0, 8, 11, 13], "speed": [0, 6, 10, 11, 13, 15], "doe": [0, 3, 8, 9, 10, 11], "week": [0, 8, 11, 13], "mondai": [0, 8, 13], "don": 0, "t": [0, 11, 18], "match": [0, 10, 11, 13], "sport": [0, 1, 3, 4, 8, 10, 11, 15], "color": [0, 7, 11, 13], "000000": 0, "default_equipment_id": 0, "stopped_speed_threshold": [0, 7], "user_id": [0, 3], "int": [0, 2, 3, 5, 7, 10], "which": [0, 13], "ar": [0, 3, 5, 6, 8, 10, 11, 13, 14, 15, 16, 17, 19], "modifi": [0, 9, 11, 12, 15], "hexadecim": 0, "when": [0, 1, 11, 12, 13, 15], "ad": [0, 3, 10, 11, 12, 13], "workout": [0, 1, 3, 4, 5, 6, 7, 8, 11, 14, 16, 17, 19], "float": [0, 10], "stop": [0, 11, 13, 15], "threshold": [0, 11, 13], "gpxpy": [0, 11, 13, 15], "arrai": [0, 3, 5, 10], "equip": [0, 4, 10, 11, 16], "note": [0, 10, 11, 13, 15], "now": [0, 8, 10, 11, 13, 15], "one": [0, 3, 9, 10, 13], "associ": [0, 3, 5, 10, 11, 13], "equipment_id": [0, 10], "exist": [0, 3, 8, 9, 10, 11, 13, 14, 15], "delet": [0, 3, 5, 9, 10, 11, 12, 13], "reset": [0, 9, 11, 12, 13, 15], "given": [0, 5, 8, 13], "204": [0, 3, 5, 9, 10], "paramet": [0, 2, 3, 5, 7, 8, 9, 10, 11, 13, 15, 16], "No": [0, 3, 5, 9, 10, 11, 14], "multipart": [0, 5, 10], "form": [0, 5, 10, 11], "file": [0, 1, 10, 11, 12, 13, 14, 15, 17, 19], "imag": [0, 9, 10, 11, 13, 15, 19], "extens": [0, 10, 15], "jpg": 0, "png": [0, 10, 15], "gif": 0, "part": [0, 10], "select": [0, 10, 13], "413": [0, 10], "entiti": [0, 10], "too": [0, 10], "larg": [0, 10, 13, 15], "dure": [0, 3, 10], "size": [0, 1, 10, 11, 13, 15], "exce": [0, 3, 10, 11], "0mb": [0, 10], "NO": [0, 3, 5, 9, 10], "handl": [0, 11, 13, 15, 18], "process": [0, 11, 12, 15], "patch": [0, 1, 2, 3, 7, 9, 10], "It": [0, 9, 11, 13, 14, 16], "enabl": [0, 1, 9, 13, 15], "chang": [0, 3, 12, 13, 14, 15], "current": [0, 3, 9, 11], "address": [0, 13, 15], "inform": [0, 1, 11, 13, 14, 15], "anoth": [0, 3, 9, 13, 15], "new": [0, 3, 9, 12, 13, 15, 16], "new_password": 0, "miss": [0, 11], "logout": [0, 11], "blacklist": [0, 12], "out": 0, "access": [0, 5, 8, 11, 15, 16], "revok": [0, 5], "malform": 0, "other": [0, 3, 9, 15], "reason": 0, "export": [0, 11, 12, 13, 14, 15], "return": [0, 5, 6, 8, 9, 10, 11, 15], "creation": [0, 11, 13], "in_progress": 0, "byte": 0, "wed": 0, "mar": [0, 3], "2023": [0, 3, 15], "31": [0, 10, 13, 15], "17": [0, 10], "file_nam": 0, "archive_rgjsr3fht295ywnqr5yp": 0, "zip": [0, 1, 10, 11, 13], "file_s": 0, "924": 0, "ongo": 0, "complet": [0, 11], "download": [0, 10, 11, 13, 15, 19], "archiv": [0, 1, 11, 12, 13, 15], "archive_rgjsr3fhr5yp": 0, "x": [0, 10, 11, 15, 16], "gzip": 0, "filenam": 0, "config": [1, 11, 15, 18], "about": [1, 11, 13, 15, 16], "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, 15], "copi": [1, 15], "href": [1, 15], "www": [1, 15], "openstreetmap": [1, 11, 15], "org": [1, 15], "copyright": [1, 15], "contributor": [1, 11, 15, 17], "privacy_polici": 1, "privacy_policy_d": 1, "stats_workouts_limit": 1, "10000": [1, 10], "version": [1, 12, 13, 15], "weather_provid": 1, "authent": [1, 2, 4, 5, 6, 7, 8, 9, 10, 16], "instanc": [1, 5, 11, 13, 15, 16], "integ": [1, 2, 3, 5, 7, 8, 9, 10], "max": [1, 9, 10, 11, 12], "number": [1, 9, 10, 11, 12, 13, 15], "singl": [1, 9, 11, 13, 15], "statist": [1, 4], "greater": [1, 11], "than": [1, 3, 9, 11, 12, 13], "equal": 1, "upload": [1, 11, 12, 13, 15, 17, 19], "have": [1, 2, 3, 7, 8, 9, 10, 11, 13], "permiss": [1, 2, 3, 7, 8, 9, 10], "ping": 1, "health": 1, "check": [1, 7, 11, 15, 18], "pong": 1, "all": [2, 3, 5, 6, 7, 8, 9, 10, 11, 13, 15], "non": [2, 7, 14], "equipment_typ": [2, 3], "label": [2, 3, 7, 11, 13], "shoe": [2, 3, 13], "bike": [2, 3, 7, 10, 11, 13], "trainer": [2, 13], "kayak_boat": 2, "5": [2, 5, 7, 8, 9, 10, 12, 13, 15], "ski": [2, 13], "snowsho": [2, 11, 13], "has_equip": 2, "equipment_type_id": [2, 3], "NOT": [2, 3, 5, 7, 10], "owner": [3, 11, 13, 15], "see": [3, 11, 13, 14, 15, 16, 18], "some": [3, 9, 10, 11, 13, 14, 15, 16], "queri": [3, 5, 7, 8, 9, 10], "creation_d": [3, 10], "tue": 3, "21": 3, "06": [3, 5, 8], "default_for_sport_id": 3, "descript": [3, 5, 10, 11, 12, 13, 15], "fittracke": [3, 5, 12, 13, 15, 16, 17, 19], "2ukrviyshoakg8qsuknus4": 3, "my": 3, "total_mov": 3, "workouts_count": [3, 9], "29": 3, "second": [3, 10], "equipment_short_id": 3, "item": 3, "piec": [3, 13], "short": [3, 10], "201": [3, 10, 11], "from": [3, 5, 8, 10, 11, 13, 14, 16, 17], "brief": 3, "less": [3, 11], "perhap": 3, "longer": [3, 11, 13, 15, 18], "limit": [3, 11, 13], "option": [3, 5, 11, 12, 15, 16], "whether": 3, "mandatori": [3, 5, 8, 10, 11, 12, 15, 16], "same": [3, 11, 13], "sport_label": 3, "equipment_type_label": 3, "save": [3, 11, 13], "": [3, 9, 10, 11, 13, 15], "remov": [3, 9, 10, 11, 12, 13], "qrj7by6h2iyjsv8sersfgv": 3, "28": 3, "suppli": 3, "refresh": [3, 5, 11], "case": [3, 10, 13, 15], "incorrect": [3, 11, 13], "A": [3, 9, 11, 12, 13, 15, 18], "own": [3, 9, 13, 14], "unless": 3, "forc": 3, "ani": [3, 10, 15], "between": [3, 11, 13], "those": 3, "set": [3, 11, 12, 13, 15, 16, 18], "argument": [3, 12], "cannot": [3, 11, 13], "without": [3, 5, 8, 9, 10, 11, 13, 14], "account": [4, 9, 11, 12, 15, 17], "configur": [4, 11, 13, 15, 16], "oauth2": [4, 16], "pagin": [5, 9, 10], "page": [5, 9, 10, 11, 13], "parti": [5, 13, 14, 16], "client_descript": 5, "client_id": [5, 16], "o22a27s2abpuoxjbxv3ujdox": 5, "issued_at": 5, "thu": 5, "juli": 5, "2022": 5, "53": [5, 11], "import": [5, 11, 13, 15], "redirect_uri": 5, "callback": [5, 16], "websit": 5, "has_next": 5, "has_prev": 5, "client_secret": 5, "secret": [5, 15, 16], "client_nam": 5, "client_uri": 5, "list": [5, 11, 14, 15], "redirect": [5, 11, 16], "client_client_id": 5, "by_id": 5, "issu": [5, 13, 14, 15], "response_typ": [5, 16], "state": [5, 16], "uniqu": [5, 16], "prevent": [5, 15, 16], "cross": [5, 13, 15, 16], "site": [5, 16], "forgeri": [5, 16], "recommend": [5, 15, 16], "code_challeng": [5, 16], "gener": [5, 11, 12, 13, 15, 16], "verifi": [5, 16], "pkce": [5, 16], "code_challenge_method": [5, 16], "method": [5, 15, 16], "challeng": [5, 16], "s256": [5, 16], "authlib": [5, 15, 16], "librari": [5, 11, 15, 16], "access_token": 5, "roehv64thcg28wcewzhrnvlusoduvw8nvnhkcml57": 5, "expires_in": 5, "864000": 5, "refresh_token": 5, "nuv9cy8vqonrqkhtz5pqaq2zw7msh0mornpjr14amswd6f6i": 5, "token_typ": 5, "expires_at": 5, "1658660147": 5, "0667062": 5, "grant_typ": 5, "grant": [5, 16], "authorization_cod": [5, 16], "code_verifi": 5, "follow": [6, 13, 15, 16, 17, 18], "averag": [6, 8, 10, 11, 13], "farthest": [6, 11, 13], "longest": [6, 11, 13], "durat": [6, 10, 11, 13], "maximum": [6, 10, 11, 12, 13], "is_active_for_us": 7, "cycl": [7, 11, 13], "transport": [7, 11, 13], "hike": [7, 11, 13], "mountain": [7, 11, 13], "run": [7, 11, 12, 13, 15, 16], "walk": [7, 11, 13], "check_workout": 7, "has_workout": 7, "stat": [8, 11], "user_nam": [8, 9], "by_tim": 8, "For": [8, 10, 13, 15, 16], "2018": [8, 10], "2017": [8, 10], "total_workout": 8, "203": 8, "156": [8, 11], "15": [8, 10, 12, 13, 15], "282": [8, 11], "12341": 8, "150": 8, "178": [8, 11], "47": [8, 10, 11], "9960": 8, "46": [8, 11], "78": 8, "613": 8, "1267": 8, "average_asc": 8, "101": [8, 11], "average_dist": 8, "average_dur": 8, "7641": 8, "average_spe": 8, "48": 8, "average_desc": 8, "59": [8, 11], "33": [8, 11], "3320": 8, "16": [8, 10, 13], "99": [8, 11], "95": [8, 11], "end": [8, 10], "frame": 8, "sundai": [8, 10, 13], "month": [8, 11, 13], "year": [8, 13], "period": [8, 13, 15], "by_sport": 8, "uploads_dir_s": 8, "1000": 8, "regardless": 9, "right": [9, 11, 12, 13, 15, 16], "order_bi": [9, 10], "par_pag": 9, "is_admin": 9, "sat": 9, "20": [9, 13], "03": [9, 10], "per_pag": [9, 10], "per": [9, 10, 11, 15], "q": 9, "order": [9, 10, 11, 13, 16], "sort": [9, 10, 13], "asc": [9, 10], "desc": [9, 10], "criteria": [9, 10], "detail": [9, 11, 15, 19], "jpeg": 9, "add": [9, 11, 12, 13, 14], "new_email": 9, "reset_password": 9, "differ": [9, 11, 13], "except": [9, 13, 15, 18], "he": 9, "john_do": 9, "your": [9, 13, 14, 15], "02": 10, "least": 10, "ave_spe": 10, "bound": 10, "51": 10, "descent": [10, 11, 13], "04": 10, "kjxavsturjvoah2wvcegef": 10, "map": [10, 11, 13, 14, 19], "max_alt": 10, "max_spe": 10, "min_alt": 10, "modification_d": 10, "move": [10, 11], "next_workout": 10, "paus": [10, 11], "previous_workout": 10, "mon": 10, "jan": 10, "segment": [10, 11, 13], "titl": [10, 11, 13], "weather_end": 10, "weather_start": 10, "with_gpx": 10, "100": [10, 11, 13], "insensit": [10, 15], "distance_from": 10, "minim": [10, 16], "distance_to": 10, "maxim": 10, "duration_from": 10, "h": [10, 13], "duration_to": 10, "ave_speed_from": 10, "ave_speed_to": 10, "max_speed_from": 10, "max_speed_to": 10, "none": 10, "workout_short_id": 10, "57": [10, 11], "45": 10, "22": 10, "morn": 10, "leaflet": [10, 15], "chart_data": 10, "chart": [10, 11, 13, 15], "j": [10, 11, 15], "279": [10, 11], "latitud": 10, "5078118": 10, "longitud": 10, "1232004": 10, "63": 10, "fri": 10, "44": [10, 11], "7": [10, 12, 13, 15, 16], "7380": 10, "280": [10, 11], "5079733": 10, "1234538": 10, "39": 10, "segment_id": 10, "map_id": 10, "fa33f4d996844a5c73ecd1ae24456ab8": 10, "1563529507772": 10, "map_til": 10, "z": [10, 15], "tile": [10, 11, 13], "c": [10, 15], "4109": 10, "2930": 10, "subdomain": [10, 11, 15], "zoom": 10, "index": 10, "along": 10, "axi": [10, 11, 13], "xml": 10, "doubl": 10, "quot": 10, "escap": 10, "length": 10, "otherwis": [10, 13, 15], "thei": [10, 15, 16], "truncat": 10, "no_gpx": 10, "uuid": [10, 11], "km": [10, 13], "255": 10, "replac": [10, 11, 15], "empti": [10, 11, 12, 15], "introduc": 11, "field": [11, 13], "visibl": [11, 13], "next": [11, 13], "125": [11, 13], "remain": [11, 13], "privat": [11, 13], "610": 11, "621": 11, "mai": [11, 13, 14, 15], "contain": [11, 13, 15], "special": [11, 15], "622": 11, "pr": 11, "616": 11, "dutch": [11, 13], "617": 11, "italian": [11, 13], "618": 11, "polish": [11, 13], "620": 11, "624": 11, "spanish": [11, 13], "625": 11, "galician": [11, 13], "basqu": [11, 13], "626": 11, "german": [11, 13, 15], "631": 11, "bulgarian": [11, 13], "czech": [11, 13], "72": 11, "82": 11, "norwegian": [11, 13], "bokm\u00e5l": [11, 13], "52": 11, "portugues": [11, 13], "628": 11, "markdown": [11, 13], "thank": [11, 15, 17], "boosterl": 11, "byakurau": 11, "dotlambda": 11, "erral": 11, "gallegonovato": 11, "qwerty287": 11, "xmgz": 11, "databas": [11, 13, 15, 18], "migrat": [11, 12, 15], "upgrad": 11, "614": 11, "607": 11, "608": 11, "609": 11, "612": 11, "73": 11, "91": 11, "98": 11, "jmlich": 11, "mara21": 11, "604": 11, "swimrun": [11, 13], "598": 11, "cli": [11, 12, 13, 15], "cleanup": 11, "600": 11, "603": 11, "590": 11, "591": 11, "592": 11, "593": 11, "fb10602": 11, "92": 11, "595": 11, "ci": [11, 15], "up": [11, 13, 14], "test": [11, 15], "confusedalex": 11, "lukasitali": 11, "simontb": 11, "slothj": 11, "566": 11, "section": 11, "575": 11, "587": [11, 15], "588": 11, "click": 11, "checkbox": 11, "564": 11, "565": 11, "571": 11, "582": 11, "583": 11, "simplifi": [11, 16], "docker": 11, "deploy": 11, "jderuit": 11, "pluja": 11, "f2aec30": 11, "strength": 11, "estim": 11, "563": 11, "init": 11, "550": 11, "typo": 11, "par": [11, 15], "instead": [11, 13], "551": 11, "555": 11, "558": 11, "74": 11, "88": 11, "556": 11, "refacto": 11, "557": 11, "prepar": 11, "sqlalchemi": [11, 15, 18], "voodoopt": 11, "546": 11, "545": 11, "urtzai": 11, "540": 11, "542": 11, "544": 11, "543": 11, "tool": [11, 13, 14, 15], "black": 11, "flake8": 11, "isort": 11, "ruff": 11, "ondrejzivni": 11, "527": 11, "531": 11, "navig": 11, "mobil": [11, 14], "532": 11, "footer": 11, "536": 11, "526": 11, "533": 11, "534": 11, "537": 11, "538": 11, "528": 11, "readm": 11, "rework": 11, "530": 11, "specifi": 11, "agplv3": 11, "licens": [11, 14, 15], "comradekingu": 11, "let": 11, "filter": [11, 13], "259": 11, "512": 11, "abil": 11, "508": 11, "3b6fa25": 11, "tabl": 11, "small": 11, "resolut": 11, "51758b4": 11, "hide": [11, 13], "507": 11, "510": 11, "511": 11, "521": 11, "524": 11, "89": 11, "75": 11, "502": 11, "deprec": 11, "command": [11, 13, 14, 15], "506": 11, "jat255": 11, "504": 11, "fail": [11, 19], "496": 11, "499": 11, "84": 11, "60": 11, "bjornclauw": 11, "mariuz": 11, "495": 11, "menu": 11, "490": 11, "eu": 11, "494": 11, "instal": [11, 14], "python": [11, 15, 16], "b748459": 11, "alert": 11, "481": 11, "keyboard": 11, "dropdown": [11, 13], "3821e37": 11, "make": [11, 15], "calendar": [11, 13], "arrow": [11, 13], "488": 11, "489": 11, "482": 11, "484": 11, "aff4d68": 11, "action": 11, "8aa4cff": 11, "loader": 11, "theme": [11, 13], "478": 11, "clickabl": 11, "dashboard": 11, "479": 11, "ui": 11, "476": 11, "477": 11, "475": 11, "build": [11, 15], "poetri": [11, 15], "core": 11, "traxi": 11, "koen": 11, "474": 11, "link": [11, 15], "6e215aa": 11, "background": 11, "modal": 11, "473": 11, "113": 11, "464": 11, "471": 11, "trekk": [11, 13], "469": 11, "ou": 11, "472": 11, "468": 11, "456": 11, "drop": 11, "postgresql": [11, 15, 18], "85": 11, "61": 11, "davidhenrythoreau": 11, "224": 11, "result": 11, "444": 11, "In": [11, 13], "addit": [11, 13, 15], "depend": [11, 13], "449": 11, "vue": [11, 15], "450": 11, "441": 11, "433": 11, "encod": [11, 15], "427": 11, "431": 11, "428": 11, "2bcff2e": 11, "flask": [11, 15], "436": 11, "438": 11, "workflow": 11, "421": 11, "darkski": [11, 15], "weather": [11, 13], "env": [11, 15], "426": 11, "astridx": 11, "422": 11, "e2": 11, "packag": [11, 15], "411": 11, "variou": 11, "416": 11, "410": 11, "415": 11, "417": 11, "418": 11, "mariusz": 11, "407": 11, "409": 11, "open": [11, 13, 14, 15], "water": [11, 13], "swim": [11, 13], "398": 11, "402": 11, "399": 11, "406": 11, "56": 11, "380": 11, "390": 11, "391": 11, "paraglid": [11, 13], "384": 11, "inconsist": 11, "gp": [11, 13], "393": 11, "pil": 11, "modul": [11, 15], "attribut": [11, 15], "antialia": 11, "394": 11, "397": 11, "386": 11, "contribut": 11, "md": 11, "388": 11, "395": 11, "cc3fe1c": 11, "42": 11, "dkm": 11, "partial": 11, "yet": [11, 14], "weblat": [11, 13], "minimum": [11, 13], "351": 11, "370": 11, "371": 11, "375": 11, "thovi98": 11, "376": 11, "1375986": 11, "furo": 11, "377": 11, "354": 11, "374": 11, "virtualenv": [11, 15], "87": 11, "36": 11, "366": 11, "369": 11, "host": [11, 15], "367": 11, "358": 11, "359": 11, "overlap": 11, "350": 11, "352": 11, "356": 11, "357": 11, "365": 11, "gnu": 11, "ewm": 11, "among": 11, "below": [11, 15], "sinc": [11, 15, 16], "servic": [11, 15], "shut": [11, 15], "down": [11, 15], "march": [11, 15], "319": 11, "329": 11, "sticki": 11, "333": 11, "338": 11, "relev": 11, "328": 11, "altitud": [11, 13], "track": [11, 14], "b29ed7a": 11, "250": 11, "320": 11, "323": 11, "06ba975": 11, "bcc568e": 11, "ea0ac99": 11, "a458f5f": 11, "075aeb9": 11, "60e164d": 11, "318": 11, "lavoi": 11, "mondstern": 11, "314": 11, "315": 11, "custom": [11, 13, 15], "defin": [11, 13], "review": [11, 13], "lastli": 11, "301": [11, 15], "304": 11, "305": 11, "307": 11, "posit": [11, 13], "297": 11, "308": 11, "310": 11, "290": 11, "294": 11, "postgresql10": 11, "265": 11, "implement": [11, 16], "altern": 11, "visualcross": 11, "environ": [11, 12, 18], "variabl": [11, 18], "weather_api_provid": [11, 15], "287": 11, "289": 11, "dperruso": 11, "c88a515": 11, "f96dcef": 11, "278": 11, "270": 11, "nederland": 11, "258": 11, "pars": [11, 15], "area": 11, "271": 11, "273": 11, "274": 11, "parallel": 11, "275": 11, "worker": [11, 12, 15, 18], "entri": [11, 15], "point": [11, 15], "fittrackee_work": [11, 15], "dramatiq": [11, 12, 15], "3c8d9c2": 11, "trail": [11, 13], "comma": [11, 15], "dev": 11, "264": 11, "white": 11, "grai": 11, "266": 11, "260": 11, "261": 11, "should": [11, 13, 15], "still": [11, 13, 14, 15], "need": [11, 13, 15, 16], "b1536fc": 11, "257": 11, "bodi": [11, 15, 16], "nginx": [11, 13, 15, 16, 18], "112": 11, "244": 11, "virtual": [11, 13], "ride": 11, "246": 11, "247": 11, "microsecond": 11, "252": 11, "242": 11, "241": 11, "239": 11, "cb9d02f": 11, "231": 11, "236": 11, "rate": 11, "232": 11, "hidden": [11, 13], "237": 11, "212": 11, "230": 11, "problem": 11, "225": 11, "grammar": 11, "skylan0916": 11, "execut": 11, "lower": 11, "v0": [11, 15], "postgr": [11, 18], "213": 11, "measur": 11, "ft": 11, "mi": 11, "223": 11, "icon": [11, 15], "167": 11, "162": 11, "fmstrat": 11, "210": 11, "could": 11, "staticmap_subdomain": [11, 15], "209": 11, "multipl": 11, "gorgobacka": 11, "And": 11, "detect": 11, "208": 11, "card": 11, "html": 11, "197": 11, "196": 11, "manag": [11, 12, 15], "190": 11, "were": 11, "193": 11, "192": 11, "191": 11, "layout": 11, "includ": 11, "195": 11, "affect": [11, 13], "previous": 11, "cc4287e": 11, "offset": 11, "befor": [11, 13, 15], "possibl": [11, 13, 14, 15], "smtp": [11, 15], "reduc": 11, "pre": 11, "requisit": 11, "To": [11, 15, 16], "180": 11, "tl": [11, 15], "177": 11, "screen": [11, 13], "175": 11, "173": 11, "171": 11, "correctli": 11, "sent": [11, 13, 15, 16], "155": 11, "106": 11, "169": 11, "161": 11, "160": 11, "sever": [11, 13, 14, 15], "danielsiersleben": 11, "report": 11, "initi": [11, 15], "149": 11, "initialis": 11, "152": 11, "autoescap": 11, "jinja": 11, "templat": 11, "151": 11, "sanit": 11, "input": 11, "serv": [11, 15], "warn": [11, 13], "launch": 11, "w": 11, "script": 11, "entrypoint": 11, "avoid": [11, 13], "product": 11, "dotenv": 11, "146": 11, "145": 11, "model": 11, "140": 11, "fullscreen": 11, "control": [11, 13, 15], "138": 11, "135": 11, "finish": 11, "marker": 11, "134": 11, "wind": [11, 13], "direct": [11, 13], "877fa0f": 11, "131": 11, "129": 11, "127": [11, 15], "legitim": 11, "uri": 11, "localhost": [11, 15], "123": 11, "121": 11, "116": 11, "better": [11, 16], "button": 11, "graph": 11, "115": 11, "min": 11, "90": 11, "seem": 11, "104": 11, "switch": 11, "full": [11, 13], "develop": [11, 12, 14], "109": 11, "slow": 11, "movement": 11, "93": 11, "paf38": 11, "83": 11, "static": [11, 13, 15], "keep": [11, 14, 15], "default_staticmap": [11, 15], "81": 11, "textarea": 11, "dai": [11, 12, 13, 15], "80": [11, 15], "79": 11, "rebuild": 11, "javascript": [11, 15], "due": 11, "engin": [11, 15, 18], "database_url": [11, 15, 18], "exceed": 11, "71": 11, "70": 11, "66": 11, "64": 11, "shown": [11, 16, 19], "62": 11, "refactor": 11, "evalu": [11, 15], "purpos": [11, 15], "standard": [11, 15], "term": [11, 15], "directori": [11, 13, 15], "also": [11, 12, 13, 14, 15], "major": 11, "becom": 11, "more": [11, 12, 13, 14, 15], "easi": 11, "been": [11, 14], "renam": 11, "layer": [11, 15], "thunderforest": [11, 15], "outdoor": [11, 13, 14, 15], "54": 11, "redi": [11, 12, 15], "side": 11, "4c3fc34": 11, "34614d5": 11, "spinner": 11, "load": [11, 18], "b862a77": 11, "2e1ee2c": 11, "interceptor": 11, "rout": [11, 15], "definit": 11, "weekend": 11, "40": 11, "i18n": 11, "41": 11, "show": [11, 12, 15], "mous": 11, "over": 11, "choos": [11, 13], "37": 11, "34": 11, "anymor": 11, "pipenv": 11, "tooltip": [11, 13], "even": [11, 13], "enter": [11, 13], "kei": [11, 13, 15], "search": 11, "view": [11, 13, 15], "usag": [12, 15], "arg": [12, 15], "help": [12, 15], "exit": [12, 15], "appli": 12, "relat": [12, 13, 15, 16], "random": 12, "two": 12, "letter": 12, "iso": 12, "639": 12, "fall": 12, "back": 12, "incomplet": 12, "store": [13, 14, 16], "kind": 13, "encrypt": 13, "With": [13, 15], "street": [13, 14], "electr": 13, "19": 13, "row": 13, "alpin": 13, "countri": 13, "overridden": 13, "analyz": 13, "wai": [13, 15], "specif": [13, 15], "moment": 13, "manual": 13, "metric": 13, "system": [13, 15], "occur": 13, "origin": 13, "particular": 13, "third": [13, 14, 16], "visual": [13, 15], "sourc": 13, "indic": 13, "come": 13, "There": [13, 15], "perform": 13, "reach": 13, "recent": 13, "On": [13, 15], "line": [13, 14, 15], "light": 13, "accord": 13, "exclud": 13, "extrem": 13, "overrid": 13, "appear": 13, "kayak": 13, "boat": 13, "its": [13, 15], "each": 13, "although": 13, "happen": 13, "recalcul": 13, "automat": 13, "deactiv": 13, "being": 13, "individu": 13, "1mb": [13, 15], "10mb": 13, "000": 13, "fetch": [13, 16], "necessari": [13, 15], "like": [13, 15], "syntax": 13, "adapt": [13, 15], "discours": 13, "lock": 13, "via": [13, 15], "french": 13, "releas": [13, 15], "them": 14, "android": 14, "exhaust": 14, "runner": 14, "gpl": 14, "v3": 14, "opentrack": 14, "apach": 14, "fitotrack": 14, "under": [14, 15], "heavi": [14, 15], "featur": [14, 15], "unstabl": [14, 15], "document": [14, 15, 16, 18], "troubleshoot": 14, "clone": 15, "repositori": 15, "so": [15, 16], "step": 15, "describ": 15, "linux": 15, "archlinux": 15, "base": 15, "o": 15, "ubuntu": 15, "oper": 15, "encount": 15, "guid": 15, "uberspac": 15, "debian": [15, 17], "net": 15, "written": 15, "typescript": 15, "staticmap": 15, "coordin": 15, "task": 15, "queue": 15, "gunicorn": [15, 18], "vue3": 15, "vuex": 15, "logo": 15, "made": 15, "freepik": 15, "flaticon": 15, "fork": 15, "awesom": 15, "node": 15, "yarn": 15, "compos": 15, "makefil": 15, "flask_app": 15, "pwd": 15, "__main__": 15, "py": 15, "els": 15, "port": 15, "5000": 15, "app_set": 15, "productionconfig": 15, "app_secret_kei": 15, "strong": 15, "jwt": 15, "app_work": 15, "spawn": 15, "app_log": 15, "path": [15, 18], "upload_fold": [15, 18], "absolut": [15, 18], "where": 15, "folder": 15, "application_directori": 15, "5432": 15, "begin": 15, "database_disable_pool": 15, "pool": 15, "directli": 15, "ui_url": 15, "email_url": [15, 18], "sender_email": 15, "sender": 15, "redis_url": 15, "workers_process": 15, "api_rate_limit": 15, "300": 15, "minut": 15, "tile_server_url": 15, "23": 15, "b": 15, "osm": 15, "franc": 15, "target": 15, "_blank": 15, "rel": 15, "noopen": 15, "noreferr": 15, "komoot": 15, "weather_api_kei": 15, "weather_api": 15, "vite_app_api_url": 15, "26": 15, "vue_app_api_url": 15, "unencrypt": 15, "25": 15, "ssl": 15, "465": 15, "starttl": 15, "office365": 15, "work": 15, "omit": 15, "old": 15, "notif": 15, "readi": 15, "24": 15, "passwordwith": 15, "40and": 15, "26and": 15, "3f": 15, "apikei": 15, "xxxx": 15, "expect": 15, "osmfr": 15, "fond": 15, "cart": 15, "mention": 15, "legal": 15, "nofollow": 15, "sou": 15, "nbsp": 15, "creativecommon": 15, "sa": 15, "licenc": 15, "cc": 15, "BY": 15, "chosen": 15, "randomli": 15, "ip": 15, "fix": 15, "window": 15, "strategi": 15, "subject": 15, "asset": 15, "notat": 15, "separ": [15, 16], "hour": 15, "mainten": 15, "diagnost": 15, "util": 15, "clear": 15, "enumer": 15, "histor": 15, "hourli": 15, "discontinu": 15, "simplest": 15, "pip": 15, "WITH": 15, "schema": 15, "privileg": 15, "nano": 15, "ftcli": 15, "db": 15, "systemd": 15, "project": 15, "repo": 15, "git": 15, "github": 15, "samr1": 15, "cd": 15, "3000": 15, "wget": 15, "tar": 15, "gz": 15, "xzf": 15, "mv": 15, "sql": 15, "backup": 15, "pg_dump": 15, "semant": 15, "backward": 15, "incompat": 15, "u": 15, "changelog": 15, "restart": 15, "pull": 15, "overwrit": 15, "cp": 15, "r": 15, "One": 15, "proxi": [15, 16], "pass": 15, "network": 15, "startlimitintervalsec": 15, "simpl": 15, "alwai": 15, "restartsec": 15, "standardoutput": 15, "syslog": 15, "standarderror": 15, "syslogidentifi": 15, "workingdirectori": 15, "home": 15, "execstart": 15, "venv": 15, "bin": 15, "create_app": 15, "logfil": 15, "wantedbi": 15, "multi": 15, "higher": 15, "timeout": [15, 18], "OF": 15, "listen": 15, "443": 15, "http2": 15, "server_nam": 15, "ssl_certif": 15, "fullchain": 15, "pem": 15, "ssl_certificate_kei": 15, "privkei": 15, "how": 15, "larger": [15, 18], "ll": 15, "uncom": 15, "want": 15, "client_max_body_s": [15, 18], "1m": 15, "proxy_pass": 15, "proxy_redirect": 15, "proxy_set_head": [15, 16], "real": 15, "remote_addr": 15, "forward": [15, 16], "proxy_add_x_forwarded_for": 15, "proto": [15, 16], "scheme": [15, 16], "request_uri": 15, "suitabl": 15, "8025": 15, "mailhog": 15, "shell": 15, "insid": 15, "fittrackee_cli": 15, "lint": 15, "fittrackee_ynh": 15, "mynixo": 15, "nixpkg": 15, "fit": [15, 17], "tracke": 15, "rest": 16, "whose": 16, "most": 16, "interact": 16, "tab": 16, "exchang": 16, "secur": 16, "3rd": 16, "fittrackee_host": 16, "space": 16, "3aread": 16, "3awrit": 16, "behind": 16, "aaron": 16, "parecki": 16, "oauthlib": 16, "session": 16, "strava": 17, "garmin": 17, "synchron": 17, "fittrackee_instal": 17, "sh": 17, "netinstal": 17, "exc": 18, "nosuchmoduleerror": 18, "plugin": 18, "dialect": 18, "invalidemailurlschem": 18, "increas": 18, "critic": 18}, "objects": {"": [[0, 0, 1, "post--api-auth-account-confirm", "/api/auth/account/confirm"], [0, 1, 1, "get--api-auth-account-export", "/api/auth/account/export"], [0, 1, 1, "get--api-auth-account-export-(string-file_name)", "/api/auth/account/export/(string:file_name)"], [0, 0, 1, "post--api-auth-account-export-request", "/api/auth/account/export/request"], [0, 0, 1, "post--api-auth-account-privacy-policy", "/api/auth/account/privacy-policy"], [0, 0, 1, "post--api-auth-account-resend-confirmation", "/api/auth/account/resend-confirmation"], [0, 0, 1, "post--api-auth-email-update", "/api/auth/email/update"], [0, 0, 1, "post--api-auth-login", "/api/auth/login"], [0, 0, 1, "post--api-auth-logout", "/api/auth/logout"], [0, 0, 1, "post--api-auth-password-reset-request", "/api/auth/password/reset-request"], [0, 0, 1, "post--api-auth-password-update", "/api/auth/password/update"], [0, 2, 1, "delete--api-auth-picture", "/api/auth/picture"], [0, 0, 1, "post--api-auth-picture", "/api/auth/picture"], [0, 1, 1, "get--api-auth-profile", "/api/auth/profile"], [0, 0, 1, "post--api-auth-profile-edit", "/api/auth/profile/edit"], [0, 3, 1, "patch--api-auth-profile-edit-account", "/api/auth/profile/edit/account"], [0, 0, 1, "post--api-auth-profile-edit-preferences", "/api/auth/profile/edit/preferences"], [0, 0, 1, "post--api-auth-profile-edit-sports", "/api/auth/profile/edit/sports"], [0, 2, 1, "delete--api-auth-profile-reset-sports-(sport_id)", "/api/auth/profile/reset/sports/(sport_id)"], [0, 0, 1, "post--api-auth-register", "/api/auth/register"], [1, 1, 1, "get--api-config", "/api/config"], [1, 3, 1, "patch--api-config", "/api/config"], [2, 1, 1, "get--api-equipment-types", "/api/equipment-types"], [2, 1, 1, "get--api-equipment-types-(int-equipment_type_id)", "/api/equipment-types/(int:equipment_type_id)"], [2, 3, 1, "patch--api-equipment-types-(int-equipment_type_id)", "/api/equipment-types/(int:equipment_type_id)"], [3, 1, 1, "get--api-equipments", "/api/equipments"], [3, 0, 1, "post--api-equipments", "/api/equipments"], [3, 2, 1, "delete--api-equipments-(string-equipment_short_id)", "/api/equipments/(string:equipment_short_id)"], [3, 1, 1, "get--api-equipments-(string-equipment_short_id)", "/api/equipments/(string:equipment_short_id)"], [3, 3, 1, "patch--api-equipments-(string-equipment_short_id)", "/api/equipments/(string:equipment_short_id)"], [3, 0, 1, "post--api-equipments-(string-equipment_short_id)-refresh", "/api/equipments/(string:equipment_short_id)/refresh"], [5, 1, 1, "get--api-oauth-apps", "/api/oauth/apps"], [5, 0, 1, "post--api-oauth-apps", "/api/oauth/apps"], [5, 2, 1, "delete--api-oauth-apps-(int-client_id)", "/api/oauth/apps/(int:client_id)"], [5, 1, 1, "get--api-oauth-apps-(int-client_id)-by_id", "/api/oauth/apps/(int:client_id)/by_id"], [5, 0, 1, "post--api-oauth-apps-(int-client_id)-revoke", "/api/oauth/apps/(int:client_id)/revoke"], [5, 1, 1, "get--api-oauth-apps-(string-client_client_id)", "/api/oauth/apps/(string:client_client_id)"], [5, 0, 1, "post--api-oauth-authorize", "/api/oauth/authorize"], [5, 0, 1, "post--api-oauth-revoke", "/api/oauth/revoke"], [5, 0, 1, "post--api-oauth-token", "/api/oauth/token"], [1, 1, 1, "get--api-ping", "/api/ping"], [6, 1, 1, "get--api-records", "/api/records"], [7, 1, 1, "get--api-sports", "/api/sports"], [7, 1, 1, "get--api-sports-(int-sport_id)", "/api/sports/(int:sport_id)"], [7, 3, 1, "patch--api-sports-(int-sport_id)", "/api/sports/(int:sport_id)"], [8, 1, 1, "get--api-stats-(user_name)-by_sport", "/api/stats/(user_name)/by_sport"], [8, 1, 1, "get--api-stats-(user_name)-by_time", "/api/stats/(user_name)/by_time"], [8, 1, 1, "get--api-stats-all", "/api/stats/all"], [9, 1, 1, "get--api-users", "/api/users"], [9, 2, 1, "delete--api-users-(user_name)", "/api/users/(user_name)"], [9, 1, 1, "get--api-users-(user_name)", "/api/users/(user_name)"], [9, 3, 1, "patch--api-users-(user_name)", "/api/users/(user_name)"], [9, 1, 1, "get--api-users-(user_name)-picture", "/api/users/(user_name)/picture"], [10, 1, 1, "get--api-workouts", "/api/workouts"], [10, 0, 1, "post--api-workouts", "/api/workouts"], [10, 2, 1, "delete--api-workouts-(string-workout_short_id)", "/api/workouts/(string:workout_short_id)"], [10, 1, 1, "get--api-workouts-(string-workout_short_id)", "/api/workouts/(string:workout_short_id)"], [10, 3, 1, "patch--api-workouts-(string-workout_short_id)", "/api/workouts/(string:workout_short_id)"], [10, 1, 1, "get--api-workouts-(string-workout_short_id)-chart_data", "/api/workouts/(string:workout_short_id)/chart_data"], [10, 1, 1, "get--api-workouts-(string-workout_short_id)-chart_data-segment-(int-segment_id)", "/api/workouts/(string:workout_short_id)/chart_data/segment/(int:segment_id)"], [10, 1, 1, "get--api-workouts-(string-workout_short_id)-gpx", "/api/workouts/(string:workout_short_id)/gpx"], [10, 1, 1, "get--api-workouts-(string-workout_short_id)-gpx-download", "/api/workouts/(string:workout_short_id)/gpx/download"], [10, 1, 1, "get--api-workouts-(string-workout_short_id)-gpx-segment-(int-segment_id)", "/api/workouts/(string:workout_short_id)/gpx/segment/(int:segment_id)"], [10, 1, 1, "get--api-workouts-map-(map_id)", "/api/workouts/map/(map_id)"], [10, 0, 1, "post--api-workouts-no_gpx", "/api/workouts/no_gpx"], [15, 4, 1, "-", "API_RATE_LIMITS"], [15, 4, 1, "-", "APP_LOG"], [15, 4, 1, "-", "APP_SECRET_KEY"], [15, 4, 1, "-", "APP_SETTINGS"], [15, 4, 1, "-", "APP_WORKERS"], [15, 4, 1, "-", "DATABASE_DISABLE_POOLING"], [15, 4, 1, "-", "DATABASE_URL"], [15, 4, 1, "-", "DEFAULT_STATICMAP"], [15, 4, 1, "-", "EMAIL_URL"], [15, 4, 1, "-", "FLASK_APP"], [15, 4, 1, "-", "HOST"], [15, 4, 1, "-", "MAP_ATTRIBUTION"], [15, 4, 1, "-", "PORT"], [15, 4, 1, "-", "REDIS_URL"], [15, 4, 1, "-", "SENDER_EMAIL"], [15, 4, 1, "-", "STATICMAP_SUBDOMAINS"], [15, 4, 1, "-", "TILE_SERVER_URL"], [15, 4, 1, "-", "UI_URL"], [15, 4, 1, "-", "UPLOAD_FOLDER"], [15, 4, 1, "-", "VITE_APP_API_URL"], [15, 4, 1, "-", "WEATHER_API_KEY"], [15, 4, 1, "envvar-WEATHER_API_PROVIDER", "WEATHER_API_PROVIDER \ud83c\udd95"], [15, 4, 1, "-", "WORKERS_PROCESSES"]], "/api/workouts/map_tile/(s)/(z)/(x)/(y)": [[10, 1, 1, "get--api-workouts-map_tile-(s)-(z)-(x)-(y).png", "png"]]}, "objtypes": {"0": "http:post", "1": "http:get", "2": "http:delete", "3": "http:patch", "4": "std:envvar"}, "objnames": {"0": ["http", "post", "HTTP post"], "1": ["http", "get", "HTTP get"], "2": ["http", "delete", "HTTP delete"], "3": ["http", "patch", "HTTP patch"], "4": ["std", "envvar", "environment variable"]}, "titleterms": {"authent": 0, "account": [0, 13], "configur": 1, "equip": [2, 3, 13], "type": [2, 13], "api": [4, 15], "document": [4, 11], "endpoint": 4, "oauth2": [5, 12], "record": 6, "sport": [7, 13], "statist": [8, 11, 13], "user": [9, 12, 13], "workout": [10, 13, 18], "chang": 11, "log": 11, "version": 11, "0": [11, 16], "8": 11, "9": 11, "2024": 11, "09": 11, "21": 11, "featur": [11, 13], "enhanc": 11, "bug": 11, "fix": 11, "translat": [11, 13], "misc": 11, "01": 11, "7": 11, "08": 11, "25": 11, "6": 11, "03": 11, "5": 11, "06": 11, "29": 11, "4": 11, "05": 11, "22": 11, "3": 11, "2": [11, 16], "1": 11, "04": 11, "32": 11, "10": 11, "31": 11, "02": 11, "30": 11, "28": 11, "2023": 11, "12": 11, "23": 11, "27": 11, "20": 11, "26": 11, "11": 11, "19": 11, "24": 11, "14": 11, "07": 11, "15": 11, "18": 11, "17": 11, "16": 11, "13": 11, "2022": 11, "issu": 11, "close": 11, "pull": 11, "request": 11, "secur": 11, "new": 11, "2021": 11, "2020": 11, "fittracke": [11, 14, 18], "pypi": [11, 15], "administr": [11, 13, 18], "improv": 11, "minor": 11, "avail": 11, "french": 11, "2019": 11, "first": 11, "releas": 11, "2018": 11, "command": 12, "line": 12, "interfac": 12, "databas": 12, "ftcli": 12, "db": 12, "drop": 12, "upgrad": [12, 15], "clean": 12, "clean_arch": 12, "clean_token": 12, "creat": 12, "export_arch": 12, "updat": 12, "prefer": 13, "oauth": [13, 16], "app": 13, "applic": 13, "screenshot": 13, "dashboard": 13, "detail": [13, 18], "list": 13, "tabl": 14, "content": 14, "instal": [15, 17], "main": 15, "depend": 15, "prerequisit": 15, "environ": 15, "variabl": 15, "email": 15, "map": [15, 18], "tile": 15, "server": 15, "rate": 15, "limit": 15, "weather": 15, "data": 15, "from": 15, "sourc": 15, "dev": 15, "product": 15, "prod": 15, "deploy": 15, "docker": 15, "develop": 15, "yunohost": 15, "nixo": 15, "scope": 16, "flow": 16, "resourc": 16, "third": 17, "parti": 17, "tool": 17, "import": 17, "script": 17, "fail": 18, "start": 18, "imag": 18, "ar": 18, "displai": 18, "i": 18, "shown": 18, "upload": 18, "download": 18, "file": 18, "troubleshoot": 19}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx": 58}, "alltitles": {"Authentication and account": [[0, "authentication-and-account"]], "Configuration": [[1, "configuration"]], "Equipment Types": [[2, "equipment-types"], [13, "equipment-types"]], "Equipments": [[3, "equipments"], [13, "equipments"], [13, "id1"]], "API documentation": [[4, "api-documentation"]], "Endpoints:": [[4, null]], "OAuth2": [[5, "oauth2"], [12, "oauth2"]], "Records": [[6, "records"]], "Sports": [[7, "sports"], [13, "sports"]], "Statistics": [[8, "statistics"], [13, "statistics"]], "Users": [[9, "users"], [12, "users"], [13, "users"]], "Workouts": [[10, "workouts"], [13, "workouts"]], "Change log": [[11, "change-log"]], "Version 0.8.9 (2024/09/21)": [[11, "version-0-8-9-2024-09-21"]], "Features and enhancements": [[11, "features-and-enhancements"], [11, "id3"], [11, "id8"], [11, "id12"], [11, "id19"], [11, "id23"], [11, "id32"], [11, "id36"], [11, "id40"], [11, "id43"], [11, "id60"], [11, "id63"], [11, "id71"], [11, "id74"], [11, "id80"], [11, "id85"], [11, "id87"], [11, "id89"], [11, "id92"], [11, "id103"], [11, "id109"]], "Bugs Fixed": [[11, "bugs-fixed"], [11, "id1"], [11, "id4"], [11, "id9"], [11, "id15"], [11, "id20"], [11, "id24"], [11, "id27"], [11, "id29"], [11, "id33"], [11, "id37"], [11, "id41"], [11, "id44"], [11, "id47"], [11, "id50"], [11, "id51"], [11, "id54"], [11, "id56"], [11, "id58"], [11, "id61"], [11, "id64"], [11, "id72"], [11, "id75"], [11, "id78"], [11, "id81"], [11, "id93"], [11, "id98"], [11, "id100"], [11, "id104"], [11, "id107"], [11, "id110"], [11, "id112"], [11, "id115"], [11, "id118"], [11, "id120"], [11, "id123"], [11, "id126"], [11, "id129"], [11, "id134"], [11, "id136"], [11, "id138"], [11, "id140"], [11, "id143"], [11, "id145"], [11, "id151"], [11, "id154"], [11, "id156"], [11, "id158"], [11, "id165"], [11, "id170"], [11, "id172"], [11, "id174"], [11, "id177"], [11, "id179"], [11, "id181"], [11, "id185"], [11, "id195"], [11, "id198"], [11, "id200"], [11, "id203"], [11, "id210"]], "Translations": [[11, "translations"], [11, "id2"], [11, "id5"], [11, "id6"], [11, "id10"], [11, "id13"], [11, "id16"], [11, "id17"], [11, "id21"], [11, "id25"], [11, "id28"], [11, "id30"], [11, "id34"], [11, "id38"], [11, "id42"], [11, "id45"], [11, "id48"], [11, "id52"], [11, "id57"], [11, "id62"], [11, "id65"], [11, "id67"], [11, "id70"], [11, "id73"], [11, "id76"], [11, "id79"], [11, "id82"], [11, "id83"], [11, "id86"], [11, "id88"], [11, "id90"], [11, "id91"], [11, "id94"], [11, "id96"], [11, "id99"], [11, "id101"], [11, "id105"], [11, "id106"], [11, "id108"], [11, "id111"], [11, "id124"], [13, "translations"]], "Misc": [[11, "misc"], [11, "id7"], [11, "id11"], [11, "id14"], [11, "id18"], [11, "id22"], [11, "id26"], [11, "id31"], [11, "id35"], [11, "id39"], [11, "id46"], [11, "id49"], [11, "id53"], [11, "id55"], [11, "id59"], [11, "id66"], [11, "id69"], [11, "id77"], [11, "id84"], [11, "id95"], [11, "id97"], [11, "id113"], [11, "id127"], [11, "id130"], [11, "id147"], [11, "id149"], [11, "id166"], [11, "id175"], [11, "id182"], [11, "id186"], [11, "id193"], [11, "id204"], [11, "id207"]], "Version 0.8.8 (2024/09/01)": [[11, "version-0-8-8-2024-09-01"]], "Version 0.8.7 (2024/08/25)": [[11, "version-0-8-7-2024-08-25"]], "Version 0.8.6 (2024/08/03)": [[11, "version-0-8-6-2024-08-03"]], "Version 0.8.5 (2024/06/29)": [[11, "version-0-8-5-2024-06-29"]], "Version 0.8.4 (2024/05/22)": [[11, "version-0-8-4-2024-05-22"]], "Version 0.8.3 (2024/05/09)": [[11, "version-0-8-3-2024-05-09"]], "Version 0.8.2 (2024/05/08)": [[11, "version-0-8-2-2024-05-08"]], "Version 0.8.1 (2024/05/01)": [[11, "version-0-8-1-2024-05-01"]], "Version 0.8.0 (2024/04/21)": [[11, "version-0-8-0-2024-04-21"]], "Version 0.7.32 (2024/03/10)": [[11, "version-0-7-32-2024-03-10"]], "Version 0.7.31 (2024/02/10)": [[11, "version-0-7-31-2024-02-10"]], "Version 0.7.30 (2024/02/04)": [[11, "version-0-7-30-2024-02-04"]], "Version 0.7.29 (2024/01/06)": [[11, "version-0-7-29-2024-01-06"]], "Version 0.7.28 (2023/12/23)": [[11, "version-0-7-28-2023-12-23"]], "Version 0.7.27 (2023/12/20)": [[11, "version-0-7-27-2023-12-20"]], "Version 0.7.26 (2023/11/19)": [[11, "version-0-7-26-2023-11-19"]], "Version 0.7.25 (2023/10/08)": [[11, "version-0-7-25-2023-10-08"]], "Version 0.7.24 (2023/10/04)": [[11, "version-0-7-24-2023-10-04"]], "Version 0.7.23 (2023/09/14)": [[11, "version-0-7-23-2023-09-14"]], "Version 0.7.22 (2023/08/23)": [[11, "version-0-7-22-2023-08-23"]], "Version 0.7.21 (2023/07/30)": [[11, "version-0-7-21-2023-07-30"]], "Version 0.7.20 (2023/07/22)": [[11, "version-0-7-20-2023-07-22"]], "Version 0.7.19 (2023/07/15)": [[11, "version-0-7-19-2023-07-15"]], "Documentation": [[11, "documentation"], [11, "id68"], [11, "id102"]], "Version 0.7.18 (2023/06/25)": [[11, "version-0-7-18-2023-06-25"]], "Version 0.7.17 (2023/06/03)": [[11, "version-0-7-17-2023-06-03"]], "Version 0.7.16 (2023/05/29)": [[11, "version-0-7-16-2023-05-29"]], "Version 0.7.15 (2023/04/12)": [[11, "version-0-7-15-2023-04-12"]], "Version 0.7.14 (2023/03/08)": [[11, "version-0-7-14-2023-03-08"]], "Version 0.7.13 (2023/03/05)": [[11, "version-0-7-13-2023-03-05"]], "Version 0.7.12 (2023/02/16)": [[11, "version-0-7-12-2023-02-16"]], "Version 0.7.11 (2022/12/31)": [[11, "version-0-7-11-2022-12-31"]], "Version 0.7.10 (2022/12/21)": [[11, "version-0-7-10-2022-12-21"]], "Version 0.7.9 (2022/12/11)": [[11, "version-0-7-9-2022-12-11"]], "Version 0.7.8 (2022/11/30)": [[11, "version-0-7-8-2022-11-30"]], "Version 0.7.7 (2022/11/27)": [[11, "version-0-7-7-2022-11-27"]], "Version 0.7.6 (2022/11/09)": [[11, "version-0-7-6-2022-11-09"]], "Version 0.7.5 (2022/11/09)": [[11, "version-0-7-5-2022-11-09"]], "Version 0.7.4 (2022/11/05)": [[11, "version-0-7-4-2022-11-05"]], "Version 0.7.3 (2022/11/01)": [[11, "version-0-7-3-2022-11-01"]], "Version 0.7.2 (2022/09/21)": [[11, "version-0-7-2-2022-09-21"]], "Version 0.7.1 (2022/09/21)": [[11, "version-0-7-1-2022-09-21"]], "Version 0.7.0 (2022/09/19)": [[11, "version-0-7-0-2022-09-19"]], "Version 0.6.12 (2022/09/14)": [[11, "version-0-6-12-2022-09-14"]], "Issues Closed": [[11, "issues-closed"], [11, "id114"], [11, "id117"], [11, "id121"], [11, "id125"], [11, "id128"], [11, "id131"], [11, "id133"], [11, "id137"], [11, "id139"], [11, "id141"], [11, "id146"], [11, "id150"], [11, "id153"], [11, "id155"], [11, "id157"], [11, "id159"], [11, "id161"], [11, "id163"], [11, "id168"], [11, "id171"], [11, "id173"], [11, "id176"], [11, "id178"], [11, "id180"], [11, "id183"], [11, "id187"], [11, "id189"], [11, "id191"], [11, "id194"], [11, "id196"], [11, "id199"], [11, "id201"], [11, "id205"], [11, "id208"], [11, "id211"]], "Pull Requests": [[11, "pull-requests"], [11, "id116"], [11, "id119"], [11, "id135"], [11, "id144"], [11, "id148"], [11, "id152"], [11, "id167"]], "Version 0.6.11 (2022/07/27)": [[11, "version-0-6-11-2022-07-27"]], "Features": [[11, "features"], [11, "id122"], [11, "id132"], [11, "id142"], [13, "features"]], "Version 0.6.10 (2022/07/13)": [[11, "version-0-6-10-2022-07-13"]], "Version 0.6.9 (2022/07/03)": [[11, "version-0-6-9-2022-07-03"]], "Version 0.6.8 (2022/06/22)": [[11, "version-0-6-8-2022-06-22"]], "Version 0.6.7 (2022/06/11)": [[11, "version-0-6-7-2022-06-11"]], "Version 0.6.6 (2022/05/29)": [[11, "version-0-6-6-2022-05-29"]], "Version 0.6.5 (2022/04/24)": [[11, "version-0-6-5-2022-04-24"]], "Version 0.6.4 (2022/04/23)": [[11, "version-0-6-4-2022-04-23"]], "Version 0.6.3 (2022/04/09)": [[11, "version-0-6-3-2022-04-09"]], "Version 0.6.2 (2022/04/03)": [[11, "version-0-6-2-2022-04-03"]], "Version 0.6.1 (2022/03/27)": [[11, "version-0-6-1-2022-03-27"]], "Version 0.6.0 (2022/03/27)": [[11, "version-0-6-0-2022-03-27"]], "Version 0.5.7 (2022/02/13)": [[11, "version-0-5-7-2022-02-13"]], "Security": [[11, "security"]], "Version 0.5.6 (2022/02/05)": [[11, "version-0-5-6-2022-02-05"]], "Version 0.5.5 (2022/01/19)": [[11, "version-0-5-5-2022-01-19"]], "New Features": [[11, "new-features"], [11, "id160"], [11, "id162"], [11, "id164"], [11, "id169"], [11, "id184"], [11, "id188"], [11, "id190"], [11, "id192"], [11, "id197"], [11, "id202"], [11, "id206"], [11, "id209"], [11, "id212"]], "Version 0.5.4 (2022/01/01)": [[11, "version-0-5-4-2022-01-01"]], "Version 0.5.3 (2022/01/01)": [[11, "version-0-5-3-2022-01-01"]], "Version 0.5.2 (2021/12/19)": [[11, "version-0-5-2-2021-12-19"]], "Version 0.5.1 (2021/11/30)": [[11, "version-0-5-1-2021-11-30"]], "Version 0.5.0 (2021/11/14)": [[11, "version-0-5-0-2021-11-14"]], "Version 0.4.9 (2021/07/16)": [[11, "version-0-4-9-2021-07-16"]], "Version 0.4.8 (2021/07/03)": [[11, "version-0-4-8-2021-07-03"]], "Version 0.4.7 (2021/04/07)": [[11, "version-0-4-7-2021-04-07"]], "Version 0.4.6 (2021/02/21)": [[11, "version-0-4-6-2021-02-21"]], "Version 0.4.5 (2021/02/17)": [[11, "version-0-4-5-2021-02-17"]], "Version 0.4.4 (2021/01/31)": [[11, "version-0-4-4-2021-01-31"]], "Version 0.4.3 (2021/01/10)": [[11, "version-0-4-3-2021-01-10"]], "Version 0.4.2 (2021/01/03)": [[11, "version-0-4-2-2021-01-03"]], "Version 0.4.1 (2020/12/31)": [[11, "version-0-4-1-2020-12-31"]], "Version 0.4.0 - FitTrackee on PyPI (2020/09/19)": [[11, "version-0-4-0-fittrackee-on-pypi-2020-09-19"]], "Version 0.3.0 - Administration (2020/07/15)": [[11, "version-0-3-0-administration-2020-07-15"]], "Version 0.2.5 - Fix and improvements (2020/01/31)": [[11, "version-0-2-5-fix-and-improvements-2020-01-31"]], "Version 0.2.4 - Minor fix (2020/01/30)": [[11, "version-0-2-4-minor-fix-2020-01-30"]], "Version 0.2.3 - FitTrackee available in French (2019/12/29)": [[11, "version-0-2-3-fittrackee-available-in-french-2019-12-29"]], "Version 0.2.2 - Statistics fix (2019/09/23)": [[11, "version-0-2-2-statistics-fix-2019-09-23"]], "Version 0.2.1 - Fix and improvements (2019/09/01)": [[11, "version-0-2-1-fix-and-improvements-2019-09-01"]], "Version 0.2.0 - Statistics (2019/07/07)": [[11, "version-0-2-0-statistics-2019-07-07"]], "Version 0.1.1 - Fix and improvements (2019/02/07)": [[11, "version-0-1-1-fix-and-improvements-2019-02-07"]], "Version 0.1.0 - First release \ud83c\udf89 (2018-07-04)": [[11, "version-0-1-0-first-release-2018-07-04"]], "Command line interface": [[12, "command-line-interface"]], "Database": [[12, "database"]], "ftcli db drop": [[12, "ftcli-db-drop"]], "ftcli db upgrade": [[12, "ftcli-db-upgrade"]], "ftcli oauth2 clean": [[12, "ftcli-oauth2-clean"]], "ftcli users clean_archives": [[12, "ftcli-users-clean-archives"]], "ftcli users clean_tokens": [[12, "ftcli-users-clean-tokens"]], "ftcli users create": [[12, "ftcli-users-create"]], "ftcli users export_archives": [[12, "ftcli-users-export-archives"]], "ftcli users update": [[12, "ftcli-users-update"]], "Account & preferences": [[13, "account-preferences"]], "OAuth Apps": [[13, "oauth-apps"]], "Administration": [[13, "administration"], [13, "id2"]], "Application": [[13, "application"]], "Screenshots": [[13, "screenshots"]], "Dashboard": [[13, "dashboard"]], "Workout detail": [[13, "workout-detail"]], "Workouts list": [[13, "workouts-list"]], "FitTrackee": [[14, "fittrackee"]], "Table of contents": [[14, "table-of-contents"]], "Installation": [[15, "installation"], [15, "id2"], [15, "id6"]], "Main dependencies": [[15, "main-dependencies"]], "Prerequisites": [[15, "prerequisites"]], "Environment variables": [[15, "environment-variables"]], "Emails": [[15, "emails"]], "Map tile server": [[15, "map-tile-server"]], "API rate limits": [[15, "api-rate-limits"]], "Weather data": [[15, "weather-data"]], "From PyPI": [[15, "from-pypi"], [15, "id3"]], "From sources": [[15, "from-sources"], [15, "id4"]], "Dev environment": [[15, "dev-environment"], [15, "id5"]], "Production environment": [[15, "production-environment"]], "Upgrade": [[15, "upgrade"]], "Prod environment": [[15, "prod-environment"]], "Deployment": [[15, "deployment"]], "Docker": [[15, "docker"]], "Development": [[15, "development"]], "Yunohost": [[15, "yunohost"]], "NixOS": [[15, "nixos"]], "OAuth 2.0": [[16, "oauth-2-0"]], "Scopes": [[16, "scopes"]], "Flow": [[16, "flow"]], "Resources": [[16, "resources"]], "Third-party tools": [[17, "third-party-tools"]], "Import tools": [[17, "import-tools"]], "Installation scripts": [[17, "installation-scripts"]], "Administrator": [[18, "administrator"]], "FitTrackee fails to start": [[18, "fittrackee-fails-to-start"]], "Map images are not displayed but map is shown in Workout detail": [[18, "map-images-are-not-displayed-but-map-is-shown-in-workout-detail"]], "Failed to upload or download files": [[18, "failed-to-upload-or-download-files"]], "Troubleshooting": [[19, "troubleshooting"]]}, "indexentries": {"api_rate_limits": [[15, "envvar-API_RATE_LIMITS"]], "app_log": [[15, "envvar-APP_LOG"]], "app_secret_key": [[15, "envvar-APP_SECRET_KEY"]], "app_settings": [[15, "envvar-APP_SETTINGS"]], "app_workers": [[15, "envvar-APP_WORKERS"]], "database_disable_pooling": [[15, "envvar-DATABASE_DISABLE_POOLING"]], "database_url": [[15, "envvar-DATABASE_URL"]], "default_staticmap": [[15, "envvar-DEFAULT_STATICMAP"]], "email_url": [[15, "envvar-EMAIL_URL"]], "flask_app": [[15, "envvar-FLASK_APP"]], "host": [[15, "envvar-HOST"]], "map_attribution": [[15, "envvar-MAP_ATTRIBUTION"]], "port": [[15, "envvar-PORT"]], "redis_url": [[15, "envvar-REDIS_URL"]], "sender_email": [[15, "envvar-SENDER_EMAIL"]], "staticmap_subdomains": [[15, "envvar-STATICMAP_SUBDOMAINS"]], "tile_server_url": [[15, "envvar-TILE_SERVER_URL"]], "ui_url": [[15, "envvar-UI_URL"]], "upload_folder": [[15, "envvar-UPLOAD_FOLDER"]], "vite_app_api_url": [[15, "envvar-VITE_APP_API_URL"]], "weather_api_key": [[15, "envvar-WEATHER_API_KEY"]], "weather_api_provider \ud83c\udd95": [[15, "envvar-WEATHER_API_PROVIDER"]], "workers_processes": [[15, "envvar-WORKERS_PROCESSES"]], "environment variable": [[15, "envvar-API_RATE_LIMITS"], [15, "envvar-APP_LOG"], [15, "envvar-APP_SECRET_KEY"], [15, "envvar-APP_SETTINGS"], [15, "envvar-APP_WORKERS"], [15, "envvar-DATABASE_DISABLE_POOLING"], [15, "envvar-DATABASE_URL"], [15, "envvar-DEFAULT_STATICMAP"], [15, "envvar-EMAIL_URL"], [15, "envvar-FLASK_APP"], [15, "envvar-HOST"], [15, "envvar-MAP_ATTRIBUTION"], [15, "envvar-PORT"], [15, "envvar-REDIS_URL"], [15, "envvar-SENDER_EMAIL"], [15, "envvar-STATICMAP_SUBDOMAINS"], [15, "envvar-TILE_SERVER_URL"], [15, "envvar-UI_URL"], [15, "envvar-UPLOAD_FOLDER"], [15, "envvar-VITE_APP_API_URL"], [15, "envvar-WEATHER_API_KEY"], [15, "envvar-WEATHER_API_PROVIDER"], [15, "envvar-WORKERS_PROCESSES"]]}}) \ No newline at end of file diff --git a/docs/en/third_party_tools.html b/docs/en/third_party_tools.html index e7f436813..65ffc257b 100644 --- a/docs/en/third_party_tools.html +++ b/docs/en/third_party_tools.html @@ -6,7 +6,7 @@ - Third-party tools - FitTrackee 0.8.8 documentation + Third-party tools - FitTrackee 0.8.9 documentation @@ -169,7 +169,7 @@
    -
    @@ -197,7 +197,7 @@
    - FitTrackee 0.8.8 + FitTrackee 0.8.9 documentation @@ -373,7 +373,7 @@

    Installation scripts

    - + diff --git a/docs/en/troubleshooting/administrator.html b/docs/en/troubleshooting/administrator.html index b487d6121..b51dff65d 100644 --- a/docs/en/troubleshooting/administrator.html +++ b/docs/en/troubleshooting/administrator.html @@ -6,7 +6,7 @@ - Administrator - FitTrackee 0.8.8 documentation + Administrator - FitTrackee 0.8.9 documentation @@ -169,7 +169,7 @@
    -
    @@ -197,7 +197,7 @@
    - FitTrackee 0.8.8 + FitTrackee 0.8.9 documentation @@ -389,7 +389,7 @@

    Failed to upload or download files +

    diff --git a/docs/en/troubleshooting/index.html b/docs/en/troubleshooting/index.html index 1a3d00339..6f5ec11a0 100644 --- a/docs/en/troubleshooting/index.html +++ b/docs/en/troubleshooting/index.html @@ -6,7 +6,7 @@ - Troubleshooting - FitTrackee 0.8.8 documentation + Troubleshooting - FitTrackee 0.8.9 documentation @@ -169,7 +169,7 @@
    -
    @@ -197,7 +197,7 @@
    - FitTrackee 0.8.8 + FitTrackee 0.8.9 documentation @@ -348,7 +348,7 @@

    Troubleshooting +

    diff --git a/docs/fr/.buildinfo b/docs/fr/.buildinfo index f7fe338cf..669353a6c 100644 --- a/docs/fr/.buildinfo +++ b/docs/fr/.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: 5960b46c624de4b26b73c38719ac70d3 +config: 0588f1fa6fa5c0fb845b0188d31ce5da tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/docs/fr/_images/fittrackee_screenshot-01.png b/docs/fr/_images/fittrackee_screenshot-01.png index 7131adb2c..cf2f32987 100644 Binary files a/docs/fr/_images/fittrackee_screenshot-01.png and b/docs/fr/_images/fittrackee_screenshot-01.png differ diff --git a/docs/fr/_images/fittrackee_screenshot-02.png b/docs/fr/_images/fittrackee_screenshot-02.png index cfbd2d2af..3aab4812d 100644 Binary files a/docs/fr/_images/fittrackee_screenshot-02.png and b/docs/fr/_images/fittrackee_screenshot-02.png differ diff --git a/docs/fr/_images/fittrackee_screenshot-03.png b/docs/fr/_images/fittrackee_screenshot-03.png index 6ca6fd76d..046d13aa2 100644 Binary files a/docs/fr/_images/fittrackee_screenshot-03.png and b/docs/fr/_images/fittrackee_screenshot-03.png differ diff --git a/docs/fr/_images/fittrackee_screenshot-04.png b/docs/fr/_images/fittrackee_screenshot-04.png index 83940e2a0..f1c160c69 100644 Binary files a/docs/fr/_images/fittrackee_screenshot-04.png and b/docs/fr/_images/fittrackee_screenshot-04.png differ diff --git a/docs/fr/_images/fittrackee_screenshot-05.png b/docs/fr/_images/fittrackee_screenshot-05.png index 595497416..6e8f252f9 100644 Binary files a/docs/fr/_images/fittrackee_screenshot-05.png and b/docs/fr/_images/fittrackee_screenshot-05.png differ diff --git a/docs/fr/_images/fittrackee_screenshot-06.png b/docs/fr/_images/fittrackee_screenshot-06.png index b0acf75ba..ba1e81f23 100644 Binary files a/docs/fr/_images/fittrackee_screenshot-06.png and b/docs/fr/_images/fittrackee_screenshot-06.png differ diff --git a/docs/fr/_images/fittrackee_screenshot-07.png b/docs/fr/_images/fittrackee_screenshot-07.png index a8e2057a1..6bb7d1d74 100644 Binary files a/docs/fr/_images/fittrackee_screenshot-07.png and b/docs/fr/_images/fittrackee_screenshot-07.png differ diff --git a/docs/fr/_images/fittrackee_screenshot-08.png b/docs/fr/_images/fittrackee_screenshot-08.png index 85c8a73d2..cd0f6aa2e 100644 Binary files a/docs/fr/_images/fittrackee_screenshot-08.png and b/docs/fr/_images/fittrackee_screenshot-08.png differ diff --git a/docs/fr/_images/fittrackee_screenshot-09.png b/docs/fr/_images/fittrackee_screenshot-09.png index c2fabfebf..fbe0c925c 100644 Binary files a/docs/fr/_images/fittrackee_screenshot-09.png and b/docs/fr/_images/fittrackee_screenshot-09.png differ diff --git a/docs/fr/_images/fittrackee_screenshot-10.png b/docs/fr/_images/fittrackee_screenshot-10.png index 52b4707d2..4f5beddf3 100644 Binary files a/docs/fr/_images/fittrackee_screenshot-10.png and b/docs/fr/_images/fittrackee_screenshot-10.png differ diff --git a/docs/fr/_images/fittrackee_screenshot-11.png b/docs/fr/_images/fittrackee_screenshot-11.png index 175dfb450..ba1ec4a0b 100644 Binary files a/docs/fr/_images/fittrackee_screenshot-11.png and b/docs/fr/_images/fittrackee_screenshot-11.png differ diff --git a/docs/fr/_sources/changelog.md.txt b/docs/fr/_sources/changelog.md.txt index d76f0d48d..977937f0d 100644 --- a/docs/fr/_sources/changelog.md.txt +++ b/docs/fr/_sources/changelog.md.txt @@ -1,5 +1,62 @@ # Change log +## Version 0.8.9 (2024/09/21) + +This release introduces a new field: the workout description. +This field is longer than the "Notes" field and will have the same visibility as the workout in a next version (see [#125](https://github.com/SamR1/FitTrackee/issues/125)). The "Notes" field will remain private. + +### Features and enhancements + +* [#610](https://github.com/SamR1/FitTrackee/issues/610) - Add a description field to workout + +### Bugs Fixed + +* [#621](https://github.com/SamR1/FitTrackee/issues/621) - email username may contain special characters +* [#622](https://github.com/SamR1/FitTrackee/issues/622) - Fix email sending by adding 'Message-ID' + +### Translations + +* [PR#616](https://github.com/SamR1/FitTrackee/pull/616) - Translations update (Dutch) +* [PR#617](https://github.com/SamR1/FitTrackee/pull/617) - Translations update (Italian) +* [PR#618](https://github.com/SamR1/FitTrackee/pull/618) - Translations update (Polish) +* [PR#620](https://github.com/SamR1/FitTrackee/pull/620) - Translations update (Polish) +* [PR#624](https://github.com/SamR1/FitTrackee/pull/624) - Translations update (Spanish) +* [PR#625](https://github.com/SamR1/FitTrackee/pull/625) - Translations update (Galician and Basque) +* [PR#626](https://github.com/SamR1/FitTrackee/pull/626) - Translations update (German) +* [PR#631](https://github.com/SamR1/FitTrackee/pull/631) - Translations update (Basque) + +Translation status: +- Basque: 100% +- Bulgarian: 99% +- Czech: 72% +- Dutch: 99% +- English: 100% +- French: 100% +- Galician: 100% +- German: 100% +- Italian: 82% +- Norwegian Bokmål: 52% +- Polish: 99% +- Portuguese: 97% +- Spanish: 100% + +### Misc + +* [PR#628](https://github.com/SamR1/FitTrackee/pull/628) - Replace markdown library + + +Thanks to the contributors: +- @boosterl +- @byakurau +- @dotlambda +- @erral +- @gallegonovato +- @qwerty287 +- @xmgz + +**Note:** This release contains database migration (see upgrade instructions in [documentation](https://samr1.github.io/FitTrackee/en/installation.html#upgrade)) + + ## Version 0.8.8 (2024/09/01) **FitTrackee** is now available in Bulgarian. diff --git a/docs/fr/_sources/features.rst.txt b/docs/fr/_sources/features.rst.txt index 5b1ccda2d..d10dcb581 100644 --- a/docs/fr/_sources/features.rst.txt +++ b/docs/fr/_sources/features.rst.txt @@ -71,7 +71,12 @@ Workouts - An `equipment `__ can be associated with a workout (*new in 0.8.0*). For now, only one equipment can be associated. - Segments can be displayed. - Workout gpx file can be downloaded (*new in 0.5.1*) -- Workout edition and deletion. User can add a note. +- Workout edition and deletion. User can add a description (*new in 0.8.9*) and a note. + +.. note:: + | This "Description" field is longer than the "Notes" field and will have the same visibility as the workout in a next version (see `#125 `__). The "Notes" field will remain private. + + - User statistics, by time period (week, month, year) and sport: - totals: - total distance @@ -116,6 +121,7 @@ Workouts - sports (only sports with workouts are displayed in sport dropdown) - equipment (only equipments with workouts are displayed in equipment dropdown) (*new in 0.8.0*) - title (*new in 0.7.15*) + - description (*new in 0.8.9*) - notes (*new in 0.8.0*) - distance - duration diff --git a/docs/fr/_sources/installation.rst.txt b/docs/fr/_sources/installation.rst.txt index 8a8849e6e..e430038ec 100644 --- a/docs/fr/_sources/installation.rst.txt +++ b/docs/fr/_sources/installation.rst.txt @@ -529,13 +529,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.8.8): +- Download the last release (for now, it is the release v0.8.9): .. code:: bash - $ wget https://github.com/SamR1/FitTrackee/archive/v0.8.8.tar.gz - $ tar -xzf v0.8.8.tar.gz - $ mv FitTrackee-0.8.8 FitTrackee + $ wget https://github.com/SamR1/FitTrackee/archive/v0.8.9.tar.gz + $ tar -xzf v0.8.9.tar.gz + $ mv FitTrackee-0.8.9 FitTrackee $ cd FitTrackee - Create **.env** from example and update it @@ -666,13 +666,13 @@ Prod environment - Change to the directory where FitTrackee directory is located -- Download the last release (for now, it is the release v0.8.8) and overwrite existing files: +- Download the last release (for now, it is the release v0.8.9) and overwrite existing files: .. code:: bash - $ wget https://github.com/SamR1/FitTrackee/archive/v0.8.8.tar.gz - $ tar -xzf v0.8.8.tar.gz - $ cp -R FitTrackee-0.8.8/* FitTrackee/ + $ wget https://github.com/SamR1/FitTrackee/archive/v0.8.9.tar.gz + $ tar -xzf v0.8.9.tar.gz + $ cp -R FitTrackee-0.8.9/* FitTrackee/ $ cd FitTrackee - Update **.env** if needed (see `Environment variables `__). @@ -915,3 +915,9 @@ Yunohost ~~~~~~~~ Thanks to contributors, a package is available, see https://github.com/YunoHost-Apps/fittrackee_ynh. + + +NixOS +~~~~~ + +Thanks to contributors, a package is available on NixOS, see https://mynixos.com/nixpkgs/package/fit-trackee. diff --git a/docs/fr/_static/documentation_options.js b/docs/fr/_static/documentation_options.js index cdc36fe51..bed424aa5 100644 --- a/docs/fr/_static/documentation_options.js +++ b/docs/fr/_static/documentation_options.js @@ -1,6 +1,6 @@ var DOCUMENTATION_OPTIONS = { URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'), - VERSION: '0.8.8', + VERSION: '0.8.9', LANGUAGE: 'fr', COLLAPSE_INDEX: false, BUILDER: 'html', diff --git a/docs/fr/api/auth.html b/docs/fr/api/auth.html index c966d4352..0b3ad5706 100644 --- a/docs/fr/api/auth.html +++ b/docs/fr/api/auth.html @@ -6,7 +6,7 @@ - Authentification et compte - Documentation FitTrackee 0.8.8 + Authentification et compte - Documentation FitTrackee 0.8.9 @@ -169,7 +169,7 @@
    -
    @@ -197,7 +197,7 @@
    - Documentation FitTrackee 0.8.8 + Documentation FitTrackee 0.8.9 @@ -1648,7 +1648,7 @@

    Authentification et compte +

    diff --git a/docs/fr/api/configuration.html b/docs/fr/api/configuration.html index fcd0d6d60..dd3225e61 100644 --- a/docs/fr/api/configuration.html +++ b/docs/fr/api/configuration.html @@ -6,7 +6,7 @@ - Configuration - Documentation FitTrackee 0.8.8 + Configuration - Documentation FitTrackee 0.8.9 @@ -169,7 +169,7 @@ diff --git a/docs/fr/api/equipment_types.html b/docs/fr/api/equipment_types.html index 103489dbd..a133ea461 100644 --- a/docs/fr/api/equipment_types.html +++ b/docs/fr/api/equipment_types.html @@ -6,7 +6,7 @@ - Types d’équipement - Documentation FitTrackee 0.8.8 + Types d’équipement - Documentation FitTrackee 0.8.9 @@ -169,7 +169,7 @@
    -
    @@ -197,7 +197,7 @@
    - Documentation FitTrackee 0.8.8 + Documentation FitTrackee 0.8.9 @@ -626,7 +626,7 @@

    Types d’équipement +

    diff --git a/docs/fr/api/equipments.html b/docs/fr/api/equipments.html index 637ae572e..0b28fe1cf 100644 --- a/docs/fr/api/equipments.html +++ b/docs/fr/api/equipments.html @@ -6,7 +6,7 @@ - Équipements - Documentation FitTrackee 0.8.8 + Équipements - Documentation FitTrackee 0.8.9 @@ -169,7 +169,7 @@
    -
    @@ -197,7 +197,7 @@
    - Documentation FitTrackee 0.8.8 + Documentation FitTrackee 0.8.9 @@ -825,7 +825,7 @@

    Équipements +

    diff --git a/docs/fr/api/index.html b/docs/fr/api/index.html index 14bb66ff5..20a0febbb 100644 --- a/docs/fr/api/index.html +++ b/docs/fr/api/index.html @@ -6,7 +6,7 @@ - Documentation de l’API - Documentation FitTrackee 0.8.8 + Documentation de l’API - Documentation FitTrackee 0.8.9 @@ -169,7 +169,7 @@
    -
    @@ -197,7 +197,7 @@
    - Documentation FitTrackee 0.8.8 + Documentation FitTrackee 0.8.9 @@ -353,7 +353,7 @@

    Documentation de l’API

    - + diff --git a/docs/fr/api/oauth2.html b/docs/fr/api/oauth2.html index 62a1a08b5..c38393068 100644 --- a/docs/fr/api/oauth2.html +++ b/docs/fr/api/oauth2.html @@ -6,7 +6,7 @@ - OAuth2 - Documentation FitTrackee 0.8.8 + OAuth2 - Documentation FitTrackee 0.8.9 @@ -169,7 +169,7 @@
    -
    @@ -197,7 +197,7 @@
    - Documentation FitTrackee 0.8.8 + Documentation FitTrackee 0.8.9 @@ -856,7 +856,7 @@

    OAuth2 +

    diff --git a/docs/fr/api/records.html b/docs/fr/api/records.html index d33c2da15..73f3c905b 100644 --- a/docs/fr/api/records.html +++ b/docs/fr/api/records.html @@ -6,7 +6,7 @@ - Records - Documentation FitTrackee 0.8.8 + Records - Documentation FitTrackee 0.8.9 @@ -169,7 +169,7 @@
    -
    @@ -197,7 +197,7 @@
    - Documentation FitTrackee 0.8.8 + Documentation FitTrackee 0.8.9 @@ -453,7 +453,7 @@

    Records +

    diff --git a/docs/fr/api/sports.html b/docs/fr/api/sports.html index 0c73abe63..0ddfc9c1e 100644 --- a/docs/fr/api/sports.html +++ b/docs/fr/api/sports.html @@ -6,7 +6,7 @@ - Sports - Documentation FitTrackee 0.8.8 + Sports - Documentation FitTrackee 0.8.9 @@ -169,7 +169,7 @@
    -
    @@ -197,7 +197,7 @@
    - Documentation FitTrackee 0.8.8 + Documentation FitTrackee 0.8.9 @@ -664,7 +664,7 @@

    Sports +

    diff --git a/docs/fr/api/stats.html b/docs/fr/api/stats.html index 906b8f542..6f374220c 100644 --- a/docs/fr/api/stats.html +++ b/docs/fr/api/stats.html @@ -6,7 +6,7 @@ - Statistiques - Documentation FitTrackee 0.8.8 + Statistiques - Documentation FitTrackee 0.8.9 @@ -169,7 +169,7 @@
    -
    @@ -197,7 +197,7 @@
    - Documentation FitTrackee 0.8.8 + Documentation FitTrackee 0.8.9 @@ -689,7 +689,7 @@

    Statistiques +

    diff --git a/docs/fr/api/users.html b/docs/fr/api/users.html index b0fbd551c..63961e624 100644 --- a/docs/fr/api/users.html +++ b/docs/fr/api/users.html @@ -6,7 +6,7 @@ - Utilisateurs - Documentation FitTrackee 0.8.8 + Utilisateurs - Documentation FitTrackee 0.8.9 @@ -169,7 +169,7 @@
    -
    @@ -197,7 +197,7 @@
    - Documentation FitTrackee 0.8.8 + Documentation FitTrackee 0.8.9 @@ -842,7 +842,7 @@

    Utilisateurs +

    diff --git a/docs/fr/api/workouts.html b/docs/fr/api/workouts.html index 0949fadc4..e7da9857c 100644 --- a/docs/fr/api/workouts.html +++ b/docs/fr/api/workouts.html @@ -6,7 +6,7 @@ - Séances - Documentation FitTrackee 0.8.8 + Séances - Documentation FitTrackee 0.8.9 @@ -169,7 +169,7 @@
    -
    @@ -197,7 +197,7 @@
    - Documentation FitTrackee 0.8.8 + Documentation FitTrackee 0.8.9 @@ -317,6 +317,7 @@

    Séances "bounds": [], "creation_date": "Sun, 14 Jul 2019 13:51:01 GMT", "descent": null, + "description": null, "distance": 10.0, "duration": "0:17:04", "equipments": [], @@ -413,7 +414,7 @@

    Séances%Y-%m-%d)

  • to (string) – date de fin (format : %Y-%m-%d)

  • distance_from (float) – distance minimale

  • @@ -430,6 +431,7 @@

    Séancesworkout_date)

  • equipment_id (string) – id de l’équipement (si valeur à “none”, seules les séances sans équipements seront renvoyées)

  • notes (string) – une partie (ou la totalité) des notes de la séance, la correspondance avec les notes ne tient pas compte des majuscules et des minuscules

  • +
  • description (string) – une partie de la description de la séance, la correspondance avec la description ne tient pas compte des majuscules et des minuscules

  • En-têtes de requête:
    @@ -477,6 +479,7 @@

    Séances "bounds": [], "creation_date": "Sun, 14 Jul 2019 18:57:14 GMT", "descent": null, + "description": null, "distance": 12, "duration": "0:45:00", "equipments": [], @@ -922,6 +925,7 @@

    Séances "bounds": [], "creation_date": "Sun, 14 Jul 2019 13:51:01 GMT", "descent": null, + "description": null, "distance": 10.0, "duration": "0:17:04", "equipments": [], @@ -993,7 +997,7 @@

    SéancesParamètres de la forme:
    • file – fichier gpx (extensions autorisées : .gpx, .zip)

    • -
    • data – id du sport, id de l’équipement et notes (exemple: {"sport_id": 1, "notes": "", "equipment_ids": []}). Les guillemets doubles dans les notes doivent être échappés. Pour equipment_ids, l’id de l’équipement à associer à la séance. Note: pour le moment, seul un équipement peut être associé. Si non fourni et qu’il existe un équipement par défaut pour le sport, l’équipement par défaut sera associé. Les notes et l’id de l’équipement ne sont pas obligatoires.

    • +
    • data – id du sport, id de l’équipement, description et notes (exemple: {"sport_id": 1, "notes": "", "description": "", "equipment_ids": []}). Les guillemets doubles dans les notes et la description doivent être échappés. La longueur maximale pour les notes est de 500 caractères et de 10000 caractères pour la description. Dans le cas contraire, elles seront tronquées. Pour equipment_ids, l’id de l’équipement à associer à la séance. Note: pour le moment, seul un équipement peut être associé. Si non fourni et qu’il existe un équipement par défaut pour le sport, l’équipement par défaut sera associé. Les notes, la description et l’id de l’équipement ne sont pas obligatoires.

    En-têtes de requête:
    @@ -1052,6 +1056,7 @@

    Séances "bounds": [], "creation_date": "Sun, 14 Jul 2019 13:51:01 GMT", "descent": null, + "description": null, "distance": 10.0, "duration": "0:17:04", "equipments": [], @@ -1124,12 +1129,13 @@

    Séances
    • ascent (float) – dénivelé positif de la séance (non obligatoire, à fournir avec le dénivelé positif)

    • descent (float) – dénivelé négatif de la séance (non obligatoire, à fournir avec le dénivelé positif)

    • +
    • description (string) – description de la séance (non obligatoire, longueur max. : 10000 caractères, dans le cas contraire elle sera tronquée)

    • distance (float) – distance de la séance en km

    • duration (integer) – durée de la séance en secondes

    • equipment_ids (array of strings) – l’id de l’équipement à associer à cette séance. Note: pour le moment, un seul équipement peut être associé. Si non fourni et qu’il existe un équipement par défaut pour le sport, l’équipement par défaut sera associé.

    • -
    • notes (string) – notes (non obligatoire)

    • +
    • notes (string) – notes (non obligatoire, longueur max. : 500 caractères, dans le cas contraire elles seront tronquées)

    • sport_id (integer) – identifiant du sport de la séance

    • -
    • title (string) – titre de la séance (non obligatoire)

    • +
    • title (string) – titre de la séance (non obligatoire, longueur max. : 255 caractères, dans le cas contraire il sera tronqué)

    • workout_date (string) – date de la séance, dans le fuseau horaire de l’utilisateur (format : %Y-%m-%d %H:%M)

    @@ -1185,6 +1191,7 @@

    Séances "bounds": [], "creation_date": "Sun, 14 Jul 2019 13:51:01 GMT", "descent": null, + "description": null, "distance": 10.0, "duration": "0:17:04", "equipments": [], @@ -1262,11 +1269,12 @@

    Séances
    • ascent (float) – dénivelé positif de la séance (seulement pour les séances sans gpx, doit être fourni avec le dénivelé négatif)

    • descent (float) – dénivelé négatif de la séance (seulement pour les séances sans gpx, doit être fourni avec le dénivelé positif)

    • +
    • description (string) – description de la séance (longueur max. : 10000 caractères, dans le cas contraire elle sera tronquée)

    • distance (float) – distance de la séance en km (seulement pour les séances sans gpx)

    • duration (integer) – durée de la séance en secondes (seulement pour les séances sans gpx)

    • -
    • notes (string) – notes

    • +
    • notes (string) – notes (longueur max. : 500 caractères, dans le cas contraire elles seront tronquées)

    • sport_id (integer) – identifiant du sport de la séance

    • -
    • title (string) – titre de la séance

    • +
    • title (string) – titre de la séance (longueur max. : 255 caractères, dans le cas contraire il sera tronqué)

    • equipment_ids (array of strings) – l’id de l’équipement à associer à cette séance (si un équipement est déjà associé, il sera remplacé). Note: pour le moment, un seul équipement peut être associé. Si la liste est vide, l’équipement sera supprimé.

    • workout_date (string) – date de la séance dans le fuseau horaire de l’utilisateur (format : %Y-%m-%d %H:%M) (seulement pour les séances sans gpx)

    @@ -1398,7 +1406,7 @@

    Séances +

    diff --git a/docs/fr/changelog.html b/docs/fr/changelog.html index 835889b53..50fc06b73 100644 --- a/docs/fr/changelog.html +++ b/docs/fr/changelog.html @@ -6,7 +6,7 @@ - Historique des modifications - Documentation FitTrackee 0.8.8 + Historique des modifications - Documentation FitTrackee 0.8.9 @@ -169,7 +169,7 @@
    -
    @@ -197,7 +197,7 @@
    - Documentation FitTrackee 0.8.8 + Documentation FitTrackee 0.8.9 @@ -283,18 +283,81 @@

    Historique des modifications

    -
    -

    Version 0.8.8 (01/09/2024)

    -

    FitTrackee est maintenant disponible en Bulgare.

    +
    +

    Version 0.8.9 (21/09/2024)

    +

    Cette version apporte un nouveau champ : la description de la séance.
    Ce champ est plus long que le champs « Notes » et aura la même visibilité que la séance dans une prochaine version (see #125). Le champ « Notes » restera privé.

    +
    +

    Fonctionnalités et améliorations

    +
      +
    • #610 - Add a description field to workout

    • +
    +

    Bugs corrigés

      -
    • #614 - Labels are not translated on workouts average chart

    • +
    • #621 - email username may contain special characters

    • +
    • #622 - Fix email sending by adding “Message-ID”

    Traductions

      +
    • PR#616 - Translations update (Dutch)

    • +
    • PR#617 - Translations update (Italian)

    • +
    • PR#618 - Translations update (Polish)

    • +
    • PR#620 - Translations update (Polish)

    • +
    • PR#624 - Translations update (Spanish)

    • +
    • PR#625 - Translations update (Galician and Basque)

    • +
    • PR#626 - Translations update (German)

    • +
    • PR#631 - Translations update (Basque)

    • +
    +

    Avancement de la traduction :

    +
      +
    • Basque : 100%

    • +
    • Bulgare : 99%

    • +
    • Tchèque : 72%

    • +
    • Néerlandais : 99%

    • +
    • Anglais : 100%

    • +
    • Français : 100%

    • +
    • Galicien : 100%

    • +
    • Allemand : 100%

    • +
    • Italien : 82%

    • +
    • Norvégien Bokmål : 52%

    • +
    • Polonais : 99%

    • +
    • Portugais : 97%

    • +
    • Espagnol : 100%

    • +
    +
    +
    +

    Divers

    +
      +
    • PR#628 - Replace markdown library

    • +
    +

    Merci aux contributeurs :

    +
      +
    • @boosterl

    • +
    • @byakurau

    • +
    • @dotlambda

    • +
    • @erral

    • +
    • @gallegonovato

    • +
    • @qwerty287

    • +
    • @xmgz

    • +
    +

    Note : Cette version contient des migrations de base de données (voir les instructions dans la documentation)

    +
    +
    +
    +

    Version 0.8.8 (01/09/2024)

    +

    FitTrackee est maintenant disponible en Bulgare.

    +
    +

    Bugs corrigés

    +
      +
    • #614 - Labels are not translated on workouts average chart

    • +
    +
    +
    +

    Traductions

    +
    diff --git a/docs/fr/cli.html b/docs/fr/cli.html index bb03935bf..a66240e89 100644 --- a/docs/fr/cli.html +++ b/docs/fr/cli.html @@ -6,7 +6,7 @@ - Interface de ligne de commande - Documentation FitTrackee 0.8.8 + Interface de ligne de commande - Documentation FitTrackee 0.8.9 @@ -169,7 +169,7 @@
    -
    @@ -197,7 +197,7 @@
    - Documentation FitTrackee 0.8.8 + Documentation FitTrackee 0.8.9 @@ -593,7 +593,7 @@

    ftcli

    - + diff --git a/docs/fr/features.html b/docs/fr/features.html index 2641db254..7cb9f189c 100644 --- a/docs/fr/features.html +++ b/docs/fr/features.html @@ -6,7 +6,7 @@ - Fonctionnalités - Documentation FitTrackee 0.8.8 + Fonctionnalités - Documentation FitTrackee 0.8.9 @@ -169,7 +169,7 @@
    -
    @@ -197,7 +197,7 @@
    - Documentation FitTrackee 0.8.8 + Documentation FitTrackee 0.8.9 @@ -385,9 +385,17 @@

    Séanceséquipement peut être associé à une séance (nouveau dans la version 0.8.0). Pour le moment, un seul équipement peut être associé.

  • Les segments peuvent être affichés.

  • Le fichier gpx peut être téléchargé (nouveau dans la version 0.5.1)

  • -
  • Edition et suppression d’une séance. L’utilisateur peut ajouter une note.

  • +
  • Edition et suppression d’une séance. L’utilisateur peut ajouter une description (nouveau dans la version 0.8.9) et une note.

  • + +
    +

    Note

    +
    +
    Le champ « Description » est plus long que le champ « Notes » et il aura la même visibilité que la séance dans une prochaine version (cf. #125). Le champ « Notes » restera privé.
    +
    +
    +

    diff --git a/docs/fr/genindex.html b/docs/fr/genindex.html index d652dfb66..287144264 100644 --- a/docs/fr/genindex.html +++ b/docs/fr/genindex.html @@ -4,7 +4,7 @@ - Index - Documentation FitTrackee 0.8.8 + Index - Documentation FitTrackee 0.8.9 @@ -167,7 +167,7 @@
    -
    @@ -195,7 +195,7 @@
    - Documentation FitTrackee 0.8.8 + Documentation FitTrackee 0.8.9 @@ -373,7 +373,7 @@

    V

    - + diff --git a/docs/fr/http-routingtable.html b/docs/fr/http-routingtable.html index 6f98766f8..0e044a995 100644 --- a/docs/fr/http-routingtable.html +++ b/docs/fr/http-routingtable.html @@ -4,7 +4,7 @@ - Table de routage HTTP - Documentation FitTrackee 0.8.8 + Table de routage HTTP - Documentation FitTrackee 0.8.9 @@ -167,7 +167,7 @@
    -
    @@ -195,7 +195,7 @@
    - Documentation FitTrackee 0.8.8 + Documentation FitTrackee 0.8.9 @@ -718,7 +718,7 @@

    Table de routage HTTP

    - + diff --git a/docs/fr/index.html b/docs/fr/index.html index 4b27c8dcf..1cf147a02 100644 --- a/docs/fr/index.html +++ b/docs/fr/index.html @@ -6,7 +6,7 @@ - Documentation FitTrackee 0.8.8 + Documentation FitTrackee 0.8.9 @@ -169,7 +169,7 @@
    -
    @@ -197,7 +197,7 @@
    - Documentation FitTrackee 0.8.8 + Documentation FitTrackee 0.8.9 @@ -362,7 +362,7 @@

    Table des matières +

    diff --git a/docs/fr/installation.html b/docs/fr/installation.html index 346c82961..815e8b9ce 100644 --- a/docs/fr/installation.html +++ b/docs/fr/installation.html @@ -6,7 +6,7 @@ - Installation - Documentation FitTrackee 0.8.8 + Installation - Documentation FitTrackee 0.8.9 @@ -169,7 +169,7 @@
    -
    @@ -197,7 +197,7 @@
    - Documentation FitTrackee 0.8.8 + Documentation FitTrackee 0.8.9 @@ -965,11 +965,11 @@

    Environnements de production -
  • Télécharger la dernière version (à ce jour, la version v0.8.8) :

  • +
  • Télécharger la dernière version (à ce jour, la version v0.8.9) :

  • -
    $ wget https://github.com/SamR1/FitTrackee/archive/v0.8.8.tar.gz
    -$ tar -xzf v0.8.8.tar.gz
    -$ mv FitTrackee-0.8.8 FitTrackee
    +
    $ wget https://github.com/SamR1/FitTrackee/archive/v0.8.9.tar.gz
    +$ tar -xzf v0.8.9.tar.gz
    +$ mv FitTrackee-0.8.9 FitTrackee
     $ cd FitTrackee
     
    @@ -1103,11 +1103,11 @@

    Environnement de production
  • Arrêter l’application

  • Changer pour le répertoire dans lequel FitTrackee est localisé

  • -
  • Télécharger la dernière version (à ce jour, la version v0.8.8) et écraser les fichiers existants :

  • +
  • Télécharger la dernière version (à ce jour, la version v0.8.9) et écraser les fichiers existants :

  • -
    -
    @@ -197,7 +197,7 @@
    - Documentation FitTrackee 0.8.8 + Documentation FitTrackee 0.8.9 @@ -459,7 +459,7 @@

    Ressources +

    diff --git a/docs/fr/objects.inv b/docs/fr/objects.inv index e0d6012f1..ca5c06c23 100644 Binary files a/docs/fr/objects.inv and b/docs/fr/objects.inv differ diff --git a/docs/fr/search.html b/docs/fr/search.html index f6b09958e..702000ca9 100644 --- a/docs/fr/search.html +++ b/docs/fr/search.html @@ -7,7 +7,7 @@ -Recherche - Documentation FitTrackee 0.8.8 +<title>Recherche - Documentation FitTrackee 0.8.9 @@ -170,7 +170,7 @@

    -
    @@ -198,7 +198,7 @@
    - Documentation FitTrackee 0.8.8 + Documentation FitTrackee 0.8.9 @@ -323,7 +323,7 @@
    -
    +

    diff --git a/docs/fr/searchindex.js b/docs/fr/searchindex.js index bd123e36e..685a38b31 100644 --- a/docs/fr/searchindex.js +++ b/docs/fr/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["api/auth", "api/configuration", "api/equipment_types", "api/equipments", "api/index", "api/oauth2", "api/records", "api/sports", "api/stats", "api/users", "api/workouts", "changelog", "cli", "features", "index", "installation", "oauth", "third_party_tools", "troubleshooting/administrator", "troubleshooting/index"], "filenames": ["api/auth.rst", "api/configuration.rst", "api/equipment_types.rst", "api/equipments.rst", "api/index.rst", "api/oauth2.rst", "api/records.rst", "api/sports.rst", "api/stats.rst", "api/users.rst", "api/workouts.rst", "changelog.md", "cli.rst", "features.rst", "index.rst", "installation.rst", "oauth.rst", "third_party_tools.rst", "troubleshooting/administrator.rst", "troubleshooting/index.rst"], "titles": ["Authentification et compte", "Configuration", "Types d\u2019\u00e9quipement", "\u00c9quipements", "Documentation de l\u2019API", "OAuth2", "Records", "Sports", "Statistiques", "Utilisateurs", "S\u00e9ances", "Historique des modifications", "Interface de ligne de commande", "Fonctionnalit\u00e9s", "FitTrackee", "Installation", "OAuth 2.0", "Outils tiers", "Administrateur", "D\u00e9pannage"], "terms": {"post": [0, 3, 5, 10, 16], "api": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 13, 14, 16], "auth": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10], "regist": 0, "enregistr": [0, 12, 13, 16], "utilis": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 15, 16], "envoi": [0, 9, 11, 13, 15, 16], "courriel": [0, 9, 11, 13, 18], "confirm": [0, 5, 11, 13, 15], "Le": [0, 3, 11, 13, 15], "nouvel": [0, 3, 9, 12, 13, 15], "cr\u00e9": [0, 3, 5, 10, 11, 12, 13, 15, 16], "inact": [0, 3, 9, 10, 13, 15], "L": [0, 1, 2, 7, 11, 13, 15, 16], "doit": [0, 1, 2, 3, 5, 7, 10, 11, 13, 15, 16, 18], "adress": [0, 1, 9, 12, 13, 15], "\u00e9lectron": [0, 1, 9, 12, 13, 15], "activ": [0, 1, 2, 7, 9, 11, 12, 13, 14, 15], "exempl": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 13, 14, 15, 16], "requ\u00eat": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 16], "http": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 15, 16], "1": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 12, 13, 15], "content": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11], "typ": [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 15], "appliqu": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15, 16], "json": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 13], "r\u00e9pons": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10], "succes": [0, 2, 3, 5, 7, 8, 10], "200": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 15], "success": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10], "status": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 13], "erreur": [0, 5, 11, 13, 18], "lor": [0, 12, 13], "400": [0, 1, 2, 3, 5, 7, 8, 9, 10, 11], "bad": [0, 1, 2, 3, 5, 7, 8, 9, 10], "request": [0, 1, 2, 3, 5, 7, 8, 9, 10, 15, 16], "messag": [0, 1, 5, 9, 10, 11, 12, 13, 15, 16], "error": [0, 1, 2, 3, 7, 9, 10, 11, 15], "email": [0, 1, 9, 11, 12, 18], "valid": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 15, 18], "must": [0, 1, 3, 9, 10, 11], "be": [0, 1, 3, 9, 10, 11, 15], "provided": [0, 1, 3, 9], "objet": [0, 1, 2, 3, 7, 9, 10], "usernam": [0, 9, 12, 15], "string": [0, 1, 3, 5, 7, 8, 9, 10], "nom": [0, 5, 8, 9, 11, 12, 15], "3": [0, 2, 7, 8, 9, 10, 13, 15], "30": [0, 8], "caracter": [0, 3, 5, 11, 15, 16], "requ": [0, 16], "password": [0, 11, 12, 15], "mot": [0, 9, 12, 13, 15], "pass": [0, 9, 12, 13, 15], "8": [0, 1, 10, 12, 13, 15, 16], "minimum": 0, "lang": [0, 11, 12], "pr\u00e9f\u00e9rent": [0, 3, 9, 12], "langu": [0, 11, 12, 13], "interfac": [0, 11, 13, 14, 15], "si": [0, 3, 5, 7, 8, 9, 10, 11, 12, 13, 15, 16, 18], "non": [0, 2, 3, 5, 7, 8, 10, 11, 14, 15], "fourn": [0, 3, 5, 8, 10, 12, 13, 15, 16, 18], "ser": [0, 3, 10, 11, 12, 13, 15], "anglais": [0, 11, 12, 13], "accepted_policy": 0, "boolean": [0, 1, 2, 3, 5, 7, 9, 12], "tru": [0, 1, 2, 3, 5, 7, 9, 11, 15], "a": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 13, 14], "accept": [0, 11, 13], "polit": [0, 1, 11, 13], "confidential": [0, 1, 11, 13], "cod": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 16], "\u00e9tat": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10], "ok": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10], "invalid": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 15], "payload": [0, 1, 2, 5, 7, 9, 10], "sorry": 0, "that": [0, 3, 11], "is": [0, 3, 10, 11], "already": [0, 3, 11], "taken": 0, "you": [0, 1, 2, 3, 7, 8, 9, 10, 15], "agre": 0, "privacy": [0, 11], "policy": [0, 11], "to": [0, 1, 3, 8, 10, 11, 15, 17], "character": [0, 3, 11], "required": 0, "only": [0, 10, 11], "alphanumeric": 0, "and": [0, 3, 11, 12, 15], "the": [0, 2, 3, 7, 9, 10, 11, 15], "underscor": 0, "charact": 0, "_": [0, 11], "allowed": [0, 10], "403": [0, 1, 2, 3, 7, 8, 9, 10], "forbidden": [0, 1, 2, 3, 7, 8, 9, 10], "registr": [0, 11], "disabled": 0, "500": [0, 1, 2, 3, 7, 9, 10, 11], "internal": [0, 1, 2, 3, 7, 9, 10], "serv": [0, 1, 2, 3, 7, 9, 10, 11, 15], "pleas": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10], "try": [0, 2, 3, 7, 9, 10], "again": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10], "or": [0, 1, 2, 3, 7, 9, 10, 11], "contact": [0, 1, 2, 3, 7, 9, 10, 13], "administrator": [0, 2, 3, 7, 9, 10], "account": [0, 9, 11], "apres": [0, 5, 11, 13, 15, 16], "inscript": [0, 1, 11, 13, 15], "auth_token": 0, "web": [0, 5, 14, 15, 16], "token": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 16], "successful": 0, "jeton": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 12, 15, 16], "resend": 0, "renvoi": [0, 5, 9, 10], "instruct": [0, 11, 13, 15], "d\u00e9sactiv": [0, 11, 12, 13, 15], "point": [0, 1, 5, 11, 13, 15, 16], "acces": [0, 1, 5, 16], "disponibl": [0, 6, 12, 13, 15, 16, 17], "resent": 0, "404": [0, 2, 3, 5, 7, 8, 9, 10, 11], "not": [0, 1, 2, 3, 5, 7, 8, 9, 10, 11, 13, 15], "found": [0, 2, 3, 5, 7, 8, 9, 10, 11], "requested": 0, "url": [0, 5, 11, 15, 16, 18], "was": [0, 3], "login": [0, 11], "connexion": [0, 15], "seul": [0, 3, 5, 8, 9, 10, 11, 13, 15, 16], "dispos": [0, 9, 13], "actif": [0, 3, 12, 13], "peuvent": [0, 11, 13, 14, 15], "connect": [0, 13], "successfully": 0, "logged": 0, "in": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 13, 15, 16], "401": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11], "unauthorized": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10], "credential": 0, "get": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10], "profil": [0, 5, 11, 16], "obten": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 16], "inform": [0, 1, 9, 11, 13, 14, 15], "authentifi": [0, 1, 2, 5, 6, 7, 8, 9, 10, 13], "scop": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10], "read": [0, 2, 3, 5, 6, 7, 8, 9, 10, 16], "dat": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 13], "accepted_privacy_policy": 0, "admin": [0, 1, 2, 6, 7, 8, 9, 10, 12, 15], "fals": [0, 1, 2, 5, 7, 9, 10, 15], "bio": [0, 9], "null": [0, 1, 3, 7, 9, 10, 11], "birth_dat": [0, 9], "created_at": [0, 9], "sun": [0, 6, 9, 10], "14": [0, 5, 9, 10], "jul": [0, 6, 9, 10], "2019": [0, 6, 8, 9, 10], "09": [0, 9], "58": [0, 9, 11], "gmt": [0, 3, 5, 6, 9, 10], "date_format": 0, "dd": 0, "mm": 0, "yyyy": 0, "display_ascent": 0, "sam": [0, 3, 6, 9, 10, 11], "exampl": [0, 1, 5, 9, 11, 15, 16], "com": [0, 1, 5, 9, 11, 15, 16], "email_to_confirm": 0, "first_nam": [0, 9], "imperial_unit": [0, 9], "is_act": [0, 2, 3, 7, 9], "languag": [0, 9, 11, 12], "last_nam": [0, 9], "locat": [0, 9, 15], "nb_sport": [0, 9], "nb_workout": [0, 9], "6": [0, 2, 3, 7, 9, 10, 12, 13, 15], "pictur": [0, 9, 10, 11], "record": [0, 4, 9, 10, 11, 13], "id": [0, 2, 3, 5, 6, 7, 9, 10], "9": [0, 6, 9, 13, 15], "record_typ": [0, 6, 9, 10], "AS": [0, 6, 9, 10], "sport_id": [0, 3, 6, 7, 8, 9, 10], "user": [0, 1, 3, 6, 8, 9, 10, 11, 15, 16], "valu": [0, 6, 9, 10, 11], "18": [0, 6, 9, 10, 13, 15], "workout_dat": [0, 6, 9, 10], "07": [0, 6, 9, 10], "08": [0, 3, 6, 9, 10], "00": [0, 3, 6, 9, 10], "workout_id": [0, 6, 9, 10], "hvybqybra7wwxpastwr4v2": [0, 6, 9, 10], "10": [0, 1, 3, 6, 9, 10, 13, 15], "fd": [0, 6, 9, 10], "13": [0, 6, 9, 10, 12, 13, 15], "ha": [0, 6, 9, 10], "43": [0, 6, 9, 10, 11], "97": [0, 6, 9, 10, 11], "11": [0, 6, 9, 13, 15], "ld": [0, 6, 9, 10], "01": [0, 6, 8, 9, 10], "12": [0, 6, 9, 10, 15, 17], "MS": [0, 6, 9, 10], "sports_list": [0, 9], "4": [0, 2, 7, 8, 9, 10, 12, 13, 15], "start_elevation_at_zero": 0, "timezon": [0, 9, 11], "europ": [0, 9], "paris": [0, 9], "total_ascent": [0, 8], "720": 0, "35": [0, 11], "total_dist": [0, 3, 8, 9], "67": [0, 8, 9], "895": [0, 9], "total_dur": [0, 3, 8, 9], "50": [0, 3, 8, 9, 11, 15], "27": [0, 5, 9, 13], "use_dark_mod": 0, "use_raw_gpx_speed": 0, "weekm": [0, 8, 9], "En": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 13, 14], "t\u00eat": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 16], "authoriz": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 15, 16], "oauth": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 14, 15], "2": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 13, 14, 15], "0": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15], "bear": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10], "provid": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11], "signatur": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10], "expired": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10], "log": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 15, 18], "edit": [0, 11, 13], "modifi": [0, 2, 3, 7, 9, 12, 13, 15], "writ": [0, 1, 2, 3, 5, 7, 9, 10, 16], "updated": [0, 3, 11], "pr\u00e9nom": 0, "famill": 0, "localis": [0, 15], "biograph": 0, "naissanc": 0, "format": [0, 8, 10, 11, 13, 14], "Y": [0, 8, 10], "preferent": [0, 11], "pris": [0, 5, 11, 12, 13, 15, 16], "charg": [0, 5, 11, 12, 13, 15, 16, 19], "valeur": [0, 3, 5, 10, 12, 13, 15, 16, 18], "d\u00e9faut": [0, 3, 5, 9, 10, 11, 12, 13, 15], "date_string": 0, "correspond": [0, 10, 15], "mmm": 0, "do": [0, 1, 2, 3, 7, 8, 9, 10, 11], "local": [0, 11, 14, 15], "e": 0, "fr": [0, 9, 15], "gl": 0, "it": [0, 3], "nl": 0, "nb": 0, "affich": [0, 10, 11, 12, 13, 14, 15, 16, 19], "dan": [0, 1, 3, 10, 11, 12, 13, 14, 15, 16, 19], "d\u00e9nivel": [0, 6, 10, 13], "total": [0, 3, 5, 8, 10, 11, 13], "distanc": [0, 6, 10, 11, 13], "unit": [0, 11, 15], "imp\u00e9rial": [0, 13], "Les": [0, 6, 10, 13, 14, 15, 16, 19], "graphiqu": [0, 11, 13, 15], "altitud": [0, 11, 13], "commencent": 0, "z\u00e9ro": [0, 13], "fuseau": [0, 10, 13], "horair": [0, 10, 13], "them": [0, 11, 13], "sombr": [0, 13], "vrai": 0, "s\u00e9lection": [0, 13], "selon": [0, 13, 15], "navig": [0, 11, 13, 15], "gpx": [0, 5, 10, 11, 13, 14, 15, 17], "filtr": [0, 11, 13], "calcul": [0, 8, 11, 13], "vitess": [0, 6, 10, 11, 13, 15], "La": [0, 11, 12, 13, 15, 16, 18], "semain": [0, 8, 13], "commenc": [0, 8, 11, 13, 15, 18], "lund": [0, 8, 13], "don": [0, 5, 8, 10, 11, 13, 14, 16, 18], "match": 0, "sport": [0, 1, 3, 4, 8, 10, 11, 15], "color": [0, 7, 11], "000000": 0, "default_equipment_id": 0, "stopped_speed_threshold": [0, 7], "user_id": [0, 3], "int": [0, 2, 3, 5, 7, 10], "lequel": [0, 15], "couleur": [0, 13], "hexad\u00e9cimal": 0, "ajout": [0, 9, 11, 12, 13, 14, 15, 17], "s\u00e9anc": [0, 1, 3, 4, 7, 8, 11, 14, 16, 17, 19], "float": [0, 10], "seuil": [0, 13], "arr\u00eat": [0, 11, 13, 15], "gpxpy": [0, 11, 13, 15], "array": [0, 3, 5, 10], "of": [0, 1, 3, 10, 11, 15, 16], "\u00e9quip": [0, 4, 10, 11, 16], "moment": [0, 10, 11, 13], "peut": [0, 3, 8, 9, 10, 11, 12, 13, 15, 16], "\u00eatre": [0, 3, 5, 10, 11, 12, 13, 14, 15, 16, 18], "associ": [0, 3, 5, 7, 10, 11, 12, 13, 16], "hexadecimal": 0, "equipment_id": [0, 10], "an": [0, 5, 10, 11], "one": [0, 10], "equipment": [0, 2, 3, 10, 11, 16], "can": [0, 9, 10, 11, 15, 18], "added": [0, 3, 10, 11], "with": [0, 3, 10, 11, 15], "exist": [0, 3, 8, 9, 10, 11, 13, 14, 15], "for": [0, 1, 3, 10, 11, 15], "delet": [0, 3, 5, 9, 10, 11], "reset": [0, 11, 12], "r\u00e9initialis": [0, 9, 12, 13, 15], "204": [0, 3, 5, 9, 10], "parametr": [0, 2, 3, 5, 7, 8, 9, 10, 11, 13, 16], "identifi": [0, 5, 7, 8, 10, 16], "no": [0, 3, 5, 9, 10, 11], "supprim": [0, 3, 5, 9, 10, 11, 12, 13], "mis": [0, 3, 7, 9, 10, 11, 13, 16], "jour": [0, 1, 3, 7, 9, 10, 11, 12, 13], "imag": [0, 9, 10, 11, 13, 15, 19], "multipart": [0, 5, 10], "form": [0, 5, 10, 11], "fil": [0, 1, 10, 11, 15], "fichi": [0, 1, 10, 11, 12, 13, 14, 15, 17, 19], "extens": [0, 10, 15], "autoris": [0, 1, 5, 10, 15, 16], "jpg": 0, "png": [0, 10, 15], "gif": 0, "part": [0, 10, 11, 13, 14, 16, 17], "selected": [0, 10], "413": [0, 10], "entity": [0, 10], "too": [0, 10], "larg": [0, 10, 15], "during": [0, 3, 10], "updat": [0, 3, 10, 11, 15], "siz": [0, 1, 10, 11, 15], "exceed": [0, 3, 10, 11], "0mb": [0, 10], "trait": [0, 12], "demand": [0, 11, 12, 13, 15], "processed": 0, "patch": [0, 1, 2, 3, 7, 9, 10], "suiv": [0, 6, 13, 15, 16, 17, 18], "modif": [0, 13, 14], "chang": [0, 3, 11, 13, 15], "actuel": [0, 3], "autr": [0, 9, 13, 15], "new_password": 0, "nouveau": [0, 12, 13, 15, 16], "missing": [0, 11], "current": [0, 9, 11], "uniqu": [0, 5, 11, 12, 15, 16], "new": [0, 3, 9, 11, 13], "logout": [0, 11], "d\u00e9connexion": 0, "out": 0, "access": [0, 11], "revoked": 0, "malformed": 0, "other": [0, 3, 9], "reason": 0, "blacklist": 0, "export": [0, 11, 12, 13, 14, 15], "archiv": [0, 1, 11, 12, 13, 15], "Il": [0, 11, 13, 14, 15, 16], "cr\u00e9ation": [0, 11, 13], "in_progress": 0, "errored": 0, "taill": [0, 1, 13, 15], "octet": 0, "lorsqu": [0, 11, 12, 15], "r\u00e9uss": 0, "wed": 0, "mar": [0, 3, 11, 15], "2023": [0, 3, 15], "31": [0, 10, 13, 15], "17": [0, 10], "file_nam": 0, "archive_rgjsr3fht295ywnqr5yp": 0, "zip": [0, 1, 10, 11, 13], "file_siz": 0, "924": 0, "aucun": [0, 3, 10, 13, 14, 15], "ongoing": 0, "completed": 0, "t\u00e9l\u00e9charg": [0, 10, 12, 13, 15, 19], "download": [0, 10, 11], "archive_rgjsr3fhr5yp": 0, "x": [0, 10, 11, 15, 16], "gzip": 0, "config": [1, 11, 15], "about": [1, 11, 15], "admin_contact": 1, "gpx_limit_import": 1, "is_email_sending_enabled": 1, "is_registration_enabled": 1, "max_single_file_siz": 1, "1048576": 1, "max_user": 1, "max_zip_file_siz": 1, "10485760": 1, "map_attribu": [1, 15], "copy": [1, 15], "href": [1, 15], "www": [1, 15], "openstreetmap": [1, 11, 15], "org": [1, 15], "copyright": [1, 15], "contributor": [1, 15], "privacy_policy": 1, "privacy_policy_dat": 1, "stats_workouts_lim": 1, "10000": 1, "version": [1, 12, 13, 15, 16], "weather_provid": 1, "getting": 1, "mettr": [1, 9, 10, 11, 12, 13, 15], "avoir": [1, 2, 7, 15], "droit": [1, 2, 7, 9, 11, 12, 13, 15, 16], "administr": [1, 2, 7, 9, 12, 15, 16, 19], "instanc": [1, 11, 13, 15], "integ": [1, 2, 3, 5, 7, 8, 9, 10], "nombr": [1, 9, 10, 12, 13, 15], "maximum": [1, 13], "maximal": [1, 6, 10, 11, 12, 13], "inscrir": [1, 11, 13, 15], "statist": [1, 4], "max": [1, 9, 10, 11, 12], "great": [1, 11], "than": [1, 9, 11], "equal": 1, "uploaded": [1, 11, 15], "numb": [1, 11, 15], "workout": [1, 3, 5, 6, 7, 8, 10, 11, 16], "statistic": [1, 8, 11], "hav": [1, 2, 3, 7, 8, 9, 10, 11], "perm": [1, 2, 3, 7, 8, 9, 10], "when": [1, 11], "updating": 1, "ping": 1, "contr\u00f4l": 1, "pong": 1, "tous": [2, 3, 5, 6, 7, 8, 9, 11, 13, 15], "equipment_typ": [2, 3], "label": [2, 3, 7, 11, 13], "sho": [2, 3], "bik": [2, 3], "train": 2, "kayak_boat": 2, "5": [2, 5, 7, 8, 9, 10, 12, 13, 15], "skis": [2, 13], "snowsho": [2, 11], "has_equipment": 2, "equipment_type_id": [2, 3], "trouv": [2, 3, 5, 7, 10], "d\u00e9": 2, "propri\u00e9tair": [3, 11, 13], "voir": [3, 11, 13, 15, 16, 18], "quelqu": [3, 9, 10, 11, 13, 16], "creation_dat": [3, 10], "Tue": 3, "21": 3, "06": [3, 5, 8], "default_for_sport_id": 3, "descript": [3, 5, 12, 13, 15], "first": [3, 11], "fittracke": [3, 5, 12, 13, 15, 16, 17, 19], "2ukrviyshoakg8qsuknus4": 3, "my": 3, "total_moving": 3, "workouts_count": [3, 9], "29": 3, "second": [3, 10], "equipment_short_id": 3, "anoth": 3, "piec": 3, "court": [3, 10], "201": [3, 10, 11], "created": [3, 5, 10], "from": [3, 8, 10, 11, 15], "bref": 3, "moin": [3, 10], "\u00e9ventuel": 3, "plus": [3, 6, 11, 12, 13, 14, 15, 18], "longu": [3, 6, 11, 13], "limit": [3, 11, 13], "facult": [3, 16], "integer": 3, "obligatoir": [3, 5, 8, 10, 11, 12, 15, 16], "parameter": [3, 11], "sport_label": 3, "equipment_type_label": 3, "sav": [3, 11], "permet": [3, 11, 12, 13, 14, 16], "statut": [3, 9, 12], "tout": [3, 8, 13, 15], "d\u00e9fin": [3, 11, 13, 16, 18], "qrj7by6h2iyjsv8sersfgv": 3, "28": 3, "supplied": 3, "refresh": 3, "recalcul": [3, 13], "cas": [3, 5, 13, 15], "o\u00f9": [3, 13, 15], "incorrect": [3, 11, 13], "Un": [3, 9, 11, 13, 15], "propr": [3, 9, 13, 14], "suppress": [3, 11, 13], "forc": 3, "entre": [3, 5, 10, 13, 16], "import": [3, 5, 11, 13, 15], "tant": 3, "argument": [3, 12], "requis": 3, "cel": [3, 11, 13, 15], "enlev": 3, "cannot": [3, 11], "has": [3, 9, 11], "associated": [3, 11], "without": [3, 10, 11], "paramet": [3, 15], "authentif": [4, 15, 16], "compt": [4, 9, 10, 11, 12, 15, 17], "configur": [4, 11, 13, 15, 16, 18], "oauth2": [4, 16], "app": [5, 11, 15, 16], "client": [5, 11, 13, 15, 16], "pagin": [5, 9, 10], "pag": [5, 9, 10, 11], "Ce": 5, "accessibl": [5, 11, 15, 16], "san": [5, 8, 9, 10, 11, 13, 14, 15], "client_descript": 5, "client_id": [5, 16], "o22a27s2abpuoxjbxv3ujdox": 5, "issued_at": 5, "thu": 5, "july": 5, "2022": 5, "53": [5, 11], "nam": [5, 11], "redirect_ur": 5, "callback": [5, 16], "websit": 5, "has_next": 5, "has_prev": 5, "client_secret": 5, "secret": [5, 15, 16], "client_nam": 5, "client_ur": 5, "list": [5, 10, 11, 12, 14, 15], "redirect": [5, 11, 16], "cha\u00een": [5, 16], "optionnel": [5, 15], "client_client_id": 5, "by_id": 5, "enti": 5, "revok": 5, "r\u00e9voqu": 5, "redirig": [5, 16], "ver": [5, 11, 15, 16], "\u00e9mettr": 5, "response_typ": [5, 16], "support": [5, 11, 15, 16, 18], "stat": [5, 8, 11, 16], "\u00e9vit": [5, 11, 13], "falsif": [5, 16], "sit": [5, 16], "cross": [5, 16], "forgery": [5, 16], "csrf": [5, 16], "recommand": [5, 15, 16], "code_challeng": [5, 16], "g\u00e9ner": [5, 12, 13, 15, 16], "v\u00e9rif": [5, 11, 16, 18], "pkce": [5, 16], "code_challenge_method": [5, 16], "m\u00e9thod": [5, 15, 16], "challeng": [5, 16], "s256": [5, 16], "librair": [5, 15], "authlib": [5, 15, 16], "d\u00e9livr": 5, "rafra\u00eech": 5, "access_token": 5, "roehv64thcg28wcewzhrnvlusoduvw8nvnhkcml57": 5, "expires_in": 5, "864000": 5, "refresh_token": 5, "nuv9cy8vqonrqkhtz5pqaq2zw7msh0mornpjr14amswd6f6": 5, "token_typ": 5, "expires_at": 5, "1658660147": 5, "0667062": 5, "grant_typ": 5, "authorization_cod": [5, 16], "\u00e9miss": 5, "code_verifi": 5, "moyen": [6, 8, 10, 11, 13, 15], "\u00e9lev": [6, 13, 15], "dur": [6, 10, 11, 13], "retourn": [6, 8], "is_active_for_us": 7, "cycling": [7, 11], "transport": [7, 11, 13], "hiking": 7, "mountain": 7, "biking": [7, 10], "running": 7, "walking": 7, "check_workout": 7, "has_workout": 7, "v\u00e9rifi": [7, 15, 18], "user_nam": [8, 9], "by_tim": 8, "entra\u00een": [8, 10, 13], "p\u00e9riod": [8, 13, 15], "temp": 8, "acced": [8, 15, 16], "2018": [8, 10], "tim": [8, 10, 11], "week": [8, 11], "2017": [8, 10], "total_workout": 8, "203": 8, "156": [8, 11], "15": [8, 10, 12, 13, 15], "282": [8, 11], "12341": 8, "150": 8, "178": [8, 11], "47": [8, 10, 11], "9960": 8, "46": [8, 11], "78": 8, "613": 8, "1267": 8, "average_ascent": 8, "101": [8, 11], "average_dist": 8, "average_dur": 8, "7641": 8, "average_speed": 8, "48": 8, "average_descent": 8, "59": [8, 11], "33": [8, 11], "3320": 8, "16": [8, 10, 13], "99": [8, 11], "95": [8, 11], "d\u00e9but": [8, 10], "fin": [8, 10, 11, 15], "dimanch": [8, 13], "month": [8, 11], "mois": [8, 11, 13], "year": 8, "ann\u00e9": [8, 13], "default": [8, 10, 11, 15], "averag": [8, 11], "period": 8, "by_sport": 8, "all": [8, 15], "uploads_dir_siz": 8, "1000": 8, "Ne": 9, "order_by": [9, 10], "par_pag": 9, "is_admin": 9, "sat": 9, "20": [9, 13], "03": [9, 10], "per_pag": [9, 10], "q": 9, "order": [9, 10, 11], "ordre": [9, 10], "tri": [9, 10, 13], "asc": [9, 10], "desc": [9, 10], "criter": 9, "jpeg": 9, "activat": [9, 12], "new_email": 9, "reset_password": 9, "different": [9, 11], "sauf": [9, 15], "sien": 9, "john_do": 9, "your": 9, "right": [9, 11], "02": 10, "ascent": [10, 11], "ave_speed": 10, "bound": 10, "51": 10, "descent": [10, 11], "durat": [10, 11], "04": 10, "kjxavsturjvoah2wvcegef": 10, "map": [10, 11, 13, 14], "max_alt": 10, "max_speed": 10, "min_alt": 10, "modification_dat": 10, "moving": [10, 11], "next_workout": 10, "paus": [10, 11], "previous_workout": 10, "Mon": 10, "jan": 10, "segment": [10, 11, 13], "titl": [10, 11], "weather_end": 10, "weather_start": 10, "with_gpx": 10, "100": [10, 11, 13], "titr": [10, 13], "tient": 10, "majuscul": 10, "minuscul": 10, "distance_from": 10, "minimal": [10, 11, 13, 16], "distance_to": 10, "duration_from": 10, "h": [10, 13], "M": 10, "duration_to": 10, "ave_speed_from": 10, "ave_speed_to": 10, "max_speed_from": 10, "max_speed_to": 10, "sorting": 10, "criteri": 10, "workout_short_id": 10, "57": [10, 11], "45": 10, "22": 10, "sunday": 10, "morning": 10, "cart": [10, 11, 13, 14, 15, 19], "leaflet": [10, 15], "this": [10, 12, 15], "chart_dat": 10, "r\u00e9cuper": [10, 13, 15, 16], "chart": [10, 11, 15], "js": [10, 15], "elev": [10, 11], "279": [10, 11], "latitud": 10, "5078118": 10, "longitud": 10, "1232004": 10, "speed": [10, 11], "63": 10, "fri": 10, "44": [10, 11], "7": [10, 12, 13, 15, 16], "7380": 10, "280": [10, 11], "5079733": 10, "1234538": 10, "39": 10, "segment_id": 10, "map_id": 10, "fa33f4d996844a5c73ecd1ae24456ab8": 10, "1563529507772": 10, "map_til": 10, "z": [10, 15], "tuil": [10, 11, 13], "serveur": [10, 11, 13, 14, 18], "4109": 10, "2930": 10, "sous": [10, 15], "domain": [10, 15], "zoom": 10, "index": 10, "axe": [10, 13], "xml": 10, "guillemet": 10, "doubl": 10, "doivent": [10, 15, 16], "\u00e9chapp": [10, 11], "Pour": [10, 11, 13, 15, 16], "no_gpx": 10, "uuid": [10, 11], "posit": [10, 11, 13], "n\u00e9gat": [10, 13], "km": [10, 13], "d\u00e9j\u00e0": [10, 12], "remplac": [10, 11, 13, 15], "vid": [10, 12, 15], "mainten": [11, 15], "bulgar": [11, 13], "614": 11, "are": 11, "translated": 11, "pr": 11, "607": 11, "translat": 11, "german": [11, 15], "608": 11, "bulgarian": 11, "609": 11, "galician": [11, 13], "spanish": 11, "612": 11, "czech": 11, "avanc": [11, 13], "basqu": [11, 13], "tchequ": [11, 13], "73": 11, "n\u00e9erland": [11, 13], "galicien": 11, "allemand": [11, 13], "italien": [11, 13], "82": 11, "norv\u00e9gien": [11, 13], "bokm\u00e5l": [11, 13], "52": 11, "polon": [11, 13], "91": 11, "portug": [11, 13], "98": 11, "espagnol": [11, 13], "merc": 11, "contributeur": [11, 15, 17], "gallegonovato": 11, "jmlich": 11, "mara21": 11, "qwerty287": 11, "xmgz": 11, "604": 11, "swimrun": [11, 13], "598": 11, "cli": [11, 12, 13, 15], "fix": [11, 15], "lim": [11, 15], "cleanup": 11, "600": 11, "603": 11, "72": 11, "erral": 11, "Cette": [11, 14, 15], "contient": [11, 13, 15], "migrat": [11, 12, 15], "bas": [11, 13, 15, 18], "590": 11, "italian": 11, "591": 11, "592": 11, "dutch": 11, "593": 11, "fb10602": 11, "92": 11, "595": 11, "ci": 11, "up": [11, 14], "test": [11, 15], "confusedalex": 11, "lukasitaly": 11, "simontb": 11, "slothj": 11, "566": 11, "featur": 11, "improved": 11, "section": 11, "575": 11, "add": 11, "display": 11, "587": [11, 15], "improv": 11, "588": 11, "click": 11, "checkbox": 11, "564": 11, "565": 11, "polish": 11, "571": 11, "582": 11, "583": 11, "simplify": 11, "dock": 11, "deployment": 11, "byakurau": 11, "jderuit": 11, "pluj": 11, "f2aec30": 11, "strength": 11, "estim": 11, "563": 11, "init": 11, "creation": 11, "550": 11, "typo": 11, "instead": 11, "per": [11, 15], "551": 11, "555": 11, "558": 11, "portugues": 11, "74": 11, "88": 11, "556": 11, "minor": 11, "refacto": 11, "557": 11, "prepar": 11, "sqlalchemy": [11, 15, 18], "voodoopt": 11, "546": 11, "refreshed": 11, "after": [11, 15], "displaying": 11, "545": 11, "urtzai": 11, "540": 11, "542": 11, "544": 11, "543": 11, "tool": 11, "replac": 11, "black": 11, "flake8": 11, "isort": 11, "ruff": 11, "ondrejzivny": 11, "527": 11, "endpoint": 11, "respons": 11, "531": 11, "mobil": [11, 14], "532": 11, "foot": 11, "dark": 11, "mod": 11, "536": 11, "accessibility": 11, "526": 11, "norwegian": 11, "533": 11, "534": 11, "537": 11, "538": 11, "528": 11, "readm": 11, "reworked": 11, "530": 11, "specify": 11, "agplv3": 11, "licens": [11, 14, 15], "comradekingu": 11, "d\u00e9sorm": 11, "259": 11, "512": 11, "ability": 11, "filt": 11, "508": 11, "stopped": 11, "threshold": 11, "3b6fa25": 11, "tabl": 11, "small": 11, "resolu": 11, "51758b4": 11, "filter": 11, "hiding": 11, "507": 11, "510": 11, "511": 11, "521": 11, "524": 11, "89": 11, "75": 11, "502": 11, "remov": 11, "deprecated": 11, "command": [11, 13, 14, 15], "506": 11, "databas": [11, 12, 15], "jat255": 11, "504": 11, "fail": 11, "496": 11, "499": 11, "84": 11, "60": 11, "bjornclauw": 11, "mariuz": 11, "495": 11, "menu": [11, 13], "clicking": 11, "490": 11, "EU": 11, "494": 11, "install": [11, 14], "python": [11, 15, 16], "b748459": 11, "alert": 11, "481": 11, "handl": 11, "keyboard": 11, "dropdown": 11, "3821e37": 11, "mak": [11, 15], "calendar": 11, "arrow": 11, "488": 11, "489": 11, "482": 11, "484": 11, "aff4d68": 11, "action": 11, "8aa4cff": 11, "load": [11, 18], "478": 11, "clickabl": 11, "dashboard": 11, "479": 11, "ui": 11, "476": 11, "477": 11, "475": 11, "build": [11, 15], "use": 11, "poetry": [11, 15], "cor": 11, "traxy": 11, "koen": 11, "474": 11, "link": 11, "6e215a": 11, "background": 11, "modal": 11, "displayed": 11, "473": 11, "113": 11, "464": 11, "471": 11, "trekking": [11, 13], "469": 11, "472": 11, "resetting": 11, "468": 11, "456": 11, "drop": 11, "postgresql": [11, 15, 18], "85": 11, "61": 11, "davidhenrythoreau": 11, "224": 11, "result": 11, "444": 11, "d\u00e9pend": 11, "449": 11, "vu": [11, 15], "tooling": 11, "library": 11, "450": 11, "441": 11, "upgrad": [11, 15], "433": 11, "encoded": 11, "427": 11, "typos": 11, "431": 11, "428": 11, "2bcff2e": 11, "flask": [11, 15], "436": 11, "438": 11, "workflow": 11, "421": 11, "darksky": [11, 15], "avail": 11, "weath": 11, "provider": 11, "env": [11, 15], "426": 11, "til": [11, 15], "thank": 11, "astridx": 11, "422": 11, "e2e": 11, "packaged": 11, "411": 11, "various": 11, "416": 11, "closing": 11, "410": 11, "415": 11, "417": 11, "418": 11, "mariusz": 11, "407": 11, "zero": 11, "409": 11, "open": [11, 13, 14], "wat": 11, "swimming": 11, "398": 11, "402": 11, "399": 11, "406": 11, "56": 11, "380": 11, "390": 11, "391": 11, "paragliding": 11, "384": 11, "inconsistent": 11, "between": 11, "gp": [11, 13], "393": 11, "pil": 11, "modul": [11, 15], "attribut": 11, "antiali": 11, "394": 11, "397": 11, "386": 11, "contributing": 11, "md": 11, "388": 11, "395": 11, "cc3fe1c": 11, "42": 11, "dkm": 11, "partiel": 11, "quant": 11, "encor": [11, 14], "weblat": [11, 13], "351": 11, "370": 11, "371": 11, "375": 11, "french": [11, 13], "thovi98": 11, "376": 11, "1375986": 11, "furo": 11, "377": 11, "354": 11, "374": 11, "virtualenv": [11, 15], "87": 11, "36": 11, "366": 11, "369": 11, "hosted": 11, "367": 11, "358": 11, "filtering": 11, "359": 11, "overlap": 11, "350": 11, "352": 11, "356": 11, "357": 11, "365": 11, "gnu": 11, "ewm": 11, "parm": 11, "dessous": 11, "servic": [11, 15], "319": 11, "creat": [11, 15], "329": 11, "start": 11, "axis": 11, "at": [11, 15], "sticky": 11, "333": 11, "by": [11, 15], "338": 11, "relev": 11, "328": 11, "track": 11, "imperial": 11, "b29ed7": 11, "250": 11, "320": 11, "323": 11, "06ba975": 11, "bcc568e": 11, "ea0ac99": 11, "a458f5f": 11, "075aeb9": 11, "60e164d": 11, "318": 11, "J": 11, "lavoi": 11, "mondstern": 11, "314": 11, "deleted": 11, "process": [11, 15], "315": 11, "Une": [11, 12, 13, 15, 18], "personnalis": [11, 13], "afin": [11, 13, 16], "puissent": [11, 13], "prendr": [11, 13], "connaiss": [11, 13], "conten": [11, 13, 15], "t\u00e9l\u00e9vers": [11, 13], "enfin": 11, "compl\u00e9mentair": 11, "pouv": 11, "util": [11, 13], "propos": [11, 13], "301": [11, 15], "304": 11, "305": 11, "additional": 11, "307": 11, "quand": 11, "d\u00e9marr": [11, 15, 19], "297": 11, "308": 11, "310": 11, "290": 11, "294": 11, "postgresql10": 11, "265": 11, "implementing": 11, "altern": 11, "visualcrossing": 11, "environment": [11, 15, 18], "variabl": [11, 18], "set": [11, 12, 15], "weather_api_provid": [11, 15], "see": [11, 15], "287": 11, "289": 11, "dperruso": 11, "c88a515": 11, "f96dcef": 11, "mountaineering": 11, "278": 11, "270": 11, "nederland": 11, "258": 11, "pars": 11, "271": 11, "273": 11, "274": 11, "paralleliz": 11, "275": 11, "disabl": 11, "work": [11, 15, 18], "entry": 11, "commend": 11, "lign": [11, 13, 14, 15], "dramatiq": [11, 12, 15], "3c8d9c2": 11, "trailing": 11, "comm": [11, 13, 15], "d\u00e9velopp": [11, 12, 14], "264": 11, "whit": 11, "gray": 11, "266": 11, "260": 11, "checked": 11, "261": 11, "should": 11, "return": [11, 15], "n\u00e9cessit": [11, 15, 16], "b1536fc": 11, "257": 11, "body": [11, 15], "nginx": [11, 13, 15, 16, 18], "112": 11, "allow": [11, 15], "244": 11, "virtual": 11, "rid": 11, "246": 11, "247": 11, "microsecond": 11, "252": 11, "242": 11, "241": 11, "packag": 11, "239": 11, "cb9d02f": 11, "english": 11, "231": 11, "invalidat": 11, "236": 11, "rat": [11, 15], "232": 11, "hidden": 11, "237": 11, "212": 11, "230": 11, "problem": [11, 13, 15], "225": 11, "grammar": 11, "issu": [11, 13], "skylan0916": 11, "derni": [11, 15], "ex\u00e9cut": 11, "inf\u00e9rieur": 11, "diff\u00e9rent": [11, 13], "ex\u00e9cu": [11, 12], "213": 11, "using": 11, "measur": 11, "ft": 11, "mi": 11, "223": 11, "icon": 11, "167": 11, "162": 11, "fmstrat": 11, "210": 11, "could": 11, "requiring": 11, "subdomain": 11, "staticmap_subdomain": [11, 15], "209": 11, "containing": 11, "multipl": 11, "gorgoback": 11, "Et": 11, "detect": 11, "brows": 11, "matching": 11, "if": [11, 15], "208": 11, "card": 11, "html": 11, "changing": 11, "197": 11, "196": 11, "manag": [11, 12], "190": 11, "193": 11, "deleting": 11, "192": 11, "191": 11, "layout": 11, "nomenclatur": 11, "inclus": 11, "195": 11, "cec": 11, "affect": [11, 13], "pr\u00e9c\u00e9dent": 11, "cc4287e": 11, "offset": 11, "Pas": 11, "refactoris": 11, "avant": [11, 13, 15], "possibl": [11, 13, 14, 15], "fournisseur": [11, 15], "smtp": [11, 15, 18], "r\u00e9duit": 11, "pr\u00e9requ": 11, "mono": [11, 13], "ger": [11, 12, 13, 15, 18], "180": 11, "send": 11, "tl": [11, 15], "177": 11, "manqu": 11, "petit": 11, "\u00e9cran": 11, "175": 11, "173": 11, "171": 11, "correctly": 11, "apport": 11, "niveau": 11, "155": 11, "106": 11, "169": 11, "161": 11, "farthest": 11, "160": 11, "plusieur": [11, 13, 14, 15], "danielsiersleben": 11, "rapport": 11, "initialis": [11, 15], "149": 11, "152": 11, "autoespcap": 11, "model": 11, "jinj": 11, "151": 11, "security": 11, "nettoi": 11, "entr\u00e9": [11, 15, 16], "alphanumer": 11, "worker": [11, 12, 15], "lanc": [11, 15], "script": 11, "product": 11, "dotenv": 11, "146": 11, "145": 11, "140": 11, "fullscreen": 11, "control": [11, 15], "138": 11, "initial": [11, 15], "135": 11, "finish": 11, "marker": 11, "134": 11, "wind": 11, "direct": [11, 13, 15], "877fa0f": 11, "changed": 11, "131": 11, "129": 11, "editing": 11, "127": [11, 15], "validat": 11, "legitimat": 11, "uri": 11, "such": 11, "localhost": [11, 15], "123": 11, "121": 11, "activity": 11, "contain": [11, 15], "116": 11, "bet": 11, "button": 11, "graph": 11, "screen": 11, "115": 11, "option": [11, 12, 15], "min": 11, "90": 11, "som": 11, "seem": 11, "104": 11, "switch": 11, "full": 11, "development": 11, "109": 11, "slow": 11, "mov": 11, "93": 11, "paf38": 11, "83": 11, "configured": 11, "generat": 11, "static": 11, "keep": 11, "default_staticmap": [11, 15], "81": 11, "remaining": 11, "textar": 11, "modify": 11, "his": 11, "birth": 11, "day": [11, 12, 15], "80": [11, 15], "79": 11, "rebuild": 11, "javascript": [11, 15], "Du": 11, "fait": [11, 15], "postgr": [11, 18], "exceeding": 11, "71": 11, "70": 11, "less": 11, "66": 11, "used": 11, "importing": 11, "64": 11, "shown": 11, "62": 11, "sending": 11, "\u00e9valu": [11, 15], "standardiz": 11, "term": 11, "upload": [11, 15, 17], "directory": [11, 15], "also": 11, "uploading": 11, "activit": 11, "introduit": 11, "majeur": 11, "facilit": 11, "dor\u00e9nav": 11, "attent": [11, 15, 18], "lir": 11, "certain": [11, 12, 14, 15], "environ": [11, 12, 18], "renomm": 11, "celui": [11, 15], "thunderforest": [11, 15], "outdoor": [11, 15], "54": 11, "d\u00e9plac": 11, "red": [11, 12, 15], "complet": 11, "co": 11, "4c3fc34": 11, "empty": 11, "34614d5": 11, "spinn": 11, "loading": 11, "b862a77": 11, "2e1ee2c": 11, "interceptor": 11, "rout": [11, 15], "definit": 11, "down": 11, "mor": 11, "weekend": 11, "40": 11, "localiz": 11, "i18n": 11, "41": 11, "show": [11, 12, 15], "mous": 11, "over": 11, "docu": 11, "choos": 11, "37": 11, "34": 11, "anymor": 11, "pipenv": 11, "gestion": [11, 15], "paquet": [11, 15], "detailed": 11, "tooltip": 11, "standard": [11, 15], "v\u00e9lo": [11, 13], "randon": [11, 13], "vtt": [11, 13], "cours": [11, 13], "pied": [11, 13], "march": [11, 13], "\u00e9gal": [11, 12, 13, 14, 15], "enter": 11, "heur": [11, 13, 15], "m\u00e9t\u00e9o": [11, 13], "cl\u00e9": [11, 13, 15], "calendri": [11, 13], "mensuel": [11, 13], "cour": [11, 12, 14, 15], "grand": [11, 13], "recherch": 11, "search": 11, "view": [11, 15], "usag": [12, 15], "arg": [12, 15], "lin": [12, 15], "help": [12, 15], "exit": [12, 15], "expir": 12, "depuis": [12, 15], "noir": 12, "al\u00e9atoir": [12, 15], "deux": 12, "lettr": 12, "iso": 12, "639": 12, "incomplet": 12, "stock": [13, 14, 16], "sportiv": [13, 14], "plein": [13, 14], "air": [13, 14], "Des": 13, "plut\u00f4t": 13, "m\u00eam": [13, 15], "r\u00e9pertoir": [13, 15], "chiffr": [13, 15], "Avec": 13, "street": [13, 14], "statiqu": [13, 15], "trac": [13, 15], "virtuel": [13, 15], "\u00e9lectr": 13, "alpin": 13, "nag": 13, "eau": 13, "libr": 13, "parapent": 13, "19": 13, "aviron": 13, "ski": 13, "raquet": 13, "trail": 13, "lieu": 13, "Elle": 13, "except": [13, 18], "analys": [13, 15], "mani": [13, 15], "sp\u00e9cif": 13, "jusqu": 13, "system": [13, 15], "m\u00e9triqu": 13, "ains": [13, 15], "contrair": 13, "produir": 13, "differ": 13, "origin": 13, "particuli": 13, "outil": [13, 14, 15], "tier": [13, 14], "permettent": 13, "entrer": 13, "relat": 13, "bouton": 13, "visualis": 13, "visual": [13, 15], "crossing": [13, 15], "sourc": 13, "vent": 13, "flech": 13, "indiqu": 13, "infobull": 13, "proven": 13, "perform": 13, "atteint": 13, "masqu": 13, "cf": [13, 14, 15], "comport": 13, "d\u00e9roul": 13, "instant": 13, "r\u00e9cent": 13, "consult": 13, "nouveaut": 13, "dont": [13, 16], "premi": 13, "clair": 13, "chois": [13, 15], "affichag": 13, "cach": 13, "d\u00e9part": 13, "exclur": 13, "extr\u00eam": 13, "exclu": 13, "prochain": 13, "mati": 13, "appara\u00eetr": 13, "toujour": 13, "chaussur": 13, "kayak": 13, "boat": 13, "visibl": 13, "chaqu": 13, "bien": 13, "doiv": 13, "automat": 13, "appar": 13, "rest": [13, 16], "laquel": 13, "tierc": [13, 16], "unitair": 13, "mo": 13, "000": 13, "S": 13, "n\u00e9cessair": [13, 15], "volumin": [13, 18], "avert": 13, "suppl\u00e9mentair": 13, "syntax": 13, "markdown": 13, "adapt": [13, 15], "discours": 13, "traduit": 13, "bloqu": 13, "verrouill": 13, "vi": [13, 15], "correspondr": 13, "etat": 13, "publi": [13, 15], "suivr": 14, "conserv": [14, 15], "votr": [14, 15], "android": 14, "exhaust": 14, "runn": 14, "gpl": 14, "v3": 14, "opentrack": 14, "apach": 14, "fitotrack": 14, "aid": 14, "fonctionnal": [14, 15], "instabl": [14, 15], "ticket": 14, "document": [14, 15, 16, 18], "d\u00e9pannag": 14, "histor": [14, 15], "clon": 15, "d\u00e9p\u00f4t": 15, "\u00e9tap": 15, "d\u00e9crivent": 15, "linux": 15, "exploit": 15, "archlinux": 15, "ubuntu": 15, "integr": 15, "continu": 15, "Sur": 15, "rencontr": 15, "D": 15, "guid": 15, "gr\u00e2c": [15, 17], "uberspac": 15, "hosting": 15, "debian": [15, 17], "net": 15, "typescript": 15, "staticmap": 15, "t\u00e2ch": 15, "gunicorn": [15, 18], "vue3": 15, "vuex": 15, "logo": 15, "ic\u00f4n": 15, "freepik": 15, "flaticon": 15, "fork": 15, "awesom": 15, "nod": 15, "yarn": 15, "compos": 15, "makefil": 15, "custom": 15, "Elles": 15, "flask_app": 15, "d\u00e9marrag": 15, "pwd": 15, "__main__": 15, "py": 15, "sinon": 15, "host": 15, "h\u00f4t": 15, "port": 15, "5000": 15, "app_setting": 15, "productionconfig": 15, "app_secret_key": 15, "fort": 15, "jwt": 15, "app_worker": 15, "_workers_": 15, "app_log": 15, "chemin": [15, 18], "upload_fold": [15, 18], "absolu": [15, 18], "application_directory": 15, "database_url": [15, 18], "5432": 15, "database_disable_pooling": 15, "pooling": 15, "ui_url": 15, "lien": 15, "email_url": [15, 18], "chain": 15, "sender_email": 15, "exp\u00e9diteur": 15, "redis_url": 15, "workers_process": 15, "processus": 15, "api_rate_limit": 15, "300": 15, "minut": 15, "tile_server_url": 15, "gard": 15, "23": 15, "n\u00e9cessitent": [15, 16], "df": 15, "Par": [15, 16], "b": 15, "osm": 15, "franc": 15, "attribu": 15, "target": 15, "_blank": 15, "rel": 15, "noopen": 15, "noreferr": 15, "komoot": 15, "insensibl": 15, "cass": 15, "weather_api_key": 15, "weather_ap": 15, "vite_app_api_url": 15, "26": 15, "vue_app_api_url": 15, "25": 15, "ssl": 15, "465": 15, "starttl": 15, "office365": 15, "fonction": [15, 16], "identif": 15, "omis": 15, "ancien": 15, "notif": 15, "pr\u00eat": 15, "laiss": 15, "24": 15, "encod": 15, "sp\u00e9cial": 15, "passwordwith": 15, "40and": 15, "26and": 15, "3f": 15, "apikey": 15, "xxxx": 15, "condit": 15, "attendu": 15, "osmfr": 15, "fond": 15, "mention": 15, "legal": 15, "nofollow": 15, "nbsp": 15, "creativecommon": 15, "licenc": 15, "cc": 15, "SA": 15, "ip": 15, "strateg": 15, "pourr": 15, "soum": 15, "asset": 15, "notat": 15, "s\u00e9par": [15, 16], "virgul": 15, "hour": 15, "diagnostic": 15, "utility": 15, "clear": 15, "specific": 15, "key": 15, "enumerat": 15, "detail": 15, "interrompu": 15, "remarqu": 15, "fa\u00e7on": 15, "simpl": 15, "pip": 15, "schem": [15, 16], "owner": 15, "privileg": 15, "copi": 15, "coll": 15, "nano": 15, "ftcli": 15, "db": 15, "systemd": 15, "ouvr": 15, "alor": 15, "projet": 15, "project": 15, "git": 15, "github": 15, "samr1": 15, "cd": 15, "dev": 15, "run": 15, "3000": 15, "v0": 15, "wget": 15, "tar": 15, "gz": 15, "xzf": 15, "mv": 15, "sql": 15, "proced": 15, "fair": 15, "sauvegard": 15, "ensembl": 15, "pg_dump": 15, "suivent": 15, "s\u00e9mant": 15, "r\u00e9tro": 15, "compatibl": 15, "stopp": 15, "u": 15, "journal": [15, 18], "red\u00e9marr": 15, "pull": 15, "\u00e9cras": 15, "cp": 15, "r": 15, "proxy": [15, 16], "\u00c0": 15, "network": 15, "startlimitintervalsec": 15, "restart": 15, "alway": 15, "restartsec": 15, "standardoutput": 15, "syslog": 15, "standarderror": 15, "syslogidentifi": 15, "workingdirectory": 15, "hom": 15, "execstart": 15, "venv": 15, "bin": 15, "create_app": 15, "logfil": 15, "wantedby": 15, "mult": 15, "timeout": [15, 18], "fittrackee_worker": 15, "task": 15, "queu": 15, "listen": 15, "443": 15, "http2": 15, "server_nam": 15, "ssl_certificat": 15, "fullchain": 15, "pem": 15, "ssl_certificate_key": 15, "privkey": 15, "how": 15, "1mb": 15, "setting": 15, "ll": 15, "need": 15, "uncommenting": 15, "below": 15, "want": 15, "prevent": 15, "checking": 15, "client_max_body_siz": [15, 18], "1m": 15, "proxy_pass": 15, "proxy_redirect": 15, "proxy_set_head": [15, 16], "real": 15, "remote_addr": 15, "forwarded": [15, 16], "proxy_add_x_forwarded_for": 15, "proto": [15, 16], "request_ur": 15, "besoin": 15, "8025": 15, "mailhog": 15, "stop": 15, "shel": 15, "additionnel": 15, "fittrackee_client": 15, "lint": 15, "check": 15, "fittrackee_ynh": 15, "plupart": 16, "permettr": 16, "interag": 16, "onglet": 16, "\u00e9chang": 16, "contr": 16, "corp": 16, "assur": 16, "meilleur": 16, "s\u00e9cur": 16, "\u00e9critur": 16, "accord": 16, "lectur": 16, "Ils": 16, "puiss": 16, "fittrackee_host": 16, "espac": 16, "emp\u00each": 16, "3aread": 16, "3awrit": 16, "sort": 16, "ensuit": 16, "\u0153uvr": 16, "bibliothequ": 16, "derri": 16, "simplified": 16, "aaron": 16, "pareck": 16, "flow": 16, "oauthlib": 16, "session": 16, "strav": 17, "fit": 17, "garmin": 17, "synchronis": 17, "fittrackee_install": 17, "sh": 17, "netinstall": 17, "exc": 18, "nosuchmoduleerror": 18, "plugin": 18, "dialect": 18, "invalidemailurlschem": 18, "augment": 18, "del": 18, "critical": 18, "d\u00e9tail": 19, "\u00e9chec": 19}, "objects": {"": [[0, 0, 1, "post--api-auth-account-confirm", "/api/auth/account/confirm"], [0, 1, 1, "get--api-auth-account-export", "/api/auth/account/export"], [0, 1, 1, "get--api-auth-account-export-(string-file_name)", "/api/auth/account/export/(string:file_name)"], [0, 0, 1, "post--api-auth-account-export-request", "/api/auth/account/export/request"], [0, 0, 1, "post--api-auth-account-privacy-policy", "/api/auth/account/privacy-policy"], [0, 0, 1, "post--api-auth-account-resend-confirmation", "/api/auth/account/resend-confirmation"], [0, 0, 1, "post--api-auth-email-update", "/api/auth/email/update"], [0, 0, 1, "post--api-auth-login", "/api/auth/login"], [0, 0, 1, "post--api-auth-logout", "/api/auth/logout"], [0, 0, 1, "post--api-auth-password-reset-request", "/api/auth/password/reset-request"], [0, 0, 1, "post--api-auth-password-update", "/api/auth/password/update"], [0, 2, 1, "delete--api-auth-picture", "/api/auth/picture"], [0, 0, 1, "post--api-auth-picture", "/api/auth/picture"], [0, 1, 1, "get--api-auth-profile", "/api/auth/profile"], [0, 0, 1, "post--api-auth-profile-edit", "/api/auth/profile/edit"], [0, 3, 1, "patch--api-auth-profile-edit-account", "/api/auth/profile/edit/account"], [0, 0, 1, "post--api-auth-profile-edit-preferences", "/api/auth/profile/edit/preferences"], [0, 0, 1, "post--api-auth-profile-edit-sports", "/api/auth/profile/edit/sports"], [0, 2, 1, "delete--api-auth-profile-reset-sports-(sport_id)", "/api/auth/profile/reset/sports/(sport_id)"], [0, 0, 1, "post--api-auth-register", "/api/auth/register"], [1, 1, 1, "get--api-config", "/api/config"], [1, 3, 1, "patch--api-config", "/api/config"], [2, 1, 1, "get--api-equipment-types", "/api/equipment-types"], [2, 1, 1, "get--api-equipment-types-(int-equipment_type_id)", "/api/equipment-types/(int:equipment_type_id)"], [2, 3, 1, "patch--api-equipment-types-(int-equipment_type_id)", "/api/equipment-types/(int:equipment_type_id)"], [3, 1, 1, "get--api-equipments", "/api/equipments"], [3, 0, 1, "post--api-equipments", "/api/equipments"], [3, 2, 1, "delete--api-equipments-(string-equipment_short_id)", "/api/equipments/(string:equipment_short_id)"], [3, 1, 1, "get--api-equipments-(string-equipment_short_id)", "/api/equipments/(string:equipment_short_id)"], [3, 3, 1, "patch--api-equipments-(string-equipment_short_id)", "/api/equipments/(string:equipment_short_id)"], [3, 0, 1, "post--api-equipments-(string-equipment_short_id)-refresh", "/api/equipments/(string:equipment_short_id)/refresh"], [5, 1, 1, "get--api-oauth-apps", "/api/oauth/apps"], [5, 0, 1, "post--api-oauth-apps", "/api/oauth/apps"], [5, 2, 1, "delete--api-oauth-apps-(int-client_id)", "/api/oauth/apps/(int:client_id)"], [5, 1, 1, "get--api-oauth-apps-(int-client_id)-by_id", "/api/oauth/apps/(int:client_id)/by_id"], [5, 0, 1, "post--api-oauth-apps-(int-client_id)-revoke", "/api/oauth/apps/(int:client_id)/revoke"], [5, 1, 1, "get--api-oauth-apps-(string-client_client_id)", "/api/oauth/apps/(string:client_client_id)"], [5, 0, 1, "post--api-oauth-authorize", "/api/oauth/authorize"], [5, 0, 1, "post--api-oauth-revoke", "/api/oauth/revoke"], [5, 0, 1, "post--api-oauth-token", "/api/oauth/token"], [1, 1, 1, "get--api-ping", "/api/ping"], [6, 1, 1, "get--api-records", "/api/records"], [7, 1, 1, "get--api-sports", "/api/sports"], [7, 1, 1, "get--api-sports-(int-sport_id)", "/api/sports/(int:sport_id)"], [7, 3, 1, "patch--api-sports-(int-sport_id)", "/api/sports/(int:sport_id)"], [8, 1, 1, "get--api-stats-(user_name)-by_sport", "/api/stats/(user_name)/by_sport"], [8, 1, 1, "get--api-stats-(user_name)-by_time", "/api/stats/(user_name)/by_time"], [8, 1, 1, "get--api-stats-all", "/api/stats/all"], [9, 1, 1, "get--api-users", "/api/users"], [9, 2, 1, "delete--api-users-(user_name)", "/api/users/(user_name)"], [9, 1, 1, "get--api-users-(user_name)", "/api/users/(user_name)"], [9, 3, 1, "patch--api-users-(user_name)", "/api/users/(user_name)"], [9, 1, 1, "get--api-users-(user_name)-picture", "/api/users/(user_name)/picture"], [10, 1, 1, "get--api-workouts", "/api/workouts"], [10, 0, 1, "post--api-workouts", "/api/workouts"], [10, 2, 1, "delete--api-workouts-(string-workout_short_id)", "/api/workouts/(string:workout_short_id)"], [10, 1, 1, "get--api-workouts-(string-workout_short_id)", "/api/workouts/(string:workout_short_id)"], [10, 3, 1, "patch--api-workouts-(string-workout_short_id)", "/api/workouts/(string:workout_short_id)"], [10, 1, 1, "get--api-workouts-(string-workout_short_id)-chart_data", "/api/workouts/(string:workout_short_id)/chart_data"], [10, 1, 1, "get--api-workouts-(string-workout_short_id)-chart_data-segment-(int-segment_id)", "/api/workouts/(string:workout_short_id)/chart_data/segment/(int:segment_id)"], [10, 1, 1, "get--api-workouts-(string-workout_short_id)-gpx", "/api/workouts/(string:workout_short_id)/gpx"], [10, 1, 1, "get--api-workouts-(string-workout_short_id)-gpx-download", "/api/workouts/(string:workout_short_id)/gpx/download"], [10, 1, 1, "get--api-workouts-(string-workout_short_id)-gpx-segment-(int-segment_id)", "/api/workouts/(string:workout_short_id)/gpx/segment/(int:segment_id)"], [10, 1, 1, "get--api-workouts-map-(map_id)", "/api/workouts/map/(map_id)"], [10, 0, 1, "post--api-workouts-no_gpx", "/api/workouts/no_gpx"], [15, 4, 1, "-", "API_RATE_LIMITS"], [15, 4, 1, "-", "APP_LOG"], [15, 4, 1, "-", "APP_SECRET_KEY"], [15, 4, 1, "-", "APP_SETTINGS"], [15, 4, 1, "-", "APP_WORKERS"], [15, 4, 1, "-", "DATABASE_DISABLE_POOLING"], [15, 4, 1, "-", "DATABASE_URL"], [15, 4, 1, "-", "DEFAULT_STATICMAP"], [15, 4, 1, "-", "EMAIL_URL"], [15, 4, 1, "-", "FLASK_APP"], [15, 4, 1, "-", "HOST"], [15, 4, 1, "-", "MAP_ATTRIBUTION"], [15, 4, 1, "-", "PORT"], [15, 4, 1, "-", "REDIS_URL"], [15, 4, 1, "-", "SENDER_EMAIL"], [15, 4, 1, "-", "STATICMAP_SUBDOMAINS"], [15, 4, 1, "-", "TILE_SERVER_URL"], [15, 4, 1, "-", "UI_URL"], [15, 4, 1, "-", "UPLOAD_FOLDER"], [15, 4, 1, "-", "VITE_APP_API_URL"], [15, 4, 1, "-", "WEATHER_API_KEY"], [15, 4, 1, "envvar-WEATHER_API_PROVIDER", "WEATHER_API_PROVIDER \ud83c\udd95"], [15, 4, 1, "-", "WORKERS_PROCESSES"]], "/api/workouts/map_tile/(s)/(z)/(x)/(y)": [[10, 1, 1, "get--api-workouts-map_tile-(s)-(z)-(x)-(y).png", "png"]]}, "objtypes": {"0": "http:post", "1": "http:get", "2": "http:delete", "3": "http:patch", "4": "std:envvar"}, "objnames": {"0": ["http", "post", "HTTP post"], "1": ["http", "get", "HTTP get"], "2": ["http", "delete", "HTTP delete"], "3": ["http", "patch", "HTTP patch"], "4": ["std", "envvar", "variable d'environnement"]}, "titleterms": {"authentif": 0, "compt": [0, 13], "configur": 1, "typ": [2, 13], "\u00e9quip": [2, 3, 13], "document": [4, 11], "api": [4, 15], "point": 4, "acces": [4, 15], "oauth2": [5, 12], "record": 6, "sport": [7, 13], "statist": [8, 11, 13], "utilis": [9, 12, 13], "s\u00e9anc": [10, 13, 18], "histor": 11, "modif": 11, "version": 11, "0": [11, 16], "8": 11, "01": 11, "09": 11, "2024": 11, "bug": 11, "corrig": 11, "traduct": [11, 13], "7": 11, "08": 11, "25": 11, "fonctionnal": [11, 13], "am\u00e9lior": 11, "6": 11, "03": 11, "diver": 11, "5": 11, "29": 11, "06": 11, "4": 11, "22": 11, "05": 11, "3": 11, "2": [11, 16], "1": 11, "21": 11, "04": 11, "32": 11, "10": 11, "31": 11, "02": 11, "30": 11, "28": 11, "23": 11, "12": 11, "2023": 11, "27": 11, "20": 11, "26": 11, "19": 11, "11": 11, "24": 11, "14": 11, "07": 11, "15": 11, "18": 11, "17": 11, "16": 11, "13": 11, "2022": 11, "9": 11, "ticket": 11, "ferm": 11, "pull": 11, "request": 11, "s\u00e9cur": 11, "nouvel": 11, "2021": 11, "2020": 11, "fittracke": [11, 14, 18], "pyp": [11, 15], "administr": [11, 13, 18], "correct": 11, "mineur": 11, "disponibl": 11, "franc": 11, "2019": 11, "premi": 11, "2018": 11, "interfac": 12, "lign": 12, "command": 12, "bas": 12, "don": [12, 15], "ftcli": 12, "db": 12, "drop": 12, "upgrad": 12, "clean": 12, "user": 12, "clean_arch": 12, "clean_token": 12, "creat": 12, "export_arch": 12, "updat": 12, "pr\u00e9f\u00e9rent": 13, "appliqu": 13, "oauth": [13, 16], "captur": 13, "\u00e9cran": 13, "tableau": 13, "bord": 13, "pag": 13, "d\u00e9tail": [13, 18], "list": 13, "tabl": 14, "mati": 14, "install": [15, 17], "d\u00e9pend": 15, "principal": 15, "pr\u00e9requ": 15, "variabl": 15, "environ": 15, "courriel": 15, "serveur": 15, "tuil": 15, "limit": 15, "m\u00e9t\u00e9o": 15, "a": 15, "part": 15, "sourc": 15, "d\u00e9velopp": 15, "product": 15, "mis": 15, "jour": 15, "d\u00e9ploi": 15, "dock": 15, "yunohost": 15, "scop": 16, "flux": 16, "ressourc": 16, "outil": 17, "tier": 17, "import": 17, "script": 17, "d\u00e9marr": 18, "Les": 18, "imag": 18, "cart": 18, "affich": 18, "dan": 18, "\u00e9chec": 18, "charg": 18, "t\u00e9l\u00e9charg": 18, "fichi": 18, "d\u00e9pannag": 19}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx": 58}, "alltitles": {"Authentification et compte": [[0, "authentication-and-account"]], "Configuration": [[1, "configuration"]], "Types d\u2019\u00e9quipement": [[2, "equipment-types"], [13, "equipment-types"]], "\u00c9quipements": [[3, "equipments"], [13, "equipments"], [13, "id1"]], "Documentation de l\u2019API": [[4, "api-documentation"]], "Points d'acc\u00e8s :": [[4, null]], "OAuth2": [[5, "oauth2"], [12, "oauth2"]], "Records": [[6, "records"]], "Sports": [[7, "sports"], [13, "sports"]], "Statistiques": [[8, "statistics"], [13, "statistics"]], "Utilisateurs": [[9, "users"], [12, "users"], [13, "users"]], "S\u00e9ances": [[10, "workouts"], [13, "workouts"]], "Historique des modifications": [[11, "change-log"]], "Version 0.8.8 (01/09/2024)": [[11, "version-0-8-8-2024-09-01"]], "Bugs corrig\u00e9s": [[11, "bugs-fixed"], [11, "id1"], [11, "id5"], [11, "id11"], [11, "id16"], [11, "id20"], [11, "id23"], [11, "id25"], [11, "id29"], [11, "id33"], [11, "id37"], [11, "id40"], [11, "id43"], [11, "id46"], [11, "id47"], [11, "id50"], [11, "id52"], [11, "id54"], [11, "id57"], [11, "id60"], [11, "id68"], [11, "id71"], [11, "id74"], [11, "id77"], [11, "id89"], [11, "id94"], [11, "id96"], [11, "id100"], [11, "id103"], [11, "id106"], [11, "id108"], [11, "id111"], [11, "id114"], [11, "id116"], [11, "id119"], [11, "id122"], [11, "id125"], [11, "id130"], [11, "id132"], [11, "id134"], [11, "id136"], [11, "id139"], [11, "id141"], [11, "id147"], [11, "id150"], [11, "id152"], [11, "id154"], [11, "id161"], [11, "id166"], [11, "id168"], [11, "id170"], [11, "id173"], [11, "id175"], [11, "id177"], [11, "id181"], [11, "id191"], [11, "id194"], [11, "id196"], [11, "id199"], [11, "id206"]], "Traductions": [[11, "translations"], [11, "id2"], [11, "id3"], [11, "id6"], [11, "id9"], [11, "id12"], [11, "id13"], [11, "id17"], [11, "id21"], [11, "id24"], [11, "id26"], [11, "id30"], [11, "id34"], [11, "id38"], [11, "id41"], [11, "id44"], [11, "id48"], [11, "id53"], [11, "id58"], [11, "id61"], [11, "id63"], [11, "id66"], [11, "id69"], [11, "id72"], [11, "id75"], [11, "id78"], [11, "id79"], [11, "id82"], [11, "id84"], [11, "id86"], [11, "id87"], [11, "id90"], [11, "id92"], [11, "id95"], [11, "id97"], [11, "id101"], [11, "id102"], [11, "id104"], [11, "id107"], [11, "id120"], [13, "translations"]], "Version 0.8.7 (2024/08/25)": [[11, "version-0-8-7-2024-08-25"]], "Fonctionnalit\u00e9s et am\u00e9liorations": [[11, "features-and-enhancements"], [11, "id4"], [11, "id8"], [11, "id15"], [11, "id19"], [11, "id28"], [11, "id32"], [11, "id36"], [11, "id39"], [11, "id56"], [11, "id59"], [11, "id67"], [11, "id70"], [11, "id76"], [11, "id81"], [11, "id83"], [11, "id85"], [11, "id88"], [11, "id99"], [11, "id105"]], "Version 0.8.6 (2024/08/03)": [[11, "version-0-8-6-2024-08-03"]], "Divers": [[11, "misc"], [11, "id7"], [11, "id10"], [11, "id14"], [11, "id18"], [11, "id22"], [11, "id27"], [11, "id31"], [11, "id35"], [11, "id42"], [11, "id45"], [11, "id49"], [11, "id51"], [11, "id55"], [11, "id62"], [11, "id65"], [11, "id73"], [11, "id80"], [11, "id91"], [11, "id93"], [11, "id109"], [11, "id123"], [11, "id126"], [11, "id143"], [11, "id145"], [11, "id162"], [11, "id171"], [11, "id178"], [11, "id182"], [11, "id189"], [11, "id200"], [11, "id203"]], "Version 0.8.5 (29/06/2024)": [[11, "version-0-8-5-2024-06-29"]], "Version 0.8.4 (22/05/2024)": [[11, "version-0-8-4-2024-05-22"]], "Version 0.8.3 (09/05/2024)": [[11, "version-0-8-3-2024-05-09"]], "Version 0.8.2 (08/05/2024)": [[11, "version-0-8-2-2024-05-08"]], "Version 0.8.1 (01/05/2024)": [[11, "version-0-8-1-2024-05-01"]], "Version 0.8.0 (21/04/2024)": [[11, "version-0-8-0-2024-04-21"]], "Version 0.7.32 (10/03/2024)": [[11, "version-0-7-32-2024-03-10"]], "Version 0.7.31 (10/02/2024)": [[11, "version-0-7-31-2024-02-10"]], "Version 0.7.30 (04/02/2024)": [[11, "version-0-7-30-2024-02-04"]], "Version 0.7.29 (04/01/2024)": [[11, "version-0-7-29-2024-01-06"]], "Version 0.7.28 (23/12/2023)": [[11, "version-0-7-28-2023-12-23"]], "Version 0.7.27 (20/12/2023)": [[11, "version-0-7-27-2023-12-20"]], "Version 0.7.26 (19/11/2023)": [[11, "version-0-7-26-2023-11-19"]], "Version 0.7.25 (08/10/2023)": [[11, "version-0-7-25-2023-10-08"]], "Version 0.7.24 (04/10/2023)": [[11, "version-0-7-24-2023-10-04"]], "Version 0.7.23 (14/09/2023)": [[11, "version-0-7-23-2023-09-14"]], "Version 0.7.22 (23/08/2023)": [[11, "version-0-7-22-2023-08-23"]], "Version 0.7.21 (30/07/2023)": [[11, "version-0-7-21-2023-07-30"]], "Version 0.7.20 (22/07/2023)": [[11, "version-0-7-20-2023-07-22"]], "Version 0.7.19 (15/07/2023)": [[11, "version-0-7-19-2023-07-15"]], "Documentation": [[11, "documentation"], [11, "id64"], [11, "id98"]], "Version 0.7.18 (25/06/2023)": [[11, "version-0-7-18-2023-06-25"]], "Version 0.7.17 (03/06/2023)": [[11, "version-0-7-17-2023-06-03"]], "Version 0.7.16 (29/05/2023)": [[11, "version-0-7-16-2023-05-29"]], "Version 0.7.15 (12/04/2023)": [[11, "version-0-7-15-2023-04-12"]], "Version 0.7.14 (08/03/2023)": [[11, "version-0-7-14-2023-03-08"]], "Version 0.7.13 (05/03/2023)": [[11, "version-0-7-13-2023-03-05"]], "Version 0.7.12 (16/02/2023)": [[11, "version-0-7-12-2023-02-16"]], "Version 0.7.11 (31/12/2022)": [[11, "version-0-7-11-2022-12-31"]], "Version 0.7.10 (21/12/2022)": [[11, "version-0-7-10-2022-12-21"]], "Version 0.7.9 (11/12/2022)": [[11, "version-0-7-9-2022-12-11"]], "Version 0.7.8 (30/11/2022)": [[11, "version-0-7-8-2022-11-30"]], "Version 0.7.7 (27/11/2022)": [[11, "version-0-7-7-2022-11-27"]], "Version 0.7.6 (09/11/2022)": [[11, "version-0-7-6-2022-11-09"]], "Version 0.7.5 (09/11/2022)": [[11, "version-0-7-5-2022-11-09"]], "Version 0.7.4 (05/11/2022)": [[11, "version-0-7-4-2022-11-05"]], "Version 0.7.3 (01/11/2022)": [[11, "version-0-7-3-2022-11-01"]], "Version 0.7.2 (21/09/2022)": [[11, "version-0-7-2-2022-09-21"]], "Version 0.7.1 (21/09/2022)": [[11, "version-0-7-1-2022-09-21"]], "Version 0.7.0 (19/09/2022)": [[11, "version-0-7-0-2022-09-19"]], "Version 0.6.12 (14/09/2022)": [[11, "version-0-6-12-2022-09-14"]], "Tickets Ferm\u00e9s": [[11, "issues-closed"], [11, "id110"], [11, "id113"], [11, "id117"], [11, "id121"], [11, "id124"], [11, "id127"], [11, "id129"], [11, "id133"], [11, "id135"], [11, "id137"], [11, "id142"], [11, "id146"], [11, "id149"], [11, "id151"], [11, "id153"], [11, "id155"], [11, "id157"], [11, "id159"], [11, "id164"], [11, "id167"], [11, "id169"], [11, "id172"], [11, "id174"], [11, "id176"], [11, "id179"], [11, "id183"], [11, "id185"], [11, "id187"], [11, "id190"], [11, "id192"], [11, "id195"], [11, "id197"], [11, "id201"], [11, "id204"], [11, "id207"]], "Pull Requests": [[11, "pull-requests"], [11, "id112"], [11, "id115"], [11, "id131"], [11, "id140"], [11, "id144"], [11, "id148"], [11, "id163"]], "Version 0.6.11 (27/02/2022)": [[11, "version-0-6-11-2022-07-27"]], "Fonctionnalit\u00e9s": [[11, "features"], [11, "id118"], [11, "id128"], [11, "id138"], [13, "features"]], "Version 0.6.10 (13/07/2022)": [[11, "version-0-6-10-2022-07-13"]], "Version 0.6.9 (03/07/2022)": [[11, "version-0-6-9-2022-07-03"]], "Version 0.6.8 (22/06/2022)": [[11, "version-0-6-8-2022-06-22"]], "Version 0.6.7 (11/06/2022)": [[11, "version-0-6-7-2022-06-11"]], "Version 0.6.6 (29/05/2022)": [[11, "version-0-6-6-2022-05-29"]], "Version 0.6.5 (24/04/2022)": [[11, "version-0-6-5-2022-04-24"]], "Version 0.6.4 (23/04/2022)": [[11, "version-0-6-4-2022-04-23"]], "Version 0.6.3 (09/04/2022)": [[11, "version-0-6-3-2022-04-09"]], "Version 0.6.2 (03/04/2022)": [[11, "version-0-6-2-2022-04-03"]], "Version 0.6.1 (27/03/2022)": [[11, "version-0-6-1-2022-03-27"]], "Version 0.6.0 (27/03/2022)": [[11, "version-0-6-0-2022-03-27"]], "Version 0.5.7 (13/02/2022)": [[11, "version-0-5-7-2022-02-13"]], "S\u00e9curit\u00e9": [[11, "security"]], "Version 0.5.6 (05/02/2022)": [[11, "version-0-5-6-2022-02-05"]], "Version 0.5.5 (19/01/2022)": [[11, "version-0-5-5-2022-01-19"]], "Nouvelles fonctionnalit\u00e9s": [[11, "new-features"], [11, "id156"], [11, "id158"], [11, "id160"], [11, "id165"], [11, "id180"], [11, "id184"], [11, "id186"], [11, "id188"], [11, "id193"], [11, "id198"], [11, "id202"], [11, "id205"], [11, "id208"]], "Version 0.5.4 (01/01/2022)": [[11, "version-0-5-4-2022-01-01"]], "Version 0.5.3 (01/01/2022)": [[11, "version-0-5-3-2022-01-01"]], "Version 0.5.2 (19/12/2021)": [[11, "version-0-5-2-2021-12-19"]], "Version 0.5.1 (30/11/2021)": [[11, "version-0-5-1-2021-11-30"]], "Version 0.5.0 (14/11/2021)": [[11, "version-0-5-0-2021-11-14"]], "Version 0.4.9 (16/07/2021)": [[11, "version-0-4-9-2021-07-16"]], "Version 0.4.8 (03/07/2021)": [[11, "version-0-4-8-2021-07-03"]], "Version 0.4.7 (07/04/2021)": [[11, "version-0-4-7-2021-04-07"]], "Version 0.4.6 (21/02/2021)": [[11, "version-0-4-6-2021-02-21"]], "Version 0.4.5 (17/02/2021)": [[11, "version-0-4-5-2021-02-17"]], "Version 0.4.4 (31/01/2021)": [[11, "version-0-4-4-2021-01-31"]], "Version 0.4.3 (10/01/2021)": [[11, "version-0-4-3-2021-01-10"]], "Version 0.4.2 (03/01/2021)": [[11, "version-0-4-2-2021-01-03"]], "Version 0.4.1 (31/12/2020)": [[11, "version-0-4-1-2020-12-31"]], "Version 0.4.0 - FitTrackee sur PyPI (19/09/2020)": [[11, "version-0-4-0-fittrackee-on-pypi-2020-09-19"]], "Version 0.3.0 - Administration (15/07/2020)": [[11, "version-0-3-0-administration-2020-07-15"]], "Version 0.2.5 - Corrections et am\u00e9liorations (31/01/2020)": [[11, "version-0-2-5-fix-and-improvements-2020-01-31"]], "Version 0.2.4 - Corrections mineures (30/01/2020)": [[11, "version-0-2-4-minor-fix-2020-01-30"]], "Version 0.2.3 - FitTrackee disponible en Fran\u00e7ais (29/12/2019)": [[11, "version-0-2-3-fittrackee-available-in-french-2019-12-29"]], "Version 0.2.2 - Corrections des statistiques (23/09/2019)": [[11, "version-0-2-2-statistics-fix-2019-09-23"]], "Version 0.2.1 - Correction et am\u00e9liorations (01/09/2019)": [[11, "version-0-2-1-fix-and-improvements-2019-09-01"]], "Version 0.2.0 - Statistiques (07/07/2019)": [[11, "version-0-2-0-statistics-2019-07-07"]], "Version 0.1.1 - Corrections et am\u00e9liorations (07/02/2019)": [[11, "version-0-1-1-fix-and-improvements-2019-02-07"]], "Version 0.1.0 - Premi\u00e8re version \ud83c\udf89 (04/07/2018)": [[11, "version-0-1-0-first-release-2018-07-04"]], "Interface de ligne de commande": [[12, "command-line-interface"]], "Base de donn\u00e9es": [[12, "database"]], "ftcli db drop": [[12, "ftcli-db-drop"]], "ftcli db upgrade": [[12, "ftcli-db-upgrade"]], "ftcli oauth2 clean": [[12, "ftcli-oauth2-clean"]], "ftcli users clean_archives": [[12, "ftcli-users-clean-archives"]], "ftcli users clean_tokens": [[12, "ftcli-users-clean-tokens"]], "ftcli users create": [[12, "ftcli-users-create"]], "ftcli users export_archives": [[12, "ftcli-users-export-archives"]], "ftcli users update": [[12, "ftcli-users-update"]], "Compte et pr\u00e9f\u00e9rences": [[13, "account-preferences"]], "Applications OAuth": [[13, "oauth-apps"]], "Administration": [[13, "administration"], [13, "id2"]], "Application": [[13, "application"]], "Captures d\u2019\u00e9cran": [[13, "screenshots"]], "Tableau de bord": [[13, "dashboard"]], "Page de d\u00e9tail d\u2019une s\u00e9ance": [[13, "workout-detail"]], "Liste des s\u00e9ances": [[13, "workouts-list"]], "FitTrackee": [[14, "fittrackee"]], "Table des mati\u00e8res": [[14, "table-of-contents"]], "Installation": [[15, "installation"], [15, "id2"], [15, "id6"]], "D\u00e9pendances principales": [[15, "main-dependencies"]], "Pr\u00e9requis": [[15, "prerequisites"]], "Variables d\u2019environnement": [[15, "environment-variables"]], "Courriels": [[15, "emails"]], "Serveur de tuiles": [[15, "map-tile-server"]], "Limitation d\u2019acc\u00e8s \u00e0 l\u2019API": [[15, "api-rate-limits"]], "Donn\u00e9es m\u00e9t\u00e9o": [[15, "weather-data"]], "A partir de PyPI": [[15, "from-pypi"], [15, "id3"]], "A partir des sources": [[15, "from-sources"], [15, "id4"]], "Environnements de d\u00e9veloppement": [[15, "dev-environment"], [15, "id5"]], "Environnements de production": [[15, "production-environment"]], "Mise \u00e0 jour": [[15, "upgrade"]], "Environnement de production": [[15, "prod-environment"]], "D\u00e9ploiement": [[15, "deployment"]], "Docker": [[15, "docker"]], "D\u00e9veloppement": [[15, "development"]], "Yunohost": [[15, "yunohost"]], "OAuth 2.0": [[16, "oauth-2-0"]], "Scopes": [[16, "scopes"]], "Flux": [[16, "flow"]], "Ressources": [[16, "resources"]], "Outils tiers": [[17, "third-party-tools"]], "Outils d\u2019importation": [[17, "import-tools"]], "Scripts d\u2019installation": [[17, "installation-scripts"]], "Administrateur": [[18, "administrator"]], "FitTrackee ne d\u00e9marre pas": [[18, "fittrackee-fails-to-start"]], "Les images de la carte ne sont pas affich\u00e9es mais la carte est affich\u00e9e dans le d\u00e9tail de la s\u00e9ance": [[18, "map-images-are-not-displayed-but-map-is-shown-in-workout-detail"]], "\u00c9chec du chargement ou du t\u00e9l\u00e9chargement de fichiers": [[18, "failed-to-upload-or-download-files"]], "D\u00e9pannage": [[19, "troubleshooting"]]}, "indexentries": {"api_rate_limits": [[15, "envvar-API_RATE_LIMITS"]], "app_log": [[15, "envvar-APP_LOG"]], "app_secret_key": [[15, "envvar-APP_SECRET_KEY"]], "app_settings": [[15, "envvar-APP_SETTINGS"]], "app_workers": [[15, "envvar-APP_WORKERS"]], "database_disable_pooling": [[15, "envvar-DATABASE_DISABLE_POOLING"]], "database_url": [[15, "envvar-DATABASE_URL"]], "default_staticmap": [[15, "envvar-DEFAULT_STATICMAP"]], "email_url": [[15, "envvar-EMAIL_URL"]], "flask_app": [[15, "envvar-FLASK_APP"]], "host": [[15, "envvar-HOST"]], "map_attribution": [[15, "envvar-MAP_ATTRIBUTION"]], "port": [[15, "envvar-PORT"]], "redis_url": [[15, "envvar-REDIS_URL"]], "sender_email": [[15, "envvar-SENDER_EMAIL"]], "staticmap_subdomains": [[15, "envvar-STATICMAP_SUBDOMAINS"]], "tile_server_url": [[15, "envvar-TILE_SERVER_URL"]], "ui_url": [[15, "envvar-UI_URL"]], "upload_folder": [[15, "envvar-UPLOAD_FOLDER"]], "vite_app_api_url": [[15, "envvar-VITE_APP_API_URL"]], "weather_api_key": [[15, "envvar-WEATHER_API_KEY"]], "weather_api_provider \ud83c\udd95": [[15, "envvar-WEATHER_API_PROVIDER"]], "workers_processes": [[15, "envvar-WORKERS_PROCESSES"]], "variable d'environnement": [[15, "envvar-API_RATE_LIMITS"], [15, "envvar-APP_LOG"], [15, "envvar-APP_SECRET_KEY"], [15, "envvar-APP_SETTINGS"], [15, "envvar-APP_WORKERS"], [15, "envvar-DATABASE_DISABLE_POOLING"], [15, "envvar-DATABASE_URL"], [15, "envvar-DEFAULT_STATICMAP"], [15, "envvar-EMAIL_URL"], [15, "envvar-FLASK_APP"], [15, "envvar-HOST"], [15, "envvar-MAP_ATTRIBUTION"], [15, "envvar-PORT"], [15, "envvar-REDIS_URL"], [15, "envvar-SENDER_EMAIL"], [15, "envvar-STATICMAP_SUBDOMAINS"], [15, "envvar-TILE_SERVER_URL"], [15, "envvar-UI_URL"], [15, "envvar-UPLOAD_FOLDER"], [15, "envvar-VITE_APP_API_URL"], [15, "envvar-WEATHER_API_KEY"], [15, "envvar-WEATHER_API_PROVIDER"], [15, "envvar-WORKERS_PROCESSES"]]}}) \ No newline at end of file +Search.setIndex({"docnames": ["api/auth", "api/configuration", "api/equipment_types", "api/equipments", "api/index", "api/oauth2", "api/records", "api/sports", "api/stats", "api/users", "api/workouts", "changelog", "cli", "features", "index", "installation", "oauth", "third_party_tools", "troubleshooting/administrator", "troubleshooting/index"], "filenames": ["api/auth.rst", "api/configuration.rst", "api/equipment_types.rst", "api/equipments.rst", "api/index.rst", "api/oauth2.rst", "api/records.rst", "api/sports.rst", "api/stats.rst", "api/users.rst", "api/workouts.rst", "changelog.md", "cli.rst", "features.rst", "index.rst", "installation.rst", "oauth.rst", "third_party_tools.rst", "troubleshooting/administrator.rst", "troubleshooting/index.rst"], "titles": ["Authentification et compte", "Configuration", "Types d\u2019\u00e9quipement", "\u00c9quipements", "Documentation de l\u2019API", "OAuth2", "Records", "Sports", "Statistiques", "Utilisateurs", "S\u00e9ances", "Historique des modifications", "Interface de ligne de commande", "Fonctionnalit\u00e9s", "FitTrackee", "Installation", "OAuth 2.0", "Outils tiers", "Administrateur", "D\u00e9pannage"], "terms": {"post": [0, 3, 5, 10, 16], "api": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 13, 14, 16], "auth": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10], "regist": 0, "enregistr": [0, 12, 13, 16], "utilis": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 15, 16], "envoi": [0, 9, 11, 13, 15, 16], "courriel": [0, 9, 11, 13, 18], "confirm": [0, 5, 11, 13, 15], "Le": [0, 3, 11, 13, 15], "nouvel": [0, 3, 9, 12, 13, 15], "cr\u00e9": [0, 3, 5, 10, 11, 12, 13, 15, 16], "inact": [0, 3, 9, 10, 13, 15], "L": [0, 1, 2, 7, 11, 13, 15, 16], "doit": [0, 1, 2, 3, 5, 7, 10, 11, 13, 15, 16, 18], "adress": [0, 1, 9, 12, 13, 15], "\u00e9lectron": [0, 1, 9, 12, 13, 15], "activ": [0, 1, 2, 7, 9, 11, 12, 13, 14, 15], "exempl": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 13, 14, 15, 16], "requ\u00eat": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 16], "http": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 15, 16], "1": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 12, 13, 15], "content": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11], "typ": [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 15], "appliqu": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15, 16], "json": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 13], "r\u00e9pons": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10], "succes": [0, 2, 3, 5, 7, 8, 10], "200": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 15], "success": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10], "status": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 13], "erreur": [0, 5, 11, 13, 18], "lor": [0, 12, 13], "400": [0, 1, 2, 3, 5, 7, 8, 9, 10, 11], "bad": [0, 1, 2, 3, 5, 7, 8, 9, 10], "request": [0, 1, 2, 3, 5, 7, 8, 9, 10, 15, 16], "messag": [0, 1, 5, 9, 10, 11, 12, 13, 15, 16], "error": [0, 1, 2, 3, 7, 9, 10, 11, 15], "email": [0, 1, 9, 11, 12, 18], "valid": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 15, 18], "must": [0, 1, 3, 9, 10, 11], "be": [0, 1, 3, 9, 10, 11, 15], "provided": [0, 1, 3, 9], "objet": [0, 1, 2, 3, 7, 9, 10], "usernam": [0, 9, 11, 12, 15], "string": [0, 1, 3, 5, 7, 8, 9, 10], "nom": [0, 5, 8, 9, 11, 12, 15], "3": [0, 2, 7, 8, 9, 10, 13, 15], "30": [0, 8], "caracter": [0, 3, 5, 10, 11, 15, 16], "requ": [0, 16], "password": [0, 11, 12, 15], "mot": [0, 9, 12, 13, 15], "pass": [0, 9, 12, 13, 15], "8": [0, 1, 10, 12, 13, 15, 16], "minimum": 0, "lang": [0, 11, 12], "pr\u00e9f\u00e9rent": [0, 3, 9, 12], "langu": [0, 11, 12, 13], "interfac": [0, 11, 13, 14, 15], "si": [0, 3, 5, 7, 8, 9, 10, 11, 12, 13, 15, 16, 18], "non": [0, 2, 3, 5, 7, 8, 10, 11, 14, 15], "fourn": [0, 3, 5, 8, 10, 12, 13, 15, 16, 18], "ser": [0, 3, 10, 11, 12, 13, 15], "anglais": [0, 11, 12, 13], "accepted_policy": 0, "boolean": [0, 1, 2, 3, 5, 7, 9, 12], "tru": [0, 1, 2, 3, 5, 7, 9, 11, 15], "a": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 13, 14], "accept": [0, 11, 13], "polit": [0, 1, 11, 13], "confidential": [0, 1, 11, 13], "cod": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 16], "\u00e9tat": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10], "ok": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10], "invalid": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 15], "payload": [0, 1, 2, 5, 7, 9, 10], "sorry": 0, "that": [0, 3, 11], "is": [0, 3, 10, 11], "already": [0, 3, 11], "taken": 0, "you": [0, 1, 2, 3, 7, 8, 9, 10, 15], "agre": 0, "privacy": [0, 11], "policy": [0, 11], "to": [0, 1, 3, 8, 10, 11, 15, 17], "character": [0, 3, 11], "required": 0, "only": [0, 10, 11], "alphanumeric": 0, "and": [0, 3, 11, 12, 15], "the": [0, 2, 3, 7, 9, 10, 11, 15], "underscor": 0, "charact": 0, "_": [0, 11], "allowed": [0, 10], "403": [0, 1, 2, 3, 7, 8, 9, 10], "forbidden": [0, 1, 2, 3, 7, 8, 9, 10], "registr": [0, 11], "disabled": 0, "500": [0, 1, 2, 3, 7, 9, 10, 11], "internal": [0, 1, 2, 3, 7, 9, 10], "serv": [0, 1, 2, 3, 7, 9, 10, 11, 15], "pleas": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10], "try": [0, 2, 3, 7, 9, 10], "again": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10], "or": [0, 1, 2, 3, 7, 9, 10, 11], "contact": [0, 1, 2, 3, 7, 9, 10, 13], "administrator": [0, 2, 3, 7, 9, 10], "account": [0, 9, 11], "apres": [0, 5, 11, 13, 15, 16], "inscript": [0, 1, 11, 13, 15], "auth_token": 0, "web": [0, 5, 14, 15, 16], "token": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 16], "successful": 0, "jeton": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 12, 15, 16], "resend": 0, "renvoi": [0, 5, 9, 10], "instruct": [0, 11, 13, 15], "d\u00e9sactiv": [0, 11, 12, 13, 15], "point": [0, 1, 5, 11, 13, 15, 16], "acces": [0, 1, 5, 16], "disponibl": [0, 6, 12, 13, 15, 16, 17], "resent": 0, "404": [0, 2, 3, 5, 7, 8, 9, 10, 11], "not": [0, 1, 2, 3, 5, 7, 8, 9, 10, 11, 13, 15], "found": [0, 2, 3, 5, 7, 8, 9, 10, 11], "requested": 0, "url": [0, 5, 11, 15, 16, 18], "was": [0, 3], "login": [0, 11], "connexion": [0, 15], "seul": [0, 3, 5, 8, 9, 10, 11, 13, 15, 16], "dispos": [0, 9, 13], "actif": [0, 3, 12, 13], "peuvent": [0, 11, 13, 14, 15], "connect": [0, 13], "successfully": 0, "logged": 0, "in": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 13, 15, 16], "401": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11], "unauthorized": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10], "credential": 0, "get": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10], "profil": [0, 5, 11, 16], "obten": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 16], "inform": [0, 1, 9, 11, 13, 14, 15], "authentifi": [0, 1, 2, 5, 6, 7, 8, 9, 10, 13], "scop": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10], "read": [0, 2, 3, 5, 6, 7, 8, 9, 10, 16], "dat": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 13], "accepted_privacy_policy": 0, "admin": [0, 1, 2, 6, 7, 8, 9, 10, 12, 15], "fals": [0, 1, 2, 5, 7, 9, 10, 15], "bio": [0, 9], "null": [0, 1, 3, 7, 9, 10, 11], "birth_dat": [0, 9], "created_at": [0, 9], "sun": [0, 6, 9, 10], "14": [0, 5, 9, 10], "jul": [0, 6, 9, 10], "2019": [0, 6, 8, 9, 10], "09": [0, 9], "58": [0, 9, 11], "gmt": [0, 3, 5, 6, 9, 10], "date_format": 0, "dd": 0, "mm": 0, "yyyy": 0, "display_ascent": 0, "sam": [0, 3, 6, 9, 10, 11], "exampl": [0, 1, 5, 9, 11, 15, 16], "com": [0, 1, 5, 9, 11, 15, 16], "email_to_confirm": 0, "first_nam": [0, 9], "imperial_unit": [0, 9], "is_act": [0, 2, 3, 7, 9], "languag": [0, 9, 11, 12], "last_nam": [0, 9], "locat": [0, 9, 15], "nb_sport": [0, 9], "nb_workout": [0, 9], "6": [0, 2, 3, 7, 9, 10, 12, 13, 15], "pictur": [0, 9, 10, 11], "record": [0, 4, 9, 10, 11, 13], "id": [0, 2, 3, 5, 6, 7, 9, 10, 11], "9": [0, 1, 6, 9, 13, 15], "record_typ": [0, 6, 9, 10], "AS": [0, 6, 9, 10], "sport_id": [0, 3, 6, 7, 8, 9, 10], "user": [0, 1, 3, 6, 8, 9, 10, 11, 15, 16], "valu": [0, 6, 9, 10, 11], "18": [0, 6, 9, 10, 13, 15], "workout_dat": [0, 6, 9, 10], "07": [0, 6, 9, 10], "08": [0, 3, 6, 9, 10], "00": [0, 3, 6, 9, 10], "workout_id": [0, 6, 9, 10], "hvybqybra7wwxpastwr4v2": [0, 6, 9, 10], "10": [0, 1, 3, 6, 9, 10, 13, 15], "fd": [0, 6, 9, 10], "13": [0, 6, 9, 10, 12, 13, 15], "ha": [0, 6, 9, 10], "43": [0, 6, 9, 10, 11], "97": [0, 6, 9, 10, 11], "11": [0, 6, 9, 13, 15], "ld": [0, 6, 9, 10], "01": [0, 6, 8, 9, 10], "12": [0, 6, 9, 10, 15, 17], "MS": [0, 6, 9, 10], "sports_list": [0, 9], "4": [0, 2, 7, 8, 9, 10, 12, 13, 15], "start_elevation_at_zero": 0, "timezon": [0, 9, 11], "europ": [0, 9], "paris": [0, 9], "total_ascent": [0, 8], "720": 0, "35": [0, 11], "total_dist": [0, 3, 8, 9], "67": [0, 8, 9], "895": [0, 9], "total_dur": [0, 3, 8, 9], "50": [0, 3, 8, 9, 11, 15], "27": [0, 5, 9, 13], "use_dark_mod": 0, "use_raw_gpx_speed": 0, "weekm": [0, 8, 9], "En": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 13, 14], "t\u00eat": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 16], "authoriz": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 15, 16], "oauth": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 14, 15], "2": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 13, 14, 15], "0": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15], "bear": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10], "provid": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11], "signatur": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10], "expired": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10], "log": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 15, 18], "edit": [0, 11, 13], "modifi": [0, 2, 3, 7, 9, 12, 13, 15], "writ": [0, 1, 2, 3, 5, 7, 9, 10, 16], "updated": [0, 3, 11], "pr\u00e9nom": 0, "famill": 0, "localis": [0, 15], "biograph": 0, "naissanc": 0, "format": [0, 8, 10, 11, 13, 14], "Y": [0, 8, 10], "preferent": [0, 11], "pris": [0, 5, 11, 12, 13, 15, 16], "charg": [0, 5, 11, 12, 13, 15, 16, 19], "valeur": [0, 3, 5, 10, 12, 13, 15, 16, 18], "d\u00e9faut": [0, 3, 5, 9, 10, 11, 12, 13, 15], "date_string": 0, "correspond": [0, 10, 15], "mmm": 0, "do": [0, 1, 2, 3, 7, 8, 9, 10, 11], "local": [0, 11, 14, 15], "e": 0, "fr": [0, 9, 15], "gl": 0, "it": [0, 3], "nl": 0, "nb": 0, "affich": [0, 10, 11, 12, 13, 14, 15, 16, 19], "dan": [0, 1, 3, 10, 11, 12, 13, 14, 15, 16, 19], "d\u00e9nivel": [0, 6, 10, 13], "total": [0, 3, 5, 8, 10, 11, 13], "distanc": [0, 6, 10, 11, 13], "unit": [0, 11, 15], "imp\u00e9rial": [0, 13], "Les": [0, 6, 10, 13, 14, 15, 16, 19], "graphiqu": [0, 11, 13, 15], "altitud": [0, 11, 13], "commencent": 0, "z\u00e9ro": [0, 13], "fuseau": [0, 10, 13], "horair": [0, 10, 13], "them": [0, 11, 13], "sombr": [0, 13], "vrai": 0, "s\u00e9lection": [0, 13], "selon": [0, 13, 15], "navig": [0, 11, 13, 15], "gpx": [0, 5, 10, 11, 13, 14, 15, 17], "filtr": [0, 11, 13], "calcul": [0, 8, 11, 13], "vitess": [0, 6, 10, 11, 13, 15], "La": [0, 10, 11, 12, 13, 15, 16, 18], "semain": [0, 8, 13], "commenc": [0, 8, 11, 13, 15, 18], "lund": [0, 8, 13], "don": [0, 5, 8, 10, 11, 13, 14, 16, 18], "match": 0, "sport": [0, 1, 3, 4, 8, 10, 11, 15], "color": [0, 7, 11], "000000": 0, "default_equipment_id": 0, "stopped_speed_threshold": [0, 7], "user_id": [0, 3], "int": [0, 2, 3, 5, 7, 10], "lequel": [0, 15], "couleur": [0, 13], "hexad\u00e9cimal": 0, "ajout": [0, 9, 11, 12, 13, 14, 15, 17], "s\u00e9anc": [0, 1, 3, 4, 7, 8, 11, 14, 16, 17, 19], "float": [0, 10], "seuil": [0, 13], "arr\u00eat": [0, 11, 13, 15], "gpxpy": [0, 11, 13, 15], "array": [0, 3, 5, 10], "of": [0, 1, 3, 10, 11, 15, 16], "\u00e9quip": [0, 4, 10, 11, 16], "moment": [0, 10, 11, 13], "peut": [0, 3, 8, 9, 10, 11, 12, 13, 15, 16], "\u00eatre": [0, 3, 5, 10, 11, 12, 13, 14, 15, 16, 18], "associ": [0, 3, 5, 7, 10, 11, 12, 13, 16], "hexadecimal": 0, "equipment_id": [0, 10], "an": [0, 5, 10, 11], "one": [0, 10], "equipment": [0, 2, 3, 10, 11, 16], "can": [0, 9, 10, 11, 15, 18], "added": [0, 3, 10, 11], "with": [0, 3, 10, 11, 15], "exist": [0, 3, 8, 9, 10, 11, 13, 14, 15], "for": [0, 1, 3, 10, 11, 15], "delet": [0, 3, 5, 9, 10, 11], "reset": [0, 11, 12], "r\u00e9initialis": [0, 9, 12, 13, 15], "204": [0, 3, 5, 9, 10], "parametr": [0, 2, 3, 5, 7, 8, 9, 10, 11, 13, 16], "identifi": [0, 5, 7, 8, 10, 16], "no": [0, 3, 5, 9, 10, 11], "supprim": [0, 3, 5, 9, 10, 11, 12, 13], "mis": [0, 3, 7, 9, 10, 11, 13, 16], "jour": [0, 1, 3, 7, 9, 10, 11, 12, 13], "imag": [0, 9, 10, 11, 13, 15, 19], "multipart": [0, 5, 10], "form": [0, 5, 10, 11], "fil": [0, 1, 10, 11, 15], "fichi": [0, 1, 10, 11, 12, 13, 14, 15, 17, 19], "extens": [0, 10, 15], "autoris": [0, 1, 5, 10, 15, 16], "jpg": 0, "png": [0, 10, 15], "gif": 0, "part": [0, 10, 11, 13, 14, 16, 17], "selected": [0, 10], "413": [0, 10], "entity": [0, 10], "too": [0, 10], "larg": [0, 10, 15], "during": [0, 3, 10], "updat": [0, 3, 10, 11, 15], "siz": [0, 1, 10, 11, 15], "exceed": [0, 3, 10, 11], "0mb": [0, 10], "trait": [0, 12], "demand": [0, 11, 12, 13, 15], "processed": 0, "patch": [0, 1, 2, 3, 7, 9, 10], "suiv": [0, 6, 13, 15, 16, 17, 18], "modif": [0, 13, 14], "chang": [0, 3, 11, 13, 15], "actuel": [0, 3], "autr": [0, 9, 13, 15], "new_password": 0, "nouveau": [0, 11, 12, 13, 15, 16], "missing": [0, 11], "current": [0, 9, 11], "uniqu": [0, 5, 11, 12, 15, 16], "new": [0, 3, 9, 11, 13], "logout": [0, 11], "d\u00e9connexion": 0, "out": 0, "access": [0, 11], "revoked": 0, "malformed": 0, "other": [0, 3, 9], "reason": 0, "blacklist": 0, "export": [0, 11, 12, 13, 14, 15], "archiv": [0, 1, 11, 12, 13, 15], "Il": [0, 11, 13, 14, 15, 16], "cr\u00e9ation": [0, 11, 13], "in_progress": 0, "errored": 0, "taill": [0, 1, 13, 15], "octet": 0, "lorsqu": [0, 11, 12, 15], "r\u00e9uss": 0, "wed": 0, "mar": [0, 3, 11, 15], "2023": [0, 3, 15], "31": [0, 10, 13, 15], "17": [0, 10], "file_nam": 0, "archive_rgjsr3fht295ywnqr5yp": 0, "zip": [0, 1, 10, 11, 13], "file_siz": 0, "924": 0, "aucun": [0, 3, 10, 13, 14, 15], "ongoing": 0, "completed": 0, "t\u00e9l\u00e9charg": [0, 10, 12, 13, 15, 19], "download": [0, 10, 11], "archive_rgjsr3fhr5yp": 0, "x": [0, 10, 11, 15, 16], "gzip": 0, "config": [1, 11, 15], "about": [1, 11, 15], "admin_contact": 1, "gpx_limit_import": 1, "is_email_sending_enabled": 1, "is_registration_enabled": 1, "max_single_file_siz": 1, "1048576": 1, "max_user": 1, "max_zip_file_siz": 1, "10485760": 1, "map_attribu": [1, 15], "copy": [1, 15], "href": [1, 15], "www": [1, 15], "openstreetmap": [1, 11, 15], "org": [1, 15], "copyright": [1, 15], "contributor": [1, 15], "privacy_policy": 1, "privacy_policy_dat": 1, "stats_workouts_lim": 1, "10000": [1, 10], "version": [1, 12, 13, 15, 16], "weather_provid": 1, "getting": 1, "mettr": [1, 9, 10, 11, 12, 13, 15], "avoir": [1, 2, 7, 15], "droit": [1, 2, 7, 9, 11, 12, 13, 15, 16], "administr": [1, 2, 7, 9, 12, 15, 16, 19], "instanc": [1, 11, 13, 15], "integ": [1, 2, 3, 5, 7, 8, 9, 10], "nombr": [1, 9, 10, 12, 13, 15], "maximum": [1, 13], "maximal": [1, 6, 10, 11, 12, 13], "inscrir": [1, 11, 13, 15], "statist": [1, 4], "max": [1, 9, 10, 11, 12], "great": [1, 11], "than": [1, 9, 11], "equal": 1, "uploaded": [1, 11, 15], "numb": [1, 11, 15], "workout": [1, 3, 5, 6, 7, 8, 10, 11, 16], "statistic": [1, 8, 11], "hav": [1, 2, 3, 7, 8, 9, 10, 11], "perm": [1, 2, 3, 7, 8, 9, 10], "when": [1, 11], "updating": 1, "ping": 1, "contr\u00f4l": 1, "pong": 1, "tous": [2, 3, 5, 6, 7, 8, 9, 11, 13, 15], "equipment_typ": [2, 3], "label": [2, 3, 7, 11, 13], "sho": [2, 3], "bik": [2, 3], "train": 2, "kayak_boat": 2, "5": [2, 5, 7, 8, 9, 10, 12, 13, 15], "skis": [2, 13], "snowsho": [2, 11], "has_equipment": 2, "equipment_type_id": [2, 3], "trouv": [2, 3, 5, 7, 10], "d\u00e9": 2, "propri\u00e9tair": [3, 11, 13], "voir": [3, 11, 13, 15, 16, 18], "quelqu": [3, 9, 10, 11, 13, 16], "creation_dat": [3, 10], "Tue": 3, "21": 3, "06": [3, 5, 8], "default_for_sport_id": 3, "descript": [3, 5, 10, 11, 12, 13, 15], "first": [3, 11], "fittracke": [3, 5, 12, 13, 15, 16, 17, 19], "2ukrviyshoakg8qsuknus4": 3, "my": 3, "total_moving": 3, "workouts_count": [3, 9], "29": 3, "second": [3, 10], "equipment_short_id": 3, "anoth": 3, "piec": 3, "court": [3, 10], "201": [3, 10, 11], "created": [3, 5, 10], "from": [3, 8, 10, 11, 15], "bref": 3, "moin": [3, 10], "\u00e9ventuel": 3, "plus": [3, 6, 11, 12, 13, 14, 15, 18], "longu": [3, 6, 11, 13], "limit": [3, 11, 13], "facult": [3, 16], "integer": 3, "obligatoir": [3, 5, 8, 10, 11, 12, 15, 16], "parameter": [3, 11], "sport_label": 3, "equipment_type_label": 3, "sav": [3, 11], "permet": [3, 11, 12, 13, 14, 16], "statut": [3, 9, 12], "tout": [3, 8, 13, 15], "d\u00e9fin": [3, 11, 13, 16, 18], "qrj7by6h2iyjsv8sersfgv": 3, "28": 3, "supplied": 3, "refresh": 3, "recalcul": [3, 13], "cas": [3, 5, 10, 13, 15], "o\u00f9": [3, 13, 15], "incorrect": [3, 11, 13], "Un": [3, 9, 11, 13, 15], "propr": [3, 9, 13, 14], "suppress": [3, 11, 13], "forc": 3, "entre": [3, 5, 13, 16], "import": [3, 5, 11, 13, 15], "tant": 3, "argument": [3, 12], "requis": 3, "cel": [3, 11, 13, 15], "enlev": 3, "cannot": [3, 11], "has": [3, 9, 11], "associated": [3, 11], "without": [3, 10, 11], "paramet": [3, 15], "authentif": [4, 15, 16], "compt": [4, 9, 10, 11, 12, 15, 17], "configur": [4, 11, 13, 15, 16, 18], "oauth2": [4, 16], "app": [5, 11, 15, 16], "client": [5, 11, 13, 15, 16], "pagin": [5, 9, 10], "pag": [5, 9, 10, 11], "Ce": [5, 11], "accessibl": [5, 11, 15, 16], "san": [5, 8, 9, 10, 11, 13, 14, 15], "client_descript": 5, "client_id": [5, 16], "o22a27s2abpuoxjbxv3ujdox": 5, "issued_at": 5, "thu": 5, "july": 5, "2022": 5, "53": [5, 11], "nam": [5, 11], "redirect_ur": 5, "callback": [5, 16], "websit": 5, "has_next": 5, "has_prev": 5, "client_secret": 5, "secret": [5, 15, 16], "client_nam": 5, "client_ur": 5, "list": [5, 10, 11, 12, 14, 15], "redirect": [5, 11, 16], "cha\u00een": [5, 16], "optionnel": [5, 15], "client_client_id": 5, "by_id": 5, "enti": 5, "revok": 5, "r\u00e9voqu": 5, "redirig": [5, 16], "ver": [5, 11, 15, 16], "\u00e9mettr": 5, "response_typ": [5, 16], "support": [5, 11, 15, 16, 18], "stat": [5, 8, 11, 16], "\u00e9vit": [5, 11, 13], "falsif": [5, 16], "sit": [5, 16], "cross": [5, 16], "forgery": [5, 16], "csrf": [5, 16], "recommand": [5, 15, 16], "code_challeng": [5, 16], "g\u00e9ner": [5, 12, 13, 15, 16], "v\u00e9rif": [5, 11, 16, 18], "pkce": [5, 16], "code_challenge_method": [5, 16], "m\u00e9thod": [5, 15, 16], "challeng": [5, 16], "s256": [5, 16], "librair": [5, 15], "authlib": [5, 15, 16], "d\u00e9livr": 5, "rafra\u00eech": 5, "access_token": 5, "roehv64thcg28wcewzhrnvlusoduvw8nvnhkcml57": 5, "expires_in": 5, "864000": 5, "refresh_token": 5, "nuv9cy8vqonrqkhtz5pqaq2zw7msh0mornpjr14amswd6f6": 5, "token_typ": 5, "expires_at": 5, "1658660147": 5, "0667062": 5, "grant_typ": 5, "authorization_cod": [5, 16], "\u00e9miss": 5, "code_verifi": 5, "moyen": [6, 8, 10, 11, 13, 15], "\u00e9lev": [6, 13, 15], "dur": [6, 10, 11, 13], "retourn": [6, 8], "is_active_for_us": 7, "cycling": [7, 11], "transport": [7, 11, 13], "hiking": 7, "mountain": 7, "biking": [7, 10], "running": 7, "walking": 7, "check_workout": 7, "has_workout": 7, "v\u00e9rifi": [7, 15, 18], "user_nam": [8, 9], "by_tim": 8, "entra\u00een": [8, 10, 13], "p\u00e9riod": [8, 13, 15], "temp": 8, "acced": [8, 15, 16], "2018": [8, 10], "tim": [8, 10, 11], "week": [8, 11], "2017": [8, 10], "total_workout": 8, "203": 8, "156": [8, 11], "15": [8, 10, 12, 13, 15], "282": [8, 11], "12341": 8, "150": 8, "178": [8, 11], "47": [8, 10, 11], "9960": 8, "46": [8, 11], "78": 8, "613": 8, "1267": 8, "average_ascent": 8, "101": [8, 11], "average_dist": 8, "average_dur": 8, "7641": 8, "average_speed": 8, "48": 8, "average_descent": 8, "59": [8, 11], "33": [8, 11], "3320": 8, "16": [8, 10, 13], "99": [8, 11], "95": [8, 11], "d\u00e9but": [8, 10], "fin": [8, 10, 11, 15], "dimanch": [8, 13], "month": [8, 11], "mois": [8, 11, 13], "year": 8, "ann\u00e9": [8, 13], "default": [8, 10, 11, 15], "averag": [8, 11], "period": 8, "by_sport": 8, "all": [8, 15], "uploads_dir_siz": 8, "1000": 8, "Ne": 9, "order_by": [9, 10], "par_pag": 9, "is_admin": 9, "sat": 9, "20": [9, 13], "03": [9, 10], "per_pag": [9, 10], "q": 9, "order": [9, 10, 11], "ordre": [9, 10], "tri": [9, 10, 13], "asc": [9, 10], "desc": [9, 10], "criter": 9, "jpeg": 9, "activat": [9, 12], "new_email": 9, "reset_password": 9, "different": [9, 11], "sauf": [9, 15], "sien": 9, "john_do": 9, "your": 9, "right": [9, 11], "02": 10, "ascent": [10, 11], "ave_speed": 10, "bound": 10, "51": 10, "descent": [10, 11], "durat": [10, 11], "04": 10, "kjxavsturjvoah2wvcegef": 10, "map": [10, 11, 13, 14], "max_alt": 10, "max_speed": 10, "min_alt": 10, "modification_dat": 10, "moving": [10, 11], "next_workout": 10, "paus": [10, 11], "previous_workout": 10, "Mon": 10, "jan": 10, "segment": [10, 11, 13], "titl": [10, 11], "weather_end": 10, "weather_start": 10, "with_gpx": 10, "100": [10, 11, 13], "titr": [10, 13], "tient": 10, "majuscul": 10, "minuscul": 10, "distance_from": 10, "minimal": [10, 11, 13, 16], "distance_to": 10, "duration_from": 10, "h": [10, 13], "M": 10, "duration_to": 10, "ave_speed_from": 10, "ave_speed_to": 10, "max_speed_from": 10, "max_speed_to": 10, "sorting": 10, "criteri": 10, "workout_short_id": 10, "57": [10, 11], "45": 10, "22": 10, "sunday": 10, "morning": 10, "cart": [10, 11, 13, 14, 15, 19], "leaflet": [10, 15], "this": [10, 12, 15], "chart_dat": 10, "r\u00e9cuper": [10, 13, 15, 16], "chart": [10, 11, 15], "js": [10, 15], "elev": [10, 11], "279": [10, 11], "latitud": 10, "5078118": 10, "longitud": 10, "1232004": 10, "speed": [10, 11], "63": 10, "fri": 10, "44": [10, 11], "7": [10, 12, 13, 15, 16], "7380": 10, "280": [10, 11], "5079733": 10, "1234538": 10, "39": 10, "segment_id": 10, "map_id": 10, "fa33f4d996844a5c73ecd1ae24456ab8": 10, "1563529507772": 10, "map_til": 10, "z": [10, 15], "tuil": [10, 11, 13], "serveur": [10, 11, 13, 14, 18], "4109": 10, "2930": 10, "sous": [10, 15], "domain": [10, 15], "zoom": 10, "index": 10, "axe": [10, 13], "xml": 10, "guillemet": 10, "doubl": 10, "doivent": [10, 15, 16], "\u00e9chapp": [10, 11], "longueur": 10, "contrair": [10, 13], "elles": 10, "tronqu": 10, "Pour": [10, 11, 13, 15, 16], "no_gpx": 10, "uuid": [10, 11], "posit": [10, 11, 13], "n\u00e9gat": [10, 13], "km": [10, 13], "255": 10, "d\u00e9j\u00e0": [10, 12], "remplac": [10, 11, 13, 15], "vid": [10, 12, 15], "Cette": [11, 14, 15], "apport": 11, "champ": [11, 13], "long": [11, 13], "aur": [11, 13], "m\u00eam": [11, 13, 15], "visibil": [11, 13], "prochain": [11, 13], "see": [11, 15], "125": [11, 13], "rest": [11, 13, 16], "priv": [11, 13], "610": 11, "add": 11, "field": 11, "621": 11, "may": 11, "contain": [11, 15], "special": 11, "622": 11, "fix": [11, 15], "sending": 11, "by": [11, 15], "adding": 11, "pr": 11, "616": 11, "translat": 11, "dutch": 11, "617": 11, "italian": 11, "618": 11, "polish": 11, "620": 11, "624": 11, "spanish": 11, "625": 11, "galician": [11, 13], "basqu": [11, 13], "626": 11, "german": [11, 15], "631": 11, "avanc": [11, 13], "bulgar": [11, 13], "tchequ": [11, 13], "72": 11, "n\u00e9erland": [11, 13], "galicien": 11, "allemand": [11, 13], "italien": [11, 13], "82": 11, "norv\u00e9gien": [11, 13], "bokm\u00e5l": [11, 13], "52": 11, "polon": [11, 13], "portug": [11, 13], "espagnol": [11, 13], "628": 11, "replac": 11, "markdown": [11, 13], "library": 11, "merc": 11, "contributeur": [11, 15, 17], "boosterl": 11, "byakurau": 11, "dotlambd": 11, "erral": 11, "gallegonovato": 11, "qwerty287": 11, "xmgz": 11, "contient": [11, 13, 15], "migrat": [11, 12, 15], "bas": [11, 13, 15, 18], "mainten": [11, 15], "614": 11, "are": 11, "translated": 11, "607": 11, "608": 11, "bulgarian": 11, "609": 11, "612": 11, "czech": 11, "73": 11, "91": 11, "98": 11, "jmlich": 11, "mara21": 11, "604": 11, "swimrun": [11, 13], "598": 11, "cli": [11, 12, 13, 15], "lim": [11, 15], "cleanup": 11, "600": 11, "603": 11, "590": 11, "591": 11, "592": 11, "593": 11, "fb10602": 11, "92": 11, "595": 11, "ci": 11, "up": [11, 14], "test": [11, 15], "confusedalex": 11, "lukasitaly": 11, "simontb": 11, "slothj": 11, "566": 11, "featur": 11, "improved": 11, "section": 11, "575": 11, "display": 11, "587": [11, 15], "improv": 11, "588": 11, "click": 11, "checkbox": 11, "564": 11, "565": 11, "571": 11, "582": 11, "583": 11, "simplify": 11, "dock": 11, "deployment": 11, "jderuit": 11, "pluj": 11, "f2aec30": 11, "strength": 11, "estim": 11, "563": 11, "init": 11, "creation": 11, "550": 11, "typo": 11, "instead": 11, "per": [11, 15], "551": 11, "555": 11, "558": 11, "portugues": 11, "74": 11, "88": 11, "556": 11, "minor": 11, "refacto": 11, "557": 11, "prepar": 11, "sqlalchemy": [11, 15, 18], "voodoopt": 11, "546": 11, "refreshed": 11, "after": [11, 15], "displaying": 11, "545": 11, "urtzai": 11, "540": 11, "542": 11, "544": 11, "543": 11, "tool": 11, "black": 11, "flake8": 11, "isort": 11, "ruff": 11, "ondrejzivny": 11, "527": 11, "endpoint": 11, "respons": 11, "531": 11, "mobil": [11, 14], "532": 11, "foot": 11, "dark": 11, "mod": 11, "536": 11, "accessibility": 11, "526": 11, "norwegian": 11, "533": 11, "534": 11, "537": 11, "538": 11, "528": 11, "readm": 11, "reworked": 11, "530": 11, "specify": 11, "agplv3": 11, "licens": [11, 14, 15], "comradekingu": 11, "d\u00e9sorm": 11, "259": 11, "512": 11, "ability": 11, "filt": 11, "508": 11, "stopped": 11, "threshold": 11, "3b6fa25": 11, "tabl": 11, "small": 11, "resolu": 11, "51758b4": 11, "filter": 11, "hiding": 11, "507": 11, "510": 11, "511": 11, "521": 11, "524": 11, "89": 11, "75": 11, "502": 11, "remov": 11, "deprecated": 11, "command": [11, 13, 14, 15], "506": 11, "databas": [11, 12, 15], "jat255": 11, "504": 11, "fail": 11, "496": 11, "499": 11, "84": 11, "60": 11, "bjornclauw": 11, "mariuz": 11, "495": 11, "menu": [11, 13], "clicking": 11, "490": 11, "EU": 11, "494": 11, "install": [11, 14], "python": [11, 15, 16], "b748459": 11, "alert": 11, "481": 11, "handl": 11, "keyboard": 11, "dropdown": 11, "3821e37": 11, "mak": [11, 15], "calendar": 11, "arrow": 11, "488": 11, "489": 11, "482": 11, "484": 11, "aff4d68": 11, "action": 11, "8aa4cff": 11, "load": [11, 18], "478": 11, "clickabl": 11, "dashboard": 11, "479": 11, "ui": 11, "476": 11, "477": 11, "475": 11, "build": [11, 15], "use": 11, "poetry": [11, 15], "cor": 11, "traxy": 11, "koen": 11, "474": 11, "link": 11, "6e215a": 11, "background": 11, "modal": 11, "displayed": 11, "473": 11, "113": 11, "464": 11, "471": 11, "trekking": [11, 13], "469": 11, "472": 11, "resetting": 11, "468": 11, "456": 11, "drop": 11, "postgresql": [11, 15, 18], "85": 11, "61": 11, "davidhenrythoreau": 11, "224": 11, "result": 11, "444": 11, "d\u00e9pend": 11, "449": 11, "vu": [11, 15], "tooling": 11, "450": 11, "441": 11, "upgrad": [11, 15], "433": 11, "encoded": 11, "427": 11, "typos": 11, "431": 11, "428": 11, "2bcff2e": 11, "flask": [11, 15], "436": 11, "438": 11, "workflow": 11, "421": 11, "darksky": [11, 15], "avail": 11, "weath": 11, "provider": 11, "env": [11, 15], "426": 11, "til": [11, 15], "thank": 11, "astridx": 11, "422": 11, "e2e": 11, "packaged": 11, "411": 11, "various": 11, "416": 11, "closing": 11, "410": 11, "415": 11, "417": 11, "418": 11, "mariusz": 11, "407": 11, "zero": 11, "409": 11, "open": [11, 13, 14], "wat": 11, "swimming": 11, "398": 11, "402": 11, "399": 11, "406": 11, "56": 11, "380": 11, "390": 11, "391": 11, "paragliding": 11, "384": 11, "inconsistent": 11, "between": 11, "gp": [11, 13], "393": 11, "pil": 11, "modul": [11, 15], "attribut": 11, "antiali": 11, "394": 11, "397": 11, "386": 11, "contributing": 11, "md": 11, "388": 11, "395": 11, "cc3fe1c": 11, "42": 11, "dkm": 11, "partiel": 11, "quant": 11, "encor": [11, 14], "weblat": [11, 13], "351": 11, "370": 11, "371": 11, "375": 11, "french": [11, 13], "thovi98": 11, "376": 11, "1375986": 11, "furo": 11, "377": 11, "354": 11, "374": 11, "virtualenv": [11, 15], "87": 11, "36": 11, "366": 11, "369": 11, "hosted": 11, "367": 11, "358": 11, "filtering": 11, "359": 11, "overlap": 11, "350": 11, "352": 11, "356": 11, "357": 11, "365": 11, "gnu": 11, "ewm": 11, "parm": 11, "dessous": 11, "servic": [11, 15], "319": 11, "creat": [11, 15], "329": 11, "start": 11, "axis": 11, "at": [11, 15], "sticky": 11, "333": 11, "338": 11, "relev": 11, "328": 11, "track": 11, "imperial": 11, "b29ed7": 11, "250": 11, "320": 11, "323": 11, "06ba975": 11, "bcc568e": 11, "ea0ac99": 11, "a458f5f": 11, "075aeb9": 11, "60e164d": 11, "318": 11, "J": 11, "lavoi": 11, "mondstern": 11, "314": 11, "deleted": 11, "process": [11, 15], "315": 11, "Une": [11, 12, 13, 15, 18], "personnalis": [11, 13], "afin": [11, 13, 16], "puissent": [11, 13], "prendr": [11, 13], "connaiss": [11, 13], "conten": [11, 13, 15], "t\u00e9l\u00e9vers": [11, 13], "enfin": 11, "compl\u00e9mentair": 11, "pouv": 11, "util": [11, 13], "propos": [11, 13], "301": [11, 15], "304": 11, "305": 11, "additional": 11, "307": 11, "quand": 11, "d\u00e9marr": [11, 15, 19], "297": 11, "308": 11, "310": 11, "290": 11, "294": 11, "postgresql10": 11, "265": 11, "implementing": 11, "altern": 11, "visualcrossing": 11, "environment": [11, 15, 18], "variabl": [11, 18], "set": [11, 12, 15], "weather_api_provid": [11, 15], "287": 11, "289": 11, "dperruso": 11, "c88a515": 11, "f96dcef": 11, "mountaineering": 11, "278": 11, "270": 11, "nederland": 11, "258": 11, "pars": 11, "271": 11, "273": 11, "274": 11, "paralleliz": 11, "275": 11, "disabl": 11, "work": [11, 15, 18], "entry": 11, "commend": 11, "lign": [11, 13, 14, 15], "dramatiq": [11, 12, 15], "3c8d9c2": 11, "trailing": 11, "comm": [11, 13, 15], "d\u00e9velopp": [11, 12, 14], "264": 11, "whit": 11, "gray": 11, "266": 11, "260": 11, "checked": 11, "261": 11, "should": 11, "return": [11, 15], "n\u00e9cessit": [11, 15, 16], "b1536fc": 11, "257": 11, "body": [11, 15], "nginx": [11, 13, 15, 16, 18], "112": 11, "allow": [11, 15], "244": 11, "virtual": 11, "rid": 11, "246": 11, "247": 11, "microsecond": 11, "252": 11, "242": 11, "241": 11, "packag": [11, 15], "239": 11, "cb9d02f": 11, "english": 11, "231": 11, "invalidat": 11, "236": 11, "rat": [11, 15], "232": 11, "hidden": 11, "237": 11, "212": 11, "230": 11, "problem": [11, 13, 15], "225": 11, "grammar": 11, "issu": [11, 13], "skylan0916": 11, "derni": [11, 15], "ex\u00e9cut": 11, "inf\u00e9rieur": 11, "diff\u00e9rent": [11, 13], "ex\u00e9cu": [11, 12], "213": 11, "using": 11, "measur": 11, "ft": 11, "mi": 11, "223": 11, "icon": 11, "167": 11, "162": 11, "fmstrat": 11, "210": 11, "could": 11, "requiring": 11, "subdomain": 11, "staticmap_subdomain": [11, 15], "209": 11, "containing": 11, "multipl": 11, "gorgoback": 11, "Et": 11, "detect": 11, "brows": 11, "matching": 11, "if": [11, 15], "208": 11, "card": 11, "html": 11, "changing": 11, "197": 11, "196": 11, "manag": [11, 12], "190": 11, "193": 11, "deleting": 11, "192": 11, "191": 11, "layout": 11, "nomenclatur": 11, "inclus": 11, "195": 11, "cec": 11, "affect": [11, 13], "pr\u00e9c\u00e9dent": 11, "cc4287e": 11, "offset": 11, "Pas": 11, "refactoris": 11, "avant": [11, 13, 15], "possibl": [11, 13, 14, 15], "fournisseur": [11, 15], "smtp": [11, 15, 18], "r\u00e9duit": 11, "pr\u00e9requ": 11, "mono": [11, 13], "ger": [11, 12, 13, 15, 18], "180": 11, "send": 11, "tl": [11, 15], "177": 11, "manqu": 11, "petit": 11, "\u00e9cran": 11, "175": 11, "173": 11, "171": 11, "correctly": 11, "niveau": 11, "155": 11, "106": 11, "169": 11, "161": 11, "farthest": 11, "160": 11, "plusieur": [11, 13, 14, 15], "danielsiersleben": 11, "rapport": 11, "initialis": [11, 15], "149": 11, "152": 11, "autoespcap": 11, "model": 11, "jinj": 11, "151": 11, "security": 11, "nettoi": 11, "entr\u00e9": [11, 15, 16], "alphanumer": 11, "worker": [11, 12, 15], "lanc": [11, 15], "script": 11, "product": 11, "dotenv": 11, "146": 11, "145": 11, "140": 11, "fullscreen": 11, "control": [11, 15], "138": 11, "initial": [11, 15], "135": 11, "finish": 11, "marker": 11, "134": 11, "wind": 11, "direct": [11, 13, 15], "877fa0f": 11, "changed": 11, "131": 11, "129": 11, "editing": 11, "127": [11, 15], "validat": 11, "legitimat": 11, "uri": 11, "such": 11, "localhost": [11, 15], "123": 11, "121": 11, "activity": 11, "116": 11, "bet": 11, "button": 11, "graph": 11, "screen": 11, "115": 11, "option": [11, 12, 15], "min": 11, "90": 11, "som": 11, "seem": 11, "104": 11, "switch": 11, "full": 11, "development": 11, "109": 11, "slow": 11, "mov": 11, "93": 11, "paf38": 11, "83": 11, "configured": 11, "generat": 11, "static": 11, "keep": 11, "default_staticmap": [11, 15], "81": 11, "remaining": 11, "textar": 11, "modify": 11, "his": 11, "birth": 11, "day": [11, 12, 15], "80": [11, 15], "79": 11, "rebuild": 11, "javascript": [11, 15], "Du": 11, "fait": [11, 15], "postgr": [11, 18], "exceeding": 11, "71": 11, "70": 11, "less": 11, "66": 11, "used": 11, "importing": 11, "64": 11, "shown": 11, "62": 11, "\u00e9valu": [11, 15], "standardiz": 11, "term": 11, "upload": [11, 15, 17], "directory": [11, 15], "also": 11, "uploading": 11, "activit": 11, "introduit": 11, "majeur": 11, "facilit": 11, "dor\u00e9nav": 11, "attent": [11, 15, 18], "lir": 11, "certain": [11, 12, 14, 15], "environ": [11, 12, 18], "renomm": 11, "celui": [11, 15], "thunderforest": [11, 15], "outdoor": [11, 15], "54": 11, "d\u00e9plac": 11, "red": [11, 12, 15], "complet": 11, "co": 11, "4c3fc34": 11, "empty": 11, "34614d5": 11, "spinn": 11, "loading": 11, "b862a77": 11, "2e1ee2c": 11, "interceptor": 11, "rout": [11, 15], "definit": 11, "down": 11, "mor": 11, "weekend": 11, "40": 11, "localiz": 11, "i18n": 11, "41": 11, "show": [11, 12, 15], "mous": 11, "over": 11, "docu": 11, "choos": 11, "37": 11, "34": 11, "anymor": 11, "pipenv": 11, "gestion": [11, 15], "paquet": [11, 15], "detailed": 11, "tooltip": 11, "standard": [11, 15], "v\u00e9lo": [11, 13], "randon": [11, 13], "vtt": [11, 13], "cours": [11, 13], "pied": [11, 13], "march": [11, 13], "\u00e9gal": [11, 12, 13, 14, 15], "enter": 11, "heur": [11, 13, 15], "m\u00e9t\u00e9o": [11, 13], "cl\u00e9": [11, 13, 15], "calendri": [11, 13], "mensuel": [11, 13], "cour": [11, 12, 14, 15], "grand": [11, 13], "recherch": 11, "search": 11, "view": [11, 15], "usag": [12, 15], "arg": [12, 15], "lin": [12, 15], "help": [12, 15], "exit": [12, 15], "expir": 12, "depuis": [12, 15], "noir": 12, "al\u00e9atoir": [12, 15], "deux": 12, "lettr": 12, "iso": 12, "639": 12, "incomplet": 12, "stock": [13, 14, 16], "sportiv": [13, 14], "plein": [13, 14], "air": [13, 14], "Des": 13, "plut\u00f4t": 13, "r\u00e9pertoir": [13, 15], "chiffr": [13, 15], "Avec": 13, "street": [13, 14], "statiqu": [13, 15], "trac": [13, 15], "virtuel": [13, 15], "\u00e9lectr": 13, "alpin": 13, "nag": 13, "eau": 13, "libr": 13, "parapent": 13, "19": 13, "aviron": 13, "ski": 13, "raquet": 13, "trail": 13, "lieu": 13, "Elle": 13, "except": [13, 18], "analys": [13, 15], "mani": [13, 15], "sp\u00e9cif": 13, "jusqu": 13, "system": [13, 15], "m\u00e9triqu": 13, "ains": [13, 15], "produir": 13, "differ": 13, "origin": 13, "particuli": 13, "outil": [13, 14, 15], "tier": [13, 14], "permettent": 13, "entrer": 13, "relat": 13, "bouton": 13, "visualis": 13, "visual": [13, 15], "crossing": [13, 15], "sourc": 13, "vent": 13, "flech": 13, "indiqu": 13, "infobull": 13, "proven": 13, "cf": [13, 14, 15], "perform": 13, "atteint": 13, "masqu": 13, "comport": 13, "d\u00e9roul": 13, "instant": 13, "r\u00e9cent": 13, "consult": 13, "nouveaut": 13, "dont": [13, 16], "premi": 13, "clair": 13, "chois": [13, 15], "affichag": 13, "cach": 13, "d\u00e9part": 13, "exclur": 13, "extr\u00eam": 13, "exclu": 13, "mati": 13, "appara\u00eetr": 13, "toujour": 13, "chaussur": 13, "kayak": 13, "boat": 13, "visibl": 13, "chaqu": 13, "bien": 13, "doiv": 13, "automat": 13, "appar": 13, "laquel": 13, "tierc": [13, 16], "unitair": 13, "mo": 13, "000": 13, "S": 13, "n\u00e9cessair": [13, 15], "volumin": [13, 18], "avert": 13, "suppl\u00e9mentair": 13, "syntax": 13, "adapt": [13, 15], "discours": 13, "traduit": 13, "bloqu": 13, "verrouill": 13, "vi": [13, 15], "correspondr": 13, "etat": 13, "publi": [13, 15], "suivr": 14, "conserv": [14, 15], "votr": [14, 15], "android": 14, "exhaust": 14, "runn": 14, "gpl": 14, "v3": 14, "opentrack": 14, "apach": 14, "fitotrack": 14, "aid": 14, "fonctionnal": [14, 15], "instabl": [14, 15], "ticket": 14, "document": [14, 15, 16, 18], "d\u00e9pannag": 14, "histor": [14, 15], "clon": 15, "d\u00e9p\u00f4t": 15, "\u00e9tap": 15, "d\u00e9crivent": 15, "linux": 15, "exploit": 15, "archlinux": 15, "ubuntu": 15, "integr": 15, "continu": 15, "Sur": 15, "rencontr": 15, "D": 15, "guid": 15, "gr\u00e2c": [15, 17], "uberspac": 15, "hosting": 15, "debian": [15, 17], "net": 15, "typescript": 15, "staticmap": 15, "t\u00e2ch": 15, "gunicorn": [15, 18], "vue3": 15, "vuex": 15, "logo": 15, "ic\u00f4n": 15, "freepik": 15, "flaticon": 15, "fork": 15, "awesom": 15, "nod": 15, "yarn": 15, "compos": 15, "makefil": 15, "custom": 15, "Elles": 15, "flask_app": 15, "d\u00e9marrag": 15, "pwd": 15, "__main__": 15, "py": 15, "sinon": 15, "host": 15, "h\u00f4t": 15, "port": 15, "5000": 15, "app_setting": 15, "productionconfig": 15, "app_secret_key": 15, "fort": 15, "jwt": 15, "app_worker": 15, "_workers_": 15, "app_log": 15, "chemin": [15, 18], "upload_fold": [15, 18], "absolu": [15, 18], "application_directory": 15, "database_url": [15, 18], "5432": 15, "database_disable_pooling": 15, "pooling": 15, "ui_url": 15, "lien": 15, "email_url": [15, 18], "chain": 15, "sender_email": 15, "exp\u00e9diteur": 15, "redis_url": 15, "workers_process": 15, "processus": 15, "api_rate_limit": 15, "300": 15, "minut": 15, "tile_server_url": 15, "gard": 15, "23": 15, "n\u00e9cessitent": [15, 16], "df": 15, "Par": [15, 16], "b": 15, "osm": 15, "franc": 15, "attribu": 15, "target": 15, "_blank": 15, "rel": 15, "noopen": 15, "noreferr": 15, "komoot": 15, "insensibl": 15, "cass": 15, "weather_api_key": 15, "weather_ap": 15, "vite_app_api_url": 15, "26": 15, "vue_app_api_url": 15, "25": 15, "ssl": 15, "465": 15, "starttl": 15, "office365": 15, "fonction": [15, 16], "identif": 15, "omis": 15, "ancien": 15, "notif": 15, "pr\u00eat": 15, "laiss": 15, "24": 15, "encod": 15, "sp\u00e9cial": 15, "passwordwith": 15, "40and": 15, "26and": 15, "3f": 15, "apikey": 15, "xxxx": 15, "condit": 15, "attendu": 15, "osmfr": 15, "fond": 15, "mention": 15, "legal": 15, "nofollow": 15, "nbsp": 15, "creativecommon": 15, "licenc": 15, "cc": 15, "SA": 15, "ip": 15, "strateg": 15, "pourr": 15, "soum": 15, "asset": 15, "notat": 15, "s\u00e9par": [15, 16], "virgul": 15, "hour": 15, "diagnostic": 15, "utility": 15, "clear": 15, "specific": 15, "key": 15, "enumerat": 15, "detail": 15, "interrompu": 15, "remarqu": 15, "fa\u00e7on": 15, "simpl": 15, "pip": 15, "schem": [15, 16], "owner": 15, "privileg": 15, "copi": 15, "coll": 15, "nano": 15, "ftcli": 15, "db": 15, "systemd": 15, "ouvr": 15, "alor": 15, "projet": 15, "project": 15, "git": 15, "github": 15, "samr1": 15, "cd": 15, "dev": 15, "run": 15, "3000": 15, "v0": 15, "wget": 15, "tar": 15, "gz": 15, "xzf": 15, "mv": 15, "sql": 15, "proced": 15, "fair": 15, "sauvegard": 15, "ensembl": 15, "pg_dump": 15, "suivent": 15, "s\u00e9mant": 15, "r\u00e9tro": 15, "compatibl": 15, "stopp": 15, "u": 15, "journal": [15, 18], "red\u00e9marr": 15, "pull": 15, "\u00e9cras": 15, "cp": 15, "r": 15, "proxy": [15, 16], "\u00c0": 15, "network": 15, "startlimitintervalsec": 15, "restart": 15, "alway": 15, "restartsec": 15, "standardoutput": 15, "syslog": 15, "standarderror": 15, "syslogidentifi": 15, "workingdirectory": 15, "hom": 15, "execstart": 15, "venv": 15, "bin": 15, "create_app": 15, "logfil": 15, "wantedby": 15, "mult": 15, "timeout": [15, 18], "fittrackee_worker": 15, "task": 15, "queu": 15, "listen": 15, "443": 15, "http2": 15, "server_nam": 15, "ssl_certificat": 15, "fullchain": 15, "pem": 15, "ssl_certificate_key": 15, "privkey": 15, "how": 15, "1mb": 15, "setting": 15, "ll": 15, "need": 15, "uncommenting": 15, "below": 15, "want": 15, "prevent": 15, "checking": 15, "client_max_body_siz": [15, 18], "1m": 15, "proxy_pass": 15, "proxy_redirect": 15, "proxy_set_head": [15, 16], "real": 15, "remote_addr": 15, "forwarded": [15, 16], "proxy_add_x_forwarded_for": 15, "proto": [15, 16], "request_ur": 15, "besoin": 15, "8025": 15, "mailhog": 15, "stop": 15, "shel": 15, "additionnel": 15, "fittrackee_client": 15, "lint": 15, "check": 15, "fittrackee_ynh": 15, "mynixos": 15, "nixpkg": 15, "fit": [15, 17], "tracke": 15, "plupart": 16, "permettr": 16, "interag": 16, "onglet": 16, "\u00e9chang": 16, "contr": 16, "corp": 16, "assur": 16, "meilleur": 16, "s\u00e9cur": 16, "\u00e9critur": 16, "accord": 16, "lectur": 16, "Ils": 16, "puiss": 16, "fittrackee_host": 16, "espac": 16, "emp\u00each": 16, "3aread": 16, "3awrit": 16, "sort": 16, "ensuit": 16, "\u0153uvr": 16, "bibliothequ": 16, "derri": 16, "simplified": 16, "aaron": 16, "pareck": 16, "flow": 16, "oauthlib": 16, "session": 16, "strav": 17, "garmin": 17, "synchronis": 17, "fittrackee_install": 17, "sh": 17, "netinstall": 17, "exc": 18, "nosuchmoduleerror": 18, "plugin": 18, "dialect": 18, "invalidemailurlschem": 18, "augment": 18, "del": 18, "critical": 18, "d\u00e9tail": 19, "\u00e9chec": 19}, "objects": {"": [[0, 0, 1, "post--api-auth-account-confirm", "/api/auth/account/confirm"], [0, 1, 1, "get--api-auth-account-export", "/api/auth/account/export"], [0, 1, 1, "get--api-auth-account-export-(string-file_name)", "/api/auth/account/export/(string:file_name)"], [0, 0, 1, "post--api-auth-account-export-request", "/api/auth/account/export/request"], [0, 0, 1, "post--api-auth-account-privacy-policy", "/api/auth/account/privacy-policy"], [0, 0, 1, "post--api-auth-account-resend-confirmation", "/api/auth/account/resend-confirmation"], [0, 0, 1, "post--api-auth-email-update", "/api/auth/email/update"], [0, 0, 1, "post--api-auth-login", "/api/auth/login"], [0, 0, 1, "post--api-auth-logout", "/api/auth/logout"], [0, 0, 1, "post--api-auth-password-reset-request", "/api/auth/password/reset-request"], [0, 0, 1, "post--api-auth-password-update", "/api/auth/password/update"], [0, 2, 1, "delete--api-auth-picture", "/api/auth/picture"], [0, 0, 1, "post--api-auth-picture", "/api/auth/picture"], [0, 1, 1, "get--api-auth-profile", "/api/auth/profile"], [0, 0, 1, "post--api-auth-profile-edit", "/api/auth/profile/edit"], [0, 3, 1, "patch--api-auth-profile-edit-account", "/api/auth/profile/edit/account"], [0, 0, 1, "post--api-auth-profile-edit-preferences", "/api/auth/profile/edit/preferences"], [0, 0, 1, "post--api-auth-profile-edit-sports", "/api/auth/profile/edit/sports"], [0, 2, 1, "delete--api-auth-profile-reset-sports-(sport_id)", "/api/auth/profile/reset/sports/(sport_id)"], [0, 0, 1, "post--api-auth-register", "/api/auth/register"], [1, 1, 1, "get--api-config", "/api/config"], [1, 3, 1, "patch--api-config", "/api/config"], [2, 1, 1, "get--api-equipment-types", "/api/equipment-types"], [2, 1, 1, "get--api-equipment-types-(int-equipment_type_id)", "/api/equipment-types/(int:equipment_type_id)"], [2, 3, 1, "patch--api-equipment-types-(int-equipment_type_id)", "/api/equipment-types/(int:equipment_type_id)"], [3, 1, 1, "get--api-equipments", "/api/equipments"], [3, 0, 1, "post--api-equipments", "/api/equipments"], [3, 2, 1, "delete--api-equipments-(string-equipment_short_id)", "/api/equipments/(string:equipment_short_id)"], [3, 1, 1, "get--api-equipments-(string-equipment_short_id)", "/api/equipments/(string:equipment_short_id)"], [3, 3, 1, "patch--api-equipments-(string-equipment_short_id)", "/api/equipments/(string:equipment_short_id)"], [3, 0, 1, "post--api-equipments-(string-equipment_short_id)-refresh", "/api/equipments/(string:equipment_short_id)/refresh"], [5, 1, 1, "get--api-oauth-apps", "/api/oauth/apps"], [5, 0, 1, "post--api-oauth-apps", "/api/oauth/apps"], [5, 2, 1, "delete--api-oauth-apps-(int-client_id)", "/api/oauth/apps/(int:client_id)"], [5, 1, 1, "get--api-oauth-apps-(int-client_id)-by_id", "/api/oauth/apps/(int:client_id)/by_id"], [5, 0, 1, "post--api-oauth-apps-(int-client_id)-revoke", "/api/oauth/apps/(int:client_id)/revoke"], [5, 1, 1, "get--api-oauth-apps-(string-client_client_id)", "/api/oauth/apps/(string:client_client_id)"], [5, 0, 1, "post--api-oauth-authorize", "/api/oauth/authorize"], [5, 0, 1, "post--api-oauth-revoke", "/api/oauth/revoke"], [5, 0, 1, "post--api-oauth-token", "/api/oauth/token"], [1, 1, 1, "get--api-ping", "/api/ping"], [6, 1, 1, "get--api-records", "/api/records"], [7, 1, 1, "get--api-sports", "/api/sports"], [7, 1, 1, "get--api-sports-(int-sport_id)", "/api/sports/(int:sport_id)"], [7, 3, 1, "patch--api-sports-(int-sport_id)", "/api/sports/(int:sport_id)"], [8, 1, 1, "get--api-stats-(user_name)-by_sport", "/api/stats/(user_name)/by_sport"], [8, 1, 1, "get--api-stats-(user_name)-by_time", "/api/stats/(user_name)/by_time"], [8, 1, 1, "get--api-stats-all", "/api/stats/all"], [9, 1, 1, "get--api-users", "/api/users"], [9, 2, 1, "delete--api-users-(user_name)", "/api/users/(user_name)"], [9, 1, 1, "get--api-users-(user_name)", "/api/users/(user_name)"], [9, 3, 1, "patch--api-users-(user_name)", "/api/users/(user_name)"], [9, 1, 1, "get--api-users-(user_name)-picture", "/api/users/(user_name)/picture"], [10, 1, 1, "get--api-workouts", "/api/workouts"], [10, 0, 1, "post--api-workouts", "/api/workouts"], [10, 2, 1, "delete--api-workouts-(string-workout_short_id)", "/api/workouts/(string:workout_short_id)"], [10, 1, 1, "get--api-workouts-(string-workout_short_id)", "/api/workouts/(string:workout_short_id)"], [10, 3, 1, "patch--api-workouts-(string-workout_short_id)", "/api/workouts/(string:workout_short_id)"], [10, 1, 1, "get--api-workouts-(string-workout_short_id)-chart_data", "/api/workouts/(string:workout_short_id)/chart_data"], [10, 1, 1, "get--api-workouts-(string-workout_short_id)-chart_data-segment-(int-segment_id)", "/api/workouts/(string:workout_short_id)/chart_data/segment/(int:segment_id)"], [10, 1, 1, "get--api-workouts-(string-workout_short_id)-gpx", "/api/workouts/(string:workout_short_id)/gpx"], [10, 1, 1, "get--api-workouts-(string-workout_short_id)-gpx-download", "/api/workouts/(string:workout_short_id)/gpx/download"], [10, 1, 1, "get--api-workouts-(string-workout_short_id)-gpx-segment-(int-segment_id)", "/api/workouts/(string:workout_short_id)/gpx/segment/(int:segment_id)"], [10, 1, 1, "get--api-workouts-map-(map_id)", "/api/workouts/map/(map_id)"], [10, 0, 1, "post--api-workouts-no_gpx", "/api/workouts/no_gpx"], [15, 4, 1, "-", "API_RATE_LIMITS"], [15, 4, 1, "-", "APP_LOG"], [15, 4, 1, "-", "APP_SECRET_KEY"], [15, 4, 1, "-", "APP_SETTINGS"], [15, 4, 1, "-", "APP_WORKERS"], [15, 4, 1, "-", "DATABASE_DISABLE_POOLING"], [15, 4, 1, "-", "DATABASE_URL"], [15, 4, 1, "-", "DEFAULT_STATICMAP"], [15, 4, 1, "-", "EMAIL_URL"], [15, 4, 1, "-", "FLASK_APP"], [15, 4, 1, "-", "HOST"], [15, 4, 1, "-", "MAP_ATTRIBUTION"], [15, 4, 1, "-", "PORT"], [15, 4, 1, "-", "REDIS_URL"], [15, 4, 1, "-", "SENDER_EMAIL"], [15, 4, 1, "-", "STATICMAP_SUBDOMAINS"], [15, 4, 1, "-", "TILE_SERVER_URL"], [15, 4, 1, "-", "UI_URL"], [15, 4, 1, "-", "UPLOAD_FOLDER"], [15, 4, 1, "-", "VITE_APP_API_URL"], [15, 4, 1, "-", "WEATHER_API_KEY"], [15, 4, 1, "envvar-WEATHER_API_PROVIDER", "WEATHER_API_PROVIDER \ud83c\udd95"], [15, 4, 1, "-", "WORKERS_PROCESSES"]], "/api/workouts/map_tile/(s)/(z)/(x)/(y)": [[10, 1, 1, "get--api-workouts-map_tile-(s)-(z)-(x)-(y).png", "png"]]}, "objtypes": {"0": "http:post", "1": "http:get", "2": "http:delete", "3": "http:patch", "4": "std:envvar"}, "objnames": {"0": ["http", "post", "HTTP post"], "1": ["http", "get", "HTTP get"], "2": ["http", "delete", "HTTP delete"], "3": ["http", "patch", "HTTP patch"], "4": ["std", "envvar", "variable d'environnement"]}, "titleterms": {"authentif": 0, "compt": [0, 13], "configur": 1, "typ": [2, 13], "\u00e9quip": [2, 3, 13], "document": [4, 11], "api": [4, 15], "point": 4, "acces": [4, 15], "oauth2": [5, 12], "record": 6, "sport": [7, 13], "statist": [8, 11, 13], "utilis": [9, 12, 13], "s\u00e9anc": [10, 13, 18], "histor": 11, "modif": 11, "version": 11, "0": [11, 16], "8": 11, "9": 11, "21": 11, "09": 11, "2024": 11, "fonctionnal": [11, 13], "am\u00e9lior": 11, "bug": 11, "corrig": 11, "traduct": [11, 13], "diver": 11, "01": 11, "7": 11, "25": 11, "08": 11, "6": 11, "03": 11, "5": 11, "29": 11, "06": 11, "4": 11, "22": 11, "05": 11, "3": 11, "2": [11, 16], "1": 11, "04": 11, "32": 11, "10": 11, "31": 11, "02": 11, "30": 11, "28": 11, "23": 11, "12": 11, "2023": 11, "27": 11, "20": 11, "26": 11, "19": 11, "11": 11, "24": 11, "14": 11, "07": 11, "15": 11, "18": 11, "17": 11, "16": 11, "13": 11, "2022": 11, "ticket": 11, "ferm": 11, "pull": 11, "request": 11, "s\u00e9cur": 11, "nouvel": 11, "2021": 11, "2020": 11, "fittracke": [11, 14, 18], "pyp": [11, 15], "administr": [11, 13, 18], "correct": 11, "mineur": 11, "disponibl": 11, "franc": 11, "2019": 11, "premi": 11, "2018": 11, "interfac": 12, "lign": 12, "command": 12, "bas": 12, "don": [12, 15], "ftcli": 12, "db": 12, "drop": 12, "upgrad": 12, "clean": 12, "user": 12, "clean_arch": 12, "clean_token": 12, "creat": 12, "export_arch": 12, "updat": 12, "pr\u00e9f\u00e9rent": 13, "appliqu": 13, "oauth": [13, 16], "captur": 13, "\u00e9cran": 13, "tableau": 13, "bord": 13, "pag": 13, "d\u00e9tail": [13, 18], "list": 13, "tabl": 14, "mati": 14, "install": [15, 17], "d\u00e9pend": 15, "principal": 15, "pr\u00e9requ": 15, "variabl": 15, "environ": 15, "courriel": 15, "serveur": 15, "tuil": 15, "limit": 15, "m\u00e9t\u00e9o": 15, "a": 15, "part": 15, "sourc": 15, "d\u00e9velopp": 15, "product": 15, "mis": 15, "jour": 15, "d\u00e9ploi": 15, "dock": 15, "yunohost": 15, "nixos": 15, "scop": 16, "flux": 16, "ressourc": 16, "outil": 17, "tier": 17, "import": 17, "script": 17, "d\u00e9marr": 18, "Les": 18, "imag": 18, "cart": 18, "affich": 18, "dan": 18, "\u00e9chec": 18, "charg": 18, "t\u00e9l\u00e9charg": 18, "fichi": 18, "d\u00e9pannag": 19}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx": 58}, "alltitles": {"Authentification et compte": [[0, "authentication-and-account"]], "Configuration": [[1, "configuration"]], "Types d\u2019\u00e9quipement": [[2, "equipment-types"], [13, "equipment-types"]], "\u00c9quipements": [[3, "equipments"], [13, "equipments"], [13, "id1"]], "Documentation de l\u2019API": [[4, "api-documentation"]], "Points d'acc\u00e8s :": [[4, null]], "OAuth2": [[5, "oauth2"], [12, "oauth2"]], "Records": [[6, "records"]], "Sports": [[7, "sports"], [13, "sports"]], "Statistiques": [[8, "statistics"], [13, "statistics"]], "Utilisateurs": [[9, "users"], [12, "users"], [13, "users"]], "S\u00e9ances": [[10, "workouts"], [13, "workouts"]], "Historique des modifications": [[11, "change-log"]], "Version 0.8.9 (21/09/2024)": [[11, "version-0-8-9-2024-09-21"]], "Fonctionnalit\u00e9s et am\u00e9liorations": [[11, "features-and-enhancements"], [11, "id3"], [11, "id8"], [11, "id12"], [11, "id19"], [11, "id23"], [11, "id32"], [11, "id36"], [11, "id40"], [11, "id43"], [11, "id60"], [11, "id63"], [11, "id71"], [11, "id74"], [11, "id80"], [11, "id85"], [11, "id87"], [11, "id89"], [11, "id92"], [11, "id103"], [11, "id109"]], "Bugs corrig\u00e9s": [[11, "bugs-fixed"], [11, "id1"], [11, "id4"], [11, "id9"], [11, "id15"], [11, "id20"], [11, "id24"], [11, "id27"], [11, "id29"], [11, "id33"], [11, "id37"], [11, "id41"], [11, "id44"], [11, "id47"], [11, "id50"], [11, "id51"], [11, "id54"], [11, "id56"], [11, "id58"], [11, "id61"], [11, "id64"], [11, "id72"], [11, "id75"], [11, "id78"], [11, "id81"], [11, "id93"], [11, "id98"], [11, "id100"], [11, "id104"], [11, "id107"], [11, "id110"], [11, "id112"], [11, "id115"], [11, "id118"], [11, "id120"], [11, "id123"], [11, "id126"], [11, "id129"], [11, "id134"], [11, "id136"], [11, "id138"], [11, "id140"], [11, "id143"], [11, "id145"], [11, "id151"], [11, "id154"], [11, "id156"], [11, "id158"], [11, "id165"], [11, "id170"], [11, "id172"], [11, "id174"], [11, "id177"], [11, "id179"], [11, "id181"], [11, "id185"], [11, "id195"], [11, "id198"], [11, "id200"], [11, "id203"], [11, "id210"]], "Traductions": [[11, "translations"], [11, "id2"], [11, "id5"], [11, "id6"], [11, "id10"], [11, "id13"], [11, "id16"], [11, "id17"], [11, "id21"], [11, "id25"], [11, "id28"], [11, "id30"], [11, "id34"], [11, "id38"], [11, "id42"], [11, "id45"], [11, "id48"], [11, "id52"], [11, "id57"], [11, "id62"], [11, "id65"], [11, "id67"], [11, "id70"], [11, "id73"], [11, "id76"], [11, "id79"], [11, "id82"], [11, "id83"], [11, "id86"], [11, "id88"], [11, "id90"], [11, "id91"], [11, "id94"], [11, "id96"], [11, "id99"], [11, "id101"], [11, "id105"], [11, "id106"], [11, "id108"], [11, "id111"], [11, "id124"], [13, "translations"]], "Divers": [[11, "misc"], [11, "id7"], [11, "id11"], [11, "id14"], [11, "id18"], [11, "id22"], [11, "id26"], [11, "id31"], [11, "id35"], [11, "id39"], [11, "id46"], [11, "id49"], [11, "id53"], [11, "id55"], [11, "id59"], [11, "id66"], [11, "id69"], [11, "id77"], [11, "id84"], [11, "id95"], [11, "id97"], [11, "id113"], [11, "id127"], [11, "id130"], [11, "id147"], [11, "id149"], [11, "id166"], [11, "id175"], [11, "id182"], [11, "id186"], [11, "id193"], [11, "id204"], [11, "id207"]], "Version 0.8.8 (01/09/2024)": [[11, "version-0-8-8-2024-09-01"]], "Version 0.8.7 (25/08/2024)": [[11, "version-0-8-7-2024-08-25"]], "Version 0.8.6 (03/08/2024)": [[11, "version-0-8-6-2024-08-03"]], "Version 0.8.5 (29/06/2024)": [[11, "version-0-8-5-2024-06-29"]], "Version 0.8.4 (22/05/2024)": [[11, "version-0-8-4-2024-05-22"]], "Version 0.8.3 (09/05/2024)": [[11, "version-0-8-3-2024-05-09"]], "Version 0.8.2 (08/05/2024)": [[11, "version-0-8-2-2024-05-08"]], "Version 0.8.1 (01/05/2024)": [[11, "version-0-8-1-2024-05-01"]], "Version 0.8.0 (21/04/2024)": [[11, "version-0-8-0-2024-04-21"]], "Version 0.7.32 (10/03/2024)": [[11, "version-0-7-32-2024-03-10"]], "Version 0.7.31 (10/02/2024)": [[11, "version-0-7-31-2024-02-10"]], "Version 0.7.30 (04/02/2024)": [[11, "version-0-7-30-2024-02-04"]], "Version 0.7.29 (04/01/2024)": [[11, "version-0-7-29-2024-01-06"]], "Version 0.7.28 (23/12/2023)": [[11, "version-0-7-28-2023-12-23"]], "Version 0.7.27 (20/12/2023)": [[11, "version-0-7-27-2023-12-20"]], "Version 0.7.26 (19/11/2023)": [[11, "version-0-7-26-2023-11-19"]], "Version 0.7.25 (08/10/2023)": [[11, "version-0-7-25-2023-10-08"]], "Version 0.7.24 (04/10/2023)": [[11, "version-0-7-24-2023-10-04"]], "Version 0.7.23 (14/09/2023)": [[11, "version-0-7-23-2023-09-14"]], "Version 0.7.22 (23/08/2023)": [[11, "version-0-7-22-2023-08-23"]], "Version 0.7.21 (30/07/2023)": [[11, "version-0-7-21-2023-07-30"]], "Version 0.7.20 (22/07/2023)": [[11, "version-0-7-20-2023-07-22"]], "Version 0.7.19 (15/07/2023)": [[11, "version-0-7-19-2023-07-15"]], "Documentation": [[11, "documentation"], [11, "id68"], [11, "id102"]], "Version 0.7.18 (25/06/2023)": [[11, "version-0-7-18-2023-06-25"]], "Version 0.7.17 (03/06/2023)": [[11, "version-0-7-17-2023-06-03"]], "Version 0.7.16 (29/05/2023)": [[11, "version-0-7-16-2023-05-29"]], "Version 0.7.15 (12/04/2023)": [[11, "version-0-7-15-2023-04-12"]], "Version 0.7.14 (08/03/2023)": [[11, "version-0-7-14-2023-03-08"]], "Version 0.7.13 (05/03/2023)": [[11, "version-0-7-13-2023-03-05"]], "Version 0.7.12 (16/02/2023)": [[11, "version-0-7-12-2023-02-16"]], "Version 0.7.11 (31/12/2022)": [[11, "version-0-7-11-2022-12-31"]], "Version 0.7.10 (21/12/2022)": [[11, "version-0-7-10-2022-12-21"]], "Version 0.7.9 (11/12/2022)": [[11, "version-0-7-9-2022-12-11"]], "Version 0.7.8 (30/11/2022)": [[11, "version-0-7-8-2022-11-30"]], "Version 0.7.7 (27/11/2022)": [[11, "version-0-7-7-2022-11-27"]], "Version 0.7.6 (09/11/2022)": [[11, "version-0-7-6-2022-11-09"]], "Version 0.7.5 (09/11/2022)": [[11, "version-0-7-5-2022-11-09"]], "Version 0.7.4 (05/11/2022)": [[11, "version-0-7-4-2022-11-05"]], "Version 0.7.3 (01/11/2022)": [[11, "version-0-7-3-2022-11-01"]], "Version 0.7.2 (21/09/2022)": [[11, "version-0-7-2-2022-09-21"]], "Version 0.7.1 (21/09/2022)": [[11, "version-0-7-1-2022-09-21"]], "Version 0.7.0 (19/09/2022)": [[11, "version-0-7-0-2022-09-19"]], "Version 0.6.12 (14/09/2022)": [[11, "version-0-6-12-2022-09-14"]], "Tickets Ferm\u00e9s": [[11, "issues-closed"], [11, "id114"], [11, "id117"], [11, "id121"], [11, "id125"], [11, "id128"], [11, "id131"], [11, "id133"], [11, "id137"], [11, "id139"], [11, "id141"], [11, "id146"], [11, "id150"], [11, "id153"], [11, "id155"], [11, "id157"], [11, "id159"], [11, "id161"], [11, "id163"], [11, "id168"], [11, "id171"], [11, "id173"], [11, "id176"], [11, "id178"], [11, "id180"], [11, "id183"], [11, "id187"], [11, "id189"], [11, "id191"], [11, "id194"], [11, "id196"], [11, "id199"], [11, "id201"], [11, "id205"], [11, "id208"], [11, "id211"]], "Pull Requests": [[11, "pull-requests"], [11, "id116"], [11, "id119"], [11, "id135"], [11, "id144"], [11, "id148"], [11, "id152"], [11, "id167"]], "Version 0.6.11 (27/02/2022)": [[11, "version-0-6-11-2022-07-27"]], "Fonctionnalit\u00e9s": [[11, "features"], [11, "id122"], [11, "id132"], [11, "id142"], [13, "features"]], "Version 0.6.10 (13/07/2022)": [[11, "version-0-6-10-2022-07-13"]], "Version 0.6.9 (03/07/2022)": [[11, "version-0-6-9-2022-07-03"]], "Version 0.6.8 (22/06/2022)": [[11, "version-0-6-8-2022-06-22"]], "Version 0.6.7 (11/06/2022)": [[11, "version-0-6-7-2022-06-11"]], "Version 0.6.6 (29/05/2022)": [[11, "version-0-6-6-2022-05-29"]], "Version 0.6.5 (24/04/2022)": [[11, "version-0-6-5-2022-04-24"]], "Version 0.6.4 (23/04/2022)": [[11, "version-0-6-4-2022-04-23"]], "Version 0.6.3 (09/04/2022)": [[11, "version-0-6-3-2022-04-09"]], "Version 0.6.2 (03/04/2022)": [[11, "version-0-6-2-2022-04-03"]], "Version 0.6.1 (27/03/2022)": [[11, "version-0-6-1-2022-03-27"]], "Version 0.6.0 (27/03/2022)": [[11, "version-0-6-0-2022-03-27"]], "Version 0.5.7 (13/02/2022)": [[11, "version-0-5-7-2022-02-13"]], "S\u00e9curit\u00e9": [[11, "security"]], "Version 0.5.6 (05/02/2022)": [[11, "version-0-5-6-2022-02-05"]], "Version 0.5.5 (19/01/2022)": [[11, "version-0-5-5-2022-01-19"]], "Nouvelles fonctionnalit\u00e9s": [[11, "new-features"], [11, "id160"], [11, "id162"], [11, "id164"], [11, "id169"], [11, "id184"], [11, "id188"], [11, "id190"], [11, "id192"], [11, "id197"], [11, "id202"], [11, "id206"], [11, "id209"], [11, "id212"]], "Version 0.5.4 (01/01/2022)": [[11, "version-0-5-4-2022-01-01"]], "Version 0.5.3 (01/01/2022)": [[11, "version-0-5-3-2022-01-01"]], "Version 0.5.2 (19/12/2021)": [[11, "version-0-5-2-2021-12-19"]], "Version 0.5.1 (30/11/2021)": [[11, "version-0-5-1-2021-11-30"]], "Version 0.5.0 (14/11/2021)": [[11, "version-0-5-0-2021-11-14"]], "Version 0.4.9 (16/07/2021)": [[11, "version-0-4-9-2021-07-16"]], "Version 0.4.8 (03/07/2021)": [[11, "version-0-4-8-2021-07-03"]], "Version 0.4.7 (07/04/2021)": [[11, "version-0-4-7-2021-04-07"]], "Version 0.4.6 (21/02/2021)": [[11, "version-0-4-6-2021-02-21"]], "Version 0.4.5 (17/02/2021)": [[11, "version-0-4-5-2021-02-17"]], "Version 0.4.4 (31/01/2021)": [[11, "version-0-4-4-2021-01-31"]], "Version 0.4.3 (10/01/2021)": [[11, "version-0-4-3-2021-01-10"]], "Version 0.4.2 (03/01/2021)": [[11, "version-0-4-2-2021-01-03"]], "Version 0.4.1 (31/12/2020)": [[11, "version-0-4-1-2020-12-31"]], "Version 0.4.0 - FitTrackee sur PyPI (19/09/2020)": [[11, "version-0-4-0-fittrackee-on-pypi-2020-09-19"]], "Version 0.3.0 - Administration (15/07/2020)": [[11, "version-0-3-0-administration-2020-07-15"]], "Version 0.2.5 - Corrections et am\u00e9liorations (31/01/2020)": [[11, "version-0-2-5-fix-and-improvements-2020-01-31"]], "Version 0.2.4 - Corrections mineures (30/01/2020)": [[11, "version-0-2-4-minor-fix-2020-01-30"]], "Version 0.2.3 - FitTrackee disponible en Fran\u00e7ais (29/12/2019)": [[11, "version-0-2-3-fittrackee-available-in-french-2019-12-29"]], "Version 0.2.2 - Corrections des statistiques (23/09/2019)": [[11, "version-0-2-2-statistics-fix-2019-09-23"]], "Version 0.2.1 - Correction et am\u00e9liorations (01/09/2019)": [[11, "version-0-2-1-fix-and-improvements-2019-09-01"]], "Version 0.2.0 - Statistiques (07/07/2019)": [[11, "version-0-2-0-statistics-2019-07-07"]], "Version 0.1.1 - Corrections et am\u00e9liorations (07/02/2019)": [[11, "version-0-1-1-fix-and-improvements-2019-02-07"]], "Version 0.1.0 - Premi\u00e8re version \ud83c\udf89 (04/07/2018)": [[11, "version-0-1-0-first-release-2018-07-04"]], "Interface de ligne de commande": [[12, "command-line-interface"]], "Base de donn\u00e9es": [[12, "database"]], "ftcli db drop": [[12, "ftcli-db-drop"]], "ftcli db upgrade": [[12, "ftcli-db-upgrade"]], "ftcli oauth2 clean": [[12, "ftcli-oauth2-clean"]], "ftcli users clean_archives": [[12, "ftcli-users-clean-archives"]], "ftcli users clean_tokens": [[12, "ftcli-users-clean-tokens"]], "ftcli users create": [[12, "ftcli-users-create"]], "ftcli users export_archives": [[12, "ftcli-users-export-archives"]], "ftcli users update": [[12, "ftcli-users-update"]], "Compte et pr\u00e9f\u00e9rences": [[13, "account-preferences"]], "Applications OAuth": [[13, "oauth-apps"]], "Administration": [[13, "administration"], [13, "id2"]], "Application": [[13, "application"]], "Captures d\u2019\u00e9cran": [[13, "screenshots"]], "Tableau de bord": [[13, "dashboard"]], "Page de d\u00e9tail d\u2019une s\u00e9ance": [[13, "workout-detail"]], "Liste des s\u00e9ances": [[13, "workouts-list"]], "FitTrackee": [[14, "fittrackee"]], "Table des mati\u00e8res": [[14, "table-of-contents"]], "Installation": [[15, "installation"], [15, "id2"], [15, "id6"]], "D\u00e9pendances principales": [[15, "main-dependencies"]], "Pr\u00e9requis": [[15, "prerequisites"]], "Variables d\u2019environnement": [[15, "environment-variables"]], "Courriels": [[15, "emails"]], "Serveur de tuiles": [[15, "map-tile-server"]], "Limitation d\u2019acc\u00e8s \u00e0 l\u2019API": [[15, "api-rate-limits"]], "Donn\u00e9es m\u00e9t\u00e9o": [[15, "weather-data"]], "A partir de PyPI": [[15, "from-pypi"], [15, "id3"]], "A partir des sources": [[15, "from-sources"], [15, "id4"]], "Environnements de d\u00e9veloppement": [[15, "dev-environment"], [15, "id5"]], "Environnements de production": [[15, "production-environment"]], "Mise \u00e0 jour": [[15, "upgrade"]], "Environnement de production": [[15, "prod-environment"]], "D\u00e9ploiement": [[15, "deployment"]], "Docker": [[15, "docker"]], "D\u00e9veloppement": [[15, "development"]], "Yunohost": [[15, "yunohost"]], "NixOS": [[15, "nixos"]], "OAuth 2.0": [[16, "oauth-2-0"]], "Scopes": [[16, "scopes"]], "Flux": [[16, "flow"]], "Ressources": [[16, "resources"]], "Outils tiers": [[17, "third-party-tools"]], "Outils d\u2019importation": [[17, "import-tools"]], "Scripts d\u2019installation": [[17, "installation-scripts"]], "Administrateur": [[18, "administrator"]], "FitTrackee ne d\u00e9marre pas": [[18, "fittrackee-fails-to-start"]], "Les images de la carte ne sont pas affich\u00e9es mais la carte est affich\u00e9e dans le d\u00e9tail de la s\u00e9ance": [[18, "map-images-are-not-displayed-but-map-is-shown-in-workout-detail"]], "\u00c9chec du chargement ou du t\u00e9l\u00e9chargement de fichiers": [[18, "failed-to-upload-or-download-files"]], "D\u00e9pannage": [[19, "troubleshooting"]]}, "indexentries": {"api_rate_limits": [[15, "envvar-API_RATE_LIMITS"]], "app_log": [[15, "envvar-APP_LOG"]], "app_secret_key": [[15, "envvar-APP_SECRET_KEY"]], "app_settings": [[15, "envvar-APP_SETTINGS"]], "app_workers": [[15, "envvar-APP_WORKERS"]], "database_disable_pooling": [[15, "envvar-DATABASE_DISABLE_POOLING"]], "database_url": [[15, "envvar-DATABASE_URL"]], "default_staticmap": [[15, "envvar-DEFAULT_STATICMAP"]], "email_url": [[15, "envvar-EMAIL_URL"]], "flask_app": [[15, "envvar-FLASK_APP"]], "host": [[15, "envvar-HOST"]], "map_attribution": [[15, "envvar-MAP_ATTRIBUTION"]], "port": [[15, "envvar-PORT"]], "redis_url": [[15, "envvar-REDIS_URL"]], "sender_email": [[15, "envvar-SENDER_EMAIL"]], "staticmap_subdomains": [[15, "envvar-STATICMAP_SUBDOMAINS"]], "tile_server_url": [[15, "envvar-TILE_SERVER_URL"]], "ui_url": [[15, "envvar-UI_URL"]], "upload_folder": [[15, "envvar-UPLOAD_FOLDER"]], "vite_app_api_url": [[15, "envvar-VITE_APP_API_URL"]], "weather_api_key": [[15, "envvar-WEATHER_API_KEY"]], "weather_api_provider \ud83c\udd95": [[15, "envvar-WEATHER_API_PROVIDER"]], "workers_processes": [[15, "envvar-WORKERS_PROCESSES"]], "variable d'environnement": [[15, "envvar-API_RATE_LIMITS"], [15, "envvar-APP_LOG"], [15, "envvar-APP_SECRET_KEY"], [15, "envvar-APP_SETTINGS"], [15, "envvar-APP_WORKERS"], [15, "envvar-DATABASE_DISABLE_POOLING"], [15, "envvar-DATABASE_URL"], [15, "envvar-DEFAULT_STATICMAP"], [15, "envvar-EMAIL_URL"], [15, "envvar-FLASK_APP"], [15, "envvar-HOST"], [15, "envvar-MAP_ATTRIBUTION"], [15, "envvar-PORT"], [15, "envvar-REDIS_URL"], [15, "envvar-SENDER_EMAIL"], [15, "envvar-STATICMAP_SUBDOMAINS"], [15, "envvar-TILE_SERVER_URL"], [15, "envvar-UI_URL"], [15, "envvar-UPLOAD_FOLDER"], [15, "envvar-VITE_APP_API_URL"], [15, "envvar-WEATHER_API_KEY"], [15, "envvar-WEATHER_API_PROVIDER"], [15, "envvar-WORKERS_PROCESSES"]]}}) \ No newline at end of file diff --git a/docs/fr/third_party_tools.html b/docs/fr/third_party_tools.html index 79aaf93fa..6ba64d837 100644 --- a/docs/fr/third_party_tools.html +++ b/docs/fr/third_party_tools.html @@ -6,7 +6,7 @@ - Outils tiers - Documentation FitTrackee 0.8.8 + Outils tiers - Documentation FitTrackee 0.8.9 @@ -169,7 +169,7 @@
    -
    @@ -197,7 +197,7 @@
    - Documentation FitTrackee 0.8.8 + Documentation FitTrackee 0.8.9 @@ -373,7 +373,7 @@

    Scripts d’installation

    - + diff --git a/docs/fr/troubleshooting/administrator.html b/docs/fr/troubleshooting/administrator.html index 6636255ef..ce15631a0 100644 --- a/docs/fr/troubleshooting/administrator.html +++ b/docs/fr/troubleshooting/administrator.html @@ -6,7 +6,7 @@ - Administrateur - Documentation FitTrackee 0.8.8 + Administrateur - Documentation FitTrackee 0.8.9 @@ -169,7 +169,7 @@
    -
    @@ -197,7 +197,7 @@
    - Documentation FitTrackee 0.8.8 + Documentation FitTrackee 0.8.9 @@ -389,7 +389,7 @@

    Échec du chargement ou du téléchargement de fichiers

    - + diff --git a/docs/fr/troubleshooting/index.html b/docs/fr/troubleshooting/index.html index 2b0682519..ac96b3272 100644 --- a/docs/fr/troubleshooting/index.html +++ b/docs/fr/troubleshooting/index.html @@ -6,7 +6,7 @@ - Dépannage - Documentation FitTrackee 0.8.8 + Dépannage - Documentation FitTrackee 0.8.9 @@ -169,7 +169,7 @@
    -
    @@ -197,7 +197,7 @@
    - Documentation FitTrackee 0.8.8 + Documentation FitTrackee 0.8.9 @@ -348,7 +348,7 @@

    Dépannage +

    diff --git a/docsrc/gettext/.doctrees/api/auth.doctree b/docsrc/gettext/.doctrees/api/auth.doctree index 0ba07ba5f..a2932d077 100644 Binary files a/docsrc/gettext/.doctrees/api/auth.doctree and b/docsrc/gettext/.doctrees/api/auth.doctree differ diff --git a/docsrc/gettext/.doctrees/api/configuration.doctree b/docsrc/gettext/.doctrees/api/configuration.doctree index af7ea9d1f..9f3b68b5d 100644 Binary files a/docsrc/gettext/.doctrees/api/configuration.doctree and b/docsrc/gettext/.doctrees/api/configuration.doctree differ diff --git a/docsrc/gettext/.doctrees/api/equipment_types.doctree b/docsrc/gettext/.doctrees/api/equipment_types.doctree index 3cb896e7c..6d1ebd78d 100644 Binary files a/docsrc/gettext/.doctrees/api/equipment_types.doctree and b/docsrc/gettext/.doctrees/api/equipment_types.doctree differ diff --git a/docsrc/gettext/.doctrees/api/equipments.doctree b/docsrc/gettext/.doctrees/api/equipments.doctree index 91538b936..bb16d782d 100644 Binary files a/docsrc/gettext/.doctrees/api/equipments.doctree and b/docsrc/gettext/.doctrees/api/equipments.doctree differ diff --git a/docsrc/gettext/.doctrees/api/index.doctree b/docsrc/gettext/.doctrees/api/index.doctree index bd803f655..5834d2da4 100644 Binary files a/docsrc/gettext/.doctrees/api/index.doctree and b/docsrc/gettext/.doctrees/api/index.doctree differ diff --git a/docsrc/gettext/.doctrees/api/oauth2.doctree b/docsrc/gettext/.doctrees/api/oauth2.doctree index f5d6bf49a..a4df5395f 100644 Binary files a/docsrc/gettext/.doctrees/api/oauth2.doctree and b/docsrc/gettext/.doctrees/api/oauth2.doctree differ diff --git a/docsrc/gettext/.doctrees/api/records.doctree b/docsrc/gettext/.doctrees/api/records.doctree index d22c3230e..8f9dceb8c 100644 Binary files a/docsrc/gettext/.doctrees/api/records.doctree and b/docsrc/gettext/.doctrees/api/records.doctree differ diff --git a/docsrc/gettext/.doctrees/api/sports.doctree b/docsrc/gettext/.doctrees/api/sports.doctree index ec3a46a20..b7965d187 100644 Binary files a/docsrc/gettext/.doctrees/api/sports.doctree and b/docsrc/gettext/.doctrees/api/sports.doctree differ diff --git a/docsrc/gettext/.doctrees/api/stats.doctree b/docsrc/gettext/.doctrees/api/stats.doctree index 6380e1f9c..c99318cc3 100644 Binary files a/docsrc/gettext/.doctrees/api/stats.doctree and b/docsrc/gettext/.doctrees/api/stats.doctree differ diff --git a/docsrc/gettext/.doctrees/api/users.doctree b/docsrc/gettext/.doctrees/api/users.doctree index 29e573814..7675362ea 100644 Binary files a/docsrc/gettext/.doctrees/api/users.doctree and b/docsrc/gettext/.doctrees/api/users.doctree differ diff --git a/docsrc/gettext/.doctrees/api/workouts.doctree b/docsrc/gettext/.doctrees/api/workouts.doctree index a240837b3..af0340a5b 100644 Binary files a/docsrc/gettext/.doctrees/api/workouts.doctree and b/docsrc/gettext/.doctrees/api/workouts.doctree differ diff --git a/docsrc/gettext/.doctrees/changelog.doctree b/docsrc/gettext/.doctrees/changelog.doctree index 05bc81832..fe6907cd4 100644 Binary files a/docsrc/gettext/.doctrees/changelog.doctree and b/docsrc/gettext/.doctrees/changelog.doctree differ diff --git a/docsrc/gettext/.doctrees/cli.doctree b/docsrc/gettext/.doctrees/cli.doctree index 2f7f56832..7d075b144 100644 Binary files a/docsrc/gettext/.doctrees/cli.doctree and b/docsrc/gettext/.doctrees/cli.doctree differ diff --git a/docsrc/gettext/.doctrees/environment.pickle b/docsrc/gettext/.doctrees/environment.pickle index a28c6ca3c..920261e25 100644 Binary files a/docsrc/gettext/.doctrees/environment.pickle and b/docsrc/gettext/.doctrees/environment.pickle differ diff --git a/docsrc/gettext/.doctrees/features.doctree b/docsrc/gettext/.doctrees/features.doctree index e105a33c0..65603e346 100644 Binary files a/docsrc/gettext/.doctrees/features.doctree and b/docsrc/gettext/.doctrees/features.doctree differ diff --git a/docsrc/gettext/.doctrees/index.doctree b/docsrc/gettext/.doctrees/index.doctree index 9acf48474..5337f93b7 100644 Binary files a/docsrc/gettext/.doctrees/index.doctree and b/docsrc/gettext/.doctrees/index.doctree differ diff --git a/docsrc/gettext/.doctrees/installation.doctree b/docsrc/gettext/.doctrees/installation.doctree index 42229199b..c07c784d9 100644 Binary files a/docsrc/gettext/.doctrees/installation.doctree and b/docsrc/gettext/.doctrees/installation.doctree differ diff --git a/docsrc/gettext/.doctrees/oauth.doctree b/docsrc/gettext/.doctrees/oauth.doctree index 551c48f9b..4f1d201ed 100644 Binary files a/docsrc/gettext/.doctrees/oauth.doctree and b/docsrc/gettext/.doctrees/oauth.doctree differ diff --git a/docsrc/gettext/.doctrees/third_party_tools.doctree b/docsrc/gettext/.doctrees/third_party_tools.doctree index 4b5ea3cd6..5932cfc19 100644 Binary files a/docsrc/gettext/.doctrees/third_party_tools.doctree and b/docsrc/gettext/.doctrees/third_party_tools.doctree differ diff --git a/docsrc/gettext/.doctrees/troubleshooting/administrator.doctree b/docsrc/gettext/.doctrees/troubleshooting/administrator.doctree index 247c9f3ad..1f958cd68 100644 Binary files a/docsrc/gettext/.doctrees/troubleshooting/administrator.doctree and b/docsrc/gettext/.doctrees/troubleshooting/administrator.doctree differ diff --git a/docsrc/gettext/.doctrees/troubleshooting/index.doctree b/docsrc/gettext/.doctrees/troubleshooting/index.doctree index 3c47bcb09..53fd5fef8 100644 Binary files a/docsrc/gettext/.doctrees/troubleshooting/index.doctree and b/docsrc/gettext/.doctrees/troubleshooting/index.doctree differ diff --git a/docsrc/gettext/docs.pot b/docsrc/gettext/docs.pot index 6d1131c1f..04386a03c 100644 --- a/docsrc/gettext/docs.pot +++ b/docsrc/gettext/docs.pot @@ -6,10 +6,10 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: FitTrackee 0.8.8\n" +"Project-Id-Version: FitTrackee 0.8.9\n" "\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-09-01 12:11+0200\n" +"POT-Creation-Date: 2024-09-21 19:31+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -742,7 +742,7 @@ msgid "health check endpoint" msgstr "" #: ../source/api/equipment_types.rst:2 -#: ../source/features.rst:270 +#: ../source/features.rst:276 msgid "Equipment Types" msgstr "" @@ -807,8 +807,8 @@ msgid "equipment type active status" msgstr "" #: ../source/api/equipments.rst:2 -#: ../source/features.rst:176 -#: ../source/features.rst:333 +#: ../source/features.rst:182 +#: ../source/features.rst:339 msgid "Equipments" msgstr "" @@ -1179,7 +1179,7 @@ msgid "no records" msgstr "" #: ../source/api/sports.rst:2 -#: ../source/features.rst:275 +#: ../source/features.rst:281 msgid "Sports" msgstr "" @@ -1232,7 +1232,7 @@ msgid "sport updated" msgstr "" #: ../source/api/stats.rst:2 -#: ../source/features.rst:325 +#: ../source/features.rst:331 msgid "Statistics" msgstr "" @@ -1366,7 +1366,7 @@ msgstr "" #: ../source/api/users.rst:2 #: ../source/cli.rst:61 -#: ../source/features.rst:257 +#: ../source/features.rst:263 msgid "Users" msgstr "" @@ -1583,6 +1583,10 @@ msgstr "" msgid "any part (or all) of the workout notes, notes matching is case-insensitive" msgstr "" +#: ../../:1 +msgid "any part of the workout description; description matching is case-insensitive" +msgstr "" + #: ../../:1 msgid "Get a workout." msgstr "" @@ -1680,11 +1684,15 @@ msgid "gpx file (allowed extensions: .gpx, .zip)" msgstr "" #: ../../:1 -msgid "sport id, equipment id and notes (example: ``{\"sport_id\": 1, \"notes\": \"\", \"equipment_ids\": []}``). Double quotes in notes must be escaped. For `equipment_ids`, the id of the equipment to associate with this workout. **Note**: for now only one equipment can be associated. If not provided and default equipment exists for sport, default equipment will be associated. Notes and equipment ids are not mandatory." +msgid "sport id, equipment id, description and notes, for example: `{\"sport_id\": 1, \"notes\": \"\", \"description\": \"\", \"equipment_ids\": []}`. Double quotes in notes and description must be escaped. The maximum length of notes is 500 characters and that of the description is 10000 characters. Otherwise, they will be truncated. For `equipment_ids`, the id of the equipment to associate with this workout. **Note**: for now only one equipment can be associated. If not provided and default equipment exists for sport, default equipment will be associated. Notes, description and equipment ids are not mandatory." +msgstr "" + +#: ../../:1 +msgid "sport id, equipment id, description and notes, for example: `{\"sport_id\": 1, \"notes\": \"\", \"description\": \"\", \"equipment_ids\": []}`. Double quotes in notes and description must be escaped." msgstr "" #: ../../:1 -msgid "sport id, equipment id and notes (example: ``{\"sport_id\": 1, \"notes\": \"\", \"equipment_ids\": []}``). Double quotes in notes must be escaped." +msgid "The maximum length of notes is 500 characters and that of the description is 10000 characters. Otherwise, they will be truncated." msgstr "" #: ../../:1 @@ -1692,7 +1700,7 @@ msgid "For `equipment_ids`, the id of the equipment to associate with this worko msgstr "" #: ../../:1 -msgid "Notes and equipment ids are not mandatory." +msgid "Notes, description and equipment ids are not mandatory." msgstr "" #: ../../:1 @@ -1715,6 +1723,10 @@ msgstr "" msgid "workout descent (not mandatory, must be provided with ascent)" msgstr "" +#: ../../:1 +msgid "workout description (not mandatory, max length: 10000 characters, otherwise it will be truncated)" +msgstr "" + #: ../../:1 msgid "workout distance in km" msgstr "" @@ -1728,7 +1740,7 @@ msgid "the id of the equipment to associate with this workout. **Note**: for now msgstr "" #: ../../:1 -msgid "notes (not mandatory)" +msgid "notes (not mandatory, max length: 500 characters, otherwise they will be truncated)" msgstr "" #: ../../:1 @@ -1736,7 +1748,7 @@ msgid "workout sport id" msgstr "" #: ../../:1 -msgid "workout title (not mandatory)" +msgid "workout title (not mandatory, max length: 255 characters, otherwise it will be truncated)" msgstr "" #: ../../:1 @@ -1759,6 +1771,10 @@ msgstr "" msgid "workout descent (only for workout without gpx, must be provided with ascent)" msgstr "" +#: ../../:1 +msgid "workout description (max length: 10000 characters, otherwise it will be truncated)" +msgstr "" + #: ../../:1 msgid "workout distance in km (only for workout without gpx)" msgstr "" @@ -1768,11 +1784,11 @@ msgid "workout duration in seconds (only for workout without gpx)" msgstr "" #: ../../:1 -msgid "notes" +msgid "notes (max length: 500 characters, otherwise they will be truncated)" msgstr "" #: ../../:1 -msgid "workout title" +msgid "workout title (max length: 255 characters, otherwise it will be truncated)" msgstr "" #: ../../:1 @@ -1800,2933 +1816,3028 @@ msgid "Change log" msgstr "" #: ../source/changelog.md:3 -msgid "Version 0.8.8 (2024/09/01)" +msgid "Version 0.8.9 (2024/09/21)" msgstr "" #: ../source/changelog.md:5 -msgid "FitTrackee is now available in Bulgarian." -msgstr "" - -#: ../source/changelog.md:7 -#: ../source/changelog.md:49 -#: ../source/changelog.md:126 -#: ../source/changelog.md:208 -#: ../source/changelog.md:273 -#: ../source/changelog.md:323 -#: ../source/changelog.md:365 -#: ../source/changelog.md:396 -#: ../source/changelog.md:431 -#: ../source/changelog.md:472 -#: ../source/changelog.md:509 -#: ../source/changelog.md:543 -#: ../source/changelog.md:578 -#: ../source/changelog.md:613 -#: ../source/changelog.md:620 -#: ../source/changelog.md:654 -#: ../source/changelog.md:666 -#: ../source/changelog.md:698 -#: ../source/changelog.md:715 -#: ../source/changelog.md:756 -#: ../source/changelog.md:867 -#: ../source/changelog.md:917 -#: ../source/changelog.md:963 -#: ../source/changelog.md:989 -#: ../source/changelog.md:1087 -#: ../source/changelog.md:1115 -#: ../source/changelog.md:1126 -#: ../source/changelog.md:1153 -#: ../source/changelog.md:1174 -#: ../source/changelog.md:1192 -#: ../source/changelog.md:1208 -#: ../source/changelog.md:1229 -#: ../source/changelog.md:1251 -#: ../source/changelog.md:1258 -#: ../source/changelog.md:1278 -#: ../source/changelog.md:1300 -#: ../source/changelog.md:1318 -#: ../source/changelog.md:1353 -#: ../source/changelog.md:1364 -#: ../source/changelog.md:1375 -#: ../source/changelog.md:1387 -#: ../source/changelog.md:1407 -#: ../source/changelog.md:1413 -#: ../source/changelog.md:1465 -#: ../source/changelog.md:1489 -#: ../source/changelog.md:1500 -#: ../source/changelog.md:1511 -#: ../source/changelog.md:1556 -#: ../source/changelog.md:1589 -#: ../source/changelog.md:1601 -#: ../source/changelog.md:1612 -#: ../source/changelog.md:1628 -#: ../source/changelog.md:1641 -#: ../source/changelog.md:1653 -#: ../source/changelog.md:1674 -#: ../source/changelog.md:1752 -#: ../source/changelog.md:1769 -#: ../source/changelog.md:1780 -#: ../source/changelog.md:1800 -#: ../source/changelog.md:1835 -msgid "Bugs Fixed" -msgstr "" - -#: ../source/changelog.md:9 -msgid "#614 - Labels are not translated on workouts average chart" +msgid "This release introduces a new field: the workout description.
    This field is longer than the \"Notes\" field and will have the same visibility as the workout in a next version (see #125). The \"Notes\" field will remain private." msgstr "" -#: ../source/changelog.md:11 -#: ../source/changelog.md:53 -#: ../source/changelog.md:83 -#: ../source/changelog.md:130 -#: ../source/changelog.md:175 -#: ../source/changelog.md:212 -#: ../source/changelog.md:237 -#: ../source/changelog.md:279 -#: ../source/changelog.md:329 -#: ../source/changelog.md:369 -#: ../source/changelog.md:400 -#: ../source/changelog.md:438 -#: ../source/changelog.md:476 -#: ../source/changelog.md:513 -#: ../source/changelog.md:548 -#: ../source/changelog.md:583 -#: ../source/changelog.md:624 -#: ../source/changelog.md:672 -#: ../source/changelog.md:721 -#: ../source/changelog.md:762 +#: ../source/changelog.md:8 +#: ../source/changelog.md:102 +#: ../source/changelog.md:177 +#: ../source/changelog.md:227 +#: ../source/changelog.md:326 +#: ../source/changelog.md:375 +#: ../source/changelog.md:484 +#: ../source/changelog.md:524 +#: ../source/changelog.md:562 +#: ../source/changelog.md:594 +#: ../source/changelog.md:767 #: ../source/changelog.md:806 -#: ../source/changelog.md:843 -#: ../source/changelog.md:872 -#: ../source/changelog.md:922 +#: ../source/changelog.md:919 #: ../source/changelog.md:967 -#: ../source/changelog.md:996 -#: ../source/changelog.md:1011 -#: ../source/changelog.md:1028 -#: ../source/changelog.md:1048 -#: ../source/changelog.md:1063 -#: ../source/changelog.md:1076 -#: ../source/changelog.md:1091 -#: ../source/changelog.md:1104 -#: ../source/changelog.md:1119 -#: ../source/changelog.md:1133 -#: ../source/changelog.md:1158 -#: ../source/changelog.md:1167 -#: ../source/changelog.md:1178 -#: ../source/changelog.md:1197 -#: ../source/changelog.md:1283 -#: ../source/features.rst:280 -msgid "Translations" +#: ../source/changelog.md:1040 +#: ../source/changelog.md:1080 +#: ../source/changelog.md:1101 +#: ../source/changelog.md:1116 +#: ../source/changelog.md:1140 +#: ../source/changelog.md:1203 +#: ../source/changelog.md:1243 +msgid "Features and enhancements" msgstr "" -#: ../source/changelog.md:13 -msgid "PR#607 - Translations update (German)" +#: ../source/changelog.md:10 +msgid "#610 - Add a description field to workout" +msgstr "" + +#: ../source/changelog.md:12 +#: ../source/changelog.md:64 +#: ../source/changelog.md:106 +#: ../source/changelog.md:183 +#: ../source/changelog.md:265 +#: ../source/changelog.md:330 +#: ../source/changelog.md:380 +#: ../source/changelog.md:422 +#: ../source/changelog.md:453 +#: ../source/changelog.md:488 +#: ../source/changelog.md:529 +#: ../source/changelog.md:566 +#: ../source/changelog.md:600 +#: ../source/changelog.md:635 +#: ../source/changelog.md:670 +#: ../source/changelog.md:677 +#: ../source/changelog.md:711 +#: ../source/changelog.md:723 +#: ../source/changelog.md:755 +#: ../source/changelog.md:772 +#: ../source/changelog.md:813 +#: ../source/changelog.md:924 +#: ../source/changelog.md:974 +#: ../source/changelog.md:1020 +#: ../source/changelog.md:1046 +#: ../source/changelog.md:1144 +#: ../source/changelog.md:1172 +#: ../source/changelog.md:1183 +#: ../source/changelog.md:1210 +#: ../source/changelog.md:1231 +#: ../source/changelog.md:1249 +#: ../source/changelog.md:1265 +#: ../source/changelog.md:1286 +#: ../source/changelog.md:1308 +#: ../source/changelog.md:1315 +#: ../source/changelog.md:1335 +#: ../source/changelog.md:1357 +#: ../source/changelog.md:1375 +#: ../source/changelog.md:1410 +#: ../source/changelog.md:1421 +#: ../source/changelog.md:1432 +#: ../source/changelog.md:1444 +#: ../source/changelog.md:1464 +#: ../source/changelog.md:1470 +#: ../source/changelog.md:1522 +#: ../source/changelog.md:1546 +#: ../source/changelog.md:1557 +#: ../source/changelog.md:1568 +#: ../source/changelog.md:1613 +#: ../source/changelog.md:1646 +#: ../source/changelog.md:1658 +#: ../source/changelog.md:1669 +#: ../source/changelog.md:1685 +#: ../source/changelog.md:1698 +#: ../source/changelog.md:1710 +#: ../source/changelog.md:1731 +#: ../source/changelog.md:1809 +#: ../source/changelog.md:1826 +#: ../source/changelog.md:1837 +#: ../source/changelog.md:1857 +#: ../source/changelog.md:1892 +msgid "Bugs Fixed" msgstr "" #: ../source/changelog.md:14 -msgid "#608 - [translations request] Bulgarian" +msgid "#621 - email username may contain special characters" msgstr "" #: ../source/changelog.md:15 -msgid "PR#609 - Translations update (Galician and Spanish)" +msgid "#622 - Fix email sending by adding 'Message-ID'" msgstr "" -#: ../source/changelog.md:16 -msgid "PR#612 - Translations update (Bulgarian and Czech)" +#: ../source/changelog.md:17 +#: ../source/changelog.md:68 +#: ../source/changelog.md:110 +#: ../source/changelog.md:140 +#: ../source/changelog.md:187 +#: ../source/changelog.md:232 +#: ../source/changelog.md:269 +#: ../source/changelog.md:294 +#: ../source/changelog.md:336 +#: ../source/changelog.md:386 +#: ../source/changelog.md:426 +#: ../source/changelog.md:457 +#: ../source/changelog.md:495 +#: ../source/changelog.md:533 +#: ../source/changelog.md:570 +#: ../source/changelog.md:605 +#: ../source/changelog.md:640 +#: ../source/changelog.md:681 +#: ../source/changelog.md:729 +#: ../source/changelog.md:778 +#: ../source/changelog.md:819 +#: ../source/changelog.md:863 +#: ../source/changelog.md:900 +#: ../source/changelog.md:929 +#: ../source/changelog.md:979 +#: ../source/changelog.md:1024 +#: ../source/changelog.md:1053 +#: ../source/changelog.md:1068 +#: ../source/changelog.md:1085 +#: ../source/changelog.md:1105 +#: ../source/changelog.md:1120 +#: ../source/changelog.md:1133 +#: ../source/changelog.md:1148 +#: ../source/changelog.md:1161 +#: ../source/changelog.md:1176 +#: ../source/changelog.md:1190 +#: ../source/changelog.md:1215 +#: ../source/changelog.md:1224 +#: ../source/changelog.md:1235 +#: ../source/changelog.md:1254 +#: ../source/changelog.md:1340 +#: ../source/features.rst:286 +msgid "Translations" msgstr "" #: ../source/changelog.md:19 -#: ../source/changelog.md:59 -#: ../source/changelog.md:91 -#: ../source/changelog.md:137 -#: ../source/changelog.md:182 -#: ../source/changelog.md:216 -#: ../source/changelog.md:243 -#: ../source/changelog.md:287 -#: ../source/changelog.md:337 -#: ../source/changelog.md:374 -#: ../source/changelog.md:404 -#: ../source/changelog.md:443 -#: ../source/changelog.md:481 -#: ../source/changelog.md:518 -#: ../source/changelog.md:557 -#: ../source/changelog.md:596 -#: ../source/changelog.md:637 -#: ../source/changelog.md:679 -#: ../source/changelog.md:728 -#: ../source/changelog.md:780 -#: ../source/changelog.md:827 -#: ../source/changelog.md:848 -#: ../source/changelog.md:880 -#: ../source/changelog.md:932 -msgid "Translation status:" +msgid "PR#616 - Translations update (Dutch)" msgstr "" #: ../source/changelog.md:20 -#: ../source/changelog.md:60 -msgid "Basque: 99%" +msgid "PR#617 - Translations update (Italian)" msgstr "" #: ../source/changelog.md:21 -msgid "Bulgarian: 100%" +msgid "PR#618 - Translations update (Polish)" msgstr "" #: ../source/changelog.md:22 -#: ../source/changelog.md:93 -#: ../source/changelog.md:139 -msgid "Czech: 73%" +msgid "PR#620 - Translations update (Polish)" msgstr "" #: ../source/changelog.md:23 -#: ../source/changelog.md:62 -#: ../source/changelog.md:406 -#: ../source/changelog.md:444 -#: ../source/changelog.md:558 -#: ../source/changelog.md:849 -#: ../source/changelog.md:881 -msgid "Dutch: 99%" +msgid "PR#624 - Translations update (Spanish)" msgstr "" #: ../source/changelog.md:24 -#: ../source/changelog.md:63 -#: ../source/changelog.md:95 -#: ../source/changelog.md:141 -#: ../source/changelog.md:186 -#: ../source/changelog.md:220 -#: ../source/changelog.md:247 -#: ../source/changelog.md:291 -#: ../source/changelog.md:340 -#: ../source/changelog.md:377 -#: ../source/changelog.md:407 -#: ../source/changelog.md:445 -#: ../source/changelog.md:483 -#: ../source/changelog.md:520 -#: ../source/changelog.md:559 -#: ../source/changelog.md:598 -#: ../source/changelog.md:639 -#: ../source/changelog.md:681 -#: ../source/changelog.md:730 -#: ../source/changelog.md:782 -#: ../source/changelog.md:829 -#: ../source/changelog.md:850 -#: ../source/changelog.md:882 -#: ../source/changelog.md:934 -msgid "English: 100%" +msgid "PR#625 - Translations update (Galician and Basque)" msgstr "" #: ../source/changelog.md:25 -#: ../source/changelog.md:64 -#: ../source/changelog.md:96 -#: ../source/changelog.md:142 -#: ../source/changelog.md:187 -#: ../source/changelog.md:221 -#: ../source/changelog.md:248 -#: ../source/changelog.md:292 -#: ../source/changelog.md:341 -#: ../source/changelog.md:378 -#: ../source/changelog.md:408 -#: ../source/changelog.md:446 -#: ../source/changelog.md:484 -#: ../source/changelog.md:521 -#: ../source/changelog.md:560 -#: ../source/changelog.md:599 -#: ../source/changelog.md:640 -#: ../source/changelog.md:682 -#: ../source/changelog.md:731 -#: ../source/changelog.md:783 -#: ../source/changelog.md:830 -#: ../source/changelog.md:851 -#: ../source/changelog.md:883 -#: ../source/changelog.md:935 -msgid "French: 100%" +msgid "PR#626 - Translations update (German)" msgstr "" #: ../source/changelog.md:26 -#: ../source/changelog.md:97 -#: ../source/changelog.md:143 -#: ../source/changelog.md:188 -#: ../source/changelog.md:222 -#: ../source/changelog.md:249 -#: ../source/changelog.md:293 -#: ../source/changelog.md:379 -#: ../source/changelog.md:409 -#: ../source/changelog.md:447 -#: ../source/changelog.md:485 -#: ../source/changelog.md:522 -#: ../source/changelog.md:600 -#: ../source/changelog.md:641 -#: ../source/changelog.md:683 -#: ../source/changelog.md:732 -#: ../source/changelog.md:831 -#: ../source/changelog.md:852 -#: ../source/changelog.md:936 -msgid "Galician: 100%" -msgstr "" - -#: ../source/changelog.md:27 -#: ../source/changelog.md:189 -#: ../source/changelog.md:223 -#: ../source/changelog.md:250 -#: ../source/changelog.md:380 -#: ../source/changelog.md:410 -#: ../source/changelog.md:448 -#: ../source/changelog.md:486 -#: ../source/changelog.md:523 -#: ../source/changelog.md:601 -#: ../source/changelog.md:642 -#: ../source/changelog.md:684 -#: ../source/changelog.md:832 -#: ../source/changelog.md:937 -msgid "German: 100%" +msgid "PR#631 - Translations update (Basque)" msgstr "" #: ../source/changelog.md:28 -#: ../source/changelog.md:67 -#: ../source/changelog.md:99 -msgid "Italian: 82%" +#: ../source/changelog.md:76 +#: ../source/changelog.md:116 +#: ../source/changelog.md:148 +#: ../source/changelog.md:194 +#: ../source/changelog.md:239 +#: ../source/changelog.md:273 +#: ../source/changelog.md:300 +#: ../source/changelog.md:344 +#: ../source/changelog.md:394 +#: ../source/changelog.md:431 +#: ../source/changelog.md:461 +#: ../source/changelog.md:500 +#: ../source/changelog.md:538 +#: ../source/changelog.md:575 +#: ../source/changelog.md:614 +#: ../source/changelog.md:653 +#: ../source/changelog.md:694 +#: ../source/changelog.md:736 +#: ../source/changelog.md:785 +#: ../source/changelog.md:837 +#: ../source/changelog.md:884 +#: ../source/changelog.md:905 +#: ../source/changelog.md:937 +#: ../source/changelog.md:989 +msgid "Translation status:" msgstr "" #: ../source/changelog.md:29 -#: ../source/changelog.md:68 -#: ../source/changelog.md:100 -#: ../source/changelog.md:146 -msgid "Norwegian Bokmål: 52%" +#: ../source/changelog.md:240 +#: ../source/changelog.md:274 +#: ../source/changelog.md:432 +#: ../source/changelog.md:462 +msgid "Basque: 100%" msgstr "" #: ../source/changelog.md:30 -#: ../source/changelog.md:69 -msgid "Polish: 91%" +msgid "Bulgarian: 99%" msgstr "" #: ../source/changelog.md:31 -#: ../source/changelog.md:70 -#: ../source/changelog.md:102 -#: ../source/changelog.md:148 -msgid "Portuguese: 98%" +#: ../source/changelog.md:118 +msgid "Czech: 72%" msgstr "" #: ../source/changelog.md:32 -#: ../source/changelog.md:103 -#: ../source/changelog.md:149 -#: ../source/changelog.md:194 -#: ../source/changelog.md:227 -#: ../source/changelog.md:254 -#: ../source/changelog.md:298 -#: ../source/changelog.md:347 -#: ../source/changelog.md:384 -#: ../source/changelog.md:414 -#: ../source/changelog.md:452 -#: ../source/changelog.md:490 -#: ../source/changelog.md:527 -#: ../source/changelog.md:605 -#: ../source/changelog.md:646 -#: ../source/changelog.md:688 -#: ../source/changelog.md:737 -#: ../source/changelog.md:789 -#: ../source/changelog.md:836 -#: ../source/changelog.md:857 -#: ../source/changelog.md:889 +#: ../source/changelog.md:80 +#: ../source/changelog.md:119 +#: ../source/changelog.md:463 +#: ../source/changelog.md:501 +#: ../source/changelog.md:615 +#: ../source/changelog.md:906 +#: ../source/changelog.md:938 +msgid "Dutch: 99%" +msgstr "" + +#: ../source/changelog.md:33 +#: ../source/changelog.md:81 +#: ../source/changelog.md:120 +#: ../source/changelog.md:152 +#: ../source/changelog.md:198 +#: ../source/changelog.md:243 +#: ../source/changelog.md:277 +#: ../source/changelog.md:304 +#: ../source/changelog.md:348 +#: ../source/changelog.md:397 +#: ../source/changelog.md:434 +#: ../source/changelog.md:464 +#: ../source/changelog.md:502 +#: ../source/changelog.md:540 +#: ../source/changelog.md:577 +#: ../source/changelog.md:616 +#: ../source/changelog.md:655 +#: ../source/changelog.md:696 +#: ../source/changelog.md:738 +#: ../source/changelog.md:787 +#: ../source/changelog.md:839 +#: ../source/changelog.md:886 +#: ../source/changelog.md:907 +#: ../source/changelog.md:939 +#: ../source/changelog.md:991 +msgid "English: 100%" +msgstr "" + +#: ../source/changelog.md:34 +#: ../source/changelog.md:82 +#: ../source/changelog.md:121 +#: ../source/changelog.md:153 +#: ../source/changelog.md:199 +#: ../source/changelog.md:244 +#: ../source/changelog.md:278 +#: ../source/changelog.md:305 +#: ../source/changelog.md:349 +#: ../source/changelog.md:398 +#: ../source/changelog.md:435 +#: ../source/changelog.md:465 +#: ../source/changelog.md:503 +#: ../source/changelog.md:541 +#: ../source/changelog.md:578 +#: ../source/changelog.md:617 +#: ../source/changelog.md:656 +#: ../source/changelog.md:697 +#: ../source/changelog.md:739 +#: ../source/changelog.md:788 +#: ../source/changelog.md:840 +#: ../source/changelog.md:887 +#: ../source/changelog.md:908 #: ../source/changelog.md:940 -msgid "Spanish: 100%" +#: ../source/changelog.md:992 +msgid "French: 100%" msgstr "" #: ../source/changelog.md:35 -#: ../source/changelog.md:74 -#: ../source/changelog.md:110 -#: ../source/changelog.md:156 -#: ../source/changelog.md:201 -#: ../source/changelog.md:230 -#: ../source/changelog.md:261 +#: ../source/changelog.md:83 +#: ../source/changelog.md:154 +#: ../source/changelog.md:200 +#: ../source/changelog.md:245 +#: ../source/changelog.md:279 #: ../source/changelog.md:306 -#: ../source/changelog.md:355 -#: ../source/changelog.md:387 -#: ../source/changelog.md:421 -#: ../source/changelog.md:459 -#: ../source/changelog.md:497 -#: ../source/changelog.md:529 -#: ../source/changelog.md:568 -#: ../source/changelog.md:607 -#: ../source/changelog.md:648 -#: ../source/changelog.md:690 -#: ../source/changelog.md:739 -#: ../source/changelog.md:791 -#: ../source/changelog.md:893 -#: ../source/changelog.md:947 -#: ../source/changelog.md:1002 -#: ../source/changelog.md:1034 -#: ../source/changelog.md:1291 -#: ../source/changelog.md:1574 -msgid "Thanks to the contributors:" +#: ../source/changelog.md:350 +#: ../source/changelog.md:436 +#: ../source/changelog.md:466 +#: ../source/changelog.md:504 +#: ../source/changelog.md:542 +#: ../source/changelog.md:579 +#: ../source/changelog.md:657 +#: ../source/changelog.md:698 +#: ../source/changelog.md:740 +#: ../source/changelog.md:789 +#: ../source/changelog.md:888 +#: ../source/changelog.md:909 +#: ../source/changelog.md:993 +msgid "Galician: 100%" msgstr "" #: ../source/changelog.md:36 -#: ../source/changelog.md:158 -#: ../source/changelog.md:308 -#: ../source/changelog.md:357 -#: ../source/changelog.md:460 -#: ../source/changelog.md:530 -#: ../source/changelog.md:570 -#: ../source/changelog.md:740 -#: ../source/changelog.md:793 -#: ../source/changelog.md:895 -#: ../source/changelog.md:951 -msgid "@gallegonovato" +#: ../source/changelog.md:84 +#: ../source/changelog.md:246 +#: ../source/changelog.md:280 +#: ../source/changelog.md:307 +#: ../source/changelog.md:437 +#: ../source/changelog.md:467 +#: ../source/changelog.md:505 +#: ../source/changelog.md:543 +#: ../source/changelog.md:580 +#: ../source/changelog.md:658 +#: ../source/changelog.md:699 +#: ../source/changelog.md:741 +#: ../source/changelog.md:889 +#: ../source/changelog.md:994 +msgid "German: 100%" msgstr "" #: ../source/changelog.md:37 -#: ../source/changelog.md:202 -#: ../source/changelog.md:231 -#: ../source/changelog.md:262 -#: ../source/changelog.md:310 -msgid "@jmlich" +#: ../source/changelog.md:85 +#: ../source/changelog.md:124 +#: ../source/changelog.md:156 +msgid "Italian: 82%" msgstr "" #: ../source/changelog.md:38 -msgid "@mara21" +#: ../source/changelog.md:86 +#: ../source/changelog.md:125 +#: ../source/changelog.md:157 +#: ../source/changelog.md:203 +msgid "Norwegian Bokmål: 52%" msgstr "" #: ../source/changelog.md:39 -#: ../source/changelog.md:264 -#: ../source/changelog.md:461 -#: ../source/changelog.md:531 -#: ../source/changelog.md:692 -#: ../source/changelog.md:952 -#: ../source/changelog.md:1004 -#: ../source/changelog.md:1037 -msgid "@qwerty287" +#: ../source/changelog.md:470 +#: ../source/changelog.md:508 +#: ../source/changelog.md:622 +msgid "Polish: 99%" msgstr "" #: ../source/changelog.md:40 -#: ../source/changelog.md:76 -#: ../source/changelog.md:115 -#: ../source/changelog.md:161 +msgid "Portuguese: 97%" +msgstr "" + +#: ../source/changelog.md:41 +#: ../source/changelog.md:89 +#: ../source/changelog.md:160 +#: ../source/changelog.md:206 +#: ../source/changelog.md:251 +#: ../source/changelog.md:284 #: ../source/changelog.md:311 -#: ../source/changelog.md:358 -#: ../source/changelog.md:462 -#: ../source/changelog.md:532 -#: ../source/changelog.md:571 -#: ../source/changelog.md:649 -#: ../source/changelog.md:741 +#: ../source/changelog.md:355 +#: ../source/changelog.md:404 +#: ../source/changelog.md:441 +#: ../source/changelog.md:471 +#: ../source/changelog.md:509 +#: ../source/changelog.md:547 +#: ../source/changelog.md:584 +#: ../source/changelog.md:662 +#: ../source/changelog.md:703 +#: ../source/changelog.md:745 #: ../source/changelog.md:794 -#: ../source/changelog.md:898 -#: ../source/changelog.md:953 -msgid "@xmgz" +#: ../source/changelog.md:846 +#: ../source/changelog.md:893 +#: ../source/changelog.md:914 +#: ../source/changelog.md:946 +#: ../source/changelog.md:997 +msgid "Spanish: 100%" msgstr "" #: ../source/changelog.md:43 -msgid "Version 0.8.7 (2024/08/25)" +#: ../source/changelog.md:162 +#: ../source/changelog.md:208 +#: ../source/changelog.md:253 +#: ../source/changelog.md:313 +#: ../source/changelog.md:357 +#: ../source/changelog.md:406 +#: ../source/changelog.md:473 +#: ../source/changelog.md:511 +#: ../source/changelog.md:549 +#: ../source/changelog.md:609 +#: ../source/changelog.md:645 +#: ../source/changelog.md:686 +#: ../source/changelog.md:716 +#: ../source/changelog.md:760 +#: ../source/changelog.md:831 +#: ../source/changelog.md:878 +#: ../source/changelog.md:999 +#: ../source/changelog.md:1072 +#: ../source/changelog.md:1152 +#: ../source/changelog.md:1165 +#: ../source/changelog.md:1271 +#: ../source/changelog.md:1363 +#: ../source/changelog.md:1384 +#: ../source/changelog.md:1492 +#: ../source/changelog.md:1508 +#: ../source/changelog.md:1617 +#: ../source/changelog.md:1673 +#: ../source/changelog.md:1714 +#: ../source/changelog.md:1740 +#: ../source/changelog.md:1795 +#: ../source/changelog.md:1861 +#: ../source/changelog.md:1876 +msgid "Misc" msgstr "" #: ../source/changelog.md:45 -#: ../source/changelog.md:120 -#: ../source/changelog.md:170 -#: ../source/changelog.md:269 +msgid "PR#628 - Replace markdown library" +msgstr "" + +#: ../source/changelog.md:48 +#: ../source/changelog.md:92 +#: ../source/changelog.md:131 +#: ../source/changelog.md:167 +#: ../source/changelog.md:213 +#: ../source/changelog.md:258 +#: ../source/changelog.md:287 #: ../source/changelog.md:318 -#: ../source/changelog.md:427 -#: ../source/changelog.md:467 -#: ../source/changelog.md:505 -#: ../source/changelog.md:537 -#: ../source/changelog.md:710 -#: ../source/changelog.md:749 -#: ../source/changelog.md:862 -#: ../source/changelog.md:910 -#: ../source/changelog.md:983 -#: ../source/changelog.md:1023 -#: ../source/changelog.md:1044 +#: ../source/changelog.md:363 +#: ../source/changelog.md:412 +#: ../source/changelog.md:444 +#: ../source/changelog.md:478 +#: ../source/changelog.md:516 +#: ../source/changelog.md:554 +#: ../source/changelog.md:586 +#: ../source/changelog.md:625 +#: ../source/changelog.md:664 +#: ../source/changelog.md:705 +#: ../source/changelog.md:747 +#: ../source/changelog.md:796 +#: ../source/changelog.md:848 +#: ../source/changelog.md:950 +#: ../source/changelog.md:1004 #: ../source/changelog.md:1059 -#: ../source/changelog.md:1083 -#: ../source/changelog.md:1146 -#: ../source/changelog.md:1186 -msgid "Features and enhancements" +#: ../source/changelog.md:1091 +#: ../source/changelog.md:1348 +#: ../source/changelog.md:1631 +msgid "Thanks to the contributors:" +msgstr "" + +#: ../source/changelog.md:49 +msgid "@boosterl" +msgstr "" + +#: ../source/changelog.md:50 +#: ../source/changelog.md:214 +msgid "@byakurau" +msgstr "" + +#: ../source/changelog.md:51 +msgid "@dotlambda" +msgstr "" + +#: ../source/changelog.md:52 +#: ../source/changelog.md:132 +#: ../source/changelog.md:479 +msgid "@erral" +msgstr "" + +#: ../source/changelog.md:53 +#: ../source/changelog.md:93 +#: ../source/changelog.md:215 +#: ../source/changelog.md:365 +#: ../source/changelog.md:414 +#: ../source/changelog.md:517 +#: ../source/changelog.md:587 +#: ../source/changelog.md:627 +#: ../source/changelog.md:797 +#: ../source/changelog.md:850 +#: ../source/changelog.md:952 +#: ../source/changelog.md:1008 +msgid "@gallegonovato" +msgstr "" + +#: ../source/changelog.md:54 +#: ../source/changelog.md:96 +#: ../source/changelog.md:321 +#: ../source/changelog.md:518 +#: ../source/changelog.md:588 +#: ../source/changelog.md:749 +#: ../source/changelog.md:1009 +#: ../source/changelog.md:1061 +#: ../source/changelog.md:1094 +msgid "@qwerty287" +msgstr "" + +#: ../source/changelog.md:55 +#: ../source/changelog.md:97 +#: ../source/changelog.md:133 +#: ../source/changelog.md:172 +#: ../source/changelog.md:218 +#: ../source/changelog.md:368 +#: ../source/changelog.md:415 +#: ../source/changelog.md:519 +#: ../source/changelog.md:589 +#: ../source/changelog.md:628 +#: ../source/changelog.md:706 +#: ../source/changelog.md:798 +#: ../source/changelog.md:851 +#: ../source/changelog.md:955 +#: ../source/changelog.md:1010 +msgid "@xmgz" +msgstr "" + +#: ../source/changelog.md:57 +#: ../source/changelog.md:135 +#: ../source/changelog.md:220 +#: ../source/changelog.md:417 +#: ../source/changelog.md:630 +#: ../source/changelog.md:801 +#: ../source/changelog.md:853 +#: ../source/changelog.md:957 +#: ../source/changelog.md:1015 +#: ../source/changelog.md:1063 +#: ../source/changelog.md:1111 +#: ../source/changelog.md:1125 +#: ../source/changelog.md:1219 +#: ../source/changelog.md:1258 +msgid "Note: This release contains database migration (see upgrade instructions in documentation)" +msgstr "" + +#: ../source/changelog.md:60 +msgid "Version 0.8.8 (2024/09/01)" +msgstr "" + +#: ../source/changelog.md:62 +msgid "FitTrackee is now available in Bulgarian." +msgstr "" + +#: ../source/changelog.md:66 +msgid "#614 - Labels are not translated on workouts average chart" +msgstr "" + +#: ../source/changelog.md:70 +msgid "PR#607 - Translations update (German)" +msgstr "" + +#: ../source/changelog.md:71 +msgid "#608 - [translations request] Bulgarian" +msgstr "" + +#: ../source/changelog.md:72 +msgid "PR#609 - Translations update (Galician and Spanish)" +msgstr "" + +#: ../source/changelog.md:73 +msgid "PR#612 - Translations update (Bulgarian and Czech)" +msgstr "" + +#: ../source/changelog.md:77 +#: ../source/changelog.md:117 +msgid "Basque: 99%" +msgstr "" + +#: ../source/changelog.md:78 +msgid "Bulgarian: 100%" +msgstr "" + +#: ../source/changelog.md:79 +#: ../source/changelog.md:150 +#: ../source/changelog.md:196 +msgid "Czech: 73%" +msgstr "" + +#: ../source/changelog.md:87 +#: ../source/changelog.md:126 +msgid "Polish: 91%" +msgstr "" + +#: ../source/changelog.md:88 +#: ../source/changelog.md:127 +#: ../source/changelog.md:159 +#: ../source/changelog.md:205 +msgid "Portuguese: 98%" +msgstr "" + +#: ../source/changelog.md:94 +#: ../source/changelog.md:259 +#: ../source/changelog.md:288 +#: ../source/changelog.md:319 +#: ../source/changelog.md:367 +msgid "@jmlich" +msgstr "" + +#: ../source/changelog.md:95 +msgid "@mara21" +msgstr "" + +#: ../source/changelog.md:100 +msgid "Version 0.8.7 (2024/08/25)" msgstr "" -#: ../source/changelog.md:47 +#: ../source/changelog.md:104 msgid "#604 - New sport: Swimrun" msgstr "" -#: ../source/changelog.md:51 +#: ../source/changelog.md:108 msgid "PR#598 - CLI - fix limit for user data export cleanup" msgstr "" -#: ../source/changelog.md:55 +#: ../source/changelog.md:112 msgid "PR#600 - Translations update (Galician)" msgstr "" -#: ../source/changelog.md:56 +#: ../source/changelog.md:113 msgid "PR#603 - Translations update (Basque)" msgstr "" -#: ../source/changelog.md:61 -msgid "Czech: 72%" -msgstr "" - -#: ../source/changelog.md:65 -#: ../source/changelog.md:342 -#: ../source/changelog.md:561 -#: ../source/changelog.md:884 +#: ../source/changelog.md:122 +#: ../source/changelog.md:399 +#: ../source/changelog.md:618 +#: ../source/changelog.md:941 msgid "Galician: 99%" msgstr "" -#: ../source/changelog.md:66 -#: ../source/changelog.md:144 +#: ../source/changelog.md:123 +#: ../source/changelog.md:201 msgid "German: 98%" msgstr "" -#: ../source/changelog.md:71 -#: ../source/changelog.md:566 +#: ../source/changelog.md:128 +#: ../source/changelog.md:623 msgid "Spanish: 99%" msgstr "" -#: ../source/changelog.md:75 -#: ../source/changelog.md:422 -msgid "@erral" -msgstr "" - -#: ../source/changelog.md:78 -#: ../source/changelog.md:163 -#: ../source/changelog.md:360 -#: ../source/changelog.md:573 -#: ../source/changelog.md:744 -#: ../source/changelog.md:796 -#: ../source/changelog.md:900 -#: ../source/changelog.md:958 -#: ../source/changelog.md:1006 -#: ../source/changelog.md:1054 -#: ../source/changelog.md:1068 -#: ../source/changelog.md:1162 -#: ../source/changelog.md:1201 -msgid "Note: This release contains database migration (see upgrade instructions in documentation)" -msgstr "" - -#: ../source/changelog.md:81 +#: ../source/changelog.md:138 msgid "Version 0.8.6 (2024/08/03)" msgstr "" -#: ../source/changelog.md:85 +#: ../source/changelog.md:142 msgid "PR#590 - Translations update (Italian)" msgstr "" -#: ../source/changelog.md:86 +#: ../source/changelog.md:143 msgid "PR#591 - Translations update (Galician)" msgstr "" -#: ../source/changelog.md:87 +#: ../source/changelog.md:144 msgid "PR#592 - Translations update (German, Dutch)" msgstr "" -#: ../source/changelog.md:88 +#: ../source/changelog.md:145 msgid "PR#593 - Translations update (German)" msgstr "" -#: ../source/changelog.md:89 +#: ../source/changelog.md:146 msgid "fb10602 - update and fix translations" msgstr "" -#: ../source/changelog.md:92 -#: ../source/changelog.md:138 +#: ../source/changelog.md:149 +#: ../source/changelog.md:195 msgid "Basque: 98%" msgstr "" -#: ../source/changelog.md:94 -#: ../source/changelog.md:376 -#: ../source/changelog.md:482 -#: ../source/changelog.md:597 -#: ../source/changelog.md:638 -#: ../source/changelog.md:680 -#: ../source/changelog.md:828 +#: ../source/changelog.md:151 +#: ../source/changelog.md:433 +#: ../source/changelog.md:539 +#: ../source/changelog.md:654 +#: ../source/changelog.md:695 +#: ../source/changelog.md:737 +#: ../source/changelog.md:885 msgid "Dutch: 100%" msgstr "" -#: ../source/changelog.md:98 -#: ../source/changelog.md:562 -#: ../source/changelog.md:853 -#: ../source/changelog.md:885 +#: ../source/changelog.md:155 +#: ../source/changelog.md:619 +#: ../source/changelog.md:910 +#: ../source/changelog.md:942 msgid "German: 99%" msgstr "" -#: ../source/changelog.md:101 -#: ../source/changelog.md:147 +#: ../source/changelog.md:158 +#: ../source/changelog.md:204 msgid "Polish: 92%" msgstr "" -#: ../source/changelog.md:105 -#: ../source/changelog.md:151 -#: ../source/changelog.md:196 -#: ../source/changelog.md:256 -#: ../source/changelog.md:300 -#: ../source/changelog.md:349 -#: ../source/changelog.md:416 -#: ../source/changelog.md:454 -#: ../source/changelog.md:492 -#: ../source/changelog.md:552 -#: ../source/changelog.md:588 -#: ../source/changelog.md:629 -#: ../source/changelog.md:659 -#: ../source/changelog.md:703 -#: ../source/changelog.md:774 -#: ../source/changelog.md:821 -#: ../source/changelog.md:942 -#: ../source/changelog.md:1015 -#: ../source/changelog.md:1095 -#: ../source/changelog.md:1108 -#: ../source/changelog.md:1214 -#: ../source/changelog.md:1306 -#: ../source/changelog.md:1327 -#: ../source/changelog.md:1435 -#: ../source/changelog.md:1451 -#: ../source/changelog.md:1560 -#: ../source/changelog.md:1616 -#: ../source/changelog.md:1657 -#: ../source/changelog.md:1683 -#: ../source/changelog.md:1738 -#: ../source/changelog.md:1804 -#: ../source/changelog.md:1819 -msgid "Misc" -msgstr "" - -#: ../source/changelog.md:107 +#: ../source/changelog.md:164 msgid "PR#595 - CI - speed up tests" msgstr "" -#: ../source/changelog.md:111 +#: ../source/changelog.md:168 msgid "@ConfusedAlex" msgstr "" -#: ../source/changelog.md:112 +#: ../source/changelog.md:169 msgid "@lukasitaly" msgstr "" -#: ../source/changelog.md:113 +#: ../source/changelog.md:170 msgid "@simontb" msgstr "" -#: ../source/changelog.md:114 +#: ../source/changelog.md:171 msgid "@slothje" msgstr "" -#: ../source/changelog.md:118 +#: ../source/changelog.md:175 msgid "Version 0.8.5 (2024/06/29)" msgstr "" -#: ../source/changelog.md:122 +#: ../source/changelog.md:179 msgid "#566 - [Feature] Improved statistics section with average calculation" msgstr "" -#: ../source/changelog.md:123 +#: ../source/changelog.md:180 msgid "PR#575 - Add page to display sport statistics" msgstr "" -#: ../source/changelog.md:124 +#: ../source/changelog.md:181 msgid "PR#587 - Improve user forms" msgstr "" -#: ../source/changelog.md:128 +#: ../source/changelog.md:185 msgid "PR#588 - Fix click on workout chart checkbox labels" msgstr "" -#: ../source/changelog.md:132 +#: ../source/changelog.md:189 msgid "PR#564 - Translations update (Dutch)" msgstr "" -#: ../source/changelog.md:133 +#: ../source/changelog.md:190 msgid "PR#565 - Translations update (Polish)" msgstr "" -#: ../source/changelog.md:134 +#: ../source/changelog.md:191 msgid "PR#571 - Translations update (Galician, Spanish)" msgstr "" -#: ../source/changelog.md:135 +#: ../source/changelog.md:192 msgid "PR#582 - Translations update (Galician, Spanish)" msgstr "" -#: ../source/changelog.md:140 -#: ../source/changelog.md:185 -#: ../source/changelog.md:219 -#: ../source/changelog.md:246 -#: ../source/changelog.md:290 -#: ../source/changelog.md:519 -#: ../source/changelog.md:933 +#: ../source/changelog.md:197 +#: ../source/changelog.md:242 +#: ../source/changelog.md:276 +#: ../source/changelog.md:303 +#: ../source/changelog.md:347 +#: ../source/changelog.md:576 +#: ../source/changelog.md:990 msgid "Dutch: 98%" msgstr "" -#: ../source/changelog.md:145 +#: ../source/changelog.md:202 msgid "Italian: 73%" msgstr "" -#: ../source/changelog.md:153 +#: ../source/changelog.md:210 msgid "PR#583 - Simplify docker deployment" msgstr "" -#: ../source/changelog.md:157 -msgid "@byakurau" -msgstr "" - -#: ../source/changelog.md:159 -#: ../source/changelog.md:309 +#: ../source/changelog.md:216 +#: ../source/changelog.md:366 msgid "@jderuiter" msgstr "" -#: ../source/changelog.md:160 +#: ../source/changelog.md:217 msgid "@pluja" msgstr "" -#: ../source/changelog.md:166 +#: ../source/changelog.md:223 msgid "Version 0.8.4 (2024/05/22)" msgstr "" -#: ../source/changelog.md:168 +#: ../source/changelog.md:225 msgid "FitTrackee is now available in Portuguese." msgstr "" -#: ../source/changelog.md:172 +#: ../source/changelog.md:229 msgid "f2aec30 - add password strength estimation for Czech" msgstr "" -#: ../source/changelog.md:173 +#: ../source/changelog.md:230 msgid "#563 - CLI - init language preference on user creation" msgstr "" -#: ../source/changelog.md:177 +#: ../source/changelog.md:234 msgid "#550 - Typo: par page instead of per page" msgstr "" -#: ../source/changelog.md:178 +#: ../source/changelog.md:235 msgid "PR#551 - Translations update (Czech)" msgstr "" -#: ../source/changelog.md:179 +#: ../source/changelog.md:236 msgid "PR#555 - Translations update (Czech)" msgstr "" -#: ../source/changelog.md:180 +#: ../source/changelog.md:237 msgid "#558 - [translations request] Portuguese" msgstr "" -#: ../source/changelog.md:183 -#: ../source/changelog.md:217 -#: ../source/changelog.md:375 -#: ../source/changelog.md:405 -msgid "Basque: 100%" -msgstr "" - -#: ../source/changelog.md:184 +#: ../source/changelog.md:241 msgid "Czech: 74%" msgstr "" -#: ../source/changelog.md:190 -#: ../source/changelog.md:224 -#: ../source/changelog.md:251 -#: ../source/changelog.md:295 +#: ../source/changelog.md:247 +#: ../source/changelog.md:281 +#: ../source/changelog.md:308 +#: ../source/changelog.md:352 msgid "Italian: 74%" msgstr "" -#: ../source/changelog.md:191 -#: ../source/changelog.md:225 -#: ../source/changelog.md:252 -#: ../source/changelog.md:296 -#: ../source/changelog.md:345 +#: ../source/changelog.md:248 +#: ../source/changelog.md:282 +#: ../source/changelog.md:309 +#: ../source/changelog.md:353 +#: ../source/changelog.md:402 msgid "Norwegian Bokmål: 53%" msgstr "" -#: ../source/changelog.md:192 -#: ../source/changelog.md:226 -#: ../source/changelog.md:253 -#: ../source/changelog.md:297 +#: ../source/changelog.md:249 +#: ../source/changelog.md:283 +#: ../source/changelog.md:310 +#: ../source/changelog.md:354 msgid "Polish: 88%" msgstr "" -#: ../source/changelog.md:193 +#: ../source/changelog.md:250 msgid "Portuguese: 100%" msgstr "" -#: ../source/changelog.md:198 +#: ../source/changelog.md:255 msgid "PR#556 - API - minor refacto" msgstr "" -#: ../source/changelog.md:199 +#: ../source/changelog.md:256 msgid "PR#557 - API - prepare SQLAlchemy migration" msgstr "" -#: ../source/changelog.md:203 +#: ../source/changelog.md:260 msgid "@voodoopt" msgstr "" -#: ../source/changelog.md:206 +#: ../source/changelog.md:263 msgid "Version 0.8.3 (2024/05/09)" msgstr "" -#: ../source/changelog.md:210 +#: ../source/changelog.md:267 msgid "#546 - workout data are not refreshed after displaying segment" msgstr "" -#: ../source/changelog.md:214 +#: ../source/changelog.md:271 msgid "PR#545 - Translations update (Basque, Czech)" msgstr "" -#: ../source/changelog.md:218 -#: ../source/changelog.md:245 +#: ../source/changelog.md:275 +#: ../source/changelog.md:302 msgid "Czech: 25%" msgstr "" -#: ../source/changelog.md:232 +#: ../source/changelog.md:289 msgid "@urtzai" msgstr "" -#: ../source/changelog.md:235 +#: ../source/changelog.md:292 msgid "Version 0.8.2 (2024/05/08)" msgstr "" -#: ../source/changelog.md:239 +#: ../source/changelog.md:296 msgid "PR#540 - Translations update (German)" msgstr "" -#: ../source/changelog.md:240 +#: ../source/changelog.md:297 msgid "PR#542 - Translations update (Czech)" msgstr "" -#: ../source/changelog.md:241 +#: ../source/changelog.md:298 msgid "PR#544 - Translations update (German, Czech)" msgstr "" -#: ../source/changelog.md:244 -#: ../source/changelog.md:288 +#: ../source/changelog.md:301 +#: ../source/changelog.md:345 msgid "Basque: 88%" msgstr "" -#: ../source/changelog.md:258 +#: ../source/changelog.md:315 msgid "PR#543 - tools - replace black, flake8 and isort with ruff" msgstr "" -#: ../source/changelog.md:263 +#: ../source/changelog.md:320 msgid "@OndrejZivny" msgstr "" -#: ../source/changelog.md:267 +#: ../source/changelog.md:324 msgid "Version 0.8.1 (2024/05/01)" msgstr "" -#: ../source/changelog.md:271 +#: ../source/changelog.md:328 msgid "PR#527 - improve Sports endpoints response time" msgstr "" -#: ../source/changelog.md:275 +#: ../source/changelog.md:332 msgid "PR#531 - Minor navigation fixes on mobile" msgstr "" -#: ../source/changelog.md:276 +#: ../source/changelog.md:333 msgid "PR#532 - Fix footer color on dark mode" msgstr "" -#: ../source/changelog.md:277 +#: ../source/changelog.md:334 msgid "PR#536 - Accessibility fixes" msgstr "" -#: ../source/changelog.md:281 +#: ../source/changelog.md:338 msgid "PR#526 - Translations update (Dutch, Galician, Norwegian Bokmål)" msgstr "" -#: ../source/changelog.md:282 +#: ../source/changelog.md:339 msgid "PR#533 - Translations update (Czech)" msgstr "" -#: ../source/changelog.md:283 +#: ../source/changelog.md:340 msgid "#534 - [translations request] Czech" msgstr "" -#: ../source/changelog.md:284 +#: ../source/changelog.md:341 msgid "PR#537 - Translations update (Spanish)" msgstr "" -#: ../source/changelog.md:285 +#: ../source/changelog.md:342 msgid "PR#538 - Translations update (Galician)" msgstr "" -#: ../source/changelog.md:289 +#: ../source/changelog.md:346 msgid "Czech: 15%" msgstr "" -#: ../source/changelog.md:294 +#: ../source/changelog.md:351 msgid "German: 88%" msgstr "" -#: ../source/changelog.md:302 +#: ../source/changelog.md:359 msgid "PR#528 - README reworked" msgstr "" -#: ../source/changelog.md:303 +#: ../source/changelog.md:360 msgid "PR#530 - specify AGPLv3 license" msgstr "" -#: ../source/changelog.md:307 -#: ../source/changelog.md:608 -#: ../source/changelog.md:949 +#: ../source/changelog.md:364 +#: ../source/changelog.md:665 +#: ../source/changelog.md:1006 msgid "@comradekingu" msgstr "" -#: ../source/changelog.md:314 +#: ../source/changelog.md:371 msgid "Version 0.8.0 (2024/04/21)" msgstr "" -#: ../source/changelog.md:316 +#: ../source/changelog.md:373 msgid "FitTrackee now lets you associate equipment with workouts and filter workouts on notes." msgstr "" -#: ../source/changelog.md:320 +#: ../source/changelog.md:377 msgid "#259 - Feature request: \"Equipment\" that can be associated with workouts" msgstr "" -#: ../source/changelog.md:321 +#: ../source/changelog.md:378 msgid "#512 - Add ability to filter on notes in Workouts List" msgstr "" -#: ../source/changelog.md:325 +#: ../source/changelog.md:382 msgid "#508 - Stopped speed threshold unit is missing on sports list" msgstr "" -#: ../source/changelog.md:326 +#: ../source/changelog.md:383 msgid "3b6fa25 - fix workouts table display on small resolutions" msgstr "" -#: ../source/changelog.md:327 +#: ../source/changelog.md:384 msgid "51758b4 - fix on filters hiding on small resolutions" msgstr "" -#: ../source/changelog.md:331 +#: ../source/changelog.md:388 msgid "PR#507 Translations update (Galician)" msgstr "" -#: ../source/changelog.md:332 +#: ../source/changelog.md:389 msgid "PR#510 Translations update (Spanish)" msgstr "" -#: ../source/changelog.md:333 +#: ../source/changelog.md:390 msgid "PR#511 Translations update (Galician)" msgstr "" -#: ../source/changelog.md:334 +#: ../source/changelog.md:391 msgid "PR#521 Translations update (Spanish)" msgstr "" -#: ../source/changelog.md:335 +#: ../source/changelog.md:392 msgid "PR#524 Translations update (Spanish)" msgstr "" -#: ../source/changelog.md:338 +#: ../source/changelog.md:395 msgid "Basque: 89%" msgstr "" -#: ../source/changelog.md:339 +#: ../source/changelog.md:396 msgid "Dutch: 89%" msgstr "" -#: ../source/changelog.md:343 +#: ../source/changelog.md:400 msgid "German: 89%" msgstr "" -#: ../source/changelog.md:344 +#: ../source/changelog.md:401 msgid "Italian: 75%" msgstr "" -#: ../source/changelog.md:346 +#: ../source/changelog.md:403 msgid "Polish: 89%" msgstr "" -#: ../source/changelog.md:351 +#: ../source/changelog.md:408 msgid "#502 - Remove deprecated commands" msgstr "" -#: ../source/changelog.md:352 +#: ../source/changelog.md:409 msgid "PR#506 - CLI - update database commands" msgstr "" -#: ../source/changelog.md:356 -#: ../source/changelog.md:897 -#: ../source/changelog.md:950 -#: ../source/changelog.md:1036 +#: ../source/changelog.md:413 +#: ../source/changelog.md:954 +#: ../source/changelog.md:1007 +#: ../source/changelog.md:1093 msgid "@jat255" msgstr "" -#: ../source/changelog.md:363 +#: ../source/changelog.md:420 msgid "Version 0.7.32 (2024/03/10)" msgstr "" -#: ../source/changelog.md:367 +#: ../source/changelog.md:424 msgid "#504 - Database migrations fail" msgstr "" -#: ../source/changelog.md:371 +#: ../source/changelog.md:428 msgid "#496 Translations update (Dutch)" msgstr "" -#: ../source/changelog.md:372 +#: ../source/changelog.md:429 msgid "#499 Translations update (Polish)" msgstr "" -#: ../source/changelog.md:381 -#: ../source/changelog.md:411 -#: ../source/changelog.md:449 -#: ../source/changelog.md:487 -#: ../source/changelog.md:524 +#: ../source/changelog.md:438 +#: ../source/changelog.md:468 +#: ../source/changelog.md:506 +#: ../source/changelog.md:544 +#: ../source/changelog.md:581 msgid "Italian: 84%" msgstr "" -#: ../source/changelog.md:382 -#: ../source/changelog.md:412 -#: ../source/changelog.md:450 -#: ../source/changelog.md:488 -#: ../source/changelog.md:525 +#: ../source/changelog.md:439 +#: ../source/changelog.md:469 +#: ../source/changelog.md:507 +#: ../source/changelog.md:545 +#: ../source/changelog.md:582 msgid "Norwegian Bokmål: 60%" msgstr "" -#: ../source/changelog.md:383 -#: ../source/changelog.md:489 -#: ../source/changelog.md:604 -#: ../source/changelog.md:645 -#: ../source/changelog.md:687 +#: ../source/changelog.md:440 +#: ../source/changelog.md:546 +#: ../source/changelog.md:661 +#: ../source/changelog.md:702 +#: ../source/changelog.md:744 msgid "Polish: 100%" msgstr "" -#: ../source/changelog.md:388 -#: ../source/changelog.md:691 -#: ../source/changelog.md:894 -#: ../source/changelog.md:948 -#: ../source/changelog.md:1003 -#: ../source/changelog.md:1035 +#: ../source/changelog.md:445 +#: ../source/changelog.md:748 +#: ../source/changelog.md:951 +#: ../source/changelog.md:1005 +#: ../source/changelog.md:1060 +#: ../source/changelog.md:1092 msgid "@bjornclauw" msgstr "" -#: ../source/changelog.md:389 -#: ../source/changelog.md:499 +#: ../source/changelog.md:446 +#: ../source/changelog.md:556 msgid "Mariuz" msgstr "" -#: ../source/changelog.md:392 +#: ../source/changelog.md:449 msgid "Version 0.7.31 (2024/02/10)" msgstr "" -#: ../source/changelog.md:394 +#: ../source/changelog.md:451 msgid "Basque is now available in FitTrackee interface." msgstr "" -#: ../source/changelog.md:398 +#: ../source/changelog.md:455 msgid "PR#495 - fix menu display when clicking on application name" msgstr "" -#: ../source/changelog.md:402 +#: ../source/changelog.md:459 msgid "#490 [Translation Request] EU - Basque" msgstr "" -#: ../source/changelog.md:413 -#: ../source/changelog.md:451 -#: ../source/changelog.md:565 -msgid "Polish: 99%" -msgstr "" - -#: ../source/changelog.md:418 +#: ../source/changelog.md:475 msgid "PR#494 - Update install-python command" msgstr "" -#: ../source/changelog.md:425 +#: ../source/changelog.md:482 msgid "Version 0.7.30 (2024/02/04)" msgstr "" -#: ../source/changelog.md:429 +#: ../source/changelog.md:486 msgid "b748459 - Update alert message colors on dark mode" msgstr "" -#: ../source/changelog.md:433 +#: ../source/changelog.md:490 msgid "PR#481 - Handle keyboard navigation on dropdowns" msgstr "" -#: ../source/changelog.md:434 +#: ../source/changelog.md:491 msgid "3821e37 - Make calendar arrows accessible to keyboard navigation" msgstr "" -#: ../source/changelog.md:435 +#: ../source/changelog.md:492 msgid "PR#488 - CLI - fix user creation when user already exists with same email" msgstr "" -#: ../source/changelog.md:436 +#: ../source/changelog.md:493 msgid "PR#489 - Handle keyboard navigation on calendar" msgstr "" -#: ../source/changelog.md:440 +#: ../source/changelog.md:497 msgid "PR#482 - Translations update (Galician and Spanish)" msgstr "" -#: ../source/changelog.md:441 +#: ../source/changelog.md:498 msgid "PR#484 - Translations update (German)" msgstr "" -#: ../source/changelog.md:456 +#: ../source/changelog.md:513 msgid "aff4d68 - CI - update actions version" msgstr "" -#: ../source/changelog.md:465 +#: ../source/changelog.md:522 msgid "Version 0.7.29 (2024/01/06)" msgstr "" -#: ../source/changelog.md:469 +#: ../source/changelog.md:526 msgid "8aa4cff - Update loader color on dark theme" msgstr "" -#: ../source/changelog.md:470 +#: ../source/changelog.md:527 msgid "#478 - Make application name clickable to access dashboard" msgstr "" -#: ../source/changelog.md:474 +#: ../source/changelog.md:531 msgid "PR#479 - Minor fixes on UI" msgstr "" -#: ../source/changelog.md:478 +#: ../source/changelog.md:535 msgid "PR#476 - Translations update (Polish)" msgstr "" -#: ../source/changelog.md:479 +#: ../source/changelog.md:536 msgid "PR#477 - Translations update (Dutch)" msgstr "" -#: ../source/changelog.md:494 +#: ../source/changelog.md:551 msgid "PR#475 - Build - use poetry-core instead of poetry" msgstr "" -#: ../source/changelog.md:498 +#: ../source/changelog.md:555 msgid "@traxys" msgstr "" -#: ../source/changelog.md:500 +#: ../source/changelog.md:557 msgid "Koen" msgstr "" -#: ../source/changelog.md:503 +#: ../source/changelog.md:560 msgid "Version 0.7.28 (2023/12/23)" msgstr "" -#: ../source/changelog.md:507 +#: ../source/changelog.md:564 msgid "PR#474 - Improve links display" msgstr "" -#: ../source/changelog.md:511 +#: ../source/changelog.md:568 msgid "6e215aa - fix background color on dark theme when modal is displayed" msgstr "" -#: ../source/changelog.md:515 +#: ../source/changelog.md:572 msgid "PR#473 - Translations update (Galician, Spanish and German)" msgstr "" -#: ../source/changelog.md:526 +#: ../source/changelog.md:583 msgid "Polish: 98%" msgstr "" -#: ../source/changelog.md:535 +#: ../source/changelog.md:592 msgid "Version 0.7.27 (2023/12/20)" msgstr "" -#: ../source/changelog.md:539 +#: ../source/changelog.md:596 msgid "#113 - add a dark mode" msgstr "" -#: ../source/changelog.md:540 +#: ../source/changelog.md:597 msgid "PR#464 - Update user preferences display" msgstr "" -#: ../source/changelog.md:541 +#: ../source/changelog.md:598 msgid "PR#471 - add new sport: \"Cycling (Trekking)\"" msgstr "" -#: ../source/changelog.md:545 +#: ../source/changelog.md:602 msgid "PR#469 - change UI display only on login ou user preferences update" msgstr "" -#: ../source/changelog.md:546 +#: ../source/changelog.md:603 msgid "PR#472 - fix redirection when resetting password" msgstr "" -#: ../source/changelog.md:550 +#: ../source/changelog.md:607 msgid "PR#468 - Translations update (Galician & Spanish)" msgstr "" -#: ../source/changelog.md:554 +#: ../source/changelog.md:611 msgid "#456 - Drop PostgreSQL 11 support" msgstr "" -#: ../source/changelog.md:563 -#: ../source/changelog.md:602 -#: ../source/changelog.md:643 -#: ../source/changelog.md:685 -#: ../source/changelog.md:734 -#: ../source/changelog.md:786 +#: ../source/changelog.md:620 +#: ../source/changelog.md:659 +#: ../source/changelog.md:700 +#: ../source/changelog.md:742 +#: ../source/changelog.md:791 +#: ../source/changelog.md:843 msgid "Italian: 85%" msgstr "" -#: ../source/changelog.md:564 -#: ../source/changelog.md:603 +#: ../source/changelog.md:621 +#: ../source/changelog.md:660 msgid "Norwegian Bokmål: 61%" msgstr "" -#: ../source/changelog.md:569 +#: ../source/changelog.md:626 msgid "@DavidHenryThoreau" msgstr "" -#: ../source/changelog.md:576 +#: ../source/changelog.md:633 msgid "Version 0.7.26 (2023/11/19)" msgstr "" -#: ../source/changelog.md:580 +#: ../source/changelog.md:637 msgid "#224 - Missing elevation results in incorrect ascent/descent total" msgstr "" -#: ../source/changelog.md:585 +#: ../source/changelog.md:642 msgid "PR#444 - Translations update (Norwegian Bokmål)" msgstr "" -#: ../source/changelog.md:590 +#: ../source/changelog.md:647 msgid "In addition to dependencies update:" msgstr "" -#: ../source/changelog.md:592 +#: ../source/changelog.md:649 msgid "PR#449 - Update vue, tooling and chart library" msgstr "" -#: ../source/changelog.md:593 +#: ../source/changelog.md:650 msgid "PR#450 - Update gpxpy to 1.6.1" msgstr "" -#: ../source/changelog.md:611 +#: ../source/changelog.md:668 msgid "Version 0.7.25 (2023/10/08)" msgstr "" -#: ../source/changelog.md:615 +#: ../source/changelog.md:672 msgid "#441 - Errors after upgrade to 0.7.24" msgstr "" -#: ../source/changelog.md:618 +#: ../source/changelog.md:675 msgid "Version 0.7.24 (2023/10/04)" msgstr "" -#: ../source/changelog.md:622 +#: ../source/changelog.md:679 msgid "PR#433 - Handle encoded password in EMAIL_URL" msgstr "" -#: ../source/changelog.md:626 +#: ../source/changelog.md:683 msgid "PR#427 - fix typos and translations + refacto" msgstr "" -#: ../source/changelog.md:627 +#: ../source/changelog.md:684 msgid "PR#431 - Translations update (Galician)" msgstr "" -#: ../source/changelog.md:631 +#: ../source/changelog.md:688 msgid "PR#428 - CI - Add PostgreSQL 16" msgstr "" -#: ../source/changelog.md:632 +#: ../source/changelog.md:689 msgid "2bcff2e - API - update Flask to 3.0+" msgstr "" -#: ../source/changelog.md:633 +#: ../source/changelog.md:690 msgid "PR#436 - CI - Add Python 3.12" msgstr "" -#: ../source/changelog.md:634 +#: ../source/changelog.md:691 msgid "PR#438 - CI - update workflows" msgstr "" -#: ../source/changelog.md:644 -#: ../source/changelog.md:686 -#: ../source/changelog.md:735 -#: ../source/changelog.md:787 -#: ../source/changelog.md:939 +#: ../source/changelog.md:701 +#: ../source/changelog.md:743 +#: ../source/changelog.md:792 +#: ../source/changelog.md:844 +#: ../source/changelog.md:996 msgid "Norwegian Bokmål: 35%" msgstr "" -#: ../source/changelog.md:652 +#: ../source/changelog.md:709 msgid "Version 0.7.23 (2023/09/14)" msgstr "" -#: ../source/changelog.md:656 +#: ../source/changelog.md:713 msgid "PR#421 - remove darksky from available weather providers in .env" msgstr "" -#: ../source/changelog.md:657 +#: ../source/changelog.md:714 msgid "PR#426 - Update default tile server (thanks to @astridx)" msgstr "" -#: ../source/changelog.md:661 +#: ../source/changelog.md:718 msgid "PR#422 - CI - fix e2e tests with packaged version" msgstr "" -#: ../source/changelog.md:664 +#: ../source/changelog.md:721 msgid "Version 0.7.22 (2023/08/23)" msgstr "" -#: ../source/changelog.md:668 +#: ../source/changelog.md:725 msgid "PR#411 - Fix various typos" msgstr "" -#: ../source/changelog.md:669 +#: ../source/changelog.md:726 msgid "PR#416 - fix modal navigation and closing" msgstr "" -#: ../source/changelog.md:674 +#: ../source/changelog.md:731 msgid "PR#410 - Translations update (German)" msgstr "" -#: ../source/changelog.md:675 +#: ../source/changelog.md:732 msgid "PR#415 - Translations update (Polish)" msgstr "" -#: ../source/changelog.md:676 +#: ../source/changelog.md:733 msgid "PR#417 - Translations update (Polish)" msgstr "" -#: ../source/changelog.md:677 +#: ../source/changelog.md:734 msgid "PR#418 - Translations update (Dutch)" msgstr "" -#: ../source/changelog.md:693 -#: ../source/changelog.md:742 +#: ../source/changelog.md:750 +#: ../source/changelog.md:799 msgid "Mariusz" msgstr "" -#: ../source/changelog.md:696 +#: ../source/changelog.md:753 msgid "Version 0.7.21 (2023/07/30)" msgstr "" -#: ../source/changelog.md:700 +#: ../source/changelog.md:757 msgid "#407 - Workout display error when speeds are zero" msgstr "" -#: ../source/changelog.md:705 +#: ../source/changelog.md:762 msgid "PR#409 - CI - update actions version" msgstr "" -#: ../source/changelog.md:708 +#: ../source/changelog.md:765 msgid "Version 0.7.20 (2023/07/22)" msgstr "" -#: ../source/changelog.md:712 +#: ../source/changelog.md:769 msgid "#400 - Add new sport: open water swimming" msgstr "" -#: ../source/changelog.md:717 +#: ../source/changelog.md:774 msgid "PR#398 - Fix language dropdown label" msgstr "" -#: ../source/changelog.md:718 +#: ../source/changelog.md:775 msgid "#402 - handle gpx file without elevation" msgstr "" -#: ../source/changelog.md:723 +#: ../source/changelog.md:780 msgid "PR#399 - Translations update (Galician)" msgstr "" -#: ../source/changelog.md:724 +#: ../source/changelog.md:781 msgid "PR#401 - Translations update (Galician and Polish)" msgstr "" -#: ../source/changelog.md:725 +#: ../source/changelog.md:782 msgid "PR#406 - Translations update (Galician and Spanish)" msgstr "" -#: ../source/changelog.md:729 -#: ../source/changelog.md:781 +#: ../source/changelog.md:786 +#: ../source/changelog.md:838 msgid "Dutch: 97%" msgstr "" -#: ../source/changelog.md:733 -#: ../source/changelog.md:785 +#: ../source/changelog.md:790 +#: ../source/changelog.md:842 msgid "German: 97%" msgstr "" -#: ../source/changelog.md:736 +#: ../source/changelog.md:793 msgid "Polish: 56%" msgstr "" -#: ../source/changelog.md:747 +#: ../source/changelog.md:804 msgid "Version 0.7.19 (2023/07/15)" msgstr "" -#: ../source/changelog.md:751 +#: ../source/changelog.md:808 msgid "PR#380 - Update documentation link" msgstr "" -#: ../source/changelog.md:752 +#: ../source/changelog.md:809 msgid "#390 - Improve UI" msgstr "" -#: ../source/changelog.md:753 +#: ../source/changelog.md:810 msgid "#391 - Add new sport: paragliding" msgstr "" -#: ../source/changelog.md:758 +#: ../source/changelog.md:815 msgid "#384 - Inconsistent page with between workout with and without GPS data" msgstr "" -#: ../source/changelog.md:759 +#: ../source/changelog.md:816 msgid "#393 - PIL.Image module has no attribute ANTIALIAS" msgstr "" -#: ../source/changelog.md:764 +#: ../source/changelog.md:821 msgid "PR#394 - Translations update (Galician)" msgstr "" -#: ../source/changelog.md:765 +#: ../source/changelog.md:822 msgid "PR#397 - Translations update (Spanish)" msgstr "" -#: ../source/changelog.md:768 -#: ../source/changelog.md:815 -#: ../source/changelog.md:1137 +#: ../source/changelog.md:825 +#: ../source/changelog.md:872 +#: ../source/changelog.md:1194 msgid "Documentation" msgstr "" -#: ../source/changelog.md:770 +#: ../source/changelog.md:827 msgid "PR#386 - Minor fix in CONTRIBUTING.md" msgstr "" -#: ../source/changelog.md:771 +#: ../source/changelog.md:828 msgid "PR#388 - Minor typo in CONTRIBUTING.md" msgstr "" -#: ../source/changelog.md:776 +#: ../source/changelog.md:833 msgid "#395 - CI - test a packaged version of FitTrackee" msgstr "" -#: ../source/changelog.md:777 +#: ../source/changelog.md:834 msgid "cc3fe1c CI - update python and postgresql default versions" msgstr "" -#: ../source/changelog.md:784 +#: ../source/changelog.md:841 msgid "Galician: 98%" msgstr "" -#: ../source/changelog.md:788 +#: ../source/changelog.md:845 msgid "Polish: 42%" msgstr "" -#: ../source/changelog.md:792 +#: ../source/changelog.md:849 msgid "@dkm" msgstr "" -#: ../source/changelog.md:799 +#: ../source/changelog.md:856 msgid "Version 0.7.18 (2023/06/25)" msgstr "" -#: ../source/changelog.md:801 +#: ../source/changelog.md:858 msgid "Polish is available in FitTrackee interface (partially translated).
    Documentation is now translated in French (note: documentation translations are not yet available on Weblate)." msgstr "" -#: ../source/changelog.md:804 +#: ../source/changelog.md:861 msgid "Important: Python 3.7 is no longer supported, the minimum version is now Python 3.8.1." msgstr "" -#: ../source/changelog.md:808 +#: ../source/changelog.md:865 msgid "#351 - [Translation Request] Polish" msgstr "" -#: ../source/changelog.md:809 +#: ../source/changelog.md:866 msgid "PR#370 - Translations update (Dutch, thanks to @bjornclauw)" msgstr "" -#: ../source/changelog.md:810 +#: ../source/changelog.md:867 msgid "PR#371 - Translations update (Polish, thanks to Mariusz on Weblate)" msgstr "" -#: ../source/changelog.md:811 +#: ../source/changelog.md:868 msgid "PR#375 - Translations update (French, thanks to @Thovi98)" msgstr "" -#: ../source/changelog.md:812 +#: ../source/changelog.md:869 msgid "PR#376 - Translations update (German, thanks to @qwerty287)" msgstr "" -#: ../source/changelog.md:817 +#: ../source/changelog.md:874 msgid "1375986 - Change documentation theme for Furo" msgstr "" -#: ../source/changelog.md:818 +#: ../source/changelog.md:875 msgid "#377 - Init documentation translation" msgstr "" -#: ../source/changelog.md:823 +#: ../source/changelog.md:880 msgid "#354 - Drop support for Python 3.7" msgstr "" -#: ../source/changelog.md:824 +#: ../source/changelog.md:881 msgid "PR#374 - Docker - install fittrackee in a virtualenv" msgstr "" -#: ../source/changelog.md:833 -#: ../source/changelog.md:854 -#: ../source/changelog.md:886 -#: ../source/changelog.md:938 +#: ../source/changelog.md:890 +#: ../source/changelog.md:911 +#: ../source/changelog.md:943 +#: ../source/changelog.md:995 msgid "Italian: 87%" msgstr "" -#: ../source/changelog.md:834 -#: ../source/changelog.md:855 -#: ../source/changelog.md:887 +#: ../source/changelog.md:891 +#: ../source/changelog.md:912 +#: ../source/changelog.md:944 msgid "Norwegian Bokmål: 36%" msgstr "" -#: ../source/changelog.md:835 +#: ../source/changelog.md:892 msgid "Polish: 43%" msgstr "" -#: ../source/changelog.md:838 +#: ../source/changelog.md:895 msgid "Thanks to all contributors." msgstr "" -#: ../source/changelog.md:841 +#: ../source/changelog.md:898 msgid "Version 0.7.17 (2023/06/03)" msgstr "" -#: ../source/changelog.md:845 +#: ../source/changelog.md:902 msgid "PR#366, PR#369 - Translations update from Hosted Weblate (Galician, thanks to @xmgz)" msgstr "" -#: ../source/changelog.md:846 +#: ../source/changelog.md:903 msgid "PR#367 - Translations update (Spanish, French)" msgstr "" -#: ../source/changelog.md:856 -#: ../source/changelog.md:888 +#: ../source/changelog.md:913 +#: ../source/changelog.md:945 msgid "Polish: 3%" msgstr "" -#: ../source/changelog.md:860 +#: ../source/changelog.md:917 msgid "Version 0.7.16 (2023/05/29)" msgstr "" -#: ../source/changelog.md:864 +#: ../source/changelog.md:921 msgid "PR#358 - Add user preference for filtering of GPX speed data" msgstr "" -#: ../source/changelog.md:869 +#: ../source/changelog.md:926 msgid "#359 - Footer overlaps content on user preferences page" msgstr "" -#: ../source/changelog.md:874 +#: ../source/changelog.md:931 msgid "PR#350 - Translations update from Hosted Weblate (Galician)" msgstr "" -#: ../source/changelog.md:875 +#: ../source/changelog.md:932 msgid "PR#352 - Translations update from Hosted Weblate (Dutch)" msgstr "" -#: ../source/changelog.md:876 +#: ../source/changelog.md:933 msgid "PR#356 - Init Polish translation files" msgstr "" -#: ../source/changelog.md:877 +#: ../source/changelog.md:934 msgid "PR#357 - Translations update from Hosted Weblate (Polish)" msgstr "" -#: ../source/changelog.md:878 +#: ../source/changelog.md:935 msgid "PR#365 - Translations update from Hosted Weblate (Spanish)" msgstr "" -#: ../source/changelog.md:891 +#: ../source/changelog.md:948 msgid "Note: Polish is not yet available in FitTrackee interface." msgstr "" -#: ../source/changelog.md:896 +#: ../source/changelog.md:953 msgid "@gnu-ewm" msgstr "" -#: ../source/changelog.md:903 +#: ../source/changelog.md:960 msgid "Version 0.7.15 (2023/04/12)" msgstr "" -#: ../source/changelog.md:905 +#: ../source/changelog.md:962 msgid "Among enhancements and fixes, FitTrackee is now available in Galician, Spanish and partially in Norwegian Bokmål (see translation status below)." msgstr "" -#: ../source/changelog.md:907 +#: ../source/changelog.md:964 msgid "Note: DarkSky API support is removed, since the service shut down on March 31, 2023." msgstr "" -#: ../source/changelog.md:912 +#: ../source/changelog.md:969 msgid "#319 - Add cli to create users" msgstr "" -#: ../source/changelog.md:913 +#: ../source/changelog.md:970 msgid "#329 - Make \"start elevation axis at zero\" sticky" msgstr "" -#: ../source/changelog.md:914 +#: ../source/changelog.md:971 msgid "#333 - Feature request: filter workouts by title" msgstr "" -#: ../source/changelog.md:915 +#: ../source/changelog.md:972 msgid "#338 - Display relevant error message when
    /i.test(n[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&/^<(pre|code|kbd|script)(\s|>)/i.test(n[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&/^<\/(pre|code|kbd|script)(\s|>)/i.test(n[0])&&(this.lexer.state.inRawBlock=!1),{type:"html",raw:n[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:n[0]}}link(t){const n=this.rules.inline.link.exec(t);if(n){const a=n[2].trim();if(!this.options.pedantic&&/^$/.test(a))return;const i=ti(a.slice(0,-1),"\\");if((a.length-i.length)%2===0)return}else{const i=rWe(n[2],"()");if(i>-1){const u=(n[0].indexOf("!")===0?5:4)+n[1].length+i;n[2]=n[2].substring(0,i),n[0]=n[0].substring(0,u).trim(),n[3]=""}}let s=n[2],r="";if(this.options.pedantic){const i=/^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(s);i&&(s=i[1],r=i[3])}else r=n[3]?n[3].slice(1,-1):"";return s=s.trim(),/^$/.test(a)?s=s.slice(1):s=s.slice(1,-1)),O_(n,{href:s&&s.replace(this.rules.inline.anyPunctuation,"$1"),title:r&&r.replace(this.rules.inline.anyPunctuation,"$1")},n[0],this.lexer)}}reflink(t,n){let a;if((a=this.rules.inline.reflink.exec(t))||(a=this.rules.inline.nolink.exec(t))){const s=(a[2]||a[1]).replace(/\s+/g," "),r=n[s.toLowerCase()];if(!r){const i=a[0].charAt(0);return{type:"text",raw:i,text:i}}return O_(a,r,a[0],this.lexer)}}emStrong(t,n,a=""){let s=this.rules.inline.emStrongLDelim.exec(t);if(!s||s[3]&&a.match(/[\p{L}\p{N}]/u))return;if(!(s[1]||s[2]||"")||!a||this.rules.inline.punctuation.exec(a)){const i=[...s[0]].length-1;let o,u,l=i,c=0;const p=s[0][0]==="*"?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(p.lastIndex=0,n=n.slice(-1*t.length+i);(s=p.exec(n))!=null;){if(o=s[1]||s[2]||s[3]||s[4]||s[5]||s[6],!o)continue;if(u=[...o].length,s[3]||s[4]){l+=u;continue}else if((s[5]||s[6])&&i%3&&!((i+u)%3)){c+=u;continue}if(l-=u,l>0)continue;u=Math.min(u,u+l+c);const d=[...s[0]][0].length,f=t.slice(0,i+s.index+d+u);if(Math.min(i,u)%2){const O=f.slice(1,-1);return{type:"em",raw:f,text:O,tokens:this.lexer.inlineTokens(O)}}const T=f.slice(2,-2);return{type:"strong",raw:f,text:T,tokens:this.lexer.inlineTokens(T)}}}}codespan(t){const n=this.rules.inline.code.exec(t);if(n){let a=n[2].replace(/\n/g," ");const s=/[^ ]/.test(a),r=/^ /.test(a)&&/ $/.test(a);return s&&r&&(a=a.substring(1,a.length-1)),a=Pn(a,!0),{type:"codespan",raw:n[0],text:a}}}br(t){const n=this.rules.inline.br.exec(t);if(n)return{type:"br",raw:n[0]}}del(t){const n=this.rules.inline.del.exec(t);if(n)return{type:"del",raw:n[0],text:n[2],tokens:this.lexer.inlineTokens(n[2])}}autolink(t){const n=this.rules.inline.autolink.exec(t);if(n){let a,s;return n[2]==="@"?(a=Pn(n[1]),s="mailto:"+a):(a=Pn(n[1]),s=a),{type:"link",raw:n[0],text:a,href:s,tokens:[{type:"text",raw:a,text:a}]}}}url(t){var a;let n;if(n=this.rules.inline.url.exec(t)){let s,r;if(n[2]==="@")s=Pn(n[0]),r="mailto:"+s;else{let i;do i=n[0],n[0]=((a=this.rules.inline._backpedal.exec(n[0]))==null?void 0:a[0])??"";while(i!==n[0]);s=Pn(n[0]),n[1]==="www."?r="http://"+n[0]:r=n[0]}return{type:"link",raw:n[0],text:s,href:r,tokens:[{type:"text",raw:s,text:s}]}}}inlineText(t){const n=this.rules.inline.text.exec(t);if(n){let a;return this.lexer.state.inRawBlock?a=n[0]:a=Pn(n[0]),{type:"text",raw:n[0],text:a}}}}const oWe=/^(?:[ \t]*(?:\n|$))+/,uWe=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,lWe=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,To=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,cWe=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,QA=/(?:[*+-]|\d{1,9}[.)])/,ZA=Ot(/^(?!bull |blockCode|fences|blockquote|heading|html)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html))+?)\n {0,3}(=+|-+) *(?:\n+|$)/).replace(/bull/g,QA).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).getRegex(),Bp=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,dWe=/^[^\n]+/,Gp=/(?!\s*\])(?:\\.|[^\[\]\\])+/,EWe=Ot(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",Gp).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),pWe=Ot(/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,QA).getRegex(),tc="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",Hp=/|$))/,fWe=Ot("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|\\n*|$)|\\n*|$)|)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))","i").replace("comment",Hp).replace("tag",tc).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),JA=Ot(Bp).replace("hr",To).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",tc).getRegex(),mWe=Ot(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",JA).getRegex(),Vp={blockquote:mWe,code:uWe,def:EWe,fences:lWe,heading:cWe,hr:To,html:fWe,lheading:ZA,list:pWe,newline:oWe,paragraph:JA,table:Ai,text:dWe},g_=Ot("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",To).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code","(?: {4}| {0,3} )[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",tc).getRegex(),TWe={...Vp,table:g_,paragraph:Ot(Bp).replace("hr",To).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",g_).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",tc).getRegex()},_We={...Vp,html:Ot(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",Hp).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:Ai,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:Ot(Bp).replace("hr",To).replace("heading",` *#{1,6} *[^ +]`).replace("lheading",ZA).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()},eO=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,hWe=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,tO=/^( {2,}|\\)\n(?!\s*$)/,SWe=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\]*?>/g,gWe=Ot(/^(?:\*+(?:((?!\*)[punct])|[^\s*]))|^_+(?:((?!_)[punct])|([^\s_]))/,"u").replace(/punct/g,_o).getRegex(),IWe=Ot("^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)[punct](\\*+)(?=[\\s]|$)|[^punct\\s](\\*+)(?!\\*)(?=[punct\\s]|$)|(?!\\*)[punct\\s](\\*+)(?=[^punct\\s])|[\\s](\\*+)(?!\\*)(?=[punct])|(?!\\*)[punct](\\*+)(?!\\*)(?=[punct])|[^punct\\s](\\*+)(?=[^punct\\s])","gu").replace(/punct/g,_o).getRegex(),RWe=Ot("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)[punct](_+)(?=[\\s]|$)|[^punct\\s](_+)(?!_)(?=[punct\\s]|$)|(?!_)[punct\\s](_+)(?=[^punct\\s])|[\\s](_+)(?!_)(?=[punct])|(?!_)[punct](_+)(?!_)(?=[punct])","gu").replace(/punct/g,_o).getRegex(),NWe=Ot(/\\([punct])/,"gu").replace(/punct/g,_o).getRegex(),bWe=Ot(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email",/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),vWe=Ot(Hp).replace("(?:-->|$)","-->").getRegex(),CWe=Ot("^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^").replace("comment",vWe).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),pl=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,DWe=Ot(/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/).replace("label",pl).replace("href",/<(?:\\.|[^\n<>\\])+>|[^\s\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),nO=Ot(/^!?\[(label)\]\[(ref)\]/).replace("label",pl).replace("ref",Gp).getRegex(),aO=Ot(/^!?\[(ref)\](?:\[\])?/).replace("ref",Gp).getRegex(),PWe=Ot("reflink|nolink(?!\\()","g").replace("reflink",nO).replace("nolink",aO).getRegex(),Kp={_backpedal:Ai,anyPunctuation:NWe,autolink:bWe,blockSkip:OWe,br:tO,code:hWe,del:Ai,emStrongLDelim:gWe,emStrongRDelimAst:IWe,emStrongRDelimUnd:RWe,escape:eO,link:DWe,nolink:aO,punctuation:AWe,reflink:nO,reflinkSearch:PWe,tag:CWe,text:SWe,url:Ai},LWe={...Kp,link:Ot(/^!?\[(label)\]\((.*?)\)/).replace("label",pl).getRegex(),reflink:Ot(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",pl).getRegex()},dE={...Kp,escape:Ot(eO).replace("])","~|])").getRegex(),url:Ot(/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,"i").replace("email",/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])([\s\S]*?[^\s~])\1(?=[^~]|$)/,text:/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\(s=o.call({lexer:this},t,n))?(t=t.substring(s.raw.length),n.push(s),!0):!1))){if(s=this.tokenizer.space(t)){t=t.substring(s.raw.length),s.raw.length===1&&n.length>0?n[n.length-1].raw+=` +`:n.push(s);continue}if(s=this.tokenizer.code(t)){t=t.substring(s.raw.length),r=n[n.length-1],r&&(r.type==="paragraph"||r.type==="text")?(r.raw+=` +`+s.raw,r.text+=` +`+s.text,this.inlineQueue[this.inlineQueue.length-1].src=r.text):n.push(s);continue}if(s=this.tokenizer.fences(t)){t=t.substring(s.raw.length),n.push(s);continue}if(s=this.tokenizer.heading(t)){t=t.substring(s.raw.length),n.push(s);continue}if(s=this.tokenizer.hr(t)){t=t.substring(s.raw.length),n.push(s);continue}if(s=this.tokenizer.blockquote(t)){t=t.substring(s.raw.length),n.push(s);continue}if(s=this.tokenizer.list(t)){t=t.substring(s.raw.length),n.push(s);continue}if(s=this.tokenizer.html(t)){t=t.substring(s.raw.length),n.push(s);continue}if(s=this.tokenizer.def(t)){t=t.substring(s.raw.length),r=n[n.length-1],r&&(r.type==="paragraph"||r.type==="text")?(r.raw+=` +`+s.raw,r.text+=` +`+s.raw,this.inlineQueue[this.inlineQueue.length-1].src=r.text):this.tokens.links[s.tag]||(this.tokens.links[s.tag]={href:s.href,title:s.title});continue}if(s=this.tokenizer.table(t)){t=t.substring(s.raw.length),n.push(s);continue}if(s=this.tokenizer.lheading(t)){t=t.substring(s.raw.length),n.push(s);continue}if(i=t,this.options.extensions&&this.options.extensions.startBlock){let o=1/0;const u=t.slice(1);let l;this.options.extensions.startBlock.forEach(c=>{l=c.call({lexer:this},u),typeof l=="number"&&l>=0&&(o=Math.min(o,l))}),o<1/0&&o>=0&&(i=t.substring(0,o+1))}if(this.state.top&&(s=this.tokenizer.paragraph(i))){r=n[n.length-1],a&&(r==null?void 0:r.type)==="paragraph"?(r.raw+=` +`+s.raw,r.text+=` +`+s.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=r.text):n.push(s),a=i.length!==t.length,t=t.substring(s.raw.length);continue}if(s=this.tokenizer.text(t)){t=t.substring(s.raw.length),r=n[n.length-1],r&&r.type==="text"?(r.raw+=` +`+s.raw,r.text+=` +`+s.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=r.text):n.push(s);continue}if(t){const o="Infinite loop on byte: "+t.charCodeAt(0);if(this.options.silent){console.error(o);break}else throw new Error(o)}}return this.state.top=!0,n}inline(t,n=[]){return this.inlineQueue.push({src:t,tokens:n}),n}inlineTokens(t,n=[]){let a,s,r,i=t,o,u,l;if(this.tokens.links){const c=Object.keys(this.tokens.links);if(c.length>0)for(;(o=this.tokenizer.rules.inline.reflinkSearch.exec(i))!=null;)c.includes(o[0].slice(o[0].lastIndexOf("[")+1,-1))&&(i=i.slice(0,o.index)+"["+"a".repeat(o[0].length-2)+"]"+i.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(o=this.tokenizer.rules.inline.blockSkip.exec(i))!=null;)i=i.slice(0,o.index)+"["+"a".repeat(o[0].length-2)+"]"+i.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);for(;(o=this.tokenizer.rules.inline.anyPunctuation.exec(i))!=null;)i=i.slice(0,o.index)+"++"+i.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);for(;t;)if(u||(l=""),u=!1,!(this.options.extensions&&this.options.extensions.inline&&this.options.extensions.inline.some(c=>(a=c.call({lexer:this},t,n))?(t=t.substring(a.raw.length),n.push(a),!0):!1))){if(a=this.tokenizer.escape(t)){t=t.substring(a.raw.length),n.push(a);continue}if(a=this.tokenizer.tag(t)){t=t.substring(a.raw.length),s=n[n.length-1],s&&a.type==="text"&&s.type==="text"?(s.raw+=a.raw,s.text+=a.text):n.push(a);continue}if(a=this.tokenizer.link(t)){t=t.substring(a.raw.length),n.push(a);continue}if(a=this.tokenizer.reflink(t,this.tokens.links)){t=t.substring(a.raw.length),s=n[n.length-1],s&&a.type==="text"&&s.type==="text"?(s.raw+=a.raw,s.text+=a.text):n.push(a);continue}if(a=this.tokenizer.emStrong(t,i,l)){t=t.substring(a.raw.length),n.push(a);continue}if(a=this.tokenizer.codespan(t)){t=t.substring(a.raw.length),n.push(a);continue}if(a=this.tokenizer.br(t)){t=t.substring(a.raw.length),n.push(a);continue}if(a=this.tokenizer.del(t)){t=t.substring(a.raw.length),n.push(a);continue}if(a=this.tokenizer.autolink(t)){t=t.substring(a.raw.length),n.push(a);continue}if(!this.state.inLink&&(a=this.tokenizer.url(t))){t=t.substring(a.raw.length),n.push(a);continue}if(r=t,this.options.extensions&&this.options.extensions.startInline){let c=1/0;const p=t.slice(1);let d;this.options.extensions.startInline.forEach(f=>{d=f.call({lexer:this},p),typeof d=="number"&&d>=0&&(c=Math.min(c,d))}),c<1/0&&c>=0&&(r=t.substring(0,c+1))}if(a=this.tokenizer.inlineText(r)){t=t.substring(a.raw.length),a.raw.slice(-1)!=="_"&&(l=a.raw.slice(-1)),u=!0,s=n[n.length-1],s&&s.type==="text"?(s.raw+=a.raw,s.text+=a.text):n.push(a);continue}if(t){const c="Infinite loop on byte: "+t.charCodeAt(0);if(this.options.silent){console.error(c);break}else throw new Error(c)}}return n}}class fl{constructor(t){gt(this,"options");gt(this,"parser");this.options=t||Hs}space(t){return""}code({text:t,lang:n,escaped:a}){var i;const s=(i=(n||"").match(/^\S*/))==null?void 0:i[0],r=t.replace(/\n$/,"")+` +`;return s?'
    '+(a?r:Pn(r,!0))+`
    +`:"
    "+(a?r:Pn(r,!0))+`
    +`}blockquote({tokens:t}){return`
    +${this.parser.parse(t)}
    +`}html({text:t}){return t}heading({tokens:t,depth:n}){return`${this.parser.parseInline(t)} +`}hr(t){return`
    +`}list(t){const n=t.ordered,a=t.start;let s="";for(let o=0;o +`+s+" +`}listitem(t){let n="";if(t.task){const a=this.checkbox({checked:!!t.checked});t.loose?t.tokens.length>0&&t.tokens[0].type==="paragraph"?(t.tokens[0].text=a+" "+t.tokens[0].text,t.tokens[0].tokens&&t.tokens[0].tokens.length>0&&t.tokens[0].tokens[0].type==="text"&&(t.tokens[0].tokens[0].text=a+" "+t.tokens[0].tokens[0].text)):t.tokens.unshift({type:"text",raw:a+" ",text:a+" "}):n+=a+" "}return n+=this.parser.parse(t.tokens,!!t.loose),`
  • ${n}
  • +`}checkbox({checked:t}){return"'}paragraph({tokens:t}){return`

    ${this.parser.parseInline(t)}

    +`}table(t){let n="",a="";for(let r=0;r${s}`),` + +`+n+` +`+s+`
    +`}tablerow({text:t}){return` +${t} +`}tablecell(t){const n=this.parser.parseInline(t.tokens),a=t.header?"th":"td";return(t.align?`<${a} align="${t.align}">`:`<${a}>`)+n+` +`}strong({tokens:t}){return`${this.parser.parseInline(t)}`}em({tokens:t}){return`${this.parser.parseInline(t)}`}codespan({text:t}){return`${t}`}br(t){return"
    "}del({tokens:t}){return`${this.parser.parseInline(t)}`}link({href:t,title:n,tokens:a}){const s=this.parser.parseInline(a),r=S_(t);if(r===null)return s;t=r;let i='
    ",i}image({href:t,title:n,text:a}){const s=S_(t);if(s===null)return a;t=s;let r=`${a}{const l=o[u].flat(1/0);a=a.concat(this.walkTokens(l,n))}):o.tokens&&(a=a.concat(this.walkTokens(o.tokens,n)))}}return a}use(...t){const n=this.defaults.extensions||{renderers:{},childTokens:{}};return t.forEach(a=>{const s={...a};if(s.async=this.defaults.async||s.async||!1,a.extensions&&(a.extensions.forEach(r=>{if(!r.name)throw new Error("extension name required");if("renderer"in r){const i=n.renderers[r.name];i?n.renderers[r.name]=function(...o){let u=r.renderer.apply(this,o);return u===!1&&(u=i.apply(this,o)),u}:n.renderers[r.name]=r.renderer}if("tokenizer"in r){if(!r.level||r.level!=="block"&&r.level!=="inline")throw new Error("extension level must be 'block' or 'inline'");const i=n[r.level];i?i.unshift(r.tokenizer):n[r.level]=[r.tokenizer],r.start&&(r.level==="block"?n.startBlock?n.startBlock.push(r.start):n.startBlock=[r.start]:r.level==="inline"&&(n.startInline?n.startInline.push(r.start):n.startInline=[r.start]))}"childTokens"in r&&r.childTokens&&(n.childTokens[r.name]=r.childTokens)}),s.extensions=n),a.renderer){const r=this.defaults.renderer||new fl(this.defaults);for(const i in a.renderer){if(!(i in r))throw new Error(`renderer '${i}' does not exist`);if(["options","parser"].includes(i))continue;const o=i,u=a.renderer[o],l=r[o];r[o]=(...c)=>{let p=u.apply(r,c);return p===!1&&(p=l.apply(r,c)),p||""}}s.renderer=r}if(a.tokenizer){const r=this.defaults.tokenizer||new El(this.defaults);for(const i in a.tokenizer){if(!(i in r))throw new Error(`tokenizer '${i}' does not exist`);if(["options","rules","lexer"].includes(i))continue;const o=i,u=a.tokenizer[o],l=r[o];r[o]=(...c)=>{let p=u.apply(r,c);return p===!1&&(p=l.apply(r,c)),p}}s.tokenizer=r}if(a.hooks){const r=this.defaults.hooks||new Oi;for(const i in a.hooks){if(!(i in r))throw new Error(`hook '${i}' does not exist`);if(["options","block"].includes(i))continue;const o=i,u=a.hooks[o],l=r[o];Oi.passThroughHooks.has(i)?r[o]=c=>{if(this.defaults.async)return Promise.resolve(u.call(r,c)).then(d=>l.call(r,d));const p=u.call(r,c);return l.call(r,p)}:r[o]=(...c)=>{let p=u.apply(r,c);return p===!1&&(p=l.apply(r,c)),p}}s.hooks=r}if(a.walkTokens){const r=this.defaults.walkTokens,i=a.walkTokens;s.walkTokens=function(o){let u=[];return u.push(i.call(this,o)),r&&(u=u.concat(r.call(this,o))),u}}this.defaults={...this.defaults,...s}}),this}setOptions(t){return this.defaults={...this.defaults,...t},this}lexer(t,n){return xn.lex(t,n??this.defaults)}parser(t,n){return Bn.parse(t,n??this.defaults)}parseMarkdown(t){return(a,s)=>{const r={...s},i={...this.defaults,...r},o=this.onError(!!i.silent,!!i.async);if(this.defaults.async===!0&&r.async===!1)return o(new Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise."));if(typeof a>"u"||a===null)return o(new Error("marked(): input parameter is undefined or null"));if(typeof a!="string")return o(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(a)+", string expected"));i.hooks&&(i.hooks.options=i,i.hooks.block=t);const u=i.hooks?i.hooks.provideLexer():t?xn.lex:xn.lexInline,l=i.hooks?i.hooks.provideParser():t?Bn.parse:Bn.parseInline;if(i.async)return Promise.resolve(i.hooks?i.hooks.preprocess(a):a).then(c=>u(c,i)).then(c=>i.hooks?i.hooks.processAllTokens(c):c).then(c=>i.walkTokens?Promise.all(this.walkTokens(c,i.walkTokens)).then(()=>c):c).then(c=>l(c,i)).then(c=>i.hooks?i.hooks.postprocess(c):c).catch(o);try{i.hooks&&(a=i.hooks.preprocess(a));let c=u(a,i);i.hooks&&(c=i.hooks.processAllTokens(c)),i.walkTokens&&this.walkTokens(c,i.walkTokens);let p=l(c,i);return i.hooks&&(p=i.hooks.postprocess(p)),p}catch(c){return o(c)}}}onError(t,n){return a=>{if(a.message+=` +Please report this to https://github.com/markedjs/marked.`,t){const s="

    An error occurred:

    "+Pn(a.message+"",!0)+"
    ";return n?Promise.resolve(s):s}if(n)return Promise.reject(a);throw a}}}const Ws=new $We;function _t(e,t){return Ws.parse(e,t)}_t.options=_t.setOptions=function(e){return Ws.setOptions(e),_t.defaults=Ws.defaults,qA(_t.defaults),_t};_t.getDefaults=xp;_t.defaults=Hs;_t.use=function(...e){return Ws.use(...e),_t.defaults=Ws.defaults,qA(_t.defaults),_t};_t.walkTokens=function(e,t){return Ws.walkTokens(e,t)};_t.parseInline=Ws.parseInline;_t.Parser=Bn;_t.parser=Bn.parse;_t.Renderer=fl;_t.TextRenderer=jp;_t.Lexer=xn;_t.lexer=xn.lex;_t.Tokenizer=El;_t.Hooks=Oi;_t.parse=_t;_t.options;_t.setOptions;_t.use;_t.walkTokens;_t.parseInline;Bn.parse;xn.lex;var sO={},Bi={},qp={},Gi={},Yp={};Object.defineProperty(Yp,"__esModule",{value:!0});Yp.default=new Uint16Array('ᵁ<Õıʊҝջאٵ۞ޢߖࠏ੊ઑඡ๭༉༦჊ረዡᐕᒝᓃᓟᔥ\0\0\0\0\0\0ᕫᛍᦍᰒᷝ὾⁠↰⊍⏀⏻⑂⠤⤒ⴈ⹈⿎〖㊺㘹㞬㣾㨨㩱㫠㬮ࠀEMabcfglmnoprstu\\bfms„‹•˜¦³¹ÈÏlig耻Æ䃆P耻&䀦cute耻Á䃁reve;䄂Āiyx}rc耻Â䃂;䐐r;쀀𝔄rave耻À䃀pha;䎑acr;䄀d;橓Āgp¡on;䄄f;쀀𝔸plyFunction;恡ing耻Å䃅Ācs¾Ãr;쀀𝒜ign;扔ilde耻Ã䃃ml耻Ä䃄ЀaceforsuåûþėĜĢħĪĀcrêòkslash;或Ŷöø;櫧ed;挆y;䐑ƀcrtąċĔause;戵noullis;愬a;䎒r;쀀𝔅pf;쀀𝔹eve;䋘còēmpeq;扎܀HOacdefhilorsuōőŖƀƞƢƵƷƺǜȕɳɸɾcy;䐧PY耻©䂩ƀcpyŝŢźute;䄆Ā;iŧŨ拒talDifferentialD;慅leys;愭ȀaeioƉƎƔƘron;䄌dil耻Ç䃇rc;䄈nint;戰ot;䄊ĀdnƧƭilla;䂸terDot;䂷òſi;䎧rcleȀDMPTLJNjǑǖot;抙inus;抖lus;投imes;抗oĀcsǢǸkwiseContourIntegral;戲eCurlyĀDQȃȏoubleQuote;思uote;怙ȀlnpuȞȨɇɕonĀ;eȥȦ户;橴ƀgitȯȶȺruent;扡nt;戯ourIntegral;戮ĀfrɌɎ;愂oduct;成nterClockwiseContourIntegral;戳oss;樯cr;쀀𝒞pĀ;Cʄʅ拓ap;才րDJSZacefiosʠʬʰʴʸˋ˗ˡ˦̳ҍĀ;oŹʥtrahd;椑cy;䐂cy;䐅cy;䐏ƀgrsʿ˄ˇger;怡r;憡hv;櫤Āayː˕ron;䄎;䐔lĀ;t˝˞戇a;䎔r;쀀𝔇Āaf˫̧Ācm˰̢riticalȀADGT̖̜̀̆cute;䂴oŴ̋̍;䋙bleAcute;䋝rave;䁠ilde;䋜ond;拄ferentialD;慆Ѱ̽\0\0\0͔͂\0Ѕf;쀀𝔻ƀ;DE͈͉͍䂨ot;惜qual;扐blèCDLRUVͣͲ΂ϏϢϸontourIntegraìȹoɴ͹\0\0ͻ»͉nArrow;懓Āeo·ΤftƀARTΐΖΡrrow;懐ightArrow;懔eåˊngĀLRΫτeftĀARγιrrow;柸ightArrow;柺ightArrow;柹ightĀATϘϞrrow;懒ee;抨pɁϩ\0\0ϯrrow;懑ownArrow;懕erticalBar;戥ǹABLRTaВЪаўѿͼrrowƀ;BUНОТ憓ar;椓pArrow;懵reve;䌑eft˒к\0ц\0ѐightVector;楐eeVector;楞ectorĀ;Bљњ憽ar;楖ightǔѧ\0ѱeeVector;楟ectorĀ;BѺѻ懁ar;楗eeĀ;A҆҇护rrow;憧ĀctҒҗr;쀀𝒟rok;䄐ࠀNTacdfglmopqstuxҽӀӄӋӞӢӧӮӵԡԯԶՒ՝ՠեG;䅊H耻Ð䃐cute耻É䃉ƀaiyӒӗӜron;䄚rc耻Ê䃊;䐭ot;䄖r;쀀𝔈rave耻È䃈ement;戈ĀapӺӾcr;䄒tyɓԆ\0\0ԒmallSquare;旻erySmallSquare;斫ĀgpԦԪon;䄘f;쀀𝔼silon;䎕uĀaiԼՉlĀ;TՂՃ橵ilde;扂librium;懌Āci՗՚r;愰m;橳a;䎗ml耻Ë䃋Āipժկsts;戃onentialE;慇ʀcfiosօֈ֍ֲ׌y;䐤r;쀀𝔉lledɓ֗\0\0֣mallSquare;旼erySmallSquare;斪Ͱֺ\0ֿ\0\0ׄf;쀀𝔽All;戀riertrf;愱cò׋؀JTabcdfgorstר׬ׯ׺؀ؒؖ؛؝أ٬ٲcy;䐃耻>䀾mmaĀ;d׷׸䎓;䏜reve;䄞ƀeiy؇،ؐdil;䄢rc;䄜;䐓ot;䄠r;쀀𝔊;拙pf;쀀𝔾eater̀EFGLSTصلَٖٛ٦qualĀ;Lؾؿ扥ess;招ullEqual;执reater;檢ess;扷lantEqual;橾ilde;扳cr;쀀𝒢;扫ЀAacfiosuڅڋږڛڞڪھۊRDcy;䐪Āctڐڔek;䋇;䁞irc;䄤r;愌lbertSpace;愋ǰگ\0ڲf;愍izontalLine;攀Āctۃۅòکrok;䄦mpńېۘownHumðįqual;扏܀EJOacdfgmnostuۺ۾܃܇܎ܚܞܡܨ݄ݸދޏޕcy;䐕lig;䄲cy;䐁cute耻Í䃍Āiyܓܘrc耻Î䃎;䐘ot;䄰r;愑rave耻Ì䃌ƀ;apܠܯܿĀcgܴܷr;䄪inaryI;慈lieóϝǴ݉\0ݢĀ;eݍݎ戬Āgrݓݘral;戫section;拂isibleĀCTݬݲomma;恣imes;恢ƀgptݿރވon;䄮f;쀀𝕀a;䎙cr;愐ilde;䄨ǫޚ\0ޞcy;䐆l耻Ï䃏ʀcfosuެ޷޼߂ߐĀiyޱ޵rc;䄴;䐙r;쀀𝔍pf;쀀𝕁ǣ߇\0ߌr;쀀𝒥rcy;䐈kcy;䐄΀HJacfosߤߨ߽߬߱ࠂࠈcy;䐥cy;䐌ppa;䎚Āey߶߻dil;䄶;䐚r;쀀𝔎pf;쀀𝕂cr;쀀𝒦րJTaceflmostࠥࠩࠬࡐࡣ঳সে্਷ੇcy;䐉耻<䀼ʀcmnpr࠷࠼ࡁࡄࡍute;䄹bda;䎛g;柪lacetrf;愒r;憞ƀaeyࡗ࡜ࡡron;䄽dil;䄻;䐛Āfsࡨ॰tԀACDFRTUVarࡾࢩࢱࣦ࣠ࣼयज़ΐ४Ānrࢃ࢏gleBracket;柨rowƀ;BR࢙࢚࢞憐ar;懤ightArrow;懆eiling;挈oǵࢷ\0ࣃbleBracket;柦nǔࣈ\0࣒eeVector;楡ectorĀ;Bࣛࣜ懃ar;楙loor;挊ightĀAV࣯ࣵrrow;憔ector;楎Āerँगeƀ;AVउऊऐ抣rrow;憤ector;楚iangleƀ;BEतथऩ抲ar;槏qual;抴pƀDTVषूौownVector;楑eeVector;楠ectorĀ;Bॖॗ憿ar;楘ectorĀ;B॥०憼ar;楒ightáΜs̀EFGLSTॾঋকঝঢভqualGreater;拚ullEqual;扦reater;扶ess;檡lantEqual;橽ilde;扲r;쀀𝔏Ā;eঽা拘ftarrow;懚idot;䄿ƀnpw৔ਖਛgȀLRlr৞৷ਂਐeftĀAR০৬rrow;柵ightArrow;柷ightArrow;柶eftĀarγਊightáοightáϊf;쀀𝕃erĀLRਢਬeftArrow;憙ightArrow;憘ƀchtਾੀੂòࡌ;憰rok;䅁;扪Ѐacefiosuਗ਼੝੠੷੼અઋ઎p;椅y;䐜Ādl੥੯iumSpace;恟lintrf;愳r;쀀𝔐nusPlus;戓pf;쀀𝕄cò੶;䎜ҀJacefostuણધભીଔଙඑ඗ඞcy;䐊cute;䅃ƀaey઴હાron;䅇dil;䅅;䐝ƀgswે૰଎ativeƀMTV૓૟૨ediumSpace;怋hiĀcn૦૘ë૙eryThiî૙tedĀGL૸ଆreaterGreateòٳessLesóੈLine;䀊r;쀀𝔑ȀBnptଢନଷ଺reak;恠BreakingSpace;䂠f;愕ڀ;CDEGHLNPRSTV୕ୖ୪୼஡௫ఄ౞಄ದ೘ൡඅ櫬Āou୛୤ngruent;扢pCap;扭oubleVerticalBar;戦ƀlqxஃஊ஛ement;戉ualĀ;Tஒஓ扠ilde;쀀≂̸ists;戄reater΀;EFGLSTஶஷ஽௉௓௘௥扯qual;扱ullEqual;쀀≧̸reater;쀀≫̸ess;批lantEqual;쀀⩾̸ilde;扵umpń௲௽ownHump;쀀≎̸qual;쀀≏̸eĀfsఊధtTriangleƀ;BEచఛడ拪ar;쀀⧏̸qual;括s̀;EGLSTవశ఼ౄోౘ扮qual;扰reater;扸ess;쀀≪̸lantEqual;쀀⩽̸ilde;扴estedĀGL౨౹reaterGreater;쀀⪢̸essLess;쀀⪡̸recedesƀ;ESಒಓಛ技qual;쀀⪯̸lantEqual;拠ĀeiಫಹverseElement;戌ghtTriangleƀ;BEೋೌ೒拫ar;쀀⧐̸qual;拭ĀquೝഌuareSuĀbp೨೹setĀ;E೰ೳ쀀⊏̸qual;拢ersetĀ;Eഃആ쀀⊐̸qual;拣ƀbcpഓതൎsetĀ;Eഛഞ쀀⊂⃒qual;抈ceedsȀ;ESTലള഻െ抁qual;쀀⪰̸lantEqual;拡ilde;쀀≿̸ersetĀ;E൘൛쀀⊃⃒qual;抉ildeȀ;EFT൮൯൵ൿ扁qual;扄ullEqual;扇ilde;扉erticalBar;戤cr;쀀𝒩ilde耻Ñ䃑;䎝܀Eacdfgmoprstuvලෂ෉෕ෛ෠෧෼ขภยา฿ไlig;䅒cute耻Ó䃓Āiy෎ීrc耻Ô䃔;䐞blac;䅐r;쀀𝔒rave耻Ò䃒ƀaei෮ෲ෶cr;䅌ga;䎩cron;䎟pf;쀀𝕆enCurlyĀDQฎบoubleQuote;怜uote;怘;橔Āclวฬr;쀀𝒪ash耻Ø䃘iŬื฼de耻Õ䃕es;樷ml耻Ö䃖erĀBP๋๠Āar๐๓r;怾acĀek๚๜;揞et;掴arenthesis;揜Ҁacfhilors๿ງຊຏຒດຝະ໼rtialD;戂y;䐟r;쀀𝔓i;䎦;䎠usMinus;䂱Āipຢອncareplanåڝf;愙Ȁ;eio຺ູ໠໤檻cedesȀ;EST່້໏໚扺qual;檯lantEqual;扼ilde;找me;怳Ādp໩໮uct;戏ortionĀ;aȥ໹l;戝Āci༁༆r;쀀𝒫;䎨ȀUfos༑༖༛༟OT耻"䀢r;쀀𝔔pf;愚cr;쀀𝒬؀BEacefhiorsu༾གྷཇའཱིྦྷྪྭ႖ႩႴႾarr;椐G耻®䂮ƀcnrཎནབute;䅔g;柫rĀ;tཛྷཝ憠l;椖ƀaeyཧཬཱron;䅘dil;䅖;䐠Ā;vླྀཹ愜erseĀEUྂྙĀlq྇ྎement;戋uilibrium;懋pEquilibrium;楯r»ཹo;䎡ghtЀACDFTUVa࿁࿫࿳ဢဨၛႇϘĀnr࿆࿒gleBracket;柩rowƀ;BL࿜࿝࿡憒ar;懥eftArrow;懄eiling;按oǵ࿹\0စbleBracket;柧nǔည\0နeeVector;楝ectorĀ;Bဝသ懂ar;楕loor;挋Āerိ၃eƀ;AVဵံြ抢rrow;憦ector;楛iangleƀ;BEၐၑၕ抳ar;槐qual;抵pƀDTVၣၮၸownVector;楏eeVector;楜ectorĀ;Bႂႃ憾ar;楔ectorĀ;B႑႒懀ar;楓Āpuႛ႞f;愝ndImplies;楰ightarrow;懛ĀchႹႼr;愛;憱leDelayed;槴ڀHOacfhimoqstuფჱჷჽᄙᄞᅑᅖᅡᅧᆵᆻᆿĀCcჩხHcy;䐩y;䐨FTcy;䐬cute;䅚ʀ;aeiyᄈᄉᄎᄓᄗ檼ron;䅠dil;䅞rc;䅜;䐡r;쀀𝔖ortȀDLRUᄪᄴᄾᅉownArrow»ОeftArrow»࢚ightArrow»࿝pArrow;憑gma;䎣allCircle;战pf;쀀𝕊ɲᅭ\0\0ᅰt;戚areȀ;ISUᅻᅼᆉᆯ斡ntersection;抓uĀbpᆏᆞsetĀ;Eᆗᆘ抏qual;抑ersetĀ;Eᆨᆩ抐qual;抒nion;抔cr;쀀𝒮ar;拆ȀbcmpᇈᇛሉላĀ;sᇍᇎ拐etĀ;Eᇍᇕqual;抆ĀchᇠህeedsȀ;ESTᇭᇮᇴᇿ扻qual;檰lantEqual;扽ilde;承Tháྌ;我ƀ;esሒሓሣ拑rsetĀ;Eሜም抃qual;抇et»ሓրHRSacfhiorsሾቄ቉ቕ቞ቱቶኟዂወዑORN耻Þ䃞ADE;愢ĀHc቎ቒcy;䐋y;䐦Ābuቚቜ;䀉;䎤ƀaeyብቪቯron;䅤dil;䅢;䐢r;쀀𝔗Āeiቻ኉Dzኀ\0ኇefore;戴a;䎘Ācn኎ኘkSpace;쀀  Space;怉ldeȀ;EFTካኬኲኼ戼qual;扃ullEqual;扅ilde;扈pf;쀀𝕋ipleDot;惛Āctዖዛr;쀀𝒯rok;䅦ૡዷጎጚጦ\0ጬጱ\0\0\0\0\0ጸጽ፷ᎅ\0᏿ᐄᐊᐐĀcrዻጁute耻Ú䃚rĀ;oጇገ憟cir;楉rǣጓ\0጖y;䐎ve;䅬Āiyጞጣrc耻Û䃛;䐣blac;䅰r;쀀𝔘rave耻Ù䃙acr;䅪Ādiፁ፩erĀBPፈ፝Āarፍፐr;䁟acĀekፗፙ;揟et;掵arenthesis;揝onĀ;P፰፱拃lus;抎Āgp፻፿on;䅲f;쀀𝕌ЀADETadps᎕ᎮᎸᏄϨᏒᏗᏳrrowƀ;BDᅐᎠᎤar;椒ownArrow;懅ownArrow;憕quilibrium;楮eeĀ;AᏋᏌ报rrow;憥ownáϳerĀLRᏞᏨeftArrow;憖ightArrow;憗iĀ;lᏹᏺ䏒on;䎥ing;䅮cr;쀀𝒰ilde;䅨ml耻Ü䃜ҀDbcdefosvᐧᐬᐰᐳᐾᒅᒊᒐᒖash;披ar;櫫y;䐒ashĀ;lᐻᐼ抩;櫦Āerᑃᑅ;拁ƀbtyᑌᑐᑺar;怖Ā;iᑏᑕcalȀBLSTᑡᑥᑪᑴar;戣ine;䁼eparator;杘ilde;所ThinSpace;怊r;쀀𝔙pf;쀀𝕍cr;쀀𝒱dash;抪ʀcefosᒧᒬᒱᒶᒼirc;䅴dge;拀r;쀀𝔚pf;쀀𝕎cr;쀀𝒲Ȁfiosᓋᓐᓒᓘr;쀀𝔛;䎞pf;쀀𝕏cr;쀀𝒳ҀAIUacfosuᓱᓵᓹᓽᔄᔏᔔᔚᔠcy;䐯cy;䐇cy;䐮cute耻Ý䃝Āiyᔉᔍrc;䅶;䐫r;쀀𝔜pf;쀀𝕐cr;쀀𝒴ml;䅸ЀHacdefosᔵᔹᔿᕋᕏᕝᕠᕤcy;䐖cute;䅹Āayᕄᕉron;䅽;䐗ot;䅻Dzᕔ\0ᕛoWidtè૙a;䎖r;愨pf;愤cr;쀀𝒵௡ᖃᖊᖐ\0ᖰᖶᖿ\0\0\0\0ᗆᗛᗫᙟ᙭\0ᚕ᚛ᚲᚹ\0ᚾcute耻á䃡reve;䄃̀;Ediuyᖜᖝᖡᖣᖨᖭ戾;쀀∾̳;房rc耻â䃢te肻´̆;䐰lig耻æ䃦Ā;r²ᖺ;쀀𝔞rave耻à䃠ĀepᗊᗖĀfpᗏᗔsym;愵èᗓha;䎱ĀapᗟcĀclᗤᗧr;䄁g;樿ɤᗰ\0\0ᘊʀ;adsvᗺᗻᗿᘁᘇ戧nd;橕;橜lope;橘;橚΀;elmrszᘘᘙᘛᘞᘿᙏᙙ戠;榤e»ᘙsdĀ;aᘥᘦ戡ѡᘰᘲᘴᘶᘸᘺᘼᘾ;榨;榩;榪;榫;榬;榭;榮;榯tĀ;vᙅᙆ戟bĀ;dᙌᙍ抾;榝Āptᙔᙗh;戢»¹arr;捼Āgpᙣᙧon;䄅f;쀀𝕒΀;Eaeiop዁ᙻᙽᚂᚄᚇᚊ;橰cir;橯;扊d;手s;䀧roxĀ;e዁ᚒñᚃing耻å䃥ƀctyᚡᚦᚨr;쀀𝒶;䀪mpĀ;e዁ᚯñʈilde耻ã䃣ml耻ä䃤Āciᛂᛈoninôɲnt;樑ࠀNabcdefiklnoprsu᛭ᛱᜰ᜼ᝃᝈ᝸᝽០៦ᠹᡐᜍ᤽᥈ᥰot;櫭Ācrᛶ᜞kȀcepsᜀᜅᜍᜓong;扌psilon;䏶rime;怵imĀ;e᜚᜛戽q;拍Ŷᜢᜦee;抽edĀ;gᜬᜭ挅e»ᜭrkĀ;t፜᜷brk;掶Āoyᜁᝁ;䐱quo;怞ʀcmprtᝓ᝛ᝡᝤᝨausĀ;eĊĉptyv;榰séᜌnoõēƀahwᝯ᝱ᝳ;䎲;愶een;扬r;쀀𝔟g΀costuvwឍឝឳេ៕៛៞ƀaiuបពរðݠrc;旯p»፱ƀdptឤឨឭot;樀lus;樁imes;樂ɱឹ\0\0ើcup;樆ar;昅riangleĀdu៍្own;施p;斳plus;樄eåᑄåᒭarow;植ƀako៭ᠦᠵĀcn៲ᠣkƀlst៺֫᠂ozenge;槫riangleȀ;dlr᠒᠓᠘᠝斴own;斾eft;旂ight;斸k;搣Ʊᠫ\0ᠳƲᠯ\0ᠱ;斒;斑4;斓ck;斈ĀeoᠾᡍĀ;qᡃᡆ쀀=⃥uiv;쀀≡⃥t;挐Ȁptwxᡙᡞᡧᡬf;쀀𝕓Ā;tᏋᡣom»Ꮜtie;拈؀DHUVbdhmptuvᢅᢖᢪᢻᣗᣛᣬ᣿ᤅᤊᤐᤡȀLRlrᢎᢐᢒᢔ;敗;敔;敖;敓ʀ;DUduᢡᢢᢤᢦᢨ敐;敦;敩;敤;敧ȀLRlrᢳᢵᢷᢹ;敝;敚;敜;教΀;HLRhlrᣊᣋᣍᣏᣑᣓᣕ救;敬;散;敠;敫;敢;敟ox;槉ȀLRlrᣤᣦᣨᣪ;敕;敒;攐;攌ʀ;DUduڽ᣷᣹᣻᣽;敥;敨;攬;攴inus;抟lus;択imes;抠ȀLRlrᤙᤛᤝ᤟;敛;敘;攘;攔΀;HLRhlrᤰᤱᤳᤵᤷ᤻᤹攂;敪;敡;敞;攼;攤;攜Āevģ᥂bar耻¦䂦Ȁceioᥑᥖᥚᥠr;쀀𝒷mi;恏mĀ;e᜚᜜lƀ;bhᥨᥩᥫ䁜;槅sub;柈Ŭᥴ᥾lĀ;e᥹᥺怢t»᥺pƀ;Eeįᦅᦇ;檮Ā;qۜۛೡᦧ\0᧨ᨑᨕᨲ\0ᨷᩐ\0\0᪴\0\0᫁\0\0ᬡᬮ᭍᭒\0᯽\0ᰌƀcpr᦭ᦲ᧝ute;䄇̀;abcdsᦿᧀᧄ᧊᧕᧙戩nd;橄rcup;橉Āau᧏᧒p;橋p;橇ot;橀;쀀∩︀Āeo᧢᧥t;恁îړȀaeiu᧰᧻ᨁᨅǰ᧵\0᧸s;橍on;䄍dil耻ç䃧rc;䄉psĀ;sᨌᨍ橌m;橐ot;䄋ƀdmnᨛᨠᨦil肻¸ƭptyv;榲t脀¢;eᨭᨮ䂢räƲr;쀀𝔠ƀceiᨽᩀᩍy;䑇ckĀ;mᩇᩈ朓ark»ᩈ;䏇r΀;Ecefms᩟᩠ᩢᩫ᪤᪪᪮旋;槃ƀ;elᩩᩪᩭ䋆q;扗eɡᩴ\0\0᪈rrowĀlr᩼᪁eft;憺ight;憻ʀRSacd᪒᪔᪖᪚᪟»ཇ;擈st;抛irc;抚ash;抝nint;樐id;櫯cir;槂ubsĀ;u᪻᪼晣it»᪼ˬ᫇᫔᫺\0ᬊonĀ;eᫍᫎ䀺Ā;qÇÆɭ᫙\0\0᫢aĀ;t᫞᫟䀬;䁀ƀ;fl᫨᫩᫫戁îᅠeĀmx᫱᫶ent»᫩eóɍǧ᫾\0ᬇĀ;dኻᬂot;橭nôɆƀfryᬐᬔᬗ;쀀𝕔oäɔ脀©;sŕᬝr;愗Āaoᬥᬩrr;憵ss;朗Ācuᬲᬷr;쀀𝒸Ābpᬼ᭄Ā;eᭁᭂ櫏;櫑Ā;eᭉᭊ櫐;櫒dot;拯΀delprvw᭠᭬᭷ᮂᮬᯔ᯹arrĀlr᭨᭪;椸;椵ɰ᭲\0\0᭵r;拞c;拟arrĀ;p᭿ᮀ憶;椽̀;bcdosᮏᮐᮖᮡᮥᮨ截rcap;橈Āauᮛᮞp;橆p;橊ot;抍r;橅;쀀∪︀Ȁalrv᮵ᮿᯞᯣrrĀ;mᮼᮽ憷;椼yƀevwᯇᯔᯘqɰᯎ\0\0ᯒreã᭳uã᭵ee;拎edge;拏en耻¤䂤earrowĀlrᯮ᯳eft»ᮀight»ᮽeäᯝĀciᰁᰇoninôǷnt;戱lcty;挭ঀAHabcdefhijlorstuwz᰸᰻᰿ᱝᱩᱵᲊᲞᲬᲷ᳻᳿ᴍᵻᶑᶫᶻ᷆᷍rò΁ar;楥Ȁglrs᱈ᱍ᱒᱔ger;怠eth;愸òᄳhĀ;vᱚᱛ怐»ऊūᱡᱧarow;椏aã̕Āayᱮᱳron;䄏;䐴ƀ;ao̲ᱼᲄĀgrʿᲁr;懊tseq;橷ƀglmᲑᲔᲘ耻°䂰ta;䎴ptyv;榱ĀirᲣᲨsht;楿;쀀𝔡arĀlrᲳᲵ»ࣜ»သʀaegsv᳂͸᳖᳜᳠mƀ;oș᳊᳔ndĀ;ș᳑uit;晦amma;䏝in;拲ƀ;io᳧᳨᳸䃷de脀÷;o᳧ᳰntimes;拇nø᳷cy;䑒cɯᴆ\0\0ᴊrn;挞op;挍ʀlptuwᴘᴝᴢᵉᵕlar;䀤f;쀀𝕕ʀ;emps̋ᴭᴷᴽᵂqĀ;d͒ᴳot;扑inus;戸lus;戔quare;抡blebarwedgåúnƀadhᄮᵝᵧownarrowóᲃarpoonĀlrᵲᵶefôᲴighôᲶŢᵿᶅkaro÷གɯᶊ\0\0ᶎrn;挟op;挌ƀcotᶘᶣᶦĀryᶝᶡ;쀀𝒹;䑕l;槶rok;䄑Ādrᶰᶴot;拱iĀ;fᶺ᠖斿Āah᷀᷃ròЩaòྦangle;榦Āci᷒ᷕy;䑟grarr;柿ऀDacdefglmnopqrstuxḁḉḙḸոḼṉṡṾấắẽỡἪἷὄ὎὚ĀDoḆᴴoôᲉĀcsḎḔute耻é䃩ter;橮ȀaioyḢḧḱḶron;䄛rĀ;cḭḮ扖耻ê䃪lon;払;䑍ot;䄗ĀDrṁṅot;扒;쀀𝔢ƀ;rsṐṑṗ檚ave耻è䃨Ā;dṜṝ檖ot;檘Ȁ;ilsṪṫṲṴ檙nters;揧;愓Ā;dṹṺ檕ot;檗ƀapsẅẉẗcr;䄓tyƀ;svẒẓẕ戅et»ẓpĀ1;ẝẤijạả;怄;怅怃ĀgsẪẬ;䅋p;怂ĀgpẴẸon;䄙f;쀀𝕖ƀalsỄỎỒrĀ;sỊị拕l;槣us;橱iƀ;lvỚớở䎵on»ớ;䏵ȀcsuvỪỳἋἣĀioữḱrc»Ḯɩỹ\0\0ỻíՈantĀglἂἆtr»ṝess»Ṻƀaeiἒ἖Ἒls;䀽st;扟vĀ;DȵἠD;橸parsl;槥ĀDaἯἳot;打rr;楱ƀcdiἾὁỸr;愯oô͒ĀahὉὋ;䎷耻ð䃰Āmrὓὗl耻ë䃫o;悬ƀcipὡὤὧl;䀡sôծĀeoὬὴctatioîՙnentialåչৡᾒ\0ᾞ\0ᾡᾧ\0\0ῆῌ\0ΐ\0ῦῪ \0 ⁚llingdotseñṄy;䑄male;晀ƀilrᾭᾳ῁lig;耀ffiɩᾹ\0\0᾽g;耀ffig;耀ffl;쀀𝔣lig;耀filig;쀀fjƀaltῙ῜ῡt;晭ig;耀flns;斱of;䆒ǰ΅\0ῳf;쀀𝕗ĀakֿῷĀ;vῼ´拔;櫙artint;樍Āao‌⁕Ācs‑⁒ႉ‸⁅⁈\0⁐β•‥‧‪‬\0‮耻½䂽;慓耻¼䂼;慕;慙;慛Ƴ‴\0‶;慔;慖ʴ‾⁁\0\0⁃耻¾䂾;慗;慜5;慘ƶ⁌\0⁎;慚;慝8;慞l;恄wn;挢cr;쀀𝒻ࢀEabcdefgijlnorstv₂₉₟₥₰₴⃰⃵⃺⃿℃ℒℸ̗ℾ⅒↞Ā;lٍ₇;檌ƀcmpₐₕ₝ute;䇵maĀ;dₜ᳚䎳;檆reve;䄟Āiy₪₮rc;䄝;䐳ot;䄡Ȁ;lqsؾق₽⃉ƀ;qsؾٌ⃄lanô٥Ȁ;cdl٥⃒⃥⃕c;檩otĀ;o⃜⃝檀Ā;l⃢⃣檂;檄Ā;e⃪⃭쀀⋛︀s;檔r;쀀𝔤Ā;gٳ؛mel;愷cy;䑓Ȁ;Eajٚℌℎℐ;檒;檥;檤ȀEaesℛℝ℩ℴ;扩pĀ;p℣ℤ檊rox»ℤĀ;q℮ℯ檈Ā;q℮ℛim;拧pf;쀀𝕘Āci⅃ⅆr;愊mƀ;el٫ⅎ⅐;檎;檐茀>;cdlqr׮ⅠⅪⅮⅳⅹĀciⅥⅧ;檧r;橺ot;拗Par;榕uest;橼ʀadelsↄⅪ←ٖ↛ǰ↉\0↎proø₞r;楸qĀlqؿ↖lesó₈ií٫Āen↣↭rtneqq;쀀≩︀Å↪ԀAabcefkosy⇄⇇⇱⇵⇺∘∝∯≨≽ròΠȀilmr⇐⇔⇗⇛rsðᒄf»․ilôکĀdr⇠⇤cy;䑊ƀ;cwࣴ⇫⇯ir;楈;憭ar;意irc;䄥ƀalr∁∎∓rtsĀ;u∉∊晥it»∊lip;怦con;抹r;쀀𝔥sĀew∣∩arow;椥arow;椦ʀamopr∺∾≃≞≣rr;懿tht;戻kĀlr≉≓eftarrow;憩ightarrow;憪f;쀀𝕙bar;怕ƀclt≯≴≸r;쀀𝒽asè⇴rok;䄧Ābp⊂⊇ull;恃hen»ᱛૡ⊣\0⊪\0⊸⋅⋎\0⋕⋳\0\0⋸⌢⍧⍢⍿\0⎆⎪⎴cute耻í䃭ƀ;iyݱ⊰⊵rc耻î䃮;䐸Ācx⊼⊿y;䐵cl耻¡䂡ĀfrΟ⋉;쀀𝔦rave耻ì䃬Ȁ;inoܾ⋝⋩⋮Āin⋢⋦nt;樌t;戭fin;槜ta;愩lig;䄳ƀaop⋾⌚⌝ƀcgt⌅⌈⌗r;䄫ƀelpܟ⌏⌓inåގarôܠh;䄱f;抷ed;䆵ʀ;cfotӴ⌬⌱⌽⍁are;愅inĀ;t⌸⌹戞ie;槝doô⌙ʀ;celpݗ⍌⍐⍛⍡al;抺Āgr⍕⍙eróᕣã⍍arhk;樗rod;樼Ȁcgpt⍯⍲⍶⍻y;䑑on;䄯f;쀀𝕚a;䎹uest耻¿䂿Āci⎊⎏r;쀀𝒾nʀ;EdsvӴ⎛⎝⎡ӳ;拹ot;拵Ā;v⎦⎧拴;拳Ā;iݷ⎮lde;䄩ǫ⎸\0⎼cy;䑖l耻ï䃯̀cfmosu⏌⏗⏜⏡⏧⏵Āiy⏑⏕rc;䄵;䐹r;쀀𝔧ath;䈷pf;쀀𝕛ǣ⏬\0⏱r;쀀𝒿rcy;䑘kcy;䑔Ѐacfghjos␋␖␢␧␭␱␵␻ppaĀ;v␓␔䎺;䏰Āey␛␠dil;䄷;䐺r;쀀𝔨reen;䄸cy;䑅cy;䑜pf;쀀𝕜cr;쀀𝓀஀ABEHabcdefghjlmnoprstuv⑰⒁⒆⒍⒑┎┽╚▀♎♞♥♹♽⚚⚲⛘❝❨➋⟀⠁⠒ƀart⑷⑺⑼rò৆òΕail;椛arr;椎Ā;gঔ⒋;檋ar;楢ॣ⒥\0⒪\0⒱\0\0\0\0\0⒵Ⓔ\0ⓆⓈⓍ\0⓹ute;䄺mptyv;榴raîࡌbda;䎻gƀ;dlࢎⓁⓃ;榑åࢎ;檅uo耻«䂫rЀ;bfhlpst࢙ⓞⓦⓩ⓫⓮⓱⓵Ā;f࢝ⓣs;椟s;椝ë≒p;憫l;椹im;楳l;憢ƀ;ae⓿─┄檫il;椙Ā;s┉┊檭;쀀⪭︀ƀabr┕┙┝rr;椌rk;杲Āak┢┬cĀek┨┪;䁻;䁛Āes┱┳;榋lĀdu┹┻;榏;榍Ȁaeuy╆╋╖╘ron;䄾Ādi═╔il;䄼ìࢰâ┩;䐻Ȁcqrs╣╦╭╽a;椶uoĀ;rนᝆĀdu╲╷har;楧shar;楋h;憲ʀ;fgqs▋▌উ◳◿扤tʀahlrt▘▤▷◂◨rrowĀ;t࢙□aé⓶arpoonĀdu▯▴own»њp»०eftarrows;懇ightƀahs◍◖◞rrowĀ;sࣴࢧarpoonó྘quigarro÷⇰hreetimes;拋ƀ;qs▋ও◺lanôবʀ;cdgsব☊☍☝☨c;檨otĀ;o☔☕橿Ā;r☚☛檁;檃Ā;e☢☥쀀⋚︀s;檓ʀadegs☳☹☽♉♋pproøⓆot;拖qĀgq♃♅ôউgtò⒌ôছiíলƀilr♕࣡♚sht;楼;쀀𝔩Ā;Eজ♣;檑š♩♶rĀdu▲♮Ā;l॥♳;楪lk;斄cy;䑙ʀ;achtੈ⚈⚋⚑⚖rò◁orneòᴈard;楫ri;旺Āio⚟⚤dot;䅀ustĀ;a⚬⚭掰che»⚭ȀEaes⚻⚽⛉⛔;扨pĀ;p⛃⛄檉rox»⛄Ā;q⛎⛏檇Ā;q⛎⚻im;拦Ѐabnoptwz⛩⛴⛷✚✯❁❇❐Ānr⛮⛱g;柬r;懽rëࣁgƀlmr⛿✍✔eftĀar০✇ightá৲apsto;柼ightá৽parrowĀlr✥✩efô⓭ight;憬ƀafl✶✹✽r;榅;쀀𝕝us;樭imes;樴š❋❏st;戗áፎƀ;ef❗❘᠀旊nge»❘arĀ;l❤❥䀨t;榓ʀachmt❳❶❼➅➇ròࢨorneòᶌarĀ;d྘➃;業;怎ri;抿̀achiqt➘➝ੀ➢➮➻quo;怹r;쀀𝓁mƀ;egল➪➬;檍;檏Ābu┪➳oĀ;rฟ➹;怚rok;䅂萀<;cdhilqrࠫ⟒☹⟜⟠⟥⟪⟰Āci⟗⟙;檦r;橹reå◲mes;拉arr;楶uest;橻ĀPi⟵⟹ar;榖ƀ;ef⠀भ᠛旃rĀdu⠇⠍shar;楊har;楦Āen⠗⠡rtneqq;쀀≨︀Å⠞܀Dacdefhilnopsu⡀⡅⢂⢎⢓⢠⢥⢨⣚⣢⣤ઃ⣳⤂Dot;戺Ȁclpr⡎⡒⡣⡽r耻¯䂯Āet⡗⡙;時Ā;e⡞⡟朠se»⡟Ā;sျ⡨toȀ;dluျ⡳⡷⡻owîҌefôएðᏑker;斮Āoy⢇⢌mma;権;䐼ash;怔asuredangle»ᘦr;쀀𝔪o;愧ƀcdn⢯⢴⣉ro耻µ䂵Ȁ;acdᑤ⢽⣀⣄sôᚧir;櫰ot肻·Ƶusƀ;bd⣒ᤃ⣓戒Ā;uᴼ⣘;横ţ⣞⣡p;櫛ò−ðઁĀdp⣩⣮els;抧f;쀀𝕞Āct⣸⣽r;쀀𝓂pos»ᖝƀ;lm⤉⤊⤍䎼timap;抸ఀGLRVabcdefghijlmoprstuvw⥂⥓⥾⦉⦘⧚⧩⨕⨚⩘⩝⪃⪕⪤⪨⬄⬇⭄⭿⮮ⰴⱧⱼ⳩Āgt⥇⥋;쀀⋙̸Ā;v⥐௏쀀≫⃒ƀelt⥚⥲⥶ftĀar⥡⥧rrow;懍ightarrow;懎;쀀⋘̸Ā;v⥻ే쀀≪⃒ightarrow;懏ĀDd⦎⦓ash;抯ash;抮ʀbcnpt⦣⦧⦬⦱⧌la»˞ute;䅄g;쀀∠⃒ʀ;Eiop඄⦼⧀⧅⧈;쀀⩰̸d;쀀≋̸s;䅉roø඄urĀ;a⧓⧔普lĀ;s⧓ସdz⧟\0⧣p肻 ଷmpĀ;e௹ఀʀaeouy⧴⧾⨃⨐⨓ǰ⧹\0⧻;橃on;䅈dil;䅆ngĀ;dൾ⨊ot;쀀⩭̸p;橂;䐽ash;怓΀;Aadqsxஒ⨩⨭⨻⩁⩅⩐rr;懗rĀhr⨳⨶k;椤Ā;oᏲᏰot;쀀≐̸uiöୣĀei⩊⩎ar;椨í஘istĀ;s஠டr;쀀𝔫ȀEest௅⩦⩹⩼ƀ;qs஼⩭௡ƀ;qs஼௅⩴lanô௢ií௪Ā;rஶ⪁»ஷƀAap⪊⪍⪑rò⥱rr;憮ar;櫲ƀ;svྍ⪜ྌĀ;d⪡⪢拼;拺cy;䑚΀AEadest⪷⪺⪾⫂⫅⫶⫹rò⥦;쀀≦̸rr;憚r;急Ȁ;fqs఻⫎⫣⫯tĀar⫔⫙rro÷⫁ightarro÷⪐ƀ;qs఻⪺⫪lanôౕĀ;sౕ⫴»శiíౝĀ;rవ⫾iĀ;eచథiäඐĀpt⬌⬑f;쀀𝕟膀¬;in⬙⬚⬶䂬nȀ;Edvஉ⬤⬨⬮;쀀⋹̸ot;쀀⋵̸ǡஉ⬳⬵;拷;拶iĀ;vಸ⬼ǡಸ⭁⭃;拾;拽ƀaor⭋⭣⭩rȀ;ast୻⭕⭚⭟lleì୻l;쀀⫽⃥;쀀∂̸lint;樔ƀ;ceಒ⭰⭳uåಥĀ;cಘ⭸Ā;eಒ⭽ñಘȀAait⮈⮋⮝⮧rò⦈rrƀ;cw⮔⮕⮙憛;쀀⤳̸;쀀↝̸ghtarrow»⮕riĀ;eೋೖ΀chimpqu⮽⯍⯙⬄୸⯤⯯Ȁ;cerല⯆ഷ⯉uå൅;쀀𝓃ortɭ⬅\0\0⯖ará⭖mĀ;e൮⯟Ā;q൴൳suĀbp⯫⯭å೸åഋƀbcp⯶ⰑⰙȀ;Ees⯿ⰀഢⰄ抄;쀀⫅̸etĀ;eഛⰋqĀ;qണⰀcĀ;eലⰗñസȀ;EesⰢⰣൟⰧ抅;쀀⫆̸etĀ;e൘ⰮqĀ;qൠⰣȀgilrⰽⰿⱅⱇìௗlde耻ñ䃱çృiangleĀlrⱒⱜeftĀ;eచⱚñదightĀ;eೋⱥñ೗Ā;mⱬⱭ䎽ƀ;esⱴⱵⱹ䀣ro;愖p;怇ҀDHadgilrsⲏⲔⲙⲞⲣⲰⲶⳓⳣash;抭arr;椄p;쀀≍⃒ash;抬ĀetⲨⲬ;쀀≥⃒;쀀>⃒nfin;槞ƀAetⲽⳁⳅrr;椂;쀀≤⃒Ā;rⳊⳍ쀀<⃒ie;쀀⊴⃒ĀAtⳘⳜrr;椃rie;쀀⊵⃒im;쀀∼⃒ƀAan⳰⳴ⴂrr;懖rĀhr⳺⳽k;椣Ā;oᏧᏥear;椧ቓ᪕\0\0\0\0\0\0\0\0\0\0\0\0\0ⴭ\0ⴸⵈⵠⵥ⵲ⶄᬇ\0\0ⶍⶫ\0ⷈⷎ\0ⷜ⸙⸫⸾⹃Ācsⴱ᪗ute耻ó䃳ĀiyⴼⵅrĀ;c᪞ⵂ耻ô䃴;䐾ʀabios᪠ⵒⵗLjⵚlac;䅑v;樸old;榼lig;䅓Ācr⵩⵭ir;榿;쀀𝔬ͯ⵹\0\0⵼\0ⶂn;䋛ave耻ò䃲;槁Ābmⶈ෴ar;榵Ȁacitⶕ⶘ⶥⶨrò᪀Āir⶝ⶠr;榾oss;榻nå๒;槀ƀaeiⶱⶵⶹcr;䅍ga;䏉ƀcdnⷀⷅǍron;䎿;榶pf;쀀𝕠ƀaelⷔ⷗ǒr;榷rp;榹΀;adiosvⷪⷫⷮ⸈⸍⸐⸖戨rò᪆Ȁ;efmⷷⷸ⸂⸅橝rĀ;oⷾⷿ愴f»ⷿ耻ª䂪耻º䂺gof;抶r;橖lope;橗;橛ƀclo⸟⸡⸧ò⸁ash耻ø䃸l;折iŬⸯ⸴de耻õ䃵esĀ;aǛ⸺s;樶ml耻ö䃶bar;挽ૡ⹞\0⹽\0⺀⺝\0⺢⺹\0\0⻋ຜ\0⼓\0\0⼫⾼\0⿈rȀ;astЃ⹧⹲຅脀¶;l⹭⹮䂶leìЃɩ⹸\0\0⹻m;櫳;櫽y;䐿rʀcimpt⺋⺏⺓ᡥ⺗nt;䀥od;䀮il;怰enk;怱r;쀀𝔭ƀimo⺨⺰⺴Ā;v⺭⺮䏆;䏕maô੶ne;明ƀ;tv⺿⻀⻈䏀chfork»´;䏖Āau⻏⻟nĀck⻕⻝kĀ;h⇴⻛;愎ö⇴sҀ;abcdemst⻳⻴ᤈ⻹⻽⼄⼆⼊⼎䀫cir;樣ir;樢Āouᵀ⼂;樥;橲n肻±ຝim;樦wo;樧ƀipu⼙⼠⼥ntint;樕f;쀀𝕡nd耻£䂣Ԁ;Eaceinosu່⼿⽁⽄⽇⾁⾉⾒⽾⾶;檳p;檷uå໙Ā;c໎⽌̀;acens່⽙⽟⽦⽨⽾pproø⽃urlyeñ໙ñ໎ƀaes⽯⽶⽺pprox;檹qq;檵im;拨iíໟmeĀ;s⾈ຮ怲ƀEas⽸⾐⽺ð⽵ƀdfp໬⾙⾯ƀals⾠⾥⾪lar;挮ine;挒urf;挓Ā;t໻⾴ï໻rel;抰Āci⿀⿅r;쀀𝓅;䏈ncsp;怈̀fiopsu⿚⋢⿟⿥⿫⿱r;쀀𝔮pf;쀀𝕢rime;恗cr;쀀𝓆ƀaeo⿸〉〓tĀei⿾々rnionóڰnt;樖stĀ;e【】䀿ñἙô༔઀ABHabcdefhilmnoprstux぀けさすムㄎㄫㅇㅢㅲㆎ㈆㈕㈤㈩㉘㉮㉲㊐㊰㊷ƀartぇおがròႳòϝail;検aròᱥar;楤΀cdenqrtとふへみわゔヌĀeuねぱ;쀀∽̱te;䅕iãᅮmptyv;榳gȀ;del࿑らるろ;榒;榥å࿑uo耻»䂻rր;abcfhlpstw࿜ガクシスゼゾダッデナp;極Ā;f࿠ゴs;椠;椳s;椞ë≝ð✮l;楅im;楴l;憣;憝Āaiパフil;椚oĀ;nホボ戶aló༞ƀabrョリヮrò៥rk;杳ĀakンヽcĀekヹ・;䁽;䁝Āes㄂㄄;榌lĀduㄊㄌ;榎;榐Ȁaeuyㄗㄜㄧㄩron;䅙Ādiㄡㄥil;䅗ì࿲âヺ;䑀Ȁclqsㄴㄷㄽㅄa;椷dhar;楩uoĀ;rȎȍh;憳ƀacgㅎㅟངlȀ;ipsླྀㅘㅛႜnåႻarôྩt;断ƀilrㅩဣㅮsht;楽;쀀𝔯ĀaoㅷㆆrĀduㅽㅿ»ѻĀ;l႑ㆄ;楬Ā;vㆋㆌ䏁;䏱ƀgns㆕ㇹㇼht̀ahlrstㆤㆰ㇂㇘㇤㇮rrowĀ;t࿜ㆭaéトarpoonĀduㆻㆿowîㅾp»႒eftĀah㇊㇐rrowó࿪arpoonóՑightarrows;應quigarro÷ニhreetimes;拌g;䋚ingdotseñἲƀahm㈍㈐㈓rò࿪aòՑ;怏oustĀ;a㈞㈟掱che»㈟mid;櫮Ȁabpt㈲㈽㉀㉒Ānr㈷㈺g;柭r;懾rëဃƀafl㉇㉊㉎r;榆;쀀𝕣us;樮imes;樵Āap㉝㉧rĀ;g㉣㉤䀩t;榔olint;樒arò㇣Ȁachq㉻㊀Ⴜ㊅quo;怺r;쀀𝓇Ābu・㊊oĀ;rȔȓƀhir㊗㊛㊠reåㇸmes;拊iȀ;efl㊪ၙᠡ㊫方tri;槎luhar;楨;愞ൡ㋕㋛㋟㌬㌸㍱\0㍺㎤\0\0㏬㏰\0㐨㑈㑚㒭㒱㓊㓱\0㘖\0\0㘳cute;䅛quï➺Ԁ;Eaceinpsyᇭ㋳㋵㋿㌂㌋㌏㌟㌦㌩;檴ǰ㋺\0㋼;檸on;䅡uåᇾĀ;dᇳ㌇il;䅟rc;䅝ƀEas㌖㌘㌛;檶p;檺im;择olint;樓iíሄ;䑁otƀ;be㌴ᵇ㌵担;橦΀Aacmstx㍆㍊㍗㍛㍞㍣㍭rr;懘rĀhr㍐㍒ë∨Ā;oਸ਼਴t耻§䂧i;䀻war;椩mĀin㍩ðnuóñt;朶rĀ;o㍶⁕쀀𝔰Ȁacoy㎂㎆㎑㎠rp;景Āhy㎋㎏cy;䑉;䑈rtɭ㎙\0\0㎜iäᑤaraì⹯耻­䂭Āgm㎨㎴maƀ;fv㎱㎲㎲䏃;䏂Ѐ;deglnprካ㏅㏉㏎㏖㏞㏡㏦ot;橪Ā;q኱ኰĀ;E㏓㏔檞;檠Ā;E㏛㏜檝;檟e;扆lus;樤arr;楲aròᄽȀaeit㏸㐈㐏㐗Āls㏽㐄lsetmé㍪hp;樳parsl;槤Ādlᑣ㐔e;挣Ā;e㐜㐝檪Ā;s㐢㐣檬;쀀⪬︀ƀflp㐮㐳㑂tcy;䑌Ā;b㐸㐹䀯Ā;a㐾㐿槄r;挿f;쀀𝕤aĀdr㑍ЂesĀ;u㑔㑕晠it»㑕ƀcsu㑠㑹㒟Āau㑥㑯pĀ;sᆈ㑫;쀀⊓︀pĀ;sᆴ㑵;쀀⊔︀uĀbp㑿㒏ƀ;esᆗᆜ㒆etĀ;eᆗ㒍ñᆝƀ;esᆨᆭ㒖etĀ;eᆨ㒝ñᆮƀ;afᅻ㒦ְrť㒫ֱ»ᅼaròᅈȀcemt㒹㒾㓂㓅r;쀀𝓈tmîñiì㐕aræᆾĀar㓎㓕rĀ;f㓔ឿ昆Āan㓚㓭ightĀep㓣㓪psiloîỠhé⺯s»⡒ʀbcmnp㓻㕞ሉ㖋㖎Ҁ;Edemnprs㔎㔏㔑㔕㔞㔣㔬㔱㔶抂;櫅ot;檽Ā;dᇚ㔚ot;櫃ult;櫁ĀEe㔨㔪;櫋;把lus;檿arr;楹ƀeiu㔽㕒㕕tƀ;en㔎㕅㕋qĀ;qᇚ㔏eqĀ;q㔫㔨m;櫇Ābp㕚㕜;櫕;櫓c̀;acensᇭ㕬㕲㕹㕻㌦pproø㋺urlyeñᇾñᇳƀaes㖂㖈㌛pproø㌚qñ㌗g;晪ڀ123;Edehlmnps㖩㖬㖯ሜ㖲㖴㗀㗉㗕㗚㗟㗨㗭耻¹䂹耻²䂲耻³䂳;櫆Āos㖹㖼t;檾ub;櫘Ā;dሢ㗅ot;櫄sĀou㗏㗒l;柉b;櫗arr;楻ult;櫂ĀEe㗤㗦;櫌;抋lus;櫀ƀeiu㗴㘉㘌tƀ;enሜ㗼㘂qĀ;qሢ㖲eqĀ;q㗧㗤m;櫈Ābp㘑㘓;櫔;櫖ƀAan㘜㘠㘭rr;懙rĀhr㘦㘨ë∮Ā;oਫ਩war;椪lig耻ß䃟௡㙑㙝㙠ዎ㙳㙹\0㙾㛂\0\0\0\0\0㛛㜃\0㜉㝬\0\0\0㞇ɲ㙖\0\0㙛get;挖;䏄rë๟ƀaey㙦㙫㙰ron;䅥dil;䅣;䑂lrec;挕r;쀀𝔱Ȁeiko㚆㚝㚵㚼Dz㚋\0㚑eĀ4fኄኁaƀ;sv㚘㚙㚛䎸ym;䏑Ācn㚢㚲kĀas㚨㚮pproø዁im»ኬsðኞĀas㚺㚮ð዁rn耻þ䃾Ǭ̟㛆⋧es膀×;bd㛏㛐㛘䃗Ā;aᤏ㛕r;樱;樰ƀeps㛡㛣㜀á⩍Ȁ;bcf҆㛬㛰㛴ot;挶ir;櫱Ā;o㛹㛼쀀𝕥rk;櫚á㍢rime;怴ƀaip㜏㜒㝤dåቈ΀adempst㜡㝍㝀㝑㝗㝜㝟ngleʀ;dlqr㜰㜱㜶㝀㝂斵own»ᶻeftĀ;e⠀㜾ñम;扜ightĀ;e㊪㝋ñၚot;旬inus;樺lus;樹b;槍ime;樻ezium;揢ƀcht㝲㝽㞁Āry㝷㝻;쀀𝓉;䑆cy;䑛rok;䅧Āio㞋㞎xô᝷headĀlr㞗㞠eftarro÷ࡏightarrow»ཝऀAHabcdfghlmoprstuw㟐㟓㟗㟤㟰㟼㠎㠜㠣㠴㡑㡝㡫㢩㣌㣒㣪㣶ròϭar;楣Ācr㟜㟢ute耻ú䃺òᅐrǣ㟪\0㟭y;䑞ve;䅭Āiy㟵㟺rc耻û䃻;䑃ƀabh㠃㠆㠋ròᎭlac;䅱aòᏃĀir㠓㠘sht;楾;쀀𝔲rave耻ù䃹š㠧㠱rĀlr㠬㠮»ॗ»ႃlk;斀Āct㠹㡍ɯ㠿\0\0㡊rnĀ;e㡅㡆挜r»㡆op;挏ri;旸Āal㡖㡚cr;䅫肻¨͉Āgp㡢㡦on;䅳f;쀀𝕦̀adhlsuᅋ㡸㡽፲㢑㢠ownáᎳarpoonĀlr㢈㢌efô㠭ighô㠯iƀ;hl㢙㢚㢜䏅»ᏺon»㢚parrows;懈ƀcit㢰㣄㣈ɯ㢶\0\0㣁rnĀ;e㢼㢽挝r»㢽op;挎ng;䅯ri;旹cr;쀀𝓊ƀdir㣙㣝㣢ot;拰lde;䅩iĀ;f㜰㣨»᠓Āam㣯㣲rò㢨l耻ü䃼angle;榧ހABDacdeflnoprsz㤜㤟㤩㤭㦵㦸㦽㧟㧤㧨㧳㧹㧽㨁㨠ròϷarĀ;v㤦㤧櫨;櫩asèϡĀnr㤲㤷grt;榜΀eknprst㓣㥆㥋㥒㥝㥤㦖appá␕othinçẖƀhir㓫⻈㥙opô⾵Ā;hᎷ㥢ïㆍĀiu㥩㥭gmá㎳Ābp㥲㦄setneqĀ;q㥽㦀쀀⊊︀;쀀⫋︀setneqĀ;q㦏㦒쀀⊋︀;쀀⫌︀Āhr㦛㦟etá㚜iangleĀlr㦪㦯eft»थight»ၑy;䐲ash»ံƀelr㧄㧒㧗ƀ;beⷪ㧋㧏ar;抻q;扚lip;拮Ābt㧜ᑨaòᑩr;쀀𝔳tré㦮suĀbp㧯㧱»ജ»൙pf;쀀𝕧roð໻tré㦴Ācu㨆㨋r;쀀𝓋Ābp㨐㨘nĀEe㦀㨖»㥾nĀEe㦒㨞»㦐igzag;榚΀cefoprs㨶㨻㩖㩛㩔㩡㩪irc;䅵Ādi㩀㩑Ābg㩅㩉ar;機eĀ;qᗺ㩏;扙erp;愘r;쀀𝔴pf;쀀𝕨Ā;eᑹ㩦atèᑹcr;쀀𝓌ૣណ㪇\0㪋\0㪐㪛\0\0㪝㪨㪫㪯\0\0㫃㫎\0㫘ៜ៟tré៑r;쀀𝔵ĀAa㪔㪗ròσrò৶;䎾ĀAa㪡㪤ròθrò৫að✓is;拻ƀdptឤ㪵㪾Āfl㪺ឩ;쀀𝕩imåឲĀAa㫇㫊ròώròਁĀcq㫒ីr;쀀𝓍Āpt៖㫜ré។Ѐacefiosu㫰㫽㬈㬌㬑㬕㬛㬡cĀuy㫶㫻te耻ý䃽;䑏Āiy㬂㬆rc;䅷;䑋n耻¥䂥r;쀀𝔶cy;䑗pf;쀀𝕪cr;쀀𝓎Ācm㬦㬩y;䑎l耻ÿ䃿Ԁacdefhiosw㭂㭈㭔㭘㭤㭩㭭㭴㭺㮀cute;䅺Āay㭍㭒ron;䅾;䐷ot;䅼Āet㭝㭡træᕟa;䎶r;쀀𝔷cy;䐶grarr;懝pf;쀀𝕫cr;쀀𝓏Ājn㮅㮇;怍j;怌'.split("").map(function(e){return e.charCodeAt(0)}));var Xp={};Object.defineProperty(Xp,"__esModule",{value:!0});Xp.default=new Uint16Array("Ȁaglq \x1Bɭ\0\0p;䀦os;䀧t;䀾t;䀼uot;䀢".split("").map(function(e){return e.charCodeAt(0)}));var EE={};(function(e){var t;Object.defineProperty(e,"__esModule",{value:!0}),e.replaceCodePoint=e.fromCodePoint=void 0;var n=new Map([[0,65533],[128,8364],[130,8218],[131,402],[132,8222],[133,8230],[134,8224],[135,8225],[136,710],[137,8240],[138,352],[139,8249],[140,338],[142,381],[145,8216],[146,8217],[147,8220],[148,8221],[149,8226],[150,8211],[151,8212],[152,732],[153,8482],[154,353],[155,8250],[156,339],[158,382],[159,376]]);e.fromCodePoint=(t=String.fromCodePoint)!==null&&t!==void 0?t:function(r){var i="";return r>65535&&(r-=65536,i+=String.fromCharCode(r>>>10&1023|55296),r=56320|r&1023),i+=String.fromCharCode(r),i};function a(r){var i;return r>=55296&&r<=57343||r>1114111?65533:(i=n.get(r))!==null&&i!==void 0?i:r}e.replaceCodePoint=a;function s(r){return(0,e.fromCodePoint)(a(r))}e.default=s})(EE);(function(e){var t=He&&He.__createBinding||(Object.create?function($,z,Y,se){se===void 0&&(se=Y);var B=Object.getOwnPropertyDescriptor(z,Y);(!B||("get"in B?!z.__esModule:B.writable||B.configurable))&&(B={enumerable:!0,get:function(){return z[Y]}}),Object.defineProperty($,se,B)}:function($,z,Y,se){se===void 0&&(se=Y),$[se]=z[Y]}),n=He&&He.__setModuleDefault||(Object.create?function($,z){Object.defineProperty($,"default",{enumerable:!0,value:z})}:function($,z){$.default=z}),a=He&&He.__importStar||function($){if($&&$.__esModule)return $;var z={};if($!=null)for(var Y in $)Y!=="default"&&Object.prototype.hasOwnProperty.call($,Y)&&t(z,$,Y);return n(z,$),z},s=He&&He.__importDefault||function($){return $&&$.__esModule?$:{default:$}};Object.defineProperty(e,"__esModule",{value:!0}),e.decodeXML=e.decodeHTMLStrict=e.decodeHTMLAttribute=e.decodeHTML=e.determineBranch=e.EntityDecoder=e.DecodingMode=e.BinTrieFlags=e.fromCodePoint=e.replaceCodePoint=e.decodeCodePoint=e.xmlDecodeTree=e.htmlDecodeTree=void 0;var r=s(Yp);e.htmlDecodeTree=r.default;var i=s(Xp);e.xmlDecodeTree=i.default;var o=a(EE);e.decodeCodePoint=o.default;var u=EE;Object.defineProperty(e,"replaceCodePoint",{enumerable:!0,get:function(){return u.replaceCodePoint}}),Object.defineProperty(e,"fromCodePoint",{enumerable:!0,get:function(){return u.fromCodePoint}});var l;(function($){$[$.NUM=35]="NUM",$[$.SEMI=59]="SEMI",$[$.EQUALS=61]="EQUALS",$[$.ZERO=48]="ZERO",$[$.NINE=57]="NINE",$[$.LOWER_A=97]="LOWER_A",$[$.LOWER_F=102]="LOWER_F",$[$.LOWER_X=120]="LOWER_X",$[$.LOWER_Z=122]="LOWER_Z",$[$.UPPER_A=65]="UPPER_A",$[$.UPPER_F=70]="UPPER_F",$[$.UPPER_Z=90]="UPPER_Z"})(l||(l={}));var c=32,p;(function($){$[$.VALUE_LENGTH=49152]="VALUE_LENGTH",$[$.BRANCH_LENGTH=16256]="BRANCH_LENGTH",$[$.JUMP_TABLE=127]="JUMP_TABLE"})(p=e.BinTrieFlags||(e.BinTrieFlags={}));function d($){return $>=l.ZERO&&$<=l.NINE}function f($){return $>=l.UPPER_A&&$<=l.UPPER_F||$>=l.LOWER_A&&$<=l.LOWER_F}function T($){return $>=l.UPPER_A&&$<=l.UPPER_Z||$>=l.LOWER_A&&$<=l.LOWER_Z||d($)}function O($){return $===l.EQUALS||T($)}var R;(function($){$[$.EntityStart=0]="EntityStart",$[$.NumericStart=1]="NumericStart",$[$.NumericDecimal=2]="NumericDecimal",$[$.NumericHex=3]="NumericHex",$[$.NamedEntity=4]="NamedEntity"})(R||(R={}));var g;(function($){$[$.Legacy=0]="Legacy",$[$.Strict=1]="Strict",$[$.Attribute=2]="Attribute"})(g=e.DecodingMode||(e.DecodingMode={}));var N=function(){function $(z,Y,se){this.decodeTree=z,this.emitCodePoint=Y,this.errors=se,this.state=R.EntityStart,this.consumed=1,this.result=0,this.treeIndex=0,this.excess=1,this.decodeMode=g.Strict}return $.prototype.startEntity=function(z){this.decodeMode=z,this.state=R.EntityStart,this.result=0,this.treeIndex=0,this.excess=1,this.consumed=1},$.prototype.write=function(z,Y){switch(this.state){case R.EntityStart:return z.charCodeAt(Y)===l.NUM?(this.state=R.NumericStart,this.consumed+=1,this.stateNumericStart(z,Y+1)):(this.state=R.NamedEntity,this.stateNamedEntity(z,Y));case R.NumericStart:return this.stateNumericStart(z,Y);case R.NumericDecimal:return this.stateNumericDecimal(z,Y);case R.NumericHex:return this.stateNumericHex(z,Y);case R.NamedEntity:return this.stateNamedEntity(z,Y)}},$.prototype.stateNumericStart=function(z,Y){return Y>=z.length?-1:(z.charCodeAt(Y)|c)===l.LOWER_X?(this.state=R.NumericHex,this.consumed+=1,this.stateNumericHex(z,Y+1)):(this.state=R.NumericDecimal,this.stateNumericDecimal(z,Y))},$.prototype.addToNumericResult=function(z,Y,se,B){if(Y!==se){var Q=se-Y;this.result=this.result*Math.pow(B,Q)+parseInt(z.substr(Y,Q),B),this.consumed+=Q}},$.prototype.stateNumericHex=function(z,Y){for(var se=Y;Y>14;Y>14,Q!==0){if(q===l.SEMI)return this.emitNamedEntityData(this.treeIndex,Q,this.consumed+this.excess);this.decodeMode!==g.Strict&&(this.result=this.treeIndex,this.consumed+=this.excess,this.excess=0)}}return-1},$.prototype.emitNotTerminatedNamedEntity=function(){var z,Y=this,se=Y.result,B=Y.decodeTree,Q=(B[se]&p.VALUE_LENGTH)>>14;return this.emitNamedEntityData(se,Q,this.consumed),(z=this.errors)===null||z===void 0||z.missingSemicolonAfterCharacterReference(),this.consumed},$.prototype.emitNamedEntityData=function(z,Y,se){var B=this.decodeTree;return this.emitCodePoint(Y===1?B[z]&~p.VALUE_LENGTH:B[z+1],se),Y===3&&this.emitCodePoint(B[z+2],se),se},$.prototype.end=function(){var z;switch(this.state){case R.NamedEntity:return this.result!==0&&(this.decodeMode!==g.Attribute||this.result===this.treeIndex)?this.emitNotTerminatedNamedEntity():0;case R.NumericDecimal:return this.emitNumericEntity(0,2);case R.NumericHex:return this.emitNumericEntity(0,3);case R.NumericStart:return(z=this.errors)===null||z===void 0||z.absenceOfDigitsInNumericCharacterReference(this.consumed),0;case R.EntityStart:return 0}},$}();e.EntityDecoder=N;function S($){var z="",Y=new N($,function(se){return z+=(0,o.fromCodePoint)(se)});return function(B,Q){for(var q=0,oe=0;(oe=B.indexOf("&",oe))>=0;){z+=B.slice(q,oe),Y.startEntity(Q);var Z=Y.write(B,oe+1);if(Z<0){q=oe+Y.end();break}q=oe+Z,oe=Z===0?q+1:q}var Ne=z+B.slice(q);return z="",Ne}}function A($,z,Y,se){var B=(z&p.BRANCH_LENGTH)>>7,Q=z&p.JUMP_TABLE;if(B===0)return Q!==0&&se===Q?Y:-1;if(Q){var q=se-Q;return q<0||q>=B?-1:$[Y+q]-1}for(var oe=Y,Z=oe+B-1;oe<=Z;){var Ne=oe+Z>>>1,ye=$[Ne];if(yese)Z=Ne-1;else return $[Ne+B]}return-1}e.determineBranch=A;var b=S(r.default),y=S(i.default);function P($,z){return z===void 0&&(z=g.Legacy),b($,z)}e.decodeHTML=P;function C($){return b($,g.Attribute)}e.decodeHTMLAttribute=C;function D($){return b($,g.Strict)}e.decodeHTMLStrict=D;function F($){return y($,g.Strict)}e.decodeXML=F})(Gi);(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.QuoteType=void 0;var t=Gi,n;(function(d){d[d.Tab=9]="Tab",d[d.NewLine=10]="NewLine",d[d.FormFeed=12]="FormFeed",d[d.CarriageReturn=13]="CarriageReturn",d[d.Space=32]="Space",d[d.ExclamationMark=33]="ExclamationMark",d[d.Number=35]="Number",d[d.Amp=38]="Amp",d[d.SingleQuote=39]="SingleQuote",d[d.DoubleQuote=34]="DoubleQuote",d[d.Dash=45]="Dash",d[d.Slash=47]="Slash",d[d.Zero=48]="Zero",d[d.Nine=57]="Nine",d[d.Semi=59]="Semi",d[d.Lt=60]="Lt",d[d.Eq=61]="Eq",d[d.Gt=62]="Gt",d[d.Questionmark=63]="Questionmark",d[d.UpperA=65]="UpperA",d[d.LowerA=97]="LowerA",d[d.UpperF=70]="UpperF",d[d.LowerF=102]="LowerF",d[d.UpperZ=90]="UpperZ",d[d.LowerZ=122]="LowerZ",d[d.LowerX=120]="LowerX",d[d.OpeningSquareBracket=91]="OpeningSquareBracket"})(n||(n={}));var a;(function(d){d[d.Text=1]="Text",d[d.BeforeTagName=2]="BeforeTagName",d[d.InTagName=3]="InTagName",d[d.InSelfClosingTag=4]="InSelfClosingTag",d[d.BeforeClosingTagName=5]="BeforeClosingTagName",d[d.InClosingTagName=6]="InClosingTagName",d[d.AfterClosingTagName=7]="AfterClosingTagName",d[d.BeforeAttributeName=8]="BeforeAttributeName",d[d.InAttributeName=9]="InAttributeName",d[d.AfterAttributeName=10]="AfterAttributeName",d[d.BeforeAttributeValue=11]="BeforeAttributeValue",d[d.InAttributeValueDq=12]="InAttributeValueDq",d[d.InAttributeValueSq=13]="InAttributeValueSq",d[d.InAttributeValueNq=14]="InAttributeValueNq",d[d.BeforeDeclaration=15]="BeforeDeclaration",d[d.InDeclaration=16]="InDeclaration",d[d.InProcessingInstruction=17]="InProcessingInstruction",d[d.BeforeComment=18]="BeforeComment",d[d.CDATASequence=19]="CDATASequence",d[d.InSpecialComment=20]="InSpecialComment",d[d.InCommentLike=21]="InCommentLike",d[d.BeforeSpecialS=22]="BeforeSpecialS",d[d.SpecialStartSequence=23]="SpecialStartSequence",d[d.InSpecialTag=24]="InSpecialTag",d[d.BeforeEntity=25]="BeforeEntity",d[d.BeforeNumericEntity=26]="BeforeNumericEntity",d[d.InNamedEntity=27]="InNamedEntity",d[d.InNumericEntity=28]="InNumericEntity",d[d.InHexEntity=29]="InHexEntity"})(a||(a={}));function s(d){return d===n.Space||d===n.NewLine||d===n.Tab||d===n.FormFeed||d===n.CarriageReturn}function r(d){return d===n.Slash||d===n.Gt||s(d)}function i(d){return d>=n.Zero&&d<=n.Nine}function o(d){return d>=n.LowerA&&d<=n.LowerZ||d>=n.UpperA&&d<=n.UpperZ}function u(d){return d>=n.UpperA&&d<=n.UpperF||d>=n.LowerA&&d<=n.LowerF}var l;(function(d){d[d.NoValue=0]="NoValue",d[d.Unquoted=1]="Unquoted",d[d.Single=2]="Single",d[d.Double=3]="Double"})(l=e.QuoteType||(e.QuoteType={}));var c={Cdata:new Uint8Array([67,68,65,84,65,91]),CdataEnd:new Uint8Array([93,93,62]),CommentEnd:new Uint8Array([45,45,62]),ScriptEnd:new Uint8Array([60,47,115,99,114,105,112,116]),StyleEnd:new Uint8Array([60,47,115,116,121,108,101]),TitleEnd:new Uint8Array([60,47,116,105,116,108,101])},p=function(){function d(f,T){var O=f.xmlMode,R=O===void 0?!1:O,g=f.decodeEntities,N=g===void 0?!0:g;this.cbs=T,this.state=a.Text,this.buffer="",this.sectionStart=0,this.index=0,this.baseState=a.Text,this.isSpecial=!1,this.running=!0,this.offset=0,this.currentSequence=void 0,this.sequenceIndex=0,this.trieIndex=0,this.trieCurrent=0,this.entityResult=0,this.entityExcess=0,this.xmlMode=R,this.decodeEntities=N,this.entityTrie=R?t.xmlDecodeTree:t.htmlDecodeTree}return d.prototype.reset=function(){this.state=a.Text,this.buffer="",this.sectionStart=0,this.index=0,this.baseState=a.Text,this.currentSequence=void 0,this.running=!0,this.offset=0},d.prototype.write=function(f){this.offset+=this.buffer.length,this.buffer=f,this.parse()},d.prototype.end=function(){this.running&&this.finish()},d.prototype.pause=function(){this.running=!1},d.prototype.resume=function(){this.running=!0,this.indexthis.sectionStart&&this.cbs.ontext(this.sectionStart,this.index),this.state=a.BeforeTagName,this.sectionStart=this.index):this.decodeEntities&&f===n.Amp&&(this.state=a.BeforeEntity)},d.prototype.stateSpecialStartSequence=function(f){var T=this.sequenceIndex===this.currentSequence.length,O=T?r(f):(f|32)===this.currentSequence[this.sequenceIndex];if(!O)this.isSpecial=!1;else if(!T){this.sequenceIndex++;return}this.sequenceIndex=0,this.state=a.InTagName,this.stateInTagName(f)},d.prototype.stateInSpecialTag=function(f){if(this.sequenceIndex===this.currentSequence.length){if(f===n.Gt||s(f)){var T=this.index-this.currentSequence.length;if(this.sectionStart>14)-1;if(!this.allowLegacyEntity()&&f!==n.Semi)this.trieIndex+=O;else{var R=this.index-this.entityExcess+1;R>this.sectionStart&&this.emitPartial(this.sectionStart,R),this.entityResult=this.trieIndex,this.trieIndex+=O,this.entityExcess=0,this.sectionStart=this.index+1,O===0&&this.emitNamedEntity()}}},d.prototype.emitNamedEntity=function(){if(this.state=this.baseState,this.entityResult!==0){var f=(this.entityTrie[this.entityResult]&t.BinTrieFlags.VALUE_LENGTH)>>14;switch(f){case 1:{this.emitCodePoint(this.entityTrie[this.entityResult]&~t.BinTrieFlags.VALUE_LENGTH);break}case 2:{this.emitCodePoint(this.entityTrie[this.entityResult+1]);break}case 3:this.emitCodePoint(this.entityTrie[this.entityResult+1]),this.emitCodePoint(this.entityTrie[this.entityResult+2])}}},d.prototype.stateBeforeNumericEntity=function(f){(f|32)===n.LowerX?(this.entityExcess++,this.state=a.InHexEntity):(this.state=a.InNumericEntity,this.stateInNumericEntity(f))},d.prototype.emitNumericEntity=function(f){var T=this.index-this.entityExcess-1,O=T+2+ +(this.state===a.InHexEntity);O!==this.index&&(T>this.sectionStart&&this.emitPartial(this.sectionStart,T),this.sectionStart=this.index+Number(f),this.emitCodePoint((0,t.replaceCodePoint)(this.entityResult))),this.state=this.baseState},d.prototype.stateInNumericEntity=function(f){f===n.Semi?this.emitNumericEntity(!0):i(f)?(this.entityResult=this.entityResult*10+(f-n.Zero),this.entityExcess++):(this.allowLegacyEntity()?this.emitNumericEntity(!1):this.state=this.baseState,this.index--)},d.prototype.stateInHexEntity=function(f){f===n.Semi?this.emitNumericEntity(!0):i(f)?(this.entityResult=this.entityResult*16+(f-n.Zero),this.entityExcess++):u(f)?(this.entityResult=this.entityResult*16+((f|32)-n.LowerA+10),this.entityExcess++):(this.allowLegacyEntity()?this.emitNumericEntity(!1):this.state=this.baseState,this.index--)},d.prototype.allowLegacyEntity=function(){return!this.xmlMode&&(this.baseState===a.Text||this.baseState===a.InSpecialTag)},d.prototype.cleanup=function(){this.running&&this.sectionStart!==this.index&&(this.state===a.Text||this.state===a.InSpecialTag&&this.sequenceIndex===0?(this.cbs.ontext(this.sectionStart,this.index),this.sectionStart=this.index):(this.state===a.InAttributeValueDq||this.state===a.InAttributeValueSq||this.state===a.InAttributeValueNq)&&(this.cbs.onattribdata(this.sectionStart,this.index),this.sectionStart=this.index))},d.prototype.shouldContinue=function(){return this.index0&&i.has(this.stack[this.stack.length-1]);){var o=this.stack.pop();(a=(n=this.cbs).onclosetag)===null||a===void 0||a.call(n,o,!0)}this.isVoidElement(t)||(this.stack.push(t),v_.has(t)?this.foreignContext.push(!0):C_.has(t)&&this.foreignContext.push(!1)),(r=(s=this.cbs).onopentagname)===null||r===void 0||r.call(s,t),this.cbs.onopentag&&(this.attribs={})},e.prototype.endOpenTag=function(t){var n,a;this.startIndex=this.openTagStart,this.attribs&&((a=(n=this.cbs).onopentag)===null||a===void 0||a.call(n,this.tagname,this.attribs,t),this.attribs=null),this.cbs.onclosetag&&this.isVoidElement(this.tagname)&&this.cbs.onclosetag(this.tagname,!0),this.tagname=""},e.prototype.onopentagend=function(t){this.endIndex=t,this.endOpenTag(!1),this.startIndex=t+1},e.prototype.onclosetag=function(t,n){var a,s,r,i,o,u;this.endIndex=n;var l=this.getSlice(t,n);if(this.lowerCaseTagNames&&(l=l.toLowerCase()),(v_.has(l)||C_.has(l))&&this.foreignContext.pop(),this.isVoidElement(l))!this.options.xmlMode&&l==="br"&&((s=(a=this.cbs).onopentagname)===null||s===void 0||s.call(a,"br"),(i=(r=this.cbs).onopentag)===null||i===void 0||i.call(r,"br",{},!0),(u=(o=this.cbs).onclosetag)===null||u===void 0||u.call(o,"br",!1));else{var c=this.stack.lastIndexOf(l);if(c!==-1)if(this.cbs.onclosetag)for(var p=this.stack.length-c;p--;)this.cbs.onclosetag(this.stack.pop(),p!==0);else this.stack.length=c;else!this.options.xmlMode&&l==="p"&&(this.emitOpenTag("p"),this.closeCurrentTag(!0))}this.startIndex=n+1},e.prototype.onselfclosingtag=function(t){this.endIndex=t,this.options.xmlMode||this.options.recognizeSelfClosing||this.foreignContext[this.foreignContext.length-1]?(this.closeCurrentTag(!1),this.startIndex=t+1):this.onopentagend(t)},e.prototype.closeCurrentTag=function(t){var n,a,s=this.tagname;this.endOpenTag(t),this.stack[this.stack.length-1]===s&&((a=(n=this.cbs).onclosetag)===null||a===void 0||a.call(n,s,!t),this.stack.pop())},e.prototype.onattribname=function(t,n){this.startIndex=t;var a=this.getSlice(t,n);this.attribname=this.lowerCaseAttributeNames?a.toLowerCase():a},e.prototype.onattribdata=function(t,n){this.attribvalue+=this.getSlice(t,n)},e.prototype.onattribentity=function(t){this.attribvalue+=(0,I_.fromCodePoint)(t)},e.prototype.onattribend=function(t,n){var a,s;this.endIndex=n,(s=(a=this.cbs).onattribute)===null||s===void 0||s.call(a,this.attribname,this.attribvalue,t===Fo.QuoteType.Double?'"':t===Fo.QuoteType.Single?"'":t===Fo.QuoteType.NoValue?void 0:null),this.attribs&&!Object.prototype.hasOwnProperty.call(this.attribs,this.attribname)&&(this.attribs[this.attribname]=this.attribvalue),this.attribvalue=""},e.prototype.getInstructionName=function(t){var n=t.search(zWe),a=n<0?t:t.substr(0,n);return this.lowerCaseTagNames&&(a=a.toLowerCase()),a},e.prototype.ondeclaration=function(t,n){this.endIndex=n;var a=this.getSlice(t,n);if(this.cbs.onprocessinginstruction){var s=this.getInstructionName(a);this.cbs.onprocessinginstruction("!".concat(s),"!".concat(a))}this.startIndex=n+1},e.prototype.onprocessinginstruction=function(t,n){this.endIndex=n;var a=this.getSlice(t,n);if(this.cbs.onprocessinginstruction){var s=this.getInstructionName(a);this.cbs.onprocessinginstruction("?".concat(s),"?".concat(a))}this.startIndex=n+1},e.prototype.oncomment=function(t,n,a){var s,r,i,o;this.endIndex=n,(r=(s=this.cbs).oncomment)===null||r===void 0||r.call(s,this.getSlice(t,n-a)),(o=(i=this.cbs).oncommentend)===null||o===void 0||o.call(i),this.startIndex=n+1},e.prototype.oncdata=function(t,n,a){var s,r,i,o,u,l,c,p,d,f;this.endIndex=n;var T=this.getSlice(t,n-a);this.options.xmlMode||this.options.recognizeCDATA?((r=(s=this.cbs).oncdatastart)===null||r===void 0||r.call(s),(o=(i=this.cbs).ontext)===null||o===void 0||o.call(i,T),(l=(u=this.cbs).oncdataend)===null||l===void 0||l.call(u)):((p=(c=this.cbs).oncomment)===null||p===void 0||p.call(c,"[CDATA[".concat(T,"]]")),(f=(d=this.cbs).oncommentend)===null||f===void 0||f.call(d)),this.startIndex=n+1},e.prototype.onend=function(){var t,n;if(this.cbs.onclosetag){this.endIndex=this.startIndex;for(var a=this.stack.length;a>0;this.cbs.onclosetag(this.stack[--a],!0));}(n=(t=this.cbs).onend)===null||n===void 0||n.call(t)},e.prototype.reset=function(){var t,n,a,s;(n=(t=this.cbs).onreset)===null||n===void 0||n.call(t),this.tokenizer.reset(),this.tagname="",this.attribname="",this.attribs=null,this.stack.length=0,this.startIndex=0,this.endIndex=0,(s=(a=this.cbs).onparserinit)===null||s===void 0||s.call(a,this),this.buffers.length=0,this.bufferOffset=0,this.writeIndex=0,this.ended=!1},e.prototype.parseComplete=function(t){this.reset(),this.end(t)},e.prototype.getSlice=function(t,n){for(;t-this.bufferOffset>=this.buffers[0].length;)this.shiftBuffer();for(var a=this.buffers[0].slice(t-this.bufferOffset,n-this.bufferOffset);n-this.bufferOffset>this.buffers[0].length;)this.shiftBuffer(),a+=this.buffers[0].slice(0,n-this.bufferOffset);return a},e.prototype.shiftBuffer=function(){this.bufferOffset+=this.buffers[0].length,this.writeIndex--,this.buffers.shift()},e.prototype.write=function(t){var n,a;if(this.ended){(a=(n=this.cbs).onerror)===null||a===void 0||a.call(n,new Error(".write() after done!"));return}this.buffers.push(t),this.tokenizer.running&&(this.tokenizer.write(t),this.writeIndex++)},e.prototype.end=function(t){var n,a;if(this.ended){(a=(n=this.cbs).onerror)===null||a===void 0||a.call(n,new Error(".end() after done!"));return}t&&this.write(t),this.ended=!0,this.tokenizer.end()},e.prototype.pause=function(){this.tokenizer.pause()},e.prototype.resume=function(){for(this.tokenizer.resume();this.tokenizer.running&&this.writeIndex0?this.children[this.children.length-1]:null},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"childNodes",{get:function(){return this.children},set:function(n){this.children=n},enumerable:!1,configurable:!0}),t}(Qp);it.NodeWithChildren=ac;var uO=function(e){ms(t,e);function t(){var n=e!==null&&e.apply(this,arguments)||this;return n.type=In.ElementType.CDATA,n}return Object.defineProperty(t.prototype,"nodeType",{get:function(){return 4},enumerable:!1,configurable:!0}),t}(ac);it.CDATA=uO;var lO=function(e){ms(t,e);function t(){var n=e!==null&&e.apply(this,arguments)||this;return n.type=In.ElementType.Root,n}return Object.defineProperty(t.prototype,"nodeType",{get:function(){return 9},enumerable:!1,configurable:!0}),t}(ac);it.Document=lO;var cO=function(e){ms(t,e);function t(n,a,s,r){s===void 0&&(s=[]),r===void 0&&(r=n==="script"?In.ElementType.Script:n==="style"?In.ElementType.Style:In.ElementType.Tag);var i=e.call(this,s)||this;return i.name=n,i.attribs=a,i.type=r,i}return Object.defineProperty(t.prototype,"nodeType",{get:function(){return 1},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"tagName",{get:function(){return this.name},set:function(n){this.name=n},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"attributes",{get:function(){var n=this;return Object.keys(this.attribs).map(function(a){var s,r;return{name:a,value:n.attribs[a],namespace:(s=n["x-attribsNamespace"])===null||s===void 0?void 0:s[a],prefix:(r=n["x-attribsPrefix"])===null||r===void 0?void 0:r[a]}})},enumerable:!1,configurable:!0}),t}(ac);it.Element=cO;function dO(e){return(0,In.isTag)(e)}it.isTag=dO;function EO(e){return e.type===In.ElementType.CDATA}it.isCDATA=EO;function pO(e){return e.type===In.ElementType.Text}it.isText=pO;function fO(e){return e.type===In.ElementType.Comment}it.isComment=fO;function mO(e){return e.type===In.ElementType.Directive}it.isDirective=mO;function TO(e){return e.type===In.ElementType.Root}it.isDocument=TO;function xWe(e){return Object.prototype.hasOwnProperty.call(e,"children")}it.hasChildren=xWe;function Zp(e,t){t===void 0&&(t=!1);var n;if(pO(e))n=new rO(e.data);else if(fO(e))n=new iO(e.data);else if(dO(e)){var a=t?Xc(e.children):[],s=new cO(e.name,gi({},e.attribs),a);a.forEach(function(u){return u.parent=s}),e.namespace!=null&&(s.namespace=e.namespace),e["x-attribsNamespace"]&&(s["x-attribsNamespace"]=gi({},e["x-attribsNamespace"])),e["x-attribsPrefix"]&&(s["x-attribsPrefix"]=gi({},e["x-attribsPrefix"])),n=s}else if(EO(e)){var a=t?Xc(e.children):[],r=new uO(a);a.forEach(function(l){return l.parent=r}),n=r}else if(TO(e)){var a=t?Xc(e.children):[],i=new lO(a);a.forEach(function(l){return l.parent=i}),e["x-mode"]&&(i["x-mode"]=e["x-mode"]),n=i}else if(mO(e)){var o=new oO(e.name,e.data);e["x-name"]!=null&&(o["x-name"]=e["x-name"],o["x-publicId"]=e["x-publicId"],o["x-systemId"]=e["x-systemId"]),n=o}else throw new Error("Not implemented yet: ".concat(e.type));return n.startIndex=e.startIndex,n.endIndex=e.endIndex,e.sourceCodeLocation!=null&&(n.sourceCodeLocation=e.sourceCodeLocation),n}it.cloneNode=Zp;function Xc(e){for(var t=e.map(function(a){return Zp(a,!0)}),n=1;n$\x80-\uFFFF]/g;var t=new Map([[34,"""],[38,"&"],[39,"'"],[60,"<"],[62,">"]]);e.getCodePoint=String.prototype.codePointAt!=null?function(s,r){return s.codePointAt(r)}:function(s,r){return(s.charCodeAt(r)&64512)===55296?(s.charCodeAt(r)-55296)*1024+s.charCodeAt(r+1)-56320+65536:s.charCodeAt(r)};function n(s){for(var r="",i=0,o;(o=e.xmlReplacer.exec(s))!==null;){var u=o.index,l=s.charCodeAt(u),c=t.get(l);c!==void 0?(r+=s.substring(i,u)+c,i=u+1):(r+="".concat(s.substring(i,u),"&#x").concat((0,e.getCodePoint)(s,u).toString(16),";"),i=e.xmlReplacer.lastIndex+=+((l&64512)===55296))}return r+s.substr(i)}e.encodeXML=n,e.escape=n;function a(s,r){return function(o){for(var u,l=0,c="";u=s.exec(o);)l!==u.index&&(c+=o.substring(l,u.index)),c+=r.get(u[0].charCodeAt(0)),l=u.index+1;return c+o.substring(l)}}e.escapeUTF8=a(/[&<>'"]/g,t),e.escapeAttribute=a(/["&\u00A0]/g,new Map([[34,"""],[38,"&"],[160," "]])),e.escapeText=a(/[&<>\u00A0]/g,new Map([[38,"&"],[60,"<"],[62,">"],[160," "]]))})(ml);var BWe=He&&He.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(zs,"__esModule",{value:!0});zs.encodeNonAsciiHTML=zs.encodeHTML=void 0;var GWe=BWe(Jp),hO=ml,HWe=/[\t\n!-,./:-@[-`\f{-}$\x80-\uFFFF]/g;function VWe(e){return SO(HWe,e)}zs.encodeHTML=VWe;function KWe(e){return SO(hO.xmlReplacer,e)}zs.encodeNonAsciiHTML=KWe;function SO(e,t){for(var n="",a=0,s;(s=e.exec(t))!==null;){var r=s.index;n+=t.substring(a,r);var i=t.charCodeAt(r),o=GWe.default.get(i);if(typeof o=="object"){if(r+10&&(a+=sc(e.children,t)),(t.xmlMode||!D_.has(e.name))&&(a+=""))),a}function aze(e){return"<".concat(e.data,">")}function sze(e,t){var n,a=e.data||"";return((n=t.encodeEntities)!==null&&n!==void 0?n:t.decodeEntities)!==!1&&!(!t.xmlMode&&e.parent&&XWe.has(e.parent.name))&&(a=t.xmlMode||t.encodeEntities!=="utf8"?(0,Tl.encodeXML)(a):(0,Tl.escapeText)(a)),a}function rze(e){return"")}function ize(e){return"")}var oze=He&&He.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(yn,"__esModule",{value:!0});yn.innerText=yn.textContent=yn.getText=yn.getInnerHTML=yn.getOuterHTML=void 0;var _a=wa,uze=oze(ho),lze=Br;function OO(e,t){return(0,uze.default)(e,t)}yn.getOuterHTML=OO;function cze(e,t){return(0,_a.hasChildren)(e)?e.children.map(function(n){return OO(n,t)}).join(""):""}yn.getInnerHTML=cze;function mu(e){return Array.isArray(e)?e.map(mu).join(""):(0,_a.isTag)(e)?e.name==="br"?` +`:mu(e.children):(0,_a.isCDATA)(e)?mu(e.children):(0,_a.isText)(e)?e.data:""}yn.getText=mu;function pE(e){return Array.isArray(e)?e.map(pE).join(""):(0,_a.hasChildren)(e)&&!(0,_a.isComment)(e)?pE(e.children):(0,_a.isText)(e)?e.data:""}yn.textContent=pE;function fE(e){return Array.isArray(e)?e.map(fE).join(""):(0,_a.hasChildren)(e)&&(e.type===lze.ElementType.Tag||(0,_a.isCDATA)(e))?fE(e.children):(0,_a.isText)(e)?e.data:""}yn.innerText=fE;var Vt={};Object.defineProperty(Vt,"__esModule",{value:!0});Vt.prevElementSibling=Vt.nextElementSibling=Vt.getName=Vt.hasAttrib=Vt.getAttributeValue=Vt.getSiblings=Vt.getParent=Vt.getChildren=void 0;var ef=wa;function gO(e){return(0,ef.hasChildren)(e)?e.children:[]}Vt.getChildren=gO;function IO(e){return e.parent||null}Vt.getParent=IO;function dze(e){var t,n,a=IO(e);if(a!=null)return gO(a);for(var s=[e],r=e.prev,i=e.next;r!=null;)s.unshift(r),t=r,r=t.prev;for(;i!=null;)s.push(i),n=i,i=n.next;return s}Vt.getSiblings=dze;function Eze(e,t){var n;return(n=e.attribs)===null||n===void 0?void 0:n[t]}Vt.getAttributeValue=Eze;function pze(e,t){return e.attribs!=null&&Object.prototype.hasOwnProperty.call(e.attribs,t)&&e.attribs[t]!=null}Vt.hasAttrib=pze;function fze(e){return e.name}Vt.getName=fze;function mze(e){for(var t,n=e.next;n!==null&&!(0,ef.isTag)(n);)t=n,n=t.next;return n}Vt.nextElementSibling=mze;function Tze(e){for(var t,n=e.prev;n!==null&&!(0,ef.isTag)(n);)t=n,n=t.prev;return n}Vt.prevElementSibling=Tze;var Sn={};Object.defineProperty(Sn,"__esModule",{value:!0});Sn.prepend=Sn.prependChild=Sn.append=Sn.appendChild=Sn.replaceElement=Sn.removeElement=void 0;function So(e){if(e.prev&&(e.prev.next=e.next),e.next&&(e.next.prev=e.prev),e.parent){var t=e.parent.children,n=t.lastIndexOf(e);n>=0&&t.splice(n,1)}e.next=null,e.prev=null,e.parent=null}Sn.removeElement=So;function _ze(e,t){var n=t.prev=e.prev;n&&(n.next=t);var a=t.next=e.next;a&&(a.prev=t);var s=t.parent=e.parent;if(s){var r=s.children;r[r.lastIndexOf(e)]=t,e.parent=null}}Sn.replaceElement=_ze;function hze(e,t){if(So(t),t.next=null,t.parent=e,e.children.push(t)>1){var n=e.children[e.children.length-2];n.next=t,t.prev=n}else t.prev=null}Sn.appendChild=hze;function Sze(e,t){So(t);var n=e.parent,a=e.next;if(t.next=a,t.prev=e,e.next=t,t.parent=n,a){if(a.prev=t,n){var s=n.children;s.splice(s.lastIndexOf(a),0,t)}}else n&&n.children.push(t)}Sn.append=Sze;function Aze(e,t){if(So(t),t.parent=e,t.prev=null,e.children.unshift(t)!==1){var n=e.children[1];n.prev=t,t.next=n}else t.next=null}Sn.prependChild=Aze;function Oze(e,t){So(t);var n=e.parent;if(n){var a=n.children;a.splice(a.indexOf(e),0,t)}e.prev&&(e.prev.next=t),t.parent=n,t.prev=e.prev,t.next=e,e.prev=t}Sn.prepend=Oze;var cn={};Object.defineProperty(cn,"__esModule",{value:!0});cn.findAll=cn.existsOne=cn.findOne=cn.findOneChild=cn.find=cn.filter=void 0;var rc=wa;function gze(e,t,n,a){return n===void 0&&(n=!0),a===void 0&&(a=1/0),RO(e,Array.isArray(t)?t:[t],n,a)}cn.filter=gze;function RO(e,t,n,a){for(var s=[],r=[t],i=[0];;){if(i[0]>=r[0].length){if(i.length===1)return s;r.shift(),i.shift();continue}var o=r[0][i[0]++];if(e(o)&&(s.push(o),--a<=0))return s;n&&(0,rc.hasChildren)(o)&&o.children.length>0&&(i.unshift(0),r.unshift(o.children))}}cn.find=RO;function Ize(e,t){return t.find(e)}cn.findOneChild=Ize;function NO(e,t,n){n===void 0&&(n=!0);for(var a=null,s=0;s0&&(a=NO(e,r.children,!0));else continue}return a}cn.findOne=NO;function bO(e,t){return t.some(function(n){return(0,rc.isTag)(n)&&(e(n)||bO(e,n.children))})}cn.existsOne=bO;function Rze(e,t){for(var n=[],a=[t],s=[0];;){if(s[0]>=a[0].length){if(a.length===1)return n;a.shift(),s.shift();continue}var r=a[0][s[0]++];(0,rc.isTag)(r)&&(e(r)&&n.push(r),r.children.length>0&&(s.unshift(0),a.unshift(r.children)))}}cn.findAll=Rze;var $n={};Object.defineProperty($n,"__esModule",{value:!0});$n.getElementsByTagType=$n.getElementsByTagName=$n.getElementById=$n.getElements=$n.testElement=void 0;var Cs=wa,ic=cn,_l={tag_name:function(e){return typeof e=="function"?function(t){return(0,Cs.isTag)(t)&&e(t.name)}:e==="*"?Cs.isTag:function(t){return(0,Cs.isTag)(t)&&t.name===e}},tag_type:function(e){return typeof e=="function"?function(t){return e(t.type)}:function(t){return t.type===e}},tag_contains:function(e){return typeof e=="function"?function(t){return(0,Cs.isText)(t)&&e(t.data)}:function(t){return(0,Cs.isText)(t)&&t.data===e}}};function vO(e,t){return typeof t=="function"?function(n){return(0,Cs.isTag)(n)&&t(n.attribs[e])}:function(n){return(0,Cs.isTag)(n)&&n.attribs[e]===t}}function Nze(e,t){return function(n){return e(n)||t(n)}}function CO(e){var t=Object.keys(e).map(function(n){var a=e[n];return Object.prototype.hasOwnProperty.call(_l,n)?_l[n](a):vO(n,a)});return t.length===0?null:t.reduce(Nze)}function bze(e,t){var n=CO(e);return n?n(t):!0}$n.testElement=bze;function vze(e,t,n,a){a===void 0&&(a=1/0);var s=CO(e);return s?(0,ic.filter)(s,t,n,a):[]}$n.getElements=vze;function Cze(e,t,n){return n===void 0&&(n=!0),Array.isArray(t)||(t=[t]),(0,ic.findOne)(vO("id",e),t,n)}$n.getElementById=Cze;function Dze(e,t,n,a){return n===void 0&&(n=!0),a===void 0&&(a=1/0),(0,ic.filter)(_l.tag_name(e),t,n,a)}$n.getElementsByTagName=Dze;function Pze(e,t,n,a){return n===void 0&&(n=!0),a===void 0&&(a=1/0),(0,ic.filter)(_l.tag_type(e),t,n,a)}$n.getElementsByTagType=Pze;var DO={};(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.uniqueSort=e.compareDocumentPosition=e.DocumentPosition=e.removeSubsets=void 0;var t=wa;function n(i){for(var o=i.length;--o>=0;){var u=i[o];if(o>0&&i.lastIndexOf(u,o-1)>=0){i.splice(o,1);continue}for(var l=u.parent;l;l=l.parent)if(i.includes(l)){i.splice(o,1);break}}return i}e.removeSubsets=n;var a;(function(i){i[i.DISCONNECTED=1]="DISCONNECTED",i[i.PRECEDING=2]="PRECEDING",i[i.FOLLOWING=4]="FOLLOWING",i[i.CONTAINS=8]="CONTAINS",i[i.CONTAINED_BY=16]="CONTAINED_BY"})(a=e.DocumentPosition||(e.DocumentPosition={}));function s(i,o){var u=[],l=[];if(i===o)return 0;for(var c=(0,t.hasChildren)(i)?i:i.parent;c;)u.unshift(c),c=c.parent;for(c=(0,t.hasChildren)(o)?o:o.parent;c;)l.unshift(c),c=c.parent;for(var p=Math.min(u.length,l.length),d=0;dT.indexOf(R)?f===o?a.FOLLOWING|a.CONTAINED_BY:a.FOLLOWING:f===i?a.PRECEDING|a.CONTAINS:a.PRECEDING}e.compareDocumentPosition=s;function r(i){return i=i.filter(function(o,u,l){return!l.includes(o,u+1)}),i.sort(function(o,u){var l=s(o,u);return l&a.PRECEDING?-1:l&a.FOLLOWING?1:0}),i}e.uniqueSort=r})(DO);var oc={};Object.defineProperty(oc,"__esModule",{value:!0});oc.getFeed=void 0;var Lze=yn,Ao=$n;function yze(e){var t=hl(Mze,e);return t?t.name==="feed"?$ze(t):kze(t):null}oc.getFeed=yze;function $ze(e){var t,n=e.children,a={type:"atom",items:(0,Ao.getElementsByTagName)("entry",n).map(function(i){var o,u=i.children,l={media:PO(u)};hn(l,"id","id",u),hn(l,"title","title",u);var c=(o=hl("link",u))===null||o===void 0?void 0:o.attribs.href;c&&(l.link=c);var p=rs("summary",u)||rs("content",u);p&&(l.description=p);var d=rs("updated",u);return d&&(l.pubDate=new Date(d)),l})};hn(a,"id","id",n),hn(a,"title","title",n);var s=(t=hl("link",n))===null||t===void 0?void 0:t.attribs.href;s&&(a.link=s),hn(a,"description","subtitle",n);var r=rs("updated",n);return r&&(a.updated=new Date(r)),hn(a,"author","email",n,!0),a}function kze(e){var t,n,a=(n=(t=hl("channel",e.children))===null||t===void 0?void 0:t.children)!==null&&n!==void 0?n:[],s={type:e.name.substr(0,3),id:"",items:(0,Ao.getElementsByTagName)("item",e.children).map(function(i){var o=i.children,u={media:PO(o)};hn(u,"id","guid",o),hn(u,"title","title",o),hn(u,"link","link",o),hn(u,"description","description",o);var l=rs("pubDate",o)||rs("dc:date",o);return l&&(u.pubDate=new Date(l)),u})};hn(s,"title","title",a),hn(s,"link","link",a),hn(s,"description","description",a);var r=rs("lastBuildDate",a);return r&&(s.updated=new Date(r)),hn(s,"author","managingEditor",a,!0),s}var Uze=["url","type","lang"],wze=["fileSize","bitrate","framerate","samplingrate","channels","duration","height","width"];function PO(e){return(0,Ao.getElementsByTagName)("media:content",e).map(function(t){for(var n=t.attribs,a={medium:n.medium,isDefault:!!n.isDefault},s=0,r=Uze;s{if(typeof e!="string")throw new TypeError("Expected a string");return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")},tf={};Object.defineProperty(tf,"__esModule",{value:!0});/*! + * is-plain-object + * + * Copyright (c) 2014-2017, Jon Schlinkert. + * Released under the MIT License. + */function P_(e){return Object.prototype.toString.call(e)==="[object Object]"}function zze(e){var t,n;return P_(e)===!1?!1:(t=e.constructor,t===void 0?!0:(n=t.prototype,!(P_(n)===!1||n.hasOwnProperty("isPrototypeOf")===!1)))}tf.isPlainObject=zze;var Fze=function(t){return xze(t)&&!Bze(t)};function xze(e){return!!e&&typeof e=="object"}function Bze(e){var t=Object.prototype.toString.call(e);return t==="[object RegExp]"||t==="[object Date]"||Vze(e)}var Gze=typeof Symbol=="function"&&Symbol.for,Hze=Gze?Symbol.for("react.element"):60103;function Vze(e){return e.$$typeof===Hze}function Kze(e){return Array.isArray(e)?[]:{}}function Hi(e,t){return t.clone!==!1&&t.isMergeableObject(e)?Lr(Kze(e),e,t):e}function jze(e,t,n){return e.concat(t).map(function(a){return Hi(a,n)})}function qze(e,t){if(!t.customMerge)return Lr;var n=t.customMerge(e);return typeof n=="function"?n:Lr}function Yze(e){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(e).filter(function(t){return Object.propertyIsEnumerable.call(e,t)}):[]}function L_(e){return Object.keys(e).concat(Yze(e))}function LO(e,t){try{return t in e}catch{return!1}}function Xze(e,t){return LO(e,t)&&!(Object.hasOwnProperty.call(e,t)&&Object.propertyIsEnumerable.call(e,t))}function Qze(e,t,n){var a={};return n.isMergeableObject(e)&&L_(e).forEach(function(s){a[s]=Hi(e[s],n)}),L_(t).forEach(function(s){Xze(e,s)||(LO(e,s)&&n.isMergeableObject(t[s])?a[s]=qze(s,n)(e[s],t[s],n):a[s]=Hi(t[s],n))}),a}function Lr(e,t,n){n=n||{},n.arrayMerge=n.arrayMerge||jze,n.isMergeableObject=n.isMergeableObject||Fze,n.cloneUnlessOtherwiseSpecified=Hi;var a=Array.isArray(t),s=Array.isArray(e),r=a===s;return r?a?n.arrayMerge(e,t,n):Qze(e,t,n):Hi(t,n)}Lr.all=function(t,n){if(!Array.isArray(t))throw new Error("first argument should be an array");return t.reduce(function(a,s){return Lr(a,s,n)},{})};var Zze=Lr,Jze=Zze,yO={exports:{}};(function(e){(function(t,n){e.exports?e.exports=n():t.parseSrcset=n()})(He,function(){return function(t){function n(A){return A===" "||A===" "||A===` +`||A==="\f"||A==="\r"}function a(A){var b,y=A.exec(t.substring(R));if(y)return b=y[0],R+=b.length,b}for(var s=t.length,r=/^[ \t\n\r\u000c]+/,i=/^[, \t\n\r\u000c]+/,o=/^[^ \t\n\r\u000c]+/,u=/[,]+$/,l=/^\d+$/,c=/^-?(?:[0-9]+|[0-9]*\.[0-9]+)(?:[eE][+-]?[0-9]+)?$/,p,d,f,T,O,R=0,g=[];;){if(a(i),R>=s)return g;p=a(o),d=[],p.slice(-1)===","?(p=p.replace(u,""),S()):N()}function N(){for(a(r),f="",T="in descriptor";;){if(O=t.charAt(R),T==="in descriptor")if(n(O))f&&(d.push(f),f="",T="after descriptor");else if(O===","){R+=1,f&&d.push(f),S();return}else if(O==="(")f=f+O,T="in parens";else if(O===""){f&&d.push(f),S();return}else f=f+O;else if(T==="in parens")if(O===")")f=f+O,T="in descriptor";else if(O===""){d.push(f),S();return}else f=f+O;else if(T==="after descriptor"&&!n(O))if(O===""){S();return}else T="in descriptor",R-=1;R+=1}}function S(){var A=!1,b,y,P,C,D={},F,$,z,Y,se;for(C=0;C",typeof this.line<"u"&&(this.message+=":"+this.line+":"+this.column),this.message+=": "+this.reason}showSourceCode(t){if(!this.source)return"";let n=this.source;t==null&&(t=y_.isColorSupported);let a=c=>c,s=c=>c,r=c=>c;if(t){let{bold:c,gray:p,red:d}=y_.createColors(!0);s=f=>c(d(f)),a=f=>p(f),$_&&(r=f=>$_(f))}let i=n.split(/\r?\n/),o=Math.max(this.line-3,0),u=Math.min(this.line+2,i.length),l=String(u).length;return i.slice(o,u).map((c,p)=>{let d=o+1+p,f=" "+(" "+d).slice(-l)+" | ";if(d===this.line){if(c.length>160){let O=20,R=Math.max(0,this.column-O),g=Math.max(this.column+O,this.endColumn+O),N=c.slice(R,g),S=a(f.replace(/\d/g," "))+c.slice(0,Math.min(this.column-1,O-1)).replace(/[^\t]/g," ");return s(">")+a(f)+r(N)+` + `+S+s("^")}let T=a(f.replace(/\d/g," "))+c.slice(0,this.column-1).replace(/[^\t]/g," ");return s(">")+a(f)+r(c)+` + `+T+s("^")}return" "+a(f)+r(c)}).join(` +`)}toString(){let t=this.showSourceCode();return t&&(t=` + +`+t+` +`),this.name+": "+this.message+t}};var af=mE;mE.default=mE;const k_={after:` +`,beforeClose:` +`,beforeComment:` +`,beforeDecl:` +`,beforeOpen:" ",beforeRule:` +`,colon:": ",commentLeft:" ",commentRight:" ",emptyBody:"",indent:" ",semicolon:!1};function sFe(e){return e[0].toUpperCase()+e.slice(1)}let TE=class{constructor(t){this.builder=t}atrule(t,n){let a="@"+t.name,s=t.params?this.rawValue(t,"params"):"";if(typeof t.raws.afterName<"u"?a+=t.raws.afterName:s&&(a+=" "),t.nodes)this.block(t,a+s);else{let r=(t.raws.between||"")+(n?";":"");this.builder(a+s+r,t)}}beforeAfter(t,n){let a;t.type==="decl"?a=this.raw(t,null,"beforeDecl"):t.type==="comment"?a=this.raw(t,null,"beforeComment"):n==="before"?a=this.raw(t,null,"beforeRule"):a=this.raw(t,null,"beforeClose");let s=t.parent,r=0;for(;s&&s.type!=="root";)r+=1,s=s.parent;if(a.includes(` +`)){let i=this.raw(t,null,"indent");if(i.length)for(let o=0;o0&&t.nodes[n].type==="comment";)n-=1;let a=this.raw(t,"semicolon");for(let s=0;s{if(s=u.raws[n],typeof s<"u")return!1})}return typeof s>"u"&&(s=k_[a]),i.rawCache[a]=s,s}rawBeforeClose(t){let n;return t.walk(a=>{if(a.nodes&&a.nodes.length>0&&typeof a.raws.after<"u")return n=a.raws.after,n.includes(` +`)&&(n=n.replace(/[^\n]+$/,"")),!1}),n&&(n=n.replace(/\S/g,"")),n}rawBeforeComment(t,n){let a;return t.walkComments(s=>{if(typeof s.raws.before<"u")return a=s.raws.before,a.includes(` +`)&&(a=a.replace(/[^\n]+$/,"")),!1}),typeof a>"u"?a=this.raw(n,null,"beforeDecl"):a&&(a=a.replace(/\S/g,"")),a}rawBeforeDecl(t,n){let a;return t.walkDecls(s=>{if(typeof s.raws.before<"u")return a=s.raws.before,a.includes(` +`)&&(a=a.replace(/[^\n]+$/,"")),!1}),typeof a>"u"?a=this.raw(n,null,"beforeRule"):a&&(a=a.replace(/\S/g,"")),a}rawBeforeOpen(t){let n;return t.walk(a=>{if(a.type!=="decl"&&(n=a.raws.between,typeof n<"u"))return!1}),n}rawBeforeRule(t){let n;return t.walk(a=>{if(a.nodes&&(a.parent!==t||t.first!==a)&&typeof a.raws.before<"u")return n=a.raws.before,n.includes(` +`)&&(n=n.replace(/[^\n]+$/,"")),!1}),n&&(n=n.replace(/\S/g,"")),n}rawColon(t){let n;return t.walkDecls(a=>{if(typeof a.raws.between<"u")return n=a.raws.between.replace(/[^\s:]/g,""),!1}),n}rawEmptyBody(t){let n;return t.walk(a=>{if(a.nodes&&a.nodes.length===0&&(n=a.raws.after,typeof n<"u"))return!1}),n}rawIndent(t){if(t.raws.indent)return t.raws.indent;let n;return t.walk(a=>{let s=a.parent;if(s&&s!==t&&s.parent&&s.parent===t&&typeof a.raws.before<"u"){let r=a.raws.before.split(` +`);return n=r[r.length-1],n=n.replace(/\S/g,""),!1}}),n}rawSemicolon(t){let n;return t.walk(a=>{if(a.nodes&&a.nodes.length&&a.last.type==="decl"&&(n=a.raws.semicolon,typeof n<"u"))return!1}),n}rawValue(t,n){let a=t[n],s=t.raws[n];return s&&s.value===a?s.raw:a}root(t){this.body(t),t.raws.after&&this.builder(t.raws.after)}rule(t){this.block(t,this.rawValue(t,"selector")),t.raws.ownSemicolon&&this.builder(t.raws.ownSemicolon,t,"end")}stringify(t,n){if(!this[t.type])throw new Error("Unknown AST node type "+t.type+". Maybe you need to change PostCSS stringifier.");this[t.type](t,n)}};var UO=TE;TE.default=TE;let rFe=UO;function _E(e,t){new rFe(t).stringify(e)}var uc=_E;_E.default=_E;var Oo={};Oo.isClean=Symbol("isClean");Oo.my=Symbol("my");let iFe=af,oFe=UO,uFe=uc,{isClean:ai,my:lFe}=Oo;function hE(e,t){let n=new e.constructor;for(let a in e){if(!Object.prototype.hasOwnProperty.call(e,a)||a==="proxyCache")continue;let s=e[a],r=typeof s;a==="parent"&&r==="object"?t&&(n[a]=t):a==="source"?n[a]=s:Array.isArray(s)?n[a]=s.map(i=>hE(i,n)):(r==="object"&&s!==null&&(s=hE(s)),n[a]=s)}return n}let SE=class{constructor(t={}){this.raws={},this[ai]=!1,this[lFe]=!0;for(let n in t)if(n==="nodes"){this.nodes=[];for(let a of t[n])typeof a.clone=="function"?this.append(a.clone()):this.append(a)}else this[n]=t[n]}addToError(t){if(t.postcssNode=this,t.stack&&this.source&&/\n\s{4}at /.test(t.stack)){let n=this.source;t.stack=t.stack.replace(/\n\s{4}at /,`$&${n.input.from}:${n.start.line}:${n.start.column}$&`)}return t}after(t){return this.parent.insertAfter(this,t),this}assign(t={}){for(let n in t)this[n]=t[n];return this}before(t){return this.parent.insertBefore(this,t),this}cleanRaws(t){delete this.raws.before,delete this.raws.after,t||delete this.raws.between}clone(t={}){let n=hE(this);for(let a in t)n[a]=t[a];return n}cloneAfter(t={}){let n=this.clone(t);return this.parent.insertAfter(this,n),n}cloneBefore(t={}){let n=this.clone(t);return this.parent.insertBefore(this,n),n}error(t,n={}){if(this.source){let{end:a,start:s}=this.rangeBy(n);return this.source.input.error(t,{column:s.column,line:s.line},{column:a.column,line:a.line},n)}return new iFe(t)}getProxyProcessor(){return{get(t,n){return n==="proxyOf"?t:n==="root"?()=>t.root().toProxy():t[n]},set(t,n,a){return t[n]===a||(t[n]=a,(n==="prop"||n==="value"||n==="name"||n==="params"||n==="important"||n==="text")&&t.markDirty()),!0}}}markClean(){this[ai]=!0}markDirty(){if(this[ai]){this[ai]=!1;let t=this;for(;t=t.parent;)t[ai]=!1}}next(){if(!this.parent)return;let t=this.parent.index(this);return this.parent.nodes[t+1]}positionBy(t,n){let a=this.source.start;if(t.index)a=this.positionInside(t.index,n);else if(t.word){n=this.toString();let s=n.indexOf(t.word);s!==-1&&(a=this.positionInside(s,n))}return a}positionInside(t,n){let a=n||this.toString(),s=this.source.start.column,r=this.source.start.line;for(let i=0;itypeof u=="object"&&u.toJSON?u.toJSON(null,n):u);else if(typeof o=="object"&&o.toJSON)a[i]=o.toJSON(null,n);else if(i==="source"){let u=n.get(o.input);u==null&&(u=r,n.set(o.input,r),r++),a[i]={end:o.end,inputId:u,start:o.start}}else a[i]=o}return s&&(a.inputs=[...n.keys()].map(i=>i.toJSON())),a}toProxy(){return this.proxyCache||(this.proxyCache=new Proxy(this,this.getProxyProcessor())),this.proxyCache}toString(t=uFe){t.stringify&&(t=t.stringify);let n="";return t(this,a=>{n+=a}),n}warn(t,n,a){let s={node:this};for(let r in a)s[r]=a[r];return t.warn(n,s)}get proxyOf(){return this}};var lc=SE;SE.default=SE;let cFe=lc,AE=class extends cFe{constructor(t){super(t),this.type="comment"}};var cc=AE;AE.default=AE;let dFe=lc,OE=class extends dFe{constructor(t){t&&typeof t.value<"u"&&typeof t.value!="string"&&(t={...t,value:String(t.value)}),super(t),this.type="decl"}get variable(){return this.prop.startsWith("--")||this.prop[0]==="$"}};var dc=OE;OE.default=OE;let wO=cc,MO=dc,EFe=lc,{isClean:WO,my:zO}=Oo,sf,FO,xO,rf;function BO(e){return e.map(t=>(t.nodes&&(t.nodes=BO(t.nodes)),delete t.source,t))}function GO(e){if(e[WO]=!1,e.proxyOf.nodes)for(let t of e.proxyOf.nodes)GO(t)}let Ma=class HO extends EFe{append(...t){for(let n of t){let a=this.normalize(n,this.last);for(let s of a)this.proxyOf.nodes.push(s)}return this.markDirty(),this}cleanRaws(t){if(super.cleanRaws(t),this.nodes)for(let n of this.nodes)n.cleanRaws(t)}each(t){if(!this.proxyOf.nodes)return;let n=this.getIterator(),a,s;for(;this.indexes[n]t[n](...a.map(s=>typeof s=="function"?(r,i)=>s(r.toProxy(),i):s)):n==="every"||n==="some"?a=>t[n]((s,...r)=>a(s.toProxy(),...r)):n==="root"?()=>t.root().toProxy():n==="nodes"?t.nodes.map(a=>a.toProxy()):n==="first"||n==="last"?t[n].toProxy():t[n]:t[n]},set(t,n,a){return t[n]===a||(t[n]=a,(n==="name"||n==="params"||n==="selector")&&t.markDirty()),!0}}}index(t){return typeof t=="number"?t:(t.proxyOf&&(t=t.proxyOf),this.proxyOf.nodes.indexOf(t))}insertAfter(t,n){let a=this.index(t),s=this.normalize(n,this.proxyOf.nodes[a]).reverse();a=this.index(t);for(let i of s)this.proxyOf.nodes.splice(a+1,0,i);let r;for(let i in this.indexes)r=this.indexes[i],a"u")t=[];else if(Array.isArray(t)){t=t.slice(0);for(let s of t)s.parent&&s.parent.removeChild(s,"ignore")}else if(t.type==="root"&&this.type!=="document"){t=t.nodes.slice(0);for(let s of t)s.parent&&s.parent.removeChild(s,"ignore")}else if(t.type)t=[t];else if(t.prop){if(typeof t.value>"u")throw new Error("Value field is missed in node creation");typeof t.value!="string"&&(t.value=String(t.value)),t=[new MO(t)]}else if(t.selector||t.selectors)t=[new rf(t)];else if(t.name)t=[new sf(t)];else if(t.text)t=[new wO(t)];else throw new Error("Unknown node type in node creation");return t.map(s=>(s[zO]||HO.rebuild(s),s=s.proxyOf,s.parent&&s.parent.removeChild(s),s[WO]&&GO(s),s.raws||(s.raws={}),typeof s.raws.before>"u"&&n&&typeof n.raws.before<"u"&&(s.raws.before=n.raws.before.replace(/\S/g,"")),s.parent=this.proxyOf,s))}prepend(...t){t=t.reverse();for(let n of t){let a=this.normalize(n,this.first,"prepend").reverse();for(let s of a)this.proxyOf.nodes.unshift(s);for(let s in this.indexes)this.indexes[s]=this.indexes[s]+a.length}return this.markDirty(),this}push(t){return t.parent=this,this.proxyOf.nodes.push(t),this}removeAll(){for(let t of this.proxyOf.nodes)t.parent=void 0;return this.proxyOf.nodes=[],this.markDirty(),this}removeChild(t){t=this.index(t),this.proxyOf.nodes[t].parent=void 0,this.proxyOf.nodes.splice(t,1);let n;for(let a in this.indexes)n=this.indexes[a],n>=t&&(this.indexes[a]=n-1);return this.markDirty(),this}replaceValues(t,n,a){return a||(a=n,n={}),this.walkDecls(s=>{n.props&&!n.props.includes(s.prop)||n.fast&&!s.value.includes(n.fast)||(s.value=s.value.replace(t,a))}),this.markDirty(),this}some(t){return this.nodes.some(t)}walk(t){return this.each((n,a)=>{let s;try{s=t(n,a)}catch(r){throw n.addToError(r)}return s!==!1&&n.walk&&(s=n.walk(t)),s})}walkAtRules(t,n){return n?t instanceof RegExp?this.walk((a,s)=>{if(a.type==="atrule"&&t.test(a.name))return n(a,s)}):this.walk((a,s)=>{if(a.type==="atrule"&&a.name===t)return n(a,s)}):(n=t,this.walk((a,s)=>{if(a.type==="atrule")return n(a,s)}))}walkComments(t){return this.walk((n,a)=>{if(n.type==="comment")return t(n,a)})}walkDecls(t,n){return n?t instanceof RegExp?this.walk((a,s)=>{if(a.type==="decl"&&t.test(a.prop))return n(a,s)}):this.walk((a,s)=>{if(a.type==="decl"&&a.prop===t)return n(a,s)}):(n=t,this.walk((a,s)=>{if(a.type==="decl")return n(a,s)}))}walkRules(t,n){return n?t instanceof RegExp?this.walk((a,s)=>{if(a.type==="rule"&&t.test(a.selector))return n(a,s)}):this.walk((a,s)=>{if(a.type==="rule"&&a.selector===t)return n(a,s)}):(n=t,this.walk((a,s)=>{if(a.type==="rule")return n(a,s)}))}get first(){if(this.proxyOf.nodes)return this.proxyOf.nodes[0]}get last(){if(this.proxyOf.nodes)return this.proxyOf.nodes[this.proxyOf.nodes.length-1]}};Ma.registerParse=e=>{FO=e};Ma.registerRule=e=>{rf=e};Ma.registerAtRule=e=>{sf=e};Ma.registerRoot=e=>{xO=e};var Vs=Ma;Ma.default=Ma;Ma.rebuild=e=>{e.type==="atrule"?Object.setPrototypeOf(e,sf.prototype):e.type==="rule"?Object.setPrototypeOf(e,rf.prototype):e.type==="decl"?Object.setPrototypeOf(e,MO.prototype):e.type==="comment"?Object.setPrototypeOf(e,wO.prototype):e.type==="root"&&Object.setPrototypeOf(e,xO.prototype),e[zO]=!0,e.nodes&&e.nodes.forEach(t=>{Ma.rebuild(t)})};let VO=Vs,Sl=class extends VO{constructor(t){super(t),this.type="atrule"}append(...t){return this.proxyOf.nodes||(this.nodes=[]),super.append(...t)}prepend(...t){return this.proxyOf.nodes||(this.nodes=[]),super.prepend(...t)}};var of=Sl;Sl.default=Sl;VO.registerAtRule(Sl);let pFe=Vs,KO,jO,Vi=class extends pFe{constructor(t){super({type:"document",...t}),this.nodes||(this.nodes=[])}toResult(t={}){return new KO(new jO,this,t).stringify()}};Vi.registerLazyResult=e=>{KO=e};Vi.registerProcessor=e=>{jO=e};var uf=Vi;Vi.default=Vi;let fFe="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict",mFe=(e,t=21)=>(n=t)=>{let a="",s=n;for(;s--;)a+=e[Math.random()*e.length|0];return a},TFe=(e=21)=>{let t="",n=e;for(;n--;)t+=fFe[Math.random()*64|0];return t};var _Fe={nanoid:TFe,customAlphabet:mFe};let{existsSync:hFe,readFileSync:SFe}=aa,{dirname:Qc,join:AFe}=aa,{SourceMapConsumer:U_,SourceMapGenerator:w_}=aa;function OFe(e){return Buffer?Buffer.from(e,"base64").toString():window.atob(e)}let gE=class{constructor(t,n){if(n.map===!1)return;this.loadAnnotation(t),this.inline=this.startWith(this.annotation,"data:");let a=n.map?n.map.prev:void 0,s=this.loadMap(n.from,a);!this.mapFile&&n.from&&(this.mapFile=n.from),this.mapFile&&(this.root=Qc(this.mapFile)),s&&(this.text=s)}consumer(){return this.consumerCache||(this.consumerCache=new U_(this.text)),this.consumerCache}decodeInline(t){let n=/^data:application\/json;charset=utf-?8;base64,/,a=/^data:application\/json;base64,/,s=/^data:application\/json;charset=utf-?8,/,r=/^data:application\/json,/,i=t.match(s)||t.match(r);if(i)return decodeURIComponent(t.substr(i[0].length));let o=t.match(n)||t.match(a);if(o)return OFe(t.substr(o[0].length));let u=t.match(/data:application\/json;([^,]+),/)[1];throw new Error("Unsupported source map encoding "+u)}getAnnotationURL(t){return t.replace(/^\/\*\s*# sourceMappingURL=/,"").trim()}isMap(t){return typeof t!="object"?!1:typeof t.mappings=="string"||typeof t._mappings=="string"||Array.isArray(t.sections)}loadAnnotation(t){let n=t.match(/\/\*\s*# sourceMappingURL=/g);if(!n)return;let a=t.lastIndexOf(n.pop()),s=t.indexOf("*/",a);a>-1&&s>-1&&(this.annotation=this.getAnnotationURL(t.substring(a,s)))}loadFile(t){if(this.root=Qc(t),hFe(t))return this.mapFile=t,SFe(t,"utf-8").toString().trim()}loadMap(t,n){if(n===!1)return!1;if(n){if(typeof n=="string")return n;if(typeof n=="function"){let a=n(t);if(a){let s=this.loadFile(a);if(!s)throw new Error("Unable to load previous source map: "+a.toString());return s}}else{if(n instanceof U_)return w_.fromSourceMap(n).toString();if(n instanceof w_)return n.toString();if(this.isMap(n))return JSON.stringify(n);throw new Error("Unsupported previous source map format: "+n.toString())}}else{if(this.inline)return this.decodeInline(this.annotation);if(this.annotation){let a=this.annotation;return t&&(a=AFe(Qc(t),a)),this.loadFile(a)}}}startWith(t,n){return t?t.substr(0,n.length)===n:!1}withContent(){return!!(this.consumer().sourcesContent&&this.consumer().sourcesContent.length>0)}};var qO=gE;gE.default=gE;let{nanoid:gFe}=_Fe,{isAbsolute:IE,resolve:RE}=aa,{SourceMapConsumer:IFe,SourceMapGenerator:RFe}=aa,{fileURLToPath:M_,pathToFileURL:Bo}=aa,W_=af,NFe=qO,Zc=aa,Jc=Symbol("fromOffsetCache"),bFe=!!(IFe&&RFe),z_=!!(RE&&IE),Al=class{constructor(t,n={}){if(t===null||typeof t>"u"||typeof t=="object"&&!t.toString)throw new Error(`PostCSS received ${t} instead of CSS string`);if(this.css=t.toString(),this.css[0]==="\uFEFF"||this.css[0]==="￾"?(this.hasBOM=!0,this.css=this.css.slice(1)):this.hasBOM=!1,n.from&&(!z_||/^\w+:\/\//.test(n.from)||IE(n.from)?this.file=n.from:this.file=RE(n.from)),z_&&bFe){let a=new NFe(this.css,n);if(a.text){this.map=a;let s=a.consumer().file;!this.file&&s&&(this.file=this.mapResolve(s))}}this.file||(this.id=""),this.map&&(this.map.file=this.from)}error(t,n,a,s={}){let r,i,o;if(n&&typeof n=="object"){let l=n,c=a;if(typeof l.offset=="number"){let p=this.fromOffset(l.offset);n=p.line,a=p.col}else n=l.line,a=l.column;if(typeof c.offset=="number"){let p=this.fromOffset(c.offset);i=p.line,r=p.col}else i=c.line,r=c.column}else if(!a){let l=this.fromOffset(n);n=l.line,a=l.col}let u=this.origin(n,a,i,r);return u?o=new W_(t,u.endLine===void 0?u.line:{column:u.column,line:u.line},u.endLine===void 0?u.column:{column:u.endColumn,line:u.endLine},u.source,u.file,s.plugin):o=new W_(t,i===void 0?n:{column:a,line:n},i===void 0?a:{column:r,line:i},this.css,this.file,s.plugin),o.input={column:a,endColumn:r,endLine:i,line:n,source:this.css},this.file&&(Bo&&(o.input.url=Bo(this.file).toString()),o.input.file=this.file),o}fromOffset(t){let n,a;if(this[Jc])a=this[Jc];else{let r=this.css.split(` +`);a=new Array(r.length);let i=0;for(let o=0,u=r.length;o=n)s=a.length-1;else{let r=a.length-2,i;for(;s>1),t=a[i+1])s=i+1;else{s=i;break}}return{col:t-a[s]+1,line:s+1}}mapResolve(t){return/^\w+:\/\//.test(t)?t:RE(this.map.consumer().sourceRoot||this.map.root||".",t)}origin(t,n,a,s){if(!this.map)return!1;let r=this.map.consumer(),i=r.originalPositionFor({column:n,line:t});if(!i.source)return!1;let o;typeof a=="number"&&(o=r.originalPositionFor({column:s,line:a}));let u;IE(i.source)?u=Bo(i.source):u=new URL(i.source,this.map.consumer().sourceRoot||Bo(this.map.mapFile));let l={column:i.column,endColumn:o&&o.column,endLine:o&&o.line,line:i.line,url:u.toString()};if(u.protocol==="file:")if(M_)l.file=M_(u);else throw new Error("file: protocol is not available in this PostCSS build");let c=r.sourceContentFor(i.source);return c&&(l.source=c),l}toJSON(){let t={};for(let n of["hasBOM","css","file","id"])this[n]!=null&&(t[n]=this[n]);return this.map&&(t.map={...this.map},t.map.consumerCache&&(t.map.consumerCache=void 0)),t}get from(){return this.file||this.id}};var Ec=Al;Al.default=Al;Zc&&Zc.registerInput&&Zc.registerInput(Al);let YO=Vs,XO,QO,yr=class extends YO{constructor(t){super(t),this.type="root",this.nodes||(this.nodes=[])}normalize(t,n,a){let s=super.normalize(t);if(n){if(a==="prepend")this.nodes.length>1?n.raws.before=this.nodes[1].raws.before:delete n.raws.before;else if(this.first!==n)for(let r of s)r.raws.before=n.raws.before}return s}removeChild(t,n){let a=this.index(t);return!n&&a===0&&this.nodes.length>1&&(this.nodes[1].raws.before=this.nodes[a].raws.before),super.removeChild(t)}toResult(t={}){return new XO(new QO,this,t).stringify()}};yr.registerLazyResult=e=>{XO=e};yr.registerProcessor=e=>{QO=e};var go=yr;yr.default=yr;YO.registerRoot(yr);let Ki={comma(e){return Ki.split(e,[","],!0)},space(e){let t=[" ",` +`," "];return Ki.split(e,t)},split(e,t,n){let a=[],s="",r=!1,i=0,o=!1,u="",l=!1;for(let c of e)l?l=!1:c==="\\"?l=!0:o?c===u&&(o=!1):c==='"'||c==="'"?(o=!0,u=c):c==="("?i+=1:c===")"?i>0&&(i-=1):i===0&&t.includes(c)&&(r=!0),r?(s!==""&&a.push(s.trim()),s="",r=!1):s+=c;return(n||s!=="")&&a.push(s.trim()),a}};var ZO=Ki;Ki.default=Ki;let JO=Vs,vFe=ZO,Ol=class extends JO{constructor(t){super(t),this.type="rule",this.nodes||(this.nodes=[])}get selectors(){return vFe.comma(this.selector)}set selectors(t){let n=this.selector?this.selector.match(/,\s*/):null,a=n?n[0]:","+this.raw("between","beforeOpen");this.selector=t.join(a)}};var lf=Ol;Ol.default=Ol;JO.registerRule(Ol);let CFe=of,DFe=cc,PFe=dc,LFe=Ec,yFe=qO,$Fe=go,kFe=lf;function ji(e,t){if(Array.isArray(e))return e.map(s=>ji(s));let{inputs:n,...a}=e;if(n){t=[];for(let s of n){let r={...s,__proto__:LFe.prototype};r.map&&(r.map={...r.map,__proto__:yFe.prototype}),t.push(r)}}if(a.nodes&&(a.nodes=e.nodes.map(s=>ji(s,t))),a.source){let{inputId:s,...r}=a.source;a.source=r,s!=null&&(a.source.input=t[s])}if(a.type==="root")return new $Fe(a);if(a.type==="decl")return new PFe(a);if(a.type==="rule")return new kFe(a);if(a.type==="comment")return new DFe(a);if(a.type==="atrule")return new CFe(a);throw new Error("Unknown node type: "+e.type)}var UFe=ji;ji.default=ji;let{dirname:Tu,relative:eg,resolve:tg,sep:ng}=aa,{SourceMapConsumer:ag,SourceMapGenerator:_u}=aa,{pathToFileURL:F_}=aa,wFe=Ec,MFe=!!(ag&&_u),WFe=!!(Tu&&tg&&eg&&ng),zFe=class{constructor(t,n,a,s){this.stringify=t,this.mapOpts=a.map||{},this.root=n,this.opts=a,this.css=s,this.originalCSS=s,this.usesFileUrls=!this.mapOpts.from&&this.mapOpts.absolute,this.memoizedFileURLs=new Map,this.memoizedPaths=new Map,this.memoizedURLs=new Map}addAnnotation(){let t;this.isInline()?t="data:application/json;base64,"+this.toBase64(this.map.toString()):typeof this.mapOpts.annotation=="string"?t=this.mapOpts.annotation:typeof this.mapOpts.annotation=="function"?t=this.mapOpts.annotation(this.opts.to,this.root):t=this.outputFile()+".map";let n=` +`;this.css.includes(`\r +`)&&(n=`\r +`),this.css+=n+"/*# sourceMappingURL="+t+" */"}applyPrevMaps(){for(let t of this.previous()){let n=this.toUrl(this.path(t.file)),a=t.root||Tu(t.file),s;this.mapOpts.sourcesContent===!1?(s=new ag(t.text),s.sourcesContent&&(s.sourcesContent=null)):s=t.consumer(),this.map.applySourceMap(s,n,this.toUrl(this.path(a)))}}clearAnnotation(){if(this.mapOpts.annotation!==!1)if(this.root){let t;for(let n=this.root.nodes.length-1;n>=0;n--)t=this.root.nodes[n],t.type==="comment"&&t.text.startsWith("# sourceMappingURL=")&&this.root.removeChild(n)}else this.css&&(this.css=this.css.replace(/\n*\/\*#[\S\s]*?\*\/$/gm,""))}generate(){if(this.clearAnnotation(),WFe&&MFe&&this.isMap())return this.generateMap();{let t="";return this.stringify(this.root,n=>{t+=n}),[t]}}generateMap(){if(this.root)this.generateString();else if(this.previous().length===1){let t=this.previous()[0].consumer();t.file=this.outputFile(),this.map=_u.fromSourceMap(t,{ignoreInvalidMapping:!0})}else this.map=new _u({file:this.outputFile(),ignoreInvalidMapping:!0}),this.map.addMapping({generated:{column:0,line:1},original:{column:0,line:1},source:this.opts.from?this.toUrl(this.path(this.opts.from)):""});return this.isSourcesContent()&&this.setSourcesContent(),this.root&&this.previous().length>0&&this.applyPrevMaps(),this.isAnnotation()&&this.addAnnotation(),this.isInline()?[this.css]:[this.css,this.map]}generateString(){this.css="",this.map=new _u({file:this.outputFile(),ignoreInvalidMapping:!0});let t=1,n=1,a="",s={generated:{column:0,line:0},original:{column:0,line:0},source:""},r,i;this.stringify(this.root,(o,u,l)=>{if(this.css+=o,u&&l!=="end"&&(s.generated.line=t,s.generated.column=n-1,u.source&&u.source.start?(s.source=this.sourcePath(u),s.original.line=u.source.start.line,s.original.column=u.source.start.column-1,this.map.addMapping(s)):(s.source=a,s.original.line=1,s.original.column=0,this.map.addMapping(s))),i=o.match(/\n/g),i?(t+=i.length,r=o.lastIndexOf(` +`),n=o.length-r):n+=o.length,u&&l!=="start"){let c=u.parent||{raws:{}};(!(u.type==="decl"||u.type==="atrule"&&!u.nodes)||u!==c.last||c.raws.semicolon)&&(u.source&&u.source.end?(s.source=this.sourcePath(u),s.original.line=u.source.end.line,s.original.column=u.source.end.column-1,s.generated.line=t,s.generated.column=n-2,this.map.addMapping(s)):(s.source=a,s.original.line=1,s.original.column=0,s.generated.line=t,s.generated.column=n-1,this.map.addMapping(s)))}})}isAnnotation(){return this.isInline()?!0:typeof this.mapOpts.annotation<"u"?this.mapOpts.annotation:this.previous().length?this.previous().some(t=>t.annotation):!0}isInline(){if(typeof this.mapOpts.inline<"u")return this.mapOpts.inline;let t=this.mapOpts.annotation;return typeof t<"u"&&t!==!0?!1:this.previous().length?this.previous().some(n=>n.inline):!0}isMap(){return typeof this.opts.map<"u"?!!this.opts.map:this.previous().length>0}isSourcesContent(){return typeof this.mapOpts.sourcesContent<"u"?this.mapOpts.sourcesContent:this.previous().length?this.previous().some(t=>t.withContent()):!0}outputFile(){return this.opts.to?this.path(this.opts.to):this.opts.from?this.path(this.opts.from):"to.css"}path(t){if(this.mapOpts.absolute||t.charCodeAt(0)===60||/^\w+:\/\//.test(t))return t;let n=this.memoizedPaths.get(t);if(n)return n;let a=this.opts.to?Tu(this.opts.to):".";typeof this.mapOpts.annotation=="string"&&(a=Tu(tg(a,this.mapOpts.annotation)));let s=eg(a,t);return this.memoizedPaths.set(t,s),s}previous(){if(!this.previousMaps)if(this.previousMaps=[],this.root)this.root.walk(t=>{if(t.source&&t.source.input.map){let n=t.source.input.map;this.previousMaps.includes(n)||this.previousMaps.push(n)}});else{let t=new wFe(this.originalCSS,this.opts);t.map&&this.previousMaps.push(t.map)}return this.previousMaps}setSourcesContent(){let t={};if(this.root)this.root.walk(n=>{if(n.source){let a=n.source.input.from;if(a&&!t[a]){t[a]=!0;let s=this.usesFileUrls?this.toFileUrl(a):this.toUrl(this.path(a));this.map.setSourceContent(s,n.source.input.css)}}});else if(this.css){let n=this.opts.from?this.toUrl(this.path(this.opts.from)):"";this.map.setSourceContent(n,this.css)}}sourcePath(t){return this.mapOpts.from?this.toUrl(this.mapOpts.from):this.usesFileUrls?this.toFileUrl(t.source.input.from):this.toUrl(this.path(t.source.input.from))}toBase64(t){return Buffer?Buffer.from(t).toString("base64"):window.btoa(unescape(encodeURIComponent(t)))}toFileUrl(t){let n=this.memoizedFileURLs.get(t);if(n)return n;if(F_){let a=F_(t).toString();return this.memoizedFileURLs.set(t,a),a}else throw new Error("`map.absolute` option is not available in this PostCSS build")}toUrl(t){let n=this.memoizedURLs.get(t);if(n)return n;ng==="\\"&&(t=t.replace(/\\/g,"/"));let a=encodeURI(t).replace(/[#?]/g,encodeURIComponent);return this.memoizedURLs.set(t,a),a}};var sg=zFe;const ed=39,x_=34,Go=92,B_=47,Ho=10,si=32,Vo=12,Ko=9,jo=13,FFe=91,xFe=93,BFe=40,GFe=41,HFe=123,VFe=125,KFe=59,jFe=42,qFe=58,YFe=64,qo=/[\t\n\f\r "#'()/;[\\\]{}]/g,Yo=/[\t\n\f\r !"#'():;@[\\\]{}]|\/(?=\*)/g,XFe=/.[\r\n"'(/\\]/,G_=/[\da-f]/i;var QFe=function(t,n={}){let a=t.css.valueOf(),s=n.ignoreErrors,r,i,o,u,l,c,p,d,f,T,O=a.length,R=0,g=[],N=[];function S(){return R}function A(C){throw t.error("Unclosed "+C,R)}function b(){return N.length===0&&R>=O}function y(C){if(N.length)return N.pop();if(R>=O)return;let D=C?C.ignoreUnclosed:!1;switch(r=a.charCodeAt(R),r){case Ho:case si:case Ko:case jo:case Vo:{u=R;do u+=1,r=a.charCodeAt(u);while(r===si||r===Ho||r===Ko||r===jo||r===Vo);c=["space",a.slice(R,u)],R=u-1;break}case FFe:case xFe:case HFe:case VFe:case qFe:case KFe:case GFe:{let F=String.fromCharCode(r);c=[F,F,R];break}case BFe:{if(T=g.length?g.pop()[1]:"",f=a.charCodeAt(R+1),T==="url"&&f!==ed&&f!==x_&&f!==si&&f!==Ho&&f!==Ko&&f!==Vo&&f!==jo){u=R;do{if(p=!1,u=a.indexOf(")",u+1),u===-1)if(s||D){u=R;break}else A("bracket");for(d=u;a.charCodeAt(d-1)===Go;)d-=1,p=!p}while(p);c=["brackets",a.slice(R,u+1),R,u],R=u}else u=a.indexOf(")",R+1),i=a.slice(R,u+1),u===-1||XFe.test(i)?c=["(","(",R]:(c=["brackets",i,R,u],R=u);break}case ed:case x_:{l=r===ed?"'":'"',u=R;do{if(p=!1,u=a.indexOf(l,u+1),u===-1)if(s||D){u=R+1;break}else A("string");for(d=u;a.charCodeAt(d-1)===Go;)d-=1,p=!p}while(p);c=["string",a.slice(R,u+1),R,u],R=u;break}case YFe:{qo.lastIndex=R+1,qo.test(a),qo.lastIndex===0?u=a.length-1:u=qo.lastIndex-2,c=["at-word",a.slice(R,u+1),R,u],R=u;break}case Go:{for(u=R,o=!0;a.charCodeAt(u+1)===Go;)u+=1,o=!o;if(r=a.charCodeAt(u+1),o&&r!==B_&&r!==si&&r!==Ho&&r!==Ko&&r!==jo&&r!==Vo&&(u+=1,G_.test(a.charAt(u)))){for(;G_.test(a.charAt(u+1));)u+=1;a.charCodeAt(u+1)===si&&(u+=1)}c=["word",a.slice(R,u+1),R,u],R=u;break}default:{r===B_&&a.charCodeAt(R+1)===jFe?(u=a.indexOf("*/",R+2)+1,u===0&&(s||D?u=a.length:A("comment")),c=["comment",a.slice(R,u+1),R,u],R=u):(Yo.lastIndex=R+1,Yo.test(a),Yo.lastIndex===0?u=a.length-1:u=Yo.lastIndex-2,c=["word",a.slice(R,u+1),R,u],g.push(c),R=u);break}}return R++,c}function P(C){N.push(C)}return{back:P,endOfFile:b,nextToken:y,position:S}};let ZFe=of,JFe=cc,exe=dc,txe=go,H_=lf,nxe=QFe;const V_={empty:!0,space:!0};function axe(e){for(let t=e.length-1;t>=0;t--){let n=e[t],a=n[3]||n[2];if(a)return a}}let sxe=class{constructor(t){this.input=t,this.root=new txe,this.current=this.root,this.spaces="",this.semicolon=!1,this.createTokenizer(),this.root.source={input:t,start:{column:1,line:1,offset:0}}}atrule(t){let n=new ZFe;n.name=t[1].slice(1),n.name===""&&this.unnamedAtrule(n,t),this.init(n,t[2]);let a,s,r,i=!1,o=!1,u=[],l=[];for(;!this.tokenizer.endOfFile();){if(t=this.tokenizer.nextToken(),a=t[0],a==="("||a==="["?l.push(a==="("?")":"]"):a==="{"&&l.length>0?l.push("}"):a===l[l.length-1]&&l.pop(),l.length===0)if(a===";"){n.source.end=this.getPosition(t[2]),n.source.end.offset++,this.semicolon=!0;break}else if(a==="{"){o=!0;break}else if(a==="}"){if(u.length>0){for(r=u.length-1,s=u[r];s&&s[0]==="space";)s=u[--r];s&&(n.source.end=this.getPosition(s[3]||s[2]),n.source.end.offset++)}this.end(t);break}else u.push(t);else u.push(t);if(this.tokenizer.endOfFile()){i=!0;break}}n.raws.between=this.spacesAndCommentsFromEnd(u),u.length?(n.raws.afterName=this.spacesAndCommentsFromStart(u),this.raw(n,"params",u),i&&(t=u[u.length-1],n.source.end=this.getPosition(t[3]||t[2]),n.source.end.offset++,this.spaces=n.raws.between,n.raws.between="")):(n.raws.afterName="",n.params=""),o&&(n.nodes=[],this.current=n)}checkMissedSemicolon(t){let n=this.colon(t);if(n===!1)return;let a=0,s;for(let r=n-1;r>=0&&(s=t[r],!(s[0]!=="space"&&(a+=1,a===2)));r--);throw this.input.error("Missed semicolon",s[0]==="word"?s[3]+1:s[2])}colon(t){let n=0,a,s,r;for(let[i,o]of t.entries()){if(s=o,r=s[0],r==="("&&(n+=1),r===")"&&(n-=1),n===0&&r===":")if(!a)this.doubleColon(s);else{if(a[0]==="word"&&a[1]==="progid")continue;return i}a=s}return!1}comment(t){let n=new JFe;this.init(n,t[2]),n.source.end=this.getPosition(t[3]||t[2]),n.source.end.offset++;let a=t[1].slice(2,-2);if(/^\s*$/.test(a))n.text="",n.raws.left=a,n.raws.right="";else{let s=a.match(/^(\s*)([^]*\S)(\s*)$/);n.text=s[2],n.raws.left=s[1],n.raws.right=s[3]}}createTokenizer(){this.tokenizer=nxe(this.input)}decl(t,n){let a=new exe;this.init(a,t[0][2]);let s=t[t.length-1];for(s[0]===";"&&(this.semicolon=!0,t.pop()),a.source.end=this.getPosition(s[3]||s[2]||axe(t)),a.source.end.offset++;t[0][0]!=="word";)t.length===1&&this.unknownWord(t),a.raws.before+=t.shift()[1];for(a.source.start=this.getPosition(t[0][2]),a.prop="";t.length;){let l=t[0][0];if(l===":"||l==="space"||l==="comment")break;a.prop+=t.shift()[1]}a.raws.between="";let r;for(;t.length;)if(r=t.shift(),r[0]===":"){a.raws.between+=r[1];break}else r[0]==="word"&&/\w/.test(r[1])&&this.unknownWord([r]),a.raws.between+=r[1];(a.prop[0]==="_"||a.prop[0]==="*")&&(a.raws.before+=a.prop[0],a.prop=a.prop.slice(1));let i=[],o;for(;t.length&&(o=t[0][0],!(o!=="space"&&o!=="comment"));)i.push(t.shift());this.precheckMissedSemicolon(t);for(let l=t.length-1;l>=0;l--){if(r=t[l],r[1].toLowerCase()==="!important"){a.important=!0;let c=this.stringFrom(t,l);c=this.spacesFromEnd(t)+c,c!==" !important"&&(a.raws.important=c);break}else if(r[1].toLowerCase()==="important"){let c=t.slice(0),p="";for(let d=l;d>0;d--){let f=c[d][0];if(p.trim().startsWith("!")&&f!=="space")break;p=c.pop()[1]+p}p.trim().startsWith("!")&&(a.important=!0,a.raws.important=p,t=c)}if(r[0]!=="space"&&r[0]!=="comment")break}t.some(l=>l[0]!=="space"&&l[0]!=="comment")&&(a.raws.between+=i.map(l=>l[1]).join(""),i=[]),this.raw(a,"value",i.concat(t),n),a.value.includes(":")&&!n&&this.checkMissedSemicolon(t)}doubleColon(t){throw this.input.error("Double colon",{offset:t[2]},{offset:t[2]+t[1].length})}emptyRule(t){let n=new H_;this.init(n,t[2]),n.selector="",n.raws.between="",this.current=n}end(t){this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.semicolon=!1,this.current.raws.after=(this.current.raws.after||"")+this.spaces,this.spaces="",this.current.parent?(this.current.source.end=this.getPosition(t[2]),this.current.source.end.offset++,this.current=this.current.parent):this.unexpectedClose(t)}endFile(){this.current.parent&&this.unclosedBlock(),this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.current.raws.after=(this.current.raws.after||"")+this.spaces,this.root.source.end=this.getPosition(this.tokenizer.position())}freeSemicolon(t){if(this.spaces+=t[1],this.current.nodes){let n=this.current.nodes[this.current.nodes.length-1];n&&n.type==="rule"&&!n.raws.ownSemicolon&&(n.raws.ownSemicolon=this.spaces,this.spaces="")}}getPosition(t){let n=this.input.fromOffset(t);return{column:n.col,line:n.line,offset:t}}init(t,n){this.current.push(t),t.source={input:this.input,start:this.getPosition(n)},t.raws.before=this.spaces,this.spaces="",t.type!=="comment"&&(this.semicolon=!1)}other(t){let n=!1,a=null,s=!1,r=null,i=[],o=t[1].startsWith("--"),u=[],l=t;for(;l;){if(a=l[0],u.push(l),a==="("||a==="[")r||(r=l),i.push(a==="("?")":"]");else if(o&&s&&a==="{")r||(r=l),i.push("}");else if(i.length===0)if(a===";")if(s){this.decl(u,o);return}else break;else if(a==="{"){this.rule(u);return}else if(a==="}"){this.tokenizer.back(u.pop()),n=!0;break}else a===":"&&(s=!0);else a===i[i.length-1]&&(i.pop(),i.length===0&&(r=null));l=this.tokenizer.nextToken()}if(this.tokenizer.endOfFile()&&(n=!0),i.length>0&&this.unclosedBracket(r),n&&s){if(!o)for(;u.length&&(l=u[u.length-1][0],!(l!=="space"&&l!=="comment"));)this.tokenizer.back(u.pop());this.decl(u,o)}else this.unknownWord(u)}parse(){let t;for(;!this.tokenizer.endOfFile();)switch(t=this.tokenizer.nextToken(),t[0]){case"space":this.spaces+=t[1];break;case";":this.freeSemicolon(t);break;case"}":this.end(t);break;case"comment":this.comment(t);break;case"at-word":this.atrule(t);break;case"{":this.emptyRule(t);break;default:this.other(t);break}this.endFile()}precheckMissedSemicolon(){}raw(t,n,a,s){let r,i,o=a.length,u="",l=!0,c,p;for(let d=0;df+T[1],"");t.raws[n]={raw:d,value:u}}t[n]=u}rule(t){t.pop();let n=new H_;this.init(n,t[0][2]),n.raws.between=this.spacesAndCommentsFromEnd(t),this.raw(n,"selector",t),this.current=n}spacesAndCommentsFromEnd(t){let n,a="";for(;t.length&&(n=t[t.length-1][0],!(n!=="space"&&n!=="comment"));)a=t.pop()[1]+a;return a}spacesAndCommentsFromStart(t){let n,a="";for(;t.length&&(n=t[0][0],!(n!=="space"&&n!=="comment"));)a+=t.shift()[1];return a}spacesFromEnd(t){let n,a="";for(;t.length&&(n=t[t.length-1][0],n==="space");)a=t.pop()[1]+a;return a}stringFrom(t,n){let a="";for(let s=n;st.type==="warning")}get content(){return this.css}};var df=bE;bE.default=bE;let cxe=Vs,dxe=uf,Exe=sg,pxe=cf,K_=df,fxe=go,mxe=uc,{isClean:ua,my:Txe}=Oo;const _xe={atrule:"AtRule",comment:"Comment",decl:"Declaration",document:"Document",root:"Root",rule:"Rule"},hxe={AtRule:!0,AtRuleExit:!0,Comment:!0,CommentExit:!0,Declaration:!0,DeclarationExit:!0,Document:!0,DocumentExit:!0,Once:!0,OnceExit:!0,postcssPlugin:!0,prepare:!0,Root:!0,RootExit:!0,Rule:!0,RuleExit:!0},Sxe={Once:!0,postcssPlugin:!0,prepare:!0},$r=0;function ri(e){return typeof e=="object"&&typeof e.then=="function"}function ig(e){let t=!1,n=_xe[e.type];return e.type==="decl"?t=e.prop.toLowerCase():e.type==="atrule"&&(t=e.name.toLowerCase()),t&&e.append?[n,n+"-"+t,$r,n+"Exit",n+"Exit-"+t]:t?[n,n+"-"+t,n+"Exit",n+"Exit-"+t]:e.append?[n,$r,n+"Exit"]:[n,n+"Exit"]}function j_(e){let t;return e.type==="document"?t=["Document",$r,"DocumentExit"]:e.type==="root"?t=["Root",$r,"RootExit"]:t=ig(e),{eventIndex:0,events:t,iterator:0,node:e,visitorIndex:0,visitors:[]}}function vE(e){return e[ua]=!1,e.nodes&&e.nodes.forEach(t=>vE(t)),e}let CE={},kr=class og{constructor(t,n,a){this.stringified=!1,this.processed=!1;let s;if(typeof n=="object"&&n!==null&&(n.type==="root"||n.type==="document"))s=vE(n);else if(n instanceof og||n instanceof K_)s=vE(n.root),n.map&&(typeof a.map>"u"&&(a.map={}),a.map.inline||(a.map.inline=!1),a.map.prev=n.map);else{let r=pxe;a.syntax&&(r=a.syntax.parse),a.parser&&(r=a.parser),r.parse&&(r=r.parse);try{s=r(n,a)}catch(i){this.processed=!0,this.error=i}s&&!s[Txe]&&cxe.rebuild(s)}this.result=new K_(t,s,a),this.helpers={...CE,postcss:CE,result:this.result},this.plugins=this.processor.plugins.map(r=>typeof r=="object"&&r.prepare?{...r,...r.prepare(this.result)}:r)}async(){return this.error?Promise.reject(this.error):this.processed?Promise.resolve(this.result):(this.processing||(this.processing=this.runAsync()),this.processing)}catch(t){return this.async().catch(t)}finally(t){return this.async().then(t,t)}getAsyncError(){throw new Error("Use process(css).then(cb) to work with async plugins")}handleError(t,n){let a=this.result.lastPlugin;try{n&&n.addToError(t),this.error=t,t.name==="CssSyntaxError"&&!t.plugin?(t.plugin=a.postcssPlugin,t.setMessage()):a.postcssVersion}catch(s){console&&console.error&&console.error(s)}return t}prepareVisitors(){this.listeners={};let t=(n,a,s)=>{this.listeners[a]||(this.listeners[a]=[]),this.listeners[a].push([n,s])};for(let n of this.plugins)if(typeof n=="object")for(let a in n){if(!hxe[a]&&/^[A-Z]/.test(a))throw new Error(`Unknown event ${a} in ${n.postcssPlugin}. Try to update PostCSS (${this.processor.version} now).`);if(!Sxe[a])if(typeof n[a]=="object")for(let s in n[a])s==="*"?t(n,a,n[a][s]):t(n,a+"-"+s.toLowerCase(),n[a][s]);else typeof n[a]=="function"&&t(n,a,n[a])}this.hasListener=Object.keys(this.listeners).length>0}async runAsync(){this.plugin=0;for(let t=0;t0;){let a=this.visitTick(n);if(ri(a))try{await a}catch(s){let r=n[n.length-1].node;throw this.handleError(s,r)}}}if(this.listeners.OnceExit)for(let[n,a]of this.listeners.OnceExit){this.result.lastPlugin=n;try{if(t.type==="document"){let s=t.nodes.map(r=>a(r,this.helpers));await Promise.all(s)}else await a(t,this.helpers)}catch(s){throw this.handleError(s)}}}return this.processed=!0,this.stringify()}runOnRoot(t){this.result.lastPlugin=t;try{if(typeof t=="object"&&t.Once){if(this.result.root.type==="document"){let n=this.result.root.nodes.map(a=>t.Once(a,this.helpers));return ri(n[0])?Promise.all(n):n}return t.Once(this.result.root,this.helpers)}else if(typeof t=="function")return t(this.result.root,this.result)}catch(n){throw this.handleError(n)}}stringify(){if(this.error)throw this.error;if(this.stringified)return this.result;this.stringified=!0,this.sync();let t=this.result.opts,n=mxe;t.syntax&&(n=t.syntax.stringify),t.stringifier&&(n=t.stringifier),n.stringify&&(n=n.stringify);let s=new Exe(n,this.result.root,this.result.opts).generate();return this.result.css=s[0],this.result.map=s[1],this.result}sync(){if(this.error)throw this.error;if(this.processed)return this.result;if(this.processed=!0,this.processing)throw this.getAsyncError();for(let t of this.plugins){let n=this.runOnRoot(t);if(ri(n))throw this.getAsyncError()}if(this.prepareVisitors(),this.hasListener){let t=this.result.root;for(;!t[ua];)t[ua]=!0,this.walkSync(t);if(this.listeners.OnceExit)if(t.type==="document")for(let n of t.nodes)this.visitSync(this.listeners.OnceExit,n);else this.visitSync(this.listeners.OnceExit,t)}return this.result}then(t,n){return this.async().then(t,n)}toString(){return this.css}visitSync(t,n){for(let[a,s]of t){this.result.lastPlugin=a;let r;try{r=s(n,this.helpers)}catch(i){throw this.handleError(i,n.proxyOf)}if(n.type!=="root"&&n.type!=="document"&&!n.parent)return!0;if(ri(r))throw this.getAsyncError()}}visitTick(t){let n=t[t.length-1],{node:a,visitors:s}=n;if(a.type!=="root"&&a.type!=="document"&&!a.parent){t.pop();return}if(s.length>0&&n.visitorIndex{s[ua]||this.walkSync(s)});else{let s=this.listeners[a];if(s&&this.visitSync(s,t.toProxy()))return}}warnings(){return this.sync().warnings()}get content(){return this.stringify().content}get css(){return this.stringify().css}get map(){return this.stringify().map}get messages(){return this.sync().messages}get opts(){return this.result.opts}get processor(){return this.result.processor}get root(){return this.sync().root}get[Symbol.toStringTag](){return"LazyResult"}};kr.registerPostcss=e=>{CE=e};var ug=kr;kr.default=kr;fxe.registerLazyResult(kr);dxe.registerLazyResult(kr);let Axe=sg,Oxe=cf;const gxe=df;let Ixe=uc,DE=class{constructor(t,n,a){n=n.toString(),this.stringified=!1,this._processor=t,this._css=n,this._opts=a,this._map=void 0;let s,r=Ixe;this.result=new gxe(this._processor,s,this._opts),this.result.css=n;let i=this;Object.defineProperty(this.result,"root",{get(){return i.root}});let o=new Axe(r,s,this._opts,n);if(o.isMap()){let[u,l]=o.generate();u&&(this.result.css=u),l&&(this.result.map=l)}else o.clearAnnotation(),this.result.css=o.css}async(){return this.error?Promise.reject(this.error):Promise.resolve(this.result)}catch(t){return this.async().catch(t)}finally(t){return this.async().then(t,t)}sync(){if(this.error)throw this.error;return this.result}then(t,n){return this.async().then(t,n)}toString(){return this._css}warnings(){return[]}get content(){return this.result.css}get css(){return this.result.css}get map(){return this.result.map}get messages(){return[]}get opts(){return this.result.opts}get processor(){return this.result.processor}get root(){if(this._root)return this._root;let t,n=Oxe;try{t=n(this._css,this._opts)}catch(a){this.error=a}if(this.error)throw this.error;return this._root=t,t}get[Symbol.toStringTag](){return"NoWorkResult"}};var Rxe=DE;DE.default=DE;let Nxe=uf,bxe=ug,vxe=Rxe,Cxe=go,qi=class{constructor(t=[]){this.version="8.4.47",this.plugins=this.normalize(t)}normalize(t){let n=[];for(let a of t)if(a.postcss===!0?a=a():a.postcss&&(a=a.postcss),typeof a=="object"&&Array.isArray(a.plugins))n=n.concat(a.plugins);else if(typeof a=="object"&&a.postcssPlugin)n.push(a);else if(typeof a=="function")n.push(a);else if(!(typeof a=="object"&&(a.parse||a.stringify)))throw new Error(a+" is not a PostCSS plugin");return n}process(t,n={}){return!this.plugins.length&&!n.parser&&!n.stringifier&&!n.syntax?new vxe(this,t,n):new bxe(this,t,n)}use(t){return this.plugins=this.plugins.concat(this.normalize([t])),this}};var Dxe=qi;qi.default=qi;Cxe.registerProcessor(qi);Nxe.registerProcessor(qi);var q_={};let lg=of,cg=cc,Pxe=Vs,Lxe=af,dg=dc,Eg=uf,yxe=UFe,$xe=Ec,kxe=ug,Uxe=ZO,wxe=lc,Mxe=cf,Ef=Dxe,Wxe=df,pg=go,fg=lf,zxe=uc,Fxe=rg;function ht(...e){return e.length===1&&Array.isArray(e[0])&&(e=e[0]),new Ef(e)}ht.plugin=function(t,n){let a=!1;function s(...i){console&&console.warn&&!a&&(a=!0,console.warn(t+`: postcss.plugin was deprecated. Migration guide: +https://evilmartians.com/chronicles/postcss-8-plugin-migration`),q_.LANG&&q_.LANG.startsWith("cn")&&console.warn(t+`: 里面 postcss.plugin 被弃用. 迁移指南: +https://www.w3ctech.com/topic/2226`));let o=n(...i);return o.postcssPlugin=t,o.postcssVersion=new Ef().version,o}let r;return Object.defineProperty(s,"postcss",{get(){return r||(r=s()),r}}),s.process=function(i,o,u){return ht([s(u)]).process(i,o)},s};ht.stringify=zxe;ht.parse=Mxe;ht.fromJSON=yxe;ht.list=Uxe;ht.comment=e=>new cg(e);ht.atRule=e=>new lg(e);ht.decl=e=>new dg(e);ht.rule=e=>new fg(e);ht.root=e=>new pg(e);ht.document=e=>new Eg(e);ht.CssSyntaxError=Lxe;ht.Declaration=dg;ht.Container=Pxe;ht.Processor=Ef;ht.Document=Eg;ht.Comment=cg;ht.Warning=Fxe;ht.AtRule=lg;ht.Result=Wxe;ht.Input=$xe;ht.Rule=fg;ht.Root=pg;ht.Node=wxe;kxe.registerPostcss(ht);var xxe=ht;ht.default=ht;const Bxe=sO,Y_=Wze,{isPlainObject:Gxe}=tf,X_=Jze,Hxe=eFe,{parse:Vxe}=xxe,Kxe=["img","audio","video","picture","svg","object","map","iframe","embed"],jxe=["script","style"];function li(e,t){e&&Object.keys(e).forEach(function(n){t(e[n],n)})}function Ca(e,t){return{}.hasOwnProperty.call(e,t)}function Q_(e,t){const n=[];return li(e,function(a){t(a)&&n.push(a)}),n}function qxe(e){for(const t in e)if(Ca(e,t))return!1;return!0}function Yxe(e){return e.map(function(t){if(!t.url)throw new Error("URL missing");return t.url+(t.w?` ${t.w}w`:"")+(t.h?` ${t.h}h`:"")+(t.d?` ${t.d}x`:"")}).join(", ")}var Xxe=Yi;const Qxe=/^[^\0\t\n\f\r /<=>]+$/;function Yi(e,t,n){if(e==null)return"";typeof e=="number"&&(e=e.toString());let a="",s="";function r(B,Q){const q=this;this.tag=B,this.attribs=Q||{},this.tagPosition=a.length,this.text="",this.mediaChildren=[],this.updateParentNodeText=function(){if(R.length){const oe=R[R.length-1];oe.text+=q.text}},this.updateParentNodeMediaChildren=function(){R.length&&Kxe.includes(this.tag)&&R[R.length-1].mediaChildren.push(this.tag)}}t=Object.assign({},Yi.defaults,t),t.parser=Object.assign({},Zxe,t.parser);const i=function(B){return t.allowedTags===!1||(t.allowedTags||[]).indexOf(B)>-1};jxe.forEach(function(B){i(B)&&!t.allowVulnerableTags&&console.warn(` + +⚠️ Your \`allowedTags\` option includes, \`${B}\`, which is inherently +vulnerable to XSS attacks. Please remove it from \`allowedTags\`. +Or, to disable this warning, add the \`allowVulnerableTags\` option +and ensure you are accounting for this risk. + +`)});const o=t.nonTextTags||["script","style","textarea","option"];let u,l;t.allowedAttributes&&(u={},l={},li(t.allowedAttributes,function(B,Q){u[Q]=[];const q=[];B.forEach(function(oe){typeof oe=="string"&&oe.indexOf("*")>=0?q.push(Y_(oe).replace(/\\\*/g,".*")):u[Q].push(oe)}),q.length&&(l[Q]=new RegExp("^("+q.join("|")+")$"))}));const c={},p={},d={};li(t.allowedClasses,function(B,Q){if(u&&(Ca(u,Q)||(u[Q]=[]),u[Q].push("class")),c[Q]=B,Array.isArray(B)){const q=[];c[Q]=[],d[Q]=[],B.forEach(function(oe){typeof oe=="string"&&oe.indexOf("*")>=0?q.push(Y_(oe).replace(/\\\*/g,".*")):oe instanceof RegExp?d[Q].push(oe):c[Q].push(oe)}),q.length&&(p[Q]=new RegExp("^("+q.join("|")+")$"))}});const f={};let T;li(t.transformTags,function(B,Q){let q;typeof B=="function"?q=B:typeof B=="string"&&(q=Yi.simpleTransform(B)),Q==="*"?T=q:f[Q]=q});let O,R,g,N,S,A,b=!1;P();const y=new Bxe.Parser({onopentag:function(B,Q){if(t.enforceHtmlBoundary&&B==="html"&&P(),S){A++;return}const q=new r(B,Q);R.push(q);let oe=!1;const Z=!!q.text;let Ne;if(Ca(f,B)&&(Ne=f[B](B,Q),q.attribs=Q=Ne.attribs,Ne.text!==void 0&&(q.innerText=Ne.text),B!==Ne.tagName&&(q.name=B=Ne.tagName,N[O]=Ne.tagName)),T&&(Ne=T(B,Q),q.attribs=Q=Ne.attribs,B!==Ne.tagName&&(q.name=B=Ne.tagName,N[O]=Ne.tagName)),(!i(B)||t.disallowedTagsMode==="recursiveEscape"&&!qxe(g)||t.nestingLimit!=null&&O>=t.nestingLimit)&&(oe=!0,g[O]=!0,(t.disallowedTagsMode==="discard"||t.disallowedTagsMode==="completelyDiscard")&&o.indexOf(B)!==-1&&(S=!0,A=1),g[O]=!0),O++,oe){if(t.disallowedTagsMode==="discard"||t.disallowedTagsMode==="completelyDiscard")return;s=a,a=""}a+="<"+B,B==="script"&&(t.allowedScriptHostnames||t.allowedScriptDomains)&&(q.innerText=""),(!u||Ca(u,B)||u["*"])&&li(Q,function(ye,we){if(!Qxe.test(we)){delete q.attribs[we];return}if(ye===""&&!t.allowedEmptyAttributes.includes(we)&&(t.nonBooleanAttributes.includes(we)||t.nonBooleanAttributes.includes("*"))){delete q.attribs[we];return}let Gt=!1;if(!u||Ca(u,B)&&u[B].indexOf(we)!==-1||u["*"]&&u["*"].indexOf(we)!==-1||Ca(l,B)&&l[B].test(we)||l["*"]&&l["*"].test(we))Gt=!0;else if(u&&u[B]){for(const Ke of u[B])if(Gxe(Ke)&&Ke.name&&Ke.name===we){Gt=!0;let be="";if(Ke.multiple===!0){const Nt=ye.split(" ");for(const ne of Nt)Ke.values.indexOf(ne)!==-1&&(be===""?be=ne:be+=" "+ne)}else Ke.values.indexOf(ye)>=0&&(be=ye);ye=be}}if(Gt){if(t.allowedSchemesAppliedToAttributes.indexOf(we)!==-1&&D(B,ye)){delete q.attribs[we];return}if(B==="script"&&we==="src"){let Ke=!0;try{const be=F(ye);if(t.allowedScriptHostnames||t.allowedScriptDomains){const Nt=(t.allowedScriptHostnames||[]).find(function(Se){return Se===be.url.hostname}),ne=(t.allowedScriptDomains||[]).find(function(Se){return be.url.hostname===Se||be.url.hostname.endsWith(`.${Se}`)});Ke=Nt||ne}}catch{Ke=!1}if(!Ke){delete q.attribs[we];return}}if(B==="iframe"&&we==="src"){let Ke=!0;try{const be=F(ye);if(be.isRelativeUrl)Ke=Ca(t,"allowIframeRelativeUrls")?t.allowIframeRelativeUrls:!t.allowedIframeHostnames&&!t.allowedIframeDomains;else if(t.allowedIframeHostnames||t.allowedIframeDomains){const Nt=(t.allowedIframeHostnames||[]).find(function(Se){return Se===be.url.hostname}),ne=(t.allowedIframeDomains||[]).find(function(Se){return be.url.hostname===Se||be.url.hostname.endsWith(`.${Se}`)});Ke=Nt||ne}}catch{Ke=!1}if(!Ke){delete q.attribs[we];return}}if(we==="srcset")try{let Ke=Hxe(ye);if(Ke.forEach(function(be){D("srcset",be.url)&&(be.evil=!0)}),Ke=Q_(Ke,function(be){return!be.evil}),Ke.length)ye=Yxe(Q_(Ke,function(be){return!be.evil})),q.attribs[we]=ye;else{delete q.attribs[we];return}}catch{delete q.attribs[we];return}if(we==="class"){const Ke=c[B],be=c["*"],Nt=p[B],ne=d[B],Se=p["*"],Ae=[Nt,Se].concat(ne).filter(function(Ce){return Ce});if(Ke&&be?ye=se(ye,X_(Ke,be),Ae):ye=se(ye,Ke||be,Ae),!ye.length){delete q.attribs[we];return}}if(we==="style"){if(t.parseStyleAttributes)try{const Ke=Vxe(B+" {"+ye+"}",{map:!1}),be=$(Ke,t.allowedStyles);if(ye=z(be),ye.length===0){delete q.attribs[we];return}}catch{typeof window<"u"&&console.warn('Failed to parse "'+B+" {"+ye+`}", If you're running this in a browser, we recommend to disable style parsing: options.parseStyleAttributes: false, since this only works in a node environment due to a postcss dependency, More info: https://github.com/apostrophecms/sanitize-html/issues/547`),delete q.attribs[we];return}else if(t.allowedStyles)throw new Error("allowedStyles option cannot be used together with parseStyleAttributes: false.")}a+=" "+we,ye&&ye.length?a+='="'+C(ye,!0)+'"':t.allowedEmptyAttributes.includes(we)&&(a+='=""')}else delete q.attribs[we]}),t.selfClosing.indexOf(B)!==-1?a+=" />":(a+=">",q.innerText&&!Z&&!t.textFilter&&(a+=C(q.innerText),b=!0)),oe&&(a=s+C(a),s="")},ontext:function(B){if(S)return;const Q=R[R.length-1];let q;if(Q&&(q=Q.tag,B=Q.innerText!==void 0?Q.innerText:B),t.disallowedTagsMode==="completelyDiscard"&&!i(q))B="";else if((t.disallowedTagsMode==="discard"||t.disallowedTagsMode==="completelyDiscard")&&(q==="script"||q==="style"))a+=B;else{const oe=C(B,!1);t.textFilter&&!b?a+=t.textFilter(oe,q):b||(a+=oe)}if(R.length){const oe=R[R.length-1];oe.text+=B}},onclosetag:function(B,Q){if(S)if(A--,!A)S=!1;else return;const q=R.pop();if(!q)return;if(q.tag!==B){R.push(q);return}S=t.enforceHtmlBoundary?B==="html":!1,O--;const oe=g[O];if(oe){if(delete g[O],t.disallowedTagsMode==="discard"||t.disallowedTagsMode==="completelyDiscard"){q.updateParentNodeText();return}s=a,a=""}if(N[O]&&(B=N[O],delete N[O]),t.exclusiveFilter&&t.exclusiveFilter(q)){a=a.substr(0,q.tagPosition);return}if(q.updateParentNodeMediaChildren(),q.updateParentNodeText(),t.selfClosing.indexOf(B)!==-1||Q&&!i(B)&&["escape","recursiveEscape"].indexOf(t.disallowedTagsMode)>=0){oe&&(a=s,s="");return}a+="",oe&&(a=s+C(a),s=""),b=!1}},t.parser);return y.write(e),y.end(),a;function P(){a="",O=0,R=[],g={},N={},S=!1,A=0}function C(B,Q){return typeof B!="string"&&(B=B+""),t.parser.decodeEntities&&(B=B.replace(/&/g,"&").replace(//g,">"),Q&&(B=B.replace(/"/g,"""))),B=B.replace(/&(?![a-zA-Z0-9#]{1,20};)/g,"&").replace(//g,">"),Q&&(B=B.replace(/"/g,""")),B}function D(B,Q){for(Q=Q.replace(/[\x00-\x20]+/g,"");;){const Z=Q.indexOf("",Z+4);if(Ne===-1)break;Q=Q.substring(0,Z)+Q.substring(Ne+3)}const q=Q.match(/^([a-zA-Z][a-zA-Z0-9.\-+]*):/);if(!q)return Q.match(/^[/\\]{2}/)?!t.allowProtocolRelative:!1;const oe=q[1].toLowerCase();return Ca(t.allowedSchemesByTag,B)?t.allowedSchemesByTag[B].indexOf(oe)===-1:!t.allowedSchemes||t.allowedSchemes.indexOf(oe)===-1}function F(B){if(B=B.replace(/^(\w+:)?\s*[\\/]\s*[\\/]/,"$1//"),B.startsWith("relative:"))throw new Error("relative: exploit attempt");let Q="relative://relative-site";for(let Z=0;Z<100;Z++)Q+=`/${Z}`;const q=new URL(B,Q);return{isRelativeUrl:q&&q.hostname==="relative-site"&&q.protocol==="relative:",url:q}}function $(B,Q){if(!Q)return B;const q=B.nodes[0];let oe;return Q[q.selector]&&Q["*"]?oe=X_(Q[q.selector],Q["*"]):oe=Q[q.selector]||Q["*"],oe&&(B.nodes[0].nodes=q.nodes.reduce(Y(oe),[])),B}function z(B){return B.nodes[0].nodes.reduce(function(Q,q){return Q.push(`${q.prop}:${q.value}${q.important?" !important":""}`),Q},[]).join(";")}function Y(B){return function(Q,q){return Ca(B,q.prop)&&B[q.prop].some(function(Z){return Z.test(q.value)})&&Q.push(q),Q}}function se(B,Q,q){return Q?(B=B.split(/\s+/),B.filter(function(oe){return Q.indexOf(oe)!==-1||q.some(function(Z){return Z.test(oe)})}).join(" ")):B}}const Zxe={decodeEntities:!0};Yi.defaults={allowedTags:["address","article","aside","footer","header","h1","h2","h3","h4","h5","h6","hgroup","main","nav","section","blockquote","dd","div","dl","dt","figcaption","figure","hr","li","main","ol","p","pre","ul","a","abbr","b","bdi","bdo","br","cite","code","data","dfn","em","i","kbd","mark","q","rb","rp","rt","rtc","ruby","s","samp","small","span","strong","sub","sup","time","u","var","wbr","caption","col","colgroup","table","tbody","td","tfoot","th","thead","tr"],nonBooleanAttributes:["abbr","accept","accept-charset","accesskey","action","allow","alt","as","autocapitalize","autocomplete","blocking","charset","cite","class","color","cols","colspan","content","contenteditable","coords","crossorigin","data","datetime","decoding","dir","dirname","download","draggable","enctype","enterkeyhint","fetchpriority","for","form","formaction","formenctype","formmethod","formtarget","headers","height","hidden","high","href","hreflang","http-equiv","id","imagesizes","imagesrcset","inputmode","integrity","is","itemid","itemprop","itemref","itemtype","kind","label","lang","list","loading","low","max","maxlength","media","method","min","minlength","name","nonce","optimum","pattern","ping","placeholder","popover","popovertarget","popovertargetaction","poster","preload","referrerpolicy","rel","rows","rowspan","sandbox","scope","shape","size","sizes","slot","span","spellcheck","src","srcdoc","srclang","srcset","start","step","style","tabindex","target","title","translate","type","usemap","value","width","wrap","onauxclick","onafterprint","onbeforematch","onbeforeprint","onbeforeunload","onbeforetoggle","onblur","oncancel","oncanplay","oncanplaythrough","onchange","onclick","onclose","oncontextlost","oncontextmenu","oncontextrestored","oncopy","oncuechange","oncut","ondblclick","ondrag","ondragend","ondragenter","ondragleave","ondragover","ondragstart","ondrop","ondurationchange","onemptied","onended","onerror","onfocus","onformdata","onhashchange","oninput","oninvalid","onkeydown","onkeypress","onkeyup","onlanguagechange","onload","onloadeddata","onloadedmetadata","onloadstart","onmessage","onmessageerror","onmousedown","onmouseenter","onmouseleave","onmousemove","onmouseout","onmouseover","onmouseup","onoffline","ononline","onpagehide","onpageshow","onpaste","onpause","onplay","onplaying","onpopstate","onprogress","onratechange","onreset","onresize","onrejectionhandled","onscroll","onscrollend","onsecuritypolicyviolation","onseeked","onseeking","onselect","onslotchange","onstalled","onstorage","onsubmit","onsuspend","ontimeupdate","ontoggle","onunhandledrejection","onunload","onvolumechange","onwaiting","onwheel"],disallowedTagsMode:"discard",allowedAttributes:{a:["href","name","target"],img:["src","srcset","alt","title","width","height","loading"]},allowedEmptyAttributes:["alt"],selfClosing:["img","br","hr","area","base","basefont","input","link","meta"],allowedSchemes:["http","https","ftp","mailto","tel"],allowedSchemesByTag:{},allowedSchemesAppliedToAttributes:["href","src","cite"],allowProtocolRelative:!0,enforceHtmlBoundary:!1,parseStyleAttributes:!0};Yi.simpleTransform=function(e,t,n){return n=n===void 0?!0:n,t=t||{},function(a,s){let r;if(n)for(r in t)s[r]=t[r];else s=t;return{tagName:e,attribs:s}}};const mg=BE(Xxe),Jxe=e=>mg(Y9e(e,{target:"_blank"}),{allowedTags:["a"],disallowedTagsMode:"escape"}),Xi=e=>{const t=_t.parse(e,{breaks:!0});return mg(t)},eBe={id:"admin-app",class:"admin-card"},tBe={for:"admin_contact"},nBe=["value"],aBe=["disabled"],sBe={for:"max_users"},rBe=["disabled"],iBe={class:"admin-help"},oBe={class:"info-box"},uBe={for:"max_single_file_size"},lBe=["disabled"],cBe={for:"max_zip_file_size"},dBe=["disabled"],EBe={for:"gpx_limit_import"},pBe=["disabled"],fBe={for:"stats_workouts_limit"},mBe=["disabled"],TBe={class:"admin-help"},_Be={class:"info-box"},hBe={class:"about-label",for:"about"},SBe={class:"textarea-description"},ABe=["innerHTML"],OBe={class:"privacy-policy-label",for:"privacy_policy"},gBe={class:"textarea-description"},IBe=["innerHTML"],RBe={key:5,class:"form-buttons"},NBe={class:"confirm",type:"submit"},bBe={key:6,class:"form-buttons"},vBe=ee({__name:"AdminApplication",props:{appConfig:{},edition:{type:Boolean,default:!1}},setup(e){const t=e,{edition:n}=he(t),a=ke(),s=Sa(),r=Yt({admin_contact:"",max_users:0,max_single_file_size:0,max_zip_file_size:0,gpx_limit_import:0,about:"",privacy_policy:"",stats_workouts_limit:0}),i=w(()=>a.getters[K.GETTERS.ERROR_MESSAGES]);Et(()=>{t.appConfig&&o(t.appConfig)});function o(c){Object.keys(r).map(p=>{["max_single_file_size","max_zip_file_size"].includes(p)?r[p]=h9e(c[p]):["about","privacy_policy"].includes(p)?r[p]=c[p]!==null?c[p]:"":r[p]=c[p]})}function u(){o(t.appConfig),a.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),s.push("/admin/application")}function l(){const c=Object.assign({},r);c.max_single_file_size*=1048576,c.max_zip_file_size*=1048576,a.dispatch(K.ACTIONS.UPDATE_APPLICATION_CONFIG,c)}return(c,p)=>{const d=re("ErrorMessage"),f=re("Card");return h(),I("div",eBe,[W(f,null,{title:ue(()=>[H(_(c.$t("admin.APP_CONFIG.TITLE")),1)]),content:ue(()=>[E("form",{class:"admin-form",onSubmit:ve(l,["prevent"])},[E("label",tBe,[H(_(c.$t("admin.APP_CONFIG.ADMIN_CONTACT"))+": ",1),!m(n)&&!r.admin_contact?(h(),I("input",{key:0,class:"no-contact",value:c.$t("admin.APP_CONFIG.NO_CONTACT_EMAIL"),disabled:""},null,8,nBe)):$e((h(),I("input",{key:1,id:"admin_contact",name:"admin_contact",type:"email","onUpdate:modelValue":p[0]||(p[0]=T=>r.admin_contact=T),disabled:!m(n)},null,8,aBe)),[[st,r.admin_contact]])]),E("label",sBe,[H(_(c.$t("admin.APP_CONFIG.MAX_USERS_LABEL"))+": ",1),$e(E("input",{id:"max_users",name:"max_users",type:"number",min:"0","onUpdate:modelValue":p[1]||(p[1]=T=>r.max_users=T),disabled:!m(n)},null,8,rBe),[[st,r.max_users]])]),E("div",iBe,[E("span",oBe,[p[10]||(p[10]=E("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1)),H(" "+_(c.$t("admin.APP_CONFIG.MAX_USERS_HELP")),1)])]),E("label",uBe,[H(_(c.$t("admin.APP_CONFIG.SINGLE_UPLOAD_MAX_SIZE_LABEL"))+": ",1),$e(E("input",{id:"max_single_file_size",name:"max_single_file_size",type:"number",step:"0.1",min:"0","onUpdate:modelValue":p[2]||(p[2]=T=>r.max_single_file_size=T),disabled:!m(n)},null,8,lBe),[[st,r.max_single_file_size]])]),E("label",cBe,[H(_(c.$t("admin.APP_CONFIG.ZIP_UPLOAD_MAX_SIZE_LABEL"))+": ",1),$e(E("input",{id:"max_zip_file_size",name:"max_zip_file_size",type:"number",step:"0.1",min:"0","onUpdate:modelValue":p[3]||(p[3]=T=>r.max_zip_file_size=T),disabled:!m(n)},null,8,dBe),[[st,r.max_zip_file_size]])]),E("label",EBe,[H(_(c.$t("admin.APP_CONFIG.MAX_FILES_IN_ZIP_LABEL"))+": ",1),$e(E("input",{id:"gpx_limit_import",name:"gpx_limit_import",type:"number",min:"0","onUpdate:modelValue":p[4]||(p[4]=T=>r.gpx_limit_import=T),disabled:!m(n)},null,8,pBe),[[st,r.gpx_limit_import]])]),E("label",fBe,[H(_(c.$t("admin.APP_CONFIG.STATS_WORKOUTS_LIMIT_LABEL"))+": ",1),$e(E("input",{id:"stats_workouts_limit",name:"stats_workouts_limit",type:"number",min:"0","onUpdate:modelValue":p[5]||(p[5]=T=>r.stats_workouts_limit=T),disabled:!m(n)},null,8,mBe),[[st,r.stats_workouts_limit]])]),E("div",TBe,[E("span",_Be,[p[11]||(p[11]=E("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1)),H(" "+_(c.$t("admin.APP_CONFIG.STATS_WORKOUTS_LIMIT_HELP")),1)])]),E("label",hBe,_(c.$t("admin.ABOUT.TEXT"))+": ",1),E("span",SBe,_(c.$t("admin.ABOUT.DESCRIPTION")),1),m(n)?$e((h(),I("textarea",{key:0,id:"about",name:"about",rows:"10","onUpdate:modelValue":p[6]||(p[6]=T=>r.about=T)},null,512)),[[st,r.about]]):(h(),I("div",{key:1,innerHTML:r.about?m(Xi)(r.about):c.$t("admin.NO_TEXT_ENTERED"),class:"textarea-content"},null,8,ABe)),E("label",OBe,_(Ve(c.$t("privacy_policy.TITLE")))+": ",1),E("span",gBe,_(c.$t("admin.PRIVACY_POLICY_DESCRIPTION")),1),m(n)?$e((h(),I("textarea",{key:2,id:"privacy_policy",name:"privacy_policy",rows:"20","onUpdate:modelValue":p[7]||(p[7]=T=>r.privacy_policy=T)},null,512)),[[st,r.privacy_policy]]):(h(),I("div",{key:3,innerHTML:r.privacy_policy?m(Xi)(r.privacy_policy):c.$t("admin.NO_TEXT_ENTERED"),class:"textarea-content"},null,8,IBe)),i.value?(h(),j(d,{key:4,message:i.value},null,8,["message"])):M("",!0),m(n)?(h(),I("div",RBe,[E("button",NBe,_(c.$t("buttons.SUBMIT")),1),E("button",{class:"cancel",onClick:ve(u,["prevent"])},_(c.$t("buttons.CANCEL")),1)])):(h(),I("div",bBe,[E("button",{class:"confirm",onClick:p[8]||(p[8]=ve(T=>c.$router.push("/admin/application/edit"),["prevent"]))},_(c.$t("buttons.EDIT")),1),E("button",{class:"cancel",onClick:p[9]||(p[9]=ve(T=>c.$router.push("/admin"),["prevent"]))},_(c.$t("admin.BACK_TO_ADMIN")),1)]))],32)]),_:1})])}}}),Z_=ie(vBe,[["__scopeId","data-v-e3ac3fa7"]]),CBe=(e,t)=>{const n=e.translatedLabel.toLowerCase(),a=t.translatedLabel.toLowerCase();return n>a?1:ne.map(n=>({...n,translatedLabel:t(`equipment_types.${n.label}.LABEL`)})).sort(CBe),pf=(e,t)=>{const n=e.label.toLowerCase(),a=t.label.toLowerCase();return n>a?1:na?e.filter(r=>_g[r.equipment_type.label].includes(a.label)).filter(r=>n=="all"?!0:n=="withIncludedIds"&&s.includes(r.id)||r.is_active).map(r=>({...r,label:r.is_active?r.label:`${r.label} (${t("common.INACTIVE")})`})).sort(pf):[],DBe={id:"admin-equipment-types",class:"admin-card"},PBe={class:"responsive-table"},LBe={class:"text-left"},yBe={class:"text-left equipment-type-action"},$Be={class:"text-center"},kBe={class:"cell-heading"},UBe={class:"equipment-type-label"},wBe={class:"cell-heading"},MBe={class:"text-center"},WBe={class:"cell-heading"},zBe={class:"equipment-type-action"},FBe={class:"cell-heading"},xBe={class:"action-button"},BBe=["onClick"],GBe={key:0,class:"has-equipments"},HBe=ee({__name:"AdminEquipmentTypes",setup(e){const{t}=$t(),n=ke(),a=w(()=>Tg(n.getters[We.GETTERS.EQUIPMENT_TYPES],t)),s=w(()=>n.getters[K.GETTERS.ERROR_MESSAGES]);Et(()=>r());function r(){n.dispatch(We.ACTIONS.GET_EQUIPMENT_TYPES)}function i(o,u){n.dispatch(We.ACTIONS.UPDATE_EQUIPMENT_TYPE,{id:o,isActive:u})}return(o,u)=>{const l=re("EquipmentTypeImage"),c=re("ErrorMessage"),p=re("Card");return h(),I("div",DBe,[W(p,null,{title:ue(()=>[H(_(o.$t("admin.EQUIPMENT_TYPES.TITLE")),1)]),content:ue(()=>[E("button",{class:"top-button",onClick:u[0]||(u[0]=ve(d=>o.$router.push("/admin"),["prevent"]))},_(o.$t("admin.BACK_TO_ADMIN")),1),E("div",PBe,[E("table",null,[E("thead",null,[E("tr",null,[u[2]||(u[2]=E("th",null,"#",-1)),E("th",null,_(o.$t("admin.EQUIPMENT_TYPES.TABLE.IMAGE")),1),E("th",LBe,_(o.$t("admin.EQUIPMENT_TYPES.TABLE.LABEL")),1),E("th",null,_(o.$t("admin.EQUIPMENT_TYPES.TABLE.ACTIVE")),1),E("th",yBe,_(o.$t("admin.ACTION")),1)])]),E("tbody",null,[(h(!0),I(_e,null,Le(a.value,d=>(h(),I("tr",{key:d.id},[E("td",$Be,[u[3]||(u[3]=E("span",{class:"cell-heading"},"id",-1)),H(" "+_(d.id),1)]),E("td",null,[E("span",kBe,_(o.$t("admin.EQUIPMENT_TYPES.TABLE.IMAGE")),1),W(l,{title:d.translatedLabel,"equipment-type-label":d.label},null,8,["title","equipment-type-label"])]),E("td",UBe,[E("span",wBe,_(o.$t("admin.EQUIPMENT_TYPES.TABLE.LABEL")),1),H(" "+_(d.translatedLabel),1)]),E("td",MBe,[E("span",WBe,_(o.$t("admin.EQUIPMENT_TYPES.TABLE.ACTIVE")),1),E("i",{class:Te(`fa fa${d.is_active?"-check":""}`),"aria-hidden":"true"},null,2)]),E("td",zBe,[E("span",FBe,_(o.$t("admin.ACTION")),1),E("div",xBe,[E("button",{class:Te({danger:d.is_active}),onClick:f=>i(d.id,!d.is_active)},_(o.$t(`buttons.${d.is_active?"DIS":"EN"}ABLE`)),11,BBe),d.has_equipments?(h(),I("span",GBe,[u[4]||(u[4]=E("i",{class:"fa fa-warning","aria-hidden":"true"},null,-1)),H(" "+_(o.$t("admin.EQUIPMENT_TYPES.TABLE.HAS_EQUIPMENTS")),1)])):M("",!0)])])]))),128))])]),s.value?(h(),j(c,{key:0,message:s.value},null,8,["message"])):M("",!0),E("button",{onClick:u[1]||(u[1]=ve(d=>o.$router.push("/admin"),["prevent"]))},_(o.$t("admin.BACK_TO_ADMIN")),1)])]),_:1})])}}}),VBe=ie(HBe,[["__scopeId","data-v-d329b43d"]]),KBe={class:"stat-card"},jBe={class:"stat-content box"},qBe={class:"stat-icon"},YBe={class:"stat-details"},XBe={class:"stat-huge"},QBe={class:"stat"},ka=ee({__name:"StatCard",props:{icon:{},text:{},value:{}},setup(e){const t=e,{icon:n,text:a,value:s}=he(t);return(r,i)=>(h(),I("div",KBe,[E("div",jBe,[E("div",qBe,[E("i",{class:Te(["fa",`fa-${m(n)}`])},null,2)]),E("div",YBe,[E("div",XBe,_(m(s)),1),E("div",QBe,_(m(a)),1)])])]))}}),ZBe={id:"user-stats"},JBe=ee({__name:"AppStatsCards",props:{appStatistics:{}},setup(e){const t=e,{appStatistics:n}=he(t),a=w(()=>zA(n.value.uploads_dir_size));return(s,r)=>(h(),I("div",ZBe,[W(ka,{icon:"users",value:m(n).users,text:s.$t("admin.USER",m(n).users)},null,8,["value","text"]),W(ka,{icon:"tags",value:m(n).sports,text:s.$t("workouts.SPORT",m(n).sports)},null,8,["value","text"]),W(ka,{icon:"calendar",value:m(n).workouts,text:s.$t("workouts.WORKOUT",m(n).workouts)},null,8,["value","text"]),W(ka,{icon:"folder-open",value:a.value.size,text:a.value.suffix},null,8,["value","text"])]))}}),eGe={id:"admin-menu",class:"center-card"},tGe={class:"admin-menu description-list"},nGe={class:"application-config-details"},aGe={class:"registration-status"},sGe={key:0,class:"email-sending-status"},rGe=ee({__name:"AdminMenu",props:{appConfig:{},appStatistics:{default:()=>({})}},setup(e){const t=e,{appConfig:n,appStatistics:a}=he(t);return St(()=>{const s=document.getElementById("adminLink");s&&s.focus()}),(s,r)=>{const i=re("router-link");return h(),I("div",eGe,[W(JS,null,{title:ue(()=>[H(_(s.$t("admin.ADMINISTRATION")),1)]),content:ue(()=>[W(JBe,{appStatistics:m(a)},null,8,["appStatistics"]),E("div",tGe,[E("dl",null,[E("dt",null,[W(i,{id:"adminLink",to:"/admin/application"},{default:ue(()=>[H(_(s.$t("admin.APPLICATION")),1)]),_:1})]),E("dd",nGe,[H(_(s.$t("admin.UPDATE_APPLICATION_DESCRIPTION")),1),r[1]||(r[1]=E("br",null,null,-1)),E("span",aGe,_(s.$t(`admin.REGISTRATION_${m(n).is_registration_enabled?"ENABLED":"DISABLED"}`)),1),m(n).is_email_sending_enabled?M("",!0):(h(),I("span",sGe,[r[0]||(r[0]=E("i",{class:"fa fa-exclamation-triangle","aria-hidden":"true"},null,-1)),H(" "+_(s.$t("admin.EMAIL_SENDING_DISABLED")),1)]))]),E("dt",null,[W(i,{to:"/admin/equipment-types"},{default:ue(()=>[H(_(Ve(s.$t("equipments.EQUIPMENT_TYPE",0))),1)]),_:1})]),E("dd",null,_(s.$t("admin.ENABLE_DISABLE_EQUIPMENT_TYPES")),1),E("dt",null,[W(i,{to:"/admin/sports"},{default:ue(()=>[H(_(Ve(s.$t("workouts.SPORT",0))),1)]),_:1})]),E("dd",null,_(s.$t("admin.ENABLE_DISABLE_SPORTS")),1),E("dt",null,[W(i,{to:"/admin/users"},{default:ue(()=>[H(_(Ve(s.$t("admin.USER",0))),1)]),_:1})]),E("dd",null,_(s.$t("admin.ADMIN_RIGHTS_DELETE_USER_ACCOUNT")),1)])])]),_:1})])}}}),iGe=ie(rGe,[["__scopeId","data-v-69570181"]]),ff={"Cycling (Sport)":"#4c9792","Cycling (Trekking)":"#a8af88","Cycling (Transport)":"#88af98","Cycling (Virtual)":"#64a360",Hiking:"#bb757c","Mountain Biking":"#d4b371","Mountain Biking (Electric)":"#fc9d6f",Mountaineering:"#48b3b7","Open Water Swimming":"#4058a4",Paragliding:"#c23c50",Rowing:"#fcce72",Running:"#835b83","Skiing (Alpine)":"#67a4bd","Skiing (Cross Country)":"#9498d0",Snowshoes:"#5780a8",Swimrun:"#3d9fc9",Trail:"#09a98a",Walking:"#838383"},oGe=e=>{const t={};return e.map(n=>t[n.id]=n.color?n.color:ff[n.label]),t},uGe=(e,t)=>{const n=e.translatedLabel.toLowerCase(),a=t.translatedLabel.toLowerCase();return n>a?1:ne.filter(s=>n==="all"?!0:a.includes(s.id)||s[n]).map(s=>({...s,translatedLabel:t(`sports.${s.label}.LABEL`)})).sort(uGe),mf=(e,t)=>t.filter(n=>n.id===e.sport_id).map(n=>n.label)[0],Tf=(e,t)=>t.filter(n=>n.id===e.sport_id).map(n=>n.color)[0],lGe={id:"admin-sports",class:"admin-card"},cGe={class:"responsive-table"},dGe={class:"text-left"},EGe={class:"text-left sport-action"},pGe={class:"text-center"},fGe={class:"cell-heading"},mGe={class:"sport-label"},TGe={class:"cell-heading"},_Ge={class:"text-center"},hGe={class:"cell-heading"},SGe={class:"sport-action"},AGe={class:"cell-heading"},OGe={class:"action-button"},gGe=["onClick"],IGe={key:0,class:"has-workouts"},RGe=ee({__name:"AdminSports",setup(e){const{t}=$t(),n=ke(),a=w(()=>Kn(n.getters[Pt.GETTERS.SPORTS],t)),s=w(()=>n.getters[K.GETTERS.ERROR_MESSAGES]);Et(()=>n.dispatch(Pt.ACTIONS.GET_SPORTS,!0));function r(i,o){n.dispatch(Pt.ACTIONS.UPDATE_SPORTS,{id:i,isActive:o})}return(i,o)=>{const u=re("SportImage"),l=re("ErrorMessage"),c=re("Card");return h(),I("div",lGe,[W(c,null,{title:ue(()=>[H(_(i.$t("admin.SPORTS.TITLE")),1)]),content:ue(()=>[E("button",{class:"top-button",onClick:o[0]||(o[0]=ve(p=>i.$router.push("/admin"),["prevent"]))},_(i.$t("admin.BACK_TO_ADMIN")),1),E("div",cGe,[E("table",null,[E("thead",null,[E("tr",null,[o[2]||(o[2]=E("th",null,"#",-1)),E("th",null,_(i.$t("admin.SPORTS.TABLE.IMAGE")),1),E("th",dGe,_(i.$t("admin.SPORTS.TABLE.LABEL")),1),E("th",null,_(i.$t("admin.SPORTS.TABLE.ACTIVE")),1),E("th",EGe,_(i.$t("admin.ACTION")),1)])]),E("tbody",null,[(h(!0),I(_e,null,Le(a.value,p=>(h(),I("tr",{key:p.id},[E("td",pGe,[o[3]||(o[3]=E("span",{class:"cell-heading"},"id",-1)),H(" "+_(p.id),1)]),E("td",null,[E("span",fGe,_(i.$t("admin.SPORTS.TABLE.IMAGE")),1),W(u,{title:p.translatedLabel,"sport-label":p.label,color:p.color},null,8,["title","sport-label","color"])]),E("td",mGe,[E("span",TGe,_(i.$t("admin.SPORTS.TABLE.LABEL")),1),H(" "+_(p.translatedLabel),1)]),E("td",_Ge,[E("span",hGe,_(i.$t("admin.SPORTS.TABLE.ACTIVE")),1),E("i",{class:Te(`fa fa${p.is_active?"-check":""}`),"aria-hidden":"true"},null,2)]),E("td",SGe,[E("span",AGe,_(i.$t("admin.ACTION")),1),E("div",OGe,[E("button",{class:Te({danger:p.is_active}),onClick:d=>r(p.id,!p.is_active)},_(i.$t(`buttons.${p.is_active?"DIS":"EN"}ABLE`)),11,gGe),p.has_workouts?(h(),I("span",IGe,[o[4]||(o[4]=E("i",{class:"fa fa-warning","aria-hidden":"true"},null,-1)),H(" "+_(i.$t("admin.SPORTS.TABLE.HAS_WORKOUTS")),1)])):M("",!0)])])]))),128))])]),s.value?(h(),j(l,{key:0,message:s.value},null,8,["message"])):M("",!0),E("button",{onClick:o[1]||(o[1]=ve(p=>i.$router.push("/admin"),["prevent"]))},_(i.$t("admin.BACK_TO_ADMIN")),1)])]),_:1})])}}}),NGe=ie(RGe,[["__scopeId","data-v-56f637e8"]]),bGe={class:"table-selects"},vGe=["value"],CGe=["value"],DGe=["value"],PGe=["value"],LGe=["value"],yGe=["value"],$Ge=ee({__name:"FilterSelects",props:{order_by:{},query:{},sort:{},message:{}},emits:["updateSelect"],setup(e,{emit:t}){const n=e,a=t,{order_by:s,query:r,sort:i,message:o}=he(n),u=[10,25,50,100];function l(c){a("updateSelect",c.target.id,c.target.value)}return(c,p)=>(h(),I("div",bGe,[E("label",null,[H(_(c.$t("common.SELECTS.ORDER_BY.LABEL"))+": ",1),E("select",{name:"order_by",id:"order_by",value:m(r).order_by,onChange:l},[(h(!0),I(_e,null,Le(m(s),d=>(h(),I("option",{value:d,key:d},_(c.$t(`${m(o)}.${d.toUpperCase()}`)),9,CGe))),128))],40,vGe)]),E("label",null,[H(_(c.$t("common.SELECTS.ORDER.LABEL"))+": ",1),E("select",{name:"order",id:"order",value:m(r).order,onChange:l},[(h(!0),I(_e,null,Le(m(i),d=>(h(),I("option",{value:d,key:d},_(c.$t(`common.SELECTS.ORDER.${d.toUpperCase()}`)),9,PGe))),128))],40,DGe)]),E("label",null,[H(_(c.$t("common.SELECTS.PER_PAGE.LABEL"))+": ",1),E("select",{name:"per_page",id:"per_page",value:m(r).per_page,onChange:l},[(h(),I(_e,null,Le(u,d=>E("option",{value:d,key:d},_(d),9,yGe)),64))],40,LGe)])]))}}),Sg=ie($Ge,[["__scopeId","data-v-fc86ab3c"]]),_f=["asc","desc"],Ag=1,kGe=10,PE=(e,t)=>e&&typeof e=="string"&&+e>0?+e:t,J_=(e,t,n)=>e&&typeof e=="string"&&t.includes(e)?e:n,LE=(e,t,n,a)=>{const r=(a||{}).defaultSort||"asc",i={};return i.page=PE(e.page,Ag),i.per_page=PE(e.per_page,kGe),i.order=J_(e.order,_f,r),i.order_by=J_(e.order_by,t,n),typeof e.q=="string"?i.q=e.q:delete i.q,typeof e.notes=="string"?i.notes=e.notes:delete i.notes,typeof e.description=="string"?i.description=e.description:delete i.description,i},UGe=["equipment_id","from","to","ave_speed_from","ave_speed_to","max_speed_from","max_speed_to","distance_from","distance_to","duration_from","duration_to","sport_id","title"],tr=(e,t=1)=>Array.from({length:e-t+1},(n,a)=>t+a),wGe=(e,t)=>{if(e<0)return[];if(e<9)return tr(e);let n=[1,2];return t<4?n=n.concat([3,4,5]):t<6?n=n.concat(tr(t+2,3)):(n=n.concat(["..."]),t=e-2&&+n[n.length-1]{const u=re("router-link");return h(),I("nav",MGe,[E("ul",WGe,[E("li",{class:Te(["page-prev",{disabled:!m(n).has_prev}])},[W(u,{class:"page-link",to:{path:m(a),query:r(m(n).page,-1)},disabled:!m(n).has_prev,tabindex:m(n).has_prev?0:-1},{default:ue(({navigate:l})=>[Ut(i.$slots,"default",{onClick:c=>m(n).has_next?l:null},()=>[H(_(i.$t("common.PREVIOUS"))+" ",1),o[0]||(o[0]=E("i",{class:"fa fa-chevron-left","aria-hidden":"true"},null,-1))],!0)]),_:3},8,["to","disabled","tabindex"])],2),(h(!0),I(_e,null,Le(m(wGe)(m(n).pages,m(n).page),l=>(h(),I("li",{key:l,class:Te(["page",{active:l===m(n).page}])},[l==="..."?(h(),I("span",zGe," ... ")):(h(),j(u,{key:1,class:"page-link",to:{path:m(a),query:r(+l)}},{default:ue(()=>[H(_(l),1)]),_:2},1032,["to"]))],2))),128)),E("li",{class:Te(["page-next",{disabled:!m(n).has_next}])},[W(u,{class:"page-link",to:{path:m(a),query:r(m(n).page,1)},disabled:!m(n).has_next,tabindex:m(n).has_next?0:-1},{default:ue(({navigate:l})=>[Ut(i.$slots,"default",{onClick:c=>m(n).has_next?l:null},()=>[H(_(i.$t("common.NEXT"))+" ",1),o[1]||(o[1]=E("i",{class:"fa fa-chevron-right","aria-hidden":"true"},null,-1))],!0)]),_:3},8,["to","disabled","tabindex"])],2)])])}}}),Il=ie(FGe,[["__scopeId","data-v-f1388e09"]]),xGe={class:"users-filters"},BGe={class:"search-username"},GGe=["placeholder"],HGe=ee({__name:"UsersNameFilter",emits:["filterOnUsername"],setup(e,{emit:t}){const n=yt(),a=de(n.query.q?n.query.q:""),s=t;function r(){a.value!==""&&s("filterOnUsername",a)}function i(){a.value="",s("filterOnUsername",a.value)}return(o,u)=>(h(),I("div",xGe,[E("div",BGe,[$e(E("input",{id:"username",name:"username","onUpdate:modelValue":u[0]||(u[0]=l=>a.value=l),onKeyup:Je(r,["enter"]),placeholder:o.$t("user.FILTER_ON_USERNAME")},null,40,GGe),[[st,a.value,void 0,{trim:!0}]]),a.value!==""?(h(),I("i",{key:0,class:"fa fa-times","aria-hidden":"true",onClick:i})):M("",!0)]),E("i",{class:Te(["fa fa-search",{"fa-disabled":a.value===""}]),"aria-hidden":"true",onClick:r},null,2)]))}}),VGe=ie(HGe,[["__scopeId","data-v-553040c7"]]);var yE={exports:{}};(function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=n;function n(a){if(a===null||a===!0||a===!1)return NaN;var s=Number(a);return isNaN(s)?s:s<0?Math.ceil(s):Math.floor(s)}e.exports=t.default})(yE,yE.exports);var KGe=yE.exports;const jGe=BE(KGe);var $E={exports:{}};(function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=n;function n(a){var s=new Date(Date.UTC(a.getFullYear(),a.getMonth(),a.getDate(),a.getHours(),a.getMinutes(),a.getSeconds(),a.getMilliseconds()));return s.setUTCFullYear(a.getFullYear()),a.getTime()-s.getTime()}e.exports=t.default})($E,$E.exports);var qGe=$E.exports;const e0=BE(qGe);function YGe(e,t){var n=JGe(t);return n.formatToParts?QGe(n,e):ZGe(n,e)}var XGe={year:0,month:1,day:2,hour:3,minute:4,second:5};function QGe(e,t){try{for(var n=e.formatToParts(t),a=[],s=0;s=0&&(a[r]=parseInt(n[s].value,10))}return a}catch(i){if(i instanceof RangeError)return[NaN];throw i}}function ZGe(e,t){var n=e.format(t),a=/(\d+)\/(\d+)\/(\d+),? (\d+):(\d+):(\d+)/.exec(n);return[a[3],a[1],a[2],a[4],a[5],a[6]]}var td={};function JGe(e){if(!td[e]){var t=new Intl.DateTimeFormat("en-US",{hourCycle:"h23",timeZone:"America/New_York",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"}).format(new Date("2014-06-25T04:00:00.123Z")),n=t==="06/25/2014, 00:00:00"||t==="‎06‎/‎25‎/‎2014‎ ‎00‎:‎00‎:‎00";td[e]=n?new Intl.DateTimeFormat("en-US",{hourCycle:"h23",timeZone:e,year:"numeric",month:"numeric",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"}):new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:e,year:"numeric",month:"numeric",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"})}return td[e]}function Og(e,t,n,a,s,r,i){var o=new Date(0);return o.setUTCFullYear(e,t,n),o.setUTCHours(a,s,r,i),o}var t0=36e5,eHe=6e4,nd={timezone:/([Z+-].*)$/,timezoneZ:/^(Z)$/,timezoneHH:/^([+-]\d{2})$/,timezoneHHMM:/^([+-])(\d{2}):?(\d{2})$/};function gg(e,t,n){var a,s;if(!e||(a=nd.timezoneZ.exec(e),a))return 0;var r;if(a=nd.timezoneHH.exec(e),a)return r=parseInt(a[1],10),n0(r)?-(r*t0):NaN;if(a=nd.timezoneHHMM.exec(e),a){r=parseInt(a[2],10);var i=parseInt(a[3],10);return n0(r,i)?(s=Math.abs(r)*t0+i*eHe,a[1]==="+"?-s:s):NaN}if(aHe(e)){t=new Date(t||Date.now());var o=n?t:tHe(t),u=kE(o,e),l=n?u:nHe(t,u,e);return-l}return NaN}function tHe(e){return Og(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds())}function kE(e,t){var n=YGe(e,t),a=Og(n[0],n[1]-1,n[2],n[3]%24,n[4],n[5],0).getTime(),s=e.getTime(),r=s%1e3;return s-=r>=0?r:1e3+r,a-s}function nHe(e,t,n){var a=e.getTime(),s=a-t,r=kE(new Date(s),n);if(t===r)return t;s-=r-t;var i=kE(new Date(s),n);return r===i?r:Math.max(r,i)}function n0(e,t){return-23<=e&&e<=23&&(t==null||0<=t&&t<=59)}var a0={};function aHe(e){if(a0[e])return!0;try{return new Intl.DateTimeFormat(void 0,{timeZone:e}),a0[e]=!0,!0}catch{return!1}}var sHe=/(Z|[+-]\d{2}(?::?\d{2})?| UTC| [a-zA-Z]+\/[a-zA-Z_]+(?:\/[a-zA-Z_]+)?)$/,ad=36e5,s0=6e4,rHe=2,En={dateTimePattern:/^([0-9W+-]+)(T| )(.*)/,datePattern:/^([0-9W+-]+)(.*)/,plainTime:/:/,YY:/^(\d{2})$/,YYY:[/^([+-]\d{2})$/,/^([+-]\d{3})$/,/^([+-]\d{4})$/],YYYY:/^(\d{4})/,YYYYY:[/^([+-]\d{4})/,/^([+-]\d{5})/,/^([+-]\d{6})/],MM:/^-(\d{2})$/,DDD:/^-?(\d{3})$/,MMDD:/^-?(\d{2})-?(\d{2})$/,Www:/^-?W(\d{2})$/,WwwD:/^-?W(\d{2})-?(\d{1})$/,HH:/^(\d{2}([.,]\d*)?)$/,HHMM:/^(\d{2}):?(\d{2}([.,]\d*)?)$/,HHMMSS:/^(\d{2}):?(\d{2}):?(\d{2}([.,]\d*)?)$/,timeZone:sHe};function iHe(e,t){if(arguments.length<1)throw new TypeError("1 argument required, but only "+arguments.length+" present");if(e===null)return new Date(NaN);var n={},a=n.additionalDigits==null?rHe:jGe(n.additionalDigits);if(a!==2&&a!==1&&a!==0)throw new RangeError("additionalDigits must be 0, 1 or 2");if(e instanceof Date||typeof e=="object"&&Object.prototype.toString.call(e)==="[object Date]")return new Date(e.getTime());if(typeof e=="number"||Object.prototype.toString.call(e)==="[object Number]")return new Date(e);if(!(typeof e=="string"||Object.prototype.toString.call(e)==="[object String]"))return new Date(NaN);var s=oHe(e),r=uHe(s.date,a),i=r.year,o=r.restDateString,u=lHe(o,i);if(isNaN(u))return new Date(NaN);if(u){var l=u.getTime(),c=0,p;if(s.time&&(c=cHe(s.time),isNaN(c)))return new Date(NaN);if(s.timeZone||n.timeZone){if(p=gg(s.timeZone||n.timeZone,new Date(l+c)),isNaN(p))return new Date(NaN)}else p=e0(new Date(l+c)),p=e0(new Date(l+c+p));return new Date(l+c+p)}else return new Date(NaN)}function oHe(e){var t={},n=En.dateTimePattern.exec(e),a;if(n?(t.date=n[1],a=n[3]):(n=En.datePattern.exec(e),n?(t.date=n[1],a=n[2]):(t.date=null,a=e)),a){var s=En.timeZone.exec(a);s?(t.time=a.replace(s[1],""),t.timeZone=s[1].trim()):t.time=a}return t}function uHe(e,t){var n=En.YYY[t],a=En.YYYYY[t],s;if(s=En.YYYY.exec(e)||a.exec(e),s){var r=s[1];return{year:parseInt(r,10),restDateString:e.slice(r.length)}}if(s=En.YY.exec(e)||n.exec(e),s){var i=s[1];return{year:parseInt(i,10)*100,restDateString:e.slice(i.length)}}return{year:null}}function lHe(e,t){if(t===null)return null;var n,a,s,r;if(e.length===0)return a=new Date(0),a.setUTCFullYear(t),a;if(n=En.MM.exec(e),n)return a=new Date(0),s=parseInt(n[1],10)-1,i0(t,s)?(a.setUTCFullYear(t,s),a):new Date(NaN);if(n=En.DDD.exec(e),n){a=new Date(0);var i=parseInt(n[1],10);return pHe(t,i)?(a.setUTCFullYear(t,0,i),a):new Date(NaN)}if(n=En.MMDD.exec(e),n){a=new Date(0),s=parseInt(n[1],10)-1;var o=parseInt(n[2],10);return i0(t,s,o)?(a.setUTCFullYear(t,s,o),a):new Date(NaN)}if(n=En.Www.exec(e),n)return r=parseInt(n[1],10)-1,o0(t,r)?r0(t,r):new Date(NaN);if(n=En.WwwD.exec(e),n){r=parseInt(n[1],10)-1;var u=parseInt(n[2],10)-1;return o0(t,r,u)?r0(t,r,u):new Date(NaN)}return null}function cHe(e){var t,n,a;if(t=En.HH.exec(e),t)return n=parseFloat(t[1].replace(",",".")),sd(n)?n%24*ad:NaN;if(t=En.HHMM.exec(e),t)return n=parseInt(t[1],10),a=parseFloat(t[2].replace(",",".")),sd(n,a)?n%24*ad+a*s0:NaN;if(t=En.HHMMSS.exec(e),t){n=parseInt(t[1],10),a=parseInt(t[2],10);var s=parseFloat(t[3].replace(",","."));return sd(n,a,s)?n%24*ad+a*s0+s*1e3:NaN}return null}function r0(e,t,n){t=t||0,n=n||0;var a=new Date(0);a.setUTCFullYear(e,0,4);var s=a.getUTCDay()||7,r=t*7+n+1-s;return a.setUTCDate(a.getUTCDate()+r),a}var dHe=[31,28,31,30,31,30,31,31,30,31,30,31],EHe=[31,29,31,30,31,30,31,31,30,31,30,31];function Ig(e){return e%400===0||e%4===0&&e%100!==0}function i0(e,t,n){if(t<0||t>11)return!1;if(n!=null){if(n<1)return!1;var a=Ig(e);if(a&&n>EHe[t]||!a&&n>dHe[t])return!1}return!0}function pHe(e,t){if(t<1)return!1;var n=Ig(e);return!(n&&t>366||!n&&t>365)}function o0(e,t,n){return!(t<0||t>52||n!=null&&(n<0||n>6))}function sd(e,t,n){return!(e!=null&&(e<0||e>=25)||t!=null&&(t<0||t>=60)||n!=null&&(n<0||n>=60))}function fHe(e,t,n){var a=iHe(e,n),s=gg(t,a,!0),r=new Date(a.getTime()-s),i=new Date(0);return i.setFullYear(r.getUTCFullYear(),r.getUTCMonth(),r.getUTCDate()),i.setHours(r.getUTCHours(),r.getUTCMinutes(),r.getUTCSeconds(),r.getUTCMilliseconds()),i}const{locale:Rl}=xr.global,mHe=(e,t,n)=>{switch(e){case"week":return jl(t,{weekStartsOn:n?1:0});case"year":return Op(t);case"month":return fo(t);default:throw new Error(`Invalid duration, expected: "week", "month", "year", got: "${e}"`)}},THe=(e,t)=>{switch(e){case"week":return Eo(t,7);case"year":return Pu(t,1);case"month":return gr(t,1);default:throw new Error(`Invalid duration, expected: "week", "month", "year", got: "${e}"`)}},pc=(e,t)=>fHe(new Date(e),t),u0=(e,t)=>{const n=fo(e),a=po(e),s=t?1:0;return{start:jl(n,{weekStartsOn:s}),end:gp(a,{weekStartsOn:s})}},Rg=(e,t=null,n=null)=>(t||(t="yyyy/MM/dd"),t=Ts(t,Rl.value),n||(n="HH:mm"),{workout_date:mn(e,t,{locale:Ms[Rl.value]}),workout_time:mn(e,n)}),_He=["MM/dd/yyyy","dd/MM/yyyy","yyyy-MM-dd","date_string"],Ng={bg:"d MMMM yyyy",cs:"d. MMM yyyy",de:"do MMM yyyy",en:"MMM. do, yyyy",es:"d MMM yyyy",eu:"yyyy MMM. d",fr:"d MMM yyyy",gl:"d MMM yyyy",it:"d MMM yyyy",nb:"do MMM yyyy",nl:"d MMM yyyy",pl:"d MMM yyyy",pt:"d MMM yyyy"},Ts=(e,t)=>e==="date_string"?Ng[t]:e,jn=(e,t,n,a=!0,s=null,r=!1)=>{s||(s=Rl.value);const i=a?r?" HH:mm:ss":" HH:mm":"";return mn(pc(e,t),`${Ts(n,s)}${i}`,{locale:Ms[s]})},hHe=(e,t,n=null)=>{const a=n||Rl.value,s=[];return _He.map(r=>{const i=Ts(r,a);s.push({label:`${i} - ${jn(e,t,i,!1,a)}`,value:r})}),s},SHe={id:"admin-users",class:"admin-card"},AHe={key:0,class:"no-users"},OHe={key:1,class:"responsive-table"},gHe={class:"left-text"},IHe={class:"left-text"},RHe={class:"left-text"},NHe={class:"cell-heading"},bHe={class:"cell-heading"},vHe={class:"cell-heading"},CHe={class:"cell-heading"},DHe={class:"text-center"},PHe={class:"cell-heading"},LHe={class:"text-center"},yHe={class:"cell-heading"},$He={class:"text-center"},kHe={class:"cell-heading"},UHe={class:"text-center"},wHe={class:"cell-heading"},MHe=["disabled","onClick"],l0="created_at",WHe=ee({__name:"AdminUsers",setup(e){const t=ke(),n=yt(),a=Sa(),s=["is_active","admin","created_at","username","workouts_count"];let r=Yt(LE(n.query,s,l0));const i=w(()=>t.getters[X.GETTERS.AUTH_USER_PROFILE]),o=w(()=>t.getters[Ge.GETTERS.USERS]),u=w(()=>t.getters[Ge.GETTERS.USERS_PAGINATION]),l=w(()=>t.getters[K.GETTERS.ERROR_MESSAGES]);Et(()=>c(r));function c(T){t.dispatch(Ge.ACTIONS.GET_USERS,T)}function p(T){f("q",T.value)}function d(T,O){t.dispatch(Ge.ACTIONS.UPDATE_USER,{username:T,admin:O})}function f(T,O){r[T]=O,T==="per_page"&&(r.page=1),a.push({path:"/admin/users",query:r})}return pt(()=>{t.dispatch(Ge.ACTIONS.EMPTY_USERS)}),Me(()=>n.query,T=>{r=LE(T,s,l0,{query:r}),c(r)}),(T,O)=>{const R=re("router-link"),g=re("ErrorMessage"),N=re("Card");return h(),I("div",SHe,[W(N,null,{title:ue(()=>[H(_(Ve(T.$t("admin.USER",0))),1)]),content:ue(()=>[E("button",{class:"top-button",onClick:O[0]||(O[0]=ve(S=>T.$router.push("/admin"),["prevent"]))},_(T.$t("admin.BACK_TO_ADMIN")),1),W(VGe,{onFilterOnUsername:p}),W(Sg,{sort:m(_f),order_by:s,query:m(r),message:"admin.USERS.SELECTS.ORDER_BY",onUpdateSelect:f},null,8,["sort","query"]),o.value.length===0?(h(),I("div",AHe,_(T.$t("user.NO_USERS_FOUND")),1)):(h(),I("div",OHe,[E("table",null,[E("thead",null,[E("tr",null,[O[2]||(O[2]=E("th",null,"#",-1)),E("th",gHe,_(T.$t("user.USERNAME")),1),E("th",IHe,_(T.$t("user.EMAIL")),1),E("th",RHe,_(T.$t("user.PROFILE.REGISTRATION_DATE")),1),E("th",null,_(Ve(T.$t("workouts.WORKOUT",0))),1),E("th",null,_(T.$t("admin.ACTIVE")),1),E("th",null,_(T.$t("user.ADMIN")),1),E("th",null,_(T.$t("admin.ACTION")),1)])]),E("tbody",null,[(h(!0),I(_e,null,Le(o.value,S=>(h(),I("tr",{key:S.username},[E("td",null,[E("span",NHe,_(T.$t("user.PROFILE.PICTURE")),1),W(lo,{user:S},null,8,["user"])]),E("td",null,[E("span",bHe,_(T.$t("user.USERNAME")),1),W(R,{to:`/admin/users/${S.username}`},{default:ue(()=>[H(_(S.username),1)]),_:2},1032,["to"])]),E("td",null,[E("span",vHe,_(T.$t("user.EMAIL")),1),H(" "+_(S.email),1)]),E("td",null,[E("span",CHe,_(T.$t("user.PROFILE.REGISTRATION_DATE")),1),E("time",null,_(m(jn)(S.created_at,i.value.timezone,i.value.date_format)),1)]),E("td",DHe,[E("span",PHe,_(Ve(T.$t("workouts.WORKOUT",0))),1),H(" "+_(S.nb_workouts),1)]),E("td",LHe,[E("span",yHe,_(T.$t("admin.ACTIVE")),1),E("i",{class:Te(`fa fa${S.is_active?"-check":""}-square-o`),"aria-hidden":"true"},null,2)]),E("td",$He,[E("span",kHe,_(T.$t("user.ADMIN")),1),E("i",{class:Te(`fa fa${S.admin?"-check":""}-square-o`),"aria-hidden":"true"},null,2)]),E("td",UHe,[E("span",wHe,_(T.$t("admin.ACTION")),1),E("button",{class:Te({danger:S.admin}),disabled:S.username===i.value.username,onClick:A=>d(S.username,!S.admin)},_(T.$t(`admin.USERS.TABLE.${S.admin?"REMOVE":"ADD"}_ADMIN_RIGHTS`)),11,MHe)])]))),128))])]),u.value.page?(h(),j(Il,{key:0,path:"/admin/users",pagination:u.value,query:m(r)},null,8,["pagination","query"])):M("",!0),l.value?(h(),j(g,{key:1,message:l.value},null,8,["message"])):M("",!0),E("button",{onClick:O[1]||(O[1]=ve(S=>T.$router.push("/admin"),["prevent"]))},_(T.$t("admin.BACK_TO_ADMIN")),1)]))]),_:1})])}}}),zHe=ie(WHe,[["__scopeId","data-v-dc27c3d6"]]),FHe={class:"box user-header"},xHe={class:"user-details"},BHe={class:"user-name"},GHe={class:"user-stats"},HHe={class:"user-stat"},VHe={class:"stat-number"},KHe={class:"stat-label"},jHe={class:"user-stat"},qHe={class:"stat-label"},YHe={class:"user-stat hide-small"},XHe={class:"stat-number"},QHe={class:"stat-label"},ZHe=ee({__name:"UserHeader",props:{user:{}},setup(e){const t=e,{user:n}=he(t),a=ke(),s=w(()=>a.getters[X.GETTERS.AUTH_USER_PROFILE]);return(r,i)=>{const o=re("Distance");return h(),I("div",FHe,[W(lo,{user:m(n)},null,8,["user"]),E("div",xHe,[E("div",BHe,_(m(n).username),1),E("div",GHe,[E("div",HHe,[E("span",VHe,_(m(n).nb_workouts),1),E("span",KHe,_(r.$t("workouts.WORKOUT",m(n).nb_workouts)),1)]),E("div",jHe,[W(o,{distance:m(n).total_distance,unitFrom:"km",digits:0,displayUnit:!1,useImperialUnits:s.value.imperial_units},null,8,["distance","useImperialUnits"]),E("span",qHe,_(s.value.imperial_units?"miles":"km"),1)]),E("div",YHe,[E("span",XHe,_(m(n).nb_sports),1),E("span",QHe,_(r.$t("workouts.SPORT",m(n).nb_sports)),1)])])])])}}}),bg=ie(ZHe,[["__scopeId","data-v-3abb1646"]]),JHe={class:"profile-tabs"},eVe={class:"profile-tabs-links"},vg=ee({__name:"UserProfileTabs",props:{tabs:{},selectedTab:{},edition:{type:Boolean}},setup(e){const t=e,{tabs:n,selectedTab:a}=he(t);St(()=>{const r=document.getElementById(`tab-${n.value[0]}`);r&&r.focus()});function s(r){switch(r){case"ACCOUNT":case"PICTURE":case"PRIVACY-POLICY":return`/profile/edit/${r.toLocaleLowerCase()}`;case"APPS":case"EQUIPMENTS":case"PREFERENCES":case"SPORTS":return`/profile${t.edition?"/edit":""}/${r.toLocaleLowerCase()}`;default:case"PROFILE":return`/profile${t.edition?"/edit":""}`}}return(r,i)=>{const o=re("router-link");return h(),I("div",JHe,[E("div",eVe,[(h(!0),I(_e,null,Le(m(n),u=>(h(),j(o,{class:Te(["profile-tab",{selected:u===m(a)}]),to:s(u),key:u},{default:ue(()=>[H(_(r.$t(`user.PROFILE.TABS.${u}`)),1)]),_:2},1032,["class","to"]))),128))])])}}}),tVe={id:"user-profile"},nVe={class:"box"},aVe=ee({__name:"index",props:{user:{},tab:{}},setup(e){const t=e,{user:n,tab:a}=he(t),s=["PROFILE","PREFERENCES","SPORTS","EQUIPMENTS","APPS"];return(r,i)=>{const o=re("router-view");return h(),I("div",tVe,[W(bg,{user:m(n)},null,8,["user"]),E("div",nVe,[W(vg,{tabs:s,selectedTab:m(a),edition:!1},null,8,["selectedTab"]),W(o,{user:m(n)},null,8,["user"])])])}}}),sVe=ie(aVe,[["__scopeId","data-v-ab81f074"]]),rVe={id:"user-infos",class:"description-list"},iVe={key:1,class:"info-box success-message"},oVe={key:4,class:"email-form form-box"},uVe={class:"form-items",for:"email"},lVe={class:"form-items",for:"email"},cVe={class:"form-buttons"},dVe={class:"confirm",type:"submit"},EVe={key:5},pVe={key:0},fVe={class:"user-bio"},mVe={key:0,class:"profile-buttons"},TVe={key:1,class:"profile-buttons"},_Ve=ee({__name:"UserInfos",props:{user:{},fromAdmin:{type:Boolean,default:!1}},setup(e){const t=e,n=ke(),{user:a,fromAdmin:s}=he(t),r=w(()=>n.getters[K.GETTERS.LANGUAGE]),i=w(()=>n.getters[X.GETTERS.AUTH_USER_PROFILE]),o=w(()=>t.user.created_at?jn(t.user.created_at,i.value.timezone,i.value.date_format):""),u=w(()=>t.user.birth_date?mn(new Date(t.user.birth_date),`${Ts(i.value.date_format,r.value)}`,{locale:Ms[r.value]}):""),l=w(()=>n.getters[Ge.GETTERS.USERS_IS_SUCCESS]),c=w(()=>n.getters[K.GETTERS.ERROR_MESSAGES]),p=w(()=>n.getters[K.GETTERS.APP_CONFIG]),d=de(""),f=de(!1),T=de(!1),O=de(""),R=de("");function g(D){d.value=D,D!==""&&n.commit(Ge.MUTATIONS.UPDATE_IS_SUCCESS,!1)}function N(D){n.dispatch(Ge.ACTIONS.DELETE_USER_ACCOUNT,{username:D})}function S(D){R.value="password-reset",n.dispatch(Ge.ACTIONS.UPDATE_USER,{username:D,resetPassword:!0})}function A(D){n.dispatch(Ge.ACTIONS.UPDATE_USER,{username:D,activate:!0})}function b(){C(),O.value=a.value.email_to_confirm?a.value.email_to_confirm:"",T.value=!0,R.value="email-update"}function y(){O.value="",T.value=!1}function P(D){n.dispatch(Ge.ACTIONS.UPDATE_USER,{username:D,new_email:O.value})}function C(){n.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),n.commit(Ge.MUTATIONS.UPDATE_IS_SUCCESS,!1),R.value=""}return pt(()=>C()),Me(()=>l.value,D=>{D&&(g(""),y())}),(D,F)=>{const $=re("Modal"),z=re("AlertMessage"),Y=re("ErrorMessage");return h(),I("div",rVe,[d.value?(h(),j($,{key:0,title:D.$t("common.CONFIRMATION"),message:d.value==="delete"?"admin.CONFIRM_USER_ACCOUNT_DELETION":"admin.CONFIRM_USER_PASSWORD_RESET",strongMessage:m(a).username,onConfirmAction:F[0]||(F[0]=se=>d.value==="delete"?N(m(a).username):S(m(a).username)),onCancelAction:F[1]||(F[1]=se=>g("")),onKeydown:F[2]||(F[2]=Je(se=>g(""),["esc"]))},null,8,["title","message","strongMessage"])):M("",!0),l.value?(h(),I("div",iVe,_(D.$t(`admin.${R.value==="password-reset"?"PASSWORD_RESET":"USER_EMAIL_UPDATE"}_SUCCESSFUL`)),1)):M("",!0),m(a).is_active?M("",!0):(h(),j(z,{key:2,message:"user.THIS_USER_ACCOUNT_IS_INACTIVE"})),c.value?(h(),j(Y,{key:3,message:c.value},null,8,["message"])):M("",!0),T.value?(h(),I("div",oVe,[E("form",{class:Te({errors:f.value}),onSubmit:F[5]||(F[5]=ve(se=>P(m(a).username),["prevent"]))},[E("label",uVe,[H(_(D.$t("admin.CURRENT_EMAIL"))+" ",1),$e(E("input",{id:"email",type:"email","onUpdate:modelValue":F[3]||(F[3]=se=>m(a).email=se),disabled:""},null,512),[[st,m(a).email]])]),E("label",lVe,[H(_(D.$t("admin.NEW_EMAIL"))+"* ",1),$e(E("input",{id:"new-email",type:"email",required:"","onUpdate:modelValue":F[4]||(F[4]=se=>O.value=se)},null,512),[[st,O.value]])]),E("div",cVe,[E("button",dVe,_(D.$t("buttons.SUBMIT")),1),E("button",{class:"cancel",onClick:ve(y,["prevent"])},_(D.$t("buttons.CANCEL")),1)])],34)])):(h(),I("div",EVe,[E("dl",null,[E("dt",null,_(D.$t("user.PROFILE.REGISTRATION_DATE"))+":",1),E("dd",null,[E("time",null,_(o.value),1)]),E("dt",null,_(D.$t("user.PROFILE.FIRST_NAME"))+":",1),E("dd",null,_(m(a).first_name),1),E("dt",null,_(D.$t("user.PROFILE.LAST_NAME"))+":",1),E("dd",null,_(m(a).last_name),1),E("dt",null,_(D.$t("user.PROFILE.BIRTH_DATE"))+":",1),E("dd",null,[u.value?(h(),I("time",pVe,_(u.value),1)):M("",!0)]),E("dt",null,_(D.$t("user.PROFILE.LOCATION"))+":",1),E("dd",null,_(m(a).location),1),E("dt",null,_(D.$t("user.PROFILE.BIO"))+":",1),E("dd",fVe,_(m(a).bio),1)]),m(s)?(h(),I("div",mVe,[i.value.username!==m(a).username?(h(),I("button",{key:0,class:"danger",onClick:F[6]||(F[6]=ve(se=>g("delete"),["prevent"]))},_(D.$t("admin.DELETE_USER")),1)):M("",!0),m(a).is_active?M("",!0):(h(),I("button",{key:1,onClick:F[7]||(F[7]=ve(se=>A(m(a).username),["prevent"]))},_(D.$t("admin.ACTIVATE_USER_ACCOUNT")),1)),i.value.username!==m(a).username?(h(),I("button",{key:2,onClick:ve(b,["prevent"])},_(D.$t("admin.UPDATE_USER_EMAIL")),1)):M("",!0),i.value.username!==m(a).username&&p.value.is_email_sending_enabled?(h(),I("button",{key:3,onClick:F[8]||(F[8]=ve(se=>g("reset"),["prevent"]))},_(D.$t("admin.RESET_USER_PASSWORD")),1)):M("",!0),E("button",{onClick:F[9]||(F[9]=se=>D.$router.go(-1))},_(D.$t("buttons.BACK")),1)])):(h(),I("div",TVe,[E("button",{onClick:F[10]||(F[10]=se=>D.$router.push("/profile/edit"))},_(D.$t("user.PROFILE.EDIT")),1),E("button",{onClick:F[11]||(F[11]=se=>D.$router.push("/"))},_(D.$t("common.HOME")),1)]))]))])}}}),Cg=ie(_Ve,[["__scopeId","data-v-01368a7e"]]),hVe={id:"user-preferences",class:"description-list"},SVe={class:"preferences-section"},AVe={class:"preferences-section"},OVe={class:"info-box raw-speed-help"},gVe={class:"profile-buttons"},IVe=ee({__name:"UserPreferences",props:{user:{}},setup(e){const t=e,n=ke(),a=w(()=>n.getters[K.GETTERS.LANGUAGE]),s=w(()=>t.user.language&&t.user.language in _r?_r[t.user.language]:_r.en),r=w(()=>t.user.weekm?"MONDAY":"SUNDAY"),i=w(()=>t.user.timezone?t.user.timezone:"Europe/Paris"),o=w(()=>t.user.date_format?t.user.date_format:"MM/dd/yyyy"),u=w(()=>t.user.display_ascent?"DISPLAYED":"HIDDEN"),l=w(()=>t.user.use_dark_mode===!0?"DARK":t.user.use_dark_mode===!1?"LIGHT":"DEFAULT");return(c,p)=>(h(),I("div",hVe,[E("div",SVe,_(c.$t("user.PROFILE.INTERFACE")),1),E("dl",null,[E("dt",null,_(c.$t("user.PROFILE.LANGUAGE"))+":",1),E("dd",null,_(s.value),1),E("dt",null,_(c.$t("user.PROFILE.THEME_MODE.LABEL"))+":",1),E("dd",null,_(c.$t(`user.PROFILE.THEME_MODE.VALUES.${l.value}`)),1),E("dt",null,_(c.$t("user.PROFILE.TIMEZONE"))+":",1),E("dd",null,_(i.value),1),E("dt",null,_(c.$t("user.PROFILE.DATE_FORMAT"))+":",1),E("dd",null,_(m(Ts)(o.value,a.value)),1),E("dt",null,_(c.$t("user.PROFILE.FIRST_DAY_OF_WEEK"))+":",1),E("dd",null,_(c.$t(`user.PROFILE.${r.value}`)),1)]),E("div",AVe,_(c.$t("workouts.WORKOUT",0)),1),E("dl",null,[E("dt",null,_(c.$t("user.PROFILE.UNITS.LABEL"))+":",1),E("dd",null,_(c.$t(`user.PROFILE.UNITS.${c.user.imperial_units?"IMPERIAL":"METRIC"}`)),1),E("dt",null,_(c.$t("user.PROFILE.ASCENT_DATA"))+":",1),E("dd",null,_(c.$t(`common.${u.value}`)),1),E("dt",null,_(c.$t("user.PROFILE.ELEVATION_CHART_START.LABEL"))+":",1),E("dd",null,_(c.$t(`user.PROFILE.ELEVATION_CHART_START.${c.user.start_elevation_at_zero?"ZERO":"MIN_ALT"}`)),1),E("dt",null,_(c.$t("user.PROFILE.USE_RAW_GPX_SPEED.LABEL"))+":",1),E("dd",null,_(c.$t(`user.PROFILE.USE_RAW_GPX_SPEED.${c.user.use_raw_gpx_speed?"RAW_SPEED":"FILTERED_SPEED"}`)),1),E("div",OVe,[E("span",null,[p[2]||(p[2]=E("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1)),H(" "+_(c.$t("user.PROFILE.USE_RAW_GPX_SPEED.HELP")),1)])])]),E("div",gVe,[E("button",{onClick:p[0]||(p[0]=d=>c.$router.push("/profile/edit/preferences"))},_(c.$t("user.PROFILE.EDIT_PREFERENCES")),1),E("button",{onClick:p[1]||(p[1]=d=>c.$router.push("/"))},_(c.$t("common.HOME")),1)])]))}}),RVe=ie(IVe,[["__scopeId","data-v-e641e7e8"]]),NVe={id:"user-profile-edition",class:"center-card"},bVe=ee({__name:"index",props:{user:{},tab:{}},setup(e){const t=e,{user:n,tab:a}=he(t),s=["PROFILE","ACCOUNT","PICTURE","PREFERENCES","SPORTS","EQUIPMENTS","PRIVACY-POLICY"];return(r,i)=>{const o=re("router-view"),u=re("Card");return h(),I("div",NVe,[W(u,null,{title:ue(()=>[H(_(r.$t(`user.PROFILE.${m(a)}_EDITION`)),1)]),content:ue(()=>[W(vg,{tabs:s,selectedTab:m(a),edition:!0},null,8,["selectedTab"]),W(o,{user:m(n)},null,8,["user"])]),_:1})])}}}),Ii=new Map,vVe=e=>{const{method:t,url:n,params:a={},data:s={}}=e;return[t,n,JSON.stringify(a),JSON.stringify(s)].join("")},Ur=e=>{const t=vVe(e);if(Ii.has(t)){const n=Ii.get(t)||{};n==null||n.abort(),Ii.delete(t)}return t},ns=zt.create({baseURL:uo()});ns.interceptors.request.use(e=>{const t=new AbortController;e.signal=t.signal;const n=Ur(e);return Ii.set(n,t),e},e=>Promise.reject(e));ns.interceptors.response.use(e=>(Ur(e.config),e),e=>(e.message!=="canceled"&&e.response&&Ur(e.response.config),Promise.reject(e)));const Dg=(e,t)=>{e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),Be.delete(`users/${t.username}`).then(n=>{n.status===204?t.fromAdmin?lt.push("/admin/users"):e.dispatch(X.ACTIONS.LOGOUT).then(()=>lt.push("/")):fe(e,null)}).catch(n=>fe(e,n))},CVe={[Ge.ACTIONS.EMPTY_USER](e){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(Ge.MUTATIONS.UPDATE_USER,{})},[Ge.ACTIONS.EMPTY_USERS](e){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(Ge.MUTATIONS.UPDATE_USERS,[]),e.commit(Ge.MUTATIONS.UPDATE_USERS_PAGINATION,{})},[Ge.ACTIONS.GET_USER](e,t){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(Ge.MUTATIONS.UPDATE_USERS_LOADING,!0),Be.get(`users/${t}`).then(n=>{n.data.status==="success"?e.commit(Ge.MUTATIONS.UPDATE_USER,n.data.data.users[0]):fe(e,null)}).catch(n=>fe(e,n)).finally(()=>e.commit(Ge.MUTATIONS.UPDATE_USERS_LOADING,!1))},[Ge.ACTIONS.GET_USERS](e,t){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(Ge.MUTATIONS.UPDATE_USERS_LOADING,!0),Be.get("users",{params:t}).then(n=>{n.data.status==="success"?(e.commit(Ge.MUTATIONS.UPDATE_USERS,n.data.data.users),e.commit(Ge.MUTATIONS.UPDATE_USERS_PAGINATION,n.data.pagination)):fe(e,null)}).catch(n=>fe(e,n)).finally(()=>e.commit(Ge.MUTATIONS.UPDATE_USERS_LOADING,!1))},[Ge.ACTIONS.UPDATE_USER](e,t){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(Ge.MUTATIONS.UPDATE_IS_SUCCESS,!1);const n={};t.admin!==void 0&&(n.admin=t.admin),t.resetPassword&&(n.reset_password=t.resetPassword),t.activate&&(n.activate=t.activate),t.new_email!==void 0&&(n.new_email=t.new_email),Be.patch(`users/${t.username}`,n).then(a=>{a.data.status==="success"?(e.commit(Ge.MUTATIONS.UPDATE_USER_IN_USERS,a.data.data.users[0]),(t.resetPassword||t.new_email)&&e.commit(Ge.MUTATIONS.UPDATE_IS_SUCCESS,!0),(t.activate||t.new_email)&&e.commit(Ge.MUTATIONS.UPDATE_USER,a.data.data.users[0])):fe(e,null)}).catch(a=>fe(e,a)).finally(()=>e.commit(Ge.MUTATIONS.UPDATE_USERS_LOADING,!1))},[Ge.ACTIONS.DELETE_USER_ACCOUNT](e,t){Dg(e,{username:t.username,fromAdmin:!0})}},Xo=e=>{localStorage.removeItem("authToken"),e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(wt.MUTATIONS.EMPTY_USER_STATS),e.commit(wt.MUTATIONS.EMPTY_USER_SPORT_STATS),e.commit(X.MUTATIONS.CLEAR_AUTH_USER_TOKEN),e.commit(Ge.MUTATIONS.UPDATE_USERS,[]),e.commit(ge.MUTATIONS.EMPTY_WORKOUTS),e.commit(ge.MUTATIONS.EMPTY_WORKOUT),lt.push("/login")},DVe={[X.ACTIONS.CHECK_AUTH_USER](e){window.localStorage.authToken&&!e.getters[X.GETTERS.IS_AUTHENTICATED]&&(e.commit(X.MUTATIONS.UPDATE_AUTH_TOKEN,window.localStorage.authToken),e.dispatch(X.ACTIONS.GET_USER_PROFILE,!0)),!window.localStorage.authToken&&e.getters[X.GETTERS.IS_AUTHENTICATED]&&Xo(e)},[X.ACTIONS.CONFIRM_ACCOUNT](e,t){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),ns.post("auth/account/confirm",{token:t.token}).then(n=>{if(n.data.status==="success"){const a=n.data.auth_token;window.localStorage.setItem("authToken",a),e.commit(X.MUTATIONS.UPDATE_AUTH_TOKEN,a),e.dispatch(X.ACTIONS.GET_USER_PROFILE).then(()=>lt.push("/"))}else fe(e,null)}).catch(n=>{fe(e,n)})},[X.ACTIONS.CONFIRM_EMAIL](e,t){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(X.MUTATIONS.UPDATE_IS_SUCCESS,!1),ns.post("/auth/email/update",{token:t.token}).then(n=>{n.data.status==="success"?(e.commit(X.MUTATIONS.UPDATE_IS_SUCCESS,!0),t.refreshUser&&e.dispatch(X.ACTIONS.GET_USER_PROFILE).then(()=>lt.push("/profile/edit/account")),lt.push("/profile/edit/account")):fe(e,null)}).catch(n=>{fe(e,n)})},[X.ACTIONS.GET_USER_PROFILE](e,t=!1){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),Be.get("auth/profile").then(n=>{if(n.data.status==="success"){const a=e.getters[X.GETTERS.IS_PROFILE_NOT_LOADED];e.commit(X.MUTATIONS.UPDATE_AUTH_USER_PROFILE,n.data.data),n.data.data.accepted_privacy_policy||e.dispatch(K.ACTIONS.GET_APPLICATION_PRIVACY_POLICY),(a||t)&&(n.data.data.language&&e.dispatch(K.ACTIONS.UPDATE_APPLICATION_LANGUAGE,n.data.data.language),e.commit(K.MUTATIONS.UPDATE_DARK_MODE,n.data.data.use_dark_mode)),e.dispatch(Pt.ACTIONS.GET_SPORTS),e.dispatch(We.ACTIONS.GET_EQUIPMENTS),e.dispatch(We.ACTIONS.GET_EQUIPMENT_TYPES)}else fe(e,null),Xo(e)}).catch(n=>{n.message!=="canceled"&&(fe(e,n),Xo(e))})},[X.ACTIONS.LOGIN_OR_REGISTER](e,t){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(X.MUTATIONS.UPDATE_IS_REGISTRATION_SUCCESS,!1),ns.post(`/auth/${t.actionType}`,t.formData).then(n=>{if(n.data.status==="success")if(t.actionType==="login"){const a=n.data.auth_token;window.localStorage.setItem("authToken",a),e.commit(X.MUTATIONS.UPDATE_AUTH_TOKEN,a),e.dispatch(X.ACTIONS.GET_USER_PROFILE,!0).then(()=>lt.push(typeof t.redirectUrl=="string"?t.redirectUrl:"/"))}else lt.push("/login").then(()=>e.commit(X.MUTATIONS.UPDATE_IS_REGISTRATION_SUCCESS,!0));else fe(e,null)}).catch(n=>fe(e,n))},[X.ACTIONS.LOGOUT](e){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),Be.post("auth/logout").then(t=>{t.data.status==="success"?Xo(e):fe(e,null)}).catch(t=>fe(e,t))},[X.ACTIONS.UPDATE_USER_PROFILE](e,t){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(X.MUTATIONS.UPDATE_USER_LOADING,!0),Be.post("auth/profile/edit",t).then(n=>{n.data.status==="success"?(e.commit(X.MUTATIONS.UPDATE_AUTH_USER_PROFILE,n.data.data),lt.push("/profile")):fe(e,null)}).catch(n=>fe(e,n)).finally(()=>e.commit(X.MUTATIONS.UPDATE_USER_LOADING,!1))},[X.ACTIONS.UPDATE_USER_ACCOUNT](e,t){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(X.MUTATIONS.UPDATE_USER_LOADING,!0),e.commit(X.MUTATIONS.UPDATE_IS_SUCCESS,!1),Be.patch("auth/profile/edit/account",t).then(n=>{n.data.status==="success"?(e.commit(X.MUTATIONS.UPDATE_AUTH_USER_PROFILE,n.data.data),e.commit(X.MUTATIONS.UPDATE_IS_SUCCESS,!0)):fe(e,null)}).catch(n=>fe(e,n)).finally(()=>e.commit(X.MUTATIONS.UPDATE_USER_LOADING,!1))},[X.ACTIONS.UPDATE_USER_PREFERENCES](e,t){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(X.MUTATIONS.UPDATE_USER_LOADING,!0),Be.post("auth/profile/edit/preferences",t).then(n=>{n.data.status==="success"?(e.commit(X.MUTATIONS.UPDATE_AUTH_USER_PROFILE,n.data.data),e.commit(K.MUTATIONS.UPDATE_DARK_MODE,n.data.data.use_dark_mode),e.dispatch(K.ACTIONS.UPDATE_APPLICATION_LANGUAGE,n.data.data.language).then(()=>lt.push("/profile/preferences"))):fe(e,null)}).catch(n=>fe(e,n)).finally(()=>e.commit(X.MUTATIONS.UPDATE_USER_LOADING,!1))},[X.ACTIONS.RESET_USER_SPORT_PREFERENCES](e,t){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(X.MUTATIONS.UPDATE_USER_LOADING,!0),Be.delete(`auth/profile/reset/sports/${t.sportId}`).then(n=>{n.status===204?(e.dispatch(Pt.ACTIONS.GET_SPORTS),t.fromSport&<.push(`/profile/sports/${t.sportId}`)):fe(e,null)}).catch(n=>{fe(e,n),e.commit(X.MUTATIONS.UPDATE_USER_LOADING,!1)})},[X.ACTIONS.UPDATE_USER_SPORT_PREFERENCES](e,t){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(X.MUTATIONS.UPDATE_USER_LOADING,!0);const{fromSport:n,...a}=t;Be.post("auth/profile/edit/sports",a).then(s=>{s.data.status==="success"?(e.dispatch(Pt.ACTIONS.GET_SPORTS),n&<.push(`/profile/sports/${a.sport_id}`)):fe(e,null)}).catch(s=>{fe(e,s),e.commit(X.MUTATIONS.UPDATE_USER_LOADING,!1)})},[X.ACTIONS.UPDATE_USER_PICTURE](e,t){if(e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(X.MUTATIONS.UPDATE_USER_LOADING,!0),!t.picture)throw new Error("No file part");const n=new FormData;n.append("file",t.picture),Be.post("auth/picture",n,{headers:{"content-type":"multipart/form-data"}}).then(a=>{a.data.status==="success"?e.dispatch(X.ACTIONS.GET_USER_PROFILE).then(()=>lt.push("/profile")):fe(e,null)}).catch(a=>fe(e,a)).finally(()=>e.commit(X.MUTATIONS.UPDATE_USER_LOADING,!1))},[X.ACTIONS.DELETE_ACCOUNT](e,t){Dg(e,t)},[X.ACTIONS.DELETE_PICTURE](e){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(X.MUTATIONS.UPDATE_USER_LOADING,!0),Be.delete("auth/picture").then(t=>{t.status===204?e.dispatch(X.ACTIONS.GET_USER_PROFILE).then(()=>lt.push("/profile")):fe(e,null)}).catch(t=>fe(e,t)).finally(()=>e.commit(X.MUTATIONS.UPDATE_USER_LOADING,!1))},[X.ACTIONS.SEND_PASSWORD_RESET_REQUEST](e,t){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),ns.post("auth/password/reset-request",t).then(n=>{n.data.status==="success"?lt.push("/password-reset/sent"):fe(e,null)}).catch(n=>fe(e,n))},[X.ACTIONS.RESEND_ACCOUNT_CONFIRMATION_EMAIL](e,t){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),ns.post("auth/account/resend-confirmation",t).then(n=>{n.data.status==="success"?lt.push("/account-confirmation/email-sent"):fe(e,null)}).catch(n=>fe(e,n))},[X.ACTIONS.RESET_USER_PASSWORD](e,t){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),ns.post("auth/password/update",t).then(n=>{n.data.status==="success"?lt.push("/password-reset/password-updated"):fe(e,null)}).catch(n=>fe(e,n))},[X.ACTIONS.ACCEPT_PRIVACY_POLICY](e,t){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),Be.post("auth/account/privacy-policy",{accepted_policy:t}).then(n=>{n.data.status==="success"?e.dispatch(X.ACTIONS.GET_USER_PROFILE).then(()=>lt.push("/profile")):fe(e,null)}).catch(n=>fe(e,n))},[X.ACTIONS.REQUEST_DATA_EXPORT](e){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),Be.post("auth/account/export/request").then(t=>{t.data.status==="success"?e.commit(X.MUTATIONS.SET_EXPORT_REQUEST,t.data.request):fe(e,null)}).catch(t=>fe(e,t))},[X.ACTIONS.GET_REQUEST_DATA_EXPORT](e){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),Be.get("auth/account/export").then(t=>{t.data.status==="success"?e.commit(X.MUTATIONS.SET_EXPORT_REQUEST,t.data.request):fe(e,null)}).catch(t=>fe(e,t))}},PVe={[X.GETTERS.AUTH_TOKEN]:e=>e.authToken,[X.GETTERS.AUTH_USER_PROFILE]:e=>e.authUserProfile,[X.GETTERS.EXPORT_REQUEST]:e=>e.exportRequest,[X.GETTERS.IS_AUTHENTICATED]:e=>e.authToken!==null,[X.GETTERS.IS_ADMIN]:e=>e.authUserProfile&&e.authUserProfile.admin,[X.GETTERS.IS_REGISTRATION_SUCCESS]:e=>e.isRegistrationSuccess,[X.GETTERS.IS_SUCCESS]:e=>e.isSuccess,[X.GETTERS.USER_LOADING]:e=>e.loading,[X.GETTERS.IS_PROFILE_NOT_LOADED]:e=>e.authUserProfile.username===void 0},LVe={[X.MUTATIONS.CLEAR_AUTH_USER_TOKEN](e){e.authToken=null,e.authUserProfile={}},[X.MUTATIONS.UPDATE_AUTH_TOKEN](e,t){e.authToken=t},[X.MUTATIONS.UPDATE_AUTH_USER_PROFILE](e,t){e.authUserProfile=t},[X.MUTATIONS.UPDATE_IS_REGISTRATION_SUCCESS](e,t){e.isRegistrationSuccess=t},[X.MUTATIONS.UPDATE_IS_SUCCESS](e,t){e.isSuccess=t},[X.MUTATIONS.UPDATE_USER_LOADING](e,t){e.loading=t},[X.MUTATIONS.SET_EXPORT_REQUEST](e,t){e.exportRequest=t}},yVe={authToken:null,authUserProfile:{},isSuccess:!1,isRegistrationSuccess:!1,loading:!1,exportRequest:null},$Ve={state:yVe,actions:DVe,getters:PVe,mutations:LVe},kVe={[We.ACTIONS.ADD_EQUIPMENT](e,t){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),Be.post("equipments",{description:t.description,equipment_type_id:t.equipmentTypeId,label:t.label,default_for_sport_ids:t.defaultForSportIds}).then(n=>{if(n.data.status==="created"){if(n.data.data.equipments.length>0){const a=n.data.data.equipments[0];e.commit(We.MUTATIONS.ADD_EQUIPMENT,a),lt.push(`/profile/equipments/${a.id}`)}e.dispatch(Pt.ACTIONS.GET_SPORTS),e.commit(X.MUTATIONS.UPDATE_USER_LOADING,!1)}else fe(e,null)}).catch(n=>fe(e,n))},[We.ACTIONS.DELETE_EQUIPMENT](e,t){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),Be.delete(`equipments/${t.id}${t.force?"?force":""}`).then(()=>{e.commit(We.MUTATIONS.REMOVE_EQUIPMENT,t.id),e.dispatch(Pt.ACTIONS.GET_SPORTS),lt.push("/profile/equipments")}).catch(n=>fe(e,n))},[We.ACTIONS.GET_EQUIPMENT](e,t){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),Be.get(`equipments/${t}`).then(n=>{n.data.status==="success"?n.data.data.equipments.length>0&&e.commit(We.MUTATIONS.UPDATE_EQUIPMENT,n.data.data.equipments[0]):fe(e,null)}).catch(n=>fe(e,n))},[We.ACTIONS.GET_EQUIPMENTS](e){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),Be.get("equipments").then(t=>{t.data.status==="success"?e.commit(We.MUTATIONS.SET_EQUIPMENTS,t.data.data.equipments):fe(e,null)}).catch(t=>fe(e,t))},[We.ACTIONS.GET_EQUIPMENT_TYPES](e){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),Be.get("equipment-types").then(t=>{t.data.status==="success"?(e.commit(We.MUTATIONS.SET_EQUIPMENT_TYPES,t.data.data.equipment_types),e.commit(X.MUTATIONS.UPDATE_USER_LOADING,!1)):fe(e,null)}).catch(t=>fe(e,t))},[We.ACTIONS.REFRESH_EQUIPMENT](e,t){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(We.MUTATIONS.SET_LOADING,!0),Be.post(`equipments/${t}/refresh`).then(n=>{n.data.status==="success"?n.data.data.equipments.length>0&&(e.commit(We.MUTATIONS.UPDATE_EQUIPMENT,n.data.data.equipments[0]),lt.push(`/profile/equipments/${t}`)):fe(e,null)}).catch(n=>fe(e,n)).finally(()=>e.commit(We.MUTATIONS.SET_LOADING,!1))},[We.ACTIONS.UPDATE_EQUIPMENT](e,t){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(We.MUTATIONS.SET_LOADING,!0),Be.patch(`equipments/${t.id}`,{description:t.description,equipment_type_id:t.equipmentTypeId,is_active:t.isActive,label:t.label,default_for_sport_ids:t.defaultForSportIds}).then(n=>{n.data.status==="success"?n.data.data.equipments.length>0&&(e.commit(We.MUTATIONS.UPDATE_EQUIPMENT,n.data.data.equipments[0]),e.dispatch(Pt.ACTIONS.GET_SPORTS),lt.push(`/profile/equipments/${t.id}`)):fe(e,null)}).catch(n=>fe(e,n)).finally(()=>e.commit(We.MUTATIONS.SET_LOADING,!1))},[We.ACTIONS.UPDATE_EQUIPMENT_TYPE](e,t){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(We.MUTATIONS.SET_LOADING,!0),Be.patch(`equipment-types/${t.id}`,{is_active:t.isActive}).then(n=>{n.data.status==="success"?e.dispatch(We.ACTIONS.GET_EQUIPMENT_TYPES):fe(e,null)}).catch(n=>fe(e,n)).finally(()=>e.commit(We.MUTATIONS.SET_LOADING,!1))}},UVe={[We.GETTERS.EQUIPMENTS]:e=>e.equipments,[We.GETTERS.EQUIPMENT_TYPES]:e=>e.equipmentTypes,[We.GETTERS.LOADING]:e=>e.loading},wVe={[We.MUTATIONS.ADD_EQUIPMENT](e,t){e.equipments.push(t)},[We.MUTATIONS.REMOVE_EQUIPMENT](e,t){e.equipments=e.equipments.filter(n=>n.id!=t)},[We.MUTATIONS.SET_EQUIPMENTS](e,t){e.equipments=t},[We.MUTATIONS.SET_EQUIPMENT_TYPES](e,t){e.equipmentTypes=t},[We.MUTATIONS.SET_LOADING](e,t){e.loading=t},[We.MUTATIONS.UPDATE_EQUIPMENT](e,t){const n=e.equipments.findIndex(a=>a.id===t.id);n!==-1&&(e.equipments[n]=t)}},MVe={equipments:[],equipmentTypes:[],loading:!1},WVe={state:MVe,actions:kVe,getters:UVe,mutations:wVe},c0=(e,t)=>{e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),Be.get(t).then(n=>{n.data.status==="success"?e.commit(nt.MUTATIONS.SET_CLIENT,n.data.data.client):fe(e,null)}).catch(n=>fe(e,n))},zVe={[nt.ACTIONS.AUTHORIZE_CLIENT](e,t){e.commit(K.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),Be.post("oauth/authorize",n,{headers:{"Content-Type":"multipart/form-data"}}).then(a=>{a.status==200&&a.data.redirect_url?window.location.href=a.data.redirect_url:fe(e,null)}).catch(a=>fe(e,a))},[nt.ACTIONS.CREATE_CLIENT](e,t){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),Be.post("oauth/apps",t).then(n=>{n.data.status==="created"?(e.commit(nt.MUTATIONS.SET_CLIENT,n.data.data.client),lt.push(`/profile/apps/${n.data.data.client.id}/created`)):fe(e,null)}).catch(n=>fe(e,n))},[nt.ACTIONS.DELETE_CLIENT](e,t){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),Be.delete(`oauth/apps/${t}`).then(n=>{n.status===204?e.dispatch(nt.ACTIONS.GET_CLIENTS).then(()=>lt.push("/profile/apps")):fe(e,null)}).catch(n=>fe(e,n))},[nt.ACTIONS.GET_CLIENT_BY_CLIENT_ID](e,t){c0(e,`oauth/apps/${t}`)},[nt.ACTIONS.GET_CLIENT_BY_ID](e,t){c0(e,`oauth/apps/${t}/by_id`)},[nt.ACTIONS.GET_CLIENTS](e,t){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),Be.get("oauth/apps",{params:t}).then(n=>{n.data.status==="success"?(e.commit(nt.MUTATIONS.SET_CLIENTS,n.data.data.clients),e.commit(nt.MUTATIONS.SET_CLIENTS_PAGINATION,n.data.pagination)):fe(e,null)}).catch(n=>fe(e,n))},[nt.ACTIONS.REVOKE_ALL_TOKENS](e,t){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(nt.MUTATIONS.SET_REVOCATION_SUCCESSFUL,!1),Be.post(`oauth/apps/${t}/revoke`).then(n=>{n.data.status==="success"?e.commit(nt.MUTATIONS.SET_REVOCATION_SUCCESSFUL,!0):fe(e,null)}).catch(n=>fe(e,n))}},FVe={[nt.GETTERS.CLIENT]:e=>e.client,[nt.GETTERS.CLIENTS]:e=>e.clients,[nt.GETTERS.CLIENTS_PAGINATION]:e=>e.pagination,[nt.GETTERS.REVOCATION_SUCCESSFUL]:e=>e.revocationSuccessful},xVe={[nt.MUTATIONS.SET_CLIENT](e,t){e.client=t},[nt.MUTATIONS.EMPTY_CLIENT](e){e.client={}},[nt.MUTATIONS.SET_CLIENTS](e,t){e.clients=t},[nt.MUTATIONS.SET_CLIENTS_PAGINATION](e,t){e.pagination=t},[nt.MUTATIONS.SET_REVOCATION_SUCCESSFUL](e,t){e.revocationSuccessful=t}},BVe={client:{},clients:[],pagination:{},revocationSuccessful:!1},GVe={state:BVe,actions:zVe,getters:FVe,mutations:xVe},{locale:HVe}=xr.global,VVe={[K.ACTIONS.GET_APPLICATION_CONFIG](e){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(K.MUTATIONS.UPDATE_APPLICATION_LOADING,!0),Be.get("config").then(t=>{t.data.status==="success"?e.commit(K.MUTATIONS.UPDATE_APPLICATION_CONFIG,t.data.data):fe(e,null)}).catch(t=>fe(e,t)).finally(()=>e.commit(K.MUTATIONS.UPDATE_APPLICATION_LOADING,!1))},[K.ACTIONS.GET_APPLICATION_STATS](e){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),Be.get("stats/all").then(t=>{t.data.status==="success"?e.commit(K.MUTATIONS.UPDATE_APPLICATION_STATS,t.data.data):fe(e,null)}).catch(t=>fe(e,t))},[K.ACTIONS.GET_APPLICATION_PRIVACY_POLICY](e){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),Be.get("config").then(t=>{t.data.status==="success"?e.commit(K.MUTATIONS.UPDATE_APPLICATION_PRIVACY_POLICY,t.data.data):fe(e,null)}).catch(t=>fe(e,t))},[K.ACTIONS.UPDATE_APPLICATION_CONFIG](e,t){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),Be.patch("config",t).then(n=>{n.data.status==="success"?(e.commit(K.MUTATIONS.UPDATE_APPLICATION_CONFIG,n.data.data),lt.push("/admin/application")):fe(e,null)}).catch(n=>fe(e,n))},[K.ACTIONS.UPDATE_APPLICATION_LANGUAGE](e,t){var n;(n=document.querySelector("html"))==null||n.setAttribute("lang",t),e.commit(K.MUTATIONS.UPDATE_LANG,t),HVe.value=t}},KVe={[K.GETTERS.APP_CONFIG]:e=>e.application.config,[K.GETTERS.APP_LOADING]:e=>e.appLoading,[K.GETTERS.APP_STATS]:e=>e.application.statistics,[K.GETTERS.DARK_MODE]:e=>e.darkMode,[K.GETTERS.ERROR_MESSAGES]:e=>e.errorMessages,[K.GETTERS.LANGUAGE]:e=>e.language,[K.GETTERS.LOCALE]:e=>e.locale},jVe={[K.MUTATIONS.EMPTY_ERROR_MESSAGES](e){e.errorMessages=null},[K.MUTATIONS.SET_ERROR_MESSAGES](e,t){e.errorMessages=t},[K.MUTATIONS.UPDATE_APPLICATION_CONFIG](e,t){e.application.config=t},[K.MUTATIONS.UPDATE_APPLICATION_LOADING](e,t){e.appLoading=t},[K.MUTATIONS.UPDATE_APPLICATION_PRIVACY_POLICY](e,t){e.application.config.privacy_policy=t.privacy_policy,e.application.config.privacy_policy_date=t.privacy_policy_date},[K.MUTATIONS.UPDATE_APPLICATION_STATS](e,t){e.application.statistics=t},[K.MUTATIONS.UPDATE_LANG](e,t){t in Ms?(e.language=t,e.locale=Ms[t]):(e.language="en",e.locale=mo)},[K.MUTATIONS.UPDATE_DARK_MODE](e,t){e.darkMode=t}},qVe={root:!0,language:"en",locale:mo,errorMessages:null,application:{statistics:{sports:0,uploads_dir_size:0,users:0,workouts:0}},appLoading:!1,darkMode:null},YVe={[Pt.ACTIONS.GET_SPORTS](e,t){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),Be.get(`sports${t?"?check_workouts=true":""}`).then(n=>{n.data.status==="success"?(e.commit(Pt.MUTATIONS.SET_SPORTS,n.data.data.sports),e.commit(X.MUTATIONS.UPDATE_USER_LOADING,!1)):fe(e,null)}).catch(n=>fe(e,n))},[Pt.ACTIONS.UPDATE_SPORTS](e,t){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),Be.patch(`sports/${t.id}`,{is_active:t.isActive}).then(n=>{n.data.status==="success"?e.dispatch(Pt.ACTIONS.GET_SPORTS):fe(e,null)}).catch(n=>fe(e,n))}},XVe={[Pt.GETTERS.SPORTS]:e=>e.sports},QVe={[Pt.MUTATIONS.SET_SPORTS](e,t){e.sports=t}},ZVe={sports:[]},JVe={state:ZVe,actions:YVe,getters:XVe,mutations:QVe},eKe={[wt.ACTIONS.GET_USER_STATS](e,t){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),Be.get(`stats/${t.username}/by_time`,{params:t.params}).then(n=>{n.data.status==="success"?e.commit(wt.MUTATIONS.UPDATE_USER_STATS,n.data.data.statistics):fe(e,null)}).catch(n=>fe(e,n))},[wt.ACTIONS.GET_USER_SPORT_STATS](e,t){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(wt.MUTATIONS.UPDATE_STATS_LOADING,!0),Be.get(`stats/${t.username}/by_sport`,{params:{sport_id:t.sportId}}).then(n=>{n.data.status==="success"?(e.commit(wt.MUTATIONS.UPDATE_USER_SPORT_STATS,n.data.data.statistics),e.commit(wt.MUTATIONS.UPDATE_TOTAL_WORKOUTS,n.data.data.total_workouts)):fe(e,null)}).catch(n=>fe(e,n)).finally(()=>e.commit(wt.MUTATIONS.UPDATE_STATS_LOADING,!1))}},tKe={[wt.GETTERS.USER_SPORT_STATS]:e=>e.sportStatistics,[wt.GETTERS.USER_STATS]:e=>e.statistics,[wt.GETTERS.STATS_LOADING]:e=>e.loading,[wt.GETTERS.TOTAL_WORKOUTS]:e=>e.totalWorkouts},nKe={[wt.MUTATIONS.UPDATE_USER_STATS](e,t){e.statistics=t},[wt.MUTATIONS.EMPTY_USER_STATS](e){e.statistics={}},[wt.MUTATIONS.EMPTY_USER_SPORT_STATS](e){e.sportStatistics={},e.totalWorkouts=0},[wt.MUTATIONS.UPDATE_USER_SPORT_STATS](e,t){e.sportStatistics=t},[wt.MUTATIONS.UPDATE_STATS_LOADING](e,t){e.loading=t},[wt.MUTATIONS.UPDATE_TOTAL_WORKOUTS](e,t){e.totalWorkouts=t}},aKe={statistics:{},sportStatistics:{},totalWorkouts:0,loading:!1},sKe={state:aKe,actions:eKe,getters:tKe,mutations:nKe},rKe={[Ge.GETTERS.USER]:e=>e.user,[Ge.GETTERS.USERS]:e=>e.users,[Ge.GETTERS.USERS_IS_SUCCESS]:e=>e.isSuccess,[Ge.GETTERS.USERS_LOADING]:e=>e.loading,[Ge.GETTERS.USERS_PAGINATION]:e=>e.pagination},iKe={[Ge.MUTATIONS.UPDATE_USER](e,t){e.user=t},[Ge.MUTATIONS.UPDATE_USER_IN_USERS](e,t){e.users=e.users.map(n=>n.username===t.username?t:n)},[Ge.MUTATIONS.UPDATE_USERS](e,t){e.users=t},[Ge.MUTATIONS.UPDATE_USERS_LOADING](e,t){e.loading=t},[Ge.MUTATIONS.UPDATE_USERS_PAGINATION](e,t){e.pagination=t},[Ge.MUTATIONS.UPDATE_IS_SUCCESS](e,t){e.isSuccess=t}},oKe={user:{},users:[],loading:!1,isSuccess:!1,pagination:{}},uKe={state:oKe,actions:CVe,getters:rKe,mutations:iKe},Qo=(e,t,n)=>{e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),Be.get("workouts",{params:t}).then(a=>{a.data.status==="success"?(e.commit(ge.MUTATIONS[n],a.data.data.workouts),n===Ps.SET_USER_WORKOUTS&&e.commit(ge.MUTATIONS.SET_WORKOUTS_PAGINATION,a.data.pagination)):fe(e,null)}).catch(a=>fe(e,a))},lKe={[ge.ACTIONS.GET_CALENDAR_WORKOUTS](e,t){e.commit(ge.MUTATIONS.EMPTY_CALENDAR_WORKOUTS),Qo(e,t,Ps.SET_CALENDAR_WORKOUTS)},[ge.ACTIONS.GET_USER_WORKOUTS](e,t){Qo(e,t,Ps.SET_USER_WORKOUTS)},[ge.ACTIONS.GET_TIMELINE_WORKOUTS](e,t){Qo(e,t,Ps.SET_TIMELINE_WORKOUTS)},[ge.ACTIONS.GET_MORE_TIMELINE_WORKOUTS](e,t){Qo(e,t,Ps.ADD_TIMELINE_WORKOUTS)},[ge.ACTIONS.GET_WORKOUT_DATA](e,t){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(ge.MUTATIONS.SET_WORKOUT_LOADING,!0);const n=t.segmentId?`/segment/${t.segmentId}`:"";Be.get(`workouts/${t.workoutId}`).then(a=>{const s=a.data.data.workouts[0];if(a.data.status==="success"){if(t.segmentId&&(s.segments.length===0||!s.segments[+t.segmentId-1]))throw new Error("WORKOUT_NOT_FOUND");e.commit(ge.MUTATIONS.SET_WORKOUT,a.data.data.workouts[0]),a.data.data.workouts[0].with_gpx&&(Be.get(`workouts/${t.workoutId}/chart_data${n}`).then(r=>{r.data.status==="success"&&e.commit(ge.MUTATIONS.SET_WORKOUT_CHART_DATA,r.data.data.chart_data)}),Be.get(`workouts/${t.workoutId}/gpx${n}`).then(r=>{r.data.status==="success"&&e.commit(ge.MUTATIONS.SET_WORKOUT_GPX,r.data.data.gpx)}))}else e.commit(ge.MUTATIONS.EMPTY_WORKOUT),fe(e,null)}).catch(a=>{e.commit(ge.MUTATIONS.EMPTY_WORKOUT),fe(e,a)}).finally(()=>e.commit(ge.MUTATIONS.SET_WORKOUT_LOADING,!1))},[ge.ACTIONS.DELETE_WORKOUT](e,t){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(ge.MUTATIONS.SET_WORKOUT_LOADING,!0),Be.delete(`workouts/${t.workoutId}`).then(()=>{e.commit(ge.MUTATIONS.EMPTY_WORKOUT),e.dispatch(X.ACTIONS.GET_USER_PROFILE),lt.push("/")}).catch(n=>{fe(e,n)}).finally(()=>e.commit(ge.MUTATIONS.SET_WORKOUT_LOADING,!1))},[ge.ACTIONS.EDIT_WORKOUT](e,t){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(ge.MUTATIONS.SET_WORKOUT_LOADING,!0),Be.patch(`workouts/${t.workoutId}`,t.data).then(()=>{e.dispatch(X.ACTIONS.GET_USER_PROFILE),e.dispatch(ge.ACTIONS.GET_WORKOUT_DATA,{workoutId:t.workoutId}).then(()=>{lt.push({name:"Workout",params:{workoutId:t.workoutId}})})}).catch(n=>{fe(e,n)}).finally(()=>e.commit(ge.MUTATIONS.SET_WORKOUT_LOADING,!1))},[ge.ACTIONS.EDIT_WORKOUT_CONTENT](e,t){e.commit(ge.MUTATIONS.SET_WORKOUT_CONTENT_LOADING,!0),e.commit(ge.MUTATIONS.SET_WORKOUT_CONTENT_TYPE,t.contentType),e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES);const n={[t.contentType==="NOTES"?"notes":"description"]:t.content};Be.patch(`workouts/${t.workoutId}`,n).then(a=>{const s=a.data.data.workouts[0];e.commit(ge.MUTATIONS.SET_WORKOUT_CONTENT,s)}).catch(a=>{fe(e,a)}).finally(()=>e.commit(ge.MUTATIONS.SET_WORKOUT_CONTENT_LOADING,!1))},[ge.ACTIONS.ADD_WORKOUT](e,t){if(e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(ge.MUTATIONS.SET_WORKOUT_LOADING,!0),!t.file)throw new Error("No file part");const n=t.notes.replace(/"/g,'\\"'),a=t.description.replace(/"/g,'\\"'),s=new FormData;s.append("file",t.file),s.append("data",`{"sport_id": ${t.sport_id}, "notes": "${n}", "description": "${a}", "equipment_ids": [${t.equipment_ids.map(r=>`"${r}"`).join(",")}]}`),Be.post("workouts",s,{headers:{"content-type":"multipart/form-data"}}).then(r=>{if(r.data.status==="created"){e.dispatch(X.ACTIONS.GET_USER_PROFILE);const i=r.data.data.workouts[0];lt.push(r.data.data.workouts.length===1?`/workouts/${i.id}`:"/")}}).catch(r=>{fe(e,r)}).finally(()=>e.commit(ge.MUTATIONS.SET_WORKOUT_LOADING,!1))},[ge.ACTIONS.ADD_WORKOUT_WITHOUT_GPX](e,t){e.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(ge.MUTATIONS.SET_WORKOUT_LOADING,!0),Be.post("workouts/no_gpx",t).then(n=>{if(n.data.status==="created"){e.dispatch(X.ACTIONS.GET_USER_PROFILE);const a=n.data.data.workouts[0];lt.push(`/workouts/${a.id}`)}}).catch(n=>{fe(e,n)}).finally(()=>e.commit(ge.MUTATIONS.SET_WORKOUT_LOADING,!1))}},cKe={[ge.GETTERS.CALENDAR_WORKOUTS]:e=>e.calendar_workouts,[ge.GETTERS.TIMELINE_WORKOUTS]:e=>e.timeline_workouts,[ge.GETTERS.USER_WORKOUTS]:e=>e.user_workouts,[ge.GETTERS.WORKOUT_CONTENT_EDITION]:e=>e.workoutContent,[ge.GETTERS.WORKOUT_DATA]:e=>e.workoutData,[ge.GETTERS.WORKOUTS_PAGINATION]:e=>e.pagination},dKe={[ge.MUTATIONS.ADD_TIMELINE_WORKOUTS](e,t){e.timeline_workouts=e.timeline_workouts.concat(t)},[ge.MUTATIONS.SET_CALENDAR_WORKOUTS](e,t){e.calendar_workouts=t},[ge.MUTATIONS.SET_TIMELINE_WORKOUTS](e,t){e.timeline_workouts=t},[ge.MUTATIONS.SET_USER_WORKOUTS](e,t){e.user_workouts=t},[ge.MUTATIONS.SET_WORKOUTS_PAGINATION](e,t){e.pagination=t},[ge.MUTATIONS.SET_WORKOUT](e,t){e.workoutData.workout=t},[ge.MUTATIONS.SET_WORKOUT_CHART_DATA](e,t){e.workoutData.chartData=t},[ge.MUTATIONS.SET_WORKOUT_GPX](e,t){e.workoutData.gpx=t},[ge.MUTATIONS.SET_WORKOUT_LOADING](e,t){e.workoutData.loading=t},[ge.MUTATIONS.SET_WORKOUT_CONTENT](e,t){e.workoutData.workout=t},[ge.MUTATIONS.SET_WORKOUT_CONTENT_LOADING](e,t){e.workoutContent.loading=t},[ge.MUTATIONS.SET_WORKOUT_CONTENT_TYPE](e,t){e.workoutContent.contentType=t},[ge.MUTATIONS.EMPTY_CALENDAR_WORKOUTS](e){e.calendar_workouts=[]},[ge.MUTATIONS.EMPTY_WORKOUTS](e){e.calendar_workouts=[],e.user_workouts=[],e.timeline_workouts=[]},[ge.MUTATIONS.EMPTY_WORKOUT](e){e.workoutData={gpx:"",loading:!1,workout:{},chartData:[]}}},EKe={calendar_workouts:[],timeline_workouts:[],pagination:{},user_workouts:[],workoutData:{gpx:"",loading:!1,workout:{},chartData:[]},workoutContent:{loading:!1,contentType:""}},pKe={state:EKe,actions:lKe,getters:cKe,mutations:dKe},fKe={authUserModule:$Ve,equipmentModule:WVe,oAuthModule:GVe,sportsModule:JVe,statsModule:sKe,usersModule:uKe,workoutsModule:pKe},mKe={state:qVe,actions:VVe,getters:KVe,mutations:jVe,modules:fKe},Ri=L3(mKe),hf=zt.create({baseURL:uo()});hf.interceptors.request.use(e=>{const t=new AbortController;e.signal=t.signal;const n=Ur(e);Ii.set(n,t);const a=Ri.getters[X.GETTERS.AUTH_TOKEN];if(a){const s=`Bearer ${a}`;e.headers&&e.headers.Authorization!==s&&(e.headers.Authorization=`Bearer ${a}`)}return e},e=>Promise.reject(e));hf.interceptors.response.use(e=>(Ur(e.config),e),e=>(e.message!=="canceled"&&e.response&&Ur(e.response.config),Promise.reject(e)));const Be=hf,UE=(e,t)=>e.push.apply(e,t),wr=e=>e.sort((t,n)=>t.i-n.i||t.j-n.j),d0=e=>{const t={};let n=1;return e.forEach(a=>{t[a]=n,n+=1}),t};var TKe={4:[[1,2],[2,3]],5:[[1,3],[2,3],[2,4]],6:[[1,2],[2,4],[4,5]],7:[[1,3],[2,3],[4,5],[4,6]],8:[[2,4],[4,6]]};const E0=2050,p0=1e3,_Ke=TKe,hKe=10,SKe=1e4,Pg=10,Lg=50,yg=20,$g=/^[A-Z\xbf-\xdf][^A-Z\xbf-\xdf]+$/,AKe=/^[^A-Z\xbf-\xdf]+[A-Z\xbf-\xdf]$/,OKe=/^[A-Z\xbf-\xdf]+$/,kg=/^[^a-z\xdf-\xff]+$/,gKe=/^[a-z\xdf-\xff]+$/,IKe=/^[^A-Z\xbf-\xdf]+$/,RKe=/[a-z\xdf-\xff]/,NKe=/[A-Z\xbf-\xdf]/,bKe=/[^A-Za-z\xbf-\xdf]/gi,vKe=/^\d+$/,Sf=new Date().getFullYear(),CKe={recentYear:/19\d\d|200\d|201\d|202\d/g},Ug=[" ",",",";",":","|","/","\\","_",".","-"],DKe=Ug.length;class PKe{match({password:t}){const n=[...this.getMatchesWithoutSeparator(t),...this.getMatchesWithSeparator(t)],a=this.filterNoise(n);return wr(a)}getMatchesWithSeparator(t){const n=[],a=/^(\d{1,4})([\s/\\_.-])(\d{1,2})\2(\d{1,4})$/;for(let s=0;s<=Math.abs(t.length-6);s+=1)for(let r=s+5;r<=s+9&&!(r>=t.length);r+=1){const i=t.slice(s,+r+1||9e9),o=a.exec(i);if(o!=null){const u=this.mapIntegersToDayMonthYear([parseInt(o[1],10),parseInt(o[3],10),parseInt(o[4],10)]);u!=null&&n.push({pattern:"date",token:i,i:s,j:r,separator:o[2],year:u.year,month:u.month,day:u.day})}}return n}getMatchesWithoutSeparator(t){const n=[],a=/^\d{4,8}$/,s=r=>Math.abs(r.year-Sf);for(let r=0;r<=Math.abs(t.length-4);r+=1)for(let i=r+3;i<=r+7&&!(i>=t.length);i+=1){const o=t.slice(r,+i+1||9e9);if(a.exec(o)){const u=[],l=o.length;if(_Ke[l].forEach(([p,d])=>{const f=this.mapIntegersToDayMonthYear([parseInt(o.slice(0,p),10),parseInt(o.slice(p,d),10),parseInt(o.slice(d),10)]);f!=null&&u.push(f)}),u.length>0){let p=u[0],d=s(u[0]);u.slice(1).forEach(f=>{const T=s(f);T{let a=!1;const s=t.length;for(let r=0;r=n.j){a=!0;break}}return!a})}mapIntegersToDayMonthYear(t){if(t[1]>31||t[1]<=0)return null;let n=0,a=0,s=0;for(let r=0,i=t.length;r99&&oE0)return null;o>31&&(a+=1),o>12&&(n+=1),o<=0&&(s+=1)}return a>=2||n===3||s>=2?null:this.getDayMonth(t)}getDayMonth(t){const n=[[t[2],t.slice(0,2)],[t[0],t.slice(1,3)]],a=n.length;for(let s=0;s=1&&r<=31&&i>=1&&i<=12)return{day:r,month:i}}return null}twoToFourDigitYear(t){return t>99?t:t>50?t+1900:t+2e3}}const Pa=new Uint32Array(65536),LKe=(e,t)=>{const n=e.length,a=t.length,s=1<{const n=t.length,a=e.length,s=[],r=[],i=Math.ceil(n/32),o=Math.ceil(a/32);for(let T=0;T>>N&1,b=s[N/32|0]>>>N&1,y=S|T,P=((S|b)&O)+O^O|S|b;let C=T|~(P|O),D=O&P;C>>>31^A&&(r[N/32|0]^=1<>>31^b&&(s[N/32|0]^=1<>>T&1,g=s[T/32|0]>>>T&1,N=O|l,S=((O|g)&c)+c^c|O|g;let A=l|~(S|c),b=c&S;f+=A>>>a-1&1,f-=b>>>a-1&1,A>>>31^R&&(r[T/32|0]^=1<>>31^g&&(s[T/32|0]^=1<{if(e.length{const a=e.length<=t.length,s=e.length<=n;return a||s?Math.ceil(e.length/4):n},UKe=(e,t,n)=>{let a=0;const s=Object.keys(t).find(r=>{const i=kKe(e,r,n);if(Math.abs(e.length-r.length)>i)return!1;const o=$Ke(e,r),u=o<=i;return u&&(a=o),u});return s?{levenshteinDistance:a,levenshteinDistanceEntry:s}:{}};var f0={a:["4","@"],b:["8"],c:["(","{","[","<"],d:["6","|)"],e:["3"],f:["#"],g:["6","9","&"],h:["#","|-|"],i:["1","!","|"],k:["<","|<"],l:["!","1","|","7"],m:["^^","nn","2n","/\\\\/\\\\"],n:["//"],o:["0","()"],q:["9"],u:["|_|"],s:["$","5"],t:["+","7"],v:["<",">","/"],w:["^/","uu","vv","2u","2v","\\\\/\\\\/"],x:["%","><"],z:["2"]},rd={warnings:{straightRow:"straightRow",keyPattern:"keyPattern",simpleRepeat:"simpleRepeat",extendedRepeat:"extendedRepeat",sequences:"sequences",recentYears:"recentYears",dates:"dates",topTen:"topTen",topHundred:"topHundred",common:"common",similarToCommon:"similarToCommon",wordByItself:"wordByItself",namesByThemselves:"namesByThemselves",commonNames:"commonNames",userInputs:"userInputs",pwned:"pwned"},suggestions:{l33t:"l33t",reverseWords:"reverseWords",allUppercase:"allUppercase",capitalization:"capitalization",dates:"dates",recentYears:"recentYears",associatedYears:"associatedYears",sequences:"sequences",repeated:"repeated",longerKeyboardPattern:"longerKeyboardPattern",anotherWord:"anotherWord",useWords:"useWords",noNeed:"noNeed",pwned:"pwned"},timeEstimation:{ltSecond:"ltSecond",second:"second",seconds:"seconds",minute:"minute",minutes:"minutes",hour:"hour",hours:"hours",day:"day",days:"days",month:"month",months:"months",year:"year",years:"years",centuries:"centuries"}};class Qi{constructor(t=[]){this.parents=t,this.children=new Map}addSub(t,...n){const a=t.charAt(0);this.children.has(a)||this.children.set(a,new Qi([...this.parents,a]));let s=this.children.get(a);for(let r=1;r(Object.entries(e).forEach(([n,a])=>{a.forEach(s=>{t.addSub(s,n)})}),t);class wKe{constructor(){this.matchers={},this.l33tTable=f0,this.trieNodeRoot=m0(f0,new Qi),this.dictionary={userInputs:[]},this.rankedDictionaries={},this.rankedDictionariesMaxWordSize={},this.translations=rd,this.graphs={},this.useLevenshteinDistance=!1,this.levenshteinThreshold=2,this.l33tMaxSubstitutions=100,this.maxLength=256,this.setRankedDictionaries()}setOptions(t={}){t.l33tTable&&(this.l33tTable=t.l33tTable,this.trieNodeRoot=m0(t.l33tTable,new Qi)),t.dictionary&&(this.dictionary=t.dictionary,this.setRankedDictionaries()),t.translations&&this.setTranslations(t.translations),t.graphs&&(this.graphs=t.graphs),t.useLevenshteinDistance!==void 0&&(this.useLevenshteinDistance=t.useLevenshteinDistance),t.levenshteinThreshold!==void 0&&(this.levenshteinThreshold=t.levenshteinThreshold),t.l33tMaxSubstitutions!==void 0&&(this.l33tMaxSubstitutions=t.l33tMaxSubstitutions),t.maxLength!==void 0&&(this.maxLength=t.maxLength)}setTranslations(t){if(this.checkCustomTranslations(t))this.translations=t;else throw new Error("Invalid translations object fallback to keys")}checkCustomTranslations(t){let n=!0;return Object.keys(rd).forEach(a=>{if(a in t){const s=a;Object.keys(rd[s]).forEach(r=>{r in t[s]||(n=!1)})}else n=!1}),n}setRankedDictionaries(){const t={},n={};Object.keys(this.dictionary).forEach(a=>{t[a]=d0(this.dictionary[a]),n[a]=this.getRankedDictionariesMaxWordSize(this.dictionary[a])}),this.rankedDictionaries=t,this.rankedDictionariesMaxWordSize=n}getRankedDictionariesMaxWordSize(t){const n=t.map(a=>typeof a!="string"?a.toString().length:a.length);return n.length===0?0:n.reduce((a,s)=>Math.max(a,s),-1/0)}buildSanitizedRankedDictionary(t){const n=[];return t.forEach(a=>{const s=typeof a;(s==="string"||s==="number"||s==="boolean")&&n.push(a.toString().toLowerCase())}),d0(n)}extendUserInputsDictionary(t){this.dictionary.userInputs||(this.dictionary.userInputs=[]);const n=[...this.dictionary.userInputs,...t];this.rankedDictionaries.userInputs=this.buildSanitizedRankedDictionary(n),this.rankedDictionariesMaxWordSize.userInputs=this.getRankedDictionariesMaxWordSize(n)}addMatcher(t,n){this.matchers[t]?console.info(`Matcher ${t} already exists`):this.matchers[t]=n}}const Fe=new wKe;class MKe{constructor(t){this.defaultMatch=t}match({password:t}){const n=t.split("").reverse().join("");return this.defaultMatch({password:n}).map(a=>({...a,token:a.token.split("").reverse().join(""),reversed:!0,i:t.length-1-a.j,j:t.length-1-a.i}))}}class WKe{constructor({substr:t,limit:n,trieRoot:a}){this.buffer=[],this.finalPasswords=[],this.substr=t,this.limit=n,this.trieRoot=a}getAllPossibleSubsAtIndex(t){const n=[];let a=this.trieRoot;for(let s=t;s=this.limit)return;if(a===this.substr.length){t===n&&this.finalPasswords.push({password:this.buffer.join(""),changes:r});return}const u=[...this.getAllPossibleSubsAtIndex(a)];let l=!1;for(let c=a+u.length-1;c>=a;c-=1){const p=u[c-a];if(p.isTerminal()){if(i===p.parents.join("")&&o>=3)continue;l=!0;const d=p.subs;for(const f of d){this.buffer.push(f);const T=r.concat({i:s,letter:f,substitution:p.parents.join("")});if(this.helper({onlyFullSub:t,isFullSub:n,index:c+1,subIndex:s+f.length,changes:T,lastSubLetter:p.parents.join(""),consecutiveSubCount:i===p.parents.join("")?o+1:1}),this.buffer.pop(),this.finalPasswords.length>=this.limit)return}}}if(!t||!l){const c=this.substr.charAt(a);this.buffer.push(c),this.helper({onlyFullSub:t,isFullSub:n&&!l,index:a+1,subIndex:s+1,changes:r,lastSubLetter:i,consecutiveSubCount:o}),this.buffer.pop()}}getAll(){return this.helper({onlyFullSub:!0,isFullSub:!0,index:0,subIndex:0,changes:[],lastSubLetter:void 0,consecutiveSubCount:0}),this.helper({onlyFullSub:!1,isFullSub:!0,index:0,subIndex:0,changes:[],lastSubLetter:void 0,consecutiveSubCount:0}),this.finalPasswords}}const zKe=(e,t,n)=>new WKe({substr:e,limit:t,trieRoot:n}).getAll(),FKe=(e,t,n)=>{const s=e.changes.filter(l=>l.il-c.letter.length+c.substitution.length,t),r=e.changes.filter(l=>l.i>=t&&l.i<=n),i=r.reduce((l,c)=>l-c.letter.length+c.substitution.length,n-t+s),o=[],u=[];return r.forEach(l=>{o.findIndex(p=>p.letter===l.letter&&p.substitution===l.substitution)<0&&(o.push({letter:l.letter,substitution:l.substitution}),u.push(`${l.substitution} -> ${l.letter}`))}),{i:s,j:i,subs:o,subDisplay:u.join(", ")}};class xKe{constructor(t){this.defaultMatch=t}isAlreadyIncluded(t,n){return t.some(a=>Object.entries(a).every(([s,r])=>s==="subs"||r===n[s]))}match({password:t}){const n=[],a=zKe(t,Fe.l33tMaxSubstitutions,Fe.trieNodeRoot);let s=!1,r=!0;return a.forEach(i=>{if(s)return;const o=this.defaultMatch({password:i.password,useLevenshtein:r});r=!1,o.forEach(u=>{s||(s=u.i===0&&u.j===t.length-1);const l=FKe(i,u.i,u.j),c=t.slice(l.i,+l.j+1||9e9),p={...u,l33t:!0,token:c,...l},d=this.isAlreadyIncluded(n,p);c.toLowerCase()!==u.matchedWord&&!d&&n.push(p)})}),n.filter(i=>i.token.length>1)}}class BKe{constructor(){this.l33t=new xKe(this.defaultMatch),this.reverse=new MKe(this.defaultMatch)}match({password:t}){const n=[...this.defaultMatch({password:t}),...this.reverse.match({password:t}),...this.l33t.match({password:t})];return wr(n)}defaultMatch({password:t,useLevenshtein:n=!0}){const a=[],s=t.length,r=t.toLowerCase();return Object.keys(Fe.rankedDictionaries).forEach(i=>{const o=Fe.rankedDictionaries[i],u=Fe.rankedDictionariesMaxWordSize[i],l=Math.min(u,s);for(let c=0;c{const r=n[s];r.lastIndex=0;let i;for(;i=r.exec(t);)if(i){const o=i[0];a.push({pattern:"regex",token:o,i:i.index,j:i.index+i[0].length-1,regexName:s,regexMatch:i})}}),wr(a)}}var Ks={nCk(e,t){let n=e;if(t>n)return 0;if(t===0)return 1;let a=1;for(let s=1;s<=t;s+=1)a*=n,a/=s,n-=1;return a},log10(e){return e===0?0:Math.log(e)/Math.log(10)},log2(e){return Math.log(e)/Math.log(2)},factorial(e){let t=1;for(let n=2;n<=e;n+=1)t*=n;return t}},HKe=({token:e})=>{let t=hKe**e.length;t===Number.POSITIVE_INFINITY&&(t=Number.MAX_VALUE);let n;return e.length===1?n=Pg+1:n=Lg+1,Math.max(t,n)},VKe=({year:e,separator:t})=>{let a=Math.max(Math.abs(e-Sf),yg)*365;return t&&(a*=4),a};const KKe=e=>{const t=e.split(""),n=t.filter(i=>i.match(NKe)).length,a=t.filter(i=>i.match(RKe)).length;let s=0;const r=Math.min(n,a);for(let i=1;i<=r;i+=1)s+=Ks.nCk(n+a,i);return s};var jKe=e=>{const t=e.replace(bKe,"");if(t.match(IKe)||t.toLowerCase()===t)return 1;const n=[$g,AKe,kg],a=n.length;for(let s=0;s{let n=0,a=e.indexOf(t);for(;a>=0;)n+=1,a=e.indexOf(t,a+t.length);return n},qKe=({sub:e,token:t})=>{const n=t.toLowerCase(),a=T0(n,e.substitution),s=T0(n,e.letter);return{subbedCount:a,unsubbedCount:s}};var YKe=({l33t:e,subs:t,token:n})=>{if(!e)return 1;let a=1;return t.forEach(s=>{const{subbedCount:r,unsubbedCount:i}=qKe({sub:s,token:n});if(r===0||i===0)a*=2;else{const o=Math.min(i,r);let u=0;for(let l=1;l<=o;l+=1)u+=Ks.nCk(i+r,l);a*=u}}),a},XKe=({rank:e,reversed:t,l33t:n,subs:a,token:s,dictionaryName:r})=>{const i=e,o=jKe(s),u=YKe({l33t:n,subs:a,token:s}),l=t&&2||1;let c;return r==="diceware"?c=6**5/2:c=i*o*u*l,{baseGuesses:i,uppercaseVariations:o,l33tVariations:u,calculation:c}},QKe=({regexName:e,regexMatch:t,token:n})=>{const a={alphaLower:26,alphaUpper:26,alpha:52,alphanumeric:62,digits:10,symbols:33};if(e in a)return a[e]**n.length;switch(e){case"recentYear":return Math.max(Math.abs(parseInt(t[0],10)-Sf),yg)}return 0},ZKe=({baseGuesses:e,repeatCount:t})=>e*t,JKe=({token:e,ascending:t})=>{const n=e.charAt(0);let a=0;return["a","A","z","Z","0","1","9"].includes(n)?a=4:n.match(/\d/)?a=10:a=26,t||(a*=2),a*e.length};const eje=e=>{let t=0;return Object.keys(e).forEach(n=>{const a=e[n];t+=a.filter(s=>!!s).length}),t/=Object.entries(e).length,t},tje=({token:e,graph:t,turns:n})=>{const a=Object.keys(Fe.graphs[t]).length,s=eje(Fe.graphs[t]);let r=0;const i=e.length;for(let o=2;o<=i;o+=1){const u=Math.min(n,o-1);for(let l=1;l<=u;l+=1)r+=Ks.nCk(o-1,l-1)*a*s**l}return r};var nje=({graph:e,token:t,shiftedCount:n,turns:a})=>{let s=tje({token:t,graph:e,turns:a});if(n){const r=t.length-n;if(n===0||r===0)s*=2;else{let i=0;for(let o=1;o<=Math.min(n,r);o+=1)i+=Ks.nCk(n+r,o);s*=i}}return Math.round(s)},aje=()=>DKe;const sje=(e,t)=>{let n=1;return e.token.length_0[e]?_0[e](t):Fe.matchers[e]&&"scoring"in Fe.matchers[e]?Fe.matchers[e].scoring(t):0;var ije=(e,t)=>{const n={};if("guesses"in e&&e.guesses!=null)return e;const a=sje(e,t),s=rje(e.pattern,e);let r=0;typeof s=="number"?r=s:e.pattern==="dictionary"&&(r=s.calculation,n.baseGuesses=s.baseGuesses,n.uppercaseVariations=s.uppercaseVariations,n.l33tVariations=s.l33tVariations);const i=Math.max(r,a);return{...e,...n,guesses:i,guessesLog10:Ks.log10(i)}};const Cn={password:"",optimal:{},excludeAdditive:!1,separatorRegex:void 0,fillArray(e,t){const n=[];for(let a=0;a1&&(s*=this.optimal.pi[a.i-1][t-1]);let r=Ks.factorial(t)*s;this.excludeAdditive||(r+=SKe**(t-1));let i=!1;Object.keys(this.optimal.g[n]).forEach(o=>{const u=this.optimal.g[n][o];parseInt(o,10)<=t&&u<=r&&(i=!0)}),i||(this.optimal.g[n][t]=r,this.optimal.m[n][t]=a,this.optimal.pi[n][t]=s)},bruteforceUpdate(e){let t=this.makeBruteforceMatch(0,e);this.update(t,1);for(let n=1;n<=e;n+=1){t=this.makeBruteforceMatch(n,e);const a=this.optimal.m[n-1];Object.keys(a).forEach(s=>{a[s].pattern!=="bruteforce"&&this.update(t,parseInt(s,10)+1)})}},unwind(e){const t=[];let n=e-1,a=0,s=1/0;const r=this.optimal.g[n];for(r&&Object.keys(r).forEach(i=>{const o=r[i];o=0;){const i=this.optimal.m[n][a];t.unshift(i),n=i.i-1,a-=1}return t}};var wE={mostGuessableMatchSequence(e,t,n=!1){Cn.password=e,Cn.excludeAdditive=n;const a=e.length;let s=Cn.fillArray(a,"array");t.forEach(u=>{s[u.j].push(u)}),s=s.map(u=>u.sort((l,c)=>l.i-c.i)),Cn.optimal={m:Cn.fillArray(a,"object"),pi:Cn.fillArray(a,"object"),g:Cn.fillArray(a,"object")};for(let u=0;u{l.i>0?Object.keys(Cn.optimal.m[l.i-1]).forEach(c=>{Cn.update(l,parseInt(c,10)+1)}):Cn.update(l,1)}),Cn.bruteforceUpdate(u);const r=Cn.unwind(a),i=r.length,o=this.getGuesses(e,i);return{password:e,guesses:o,guessesLog10:Ks.log10(o),sequence:r}},getGuesses(e,t){const n=e.length;let a=0;return e.length===0?a=1:a=Cn.optimal.g[n-1][t],a}};class oje{match({password:t,omniMatch:n}){const a=[];let s=0;for(;si instanceof Promise)?Promise.all(a):a}normalizeMatch(t,n,a,s){const r={pattern:"repeat",i:a.index,j:n,token:a[0],baseToken:t,baseGuesses:0,repeatCount:a[0].length/t.length};return s instanceof Promise?s.then(i=>({...r,baseGuesses:i})):{...r,baseGuesses:s}}getGreedyMatch(t,n){const a=/(.+)\1+/g;return a.lastIndex=n,a.exec(t)}getLazyMatch(t,n){const a=/(.+?)\1+/g;return a.lastIndex=n,a.exec(t)}setMatchToken(t,n){const a=/^(.+?)\1+$/;let s,r="";if(n&&t[0].length>n[0].length){s=t;const i=a.exec(s[0]);i&&(r=i[1])}else s=n,s&&(r=s[1]);return{match:s,baseToken:r}}getBaseGuesses(t,n){const a=n.match(t);return a instanceof Promise?a.then(r=>wE.mostGuessableMatchSequence(t,r).guesses):wE.mostGuessableMatchSequence(t,a).guesses}}class uje{constructor(){this.MAX_DELTA=5}match({password:t}){const n=[];if(t.length===1)return[];let a=0,s=null;const r=t.length;for(let i=1;i1||Math.abs(a)===1){const i=Math.abs(a);if(i>0&&i<=this.MAX_DELTA){const o=s.slice(t,+n+1||9e9),{sequenceName:u,sequenceSpace:l}=this.getSequence(o);return r.push({pattern:"sequence",i:t,j:n,token:s.slice(t,+n+1||9e9),sequenceName:u,sequenceSpace:l,ascending:a>0})}}return null}getSequence(t){let n="unicode",a=26;return gKe.test(t)?(n="lower",a=26):OKe.test(t)?(n="upper",a=26):vKe.test(t)&&(n="digits",a=10),{sequenceName:n,sequenceSpace:a}}}class lje{constructor(){this.SHIFTED_RX=/[~!@#$%^&*()_+QWERTYUIOP{}|ASDFGHJKL:"ZXCVBNM<>?]/}match({password:t}){const n=[];return Object.keys(Fe.graphs).forEach(a=>{const s=Fe.graphs[a];UE(n,this.helper(t,s,a))}),wr(n)}checkIfShifted(t,n,a){return!t.includes("keypad")&&this.SHIFTED_RX.test(n.charAt(a))?1:0}helper(t,n,a){let s;const r=[];let i=0;const o=t.length;for(;i2&&r.push({pattern:"spatial",i,j:u-1,token:t.slice(i,u),graph:a,turns:c,shiftedCount:s}),i=u;break}}}return r}}const cje=new RegExp(`[${Ug.join("")}]`);class Nl{static getMostUsedSeparatorChar(t){const n=[...t.split("").filter(s=>cje.test(s)).reduce((s,r)=>{const i=s.get(r);return i?s.set(r,i+1):s.set(r,1),s},new Map).entries()].sort(([s,r],[i,o])=>o-r);if(!n.length)return;const a=n[0];if(!(a[1]<2))return a[0]}static getSeparatorRegex(t){return new RegExp(`([^${t} +])(${t})(?!${t})`,"g")}match({password:t}){const n=[];if(t.length===0)return n;const a=Nl.getMostUsedSeparatorChar(t);if(a===void 0)return n;const s=Nl.getSeparatorRegex(a);for(const r of t.matchAll(s)){if(r.index===void 0)continue;const i=r.index+1;n.push({pattern:"separator",token:a,i,j:i})}return n}}class dje{constructor(){this.matchers={date:PKe,dictionary:BKe,regex:GKe,repeat:oje,sequence:uje,spatial:lje,separator:Nl}}match(t){const n=[],a=[];return[...Object.keys(this.matchers),...Object.keys(Fe.matchers)].forEach(r=>{if(!this.matchers[r]&&!Fe.matchers[r])return;const i=this.matchers[r]?this.matchers[r]:Fe.matchers[r].Matching,u=new i().match({password:t,omniMatch:this});u instanceof Promise?(u.then(l=>{UE(n,l)}),a.push(u)):UE(n,u)}),a.length>0?new Promise((r,i)=>{Promise.all(a).then(()=>{r(wr(n))}).catch(o=>{i(o)})}):wr(n)}}const wg=1,Mg=wg*60,Wg=Mg*60,zg=Wg*24,Fg=zg*31,xg=Fg*12,Eje=xg*100,id={second:wg,minute:Mg,hour:Wg,day:zg,month:Fg,year:xg,century:Eje};class pje{translate(t,n){let a=t;n!==void 0&&n!==1&&(a+="s");const{timeEstimation:s}=Fe.translations;return s[a].replace("{base}",`${n}`)}estimateAttackTimes(t){const n={onlineThrottling100PerHour:t/.027777777777777776,onlineNoThrottling10PerSecond:t/10,offlineSlowHashing1e4PerSecond:t/1e4,offlineFastHashing1e10PerSecond:t/1e10},a={onlineThrottling100PerHour:"",onlineNoThrottling10PerSecond:"",offlineSlowHashing1e4PerSecond:"",offlineFastHashing1e10PerSecond:""};return Object.keys(n).forEach(s=>{const r=n[s];a[s]=this.displayTime(r)}),{crackTimesSeconds:n,crackTimesDisplay:a,score:this.guessesToScore(t)}}guessesToScore(t){return t<1005?0:t<1000005?1:t<100000005?2:t<1e10+5?3:4}displayTime(t){let n="centuries",a;const s=Object.keys(id),r=s.findIndex(i=>t-1&&(n=s[r-1],r!==0?a=Math.round(t/id[n]):n="ltSecond"),this.translate(n,a)}}var fje=()=>null,mje=()=>({warning:Fe.translations.warnings.dates,suggestions:[Fe.translations.suggestions.dates]});const Tje=(e,t)=>{let n=null;return t&&!e.l33t&&!e.reversed?e.rank<=10?n=Fe.translations.warnings.topTen:e.rank<=100?n=Fe.translations.warnings.topHundred:n=Fe.translations.warnings.common:e.guessesLog10<=4&&(n=Fe.translations.warnings.similarToCommon),n},_je=(e,t)=>{let n=null;return t&&(n=Fe.translations.warnings.wordByItself),n},hje=(e,t)=>t?Fe.translations.warnings.namesByThemselves:Fe.translations.warnings.commonNames,Sje=(e,t)=>{let n=null;const a=e.dictionaryName,s=a==="lastnames"||a.toLowerCase().includes("firstnames");return a==="passwords"?n=Tje(e,t):a.includes("wikipedia")?n=_je(e,t):s?n=hje(e,t):a==="userInputs"&&(n=Fe.translations.warnings.userInputs),n};var Aje=(e,t)=>{const n=Sje(e,t),a=[],s=e.token;return s.match($g)?a.push(Fe.translations.suggestions.capitalization):s.match(kg)&&s.toLowerCase()!==s&&a.push(Fe.translations.suggestions.allUppercase),e.reversed&&e.token.length>=4&&a.push(Fe.translations.suggestions.reverseWords),e.l33t&&a.push(Fe.translations.suggestions.l33t),{warning:n,suggestions:a}},Oje=e=>e.regexName==="recentYear"?{warning:Fe.translations.warnings.recentYears,suggestions:[Fe.translations.suggestions.recentYears,Fe.translations.suggestions.associatedYears]}:{warning:null,suggestions:[]},gje=e=>{let t=Fe.translations.warnings.extendedRepeat;return e.baseToken.length===1&&(t=Fe.translations.warnings.simpleRepeat),{warning:t,suggestions:[Fe.translations.suggestions.repeated]}},Ije=()=>({warning:Fe.translations.warnings.sequences,suggestions:[Fe.translations.suggestions.sequences]}),Rje=e=>{let t=Fe.translations.warnings.keyPattern;return e.turns===1&&(t=Fe.translations.warnings.straightRow),{warning:t,suggestions:[Fe.translations.suggestions.longerKeyboardPattern]}},Nje=()=>null;const h0={warning:null,suggestions:[]};class bje{constructor(){this.matchers={bruteforce:fje,date:mje,dictionary:Aje,regex:Oje,repeat:gje,sequence:Ije,spatial:Rje,separator:Nje},this.defaultFeedback={warning:null,suggestions:[]},this.setDefaultSuggestions()}setDefaultSuggestions(){this.defaultFeedback.suggestions.push(Fe.translations.suggestions.useWords,Fe.translations.suggestions.noNeed)}getFeedback(t,n){if(n.length===0)return this.defaultFeedback;if(t>2)return h0;const a=Fe.translations.suggestions.anotherWord,s=this.getLongestMatch(n);let r=this.getMatchFeedback(s,n.length===1);return r!=null?r.suggestions.unshift(a):r={warning:null,suggestions:[a]},r}getLongestMatch(t){let n=t[0];return t.slice(1).forEach(s=>{s.token.length>n.token.length&&(n=s)}),n}getMatchFeedback(t,n){return this.matchers[t.pattern]?this.matchers[t.pattern](t,n):Fe.matchers[t.pattern]&&"feedback"in Fe.matchers[t.pattern]?Fe.matchers[t.pattern].feedback(t,n):h0}}const Bg=()=>new Date().getTime(),vje=(e,t,n)=>{const a=new bje,s=new pje,r=wE.mostGuessableMatchSequence(t,e),i=Bg()-n,o=s.estimateAttackTimes(r.guesses);return{calcTime:i,...r,...o,feedback:a.getFeedback(o.score,r.sequence)}},Cje=(e,t)=>new dje().match(e),Dje=(e,t)=>{const n=Bg(),a=Cje(e);if(a instanceof Promise)throw new Error("You are using a Promised matcher, please use `zxcvbnAsync` for it.");return vje(a,e,n)},Pje="modulepreload",Lje=function(e){return"/"+e},S0={},Wt=function(t,n,a){let s=Promise.resolve();if(n&&n.length>0){document.getElementsByTagName("link");const i=document.querySelector("meta[property=csp-nonce]"),o=(i==null?void 0:i.nonce)||(i==null?void 0:i.getAttribute("nonce"));s=Promise.allSettled(n.map(u=>{if(u=Lje(u),u in S0)return;S0[u]=!0;const l=u.endsWith(".css"),c=l?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${u}"]${c}`))return;const p=document.createElement("link");if(p.rel=l?"stylesheet":Pje,l||(p.as="script"),p.crossOrigin="",p.href=u,o&&p.setAttribute("nonce",o),document.head.appendChild(p),l)return new Promise((d,f)=>{p.addEventListener("load",d),p.addEventListener("error",()=>f(new Error(`Unable to preload CSS for ${u}`)))})}))}function r(i){const o=new Event("vite:preloadError",{cancelable:!0});if(o.payload=i,window.dispatchEvent(o),!o.defaultPrevented)throw i}return s.then(i=>{for(const o of i||[])o.status==="rejected"&&r(o.reason);return t().catch(r)})},yje=async e=>{switch(e){case"fr":return await Wt(()=>import("./password.fr-LQIeIoMk.js"),[]);case"de":return await Wt(()=>import("./password.de-SDMVbHi1.js"),[]);case"it":return await Wt(()=>import("./password.it-CReO5S7F.js"),[]);case"es":return await Wt(()=>import("./password.es-es-DLU3Rh6X.js"),[]);case"pl":return await Wt(()=>import("./password.pl-T3z7Kg0O.js"),[]);case"cs":return await Wt(()=>import("./password.cs-CLn3Tyh5.js"),[]);default:return await Wt(()=>import("./password.en-BDtqNyGO.js"),[])}},A0=async e=>{const t=await Wt(()=>import("./password.common-bdamX4EN.js"),[]),n=await yje(e),a={graphs:t.adjacencyGraphs,dictionary:{...t.dictionary,...n.dictionary}};Fe.setOptions(a)},$je=e=>{switch(e){case 2:return"AVERAGE";case 3:return"GOOD";case 4:return"STRONG";default:return"WEAK"}},kje={class:"password-strength"},Uje={for:"password-strength",class:"visually-hidden"},wje=["value"],Mje={key:0,class:"password-strength-details"},Wje={class:"password-strength-value"},zje={key:0,class:"info-box"},Fje={class:"password-feedback"},xje=ee({__name:"PasswordStength",props:{password:{}},setup(e){const t=e,{password:n}=he(t),a=ke(),s=w(()=>a.getters[K.GETTERS.LANGUAGE]),r=w(()=>a.getters[X.GETTERS.IS_SUCCESS]),i=de(0),o=de(""),u=de([]),l=de("0% 100%");Et(async()=>await A0(s.value));function c(p){const d=Dje(p);i.value=d.score,o.value=$je(i.value),u.value=d.feedback.suggestions,l.value=i.value*100/4+"% 100%"}return Me(()=>s.value,async p=>{await A0(p)}),Me(()=>n.value,async p=>{r.value?o.value="":c(p)}),(p,d)=>(h(),I("div",kje,[E("label",Uje,_(p.$t("user.PASSWORD_STRENGTH.LABEL")),1),E("input",{id:"password-strength",class:Te(["password-slider",`strength-${i.value}`]),style:Wa({backgroundSize:l.value}),type:"range",value:i.value,min:"0",max:"4",step:"1",tabindex:-1,autocomplete:"off"},null,14,wje),o.value?(h(),I("div",Mje,[E("span",Wje,_(p.$t("user.PASSWORD_STRENGTH.LABEL"))+": "+_(p.$t(`user.PASSWORD_STRENGTH.${o.value}`)),1),u.value.length>0?(h(),I("div",zje,[E("ul",Fje,[(h(!0),I(_e,null,Le(u.value,f=>(h(),I("li",{key:f},_(p.$t(`user.PASSWORD_STRENGTH.SUGGESTIONS.${f}`)),1))),128))])])):M("",!0)])):M("",!0)]))}}),Bje=ie(xje,[["__scopeId","data-v-338d49ea"]]),Gje={class:"password-input"},Hje=["id","disabled","placeholder","required","type","autocomplete"],Vje={class:"show-password"},Kje={key:0,class:"form-info"},jje=ee({__name:"PasswordInput",props:{checkStrength:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},id:{default:"password"},password:{default:""},placeholder:{},required:{type:Boolean,default:!1},autocomplete:{}},emits:["updatePassword","passwordError"],setup(e,{emit:t}){const n=e,{autocomplete:a,checkStrength:s,disabled:r,id:i,password:o,placeholder:u,required:l}=he(n),c=de(!1),p=de(""),d=t;function f(){c.value=!c.value}function T(R){d("updatePassword",R.target.value)}function O(){d("passwordError")}return Me(()=>o.value,R=>{R===""&&(p.value="",c.value=!1)}),(R,g)=>(h(),I("div",Gje,[$e(E("input",{id:m(i),disabled:m(r),placeholder:m(u),required:m(l),type:c.value?"text":"password","onUpdate:modelValue":g[0]||(g[0]=N=>p.value=N),minlength:"8",onInput:T,onInvalid:O,autocomplete:m(a)},null,40,Hje),[[Ib,p.value]]),E("div",Vje,[E("button",{class:"transparent",onClick:ve(f,["prevent"]),type:"button"},[H(_(R.$t(`user.${c.value?"HIDE":"SHOW"}_PASSWORD`))+" ",1),E("i",{class:Te(["fa",`fa-eye${c.value?"-slash":""}`]),"aria-hidden":"true"},null,2)])]),m(s)?(h(),I("div",Kje,[g[1]||(g[1]=E("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1)),H(" "+_(R.$t("user.PASSWORD_INFO")),1)])):M("",!0),m(s)?(h(),j(Bje,{key:1,password:p.value},null,8,["password"])):M("",!0)]))}}),ME=ie(jje,[["__scopeId","data-v-0caa3bff"]]),qje={id:"user-infos-edition"},Yje={class:"profile-form form-box"},Xje={key:1,class:"info-box success-message"},Qje={class:"form-items",for:"email"},Zje=["disabled"],Jje={class:"form-items",for:"password-field"},eqe={class:"form-items",for:"new-password-field"},tqe={class:"form-buttons"},nqe={class:"confirm",type:"submit"},aqe={class:"data-export"},sqe={class:"info-box"},rqe={key:0,class:"data-export-archive"},iqe={key:1},oqe={key:2},uqe=ee({__name:"UserAccountEdition",props:{user:{}},setup(e){const t=e,{user:n}=he(t),a=ke(),s=Yt({email:"",password:"",new_password:""}),r=w(()=>a.getters[X.GETTERS.USER_LOADING]),i=w(()=>a.getters[K.GETTERS.APP_CONFIG]),o=w(()=>a.getters[X.GETTERS.IS_SUCCESS]),u=de(!1),l=w(()=>a.getters[K.GETTERS.ERROR_MESSAGES]),c=de(!1),p=de(!1),d=w(()=>a.getters[X.GETTERS.EXPORT_REQUEST]),f=w(()=>S()),T=de(!1);St(()=>{t.user&&(a.dispatch(X.ACTIONS.GET_REQUEST_DATA_EXPORT),R(t.user))});function O(){c.value=!0}function R(F){s.email=F.email}function g(F){s.password=F}function N(F){s.new_password=F}function S(){return d.value?jn(d.value.created_at,n.value.timezone,n.value.date_format,!0,null,!0):null}function A(){return f.value?jD(new Date(f.value),XD(new Date,1)):!0}function b(){const F={email:s.email,password:s.password};s.new_password&&(F.new_password=s.new_password),u.value=s.email!==n.value.email,a.dispatch(X.ACTIONS.UPDATE_USER_ACCOUNT,F)}function y(F){p.value=F}function P(F){a.dispatch(X.ACTIONS.DELETE_ACCOUNT,{username:F})}function C(){a.dispatch(X.ACTIONS.REQUEST_DATA_EXPORT)}async function D(F){T.value=!0,await Be.get(`/auth/account/export/${F}`,{responseType:"blob"}).then($=>{const z=window.URL.createObjectURL(new Blob([$.data],{type:"application/zip"})),Y=document.createElement("a");Y.href=z,Y.setAttribute("download",F),document.body.appendChild(Y),Y.click()}).finally(()=>T.value=!1)}return pt(()=>{a.commit(X.MUTATIONS.UPDATE_IS_SUCCESS,!1),a.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES)}),Me(()=>o.value,async F=>{F&&(g(""),N(""),R(n.value),c.value=!1)}),Me(()=>n.value.email,async()=>{R(n.value)}),(F,$)=>{const z=re("Modal"),Y=re("ErrorMessage");return h(),I("div",qje,[p.value?(h(),j(z,{key:0,title:F.$t("common.CONFIRMATION"),message:F.$t("user.CONFIRM_ACCOUNT_DELETION"),onConfirmAction:$[0]||($[0]=se=>P(m(n).username)),onCancelAction:$[1]||($[1]=se=>y(!1)),onKeydown:$[2]||($[2]=Je(se=>y(!1),["esc"]))},null,8,["title","message"])):M("",!0),E("div",Yje,[l.value?(h(),j(Y,{key:0,message:l.value},null,8,["message"])):M("",!0),o.value?(h(),I("div",Xje,_(F.$t(`user.PROFILE.SUCCESSFUL_${u.value&&i.value.is_email_sending_enabled?"EMAIL_":""}UPDATE`)),1)):M("",!0),E("form",{class:Te({errors:c.value}),onSubmit:ve(b,["prevent"])},[E("label",Qje,[H(_(F.$t("user.EMAIL"))+"* ",1),$e(E("input",{id:"email","onUpdate:modelValue":$[3]||($[3]=se=>s.email=se),disabled:r.value,required:!0,onInvalid:O,autocomplete:"email"},null,40,Zje),[[st,s.email]])]),E("label",Jje,[H(_(F.$t("user.CURRENT_PASSWORD"))+"* ",1),W(ME,{id:"password-field",disabled:r.value,password:s.password,required:!0,onUpdatePassword:g,onPasswordError:O,autocomplete:"current-password"},null,8,["disabled","password"])]),E("label",eqe,[H(_(F.$t("user.NEW_PASSWORD"))+" ",1),W(ME,{id:"new-password-field",disabled:r.value,checkStrength:!0,password:s.new_password,isSuccess:!1,onUpdatePassword:N,onPasswordError:O,autocomplete:"new-password"},null,8,["disabled","password"])]),E("div",tqe,[E("button",nqe,_(F.$t("buttons.SUBMIT")),1),E("button",{class:"cancel",onClick:$[4]||($[4]=ve(se=>F.$router.push("/profile"),["prevent"]))},_(F.$t("buttons.CANCEL")),1),E("button",{class:"danger",onClick:$[5]||($[5]=ve(se=>y(!0),["prevent"]))},_(F.$t("buttons.DELETE_MY_ACCOUNT")),1),A()?(h(),I("button",{key:0,class:"confirm",onClick:ve(C,["prevent"])},_(F.$t("buttons.REQUEST_DATA_EXPORT")),1)):M("",!0)])],34),E("div",aqe,[E("span",sqe,[$[7]||($[7]=E("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1)),H(" "+_(F.$t("user.EXPORT_REQUEST.ONLY_ONE_EXPORT_PER_DAY")),1)]),d.value?(h(),I("div",rqe,[H(_(F.$t("user.EXPORT_REQUEST.DATA_EXPORT"))+" ("+_(f.value)+"): ",1),d.value.status==="successful"?(h(),I("span",{key:0,class:"archive-link",onClick:$[6]||($[6]=ve(se=>D(d.value.file_name),["prevent"]))},[$[8]||($[8]=E("i",{class:"fa fa-download","aria-hidden":"true"},null,-1)),H(" "+_(F.$t("user.EXPORT_REQUEST.DOWNLOAD_ARCHIVE"))+" ("+_(m(Uu)(d.value.file_size))+") ",1)])):(h(),I("span",iqe,_(F.$t(`user.EXPORT_REQUEST.STATUS.${d.value.status}`)),1)),T.value?(h(),I("span",oqe,[H(_(F.$t("user.EXPORT_REQUEST.GENERATING_LINK"))+" ",1),$[9]||($[9]=E("i",{class:"fa fa-spinner fa-pulse","aria-hidden":"true"},null,-1))])):M("",!0)])):M("",!0)])])])}}}),lqe=ie(uqe,[["__scopeId","data-v-d6bbef04"]]),cqe={id:"user-infos-edition"},dqe={class:"profile-form form-box"},Eqe={class:"form-items",for:"registrationDate"},pqe=["value"],fqe={class:"form-items",for:"first_name"},mqe=["disabled"],Tqe={class:"form-items",for:"last_name"},_qe={class:"form-items",for:"birth_date"},hqe=["disabled"],Sqe={class:"form-items",for:"location"},Aqe=["disabled"],Oqe={class:"form-items"},gqe={class:"form-buttons"},Iqe={class:"confirm",type:"submit"},Rqe=ee({__name:"UserInfosEdition",props:{user:{}},setup(e){const t=e,n=ke(),a=Yt({first_name:"",last_name:"",birth_date:"",location:"",bio:""}),s=w(()=>t.user.created_at?jn(t.user.created_at,t.user.timezone,t.user.date_format):""),r=w(()=>n.getters[X.GETTERS.USER_LOADING]),i=w(()=>n.getters[K.GETTERS.ERROR_MESSAGES]);St(()=>{t.user&&o(t.user)});function o(c){a.first_name=c.first_name?c.first_name:"",a.last_name=c.last_name?c.last_name:"",a.birth_date=c.birth_date?mn(new Date(c.birth_date),"yyyy-MM-dd"):"",a.location=c.location?c.location:"",a.bio=c.bio?c.bio:""}function u(c){a.bio=c}function l(){n.dispatch(X.ACTIONS.UPDATE_USER_PROFILE,a)}return pt(()=>{n.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES)}),(c,p)=>{const d=re("ErrorMessage"),f=re("CustomTextArea");return h(),I("div",cqe,[E("div",dqe,[i.value?(h(),j(d,{key:0,message:i.value},null,8,["message"])):M("",!0),E("form",{onSubmit:ve(l,["prevent"])},[E("label",Eqe,[H(_(c.$t("user.PROFILE.REGISTRATION_DATE"))+" ",1),E("input",{id:"registrationDate",value:s.value,disabled:""},null,8,pqe)]),E("label",fqe,[H(_(c.$t("user.PROFILE.FIRST_NAME"))+" ",1),$e(E("input",{id:"first_name","onUpdate:modelValue":p[0]||(p[0]=T=>a.first_name=T),disabled:r.value},null,8,mqe),[[st,a.first_name]])]),E("label",Tqe,[H(_(c.$t("user.PROFILE.LAST_NAME"))+" ",1),$e(E("input",{id:"last_name","onUpdate:modelValue":p[1]||(p[1]=T=>a.last_name=T)},null,512),[[st,a.last_name]])]),E("label",_qe,[H(_(c.$t("user.PROFILE.BIRTH_DATE"))+" ",1),$e(E("input",{id:"birth_date",type:"date",class:"birth-date","onUpdate:modelValue":p[2]||(p[2]=T=>a.birth_date=T),disabled:r.value},null,8,hqe),[[st,a.birth_date]])]),E("label",Sqe,[H(_(c.$t("user.PROFILE.LOCATION"))+" ",1),$e(E("input",{id:"location","onUpdate:modelValue":p[3]||(p[3]=T=>a.location=T),disabled:r.value},null,8,Aqe),[[st,a.location]])]),E("label",Oqe,[H(_(c.$t("user.PROFILE.BIO"))+" ",1),W(f,{name:"bio",charLimit:200,input:a.bio,disabled:r.value,onUpdateValue:u},null,8,["input","disabled"])]),E("div",gqe,[E("button",Iqe,_(c.$t("buttons.SUBMIT")),1),E("button",{class:"cancel",onClick:p[4]||(p[4]=ve(T=>c.$router.push("/profile"),["prevent"]))},_(c.$t("buttons.CANCEL")),1)])],32)])])}}}),Nqe=ie(Rqe,[["__scopeId","data-v-d124143f"]]),bqe={id:"user-picture-edition"},vqe={class:"user-picture-form"},Cqe={class:"picture-help"},Dqe={class:"info-box"},Pqe={class:"picture-buttons"},Lqe=["disabled"],yqe=ee({__name:"UserPictureEdition",props:{user:{}},setup(e){const t=e,n=ke(),{user:a}=he(t),s=w(()=>n.getters[K.GETTERS.ERROR_MESSAGES]),r=w(()=>n.getters[K.GETTERS.APP_CONFIG]),i=r.value.max_single_file_size?Uu(r.value.max_single_file_size):"",o=de(null);function u(){n.dispatch(X.ACTIONS.DELETE_PICTURE)}function l(p){p.target.files!==null&&(o.value=p.target.files[0])}function c(){o.value&&n.dispatch(X.ACTIONS.UPDATE_USER_PICTURE,{picture:o.value})}return pt(()=>{n.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES)}),(p,d)=>{const f=re("ErrorMessage");return h(),I("div",bqe,[E("div",vqe,[s.value?(h(),j(f,{key:0,message:s.value},null,8,["message"])):M("",!0),W(lo,{user:m(a)},null,8,["user"]),E("form",{onSubmit:ve(c,["prevent"])},[E("input",{type:"file",name:"picture",accept:".png,.jpg,.gif",onInput:l},null,32),E("div",Cqe,[E("span",Dqe,[d[1]||(d[1]=E("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1)),H(" "+_(p.$t("workouts.MAX_SIZE"))+": "+_(m(i)),1)])]),E("div",Pqe,[E("button",{type:"submit",disabled:!o.value},_(p.$t("user.PROFILE.PICTURE_UPDATE")),9,Lqe),m(a).picture?(h(),I("button",{key:0,class:"danger",onClick:u},_(p.$t("user.PROFILE.PICTURE_REMOVE")),1)):M("",!0),E("button",{class:"cancel",onClick:d[0]||(d[0]=T=>p.$router.push("/profile"))},_(p.$t("user.PROFILE.BACK_TO_PROFILE")),1)])],32)])])}}}),$qe=ie(yqe,[["__scopeId","data-v-92649ccc"]]),O0=["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"],kqe={id:"tz-dropdown"},Uqe=["value","disabled","aria-expanded"],wqe=["aria-label"],Mqe=["id","onClick","onMouseover","autofocus"],Wqe=ee({__name:"TimezoneDropdown",props:{input:{},disabled:{type:Boolean,default:!1}},emits:["updateTimezone"],setup(e,{emit:t}){const n=e,a=t,{input:s,disabled:r}=he(n),i=de(s.value),o=de(!1),u=de(0),l=w(()=>s.value?O0.filter(A=>c(A)):O0);function c(A){return A.toLowerCase().match(i.value.toLowerCase())}function p(A){u.value=A}function d(A){l.value.length>A&&(i.value=l.value[A],a("updateTimezone",i.value),o.value=!1)}function f(A){A.preventDefault(),l.value.length>0&&d(u.value)}function T(A){A.preventDefault(),o.value=!0,i.value=A.target.value.trim()}function O(){d(u.value)}function R(A){const b=document.getElementById(`tz-dropdown-item-${A}`);b&&(b.focus(),b.scrollIntoView({behavior:"smooth",block:"nearest"}))}function g(){o.value=!0,u.value=u.value===null?0:u.value+=1,u.value>=l.value.length&&(u.value=0),R(u.value)}function N(){o.value=!0,u.value=u.value===null?l.value.length-1:u.value-=1,u.value<=-1&&(u.value=l.value.length-1),R(u.value)}function S(){o.value&&(o.value=!1,i.value=s.value)}return Me(()=>n.input,A=>{i.value=A}),(A,b)=>(h(),I("div",kqe,[E("input",{class:"tz-dropdown-input",id:"timezone",name:"timezone",value:i.value,disabled:m(r),required:"",role:"combobox","aria-autocomplete":"list","aria-controls":"tz-dropdown-list","aria-expanded":o.value,onKeydown:[b[0]||(b[0]=Je(y=>S(),["esc"])),Je(f,["enter"]),b[2]||(b[2]=Je(y=>g(),["down"])),b[3]||(b[3]=Je(y=>N(),["up"]))],onInput:T,onBlur:b[1]||(b[1]=y=>O())},null,40,Uqe),o.value?(h(),I("ul",{key:0,class:"tz-dropdown-list",id:"tz-dropdown-list",role:"listbox",tabindex:"-1","aria-label":A.$t("user.PROFILE.TIMEZONE",0)},[(h(!0),I(_e,null,Le(l.value,(y,P)=>(h(),I("li",{key:y,id:`tz-dropdown-item-${P}`,class:Te(["tz-dropdown-item",{focus:P===u.value}]),onClick:C=>d(P),onMouseover:C=>p(P),autofocus:P===u.value,role:"option"},_(y),43,Mqe))),128))],8,wqe)):M("",!0)]))}}),zqe=ie(Wqe,[["__scopeId","data-v-3d9b6b6f"]]),Fqe={id:"user-preferences-edition"},xqe={class:"profile-form form-box"},Bqe={class:"preferences-section"},Gqe={class:"form-items"},Hqe=["disabled"],Vqe=["value"],Kqe={class:"form-items"},jqe=["disabled"],qqe=["value"],Yqe={class:"form-items"},Xqe={class:"form-items"},Qqe=["disabled"],Zqe=["value"],Jqe={class:"form-items form-checkboxes"},eYe={class:"checkboxes-label"},tYe={class:"checkboxes"},nYe=["id","name","checked","disabled","onInput"],aYe={class:"checkbox-label"},sYe={class:"preferences-section"},rYe={class:"form-items form-checkboxes"},iYe={class:"checkboxes-label"},oYe={class:"checkboxes"},uYe=["id","name","checked","disabled","onInput"],lYe={class:"checkbox-label"},cYe={class:"form-items form-checkboxes"},dYe={class:"checkboxes-label"},EYe={class:"checkboxes"},pYe=["id","name","checked","disabled","onInput"],fYe={class:"checkbox-label"},mYe={class:"form-items form-checkboxes"},TYe={class:"checkboxes-label"},_Ye={class:"checkboxes"},hYe=["id","name","checked","disabled","onInput"],SYe={class:"checkbox-label"},AYe={class:"form-items form-checkboxes"},OYe={class:"checkboxes-label"},gYe={class:"checkboxes"},IYe=["id","name","checked","disabled","onInput"],RYe={class:"checkbox-label"},NYe={class:"info-box raw-speed-help"},bYe={class:"form-buttons"},vYe={class:"confirm",type:"submit"},CYe=ee({__name:"UserPreferencesEdition",props:{user:{}},setup(e){const t=e,n=ke(),a=Yt({display_ascent:!0,imperial_units:!1,language:"en",timezone:"Europe/Paris",date_format:"dd/MM/yyyy",weekm:!1,start_elevation_at_zero:!1,use_raw_gpx_speed:!1,use_dark_mode:!1}),s=[{label:"SUNDAY",value:!1},{label:"MONDAY",value:!0}],r=[{label:"METRIC",value:!1},{label:"IMPERIAL",value:!0}],i=[{label:"DISPLAYED",value:!0},{label:"HIDDEN",value:!1}],o=[{label:"ZERO",value:!0},{label:"MIN_ALT",value:!1}],u=[{label:"FILTERED_SPEED",value:!1},{label:"RAW_SPEED",value:!0}],l=[{label:"DARK",value:!0},{label:"DEFAULT",value:null},{label:"LIGHT",value:!1}],c=w(()=>n.getters[X.GETTERS.USER_LOADING]),p=w(()=>n.getters[K.GETTERS.ERROR_MESSAGES]),d=w(()=>hHe(new Date().toUTCString(),t.user.timezone,a.language));St(()=>{t.user&&f(t.user)});function f(b){a.display_ascent=b.display_ascent,a.start_elevation_at_zero=b.start_elevation_at_zero?b.start_elevation_at_zero:!1,a.use_raw_gpx_speed=b.use_raw_gpx_speed?b.use_raw_gpx_speed:!1,a.imperial_units=b.imperial_units?b.imperial_units:!1,a.language=b.language&&b.language in _r?b.language:"en",a.timezone=b.timezone?b.timezone:"Europe/Paris",a.date_format=b.date_format?b.date_format:"dd/MM/yyyy",a.weekm=b.weekm?b.weekm:!1,a.use_dark_mode=b.use_dark_mode}function T(){n.dispatch(X.ACTIONS.UPDATE_USER_PREFERENCES,a)}function O(b){a.timezone=b}function R(b){a.start_elevation_at_zero=b}function g(b){a.use_raw_gpx_speed=b}function N(b){a.display_ascent=b}function S(b){a.imperial_units=b}function A(b){a.weekm=b}return pt(()=>{n.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES)}),(b,y)=>{const P=re("ErrorMessage");return h(),I("div",Fqe,[E("div",xqe,[p.value?(h(),j(P,{key:0,message:p.value},null,8,["message"])):M("",!0),E("form",{onSubmit:ve(T,["prevent"])},[E("div",Bqe,_(b.$t("user.PROFILE.INTERFACE")),1),E("label",Gqe,[H(_(b.$t("user.PROFILE.LANGUAGE"))+" ",1),$e(E("select",{id:"language","onUpdate:modelValue":y[0]||(y[0]=C=>a.language=C),disabled:c.value},[(h(!0),I(_e,null,Le(m(Gd),C=>(h(),I("option",{value:C.value,key:C.value},_(C.label),9,Vqe))),128))],8,Hqe),[[Ta,a.language]])]),E("label",Kqe,[H(_(b.$t("user.PROFILE.THEME_MODE.LABEL"))+" ",1),$e(E("select",{id:"use_dark_mode","onUpdate:modelValue":y[1]||(y[1]=C=>a.use_dark_mode=C),disabled:c.value},[(h(),I(_e,null,Le(l,C=>E("option",{value:C.value,key:C.label},_(b.$t(`user.PROFILE.THEME_MODE.VALUES.${C.label}`)),9,qqe)),64))],8,jqe),[[Ta,a.use_dark_mode]])]),E("label",Yqe,[H(_(b.$t("user.PROFILE.TIMEZONE"))+" ",1),W(zqe,{input:a.timezone,disabled:c.value,onUpdateTimezone:O},null,8,["input","disabled"])]),E("label",Xqe,[H(_(b.$t("user.PROFILE.DATE_FORMAT"))+" ",1),$e(E("select",{id:"date_format","onUpdate:modelValue":y[2]||(y[2]=C=>a.date_format=C),disabled:c.value},[(h(!0),I(_e,null,Le(d.value,C=>(h(),I("option",{value:C.value,key:C.value},_(C.label),9,Zqe))),128))],8,Qqe),[[Ta,a.date_format]])]),E("div",Jqe,[E("span",eYe,_(b.$t("user.PROFILE.FIRST_DAY_OF_WEEK")),1),E("div",tYe,[(h(),I(_e,null,Le(s,C=>E("label",{key:C.label},[E("input",{type:"radio",id:C.label,name:C.label,checked:C.value===a.weekm,disabled:c.value,onInput:D=>A(C.value)},null,40,nYe),E("span",aYe,_(b.$t(`user.PROFILE.${C.label}`)),1)])),64))])]),E("div",sYe,_(b.$t("workouts.WORKOUT",0)),1),E("div",rYe,[E("span",iYe,_(b.$t("user.PROFILE.UNITS.LABEL")),1),E("div",oYe,[(h(),I(_e,null,Le(r,C=>E("label",{key:C.label},[E("input",{type:"radio",id:C.label,name:C.label,checked:C.value===a.imperial_units,disabled:c.value,onInput:D=>S(C.value)},null,40,uYe),E("span",lYe,_(b.$t(`user.PROFILE.UNITS.${C.label}`)),1)])),64))])]),E("div",cYe,[E("span",dYe,_(b.$t("user.PROFILE.ASCENT_DATA")),1),E("div",EYe,[(h(),I(_e,null,Le(i,C=>E("label",{key:C.label},[E("input",{type:"radio",id:C.label,name:C.label,checked:C.value===a.display_ascent,disabled:c.value,onInput:D=>N(C.value)},null,40,pYe),E("span",fYe,_(b.$t(`common.${C.label}`)),1)])),64))])]),E("div",mYe,[E("span",TYe,_(b.$t("user.PROFILE.ELEVATION_CHART_START.LABEL")),1),E("div",_Ye,[(h(),I(_e,null,Le(o,C=>E("label",{key:C.label},[E("input",{type:"radio",id:C.label,name:C.label,checked:C.value===a.start_elevation_at_zero,disabled:c.value,onInput:D=>R(C.value)},null,40,hYe),E("span",SYe,_(b.$t(`user.PROFILE.ELEVATION_CHART_START.${C.label}`)),1)])),64))])]),E("div",AYe,[E("span",OYe,_(b.$t("user.PROFILE.USE_RAW_GPX_SPEED.LABEL")),1),E("div",gYe,[(h(),I(_e,null,Le(u,C=>E("label",{key:C.label},[E("input",{type:"radio",id:C.label,name:C.label,checked:C.value===a.use_raw_gpx_speed,disabled:c.value,onInput:D=>g(C.value)},null,40,IYe),E("span",RYe,_(b.$t(`user.PROFILE.USE_RAW_GPX_SPEED.${C.label}`)),1)])),64))]),E("div",NYe,[E("span",null,[y[4]||(y[4]=E("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1)),H(" "+_(b.$t("user.PROFILE.USE_RAW_GPX_SPEED.HELP")),1)])])]),E("div",bYe,[E("button",vYe,_(b.$t("buttons.SUBMIT")),1),E("button",{class:"cancel",onClick:y[3]||(y[3]=ve(C=>b.$router.push("/profile/preferences"),["prevent"]))},_(b.$t("buttons.CANCEL")),1)])],32)])])}}}),DYe=ie(CYe,[["__scopeId","data-v-3130c876"]]),PYe={class:"privacy-policy-text"},LYe={class:"last-update"},yYe=["innerHTML"],$Ye=["innerHTML"],kYe="Sun, 26 Feb 2023 17:00:00 GMT",UYe=ee({__name:"PrivacyPolicy",setup(e){const t=ke(),n=w(()=>t.getters[K.GETTERS.APP_CONFIG]),a=w(()=>t.getters[K.GETTERS.LANGUAGE]),s=w(()=>t.getters[X.GETTERS.AUTH_USER_PROFILE]),r=w(()=>c()),i=w(()=>l()),o=w(()=>p()),u=["DATA_COLLECTED","INFORMATION_USAGE","INFORMATION_PROTECTION","INFORMATION_DISCLOSURE","SITE_USAGE_BY_CHILDREN","YOUR_CONSENT","ACCOUNT_DELETION","CHANGES_TO_OUR_PRIVACY_POLICY"];function l(){return s.value.timezone?s.value.timezone:Intl.DateTimeFormat().resolvedOptions().timeZone?Intl.DateTimeFormat().resolvedOptions().timeZone:"Europe/Paris"}function c(){return Ng[a.value]}function p(){return jn(n.value.privacy_policy&&n.value.privacy_policy_date?`${n.value.privacy_policy_date}`:kYe,i.value,r.value,!1)}return(d,f)=>(h(),I("div",PYe,[E("h1",null,_(Ve(d.$t("privacy_policy.TITLE"))),1),E("p",LYe,[H(_(d.$t("privacy_policy.LAST_UPDATE"))+": ",1),E("time",null,_(o.value),1)]),n.value.privacy_policy?(h(),I("div",{key:0,innerHTML:m(Xi)(n.value.privacy_policy)},null,8,yYe)):(h(),I(_e,{key:1},Le(u,T=>(h(),I(_e,{key:T},[E("h2",null,_(d.$t(`privacy_policy.CONTENT.${T}.TITLE`)),1),E("p",{innerHTML:m(Xi)(d.$t(`privacy_policy.CONTENT.${T}.CONTENT`))},null,8,$Ye)],64))),64))]))}}),Gg=ie(UYe,[["__scopeId","data-v-178c1981"]]),wYe={id:"user-privacy-policy"},MYe={key:1},WYe={class:"policy-content"},zYe={for:"accepted_policy",class:"accepted_policy"},FYe={class:"form-buttons"},xYe={class:"confirm",type:"submit"},BYe=ee({__name:"UserPrivacyPolicyValidation",props:{user:{}},setup(e){const t=e,{user:n}=he(t),a=ke(),s=w(()=>a.getters[K.GETTERS.ERROR_MESSAGES]),r=de(!1),i=de(!1);function o(){a.dispatch(X.ACTIONS.ACCEPT_PRIVACY_POLICY,r.value)}function u(){i.value=!0}return pt(()=>{a.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES)}),(l,c)=>{const p=re("ErrorMessage"),d=re("router-link"),f=re("i18n-t");return h(),I("div",wYe,[s.value?(h(),j(p,{key:0,message:s.value},null,8,["message"])):M("",!0),m(n).accepted_privacy_policy?(h(),I("div",MYe,[E("p",null,[W(f,{keypath:"user.YOU_HAVE_ACCEPTED_PRIVACY_POLICY"},{default:ue(()=>[W(d,{to:"/privacy-policy"},{default:ue(()=>[H(_(l.$t("privacy_policy.TITLE")),1)]),_:1})]),_:1})]),E("button",{class:"cancel",onClick:c[0]||(c[0]=T=>l.$router.push("/profile"))},_(l.$t("user.PROFILE.BACK_TO_PROFILE")),1)])):(h(),I("form",{key:2,class:Te({errors:i.value}),onSubmit:c[3]||(c[3]=ve(T=>o(),["prevent"]))},[E("div",WYe,[W(Gg)]),E("label",zYe,[$e(E("input",{type:"checkbox",id:"accepted_policy",required:"","onUpdate:modelValue":c[1]||(c[1]=T=>r.value=T),onInvalid:u},null,544),[[Wl,r.value]]),E("span",null,[W(f,{keypath:"user.READ_AND_ACCEPT_PRIVACY_POLICY"},{default:ue(()=>[H(_(l.$t("privacy_policy.TITLE")),1)]),_:1})])]),W(d,{to:"/profile/edit/account"},{default:ue(()=>[H(_(l.$t("user.I_WANT_TO_DELETE_MY_ACCOUNT")),1)]),_:1}),E("div",FYe,[E("button",xYe,_(l.$t("buttons.SUBMIT")),1),E("button",{class:"cancel",onClick:c[2]||(c[2]=T=>l.$router.push("/profile"))},_(l.$t("user.PROFILE.BACK_TO_PROFILE")),1)])],34))])}}}),GYe=ie(BYe,[["__scopeId","data-v-a7ac61ac"]]),HYe=["equipments:read","equipments:write","profile:read","profile:write","users:read","users:write","workouts:read","workouts:write"],VYe=["application:write"],KYe={id:"new-oauth2-app"},jYe={id:"new-oauth2-title"},qYe={id:"apps-form"},YYe={class:"form-items"},XYe={class:"form-item"},QYe={for:"app-name"},ZYe={class:"form-item"},JYe={for:"app-description"},eXe={class:"form-item"},tXe={for:"app-url"},nXe={class:"form-item"},aXe={for:"app-redirect-uri"},sXe={class:"form-item-scope"},rXe={class:"form-item-scope-label"},iXe={class:"scope-label"},oXe=["name","checked","onChange"],uXe=["innerHTML"],lXe={class:"form-buttons"},cXe=["disabled"],dXe=ee({__name:"AddUserApp",props:{authUser:{}},setup(e){const t=e,n=ke(),a=Yt({client_name:"",client_uri:"",client_description:"",description:"",redirect_uri:""}),s=Yt([]),r=w(()=>l(t.authUser,VYe,HYe));function i(){const c={client_name:a.client_name,client_description:a.client_description,client_uri:a.client_uri,redirect_uris:[a.redirect_uri],scope:s.sort().join(" ")};n.dispatch(nt.ACTIONS.CREATE_CLIENT,c)}function o(c){a.client_description=c}function u(c){const p=s.indexOf(c);p>-1?s.splice(p,1):s.push(c)}function l(c,p,d){const f=[...d];return c.admin&&f.push(...p),f.sort()}return(c,p)=>{const d=re("CustomTextArea");return h(),I("div",KYe,[E("h1",jYe,_(c.$t("oauth2.ADD_A_NEW_APP")),1),E("div",qYe,[E("form",{onSubmit:ve(i,["prevent"])},[E("div",YYe,[E("div",XYe,[E("label",QYe,_(c.$t("oauth2.APP.NAME"))+"*",1),$e(E("input",{id:"app-name",type:"text",required:"","onUpdate:modelValue":p[0]||(p[0]=f=>a.client_name=f)},null,512),[[st,a.client_name]])]),E("div",ZYe,[E("label",JYe,_(c.$t("oauth2.APP.DESCRIPTION")),1),W(d,{name:"app-description",charLimit:200,input:a.description,onUpdateValue:o},null,8,["input"])]),E("div",eXe,[E("label",tXe,_(c.$t("oauth2.APP.URL"))+"*",1),$e(E("input",{id:"app-url",type:"text",required:"","onUpdate:modelValue":p[1]||(p[1]=f=>a.client_uri=f)},null,512),[[st,a.client_uri]])]),E("div",nXe,[E("label",aXe,_(c.$t("oauth2.APP.REDIRECT_URL"))+"* ",1),$e(E("input",{id:"app-redirect-uri",type:"text",required:"","onUpdate:modelValue":p[2]||(p[2]=f=>a.redirect_uri=f)},null,512),[[st,a.redirect_uri]])]),E("div",sXe,[E("div",rXe,_(c.$t("oauth2.APP.SCOPE.LABEL"))+"* ",1),(h(!0),I(_e,null,Le(r.value,f=>(h(),I("div",{class:"form-item-scope-checkboxes",key:f},[E("label",iXe,[E("input",{type:"checkbox",name:f,checked:s.includes(f),onChange:T=>u(f)},null,40,oXe),E("code",null,_(f),1)]),E("p",{class:"scope-description",innerHTML:c.$t(`oauth2.APP.SCOPE.${f}_DESCRIPTION`)},null,8,uXe)]))),128))])]),E("div",lXe,[E("button",{class:"confirm",type:"submit",disabled:s.length===0},_(c.$t("buttons.SUBMIT")),9,cXe),E("button",{class:"cancel",onClick:p[3]||(p[3]=ve(()=>c.$router.push("/profile/apps"),["prevent"]))},_(c.$t("buttons.CANCEL")),1)])],32)])])}}}),EXe=ie(dXe,[["__scopeId","data-v-e2284e06"]]),pXe={id:"authorize-oauth2-app"},fXe={key:0},mXe={id:"authorize-oauth2-title"},TXe={class:"oauth2-access description-list"},_Xe={class:"client-scope"},hXe=["innerHTML"],SXe={class:"authorize-oauth2-buttons"},AXe={key:1},OXe={class:"no-app"},gXe=ee({__name:"AuthorizeUserApp",setup(e){const t=yt(),n=ke(),a=w(()=>n.getters[nt.GETTERS.CLIENT]),s=w(()=>n.getters[K.GETTERS.ERROR_MESSAGES]);Et(()=>r());function r(){t.query.client_id&&typeof t.query.client_id=="string"&&n.dispatch(nt.ACTIONS.GET_CLIENT_BY_CLIENT_ID,t.query.client_id)}function i(){n.dispatch(nt.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(o,u)=>{const l=re("router-link"),c=re("i18n-t"),p=re("ErrorMessage");return h(),I("div",pXe,[a.value.client_id?(h(),I("div",fXe,[E("h1",mXe,[W(c,{keypath:"oauth2.AUTHORIZE_APP"},{default:ue(()=>[W(l,{to:{name:"UserApp",params:{id:a.value.id}}},{default:ue(()=>[H(_(a.value.name),1)]),_:1},8,["to"])]),_:1})]),s.value?(h(),j(p,{key:0,message:s.value},null,8,["message"])):M("",!0),E("div",TXe,[E("p",null,_(o.$t("oauth2.APP_REQUESTING_ACCESS")),1),E("dl",null,[(h(!0),I(_e,null,Le(a.value.scope.split(" "),d=>(h(),I(_e,{key:d},[E("dt",_Xe,[E("code",null,_(d),1)]),E("dd",{innerHTML:o.$t(`oauth2.APP.SCOPE.${d}_DESCRIPTION`)},null,8,hXe)],64))),128))]),E("div",SXe,[E("button",{class:"danger",onClick:i},_(o.$t("buttons.AUTHORIZE")),1),E("button",{class:"cancel",onClick:u[0]||(u[0]=d=>o.$router.push("/profile/apps"))},_(o.$t("buttons.CANCEL")),1)])])])):(h(),I("div",AXe,[E("p",OXe,_(o.$t("oauth2.NO_APP")),1),E("button",{onClick:u[1]||(u[1]=d=>o.$router.push("/profile/apps"))},_(o.$t("buttons.BACK")),1)]))])}}}),IXe=ie(gXe,[["__scopeId","data-v-77d2c8f0"]]),RXe={id:"oauth2-apps"},NXe=ee({__name:"index",props:{user:{}},setup(e){const t=e,n=ke(),{user:a}=he(t);return pt(()=>{n.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),n.commit(nt.MUTATIONS.SET_CLIENTS,[])}),(s,r)=>{const i=re("router-view");return h(),I("div",RXe,[W(i,{authUser:m(a)},null,8,["authUser"])])}}}),bXe={id:"oauth2-app",class:"description-list"},vXe={key:1},CXe={key:0,class:"info-box success-message"},DXe=["title"],PXe={key:0},LXe={key:1,class:"app-secret"},yXe=["title"],$Xe={class:"client-scopes"},kXe={class:"app-buttons"},UXe={key:2},wXe={class:"no-app"},MXe=ee({__name:"UserApp",props:{authUser:{},afterCreation:{type:Boolean,default:!1}},setup(e){const t=e,n=yt(),a=ke(),{afterCreation:s,authUser:r}=he(t),i=w(()=>a.getters[nt.GETTERS.CLIENT]),o=w(()=>a.getters[nt.GETTERS.REVOCATION_SUCCESSFUL]),u=de(!1),l=de(""),c=de(!1),p=de(!1),d=de(!1);Et(()=>{f(),navigator.clipboard&&(d.value=!0)});function f(){!s.value&&n.params.id&&typeof n.params.id=="string"&&a.dispatch(nt.ACTIONS.GET_CLIENT_BY_ID,+n.params.id)}function T(S){l.value=S?"oauth2.APP_DELETION_CONFIRMATION":"oauth2.TOKENS_REVOCATION_CONFIRMATION",O(!0)}function O(S){u.value=S,S||(l.value="")}function R(S){l.value==="oauth2.APP_DELETION_CONFIRMATION"?a.dispatch(nt.ACTIONS.DELETE_CLIENT,S):a.dispatch(nt.ACTIONS.REVOKE_ALL_TOKENS,S)}function g(){navigator.clipboard.writeText(i.value.client_id),c.value=!0,p.value=!1,setTimeout(()=>{c.value=!1},3e3)}function N(){i.value.client_secret&&(navigator.clipboard.writeText(i.value.client_secret),p.value=!0,c.value=!1,setTimeout(()=>{p.value=!1},3e3))}return pt(()=>{a.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),a.commit(nt.MUTATIONS.EMPTY_CLIENT),a.commit(nt.MUTATIONS.SET_REVOCATION_SUCCESSFUL,!1)}),Me(()=>o.value,S=>{S&&O(!1)}),(S,A)=>{const b=re("Modal");return h(),I("div",bXe,[u.value?(h(),j(b,{key:0,title:S.$t("common.CONFIRMATION"),message:S.$t(l.value),onConfirmAction:A[0]||(A[0]=y=>R(i.value.id)),onCancelAction:A[1]||(A[1]=y=>O(!1)),onKeydown:A[2]||(A[2]=Je(y=>O(!1),["esc"]))},null,8,["title","message"])):M("",!0),i.value&&i.value.client_id?(h(),I("div",vXe,[m(s)||o.value?(h(),I("div",CXe,_(S.$t(m(s)?"oauth2.APP_CREATED_SUCCESSFULLY":"oauth2.TOKENS_REVOKED")),1)):M("",!0),E("dl",null,[E("dt",null,_(S.$t("oauth2.APP.CLIENT_ID"))+":",1),E("dd",null,[H(_(i.value.client_id)+" ",1),m(s)&&d.value?(h(),I("i",{key:0,class:Te(`fa fa-${c.value?"check":"copy"}`),"aria-hidden":"true",title:S.$t("oauth2.COPY_TO_CLIPBOARD"),onClick:g},null,10,DXe)):M("",!0)]),m(s)&&i.value.client_secret?(h(),I("dt",PXe,_(S.$t("oauth2.APP.CLIENT_SECRET"))+": ",1)):M("",!0),m(s)&&i.value.client_secret?(h(),I("dd",LXe,[H(_(i.value.client_secret)+" ",1),d.value?(h(),I("i",{key:0,class:Te(`fa fa-${p.value?"check":"copy"}`),"aria-hidden":"true",title:S.$t("oauth2.COPY_TO_CLIPBOARD"),onClick:N},null,10,yXe)):M("",!0)])):M("",!0),E("dt",null,_(Ve(S.$t("oauth2.APP.ISSUE_AT")))+":",1),E("dd",null,[E("time",null,_(m(jn)(i.value.issued_at,m(r).timezone,m(r).date_format)),1)]),E("dt",null,_(S.$t("oauth2.APP.NAME"))+":",1),E("dd",null,_(i.value.name),1),E("dt",null,_(S.$t("oauth2.APP.DESCRIPTION"))+":",1),E("dd",{class:Te({"no-description":!i.value.client_description})},_(i.value.client_description?i.value.client_description:S.$t("oauth2.NO_DESCRIPTION")),3),E("dt",null,_(S.$t("oauth2.APP.URL"))+":",1),E("dd",null,_(i.value.website),1),E("dt",null,_(S.$t("oauth2.APP.REDIRECT_URL"))+":",1),E("dd",null,_(i.value.redirect_uris.length>0?i.value.redirect_uris[0]:""),1),E("dt",null,_(S.$t("oauth2.APP.SCOPE.LABEL"))+":",1),E("dd",$Xe,[(h(!0),I(_e,null,Le(i.value.scope.split(" "),y=>(h(),I("span",{class:"client-scope",key:y},[E("code",null,_(y),1)]))),128))])]),E("div",kXe,[E("button",{class:"danger",onClick:A[3]||(A[3]=y=>T(!1))},_(S.$t("oauth2.REVOKE_ALL_TOKENS")),1),E("button",{class:"danger",onClick:A[4]||(A[4]=y=>T(!0))},_(S.$t("oauth2.DELETE_APP")),1),E("button",{onClick:A[5]||(A[5]=y=>S.$router.push("/profile/apps"))},_(S.$t("buttons.BACK")),1)])])):(h(),I("div",UXe,[E("p",wXe,_(S.$t("oauth2.NO_APP")),1),E("button",{onClick:A[6]||(A[6]=y=>S.$router.push("/profile/apps"))},_(S.$t("buttons.BACK")),1)]))])}}}),g0=ie(MXe,[["__scopeId","data-v-3a7d0f4a"]]),WXe={id:"oauth2-apps-list"},zXe={class:"apps-list"},FXe={key:0},xXe={class:"app-issued-at"},BXe={key:1,class:"no-apps"},GXe={class:"app-list-buttons"},HXe=ee({__name:"UserAppsList",props:{authUser:{}},setup(e){const t=e,n=ke(),a=yt(),{authUser:s}=he(t),r=w(()=>n.getters[nt.GETTERS.CLIENTS]),i=w(()=>n.getters[nt.GETTERS.CLIENTS_PAGINATION]);let o=u(a.query);Et(()=>{l(o)});function u(c){const p={};return c.page&&(p.page=PE(c.page,Ag)),p}function l(c){n.dispatch(nt.ACTIONS.GET_CLIENTS,c)}return Me(()=>a.query,async c=>{o=u(c),l(o)}),(c,p)=>{const d=re("router-link");return h(),I("div",WXe,[E("p",zXe,_(c.$t("oauth2.APPS_LIST")),1),r.value.length>0?(h(),I("ul",FXe,[(h(!0),I(_e,null,Le(r.value,f=>(h(),I("li",{key:f.client_id},[W(d,{to:{name:"UserApp",params:{id:f.id}}},{default:ue(()=>[H(_(f.name),1)]),_:2},1032,["to"]),E("span",xXe,[H(_(c.$t("oauth2.APP.ISSUE_AT"))+" ",1),E("time",null,_(m(jn)(f.issued_at,m(s).timezone,m(s).date_format)),1)])]))),128))])):(h(),I("div",BXe,_(c.$t("oauth2.NO_APPS")),1)),r.value.length>0?(h(),j(Il,{key:2,pagination:i.value,path:"/profile/apps",query:m(o)},null,8,["pagination","query"])):M("",!0),E("div",GXe,[E("button",{onClick:p[0]||(p[0]=f=>c.$router.push("/profile/apps/new"))},_(c.$t("oauth2.NEW_APP")),1),E("button",{onClick:p[1]||(p[1]=f=>c.$router.push("/"))},_(c.$t("common.HOME")),1)])])}}}),VXe=ie(HXe,[["__scopeId","data-v-064a87b7"]]);function od(e){return e===0?!1:Array.isArray(e)&&e.length===0?!0:!e}function KXe(e){return(...t)=>!e(...t)}function jXe(e,t){return e===void 0&&(e="undefined"),e===null&&(e="null"),e===!1&&(e="false"),e.toString().toLowerCase().indexOf(t.trim())!==-1}function Hg(e,t,n,a){return t?e.filter(s=>jXe(a(s,n),t)).sort((s,r)=>a(s,n).length-a(r,n).length):e}function qXe(e){return e.filter(t=>!t.$isLabel)}function ud(e,t){return n=>n.reduce((a,s)=>s[e]&&s[e].length?(a.push({$groupLabel:s[t],$isLabel:!0}),a.concat(s[e])):a,[])}function YXe(e,t,n,a,s){return r=>r.map(i=>{if(!i[n])return console.warn("Options passed to vue-multiselect do not contain groups, despite the config."),[];const o=Hg(i[n],e,t,s);return o.length?{[a]:i[a],[n]:o}:[]})}const I0=(...e)=>t=>e.reduce((n,a)=>a(n),t);var XXe={data(){return{search:"",isOpen:!1,preferredOpenDirection:"below",optimizedHeight:this.maxHeight}},props:{internalSearch:{type:Boolean,default:!0},options:{type:Array,required:!0},multiple:{type:Boolean,default:!1},trackBy:{type:String},label:{type:String},searchable:{type:Boolean,default:!0},clearOnSelect:{type:Boolean,default:!0},hideSelected:{type:Boolean,default:!1},placeholder:{type:String,default:"Select option"},allowEmpty:{type:Boolean,default:!0},resetAfter:{type:Boolean,default:!1},closeOnSelect:{type:Boolean,default:!0},customLabel:{type:Function,default(e,t){return od(e)?"":t?e[t]:e}},taggable:{type:Boolean,default:!1},tagPlaceholder:{type:String,default:"Press enter to create a tag"},tagPosition:{type:String,default:"top"},max:{type:[Number,Boolean],default:!1},id:{default:null},optionsLimit:{type:Number,default:1e3},groupValues:{type:String},groupLabel:{type:String},groupSelect:{type:Boolean,default:!1},blockKeys:{type:Array,default(){return[]}},preserveSearch:{type:Boolean,default:!1},preselectFirst:{type:Boolean,default:!1},preventAutofocus:{type:Boolean,default:!1}},mounted(){!this.multiple&&this.max&&console.warn("[Vue-Multiselect warn]: Max prop should not be used when prop Multiple equals false."),this.preselectFirst&&!this.internalValue.length&&this.options.length&&this.select(this.filteredOptions[0])},computed:{internalValue(){return this.modelValue||this.modelValue===0?Array.isArray(this.modelValue)?this.modelValue:[this.modelValue]:[]},filteredOptions(){const e=this.search||"",t=e.toLowerCase().trim();let n=this.options.concat();return this.internalSearch?n=this.groupValues?this.filterAndFlat(n,t,this.label):Hg(n,t,this.label,this.customLabel):n=this.groupValues?ud(this.groupValues,this.groupLabel)(n):n,n=this.hideSelected?n.filter(KXe(this.isSelected)):n,this.taggable&&t.length&&!this.isExistingOption(t)&&(this.tagPosition==="bottom"?n.push({isTag:!0,label:e}):n.unshift({isTag:!0,label:e})),n.slice(0,this.optionsLimit)},valueKeys(){return this.trackBy?this.internalValue.map(e=>e[this.trackBy]):this.internalValue},optionKeys(){return(this.groupValues?this.flatAndStrip(this.options):this.options).map(t=>this.customLabel(t,this.label).toString().toLowerCase())},currentOptionLabel(){return this.multiple?this.searchable?"":this.placeholder:this.internalValue.length?this.getOptionLabel(this.internalValue[0]):this.searchable?"":this.placeholder}},watch:{internalValue:{handler(){this.resetAfter&&this.internalValue.length&&(this.search="",this.$emit("update:modelValue",this.multiple?[]:null))},deep:!0},search(){this.$emit("search-change",this.search)}},emits:["open","search-change","close","select","update:modelValue","remove","tag"],methods:{getValue(){return this.multiple?this.internalValue:this.internalValue.length===0?null:this.internalValue[0]},filterAndFlat(e,t,n){return I0(YXe(t,n,this.groupValues,this.groupLabel,this.customLabel),ud(this.groupValues,this.groupLabel))(e)},flatAndStrip(e){return I0(ud(this.groupValues,this.groupLabel),qXe)(e)},updateSearch(e){this.search=e},isExistingOption(e){return this.options?this.optionKeys.indexOf(e)>-1:!1},isSelected(e){const t=this.trackBy?e[this.trackBy]:e;return this.valueKeys.indexOf(t)>-1},isOptionDisabled(e){return!!e.$isDisabled},getOptionLabel(e){if(od(e))return"";if(e.isTag)return e.label;if(e.$isLabel)return e.$groupLabel;const t=this.customLabel(e,this.label);return od(t)?"":t},select(e,t){if(e.$isLabel&&this.groupSelect){this.selectGroup(e);return}if(!(this.blockKeys.indexOf(t)!==-1||this.disabled||e.$isDisabled||e.$isLabel)&&!(this.max&&this.multiple&&this.internalValue.length===this.max)&&!(t==="Tab"&&!this.pointerDirty)){if(e.isTag)this.$emit("tag",e.label,this.id),this.search="",this.closeOnSelect&&!this.multiple&&this.deactivate();else{if(this.isSelected(e)){t!=="Tab"&&this.removeElement(e);return}this.multiple?this.$emit("update:modelValue",this.internalValue.concat([e])):this.$emit("update:modelValue",e),this.$emit("select",e,this.id),this.clearOnSelect&&(this.search="")}this.closeOnSelect&&this.deactivate()}},selectGroup(e){const t=this.options.find(n=>n[this.groupLabel]===e.$groupLabel);if(t){if(this.wholeGroupSelected(t)){this.$emit("remove",t[this.groupValues],this.id);const n=this.trackBy?t[this.groupValues].map(s=>s[this.trackBy]):t[this.groupValues],a=this.internalValue.filter(s=>n.indexOf(this.trackBy?s[this.trackBy]:s)===-1);this.$emit("update:modelValue",a)}else{let n=t[this.groupValues].filter(a=>!(this.isOptionDisabled(a)||this.isSelected(a)));this.max&&n.splice(this.max-this.internalValue.length),this.$emit("select",n,this.id),this.$emit("update:modelValue",this.internalValue.concat(n))}this.closeOnSelect&&this.deactivate()}},wholeGroupSelected(e){return e[this.groupValues].every(t=>this.isSelected(t)||this.isOptionDisabled(t))},wholeGroupDisabled(e){return e[this.groupValues].every(this.isOptionDisabled)},removeElement(e,t=!0){if(this.disabled||e.$isDisabled)return;if(!this.allowEmpty&&this.internalValue.length<=1){this.deactivate();return}const n=typeof e=="object"?this.valueKeys.indexOf(e[this.trackBy]):this.valueKeys.indexOf(e);if(this.multiple){const a=this.internalValue.slice(0,n).concat(this.internalValue.slice(n+1));this.$emit("update:modelValue",a)}else this.$emit("update:modelValue",null);this.$emit("remove",e,this.id),this.closeOnSelect&&t&&this.deactivate()},removeLastElement(){this.blockKeys.indexOf("Delete")===-1&&this.search.length===0&&Array.isArray(this.internalValue)&&this.internalValue.length&&this.removeElement(this.internalValue[this.internalValue.length-1],!1)},activate(){this.isOpen||this.disabled||(this.adjustPosition(),this.groupValues&&this.pointer===0&&this.filteredOptions.length&&(this.pointer=1),this.isOpen=!0,this.searchable?(this.preserveSearch||(this.search=""),this.preventAutofocus||this.$nextTick(()=>this.$refs.search&&this.$refs.search.focus())):this.preventAutofocus||typeof this.$el<"u"&&this.$el.focus(),this.$emit("open",this.id))},deactivate(){this.isOpen&&(this.isOpen=!1,this.searchable?this.$refs.search!==null&&typeof this.$refs.search<"u"&&this.$refs.search.blur():typeof this.$el<"u"&&this.$el.blur(),this.preserveSearch||(this.search=""),this.$emit("close",this.getValue(),this.id))},toggle(){this.isOpen?this.deactivate():this.activate()},adjustPosition(){if(typeof window>"u")return;const e=this.$el.getBoundingClientRect().top,t=window.innerHeight-this.$el.getBoundingClientRect().bottom;t>this.maxHeight||t>e||this.openDirection==="below"||this.openDirection==="bottom"?(this.preferredOpenDirection="below",this.optimizedHeight=Math.min(t-40,this.maxHeight)):(this.preferredOpenDirection="above",this.optimizedHeight=Math.min(e-40,this.maxHeight))}}},QXe={data(){return{pointer:0,pointerDirty:!1}},props:{showPointer:{type:Boolean,default:!0},optionHeight:{type:Number,default:40}},computed:{pointerPosition(){return this.pointer*this.optionHeight},visibleElements(){return this.optimizedHeight/this.optionHeight}},watch:{filteredOptions(){this.pointerAdjust()},isOpen(){this.pointerDirty=!1},pointer(){this.$refs.search&&this.$refs.search.setAttribute("aria-activedescendant",this.id+"-"+this.pointer.toString())}},methods:{optionHighlight(e,t){return{"multiselect__option--highlight":e===this.pointer&&this.showPointer,"multiselect__option--selected":this.isSelected(t)}},groupHighlight(e,t){if(!this.groupSelect)return["multiselect__option--disabled",{"multiselect__option--group":t.$isLabel}];const n=this.options.find(a=>a[this.groupLabel]===t.$groupLabel);return n&&!this.wholeGroupDisabled(n)?["multiselect__option--group",{"multiselect__option--highlight":e===this.pointer&&this.showPointer},{"multiselect__option--group-selected":this.wholeGroupSelected(n)}]:"multiselect__option--disabled"},addPointerElement({key:e}="Enter"){this.filteredOptions.length>0&&this.select(this.filteredOptions[this.pointer],e),this.pointerReset()},pointerForward(){this.pointer0?(this.pointer--,this.$refs.list.scrollTop>=this.pointerPosition&&(this.$refs.list.scrollTop=this.pointerPosition),this.filteredOptions[this.pointer]&&this.filteredOptions[this.pointer].$isLabel&&!this.groupSelect&&this.pointerBackward()):this.filteredOptions[this.pointer]&&this.filteredOptions[0].$isLabel&&!this.groupSelect&&this.pointerForward(),this.pointerDirty=!0},pointerReset(){this.closeOnSelect&&(this.pointer=0,this.$refs.list&&(this.$refs.list.scrollTop=0))},pointerAdjust(){this.pointer>=this.filteredOptions.length-1&&(this.pointer=this.filteredOptions.length?this.filteredOptions.length-1:0),this.filteredOptions.length>0&&this.filteredOptions[this.pointer].$isLabel&&!this.groupSelect&&this.pointerForward()},pointerSet(e){this.pointer=e,this.pointerDirty=!0}}},Vg={name:"vue-multiselect",mixins:[XXe,QXe],compatConfig:{MODE:3,ATTR_ENUMERATED_COERCION:!1},props:{name:{type:String,default:""},modelValue:{type:null,default(){return[]}},selectLabel:{type:String,default:"Press enter to select"},selectGroupLabel:{type:String,default:"Press enter to select group"},selectedLabel:{type:String,default:"Selected"},deselectLabel:{type:String,default:"Press enter to remove"},deselectGroupLabel:{type:String,default:"Press enter to deselect group"},showLabels:{type:Boolean,default:!0},limit:{type:Number,default:99999},maxHeight:{type:Number,default:300},limitText:{type:Function,default:e=>`and ${e} more`},loading:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},spellcheck:{type:Boolean,default:!1},openDirection:{type:String,default:""},showNoOptions:{type:Boolean,default:!0},showNoResults:{type:Boolean,default:!0},tabindex:{type:Number,default:0},required:{type:Boolean,default:!1}},computed:{hasOptionGroup(){return this.groupValues&&this.groupLabel&&this.groupSelect},isSingleLabelVisible(){return(this.singleValue||this.singleValue===0)&&(!this.isOpen||!this.searchable)&&!this.visibleValues.length},isPlaceholderVisible(){return!this.internalValue.length&&(!this.searchable||!this.isOpen)},visibleValues(){return this.multiple?this.internalValue.slice(0,this.limit):[]},singleValue(){return this.internalValue[0]},deselectLabelText(){return this.showLabels?this.deselectLabel:""},deselectGroupLabelText(){return this.showLabels?this.deselectGroupLabel:""},selectLabelText(){return this.showLabels?this.selectLabel:""},selectGroupLabelText(){return this.showLabels?this.selectGroupLabel:""},selectedLabelText(){return this.showLabels?this.selectedLabel:""},inputStyle(){return this.searchable||this.multiple&&this.modelValue&&this.modelValue.length?this.isOpen?{width:"100%"}:{width:"0",position:"absolute",padding:"0"}:""},contentStyle(){return this.options.length?{display:"inline-block"}:{display:"block"}},isAbove(){return this.openDirection==="above"||this.openDirection==="top"?!0:this.openDirection==="below"||this.openDirection==="bottom"?!1:this.preferredOpenDirection==="above"},showSearchInput(){return this.searchable&&(this.hasSingleSelectedSlot&&(this.visibleSingleValue||this.visibleSingleValue===0)?this.isOpen:!0)}}};const ZXe={ref:"tags",class:"multiselect__tags"},JXe={class:"multiselect__tags-wrap"},eQe={class:"multiselect__spinner"},tQe={key:0},nQe={class:"multiselect__option"},aQe={class:"multiselect__option"},sQe=H("No elements found. Consider changing the search query."),rQe={class:"multiselect__option"},iQe=H("List is empty.");function oQe(e,t,n,a,s,r){return h(),j("div",{tabindex:e.searchable?-1:n.tabindex,class:[{"multiselect--active":e.isOpen,"multiselect--disabled":n.disabled,"multiselect--above":r.isAbove,"multiselect--has-options-group":r.hasOptionGroup},"multiselect"],onFocus:t[14]||(t[14]=i=>e.activate()),onBlur:t[15]||(t[15]=i=>e.searchable?!1:e.deactivate()),onKeydown:[t[16]||(t[16]=Je(ve(i=>e.pointerForward(),["self","prevent"]),["down"])),t[17]||(t[17]=Je(ve(i=>e.pointerBackward(),["self","prevent"]),["up"]))],onKeypress:t[18]||(t[18]=Je(ve(i=>e.addPointerElement(i),["stop","self"]),["enter","tab"])),onKeyup:t[19]||(t[19]=Je(i=>e.deactivate(),["esc"])),role:"combobox","aria-owns":"listbox-"+e.id},[Ut(e.$slots,"caret",{toggle:e.toggle},()=>[W("div",{onMousedown:t[1]||(t[1]=ve(i=>e.toggle(),["prevent","stop"])),class:"multiselect__select"},null,32)]),Ut(e.$slots,"clear",{search:e.search}),W("div",ZXe,[Ut(e.$slots,"selection",{search:e.search,remove:e.removeElement,values:r.visibleValues,isOpen:e.isOpen},()=>[$e(W("div",JXe,[(h(!0),j(_e,null,Le(r.visibleValues,(i,o)=>Ut(e.$slots,"tag",{option:i,search:e.search,remove:e.removeElement},()=>[(h(),j("span",{class:"multiselect__tag",key:o},[W("span",{textContent:_(e.getOptionLabel(i))},null,8,["textContent"]),W("i",{tabindex:"1",onKeypress:Je(ve(u=>e.removeElement(i),["prevent"]),["enter"]),onMousedown:ve(u=>e.removeElement(i),["prevent"]),class:"multiselect__tag-icon"},null,40,["onKeypress","onMousedown"])]))])),256))],512),[[qr,r.visibleValues.length>0]]),e.internalValue&&e.internalValue.length>n.limit?Ut(e.$slots,"limit",{key:0},()=>[W("strong",{class:"multiselect__strong",textContent:_(n.limitText(e.internalValue.length-n.limit))},null,8,["textContent"])]):M("v-if",!0)]),W(rm,{name:"multiselect__loading"},{default:ue(()=>[Ut(e.$slots,"loading",{},()=>[$e(W("div",eQe,null,512),[[qr,n.loading]])])]),_:3}),e.searchable?(h(),j("input",{key:0,ref:"search",name:n.name,id:e.id,type:"text",autocomplete:"off",spellcheck:n.spellcheck,placeholder:e.placeholder,required:n.required,style:r.inputStyle,value:e.search,disabled:n.disabled,tabindex:n.tabindex,onInput:t[2]||(t[2]=i=>e.updateSearch(i.target.value)),onFocus:t[3]||(t[3]=ve(i=>e.activate(),["prevent"])),onBlur:t[4]||(t[4]=ve(i=>e.deactivate(),["prevent"])),onKeyup:t[5]||(t[5]=Je(i=>e.deactivate(),["esc"])),onKeydown:[t[6]||(t[6]=Je(ve(i=>e.pointerForward(),["prevent"]),["down"])),t[7]||(t[7]=Je(ve(i=>e.pointerBackward(),["prevent"]),["up"])),t[9]||(t[9]=Je(ve(i=>e.removeLastElement(),["stop"]),["delete"]))],onKeypress:t[8]||(t[8]=Je(ve(i=>e.addPointerElement(i),["prevent","stop","self"]),["enter"])),class:"multiselect__input","aria-controls":"listbox-"+e.id},null,44,["name","id","spellcheck","placeholder","required","value","disabled","tabindex","aria-controls"])):M("v-if",!0),r.isSingleLabelVisible?(h(),j("span",{key:1,class:"multiselect__single",onMousedown:t[10]||(t[10]=ve((...i)=>e.toggle&&e.toggle(...i),["prevent"]))},[Ut(e.$slots,"singleLabel",{option:r.singleValue},()=>[H(_(e.currentOptionLabel),1)])],32)):M("v-if",!0),r.isPlaceholderVisible?(h(),j("span",{key:2,class:"multiselect__placeholder",onMousedown:t[11]||(t[11]=ve((...i)=>e.toggle&&e.toggle(...i),["prevent"]))},[Ut(e.$slots,"placeholder",{},()=>[H(_(e.placeholder),1)])],32)):M("v-if",!0)],512),W(rm,{name:"multiselect"},{default:ue(()=>[$e(W("div",{class:"multiselect__content-wrapper",onFocus:t[12]||(t[12]=(...i)=>e.activate&&e.activate(...i)),tabindex:"-1",onMousedown:t[13]||(t[13]=ve(()=>{},["prevent"])),style:{maxHeight:e.optimizedHeight+"px"},ref:"list"},[W("ul",{class:"multiselect__content",style:r.contentStyle,role:"listbox",id:"listbox-"+e.id,"aria-multiselectable":e.multiple},[Ut(e.$slots,"beforeList"),e.multiple&&e.max===e.internalValue.length?(h(),j("li",tQe,[W("span",nQe,[Ut(e.$slots,"maxElements",{},()=>[H("Maximum of "+_(e.max)+" options selected. First remove a selected option to select another.",1)])])])):M("v-if",!0),!e.max||e.internalValue.length(h(),j("li",{class:"multiselect__element",key:o,"aria-selected":e.isSelected(i),id:e.id+"-"+o,role:i&&(i.$isLabel||i.$isDisabled)?null:"option"},[i&&(i.$isLabel||i.$isDisabled)?M("v-if",!0):(h(),j("span",{key:0,class:[e.optionHighlight(o,i),"multiselect__option"],onClick:ve(u=>e.select(i),["stop"]),onMouseenter:ve(u=>e.pointerSet(o),["self"]),"data-select":i&&i.isTag?e.tagPlaceholder:r.selectLabelText,"data-selected":r.selectedLabelText,"data-deselect":r.deselectLabelText},[Ut(e.$slots,"option",{option:i,search:e.search,index:o},()=>[W("span",null,_(e.getOptionLabel(i)),1)])],42,["onClick","onMouseenter","data-select","data-selected","data-deselect"])),i&&(i.$isLabel||i.$isDisabled)?(h(),j("span",{key:1,"data-select":e.groupSelect&&r.selectGroupLabelText,"data-deselect":e.groupSelect&&r.deselectGroupLabelText,class:[e.groupHighlight(o,i),"multiselect__option"],onMouseenter:ve(u=>e.groupSelect&&e.pointerSet(o),["self"]),onMousedown:ve(u=>e.selectGroup(i),["prevent"])},[Ut(e.$slots,"option",{option:i,search:e.search,index:o},()=>[W("span",null,_(e.getOptionLabel(i)),1)])],42,["data-select","data-deselect","onMouseenter","onMousedown"])):M("v-if",!0)],8,["aria-selected","id","role"]))),128)):M("v-if",!0),$e(W("li",null,[W("span",aQe,[Ut(e.$slots,"noResult",{search:e.search},()=>[sQe])])],512),[[qr,n.showNoResults&&e.filteredOptions.length===0&&e.search&&!n.loading]]),$e(W("li",null,[W("span",rQe,[Ut(e.$slots,"noOptions",{},()=>[iQe])])],512),[[qr,n.showNoOptions&&(e.options.length===0||r.hasOptionGroup===!0&&e.filteredOptions.length===0)&&!e.search&&!n.loading]]),Ut(e.$slots,"afterList")],12,["id","aria-multiselectable"])],36),[[qr,e.isOpen]])]),_:3})],42,["tabindex","aria-owns"])}Vg.render=oQe;const uQe=ee({__name:"SportsMultiSelect",props:{sports:{},name:{},equipmentSports:{default:()=>[]},disabled:{type:Boolean,default:!1}},emits:["updatedValues"],setup(e,{emit:t}){const n=e,a=t,{equipmentSports:s,name:r,sports:i}=he(n),o=de([]);Et(()=>{s.value&&(o.value=s.value)});function u(l){a("updatedValues",l.map(c=>c.id))}return Me(()=>s.value,async l=>{o.value=l,u(l)}),(l,c)=>m(i)?(h(),j(m(Vg),{key:0,placeholder:"",id:m(r),name:m(r),disabled:l.disabled,modelValue:o.value,"onUpdate:modelValue":[c[0]||(c[0]=p=>o.value=p),u],multiple:!0,options:m(i),taggable:!0,label:"translatedLabel","track-by":"id",selectLabel:l.$t("workouts.MULTISELECT.selectLabel"),selectedLabel:l.$t("workouts.MULTISELECT.selectedLabel"),deselectLabel:l.$t("workouts.MULTISELECT.deselectLabel")},null,8,["id","name","disabled","modelValue","options","selectLabel","selectedLabel","deselectLabel"])):M("",!0)}}),lQe=ie(uQe,[["__scopeId","data-v-a44f31af"]]),cQe={id:"new-equipment"},dQe={key:0,id:"new-equipment-title"},EQe={id:"equipment-form"},pQe={class:"form-items"},fQe={class:"form-item"},mQe={for:"equipment-label"},TQe={class:"equipment-label-help"},_Qe={class:"info-box"},hQe={class:"form-item"},SQe={for:"equipment-type-id"},AQe=["value"],OQe={key:0,class:"equipment-warning"},gQe={class:"info-box"},IQe={class:"form-item"},RQe={for:"equipment-description"},NQe={key:1,class:"form-item-checkbox"},bQe={for:"equipment-active"},vQe={class:"form-item"},CQe={for:"equipment-sports"},DQe={class:"form-buttons"},PQe=["disabled"],LQe=["disabled"],yQe=ee({__name:"EquipmentEdition",props:{equipments:{},translatedEquipmentTypes:{}},setup(e){const t=e,n=ke(),a=yt(),{t:s}=$t(),{equipments:r,translatedEquipmentTypes:i}=he(t),o=w(()=>n.getters[We.GETTERS.LOADING]),u=w(()=>g(r.value)),l=w(()=>n.getters[K.GETTERS.ERROR_MESSAGES]),c=Yt({id:"",label:"",description:"",equipmentTypeId:0,isActive:!0,defaultForSportIds:[]}),p=w(()=>Kn(n.getters[Pt.GETTERS.SPORTS],s)),d=w(()=>i.value.filter(C=>C.id===c.equipmentTypeId)),f=w(()=>d.value.length>0?p.value.filter(C=>_g[d.value[0].label].includes(C.label)):[]),T=de([]),O=w(()=>i.value.filter(C=>{var D;return C.is_active||((D=u.value)==null?void 0:D.equipment_type.id)===C.id})),R=de(!1);St(()=>{var D;const C=document.getElementById("equipment-label");C==null||C.focus(),a.params.id&&a.params.id&&(D=u.value)!=null&&D.id&&S(u.value)});function g(C){if(!a.params.id)return null;const D=C.filter(F=>a.params.id?F.id===a.params.id:null);return D.length===0?null:D[0]}function N(C){T.value=Kn(p.value,s,"all").filter(D=>C.default_for_sport_ids.includes(D.id))}function S(C){c.id=C.id,c.label=C.label,c.description=C.description?C.description:"",c.equipmentTypeId=C.equipment_type.id,c.isActive=C.is_active,N(C)}function A(){n.dispatch(We.ACTIONS[c.id?"UPDATE_EQUIPMENT":"ADD_EQUIPMENT"],c)}function b(C){c.description=C}function y(){R.value=!0}function P(C){c.defaultForSportIds=C}return pt(()=>{n.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES)}),Me(()=>u.value,C=>{a.params.id&&(C!=null&&C.id)&&S(C)}),Me(()=>c.equipmentTypeId,C=>{u.value&&C===u.value.equipment_type.id?N(u.value):T.value=[]}),(C,D)=>{var z,Y;const F=re("CustomTextArea"),$=re("ErrorMessage");return h(),I("div",cQe,[c.id?M("",!0):(h(),I("h1",dQe,_(C.$t("equipments.ADD_A_NEW_EQUIPMENT")),1)),E("div",EQe,[E("form",{class:Te({errors:R.value}),onSubmit:ve(A,["prevent"])},[E("div",pQe,[E("div",fQe,[E("label",mQe,_(Ve(C.$t("common.LABEL")))+"* ",1),$e(E("input",{id:"equipment-label",maxlength:"50",type:"text",required:"",onInvalid:y,"onUpdate:modelValue":D[0]||(D[0]=se=>c.label=se)},null,544),[[st,c.label]]),E("div",TQe,[E("span",_Qe,[D[4]||(D[4]=E("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1)),H(" "+_(C.$t("equipments.50_CHARACTERS_MAX")),1)])])]),E("div",hQe,[E("label",SQe,_(Ve(C.$t("equipments.EQUIPMENT_TYPE")))+"* ",1),$e(E("select",{id:"equipment-type-id",required:"",onInvalid:y,"onUpdate:modelValue":D[1]||(D[1]=se=>c.equipmentTypeId=se)},[(h(!0),I(_e,null,Le(O.value,se=>(h(),I("option",{value:se.id,key:se.id},_(se.translatedLabel)+" "+_(se.is_active?"":`(${C.$t("common.INACTIVE")})`),9,AQe))),128))],544),[[Ta,c.equipmentTypeId]])]),(z=u.value)!=null&&z.workouts_count&&c.equipmentTypeId!==((Y=u.value)==null?void 0:Y.equipment_type.id)?(h(),I("div",OQe,[E("span",gQe,[D[5]||(D[5]=E("i",{class:"fa fa-exclamation-triangle warning","aria-hidden":"true"},null,-1)),H(" "+_(C.$t("equipments.ALL_WORKOUTS_ASSOCIATIONS_REMOVED")),1)])])):M("",!0),E("div",IQe,[E("label",RQe,_(C.$t("common.DESCRIPTION")),1),W(F,{name:"equipment-description",charLimit:200,input:c.description,onUpdateValue:b},null,8,["input"])]),c.id?(h(),I("div",NQe,[E("label",bQe,_(Ve(C.$t("common.ACTIVE"))),1),$e(E("input",{id:"equipment-active",name:"equipment-active",type:"checkbox","onUpdate:modelValue":D[2]||(D[2]=se=>c.isActive=se)},null,512),[[Wl,c.isActive]])])):M("",!0),E("div",vQe,[E("label",CQe,_(Ve(C.$t("equipments.DEFAULT_FOR_SPORTS",0))),1),W(lQe,{sports:f.value,name:"equipment-sports",equipmentSports:T.value,disabled:!c.equipmentTypeId,onUpdatedValues:P},null,8,["sports","equipmentSports","disabled"])])]),l.value?(h(),j($,{key:0,message:l.value},null,8,["message"])):M("",!0),E("div",DQe,[E("button",{class:"confirm",type:"submit",disabled:o.value},_(C.$t("buttons.SUBMIT")),9,PQe),E("button",{class:"cancel",disabled:o.value,onClick:D[3]||(D[3]=ve(()=>{var se;return C.$router.push((se=u.value)!=null&&se.id?m(a).query.fromEdition?"/profile/edit/equipments":`/profile/equipments/${u.value.id}`:"/profile/equipments")},["prevent"]))},_(C.$t("buttons.CANCEL")),9,LQe)])],34)])])}}}),R0=ie(yQe,[["__scopeId","data-v-28e798a0"]]),$Qe={key:0,id:"user-equipments"},N0=ee({__name:"index",props:{user:{},isEdition:{type:Boolean}},setup(e){const t=e,n=ke(),{t:a}=$t(),{user:s}=he(t),r=yt(),i=w(()=>n.getters[We.GETTERS.EQUIPMENTS]),o=w(()=>n.getters[We.GETTERS.EQUIPMENT_TYPES]),u=w(()=>Tg(o.value,a));return Et(()=>{n.dispatch(We.ACTIONS.GET_EQUIPMENT_TYPES),n.dispatch(We.ACTIONS.GET_EQUIPMENTS)}),pt(()=>{n.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES)}),Me(()=>r.name,l=>{l==="UserEquipmentsList"&&n.dispatch(We.ACTIONS.GET_EQUIPMENTS)}),(l,c)=>{const p=re("router-view");return u.value?(h(),I("div",$Qe,[W(p,{authUser:m(s),equipments:i.value,translatedEquipmentTypes:u.value,isEdition:l.isEdition},null,8,["authUser","equipments","translatedEquipmentTypes","isEdition"])])):M("",!0)}}}),kQe=(e,t=!1)=>{let n="0";t&&(n=String(Math.floor(e/86400)),e%=86400);const a=String(Math.floor(e/3600)).padStart(2,"0");e%=3600;const s=String(Math.floor(e/60)).padStart(2,"0"),r=String(e%60).padStart(2,"0");return t?`${n==="0"?"":`${n}d `}${a==="00"?"":`${a}h `}${s}m ${r}s`:`${a==="00"?"":`${a}:`}${s}:${r}`},Af=(e,t)=>{const n=e.match(/day/g)?e.split(", ")[1]:e;return{days:e.match(/day/g)?`${e.split(" ")[0]} ${e.match(/days/g)?t("common.DAY",2):t("common.DAY",1)}`:`0 ${t("common.DAY",2)},`,duration:`${n.split(":")[0]}h ${n.split(":")[1]}min`}},WE=(e,t)=>{if(e.match(/day/g)){const n=Af(e,t);return`${n.days}, ${n.duration}`}return e},UQe={key:0,id:"user-equipment",class:"description-list"},wQe={class:"equipment-type"},MQe={key:0,class:"equipment-description"},WQe={key:1,class:"no-description"},zQe={class:"duration-detail"},FQe={class:"sports-list"},xQe={class:"equipment-buttons"},BQe=["disabled"],GQe=["disabled"],HQe=["disabled"],VQe=["disabled"],KQe={key:1},jQe={class:"no-equipment"},qQe=["disabled"],YQe=ee({__name:"UserEquipment",props:{authUser:{},equipments:{}},setup(e){const t=e,n=ke(),a=yt(),{t:s}=$t(),{authUser:r,equipments:i}=he(t),o=vt("sportColors"),u=w(()=>n.getters[We.GETTERS.LOADING]),l=w(()=>f(i.value)),c=w(()=>n.getters[Pt.GETTERS.SPORTS]),p=w(()=>Kn(c.value,s,"all",r.value.sports_list).filter(g=>{var N;return l.value?(N=l.value)==null?void 0:N.default_for_sport_ids.includes(g.id):!1})),d=de(!1);Et(()=>{n.dispatch(We.ACTIONS.GET_EQUIPMENTS)});function f(g){if(!a.params.id)return null;const N=g.filter(S=>a.params.id?S.id===a.params.id:null);return N.length===0?null:N[0]}function T(g){d.value=g}function O(){var g,N;if((g=l.value)!=null&&g.id){const S={id:l.value.id};((N=l.value)==null?void 0:N.workouts_count)>0&&(S.force=!0),n.dispatch(We.ACTIONS.DELETE_EQUIPMENT,S)}}function R(g){n.dispatch(We.ACTIONS.REFRESH_EQUIPMENT,g)}return pt(()=>{n.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES)}),(g,N)=>{const S=re("Modal"),A=re("EquipmentTypeImage"),b=re("router-link"),y=re("Distance"),P=re("SportImage");return l.value?(h(),I("div",UQe,[d.value?(h(),j(S,{key:0,title:g.$t("common.CONFIRMATION"),message:"user.PROFILE.EQUIPMENTS.CONFIRM_EQUIPMENT_DELETION",strongMessage:l.value.label,warning:l.value.workouts_count>0?g.$t("user.PROFILE.EQUIPMENTS.EQUIPMENT_ASSOCIATED_WITH_WORKOUTS"):"",onConfirmAction:O,onCancelAction:N[0]||(N[0]=C=>T(!1)),onKeydown:N[1]||(N[1]=Je(C=>T(!1),["esc"]))},null,8,["title","strongMessage","warning"])):M("",!0),E("dl",null,[E("dt",null,_(Ve(g.$t("common.LABEL"))),1),E("dd",null,_(l.value.label),1),E("dt",null,_(Ve(g.$t("equipments.EQUIPMENT_TYPE"))),1),E("dd",wQe,[W(A,{title:g.$t(`equipment_types.${l.value.equipment_type.label}.LABEL`),"equipment-type-label":l.value.equipment_type.label},null,8,["title","equipment-type-label"]),E("span",null,_(g.$t(`equipment_types.${l.value.equipment_type.label}.LABEL`))+" "+_(l.value.equipment_type.is_active?"":`(${g.$t("common.INACTIVE")})`),1)]),E("dt",null,_(g.$t("common.DESCRIPTION")),1),E("dd",null,[l.value.description?(h(),I("span",MQe,_(l.value.description),1)):(h(),I("span",WQe,_(g.$t("common.NO_DESCRIPTION")),1))]),E("dt",null,_(Ve(g.$t("workouts.WORKOUT",0))),1),E("dd",null,[l.value.workouts_count?(h(),j(b,{key:0,to:`/workouts?equipment_id=${l.value.id}`},{default:ue(()=>[H(_(l.value.workouts_count),1)]),_:1},8,["to"])):(h(),I(_e,{key:1},[H(_(l.value.workouts_count),1)],64))]),E("dt",null,_(Ve(g.$t("workouts.TOTAL_DISTANCE",0))),1),E("dd",null,[W(y,{distance:l.value.total_distance,unitFrom:"km",digits:2,displayUnit:!1,useImperialUnits:m(r).imperial_units},null,8,["distance","useImperialUnits"]),E("span",null,_(m(r).imperial_units?"miles":"km"),1)]),E("dt",null,_(Ve(g.$t("workouts.TOTAL_DURATION",0))),1),E("dd",null,[H(_(m(WE)(l.value.total_moving,g.$t))+" ",1),l.value.total_duration!==l.value.total_moving?(h(),I(_e,{key:0},[N[7]||(N[7]=H(" (")),E("span",zQe,_(g.$t("common.TOTAL_DURATION_WITH_PAUSES"))+": ",1),H(" "+_(m(WE)(l.value.total_duration,g.$t))+") ",1)],64)):M("",!0)]),E("dt",null,_(Ve(g.$t("common.ACTIVE",0))),1),E("dd",null,[E("i",{class:Te(`fa fa-${l.value.is_active?"check-":""}square-o`),"aria-hidden":"true"},null,2)]),l.value.default_for_sport_ids.length>0?(h(),I(_e,{key:0},[E("dt",null,_(Ve(g.$t("equipments.DEFAULT_FOR_SPORTS",0))),1),E("dd",FQe,[(h(!0),I(_e,null,Le(p.value,C=>(h(),I("span",{class:Te(["sport-badge",{inactive:!C.is_active_for_user}]),key:C.label},[W(P,{title:C.translatedLabel,"sport-label":C.label,color:C.color?C.color:m(o)[C.label]},null,8,["title","sport-label","color"]),W(b,{to:`/profile/sports/${C.id}?fromEquipmentId=${l.value.id}`},{default:ue(()=>[H(_(C.translatedLabel)+" "+_(C.is_active_for_user?"":`(${g.$t("common.INACTIVE")})`),1)]),_:2},1032,["to"])],2))),128))])],64)):M("",!0)]),E("div",xQe,[E("button",{onClick:N[2]||(N[2]=C=>g.$router.push(`/profile/edit/equipments/${l.value.id}`)),disabled:u.value},_(g.$t("buttons.EDIT")),9,BQe),E("button",{disabled:u.value,onClick:N[3]||(N[3]=C=>R(l.value.id))},_(g.$t("buttons.REFRESH_TOTALS")),9,GQe),E("button",{class:"danger",onClick:N[4]||(N[4]=C=>d.value=!0),disabled:u.value},_(g.$t("buttons.DELETE")),9,HQe),E("button",{disabled:u.value,onClick:N[5]||(N[5]=C=>g.$router.push(m(a).query.fromWorkoutId?`/workouts/${m(a).query.fromWorkoutId}`:m(a).query.fromSportId?`/profile/sports/${m(a).query.fromSportId}`:"/profile/equipments"))},_(g.$t("buttons.BACK")),9,VQe)])])):(h(),I("div",KQe,[E("p",jQe,_(g.$t("equipments.NO_EQUIPMENT")),1),E("button",{onClick:N[6]||(N[6]=C=>g.$router.push("/profile/equipments")),disabled:u.value},_(g.$t("buttons.BACK")),9,qQe)]))}}}),XQe=ie(YQe,[["__scopeId","data-v-bb9ee5a6"]]),QQe={id:"user-equipments-list"},ZQe={key:0,class:"mobile-display"},JQe={key:1,class:"equipments-list"},eZe={key:3},tZe={class:"responsive-table"},nZe={class:"text-left"},aZe={class:"text-left"},sZe={class:"text-left"},rZe={class:"text-left"},iZe={key:0},oZe={class:"equipment-label"},uZe={class:"cell-heading"},lZe={class:"column"},cZe={class:"cell-heading"},dZe={class:"column"},EZe={class:"cell-heading"},pZe={class:"active"},fZe={class:"cell-heading"},mZe={key:0,class:"action-buttons"},TZe={class:"cell-heading"},_Ze=["onClick"],hZe={class:"equipments-list-buttons"},SZe=ee({__name:"UserEquipmentsList",props:{equipments:{},translatedEquipmentTypes:{},authUser:{},isEdition:{type:Boolean}},setup(e){const t=e,{authUser:n,isEdition:a,equipments:s,translatedEquipmentTypes:r}=he(t),i=w(()=>o(s.value));function o(u){const l={};return u.map(c=>{c.equipment_type.id in l?l[c.equipment_type.id].push(c):l[c.equipment_type.id]=[c]}),l}return(u,l)=>{const c=re("EquipmentTypeImage"),p=re("router-link"),d=re("Distance");return h(),I("div",QQe,[m(s).length>0?(h(),I("div",ZQe,[m(a)?M("",!0):(h(),I("button",{key:0,onClick:l[0]||(l[0]=f=>u.$router.push("/profile/edit/equipments"))},_(u.$t("equipments.EDIT_EQUIPMENTS")),1)),m(a)?M("",!0):(h(),I("button",{key:1,onClick:l[1]||(l[1]=f=>u.$router.push("/profile/equipments/new"))},_(u.$t("equipments.NEW_EQUIPMENT")),1)),m(a)?(h(),I("button",{key:2,onClick:l[2]||(l[2]=f=>u.$router.push("/profile/equipments"))},_(u.$t("buttons.BACK")),1)):(h(),I("button",{key:3,onClick:l[3]||(l[3]=f=>u.$router.push("/"))},_(u.$t("common.HOME")),1))])):M("",!0),m(a)?M("",!0):(h(),I("h1",JQe,_(u.$t("user.PROFILE.EQUIPMENTS.YOUR_EQUIPMENTS")),1)),m(s).length===0?(h(),I("p",{key:2,class:Te(["no-equipments",{edition:m(a)}])},_(u.$t("equipments.NO_EQUIPMENTS")),3)):(h(),I("div",eZe,[(h(!0),I(_e,null,Le(m(r),f=>(h(),I(_e,{key:f.label},[i.value[f.id]?(h(),I(_e,{key:0},[E("h2",null,[W(c,{title:f.translatedLabel,"equipment-type-label":f.label},null,8,["title","equipment-type-label"]),H(" "+_(f.translatedLabel)+" "+_(f.is_active?"":`(${u.$t("common.INACTIVE")})`),1)]),E("div",tZe,[E("table",null,[E("thead",null,[E("tr",null,[E("th",nZe,_(u.$t("common.LABEL")),1),E("th",aZe,_(u.$t("workouts.WORKOUT",0)),1),E("th",sZe,_(Ve(u.$t("workouts.TOTAL_DISTANCE"))),1),E("th",rZe,_(u.$t("common.ACTIVE")),1),m(a)?(h(),I("th",iZe,_(u.$t("common.ACTION")),1)):M("",!0),l[8]||(l[8]=E("th",null,null,-1))])]),E("tbody",null,[(h(!0),I(_e,null,Le(i.value[f.id].sort(m(pf)),T=>(h(),I("tr",{key:T.label},[E("td",oZe,[E("span",uZe,_(u.$t("common.LABEL")),1),W(p,{to:{name:"Equipment",params:{id:T.id}}},{default:ue(()=>[H(_(T.label),1)]),_:2},1032,["to"])]),E("td",lZe,[E("span",cZe,_(u.$t("workouts.WORKOUT",0)),1),T.workouts_count?(h(),j(p,{key:0,to:`/workouts?equipment_id=${T.id}`},{default:ue(()=>[H(_(T.workouts_count),1)]),_:2},1032,["to"])):(h(),I(_e,{key:1},[H(_(T.workouts_count),1)],64))]),E("td",dZe,[E("span",EZe,_(u.$t("workouts.TOTAL_DISTANCE",0)),1),W(d,{distance:T.total_distance,unitFrom:"km",digits:2,displayUnit:!1,useImperialUnits:m(n).imperial_units},null,8,["distance","useImperialUnits"]),E("span",null,_(m(n).imperial_units?"miles":"km"),1)]),E("td",pZe,[E("span",fZe,_(u.$t("common.ACTIVE")),1),E("i",{class:Te(`fa fa${T.is_active?"-check":""}`),"aria-hidden":"true"},null,2)]),m(a)?(h(),I("td",mZe,[E("span",TZe,_(u.$t("user.PROFILE.SPORT.ACTION")),1),E("button",{onClick:O=>u.$router.push(`/profile/edit/equipments/${T.id}${m(a)?"?fromEdition=true":""}`)},_(u.$t("buttons.EDIT")),9,_Ze)])):M("",!0)]))),128))])])])],64)):M("",!0)],64))),128))])),E("div",hZe,[!m(a)&&m(s).length>0?(h(),I("button",{key:0,onClick:l[4]||(l[4]=f=>u.$router.push("/profile/edit/equipments"))},_(u.$t("equipments.EDIT_EQUIPMENTS")),1)):M("",!0),m(a)?M("",!0):(h(),I("button",{key:1,onClick:l[5]||(l[5]=f=>u.$router.push("/profile/equipments/new"))},_(u.$t("equipments.NEW_EQUIPMENT")),1)),m(a)?(h(),I("button",{key:2,onClick:l[6]||(l[6]=f=>u.$router.push("/profile/equipments"))},_(u.$t("buttons.BACK")),1)):(h(),I("button",{key:3,onClick:l[7]||(l[7]=f=>u.$router.push("/"))},_(u.$t("common.HOME")),1))])])}}}),b0=ie(SZe,[["__scopeId","data-v-b2876f25"]]),AZe={id:"users-sports"},v0=ee({__name:"index",props:{user:{},isEdition:{type:Boolean}},setup(e){const t=e,n=ke(),{t:a}=$t(),{user:s,isEdition:r}=he(t),i=w(()=>n.getters[Pt.GETTERS.SPORTS]),o=w(()=>Kn(i.value,a,"is_active",s.value.sports_list));return pt(()=>{n.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),n.commit(nt.MUTATIONS.SET_CLIENTS,[])}),(u,l)=>{const c=re("router-view");return h(),I("div",AZe,[W(c,{authUser:m(s),isEdition:m(r),translatedSports:o.value},null,8,["authUser","isEdition","translatedSports"])])}}}),OZe=ee({__name:"EquipmentBadge",props:{equipment:{},workoutId:{},sportId:{}},setup(e){const t=e,{equipment:n,sportId:a,workoutId:s}=he(t);return(r,i)=>{var l;const o=re("EquipmentTypeImage"),u=re("router-link");return h(),j(u,{class:Te(["equipment-badge",{inactive:!m(n).is_active}]),to:{name:"Equipment",params:{id:m(n).id},query:{fromWorkoutId:m(s),fromSportId:(l=m(a))==null?void 0:l.toString()}}},{default:ue(()=>[W(o,{title:r.$t(`equipment_types.${m(n).equipment_type.label}.LABEL`),"equipment-type-label":m(n).equipment_type.label},null,8,["title","equipment-type-label"]),E("span",null,_(m(n).label)+" "+_(m(n).is_active?"":`(${r.$t("common.INACTIVE")})`),1)]),_:1},8,["class","to"])}}}),Kg=ie(OZe,[["__scopeId","data-v-84285cae"]]);function Of(){const e=ke(),t=w(()=>e.getters[K.GETTERS.ERROR_MESSAGES]),n=w(()=>e.getters[X.GETTERS.USER_LOADING]),a="#838383",s=vt("sportColors"),r=de(!1),i=de(""),o=Yt({sport_id:0,color:null,is_active:!0,stopped_speed_threshold:1,fromSport:!1});function u(d){o.is_active=d.target.checked}function l(d){r.value=d}function c(d){const f={...o};f.stopped_speed_threshold=d.imperial_units?Kt(o.stopped_speed_threshold,"mi","km",2):o.stopped_speed_threshold,e.dispatch(X.ACTIONS.UPDATE_USER_SPORT_PREFERENCES,f)}function p(d,f=!1){e.dispatch(X.ACTIONS.RESET_USER_SPORT_PREFERENCES,{sportId:d,fromSport:f})}return{defaultColor:a,defaultEquipmentId:i,displayModal:r,errorMessages:t,loading:n,sportColors:s,sportPayload:o,resetSport:p,updateDisplayModal:l,updateIsActive:u,updateSport:c}}const gZe={key:0,id:"user-sport",class:"description-list"},IZe={class:"sport-equipments"},RZe={key:0,class:"no-equipments"},NZe={class:"sport-buttons"},bZe=["disabled"],vZe={key:1},CZe={class:"no-sport"},DZe=ee({__name:"UserSport",props:{authUser:{},translatedSports:{}},setup(e){const t=e,n=ke(),a=yt(),{translatedSports:s}=he(t),{displayModal:r,errorMessages:i,loading:o,sportColors:u,resetSport:l,updateDisplayModal:c}=Of(),p=w(()=>d(s.value));function d(f){if(!a.params.id)return null;const T=f.filter(O=>a.params.id?O.id===+a.params.id:null);return T.length===0?null:T[0]}return pt(()=>{n.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES)}),Me(()=>o.value,f=>{!f&&!i.value&&c(!1)}),(f,T)=>{const O=re("Modal"),R=re("SportImage"),g=re("Distance");return p.value?(h(),I("div",gZe,[m(r)?(h(),j(O,{key:0,title:f.$t("common.CONFIRMATION"),message:f.$t(`user.PROFILE.SPORT.CONFIRM_SPORT_RESET${p.value.default_equipments.length>0?"_WITH_EQUIPMENTS":""}`),onConfirmAction:T[0]||(T[0]=N=>m(l)(p.value.id,!0)),onCancelAction:T[1]||(T[1]=N=>m(c)(!1)),onKeydown:T[2]||(T[2]=Je(N=>m(c)(!1),["esc"]))},null,8,["title","message"])):M("",!0),E("dl",null,[E("dt",null,_(Ve(f.$t("workouts.SPORT",1))),1),E("dd",null,_(p.value.translatedLabel),1),E("dt",null,_(Ve(f.$t("user.PROFILE.SPORT.COLOR"))),1),E("dd",null,[W(R,{title:p.value.translatedLabel,"sport-label":p.value.label,color:p.value.color?p.value.color:m(u)[p.value.label]},null,8,["title","sport-label","color"])]),E("dt",null,_(Ve(f.$t("workouts.WORKOUT",0))),1),E("dd",null,[E("i",{class:Te(`fa fa-${f.authUser.sports_list.includes(p.value.id)?"check-":""}square-o`),"aria-hidden":"true"},null,2)]),E("dt",null,_(Ve(f.$t("user.PROFILE.SPORT.STOPPED_SPEED_THRESHOLD"))),1),E("dd",null,[W(g,{distance:p.value.stopped_speed_threshold,unitFrom:"km",speed:!0,useImperialUnits:f.authUser.imperial_units},null,8,["distance","useImperialUnits"])]),E("dt",null,_(Ve(f.$t("common.ACTIVE",0))),1),E("dd",null,[E("i",{class:Te(`fa fa-${p.value.is_active_for_user?"check-":""}square-o`),"aria-hidden":"true"},null,2)]),E("dt",null,_(f.$t("user.PROFILE.SPORT.DEFAULT_EQUIPMENTS",1)),1),E("dd",IZe,[(h(!0),I(_e,null,Le(p.value.default_equipments,N=>(h(),j(Kg,{equipment:N,"sport-id":p.value.id,key:N.label},null,8,["equipment","sport-id"]))),128)),p.value.default_equipments.length===0?(h(),I("div",RZe,_(f.$t("equipments.NO_EQUIPMENTS")),1)):M("",!0)])]),E("div",NZe,[E("button",{onClick:T[3]||(T[3]=N=>f.$router.push(`/profile/edit/sports/${p.value.id}`))},_(f.$t("buttons.EDIT")),1),E("button",{disabled:m(o),class:"danger",onClick:T[4]||(T[4]=ve(N=>m(c)(!0),["prevent"]))},_(f.$t("buttons.RESET")),9,bZe),E("button",{onClick:T[5]||(T[5]=N=>f.$router.push(m(a).query.fromEquipmentId?`/profile/equipments/${m(a).query.fromEquipmentId}`:"/profile/sports"))},_(f.$t("buttons.BACK")),1)])])):(h(),I("div",vZe,[E("p",CZe,_(f.$t("user.NO_SPORT_FOUND")),1),E("button",{onClick:T[6]||(T[6]=N=>f.$router.push("/profile/sports"))},_(f.$t("buttons.BACK")),1)]))}}}),PZe=ie(DZe,[["__scopeId","data-v-1211593f"]]),LZe={key:0,id:"sport-edition"},yZe={class:"form-items"},$Ze={class:"form-item"},kZe={for:"sport-label"},UZe={class:"form-item"},wZe={for:"sport-color"},MZe=["disabled"],WZe={class:"form-item"},zZe={for:"sport-threshold"},FZe=["disabled"],xZe={class:"form-item-checkbox"},BZe={for:"equipment-active"},GZe=["checked","disabled"],HZe={class:"form-item"},VZe={for:"sport-default-equipment"},KZe=["disabled"],jZe={value:""},qZe=["value"],YZe={class:"form-buttons"},XZe=["disabled"],QZe=["disabled"],ZZe=ee({__name:"UserSportEdition",props:{authUser:{},translatedSports:{}},setup(e){const t=e,{t:n}=$t(),a=ke(),s=yt(),{authUser:r,translatedSports:i}=he(t),{defaultColor:o,defaultEquipmentId:u,errorMessages:l,loading:c,sportColors:p,sportPayload:d,updateIsActive:f,updateSport:T}=Of(),O=w(()=>S(i.value)),R=w(()=>a.getters[We.GETTERS.EQUIPMENTS]),g=w(()=>R.value&&O.value?hg(R.value,n,"withIncludedIds",O.value,O.value.default_equipments.map(P=>P.id)):[]),N=de(!1);St(()=>{var C;const P=document.getElementById("sport-color");P==null||P.focus(),s.params.id&&s.params.id&&(C=O.value)!=null&&C.id&&A(O.value,!0)});function S(P){if(!s.params.id)return null;const C=P.filter(D=>s.params.id?D.id===+s.params.id:null);return C.length===0?null:C[0]}function A(P,C=!1){P!==null&&(d.sport_id=P.id,d.color=P.color?P.color:p?p[P.label]:o,d.is_active=P.is_active_for_user,d.stopped_speed_threshold=+`${r.value.imperial_units?Kt(P.stopped_speed_threshold,"km","mi",2):parseFloat(P.stopped_speed_threshold.toFixed(2))}`,d.fromSport=!0,C&&(u.value=P.default_equipments.length>0?P.default_equipments[0].id:""))}function b(){d.default_equipment_ids=u.value?[u.value]:[],T(r.value)}function y(){N.value=!0}return Me(()=>O.value,P=>{s.params.id&&(P!=null&&P.id)&&A(P,!0)}),(P,C)=>{const D=re("ErrorMessage");return O.value?(h(),I("div",LZe,[E("form",{class:Te({errors:N.value}),onSubmit:ve(b,["prevent"])},[E("div",yZe,[E("div",$Ze,[E("label",kZe,_(Ve(P.$t("workouts.SPORT",1))),1),H(" "+_(O.value.translatedLabel),1)]),E("div",UZe,[E("label",wZe,_(Ve(P.$t("user.PROFILE.SPORT.COLOR"))),1),$e(E("input",{id:"sport-color",name:"sport-color",class:"sport-color",type:"color",required:"","onUpdate:modelValue":C[0]||(C[0]=F=>m(d).color=F),disabled:m(c),onInvalid:y},null,40,MZe),[[st,m(d).color]])]),E("div",WZe,[E("label",zZe,_(Ve(P.$t("user.PROFILE.SPORT.STOPPED_SPEED_THRESHOLD")))+" ("+_(`${m(r).imperial_units?"mi":"km"}/h`)+")* ",1),$e(E("input",{id:"sport-threshold",name:"sport-threshold",class:"threshold-input",type:"number",min:"0",step:"0.1",required:"","onUpdate:modelValue":C[1]||(C[1]=F=>m(d).stopped_speed_threshold=F),disabled:m(c),onInvalid:y},null,40,FZe),[[st,m(d).stopped_speed_threshold]])]),E("div",xZe,[E("label",BZe,_(Ve(P.$t("common.ACTIVE"))),1),E("input",{id:"equipment-active",name:"equipment-active",type:"checkbox",checked:O.value.is_active_for_user,onChange:C[2]||(C[2]=(...F)=>m(f)&&m(f)(...F)),disabled:m(c)},null,40,GZe)]),E("div",HZe,[E("label",VZe,_(P.$t("user.PROFILE.SPORT.DEFAULT_EQUIPMENTS",1)),1),$e(E("select",{id:"sport-default-equipment",onInvalid:y,disabled:m(c),"onUpdate:modelValue":C[3]||(C[3]=F=>xt(u)?u.value=F:null)},[E("option",jZe,_(P.$t("equipments.NO_EQUIPMENTS")),1),(h(!0),I(_e,null,Le(g.value,F=>(h(),I("option",{value:F.id,key:F.id},_(F.label),9,qZe))),128))],40,KZe),[[Ta,m(u)]])])]),m(l)?(h(),j(D,{key:0,message:m(l)},null,8,["message"])):M("",!0),E("div",YZe,[E("button",{class:"confirm",type:"submit",disabled:m(c)},_(P.$t("buttons.SUBMIT")),9,XZe),E("button",{class:"cancel",onClick:C[4]||(C[4]=ve(()=>{var F;return P.$router.push(`/profile/sports/${(F=O.value)==null?void 0:F.id}`)},["prevent"])),disabled:m(c)},_(P.$t("buttons.CANCEL")),9,QZe)])],34)])):M("",!0)}}}),JZe=ie(ZZe,[["__scopeId","data-v-7f3cff18"]]),eJe={id:"user-sport-preferences"},tJe={key:1,class:"responsive-table"},nJe={class:"mobile-display"},aJe={key:0,class:"profile-buttons mobile-display"},sJe={key:1,class:"profile-buttons"},rJe={class:"text-left"},iJe={class:"threshold"},oJe={key:0},uJe={class:"cell-heading"},lJe={class:"cell-heading"},cJe={key:2,class:"disabled-message"},dJe={key:3,class:"fa fa-refresh fa-spin fa-fw"},EJe={class:"cell-heading"},pJe={class:"cell-heading"},fJe={class:"cell-heading"},mJe=["checked"],TJe={class:"cell-heading"},_Je={key:1},hJe={key:0,class:"action-buttons"},SJe={class:"cell-heading"},AJe=["onClick"],OJe={key:1,class:"edition-buttons"},gJe=["disabled"],IJe=["disabled"],RJe=["disabled"],NJe={key:0,class:"profile-buttons"},bJe={key:1,class:"profile-buttons"},vJe=ee({__name:"UserSportPreferences",props:{authUser:{},translatedSports:{},isEdition:{type:Boolean}},setup(e){const t=e,n=ke(),{authUser:a,isEdition:s,translatedSports:r}=he(t),{defaultColor:i,displayModal:o,errorMessages:u,loading:l,sportColors:c,sportPayload:p,resetSport:d,updateDisplayModal:f,updateIsActive:T,updateSport:O}=Of(),R=de(!1);function g(A){A!==null?(p.sport_id=A.id,p.color=A.color?A.color:c?c[A.label]:i,p.is_active=A.is_active_for_user,p.stopped_speed_threshold=+`${a.value.imperial_units?Kt(A.stopped_speed_threshold,"km","mi",2):parseFloat(A.stopped_speed_threshold.toFixed(2))}`,R.value=A.default_equipments.length>0):S()}function N(A){return p.sport_id===A}function S(){p.sport_id=0,p.color=null,p.is_active=!0,p.stopped_speed_threshold=1,R.value=!1,n.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES)}return Me(()=>l.value,A=>{!A&&!u.value&&(S(),f(!1))}),(A,b)=>{const y=re("Modal"),P=re("SportImage"),C=re("router-link"),D=re("ErrorMessage"),F=re("Distance");return h(),I("div",eJe,[m(o)?(h(),j(y,{key:0,title:A.$t("common.CONFIRMATION"),message:A.$t(`user.PROFILE.SPORT.CONFIRM_SPORT_RESET${R.value?"_WITH_EQUIPMENTS":""}`),onConfirmAction:b[0]||(b[0]=$=>m(d)(m(p).sport_id)),onCancelAction:b[1]||(b[1]=$=>m(f)(!1)),onKeydown:b[2]||(b[2]=Je($=>m(f)(!1),["esc"]))},null,8,["title","message"])):M("",!0),m(r).length>0?(h(),I("div",tJe,[E("div",nJe,[m(s)?(h(),I("div",aJe,[E("button",{class:"cancel",onClick:b[3]||(b[3]=ve($=>A.$router.push("/profile/sports"),["prevent"]))},_(A.$t("buttons.BACK")),1)])):(h(),I("div",sJe,[E("button",{onClick:b[4]||(b[4]=$=>A.$router.push("/profile/edit/sports"))},_(A.$t("user.PROFILE.EDIT_SPORTS_PREFERENCES")),1),E("button",{onClick:b[5]||(b[5]=$=>A.$router.push("/"))},_(A.$t("common.HOME")),1)]))]),E("table",null,[E("thead",null,[E("tr",null,[E("th",null,_(A.$t("user.PROFILE.SPORT.COLOR")),1),E("th",rJe,_(A.$t("workouts.SPORT",0)),1),E("th",null,_(A.$t("workouts.WORKOUT",0)),1),E("th",null,_(A.$t("equipments.EQUIPMENT",0)),1),E("th",null,_(A.$t("user.PROFILE.SPORT.IS_ACTIVE")),1),E("th",null,[E("div",iJe,[E("span",null,_(A.$t("user.PROFILE.SPORT.STOPPED_SPEED_THRESHOLD")),1),E("span",null," ("+_(`${m(a).imperial_units?"mi":"km"}/h`)+") ",1)])]),m(s)?(h(),I("th",oJe,_(A.$t("user.PROFILE.SPORT.ACTION")),1)):M("",!0)])]),E("tbody",null,[(h(!0),I(_e,null,Le(m(r),$=>(h(),I("tr",{key:$.id},[E("td",null,[E("span",uJe,_(A.$t("user.PROFILE.SPORT.COLOR")),1),N($.id)?$e((h(),I("input",{key:0,class:"sport-color",type:"color","onUpdate:modelValue":b[6]||(b[6]=z=>m(p).color=z)},null,512)),[[st,m(p).color]]):(h(),j(P,{key:1,title:$.translatedLabel,"sport-label":$.label,color:$.color?$.color:m(c)[$.label]},null,8,["title","sport-label","color"]))]),E("td",{class:Te(["sport-label",{"disabled-sport":!$.is_active}])},[E("span",lJe,_(A.$t("user.PROFILE.SPORT.LABEL")),1),N($.id)?(h(),I(_e,{key:0},[H(_($.translatedLabel),1)],64)):(h(),j(C,{key:1,to:`/profile/sports/${$.id}`},{default:ue(()=>[H(_($.translatedLabel),1)]),_:2},1032,["to"])),$.is_active?M("",!0):(h(),I("span",cJe," ("+_(A.$t("user.PROFILE.SPORT.DISABLED_BY_ADMIN"))+") ",1)),m(l)&&N($.id)?(h(),I("i",dJe)):M("",!0),m(u)&&m(p).sport_id===$.id?(h(),j(D,{key:4,message:m(u)},null,8,["message"])):M("",!0)],2),E("td",{class:Te(["text-center",{"disabled-sport":!$.is_active}])},[E("span",EJe,_(A.$t("workouts.WORKOUT",0)),1),E("i",{class:Te(`fa fa${m(a).sports_list.includes($.id)?"-check":""}`),"aria-hidden":"true"},null,2)],2),E("td",{class:Te(["text-center",{"disabled-sport":!$.is_active}])},[E("span",pJe,_(A.$t("equipments.EQUIPMENT",0)),1),E("i",{class:Te(`fa fa${$.default_equipments.length>0?"-check":""}`),"aria-hidden":"true"},null,2)],2),E("td",{class:Te(["text-center",{"disabled-sport":!$.is_active}])},[E("span",fJe,_(A.$t("user.PROFILE.SPORT.IS_ACTIVE")),1),N($.id)&&$.is_active?(h(),I("input",{key:0,type:"checkbox",checked:$.is_active_for_user,onChange:b[7]||(b[7]=(...z)=>m(T)&&m(T)(...z))},null,40,mJe)):(h(),I("i",{key:1,class:Te(`fa fa${$.is_active_for_user?"-check":""}`),"aria-hidden":"true"},null,2))],2),E("td",{class:Te(["text-center",{"disabled-sport":!$.is_active}])},[E("span",TJe,_(A.$t("user.PROFILE.SPORT.STOPPED_SPEED_THRESHOLD"))+" "+_(`${m(a).imperial_units?"mi":"km"}/h`),1),N($.id)&&$.is_active?$e((h(),I("input",{key:0,class:"threshold-input",type:"number",min:"0",step:"0.1","onUpdate:modelValue":b[8]||(b[8]=z=>m(p).stopped_speed_threshold=z)},null,512)),[[st,m(p).stopped_speed_threshold]]):(h(),I("span",_Je,[W(F,{distance:$.stopped_speed_threshold,unitFrom:"km",speed:!0,useImperialUnits:m(a).imperial_units,displayUnit:!1},null,8,["distance","useImperialUnits"])]))],2),m(s)?(h(),I("td",hJe,[E("span",SJe,_(A.$t("user.PROFILE.SPORT.ACTION")),1),m(p).sport_id===0?(h(),I("button",{key:0,onClick:z=>g($)},_(A.$t("buttons.EDIT")),9,AJe)):M("",!0),N($.id)?(h(),I("div",OJe,[E("button",{disabled:m(l),onClick:b[9]||(b[9]=ve(z=>m(O)(m(a)),["prevent"]))},_(A.$t("buttons.SUBMIT")),9,gJe),E("button",{disabled:m(l),class:"warning",onClick:b[10]||(b[10]=ve(z=>m(f)(!0),["prevent"]))},_(A.$t("buttons.RESET")),9,IJe),E("button",{disabled:m(l),onClick:b[11]||(b[11]=z=>g(null))},_(A.$t("buttons.CANCEL")),9,RJe)])):M("",!0)])):M("",!0)]))),128))])]),m(s)?(h(),I("div",NJe,[E("button",{class:"cancel",onClick:b[12]||(b[12]=ve($=>A.$router.push("/profile/sports"),["prevent"]))},_(A.$t("buttons.BACK")),1)])):(h(),I("div",bJe,[E("button",{onClick:b[13]||(b[13]=$=>A.$router.push("/profile/edit/sports"))},_(A.$t("user.PROFILE.EDIT_SPORTS_PREFERENCES")),1),E("button",{onClick:b[14]||(b[14]=$=>A.$router.push("/"))},_(A.$t("common.HOME")),1)]))])):M("",!0)])}}}),C0=ie(vJe,[["__scopeId","data-v-6c042f49"]]),CJe={class:"about-text"},DJe=["innerHTML"],PJe=["href"],LJe={href:"https://github.com/SamR1/FitTrackee",target:"_blank",rel:"noopener noreferrer"},yJe={key:0},$Je=["href"],kJe={key:1},UJe=["href"],wJe={class:"about-instance"},MJe=["innerHTML"],WJe=ee({__name:"About",setup(e){const t=ke(),n=w(()=>t.getters[K.GETTERS.APP_CONFIG]),a=w(()=>i()),s=w(()=>t.getters[K.GETTERS.LANGUAGE]),r=w(()=>o());function i(){const u={};return n.value.weather_provider==="visualcrossing"&&(u.name="Visual Crossing",u.url="https://www.visualcrossing.com"),u}function o(){let u="https://samr1.github.io/FitTrackee/";return s.value==="fr"&&(u+="fr/"),u}return(u,l)=>{const c=re("i18n-t");return h(),I("div",CJe,[E("div",null,[E("p",{class:"error-message",innerHTML:u.$t("about.FITTRACKEE_DESCRIPTION")},null,8,DJe),E("p",null,[l[0]||(l[0]=E("i",{class:"fa fa-book fa-padding","aria-hidden":"true"},null,-1)),E("a",{class:"documentation-link",href:r.value,target:"_blank",rel:"noopener noreferrer"},_(Ve(u.$t("common.DOCUMENTATION"))),9,PJe)]),E("p",null,[l[1]||(l[1]=E("i",{class:"fa fa-github fa-padding","aria-hidden":"true"},null,-1)),E("a",LJe,_(u.$t("about.SOURCE_CODE")),1)]),E("p",null,[l[3]||(l[3]=E("i",{class:"fa fa-balance-scale fa-padding","aria-hidden":"true"},null,-1)),W(c,{keypath:"about.FITTRACKEE_LICENSE"},{default:ue(()=>l[2]||(l[2]=[E("a",{href:"https://choosealicense.com/licenses/agpl-3.0/",target:"_blank",rel:"noopener noreferrer"},"AGPLv3",-1)])),_:1})]),n.value.admin_contact?(h(),I("div",yJe,[l[4]||(l[4]=E("i",{class:"fa fa-envelope-o fa-padding","aria-hidden":"true"},null,-1)),E("a",{href:`mailto:${n.value.admin_contact}`},_(u.$t("about.CONTACT_ADMIN")),9,$Je)])):M("",!0),a.value&&a.value.name?(h(),I("div",kJe,[H(_(u.$t("about.WEATHER_DATA_FROM"))+" ",1),E("a",{href:a.value.url,target:"_blank",rel:"nofollow noopener"},_(a.value.name),9,UJe)])):M("",!0),n.value.about?(h(),I(_e,{key:2},[E("p",wJe,_(u.$t("about.ABOUT_THIS_INSTANCE")),1),E("div",{innerHTML:m(Xi)(n.value.about)},null,8,MJe)],64)):M("",!0)])])}}}),zJe=ie(WJe,[["__scopeId","data-v-ed135ec0"]]),FJe={},xJe={id:"bike"};function BJe(e,t){return h(),I("div",xJe,t[0]||(t[0]=[E("img",{class:"bike-img",src:"/img/bike.svg",alt:"mountain bike"},null,-1)]))}const jg=ie(FJe,[["render",BJe],["__scopeId","data-v-dc181e30"]]),GJe={id:"about",class:"view"},HJe={class:"container"},VJe={class:"container-sub"},KJe={class:"container-sub about-details"},jJe=ee({__name:"AboutView",setup(e){return(t,n)=>(h(),I("div",GJe,[E("div",HJe,[E("div",VJe,[W(jg)]),E("div",KJe,[W(zJe)])])]))}}),qJe=ie(jJe,[["__scopeId","data-v-ef9c7198"]]),YJe={id:"error"},XJe={class:"error-content"},QJe=ee({__name:"Error",props:{title:{},message:{},buttonText:{},path:{default:"/"}},setup(e){const t=e,{buttonText:n,title:a,message:s,path:r}=he(t);return(i,o)=>(h(),I("div",YJe,[E("div",XJe,[E("h1",null,_(m(a)),1),E("p",null,_(m(s)),1),m(n)?(h(),I("button",{key:0,onClick:o[0]||(o[0]=u=>i.$router.push(m(r))),class:"upper"},_(m(n)),1)):M("",!0)])]))}}),ZJe=ie(QJe,[["__scopeId","data-v-48ec856d"]]),gf=ee({__name:"NotFound",props:{target:{default:"PAGE"}},setup(e){const t=e,{target:n}=he(t),a=de(),s=de(!1);St(()=>r());function r(){a.value=setTimeout(()=>{s.value=!0},500)}return pt(()=>{a.value&&clearTimeout(a.value)}),(i,o)=>s.value?(h(),j(ZJe,{key:0,title:"404",message:i.$t(`error.NOT_FOUND.${m(n)}`),"button-text":i.$t("common.HOME")},null,8,["message","button-text"])):M("",!0)}}),JJe={id:"admin",class:"view"},eet={key:0,class:"container"},tet=ee({__name:"AdminView",setup(e){const t=ke(),n=w(()=>t.getters[K.GETTERS.APP_CONFIG]),a=w(()=>t.getters[K.GETTERS.APP_STATS]),s=w(()=>t.getters[X.GETTERS.IS_ADMIN]),r=w(()=>t.getters[X.GETTERS.USER_LOADING]);return Et(()=>t.dispatch(K.ACTIONS.GET_APPLICATION_STATS)),(i,o)=>{const u=re("router-view");return h(),I("div",JJe,[r.value?M("",!0):(h(),I("div",eet,[s.value?(h(),j(u,{key:0,appConfig:n.value,appStatistics:a.value},null,8,["appConfig","appStatistics"])):(h(),j(gf,{key:1})),o[0]||(o[0]=E("div",{id:"bottom"},null,-1))]))])}}}),net=ie(tet,[["__scopeId","data-v-5eee0876"]]),qg="/img/workouts/mountains.svg",aet=["alt"],Yg=ee({__name:"StaticMap",props:{workout:{},displayHover:{type:Boolean,default:!1}},setup(e){const t=e,{displayHover:n}=he(t),a=`${uo()}workouts/map/${t.workout.map}`;return(s,r)=>{const i=re("router-link");return h(),I("div",{class:Te(["static-map",{"display-hover":m(n)}])},[m(n)?(h(),I("img",{key:0,src:a,alt:s.$t("workouts.WORKOUT_MAP")},null,8,aet)):(h(),j(i,{key:1,class:"bg-map-image",to:{name:"Workout",params:{workoutId:s.workout.id}},style:Wa({backgroundImage:`url(${a})`}),"aria-label":s.$t("workouts.WORKOUT_MAP")},null,8,["to","style","aria-label"])),r[0]||(r[0]=E("div",{class:"map-attribution"},[E("a",{class:"map-attribution-text",href:"https://www.openstreetmap.org/copyright",target:"_blank",rel:"noopener noreferrer"}," © OpenStreetMap ")],-1))],2)}}}),set={class:"timeline-workout"},ret={class:"box"},iet={class:"workout-user-date"},oet={class:"workout-user"},uet=["datetime","title"],cet={class:"workout-map"},det={class:"no-map"},Eet={class:"img"},pet={class:"data"},fet={key:0},met={class:"data"},Tet={key:0,class:"data elevation"},_et=["alt"],het={class:"data-values"},Aet={key:1,class:"data altitude"},Oet={class:"data-values"},get=ee({__name:"WorkoutCard",props:{user:{},useImperialUnits:{type:Boolean},workout:{default:()=>({})},sport:{default:()=>({})}},setup(e){const t=e,n=ke(),{user:a,workout:s,sport:r,useImperialUnits:i}=he(t),o=w(()=>n.getters[K.GETTERS.LOCALE]),u=w(()=>jn(s.value.workout_date,a.value.timezone,a.value.date_format));function l(p){return p.with_gpx&&p.min_alt!==null&&p.max_alt!==null}function c(p){return l(p)&&p.ascent!==null&&p.descent!==null}return(p,d)=>{var R;const f=re("router-link"),T=re("SportImage"),O=re("Distance");return h(),I("div",set,[E("div",ret,[E("div",iet,[E("div",oet,[W(lo,{user:m(a)},null,8,["user"]),m(a).username?(h(),j(f,{key:0,class:"workout-user-name",to:{name:"User",params:{username:m(a).username}}},{default:ue(()=>[H(_(m(a).username),1)]),_:1},8,["to"])):M("",!0)]),m(s).id?(h(),j(f,{key:0,class:"workout-title",to:{name:"Workout",params:{workoutId:m(s).id}}},{default:ue(()=>[H(_(m(s).title),1)]),_:1},8,["to"])):M("",!0),m(s).workout_date&&m(a)?(h(),I("time",{key:1,class:"workout-date",datetime:u.value,title:u.value},_(m(KD)(new Date(m(s).workout_date),new Date,{addSuffix:!0,locale:o.value})),9,uet)):M("",!0)]),E("div",cet,[m(s).with_gpx?(h(),j(Yg,{key:0,workout:m(s)},null,8,["workout"])):m(s).id?(h(),j(f,{key:1,to:{name:"Workout",params:{workoutId:m(s).id}}},{default:ue(()=>[E("div",det,_(p.$t("workouts.NO_MAP")),1)]),_:1},8,["to"])):M("",!0)]),E("div",{class:Te(["workout-data",{"without-elevation":!l(m(s))}]),onClick:d[0]||(d[0]=g=>m(s).id?p.$router.push({name:"Workout",params:{workoutId:m(s).id}}):null)},[E("div",Eet,[(R=m(r))!=null&&R.label?(h(),j(T,{key:0,"sport-label":m(r).label,color:m(r).color},null,8,["sport-label","color"])):M("",!0)]),E("div",pet,[d[1]||(d[1]=E("i",{class:"fa fa-clock-o","aria-hidden":"true"},null,-1)),m(s)?(h(),I("span",fet,_(m(s).moving),1)):M("",!0)]),E("div",met,[d[2]||(d[2]=E("i",{class:"fa fa-road","aria-hidden":"true"},null,-1)),m(s).id?(h(),j(O,{key:0,distance:m(s).distance,digits:3,unitFrom:"km",useImperialUnits:m(i)},null,8,["distance","useImperialUnits"])):M("",!0)]),l(m(s))?(h(),I("div",Tet,[E("img",{class:"mountains",src:qg,alt:p.$t("workouts.ELEVATION")},null,8,_et),E("div",het,[m(s).id?(h(),j(O,{key:0,distance:m(s).min_alt,unitFrom:"m",displayUnit:!1,useImperialUnits:m(i)},null,8,["distance","useImperialUnits"])):M("",!0),d[3]||(d[3]=H("/ ")),m(s).id?(h(),j(O,{key:1,distance:m(s).max_alt,unitFrom:"m",useImperialUnits:m(i)},null,8,["distance","useImperialUnits"])):M("",!0)])])):M("",!0),c(m(s))?(h(),I("div",Aet,[d[6]||(d[6]=E("i",{class:"fa fa-location-arrow","aria-hidden":"true"},null,-1)),E("div",Oet,[d[4]||(d[4]=H(" +")),m(s).id?(h(),j(O,{key:0,distance:m(s).ascent,unitFrom:"m",displayUnit:!1,useImperialUnits:m(i)},null,8,["distance","useImperialUnits"])):M("",!0),d[5]||(d[5]=H("/- ")),m(s).id?(h(),j(O,{key:1,distance:m(s).descent,unitFrom:"m",useImperialUnits:m(i)},null,8,["distance","useImperialUnits"])):M("",!0)])])):M("",!0)],2)])])}}}),D0=ie(get,[["__scopeId","data-v-ef89664d"]]),Iet={},Ret={class:"no-workouts box"};function Net(e,t){const n=re("router-link");return h(),I("div",Ret,[E("div",null,[H(_(e.$t("workouts.NO_WORKOUTS"))+" ",1),W(n,{to:"/workouts/add"},{default:ue(()=>[H(_(e.$t("workouts.UPLOAD_FIRST_WORKOUT")),1)]),_:1})])])}const If=ie(Iet,[["render",Net],["__scopeId","data-v-b0c91cc6"]]),is={ligthMode:{text:"#666",line:"rgba(0, 0, 0, 0.1)"},darkMode:{text:"#a1a1a1",line:"#3f3f3f"}},bet=(e,t,n,a=!1)=>{const s={speed:{label:t("workouts.SPEED"),backgroundColor:["transparent"],borderColor:[a?"#5f5c97":"#8884d8"],borderWidth:2,data:[],yAxisID:"ySpeed"},elevation:{label:t("workouts.ELEVATION"),backgroundColor:[a?"#303030":"#e5e5e5"],borderColor:[a?"#222222":"#cccccc"],borderWidth:1,fill:!0,data:[],yAxisID:"yElevation"}},r=[],i=[],o=[];return e.map(u=>{r.push(cu("km",u.distance,n)),i.push(u.duration),s.speed.data.push(cu("km",u.speed,n)),u.elevation!==void 0&&s.elevation.data.push(cu("m",u.elevation,n)),o.push({latitude:u.latitude,longitude:u.longitude})}),{distance_labels:r,duration_labels:i,datasets:s,coordinates:o}},vet=e=>{const t=e.length;if(t===0)return{};const n={};return e.map(a=>{n[a.sport_id]||(n[a.sport_id]={count:0,percentage:0}),n[a.sport_id].count+=1,n[a.sport_id].percentage=n[a.sport_id].count/t}),n},Zi={order:"desc",order_by:"workout_date"},Cet={id:"timeline"},Det={class:"section-title"},Pet={key:0},Let={key:1},yet={key:1,class:"more-workouts"},Zo=5,$et=ee({__name:"Timeline",props:{sports:{},user:{}},setup(e){const t=e,n=ke(),{sports:a,user:s}=he(t),r=de(1),i=t.user.nb_workouts>=Zo?Zo:t.user.nb_workouts;Et(()=>l());const o=w(()=>n.getters[ge.GETTERS.TIMELINE_WORKOUTS]),u=w(()=>o.value.length>0?o.value[o.value.length-1].previous_workout!==null:!1);function l(){n.dispatch(ge.ACTIONS.GET_TIMELINE_WORKOUTS,{page:r.value,per_page:Zo,...Zi})}function c(){r.value+=1,n.dispatch(ge.ACTIONS.GET_MORE_TIMELINE_WORKOUTS,{page:r.value,per_page:Zo,...Zi})}return(p,d)=>(h(),I("div",Cet,[E("div",Det,_(p.$t("workouts.LATEST_WORKOUTS")),1),m(s).nb_workouts>0&&o.value.length===0?(h(),I("div",Pet,[(h(!0),I(_e,null,Le([...Array(m(i)).keys()],f=>(h(),j(D0,{user:m(s),useImperialUnits:m(s).imperial_units,key:f},null,8,["user","useImperialUnits"]))),128))])):(h(),I("div",Let,[(h(!0),I(_e,null,Le(o.value,f=>(h(),j(D0,{workout:f,sport:o.value.length>0?m(a).filter(T=>T.id===f.sport_id)[0]:null,user:m(s),useImperialUnits:m(s).imperial_units,key:f.id},null,8,["workout","sport","user","useImperialUnits"]))),128)),o.value.length===0?(h(),j(If,{key:0})):M("",!0),u.value?(h(),I("div",yet,[E("button",{onClick:c},_(p.$t("workouts.LOAD_MORE_WORKOUT")),1)])):M("",!0)]))]))}}),ket=ie($et,[["__scopeId","data-v-e0964959"]]),Uet=["title"],Xg=ee({__name:"CalendarWorkout",props:{displayHARecord:{type:Boolean},workout:{},sportLabel:{},sportColor:{}},setup(e){const t=e,{displayHARecord:n,workout:a,sportLabel:s,sportColor:r}=he(t);return(i,o)=>{const u=re("SportImage"),l=re("router-link");return h(),j(l,{class:"calendar-workout",to:{name:"Workout",params:{workoutId:m(a).id}}},{default:ue(()=>[W(u,{"sport-label":m(s),title:m(a).title,color:m(r)},null,8,["sport-label","title","color"]),E("sup",null,[m(a).records.length>0?(h(),I("i",{key:0,class:"fa fa-trophy custom-fa-small","aria-hidden":"true",title:m(a).records.filter(c=>m(n)?!0:c.record_type!=="HA").map(c=>` ${i.$t(`workouts.RECORD_${c.record_type}`)}`)[0]},null,8,Uet)):M("",!0)])]),_:1},8,["to"])}}}),wet={class:"donut-chart"},Met={height:"34",width:"34",viewBox:"0 0 34 34"},Wet=["stroke","stroke-dashoffset","transform"],P0=16,L0=16,y0=14,zet=ee({__name:"DonutChart",props:{colors:{},datasets:{}},setup(e){const t=e,{colors:n,datasets:a}=he(t);let s=-90;const r=2*Math.PI*y0;function i(u,l){return l-u*l}function o(u,l){const c=`rotate(${s}, ${P0}, ${L0})`;return s=l*360+s,c}return(u,l)=>(h(),I("div",wet,[(h(),I("svg",Met,[(h(!0),I(_e,null,Le(Object.entries(m(a)),(c,p)=>(h(),I("g",{key:p},[E("circle",{cx:P0,cy:L0,r:y0,fill:"transparent",stroke:m(n)[+c[0]],"stroke-dashoffset":i(c[1].percentage,r),"stroke-dasharray":r,"stroke-width":"3","stroke-opacity":"0.8",transform:o(p,c[1].percentage)},null,8,Wet)]))),128))]))]))}}),Fet={class:"calendar-workouts-chart"},xet=["id"],Bet={class:"workouts-count"},Get={key:0,class:"workouts-pane"},Het=["id"],Vet=ee({__name:"CalendarWorkoutsChart",props:{colors:{},datasets:{},sports:{},workouts:{},displayHARecord:{type:Boolean},index:{}},setup(e){const t=e;let n=0;const{colors:a,datasets:s,index:r,sports:i,workouts:o}=he(t),u=de(!0);function l(){const d=document.getElementById(`workouts-pane-${r.value}`);return d!=null&&d.children&&(d==null?void 0:d.children.length)>0?d:null}async function c(d){var T;d.preventDefault(),d.stopPropagation(),u.value=!u.value,await fn();const f=l();u.value?(T=document.getElementById(`workouts-donut-${r.value}`))==null||T.focus():(f==null?void 0:f.children[0]).focus()}function p(d){if(!u.value){if(!u.value&&(d.key==="Tab"||d.keyCode===9)){d.preventDefault(),d.stopPropagation();const f=l();f&&(d.shiftKey?(n-=1,n<0&&(n=f.children.length-1)):(n+=1,n>=f.children.length&&(n=0)),f.children[n].focus())}d.key==="Escape"&&c(d)}}return St(()=>{document.addEventListener("keydown",p)}),pt(()=>{document.removeEventListener("keydown",p)}),(d,f)=>{const T=ZR("click-outside");return h(),I("div",Fet,[E("button",{class:"workouts-chart transparent",id:`workouts-donut-${m(r)}`,onClick:c},[E("div",Bet,_(m(o).length),1),W(zet,{datasets:m(s),colors:m(a)},null,8,["datasets","colors"])],8,xet),u.value?M("",!0):(h(),I("div",Get,[$e((h(),I("div",{class:"more-workouts",id:`workouts-pane-${m(r)}`},[E("button",{class:"calendar-more-close transparent",onClick:c},f[0]||(f[0]=[E("i",{class:"fa fa-times","aria-hidden":"true"},null,-1)])),(h(!0),I(_e,null,Le(m(o),(O,R)=>(h(),j(Xg,{key:R,displayHARecord:d.displayHARecord,workout:O,sportLabel:m(mf)(O,m(i)),sportColor:m(Tf)(O,m(i))},null,8,["displayHARecord","workout","sportLabel","sportColor"]))),128))],8,Het)),[[T,c]])]))])}}}),$0=ie(Vet,[["__scopeId","data-v-796e8c43"]]),Ket={class:"calendar-workouts"},jet={class:"desktop-display"},qet={key:0,class:"workouts-display"},Yet={key:1,class:"donut-display"},Xet={class:"mobile-display"},Qet={key:0,class:"donut-display"},k0=6,Zet=ee({__name:"CalendarWorkouts",props:{displayHARecord:{type:Boolean},workouts:{},sports:{},index:{}},setup(e){const t=e,{displayHARecord:n,index:a,sports:s,workouts:r}=he(t),i=w(()=>vet(t.workouts)),o=w(()=>oGe(t.sports));return(u,l)=>(h(),I("div",Ket,[E("div",jet,[m(r).length<=k0?(h(),I("div",qet,[(h(!0),I(_e,null,Le(m(r).slice(0,k0),(c,p)=>(h(),j(Xg,{key:p,displayHARecord:m(n),workout:c,sportLabel:m(mf)(c,m(s)),sportColor:m(Tf)(c,m(s))},null,8,["displayHARecord","workout","sportLabel","sportColor"]))),128))])):(h(),I("div",Yet,[W($0,{workouts:m(r),sports:m(s),datasets:i.value,colors:o.value,displayHARecord:m(n),index:m(a)},null,8,["workouts","sports","datasets","colors","displayHARecord","index"])]))]),E("div",Xet,[m(r).length>0?(h(),I("div",Qet,[W($0,{workouts:m(r),sports:m(s),datasets:i.value,colors:o.value,displayHARecord:m(n),index:m(a)},null,8,["workouts","sports","datasets","colors","displayHARecord","index"])])):M("",!0)])]))}}),Jet={class:"calendar-cells"},ett={class:"calendar-cell-day"},ttt=ee({__name:"CalendarCells",props:{currentDay:{},displayHARecord:{type:Boolean},endDate:{},sports:{},startDate:{},timezone:{},weekStartingMonday:{type:Boolean},workouts:{}},setup(e){const t=e,{currentDay:n,displayHARecord:a,endDate:s,sports:r,startDate:i,timezone:o,weekStartingMonday:u,workouts:l}=he(t),c=de([]);St(()=>p());function p(){c.value=[];let T=i.value;for(;T<=s.value;){const O=[];for(let R=0;R<7;R++)O.push(T),T=Eo(T,1);c.value.push(O)}}function d(T){return u.value?[5,6].includes(T):[0,6].includes(T)}function f(T,O){return O?O.filter(R=>KS(pc(R.workout_date,o.value),T)).reverse():[]}return Me(()=>t.currentDay,()=>p()),(T,O)=>(h(),I("div",Jet,[(h(!0),I(_e,null,Le(c.value,(R,g)=>(h(),I("div",{class:"calendar-row",key:g},[(h(!0),I(_e,null,Le(R,(N,S)=>(h(),I("div",{class:Te(["calendar-cell",{"disabled-cell":!m(qD)(N,m(n)),"week-end":d(S),today:m(YD)(N)}]),key:S},[W(Zet,{workouts:f(N,m(l)),sports:m(r),displayHARecord:m(a),index:S},null,8,["workouts","sports","displayHARecord","index"]),E("div",ett,_(m(mn)(N,"d")),1)],2))),128))]))),128))]))}}),ntt={class:"calendar-days"},att=ee({__name:"CalendarDays",props:{startDate:{},localeOptions:{}},setup(e){const t=e,n=[];for(let a=0;a<7;a++)n.push(Eo(t.startDate,a));return(a,s)=>(h(),I("div",ntt,[(h(),I(_e,null,Le(n,(r,i)=>E("div",{class:"calendar-day",key:i},_(m(mn)(r,a.localeOptions.code==="eu"?"EEEEEE.":"EEE",{locale:a.localeOptions})),1)),64))]))}}),stt={class:"calendar-header"},rtt=["aria-label"],itt={class:"calendar-month"},ott=["aria-label"],utt=ee({__name:"CalendarHeader",props:{day:{},localeOptions:{}},emits:["displayNextMonth","displayPreviousMonth"],setup(e,{emit:t}){const n=e,a=t,{day:s,localeOptions:r}=he(n);return(i,o)=>(h(),I("div",stt,[E("button",{class:"calendar-arrow calendar-arrow-left transparent",onClick:o[0]||(o[0]=u=>a("displayPreviousMonth")),"aria-label":i.$t("common.PREVIOUS")},o[2]||(o[2]=[E("i",{class:"fa fa-chevron-left","aria-hidden":"true"},null,-1)]),8,rtt),E("div",itt,[E("span",null,_(m(mn)(m(s),"MMM yyyy",{locale:m(r)})),1)]),E("button",{class:"calendar-arrow calendar-arrow-right transparent",onClick:o[1]||(o[1]=u=>a("displayNextMonth")),"aria-label":i.$t("common.NEXT")},o[3]||(o[3]=[E("i",{class:"fa fa-chevron-right","aria-hidden":"true"},null,-1)]),8,ott)]))}}),ltt={id:"user-calendar"},ctt={class:"calendar-card box"},U0="yyyy-MM-dd",dtt=ee({__name:"index",props:{sports:{},user:{}},setup(e){const t=e,n=ke(),{sports:a,user:s}=he(t),r=de(new Date),i=de(u0(r.value,s.value.weekm)),o=w(()=>n.getters[ge.GETTERS.CALENDAR_WORKOUTS]),u=w(()=>n.getters[K.GETTERS.LOCALE]);Et(()=>l());function l(){i.value=u0(r.value,t.user.weekm);const d={from:mn(i.value.start,U0),to:mn(i.value.end,U0),page:1,per_page:100,...Zi};n.dispatch(ge.ACTIONS.GET_CALENDAR_WORKOUTS,d)}function c(){r.value=gr(r.value,1),l()}function p(){r.value=ki(r.value,1),l()}return(d,f)=>(h(),I("div",ltt,[E("div",ctt,[W(utt,{day:r.value,"locale-options":u.value,onDisplayNextMonth:c,onDisplayPreviousMonth:p},null,8,["day","locale-options"]),W(att,{"start-date":i.value.start,"locale-options":u.value},null,8,["start-date","locale-options"]),W(ttt,{currentDay:r.value,displayHARecord:m(s).display_ascent,"end-date":i.value.end,sports:m(a),"start-date":i.value.start,timezone:m(s).timezone,workouts:o.value,weekStartingMonday:m(s).weekm},null,8,["currentDay","displayHARecord","end-date","sports","start-date","timezone","workouts","weekStartingMonday"])])]))}}),Qg={data:{type:Object,required:!0},options:{type:Object,default:()=>({})},plugins:{type:Array,default:()=>[]},datasetIdKey:{type:String,default:"label"},updateMode:{type:String,default:void 0}},Ett={ariaLabel:{type:String},ariaDescribedby:{type:String}},ptt={type:{type:String,required:!0},destroyDelay:{type:Number,default:0},...Qg,...Ett},ftt=m1[0]==="2"?(e,t)=>Object.assign(e,{attrs:t}):(e,t)=>Object.assign(e,t);function nr(e){return eo(e)?ut(e):e}function mtt(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:e;return eo(t)?new Proxy(e,{}):e}function Ttt(e,t){const n=e.options;n&&t&&Object.assign(n,t)}function Zg(e,t){e.labels=t}function Jg(e,t,n){const a=[];e.datasets=t.map(s=>{const r=e.datasets.find(i=>i[n]===s[n]);return!r||!s.data||a.includes(r)?{...s}:(a.push(r),Object.assign(r,s),r)})}function _tt(e,t){const n={labels:[],datasets:[]};return Zg(n,e.labels),Jg(n,e.datasets,t),n}const htt=ee({props:ptt,setup(e,t){let{expose:n,slots:a}=t;const s=de(null),r=to(null);n({chart:r});const i=()=>{if(!s.value)return;const{type:l,data:c,options:p,plugins:d,datasetIdKey:f}=e,T=_tt(c,f),O=mtt(T,c);r.value=new xE(s.value,{type:l,data:O,options:{...p},plugins:d})},o=()=>{const l=ut(r.value);l&&(e.destroyDelay>0?setTimeout(()=>{l.destroy(),r.value=null},e.destroyDelay):(l.destroy(),r.value=null))},u=l=>{l.update(e.updateMode)};return St(i),pt(o),Me([()=>e.options,()=>e.data],(l,c)=>{let[p,d]=l,[f,T]=c;const O=ut(r.value);if(!O)return;let R=!1;if(p){const g=nr(p),N=nr(f);g&&g!==N&&(Ttt(O,g),R=!0)}if(d){const g=nr(d.labels),N=nr(T.labels),S=nr(d.datasets),A=nr(T.datasets);g!==N&&(Zg(O.config.data,g),R=!0),S&&S!==A&&(Jg(O.config.data,S,e.datasetIdKey),R=!0)}R&&fn(()=>{u(O)})},{deep:!0}),()=>Rn("canvas",{role:"img",ariaLabel:e.ariaLabel,ariaDescribedby:e.ariaDescribedby,ref:s},[Rn("p",{},[a.default?a.default():""])])}});function eI(e,t){return xE.register(t),ee({props:Qg,setup(n,a){let{expose:s}=a;const r=to(null),i=o=>{r.value=o==null?void 0:o.chart};return s({chart:r}),()=>Rn(htt,ftt({ref:i},{type:e,...n}))}})}const Stt=eI("bar",Z0),Att=eI("line",J0),ii=(e,t,n,a=!0,s="km")=>{const r=n?gn[s].defaultTarget:s;switch(e){case"average_speed":return`${t.toFixed(2)} ${r}/h`;case"average_duration":case"total_duration":return kQe(t,a);case"average_distance":case"average_ascent":case"average_descent":case"total_distance":case"total_ascent":case"total_descent":return`${t.toFixed(2)} ${r}`;default:return t.toString()}},Ott=ee({__name:"Chart",props:{datasets:{},labels:{},displayedData:{},displayedSportIds:{},fullStats:{type:Boolean},useImperialUnits:{type:Boolean},label:{}},setup(e){const t=e,{datasets:n,labels:a,displayedData:s,displayedSportIds:r,fullStats:i,useImperialUnits:o}=he(t),u=co(),{t:l}=$t(),c=w(()=>u.getters[K.GETTERS.DARK_MODE]),p=w(()=>Vl(c.value)),d=w(()=>({color:p.value?is.darkMode.line:is.ligthMode.line})),f=w(()=>({color:p.value?is.darkMode.text:is.ligthMode.text})),T=w(()=>s.value!=="average_workouts"&&s.value.startsWith("average")),O=w(()=>({labels:a.value,datasets:JSON.parse(JSON.stringify(n.value))})),R=w(()=>({responsive:!0,maintainAspectRatio:!1,animation:!1,layout:{padding:{top:i.value?40:22}},scales:{x:{stacked:!0,grid:{drawOnChartArea:!1,...d.value},border:{...d.value},ticks:{...f.value}},y:{stacked:!s.value.startsWith("average"),grid:{drawOnChartArea:!1,...d.value},border:{...d.value},ticks:{maxTicksLimit:6,callback:function(A){return ii(s.value,+A,o.value,!1,S(s.value))},...f.value},afterFit:function(A){A.width=i.value?90:60}}},plugins:{datalabels:{anchor:"end",align:"end",color:function(A){return T.value&&A.dataset.backgroundColor?A.dataset.backgroundColor[0]:f.value.color},rotation:function(A){return i.value&&A.chart.chartArea.width<580?310:0},display:function(A){return i.value&&A.chart.chartArea.width<300?!1:T.value?r.value.length==1?"auto":!1:!0},formatter:function(A,b){if(s.value.startsWith("average"))return ii(s.value,A,o.value,!1);{const y=b.chart.data.datasets.map(P=>P.data[b.dataIndex]).reduce((P,C)=>N(P,C),0);return b.datasetIndex===r.value.length-1&&y>0?ii(s.value,y,o.value,!1,S(s.value)):null}}},legend:{display:!1},tooltip:{interaction:{intersect:!0,mode:"index",position:T.value?"nearest":"average"},filter:function(A){return A.formattedValue!=="0"},callbacks:{label:function(A){let b=s.value==="average_workouts"?l("workouts.WORKOUT",0):l(`sports.${A.dataset.label}.LABEL`)||"";return b&&(b+=": "),A.parsed.y!==null&&(b+=ii(s.value,A.parsed.y,o.value,!0,S(s.value))),b},footer:function(A){if(s.value.startsWith("average"))return"";let b=0;return A.map(y=>{b+=y.parsed.y}),`${l("common.TOTAL")}: `+ii(s.value,b,o.value,!0,S(s.value))}}}}}));function g(A){return isNaN(A)?0:+A}function N(A,b){return g(A)+g(b)}function S(A){return A.includes("scent")?"m":"km"}return(A,b)=>(h(),I("div",{class:Te(["bar-chart",{minimal:!m(i)}])},[W(m(Stt),{data:O.value,options:R.value,"aria-label":A.label},null,8,["data","options","aria-label"])],2))}}),gtt=ie(Ott,[["__scopeId","data-v-893ee0af"]]),{locale:bl}=xr.global,tI={week:{api:"yyyy-MM-dd",chart:"MM/dd/yyyy"},month:{api:"yyyy-MM",chart:"MM/yyyy"},year:{api:"yyyy",chart:"yyyy"}},Itt=["average_ascent","average_descent","average_distance","average_duration","average_speed","total_workouts","total_duration","total_distance","total_ascent","total_descent"],Rtt=(e,t)=>{const n=[];for(let a=mHe(e.duration,e.start,t);a<=e.end;a=THe(e.duration,a))n.push(a);return n},oa=(e,t,n=!1)=>{const a={label:e,backgroundColor:[t],data:[]};return n?(a.type="line",a.borderColor=[t],a.spanGaps=!0):a.type="bar",a},Ntt=e=>{const t={average_ascent:[],average_descent:[],average_distance:[],average_duration:[],average_speed:[],average_workouts:[],total_workouts:[],total_distance:[],total_duration:[],total_ascent:[],total_descent:[]};return e.map(n=>{const a=n.color?n.color:ff[n.label];t.average_ascent.push(oa(n.label,a,!0)),t.average_descent.push(oa(n.label,a,!0)),t.average_distance.push(oa(n.label,a,!0)),t.average_duration.push(oa(n.label,a,!0)),t.average_speed.push(oa(n.label,a,!0)),t.total_workouts.push(oa(n.label,a)),t.total_distance.push(oa(n.label,a)),t.total_duration.push(oa(n.label,a)),t.total_ascent.push(oa(n.label,a)),t.total_descent.push(oa(n.label,a))}),t},btt=(e,t,n)=>{switch(e){case"average_speed":case"total_distance":case"total_ascent":case"total_descent":case"average_distance":case"average_ascent":case"average_descent":return cu(["average_speed","total_distance","average_distance"].includes(e)?"km":"m",t,n);default:case"total_workouts":case"total_duration":case"average_duration":return t}},zE=(e,t,n,a)=>mn(e,t==="week"?Ts(n,bl.value):a,{locale:Ms[bl.value]}),vtt=(e,t,n,a,s,r,i)=>{const o=Rtt(e,t),u=tI[e.duration],l=n.filter(f=>a.includes(f.id)),c=[],p=Ntt(l),d={};return l.map(f=>d[f.label]=f.id),o.map(f=>{const T=mn(f,u.api),O=zE(f,e.duration,i,u.chart);mn(f,e.duration==="week"?Ts(i,bl.value):u.chart,{locale:Ms[bl.value]}),c.push(O),Itt.map(R=>{p[R].map(g=>{g.data.push(T in s&&d[g.label]in s[T]?btt(R,s[T][d[g.label]][R],r):R.startsWith("average")?null:0)})})}),{labels:c,datasets:p}},Ctt=(e,t,n,a)=>{const s=n?1:0,r=t==="year"?Op(xd(e,9)):t==="week"?jl(ki(e,2),{weekStartsOn:s}):fo(ki(e,11)),i=t==="year"?jS(e):t==="week"?gp(e,{weekStartsOn:s}):po(e);return{duration:t,end:i,start:r,statsType:a}},Dtt=(e,t,n)=>{const{duration:a,start:s,end:r}=e,i=n?1:0;return{duration:a,end:a==="year"?jS(t?xd(r,1):Pu(r,1)):a==="week"?gp(t?oT(r,1):Fd(r,1),{weekStartsOn:i}):po(t?ki(r,1):gr(r,1)),start:a==="year"?Op(t?xd(s,1):Pu(s,1)):a==="week"?jl(t?oT(s,1):Fd(s,1),{weekStartsOn:i}):fo(t?ki(s,1):gr(s,1)),statsType:e.statsType}},w0=e=>{const t=e.reduce((a,s)=>(a||0)+(s||0),0);return+(e.length?(t||0)/e.length:0).toFixed(1)},Ptt=(e,t)=>{const n=e.label.toLowerCase(),a=t.label.toLowerCase();return n>a?1:n{const n=[],a={label:"workouts_average",backgroundColor:[],data:[]};let s=[];const r=e.map(i=>(i.label=t(`sports.${i.label}.LABEL`),i)).sort(Ptt);for(const i of r)a.data.push(w0(i.data)),a.backgroundColor.push(i.backgroundColor[0]),n.push(i.label),s.length>0?s=s.map((o,u)=>o+(i.data[u]||0)):s=i.data.map(o=>o||0);return{labels:n,datasets:{workouts_average:[a]},workoutsAverage:w0(s)}},ytt={class:"stats-chart"},$tt={key:0},ktt={key:1},Utt={class:"chart-radio"},wtt=["value","checked","disabled"],Mtt=["value","checked","disabled"],Wtt=["value","checked","disabled"],ztt={key:0},Ftt=["checked","disabled"],xtt={key:1},Btt=["value","checked","disabled"],Gtt={key:2},Htt=["value","checked","disabled"],Vtt={class:"workouts-average"},Ktt={key:0,class:"info-box"},jtt=ee({__name:"index",props:{sports:{},user:{},chartParams:{},displayedSportIds:{default:()=>[]},fullStats:{type:Boolean,default:!1},hideChartIfNoData:{type:Boolean,default:!1},isDisabled:{type:Boolean,default:!1},selectedTimeFrame:{default:null}},setup(e){const t=e,{sports:n,user:a,chartParams:s,displayedSportIds:r,fullStats:i,hideChartIfNoData:o,isDisabled:u}=he(t),l=ke(),{t:c}=$t(),p=de("total_distance"),d=w(()=>l.getters[wt.GETTERS.USER_STATS]),f=w(()=>tI[s.value.duration].chart),T=w(()=>zE(s.value.start,s.value.duration,a.value.date_format,f.value)),O=w(()=>zE(s.value.end,s.value.duration,a.value.date_format,f.value)),R=w(()=>vtt(s.value,a.value.weekm,n.value,r.value,d.value,a.value.imperial_units,a.value.date_format)),g=w(()=>R.value.datasets[p.value]),N=w(()=>R.value.labels),S=w(()=>Object.keys(d.value).length===0),A=w(()=>s.value.statsType),b=w(()=>Ltt(R.value.datasets.total_workouts,c));Et(()=>y(C(s.value,a.value)));function y(D){l.dispatch(wt.ACTIONS.GET_USER_STATS,{username:a.value.username,params:D})}function P(D){p.value=D.target.value}function C(D,F){return{from:mn(D.start,"yyyy-MM-dd"),to:mn(D.end,"yyyy-MM-dd"),time:D.duration==="week"?`week${F.weekm?"m":""}`:D.duration,type:A.value}}return Me(()=>s.value,async D=>{y(C(D,a.value))}),Me(()=>A.value,async D=>{p.value=D==="total"&&p.value==="average_speed"?"total_distance":`${A.value}_${p.value.split("_")[1]}`}),(D,F)=>(h(),I("div",ytt,[m(o)&&S.value?(h(),I("div",$tt,_(D.$t("workouts.NO_WORKOUTS")),1)):(h(),I("div",ktt,[E("div",Utt,[E("label",null,[E("input",{type:"radio",name:"value_type",value:`${A.value}_distance`,checked:p.value===`${A.value}_distance`,disabled:m(u),onClick:P},null,8,wtt),H(" "+_(D.$t("workouts.DISTANCE")),1)]),E("label",null,[E("input",{type:"radio",name:"value_type",value:`${A.value}_duration`,checked:p.value===`${A.value}_duration`,disabled:m(u),onClick:P},null,8,Mtt),H(" "+_(D.$t("workouts.DURATION")),1)]),E("label",null,[E("input",{type:"radio",name:"value_type",value:`${A.value}_workouts`,checked:p.value===`${A.value}_workouts`,disabled:m(u),onClick:P},null,8,Wtt),H(" "+_(D.$t("workouts.WORKOUT",2)),1)]),m(i)&&A.value==="average"?(h(),I("label",ztt,[E("input",{type:"radio",name:"value_type",value:"average_speed",checked:p.value==="average_speed",disabled:m(u),onClick:P},null,8,Ftt),H(" "+_(D.$t("workouts.SPEED")),1)])):M("",!0),m(i)?(h(),I("label",xtt,[E("input",{type:"radio",name:"value_type",value:`${A.value}_ascent`,checked:p.value===`${A.value}_ascent`,disabled:m(u),onClick:P},null,8,Btt),H(" "+_(D.$t("workouts.ASCENT")),1)])):M("",!0),m(i)?(h(),I("label",Gtt,[E("input",{type:"radio",name:"value_type",value:`${A.value}_descent`,checked:p.value===`${A.value}_descent`,disabled:m(u),onClick:P},null,8,Htt),H(" "+_(D.$t("workouts.DESCENT")),1)])):M("",!0)]),N.value.length>0||b.value.labels.length>0?(h(),j(gtt,{key:0,datasets:p.value==="average_workouts"?b.value.datasets.workouts_average:g.value,labels:p.value==="average_workouts"?b.value.labels:N.value,displayedData:p.value,displayedSportIds:m(r),fullStats:m(i),useImperialUnits:m(a).imperial_units,label:D.$t(`statistics.STATISTICS_CHARTS.${m(s).duration}`)+` (${T.value} - ${O.value})`},null,8,["datasets","labels","displayedData","displayedSportIds","fullStats","useImperialUnits","label"])):M("",!0),E("div",Vtt,[p.value==="average_workouts"&&D.selectedTimeFrame?(h(),I("div",Ktt,[F[0]||(F[0]=E("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1)),H(" "+_(D.$t("statistics.DATES"))+": "+_(T.value)+" - "+_(O.value)+", "+_(D.$t("statistics.WORKOUTS_AVERAGE"))+": "+_(b.value.workoutsAverage)+"/"+_(D.$t(`statistics.TIME_FRAMES.${D.selectedTimeFrame}`)),1)])):M("",!0)])]))]))}}),nI=ie(jtt,[["__scopeId","data-v-0473fee9"]]),qtt={class:"user-month-stats"},Ytt=ee({__name:"UserMonthStats",props:{sports:{},user:{}},setup(e){const t=e,{sports:n,user:a}=he(t),s=new Date,r={duration:"week",start:fo(s),end:po(s),statsType:"total"},i=n.value.map(o=>o.id);return(o,u)=>{const l=re("Card");return h(),I("div",qtt,[W(l,null,{title:ue(()=>[H(_(o.$t("dashboard.THIS_MONTH")),1)]),content:ue(()=>[W(nI,{sports:m(n),user:m(a),"chart-params":r,"displayed-sport-ids":m(i),"hide-chart-if-no-data":!0},null,8,["sports","user","displayed-sport-ids"])]),_:1})])}}}),Xtt=ie(Ytt,[["__scopeId","data-v-3131940a"]]),Qtt={class:"record"},Ztt={class:"record-type"},Jtt={class:"record-value"},ent={class:"record-date"},tnt=ee({__name:"SportRecordsTable",props:{record:{}},setup(e){const t=e,{record:n}=he(t);return(a,s)=>{const r=re("router-link");return h(),I("div",Qtt,[E("span",Ztt,_(Ve(m(n).label)),1),E("span",Jtt,_(m(n).value),1),E("span",ent,[W(r,{to:{name:"Workout",params:{workoutId:m(n).workout_id}}},{default:ue(()=>[E("time",null,_(m(n).workout_date),1)]),_:1},8,["to"])])])}}}),aI=ie(tnt,[["__scopeId","data-v-fce46986"]]),{locale:nnt}=xr.global,ant=(e,t,n,a)=>{const s="km",r=n?gn[s].defaultTarget:s,i="m",o=n?gn[i].defaultTarget:i;let u;switch(e.record_type){case"AS":case"MS":u=`${Kt(+e.value,s,r,2)} ${r}/h`;break;case"FD":u=`${Kt(+e.value,s,r,3)} ${r}`;break;case"HA":u=`${Kt(+e.value,i,o,2)} ${o}`;break;case"LD":u=e.value;break;default:throw new Error(`Invalid record type, expected: "AS", "FD", "HA", "LD", "MD", got: "${e.record_type}"`)}return{id:e.id,record_type:e.record_type,sport_id:e.sport_id,value:u,user:e.user,workout_date:jn(e.workout_date,t,a,!1),workout_id:e.workout_id}},sI=(e,t)=>{const n=e.label.toLowerCase(),a=t.label.toLowerCase();return n>a?1:n(r=Ts(r,nnt.value),e.filter(o=>s?!0:o.record_type!=="HA").reduce((o,u)=>{const l=t.find(c=>c.id===u.sport_id);return l&&l.label&&(i===null||l.id===i)&&(o[l.translatedLabel]===void 0&&(o[l.translatedLabel]={label:l.label,color:l.color,records:[]}),o[l.translatedLabel].records.push(ant(u,n,a,r))),o},{})),snt={class:"records-card"},rnt=ee({__name:"RecordsCard",props:{records:{},sportTranslatedLabel:{}},setup(e){const t=e,{records:n,sportTranslatedLabel:a}=he(t),s=ke(),{t:r}=$t(),i=w(()=>s.getters[K.GETTERS.LANGUAGE]),o=w(()=>i.value==="bg");function u(l){const c=[];return l.map(p=>{c.push({...p,label:r(`workouts.RECORD_${p.record_type}`)})}),c.sort(sI)}return(l,c)=>{const p=re("SportImage"),d=re("Card");return h(),I("div",snt,[W(d,null,{title:ue(()=>[W(p,{"sport-label":m(n).label,color:m(n).color},null,8,["sport-label","color"]),H(" "+_(m(a)),1)]),content:ue(()=>[(h(!0),I(_e,null,Le(u(m(n).records),f=>(h(),j(aI,{class:Te({"max-width":o.value}),record:f,key:f.id},null,8,["class","record"]))),128))]),_:1})])}}}),int=ie(rnt,[["__scopeId","data-v-97e7ddaa"]]),ont={class:"user-records-section"},unt={class:"section-title"},lnt={class:"user-records"},cnt={key:0,class:"no-records"},dnt=ee({__name:"index",props:{sports:{},user:{}},setup(e){const t=e,{t:n}=$t(),a=w(()=>rI(t.user.records,Kn(t.sports,n),t.user.timezone,t.user.imperial_units,t.user.display_ascent,t.user.date_format));return(s,r)=>(h(),I("div",ont,[E("div",unt,[r[0]||(r[0]=E("i",{class:"fa fa-trophy custom-fa-small","aria-hidden":"true"},null,-1)),H(" "+_(s.$t("workouts.RECORD",2)),1)]),E("div",lnt,[Object.keys(a.value).length===0?(h(),I("div",cnt,_(s.$t("workouts.NO_RECORDS")),1)):M("",!0),(h(!0),I(_e,null,Le(Object.keys(a.value).sort(),i=>(h(),j(int,{sportTranslatedLabel:i,records:a.value[i],key:i,useImperialUnits:s.user.imperial_units},null,8,["sportTranslatedLabel","records","useImperialUnits"]))),128))])]))}}),Ent=ie(dnt,[["__scopeId","data-v-fff33919"]]),pnt={id:"user-stats"},ld="km",cd="m",fnt=ee({__name:"index",props:{user:{}},setup(e){const t=e,{t:n}=$t(),{user:a}=he(t),s=w(()=>Af(a.value.total_duration,n)),r=a.value.imperial_units?gn[ld].defaultTarget:ld,i=w(()=>a.value.imperial_units?Kt(a.value.total_distance,ld,r,2):parseFloat(a.value.total_distance.toFixed(2))),o=a.value.imperial_units?gn[cd].defaultTarget:cd,u=w(()=>a.value.imperial_units?Kt(a.value.total_ascent,cd,o,2):parseFloat(a.value.total_ascent.toFixed(2)));return(l,c)=>(h(),I("div",pnt,[W(ka,{icon:"calendar",value:m(a).nb_workouts,text:l.$t("workouts.WORKOUT",m(a).nb_workouts)},null,8,["value","text"]),W(ka,{icon:"road",value:i.value,text:m(r)==="mi"?"miles":m(r)},null,8,["value","text"]),m(a).display_ascent?(h(),j(ka,{key:0,icon:"location-arrow",value:u.value,text:m(o)==="ft"?"feet":m(o)},null,8,["value","text"])):M("",!0),W(ka,{icon:"clock-o",value:s.value.days,text:s.value.duration},null,8,["value","text"]),m(a).display_ascent?M("",!0):(h(),j(ka,{key:1,icon:"tags",value:m(a).nb_sports,text:l.$t("workouts.SPORT",m(a).nb_sports)},null,8,["value","text"]))]))}}),mnt={},Tnt={class:"privacy-policy-message"};function _nt(e,t){const n=re("router-link"),a=re("i18n-t");return h(),I("div",Tnt,[E("span",null,[W(a,{keypath:"user.LAST_PRIVACY_POLICY_TO_VALIDATE"},{default:ue(()=>[W(n,{to:"/profile/edit/privacy-policy",class:"policy-link"},{default:ue(()=>[H(_(e.$t("user.REVIEW")),1)]),_:1})]),_:1})])])}const hnt=ie(mnt,[["render",_nt],["__scopeId","data-v-1b250692"]]),Snt={key:0,id:"dashboard",class:"view"},Ant={class:"container mobile-menu"},Ont={class:"box"},gnt={key:0,class:"container privacy-policy-message"},Int={class:"container"},Rnt={class:"container dashboard-container"},Nnt={class:"left-container dashboard-sub-container"},bnt={class:"right-container dashboard-sub-container"},vnt={key:1,class:"app-loading"},Cnt=ee({__name:"Dashboard",setup(e){const t=ke(),n=w(()=>t.getters[X.GETTERS.AUTH_USER_PROFILE]),a=w(()=>t.getters[Pt.GETTERS.SPORTS]),s=de("calendar");Et(()=>t.dispatch(X.ACTIONS.GET_USER_PROFILE));function r(i){s.value=i}return(i,o)=>{const u=re("Loader");return n.value.username&&a.value.length>0?(h(),I("div",Snt,[E("div",Ant,[E("div",Ont,[E("div",{class:Te(["mobile-menu-item",{"is-selected":s.value==="calendar"}]),onClick:o[0]||(o[0]=l=>r("calendar"))},o[4]||(o[4]=[E("i",{class:"fa fa-calendar","aria-hidden":"true"},null,-1)]),2),E("div",{class:Te(["mobile-menu-item",{"is-selected":s.value==="chart"}]),onClick:o[1]||(o[1]=l=>r("chart"))},o[5]||(o[5]=[E("i",{class:"fa fa-bar-chart","aria-hidden":"true"},null,-1)]),2),E("div",{class:Te(["mobile-menu-item",{"is-selected":s.value==="timeline"}]),onClick:o[2]||(o[2]=l=>r("timeline"))},o[6]||(o[6]=[E("i",{class:"fa fa-map-o","aria-hidden":"true"},null,-1)]),2),E("div",{class:Te(["mobile-menu-item",{"is-selected":s.value==="records"}]),onClick:o[3]||(o[3]=l=>r("records"))},o[7]||(o[7]=[E("i",{class:"fa fa-trophy","aria-hidden":"true"},null,-1)]),2)])]),n.value.accepted_privacy_policy?M("",!0):(h(),I("div",gnt,[W(hnt)])),E("div",Int,[W(fnt,{user:n.value},null,8,["user"])]),E("div",Rnt,[E("div",Nnt,[W(Xtt,{sports:a.value,user:n.value,class:Te({"is-hidden":s.value!=="chart"})},null,8,["sports","user","class"]),W(Ent,{sports:a.value,user:n.value,class:Te({"is-hidden":s.value!=="records"})},null,8,["sports","user","class"])]),E("div",bnt,[W(dtt,{sports:a.value,user:n.value,class:Te({"is-hidden":s.value!=="calendar"})},null,8,["sports","user","class"]),W(ket,{sports:a.value,user:n.value,class:Te({"is-hidden":s.value!=="timeline"})},null,8,["sports","user","class"])])]),o[8]||(o[8]=E("div",{id:"bottom"},null,-1))])):(h(),I("div",vnt,[W(u)]))}}}),Dnt=ie(Cnt,[["__scopeId","data-v-6e13c66c"]]),Pnt={class:"not-found view"},Lnt=ee({__name:"NotFoundView",setup(e){return(t,n)=>(h(),I("div",Pnt,[W(gf)]))}}),ynt={id:"privacy-policy",class:"view"},$nt={class:"container"},knt=ee({__name:"PrivacyPolicyView",setup(e){const t=ke();return Et(()=>{t.dispatch(K.ACTIONS.GET_APPLICATION_PRIVACY_POLICY)}),(n,a)=>(h(),I("div",ynt,[E("div",$nt,[W(Gg)]),a[0]||(a[0]=E("div",{id:"bottom"},null,-1))]))}}),Unt={class:"chart-menu"},wnt=["disabled","aria-label"],Mnt={class:"time-frames custom-checkboxes-group"},Wnt={class:"time-frames-checkboxes custom-checkboxes"},znt=["id","name","checked","onInput","disabled"],Fnt=["id","tabindex","onKeydown"],xnt=["disabled","aria-label"],Bnt={class:"stats-type"},Gnt={class:"stats-type-radio"},Hnt=["checked","disabled"],Vnt=["checked","disabled"],Knt=ee({__name:"StatsMenu",props:{isDisabled:{type:Boolean}},emits:["arrowClick","statsTypeUpdate","timeFrameUpdate"],setup(e,{emit:t}){const n=e,{isDisabled:a}=he(n),s=t,r=de("month"),i=["week","month","year"],o=de("total");function u(c){r.value=c,s("timeFrameUpdate",c)}function l(c){o.value=c.target.value,s("statsTypeUpdate",o.value)}return(c,p)=>(h(),I(_e,null,[E("div",Unt,[E("button",{class:"chart-arrow transparent",onClick:p[0]||(p[0]=d=>s("arrowClick",!0)),onKeydown:p[1]||(p[1]=Je(d=>s("arrowClick",!0),["enter"])),disabled:m(a),"aria-label":c.$t("common.PREVIOUS")},p[4]||(p[4]=[E("i",{class:"fa fa-chevron-left","aria-hidden":"true"},null,-1)]),40,wnt),E("div",Mnt,[E("div",Wnt,[(h(),I(_e,null,Le(i,d=>E("div",{class:"time-frame custom-checkbox",key:d},[E("label",null,[E("input",{type:"radio",id:d,name:d,checked:r.value===d,onInput:f=>u(d),disabled:m(a)},null,40,znt),E("span",{id:`frame-${d}`,tabindex:m(a)?-1:0,role:"button",onKeydown:Je(f=>u(d),["enter"])},_(c.$t(`statistics.TIME_FRAMES.${d}`)),41,Fnt)])])),64))])]),E("button",{class:"chart-arrow transparent",onClick:p[2]||(p[2]=d=>s("arrowClick",!1)),onKeydown:p[3]||(p[3]=Je(d=>s("arrowClick",!1),["enter"])),disabled:m(a),"aria-label":c.$t("common.NEXT")},p[5]||(p[5]=[E("i",{class:"fa fa-chevron-right","aria-hidden":"true"},null,-1)]),40,xnt)]),E("div",Bnt,[E("div",Gnt,[E("label",null,[E("input",{type:"radio",name:"stats_type",value:"total",checked:o.value==="total",disabled:m(a),onClick:l},null,8,Hnt),H(" "+_(c.$t("common.TOTAL")),1)]),E("label",null,[E("input",{type:"radio",name:"stats_type",value:"average",checked:o.value==="average",disabled:m(a),onClick:l},null,8,Vnt),H(" "+_(c.$t("statistics.AVERAGE")),1)])])])],64))}}),jnt=ie(Knt,[["__scopeId","data-v-3fa0b6ca"]]),qnt={class:"sports-menu"},Ynt=["id","name","checked","onInput","onKeyup"],Xnt={class:"sport-label"},Qnt=ee({__name:"StatsSportsMenu",props:{userSports:{},selectedSportIds:{default:()=>[]}},emits:["selectedSportIdsUpdate"],setup(e,{emit:t}){const n=e,a=t,{t:s}=$t(),r=vt("sportColors"),{selectedSportIds:i}=he(n),o=w(()=>Kn(n.userSports,s));function u(l){a("selectedSportIdsUpdate",l)}return(l,c)=>{const p=re("SportImage");return h(),I("div",qnt,[(h(!0),I(_e,null,Le(o.value,d=>(h(),I("label",{type:"checkbox",key:d.id,style:Wa({color:d.color?d.color:m(r)[d.label]})},[E("input",{type:"checkbox",id:`${d.id}`,name:d.label,checked:m(i).includes(d.id),onInput:f=>u(d.id),onKeyup:Je(ve(f=>u(d.id),["prevent"]),["space"])},null,40,Ynt),W(p,{"sport-label":d.label,color:d.color},null,8,["sport-label","color"]),E("span",Xnt,_(d.translatedLabel),1)],4))),128))])}}}),Znt={key:0,id:"user-statistics"},Jnt=ee({__name:"index",props:{sports:{},user:{},isDisabled:{type:Boolean}},setup(e){const t=e,{t:n}=$t(),{sports:a,user:s}=he(t),r=de("month"),i=de("total"),o=de(d(r.value,i.value)),u=w(()=>Kn(t.sports,n)),l=de(T(a.value));function c(R){r.value=R,o.value=d(R,i.value)}function p(R){i.value=R,o.value=d(r.value,R)}function d(R,g){return Ctt(new Date,R,t.user.weekm,g)}function f(R){o.value=Dtt(o.value,R,t.user.weekm)}function T(R){return R.map(g=>g.id)}function O(R){l.value.includes(R)?l.value=l.value.filter(g=>g!==R):l.value.push(R)}return Me(()=>t.sports,R=>{l.value=T(R)}),(R,g)=>u.value?(h(),I("div",Znt,[W(jnt,{onStatsTypeUpdate:p,onTimeFrameUpdate:c,onArrowClick:f,isDisabled:R.isDisabled},null,8,["isDisabled"]),W(nI,{sports:m(a),user:m(s),chartParams:o.value,"displayed-sport-ids":l.value,fullStats:!0,isDisabled:R.isDisabled,selectedTimeFrame:r.value},null,8,["sports","user","chartParams","displayed-sport-ids","isDisabled","selectedTimeFrame"]),W(Qnt,{"selected-sport-ids":l.value,"user-sports":m(a),onSelectedSportIdsUpdate:O},null,8,["selected-sport-ids","user-sports"])])):M("",!0)}}),eat=ie(Jnt,[["__scopeId","data-v-ff5da6bd"]]),tat={class:"sport-stat-card"},nat={class:"stat-content"},aat={class:"stat-icon"},sat={class:"stat-details"},rat={class:"stat-label"},iat={class:"stat-values"},oat={key:0,class:"fa fa-refresh fa-spin fa-fw"},uat={key:1,class:"stat-huge"},lat={key:2,class:"stat"},cat={key:0,class:"stat-average"},dat={key:0},ar=ee({__name:"SportStatCard",props:{icon:{},text:{default:""},totalValue:{},label:{},loading:{type:Boolean}},setup(e){const t=e,{icon:n,loading:a,text:s,totalValue:r}=he(t);return(i,o)=>(h(),I("div",tat,[E("div",nat,[E("div",aat,[E("i",{class:Te(["fa",`fa-${m(n)}`])},null,2)]),E("div",sat,[E("div",rat,_(i.label),1),E("div",iat,[m(a)?(h(),I("i",oat)):(h(),I("span",uat,_(m(r)?m(r):""),1)),m(s)?(h(),I("span",lat,_(m(s)),1)):M("",!0)]),["calendar","tachometer"].includes(m(n))?M("",!0):(h(),I("div",cat,[m(a)?(h(),I("div",dat,o[0]||(o[0]=[E("i",{class:"fa fa-refresh fa-spin fa-fw"},null,-1)]))):Ut(i.$slots,"average",{key:1})]))])])]))}}),Eat={id:"sport-statistics"},pat={for:"sport"},fat=["value"],mat={key:0,class:"sport-statistics"},Tat={class:"sport-img-label"},_at={class:"sport-label"},hat={class:"label"},Sat={class:"statistics"},Aat={key:0,class:"statistics-workouts-count"},Oat={key:1,class:"statistics-workouts-count"},gat={class:"statistics"},Iat={class:"records"},Rat={class:"label"},Nat=ee({__name:"SportStatistics",props:{sports:{},authUser:{}},setup(e){const t=e,n=yt(),a=Sa(),s=ke(),{t:r}=$t(),{authUser:i,sports:o}=he(t),u=w(()=>Kn(o.value,r,"all")),l=u.value.map(P=>P.id),c=de(l[0]),p=w(()=>rI(i.value.records,u.value,i.value.timezone,i.value.imperial_units,i.value.display_ascent,i.value.date_format,c.value)),d=w(()=>u.value.find(P=>P.id===c.value)),f=w(()=>s.getters.USER_SPORT_STATS[c.value]),T=w(()=>s.getters.TOTAL_WORKOUTS),O=i.value.imperial_units?gn.km.defaultTarget:"km",R=i.value.imperial_units?gn.m.defaultTarget:"m",g=w(()=>s.getters.STATS_LOADING),N=w(()=>f.value?Af(f.value.total_duration,r):{days:"",duration:""});Et(()=>A());function S(P,C){if(P===void 0)return"";const D=i.value.imperial_units?gn[C].defaultTarget:C;return i.value.imperial_units?Kt(P,C,D,2):P}function A(){c.value=n.query.sport_id&&l.includes(+n.query.sport_id)?+n.query.sport_id:l[0],s.dispatch(wt.ACTIONS.GET_USER_SPORT_STATS,{username:i.value.username,sportId:c.value})}function b(P){var D,F;const C=[];return(D=d.value)!=null&&D.translatedLabel&&P[(F=d.value)==null?void 0:F.translatedLabel].records.map($=>{C.push({...$,label:r(`workouts.RECORD_${$.record_type}`)})}),C.sort(sI)}function y(P){a.push({path:"/statistics",query:{chart:"by_sport",sport_id:P.target.value}})}return Me(()=>n.query,()=>{A()}),(P,C)=>{var $,z,Y,se,B,Q;const D=re("SportImage"),F=re("Distance");return h(),I("div",Eat,[E("label",pat,_(P.$t("workouts.SPORT",1))+": ",1),$e(E("select",{id:"sport","onUpdate:modelValue":C[0]||(C[0]=q=>c.value=q),onChange:y},[(h(!0),I(_e,null,Le(u.value,q=>(h(),I("option",{value:q.id,key:q.id},_(q.translatedLabel),9,fat))),128))],544),[[Ta,c.value]]),d.value?(h(),I("div",mat,[E("div",Tat,[W(D,{"sport-label":d.value.label,color:d.value.color},null,8,["sport-label","color"]),E("div",_at,_(d.value.translatedLabel),1)]),E("div",null,[E("div",hat,[C[1]||(C[1]=E("i",{class:"fa fa-line-chart custom-fa-small","aria-hidden":"true"},null,-1)),H(" "+_(P.$t("statistics.STATISTICS",0)),1)]),E("div",Sat,[W(ar,{icon:"calendar",loading:g.value,"total-value":T.value,label:P.$t("workouts.WORKOUT",0)},null,8,["loading","total-value","label"])]),f.value&&f.value.total_workouts[E("div",null,_(P.$t("statistics.AVERAGE"))+":",1),f.value?(h(),j(F,{key:0,distance:f.value.average_distance,unitFrom:"km",useImperialUnits:m(i).imperial_units},null,8,["distance","useImperialUnits"])):M("",!0)]),_:1},8,["loading","total-value","text","label"]),W(ar,{icon:"clock-o",loading:g.value,"total-value":N.value.days,text:N.value.duration,label:P.$t("workouts.DURATION")},{average:ue(()=>[E("div",null,_(P.$t("statistics.AVERAGE"))+":",1),E("span",null,_(f.value?m(WE)(f.value.average_duration,P.$t):""),1)]),_:1},8,["loading","total-value","text","label"]),W(ar,{icon:"tachometer",loading:g.value,"total-value":S((z=f.value)==null?void 0:z.average_speed,"km"),text:`${m(O)}/h`,label:P.$t("workouts.AVE_SPEED")},null,8,["loading","total-value","text","label"]),((Y=f.value)==null?void 0:Y.total_ascent)!==null?(h(),j(ar,{key:0,icon:"location-arrow",loading:g.value,"total-value":S((se=f.value)==null?void 0:se.total_ascent,"m"),text:m(R),label:P.$t("workouts.ASCENT")},{average:ue(()=>[E("div",null,_(P.$t("statistics.AVERAGE"))+":",1),f.value?(h(),j(F,{key:0,distance:f.value.average_ascent,unitFrom:"m",useImperialUnits:m(i).imperial_units},null,8,["distance","useImperialUnits"])):M("",!0)]),_:1},8,["loading","total-value","text","label"])):M("",!0),((B=f.value)==null?void 0:B.total_descent)!==null?(h(),j(ar,{key:1,icon:"location-arrow fa-rotate-90",loading:g.value,"total-value":S((Q=f.value)==null?void 0:Q.total_descent,"m"),text:m(R),label:P.$t("workouts.DESCENT")},{average:ue(()=>[E("div",null,_(P.$t("statistics.AVERAGE"))+":",1),f.value?(h(),j(F,{key:0,distance:f.value.average_descent,unitFrom:"m",useImperialUnits:m(i).imperial_units},null,8,["distance","useImperialUnits"])):M("",!0)]),_:1},8,["loading","total-value","text","label"])):M("",!0)])]),E("div",Iat,[E("div",Rat,[C[2]||(C[2]=E("i",{class:"fa fa-trophy custom-fa-small","aria-hidden":"true"},null,-1)),H(" "+_(P.$t("workouts.RECORD",0)),1)]),E("div",null,[(h(!0),I(_e,null,Le(b(p.value),q=>(h(),j(aI,{record:q,key:q.id},null,8,["record"]))),128))])])])):M("",!0)])}}}),bat=ie(Nat,[["__scopeId","data-v-2e2b2caa"]]),vat={id:"statistics",class:"view"},Cat={key:0,class:"container"},Dat=["value"],Pat=ee({__name:"StatisticsView",setup(e){const t=yt(),n=Sa(),a=ke(),s=w(()=>a.getters[X.GETTERS.AUTH_USER_PROFILE]),r=w(()=>a.getters[Pt.GETTERS.SPORTS].filter(c=>s.value.sports_list.includes(c.id))),i=w(()=>s.value.nb_workouts===0),o=["by_time","by_sport"],u=de("by_time");Et(()=>{u.value=t.query.chart&&o.includes(t.query.chart)?t.query.chart:"by_time"}),St(()=>{if(!i.value){const c=document.getElementById("stats-type");c==null||c.focus()}});function l(c){n.push({path:"/statistics",query:{chart:c.target.value}})}return(c,p)=>{const d=re("Card");return h(),I("div",vat,[s.value.username?(h(),I("div",Cat,[W(d,null,{title:ue(()=>[H(_(c.$t("statistics.STATISTICS"))+" ",1),r.value.length>0?$e((h(),I("select",{key:0,class:"stats-types",name:"stats-type",id:"stats-type","onUpdate:modelValue":p[0]||(p[0]=f=>u.value=f),onChange:l},[(h(),I(_e,null,Le(o,f=>E("option",{value:f,key:f},_(c.$t(`statistics.STATISTICS_TYPES.${f}`)),9,Dat)),64))],544)),[[Ta,u.value]]):M("",!0)]),content:ue(()=>[c.$route.query.chart!=="by_sport"?(h(),j(eat,{key:0,class:Te({"stats-disabled":i.value}),user:s.value,sports:r.value,isDisabled:i.value},null,8,["class","user","sports","isDisabled"])):r.value.length>0?(h(),j(bat,{key:1,sports:r.value,authUser:s.value},null,8,["sports","authUser"])):M("",!0)]),_:1}),s.value.nb_workouts===0?(h(),j(If,{key:0})):M("",!0)])):M("",!0)])}}}),Lat=ie(Pat,[["__scopeId","data-v-b57d20e5"]]),yat={name:"EmailSent"},$at={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 345.834 345.834",style:{"enable-background":"new 0 0 345.834 345.834"},"xml:space":"preserve"};function kat(e,t,n,a,s,r){return h(),I("svg",$at,t[0]||(t[0]=[E("g",null,[E("path",{d:`M339.798,260.429c0.13-0.026,0.257-0.061,0.385-0.094c0.109-0.028,0.219-0.051,0.326-0.084 + c0.125-0.038,0.247-0.085,0.369-0.129c0.108-0.039,0.217-0.074,0.324-0.119c0.115-0.048,0.226-0.104,0.338-0.157 + c0.109-0.052,0.22-0.1,0.327-0.158c0.107-0.057,0.208-0.122,0.312-0.184c0.107-0.064,0.215-0.124,0.319-0.194 + c0.111-0.074,0.214-0.156,0.321-0.236c0.09-0.067,0.182-0.13,0.27-0.202c0.162-0.133,0.316-0.275,0.466-0.421 + c0.027-0.026,0.056-0.048,0.083-0.075c0.028-0.028,0.052-0.059,0.079-0.088c0.144-0.148,0.284-0.3,0.416-0.46 + c0.077-0.094,0.144-0.192,0.216-0.289c0.074-0.1,0.152-0.197,0.221-0.301c0.074-0.111,0.139-0.226,0.207-0.34 + c0.057-0.096,0.118-0.19,0.171-0.289c0.062-0.115,0.114-0.234,0.169-0.351c0.049-0.104,0.101-0.207,0.146-0.314 + c0.048-0.115,0.086-0.232,0.128-0.349c0.041-0.114,0.085-0.227,0.12-0.343c0.036-0.118,0.062-0.238,0.092-0.358 + c0.029-0.118,0.063-0.234,0.086-0.353c0.028-0.141,0.045-0.283,0.065-0.425c0.014-0.1,0.033-0.199,0.043-0.3 + c0.025-0.249,0.038-0.498,0.038-0.748V92.76c0-4.143-3.357-7.5-7.5-7.5h-236.25c-0.066,0-0.13,0.008-0.196,0.01 + c-0.143,0.004-0.285,0.01-0.427,0.022c-0.113,0.009-0.225,0.022-0.337,0.037c-0.128,0.016-0.255,0.035-0.382,0.058 + c-0.119,0.021-0.237,0.046-0.354,0.073c-0.119,0.028-0.238,0.058-0.356,0.092c-0.117,0.033-0.232,0.069-0.346,0.107 + c-0.117,0.04-0.234,0.082-0.349,0.128c-0.109,0.043-0.216,0.087-0.322,0.135c-0.118,0.053-0.235,0.11-0.351,0.169 + c-0.099,0.051-0.196,0.103-0.292,0.158c-0.116,0.066-0.23,0.136-0.343,0.208c-0.093,0.06-0.184,0.122-0.274,0.185 + c-0.106,0.075-0.211,0.153-0.314,0.235c-0.094,0.075-0.186,0.152-0.277,0.231c-0.09,0.079-0.179,0.158-0.266,0.242 + c-0.099,0.095-0.194,0.194-0.288,0.294c-0.047,0.05-0.097,0.094-0.142,0.145c-0.027,0.03-0.048,0.063-0.074,0.093 + c-0.094,0.109-0.182,0.223-0.27,0.338c-0.064,0.084-0.13,0.168-0.19,0.254c-0.078,0.112-0.15,0.227-0.222,0.343 + c-0.059,0.095-0.12,0.189-0.174,0.286c-0.063,0.112-0.118,0.227-0.175,0.342c-0.052,0.105-0.106,0.21-0.153,0.317 + c-0.049,0.113-0.092,0.23-0.135,0.345c-0.043,0.113-0.087,0.225-0.124,0.339c-0.037,0.115-0.067,0.232-0.099,0.349 + c-0.032,0.12-0.066,0.239-0.093,0.36c-0.025,0.113-0.042,0.228-0.062,0.342c-0.022,0.13-0.044,0.26-0.06,0.39 + c-0.013,0.108-0.019,0.218-0.027,0.328c-0.01,0.14-0.019,0.28-0.021,0.421c-0.001,0.041-0.006,0.081-0.006,0.122v46.252 + c0,4.143,3.357,7.5,7.5,7.5s7.5-3.357,7.5-7.5v-29.595l66.681,59.037c-0.348,0.245-0.683,0.516-0.995,0.827l-65.687,65.687v-49.288 + c0-4.143-3.357-7.5-7.5-7.5s-7.5,3.357-7.5,7.5v9.164h-38.75c-4.143,0-7.5,3.357-7.5,7.5s3.357,7.5,7.5,7.5h38.75v43.231 + c0,4.143,3.357,7.5,7.5,7.5h236.25c0.247,0,0.494-0.013,0.74-0.037c0.115-0.011,0.226-0.033,0.339-0.049 + C339.542,260.469,339.67,260.454,339.798,260.429z M330.834,234.967l-65.688-65.687c-0.042-0.042-0.087-0.077-0.13-0.117 + l49.383-41.897c3.158-2.68,3.546-7.412,0.866-10.571c-2.678-3.157-7.41-3.547-10.571-0.866l-84.381,71.59l-98.444-87.158h208.965 + V234.967z M185.878,179.888c0.535-0.535,0.969-1.131,1.308-1.765l28.051,24.835c1.418,1.255,3.194,1.885,4.972,1.885 + c1.726,0,3.451-0.593,4.853-1.781l28.587-24.254c0.26,0.38,0.553,0.743,0.89,1.08l65.687,65.687H120.191L185.878,179.888z`}),E("path",{d:`M7.5,170.676h126.667c4.143,0,7.5-3.357,7.5-7.5s-3.357-7.5-7.5-7.5H7.5c-4.143,0-7.5,3.357-7.5,7.5 + S3.357,170.676,7.5,170.676z`}),E("path",{d:`M20.625,129.345H77.5c4.143,0,7.5-3.357,7.5-7.5s-3.357-7.5-7.5-7.5H20.625c-4.143,0-7.5,3.357-7.5,7.5 + S16.482,129.345,20.625,129.345z`}),E("path",{d:"M62.5,226.51h-55c-4.143,0-7.5,3.357-7.5,7.5s3.357,7.5,7.5,7.5h55c4.143,0,7.5-3.357,7.5-7.5S66.643,226.51,62.5,226.51z"})],-1)]))}const iI=ie(yat,[["render",kat]]),Uat={id:"user-form"},wat={key:2,class:"info-box success-message"},Mat={class:"form-items"},Wat={key:0,for:"username"},zat=["disabled"],Fat={key:2,class:"form-info"},xat={key:3,for:"email"},Bat=["disabled"],Gat={key:5,class:"form-info"},Hat={key:6,for:"password"},Vat={key:8,for:"accepted_policy",class:"accepted_policy"},Kat=["disabled"],jat=["disabled"],qat={key:3},Yat={key:0},Xat={key:4},Qat={class:"account"},Zat={key:5},Jat=ee({__name:"UserAuthForm",props:{action:{},token:{default:""}},setup(e){const t=e,n=yt(),a=ke(),{action:s}=he(t),r=Yt({username:"",email:"",password:"",accepted_policy:!1}),i=w(()=>O(t.action)),o=w(()=>a.getters[K.GETTERS.ERROR_MESSAGES]),u=w(()=>a.getters[X.GETTERS.IS_REGISTRATION_SUCCESS]),l=w(()=>a.getters[X.GETTERS.IS_SUCCESS]),c=w(()=>a.getters[K.GETTERS.APP_CONFIG]),p=w(()=>a.getters[K.GETTERS.LANGUAGE]),d=w(()=>t.action==="register"&&!c.value.is_registration_enabled),f=w(()=>["reset-request","account-confirmation-resend"].includes(t.action)&&!c.value.is_email_sending_enabled),T=de(!1);function O(A){switch(A){case"reset-request":case"reset":return"buttons.SUBMIT";default:return`buttons.${t.action.toUpperCase()}`}}function R(){T.value=!0}function g(A){r.password=A}function N(A){switch(A){case"reset":return t.token?a.dispatch(X.ACTIONS.RESET_USER_PASSWORD,{password:r.password,token:t.token}):a.commit(K.MUTATIONS.SET_ERROR_MESSAGES,"user.INVALID_TOKEN");case"reset-request":return a.dispatch(X.ACTIONS.SEND_PASSWORD_RESET_REQUEST,{email:r.email});case"account-confirmation-resend":return a.dispatch(X.ACTIONS.RESEND_ACCOUNT_CONFIRMATION_EMAIL,{email:r.email});default:r.language=p.value,a.dispatch(X.ACTIONS.LOGIN_OR_REGISTER,{actionType:A,formData:r,redirectUrl:n.query.from})}}function S(){r.username="",r.email="",r.password="",r.accepted_policy=!1}return pt(()=>a.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES)),Me(()=>n.path,async()=>{a.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),a.commit(X.MUTATIONS.UPDATE_IS_SUCCESS,!1),a.commit(X.MUTATIONS.UPDATE_IS_REGISTRATION_SUCCESS,!1),T.value=!1,S()}),(A,b)=>{const y=re("AlertMessage"),P=re("router-link"),C=re("i18n-t"),D=re("ErrorMessage");return h(),I("div",{id:"user-auth-form",class:Te(`${["reset","reset-request"].includes(m(s))?m(s):"user-form"}`)},[E("div",Uat,[E("div",{class:Te(["form-box",{disabled:d.value}])},[d.value?(h(),j(y,{key:0,message:"user.REGISTER_DISABLED"})):M("",!0),f.value?(h(),j(y,{key:1,message:"admin.EMAIL_SENDING_DISABLED"})):M("",!0),l.value||u.value?(h(),I("div",wat,_(A.$t(`user.PROFILE.SUCCESSFUL_${u.value?`REGISTRATION${c.value.is_email_sending_enabled?"_WITH_EMAIL":""}`:"UPDATE"}`)),1)):M("",!0),E("form",{class:Te({errors:T.value}),onSubmit:b[3]||(b[3]=ve(F=>N(m(s)),["prevent"]))},[E("div",Mat,[m(s)==="register"?(h(),I("label",Wat,_(A.$t("user.USERNAME",0)),1)):M("",!0),m(s)==="register"?$e((h(),I("input",{key:1,id:"username",disabled:d.value,required:"",pattern:"[a-zA-Z0-9_]+",minlength:"3",maxlength:"30",onInvalid:R,"onUpdate:modelValue":b[0]||(b[0]=F=>r.username=F),autocomplete:"username"},null,40,zat)),[[st,r.username]]):M("",!0),m(s)==="register"?(h(),I("div",Fat,[b[4]||(b[4]=E("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1)),H(" "+_(A.$t("user.USERNAME_INFO")),1)])):M("",!0),m(s)!=="reset"?(h(),I("label",xat,_(A.$t("user.EMAIL",0)),1)):M("",!0),m(s)!=="reset"?$e((h(),I("input",{key:4,id:"email",disabled:d.value||f.value,required:"",onInvalid:R,type:"email","onUpdate:modelValue":b[1]||(b[1]=F=>r.email=F),autocomplete:"email"},null,40,Bat)),[[st,r.email]]):M("",!0),["reset-request","register","account-confirmation-resend"].includes(m(s))?(h(),I("div",Gat,[b[5]||(b[5]=E("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1)),H(" "+_(A.$t("user.EMAIL_INFO")),1)])):M("",!0),["account-confirmation-resend","reset-request"].includes(m(s))?M("",!0):(h(),I("label",Hat,_(A.$t(`user.${m(s)==="reset"?"ENTER_PASSWORD":"PASSWORD"}`)),1)),["account-confirmation-resend","reset-request"].includes(m(s))?M("",!0):(h(),j(ME,{key:7,id:"password",disabled:d.value,required:!0,password:r.password,checkStrength:["reset","register"].includes(m(s)),onUpdatePassword:g,onPasswordError:R,autocomplete:"current-password"},null,8,["disabled","password","checkStrength"])),m(s)==="register"?(h(),I("label",Vat,[$e(E("input",{type:"checkbox",id:"accepted_policy",disabled:d.value,required:"",onInvalid:R,"onUpdate:modelValue":b[2]||(b[2]=F=>r.accepted_policy=F)},null,40,Kat),[[Wl,r.accepted_policy]]),E("span",null,[W(C,{keypath:"user.READ_AND_ACCEPT_PRIVACY_POLICY"},{default:ue(()=>[W(P,{to:"/privacy-policy",target:"_blank"},{default:ue(()=>[H(_(A.$t("privacy_policy.TITLE")),1)]),_:1})]),_:1})])])):M("",!0)]),E("button",{type:"submit",disabled:d.value||f.value},_(A.$t(i.value)),9,jat)],34),m(s)==="login"?(h(),I("div",qat,[W(P,{class:"links",to:"/register"},{default:ue(()=>[H(_(A.$t("user.REGISTER")),1)]),_:1}),c.value.is_email_sending_enabled?(h(),I("span",Yat,"-")):M("",!0),c.value.is_email_sending_enabled?(h(),j(P,{key:1,class:"links",to:"/password-reset/request"},{default:ue(()=>[H(_(A.$t("user.PASSWORD_FORGOTTEN")),1)]),_:1})):M("",!0)])):M("",!0),m(s)==="register"?(h(),I("div",Xat,[E("span",Qat,_(A.$t("user.ALREADY_HAVE_ACCOUNT")),1),W(P,{class:"links",to:"/login"},{default:ue(()=>[H(_(A.$t("user.LOGIN")),1)]),_:1})])):M("",!0),["login","register"].includes(m(s))&&c.value.is_email_sending_enabled?(h(),I("div",Zat,[W(P,{class:"links",to:"/account-confirmation/resend"},{default:ue(()=>[H(_(A.$t("user.ACCOUNT_CONFIRMATION_NOT_RECEIVED")),1)]),_:1})])):M("",!0),o.value?(h(),j(D,{key:6,message:o.value},null,8,["message"])):M("",!0)],2)])],2)}}}),Rf=ie(Jat,[["__scopeId","data-v-1d52bb01"]]),est={id:"account-confirmation-email",class:"center-card with-margin"},tst={key:0,class:"email-sent"},nst={class:"email-sent-message"},ast={key:1},sst=ee({__name:"AccountConfirmationEmail",props:{action:{}},setup(e){const t=e,{action:n}=he(t);return(a,s)=>{const r=re("Card");return h(),I("div",est,[m(n)==="email-sent"?(h(),I("div",tst,[W(iI),E("div",nst,_(a.$t("user.ACCOUNT_CONFIRMATION_SENT")),1)])):(h(),I("div",ast,[W(r,null,{title:ue(()=>[H(_(a.$t("user.RESENT_ACCOUNT_CONFIRMATION")),1)]),content:ue(()=>[W(Rf,{action:m(n)},null,8,["action"])]),_:1})]))])}}}),rst=ie(sst,[["__scopeId","data-v-b0299010"]]),ist={id:"account-confirmation",class:"view"},ost={class:"container"},ust=ee({__name:"AccountConfirmationResendView",props:{action:{}},setup(e){const t=e,{action:n}=he(t);return(a,s)=>(h(),I("div",ist,[E("div",ost,[W(rst,{action:m(n)},null,8,["action"])])]))}}),M0=ie(ust,[["__scopeId","data-v-9a9c1644"]]),lst={key:0,id:"account-confirmation",class:"center-card with-margin"},cst={class:"error-message"},dst=ee({__name:"AccountConfirmationView",setup(e){const t=yt(),n=Sa(),a=ke(),s=w(()=>a.getters[K.GETTERS.ERROR_MESSAGES]),r=w(()=>t.query.token);Et(()=>i());function i(){r.value?a.dispatch(X.ACTIONS.CONFIRM_ACCOUNT,{token:r.value}):n.push("/")}return pt(()=>a.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES)),(o,u)=>{const l=re("router-link");return s.value?(h(),I("div",lst,[W(Np),E("p",cst,[E("span",null,_(o.$t("error.SOMETHING_WRONG"))+".",1),W(l,{class:"links",to:"/account-confirmation/resend"},{default:ue(()=>[H(_(o.$t("buttons.ACCOUNT-CONFIRMATION-RESEND"))+"? ",1)]),_:1})])])):M("",!0)}}}),Est=ie(dst,[["__scopeId","data-v-1b343aed"]]),pst={key:0,id:"email-update",class:"center-card with-margin"},fst={class:"error-message"},mst=ee({__name:"EmailUpdateView",setup(e){const t=yt(),n=Sa(),a=ke(),s=w(()=>a.getters[X.GETTERS.AUTH_USER_PROFILE]),r=w(()=>a.getters[X.GETTERS.IS_AUTHENTICATED]),i=w(()=>a.getters[K.GETTERS.ERROR_MESSAGES]),o=w(()=>t.query.token);Et(()=>u());function u(){o.value?a.dispatch(X.ACTIONS.CONFIRM_EMAIL,{token:o.value,refreshUser:r.value}):n.push("/")}return pt(()=>a.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES)),Me(()=>i.value,l=>{s.value.username&&l&&n.push("/")}),(l,c)=>{const p=re("router-link"),d=re("i18n-t");return i.value&&!s.value.username?(h(),I("div",pst,[W(Np),E("p",fst,[E("span",null,_(l.$t("error.SOMETHING_WRONG"))+".",1),E("span",null,[W(d,{keypath:"user.PROFILE.ERRORED_EMAIL_UPDATE"},{default:ue(()=>[W(p,{to:"/login"},{default:ue(()=>[H(_(l.$t("user.LOG_IN")),1)]),_:1})]),_:1})])])])):M("",!0)}}}),Tst=ie(mst,[["__scopeId","data-v-8b516209"]]),_st={id:"loginOrRegister",class:"view"},hst={class:"container"},Sst={class:"container-sub"},Ast={class:"container-sub"},Ost=ee({__name:"LoginOrRegister",props:{action:{}},setup(e){const t=e,{action:n}=he(t);return(a,s)=>(h(),I("div",_st,[E("div",hst,[E("div",Sst,[W(jg)]),E("div",Ast,[W(Rf,{action:m(n)},null,8,["action"])])])]))}}),W0=ie(Ost,[["__scopeId","data-v-84d61340"]]),gst={name:"Password"},Ist={version:"1.1",id:"Layer_1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",x:"0px",y:"0px",viewBox:"0 0 512.001 512.001",style:{"enable-background":"new 0 0 512.001 512.001"},"xml:space":"preserve"};function Rst(e,t,n,a,s,r){return h(),I("svg",Ist,t[0]||(t[0]=[Nn(``,7)]))}const Nst=ie(gst,[["render",Rst]]),bst={id:"password-action-done",class:"center-card with-margin"},vst={class:"password-message"},Cst={key:0},Dst=ee({__name:"PasswordActionDone",props:{action:{}},setup(e){const t=e,{action:n}=he(t);return(a,s)=>{const r=re("router-link"),i=re("i18n-t");return h(),I("div",bst,[m(n)==="request-sent"?(h(),j(iI,{key:0})):(h(),j(Nst,{key:1})),E("div",vst,[m(n)==="request-sent"?(h(),I("span",Cst,_(a.$t("user.PASSWORD_SENT_EMAIL_TEXT")),1)):(h(),j(i,{key:1,keypath:"user.PASSWORD_UPDATED"},{default:ue(()=>[W(r,{to:"/login"},{default:ue(()=>[H(_(a.$t("common.HERE")),1)]),_:1})]),_:1}))])])}}}),Pst=ie(Dst,[["__scopeId","data-v-ee1004fc"]]),Lst={id:"password-reset-request",class:"center-card with-margin"},yst=ee({__name:"PasswordResetForm",props:{action:{},token:{default:""}},setup(e){const t=e,{action:n,token:a}=he(t);return(s,r)=>{const i=re("Card");return h(),I("div",Lst,[W(i,null,{title:ue(()=>[H(_(s.$t("user.RESET_PASSWORD")),1)]),content:ue(()=>[W(Rf,{action:m(n),token:m(a)},null,8,["action","token"])]),_:1})])}}}),$st=ie(yst,[["__scopeId","data-v-97f01ba1"]]),kst={id:"password-reset",class:"view"},Ust={class:"container"},wst=ee({__name:"PasswordResetView",props:{action:{}},setup(e){const t=e,n=yt(),a=Sa(),{action:s}=he(t),r=w(()=>n.query.token);return Et(()=>{t.action==="reset"&&!r.value&&a.push("/")}),(i,o)=>(h(),I("div",kst,[E("div",Ust,[m(s).startsWith("reset")?(h(),j($st,{key:0,action:m(s),token:r.value},null,8,["action","token"])):(h(),j(Pst,{key:1,action:m(s)},null,8,["action"]))])]))}}),Jo=ie(wst,[["__scopeId","data-v-5cbe9029"]]),Mst={key:0,id:"profile",class:"view"},Wst=ee({__name:"ProfileView",setup(e){const t=ke(),n=w(()=>t.getters[X.GETTERS.AUTH_USER_PROFILE]);return(a,s)=>{const r=re("router-view");return n.value.username?(h(),I("div",Mst,[W(r,{user:n.value},null,8,["user"]),s[0]||(s[0]=E("div",{id:"bottom"},null,-1))])):M("",!0)}}}),zst=ie(Wst,[["__scopeId","data-v-af92ad3a"]]),Fst={key:0,id:"user",class:"view"},xst={class:"box"},Bst=ee({__name:"UserView",props:{fromAdmin:{type:Boolean}},setup(e){const t=e,{fromAdmin:n}=he(t),a=yt(),s=ke(),r=w(()=>s.getters[Ge.GETTERS.USER]);return Et(()=>{a.params.username&&typeof a.params.username=="string"&&s.dispatch(Ge.ACTIONS.GET_USER,a.params.username)}),ao(()=>{s.dispatch(Ge.ACTIONS.EMPTY_USER)}),(i,o)=>r.value.username?(h(),I("div",Fst,[W(bg,{user:r.value},null,8,["user"]),E("div",xst,[W(Cg,{user:r.value,"from-admin":m(n)},null,8,["user","from-admin"])])])):M("",!0)}}),z0=ie(Bst,[["__scopeId","data-v-1b7a0b4f"]]),Gst={id:"workout-form"},Hst={class:"form-items"},Vst={key:0,class:"form-item-radio"},Kst=["checked","disabled"],jst={for:"withGpx"},qst=["checked","disabled"],Yst={for:"withoutGpx"},Xst={class:"form-item"},Qst={for:"sport"},Zst=["disabled"],Jst=["value"],ert={key:1,class:"form-item"},trt={for:"gpxFile"},nrt=["disabled"],art={class:"files-help info-box"},srt={key:2,class:"form-item"},rrt={for:"title"},irt=["required","disabled"],ort={key:3},urt={class:"workout-date-duration"},lrt={class:"form-item"},crt={class:"workout-date-time"},drt=["disabled"],Ert=["disabled"],prt={class:"form-item"},frt={for:"workout-duration-hour",class:"visually-hidden"},mrt=["disabled"],Trt={for:"workout-duration-minutes",class:"visually-hidden"},_rt=["disabled"],hrt={for:"workout-duration-seconds",class:"visually-hidden"},Srt=["disabled"],Art={class:"workout-data"},Ort={class:"form-item"},grt=["disabled"],Irt={class:"form-item"},Rrt=["disabled"],Nrt={class:"form-item"},brt=["disabled"],vrt={key:4,class:"form-item"},Crt={for:"workout-equipment"},Drt=["disabled"],Prt={value:""},Lrt=["value"],yrt={key:5,class:"form-item"},$rt={for:"description"},krt={key:6,class:"form-item"},Urt={for:"notes"},wrt={key:1},Mrt={key:2,class:"form-buttons"},Wrt=["disabled"],zrt=ee({__name:"WorkoutEdition",props:{authUser:{},sports:{},isCreation:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},workout:{default:()=>({})}},setup(e){const t=e,{t:n}=$t(),a=ke(),s=Sa(),{authUser:r,workout:i,isCreation:o,loading:u}=he(t),l=w(()=>Kn(t.sports,n,"is_active_for_user",i.value.id?[i.value.sport_id]:[])),c=w(()=>a.getters[K.GETTERS.APP_CONFIG]),p=c.value.max_single_file_size?Uu(c.value.max_single_file_size):"",d=c.value.gpx_limit_import,f=c.value.max_zip_file_size?Uu(c.value.max_zip_file_size):"",T=w(()=>a.getters[K.GETTERS.ERROR_MESSAGES]),O=Yt({sport_id:"",title:"",notes:"",workoutDate:"",workoutTime:"",workoutDurationHour:"",workoutDurationMinutes:"",workoutDurationSeconds:"",workoutDistance:"",workoutAscent:"",workoutDescent:"",equipment_id:"",description:""}),R=de(i.value.id?i.value.with_gpx:o.value);let g=null;const N=de(!1),S=de([]),A=w(()=>a.getters[We.GETTERS.EQUIPMENTS]),b=w(()=>O.sport_id?l.value.filter(Z=>Z.id===+O.sport_id)[0]:null),y=w(()=>A.value?hg(A.value,n,o.value?"is_active":"withIncludedIds",b.value,o.value?[]:i.value.equipments.map(Z=>Z.id)):[]);St(()=>{let Z;t.workout.id?($(t.workout),Z=document.getElementById("sport")):Z=document.getElementById("withGpx"),Z&&Z.focus()});function P(Z){O.notes=Z}function C(Z){O.description=Z}function D(){R.value=!R.value,N.value=!1}function F(Z){Z.target.files&&(g=Z.target.files[0])}function $(Z){if(O.sport_id=`${Z.sport_id}`,O.title=Z.title,O.description=Z.description,O.notes=Z.notes,O.equipment_id=Z.equipments.length>0?`${Z.equipments[0].id}`:"",!Z.with_gpx){const Ne=Rg(pc(Z.workout_date,t.authUser.timezone),"yyyy-MM-dd"),ye=Z.duration.split(":");O.workoutDistance=`${r.value.imperial_units?Kt(Z.distance,"km","mi",3):parseFloat(Z.distance.toFixed(3))}`,O.workoutDate=Ne.workout_date,O.workoutTime=Ne.workout_time,O.workoutDurationHour=ye[0],O.workoutDurationMinutes=ye[1],O.workoutDurationSeconds=ye[2],O.workoutAscent=Z.ascent===null?"":`${r.value.imperial_units?Kt(Z.ascent,"m","ft",2):parseFloat(Z.ascent.toFixed(2))}`,O.workoutDescent=Z.descent===null?"":`${r.value.imperial_units?Kt(Z.descent,"m","ft",2):parseFloat(Z.descent.toFixed(2))}`}}function z(){return S.value.includes("workouts.INVALID_DISTANCE")}function Y(){return S.value.includes("workouts.INVALID_DURATION")}function se(){return S.value.includes("workouts.INVALID_ASCENT_OR_DESCENT")}function B(Z){S.value=[],Z.title=O.title,Z.duration=+O.workoutDurationHour*3600+ +O.workoutDurationMinutes*60+ +O.workoutDurationSeconds,Z.duration<=0&&S.value.push("workouts.INVALID_DURATION"),Z.distance=r.value.imperial_units?Kt(+O.workoutDistance,"mi","km",3):+O.workoutDistance,Z.distance<=0&&S.value.push("workouts.INVALID_DISTANCE"),Z.workout_date=`${O.workoutDate} ${O.workoutTime}`,Z.ascent=O.workoutAscent===""?null:r.value.imperial_units?Kt(+O.workoutAscent,"ft","m",3):+O.workoutAscent,Z.descent=O.workoutDescent===""?null:r.value.imperial_units?Kt(+O.workoutDescent,"ft","m",3):+O.workoutDescent,(Z.ascent!==null&&Z.descent===null||Z.ascent===null&&Z.descent!==null)&&S.value.push("workouts.INVALID_ASCENT_OR_DESCENT")}function Q(){const Z={sport_id:+O.sport_id,description:O.description,notes:O.notes,equipment_ids:O.equipment_id&&y.value.find(Ne=>Ne.id===O.equipment_id)?[O.equipment_id]:[]};if(t.workout.id)t.workout.with_gpx?Z.title=O.title:B(Z),S.value.length>0?a.commit(K.MUTATIONS.SET_ERROR_MESSAGES,S.value):a.dispatch(ge.ACTIONS.EDIT_WORKOUT,{workoutId:t.workout.id,data:Z});else if(R.value){if(!g){a.commit(K.MUTATIONS.SET_ERROR_MESSAGES,"workouts.NO_FILE_PROVIDED");return}Z.file=g,a.dispatch(ge.ACTIONS.ADD_WORKOUT,Z)}else B(Z),S.value.length>0?a.commit(K.MUTATIONS.SET_ERROR_MESSAGES,S.value):a.dispatch(ge.ACTIONS.ADD_WORKOUT_WITHOUT_GPX,Z)}function q(){t.workout.id?s.push({name:"Workout",params:{workoutId:t.workout.id}}):s.go(-1)}function oe(){N.value=!0}return pt(()=>a.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES)),Me(()=>t.workout,async(Z,Ne)=>{Z!==Ne&&Z&&Z.id&&$(Z)}),Me(()=>b.value,Z=>{o.value&&(O.equipment_id=Z!=null&&Z.default_equipments&&(Z==null?void 0:Z.default_equipments.length)>0?`${Z.default_equipments[0].id}`:"")}),(Z,Ne)=>{const ye=re("CustomTextArea"),we=re("ErrorMessage"),Gt=re("Loader"),Ke=re("Card");return h(),I("div",{id:"workout-edition",class:Te(["center-card",{"center-form":m(i)&&m(i).with_gpx,"with-margin":!m(o)}])},[W(Ke,null,{title:ue(()=>[H(_(Z.$t(`workouts.${m(o)?"ADD":"EDIT"}_WORKOUT`)),1)]),content:ue(()=>[E("div",Gst,[E("form",{class:Te({errors:N.value}),onSubmit:ve(Q,["prevent"])},[E("div",Hst,[m(o)?(h(),I("div",Vst,[E("div",null,[E("input",{id:"withGpx",type:"radio",checked:R.value,disabled:m(u),onClick:D},null,8,Kst),E("label",jst,_(Z.$t("workouts.WITH_GPX")),1)]),E("div",null,[E("input",{id:"withoutGpx",type:"radio",checked:!R.value,disabled:m(u),onClick:D},null,8,qst),E("label",Yst,_(Z.$t("workouts.WITHOUT_GPX")),1)])])):M("",!0),E("div",Xst,[E("label",Qst,_(Z.$t("workouts.SPORT",1))+"*: ",1),$e(E("select",{id:"sport",required:"",onInvalid:oe,disabled:m(u),"onUpdate:modelValue":Ne[0]||(Ne[0]=be=>O.sport_id=be)},[(h(!0),I(_e,null,Le(l.value,be=>(h(),I("option",{value:be.id,key:be.id},_(be.translatedLabel),9,Jst))),128))],40,Zst),[[Ta,O.sport_id]])]),m(o)&&R.value?(h(),I("div",ert,[E("label",trt,_(Z.$t("workouts.GPX_FILE"))+" "+_(Z.$t("workouts.ZIP_ARCHIVE_DESCRIPTION"))+"*: ",1),E("input",{id:"gpxFile",name:"gpxFile",type:"file",accept:".gpx, .zip",disabled:m(u),required:"",onInvalid:oe,onInput:F},null,40,nrt),E("div",art,[E("div",null,[E("strong",null,_(Z.$t("workouts.GPX_FILE"))+":",1),E("ul",null,[E("li",null,_(Z.$t("workouts.MAX_SIZE"))+": "+_(m(p)),1)])]),E("div",null,[E("strong",null,_(Z.$t("workouts.ZIP_ARCHIVE"))+":",1),E("ul",null,[E("li",null,_(Z.$t("workouts.NO_FOLDER")),1),E("li",null,_(Z.$t("workouts.MAX_FILES"))+": "+_(m(d)),1),E("li",null,_(Z.$t("workouts.MAX_SIZE"))+": "+_(m(f)),1)])])])])):(h(),I("div",srt,[E("label",rrt,_(Z.$t("workouts.TITLE"))+": ",1),$e(E("input",{id:"title",name:"title",type:"text",required:!m(o),onInvalid:oe,disabled:m(u),"onUpdate:modelValue":Ne[1]||(Ne[1]=be=>O.title=be),maxlength:"255"},null,40,irt),[[st,O.title]])])),R.value?M("",!0):(h(),I("div",ort,[E("div",urt,[E("div",lrt,[E("label",null,_(Z.$t("workouts.WORKOUT_DATE"))+"*:",1),E("div",crt,[$e(E("input",{id:"workout-date",name:"workout-date",type:"date",required:"",onInvalid:oe,disabled:m(u),"onUpdate:modelValue":Ne[2]||(Ne[2]=be=>O.workoutDate=be)},null,40,drt),[[st,O.workoutDate]]),$e(E("input",{id:"workout-time",name:"workout-time",class:"workout-time",type:"time",required:"",onInvalid:oe,disabled:m(u),"onUpdate:modelValue":Ne[3]||(Ne[3]=be=>O.workoutTime=be)},null,40,Ert),[[st,O.workoutTime]])])]),E("div",prt,[E("label",null,_(Z.$t("workouts.DURATION"))+"*:",1),E("div",null,[E("label",frt,_(Z.$t("common.HOURS",0)),1),$e(E("input",{id:"workout-duration-hour",name:"workout-duration-hour",class:Te(["workout-duration",{errored:Y()}]),type:"text",placeholder:"HH",minlength:"1",maxlength:"2",pattern:"^([0-1]?[0-9]|2[0-3])$",required:"",onInvalid:oe,disabled:m(u),"onUpdate:modelValue":Ne[4]||(Ne[4]=be=>O.workoutDurationHour=be)},null,42,mrt),[[st,O.workoutDurationHour]]),Ne[11]||(Ne[11]=H(" : ")),E("label",Trt,_(Z.$t("common.MINUTES",0)),1),$e(E("input",{id:"workout-duration-minutes",name:"workout-duration-minutes",class:Te(["workout-duration",{errored:Y()}]),type:"text",pattern:"^([0-5][0-9])$",minlength:"2",maxlength:"2",placeholder:"MM",required:"",onInvalid:oe,disabled:m(u),"onUpdate:modelValue":Ne[5]||(Ne[5]=be=>O.workoutDurationMinutes=be)},null,42,_rt),[[st,O.workoutDurationMinutes]]),Ne[12]||(Ne[12]=H(" : ")),E("label",hrt,_(Z.$t("common.SECONDS",0)),1),$e(E("input",{id:"workout-duration-seconds",name:"workout-duration-seconds",class:Te(["workout-duration",{errored:Y()}]),type:"text",pattern:"^([0-5][0-9])$",minlength:"2",maxlength:"2",placeholder:"SS",required:"",onInvalid:oe,disabled:m(u),"onUpdate:modelValue":Ne[6]||(Ne[6]=be=>O.workoutDurationSeconds=be)},null,42,Srt),[[st,O.workoutDurationSeconds]])])])]),E("div",Art,[E("div",Ort,[E("label",null,_(Z.$t("workouts.DISTANCE"))+" ("+_(m(r).imperial_units?"mi":"km")+")*: ",1),$e(E("input",{class:Te({errored:z()}),name:"workout-distance",type:"number",min:"0",step:"0.001",required:"",onInvalid:oe,disabled:m(u),"onUpdate:modelValue":Ne[7]||(Ne[7]=be=>O.workoutDistance=be)},null,42,grt),[[st,O.workoutDistance]])]),E("div",Irt,[E("label",null,_(Z.$t("workouts.ASCENT"))+" ("+_(m(r).imperial_units?"ft":"m")+"): ",1),$e(E("input",{class:Te({errored:se()}),name:"workout-ascent",type:"number",min:"0",step:"0.01",onInvalid:oe,disabled:m(u),"onUpdate:modelValue":Ne[8]||(Ne[8]=be=>O.workoutAscent=be)},null,42,Rrt),[[st,O.workoutAscent]])]),E("div",Nrt,[E("label",null,_(Z.$t("workouts.DESCENT"))+" ("+_(m(r).imperial_units?"ft":"m")+"): ",1),$e(E("input",{class:Te({errored:se()}),name:"workout-descent",type:"number",min:"0",step:"0.01",onInvalid:oe,disabled:m(u),"onUpdate:modelValue":Ne[9]||(Ne[9]=be=>O.workoutDescent=be)},null,42,brt),[[st,O.workoutDescent]])])])])),A.value?(h(),I("div",vrt,[E("label",Crt,_(Z.$t("equipments.EQUIPMENT",1))+": ",1),$e(E("select",{id:"workout-equipment",onInvalid:oe,disabled:m(u),"onUpdate:modelValue":Ne[10]||(Ne[10]=be=>O.equipment_id=be)},[E("option",Prt,_(Z.$t("equipments.NO_EQUIPMENTS")),1),(h(!0),I(_e,null,Le(y.value,be=>(h(),I("option",{value:be.id,key:be.id},_(be.label),9,Lrt))),128))],40,Drt),[[Ta,O.equipment_id]])])):M("",!0),m(o)?(h(),I("div",yrt,[E("label",$rt,_(Z.$t("workouts.DESCRIPTION"))+": ",1),W(ye,{name:"description",input:O.description,disabled:m(u),charLimit:1e4,rows:5,onUpdateValue:C},null,8,["input","disabled"])])):M("",!0),m(o)?(h(),I("div",krt,[E("label",Urt,_(Z.$t("workouts.NOTES"))+": ",1),W(ye,{name:"notes",input:O.notes,disabled:m(u),onUpdateValue:P},null,8,["input","disabled"])])):M("",!0)]),T.value?(h(),j(we,{key:0,message:T.value},null,8,["message"])):M("",!0),m(u)?(h(),I("div",wrt,[W(Gt)])):(h(),I("div",Mrt,[E("button",{class:"confirm",type:"submit",disabled:m(u)},_(Z.$t("buttons.SUBMIT")),9,Wrt),E("button",{class:"cancel",onClick:ve(q,["prevent"])},_(Z.$t("buttons.CANCEL")),1)]))],34)])]),_:1})],2)}}}),oI=ie(zrt,[["__scopeId","data-v-31f79f48"]]),Frt={id:"add-workout",class:"view"},xrt={class:"container"},Brt=ee({__name:"AddWorkout",setup(e){const t=ke(),n=w(()=>t.getters[Pt.GETTERS.SPORTS]),a=w(()=>t.getters[X.GETTERS.AUTH_USER_PROFILE]),s=w(()=>t.getters[ge.GETTERS.WORKOUT_DATA]);return(r,i)=>(h(),I("div",Frt,[E("div",xrt,[W(oI,{authUser:a.value,sports:n.value,isCreation:!0,loading:s.value.loading},null,8,["authUser","sports","loading"])])]))}}),Grt={id:"edit-workout",class:"view"},Hrt={class:"container"},Vrt=ee({__name:"EditWorkout",setup(e){const t=yt(),n=ke(),a=w(()=>n.getters[X.GETTERS.AUTH_USER_PROFILE]),s=w(()=>n.getters[Pt.GETTERS.SPORTS]),r=w(()=>n.getters[ge.GETTERS.WORKOUT_DATA]);return Et(()=>{n.dispatch(ge.ACTIONS.GET_WORKOUT_DATA,{workoutId:t.params.workoutId})}),Me(()=>t.params.workoutId,async i=>{i||n.commit(ge.MUTATIONS.EMPTY_WORKOUT)}),(i,o)=>(h(),I("div",Grt,[E("div",Hrt,[r.value.workout.id?(h(),j(oI,{key:0,authUser:a.value,sports:s.value,workout:r.value.workout,loading:r.value.loading},null,8,["authUser","sports","workout","loading"])):M("",!0)])]))}}),Krt={id:"workout-card-title"},jrt=["disabled","title"],qrt={class:"workout-card-title"},Yrt={class:"workout-title-date"},Xrt={key:0,class:"workout-title"},Qrt=["aria-label"],Zrt=["aria-label"],Jrt=["aria-label"],eit={key:1,class:"workout-title"},tit={class:"workout-segment"},nit={class:"workout-date"},ait=["datetime"],sit={class:"workout-link"},rit=["disabled","title"],iit=ee({__name:"WorkoutCardTitle",props:{sport:{},workoutObject:{}},emits:["displayModal"],setup(e,{emit:t}){const n=e,a=t,{sport:s,workoutObject:r}=he(n);async function i(u){await Be.get(`workouts/${u}/gpx/download`,{responseType:"blob"}).then(l=>{const c=window.URL.createObjectURL(new Blob([l.data],{type:"application/gpx+xml"})),p=document.createElement("a");p.href=c,p.setAttribute("download",`${u}.gpx`),document.body.appendChild(p),p.click()})}function o(){a("displayModal",!0)}return(u,l)=>{const c=re("SportImage"),p=re("router-link");return h(),I("div",Krt,[E("button",{class:Te(["workout-previous workout-arrow transparent",{inactive:!m(r).previousUrl}]),disabled:!m(r).previousUrl,title:m(r).previousUrl?u.$t(`workouts.PREVIOUS_${m(r).type}`):u.$t(`workouts.NO_PREVIOUS_${m(r).type}`),onClick:l[0]||(l[0]=d=>m(r).previousUrl?u.$router.push(m(r).previousUrl):null)},l[4]||(l[4]=[E("i",{class:"fa fa-chevron-left","aria-hidden":"true"},null,-1)]),10,jrt),E("div",qrt,[W(c,{"sport-label":m(s).label,color:m(s).color},null,8,["sport-label","color"]),E("div",Yrt,[m(r).type==="WORKOUT"?(h(),I("div",Xrt,[E("span",null,_(m(r).title),1),E("button",{class:"transparent icon-button",onClick:l[1]||(l[1]=d=>u.$router.push({name:"EditWorkout",params:{workoutId:m(r).workoutId}})),"aria-label":u.$t("workouts.EDIT_WORKOUT")},l[5]||(l[5]=[E("i",{class:"fa fa-edit","aria-hidden":"true"},null,-1)]),8,Qrt),m(r).with_gpx?(h(),I("button",{key:0,class:"transparent icon-button",onClick:l[2]||(l[2]=ve(d=>i(m(r).workoutId),["prevent"])),"aria-label":u.$t("workouts.DOWNLOAD_WORKOUT")},l[6]||(l[6]=[E("i",{class:"fa fa-download","aria-hidden":"true"},null,-1)]),8,Zrt)):M("",!0),E("button",{id:"delete-workout-button",class:"transparent icon-button",onClick:ve(o,["prevent"]),"aria-label":u.$t("workouts.DELETE_WORKOUT")},l[7]||(l[7]=[E("i",{class:"fa fa-trash","aria-hidden":"true"},null,-1)]),8,Jrt)])):m(r).segmentId!==null?(h(),I("div",eit,[H(_(m(r).title)+" ",1),E("span",tit,[l[8]||(l[8]=H(" — ")),l[9]||(l[9]=E("i",{class:"fa fa-map-marker","aria-hidden":"true"},null,-1)),H(" "+_(u.$t("workouts.SEGMENT"))+" "+_(m(r).segmentId+1),1)])])):M("",!0),E("div",nit,[E("time",{datetime:m(r).workoutFullDate},_(m(r).workoutDate)+" - "+_(m(r).workoutTime),9,ait),E("span",sit,[m(r).type==="SEGMENT"?(h(),j(p,{key:0,to:{name:"Workout",params:{workoutId:m(r).workoutId}}},{default:ue(()=>[H(" > "+_(u.$t("workouts.BACK_TO_WORKOUT")),1)]),_:1},8,["to"])):M("",!0)])])])]),E("button",{class:Te(["workout-next workout-arrow transparent",{inactive:!m(r).nextUrl}]),disabled:!m(r).nextUrl,title:m(r).nextUrl?u.$t(`workouts.NEXT_${m(r).type}`):u.$t(`workouts.NO_NEXT_${m(r).type}`),onClick:l[3]||(l[3]=d=>m(r).nextUrl?u.$router.push(m(r).nextUrl):null)},l[10]||(l[10]=[E("i",{class:"fa fa-chevron-right","aria-hidden":"true"},null,-1)]),10,rit)])}}}),oit=ie(iit,[["__scopeId","data-v-ba7fce77"]]),uit={key:0,class:"workout-record"},lit=ee({__name:"WorkoutRecord",props:{recordType:{},workoutObject:{}},setup(e){const t=e,{recordType:n,workoutObject:a}=he(t);return(s,r)=>m(a).records&&m(a).records.find(i=>i.record_type===m(n))?(h(),I("span",uit,r[0]||(r[0]=[E("sup",null,[E("i",{class:"fa fa-trophy","aria-hidden":"true"})],-1)]))):M("",!0)}}),oi=ie(lit,[["__scopeId","data-v-1b247cbe"]]),cit="/img/weather/temperature.svg",dit="/img/weather/pour-rain.svg",Eit="/img/weather/breeze.svg",pit=["N","NNE","NE","ENE","E","ESE","SE","SSE","S","SSW","SW","WSW","W","WNW","NW","NNW"],fit=e=>{const t=Math.floor(e/22.5+.5);return pit[t%16]},mit={class:"wind"},Tit={class:"wind-bearing"},_it=["title"],hit=ee({__name:"WeatherWind",props:{weather:{},useImperialUnits:{type:Boolean}},setup(e){const t=e,{useImperialUnits:n,weather:a}=he(t),{t:s}=$t();function r(i){return s(`workouts.WEATHER.WIND_DIRECTIONS.${fit(i)}`)}return(i,o)=>(h(),I("div",mit,[H(_(m(xU)(m(a).wind,m(n)))+" ",1),E("div",Tit,[m(a).windBearing?(h(),I("i",{key:0,class:"fa fa-long-arrow-down",style:Wa({transform:`rotate(${m(a).windBearing}deg)`}),"aria-hidden":"true",title:r(m(a).windBearing)},null,12,_it)):M("",!0)])]))}}),F0=ie(hit,[["__scopeId","data-v-e1f7f9cc"]]),Sit={key:0,id:"workout-weather"},Ait={class:"weather-table"},Oit={class:"weather-th"},git=["src","alt","title"],Iit={class:"weather-th"},Rit=["src","alt","title"],Nit=["alt","title"],bit=["alt","title"],vit=["alt","title"],Cit=ee({__name:"WorkoutWeather",props:{workoutObject:{},useImperialUnits:{type:Boolean}},setup(e){const t=e,{useImperialUnits:n,workoutObject:a}=he(t);return(s,r)=>m(a).weatherStart&&m(a).weatherEnd?(h(),I("div",Sit,[E("table",Ait,[E("thead",null,[E("tr",null,[r[0]||(r[0]=E("th",null,null,-1)),E("th",null,[E("div",Oit,[H(_(s.$t("workouts.START"))+" ",1),E("img",{class:"weather-img",src:`/img/weather/${m(a).weatherStart.icon}.svg`,alt:s.$t(`workouts.WEATHER.DARK_SKY.${m(a).weatherStart.icon}`),title:s.$t(`workouts.WEATHER.DARK_SKY.${m(a).weatherStart.icon}`)},null,8,git)])]),E("th",null,[E("div",Iit,[H(_(s.$t("workouts.END"))+" ",1),E("img",{class:"weather-img",src:`/img/weather/${m(a).weatherEnd.icon}.svg`,alt:s.$t(`workouts.WEATHER.DARK_SKY.${m(a).weatherEnd.icon}`),title:s.$t(`workouts.WEATHER.DARK_SKY.${m(a).weatherEnd.icon}`)},null,8,Rit)])])])]),E("tbody",null,[E("tr",null,[E("td",null,[E("img",{class:"weather-img weather-img-small",src:cit,alt:s.$t("workouts.WEATHER.TEMPERATURE"),title:s.$t("workouts.WEATHER.TEMPERATURE")},null,8,Nit)]),E("td",null,_(m(dT)(m(a).weatherStart.temperature,m(n))),1),E("td",null,_(m(dT)(m(a).weatherEnd.temperature,m(n))),1)]),E("tr",null,[E("td",null,[E("img",{class:"weather-img weather-img-small",src:dit,alt:s.$t("workouts.WEATHER.HUMIDITY"),title:s.$t("workouts.WEATHER.HUMIDITY")},null,8,bit)]),E("td",null,_(Number(m(a).weatherStart.humidity*100).toFixed(1))+"% ",1),E("td",null,_(Number(m(a).weatherEnd.humidity*100).toFixed(1))+"% ",1)]),E("tr",null,[E("td",null,[E("img",{class:"weather-img weather-img-small",src:Eit,alt:s.$t("workouts.WEATHER.WIND"),title:s.$t("workouts.WEATHER.WIND")},null,8,vit)]),E("td",null,[W(F0,{weather:m(a).weatherStart,useImperialUnits:m(n)},null,8,["weather","useImperialUnits"])]),E("td",null,[W(F0,{weather:m(a).weatherEnd,useImperialUnits:m(n)},null,8,["weather","useImperialUnits"])])])])])])):M("",!0)}}),Dit=ie(Cit,[["__scopeId","data-v-be2fffb0"]]),Pit={id:"workout-info"},Lit={class:"workout-data"},yit={class:"label"},$it={class:"value"},kit={key:0},Uit={class:"value"},wit={class:"value"},Mit={key:0,class:"workout-data"},Wit={class:"label"},zit={key:1,class:"workout-data"},Fit={class:"label"},xit={class:"label"},Bit={key:2,class:"workout-data"},Git=["alt"],Hit={class:"label"},Vit={class:"label"},Kit={key:3,class:"workout-data"},jit={class:"label"},qit={class:"label"},Yit=ee({__name:"WorkoutData",props:{workoutObject:{},useImperialUnits:{type:Boolean},displayHARecord:{type:Boolean}},setup(e){const t=e,{displayHARecord:n,workoutObject:a,useImperialUnits:s}=he(t),r=w(()=>t.workoutObject.pauses!=="0:00:00"&&t.workoutObject.pauses!==null);return(i,o)=>{const u=re("Distance");return h(),I("div",Pit,[E("div",Lit,[o[0]||(o[0]=E("i",{class:"fa fa-clock-o","aria-hidden":"true"},null,-1)),E("span",yit,_(i.$t("workouts.DURATION")),1),o[1]||(o[1]=H(": ")),E("span",$it,_(m(a).moving),1),W(oi,{workoutObject:m(a),recordType:"LD"},null,8,["workoutObject"]),r.value?(h(),I("div",kit,[H(" ("+_(i.$t("workouts.PAUSES"))+": ",1),E("span",Uit,_(m(a).pauses),1),H(" - "+_(i.$t("workouts.TOTAL_DURATION"))+": ",1),E("span",wit,_(m(a).duration)+")",1)])):M("",!0)]),m(a).distance!==null?(h(),I("div",Mit,[o[2]||(o[2]=E("i",{class:"fa fa-road","aria-hidden":"true"},null,-1)),E("span",Wit,_(i.$t("workouts.DISTANCE")),1),o[3]||(o[3]=H(": ")),W(u,{distance:m(a).distance,digits:3,unitFrom:"km",strong:!0,useImperialUnits:m(s)},null,8,["distance","useImperialUnits"]),W(oi,{workoutObject:m(a),recordType:"FD"},null,8,["workoutObject"])])):M("",!0),m(a).aveSpeed!==null&&m(a).maxSpeed!==null?(h(),I("div",zit,[o[4]||(o[4]=E("i",{class:"fa fa-tachometer","aria-hidden":"true"},null,-1)),E("span",Fit,_(i.$t("workouts.AVERAGE_SPEED")),1),o[5]||(o[5]=H(": ")),W(u,{distance:m(a).aveSpeed,unitFrom:"km",speed:!0,strong:!0,useImperialUnits:m(s)},null,8,["distance","useImperialUnits"]),W(oi,{workoutObject:m(a),recordType:"AS"},null,8,["workoutObject"]),o[6]||(o[6]=E("br",null,null,-1)),E("span",xit,_(i.$t("workouts.MAX_SPEED")),1),o[7]||(o[7]=H(": ")),W(u,{distance:m(a).maxSpeed,unitFrom:"km",speed:!0,strong:!0,useImperialUnits:m(s)},null,8,["distance","useImperialUnits"]),W(oi,{workoutObject:m(a),recordType:"MS"},null,8,["workoutObject"])])):M("",!0),m(a).maxAlt!==null&&m(a).minAlt!==null?(h(),I("div",Bit,[E("img",{class:"mountains",src:qg,alt:i.$t("workouts.ELEVATION")},null,8,Git),E("span",Hit,_(i.$t("workouts.MIN_ALTITUDE")),1),o[8]||(o[8]=H(": ")),W(u,{distance:m(a).minAlt,unitFrom:"m",strong:!0,useImperialUnits:m(s)},null,8,["distance","useImperialUnits"]),o[9]||(o[9]=E("br",null,null,-1)),E("span",Vit,_(i.$t("workouts.MAX_ALTITUDE")),1),o[10]||(o[10]=H(": ")),W(u,{distance:m(a).maxAlt,unitFrom:"m",strong:!0,useImperialUnits:m(s)},null,8,["distance","useImperialUnits"])])):M("",!0),m(a).ascent!==null&&m(a).descent!==null?(h(),I("div",Kit,[o[11]||(o[11]=E("i",{class:"fa fa-location-arrow","aria-hidden":"true"},null,-1)),E("span",jit,_(i.$t("workouts.ASCENT")),1),o[12]||(o[12]=H(": ")),W(u,{distance:m(a).ascent,unitFrom:"m",strong:!0,useImperialUnits:m(s)},null,8,["distance","useImperialUnits"]),m(n)?(h(),j(oi,{key:0,workoutObject:m(a),recordType:"HA"},null,8,["workoutObject"])):M("",!0),o[13]||(o[13]=E("br",null,null,-1)),E("span",qit,_(i.$t("workouts.DESCENT")),1),o[14]||(o[14]=H(": ")),W(u,{distance:m(a).descent,unitFrom:"m",strong:!0,useImperialUnits:m(s)},null,8,["distance","useImperialUnits"])])):M("",!0),W(Dit,{workoutObject:m(a),useImperialUnits:m(s)},null,8,["workoutObject","useImperialUnits"])])}}}),Xit=ie(Yit,[["__scopeId","data-v-9341b3e8"]]);function hr(e,t){return Array.from(e.getElementsByTagName(t))}function Gr(e){return e==null||e.normalize(),e&&e.textContent||""}function Fs(e,t,n){const a=e.getElementsByTagName(t),s=a.length?a[0]:null;return s&&n&&n(s),s}function Qit(e,t,n){const a={};if(!e)return a;const s=e.getElementsByTagName(t),r=s.length?s[0]:null;return r&&n?n(r,a):a}function uI(e,t,n){const a=Gr(Fs(e,t));return a&&n?n(a)||{}:{}}function x0(e,t,n){const a=parseFloat(Gr(Fs(e,t)));if(!isNaN(a))return a&&n?n(a)||{}:{}}function Zit(e,t,n){const a=parseFloat(Gr(Fs(e,t)));if(!isNaN(a))return n&&n(a),a}function FE(e,t){const n={};for(const a of t)uI(e,a,s=>{n[a]=s});return n}function Jit(e){return(e==null?void 0:e.nodeType)===1}function lI(e){return Qit(e,"line",t=>Object.assign({},uI(t,"color",a=>({stroke:`#${a}`})),x0(t,"opacity",a=>({"stroke-opacity":a})),x0(t,"width",a=>({"stroke-width":a*96/25.4}))))}function cI(e){let t=[];if(e===null)return t;for(const n of Array.from(e.childNodes)){if(!Jit(n))continue;const a=eot(n.nodeName);if(a==="gpxtpx:TrackPointExtension")t=t.concat(cI(n));else{const s=Gr(n);t.push([a,tot(s)])}}return t}function eot(e){return["heart","gpxtpx:hr","hr"].includes(e)?"heart":e}function tot(e){const t=parseFloat(e);return isNaN(t)?e:t}function dI(e){const t=[parseFloat(e.getAttribute("lon")||""),parseFloat(e.getAttribute("lat")||"")];if(isNaN(t[0])||isNaN(t[1]))return null;Zit(e,"ele",a=>{t.push(a)});const n=Fs(e,"time");return{coordinates:t,time:n?Gr(n):null,extendedValues:cI(Fs(e,"extensions"))}}function Nf(e){var s;const t=FE(e,["name","cmt","desc","type","time","keywords"]),n=Array.from(e.getElementsByTagNameNS("http://www.garmin.com/xmlschemas/GpxExtensions/v3","*"));for(const r of n)((s=r.parentNode)==null?void 0:s.parentNode)===e&&(t[r.tagName.replace(":","_")]=Gr(r));const a=hr(e,"link");return a.length&&(t.links=a.map(r=>Object.assign({href:r.getAttribute("href")},FE(r,["text","type"])))),t}function EI(e,t){const n=hr(e,t),a=[],s=[],r={};for(let i=0;i1,i=Object.assign({_gpxType:"trk"},Nf(e),lI(Fs(e,"extensions")),a.length?{coordinateProperties:{times:r?a:a[0]}}:{});for(const o of s){n.push(o.line),i.coordinateProperties||(i.coordinateProperties={});const u=i.coordinateProperties,l=Object.entries(o.extendedValues);for(let c=0;cnew Array(f.line.length).fill(null))),u[p][c]=d):u[p]=d}}return{type:"Feature",properties:i,geometry:r?{type:"MultiLineString",coordinates:n}:{type:"LineString",coordinates:n[0]}}}function sot(e){const t=Object.assign(Nf(e),FE(e,["sym"])),n=dI(e);return n?{type:"Feature",properties:t,geometry:{type:"Point",coordinates:n.coordinates}}:null}function*rot(e){for(const t of hr(e,"trk")){const n=aot(t);n&&(yield n)}for(const t of hr(e,"rte")){const n=not(t);n&&(yield n)}for(const t of hr(e,"wpt")){const n=sot(t);n&&(yield n)}}function iot(e){return{type:"FeatureCollection",features:Array.from(rot(e))}}const B0=(e,t)=>{for(const n of Object.keys(t))e.on(n,t[n])},pI=e=>{for(const t of Object.keys(e)){const n=e[t];n&&as(n.cancel)&&n.cancel()}},oot=e=>!e||typeof e.charAt!="function"?e:e.charAt(0).toUpperCase()+e.slice(1),as=e=>typeof e=="function",xa=(e,t,n)=>{for(const a in n){const s="set"+oot(a);e[s]?Me(()=>n[a],(r,i)=>{e[s](r,i)}):t[s]&&Me(()=>n[a],r=>{t[s](r)})}},Aa=(e,t,n={})=>{const a={...n};for(const s in e){const r=t[s],i=e[s];r&&(r&&r.custom===!0||i!==void 0&&(a[s]=i))}return a},js=e=>{const t={},n={};for(const a in e)if(a.startsWith("on")&&!a.startsWith("onUpdate")&&a!=="onReady"){const s=a.slice(2).toLocaleLowerCase();t[s]=e[a]}else n[a]=e[a];return{listeners:t,attrs:n}},uot=async e=>{const t=await Promise.all([Wt(()=>import("./maps-BFpqWvfo.js").then(n=>n.m),__vite__mapDeps([0,1])),Wt(()=>import("./maps-BFpqWvfo.js").then(n=>n.b),__vite__mapDeps([0,1])),Wt(()=>import("./maps-BFpqWvfo.js").then(n=>n.d),__vite__mapDeps([0,1]))]);delete e.Default.prototype._getIconUrl,e.Default.mergeOptions({iconRetinaUrl:t[0].default,iconUrl:t[1].default,shadowUrl:t[2].default})},eu=e=>{const t=de((...a)=>console.warn(`Method ${e} has been invoked without being replaced`)),n=(...a)=>t.value(...a);return n.wrapped=t,pn(e,n),n},tu=(e,t)=>e.wrapped.value=t,Qn=typeof self=="object"&&self.self===self&&self||typeof global=="object"&&global.global===global&&global||globalThis,Vn=e=>{const t=vt(e);if(t===void 0)throw new Error(`Attempt to inject ${e.description} before it was provided.`);return t},Ba=Symbol("useGlobalLeaflet"),_s=Symbol("addLayer"),bf=Symbol("removeLayer"),fI=Symbol("registerControl"),mI=Symbol("registerLayerControl"),TI=Symbol("canSetParentHtml"),_I=Symbol("setParentHtml"),hI=Symbol("setIcon"),lot=Symbol("bindPopup"),cot=Symbol("bindTooltip"),dot=Symbol("unbindPopup"),Eot=Symbol("unbindTooltip"),Io={options:{type:Object,default:()=>({}),custom:!0}},fc=e=>({options:e.options,methods:{}}),Hr={...Io,pane:{type:String},attribution:{type:String},name:{type:String,custom:!0},layerType:{type:String,custom:!0},visible:{type:Boolean,custom:!0,default:!0}},vf=(e,t,n)=>{const a=Vn(_s),s=Vn(bf),{options:r,methods:i}=fc(e),o=Aa(e,Hr,r),u=()=>a({leafletObject:t.value}),l=()=>s({leafletObject:t.value}),c={...i,setAttribution(p){l(),t.value.options.attribution=p,e.visible&&u()},setName(){l(),e.visible&&u()},setLayerType(){l(),e.visible&&u()},setVisible(p){t.value&&(p?u():l())},bindPopup(p){if(!t.value||!as(t.value.bindPopup)){console.warn("Attempt to bind popup before bindPopup method available on layer.");return}t.value.bindPopup(p)},bindTooltip(p){if(!t.value||!as(t.value.bindTooltip)){console.warn("Attempt to bind tooltip before bindTooltip method available on layer.");return}t.value.bindTooltip(p)},unbindTooltip(){t.value&&(as(t.value.closeTooltip)&&t.value.closeTooltip(),as(t.value.unbindTooltip)&&t.value.unbindTooltip())},unbindPopup(){t.value&&(as(t.value.closePopup)&&t.value.closePopup(),as(t.value.unbindPopup)&&t.value.unbindPopup())},updateVisibleProp(p){n.emit("update:visible",p)}};return pn(lot,c.bindPopup),pn(cot,c.bindTooltip),pn(dot,c.unbindPopup),pn(Eot,c.unbindTooltip),pt(()=>{c.unbindPopup(),c.unbindTooltip(),l()}),{options:o,methods:c}},Cf=(e,t)=>{if(e&&t.default)return Rn("div",{style:{display:"none"}},t.default())},pot={...Hr,interactive:{type:Boolean,default:void 0},bubblingMouseEvents:{type:Boolean,default:void 0}},SI={...pot,stroke:{type:Boolean,default:void 0},color:{type:String},weight:{type:Number},opacity:{type:Number},lineCap:{type:String},lineJoin:{type:String},dashArray:{type:String},dashOffset:{type:String},fill:{type:Boolean,default:void 0},fillColor:{type:String},fillOpacity:{type:Number},fillRule:{type:String},className:{type:String}},fot={...SI,radius:{type:Number},latLng:{type:[Object,Array],required:!0,custom:!0}};({...fot});const Vr={...Io,position:{type:String}},AI=(e,t)=>{const{options:n,methods:a}=fc(e),s=Aa(e,Vr,n),r={...a,setPosition(i){t.value&&t.value.setPosition(i)}};return pt(()=>{t.value&&t.value.remove()}),{options:s,methods:r}},mot=e=>e.default?Rn("div",{ref:"root"},e.default()):null,G0=ee({name:"LControl",props:{...Vr,disableClickPropagation:{type:Boolean,custom:!0,default:!0},disableScrollPropagation:{type:Boolean,custom:!0,default:!1}},setup(e,t){const n=de(),a=de(),s=vt(Ba),r=Vn(fI),{options:i,methods:o}=AI(e,n);return St(async()=>{const{Control:u,DomEvent:l}=s?Qn.L:await Wt(()=>import("./maps-BFpqWvfo.js").then(p=>p.e),__vite__mapDeps([0,1])),c=u.extend({onAdd(){return a.value}});n.value=za(new c(i)),xa(o,n.value,e),r({leafletObject:n.value}),e.disableClickPropagation&&a.value&&l.disableClickPropagation(a.value),e.disableScrollPropagation&&a.value&&l.disableScrollPropagation(a.value),fn(()=>t.emit("ready",n.value))}),{root:a,leafletObject:n}},render(){return mot(this.$slots)}});({...Vr});const OI={...Vr,collapsed:{type:Boolean,default:void 0},autoZIndex:{type:Boolean,default:void 0},hideSingleBase:{type:Boolean,default:void 0},sortLayers:{type:Boolean,default:void 0},sortFunction:{type:Function}},Tot=(e,t)=>{const{options:n}=AI(e,t);return{options:Aa(e,OI,n),methods:{addLayer(a){a.layerType==="base"?t.value.addBaseLayer(a.leafletObject,a.name):a.layerType==="overlay"&&t.value.addOverlay(a.leafletObject,a.name)},removeLayer(a){t.value.removeLayer(a.leafletObject)}}}},_ot=ee({name:"LControlLayers",props:OI,setup(e,t){const n=de(),a=vt(Ba),s=Vn(mI),{options:r,methods:i}=Tot(e,n);return St(async()=>{const{control:o}=a?Qn.L:await Wt(()=>import("./maps-BFpqWvfo.js").then(u=>u.e),__vite__mapDeps([0,1]));n.value=za(o.layers(void 0,void 0,r)),xa(i,n.value,e),s({...e,...i,leafletObject:n.value}),fn(()=>t.emit("ready",n.value))}),{leafletObject:n}},render(){return null}});({...Vr});({...Vr});const mc={...Hr},gI=(e,t,n)=>{const{options:a,methods:s}=vf(e,t,n),r=Aa(e,mc,a),i={...s,addLayer(o){t.value.addLayer(o.leafletObject)},removeLayer(o){t.value.removeLayer(o.leafletObject)}};return pn(_s,i.addLayer),pn(bf,i.removeLayer),{options:r,methods:i}};({...mc});const II={...mc,geojson:{type:[Object,Array],custom:!0},optionsStyle:{type:Function,custom:!0}},hot=(e,t,n)=>{const{options:a,methods:s}=gI(e,t,n),r=Aa(e,II,a);Object.prototype.hasOwnProperty.call(e,"optionsStyle")&&(r.style=e.optionsStyle);const i={...s,setGeojson(o){t.value.clearLayers(),t.value.addData(o)},setOptionsStyle(o){t.value.setStyle(o)},getGeoJSONData(){return t.value.toGeoJSON()},getBounds(){return t.value.getBounds()}};return{options:r,methods:i}},Sot=ee({props:II,setup(e,t){const n=de(),a=de(!1),s=vt(Ba),r=Vn(_s),{methods:i,options:o}=hot(e,n,t);return St(async()=>{const{geoJSON:u}=s?Qn.L:await Wt(()=>import("./maps-BFpqWvfo.js").then(c=>c.e),__vite__mapDeps([0,1]));n.value=za(u(e.geojson,o));const{listeners:l}=js(t.attrs);n.value.on(l),xa(i,n.value,e),r({...e,...i,leafletObject:n.value}),a.value=!0,fn(()=>t.emit("ready",n.value))}),{ready:a,leafletObject:n}},render(){return Cf(this.ready,this.$slots)}}),Df={...Hr,opacity:{type:Number},zIndex:{type:Number},tileSize:{type:[Number,Array,Object]},noWrap:{type:Boolean,default:void 0},minZoom:{type:Number},maxZoom:{type:Number},className:{type:String}},RI=(e,t,n)=>{const{options:a,methods:s}=vf(e,t,n),r=Aa(e,Df,a),i={...s,setTileComponent(){var o;(o=t.value)==null||o.redraw()}};return pt(()=>{t.value.off()}),{options:r,methods:i}},Aot=(e,t,n,a)=>e.extend({initialize(s){this.tileComponents={},this.on("tileunload",this._unloadTile),n.setOptions(this,s)},createTile(s){const r=this._tileCoordsToKey(s);this.tileComponents[r]=t.create("div");const i=Rn({setup:a,props:["coords"]},{coords:s});return Db(i,this.tileComponents[r]),this.tileComponents[r]},_unloadTile(s){const r=this._tileCoordsToKey(s.coords);this.tileComponents[r]&&(this.tileComponents[r].innerHTML="",this.tileComponents[r]=void 0)}});({...Df});const H0={iconUrl:{type:String},iconRetinaUrl:{type:String},iconSize:{type:[Object,Array]},iconAnchor:{type:[Object,Array]},popupAnchor:{type:[Object,Array]},tooltipAnchor:{type:[Object,Array]},shadowUrl:{type:String},shadowRetinaUrl:{type:String},shadowSize:{type:[Object,Array]},shadowAnchor:{type:[Object,Array]},bgPos:{type:[Object,Array]},className:{type:String}},Oot=ee({name:"LIcon",props:{...H0,...Io},setup(e,t){const n=de(),a=vt(Ba),s=Vn(TI),r=Vn(_I),i=Vn(hI);let o,u,l,c,p;const d=(R,g,N)=>{const S=R&&R.innerHTML;if(!g){N&&p&&s()&&r(S);return}const{listeners:A}=js(t.attrs);p&&u(p,A);const{options:b}=fc(e),y=Aa(e,H0,b);S&&(y.html=S),p=y.html?l(y):c(y),o(p,A),i(p)},f=()=>{fn(()=>d(n.value,!0,!1))},T=()=>{fn(()=>d(n.value,!1,!0))},O={setIconUrl:f,setIconRetinaUrl:f,setIconSize:f,setIconAnchor:f,setPopupAnchor:f,setTooltipAnchor:f,setShadowUrl:f,setShadowRetinaUrl:f,setShadowAnchor:f,setBgPos:f,setClassName:f,setHtml:f};return St(async()=>{const{DomEvent:R,divIcon:g,icon:N}=a?Qn.L:await Wt(()=>import("./maps-BFpqWvfo.js").then(S=>S.e),__vite__mapDeps([0,1]));o=R.on,u=R.off,l=g,c=N,xa(O,{},e),new MutationObserver(T).observe(n.value,{attributes:!0,childList:!0,characterData:!0,subtree:!0}),f()}),{root:n}},render(){const e=this.$slots.default?this.$slots.default():void 0;return Rn("div",{ref:"root"},e)}});({...Hr});const got=ee({props:mc,setup(e,t){const n=de(),a=de(!1),s=vt(Ba),r=Vn(_s),{methods:i}=gI(e,n,t);return St(async()=>{const{layerGroup:o}=s?Qn.L:await Wt(()=>import("./maps-BFpqWvfo.js").then(l=>l.e),__vite__mapDeps([0,1]));n.value=za(o(void 0,e.options));const{listeners:u}=js(t.attrs);n.value.on(u),xa(i,n.value,e),r({...e,...i,leafletObject:n.value}),a.value=!0,fn(()=>t.emit("ready",n.value))}),{ready:a,leafletObject:n}},render(){return Cf(this.ready,this.$slots)}});function NI(e,t,n){var a,s,r;t===void 0&&(t=50),n===void 0&&(n={});var i=(a=n.isImmediate)!=null&&a,o=(s=n.callback)!=null&&s,u=n.maxWait,l=Date.now(),c=[];function p(){if(u!==void 0){var f=Date.now()-l;if(f+t>=u)return u-f}return t}var d=function(){var f=[].slice.call(arguments),T=this;return new Promise(function(O,R){var g=i&&r===void 0;if(r!==void 0&&clearTimeout(r),r=setTimeout(function(){if(r=void 0,l=Date.now(),!i){var S=e.apply(T,f);o&&o(S),c.forEach(function(A){return(0,A.resolve)(S)}),c=[]}},p()),g){var N=e.apply(T,f);return o&&o(N),O(N)}c.push({resolve:O,reject:R})})};return d.cancel=function(f){r!==void 0&&clearTimeout(r),c.forEach(function(T){return(0,T.reject)(f)}),c=[]},d}const V0={...Io,center:{type:[Object,Array]},bounds:{type:[Array,Object]},maxBounds:{type:[Array,Object]},zoom:{type:Number},minZoom:{type:Number},maxZoom:{type:Number},paddingBottomRight:{type:[Object,Array]},paddingTopLeft:{type:Object},padding:{type:Object},worldCopyJump:{type:Boolean,default:void 0},crs:{type:[String,Object]},maxBoundsViscosity:{type:Number},inertia:{type:Boolean,default:void 0},inertiaDeceleration:{type:Number},inertiaMaxSpeed:{type:Number},easeLinearity:{type:Number},zoomAnimation:{type:Boolean,default:void 0},zoomAnimationThreshold:{type:Number},fadeAnimation:{type:Boolean,default:void 0},markerZoomAnimation:{type:Boolean,default:void 0},noBlockingAnimations:{type:Boolean,default:void 0},useGlobalLeaflet:{type:Boolean,default:!0,custom:!0}},Iot=ee({inheritAttrs:!1,emits:["ready","update:zoom","update:center","update:bounds"],props:V0,setup(e,t){const n=de(),a=Yt({ready:!1,layersToAdd:[],layersInControl:[]}),{options:s}=fc(e),r=Aa(e,V0,s),{listeners:i,attrs:o}=js(t.attrs),u=eu(_s),l=eu(bf),c=eu(fI),p=eu(mI);pn(Ba,e.useGlobalLeaflet);const d=w(()=>{const g={};return e.noBlockingAnimations&&(g.animate=!1),g}),f=w(()=>{const g=d.value;return e.padding&&(g.padding=e.padding),e.paddingTopLeft&&(g.paddingTopLeft=e.paddingTopLeft),e.paddingBottomRight&&(g.paddingBottomRight=e.paddingBottomRight),g}),T={moveend:NI(g=>{a.leafletRef&&(t.emit("update:zoom",a.leafletRef.getZoom()),t.emit("update:center",a.leafletRef.getCenter()),t.emit("update:bounds",a.leafletRef.getBounds()))}),overlayadd(g){const N=a.layersInControl.find(S=>S.name===g.name);N&&N.updateVisibleProp(!0)},overlayremove(g){const N=a.layersInControl.find(S=>S.name===g.name);N&&N.updateVisibleProp(!1)}};St(async()=>{e.useGlobalLeaflet&&(Qn.L=Qn.L||await Wt(()=>import("./maps-BFpqWvfo.js").then(D=>D.l),__vite__mapDeps([0,1])));const{map:g,CRS:N,Icon:S,latLngBounds:A,latLng:b,stamp:y}=e.useGlobalLeaflet?Qn.L:await Wt(()=>import("./maps-BFpqWvfo.js").then(D=>D.e),__vite__mapDeps([0,1]));try{r.beforeMapMount&&await r.beforeMapMount()}catch(D){console.error(`The following error occurred running the provided beforeMapMount hook ${D.message}`)}await uot(S);const P=typeof r.crs=="string"?N[r.crs]:r.crs;r.crs=P||N.EPSG3857;const C={addLayer(D){D.layerType!==void 0&&(a.layerControl===void 0?a.layersToAdd.push(D):a.layersInControl.find(F=>y(F.leafletObject)===y(D.leafletObject))||(a.layerControl.addLayer(D),a.layersInControl.push(D))),D.visible!==!1&&a.leafletRef.addLayer(D.leafletObject)},removeLayer(D){D.layerType!==void 0&&(a.layerControl===void 0?a.layersToAdd=a.layersToAdd.filter(F=>F.name!==D.name):(a.layerControl.removeLayer(D.leafletObject),a.layersInControl=a.layersInControl.filter(F=>y(F.leafletObject)!==y(D.leafletObject)))),a.leafletRef.removeLayer(D.leafletObject)},registerLayerControl(D){a.layerControl=D,a.layersToAdd.forEach(F=>{a.layerControl.addLayer(F)}),a.layersToAdd=[],c(D)},registerControl(D){a.leafletRef.addControl(D.leafletObject)},setZoom(D){const F=a.leafletRef.getZoom();D!==F&&a.leafletRef.setZoom(D,d.value)},setCrs(D){const F=a.leafletRef.getBounds();a.leafletRef.options.crs=D,a.leafletRef.fitBounds(F,{animate:!1,padding:[0,0]})},fitBounds(D){a.leafletRef.fitBounds(D,f.value)},setBounds(D){if(!D)return;const F=A(D);F.isValid()&&!(a.lastSetBounds||a.leafletRef.getBounds()).equals(F,0)&&(a.lastSetBounds=F,a.leafletRef.fitBounds(F))},setCenter(D){if(D==null)return;const F=b(D),$=a.lastSetCenter||a.leafletRef.getCenter();($.lat!==F.lat||$.lng!==F.lng)&&(a.lastSetCenter=F,a.leafletRef.panTo(F,d.value))}};tu(u,C.addLayer),tu(l,C.removeLayer),tu(c,C.registerControl),tu(p,C.registerLayerControl),a.leafletRef=za(g(n.value,r)),xa(C,a.leafletRef,e),B0(a.leafletRef,T),B0(a.leafletRef,i),a.ready=!0,fn(()=>t.emit("ready",a.leafletRef))}),ao(()=>{pI(T),a.leafletRef&&(a.leafletRef.off(),a.leafletRef.remove())});const O=w(()=>a.leafletRef),R=w(()=>a.ready);return{root:n,ready:R,leafletObject:O,attrs:o}},render({attrs:e}){return e.style||(e.style={}),e.style.width||(e.style.width="100%"),e.style.height||(e.style.height="100%"),Rn("div",{...e,ref:"root"},this.ready&&this.$slots.default?this.$slots.default():{})}}),Rot=["Symbol(Comment)","Symbol(Text)"],Not=["LTooltip","LPopup"],bI={...Hr,draggable:{type:Boolean,default:void 0},icon:{type:[Object]},zIndexOffset:{type:Number},latLng:{type:[Object,Array],custom:!0,required:!0}},bot=(e,t,n)=>{const{options:a,methods:s}=vf(e,t,n),r=Aa(e,bI,a),i={...s,setDraggable(o){t.value.dragging&&(o?t.value.dragging.enable():t.value.dragging.disable())},latLngSync(o){n.emit("update:latLng",o.latlng),n.emit("update:lat-lng",o.latlng)},setLatLng(o){if(o!=null&&t.value){const u=t.value.getLatLng();(!u||!u.equals(o))&&t.value.setLatLng(o)}}};return{options:r,methods:i}},vot=(e,t)=>{const n=t.slots.default&&t.slots.default();return n&&n.length&&n.some(Cot)};function Cot(e){return!(Rot.includes(e.type.toString())||Not.includes(e.type.name))}const vI=ee({name:"LMarker",props:bI,setup(e,t){const n=de(),a=de(!1),s=vt(Ba),r=Vn(_s);pn(TI,()=>{var l;return!!((l=n.value)!=null&&l.getElement())}),pn(_I,l=>{var c,p;const d=as((c=n.value)==null?void 0:c.getElement)&&((p=n.value)==null?void 0:p.getElement());d&&(d.innerHTML=l)}),pn(hI,l=>{var c;return((c=n.value)==null?void 0:c.setIcon)&&n.value.setIcon(l)});const{options:i,methods:o}=bot(e,n,t),u={moveHandler:NI(o.latLngSync)};return St(async()=>{const{marker:l,divIcon:c}=s?Qn.L:await Wt(()=>import("./maps-BFpqWvfo.js").then(d=>d.e),__vite__mapDeps([0,1]));vot(i,t)&&(i.icon=c({className:""})),n.value=za(l(e.latLng,i));const{listeners:p}=js(t.attrs);n.value.on(p),n.value.on("move",u.moveHandler),xa(o,n.value,e),r({...e,...o,leafletObject:n.value}),a.value=!0,fn(()=>t.emit("ready",n.value))}),ao(()=>pI(u)),{ready:a,leafletObject:n}},render(){return Cf(this.ready,this.$slots)}}),Dot={...SI,smoothFactor:{type:Number},noClip:{type:Boolean,default:void 0},latLngs:{type:Array,required:!0,custom:!0}},K0={...Dot},CI={...Io,content:{type:String,default:null}};({...CI});({...K0,latLngs:{...K0.latLngs}});const Pf={...Df,tms:{type:Boolean,default:void 0},subdomains:{type:[String,Array],validator:e=>typeof e=="string"?!0:Array.isArray(e)?e.every(t=>typeof t=="string"):!1},detectRetina:{type:Boolean,default:void 0},url:{type:String,required:!0,custom:!0}},Pot=(e,t,n)=>{const{options:a,methods:s}=RI(e,t,n),r=Aa(e,Pf,a),i={...s};return{options:r,methods:i}},Lot=ee({props:Pf,setup(e,t){const n=de(),a=vt(Ba),s=Vn(_s),{options:r,methods:i}=Pot(e,n,t);return St(async()=>{const{tileLayer:o}=a?Qn.L:await Wt(()=>import("./maps-BFpqWvfo.js").then(l=>l.e),__vite__mapDeps([0,1]));n.value=za(o(e.url,r));const{listeners:u}=js(t.attrs);n.value.on(u),xa(i,n.value,e),s({...e,...i,leafletObject:n.value}),fn(()=>t.emit("ready",n.value))}),{leafletObject:n}},render(){return null}});({...CI});({...Pf});const j0=ee({__name:"CustomMarker",props:{markerCoordinates:{},isStart:{type:Boolean}},setup(e){const t=e,{isStart:n,markerCoordinates:a}=he(t);return(s,r)=>m(a).latitude?(h(),j(m(vI),{key:0,"lat-lng":[m(a).latitude,m(a).longitude]},{default:ue(()=>[W(m(Oot),{"icon-url":`/img/workouts/${m(n)?"start":"finish"}.svg`,iconSize:[15,15]},null,8,["icon-url"])]),_:1},8,["lat-lng"])):M("",!0)}}),yot={id:"workout-map"},$ot={key:0,class:"leaflet-container"},kot={key:1},Uot={key:1,class:"no-map"},wot=ee({__name:"index",props:{workoutData:{},markerCoordinates:{default:()=>({})}},setup(e){const t=e,n=ke(),{workoutData:a,markerCoordinates:s}=he(t),r=de(null),i=w(()=>R()),o=w(()=>n.getters[K.GETTERS.APP_CONFIG]),u=w(()=>T(i)),l=w(()=>t.workoutData&&t.workoutData.gpx?f(t.workoutData.gpx):{}),c=w(()=>t.workoutData&&t.workoutData.chartData.length>0?{latitude:t.workoutData.chartData[0].latitude,longitude:t.workoutData.chartData[0].longitude}:{}),p=w(()=>t.workoutData&&t.workoutData.chartData.length>0?{latitude:t.workoutData.chartData[t.workoutData.chartData.length-1].latitude,longitude:t.workoutData.chartData[t.workoutData.chartData.length-1].longitude}:{}),d=de(!1);function f(S){if(!S||S!=="")try{return{jsonData:iot(new DOMParser().parseFromString(S,"text/xml"))}}catch{return console.error("Invalid gpx content"),{}}return{}}function T(S){return[(S.value[0][0]+S.value[1][0])/2,(S.value[0][1]+S.value[1][1])/2]}function O(S){var A,b;(A=r.value)!=null&&A.leafletObject&&((b=r.value)==null||b.leafletObject.fitBounds(S))}function R(){return t.workoutData?[[t.workoutData.workout.bounds[0],t.workoutData.workout.bounds[1]],[t.workoutData.workout.bounds[2],t.workoutData.workout.bounds[3]]]:[]}function g(){var S;(S=r.value)==null||S.leafletObject.fitBounds(R())}function N(){d.value=!d.value,d.value||setTimeout(()=>{g()},100)}return(S,A)=>{const b=re("VFullscreen");return h(),I("div",yot,[m(a).loading?(h(),I("div",$ot)):(h(),I("div",kot,[m(a).workout.with_gpx?(h(),j(b,{key:0,modelValue:d.value,"onUpdate:modelValue":A[1]||(A[1]=y=>d.value=y)},{default:ue(()=>[E("div",{class:Te(["leaflet-container",{"fullscreen-map":d.value}])},[l.value.jsonData&&u.value&&i.value.length===2?(h(),j(m(Iot),{key:0,zoom:13,maxZoom:19,center:u.value,bounds:i.value,zoomAnimation:!1,ref_key:"workoutMap",ref:r,onReady:A[0]||(A[0]=y=>O(i.value)),"use-global-leaflet":!1,class:"map","aria-label":S.$t("workouts.WORKOUT_MAP")},{default:ue(()=>[W(m(_ot)),W(m(G0),{position:"topleft",class:"map-control",tabindex:"0",role:"button","aria-label":S.$t("workouts.RESET_ZOOM"),onClick:g},{default:ue(()=>A[2]||(A[2]=[E("i",{class:"fa fa-refresh","aria-hidden":"true"},null,-1)])),_:1},8,["aria-label"]),W(m(G0),{position:"topleft",class:"map-control",tabindex:"0",role:"button","aria-label":S.$t(`workouts.${d.value?"EXIT":"VIEW"}_FULLSCREEN`),onClick:N},{default:ue(()=>[E("i",{class:Te(`fa fa-${d.value?"compress":"arrows-alt"}`),"aria-hidden":"true"},null,2)]),_:1},8,["aria-label"]),W(m(Lot),{url:`${m(uo)()}workouts/map_tile/{s}/{z}/{x}/{y}.png`,attribution:o.value.map_attribution,bounds:i.value},null,8,["url","attribution","bounds"]),W(m(Sot),{geojson:l.value.jsonData},null,8,["geojson"]),m(s).latitude?(h(),j(m(vI),{key:0,"lat-lng":[m(s).latitude,m(s).longitude]},null,8,["lat-lng"])):M("",!0),W(m(got),{name:S.$t("workouts.START_AND_FINISH"),"layer-type":"overlay"},{default:ue(()=>[c.value.latitude?(h(),j(j0,{key:0,markerCoordinates:c.value,isStart:!0},null,8,["markerCoordinates"])):M("",!0),p.value.latitude?(h(),j(j0,{key:1,markerCoordinates:p.value,isStart:!1},null,8,["markerCoordinates"])):M("",!0)]),_:1},8,["name"])]),_:1},8,["center","bounds","aria-label"])):M("",!0)],2)]),_:1},8,["modelValue"])):(h(),I("div",Uot,_(S.$t("workouts.NO_MAP")),1))]))])}}}),Mot=ie(wot,[["__scopeId","data-v-02ef686a"]]),Wot={class:"workout-detail"},zot={class:"workout-map-data"},Fot={key:0,class:"workout-equipments"},xot=ee({__name:"index",props:{authUser:{},displaySegment:{type:Boolean},sports:{},workoutData:{},markerCoordinates:{default:()=>({})}},setup(e){const t=e,n=yt(),a=ke(),{authUser:s,markerCoordinates:r,workoutData:i}=he(t),o=w(()=>t.workoutData.workout),u=de(n.params.workoutId?+n.params.segmentId:null),l=w(()=>o.value.segments.length>0&&u.value?o.value.segments[+u.value-1]:null),c=de(!1),p=w(()=>t.sports?t.sports.find(S=>S.id===t.workoutData.workout.sport_id):{}),d=w(()=>T(o.value,l.value));function f(S,A,b){const y=A&&b&&b!==1?`/workouts/${S.id}/segment/${b-1}`:!A&&S.previous_workout?`/workouts/${S.previous_workout}`:null,P=A&&b&&bn.params.segmentId,async S=>{u.value=S?+S:null,N()}),Me(()=>n.params.workoutId,async S=>{S&&(c.value=!1,N())}),(S,A)=>{const b=re("Modal"),y=re("Card");return h(),I("div",Wot,[c.value?(h(),j(b,{key:0,title:S.$t("common.CONFIRMATION"),message:S.$t("workouts.WORKOUT_DELETION_CONFIRMATION"),onConfirmAction:A[0]||(A[0]=P=>g(d.value.workoutId)),onCancelAction:R,onKeydown:Je(R,["esc"])},null,8,["title","message"])):M("",!0),W(y,null,{title:ue(()=>[p.value?(h(),j(oit,{key:0,sport:p.value,workoutObject:d.value,onDisplayModal:A[1]||(A[1]=P=>O(!0))},null,8,["sport","workoutObject"])):M("",!0)]),content:ue(()=>[E("div",zot,[W(Mot,{workoutData:m(i),markerCoordinates:m(r)},null,8,["workoutData","markerCoordinates"]),W(Xit,{workoutObject:d.value,useImperialUnits:m(s).imperial_units,displayHARecord:m(s).display_ascent},null,8,["workoutObject","useImperialUnits","displayHARecord"])]),d.value.equipments?(h(),I("div",Fot,[(h(!0),I(_e,null,Le(d.value.equipments,P=>(h(),j(Kg,{equipment:P,"workout-id":d.value.workoutId,key:P.label},null,8,["equipment","workout-id"]))),128))])):M("",!0)]),_:1})])}}}),Bot=ie(xot,[["__scopeId","data-v-203972ae"]]),Got=e=>{const t=document.getElementById(e);if(t){let n=t.querySelector("ul");return n||(n=document.createElement("ul"),t.appendChild(n)),n}throw new Error("No legend container")},Hot={id:"htmlLegend",afterUpdate(e,t,n){var r,i,o,u,l,c;const a=Got(n.containerID);for(;a.firstChild;)a.firstChild.remove();((o=(i=(r=e.options.plugins)==null?void 0:r.legend)==null?void 0:i.labels)!=null&&o.generateLabels?(c=(l=(u=e.options.plugins)==null?void 0:u.legend)==null?void 0:l.labels)==null?void 0:c.generateLabels(e):[]).forEach(p=>{var g,N,S;if(!((S=(N=(g=e.config.options)==null?void 0:g.scales)==null?void 0:N.yElevation)!=null&&S.display)&&p.datasetIndex===1)return;const d=document.createElement("li");d.onclick=A=>{A.preventDefault(),p.datasetIndex!==void 0&&(e.setDatasetVisibility(p.datasetIndex,!e.isDatasetVisible(p.datasetIndex)),e.update())};const f=document.createElement("input");f&&(f.type="checkbox",f.id=p.text,f.checked=!p.hidden);const T=document.createElement("label");T.htmlFor=f.id;const O=document.createTextNode(p.text);T.appendChild(O);const R=document.createElement("span");R&&(R.style.background=String(p.fillStyle),R.style.borderColor=String(p.strokeStyle)),T.appendChild(R),d.appendChild(f),d.appendChild(T),a.appendChild(d)})}},Vot={id:"workout-chart"},Kot={class:"chart-radio"},jot=["checked"],qot=["checked"],Yot={class:"line-chart"},Xot={class:"chart-info"},Qot={class:"no-data-cleaning"},Zot={key:0,class:"elevation-start"},Jot=["checked"],eut=ee({__name:"index",props:{authUser:{},workoutData:{}},emits:["getCoordinates"],setup(e,{emit:t}){const n=e,a=t,s=co(),{t:r}=$t(),{authUser:i,workoutData:o}=he(n),u=w(()=>s.getters[K.GETTERS.DARK_MODE]),l=w(()=>Vl(u.value)),c=de(!0),p=de(i.value.start_elevation_at_zero),d=w(()=>bet(o.value.chartData,r,i.value.imperial_units,l.value)),f=w(()=>d.value&&d.value.datasets.elevation.data.length>0),T=F("km"),O=F("m"),R=w(()=>({labels:c.value?d.value.distance_labels:d.value.duration_labels,datasets:JSON.parse(JSON.stringify([d.value.datasets.speed,d.value.datasets.elevation]))})),g=w(()=>d.value.coordinates),N=w(()=>({color:l.value?is.darkMode.line:is.ligthMode.line})),S=w(()=>({color:l.value?is.darkMode.text:is.ligthMode.text})),A=w(()=>({responsive:!0,maintainAspectRatio:!1,animation:!1,layout:{padding:{top:22}},scales:{x:{grid:{drawOnChartArea:!1,...N.value},border:{...N.value},ticks:{count:10,callback:function($){return c.value?Number($).toFixed(2):P($)},...S.value},type:"linear",bounds:"data",title:{display:!0,text:c.value?r("workouts.DISTANCE")+` (${T})`:r("workouts.DURATION"),...S.value}},ySpeed:{grid:{drawOnChartArea:!1,...N.value},border:{...N.value},position:"left",title:{display:!0,text:r("workouts.SPEED")+` (${T}/h)`,...S.value},ticks:{...S.value}},yElevation:{beginAtZero:p.value,display:f.value,grid:{drawOnChartArea:!1,...N.value},border:{...N.value},position:"right",title:{display:!0,text:r("workouts.ELEVATION")+` (${O})`,...S.value},ticks:{...S.value}}},elements:{point:{pointStyle:"circle",pointRadius:0}},plugins:{datalabels:{display:!1},tooltip:{interaction:{intersect:!1,mode:"index"},callbacks:{label:function($){const z=` ${$.dataset.label}: ${$.formattedValue}`;return $.dataset.yAxisID==="yElevation"?z+` ${O}`:z+` ${T}/h`},title:function($){return $.length>0&&C(g.value[$[0].dataIndex]),$.length===0?"":c.value?`${r("workouts.DISTANCE")}: ${$[0].label} ${T}`:`${r("workouts.DURATION")}: ${P($[0].label.replace(",",""))}`}}},legend:{display:!1},htmlLegend:{containerID:"chart-legend",displayElevation:f.value}}})),b=[Hot];function y(){c.value=!c.value}function P($){return new Date(+$*1e3).toISOString().substr(11,8)}function C($){a("getCoordinates",$)}function D(){C({latitude:null,longitude:null})}function F($){return n.authUser.imperial_units?gn[$].defaultTarget:$}return($,z)=>{const Y=re("Card");return h(),I("div",Vot,[W(Y,null,{title:ue(()=>[H(_($.$t("workouts.ANALYSIS")),1)]),content:ue(()=>[E("div",Kot,[E("label",null,[E("input",{type:"radio",name:"distance",checked:c.value,onClick:y},null,8,jot),H(" "+_($.$t("workouts.DISTANCE")),1)]),E("label",null,[E("input",{type:"radio",name:"duration",checked:!c.value,onClick:y},null,8,qot),H(" "+_($.$t("workouts.DURATION")),1)])]),z[1]||(z[1]=E("div",{id:"chart-legend"},null,-1)),E("div",Yot,[W(m(Att),{data:R.value,options:A.value,plugins:b,onMouseleave:D,"aria-label":$.$t("workouts.WORKOUT_CHART")},null,8,["data","options","aria-label"])]),E("div",Xot,[E("div",Qot,_($.$t("workouts.NO_DATA_CLEANING")),1),f.value?(h(),I("div",Zot,[E("label",null,[E("input",{type:"checkbox",checked:p.value,onClick:z[0]||(z[0]=se=>p.value=!p.value)},null,8,Jot),H(" "+_($.$t("workouts.START_ELEVATION_AT_ZERO")),1)])])):M("",!0)])]),_:1})])}}}),tut=ie(eut,[["__scopeId","data-v-727b605c"]]),nut={id:"workout-content"},aut=["aria-label"],sut={key:0,class:"fa fa-edit","aria-hidden":"true"},rut=["for"],iut={class:"form-buttons"},out=["disabled"],uut={key:0,class:"edition-loading"},lut=["innerHTML"],dd=1e3,cut=ee({__name:"WorkoutContent",props:{content:{default:()=>""},contentType:{},workoutId:{}},setup(e){const t=e,n=ke(),{content:a,contentType:s,workoutId:r}=he(t),i=w(()=>a.value!==null&&a.value.length>dd),o=w(()=>n.getters[ge.GETTERS.WORKOUT_CONTENT_EDITION]),u=w(()=>o.value.loading&&o.value.contentType===s.value),l=de(!1),c=w(()=>l.value?a.value:T(a.value)),p=de(!1),d=de(""),f=w(()=>o.value.contentType===s.value?n.getters[K.GETTERS.ERROR_MESSAGES]:null);function T(S){return S===null||S.length<=dd?S:S.slice(0,dd-10)+"…"}function O(){n.commit(K.MUTATIONS.EMPTY_ERROR_MESSAGES),p.value=!0,d.value=a.value?a.value:""}function R(S){d.value=S}function g(){p.value=!1,d.value=a.value?a.value:""}function N(){n.dispatch(ge.ACTIONS.EDIT_WORKOUT_CONTENT,{workoutId:r.value,content:d.value,contentType:s.value})}return Me(()=>u.value,S=>{S||(p.value=!1)}),(S,A)=>{const b=re("CustomTextArea"),y=re("ErrorMessage"),P=re("Card");return h(),I("div",nut,[W(P,null,{title:ue(()=>[H(_(S.$t(`workouts.${m(s)}`))+" ",1),E("button",{class:"transparent icon-button","aria-label":S.$t("buttons.EDIT"),onClick:O},[p.value?M("",!0):(h(),I("i",sut))],8,aut)]),content:ue(()=>[p.value?(h(),I("form",{key:0,onSubmit:ve(N,["prevent"])},[E("label",{for:m(s).toLowerCase(),class:"visually-hidden"},_(S.$t(`workouts.${m(s)}`)),9,rut),W(b,{name:m(s).toLowerCase(),input:m(a),disabled:u.value,charLimit:m(s)==="NOTES"?500:1e4,rows:m(s)==="NOTES"?2:5,onUpdateValue:R},null,8,["name","input","disabled","charLimit","rows"]),E("div",iut,[E("button",{class:"confirm",type:"submit",disabled:u.value},_(S.$t("buttons.SUBMIT")),9,out),E("button",{class:"cancel",onClick:ve(g,["prevent"])},_(S.$t("buttons.CANCEL")),1),u.value?(h(),I("div",uut,A[1]||(A[1]=[E("div",null,[E("i",{class:"fa fa-spinner fa-pulse","aria-hidden":"true"})],-1)]))):M("",!0)])],32)):(h(),I(_e,{key:1},[E("span",{class:Te(["workout-content",{notes:m(s)==="NOTES"||!m(a)}]),innerHTML:c.value&&c.value!==""?m(Jxe)(c.value):S.$t(`workouts.NO_${m(s)}`)},null,10,lut),i.value?(h(),I("button",{key:0,class:"read-more transparent",onClick:A[0]||(A[0]=C=>l.value=!l.value)},[E("i",{class:Te(`fa fa-caret-${l.value?"up":"down"}`),"aria-hidden":"true"},null,2),H(" "+_(S.$t(`buttons.${l.value?"HIDE":"READ_MORE"}`)),1)])):M("",!0)],64)),f.value?(h(),j(y,{key:2,message:f.value},null,8,["message"])):M("",!0)]),_:1})])}}}),q0=ie(cut,[["__scopeId","data-v-53e6d9a6"]]),dut={id:"workout-segments"},Eut=ee({__name:"WorkoutSegments",props:{segments:{},useImperialUnits:{type:Boolean}},setup(e){const t=e,{segments:n,useImperialUnits:a}=he(t);return(s,r)=>{const i=re("router-link"),o=re("Distance"),u=re("Card");return h(),I("div",dut,[W(u,null,{title:ue(()=>[H(_(s.$t("workouts.SEGMENT",2)),1)]),content:ue(()=>[E("ul",null,[(h(!0),I(_e,null,Le(m(n),(l,c)=>(h(),I("li",{key:l.segment_id},[W(i,{to:{name:"WorkoutSegment",params:{workoutId:l.workout_id,segmentId:c+1}}},{default:ue(()=>[H(_(s.$t("workouts.SEGMENT",1))+" "+_(c+1),1)]),_:2},1032,["to"]),H(" ("+_(s.$t("workouts.DISTANCE"))+": ",1),W(o,{distance:l.distance,unitFrom:"km",useImperialUnits:m(a)},null,8,["distance","useImperialUnits"]),H(", "+_(s.$t("workouts.DURATION"))+": "+_(l.duration)+") ",1)]))),128))])]),_:1})])}}}),put=ie(Eut,[["__scopeId","data-v-15725c61"]]),fut={id:"workout",class:"view"},mut={class:"container"},Tut={key:0,class:"workout-container"},_ut={key:0},hut={key:1},Sut=ee({__name:"Workout",props:{displaySegment:{type:Boolean}},setup(e){const t=e,n=yt(),a=ke(),{displaySegment:s}=he(t),r=w(()=>a.getters[ge.GETTERS.WORKOUT_DATA]),i=w(()=>a.getters[X.GETTERS.AUTH_USER_PROFILE]),o=w(()=>a.getters[Pt.GETTERS.SPORTS]),u=de({latitude:null,longitude:null});Et(()=>{const c={workoutId:n.params.workoutId};t.displaySegment&&(c.segmentId=n.params.segmentId),a.dispatch(ge.ACTIONS.GET_WORKOUT_DATA,c)}),pt(()=>{a.commit(ge.MUTATIONS.EMPTY_WORKOUT)});function l(c){u.value={latitude:c.latitude,longitude:c.longitude}}return Me(()=>n.params.workoutId,async c=>{c&&a.dispatch(ge.ACTIONS.GET_WORKOUT_DATA,{workoutId:c})}),Me(()=>n.params.segmentId,async c=>{if(n.params.workoutId){const p={workoutId:n.params.workoutId};c&&(p.segmentId=c),a.dispatch(ge.ACTIONS.GET_WORKOUT_DATA,p)}}),(c,p)=>(h(),I("div",fut,[E("div",mut,[o.value.length>0?(h(),I("div",Tut,[r.value.workout.id?(h(),I("div",_ut,[W(Bot,{workoutData:r.value,sports:o.value,authUser:i.value,markerCoordinates:u.value,displaySegment:m(s)},null,8,["workoutData","sports","authUser","markerCoordinates","displaySegment"]),r.value.workout.with_gpx&&r.value.chartData.length>0?(h(),j(tut,{key:0,workoutData:r.value,authUser:i.value,displaySegment:m(s),onGetCoordinates:l},null,8,["workoutData","authUser","displaySegment"])):M("",!0),m(s)?M("",!0):(h(),j(q0,{key:1,"workout-id":r.value.workout.id,"content-type":"DESCRIPTION",content:r.value.workout.description,loading:r.value.loading},null,8,["workout-id","content","loading"])),!m(s)&&r.value.workout.segments.length>1?(h(),j(put,{key:2,segments:r.value.workout.segments,useImperialUnits:i.value.imperial_units},null,8,["segments","useImperialUnits"])):M("",!0),m(s)?M("",!0):(h(),j(q0,{key:3,"workout-id":r.value.workout.id,"content-type":"NOTES",content:r.value.workout.notes,loading:r.value.loading},null,8,["workout-id","content","loading"])),p[0]||(p[0]=E("div",{id:"bottom"},null,-1))])):(h(),I("div",hut,[r.value.loading?M("",!0):(h(),j(gf,{key:0,target:"WORKOUT"}))]))])):M("",!0)])]))}}),Y0=ie(Sut,[["__scopeId","data-v-8c74ce88"]]),Aut={class:"workouts-filters"},Out={class:"box"},gut={class:"form-all-items"},Iut={class:"form-items-group"},Rut={class:"form-item"},Nut={for:"from"},but=["value"],vut={class:"form-item"},Cut={for:"to"},Dut=["value"],Put={class:"form-item"},Lut={for:"sport_id"},yut=["value"],$ut=["value"],kut={class:"form-item form-item-equipment"},Uut=["value"],wut={key:0,value:"",disabled:"",selected:""},Mut={value:"none"},Wut=["label"],zut=["value"],Fut={class:"form-items-group"},xut={class:"form-item form-item-text"},But={for:"title"},Gut={class:"form-inputs-group"},Hut=["value"],Vut={class:"form-item form-item-text"},Kut={for:"notes"},jut={class:"form-inputs-group"},qut=["value"],Yut={class:"form-item form-item-text"},Xut={for:"notes"},Qut={class:"form-inputs-group"},Zut=["value"],Jut={class:"form-items-group"},elt={class:"form-item"},tlt={class:"form-inputs-group"},nlt=["value"],alt=["value"],slt={class:"form-item"},rlt={class:"form-inputs-group"},ilt=["value"],olt=["value"],ult={class:"form-items-group"},llt={class:"form-item"},clt={class:"form-inputs-group"},dlt=["value"],Elt=["value"],plt={class:"form-item"},flt={class:"form-inputs-group"},mlt=["value"],Tlt=["value"],_lt={class:"form-button"},hlt=ee({__name:"WorkoutsFilters",props:{authUser:{},sports:{}},emits:["filter"],setup(e,{emit:t}){const n=e,a=t,{t:s}=$t(),r=co(),i=yt(),o=Sa(),{authUser:u}=he(n),l=u.value.imperial_units?gn.km.defaultTarget:"km",c=w(()=>Kn(n.sports,s)),p=w(()=>R(r.getters[We.GETTERS.EQUIPMENTS]));let d=Object.assign({},i.query);St(()=>{const g=document.getElementById("from");g&&g.focus()});function f(g){const N=g.target.name,S=g.target.value;S===""?delete d[N]:d[N]=S}function T(){a("filter"),"page"in d&&(d.page="1"),o.push({path:"/workouts",query:d})}function O(){a("filter"),o.push({path:"/workouts",query:{}})}function R(g){const N={};return g.filter(S=>S.workouts_count>0).map(S=>{const A=s(`equipment_types.${S.equipment_type.label}.LABEL`);A in N?N[A].push(S):N[A]=[S]}),N}return Me(()=>i.query,g=>{d=Object.assign({},g)}),(g,N)=>(h(),I("div",Aut,[E("div",Out,[E("form",{onSubmit:N[0]||(N[0]=ve(()=>{},["prevent"])),class:"form"},[E("div",gut,[E("div",Iut,[E("div",Rut,[E("label",Nut,_(g.$t("workouts.FROM"))+": ",1),E("input",{id:"from",name:"from",type:"date",value:g.$route.query.from,onChange:f},null,40,but)]),E("div",vut,[E("label",Cut,_(g.$t("workouts.TO"))+": ",1),E("input",{id:"to",name:"to",type:"date",value:g.$route.query.to,onChange:f},null,40,Dut)]),E("div",Put,[E("label",Lut,_(g.$t("workouts.SPORT",1))+":",1),E("select",{id:"sport_id",name:"sport_id",value:g.$route.query.sport_id,onChange:f,onKeyup:Je(T,["enter"])},[N[1]||(N[1]=E("option",{value:""},null,-1)),(h(!0),I(_e,null,Le(c.value.filter(S=>m(u).sports_list.includes(S.id)),S=>(h(),I("option",{value:S.id,key:S.id},_(S.translatedLabel),9,$ut))),128))],40,yut)]),E("div",kut,[E("label",null,_(g.$t("equipments.EQUIPMENT",1))+":",1),E("select",{name:"equipment_id",value:g.$route.query.equipment_id,onChange:f,onKeyup:Je(T,["enter"])},[N[3]||(N[3]=E("option",{value:""},null,-1)),Object.keys(p.value).length==0?(h(),I("option",wut,_(g.$t("equipments.NO_EQUIPMENTS")),1)):M("",!0),Object.keys(p.value).length>0?(h(),I(_e,{key:1},[E("option",Mut,_(g.$t("equipments.WITHOUT_EQUIPMENTS")),1),N[2]||(N[2]=E("option",{disabled:""},"---",-1))],64)):M("",!0),(h(!0),I(_e,null,Le(Object.keys(p.value).sort(),S=>(h(),I("optgroup",{label:S,key:S},[(h(!0),I(_e,null,Le(p.value[S].sort(m(pf)),A=>(h(),I("option",{value:A.id,key:A.id},_(A.label),9,zut))),128))],8,Wut))),128))],40,Uut)])]),E("div",Fut,[E("div",xut,[E("label",But,_(g.$t("workouts.TITLE",1))+":",1),E("div",Gut,[E("input",{id:"title",class:"text",name:"title",value:g.$route.query.title,onChange:f,placeholder:"",type:"text",onKeyup:Je(T,["enter"])},null,40,Hut)])]),E("div",Vut,[E("label",Kut,_(g.$t("workouts.DESCRIPTION"))+":",1),E("div",jut,[E("input",{id:"description",class:"text",name:"description",value:g.$route.query.description,onChange:f,placeholder:"",type:"text",onKeyup:Je(T,["enter"])},null,40,qut)])]),E("div",Yut,[E("label",Xut,_(g.$t("workouts.NOTES"))+":",1),E("div",Qut,[E("input",{id:"notes",class:"text",name:"notes",value:g.$route.query.notes,onChange:f,placeholder:"",type:"text",onKeyup:Je(T,["enter"])},null,40,Zut)])])]),E("div",Jut,[E("div",elt,[E("label",null,_(g.$t("workouts.DISTANCE"))+" ("+_(m(l))+"): ",1),E("div",tlt,[E("input",{name:"distance_from",type:"number",min:"0",step:"0.1",value:g.$route.query.distance_from,onChange:f,onKeyup:Je(T,["enter"])},null,40,nlt),E("span",null,_(g.$t("workouts.TO")),1),E("input",{name:"distance_to",type:"number",min:"0",step:"0.1",value:g.$route.query.distance_to,onChange:f,onKeyup:Je(T,["enter"])},null,40,alt)])]),E("div",slt,[E("label",null,_(g.$t("workouts.DURATION"))+": ",1),E("div",rlt,[E("input",{name:"duration_from",value:g.$route.query.duration_from,onChange:f,pattern:"^([0-9]*[0-9]):([0-5][0-9])$",placeholder:"hh:mm",type:"text",onKeyup:Je(T,["enter"])},null,40,ilt),E("span",null,_(g.$t("workouts.TO")),1),E("input",{name:"duration_to",value:g.$route.query.duration_to,onChange:f,pattern:"^([0-9]*[0-9]):([0-5][0-9])$",placeholder:"hh:mm",type:"text",onKeyup:Je(T,["enter"])},null,40,olt)])])]),E("div",ult,[E("div",llt,[E("label",null,_(g.$t("workouts.AVE_SPEED"))+" ("+_(m(l))+"/h): ",1),E("div",clt,[E("input",{min:"0",name:"ave_speed_from",value:g.$route.query.ave_speed_from,onChange:f,step:"0.1",type:"number",onKeyup:Je(T,["enter"])},null,40,dlt),E("span",null,_(g.$t("workouts.TO")),1),E("input",{min:"0",name:"ave_speed_to",value:g.$route.query.ave_speed_to,onChange:f,step:"0.1",type:"number",onKeyup:Je(T,["enter"])},null,40,Elt)])]),E("div",plt,[E("label",null,_(g.$t("workouts.MAX_SPEED"))+" ("+_(m(l))+"/h): ",1),E("div",flt,[E("input",{min:"0",name:"max_speed_from",value:g.$route.query.max_speed_from,onChange:f,step:"0.1",type:"number",onKeyup:Je(T,["enter"])},null,40,mlt),E("span",null,_(g.$t("workouts.TO")),1),E("input",{min:"0",name:"max_speed_to",value:g.$route.query.max_speed_to,onChange:f,step:"0.1",type:"number",onKeyup:Je(T,["enter"])},null,40,Tlt)])])])]),E("div",_lt,[E("button",{type:"submit",class:"confirm",onClick:T},_(g.$t("buttons.FILTER")),1),E("button",{class:"confirm",onClick:O},_(g.$t("buttons.CLEAR_FILTER")),1)])],32)])]))}}),Slt=ie(hlt,[["__scopeId","data-v-a380e198"]]),Alt={class:"workouts-list"},Olt={class:"total"},glt={class:"total-label"},Ilt={key:0},Rlt={key:0,class:"workouts-table responsive-table"},Nlt={class:"sport-col"},blt={class:"cell-heading"},vlt=["onMouseover"],Clt={class:"cell-heading"},Dlt={key:0,class:"fa fa-map-o","aria-hidden":"true"},Plt={class:"title"},Llt={class:"workout-date"},ylt={class:"cell-heading"},$lt={class:"text-right"},klt={class:"cell-heading"},Ult={class:"text-right"},wlt={class:"cell-heading"},Mlt={class:"text-right"},Wlt={class:"cell-heading"},zlt={class:"text-right"},Flt={class:"cell-heading"},xlt={class:"text-right"},Blt={class:"cell-heading"},Glt={class:"text-right"},Hlt={class:"cell-heading"},Vlt=ee({__name:"WorkoutsList",props:{user:{},sports:{}},setup(e){const t=e,n=ke(),a=yt(),s=Sa(),{user:r,sports:i}=he(t),o=["ave_speed","distance","duration","workout_date"],u=w(()=>n.getters[ge.GETTERS.USER_WORKOUTS]),l=w(()=>n.getters[ge.GETTERS.WORKOUTS_PAGINATION]),c=w(()=>n.getters[K.GETTERS.LANGUAGE]);let p=O(a.query);const d=de(null);Et(()=>{f(p),n.dispatch(We.ACTIONS.GET_EQUIPMENTS)});function f(N){n.dispatch(ge.ACTIONS.GET_USER_WORKOUTS,r.value.imperial_units?R(N):N)}function T(N,S){const A=Object.assign({},a.query);A[N]=S,N==="per_page"&&(A.page="1"),p=O(A),s.push({path:"/workouts",query:p})}function O(N){const S=LE(N,o,Zi.order_by,{defaultSort:Zi.order});return Object.keys(N).filter(A=>UGe.includes(A)).map(A=>{typeof N[A]=="string"&&(S[A]=N[A])}),S}function R(N){const S={...N};return Object.entries(S).map(A=>{A[0].match("speed|distance")&&A[1]&&(S[A[0]]=Kt(+A[1],"mi","km"))}),S}function g(N){d.value=N}return Me(()=>a.query,async N=>{p=O(N),f(p)}),(N,S)=>{const A=re("SportImage"),b=re("router-link"),y=re("Distance");return h(),I("div",Alt,[E("div",{class:Te(["box",{"empty-table":u.value.length===0}])},[E("div",Olt,[E("span",glt,_(N.$t("common.TOTAL").toLowerCase())+": ",1),l.value.total?(h(),I("span",Ilt,_(l.value.total)+" "+_(N.$t("workouts.WORKOUT",l.value.total)),1)):M("",!0)]),W(Sg,{sort:m(_f),order_by:o,query:m(p),message:"workouts",onUpdateSelect:T},null,8,["sort","query"]),u.value.length>0?(h(),I("div",Rlt,[W(Il,{class:"top-pagination",pagination:l.value,path:"/workouts",query:m(p)},null,8,["pagination","query"]),E("table",null,[E("thead",{class:Te({smaller:c.value==="de"})},[E("tr",null,[S[1]||(S[1]=E("th",{class:"sport-col"},null,-1)),E("th",null,_(Ve(N.$t("workouts.WORKOUT",1))),1),E("th",null,_(Ve(N.$t("workouts.DATE"))),1),E("th",null,_(Ve(N.$t("workouts.DISTANCE"))),1),E("th",null,_(Ve(N.$t("workouts.DURATION"))),1),E("th",null,_(Ve(N.$t("workouts.AVE_SPEED"))),1),E("th",null,_(Ve(N.$t("workouts.MAX_SPEED"))),1),E("th",null,_(Ve(N.$t("workouts.ASCENT"))),1),E("th",null,_(Ve(N.$t("workouts.DESCENT"))),1)])],2),E("tbody",null,[(h(!0),I(_e,null,Le(u.value,P=>(h(),I("tr",{key:P.id},[E("td",Nlt,[E("span",blt,_(N.$t("workouts.SPORT",1)),1),m(i).length>0?(h(),j(A,{key:0,title:m(i).filter(C=>C.id===P.sport_id)[0].translatedLabel,"sport-label":m(mf)(P,m(i)),color:m(Tf)(P,m(i))},null,8,["title","sport-label","color"])):M("",!0)]),E("td",{class:"workout-title",onMouseover:C=>g(P.id),onMouseleave:S[0]||(S[0]=C=>g(null))},[E("span",Clt,_(Ve(N.$t("workouts.WORKOUT",1))),1),W(b,{class:"nav-item",to:{name:"Workout",params:{workoutId:P.id}}},{default:ue(()=>[P.with_gpx?(h(),I("i",Dlt)):M("",!0),E("span",Plt,_(P.title),1)]),_:2},1032,["to"]),P.with_gpx&&d.value===P.id?(h(),j(Yg,{key:0,workout:P,"display-hover":!0},null,8,["workout"])):M("",!0)],40,vlt),E("td",Llt,[E("span",ylt,_(N.$t("workouts.DATE")),1),E("time",null,_(m(jn)(P.workout_date,m(r).timezone,m(r).date_format)),1)]),E("td",$lt,[E("span",klt,_(N.$t("workouts.DISTANCE")),1),P.distance!==null?(h(),j(y,{key:0,distance:P.distance,unitFrom:"km",useImperialUnits:m(r).imperial_units},null,8,["distance","useImperialUnits"])):M("",!0)]),E("td",Ult,[E("span",wlt,_(N.$t("workouts.DURATION")),1),H(" "+_(P.moving),1)]),E("td",Mlt,[E("span",Wlt,_(N.$t("workouts.AVE_SPEED")),1),P.ave_speed!==null?(h(),j(y,{key:0,distance:P.ave_speed,unitFrom:"km",speed:!0,useImperialUnits:m(r).imperial_units},null,8,["distance","useImperialUnits"])):M("",!0)]),E("td",zlt,[E("span",Flt,_(N.$t("workouts.MAX_SPEED")),1),P.max_speed!==null?(h(),j(y,{key:0,distance:P.max_speed,unitFrom:"km",speed:!0,useImperialUnits:m(r).imperial_units},null,8,["distance","useImperialUnits"])):M("",!0)]),E("td",xlt,[E("span",Blt,_(N.$t("workouts.ASCENT")),1),P.ascent!==null?(h(),j(y,{key:0,distance:P.ascent,unitFrom:"m",useImperialUnits:m(r).imperial_units},null,8,["distance","useImperialUnits"])):M("",!0)]),E("td",Glt,[E("span",Hlt,_(N.$t("workouts.DESCENT")),1),P.descent!==null?(h(),j(y,{key:0,distance:P.descent,unitFrom:"m",useImperialUnits:m(r).imperial_units},null,8,["distance","useImperialUnits"])):M("",!0)])]))),128))])]),W(Il,{pagination:l.value,path:"/workouts",query:m(p)},null,8,["pagination","query"])])):M("",!0)],2),u.value.length===0?(h(),j(If,{key:0})):M("",!0),S[2]||(S[2]=E("div",{id:"bottom"},null,-1))])}}}),Klt=ie(Vlt,[["__scopeId","data-v-f1b11684"]]),jlt={key:0,id:"workouts",class:"view"},qlt={class:"container workouts-container"},Ylt={class:"display-filters"},Xlt={class:"list-container"},Qlt=ee({__name:"WorkoutsView",setup(e){const{t}=$t(),n=ke(),a=w(()=>n.getters[X.GETTERS.AUTH_USER_PROFILE]),s=w(()=>n.getters[Pt.GETTERS.SPORTS]),r=w(()=>Kn(s.value,t)),i=de(!0);function o(){i.value=!i.value}return(u,l)=>a.value.username?(h(),I("div",jlt,[E("div",qlt,[E("div",{class:Te(["filters-container",{hidden:i.value}])},[W(Slt,{sports:r.value,authUser:a.value,onFilter:o},null,8,["sports","authUser"])],2),E("div",Ylt,[E("div",{onClick:o},[E("i",{class:Te(`fa fa-caret-${i.value?"down":"up"}`),"aria-hidden":"true"},null,2),E("span",null,_(u.$t(`workouts.${i.value?"DISPLAY":"HIDE"}_FILTERS`)),1)])]),E("div",Xlt,[W(Klt,{user:a.value,sports:r.value},null,8,["user","sports"])])])])):M("",!0)}}),Zlt=ie(Qlt,[["__scopeId","data-v-3fa59b88"]]),{t:X0}=xr.global,Q0=e=>{const t=/(\/profile)(\/edit)*(\/*)/,n=e.replace(t,"").toUpperCase();return n===""?"PROFILE":n.split("/")[0].toUpperCase()},Jlt=[{path:"/",name:"Dashboard",component:Dnt,meta:{title:"dashboard.DASHBOARD"}},{path:"/login",name:"Login",component:W0,props:{action:"login"},meta:{title:"user.LOGIN",withoutAuth:!0}},{path:"/register",name:"Register",component:W0,props:{action:"register"},meta:{title:"user.REGISTER",withoutAuth:!0}},{path:"/account-confirmation",name:"AccountConfirmation",component:Est,meta:{title:"user.ACCOUNT_CONFIRMATION",withoutAuth:!0}},{path:"/account-confirmation/resend",name:"AccountConfirmationResend",component:M0,props:{action:"account-confirmation-resend"},meta:{title:"buttons.ACCOUNT-CONFIRMATION-RESEND",withoutAuth:!0}},{path:"/account-confirmation/email-sent",name:"AccountConfirmationEmailSend",component:M0,props:{action:"email-sent"},meta:{title:"buttons.ACCOUNT-CONFIRMATION-RESEND",withoutAuth:!0}},{path:"/password-reset/sent",name:"PasswordEmailSent",component:Jo,props:{action:"request-sent"},meta:{title:"user.PASSWORD_RESET",withoutAuth:!0}},{path:"/password-reset/request",name:"PasswordResetRequest",component:Jo,props:{action:"reset-request"},meta:{title:"user.PASSWORD_RESET",withoutAuth:!0}},{path:"/password-reset/password-updated",name:"PasswordUpdated",component:Jo,props:{action:"password-updated"},meta:{title:"user.PASSWORD_RESET",withoutAuth:!0}},{path:"/password-reset",name:"PasswordReset",component:Jo,props:{action:"reset"},meta:{title:"user.PASSWORD_RESET",withoutAuth:!0}},{path:"/email-update",name:"EmailUpdate",component:Tst,meta:{title:"user.EMAIL_UPDATE",withoutChecks:!0}},{path:"/profile",name:"Profile",component:zst,children:[{path:"",name:"UserProfile",component:sVe,props:e=>({tab:Q0(e.path)}),children:[{path:"",name:"UserInfos",component:Cg,meta:{title:"user.PROFILE.TABS.PROFILE"}},{path:"preferences",name:"UserPreferences",component:RVe,meta:{title:"user.PROFILE.TABS.PREFERENCES"}},{path:"sports",name:"UserSports",component:v0,props:{isEdition:!1},meta:{title:"user.PROFILE.TABS.SPORTS"},children:[{path:"",name:"UserSportPreferences",component:C0,meta:{title:"user.PROFILE.TABS.SPORTS"}},{path:":id",name:"UserSport",component:PZe,meta:{title:"user.PROFILE.TABS.SPORTS"}}]},{path:"apps",name:"UserApps",component:NXe,children:[{path:"",name:"UserAppsList",component:VXe,meta:{title:"user.PROFILE.TABS.APPS"}},{path:":id",name:"UserApp",component:g0,meta:{title:"user.PROFILE.TABS.APPS"}},{path:":id/created",name:"CreatedUserApp",component:g0,props:{afterCreation:!0},meta:{title:"user.PROFILE.TABS.APPS"}},{path:"new",name:"AddUserApp",component:EXe,meta:{title:"user.PROFILE.TABS.APPS"}},{path:"authorize",name:"AuthorizeUserApp",component:IXe,meta:{title:"user.PROFILE.TABS.APPS"}}]},{path:"equipments",name:"UserEquipments",component:N0,props:{isEdition:!1},children:[{path:"",name:"UserEquipmentsList",component:b0,meta:{title:"user.PROFILE.TABS.EQUIPMENTS"}},{path:"new",name:"AddEquipment",component:R0,meta:{title:"user.PROFILE.TABS.EQUIPMENTS"}},{path:":id",name:"Equipment",component:XQe,meta:{title:"user.PROFILE.TABS.EQUIPMENTS"}}]}]},{path:"edit",name:"UserProfileEdition",component:bVe,props:e=>({tab:Q0(e.path)}),children:[{path:"",name:"UserInfosEdition",component:Nqe,meta:{title:"user.PROFILE.EDIT"}},{path:"account",name:"UserAccountEdition",component:lqe,meta:{title:"user.PROFILE.ACCOUNT_EDITION"}},{path:"picture",name:"UserPictureEdition",component:$qe,meta:{title:"user.PROFILE.PICTURE_EDITION"}},{path:"preferences",name:"UserPreferencesEdition",component:DYe,meta:{title:"user.PROFILE.EDIT_PREFERENCES"}},{path:"sports",name:"UserSportsEdition",component:v0,props:{isEdition:!0},meta:{title:"user.PROFILE.EDIT_SPORTS_PREFERENCES"},children:[{path:"",name:"UserSportPreferencesEdition",component:C0,meta:{title:"user.PROFILE.TABS.SPORTS"}},{path:":id",name:"UserSportEdition",component:JZe,meta:{title:"user.PROFILE.TABS.SPORTS"}}]},{path:"equipments",name:"UserEquipmentsEdition",component:N0,props:{isEdition:!0},children:[{path:"",name:"UserEquipmentsListEdition",component:b0,meta:{title:"user.PROFILE.TABS.EQUIPMENTS"}},{path:":id",name:"EquipmentEdition",component:R0,meta:{title:"user.PROFILE.TABS.EQUIPMENTS"}}]},{path:"privacy-policy",name:"UserPrivacyPolicy",component:GYe,meta:{title:"user.PROFILE.PRIVACY-POLICY_EDITION"}}]}]},{path:"/statistics",name:"Statistics",component:Lat,meta:{title:"statistics.STATISTICS"}},{path:"/users/:username",name:"User",component:z0,meta:{title:"administration.USER"}},{path:"/workouts",name:"Workouts",component:Zlt,meta:{title:"workouts.WORKOUT",count:0}},{path:"/workouts/:workoutId",name:"Workout",component:Y0,props:{displaySegment:!1},meta:{title:"workouts.WORKOUT"}},{path:"/workouts/:workoutId/edit",name:"EditWorkout",component:Vrt,meta:{title:"workouts.EDIT_WORKOUT"}},{path:"/workouts/:workoutId/segment/:segmentId",name:"WorkoutSegment",component:Y0,props:{displaySegment:!0},meta:{title:"workouts.SEGMENT",count:0}},{path:"/workouts/add",name:"AddWorkout",component:Brt,meta:{title:"workouts.ADD_WORKOUT"}},{path:"/admin",name:"Administration",component:net,children:[{path:"",name:"AdministrationMenu",component:iGe,meta:{title:"admin.ADMINISTRATION"}},{path:"application",name:"ApplicationAdministration",component:Z_,meta:{title:"admin.APP_CONFIG.TITLE"}},{path:"application/edit",name:"ApplicationAdministrationEdition",component:Z_,props:{edition:!0},meta:{title:"admin.APPLICATION"}},{path:"equipment-types",name:"EquipmentTypeAdministration",component:VBe,meta:{title:"admin.EQUIPMENT_TYPES.TITLE"}},{path:"sports",name:"SportsAdministration",component:NGe,meta:{title:"admin.SPORTS.TITLE"}},{path:"users/:username",name:"UserFromAdmin",component:z0,props:{fromAdmin:!0},meta:{title:"admin.USER",count:1}},{path:"users",name:"UsersAdministration",component:zHe,meta:{title:"admin.USERS.TITLE"}}]},{path:"/about",name:"About",component:qJe,meta:{title:"common.ABOUT",withoutChecks:!0}},{path:"/privacy-policy",name:"PrivacyPolicy",component:knt,meta:{title:"privacy_policy.TITLE",withoutChecks:!0}},{path:"/:pathMatch(.*)*",name:"not-found",component:Lnt,meta:{title:"error.NOT_FOUND.PAGE"}}],DI=Hw({history:Aw("/"),routes:Jlt});DI.beforeEach((e,t,n)=>{if("title"in e.meta){const a=typeof e.meta.title=="string"?e.meta.title:"",s=a?typeof e.meta.count=="number"?X0(a,+e.meta.count):X0(a):"";window.document.title=`FitTrackee${a?` - ${Ve(s)}`:""}`}Ri.dispatch(X.ACTIONS.CHECK_AUTH_USER).then(()=>{if(e.meta.withoutChecks)return n();if(Ri.getters[X.GETTERS.IS_AUTHENTICATED]&&e.meta.withoutAuth)return n("/");if(!Ri.getters[X.GETTERS.IS_AUTHENTICATED]&&!e.meta.withoutAuth){const a=e.path==="/"?{path:"/login"}:{path:"/login",query:{from:e.fullPath}};n(a)}else n()}).catch(a=>{console.error(a),n()})});const lt=DI;xE.register($I,kI,UI,wI,MI,WI,zI,Z0,FI,J0,xI,BI);const PI=Pb(NU).provide("sportColors",ff).use(xr).use(Ri).use(lt).use(T2,{name:"VFullscreen"}).directive("click-outside",uM);oM.forEach(e=>{PI.component(e.name,e.target)});PI.mount("#app"); diff --git a/fittrackee/dist/static/index-DW93bXec.js b/fittrackee/dist/static/index-DW93bXec.js deleted file mode 100644 index ed5d5ade3..000000000 --- a/fittrackee/dist/static/index-DW93bXec.js +++ /dev/null @@ -1,659 +0,0 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["static/maps-BFpqWvfo.js","static/css/maps-HupOsEJb.css"])))=>i.map(i=>d[i]); -import{C as _E,B as T0,L as h0,a as Ug,b as kg,P as wg,p as Mg,c as Wg,d as Fg,i as zg,e as xg,f as Bg,g as Gg}from"./charts-lWJH0bM4.js";import{c as Ve,g as Hg,a as TE}from"./maps-BFpqWvfo.js";(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))a(s);new MutationObserver(s=>{for(const r of s)if(r.type==="childList")for(const o of r.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&a(o)}).observe(document,{childList:!0,subtree:!0});function n(s){const r={};return s.integrity&&(r.integrity=s.integrity),s.referrerPolicy&&(r.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?r.credentials="include":s.crossOrigin==="anonymous"?r.credentials="omit":r.credentials="same-origin",r}function a(s){if(s.ep)return;s.ep=!0;const r=n(s);fetch(s.href,r)}})();/** -* @vue/shared v3.4.38 -* (c) 2018-present Yuxi (Evan) You and Vue contributors -* @license MIT -**//*! #__NO_SIDE_EFFECTS__ */function hE(e,t){const n=new Set(e.split(","));return a=>n.has(a)}const Dt={},tr=[],kn=()=>{},Vg=()=>!1,dl=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),SE=e=>e.startsWith("onUpdate:"),Vt=Object.assign,AE=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},Kg=Object.prototype.hasOwnProperty,ct=(e,t)=>Kg.call(e,t),ye=Array.isArray,nr=e=>Wo(e)==="[object Map]",vr=e=>Wo(e)==="[object Set]",rp=e=>Wo(e)==="[object Date]",je=e=>typeof e=="function",wt=e=>typeof e=="string",la=e=>typeof e=="symbol",gt=e=>e!==null&&typeof e=="object",S0=e=>(gt(e)||je(e))&&je(e.then)&&je(e.catch),A0=Object.prototype.toString,Wo=e=>A0.call(e),jg=e=>Wo(e).slice(8,-1),O0=e=>Wo(e)==="[object Object]",OE=e=>wt(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,Zr=hE(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),El=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},qg=/-(\w)/g,Vn=El(e=>e.replace(qg,(t,n)=>n?n.toUpperCase():"")),Yg=/\B([A-Z])/g,as=El(e=>e.replace(Yg,"-$1").toLowerCase()),He=El(e=>e.charAt(0).toUpperCase()+e.slice(1)),ec=El(e=>e?`on${He(e)}`:""),Ja=(e,t)=>!Object.is(e,t),Fi=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:a,value:n})},nu=e=>{const t=parseFloat(e);return isNaN(t)?e:t},Xg=e=>{const t=wt(e)?Number(e):NaN;return isNaN(t)?e:t};let op;const I0=()=>op||(op=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function ba(e){if(ye(e)){const t={};for(let n=0;n{if(n){const a=n.split(Zg);a.length>1&&(t[a[0].trim()]=a[1].trim())}}),t}function pe(e){let t="";if(wt(e))t=e;else if(ye(e))for(let n=0;nCs(n,t))}const N0=e=>!!(e&&e.__v_isRef===!0),_=e=>wt(e)?e:e==null?"":ye(e)||gt(e)&&(e.toString===A0||!je(e.toString))?N0(e)?_(e.value):JSON.stringify(e,v0,2):String(e),v0=(e,t)=>N0(t)?v0(e,t.value):nr(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[a,s],r)=>(n[tc(a,r)+" =>"]=s,n),{})}:vr(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>tc(n))}:la(t)?tc(t):gt(t)&&!ye(t)&&!O0(t)?String(t):t,tc=(e,t="")=>{var n;return la(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};/** -* @vue/reactivity v3.4.38 -* (c) 2018-present Yuxi (Evan) You and Vue contributors -* @license MIT -**/let Bn;class b0{constructor(t=!1){this.detached=t,this._active=!0,this.effects=[],this.cleanups=[],this.parent=Bn,!t&&Bn&&(this.index=(Bn.scopes||(Bn.scopes=[])).push(this)-1)}get active(){return this._active}run(t){if(this._active){const n=Bn;try{return Bn=this,t()}finally{Bn=n}}}on(){Bn=this}off(){Bn=this.parent}stop(t){if(this._active){let n,a;for(n=0,a=this.effects.length;n=4))break}this._dirtyLevel===1&&(this._dirtyLevel=0),rs()}return this._dirtyLevel>=4}set dirty(t){this._dirtyLevel=t?4:0}run(){if(this._dirtyLevel=0,!this.active)return this.fn();let t=Qa,n=Ns;try{return Qa=!0,Ns=this,this._runnings++,ip(this),this.fn()}finally{up(this),this._runnings--,Ns=n,Qa=t}}stop(){this.active&&(ip(this),up(this),this.onStop&&this.onStop(),this.active=!1)}}function oI(e){return e.value}function ip(e){e._trackId++,e._depsLength=0}function up(e){if(e.deps.length>e._depsLength){for(let t=e._depsLength;t{const n=new Map;return n.cleanup=e,n.computed=t,n},au=new WeakMap,vs=Symbol(""),jc=Symbol("");function hn(e,t,n){if(Qa&&Ns){let a=au.get(e);a||au.set(e,a=new Map);let s=a.get(n);s||a.set(n,s=$0(()=>a.delete(n))),L0(Ns,s)}}function Ra(e,t,n,a,s,r){const o=au.get(e);if(!o)return;let i=[];if(t==="clear")i=[...o.values()];else if(n==="length"&&ye(e)){const u=Number(a);o.forEach((l,c)=>{(c==="length"||!la(c)&&c>=u)&&i.push(l)})}else switch(n!==void 0&&i.push(o.get(n)),t){case"add":ye(e)?OE(n)&&i.push(o.get("length")):(i.push(o.get(vs)),nr(e)&&i.push(o.get(jc)));break;case"delete":ye(e)||(i.push(o.get(vs)),nr(e)&&i.push(o.get(jc)));break;case"set":nr(e)&&i.push(o.get(vs));break}RE();for(const u of i)u&&y0(u,4);NE()}function iI(e,t){const n=au.get(e);return n&&n.get(t)}const uI=hE("__proto__,__v_isRef,__isVue"),U0=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(la)),lp=lI();function lI(){const e={};return["includes","indexOf","lastIndexOf"].forEach(t=>{e[t]=function(...n){const a=lt(this);for(let r=0,o=this.length;r{e[t]=function(...n){ss(),RE();const a=lt(this)[t].apply(this,n);return NE(),rs(),a}}),e}function cI(e){la(e)||(e=String(e));const t=lt(this);return hn(t,"has",e),t.hasOwnProperty(e)}class k0{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,a){const s=this._isReadonly,r=this._isShallow;if(n==="__v_isReactive")return!s;if(n==="__v_isReadonly")return s;if(n==="__v_isShallow")return r;if(n==="__v_raw")return a===(s?r?II:F0:r?W0:M0).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(a)?t:void 0;const o=ye(t);if(!s){if(o&&ct(lp,n))return Reflect.get(lp,n,a);if(n==="hasOwnProperty")return cI}const i=Reflect.get(t,n,a);return(la(n)?U0.has(n):uI(n))||(s||hn(t,"get",n),r)?i:Yt(i)?o&&OE(n)?i:i.value:gt(i)?s?x0(i):Kt(i):i}}class w0 extends k0{constructor(t=!1){super(!1,t)}set(t,n,a,s){let r=t[n];if(!this._isShallow){const u=Ds(r);if(!ur(a)&&!Ds(a)&&(r=lt(r),a=lt(a)),!ye(t)&&Yt(r)&&!Yt(a))return u?!1:(r.value=a,!0)}const o=ye(t)&&OE(n)?Number(n)e,fl=e=>Reflect.getPrototypeOf(e);function ii(e,t,n=!1,a=!1){e=e.__v_raw;const s=lt(e),r=lt(t);n||(Ja(t,r)&&hn(s,"get",t),hn(s,"get",r));const{has:o}=fl(s),i=a?vE:n?DE:fo;if(o.call(s,t))return i(e.get(t));if(o.call(s,r))return i(e.get(r));e!==s&&e.get(t)}function ui(e,t=!1){const n=this.__v_raw,a=lt(n),s=lt(e);return t||(Ja(e,s)&&hn(a,"has",e),hn(a,"has",s)),e===s?n.has(e):n.has(e)||n.has(s)}function li(e,t=!1){return e=e.__v_raw,!t&&hn(lt(e),"iterate",vs),Reflect.get(e,"size",e)}function cp(e,t=!1){!t&&!ur(e)&&!Ds(e)&&(e=lt(e));const n=lt(this);return fl(n).has.call(n,e)||(n.add(e),Ra(n,"add",e,e)),this}function dp(e,t,n=!1){!n&&!ur(t)&&!Ds(t)&&(t=lt(t));const a=lt(this),{has:s,get:r}=fl(a);let o=s.call(a,e);o||(e=lt(e),o=s.call(a,e));const i=r.call(a,e);return a.set(e,t),o?Ja(t,i)&&Ra(a,"set",e,t):Ra(a,"add",e,t),this}function Ep(e){const t=lt(this),{has:n,get:a}=fl(t);let s=n.call(t,e);s||(e=lt(e),s=n.call(t,e)),a&&a.call(t,e);const r=t.delete(e);return s&&Ra(t,"delete",e,void 0),r}function fp(){const e=lt(this),t=e.size!==0,n=e.clear();return t&&Ra(e,"clear",void 0,void 0),n}function ci(e,t){return function(a,s){const r=this,o=r.__v_raw,i=lt(o),u=t?vE:e?DE:fo;return!e&&hn(i,"iterate",vs),o.forEach((l,c)=>a.call(s,u(l),u(c),r))}}function di(e,t,n){return function(...a){const s=this.__v_raw,r=lt(s),o=nr(r),i=e==="entries"||e===Symbol.iterator&&o,u=e==="keys"&&o,l=s[e](...a),c=n?vE:t?DE:fo;return!t&&hn(r,"iterate",u?jc:vs),{next(){const{value:f,done:E}=l.next();return E?{value:f,done:E}:{value:i?[c(f[0]),c(f[1])]:c(f),done:E}},[Symbol.iterator](){return this}}}}function ya(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function mI(){const e={get(r){return ii(this,r)},get size(){return li(this)},has:ui,add:cp,set:dp,delete:Ep,clear:fp,forEach:ci(!1,!1)},t={get(r){return ii(this,r,!1,!0)},get size(){return li(this)},has:ui,add(r){return cp.call(this,r,!0)},set(r,o){return dp.call(this,r,o,!0)},delete:Ep,clear:fp,forEach:ci(!1,!0)},n={get(r){return ii(this,r,!0)},get size(){return li(this,!0)},has(r){return ui.call(this,r,!0)},add:ya("add"),set:ya("set"),delete:ya("delete"),clear:ya("clear"),forEach:ci(!0,!1)},a={get(r){return ii(this,r,!0,!0)},get size(){return li(this,!0)},has(r){return ui.call(this,r,!0)},add:ya("add"),set:ya("set"),delete:ya("delete"),clear:ya("clear"),forEach:ci(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach(r=>{e[r]=di(r,!1,!1),n[r]=di(r,!0,!1),t[r]=di(r,!1,!0),a[r]=di(r,!0,!0)}),[e,n,t,a]}const[_I,TI,hI,SI]=mI();function bE(e,t){const n=t?e?SI:hI:e?TI:_I;return(a,s,r)=>s==="__v_isReactive"?!e:s==="__v_isReadonly"?e:s==="__v_raw"?a:Reflect.get(ct(n,s)&&s in a?n:a,s,r)}const AI={get:bE(!1,!1)},OI={get:bE(!1,!0)},gI={get:bE(!0,!1)};const M0=new WeakMap,W0=new WeakMap,F0=new WeakMap,II=new WeakMap;function RI(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function NI(e){return e.__v_skip||!Object.isExtensible(e)?0:RI(jg(e))}function Kt(e){return Ds(e)?e:CE(e,!1,EI,AI,M0)}function z0(e){return CE(e,!1,pI,OI,W0)}function x0(e){return CE(e,!0,fI,gI,F0)}function CE(e,t,n,a,s){if(!gt(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const r=s.get(e);if(r)return r;const o=NI(e);if(o===0)return e;const i=new Proxy(e,o===2?a:n);return s.set(e,i),i}function Jr(e){return Ds(e)?Jr(e.__v_raw):!!(e&&e.__v_isReactive)}function Ds(e){return!!(e&&e.__v_isReadonly)}function ur(e){return!!(e&&e.__v_isShallow)}function pl(e){return e?!!e.__v_raw:!1}function lt(e){const t=e&&e.__v_raw;return t?lt(t):e}function Ca(e){return Object.isExtensible(e)&&g0(e,"__v_skip",!0),e}const fo=e=>gt(e)?Kt(e):e,DE=e=>gt(e)?x0(e):e;class B0{constructor(t,n,a,s){this.getter=t,this._setter=n,this.dep=void 0,this.__v_isRef=!0,this.__v_isReadonly=!1,this.effect=new IE(()=>t(this._value),()=>zi(this,this.effect._dirtyLevel===2?2:3)),this.effect.computed=this,this.effect.active=this._cacheable=!s,this.__v_isReadonly=a}get value(){const t=lt(this);return(!t._cacheable||t.effect.dirty)&&Ja(t._value,t._value=t.effect.run())&&zi(t,4),G0(t),t.effect._dirtyLevel>=2&&zi(t,2),t._value}set value(t){this._setter(t)}get _dirty(){return this.effect.dirty}set _dirty(t){this.effect.dirty=t}}function vI(e,t,n=!1){let a,s;const r=je(e);return r?(a=e,s=kn):(a=e.get,s=e.set),new B0(a,s,r||!s,n)}function G0(e){var t;Qa&&Ns&&(e=lt(e),L0(Ns,(t=e.dep)!=null?t:e.dep=$0(()=>e.dep=void 0,e instanceof B0?e:void 0)))}function zi(e,t=4,n,a){e=lt(e);const s=e.dep;s&&y0(s,t)}function Yt(e){return!!(e&&e.__v_isRef===!0)}function de(e){return H0(e,!1)}function Fo(e){return H0(e,!0)}function H0(e,t){return Yt(e)?e:new bI(e,t)}class bI{constructor(t,n){this.__v_isShallow=n,this.dep=void 0,this.__v_isRef=!0,this._rawValue=n?t:lt(t),this._value=n?t:fo(t)}get value(){return G0(this),this._value}set value(t){const n=this.__v_isShallow||ur(t)||Ds(t);t=n?t:lt(t),Ja(t,this._rawValue)&&(this._rawValue,this._rawValue=t,this._value=n?t:fo(t),zi(this,4))}}function m(e){return Yt(e)?e.value:e}const CI={get:(e,t,n)=>m(Reflect.get(e,t,n)),set:(e,t,n,a)=>{const s=e[t];return Yt(s)&&!Yt(n)?(s.value=n,!0):Reflect.set(e,t,n,a)}};function V0(e){return Jr(e)?e:new Proxy(e,CI)}function _e(e){const t=ye(e)?new Array(e.length):{};for(const n in e)t[n]=PI(e,n);return t}class DI{constructor(t,n,a){this._object=t,this._key=n,this._defaultValue=a,this.__v_isRef=!0}get value(){const t=this._object[this._key];return t===void 0?this._defaultValue:t}set value(t){this._object[this._key]=t}get dep(){return iI(lt(this._object),this._key)}}function PI(e,t,n){const a=e[t];return Yt(a)?a:new DI(e,t,n)}/** -* @vue/runtime-core v3.4.38 -* (c) 2018-present Yuxi (Evan) You and Vue contributors -* @license MIT -**/function Za(e,t,n,a){try{return a?e(...a):e()}catch(s){ml(s,t,n)}}function wn(e,t,n,a){if(je(e)){const s=Za(e,t,n,a);return s&&S0(s)&&s.catch(r=>{ml(r,t,n)}),s}if(ye(e)){const s=[];for(let r=0;r>>1,s=Jt[a],r=mo(s);rra&&Jt.splice(t,1)}function UI(e){ye(e)?ar.push(...e):(!za||!za.includes(e,e.allowRecurse?Ss+1:Ss))&&ar.push(e),j0()}function pp(e,t,n=po?ra+1:0){for(;nmo(n)-mo(a));if(ar.length=0,za){za.push(...t);return}for(za=t,Ss=0;Sse.id==null?1/0:e.id,kI=(e,t)=>{const n=mo(e)-mo(t);if(n===0){if(e.pre&&!t.pre)return-1;if(t.pre&&!e.pre)return 1}return n};function Y0(e){qc=!1,po=!0,Jt.sort(kI);try{for(ra=0;ra{a._d&&vp(-1);const r=su(t);let o;try{o=e(...s)}finally{su(r),a._d&&vp(1)}return o};return a._n=!0,a._c=!0,a._d=!0,a}function Le(e,t){if(Gt===null)return e;const n=Ol(Gt),a=e.dirs||(e.dirs=[]);for(let s=0;s{e.isMounted=!0}),zo(()=>{e.isUnmounting=!0}),e}const Ln=[Function,Array],X0={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:Ln,onEnter:Ln,onAfterEnter:Ln,onEnterCancelled:Ln,onBeforeLeave:Ln,onLeave:Ln,onAfterLeave:Ln,onLeaveCancelled:Ln,onBeforeAppear:Ln,onAppear:Ln,onAfterAppear:Ln,onAppearCancelled:Ln},Q0=e=>{const t=e.subTree;return t.component?Q0(t.component):t},MI={name:"BaseTransition",props:X0,setup(e,{slots:t}){const n=lr(),a=wI();return()=>{const s=t.default&&J0(t.default(),!0);if(!s||!s.length)return;let r=s[0];if(s.length>1){for(const E of s)if(E.type!==fn){r=E;break}}const o=lt(e),{mode:i}=o;if(a.isLeaving)return nc(r);const u=mp(r);if(!u)return nc(r);let l=Yc(u,o,a,n,E=>l=E);ru(u,l);const c=n.subTree,f=c&&mp(c);if(f&&f.type!==fn&&!As(u,f)&&Q0(n).type!==fn){const E=Yc(f,o,a,n);if(ru(f,E),i==="out-in"&&u.type!==fn)return a.isLeaving=!0,E.afterLeave=()=>{a.isLeaving=!1,n.update.active!==!1&&(n.effect.dirty=!0,n.update())},nc(r);i==="in-out"&&u.type!==fn&&(E.delayLeave=(p,T,O)=>{const R=Z0(a,f);R[String(f.key)]=f,p[xa]=()=>{T(),p[xa]=void 0,delete l.delayedLeave},l.delayedLeave=O})}return r}}},WI=MI;function Z0(e,t){const{leavingVNodes:n}=e;let a=n.get(t.type);return a||(a=Object.create(null),n.set(t.type,a)),a}function Yc(e,t,n,a,s){const{appear:r,mode:o,persisted:i=!1,onBeforeEnter:u,onEnter:l,onAfterEnter:c,onEnterCancelled:f,onBeforeLeave:E,onLeave:p,onAfterLeave:T,onLeaveCancelled:O,onBeforeAppear:R,onAppear:g,onAfterAppear:N,onAppearCancelled:S}=t,A=String(e.key),v=Z0(n,e),D=(y,z)=>{y&&wn(y,a,9,z)},P=(y,z)=>{const $=z[1];D(y,z),ye(y)?y.every(F=>F.length<=1)&&$():y.length<=1&&$()},C={mode:o,persisted:i,beforeEnter(y){let z=u;if(!n.isMounted)if(r)z=R||u;else return;y[xa]&&y[xa](!0);const $=v[A];$&&As(e,$)&&$.el[xa]&&$.el[xa](),D(z,[y])},enter(y){let z=l,$=c,F=f;if(!n.isMounted)if(r)z=g||l,$=N||c,F=S||f;else return;let X=!1;const re=y[Ei]=G=>{X||(X=!0,G?D(F,[y]):D($,[y]),C.delayedLeave&&C.delayedLeave(),y[Ei]=void 0)};z?P(z,[y,re]):re()},leave(y,z){const $=String(e.key);if(y[Ei]&&y[Ei](!0),n.isUnmounting)return z();D(E,[y]);let F=!1;const X=y[xa]=re=>{F||(F=!0,z(),re?D(O,[y]):D(T,[y]),y[xa]=void 0,v[$]===e&&delete v[$])};v[$]=e,p?P(p,[y,X]):X()},clone(y){const z=Yc(y,t,n,a,s);return s&&s(z),z}};return C}function nc(e){if(Tl(e))return e=es(e),e.children=null,e}function mp(e){if(!Tl(e))return e;const{shapeFlag:t,children:n}=e;if(n){if(t&16)return n[0];if(t&32&&je(n.default))return n.default()}}function ru(e,t){e.shapeFlag&6&&e.component?ru(e.component.subTree,t):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function J0(e,t=!1,n){let a=[],s=0;for(let r=0;r1)for(let r=0;r!!e.type.__asyncLoader,Tl=e=>e.type.__isKeepAlive;function FI(e,t){eh(e,"a",t)}function zI(e,t){eh(e,"da",t)}function eh(e,t,n=jt){const a=e.__wdc||(e.__wdc=()=>{let s=n;for(;s;){if(s.isDeactivated)return;s=s.parent}return e()});if(hl(t,a,n),n){let s=n.parent;for(;s&&s.parent;)Tl(s.parent.vnode)&&xI(a,t,n,s),s=s.parent}}function xI(e,t,n,a){const s=hl(t,e,a,!0);pt(()=>{AE(a[t],s)},n)}function hl(e,t,n=jt,a=!1){if(n){const s=n[e]||(n[e]=[]),r=t.__weh||(t.__weh=(...o)=>{ss();const i=Bo(n),u=wn(t,n,e,o);return i(),rs(),u});return a?s.unshift(r):s.push(r),r}}const Da=e=>(t,n=jt)=>{(!Al||e==="sp")&&hl(e,(...a)=>t(...a),n)},ft=Da("bm"),St=Da("m"),BI=Da("bu"),GI=Da("u"),zo=Da("bum"),pt=Da("um"),HI=Da("sp"),VI=Da("rtg"),KI=Da("rtc");function jI(e,t=jt){hl("ec",e,t)}const th="components",qI="directives";function oe(e,t){return nh(th,e,!0,t)||e}const YI=Symbol.for("v-ndc");function XI(e){return nh(qI,e)}function nh(e,t,n=!0,a=!1){const s=Gt||jt;if(s){const r=s.type;if(e===th){const i=zR(r,!1);if(i&&(i===t||i===Vn(t)||i===He(Vn(t))))return r}const o=_p(s[e]||r[e],t)||_p(s.appContext[e],t);return!o&&a?r:o}}function _p(e,t){return e&&(e[t]||e[Vn(t)]||e[He(Vn(t))])}function Pe(e,t,n,a){let s;const r=n;if(ye(e)||wt(e)){s=new Array(e.length);for(let o=0,i=e.length;ot(o,i,void 0,r));else{const o=Object.keys(e);s=new Array(o.length);for(let i=0,u=o.length;iiu(t)?!(t.type===fn||t.type===me&&!ah(t.children)):!0)?e:null}const Xc=e=>e?Nh(e)?Ol(e):Xc(e.parent):null,to=Vt(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>Xc(e.parent),$root:e=>Xc(e.root),$emit:e=>e.emit,$options:e=>yE(e),$forceUpdate:e=>e.f||(e.f=()=>{e.effect.dirty=!0,LE(e.update)}),$nextTick:e=>e.n||(e.n=on.bind(e.proxy)),$watch:e=>OR.bind(e)}),ac=(e,t)=>e!==Dt&&!e.__isScriptSetup&&ct(e,t),QI={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:a,data:s,props:r,accessCache:o,type:i,appContext:u}=e;let l;if(t[0]!=="$"){const p=o[t];if(p!==void 0)switch(p){case 1:return a[t];case 2:return s[t];case 4:return n[t];case 3:return r[t]}else{if(ac(a,t))return o[t]=1,a[t];if(s!==Dt&&ct(s,t))return o[t]=2,s[t];if((l=e.propsOptions[0])&&ct(l,t))return o[t]=3,r[t];if(n!==Dt&&ct(n,t))return o[t]=4,n[t];Qc&&(o[t]=0)}}const c=to[t];let f,E;if(c)return t==="$attrs"&&hn(e.attrs,"get",""),c(e);if((f=i.__cssModules)&&(f=f[t]))return f;if(n!==Dt&&ct(n,t))return o[t]=4,n[t];if(E=u.config.globalProperties,ct(E,t))return E[t]},set({_:e},t,n){const{data:a,setupState:s,ctx:r}=e;return ac(s,t)?(s[t]=n,!0):a!==Dt&&ct(a,t)?(a[t]=n,!0):ct(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(r[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:a,appContext:s,propsOptions:r}},o){let i;return!!n[o]||e!==Dt&&ct(e,o)||ac(t,o)||(i=r[0])&&ct(i,o)||ct(a,o)||ct(to,o)||ct(s.config.globalProperties,o)},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:ct(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function Tp(e){return ye(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let Qc=!0;function ZI(e){const t=yE(e),n=e.proxy,a=e.ctx;Qc=!1,t.beforeCreate&&hp(t.beforeCreate,e,"bc");const{data:s,computed:r,methods:o,watch:i,provide:u,inject:l,created:c,beforeMount:f,mounted:E,beforeUpdate:p,updated:T,activated:O,deactivated:R,beforeDestroy:g,beforeUnmount:N,destroyed:S,unmounted:A,render:v,renderTracked:D,renderTriggered:P,errorCaptured:C,serverPrefetch:y,expose:z,inheritAttrs:$,components:F,directives:X,filters:re}=t;if(l&&JI(l,a,null),o)for(const q in o){const B=o[q];je(B)&&(a[q]=B.bind(n))}if(s){const q=s.call(n,n);gt(q)&&(e.data=Kt(q))}if(Qc=!0,r)for(const q in r){const B=r[q],Ne=je(B)?B.bind(n,n):je(B.get)?B.get.bind(n,n):kn,qe=!je(B)&&je(B.set)?B.set.bind(n):kn,Fe=w({get:Ne,set:qe});Object.defineProperty(a,q,{enumerable:!0,configurable:!0,get:()=>Fe.value,set:Ue=>Fe.value=Ue})}if(i)for(const q in i)sh(i[q],a,n,q);if(u){const q=je(u)?u.call(n):u;Reflect.ownKeys(q).forEach(B=>{rn(B,q[B])})}c&&hp(c,e,"c");function Z(q,B){ye(B)?B.forEach(Ne=>q(Ne.bind(n))):B&&q(B.bind(n))}if(Z(ft,f),Z(St,E),Z(BI,p),Z(GI,T),Z(FI,O),Z(zI,R),Z(jI,C),Z(KI,D),Z(VI,P),Z(zo,N),Z(pt,A),Z(HI,y),ye(z))if(z.length){const q=e.exposed||(e.exposed={});z.forEach(B=>{Object.defineProperty(q,B,{get:()=>n[B],set:Ne=>n[B]=Ne})})}else e.exposed||(e.exposed={});v&&e.render===kn&&(e.render=v),$!=null&&(e.inheritAttrs=$),F&&(e.components=F),X&&(e.directives=X)}function JI(e,t,n=kn){ye(e)&&(e=Zc(e));for(const a in e){const s=e[a];let r;gt(s)?"default"in s?r=Nt(s.from||a,s.default,!0):r=Nt(s.from||a):r=Nt(s),Yt(r)?Object.defineProperty(t,a,{enumerable:!0,configurable:!0,get:()=>r.value,set:o=>r.value=o}):t[a]=r}}function hp(e,t,n){wn(ye(e)?e.map(a=>a.bind(t.proxy)):e.bind(t.proxy),t,n)}function sh(e,t,n,a){const s=a.includes(".")?Ah(n,a):()=>n[a];if(wt(e)){const r=t[e];je(r)&&We(s,r)}else if(je(e))We(s,e.bind(n));else if(gt(e))if(ye(e))e.forEach(r=>sh(r,t,n,a));else{const r=je(e.handler)?e.handler.bind(n):t[e.handler];je(r)&&We(s,r,e)}}function yE(e){const t=e.type,{mixins:n,extends:a}=t,{mixins:s,optionsCache:r,config:{optionMergeStrategies:o}}=e.appContext,i=r.get(t);let u;return i?u=i:!s.length&&!n&&!a?u=t:(u={},s.length&&s.forEach(l=>ou(u,l,o,!0)),ou(u,t,o)),gt(t)&&r.set(t,u),u}function ou(e,t,n,a=!1){const{mixins:s,extends:r}=t;r&&ou(e,r,n,!0),s&&s.forEach(o=>ou(e,o,n,!0));for(const o in t)if(!(a&&o==="expose")){const i=eR[o]||n&&n[o];e[o]=i?i(e[o],t[o]):t[o]}return e}const eR={data:Sp,props:Ap,emits:Ap,methods:Xr,computed:Xr,beforeCreate:en,created:en,beforeMount:en,mounted:en,beforeUpdate:en,updated:en,beforeDestroy:en,beforeUnmount:en,destroyed:en,unmounted:en,activated:en,deactivated:en,errorCaptured:en,serverPrefetch:en,components:Xr,directives:Xr,watch:nR,provide:Sp,inject:tR};function Sp(e,t){return t?e?function(){return Vt(je(e)?e.call(this,this):e,je(t)?t.call(this,this):t)}:t:e}function tR(e,t){return Xr(Zc(e),Zc(t))}function Zc(e){if(ye(e)){const t={};for(let n=0;n1)return n&&je(t)?t.call(a&&a.proxy):t}}const oh={},ih=()=>Object.create(oh),uh=e=>Object.getPrototypeOf(e)===oh;function rR(e,t,n,a=!1){const s={},r=ih();e.propsDefaults=Object.create(null),lh(e,t,s,r);for(const o in e.propsOptions[0])o in s||(s[o]=void 0);n?e.props=a?s:z0(s):e.type.props?e.props=s:e.props=r,e.attrs=r}function oR(e,t,n,a){const{props:s,attrs:r,vnode:{patchFlag:o}}=e,i=lt(s),[u]=e.propsOptions;let l=!1;if((a||o>0)&&!(o&16)){if(o&8){const c=e.vnode.dynamicProps;for(let f=0;f{u=!0;const[E,p]=ch(f,t,!0);Vt(o,E),p&&i.push(...p)};!n&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}if(!r&&!u)return gt(e)&&a.set(e,tr),tr;if(ye(r))for(let c=0;ce[0]==="_"||e==="$stable",$E=e=>ye(e)?e.map(sa):[sa(e)],uR=(e,t,n)=>{if(t._n)return t;const a=le((...s)=>$E(t(...s)),n);return a._c=!1,a},Eh=(e,t,n)=>{const a=e._ctx;for(const s in e){if(dh(s))continue;const r=e[s];if(je(r))t[s]=uR(s,r,a);else if(r!=null){const o=$E(r);t[s]=()=>o}}},fh=(e,t)=>{const n=$E(t);e.slots.default=()=>n},ph=(e,t,n)=>{for(const a in t)(n||a!=="_")&&(e[a]=t[a])},lR=(e,t,n)=>{const a=e.slots=ih();if(e.vnode.shapeFlag&32){const s=t._;s?(ph(a,t,n),n&&g0(a,"_",s,!0)):Eh(t,a)}else t&&fh(e,t)},cR=(e,t,n)=>{const{vnode:a,slots:s}=e;let r=!0,o=Dt;if(a.shapeFlag&32){const i=t._;i?n&&i===1?r=!1:ph(s,t,n):(r=!t.$stable,Eh(t,s)),o=t}else t&&(fh(e,t),o={default:1});if(r)for(const i in s)!dh(i)&&o[i]==null&&delete s[i]};function ed(e,t,n,a,s=!1){if(ye(e)){e.forEach((E,p)=>ed(E,t&&(ye(t)?t[p]:t),n,a,s));return}if(eo(a)&&!s)return;const r=a.shapeFlag&4?Ol(a.component):a.el,o=s?null:r,{i,r:u}=e,l=t&&t.r,c=i.refs===Dt?i.refs={}:i.refs,f=i.setupState;if(l!=null&&l!==u&&(wt(l)?(c[l]=null,ct(f,l)&&(f[l]=null)):Yt(l)&&(l.value=null)),je(u))Za(u,i,12,[o,c]);else{const E=wt(u),p=Yt(u);if(E||p){const T=()=>{if(e.f){const O=E?ct(f,u)?f[u]:c[u]:u.value;s?ye(O)&&AE(O,r):ye(O)?O.includes(r)||O.push(r):E?(c[u]=[r],ct(f,u)&&(f[u]=c[u])):(u.value=[r],e.k&&(c[e.k]=u.value))}else E?(c[u]=o,ct(f,u)&&(f[u]=o)):p&&(u.value=o,e.k&&(c[e.k]=o))};o?(T.id=-1,cn(T,n)):T()}}}const mh=Symbol("_vte"),dR=e=>e.__isTeleport,no=e=>e&&(e.disabled||e.disabled===""),gp=e=>typeof SVGElement<"u"&&e instanceof SVGElement,Ip=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,td=(e,t)=>{const n=e&&e.to;return wt(n)?t?t(n):null:n},ER={name:"Teleport",__isTeleport:!0,process(e,t,n,a,s,r,o,i,u,l){const{mc:c,pc:f,pbc:E,o:{insert:p,querySelector:T,createText:O,createComment:R}}=l,g=no(t.props);let{shapeFlag:N,children:S,dynamicChildren:A}=t;if(e==null){const v=t.el=O(""),D=t.anchor=O("");p(v,n,a),p(D,n,a);const P=t.target=td(t.props,T),C=Th(P,t,O,p);P&&(o==="svg"||gp(P)?o="svg":(o==="mathml"||Ip(P))&&(o="mathml"));const y=(z,$)=>{N&16&&c(S,z,$,s,r,o,i,u)};g?y(n,D):P&&y(P,C)}else{t.el=e.el,t.targetStart=e.targetStart;const v=t.anchor=e.anchor,D=t.target=e.target,P=t.targetAnchor=e.targetAnchor,C=no(e.props),y=C?n:D,z=C?v:P;if(o==="svg"||gp(D)?o="svg":(o==="mathml"||Ip(D))&&(o="mathml"),A?(E(e.dynamicChildren,A,y,s,r,o,i),UE(e,t,!0)):u||f(e,t,y,z,s,r,o,i,!1),g)C?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):fi(t,n,v,l,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const $=t.target=td(t.props,T);$&&fi(t,$,null,l,0)}else C&&fi(t,D,P,l,1)}_h(t)},remove(e,t,n,{um:a,o:{remove:s}},r){const{shapeFlag:o,children:i,anchor:u,targetStart:l,targetAnchor:c,target:f,props:E}=e;if(f&&(s(l),s(c)),r&&s(u),o&16){const p=r||!no(E);for(let T=0;T{if(k===b)return;k&&!As(k,b)&&(ue=ne(k),Ue(k,ae,Ee,!0),k=null),b.patchFlag===-2&&(U=!1,b.dynamicChildren=null);const{type:x,ref:se,shapeFlag:Ae}=b;switch(x){case xo:R(k,b,H,ue);break;case fn:g(k,b,H,ue);break;case xi:k==null&&N(b,H,ue,Oe);break;case me:F(k,b,H,ue,ae,Ee,Oe,L,U);break;default:Ae&1?v(k,b,H,ue,ae,Ee,Oe,L,U):Ae&6?X(k,b,H,ue,ae,Ee,Oe,L,U):(Ae&64||Ae&128)&&x.process(k,b,H,ue,ae,Ee,Oe,L,U,ve)}se!=null&&ae&&ed(se,k&&k.ref,Ee,b||k,!b)},R=(k,b,H,ue)=>{if(k==null)a(b.el=i(b.children),H,ue);else{const ae=b.el=k.el;b.children!==k.children&&l(ae,b.children)}},g=(k,b,H,ue)=>{k==null?a(b.el=u(b.children||""),H,ue):b.el=k.el},N=(k,b,H,ue)=>{[k.el,k.anchor]=T(k.children,b,H,ue,k.el,k.anchor)},S=({el:k,anchor:b},H,ue)=>{let ae;for(;k&&k!==b;)ae=E(k),a(k,H,ue),k=ae;a(b,H,ue)},A=({el:k,anchor:b})=>{let H;for(;k&&k!==b;)H=E(k),s(k),k=H;s(b)},v=(k,b,H,ue,ae,Ee,Oe,L,U)=>{b.type==="svg"?Oe="svg":b.type==="math"&&(Oe="mathml"),k==null?D(b,H,ue,ae,Ee,Oe,L,U):y(k,b,ae,Ee,Oe,L,U)},D=(k,b,H,ue,ae,Ee,Oe,L)=>{let U,x;const{props:se,shapeFlag:Ae,transition:ce,dirs:K}=k;if(U=k.el=o(k.type,Ee,se&&se.is,se),Ae&8?c(U,k.children):Ae&16&&C(k.children,U,null,ue,ae,sc(k,Ee),Oe,L),K&&ds(k,null,ue,"created"),P(U,k,k.scopeId,Oe,ue),se){for(const ke in se)ke!=="value"&&!Zr(ke)&&r(U,ke,null,se[ke],Ee,ue);"value"in se&&r(U,"value",null,se.value,Ee),(x=se.onVnodeBeforeMount)&&Qn(x,ue,k)}K&&ds(k,null,ue,"beforeMount");const J=TR(ae,ce);J&&ce.beforeEnter(U),a(U,b,H),((x=se&&se.onVnodeMounted)||J||K)&&cn(()=>{x&&Qn(x,ue,k),J&&ce.enter(U),K&&ds(k,null,ue,"mounted")},ae)},P=(k,b,H,ue,ae)=>{if(H&&p(k,H),ue)for(let Ee=0;Ee{for(let x=U;x{const L=b.el=k.el;let{patchFlag:U,dynamicChildren:x,dirs:se}=b;U|=k.patchFlag&16;const Ae=k.props||Dt,ce=b.props||Dt;let K;if(H&&Es(H,!1),(K=ce.onVnodeBeforeUpdate)&&Qn(K,H,b,k),se&&ds(b,k,H,"beforeUpdate"),H&&Es(H,!0),(Ae.innerHTML&&ce.innerHTML==null||Ae.textContent&&ce.textContent==null)&&c(L,""),x?z(k.dynamicChildren,x,L,H,ue,sc(b,ae),Ee):Oe||B(k,b,L,null,H,ue,sc(b,ae),Ee,!1),U>0){if(U&16)$(L,Ae,ce,H,ae);else if(U&2&&Ae.class!==ce.class&&r(L,"class",null,ce.class,ae),U&4&&r(L,"style",Ae.style,ce.style,ae),U&8){const J=b.dynamicProps;for(let ke=0;ke{K&&Qn(K,H,b,k),se&&ds(b,k,H,"updated")},ue)},z=(k,b,H,ue,ae,Ee,Oe)=>{for(let L=0;L{if(b!==H){if(b!==Dt)for(const Ee in b)!Zr(Ee)&&!(Ee in H)&&r(k,Ee,b[Ee],null,ae,ue);for(const Ee in H){if(Zr(Ee))continue;const Oe=H[Ee],L=b[Ee];Oe!==L&&Ee!=="value"&&r(k,Ee,L,Oe,ae,ue)}"value"in H&&r(k,"value",b.value,H.value,ae)}},F=(k,b,H,ue,ae,Ee,Oe,L,U)=>{const x=b.el=k?k.el:i(""),se=b.anchor=k?k.anchor:i("");let{patchFlag:Ae,dynamicChildren:ce,slotScopeIds:K}=b;K&&(L=L?L.concat(K):K),k==null?(a(x,H,ue),a(se,H,ue),C(b.children||[],H,se,ae,Ee,Oe,L,U)):Ae>0&&Ae&64&&ce&&k.dynamicChildren?(z(k.dynamicChildren,ce,H,ae,Ee,Oe,L),(b.key!=null||ae&&b===ae.subTree)&&UE(k,b,!0)):B(k,b,H,se,ae,Ee,Oe,L,U)},X=(k,b,H,ue,ae,Ee,Oe,L,U)=>{b.slotScopeIds=L,k==null?b.shapeFlag&512?ae.ctx.activate(b,H,ue,Oe,U):re(b,H,ue,ae,Ee,Oe,U):G(k,b,U)},re=(k,b,H,ue,ae,Ee,Oe)=>{const L=k.component=kR(k,ue,ae);if(Tl(k)&&(L.ctx.renderer=ve),wR(L,!1,Oe),L.asyncDep){if(ae&&ae.registerDep(L,Z,Oe),!k.el){const U=L.subTree=W(fn);g(null,U,b,H)}}else Z(L,k,b,H,ae,Ee,Oe)},G=(k,b,H)=>{const ue=b.component=k.component;if(vR(k,b,H))if(ue.asyncDep&&!ue.asyncResolved){q(ue,b,H);return}else ue.next=b,$I(ue.update),ue.effect.dirty=!0,ue.update();else b.el=k.el,ue.vnode=b},Z=(k,b,H,ue,ae,Ee,Oe)=>{const L=()=>{if(k.isMounted){let{next:se,bu:Ae,u:ce,parent:K,vnode:J}=k;{const gn=hh(k);if(gn){se&&(se.el=J.el,q(k,se,Oe)),gn.asyncDep.then(()=>{k.isUnmounted||L()});return}}let ke=se,we;Es(k,!1),se?(se.el=J.el,q(k,se,Oe)):se=J,Ae&&Fi(Ae),(we=se.props&&se.props.onVnodeBeforeUpdate)&&Qn(we,K,se,J),Es(k,!0);const Ot=rc(k),Qt=k.subTree;k.subTree=Ot,O(Qt,Ot,f(Qt.el),ne(Qt),k,ae,Ee),se.el=Ot.el,ke===null&&bR(k,Ot.el),ce&&cn(ce,ae),(we=se.props&&se.props.onVnodeUpdated)&&cn(()=>Qn(we,K,se,J),ae)}else{let se;const{el:Ae,props:ce}=b,{bm:K,m:J,parent:ke}=k,we=eo(b);if(Es(k,!1),K&&Fi(K),!we&&(se=ce&&ce.onVnodeBeforeMount)&&Qn(se,ke,b),Es(k,!0),Ae&&mt){const Ot=()=>{k.subTree=rc(k),mt(Ae,k.subTree,k,ae,null)};we?b.type.__asyncLoader().then(()=>!k.isUnmounted&&Ot()):Ot()}else{const Ot=k.subTree=rc(k);O(null,Ot,H,ue,k,ae,Ee),b.el=Ot.el}if(J&&cn(J,ae),!we&&(se=ce&&ce.onVnodeMounted)){const Ot=b;cn(()=>Qn(se,ke,Ot),ae)}(b.shapeFlag&256||ke&&eo(ke.vnode)&&ke.vnode.shapeFlag&256)&&k.a&&cn(k.a,ae),k.isMounted=!0,b=H=ue=null}},U=k.effect=new IE(L,kn,()=>LE(x),k.scope),x=k.update=()=>{U.dirty&&U.run()};x.i=k,x.id=k.uid,Es(k,!0),x()},q=(k,b,H)=>{b.component=k;const ue=k.vnode.props;k.vnode=b,k.next=null,oR(k,b.props,ue,H),cR(k,b.children,H),ss(),pp(k),rs()},B=(k,b,H,ue,ae,Ee,Oe,L,U=!1)=>{const x=k&&k.children,se=k?k.shapeFlag:0,Ae=b.children,{patchFlag:ce,shapeFlag:K}=b;if(ce>0){if(ce&128){qe(x,Ae,H,ue,ae,Ee,Oe,L,U);return}else if(ce&256){Ne(x,Ae,H,ue,ae,Ee,Oe,L,U);return}}K&8?(se&16&&It(x,ae,Ee),Ae!==x&&c(H,Ae)):se&16?K&16?qe(x,Ae,H,ue,ae,Ee,Oe,L,U):It(x,ae,Ee,!0):(se&8&&c(H,""),K&16&&C(Ae,H,ue,ae,Ee,Oe,L,U))},Ne=(k,b,H,ue,ae,Ee,Oe,L,U)=>{k=k||tr,b=b||tr;const x=k.length,se=b.length,Ae=Math.min(x,se);let ce;for(ce=0;cese?It(k,ae,Ee,!0,!1,Ae):C(b,H,ue,ae,Ee,Oe,L,U,Ae)},qe=(k,b,H,ue,ae,Ee,Oe,L,U)=>{let x=0;const se=b.length;let Ae=k.length-1,ce=se-1;for(;x<=Ae&&x<=ce;){const K=k[x],J=b[x]=U?Ba(b[x]):sa(b[x]);if(As(K,J))O(K,J,H,null,ae,Ee,Oe,L,U);else break;x++}for(;x<=Ae&&x<=ce;){const K=k[Ae],J=b[ce]=U?Ba(b[ce]):sa(b[ce]);if(As(K,J))O(K,J,H,null,ae,Ee,Oe,L,U);else break;Ae--,ce--}if(x>Ae){if(x<=ce){const K=ce+1,J=Kce)for(;x<=Ae;)Ue(k[x],ae,Ee,!0),x++;else{const K=x,J=x,ke=new Map;for(x=J;x<=ce;x++){const In=b[x]=U?Ba(b[x]):sa(b[x]);In.key!=null&&ke.set(In.key,x)}let we,Ot=0;const Qt=ce-J+1;let gn=!1,oi=0;const xs=new Array(Qt);for(x=0;x=Qt){Ue(In,ae,Ee,!0);continue}let Xn;if(In.key!=null)Xn=ke.get(In.key);else for(we=J;we<=ce;we++)if(xs[we-J]===0&&As(In,b[we])){Xn=we;break}Xn===void 0?Ue(In,ae,Ee,!0):(xs[Xn-J]=x+1,Xn>=oi?oi=Xn:gn=!0,O(In,b[Xn],H,null,ae,Ee,Oe,L,U),Ot++)}const ap=gn?hR(xs):tr;for(we=ap.length-1,x=Qt-1;x>=0;x--){const In=J+x,Xn=b[In],sp=In+1{const{el:Ee,type:Oe,transition:L,children:U,shapeFlag:x}=k;if(x&6){Fe(k.component.subTree,b,H,ue);return}if(x&128){k.suspense.move(b,H,ue);return}if(x&64){Oe.move(k,b,H,ve);return}if(Oe===me){a(Ee,b,H);for(let Ae=0;AeL.enter(Ee),ae);else{const{leave:Ae,delayLeave:ce,afterLeave:K}=L,J=()=>a(Ee,b,H),ke=()=>{Ae(Ee,()=>{J(),K&&K()})};ce?ce(Ee,J,ke):ke()}else a(Ee,b,H)},Ue=(k,b,H,ue=!1,ae=!1)=>{const{type:Ee,props:Oe,ref:L,children:U,dynamicChildren:x,shapeFlag:se,patchFlag:Ae,dirs:ce,cacheIndex:K}=k;if(Ae===-2&&(ae=!1),L!=null&&ed(L,null,H,k,!0),K!=null&&(b.renderCache[K]=void 0),se&256){b.ctx.deactivate(k);return}const J=se&1&&ce,ke=!eo(k);let we;if(ke&&(we=Oe&&Oe.onVnodeBeforeUnmount)&&Qn(we,b,k),se&6)Qe(k.component,H,ue);else{if(se&128){k.suspense.unmount(H,ue);return}J&&ds(k,null,b,"beforeUnmount"),se&64?k.type.remove(k,b,H,ve,ue):x&&!x.hasOnce&&(Ee!==me||Ae>0&&Ae&64)?It(x,b,H,!1,!0):(Ee===me&&Ae&384||!ae&&se&16)&&It(U,b,H),ue&&zt(k)}(ke&&(we=Oe&&Oe.onVnodeUnmounted)||J)&&cn(()=>{we&&Qn(we,b,k),J&&ds(k,null,b,"unmounted")},H)},zt=k=>{const{type:b,el:H,anchor:ue,transition:ae}=k;if(b===me){ge(H,ue);return}if(b===xi){A(k);return}const Ee=()=>{s(H),ae&&!ae.persisted&&ae.afterLeave&&ae.afterLeave()};if(k.shapeFlag&1&&ae&&!ae.persisted){const{leave:Oe,delayLeave:L}=ae,U=()=>Oe(H,Ee);L?L(k.el,Ee,U):U()}else Ee()},ge=(k,b)=>{let H;for(;k!==b;)H=E(k),s(k),k=H;s(b)},Qe=(k,b,H)=>{const{bum:ue,scope:ae,update:Ee,subTree:Oe,um:L,m:U,a:x}=k;Rp(U),Rp(x),ue&&Fi(ue),ae.stop(),Ee&&(Ee.active=!1,Ue(Oe,k,b,H)),L&&cn(L,b),cn(()=>{k.isUnmounted=!0},b),b&&b.pendingBranch&&!b.isUnmounted&&k.asyncDep&&!k.asyncResolved&&k.suspenseId===b.pendingId&&(b.deps--,b.deps===0&&b.resolve())},It=(k,b,H,ue=!1,ae=!1,Ee=0)=>{for(let Oe=Ee;Oe{if(k.shapeFlag&6)return ne(k.component.subTree);if(k.shapeFlag&128)return k.suspense.next();const b=E(k.anchor||k.el),H=b&&b[mh];return H?E(H):b};let Te=!1;const he=(k,b,H)=>{k==null?b._vnode&&Ue(b._vnode,null,null,!0):O(b._vnode||null,k,b,null,null,null,H),b._vnode=k,Te||(Te=!0,pp(),q0(),Te=!1)},ve={p:O,um:Ue,m:Fe,r:zt,mt:re,mc:C,pc:B,pbc:z,n:ne,o:e};let ut,mt;return{render:he,hydrate:ut,createApp:sR(he,ut)}}function sc({type:e,props:t},n){return n==="svg"&&e==="foreignObject"||n==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function Es({effect:e,update:t},n){e.allowRecurse=t.allowRecurse=n}function TR(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function UE(e,t,n=!1){const a=e.children,s=t.children;if(ye(a)&&ye(s))for(let r=0;r>1,e[n[i]]0&&(t[a]=n[r-1]),n[r]=a)}}for(r=n.length,o=n[r-1];r-- >0;)n[r]=o,o=t[o];return n}function hh(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:hh(t)}function Rp(e){if(e)for(let t=0;tNt(SR),pi={};function We(e,t,n){return Sh(e,t,n)}function Sh(e,t,{immediate:n,deep:a,flush:s,once:r,onTrack:o,onTrigger:i}=Dt){if(t&&r){const D=t;t=(...P)=>{D(...P),v()}}const u=jt,l=D=>a===!0?D:ja(D,a===!1?1:void 0);let c,f=!1,E=!1;if(Yt(e)?(c=()=>e.value,f=ur(e)):Jr(e)?(c=()=>l(e),f=!0):ye(e)?(E=!0,f=e.some(D=>Jr(D)||ur(D)),c=()=>e.map(D=>{if(Yt(D))return D.value;if(Jr(D))return l(D);if(je(D))return Za(D,u,2)})):je(e)?t?c=()=>Za(e,u,2):c=()=>(p&&p(),wn(e,u,3,[T])):c=kn,t&&a){const D=c;c=()=>ja(D())}let p,T=D=>{p=S.onStop=()=>{Za(D,u,4),p=S.onStop=void 0}},O;if(Al)if(T=kn,t?n&&wn(t,u,3,[c(),E?[]:void 0,T]):c(),s==="sync"){const D=AR();O=D.__watcherHandles||(D.__watcherHandles=[])}else return kn;let R=E?new Array(e.length).fill(pi):pi;const g=()=>{if(!(!S.active||!S.dirty))if(t){const D=S.run();(a||f||(E?D.some((P,C)=>Ja(P,R[C])):Ja(D,R)))&&(p&&p(),wn(t,u,3,[D,R===pi?void 0:E&&R[0]===pi?[]:R,T]),R=D)}else S.run()};g.allowRecurse=!!t;let N;s==="sync"?N=g:s==="post"?N=()=>cn(g,u&&u.suspense):(g.pre=!0,u&&(g.id=u.uid),N=()=>LE(g));const S=new IE(c,kn,N),A=rI(),v=()=>{S.stop(),A&&AE(A.effects,S)};return t?n?g():R=S.run():s==="post"?cn(S.run.bind(S),u&&u.suspense):S.run(),O&&O.push(v),v}function OR(e,t,n){const a=this.proxy,s=wt(e)?e.includes(".")?Ah(a,e):()=>a[e]:e.bind(a,a);let r;je(t)?r=t:(r=t.handler,n=t);const o=Bo(this),i=Sh(s,r.bind(a),n);return o(),i}function Ah(e,t){const n=t.split(".");return()=>{let a=e;for(let s=0;s{ja(a,t,n)});else if(O0(e)){for(const a in e)ja(e[a],t,n);for(const a of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,a)&&ja(e[a],t,n)}return e}const gR=(e,t)=>t==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${Vn(t)}Modifiers`]||e[`${as(t)}Modifiers`];function IR(e,t,...n){if(e.isUnmounted)return;const a=e.vnode.props||Dt;let s=n;const r=t.startsWith("update:"),o=r&&gR(a,t.slice(7));o&&(o.trim&&(s=n.map(c=>wt(c)?c.trim():c)),o.number&&(s=n.map(nu)));let i,u=a[i=ec(t)]||a[i=ec(Vn(t))];!u&&r&&(u=a[i=ec(as(t))]),u&&wn(u,e,6,s);const l=a[i+"Once"];if(l){if(!e.emitted)e.emitted={};else if(e.emitted[i])return;e.emitted[i]=!0,wn(l,e,6,s)}}function Oh(e,t,n=!1){const a=t.emitsCache,s=a.get(e);if(s!==void 0)return s;const r=e.emits;let o={},i=!1;if(!je(e)){const u=l=>{const c=Oh(l,t,!0);c&&(i=!0,Vt(o,c))};!n&&t.mixins.length&&t.mixins.forEach(u),e.extends&&u(e.extends),e.mixins&&e.mixins.forEach(u)}return!r&&!i?(gt(e)&&a.set(e,null),null):(ye(r)?r.forEach(u=>o[u]=null):Vt(o,r),gt(e)&&a.set(e,o),o)}function Sl(e,t){return!e||!dl(t)?!1:(t=t.slice(2).replace(/Once$/,""),ct(e,t[0].toLowerCase()+t.slice(1))||ct(e,as(t))||ct(e,t))}function rc(e){const{type:t,vnode:n,proxy:a,withProxy:s,propsOptions:[r],slots:o,attrs:i,emit:u,render:l,renderCache:c,props:f,data:E,setupState:p,ctx:T,inheritAttrs:O}=e,R=su(e);let g,N;try{if(n.shapeFlag&4){const A=s||a,v=A;g=sa(l.call(v,A,c,f,p,E,T)),N=i}else{const A=t;g=sa(A.length>1?A(f,{attrs:i,slots:o,emit:u}):A(f,null)),N=t.props?i:RR(i)}}catch(A){ao.length=0,ml(A,e,1),g=W(fn)}let S=g;if(N&&O!==!1){const A=Object.keys(N),{shapeFlag:v}=S;A.length&&v&7&&(r&&A.some(SE)&&(N=NR(N,r)),S=es(S,N,!1,!0))}return n.dirs&&(S=es(S,null,!1,!0),S.dirs=S.dirs?S.dirs.concat(n.dirs):n.dirs),n.transition&&(S.transition=n.transition),g=S,su(R),g}const RR=e=>{let t;for(const n in e)(n==="class"||n==="style"||dl(n))&&((t||(t={}))[n]=e[n]);return t},NR=(e,t)=>{const n={};for(const a in e)(!SE(a)||!(a.slice(9)in t))&&(n[a]=e[a]);return n};function vR(e,t,n){const{props:a,children:s,component:r}=e,{props:o,children:i,patchFlag:u}=t,l=r.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&u>=0){if(u&1024)return!0;if(u&16)return a?Np(a,o,l):!!o;if(u&8){const c=t.dynamicProps;for(let f=0;fe.__isSuspense;function DR(e,t){t&&t.pendingBranch?ye(e)?t.effects.push(...e):t.effects.push(e):UI(e)}const me=Symbol.for("v-fgt"),xo=Symbol.for("v-txt"),fn=Symbol.for("v-cmt"),xi=Symbol.for("v-stc"),ao=[];let Cn=null;function h(e=!1){ao.push(Cn=e?null:[])}function PR(){ao.pop(),Cn=ao[ao.length-1]||null}let _o=1;function vp(e){_o+=e,e<0&&Cn&&(Cn.hasOnce=!0)}function gh(e){return e.dynamicChildren=_o>0?Cn||tr:null,PR(),_o>0&&Cn&&Cn.push(e),e}function I(e,t,n,a,s,r){return gh(d(e,t,n,a,s,r,!0))}function Y(e,t,n,a,s){return gh(W(e,t,n,a,s,!0))}function iu(e){return e?e.__v_isVNode===!0:!1}function As(e,t){return e.type===t.type&&e.key===t.key}const Ih=({key:e})=>e??null,Bi=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?wt(e)||Yt(e)||je(e)?{i:Gt,r:e,k:t,f:!!n}:e:null);function d(e,t=null,n=null,a=0,s=null,r=e===me?0:1,o=!1,i=!1){const u={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Ih(t),ref:t&&Bi(t),scopeId:_l,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:r,patchFlag:a,dynamicProps:s,dynamicChildren:null,appContext:null,ctx:Gt};return i?(kE(u,n),r&128&&e.normalize(u)):n&&(u.shapeFlag|=wt(n)?8:16),_o>0&&!o&&Cn&&(u.patchFlag>0||r&6)&&u.patchFlag!==32&&Cn.push(u),u}const W=LR;function LR(e,t=null,n=null,a=0,s=null,r=!1){if((!e||e===YI)&&(e=fn),iu(e)){const i=es(e,t,!0);return n&&kE(i,n),_o>0&&!r&&Cn&&(i.shapeFlag&6?Cn[Cn.indexOf(e)]=i:Cn.push(i)),i.patchFlag=-2,i}if(xR(e)&&(e=e.__vccOpts),t){t=yR(t);let{class:i,style:u}=t;i&&!wt(i)&&(t.class=pe(i)),gt(u)&&(pl(u)&&!ye(u)&&(u=Vt({},u)),t.style=ba(u))}const o=wt(e)?1:CR(e)?128:dR(e)?64:gt(e)?4:je(e)?2:0;return d(e,t,n,a,s,o,r,!0)}function yR(e){return e?pl(e)||uh(e)?Vt({},e):e:null}function es(e,t,n=!1,a=!1){const{props:s,ref:r,patchFlag:o,children:i,transition:u}=e,l=t?Rh(s||{},t):s,c={__v_isVNode:!0,__v_skip:!0,type:e.type,props:l,key:l&&Ih(l),ref:t&&t.ref?n&&r?ye(r)?r.concat(Bi(t)):[r,Bi(t)]:Bi(t):r,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:i,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==me?o===-1?16:o|16:o,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:u,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&es(e.ssContent),ssFallback:e.ssFallback&&es(e.ssFallback),el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return u&&a&&ru(c,u.clone(c)),c}function V(e=" ",t=0){return W(xo,null,e,t)}function An(e,t){const n=W(xi,null,e);return n.staticCount=t,n}function M(e="",t=!1){return t?(h(),Y(fn,null,e)):W(fn,null,e)}function sa(e){return e==null||typeof e=="boolean"?W(fn):ye(e)?W(me,null,e.slice()):typeof e=="object"?Ba(e):W(xo,null,String(e))}function Ba(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:es(e)}function kE(e,t){let n=0;const{shapeFlag:a}=e;if(t==null)t=null;else if(ye(t))n=16;else if(typeof t=="object")if(a&65){const s=t.default;s&&(s._c&&(s._d=!1),kE(e,s()),s._c&&(s._d=!0));return}else{n=32;const s=t._;!s&&!uh(t)?t._ctx=Gt:s===3&&Gt&&(Gt.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else je(t)?(t={default:t,_ctx:Gt},n=32):(t=String(t),a&64?(n=16,t=[V(t)]):n=8);e.children=t,e.shapeFlag|=n}function Rh(...e){const t={};for(let n=0;njt||Gt;let uu,nd;{const e=I0(),t=(n,a)=>{let s;return(s=e[n])||(s=e[n]=[]),s.push(a),r=>{s.length>1?s.forEach(o=>o(r)):s[0](r)}};uu=t("__VUE_INSTANCE_SETTERS__",n=>jt=n),nd=t("__VUE_SSR_SETTERS__",n=>Al=n)}const Bo=e=>{const t=jt;return uu(e),e.scope.on(),()=>{e.scope.off(),uu(t)}},bp=()=>{jt&&jt.scope.off(),uu(null)};function Nh(e){return e.vnode.shapeFlag&4}let Al=!1;function wR(e,t=!1,n=!1){t&&nd(t);const{props:a,children:s}=e.vnode,r=Nh(e);rR(e,a,r,t),lR(e,s,n);const o=r?MR(e,t):void 0;return t&&nd(!1),o}function MR(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,QI);const{setup:a}=n;if(a){const s=e.setupContext=a.length>1?FR(e):null,r=Bo(e);ss();const o=Za(a,e,0,[e.props,s]);if(rs(),r(),S0(o)){if(o.then(bp,bp),t)return o.then(i=>{Cp(e,i,t)}).catch(i=>{ml(i,e,0)});e.asyncDep=o}else Cp(e,o,t)}else vh(e,t)}function Cp(e,t,n){je(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:gt(t)&&(e.setupState=V0(t)),vh(e,n)}let Dp;function vh(e,t,n){const a=e.type;if(!e.render){if(!t&&Dp&&!a.render){const s=a.template||yE(e).template;if(s){const{isCustomElement:r,compilerOptions:o}=e.appContext.config,{delimiters:i,compilerOptions:u}=a,l=Vt(Vt({isCustomElement:r,delimiters:i},o),u);a.render=Dp(s,l)}}e.render=a.render||kn}{const s=Bo(e);ss();try{ZI(e)}finally{rs(),s()}}}const WR={get(e,t){return hn(e,"get",""),e[t]}};function FR(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,WR),slots:e.slots,emit:e.emit,expose:t}}function Ol(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(V0(Ca(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in to)return to[n](e)},has(t,n){return n in t||n in to}})):e.proxy}function zR(e,t=!0){return je(e)?e.displayName||e.name:e.name||t&&e.__name}function xR(e){return je(e)&&"__vccOpts"in e}const w=(e,t)=>vI(e,t,Al);function Sn(e,t,n){const a=arguments.length;return a===2?gt(t)&&!ye(t)?iu(t)?W(e,null,[t]):W(e,t):W(e,null,t):(a>3?n=Array.prototype.slice.call(arguments,2):a===3&&iu(n)&&(n=[n]),W(e,t,n))}const bh="3.4.38";/** -* @vue/runtime-dom v3.4.38 -* (c) 2018-present Yuxi (Evan) You and Vue contributors -* @license MIT -**/const BR="http://www.w3.org/2000/svg",GR="http://www.w3.org/1998/Math/MathML",Sa=typeof document<"u"?document:null,Pp=Sa&&Sa.createElement("template"),HR={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,a)=>{const s=t==="svg"?Sa.createElementNS(BR,e):t==="mathml"?Sa.createElementNS(GR,e):n?Sa.createElement(e,{is:n}):Sa.createElement(e);return e==="select"&&a&&a.multiple!=null&&s.setAttribute("multiple",a.multiple),s},createText:e=>Sa.createTextNode(e),createComment:e=>Sa.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Sa.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,a,s,r){const o=n?n.previousSibling:t.lastChild;if(s&&(s===r||s.nextSibling))for(;t.insertBefore(s.cloneNode(!0),n),!(s===r||!(s=s.nextSibling)););else{Pp.innerHTML=a==="svg"?`${e}`:a==="mathml"?`${e}`:e;const i=Pp.content;if(a==="svg"||a==="mathml"){const u=i.firstChild;for(;u.firstChild;)i.appendChild(u.firstChild);i.removeChild(u)}t.insertBefore(i,n)}return[o?o.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},$a="transition",Mr="animation",To=Symbol("_vtc"),lu=(e,{slots:t})=>Sn(WI,VR(e),t);lu.displayName="Transition";const Ch={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String};lu.props=Vt({},X0,Ch);const fs=(e,t=[])=>{ye(e)?e.forEach(n=>n(...t)):e&&e(...t)},Lp=e=>e?ye(e)?e.some(t=>t.length>1):e.length>1:!1;function VR(e){const t={};for(const F in e)F in Ch||(t[F]=e[F]);if(e.css===!1)return t;const{name:n="v",type:a,duration:s,enterFromClass:r=`${n}-enter-from`,enterActiveClass:o=`${n}-enter-active`,enterToClass:i=`${n}-enter-to`,appearFromClass:u=r,appearActiveClass:l=o,appearToClass:c=i,leaveFromClass:f=`${n}-leave-from`,leaveActiveClass:E=`${n}-leave-active`,leaveToClass:p=`${n}-leave-to`}=e,T=KR(s),O=T&&T[0],R=T&&T[1],{onBeforeEnter:g,onEnter:N,onEnterCancelled:S,onLeave:A,onLeaveCancelled:v,onBeforeAppear:D=g,onAppear:P=N,onAppearCancelled:C=S}=t,y=(F,X,re)=>{ps(F,X?c:i),ps(F,X?l:o),re&&re()},z=(F,X)=>{F._isLeaving=!1,ps(F,f),ps(F,p),ps(F,E),X&&X()},$=F=>(X,re)=>{const G=F?P:N,Z=()=>y(X,F,re);fs(G,[X,Z]),yp(()=>{ps(X,F?u:r),Ua(X,F?c:i),Lp(G)||$p(X,a,O,Z)})};return Vt(t,{onBeforeEnter(F){fs(g,[F]),Ua(F,r),Ua(F,o)},onBeforeAppear(F){fs(D,[F]),Ua(F,u),Ua(F,l)},onEnter:$(!1),onAppear:$(!0),onLeave(F,X){F._isLeaving=!0;const re=()=>z(F,X);Ua(F,f),Ua(F,E),YR(),yp(()=>{F._isLeaving&&(ps(F,f),Ua(F,p),Lp(A)||$p(F,a,R,re))}),fs(A,[F,re])},onEnterCancelled(F){y(F,!1),fs(S,[F])},onAppearCancelled(F){y(F,!0),fs(C,[F])},onLeaveCancelled(F){z(F),fs(v,[F])}})}function KR(e){if(e==null)return null;if(gt(e))return[oc(e.enter),oc(e.leave)];{const t=oc(e);return[t,t]}}function oc(e){return Xg(e)}function Ua(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e[To]||(e[To]=new Set)).add(t)}function ps(e,t){t.split(/\s+/).forEach(a=>a&&e.classList.remove(a));const n=e[To];n&&(n.delete(t),n.size||(e[To]=void 0))}function yp(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let jR=0;function $p(e,t,n,a){const s=e._endId=++jR,r=()=>{s===e._endId&&a()};if(n)return setTimeout(r,n);const{type:o,timeout:i,propCount:u}=qR(e,t);if(!o)return a();const l=o+"end";let c=0;const f=()=>{e.removeEventListener(l,E),r()},E=p=>{p.target===e&&++c>=u&&f()};setTimeout(()=>{c(n[T]||"").split(", "),s=a(`${$a}Delay`),r=a(`${$a}Duration`),o=Up(s,r),i=a(`${Mr}Delay`),u=a(`${Mr}Duration`),l=Up(i,u);let c=null,f=0,E=0;t===$a?o>0&&(c=$a,f=o,E=r.length):t===Mr?l>0&&(c=Mr,f=l,E=u.length):(f=Math.max(o,l),c=f>0?o>l?$a:Mr:null,E=c?c===$a?r.length:u.length:0);const p=c===$a&&/\b(transform|all)(,|$)/.test(a(`${$a}Property`).toString());return{type:c,timeout:f,propCount:E,hasTransform:p}}function Up(e,t){for(;e.lengthkp(n)+kp(e[a])))}function kp(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function YR(){return document.body.offsetHeight}function XR(e,t,n){const a=e[To];a&&(t=(t?[t,...a]:[...a]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const cu=Symbol("_vod"),Dh=Symbol("_vsh"),Wr={beforeMount(e,{value:t},{transition:n}){e[cu]=e.style.display==="none"?"":e.style.display,n&&t?n.beforeEnter(e):Fr(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:a}){!t!=!n&&(a?t?(a.beforeEnter(e),Fr(e,!0),a.enter(e)):a.leave(e,()=>{Fr(e,!1)}):Fr(e,t))},beforeUnmount(e,{value:t}){Fr(e,t)}};function Fr(e,t){e.style.display=t?e[cu]:"none",e[Dh]=!t}const QR=Symbol(""),ZR=/(^|;)\s*display\s*:/;function JR(e,t,n){const a=e.style,s=wt(n);let r=!1;if(n&&!s){if(t)if(wt(t))for(const o of t.split(";")){const i=o.slice(0,o.indexOf(":")).trim();n[i]==null&&Gi(a,i,"")}else for(const o in t)n[o]==null&&Gi(a,o,"");for(const o in n)o==="display"&&(r=!0),Gi(a,o,n[o])}else if(s){if(t!==n){const o=a[QR];o&&(n+=";"+o),a.cssText=n,r=ZR.test(n)}}else t&&e.removeAttribute("style");cu in e&&(e[cu]=r?a.display:"",e[Dh]&&(a.display="none"))}const wp=/\s*!important$/;function Gi(e,t,n){if(ye(n))n.forEach(a=>Gi(e,t,a));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const a=eN(e,t);wp.test(n)?e.setProperty(as(a),n.replace(wp,""),"important"):e[a]=n}}const Mp=["Webkit","Moz","ms"],ic={};function eN(e,t){const n=ic[t];if(n)return n;let a=Vn(t);if(a!=="filter"&&a in e)return ic[t]=a;a=He(a);for(let s=0;suc||(rN.then(()=>uc=0),uc=Date.now());function iN(e,t){const n=a=>{if(!a._vts)a._vts=Date.now();else if(a._vts<=n.attached)return;wn(uN(a,n.value),t,5,[a])};return n.value=e,n.attached=oN(),n}function uN(e,t){if(ye(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(a=>s=>!s._stopped&&a&&a(s))}else return t}const Bp=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,lN=(e,t,n,a,s,r)=>{const o=s==="svg";t==="class"?XR(e,a,o):t==="style"?JR(e,n,a):dl(t)?SE(t)||aN(e,t,n,a,r):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):cN(e,t,a,o))?(tN(e,t,a),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&Fp(e,t,a,o,r,t!=="value")):(t==="true-value"?e._trueValue=a:t==="false-value"&&(e._falseValue=a),Fp(e,t,a,o))};function cN(e,t,n,a){if(a)return!!(t==="innerHTML"||t==="textContent"||t in e&&Bp(t)&&je(n));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const s=e.tagName;if(s==="IMG"||s==="VIDEO"||s==="CANVAS"||s==="SOURCE")return!1}return Bp(t)&&wt(n)?!1:t in e}const ts=e=>{const t=e.props["onUpdate:modelValue"]||!1;return ye(t)?n=>Fi(t,n):t};function dN(e){e.target.composing=!0}function Gp(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const Mn=Symbol("_assign"),at={created(e,{modifiers:{lazy:t,trim:n,number:a}},s){e[Mn]=ts(s);const r=a||s.props&&s.props.type==="number";Oa(e,t?"change":"input",o=>{if(o.target.composing)return;let i=e.value;n&&(i=i.trim()),r&&(i=nu(i)),e[Mn](i)}),n&&Oa(e,"change",()=>{e.value=e.value.trim()}),t||(Oa(e,"compositionstart",dN),Oa(e,"compositionend",Gp),Oa(e,"change",Gp))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:a,trim:s,number:r}},o){if(e[Mn]=ts(o),e.composing)return;const i=(r||e.type==="number")&&!/^0\d/.test(e.value)?nu(e.value):e.value,u=t??"";i!==u&&(document.activeElement===e&&e.type!=="range"&&(a&&t===n||s&&e.value.trim()===u)||(e.value=u))}},gl={deep:!0,created(e,t,n){e[Mn]=ts(n),Oa(e,"change",()=>{const a=e._modelValue,s=cr(e),r=e.checked,o=e[Mn];if(ye(a)){const i=gE(a,s),u=i!==-1;if(r&&!u)o(a.concat(s));else if(!r&&u){const l=[...a];l.splice(i,1),o(l)}}else if(vr(a)){const i=new Set(a);r?i.add(s):i.delete(s),o(i)}else o(Ph(e,r))})},mounted:Hp,beforeUpdate(e,t,n){e[Mn]=ts(n),Hp(e,t,n)}};function Hp(e,{value:t,oldValue:n},a){e._modelValue=t,ye(t)?e.checked=gE(t,a.props.value)>-1:vr(t)?e.checked=t.has(a.props.value):t!==n&&(e.checked=Cs(t,Ph(e,!0)))}const EN={created(e,{value:t},n){e.checked=Cs(t,n.props.value),e[Mn]=ts(n),Oa(e,"change",()=>{e[Mn](cr(e))})},beforeUpdate(e,{value:t,oldValue:n},a){e[Mn]=ts(a),t!==n&&(e.checked=Cs(t,a.props.value))}},ia={deep:!0,created(e,{value:t,modifiers:{number:n}},a){const s=vr(t);Oa(e,"change",()=>{const r=Array.prototype.filter.call(e.options,o=>o.selected).map(o=>n?nu(cr(o)):cr(o));e[Mn](e.multiple?s?new Set(r):r:r[0]),e._assigning=!0,on(()=>{e._assigning=!1})}),e[Mn]=ts(a)},mounted(e,{value:t,modifiers:{number:n}}){Vp(e,t)},beforeUpdate(e,t,n){e[Mn]=ts(n)},updated(e,{value:t,modifiers:{number:n}}){e._assigning||Vp(e,t)}};function Vp(e,t,n){const a=e.multiple,s=ye(t);if(!(a&&!s&&!vr(t))){for(let r=0,o=e.options.length;rString(c)===String(u)):i.selected=gE(t,u)>-1}else i.selected=t.has(u);else if(Cs(cr(i),t)){e.selectedIndex!==r&&(e.selectedIndex=r);return}}!a&&e.selectedIndex!==-1&&(e.selectedIndex=-1)}}function cr(e){return"_value"in e?e._value:e.value}function Ph(e,t){const n=t?"_trueValue":"_falseValue";return n in e?e[n]:t}const fN={created(e,t,n){mi(e,t,n,null,"created")},mounted(e,t,n){mi(e,t,n,null,"mounted")},beforeUpdate(e,t,n,a){mi(e,t,n,a,"beforeUpdate")},updated(e,t,n,a){mi(e,t,n,a,"updated")}};function pN(e,t){switch(e){case"SELECT":return ia;case"TEXTAREA":return at;default:switch(t){case"checkbox":return gl;case"radio":return EN;default:return at}}}function mi(e,t,n,a,s){const o=pN(e.tagName,n.props&&n.props.type)[s];o&&o(e,t,n,a)}const mN=["ctrl","shift","alt","meta"],_N={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>mN.some(n=>e[`${n}Key`]&&!t.includes(n))},be=(e,t)=>{const n=e._withMods||(e._withMods={}),a=t.join(".");return n[a]||(n[a]=(s,...r)=>{for(let o=0;o{const n=e._withKeys||(e._withKeys={}),a=t.join(".");return n[a]||(n[a]=s=>{if(!("key"in s))return;const r=as(s.key);if(t.some(o=>o===r||TN[o]===r))return e(s)})},hN=Vt({patchProp:lN},HR);let Kp;function Lh(){return Kp||(Kp=mR(hN))}const SN=(...e)=>{Lh().render(...e)},AN=(...e)=>{const t=Lh().createApp(...e),{mount:n}=t;return t.mount=a=>{const s=gN(a);if(!s)return;const r=t._component;!je(r)&&!r.render&&!r.template&&(r.template=s.innerHTML),s.innerHTML="";const o=n(s,!1,ON(s));return s instanceof Element&&(s.removeAttribute("v-cloak"),s.setAttribute("data-v-app","")),o},t};function ON(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function gN(e){return wt(e)?document.querySelector(e):e}var IN=Object.defineProperty,RN=Object.defineProperties,NN=Object.getOwnPropertyDescriptors,du=Object.getOwnPropertySymbols,yh=Object.prototype.hasOwnProperty,$h=Object.prototype.propertyIsEnumerable,jp=(e,t,n)=>t in e?IN(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,_i=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},Uh=function(e){return e},vN=function(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)},qp=Math.max,bN=function(e,t,n){return t=qp(t===void 0?e.length-1:t,0),function(){for(var a=arguments,s=-1,r=qp(a.length-t,0),o=Array(r);++s0){if(++t>=800)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}(nv),rv=Uh,ov=bN,iv=sv,uv=function(e,t){return iv(ov(e,t,rv),e+"")},Wh=function(e,t){return e===t||e!=e&&t!=t},Fh=function(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=9007199254740991},lv=Mh,cv=Fh,zh=function(e){return e!=null&&cv(e.length)&&!lv(e)},dv=/^(?:0|[1-9]\d*)$/,xh=function(e,t){var n=typeof e;return!!(t=t??9007199254740991)&&(n=="number"||n!="symbol"&&dv.test(e))&&e>-1&&e%1==0&&e2?t[2]:void 0;for(s&&Qv(t[0],t[1],s)&&(a=1);++ne.pageOnly||!Ea.isEnabled),r=w(()=>(s.value||e.teleport)&&a.isFullscreen?{position:"fixed",left:"0",top:"0",width:"100%",height:"100%"}:void 0);function o(){t("change",a.isFullscreen),t("update:modelValue",a.isFullscreen),t("update:fullscreen",a.isFullscreen)}function i(){Ea.isFullscreen||Ea.off("change",i),a.isFullscreen=Ea.isFullscreen,o()}function u(E){E.key==="Escape"&&c()}function l(){s.value?(a.isFullscreen=!0,o(),document.removeEventListener("keyup",u),document.addEventListener("keyup",u)):(Ea.off("change",i),Ea.on("change",i),Ea.request(e.teleport?document.body:n.value))}function c(){a.isFullscreen&&(s.value?(a.isFullscreen=!1,o(),document.removeEventListener("keyup",u)):Ea.exit())}return We(()=>e.fullscreen,E=>{E!==a.isFullscreen&&(E?l():c())}),We(()=>e.modelValue,E=>{E!==a.isFullscreen&&(E?l():c())}),f=((E,p)=>{for(var T in p||(p={}))yh.call(p,T)&&jp(E,T,p[T]);if(du)for(var T of du(p))$h.call(p,T)&&jp(E,T,p[T]);return E})({wrapper:n,wrapperStyle:r},_e(a)),RN(f,NN({toggle:function(E){E===void 0?a.isFullscreen?c():l():E?l():c()},request:l,exit:c,shadeClick:function(E){E.target===n.value&&e.exitOnClickWrapper&&c()}}));var f}});Kh.render=function(e,t,n,a,s,r){return h(),Y(pR,{to:"body",disabled:!e.teleport||!e.fullscreen},[W("div",Rh({ref:"wrapper"},e.$attrs,{style:e.wrapperStyle,class:{[e.fullscreenClass]:e.isFullscreen},onClick:t[1]||(t[1]=o=>e.shadeClick(o))}),[$t(e.$slots,"default")],16)],8,["disabled"])};const tb=typeof window<"u"&&window!==null;(function(){if(tb&&"IntersectionObserver"in window&&"IntersectionObserverEntry"in window&&"intersectionRatio"in window.IntersectionObserverEntry.prototype)return"isIntersecting"in window.IntersectionObserverEntry.prototype||Object.defineProperty(window.IntersectionObserverEntry.prototype,"isIntersecting",{get(){return this.intersectionRatio>0}}),!0})();const nb=Object.prototype.propertyIsEnumerable,om=Object.getOwnPropertySymbols;function Hi(e){return typeof e=="function"||toString.call(e)==="[object Object]"}function ab(e){return e!=="__proto__"&&e!=="constructor"&&e!=="prototype"}function sb(e,...t){if(!Hi(e))throw new TypeError("expected the first argument to be an object");if(t.length===0||typeof Symbol!="function"||typeof om!="function")return e;for(const n of t){const a=om(n);for(const s of a)nb.call(n,s)&&(e[s]=n[s])}return e}function FE(e,...t){let n=0;var a;for((typeof(a=e)=="object"?a===null:typeof a!="function")&&(e=t[n++]),e||(e={});n{a.key==="Escape"&&(document.removeEventListener("keyup",n),this.exit())};return this.isFullscreen=!0,this.element=e,document.removeEventListener("keyup",n),document.addEventListener("keyup",n),this.options.callback&&this.options.callback(this.isFullscreen),Promise.resolve()}{const n=()=>{Zn.isFullscreen||(Zn.off("change",n),um(this)),this.isFullscreen=Zn.isFullscreen,this.options.teleport?this.element=e||null:this.element=Zn.element,this.options.callback&&this.options.callback(Zn.isFullscreen)};return Zn.on("change",n),Zn.request(this.options.teleport?document.body:e)}},exit(){return this.isFullscreen?this.options.pageOnly?(um(this),this.isFullscreen=!1,this.element=null,this.options.callback&&this.options.callback(this.isFullscreen),Promise.resolve()):Zn.exit():Promise.resolve()}},rb=(e,t,n)=>{const a=()=>{let s;const r={teleport:t.modifiers.teleport,pageOnly:t.modifiers.pageOnly};if(t.value)if(typeof t.value=="string")s=t.value;else{const o=t.value,{target:i}=o,u=((l,c)=>{var f={};for(var E in l)yh.call(l,E)&&c.indexOf(E)<0&&(f[E]=l[E]);if(l!=null&&du)for(var E of du(l))c.indexOf(E)<0&&$h.call(l,E)&&(f[E]=l[E]);return f})(o,["target"]);s=i,FE(r,u)}typeof s=="string"&&(s=document.querySelector(s)),qh.toggle(s,r)};e._onClickFullScreen&&e.removeEventListener("click",e._onClickFullScreen),e.addEventListener("click",a),e._onClickFullScreen=a};var ob={install(e,{name:t="fullscreen"}={}){e.config.globalProperties[`$${t}`]=qh,e.component(t,eb(Kh,{name:t})),e.directive(t,rb)}};const zE=e=>(ot("data-v-7bc410b7"),e=e(),it(),e),ib={id:"footer"},ub={class:"footer-items"},lb={class:"footer-item"},cb=zE(()=>d("strong",null,"FitTrackee",-1)),db=zE(()=>d("div",{class:"footer-item bullet"},"•",-1)),Eb={class:"footer-item"},fb={key:0,class:"footer-item bullet"},pb={key:1,class:"footer-item"},mb=["href"],_b=zE(()=>d("div",{class:"footer-item bullet"},"•",-1)),Tb={class:"footer-item"},hb=te({__name:"Footer",props:{version:{},adminContact:{}},setup(e){const t=e,{adminContact:n,version:a}=_e(t);return(s,r)=>{const o=oe("router-link");return h(),I("footer",ib,[d("div",ub,[d("div",lb,[cb,V(" v"+_(m(a)),1)]),db,d("div",Eb,[W(o,{to:"/about"},{default:le(()=>[V(_(s.$t("common.ABOUT")),1)]),_:1})]),m(n)?(h(),I("div",fb,"•")):M("",!0),m(n)?(h(),I("div",pb,[d("a",{href:`mailto:${m(n)}`},_(s.$t("common.CONTACT")),9,mb)])):M("",!0),_b,d("div",Tb,[W(o,{to:"/privacy-policy"},{default:le(()=>[V(_(s.$t("privacy_policy.TITLE")),1)]),_:1})])])])}}}),ie=(e,t)=>{const n=e.__vccOpts||e;for(const[a,s]of t)n[a]=s;return n},Sb=ie(hb,[["__scopeId","data-v-7bc410b7"]]),Ab="/img/weather/clear-day.svg";function Yh(e,t){return function(){return e.apply(t,arguments)}}const{toString:Ob}=Object.prototype,{getPrototypeOf:xE}=Object,Rl=(e=>t=>{const n=Ob.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),jn=e=>(e=e.toLowerCase(),t=>Rl(t)===e),Nl=e=>t=>typeof t===e,{isArray:br}=Array,ho=Nl("undefined");function gb(e){return e!==null&&!ho(e)&&e.constructor!==null&&!ho(e.constructor)&&Dn(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const Xh=jn("ArrayBuffer");function Ib(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&Xh(e.buffer),t}const Rb=Nl("string"),Dn=Nl("function"),Qh=Nl("number"),vl=e=>e!==null&&typeof e=="object",Nb=e=>e===!0||e===!1,Vi=e=>{if(Rl(e)!=="object")return!1;const t=xE(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)},vb=jn("Date"),bb=jn("File"),Cb=jn("Blob"),Db=jn("FileList"),Pb=e=>vl(e)&&Dn(e.pipe),Lb=e=>{let t;return e&&(typeof FormData=="function"&&e instanceof FormData||Dn(e.append)&&((t=Rl(e))==="formdata"||t==="object"&&Dn(e.toString)&&e.toString()==="[object FormData]"))},yb=jn("URLSearchParams"),[$b,Ub,kb,wb]=["ReadableStream","Request","Response","Headers"].map(jn),Mb=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function Go(e,t,{allOwnKeys:n=!1}={}){if(e===null||typeof e>"u")return;let a,s;if(typeof e!="object"&&(e=[e]),br(e))for(a=0,s=e.length;a0;)if(s=n[a],t===s.toLowerCase())return s;return null}const gs=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,Jh=e=>!ho(e)&&e!==gs;function od(){const{caseless:e}=Jh(this)&&this||{},t={},n=(a,s)=>{const r=e&&Zh(t,s)||s;Vi(t[r])&&Vi(a)?t[r]=od(t[r],a):Vi(a)?t[r]=od({},a):br(a)?t[r]=a.slice():t[r]=a};for(let a=0,s=arguments.length;a(Go(t,(s,r)=>{n&&Dn(s)?e[r]=Yh(s,n):e[r]=s},{allOwnKeys:a}),e),Fb=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),zb=(e,t,n,a)=>{e.prototype=Object.create(t.prototype,a),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},xb=(e,t,n,a)=>{let s,r,o;const i={};if(t=t||{},e==null)return t;do{for(s=Object.getOwnPropertyNames(e),r=s.length;r-- >0;)o=s[r],(!a||a(o,e,t))&&!i[o]&&(t[o]=e[o],i[o]=!0);e=n!==!1&&xE(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},Bb=(e,t,n)=>{e=String(e),(n===void 0||n>e.length)&&(n=e.length),n-=t.length;const a=e.indexOf(t,n);return a!==-1&&a===n},Gb=e=>{if(!e)return null;if(br(e))return e;let t=e.length;if(!Qh(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},Hb=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&xE(Uint8Array)),Vb=(e,t)=>{const a=(e&&e[Symbol.iterator]).call(e);let s;for(;(s=a.next())&&!s.done;){const r=s.value;t.call(e,r[0],r[1])}},Kb=(e,t)=>{let n;const a=[];for(;(n=e.exec(t))!==null;)a.push(n);return a},jb=jn("HTMLFormElement"),qb=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(n,a,s){return a.toUpperCase()+s}),lm=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),Yb=jn("RegExp"),e1=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),a={};Go(n,(s,r)=>{let o;(o=t(s,r,e))!==!1&&(a[r]=o||s)}),Object.defineProperties(e,a)},Xb=e=>{e1(e,(t,n)=>{if(Dn(e)&&["arguments","caller","callee"].indexOf(n)!==-1)return!1;const a=e[n];if(Dn(a)){if(t.enumerable=!1,"writable"in t){t.writable=!1;return}t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")})}})},Qb=(e,t)=>{const n={},a=s=>{s.forEach(r=>{n[r]=!0})};return br(e)?a(e):a(String(e).split(t)),n},Zb=()=>{},Jb=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t,pc="abcdefghijklmnopqrstuvwxyz",cm="0123456789",t1={DIGIT:cm,ALPHA:pc,ALPHA_DIGIT:pc+pc.toUpperCase()+cm},e2=(e=16,t=t1.ALPHA_DIGIT)=>{let n="";const{length:a}=t;for(;e--;)n+=t[Math.random()*a|0];return n};function t2(e){return!!(e&&Dn(e.append)&&e[Symbol.toStringTag]==="FormData"&&e[Symbol.iterator])}const n2=e=>{const t=new Array(10),n=(a,s)=>{if(vl(a)){if(t.indexOf(a)>=0)return;if(!("toJSON"in a)){t[s]=a;const r=br(a)?[]:{};return Go(a,(o,i)=>{const u=n(o,s+1);!ho(u)&&(r[i]=u)}),t[s]=void 0,r}}return a};return n(e,0)},a2=jn("AsyncFunction"),s2=e=>e&&(vl(e)||Dn(e))&&Dn(e.then)&&Dn(e.catch),n1=((e,t)=>e?setImmediate:t?((n,a)=>(gs.addEventListener("message",({source:s,data:r})=>{s===gs&&r===n&&a.length&&a.shift()()},!1),s=>{a.push(s),gs.postMessage(n,"*")}))(`axios@${Math.random()}`,[]):n=>setTimeout(n))(typeof setImmediate=="function",Dn(gs.postMessage)),r2=typeof queueMicrotask<"u"?queueMicrotask.bind(gs):typeof process<"u"&&process.nextTick||n1,ee={isArray:br,isArrayBuffer:Xh,isBuffer:gb,isFormData:Lb,isArrayBufferView:Ib,isString:Rb,isNumber:Qh,isBoolean:Nb,isObject:vl,isPlainObject:Vi,isReadableStream:$b,isRequest:Ub,isResponse:kb,isHeaders:wb,isUndefined:ho,isDate:vb,isFile:bb,isBlob:Cb,isRegExp:Yb,isFunction:Dn,isStream:Pb,isURLSearchParams:yb,isTypedArray:Hb,isFileList:Db,forEach:Go,merge:od,extend:Wb,trim:Mb,stripBOM:Fb,inherits:zb,toFlatObject:xb,kindOf:Rl,kindOfTest:jn,endsWith:Bb,toArray:Gb,forEachEntry:Vb,matchAll:Kb,isHTMLForm:jb,hasOwnProperty:lm,hasOwnProp:lm,reduceDescriptors:e1,freezeMethods:Xb,toObjectSet:Qb,toCamelCase:qb,noop:Zb,toFiniteNumber:Jb,findKey:Zh,global:gs,isContextDefined:Jh,ALPHABET:t1,generateString:e2,isSpecCompliantForm:t2,toJSONObject:n2,isAsyncFn:a2,isThenable:s2,setImmediate:n1,asap:r2};function Xe(e,t,n,a,s){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=e,this.name="AxiosError",t&&(this.code=t),n&&(this.config=n),a&&(this.request=a),s&&(this.response=s,this.status=s.status?s.status:null)}ee.inherits(Xe,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:ee.toJSONObject(this.config),code:this.code,status:this.status}}});const a1=Xe.prototype,s1={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(e=>{s1[e]={value:e}});Object.defineProperties(Xe,s1);Object.defineProperty(a1,"isAxiosError",{value:!0});Xe.from=(e,t,n,a,s,r)=>{const o=Object.create(a1);return ee.toFlatObject(e,o,function(u){return u!==Error.prototype},i=>i!=="isAxiosError"),Xe.call(o,e.message,t,n,a,s),o.cause=e,o.name=e.name,r&&Object.assign(o,r),o};const o2=null;function id(e){return ee.isPlainObject(e)||ee.isArray(e)}function r1(e){return ee.endsWith(e,"[]")?e.slice(0,-2):e}function dm(e,t,n){return e?e.concat(t).map(function(s,r){return s=r1(s),!n&&r?"["+s+"]":s}).join(n?".":""):t}function i2(e){return ee.isArray(e)&&!e.some(id)}const u2=ee.toFlatObject(ee,{},null,function(t){return/^is[A-Z]/.test(t)});function bl(e,t,n){if(!ee.isObject(e))throw new TypeError("target must be an object");t=t||new FormData,n=ee.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(O,R){return!ee.isUndefined(R[O])});const a=n.metaTokens,s=n.visitor||c,r=n.dots,o=n.indexes,u=(n.Blob||typeof Blob<"u"&&Blob)&&ee.isSpecCompliantForm(t);if(!ee.isFunction(s))throw new TypeError("visitor must be a function");function l(T){if(T===null)return"";if(ee.isDate(T))return T.toISOString();if(!u&&ee.isBlob(T))throw new Xe("Blob is not supported. Use a Buffer instead.");return ee.isArrayBuffer(T)||ee.isTypedArray(T)?u&&typeof Blob=="function"?new Blob([T]):Buffer.from(T):T}function c(T,O,R){let g=T;if(T&&!R&&typeof T=="object"){if(ee.endsWith(O,"{}"))O=a?O:O.slice(0,-2),T=JSON.stringify(T);else if(ee.isArray(T)&&i2(T)||(ee.isFileList(T)||ee.endsWith(O,"[]"))&&(g=ee.toArray(T)))return O=r1(O),g.forEach(function(S,A){!(ee.isUndefined(S)||S===null)&&t.append(o===!0?dm([O],A,r):o===null?O:O+"[]",l(S))}),!1}return id(T)?!0:(t.append(dm(R,O,r),l(T)),!1)}const f=[],E=Object.assign(u2,{defaultVisitor:c,convertValue:l,isVisitable:id});function p(T,O){if(!ee.isUndefined(T)){if(f.indexOf(T)!==-1)throw Error("Circular reference detected in "+O.join("."));f.push(T),ee.forEach(T,function(g,N){(!(ee.isUndefined(g)||g===null)&&s.call(t,g,ee.isString(N)?N.trim():N,O,E))===!0&&p(g,O?O.concat(N):[N])}),f.pop()}}if(!ee.isObject(e))throw new TypeError("data must be an object");return p(e),t}function Em(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(a){return t[a]})}function BE(e,t){this._pairs=[],e&&bl(e,this,t)}const o1=BE.prototype;o1.append=function(t,n){this._pairs.push([t,n])};o1.toString=function(t){const n=t?function(a){return t.call(this,a,Em)}:Em;return this._pairs.map(function(s){return n(s[0])+"="+n(s[1])},"").join("&")};function l2(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function i1(e,t,n){if(!t)return e;const a=n&&n.encode||l2,s=n&&n.serialize;let r;if(s?r=s(t,n):r=ee.isURLSearchParams(t)?t.toString():new BE(t,n).toString(a),r){const o=e.indexOf("#");o!==-1&&(e=e.slice(0,o)),e+=(e.indexOf("?")===-1?"?":"&")+r}return e}class fm{constructor(){this.handlers=[]}use(t,n,a){return this.handlers.push({fulfilled:t,rejected:n,synchronous:a?a.synchronous:!1,runWhen:a?a.runWhen:null}),this.handlers.length-1}eject(t){this.handlers[t]&&(this.handlers[t]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(t){ee.forEach(this.handlers,function(a){a!==null&&t(a)})}}const u1={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},c2=typeof URLSearchParams<"u"?URLSearchParams:BE,d2=typeof FormData<"u"?FormData:null,E2=typeof Blob<"u"?Blob:null,f2={isBrowser:!0,classes:{URLSearchParams:c2,FormData:d2,Blob:E2},protocols:["http","https","file","blob","url","data"]},GE=typeof window<"u"&&typeof document<"u",ud=typeof navigator=="object"&&navigator||void 0,p2=GE&&(!ud||["ReactNative","NativeScript","NS"].indexOf(ud.product)<0),m2=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",_2=GE&&window.location.href||"http://localhost",T2=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:GE,hasStandardBrowserEnv:p2,hasStandardBrowserWebWorkerEnv:m2,navigator:ud,origin:_2},Symbol.toStringTag,{value:"Module"})),pn={...T2,...f2};function h2(e,t){return bl(e,new pn.classes.URLSearchParams,Object.assign({visitor:function(n,a,s,r){return pn.isNode&&ee.isBuffer(n)?(this.append(a,n.toString("base64")),!1):r.defaultVisitor.apply(this,arguments)}},t))}function S2(e){return ee.matchAll(/\w+|\[(\w*)]/g,e).map(t=>t[0]==="[]"?"":t[1]||t[0])}function A2(e){const t={},n=Object.keys(e);let a;const s=n.length;let r;for(a=0;a=n.length;return o=!o&&ee.isArray(s)?s.length:o,u?(ee.hasOwnProp(s,o)?s[o]=[s[o],a]:s[o]=a,!i):((!s[o]||!ee.isObject(s[o]))&&(s[o]=[]),t(n,a,s[o],r)&&ee.isArray(s[o])&&(s[o]=A2(s[o])),!i)}if(ee.isFormData(e)&&ee.isFunction(e.entries)){const n={};return ee.forEachEntry(e,(a,s)=>{t(S2(a),s,n,0)}),n}return null}function O2(e,t,n){if(ee.isString(e))try{return(t||JSON.parse)(e),ee.trim(e)}catch(a){if(a.name!=="SyntaxError")throw a}return(n||JSON.stringify)(e)}const Ho={transitional:u1,adapter:["xhr","http","fetch"],transformRequest:[function(t,n){const a=n.getContentType()||"",s=a.indexOf("application/json")>-1,r=ee.isObject(t);if(r&&ee.isHTMLForm(t)&&(t=new FormData(t)),ee.isFormData(t))return s?JSON.stringify(l1(t)):t;if(ee.isArrayBuffer(t)||ee.isBuffer(t)||ee.isStream(t)||ee.isFile(t)||ee.isBlob(t)||ee.isReadableStream(t))return t;if(ee.isArrayBufferView(t))return t.buffer;if(ee.isURLSearchParams(t))return n.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let i;if(r){if(a.indexOf("application/x-www-form-urlencoded")>-1)return h2(t,this.formSerializer).toString();if((i=ee.isFileList(t))||a.indexOf("multipart/form-data")>-1){const u=this.env&&this.env.FormData;return bl(i?{"files[]":t}:t,u&&new u,this.formSerializer)}}return r||s?(n.setContentType("application/json",!1),O2(t)):t}],transformResponse:[function(t){const n=this.transitional||Ho.transitional,a=n&&n.forcedJSONParsing,s=this.responseType==="json";if(ee.isResponse(t)||ee.isReadableStream(t))return t;if(t&&ee.isString(t)&&(a&&!this.responseType||s)){const o=!(n&&n.silentJSONParsing)&&s;try{return JSON.parse(t)}catch(i){if(o)throw i.name==="SyntaxError"?Xe.from(i,Xe.ERR_BAD_RESPONSE,this,null,this.response):i}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:pn.classes.FormData,Blob:pn.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};ee.forEach(["delete","get","head","post","put","patch"],e=>{Ho.headers[e]={}});const g2=ee.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),I2=e=>{const t={};let n,a,s;return e&&e.split(` -`).forEach(function(o){s=o.indexOf(":"),n=o.substring(0,s).trim().toLowerCase(),a=o.substring(s+1).trim(),!(!n||t[n]&&g2[n])&&(n==="set-cookie"?t[n]?t[n].push(a):t[n]=[a]:t[n]=t[n]?t[n]+", "+a:a)}),t},pm=Symbol("internals");function Br(e){return e&&String(e).trim().toLowerCase()}function Ki(e){return e===!1||e==null?e:ee.isArray(e)?e.map(Ki):String(e)}function R2(e){const t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let a;for(;a=n.exec(e);)t[a[1]]=a[2];return t}const N2=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function mc(e,t,n,a,s){if(ee.isFunction(a))return a.call(this,t,n);if(s&&(t=n),!!ee.isString(t)){if(ee.isString(a))return t.indexOf(a)!==-1;if(ee.isRegExp(a))return a.test(t)}}function v2(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,n,a)=>n.toUpperCase()+a)}function b2(e,t){const n=ee.toCamelCase(" "+t);["get","set","has"].forEach(a=>{Object.defineProperty(e,a+n,{value:function(s,r,o){return this[a].call(this,t,s,r,o)},configurable:!0})})}class mn{constructor(t){t&&this.set(t)}set(t,n,a){const s=this;function r(i,u,l){const c=Br(u);if(!c)throw new Error("header name must be a non-empty string");const f=ee.findKey(s,c);(!f||s[f]===void 0||l===!0||l===void 0&&s[f]!==!1)&&(s[f||u]=Ki(i))}const o=(i,u)=>ee.forEach(i,(l,c)=>r(l,c,u));if(ee.isPlainObject(t)||t instanceof this.constructor)o(t,n);else if(ee.isString(t)&&(t=t.trim())&&!N2(t))o(I2(t),n);else if(ee.isHeaders(t))for(const[i,u]of t.entries())r(u,i,a);else t!=null&&r(n,t,a);return this}get(t,n){if(t=Br(t),t){const a=ee.findKey(this,t);if(a){const s=this[a];if(!n)return s;if(n===!0)return R2(s);if(ee.isFunction(n))return n.call(this,s,a);if(ee.isRegExp(n))return n.exec(s);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,n){if(t=Br(t),t){const a=ee.findKey(this,t);return!!(a&&this[a]!==void 0&&(!n||mc(this,this[a],a,n)))}return!1}delete(t,n){const a=this;let s=!1;function r(o){if(o=Br(o),o){const i=ee.findKey(a,o);i&&(!n||mc(a,a[i],i,n))&&(delete a[i],s=!0)}}return ee.isArray(t)?t.forEach(r):r(t),s}clear(t){const n=Object.keys(this);let a=n.length,s=!1;for(;a--;){const r=n[a];(!t||mc(this,this[r],r,t,!0))&&(delete this[r],s=!0)}return s}normalize(t){const n=this,a={};return ee.forEach(this,(s,r)=>{const o=ee.findKey(a,r);if(o){n[o]=Ki(s),delete n[r];return}const i=t?v2(r):String(r).trim();i!==r&&delete n[r],n[i]=Ki(s),a[i]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const n=Object.create(null);return ee.forEach(this,(a,s)=>{a!=null&&a!==!1&&(n[s]=t&&ee.isArray(a)?a.join(", "):a)}),n}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([t,n])=>t+": "+n).join(` -`)}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(t){return t instanceof this?t:new this(t)}static concat(t,...n){const a=new this(t);return n.forEach(s=>a.set(s)),a}static accessor(t){const a=(this[pm]=this[pm]={accessors:{}}).accessors,s=this.prototype;function r(o){const i=Br(o);a[i]||(b2(s,o),a[i]=!0)}return ee.isArray(t)?t.forEach(r):r(t),this}}mn.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);ee.reduceDescriptors(mn.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(a){this[n]=a}}});ee.freezeMethods(mn);function _c(e,t){const n=this||Ho,a=t||n,s=mn.from(a.headers);let r=a.data;return ee.forEach(e,function(i){r=i.call(n,r,s.normalize(),t?t.status:void 0)}),s.normalize(),r}function c1(e){return!!(e&&e.__CANCEL__)}function Cr(e,t,n){Xe.call(this,e??"canceled",Xe.ERR_CANCELED,t,n),this.name="CanceledError"}ee.inherits(Cr,Xe,{__CANCEL__:!0});function d1(e,t,n){const a=n.config.validateStatus;!n.status||!a||a(n.status)?e(n):t(new Xe("Request failed with status code "+n.status,[Xe.ERR_BAD_REQUEST,Xe.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}function C2(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}function D2(e,t){e=e||10;const n=new Array(e),a=new Array(e);let s=0,r=0,o;return t=t!==void 0?t:1e3,function(u){const l=Date.now(),c=a[r];o||(o=l),n[s]=u,a[s]=l;let f=r,E=0;for(;f!==s;)E+=n[f++],f=f%e;if(s=(s+1)%e,s===r&&(r=(r+1)%e),l-o{n=c,s=null,r&&(clearTimeout(r),r=null),e.apply(null,l)};return[(...l)=>{const c=Date.now(),f=c-n;f>=a?o(l,c):(s=l,r||(r=setTimeout(()=>{r=null,o(s)},a-f)))},()=>s&&o(s)]}const fu=(e,t,n=3)=>{let a=0;const s=D2(50,250);return P2(r=>{const o=r.loaded,i=r.lengthComputable?r.total:void 0,u=o-a,l=s(u),c=o<=i;a=o;const f={loaded:o,total:i,progress:i?o/i:void 0,bytes:u,rate:l||void 0,estimated:l&&i&&c?(i-o)/l:void 0,event:r,lengthComputable:i!=null,[t?"download":"upload"]:!0};e(f)},n)},mm=(e,t)=>{const n=e!=null;return[a=>t[0]({lengthComputable:n,total:e,loaded:a}),t[1]]},_m=e=>(...t)=>ee.asap(()=>e(...t)),L2=pn.hasStandardBrowserEnv?function(){const t=pn.navigator&&/(msie|trident)/i.test(pn.navigator.userAgent),n=document.createElement("a");let a;function s(r){let o=r;return t&&(n.setAttribute("href",o),o=n.href),n.setAttribute("href",o),{href:n.href,protocol:n.protocol?n.protocol.replace(/:$/,""):"",host:n.host,search:n.search?n.search.replace(/^\?/,""):"",hash:n.hash?n.hash.replace(/^#/,""):"",hostname:n.hostname,port:n.port,pathname:n.pathname.charAt(0)==="/"?n.pathname:"/"+n.pathname}}return a=s(window.location.href),function(o){const i=ee.isString(o)?s(o):o;return i.protocol===a.protocol&&i.host===a.host}}():function(){return function(){return!0}}(),y2=pn.hasStandardBrowserEnv?{write(e,t,n,a,s,r){const o=[e+"="+encodeURIComponent(t)];ee.isNumber(n)&&o.push("expires="+new Date(n).toGMTString()),ee.isString(a)&&o.push("path="+a),ee.isString(s)&&o.push("domain="+s),r===!0&&o.push("secure"),document.cookie=o.join("; ")},read(e){const t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove(e){this.write(e,"",Date.now()-864e5)}}:{write(){},read(){return null},remove(){}};function $2(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function U2(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}function E1(e,t){return e&&!$2(t)?U2(e,t):t}const Tm=e=>e instanceof mn?{...e}:e;function Ps(e,t){t=t||{};const n={};function a(l,c,f){return ee.isPlainObject(l)&&ee.isPlainObject(c)?ee.merge.call({caseless:f},l,c):ee.isPlainObject(c)?ee.merge({},c):ee.isArray(c)?c.slice():c}function s(l,c,f){if(ee.isUndefined(c)){if(!ee.isUndefined(l))return a(void 0,l,f)}else return a(l,c,f)}function r(l,c){if(!ee.isUndefined(c))return a(void 0,c)}function o(l,c){if(ee.isUndefined(c)){if(!ee.isUndefined(l))return a(void 0,l)}else return a(void 0,c)}function i(l,c,f){if(f in t)return a(l,c);if(f in e)return a(void 0,l)}const u={url:r,method:r,data:r,baseURL:o,transformRequest:o,transformResponse:o,paramsSerializer:o,timeout:o,timeoutMessage:o,withCredentials:o,withXSRFToken:o,adapter:o,responseType:o,xsrfCookieName:o,xsrfHeaderName:o,onUploadProgress:o,onDownloadProgress:o,decompress:o,maxContentLength:o,maxBodyLength:o,beforeRedirect:o,transport:o,httpAgent:o,httpsAgent:o,cancelToken:o,socketPath:o,responseEncoding:o,validateStatus:i,headers:(l,c)=>s(Tm(l),Tm(c),!0)};return ee.forEach(Object.keys(Object.assign({},e,t)),function(c){const f=u[c]||s,E=f(e[c],t[c],c);ee.isUndefined(E)&&f!==i||(n[c]=E)}),n}const f1=e=>{const t=Ps({},e);let{data:n,withXSRFToken:a,xsrfHeaderName:s,xsrfCookieName:r,headers:o,auth:i}=t;t.headers=o=mn.from(o),t.url=i1(E1(t.baseURL,t.url),e.params,e.paramsSerializer),i&&o.set("Authorization","Basic "+btoa((i.username||"")+":"+(i.password?unescape(encodeURIComponent(i.password)):"")));let u;if(ee.isFormData(n)){if(pn.hasStandardBrowserEnv||pn.hasStandardBrowserWebWorkerEnv)o.setContentType(void 0);else if((u=o.getContentType())!==!1){const[l,...c]=u?u.split(";").map(f=>f.trim()).filter(Boolean):[];o.setContentType([l||"multipart/form-data",...c].join("; "))}}if(pn.hasStandardBrowserEnv&&(a&&ee.isFunction(a)&&(a=a(t)),a||a!==!1&&L2(t.url))){const l=s&&r&&y2.read(r);l&&o.set(s,l)}return t},k2=typeof XMLHttpRequest<"u",w2=k2&&function(e){return new Promise(function(n,a){const s=f1(e);let r=s.data;const o=mn.from(s.headers).normalize();let{responseType:i,onUploadProgress:u,onDownloadProgress:l}=s,c,f,E,p,T;function O(){p&&p(),T&&T(),s.cancelToken&&s.cancelToken.unsubscribe(c),s.signal&&s.signal.removeEventListener("abort",c)}let R=new XMLHttpRequest;R.open(s.method.toUpperCase(),s.url,!0),R.timeout=s.timeout;function g(){if(!R)return;const S=mn.from("getAllResponseHeaders"in R&&R.getAllResponseHeaders()),v={data:!i||i==="text"||i==="json"?R.responseText:R.response,status:R.status,statusText:R.statusText,headers:S,config:e,request:R};d1(function(P){n(P),O()},function(P){a(P),O()},v),R=null}"onloadend"in R?R.onloadend=g:R.onreadystatechange=function(){!R||R.readyState!==4||R.status===0&&!(R.responseURL&&R.responseURL.indexOf("file:")===0)||setTimeout(g)},R.onabort=function(){R&&(a(new Xe("Request aborted",Xe.ECONNABORTED,e,R)),R=null)},R.onerror=function(){a(new Xe("Network Error",Xe.ERR_NETWORK,e,R)),R=null},R.ontimeout=function(){let A=s.timeout?"timeout of "+s.timeout+"ms exceeded":"timeout exceeded";const v=s.transitional||u1;s.timeoutErrorMessage&&(A=s.timeoutErrorMessage),a(new Xe(A,v.clarifyTimeoutError?Xe.ETIMEDOUT:Xe.ECONNABORTED,e,R)),R=null},r===void 0&&o.setContentType(null),"setRequestHeader"in R&&ee.forEach(o.toJSON(),function(A,v){R.setRequestHeader(v,A)}),ee.isUndefined(s.withCredentials)||(R.withCredentials=!!s.withCredentials),i&&i!=="json"&&(R.responseType=s.responseType),l&&([E,T]=fu(l,!0),R.addEventListener("progress",E)),u&&R.upload&&([f,p]=fu(u),R.upload.addEventListener("progress",f),R.upload.addEventListener("loadend",p)),(s.cancelToken||s.signal)&&(c=S=>{R&&(a(!S||S.type?new Cr(null,e,R):S),R.abort(),R=null)},s.cancelToken&&s.cancelToken.subscribe(c),s.signal&&(s.signal.aborted?c():s.signal.addEventListener("abort",c)));const N=C2(s.url);if(N&&pn.protocols.indexOf(N)===-1){a(new Xe("Unsupported protocol "+N+":",Xe.ERR_BAD_REQUEST,e));return}R.send(r||null)})},M2=(e,t)=>{const{length:n}=e=e?e.filter(Boolean):[];if(t||n){let a=new AbortController,s;const r=function(l){if(!s){s=!0,i();const c=l instanceof Error?l:this.reason;a.abort(c instanceof Xe?c:new Cr(c instanceof Error?c.message:c))}};let o=t&&setTimeout(()=>{o=null,r(new Xe(`timeout ${t} of ms exceeded`,Xe.ETIMEDOUT))},t);const i=()=>{e&&(o&&clearTimeout(o),o=null,e.forEach(l=>{l.unsubscribe?l.unsubscribe(r):l.removeEventListener("abort",r)}),e=null)};e.forEach(l=>l.addEventListener("abort",r));const{signal:u}=a;return u.unsubscribe=()=>ee.asap(i),u}},W2=function*(e,t){let n=e.byteLength;if(!t||n{const s=F2(e,t);let r=0,o,i=u=>{o||(o=!0,a&&a(u))};return new ReadableStream({async pull(u){try{const{done:l,value:c}=await s.next();if(l){i(),u.close();return}let f=c.byteLength;if(n){let E=r+=f;n(E)}u.enqueue(new Uint8Array(c))}catch(l){throw i(l),l}},cancel(u){return i(u),s.return()}},{highWaterMark:2})},Cl=typeof fetch=="function"&&typeof Request=="function"&&typeof Response=="function",p1=Cl&&typeof ReadableStream=="function",x2=Cl&&(typeof TextEncoder=="function"?(e=>t=>e.encode(t))(new TextEncoder):async e=>new Uint8Array(await new Response(e).arrayBuffer())),m1=(e,...t)=>{try{return!!e(...t)}catch{return!1}},B2=p1&&m1(()=>{let e=!1;const t=new Request(pn.origin,{body:new ReadableStream,method:"POST",get duplex(){return e=!0,"half"}}).headers.has("Content-Type");return e&&!t}),Sm=64*1024,ld=p1&&m1(()=>ee.isReadableStream(new Response("").body)),pu={stream:ld&&(e=>e.body)};Cl&&(e=>{["text","arrayBuffer","blob","formData","stream"].forEach(t=>{!pu[t]&&(pu[t]=ee.isFunction(e[t])?n=>n[t]():(n,a)=>{throw new Xe(`Response type '${t}' is not supported`,Xe.ERR_NOT_SUPPORT,a)})})})(new Response);const G2=async e=>{if(e==null)return 0;if(ee.isBlob(e))return e.size;if(ee.isSpecCompliantForm(e))return(await new Request(pn.origin,{method:"POST",body:e}).arrayBuffer()).byteLength;if(ee.isArrayBufferView(e)||ee.isArrayBuffer(e))return e.byteLength;if(ee.isURLSearchParams(e)&&(e=e+""),ee.isString(e))return(await x2(e)).byteLength},H2=async(e,t)=>{const n=ee.toFiniteNumber(e.getContentLength());return n??G2(t)},V2=Cl&&(async e=>{let{url:t,method:n,data:a,signal:s,cancelToken:r,timeout:o,onDownloadProgress:i,onUploadProgress:u,responseType:l,headers:c,withCredentials:f="same-origin",fetchOptions:E}=f1(e);l=l?(l+"").toLowerCase():"text";let p=M2([s,r&&r.toAbortSignal()],o),T;const O=p&&p.unsubscribe&&(()=>{p.unsubscribe()});let R;try{if(u&&B2&&n!=="get"&&n!=="head"&&(R=await H2(c,a))!==0){let v=new Request(t,{method:"POST",body:a,duplex:"half"}),D;if(ee.isFormData(a)&&(D=v.headers.get("content-type"))&&c.setContentType(D),v.body){const[P,C]=mm(R,fu(_m(u)));a=hm(v.body,Sm,P,C)}}ee.isString(f)||(f=f?"include":"omit");const g="credentials"in Request.prototype;T=new Request(t,{...E,signal:p,method:n.toUpperCase(),headers:c.normalize().toJSON(),body:a,duplex:"half",credentials:g?f:void 0});let N=await fetch(T);const S=ld&&(l==="stream"||l==="response");if(ld&&(i||S&&O)){const v={};["status","statusText","headers"].forEach(y=>{v[y]=N[y]});const D=ee.toFiniteNumber(N.headers.get("content-length")),[P,C]=i&&mm(D,fu(_m(i),!0))||[];N=new Response(hm(N.body,Sm,P,()=>{C&&C(),O&&O()}),v)}l=l||"text";let A=await pu[ee.findKey(pu,l)||"text"](N,e);return!S&&O&&O(),await new Promise((v,D)=>{d1(v,D,{data:A,headers:mn.from(N.headers),status:N.status,statusText:N.statusText,config:e,request:T})})}catch(g){throw O&&O(),g&&g.name==="TypeError"&&/fetch/i.test(g.message)?Object.assign(new Xe("Network Error",Xe.ERR_NETWORK,e,T),{cause:g.cause||g}):Xe.from(g,g&&g.code,e,T)}}),cd={http:o2,xhr:w2,fetch:V2};ee.forEach(cd,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch{}Object.defineProperty(e,"adapterName",{value:t})}});const Am=e=>`- ${e}`,K2=e=>ee.isFunction(e)||e===null||e===!1,_1={getAdapter:e=>{e=ee.isArray(e)?e:[e];const{length:t}=e;let n,a;const s={};for(let r=0;r`adapter ${i} `+(u===!1?"is not supported by the environment":"is not available in the build"));let o=t?r.length>1?`since : -`+r.map(Am).join(` -`):" "+Am(r[0]):"as no adapter specified";throw new Xe("There is no suitable adapter to dispatch the request "+o,"ERR_NOT_SUPPORT")}return a},adapters:cd};function Tc(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new Cr(null,e)}function Om(e){return Tc(e),e.headers=mn.from(e.headers),e.data=_c.call(e,e.transformRequest),["post","put","patch"].indexOf(e.method)!==-1&&e.headers.setContentType("application/x-www-form-urlencoded",!1),_1.getAdapter(e.adapter||Ho.adapter)(e).then(function(a){return Tc(e),a.data=_c.call(e,e.transformResponse,a),a.headers=mn.from(a.headers),a},function(a){return c1(a)||(Tc(e),a&&a.response&&(a.response.data=_c.call(e,e.transformResponse,a.response),a.response.headers=mn.from(a.response.headers))),Promise.reject(a)})}const T1="1.7.7",HE={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{HE[e]=function(a){return typeof a===e||"a"+(t<1?"n ":" ")+e}});const gm={};HE.transitional=function(t,n,a){function s(r,o){return"[Axios v"+T1+"] Transitional option '"+r+"'"+o+(a?". "+a:"")}return(r,o,i)=>{if(t===!1)throw new Xe(s(o," has been removed"+(n?" in "+n:"")),Xe.ERR_DEPRECATED);return n&&!gm[o]&&(gm[o]=!0,console.warn(s(o," has been deprecated since v"+n+" and will be removed in the near future"))),t?t(r,o,i):!0}};function j2(e,t,n){if(typeof e!="object")throw new Xe("options must be an object",Xe.ERR_BAD_OPTION_VALUE);const a=Object.keys(e);let s=a.length;for(;s-- >0;){const r=a[s],o=t[r];if(o){const i=e[r],u=i===void 0||o(i,r,e);if(u!==!0)throw new Xe("option "+r+" must be "+u,Xe.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new Xe("Unknown option "+r,Xe.ERR_BAD_OPTION)}}const dd={assertOptions:j2,validators:HE},ka=dd.validators;class bs{constructor(t){this.defaults=t,this.interceptors={request:new fm,response:new fm}}async request(t,n){try{return await this._request(t,n)}catch(a){if(a instanceof Error){let s;Error.captureStackTrace?Error.captureStackTrace(s={}):s=new Error;const r=s.stack?s.stack.replace(/^.+\n/,""):"";try{a.stack?r&&!String(a.stack).endsWith(r.replace(/^.+\n.+\n/,""))&&(a.stack+=` -`+r):a.stack=r}catch{}}throw a}}_request(t,n){typeof t=="string"?(n=n||{},n.url=t):n=t||{},n=Ps(this.defaults,n);const{transitional:a,paramsSerializer:s,headers:r}=n;a!==void 0&&dd.assertOptions(a,{silentJSONParsing:ka.transitional(ka.boolean),forcedJSONParsing:ka.transitional(ka.boolean),clarifyTimeoutError:ka.transitional(ka.boolean)},!1),s!=null&&(ee.isFunction(s)?n.paramsSerializer={serialize:s}:dd.assertOptions(s,{encode:ka.function,serialize:ka.function},!0)),n.method=(n.method||this.defaults.method||"get").toLowerCase();let o=r&&ee.merge(r.common,r[n.method]);r&&ee.forEach(["delete","get","head","post","put","patch","common"],T=>{delete r[T]}),n.headers=mn.concat(o,r);const i=[];let u=!0;this.interceptors.request.forEach(function(O){typeof O.runWhen=="function"&&O.runWhen(n)===!1||(u=u&&O.synchronous,i.unshift(O.fulfilled,O.rejected))});const l=[];this.interceptors.response.forEach(function(O){l.push(O.fulfilled,O.rejected)});let c,f=0,E;if(!u){const T=[Om.bind(this),void 0];for(T.unshift.apply(T,i),T.push.apply(T,l),E=T.length,c=Promise.resolve(n);f{if(!a._listeners)return;let r=a._listeners.length;for(;r-- >0;)a._listeners[r](s);a._listeners=null}),this.promise.then=s=>{let r;const o=new Promise(i=>{a.subscribe(i),r=i}).then(s);return o.cancel=function(){a.unsubscribe(r)},o},t(function(r,o,i){a.reason||(a.reason=new Cr(r,o,i),n(a.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(t){if(this.reason){t(this.reason);return}this._listeners?this._listeners.push(t):this._listeners=[t]}unsubscribe(t){if(!this._listeners)return;const n=this._listeners.indexOf(t);n!==-1&&this._listeners.splice(n,1)}toAbortSignal(){const t=new AbortController,n=a=>{t.abort(a)};return this.subscribe(n),t.signal.unsubscribe=()=>this.unsubscribe(n),t.signal}static source(){let t;return{token:new VE(function(s){t=s}),cancel:t}}}function q2(e){return function(n){return e.apply(null,n)}}function Y2(e){return ee.isObject(e)&&e.isAxiosError===!0}const Ed={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(Ed).forEach(([e,t])=>{Ed[t]=e});function h1(e){const t=new bs(e),n=Yh(bs.prototype.request,t);return ee.extend(n,bs.prototype,t,{allOwnKeys:!0}),ee.extend(n,t,null,{allOwnKeys:!0}),n.create=function(s){return h1(Ps(e,s))},n}const Mt=h1(Ho);Mt.Axios=bs;Mt.CanceledError=Cr;Mt.CancelToken=VE;Mt.isCancel=c1;Mt.VERSION=T1;Mt.toFormData=bl;Mt.AxiosError=Xe;Mt.Cancel=Mt.CanceledError;Mt.all=function(t){return Promise.all(t)};Mt.spread=q2;Mt.isAxiosError=Y2;Mt.mergeConfig=Ps;Mt.AxiosHeaders=mn;Mt.formToJSON=e=>l1(ee.isHTMLForm(e)?new FormData(e):e);Mt.getAdapter=_1.getAdapter;Mt.HttpStatusCode=Ed;Mt.default=Mt;var S1=(e=>(e.ACCEPT_PRIVACY_POLICY="ACCEPT_PRIVACY_POLICY",e.CHECK_AUTH_USER="CHECK_AUTH_USER",e.CONFIRM_ACCOUNT="CONFIRM_ACCOUNT",e.CONFIRM_EMAIL="CONFIRM_EMAIL",e.DELETE_ACCOUNT="DELETE_ACCOUNT",e.DELETE_PICTURE="DELETE_PICTURE",e.GET_REQUEST_DATA_EXPORT="GET_REQUEST_DATA_EXPORT",e.GET_USER_PROFILE="GET_USER_PROFILE",e.LOGIN_OR_REGISTER="LOGIN_OR_REGISTER",e.LOGOUT="LOGOUT",e.REQUEST_DATA_EXPORT="REQUEST_DATA_EXPORT",e.RESEND_ACCOUNT_CONFIRMATION_EMAIL="RESEND_ACCOUNT_CONFIRMATION_EMAIL",e.RESET_USER_PASSWORD="RESET_USER_PASSWORD",e.RESET_USER_SPORT_PREFERENCES="RESET_USER_SPORT_PREFERENCES",e.SEND_PASSWORD_RESET_REQUEST="SEND_PASSWORD_RESET_REQUEST",e.UPDATE_USER_ACCOUNT="UPDATE_USER_ACCOUNT",e.UPDATE_USER_PICTURE="UPDATE_USER_PICTURE",e.UPDATE_USER_PROFILE="UPDATE_USER_PROFILE",e.UPDATE_USER_PREFERENCES="UPDATE_USER_PREFERENCES",e.UPDATE_USER_SPORT_PREFERENCES="UPDATE_USER_SPORT_PREFERENCES",e))(S1||{}),A1=(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_PROFILE_NOT_LOADED="IS_PROFILE_NOT_LOADED",e.IS_SUCCESS="IS_SUCCESS",e.IS_REGISTRATION_SUCCESS="IS_REGISTRATION_SUCCESS",e.USER_LOADING="USER_LOADING",e.EXPORT_REQUEST="EXPORT_REQUEST",e))(A1||{}),O1=(e=>(e.CLEAR_AUTH_USER_TOKEN="CLEAR_AUTH_USER_TOKEN",e.UPDATE_AUTH_TOKEN="UPDATE_AUTH_TOKEN",e.UPDATE_AUTH_USER_PROFILE="UPDATE_AUTH_USER_PROFILE",e.UPDATE_IS_SUCCESS="UPDATE_USER_IS_SUCCESS",e.UPDATE_IS_REGISTRATION_SUCCESS="UPDATE_IS_REGISTRATION_SUCCESS",e.UPDATE_USER_LOADING="UPDATE_USER_LOADING",e.SET_EXPORT_REQUEST="SET_EXPORT_REQUEST",e))(O1||{}),g1=(e=>(e.ADD_EQUIPMENT="ADD_EQUIPMENT",e.DELETE_EQUIPMENT="DELETE_EQUIPMENT",e.GET_EQUIPMENT="GET_EQUIPMENT",e.GET_EQUIPMENT_TYPES="GET_EQUIPMENT_TYPES",e.GET_EQUIPMENTS="GET_EQUIPMENTS",e.REFRESH_EQUIPMENT="REFRESH_EQUIPMENT",e.UPDATE_EQUIPMENT="UPDATE_EQUIPMENT",e.UPDATE_EQUIPMENT_TYPE="UPDATE_EQUIPMENT_TYPE",e))(g1||{}),I1=(e=>(e.EQUIPMENT="EQUIPMENT",e.EQUIPMENTS="EQUIPMENTS",e.EQUIPMENT_TYPES="EQUIPMENT_TYPES",e.LOADING="LOADING",e))(I1||{}),R1=(e=>(e.ADD_EQUIPMENT="ADD_EQUIPMENT",e.REMOVE_EQUIPMENT="REMOVE_EQUIPMENT",e.SET_EQUIPMENTS="SET_EQUIPMENTS",e.SET_EQUIPMENT_TYPES="SET_EQUIPMENT_TYPES",e.SET_LOADING="SET_LOADING",e.UPDATE_EQUIPMENT="UPDATE_EQUIPMENT",e))(R1||{}),N1=(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",e))(N1||{}),v1=(e=>(e.CLIENT="CLIENT",e.CLIENTS="CLIENTS",e.CLIENTS_PAGINATION="CLIENTS_PAGINATION",e.REVOCATION_SUCCESSFUL="REVOCATION_SUCCESSFUL",e))(v1||{}),b1=(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",e))(b1||{}),C1=(e=>(e.GET_APPLICATION_CONFIG="GET_APPLICATION_CONFIG",e.GET_APPLICATION_PRIVACY_POLICY="GET_APPLICATION_PRIVACY_POLICY",e.GET_APPLICATION_STATS="GET_APPLICATION_STATS",e.UPDATE_APPLICATION_CONFIG="UPDATE_APPLICATION_CONFIG",e.UPDATE_APPLICATION_LANGUAGE="UPDATE_APPLICATION_LANGUAGE",e))(C1||{}),D1=(e=>(e.APP_CONFIG="APP_CONFIG",e.APP_LOADING="APP_LOADING",e.APP_STATS="APP_STATS",e.DARK_MODE="DARK_MODE",e.ERROR_MESSAGES="ERROR_MESSAGES",e.LANGUAGE="LANGUAGE",e.LOCALE="LOCALE",e))(D1||{}),P1=(e=>(e.EMPTY_ERROR_MESSAGES="EMPTY_ERROR_MESSAGES",e.SET_ERROR_MESSAGES="SET_ERROR_MESSAGES",e.UPDATE_APPLICATION_CONFIG="UPDATE_APPLICATION_CONFIG",e.UPDATE_APPLICATION_LOADING="UPDATE_APPLICATION_LOADING",e.UPDATE_APPLICATION_PRIVACY_POLICY="UPDATE_APPLICATION_PRIVACY_POLICY",e.UPDATE_APPLICATION_STATS="UPDATE_APPLICATION_STATS",e.UPDATE_DARK_MODE="UPDATE_DARK_MODE",e.UPDATE_LANG="UPDATE_LANG",e))(P1||{}),L1=(e=>(e.GET_SPORTS="GET_SPORTS",e.UPDATE_SPORTS="UPDATE_SPORTS",e))(L1||{}),y1=(e=>(e.SPORTS="SPORTS",e))(y1||{}),$1=(e=>(e.SET_SPORTS="SET_SPORTS",e))($1||{}),U1=(e=>(e.GET_USER_SPORT_STATS="GET_USER_SPORT_STATS",e.GET_USER_STATS="GET_USER_STATS",e))(U1||{}),k1=(e=>(e.USER_SPORT_STATS="USER_SPORT_STATS",e.USER_STATS="USER_STATS",e.STATS_LOADING="STATS_LOADING",e.TOTAL_WORKOUTS="TOTAL_WORKOUTS",e))(k1||{}),w1=(e=>(e.EMPTY_USER_SPORT_STATS="EMPTY_USER_SPORT_STATS",e.EMPTY_USER_STATS="EMPTY_USER_STATS",e.UPDATE_USER_SPORT_STATS="UPDATE_USER_SPORT_STATS",e.UPDATE_USER_STATS="UPDATE_USER_STATS",e.UPDATE_STATS_LOADING="UPDATE_STATS_LOADING",e.UPDATE_TOTAL_WORKOUTS="UPDATE_TOTAL_WORKOUTS",e))(w1||{}),M1=(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",e))(M1||{}),W1=(e=>(e.USER="USER",e.USERS="USERS",e.USERS_IS_SUCCESS="USERS_IS_SUCCESS",e.USERS_LOADING="USERS_LOADING",e.USERS_PAGINATION="USERS_PAGINATION",e))(W1||{}),F1=(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",e))(F1||{}),z1=(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",e))(z1||{}),x1=(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",e))(x1||{}),Is=(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",e))(Is||{});const j={ACTIONS:C1,GETTERS:D1,MUTATIONS:P1},Pt={ACTIONS:L1,GETTERS:y1,MUTATIONS:$1},Ut={ACTIONS:U1,GETTERS:k1,MUTATIONS:w1},Q={ACTIONS:S1,GETTERS:A1,MUTATIONS:O1},tt={ACTIONS:N1,GETTERS:v1,MUTATIONS:b1},Be={ACTIONS:M1,GETTERS:W1,MUTATIONS:F1},Re={ACTIONS:z1,GETTERS:x1,MUTATIONS:Is},Me={ACTIONS:g1,GETTERS:I1,MUTATIONS:R1},Vo=()=>"/api/",fe=(e,t,n="UNKNOWN")=>{var o;if(t&&t.message==="canceled")return;const a=t!=null&&t.response&&t.response.data?t.response.data:null;if(((o=t==null?void 0:t.response)==null?void 0:o.status)===401&&(a==null?void 0:a.error)==="invalid_token"){localStorage.removeItem("authToken"),e.dispatch(Q.ACTIONS.CHECK_AUTH_USER);return}const s=X2(t,e),r=s?"":t?t.response?t.response.status===413?"file size is greater than the allowed size":a!=null&&a.message?a.message:n:t.message?t.message:n:n;e.commit(j.MUTATIONS.SET_ERROR_MESSAGES,s||(r.includes(` -`)?r.split(` -`).filter(i=>i!=="").map(i=>`api.ERROR.${i}`):`api.ERROR.${r}`))},X2=(e,t)=>{var n;if((n=e==null?void 0:e.response)!=null&&n.data){const a={...e.response.data};if("equipment_id"in a){const s=t.getters[Me.GETTERS.EQUIPMENTS].filter(r=>r.id===a.equipment_id);return{equipmentId:a.equipment_id,equipmentLabel:s.length===0?null:s[0].label,status:a.status}}}return null},Dl=e=>e===null&&window.matchMedia("(prefers-color-scheme: dark)").matches?!0:e===!0,Q2={class:"user-picture"},Z2=["alt","src"],J2={key:1,class:"no-picture"},eC=d("i",{class:"fa fa-user-circle-o","aria-hidden":"true"},null,-1),tC=[eC],Ko=te({__name:"UserPicture",props:{user:{}},setup(e){const t=e,n=w(()=>t.user.picture?`${Vo()}users/${t.user.username}/picture?${Date.now()}`:"");return(a,s)=>(h(),I("div",Q2,[n.value!==""?(h(),I("img",{key:0,class:"profile-user-img",alt:a.$t("user.USER_PICTURE"),src:n.value},null,8,Z2)):(h(),I("div",J2,tC))]))}});function nC(){return B1().__VUE_DEVTOOLS_GLOBAL_HOOK__}function B1(){return typeof navigator<"u"&&typeof window<"u"?window:typeof globalThis<"u"?globalThis:{}}const aC=typeof Proxy=="function",sC="devtools-plugin:setup",rC="plugin:settings:set";let Bs,fd;function oC(){var e;return Bs!==void 0||(typeof window<"u"&&window.performance?(Bs=!0,fd=window.performance):typeof globalThis<"u"&&(!((e=globalThis.perf_hooks)===null||e===void 0)&&e.performance)?(Bs=!0,fd=globalThis.perf_hooks.performance):Bs=!1),Bs}function iC(){return oC()?fd.now():Date.now()}class uC{constructor(t,n){this.target=null,this.targetQueue=[],this.onQueue=[],this.plugin=t,this.hook=n;const a={};if(t.settings)for(const o in t.settings){const i=t.settings[o];a[o]=i.defaultValue}const s=`__vue-devtools-plugin-settings__${t.id}`;let r=Object.assign({},a);try{const o=localStorage.getItem(s),i=JSON.parse(o);Object.assign(r,i)}catch{}this.fallbacks={getSettings(){return r},setSettings(o){try{localStorage.setItem(s,JSON.stringify(o))}catch{}r=o},now(){return iC()}},n&&n.on(rC,(o,i)=>{o===this.plugin.id&&this.fallbacks.setSettings(i)}),this.proxiedOn=new Proxy({},{get:(o,i)=>this.target?this.target.on[i]:(...u)=>{this.onQueue.push({method:i,args:u})}}),this.proxiedTarget=new Proxy({},{get:(o,i)=>this.target?this.target[i]:i==="on"?this.proxiedOn:Object.keys(this.fallbacks).includes(i)?(...u)=>(this.targetQueue.push({method:i,args:u,resolve:()=>{}}),this.fallbacks[i](...u)):(...u)=>new Promise(l=>{this.targetQueue.push({method:i,args:u,resolve:l})})})}async setRealTarget(t){this.target=t;for(const n of this.onQueue)this.target.on[n.method](...n.args);for(const n of this.targetQueue)n.resolve(await this.target[n.method](...n.args))}}function lC(e,t){const n=e,a=B1(),s=nC(),r=aC&&n.enableEarlyProxy;if(s&&(a.__VUE_DEVTOOLS_PLUGIN_API_AVAILABLE__||!r))s.emit(sC,e,t);else{const o=r?new uC(n,s):null;(a.__VUE_DEVTOOLS_PLUGINS__=a.__VUE_DEVTOOLS_PLUGINS__||[]).push({pluginDescriptor:n,setupFn:t,proxy:o}),o&&t(o.proxiedTarget)}}/*! - * vuex v4.1.0 - * (c) 2022 Evan You - * @license MIT - */var G1="store";function jo(e){return e===void 0&&(e=null),Nt(e!==null?e:G1)}function Dr(e,t){Object.keys(e).forEach(function(n){return t(e[n],n)})}function cC(e){return e!==null&&typeof e=="object"}function dC(e){return e&&typeof e.then=="function"}function EC(e,t){return function(){return e(t)}}function H1(e,t,n){return t.indexOf(e)<0&&(n&&n.prepend?t.unshift(e):t.push(e)),function(){var a=t.indexOf(e);a>-1&&t.splice(a,1)}}function V1(e,t){e._actions=Object.create(null),e._mutations=Object.create(null),e._wrappedGetters=Object.create(null),e._modulesNamespaceMap=Object.create(null);var n=e.state;Pl(e,n,[],e._modules.root,!0),KE(e,n,t)}function KE(e,t,n){var a=e._state,s=e._scope;e.getters={},e._makeLocalGettersCache=Object.create(null);var r=e._wrappedGetters,o={},i={},u=C0(!0);u.run(function(){Dr(r,function(l,c){o[c]=EC(l,e),i[c]=w(function(){return o[c]()}),Object.defineProperty(e.getters,c,{get:function(){return i[c].value},enumerable:!0})})}),e._state=Kt({data:t}),e._scope=u,e.strict&&TC(e),a&&n&&e._withCommit(function(){a.data=null}),s&&s.stop()}function Pl(e,t,n,a,s){var r=!n.length,o=e._modules.getNamespace(n);if(a.namespaced&&(e._modulesNamespaceMap[o],e._modulesNamespaceMap[o]=a),!r&&!s){var i=jE(t,n.slice(0,-1)),u=n[n.length-1];e._withCommit(function(){i[u]=a.state})}var l=a.context=fC(e,o,n);a.forEachMutation(function(c,f){var E=o+f;pC(e,E,c,l)}),a.forEachAction(function(c,f){var E=c.root?f:o+f,p=c.handler||c;mC(e,E,p,l)}),a.forEachGetter(function(c,f){var E=o+f;_C(e,E,c,l)}),a.forEachChild(function(c,f){Pl(e,t,n.concat(f),c,s)})}function fC(e,t,n){var a=t==="",s={dispatch:a?e.dispatch:function(r,o,i){var u=mu(r,o,i),l=u.payload,c=u.options,f=u.type;return(!c||!c.root)&&(f=t+f),e.dispatch(f,l)},commit:a?e.commit:function(r,o,i){var u=mu(r,o,i),l=u.payload,c=u.options,f=u.type;(!c||!c.root)&&(f=t+f),e.commit(f,l,c)}};return Object.defineProperties(s,{getters:{get:a?function(){return e.getters}:function(){return K1(e,t)}},state:{get:function(){return jE(e.state,n)}}}),s}function K1(e,t){if(!e._makeLocalGettersCache[t]){var n={},a=t.length;Object.keys(e.getters).forEach(function(s){if(s.slice(0,a)===t){var r=s.slice(a);Object.defineProperty(n,r,{get:function(){return e.getters[s]},enumerable:!0})}}),e._makeLocalGettersCache[t]=n}return e._makeLocalGettersCache[t]}function pC(e,t,n,a){var s=e._mutations[t]||(e._mutations[t]=[]);s.push(function(o){n.call(e,a.state,o)})}function mC(e,t,n,a){var s=e._actions[t]||(e._actions[t]=[]);s.push(function(o){var i=n.call(e,{dispatch:a.dispatch,commit:a.commit,getters:a.getters,state:a.state,rootGetters:e.getters,rootState:e.state},o);return dC(i)||(i=Promise.resolve(i)),e._devtoolHook?i.catch(function(u){throw e._devtoolHook.emit("vuex:error",u),u}):i})}function _C(e,t,n,a){e._wrappedGetters[t]||(e._wrappedGetters[t]=function(r){return n(a.state,a.getters,r.state,r.getters)})}function TC(e){We(function(){return e._state.data},function(){},{deep:!0,flush:"sync"})}function jE(e,t){return t.reduce(function(n,a){return n[a]},e)}function mu(e,t,n){return cC(e)&&e.type&&(n=t,t=e,e=e.type),{type:e,payload:t,options:n}}var hC="vuex bindings",Im="vuex:mutations",hc="vuex:actions",Gs="vuex",SC=0;function AC(e,t){lC({id:"org.vuejs.vuex",app:e,label:"Vuex",homepage:"https://next.vuex.vuejs.org/",logo:"https://vuejs.org/images/icons/favicon-96x96.png",packageName:"vuex",componentStateTypes:[hC]},function(n){n.addTimelineLayer({id:Im,label:"Vuex Mutations",color:Rm}),n.addTimelineLayer({id:hc,label:"Vuex Actions",color:Rm}),n.addInspector({id:Gs,label:"Vuex",icon:"storage",treeFilterPlaceholder:"Filter stores..."}),n.on.getInspectorTree(function(a){if(a.app===e&&a.inspectorId===Gs)if(a.filter){var s=[];X1(s,t._modules.root,a.filter,""),a.rootNodes=s}else a.rootNodes=[Y1(t._modules.root,"")]}),n.on.getInspectorState(function(a){if(a.app===e&&a.inspectorId===Gs){var s=a.nodeId;K1(t,s),a.state=IC(NC(t._modules,s),s==="root"?t.getters:t._makeLocalGettersCache,s)}}),n.on.editInspectorState(function(a){if(a.app===e&&a.inspectorId===Gs){var s=a.nodeId,r=a.path;s!=="root"&&(r=s.split("/").filter(Boolean).concat(r)),t._withCommit(function(){a.set(t._state.data,r,a.state.value)})}}),t.subscribe(function(a,s){var r={};a.payload&&(r.payload=a.payload),r.state=s,n.notifyComponentUpdate(),n.sendInspectorTree(Gs),n.sendInspectorState(Gs),n.addTimelineEvent({layerId:Im,event:{time:Date.now(),title:a.type,data:r}})}),t.subscribeAction({before:function(a,s){var r={};a.payload&&(r.payload=a.payload),a._id=SC++,a._time=Date.now(),r.state=s,n.addTimelineEvent({layerId:hc,event:{time:a._time,title:a.type,groupId:a._id,subtitle:"start",data:r}})},after:function(a,s){var r={},o=Date.now()-a._time;r.duration={_custom:{type:"duration",display:o+"ms",tooltip:"Action duration",value:o}},a.payload&&(r.payload=a.payload),r.state=s,n.addTimelineEvent({layerId:hc,event:{time:Date.now(),title:a.type,groupId:a._id,subtitle:"end",data:r}})}})})}var Rm=8702998,OC=6710886,gC=16777215,j1={label:"namespaced",textColor:gC,backgroundColor:OC};function q1(e){return e&&e!=="root"?e.split("/").slice(-2,-1)[0]:"Root"}function Y1(e,t){return{id:t||"root",label:q1(t),tags:e.namespaced?[j1]:[],children:Object.keys(e._children).map(function(n){return Y1(e._children[n],t+n+"/")})}}function X1(e,t,n,a){a.includes(n)&&e.push({id:a||"root",label:a.endsWith("/")?a.slice(0,a.length-1):a||"Root",tags:t.namespaced?[j1]:[]}),Object.keys(t._children).forEach(function(s){X1(e,t._children[s],n,a+s+"/")})}function IC(e,t,n){t=n==="root"?t:t[n];var a=Object.keys(t),s={state:Object.keys(e.state).map(function(o){return{key:o,editable:!0,value:e.state[o]}})};if(a.length){var r=RC(t);s.getters=Object.keys(r).map(function(o){return{key:o.endsWith("/")?q1(o):o,editable:!1,value:pd(function(){return r[o]})}})}return s}function RC(e){var t={};return Object.keys(e).forEach(function(n){var a=n.split("/");if(a.length>1){var s=t,r=a.pop();a.forEach(function(o){s[o]||(s[o]={_custom:{value:{},display:o,tooltip:"Module",abstract:!0}}),s=s[o]._custom.value}),s[r]=pd(function(){return e[n]})}else t[n]=pd(function(){return e[n]})}),t}function NC(e,t){var n=t.split("/").filter(function(a){return a});return n.reduce(function(a,s,r){var o=a[s];if(!o)throw new Error('Missing module "'+s+'" for path "'+t+'".');return r===n.length-1?o:o._children},t==="root"?e:e.root._children)}function pd(e){try{return e()}catch(t){return t}}var qn=function(t,n){this.runtime=n,this._children=Object.create(null),this._rawModule=t;var a=t.state;this.state=(typeof a=="function"?a():a)||{}},Q1={namespaced:{configurable:!0}};Q1.namespaced.get=function(){return!!this._rawModule.namespaced};qn.prototype.addChild=function(t,n){this._children[t]=n};qn.prototype.removeChild=function(t){delete this._children[t]};qn.prototype.getChild=function(t){return this._children[t]};qn.prototype.hasChild=function(t){return t in this._children};qn.prototype.update=function(t){this._rawModule.namespaced=t.namespaced,t.actions&&(this._rawModule.actions=t.actions),t.mutations&&(this._rawModule.mutations=t.mutations),t.getters&&(this._rawModule.getters=t.getters)};qn.prototype.forEachChild=function(t){Dr(this._children,t)};qn.prototype.forEachGetter=function(t){this._rawModule.getters&&Dr(this._rawModule.getters,t)};qn.prototype.forEachAction=function(t){this._rawModule.actions&&Dr(this._rawModule.actions,t)};qn.prototype.forEachMutation=function(t){this._rawModule.mutations&&Dr(this._rawModule.mutations,t)};Object.defineProperties(qn.prototype,Q1);var ks=function(t){this.register([],t,!1)};ks.prototype.get=function(t){return t.reduce(function(n,a){return n.getChild(a)},this.root)};ks.prototype.getNamespace=function(t){var n=this.root;return t.reduce(function(a,s){return n=n.getChild(s),a+(n.namespaced?s+"/":"")},"")};ks.prototype.update=function(t){Z1([],this.root,t)};ks.prototype.register=function(t,n,a){var s=this;a===void 0&&(a=!0);var r=new qn(n,a);if(t.length===0)this.root=r;else{var o=this.get(t.slice(0,-1));o.addChild(t[t.length-1],r)}n.modules&&Dr(n.modules,function(i,u){s.register(t.concat(u),i,a)})};ks.prototype.unregister=function(t){var n=this.get(t.slice(0,-1)),a=t[t.length-1],s=n.getChild(a);s&&s.runtime&&n.removeChild(a)};ks.prototype.isRegistered=function(t){var n=this.get(t.slice(0,-1)),a=t[t.length-1];return n?n.hasChild(a):!1};function Z1(e,t,n){if(t.update(n),n.modules)for(var a in n.modules){if(!t.getChild(a))return;Z1(e.concat(a),t.getChild(a),n.modules[a])}}function vC(e){return new On(e)}var On=function(t){var n=this;t===void 0&&(t={});var a=t.plugins;a===void 0&&(a=[]);var s=t.strict;s===void 0&&(s=!1);var r=t.devtools;this._committing=!1,this._actions=Object.create(null),this._actionSubscribers=[],this._mutations=Object.create(null),this._wrappedGetters=Object.create(null),this._modules=new ks(t),this._modulesNamespaceMap=Object.create(null),this._subscribers=[],this._makeLocalGettersCache=Object.create(null),this._scope=null,this._devtools=r;var o=this,i=this,u=i.dispatch,l=i.commit;this.dispatch=function(E,p){return u.call(o,E,p)},this.commit=function(E,p,T){return l.call(o,E,p,T)},this.strict=s;var c=this._modules.root.state;Pl(this,c,[],this._modules.root),KE(this,c),a.forEach(function(f){return f(n)})},qE={state:{configurable:!0}};On.prototype.install=function(t,n){t.provide(n||G1,this),t.config.globalProperties.$store=this;var a=this._devtools!==void 0?this._devtools:!1;a&&AC(t,this)};qE.state.get=function(){return this._state.data};qE.state.set=function(e){};On.prototype.commit=function(t,n,a){var s=this,r=mu(t,n,a),o=r.type,i=r.payload,u={type:o,payload:i},l=this._mutations[o];l&&(this._withCommit(function(){l.forEach(function(f){f(i)})}),this._subscribers.slice().forEach(function(c){return c(u,s.state)}))};On.prototype.dispatch=function(t,n){var a=this,s=mu(t,n),r=s.type,o=s.payload,i={type:r,payload:o},u=this._actions[r];if(u){try{this._actionSubscribers.slice().filter(function(c){return c.before}).forEach(function(c){return c.before(i,a.state)})}catch{}var l=u.length>1?Promise.all(u.map(function(c){return c(o)})):u[0](o);return new Promise(function(c,f){l.then(function(E){try{a._actionSubscribers.filter(function(p){return p.after}).forEach(function(p){return p.after(i,a.state)})}catch{}c(E)},function(E){try{a._actionSubscribers.filter(function(p){return p.error}).forEach(function(p){return p.error(i,a.state,E)})}catch{}f(E)})})}};On.prototype.subscribe=function(t,n){return H1(t,this._subscribers,n)};On.prototype.subscribeAction=function(t,n){var a=typeof t=="function"?{before:t}:t;return H1(a,this._actionSubscribers,n)};On.prototype.watch=function(t,n,a){var s=this;return We(function(){return t(s.state,s.getters)},n,Object.assign({},a))};On.prototype.replaceState=function(t){var n=this;this._withCommit(function(){n._state.data=t})};On.prototype.registerModule=function(t,n,a){a===void 0&&(a={}),typeof t=="string"&&(t=[t]),this._modules.register(t,n),Pl(this,this.state,t,this._modules.get(t),a.preserveState),KE(this,this.state)};On.prototype.unregisterModule=function(t){var n=this;typeof t=="string"&&(t=[t]),this._modules.unregister(t),this._withCommit(function(){var a=jE(n.state,t.slice(0,-1));delete a[t[t.length-1]]}),V1(this)};On.prototype.hasModule=function(t){return typeof t=="string"&&(t=[t]),this._modules.isRegistered(t)};On.prototype.hotUpdate=function(t){this._modules.update(t),V1(this,!0)};On.prototype._withCommit=function(t){var n=this._committing;this._committing=!0,t(),this._committing=n};Object.defineProperties(On.prototype,qE);function $e(){return jo()}function nt(e){return function(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},n=t.width?String(t.width):e.defaultWidth,a=e.formats[n]||e.formats[e.defaultWidth];return a}}function Ce(e){return function(t,n){var a=n!=null&&n.context?String(n.context):"standalone",s;if(a==="formatting"&&e.formattingValues){var r=e.defaultFormattingWidth||e.defaultWidth,o=n!=null&&n.width?String(n.width):r;s=e.formattingValues[o]||e.formattingValues[r]}else{var i=e.defaultWidth,u=n!=null&&n.width?String(n.width):e.defaultWidth;s=e.values[u]||e.values[i]}var l=e.argumentCallback?e.argumentCallback(t):t;return s[l]}}function De(e){return function(t){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},a=n.width,s=a&&e.matchPatterns[a]||e.matchPatterns[e.defaultMatchWidth],r=t.match(s);if(!r)return null;var o=r[0],i=a&&e.parsePatterns[a]||e.parsePatterns[e.defaultParseWidth],u=Array.isArray(i)?CC(i,function(f){return f.test(o)}):bC(i,function(f){return f.test(o)}),l;l=e.valueCallback?e.valueCallback(u):u,l=n.valueCallback?n.valueCallback(l):l;var c=t.slice(o.length);return{value:l,rest:c}}}function bC(e,t){for(var n in e)if(e.hasOwnProperty(n)&&t(e[n]))return n}function CC(e,t){for(var n=0;n1&&arguments[1]!==void 0?arguments[1]:{},a=t.match(e.matchPattern);if(!a)return null;var s=a[0],r=t.match(e.parsePattern);if(!r)return null;var o=e.valueCallback?e.valueCallback(r[0]):r[0];o=n.valueCallback?n.valueCallback(o):o;var i=t.slice(s.length);return{value:o,rest:i}}}function _u(e){"@babel/helpers - typeof";return _u=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},_u(e)}function Xt(e){if(e===null||e===!0||e===!1)return NaN;var t=Number(e);return isNaN(t)?t:t<0?Math.ceil(t):Math.floor(t)}function Ye(e,t){if(t.length1?"s":"")+" required, but only "+t.length+" present")}function et(e){Ye(1,arguments);var t=Object.prototype.toString.call(e);return e instanceof Date||_u(e)==="object"&&t==="[object Date]"?new Date(e.getTime()):typeof e=="number"||t==="[object Number]"?new Date(e):((typeof e=="string"||t==="[object String]")&&typeof console<"u"&&(console.warn("Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments"),console.warn(new Error().stack)),new Date(NaN))}function qo(e,t){Ye(2,arguments);var n=et(e),a=Xt(t);return isNaN(a)?new Date(NaN):(a&&n.setDate(n.getDate()+a),n)}function dr(e,t){Ye(2,arguments);var n=et(e),a=Xt(t);if(isNaN(a))return new Date(NaN);if(!a)return n;var s=n.getDate(),r=new Date(n.getTime());r.setMonth(n.getMonth()+a+1,0);var o=r.getDate();return s>=o?r:(n.setFullYear(r.getFullYear(),r.getMonth(),s),n)}function DC(e,t){Ye(2,arguments);var n=et(e).getTime(),a=Xt(t);return new Date(n+a)}var PC={};function ws(){return PC}function Ll(e,t){var n,a,s,r,o,i,u,l;Ye(1,arguments);var c=ws(),f=Xt((n=(a=(s=(r=t==null?void 0:t.weekStartsOn)!==null&&r!==void 0?r:t==null||(o=t.locale)===null||o===void 0||(i=o.options)===null||i===void 0?void 0:i.weekStartsOn)!==null&&s!==void 0?s:c.weekStartsOn)!==null&&a!==void 0?a:(u=c.locale)===null||u===void 0||(l=u.options)===null||l===void 0?void 0:l.weekStartsOn)!==null&&n!==void 0?n:0);if(!(f>=0&&f<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var E=et(e),p=E.getDay(),T=(p0?1:s}function J1(e,t){Ye(2,arguments);var n=Nm(e),a=Nm(t);return n.getTime()===a.getTime()}function LC(e){return Ye(1,arguments),e instanceof Date||_u(e)==="object"&&Object.prototype.toString.call(e)==="[object Date]"}function yC(e){if(Ye(1,arguments),!LC(e)&&typeof e!="number")return!1;var t=et(e);return!isNaN(Number(t))}function $C(e,t){Ye(2,arguments);var n=et(e),a=et(t),s=n.getFullYear()-a.getFullYear(),r=n.getMonth()-a.getMonth();return s*12+r}function UC(e,t){return Ye(2,arguments),et(e).getTime()-et(t).getTime()}var vm={ceil:Math.ceil,round:Math.round,floor:Math.floor,trunc:function(t){return t<0?Math.ceil(t):Math.floor(t)}},kC="trunc";function wC(e){return e?vm[e]:vm[kC]}function MC(e){Ye(1,arguments);var t=et(e);return t.setHours(23,59,59,999),t}function Yo(e){Ye(1,arguments);var t=et(e),n=t.getMonth();return t.setFullYear(t.getFullYear(),n+1,0),t.setHours(23,59,59,999),t}function WC(e){Ye(1,arguments);var t=et(e);return MC(t).getTime()===Yo(t).getTime()}function FC(e,t){Ye(2,arguments);var n=et(e),a=et(t),s=ji(n,a),r=Math.abs($C(n,a)),o;if(r<1)o=0;else{n.getMonth()===1&&n.getDate()>27&&n.setDate(30),n.setMonth(n.getMonth()-s*r);var i=ji(n,a)===-s;WC(et(e))&&r===1&&ji(e,a)===1&&(i=!1),o=s*(r-Number(i))}return o===0?0:o}function zC(e,t,n){Ye(2,arguments);var a=UC(e,t)/1e3;return wC(void 0)(a)}function Xo(e){Ye(1,arguments);var t=et(e);return t.setDate(1),t.setHours(0,0,0,0),t}function eS(e){Ye(1,arguments);var t=et(e),n=t.getFullYear();return t.setFullYear(n+1,0,0),t.setHours(23,59,59,999),t}function YE(e){Ye(1,arguments);var t=et(e),n=new Date(0);return n.setFullYear(t.getFullYear(),0,1),n.setHours(0,0,0,0),n}function XE(e,t){var n,a,s,r,o,i,u,l;Ye(1,arguments);var c=ws(),f=Xt((n=(a=(s=(r=t==null?void 0:t.weekStartsOn)!==null&&r!==void 0?r:t==null||(o=t.locale)===null||o===void 0||(i=o.options)===null||i===void 0?void 0:i.weekStartsOn)!==null&&s!==void 0?s:c.weekStartsOn)!==null&&a!==void 0?a:(u=c.locale)===null||u===void 0||(l=u.options)===null||l===void 0?void 0:l.weekStartsOn)!==null&&n!==void 0?n:0);if(!(f>=0&&f<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var E=et(e),p=E.getDay(),T=(p=s.getTime()?n+1:t.getTime()>=o.getTime()?n:n-1}function HC(e){Ye(1,arguments);var t=tS(e),n=new Date(0);n.setUTCFullYear(t,0,4),n.setUTCHours(0,0,0,0);var a=hu(n);return a}var VC=6048e5;function KC(e){Ye(1,arguments);var t=et(e),n=hu(t).getTime()-HC(t).getTime();return Math.round(n/VC)+1}function Er(e,t){var n,a,s,r,o,i,u,l;Ye(1,arguments);var c=ws(),f=Xt((n=(a=(s=(r=t==null?void 0:t.weekStartsOn)!==null&&r!==void 0?r:t==null||(o=t.locale)===null||o===void 0||(i=o.options)===null||i===void 0?void 0:i.weekStartsOn)!==null&&s!==void 0?s:c.weekStartsOn)!==null&&a!==void 0?a:(u=c.locale)===null||u===void 0||(l=u.options)===null||l===void 0?void 0:l.weekStartsOn)!==null&&n!==void 0?n:0);if(!(f>=0&&f<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var E=et(e),p=E.getUTCDay(),T=(p=1&&p<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var T=new Date(0);T.setUTCFullYear(f+1,0,p),T.setUTCHours(0,0,0,0);var O=Er(T,t),R=new Date(0);R.setUTCFullYear(f,0,p),R.setUTCHours(0,0,0,0);var g=Er(R,t);return c.getTime()>=O.getTime()?f+1:c.getTime()>=g.getTime()?f:f-1}function jC(e,t){var n,a,s,r,o,i,u,l;Ye(1,arguments);var c=ws(),f=Xt((n=(a=(s=(r=t==null?void 0:t.firstWeekContainsDate)!==null&&r!==void 0?r:t==null||(o=t.locale)===null||o===void 0||(i=o.options)===null||i===void 0?void 0:i.firstWeekContainsDate)!==null&&s!==void 0?s:c.firstWeekContainsDate)!==null&&a!==void 0?a:(u=c.locale)===null||u===void 0||(l=u.options)===null||l===void 0?void 0:l.firstWeekContainsDate)!==null&&n!==void 0?n:1),E=nS(e,t),p=new Date(0);p.setUTCFullYear(E,0,f),p.setUTCHours(0,0,0,0);var T=Er(p,t);return T}var qC=6048e5;function YC(e,t){Ye(1,arguments);var n=et(e),a=Er(n,t).getTime()-jC(n,t).getTime();return Math.round(a/qC)+1}function _t(e,t){for(var n=e<0?"-":"",a=Math.abs(e).toString();a.length0?a:1-a;return _t(n==="yy"?s%100:s,n.length)},M:function(t,n){var a=t.getUTCMonth();return n==="M"?String(a+1):_t(a+1,2)},d:function(t,n){return _t(t.getUTCDate(),n.length)},a:function(t,n){var a=t.getUTCHours()/12>=1?"pm":"am";switch(n){case"a":case"aa":return a.toUpperCase();case"aaa":return a;case"aaaaa":return a[0];case"aaaa":default:return a==="am"?"a.m.":"p.m."}},h:function(t,n){return _t(t.getUTCHours()%12||12,n.length)},H:function(t,n){return _t(t.getUTCHours(),n.length)},m:function(t,n){return _t(t.getUTCMinutes(),n.length)},s:function(t,n){return _t(t.getUTCSeconds(),n.length)},S:function(t,n){var a=n.length,s=t.getUTCMilliseconds(),r=Math.floor(s*Math.pow(10,a-3));return _t(r,n.length)}},Hs={am:"am",pm:"pm",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},XC={G:function(t,n,a){var s=t.getUTCFullYear()>0?1:0;switch(n){case"G":case"GG":case"GGG":return a.era(s,{width:"abbreviated"});case"GGGGG":return a.era(s,{width:"narrow"});case"GGGG":default:return a.era(s,{width:"wide"})}},y:function(t,n,a){if(n==="yo"){var s=t.getUTCFullYear(),r=s>0?s:1-s;return a.ordinalNumber(r,{unit:"year"})}return wa.y(t,n)},Y:function(t,n,a,s){var r=nS(t,s),o=r>0?r:1-r;if(n==="YY"){var i=o%100;return _t(i,2)}return n==="Yo"?a.ordinalNumber(o,{unit:"year"}):_t(o,n.length)},R:function(t,n){var a=tS(t);return _t(a,n.length)},u:function(t,n){var a=t.getUTCFullYear();return _t(a,n.length)},Q:function(t,n,a){var s=Math.ceil((t.getUTCMonth()+1)/3);switch(n){case"Q":return String(s);case"QQ":return _t(s,2);case"Qo":return a.ordinalNumber(s,{unit:"quarter"});case"QQQ":return a.quarter(s,{width:"abbreviated",context:"formatting"});case"QQQQQ":return a.quarter(s,{width:"narrow",context:"formatting"});case"QQQQ":default:return a.quarter(s,{width:"wide",context:"formatting"})}},q:function(t,n,a){var s=Math.ceil((t.getUTCMonth()+1)/3);switch(n){case"q":return String(s);case"qq":return _t(s,2);case"qo":return a.ordinalNumber(s,{unit:"quarter"});case"qqq":return a.quarter(s,{width:"abbreviated",context:"standalone"});case"qqqqq":return a.quarter(s,{width:"narrow",context:"standalone"});case"qqqq":default:return a.quarter(s,{width:"wide",context:"standalone"})}},M:function(t,n,a){var s=t.getUTCMonth();switch(n){case"M":case"MM":return wa.M(t,n);case"Mo":return a.ordinalNumber(s+1,{unit:"month"});case"MMM":return a.month(s,{width:"abbreviated",context:"formatting"});case"MMMMM":return a.month(s,{width:"narrow",context:"formatting"});case"MMMM":default:return a.month(s,{width:"wide",context:"formatting"})}},L:function(t,n,a){var s=t.getUTCMonth();switch(n){case"L":return String(s+1);case"LL":return _t(s+1,2);case"Lo":return a.ordinalNumber(s+1,{unit:"month"});case"LLL":return a.month(s,{width:"abbreviated",context:"standalone"});case"LLLLL":return a.month(s,{width:"narrow",context:"standalone"});case"LLLL":default:return a.month(s,{width:"wide",context:"standalone"})}},w:function(t,n,a,s){var r=YC(t,s);return n==="wo"?a.ordinalNumber(r,{unit:"week"}):_t(r,n.length)},I:function(t,n,a){var s=KC(t);return n==="Io"?a.ordinalNumber(s,{unit:"week"}):_t(s,n.length)},d:function(t,n,a){return n==="do"?a.ordinalNumber(t.getUTCDate(),{unit:"date"}):wa.d(t,n)},D:function(t,n,a){var s=GC(t);return n==="Do"?a.ordinalNumber(s,{unit:"dayOfYear"}):_t(s,n.length)},E:function(t,n,a){var s=t.getUTCDay();switch(n){case"E":case"EE":case"EEE":return a.day(s,{width:"abbreviated",context:"formatting"});case"EEEEE":return a.day(s,{width:"narrow",context:"formatting"});case"EEEEEE":return a.day(s,{width:"short",context:"formatting"});case"EEEE":default:return a.day(s,{width:"wide",context:"formatting"})}},e:function(t,n,a,s){var r=t.getUTCDay(),o=(r-s.weekStartsOn+8)%7||7;switch(n){case"e":return String(o);case"ee":return _t(o,2);case"eo":return a.ordinalNumber(o,{unit:"day"});case"eee":return a.day(r,{width:"abbreviated",context:"formatting"});case"eeeee":return a.day(r,{width:"narrow",context:"formatting"});case"eeeeee":return a.day(r,{width:"short",context:"formatting"});case"eeee":default:return a.day(r,{width:"wide",context:"formatting"})}},c:function(t,n,a,s){var r=t.getUTCDay(),o=(r-s.weekStartsOn+8)%7||7;switch(n){case"c":return String(o);case"cc":return _t(o,n.length);case"co":return a.ordinalNumber(o,{unit:"day"});case"ccc":return a.day(r,{width:"abbreviated",context:"standalone"});case"ccccc":return a.day(r,{width:"narrow",context:"standalone"});case"cccccc":return a.day(r,{width:"short",context:"standalone"});case"cccc":default:return a.day(r,{width:"wide",context:"standalone"})}},i:function(t,n,a){var s=t.getUTCDay(),r=s===0?7:s;switch(n){case"i":return String(r);case"ii":return _t(r,n.length);case"io":return a.ordinalNumber(r,{unit:"day"});case"iii":return a.day(s,{width:"abbreviated",context:"formatting"});case"iiiii":return a.day(s,{width:"narrow",context:"formatting"});case"iiiiii":return a.day(s,{width:"short",context:"formatting"});case"iiii":default:return a.day(s,{width:"wide",context:"formatting"})}},a:function(t,n,a){var s=t.getUTCHours(),r=s/12>=1?"pm":"am";switch(n){case"a":case"aa":return a.dayPeriod(r,{width:"abbreviated",context:"formatting"});case"aaa":return a.dayPeriod(r,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return a.dayPeriod(r,{width:"narrow",context:"formatting"});case"aaaa":default:return a.dayPeriod(r,{width:"wide",context:"formatting"})}},b:function(t,n,a){var s=t.getUTCHours(),r;switch(s===12?r=Hs.noon:s===0?r=Hs.midnight:r=s/12>=1?"pm":"am",n){case"b":case"bb":return a.dayPeriod(r,{width:"abbreviated",context:"formatting"});case"bbb":return a.dayPeriod(r,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return a.dayPeriod(r,{width:"narrow",context:"formatting"});case"bbbb":default:return a.dayPeriod(r,{width:"wide",context:"formatting"})}},B:function(t,n,a){var s=t.getUTCHours(),r;switch(s>=17?r=Hs.evening:s>=12?r=Hs.afternoon:s>=4?r=Hs.morning:r=Hs.night,n){case"B":case"BB":case"BBB":return a.dayPeriod(r,{width:"abbreviated",context:"formatting"});case"BBBBB":return a.dayPeriod(r,{width:"narrow",context:"formatting"});case"BBBB":default:return a.dayPeriod(r,{width:"wide",context:"formatting"})}},h:function(t,n,a){if(n==="ho"){var s=t.getUTCHours()%12;return s===0&&(s=12),a.ordinalNumber(s,{unit:"hour"})}return wa.h(t,n)},H:function(t,n,a){return n==="Ho"?a.ordinalNumber(t.getUTCHours(),{unit:"hour"}):wa.H(t,n)},K:function(t,n,a){var s=t.getUTCHours()%12;return n==="Ko"?a.ordinalNumber(s,{unit:"hour"}):_t(s,n.length)},k:function(t,n,a){var s=t.getUTCHours();return s===0&&(s=24),n==="ko"?a.ordinalNumber(s,{unit:"hour"}):_t(s,n.length)},m:function(t,n,a){return n==="mo"?a.ordinalNumber(t.getUTCMinutes(),{unit:"minute"}):wa.m(t,n)},s:function(t,n,a){return n==="so"?a.ordinalNumber(t.getUTCSeconds(),{unit:"second"}):wa.s(t,n)},S:function(t,n){return wa.S(t,n)},X:function(t,n,a,s){var r=s._originalDate||t,o=r.getTimezoneOffset();if(o===0)return"Z";switch(n){case"X":return Cm(o);case"XXXX":case"XX":return hs(o);case"XXXXX":case"XXX":default:return hs(o,":")}},x:function(t,n,a,s){var r=s._originalDate||t,o=r.getTimezoneOffset();switch(n){case"x":return Cm(o);case"xxxx":case"xx":return hs(o);case"xxxxx":case"xxx":default:return hs(o,":")}},O:function(t,n,a,s){var r=s._originalDate||t,o=r.getTimezoneOffset();switch(n){case"O":case"OO":case"OOO":return"GMT"+bm(o,":");case"OOOO":default:return"GMT"+hs(o,":")}},z:function(t,n,a,s){var r=s._originalDate||t,o=r.getTimezoneOffset();switch(n){case"z":case"zz":case"zzz":return"GMT"+bm(o,":");case"zzzz":default:return"GMT"+hs(o,":")}},t:function(t,n,a,s){var r=s._originalDate||t,o=Math.floor(r.getTime()/1e3);return _t(o,n.length)},T:function(t,n,a,s){var r=s._originalDate||t,o=r.getTime();return _t(o,n.length)}};function bm(e,t){var n=e>0?"-":"+",a=Math.abs(e),s=Math.floor(a/60),r=a%60;if(r===0)return n+String(s);var o=t;return n+String(s)+o+_t(r,2)}function Cm(e,t){if(e%60===0){var n=e>0?"-":"+";return n+_t(Math.abs(e)/60,2)}return hs(e,t)}function hs(e,t){var n=t||"",a=e>0?"-":"+",s=Math.abs(e),r=_t(Math.floor(s/60),2),o=_t(s%60,2);return a+r+n+o}var Dm=function(t,n){switch(t){case"P":return n.date({width:"short"});case"PP":return n.date({width:"medium"});case"PPP":return n.date({width:"long"});case"PPPP":default:return n.date({width:"full"})}},aS=function(t,n){switch(t){case"p":return n.time({width:"short"});case"pp":return n.time({width:"medium"});case"ppp":return n.time({width:"long"});case"pppp":default:return n.time({width:"full"})}},QC=function(t,n){var a=t.match(/(P+)(p+)?/)||[],s=a[1],r=a[2];if(!r)return Dm(t,n);var o;switch(s){case"P":o=n.dateTime({width:"short"});break;case"PP":o=n.dateTime({width:"medium"});break;case"PPP":o=n.dateTime({width:"long"});break;case"PPPP":default:o=n.dateTime({width:"full"});break}return o.replace("{{date}}",Dm(s,n)).replace("{{time}}",aS(r,n))},ZC={p:aS,P:QC},JC=["D","DD"],e3=["YY","YYYY"];function t3(e){return JC.indexOf(e)!==-1}function n3(e){return e3.indexOf(e)!==-1}function Pm(e,t,n){if(e==="YYYY")throw new RangeError("Use `yyyy` instead of `YYYY` (in `".concat(t,"`) for formatting years to the input `").concat(n,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));if(e==="YY")throw new RangeError("Use `yy` instead of `YY` (in `".concat(t,"`) for formatting years to the input `").concat(n,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));if(e==="D")throw new RangeError("Use `d` instead of `D` (in `".concat(t,"`) for formatting days of the month to the input `").concat(n,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));if(e==="DD")throw new RangeError("Use `dd` instead of `DD` (in `".concat(t,"`) for formatting days of the month to the input `").concat(n,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"))}var a3={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"1 second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"about 1 hour",other:"about {{count}} hours"},xHours:{one:"1 hour",other:"{{count}} hours"},xDays:{one:"1 day",other:"{{count}} days"},aboutXWeeks:{one:"about 1 week",other:"about {{count}} weeks"},xWeeks:{one:"1 week",other:"{{count}} weeks"},aboutXMonths:{one:"about 1 month",other:"about {{count}} months"},xMonths:{one:"1 month",other:"{{count}} months"},aboutXYears:{one:"about 1 year",other:"about {{count}} years"},xYears:{one:"1 year",other:"{{count}} years"},overXYears:{one:"over 1 year",other:"over {{count}} years"},almostXYears:{one:"almost 1 year",other:"almost {{count}} years"}},s3=function(t,n,a){var s,r=a3[t];return typeof r=="string"?s=r:n===1?s=r.one:s=r.other.replace("{{count}}",n.toString()),a!=null&&a.addSuffix?a.comparison&&a.comparison>0?"in "+s:s+" ago":s},r3={full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},o3={full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},i3={full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},u3={date:nt({formats:r3,defaultWidth:"full"}),time:nt({formats:o3,defaultWidth:"full"}),dateTime:nt({formats:i3,defaultWidth:"full"})},l3={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"},c3=function(t,n,a,s){return l3[t]},d3={narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},E3={narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},f3={narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},p3={narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},m3={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},_3={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},T3=function(t,n){var a=Number(t),s=a%100;if(s>20||s<10)switch(s%10){case 1:return a+"st";case 2:return a+"nd";case 3:return a+"rd"}return a+"th"},h3={ordinalNumber:T3,era:Ce({values:d3,defaultWidth:"wide"}),quarter:Ce({values:E3,defaultWidth:"wide",argumentCallback:function(t){return t-1}}),month:Ce({values:f3,defaultWidth:"wide"}),day:Ce({values:p3,defaultWidth:"wide"}),dayPeriod:Ce({values:m3,defaultWidth:"wide",formattingValues:_3,defaultFormattingWidth:"wide"})},S3=/^(\d+)(th|st|nd|rd)?/i,A3=/\d+/i,O3={narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},g3={any:[/^b/i,/^(a|c)/i]},I3={narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},R3={any:[/1/i,/2/i,/3/i,/4/i]},N3={narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},v3={narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},b3={narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},C3={narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},D3={narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},P3={any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},L3={ordinalNumber:Pn({matchPattern:S3,parsePattern:A3,valueCallback:function(t){return parseInt(t,10)}}),era:De({matchPatterns:O3,defaultMatchWidth:"wide",parsePatterns:g3,defaultParseWidth:"any"}),quarter:De({matchPatterns:I3,defaultMatchWidth:"wide",parsePatterns:R3,defaultParseWidth:"any",valueCallback:function(t){return t+1}}),month:De({matchPatterns:N3,defaultMatchWidth:"wide",parsePatterns:v3,defaultParseWidth:"any"}),day:De({matchPatterns:b3,defaultMatchWidth:"wide",parsePatterns:C3,defaultParseWidth:"any"}),dayPeriod:De({matchPatterns:D3,defaultMatchWidth:"any",parsePatterns:P3,defaultParseWidth:"any"})},Qo={code:"en-US",formatDistance:s3,formatLong:u3,formatRelative:c3,localize:h3,match:L3,options:{weekStartsOn:0,firstWeekContainsDate:1}},y3=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,$3=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,U3=/^'([^]*?)'?$/,k3=/''/g,w3=/[a-zA-Z]/;function un(e,t,n){var a,s,r,o,i,u,l,c,f,E,p,T,O,R,g,N,S,A;Ye(2,arguments);var v=String(t),D=ws(),P=(a=(s=n==null?void 0:n.locale)!==null&&s!==void 0?s:D.locale)!==null&&a!==void 0?a:Qo,C=Xt((r=(o=(i=(u=n==null?void 0:n.firstWeekContainsDate)!==null&&u!==void 0?u:n==null||(l=n.locale)===null||l===void 0||(c=l.options)===null||c===void 0?void 0:c.firstWeekContainsDate)!==null&&i!==void 0?i:D.firstWeekContainsDate)!==null&&o!==void 0?o:(f=D.locale)===null||f===void 0||(E=f.options)===null||E===void 0?void 0:E.firstWeekContainsDate)!==null&&r!==void 0?r:1);if(!(C>=1&&C<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var y=Xt((p=(T=(O=(R=n==null?void 0:n.weekStartsOn)!==null&&R!==void 0?R:n==null||(g=n.locale)===null||g===void 0||(N=g.options)===null||N===void 0?void 0:N.weekStartsOn)!==null&&O!==void 0?O:D.weekStartsOn)!==null&&T!==void 0?T:(S=D.locale)===null||S===void 0||(A=S.options)===null||A===void 0?void 0:A.weekStartsOn)!==null&&p!==void 0?p:0);if(!(y>=0&&y<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");if(!P.localize)throw new RangeError("locale must contain localize property");if(!P.formatLong)throw new RangeError("locale must contain formatLong property");var z=et(e);if(!yC(z))throw new RangeError("Invalid time value");var $=md(z),F=xC(z,$),X={firstWeekContainsDate:C,weekStartsOn:y,locale:P,_originalDate:z},re=v.match($3).map(function(G){var Z=G[0];if(Z==="p"||Z==="P"){var q=ZC[Z];return q(G,P.formatLong)}return G}).join("").match(y3).map(function(G){if(G==="''")return"'";var Z=G[0];if(Z==="'")return M3(G);var q=XC[Z];if(q)return!(n!=null&&n.useAdditionalWeekYearTokens)&&n3(G)&&Pm(G,t,String(e)),!(n!=null&&n.useAdditionalDayOfYearTokens)&&t3(G)&&Pm(G,t,String(e)),q(F,G,P.localize,X);if(Z.match(w3))throw new RangeError("Format string contains an unescaped latin alphabet character `"+Z+"`");return G}).join("");return re}function M3(e){var t=e.match(U3);return t?t[1].replace(k3,"'"):e}function sS(e,t){if(e==null)throw new TypeError("assign requires that input parameter not be null or undefined");for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e}function W3(e){return sS({},e)}var Lm=1440,F3=2520,Sc=43200,z3=86400;function x3(e,t,n){var a,s;Ye(2,arguments);var r=ws(),o=(a=(s=n==null?void 0:n.locale)!==null&&s!==void 0?s:r.locale)!==null&&a!==void 0?a:Qo;if(!o.formatDistance)throw new RangeError("locale must contain formatDistance property");var i=ji(e,t);if(isNaN(i))throw new RangeError("Invalid time value");var u=sS(W3(n),{addSuffix:!!(n!=null&&n.addSuffix),comparison:i}),l,c;i>0?(l=et(t),c=et(e)):(l=et(e),c=et(t));var f=zC(c,l),E=(md(c)-md(l))/1e3,p=Math.round((f-E)/60),T;if(p<2)return n!=null&&n.includeSeconds?f<5?o.formatDistance("lessThanXSeconds",5,u):f<10?o.formatDistance("lessThanXSeconds",10,u):f<20?o.formatDistance("lessThanXSeconds",20,u):f<40?o.formatDistance("halfAMinute",0,u):f<60?o.formatDistance("lessThanXMinutes",1,u):o.formatDistance("xMinutes",1,u):p===0?o.formatDistance("lessThanXMinutes",1,u):o.formatDistance("xMinutes",p,u);if(p<45)return o.formatDistance("xMinutes",p,u);if(p<90)return o.formatDistance("aboutXHours",1,u);if(p0?"след "+s:"преди "+s:s},q3={full:"EEEE, dd MMMM yyyy",long:"dd MMMM yyyy",medium:"dd MMM yyyy",short:"dd/MM/yyyy"},Y3={full:"HH:mm:ss zzzz",long:"HH:mm:ss z",medium:"HH:mm:ss",short:"H:mm"},X3={any:"{{date}} {{time}}"},Q3={date:nt({formats:q3,defaultWidth:"full"}),time:nt({formats:Y3,defaultWidth:"full"}),dateTime:nt({formats:X3,defaultWidth:"any"})},QE=["неделя","понеделник","вторник","сряда","четвъртък","петък","събота"];function Z3(e){var t=QE[e];switch(e){case 0:case 3:case 6:return"'миналата "+t+" в' p";case 1:case 2:case 4:case 5:return"'миналия "+t+" в' p"}}function rS(e){var t=QE[e];return e===2?"'във "+t+" в' p":"'в "+t+" в' p"}function J3(e){var t=QE[e];switch(e){case 0:case 3:case 6:return"'следващата "+t+" в' p";case 1:case 2:case 4:case 5:return"'следващия "+t+" в' p"}}var eD=function(t,n,a){var s=et(t),r=s.getUTCDay();return Ao(s,n,a)?rS(r):Z3(r)},tD=function(t,n,a){var s=et(t),r=s.getUTCDay();return Ao(s,n,a)?rS(r):J3(r)},nD={lastWeek:eD,yesterday:"'вчера в' p",today:"'днес в' p",tomorrow:"'утре в' p",nextWeek:tD,other:"P"},aD=function(t,n,a,s){var r=nD[t];return typeof r=="function"?r(n,a,s):r},sD={narrow:["пр.н.е.","н.е."],abbreviated:["преди н. е.","н. е."],wide:["преди новата ера","новата ера"]},rD={narrow:["1","2","3","4"],abbreviated:["1-во тримес.","2-ро тримес.","3-то тримес.","4-то тримес."],wide:["1-во тримесечие","2-ро тримесечие","3-то тримесечие","4-то тримесечие"]},oD={abbreviated:["яну","фев","мар","апр","май","юни","юли","авг","сеп","окт","ное","дек"],wide:["януари","февруари","март","април","май","юни","юли","август","септември","октомври","ноември","декември"]},iD={narrow:["Н","П","В","С","Ч","П","С"],short:["нд","пн","вт","ср","чт","пт","сб"],abbreviated:["нед","пон","вто","сря","чет","пет","съб"],wide:["неделя","понеделник","вторник","сряда","четвъртък","петък","събота"]},uD={wide:{am:"преди обяд",pm:"след обяд",midnight:"в полунощ",noon:"на обяд",morning:"сутринта",afternoon:"следобед",evening:"вечерта",night:"през нощта"}};function lD(e){return e==="year"||e==="week"||e==="minute"||e==="second"}function cD(e){return e==="quarter"}function ms(e,t,n,a,s){var r=cD(t)?s:lD(t)?a:n;return e+"-"+r}var dD=function(t,n){var a=Number(t),s=n==null?void 0:n.unit;if(a===0)return ms(0,s,"ев","ева","ево");if(a%1e3===0)return ms(a,s,"ен","на","но");if(a%100===0)return ms(a,s,"тен","тна","тно");var r=a%100;if(r>20||r<10)switch(r%10){case 1:return ms(a,s,"ви","ва","во");case 2:return ms(a,s,"ри","ра","ро");case 7:case 8:return ms(a,s,"ми","ма","мо")}return ms(a,s,"ти","та","то")},ED={ordinalNumber:dD,era:Ce({values:sD,defaultWidth:"wide"}),quarter:Ce({values:rD,defaultWidth:"wide",argumentCallback:function(t){return t-1}}),month:Ce({values:oD,defaultWidth:"wide"}),day:Ce({values:iD,defaultWidth:"wide"}),dayPeriod:Ce({values:uD,defaultWidth:"wide"})},fD=/^(\d+)(-?[врмт][аи]|-?т?(ен|на)|-?(ев|ева))?/i,pD=/\d+/i,mD={narrow:/^((пр)?н\.?\s?е\.?)/i,abbreviated:/^((пр)?н\.?\s?е\.?)/i,wide:/^(преди новата ера|новата ера|нова ера)/i},_D={any:[/^п/i,/^н/i]},TD={narrow:/^[1234]/i,abbreviated:/^[1234](-?[врт]?o?)? тримес.?/i,wide:/^[1234](-?[врт]?о?)? тримесечие/i},hD={any:[/1/i,/2/i,/3/i,/4/i]},SD={narrow:/^[нпвсч]/i,short:/^(нд|пн|вт|ср|чт|пт|сб)/i,abbreviated:/^(нед|пон|вто|сря|чет|пет|съб)/i,wide:/^(неделя|понеделник|вторник|сряда|четвъртък|петък|събота)/i},AD={narrow:[/^н/i,/^п/i,/^в/i,/^с/i,/^ч/i,/^п/i,/^с/i],any:[/^н[ед]/i,/^п[он]/i,/^вт/i,/^ср/i,/^ч[ет]/i,/^п[ет]/i,/^с[ъб]/i]},OD={abbreviated:/^(яну|фев|мар|апр|май|юни|юли|авг|сеп|окт|ное|дек)/i,wide:/^(януари|февруари|март|април|май|юни|юли|август|септември|октомври|ноември|декември)/i},gD={any:[/^я/i,/^ф/i,/^мар/i,/^ап/i,/^май/i,/^юн/i,/^юл/i,/^ав/i,/^се/i,/^окт/i,/^но/i,/^де/i]},ID={any:/^(преди о|след о|в по|на о|през|веч|сут|следо)/i},RD={any:{am:/^преди о/i,pm:/^след о/i,midnight:/^в пол/i,noon:/^на об/i,morning:/^сут/i,afternoon:/^следо/i,evening:/^веч/i,night:/^през н/i}},ND={ordinalNumber:Pn({matchPattern:fD,parsePattern:pD,valueCallback:function(t){return parseInt(t,10)}}),era:De({matchPatterns:mD,defaultMatchWidth:"wide",parsePatterns:_D,defaultParseWidth:"any"}),quarter:De({matchPatterns:TD,defaultMatchWidth:"wide",parsePatterns:hD,defaultParseWidth:"any",valueCallback:function(t){return t+1}}),month:De({matchPatterns:OD,defaultMatchWidth:"wide",parsePatterns:gD,defaultParseWidth:"any"}),day:De({matchPatterns:SD,defaultMatchWidth:"wide",parsePatterns:AD,defaultParseWidth:"any"}),dayPeriod:De({matchPatterns:ID,defaultMatchWidth:"any",parsePatterns:RD,defaultParseWidth:"any"})},vD={code:"bg",formatDistance:j3,formatLong:Q3,formatRelative:aD,localize:ED,match:ND,options:{weekStartsOn:1,firstWeekContainsDate:1}},bD={lessThanXSeconds:{one:{regular:"méně než sekunda",past:"před méně než sekundou",future:"za méně než sekundu"},few:{regular:"méně než {{count}} sekundy",past:"před méně než {{count}} sekundami",future:"za méně než {{count}} sekundy"},many:{regular:"méně než {{count}} sekund",past:"před méně než {{count}} sekundami",future:"za méně než {{count}} sekund"}},xSeconds:{one:{regular:"sekunda",past:"před sekundou",future:"za sekundu"},few:{regular:"{{count}} sekundy",past:"před {{count}} sekundami",future:"za {{count}} sekundy"},many:{regular:"{{count}} sekund",past:"před {{count}} sekundami",future:"za {{count}} sekund"}},halfAMinute:{type:"other",other:{regular:"půl minuty",past:"před půl minutou",future:"za půl minuty"}},lessThanXMinutes:{one:{regular:"méně než minuta",past:"před méně než minutou",future:"za méně než minutu"},few:{regular:"méně než {{count}} minuty",past:"před méně než {{count}} minutami",future:"za méně než {{count}} minuty"},many:{regular:"méně než {{count}} minut",past:"před méně než {{count}} minutami",future:"za méně než {{count}} minut"}},xMinutes:{one:{regular:"minuta",past:"před minutou",future:"za minutu"},few:{regular:"{{count}} minuty",past:"před {{count}} minutami",future:"za {{count}} minuty"},many:{regular:"{{count}} minut",past:"před {{count}} minutami",future:"za {{count}} minut"}},aboutXHours:{one:{regular:"přibližně hodina",past:"přibližně před hodinou",future:"přibližně za hodinu"},few:{regular:"přibližně {{count}} hodiny",past:"přibližně před {{count}} hodinami",future:"přibližně za {{count}} hodiny"},many:{regular:"přibližně {{count}} hodin",past:"přibližně před {{count}} hodinami",future:"přibližně za {{count}} hodin"}},xHours:{one:{regular:"hodina",past:"před hodinou",future:"za hodinu"},few:{regular:"{{count}} hodiny",past:"před {{count}} hodinami",future:"za {{count}} hodiny"},many:{regular:"{{count}} hodin",past:"před {{count}} hodinami",future:"za {{count}} hodin"}},xDays:{one:{regular:"den",past:"před dnem",future:"za den"},few:{regular:"{{count}} dny",past:"před {{count}} dny",future:"za {{count}} dny"},many:{regular:"{{count}} dní",past:"před {{count}} dny",future:"za {{count}} dní"}},aboutXWeeks:{one:{regular:"přibližně týden",past:"přibližně před týdnem",future:"přibližně za týden"},few:{regular:"přibližně {{count}} týdny",past:"přibližně před {{count}} týdny",future:"přibližně za {{count}} týdny"},many:{regular:"přibližně {{count}} týdnů",past:"přibližně před {{count}} týdny",future:"přibližně za {{count}} týdnů"}},xWeeks:{one:{regular:"týden",past:"před týdnem",future:"za týden"},few:{regular:"{{count}} týdny",past:"před {{count}} týdny",future:"za {{count}} týdny"},many:{regular:"{{count}} týdnů",past:"před {{count}} týdny",future:"za {{count}} týdnů"}},aboutXMonths:{one:{regular:"přibližně měsíc",past:"přibližně před měsícem",future:"přibližně za měsíc"},few:{regular:"přibližně {{count}} měsíce",past:"přibližně před {{count}} měsíci",future:"přibližně za {{count}} měsíce"},many:{regular:"přibližně {{count}} měsíců",past:"přibližně před {{count}} měsíci",future:"přibližně za {{count}} měsíců"}},xMonths:{one:{regular:"měsíc",past:"před měsícem",future:"za měsíc"},few:{regular:"{{count}} měsíce",past:"před {{count}} měsíci",future:"za {{count}} měsíce"},many:{regular:"{{count}} měsíců",past:"před {{count}} měsíci",future:"za {{count}} měsíců"}},aboutXYears:{one:{regular:"přibližně rok",past:"přibližně před rokem",future:"přibližně za rok"},few:{regular:"přibližně {{count}} roky",past:"přibližně před {{count}} roky",future:"přibližně za {{count}} roky"},many:{regular:"přibližně {{count}} roků",past:"přibližně před {{count}} roky",future:"přibližně za {{count}} roků"}},xYears:{one:{regular:"rok",past:"před rokem",future:"za rok"},few:{regular:"{{count}} roky",past:"před {{count}} roky",future:"za {{count}} roky"},many:{regular:"{{count}} roků",past:"před {{count}} roky",future:"za {{count}} roků"}},overXYears:{one:{regular:"více než rok",past:"před více než rokem",future:"za více než rok"},few:{regular:"více než {{count}} roky",past:"před více než {{count}} roky",future:"za více než {{count}} roky"},many:{regular:"více než {{count}} roků",past:"před více než {{count}} roky",future:"za více než {{count}} roků"}},almostXYears:{one:{regular:"skoro rok",past:"skoro před rokem",future:"skoro za rok"},few:{regular:"skoro {{count}} roky",past:"skoro před {{count}} roky",future:"skoro za {{count}} roky"},many:{regular:"skoro {{count}} roků",past:"skoro před {{count}} roky",future:"skoro za {{count}} roků"}}},CD=function(t,n,a){var s,r=bD[t];r.type==="other"?s=r.other:n===1?s=r.one:n>1&&n<5?s=r.few:s=r.many;var o=(a==null?void 0:a.addSuffix)===!0,i=a==null?void 0:a.comparison,u;return o&&i===-1?u=s.past:o&&i===1?u=s.future:u=s.regular,u.replace("{{count}}",String(n))},DD={full:"EEEE, d. MMMM yyyy",long:"d. MMMM yyyy",medium:"d. M. yyyy",short:"dd.MM.yyyy"},PD={full:"H:mm:ss zzzz",long:"H:mm:ss z",medium:"H:mm:ss",short:"H:mm"},LD={full:"{{date}} 'v' {{time}}",long:"{{date}} 'v' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},yD={date:nt({formats:DD,defaultWidth:"full"}),time:nt({formats:PD,defaultWidth:"full"}),dateTime:nt({formats:LD,defaultWidth:"full"})},$D=["neděli","pondělí","úterý","středu","čtvrtek","pátek","sobotu"],UD={lastWeek:"'poslední' eeee 've' p",yesterday:"'včera v' p",today:"'dnes v' p",tomorrow:"'zítra v' p",nextWeek:function(t){var n=t.getUTCDay();return"'v "+$D[n]+" o' p"},other:"P"},kD=function(t,n){var a=UD[t];return typeof a=="function"?a(n):a},wD={narrow:["př. n. l.","n. l."],abbreviated:["př. n. l.","n. l."],wide:["před naším letopočtem","našeho letopočtu"]},MD={narrow:["1","2","3","4"],abbreviated:["1. čtvrtletí","2. čtvrtletí","3. čtvrtletí","4. čtvrtletí"],wide:["1. čtvrtletí","2. čtvrtletí","3. čtvrtletí","4. čtvrtletí"]},WD={narrow:["L","Ú","B","D","K","Č","Č","S","Z","Ř","L","P"],abbreviated:["led","úno","bře","dub","kvě","čvn","čvc","srp","zář","říj","lis","pro"],wide:["leden","únor","březen","duben","květen","červen","červenec","srpen","září","říjen","listopad","prosinec"]},FD={narrow:["L","Ú","B","D","K","Č","Č","S","Z","Ř","L","P"],abbreviated:["led","úno","bře","dub","kvě","čvn","čvc","srp","zář","říj","lis","pro"],wide:["ledna","února","března","dubna","května","června","července","srpna","září","října","listopadu","prosince"]},zD={narrow:["ne","po","út","st","čt","pá","so"],short:["ne","po","út","st","čt","pá","so"],abbreviated:["ned","pon","úte","stř","čtv","pát","sob"],wide:["neděle","pondělí","úterý","středa","čtvrtek","pátek","sobota"]},xD={narrow:{am:"dop.",pm:"odp.",midnight:"půlnoc",noon:"poledne",morning:"ráno",afternoon:"odpoledne",evening:"večer",night:"noc"},abbreviated:{am:"dop.",pm:"odp.",midnight:"půlnoc",noon:"poledne",morning:"ráno",afternoon:"odpoledne",evening:"večer",night:"noc"},wide:{am:"dopoledne",pm:"odpoledne",midnight:"půlnoc",noon:"poledne",morning:"ráno",afternoon:"odpoledne",evening:"večer",night:"noc"}},BD={narrow:{am:"dop.",pm:"odp.",midnight:"půlnoc",noon:"poledne",morning:"ráno",afternoon:"odpoledne",evening:"večer",night:"noc"},abbreviated:{am:"dop.",pm:"odp.",midnight:"půlnoc",noon:"poledne",morning:"ráno",afternoon:"odpoledne",evening:"večer",night:"noc"},wide:{am:"dopoledne",pm:"odpoledne",midnight:"půlnoc",noon:"poledne",morning:"ráno",afternoon:"odpoledne",evening:"večer",night:"noc"}},GD=function(t,n){var a=Number(t);return a+"."},HD={ordinalNumber:GD,era:Ce({values:wD,defaultWidth:"wide"}),quarter:Ce({values:MD,defaultWidth:"wide",argumentCallback:function(t){return t-1}}),month:Ce({values:WD,defaultWidth:"wide",formattingValues:FD,defaultFormattingWidth:"wide"}),day:Ce({values:zD,defaultWidth:"wide"}),dayPeriod:Ce({values:xD,defaultWidth:"wide",formattingValues:BD,defaultFormattingWidth:"wide"})},VD=/^(\d+)\.?/i,KD=/\d+/i,jD={narrow:/^(p[řr](\.|ed) Kr\.|p[řr](\.|ed) n\. l\.|po Kr\.|n\. l\.)/i,abbreviated:/^(p[řr](\.|ed) Kr\.|p[řr](\.|ed) n\. l\.|po Kr\.|n\. l\.)/i,wide:/^(p[řr](\.|ed) Kristem|p[řr](\.|ed) na[šs][íi]m letopo[čc]tem|po Kristu|na[šs]eho letopo[čc]tu)/i},qD={any:[/^p[řr]/i,/^(po|n)/i]},YD={narrow:/^[1234]/i,abbreviated:/^[1234]\. [čc]tvrtlet[íi]/i,wide:/^[1234]\. [čc]tvrtlet[íi]/i},XD={any:[/1/i,/2/i,/3/i,/4/i]},QD={narrow:/^[lúubdkčcszřrlp]/i,abbreviated:/^(led|[úu]no|b[řr]e|dub|kv[ěe]|[čc]vn|[čc]vc|srp|z[áa][řr]|[řr][íi]j|lis|pro)/i,wide:/^(leden|ledna|[úu]nora?|b[řr]ezen|b[řr]ezna|duben|dubna|kv[ěe]ten|kv[ěe]tna|[čc]erven(ec|ce)?|[čc]ervna|srpen|srpna|z[áa][řr][íi]|[řr][íi]jen|[řr][íi]jna|listopad(a|u)?|prosinec|prosince)/i},ZD={narrow:[/^l/i,/^[úu]/i,/^b/i,/^d/i,/^k/i,/^[čc]/i,/^[čc]/i,/^s/i,/^z/i,/^[řr]/i,/^l/i,/^p/i],any:[/^led/i,/^[úu]n/i,/^b[řr]e/i,/^dub/i,/^kv[ěe]/i,/^[čc]vn|[čc]erven(?!\w)|[čc]ervna/i,/^[čc]vc|[čc]erven(ec|ce)/i,/^srp/i,/^z[áa][řr]/i,/^[řr][íi]j/i,/^lis/i,/^pro/i]},JD={narrow:/^[npuúsčps]/i,short:/^(ne|po|[úu]t|st|[čc]t|p[áa]|so)/i,abbreviated:/^(ned|pon|[úu]te|st[rř]|[čc]tv|p[áa]t|sob)/i,wide:/^(ned[ěe]le|pond[ěe]l[íi]|[úu]ter[ýy]|st[řr]eda|[čc]tvrtek|p[áa]tek|sobota)/i},eP={narrow:[/^n/i,/^p/i,/^[úu]/i,/^s/i,/^[čc]/i,/^p/i,/^s/i],any:[/^ne/i,/^po/i,/^[úu]t/i,/^st/i,/^[čc]t/i,/^p[áa]/i,/^so/i]},tP={any:/^dopoledne|dop\.?|odpoledne|odp\.?|p[ůu]lnoc|poledne|r[áa]no|odpoledne|ve[čc]er|(v )?noci?/i},nP={any:{am:/^dop/i,pm:/^odp/i,midnight:/^p[ůu]lnoc/i,noon:/^poledne/i,morning:/r[áa]no/i,afternoon:/odpoledne/i,evening:/ve[čc]er/i,night:/noc/i}},aP={ordinalNumber:Pn({matchPattern:VD,parsePattern:KD,valueCallback:function(t){return parseInt(t,10)}}),era:De({matchPatterns:jD,defaultMatchWidth:"wide",parsePatterns:qD,defaultParseWidth:"any"}),quarter:De({matchPatterns:YD,defaultMatchWidth:"wide",parsePatterns:XD,defaultParseWidth:"any",valueCallback:function(t){return t+1}}),month:De({matchPatterns:QD,defaultMatchWidth:"wide",parsePatterns:ZD,defaultParseWidth:"any"}),day:De({matchPatterns:JD,defaultMatchWidth:"wide",parsePatterns:eP,defaultParseWidth:"any"}),dayPeriod:De({matchPatterns:tP,defaultMatchWidth:"any",parsePatterns:nP,defaultParseWidth:"any"})},sP={code:"cs",formatDistance:CD,formatLong:yD,formatRelative:kD,localize:HD,match:aP,options:{weekStartsOn:1,firstWeekContainsDate:4}},$m={lessThanXSeconds:{standalone:{one:"weniger als 1 Sekunde",other:"weniger als {{count}} Sekunden"},withPreposition:{one:"weniger als 1 Sekunde",other:"weniger als {{count}} Sekunden"}},xSeconds:{standalone:{one:"1 Sekunde",other:"{{count}} Sekunden"},withPreposition:{one:"1 Sekunde",other:"{{count}} Sekunden"}},halfAMinute:{standalone:"halbe Minute",withPreposition:"halben Minute"},lessThanXMinutes:{standalone:{one:"weniger als 1 Minute",other:"weniger als {{count}} Minuten"},withPreposition:{one:"weniger als 1 Minute",other:"weniger als {{count}} Minuten"}},xMinutes:{standalone:{one:"1 Minute",other:"{{count}} Minuten"},withPreposition:{one:"1 Minute",other:"{{count}} Minuten"}},aboutXHours:{standalone:{one:"etwa 1 Stunde",other:"etwa {{count}} Stunden"},withPreposition:{one:"etwa 1 Stunde",other:"etwa {{count}} Stunden"}},xHours:{standalone:{one:"1 Stunde",other:"{{count}} Stunden"},withPreposition:{one:"1 Stunde",other:"{{count}} Stunden"}},xDays:{standalone:{one:"1 Tag",other:"{{count}} Tage"},withPreposition:{one:"1 Tag",other:"{{count}} Tagen"}},aboutXWeeks:{standalone:{one:"etwa 1 Woche",other:"etwa {{count}} Wochen"},withPreposition:{one:"etwa 1 Woche",other:"etwa {{count}} Wochen"}},xWeeks:{standalone:{one:"1 Woche",other:"{{count}} Wochen"},withPreposition:{one:"1 Woche",other:"{{count}} Wochen"}},aboutXMonths:{standalone:{one:"etwa 1 Monat",other:"etwa {{count}} Monate"},withPreposition:{one:"etwa 1 Monat",other:"etwa {{count}} Monaten"}},xMonths:{standalone:{one:"1 Monat",other:"{{count}} Monate"},withPreposition:{one:"1 Monat",other:"{{count}} Monaten"}},aboutXYears:{standalone:{one:"etwa 1 Jahr",other:"etwa {{count}} Jahre"},withPreposition:{one:"etwa 1 Jahr",other:"etwa {{count}} Jahren"}},xYears:{standalone:{one:"1 Jahr",other:"{{count}} Jahre"},withPreposition:{one:"1 Jahr",other:"{{count}} Jahren"}},overXYears:{standalone:{one:"mehr als 1 Jahr",other:"mehr als {{count}} Jahre"},withPreposition:{one:"mehr als 1 Jahr",other:"mehr als {{count}} Jahren"}},almostXYears:{standalone:{one:"fast 1 Jahr",other:"fast {{count}} Jahre"},withPreposition:{one:"fast 1 Jahr",other:"fast {{count}} Jahren"}}},rP=function(t,n,a){var s,r=a!=null&&a.addSuffix?$m[t].withPreposition:$m[t].standalone;return typeof r=="string"?s=r:n===1?s=r.one:s=r.other.replace("{{count}}",String(n)),a!=null&&a.addSuffix?a.comparison&&a.comparison>0?"in "+s:"vor "+s:s},oP={full:"EEEE, do MMMM y",long:"do MMMM y",medium:"do MMM y",short:"dd.MM.y"},iP={full:"HH:mm:ss zzzz",long:"HH:mm:ss z",medium:"HH:mm:ss",short:"HH:mm"},uP={full:"{{date}} 'um' {{time}}",long:"{{date}} 'um' {{time}}",medium:"{{date}} {{time}}",short:"{{date}} {{time}}"},lP={date:nt({formats:oP,defaultWidth:"full"}),time:nt({formats:iP,defaultWidth:"full"}),dateTime:nt({formats:uP,defaultWidth:"full"})},cP={lastWeek:"'letzten' eeee 'um' p",yesterday:"'gestern um' p",today:"'heute um' p",tomorrow:"'morgen um' p",nextWeek:"eeee 'um' p",other:"P"},dP=function(t,n,a,s){return cP[t]},EP={narrow:["v.Chr.","n.Chr."],abbreviated:["v.Chr.","n.Chr."],wide:["vor Christus","nach Christus"]},fP={narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1. Quartal","2. Quartal","3. Quartal","4. Quartal"]},hd={narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mär","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez"],wide:["Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"]},pP={narrow:hd.narrow,abbreviated:["Jan.","Feb.","März","Apr.","Mai","Juni","Juli","Aug.","Sep.","Okt.","Nov.","Dez."],wide:hd.wide},mP={narrow:["S","M","D","M","D","F","S"],short:["So","Mo","Di","Mi","Do","Fr","Sa"],abbreviated:["So.","Mo.","Di.","Mi.","Do.","Fr.","Sa."],wide:["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"]},_P={narrow:{am:"vm.",pm:"nm.",midnight:"Mitternacht",noon:"Mittag",morning:"Morgen",afternoon:"Nachm.",evening:"Abend",night:"Nacht"},abbreviated:{am:"vorm.",pm:"nachm.",midnight:"Mitternacht",noon:"Mittag",morning:"Morgen",afternoon:"Nachmittag",evening:"Abend",night:"Nacht"},wide:{am:"vormittags",pm:"nachmittags",midnight:"Mitternacht",noon:"Mittag",morning:"Morgen",afternoon:"Nachmittag",evening:"Abend",night:"Nacht"}},TP={narrow:{am:"vm.",pm:"nm.",midnight:"Mitternacht",noon:"Mittag",morning:"morgens",afternoon:"nachm.",evening:"abends",night:"nachts"},abbreviated:{am:"vorm.",pm:"nachm.",midnight:"Mitternacht",noon:"Mittag",morning:"morgens",afternoon:"nachmittags",evening:"abends",night:"nachts"},wide:{am:"vormittags",pm:"nachmittags",midnight:"Mitternacht",noon:"Mittag",morning:"morgens",afternoon:"nachmittags",evening:"abends",night:"nachts"}},hP=function(t){var n=Number(t);return n+"."},SP={ordinalNumber:hP,era:Ce({values:EP,defaultWidth:"wide"}),quarter:Ce({values:fP,defaultWidth:"wide",argumentCallback:function(t){return t-1}}),month:Ce({values:hd,formattingValues:pP,defaultWidth:"wide"}),day:Ce({values:mP,defaultWidth:"wide"}),dayPeriod:Ce({values:_P,defaultWidth:"wide",formattingValues:TP,defaultFormattingWidth:"wide"})},AP=/^(\d+)(\.)?/i,OP=/\d+/i,gP={narrow:/^(v\.? ?Chr\.?|n\.? ?Chr\.?)/i,abbreviated:/^(v\.? ?Chr\.?|n\.? ?Chr\.?)/i,wide:/^(vor Christus|vor unserer Zeitrechnung|nach Christus|unserer Zeitrechnung)/i},IP={any:[/^v/i,/^n/i]},RP={narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](\.)? Quartal/i},NP={any:[/1/i,/2/i,/3/i,/4/i]},vP={narrow:/^[jfmasond]/i,abbreviated:/^(j[aä]n|feb|mär[z]?|apr|mai|jun[i]?|jul[i]?|aug|sep|okt|nov|dez)\.?/i,wide:/^(januar|februar|märz|april|mai|juni|juli|august|september|oktober|november|dezember)/i},bP={narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^j[aä]/i,/^f/i,/^mär/i,/^ap/i,/^mai/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},CP={narrow:/^[smdmf]/i,short:/^(so|mo|di|mi|do|fr|sa)/i,abbreviated:/^(son?|mon?|die?|mit?|don?|fre?|sam?)\.?/i,wide:/^(sonntag|montag|dienstag|mittwoch|donnerstag|freitag|samstag)/i},DP={any:[/^so/i,/^mo/i,/^di/i,/^mi/i,/^do/i,/^f/i,/^sa/i]},PP={narrow:/^(vm\.?|nm\.?|Mitternacht|Mittag|morgens|nachm\.?|abends|nachts)/i,abbreviated:/^(vorm\.?|nachm\.?|Mitternacht|Mittag|morgens|nachm\.?|abends|nachts)/i,wide:/^(vormittags|nachmittags|Mitternacht|Mittag|morgens|nachmittags|abends|nachts)/i},LP={any:{am:/^v/i,pm:/^n/i,midnight:/^Mitte/i,noon:/^Mitta/i,morning:/morgens/i,afternoon:/nachmittags/i,evening:/abends/i,night:/nachts/i}},yP={ordinalNumber:Pn({matchPattern:AP,parsePattern:OP,valueCallback:function(t){return parseInt(t)}}),era:De({matchPatterns:gP,defaultMatchWidth:"wide",parsePatterns:IP,defaultParseWidth:"any"}),quarter:De({matchPatterns:RP,defaultMatchWidth:"wide",parsePatterns:NP,defaultParseWidth:"any",valueCallback:function(t){return t+1}}),month:De({matchPatterns:vP,defaultMatchWidth:"wide",parsePatterns:bP,defaultParseWidth:"any"}),day:De({matchPatterns:CP,defaultMatchWidth:"wide",parsePatterns:DP,defaultParseWidth:"any"}),dayPeriod:De({matchPatterns:PP,defaultMatchWidth:"wide",parsePatterns:LP,defaultParseWidth:"any"})},$P={code:"de",formatDistance:rP,formatLong:lP,formatRelative:dP,localize:SP,match:yP,options:{weekStartsOn:1,firstWeekContainsDate:4}},UP={lessThanXSeconds:{one:"menos de un segundo",other:"menos de {{count}} segundos"},xSeconds:{one:"1 segundo",other:"{{count}} segundos"},halfAMinute:"medio minuto",lessThanXMinutes:{one:"menos de un minuto",other:"menos de {{count}} minutos"},xMinutes:{one:"1 minuto",other:"{{count}} minutos"},aboutXHours:{one:"alrededor de 1 hora",other:"alrededor de {{count}} horas"},xHours:{one:"1 hora",other:"{{count}} horas"},xDays:{one:"1 día",other:"{{count}} días"},aboutXWeeks:{one:"alrededor de 1 semana",other:"alrededor de {{count}} semanas"},xWeeks:{one:"1 semana",other:"{{count}} semanas"},aboutXMonths:{one:"alrededor de 1 mes",other:"alrededor de {{count}} meses"},xMonths:{one:"1 mes",other:"{{count}} meses"},aboutXYears:{one:"alrededor de 1 año",other:"alrededor de {{count}} años"},xYears:{one:"1 año",other:"{{count}} años"},overXYears:{one:"más de 1 año",other:"más de {{count}} años"},almostXYears:{one:"casi 1 año",other:"casi {{count}} años"}},kP=function(t,n,a){var s,r=UP[t];return typeof r=="string"?s=r:n===1?s=r.one:s=r.other.replace("{{count}}",n.toString()),a!=null&&a.addSuffix?a.comparison&&a.comparison>0?"en "+s:"hace "+s:s},wP={full:"EEEE, d 'de' MMMM 'de' y",long:"d 'de' MMMM 'de' y",medium:"d MMM y",short:"dd/MM/y"},MP={full:"HH:mm:ss zzzz",long:"HH:mm:ss z",medium:"HH:mm:ss",short:"HH:mm"},WP={full:"{{date}} 'a las' {{time}}",long:"{{date}} 'a las' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},FP={date:nt({formats:wP,defaultWidth:"full"}),time:nt({formats:MP,defaultWidth:"full"}),dateTime:nt({formats:WP,defaultWidth:"full"})},zP={lastWeek:"'el' eeee 'pasado a la' p",yesterday:"'ayer a la' p",today:"'hoy a la' p",tomorrow:"'mañana a la' p",nextWeek:"eeee 'a la' p",other:"P"},xP={lastWeek:"'el' eeee 'pasado a las' p",yesterday:"'ayer a las' p",today:"'hoy a las' p",tomorrow:"'mañana a las' p",nextWeek:"eeee 'a las' p",other:"P"},BP=function(t,n,a,s){return n.getUTCHours()!==1?xP[t]:zP[t]},GP={narrow:["AC","DC"],abbreviated:["AC","DC"],wide:["antes de cristo","después de cristo"]},HP={narrow:["1","2","3","4"],abbreviated:["T1","T2","T3","T4"],wide:["1º trimestre","2º trimestre","3º trimestre","4º trimestre"]},VP={narrow:["e","f","m","a","m","j","j","a","s","o","n","d"],abbreviated:["ene","feb","mar","abr","may","jun","jul","ago","sep","oct","nov","dic"],wide:["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"]},KP={narrow:["d","l","m","m","j","v","s"],short:["do","lu","ma","mi","ju","vi","sá"],abbreviated:["dom","lun","mar","mié","jue","vie","sáb"],wide:["domingo","lunes","martes","miércoles","jueves","viernes","sábado"]},jP={narrow:{am:"a",pm:"p",midnight:"mn",noon:"md",morning:"mañana",afternoon:"tarde",evening:"tarde",night:"noche"},abbreviated:{am:"AM",pm:"PM",midnight:"medianoche",noon:"mediodia",morning:"mañana",afternoon:"tarde",evening:"tarde",night:"noche"},wide:{am:"a.m.",pm:"p.m.",midnight:"medianoche",noon:"mediodia",morning:"mañana",afternoon:"tarde",evening:"tarde",night:"noche"}},qP={narrow:{am:"a",pm:"p",midnight:"mn",noon:"md",morning:"de la mañana",afternoon:"de la tarde",evening:"de la tarde",night:"de la noche"},abbreviated:{am:"AM",pm:"PM",midnight:"medianoche",noon:"mediodia",morning:"de la mañana",afternoon:"de la tarde",evening:"de la tarde",night:"de la noche"},wide:{am:"a.m.",pm:"p.m.",midnight:"medianoche",noon:"mediodia",morning:"de la mañana",afternoon:"de la tarde",evening:"de la tarde",night:"de la noche"}},YP=function(t,n){var a=Number(t);return a+"º"},XP={ordinalNumber:YP,era:Ce({values:GP,defaultWidth:"wide"}),quarter:Ce({values:HP,defaultWidth:"wide",argumentCallback:function(t){return Number(t)-1}}),month:Ce({values:VP,defaultWidth:"wide"}),day:Ce({values:KP,defaultWidth:"wide"}),dayPeriod:Ce({values:jP,defaultWidth:"wide",formattingValues:qP,defaultFormattingWidth:"wide"})},QP=/^(\d+)(º)?/i,ZP=/\d+/i,JP={narrow:/^(ac|dc|a|d)/i,abbreviated:/^(a\.?\s?c\.?|a\.?\s?e\.?\s?c\.?|d\.?\s?c\.?|e\.?\s?c\.?)/i,wide:/^(antes de cristo|antes de la era com[uú]n|despu[eé]s de cristo|era com[uú]n)/i},eL={any:[/^ac/i,/^dc/i],wide:[/^(antes de cristo|antes de la era com[uú]n)/i,/^(despu[eé]s de cristo|era com[uú]n)/i]},tL={narrow:/^[1234]/i,abbreviated:/^T[1234]/i,wide:/^[1234](º)? trimestre/i},nL={any:[/1/i,/2/i,/3/i,/4/i]},aL={narrow:/^[efmajsond]/i,abbreviated:/^(ene|feb|mar|abr|may|jun|jul|ago|sep|oct|nov|dic)/i,wide:/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i},sL={narrow:[/^e/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^en/i,/^feb/i,/^mar/i,/^abr/i,/^may/i,/^jun/i,/^jul/i,/^ago/i,/^sep/i,/^oct/i,/^nov/i,/^dic/i]},rL={narrow:/^[dlmjvs]/i,short:/^(do|lu|ma|mi|ju|vi|s[áa])/i,abbreviated:/^(dom|lun|mar|mi[ée]|jue|vie|s[áa]b)/i,wide:/^(domingo|lunes|martes|mi[ée]rcoles|jueves|viernes|s[áa]bado)/i},oL={narrow:[/^d/i,/^l/i,/^m/i,/^m/i,/^j/i,/^v/i,/^s/i],any:[/^do/i,/^lu/i,/^ma/i,/^mi/i,/^ju/i,/^vi/i,/^sa/i]},iL={narrow:/^(a|p|mn|md|(de la|a las) (mañana|tarde|noche))/i,any:/^([ap]\.?\s?m\.?|medianoche|mediodia|(de la|a las) (mañana|tarde|noche))/i},uL={any:{am:/^a/i,pm:/^p/i,midnight:/^mn/i,noon:/^md/i,morning:/mañana/i,afternoon:/tarde/i,evening:/tarde/i,night:/noche/i}},lL={ordinalNumber:Pn({matchPattern:QP,parsePattern:ZP,valueCallback:function(t){return parseInt(t,10)}}),era:De({matchPatterns:JP,defaultMatchWidth:"wide",parsePatterns:eL,defaultParseWidth:"any"}),quarter:De({matchPatterns:tL,defaultMatchWidth:"wide",parsePatterns:nL,defaultParseWidth:"any",valueCallback:function(t){return t+1}}),month:De({matchPatterns:aL,defaultMatchWidth:"wide",parsePatterns:sL,defaultParseWidth:"any"}),day:De({matchPatterns:rL,defaultMatchWidth:"wide",parsePatterns:oL,defaultParseWidth:"any"}),dayPeriod:De({matchPatterns:iL,defaultMatchWidth:"any",parsePatterns:uL,defaultParseWidth:"any"})},cL={code:"es",formatDistance:kP,formatLong:FP,formatRelative:BP,localize:XP,match:lL,options:{weekStartsOn:1,firstWeekContainsDate:1}},dL={lessThanXSeconds:{one:"segundo bat baino gutxiago",other:"{{count}} segundo baino gutxiago"},xSeconds:{one:"1 segundo",other:"{{count}} segundo"},halfAMinute:"minutu erdi",lessThanXMinutes:{one:"minutu bat baino gutxiago",other:"{{count}} minutu baino gutxiago"},xMinutes:{one:"1 minutu",other:"{{count}} minutu"},aboutXHours:{one:"1 ordu gutxi gorabehera",other:"{{count}} ordu gutxi gorabehera"},xHours:{one:"1 ordu",other:"{{count}} ordu"},xDays:{one:"1 egun",other:"{{count}} egun"},aboutXWeeks:{one:"aste 1 inguru",other:"{{count}} aste inguru"},xWeeks:{one:"1 aste",other:"{{count}} astean"},aboutXMonths:{one:"1 hilabete gutxi gorabehera",other:"{{count}} hilabete gutxi gorabehera"},xMonths:{one:"1 hilabete",other:"{{count}} hilabete"},aboutXYears:{one:"1 urte gutxi gorabehera",other:"{{count}} urte gutxi gorabehera"},xYears:{one:"1 urte",other:"{{count}} urte"},overXYears:{one:"1 urte baino gehiago",other:"{{count}} urte baino gehiago"},almostXYears:{one:"ia 1 urte",other:"ia {{count}} urte"}},EL=function(t,n,a){var s,r=dL[t];return typeof r=="string"?s=r:n===1?s=r.one:s=r.other.replace("{{count}}",String(n)),a!=null&&a.addSuffix?a.comparison&&a.comparison>0?"en "+s:"duela "+s:s},fL={full:"EEEE, y'ko' MMMM'ren' d'a' y'ren'",long:"y'ko' MMMM'ren' d'a'",medium:"y MMM d",short:"yy/MM/dd"},pL={full:"HH:mm:ss zzzz",long:"HH:mm:ss z",medium:"HH:mm:ss",short:"HH:mm"},mL={full:"{{date}} 'tan' {{time}}",long:"{{date}} 'tan' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},_L={date:nt({formats:fL,defaultWidth:"full"}),time:nt({formats:pL,defaultWidth:"full"}),dateTime:nt({formats:mL,defaultWidth:"full"})},TL={lastWeek:"'joan den' eeee, LT",yesterday:"'atzo,' p",today:"'gaur,' p",tomorrow:"'bihar,' p",nextWeek:"eeee, p",other:"P"},hL={lastWeek:"'joan den' eeee, p",yesterday:"'atzo,' p",today:"'gaur,' p",tomorrow:"'bihar,' p",nextWeek:"eeee, p",other:"P"},SL=function(t,n){return n.getUTCHours()!==1?hL[t]:TL[t]},AL={narrow:["k.a.","k.o."],abbreviated:["k.a.","k.o."],wide:["kristo aurretik","kristo ondoren"]},OL={narrow:["1","2","3","4"],abbreviated:["1H","2H","3H","4H"],wide:["1. hiruhilekoa","2. hiruhilekoa","3. hiruhilekoa","4. hiruhilekoa"]},gL={narrow:["u","o","m","a","m","e","u","a","i","u","a","a"],abbreviated:["urt","ots","mar","api","mai","eka","uzt","abu","ira","urr","aza","abe"],wide:["urtarrila","otsaila","martxoa","apirila","maiatza","ekaina","uztaila","abuztua","iraila","urria","azaroa","abendua"]},IL={narrow:["i","a","a","a","o","o","l"],short:["ig","al","as","az","og","or","lr"],abbreviated:["iga","ast","ast","ast","ost","ost","lar"],wide:["igandea","astelehena","asteartea","asteazkena","osteguna","ostirala","larunbata"]},RL={narrow:{am:"a",pm:"p",midnight:"ge",noon:"eg",morning:"goiza",afternoon:"arratsaldea",evening:"arratsaldea",night:"gaua"},abbreviated:{am:"AM",pm:"PM",midnight:"gauerdia",noon:"eguerdia",morning:"goiza",afternoon:"arratsaldea",evening:"arratsaldea",night:"gaua"},wide:{am:"a.m.",pm:"p.m.",midnight:"gauerdia",noon:"eguerdia",morning:"goiza",afternoon:"arratsaldea",evening:"arratsaldea",night:"gaua"}},NL={narrow:{am:"a",pm:"p",midnight:"ge",noon:"eg",morning:"goizean",afternoon:"arratsaldean",evening:"arratsaldean",night:"gauean"},abbreviated:{am:"AM",pm:"PM",midnight:"gauerdia",noon:"eguerdia",morning:"goizean",afternoon:"arratsaldean",evening:"arratsaldean",night:"gauean"},wide:{am:"a.m.",pm:"p.m.",midnight:"gauerdia",noon:"eguerdia",morning:"goizean",afternoon:"arratsaldean",evening:"arratsaldean",night:"gauean"}},vL=function(t,n){var a=Number(t);return a+"."},bL={ordinalNumber:vL,era:Ce({values:AL,defaultWidth:"wide"}),quarter:Ce({values:OL,defaultWidth:"wide",argumentCallback:function(t){return t-1}}),month:Ce({values:gL,defaultWidth:"wide"}),day:Ce({values:IL,defaultWidth:"wide"}),dayPeriod:Ce({values:RL,defaultWidth:"wide",formattingValues:NL,defaultFormattingWidth:"wide"})},CL=/^(\d+)(.)?/i,DL=/\d+/i,PL={narrow:/^(k.a.|k.o.)/i,abbreviated:/^(k.a.|k.o.)/i,wide:/^(kristo aurretik|kristo ondoren)/i},LL={narrow:[/^k.a./i,/^k.o./i],abbreviated:[/^(k.a.)/i,/^(k.o.)/i],wide:[/^(kristo aurretik)/i,/^(kristo ondoren)/i]},yL={narrow:/^[1234]/i,abbreviated:/^[1234]H/i,wide:/^[1234](.)? hiruhilekoa/i},$L={any:[/1/i,/2/i,/3/i,/4/i]},UL={narrow:/^[uomaei]/i,abbreviated:/^(urt|ots|mar|api|mai|eka|uzt|abu|ira|urr|aza|abe)/i,wide:/^(urtarrila|otsaila|martxoa|apirila|maiatza|ekaina|uztaila|abuztua|iraila|urria|azaroa|abendua)/i},kL={narrow:[/^u/i,/^o/i,/^m/i,/^a/i,/^m/i,/^e/i,/^u/i,/^a/i,/^i/i,/^u/i,/^a/i,/^a/i],any:[/^urt/i,/^ots/i,/^mar/i,/^api/i,/^mai/i,/^eka/i,/^uzt/i,/^abu/i,/^ira/i,/^urr/i,/^aza/i,/^abe/i]},wL={narrow:/^[iaol]/i,short:/^(ig|al|as|az|og|or|lr)/i,abbreviated:/^(iga|ast|ast|ast|ost|ost|lar)/i,wide:/^(igandea|astelehena|asteartea|asteazkena|osteguna|ostirala|larunbata)/i},ML={narrow:[/^i/i,/^a/i,/^a/i,/^a/i,/^o/i,/^o/i,/^l/i],short:[/^ig/i,/^al/i,/^as/i,/^az/i,/^og/i,/^or/i,/^lr/i],abbreviated:[/^iga/i,/^ast/i,/^ast/i,/^ast/i,/^ost/i,/^ost/i,/^lar/i],wide:[/^igandea/i,/^astelehena/i,/^asteartea/i,/^asteazkena/i,/^osteguna/i,/^ostirala/i,/^larunbata/i]},WL={narrow:/^(a|p|ge|eg|((goiza|goizean)|arratsaldea|(gaua|gauean)))/i,any:/^([ap]\.?\s?m\.?|gauerdia|eguerdia|((goiza|goizean)|arratsaldea|(gaua|gauean)))/i},FL={narrow:{am:/^a/i,pm:/^p/i,midnight:/^ge/i,noon:/^eg/i,morning:/goiz/i,afternoon:/arratsaldea/i,evening:/arratsaldea/i,night:/gau/i},any:{am:/^a/i,pm:/^p/i,midnight:/^gauerdia/i,noon:/^eguerdia/i,morning:/goiz/i,afternoon:/arratsaldea/i,evening:/arratsaldea/i,night:/gau/i}},zL={ordinalNumber:Pn({matchPattern:CL,parsePattern:DL,valueCallback:function(t){return parseInt(t,10)}}),era:De({matchPatterns:PL,defaultMatchWidth:"wide",parsePatterns:LL,defaultParseWidth:"wide"}),quarter:De({matchPatterns:yL,defaultMatchWidth:"wide",parsePatterns:$L,defaultParseWidth:"any",valueCallback:function(t){return t+1}}),month:De({matchPatterns:UL,defaultMatchWidth:"wide",parsePatterns:kL,defaultParseWidth:"any"}),day:De({matchPatterns:wL,defaultMatchWidth:"wide",parsePatterns:ML,defaultParseWidth:"wide"}),dayPeriod:De({matchPatterns:WL,defaultMatchWidth:"any",parsePatterns:FL,defaultParseWidth:"any"})},xL={code:"eu",formatDistance:EL,formatLong:_L,formatRelative:SL,localize:bL,match:zL,options:{weekStartsOn:1,firstWeekContainsDate:1}},BL={lessThanXSeconds:{one:"moins d’une seconde",other:"moins de {{count}} secondes"},xSeconds:{one:"1 seconde",other:"{{count}} secondes"},halfAMinute:"30 secondes",lessThanXMinutes:{one:"moins d’une minute",other:"moins de {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"environ 1 heure",other:"environ {{count}} heures"},xHours:{one:"1 heure",other:"{{count}} heures"},xDays:{one:"1 jour",other:"{{count}} jours"},aboutXWeeks:{one:"environ 1 semaine",other:"environ {{count}} semaines"},xWeeks:{one:"1 semaine",other:"{{count}} semaines"},aboutXMonths:{one:"environ 1 mois",other:"environ {{count}} mois"},xMonths:{one:"1 mois",other:"{{count}} mois"},aboutXYears:{one:"environ 1 an",other:"environ {{count}} ans"},xYears:{one:"1 an",other:"{{count}} ans"},overXYears:{one:"plus d’un an",other:"plus de {{count}} ans"},almostXYears:{one:"presqu’un an",other:"presque {{count}} ans"}},GL=function(t,n,a){var s,r=BL[t];return typeof r=="string"?s=r:n===1?s=r.one:s=r.other.replace("{{count}}",String(n)),a!=null&&a.addSuffix?a.comparison&&a.comparison>0?"dans "+s:"il y a "+s:s},HL={full:"EEEE d MMMM y",long:"d MMMM y",medium:"d MMM y",short:"dd/MM/y"},VL={full:"HH:mm:ss zzzz",long:"HH:mm:ss z",medium:"HH:mm:ss",short:"HH:mm"},KL={full:"{{date}} 'à' {{time}}",long:"{{date}} 'à' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},jL={date:nt({formats:HL,defaultWidth:"full"}),time:nt({formats:VL,defaultWidth:"full"}),dateTime:nt({formats:KL,defaultWidth:"full"})},qL={lastWeek:"eeee 'dernier à' p",yesterday:"'hier à' p",today:"'aujourd’hui à' p",tomorrow:"'demain à' p'",nextWeek:"eeee 'prochain à' p",other:"P"},YL=function(t,n,a,s){return qL[t]},XL={narrow:["av. J.-C","ap. J.-C"],abbreviated:["av. J.-C","ap. J.-C"],wide:["avant Jésus-Christ","après Jésus-Christ"]},QL={narrow:["T1","T2","T3","T4"],abbreviated:["1er trim.","2ème trim.","3ème trim.","4ème trim."],wide:["1er trimestre","2ème trimestre","3ème trimestre","4ème trimestre"]},ZL={narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["janv.","févr.","mars","avr.","mai","juin","juil.","août","sept.","oct.","nov.","déc."],wide:["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre"]},JL={narrow:["D","L","M","M","J","V","S"],short:["di","lu","ma","me","je","ve","sa"],abbreviated:["dim.","lun.","mar.","mer.","jeu.","ven.","sam."],wide:["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"]},ey={narrow:{am:"AM",pm:"PM",midnight:"minuit",noon:"midi",morning:"mat.",afternoon:"ap.m.",evening:"soir",night:"mat."},abbreviated:{am:"AM",pm:"PM",midnight:"minuit",noon:"midi",morning:"matin",afternoon:"après-midi",evening:"soir",night:"matin"},wide:{am:"AM",pm:"PM",midnight:"minuit",noon:"midi",morning:"du matin",afternoon:"de l’après-midi",evening:"du soir",night:"du matin"}},ty=function(t,n){var a=Number(t),s=n==null?void 0:n.unit;if(a===0)return"0";var r=["year","week","hour","minute","second"],o;return a===1?o=s&&r.includes(s)?"ère":"er":o="ème",a+o},ny={ordinalNumber:ty,era:Ce({values:XL,defaultWidth:"wide"}),quarter:Ce({values:QL,defaultWidth:"wide",argumentCallback:function(t){return t-1}}),month:Ce({values:ZL,defaultWidth:"wide"}),day:Ce({values:JL,defaultWidth:"wide"}),dayPeriod:Ce({values:ey,defaultWidth:"wide"})},ay=/^(\d+)(ième|ère|ème|er|e)?/i,sy=/\d+/i,ry={narrow:/^(av\.J\.C|ap\.J\.C|ap\.J\.-C)/i,abbreviated:/^(av\.J\.-C|av\.J-C|apr\.J\.-C|apr\.J-C|ap\.J-C)/i,wide:/^(avant Jésus-Christ|après Jésus-Christ)/i},oy={any:[/^av/i,/^ap/i]},iy={narrow:/^T?[1234]/i,abbreviated:/^[1234](er|ème|e)? trim\.?/i,wide:/^[1234](er|ème|e)? trimestre/i},uy={any:[/1/i,/2/i,/3/i,/4/i]},ly={narrow:/^[jfmasond]/i,abbreviated:/^(janv|févr|mars|avr|mai|juin|juill|juil|août|sept|oct|nov|déc)\.?/i,wide:/^(janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i},cy={narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^av/i,/^ma/i,/^juin/i,/^juil/i,/^ao/i,/^s/i,/^o/i,/^n/i,/^d/i]},dy={narrow:/^[lmjvsd]/i,short:/^(di|lu|ma|me|je|ve|sa)/i,abbreviated:/^(dim|lun|mar|mer|jeu|ven|sam)\.?/i,wide:/^(dimanche|lundi|mardi|mercredi|jeudi|vendredi|samedi)/i},Ey={narrow:[/^d/i,/^l/i,/^m/i,/^m/i,/^j/i,/^v/i,/^s/i],any:[/^di/i,/^lu/i,/^ma/i,/^me/i,/^je/i,/^ve/i,/^sa/i]},fy={narrow:/^(a|p|minuit|midi|mat\.?|ap\.?m\.?|soir|nuit)/i,any:/^([ap]\.?\s?m\.?|du matin|de l'après[-\s]midi|du soir|de la nuit)/i},py={any:{am:/^a/i,pm:/^p/i,midnight:/^min/i,noon:/^mid/i,morning:/mat/i,afternoon:/ap/i,evening:/soir/i,night:/nuit/i}},my={ordinalNumber:Pn({matchPattern:ay,parsePattern:sy,valueCallback:function(t){return parseInt(t)}}),era:De({matchPatterns:ry,defaultMatchWidth:"wide",parsePatterns:oy,defaultParseWidth:"any"}),quarter:De({matchPatterns:iy,defaultMatchWidth:"wide",parsePatterns:uy,defaultParseWidth:"any",valueCallback:function(t){return t+1}}),month:De({matchPatterns:ly,defaultMatchWidth:"wide",parsePatterns:cy,defaultParseWidth:"any"}),day:De({matchPatterns:dy,defaultMatchWidth:"wide",parsePatterns:Ey,defaultParseWidth:"any"}),dayPeriod:De({matchPatterns:fy,defaultMatchWidth:"any",parsePatterns:py,defaultParseWidth:"any"})},_y={code:"fr",formatDistance:GL,formatLong:jL,formatRelative:YL,localize:ny,match:my,options:{weekStartsOn:1,firstWeekContainsDate:4}},Ty={lessThanXSeconds:{one:"menos dun segundo",other:"menos de {{count}} segundos"},xSeconds:{one:"1 segundo",other:"{{count}} segundos"},halfAMinute:"medio minuto",lessThanXMinutes:{one:"menos dun minuto",other:"menos de {{count}} minutos"},xMinutes:{one:"1 minuto",other:"{{count}} minutos"},aboutXHours:{one:"arredor dunha hora",other:"arredor de {{count}} horas"},xHours:{one:"1 hora",other:"{{count}} horas"},xDays:{one:"1 día",other:"{{count}} días"},aboutXWeeks:{one:"arredor dunha semana",other:"arredor de {{count}} semanas"},xWeeks:{one:"1 semana",other:"{{count}} semanas"},aboutXMonths:{one:"arredor de 1 mes",other:"arredor de {{count}} meses"},xMonths:{one:"1 mes",other:"{{count}} meses"},aboutXYears:{one:"arredor dun ano",other:"arredor de {{count}} anos"},xYears:{one:"1 ano",other:"{{count}} anos"},overXYears:{one:"máis dun ano",other:"máis de {{count}} anos"},almostXYears:{one:"case un ano",other:"case {{count}} anos"}},hy=function(t,n,a){var s,r=Ty[t];return typeof r=="string"?s=r:n===1?s=r.one:s=r.other.replace("{{count}}",String(n)),a!=null&&a.addSuffix?a.comparison&&a.comparison>0?"en "+s:"hai "+s:s},Sy={full:"EEEE, d 'de' MMMM y",long:"d 'de' MMMM y",medium:"d MMM y",short:"dd/MM/y"},Ay={full:"HH:mm:ss zzzz",long:"HH:mm:ss z",medium:"HH:mm:ss",short:"HH:mm"},Oy={full:"{{date}} 'ás' {{time}}",long:"{{date}} 'ás' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},gy={date:nt({formats:Sy,defaultWidth:"full"}),time:nt({formats:Ay,defaultWidth:"full"}),dateTime:nt({formats:Oy,defaultWidth:"full"})},Iy={lastWeek:"'o' eeee 'pasado á' LT",yesterday:"'onte á' p",today:"'hoxe á' p",tomorrow:"'mañá á' p",nextWeek:"eeee 'á' p",other:"P"},Ry={lastWeek:"'o' eeee 'pasado ás' p",yesterday:"'onte ás' p",today:"'hoxe ás' p",tomorrow:"'mañá ás' p",nextWeek:"eeee 'ás' p",other:"P"},Ny=function(t,n,a,s){return n.getUTCHours()!==1?Ry[t]:Iy[t]},vy={narrow:["AC","DC"],abbreviated:["AC","DC"],wide:["antes de cristo","despois de cristo"]},by={narrow:["1","2","3","4"],abbreviated:["T1","T2","T3","T4"],wide:["1º trimestre","2º trimestre","3º trimestre","4º trimestre"]},Cy={narrow:["e","f","m","a","m","j","j","a","s","o","n","d"],abbreviated:["xan","feb","mar","abr","mai","xun","xul","ago","set","out","nov","dec"],wide:["xaneiro","febreiro","marzo","abril","maio","xuño","xullo","agosto","setembro","outubro","novembro","decembro"]},Dy={narrow:["d","l","m","m","j","v","s"],short:["do","lu","ma","me","xo","ve","sa"],abbreviated:["dom","lun","mar","mer","xov","ven","sab"],wide:["domingo","luns","martes","mércores","xoves","venres","sábado"]},Py={narrow:{am:"a",pm:"p",midnight:"mn",noon:"md",morning:"mañá",afternoon:"tarde",evening:"tarde",night:"noite"},abbreviated:{am:"AM",pm:"PM",midnight:"medianoite",noon:"mediodía",morning:"mañá",afternoon:"tarde",evening:"tardiña",night:"noite"},wide:{am:"a.m.",pm:"p.m.",midnight:"medianoite",noon:"mediodía",morning:"mañá",afternoon:"tarde",evening:"tardiña",night:"noite"}},Ly={narrow:{am:"a",pm:"p",midnight:"mn",noon:"md",morning:"da mañá",afternoon:"da tarde",evening:"da tardiña",night:"da noite"},abbreviated:{am:"AM",pm:"PM",midnight:"medianoite",noon:"mediodía",morning:"da mañá",afternoon:"da tarde",evening:"da tardiña",night:"da noite"},wide:{am:"a.m.",pm:"p.m.",midnight:"medianoite",noon:"mediodía",morning:"da mañá",afternoon:"da tarde",evening:"da tardiña",night:"da noite"}},yy=function(t,n){var a=Number(t);return a+"º"},$y={ordinalNumber:yy,era:Ce({values:vy,defaultWidth:"wide"}),quarter:Ce({values:by,defaultWidth:"wide",argumentCallback:function(t){return t-1}}),month:Ce({values:Cy,defaultWidth:"wide"}),day:Ce({values:Dy,defaultWidth:"wide"}),dayPeriod:Ce({values:Py,defaultWidth:"wide",formattingValues:Ly,defaultFormattingWidth:"wide"})},Uy=/^(\d+)(º)?/i,ky=/\d+/i,wy={narrow:/^(ac|dc|a|d)/i,abbreviated:/^(a\.?\s?c\.?|a\.?\s?e\.?\s?c\.?|d\.?\s?c\.?|e\.?\s?c\.?)/i,wide:/^(antes de cristo|antes da era com[uú]n|despois de cristo|era com[uú]n)/i},My={any:[/^ac/i,/^dc/i],wide:[/^(antes de cristo|antes da era com[uú]n)/i,/^(despois de cristo|era com[uú]n)/i]},Wy={narrow:/^[1234]/i,abbreviated:/^T[1234]/i,wide:/^[1234](º)? trimestre/i},Fy={any:[/1/i,/2/i,/3/i,/4/i]},zy={narrow:/^[xfmasond]/i,abbreviated:/^(xan|feb|mar|abr|mai|xun|xul|ago|set|out|nov|dec)/i,wide:/^(xaneiro|febreiro|marzo|abril|maio|xuño|xullo|agosto|setembro|outubro|novembro|decembro)/i},xy={narrow:[/^x/i,/^f/i,/^m/i,/^a/i,/^m/i,/^x/i,/^x/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^xan/i,/^feb/i,/^mar/i,/^abr/i,/^mai/i,/^xun/i,/^xul/i,/^ago/i,/^set/i,/^out/i,/^nov/i,/^dec/i]},By={narrow:/^[dlmxvs]/i,short:/^(do|lu|ma|me|xo|ve|sa)/i,abbreviated:/^(dom|lun|mar|mer|xov|ven|sab)/i,wide:/^(domingo|luns|martes|m[eé]rcores|xoves|venres|s[áa]bado)/i},Gy={narrow:[/^d/i,/^l/i,/^m/i,/^m/i,/^x/i,/^v/i,/^s/i],any:[/^do/i,/^lu/i,/^ma/i,/^me/i,/^xo/i,/^ve/i,/^sa/i]},Hy={narrow:/^(a|p|mn|md|(da|[aá]s) (mañ[aá]|tarde|noite))/i,any:/^([ap]\.?\s?m\.?|medianoite|mediod[ií]a|(da|[aá]s) (mañ[aá]|tarde|noite))/i},Vy={any:{am:/^a/i,pm:/^p/i,midnight:/^mn/i,noon:/^md/i,morning:/mañ[aá]/i,afternoon:/tarde/i,evening:/tardiña/i,night:/noite/i}},Ky={ordinalNumber:Pn({matchPattern:Uy,parsePattern:ky,valueCallback:function(t){return parseInt(t,10)}}),era:De({matchPatterns:wy,defaultMatchWidth:"wide",parsePatterns:My,defaultParseWidth:"any"}),quarter:De({matchPatterns:Wy,defaultMatchWidth:"wide",parsePatterns:Fy,defaultParseWidth:"any",valueCallback:function(t){return t+1}}),month:De({matchPatterns:zy,defaultMatchWidth:"wide",parsePatterns:xy,defaultParseWidth:"any"}),day:De({matchPatterns:By,defaultMatchWidth:"wide",parsePatterns:Gy,defaultParseWidth:"any"}),dayPeriod:De({matchPatterns:Hy,defaultMatchWidth:"any",parsePatterns:Vy,defaultParseWidth:"any"})},jy={code:"gl",formatDistance:hy,formatLong:gy,formatRelative:Ny,localize:$y,match:Ky,options:{weekStartsOn:1,firstWeekContainsDate:1}},qy={lessThanXSeconds:{one:"meno di un secondo",other:"meno di {{count}} secondi"},xSeconds:{one:"un secondo",other:"{{count}} secondi"},halfAMinute:"alcuni secondi",lessThanXMinutes:{one:"meno di un minuto",other:"meno di {{count}} minuti"},xMinutes:{one:"un minuto",other:"{{count}} minuti"},aboutXHours:{one:"circa un'ora",other:"circa {{count}} ore"},xHours:{one:"un'ora",other:"{{count}} ore"},xDays:{one:"un giorno",other:"{{count}} giorni"},aboutXWeeks:{one:"circa una settimana",other:"circa {{count}} settimane"},xWeeks:{one:"una settimana",other:"{{count}} settimane"},aboutXMonths:{one:"circa un mese",other:"circa {{count}} mesi"},xMonths:{one:"un mese",other:"{{count}} mesi"},aboutXYears:{one:"circa un anno",other:"circa {{count}} anni"},xYears:{one:"un anno",other:"{{count}} anni"},overXYears:{one:"più di un anno",other:"più di {{count}} anni"},almostXYears:{one:"quasi un anno",other:"quasi {{count}} anni"}},Yy=function(t,n,a){var s,r=qy[t];return typeof r=="string"?s=r:n===1?s=r.one:s=r.other.replace("{{count}}",n.toString()),a!=null&&a.addSuffix?a.comparison&&a.comparison>0?"tra "+s:s+" fa":s},Xy={full:"EEEE d MMMM y",long:"d MMMM y",medium:"d MMM y",short:"dd/MM/y"},Qy={full:"HH:mm:ss zzzz",long:"HH:mm:ss z",medium:"HH:mm:ss",short:"HH:mm"},Zy={full:"{{date}} {{time}}",long:"{{date}} {{time}}",medium:"{{date}} {{time}}",short:"{{date}} {{time}}"},Jy={date:nt({formats:Xy,defaultWidth:"full"}),time:nt({formats:Qy,defaultWidth:"full"}),dateTime:nt({formats:Zy,defaultWidth:"full"})},ZE=["domenica","lunedì","martedì","mercoledì","giovedì","venerdì","sabato"];function e4(e){switch(e){case 0:return"'domenica scorsa alle' p";default:return"'"+ZE[e]+" scorso alle' p"}}function Um(e){return"'"+ZE[e]+" alle' p"}function t4(e){switch(e){case 0:return"'domenica prossima alle' p";default:return"'"+ZE[e]+" prossimo alle' p"}}var n4={lastWeek:function(t,n,a){var s=t.getUTCDay();return Ao(t,n,a)?Um(s):e4(s)},yesterday:"'ieri alle' p",today:"'oggi alle' p",tomorrow:"'domani alle' p",nextWeek:function(t,n,a){var s=t.getUTCDay();return Ao(t,n,a)?Um(s):t4(s)},other:"P"},a4=function(t,n,a,s){var r=n4[t];return typeof r=="function"?r(n,a,s):r},s4={narrow:["aC","dC"],abbreviated:["a.C.","d.C."],wide:["avanti Cristo","dopo Cristo"]},r4={narrow:["1","2","3","4"],abbreviated:["T1","T2","T3","T4"],wide:["1º trimestre","2º trimestre","3º trimestre","4º trimestre"]},o4={narrow:["G","F","M","A","M","G","L","A","S","O","N","D"],abbreviated:["gen","feb","mar","apr","mag","giu","lug","ago","set","ott","nov","dic"],wide:["gennaio","febbraio","marzo","aprile","maggio","giugno","luglio","agosto","settembre","ottobre","novembre","dicembre"]},i4={narrow:["D","L","M","M","G","V","S"],short:["dom","lun","mar","mer","gio","ven","sab"],abbreviated:["dom","lun","mar","mer","gio","ven","sab"],wide:["domenica","lunedì","martedì","mercoledì","giovedì","venerdì","sabato"]},u4={narrow:{am:"m.",pm:"p.",midnight:"mezzanotte",noon:"mezzogiorno",morning:"mattina",afternoon:"pomeriggio",evening:"sera",night:"notte"},abbreviated:{am:"AM",pm:"PM",midnight:"mezzanotte",noon:"mezzogiorno",morning:"mattina",afternoon:"pomeriggio",evening:"sera",night:"notte"},wide:{am:"AM",pm:"PM",midnight:"mezzanotte",noon:"mezzogiorno",morning:"mattina",afternoon:"pomeriggio",evening:"sera",night:"notte"}},l4={narrow:{am:"m.",pm:"p.",midnight:"mezzanotte",noon:"mezzogiorno",morning:"di mattina",afternoon:"del pomeriggio",evening:"di sera",night:"di notte"},abbreviated:{am:"AM",pm:"PM",midnight:"mezzanotte",noon:"mezzogiorno",morning:"di mattina",afternoon:"del pomeriggio",evening:"di sera",night:"di notte"},wide:{am:"AM",pm:"PM",midnight:"mezzanotte",noon:"mezzogiorno",morning:"di mattina",afternoon:"del pomeriggio",evening:"di sera",night:"di notte"}},c4=function(t,n){var a=Number(t);return String(a)},d4={ordinalNumber:c4,era:Ce({values:s4,defaultWidth:"wide"}),quarter:Ce({values:r4,defaultWidth:"wide",argumentCallback:function(t){return t-1}}),month:Ce({values:o4,defaultWidth:"wide"}),day:Ce({values:i4,defaultWidth:"wide"}),dayPeriod:Ce({values:u4,defaultWidth:"wide",formattingValues:l4,defaultFormattingWidth:"wide"})},E4=/^(\d+)(º)?/i,f4=/\d+/i,p4={narrow:/^(aC|dC)/i,abbreviated:/^(a\.?\s?C\.?|a\.?\s?e\.?\s?v\.?|d\.?\s?C\.?|e\.?\s?v\.?)/i,wide:/^(avanti Cristo|avanti Era Volgare|dopo Cristo|Era Volgare)/i},m4={any:[/^a/i,/^(d|e)/i]},_4={narrow:/^[1234]/i,abbreviated:/^t[1234]/i,wide:/^[1234](º)? trimestre/i},T4={any:[/1/i,/2/i,/3/i,/4/i]},h4={narrow:/^[gfmalsond]/i,abbreviated:/^(gen|feb|mar|apr|mag|giu|lug|ago|set|ott|nov|dic)/i,wide:/^(gennaio|febbraio|marzo|aprile|maggio|giugno|luglio|agosto|settembre|ottobre|novembre|dicembre)/i},S4={narrow:[/^g/i,/^f/i,/^m/i,/^a/i,/^m/i,/^g/i,/^l/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ge/i,/^f/i,/^mar/i,/^ap/i,/^mag/i,/^gi/i,/^l/i,/^ag/i,/^s/i,/^o/i,/^n/i,/^d/i]},A4={narrow:/^[dlmgvs]/i,short:/^(do|lu|ma|me|gi|ve|sa)/i,abbreviated:/^(dom|lun|mar|mer|gio|ven|sab)/i,wide:/^(domenica|luned[i|ì]|marted[i|ì]|mercoled[i|ì]|gioved[i|ì]|venerd[i|ì]|sabato)/i},O4={narrow:[/^d/i,/^l/i,/^m/i,/^m/i,/^g/i,/^v/i,/^s/i],any:[/^d/i,/^l/i,/^ma/i,/^me/i,/^g/i,/^v/i,/^s/i]},g4={narrow:/^(a|m\.|p|mezzanotte|mezzogiorno|(di|del) (mattina|pomeriggio|sera|notte))/i,any:/^([ap]\.?\s?m\.?|mezzanotte|mezzogiorno|(di|del) (mattina|pomeriggio|sera|notte))/i},I4={any:{am:/^a/i,pm:/^p/i,midnight:/^mezza/i,noon:/^mezzo/i,morning:/mattina/i,afternoon:/pomeriggio/i,evening:/sera/i,night:/notte/i}},R4={ordinalNumber:Pn({matchPattern:E4,parsePattern:f4,valueCallback:function(t){return parseInt(t,10)}}),era:De({matchPatterns:p4,defaultMatchWidth:"wide",parsePatterns:m4,defaultParseWidth:"any"}),quarter:De({matchPatterns:_4,defaultMatchWidth:"wide",parsePatterns:T4,defaultParseWidth:"any",valueCallback:function(t){return t+1}}),month:De({matchPatterns:h4,defaultMatchWidth:"wide",parsePatterns:S4,defaultParseWidth:"any"}),day:De({matchPatterns:A4,defaultMatchWidth:"wide",parsePatterns:O4,defaultParseWidth:"any"}),dayPeriod:De({matchPatterns:g4,defaultMatchWidth:"any",parsePatterns:I4,defaultParseWidth:"any"})},N4={code:"it",formatDistance:Yy,formatLong:Jy,formatRelative:a4,localize:d4,match:R4,options:{weekStartsOn:1,firstWeekContainsDate:4}},v4={lessThanXSeconds:{one:"mindre enn ett sekund",other:"mindre enn {{count}} sekunder"},xSeconds:{one:"ett sekund",other:"{{count}} sekunder"},halfAMinute:"et halvt minutt",lessThanXMinutes:{one:"mindre enn ett minutt",other:"mindre enn {{count}} minutter"},xMinutes:{one:"ett minutt",other:"{{count}} minutter"},aboutXHours:{one:"omtrent en time",other:"omtrent {{count}} timer"},xHours:{one:"en time",other:"{{count}} timer"},xDays:{one:"en dag",other:"{{count}} dager"},aboutXWeeks:{one:"omtrent en uke",other:"omtrent {{count}} uker"},xWeeks:{one:"en uke",other:"{{count}} uker"},aboutXMonths:{one:"omtrent en måned",other:"omtrent {{count}} måneder"},xMonths:{one:"en måned",other:"{{count}} måneder"},aboutXYears:{one:"omtrent ett år",other:"omtrent {{count}} år"},xYears:{one:"ett år",other:"{{count}} år"},overXYears:{one:"over ett år",other:"over {{count}} år"},almostXYears:{one:"nesten ett år",other:"nesten {{count}} år"}},b4=function(t,n,a){var s,r=v4[t];return typeof r=="string"?s=r:n===1?s=r.one:s=r.other.replace("{{count}}",String(n)),a!=null&&a.addSuffix?a.comparison&&a.comparison>0?"om "+s:s+" siden":s},C4={full:"EEEE d. MMMM y",long:"d. MMMM y",medium:"d. MMM y",short:"dd.MM.y"},D4={full:"'kl'. HH:mm:ss zzzz",long:"HH:mm:ss z",medium:"HH:mm:ss",short:"HH:mm"},P4={full:"{{date}} 'kl.' {{time}}",long:"{{date}} 'kl.' {{time}}",medium:"{{date}} {{time}}",short:"{{date}} {{time}}"},L4={date:nt({formats:C4,defaultWidth:"full"}),time:nt({formats:D4,defaultWidth:"full"}),dateTime:nt({formats:P4,defaultWidth:"full"})},y4={lastWeek:"'forrige' eeee 'kl.' p",yesterday:"'i går kl.' p",today:"'i dag kl.' p",tomorrow:"'i morgen kl.' p",nextWeek:"EEEE 'kl.' p",other:"P"},$4=function(t,n,a,s){return y4[t]},U4={narrow:["f.Kr.","e.Kr."],abbreviated:["f.Kr.","e.Kr."],wide:["før Kristus","etter Kristus"]},k4={narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1. kvartal","2. kvartal","3. kvartal","4. kvartal"]},w4={narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["jan.","feb.","mars","apr.","mai","juni","juli","aug.","sep.","okt.","nov.","des."],wide:["januar","februar","mars","april","mai","juni","juli","august","september","oktober","november","desember"]},M4={narrow:["S","M","T","O","T","F","L"],short:["sø","ma","ti","on","to","fr","lø"],abbreviated:["søn","man","tir","ons","tor","fre","lør"],wide:["søndag","mandag","tirsdag","onsdag","torsdag","fredag","lørdag"]},W4={narrow:{am:"a",pm:"p",midnight:"midnatt",noon:"middag",morning:"på morg.",afternoon:"på etterm.",evening:"på kvelden",night:"på natten"},abbreviated:{am:"a.m.",pm:"p.m.",midnight:"midnatt",noon:"middag",morning:"på morg.",afternoon:"på etterm.",evening:"på kvelden",night:"på natten"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnatt",noon:"middag",morning:"på morgenen",afternoon:"på ettermiddagen",evening:"på kvelden",night:"på natten"}},F4=function(t,n){var a=Number(t);return a+"."},z4={ordinalNumber:F4,era:Ce({values:U4,defaultWidth:"wide"}),quarter:Ce({values:k4,defaultWidth:"wide",argumentCallback:function(t){return t-1}}),month:Ce({values:w4,defaultWidth:"wide"}),day:Ce({values:M4,defaultWidth:"wide"}),dayPeriod:Ce({values:W4,defaultWidth:"wide"})},x4=/^(\d+)\.?/i,B4=/\d+/i,G4={narrow:/^(f\.? ?Kr\.?|fvt\.?|e\.? ?Kr\.?|evt\.?)/i,abbreviated:/^(f\.? ?Kr\.?|fvt\.?|e\.? ?Kr\.?|evt\.?)/i,wide:/^(før Kristus|før vår tid|etter Kristus|vår tid)/i},H4={any:[/^f/i,/^e/i]},V4={narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](\.)? kvartal/i},K4={any:[/1/i,/2/i,/3/i,/4/i]},j4={narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mars?|apr|mai|juni?|juli?|aug|sep|okt|nov|des)\.?/i,wide:/^(januar|februar|mars|april|mai|juni|juli|august|september|oktober|november|desember)/i},q4={narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^mai/i,/^jun/i,/^jul/i,/^aug/i,/^s/i,/^o/i,/^n/i,/^d/i]},Y4={narrow:/^[smtofl]/i,short:/^(sø|ma|ti|on|to|fr|lø)/i,abbreviated:/^(søn|man|tir|ons|tor|fre|lør)/i,wide:/^(søndag|mandag|tirsdag|onsdag|torsdag|fredag|lørdag)/i},X4={any:[/^s/i,/^m/i,/^ti/i,/^o/i,/^to/i,/^f/i,/^l/i]},Q4={narrow:/^(midnatt|middag|(på) (morgenen|ettermiddagen|kvelden|natten)|[ap])/i,any:/^([ap]\.?\s?m\.?|midnatt|middag|(på) (morgenen|ettermiddagen|kvelden|natten))/i},Z4={any:{am:/^a(\.?\s?m\.?)?$/i,pm:/^p(\.?\s?m\.?)?$/i,midnight:/^midn/i,noon:/^midd/i,morning:/morgen/i,afternoon:/ettermiddag/i,evening:/kveld/i,night:/natt/i}},J4={ordinalNumber:Pn({matchPattern:x4,parsePattern:B4,valueCallback:function(t){return parseInt(t,10)}}),era:De({matchPatterns:G4,defaultMatchWidth:"wide",parsePatterns:H4,defaultParseWidth:"any"}),quarter:De({matchPatterns:V4,defaultMatchWidth:"wide",parsePatterns:K4,defaultParseWidth:"any",valueCallback:function(t){return t+1}}),month:De({matchPatterns:j4,defaultMatchWidth:"wide",parsePatterns:q4,defaultParseWidth:"any"}),day:De({matchPatterns:Y4,defaultMatchWidth:"wide",parsePatterns:X4,defaultParseWidth:"any"}),dayPeriod:De({matchPatterns:Q4,defaultMatchWidth:"any",parsePatterns:Z4,defaultParseWidth:"any"})},e$={code:"nb",formatDistance:b4,formatLong:L4,formatRelative:$4,localize:z4,match:J4,options:{weekStartsOn:1,firstWeekContainsDate:4}},t$={lessThanXSeconds:{one:"minder dan een seconde",other:"minder dan {{count}} seconden"},xSeconds:{one:"1 seconde",other:"{{count}} seconden"},halfAMinute:"een halve minuut",lessThanXMinutes:{one:"minder dan een minuut",other:"minder dan {{count}} minuten"},xMinutes:{one:"een minuut",other:"{{count}} minuten"},aboutXHours:{one:"ongeveer 1 uur",other:"ongeveer {{count}} uur"},xHours:{one:"1 uur",other:"{{count}} uur"},xDays:{one:"1 dag",other:"{{count}} dagen"},aboutXWeeks:{one:"ongeveer 1 week",other:"ongeveer {{count}} weken"},xWeeks:{one:"1 week",other:"{{count}} weken"},aboutXMonths:{one:"ongeveer 1 maand",other:"ongeveer {{count}} maanden"},xMonths:{one:"1 maand",other:"{{count}} maanden"},aboutXYears:{one:"ongeveer 1 jaar",other:"ongeveer {{count}} jaar"},xYears:{one:"1 jaar",other:"{{count}} jaar"},overXYears:{one:"meer dan 1 jaar",other:"meer dan {{count}} jaar"},almostXYears:{one:"bijna 1 jaar",other:"bijna {{count}} jaar"}},n$=function(t,n,a){var s,r=t$[t];return typeof r=="string"?s=r:n===1?s=r.one:s=r.other.replace("{{count}}",String(n)),a!=null&&a.addSuffix?a.comparison&&a.comparison>0?"over "+s:s+" geleden":s},a$={full:"EEEE d MMMM y",long:"d MMMM y",medium:"d MMM y",short:"dd-MM-y"},s$={full:"HH:mm:ss zzzz",long:"HH:mm:ss z",medium:"HH:mm:ss",short:"HH:mm"},r$={full:"{{date}} 'om' {{time}}",long:"{{date}} 'om' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},o$={date:nt({formats:a$,defaultWidth:"full"}),time:nt({formats:s$,defaultWidth:"full"}),dateTime:nt({formats:r$,defaultWidth:"full"})},i$={lastWeek:"'afgelopen' eeee 'om' p",yesterday:"'gisteren om' p",today:"'vandaag om' p",tomorrow:"'morgen om' p",nextWeek:"eeee 'om' p",other:"P"},u$=function(t,n,a,s){return i$[t]},l$={narrow:["v.C.","n.C."],abbreviated:["v.Chr.","n.Chr."],wide:["voor Christus","na Christus"]},c$={narrow:["1","2","3","4"],abbreviated:["K1","K2","K3","K4"],wide:["1e kwartaal","2e kwartaal","3e kwartaal","4e kwartaal"]},d$={narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["jan.","feb.","mrt.","apr.","mei","jun.","jul.","aug.","sep.","okt.","nov.","dec."],wide:["januari","februari","maart","april","mei","juni","juli","augustus","september","oktober","november","december"]},E$={narrow:["Z","M","D","W","D","V","Z"],short:["zo","ma","di","wo","do","vr","za"],abbreviated:["zon","maa","din","woe","don","vri","zat"],wide:["zondag","maandag","dinsdag","woensdag","donderdag","vrijdag","zaterdag"]},f$={narrow:{am:"AM",pm:"PM",midnight:"middernacht",noon:"het middaguur",morning:"'s ochtends",afternoon:"'s middags",evening:"'s avonds",night:"'s nachts"},abbreviated:{am:"AM",pm:"PM",midnight:"middernacht",noon:"het middaguur",morning:"'s ochtends",afternoon:"'s middags",evening:"'s avonds",night:"'s nachts"},wide:{am:"AM",pm:"PM",midnight:"middernacht",noon:"het middaguur",morning:"'s ochtends",afternoon:"'s middags",evening:"'s avonds",night:"'s nachts"}},p$=function(t,n){var a=Number(t);return a+"e"},m$={ordinalNumber:p$,era:Ce({values:l$,defaultWidth:"wide"}),quarter:Ce({values:c$,defaultWidth:"wide",argumentCallback:function(t){return t-1}}),month:Ce({values:d$,defaultWidth:"wide"}),day:Ce({values:E$,defaultWidth:"wide"}),dayPeriod:Ce({values:f$,defaultWidth:"wide"})},_$=/^(\d+)e?/i,T$=/\d+/i,h$={narrow:/^([vn]\.? ?C\.?)/,abbreviated:/^([vn]\. ?Chr\.?)/,wide:/^((voor|na) Christus)/},S$={any:[/^v/,/^n/]},A$={narrow:/^[1234]/i,abbreviated:/^K[1234]/i,wide:/^[1234]e kwartaal/i},O$={any:[/1/i,/2/i,/3/i,/4/i]},g$={narrow:/^[jfmasond]/i,abbreviated:/^(jan.|feb.|mrt.|apr.|mei|jun.|jul.|aug.|sep.|okt.|nov.|dec.)/i,wide:/^(januari|februari|maart|april|mei|juni|juli|augustus|september|oktober|november|december)/i},I$={narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^jan/i,/^feb/i,/^m(r|a)/i,/^apr/i,/^mei/i,/^jun/i,/^jul/i,/^aug/i,/^sep/i,/^okt/i,/^nov/i,/^dec/i]},R$={narrow:/^[zmdwv]/i,short:/^(zo|ma|di|wo|do|vr|za)/i,abbreviated:/^(zon|maa|din|woe|don|vri|zat)/i,wide:/^(zondag|maandag|dinsdag|woensdag|donderdag|vrijdag|zaterdag)/i},N$={narrow:[/^z/i,/^m/i,/^d/i,/^w/i,/^d/i,/^v/i,/^z/i],any:[/^zo/i,/^ma/i,/^di/i,/^wo/i,/^do/i,/^vr/i,/^za/i]},v$={any:/^(am|pm|middernacht|het middaguur|'s (ochtends|middags|avonds|nachts))/i},b$={any:{am:/^am/i,pm:/^pm/i,midnight:/^middernacht/i,noon:/^het middaguur/i,morning:/ochtend/i,afternoon:/middag/i,evening:/avond/i,night:/nacht/i}},C$={ordinalNumber:Pn({matchPattern:_$,parsePattern:T$,valueCallback:function(t){return parseInt(t,10)}}),era:De({matchPatterns:h$,defaultMatchWidth:"wide",parsePatterns:S$,defaultParseWidth:"any"}),quarter:De({matchPatterns:A$,defaultMatchWidth:"wide",parsePatterns:O$,defaultParseWidth:"any",valueCallback:function(t){return t+1}}),month:De({matchPatterns:g$,defaultMatchWidth:"wide",parsePatterns:I$,defaultParseWidth:"any"}),day:De({matchPatterns:R$,defaultMatchWidth:"wide",parsePatterns:N$,defaultParseWidth:"any"}),dayPeriod:De({matchPatterns:v$,defaultMatchWidth:"any",parsePatterns:b$,defaultParseWidth:"any"})},D$={code:"nl",formatDistance:n$,formatLong:o$,formatRelative:u$,localize:m$,match:C$,options:{weekStartsOn:1,firstWeekContainsDate:4}},P$={lessThanXSeconds:{one:{regular:"mniej niż sekunda",past:"mniej niż sekundę",future:"mniej niż sekundę"},twoFour:"mniej niż {{count}} sekundy",other:"mniej niż {{count}} sekund"},xSeconds:{one:{regular:"sekunda",past:"sekundę",future:"sekundę"},twoFour:"{{count}} sekundy",other:"{{count}} sekund"},halfAMinute:{one:"pół minuty",twoFour:"pół minuty",other:"pół minuty"},lessThanXMinutes:{one:{regular:"mniej niż minuta",past:"mniej niż minutę",future:"mniej niż minutę"},twoFour:"mniej niż {{count}} minuty",other:"mniej niż {{count}} minut"},xMinutes:{one:{regular:"minuta",past:"minutę",future:"minutę"},twoFour:"{{count}} minuty",other:"{{count}} minut"},aboutXHours:{one:{regular:"około godziny",past:"około godziny",future:"około godzinę"},twoFour:"około {{count}} godziny",other:"około {{count}} godzin"},xHours:{one:{regular:"godzina",past:"godzinę",future:"godzinę"},twoFour:"{{count}} godziny",other:"{{count}} godzin"},xDays:{one:{regular:"dzień",past:"dzień",future:"1 dzień"},twoFour:"{{count}} dni",other:"{{count}} dni"},aboutXWeeks:{one:"około tygodnia",twoFour:"około {{count}} tygodni",other:"około {{count}} tygodni"},xWeeks:{one:"tydzień",twoFour:"{{count}} tygodnie",other:"{{count}} tygodni"},aboutXMonths:{one:"około miesiąc",twoFour:"około {{count}} miesiące",other:"około {{count}} miesięcy"},xMonths:{one:"miesiąc",twoFour:"{{count}} miesiące",other:"{{count}} miesięcy"},aboutXYears:{one:"około rok",twoFour:"około {{count}} lata",other:"około {{count}} lat"},xYears:{one:"rok",twoFour:"{{count}} lata",other:"{{count}} lat"},overXYears:{one:"ponad rok",twoFour:"ponad {{count}} lata",other:"ponad {{count}} lat"},almostXYears:{one:"prawie rok",twoFour:"prawie {{count}} lata",other:"prawie {{count}} lat"}};function L$(e,t){if(t===1)return e.one;var n=t%100;if(n<=20&&n>10)return e.other;var a=n%10;return a>=2&&a<=4?e.twoFour:e.other}function Ac(e,t,n){var a=L$(e,t),s=typeof a=="string"?a:a[n];return s.replace("{{count}}",String(t))}var y$=function(t,n,a){var s=P$[t];return a!=null&&a.addSuffix?a.comparison&&a.comparison>0?"za "+Ac(s,n,"future"):Ac(s,n,"past")+" temu":Ac(s,n,"regular")},$$={full:"EEEE, do MMMM y",long:"do MMMM y",medium:"do MMM y",short:"dd.MM.y"},U$={full:"HH:mm:ss zzzz",long:"HH:mm:ss z",medium:"HH:mm:ss",short:"HH:mm"},k$={full:"{{date}} {{time}}",long:"{{date}} {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},w$={date:nt({formats:$$,defaultWidth:"full"}),time:nt({formats:U$,defaultWidth:"full"}),dateTime:nt({formats:k$,defaultWidth:"full"})},M$={masculine:"ostatni",feminine:"ostatnia"},W$={masculine:"ten",feminine:"ta"},F$={masculine:"następny",feminine:"następna"},z$={0:"feminine",1:"masculine",2:"masculine",3:"feminine",4:"masculine",5:"masculine",6:"feminine"};function km(e,t,n,a){var s;if(Ao(t,n,a))s=W$;else if(e==="lastWeek")s=M$;else if(e==="nextWeek")s=F$;else throw new Error("Cannot determine adjectives for token ".concat(e));var r=t.getUTCDay(),o=z$[r],i=s[o];return"'".concat(i,"' eeee 'o' p")}var x$={lastWeek:km,yesterday:"'wczoraj o' p",today:"'dzisiaj o' p",tomorrow:"'jutro o' p",nextWeek:km,other:"P"},B$=function(t,n,a,s){var r=x$[t];return typeof r=="function"?r(t,n,a,s):r},G$={narrow:["p.n.e.","n.e."],abbreviated:["p.n.e.","n.e."],wide:["przed naszą erą","naszej ery"]},H$={narrow:["1","2","3","4"],abbreviated:["I kw.","II kw.","III kw.","IV kw."],wide:["I kwartał","II kwartał","III kwartał","IV kwartał"]},V$={narrow:["S","L","M","K","M","C","L","S","W","P","L","G"],abbreviated:["sty","lut","mar","kwi","maj","cze","lip","sie","wrz","paź","lis","gru"],wide:["styczeń","luty","marzec","kwiecień","maj","czerwiec","lipiec","sierpień","wrzesień","październik","listopad","grudzień"]},K$={narrow:["s","l","m","k","m","c","l","s","w","p","l","g"],abbreviated:["sty","lut","mar","kwi","maj","cze","lip","sie","wrz","paź","lis","gru"],wide:["stycznia","lutego","marca","kwietnia","maja","czerwca","lipca","sierpnia","września","października","listopada","grudnia"]},j$={narrow:["N","P","W","Ś","C","P","S"],short:["nie","pon","wto","śro","czw","pią","sob"],abbreviated:["niedz.","pon.","wt.","śr.","czw.","pt.","sob."],wide:["niedziela","poniedziałek","wtorek","środa","czwartek","piątek","sobota"]},q$={narrow:["n","p","w","ś","c","p","s"],short:["nie","pon","wto","śro","czw","pią","sob"],abbreviated:["niedz.","pon.","wt.","śr.","czw.","pt.","sob."],wide:["niedziela","poniedziałek","wtorek","środa","czwartek","piątek","sobota"]},Y$={narrow:{am:"a",pm:"p",midnight:"półn.",noon:"poł",morning:"rano",afternoon:"popoł.",evening:"wiecz.",night:"noc"},abbreviated:{am:"AM",pm:"PM",midnight:"północ",noon:"południe",morning:"rano",afternoon:"popołudnie",evening:"wieczór",night:"noc"},wide:{am:"AM",pm:"PM",midnight:"północ",noon:"południe",morning:"rano",afternoon:"popołudnie",evening:"wieczór",night:"noc"}},X$={narrow:{am:"a",pm:"p",midnight:"o półn.",noon:"w poł.",morning:"rano",afternoon:"po poł.",evening:"wiecz.",night:"w nocy"},abbreviated:{am:"AM",pm:"PM",midnight:"o północy",noon:"w południe",morning:"rano",afternoon:"po południu",evening:"wieczorem",night:"w nocy"},wide:{am:"AM",pm:"PM",midnight:"o północy",noon:"w południe",morning:"rano",afternoon:"po południu",evening:"wieczorem",night:"w nocy"}},Q$=function(t,n){return String(t)},Z$={ordinalNumber:Q$,era:Ce({values:G$,defaultWidth:"wide"}),quarter:Ce({values:H$,defaultWidth:"wide",argumentCallback:function(t){return t-1}}),month:Ce({values:V$,defaultWidth:"wide",formattingValues:K$,defaultFormattingWidth:"wide"}),day:Ce({values:j$,defaultWidth:"wide",formattingValues:q$,defaultFormattingWidth:"wide"}),dayPeriod:Ce({values:Y$,defaultWidth:"wide",formattingValues:X$,defaultFormattingWidth:"wide"})},J$=/^(\d+)?/i,e6=/\d+/i,t6={narrow:/^(p\.?\s*n\.?\s*e\.?\s*|n\.?\s*e\.?\s*)/i,abbreviated:/^(p\.?\s*n\.?\s*e\.?\s*|n\.?\s*e\.?\s*)/i,wide:/^(przed\s*nasz(ą|a)\s*er(ą|a)|naszej\s*ery)/i},n6={any:[/^p/i,/^n/i]},a6={narrow:/^[1234]/i,abbreviated:/^(I|II|III|IV)\s*kw\.?/i,wide:/^(I|II|III|IV)\s*kwarta(ł|l)/i},s6={narrow:[/1/i,/2/i,/3/i,/4/i],any:[/^I kw/i,/^II kw/i,/^III kw/i,/^IV kw/i]},r6={narrow:/^[slmkcwpg]/i,abbreviated:/^(sty|lut|mar|kwi|maj|cze|lip|sie|wrz|pa(ź|z)|lis|gru)/i,wide:/^(stycznia|stycze(ń|n)|lutego|luty|marca|marzec|kwietnia|kwiecie(ń|n)|maja|maj|czerwca|czerwiec|lipca|lipiec|sierpnia|sierpie(ń|n)|wrze(ś|s)nia|wrzesie(ń|n)|pa(ź|z)dziernika|pa(ź|z)dziernik|listopada|listopad|grudnia|grudzie(ń|n))/i},o6={narrow:[/^s/i,/^l/i,/^m/i,/^k/i,/^m/i,/^c/i,/^l/i,/^s/i,/^w/i,/^p/i,/^l/i,/^g/i],any:[/^st/i,/^lu/i,/^mar/i,/^k/i,/^maj/i,/^c/i,/^lip/i,/^si/i,/^w/i,/^p/i,/^lis/i,/^g/i]},i6={narrow:/^[npwścs]/i,short:/^(nie|pon|wto|(ś|s)ro|czw|pi(ą|a)|sob)/i,abbreviated:/^(niedz|pon|wt|(ś|s)r|czw|pt|sob)\.?/i,wide:/^(niedziela|poniedzia(ł|l)ek|wtorek|(ś|s)roda|czwartek|pi(ą|a)tek|sobota)/i},u6={narrow:[/^n/i,/^p/i,/^w/i,/^ś/i,/^c/i,/^p/i,/^s/i],abbreviated:[/^n/i,/^po/i,/^w/i,/^(ś|s)r/i,/^c/i,/^pt/i,/^so/i],any:[/^n/i,/^po/i,/^w/i,/^(ś|s)r/i,/^c/i,/^pi/i,/^so/i]},l6={narrow:/^(^a$|^p$|pó(ł|l)n\.?|o\s*pó(ł|l)n\.?|po(ł|l)\.?|w\s*po(ł|l)\.?|po\s*po(ł|l)\.?|rano|wiecz\.?|noc|w\s*nocy)/i,any:/^(am|pm|pó(ł|l)noc|o\s*pó(ł|l)nocy|po(ł|l)udnie|w\s*po(ł|l)udnie|popo(ł|l)udnie|po\s*po(ł|l)udniu|rano|wieczór|wieczorem|noc|w\s*nocy)/i},c6={narrow:{am:/^a$/i,pm:/^p$/i,midnight:/pó(ł|l)n/i,noon:/po(ł|l)/i,morning:/rano/i,afternoon:/po\s*po(ł|l)/i,evening:/wiecz/i,night:/noc/i},any:{am:/^am/i,pm:/^pm/i,midnight:/pó(ł|l)n/i,noon:/po(ł|l)/i,morning:/rano/i,afternoon:/po\s*po(ł|l)/i,evening:/wiecz/i,night:/noc/i}},d6={ordinalNumber:Pn({matchPattern:J$,parsePattern:e6,valueCallback:function(t){return parseInt(t,10)}}),era:De({matchPatterns:t6,defaultMatchWidth:"wide",parsePatterns:n6,defaultParseWidth:"any"}),quarter:De({matchPatterns:a6,defaultMatchWidth:"wide",parsePatterns:s6,defaultParseWidth:"any",valueCallback:function(t){return t+1}}),month:De({matchPatterns:r6,defaultMatchWidth:"wide",parsePatterns:o6,defaultParseWidth:"any"}),day:De({matchPatterns:i6,defaultMatchWidth:"wide",parsePatterns:u6,defaultParseWidth:"any"}),dayPeriod:De({matchPatterns:l6,defaultMatchWidth:"any",parsePatterns:c6,defaultParseWidth:"any"})},E6={code:"pl",formatDistance:y$,formatLong:w$,formatRelative:B$,localize:Z$,match:d6,options:{weekStartsOn:1,firstWeekContainsDate:4}},f6={lessThanXSeconds:{one:"menos de um segundo",other:"menos de {{count}} segundos"},xSeconds:{one:"1 segundo",other:"{{count}} segundos"},halfAMinute:"meio minuto",lessThanXMinutes:{one:"menos de um minuto",other:"menos de {{count}} minutos"},xMinutes:{one:"1 minuto",other:"{{count}} minutos"},aboutXHours:{one:"aproximadamente 1 hora",other:"aproximadamente {{count}} horas"},xHours:{one:"1 hora",other:"{{count}} horas"},xDays:{one:"1 dia",other:"{{count}} dias"},aboutXWeeks:{one:"aproximadamente 1 semana",other:"aproximadamente {{count}} semanas"},xWeeks:{one:"1 semana",other:"{{count}} semanas"},aboutXMonths:{one:"aproximadamente 1 mês",other:"aproximadamente {{count}} meses"},xMonths:{one:"1 mês",other:"{{count}} meses"},aboutXYears:{one:"aproximadamente 1 ano",other:"aproximadamente {{count}} anos"},xYears:{one:"1 ano",other:"{{count}} anos"},overXYears:{one:"mais de 1 ano",other:"mais de {{count}} anos"},almostXYears:{one:"quase 1 ano",other:"quase {{count}} anos"}},p6=function(t,n,a){var s,r=f6[t];return typeof r=="string"?s=r:n===1?s=r.one:s=r.other.replace("{{count}}",String(n)),a!=null&&a.addSuffix?a.comparison&&a.comparison>0?"daqui a "+s:"há "+s:s},m6={full:"EEEE, d 'de' MMMM 'de' y",long:"d 'de' MMMM 'de' y",medium:"d 'de' MMM 'de' y",short:"dd/MM/y"},_6={full:"HH:mm:ss zzzz",long:"HH:mm:ss z",medium:"HH:mm:ss",short:"HH:mm"},T6={full:"{{date}} 'às' {{time}}",long:"{{date}} 'às' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},h6={date:nt({formats:m6,defaultWidth:"full"}),time:nt({formats:_6,defaultWidth:"full"}),dateTime:nt({formats:T6,defaultWidth:"full"})},S6={lastWeek:function(t){var n=t.getUTCDay(),a=n===0||n===6?"último":"última";return"'"+a+"' eeee 'às' p"},yesterday:"'ontem às' p",today:"'hoje às' p",tomorrow:"'amanhã às' p",nextWeek:"eeee 'às' p",other:"P"},A6=function(t,n,a,s){var r=S6[t];return typeof r=="function"?r(n):r},O6={narrow:["aC","dC"],abbreviated:["a.C.","d.C."],wide:["antes de Cristo","depois de Cristo"]},g6={narrow:["1","2","3","4"],abbreviated:["T1","T2","T3","T4"],wide:["1º trimestre","2º trimestre","3º trimestre","4º trimestre"]},I6={narrow:["j","f","m","a","m","j","j","a","s","o","n","d"],abbreviated:["jan","fev","mar","abr","mai","jun","jul","ago","set","out","nov","dez"],wide:["janeiro","fevereiro","março","abril","maio","junho","julho","agosto","setembro","outubro","novembro","dezembro"]},R6={narrow:["d","s","t","q","q","s","s"],short:["dom","seg","ter","qua","qui","sex","sáb"],abbreviated:["dom","seg","ter","qua","qui","sex","sáb"],wide:["domingo","segunda-feira","terça-feira","quarta-feira","quinta-feira","sexta-feira","sábado"]},N6={narrow:{am:"AM",pm:"PM",midnight:"meia-noite",noon:"meio-dia",morning:"manhã",afternoon:"tarde",evening:"noite",night:"madrugada"},abbreviated:{am:"AM",pm:"PM",midnight:"meia-noite",noon:"meio-dia",morning:"manhã",afternoon:"tarde",evening:"noite",night:"madrugada"},wide:{am:"AM",pm:"PM",midnight:"meia-noite",noon:"meio-dia",morning:"manhã",afternoon:"tarde",evening:"noite",night:"madrugada"}},v6={narrow:{am:"AM",pm:"PM",midnight:"meia-noite",noon:"meio-dia",morning:"da manhã",afternoon:"da tarde",evening:"da noite",night:"da madrugada"},abbreviated:{am:"AM",pm:"PM",midnight:"meia-noite",noon:"meio-dia",morning:"da manhã",afternoon:"da tarde",evening:"da noite",night:"da madrugada"},wide:{am:"AM",pm:"PM",midnight:"meia-noite",noon:"meio-dia",morning:"da manhã",afternoon:"da tarde",evening:"da noite",night:"da madrugada"}},b6=function(t,n){var a=Number(t);return a+"º"},C6={ordinalNumber:b6,era:Ce({values:O6,defaultWidth:"wide"}),quarter:Ce({values:g6,defaultWidth:"wide",argumentCallback:function(t){return t-1}}),month:Ce({values:I6,defaultWidth:"wide"}),day:Ce({values:R6,defaultWidth:"wide"}),dayPeriod:Ce({values:N6,defaultWidth:"wide",formattingValues:v6,defaultFormattingWidth:"wide"})},D6=/^(\d+)(º|ª)?/i,P6=/\d+/i,L6={narrow:/^(ac|dc|a|d)/i,abbreviated:/^(a\.?\s?c\.?|a\.?\s?e\.?\s?c\.?|d\.?\s?c\.?|e\.?\s?c\.?)/i,wide:/^(antes de cristo|antes da era comum|depois de cristo|era comum)/i},y6={any:[/^ac/i,/^dc/i],wide:[/^(antes de cristo|antes da era comum)/i,/^(depois de cristo|era comum)/i]},$6={narrow:/^[1234]/i,abbreviated:/^T[1234]/i,wide:/^[1234](º|ª)? trimestre/i},U6={any:[/1/i,/2/i,/3/i,/4/i]},k6={narrow:/^[jfmasond]/i,abbreviated:/^(jan|fev|mar|abr|mai|jun|jul|ago|set|out|nov|dez)/i,wide:/^(janeiro|fevereiro|março|abril|maio|junho|julho|agosto|setembro|outubro|novembro|dezembro)/i},w6={narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ab/i,/^mai/i,/^jun/i,/^jul/i,/^ag/i,/^s/i,/^o/i,/^n/i,/^d/i]},M6={narrow:/^[dstq]/i,short:/^(dom|seg|ter|qua|qui|sex|s[áa]b)/i,abbreviated:/^(dom|seg|ter|qua|qui|sex|s[áa]b)/i,wide:/^(domingo|segunda-?\s?feira|terça-?\s?feira|quarta-?\s?feira|quinta-?\s?feira|sexta-?\s?feira|s[áa]bado)/i},W6={narrow:[/^d/i,/^s/i,/^t/i,/^q/i,/^q/i,/^s/i,/^s/i],any:[/^d/i,/^seg/i,/^t/i,/^qua/i,/^qui/i,/^sex/i,/^s[áa]/i]},F6={narrow:/^(a|p|meia-?\s?noite|meio-?\s?dia|(da) (manh[ãa]|tarde|noite|madrugada))/i,any:/^([ap]\.?\s?m\.?|meia-?\s?noite|meio-?\s?dia|(da) (manh[ãa]|tarde|noite|madrugada))/i},z6={any:{am:/^a/i,pm:/^p/i,midnight:/^meia/i,noon:/^meio/i,morning:/manh[ãa]/i,afternoon:/tarde/i,evening:/noite/i,night:/madrugada/i}},x6={ordinalNumber:Pn({matchPattern:D6,parsePattern:P6,valueCallback:function(t){return parseInt(t,10)}}),era:De({matchPatterns:L6,defaultMatchWidth:"wide",parsePatterns:y6,defaultParseWidth:"any"}),quarter:De({matchPatterns:$6,defaultMatchWidth:"wide",parsePatterns:U6,defaultParseWidth:"any",valueCallback:function(t){return t+1}}),month:De({matchPatterns:k6,defaultMatchWidth:"wide",parsePatterns:w6,defaultParseWidth:"any"}),day:De({matchPatterns:M6,defaultMatchWidth:"wide",parsePatterns:W6,defaultParseWidth:"any"}),dayPeriod:De({matchPatterns:F6,defaultMatchWidth:"any",parsePatterns:z6,defaultParseWidth:"any"})},B6={code:"pt",formatDistance:p6,formatLong:h6,formatRelative:A6,localize:C6,match:x6,options:{weekStartsOn:1,firstWeekContainsDate:4}};const G6=e=>["bg","cs","de","en","es","eu","fr","gl","it","nb","nl","pl","pt"].includes(e),Ls={bg:vD,cs:sP,de:$P,en:Qo,es:cL,eu:xL,fr:_y,gl:jy,it:N4,nb:e$,nl:D$,pl:E6,pt:B6},or={bg:"български",cs:"Česky (73%)",de:"Deutsch",en:"English",es:"Español",eu:"Euskara (99%)",fr:"Français",gl:"Galego",it:"Italiano (82%)",nl:"Nederlands (99%)",nb:"Norsk bokmål (52%)",pl:"Polski (91%)",pt:"Português (98%)"},Sd=Object.keys(or).map(e=>({label:or[e],value:e})),yl=e=>(ot("data-v-05e4ca9e"),e=e(),it(),e),H6={id:"nav"},V6={class:"nav-container"},K6={class:"nav-app-name"},j6=yl(()=>d("i",{class:"fa fa-bars hamburger-icon"},null,-1)),q6=[j6],Y6={class:"nav-items-app-menu"},X6={key:0,class:"nav-items-group"},Q6=yl(()=>d("div",{class:"nav-item nav-separator"},null,-1)),Z6={class:"nav-items-user-menu"},J6={key:0,class:"nav-items-group"},eU={class:"nav-item nav-profile-img"},tU=["title"],nU=yl(()=>d("i",{class:"fa fa-sign-out nav-button-fa","aria-hidden":"true"},null,-1)),aU={class:"nav-button-text"},sU={key:1,class:"nav-items-group"},rU={class:"theme-button"},oU=["title"],iU={key:0,class:"fa nav-button-fa fa-moon","aria-hidden":"true"},uU={key:1,class:"clear-theme",src:Ab,alt:"","aria-hidden":"true"},lU={class:"nav-button-text"},cU=yl(()=>d("i",{class:"fa fa-language","aria-hidden":"true"},null,-1)),dU=te({__name:"NavBar",emits:["menuInteraction"],setup(e,{emit:t}){const n=t,a=$e(),s=w(()=>a.getters[Q.GETTERS.AUTH_USER_PROFILE]),r=w(()=>a.getters[Q.GETTERS.IS_AUTHENTICATED]),o=w(()=>a.getters[j.GETTERS.LANGUAGE]),i=de(!1),u=de(!1),l=w(()=>a.getters[j.GETTERS.DARK_MODE]),c=w(()=>Dl(l.value));ft(()=>R());function f(){i.value=!0,n("menuInteraction",!0)}function E(){i.value=!1,n("menuInteraction",!1)}function p(N){a.dispatch(j.ACTIONS.UPDATE_APPLICATION_LANGUAGE,N.value)}function T(){a.dispatch(Q.ACTIONS.LOGOUT),u.value=!1}function O(N){u.value=N}function R(){c.value?document.body.setAttribute("data-theme","dark"):document.body.removeAttribute("data-theme")}function g(){a.commit(j.MUTATIONS.UPDATE_DARK_MODE,!c.value)}return We(()=>c.value,()=>{R()}),(N,S)=>{const A=oe("Modal"),v=oe("router-link"),D=oe("Dropdown");return h(),I("header",H6,[u.value?(h(),Y(A,{key:0,title:N.$t("common.CONFIRMATION"),message:N.$t("user.LOGOUT_CONFIRMATION"),onConfirmAction:T,onCancelAction:S[0]||(S[0]=P=>O(!1)),onKeydown:S[1]||(S[1]=Je(P=>O(!1),["esc"]))},null,8,["title","message"])):M("",!0),d("div",V6,[d("div",K6,[W(v,{class:"nav-item app-name",to:"/"},{default:le(()=>[V(" FitTrackee ")]),_:1})]),d("div",{class:pe(["nav-icon-open",{"menu-open":i.value}])},[d("button",{class:"menu-button transparent",onClick:S[2]||(S[2]=P=>f())},q6)],2),d("div",{class:pe(["nav-items",{"menu-open":i.value}])},[d("div",{class:"nav-items-close",onClick:E},[W(v,{class:"nav-item app-name",to:"/"},{default:le(()=>[V(" FitTrackee ")]),_:1}),d("button",{class:"menu-button transparent",onClick:S[3]||(S[3]=P=>E())},[d("i",{class:pe(["fa fa-close close-icon nav-item",{"menu-closed":!i.value}])},null,2)])]),d("div",Y6,[r.value?(h(),I("div",X6,[W(v,{class:"nav-item",to:"/",onClick:S[4]||(S[4]=P=>E())},{default:le(()=>[V(_(N.$t("dashboard.DASHBOARD")),1)]),_:1}),W(v,{class:"nav-item",to:"/workouts",onClick:S[5]||(S[5]=P=>E())},{default:le(()=>[V(_(He(N.$t("workouts.WORKOUT",2))),1)]),_:1}),W(v,{class:"nav-item",to:"/statistics",onClick:S[6]||(S[6]=P=>E())},{default:le(()=>[V(_(N.$t("statistics.STATISTICS")),1)]),_:1}),W(v,{class:"nav-item",to:"/workouts/add",onClick:S[7]||(S[7]=P=>E())},{default:le(()=>[V(_(N.$t("workouts.ADD_WORKOUT")),1)]),_:1}),r.value&&s.value.admin?(h(),Y(v,{key:0,class:"nav-item",to:"/admin",onClick:S[8]||(S[8]=P=>E())},{default:le(()=>[V(_(N.$t("admin.ADMIN")),1)]),_:1})):M("",!0),Q6])):M("",!0)]),d("div",Z6,[r.value?(h(),I("div",J6,[d("div",eU,[W(Ko,{user:s.value},null,8,["user"])]),W(v,{class:"nav-item",to:"/profile",onClick:E},{default:le(()=>[V(_(s.value.username),1)]),_:1}),d("button",{class:"nav-button logout-button transparent",onClick:S[9]||(S[9]=P=>O(!0)),title:N.$t("user.LOGOUT")},[nU,d("span",aU,_(N.$t("user.LOGOUT")),1)],8,tU)])):(h(),I("div",sU,[W(v,{class:"nav-item",to:"/login",onClick:E},{default:le(()=>[V(_(N.$t("user.LOGIN")),1)]),_:1}),W(v,{class:"nav-item",to:"/register",onClick:E},{default:le(()=>[V(_(N.$t("user.REGISTER")),1)]),_:1})])),d("div",rU,[d("button",{class:"nav-button transparent",onClick:g,title:N.$t("user.TOGGLE_THEME")},[c.value?(h(),I("i",iU)):(h(),I("img",uU)),d("span",lU,_(N.$t("user.TOGGLE_THEME")),1)],8,oU)]),m(Sd)&&o.value?(h(),Y(D,{key:2,class:"nav-item",options:m(Sd),selected:o.value,onSelected:p,buttonLabel:N.$t("user.LANGUAGE"),listLabel:N.$t("user.LANGUAGE",0),isMenuOpen:i.value},{default:le(()=>[cU]),_:1},8,["options","selected","buttonLabel","listLabel","isMenuOpen"])):M("",!0)])],2)])])}}}),EU=ie(dU,[["__scopeId","data-v-05e4ca9e"]]),fU={name:"ErrorImg"},pU={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 -51 512 512"},mU=An('',1),_U=[mU];function TU(e,t,n,a,s,r){return h(),I("svg",pU,_U)}const JE=ie(fU,[["render",TU]]),hU={id:"no-config"},SU={class:"error-page"},AU={class:"error-img"},OU=["innerHTML"],gU=te({__name:"NoConfig",setup(e){return(t,n)=>(h(),I("div",hU,[d("div",SU,[d("div",AU,[W(JE)]),d("p",{class:"error-message",innerHTML:t.$t("error.APP_ERROR")},null,8,OU)])]))}}),IU=ie(gU,[["__scopeId","data-v-73140811"]]),RU=d("div",{id:"top"},null,-1),NU={key:0,class:"app-container"},vU={class:"app-loading"},bU={class:"container scroll"},CU=d("i",{class:"fa fa-chevron-up","aria-hidden":"true"},null,-1),DU=[CU],PU=te({__name:"App",setup(e){const t=$e(),n=w(()=>t.getters[j.GETTERS.APP_CONFIG]),a=w(()=>t.getters[j.GETTERS.APP_LOADING]),s=de(!1),r=de(!1);ft(()=>{c(),t.dispatch(j.ACTIONS.GET_APPLICATION_CONFIG)}),St(()=>u());function o(f){s.value=f}function i(f){return f.getBoundingClientRect().top=0}function u(){window.onscroll=()=>{const f=document.querySelector("#bottom");r.value=f!==null&&i(f)}}function l(){window.scrollTo({top:0,behavior:"smooth"}),setTimeout(()=>{r.value=!1},300)}function c(){let f="en";try{const E=navigator.language.split("-")[0];G6(E)&&(f=E)}catch{f="en"}t.dispatch(j.ACTIONS.UPDATE_APPLICATION_LANGUAGE,f)}return(f,E)=>{const p=oe("Loader"),T=oe("router-view");return h(),I(me,null,[RU,W(EU,{onMenuInteraction:o}),d("main",null,[a.value?(h(),I("div",NU,[d("div",vU,[W(p)])])):(h(),I("div",{key:1,class:pe(["app-container",{"hide-scroll":s.value}])},[n.value?(h(),Y(T,{key:0})):(h(),Y(IU,{key:1}))],2)),d("div",bU,[d("div",{class:pe(["scroll-button",{"display-button":r.value}]),onClick:l},DU,2)])]),n.value?(h(),Y(Sb,{key:0,version:n.value?n.value.version:"",adminContact:n.value.admin_contact},null,8,["version","adminContact"])):M("",!0)],64)}}}),LU={class:"alert-message"},yU=["innerHTML"],$U=te({__name:"AlertMessage",props:{message:{}},setup(e){const t=e,{message:n}=_e(t);return(a,s)=>(h(),I("div",LU,[d("div",{innerHTML:a.$t(m(n))},null,8,yU)]))}}),UU=ie($U,[["__scopeId","data-v-f7bf1117"]]),kU={},wU={class:"card"},MU={class:"card-title"},WU={class:"card-content"};function FU(e,t){return h(),I("div",wU,[d("div",MU,[$t(e.$slots,"title")]),d("div",WU,[$t(e.$slots,"content")])])}const oS=ie(kU,[["render",FU]]),zU={class:"custom-textarea"},xU=["id","name","maxLength","disabled"],BU={class:"remaining-chars"},GU=te({__name:"CustomTextArea",props:{name:{},charLimit:{default:500},disabled:{type:Boolean,default:!1},input:{default:""}},emits:["updateValue"],setup(e,{emit:t}){const n=e,a=t,s=de("");function r(o){a("updateValue",o.target.value)}return We(()=>n.input,o=>{s.value=o===null?"":o}),(o,i)=>(h(),I("div",zU,[Le(d("textarea",{id:o.name,name:o.name,maxLength:o.charLimit,disabled:o.disabled,"onUpdate:modelValue":i[0]||(i[0]=u=>s.value=u),onInput:r},null,40,xU),[[at,s.value]]),d("div",BU,_(o.$t("workouts.REMAINING_CHARS"))+": "+_(s.value.length)+"/"+_(o.charLimit),1)]))}}),HU=ie(GU,[["__scopeId","data-v-57267720"]]),_n={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"}},VU={metric:{imperial:3.280839895,metric:1},imperial:{metric:1/3.280839895,imperial:1}},Bt=(e,t,n,a=3)=>{const s=_n[t],r=_n[n],o=e*s.multiplier*VU[s.system][r.system]/r.multiplier;return a!==null?parseFloat(o.toFixed(a)):o},qi=(e,t,n)=>{const a=n?_n[e].defaultTarget:e;return n?Bt(t,e,a,2):t},wm=(e,t)=>{const n=t?e*1.8+32:e,a=t?" °F":"°C";return`${n===0?0:Number(n).toFixed(1)}${a}`},KU=(e,t)=>{const n=t?e*2.2369363:e,a=t?" mph":"m/s";return`${n===0?0:Number(n).toFixed(1)}${a}`},jU=te({__name:"Distance",props:{distance:{},unitFrom:{},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:a,distance:s,speed:r,strong:o,unitFrom:i,useImperialUnits:u}=_e(t),l=w(()=>u.value?_n[i.value].defaultTarget:i.value),c=w(()=>u.value?Bt(s.value,i.value,l.value,n.value):parseFloat(s.value.toFixed(n.value)));return(f,E)=>(h(),I(me,null,[d("span",{class:pe(["distance",{strong:m(o)}])},_(c.value),3),V(" "+_(" ")+" "),m(a)?(h(),I("span",{key:0,class:pe(["unit",{strong:m(o)}])},_(l.value)+_(m(r)?"/h":""),3)):M("",!0)],64))}}),qU=ie(jU,[["__scopeId","data-v-0f0f76cd"]]);/*! - * vue-router v4.4.3 - * (c) 2024 Eduardo San Martin Morote - * @license MIT - */const Xs=typeof document<"u";function YU(e){return e.__esModule||e[Symbol.toStringTag]==="Module"}const Tt=Object.assign;function Oc(e,t){const n={};for(const a in t){const s=t[a];n[a]=Kn(s)?s.map(e):e(s)}return n}const so=()=>{},Kn=Array.isArray,iS=/#/g,XU=/&/g,QU=/\//g,ZU=/=/g,JU=/\?/g,uS=/\+/g,ek=/%5B/g,tk=/%5D/g,lS=/%5E/g,nk=/%60/g,cS=/%7B/g,ak=/%7C/g,dS=/%7D/g,sk=/%20/g;function ef(e){return encodeURI(""+e).replace(ak,"|").replace(ek,"[").replace(tk,"]")}function rk(e){return ef(e).replace(cS,"{").replace(dS,"}").replace(lS,"^")}function Ad(e){return ef(e).replace(uS,"%2B").replace(sk,"+").replace(iS,"%23").replace(XU,"%26").replace(nk,"`").replace(cS,"{").replace(dS,"}").replace(lS,"^")}function ok(e){return Ad(e).replace(ZU,"%3D")}function ik(e){return ef(e).replace(iS,"%23").replace(JU,"%3F")}function uk(e){return e==null?"":ik(e).replace(QU,"%2F")}function Oo(e){try{return decodeURIComponent(""+e)}catch{}return""+e}const lk=/\/$/,ck=e=>e.replace(lk,"");function gc(e,t,n="/"){let a,s={},r="",o="";const i=t.indexOf("#");let u=t.indexOf("?");return i=0&&(u=-1),u>-1&&(a=t.slice(0,u),r=t.slice(u+1,i>-1?i:t.length),s=e(r)),i>-1&&(a=a||t.slice(0,i),o=t.slice(i,t.length)),a=pk(a??t,n),{fullPath:a+(r&&"?")+r+o,path:a,query:s,hash:Oo(o)}}function dk(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}function Mm(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function Ek(e,t,n){const a=t.matched.length-1,s=n.matched.length-1;return a>-1&&a===s&&fr(t.matched[a],n.matched[s])&&ES(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function fr(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function ES(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const n in e)if(!fk(e[n],t[n]))return!1;return!0}function fk(e,t){return Kn(e)?Wm(e,t):Kn(t)?Wm(t,e):e===t}function Wm(e,t){return Kn(t)?e.length===t.length&&e.every((n,a)=>n===t[a]):e.length===1&&e[0]===t}function pk(e,t){if(e.startsWith("/"))return e;if(!e)return t;const n=t.split("/"),a=e.split("/"),s=a[a.length-1];(s===".."||s===".")&&a.push("");let r=n.length-1,o,i;for(o=0;o1&&r--;else break;return n.slice(0,r).join("/")+"/"+a.slice(o).join("/")}const Ma={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0};var go;(function(e){e.pop="pop",e.push="push"})(go||(go={}));var ro;(function(e){e.back="back",e.forward="forward",e.unknown=""})(ro||(ro={}));function mk(e){if(!e)if(Xs){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),ck(e)}const _k=/^[^#]+#/;function Tk(e,t){return e.replace(_k,"#")+t}function hk(e,t){const n=document.documentElement.getBoundingClientRect(),a=e.getBoundingClientRect();return{behavior:t.behavior,left:a.left-n.left-(t.left||0),top:a.top-n.top-(t.top||0)}}const $l=()=>({left:window.scrollX,top:window.scrollY});function Sk(e){let t;if("el"in e){const n=e.el,a=typeof n=="string"&&n.startsWith("#"),s=typeof n=="string"?a?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!s)return;t=hk(s,e)}else t=e;"scrollBehavior"in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left!=null?t.left:window.scrollX,t.top!=null?t.top:window.scrollY)}function Fm(e,t){return(history.state?history.state.position-t:-1)+e}const Od=new Map;function Ak(e,t){Od.set(e,t)}function Ok(e){const t=Od.get(e);return Od.delete(e),t}let gk=()=>location.protocol+"//"+location.host;function fS(e,t){const{pathname:n,search:a,hash:s}=t,r=e.indexOf("#");if(r>-1){let i=s.includes(e.slice(r))?e.slice(r).length:1,u=s.slice(i);return u[0]!=="/"&&(u="/"+u),Mm(u,"")}return Mm(n,e)+a+s}function Ik(e,t,n,a){let s=[],r=[],o=null;const i=({state:E})=>{const p=fS(e,location),T=n.value,O=t.value;let R=0;if(E){if(n.value=p,t.value=E,o&&o===T){o=null;return}R=O?E.position-O.position:0}else a(p);s.forEach(g=>{g(n.value,T,{delta:R,type:go.pop,direction:R?R>0?ro.forward:ro.back:ro.unknown})})};function u(){o=n.value}function l(E){s.push(E);const p=()=>{const T=s.indexOf(E);T>-1&&s.splice(T,1)};return r.push(p),p}function c(){const{history:E}=window;E.state&&E.replaceState(Tt({},E.state,{scroll:$l()}),"")}function f(){for(const E of r)E();r=[],window.removeEventListener("popstate",i),window.removeEventListener("beforeunload",c)}return window.addEventListener("popstate",i),window.addEventListener("beforeunload",c,{passive:!0}),{pauseListeners:u,listen:l,destroy:f}}function zm(e,t,n,a=!1,s=!1){return{back:e,current:t,forward:n,replaced:a,position:window.history.length,scroll:s?$l():null}}function Rk(e){const{history:t,location:n}=window,a={value:fS(e,n)},s={value:t.state};s.value||r(a.value,{back:null,current:a.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function r(u,l,c){const f=e.indexOf("#"),E=f>-1?(n.host&&document.querySelector("base")?e:e.slice(f))+u:gk()+e+u;try{t[c?"replaceState":"pushState"](l,"",E),s.value=l}catch(p){console.error(p),n[c?"replace":"assign"](E)}}function o(u,l){const c=Tt({},t.state,zm(s.value.back,u,s.value.forward,!0),l,{position:s.value.position});r(u,c,!0),a.value=u}function i(u,l){const c=Tt({},s.value,t.state,{forward:u,scroll:$l()});r(c.current,c,!0);const f=Tt({},zm(a.value,u,null),{position:c.position+1},l);r(u,f,!1),a.value=u}return{location:a,state:s,push:i,replace:o}}function Nk(e){e=mk(e);const t=Rk(e),n=Ik(e,t.state,t.location,t.replace);function a(r,o=!0){o||n.pauseListeners(),history.go(r)}const s=Tt({location:"",base:e,go:a,createHref:Tk.bind(null,e)},t,n);return Object.defineProperty(s,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(s,"state",{enumerable:!0,get:()=>t.state.value}),s}function vk(e){return typeof e=="string"||e&&typeof e=="object"}function pS(e){return typeof e=="string"||typeof e=="symbol"}const mS=Symbol("");var xm;(function(e){e[e.aborted=4]="aborted",e[e.cancelled=8]="cancelled",e[e.duplicated=16]="duplicated"})(xm||(xm={}));function pr(e,t){return Tt(new Error,{type:e,[mS]:!0},t)}function fa(e,t){return e instanceof Error&&mS in e&&(t==null||!!(e.type&t))}const Bm="[^/]+?",bk={sensitive:!1,strict:!1,start:!0,end:!0},Ck=/[.+*?^${}()[\]/\\]/g;function Dk(e,t){const n=Tt({},bk,t),a=[];let s=n.start?"^":"";const r=[];for(const l of e){const c=l.length?[]:[90];n.strict&&!l.length&&(s+="/");for(let f=0;ft.length?t.length===1&&t[0]===80?1:-1:0}function _S(e,t){let n=0;const a=e.score,s=t.score;for(;n0&&t[t.length-1]<0}const Lk={type:0,value:""},yk=/[a-zA-Z0-9_]/;function $k(e){if(!e)return[[]];if(e==="/")return[[Lk]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(p){throw new Error(`ERR (${n})/"${l}": ${p}`)}let n=0,a=n;const s=[];let r;function o(){r&&s.push(r),r=[]}let i=0,u,l="",c="";function f(){l&&(n===0?r.push({type:0,value:l}):n===1||n===2||n===3?(r.length>1&&(u==="*"||u==="+")&&t(`A repeatable param (${l}) must be alone in its segment. eg: '/:ids+.`),r.push({type:1,value:l,regexp:c,repeatable:u==="*"||u==="+",optional:u==="*"||u==="?"})):t("Invalid state to consume buffer"),l="")}function E(){l+=u}for(;i{o(S)}:so}function o(f){if(pS(f)){const E=a.get(f);E&&(a.delete(f),n.splice(n.indexOf(E),1),E.children.forEach(o),E.alias.forEach(o))}else{const E=n.indexOf(f);E>-1&&(n.splice(E,1),f.record.name&&a.delete(f.record.name),f.children.forEach(o),f.alias.forEach(o))}}function i(){return n}function u(f){const E=Fk(f,n);n.splice(E,0,f),f.record.name&&!Vm(f)&&a.set(f.record.name,f)}function l(f,E){let p,T={},O,R;if("name"in f&&f.name){if(p=a.get(f.name),!p)throw pr(1,{location:f});R=p.record.name,T=Tt(Hm(E.params,p.keys.filter(S=>!S.optional).concat(p.parent?p.parent.keys.filter(S=>S.optional):[]).map(S=>S.name)),f.params&&Hm(f.params,p.keys.map(S=>S.name))),O=p.stringify(T)}else if(f.path!=null)O=f.path,p=n.find(S=>S.re.test(O)),p&&(T=p.parse(O),R=p.record.name);else{if(p=E.name?a.get(E.name):n.find(S=>S.re.test(E.path)),!p)throw pr(1,{location:f,currentLocation:E});R=p.record.name,T=Tt({},E.params,f.params),O=p.stringify(T)}const g=[];let N=p;for(;N;)g.unshift(N.record),N=N.parent;return{name:R,path:O,params:T,matched:g,meta:Wk(g)}}e.forEach(f=>r(f));function c(){n.length=0,a.clear()}return{addRoute:r,resolve:l,removeRoute:o,clearRoutes:c,getRoutes:i,getRecordMatcher:s}}function Hm(e,t){const n={};for(const a of t)a in e&&(n[a]=e[a]);return n}function wk(e){return{path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:void 0,beforeEnter:e.beforeEnter,props:Mk(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in e?e.components||null:e.component&&{default:e.component}}}function Mk(e){const t={},n=e.props||!1;if("component"in e)t.default=n;else for(const a in e.components)t[a]=typeof n=="object"?n[a]:n;return t}function Vm(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function Wk(e){return e.reduce((t,n)=>Tt(t,n.meta),{})}function Km(e,t){const n={};for(const a in e)n[a]=a in t?t[a]:e[a];return n}function Fk(e,t){let n=0,a=t.length;for(;n!==a;){const r=n+a>>1;_S(e,t[r])<0?a=r:n=r+1}const s=zk(e);return s&&(a=t.lastIndexOf(s,a-1)),a}function zk(e){let t=e;for(;t=t.parent;)if(TS(t)&&_S(e,t)===0)return t}function TS({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function xk(e){const t={};if(e===""||e==="?")return t;const a=(e[0]==="?"?e.slice(1):e).split("&");for(let s=0;sr&&Ad(r)):[a&&Ad(a)]).forEach(r=>{r!==void 0&&(t+=(t.length?"&":"")+n,r!=null&&(t+="="+r))})}return t}function Bk(e){const t={};for(const n in e){const a=e[n];a!==void 0&&(t[n]=Kn(a)?a.map(s=>s==null?null:""+s):a==null?a:""+a)}return t}const Gk=Symbol(""),qm=Symbol(""),Ul=Symbol(""),tf=Symbol(""),gd=Symbol("");function Gr(){let e=[];function t(a){return e.push(a),()=>{const s=e.indexOf(a);s>-1&&e.splice(s,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function Ga(e,t,n,a,s,r=o=>o()){const o=a&&(a.enterCallbacks[s]=a.enterCallbacks[s]||[]);return()=>new Promise((i,u)=>{const l=E=>{E===!1?u(pr(4,{from:n,to:t})):E instanceof Error?u(E):vk(E)?u(pr(2,{from:t,to:E})):(o&&a.enterCallbacks[s]===o&&typeof E=="function"&&o.push(E),i())},c=r(()=>e.call(a&&a.instances[s],t,n,l));let f=Promise.resolve(c);e.length<3&&(f=f.then(l)),f.catch(E=>u(E))})}function Ic(e,t,n,a,s=r=>r()){const r=[];for(const o of e)for(const i in o.components){let u=o.components[i];if(!(t!=="beforeRouteEnter"&&!o.instances[i]))if(Hk(u)){const c=(u.__vccOpts||u)[t];c&&r.push(Ga(c,n,a,o,i,s))}else{let l=u();r.push(()=>l.then(c=>{if(!c)return Promise.reject(new Error(`Couldn't resolve component "${i}" at "${o.path}"`));const f=YU(c)?c.default:c;o.components[i]=f;const p=(f.__vccOpts||f)[t];return p&&Ga(p,n,a,o,i,s)()}))}}return r}function Hk(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function Ym(e){const t=Nt(Ul),n=Nt(tf),a=w(()=>{const u=m(e.to);return t.resolve(u)}),s=w(()=>{const{matched:u}=a.value,{length:l}=u,c=u[l-1],f=n.matched;if(!c||!f.length)return-1;const E=f.findIndex(fr.bind(null,c));if(E>-1)return E;const p=Xm(u[l-2]);return l>1&&Xm(c)===p&&f[f.length-1].path!==p?f.findIndex(fr.bind(null,u[l-2])):E}),r=w(()=>s.value>-1&&qk(n.params,a.value.params)),o=w(()=>s.value>-1&&s.value===n.matched.length-1&&ES(n.params,a.value.params));function i(u={}){return jk(u)?t[m(e.replace)?"replace":"push"](m(e.to)).catch(so):Promise.resolve()}return{route:a,href:w(()=>a.value.href),isActive:r,isExactActive:o,navigate:i}}const Vk=te({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"}},useLink:Ym,setup(e,{slots:t}){const n=Kt(Ym(e)),{options:a}=Nt(Ul),s=w(()=>({[Qm(e.activeClass,a.linkActiveClass,"router-link-active")]:n.isActive,[Qm(e.exactActiveClass,a.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const r=t.default&&t.default(n);return e.custom?r:Sn("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:s.value},r)}}}),Kk=Vk;function jk(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){const t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function qk(e,t){for(const n in t){const a=t[n],s=e[n];if(typeof a=="string"){if(a!==s)return!1}else if(!Kn(s)||s.length!==a.length||a.some((r,o)=>r!==s[o]))return!1}return!0}function Xm(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const Qm=(e,t,n)=>e??t??n,Yk=te({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const a=Nt(gd),s=w(()=>e.route||a.value),r=Nt(qm,0),o=w(()=>{let l=m(r);const{matched:c}=s.value;let f;for(;(f=c[l])&&!f.components;)l++;return l}),i=w(()=>s.value.matched[o.value]);rn(qm,w(()=>o.value+1)),rn(Gk,i),rn(gd,s);const u=de();return We(()=>[u.value,i.value,e.name],([l,c,f],[E,p,T])=>{c&&(c.instances[f]=l,p&&p!==c&&l&&l===E&&(c.leaveGuards.size||(c.leaveGuards=p.leaveGuards),c.updateGuards.size||(c.updateGuards=p.updateGuards))),l&&c&&(!p||!fr(c,p)||!E)&&(c.enterCallbacks[f]||[]).forEach(O=>O(l))},{flush:"post"}),()=>{const l=s.value,c=e.name,f=i.value,E=f&&f.components[c];if(!E)return Zm(n.default,{Component:E,route:l});const p=f.props[c],T=p?p===!0?l.params:typeof p=="function"?p(l):p:null,R=Sn(E,Tt({},T,t,{onVnodeUnmounted:g=>{g.component.isUnmounted&&(f.instances[c]=null)},ref:u}));return Zm(n.default,{Component:R,route:l})||R}}});function Zm(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const Xk=Yk;function Qk(e){const t=kk(e.routes,e),n=e.parseQuery||xk,a=e.stringifyQuery||jm,s=e.history,r=Gr(),o=Gr(),i=Gr(),u=Fo(Ma);let l=Ma;Xs&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const c=Oc.bind(null,ne=>""+ne),f=Oc.bind(null,uk),E=Oc.bind(null,Oo);function p(ne,Te){let he,ve;return pS(ne)?(he=t.getRecordMatcher(ne),ve=Te):ve=ne,t.addRoute(ve,he)}function T(ne){const Te=t.getRecordMatcher(ne);Te&&t.removeRoute(Te)}function O(){return t.getRoutes().map(ne=>ne.record)}function R(ne){return!!t.getRecordMatcher(ne)}function g(ne,Te){if(Te=Tt({},Te||u.value),typeof ne=="string"){const b=gc(n,ne,Te.path),H=t.resolve({path:b.path},Te),ue=s.createHref(b.fullPath);return Tt(b,H,{params:E(H.params),hash:Oo(b.hash),redirectedFrom:void 0,href:ue})}let he;if(ne.path!=null)he=Tt({},ne,{path:gc(n,ne.path,Te.path).path});else{const b=Tt({},ne.params);for(const H in b)b[H]==null&&delete b[H];he=Tt({},ne,{params:f(b)}),Te.params=f(Te.params)}const ve=t.resolve(he,Te),ut=ne.hash||"";ve.params=c(E(ve.params));const mt=dk(a,Tt({},ne,{hash:rk(ut),path:ve.path})),k=s.createHref(mt);return Tt({fullPath:mt,hash:ut,query:a===jm?Bk(ne.query):ne.query||{}},ve,{redirectedFrom:void 0,href:k})}function N(ne){return typeof ne=="string"?gc(n,ne,u.value.path):Tt({},ne)}function S(ne,Te){if(l!==ne)return pr(8,{from:Te,to:ne})}function A(ne){return P(ne)}function v(ne){return A(Tt(N(ne),{replace:!0}))}function D(ne){const Te=ne.matched[ne.matched.length-1];if(Te&&Te.redirect){const{redirect:he}=Te;let ve=typeof he=="function"?he(ne):he;return typeof ve=="string"&&(ve=ve.includes("?")||ve.includes("#")?ve=N(ve):{path:ve},ve.params={}),Tt({query:ne.query,hash:ne.hash,params:ve.path!=null?{}:ne.params},ve)}}function P(ne,Te){const he=l=g(ne),ve=u.value,ut=ne.state,mt=ne.force,k=ne.replace===!0,b=D(he);if(b)return P(Tt(N(b),{state:typeof b=="object"?Tt({},ut,b.state):ut,force:mt,replace:k}),Te||he);const H=he;H.redirectedFrom=Te;let ue;return!mt&&Ek(a,ve,he)&&(ue=pr(16,{to:H,from:ve}),Fe(ve,ve,!0,!1)),(ue?Promise.resolve(ue):z(H,ve)).catch(ae=>fa(ae)?fa(ae,2)?ae:qe(ae):B(ae,H,ve)).then(ae=>{if(ae){if(fa(ae,2))return P(Tt({replace:k},N(ae.to),{state:typeof ae.to=="object"?Tt({},ut,ae.to.state):ut,force:mt}),Te||H)}else ae=F(H,ve,!0,k,ut);return $(H,ve,ae),ae})}function C(ne,Te){const he=S(ne,Te);return he?Promise.reject(he):Promise.resolve()}function y(ne){const Te=ge.values().next().value;return Te&&typeof Te.runWithContext=="function"?Te.runWithContext(ne):ne()}function z(ne,Te){let he;const[ve,ut,mt]=Zk(ne,Te);he=Ic(ve.reverse(),"beforeRouteLeave",ne,Te);for(const b of ve)b.leaveGuards.forEach(H=>{he.push(Ga(H,ne,Te))});const k=C.bind(null,ne,Te);return he.push(k),It(he).then(()=>{he=[];for(const b of r.list())he.push(Ga(b,ne,Te));return he.push(k),It(he)}).then(()=>{he=Ic(ut,"beforeRouteUpdate",ne,Te);for(const b of ut)b.updateGuards.forEach(H=>{he.push(Ga(H,ne,Te))});return he.push(k),It(he)}).then(()=>{he=[];for(const b of mt)if(b.beforeEnter)if(Kn(b.beforeEnter))for(const H of b.beforeEnter)he.push(Ga(H,ne,Te));else he.push(Ga(b.beforeEnter,ne,Te));return he.push(k),It(he)}).then(()=>(ne.matched.forEach(b=>b.enterCallbacks={}),he=Ic(mt,"beforeRouteEnter",ne,Te,y),he.push(k),It(he))).then(()=>{he=[];for(const b of o.list())he.push(Ga(b,ne,Te));return he.push(k),It(he)}).catch(b=>fa(b,8)?b:Promise.reject(b))}function $(ne,Te,he){i.list().forEach(ve=>y(()=>ve(ne,Te,he)))}function F(ne,Te,he,ve,ut){const mt=S(ne,Te);if(mt)return mt;const k=Te===Ma,b=Xs?history.state:{};he&&(ve||k?s.replace(ne.fullPath,Tt({scroll:k&&b&&b.scroll},ut)):s.push(ne.fullPath,ut)),u.value=ne,Fe(ne,Te,he,k),qe()}let X;function re(){X||(X=s.listen((ne,Te,he)=>{if(!Qe.listening)return;const ve=g(ne),ut=D(ve);if(ut){P(Tt(ut,{replace:!0}),ve).catch(so);return}l=ve;const mt=u.value;Xs&&Ak(Fm(mt.fullPath,he.delta),$l()),z(ve,mt).catch(k=>fa(k,12)?k:fa(k,2)?(P(k.to,ve).then(b=>{fa(b,20)&&!he.delta&&he.type===go.pop&&s.go(-1,!1)}).catch(so),Promise.reject()):(he.delta&&s.go(-he.delta,!1),B(k,ve,mt))).then(k=>{k=k||F(ve,mt,!1),k&&(he.delta&&!fa(k,8)?s.go(-he.delta,!1):he.type===go.pop&&fa(k,20)&&s.go(-1,!1)),$(ve,mt,k)}).catch(so)}))}let G=Gr(),Z=Gr(),q;function B(ne,Te,he){qe(ne);const ve=Z.list();return ve.length?ve.forEach(ut=>ut(ne,Te,he)):console.error(ne),Promise.reject(ne)}function Ne(){return q&&u.value!==Ma?Promise.resolve():new Promise((ne,Te)=>{G.add([ne,Te])})}function qe(ne){return q||(q=!ne,re(),G.list().forEach(([Te,he])=>ne?he(ne):Te()),G.reset()),ne}function Fe(ne,Te,he,ve){const{scrollBehavior:ut}=e;if(!Xs||!ut)return Promise.resolve();const mt=!he&&Ok(Fm(ne.fullPath,0))||(ve||!he)&&history.state&&history.state.scroll||null;return on().then(()=>ut(ne,Te,mt)).then(k=>k&&Sk(k)).catch(k=>B(k,ne,Te))}const Ue=ne=>s.go(ne);let zt;const ge=new Set,Qe={currentRoute:u,listening:!0,addRoute:p,removeRoute:T,clearRoutes:t.clearRoutes,hasRoute:R,getRoutes:O,resolve:g,options:e,push:A,replace:v,go:Ue,back:()=>Ue(-1),forward:()=>Ue(1),beforeEach:r.add,beforeResolve:o.add,afterEach:i.add,onError:Z.add,isReady:Ne,install(ne){const Te=this;ne.component("RouterLink",Kk),ne.component("RouterView",Xk),ne.config.globalProperties.$router=Te,Object.defineProperty(ne.config.globalProperties,"$route",{enumerable:!0,get:()=>m(u)}),Xs&&!zt&&u.value===Ma&&(zt=!0,A(s.location).catch(ut=>{}));const he={};for(const ut in Ma)Object.defineProperty(he,ut,{get:()=>u.value[ut],enumerable:!0});ne.provide(Ul,Te),ne.provide(tf,z0(he)),ne.provide(gd,u);const ve=ne.unmount;ge.add(ne),ne.unmount=function(){ge.delete(ne),ge.size<1&&(l=Ma,X&&X(),X=null,u.value=Ma,zt=!1,q=!1),ve()}}};function It(ne){return ne.reduce((Te,he)=>Te.then(()=>y(he)),Promise.resolve())}return Qe}function Zk(e,t){const n=[],a=[],s=[],r=Math.max(t.matched.length,e.matched.length);for(let o=0;ofr(l,i))?a.push(i):n.push(i));const u=e.matched[o];u&&(t.matched.find(l=>fr(l,u))||s.push(u))}return[n,a,s]}function ca(){return Nt(Ul)}function Lt(e){return Nt(tf)}const Jk={class:"dropdown-wrapper"},ew=["aria-expanded","aria-label"],tw=["aria-labelledby"],nw=["id","onClick","onKeydown","onMouseover"],aw=te({__name:"Dropdown",props:{options:{},selected:{},buttonLabel:{},listLabel:{},isMenuOpen:{type:Boolean}},emits:{selected:e=>e},setup(e,{emit:t}){const n=e,{isMenuOpen:a,options:s,selected:r}=_e(n),o=t,i=Lt(),u=de(!1),l=de(null),c=de(T(r.value));function f(){if(u.value)E();else{u.value=!0;const g=document.getElementById(`dropdown-item-${c.value}`);g==null||g.focus()}}function E(){var g;u.value=!1,c.value=T(r.value),(g=l.value)==null||g.focus()}function p(g){o("selected",g),u.value=!1}function T(g){const N=s.value.findIndex(S=>S.value===g);return N>=0?N:0}function O(g){let N=!1;u.value&&(g.key==="ArrowDown"&&(N=!0,c.value+=1,c.value>s.value.length&&(c.value=0)),g.key==="ArrowUp"&&(N=!0,c.value-=1,c.value<0&&(c.value=s.value.length-1)),g.key==="Home"&&(N=!0,c.value=0),g.key==="End"&&(N=!0,c.value=s.value.length-1),g.key==="Enter"&&(N=!0,p(s.value[c.value])),(g.key==="Escape"||g.key==="Tab")&&(N=g.key==="Escape",E())),N&&(g.stopPropagation(),g.preventDefault())}function R(g){c.value=g}return We(()=>i.path,()=>u.value=!1),We(()=>r.value,g=>c.value=T(g)),We(()=>a.value,g=>{g||E()}),St(()=>{document.addEventListener("keydown",O)}),pt(()=>{document.removeEventListener("keydown",O)}),(g,N)=>(h(),I("div",Jk,[d("button",{"aria-controls":"dropdown-list","aria-expanded":u.value,"aria-haspopup":"true","aria-label":g.buttonLabel,class:"dropdown-selector transparent",onClick:N[0]||(N[0]=S=>f()),ref_key:"dropdownButton",ref:l},[$t(g.$slots,"default",{},void 0,!0)],8,ew),u.value?(h(),I("ul",{key:0,"aria-labelledby":g.listLabel,class:"dropdown-list",id:"dropdown-list",role:"menu"},[(h(!0),I(me,null,Pe(m(s),(S,A)=>(h(),I("li",{class:pe(["dropdown-item",{selected:S.value===m(r),focused:A===c.value}]),key:A,id:`dropdown-item-${A}`,tabindex:"-1",onClick:v=>p(S),onKeydown:Je(v=>p(S),["enter"]),onMouseover:v=>R(A),role:"menuitem"},_(S.label),43,nw))),128))],8,tw)):M("",!0)]))}}),sw=ie(aw,[["__scopeId","data-v-99bd9a4e"]]),rw={class:"error-message"},ow={key:0},iw={key:1},uw={key:2},lw=te({__name:"ErrorMessage",props:{message:{}},setup(e){const t=e,{message:n}=_e(t);return(a,s)=>(h(),I("div",rw,[Array.isArray(m(n))?(h(),I("ul",ow,[(h(!0),I(me,null,Pe(m(n),(r,o)=>(h(),I("li",{key:o},_(a.$t(r)),1))),128))])):typeof m(n)=="string"?(h(),I("div",iw,_(a.$t(m(n)).replace("api.ERROR.","")),1)):(h(),I("div",uw,_(a.$t(`equipments.ERRORS.${m(n).status}`,{equipmentId:m(n).equipmentId,equipmentLabel:m(n).equipmentLabel})),1))]))}}),cw=ie(lw,[["__scopeId","data-v-5d2995e8"]]),dw={name:"Bike"},Ew={version:"1.1",id:"bike",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",x:"0px",y:"0px",viewBox:"0 0 35 35","xml:space":"preserve"},fw=d("desc",{id:"BikeEquipmentDescription"},"bike",-1),pw=d("g",null,[d("path",{d:`M25.8 14.32c-0.64 0-1.24 0.12-1.84 0.32l-1.52-3 2.6-3.88c0.28-0.4 0.12-1.32-0.72-1.32h-3.32c-0.48 0-0.84 - 0.36-0.84 0.84s0.36 0.84 0.84 0.84h1.76l-1.76 2.64h-9.68c-0.4 0-0.68 0.36-0.68 0.36v0 0 0 0l-2.56 - 3.76c-0.72-0.36-1.56-0.56-2.44-0.56-3.12 0-5.64 2.52-5.64 5.64s2.52 5.64 5.68 5.64c2.8 0 5.16-2.080 - 5.56-4.8h4.6c0.48 0 0.68-0.4 0.68-0.4v0l4.8-7.2 1.16 2.2c-1.4 1.040-2.32 2.68-2.32 4.56 0 3.12 2.52 5.64 5.64 - 5.64s5.64-2.52 5.64-5.64-2.56-5.64-5.64-5.64zM15.92 18.32l-3.2-5.92h7.12l-3.92 5.92zM11.24 13.2l3.16 - 5.92h-3.2c-0.2-1.28-0.84-2.44-1.76-3.28l1.8-2.64zM8.52 17.24c0.48 0.52 0.84 1.16 1 1.88h-2.28l1.28-1.88zM5.68 - 23.88c-2.16 0-3.96-1.76-3.96-3.96s1.76-3.92 3.96-3.92c0.52 0 1 0.12 1.48 0.28l-2.16 3.2c-0.36 0.44-0.040 1.28 - 0.68 1.28v0 0h3.84c-0.4 1.8-2 3.12-3.84 3.12zM25.8 23.88c-2.16 0-3.96-1.76-3.96-3.96 0-1.2 0.56-2.32 - 1.44-3.040l1.8 3.44c0.2 0.32 0.68 0.56 1.16 0.36 0.4-0.16 0.56-0.72 0.36-1.12l-1.8-3.4c0.32-0.080 0.68-0.16 - 1.040-0.16 2.16 0 3.96 1.76 3.96 3.96s-1.8 3.92-4 3.92zM9.8 9.4h3.080c0.48 0 0.84-0.36 - 0.84-0.84s-0.36-0.84-0.84-0.84h-3.080c-0.48 0-0.84 0.36-0.84 0.84-0.040 0.44 0.36 0.84 0.84 0.84z`})],-1),mw=[fw,pw];function _w(e,t,n,a,s,r){return h(),I("svg",Ew,mw)}const Tw=ie(dw,[["render",_w]]),hw={name:"BikeTrainer"},Sw={version:"1.1",id:"bike_trainer",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",x:"0px",y:"0px",viewBox:"0 0 512 512","xml:space":"preserve",style:{"shape-rendering":"geometricPrecision","text-rendering":"geometricPrecision","image-rendering":"optimizeQuality","fill-rule":"evenodd","clip-rule":"evenodd"}},Aw=An(`bike trainer`,7),Ow=[Aw];function gw(e,t,n,a,s,r){return h(),I("svg",Sw,Ow)}const Iw=ie(hw,[["render",gw]]),Rw={name:"Kayak_Boat"},Nw={id:"kayak",version:"1.1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",x:"0px",y:"0px",viewBox:"-200 -150 800 800","xml:space":"preserve"},vw=d("desc",{id:"kayakBoatEquipmentDescription"},"kayak",-1),bw=d("g",null,[d("g",null,[d("path",{d:`M506.376,55.175L458.322,7.122c-5.504-5.504-14.428-5.504-19.933,0l-30.985,30.985 - c-14.252,14.252-17.674,35.223-10.286,52.713c-1.12,0.678-2.183,1.483-3.15,2.45L91.981,395.257 - c-1.027,1.027-1.872,2.163-2.574,3.361c-17.508-7.434-38.522-4.024-52.798,10.25L5.623,439.852 - c-5.504,5.504-5.504,14.429,0,19.933l48.054,48.054c5.504,5.504,14.428,5.504,19.933,0l30.985-30.985 - c15.23-15.23,18.103-38.138,8.621-56.267c0.783-0.549,1.537-1.157,2.237-1.857L417.44,116.745 - c0.634-0.634,1.188-1.317,1.699-2.021c18.126,9.473,41.025,6.598,56.252-8.629l30.985-30.985 - C511.88,69.604,511.88,60.679,506.376,55.175z`})])],-1),Cw=d("g",null,[d("g",null,[d("path",{d:`M287.822,18.22C281.289,6.959,269.286,0.007,256.267,0c-13.02-0.008-25.057,6.925-31.591,18.186 - c-29.734,51.242-69.75,138.626-69.75,237.815c0,9.547,0.378,18.983,1.074,28.29l53.352-53.352v-47.247 - c0-25.894,20.992-46.886,46.886-46.886c13.039,0,24.831,5.326,33.329,13.917l40.982-40.982 - C317.405,73.151,301.526,41.842,287.822,18.22z`})])],-1),Dw=d("g",null,[d("g",null,[d("path",{d:`M356.238,224.889l-53.113,53.115v50.303c0,25.894-20.992,46.886-46.886,46.886c-13.817,0-26.235-5.979-34.816-15.488 - l-40.306,40.306c13.297,37.559,29.552,69.661,43.538,93.767c6.534,11.261,18.536,18.214,31.556,18.22s25.057-6.925,31.591-18.186 - c29.734-51.242,69.75-138.626,69.75-237.815C357.552,245.483,357.078,235.11,356.238,224.889z`})])],-1),Pw=[vw,bw,Cw,Dw];function Lw(e,t,n,a,s,r){return h(),I("svg",Nw,Pw)}const yw=ie(Rw,[["render",Lw]]),$w={name:"Shoes"},Uw={id:"shoes",version:"1.1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",x:"0px",y:"0px",viewBox:"0 0 512 512","xml:space":"preserve"},kw=An(`shoes`,4),ww=[kw];function Mw(e,t,n,a,s,r){return h(),I("svg",Uw,ww)}const Ww=ie($w,[["render",Mw]]),Fw={name:"Shoes"},zw={id:"skis",version:"1.1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",x:"0px",y:"0px",viewBox:"0 0 512 512","xml:space":"preserve"},xw=d("desc",{id:"skisEquipmentDescription"},"skis",-1),Bw=d("path",{d:`m 105.01644,82.858537 c -0.75155,0 -1.40914,0.134433 -2.1607,0.373428 -1.52187,0.492925 -2.39554,1.127758 -3.400739,2.673751 - -1.01459,1.553454 -1.85068,4.040497 -2.16069,7.192229 -0.62942,6.296003 0.79852,14.996885 3.184669,23.511055 4.81929,17.02088 - 12.99235,33.25755 12.99235,33.25755 l 31.75279,62.51192 11.9308,-22.33103 28.18296,9.48509 -31.7528,-62.48952 c 0,0 -8.36096,-16.25161 - -19.82202,-31.129 -5.73054,-7.438695 -12.30656,-14.481551 -18.22498,-18.66396 -3.00618,-2.091199 -5.82448,-3.420599 -7.89123,-3.973273 - -1.03337,-0.283807 -1.87886,-0.41824 -2.63041,-0.41824 z m 144.48464,0.07468 c -0.75155,0 -1.59704,0.134434 -2.63042,0.41824 - -2.06674,0.552674 -4.88504,1.882085 -7.79728,3.973284 -6.01236,4.182398 -12.58839,11.217793 -18.31892,18.656489 -11.46107,14.87739 - -19.82202,31.12153 -19.82202,31.12153 l -14.56119,28.70918 20.94933,41.2265 2.34858,4.63051 31.47097,-61.69038 c 0,0 8.17306,-16.23667 - 12.96416,-33.27247 2.34858,-8.51417 3.75773,-17.222527 3.19408,-23.51853 -0.37578,-3.151743 -1.22127,-5.646237 -2.1607,-7.199702 - -1.03338,-1.553465 -1.87887,-2.188297 -3.4759,-2.681223 -0.75155,-0.238994 -1.40915,-0.373428 -2.16069,-0.373428 z m - 91.21884,119.325343 v 34.35542 h 24.42522 v -34.35542 z m 80.79115,0 v 34.35542 h 24.42522 v -34.35542 z m -255.33761,5.45205 - -12.02473,22.40571 7.98517,15.60931 11.93079,-22.40571 28.18296,9.48509 -7.89123,-15.60931 z m 16.90978,33.23514 -11.93079,22.33102 - 6.76391,13.36874 40.11375,-12.92063 -6.76391,-13.29406 z m -38.23488,6.57234 -8.36094,16.28148 19.91595,6.42297 z m - 199.62928,2.53931 v 153.85252 h -21.60693 v 13.44343 h 21.60693 v 17.17771 h 16.90978 v -17.17771 h 21.60693 V 403.90992 H 361.38742 - V 250.0574 Z m 80.79115,0 v 153.85252 h -21.60693 v 13.44343 h 21.60693 v 17.17771 h 16.90978 V 417.35335 H 463.7855 V 403.90992 - H 442.17857 V 250.0574 Z m -200.94449,26.13999 -40.0198,12.92062 10.52164,20.76263 40.11374,-12.92062 -4.88504,-9.63446 z m - -94.03714,0.0747 -10.61558,20.76262 40.0198,12.92063 8.45488,-16.58022 -2.25462,-4.48115 -0.65761,-1.34434 z m 110.94691,33.16045 - -40.0198,12.84594 55.61437,109.48923 40.0198,-12.92063 z m -127.95063,0.0373 -55.623763,109.33985 40.057384,12.92063 55.680129,-109.33986 z`},null,-1),Gw=[xw,Bw];function Hw(e,t,n,a,s,r){return h(),I("svg",zw,Gw)}const Vw=ie(Fw,[["render",Hw]]),Kw={name:"Shoes"},jw={id:"shoes",version:"1.1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",x:"0px",y:"0px",viewBox:"0 0 512 512","xml:space":"preserve",style:{"shape-rendering":"geometricPrecision","text-rendering":"geometricPrecision","image-rendering":"optimizeQuality","fill-rule":"evenodd","clip-rule":"evenodd"}},qw=An(`snowshoes`,3),Yw=[qw];function Xw(e,t,n,a,s,r){return h(),I("svg",jw,Yw)}const Qw=ie(Kw,[["render",Xw]]),Zw=["title"],Jw=te({__name:"index",props:{equipmentTypeLabel:{},title:{}},setup(e){const t=e,n=jo(),a=w(()=>n.getters[j.GETTERS.DARK_MODE]),s=w(()=>Dl(a.value)),{equipmentTypeLabel:r,title:o}=_e(t);return(i,u)=>(h(),I("div",{class:"equipment-type-img",style:ba({fill:s.value?"#cfd0d0":"#2c3e50"}),title:m(o)},[m(r)==="Bike"?(h(),Y(Tw,{key:0})):M("",!0),m(r)==="Bike Trainer"?(h(),Y(Iw,{key:1})):M("",!0),m(r)==="Kayak_Boat"?(h(),Y(yw,{key:2})):M("",!0),m(r)==="Shoes"?(h(),Y(Ww,{key:3})):M("",!0),m(r)==="Skis"?(h(),Y(Vw,{key:4})):M("",!0),m(r)==="Snowshoes"?(h(),Y(Qw,{key:5})):M("",!0)],12,Zw))}}),e8={name:"CyclingSport"},t8={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"},n8=d("desc",{id:"cyclingSportDescription"}," silhouette of a person riding a bicycle ",-1),a8=d("g",null,[d("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 - c-21.009-12.332-47.99-5.317-60.314,15.65C293.129,73.036,300.103,100.027,321.097,112.359z`}),d("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 - c-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 - c-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 - c-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 - c-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 - c54.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 - c-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 - l19.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 - C491.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 - c0-40.756,33.167-73.909,73.923-73.909c5.944,0,11.649,0.896,17.188,2.224l-20.476,47.893 - c-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 - C165.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 - C155.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 - c-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 - c3.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 - c-18.268,6.162-34.117,17.51-45.848,32.314L296.781,290.175z M375.396,337.633l-38.003-22.94 - c7.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 - c0-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 - c13.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 - c40.757,0,73.911,33.153,73.911,73.909C466.992,403.51,433.838,436.671,393.081,436.671z`})],-1),s8=[n8,a8];function r8(e,t,n,a,s,r){return h(),I("svg",t8,s8)}const o8=ie(e8,[["render",r8]]),i8={name:"CyclingTransport"},u8={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"},l8=d("desc",{id:"cyclingTransportDescription"}," silhouette of a person riding a bicycle (for transportation) ",-1),c8=d("g",{id:"g147"},[d("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"}),d("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),d8=[l8,c8];function E8(e,t,n,a,s,r){return h(),I("svg",u8,d8)}const f8=ie(i8,[["render",E8]]),p8={name:"CyclingTransport"},m8={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"},_8=An(' silhouette of a person riding a bicycle for touring/trekking ',2),T8=[_8];function h8(e,t,n,a,s,r){return h(),I("svg",m8,T8)}const S8=ie(p8,[["render",h8]]),A8={name:"CyclingVirtual"},O8={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"},g8=An(' silhouette of a person riding a bicycle with virtual indicator ',4),I8=[g8];function R8(e,t,n,a,s,r){return h(),I("svg",O8,I8)}const N8=ie(A8,[["render",R8]]),v8={name:"Hiking"},b8={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"},C8=d("desc",{id:"hikingDescription"},"silhouette of a person hiking",-1),D8=d("g",null,[d("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 - c-21.652,0-39.242,17.57-39.242,39.24C207.171,60.919,224.761,78.492,246.413,78.492z`}),d("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 - c1.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 - c0-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 - l-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 - c7.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 - c-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 - c0.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 - l1.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 - C381.588,218.245,386.604,211.15,386.604,202.858z`})],-1),P8=[C8,D8];function L8(e,t,n,a,s,r){return h(),I("svg",b8,P8)}const y8=ie(v8,[["render",L8]]),$8={name:"MountainBiking"},U8={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"},k8=d("desc",{id:"mountainBikingDescription"}," silhouette of a person riding a mountain bike ",-1),w8=d("g",null,[d("g",null,[d("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 - c-15.721,7.134-22.702,25.752-15.578,41.444C115.679,68.216,134.23,75.14,149.951,67.997z`}),d("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 - l76.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 - c0,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 - c17.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 - C102.205,73.858,91.112,77.243,87.517,89.072z`}),d("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 - c3.041-16.543,1.282-34.148-6.215-50.633c-19.498-42.974-70.094-61.87-112.943-42.419 - c-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 - c-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 - c-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 - c-19.517-42.955-70.074-61.879-113.019-42.381c-42.792,19.44-61.87,70.007-42.372,112.933 - c16.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 - c-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 - v9.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 - c0-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 - l-36.127-34.951C434.712,167.418,425.79,170.325,423.687,182.488z`})])],-1),M8=[k8,w8];function W8(e,t,n,a,s,r){return h(),I("svg",U8,M8)}const F8=ie($8,[["render",W8]]),z8={name:"MountainBikingElectric"},x8={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"},B8=An(' silhouette of a person riding an electric mountain bike ',18),G8=[B8];function H8(e,t,n,a,s,r){return h(),I("svg",x8,G8)}const V8=ie(z8,[["render",H8]]),K8={name:"Mountaineering"},j8={version:"1.1",id:"Capa_1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",x:"0px",y:"0px",viewBox:"0 0 495.017 495.017",style:{"enable-background":"new 0 0 495.017 495.017"},"xml:space":"preserve"},q8=An(` silhouette of a person doing mountaineering `,2),Y8=[q8];function X8(e,t,n,a,s,r){return h(),I("svg",j8,Y8)}const Q8=ie(K8,[["render",X8]]),Z8={name:"OpenWaterSwimming"},J8={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 492.508 492.508",style:{"enable-background":"new 0 0 492.508 492.508"},"xml:space":"preserve"},e5=An(` silhouette of a person swimming in open water `,3),t5=[e5];function n5(e,t,n,a,s,r){return h(),I("svg",J8,t5)}const a5=ie(Z8,[["render",n5]]),s5={name:"Paragliding"},r5={version:"1.1",id:"Capa_1",x:"0px",y:"0px",viewBox:"0 0 170 170","xml:space":"preserve",xmlns:"http://www.w3.org/2000/svg","xmlns:svg":"http://www.w3.org/2000/svg"},o5=An('silhouette of a person paragliding',3),i5=[o5];function u5(e,t,n,a,s,r){return h(),I("svg",r5,i5)}const l5=ie(s5,[["render",u5]]),c5={name:"Rowing"},d5={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"},E5=d("desc",{id:"rowingDescription"},"silhouette of a person rowing",-1),f5=d("g",null,[d("g",null,[d("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 - c2.305,0,4.533-0.947,6.12-2.572l78.881-80.555h221.315c12.45,0,30.676-6.006,40.296-13.914 - c8.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 - l47.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 - l-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 - c-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 - c-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 - c-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 - C39.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 - l-43.453,43.012h-14.2L272.63,248.727z`}),d("circle",{cx:"248.953",cy:"109.842",r:"52.326"})])],-1),p5=[E5,f5];function m5(e,t,n,a,s,r){return h(),I("svg",d5,p5)}const _5=ie(c5,[["render",m5]]),T5={name:"Running"},h5={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"},S5=d("desc",{id:"runningDescription"},"silhouette of a running person",-1),A5=d("g",null,[d("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 - c-22.281,0-40.378,18.084-40.378,40.383C242.362,62.691,260.458,80.771,282.74,80.771z`}),d("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 - c-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 - c-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 - c-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 - c2.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 - l26.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 - c13.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 - l19.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 - C420.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),O5=[S5,A5];function g5(e,t,n,a,s,r){return h(),I("svg",h5,O5)}const I5=ie(T5,[["render",g5]]),R5={name:"SkiingAlpine"},N5={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"},v5=d("desc",{id:"alpineSkiingDescription"},"silhouette of a person skiing",-1),b5=d("g",null,[d("g",null,[d("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 - c2.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 - c-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 - c15.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 - c0.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 - l-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 - l-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 - c-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 - l102.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 - c0,0-50.978,31.776-74.998,46.397c-14.219,8.606-13.674,23.858-6.129,33.393L23.705,318.199 - c-10.012-2.792-20.569,2.554-23.113,11.695C-2,339.169,4.159,349.029,14.314,351.859z`}),d("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 - c15.386-16.677,14.172-42.734-2.544-58.016C492.305,54.064,466.17,55.192,450.842,72.003z`})])],-1),C5=[v5,b5];function D5(e,t,n,a,s,r){return h(),I("svg",N5,C5)}const P5=ie(R5,[["render",D5]]),L5={name:"SkiingCrossCountry"},y5={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"},$5=d("desc",{id:"crossCountrySkiingDescription"}," silhouette of a person skiing (cross country) ",-1),U5=d("g",null,[d("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 - l12.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 - c-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 - c-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 - c2.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 - l-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 - c-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 - h161.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 - c5.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 - h-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 - s27.844,12.466,27.844,27.844s-12.466,27.844-27.844,27.844S167,73.315,167,57.938z`})],-1),k5=[$5,U5];function w5(e,t,n,a,s,r){return h(),I("svg",y5,k5)}const M5=ie(L5,[["render",w5]]),W5={name:"Snowshoes"},F5={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"},z5=An('silhouette of a person with snowshoes',6),x5=[z5];function B5(e,t,n,a,s,r){return h(),I("svg",F5,x5)}const G5=ie(W5,[["render",B5]]),H5={name:"Swimrun"},V5={version:"1.1",id:"Capa_1",x:"0px",y:"0px",viewBox:"0 0 492.508 492.508","xml:space":"preserve",xmlns:"http://www.w3.org/2000/svg","xmlns:svg":"http://www.w3.org/2000/svg"},K5=An(' silhouette of a person swimming in open water and another silhouette of a person running ',4),j5=[K5];function q5(e,t,n,a,s,r){return h(),I("svg",V5,j5)}const Y5=ie(H5,[["render",q5]]),X5={name:"Trail"},Q5={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"},Z5=d("desc",{id:"trailDescription"},"silhouette of a person running (trail)",-1),J5=d("g",null,[d("g",null,[d("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 - h-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 - l-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 - c-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 - c-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 - c-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 - l35.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 - c-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 - c18.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 - c-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 - c-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 - c-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 - c12.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`}),d("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 - c-17.796,4.581-28.535,22.711-23.964,40.535C290.439,120.476,308.599,131.205,326.395,126.625z`})])],-1),eM=[Z5,J5];function tM(e,t,n,a,s,r){return h(),I("svg",Q5,eM)}const nM=ie(X5,[["render",tM]]),aM={name:"Walking"},sM={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"},rM=An('silhouette of a walking person',3),oM=[rM];function iM(e,t,n,a,s,r){return h(),I("svg",sM,oM)}const uM=ie(aM,[["render",iM]]),lM=["title"],cM=te({__name:"index",props:{sportLabel:{},color:{},title:{default:""}},setup(e){const t=e,{color:n,sportLabel:a,title:s}=_e(t),r=Nt("sportColors");return(o,i)=>(h(),I("div",{class:"sport-img",style:ba({fill:m(n)?m(n):m(r)[m(a)]}),title:m(s)?m(s):o.$t(`sports.${m(a)}.LABEL`)},[m(a)==="Cycling (Sport)"?(h(),Y(o8,{key:0})):M("",!0),m(a)==="Cycling (Trekking)"?(h(),Y(S8,{key:1})):M("",!0),m(a)==="Cycling (Transport)"?(h(),Y(f8,{key:2})):M("",!0),m(a)==="Cycling (Virtual)"?(h(),Y(N8,{key:3})):M("",!0),m(a)==="Hiking"?(h(),Y(y8,{key:4})):M("",!0),m(a)==="Mountain Biking"?(h(),Y(F8,{key:5})):M("",!0),m(a)==="Mountain Biking (Electric)"?(h(),Y(V8,{key:6})):M("",!0),m(a)==="Mountaineering"?(h(),Y(Q8,{key:7})):M("",!0),m(a)==="Paragliding"?(h(),Y(l5,{key:8})):M("",!0),m(a)==="Open Water Swimming"?(h(),Y(a5,{key:9})):M("",!0),m(a)==="Rowing"?(h(),Y(_5,{key:10})):M("",!0),m(a)==="Running"?(h(),Y(I5,{key:11})):M("",!0),m(a)==="Skiing (Alpine)"?(h(),Y(P5,{key:12})):M("",!0),m(a)==="Skiing (Cross Country)"?(h(),Y(M5,{key:13})):M("",!0),m(a)==="Snowshoes"?(h(),Y(G5,{key:14})):M("",!0),m(a)==="Swimrun"?(h(),Y(Y5,{key:15})):M("",!0),m(a)==="Trail"?(h(),Y(nM,{key:16})):M("",!0),m(a)==="Walking"?(h(),Y(uM,{key:17})):M("",!0)],12,lM))}}),dM={},EM={class:"loader"};function fM(e,t){return h(),I("div",EM)}const pM=ie(dM,[["render",fM],["__scopeId","data-v-8b613881"]]),mM=e=>(ot("data-v-686c06c7"),e=e(),it(),e),_M={class:"custom-modal"},TM={key:0,class:"modal-message"},hM={key:1,class:"modal-message"},SM={key:2,class:"info-box"},AM=mM(()=>d("i",{class:"fa fa-exclamation-triangle","aria-hidden":"true"},null,-1)),OM={class:"modal-buttons"},gM=te({__name:"Modal",props:{title:{},message:{},strongMessage:{default:()=>""},warning:{default:()=>""}},emits:["cancelAction","confirmAction"],setup(e,{emit:t}){const n=e,a=t,s=$e(),{title:r,message:o,strongMessage:i}=_e(n),u=w(()=>s.getters[j.GETTERS.ERROR_MESSAGES]);let l=null,c=null,f=null;function E(p){var T;(p.key==="Tab"||p.keyCode===9)&&(p.preventDefault(),((T=document.activeElement)==null?void 0:T.id)==="cancel-button"?l==null||l.focus():c==null||c.focus())}return St(()=>{f=document.activeElement,c=document.getElementById("cancel-button"),l=document.getElementById("confirm-button"),c&&c.focus(),document.addEventListener("keydown",E)}),pt(()=>{s.commit(j.MUTATIONS.EMPTY_ERROR_MESSAGES),document.removeEventListener("keydown",E),f==null||f.focus()}),(p,T)=>{const O=oe("i18n-t"),R=oe("ErrorMessage"),g=oe("Card");return h(),I("div",{id:"modal",role:"dialog",onClick:T[2]||(T[2]=be(N=>a("cancelAction"),["self"]))},[d("div",_M,[W(g,null,{title:le(()=>[V(_(m(r)),1)]),content:le(()=>[m(i)?(h(),I("div",TM,[W(O,{keypath:m(o)},{default:le(()=>[d("span",null,_(m(i)),1)]),_:1},8,["keypath"])])):(h(),I("div",hM,_(m(o)),1)),p.warning?(h(),I("div",SM,[AM,V(" "+_(p.warning),1)])):M("",!0),u.value?(h(),Y(R,{key:3,message:u.value},null,8,["message"])):M("",!0),d("div",OM,[u.value?M("",!0):(h(),I("button",{key:0,class:pe(["confirm",{danger:p.warning}]),id:"confirm-button",onClick:T[0]||(T[0]=N=>a("confirmAction"))},_(p.$t("buttons.YES")),3)),d("button",{tabindex:"0",id:"cancel-button",class:"cancel",onClick:T[1]||(T[1]=N=>a("cancelAction"))},_(p.$t(`buttons.${u.value?"CANCEL":"NO"}`)),1)])]),_:1})])])}}}),IM=ie(gM,[["__scopeId","data-v-686c06c7"]]),RM=[{target:UU,name:"AlertMessage"},{target:oS,name:"Card"},{target:HU,name:"CustomTextArea"},{target:qU,name:"Distance"},{target:sw,name:"Dropdown"},{target:cw,name:"ErrorMessage"},{target:pM,name:"Loader"},{target:IM,name:"Modal"},{target:cM,name:"SportImage"},{target:Jw,name:"EquipmentTypeImage"}],NM={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)}};/*! - * shared v9.14.0 - * (c) 2024 kazuya kawaguchi - * Released under the MIT License. - */const Su=typeof window<"u",os=(e,t=!1)=>t?Symbol.for(e):Symbol(e),vM=(e,t,n)=>bM({l:e,k:t,s:n}),bM=e=>JSON.stringify(e).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029").replace(/\u0027/g,"\\u0027"),Wt=e=>typeof e=="number"&&isFinite(e),CM=e=>SS(e)==="[object Date]",ns=e=>SS(e)==="[object RegExp]",kl=e=>Ke(e)&&Object.keys(e).length===0,qt=Object.assign;let Jm;const ga=()=>Jm||(Jm=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function e_(e){return e.replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}const DM=Object.prototype.hasOwnProperty;function Au(e,t){return DM.call(e,t)}const Ct=Array.isArray,Rt=e=>typeof e=="function",Ie=e=>typeof e=="string",st=e=>typeof e=="boolean",Et=e=>e!==null&&typeof e=="object",PM=e=>Et(e)&&Rt(e.then)&&Rt(e.catch),hS=Object.prototype.toString,SS=e=>hS.call(e),Ke=e=>{if(!Et(e))return!1;const t=Object.getPrototypeOf(e);return t===null||t.constructor===Object},LM=e=>e==null?"":Ct(e)||Ke(e)&&e.toString===hS?JSON.stringify(e,null,2):String(e);function yM(e,t=""){return e.reduce((n,a,s)=>s===0?n+a:n+t+a,"")}function wl(e){let t=e;return()=>++t}function $M(e,t){typeof console<"u"&&(console.warn("[intlify] "+e),t&&console.warn(t.stack))}const Ti=e=>!Et(e)||Ct(e);function Yi(e,t){if(Ti(e)||Ti(t))throw new Error("Invalid value");const n=[{src:e,des:t}];for(;n.length;){const{src:a,des:s}=n.pop();Object.keys(a).forEach(r=>{Ti(a[r])||Ti(s[r])?s[r]=a[r]:n.push({src:a[r],des:s[r]})})}}/*! - * message-compiler v9.14.0 - * (c) 2024 kazuya kawaguchi - * Released under the MIT License. - */function UM(e,t,n){return{line:e,column:t,offset:n}}function Ou(e,t,n){return{start:e,end:t}}const kM=/\{([0-9a-zA-Z]+)\}/g;function AS(e,...t){return t.length===1&&wM(t[0])&&(t=t[0]),(!t||!t.hasOwnProperty)&&(t={}),e.replace(kM,(n,a)=>t.hasOwnProperty(a)?t[a]:"")}const OS=Object.assign,t_=e=>typeof e=="string",wM=e=>e!==null&&typeof e=="object";function gS(e,t=""){return e.reduce((n,a,s)=>s===0?n+a:n+t+a,"")}const nf={USE_MODULO_SYNTAX:1,__EXTEND_POINT__:2},MM={[nf.USE_MODULO_SYNTAX]:"Use modulo before '{{0}}'."};function WM(e,t,...n){const a=AS(MM[e],...n||[]),s={message:String(a),code:e};return t&&(s.location=t),s}const xe={EXPECTED_TOKEN:1,INVALID_TOKEN_IN_PLACEHOLDER:2,UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER:3,UNKNOWN_ESCAPE_SEQUENCE:4,INVALID_UNICODE_ESCAPE_SEQUENCE:5,UNBALANCED_CLOSING_BRACE:6,UNTERMINATED_CLOSING_BRACE:7,EMPTY_PLACEHOLDER:8,NOT_ALLOW_NEST_PLACEHOLDER:9,INVALID_LINKED_FORMAT:10,MUST_HAVE_MESSAGES_IN_PLURAL:11,UNEXPECTED_EMPTY_LINKED_MODIFIER:12,UNEXPECTED_EMPTY_LINKED_KEY:13,UNEXPECTED_LEXICAL_ANALYSIS:14,UNHANDLED_CODEGEN_NODE_TYPE:15,UNHANDLED_MINIFIER_NODE_TYPE:16,__EXTEND_POINT__:17},FM={[xe.EXPECTED_TOKEN]:"Expected token: '{0}'",[xe.INVALID_TOKEN_IN_PLACEHOLDER]:"Invalid token in placeholder: '{0}'",[xe.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER]:"Unterminated single quote in placeholder",[xe.UNKNOWN_ESCAPE_SEQUENCE]:"Unknown escape sequence: \\{0}",[xe.INVALID_UNICODE_ESCAPE_SEQUENCE]:"Invalid unicode escape sequence: {0}",[xe.UNBALANCED_CLOSING_BRACE]:"Unbalanced closing brace",[xe.UNTERMINATED_CLOSING_BRACE]:"Unterminated closing brace",[xe.EMPTY_PLACEHOLDER]:"Empty placeholder",[xe.NOT_ALLOW_NEST_PLACEHOLDER]:"Not allowed nest placeholder",[xe.INVALID_LINKED_FORMAT]:"Invalid linked format",[xe.MUST_HAVE_MESSAGES_IN_PLURAL]:"Plural must have messages",[xe.UNEXPECTED_EMPTY_LINKED_MODIFIER]:"Unexpected empty linked modifier",[xe.UNEXPECTED_EMPTY_LINKED_KEY]:"Unexpected empty linked key",[xe.UNEXPECTED_LEXICAL_ANALYSIS]:"Unexpected lexical analysis in token: '{0}'",[xe.UNHANDLED_CODEGEN_NODE_TYPE]:"unhandled codegen node type: '{0}'",[xe.UNHANDLED_MINIFIER_NODE_TYPE]:"unhandled mimifier node type: '{0}'"};function Pr(e,t,n={}){const{domain:a,messages:s,args:r}=n,o=AS((s||FM)[e]||"",...r||[]),i=new SyntaxError(String(o));return i.code=e,t&&(i.location=t),i.domain=a,i}function zM(e){throw e}const pa=" ",xM="\r",tn=` -`,BM="\u2028",GM="\u2029";function HM(e){const t=e;let n=0,a=1,s=1,r=0;const o=P=>t[P]===xM&&t[P+1]===tn,i=P=>t[P]===tn,u=P=>t[P]===GM,l=P=>t[P]===BM,c=P=>o(P)||i(P)||u(P)||l(P),f=()=>n,E=()=>a,p=()=>s,T=()=>r,O=P=>o(P)||u(P)||l(P)?tn:t[P],R=()=>O(n),g=()=>O(n+r);function N(){return r=0,c(n)&&(a++,s=0),o(n)&&n++,n++,s++,t[n]}function S(){return o(n+r)&&r++,r++,t[n+r]}function A(){n=0,a=1,s=1,r=0}function v(P=0){r=P}function D(){const P=n+r;for(;P!==n;)N();r=0}return{index:f,line:E,column:p,peekOffset:T,charAt:O,currentChar:R,currentPeek:g,next:N,peek:S,reset:A,resetPeek:v,skipToPeek:D}}const Wa=void 0,VM=".",n_="'",KM="tokenizer";function jM(e,t={}){const n=t.location!==!1,a=HM(e),s=()=>a.index(),r=()=>UM(a.line(),a.column(),a.index()),o=r(),i=s(),u={currentType:14,offset:i,startLoc:o,endLoc:o,lastType:14,lastOffset:i,lastStartLoc:o,lastEndLoc:o,braceNest:0,inLinked:!1,text:""},l=()=>u,{onError:c}=t;function f(L,U,x,...se){const Ae=l();if(U.column+=x,U.offset+=x,c){const ce=n?Ou(Ae.startLoc,U):null,K=Pr(L,ce,{domain:KM,args:se});c(K)}}function E(L,U,x){L.endLoc=r(),L.currentType=U;const se={type:U};return n&&(se.loc=Ou(L.startLoc,L.endLoc)),x!=null&&(se.value=x),se}const p=L=>E(L,14);function T(L,U){return L.currentChar()===U?(L.next(),U):(f(xe.EXPECTED_TOKEN,r(),0,U),"")}function O(L){let U="";for(;L.currentPeek()===pa||L.currentPeek()===tn;)U+=L.currentPeek(),L.peek();return U}function R(L){const U=O(L);return L.skipToPeek(),U}function g(L){if(L===Wa)return!1;const U=L.charCodeAt(0);return U>=97&&U<=122||U>=65&&U<=90||U===95}function N(L){if(L===Wa)return!1;const U=L.charCodeAt(0);return U>=48&&U<=57}function S(L,U){const{currentType:x}=U;if(x!==2)return!1;O(L);const se=g(L.currentPeek());return L.resetPeek(),se}function A(L,U){const{currentType:x}=U;if(x!==2)return!1;O(L);const se=L.currentPeek()==="-"?L.peek():L.currentPeek(),Ae=N(se);return L.resetPeek(),Ae}function v(L,U){const{currentType:x}=U;if(x!==2)return!1;O(L);const se=L.currentPeek()===n_;return L.resetPeek(),se}function D(L,U){const{currentType:x}=U;if(x!==8)return!1;O(L);const se=L.currentPeek()===".";return L.resetPeek(),se}function P(L,U){const{currentType:x}=U;if(x!==9)return!1;O(L);const se=g(L.currentPeek());return L.resetPeek(),se}function C(L,U){const{currentType:x}=U;if(!(x===8||x===12))return!1;O(L);const se=L.currentPeek()===":";return L.resetPeek(),se}function y(L,U){const{currentType:x}=U;if(x!==10)return!1;const se=()=>{const ce=L.currentPeek();return ce==="{"?g(L.peek()):ce==="@"||ce==="%"||ce==="|"||ce===":"||ce==="."||ce===pa||!ce?!1:ce===tn?(L.peek(),se()):F(L,!1)},Ae=se();return L.resetPeek(),Ae}function z(L){O(L);const U=L.currentPeek()==="|";return L.resetPeek(),U}function $(L){const U=O(L),x=L.currentPeek()==="%"&&L.peek()==="{";return L.resetPeek(),{isModulo:x,hasSpace:U.length>0}}function F(L,U=!0){const x=(Ae=!1,ce="",K=!1)=>{const J=L.currentPeek();return J==="{"?ce==="%"?!1:Ae:J==="@"||!J?ce==="%"?!0:Ae:J==="%"?(L.peek(),x(Ae,"%",!0)):J==="|"?ce==="%"||K?!0:!(ce===pa||ce===tn):J===pa?(L.peek(),x(!0,pa,K)):J===tn?(L.peek(),x(!0,tn,K)):!0},se=x();return U&&L.resetPeek(),se}function X(L,U){const x=L.currentChar();return x===Wa?Wa:U(x)?(L.next(),x):null}function re(L){const U=L.charCodeAt(0);return U>=97&&U<=122||U>=65&&U<=90||U>=48&&U<=57||U===95||U===36}function G(L){return X(L,re)}function Z(L){const U=L.charCodeAt(0);return U>=97&&U<=122||U>=65&&U<=90||U>=48&&U<=57||U===95||U===36||U===45}function q(L){return X(L,Z)}function B(L){const U=L.charCodeAt(0);return U>=48&&U<=57}function Ne(L){return X(L,B)}function qe(L){const U=L.charCodeAt(0);return U>=48&&U<=57||U>=65&&U<=70||U>=97&&U<=102}function Fe(L){return X(L,qe)}function Ue(L){let U="",x="";for(;U=Ne(L);)x+=U;return x}function zt(L){R(L);const U=L.currentChar();return U!=="%"&&f(xe.EXPECTED_TOKEN,r(),0,U),L.next(),"%"}function ge(L){let U="";for(;;){const x=L.currentChar();if(x==="{"||x==="}"||x==="@"||x==="|"||!x)break;if(x==="%")if(F(L))U+=x,L.next();else break;else if(x===pa||x===tn)if(F(L))U+=x,L.next();else{if(z(L))break;U+=x,L.next()}else U+=x,L.next()}return U}function Qe(L){R(L);let U="",x="";for(;U=q(L);)x+=U;return L.currentChar()===Wa&&f(xe.UNTERMINATED_CLOSING_BRACE,r(),0),x}function It(L){R(L);let U="";return L.currentChar()==="-"?(L.next(),U+=`-${Ue(L)}`):U+=Ue(L),L.currentChar()===Wa&&f(xe.UNTERMINATED_CLOSING_BRACE,r(),0),U}function ne(L){return L!==n_&&L!==tn}function Te(L){R(L),T(L,"'");let U="",x="";for(;U=X(L,ne);)U==="\\"?x+=he(L):x+=U;const se=L.currentChar();return se===tn||se===Wa?(f(xe.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER,r(),0),se===tn&&(L.next(),T(L,"'")),x):(T(L,"'"),x)}function he(L){const U=L.currentChar();switch(U){case"\\":case"'":return L.next(),`\\${U}`;case"u":return ve(L,U,4);case"U":return ve(L,U,6);default:return f(xe.UNKNOWN_ESCAPE_SEQUENCE,r(),0,U),""}}function ve(L,U,x){T(L,U);let se="";for(let Ae=0;Ae{const se=L.currentChar();return se==="{"||se==="%"||se==="@"||se==="|"||se==="("||se===")"||!se||se===pa?x:(x+=se,L.next(),U(x))};return U("")}function H(L){R(L);const U=T(L,"|");return R(L),U}function ue(L,U){let x=null;switch(L.currentChar()){case"{":return U.braceNest>=1&&f(xe.NOT_ALLOW_NEST_PLACEHOLDER,r(),0),L.next(),x=E(U,2,"{"),R(L),U.braceNest++,x;case"}":return U.braceNest>0&&U.currentType===2&&f(xe.EMPTY_PLACEHOLDER,r(),0),L.next(),x=E(U,3,"}"),U.braceNest--,U.braceNest>0&&R(L),U.inLinked&&U.braceNest===0&&(U.inLinked=!1),x;case"@":return U.braceNest>0&&f(xe.UNTERMINATED_CLOSING_BRACE,r(),0),x=ae(L,U)||p(U),U.braceNest=0,x;default:{let Ae=!0,ce=!0,K=!0;if(z(L))return U.braceNest>0&&f(xe.UNTERMINATED_CLOSING_BRACE,r(),0),x=E(U,1,H(L)),U.braceNest=0,U.inLinked=!1,x;if(U.braceNest>0&&(U.currentType===5||U.currentType===6||U.currentType===7))return f(xe.UNTERMINATED_CLOSING_BRACE,r(),0),U.braceNest=0,Ee(L,U);if(Ae=S(L,U))return x=E(U,5,Qe(L)),R(L),x;if(ce=A(L,U))return x=E(U,6,It(L)),R(L),x;if(K=v(L,U))return x=E(U,7,Te(L)),R(L),x;if(!Ae&&!ce&&!K)return x=E(U,13,mt(L)),f(xe.INVALID_TOKEN_IN_PLACEHOLDER,r(),0,x.value),R(L),x;break}}return x}function ae(L,U){const{currentType:x}=U;let se=null;const Ae=L.currentChar();switch((x===8||x===9||x===12||x===10)&&(Ae===tn||Ae===pa)&&f(xe.INVALID_LINKED_FORMAT,r(),0),Ae){case"@":return L.next(),se=E(U,8,"@"),U.inLinked=!0,se;case".":return R(L),L.next(),E(U,9,".");case":":return R(L),L.next(),E(U,10,":");default:return z(L)?(se=E(U,1,H(L)),U.braceNest=0,U.inLinked=!1,se):D(L,U)||C(L,U)?(R(L),ae(L,U)):P(L,U)?(R(L),E(U,12,k(L))):y(L,U)?(R(L),Ae==="{"?ue(L,U)||se:E(U,11,b(L))):(x===8&&f(xe.INVALID_LINKED_FORMAT,r(),0),U.braceNest=0,U.inLinked=!1,Ee(L,U))}}function Ee(L,U){let x={type:14};if(U.braceNest>0)return ue(L,U)||p(U);if(U.inLinked)return ae(L,U)||p(U);switch(L.currentChar()){case"{":return ue(L,U)||p(U);case"}":return f(xe.UNBALANCED_CLOSING_BRACE,r(),0),L.next(),E(U,3,"}");case"@":return ae(L,U)||p(U);default:{if(z(L))return x=E(U,1,H(L)),U.braceNest=0,U.inLinked=!1,x;const{isModulo:Ae,hasSpace:ce}=$(L);if(Ae)return ce?E(U,0,ge(L)):E(U,4,zt(L));if(F(L))return E(U,0,ge(L));break}}return x}function Oe(){const{currentType:L,offset:U,startLoc:x,endLoc:se}=u;return u.lastType=L,u.lastOffset=U,u.lastStartLoc=x,u.lastEndLoc=se,u.offset=s(),u.startLoc=r(),a.currentChar()===Wa?E(u,14):Ee(a,u)}return{nextToken:Oe,currentOffset:s,currentPosition:r,context:l}}const qM="parser",YM=/(?:\\\\|\\'|\\u([0-9a-fA-F]{4})|\\U([0-9a-fA-F]{6}))/g;function XM(e,t,n){switch(e){case"\\\\":return"\\";case"\\'":return"'";default:{const a=parseInt(t||n,16);return a<=55295||a>=57344?String.fromCodePoint(a):"�"}}}function QM(e={}){const t=e.location!==!1,{onError:n,onWarn:a}=e;function s(S,A,v,D,...P){const C=S.currentPosition();if(C.offset+=D,C.column+=D,n){const y=t?Ou(v,C):null,z=Pr(A,y,{domain:qM,args:P});n(z)}}function r(S,A,v,D,...P){const C=S.currentPosition();if(C.offset+=D,C.column+=D,a){const y=t?Ou(v,C):null;a(WM(A,y,P))}}function o(S,A,v){const D={type:S};return t&&(D.start=A,D.end=A,D.loc={start:v,end:v}),D}function i(S,A,v,D){t&&(S.end=A,S.loc&&(S.loc.end=v))}function u(S,A){const v=S.context(),D=o(3,v.offset,v.startLoc);return D.value=A,i(D,S.currentOffset(),S.currentPosition()),D}function l(S,A){const v=S.context(),{lastOffset:D,lastStartLoc:P}=v,C=o(5,D,P);return C.index=parseInt(A,10),S.nextToken(),i(C,S.currentOffset(),S.currentPosition()),C}function c(S,A,v){const D=S.context(),{lastOffset:P,lastStartLoc:C}=D,y=o(4,P,C);return y.key=A,v===!0&&(y.modulo=!0),S.nextToken(),i(y,S.currentOffset(),S.currentPosition()),y}function f(S,A){const v=S.context(),{lastOffset:D,lastStartLoc:P}=v,C=o(9,D,P);return C.value=A.replace(YM,XM),S.nextToken(),i(C,S.currentOffset(),S.currentPosition()),C}function E(S){const A=S.nextToken(),v=S.context(),{lastOffset:D,lastStartLoc:P}=v,C=o(8,D,P);return A.type!==12?(s(S,xe.UNEXPECTED_EMPTY_LINKED_MODIFIER,v.lastStartLoc,0),C.value="",i(C,D,P),{nextConsumeToken:A,node:C}):(A.value==null&&s(S,xe.UNEXPECTED_LEXICAL_ANALYSIS,v.lastStartLoc,0,xn(A)),C.value=A.value||"",i(C,S.currentOffset(),S.currentPosition()),{node:C})}function p(S,A){const v=S.context(),D=o(7,v.offset,v.startLoc);return D.value=A,i(D,S.currentOffset(),S.currentPosition()),D}function T(S){const A=S.context(),v=o(6,A.offset,A.startLoc);let D=S.nextToken();if(D.type===9){const P=E(S);v.modifier=P.node,D=P.nextConsumeToken||S.nextToken()}switch(D.type!==10&&s(S,xe.UNEXPECTED_LEXICAL_ANALYSIS,A.lastStartLoc,0,xn(D)),D=S.nextToken(),D.type===2&&(D=S.nextToken()),D.type){case 11:D.value==null&&s(S,xe.UNEXPECTED_LEXICAL_ANALYSIS,A.lastStartLoc,0,xn(D)),v.key=p(S,D.value||"");break;case 5:D.value==null&&s(S,xe.UNEXPECTED_LEXICAL_ANALYSIS,A.lastStartLoc,0,xn(D)),v.key=c(S,D.value||"");break;case 6:D.value==null&&s(S,xe.UNEXPECTED_LEXICAL_ANALYSIS,A.lastStartLoc,0,xn(D)),v.key=l(S,D.value||"");break;case 7:D.value==null&&s(S,xe.UNEXPECTED_LEXICAL_ANALYSIS,A.lastStartLoc,0,xn(D)),v.key=f(S,D.value||"");break;default:{s(S,xe.UNEXPECTED_EMPTY_LINKED_KEY,A.lastStartLoc,0);const P=S.context(),C=o(7,P.offset,P.startLoc);return C.value="",i(C,P.offset,P.startLoc),v.key=C,i(v,P.offset,P.startLoc),{nextConsumeToken:D,node:v}}}return i(v,S.currentOffset(),S.currentPosition()),{node:v}}function O(S){const A=S.context(),v=A.currentType===1?S.currentOffset():A.offset,D=A.currentType===1?A.endLoc:A.startLoc,P=o(2,v,D);P.items=[];let C=null,y=null;do{const F=C||S.nextToken();switch(C=null,F.type){case 0:F.value==null&&s(S,xe.UNEXPECTED_LEXICAL_ANALYSIS,A.lastStartLoc,0,xn(F)),P.items.push(u(S,F.value||""));break;case 6:F.value==null&&s(S,xe.UNEXPECTED_LEXICAL_ANALYSIS,A.lastStartLoc,0,xn(F)),P.items.push(l(S,F.value||""));break;case 4:y=!0;break;case 5:F.value==null&&s(S,xe.UNEXPECTED_LEXICAL_ANALYSIS,A.lastStartLoc,0,xn(F)),P.items.push(c(S,F.value||"",!!y)),y&&(r(S,nf.USE_MODULO_SYNTAX,A.lastStartLoc,0,xn(F)),y=null);break;case 7:F.value==null&&s(S,xe.UNEXPECTED_LEXICAL_ANALYSIS,A.lastStartLoc,0,xn(F)),P.items.push(f(S,F.value||""));break;case 8:{const X=T(S);P.items.push(X.node),C=X.nextConsumeToken||null;break}}}while(A.currentType!==14&&A.currentType!==1);const z=A.currentType===1?A.lastOffset:S.currentOffset(),$=A.currentType===1?A.lastEndLoc:S.currentPosition();return i(P,z,$),P}function R(S,A,v,D){const P=S.context();let C=D.items.length===0;const y=o(1,A,v);y.cases=[],y.cases.push(D);do{const z=O(S);C||(C=z.items.length===0),y.cases.push(z)}while(P.currentType!==14);return C&&s(S,xe.MUST_HAVE_MESSAGES_IN_PLURAL,v,0),i(y,S.currentOffset(),S.currentPosition()),y}function g(S){const A=S.context(),{offset:v,startLoc:D}=A,P=O(S);return A.currentType===14?P:R(S,v,D,P)}function N(S){const A=jM(S,OS({},e)),v=A.context(),D=o(0,v.offset,v.startLoc);return t&&D.loc&&(D.loc.source=S),D.body=g(A),e.onCacheKey&&(D.cacheKey=e.onCacheKey(S)),v.currentType!==14&&s(A,xe.UNEXPECTED_LEXICAL_ANALYSIS,v.lastStartLoc,0,S[v.offset]||""),i(D,A.currentOffset(),A.currentPosition()),D}return{parse:N}}function xn(e){if(e.type===14)return"EOF";const t=(e.value||"").replace(/\r?\n/gu,"\\n");return t.length>10?t.slice(0,9)+"…":t}function ZM(e,t={}){const n={ast:e,helpers:new Set};return{context:()=>n,helper:r=>(n.helpers.add(r),r)}}function a_(e,t){for(let n=0;ns_(n)),e}function s_(e){if(e.items.length===1){const t=e.items[0];(t.type===3||t.type===9)&&(e.static=t.value,delete t.value)}else{const t=[];for(let n=0;ni;function l(R,g){i.code+=R}function c(R,g=!0){const N=g?s:"";l(r?N+" ".repeat(R):N)}function f(R=!0){const g=++i.indentLevel;R&&c(g)}function E(R=!0){const g=--i.indentLevel;R&&c(g)}function p(){c(i.indentLevel)}return{context:u,push:l,indent:f,deindent:E,newline:p,helper:R=>`_${R}`,needIndent:()=>i.needIndent}}function s7(e,t){const{helper:n}=e;e.push(`${n("linked")}(`),mr(e,t.key),t.modifier?(e.push(", "),mr(e,t.modifier),e.push(", _type")):e.push(", undefined, _type"),e.push(")")}function r7(e,t){const{helper:n,needIndent:a}=e;e.push(`${n("normalize")}([`),e.indent(a());const s=t.items.length;for(let r=0;r1){e.push(`${n("plural")}([`),e.indent(a());const s=t.cases.length;for(let r=0;r{const n=t_(t.mode)?t.mode:"normal",a=t_(t.filename)?t.filename:"message.intl",s=!!t.sourceMap,r=t.breakLineCode!=null?t.breakLineCode:n==="arrow"?";":` -`,o=t.needIndent?t.needIndent:n!=="arrow",i=e.helpers||[],u=a7(e,{mode:n,filename:a,sourceMap:s,breakLineCode:r,needIndent:o});u.push(n==="normal"?"function __msg__ (ctx) {":"(ctx) => {"),u.indent(o),i.length>0&&(u.push(`const { ${gS(i.map(f=>`${f}: _${f}`),", ")} } = ctx`),u.newline()),u.push("return "),mr(u,e),u.deindent(o),u.push("}"),delete e.helpers;const{code:l,map:c}=u.context();return{ast:e,code:l,map:c?c.toJSON():void 0}};function l7(e,t={}){const n=OS({},t),a=!!n.jit,s=!!n.minify,r=n.optimize==null?!0:n.optimize,i=QM(n).parse(e);return a?(r&&e7(i),s&&Qs(i),{ast:i,code:""}):(JM(i,n),u7(i,n))}/*! - * core-base v9.14.0 - * (c) 2024 kazuya kawaguchi - * Released under the MIT License. - */function c7(){typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(ga().__INTLIFY_PROD_DEVTOOLS__=!1),typeof __INTLIFY_JIT_COMPILATION__!="boolean"&&(ga().__INTLIFY_JIT_COMPILATION__=!1),typeof __INTLIFY_DROP_MESSAGE_COMPILER__!="boolean"&&(ga().__INTLIFY_DROP_MESSAGE_COMPILER__=!1)}const is=[];is[0]={w:[0],i:[3,0],"[":[4],o:[7]};is[1]={w:[1],".":[2],"[":[4],o:[7]};is[2]={w:[2],i:[3,0],0:[3,0]};is[3]={i:[3,0],0:[3,0],w:[1,1],".":[2,1],"[":[4,1],o:[7,1]};is[4]={"'":[5,0],'"':[6,0],"[":[4,2],"]":[1,3],o:8,l:[4,0]};is[5]={"'":[4,0],o:8,l:[5,0]};is[6]={'"':[4,0],o:8,l:[6,0]};const d7=/^\s?(?:true|false|-?[\d.]+|'[^']*'|"[^"]*")\s?$/;function E7(e){return d7.test(e)}function f7(e){const t=e.charCodeAt(0),n=e.charCodeAt(e.length-1);return t===n&&(t===34||t===39)?e.slice(1,-1):e}function p7(e){if(e==null)return"o";switch(e.charCodeAt(0)){case 91:case 93:case 46:case 34:case 39:return e;case 95:case 36:case 45:return"i";case 9:case 10:case 13:case 160:case 65279:case 8232:case 8233:return"w"}return"i"}function m7(e){const t=e.trim();return e.charAt(0)==="0"&&isNaN(parseInt(e))?!1:E7(t)?f7(t):"*"+t}function _7(e){const t=[];let n=-1,a=0,s=0,r,o,i,u,l,c,f;const E=[];E[0]=()=>{o===void 0?o=i:o+=i},E[1]=()=>{o!==void 0&&(t.push(o),o=void 0)},E[2]=()=>{E[0](),s++},E[3]=()=>{if(s>0)s--,a=4,E[0]();else{if(s=0,o===void 0||(o=m7(o),o===!1))return!1;E[1]()}};function p(){const T=e[n+1];if(a===5&&T==="'"||a===6&&T==='"')return n++,i="\\"+T,E[0](),!0}for(;a!==null;)if(n++,r=e[n],!(r==="\\"&&p())){if(u=p7(r),f=is[a],l=f[u]||f.l||8,l===8||(a=l[0],l[1]!==void 0&&(c=E[l[1]],c&&(i=r,c()===!1))))return;if(a===7)return t}}const r_=new Map;function T7(e,t){return Et(e)?e[t]:null}function h7(e,t){if(!Et(e))return null;let n=r_.get(t);if(n||(n=_7(t),n&&r_.set(t,n)),!n)return null;const a=n.length;let s=e,r=0;for(;re,A7=e=>"",O7="text",g7=e=>e.length===0?"":yM(e),I7=LM;function o_(e,t){return e=Math.abs(e),t===2?e?e>1?1:0:1:e?Math.min(e,2):0}function R7(e){const t=Wt(e.pluralIndex)?e.pluralIndex:-1;return e.named&&(Wt(e.named.count)||Wt(e.named.n))?Wt(e.named.count)?e.named.count:Wt(e.named.n)?e.named.n:t:t}function N7(e,t){t.count||(t.count=e),t.n||(t.n=e)}function v7(e={}){const t=e.locale,n=R7(e),a=Et(e.pluralRules)&&Ie(t)&&Rt(e.pluralRules[t])?e.pluralRules[t]:o_,s=Et(e.pluralRules)&&Ie(t)&&Rt(e.pluralRules[t])?o_:void 0,r=g=>g[a(n,g.length,s)],o=e.list||[],i=g=>o[g],u=e.named||{};Wt(e.pluralIndex)&&N7(n,u);const l=g=>u[g];function c(g){const N=Rt(e.messages)?e.messages(g):Et(e.messages)?e.messages[g]:!1;return N||(e.parent?e.parent.message(g):A7)}const f=g=>e.modifiers?e.modifiers[g]:S7,E=Ke(e.processor)&&Rt(e.processor.normalize)?e.processor.normalize:g7,p=Ke(e.processor)&&Rt(e.processor.interpolate)?e.processor.interpolate:I7,T=Ke(e.processor)&&Ie(e.processor.type)?e.processor.type:O7,R={list:i,named:l,plural:r,linked:(g,...N)=>{const[S,A]=N;let v="text",D="";N.length===1?Et(S)?(D=S.modifier||D,v=S.type||v):Ie(S)&&(D=S||D):N.length===2&&(Ie(S)&&(D=S||D),Ie(A)&&(v=A||v));const P=c(g)(R),C=v==="vnode"&&Ct(P)&&D?P[0]:P;return D?f(D)(C,v):C},message:c,type:T,interpolate:p,normalize:E,values:qt({},o,u)};return R}let Io=null;function b7(e){Io=e}function C7(e,t,n){Io&&Io.emit("i18n:init",{timestamp:Date.now(),i18n:e,version:t,meta:n})}const D7=P7("function:translate");function P7(e){return t=>Io&&Io.emit(e,t)}const IS=nf.__EXTEND_POINT__,_s=wl(IS),L7={NOT_FOUND_KEY:IS,FALLBACK_TO_TRANSLATE:_s(),CANNOT_FORMAT_NUMBER:_s(),FALLBACK_TO_NUMBER_FORMAT:_s(),CANNOT_FORMAT_DATE:_s(),FALLBACK_TO_DATE_FORMAT:_s(),EXPERIMENTAL_CUSTOM_MESSAGE_COMPILER:_s(),__EXTEND_POINT__:_s()},RS=xe.__EXTEND_POINT__,Ts=wl(RS),Gn={INVALID_ARGUMENT:RS,INVALID_DATE_ARGUMENT:Ts(),INVALID_ISO_DATE_ARGUMENT:Ts(),NOT_SUPPORT_NON_STRING_MESSAGE:Ts(),NOT_SUPPORT_LOCALE_PROMISE_VALUE:Ts(),NOT_SUPPORT_LOCALE_ASYNC_FUNCTION:Ts(),NOT_SUPPORT_LOCALE_TYPE:Ts(),__EXTEND_POINT__:Ts()};function oa(e){return Pr(e,null,void 0)}function sf(e,t){return t.locale!=null?i_(t.locale):i_(e.locale)}let Rc;function i_(e){if(Ie(e))return e;if(Rt(e)){if(e.resolvedOnce&&Rc!=null)return Rc;if(e.constructor.name==="Function"){const t=e();if(PM(t))throw oa(Gn.NOT_SUPPORT_LOCALE_PROMISE_VALUE);return Rc=t}else throw oa(Gn.NOT_SUPPORT_LOCALE_ASYNC_FUNCTION)}else throw oa(Gn.NOT_SUPPORT_LOCALE_TYPE)}function y7(e,t,n){return[...new Set([n,...Ct(t)?t:Et(t)?Object.keys(t):Ie(t)?[t]:[n]])]}function NS(e,t,n){const a=Ie(n)?n:_r,s=e;s.__localeChainCache||(s.__localeChainCache=new Map);let r=s.__localeChainCache.get(a);if(!r){r=[];let o=[n];for(;Ct(o);)o=u_(r,o,t);const i=Ct(t)||!Ke(t)?t:t.default?t.default:null;o=Ie(i)?[i]:i,Ct(o)&&u_(r,o,!1),s.__localeChainCache.set(a,r)}return r}function u_(e,t,n){let a=!0;for(let s=0;s`${e.charAt(0).toLocaleUpperCase()}${e.substr(1)}`;function w7(){return{upper:(e,t)=>t==="text"&&Ie(e)?e.toUpperCase():t==="vnode"&&Et(e)&&"__v_isVNode"in e?e.children.toUpperCase():e,lower:(e,t)=>t==="text"&&Ie(e)?e.toLowerCase():t==="vnode"&&Et(e)&&"__v_isVNode"in e?e.children.toLowerCase():e,capitalize:(e,t)=>t==="text"&&Ie(e)?c_(e):t==="vnode"&&Et(e)&&"__v_isVNode"in e?c_(e.children):e}}let vS;function d_(e){vS=e}let bS;function M7(e){bS=e}let CS;function W7(e){CS=e}let DS=null;const F7=e=>{DS=e},z7=()=>DS;let PS=null;const E_=e=>{PS=e},x7=()=>PS;let f_=0;function B7(e={}){const t=Rt(e.onWarn)?e.onWarn:$M,n=Ie(e.version)?e.version:k7,a=Ie(e.locale)||Rt(e.locale)?e.locale:_r,s=Rt(a)?_r:a,r=Ct(e.fallbackLocale)||Ke(e.fallbackLocale)||Ie(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:s,o=Ke(e.messages)?e.messages:{[s]:{}},i=Ke(e.datetimeFormats)?e.datetimeFormats:{[s]:{}},u=Ke(e.numberFormats)?e.numberFormats:{[s]:{}},l=qt({},e.modifiers||{},w7()),c=e.pluralRules||{},f=Rt(e.missing)?e.missing:null,E=st(e.missingWarn)||ns(e.missingWarn)?e.missingWarn:!0,p=st(e.fallbackWarn)||ns(e.fallbackWarn)?e.fallbackWarn:!0,T=!!e.fallbackFormat,O=!!e.unresolving,R=Rt(e.postTranslation)?e.postTranslation:null,g=Ke(e.processor)?e.processor:null,N=st(e.warnHtmlMessage)?e.warnHtmlMessage:!0,S=!!e.escapeParameter,A=Rt(e.messageCompiler)?e.messageCompiler:vS,v=Rt(e.messageResolver)?e.messageResolver:bS||T7,D=Rt(e.localeFallbacker)?e.localeFallbacker:CS||y7,P=Et(e.fallbackContext)?e.fallbackContext:void 0,C=e,y=Et(C.__datetimeFormatters)?C.__datetimeFormatters:new Map,z=Et(C.__numberFormatters)?C.__numberFormatters:new Map,$=Et(C.__meta)?C.__meta:{};f_++;const F={version:n,cid:f_,locale:a,fallbackLocale:r,messages:o,modifiers:l,pluralRules:c,missing:f,missingWarn:E,fallbackWarn:p,fallbackFormat:T,unresolving:O,postTranslation:R,processor:g,warnHtmlMessage:N,escapeParameter:S,messageCompiler:A,messageResolver:v,localeFallbacker:D,fallbackContext:P,onWarn:t,__meta:$};return F.datetimeFormats=i,F.numberFormats=u,F.__datetimeFormatters=y,F.__numberFormatters=z,__INTLIFY_PROD_DEVTOOLS__&&C7(F,n,$),F}function rf(e,t,n,a,s){const{missing:r,onWarn:o}=e;if(r!==null){const i=r(e,n,t,s);return Ie(i)?i:t}else return t}function Hr(e,t,n){const a=e;a.__localeChainCache=new Map,e.localeFallbacker(e,n,t)}function G7(e,t){return e===t?!1:e.split("-")[0]===t.split("-")[0]}function H7(e,t){const n=t.indexOf(e);if(n===-1)return!1;for(let a=n+1;aV7(n,e)}function V7(e,t){const n=t.b||t.body;if((n.t||n.type)===1){const a=n,s=a.c||a.cases;return e.plural(s.reduce((r,o)=>[...r,p_(e,o)],[]))}else return p_(e,n)}function p_(e,t){const n=t.s||t.static;if(n)return e.type==="text"?n:e.normalize([n]);{const a=(t.i||t.items).reduce((s,r)=>[...s,Id(e,r)],[]);return e.normalize(a)}}function Id(e,t){const n=t.t||t.type;switch(n){case 3:{const a=t;return a.v||a.value}case 9:{const a=t;return a.v||a.value}case 4:{const a=t;return e.interpolate(e.named(a.k||a.key))}case 5:{const a=t;return e.interpolate(e.list(a.i!=null?a.i:a.index))}case 6:{const a=t,s=a.m||a.modifier;return e.linked(Id(e,a.k||a.key),s?Id(e,s):void 0,e.type)}case 7:{const a=t;return a.v||a.value}case 8:{const a=t;return a.v||a.value}default:throw new Error(`unhandled node type on format message part: ${n}`)}}const LS=e=>e;let Js=Object.create(null);const Tr=e=>Et(e)&&(e.t===0||e.type===0)&&("b"in e||"body"in e);function yS(e,t={}){let n=!1;const a=t.onError||zM;return t.onError=s=>{n=!0,a(s)},{...l7(e,t),detectError:n}}const K7=(e,t)=>{if(!Ie(e))throw oa(Gn.NOT_SUPPORT_NON_STRING_MESSAGE);{st(t.warnHtmlMessage)&&t.warnHtmlMessage;const a=(t.onCacheKey||LS)(e),s=Js[a];if(s)return s;const{code:r,detectError:o}=yS(e,t),i=new Function(`return ${r}`)();return o?i:Js[a]=i}};function j7(e,t){if(__INTLIFY_JIT_COMPILATION__&&!__INTLIFY_DROP_MESSAGE_COMPILER__&&Ie(e)){st(t.warnHtmlMessage)&&t.warnHtmlMessage;const a=(t.onCacheKey||LS)(e),s=Js[a];if(s)return s;const{ast:r,detectError:o}=yS(e,{...t,location:!1,jit:!0}),i=Nc(r);return o?i:Js[a]=i}else{const n=e.cacheKey;if(n){const a=Js[n];return a||(Js[n]=Nc(e))}else return Nc(e)}}const m_=()=>"",Un=e=>Rt(e);function __(e,...t){const{fallbackFormat:n,postTranslation:a,unresolving:s,messageCompiler:r,fallbackLocale:o,messages:i}=e,[u,l]=Rd(...t),c=st(l.missingWarn)?l.missingWarn:e.missingWarn,f=st(l.fallbackWarn)?l.fallbackWarn:e.fallbackWarn,E=st(l.escapeParameter)?l.escapeParameter:e.escapeParameter,p=!!l.resolvedMessage,T=Ie(l.default)||st(l.default)?st(l.default)?r?u:()=>u:l.default:n?r?u:()=>u:"",O=n||T!=="",R=sf(e,l);E&&q7(l);let[g,N,S]=p?[u,R,i[R]||{}]:$S(e,u,R,o,f,c),A=g,v=u;if(!p&&!(Ie(A)||Tr(A)||Un(A))&&O&&(A=T,v=A),!p&&(!(Ie(A)||Tr(A)||Un(A))||!Ie(N)))return s?Ml:u;let D=!1;const P=()=>{D=!0},C=Un(A)?A:US(e,u,N,A,v,P);if(D)return A;const y=Q7(e,N,S,l),z=v7(y),$=Y7(e,C,z),F=a?a($,u):$;if(__INTLIFY_PROD_DEVTOOLS__){const X={timestamp:Date.now(),key:Ie(u)?u:Un(A)?A.key:"",locale:N||(Un(A)?A.locale:""),format:Ie(A)?A:Un(A)?A.source:"",message:F};X.meta=qt({},e.__meta,z7()||{}),D7(X)}return F}function q7(e){Ct(e.list)?e.list=e.list.map(t=>Ie(t)?e_(t):t):Et(e.named)&&Object.keys(e.named).forEach(t=>{Ie(e.named[t])&&(e.named[t]=e_(e.named[t]))})}function $S(e,t,n,a,s,r){const{messages:o,onWarn:i,messageResolver:u,localeFallbacker:l}=e,c=l(e,a,n);let f={},E,p=null;const T="translate";for(let O=0;Oa;return l.locale=n,l.key=t,l}const u=o(a,X7(e,n,s,a,i,r));return u.locale=n,u.key=t,u.source=a,u}function Y7(e,t,n){return t(n)}function Rd(...e){const[t,n,a]=e,s={};if(!Ie(t)&&!Wt(t)&&!Un(t)&&!Tr(t))throw oa(Gn.INVALID_ARGUMENT);const r=Wt(t)?String(t):(Un(t),t);return Wt(n)?s.plural=n:Ie(n)?s.default=n:Ke(n)&&!kl(n)?s.named=n:Ct(n)&&(s.list=n),Wt(a)?s.plural=a:Ie(a)?s.default=a:Ke(a)&&qt(s,a),[r,s]}function X7(e,t,n,a,s,r){return{locale:t,key:n,warnHtmlMessage:s,onError:o=>{throw r&&r(o),o},onCacheKey:o=>vM(t,n,o)}}function Q7(e,t,n,a){const{modifiers:s,pluralRules:r,messageResolver:o,fallbackLocale:i,fallbackWarn:u,missingWarn:l,fallbackContext:c}=e,E={locale:t,modifiers:s,pluralRules:r,messages:p=>{let T=o(n,p);if(T==null&&c){const[,,O]=$S(c,p,t,i,u,l);T=o(O,p)}if(Ie(T)||Tr(T)){let O=!1;const g=US(e,p,t,T,p,()=>{O=!0});return O?m_:g}else return Un(T)?T:m_}};return e.processor&&(E.processor=e.processor),a.list&&(E.list=a.list),a.named&&(E.named=a.named),Wt(a.plural)&&(E.pluralIndex=a.plural),E}function T_(e,...t){const{datetimeFormats:n,unresolving:a,fallbackLocale:s,onWarn:r,localeFallbacker:o}=e,{__datetimeFormatters:i}=e,[u,l,c,f]=Nd(...t),E=st(c.missingWarn)?c.missingWarn:e.missingWarn;st(c.fallbackWarn)?c.fallbackWarn:e.fallbackWarn;const p=!!c.part,T=sf(e,c),O=o(e,s,T);if(!Ie(u)||u==="")return new Intl.DateTimeFormat(T,f).format(l);let R={},g,N=null;const S="datetime format";for(let D=0;D{kS.includes(u)?o[u]=n[u]:r[u]=n[u]}),Ie(a)?r.locale=a:Ke(a)&&(o=a),Ke(s)&&(o=s),[r.key||"",i,r,o]}function h_(e,t,n){const a=e;for(const s in n){const r=`${t}__${s}`;a.__datetimeFormatters.has(r)&&a.__datetimeFormatters.delete(r)}}function S_(e,...t){const{numberFormats:n,unresolving:a,fallbackLocale:s,onWarn:r,localeFallbacker:o}=e,{__numberFormatters:i}=e,[u,l,c,f]=vd(...t),E=st(c.missingWarn)?c.missingWarn:e.missingWarn;st(c.fallbackWarn)?c.fallbackWarn:e.fallbackWarn;const p=!!c.part,T=sf(e,c),O=o(e,s,T);if(!Ie(u)||u==="")return new Intl.NumberFormat(T,f).format(l);let R={},g,N=null;const S="number format";for(let D=0;D{wS.includes(u)?o[u]=n[u]:r[u]=n[u]}),Ie(a)?r.locale=a:Ke(a)&&(o=a),Ke(s)&&(o=s),[r.key||"",i,r,o]}function A_(e,t,n){const a=e;for(const s in n){const r=`${t}__${s}`;a.__numberFormatters.has(r)&&a.__numberFormatters.delete(r)}}c7();/*! - * vue-i18n v9.14.0 - * (c) 2024 kazuya kawaguchi - * Released under the MIT License. - */const Z7="9.14.0";function J7(){typeof __VUE_I18N_FULL_INSTALL__!="boolean"&&(ga().__VUE_I18N_FULL_INSTALL__=!0),typeof __VUE_I18N_LEGACY_API__!="boolean"&&(ga().__VUE_I18N_LEGACY_API__=!0),typeof __INTLIFY_JIT_COMPILATION__!="boolean"&&(ga().__INTLIFY_JIT_COMPILATION__=!1),typeof __INTLIFY_DROP_MESSAGE_COMPILER__!="boolean"&&(ga().__INTLIFY_DROP_MESSAGE_COMPILER__=!1),typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(ga().__INTLIFY_PROD_DEVTOOLS__=!1)}const MS=L7.__EXTEND_POINT__,ma=wl(MS);ma(),ma(),ma(),ma(),ma(),ma(),ma(),ma(),ma();const WS=Gn.__EXTEND_POINT__,ln=wl(WS),Ft={UNEXPECTED_RETURN_TYPE:WS,INVALID_ARGUMENT:ln(),MUST_BE_CALL_SETUP_TOP:ln(),NOT_INSTALLED:ln(),NOT_AVAILABLE_IN_LEGACY_MODE:ln(),REQUIRED_VALUE:ln(),INVALID_VALUE:ln(),CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN:ln(),NOT_INSTALLED_WITH_PROVIDE:ln(),UNEXPECTED_ERROR:ln(),NOT_COMPATIBLE_LEGACY_VUE_I18N:ln(),BRIDGE_SUPPORT_VUE_2_ONLY:ln(),MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION:ln(),NOT_AVAILABLE_COMPOSITION_IN_LEGACY:ln(),__EXTEND_POINT__:ln()};function Ht(e,...t){return Pr(e,null,void 0)}const bd=os("__translateVNode"),Cd=os("__datetimeParts"),Dd=os("__numberParts"),FS=os("__setPluralRules"),zS=os("__injectWithOption"),Pd=os("__dispose");function Ro(e){if(!Et(e))return e;for(const t in e)if(Au(e,t))if(!t.includes("."))Et(e[t])&&Ro(e[t]);else{const n=t.split("."),a=n.length-1;let s=e,r=!1;for(let o=0;o{if("locale"in i&&"resource"in i){const{locale:u,resource:l}=i;u?(o[u]=o[u]||{},Yi(l,o[u])):Yi(l,o)}else Ie(i)&&Yi(JSON.parse(i),o)}),s==null&&r)for(const i in o)Au(o,i)&&Ro(o[i]);return o}function xS(e){return e.type}function BS(e,t,n){let a=Et(t.messages)?t.messages:{};"__i18nGlobal"in n&&(a=Wl(e.locale.value,{messages:a,__i18n:n.__i18nGlobal}));const s=Object.keys(a);s.length&&s.forEach(r=>{e.mergeLocaleMessage(r,a[r])});{if(Et(t.datetimeFormats)){const r=Object.keys(t.datetimeFormats);r.length&&r.forEach(o=>{e.mergeDateTimeFormat(o,t.datetimeFormats[o])})}if(Et(t.numberFormats)){const r=Object.keys(t.numberFormats);r.length&&r.forEach(o=>{e.mergeNumberFormat(o,t.numberFormats[o])})}}}function O_(e){return W(xo,null,e,0)}const g_="__INTLIFY_META__",I_=()=>[],e9=()=>!1;let R_=0;function N_(e){return(t,n,a,s)=>e(n,a,lr()||void 0,s)}const t9=()=>{const e=lr();let t=null;return e&&(t=xS(e)[g_])?{[g_]:t}:null};function of(e={},t){const{__root:n,__injectWithOption:a}=e,s=n===void 0,r=e.flatJson,o=Su?de:Fo,i=!!e.translateExistCompatible;let u=st(e.inheritLocale)?e.inheritLocale:!0;const l=o(n&&u?n.locale.value:Ie(e.locale)?e.locale:_r),c=o(n&&u?n.fallbackLocale.value:Ie(e.fallbackLocale)||Ct(e.fallbackLocale)||Ke(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:l.value),f=o(Wl(l.value,e)),E=o(Ke(e.datetimeFormats)?e.datetimeFormats:{[l.value]:{}}),p=o(Ke(e.numberFormats)?e.numberFormats:{[l.value]:{}});let T=n?n.missingWarn:st(e.missingWarn)||ns(e.missingWarn)?e.missingWarn:!0,O=n?n.fallbackWarn:st(e.fallbackWarn)||ns(e.fallbackWarn)?e.fallbackWarn:!0,R=n?n.fallbackRoot:st(e.fallbackRoot)?e.fallbackRoot:!0,g=!!e.fallbackFormat,N=Rt(e.missing)?e.missing:null,S=Rt(e.missing)?N_(e.missing):null,A=Rt(e.postTranslation)?e.postTranslation:null,v=n?n.warnHtmlMessage:st(e.warnHtmlMessage)?e.warnHtmlMessage:!0,D=!!e.escapeParameter;const P=n?n.modifiers:Ke(e.modifiers)?e.modifiers:{};let C=e.pluralRules||n&&n.pluralRules,y;y=(()=>{s&&E_(null);const K={version:Z7,locale:l.value,fallbackLocale:c.value,messages:f.value,modifiers:P,pluralRules:C,missing:S===null?void 0:S,missingWarn:T,fallbackWarn:O,fallbackFormat:g,unresolving:!0,postTranslation:A===null?void 0:A,warnHtmlMessage:v,escapeParameter:D,messageResolver:e.messageResolver,messageCompiler:e.messageCompiler,__meta:{framework:"vue"}};K.datetimeFormats=E.value,K.numberFormats=p.value,K.__datetimeFormatters=Ke(y)?y.__datetimeFormatters:void 0,K.__numberFormatters=Ke(y)?y.__numberFormatters:void 0;const J=B7(K);return s&&E_(J),J})(),Hr(y,l.value,c.value);function $(){return[l.value,c.value,f.value,E.value,p.value]}const F=w({get:()=>l.value,set:K=>{l.value=K,y.locale=l.value}}),X=w({get:()=>c.value,set:K=>{c.value=K,y.fallbackLocale=c.value,Hr(y,l.value,K)}}),re=w(()=>f.value),G=w(()=>E.value),Z=w(()=>p.value);function q(){return Rt(A)?A:null}function B(K){A=K,y.postTranslation=K}function Ne(){return N}function qe(K){K!==null&&(S=N_(K)),N=K,y.missing=S}const Fe=(K,J,ke,we,Ot,Qt)=>{$();let gn;try{__INTLIFY_PROD_DEVTOOLS__,s||(y.fallbackContext=n?x7():void 0),gn=K(y)}finally{__INTLIFY_PROD_DEVTOOLS__,s||(y.fallbackContext=void 0)}if(ke!=="translate exists"&&Wt(gn)&&gn===Ml||ke==="translate exists"&&!gn){const[oi,xs]=J();return n&&R?we(n):Ot(oi)}else{if(Qt(gn))return gn;throw Ht(Ft.UNEXPECTED_RETURN_TYPE)}};function Ue(...K){return Fe(J=>Reflect.apply(__,null,[J,...K]),()=>Rd(...K),"translate",J=>Reflect.apply(J.t,J,[...K]),J=>J,J=>Ie(J))}function zt(...K){const[J,ke,we]=K;if(we&&!Et(we))throw Ht(Ft.INVALID_ARGUMENT);return Ue(J,ke,qt({resolvedMessage:!0},we||{}))}function ge(...K){return Fe(J=>Reflect.apply(T_,null,[J,...K]),()=>Nd(...K),"datetime format",J=>Reflect.apply(J.d,J,[...K]),()=>l_,J=>Ie(J))}function Qe(...K){return Fe(J=>Reflect.apply(S_,null,[J,...K]),()=>vd(...K),"number format",J=>Reflect.apply(J.n,J,[...K]),()=>l_,J=>Ie(J))}function It(K){return K.map(J=>Ie(J)||Wt(J)||st(J)?O_(String(J)):J)}const Te={normalize:It,interpolate:K=>K,type:"vnode"};function he(...K){return Fe(J=>{let ke;const we=J;try{we.processor=Te,ke=Reflect.apply(__,null,[we,...K])}finally{we.processor=null}return ke},()=>Rd(...K),"translate",J=>J[bd](...K),J=>[O_(J)],J=>Ct(J))}function ve(...K){return Fe(J=>Reflect.apply(S_,null,[J,...K]),()=>vd(...K),"number format",J=>J[Dd](...K),I_,J=>Ie(J)||Ct(J))}function ut(...K){return Fe(J=>Reflect.apply(T_,null,[J,...K]),()=>Nd(...K),"datetime format",J=>J[Cd](...K),I_,J=>Ie(J)||Ct(J))}function mt(K){C=K,y.pluralRules=C}function k(K,J){return Fe(()=>{if(!K)return!1;const ke=Ie(J)?J:l.value,we=ue(ke),Ot=y.messageResolver(we,K);return i?Ot!=null:Tr(Ot)||Un(Ot)||Ie(Ot)},()=>[K],"translate exists",ke=>Reflect.apply(ke.te,ke,[K,J]),e9,ke=>st(ke))}function b(K){let J=null;const ke=NS(y,c.value,l.value);for(let we=0;we{u&&(l.value=K,y.locale=K,Hr(y,l.value,c.value))}),We(n.fallbackLocale,K=>{u&&(c.value=K,y.fallbackLocale=K,Hr(y,l.value,c.value))}));const ce={id:R_,locale:F,fallbackLocale:X,get inheritLocale(){return u},set inheritLocale(K){u=K,K&&n&&(l.value=n.locale.value,c.value=n.fallbackLocale.value,Hr(y,l.value,c.value))},get availableLocales(){return Object.keys(f.value).sort()},messages:re,get modifiers(){return P},get pluralRules(){return C||{}},get isGlobal(){return s},get missingWarn(){return T},set missingWarn(K){T=K,y.missingWarn=T},get fallbackWarn(){return O},set fallbackWarn(K){O=K,y.fallbackWarn=O},get fallbackRoot(){return R},set fallbackRoot(K){R=K},get fallbackFormat(){return g},set fallbackFormat(K){g=K,y.fallbackFormat=g},get warnHtmlMessage(){return v},set warnHtmlMessage(K){v=K,y.warnHtmlMessage=K},get escapeParameter(){return D},set escapeParameter(K){D=K,y.escapeParameter=K},t:Ue,getLocaleMessage:ue,setLocaleMessage:ae,mergeLocaleMessage:Ee,getPostTranslationHandler:q,setPostTranslationHandler:B,getMissingHandler:Ne,setMissingHandler:qe,[FS]:mt};return ce.datetimeFormats=G,ce.numberFormats=Z,ce.rt=zt,ce.te=k,ce.tm=H,ce.d=ge,ce.n=Qe,ce.getDateTimeFormat=Oe,ce.setDateTimeFormat=L,ce.mergeDateTimeFormat=U,ce.getNumberFormat=x,ce.setNumberFormat=se,ce.mergeNumberFormat=Ae,ce[zS]=a,ce[bd]=he,ce[Cd]=ut,ce[Dd]=ve,ce}function n9(e){const t=Ie(e.locale)?e.locale:_r,n=Ie(e.fallbackLocale)||Ct(e.fallbackLocale)||Ke(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:t,a=Rt(e.missing)?e.missing:void 0,s=st(e.silentTranslationWarn)||ns(e.silentTranslationWarn)?!e.silentTranslationWarn:!0,r=st(e.silentFallbackWarn)||ns(e.silentFallbackWarn)?!e.silentFallbackWarn:!0,o=st(e.fallbackRoot)?e.fallbackRoot:!0,i=!!e.formatFallbackMessages,u=Ke(e.modifiers)?e.modifiers:{},l=e.pluralizationRules,c=Rt(e.postTranslation)?e.postTranslation:void 0,f=Ie(e.warnHtmlInMessage)?e.warnHtmlInMessage!=="off":!0,E=!!e.escapeParameterHtml,p=st(e.sync)?e.sync:!0;let T=e.messages;if(Ke(e.sharedMessages)){const D=e.sharedMessages;T=Object.keys(D).reduce((C,y)=>{const z=C[y]||(C[y]={});return qt(z,D[y]),C},T||{})}const{__i18n:O,__root:R,__injectWithOption:g}=e,N=e.datetimeFormats,S=e.numberFormats,A=e.flatJson,v=e.translateExistCompatible;return{locale:t,fallbackLocale:n,messages:T,flatJson:A,datetimeFormats:N,numberFormats:S,missing:a,missingWarn:s,fallbackWarn:r,fallbackRoot:o,fallbackFormat:i,modifiers:u,pluralRules:l,postTranslation:c,warnHtmlMessage:f,escapeParameter:E,messageResolver:e.messageResolver,inheritLocale:p,translateExistCompatible:v,__i18n:O,__root:R,__injectWithOption:g}}function Ld(e={},t){{const n=of(n9(e)),{__extender:a}=e,s={id:n.id,get locale(){return n.locale.value},set locale(r){n.locale.value=r},get fallbackLocale(){return n.fallbackLocale.value},set fallbackLocale(r){n.fallbackLocale.value=r},get messages(){return n.messages.value},get datetimeFormats(){return n.datetimeFormats.value},get numberFormats(){return n.numberFormats.value},get availableLocales(){return n.availableLocales},get formatter(){return{interpolate(){return[]}}},set formatter(r){},get missing(){return n.getMissingHandler()},set missing(r){n.setMissingHandler(r)},get silentTranslationWarn(){return st(n.missingWarn)?!n.missingWarn:n.missingWarn},set silentTranslationWarn(r){n.missingWarn=st(r)?!r:r},get silentFallbackWarn(){return st(n.fallbackWarn)?!n.fallbackWarn:n.fallbackWarn},set silentFallbackWarn(r){n.fallbackWarn=st(r)?!r:r},get modifiers(){return n.modifiers},get formatFallbackMessages(){return n.fallbackFormat},set formatFallbackMessages(r){n.fallbackFormat=r},get postTranslation(){return n.getPostTranslationHandler()},set postTranslation(r){n.setPostTranslationHandler(r)},get sync(){return n.inheritLocale},set sync(r){n.inheritLocale=r},get warnHtmlInMessage(){return n.warnHtmlMessage?"warn":"off"},set warnHtmlInMessage(r){n.warnHtmlMessage=r!=="off"},get escapeParameterHtml(){return n.escapeParameter},set escapeParameterHtml(r){n.escapeParameter=r},get preserveDirectiveContent(){return!0},set preserveDirectiveContent(r){},get pluralizationRules(){return n.pluralRules||{}},__composer:n,t(...r){const[o,i,u]=r,l={};let c=null,f=null;if(!Ie(o))throw Ht(Ft.INVALID_ARGUMENT);const E=o;return Ie(i)?l.locale=i:Ct(i)?c=i:Ke(i)&&(f=i),Ct(u)?c=u:Ke(u)&&(f=u),Reflect.apply(n.t,n,[E,c||f||{},l])},rt(...r){return Reflect.apply(n.rt,n,[...r])},tc(...r){const[o,i,u]=r,l={plural:1};let c=null,f=null;if(!Ie(o))throw Ht(Ft.INVALID_ARGUMENT);const E=o;return Ie(i)?l.locale=i:Wt(i)?l.plural=i:Ct(i)?c=i:Ke(i)&&(f=i),Ie(u)?l.locale=u:Ct(u)?c=u:Ke(u)&&(f=u),Reflect.apply(n.t,n,[E,c||f||{},l])},te(r,o){return n.te(r,o)},tm(r){return n.tm(r)},getLocaleMessage(r){return n.getLocaleMessage(r)},setLocaleMessage(r,o){n.setLocaleMessage(r,o)},mergeLocaleMessage(r,o){n.mergeLocaleMessage(r,o)},d(...r){return Reflect.apply(n.d,n,[...r])},getDateTimeFormat(r){return n.getDateTimeFormat(r)},setDateTimeFormat(r,o){n.setDateTimeFormat(r,o)},mergeDateTimeFormat(r,o){n.mergeDateTimeFormat(r,o)},n(...r){return Reflect.apply(n.n,n,[...r])},getNumberFormat(r){return n.getNumberFormat(r)},setNumberFormat(r,o){n.setNumberFormat(r,o)},mergeNumberFormat(r,o){n.mergeNumberFormat(r,o)},getChoiceIndex(r,o){return-1}};return s.__extender=a,s}}const uf={tag:{type:[String,Object]},locale:{type:String},scope:{type:String,validator:e=>e==="parent"||e==="global",default:"parent"},i18n:{type:Object}};function a9({slots:e},t){return t.length===1&&t[0]==="default"?(e.default?e.default():[]).reduce((a,s)=>[...a,...s.type===me?s.children:[s]],[]):t.reduce((n,a)=>{const s=e[a];return s&&(n[a]=s()),n},{})}function GS(e){return me}const s9=te({name:"i18n-t",props:qt({keypath:{type:String,required:!0},plural:{type:[Number,String],validator:e=>Wt(e)||!isNaN(e)}},uf),setup(e,t){const{slots:n,attrs:a}=t,s=e.i18n||yt({useScope:e.scope,__useComponent:!0});return()=>{const r=Object.keys(n).filter(f=>f!=="_"),o={};e.locale&&(o.locale=e.locale),e.plural!==void 0&&(o.plural=Ie(e.plural)?+e.plural:e.plural);const i=a9(t,r),u=s[bd](e.keypath,i,o),l=qt({},a),c=Ie(e.tag)||Et(e.tag)?e.tag:GS();return Sn(c,l,u)}}}),v_=s9;function r9(e){return Ct(e)&&!Ie(e[0])}function HS(e,t,n,a){const{slots:s,attrs:r}=t;return()=>{const o={part:!0};let i={};e.locale&&(o.locale=e.locale),Ie(e.format)?o.key=e.format:Et(e.format)&&(Ie(e.format.key)&&(o.key=e.format.key),i=Object.keys(e.format).reduce((E,p)=>n.includes(p)?qt({},E,{[p]:e.format[p]}):E,{}));const u=a(e.value,o,i);let l=[o.key];Ct(u)?l=u.map((E,p)=>{const T=s[E.type],O=T?T({[E.type]:E.value,index:p,parts:u}):[E.value];return r9(O)&&(O[0].key=`${E.type}-${p}`),O}):Ie(u)&&(l=[u]);const c=qt({},r),f=Ie(e.tag)||Et(e.tag)?e.tag:GS();return Sn(f,c,l)}}const o9=te({name:"i18n-n",props:qt({value:{type:Number,required:!0},format:{type:[String,Object]}},uf),setup(e,t){const n=e.i18n||yt({useScope:e.scope,__useComponent:!0});return HS(e,t,wS,(...a)=>n[Dd](...a))}}),b_=o9,i9=te({name:"i18n-d",props:qt({value:{type:[Number,Date],required:!0},format:{type:[String,Object]}},uf),setup(e,t){const n=e.i18n||yt({useScope:e.scope,__useComponent:!0});return HS(e,t,kS,(...a)=>n[Cd](...a))}}),C_=i9;function u9(e,t){const n=e;if(e.mode==="composition")return n.__getInstance(t)||e.global;{const a=n.__getInstance(t);return a!=null?a.__composer:e.global.__composer}}function l9(e){const t=o=>{const{instance:i,modifiers:u,value:l}=o;if(!i||!i.$)throw Ht(Ft.UNEXPECTED_ERROR);const c=u9(e,i.$),f=D_(l);return[Reflect.apply(c.t,c,[...P_(f)]),c]};return{created:(o,i)=>{const[u,l]=t(i);Su&&e.global===l&&(o.__i18nWatcher=We(l.locale,()=>{i.instance&&i.instance.$forceUpdate()})),o.__composer=l,o.textContent=u},unmounted:o=>{Su&&o.__i18nWatcher&&(o.__i18nWatcher(),o.__i18nWatcher=void 0,delete o.__i18nWatcher),o.__composer&&(o.__composer=void 0,delete o.__composer)},beforeUpdate:(o,{value:i})=>{if(o.__composer){const u=o.__composer,l=D_(i);o.textContent=Reflect.apply(u.t,u,[...P_(l)])}},getSSRProps:o=>{const[i]=t(o);return{textContent:i}}}}function D_(e){if(Ie(e))return{path:e};if(Ke(e)){if(!("path"in e))throw Ht(Ft.REQUIRED_VALUE,"path");return e}else throw Ht(Ft.INVALID_VALUE)}function P_(e){const{path:t,locale:n,args:a,choice:s,plural:r}=e,o={},i=a||{};return Ie(n)&&(o.locale=n),Wt(s)&&(o.plural=s),Wt(r)&&(o.plural=r),[t,i,o]}function c9(e,t,...n){const a=Ke(n[0])?n[0]:{},s=!!a.useI18nComponentName;(st(a.globalInstall)?a.globalInstall:!0)&&([s?"i18n":v_.name,"I18nT"].forEach(o=>e.component(o,v_)),[b_.name,"I18nN"].forEach(o=>e.component(o,b_)),[C_.name,"I18nD"].forEach(o=>e.component(o,C_))),e.directive("t",l9(t))}function d9(e,t,n){return{beforeCreate(){const a=lr();if(!a)throw Ht(Ft.UNEXPECTED_ERROR);const s=this.$options;if(s.i18n){const r=s.i18n;if(s.__i18n&&(r.__i18n=s.__i18n),r.__root=t,this===this.$root)this.$i18n=L_(e,r);else{r.__injectWithOption=!0,r.__extender=n.__vueI18nExtend,this.$i18n=Ld(r);const o=this.$i18n;o.__extender&&(o.__disposer=o.__extender(this.$i18n))}}else if(s.__i18n)if(this===this.$root)this.$i18n=L_(e,s);else{this.$i18n=Ld({__i18n:s.__i18n,__injectWithOption:!0,__extender:n.__vueI18nExtend,__root:t});const r=this.$i18n;r.__extender&&(r.__disposer=r.__extender(this.$i18n))}else this.$i18n=e;s.__i18nGlobal&&BS(t,s,s),this.$t=(...r)=>this.$i18n.t(...r),this.$rt=(...r)=>this.$i18n.rt(...r),this.$tc=(...r)=>this.$i18n.tc(...r),this.$te=(r,o)=>this.$i18n.te(r,o),this.$d=(...r)=>this.$i18n.d(...r),this.$n=(...r)=>this.$i18n.n(...r),this.$tm=r=>this.$i18n.tm(r),n.__setInstance(a,this.$i18n)},mounted(){},unmounted(){const a=lr();if(!a)throw Ht(Ft.UNEXPECTED_ERROR);const s=this.$i18n;delete this.$t,delete this.$rt,delete this.$tc,delete this.$te,delete this.$d,delete this.$n,delete this.$tm,s.__disposer&&(s.__disposer(),delete s.__disposer,delete s.__extender),n.__deleteInstance(a),delete this.$i18n}}}function L_(e,t){e.locale=t.locale||e.locale,e.fallbackLocale=t.fallbackLocale||e.fallbackLocale,e.missing=t.missing||e.missing,e.silentTranslationWarn=t.silentTranslationWarn||e.silentFallbackWarn,e.silentFallbackWarn=t.silentFallbackWarn||e.silentFallbackWarn,e.formatFallbackMessages=t.formatFallbackMessages||e.formatFallbackMessages,e.postTranslation=t.postTranslation||e.postTranslation,e.warnHtmlInMessage=t.warnHtmlInMessage||e.warnHtmlInMessage,e.escapeParameterHtml=t.escapeParameterHtml||e.escapeParameterHtml,e.sync=t.sync||e.sync,e.__composer[FS](t.pluralizationRules||e.pluralizationRules);const n=Wl(e.locale,{messages:t.messages,__i18n:t.__i18n});return Object.keys(n).forEach(a=>e.mergeLocaleMessage(a,n[a])),t.datetimeFormats&&Object.keys(t.datetimeFormats).forEach(a=>e.mergeDateTimeFormat(a,t.datetimeFormats[a])),t.numberFormats&&Object.keys(t.numberFormats).forEach(a=>e.mergeNumberFormat(a,t.numberFormats[a])),e}const E9=os("global-vue-i18n");function f9(e={},t){const n=__VUE_I18N_LEGACY_API__&&st(e.legacy)?e.legacy:__VUE_I18N_LEGACY_API__,a=st(e.globalInjection)?e.globalInjection:!0,s=__VUE_I18N_LEGACY_API__&&n?!!e.allowComposition:!0,r=new Map,[o,i]=p9(e,n),u=os("");function l(E){return r.get(E)||null}function c(E,p){r.set(E,p)}function f(E){r.delete(E)}{const E={get mode(){return __VUE_I18N_LEGACY_API__&&n?"legacy":"composition"},get allowComposition(){return s},async install(p,...T){if(p.__VUE_I18N_SYMBOL__=u,p.provide(p.__VUE_I18N_SYMBOL__,E),Ke(T[0])){const g=T[0];E.__composerExtend=g.__composerExtend,E.__vueI18nExtend=g.__vueI18nExtend}let O=null;!n&&a&&(O=I9(p,E.global)),__VUE_I18N_FULL_INSTALL__&&c9(p,E,...T),__VUE_I18N_LEGACY_API__&&n&&p.mixin(d9(i,i.__composer,E));const R=p.unmount;p.unmount=()=>{O&&O(),E.dispose(),R()}},get global(){return i},dispose(){o.stop()},__instances:r,__getInstance:l,__setInstance:c,__deleteInstance:f};return E}}function yt(e={}){const t=lr();if(t==null)throw Ht(Ft.MUST_BE_CALL_SETUP_TOP);if(!t.isCE&&t.appContext.app!=null&&!t.appContext.app.__VUE_I18N_SYMBOL__)throw Ht(Ft.NOT_INSTALLED);const n=m9(t),a=T9(n),s=xS(t),r=_9(e,s);if(__VUE_I18N_LEGACY_API__&&n.mode==="legacy"&&!e.__useComponent){if(!n.allowComposition)throw Ht(Ft.NOT_AVAILABLE_IN_LEGACY_MODE);return O9(t,r,a,e)}if(r==="global")return BS(a,e,s),a;if(r==="parent"){let u=h9(n,t,e.__useComponent);return u==null&&(u=a),u}const o=n;let i=o.__getInstance(t);if(i==null){const u=qt({},e);"__i18n"in s&&(u.__i18n=s.__i18n),a&&(u.__root=a),i=of(u),o.__composerExtend&&(i[Pd]=o.__composerExtend(i)),A9(o,t,i),o.__setInstance(t,i)}return i}function p9(e,t,n){const a=C0();{const s=__VUE_I18N_LEGACY_API__&&t?a.run(()=>Ld(e)):a.run(()=>of(e));if(s==null)throw Ht(Ft.UNEXPECTED_ERROR);return[a,s]}}function m9(e){{const t=Nt(e.isCE?E9:e.appContext.app.__VUE_I18N_SYMBOL__);if(!t)throw Ht(e.isCE?Ft.NOT_INSTALLED_WITH_PROVIDE:Ft.UNEXPECTED_ERROR);return t}}function _9(e,t){return kl(e)?"__i18n"in t?"local":"global":e.useScope?e.useScope:"local"}function T9(e){return e.mode==="composition"?e.global:e.global.__composer}function h9(e,t,n=!1){let a=null;const s=t.root;let r=S9(t,n);for(;r!=null;){const o=e;if(e.mode==="composition")a=o.__getInstance(r);else if(__VUE_I18N_LEGACY_API__){const i=o.__getInstance(r);i!=null&&(a=i.__composer,n&&a&&!a[zS]&&(a=null))}if(a!=null||s===r)break;r=r.parent}return a}function S9(e,t=!1){return e==null?null:t&&e.vnode.ctx||e.parent}function A9(e,t,n){St(()=>{},t),pt(()=>{const a=n;e.__deleteInstance(t);const s=a[Pd];s&&(s(),delete a[Pd])},t)}function O9(e,t,n,a={}){const s=t==="local",r=Fo(null);if(s&&e.proxy&&!(e.proxy.$options.i18n||e.proxy.$options.__i18n))throw Ht(Ft.MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION);const o=st(a.inheritLocale)?a.inheritLocale:!Ie(a.locale),i=de(!s||o?n.locale.value:Ie(a.locale)?a.locale:_r),u=de(!s||o?n.fallbackLocale.value:Ie(a.fallbackLocale)||Ct(a.fallbackLocale)||Ke(a.fallbackLocale)||a.fallbackLocale===!1?a.fallbackLocale:i.value),l=de(Wl(i.value,a)),c=de(Ke(a.datetimeFormats)?a.datetimeFormats:{[i.value]:{}}),f=de(Ke(a.numberFormats)?a.numberFormats:{[i.value]:{}}),E=s?n.missingWarn:st(a.missingWarn)||ns(a.missingWarn)?a.missingWarn:!0,p=s?n.fallbackWarn:st(a.fallbackWarn)||ns(a.fallbackWarn)?a.fallbackWarn:!0,T=s?n.fallbackRoot:st(a.fallbackRoot)?a.fallbackRoot:!0,O=!!a.fallbackFormat,R=Rt(a.missing)?a.missing:null,g=Rt(a.postTranslation)?a.postTranslation:null,N=s?n.warnHtmlMessage:st(a.warnHtmlMessage)?a.warnHtmlMessage:!0,S=!!a.escapeParameter,A=s?n.modifiers:Ke(a.modifiers)?a.modifiers:{},v=a.pluralRules||s&&n.pluralRules;function D(){return[i.value,u.value,l.value,c.value,f.value]}const P=w({get:()=>r.value?r.value.locale.value:i.value,set:b=>{r.value&&(r.value.locale.value=b),i.value=b}}),C=w({get:()=>r.value?r.value.fallbackLocale.value:u.value,set:b=>{r.value&&(r.value.fallbackLocale.value=b),u.value=b}}),y=w(()=>r.value?r.value.messages.value:l.value),z=w(()=>c.value),$=w(()=>f.value);function F(){return r.value?r.value.getPostTranslationHandler():g}function X(b){r.value&&r.value.setPostTranslationHandler(b)}function re(){return r.value?r.value.getMissingHandler():R}function G(b){r.value&&r.value.setMissingHandler(b)}function Z(b){return D(),b()}function q(...b){return r.value?Z(()=>Reflect.apply(r.value.t,null,[...b])):Z(()=>"")}function B(...b){return r.value?Reflect.apply(r.value.rt,null,[...b]):""}function Ne(...b){return r.value?Z(()=>Reflect.apply(r.value.d,null,[...b])):Z(()=>"")}function qe(...b){return r.value?Z(()=>Reflect.apply(r.value.n,null,[...b])):Z(()=>"")}function Fe(b){return r.value?r.value.tm(b):{}}function Ue(b,H){return r.value?r.value.te(b,H):!1}function zt(b){return r.value?r.value.getLocaleMessage(b):{}}function ge(b,H){r.value&&(r.value.setLocaleMessage(b,H),l.value[b]=H)}function Qe(b,H){r.value&&r.value.mergeLocaleMessage(b,H)}function It(b){return r.value?r.value.getDateTimeFormat(b):{}}function ne(b,H){r.value&&(r.value.setDateTimeFormat(b,H),c.value[b]=H)}function Te(b,H){r.value&&r.value.mergeDateTimeFormat(b,H)}function he(b){return r.value?r.value.getNumberFormat(b):{}}function ve(b,H){r.value&&(r.value.setNumberFormat(b,H),f.value[b]=H)}function ut(b,H){r.value&&r.value.mergeNumberFormat(b,H)}const mt={get id(){return r.value?r.value.id:-1},locale:P,fallbackLocale:C,messages:y,datetimeFormats:z,numberFormats:$,get inheritLocale(){return r.value?r.value.inheritLocale:o},set inheritLocale(b){r.value&&(r.value.inheritLocale=b)},get availableLocales(){return r.value?r.value.availableLocales:Object.keys(l.value)},get modifiers(){return r.value?r.value.modifiers:A},get pluralRules(){return r.value?r.value.pluralRules:v},get isGlobal(){return r.value?r.value.isGlobal:!1},get missingWarn(){return r.value?r.value.missingWarn:E},set missingWarn(b){r.value&&(r.value.missingWarn=b)},get fallbackWarn(){return r.value?r.value.fallbackWarn:p},set fallbackWarn(b){r.value&&(r.value.missingWarn=b)},get fallbackRoot(){return r.value?r.value.fallbackRoot:T},set fallbackRoot(b){r.value&&(r.value.fallbackRoot=b)},get fallbackFormat(){return r.value?r.value.fallbackFormat:O},set fallbackFormat(b){r.value&&(r.value.fallbackFormat=b)},get warnHtmlMessage(){return r.value?r.value.warnHtmlMessage:N},set warnHtmlMessage(b){r.value&&(r.value.warnHtmlMessage=b)},get escapeParameter(){return r.value?r.value.escapeParameter:S},set escapeParameter(b){r.value&&(r.value.escapeParameter=b)},t:q,getPostTranslationHandler:F,setPostTranslationHandler:X,getMissingHandler:re,setMissingHandler:G,rt:B,d:Ne,n:qe,tm:Fe,te:Ue,getLocaleMessage:zt,setLocaleMessage:ge,mergeLocaleMessage:Qe,getDateTimeFormat:It,setDateTimeFormat:ne,mergeDateTimeFormat:Te,getNumberFormat:he,setNumberFormat:ve,mergeNumberFormat:ut};function k(b){b.locale.value=i.value,b.fallbackLocale.value=u.value,Object.keys(l.value).forEach(H=>{b.mergeLocaleMessage(H,l.value[H])}),Object.keys(c.value).forEach(H=>{b.mergeDateTimeFormat(H,c.value[H])}),Object.keys(f.value).forEach(H=>{b.mergeNumberFormat(H,f.value[H])}),b.escapeParameter=S,b.fallbackFormat=O,b.fallbackRoot=T,b.fallbackWarn=p,b.missingWarn=E,b.warnHtmlMessage=N}return ft(()=>{if(e.proxy==null||e.proxy.$i18n==null)throw Ht(Ft.NOT_AVAILABLE_COMPOSITION_IN_LEGACY);const b=r.value=e.proxy.$i18n.__composer;t==="global"?(i.value=b.locale.value,u.value=b.fallbackLocale.value,l.value=b.messages.value,c.value=b.datetimeFormats.value,f.value=b.numberFormats.value):s&&k(b)}),mt}const g9=["locale","fallbackLocale","availableLocales"],y_=["t","rt","d","n","tm","te"];function I9(e,t){const n=Object.create(null);return g9.forEach(s=>{const r=Object.getOwnPropertyDescriptor(t,s);if(!r)throw Ht(Ft.UNEXPECTED_ERROR);const o=Yt(r.value)?{get(){return r.value.value},set(i){r.value.value=i}}:{get(){return r.get&&r.get()}};Object.defineProperty(n,s,o)}),e.config.globalProperties.$i18n=n,y_.forEach(s=>{const r=Object.getOwnPropertyDescriptor(t,s);if(!r||!r.value)throw Ht(Ft.UNEXPECTED_ERROR);Object.defineProperty(e.config.globalProperties,`$${s}`,r)}),()=>{delete e.config.globalProperties.$i18n,y_.forEach(s=>{delete e.config.globalProperties[`$${s}`]})}}J7();__INTLIFY_JIT_COMPILATION__?d_(j7):d_(K7);M7(h7);W7(NS);if(__INTLIFY_PROD_DEVTOOLS__){const e=ga();e.__INTLIFY__=!0,b7(e.__INTLIFY_DEVTOOLS_GLOBAL_HOOK__)}const R9="Относно тази инстанция",N9="Връзка с администратор",v9="FitTrackee е self-hosted тракер за активности.",b9="под {0} лиценз ",C9="Сорс код",D9="Данни за времето от:",P9={ABOUT_THIS_INSTANCE:R9,CONTACT_ADMIN:N9,FITTRACKEE_DESCRIPTION:v9,FITTRACKEE_LICENSE:b9,SOURCE_CODE:C9,WEATHER_DATA_FROM:D9},L9={DESCRIPTION:"Всякаква допълнителна информация, която може да бъде полезна за вашите потребители. Може да се използва Markdown синтаксис.",TEXT:"Детайлна информация за инстанцията"},y9="Действие",$9="Активиране на акаунт",U9="Активен",k9="Администриране",w9="Администрация",M9="Добавяне/премахване на администраторски права, изтриване на потребителски акаунт.",W9="Приложение",F9={ADMIN_CONTACT:"Администраторски имейл за контакт",MAX_FILES_IN_ZIP_LABEL:"Макс. файлове в zip архив",MAX_USERS_HELP:"0 - без лимит за регистрация.",MAX_USERS_LABEL:"Макс. брой активни потребители",NO_CONTACT_EMAIL:"без имейл за връзка",SINGLE_UPLOAD_MAX_SIZE_LABEL:"Макс. големина на качените файлове (в Mb)",STATS_WORKOUTS_LIMIT_HELP:"0 - без лимит на броя тренировки.",STATS_WORKOUTS_LIMIT_LABEL:"Макс. тренировки за спортни статистики",TITLE:"Конфигурация на приложението",ZIP_UPLOAD_MAX_SIZE_LABEL:"Макс. размер на zip архива (в Mb)"},z9="Обратно към администрациата",x9="Сигурни ли сте, че искате да изтриете {0} акаунтa? Всички данни ще бъдат изтрити, и няма да могат да бъдат възстановени.",B9="Сигурни ли сте, че искате да зададете нова парола за {0}?",G9="Текущ имейл",H9="Изтрий потребител",V9="Изпращането на имейли е забранено.",K9="Позволи/забрани видеве оборудвания.",j9="Позволи/забрани спортове.",q9={TABLE:{ACTIVE:"Активно",HAS_EQUIPMENTS:"оборудването съществува",IMAGE:"Изображение",LABEL:"Етикет"},TITLE:"Администриране на оборудването"},Y9="Нов имейл",X9="Не е въведен текст",Q9="Паролата бе нулирана.",Z9="Добавете своя собствена политика за поверителност или оставете празно, за да използвате тази по подразбиране. Може да се използва Markdown синтаксис.",J9="Регистрациите са забранени.",eW="Регистрациите са позволени.",tW="Нулиране на парола",nW={TABLE:{ACTIVE:"Активен",HAS_WORKOUTS:"съществуват тренировки",IMAGE:"Изображение",LABEL:"Етикет"},TITLE:"Администриране на спортове"},aW="Актуализиране на конфигурацията на приложението.",sW="Актуализиране на имейл",rW="потребител | потребители",oW={SELECTS:{ORDER_BY:{ADMIN:"административен статус",CREATED_AT:"регистриран на",IS_ACTIVE:"статус на акаунт",USERNAME:"потребителско име",WORKOUTS_COUNT:"брой тренировки"}},TABLE:{ADD_ADMIN_RIGHTS:"Добави административни права",REMOVE_ADMIN_RIGHTS:"Отстрани административни права"},TITLE:"Администриране - Потребители"},iW="Имейл адресът бе променен.",uW={ABOUT:L9,ACTION:y9,ACTIVATE_USER_ACCOUNT:$9,ACTIVE:U9,ADMIN:k9,ADMINISTRATION:w9,ADMIN_RIGHTS_DELETE_USER_ACCOUNT:M9,APPLICATION:W9,APP_CONFIG:F9,BACK_TO_ADMIN:z9,CONFIRM_USER_ACCOUNT_DELETION:x9,CONFIRM_USER_PASSWORD_RESET:B9,CURRENT_EMAIL:G9,DELETE_USER:H9,EMAIL_SENDING_DISABLED:V9,ENABLE_DISABLE_EQUIPMENT_TYPES:K9,ENABLE_DISABLE_SPORTS:j9,EQUIPMENT_TYPES:q9,NEW_EMAIL:Y9,NO_TEXT_ENTERED:X9,PASSWORD_RESET_SUCCESSFUL:Q9,PRIVACY_POLICY_DESCRIPTION:Z9,REGISTRATION_DISABLED:J9,REGISTRATION_ENABLED:eW,RESET_USER_PASSWORD:tW,SPORTS:nW,UPDATE_APPLICATION_DESCRIPTION:aW,UPDATE_USER_EMAIL:sW,USER:rW,USERS:oW,USER_EMAIL_UPDATE_SUCCESSFUL:iW},lW={"":(o=s[6])?(o.match(/\./)&&(s[5]=s[5].replace(/^\d+/gm,"")),r=ys($_(s[5].replace(/^\s*[>*+.-]/gm,""))),o==">"?o="blockquote":(o=o.match(/\./)?"ol":"ul",r=r.replace(/^(.*)(\n|$)/gm,"
  • $1
  • ")),n="<"+o+">"+r+""):s[8]?n=''+Vr(s[7])+'':s[10]?(l=l.replace("",''),n=p()+""):s[9]?n="":s[12]||s[14]?n="<"+(o="h"+(s[14]?s[14].length:s[13]>"="?1:2))+">"+ys(s[12]||s[15],c)+"":s[16]?n=""+Vr(s[16])+"":(s[17]||s[1])&&(n=E(s[17]||"--"))),l+=a,l+=n;return(l+e.substring(f)+p()).replace(/^\n+|\n+$/g,"")}const M7e=["bytes","KB","MB","GB","TB"],VS=e=>{if(!e)return{size:"0",suffix:"bytes"};const t=Math.floor(Math.log(e)/Math.log(1024)),n=(e/Math.pow(1024,t)).toFixed(1),a=M7e[t];return{size:n,suffix:a}},gu=e=>{if(!e)return"0 bytes";const t=VS(e);return`${t.size}${t.suffix}`},W7e=e=>{const t=e/1048576;return!e&&0||+t.toFixed(2)},F7e="aaa1rp3bb0ott3vie4c1le2ogado5udhabi7c0ademy5centure6ountant0s9o1tor4d0s1ult4e0g1ro2tna4f0l1rica5g0akhan5ency5i0g1rbus3force5tel5kdn3l0ibaba4pay4lfinanz6state5y2sace3tom5m0azon4ericanexpress7family11x2fam3ica3sterdam8nalytics7droid5quan4z2o0l2partments8p0le4q0uarelle8r0ab1mco4chi3my2pa2t0e3s0da2ia2sociates9t0hleta5torney7u0ction5di0ble3o3spost5thor3o0s4vianca6w0s2x0a2z0ure5ba0by2idu3namex3narepublic11d1k2r0celona5laycard4s5efoot5gains6seball5ketball8uhaus5yern5b0c1t1va3cg1n2d1e0ats2uty4er2ntley5rlin4st0buy5t2f1g1h0arti5i0ble3d1ke2ng0o3o1z2j1lack0friday9ockbuster8g1omberg7ue3m0s1w2n0pparibas9o0ats3ehringer8fa2m1nd2o0k0ing5sch2tik2on4t1utique6x2r0adesco6idgestone9oadway5ker3ther5ussels7s1t1uild0ers6siness6y1zz3v1w1y1z0h3ca0b1fe2l0l1vinklein9m0era3p2non3petown5ital0one8r0avan4ds2e0er0s4s2sa1e1h1ino4t0ering5holic7ba1n1re3c1d1enter4o1rn3f0a1d2g1h0anel2nel4rity4se2t2eap3intai5ristmas6ome4urch5i0priani6rcle4sco3tadel4i0c2y3k1l0aims4eaning6ick2nic1que6othing5ud3ub0med6m1n1o0ach3des3ffee4llege4ogne5m0cast4mbank4unity6pany2re3uter5sec4ndos3struction8ulting7tact3ractors9oking4l1p2rsica5untry4pon0s4rses6pa2r0edit0card4union9icket5own3s1uise0s6u0isinella9v1w1x1y0mru3ou3z2dabur3d1nce3ta1e1ing3sun4y2clk3ds2e0al0er2s3gree4livery5l1oitte5ta3mocrat6ntal2ist5si0gn4v2hl2iamonds6et2gital5rect0ory7scount3ver5h2y2j1k1m1np2o0cs1tor4g1mains5t1wnload7rive4tv2ubai3nlop4pont4rban5vag2r2z2earth3t2c0o2deka3u0cation8e1g1mail3erck5nergy4gineer0ing9terprises10pson4quipment8r0icsson6ni3s0q1tate5t1u0rovision8s2vents5xchange6pert3osed4ress5traspace10fage2il1rwinds6th3mily4n0s2rm0ers5shion4t3edex3edback6rrari3ero6i0delity5o2lm2nal1nce1ial7re0stone6mdale6sh0ing5t0ness6j1k1lickr3ghts4r2orist4wers5y2m1o0o0d1tball6rd1ex2sale4um3undation8x2r0ee1senius7l1ogans4ntier7tr2ujitsu5n0d2rniture7tbol5yi3ga0l0lery3o1up4me0s3p1rden4y2b0iz3d0n2e0a1nt0ing5orge5f1g0ee3h1i0ft0s3ves2ing5l0ass3e1obal2o4m0ail3bh2o1x2n1odaddy5ld0point6f2o0dyear5g0le4p1t1v2p1q1r0ainger5phics5tis4een3ipe3ocery4up4s1t1u0ardian6cci3ge2ide2tars5ru3w1y2hair2mburg5ngout5us3bo2dfc0bank7ealth0care8lp1sinki6re1mes5iphop4samitsu7tachi5v2k0t2m1n1ockey4ldings5iday5medepot5goods5s0ense7nda3rse3spital5t0ing5t0els3mail5use3w2r1sbc3t1u0ghes5yatt3undai7ibm2cbc2e1u2d1e0ee3fm2kano4l1m0amat4db2mo0bilien9n0c1dustries8finiti5o2g1k1stitute6urance4e4t0ernational10uit4vestments10o1piranga7q1r0ish4s0maili5t0anbul7t0au2v3jaguar4va3cb2e0ep2tzt3welry6io2ll2m0p2nj2o0bs1urg4t1y2p0morgan6rs3uegos4niper7kaufen5ddi3e0rryhotels6logistics9properties14fh2g1h1i0a1ds2m1ndle4tchen5wi3m1n1oeln3matsu5sher5p0mg2n2r0d1ed3uokgroup8w1y0oto4z2la0caixa5mborghini8er3ncaster6d0rover6xess5salle5t0ino3robe5w0yer5b1c1ds2ease3clerc5frak4gal2o2xus4gbt3i0dl2fe0insurance9style7ghting6ke2lly3mited4o2ncoln4k2psy3ve1ing5k1lc1p2oan0s3cker3us3l1ndon4tte1o3ve3pl0financial11r1s1t0d0a3u0ndbeck6xe1ury5v1y2ma0drid4if1son4keup4n0agement7go3p1rket0ing3s4riott5shalls7ttel5ba2c0kinsey7d1e0d0ia3et2lbourne7me1orial6n0u2rckmsd7g1h1iami3crosoft7l1ni1t2t0subishi9k1l0b1s2m0a2n1o0bi0le4da2e1i1m1nash3ey2ster5rmon3tgage6scow4to0rcycles9v0ie4p1q1r1s0d2t0n1r2u0seum3ic4v1w1x1y1z2na0b1goya4me2tura4vy3ba2c1e0c1t0bank4flix4work5ustar5w0s2xt0direct7us4f0l2g0o2hk2i0co2ke1on3nja3ssan1y5l1o0kia3rton4w0ruz3tv4p1r0a1w2tt2u1yc2z2obi1server7ffice5kinawa6layan0group9dnavy5lo3m0ega4ne1g1l0ine5oo2pen3racle3nge4g0anic5igins6saka4tsuka4t2vh3pa0ge2nasonic7ris2s1tners4s1y3y2ccw3e0t2f0izer5g1h0armacy6d1ilips5one2to0graphy6s4ysio5ics1tet2ures6d1n0g1k2oneer5zza4k1l0ace2y0station9umbing5s3m1n0c2ohl2ker3litie5rn2st3r0america6xi3ess3ime3o0d0uctions8f1gressive8mo2perties3y5tection8u0dential9s1t1ub2w0c2y2qa1pon3uebec3st5racing4dio4e0ad1lestate6tor2y4cipes5d0stone5umbrella9hab3ise0n3t2liance6n0t0als5pair3ort3ublican8st0aurant8view0s5xroth6ich0ardli6oh3l1o1p2o0cks3deo3gers4om3s0vp3u0gby3hr2n2w0e2yukyu6sa0arland6fe0ty4kura4le1on3msclub4ung5ndvik0coromant12ofi4p1rl2s1ve2xo3b0i1s2c0a1b1haeffler7midt4olarships8ol3ule3warz5ience5ot3d1e0arch3t2cure1ity6ek2lect4ner3rvices6ven3w1x0y3fr2g1h0angrila6rp2w2ell3ia1ksha5oes2p0ping5uji3w3i0lk2na1gles5te3j1k0i0n2y0pe4l0ing4m0art3ile4n0cf3o0ccer3ial4ftbank4ware6hu2lar2utions7ng1y2y2pa0ce3ort2t3r0l2s1t0ada2ples4r1tebank4farm7c0group6ockholm6rage3e3ream4udio2y3yle4u0cks3pplies3y2ort5rf1gery5zuki5v1watch4iss4x1y0dney4stems6z2tab1ipei4lk2obao4rget4tamotors6r2too4x0i3c0i2d0k2eam2ch0nology8l1masek5nnis4va3f1g1h0d1eater2re6iaa2ckets5enda4ps2res2ol4j0maxx4x2k0maxx5l1m0all4n1o0day3kyo3ols3p1ray3shiba5tal3urs3wn2yota3s3r0ade1ing4ining5vel0ers0insurance16ust3v2t1ube2i1nes3shu4v0s2w1z2ua1bank3s2g1k1nicom3versity8o2ol2ps2s1y1z2va0cations7na1guard7c1e0gas3ntures6risign5mögensberater2ung14sicherung10t2g1i0ajes4deo3g1king4llas4n1p1rgin4sa1ion4va1o3laanderen9n1odka3lvo3te1ing3o2yage5u2wales2mart4ter4ng0gou5tch0es6eather0channel12bcam3er2site5d0ding5ibo2r3f1hoswho6ien2ki2lliamhill9n0dows4e1ners6me2olterskluwer11odside6rk0s2ld3w2s1tc1f3xbox3erox4finity6ihuan4n2xx2yz3yachts4hoo3maxun5ndex5e1odobashi7ga2kohama6u0tube6t1un3za0ppos4ra3ero3ip2m1one3uerich6w2",z7e="ελ1υ2бг1ел3дети4ею2католик6ом3мкд2он1сква6онлайн5рг3рус2ф2сайт3рб3укр3қаз3հայ3ישראל5קום3ابوظبي5رامكو5لاردن4بحرين5جزائر5سعودية6عليان5مغرب5مارات5یران5بارت2زار4يتك3ھارت5تونس4سودان3رية5شبكة4عراق2ب2مان4فلسطين6قطر3كاثوليك6وم3مصر2ليسيا5وريتانيا7قع4همراه5پاکستان7ڀارت4कॉम3नेट3भारत0म्3ोत5संगठन5বাংলা5ভারত2ৰত4ਭਾਰਤ4ભારત4ଭାରତ4இந்தியா6லங்கை6சிங்கப்பூர்11భారత్5ಭಾರತ4ഭാരതം5ලංකා4คอม3ไทย3ລາວ3გე2みんな3アマゾン4クラウド4グーグル4コム2ストア3セール3ファッション6ポイント4世界2中信1国1國1文网3亚马逊3企业2佛山2信息2健康2八卦2公司1益2台湾1灣2商城1店1标2嘉里0大酒店5在线2大拿2天主教3娱乐2家電2广东2微博2慈善2我爱你3手机2招聘2政务1府2新加坡2闻2时尚2書籍2机构2淡马锡3游戏2澳門2点看2移动2组织机构4网址1店1站1络2联通2谷歌2购物2通販2集团2電訊盈科4飞利浦3食品2餐厅2香格里拉3港2닷넷1컴2삼성2한국2",hr=(e,t)=>{for(const n in t)e[n]=t[n];return e},yd="numeric",$d="ascii",Ud="alpha",Xi="asciinumeric",hi="alphanumeric",kd="domain",KS="emoji",x7e="scheme",B7e="slashscheme",U_="whitespace";function G7e(e,t){return e in t||(t[e]=[]),t[e]}function Rs(e,t,n){t[yd]&&(t[Xi]=!0,t[hi]=!0),t[$d]&&(t[Xi]=!0,t[Ud]=!0),t[Xi]&&(t[hi]=!0),t[Ud]&&(t[hi]=!0),t[hi]&&(t[kd]=!0),t[KS]&&(t[kd]=!0);for(const a in t){const s=G7e(a,n);s.indexOf(e)<0&&s.push(e)}}function H7e(e,t){const n={};for(const a in t)t[a].indexOf(e)>=0&&(n[a]=!0);return n}function Nn(e){e===void 0&&(e=null),this.j={},this.jr=[],this.jd=null,this.t=e}Nn.groups={};Nn.prototype={accepts(){return!!this.t},go(e){const t=this,n=t.j[e];if(n)return n;for(let a=0;ae.ta(t,n,a,s),yn=(e,t,n,a,s)=>e.tr(t,n,a,s),k_=(e,t,n,a,s)=>e.ts(t,n,a,s),Se=(e,t,n,a,s)=>e.tt(t,n,a,s),Ta="WORD",wd="UWORD",No="LOCALHOST",Md="TLD",Wd="UTLD",Qi="SCHEME",Zs="SLASH_SCHEME",lf="NUM",jS="WS",cf="NL",oo="OPENBRACE",io="CLOSEBRACE",Iu="OPENBRACKET",Ru="CLOSEBRACKET",Nu="OPENPAREN",vu="CLOSEPAREN",bu="OPENANGLEBRACKET",Cu="CLOSEANGLEBRACKET",Du="FULLWIDTHLEFTPAREN",Pu="FULLWIDTHRIGHTPAREN",Lu="LEFTCORNERBRACKET",yu="RIGHTCORNERBRACKET",$u="LEFTWHITECORNERBRACKET",Uu="RIGHTWHITECORNERBRACKET",ku="FULLWIDTHLESSTHAN",wu="FULLWIDTHGREATERTHAN",Mu="AMPERSAND",Wu="APOSTROPHE",Fu="ASTERISK",Ha="AT",zu="BACKSLASH",xu="BACKTICK",Bu="CARET",qa="COLON",df="COMMA",Gu="DOLLAR",ta="DOT",Hu="EQUALS",Ef="EXCLAMATION",na="HYPHEN",Vu="PERCENT",Ku="PIPE",ju="PLUS",qu="POUND",Yu="QUERY",ff="QUOTE",pf="SEMI",aa="SLASH",uo="TILDE",Xu="UNDERSCORE",qS="EMOJI",Qu="SYM";var YS=Object.freeze({__proto__:null,WORD:Ta,UWORD:wd,LOCALHOST:No,TLD:Md,UTLD:Wd,SCHEME:Qi,SLASH_SCHEME:Zs,NUM:lf,WS:jS,NL:cf,OPENBRACE:oo,CLOSEBRACE:io,OPENBRACKET:Iu,CLOSEBRACKET:Ru,OPENPAREN:Nu,CLOSEPAREN:vu,OPENANGLEBRACKET:bu,CLOSEANGLEBRACKET:Cu,FULLWIDTHLEFTPAREN:Du,FULLWIDTHRIGHTPAREN:Pu,LEFTCORNERBRACKET:Lu,RIGHTCORNERBRACKET:yu,LEFTWHITECORNERBRACKET:$u,RIGHTWHITECORNERBRACKET:Uu,FULLWIDTHLESSTHAN:ku,FULLWIDTHGREATERTHAN:wu,AMPERSAND:Mu,APOSTROPHE:Wu,ASTERISK:Fu,AT:Ha,BACKSLASH:zu,BACKTICK:xu,CARET:Bu,COLON:qa,COMMA:df,DOLLAR:Gu,DOT:ta,EQUALS:Hu,EXCLAMATION:Ef,HYPHEN:na,PERCENT:Vu,PIPE:Ku,PLUS:ju,POUND:qu,QUERY:Yu,QUOTE:ff,SEMI:pf,SLASH:aa,TILDE:uo,UNDERSCORE:Xu,EMOJI:qS,SYM:Qu});const Vs=/[a-z]/,vc=new RegExp("\\p{L}","u"),bc=new RegExp("\\p{Emoji}","u"),Cc=/\d/,w_=/\s/,M_=` -`,V7e="️",K7e="‍";let Si=null,Ai=null;function j7e(e){e===void 0&&(e=[]);const t={};Nn.groups=t;const n=new Nn;Si==null&&(Si=W_(F7e)),Ai==null&&(Ai=W_(z7e)),Se(n,"'",Wu),Se(n,"{",oo),Se(n,"}",io),Se(n,"[",Iu),Se(n,"]",Ru),Se(n,"(",Nu),Se(n,")",vu),Se(n,"<",bu),Se(n,">",Cu),Se(n,"(",Du),Se(n,")",Pu),Se(n,"「",Lu),Se(n,"」",yu),Se(n,"『",$u),Se(n,"』",Uu),Se(n,"<",ku),Se(n,">",wu),Se(n,"&",Mu),Se(n,"*",Fu),Se(n,"@",Ha),Se(n,"`",xu),Se(n,"^",Bu),Se(n,":",qa),Se(n,",",df),Se(n,"$",Gu),Se(n,".",ta),Se(n,"=",Hu),Se(n,"!",Ef),Se(n,"-",na),Se(n,"%",Vu),Se(n,"|",Ku),Se(n,"+",ju),Se(n,"#",qu),Se(n,"?",Yu),Se(n,'"',ff),Se(n,"/",aa),Se(n,";",pf),Se(n,"~",uo),Se(n,"_",Xu),Se(n,"\\",zu);const a=yn(n,Cc,lf,{[yd]:!0});yn(a,Cc,a);const s=yn(n,Vs,Ta,{[$d]:!0});yn(s,Vs,s);const r=yn(n,vc,wd,{[Ud]:!0});yn(r,Vs),yn(r,vc,r);const o=yn(n,w_,jS,{[U_]:!0});Se(n,M_,cf,{[U_]:!0}),Se(o,M_),yn(o,w_,o);const i=yn(n,bc,qS,{[KS]:!0});yn(i,bc,i),Se(i,V7e,i);const u=Se(i,K7e);yn(u,bc,i);const l=[[Vs,s]],c=[[Vs,null],[vc,r]];for(let f=0;ff[0]>E[0]?1:-1);for(let f=0;f=0?T[kd]=!0:Vs.test(E)?Cc.test(E)?T[Xi]=!0:T[$d]=!0:T[yd]=!0,k_(n,E,E,T)}return k_(n,"localhost",No,{ascii:!0}),n.jd=new Nn(Qu),{start:n,tokens:hr({groups:t},YS)}}function q7e(e,t){const n=Y7e(t.replace(/[A-Z]/g,i=>i.toLowerCase())),a=n.length,s=[];let r=0,o=0;for(;o=0&&(f+=n[o].length,E++),l+=n[o].length,r+=n[o].length,o++;r-=f,o-=E,l-=f,s.push({t:c.t,v:t.slice(r-l,r),s:r-l,e:r})}return s}function Y7e(e){const t=[],n=e.length;let a=0;for(;a56319||a+1===n||(r=e.charCodeAt(a+1))<56320||r>57343?e[a]:e.slice(a,a+2);t.push(o),a+=o.length}return t}function Fa(e,t,n,a,s){let r;const o=t.length;for(let i=0;i=0;)r++;if(r>0){t.push(n.join(""));for(let o=parseInt(e.substring(a,a+r),10);o>0;o--)n.pop();a+=r}else n.push(e[a]),a++}return t}const vo={defaultProtocol:"http",events:null,format:F_,formatHref:F_,nl2br:!1,tagName:"a",target:null,rel:null,validate:!0,truncate:1/0,className:null,attributes:null,ignoreTags:[],render:null};function mf(e,t){t===void 0&&(t=null);let n=hr({},vo);e&&(n=hr(n,e instanceof mf?e.o:e));const a=n.ignoreTags,s=[];for(let r=0;rn?a.substring(0,n)+"…":a},toFormattedHref(e){return e.get("formatHref",this.toHref(e.get("defaultProtocol")),this)},startIndex(){return this.tk[0].s},endIndex(){return this.tk[this.tk.length-1].e},toObject(e){return e===void 0&&(e=vo.defaultProtocol),{type:this.t,value:this.toString(),isLink:this.isLink,href:this.toHref(e),start:this.startIndex(),end:this.endIndex()}},toFormattedObject(e){return{type:this.t,value:this.toFormattedString(e),isLink:this.isLink,href:this.toFormattedHref(e),start:this.startIndex(),end:this.endIndex()}},validate(e){return e.get("validate",this.toString(),this)},render(e){const t=this,n=this.toHref(e.get("defaultProtocol")),a=e.get("formatHref",n,this),s=e.get("tagName",n,t),r=this.toFormattedString(e),o={},i=e.get("className",n,t),u=e.get("target",n,t),l=e.get("rel",n,t),c=e.getObj("attributes",n,t),f=e.getObj("events",n,t);return o.href=a,i&&(o.class=i),u&&(o.target=u),l&&(o.rel=l),c&&hr(o,c),{tagName:s,attributes:o,content:r,eventListeners:f}}};function Fl(e,t){class n extends XS{constructor(s,r){super(s,r),this.t=e}}for(const a in t)n.prototype[a]=t[a];return n.t=e,n}const z_=Fl("email",{isLink:!0,toHref(){return"mailto:"+this.toString()}}),x_=Fl("text"),X7e=Fl("nl"),Oi=Fl("url",{isLink:!0,toHref(e){return e===void 0&&(e=vo.defaultProtocol),this.hasProtocol()?this.v:`${e}://${this.v}`},hasProtocol(){const e=this.tk;return e.length>=2&&e[0].t!==No&&e[1].t===qa}}),$n=e=>new Nn(e);function Q7e(e){let{groups:t}=e;const n=t.domain.concat([Mu,Fu,Ha,zu,xu,Bu,Gu,Hu,na,lf,Vu,Ku,ju,qu,aa,Qu,uo,Xu]),a=[Wu,qa,df,ta,Ef,Yu,ff,pf,bu,Cu,oo,io,Ru,Iu,Nu,vu,Du,Pu,Lu,yu,$u,Uu,ku,wu],s=[Mu,Wu,Fu,zu,xu,Bu,Gu,Hu,na,oo,io,Vu,Ku,ju,qu,Yu,aa,Qu,uo,Xu],r=$n(),o=Se(r,uo);Ze(o,s,o),Ze(o,t.domain,o);const i=$n(),u=$n(),l=$n();Ze(r,t.domain,i),Ze(r,t.scheme,u),Ze(r,t.slashscheme,l),Ze(i,s,o),Ze(i,t.domain,i);const c=Se(i,Ha);Se(o,Ha,c),Se(u,Ha,c),Se(l,Ha,c);const f=Se(o,ta);Ze(f,s,o),Ze(f,t.domain,o);const E=$n();Ze(c,t.domain,E),Ze(E,t.domain,E);const p=Se(E,ta);Ze(p,t.domain,E);const T=$n(z_);Ze(p,t.tld,T),Ze(p,t.utld,T),Se(c,No,T);const O=Se(E,na);Ze(O,t.domain,E),Ze(T,t.domain,E),Se(T,ta,p),Se(T,na,O);const R=Se(T,qa);Ze(R,t.numeric,z_);const g=Se(i,na),N=Se(i,ta);Ze(g,t.domain,i),Ze(N,s,o),Ze(N,t.domain,i);const S=$n(Oi);Ze(N,t.tld,S),Ze(N,t.utld,S),Ze(S,t.domain,i),Ze(S,s,o),Se(S,ta,N),Se(S,na,g),Se(S,Ha,c);const A=Se(S,qa),v=$n(Oi);Ze(A,t.numeric,v);const D=$n(Oi),P=$n();Ze(D,n,D),Ze(D,a,P),Ze(P,n,D),Ze(P,a,P),Se(S,aa,D),Se(v,aa,D);const C=Se(u,qa),y=Se(l,qa),z=Se(y,aa),$=Se(z,aa);Ze(u,t.domain,i),Se(u,ta,N),Se(u,na,g),Ze(l,t.domain,i),Se(l,ta,N),Se(l,na,g),Ze(C,t.domain,D),Se(C,aa,D),Ze($,t.domain,D),Ze($,n,D),Se($,aa,D);const F=[[oo,io],[Iu,Ru],[Nu,vu],[bu,Cu],[Du,Pu],[Lu,yu],[$u,Uu],[ku,wu]];for(let X=0;X=0&&E++,s++,c++;if(E<0)s-=c,s0&&(r.push(Dc(x_,t,o)),o=[]),s-=E,c-=E;const p=f.t,T=n.slice(s-c,s);r.push(Dc(p,t,T))}}return o.length>0&&r.push(Dc(x_,t,o)),r}function Dc(e,t,n){const a=n[0].s,s=n[n.length-1].e,r=t.slice(a,s);return new e(r,n)}const nn={scanner:null,parser:null,tokenQueue:[],pluginQueue:[],customSchemes:[],initialized:!1};function J7e(){nn.scanner=j7e(nn.customSchemes);for(let e=0;e",lt:"<",nbsp:" ",quot:'"'},n9e=/^#[xX]([A-Fa-f0-9]+)$/,a9e=/^#([0-9]+)$/,s9e=/^([A-Za-z0-9]+)$/,r9e=function(){function e(t){this.named=t}return e.prototype.parse=function(t){if(t){var n=t.match(n9e);if(n)return String.fromCharCode(parseInt(n[1],16));if(n=t.match(a9e),n)return String.fromCharCode(parseInt(n[1],10));if(n=t.match(s9e),n)return this.named[n[1]]||"&"+n[1]+";"}},e}(),o9e=/[\t\n\f ]/,i9e=/[A-Za-z]/,u9e=/\r\n?/g;function Zt(e){return o9e.test(e)}function B_(e){return i9e.test(e)}function l9e(e){return e.replace(u9e,` -`)}var c9e=function(){function e(t,n,a){a===void 0&&(a="precompile"),this.delegate=t,this.entityParser=n,this.mode=a,this.state="beforeData",this.line=-1,this.column=-1,this.input="",this.index=-1,this.tagNameBuffer="",this.states={beforeData:function(){var s=this.peek();if(s==="<"&&!this.isIgnoredEndTag())this.transitionTo("tagOpen"),this.markTagStart(),this.consume();else{if(this.mode==="precompile"&&s===` -`){var r=this.tagNameBuffer.toLowerCase();(r==="pre"||r==="textarea")&&this.consume()}this.transitionTo("data"),this.delegate.beginData()}},data:function(){var s=this.peek(),r=this.tagNameBuffer;s==="<"&&!this.isIgnoredEndTag()?(this.delegate.finishData(),this.transitionTo("tagOpen"),this.markTagStart(),this.consume()):s==="&"&&r!=="script"&&r!=="style"?(this.consume(),this.delegate.appendToData(this.consumeCharRef()||"&")):(this.consume(),this.delegate.appendToData(s))},tagOpen:function(){var s=this.consume();s==="!"?this.transitionTo("markupDeclarationOpen"):s==="/"?this.transitionTo("endTagOpen"):(s==="@"||s===":"||B_(s))&&(this.transitionTo("tagName"),this.tagNameBuffer="",this.delegate.beginStartTag(),this.appendToTagName(s))},markupDeclarationOpen:function(){var s=this.consume();if(s==="-"&&this.peek()==="-")this.consume(),this.transitionTo("commentStart"),this.delegate.beginComment();else{var r=s.toUpperCase()+this.input.substring(this.index,this.index+6).toUpperCase();r==="DOCTYPE"&&(this.consume(),this.consume(),this.consume(),this.consume(),this.consume(),this.consume(),this.transitionTo("doctype"),this.delegate.beginDoctype&&this.delegate.beginDoctype())}},doctype:function(){var s=this.consume();Zt(s)&&this.transitionTo("beforeDoctypeName")},beforeDoctypeName:function(){var s=this.consume();Zt(s)||(this.transitionTo("doctypeName"),this.delegate.appendToDoctypeName&&this.delegate.appendToDoctypeName(s.toLowerCase()))},doctypeName:function(){var s=this.consume();Zt(s)?this.transitionTo("afterDoctypeName"):s===">"?(this.delegate.endDoctype&&this.delegate.endDoctype(),this.transitionTo("beforeData")):this.delegate.appendToDoctypeName&&this.delegate.appendToDoctypeName(s.toLowerCase())},afterDoctypeName:function(){var s=this.consume();if(!Zt(s))if(s===">")this.delegate.endDoctype&&this.delegate.endDoctype(),this.transitionTo("beforeData");else{var r=s.toUpperCase()+this.input.substring(this.index,this.index+5).toUpperCase(),o=r.toUpperCase()==="PUBLIC",i=r.toUpperCase()==="SYSTEM";(o||i)&&(this.consume(),this.consume(),this.consume(),this.consume(),this.consume(),this.consume()),o?this.transitionTo("afterDoctypePublicKeyword"):i&&this.transitionTo("afterDoctypeSystemKeyword")}},afterDoctypePublicKeyword:function(){var s=this.peek();Zt(s)?(this.transitionTo("beforeDoctypePublicIdentifier"),this.consume()):s==='"'?(this.transitionTo("doctypePublicIdentifierDoubleQuoted"),this.consume()):s==="'"?(this.transitionTo("doctypePublicIdentifierSingleQuoted"),this.consume()):s===">"&&(this.consume(),this.delegate.endDoctype&&this.delegate.endDoctype(),this.transitionTo("beforeData"))},doctypePublicIdentifierDoubleQuoted:function(){var s=this.consume();s==='"'?this.transitionTo("afterDoctypePublicIdentifier"):s===">"?(this.delegate.endDoctype&&this.delegate.endDoctype(),this.transitionTo("beforeData")):this.delegate.appendToDoctypePublicIdentifier&&this.delegate.appendToDoctypePublicIdentifier(s)},doctypePublicIdentifierSingleQuoted:function(){var s=this.consume();s==="'"?this.transitionTo("afterDoctypePublicIdentifier"):s===">"?(this.delegate.endDoctype&&this.delegate.endDoctype(),this.transitionTo("beforeData")):this.delegate.appendToDoctypePublicIdentifier&&this.delegate.appendToDoctypePublicIdentifier(s)},afterDoctypePublicIdentifier:function(){var s=this.consume();Zt(s)?this.transitionTo("betweenDoctypePublicAndSystemIdentifiers"):s===">"?(this.delegate.endDoctype&&this.delegate.endDoctype(),this.transitionTo("beforeData")):s==='"'?this.transitionTo("doctypeSystemIdentifierDoubleQuoted"):s==="'"&&this.transitionTo("doctypeSystemIdentifierSingleQuoted")},betweenDoctypePublicAndSystemIdentifiers:function(){var s=this.consume();Zt(s)||(s===">"?(this.delegate.endDoctype&&this.delegate.endDoctype(),this.transitionTo("beforeData")):s==='"'?this.transitionTo("doctypeSystemIdentifierDoubleQuoted"):s==="'"&&this.transitionTo("doctypeSystemIdentifierSingleQuoted"))},doctypeSystemIdentifierDoubleQuoted:function(){var s=this.consume();s==='"'?this.transitionTo("afterDoctypeSystemIdentifier"):s===">"?(this.delegate.endDoctype&&this.delegate.endDoctype(),this.transitionTo("beforeData")):this.delegate.appendToDoctypeSystemIdentifier&&this.delegate.appendToDoctypeSystemIdentifier(s)},doctypeSystemIdentifierSingleQuoted:function(){var s=this.consume();s==="'"?this.transitionTo("afterDoctypeSystemIdentifier"):s===">"?(this.delegate.endDoctype&&this.delegate.endDoctype(),this.transitionTo("beforeData")):this.delegate.appendToDoctypeSystemIdentifier&&this.delegate.appendToDoctypeSystemIdentifier(s)},afterDoctypeSystemIdentifier:function(){var s=this.consume();Zt(s)||s===">"&&(this.delegate.endDoctype&&this.delegate.endDoctype(),this.transitionTo("beforeData"))},commentStart:function(){var s=this.consume();s==="-"?this.transitionTo("commentStartDash"):s===">"?(this.delegate.finishComment(),this.transitionTo("beforeData")):(this.delegate.appendToCommentData(s),this.transitionTo("comment"))},commentStartDash:function(){var s=this.consume();s==="-"?this.transitionTo("commentEnd"):s===">"?(this.delegate.finishComment(),this.transitionTo("beforeData")):(this.delegate.appendToCommentData("-"),this.transitionTo("comment"))},comment:function(){var s=this.consume();s==="-"?this.transitionTo("commentEndDash"):this.delegate.appendToCommentData(s)},commentEndDash:function(){var s=this.consume();s==="-"?this.transitionTo("commentEnd"):(this.delegate.appendToCommentData("-"+s),this.transitionTo("comment"))},commentEnd:function(){var s=this.consume();s===">"?(this.delegate.finishComment(),this.transitionTo("beforeData")):(this.delegate.appendToCommentData("--"+s),this.transitionTo("comment"))},tagName:function(){var s=this.consume();Zt(s)?this.transitionTo("beforeAttributeName"):s==="/"?this.transitionTo("selfClosingStartTag"):s===">"?(this.delegate.finishTag(),this.transitionTo("beforeData")):this.appendToTagName(s)},endTagName:function(){var s=this.consume();Zt(s)?(this.transitionTo("beforeAttributeName"),this.tagNameBuffer=""):s==="/"?(this.transitionTo("selfClosingStartTag"),this.tagNameBuffer=""):s===">"?(this.delegate.finishTag(),this.transitionTo("beforeData"),this.tagNameBuffer=""):this.appendToTagName(s)},beforeAttributeName:function(){var s=this.peek();if(Zt(s)){this.consume();return}else s==="/"?(this.transitionTo("selfClosingStartTag"),this.consume()):s===">"?(this.consume(),this.delegate.finishTag(),this.transitionTo("beforeData")):s==="="?(this.delegate.reportSyntaxError("attribute name cannot start with equals sign"),this.transitionTo("attributeName"),this.delegate.beginAttribute(),this.consume(),this.delegate.appendToAttributeName(s)):(this.transitionTo("attributeName"),this.delegate.beginAttribute())},attributeName:function(){var s=this.peek();Zt(s)?(this.transitionTo("afterAttributeName"),this.consume()):s==="/"?(this.delegate.beginAttributeValue(!1),this.delegate.finishAttributeValue(),this.consume(),this.transitionTo("selfClosingStartTag")):s==="="?(this.transitionTo("beforeAttributeValue"),this.consume()):s===">"?(this.delegate.beginAttributeValue(!1),this.delegate.finishAttributeValue(),this.consume(),this.delegate.finishTag(),this.transitionTo("beforeData")):s==='"'||s==="'"||s==="<"?(this.delegate.reportSyntaxError(s+" is not a valid character within attribute names"),this.consume(),this.delegate.appendToAttributeName(s)):(this.consume(),this.delegate.appendToAttributeName(s))},afterAttributeName:function(){var s=this.peek();if(Zt(s)){this.consume();return}else s==="/"?(this.delegate.beginAttributeValue(!1),this.delegate.finishAttributeValue(),this.consume(),this.transitionTo("selfClosingStartTag")):s==="="?(this.consume(),this.transitionTo("beforeAttributeValue")):s===">"?(this.delegate.beginAttributeValue(!1),this.delegate.finishAttributeValue(),this.consume(),this.delegate.finishTag(),this.transitionTo("beforeData")):(this.delegate.beginAttributeValue(!1),this.delegate.finishAttributeValue(),this.transitionTo("attributeName"),this.delegate.beginAttribute(),this.consume(),this.delegate.appendToAttributeName(s))},beforeAttributeValue:function(){var s=this.peek();Zt(s)?this.consume():s==='"'?(this.transitionTo("attributeValueDoubleQuoted"),this.delegate.beginAttributeValue(!0),this.consume()):s==="'"?(this.transitionTo("attributeValueSingleQuoted"),this.delegate.beginAttributeValue(!0),this.consume()):s===">"?(this.delegate.beginAttributeValue(!1),this.delegate.finishAttributeValue(),this.consume(),this.delegate.finishTag(),this.transitionTo("beforeData")):(this.transitionTo("attributeValueUnquoted"),this.delegate.beginAttributeValue(!1),this.consume(),this.delegate.appendToAttributeValue(s))},attributeValueDoubleQuoted:function(){var s=this.consume();s==='"'?(this.delegate.finishAttributeValue(),this.transitionTo("afterAttributeValueQuoted")):s==="&"?this.delegate.appendToAttributeValue(this.consumeCharRef()||"&"):this.delegate.appendToAttributeValue(s)},attributeValueSingleQuoted:function(){var s=this.consume();s==="'"?(this.delegate.finishAttributeValue(),this.transitionTo("afterAttributeValueQuoted")):s==="&"?this.delegate.appendToAttributeValue(this.consumeCharRef()||"&"):this.delegate.appendToAttributeValue(s)},attributeValueUnquoted:function(){var s=this.peek();Zt(s)?(this.delegate.finishAttributeValue(),this.consume(),this.transitionTo("beforeAttributeName")):s==="/"?(this.delegate.finishAttributeValue(),this.consume(),this.transitionTo("selfClosingStartTag")):s==="&"?(this.consume(),this.delegate.appendToAttributeValue(this.consumeCharRef()||"&")):s===">"?(this.delegate.finishAttributeValue(),this.consume(),this.delegate.finishTag(),this.transitionTo("beforeData")):(this.consume(),this.delegate.appendToAttributeValue(s))},afterAttributeValueQuoted:function(){var s=this.peek();Zt(s)?(this.consume(),this.transitionTo("beforeAttributeName")):s==="/"?(this.consume(),this.transitionTo("selfClosingStartTag")):s===">"?(this.consume(),this.delegate.finishTag(),this.transitionTo("beforeData")):this.transitionTo("beforeAttributeName")},selfClosingStartTag:function(){var s=this.peek();s===">"?(this.consume(),this.delegate.markTagAsSelfClosing(),this.delegate.finishTag(),this.transitionTo("beforeData")):this.transitionTo("beforeAttributeName")},endTagOpen:function(){var s=this.consume();(s==="@"||s===":"||B_(s))&&(this.transitionTo("endTagName"),this.tagNameBuffer="",this.delegate.beginEndTag(),this.appendToTagName(s))}},this.reset()}return e.prototype.reset=function(){this.transitionTo("beforeData"),this.input="",this.tagNameBuffer="",this.index=0,this.line=1,this.column=0,this.delegate.reset()},e.prototype.transitionTo=function(t){this.state=t},e.prototype.tokenize=function(t){this.reset(),this.tokenizePart(t),this.tokenizeEOF()},e.prototype.tokenizePart=function(t){for(this.input+=l9e(t);this.index"||t==="style"&&this.input.substring(this.index,this.index+8)!==""||t==="script"&&this.input.substring(this.index,this.index+9)!=="<\/script>"},e}(),d9e=function(){function e(t,n){n===void 0&&(n={}),this.options=n,this.token=null,this.startLine=1,this.startColumn=0,this.tokens=[],this.tokenizer=new c9e(this,t,n.mode),this._currentAttribute=void 0}return e.prototype.tokenize=function(t){return this.tokens=[],this.tokenizer.tokenize(t),this.tokens},e.prototype.tokenizePart=function(t){return this.tokens=[],this.tokenizer.tokenizePart(t),this.tokens},e.prototype.tokenizeEOF=function(){return this.tokens=[],this.tokenizer.tokenizeEOF(),this.tokens[0]},e.prototype.reset=function(){this.token=null,this.startLine=1,this.startColumn=0},e.prototype.current=function(){var t=this.token;if(t===null)throw new Error("token was unexpectedly null");if(arguments.length===0)return t;for(var n=0;n=0))continue;let c=a.length;T9e(u,n,++o,a),o+=a.length-c-1}else if(i.type!==Fd)a.push(i);else{const u=_9e(i.chars,r);a.push.apply(a,u)}}for(let o=0;o0&&(u+=" "+A9e(i.attributes).join(" ")),i.selfClosing&&(u+=" /"),u+=">",s.push(u);break}case ZS:s.push(``);break;case Fd:s.push(zd(i.chars));break;case f9e:s.push(``);break;case p9e:{let u=`",s.push(u);break}}}return s.join("")}function _9e(e,t){const n=e9e(e),a=[];for(let s=0;s0;){let r=t[n];r.type===Zu&&r.tagName.toUpperCase()===e?s++:r.type===ZS&&r.tagName.toUpperCase()===e&&s--,a.push(r),n++}return a}function h9e(e){let{tagName:t,attributes:n,content:a}=e;return`<${t} ${S9e(n)}>${zd(a)}`}function zd(e){return e.replace(//g,">")}function JS(e){return e.replace(/"/g,""")}function S9e(e){const t=[];for(const n in e){const a=e[n]+"";t.push(`${n}="${JS(a)}"`)}return t.join(" ")}function A9e(e){const t=[];for(let n=0;n䀾mmaĀ;d׷׸䎓;䏜reve;䄞ƀeiy؇،ؐdil;䄢rc;䄜;䐓ot;䄠r;쀀𝔊;拙pf;쀀𝔾eater̀EFGLSTصلَٖٛ٦qualĀ;Lؾؿ扥ess;招ullEqual;执reater;檢ess;扷lantEqual;橾ilde;扳cr;쀀𝒢;扫ЀAacfiosuڅڋږڛڞڪھۊRDcy;䐪Āctڐڔek;䋇;䁞irc;䄤r;愌lbertSpace;愋ǰگ\0ڲf;愍izontalLine;攀Āctۃۅòکrok;䄦mpńېۘownHumðįqual;扏܀EJOacdfgmnostuۺ۾܃܇܎ܚܞܡܨ݄ݸދޏޕcy;䐕lig;䄲cy;䐁cute耻Í䃍Āiyܓܘrc耻Î䃎;䐘ot;䄰r;愑rave耻Ì䃌ƀ;apܠܯܿĀcgܴܷr;䄪inaryI;慈lieóϝǴ݉\0ݢĀ;eݍݎ戬Āgrݓݘral;戫section;拂isibleĀCTݬݲomma;恣imes;恢ƀgptݿރވon;䄮f;쀀𝕀a;䎙cr;愐ilde;䄨ǫޚ\0ޞcy;䐆l耻Ï䃏ʀcfosuެ޷޼߂ߐĀiyޱ޵rc;䄴;䐙r;쀀𝔍pf;쀀𝕁ǣ߇\0ߌr;쀀𝒥rcy;䐈kcy;䐄΀HJacfosߤߨ߽߬߱ࠂࠈcy;䐥cy;䐌ppa;䎚Āey߶߻dil;䄶;䐚r;쀀𝔎pf;쀀𝕂cr;쀀𝒦րJTaceflmostࠥࠩࠬࡐࡣ঳সে্਷ੇcy;䐉耻<䀼ʀcmnpr࠷࠼ࡁࡄࡍute;䄹bda;䎛g;柪lacetrf;愒r;憞ƀaeyࡗ࡜ࡡron;䄽dil;䄻;䐛Āfsࡨ॰tԀACDFRTUVarࡾࢩࢱࣦ࣠ࣼयज़ΐ४Ānrࢃ࢏gleBracket;柨rowƀ;BR࢙࢚࢞憐ar;懤ightArrow;懆eiling;挈oǵࢷ\0ࣃbleBracket;柦nǔࣈ\0࣒eeVector;楡ectorĀ;Bࣛࣜ懃ar;楙loor;挊ightĀAV࣯ࣵrrow;憔ector;楎Āerँगeƀ;AVउऊऐ抣rrow;憤ector;楚iangleƀ;BEतथऩ抲ar;槏qual;抴pƀDTVषूौownVector;楑eeVector;楠ectorĀ;Bॖॗ憿ar;楘ectorĀ;B॥०憼ar;楒ightáΜs̀EFGLSTॾঋকঝঢভqualGreater;拚ullEqual;扦reater;扶ess;檡lantEqual;橽ilde;扲r;쀀𝔏Ā;eঽা拘ftarrow;懚idot;䄿ƀnpw৔ਖਛgȀLRlr৞৷ਂਐeftĀAR০৬rrow;柵ightArrow;柷ightArrow;柶eftĀarγਊightáοightáϊf;쀀𝕃erĀLRਢਬeftArrow;憙ightArrow;憘ƀchtਾੀੂòࡌ;憰rok;䅁;扪Ѐacefiosuਗ਼੝੠੷੼અઋ઎p;椅y;䐜Ādl੥੯iumSpace;恟lintrf;愳r;쀀𝔐nusPlus;戓pf;쀀𝕄cò੶;䎜ҀJacefostuણધભીଔଙඑ඗ඞcy;䐊cute;䅃ƀaey઴હાron;䅇dil;䅅;䐝ƀgswે૰଎ativeƀMTV૓૟૨ediumSpace;怋hiĀcn૦૘ë૙eryThiî૙tedĀGL૸ଆreaterGreateòٳessLesóੈLine;䀊r;쀀𝔑ȀBnptଢନଷ଺reak;恠BreakingSpace;䂠f;愕ڀ;CDEGHLNPRSTV୕ୖ୪୼஡௫ఄ౞಄ದ೘ൡඅ櫬Āou୛୤ngruent;扢pCap;扭oubleVerticalBar;戦ƀlqxஃஊ஛ement;戉ualĀ;Tஒஓ扠ilde;쀀≂̸ists;戄reater΀;EFGLSTஶஷ஽௉௓௘௥扯qual;扱ullEqual;쀀≧̸reater;쀀≫̸ess;批lantEqual;쀀⩾̸ilde;扵umpń௲௽ownHump;쀀≎̸qual;쀀≏̸eĀfsఊధtTriangleƀ;BEచఛడ拪ar;쀀⧏̸qual;括s̀;EGLSTవశ఼ౄోౘ扮qual;扰reater;扸ess;쀀≪̸lantEqual;쀀⩽̸ilde;扴estedĀGL౨౹reaterGreater;쀀⪢̸essLess;쀀⪡̸recedesƀ;ESಒಓಛ技qual;쀀⪯̸lantEqual;拠ĀeiಫಹverseElement;戌ghtTriangleƀ;BEೋೌ೒拫ar;쀀⧐̸qual;拭ĀquೝഌuareSuĀbp೨೹setĀ;E೰ೳ쀀⊏̸qual;拢ersetĀ;Eഃആ쀀⊐̸qual;拣ƀbcpഓതൎsetĀ;Eഛഞ쀀⊂⃒qual;抈ceedsȀ;ESTലള഻െ抁qual;쀀⪰̸lantEqual;拡ilde;쀀≿̸ersetĀ;E൘൛쀀⊃⃒qual;抉ildeȀ;EFT൮൯൵ൿ扁qual;扄ullEqual;扇ilde;扉erticalBar;戤cr;쀀𝒩ilde耻Ñ䃑;䎝܀Eacdfgmoprstuvලෂ෉෕ෛ෠෧෼ขภยา฿ไlig;䅒cute耻Ó䃓Āiy෎ීrc耻Ô䃔;䐞blac;䅐r;쀀𝔒rave耻Ò䃒ƀaei෮ෲ෶cr;䅌ga;䎩cron;䎟pf;쀀𝕆enCurlyĀDQฎบoubleQuote;怜uote;怘;橔Āclวฬr;쀀𝒪ash耻Ø䃘iŬื฼de耻Õ䃕es;樷ml耻Ö䃖erĀBP๋๠Āar๐๓r;怾acĀek๚๜;揞et;掴arenthesis;揜Ҁacfhilors๿ງຊຏຒດຝະ໼rtialD;戂y;䐟r;쀀𝔓i;䎦;䎠usMinus;䂱Āipຢອncareplanåڝf;愙Ȁ;eio຺ູ໠໤檻cedesȀ;EST່້໏໚扺qual;檯lantEqual;扼ilde;找me;怳Ādp໩໮uct;戏ortionĀ;aȥ໹l;戝Āci༁༆r;쀀𝒫;䎨ȀUfos༑༖༛༟OT耻"䀢r;쀀𝔔pf;愚cr;쀀𝒬؀BEacefhiorsu༾གྷཇའཱིྦྷྪྭ႖ႩႴႾarr;椐G耻®䂮ƀcnrཎནབute;䅔g;柫rĀ;tཛྷཝ憠l;椖ƀaeyཧཬཱron;䅘dil;䅖;䐠Ā;vླྀཹ愜erseĀEUྂྙĀlq྇ྎement;戋uilibrium;懋pEquilibrium;楯r»ཹo;䎡ghtЀACDFTUVa࿁࿫࿳ဢဨၛႇϘĀnr࿆࿒gleBracket;柩rowƀ;BL࿜࿝࿡憒ar;懥eftArrow;懄eiling;按oǵ࿹\0စbleBracket;柧nǔည\0နeeVector;楝ectorĀ;Bဝသ懂ar;楕loor;挋Āerိ၃eƀ;AVဵံြ抢rrow;憦ector;楛iangleƀ;BEၐၑၕ抳ar;槐qual;抵pƀDTVၣၮၸownVector;楏eeVector;楜ectorĀ;Bႂႃ憾ar;楔ectorĀ;B႑႒懀ar;楓Āpuႛ႞f;愝ndImplies;楰ightarrow;懛ĀchႹႼr;愛;憱leDelayed;槴ڀHOacfhimoqstuფჱჷჽᄙᄞᅑᅖᅡᅧᆵᆻᆿĀCcჩხHcy;䐩y;䐨FTcy;䐬cute;䅚ʀ;aeiyᄈᄉᄎᄓᄗ檼ron;䅠dil;䅞rc;䅜;䐡r;쀀𝔖ortȀDLRUᄪᄴᄾᅉownArrow»ОeftArrow»࢚ightArrow»࿝pArrow;憑gma;䎣allCircle;战pf;쀀𝕊ɲᅭ\0\0ᅰt;戚areȀ;ISUᅻᅼᆉᆯ斡ntersection;抓uĀbpᆏᆞsetĀ;Eᆗᆘ抏qual;抑ersetĀ;Eᆨᆩ抐qual;抒nion;抔cr;쀀𝒮ar;拆ȀbcmpᇈᇛሉላĀ;sᇍᇎ拐etĀ;Eᇍᇕqual;抆ĀchᇠህeedsȀ;ESTᇭᇮᇴᇿ扻qual;檰lantEqual;扽ilde;承Tháྌ;我ƀ;esሒሓሣ拑rsetĀ;Eሜም抃qual;抇et»ሓրHRSacfhiorsሾቄ቉ቕ቞ቱቶኟዂወዑORN耻Þ䃞ADE;愢ĀHc቎ቒcy;䐋y;䐦Ābuቚቜ;䀉;䎤ƀaeyብቪቯron;䅤dil;䅢;䐢r;쀀𝔗Āeiቻ኉Dzኀ\0ኇefore;戴a;䎘Ācn኎ኘkSpace;쀀  Space;怉ldeȀ;EFTካኬኲኼ戼qual;扃ullEqual;扅ilde;扈pf;쀀𝕋ipleDot;惛Āctዖዛr;쀀𝒯rok;䅦ૡዷጎጚጦ\0ጬጱ\0\0\0\0\0ጸጽ፷ᎅ\0᏿ᐄᐊᐐĀcrዻጁute耻Ú䃚rĀ;oጇገ憟cir;楉rǣጓ\0጖y;䐎ve;䅬Āiyጞጣrc耻Û䃛;䐣blac;䅰r;쀀𝔘rave耻Ù䃙acr;䅪Ādiፁ፩erĀBPፈ፝Āarፍፐr;䁟acĀekፗፙ;揟et;掵arenthesis;揝onĀ;P፰፱拃lus;抎Āgp፻፿on;䅲f;쀀𝕌ЀADETadps᎕ᎮᎸᏄϨᏒᏗᏳrrowƀ;BDᅐᎠᎤar;椒ownArrow;懅ownArrow;憕quilibrium;楮eeĀ;AᏋᏌ报rrow;憥ownáϳerĀLRᏞᏨeftArrow;憖ightArrow;憗iĀ;lᏹᏺ䏒on;䎥ing;䅮cr;쀀𝒰ilde;䅨ml耻Ü䃜ҀDbcdefosvᐧᐬᐰᐳᐾᒅᒊᒐᒖash;披ar;櫫y;䐒ashĀ;lᐻᐼ抩;櫦Āerᑃᑅ;拁ƀbtyᑌᑐᑺar;怖Ā;iᑏᑕcalȀBLSTᑡᑥᑪᑴar;戣ine;䁼eparator;杘ilde;所ThinSpace;怊r;쀀𝔙pf;쀀𝕍cr;쀀𝒱dash;抪ʀcefosᒧᒬᒱᒶᒼirc;䅴dge;拀r;쀀𝔚pf;쀀𝕎cr;쀀𝒲Ȁfiosᓋᓐᓒᓘr;쀀𝔛;䎞pf;쀀𝕏cr;쀀𝒳ҀAIUacfosuᓱᓵᓹᓽᔄᔏᔔᔚᔠcy;䐯cy;䐇cy;䐮cute耻Ý䃝Āiyᔉᔍrc;䅶;䐫r;쀀𝔜pf;쀀𝕐cr;쀀𝒴ml;䅸ЀHacdefosᔵᔹᔿᕋᕏᕝᕠᕤcy;䐖cute;䅹Āayᕄᕉron;䅽;䐗ot;䅻Dzᕔ\0ᕛoWidtè૙a;䎖r;愨pf;愤cr;쀀𝒵௡ᖃᖊᖐ\0ᖰᖶᖿ\0\0\0\0ᗆᗛᗫᙟ᙭\0ᚕ᚛ᚲᚹ\0ᚾcute耻á䃡reve;䄃̀;Ediuyᖜᖝᖡᖣᖨᖭ戾;쀀∾̳;房rc耻â䃢te肻´̆;䐰lig耻æ䃦Ā;r²ᖺ;쀀𝔞rave耻à䃠ĀepᗊᗖĀfpᗏᗔsym;愵èᗓha;䎱ĀapᗟcĀclᗤᗧr;䄁g;樿ɤᗰ\0\0ᘊʀ;adsvᗺᗻᗿᘁᘇ戧nd;橕;橜lope;橘;橚΀;elmrszᘘᘙᘛᘞᘿᙏᙙ戠;榤e»ᘙsdĀ;aᘥᘦ戡ѡᘰᘲᘴᘶᘸᘺᘼᘾ;榨;榩;榪;榫;榬;榭;榮;榯tĀ;vᙅᙆ戟bĀ;dᙌᙍ抾;榝Āptᙔᙗh;戢»¹arr;捼Āgpᙣᙧon;䄅f;쀀𝕒΀;Eaeiop዁ᙻᙽᚂᚄᚇᚊ;橰cir;橯;扊d;手s;䀧roxĀ;e዁ᚒñᚃing耻å䃥ƀctyᚡᚦᚨr;쀀𝒶;䀪mpĀ;e዁ᚯñʈilde耻ã䃣ml耻ä䃤Āciᛂᛈoninôɲnt;樑ࠀNabcdefiklnoprsu᛭ᛱᜰ᜼ᝃᝈ᝸᝽០៦ᠹᡐᜍ᤽᥈ᥰot;櫭Ācrᛶ᜞kȀcepsᜀᜅᜍᜓong;扌psilon;䏶rime;怵imĀ;e᜚᜛戽q;拍Ŷᜢᜦee;抽edĀ;gᜬᜭ挅e»ᜭrkĀ;t፜᜷brk;掶Āoyᜁᝁ;䐱quo;怞ʀcmprtᝓ᝛ᝡᝤᝨausĀ;eĊĉptyv;榰séᜌnoõēƀahwᝯ᝱ᝳ;䎲;愶een;扬r;쀀𝔟g΀costuvwឍឝឳេ៕៛៞ƀaiuបពរðݠrc;旯p»፱ƀdptឤឨឭot;樀lus;樁imes;樂ɱឹ\0\0ើcup;樆ar;昅riangleĀdu៍្own;施p;斳plus;樄eåᑄåᒭarow;植ƀako៭ᠦᠵĀcn៲ᠣkƀlst៺֫᠂ozenge;槫riangleȀ;dlr᠒᠓᠘᠝斴own;斾eft;旂ight;斸k;搣Ʊᠫ\0ᠳƲᠯ\0ᠱ;斒;斑4;斓ck;斈ĀeoᠾᡍĀ;qᡃᡆ쀀=⃥uiv;쀀≡⃥t;挐Ȁptwxᡙᡞᡧᡬf;쀀𝕓Ā;tᏋᡣom»Ꮜtie;拈؀DHUVbdhmptuvᢅᢖᢪᢻᣗᣛᣬ᣿ᤅᤊᤐᤡȀLRlrᢎᢐᢒᢔ;敗;敔;敖;敓ʀ;DUduᢡᢢᢤᢦᢨ敐;敦;敩;敤;敧ȀLRlrᢳᢵᢷᢹ;敝;敚;敜;教΀;HLRhlrᣊᣋᣍᣏᣑᣓᣕ救;敬;散;敠;敫;敢;敟ox;槉ȀLRlrᣤᣦᣨᣪ;敕;敒;攐;攌ʀ;DUduڽ᣷᣹᣻᣽;敥;敨;攬;攴inus;抟lus;択imes;抠ȀLRlrᤙᤛᤝ᤟;敛;敘;攘;攔΀;HLRhlrᤰᤱᤳᤵᤷ᤻᤹攂;敪;敡;敞;攼;攤;攜Āevģ᥂bar耻¦䂦Ȁceioᥑᥖᥚᥠr;쀀𝒷mi;恏mĀ;e᜚᜜lƀ;bhᥨᥩᥫ䁜;槅sub;柈Ŭᥴ᥾lĀ;e᥹᥺怢t»᥺pƀ;Eeįᦅᦇ;檮Ā;qۜۛೡᦧ\0᧨ᨑᨕᨲ\0ᨷᩐ\0\0᪴\0\0᫁\0\0ᬡᬮ᭍᭒\0᯽\0ᰌƀcpr᦭ᦲ᧝ute;䄇̀;abcdsᦿᧀᧄ᧊᧕᧙戩nd;橄rcup;橉Āau᧏᧒p;橋p;橇ot;橀;쀀∩︀Āeo᧢᧥t;恁îړȀaeiu᧰᧻ᨁᨅǰ᧵\0᧸s;橍on;䄍dil耻ç䃧rc;䄉psĀ;sᨌᨍ橌m;橐ot;䄋ƀdmnᨛᨠᨦil肻¸ƭptyv;榲t脀¢;eᨭᨮ䂢räƲr;쀀𝔠ƀceiᨽᩀᩍy;䑇ckĀ;mᩇᩈ朓ark»ᩈ;䏇r΀;Ecefms᩟᩠ᩢᩫ᪤᪪᪮旋;槃ƀ;elᩩᩪᩭ䋆q;扗eɡᩴ\0\0᪈rrowĀlr᩼᪁eft;憺ight;憻ʀRSacd᪒᪔᪖᪚᪟»ཇ;擈st;抛irc;抚ash;抝nint;樐id;櫯cir;槂ubsĀ;u᪻᪼晣it»᪼ˬ᫇᫔᫺\0ᬊonĀ;eᫍᫎ䀺Ā;qÇÆɭ᫙\0\0᫢aĀ;t᫞᫟䀬;䁀ƀ;fl᫨᫩᫫戁îᅠeĀmx᫱᫶ent»᫩eóɍǧ᫾\0ᬇĀ;dኻᬂot;橭nôɆƀfryᬐᬔᬗ;쀀𝕔oäɔ脀©;sŕᬝr;愗Āaoᬥᬩrr;憵ss;朗Ācuᬲᬷr;쀀𝒸Ābpᬼ᭄Ā;eᭁᭂ櫏;櫑Ā;eᭉᭊ櫐;櫒dot;拯΀delprvw᭠᭬᭷ᮂᮬᯔ᯹arrĀlr᭨᭪;椸;椵ɰ᭲\0\0᭵r;拞c;拟arrĀ;p᭿ᮀ憶;椽̀;bcdosᮏᮐᮖᮡᮥᮨ截rcap;橈Āauᮛᮞp;橆p;橊ot;抍r;橅;쀀∪︀Ȁalrv᮵ᮿᯞᯣrrĀ;mᮼᮽ憷;椼yƀevwᯇᯔᯘqɰᯎ\0\0ᯒreã᭳uã᭵ee;拎edge;拏en耻¤䂤earrowĀlrᯮ᯳eft»ᮀight»ᮽeäᯝĀciᰁᰇoninôǷnt;戱lcty;挭ঀAHabcdefhijlorstuwz᰸᰻᰿ᱝᱩᱵᲊᲞᲬᲷ᳻᳿ᴍᵻᶑᶫᶻ᷆᷍rò΁ar;楥Ȁglrs᱈ᱍ᱒᱔ger;怠eth;愸òᄳhĀ;vᱚᱛ怐»ऊūᱡᱧarow;椏aã̕Āayᱮᱳron;䄏;䐴ƀ;ao̲ᱼᲄĀgrʿᲁr;懊tseq;橷ƀglmᲑᲔᲘ耻°䂰ta;䎴ptyv;榱ĀirᲣᲨsht;楿;쀀𝔡arĀlrᲳᲵ»ࣜ»သʀaegsv᳂͸᳖᳜᳠mƀ;oș᳊᳔ndĀ;ș᳑uit;晦amma;䏝in;拲ƀ;io᳧᳨᳸䃷de脀÷;o᳧ᳰntimes;拇nø᳷cy;䑒cɯᴆ\0\0ᴊrn;挞op;挍ʀlptuwᴘᴝᴢᵉᵕlar;䀤f;쀀𝕕ʀ;emps̋ᴭᴷᴽᵂqĀ;d͒ᴳot;扑inus;戸lus;戔quare;抡blebarwedgåúnƀadhᄮᵝᵧownarrowóᲃarpoonĀlrᵲᵶefôᲴighôᲶŢᵿᶅkaro÷གɯᶊ\0\0ᶎrn;挟op;挌ƀcotᶘᶣᶦĀryᶝᶡ;쀀𝒹;䑕l;槶rok;䄑Ādrᶰᶴot;拱iĀ;fᶺ᠖斿Āah᷀᷃ròЩaòྦangle;榦Āci᷒ᷕy;䑟grarr;柿ऀDacdefglmnopqrstuxḁḉḙḸոḼṉṡṾấắẽỡἪἷὄ὎὚ĀDoḆᴴoôᲉĀcsḎḔute耻é䃩ter;橮ȀaioyḢḧḱḶron;䄛rĀ;cḭḮ扖耻ê䃪lon;払;䑍ot;䄗ĀDrṁṅot;扒;쀀𝔢ƀ;rsṐṑṗ檚ave耻è䃨Ā;dṜṝ檖ot;檘Ȁ;ilsṪṫṲṴ檙nters;揧;愓Ā;dṹṺ檕ot;檗ƀapsẅẉẗcr;䄓tyƀ;svẒẓẕ戅et»ẓpĀ1;ẝẤijạả;怄;怅怃ĀgsẪẬ;䅋p;怂ĀgpẴẸon;䄙f;쀀𝕖ƀalsỄỎỒrĀ;sỊị拕l;槣us;橱iƀ;lvỚớở䎵on»ớ;䏵ȀcsuvỪỳἋἣĀioữḱrc»Ḯɩỹ\0\0ỻíՈantĀglἂἆtr»ṝess»Ṻƀaeiἒ἖Ἒls;䀽st;扟vĀ;DȵἠD;橸parsl;槥ĀDaἯἳot;打rr;楱ƀcdiἾὁỸr;愯oô͒ĀahὉὋ;䎷耻ð䃰Āmrὓὗl耻ë䃫o;悬ƀcipὡὤὧl;䀡sôծĀeoὬὴctatioîՙnentialåչৡᾒ\0ᾞ\0ᾡᾧ\0\0ῆῌ\0ΐ\0ῦῪ \0 ⁚llingdotseñṄy;䑄male;晀ƀilrᾭᾳ῁lig;耀ffiɩᾹ\0\0᾽g;耀ffig;耀ffl;쀀𝔣lig;耀filig;쀀fjƀaltῙ῜ῡt;晭ig;耀flns;斱of;䆒ǰ΅\0ῳf;쀀𝕗ĀakֿῷĀ;vῼ´拔;櫙artint;樍Āao‌⁕Ācs‑⁒ႉ‸⁅⁈\0⁐β•‥‧‪‬\0‮耻½䂽;慓耻¼䂼;慕;慙;慛Ƴ‴\0‶;慔;慖ʴ‾⁁\0\0⁃耻¾䂾;慗;慜5;慘ƶ⁌\0⁎;慚;慝8;慞l;恄wn;挢cr;쀀𝒻ࢀEabcdefgijlnorstv₂₉₟₥₰₴⃰⃵⃺⃿℃ℒℸ̗ℾ⅒↞Ā;lٍ₇;檌ƀcmpₐₕ₝ute;䇵maĀ;dₜ᳚䎳;檆reve;䄟Āiy₪₮rc;䄝;䐳ot;䄡Ȁ;lqsؾق₽⃉ƀ;qsؾٌ⃄lanô٥Ȁ;cdl٥⃒⃥⃕c;檩otĀ;o⃜⃝檀Ā;l⃢⃣檂;檄Ā;e⃪⃭쀀⋛︀s;檔r;쀀𝔤Ā;gٳ؛mel;愷cy;䑓Ȁ;Eajٚℌℎℐ;檒;檥;檤ȀEaesℛℝ℩ℴ;扩pĀ;p℣ℤ檊rox»ℤĀ;q℮ℯ檈Ā;q℮ℛim;拧pf;쀀𝕘Āci⅃ⅆr;愊mƀ;el٫ⅎ⅐;檎;檐茀>;cdlqr׮ⅠⅪⅮⅳⅹĀciⅥⅧ;檧r;橺ot;拗Par;榕uest;橼ʀadelsↄⅪ←ٖ↛ǰ↉\0↎proø₞r;楸qĀlqؿ↖lesó₈ií٫Āen↣↭rtneqq;쀀≩︀Å↪ԀAabcefkosy⇄⇇⇱⇵⇺∘∝∯≨≽ròΠȀilmr⇐⇔⇗⇛rsðᒄf»․ilôکĀdr⇠⇤cy;䑊ƀ;cwࣴ⇫⇯ir;楈;憭ar;意irc;䄥ƀalr∁∎∓rtsĀ;u∉∊晥it»∊lip;怦con;抹r;쀀𝔥sĀew∣∩arow;椥arow;椦ʀamopr∺∾≃≞≣rr;懿tht;戻kĀlr≉≓eftarrow;憩ightarrow;憪f;쀀𝕙bar;怕ƀclt≯≴≸r;쀀𝒽asè⇴rok;䄧Ābp⊂⊇ull;恃hen»ᱛૡ⊣\0⊪\0⊸⋅⋎\0⋕⋳\0\0⋸⌢⍧⍢⍿\0⎆⎪⎴cute耻í䃭ƀ;iyݱ⊰⊵rc耻î䃮;䐸Ācx⊼⊿y;䐵cl耻¡䂡ĀfrΟ⋉;쀀𝔦rave耻ì䃬Ȁ;inoܾ⋝⋩⋮Āin⋢⋦nt;樌t;戭fin;槜ta;愩lig;䄳ƀaop⋾⌚⌝ƀcgt⌅⌈⌗r;䄫ƀelpܟ⌏⌓inåގarôܠh;䄱f;抷ed;䆵ʀ;cfotӴ⌬⌱⌽⍁are;愅inĀ;t⌸⌹戞ie;槝doô⌙ʀ;celpݗ⍌⍐⍛⍡al;抺Āgr⍕⍙eróᕣã⍍arhk;樗rod;樼Ȁcgpt⍯⍲⍶⍻y;䑑on;䄯f;쀀𝕚a;䎹uest耻¿䂿Āci⎊⎏r;쀀𝒾nʀ;EdsvӴ⎛⎝⎡ӳ;拹ot;拵Ā;v⎦⎧拴;拳Ā;iݷ⎮lde;䄩ǫ⎸\0⎼cy;䑖l耻ï䃯̀cfmosu⏌⏗⏜⏡⏧⏵Āiy⏑⏕rc;䄵;䐹r;쀀𝔧ath;䈷pf;쀀𝕛ǣ⏬\0⏱r;쀀𝒿rcy;䑘kcy;䑔Ѐacfghjos␋␖␢␧␭␱␵␻ppaĀ;v␓␔䎺;䏰Āey␛␠dil;䄷;䐺r;쀀𝔨reen;䄸cy;䑅cy;䑜pf;쀀𝕜cr;쀀𝓀஀ABEHabcdefghjlmnoprstuv⑰⒁⒆⒍⒑┎┽╚▀♎♞♥♹♽⚚⚲⛘❝❨➋⟀⠁⠒ƀart⑷⑺⑼rò৆òΕail;椛arr;椎Ā;gঔ⒋;檋ar;楢ॣ⒥\0⒪\0⒱\0\0\0\0\0⒵Ⓔ\0ⓆⓈⓍ\0⓹ute;䄺mptyv;榴raîࡌbda;䎻gƀ;dlࢎⓁⓃ;榑åࢎ;檅uo耻«䂫rЀ;bfhlpst࢙ⓞⓦⓩ⓫⓮⓱⓵Ā;f࢝ⓣs;椟s;椝ë≒p;憫l;椹im;楳l;憢ƀ;ae⓿─┄檫il;椙Ā;s┉┊檭;쀀⪭︀ƀabr┕┙┝rr;椌rk;杲Āak┢┬cĀek┨┪;䁻;䁛Āes┱┳;榋lĀdu┹┻;榏;榍Ȁaeuy╆╋╖╘ron;䄾Ādi═╔il;䄼ìࢰâ┩;䐻Ȁcqrs╣╦╭╽a;椶uoĀ;rนᝆĀdu╲╷har;楧shar;楋h;憲ʀ;fgqs▋▌উ◳◿扤tʀahlrt▘▤▷◂◨rrowĀ;t࢙□aé⓶arpoonĀdu▯▴own»њp»०eftarrows;懇ightƀahs◍◖◞rrowĀ;sࣴࢧarpoonó྘quigarro÷⇰hreetimes;拋ƀ;qs▋ও◺lanôবʀ;cdgsব☊☍☝☨c;檨otĀ;o☔☕橿Ā;r☚☛檁;檃Ā;e☢☥쀀⋚︀s;檓ʀadegs☳☹☽♉♋pproøⓆot;拖qĀgq♃♅ôউgtò⒌ôছiíলƀilr♕࣡♚sht;楼;쀀𝔩Ā;Eজ♣;檑š♩♶rĀdu▲♮Ā;l॥♳;楪lk;斄cy;䑙ʀ;achtੈ⚈⚋⚑⚖rò◁orneòᴈard;楫ri;旺Āio⚟⚤dot;䅀ustĀ;a⚬⚭掰che»⚭ȀEaes⚻⚽⛉⛔;扨pĀ;p⛃⛄檉rox»⛄Ā;q⛎⛏檇Ā;q⛎⚻im;拦Ѐabnoptwz⛩⛴⛷✚✯❁❇❐Ānr⛮⛱g;柬r;懽rëࣁgƀlmr⛿✍✔eftĀar০✇ightá৲apsto;柼ightá৽parrowĀlr✥✩efô⓭ight;憬ƀafl✶✹✽r;榅;쀀𝕝us;樭imes;樴š❋❏st;戗áፎƀ;ef❗❘᠀旊nge»❘arĀ;l❤❥䀨t;榓ʀachmt❳❶❼➅➇ròࢨorneòᶌarĀ;d྘➃;業;怎ri;抿̀achiqt➘➝ੀ➢➮➻quo;怹r;쀀𝓁mƀ;egল➪➬;檍;檏Ābu┪➳oĀ;rฟ➹;怚rok;䅂萀<;cdhilqrࠫ⟒☹⟜⟠⟥⟪⟰Āci⟗⟙;檦r;橹reå◲mes;拉arr;楶uest;橻ĀPi⟵⟹ar;榖ƀ;ef⠀भ᠛旃rĀdu⠇⠍shar;楊har;楦Āen⠗⠡rtneqq;쀀≨︀Å⠞܀Dacdefhilnopsu⡀⡅⢂⢎⢓⢠⢥⢨⣚⣢⣤ઃ⣳⤂Dot;戺Ȁclpr⡎⡒⡣⡽r耻¯䂯Āet⡗⡙;時Ā;e⡞⡟朠se»⡟Ā;sျ⡨toȀ;dluျ⡳⡷⡻owîҌefôएðᏑker;斮Āoy⢇⢌mma;権;䐼ash;怔asuredangle»ᘦr;쀀𝔪o;愧ƀcdn⢯⢴⣉ro耻µ䂵Ȁ;acdᑤ⢽⣀⣄sôᚧir;櫰ot肻·Ƶusƀ;bd⣒ᤃ⣓戒Ā;uᴼ⣘;横ţ⣞⣡p;櫛ò−ðઁĀdp⣩⣮els;抧f;쀀𝕞Āct⣸⣽r;쀀𝓂pos»ᖝƀ;lm⤉⤊⤍䎼timap;抸ఀGLRVabcdefghijlmoprstuvw⥂⥓⥾⦉⦘⧚⧩⨕⨚⩘⩝⪃⪕⪤⪨⬄⬇⭄⭿⮮ⰴⱧⱼ⳩Āgt⥇⥋;쀀⋙̸Ā;v⥐௏쀀≫⃒ƀelt⥚⥲⥶ftĀar⥡⥧rrow;懍ightarrow;懎;쀀⋘̸Ā;v⥻ే쀀≪⃒ightarrow;懏ĀDd⦎⦓ash;抯ash;抮ʀbcnpt⦣⦧⦬⦱⧌la»˞ute;䅄g;쀀∠⃒ʀ;Eiop඄⦼⧀⧅⧈;쀀⩰̸d;쀀≋̸s;䅉roø඄urĀ;a⧓⧔普lĀ;s⧓ସdz⧟\0⧣p肻 ଷmpĀ;e௹ఀʀaeouy⧴⧾⨃⨐⨓ǰ⧹\0⧻;橃on;䅈dil;䅆ngĀ;dൾ⨊ot;쀀⩭̸p;橂;䐽ash;怓΀;Aadqsxஒ⨩⨭⨻⩁⩅⩐rr;懗rĀhr⨳⨶k;椤Ā;oᏲᏰot;쀀≐̸uiöୣĀei⩊⩎ar;椨í஘istĀ;s஠டr;쀀𝔫ȀEest௅⩦⩹⩼ƀ;qs஼⩭௡ƀ;qs஼௅⩴lanô௢ií௪Ā;rஶ⪁»ஷƀAap⪊⪍⪑rò⥱rr;憮ar;櫲ƀ;svྍ⪜ྌĀ;d⪡⪢拼;拺cy;䑚΀AEadest⪷⪺⪾⫂⫅⫶⫹rò⥦;쀀≦̸rr;憚r;急Ȁ;fqs఻⫎⫣⫯tĀar⫔⫙rro÷⫁ightarro÷⪐ƀ;qs఻⪺⫪lanôౕĀ;sౕ⫴»శiíౝĀ;rవ⫾iĀ;eచథiäඐĀpt⬌⬑f;쀀𝕟膀¬;in⬙⬚⬶䂬nȀ;Edvஉ⬤⬨⬮;쀀⋹̸ot;쀀⋵̸ǡஉ⬳⬵;拷;拶iĀ;vಸ⬼ǡಸ⭁⭃;拾;拽ƀaor⭋⭣⭩rȀ;ast୻⭕⭚⭟lleì୻l;쀀⫽⃥;쀀∂̸lint;樔ƀ;ceಒ⭰⭳uåಥĀ;cಘ⭸Ā;eಒ⭽ñಘȀAait⮈⮋⮝⮧rò⦈rrƀ;cw⮔⮕⮙憛;쀀⤳̸;쀀↝̸ghtarrow»⮕riĀ;eೋೖ΀chimpqu⮽⯍⯙⬄୸⯤⯯Ȁ;cerല⯆ഷ⯉uå൅;쀀𝓃ortɭ⬅\0\0⯖ará⭖mĀ;e൮⯟Ā;q൴൳suĀbp⯫⯭å೸åഋƀbcp⯶ⰑⰙȀ;Ees⯿ⰀഢⰄ抄;쀀⫅̸etĀ;eഛⰋqĀ;qണⰀcĀ;eലⰗñസȀ;EesⰢⰣൟⰧ抅;쀀⫆̸etĀ;e൘ⰮqĀ;qൠⰣȀgilrⰽⰿⱅⱇìௗlde耻ñ䃱çృiangleĀlrⱒⱜeftĀ;eచⱚñదightĀ;eೋⱥñ೗Ā;mⱬⱭ䎽ƀ;esⱴⱵⱹ䀣ro;愖p;怇ҀDHadgilrsⲏⲔⲙⲞⲣⲰⲶⳓⳣash;抭arr;椄p;쀀≍⃒ash;抬ĀetⲨⲬ;쀀≥⃒;쀀>⃒nfin;槞ƀAetⲽⳁⳅrr;椂;쀀≤⃒Ā;rⳊⳍ쀀<⃒ie;쀀⊴⃒ĀAtⳘⳜrr;椃rie;쀀⊵⃒im;쀀∼⃒ƀAan⳰⳴ⴂrr;懖rĀhr⳺⳽k;椣Ā;oᏧᏥear;椧ቓ᪕\0\0\0\0\0\0\0\0\0\0\0\0\0ⴭ\0ⴸⵈⵠⵥ⵲ⶄᬇ\0\0ⶍⶫ\0ⷈⷎ\0ⷜ⸙⸫⸾⹃Ācsⴱ᪗ute耻ó䃳ĀiyⴼⵅrĀ;c᪞ⵂ耻ô䃴;䐾ʀabios᪠ⵒⵗLjⵚlac;䅑v;樸old;榼lig;䅓Ācr⵩⵭ir;榿;쀀𝔬ͯ⵹\0\0⵼\0ⶂn;䋛ave耻ò䃲;槁Ābmⶈ෴ar;榵Ȁacitⶕ⶘ⶥⶨrò᪀Āir⶝ⶠr;榾oss;榻nå๒;槀ƀaeiⶱⶵⶹcr;䅍ga;䏉ƀcdnⷀⷅǍron;䎿;榶pf;쀀𝕠ƀaelⷔ⷗ǒr;榷rp;榹΀;adiosvⷪⷫⷮ⸈⸍⸐⸖戨rò᪆Ȁ;efmⷷⷸ⸂⸅橝rĀ;oⷾⷿ愴f»ⷿ耻ª䂪耻º䂺gof;抶r;橖lope;橗;橛ƀclo⸟⸡⸧ò⸁ash耻ø䃸l;折iŬⸯ⸴de耻õ䃵esĀ;aǛ⸺s;樶ml耻ö䃶bar;挽ૡ⹞\0⹽\0⺀⺝\0⺢⺹\0\0⻋ຜ\0⼓\0\0⼫⾼\0⿈rȀ;astЃ⹧⹲຅脀¶;l⹭⹮䂶leìЃɩ⹸\0\0⹻m;櫳;櫽y;䐿rʀcimpt⺋⺏⺓ᡥ⺗nt;䀥od;䀮il;怰enk;怱r;쀀𝔭ƀimo⺨⺰⺴Ā;v⺭⺮䏆;䏕maô੶ne;明ƀ;tv⺿⻀⻈䏀chfork»´;䏖Āau⻏⻟nĀck⻕⻝kĀ;h⇴⻛;愎ö⇴sҀ;abcdemst⻳⻴ᤈ⻹⻽⼄⼆⼊⼎䀫cir;樣ir;樢Āouᵀ⼂;樥;橲n肻±ຝim;樦wo;樧ƀipu⼙⼠⼥ntint;樕f;쀀𝕡nd耻£䂣Ԁ;Eaceinosu່⼿⽁⽄⽇⾁⾉⾒⽾⾶;檳p;檷uå໙Ā;c໎⽌̀;acens່⽙⽟⽦⽨⽾pproø⽃urlyeñ໙ñ໎ƀaes⽯⽶⽺pprox;檹qq;檵im;拨iíໟmeĀ;s⾈ຮ怲ƀEas⽸⾐⽺ð⽵ƀdfp໬⾙⾯ƀals⾠⾥⾪lar;挮ine;挒urf;挓Ā;t໻⾴ï໻rel;抰Āci⿀⿅r;쀀𝓅;䏈ncsp;怈̀fiopsu⿚⋢⿟⿥⿫⿱r;쀀𝔮pf;쀀𝕢rime;恗cr;쀀𝓆ƀaeo⿸〉〓tĀei⿾々rnionóڰnt;樖stĀ;e【】䀿ñἙô༔઀ABHabcdefhilmnoprstux぀けさすムㄎㄫㅇㅢㅲㆎ㈆㈕㈤㈩㉘㉮㉲㊐㊰㊷ƀartぇおがròႳòϝail;検aròᱥar;楤΀cdenqrtとふへみわゔヌĀeuねぱ;쀀∽̱te;䅕iãᅮmptyv;榳gȀ;del࿑らるろ;榒;榥å࿑uo耻»䂻rր;abcfhlpstw࿜ガクシスゼゾダッデナp;極Ā;f࿠ゴs;椠;椳s;椞ë≝ð✮l;楅im;楴l;憣;憝Āaiパフil;椚oĀ;nホボ戶aló༞ƀabrョリヮrò៥rk;杳ĀakンヽcĀekヹ・;䁽;䁝Āes㄂㄄;榌lĀduㄊㄌ;榎;榐Ȁaeuyㄗㄜㄧㄩron;䅙Ādiㄡㄥil;䅗ì࿲âヺ;䑀Ȁclqsㄴㄷㄽㅄa;椷dhar;楩uoĀ;rȎȍh;憳ƀacgㅎㅟངlȀ;ipsླྀㅘㅛႜnåႻarôྩt;断ƀilrㅩဣㅮsht;楽;쀀𝔯ĀaoㅷㆆrĀduㅽㅿ»ѻĀ;l႑ㆄ;楬Ā;vㆋㆌ䏁;䏱ƀgns㆕ㇹㇼht̀ahlrstㆤㆰ㇂㇘㇤㇮rrowĀ;t࿜ㆭaéトarpoonĀduㆻㆿowîㅾp»႒eftĀah㇊㇐rrowó࿪arpoonóՑightarrows;應quigarro÷ニhreetimes;拌g;䋚ingdotseñἲƀahm㈍㈐㈓rò࿪aòՑ;怏oustĀ;a㈞㈟掱che»㈟mid;櫮Ȁabpt㈲㈽㉀㉒Ānr㈷㈺g;柭r;懾rëဃƀafl㉇㉊㉎r;榆;쀀𝕣us;樮imes;樵Āap㉝㉧rĀ;g㉣㉤䀩t;榔olint;樒arò㇣Ȁachq㉻㊀Ⴜ㊅quo;怺r;쀀𝓇Ābu・㊊oĀ;rȔȓƀhir㊗㊛㊠reåㇸmes;拊iȀ;efl㊪ၙᠡ㊫方tri;槎luhar;楨;愞ൡ㋕㋛㋟㌬㌸㍱\0㍺㎤\0\0㏬㏰\0㐨㑈㑚㒭㒱㓊㓱\0㘖\0\0㘳cute;䅛quï➺Ԁ;Eaceinpsyᇭ㋳㋵㋿㌂㌋㌏㌟㌦㌩;檴ǰ㋺\0㋼;檸on;䅡uåᇾĀ;dᇳ㌇il;䅟rc;䅝ƀEas㌖㌘㌛;檶p;檺im;择olint;樓iíሄ;䑁otƀ;be㌴ᵇ㌵担;橦΀Aacmstx㍆㍊㍗㍛㍞㍣㍭rr;懘rĀhr㍐㍒ë∨Ā;oਸ਼਴t耻§䂧i;䀻war;椩mĀin㍩ðnuóñt;朶rĀ;o㍶⁕쀀𝔰Ȁacoy㎂㎆㎑㎠rp;景Āhy㎋㎏cy;䑉;䑈rtɭ㎙\0\0㎜iäᑤaraì⹯耻­䂭Āgm㎨㎴maƀ;fv㎱㎲㎲䏃;䏂Ѐ;deglnprካ㏅㏉㏎㏖㏞㏡㏦ot;橪Ā;q኱ኰĀ;E㏓㏔檞;檠Ā;E㏛㏜檝;檟e;扆lus;樤arr;楲aròᄽȀaeit㏸㐈㐏㐗Āls㏽㐄lsetmé㍪hp;樳parsl;槤Ādlᑣ㐔e;挣Ā;e㐜㐝檪Ā;s㐢㐣檬;쀀⪬︀ƀflp㐮㐳㑂tcy;䑌Ā;b㐸㐹䀯Ā;a㐾㐿槄r;挿f;쀀𝕤aĀdr㑍ЂesĀ;u㑔㑕晠it»㑕ƀcsu㑠㑹㒟Āau㑥㑯pĀ;sᆈ㑫;쀀⊓︀pĀ;sᆴ㑵;쀀⊔︀uĀbp㑿㒏ƀ;esᆗᆜ㒆etĀ;eᆗ㒍ñᆝƀ;esᆨᆭ㒖etĀ;eᆨ㒝ñᆮƀ;afᅻ㒦ְrť㒫ֱ»ᅼaròᅈȀcemt㒹㒾㓂㓅r;쀀𝓈tmîñiì㐕aræᆾĀar㓎㓕rĀ;f㓔ឿ昆Āan㓚㓭ightĀep㓣㓪psiloîỠhé⺯s»⡒ʀbcmnp㓻㕞ሉ㖋㖎Ҁ;Edemnprs㔎㔏㔑㔕㔞㔣㔬㔱㔶抂;櫅ot;檽Ā;dᇚ㔚ot;櫃ult;櫁ĀEe㔨㔪;櫋;把lus;檿arr;楹ƀeiu㔽㕒㕕tƀ;en㔎㕅㕋qĀ;qᇚ㔏eqĀ;q㔫㔨m;櫇Ābp㕚㕜;櫕;櫓c̀;acensᇭ㕬㕲㕹㕻㌦pproø㋺urlyeñᇾñᇳƀaes㖂㖈㌛pproø㌚qñ㌗g;晪ڀ123;Edehlmnps㖩㖬㖯ሜ㖲㖴㗀㗉㗕㗚㗟㗨㗭耻¹䂹耻²䂲耻³䂳;櫆Āos㖹㖼t;檾ub;櫘Ā;dሢ㗅ot;櫄sĀou㗏㗒l;柉b;櫗arr;楻ult;櫂ĀEe㗤㗦;櫌;抋lus;櫀ƀeiu㗴㘉㘌tƀ;enሜ㗼㘂qĀ;qሢ㖲eqĀ;q㗧㗤m;櫈Ābp㘑㘓;櫔;櫖ƀAan㘜㘠㘭rr;懙rĀhr㘦㘨ë∮Ā;oਫ਩war;椪lig耻ß䃟௡㙑㙝㙠ዎ㙳㙹\0㙾㛂\0\0\0\0\0㛛㜃\0㜉㝬\0\0\0㞇ɲ㙖\0\0㙛get;挖;䏄rë๟ƀaey㙦㙫㙰ron;䅥dil;䅣;䑂lrec;挕r;쀀𝔱Ȁeiko㚆㚝㚵㚼Dz㚋\0㚑eĀ4fኄኁaƀ;sv㚘㚙㚛䎸ym;䏑Ācn㚢㚲kĀas㚨㚮pproø዁im»ኬsðኞĀas㚺㚮ð዁rn耻þ䃾Ǭ̟㛆⋧es膀×;bd㛏㛐㛘䃗Ā;aᤏ㛕r;樱;樰ƀeps㛡㛣㜀á⩍Ȁ;bcf҆㛬㛰㛴ot;挶ir;櫱Ā;o㛹㛼쀀𝕥rk;櫚á㍢rime;怴ƀaip㜏㜒㝤dåቈ΀adempst㜡㝍㝀㝑㝗㝜㝟ngleʀ;dlqr㜰㜱㜶㝀㝂斵own»ᶻeftĀ;e⠀㜾ñम;扜ightĀ;e㊪㝋ñၚot;旬inus;樺lus;樹b;槍ime;樻ezium;揢ƀcht㝲㝽㞁Āry㝷㝻;쀀𝓉;䑆cy;䑛rok;䅧Āio㞋㞎xô᝷headĀlr㞗㞠eftarro÷ࡏightarrow»ཝऀAHabcdfghlmoprstuw㟐㟓㟗㟤㟰㟼㠎㠜㠣㠴㡑㡝㡫㢩㣌㣒㣪㣶ròϭar;楣Ācr㟜㟢ute耻ú䃺òᅐrǣ㟪\0㟭y;䑞ve;䅭Āiy㟵㟺rc耻û䃻;䑃ƀabh㠃㠆㠋ròᎭlac;䅱aòᏃĀir㠓㠘sht;楾;쀀𝔲rave耻ù䃹š㠧㠱rĀlr㠬㠮»ॗ»ႃlk;斀Āct㠹㡍ɯ㠿\0\0㡊rnĀ;e㡅㡆挜r»㡆op;挏ri;旸Āal㡖㡚cr;䅫肻¨͉Āgp㡢㡦on;䅳f;쀀𝕦̀adhlsuᅋ㡸㡽፲㢑㢠ownáᎳarpoonĀlr㢈㢌efô㠭ighô㠯iƀ;hl㢙㢚㢜䏅»ᏺon»㢚parrows;懈ƀcit㢰㣄㣈ɯ㢶\0\0㣁rnĀ;e㢼㢽挝r»㢽op;挎ng;䅯ri;旹cr;쀀𝓊ƀdir㣙㣝㣢ot;拰lde;䅩iĀ;f㜰㣨»᠓Āam㣯㣲rò㢨l耻ü䃼angle;榧ހABDacdeflnoprsz㤜㤟㤩㤭㦵㦸㦽㧟㧤㧨㧳㧹㧽㨁㨠ròϷarĀ;v㤦㤧櫨;櫩asèϡĀnr㤲㤷grt;榜΀eknprst㓣㥆㥋㥒㥝㥤㦖appá␕othinçẖƀhir㓫⻈㥙opô⾵Ā;hᎷ㥢ïㆍĀiu㥩㥭gmá㎳Ābp㥲㦄setneqĀ;q㥽㦀쀀⊊︀;쀀⫋︀setneqĀ;q㦏㦒쀀⊋︀;쀀⫌︀Āhr㦛㦟etá㚜iangleĀlr㦪㦯eft»थight»ၑy;䐲ash»ံƀelr㧄㧒㧗ƀ;beⷪ㧋㧏ar;抻q;扚lip;拮Ābt㧜ᑨaòᑩr;쀀𝔳tré㦮suĀbp㧯㧱»ജ»൙pf;쀀𝕧roð໻tré㦴Ācu㨆㨋r;쀀𝓋Ābp㨐㨘nĀEe㦀㨖»㥾nĀEe㦒㨞»㦐igzag;榚΀cefoprs㨶㨻㩖㩛㩔㩡㩪irc;䅵Ādi㩀㩑Ābg㩅㩉ar;機eĀ;qᗺ㩏;扙erp;愘r;쀀𝔴pf;쀀𝕨Ā;eᑹ㩦atèᑹcr;쀀𝓌ૣណ㪇\0㪋\0㪐㪛\0\0㪝㪨㪫㪯\0\0㫃㫎\0㫘ៜ៟tré៑r;쀀𝔵ĀAa㪔㪗ròσrò৶;䎾ĀAa㪡㪤ròθrò৫að✓is;拻ƀdptឤ㪵㪾Āfl㪺ឩ;쀀𝕩imåឲĀAa㫇㫊ròώròਁĀcq㫒ីr;쀀𝓍Āpt៖㫜ré។Ѐacefiosu㫰㫽㬈㬌㬑㬕㬛㬡cĀuy㫶㫻te耻ý䃽;䑏Āiy㬂㬆rc;䅷;䑋n耻¥䂥r;쀀𝔶cy;䑗pf;쀀𝕪cr;쀀𝓎Ācm㬦㬩y;䑎l耻ÿ䃿Ԁacdefhiosw㭂㭈㭔㭘㭤㭩㭭㭴㭺㮀cute;䅺Āay㭍㭒ron;䅾;䐷ot;䅼Āet㭝㭡træᕟa;䎶r;쀀𝔷cy;䐶grarr;懝pf;쀀𝕫cr;쀀𝓏Ājn㮅㮇;怍j;怌'.split("").map(function(e){return e.charCodeAt(0)}));var hf={};Object.defineProperty(hf,"__esModule",{value:!0});hf.default=new Uint16Array("Ȁaglq \x1Bɭ\0\0p;䀦os;䀧t;䀾t;䀼uot;䀢".split("").map(function(e){return e.charCodeAt(0)}));var xd={};(function(e){var t;Object.defineProperty(e,"__esModule",{value:!0}),e.replaceCodePoint=e.fromCodePoint=void 0;var n=new Map([[0,65533],[128,8364],[130,8218],[131,402],[132,8222],[133,8230],[134,8224],[135,8225],[136,710],[137,8240],[138,352],[139,8249],[140,338],[142,381],[145,8216],[146,8217],[147,8220],[148,8221],[149,8226],[150,8211],[151,8212],[152,732],[153,8482],[154,353],[155,8250],[156,339],[158,382],[159,376]]);e.fromCodePoint=(t=String.fromCodePoint)!==null&&t!==void 0?t:function(r){var o="";return r>65535&&(r-=65536,o+=String.fromCharCode(r>>>10&1023|55296),r=56320|r&1023),o+=String.fromCharCode(r),o};function a(r){var o;return r>=55296&&r<=57343||r>1114111?65533:(o=n.get(r))!==null&&o!==void 0?o:r}e.replaceCodePoint=a;function s(r){return(0,e.fromCodePoint)(a(r))}e.default=s})(xd);(function(e){var t=Ve&&Ve.__createBinding||(Object.create?function($,F,X,re){re===void 0&&(re=X);var G=Object.getOwnPropertyDescriptor(F,X);(!G||("get"in G?!F.__esModule:G.writable||G.configurable))&&(G={enumerable:!0,get:function(){return F[X]}}),Object.defineProperty($,re,G)}:function($,F,X,re){re===void 0&&(re=X),$[re]=F[X]}),n=Ve&&Ve.__setModuleDefault||(Object.create?function($,F){Object.defineProperty($,"default",{enumerable:!0,value:F})}:function($,F){$.default=F}),a=Ve&&Ve.__importStar||function($){if($&&$.__esModule)return $;var F={};if($!=null)for(var X in $)X!=="default"&&Object.prototype.hasOwnProperty.call($,X)&&t(F,$,X);return n(F,$),F},s=Ve&&Ve.__importDefault||function($){return $&&$.__esModule?$:{default:$}};Object.defineProperty(e,"__esModule",{value:!0}),e.decodeXML=e.decodeHTMLStrict=e.decodeHTMLAttribute=e.decodeHTML=e.determineBranch=e.EntityDecoder=e.DecodingMode=e.BinTrieFlags=e.fromCodePoint=e.replaceCodePoint=e.decodeCodePoint=e.xmlDecodeTree=e.htmlDecodeTree=void 0;var r=s(Tf);e.htmlDecodeTree=r.default;var o=s(hf);e.xmlDecodeTree=o.default;var i=a(xd);e.decodeCodePoint=i.default;var u=xd;Object.defineProperty(e,"replaceCodePoint",{enumerable:!0,get:function(){return u.replaceCodePoint}}),Object.defineProperty(e,"fromCodePoint",{enumerable:!0,get:function(){return u.fromCodePoint}});var l;(function($){$[$.NUM=35]="NUM",$[$.SEMI=59]="SEMI",$[$.EQUALS=61]="EQUALS",$[$.ZERO=48]="ZERO",$[$.NINE=57]="NINE",$[$.LOWER_A=97]="LOWER_A",$[$.LOWER_F=102]="LOWER_F",$[$.LOWER_X=120]="LOWER_X",$[$.LOWER_Z=122]="LOWER_Z",$[$.UPPER_A=65]="UPPER_A",$[$.UPPER_F=70]="UPPER_F",$[$.UPPER_Z=90]="UPPER_Z"})(l||(l={}));var c=32,f;(function($){$[$.VALUE_LENGTH=49152]="VALUE_LENGTH",$[$.BRANCH_LENGTH=16256]="BRANCH_LENGTH",$[$.JUMP_TABLE=127]="JUMP_TABLE"})(f=e.BinTrieFlags||(e.BinTrieFlags={}));function E($){return $>=l.ZERO&&$<=l.NINE}function p($){return $>=l.UPPER_A&&$<=l.UPPER_F||$>=l.LOWER_A&&$<=l.LOWER_F}function T($){return $>=l.UPPER_A&&$<=l.UPPER_Z||$>=l.LOWER_A&&$<=l.LOWER_Z||E($)}function O($){return $===l.EQUALS||T($)}var R;(function($){$[$.EntityStart=0]="EntityStart",$[$.NumericStart=1]="NumericStart",$[$.NumericDecimal=2]="NumericDecimal",$[$.NumericHex=3]="NumericHex",$[$.NamedEntity=4]="NamedEntity"})(R||(R={}));var g;(function($){$[$.Legacy=0]="Legacy",$[$.Strict=1]="Strict",$[$.Attribute=2]="Attribute"})(g=e.DecodingMode||(e.DecodingMode={}));var N=function(){function $(F,X,re){this.decodeTree=F,this.emitCodePoint=X,this.errors=re,this.state=R.EntityStart,this.consumed=1,this.result=0,this.treeIndex=0,this.excess=1,this.decodeMode=g.Strict}return $.prototype.startEntity=function(F){this.decodeMode=F,this.state=R.EntityStart,this.result=0,this.treeIndex=0,this.excess=1,this.consumed=1},$.prototype.write=function(F,X){switch(this.state){case R.EntityStart:return F.charCodeAt(X)===l.NUM?(this.state=R.NumericStart,this.consumed+=1,this.stateNumericStart(F,X+1)):(this.state=R.NamedEntity,this.stateNamedEntity(F,X));case R.NumericStart:return this.stateNumericStart(F,X);case R.NumericDecimal:return this.stateNumericDecimal(F,X);case R.NumericHex:return this.stateNumericHex(F,X);case R.NamedEntity:return this.stateNamedEntity(F,X)}},$.prototype.stateNumericStart=function(F,X){return X>=F.length?-1:(F.charCodeAt(X)|c)===l.LOWER_X?(this.state=R.NumericHex,this.consumed+=1,this.stateNumericHex(F,X+1)):(this.state=R.NumericDecimal,this.stateNumericDecimal(F,X))},$.prototype.addToNumericResult=function(F,X,re,G){if(X!==re){var Z=re-X;this.result=this.result*Math.pow(G,Z)+parseInt(F.substr(X,Z),G),this.consumed+=Z}},$.prototype.stateNumericHex=function(F,X){for(var re=X;X>14;X>14,Z!==0){if(q===l.SEMI)return this.emitNamedEntityData(this.treeIndex,Z,this.consumed+this.excess);this.decodeMode!==g.Strict&&(this.result=this.treeIndex,this.consumed+=this.excess,this.excess=0)}}return-1},$.prototype.emitNotTerminatedNamedEntity=function(){var F,X=this,re=X.result,G=X.decodeTree,Z=(G[re]&f.VALUE_LENGTH)>>14;return this.emitNamedEntityData(re,Z,this.consumed),(F=this.errors)===null||F===void 0||F.missingSemicolonAfterCharacterReference(),this.consumed},$.prototype.emitNamedEntityData=function(F,X,re){var G=this.decodeTree;return this.emitCodePoint(X===1?G[F]&~f.VALUE_LENGTH:G[F+1],re),X===3&&this.emitCodePoint(G[F+2],re),re},$.prototype.end=function(){var F;switch(this.state){case R.NamedEntity:return this.result!==0&&(this.decodeMode!==g.Attribute||this.result===this.treeIndex)?this.emitNotTerminatedNamedEntity():0;case R.NumericDecimal:return this.emitNumericEntity(0,2);case R.NumericHex:return this.emitNumericEntity(0,3);case R.NumericStart:return(F=this.errors)===null||F===void 0||F.absenceOfDigitsInNumericCharacterReference(this.consumed),0;case R.EntityStart:return 0}},$}();e.EntityDecoder=N;function S($){var F="",X=new N($,function(re){return F+=(0,i.fromCodePoint)(re)});return function(G,Z){for(var q=0,B=0;(B=G.indexOf("&",B))>=0;){F+=G.slice(q,B),X.startEntity(Z);var Ne=X.write(G,B+1);if(Ne<0){q=B+X.end();break}q=B+Ne,B=Ne===0?q+1:q}var qe=F+G.slice(q);return F="",qe}}function A($,F,X,re){var G=(F&f.BRANCH_LENGTH)>>7,Z=F&f.JUMP_TABLE;if(G===0)return Z!==0&&re===Z?X:-1;if(Z){var q=re-Z;return q<0||q>=G?-1:$[X+q]-1}for(var B=X,Ne=B+G-1;B<=Ne;){var qe=B+Ne>>>1,Fe=$[qe];if(Fere)Ne=qe-1;else return $[qe+G]}return-1}e.determineBranch=A;var v=S(r.default),D=S(o.default);function P($,F){return F===void 0&&(F=g.Legacy),v($,F)}e.decodeHTML=P;function C($){return v($,g.Attribute)}e.decodeHTMLAttribute=C;function y($){return v($,g.Strict)}e.decodeHTMLStrict=y;function z($){return D($,g.Strict)}e.decodeXML=z})(Co);(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.QuoteType=void 0;var t=Co,n;(function(E){E[E.Tab=9]="Tab",E[E.NewLine=10]="NewLine",E[E.FormFeed=12]="FormFeed",E[E.CarriageReturn=13]="CarriageReturn",E[E.Space=32]="Space",E[E.ExclamationMark=33]="ExclamationMark",E[E.Number=35]="Number",E[E.Amp=38]="Amp",E[E.SingleQuote=39]="SingleQuote",E[E.DoubleQuote=34]="DoubleQuote",E[E.Dash=45]="Dash",E[E.Slash=47]="Slash",E[E.Zero=48]="Zero",E[E.Nine=57]="Nine",E[E.Semi=59]="Semi",E[E.Lt=60]="Lt",E[E.Eq=61]="Eq",E[E.Gt=62]="Gt",E[E.Questionmark=63]="Questionmark",E[E.UpperA=65]="UpperA",E[E.LowerA=97]="LowerA",E[E.UpperF=70]="UpperF",E[E.LowerF=102]="LowerF",E[E.UpperZ=90]="UpperZ",E[E.LowerZ=122]="LowerZ",E[E.LowerX=120]="LowerX",E[E.OpeningSquareBracket=91]="OpeningSquareBracket"})(n||(n={}));var a;(function(E){E[E.Text=1]="Text",E[E.BeforeTagName=2]="BeforeTagName",E[E.InTagName=3]="InTagName",E[E.InSelfClosingTag=4]="InSelfClosingTag",E[E.BeforeClosingTagName=5]="BeforeClosingTagName",E[E.InClosingTagName=6]="InClosingTagName",E[E.AfterClosingTagName=7]="AfterClosingTagName",E[E.BeforeAttributeName=8]="BeforeAttributeName",E[E.InAttributeName=9]="InAttributeName",E[E.AfterAttributeName=10]="AfterAttributeName",E[E.BeforeAttributeValue=11]="BeforeAttributeValue",E[E.InAttributeValueDq=12]="InAttributeValueDq",E[E.InAttributeValueSq=13]="InAttributeValueSq",E[E.InAttributeValueNq=14]="InAttributeValueNq",E[E.BeforeDeclaration=15]="BeforeDeclaration",E[E.InDeclaration=16]="InDeclaration",E[E.InProcessingInstruction=17]="InProcessingInstruction",E[E.BeforeComment=18]="BeforeComment",E[E.CDATASequence=19]="CDATASequence",E[E.InSpecialComment=20]="InSpecialComment",E[E.InCommentLike=21]="InCommentLike",E[E.BeforeSpecialS=22]="BeforeSpecialS",E[E.SpecialStartSequence=23]="SpecialStartSequence",E[E.InSpecialTag=24]="InSpecialTag",E[E.BeforeEntity=25]="BeforeEntity",E[E.BeforeNumericEntity=26]="BeforeNumericEntity",E[E.InNamedEntity=27]="InNamedEntity",E[E.InNumericEntity=28]="InNumericEntity",E[E.InHexEntity=29]="InHexEntity"})(a||(a={}));function s(E){return E===n.Space||E===n.NewLine||E===n.Tab||E===n.FormFeed||E===n.CarriageReturn}function r(E){return E===n.Slash||E===n.Gt||s(E)}function o(E){return E>=n.Zero&&E<=n.Nine}function i(E){return E>=n.LowerA&&E<=n.LowerZ||E>=n.UpperA&&E<=n.UpperZ}function u(E){return E>=n.UpperA&&E<=n.UpperF||E>=n.LowerA&&E<=n.LowerF}var l;(function(E){E[E.NoValue=0]="NoValue",E[E.Unquoted=1]="Unquoted",E[E.Single=2]="Single",E[E.Double=3]="Double"})(l=e.QuoteType||(e.QuoteType={}));var c={Cdata:new Uint8Array([67,68,65,84,65,91]),CdataEnd:new Uint8Array([93,93,62]),CommentEnd:new Uint8Array([45,45,62]),ScriptEnd:new Uint8Array([60,47,115,99,114,105,112,116]),StyleEnd:new Uint8Array([60,47,115,116,121,108,101]),TitleEnd:new Uint8Array([60,47,116,105,116,108,101])},f=function(){function E(p,T){var O=p.xmlMode,R=O===void 0?!1:O,g=p.decodeEntities,N=g===void 0?!0:g;this.cbs=T,this.state=a.Text,this.buffer="",this.sectionStart=0,this.index=0,this.baseState=a.Text,this.isSpecial=!1,this.running=!0,this.offset=0,this.currentSequence=void 0,this.sequenceIndex=0,this.trieIndex=0,this.trieCurrent=0,this.entityResult=0,this.entityExcess=0,this.xmlMode=R,this.decodeEntities=N,this.entityTrie=R?t.xmlDecodeTree:t.htmlDecodeTree}return E.prototype.reset=function(){this.state=a.Text,this.buffer="",this.sectionStart=0,this.index=0,this.baseState=a.Text,this.currentSequence=void 0,this.running=!0,this.offset=0},E.prototype.write=function(p){this.offset+=this.buffer.length,this.buffer=p,this.parse()},E.prototype.end=function(){this.running&&this.finish()},E.prototype.pause=function(){this.running=!1},E.prototype.resume=function(){this.running=!0,this.indexthis.sectionStart&&this.cbs.ontext(this.sectionStart,this.index),this.state=a.BeforeTagName,this.sectionStart=this.index):this.decodeEntities&&p===n.Amp&&(this.state=a.BeforeEntity)},E.prototype.stateSpecialStartSequence=function(p){var T=this.sequenceIndex===this.currentSequence.length,O=T?r(p):(p|32)===this.currentSequence[this.sequenceIndex];if(!O)this.isSpecial=!1;else if(!T){this.sequenceIndex++;return}this.sequenceIndex=0,this.state=a.InTagName,this.stateInTagName(p)},E.prototype.stateInSpecialTag=function(p){if(this.sequenceIndex===this.currentSequence.length){if(p===n.Gt||s(p)){var T=this.index-this.currentSequence.length;if(this.sectionStart>14)-1;if(!this.allowLegacyEntity()&&p!==n.Semi)this.trieIndex+=O;else{var R=this.index-this.entityExcess+1;R>this.sectionStart&&this.emitPartial(this.sectionStart,R),this.entityResult=this.trieIndex,this.trieIndex+=O,this.entityExcess=0,this.sectionStart=this.index+1,O===0&&this.emitNamedEntity()}}},E.prototype.emitNamedEntity=function(){if(this.state=this.baseState,this.entityResult!==0){var p=(this.entityTrie[this.entityResult]&t.BinTrieFlags.VALUE_LENGTH)>>14;switch(p){case 1:{this.emitCodePoint(this.entityTrie[this.entityResult]&~t.BinTrieFlags.VALUE_LENGTH);break}case 2:{this.emitCodePoint(this.entityTrie[this.entityResult+1]);break}case 3:this.emitCodePoint(this.entityTrie[this.entityResult+1]),this.emitCodePoint(this.entityTrie[this.entityResult+2])}}},E.prototype.stateBeforeNumericEntity=function(p){(p|32)===n.LowerX?(this.entityExcess++,this.state=a.InHexEntity):(this.state=a.InNumericEntity,this.stateInNumericEntity(p))},E.prototype.emitNumericEntity=function(p){var T=this.index-this.entityExcess-1,O=T+2+ +(this.state===a.InHexEntity);O!==this.index&&(T>this.sectionStart&&this.emitPartial(this.sectionStart,T),this.sectionStart=this.index+Number(p),this.emitCodePoint((0,t.replaceCodePoint)(this.entityResult))),this.state=this.baseState},E.prototype.stateInNumericEntity=function(p){p===n.Semi?this.emitNumericEntity(!0):o(p)?(this.entityResult=this.entityResult*10+(p-n.Zero),this.entityExcess++):(this.allowLegacyEntity()?this.emitNumericEntity(!1):this.state=this.baseState,this.index--)},E.prototype.stateInHexEntity=function(p){p===n.Semi?this.emitNumericEntity(!0):o(p)?(this.entityResult=this.entityResult*16+(p-n.Zero),this.entityExcess++):u(p)?(this.entityResult=this.entityResult*16+((p|32)-n.LowerA+10),this.entityExcess++):(this.allowLegacyEntity()?this.emitNumericEntity(!1):this.state=this.baseState,this.index--)},E.prototype.allowLegacyEntity=function(){return!this.xmlMode&&(this.baseState===a.Text||this.baseState===a.InSpecialTag)},E.prototype.cleanup=function(){this.running&&this.sectionStart!==this.index&&(this.state===a.Text||this.state===a.InSpecialTag&&this.sequenceIndex===0?(this.cbs.ontext(this.sectionStart,this.index),this.sectionStart=this.index):(this.state===a.InAttributeValueDq||this.state===a.InAttributeValueSq||this.state===a.InAttributeValueNq)&&(this.cbs.onattribdata(this.sectionStart,this.index),this.sectionStart=this.index))},E.prototype.shouldContinue=function(){return this.index0&&o.has(this.stack[this.stack.length-1]);){var i=this.stack.pop();(a=(n=this.cbs).onclosetag)===null||a===void 0||a.call(n,i,!0)}this.isVoidElement(t)||(this.stack.push(t),j_.has(t)?this.foreignContext.push(!0):q_.has(t)&&this.foreignContext.push(!1)),(r=(s=this.cbs).onopentagname)===null||r===void 0||r.call(s,t),this.cbs.onopentag&&(this.attribs={})},e.prototype.endOpenTag=function(t){var n,a;this.startIndex=this.openTagStart,this.attribs&&((a=(n=this.cbs).onopentag)===null||a===void 0||a.call(n,this.tagname,this.attribs,t),this.attribs=null),this.cbs.onclosetag&&this.isVoidElement(this.tagname)&&this.cbs.onclosetag(this.tagname,!0),this.tagname=""},e.prototype.onopentagend=function(t){this.endIndex=t,this.endOpenTag(!1),this.startIndex=t+1},e.prototype.onclosetag=function(t,n){var a,s,r,o,i,u;this.endIndex=n;var l=this.getSlice(t,n);if(this.lowerCaseTagNames&&(l=l.toLowerCase()),(j_.has(l)||q_.has(l))&&this.foreignContext.pop(),this.isVoidElement(l))!this.options.xmlMode&&l==="br"&&((s=(a=this.cbs).onopentagname)===null||s===void 0||s.call(a,"br"),(o=(r=this.cbs).onopentag)===null||o===void 0||o.call(r,"br",{},!0),(u=(i=this.cbs).onclosetag)===null||u===void 0||u.call(i,"br",!1));else{var c=this.stack.lastIndexOf(l);if(c!==-1)if(this.cbs.onclosetag)for(var f=this.stack.length-c;f--;)this.cbs.onclosetag(this.stack.pop(),f!==0);else this.stack.length=c;else!this.options.xmlMode&&l==="p"&&(this.emitOpenTag("p"),this.closeCurrentTag(!0))}this.startIndex=n+1},e.prototype.onselfclosingtag=function(t){this.endIndex=t,this.options.xmlMode||this.options.recognizeSelfClosing||this.foreignContext[this.foreignContext.length-1]?(this.closeCurrentTag(!1),this.startIndex=t+1):this.onopentagend(t)},e.prototype.closeCurrentTag=function(t){var n,a,s=this.tagname;this.endOpenTag(t),this.stack[this.stack.length-1]===s&&((a=(n=this.cbs).onclosetag)===null||a===void 0||a.call(n,s,!t),this.stack.pop())},e.prototype.onattribname=function(t,n){this.startIndex=t;var a=this.getSlice(t,n);this.attribname=this.lowerCaseAttributeNames?a.toLowerCase():a},e.prototype.onattribdata=function(t,n){this.attribvalue+=this.getSlice(t,n)},e.prototype.onattribentity=function(t){this.attribvalue+=(0,G_.fromCodePoint)(t)},e.prototype.onattribend=function(t,n){var a,s;this.endIndex=n,(s=(a=this.cbs).onattribute)===null||s===void 0||s.call(a,this.attribname,this.attribvalue,t===gi.QuoteType.Double?'"':t===gi.QuoteType.Single?"'":t===gi.QuoteType.NoValue?void 0:null),this.attribs&&!Object.prototype.hasOwnProperty.call(this.attribs,this.attribname)&&(this.attribs[this.attribname]=this.attribvalue),this.attribvalue=""},e.prototype.getInstructionName=function(t){var n=t.search(v9e),a=n<0?t:t.substr(0,n);return this.lowerCaseTagNames&&(a=a.toLowerCase()),a},e.prototype.ondeclaration=function(t,n){this.endIndex=n;var a=this.getSlice(t,n);if(this.cbs.onprocessinginstruction){var s=this.getInstructionName(a);this.cbs.onprocessinginstruction("!".concat(s),"!".concat(a))}this.startIndex=n+1},e.prototype.onprocessinginstruction=function(t,n){this.endIndex=n;var a=this.getSlice(t,n);if(this.cbs.onprocessinginstruction){var s=this.getInstructionName(a);this.cbs.onprocessinginstruction("?".concat(s),"?".concat(a))}this.startIndex=n+1},e.prototype.oncomment=function(t,n,a){var s,r,o,i;this.endIndex=n,(r=(s=this.cbs).oncomment)===null||r===void 0||r.call(s,this.getSlice(t,n-a)),(i=(o=this.cbs).oncommentend)===null||i===void 0||i.call(o),this.startIndex=n+1},e.prototype.oncdata=function(t,n,a){var s,r,o,i,u,l,c,f,E,p;this.endIndex=n;var T=this.getSlice(t,n-a);this.options.xmlMode||this.options.recognizeCDATA?((r=(s=this.cbs).oncdatastart)===null||r===void 0||r.call(s),(i=(o=this.cbs).ontext)===null||i===void 0||i.call(o,T),(l=(u=this.cbs).oncdataend)===null||l===void 0||l.call(u)):((f=(c=this.cbs).oncomment)===null||f===void 0||f.call(c,"[CDATA[".concat(T,"]]")),(p=(E=this.cbs).oncommentend)===null||p===void 0||p.call(E)),this.startIndex=n+1},e.prototype.onend=function(){var t,n;if(this.cbs.onclosetag){this.endIndex=this.startIndex;for(var a=this.stack.length;a>0;this.cbs.onclosetag(this.stack[--a],!0));}(n=(t=this.cbs).onend)===null||n===void 0||n.call(t)},e.prototype.reset=function(){var t,n,a,s;(n=(t=this.cbs).onreset)===null||n===void 0||n.call(t),this.tokenizer.reset(),this.tagname="",this.attribname="",this.attribs=null,this.stack.length=0,this.startIndex=0,this.endIndex=0,(s=(a=this.cbs).onparserinit)===null||s===void 0||s.call(a,this),this.buffers.length=0,this.bufferOffset=0,this.writeIndex=0,this.ended=!1},e.prototype.parseComplete=function(t){this.reset(),this.end(t)},e.prototype.getSlice=function(t,n){for(;t-this.bufferOffset>=this.buffers[0].length;)this.shiftBuffer();for(var a=this.buffers[0].slice(t-this.bufferOffset,n-this.bufferOffset);n-this.bufferOffset>this.buffers[0].length;)this.shiftBuffer(),a+=this.buffers[0].slice(0,n-this.bufferOffset);return a},e.prototype.shiftBuffer=function(){this.bufferOffset+=this.buffers[0].length,this.writeIndex--,this.buffers.shift()},e.prototype.write=function(t){var n,a;if(this.ended){(a=(n=this.cbs).onerror)===null||a===void 0||a.call(n,new Error(".write() after done!"));return}this.buffers.push(t),this.tokenizer.running&&(this.tokenizer.write(t),this.writeIndex++)},e.prototype.end=function(t){var n,a;if(this.ended){(a=(n=this.cbs).onerror)===null||a===void 0||a.call(n,new Error(".end() after done!"));return}t&&this.write(t),this.ended=!0,this.tokenizer.end()},e.prototype.pause=function(){this.tokenizer.pause()},e.prototype.resume=function(){for(this.tokenizer.resume();this.tokenizer.running&&this.writeIndex0?this.children[this.children.length-1]:null},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"childNodes",{get:function(){return this.children},set:function(n){this.children=n},enumerable:!1,configurable:!0}),t}(Sf);rt.NodeWithChildren=xl;var sA=function(e){us(t,e);function t(){var n=e!==null&&e.apply(this,arguments)||this;return n.type=Tn.ElementType.CDATA,n}return Object.defineProperty(t.prototype,"nodeType",{get:function(){return 4},enumerable:!1,configurable:!0}),t}(xl);rt.CDATA=sA;var rA=function(e){us(t,e);function t(){var n=e!==null&&e.apply(this,arguments)||this;return n.type=Tn.ElementType.Root,n}return Object.defineProperty(t.prototype,"nodeType",{get:function(){return 9},enumerable:!1,configurable:!0}),t}(xl);rt.Document=rA;var oA=function(e){us(t,e);function t(n,a,s,r){s===void 0&&(s=[]),r===void 0&&(r=n==="script"?Tn.ElementType.Script:n==="style"?Tn.ElementType.Style:Tn.ElementType.Tag);var o=e.call(this,s)||this;return o.name=n,o.attribs=a,o.type=r,o}return Object.defineProperty(t.prototype,"nodeType",{get:function(){return 1},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"tagName",{get:function(){return this.name},set:function(n){this.name=n},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"attributes",{get:function(){var n=this;return Object.keys(this.attribs).map(function(a){var s,r;return{name:a,value:n.attribs[a],namespace:(s=n["x-attribsNamespace"])===null||s===void 0?void 0:s[a],prefix:(r=n["x-attribsPrefix"])===null||r===void 0?void 0:r[a]}})},enumerable:!1,configurable:!0}),t}(xl);rt.Element=oA;function iA(e){return(0,Tn.isTag)(e)}rt.isTag=iA;function uA(e){return e.type===Tn.ElementType.CDATA}rt.isCDATA=uA;function lA(e){return e.type===Tn.ElementType.Text}rt.isText=lA;function cA(e){return e.type===Tn.ElementType.Comment}rt.isComment=cA;function dA(e){return e.type===Tn.ElementType.Directive}rt.isDirective=dA;function EA(e){return e.type===Tn.ElementType.Root}rt.isDocument=EA;function C9e(e){return Object.prototype.hasOwnProperty.call(e,"children")}rt.hasChildren=C9e;function Af(e,t){t===void 0&&(t=!1);var n;if(lA(e))n=new tA(e.data);else if(cA(e))n=new nA(e.data);else if(iA(e)){var a=t?Pc(e.children):[],s=new oA(e.name,lo({},e.attribs),a);a.forEach(function(u){return u.parent=s}),e.namespace!=null&&(s.namespace=e.namespace),e["x-attribsNamespace"]&&(s["x-attribsNamespace"]=lo({},e["x-attribsNamespace"])),e["x-attribsPrefix"]&&(s["x-attribsPrefix"]=lo({},e["x-attribsPrefix"])),n=s}else if(uA(e)){var a=t?Pc(e.children):[],r=new sA(a);a.forEach(function(l){return l.parent=r}),n=r}else if(EA(e)){var a=t?Pc(e.children):[],o=new rA(a);a.forEach(function(l){return l.parent=o}),e["x-mode"]&&(o["x-mode"]=e["x-mode"]),n=o}else if(dA(e)){var i=new aA(e.name,e.data);e["x-name"]!=null&&(i["x-name"]=e["x-name"],i["x-publicId"]=e["x-publicId"],i["x-systemId"]=e["x-systemId"]),n=i}else throw new Error("Not implemented yet: ".concat(e.type));return n.startIndex=e.startIndex,n.endIndex=e.endIndex,e.sourceCodeLocation!=null&&(n.sourceCodeLocation=e.sourceCodeLocation),n}rt.cloneNode=Af;function Pc(e){for(var t=e.map(function(a){return Af(a,!0)}),n=1;n$\x80-\uFFFF]/g;var t=new Map([[34,"""],[38,"&"],[39,"'"],[60,"<"],[62,">"]]);e.getCodePoint=String.prototype.codePointAt!=null?function(s,r){return s.codePointAt(r)}:function(s,r){return(s.charCodeAt(r)&64512)===55296?(s.charCodeAt(r)-55296)*1024+s.charCodeAt(r+1)-56320+65536:s.charCodeAt(r)};function n(s){for(var r="",o=0,i;(i=e.xmlReplacer.exec(s))!==null;){var u=i.index,l=s.charCodeAt(u),c=t.get(l);c!==void 0?(r+=s.substring(o,u)+c,o=u+1):(r+="".concat(s.substring(o,u),"&#x").concat((0,e.getCodePoint)(s,u).toString(16),";"),o=e.xmlReplacer.lastIndex+=+((l&64512)===55296))}return r+s.substr(o)}e.encodeXML=n,e.escape=n;function a(s,r){return function(i){for(var u,l=0,c="";u=s.exec(i);)l!==u.index&&(c+=i.substring(l,u.index)),c+=r.get(u[0].charCodeAt(0)),l=u.index+1;return c+i.substring(l)}}e.escapeUTF8=a(/[&<>'"]/g,t),e.escapeAttribute=a(/["&\u00A0]/g,new Map([[34,"""],[38,"&"],[160," "]])),e.escapeText=a(/[&<>\u00A0]/g,new Map([[38,"&"],[60,"<"],[62,">"],[160," "]]))})(Ju);var D9e=Ve&&Ve.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty($s,"__esModule",{value:!0});$s.encodeNonAsciiHTML=$s.encodeHTML=void 0;var P9e=D9e(Of),pA=Ju,L9e=/[\t\n!-,./:-@[-`\f{-}$\x80-\uFFFF]/g;function y9e(e){return mA(L9e,e)}$s.encodeHTML=y9e;function $9e(e){return mA(pA.xmlReplacer,e)}$s.encodeNonAsciiHTML=$9e;function mA(e,t){for(var n="",a=0,s;(s=e.exec(t))!==null;){var r=s.index;n+=t.substring(a,r);var o=t.charCodeAt(r),i=P9e.default.get(o);if(typeof i=="object"){if(r+10&&(a+=Bl(e.children,t)),(t.xmlMode||!Y_.has(e.name))&&(a+=""))),a}function H9e(e){return"<".concat(e.data,">")}function V9e(e,t){var n,a=e.data||"";return((n=t.encodeEntities)!==null&&n!==void 0?n:t.decodeEntities)!==!1&&!(!t.xmlMode&&e.parent&&M9e.has(e.parent.name))&&(a=t.xmlMode||t.encodeEntities!=="utf8"?(0,el.encodeXML)(a):(0,el.escapeText)(a)),a}function K9e(e){return"")}function j9e(e){return"")}var q9e=Ve&&Ve.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(vn,"__esModule",{value:!0});vn.innerText=vn.textContent=vn.getText=vn.getInnerHTML=vn.getOuterHTML=void 0;var ua=Na,Y9e=q9e(Zo),X9e=yr;function TA(e,t){return(0,Y9e.default)(e,t)}vn.getOuterHTML=TA;function Q9e(e,t){return(0,ua.hasChildren)(e)?e.children.map(function(n){return TA(n,t)}).join(""):""}vn.getInnerHTML=Q9e;function Ji(e){return Array.isArray(e)?e.map(Ji).join(""):(0,ua.isTag)(e)?e.name==="br"?` -`:Ji(e.children):(0,ua.isCDATA)(e)?Ji(e.children):(0,ua.isText)(e)?e.data:""}vn.getText=Ji;function Bd(e){return Array.isArray(e)?e.map(Bd).join(""):(0,ua.hasChildren)(e)&&!(0,ua.isComment)(e)?Bd(e.children):(0,ua.isText)(e)?e.data:""}vn.textContent=Bd;function Gd(e){return Array.isArray(e)?e.map(Gd).join(""):(0,ua.hasChildren)(e)&&(e.type===X9e.ElementType.Tag||(0,ua.isCDATA)(e))?Gd(e.children):(0,ua.isText)(e)?e.data:""}vn.innerText=Gd;var xt={};Object.defineProperty(xt,"__esModule",{value:!0});xt.prevElementSibling=xt.nextElementSibling=xt.getName=xt.hasAttrib=xt.getAttributeValue=xt.getSiblings=xt.getParent=xt.getChildren=void 0;var gf=Na;function hA(e){return(0,gf.hasChildren)(e)?e.children:[]}xt.getChildren=hA;function SA(e){return e.parent||null}xt.getParent=SA;function Z9e(e){var t,n,a=SA(e);if(a!=null)return hA(a);for(var s=[e],r=e.prev,o=e.next;r!=null;)s.unshift(r),t=r,r=t.prev;for(;o!=null;)s.push(o),n=o,o=n.next;return s}xt.getSiblings=Z9e;function J9e(e,t){var n;return(n=e.attribs)===null||n===void 0?void 0:n[t]}xt.getAttributeValue=J9e;function eWe(e,t){return e.attribs!=null&&Object.prototype.hasOwnProperty.call(e.attribs,t)&&e.attribs[t]!=null}xt.hasAttrib=eWe;function tWe(e){return e.name}xt.getName=tWe;function nWe(e){for(var t,n=e.next;n!==null&&!(0,gf.isTag)(n);)t=n,n=t.next;return n}xt.nextElementSibling=nWe;function aWe(e){for(var t,n=e.prev;n!==null&&!(0,gf.isTag)(n);)t=n,n=t.prev;return n}xt.prevElementSibling=aWe;var En={};Object.defineProperty(En,"__esModule",{value:!0});En.prepend=En.prependChild=En.append=En.appendChild=En.replaceElement=En.removeElement=void 0;function Jo(e){if(e.prev&&(e.prev.next=e.next),e.next&&(e.next.prev=e.prev),e.parent){var t=e.parent.children,n=t.lastIndexOf(e);n>=0&&t.splice(n,1)}e.next=null,e.prev=null,e.parent=null}En.removeElement=Jo;function sWe(e,t){var n=t.prev=e.prev;n&&(n.next=t);var a=t.next=e.next;a&&(a.prev=t);var s=t.parent=e.parent;if(s){var r=s.children;r[r.lastIndexOf(e)]=t,e.parent=null}}En.replaceElement=sWe;function rWe(e,t){if(Jo(t),t.next=null,t.parent=e,e.children.push(t)>1){var n=e.children[e.children.length-2];n.next=t,t.prev=n}else t.prev=null}En.appendChild=rWe;function oWe(e,t){Jo(t);var n=e.parent,a=e.next;if(t.next=a,t.prev=e,e.next=t,t.parent=n,a){if(a.prev=t,n){var s=n.children;s.splice(s.lastIndexOf(a),0,t)}}else n&&n.children.push(t)}En.append=oWe;function iWe(e,t){if(Jo(t),t.parent=e,t.prev=null,e.children.unshift(t)!==1){var n=e.children[1];n.prev=t,t.next=n}else t.next=null}En.prependChild=iWe;function uWe(e,t){Jo(t);var n=e.parent;if(n){var a=n.children;a.splice(a.indexOf(e),0,t)}e.prev&&(e.prev.next=t),t.parent=n,t.prev=e.prev,t.next=e,e.prev=t}En.prepend=uWe;var an={};Object.defineProperty(an,"__esModule",{value:!0});an.findAll=an.existsOne=an.findOne=an.findOneChild=an.find=an.filter=void 0;var Gl=Na;function lWe(e,t,n,a){return n===void 0&&(n=!0),a===void 0&&(a=1/0),AA(e,Array.isArray(t)?t:[t],n,a)}an.filter=lWe;function AA(e,t,n,a){for(var s=[],r=[t],o=[0];;){if(o[0]>=r[0].length){if(o.length===1)return s;r.shift(),o.shift();continue}var i=r[0][o[0]++];if(e(i)&&(s.push(i),--a<=0))return s;n&&(0,Gl.hasChildren)(i)&&i.children.length>0&&(o.unshift(0),r.unshift(i.children))}}an.find=AA;function cWe(e,t){return t.find(e)}an.findOneChild=cWe;function OA(e,t,n){n===void 0&&(n=!0);for(var a=null,s=0;s0&&(a=OA(e,r.children,!0));else continue}return a}an.findOne=OA;function gA(e,t){return t.some(function(n){return(0,Gl.isTag)(n)&&(e(n)||gA(e,n.children))})}an.existsOne=gA;function dWe(e,t){for(var n=[],a=[t],s=[0];;){if(s[0]>=a[0].length){if(a.length===1)return n;a.shift(),s.shift();continue}var r=a[0][s[0]++];(0,Gl.isTag)(r)&&(e(r)&&n.push(r),r.children.length>0&&(s.unshift(0),a.unshift(r.children)))}}an.findAll=dWe;var bn={};Object.defineProperty(bn,"__esModule",{value:!0});bn.getElementsByTagType=bn.getElementsByTagName=bn.getElementById=bn.getElements=bn.testElement=void 0;var Os=Na,Hl=an,tl={tag_name:function(e){return typeof e=="function"?function(t){return(0,Os.isTag)(t)&&e(t.name)}:e==="*"?Os.isTag:function(t){return(0,Os.isTag)(t)&&t.name===e}},tag_type:function(e){return typeof e=="function"?function(t){return e(t.type)}:function(t){return t.type===e}},tag_contains:function(e){return typeof e=="function"?function(t){return(0,Os.isText)(t)&&e(t.data)}:function(t){return(0,Os.isText)(t)&&t.data===e}}};function IA(e,t){return typeof t=="function"?function(n){return(0,Os.isTag)(n)&&t(n.attribs[e])}:function(n){return(0,Os.isTag)(n)&&n.attribs[e]===t}}function EWe(e,t){return function(n){return e(n)||t(n)}}function RA(e){var t=Object.keys(e).map(function(n){var a=e[n];return Object.prototype.hasOwnProperty.call(tl,n)?tl[n](a):IA(n,a)});return t.length===0?null:t.reduce(EWe)}function fWe(e,t){var n=RA(e);return n?n(t):!0}bn.testElement=fWe;function pWe(e,t,n,a){a===void 0&&(a=1/0);var s=RA(e);return s?(0,Hl.filter)(s,t,n,a):[]}bn.getElements=pWe;function mWe(e,t,n){return n===void 0&&(n=!0),Array.isArray(t)||(t=[t]),(0,Hl.findOne)(IA("id",e),t,n)}bn.getElementById=mWe;function _We(e,t,n,a){return n===void 0&&(n=!0),a===void 0&&(a=1/0),(0,Hl.filter)(tl.tag_name(e),t,n,a)}bn.getElementsByTagName=_We;function TWe(e,t,n,a){return n===void 0&&(n=!0),a===void 0&&(a=1/0),(0,Hl.filter)(tl.tag_type(e),t,n,a)}bn.getElementsByTagType=TWe;var NA={};(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.uniqueSort=e.compareDocumentPosition=e.DocumentPosition=e.removeSubsets=void 0;var t=Na;function n(o){for(var i=o.length;--i>=0;){var u=o[i];if(i>0&&o.lastIndexOf(u,i-1)>=0){o.splice(i,1);continue}for(var l=u.parent;l;l=l.parent)if(o.includes(l)){o.splice(i,1);break}}return o}e.removeSubsets=n;var a;(function(o){o[o.DISCONNECTED=1]="DISCONNECTED",o[o.PRECEDING=2]="PRECEDING",o[o.FOLLOWING=4]="FOLLOWING",o[o.CONTAINS=8]="CONTAINS",o[o.CONTAINED_BY=16]="CONTAINED_BY"})(a=e.DocumentPosition||(e.DocumentPosition={}));function s(o,i){var u=[],l=[];if(o===i)return 0;for(var c=(0,t.hasChildren)(o)?o:o.parent;c;)u.unshift(c),c=c.parent;for(c=(0,t.hasChildren)(i)?i:i.parent;c;)l.unshift(c),c=c.parent;for(var f=Math.min(u.length,l.length),E=0;ET.indexOf(R)?p===i?a.FOLLOWING|a.CONTAINED_BY:a.FOLLOWING:p===o?a.PRECEDING|a.CONTAINS:a.PRECEDING}e.compareDocumentPosition=s;function r(o){return o=o.filter(function(i,u,l){return!l.includes(i,u+1)}),o.sort(function(i,u){var l=s(i,u);return l&a.PRECEDING?-1:l&a.FOLLOWING?1:0}),o}e.uniqueSort=r})(NA);var Vl={};Object.defineProperty(Vl,"__esModule",{value:!0});Vl.getFeed=void 0;var hWe=vn,ei=bn;function SWe(e){var t=nl(RWe,e);return t?t.name==="feed"?AWe(t):OWe(t):null}Vl.getFeed=SWe;function AWe(e){var t,n=e.children,a={type:"atom",items:(0,ei.getElementsByTagName)("entry",n).map(function(o){var i,u=o.children,l={media:vA(u)};dn(l,"id","id",u),dn(l,"title","title",u);var c=(i=nl("link",u))===null||i===void 0?void 0:i.attribs.href;c&&(l.link=c);var f=Ya("summary",u)||Ya("content",u);f&&(l.description=f);var E=Ya("updated",u);return E&&(l.pubDate=new Date(E)),l})};dn(a,"id","id",n),dn(a,"title","title",n);var s=(t=nl("link",n))===null||t===void 0?void 0:t.attribs.href;s&&(a.link=s),dn(a,"description","subtitle",n);var r=Ya("updated",n);return r&&(a.updated=new Date(r)),dn(a,"author","email",n,!0),a}function OWe(e){var t,n,a=(n=(t=nl("channel",e.children))===null||t===void 0?void 0:t.children)!==null&&n!==void 0?n:[],s={type:e.name.substr(0,3),id:"",items:(0,ei.getElementsByTagName)("item",e.children).map(function(o){var i=o.children,u={media:vA(i)};dn(u,"id","guid",i),dn(u,"title","title",i),dn(u,"link","link",i),dn(u,"description","description",i);var l=Ya("pubDate",i)||Ya("dc:date",i);return l&&(u.pubDate=new Date(l)),u})};dn(s,"title","title",a),dn(s,"link","link",a),dn(s,"description","description",a);var r=Ya("lastBuildDate",a);return r&&(s.updated=new Date(r)),dn(s,"author","managingEditor",a,!0),s}var gWe=["url","type","lang"],IWe=["fileSize","bitrate","framerate","samplingrate","channels","duration","height","width"];function vA(e){return(0,ei.getElementsByTagName)("media:content",e).map(function(t){for(var n=t.attribs,a={medium:n.medium,isDefault:!!n.isDefault},s=0,r=gWe;s{if(typeof e!="string")throw new TypeError("Expected a string");return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")},If={};Object.defineProperty(If,"__esModule",{value:!0});/*! - * is-plain-object - * - * Copyright (c) 2014-2017, Jon Schlinkert. - * Released under the MIT License. - */function X_(e){return Object.prototype.toString.call(e)==="[object Object]"}function vWe(e){var t,n;return X_(e)===!1?!1:(t=e.constructor,t===void 0?!0:(n=t.prototype,!(X_(n)===!1||n.hasOwnProperty("isPrototypeOf")===!1)))}If.isPlainObject=vWe;var bWe=function(t){return CWe(t)&&!DWe(t)};function CWe(e){return!!e&&typeof e=="object"}function DWe(e){var t=Object.prototype.toString.call(e);return t==="[object RegExp]"||t==="[object Date]"||yWe(e)}var PWe=typeof Symbol=="function"&&Symbol.for,LWe=PWe?Symbol.for("react.element"):60103;function yWe(e){return e.$$typeof===LWe}function $We(e){return Array.isArray(e)?[]:{}}function Do(e,t){return t.clone!==!1&&t.isMergeableObject(e)?Ar($We(e),e,t):e}function UWe(e,t,n){return e.concat(t).map(function(a){return Do(a,n)})}function kWe(e,t){if(!t.customMerge)return Ar;var n=t.customMerge(e);return typeof n=="function"?n:Ar}function wWe(e){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(e).filter(function(t){return Object.propertyIsEnumerable.call(e,t)}):[]}function Q_(e){return Object.keys(e).concat(wWe(e))}function bA(e,t){try{return t in e}catch{return!1}}function MWe(e,t){return bA(e,t)&&!(Object.hasOwnProperty.call(e,t)&&Object.propertyIsEnumerable.call(e,t))}function WWe(e,t,n){var a={};return n.isMergeableObject(e)&&Q_(e).forEach(function(s){a[s]=Do(e[s],n)}),Q_(t).forEach(function(s){MWe(e,s)||(bA(e,s)&&n.isMergeableObject(t[s])?a[s]=kWe(s,n)(e[s],t[s],n):a[s]=Do(t[s],n))}),a}function Ar(e,t,n){n=n||{},n.arrayMerge=n.arrayMerge||UWe,n.isMergeableObject=n.isMergeableObject||bWe,n.cloneUnlessOtherwiseSpecified=Do;var a=Array.isArray(t),s=Array.isArray(e),r=a===s;return r?a?n.arrayMerge(e,t,n):WWe(e,t,n):Do(t,n)}Ar.all=function(t,n){if(!Array.isArray(t))throw new Error("first argument should be an array");return t.reduce(function(a,s){return Ar(a,s,n)},{})};var FWe=Ar,zWe=FWe,CA={exports:{}};(function(e){(function(t,n){e.exports?e.exports=n():t.parseSrcset=n()})(Ve,function(){return function(t){function n(A){return A===" "||A===" "||A===` -`||A==="\f"||A==="\r"}function a(A){var v,D=A.exec(t.substring(R));if(D)return v=D[0],R+=v.length,v}for(var s=t.length,r=/^[ \t\n\r\u000c]+/,o=/^[, \t\n\r\u000c]+/,i=/^[^ \t\n\r\u000c]+/,u=/[,]+$/,l=/^\d+$/,c=/^-?(?:[0-9]+|[0-9]*\.[0-9]+)(?:[eE][+-]?[0-9]+)?$/,f,E,p,T,O,R=0,g=[];;){if(a(o),R>=s)return g;f=a(i),E=[],f.slice(-1)===","?(f=f.replace(u,""),S()):N()}function N(){for(a(r),p="",T="in descriptor";;){if(O=t.charAt(R),T==="in descriptor")if(n(O))p&&(E.push(p),p="",T="after descriptor");else if(O===","){R+=1,p&&E.push(p),S();return}else if(O==="(")p=p+O,T="in parens";else if(O===""){p&&E.push(p),S();return}else p=p+O;else if(T==="in parens")if(O===")")p=p+O,T="in descriptor";else if(O===""){E.push(p),S();return}else p=p+O;else if(T==="after descriptor"&&!n(O))if(O===""){S();return}else T="in descriptor",R-=1;R+=1}}function S(){var A=!1,v,D,P,C,y={},z,$,F,X,re;for(C=0;C",typeof this.line<"u"&&(this.message+=":"+this.line+":"+this.column),this.message+=": "+this.reason}showSourceCode(t){if(!this.source)return"";let n=this.source;t==null&&(t=Z_.isColorSupported),J_&&t&&(n=J_(n));let a=n.split(/\r?\n/),s=Math.max(this.line-3,0),r=Math.min(this.line+2,a.length),o=String(r).length,i,u;if(t){let{bold:l,gray:c,red:f}=Z_.createColors(!0);i=E=>l(f(E)),u=E=>c(E)}else i=u=l=>l;return a.slice(s,r).map((l,c)=>{let f=s+1+c,E=" "+(" "+f).slice(-o)+" | ";if(f===this.line){let p=u(E.replace(/\d/g," "))+l.slice(0,this.column-1).replace(/[^\t]/g," ");return i(">")+u(E)+l+` - `+p+i("^")}return" "+u(E)+l}).join(` -`)}toString(){let t=this.showSourceCode();return t&&(t=` - -`+t+` -`),this.name+": "+this.message+t}};var Nf=Hd;Hd.default=Hd;var ti={};ti.isClean=Symbol("isClean");ti.my=Symbol("my");const eT={after:` -`,beforeClose:` -`,beforeComment:` -`,beforeDecl:` -`,beforeOpen:" ",beforeRule:` -`,colon:": ",commentLeft:" ",commentRight:" ",emptyBody:"",indent:" ",semicolon:!1};function VWe(e){return e[0].toUpperCase()+e.slice(1)}let Vd=class{constructor(t){this.builder=t}atrule(t,n){let a="@"+t.name,s=t.params?this.rawValue(t,"params"):"";if(typeof t.raws.afterName<"u"?a+=t.raws.afterName:s&&(a+=" "),t.nodes)this.block(t,a+s);else{let r=(t.raws.between||"")+(n?";":"");this.builder(a+s+r,t)}}beforeAfter(t,n){let a;t.type==="decl"?a=this.raw(t,null,"beforeDecl"):t.type==="comment"?a=this.raw(t,null,"beforeComment"):n==="before"?a=this.raw(t,null,"beforeRule"):a=this.raw(t,null,"beforeClose");let s=t.parent,r=0;for(;s&&s.type!=="root";)r+=1,s=s.parent;if(a.includes(` -`)){let o=this.raw(t,null,"indent");if(o.length)for(let i=0;i0&&t.nodes[n].type==="comment";)n-=1;let a=this.raw(t,"semicolon");for(let s=0;s{if(s=u.raws[n],typeof s<"u")return!1})}return typeof s>"u"&&(s=eT[a]),o.rawCache[a]=s,s}rawBeforeClose(t){let n;return t.walk(a=>{if(a.nodes&&a.nodes.length>0&&typeof a.raws.after<"u")return n=a.raws.after,n.includes(` -`)&&(n=n.replace(/[^\n]+$/,"")),!1}),n&&(n=n.replace(/\S/g,"")),n}rawBeforeComment(t,n){let a;return t.walkComments(s=>{if(typeof s.raws.before<"u")return a=s.raws.before,a.includes(` -`)&&(a=a.replace(/[^\n]+$/,"")),!1}),typeof a>"u"?a=this.raw(n,null,"beforeDecl"):a&&(a=a.replace(/\S/g,"")),a}rawBeforeDecl(t,n){let a;return t.walkDecls(s=>{if(typeof s.raws.before<"u")return a=s.raws.before,a.includes(` -`)&&(a=a.replace(/[^\n]+$/,"")),!1}),typeof a>"u"?a=this.raw(n,null,"beforeRule"):a&&(a=a.replace(/\S/g,"")),a}rawBeforeOpen(t){let n;return t.walk(a=>{if(a.type!=="decl"&&(n=a.raws.between,typeof n<"u"))return!1}),n}rawBeforeRule(t){let n;return t.walk(a=>{if(a.nodes&&(a.parent!==t||t.first!==a)&&typeof a.raws.before<"u")return n=a.raws.before,n.includes(` -`)&&(n=n.replace(/[^\n]+$/,"")),!1}),n&&(n=n.replace(/\S/g,"")),n}rawColon(t){let n;return t.walkDecls(a=>{if(typeof a.raws.between<"u")return n=a.raws.between.replace(/[^\s:]/g,""),!1}),n}rawEmptyBody(t){let n;return t.walk(a=>{if(a.nodes&&a.nodes.length===0&&(n=a.raws.after,typeof n<"u"))return!1}),n}rawIndent(t){if(t.raws.indent)return t.raws.indent;let n;return t.walk(a=>{let s=a.parent;if(s&&s!==t&&s.parent&&s.parent===t&&typeof a.raws.before<"u"){let r=a.raws.before.split(` -`);return n=r[r.length-1],n=n.replace(/\S/g,""),!1}}),n}rawSemicolon(t){let n;return t.walk(a=>{if(a.nodes&&a.nodes.length&&a.last.type==="decl"&&(n=a.raws.semicolon,typeof n<"u"))return!1}),n}rawValue(t,n){let a=t[n],s=t.raws[n];return s&&s.value===a?s.raw:a}root(t){this.body(t),t.raws.after&&this.builder(t.raws.after)}rule(t){this.block(t,this.rawValue(t,"selector")),t.raws.ownSemicolon&&this.builder(t.raws.ownSemicolon,t,"end")}stringify(t,n){if(!this[t.type])throw new Error("Unknown AST node type "+t.type+". Maybe you need to change PostCSS stringifier.");this[t.type](t,n)}};var LA=Vd;Vd.default=Vd;let KWe=LA;function Kd(e,t){new KWe(t).stringify(e)}var Kl=Kd;Kd.default=Kd;let{isClean:Ri,my:jWe}=ti,qWe=Nf,YWe=LA,XWe=Kl;function jd(e,t){let n=new e.constructor;for(let a in e){if(!Object.prototype.hasOwnProperty.call(e,a)||a==="proxyCache")continue;let s=e[a],r=typeof s;a==="parent"&&r==="object"?t&&(n[a]=t):a==="source"?n[a]=s:Array.isArray(s)?n[a]=s.map(o=>jd(o,n)):(r==="object"&&s!==null&&(s=jd(s)),n[a]=s)}return n}let qd=class{constructor(t={}){this.raws={},this[Ri]=!1,this[jWe]=!0;for(let n in t)if(n==="nodes"){this.nodes=[];for(let a of t[n])typeof a.clone=="function"?this.append(a.clone()):this.append(a)}else this[n]=t[n]}addToError(t){if(t.postcssNode=this,t.stack&&this.source&&/\n\s{4}at /.test(t.stack)){let n=this.source;t.stack=t.stack.replace(/\n\s{4}at /,`$&${n.input.from}:${n.start.line}:${n.start.column}$&`)}return t}after(t){return this.parent.insertAfter(this,t),this}assign(t={}){for(let n in t)this[n]=t[n];return this}before(t){return this.parent.insertBefore(this,t),this}cleanRaws(t){delete this.raws.before,delete this.raws.after,t||delete this.raws.between}clone(t={}){let n=jd(this);for(let a in t)n[a]=t[a];return n}cloneAfter(t={}){let n=this.clone(t);return this.parent.insertAfter(this,n),n}cloneBefore(t={}){let n=this.clone(t);return this.parent.insertBefore(this,n),n}error(t,n={}){if(this.source){let{end:a,start:s}=this.rangeBy(n);return this.source.input.error(t,{column:s.column,line:s.line},{column:a.column,line:a.line},n)}return new qWe(t)}getProxyProcessor(){return{get(t,n){return n==="proxyOf"?t:n==="root"?()=>t.root().toProxy():t[n]},set(t,n,a){return t[n]===a||(t[n]=a,(n==="prop"||n==="value"||n==="name"||n==="params"||n==="important"||n==="text")&&t.markDirty()),!0}}}markDirty(){if(this[Ri]){this[Ri]=!1;let t=this;for(;t=t.parent;)t[Ri]=!1}}next(){if(!this.parent)return;let t=this.parent.index(this);return this.parent.nodes[t+1]}positionBy(t,n){let a=this.source.start;if(t.index)a=this.positionInside(t.index,n);else if(t.word){n=this.toString();let s=n.indexOf(t.word);s!==-1&&(a=this.positionInside(s,n))}return a}positionInside(t,n){let a=n||this.toString(),s=this.source.start.column,r=this.source.start.line;for(let o=0;otypeof u=="object"&&u.toJSON?u.toJSON(null,n):u);else if(typeof i=="object"&&i.toJSON)a[o]=i.toJSON(null,n);else if(o==="source"){let u=n.get(i.input);u==null&&(u=r,n.set(i.input,r),r++),a[o]={end:i.end,inputId:u,start:i.start}}else a[o]=i}return s&&(a.inputs=[...n.keys()].map(o=>o.toJSON())),a}toProxy(){return this.proxyCache||(this.proxyCache=new Proxy(this,this.getProxyProcessor())),this.proxyCache}toString(t=XWe){t.stringify&&(t=t.stringify);let n="";return t(this,a=>{n+=a}),n}warn(t,n,a){let s={node:this};for(let r in a)s[r]=a[r];return t.warn(n,s)}get proxyOf(){return this}};var jl=qd;qd.default=qd;let QWe=jl,Yd=class extends QWe{constructor(t){t&&typeof t.value<"u"&&typeof t.value!="string"&&(t={...t,value:String(t.value)}),super(t),this.type="decl"}get variable(){return this.prop.startsWith("--")||this.prop[0]==="$"}};var ql=Yd;Yd.default=Yd;let ZWe="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict",JWe=(e,t=21)=>(n=t)=>{let a="",s=n;for(;s--;)a+=e[Math.random()*e.length|0];return a},eFe=(e=21)=>{let t="",n=e;for(;n--;)t+=ZWe[Math.random()*64|0];return t};var tFe={nanoid:eFe,customAlphabet:JWe};let{SourceMapConsumer:tT,SourceMapGenerator:nT}=Yn,{existsSync:nFe,readFileSync:aFe}=Yn,{dirname:Lc,join:sFe}=Yn;function rFe(e){return Buffer?Buffer.from(e,"base64").toString():window.atob(e)}let Xd=class{constructor(t,n){if(n.map===!1)return;this.loadAnnotation(t),this.inline=this.startWith(this.annotation,"data:");let a=n.map?n.map.prev:void 0,s=this.loadMap(n.from,a);!this.mapFile&&n.from&&(this.mapFile=n.from),this.mapFile&&(this.root=Lc(this.mapFile)),s&&(this.text=s)}consumer(){return this.consumerCache||(this.consumerCache=new tT(this.text)),this.consumerCache}decodeInline(t){let n=/^data:application\/json;charset=utf-?8;base64,/,a=/^data:application\/json;base64,/,s=/^data:application\/json;charset=utf-?8,/,r=/^data:application\/json,/,o=t.match(s)||t.match(r);if(o)return decodeURIComponent(t.substr(o[0].length));let i=t.match(n)||t.match(a);if(i)return rFe(t.substr(i[0].length));let u=t.match(/data:application\/json;([^,]+),/)[1];throw new Error("Unsupported source map encoding "+u)}getAnnotationURL(t){return t.replace(/^\/\*\s*# sourceMappingURL=/,"").trim()}isMap(t){return typeof t!="object"?!1:typeof t.mappings=="string"||typeof t._mappings=="string"||Array.isArray(t.sections)}loadAnnotation(t){let n=t.match(/\/\*\s*# sourceMappingURL=/g);if(!n)return;let a=t.lastIndexOf(n.pop()),s=t.indexOf("*/",a);a>-1&&s>-1&&(this.annotation=this.getAnnotationURL(t.substring(a,s)))}loadFile(t){if(this.root=Lc(t),nFe(t))return this.mapFile=t,aFe(t,"utf-8").toString().trim()}loadMap(t,n){if(n===!1)return!1;if(n){if(typeof n=="string")return n;if(typeof n=="function"){let a=n(t);if(a){let s=this.loadFile(a);if(!s)throw new Error("Unable to load previous source map: "+a.toString());return s}}else{if(n instanceof tT)return nT.fromSourceMap(n).toString();if(n instanceof nT)return n.toString();if(this.isMap(n))return JSON.stringify(n);throw new Error("Unsupported previous source map format: "+n.toString())}}else{if(this.inline)return this.decodeInline(this.annotation);if(this.annotation){let a=this.annotation;return t&&(a=sFe(Lc(t),a)),this.loadFile(a)}}}startWith(t,n){return t?t.substr(0,n.length)===n:!1}withContent(){return!!(this.consumer().sourcesContent&&this.consumer().sourcesContent.length>0)}};var yA=Xd;Xd.default=Xd;let{SourceMapConsumer:oFe,SourceMapGenerator:iFe}=Yn,{fileURLToPath:aT,pathToFileURL:Ni}=Yn,{isAbsolute:Qd,resolve:Zd}=Yn,{nanoid:uFe}=tFe,yc=Yn,sT=Nf,lFe=yA,$c=Symbol("fromOffsetCache"),cFe=!!(oFe&&iFe),rT=!!(Zd&&Qd),al=class{constructor(t,n={}){if(t===null||typeof t>"u"||typeof t=="object"&&!t.toString)throw new Error(`PostCSS received ${t} instead of CSS string`);if(this.css=t.toString(),this.css[0]==="\uFEFF"||this.css[0]==="￾"?(this.hasBOM=!0,this.css=this.css.slice(1)):this.hasBOM=!1,n.from&&(!rT||/^\w+:\/\//.test(n.from)||Qd(n.from)?this.file=n.from:this.file=Zd(n.from)),rT&&cFe){let a=new lFe(this.css,n);if(a.text){this.map=a;let s=a.consumer().file;!this.file&&s&&(this.file=this.mapResolve(s))}}this.file||(this.id=""),this.map&&(this.map.file=this.from)}error(t,n,a,s={}){let r,o,i;if(n&&typeof n=="object"){let l=n,c=a;if(typeof l.offset=="number"){let f=this.fromOffset(l.offset);n=f.line,a=f.col}else n=l.line,a=l.column;if(typeof c.offset=="number"){let f=this.fromOffset(c.offset);o=f.line,i=f.col}else o=c.line,i=c.column}else if(!a){let l=this.fromOffset(n);n=l.line,a=l.col}let u=this.origin(n,a,o,i);return u?r=new sT(t,u.endLine===void 0?u.line:{column:u.column,line:u.line},u.endLine===void 0?u.column:{column:u.endColumn,line:u.endLine},u.source,u.file,s.plugin):r=new sT(t,o===void 0?n:{column:a,line:n},o===void 0?a:{column:i,line:o},this.css,this.file,s.plugin),r.input={column:a,endColumn:i,endLine:o,line:n,source:this.css},this.file&&(Ni&&(r.input.url=Ni(this.file).toString()),r.input.file=this.file),r}fromOffset(t){let n,a;if(this[$c])a=this[$c];else{let r=this.css.split(` -`);a=new Array(r.length);let o=0;for(let i=0,u=r.length;i=n)s=a.length-1;else{let r=a.length-2,o;for(;s>1),t=a[o+1])s=o+1;else{s=o;break}}return{col:t-a[s]+1,line:s+1}}mapResolve(t){return/^\w+:\/\//.test(t)?t:Zd(this.map.consumer().sourceRoot||this.map.root||".",t)}origin(t,n,a,s){if(!this.map)return!1;let r=this.map.consumer(),o=r.originalPositionFor({column:n,line:t});if(!o.source)return!1;let i;typeof a=="number"&&(i=r.originalPositionFor({column:s,line:a}));let u;Qd(o.source)?u=Ni(o.source):u=new URL(o.source,this.map.consumer().sourceRoot||Ni(this.map.mapFile));let l={column:o.column,endColumn:i&&i.column,endLine:i&&i.line,line:o.line,url:u.toString()};if(u.protocol==="file:")if(aT)l.file=aT(u);else throw new Error("file: protocol is not available in this PostCSS build");let c=r.sourceContentFor(o.source);return c&&(l.source=c),l}toJSON(){let t={};for(let n of["hasBOM","css","file","id"])this[n]!=null&&(t[n]=this[n]);return this.map&&(t.map={...this.map},t.map.consumerCache&&(t.map.consumerCache=void 0)),t}get from(){return this.file||this.id}};var Yl=al;al.default=al;yc&&yc.registerInput&&yc.registerInput(al);let{SourceMapConsumer:$A,SourceMapGenerator:eu}=Yn,{dirname:tu,relative:UA,resolve:kA,sep:wA}=Yn,{pathToFileURL:oT}=Yn,dFe=Yl,EFe=!!($A&&eu),fFe=!!(tu&&kA&&UA&&wA),pFe=class{constructor(t,n,a,s){this.stringify=t,this.mapOpts=a.map||{},this.root=n,this.opts=a,this.css=s,this.originalCSS=s,this.usesFileUrls=!this.mapOpts.from&&this.mapOpts.absolute,this.memoizedFileURLs=new Map,this.memoizedPaths=new Map,this.memoizedURLs=new Map}addAnnotation(){let t;this.isInline()?t="data:application/json;base64,"+this.toBase64(this.map.toString()):typeof this.mapOpts.annotation=="string"?t=this.mapOpts.annotation:typeof this.mapOpts.annotation=="function"?t=this.mapOpts.annotation(this.opts.to,this.root):t=this.outputFile()+".map";let n=` -`;this.css.includes(`\r -`)&&(n=`\r -`),this.css+=n+"/*# sourceMappingURL="+t+" */"}applyPrevMaps(){for(let t of this.previous()){let n=this.toUrl(this.path(t.file)),a=t.root||tu(t.file),s;this.mapOpts.sourcesContent===!1?(s=new $A(t.text),s.sourcesContent&&(s.sourcesContent=null)):s=t.consumer(),this.map.applySourceMap(s,n,this.toUrl(this.path(a)))}}clearAnnotation(){if(this.mapOpts.annotation!==!1)if(this.root){let t;for(let n=this.root.nodes.length-1;n>=0;n--)t=this.root.nodes[n],t.type==="comment"&&t.text.indexOf("# sourceMappingURL=")===0&&this.root.removeChild(n)}else this.css&&(this.css=this.css.replace(/\n*\/\*#[\S\s]*?\*\/$/gm,""))}generate(){if(this.clearAnnotation(),fFe&&EFe&&this.isMap())return this.generateMap();{let t="";return this.stringify(this.root,n=>{t+=n}),[t]}}generateMap(){if(this.root)this.generateString();else if(this.previous().length===1){let t=this.previous()[0].consumer();t.file=this.outputFile(),this.map=eu.fromSourceMap(t,{ignoreInvalidMapping:!0})}else this.map=new eu({file:this.outputFile(),ignoreInvalidMapping:!0}),this.map.addMapping({generated:{column:0,line:1},original:{column:0,line:1},source:this.opts.from?this.toUrl(this.path(this.opts.from)):""});return this.isSourcesContent()&&this.setSourcesContent(),this.root&&this.previous().length>0&&this.applyPrevMaps(),this.isAnnotation()&&this.addAnnotation(),this.isInline()?[this.css]:[this.css,this.map]}generateString(){this.css="",this.map=new eu({file:this.outputFile(),ignoreInvalidMapping:!0});let t=1,n=1,a="",s={generated:{column:0,line:0},original:{column:0,line:0},source:""},r,o;this.stringify(this.root,(i,u,l)=>{if(this.css+=i,u&&l!=="end"&&(s.generated.line=t,s.generated.column=n-1,u.source&&u.source.start?(s.source=this.sourcePath(u),s.original.line=u.source.start.line,s.original.column=u.source.start.column-1,this.map.addMapping(s)):(s.source=a,s.original.line=1,s.original.column=0,this.map.addMapping(s))),r=i.match(/\n/g),r?(t+=r.length,o=i.lastIndexOf(` -`),n=i.length-o):n+=i.length,u&&l!=="start"){let c=u.parent||{raws:{}};(!(u.type==="decl"||u.type==="atrule"&&!u.nodes)||u!==c.last||c.raws.semicolon)&&(u.source&&u.source.end?(s.source=this.sourcePath(u),s.original.line=u.source.end.line,s.original.column=u.source.end.column-1,s.generated.line=t,s.generated.column=n-2,this.map.addMapping(s)):(s.source=a,s.original.line=1,s.original.column=0,s.generated.line=t,s.generated.column=n-1,this.map.addMapping(s)))}})}isAnnotation(){return this.isInline()?!0:typeof this.mapOpts.annotation<"u"?this.mapOpts.annotation:this.previous().length?this.previous().some(t=>t.annotation):!0}isInline(){if(typeof this.mapOpts.inline<"u")return this.mapOpts.inline;let t=this.mapOpts.annotation;return typeof t<"u"&&t!==!0?!1:this.previous().length?this.previous().some(n=>n.inline):!0}isMap(){return typeof this.opts.map<"u"?!!this.opts.map:this.previous().length>0}isSourcesContent(){return typeof this.mapOpts.sourcesContent<"u"?this.mapOpts.sourcesContent:this.previous().length?this.previous().some(t=>t.withContent()):!0}outputFile(){return this.opts.to?this.path(this.opts.to):this.opts.from?this.path(this.opts.from):"to.css"}path(t){if(this.mapOpts.absolute||t.charCodeAt(0)===60||/^\w+:\/\//.test(t))return t;let n=this.memoizedPaths.get(t);if(n)return n;let a=this.opts.to?tu(this.opts.to):".";typeof this.mapOpts.annotation=="string"&&(a=tu(kA(a,this.mapOpts.annotation)));let s=UA(a,t);return this.memoizedPaths.set(t,s),s}previous(){if(!this.previousMaps)if(this.previousMaps=[],this.root)this.root.walk(t=>{if(t.source&&t.source.input.map){let n=t.source.input.map;this.previousMaps.includes(n)||this.previousMaps.push(n)}});else{let t=new dFe(this.originalCSS,this.opts);t.map&&this.previousMaps.push(t.map)}return this.previousMaps}setSourcesContent(){let t={};if(this.root)this.root.walk(n=>{if(n.source){let a=n.source.input.from;if(a&&!t[a]){t[a]=!0;let s=this.usesFileUrls?this.toFileUrl(a):this.toUrl(this.path(a));this.map.setSourceContent(s,n.source.input.css)}}});else if(this.css){let n=this.opts.from?this.toUrl(this.path(this.opts.from)):"";this.map.setSourceContent(n,this.css)}}sourcePath(t){return this.mapOpts.from?this.toUrl(this.mapOpts.from):this.usesFileUrls?this.toFileUrl(t.source.input.from):this.toUrl(this.path(t.source.input.from))}toBase64(t){return Buffer?Buffer.from(t).toString("base64"):window.btoa(unescape(encodeURIComponent(t)))}toFileUrl(t){let n=this.memoizedFileURLs.get(t);if(n)return n;if(oT){let a=oT(t).toString();return this.memoizedFileURLs.set(t,a),a}else throw new Error("`map.absolute` option is not available in this PostCSS build")}toUrl(t){let n=this.memoizedURLs.get(t);if(n)return n;wA==="\\"&&(t=t.replace(/\\/g,"/"));let a=encodeURI(t).replace(/[#?]/g,encodeURIComponent);return this.memoizedURLs.set(t,a),a}};var MA=pFe;let mFe=jl,Jd=class extends mFe{constructor(t){super(t),this.type="comment"}};var Xl=Jd;Jd.default=Jd;let{isClean:WA,my:FA}=ti,zA=ql,xA=Xl,_Fe=jl,BA,vf,bf,GA;function HA(e){return e.map(t=>(t.nodes&&(t.nodes=HA(t.nodes)),delete t.source,t))}function VA(e){if(e[WA]=!1,e.proxyOf.nodes)for(let t of e.proxyOf.nodes)VA(t)}let va=class KA extends _Fe{append(...t){for(let n of t){let a=this.normalize(n,this.last);for(let s of a)this.proxyOf.nodes.push(s)}return this.markDirty(),this}cleanRaws(t){if(super.cleanRaws(t),this.nodes)for(let n of this.nodes)n.cleanRaws(t)}each(t){if(!this.proxyOf.nodes)return;let n=this.getIterator(),a,s;for(;this.indexes[n]t[n](...a.map(s=>typeof s=="function"?(r,o)=>s(r.toProxy(),o):s)):n==="every"||n==="some"?a=>t[n]((s,...r)=>a(s.toProxy(),...r)):n==="root"?()=>t.root().toProxy():n==="nodes"?t.nodes.map(a=>a.toProxy()):n==="first"||n==="last"?t[n].toProxy():t[n]:t[n]},set(t,n,a){return t[n]===a||(t[n]=a,(n==="name"||n==="params"||n==="selector")&&t.markDirty()),!0}}}index(t){return typeof t=="number"?t:(t.proxyOf&&(t=t.proxyOf),this.proxyOf.nodes.indexOf(t))}insertAfter(t,n){let a=this.index(t),s=this.normalize(n,this.proxyOf.nodes[a]).reverse();a=this.index(t);for(let o of s)this.proxyOf.nodes.splice(a+1,0,o);let r;for(let o in this.indexes)r=this.indexes[o],a"u")t=[];else if(Array.isArray(t)){t=t.slice(0);for(let s of t)s.parent&&s.parent.removeChild(s,"ignore")}else if(t.type==="root"&&this.type!=="document"){t=t.nodes.slice(0);for(let s of t)s.parent&&s.parent.removeChild(s,"ignore")}else if(t.type)t=[t];else if(t.prop){if(typeof t.value>"u")throw new Error("Value field is missed in node creation");typeof t.value!="string"&&(t.value=String(t.value)),t=[new zA(t)]}else if(t.selector||t.selectors)t=[new vf(t)];else if(t.name)t=[new bf(t)];else if(t.text)t=[new xA(t)];else throw new Error("Unknown node type in node creation");return t.map(s=>(s[FA]||KA.rebuild(s),s=s.proxyOf,s.parent&&s.parent.removeChild(s),s[WA]&&VA(s),typeof s.raws.before>"u"&&n&&typeof n.raws.before<"u"&&(s.raws.before=n.raws.before.replace(/\S/g,"")),s.parent=this.proxyOf,s))}prepend(...t){t=t.reverse();for(let n of t){let a=this.normalize(n,this.first,"prepend").reverse();for(let s of a)this.proxyOf.nodes.unshift(s);for(let s in this.indexes)this.indexes[s]=this.indexes[s]+a.length}return this.markDirty(),this}push(t){return t.parent=this,this.proxyOf.nodes.push(t),this}removeAll(){for(let t of this.proxyOf.nodes)t.parent=void 0;return this.proxyOf.nodes=[],this.markDirty(),this}removeChild(t){t=this.index(t),this.proxyOf.nodes[t].parent=void 0,this.proxyOf.nodes.splice(t,1);let n;for(let a in this.indexes)n=this.indexes[a],n>=t&&(this.indexes[a]=n-1);return this.markDirty(),this}replaceValues(t,n,a){return a||(a=n,n={}),this.walkDecls(s=>{n.props&&!n.props.includes(s.prop)||n.fast&&!s.value.includes(n.fast)||(s.value=s.value.replace(t,a))}),this.markDirty(),this}some(t){return this.nodes.some(t)}walk(t){return this.each((n,a)=>{let s;try{s=t(n,a)}catch(r){throw n.addToError(r)}return s!==!1&&n.walk&&(s=n.walk(t)),s})}walkAtRules(t,n){return n?t instanceof RegExp?this.walk((a,s)=>{if(a.type==="atrule"&&t.test(a.name))return n(a,s)}):this.walk((a,s)=>{if(a.type==="atrule"&&a.name===t)return n(a,s)}):(n=t,this.walk((a,s)=>{if(a.type==="atrule")return n(a,s)}))}walkComments(t){return this.walk((n,a)=>{if(n.type==="comment")return t(n,a)})}walkDecls(t,n){return n?t instanceof RegExp?this.walk((a,s)=>{if(a.type==="decl"&&t.test(a.prop))return n(a,s)}):this.walk((a,s)=>{if(a.type==="decl"&&a.prop===t)return n(a,s)}):(n=t,this.walk((a,s)=>{if(a.type==="decl")return n(a,s)}))}walkRules(t,n){return n?t instanceof RegExp?this.walk((a,s)=>{if(a.type==="rule"&&t.test(a.selector))return n(a,s)}):this.walk((a,s)=>{if(a.type==="rule"&&a.selector===t)return n(a,s)}):(n=t,this.walk((a,s)=>{if(a.type==="rule")return n(a,s)}))}get first(){if(this.proxyOf.nodes)return this.proxyOf.nodes[0]}get last(){if(this.proxyOf.nodes)return this.proxyOf.nodes[this.proxyOf.nodes.length-1]}};va.registerParse=e=>{BA=e};va.registerRule=e=>{vf=e};va.registerAtRule=e=>{bf=e};va.registerRoot=e=>{GA=e};var Ms=va;va.default=va;va.rebuild=e=>{e.type==="atrule"?Object.setPrototypeOf(e,bf.prototype):e.type==="rule"?Object.setPrototypeOf(e,vf.prototype):e.type==="decl"?Object.setPrototypeOf(e,zA.prototype):e.type==="comment"?Object.setPrototypeOf(e,xA.prototype):e.type==="root"&&Object.setPrototypeOf(e,GA.prototype),e[FA]=!0,e.nodes&&e.nodes.forEach(t=>{va.rebuild(t)})};let TFe=Ms,jA,qA,Po=class extends TFe{constructor(t){super({type:"document",...t}),this.nodes||(this.nodes=[])}toResult(t={}){return new jA(new qA,this,t).stringify()}};Po.registerLazyResult=e=>{jA=e};Po.registerProcessor=e=>{qA=e};var Cf=Po;Po.default=Po;let eE=class{constructor(t,n={}){if(this.type="warning",this.text=t,n.node&&n.node.source){let a=n.node.rangeBy(n);this.line=a.start.line,this.column=a.start.column,this.endLine=a.end.line,this.endColumn=a.end.column}for(let a in n)this[a]=n[a]}toString(){return this.node?this.node.error(this.text,{index:this.index,plugin:this.plugin,word:this.word}).message:this.plugin?this.plugin+": "+this.text:this.text}};var YA=eE;eE.default=eE;let hFe=YA,tE=class{constructor(t,n,a){this.processor=t,this.messages=[],this.root=n,this.opts=a,this.css=void 0,this.map=void 0}toString(){return this.css}warn(t,n={}){n.plugin||this.lastPlugin&&this.lastPlugin.postcssPlugin&&(n.plugin=this.lastPlugin.postcssPlugin);let a=new hFe(t,n);return this.messages.push(a),a}warnings(){return this.messages.filter(t=>t.type==="warning")}get content(){return this.css}};var Df=tE;tE.default=tE;const Uc=39,iT=34,vi=92,uT=47,bi=10,Kr=32,Ci=12,Di=9,Pi=13,SFe=91,AFe=93,OFe=40,gFe=41,IFe=123,RFe=125,NFe=59,vFe=42,bFe=58,CFe=64,Li=/[\t\n\f\r "#'()/;[\\\]{}]/g,yi=/[\t\n\f\r !"#'():;@[\\\]{}]|\/(?=\*)/g,DFe=/.[\r\n"'(/\\]/,lT=/[\da-f]/i;var PFe=function(t,n={}){let a=t.css.valueOf(),s=n.ignoreErrors,r,o,i,u,l,c,f,E,p,T,O=a.length,R=0,g=[],N=[];function S(){return R}function A(C){throw t.error("Unclosed "+C,R)}function v(){return N.length===0&&R>=O}function D(C){if(N.length)return N.pop();if(R>=O)return;let y=C?C.ignoreUnclosed:!1;switch(r=a.charCodeAt(R),r){case bi:case Kr:case Di:case Pi:case Ci:{o=R;do o+=1,r=a.charCodeAt(o);while(r===Kr||r===bi||r===Di||r===Pi||r===Ci);T=["space",a.slice(R,o)],R=o-1;break}case SFe:case AFe:case IFe:case RFe:case bFe:case NFe:case gFe:{let z=String.fromCharCode(r);T=[z,z,R];break}case OFe:{if(E=g.length?g.pop()[1]:"",p=a.charCodeAt(R+1),E==="url"&&p!==Uc&&p!==iT&&p!==Kr&&p!==bi&&p!==Di&&p!==Ci&&p!==Pi){o=R;do{if(c=!1,o=a.indexOf(")",o+1),o===-1)if(s||y){o=R;break}else A("bracket");for(f=o;a.charCodeAt(f-1)===vi;)f-=1,c=!c}while(c);T=["brackets",a.slice(R,o+1),R,o],R=o}else o=a.indexOf(")",R+1),u=a.slice(R,o+1),o===-1||DFe.test(u)?T=["(","(",R]:(T=["brackets",u,R,o],R=o);break}case Uc:case iT:{i=r===Uc?"'":'"',o=R;do{if(c=!1,o=a.indexOf(i,o+1),o===-1)if(s||y){o=R+1;break}else A("string");for(f=o;a.charCodeAt(f-1)===vi;)f-=1,c=!c}while(c);T=["string",a.slice(R,o+1),R,o],R=o;break}case CFe:{Li.lastIndex=R+1,Li.test(a),Li.lastIndex===0?o=a.length-1:o=Li.lastIndex-2,T=["at-word",a.slice(R,o+1),R,o],R=o;break}case vi:{for(o=R,l=!0;a.charCodeAt(o+1)===vi;)o+=1,l=!l;if(r=a.charCodeAt(o+1),l&&r!==uT&&r!==Kr&&r!==bi&&r!==Di&&r!==Pi&&r!==Ci&&(o+=1,lT.test(a.charAt(o)))){for(;lT.test(a.charAt(o+1));)o+=1;a.charCodeAt(o+1)===Kr&&(o+=1)}T=["word",a.slice(R,o+1),R,o],R=o;break}default:{r===uT&&a.charCodeAt(R+1)===vFe?(o=a.indexOf("*/",R+2)+1,o===0&&(s||y?o=a.length:A("comment")),T=["comment",a.slice(R,o+1),R,o],R=o):(yi.lastIndex=R+1,yi.test(a),yi.lastIndex===0?o=a.length-1:o=yi.lastIndex-2,T=["word",a.slice(R,o+1),R,o],g.push(T),R=o);break}}return R++,T}function P(C){N.push(C)}return{back:P,endOfFile:v,nextToken:D,position:S}};let XA=Ms,sl=class extends XA{constructor(t){super(t),this.type="atrule"}append(...t){return this.proxyOf.nodes||(this.nodes=[]),super.append(...t)}prepend(...t){return this.proxyOf.nodes||(this.nodes=[]),super.prepend(...t)}};var Pf=sl;sl.default=sl;XA.registerAtRule(sl);let QA=Ms,ZA,JA,Or=class extends QA{constructor(t){super(t),this.type="root",this.nodes||(this.nodes=[])}normalize(t,n,a){let s=super.normalize(t);if(n){if(a==="prepend")this.nodes.length>1?n.raws.before=this.nodes[1].raws.before:delete n.raws.before;else if(this.first!==n)for(let r of s)r.raws.before=n.raws.before}return s}removeChild(t,n){let a=this.index(t);return!n&&a===0&&this.nodes.length>1&&(this.nodes[1].raws.before=this.nodes[a].raws.before),super.removeChild(t)}toResult(t={}){return new ZA(new JA,this,t).stringify()}};Or.registerLazyResult=e=>{ZA=e};Or.registerProcessor=e=>{JA=e};var ni=Or;Or.default=Or;QA.registerRoot(Or);let Lo={comma(e){return Lo.split(e,[","],!0)},space(e){let t=[" ",` -`," "];return Lo.split(e,t)},split(e,t,n){let a=[],s="",r=!1,o=0,i=!1,u="",l=!1;for(let c of e)l?l=!1:c==="\\"?l=!0:i?c===u&&(i=!1):c==='"'||c==="'"?(i=!0,u=c):c==="("?o+=1:c===")"?o>0&&(o-=1):o===0&&t.includes(c)&&(r=!0),r?(s!==""&&a.push(s.trim()),s="",r=!1):s+=c;return(n||s!=="")&&a.push(s.trim()),a}};var eO=Lo;Lo.default=Lo;let tO=Ms,LFe=eO,rl=class extends tO{constructor(t){super(t),this.type="rule",this.nodes||(this.nodes=[])}get selectors(){return LFe.comma(this.selector)}set selectors(t){let n=this.selector?this.selector.match(/,\s*/):null,a=n?n[0]:","+this.raw("between","beforeOpen");this.selector=t.join(a)}};var Lf=rl;rl.default=rl;tO.registerRule(rl);let yFe=ql,$Fe=PFe,UFe=Xl,kFe=Pf,wFe=ni,cT=Lf;const dT={empty:!0,space:!0};function MFe(e){for(let t=e.length-1;t>=0;t--){let n=e[t],a=n[3]||n[2];if(a)return a}}let WFe=class{constructor(t){this.input=t,this.root=new wFe,this.current=this.root,this.spaces="",this.semicolon=!1,this.createTokenizer(),this.root.source={input:t,start:{column:1,line:1,offset:0}}}atrule(t){let n=new kFe;n.name=t[1].slice(1),n.name===""&&this.unnamedAtrule(n,t),this.init(n,t[2]);let a,s,r,o=!1,i=!1,u=[],l=[];for(;!this.tokenizer.endOfFile();){if(t=this.tokenizer.nextToken(),a=t[0],a==="("||a==="["?l.push(a==="("?")":"]"):a==="{"&&l.length>0?l.push("}"):a===l[l.length-1]&&l.pop(),l.length===0)if(a===";"){n.source.end=this.getPosition(t[2]),n.source.end.offset++,this.semicolon=!0;break}else if(a==="{"){i=!0;break}else if(a==="}"){if(u.length>0){for(r=u.length-1,s=u[r];s&&s[0]==="space";)s=u[--r];s&&(n.source.end=this.getPosition(s[3]||s[2]),n.source.end.offset++)}this.end(t);break}else u.push(t);else u.push(t);if(this.tokenizer.endOfFile()){o=!0;break}}n.raws.between=this.spacesAndCommentsFromEnd(u),u.length?(n.raws.afterName=this.spacesAndCommentsFromStart(u),this.raw(n,"params",u),o&&(t=u[u.length-1],n.source.end=this.getPosition(t[3]||t[2]),n.source.end.offset++,this.spaces=n.raws.between,n.raws.between="")):(n.raws.afterName="",n.params=""),i&&(n.nodes=[],this.current=n)}checkMissedSemicolon(t){let n=this.colon(t);if(n===!1)return;let a=0,s;for(let r=n-1;r>=0&&(s=t[r],!(s[0]!=="space"&&(a+=1,a===2)));r--);throw this.input.error("Missed semicolon",s[0]==="word"?s[3]+1:s[2])}colon(t){let n=0,a,s,r;for(let[o,i]of t.entries()){if(a=i,s=a[0],s==="("&&(n+=1),s===")"&&(n-=1),n===0&&s===":")if(!r)this.doubleColon(a);else{if(r[0]==="word"&&r[1]==="progid")continue;return o}r=a}return!1}comment(t){let n=new UFe;this.init(n,t[2]),n.source.end=this.getPosition(t[3]||t[2]),n.source.end.offset++;let a=t[1].slice(2,-2);if(/^\s*$/.test(a))n.text="",n.raws.left=a,n.raws.right="";else{let s=a.match(/^(\s*)([^]*\S)(\s*)$/);n.text=s[2],n.raws.left=s[1],n.raws.right=s[3]}}createTokenizer(){this.tokenizer=$Fe(this.input)}decl(t,n){let a=new yFe;this.init(a,t[0][2]);let s=t[t.length-1];for(s[0]===";"&&(this.semicolon=!0,t.pop()),a.source.end=this.getPosition(s[3]||s[2]||MFe(t)),a.source.end.offset++;t[0][0]!=="word";)t.length===1&&this.unknownWord(t),a.raws.before+=t.shift()[1];for(a.source.start=this.getPosition(t[0][2]),a.prop="";t.length;){let l=t[0][0];if(l===":"||l==="space"||l==="comment")break;a.prop+=t.shift()[1]}a.raws.between="";let r;for(;t.length;)if(r=t.shift(),r[0]===":"){a.raws.between+=r[1];break}else r[0]==="word"&&/\w/.test(r[1])&&this.unknownWord([r]),a.raws.between+=r[1];(a.prop[0]==="_"||a.prop[0]==="*")&&(a.raws.before+=a.prop[0],a.prop=a.prop.slice(1));let o=[],i;for(;t.length&&(i=t[0][0],!(i!=="space"&&i!=="comment"));)o.push(t.shift());this.precheckMissedSemicolon(t);for(let l=t.length-1;l>=0;l--){if(r=t[l],r[1].toLowerCase()==="!important"){a.important=!0;let c=this.stringFrom(t,l);c=this.spacesFromEnd(t)+c,c!==" !important"&&(a.raws.important=c);break}else if(r[1].toLowerCase()==="important"){let c=t.slice(0),f="";for(let E=l;E>0;E--){let p=c[E][0];if(f.trim().indexOf("!")===0&&p!=="space")break;f=c.pop()[1]+f}f.trim().indexOf("!")===0&&(a.important=!0,a.raws.important=f,t=c)}if(r[0]!=="space"&&r[0]!=="comment")break}t.some(l=>l[0]!=="space"&&l[0]!=="comment")&&(a.raws.between+=o.map(l=>l[1]).join(""),o=[]),this.raw(a,"value",o.concat(t),n),a.value.includes(":")&&!n&&this.checkMissedSemicolon(t)}doubleColon(t){throw this.input.error("Double colon",{offset:t[2]},{offset:t[2]+t[1].length})}emptyRule(t){let n=new cT;this.init(n,t[2]),n.selector="",n.raws.between="",this.current=n}end(t){this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.semicolon=!1,this.current.raws.after=(this.current.raws.after||"")+this.spaces,this.spaces="",this.current.parent?(this.current.source.end=this.getPosition(t[2]),this.current.source.end.offset++,this.current=this.current.parent):this.unexpectedClose(t)}endFile(){this.current.parent&&this.unclosedBlock(),this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.current.raws.after=(this.current.raws.after||"")+this.spaces,this.root.source.end=this.getPosition(this.tokenizer.position())}freeSemicolon(t){if(this.spaces+=t[1],this.current.nodes){let n=this.current.nodes[this.current.nodes.length-1];n&&n.type==="rule"&&!n.raws.ownSemicolon&&(n.raws.ownSemicolon=this.spaces,this.spaces="")}}getPosition(t){let n=this.input.fromOffset(t);return{column:n.col,line:n.line,offset:t}}init(t,n){this.current.push(t),t.source={input:this.input,start:this.getPosition(n)},t.raws.before=this.spaces,this.spaces="",t.type!=="comment"&&(this.semicolon=!1)}other(t){let n=!1,a=null,s=!1,r=null,o=[],i=t[1].startsWith("--"),u=[],l=t;for(;l;){if(a=l[0],u.push(l),a==="("||a==="[")r||(r=l),o.push(a==="("?")":"]");else if(i&&s&&a==="{")r||(r=l),o.push("}");else if(o.length===0)if(a===";")if(s){this.decl(u,i);return}else break;else if(a==="{"){this.rule(u);return}else if(a==="}"){this.tokenizer.back(u.pop()),n=!0;break}else a===":"&&(s=!0);else a===o[o.length-1]&&(o.pop(),o.length===0&&(r=null));l=this.tokenizer.nextToken()}if(this.tokenizer.endOfFile()&&(n=!0),o.length>0&&this.unclosedBracket(r),n&&s){if(!i)for(;u.length&&(l=u[u.length-1][0],!(l!=="space"&&l!=="comment"));)this.tokenizer.back(u.pop());this.decl(u,i)}else this.unknownWord(u)}parse(){let t;for(;!this.tokenizer.endOfFile();)switch(t=this.tokenizer.nextToken(),t[0]){case"space":this.spaces+=t[1];break;case";":this.freeSemicolon(t);break;case"}":this.end(t);break;case"comment":this.comment(t);break;case"at-word":this.atrule(t);break;case"{":this.emptyRule(t);break;default:this.other(t);break}this.endFile()}precheckMissedSemicolon(){}raw(t,n,a,s){let r,o,i=a.length,u="",l=!0,c,f;for(let E=0;Ep+T[1],"");t.raws[n]={raw:E,value:u}}t[n]=u}rule(t){t.pop();let n=new cT;this.init(n,t[0][2]),n.raws.between=this.spacesAndCommentsFromEnd(t),this.raw(n,"selector",t),this.current=n}spacesAndCommentsFromEnd(t){let n,a="";for(;t.length&&(n=t[t.length-1][0],!(n!=="space"&&n!=="comment"));)a=t.pop()[1]+a;return a}spacesAndCommentsFromStart(t){let n,a="";for(;t.length&&(n=t[0][0],!(n!=="space"&&n!=="comment"));)a+=t.shift()[1];return a}spacesFromEnd(t){let n,a="";for(;t.length&&(n=t[t.length-1][0],n==="space");)a=t.pop()[1]+a;return a}stringFrom(t,n){let a="";for(let s=n;snE(t)),e}let aE={},Ir=class aO{constructor(t,n,a){this.stringified=!1,this.processed=!1;let s;if(typeof n=="object"&&n!==null&&(n.type==="root"||n.type==="document"))s=nE(n);else if(n instanceof aO||n instanceof ET)s=nE(n.root),n.map&&(typeof a.map>"u"&&(a.map={}),a.map.inline||(a.map.inline=!1),a.map.prev=n.map);else{let r=qFe;a.syntax&&(r=a.syntax.parse),a.parser&&(r=a.parser),r.parse&&(r=r.parse);try{s=r(n,a)}catch(o){this.processed=!0,this.error=o}s&&!s[GFe]&&KFe.rebuild(s)}this.result=new ET(t,s,a),this.helpers={...aE,postcss:aE,result:this.result},this.plugins=this.processor.plugins.map(r=>typeof r=="object"&&r.prepare?{...r,...r.prepare(this.result)}:r)}async(){return this.error?Promise.reject(this.error):this.processed?Promise.resolve(this.result):(this.processing||(this.processing=this.runAsync()),this.processing)}catch(t){return this.async().catch(t)}finally(t){return this.async().then(t,t)}getAsyncError(){throw new Error("Use process(css).then(cb) to work with async plugins")}handleError(t,n){let a=this.result.lastPlugin;try{n&&n.addToError(t),this.error=t,t.name==="CssSyntaxError"&&!t.plugin?(t.plugin=a.postcssPlugin,t.setMessage()):a.postcssVersion}catch(s){console&&console.error&&console.error(s)}return t}prepareVisitors(){this.listeners={};let t=(n,a,s)=>{this.listeners[a]||(this.listeners[a]=[]),this.listeners[a].push([n,s])};for(let n of this.plugins)if(typeof n=="object")for(let a in n){if(!QFe[a]&&/^[A-Z]/.test(a))throw new Error(`Unknown event ${a} in ${n.postcssPlugin}. Try to update PostCSS (${this.processor.version} now).`);if(!ZFe[a])if(typeof n[a]=="object")for(let s in n[a])s==="*"?t(n,a,n[a][s]):t(n,a+"-"+s.toLowerCase(),n[a][s]);else typeof n[a]=="function"&&t(n,a,n[a])}this.hasListener=Object.keys(this.listeners).length>0}async runAsync(){this.plugin=0;for(let t=0;t0;){let a=this.visitTick(n);if(jr(a))try{await a}catch(s){let r=n[n.length-1].node;throw this.handleError(s,r)}}}if(this.listeners.OnceExit)for(let[n,a]of this.listeners.OnceExit){this.result.lastPlugin=n;try{if(t.type==="document"){let s=t.nodes.map(r=>a(r,this.helpers));await Promise.all(s)}else await a(t,this.helpers)}catch(s){throw this.handleError(s)}}}return this.processed=!0,this.stringify()}runOnRoot(t){this.result.lastPlugin=t;try{if(typeof t=="object"&&t.Once){if(this.result.root.type==="document"){let n=this.result.root.nodes.map(a=>t.Once(a,this.helpers));return jr(n[0])?Promise.all(n):n}return t.Once(this.result.root,this.helpers)}else if(typeof t=="function")return t(this.result.root,this.result)}catch(n){throw this.handleError(n)}}stringify(){if(this.error)throw this.error;if(this.stringified)return this.result;this.stringified=!0,this.sync();let t=this.result.opts,n=VFe;t.syntax&&(n=t.syntax.stringify),t.stringifier&&(n=t.stringifier),n.stringify&&(n=n.stringify);let s=new HFe(n,this.result.root,this.result.opts).generate();return this.result.css=s[0],this.result.map=s[1],this.result}sync(){if(this.error)throw this.error;if(this.processed)return this.result;if(this.processed=!0,this.processing)throw this.getAsyncError();for(let t of this.plugins){let n=this.runOnRoot(t);if(jr(n))throw this.getAsyncError()}if(this.prepareVisitors(),this.hasListener){let t=this.result.root;for(;!t[ea];)t[ea]=!0,this.walkSync(t);if(this.listeners.OnceExit)if(t.type==="document")for(let n of t.nodes)this.visitSync(this.listeners.OnceExit,n);else this.visitSync(this.listeners.OnceExit,t)}return this.result}then(t,n){return this.async().then(t,n)}toString(){return this.css}visitSync(t,n){for(let[a,s]of t){this.result.lastPlugin=a;let r;try{r=s(n,this.helpers)}catch(o){throw this.handleError(o,n.proxyOf)}if(n.type!=="root"&&n.type!=="document"&&!n.parent)return!0;if(jr(r))throw this.getAsyncError()}}visitTick(t){let n=t[t.length-1],{node:a,visitors:s}=n;if(a.type!=="root"&&a.type!=="document"&&!a.parent){t.pop();return}if(s.length>0&&n.visitorIndex{s[ea]||this.walkSync(s)});else{let s=this.listeners[a];if(s&&this.visitSync(s,t.toProxy()))return}}warnings(){return this.sync().warnings()}get content(){return this.stringify().content}get css(){return this.stringify().css}get map(){return this.stringify().map}get messages(){return this.sync().messages}get opts(){return this.result.opts}get processor(){return this.result.processor}get root(){return this.sync().root}get[Symbol.toStringTag](){return"LazyResult"}};Ir.registerPostcss=e=>{aE=e};var sO=Ir;Ir.default=Ir;YFe.registerLazyResult(Ir);jFe.registerLazyResult(Ir);let JFe=MA,eze=Kl,tze=yf;const nze=Df;let sE=class{constructor(t,n,a){n=n.toString(),this.stringified=!1,this._processor=t,this._css=n,this._opts=a,this._map=void 0;let s,r=eze;this.result=new nze(this._processor,s,this._opts),this.result.css=n;let o=this;Object.defineProperty(this.result,"root",{get(){return o.root}});let i=new JFe(r,s,this._opts,n);if(i.isMap()){let[u,l]=i.generate();u&&(this.result.css=u),l&&(this.result.map=l)}else i.clearAnnotation(),this.result.css=i.css}async(){return this.error?Promise.reject(this.error):Promise.resolve(this.result)}catch(t){return this.async().catch(t)}finally(t){return this.async().then(t,t)}sync(){if(this.error)throw this.error;return this.result}then(t,n){return this.async().then(t,n)}toString(){return this._css}warnings(){return[]}get content(){return this.result.css}get css(){return this.result.css}get map(){return this.result.map}get messages(){return[]}get opts(){return this.result.opts}get processor(){return this.result.processor}get root(){if(this._root)return this._root;let t,n=tze;try{t=n(this._css,this._opts)}catch(a){this.error=a}if(this.error)throw this.error;return this._root=t,t}get[Symbol.toStringTag](){return"NoWorkResult"}};var aze=sE;sE.default=sE;let sze=aze,rze=sO,oze=Cf,ize=ni,yo=class{constructor(t=[]){this.version="8.4.41",this.plugins=this.normalize(t)}normalize(t){let n=[];for(let a of t)if(a.postcss===!0?a=a():a.postcss&&(a=a.postcss),typeof a=="object"&&Array.isArray(a.plugins))n=n.concat(a.plugins);else if(typeof a=="object"&&a.postcssPlugin)n.push(a);else if(typeof a=="function")n.push(a);else if(!(typeof a=="object"&&(a.parse||a.stringify)))throw new Error(a+" is not a PostCSS plugin");return n}process(t,n={}){return!this.plugins.length&&!n.parser&&!n.stringifier&&!n.syntax?new sze(this,t,n):new rze(this,t,n)}use(t){return this.plugins=this.plugins.concat(this.normalize([t])),this}};var uze=yo;yo.default=yo;ize.registerProcessor(yo);oze.registerProcessor(yo);let lze=ql,cze=yA,dze=Xl,Eze=Pf,fze=Yl,pze=ni,mze=Lf;function $o(e,t){if(Array.isArray(e))return e.map(s=>$o(s));let{inputs:n,...a}=e;if(n){t=[];for(let s of n){let r={...s,__proto__:fze.prototype};r.map&&(r.map={...r.map,__proto__:cze.prototype}),t.push(r)}}if(a.nodes&&(a.nodes=e.nodes.map(s=>$o(s,t))),a.source){let{inputId:s,...r}=a.source;a.source=r,s!=null&&(a.source.input=t[s])}if(a.type==="root")return new pze(a);if(a.type==="decl")return new lze(a);if(a.type==="rule")return new mze(a);if(a.type==="comment")return new dze(a);if(a.type==="atrule")return new Eze(a);throw new Error("Unknown node type: "+e.type)}var _ze=$o;$o.default=$o;var pT={};let Tze=Nf,rO=ql,hze=sO,Sze=Ms,$f=uze,Aze=Kl,Oze=_ze,oO=Cf,gze=YA,iO=Xl,uO=Pf,Ize=Df,Rze=Yl,Nze=yf,vze=eO,lO=Lf,cO=ni,bze=jl;function ht(...e){return e.length===1&&Array.isArray(e[0])&&(e=e[0]),new $f(e)}ht.plugin=function(t,n){let a=!1;function s(...o){console&&console.warn&&!a&&(a=!0,console.warn(t+`: postcss.plugin was deprecated. Migration guide: -https://evilmartians.com/chronicles/postcss-8-plugin-migration`),pT.LANG&&pT.LANG.startsWith("cn")&&console.warn(t+`: 里面 postcss.plugin 被弃用. 迁移指南: -https://www.w3ctech.com/topic/2226`));let i=n(...o);return i.postcssPlugin=t,i.postcssVersion=new $f().version,i}let r;return Object.defineProperty(s,"postcss",{get(){return r||(r=s()),r}}),s.process=function(o,i,u){return ht([s(u)]).process(o,i)},s};ht.stringify=Aze;ht.parse=Nze;ht.fromJSON=Oze;ht.list=vze;ht.comment=e=>new iO(e);ht.atRule=e=>new uO(e);ht.decl=e=>new rO(e);ht.rule=e=>new lO(e);ht.root=e=>new cO(e);ht.document=e=>new oO(e);ht.CssSyntaxError=Tze;ht.Declaration=rO;ht.Container=Sze;ht.Processor=$f;ht.Document=oO;ht.Comment=iO;ht.Warning=gze;ht.AtRule=uO;ht.Result=Ize;ht.Input=Rze;ht.Rule=lO;ht.Root=cO;ht.Node=bze;hze.registerPostcss(ht);var Cze=ht;ht.default=ht;const Dze=eA,mT=NWe,{isPlainObject:Pze}=If,_T=zWe,Lze=xWe,{parse:yze}=Cze,$ze=["img","audio","video","picture","svg","object","map","iframe","embed"],Uze=["script","style"];function Qr(e,t){e&&Object.keys(e).forEach(function(n){t(e[n],n)})}function ha(e,t){return{}.hasOwnProperty.call(e,t)}function TT(e,t){const n=[];return Qr(e,function(a){t(a)&&n.push(a)}),n}function kze(e){for(const t in e)if(ha(e,t))return!1;return!0}function wze(e){return e.map(function(t){if(!t.url)throw new Error("URL missing");return t.url+(t.w?` ${t.w}w`:"")+(t.h?` ${t.h}h`:"")+(t.d?` ${t.d}x`:"")}).join(", ")}var Mze=Uo;const Wze=/^[^\0\t\n\f\r /<=>]+$/;function Uo(e,t,n){if(e==null)return"";typeof e=="number"&&(e=e.toString());let a="",s="";function r(G,Z){const q=this;this.tag=G,this.attribs=Z||{},this.tagPosition=a.length,this.text="",this.mediaChildren=[],this.updateParentNodeText=function(){if(R.length){const B=R[R.length-1];B.text+=q.text}},this.updateParentNodeMediaChildren=function(){R.length&&$ze.includes(this.tag)&&R[R.length-1].mediaChildren.push(this.tag)}}t=Object.assign({},Uo.defaults,t),t.parser=Object.assign({},Fze,t.parser);const o=function(G){return t.allowedTags===!1||(t.allowedTags||[]).indexOf(G)>-1};Uze.forEach(function(G){o(G)&&!t.allowVulnerableTags&&console.warn(` - -⚠️ Your \`allowedTags\` option includes, \`${G}\`, which is inherently -vulnerable to XSS attacks. Please remove it from \`allowedTags\`. -Or, to disable this warning, add the \`allowVulnerableTags\` option -and ensure you are accounting for this risk. - -`)});const i=t.nonTextTags||["script","style","textarea","option"];let u,l;t.allowedAttributes&&(u={},l={},Qr(t.allowedAttributes,function(G,Z){u[Z]=[];const q=[];G.forEach(function(B){typeof B=="string"&&B.indexOf("*")>=0?q.push(mT(B).replace(/\\\*/g,".*")):u[Z].push(B)}),q.length&&(l[Z]=new RegExp("^("+q.join("|")+")$"))}));const c={},f={},E={};Qr(t.allowedClasses,function(G,Z){if(u&&(ha(u,Z)||(u[Z]=[]),u[Z].push("class")),c[Z]=G,Array.isArray(G)){const q=[];c[Z]=[],E[Z]=[],G.forEach(function(B){typeof B=="string"&&B.indexOf("*")>=0?q.push(mT(B).replace(/\\\*/g,".*")):B instanceof RegExp?E[Z].push(B):c[Z].push(B)}),q.length&&(f[Z]=new RegExp("^("+q.join("|")+")$"))}});const p={};let T;Qr(t.transformTags,function(G,Z){let q;typeof G=="function"?q=G:typeof G=="string"&&(q=Uo.simpleTransform(G)),Z==="*"?T=q:p[Z]=q});let O,R,g,N,S,A,v=!1;P();const D=new Dze.Parser({onopentag:function(G,Z){if(t.enforceHtmlBoundary&&G==="html"&&P(),S){A++;return}const q=new r(G,Z);R.push(q);let B=!1;const Ne=!!q.text;let qe;if(ha(p,G)&&(qe=p[G](G,Z),q.attribs=Z=qe.attribs,qe.text!==void 0&&(q.innerText=qe.text),G!==qe.tagName&&(q.name=G=qe.tagName,N[O]=qe.tagName)),T&&(qe=T(G,Z),q.attribs=Z=qe.attribs,G!==qe.tagName&&(q.name=G=qe.tagName,N[O]=qe.tagName)),(!o(G)||t.disallowedTagsMode==="recursiveEscape"&&!kze(g)||t.nestingLimit!=null&&O>=t.nestingLimit)&&(B=!0,g[O]=!0,(t.disallowedTagsMode==="discard"||t.disallowedTagsMode==="completelyDiscard")&&i.indexOf(G)!==-1&&(S=!0,A=1),g[O]=!0),O++,B){if(t.disallowedTagsMode==="discard"||t.disallowedTagsMode==="completelyDiscard")return;s=a,a=""}a+="<"+G,G==="script"&&(t.allowedScriptHostnames||t.allowedScriptDomains)&&(q.innerText=""),(!u||ha(u,G)||u["*"])&&Qr(Z,function(Fe,Ue){if(!Wze.test(Ue)){delete q.attribs[Ue];return}if(Fe===""&&!t.allowedEmptyAttributes.includes(Ue)&&(t.nonBooleanAttributes.includes(Ue)||t.nonBooleanAttributes.includes("*"))){delete q.attribs[Ue];return}let zt=!1;if(!u||ha(u,G)&&u[G].indexOf(Ue)!==-1||u["*"]&&u["*"].indexOf(Ue)!==-1||ha(l,G)&&l[G].test(Ue)||l["*"]&&l["*"].test(Ue))zt=!0;else if(u&&u[G]){for(const ge of u[G])if(Pze(ge)&&ge.name&&ge.name===Ue){zt=!0;let Qe="";if(ge.multiple===!0){const It=Fe.split(" ");for(const ne of It)ge.values.indexOf(ne)!==-1&&(Qe===""?Qe=ne:Qe+=" "+ne)}else ge.values.indexOf(Fe)>=0&&(Qe=Fe);Fe=Qe}}if(zt){if(t.allowedSchemesAppliedToAttributes.indexOf(Ue)!==-1&&y(G,Fe)){delete q.attribs[Ue];return}if(G==="script"&&Ue==="src"){let ge=!0;try{const Qe=z(Fe);if(t.allowedScriptHostnames||t.allowedScriptDomains){const It=(t.allowedScriptHostnames||[]).find(function(Te){return Te===Qe.url.hostname}),ne=(t.allowedScriptDomains||[]).find(function(Te){return Qe.url.hostname===Te||Qe.url.hostname.endsWith(`.${Te}`)});ge=It||ne}}catch{ge=!1}if(!ge){delete q.attribs[Ue];return}}if(G==="iframe"&&Ue==="src"){let ge=!0;try{const Qe=z(Fe);if(Qe.isRelativeUrl)ge=ha(t,"allowIframeRelativeUrls")?t.allowIframeRelativeUrls:!t.allowedIframeHostnames&&!t.allowedIframeDomains;else if(t.allowedIframeHostnames||t.allowedIframeDomains){const It=(t.allowedIframeHostnames||[]).find(function(Te){return Te===Qe.url.hostname}),ne=(t.allowedIframeDomains||[]).find(function(Te){return Qe.url.hostname===Te||Qe.url.hostname.endsWith(`.${Te}`)});ge=It||ne}}catch{ge=!1}if(!ge){delete q.attribs[Ue];return}}if(Ue==="srcset")try{let ge=Lze(Fe);if(ge.forEach(function(Qe){y("srcset",Qe.url)&&(Qe.evil=!0)}),ge=TT(ge,function(Qe){return!Qe.evil}),ge.length)Fe=wze(TT(ge,function(Qe){return!Qe.evil})),q.attribs[Ue]=Fe;else{delete q.attribs[Ue];return}}catch{delete q.attribs[Ue];return}if(Ue==="class"){const ge=c[G],Qe=c["*"],It=f[G],ne=E[G],Te=f["*"],he=[It,Te].concat(ne).filter(function(ve){return ve});if(ge&&Qe?Fe=re(Fe,_T(ge,Qe),he):Fe=re(Fe,ge||Qe,he),!Fe.length){delete q.attribs[Ue];return}}if(Ue==="style"){if(t.parseStyleAttributes)try{const ge=yze(G+" {"+Fe+"}",{map:!1}),Qe=$(ge,t.allowedStyles);if(Fe=F(Qe),Fe.length===0){delete q.attribs[Ue];return}}catch{typeof window<"u"&&console.warn('Failed to parse "'+G+" {"+Fe+`}", If you're running this in a browser, we recommend to disable style parsing: options.parseStyleAttributes: false, since this only works in a node environment due to a postcss dependency, More info: https://github.com/apostrophecms/sanitize-html/issues/547`),delete q.attribs[Ue];return}else if(t.allowedStyles)throw new Error("allowedStyles option cannot be used together with parseStyleAttributes: false.")}a+=" "+Ue,Fe&&Fe.length?a+='="'+C(Fe,!0)+'"':t.allowedEmptyAttributes.includes(Ue)&&(a+='=""')}else delete q.attribs[Ue]}),t.selfClosing.indexOf(G)!==-1?a+=" />":(a+=">",q.innerText&&!Ne&&!t.textFilter&&(a+=C(q.innerText),v=!0)),B&&(a=s+C(a),s="")},ontext:function(G){if(S)return;const Z=R[R.length-1];let q;if(Z&&(q=Z.tag,G=Z.innerText!==void 0?Z.innerText:G),t.disallowedTagsMode==="completelyDiscard"&&!o(q))G="";else if((t.disallowedTagsMode==="discard"||t.disallowedTagsMode==="completelyDiscard")&&(q==="script"||q==="style"))a+=G;else{const B=C(G,!1);t.textFilter&&!v?a+=t.textFilter(B,q):v||(a+=B)}if(R.length){const B=R[R.length-1];B.text+=G}},onclosetag:function(G,Z){if(S)if(A--,!A)S=!1;else return;const q=R.pop();if(!q)return;if(q.tag!==G){R.push(q);return}S=t.enforceHtmlBoundary?G==="html":!1,O--;const B=g[O];if(B){if(delete g[O],t.disallowedTagsMode==="discard"||t.disallowedTagsMode==="completelyDiscard"){q.updateParentNodeText();return}s=a,a=""}if(N[O]&&(G=N[O],delete N[O]),t.exclusiveFilter&&t.exclusiveFilter(q)){a=a.substr(0,q.tagPosition);return}if(q.updateParentNodeMediaChildren(),q.updateParentNodeText(),t.selfClosing.indexOf(G)!==-1||Z&&!o(G)&&["escape","recursiveEscape"].indexOf(t.disallowedTagsMode)>=0){B&&(a=s,s="");return}a+="",B&&(a=s+C(a),s=""),v=!1}},t.parser);return D.write(e),D.end(),a;function P(){a="",O=0,R=[],g={},N={},S=!1,A=0}function C(G,Z){return typeof G!="string"&&(G=G+""),t.parser.decodeEntities&&(G=G.replace(/&/g,"&").replace(//g,">"),Z&&(G=G.replace(/"/g,"""))),G=G.replace(/&(?![a-zA-Z0-9#]{1,20};)/g,"&").replace(//g,">"),Z&&(G=G.replace(/"/g,""")),G}function y(G,Z){for(Z=Z.replace(/[\x00-\x20]+/g,"");;){const Ne=Z.indexOf("",Ne+4);if(qe===-1)break;Z=Z.substring(0,Ne)+Z.substring(qe+3)}const q=Z.match(/^([a-zA-Z][a-zA-Z0-9.\-+]*):/);if(!q)return Z.match(/^[/\\]{2}/)?!t.allowProtocolRelative:!1;const B=q[1].toLowerCase();return ha(t.allowedSchemesByTag,G)?t.allowedSchemesByTag[G].indexOf(B)===-1:!t.allowedSchemes||t.allowedSchemes.indexOf(B)===-1}function z(G){if(G=G.replace(/^(\w+:)?\s*[\\/]\s*[\\/]/,"$1//"),G.startsWith("relative:"))throw new Error("relative: exploit attempt");let Z="relative://relative-site";for(let Ne=0;Ne<100;Ne++)Z+=`/${Ne}`;const q=new URL(G,Z);return{isRelativeUrl:q&&q.hostname==="relative-site"&&q.protocol==="relative:",url:q}}function $(G,Z){if(!Z)return G;const q=G.nodes[0];let B;return Z[q.selector]&&Z["*"]?B=_T(Z[q.selector],Z["*"]):B=Z[q.selector]||Z["*"],B&&(G.nodes[0].nodes=q.nodes.reduce(X(B),[])),G}function F(G){return G.nodes[0].nodes.reduce(function(Z,q){return Z.push(`${q.prop}:${q.value}${q.important?" !important":""}`),Z},[]).join(";")}function X(G){return function(Z,q){return ha(G,q.prop)&&G[q.prop].some(function(Ne){return Ne.test(q.value)})&&Z.push(q),Z}}function re(G,Z,q){return Z?(G=G.split(/\s+/),G.filter(function(B){return Z.indexOf(B)!==-1||q.some(function(Ne){return Ne.test(B)})}).join(" ")):G}}const Fze={decodeEntities:!0};Uo.defaults={allowedTags:["address","article","aside","footer","header","h1","h2","h3","h4","h5","h6","hgroup","main","nav","section","blockquote","dd","div","dl","dt","figcaption","figure","hr","li","main","ol","p","pre","ul","a","abbr","b","bdi","bdo","br","cite","code","data","dfn","em","i","kbd","mark","q","rb","rp","rt","rtc","ruby","s","samp","small","span","strong","sub","sup","time","u","var","wbr","caption","col","colgroup","table","tbody","td","tfoot","th","thead","tr"],nonBooleanAttributes:["abbr","accept","accept-charset","accesskey","action","allow","alt","as","autocapitalize","autocomplete","blocking","charset","cite","class","color","cols","colspan","content","contenteditable","coords","crossorigin","data","datetime","decoding","dir","dirname","download","draggable","enctype","enterkeyhint","fetchpriority","for","form","formaction","formenctype","formmethod","formtarget","headers","height","hidden","high","href","hreflang","http-equiv","id","imagesizes","imagesrcset","inputmode","integrity","is","itemid","itemprop","itemref","itemtype","kind","label","lang","list","loading","low","max","maxlength","media","method","min","minlength","name","nonce","optimum","pattern","ping","placeholder","popover","popovertarget","popovertargetaction","poster","preload","referrerpolicy","rel","rows","rowspan","sandbox","scope","shape","size","sizes","slot","span","spellcheck","src","srcdoc","srclang","srcset","start","step","style","tabindex","target","title","translate","type","usemap","value","width","wrap","onauxclick","onafterprint","onbeforematch","onbeforeprint","onbeforeunload","onbeforetoggle","onblur","oncancel","oncanplay","oncanplaythrough","onchange","onclick","onclose","oncontextlost","oncontextmenu","oncontextrestored","oncopy","oncuechange","oncut","ondblclick","ondrag","ondragend","ondragenter","ondragleave","ondragover","ondragstart","ondrop","ondurationchange","onemptied","onended","onerror","onfocus","onformdata","onhashchange","oninput","oninvalid","onkeydown","onkeypress","onkeyup","onlanguagechange","onload","onloadeddata","onloadedmetadata","onloadstart","onmessage","onmessageerror","onmousedown","onmouseenter","onmouseleave","onmousemove","onmouseout","onmouseover","onmouseup","onoffline","ononline","onpagehide","onpageshow","onpaste","onpause","onplay","onplaying","onpopstate","onprogress","onratechange","onreset","onresize","onrejectionhandled","onscroll","onscrollend","onsecuritypolicyviolation","onseeked","onseeking","onselect","onslotchange","onstalled","onstorage","onsubmit","onsuspend","ontimeupdate","ontoggle","onunhandledrejection","onunload","onvolumechange","onwaiting","onwheel"],disallowedTagsMode:"discard",allowedAttributes:{a:["href","name","target"],img:["src","srcset","alt","title","width","height","loading"]},allowedEmptyAttributes:["alt"],selfClosing:["img","br","hr","area","base","basefont","input","link","meta"],allowedSchemes:["http","https","ftp","mailto","tel"],allowedSchemesByTag:{},allowedSchemesAppliedToAttributes:["href","src","cite"],allowProtocolRelative:!0,enforceHtmlBoundary:!1,parseStyleAttributes:!0};Uo.simpleTransform=function(e,t,n){return n=n===void 0?!0:n,t=t||{},function(a,s){let r;if(n)for(r in t)s[r]=t[r];else s=t;return{tagName:e,attribs:s}}};const zze=TE(Mze),ko=e=>zze(m9e(e,{target:"_blank"}),{allowedTags:["a"],disallowedTagsMode:"escape"}),dO=e=>(ot("data-v-2d66f184"),e=e(),it(),e),xze={id:"admin-app",class:"admin-card"},Bze={for:"admin_contact"},Gze=["value"],Hze=["disabled"],Vze={for:"max_users"},Kze=["disabled"],jze={class:"admin-help"},qze={class:"info-box"},Yze=dO(()=>d("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1)),Xze={for:"max_single_file_size"},Qze=["disabled"],Zze={for:"max_zip_file_size"},Jze=["disabled"],exe={for:"gpx_limit_import"},txe=["disabled"],nxe={for:"stats_workouts_limit"},axe=["disabled"],sxe={class:"admin-help"},rxe={class:"info-box"},oxe=dO(()=>d("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1)),ixe={class:"about-label",for:"about"},uxe={class:"textarea-description"},lxe=["innerHTML"],cxe={class:"privacy-policy-label",for:"privacy_policy"},dxe={class:"textarea-description"},Exe=["innerHTML"],fxe={key:5,class:"form-buttons"},pxe={class:"confirm",type:"submit"},mxe={key:6,class:"form-buttons"},_xe=te({__name:"AdminApplication",props:{appConfig:{},edition:{type:Boolean,default:!1}},setup(e){const t=e,{edition:n}=_e(t),a=$e(),s=ca(),r=Kt({admin_contact:"",max_users:0,max_single_file_size:0,max_zip_file_size:0,gpx_limit_import:0,about:"",privacy_policy:"",stats_workouts_limit:0}),o=w(()=>a.getters[j.GETTERS.ERROR_MESSAGES]);ft(()=>{t.appConfig&&i(t.appConfig)});function i(c){Object.keys(r).map(f=>{["max_single_file_size","max_zip_file_size"].includes(f)?r[f]=W7e(c[f]):["about","privacy_policy"].includes(f)?r[f]=c[f]!==null?c[f]:"":r[f]=c[f]})}function u(){i(t.appConfig),a.commit(j.MUTATIONS.EMPTY_ERROR_MESSAGES),s.push("/admin/application")}function l(){const c=Object.assign({},r);c.max_single_file_size*=1048576,c.max_zip_file_size*=1048576,a.dispatch(j.ACTIONS.UPDATE_APPLICATION_CONFIG,c)}return(c,f)=>{const E=oe("ErrorMessage"),p=oe("Card");return h(),I("div",xze,[W(p,null,{title:le(()=>[V(_(c.$t("admin.APP_CONFIG.TITLE")),1)]),content:le(()=>[d("form",{class:"admin-form",onSubmit:be(l,["prevent"])},[d("label",Bze,[V(_(c.$t("admin.APP_CONFIG.ADMIN_CONTACT"))+": ",1),!m(n)&&!r.admin_contact?(h(),I("input",{key:0,class:"no-contact",value:c.$t("admin.APP_CONFIG.NO_CONTACT_EMAIL"),disabled:""},null,8,Gze)):Le((h(),I("input",{key:1,id:"admin_contact",name:"admin_contact",type:"email","onUpdate:modelValue":f[0]||(f[0]=T=>r.admin_contact=T),disabled:!m(n)},null,8,Hze)),[[at,r.admin_contact]])]),d("label",Vze,[V(_(c.$t("admin.APP_CONFIG.MAX_USERS_LABEL"))+": ",1),Le(d("input",{id:"max_users",name:"max_users",type:"number",min:"0","onUpdate:modelValue":f[1]||(f[1]=T=>r.max_users=T),disabled:!m(n)},null,8,Kze),[[at,r.max_users]])]),d("div",jze,[d("span",qze,[Yze,V(" "+_(c.$t("admin.APP_CONFIG.MAX_USERS_HELP")),1)])]),d("label",Xze,[V(_(c.$t("admin.APP_CONFIG.SINGLE_UPLOAD_MAX_SIZE_LABEL"))+": ",1),Le(d("input",{id:"max_single_file_size",name:"max_single_file_size",type:"number",step:"0.1",min:"0","onUpdate:modelValue":f[2]||(f[2]=T=>r.max_single_file_size=T),disabled:!m(n)},null,8,Qze),[[at,r.max_single_file_size]])]),d("label",Zze,[V(_(c.$t("admin.APP_CONFIG.ZIP_UPLOAD_MAX_SIZE_LABEL"))+": ",1),Le(d("input",{id:"max_zip_file_size",name:"max_zip_file_size",type:"number",step:"0.1",min:"0","onUpdate:modelValue":f[3]||(f[3]=T=>r.max_zip_file_size=T),disabled:!m(n)},null,8,Jze),[[at,r.max_zip_file_size]])]),d("label",exe,[V(_(c.$t("admin.APP_CONFIG.MAX_FILES_IN_ZIP_LABEL"))+": ",1),Le(d("input",{id:"gpx_limit_import",name:"gpx_limit_import",type:"number",min:"0","onUpdate:modelValue":f[4]||(f[4]=T=>r.gpx_limit_import=T),disabled:!m(n)},null,8,txe),[[at,r.gpx_limit_import]])]),d("label",nxe,[V(_(c.$t("admin.APP_CONFIG.STATS_WORKOUTS_LIMIT_LABEL"))+": ",1),Le(d("input",{id:"stats_workouts_limit",name:"stats_workouts_limit",type:"number",min:"0","onUpdate:modelValue":f[5]||(f[5]=T=>r.stats_workouts_limit=T),disabled:!m(n)},null,8,axe),[[at,r.stats_workouts_limit]])]),d("div",sxe,[d("span",rxe,[oxe,V(" "+_(c.$t("admin.APP_CONFIG.STATS_WORKOUTS_LIMIT_HELP")),1)])]),d("label",ixe,_(c.$t("admin.ABOUT.TEXT"))+": ",1),d("span",uxe,_(c.$t("admin.ABOUT.DESCRIPTION")),1),m(n)?Le((h(),I("textarea",{key:0,id:"about",name:"about",rows:"10","onUpdate:modelValue":f[6]||(f[6]=T=>r.about=T)},null,512)),[[at,r.about]]):(h(),I("div",{key:1,innerHTML:m(ys)(m(ko)(r.about?r.about:c.$t("admin.NO_TEXT_ENTERED"))),class:"textarea-content"},null,8,lxe)),d("label",cxe,_(He(c.$t("privacy_policy.TITLE")))+": ",1),d("span",dxe,_(c.$t("admin.PRIVACY_POLICY_DESCRIPTION")),1),m(n)?Le((h(),I("textarea",{key:2,id:"privacy_policy",name:"privacy_policy",rows:"20","onUpdate:modelValue":f[7]||(f[7]=T=>r.privacy_policy=T)},null,512)),[[at,r.privacy_policy]]):(h(),I("div",{key:3,innerHTML:m(ys)(m(ko)(r.privacy_policy?r.privacy_policy:c.$t("admin.NO_TEXT_ENTERED"))),class:"textarea-content"},null,8,Exe)),o.value?(h(),Y(E,{key:4,message:o.value},null,8,["message"])):M("",!0),m(n)?(h(),I("div",fxe,[d("button",pxe,_(c.$t("buttons.SUBMIT")),1),d("button",{class:"cancel",onClick:be(u,["prevent"])},_(c.$t("buttons.CANCEL")),1)])):(h(),I("div",mxe,[d("button",{class:"confirm",onClick:f[8]||(f[8]=be(T=>c.$router.push("/admin/application/edit"),["prevent"]))},_(c.$t("buttons.EDIT")),1),d("button",{class:"cancel",onClick:f[9]||(f[9]=be(T=>c.$router.push("/admin"),["prevent"]))},_(c.$t("admin.BACK_TO_ADMIN")),1)]))],32)]),_:1})])}}}),hT=ie(_xe,[["__scopeId","data-v-2d66f184"]]),Txe=(e,t)=>{const n=e.translatedLabel.toLowerCase(),a=t.translatedLabel.toLowerCase();return n>a?1:ne.map(n=>({...n,translatedLabel:t(`equipment_types.${n.label}.LABEL`)})).sort(Txe),Uf=(e,t)=>{const n=e.label.toLowerCase(),a=t.label.toLowerCase();return n>a?1:na?e.filter(r=>fO[r.equipment_type.label].includes(a.label)).filter(r=>n=="all"?!0:n=="withIncludedIds"&&s.includes(r.id)||r.is_active).map(r=>({...r,label:r.is_active?r.label:`${r.label} (${t("common.INACTIVE")})`})).sort(Uf):[],kf=e=>(ot("data-v-d329b43d"),e=e(),it(),e),hxe={id:"admin-equipment-types",class:"admin-card"},Sxe={class:"responsive-table"},Axe=kf(()=>d("th",null,"#",-1)),Oxe={class:"text-left"},gxe={class:"text-left equipment-type-action"},Ixe={class:"text-center"},Rxe=kf(()=>d("span",{class:"cell-heading"},"id",-1)),Nxe={class:"cell-heading"},vxe={class:"equipment-type-label"},bxe={class:"cell-heading"},Cxe={class:"text-center"},Dxe={class:"cell-heading"},Pxe={class:"equipment-type-action"},Lxe={class:"cell-heading"},yxe={class:"action-button"},$xe=["onClick"],Uxe={key:0,class:"has-equipments"},kxe=kf(()=>d("i",{class:"fa fa-warning","aria-hidden":"true"},null,-1)),wxe=te({__name:"AdminEquipmentTypes",setup(e){const{t}=yt(),n=$e(),a=w(()=>EO(n.getters[Me.GETTERS.EQUIPMENT_TYPES],t)),s=w(()=>n.getters[j.GETTERS.ERROR_MESSAGES]);ft(()=>r());function r(){n.dispatch(Me.ACTIONS.GET_EQUIPMENT_TYPES)}function o(i,u){n.dispatch(Me.ACTIONS.UPDATE_EQUIPMENT_TYPE,{id:i,isActive:u})}return(i,u)=>{const l=oe("EquipmentTypeImage"),c=oe("ErrorMessage"),f=oe("Card");return h(),I("div",hxe,[W(f,null,{title:le(()=>[V(_(i.$t("admin.EQUIPMENT_TYPES.TITLE")),1)]),content:le(()=>[d("button",{class:"top-button",onClick:u[0]||(u[0]=be(E=>i.$router.push("/admin"),["prevent"]))},_(i.$t("admin.BACK_TO_ADMIN")),1),d("div",Sxe,[d("table",null,[d("thead",null,[d("tr",null,[Axe,d("th",null,_(i.$t("admin.EQUIPMENT_TYPES.TABLE.IMAGE")),1),d("th",Oxe,_(i.$t("admin.EQUIPMENT_TYPES.TABLE.LABEL")),1),d("th",null,_(i.$t("admin.EQUIPMENT_TYPES.TABLE.ACTIVE")),1),d("th",gxe,_(i.$t("admin.ACTION")),1)])]),d("tbody",null,[(h(!0),I(me,null,Pe(a.value,E=>(h(),I("tr",{key:E.id},[d("td",Ixe,[Rxe,V(" "+_(E.id),1)]),d("td",null,[d("span",Nxe,_(i.$t("admin.EQUIPMENT_TYPES.TABLE.IMAGE")),1),W(l,{title:E.translatedLabel,"equipment-type-label":E.label},null,8,["title","equipment-type-label"])]),d("td",vxe,[d("span",bxe,_(i.$t("admin.EQUIPMENT_TYPES.TABLE.LABEL")),1),V(" "+_(E.translatedLabel),1)]),d("td",Cxe,[d("span",Dxe,_(i.$t("admin.EQUIPMENT_TYPES.TABLE.ACTIVE")),1),d("i",{class:pe(`fa fa${E.is_active?"-check":""}`),"aria-hidden":"true"},null,2)]),d("td",Pxe,[d("span",Lxe,_(i.$t("admin.ACTION")),1),d("div",yxe,[d("button",{class:pe({danger:E.is_active}),onClick:p=>o(E.id,!E.is_active)},_(i.$t(`buttons.${E.is_active?"DIS":"EN"}ABLE`)),11,$xe),E.has_equipments?(h(),I("span",Uxe,[kxe,V(" "+_(i.$t("admin.EQUIPMENT_TYPES.TABLE.HAS_EQUIPMENTS")),1)])):M("",!0)])])]))),128))])]),s.value?(h(),Y(c,{key:0,message:s.value},null,8,["message"])):M("",!0),d("button",{onClick:u[1]||(u[1]=be(E=>i.$router.push("/admin"),["prevent"]))},_(i.$t("admin.BACK_TO_ADMIN")),1)])]),_:1})])}}}),Mxe=ie(wxe,[["__scopeId","data-v-d329b43d"]]),Wxe={class:"stat-card"},Fxe={class:"stat-content box"},zxe={class:"stat-icon"},xxe={class:"stat-details"},Bxe={class:"stat-huge"},Gxe={class:"stat"},Ia=te({__name:"StatCard",props:{icon:{},text:{},value:{}},setup(e){const t=e,{icon:n,text:a,value:s}=_e(t);return(r,o)=>(h(),I("div",Wxe,[d("div",Fxe,[d("div",zxe,[d("i",{class:pe(["fa",`fa-${m(n)}`])},null,2)]),d("div",xxe,[d("div",Bxe,_(m(s)),1),d("div",Gxe,_(m(a)),1)])])]))}}),Hxe={id:"user-stats"},Vxe=te({__name:"AppStatsCards",props:{appStatistics:{}},setup(e){const t=e,{appStatistics:n}=_e(t),a=w(()=>VS(n.value.uploads_dir_size));return(s,r)=>(h(),I("div",Hxe,[W(Ia,{icon:"users",value:m(n).users,text:s.$t("admin.USER",m(n).users)},null,8,["value","text"]),W(Ia,{icon:"tags",value:m(n).sports,text:s.$t("workouts.SPORT",m(n).sports)},null,8,["value","text"]),W(Ia,{icon:"calendar",value:m(n).workouts,text:s.$t("workouts.WORKOUT",m(n).workouts)},null,8,["value","text"]),W(Ia,{icon:"folder-open",value:a.value.size,text:a.value.suffix},null,8,["value","text"])]))}}),mO=e=>(ot("data-v-69570181"),e=e(),it(),e),Kxe={id:"admin-menu",class:"center-card"},jxe={class:"admin-menu description-list"},qxe={class:"application-config-details"},Yxe=mO(()=>d("br",null,null,-1)),Xxe={class:"registration-status"},Qxe={key:0,class:"email-sending-status"},Zxe=mO(()=>d("i",{class:"fa fa-exclamation-triangle","aria-hidden":"true"},null,-1)),Jxe=te({__name:"AdminMenu",props:{appConfig:{},appStatistics:{default:()=>({})}},setup(e){const t=e,{appConfig:n,appStatistics:a}=_e(t);return St(()=>{const s=document.getElementById("adminLink");s&&s.focus()}),(s,r)=>{const o=oe("router-link");return h(),I("div",Kxe,[W(oS,null,{title:le(()=>[V(_(s.$t("admin.ADMINISTRATION")),1)]),content:le(()=>[W(Vxe,{appStatistics:m(a)},null,8,["appStatistics"]),d("div",jxe,[d("dl",null,[d("dt",null,[W(o,{id:"adminLink",to:"/admin/application"},{default:le(()=>[V(_(s.$t("admin.APPLICATION")),1)]),_:1})]),d("dd",qxe,[V(_(s.$t("admin.UPDATE_APPLICATION_DESCRIPTION")),1),Yxe,d("span",Xxe,_(s.$t(`admin.REGISTRATION_${m(n).is_registration_enabled?"ENABLED":"DISABLED"}`)),1),m(n).is_email_sending_enabled?M("",!0):(h(),I("span",Qxe,[Zxe,V(" "+_(s.$t("admin.EMAIL_SENDING_DISABLED")),1)]))]),d("dt",null,[W(o,{to:"/admin/equipment-types"},{default:le(()=>[V(_(He(s.$t("equipments.EQUIPMENT_TYPE",0))),1)]),_:1})]),d("dd",null,_(s.$t("admin.ENABLE_DISABLE_EQUIPMENT_TYPES")),1),d("dt",null,[W(o,{to:"/admin/sports"},{default:le(()=>[V(_(He(s.$t("workouts.SPORT",0))),1)]),_:1})]),d("dd",null,_(s.$t("admin.ENABLE_DISABLE_SPORTS")),1),d("dt",null,[W(o,{to:"/admin/users"},{default:le(()=>[V(_(He(s.$t("admin.USER",0))),1)]),_:1})]),d("dd",null,_(s.$t("admin.ADMIN_RIGHTS_DELETE_USER_ACCOUNT")),1)])])]),_:1})])}}}),eBe=ie(Jxe,[["__scopeId","data-v-69570181"]]),wf={"Cycling (Sport)":"#4c9792","Cycling (Trekking)":"#a8af88","Cycling (Transport)":"#88af98","Cycling (Virtual)":"#64a360",Hiking:"#bb757c","Mountain Biking":"#d4b371","Mountain Biking (Electric)":"#fc9d6f",Mountaineering:"#48b3b7","Open Water Swimming":"#4058a4",Paragliding:"#c23c50",Rowing:"#fcce72",Running:"#835b83","Skiing (Alpine)":"#67a4bd","Skiing (Cross Country)":"#9498d0",Snowshoes:"#5780a8",Swimrun:"#3d9fc9",Trail:"#09a98a",Walking:"#838383"},tBe=e=>{const t={};return e.map(n=>t[n.id]=n.color?n.color:wf[n.label]),t},nBe=(e,t)=>{const n=e.translatedLabel.toLowerCase(),a=t.translatedLabel.toLowerCase();return n>a?1:ne.filter(s=>n==="all"?!0:a.includes(s.id)||s[n]).map(s=>({...s,translatedLabel:t(`sports.${s.label}.LABEL`)})).sort(nBe),Mf=(e,t)=>t.filter(n=>n.id===e.sport_id).map(n=>n.label)[0],Wf=(e,t)=>t.filter(n=>n.id===e.sport_id).map(n=>n.color)[0],Ff=e=>(ot("data-v-56f637e8"),e=e(),it(),e),aBe={id:"admin-sports",class:"admin-card"},sBe={class:"responsive-table"},rBe=Ff(()=>d("th",null,"#",-1)),oBe={class:"text-left"},iBe={class:"text-left sport-action"},uBe={class:"text-center"},lBe=Ff(()=>d("span",{class:"cell-heading"},"id",-1)),cBe={class:"cell-heading"},dBe={class:"sport-label"},EBe={class:"cell-heading"},fBe={class:"text-center"},pBe={class:"cell-heading"},mBe={class:"sport-action"},_Be={class:"cell-heading"},TBe={class:"action-button"},hBe=["onClick"],SBe={key:0,class:"has-workouts"},ABe=Ff(()=>d("i",{class:"fa fa-warning","aria-hidden":"true"},null,-1)),OBe=te({__name:"AdminSports",setup(e){const{t}=yt(),n=$e(),a=w(()=>Fn(n.getters[Pt.GETTERS.SPORTS],t)),s=w(()=>n.getters[j.GETTERS.ERROR_MESSAGES]);ft(()=>n.dispatch(Pt.ACTIONS.GET_SPORTS,!0));function r(o,i){n.dispatch(Pt.ACTIONS.UPDATE_SPORTS,{id:o,isActive:i})}return(o,i)=>{const u=oe("SportImage"),l=oe("ErrorMessage"),c=oe("Card");return h(),I("div",aBe,[W(c,null,{title:le(()=>[V(_(o.$t("admin.SPORTS.TITLE")),1)]),content:le(()=>[d("button",{class:"top-button",onClick:i[0]||(i[0]=be(f=>o.$router.push("/admin"),["prevent"]))},_(o.$t("admin.BACK_TO_ADMIN")),1),d("div",sBe,[d("table",null,[d("thead",null,[d("tr",null,[rBe,d("th",null,_(o.$t("admin.SPORTS.TABLE.IMAGE")),1),d("th",oBe,_(o.$t("admin.SPORTS.TABLE.LABEL")),1),d("th",null,_(o.$t("admin.SPORTS.TABLE.ACTIVE")),1),d("th",iBe,_(o.$t("admin.ACTION")),1)])]),d("tbody",null,[(h(!0),I(me,null,Pe(a.value,f=>(h(),I("tr",{key:f.id},[d("td",uBe,[lBe,V(" "+_(f.id),1)]),d("td",null,[d("span",cBe,_(o.$t("admin.SPORTS.TABLE.IMAGE")),1),W(u,{title:f.translatedLabel,"sport-label":f.label,color:f.color},null,8,["title","sport-label","color"])]),d("td",dBe,[d("span",EBe,_(o.$t("admin.SPORTS.TABLE.LABEL")),1),V(" "+_(f.translatedLabel),1)]),d("td",fBe,[d("span",pBe,_(o.$t("admin.SPORTS.TABLE.ACTIVE")),1),d("i",{class:pe(`fa fa${f.is_active?"-check":""}`),"aria-hidden":"true"},null,2)]),d("td",mBe,[d("span",_Be,_(o.$t("admin.ACTION")),1),d("div",TBe,[d("button",{class:pe({danger:f.is_active}),onClick:E=>r(f.id,!f.is_active)},_(o.$t(`buttons.${f.is_active?"DIS":"EN"}ABLE`)),11,hBe),f.has_workouts?(h(),I("span",SBe,[ABe,V(" "+_(o.$t("admin.SPORTS.TABLE.HAS_WORKOUTS")),1)])):M("",!0)])])]))),128))])]),s.value?(h(),Y(l,{key:0,message:s.value},null,8,["message"])):M("",!0),d("button",{onClick:i[1]||(i[1]=be(f=>o.$router.push("/admin"),["prevent"]))},_(o.$t("admin.BACK_TO_ADMIN")),1)])]),_:1})])}}}),gBe=ie(OBe,[["__scopeId","data-v-56f637e8"]]),IBe={class:"table-selects"},RBe=["value"],NBe=["value"],vBe=["value"],bBe=["value"],CBe=["value"],DBe=["value"],PBe=te({__name:"FilterSelects",props:{order_by:{},query:{},sort:{},message:{}},emits:["updateSelect"],setup(e,{emit:t}){const n=e,a=t,{order_by:s,query:r,sort:o,message:i}=_e(n),u=[10,25,50,100];function l(c){a("updateSelect",c.target.id,c.target.value)}return(c,f)=>(h(),I("div",IBe,[d("label",null,[V(_(c.$t("common.SELECTS.ORDER_BY.LABEL"))+": ",1),d("select",{name:"order_by",id:"order_by",value:m(r).order_by,onChange:l},[(h(!0),I(me,null,Pe(m(s),E=>(h(),I("option",{value:E,key:E},_(c.$t(`${m(i)}.${E.toUpperCase()}`)),9,NBe))),128))],40,RBe)]),d("label",null,[V(_(c.$t("common.SELECTS.ORDER.LABEL"))+": ",1),d("select",{name:"order",id:"order",value:m(r).order,onChange:l},[(h(!0),I(me,null,Pe(m(o),E=>(h(),I("option",{value:E,key:E},_(c.$t(`common.SELECTS.ORDER.${E.toUpperCase()}`)),9,bBe))),128))],40,vBe)]),d("label",null,[V(_(c.$t("common.SELECTS.PER_PAGE.LABEL"))+": ",1),d("select",{name:"per_page",id:"per_page",value:m(r).per_page,onChange:l},[(h(),I(me,null,Pe(u,E=>d("option",{value:E,key:E},_(E),9,DBe)),64))],40,CBe)])]))}}),_O=ie(PBe,[["__scopeId","data-v-fc86ab3c"]]),zf=["asc","desc"],TO=1,LBe=10,rE=(e,t)=>e&&typeof e=="string"&&+e>0?+e:t,ST=(e,t,n)=>e&&typeof e=="string"&&t.includes(e)?e:n,oE=(e,t,n,a)=>{const r=(a||{}).defaultSort||"asc",o={};return o.page=rE(e.page,TO),o.per_page=rE(e.per_page,LBe),o.order=ST(e.order,zf,r),o.order_by=ST(e.order_by,t,n),typeof e.q=="string"?o.q=e.q:delete o.q,typeof e.notes=="string"?o.notes=e.notes:delete o.notes,o},yBe=["equipment_id","from","to","ave_speed_from","ave_speed_to","max_speed_from","max_speed_to","distance_from","distance_to","duration_from","duration_to","sport_id","title"],js=(e,t=1)=>Array.from({length:e-t+1},(n,a)=>t+a),$Be=(e,t)=>{if(e<0)return[];if(e<9)return js(e);let n=[1,2];return t<4?n=n.concat([3,4,5]):t<6?n=n.concat(js(t+2,3)):(n=n.concat(["..."]),t=e-2&&+n[n.length-1](ot("data-v-f1388e09"),e=e(),it(),e),UBe={class:"pagination-center","aria-label":"navigation"},kBe={class:"pagination"},wBe=hO(()=>d("i",{class:"fa fa-chevron-left","aria-hidden":"true"},null,-1)),MBe={key:0},WBe=hO(()=>d("i",{class:"fa fa-chevron-right","aria-hidden":"true"},null,-1)),FBe=te({__name:"Pagination",props:{pagination:{},path:{},query:{}},setup(e){const t=e,{pagination:n,path:a,query:s}=_e(t);function r(o,i){const u=Object.assign({},s.value);return u.page=i?o+i:o,u}return(o,i)=>{const u=oe("router-link");return h(),I("nav",UBe,[d("ul",kBe,[d("li",{class:pe(["page-prev",{disabled:!m(n).has_prev}])},[W(u,{class:"page-link",to:{path:m(a),query:r(m(n).page,-1)},disabled:!m(n).has_prev,tabindex:m(n).has_prev?0:-1},{default:le(({navigate:l})=>[$t(o.$slots,"default",{onClick:c=>m(n).has_next?l:null},()=>[V(_(o.$t("common.PREVIOUS"))+" ",1),wBe],!0)]),_:3},8,["to","disabled","tabindex"])],2),(h(!0),I(me,null,Pe(m($Be)(m(n).pages,m(n).page),l=>(h(),I("li",{key:l,class:pe(["page",{active:l===m(n).page}])},[l==="..."?(h(),I("span",MBe," ... ")):(h(),Y(u,{key:1,class:"page-link",to:{path:m(a),query:r(+l)}},{default:le(()=>[V(_(l),1)]),_:2},1032,["to"]))],2))),128)),d("li",{class:pe(["page-next",{disabled:!m(n).has_next}])},[W(u,{class:"page-link",to:{path:m(a),query:r(m(n).page,1)},disabled:!m(n).has_next,tabindex:m(n).has_next?0:-1},{default:le(({navigate:l})=>[$t(o.$slots,"default",{onClick:c=>m(n).has_next?l:null},()=>[V(_(o.$t("common.NEXT"))+" ",1),WBe],!0)]),_:3},8,["to","disabled","tabindex"])],2)])])}}}),il=ie(FBe,[["__scopeId","data-v-f1388e09"]]),zBe={class:"users-filters"},xBe={class:"search-username"},BBe=["placeholder"],GBe=te({__name:"UsersNameFilter",emits:["filterOnUsername"],setup(e,{emit:t}){const n=Lt(),a=de(n.query.q?n.query.q:""),s=t;function r(){a.value!==""&&s("filterOnUsername",a)}function o(){a.value="",s("filterOnUsername",a.value)}return(i,u)=>(h(),I("div",zBe,[d("div",xBe,[Le(d("input",{id:"username",name:"username","onUpdate:modelValue":u[0]||(u[0]=l=>a.value=l),onKeyup:Je(r,["enter"]),placeholder:i.$t("user.FILTER_ON_USERNAME")},null,40,BBe),[[at,a.value,void 0,{trim:!0}]]),a.value!==""?(h(),I("i",{key:0,class:"fa fa-times","aria-hidden":"true",onClick:o})):M("",!0)]),d("i",{class:pe(["fa fa-search",{"fa-disabled":a.value===""}]),"aria-hidden":"true",onClick:r},null,2)]))}}),HBe=ie(GBe,[["__scopeId","data-v-553040c7"]]);var iE={exports:{}};(function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=n;function n(a){if(a===null||a===!0||a===!1)return NaN;var s=Number(a);return isNaN(s)?s:s<0?Math.ceil(s):Math.floor(s)}e.exports=t.default})(iE,iE.exports);var VBe=iE.exports;const KBe=TE(VBe);var uE={exports:{}};(function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=n;function n(a){var s=new Date(Date.UTC(a.getFullYear(),a.getMonth(),a.getDate(),a.getHours(),a.getMinutes(),a.getSeconds(),a.getMilliseconds()));return s.setUTCFullYear(a.getFullYear()),a.getTime()-s.getTime()}e.exports=t.default})(uE,uE.exports);var jBe=uE.exports;const AT=TE(jBe);function qBe(e,t){var n=ZBe(t);return n.formatToParts?XBe(n,e):QBe(n,e)}var YBe={year:0,month:1,day:2,hour:3,minute:4,second:5};function XBe(e,t){try{for(var n=e.formatToParts(t),a=[],s=0;s=0&&(a[r]=parseInt(n[s].value,10))}return a}catch(o){if(o instanceof RangeError)return[NaN];throw o}}function QBe(e,t){var n=e.format(t),a=/(\d+)\/(\d+)\/(\d+),? (\d+):(\d+):(\d+)/.exec(n);return[a[3],a[1],a[2],a[4],a[5],a[6]]}var kc={};function ZBe(e){if(!kc[e]){var t=new Intl.DateTimeFormat("en-US",{hourCycle:"h23",timeZone:"America/New_York",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"}).format(new Date("2014-06-25T04:00:00.123Z")),n=t==="06/25/2014, 00:00:00"||t==="‎06‎/‎25‎/‎2014‎ ‎00‎:‎00‎:‎00";kc[e]=n?new Intl.DateTimeFormat("en-US",{hourCycle:"h23",timeZone:e,year:"numeric",month:"numeric",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"}):new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:e,year:"numeric",month:"numeric",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"})}return kc[e]}function SO(e,t,n,a,s,r,o){var i=new Date(0);return i.setUTCFullYear(e,t,n),i.setUTCHours(a,s,r,o),i}var OT=36e5,JBe=6e4,wc={timezone:/([Z+-].*)$/,timezoneZ:/^(Z)$/,timezoneHH:/^([+-]\d{2})$/,timezoneHHMM:/^([+-])(\d{2}):?(\d{2})$/};function AO(e,t,n){var a,s;if(!e||(a=wc.timezoneZ.exec(e),a))return 0;var r;if(a=wc.timezoneHH.exec(e),a)return r=parseInt(a[1],10),gT(r)?-(r*OT):NaN;if(a=wc.timezoneHHMM.exec(e),a){r=parseInt(a[2],10);var o=parseInt(a[3],10);return gT(r,o)?(s=Math.abs(r)*OT+o*JBe,a[1]==="+"?-s:s):NaN}if(nGe(e)){t=new Date(t||Date.now());var i=n?t:eGe(t),u=lE(i,e),l=n?u:tGe(t,u,e);return-l}return NaN}function eGe(e){return SO(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds())}function lE(e,t){var n=qBe(e,t),a=SO(n[0],n[1]-1,n[2],n[3]%24,n[4],n[5],0).getTime(),s=e.getTime(),r=s%1e3;return s-=r>=0?r:1e3+r,a-s}function tGe(e,t,n){var a=e.getTime(),s=a-t,r=lE(new Date(s),n);if(t===r)return t;s-=r-t;var o=lE(new Date(s),n);return r===o?r:Math.max(r,o)}function gT(e,t){return-23<=e&&e<=23&&(t==null||0<=t&&t<=59)}var IT={};function nGe(e){if(IT[e])return!0;try{return new Intl.DateTimeFormat(void 0,{timeZone:e}),IT[e]=!0,!0}catch{return!1}}var aGe=/(Z|[+-]\d{2}(?::?\d{2})?| UTC| [a-zA-Z]+\/[a-zA-Z_]+(?:\/[a-zA-Z_]+)?)$/,Mc=36e5,RT=6e4,sGe=2,sn={dateTimePattern:/^([0-9W+-]+)(T| )(.*)/,datePattern:/^([0-9W+-]+)(.*)/,plainTime:/:/,YY:/^(\d{2})$/,YYY:[/^([+-]\d{2})$/,/^([+-]\d{3})$/,/^([+-]\d{4})$/],YYYY:/^(\d{4})/,YYYYY:[/^([+-]\d{4})/,/^([+-]\d{5})/,/^([+-]\d{6})/],MM:/^-(\d{2})$/,DDD:/^-?(\d{3})$/,MMDD:/^-?(\d{2})-?(\d{2})$/,Www:/^-?W(\d{2})$/,WwwD:/^-?W(\d{2})-?(\d{1})$/,HH:/^(\d{2}([.,]\d*)?)$/,HHMM:/^(\d{2}):?(\d{2}([.,]\d*)?)$/,HHMMSS:/^(\d{2}):?(\d{2}):?(\d{2}([.,]\d*)?)$/,timeZone:aGe};function rGe(e,t){if(arguments.length<1)throw new TypeError("1 argument required, but only "+arguments.length+" present");if(e===null)return new Date(NaN);var n={},a=n.additionalDigits==null?sGe:KBe(n.additionalDigits);if(a!==2&&a!==1&&a!==0)throw new RangeError("additionalDigits must be 0, 1 or 2");if(e instanceof Date||typeof e=="object"&&Object.prototype.toString.call(e)==="[object Date]")return new Date(e.getTime());if(typeof e=="number"||Object.prototype.toString.call(e)==="[object Number]")return new Date(e);if(!(typeof e=="string"||Object.prototype.toString.call(e)==="[object String]"))return new Date(NaN);var s=oGe(e),r=iGe(s.date,a),o=r.year,i=r.restDateString,u=uGe(i,o);if(isNaN(u))return new Date(NaN);if(u){var l=u.getTime(),c=0,f;if(s.time&&(c=lGe(s.time),isNaN(c)))return new Date(NaN);if(s.timeZone||n.timeZone){if(f=AO(s.timeZone||n.timeZone,new Date(l+c)),isNaN(f))return new Date(NaN)}else f=AT(new Date(l+c)),f=AT(new Date(l+c+f));return new Date(l+c+f)}else return new Date(NaN)}function oGe(e){var t={},n=sn.dateTimePattern.exec(e),a;if(n?(t.date=n[1],a=n[3]):(n=sn.datePattern.exec(e),n?(t.date=n[1],a=n[2]):(t.date=null,a=e)),a){var s=sn.timeZone.exec(a);s?(t.time=a.replace(s[1],""),t.timeZone=s[1].trim()):t.time=a}return t}function iGe(e,t){var n=sn.YYY[t],a=sn.YYYYY[t],s;if(s=sn.YYYY.exec(e)||a.exec(e),s){var r=s[1];return{year:parseInt(r,10),restDateString:e.slice(r.length)}}if(s=sn.YY.exec(e)||n.exec(e),s){var o=s[1];return{year:parseInt(o,10)*100,restDateString:e.slice(o.length)}}return{year:null}}function uGe(e,t){if(t===null)return null;var n,a,s,r;if(e.length===0)return a=new Date(0),a.setUTCFullYear(t),a;if(n=sn.MM.exec(e),n)return a=new Date(0),s=parseInt(n[1],10)-1,vT(t,s)?(a.setUTCFullYear(t,s),a):new Date(NaN);if(n=sn.DDD.exec(e),n){a=new Date(0);var o=parseInt(n[1],10);return EGe(t,o)?(a.setUTCFullYear(t,0,o),a):new Date(NaN)}if(n=sn.MMDD.exec(e),n){a=new Date(0),s=parseInt(n[1],10)-1;var i=parseInt(n[2],10);return vT(t,s,i)?(a.setUTCFullYear(t,s,i),a):new Date(NaN)}if(n=sn.Www.exec(e),n)return r=parseInt(n[1],10)-1,bT(t,r)?NT(t,r):new Date(NaN);if(n=sn.WwwD.exec(e),n){r=parseInt(n[1],10)-1;var u=parseInt(n[2],10)-1;return bT(t,r,u)?NT(t,r,u):new Date(NaN)}return null}function lGe(e){var t,n,a;if(t=sn.HH.exec(e),t)return n=parseFloat(t[1].replace(",",".")),Wc(n)?n%24*Mc:NaN;if(t=sn.HHMM.exec(e),t)return n=parseInt(t[1],10),a=parseFloat(t[2].replace(",",".")),Wc(n,a)?n%24*Mc+a*RT:NaN;if(t=sn.HHMMSS.exec(e),t){n=parseInt(t[1],10),a=parseInt(t[2],10);var s=parseFloat(t[3].replace(",","."));return Wc(n,a,s)?n%24*Mc+a*RT+s*1e3:NaN}return null}function NT(e,t,n){t=t||0,n=n||0;var a=new Date(0);a.setUTCFullYear(e,0,4);var s=a.getUTCDay()||7,r=t*7+n+1-s;return a.setUTCDate(a.getUTCDate()+r),a}var cGe=[31,28,31,30,31,30,31,31,30,31,30,31],dGe=[31,29,31,30,31,30,31,31,30,31,30,31];function OO(e){return e%400===0||e%4===0&&e%100!==0}function vT(e,t,n){if(t<0||t>11)return!1;if(n!=null){if(n<1)return!1;var a=OO(e);if(a&&n>dGe[t]||!a&&n>cGe[t])return!1}return!0}function EGe(e,t){if(t<1)return!1;var n=OO(e);return!(n&&t>366||!n&&t>365)}function bT(e,t,n){return!(t<0||t>52||n!=null&&(n<0||n>6))}function Wc(e,t,n){return!(e!=null&&(e<0||e>=25)||t!=null&&(t<0||t>=60)||n!=null&&(n<0||n>=60))}function fGe(e,t,n){var a=rGe(e,n),s=AO(t,a,!0),r=new Date(a.getTime()-s),o=new Date(0);return o.setFullYear(r.getUTCFullYear(),r.getUTCMonth(),r.getUTCDate()),o.setHours(r.getUTCHours(),r.getUTCMinutes(),r.getUTCSeconds(),r.getUTCMilliseconds()),o}const{locale:ul}=Lr.global,pGe=(e,t,n)=>{switch(e){case"week":return Ll(t,{weekStartsOn:n?1:0});case"year":return YE(t);case"month":return Xo(t);default:throw new Error(`Invalid duration, expected: "week", "month", "year", got: "${e}"`)}},mGe=(e,t)=>{switch(e){case"week":return qo(t,7);case"year":return Tu(t,1);case"month":return dr(t,1);default:throw new Error(`Invalid duration, expected: "week", "month", "year", got: "${e}"`)}},Ql=(e,t)=>fGe(new Date(e),t),CT=(e,t)=>{const n=Xo(e),a=Yo(e),s=t?1:0;return{start:Ll(n,{weekStartsOn:s}),end:XE(a,{weekStartsOn:s})}},gO=(e,t=null,n=null)=>(t||(t="yyyy/MM/dd"),t=ls(t,ul.value),n||(n="HH:mm"),{workout_date:un(e,t,{locale:Ls[ul.value]}),workout_time:un(e,n)}),_Ge=["MM/dd/yyyy","dd/MM/yyyy","yyyy-MM-dd","date_string"],IO={bg:"d MMMM yyyy",cs:"d. MMM yyyy",de:"do MMM yyyy",en:"MMM. do, yyyy",es:"d MMM yyyy",eu:"yyyy MMM. d",fr:"d MMM yyyy",gl:"d MMM yyyy",it:"d MMM yyyy",nb:"do MMM yyyy",nl:"d MMM yyyy",pl:"d MMM yyyy",pt:"d MMM yyyy"},ls=(e,t)=>e==="date_string"?IO[t]:e,zn=(e,t,n,a=!0,s=null,r=!1)=>{s||(s=ul.value);const o=a?r?" HH:mm:ss":" HH:mm":"";return un(Ql(e,t),`${ls(n,s)}${o}`,{locale:Ls[s]})},TGe=(e,t,n=null)=>{const a=n||ul.value,s=[];return _Ge.map(r=>{const o=ls(r,a);s.push({label:`${o} - ${zn(e,t,o,!1,a)}`,value:r})}),s},hGe=e=>(ot("data-v-dc27c3d6"),e=e(),it(),e),SGe={id:"admin-users",class:"admin-card"},AGe={key:0,class:"no-users"},OGe={key:1,class:"responsive-table"},gGe=hGe(()=>d("th",null,"#",-1)),IGe={class:"left-text"},RGe={class:"left-text"},NGe={class:"left-text"},vGe={class:"cell-heading"},bGe={class:"cell-heading"},CGe={class:"cell-heading"},DGe={class:"cell-heading"},PGe={class:"text-center"},LGe={class:"cell-heading"},yGe={class:"text-center"},$Ge={class:"cell-heading"},UGe={class:"text-center"},kGe={class:"cell-heading"},wGe={class:"text-center"},MGe={class:"cell-heading"},WGe=["disabled","onClick"],DT="created_at",FGe=te({__name:"AdminUsers",setup(e){const t=$e(),n=Lt(),a=ca(),s=["is_active","admin","created_at","username","workouts_count"];let r=Kt(oE(n.query,s,DT));const o=w(()=>t.getters[Q.GETTERS.AUTH_USER_PROFILE]),i=w(()=>t.getters[Be.GETTERS.USERS]),u=w(()=>t.getters[Be.GETTERS.USERS_PAGINATION]),l=w(()=>t.getters[j.GETTERS.ERROR_MESSAGES]);ft(()=>c(r));function c(T){t.dispatch(Be.ACTIONS.GET_USERS,T)}function f(T){p("q",T.value)}function E(T,O){t.dispatch(Be.ACTIONS.UPDATE_USER,{username:T,admin:O})}function p(T,O){r[T]=O,T==="per_page"&&(r.page=1),a.push({path:"/admin/users",query:r})}return pt(()=>{t.dispatch(Be.ACTIONS.EMPTY_USERS)}),We(()=>n.query,T=>{r=oE(T,s,DT,{query:r}),c(r)}),(T,O)=>{const R=oe("router-link"),g=oe("ErrorMessage"),N=oe("Card");return h(),I("div",SGe,[W(N,null,{title:le(()=>[V(_(He(T.$t("admin.USER",0))),1)]),content:le(()=>[d("button",{class:"top-button",onClick:O[0]||(O[0]=be(S=>T.$router.push("/admin"),["prevent"]))},_(T.$t("admin.BACK_TO_ADMIN")),1),W(HBe,{onFilterOnUsername:f}),W(_O,{sort:m(zf),order_by:s,query:m(r),message:"admin.USERS.SELECTS.ORDER_BY",onUpdateSelect:p},null,8,["sort","query"]),i.value.length===0?(h(),I("div",AGe,_(T.$t("user.NO_USERS_FOUND")),1)):(h(),I("div",OGe,[d("table",null,[d("thead",null,[d("tr",null,[gGe,d("th",IGe,_(T.$t("user.USERNAME")),1),d("th",RGe,_(T.$t("user.EMAIL")),1),d("th",NGe,_(T.$t("user.PROFILE.REGISTRATION_DATE")),1),d("th",null,_(He(T.$t("workouts.WORKOUT",0))),1),d("th",null,_(T.$t("admin.ACTIVE")),1),d("th",null,_(T.$t("user.ADMIN")),1),d("th",null,_(T.$t("admin.ACTION")),1)])]),d("tbody",null,[(h(!0),I(me,null,Pe(i.value,S=>(h(),I("tr",{key:S.username},[d("td",null,[d("span",vGe,_(T.$t("user.PROFILE.PICTURE")),1),W(Ko,{user:S},null,8,["user"])]),d("td",null,[d("span",bGe,_(T.$t("user.USERNAME")),1),W(R,{to:`/admin/users/${S.username}`},{default:le(()=>[V(_(S.username),1)]),_:2},1032,["to"])]),d("td",null,[d("span",CGe,_(T.$t("user.EMAIL")),1),V(" "+_(S.email),1)]),d("td",null,[d("span",DGe,_(T.$t("user.PROFILE.REGISTRATION_DATE")),1),d("time",null,_(m(zn)(S.created_at,o.value.timezone,o.value.date_format)),1)]),d("td",PGe,[d("span",LGe,_(He(T.$t("workouts.WORKOUT",0))),1),V(" "+_(S.nb_workouts),1)]),d("td",yGe,[d("span",$Ge,_(T.$t("admin.ACTIVE")),1),d("i",{class:pe(`fa fa${S.is_active?"-check":""}-square-o`),"aria-hidden":"true"},null,2)]),d("td",UGe,[d("span",kGe,_(T.$t("user.ADMIN")),1),d("i",{class:pe(`fa fa${S.admin?"-check":""}-square-o`),"aria-hidden":"true"},null,2)]),d("td",wGe,[d("span",MGe,_(T.$t("admin.ACTION")),1),d("button",{class:pe({danger:S.admin}),disabled:S.username===o.value.username,onClick:A=>E(S.username,!S.admin)},_(T.$t(`admin.USERS.TABLE.${S.admin?"REMOVE":"ADD"}_ADMIN_RIGHTS`)),11,WGe)])]))),128))])]),u.value.page?(h(),Y(il,{key:0,path:"/admin/users",pagination:u.value,query:m(r)},null,8,["pagination","query"])):M("",!0),l.value?(h(),Y(g,{key:1,message:l.value},null,8,["message"])):M("",!0),d("button",{onClick:O[1]||(O[1]=be(S=>T.$router.push("/admin"),["prevent"]))},_(T.$t("admin.BACK_TO_ADMIN")),1)]))]),_:1})])}}}),zGe=ie(FGe,[["__scopeId","data-v-dc27c3d6"]]),xGe={class:"box user-header"},BGe={class:"user-details"},GGe={class:"user-name"},HGe={class:"user-stats"},VGe={class:"user-stat"},KGe={class:"stat-number"},jGe={class:"stat-label"},qGe={class:"user-stat"},YGe={class:"stat-label"},XGe={class:"user-stat hide-small"},QGe={class:"stat-number"},ZGe={class:"stat-label"},JGe=te({__name:"UserHeader",props:{user:{}},setup(e){const t=e,{user:n}=_e(t),a=$e(),s=w(()=>a.getters[Q.GETTERS.AUTH_USER_PROFILE]);return(r,o)=>{const i=oe("Distance");return h(),I("div",xGe,[W(Ko,{user:m(n)},null,8,["user"]),d("div",BGe,[d("div",GGe,_(m(n).username),1),d("div",HGe,[d("div",VGe,[d("span",KGe,_(m(n).nb_workouts),1),d("span",jGe,_(r.$t("workouts.WORKOUT",m(n).nb_workouts)),1)]),d("div",qGe,[W(i,{distance:m(n).total_distance,unitFrom:"km",digits:0,displayUnit:!1,useImperialUnits:s.value.imperial_units},null,8,["distance","useImperialUnits"]),d("span",YGe,_(s.value.imperial_units?"miles":"km"),1)]),d("div",XGe,[d("span",QGe,_(m(n).nb_sports),1),d("span",ZGe,_(r.$t("workouts.SPORT",m(n).nb_sports)),1)])])])])}}}),RO=ie(JGe,[["__scopeId","data-v-3abb1646"]]),eHe={class:"profile-tabs"},tHe={class:"profile-tabs-links"},NO=te({__name:"UserProfileTabs",props:{tabs:{},selectedTab:{},edition:{type:Boolean}},setup(e){const t=e,{tabs:n,selectedTab:a}=_e(t);St(()=>{const r=document.getElementById(`tab-${n.value[0]}`);r&&r.focus()});function s(r){switch(r){case"ACCOUNT":case"PICTURE":case"PRIVACY-POLICY":return`/profile/edit/${r.toLocaleLowerCase()}`;case"APPS":case"EQUIPMENTS":case"PREFERENCES":case"SPORTS":return`/profile${t.edition?"/edit":""}/${r.toLocaleLowerCase()}`;default:case"PROFILE":return`/profile${t.edition?"/edit":""}`}}return(r,o)=>{const i=oe("router-link");return h(),I("div",eHe,[d("div",tHe,[(h(!0),I(me,null,Pe(m(n),u=>(h(),Y(i,{class:pe(["profile-tab",{selected:u===m(a)}]),to:s(u),key:u},{default:le(()=>[V(_(r.$t(`user.PROFILE.TABS.${u}`)),1)]),_:2},1032,["class","to"]))),128))])])}}}),nHe={id:"user-profile"},aHe={class:"box"},sHe=te({__name:"index",props:{user:{},tab:{}},setup(e){const t=e,{user:n,tab:a}=_e(t),s=["PROFILE","PREFERENCES","SPORTS","EQUIPMENTS","APPS"];return(r,o)=>{const i=oe("router-view");return h(),I("div",nHe,[W(RO,{user:m(n)},null,8,["user"]),d("div",aHe,[W(NO,{tabs:s,selectedTab:m(a),edition:!1},null,8,["selectedTab"]),W(i,{user:m(n)},null,8,["user"])])])}}}),rHe=ie(sHe,[["__scopeId","data-v-ab81f074"]]),oHe={id:"user-infos",class:"description-list"},iHe={key:1,class:"info-box success-message"},uHe={key:4,class:"email-form form-box"},lHe={class:"form-items",for:"email"},cHe={class:"form-items",for:"email"},dHe={class:"form-buttons"},EHe={class:"confirm",type:"submit"},fHe={key:5},pHe={key:0},mHe={class:"user-bio"},_He={key:0,class:"profile-buttons"},THe={key:1,class:"profile-buttons"},hHe=te({__name:"UserInfos",props:{user:{},fromAdmin:{type:Boolean,default:!1}},setup(e){const t=e,n=$e(),{user:a,fromAdmin:s}=_e(t),r=w(()=>n.getters[j.GETTERS.LANGUAGE]),o=w(()=>n.getters[Q.GETTERS.AUTH_USER_PROFILE]),i=w(()=>t.user.created_at?zn(t.user.created_at,o.value.timezone,o.value.date_format):""),u=w(()=>t.user.birth_date?un(new Date(t.user.birth_date),`${ls(o.value.date_format,r.value)}`,{locale:Ls[r.value]}):""),l=w(()=>n.getters[Be.GETTERS.USERS_IS_SUCCESS]),c=w(()=>n.getters[j.GETTERS.ERROR_MESSAGES]),f=w(()=>n.getters[j.GETTERS.APP_CONFIG]),E=de(""),p=de(!1),T=de(!1),O=de(""),R=de("");function g(y){E.value=y,y!==""&&n.commit(Be.MUTATIONS.UPDATE_IS_SUCCESS,!1)}function N(y){n.dispatch(Be.ACTIONS.DELETE_USER_ACCOUNT,{username:y})}function S(y){R.value="password-reset",n.dispatch(Be.ACTIONS.UPDATE_USER,{username:y,resetPassword:!0})}function A(y){n.dispatch(Be.ACTIONS.UPDATE_USER,{username:y,activate:!0})}function v(){C(),O.value=a.value.email_to_confirm?a.value.email_to_confirm:"",T.value=!0,R.value="email-update"}function D(){O.value="",T.value=!1}function P(y){n.dispatch(Be.ACTIONS.UPDATE_USER,{username:y,new_email:O.value})}function C(){n.commit(j.MUTATIONS.EMPTY_ERROR_MESSAGES),n.commit(Be.MUTATIONS.UPDATE_IS_SUCCESS,!1),R.value=""}return pt(()=>C()),We(()=>l.value,y=>{y&&(g(""),D())}),(y,z)=>{const $=oe("Modal"),F=oe("AlertMessage"),X=oe("ErrorMessage");return h(),I("div",oHe,[E.value?(h(),Y($,{key:0,title:y.$t("common.CONFIRMATION"),message:E.value==="delete"?"admin.CONFIRM_USER_ACCOUNT_DELETION":"admin.CONFIRM_USER_PASSWORD_RESET",strongMessage:m(a).username,onConfirmAction:z[0]||(z[0]=re=>E.value==="delete"?N(m(a).username):S(m(a).username)),onCancelAction:z[1]||(z[1]=re=>g("")),onKeydown:z[2]||(z[2]=Je(re=>g(""),["esc"]))},null,8,["title","message","strongMessage"])):M("",!0),l.value?(h(),I("div",iHe,_(y.$t(`admin.${R.value==="password-reset"?"PASSWORD_RESET":"USER_EMAIL_UPDATE"}_SUCCESSFUL`)),1)):M("",!0),m(a).is_active?M("",!0):(h(),Y(F,{key:2,message:"user.THIS_USER_ACCOUNT_IS_INACTIVE"})),c.value?(h(),Y(X,{key:3,message:c.value},null,8,["message"])):M("",!0),T.value?(h(),I("div",uHe,[d("form",{class:pe({errors:p.value}),onSubmit:z[5]||(z[5]=be(re=>P(m(a).username),["prevent"]))},[d("label",lHe,[V(_(y.$t("admin.CURRENT_EMAIL"))+" ",1),Le(d("input",{id:"email",type:"email","onUpdate:modelValue":z[3]||(z[3]=re=>m(a).email=re),disabled:""},null,512),[[at,m(a).email]])]),d("label",cHe,[V(_(y.$t("admin.NEW_EMAIL"))+"* ",1),Le(d("input",{id:"new-email",type:"email",required:"","onUpdate:modelValue":z[4]||(z[4]=re=>O.value=re)},null,512),[[at,O.value]])]),d("div",dHe,[d("button",EHe,_(y.$t("buttons.SUBMIT")),1),d("button",{class:"cancel",onClick:be(D,["prevent"])},_(y.$t("buttons.CANCEL")),1)])],34)])):(h(),I("div",fHe,[d("dl",null,[d("dt",null,_(y.$t("user.PROFILE.REGISTRATION_DATE"))+":",1),d("dd",null,[d("time",null,_(i.value),1)]),d("dt",null,_(y.$t("user.PROFILE.FIRST_NAME"))+":",1),d("dd",null,_(m(a).first_name),1),d("dt",null,_(y.$t("user.PROFILE.LAST_NAME"))+":",1),d("dd",null,_(m(a).last_name),1),d("dt",null,_(y.$t("user.PROFILE.BIRTH_DATE"))+":",1),d("dd",null,[u.value?(h(),I("time",pHe,_(u.value),1)):M("",!0)]),d("dt",null,_(y.$t("user.PROFILE.LOCATION"))+":",1),d("dd",null,_(m(a).location),1),d("dt",null,_(y.$t("user.PROFILE.BIO"))+":",1),d("dd",mHe,_(m(a).bio),1)]),m(s)?(h(),I("div",_He,[o.value.username!==m(a).username?(h(),I("button",{key:0,class:"danger",onClick:z[6]||(z[6]=be(re=>g("delete"),["prevent"]))},_(y.$t("admin.DELETE_USER")),1)):M("",!0),m(a).is_active?M("",!0):(h(),I("button",{key:1,onClick:z[7]||(z[7]=be(re=>A(m(a).username),["prevent"]))},_(y.$t("admin.ACTIVATE_USER_ACCOUNT")),1)),o.value.username!==m(a).username?(h(),I("button",{key:2,onClick:be(v,["prevent"])},_(y.$t("admin.UPDATE_USER_EMAIL")),1)):M("",!0),o.value.username!==m(a).username&&f.value.is_email_sending_enabled?(h(),I("button",{key:3,onClick:z[8]||(z[8]=be(re=>g("reset"),["prevent"]))},_(y.$t("admin.RESET_USER_PASSWORD")),1)):M("",!0),d("button",{onClick:z[9]||(z[9]=re=>y.$router.go(-1))},_(y.$t("buttons.BACK")),1)])):(h(),I("div",THe,[d("button",{onClick:z[10]||(z[10]=re=>y.$router.push("/profile/edit"))},_(y.$t("user.PROFILE.EDIT")),1),d("button",{onClick:z[11]||(z[11]=re=>y.$router.push("/"))},_(y.$t("common.HOME")),1)]))]))])}}}),vO=ie(hHe,[["__scopeId","data-v-01368a7e"]]),SHe=e=>(ot("data-v-e641e7e8"),e=e(),it(),e),AHe={id:"user-preferences",class:"description-list"},OHe={class:"preferences-section"},gHe={class:"preferences-section"},IHe={class:"info-box raw-speed-help"},RHe=SHe(()=>d("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1)),NHe={class:"profile-buttons"},vHe=te({__name:"UserPreferences",props:{user:{}},setup(e){const t=e,n=$e(),a=w(()=>n.getters[j.GETTERS.LANGUAGE]),s=w(()=>t.user.language&&t.user.language in or?or[t.user.language]:or.en),r=w(()=>t.user.weekm?"MONDAY":"SUNDAY"),o=w(()=>t.user.timezone?t.user.timezone:"Europe/Paris"),i=w(()=>t.user.date_format?t.user.date_format:"MM/dd/yyyy"),u=w(()=>t.user.display_ascent?"DISPLAYED":"HIDDEN"),l=w(()=>t.user.use_dark_mode===!0?"DARK":t.user.use_dark_mode===!1?"LIGHT":"DEFAULT");return(c,f)=>(h(),I("div",AHe,[d("div",OHe,_(c.$t("user.PROFILE.INTERFACE")),1),d("dl",null,[d("dt",null,_(c.$t("user.PROFILE.LANGUAGE"))+":",1),d("dd",null,_(s.value),1),d("dt",null,_(c.$t("user.PROFILE.THEME_MODE.LABEL"))+":",1),d("dd",null,_(c.$t(`user.PROFILE.THEME_MODE.VALUES.${l.value}`)),1),d("dt",null,_(c.$t("user.PROFILE.TIMEZONE"))+":",1),d("dd",null,_(o.value),1),d("dt",null,_(c.$t("user.PROFILE.DATE_FORMAT"))+":",1),d("dd",null,_(m(ls)(i.value,a.value)),1),d("dt",null,_(c.$t("user.PROFILE.FIRST_DAY_OF_WEEK"))+":",1),d("dd",null,_(c.$t(`user.PROFILE.${r.value}`)),1)]),d("div",gHe,_(c.$t("workouts.WORKOUT",0)),1),d("dl",null,[d("dt",null,_(c.$t("user.PROFILE.UNITS.LABEL"))+":",1),d("dd",null,_(c.$t(`user.PROFILE.UNITS.${c.user.imperial_units?"IMPERIAL":"METRIC"}`)),1),d("dt",null,_(c.$t("user.PROFILE.ASCENT_DATA"))+":",1),d("dd",null,_(c.$t(`common.${u.value}`)),1),d("dt",null,_(c.$t("user.PROFILE.ELEVATION_CHART_START.LABEL"))+":",1),d("dd",null,_(c.$t(`user.PROFILE.ELEVATION_CHART_START.${c.user.start_elevation_at_zero?"ZERO":"MIN_ALT"}`)),1),d("dt",null,_(c.$t("user.PROFILE.USE_RAW_GPX_SPEED.LABEL"))+":",1),d("dd",null,_(c.$t(`user.PROFILE.USE_RAW_GPX_SPEED.${c.user.use_raw_gpx_speed?"RAW_SPEED":"FILTERED_SPEED"}`)),1),d("div",IHe,[d("span",null,[RHe,V(" "+_(c.$t("user.PROFILE.USE_RAW_GPX_SPEED.HELP")),1)])])]),d("div",NHe,[d("button",{onClick:f[0]||(f[0]=E=>c.$router.push("/profile/edit/preferences"))},_(c.$t("user.PROFILE.EDIT_PREFERENCES")),1),d("button",{onClick:f[1]||(f[1]=E=>c.$router.push("/"))},_(c.$t("common.HOME")),1)])]))}}),bHe=ie(vHe,[["__scopeId","data-v-e641e7e8"]]),CHe={id:"user-profile-edition",class:"center-card"},DHe=te({__name:"index",props:{user:{},tab:{}},setup(e){const t=e,{user:n,tab:a}=_e(t),s=["PROFILE","ACCOUNT","PICTURE","PREFERENCES","SPORTS","EQUIPMENTS","PRIVACY-POLICY"];return(r,o)=>{const i=oe("router-view"),u=oe("Card");return h(),I("div",CHe,[W(u,null,{title:le(()=>[V(_(r.$t(`user.PROFILE.${m(a)}_EDITION`)),1)]),content:le(()=>[W(NO,{tabs:s,selectedTab:m(a),edition:!0},null,8,["selectedTab"]),W(i,{user:m(n)},null,8,["user"])]),_:1})])}}}),co=new Map,PHe=e=>{const{method:t,url:n,params:a={},data:s={}}=e;return[t,n,JSON.stringify(a),JSON.stringify(s)].join("")},Rr=e=>{const t=PHe(e);if(co.has(t)){const n=co.get(t)||{};n==null||n.abort(),co.delete(t)}return t},Va=Mt.create({baseURL:Vo()});Va.interceptors.request.use(e=>{const t=new AbortController;e.signal=t.signal;const n=Rr(e);return co.set(n,t),e},e=>Promise.reject(e));Va.interceptors.response.use(e=>(Rr(e.config),e),e=>(e.message!=="canceled"&&e.response&&Rr(e.response.config),Promise.reject(e)));const bO=(e,t)=>{e.commit(j.MUTATIONS.EMPTY_ERROR_MESSAGES),Ge.delete(`users/${t.username}`).then(n=>{n.status===204?t.fromAdmin?dt.push("/admin/users"):e.dispatch(Q.ACTIONS.LOGOUT).then(()=>dt.push("/")):fe(e,null)}).catch(n=>fe(e,n))},LHe={[Be.ACTIONS.EMPTY_USER](e){e.commit(j.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(Be.MUTATIONS.UPDATE_USER,{})},[Be.ACTIONS.EMPTY_USERS](e){e.commit(j.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(Be.MUTATIONS.UPDATE_USERS,[]),e.commit(Be.MUTATIONS.UPDATE_USERS_PAGINATION,{})},[Be.ACTIONS.GET_USER](e,t){e.commit(j.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(Be.MUTATIONS.UPDATE_USERS_LOADING,!0),Ge.get(`users/${t}`).then(n=>{n.data.status==="success"?e.commit(Be.MUTATIONS.UPDATE_USER,n.data.data.users[0]):fe(e,null)}).catch(n=>fe(e,n)).finally(()=>e.commit(Be.MUTATIONS.UPDATE_USERS_LOADING,!1))},[Be.ACTIONS.GET_USERS](e,t){e.commit(j.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(Be.MUTATIONS.UPDATE_USERS_LOADING,!0),Ge.get("users",{params:t}).then(n=>{n.data.status==="success"?(e.commit(Be.MUTATIONS.UPDATE_USERS,n.data.data.users),e.commit(Be.MUTATIONS.UPDATE_USERS_PAGINATION,n.data.pagination)):fe(e,null)}).catch(n=>fe(e,n)).finally(()=>e.commit(Be.MUTATIONS.UPDATE_USERS_LOADING,!1))},[Be.ACTIONS.UPDATE_USER](e,t){e.commit(j.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(Be.MUTATIONS.UPDATE_IS_SUCCESS,!1);const n={};t.admin!==void 0&&(n.admin=t.admin),t.resetPassword&&(n.reset_password=t.resetPassword),t.activate&&(n.activate=t.activate),t.new_email!==void 0&&(n.new_email=t.new_email),Ge.patch(`users/${t.username}`,n).then(a=>{a.data.status==="success"?(e.commit(Be.MUTATIONS.UPDATE_USER_IN_USERS,a.data.data.users[0]),(t.resetPassword||t.new_email)&&e.commit(Be.MUTATIONS.UPDATE_IS_SUCCESS,!0),(t.activate||t.new_email)&&e.commit(Be.MUTATIONS.UPDATE_USER,a.data.data.users[0])):fe(e,null)}).catch(a=>fe(e,a)).finally(()=>e.commit(Be.MUTATIONS.UPDATE_USERS_LOADING,!1))},[Be.ACTIONS.DELETE_USER_ACCOUNT](e,t){bO(e,{username:t.username,fromAdmin:!0})}},$i=e=>{localStorage.removeItem("authToken"),e.commit(j.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(Ut.MUTATIONS.EMPTY_USER_STATS),e.commit(Ut.MUTATIONS.EMPTY_USER_SPORT_STATS),e.commit(Q.MUTATIONS.CLEAR_AUTH_USER_TOKEN),e.commit(Be.MUTATIONS.UPDATE_USERS,[]),e.commit(Re.MUTATIONS.EMPTY_WORKOUTS),e.commit(Re.MUTATIONS.EMPTY_WORKOUT),dt.push("/login")},yHe={[Q.ACTIONS.CHECK_AUTH_USER](e){window.localStorage.authToken&&!e.getters[Q.GETTERS.IS_AUTHENTICATED]&&(e.commit(Q.MUTATIONS.UPDATE_AUTH_TOKEN,window.localStorage.authToken),e.dispatch(Q.ACTIONS.GET_USER_PROFILE,!0)),!window.localStorage.authToken&&e.getters[Q.GETTERS.IS_AUTHENTICATED]&&$i(e)},[Q.ACTIONS.CONFIRM_ACCOUNT](e,t){e.commit(j.MUTATIONS.EMPTY_ERROR_MESSAGES),Va.post("auth/account/confirm",{token:t.token}).then(n=>{if(n.data.status==="success"){const a=n.data.auth_token;window.localStorage.setItem("authToken",a),e.commit(Q.MUTATIONS.UPDATE_AUTH_TOKEN,a),e.dispatch(Q.ACTIONS.GET_USER_PROFILE).then(()=>dt.push("/"))}else fe(e,null)}).catch(n=>{fe(e,n)})},[Q.ACTIONS.CONFIRM_EMAIL](e,t){e.commit(j.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(Q.MUTATIONS.UPDATE_IS_SUCCESS,!1),Va.post("/auth/email/update",{token:t.token}).then(n=>{n.data.status==="success"?(e.commit(Q.MUTATIONS.UPDATE_IS_SUCCESS,!0),t.refreshUser&&e.dispatch(Q.ACTIONS.GET_USER_PROFILE).then(()=>dt.push("/profile/edit/account")),dt.push("/profile/edit/account")):fe(e,null)}).catch(n=>{fe(e,n)})},[Q.ACTIONS.GET_USER_PROFILE](e,t=!1){e.commit(j.MUTATIONS.EMPTY_ERROR_MESSAGES),Ge.get("auth/profile").then(n=>{if(n.data.status==="success"){const a=e.getters[Q.GETTERS.IS_PROFILE_NOT_LOADED];e.commit(Q.MUTATIONS.UPDATE_AUTH_USER_PROFILE,n.data.data),n.data.data.accepted_privacy_policy||e.dispatch(j.ACTIONS.GET_APPLICATION_PRIVACY_POLICY),(a||t)&&(n.data.data.language&&e.dispatch(j.ACTIONS.UPDATE_APPLICATION_LANGUAGE,n.data.data.language),e.commit(j.MUTATIONS.UPDATE_DARK_MODE,n.data.data.use_dark_mode)),e.dispatch(Pt.ACTIONS.GET_SPORTS),e.dispatch(Me.ACTIONS.GET_EQUIPMENTS),e.dispatch(Me.ACTIONS.GET_EQUIPMENT_TYPES)}else fe(e,null),$i(e)}).catch(n=>{n.message!=="canceled"&&(fe(e,n),$i(e))})},[Q.ACTIONS.LOGIN_OR_REGISTER](e,t){e.commit(j.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(Q.MUTATIONS.UPDATE_IS_REGISTRATION_SUCCESS,!1),Va.post(`/auth/${t.actionType}`,t.formData).then(n=>{if(n.data.status==="success")if(t.actionType==="login"){const a=n.data.auth_token;window.localStorage.setItem("authToken",a),e.commit(Q.MUTATIONS.UPDATE_AUTH_TOKEN,a),e.dispatch(Q.ACTIONS.GET_USER_PROFILE,!0).then(()=>dt.push(typeof t.redirectUrl=="string"?t.redirectUrl:"/"))}else dt.push("/login").then(()=>e.commit(Q.MUTATIONS.UPDATE_IS_REGISTRATION_SUCCESS,!0));else fe(e,null)}).catch(n=>fe(e,n))},[Q.ACTIONS.LOGOUT](e){e.commit(j.MUTATIONS.EMPTY_ERROR_MESSAGES),Ge.post("auth/logout").then(t=>{t.data.status==="success"?$i(e):fe(e,null)}).catch(t=>fe(e,t))},[Q.ACTIONS.UPDATE_USER_PROFILE](e,t){e.commit(j.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(Q.MUTATIONS.UPDATE_USER_LOADING,!0),Ge.post("auth/profile/edit",t).then(n=>{n.data.status==="success"?(e.commit(Q.MUTATIONS.UPDATE_AUTH_USER_PROFILE,n.data.data),dt.push("/profile")):fe(e,null)}).catch(n=>fe(e,n)).finally(()=>e.commit(Q.MUTATIONS.UPDATE_USER_LOADING,!1))},[Q.ACTIONS.UPDATE_USER_ACCOUNT](e,t){e.commit(j.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(Q.MUTATIONS.UPDATE_USER_LOADING,!0),e.commit(Q.MUTATIONS.UPDATE_IS_SUCCESS,!1),Ge.patch("auth/profile/edit/account",t).then(n=>{n.data.status==="success"?(e.commit(Q.MUTATIONS.UPDATE_AUTH_USER_PROFILE,n.data.data),e.commit(Q.MUTATIONS.UPDATE_IS_SUCCESS,!0)):fe(e,null)}).catch(n=>fe(e,n)).finally(()=>e.commit(Q.MUTATIONS.UPDATE_USER_LOADING,!1))},[Q.ACTIONS.UPDATE_USER_PREFERENCES](e,t){e.commit(j.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(Q.MUTATIONS.UPDATE_USER_LOADING,!0),Ge.post("auth/profile/edit/preferences",t).then(n=>{n.data.status==="success"?(e.commit(Q.MUTATIONS.UPDATE_AUTH_USER_PROFILE,n.data.data),e.commit(j.MUTATIONS.UPDATE_DARK_MODE,n.data.data.use_dark_mode),e.dispatch(j.ACTIONS.UPDATE_APPLICATION_LANGUAGE,n.data.data.language).then(()=>dt.push("/profile/preferences"))):fe(e,null)}).catch(n=>fe(e,n)).finally(()=>e.commit(Q.MUTATIONS.UPDATE_USER_LOADING,!1))},[Q.ACTIONS.RESET_USER_SPORT_PREFERENCES](e,t){e.commit(j.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(Q.MUTATIONS.UPDATE_USER_LOADING,!0),Ge.delete(`auth/profile/reset/sports/${t.sportId}`).then(n=>{n.status===204?(e.dispatch(Pt.ACTIONS.GET_SPORTS),t.fromSport&&dt.push(`/profile/sports/${t.sportId}`)):fe(e,null)}).catch(n=>{fe(e,n),e.commit(Q.MUTATIONS.UPDATE_USER_LOADING,!1)})},[Q.ACTIONS.UPDATE_USER_SPORT_PREFERENCES](e,t){e.commit(j.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(Q.MUTATIONS.UPDATE_USER_LOADING,!0);const{fromSport:n,...a}=t;Ge.post("auth/profile/edit/sports",a).then(s=>{s.data.status==="success"?(e.dispatch(Pt.ACTIONS.GET_SPORTS),n&&dt.push(`/profile/sports/${a.sport_id}`)):fe(e,null)}).catch(s=>{fe(e,s),e.commit(Q.MUTATIONS.UPDATE_USER_LOADING,!1)})},[Q.ACTIONS.UPDATE_USER_PICTURE](e,t){if(e.commit(j.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(Q.MUTATIONS.UPDATE_USER_LOADING,!0),!t.picture)throw new Error("No file part");const n=new FormData;n.append("file",t.picture),Ge.post("auth/picture",n,{headers:{"content-type":"multipart/form-data"}}).then(a=>{a.data.status==="success"?e.dispatch(Q.ACTIONS.GET_USER_PROFILE).then(()=>dt.push("/profile")):fe(e,null)}).catch(a=>fe(e,a)).finally(()=>e.commit(Q.MUTATIONS.UPDATE_USER_LOADING,!1))},[Q.ACTIONS.DELETE_ACCOUNT](e,t){bO(e,t)},[Q.ACTIONS.DELETE_PICTURE](e){e.commit(j.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(Q.MUTATIONS.UPDATE_USER_LOADING,!0),Ge.delete("auth/picture").then(t=>{t.status===204?e.dispatch(Q.ACTIONS.GET_USER_PROFILE).then(()=>dt.push("/profile")):fe(e,null)}).catch(t=>fe(e,t)).finally(()=>e.commit(Q.MUTATIONS.UPDATE_USER_LOADING,!1))},[Q.ACTIONS.SEND_PASSWORD_RESET_REQUEST](e,t){e.commit(j.MUTATIONS.EMPTY_ERROR_MESSAGES),Va.post("auth/password/reset-request",t).then(n=>{n.data.status==="success"?dt.push("/password-reset/sent"):fe(e,null)}).catch(n=>fe(e,n))},[Q.ACTIONS.RESEND_ACCOUNT_CONFIRMATION_EMAIL](e,t){e.commit(j.MUTATIONS.EMPTY_ERROR_MESSAGES),Va.post("auth/account/resend-confirmation",t).then(n=>{n.data.status==="success"?dt.push("/account-confirmation/email-sent"):fe(e,null)}).catch(n=>fe(e,n))},[Q.ACTIONS.RESET_USER_PASSWORD](e,t){e.commit(j.MUTATIONS.EMPTY_ERROR_MESSAGES),Va.post("auth/password/update",t).then(n=>{n.data.status==="success"?dt.push("/password-reset/password-updated"):fe(e,null)}).catch(n=>fe(e,n))},[Q.ACTIONS.ACCEPT_PRIVACY_POLICY](e,t){e.commit(j.MUTATIONS.EMPTY_ERROR_MESSAGES),Ge.post("auth/account/privacy-policy",{accepted_policy:t}).then(n=>{n.data.status==="success"?e.dispatch(Q.ACTIONS.GET_USER_PROFILE).then(()=>dt.push("/profile")):fe(e,null)}).catch(n=>fe(e,n))},[Q.ACTIONS.REQUEST_DATA_EXPORT](e){e.commit(j.MUTATIONS.EMPTY_ERROR_MESSAGES),Ge.post("auth/account/export/request").then(t=>{t.data.status==="success"?e.commit(Q.MUTATIONS.SET_EXPORT_REQUEST,t.data.request):fe(e,null)}).catch(t=>fe(e,t))},[Q.ACTIONS.GET_REQUEST_DATA_EXPORT](e){e.commit(j.MUTATIONS.EMPTY_ERROR_MESSAGES),Ge.get("auth/account/export").then(t=>{t.data.status==="success"?e.commit(Q.MUTATIONS.SET_EXPORT_REQUEST,t.data.request):fe(e,null)}).catch(t=>fe(e,t))}},$He={[Q.GETTERS.AUTH_TOKEN]:e=>e.authToken,[Q.GETTERS.AUTH_USER_PROFILE]:e=>e.authUserProfile,[Q.GETTERS.EXPORT_REQUEST]:e=>e.exportRequest,[Q.GETTERS.IS_AUTHENTICATED]:e=>e.authToken!==null,[Q.GETTERS.IS_ADMIN]:e=>e.authUserProfile&&e.authUserProfile.admin,[Q.GETTERS.IS_REGISTRATION_SUCCESS]:e=>e.isRegistrationSuccess,[Q.GETTERS.IS_SUCCESS]:e=>e.isSuccess,[Q.GETTERS.USER_LOADING]:e=>e.loading,[Q.GETTERS.IS_PROFILE_NOT_LOADED]:e=>e.authUserProfile.username===void 0},UHe={[Q.MUTATIONS.CLEAR_AUTH_USER_TOKEN](e){e.authToken=null,e.authUserProfile={}},[Q.MUTATIONS.UPDATE_AUTH_TOKEN](e,t){e.authToken=t},[Q.MUTATIONS.UPDATE_AUTH_USER_PROFILE](e,t){e.authUserProfile=t},[Q.MUTATIONS.UPDATE_IS_REGISTRATION_SUCCESS](e,t){e.isRegistrationSuccess=t},[Q.MUTATIONS.UPDATE_IS_SUCCESS](e,t){e.isSuccess=t},[Q.MUTATIONS.UPDATE_USER_LOADING](e,t){e.loading=t},[Q.MUTATIONS.SET_EXPORT_REQUEST](e,t){e.exportRequest=t}},kHe={authToken:null,authUserProfile:{},isSuccess:!1,isRegistrationSuccess:!1,loading:!1,exportRequest:null},wHe={state:kHe,actions:yHe,getters:$He,mutations:UHe},MHe={[Me.ACTIONS.ADD_EQUIPMENT](e,t){e.commit(j.MUTATIONS.EMPTY_ERROR_MESSAGES),Ge.post("equipments",{description:t.description,equipment_type_id:t.equipmentTypeId,label:t.label,default_for_sport_ids:t.defaultForSportIds}).then(n=>{if(n.data.status==="created"){if(n.data.data.equipments.length>0){const a=n.data.data.equipments[0];e.commit(Me.MUTATIONS.ADD_EQUIPMENT,a),dt.push(`/profile/equipments/${a.id}`)}e.dispatch(Pt.ACTIONS.GET_SPORTS),e.commit(Q.MUTATIONS.UPDATE_USER_LOADING,!1)}else fe(e,null)}).catch(n=>fe(e,n))},[Me.ACTIONS.DELETE_EQUIPMENT](e,t){e.commit(j.MUTATIONS.EMPTY_ERROR_MESSAGES),Ge.delete(`equipments/${t.id}${t.force?"?force":""}`).then(()=>{e.commit(Me.MUTATIONS.REMOVE_EQUIPMENT,t.id),e.dispatch(Pt.ACTIONS.GET_SPORTS),dt.push("/profile/equipments")}).catch(n=>fe(e,n))},[Me.ACTIONS.GET_EQUIPMENT](e,t){e.commit(j.MUTATIONS.EMPTY_ERROR_MESSAGES),Ge.get(`equipments/${t}`).then(n=>{n.data.status==="success"?n.data.data.equipments.length>0&&e.commit(Me.MUTATIONS.UPDATE_EQUIPMENT,n.data.data.equipments[0]):fe(e,null)}).catch(n=>fe(e,n))},[Me.ACTIONS.GET_EQUIPMENTS](e){e.commit(j.MUTATIONS.EMPTY_ERROR_MESSAGES),Ge.get("equipments").then(t=>{t.data.status==="success"?e.commit(Me.MUTATIONS.SET_EQUIPMENTS,t.data.data.equipments):fe(e,null)}).catch(t=>fe(e,t))},[Me.ACTIONS.GET_EQUIPMENT_TYPES](e){e.commit(j.MUTATIONS.EMPTY_ERROR_MESSAGES),Ge.get("equipment-types").then(t=>{t.data.status==="success"?(e.commit(Me.MUTATIONS.SET_EQUIPMENT_TYPES,t.data.data.equipment_types),e.commit(Q.MUTATIONS.UPDATE_USER_LOADING,!1)):fe(e,null)}).catch(t=>fe(e,t))},[Me.ACTIONS.REFRESH_EQUIPMENT](e,t){e.commit(j.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(Me.MUTATIONS.SET_LOADING,!0),Ge.post(`equipments/${t}/refresh`).then(n=>{n.data.status==="success"?n.data.data.equipments.length>0&&(e.commit(Me.MUTATIONS.UPDATE_EQUIPMENT,n.data.data.equipments[0]),dt.push(`/profile/equipments/${t}`)):fe(e,null)}).catch(n=>fe(e,n)).finally(()=>e.commit(Me.MUTATIONS.SET_LOADING,!1))},[Me.ACTIONS.UPDATE_EQUIPMENT](e,t){e.commit(j.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(Me.MUTATIONS.SET_LOADING,!0),Ge.patch(`equipments/${t.id}`,{description:t.description,equipment_type_id:t.equipmentTypeId,is_active:t.isActive,label:t.label,default_for_sport_ids:t.defaultForSportIds}).then(n=>{n.data.status==="success"?n.data.data.equipments.length>0&&(e.commit(Me.MUTATIONS.UPDATE_EQUIPMENT,n.data.data.equipments[0]),e.dispatch(Pt.ACTIONS.GET_SPORTS),dt.push(`/profile/equipments/${t.id}`)):fe(e,null)}).catch(n=>fe(e,n)).finally(()=>e.commit(Me.MUTATIONS.SET_LOADING,!1))},[Me.ACTIONS.UPDATE_EQUIPMENT_TYPE](e,t){e.commit(j.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(Me.MUTATIONS.SET_LOADING,!0),Ge.patch(`equipment-types/${t.id}`,{is_active:t.isActive}).then(n=>{n.data.status==="success"?e.dispatch(Me.ACTIONS.GET_EQUIPMENT_TYPES):fe(e,null)}).catch(n=>fe(e,n)).finally(()=>e.commit(Me.MUTATIONS.SET_LOADING,!1))}},WHe={[Me.GETTERS.EQUIPMENTS]:e=>e.equipments,[Me.GETTERS.EQUIPMENT_TYPES]:e=>e.equipmentTypes,[Me.GETTERS.LOADING]:e=>e.loading},FHe={[Me.MUTATIONS.ADD_EQUIPMENT](e,t){e.equipments.push(t)},[Me.MUTATIONS.REMOVE_EQUIPMENT](e,t){e.equipments=e.equipments.filter(n=>n.id!=t)},[Me.MUTATIONS.SET_EQUIPMENTS](e,t){e.equipments=t},[Me.MUTATIONS.SET_EQUIPMENT_TYPES](e,t){e.equipmentTypes=t},[Me.MUTATIONS.SET_LOADING](e,t){e.loading=t},[Me.MUTATIONS.UPDATE_EQUIPMENT](e,t){const n=e.equipments.findIndex(a=>a.id===t.id);n!==-1&&(e.equipments[n]=t)}},zHe={equipments:[],equipmentTypes:[],loading:!1},xHe={state:zHe,actions:MHe,getters:WHe,mutations:FHe},PT=(e,t)=>{e.commit(j.MUTATIONS.EMPTY_ERROR_MESSAGES),Ge.get(t).then(n=>{n.data.status==="success"?e.commit(tt.MUTATIONS.SET_CLIENT,n.data.data.client):fe(e,null)}).catch(n=>fe(e,n))},BHe={[tt.ACTIONS.AUTHORIZE_CLIENT](e,t){e.commit(j.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),Ge.post("oauth/authorize",n,{headers:{"Content-Type":"multipart/form-data"}}).then(a=>{a.status==200&&a.data.redirect_url?window.location.href=a.data.redirect_url:fe(e,null)}).catch(a=>fe(e,a))},[tt.ACTIONS.CREATE_CLIENT](e,t){e.commit(j.MUTATIONS.EMPTY_ERROR_MESSAGES),Ge.post("oauth/apps",t).then(n=>{n.data.status==="created"?(e.commit(tt.MUTATIONS.SET_CLIENT,n.data.data.client),dt.push(`/profile/apps/${n.data.data.client.id}/created`)):fe(e,null)}).catch(n=>fe(e,n))},[tt.ACTIONS.DELETE_CLIENT](e,t){e.commit(j.MUTATIONS.EMPTY_ERROR_MESSAGES),Ge.delete(`oauth/apps/${t}`).then(n=>{n.status===204?e.dispatch(tt.ACTIONS.GET_CLIENTS).then(()=>dt.push("/profile/apps")):fe(e,null)}).catch(n=>fe(e,n))},[tt.ACTIONS.GET_CLIENT_BY_CLIENT_ID](e,t){PT(e,`oauth/apps/${t}`)},[tt.ACTIONS.GET_CLIENT_BY_ID](e,t){PT(e,`oauth/apps/${t}/by_id`)},[tt.ACTIONS.GET_CLIENTS](e,t){e.commit(j.MUTATIONS.EMPTY_ERROR_MESSAGES),Ge.get("oauth/apps",{params:t}).then(n=>{n.data.status==="success"?(e.commit(tt.MUTATIONS.SET_CLIENTS,n.data.data.clients),e.commit(tt.MUTATIONS.SET_CLIENTS_PAGINATION,n.data.pagination)):fe(e,null)}).catch(n=>fe(e,n))},[tt.ACTIONS.REVOKE_ALL_TOKENS](e,t){e.commit(j.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(tt.MUTATIONS.SET_REVOCATION_SUCCESSFUL,!1),Ge.post(`oauth/apps/${t}/revoke`).then(n=>{n.data.status==="success"?e.commit(tt.MUTATIONS.SET_REVOCATION_SUCCESSFUL,!0):fe(e,null)}).catch(n=>fe(e,n))}},GHe={[tt.GETTERS.CLIENT]:e=>e.client,[tt.GETTERS.CLIENTS]:e=>e.clients,[tt.GETTERS.CLIENTS_PAGINATION]:e=>e.pagination,[tt.GETTERS.REVOCATION_SUCCESSFUL]:e=>e.revocationSuccessful},HHe={[tt.MUTATIONS.SET_CLIENT](e,t){e.client=t},[tt.MUTATIONS.EMPTY_CLIENT](e){e.client={}},[tt.MUTATIONS.SET_CLIENTS](e,t){e.clients=t},[tt.MUTATIONS.SET_CLIENTS_PAGINATION](e,t){e.pagination=t},[tt.MUTATIONS.SET_REVOCATION_SUCCESSFUL](e,t){e.revocationSuccessful=t}},VHe={client:{},clients:[],pagination:{},revocationSuccessful:!1},KHe={state:VHe,actions:BHe,getters:GHe,mutations:HHe},{locale:jHe}=Lr.global,qHe={[j.ACTIONS.GET_APPLICATION_CONFIG](e){e.commit(j.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(j.MUTATIONS.UPDATE_APPLICATION_LOADING,!0),Ge.get("config").then(t=>{t.data.status==="success"?e.commit(j.MUTATIONS.UPDATE_APPLICATION_CONFIG,t.data.data):fe(e,null)}).catch(t=>fe(e,t)).finally(()=>e.commit(j.MUTATIONS.UPDATE_APPLICATION_LOADING,!1))},[j.ACTIONS.GET_APPLICATION_STATS](e){e.commit(j.MUTATIONS.EMPTY_ERROR_MESSAGES),Ge.get("stats/all").then(t=>{t.data.status==="success"?e.commit(j.MUTATIONS.UPDATE_APPLICATION_STATS,t.data.data):fe(e,null)}).catch(t=>fe(e,t))},[j.ACTIONS.GET_APPLICATION_PRIVACY_POLICY](e){e.commit(j.MUTATIONS.EMPTY_ERROR_MESSAGES),Ge.get("config").then(t=>{t.data.status==="success"?e.commit(j.MUTATIONS.UPDATE_APPLICATION_PRIVACY_POLICY,t.data.data):fe(e,null)}).catch(t=>fe(e,t))},[j.ACTIONS.UPDATE_APPLICATION_CONFIG](e,t){e.commit(j.MUTATIONS.EMPTY_ERROR_MESSAGES),Ge.patch("config",t).then(n=>{n.data.status==="success"?(e.commit(j.MUTATIONS.UPDATE_APPLICATION_CONFIG,n.data.data),dt.push("/admin/application")):fe(e,null)}).catch(n=>fe(e,n))},[j.ACTIONS.UPDATE_APPLICATION_LANGUAGE](e,t){var n;(n=document.querySelector("html"))==null||n.setAttribute("lang",t),e.commit(j.MUTATIONS.UPDATE_LANG,t),jHe.value=t}},YHe={[j.GETTERS.APP_CONFIG]:e=>e.application.config,[j.GETTERS.APP_LOADING]:e=>e.appLoading,[j.GETTERS.APP_STATS]:e=>e.application.statistics,[j.GETTERS.DARK_MODE]:e=>e.darkMode,[j.GETTERS.ERROR_MESSAGES]:e=>e.errorMessages,[j.GETTERS.LANGUAGE]:e=>e.language,[j.GETTERS.LOCALE]:e=>e.locale},XHe={[j.MUTATIONS.EMPTY_ERROR_MESSAGES](e){e.errorMessages=null},[j.MUTATIONS.SET_ERROR_MESSAGES](e,t){e.errorMessages=t},[j.MUTATIONS.UPDATE_APPLICATION_CONFIG](e,t){e.application.config=t},[j.MUTATIONS.UPDATE_APPLICATION_LOADING](e,t){e.appLoading=t},[j.MUTATIONS.UPDATE_APPLICATION_PRIVACY_POLICY](e,t){e.application.config.privacy_policy=t.privacy_policy,e.application.config.privacy_policy_date=t.privacy_policy_date},[j.MUTATIONS.UPDATE_APPLICATION_STATS](e,t){e.application.statistics=t},[j.MUTATIONS.UPDATE_LANG](e,t){t in Ls?(e.language=t,e.locale=Ls[t]):(e.language="en",e.locale=Qo)},[j.MUTATIONS.UPDATE_DARK_MODE](e,t){e.darkMode=t}},QHe={root:!0,language:"en",locale:Qo,errorMessages:null,application:{statistics:{sports:0,uploads_dir_size:0,users:0,workouts:0}},appLoading:!1,darkMode:null},ZHe={[Pt.ACTIONS.GET_SPORTS](e,t){e.commit(j.MUTATIONS.EMPTY_ERROR_MESSAGES),Ge.get(`sports${t?"?check_workouts=true":""}`).then(n=>{n.data.status==="success"?(e.commit(Pt.MUTATIONS.SET_SPORTS,n.data.data.sports),e.commit(Q.MUTATIONS.UPDATE_USER_LOADING,!1)):fe(e,null)}).catch(n=>fe(e,n))},[Pt.ACTIONS.UPDATE_SPORTS](e,t){e.commit(j.MUTATIONS.EMPTY_ERROR_MESSAGES),Ge.patch(`sports/${t.id}`,{is_active:t.isActive}).then(n=>{n.data.status==="success"?e.dispatch(Pt.ACTIONS.GET_SPORTS):fe(e,null)}).catch(n=>fe(e,n))}},JHe={[Pt.GETTERS.SPORTS]:e=>e.sports},eVe={[Pt.MUTATIONS.SET_SPORTS](e,t){e.sports=t}},tVe={sports:[]},nVe={state:tVe,actions:ZHe,getters:JHe,mutations:eVe},aVe={[Ut.ACTIONS.GET_USER_STATS](e,t){e.commit(j.MUTATIONS.EMPTY_ERROR_MESSAGES),Ge.get(`stats/${t.username}/by_time`,{params:t.params}).then(n=>{n.data.status==="success"?e.commit(Ut.MUTATIONS.UPDATE_USER_STATS,n.data.data.statistics):fe(e,null)}).catch(n=>fe(e,n))},[Ut.ACTIONS.GET_USER_SPORT_STATS](e,t){e.commit(j.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(Ut.MUTATIONS.UPDATE_STATS_LOADING,!0),Ge.get(`stats/${t.username}/by_sport`,{params:{sport_id:t.sportId}}).then(n=>{n.data.status==="success"?(e.commit(Ut.MUTATIONS.UPDATE_USER_SPORT_STATS,n.data.data.statistics),e.commit(Ut.MUTATIONS.UPDATE_TOTAL_WORKOUTS,n.data.data.total_workouts)):fe(e,null)}).catch(n=>fe(e,n)).finally(()=>e.commit(Ut.MUTATIONS.UPDATE_STATS_LOADING,!1))}},sVe={[Ut.GETTERS.USER_SPORT_STATS]:e=>e.sportStatistics,[Ut.GETTERS.USER_STATS]:e=>e.statistics,[Ut.GETTERS.STATS_LOADING]:e=>e.loading,[Ut.GETTERS.TOTAL_WORKOUTS]:e=>e.totalWorkouts},rVe={[Ut.MUTATIONS.UPDATE_USER_STATS](e,t){e.statistics=t},[Ut.MUTATIONS.EMPTY_USER_STATS](e){e.statistics={}},[Ut.MUTATIONS.EMPTY_USER_SPORT_STATS](e){e.sportStatistics={},e.totalWorkouts=0},[Ut.MUTATIONS.UPDATE_USER_SPORT_STATS](e,t){e.sportStatistics=t},[Ut.MUTATIONS.UPDATE_STATS_LOADING](e,t){e.loading=t},[Ut.MUTATIONS.UPDATE_TOTAL_WORKOUTS](e,t){e.totalWorkouts=t}},oVe={statistics:{},sportStatistics:{},totalWorkouts:0,loading:!1},iVe={state:oVe,actions:aVe,getters:sVe,mutations:rVe},uVe={[Be.GETTERS.USER]:e=>e.user,[Be.GETTERS.USERS]:e=>e.users,[Be.GETTERS.USERS_IS_SUCCESS]:e=>e.isSuccess,[Be.GETTERS.USERS_LOADING]:e=>e.loading,[Be.GETTERS.USERS_PAGINATION]:e=>e.pagination},lVe={[Be.MUTATIONS.UPDATE_USER](e,t){e.user=t},[Be.MUTATIONS.UPDATE_USER_IN_USERS](e,t){e.users=e.users.map(n=>n.username===t.username?t:n)},[Be.MUTATIONS.UPDATE_USERS](e,t){e.users=t},[Be.MUTATIONS.UPDATE_USERS_LOADING](e,t){e.loading=t},[Be.MUTATIONS.UPDATE_USERS_PAGINATION](e,t){e.pagination=t},[Be.MUTATIONS.UPDATE_IS_SUCCESS](e,t){e.isSuccess=t}},cVe={user:{},users:[],loading:!1,isSuccess:!1,pagination:{}},dVe={state:cVe,actions:LHe,getters:uVe,mutations:lVe},Ui=(e,t,n)=>{e.commit(j.MUTATIONS.EMPTY_ERROR_MESSAGES),Ge.get("workouts",{params:t}).then(a=>{a.data.status==="success"?(e.commit(Re.MUTATIONS[n],a.data.data.workouts),n===Is.SET_USER_WORKOUTS&&e.commit(Re.MUTATIONS.SET_WORKOUTS_PAGINATION,a.data.pagination)):fe(e,null)}).catch(a=>fe(e,a))},EVe={[Re.ACTIONS.GET_CALENDAR_WORKOUTS](e,t){e.commit(Re.MUTATIONS.EMPTY_CALENDAR_WORKOUTS),Ui(e,t,Is.SET_CALENDAR_WORKOUTS)},[Re.ACTIONS.GET_USER_WORKOUTS](e,t){Ui(e,t,Is.SET_USER_WORKOUTS)},[Re.ACTIONS.GET_TIMELINE_WORKOUTS](e,t){Ui(e,t,Is.SET_TIMELINE_WORKOUTS)},[Re.ACTIONS.GET_MORE_TIMELINE_WORKOUTS](e,t){Ui(e,t,Is.ADD_TIMELINE_WORKOUTS)},[Re.ACTIONS.GET_WORKOUT_DATA](e,t){e.commit(j.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(Re.MUTATIONS.SET_WORKOUT_LOADING,!0);const n=t.segmentId?`/segment/${t.segmentId}`:"";Ge.get(`workouts/${t.workoutId}`).then(a=>{const s=a.data.data.workouts[0];if(a.data.status==="success"){if(t.segmentId&&(s.segments.length===0||!s.segments[+t.segmentId-1]))throw new Error("WORKOUT_NOT_FOUND");e.commit(Re.MUTATIONS.SET_WORKOUT,a.data.data.workouts[0]),a.data.data.workouts[0].with_gpx&&(Ge.get(`workouts/${t.workoutId}/chart_data${n}`).then(r=>{r.data.status==="success"&&e.commit(Re.MUTATIONS.SET_WORKOUT_CHART_DATA,r.data.data.chart_data)}),Ge.get(`workouts/${t.workoutId}/gpx${n}`).then(r=>{r.data.status==="success"&&e.commit(Re.MUTATIONS.SET_WORKOUT_GPX,r.data.data.gpx)}))}else e.commit(Re.MUTATIONS.EMPTY_WORKOUT),fe(e,null)}).catch(a=>{e.commit(Re.MUTATIONS.EMPTY_WORKOUT),fe(e,a)}).finally(()=>e.commit(Re.MUTATIONS.SET_WORKOUT_LOADING,!1))},[Re.ACTIONS.DELETE_WORKOUT](e,t){e.commit(j.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(Re.MUTATIONS.SET_WORKOUT_LOADING,!0),Ge.delete(`workouts/${t.workoutId}`).then(()=>{e.commit(Re.MUTATIONS.EMPTY_WORKOUT),e.dispatch(Q.ACTIONS.GET_USER_PROFILE),dt.push("/")}).catch(n=>{fe(e,n)}).finally(()=>e.commit(Re.MUTATIONS.SET_WORKOUT_LOADING,!1))},[Re.ACTIONS.EDIT_WORKOUT](e,t){e.commit(j.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(Re.MUTATIONS.SET_WORKOUT_LOADING,!0),Ge.patch(`workouts/${t.workoutId}`,t.data).then(()=>{e.dispatch(Q.ACTIONS.GET_USER_PROFILE),e.dispatch(Re.ACTIONS.GET_WORKOUT_DATA,{workoutId:t.workoutId}).then(()=>{dt.push({name:"Workout",params:{workoutId:t.workoutId}})})}).catch(n=>{fe(e,n)}).finally(()=>e.commit(Re.MUTATIONS.SET_WORKOUT_LOADING,!1))},[Re.ACTIONS.ADD_WORKOUT](e,t){if(e.commit(j.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(Re.MUTATIONS.SET_WORKOUT_LOADING,!0),!t.file)throw new Error("No file part");const n=t.notes.replace(/"/g,'\\"'),a=new FormData;a.append("file",t.file),a.append("data",`{"sport_id": ${t.sport_id}, "notes": "${n}", "equipment_ids": [${t.equipment_ids.map(s=>`"${s}"`).join(",")}]}`),Ge.post("workouts",a,{headers:{"content-type":"multipart/form-data"}}).then(s=>{if(s.data.status==="created"){e.dispatch(Q.ACTIONS.GET_USER_PROFILE);const r=s.data.data.workouts[0];dt.push(s.data.data.workouts.length===1?`/workouts/${r.id}`:"/")}}).catch(s=>{fe(e,s)}).finally(()=>e.commit(Re.MUTATIONS.SET_WORKOUT_LOADING,!1))},[Re.ACTIONS.ADD_WORKOUT_WITHOUT_GPX](e,t){e.commit(j.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(Re.MUTATIONS.SET_WORKOUT_LOADING,!0),Ge.post("workouts/no_gpx",t).then(n=>{if(n.data.status==="created"){e.dispatch(Q.ACTIONS.GET_USER_PROFILE);const a=n.data.data.workouts[0];dt.push(`/workouts/${a.id}`)}}).catch(n=>{fe(e,n)}).finally(()=>e.commit(Re.MUTATIONS.SET_WORKOUT_LOADING,!1))}},fVe={[Re.GETTERS.CALENDAR_WORKOUTS]:e=>e.calendar_workouts,[Re.GETTERS.TIMELINE_WORKOUTS]:e=>e.timeline_workouts,[Re.GETTERS.USER_WORKOUTS]:e=>e.user_workouts,[Re.GETTERS.WORKOUT_DATA]:e=>e.workoutData,[Re.GETTERS.WORKOUTS_PAGINATION]:e=>e.pagination},pVe={[Re.MUTATIONS.ADD_TIMELINE_WORKOUTS](e,t){e.timeline_workouts=e.timeline_workouts.concat(t)},[Re.MUTATIONS.SET_CALENDAR_WORKOUTS](e,t){e.calendar_workouts=t},[Re.MUTATIONS.SET_TIMELINE_WORKOUTS](e,t){e.timeline_workouts=t},[Re.MUTATIONS.SET_USER_WORKOUTS](e,t){e.user_workouts=t},[Re.MUTATIONS.SET_WORKOUTS_PAGINATION](e,t){e.pagination=t},[Re.MUTATIONS.SET_WORKOUT](e,t){e.workoutData.workout=t},[Re.MUTATIONS.SET_WORKOUT_CHART_DATA](e,t){e.workoutData.chartData=t},[Re.MUTATIONS.SET_WORKOUT_GPX](e,t){e.workoutData.gpx=t},[Re.MUTATIONS.SET_WORKOUT_LOADING](e,t){e.workoutData.loading=t},[Re.MUTATIONS.EMPTY_CALENDAR_WORKOUTS](e){e.calendar_workouts=[]},[Re.MUTATIONS.EMPTY_WORKOUTS](e){e.calendar_workouts=[],e.user_workouts=[],e.timeline_workouts=[]},[Re.MUTATIONS.EMPTY_WORKOUT](e){e.workoutData={gpx:"",loading:!1,workout:{},chartData:[]}}},mVe={calendar_workouts:[],timeline_workouts:[],pagination:{},user_workouts:[],workoutData:{gpx:"",loading:!1,workout:{},chartData:[]}},_Ve={state:mVe,actions:EVe,getters:fVe,mutations:pVe},TVe={authUserModule:wHe,equipmentModule:xHe,oAuthModule:KHe,sportsModule:nVe,statsModule:iVe,usersModule:dVe,workoutsModule:_Ve},hVe={state:QHe,actions:qHe,getters:YHe,mutations:XHe,modules:TVe},Eo=vC(hVe),xf=Mt.create({baseURL:Vo()});xf.interceptors.request.use(e=>{const t=new AbortController;e.signal=t.signal;const n=Rr(e);co.set(n,t);const a=Eo.getters[Q.GETTERS.AUTH_TOKEN];if(a){const s=`Bearer ${a}`;e.headers&&e.headers.Authorization!==s&&(e.headers.Authorization=`Bearer ${a}`)}return e},e=>Promise.reject(e));xf.interceptors.response.use(e=>(Rr(e.config),e),e=>(e.message!=="canceled"&&e.response&&Rr(e.response.config),Promise.reject(e)));const Ge=xf,cE=(e,t)=>e.push.apply(e,t),Nr=e=>e.sort((t,n)=>t.i-n.i||t.j-n.j),LT=e=>{const t={};let n=1;return e.forEach(a=>{t[a]=n,n+=1}),t};var SVe={4:[[1,2],[2,3]],5:[[1,3],[2,3],[2,4]],6:[[1,2],[2,4],[4,5]],7:[[1,3],[2,3],[4,5],[4,6]],8:[[2,4],[4,6]]};const yT=2050,$T=1e3,AVe=SVe,OVe=10,gVe=1e4,CO=10,DO=50,PO=20,LO=/^[A-Z\xbf-\xdf][^A-Z\xbf-\xdf]+$/,IVe=/^[^A-Z\xbf-\xdf]+[A-Z\xbf-\xdf]$/,RVe=/^[A-Z\xbf-\xdf]+$/,yO=/^[^a-z\xdf-\xff]+$/,NVe=/^[a-z\xdf-\xff]+$/,vVe=/^[^A-Z\xbf-\xdf]+$/,bVe=/[a-z\xdf-\xff]/,CVe=/[A-Z\xbf-\xdf]/,DVe=/[^A-Za-z\xbf-\xdf]/gi,PVe=/^\d+$/,Bf=new Date().getFullYear(),LVe={recentYear:/19\d\d|200\d|201\d|202\d/g},$O=[" ",",",";",":","|","/","\\","_",".","-"],yVe=$O.length;class $Ve{match({password:t}){const n=[...this.getMatchesWithoutSeparator(t),...this.getMatchesWithSeparator(t)],a=this.filterNoise(n);return Nr(a)}getMatchesWithSeparator(t){const n=[],a=/^(\d{1,4})([\s/\\_.-])(\d{1,2})\2(\d{1,4})$/;for(let s=0;s<=Math.abs(t.length-6);s+=1)for(let r=s+5;r<=s+9&&!(r>=t.length);r+=1){const o=t.slice(s,+r+1||9e9),i=a.exec(o);if(i!=null){const u=this.mapIntegersToDayMonthYear([parseInt(i[1],10),parseInt(i[3],10),parseInt(i[4],10)]);u!=null&&n.push({pattern:"date",token:o,i:s,j:r,separator:i[2],year:u.year,month:u.month,day:u.day})}}return n}getMatchesWithoutSeparator(t){const n=[],a=/^\d{4,8}$/,s=r=>Math.abs(r.year-Bf);for(let r=0;r<=Math.abs(t.length-4);r+=1)for(let o=r+3;o<=r+7&&!(o>=t.length);o+=1){const i=t.slice(r,+o+1||9e9);if(a.exec(i)){const u=[],l=i.length;if(AVe[l].forEach(([f,E])=>{const p=this.mapIntegersToDayMonthYear([parseInt(i.slice(0,f),10),parseInt(i.slice(f,E),10),parseInt(i.slice(E),10)]);p!=null&&u.push(p)}),u.length>0){let f=u[0],E=s(u[0]);u.slice(1).forEach(p=>{const T=s(p);T{let a=!1;const s=t.length;for(let r=0;r=n.j){a=!0;break}}return!a})}mapIntegersToDayMonthYear(t){if(t[1]>31||t[1]<=0)return null;let n=0,a=0,s=0;for(let r=0,o=t.length;r99&&i<$T||i>yT)return null;i>31&&(a+=1),i>12&&(n+=1),i<=0&&(s+=1)}return a>=2||n===3||s>=2?null:this.getDayMonth(t)}getDayMonth(t){const n=[[t[2],t.slice(0,2)],[t[0],t.slice(1,3)]],a=n.length;for(let s=0;s=1&&r<=31&&o>=1&&o<=12)return{day:r,month:o}}return null}twoToFourDigitYear(t){return t>99?t:t>50?t+1900:t+2e3}}const Aa=new Uint32Array(65536),UVe=(e,t)=>{const n=e.length,a=t.length,s=1<{const n=t.length,a=e.length,s=[],r=[],o=Math.ceil(n/32),i=Math.ceil(a/32);for(let T=0;T>>N&1,v=s[N/32|0]>>>N&1,D=S|T,P=((S|v)&O)+O^O|S|v;let C=T|~(P|O),y=O&P;C>>>31^A&&(r[N/32|0]^=1<>>31^v&&(s[N/32|0]^=1<>>T&1,g=s[T/32|0]>>>T&1,N=O|l,S=((O|g)&c)+c^c|O|g;let A=l|~(S|c),v=c&S;p+=A>>>a-1&1,p-=v>>>a-1&1,A>>>31^R&&(r[T/32|0]^=1<>>31^g&&(s[T/32|0]^=1<{if(e.length{const a=e.length<=t.length,s=e.length<=n;return a||s?Math.ceil(e.length/4):n},WVe=(e,t,n)=>{let a=0;const s=Object.keys(t).find(r=>{const o=MVe(e,r,n);if(Math.abs(e.length-r.length)>o)return!1;const i=wVe(e,r),u=i<=o;return u&&(a=i),u});return s?{levenshteinDistance:a,levenshteinDistanceEntry:s}:{}};var UT={a:["4","@"],b:["8"],c:["(","{","[","<"],d:["6","|)"],e:["3"],f:["#"],g:["6","9","&"],h:["#","|-|"],i:["1","!","|"],k:["<","|<"],l:["!","1","|","7"],m:["^^","nn","2n","/\\\\/\\\\"],n:["//"],o:["0","()"],q:["9"],u:["|_|"],s:["$","5"],t:["+","7"],v:["<",">","/"],w:["^/","uu","vv","2u","2v","\\\\/\\\\/"],x:["%","><"],z:["2"]},Fc={warnings:{straightRow:"straightRow",keyPattern:"keyPattern",simpleRepeat:"simpleRepeat",extendedRepeat:"extendedRepeat",sequences:"sequences",recentYears:"recentYears",dates:"dates",topTen:"topTen",topHundred:"topHundred",common:"common",similarToCommon:"similarToCommon",wordByItself:"wordByItself",namesByThemselves:"namesByThemselves",commonNames:"commonNames",userInputs:"userInputs",pwned:"pwned"},suggestions:{l33t:"l33t",reverseWords:"reverseWords",allUppercase:"allUppercase",capitalization:"capitalization",dates:"dates",recentYears:"recentYears",associatedYears:"associatedYears",sequences:"sequences",repeated:"repeated",longerKeyboardPattern:"longerKeyboardPattern",anotherWord:"anotherWord",useWords:"useWords",noNeed:"noNeed",pwned:"pwned"},timeEstimation:{ltSecond:"ltSecond",second:"second",seconds:"seconds",minute:"minute",minutes:"minutes",hour:"hour",hours:"hours",day:"day",days:"days",month:"month",months:"months",year:"year",years:"years",centuries:"centuries"}};class wo{constructor(t=[]){this.parents=t,this.children=new Map}addSub(t,...n){const a=t.charAt(0);this.children.has(a)||this.children.set(a,new wo([...this.parents,a]));let s=this.children.get(a);for(let r=1;r(Object.entries(e).forEach(([n,a])=>{a.forEach(s=>{t.addSub(s,n)})}),t);class FVe{constructor(){this.matchers={},this.l33tTable=UT,this.trieNodeRoot=kT(UT,new wo),this.dictionary={userInputs:[]},this.rankedDictionaries={},this.rankedDictionariesMaxWordSize={},this.translations=Fc,this.graphs={},this.useLevenshteinDistance=!1,this.levenshteinThreshold=2,this.l33tMaxSubstitutions=100,this.maxLength=256,this.setRankedDictionaries()}setOptions(t={}){t.l33tTable&&(this.l33tTable=t.l33tTable,this.trieNodeRoot=kT(t.l33tTable,new wo)),t.dictionary&&(this.dictionary=t.dictionary,this.setRankedDictionaries()),t.translations&&this.setTranslations(t.translations),t.graphs&&(this.graphs=t.graphs),t.useLevenshteinDistance!==void 0&&(this.useLevenshteinDistance=t.useLevenshteinDistance),t.levenshteinThreshold!==void 0&&(this.levenshteinThreshold=t.levenshteinThreshold),t.l33tMaxSubstitutions!==void 0&&(this.l33tMaxSubstitutions=t.l33tMaxSubstitutions),t.maxLength!==void 0&&(this.maxLength=t.maxLength)}setTranslations(t){if(this.checkCustomTranslations(t))this.translations=t;else throw new Error("Invalid translations object fallback to keys")}checkCustomTranslations(t){let n=!0;return Object.keys(Fc).forEach(a=>{if(a in t){const s=a;Object.keys(Fc[s]).forEach(r=>{r in t[s]||(n=!1)})}else n=!1}),n}setRankedDictionaries(){const t={},n={};Object.keys(this.dictionary).forEach(a=>{t[a]=LT(this.dictionary[a]),n[a]=this.getRankedDictionariesMaxWordSize(this.dictionary[a])}),this.rankedDictionaries=t,this.rankedDictionariesMaxWordSize=n}getRankedDictionariesMaxWordSize(t){const n=t.map(a=>typeof a!="string"?a.toString().length:a.length);return n.length===0?0:n.reduce((a,s)=>Math.max(a,s),-1/0)}buildSanitizedRankedDictionary(t){const n=[];return t.forEach(a=>{const s=typeof a;(s==="string"||s==="number"||s==="boolean")&&n.push(a.toString().toLowerCase())}),LT(n)}extendUserInputsDictionary(t){this.dictionary.userInputs||(this.dictionary.userInputs=[]);const n=[...this.dictionary.userInputs,...t];this.rankedDictionaries.userInputs=this.buildSanitizedRankedDictionary(n),this.rankedDictionariesMaxWordSize.userInputs=this.getRankedDictionariesMaxWordSize(n)}addMatcher(t,n){this.matchers[t]?console.info(`Matcher ${t} already exists`):this.matchers[t]=n}}const ze=new FVe;class zVe{constructor(t){this.defaultMatch=t}match({password:t}){const n=t.split("").reverse().join("");return this.defaultMatch({password:n}).map(a=>({...a,token:a.token.split("").reverse().join(""),reversed:!0,i:t.length-1-a.j,j:t.length-1-a.i}))}}class xVe{constructor({substr:t,limit:n,trieRoot:a}){this.buffer=[],this.finalPasswords=[],this.substr=t,this.limit=n,this.trieRoot=a}getAllPossibleSubsAtIndex(t){const n=[];let a=this.trieRoot;for(let s=t;s=this.limit)return;if(a===this.substr.length){t===n&&this.finalPasswords.push({password:this.buffer.join(""),changes:r});return}const u=[...this.getAllPossibleSubsAtIndex(a)];let l=!1;for(let c=a+u.length-1;c>=a;c-=1){const f=u[c-a];if(f.isTerminal()){if(o===f.parents.join("")&&i>=3)continue;l=!0;const E=f.subs;for(const p of E){this.buffer.push(p);const T=r.concat({i:s,letter:p,substitution:f.parents.join("")});if(this.helper({onlyFullSub:t,isFullSub:n,index:c+1,subIndex:s+p.length,changes:T,lastSubLetter:f.parents.join(""),consecutiveSubCount:o===f.parents.join("")?i+1:1}),this.buffer.pop(),this.finalPasswords.length>=this.limit)return}}}if(!t||!l){const c=this.substr.charAt(a);this.buffer.push(c),this.helper({onlyFullSub:t,isFullSub:n&&!l,index:a+1,subIndex:s+1,changes:r,lastSubLetter:o,consecutiveSubCount:i}),this.buffer.pop()}}getAll(){return this.helper({onlyFullSub:!0,isFullSub:!0,index:0,subIndex:0,changes:[],lastSubLetter:void 0,consecutiveSubCount:0}),this.helper({onlyFullSub:!1,isFullSub:!0,index:0,subIndex:0,changes:[],lastSubLetter:void 0,consecutiveSubCount:0}),this.finalPasswords}}const BVe=(e,t,n)=>new xVe({substr:e,limit:t,trieRoot:n}).getAll(),GVe=(e,t,n)=>{const s=e.changes.filter(l=>l.il-c.letter.length+c.substitution.length,t),r=e.changes.filter(l=>l.i>=t&&l.i<=n),o=r.reduce((l,c)=>l-c.letter.length+c.substitution.length,n-t+s),i=[],u=[];return r.forEach(l=>{i.findIndex(f=>f.letter===l.letter&&f.substitution===l.substitution)<0&&(i.push({letter:l.letter,substitution:l.substitution}),u.push(`${l.substitution} -> ${l.letter}`))}),{i:s,j:o,subs:i,subDisplay:u.join(", ")}};class HVe{constructor(t){this.defaultMatch=t}isAlreadyIncluded(t,n){return t.some(a=>Object.entries(a).every(([s,r])=>s==="subs"||r===n[s]))}match({password:t}){const n=[],a=BVe(t,ze.l33tMaxSubstitutions,ze.trieNodeRoot);let s=!1,r=!0;return a.forEach(o=>{if(s)return;const i=this.defaultMatch({password:o.password,useLevenshtein:r});r=!1,i.forEach(u=>{s||(s=u.i===0&&u.j===t.length-1);const l=GVe(o,u.i,u.j),c=t.slice(l.i,+l.j+1||9e9),f={...u,l33t:!0,token:c,...l},E=this.isAlreadyIncluded(n,f);c.toLowerCase()!==u.matchedWord&&!E&&n.push(f)})}),n.filter(o=>o.token.length>1)}}class VVe{constructor(){this.l33t=new HVe(this.defaultMatch),this.reverse=new zVe(this.defaultMatch)}match({password:t}){const n=[...this.defaultMatch({password:t}),...this.reverse.match({password:t}),...this.l33t.match({password:t})];return Nr(n)}defaultMatch({password:t,useLevenshtein:n=!0}){const a=[],s=t.length,r=t.toLowerCase();return Object.keys(ze.rankedDictionaries).forEach(o=>{const i=ze.rankedDictionaries[o],u=ze.rankedDictionariesMaxWordSize[o],l=Math.min(u,s);for(let c=0;c{const r=n[s];r.lastIndex=0;let o;for(;o=r.exec(t);)if(o){const i=o[0];a.push({pattern:"regex",token:i,i:o.index,j:o.index+o[0].length-1,regexName:s,regexMatch:o})}}),Nr(a)}}var Ws={nCk(e,t){let n=e;if(t>n)return 0;if(t===0)return 1;let a=1;for(let s=1;s<=t;s+=1)a*=n,a/=s,n-=1;return a},log10(e){return e===0?0:Math.log(e)/Math.log(10)},log2(e){return Math.log(e)/Math.log(2)},factorial(e){let t=1;for(let n=2;n<=e;n+=1)t*=n;return t}},jVe=({token:e})=>{let t=OVe**e.length;t===Number.POSITIVE_INFINITY&&(t=Number.MAX_VALUE);let n;return e.length===1?n=CO+1:n=DO+1,Math.max(t,n)},qVe=({year:e,separator:t})=>{let a=Math.max(Math.abs(e-Bf),PO)*365;return t&&(a*=4),a};const YVe=e=>{const t=e.split(""),n=t.filter(o=>o.match(CVe)).length,a=t.filter(o=>o.match(bVe)).length;let s=0;const r=Math.min(n,a);for(let o=1;o<=r;o+=1)s+=Ws.nCk(n+a,o);return s};var XVe=e=>{const t=e.replace(DVe,"");if(t.match(vVe)||t.toLowerCase()===t)return 1;const n=[LO,IVe,yO],a=n.length;for(let s=0;s{let n=0,a=e.indexOf(t);for(;a>=0;)n+=1,a=e.indexOf(t,a+t.length);return n},QVe=({sub:e,token:t})=>{const n=t.toLowerCase(),a=wT(n,e.substitution),s=wT(n,e.letter);return{subbedCount:a,unsubbedCount:s}};var ZVe=({l33t:e,subs:t,token:n})=>{if(!e)return 1;let a=1;return t.forEach(s=>{const{subbedCount:r,unsubbedCount:o}=QVe({sub:s,token:n});if(r===0||o===0)a*=2;else{const i=Math.min(o,r);let u=0;for(let l=1;l<=i;l+=1)u+=Ws.nCk(o+r,l);a*=u}}),a},JVe=({rank:e,reversed:t,l33t:n,subs:a,token:s,dictionaryName:r})=>{const o=e,i=XVe(s),u=ZVe({l33t:n,subs:a,token:s}),l=t&&2||1;let c;return r==="diceware"?c=6**5/2:c=o*i*u*l,{baseGuesses:o,uppercaseVariations:i,l33tVariations:u,calculation:c}},eKe=({regexName:e,regexMatch:t,token:n})=>{const a={alphaLower:26,alphaUpper:26,alpha:52,alphanumeric:62,digits:10,symbols:33};if(e in a)return a[e]**n.length;switch(e){case"recentYear":return Math.max(Math.abs(parseInt(t[0],10)-Bf),PO)}return 0},tKe=({baseGuesses:e,repeatCount:t})=>e*t,nKe=({token:e,ascending:t})=>{const n=e.charAt(0);let a=0;return["a","A","z","Z","0","1","9"].includes(n)?a=4:n.match(/\d/)?a=10:a=26,t||(a*=2),a*e.length};const aKe=e=>{let t=0;return Object.keys(e).forEach(n=>{const a=e[n];t+=a.filter(s=>!!s).length}),t/=Object.entries(e).length,t},sKe=({token:e,graph:t,turns:n})=>{const a=Object.keys(ze.graphs[t]).length,s=aKe(ze.graphs[t]);let r=0;const o=e.length;for(let i=2;i<=o;i+=1){const u=Math.min(n,i-1);for(let l=1;l<=u;l+=1)r+=Ws.nCk(i-1,l-1)*a*s**l}return r};var rKe=({graph:e,token:t,shiftedCount:n,turns:a})=>{let s=sKe({token:t,graph:e,turns:a});if(n){const r=t.length-n;if(n===0||r===0)s*=2;else{let o=0;for(let i=1;i<=Math.min(n,r);i+=1)o+=Ws.nCk(n+r,i);s*=o}}return Math.round(s)},oKe=()=>yVe;const iKe=(e,t)=>{let n=1;return e.token.lengthMT[e]?MT[e](t):ze.matchers[e]&&"scoring"in ze.matchers[e]?ze.matchers[e].scoring(t):0;var lKe=(e,t)=>{const n={};if("guesses"in e&&e.guesses!=null)return e;const a=iKe(e,t),s=uKe(e.pattern,e);let r=0;typeof s=="number"?r=s:e.pattern==="dictionary"&&(r=s.calculation,n.baseGuesses=s.baseGuesses,n.uppercaseVariations=s.uppercaseVariations,n.l33tVariations=s.l33tVariations);const o=Math.max(r,a);return{...e,...n,guesses:o,guessesLog10:Ws.log10(o)}};const Rn={password:"",optimal:{},excludeAdditive:!1,separatorRegex:void 0,fillArray(e,t){const n=[];for(let a=0;a1&&(s*=this.optimal.pi[a.i-1][t-1]);let r=Ws.factorial(t)*s;this.excludeAdditive||(r+=gVe**(t-1));let o=!1;Object.keys(this.optimal.g[n]).forEach(i=>{const u=this.optimal.g[n][i];parseInt(i,10)<=t&&u<=r&&(o=!0)}),o||(this.optimal.g[n][t]=r,this.optimal.m[n][t]=a,this.optimal.pi[n][t]=s)},bruteforceUpdate(e){let t=this.makeBruteforceMatch(0,e);this.update(t,1);for(let n=1;n<=e;n+=1){t=this.makeBruteforceMatch(n,e);const a=this.optimal.m[n-1];Object.keys(a).forEach(s=>{a[s].pattern!=="bruteforce"&&this.update(t,parseInt(s,10)+1)})}},unwind(e){const t=[];let n=e-1,a=0,s=1/0;const r=this.optimal.g[n];for(r&&Object.keys(r).forEach(o=>{const i=r[o];i=0;){const o=this.optimal.m[n][a];t.unshift(o),n=o.i-1,a-=1}return t}};var dE={mostGuessableMatchSequence(e,t,n=!1){Rn.password=e,Rn.excludeAdditive=n;const a=e.length;let s=Rn.fillArray(a,"array");t.forEach(u=>{s[u.j].push(u)}),s=s.map(u=>u.sort((l,c)=>l.i-c.i)),Rn.optimal={m:Rn.fillArray(a,"object"),pi:Rn.fillArray(a,"object"),g:Rn.fillArray(a,"object")};for(let u=0;u{l.i>0?Object.keys(Rn.optimal.m[l.i-1]).forEach(c=>{Rn.update(l,parseInt(c,10)+1)}):Rn.update(l,1)}),Rn.bruteforceUpdate(u);const r=Rn.unwind(a),o=r.length,i=this.getGuesses(e,o);return{password:e,guesses:i,guessesLog10:Ws.log10(i),sequence:r}},getGuesses(e,t){const n=e.length;let a=0;return e.length===0?a=1:a=Rn.optimal.g[n-1][t],a}};class cKe{match({password:t,omniMatch:n}){const a=[];let s=0;for(;so instanceof Promise)?Promise.all(a):a}normalizeMatch(t,n,a,s){const r={pattern:"repeat",i:a.index,j:n,token:a[0],baseToken:t,baseGuesses:0,repeatCount:a[0].length/t.length};return s instanceof Promise?s.then(o=>({...r,baseGuesses:o})):{...r,baseGuesses:s}}getGreedyMatch(t,n){const a=/(.+)\1+/g;return a.lastIndex=n,a.exec(t)}getLazyMatch(t,n){const a=/(.+?)\1+/g;return a.lastIndex=n,a.exec(t)}setMatchToken(t,n){const a=/^(.+?)\1+$/;let s,r="";if(n&&t[0].length>n[0].length){s=t;const o=a.exec(s[0]);o&&(r=o[1])}else s=n,s&&(r=s[1]);return{match:s,baseToken:r}}getBaseGuesses(t,n){const a=n.match(t);return a instanceof Promise?a.then(r=>dE.mostGuessableMatchSequence(t,r).guesses):dE.mostGuessableMatchSequence(t,a).guesses}}class dKe{constructor(){this.MAX_DELTA=5}match({password:t}){const n=[];if(t.length===1)return[];let a=0,s=null;const r=t.length;for(let o=1;o1||Math.abs(a)===1){const o=Math.abs(a);if(o>0&&o<=this.MAX_DELTA){const i=s.slice(t,+n+1||9e9),{sequenceName:u,sequenceSpace:l}=this.getSequence(i);return r.push({pattern:"sequence",i:t,j:n,token:s.slice(t,+n+1||9e9),sequenceName:u,sequenceSpace:l,ascending:a>0})}}return null}getSequence(t){let n="unicode",a=26;return NVe.test(t)?(n="lower",a=26):RVe.test(t)?(n="upper",a=26):PVe.test(t)&&(n="digits",a=10),{sequenceName:n,sequenceSpace:a}}}class EKe{constructor(){this.SHIFTED_RX=/[~!@#$%^&*()_+QWERTYUIOP{}|ASDFGHJKL:"ZXCVBNM<>?]/}match({password:t}){const n=[];return Object.keys(ze.graphs).forEach(a=>{const s=ze.graphs[a];cE(n,this.helper(t,s,a))}),Nr(n)}checkIfShifted(t,n,a){return!t.includes("keypad")&&this.SHIFTED_RX.test(n.charAt(a))?1:0}helper(t,n,a){let s;const r=[];let o=0;const i=t.length;for(;o2&&r.push({pattern:"spatial",i:o,j:u-1,token:t.slice(o,u),graph:a,turns:c,shiftedCount:s}),o=u;break}}}return r}}const fKe=new RegExp(`[${$O.join("")}]`);class ll{static getMostUsedSeparatorChar(t){const n=[...t.split("").filter(s=>fKe.test(s)).reduce((s,r)=>{const o=s.get(r);return o?s.set(r,o+1):s.set(r,1),s},new Map).entries()].sort(([s,r],[o,i])=>i-r);if(!n.length)return;const a=n[0];if(!(a[1]<2))return a[0]}static getSeparatorRegex(t){return new RegExp(`([^${t} -])(${t})(?!${t})`,"g")}match({password:t}){const n=[];if(t.length===0)return n;const a=ll.getMostUsedSeparatorChar(t);if(a===void 0)return n;const s=ll.getSeparatorRegex(a);for(const r of t.matchAll(s)){if(r.index===void 0)continue;const o=r.index+1;n.push({pattern:"separator",token:a,i:o,j:o})}return n}}class pKe{constructor(){this.matchers={date:$Ve,dictionary:VVe,regex:KVe,repeat:cKe,sequence:dKe,spatial:EKe,separator:ll}}match(t){const n=[],a=[];return[...Object.keys(this.matchers),...Object.keys(ze.matchers)].forEach(r=>{if(!this.matchers[r]&&!ze.matchers[r])return;const o=this.matchers[r]?this.matchers[r]:ze.matchers[r].Matching,u=new o().match({password:t,omniMatch:this});u instanceof Promise?(u.then(l=>{cE(n,l)}),a.push(u)):cE(n,u)}),a.length>0?new Promise((r,o)=>{Promise.all(a).then(()=>{r(Nr(n))}).catch(i=>{o(i)})}):Nr(n)}}const UO=1,kO=UO*60,wO=kO*60,MO=wO*24,WO=MO*31,FO=WO*12,mKe=FO*100,zc={second:UO,minute:kO,hour:wO,day:MO,month:WO,year:FO,century:mKe};class _Ke{translate(t,n){let a=t;n!==void 0&&n!==1&&(a+="s");const{timeEstimation:s}=ze.translations;return s[a].replace("{base}",`${n}`)}estimateAttackTimes(t){const n={onlineThrottling100PerHour:t/.027777777777777776,onlineNoThrottling10PerSecond:t/10,offlineSlowHashing1e4PerSecond:t/1e4,offlineFastHashing1e10PerSecond:t/1e10},a={onlineThrottling100PerHour:"",onlineNoThrottling10PerSecond:"",offlineSlowHashing1e4PerSecond:"",offlineFastHashing1e10PerSecond:""};return Object.keys(n).forEach(s=>{const r=n[s];a[s]=this.displayTime(r)}),{crackTimesSeconds:n,crackTimesDisplay:a,score:this.guessesToScore(t)}}guessesToScore(t){return t<1005?0:t<1000005?1:t<100000005?2:t<1e10+5?3:4}displayTime(t){let n="centuries",a;const s=Object.keys(zc),r=s.findIndex(o=>t-1&&(n=s[r-1],r!==0?a=Math.round(t/zc[n]):n="ltSecond"),this.translate(n,a)}}var TKe=()=>null,hKe=()=>({warning:ze.translations.warnings.dates,suggestions:[ze.translations.suggestions.dates]});const SKe=(e,t)=>{let n=null;return t&&!e.l33t&&!e.reversed?e.rank<=10?n=ze.translations.warnings.topTen:e.rank<=100?n=ze.translations.warnings.topHundred:n=ze.translations.warnings.common:e.guessesLog10<=4&&(n=ze.translations.warnings.similarToCommon),n},AKe=(e,t)=>{let n=null;return t&&(n=ze.translations.warnings.wordByItself),n},OKe=(e,t)=>t?ze.translations.warnings.namesByThemselves:ze.translations.warnings.commonNames,gKe=(e,t)=>{let n=null;const a=e.dictionaryName,s=a==="lastnames"||a.toLowerCase().includes("firstnames");return a==="passwords"?n=SKe(e,t):a.includes("wikipedia")?n=AKe(e,t):s?n=OKe(e,t):a==="userInputs"&&(n=ze.translations.warnings.userInputs),n};var IKe=(e,t)=>{const n=gKe(e,t),a=[],s=e.token;return s.match(LO)?a.push(ze.translations.suggestions.capitalization):s.match(yO)&&s.toLowerCase()!==s&&a.push(ze.translations.suggestions.allUppercase),e.reversed&&e.token.length>=4&&a.push(ze.translations.suggestions.reverseWords),e.l33t&&a.push(ze.translations.suggestions.l33t),{warning:n,suggestions:a}},RKe=e=>e.regexName==="recentYear"?{warning:ze.translations.warnings.recentYears,suggestions:[ze.translations.suggestions.recentYears,ze.translations.suggestions.associatedYears]}:{warning:null,suggestions:[]},NKe=e=>{let t=ze.translations.warnings.extendedRepeat;return e.baseToken.length===1&&(t=ze.translations.warnings.simpleRepeat),{warning:t,suggestions:[ze.translations.suggestions.repeated]}},vKe=()=>({warning:ze.translations.warnings.sequences,suggestions:[ze.translations.suggestions.sequences]}),bKe=e=>{let t=ze.translations.warnings.keyPattern;return e.turns===1&&(t=ze.translations.warnings.straightRow),{warning:t,suggestions:[ze.translations.suggestions.longerKeyboardPattern]}},CKe=()=>null;const WT={warning:null,suggestions:[]};class DKe{constructor(){this.matchers={bruteforce:TKe,date:hKe,dictionary:IKe,regex:RKe,repeat:NKe,sequence:vKe,spatial:bKe,separator:CKe},this.defaultFeedback={warning:null,suggestions:[]},this.setDefaultSuggestions()}setDefaultSuggestions(){this.defaultFeedback.suggestions.push(ze.translations.suggestions.useWords,ze.translations.suggestions.noNeed)}getFeedback(t,n){if(n.length===0)return this.defaultFeedback;if(t>2)return WT;const a=ze.translations.suggestions.anotherWord,s=this.getLongestMatch(n);let r=this.getMatchFeedback(s,n.length===1);return r!=null?r.suggestions.unshift(a):r={warning:null,suggestions:[a]},r}getLongestMatch(t){let n=t[0];return t.slice(1).forEach(s=>{s.token.length>n.token.length&&(n=s)}),n}getMatchFeedback(t,n){return this.matchers[t.pattern]?this.matchers[t.pattern](t,n):ze.matchers[t.pattern]&&"feedback"in ze.matchers[t.pattern]?ze.matchers[t.pattern].feedback(t,n):WT}}const zO=()=>new Date().getTime(),PKe=(e,t,n)=>{const a=new DKe,s=new _Ke,r=dE.mostGuessableMatchSequence(t,e),o=zO()-n,i=s.estimateAttackTimes(r.guesses);return{calcTime:o,...r,...i,feedback:a.getFeedback(i.score,r.sequence)}},LKe=(e,t)=>new pKe().match(e),yKe=(e,t)=>{const n=zO(),a=LKe(e);if(a instanceof Promise)throw new Error("You are using a Promised matcher, please use `zxcvbnAsync` for it.");return PKe(a,e,n)},$Ke="modulepreload",UKe=function(e){return"/"+e},FT={},kt=function(t,n,a){let s=Promise.resolve();if(n&&n.length>0){document.getElementsByTagName("link");const r=document.querySelector("meta[property=csp-nonce]"),o=(r==null?void 0:r.nonce)||(r==null?void 0:r.getAttribute("nonce"));s=Promise.all(n.map(i=>{if(i=UKe(i),i in FT)return;FT[i]=!0;const u=i.endsWith(".css"),l=u?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${i}"]${l}`))return;const c=document.createElement("link");if(c.rel=u?"stylesheet":$Ke,u||(c.as="script",c.crossOrigin=""),c.href=i,o&&c.setAttribute("nonce",o),document.head.appendChild(c),u)return new Promise((f,E)=>{c.addEventListener("load",f),c.addEventListener("error",()=>E(new Error(`Unable to preload CSS for ${i}`)))})}))}return s.then(()=>t()).catch(r=>{const o=new Event("vite:preloadError",{cancelable:!0});if(o.payload=r,window.dispatchEvent(o),!o.defaultPrevented)throw r})},kKe=async e=>{switch(e){case"fr":return await kt(()=>import("./password.fr-LQIeIoMk.js"),[]);case"de":return await kt(()=>import("./password.de-SDMVbHi1.js"),[]);case"it":return await kt(()=>import("./password.it-CReO5S7F.js"),[]);case"es":return await kt(()=>import("./password.es-es-DLU3Rh6X.js"),[]);case"pl":return await kt(()=>import("./password.pl-T3z7Kg0O.js"),[]);case"cs":return await kt(()=>import("./password.cs-CLn3Tyh5.js"),[]);default:return await kt(()=>import("./password.en-BDtqNyGO.js"),[])}},zT=async e=>{const t=await kt(()=>import("./password.common-bdamX4EN.js"),[]),n=await kKe(e),a={graphs:t.adjacencyGraphs,dictionary:{...t.dictionary,...n.dictionary}};ze.setOptions(a)},wKe=e=>{switch(e){case 2:return"AVERAGE";case 3:return"GOOD";case 4:return"STRONG";default:return"WEAK"}},MKe={class:"password-strength"},WKe={for:"password-strength",class:"visually-hidden"},FKe=["value"],zKe={key:0,class:"password-strength-details"},xKe={class:"password-strength-value"},BKe={key:0,class:"info-box"},GKe={class:"password-feedback"},HKe=te({__name:"PasswordStength",props:{password:{}},setup(e){const t=e,{password:n}=_e(t),a=$e(),s=w(()=>a.getters[j.GETTERS.LANGUAGE]),r=w(()=>a.getters[Q.GETTERS.IS_SUCCESS]),o=de(0),i=de(""),u=de([]),l=de("0% 100%");ft(async()=>await zT(s.value));function c(f){const E=yKe(f);o.value=E.score,i.value=wKe(o.value),u.value=E.feedback.suggestions,l.value=o.value*100/4+"% 100%"}return We(()=>s.value,async f=>{await zT(f)}),We(()=>n.value,async f=>{r.value?i.value="":c(f)}),(f,E)=>(h(),I("div",MKe,[d("label",WKe,_(f.$t("user.PASSWORD_STRENGTH.LABEL")),1),d("input",{id:"password-strength",class:pe(["password-slider",`strength-${o.value}`]),style:ba({backgroundSize:l.value}),type:"range",value:o.value,min:"0",max:"4",step:"1",tabindex:-1,autocomplete:"off"},null,14,FKe),i.value?(h(),I("div",zKe,[d("span",xKe,_(f.$t("user.PASSWORD_STRENGTH.LABEL"))+": "+_(f.$t(`user.PASSWORD_STRENGTH.${i.value}`)),1),u.value.length>0?(h(),I("div",BKe,[d("ul",GKe,[(h(!0),I(me,null,Pe(u.value,p=>(h(),I("li",{key:p},_(f.$t(`user.PASSWORD_STRENGTH.SUGGESTIONS.${p}`)),1))),128))])])):M("",!0)])):M("",!0)]))}}),VKe=ie(HKe,[["__scopeId","data-v-338d49ea"]]),KKe=e=>(ot("data-v-0caa3bff"),e=e(),it(),e),jKe={class:"password-input"},qKe=["id","disabled","placeholder","required","type","autocomplete"],YKe={class:"show-password"},XKe={key:0,class:"form-info"},QKe=KKe(()=>d("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1)),ZKe=te({__name:"PasswordInput",props:{checkStrength:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},id:{default:"password"},password:{default:""},placeholder:{},required:{type:Boolean,default:!1},autocomplete:{}},emits:["updatePassword","passwordError"],setup(e,{emit:t}){const n=e,{autocomplete:a,checkStrength:s,disabled:r,id:o,password:i,placeholder:u,required:l}=_e(n),c=de(!1),f=de(""),E=t;function p(){c.value=!c.value}function T(R){E("updatePassword",R.target.value)}function O(){E("passwordError")}return We(()=>i.value,R=>{R===""&&(f.value="",c.value=!1)}),(R,g)=>(h(),I("div",jKe,[Le(d("input",{id:m(o),disabled:m(r),placeholder:m(u),required:m(l),type:c.value?"text":"password","onUpdate:modelValue":g[0]||(g[0]=N=>f.value=N),minlength:"8",onInput:T,onInvalid:O,autocomplete:m(a)},null,40,qKe),[[fN,f.value]]),d("div",YKe,[d("button",{class:"transparent",onClick:be(p,["prevent"]),type:"button"},[V(_(R.$t(`user.${c.value?"HIDE":"SHOW"}_PASSWORD`))+" ",1),d("i",{class:pe(["fa",`fa-eye${c.value?"-slash":""}`]),"aria-hidden":"true"},null,2)])]),m(s)?(h(),I("div",XKe,[QKe,V(" "+_(R.$t("user.PASSWORD_INFO")),1)])):M("",!0),m(s)?(h(),Y(VKe,{key:1,password:f.value},null,8,["password"])):M("",!0)]))}}),EE=ie(ZKe,[["__scopeId","data-v-0caa3bff"]]),Gf=e=>(ot("data-v-d6bbef04"),e=e(),it(),e),JKe={id:"user-infos-edition"},eje={class:"profile-form form-box"},tje={key:1,class:"info-box success-message"},nje={class:"form-items",for:"email"},aje=["disabled"],sje={class:"form-items",for:"password-field"},rje={class:"form-items",for:"new-password-field"},oje={class:"form-buttons"},ije={class:"confirm",type:"submit"},uje={class:"data-export"},lje={class:"info-box"},cje=Gf(()=>d("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1)),dje={key:0,class:"data-export-archive"},Eje=Gf(()=>d("i",{class:"fa fa-download","aria-hidden":"true"},null,-1)),fje={key:1},pje={key:2},mje=Gf(()=>d("i",{class:"fa fa-spinner fa-pulse","aria-hidden":"true"},null,-1)),_je=te({__name:"UserAccountEdition",props:{user:{}},setup(e){const t=e,{user:n}=_e(t),a=$e(),s=Kt({email:"",password:"",new_password:""}),r=w(()=>a.getters[Q.GETTERS.USER_LOADING]),o=w(()=>a.getters[j.GETTERS.APP_CONFIG]),i=w(()=>a.getters[Q.GETTERS.IS_SUCCESS]),u=de(!1),l=w(()=>a.getters[j.GETTERS.ERROR_MESSAGES]),c=de(!1),f=de(!1),E=w(()=>a.getters[Q.GETTERS.EXPORT_REQUEST]),p=w(()=>S()),T=de(!1);St(()=>{t.user&&(a.dispatch(Q.ACTIONS.GET_REQUEST_DATA_EXPORT),R(t.user))});function O(){c.value=!0}function R(z){s.email=z.email}function g(z){s.password=z}function N(z){s.new_password=z}function S(){return E.value?zn(E.value.created_at,n.value.timezone,n.value.date_format,!0,null,!0):null}function A(){return p.value?B3(new Date(p.value),V3(new Date,1)):!0}function v(){const z={email:s.email,password:s.password};s.new_password&&(z.new_password=s.new_password),u.value=s.email!==n.value.email,a.dispatch(Q.ACTIONS.UPDATE_USER_ACCOUNT,z)}function D(z){f.value=z}function P(z){a.dispatch(Q.ACTIONS.DELETE_ACCOUNT,{username:z})}function C(){a.dispatch(Q.ACTIONS.REQUEST_DATA_EXPORT)}async function y(z){T.value=!0,await Ge.get(`/auth/account/export/${z}`,{responseType:"blob"}).then($=>{const F=window.URL.createObjectURL(new Blob([$.data],{type:"application/zip"})),X=document.createElement("a");X.href=F,X.setAttribute("download",z),document.body.appendChild(X),X.click()}).finally(()=>T.value=!1)}return pt(()=>{a.commit(Q.MUTATIONS.UPDATE_IS_SUCCESS,!1),a.commit(j.MUTATIONS.EMPTY_ERROR_MESSAGES)}),We(()=>i.value,async z=>{z&&(g(""),N(""),R(n.value),c.value=!1)}),We(()=>n.value.email,async()=>{R(n.value)}),(z,$)=>{const F=oe("Modal"),X=oe("ErrorMessage");return h(),I("div",JKe,[f.value?(h(),Y(F,{key:0,title:z.$t("common.CONFIRMATION"),message:z.$t("user.CONFIRM_ACCOUNT_DELETION"),onConfirmAction:$[0]||($[0]=re=>P(m(n).username)),onCancelAction:$[1]||($[1]=re=>D(!1)),onKeydown:$[2]||($[2]=Je(re=>D(!1),["esc"]))},null,8,["title","message"])):M("",!0),d("div",eje,[l.value?(h(),Y(X,{key:0,message:l.value},null,8,["message"])):M("",!0),i.value?(h(),I("div",tje,_(z.$t(`user.PROFILE.SUCCESSFUL_${u.value&&o.value.is_email_sending_enabled?"EMAIL_":""}UPDATE`)),1)):M("",!0),d("form",{class:pe({errors:c.value}),onSubmit:be(v,["prevent"])},[d("label",nje,[V(_(z.$t("user.EMAIL"))+"* ",1),Le(d("input",{id:"email","onUpdate:modelValue":$[3]||($[3]=re=>s.email=re),disabled:r.value,required:!0,onInvalid:O,autocomplete:"email"},null,40,aje),[[at,s.email]])]),d("label",sje,[V(_(z.$t("user.CURRENT_PASSWORD"))+"* ",1),W(EE,{id:"password-field",disabled:r.value,password:s.password,required:!0,onUpdatePassword:g,onPasswordError:O,autocomplete:"current-password"},null,8,["disabled","password"])]),d("label",rje,[V(_(z.$t("user.NEW_PASSWORD"))+" ",1),W(EE,{id:"new-password-field",disabled:r.value,checkStrength:!0,password:s.new_password,isSuccess:!1,onUpdatePassword:N,onPasswordError:O,autocomplete:"new-password"},null,8,["disabled","password"])]),d("div",oje,[d("button",ije,_(z.$t("buttons.SUBMIT")),1),d("button",{class:"cancel",onClick:$[4]||($[4]=be(re=>z.$router.push("/profile"),["prevent"]))},_(z.$t("buttons.CANCEL")),1),d("button",{class:"danger",onClick:$[5]||($[5]=be(re=>D(!0),["prevent"]))},_(z.$t("buttons.DELETE_MY_ACCOUNT")),1),A()?(h(),I("button",{key:0,class:"confirm",onClick:be(C,["prevent"])},_(z.$t("buttons.REQUEST_DATA_EXPORT")),1)):M("",!0)])],34),d("div",uje,[d("span",lje,[cje,V(" "+_(z.$t("user.EXPORT_REQUEST.ONLY_ONE_EXPORT_PER_DAY")),1)]),E.value?(h(),I("div",dje,[V(_(z.$t("user.EXPORT_REQUEST.DATA_EXPORT"))+" ("+_(p.value)+"): ",1),E.value.status==="successful"?(h(),I("span",{key:0,class:"archive-link",onClick:$[6]||($[6]=be(re=>y(E.value.file_name),["prevent"]))},[Eje,V(" "+_(z.$t("user.EXPORT_REQUEST.DOWNLOAD_ARCHIVE"))+" ("+_(m(gu)(E.value.file_size))+") ",1)])):(h(),I("span",fje,_(z.$t(`user.EXPORT_REQUEST.STATUS.${E.value.status}`)),1)),T.value?(h(),I("span",pje,[V(_(z.$t("user.EXPORT_REQUEST.GENERATING_LINK"))+" ",1),mje])):M("",!0)])):M("",!0)])])])}}}),Tje=ie(_je,[["__scopeId","data-v-d6bbef04"]]),hje={id:"user-infos-edition"},Sje={class:"profile-form form-box"},Aje={class:"form-items",for:"registrationDate"},Oje=["value"],gje={class:"form-items",for:"first_name"},Ije=["disabled"],Rje={class:"form-items",for:"last_name"},Nje={class:"form-items",for:"birth_date"},vje=["disabled"],bje={class:"form-items",for:"location"},Cje=["disabled"],Dje={class:"form-items"},Pje={class:"form-buttons"},Lje={class:"confirm",type:"submit"},yje=te({__name:"UserInfosEdition",props:{user:{}},setup(e){const t=e,n=$e(),a=Kt({first_name:"",last_name:"",birth_date:"",location:"",bio:""}),s=w(()=>t.user.created_at?zn(t.user.created_at,t.user.timezone,t.user.date_format):""),r=w(()=>n.getters[Q.GETTERS.USER_LOADING]),o=w(()=>n.getters[j.GETTERS.ERROR_MESSAGES]);St(()=>{t.user&&i(t.user)});function i(c){a.first_name=c.first_name?c.first_name:"",a.last_name=c.last_name?c.last_name:"",a.birth_date=c.birth_date?un(new Date(c.birth_date),"yyyy-MM-dd"):"",a.location=c.location?c.location:"",a.bio=c.bio?c.bio:""}function u(c){a.bio=c}function l(){n.dispatch(Q.ACTIONS.UPDATE_USER_PROFILE,a)}return pt(()=>{n.commit(j.MUTATIONS.EMPTY_ERROR_MESSAGES)}),(c,f)=>{const E=oe("ErrorMessage"),p=oe("CustomTextArea");return h(),I("div",hje,[d("div",Sje,[o.value?(h(),Y(E,{key:0,message:o.value},null,8,["message"])):M("",!0),d("form",{onSubmit:be(l,["prevent"])},[d("label",Aje,[V(_(c.$t("user.PROFILE.REGISTRATION_DATE"))+" ",1),d("input",{id:"registrationDate",value:s.value,disabled:""},null,8,Oje)]),d("label",gje,[V(_(c.$t("user.PROFILE.FIRST_NAME"))+" ",1),Le(d("input",{id:"first_name","onUpdate:modelValue":f[0]||(f[0]=T=>a.first_name=T),disabled:r.value},null,8,Ije),[[at,a.first_name]])]),d("label",Rje,[V(_(c.$t("user.PROFILE.LAST_NAME"))+" ",1),Le(d("input",{id:"last_name","onUpdate:modelValue":f[1]||(f[1]=T=>a.last_name=T)},null,512),[[at,a.last_name]])]),d("label",Nje,[V(_(c.$t("user.PROFILE.BIRTH_DATE"))+" ",1),Le(d("input",{id:"birth_date",type:"date",class:"birth-date","onUpdate:modelValue":f[2]||(f[2]=T=>a.birth_date=T),disabled:r.value},null,8,vje),[[at,a.birth_date]])]),d("label",bje,[V(_(c.$t("user.PROFILE.LOCATION"))+" ",1),Le(d("input",{id:"location","onUpdate:modelValue":f[3]||(f[3]=T=>a.location=T),disabled:r.value},null,8,Cje),[[at,a.location]])]),d("label",Dje,[V(_(c.$t("user.PROFILE.BIO"))+" ",1),W(p,{name:"bio",charLimit:200,input:a.bio,disabled:r.value,onUpdateValue:u},null,8,["input","disabled"])]),d("div",Pje,[d("button",Lje,_(c.$t("buttons.SUBMIT")),1),d("button",{class:"cancel",onClick:f[4]||(f[4]=be(T=>c.$router.push("/profile"),["prevent"]))},_(c.$t("buttons.CANCEL")),1)])],32)])])}}}),$je=ie(yje,[["__scopeId","data-v-d124143f"]]),Uje=e=>(ot("data-v-92649ccc"),e=e(),it(),e),kje={id:"user-picture-edition"},wje={class:"user-picture-form"},Mje={class:"picture-help"},Wje={class:"info-box"},Fje=Uje(()=>d("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1)),zje={class:"picture-buttons"},xje=["disabled"],Bje=te({__name:"UserPictureEdition",props:{user:{}},setup(e){const t=e,n=$e(),{user:a}=_e(t),s=w(()=>n.getters[j.GETTERS.ERROR_MESSAGES]),r=w(()=>n.getters[j.GETTERS.APP_CONFIG]),o=r.value.max_single_file_size?gu(r.value.max_single_file_size):"",i=de(null);function u(){n.dispatch(Q.ACTIONS.DELETE_PICTURE)}function l(f){f.target.files!==null&&(i.value=f.target.files[0])}function c(){i.value&&n.dispatch(Q.ACTIONS.UPDATE_USER_PICTURE,{picture:i.value})}return pt(()=>{n.commit(j.MUTATIONS.EMPTY_ERROR_MESSAGES)}),(f,E)=>{const p=oe("ErrorMessage");return h(),I("div",kje,[d("div",wje,[s.value?(h(),Y(p,{key:0,message:s.value},null,8,["message"])):M("",!0),W(Ko,{user:m(a)},null,8,["user"]),d("form",{onSubmit:be(c,["prevent"])},[d("input",{type:"file",name:"picture",accept:".png,.jpg,.gif",onInput:l},null,32),d("div",Mje,[d("span",Wje,[Fje,V(" "+_(f.$t("workouts.MAX_SIZE"))+": "+_(m(o)),1)])]),d("div",zje,[d("button",{type:"submit",disabled:!i.value},_(f.$t("user.PROFILE.PICTURE_UPDATE")),9,xje),m(a).picture?(h(),I("button",{key:0,class:"danger",onClick:u},_(f.$t("user.PROFILE.PICTURE_REMOVE")),1)):M("",!0),d("button",{class:"cancel",onClick:E[0]||(E[0]=T=>f.$router.push("/profile"))},_(f.$t("user.PROFILE.BACK_TO_PROFILE")),1)])],32)])])}}}),Gje=ie(Bje,[["__scopeId","data-v-92649ccc"]]),xT=["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"],Hje={id:"tz-dropdown"},Vje=["value","disabled","aria-expanded"],Kje=["aria-label"],jje=["id","onClick","onMouseover","autofocus"],qje=te({__name:"TimezoneDropdown",props:{input:{},disabled:{type:Boolean,default:!1}},emits:["updateTimezone"],setup(e,{emit:t}){const n=e,a=t,{input:s,disabled:r}=_e(n),o=de(s.value),i=de(!1),u=de(0),l=w(()=>s.value?xT.filter(A=>c(A)):xT);function c(A){return A.toLowerCase().match(o.value.toLowerCase())}function f(A){u.value=A}function E(A){l.value.length>A&&(o.value=l.value[A],a("updateTimezone",o.value),i.value=!1)}function p(A){A.preventDefault(),l.value.length>0&&E(u.value)}function T(A){A.preventDefault(),i.value=!0,o.value=A.target.value.trim()}function O(){E(u.value)}function R(A){const v=document.getElementById(`tz-dropdown-item-${A}`);v&&(v.focus(),v.scrollIntoView({behavior:"smooth",block:"nearest"}))}function g(){i.value=!0,u.value=u.value===null?0:u.value+=1,u.value>=l.value.length&&(u.value=0),R(u.value)}function N(){i.value=!0,u.value=u.value===null?l.value.length-1:u.value-=1,u.value<=-1&&(u.value=l.value.length-1),R(u.value)}function S(){i.value&&(i.value=!1,o.value=s.value)}return We(()=>n.input,A=>{o.value=A}),(A,v)=>(h(),I("div",Hje,[d("input",{class:"tz-dropdown-input",id:"timezone",name:"timezone",value:o.value,disabled:m(r),required:"",role:"combobox","aria-autocomplete":"list","aria-controls":"tz-dropdown-list","aria-expanded":i.value,onKeydown:[v[0]||(v[0]=Je(D=>S(),["esc"])),Je(p,["enter"]),v[2]||(v[2]=Je(D=>g(),["down"])),v[3]||(v[3]=Je(D=>N(),["up"]))],onInput:T,onBlur:v[1]||(v[1]=D=>O())},null,40,Vje),i.value?(h(),I("ul",{key:0,class:"tz-dropdown-list",id:"tz-dropdown-list",role:"listbox",tabindex:"-1","aria-label":A.$t("user.PROFILE.TIMEZONE",0)},[(h(!0),I(me,null,Pe(l.value,(D,P)=>(h(),I("li",{key:D,id:`tz-dropdown-item-${P}`,class:pe(["tz-dropdown-item",{focus:P===u.value}]),onClick:C=>E(P),onMouseover:C=>f(P),autofocus:P===u.value,role:"option"},_(D),43,jje))),128))],8,Kje)):M("",!0)]))}}),Yje=ie(qje,[["__scopeId","data-v-3d9b6b6f"]]),Xje=e=>(ot("data-v-3130c876"),e=e(),it(),e),Qje={id:"user-preferences-edition"},Zje={class:"profile-form form-box"},Jje={class:"preferences-section"},eqe={class:"form-items"},tqe=["disabled"],nqe=["value"],aqe={class:"form-items"},sqe=["disabled"],rqe=["value"],oqe={class:"form-items"},iqe={class:"form-items"},uqe=["disabled"],lqe=["value"],cqe={class:"form-items form-checkboxes"},dqe={class:"checkboxes-label"},Eqe={class:"checkboxes"},fqe=["id","name","checked","disabled","onInput"],pqe={class:"checkbox-label"},mqe={class:"preferences-section"},_qe={class:"form-items form-checkboxes"},Tqe={class:"checkboxes-label"},hqe={class:"checkboxes"},Sqe=["id","name","checked","disabled","onInput"],Aqe={class:"checkbox-label"},Oqe={class:"form-items form-checkboxes"},gqe={class:"checkboxes-label"},Iqe={class:"checkboxes"},Rqe=["id","name","checked","disabled","onInput"],Nqe={class:"checkbox-label"},vqe={class:"form-items form-checkboxes"},bqe={class:"checkboxes-label"},Cqe={class:"checkboxes"},Dqe=["id","name","checked","disabled","onInput"],Pqe={class:"checkbox-label"},Lqe={class:"form-items form-checkboxes"},yqe={class:"checkboxes-label"},$qe={class:"checkboxes"},Uqe=["id","name","checked","disabled","onInput"],kqe={class:"checkbox-label"},wqe={class:"info-box raw-speed-help"},Mqe=Xje(()=>d("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1)),Wqe={class:"form-buttons"},Fqe={class:"confirm",type:"submit"},zqe=te({__name:"UserPreferencesEdition",props:{user:{}},setup(e){const t=e,n=$e(),a=Kt({display_ascent:!0,imperial_units:!1,language:"en",timezone:"Europe/Paris",date_format:"dd/MM/yyyy",weekm:!1,start_elevation_at_zero:!1,use_raw_gpx_speed:!1,use_dark_mode:!1}),s=[{label:"SUNDAY",value:!1},{label:"MONDAY",value:!0}],r=[{label:"METRIC",value:!1},{label:"IMPERIAL",value:!0}],o=[{label:"DISPLAYED",value:!0},{label:"HIDDEN",value:!1}],i=[{label:"ZERO",value:!0},{label:"MIN_ALT",value:!1}],u=[{label:"FILTERED_SPEED",value:!1},{label:"RAW_SPEED",value:!0}],l=[{label:"DARK",value:!0},{label:"DEFAULT",value:null},{label:"LIGHT",value:!1}],c=w(()=>n.getters[Q.GETTERS.USER_LOADING]),f=w(()=>n.getters[j.GETTERS.ERROR_MESSAGES]),E=w(()=>TGe(new Date().toUTCString(),t.user.timezone,a.language));St(()=>{t.user&&p(t.user)});function p(v){a.display_ascent=v.display_ascent,a.start_elevation_at_zero=v.start_elevation_at_zero?v.start_elevation_at_zero:!1,a.use_raw_gpx_speed=v.use_raw_gpx_speed?v.use_raw_gpx_speed:!1,a.imperial_units=v.imperial_units?v.imperial_units:!1,a.language=v.language&&v.language in or?v.language:"en",a.timezone=v.timezone?v.timezone:"Europe/Paris",a.date_format=v.date_format?v.date_format:"dd/MM/yyyy",a.weekm=v.weekm?v.weekm:!1,a.use_dark_mode=v.use_dark_mode}function T(){n.dispatch(Q.ACTIONS.UPDATE_USER_PREFERENCES,a)}function O(v){a.timezone=v}function R(v){a.start_elevation_at_zero=v}function g(v){a.use_raw_gpx_speed=v}function N(v){a.display_ascent=v}function S(v){a.imperial_units=v}function A(v){a.weekm=v}return pt(()=>{n.commit(j.MUTATIONS.EMPTY_ERROR_MESSAGES)}),(v,D)=>{const P=oe("ErrorMessage");return h(),I("div",Qje,[d("div",Zje,[f.value?(h(),Y(P,{key:0,message:f.value},null,8,["message"])):M("",!0),d("form",{onSubmit:be(T,["prevent"])},[d("div",Jje,_(v.$t("user.PROFILE.INTERFACE")),1),d("label",eqe,[V(_(v.$t("user.PROFILE.LANGUAGE"))+" ",1),Le(d("select",{id:"language","onUpdate:modelValue":D[0]||(D[0]=C=>a.language=C),disabled:c.value},[(h(!0),I(me,null,Pe(m(Sd),C=>(h(),I("option",{value:C.value,key:C.value},_(C.label),9,nqe))),128))],8,tqe),[[ia,a.language]])]),d("label",aqe,[V(_(v.$t("user.PROFILE.THEME_MODE.LABEL"))+" ",1),Le(d("select",{id:"use_dark_mode","onUpdate:modelValue":D[1]||(D[1]=C=>a.use_dark_mode=C),disabled:c.value},[(h(),I(me,null,Pe(l,C=>d("option",{value:C.value,key:C.label},_(v.$t(`user.PROFILE.THEME_MODE.VALUES.${C.label}`)),9,rqe)),64))],8,sqe),[[ia,a.use_dark_mode]])]),d("label",oqe,[V(_(v.$t("user.PROFILE.TIMEZONE"))+" ",1),W(Yje,{input:a.timezone,disabled:c.value,onUpdateTimezone:O},null,8,["input","disabled"])]),d("label",iqe,[V(_(v.$t("user.PROFILE.DATE_FORMAT"))+" ",1),Le(d("select",{id:"date_format","onUpdate:modelValue":D[2]||(D[2]=C=>a.date_format=C),disabled:c.value},[(h(!0),I(me,null,Pe(E.value,C=>(h(),I("option",{value:C.value,key:C.value},_(C.label),9,lqe))),128))],8,uqe),[[ia,a.date_format]])]),d("div",cqe,[d("span",dqe,_(v.$t("user.PROFILE.FIRST_DAY_OF_WEEK")),1),d("div",Eqe,[(h(),I(me,null,Pe(s,C=>d("label",{key:C.label},[d("input",{type:"radio",id:C.label,name:C.label,checked:C.value===a.weekm,disabled:c.value,onInput:y=>A(C.value)},null,40,fqe),d("span",pqe,_(v.$t(`user.PROFILE.${C.label}`)),1)])),64))])]),d("div",mqe,_(v.$t("workouts.WORKOUT",0)),1),d("div",_qe,[d("span",Tqe,_(v.$t("user.PROFILE.UNITS.LABEL")),1),d("div",hqe,[(h(),I(me,null,Pe(r,C=>d("label",{key:C.label},[d("input",{type:"radio",id:C.label,name:C.label,checked:C.value===a.imperial_units,disabled:c.value,onInput:y=>S(C.value)},null,40,Sqe),d("span",Aqe,_(v.$t(`user.PROFILE.UNITS.${C.label}`)),1)])),64))])]),d("div",Oqe,[d("span",gqe,_(v.$t("user.PROFILE.ASCENT_DATA")),1),d("div",Iqe,[(h(),I(me,null,Pe(o,C=>d("label",{key:C.label},[d("input",{type:"radio",id:C.label,name:C.label,checked:C.value===a.display_ascent,disabled:c.value,onInput:y=>N(C.value)},null,40,Rqe),d("span",Nqe,_(v.$t(`common.${C.label}`)),1)])),64))])]),d("div",vqe,[d("span",bqe,_(v.$t("user.PROFILE.ELEVATION_CHART_START.LABEL")),1),d("div",Cqe,[(h(),I(me,null,Pe(i,C=>d("label",{key:C.label},[d("input",{type:"radio",id:C.label,name:C.label,checked:C.value===a.start_elevation_at_zero,disabled:c.value,onInput:y=>R(C.value)},null,40,Dqe),d("span",Pqe,_(v.$t(`user.PROFILE.ELEVATION_CHART_START.${C.label}`)),1)])),64))])]),d("div",Lqe,[d("span",yqe,_(v.$t("user.PROFILE.USE_RAW_GPX_SPEED.LABEL")),1),d("div",$qe,[(h(),I(me,null,Pe(u,C=>d("label",{key:C.label},[d("input",{type:"radio",id:C.label,name:C.label,checked:C.value===a.use_raw_gpx_speed,disabled:c.value,onInput:y=>g(C.value)},null,40,Uqe),d("span",kqe,_(v.$t(`user.PROFILE.USE_RAW_GPX_SPEED.${C.label}`)),1)])),64))]),d("div",wqe,[d("span",null,[Mqe,V(" "+_(v.$t("user.PROFILE.USE_RAW_GPX_SPEED.HELP")),1)])])]),d("div",Wqe,[d("button",Fqe,_(v.$t("buttons.SUBMIT")),1),d("button",{class:"cancel",onClick:D[3]||(D[3]=be(C=>v.$router.push("/profile/preferences"),["prevent"]))},_(v.$t("buttons.CANCEL")),1)])],32)])])}}}),xqe=ie(zqe,[["__scopeId","data-v-3130c876"]]),Bqe={class:"privacy-policy-text"},Gqe={class:"last-update"},Hqe=["innerHTML"],Vqe=["innerHTML"],Kqe="Sun, 26 Feb 2023 17:00:00 GMT",jqe=te({__name:"PrivacyPolicy",setup(e){const t=$e(),n=w(()=>t.getters[j.GETTERS.APP_CONFIG]),a=w(()=>t.getters[j.GETTERS.LANGUAGE]),s=w(()=>t.getters[Q.GETTERS.AUTH_USER_PROFILE]),r=w(()=>c()),o=w(()=>l()),i=w(()=>f()),u=["DATA_COLLECTED","INFORMATION_USAGE","INFORMATION_PROTECTION","INFORMATION_DISCLOSURE","SITE_USAGE_BY_CHILDREN","YOUR_CONSENT","ACCOUNT_DELETION","CHANGES_TO_OUR_PRIVACY_POLICY"];function l(){return s.value.timezone?s.value.timezone:Intl.DateTimeFormat().resolvedOptions().timeZone?Intl.DateTimeFormat().resolvedOptions().timeZone:"Europe/Paris"}function c(){return IO[a.value]}function f(){return zn(n.value.privacy_policy&&n.value.privacy_policy_date?`${n.value.privacy_policy_date}`:Kqe,o.value,r.value,!1)}return(E,p)=>(h(),I("div",Bqe,[d("h1",null,_(He(E.$t("privacy_policy.TITLE"))),1),d("p",Gqe,[V(_(E.$t("privacy_policy.LAST_UPDATE"))+": ",1),d("time",null,_(i.value),1)]),n.value.privacy_policy?(h(),I("div",{key:0,innerHTML:m(ys)(m(ko)(n.value.privacy_policy))},null,8,Hqe)):(h(),I(me,{key:1},Pe(u,T=>(h(),I(me,{key:T},[d("h2",null,_(E.$t(`privacy_policy.CONTENT.${T}.TITLE`)),1),d("p",{innerHTML:m(ys)(E.$t(`privacy_policy.CONTENT.${T}.CONTENT`))},null,8,Vqe)],64))),64))]))}}),xO=ie(jqe,[["__scopeId","data-v-9cb34f1c"]]),qqe={id:"user-privacy-policy"},Yqe={key:1},Xqe={class:"policy-content"},Qqe={for:"accepted_policy",class:"accepted_policy"},Zqe={class:"form-buttons"},Jqe={class:"confirm",type:"submit"},eYe=te({__name:"UserPrivacyPolicyValidation",props:{user:{}},setup(e){const t=e,{user:n}=_e(t),a=$e(),s=w(()=>a.getters[j.GETTERS.ERROR_MESSAGES]),r=de(!1),o=de(!1);function i(){a.dispatch(Q.ACTIONS.ACCEPT_PRIVACY_POLICY,r.value)}function u(){o.value=!0}return pt(()=>{a.commit(j.MUTATIONS.EMPTY_ERROR_MESSAGES)}),(l,c)=>{const f=oe("ErrorMessage"),E=oe("router-link"),p=oe("i18n-t");return h(),I("div",qqe,[s.value?(h(),Y(f,{key:0,message:s.value},null,8,["message"])):M("",!0),m(n).accepted_privacy_policy?(h(),I("div",Yqe,[d("p",null,[W(p,{keypath:"user.YOU_HAVE_ACCEPTED_PRIVACY_POLICY"},{default:le(()=>[W(E,{to:"/privacy-policy"},{default:le(()=>[V(_(l.$t("privacy_policy.TITLE")),1)]),_:1})]),_:1})]),d("button",{class:"cancel",onClick:c[0]||(c[0]=T=>l.$router.push("/profile"))},_(l.$t("user.PROFILE.BACK_TO_PROFILE")),1)])):(h(),I("form",{key:2,class:pe({errors:o.value}),onSubmit:c[3]||(c[3]=be(T=>i(),["prevent"]))},[d("div",Xqe,[W(xO)]),d("label",Qqe,[Le(d("input",{type:"checkbox",id:"accepted_policy",required:"","onUpdate:modelValue":c[1]||(c[1]=T=>r.value=T),onInvalid:u},null,544),[[gl,r.value]]),d("span",null,[W(p,{keypath:"user.READ_AND_ACCEPT_PRIVACY_POLICY"},{default:le(()=>[V(_(l.$t("privacy_policy.TITLE")),1)]),_:1})])]),W(E,{to:"/profile/edit/account"},{default:le(()=>[V(_(l.$t("user.I_WANT_TO_DELETE_MY_ACCOUNT")),1)]),_:1}),d("div",Zqe,[d("button",Jqe,_(l.$t("buttons.SUBMIT")),1),d("button",{class:"cancel",onClick:c[2]||(c[2]=T=>l.$router.push("/profile"))},_(l.$t("user.PROFILE.BACK_TO_PROFILE")),1)])],34))])}}}),tYe=ie(eYe,[["__scopeId","data-v-a7ac61ac"]]),nYe=["equipments:read","equipments:write","profile:read","profile:write","users:read","users:write","workouts:read","workouts:write"],aYe=["application:write"],sYe={id:"new-oauth2-app"},rYe={id:"new-oauth2-title"},oYe={id:"apps-form"},iYe={class:"form-items"},uYe={class:"form-item"},lYe={for:"app-name"},cYe={class:"form-item"},dYe={for:"app-description"},EYe={class:"form-item"},fYe={for:"app-url"},pYe={class:"form-item"},mYe={for:"app-redirect-uri"},_Ye={class:"form-item-scope"},TYe={class:"form-item-scope-label"},hYe={class:"scope-label"},SYe=["name","checked","onChange"],AYe=["innerHTML"],OYe={class:"form-buttons"},gYe=["disabled"],IYe=te({__name:"AddUserApp",props:{authUser:{}},setup(e){const t=e,n=$e(),a=Kt({client_name:"",client_uri:"",client_description:"",description:"",redirect_uri:""}),s=Kt([]),r=w(()=>l(t.authUser,aYe,nYe));function o(){const c={client_name:a.client_name,client_description:a.client_description,client_uri:a.client_uri,redirect_uris:[a.redirect_uri],scope:s.sort().join(" ")};n.dispatch(tt.ACTIONS.CREATE_CLIENT,c)}function i(c){a.client_description=c}function u(c){const f=s.indexOf(c);f>-1?s.splice(f,1):s.push(c)}function l(c,f,E){const p=[...E];return c.admin&&p.push(...f),p.sort()}return(c,f)=>{const E=oe("CustomTextArea");return h(),I("div",sYe,[d("h1",rYe,_(c.$t("oauth2.ADD_A_NEW_APP")),1),d("div",oYe,[d("form",{onSubmit:be(o,["prevent"])},[d("div",iYe,[d("div",uYe,[d("label",lYe,_(c.$t("oauth2.APP.NAME"))+"*",1),Le(d("input",{id:"app-name",type:"text",required:"","onUpdate:modelValue":f[0]||(f[0]=p=>a.client_name=p)},null,512),[[at,a.client_name]])]),d("div",cYe,[d("label",dYe,_(c.$t("oauth2.APP.DESCRIPTION")),1),W(E,{name:"app-description",charLimit:200,input:a.description,onUpdateValue:i},null,8,["input"])]),d("div",EYe,[d("label",fYe,_(c.$t("oauth2.APP.URL"))+"*",1),Le(d("input",{id:"app-url",type:"text",required:"","onUpdate:modelValue":f[1]||(f[1]=p=>a.client_uri=p)},null,512),[[at,a.client_uri]])]),d("div",pYe,[d("label",mYe,_(c.$t("oauth2.APP.REDIRECT_URL"))+"* ",1),Le(d("input",{id:"app-redirect-uri",type:"text",required:"","onUpdate:modelValue":f[2]||(f[2]=p=>a.redirect_uri=p)},null,512),[[at,a.redirect_uri]])]),d("div",_Ye,[d("div",TYe,_(c.$t("oauth2.APP.SCOPE.LABEL"))+"* ",1),(h(!0),I(me,null,Pe(r.value,p=>(h(),I("div",{class:"form-item-scope-checkboxes",key:p},[d("label",hYe,[d("input",{type:"checkbox",name:p,checked:s.includes(p),onChange:T=>u(p)},null,40,SYe),d("code",null,_(p),1)]),d("p",{class:"scope-description",innerHTML:c.$t(`oauth2.APP.SCOPE.${p}_DESCRIPTION`)},null,8,AYe)]))),128))])]),d("div",OYe,[d("button",{class:"confirm",type:"submit",disabled:s.length===0},_(c.$t("buttons.SUBMIT")),9,gYe),d("button",{class:"cancel",onClick:f[3]||(f[3]=be(()=>c.$router.push("/profile/apps"),["prevent"]))},_(c.$t("buttons.CANCEL")),1)])],32)])])}}}),RYe=ie(IYe,[["__scopeId","data-v-e2284e06"]]),NYe={id:"authorize-oauth2-app"},vYe={key:0},bYe={id:"authorize-oauth2-title"},CYe={class:"oauth2-access description-list"},DYe={class:"client-scope"},PYe=["innerHTML"],LYe={class:"authorize-oauth2-buttons"},yYe={key:1},$Ye={class:"no-app"},UYe=te({__name:"AuthorizeUserApp",setup(e){const t=Lt(),n=$e(),a=w(()=>n.getters[tt.GETTERS.CLIENT]),s=w(()=>n.getters[j.GETTERS.ERROR_MESSAGES]);ft(()=>r());function r(){t.query.client_id&&typeof t.query.client_id=="string"&&n.dispatch(tt.ACTIONS.GET_CLIENT_BY_CLIENT_ID,t.query.client_id)}function o(){n.dispatch(tt.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(i,u)=>{const l=oe("router-link"),c=oe("i18n-t"),f=oe("ErrorMessage");return h(),I("div",NYe,[a.value.client_id?(h(),I("div",vYe,[d("h1",bYe,[W(c,{keypath:"oauth2.AUTHORIZE_APP"},{default:le(()=>[W(l,{to:{name:"UserApp",params:{id:a.value.id}}},{default:le(()=>[V(_(a.value.name),1)]),_:1},8,["to"])]),_:1})]),s.value?(h(),Y(f,{key:0,message:s.value},null,8,["message"])):M("",!0),d("div",CYe,[d("p",null,_(i.$t("oauth2.APP_REQUESTING_ACCESS")),1),d("dl",null,[(h(!0),I(me,null,Pe(a.value.scope.split(" "),E=>(h(),I(me,{key:E},[d("dt",DYe,[d("code",null,_(E),1)]),d("dd",{innerHTML:i.$t(`oauth2.APP.SCOPE.${E}_DESCRIPTION`)},null,8,PYe)],64))),128))]),d("div",LYe,[d("button",{class:"danger",onClick:o},_(i.$t("buttons.AUTHORIZE")),1),d("button",{class:"cancel",onClick:u[0]||(u[0]=E=>i.$router.push("/profile/apps"))},_(i.$t("buttons.CANCEL")),1)])])])):(h(),I("div",yYe,[d("p",$Ye,_(i.$t("oauth2.NO_APP")),1),d("button",{onClick:u[1]||(u[1]=E=>i.$router.push("/profile/apps"))},_(i.$t("buttons.BACK")),1)]))])}}}),kYe=ie(UYe,[["__scopeId","data-v-77d2c8f0"]]),wYe={id:"oauth2-apps"},MYe=te({__name:"index",props:{user:{}},setup(e){const t=e,n=$e(),{user:a}=_e(t);return pt(()=>{n.commit(j.MUTATIONS.EMPTY_ERROR_MESSAGES),n.commit(tt.MUTATIONS.SET_CLIENTS,[])}),(s,r)=>{const o=oe("router-view");return h(),I("div",wYe,[W(o,{authUser:m(a)},null,8,["authUser"])])}}}),WYe={id:"oauth2-app",class:"description-list"},FYe={key:1},zYe={key:0,class:"info-box success-message"},xYe=["title"],BYe={key:0},GYe={key:1,class:"app-secret"},HYe=["title"],VYe={class:"client-scopes"},KYe={class:"app-buttons"},jYe={key:2},qYe={class:"no-app"},YYe=te({__name:"UserApp",props:{authUser:{},afterCreation:{type:Boolean,default:!1}},setup(e){const t=e,n=Lt(),a=$e(),{afterCreation:s,authUser:r}=_e(t),o=w(()=>a.getters[tt.GETTERS.CLIENT]),i=w(()=>a.getters[tt.GETTERS.REVOCATION_SUCCESSFUL]),u=de(!1),l=de(""),c=de(!1),f=de(!1),E=de(!1);ft(()=>{p(),navigator.clipboard&&(E.value=!0)});function p(){!s.value&&n.params.id&&typeof n.params.id=="string"&&a.dispatch(tt.ACTIONS.GET_CLIENT_BY_ID,+n.params.id)}function T(S){l.value=S?"oauth2.APP_DELETION_CONFIRMATION":"oauth2.TOKENS_REVOCATION_CONFIRMATION",O(!0)}function O(S){u.value=S,S||(l.value="")}function R(S){l.value==="oauth2.APP_DELETION_CONFIRMATION"?a.dispatch(tt.ACTIONS.DELETE_CLIENT,S):a.dispatch(tt.ACTIONS.REVOKE_ALL_TOKENS,S)}function g(){navigator.clipboard.writeText(o.value.client_id),c.value=!0,f.value=!1,setTimeout(()=>{c.value=!1},3e3)}function N(){o.value.client_secret&&(navigator.clipboard.writeText(o.value.client_secret),f.value=!0,c.value=!1,setTimeout(()=>{f.value=!1},3e3))}return pt(()=>{a.commit(j.MUTATIONS.EMPTY_ERROR_MESSAGES),a.commit(tt.MUTATIONS.EMPTY_CLIENT),a.commit(tt.MUTATIONS.SET_REVOCATION_SUCCESSFUL,!1)}),We(()=>i.value,S=>{S&&O(!1)}),(S,A)=>{const v=oe("Modal");return h(),I("div",WYe,[u.value?(h(),Y(v,{key:0,title:S.$t("common.CONFIRMATION"),message:S.$t(l.value),onConfirmAction:A[0]||(A[0]=D=>R(o.value.id)),onCancelAction:A[1]||(A[1]=D=>O(!1)),onKeydown:A[2]||(A[2]=Je(D=>O(!1),["esc"]))},null,8,["title","message"])):M("",!0),o.value&&o.value.client_id?(h(),I("div",FYe,[m(s)||i.value?(h(),I("div",zYe,_(S.$t(m(s)?"oauth2.APP_CREATED_SUCCESSFULLY":"oauth2.TOKENS_REVOKED")),1)):M("",!0),d("dl",null,[d("dt",null,_(S.$t("oauth2.APP.CLIENT_ID"))+":",1),d("dd",null,[V(_(o.value.client_id)+" ",1),m(s)&&E.value?(h(),I("i",{key:0,class:pe(`fa fa-${c.value?"check":"copy"}`),"aria-hidden":"true",title:S.$t("oauth2.COPY_TO_CLIPBOARD"),onClick:g},null,10,xYe)):M("",!0)]),m(s)&&o.value.client_secret?(h(),I("dt",BYe,_(S.$t("oauth2.APP.CLIENT_SECRET"))+": ",1)):M("",!0),m(s)&&o.value.client_secret?(h(),I("dd",GYe,[V(_(o.value.client_secret)+" ",1),E.value?(h(),I("i",{key:0,class:pe(`fa fa-${f.value?"check":"copy"}`),"aria-hidden":"true",title:S.$t("oauth2.COPY_TO_CLIPBOARD"),onClick:N},null,10,HYe)):M("",!0)])):M("",!0),d("dt",null,_(He(S.$t("oauth2.APP.ISSUE_AT")))+":",1),d("dd",null,[d("time",null,_(m(zn)(o.value.issued_at,m(r).timezone,m(r).date_format)),1)]),d("dt",null,_(S.$t("oauth2.APP.NAME"))+":",1),d("dd",null,_(o.value.name),1),d("dt",null,_(S.$t("oauth2.APP.DESCRIPTION"))+":",1),d("dd",{class:pe({"no-description":!o.value.client_description})},_(o.value.client_description?o.value.client_description:S.$t("oauth2.NO_DESCRIPTION")),3),d("dt",null,_(S.$t("oauth2.APP.URL"))+":",1),d("dd",null,_(o.value.website),1),d("dt",null,_(S.$t("oauth2.APP.REDIRECT_URL"))+":",1),d("dd",null,_(o.value.redirect_uris.length>0?o.value.redirect_uris[0]:""),1),d("dt",null,_(S.$t("oauth2.APP.SCOPE.LABEL"))+":",1),d("dd",VYe,[(h(!0),I(me,null,Pe(o.value.scope.split(" "),D=>(h(),I("span",{class:"client-scope",key:D},[d("code",null,_(D),1)]))),128))])]),d("div",KYe,[d("button",{class:"danger",onClick:A[3]||(A[3]=D=>T(!1))},_(S.$t("oauth2.REVOKE_ALL_TOKENS")),1),d("button",{class:"danger",onClick:A[4]||(A[4]=D=>T(!0))},_(S.$t("oauth2.DELETE_APP")),1),d("button",{onClick:A[5]||(A[5]=D=>S.$router.push("/profile/apps"))},_(S.$t("buttons.BACK")),1)])])):(h(),I("div",jYe,[d("p",qYe,_(S.$t("oauth2.NO_APP")),1),d("button",{onClick:A[6]||(A[6]=D=>S.$router.push("/profile/apps"))},_(S.$t("buttons.BACK")),1)]))])}}}),BT=ie(YYe,[["__scopeId","data-v-3a7d0f4a"]]),XYe={id:"oauth2-apps-list"},QYe={class:"apps-list"},ZYe={key:0},JYe={class:"app-issued-at"},eXe={key:1,class:"no-apps"},tXe={class:"app-list-buttons"},nXe=te({__name:"UserAppsList",props:{authUser:{}},setup(e){const t=e,n=$e(),a=Lt(),{authUser:s}=_e(t),r=w(()=>n.getters[tt.GETTERS.CLIENTS]),o=w(()=>n.getters[tt.GETTERS.CLIENTS_PAGINATION]);let i=u(a.query);ft(()=>{l(i)});function u(c){const f={};return c.page&&(f.page=rE(c.page,TO)),f}function l(c){n.dispatch(tt.ACTIONS.GET_CLIENTS,c)}return We(()=>a.query,async c=>{i=u(c),l(i)}),(c,f)=>{const E=oe("router-link");return h(),I("div",XYe,[d("p",QYe,_(c.$t("oauth2.APPS_LIST")),1),r.value.length>0?(h(),I("ul",ZYe,[(h(!0),I(me,null,Pe(r.value,p=>(h(),I("li",{key:p.client_id},[W(E,{to:{name:"UserApp",params:{id:p.id}}},{default:le(()=>[V(_(p.name),1)]),_:2},1032,["to"]),d("span",JYe,[V(_(c.$t("oauth2.APP.ISSUE_AT"))+" ",1),d("time",null,_(m(zn)(p.issued_at,m(s).timezone,m(s).date_format)),1)])]))),128))])):(h(),I("div",eXe,_(c.$t("oauth2.NO_APPS")),1)),r.value.length>0?(h(),Y(il,{key:2,pagination:o.value,path:"/profile/apps",query:m(i)},null,8,["pagination","query"])):M("",!0),d("div",tXe,[d("button",{onClick:f[0]||(f[0]=p=>c.$router.push("/profile/apps/new"))},_(c.$t("oauth2.NEW_APP")),1),d("button",{onClick:f[1]||(f[1]=p=>c.$router.push("/"))},_(c.$t("common.HOME")),1)])])}}}),aXe=ie(nXe,[["__scopeId","data-v-064a87b7"]]);function xc(e){return e===0?!1:Array.isArray(e)&&e.length===0?!0:!e}function sXe(e){return(...t)=>!e(...t)}function rXe(e,t){return e===void 0&&(e="undefined"),e===null&&(e="null"),e===!1&&(e="false"),e.toString().toLowerCase().indexOf(t.trim())!==-1}function BO(e,t,n,a){return t?e.filter(s=>rXe(a(s,n),t)).sort((s,r)=>a(s,n).length-a(r,n).length):e}function oXe(e){return e.filter(t=>!t.$isLabel)}function Bc(e,t){return n=>n.reduce((a,s)=>s[e]&&s[e].length?(a.push({$groupLabel:s[t],$isLabel:!0}),a.concat(s[e])):a,[])}function iXe(e,t,n,a,s){return r=>r.map(o=>{if(!o[n])return console.warn("Options passed to vue-multiselect do not contain groups, despite the config."),[];const i=BO(o[n],e,t,s);return i.length?{[a]:o[a],[n]:i}:[]})}const GT=(...e)=>t=>e.reduce((n,a)=>a(n),t);var uXe={data(){return{search:"",isOpen:!1,preferredOpenDirection:"below",optimizedHeight:this.maxHeight}},props:{internalSearch:{type:Boolean,default:!0},options:{type:Array,required:!0},multiple:{type:Boolean,default:!1},trackBy:{type:String},label:{type:String},searchable:{type:Boolean,default:!0},clearOnSelect:{type:Boolean,default:!0},hideSelected:{type:Boolean,default:!1},placeholder:{type:String,default:"Select option"},allowEmpty:{type:Boolean,default:!0},resetAfter:{type:Boolean,default:!1},closeOnSelect:{type:Boolean,default:!0},customLabel:{type:Function,default(e,t){return xc(e)?"":t?e[t]:e}},taggable:{type:Boolean,default:!1},tagPlaceholder:{type:String,default:"Press enter to create a tag"},tagPosition:{type:String,default:"top"},max:{type:[Number,Boolean],default:!1},id:{default:null},optionsLimit:{type:Number,default:1e3},groupValues:{type:String},groupLabel:{type:String},groupSelect:{type:Boolean,default:!1},blockKeys:{type:Array,default(){return[]}},preserveSearch:{type:Boolean,default:!1},preselectFirst:{type:Boolean,default:!1},preventAutofocus:{type:Boolean,default:!1}},mounted(){!this.multiple&&this.max&&console.warn("[Vue-Multiselect warn]: Max prop should not be used when prop Multiple equals false."),this.preselectFirst&&!this.internalValue.length&&this.options.length&&this.select(this.filteredOptions[0])},computed:{internalValue(){return this.modelValue||this.modelValue===0?Array.isArray(this.modelValue)?this.modelValue:[this.modelValue]:[]},filteredOptions(){const e=this.search||"",t=e.toLowerCase().trim();let n=this.options.concat();return this.internalSearch?n=this.groupValues?this.filterAndFlat(n,t,this.label):BO(n,t,this.label,this.customLabel):n=this.groupValues?Bc(this.groupValues,this.groupLabel)(n):n,n=this.hideSelected?n.filter(sXe(this.isSelected)):n,this.taggable&&t.length&&!this.isExistingOption(t)&&(this.tagPosition==="bottom"?n.push({isTag:!0,label:e}):n.unshift({isTag:!0,label:e})),n.slice(0,this.optionsLimit)},valueKeys(){return this.trackBy?this.internalValue.map(e=>e[this.trackBy]):this.internalValue},optionKeys(){return(this.groupValues?this.flatAndStrip(this.options):this.options).map(t=>this.customLabel(t,this.label).toString().toLowerCase())},currentOptionLabel(){return this.multiple?this.searchable?"":this.placeholder:this.internalValue.length?this.getOptionLabel(this.internalValue[0]):this.searchable?"":this.placeholder}},watch:{internalValue:{handler(){this.resetAfter&&this.internalValue.length&&(this.search="",this.$emit("update:modelValue",this.multiple?[]:null))},deep:!0},search(){this.$emit("search-change",this.search)}},emits:["open","search-change","close","select","update:modelValue","remove","tag"],methods:{getValue(){return this.multiple?this.internalValue:this.internalValue.length===0?null:this.internalValue[0]},filterAndFlat(e,t,n){return GT(iXe(t,n,this.groupValues,this.groupLabel,this.customLabel),Bc(this.groupValues,this.groupLabel))(e)},flatAndStrip(e){return GT(Bc(this.groupValues,this.groupLabel),oXe)(e)},updateSearch(e){this.search=e},isExistingOption(e){return this.options?this.optionKeys.indexOf(e)>-1:!1},isSelected(e){const t=this.trackBy?e[this.trackBy]:e;return this.valueKeys.indexOf(t)>-1},isOptionDisabled(e){return!!e.$isDisabled},getOptionLabel(e){if(xc(e))return"";if(e.isTag)return e.label;if(e.$isLabel)return e.$groupLabel;const t=this.customLabel(e,this.label);return xc(t)?"":t},select(e,t){if(e.$isLabel&&this.groupSelect){this.selectGroup(e);return}if(!(this.blockKeys.indexOf(t)!==-1||this.disabled||e.$isDisabled||e.$isLabel)&&!(this.max&&this.multiple&&this.internalValue.length===this.max)&&!(t==="Tab"&&!this.pointerDirty)){if(e.isTag)this.$emit("tag",e.label,this.id),this.search="",this.closeOnSelect&&!this.multiple&&this.deactivate();else{if(this.isSelected(e)){t!=="Tab"&&this.removeElement(e);return}this.multiple?this.$emit("update:modelValue",this.internalValue.concat([e])):this.$emit("update:modelValue",e),this.$emit("select",e,this.id),this.clearOnSelect&&(this.search="")}this.closeOnSelect&&this.deactivate()}},selectGroup(e){const t=this.options.find(n=>n[this.groupLabel]===e.$groupLabel);if(t){if(this.wholeGroupSelected(t)){this.$emit("remove",t[this.groupValues],this.id);const n=this.trackBy?t[this.groupValues].map(s=>s[this.trackBy]):t[this.groupValues],a=this.internalValue.filter(s=>n.indexOf(this.trackBy?s[this.trackBy]:s)===-1);this.$emit("update:modelValue",a)}else{let n=t[this.groupValues].filter(a=>!(this.isOptionDisabled(a)||this.isSelected(a)));this.max&&n.splice(this.max-this.internalValue.length),this.$emit("select",n,this.id),this.$emit("update:modelValue",this.internalValue.concat(n))}this.closeOnSelect&&this.deactivate()}},wholeGroupSelected(e){return e[this.groupValues].every(t=>this.isSelected(t)||this.isOptionDisabled(t))},wholeGroupDisabled(e){return e[this.groupValues].every(this.isOptionDisabled)},removeElement(e,t=!0){if(this.disabled||e.$isDisabled)return;if(!this.allowEmpty&&this.internalValue.length<=1){this.deactivate();return}const n=typeof e=="object"?this.valueKeys.indexOf(e[this.trackBy]):this.valueKeys.indexOf(e);if(this.multiple){const a=this.internalValue.slice(0,n).concat(this.internalValue.slice(n+1));this.$emit("update:modelValue",a)}else this.$emit("update:modelValue",null);this.$emit("remove",e,this.id),this.closeOnSelect&&t&&this.deactivate()},removeLastElement(){this.blockKeys.indexOf("Delete")===-1&&this.search.length===0&&Array.isArray(this.internalValue)&&this.internalValue.length&&this.removeElement(this.internalValue[this.internalValue.length-1],!1)},activate(){this.isOpen||this.disabled||(this.adjustPosition(),this.groupValues&&this.pointer===0&&this.filteredOptions.length&&(this.pointer=1),this.isOpen=!0,this.searchable?(this.preserveSearch||(this.search=""),this.preventAutofocus||this.$nextTick(()=>this.$refs.search&&this.$refs.search.focus())):this.preventAutofocus||typeof this.$el<"u"&&this.$el.focus(),this.$emit("open",this.id))},deactivate(){this.isOpen&&(this.isOpen=!1,this.searchable?this.$refs.search!==null&&typeof this.$refs.search<"u"&&this.$refs.search.blur():typeof this.$el<"u"&&this.$el.blur(),this.preserveSearch||(this.search=""),this.$emit("close",this.getValue(),this.id))},toggle(){this.isOpen?this.deactivate():this.activate()},adjustPosition(){if(typeof window>"u")return;const e=this.$el.getBoundingClientRect().top,t=window.innerHeight-this.$el.getBoundingClientRect().bottom;t>this.maxHeight||t>e||this.openDirection==="below"||this.openDirection==="bottom"?(this.preferredOpenDirection="below",this.optimizedHeight=Math.min(t-40,this.maxHeight)):(this.preferredOpenDirection="above",this.optimizedHeight=Math.min(e-40,this.maxHeight))}}},lXe={data(){return{pointer:0,pointerDirty:!1}},props:{showPointer:{type:Boolean,default:!0},optionHeight:{type:Number,default:40}},computed:{pointerPosition(){return this.pointer*this.optionHeight},visibleElements(){return this.optimizedHeight/this.optionHeight}},watch:{filteredOptions(){this.pointerAdjust()},isOpen(){this.pointerDirty=!1},pointer(){this.$refs.search&&this.$refs.search.setAttribute("aria-activedescendant",this.id+"-"+this.pointer.toString())}},methods:{optionHighlight(e,t){return{"multiselect__option--highlight":e===this.pointer&&this.showPointer,"multiselect__option--selected":this.isSelected(t)}},groupHighlight(e,t){if(!this.groupSelect)return["multiselect__option--disabled",{"multiselect__option--group":t.$isLabel}];const n=this.options.find(a=>a[this.groupLabel]===t.$groupLabel);return n&&!this.wholeGroupDisabled(n)?["multiselect__option--group",{"multiselect__option--highlight":e===this.pointer&&this.showPointer},{"multiselect__option--group-selected":this.wholeGroupSelected(n)}]:"multiselect__option--disabled"},addPointerElement({key:e}="Enter"){this.filteredOptions.length>0&&this.select(this.filteredOptions[this.pointer],e),this.pointerReset()},pointerForward(){this.pointer0?(this.pointer--,this.$refs.list.scrollTop>=this.pointerPosition&&(this.$refs.list.scrollTop=this.pointerPosition),this.filteredOptions[this.pointer]&&this.filteredOptions[this.pointer].$isLabel&&!this.groupSelect&&this.pointerBackward()):this.filteredOptions[this.pointer]&&this.filteredOptions[0].$isLabel&&!this.groupSelect&&this.pointerForward(),this.pointerDirty=!0},pointerReset(){this.closeOnSelect&&(this.pointer=0,this.$refs.list&&(this.$refs.list.scrollTop=0))},pointerAdjust(){this.pointer>=this.filteredOptions.length-1&&(this.pointer=this.filteredOptions.length?this.filteredOptions.length-1:0),this.filteredOptions.length>0&&this.filteredOptions[this.pointer].$isLabel&&!this.groupSelect&&this.pointerForward()},pointerSet(e){this.pointer=e,this.pointerDirty=!0}}},GO={name:"vue-multiselect",mixins:[uXe,lXe],compatConfig:{MODE:3,ATTR_ENUMERATED_COERCION:!1},props:{name:{type:String,default:""},modelValue:{type:null,default(){return[]}},selectLabel:{type:String,default:"Press enter to select"},selectGroupLabel:{type:String,default:"Press enter to select group"},selectedLabel:{type:String,default:"Selected"},deselectLabel:{type:String,default:"Press enter to remove"},deselectGroupLabel:{type:String,default:"Press enter to deselect group"},showLabels:{type:Boolean,default:!0},limit:{type:Number,default:99999},maxHeight:{type:Number,default:300},limitText:{type:Function,default:e=>`and ${e} more`},loading:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},openDirection:{type:String,default:""},showNoOptions:{type:Boolean,default:!0},showNoResults:{type:Boolean,default:!0},tabindex:{type:Number,default:0}},computed:{hasOptionGroup(){return this.groupValues&&this.groupLabel&&this.groupSelect},isSingleLabelVisible(){return(this.singleValue||this.singleValue===0)&&(!this.isOpen||!this.searchable)&&!this.visibleValues.length},isPlaceholderVisible(){return!this.internalValue.length&&(!this.searchable||!this.isOpen)},visibleValues(){return this.multiple?this.internalValue.slice(0,this.limit):[]},singleValue(){return this.internalValue[0]},deselectLabelText(){return this.showLabels?this.deselectLabel:""},deselectGroupLabelText(){return this.showLabels?this.deselectGroupLabel:""},selectLabelText(){return this.showLabels?this.selectLabel:""},selectGroupLabelText(){return this.showLabels?this.selectGroupLabel:""},selectedLabelText(){return this.showLabels?this.selectedLabel:""},inputStyle(){return this.searchable||this.multiple&&this.modelValue&&this.modelValue.length?this.isOpen?{width:"100%"}:{width:"0",position:"absolute",padding:"0"}:""},contentStyle(){return this.options.length?{display:"inline-block"}:{display:"block"}},isAbove(){return this.openDirection==="above"||this.openDirection==="top"?!0:this.openDirection==="below"||this.openDirection==="bottom"?!1:this.preferredOpenDirection==="above"},showSearchInput(){return this.searchable&&(this.hasSingleSelectedSlot&&(this.visibleSingleValue||this.visibleSingleValue===0)?this.isOpen:!0)}}};const cXe={ref:"tags",class:"multiselect__tags"},dXe={class:"multiselect__tags-wrap"},EXe={class:"multiselect__spinner"},fXe={key:0},pXe={class:"multiselect__option"},mXe={class:"multiselect__option"},_Xe=V("No elements found. Consider changing the search query."),TXe={class:"multiselect__option"},hXe=V("List is empty.");function SXe(e,t,n,a,s,r){return h(),Y("div",{tabindex:e.searchable?-1:n.tabindex,class:[{"multiselect--active":e.isOpen,"multiselect--disabled":n.disabled,"multiselect--above":r.isAbove,"multiselect--has-options-group":r.hasOptionGroup},"multiselect"],onFocus:t[14]||(t[14]=o=>e.activate()),onBlur:t[15]||(t[15]=o=>e.searchable?!1:e.deactivate()),onKeydown:[t[16]||(t[16]=Je(be(o=>e.pointerForward(),["self","prevent"]),["down"])),t[17]||(t[17]=Je(be(o=>e.pointerBackward(),["self","prevent"]),["up"]))],onKeypress:t[18]||(t[18]=Je(be(o=>e.addPointerElement(o),["stop","self"]),["enter","tab"])),onKeyup:t[19]||(t[19]=Je(o=>e.deactivate(),["esc"])),role:"combobox","aria-owns":"listbox-"+e.id},[$t(e.$slots,"caret",{toggle:e.toggle},()=>[W("div",{onMousedown:t[1]||(t[1]=be(o=>e.toggle(),["prevent","stop"])),class:"multiselect__select"},null,32)]),$t(e.$slots,"clear",{search:e.search}),W("div",cXe,[$t(e.$slots,"selection",{search:e.search,remove:e.removeElement,values:r.visibleValues,isOpen:e.isOpen},()=>[Le(W("div",dXe,[(h(!0),Y(me,null,Pe(r.visibleValues,(o,i)=>$t(e.$slots,"tag",{option:o,search:e.search,remove:e.removeElement},()=>[(h(),Y("span",{class:"multiselect__tag",key:i},[W("span",{textContent:_(e.getOptionLabel(o))},null,8,["textContent"]),W("i",{tabindex:"1",onKeypress:Je(be(u=>e.removeElement(o),["prevent"]),["enter"]),onMousedown:be(u=>e.removeElement(o),["prevent"]),class:"multiselect__tag-icon"},null,40,["onKeypress","onMousedown"])]))])),256))],512),[[Wr,r.visibleValues.length>0]]),e.internalValue&&e.internalValue.length>n.limit?$t(e.$slots,"limit",{key:0},()=>[W("strong",{class:"multiselect__strong",textContent:_(n.limitText(e.internalValue.length-n.limit))},null,8,["textContent"])]):M("v-if",!0)]),W(lu,{name:"multiselect__loading"},{default:le(()=>[$t(e.$slots,"loading",{},()=>[Le(W("div",EXe,null,512),[[Wr,n.loading]])])]),_:3}),e.searchable?(h(),Y("input",{key:0,ref:"search",name:n.name,id:e.id,type:"text",autocomplete:"off",spellcheck:!1,placeholder:e.placeholder,style:r.inputStyle,value:e.search,disabled:n.disabled,tabindex:n.tabindex,onInput:t[2]||(t[2]=o=>e.updateSearch(o.target.value)),onFocus:t[3]||(t[3]=be(o=>e.activate(),["prevent"])),onBlur:t[4]||(t[4]=be(o=>e.deactivate(),["prevent"])),onKeyup:t[5]||(t[5]=Je(o=>e.deactivate(),["esc"])),onKeydown:[t[6]||(t[6]=Je(be(o=>e.pointerForward(),["prevent"]),["down"])),t[7]||(t[7]=Je(be(o=>e.pointerBackward(),["prevent"]),["up"])),t[9]||(t[9]=Je(be(o=>e.removeLastElement(),["stop"]),["delete"]))],onKeypress:t[8]||(t[8]=Je(be(o=>e.addPointerElement(o),["prevent","stop","self"]),["enter"])),class:"multiselect__input","aria-controls":"listbox-"+e.id},null,44,["name","id","placeholder","value","disabled","tabindex","aria-controls"])):M("v-if",!0),r.isSingleLabelVisible?(h(),Y("span",{key:1,class:"multiselect__single",onMousedown:t[10]||(t[10]=be((...o)=>e.toggle&&e.toggle(...o),["prevent"]))},[$t(e.$slots,"singleLabel",{option:r.singleValue},()=>[V(_(e.currentOptionLabel),1)])],32)):M("v-if",!0),r.isPlaceholderVisible?(h(),Y("span",{key:2,class:"multiselect__placeholder",onMousedown:t[11]||(t[11]=be((...o)=>e.toggle&&e.toggle(...o),["prevent"]))},[$t(e.$slots,"placeholder",{},()=>[V(_(e.placeholder),1)])],32)):M("v-if",!0)],512),W(lu,{name:"multiselect"},{default:le(()=>[Le(W("div",{class:"multiselect__content-wrapper",onFocus:t[12]||(t[12]=(...o)=>e.activate&&e.activate(...o)),tabindex:"-1",onMousedown:t[13]||(t[13]=be(()=>{},["prevent"])),style:{maxHeight:e.optimizedHeight+"px"},ref:"list"},[W("ul",{class:"multiselect__content",style:r.contentStyle,role:"listbox",id:"listbox-"+e.id},[$t(e.$slots,"beforeList"),e.multiple&&e.max===e.internalValue.length?(h(),Y("li",fXe,[W("span",pXe,[$t(e.$slots,"maxElements",{},()=>[V("Maximum of "+_(e.max)+" options selected. First remove a selected option to select another.",1)])])])):M("v-if",!0),!e.max||e.internalValue.length(h(),Y("li",{class:"multiselect__element",key:i,id:e.id+"-"+i,role:o&&(o.$isLabel||o.$isDisabled)?null:"option"},[o&&(o.$isLabel||o.$isDisabled)?M("v-if",!0):(h(),Y("span",{key:0,class:[e.optionHighlight(i,o),"multiselect__option"],onClick:be(u=>e.select(o),["stop"]),onMouseenter:be(u=>e.pointerSet(i),["self"]),"data-select":o&&o.isTag?e.tagPlaceholder:r.selectLabelText,"data-selected":r.selectedLabelText,"data-deselect":r.deselectLabelText},[$t(e.$slots,"option",{option:o,search:e.search,index:i},()=>[W("span",null,_(e.getOptionLabel(o)),1)])],42,["onClick","onMouseenter","data-select","data-selected","data-deselect"])),o&&(o.$isLabel||o.$isDisabled)?(h(),Y("span",{key:1,"data-select":e.groupSelect&&r.selectGroupLabelText,"data-deselect":e.groupSelect&&r.deselectGroupLabelText,class:[e.groupHighlight(i,o),"multiselect__option"],onMouseenter:be(u=>e.groupSelect&&e.pointerSet(i),["self"]),onMousedown:be(u=>e.selectGroup(o),["prevent"])},[$t(e.$slots,"option",{option:o,search:e.search,index:i},()=>[W("span",null,_(e.getOptionLabel(o)),1)])],42,["data-select","data-deselect","onMouseenter","onMousedown"])):M("v-if",!0)],8,["id","role"]))),128)):M("v-if",!0),Le(W("li",null,[W("span",mXe,[$t(e.$slots,"noResult",{search:e.search},()=>[_Xe])])],512),[[Wr,n.showNoResults&&e.filteredOptions.length===0&&e.search&&!n.loading]]),Le(W("li",null,[W("span",TXe,[$t(e.$slots,"noOptions",{},()=>[hXe])])],512),[[Wr,n.showNoOptions&&(e.options.length===0||r.hasOptionGroup===!0&&e.filteredOptions.length===0)&&!e.search&&!n.loading]]),$t(e.$slots,"afterList")],12,["id"])],36),[[Wr,e.isOpen]])]),_:3})],42,["tabindex","aria-owns"])}GO.render=SXe;const AXe=te({__name:"SportsMultiSelect",props:{sports:{},name:{},equipmentSports:{default:()=>[]},disabled:{type:Boolean,default:!1}},emits:["updatedValues"],setup(e,{emit:t}){const n=e,a=t,{equipmentSports:s,name:r,sports:o}=_e(n),i=de([]);ft(()=>{s.value&&(i.value=s.value)});function u(l){a("updatedValues",l.map(c=>c.id))}return We(()=>s.value,async l=>{i.value=l,u(l)}),(l,c)=>m(o)?(h(),Y(m(GO),{key:0,placeholder:"",id:m(r),name:m(r),disabled:l.disabled,modelValue:i.value,"onUpdate:modelValue":[c[0]||(c[0]=f=>i.value=f),u],multiple:!0,options:m(o),taggable:!0,label:"translatedLabel","track-by":"id",selectLabel:l.$t("workouts.MULTISELECT.selectLabel"),selectedLabel:l.$t("workouts.MULTISELECT.selectedLabel"),deselectLabel:l.$t("workouts.MULTISELECT.deselectLabel")},null,8,["id","name","disabled","modelValue","options","selectLabel","selectedLabel","deselectLabel"])):M("",!0)}}),OXe=ie(AXe,[["__scopeId","data-v-a44f31af"]]),HO=e=>(ot("data-v-28e798a0"),e=e(),it(),e),gXe={id:"new-equipment"},IXe={key:0,id:"new-equipment-title"},RXe={id:"equipment-form"},NXe={class:"form-items"},vXe={class:"form-item"},bXe={for:"equipment-label"},CXe={class:"equipment-label-help"},DXe={class:"info-box"},PXe=HO(()=>d("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1)),LXe={class:"form-item"},yXe={for:"equipment-type-id"},$Xe=["value"],UXe={key:0,class:"equipment-warning"},kXe={class:"info-box"},wXe=HO(()=>d("i",{class:"fa fa-exclamation-triangle warning","aria-hidden":"true"},null,-1)),MXe={class:"form-item"},WXe={for:"equipment-description"},FXe={key:1,class:"form-item-checkbox"},zXe={for:"equipment-active"},xXe={class:"form-item"},BXe={for:"equipment-sports"},GXe={class:"form-buttons"},HXe=["disabled"],VXe=["disabled"],KXe=te({__name:"EquipmentEdition",props:{equipments:{},translatedEquipmentTypes:{}},setup(e){const t=e,n=$e(),a=Lt(),{t:s}=yt(),{equipments:r,translatedEquipmentTypes:o}=_e(t),i=w(()=>n.getters[Me.GETTERS.LOADING]),u=w(()=>g(r.value)),l=w(()=>n.getters[j.GETTERS.ERROR_MESSAGES]),c=Kt({id:"",label:"",description:"",equipmentTypeId:0,isActive:!0,defaultForSportIds:[]}),f=w(()=>Fn(n.getters[Pt.GETTERS.SPORTS],s)),E=w(()=>o.value.filter(C=>C.id===c.equipmentTypeId)),p=w(()=>E.value.length>0?f.value.filter(C=>fO[E.value[0].label].includes(C.label)):[]),T=de([]),O=w(()=>o.value.filter(C=>{var y;return C.is_active||((y=u.value)==null?void 0:y.equipment_type.id)===C.id})),R=de(!1);St(()=>{var y;const C=document.getElementById("equipment-label");C==null||C.focus(),a.params.id&&a.params.id&&(y=u.value)!=null&&y.id&&S(u.value)});function g(C){if(!a.params.id)return null;const y=C.filter(z=>a.params.id?z.id===a.params.id:null);return y.length===0?null:y[0]}function N(C){T.value=Fn(f.value,s,"all").filter(y=>C.default_for_sport_ids.includes(y.id))}function S(C){c.id=C.id,c.label=C.label,c.description=C.description?C.description:"",c.equipmentTypeId=C.equipment_type.id,c.isActive=C.is_active,N(C)}function A(){n.dispatch(Me.ACTIONS[c.id?"UPDATE_EQUIPMENT":"ADD_EQUIPMENT"],c)}function v(C){c.description=C}function D(){R.value=!0}function P(C){c.defaultForSportIds=C}return pt(()=>{n.commit(j.MUTATIONS.EMPTY_ERROR_MESSAGES)}),We(()=>u.value,C=>{a.params.id&&(C!=null&&C.id)&&S(C)}),We(()=>c.equipmentTypeId,C=>{u.value&&C===u.value.equipment_type.id?N(u.value):T.value=[]}),(C,y)=>{var F,X;const z=oe("CustomTextArea"),$=oe("ErrorMessage");return h(),I("div",gXe,[c.id?M("",!0):(h(),I("h1",IXe,_(C.$t("equipments.ADD_A_NEW_EQUIPMENT")),1)),d("div",RXe,[d("form",{class:pe({errors:R.value}),onSubmit:be(A,["prevent"])},[d("div",NXe,[d("div",vXe,[d("label",bXe,_(He(C.$t("common.LABEL")))+"* ",1),Le(d("input",{id:"equipment-label",maxlength:"50",type:"text",required:"",onInvalid:D,"onUpdate:modelValue":y[0]||(y[0]=re=>c.label=re)},null,544),[[at,c.label]]),d("div",CXe,[d("span",DXe,[PXe,V(" "+_(C.$t("equipments.50_CHARACTERS_MAX")),1)])])]),d("div",LXe,[d("label",yXe,_(He(C.$t("equipments.EQUIPMENT_TYPE")))+"* ",1),Le(d("select",{id:"equipment-type-id",required:"",onInvalid:D,"onUpdate:modelValue":y[1]||(y[1]=re=>c.equipmentTypeId=re)},[(h(!0),I(me,null,Pe(O.value,re=>(h(),I("option",{value:re.id,key:re.id},_(re.translatedLabel)+" "+_(re.is_active?"":`(${C.$t("common.INACTIVE")})`),9,$Xe))),128))],544),[[ia,c.equipmentTypeId]])]),(F=u.value)!=null&&F.workouts_count&&c.equipmentTypeId!==((X=u.value)==null?void 0:X.equipment_type.id)?(h(),I("div",UXe,[d("span",kXe,[wXe,V(" "+_(C.$t("equipments.ALL_WORKOUTS_ASSOCIATIONS_REMOVED")),1)])])):M("",!0),d("div",MXe,[d("label",WXe,_(C.$t("common.DESCRIPTION")),1),W(z,{name:"equipment-description",charLimit:200,input:c.description,onUpdateValue:v},null,8,["input"])]),c.id?(h(),I("div",FXe,[d("label",zXe,_(He(C.$t("common.ACTIVE"))),1),Le(d("input",{id:"equipment-active",name:"equipment-active",type:"checkbox","onUpdate:modelValue":y[2]||(y[2]=re=>c.isActive=re)},null,512),[[gl,c.isActive]])])):M("",!0),d("div",xXe,[d("label",BXe,_(He(C.$t("equipments.DEFAULT_FOR_SPORTS",0))),1),W(OXe,{sports:p.value,name:"equipment-sports",equipmentSports:T.value,disabled:!c.equipmentTypeId,onUpdatedValues:P},null,8,["sports","equipmentSports","disabled"])])]),l.value?(h(),Y($,{key:0,message:l.value},null,8,["message"])):M("",!0),d("div",GXe,[d("button",{class:"confirm",type:"submit",disabled:i.value},_(C.$t("buttons.SUBMIT")),9,HXe),d("button",{class:"cancel",disabled:i.value,onClick:y[3]||(y[3]=be(()=>{var re;return C.$router.push((re=u.value)!=null&&re.id?m(a).query.fromEdition?"/profile/edit/equipments":`/profile/equipments/${u.value.id}`:"/profile/equipments")},["prevent"]))},_(C.$t("buttons.CANCEL")),9,VXe)])],34)])])}}}),HT=ie(KXe,[["__scopeId","data-v-28e798a0"]]),jXe={key:0,id:"user-equipments"},VT=te({__name:"index",props:{user:{},isEdition:{type:Boolean}},setup(e){const t=e,n=$e(),{t:a}=yt(),{user:s}=_e(t),r=Lt(),o=w(()=>n.getters[Me.GETTERS.EQUIPMENTS]),i=w(()=>n.getters[Me.GETTERS.EQUIPMENT_TYPES]),u=w(()=>EO(i.value,a));return ft(()=>{n.dispatch(Me.ACTIONS.GET_EQUIPMENT_TYPES),n.dispatch(Me.ACTIONS.GET_EQUIPMENTS)}),pt(()=>{n.commit(j.MUTATIONS.EMPTY_ERROR_MESSAGES)}),We(()=>r.name,l=>{l==="UserEquipmentsList"&&n.dispatch(Me.ACTIONS.GET_EQUIPMENTS)}),(l,c)=>{const f=oe("router-view");return u.value?(h(),I("div",jXe,[W(f,{authUser:m(s),equipments:o.value,translatedEquipmentTypes:u.value,isEdition:l.isEdition},null,8,["authUser","equipments","translatedEquipmentTypes","isEdition"])])):M("",!0)}}}),qXe=(e,t=!1)=>{let n="0";t&&(n=String(Math.floor(e/86400)),e%=86400);const a=String(Math.floor(e/3600)).padStart(2,"0");e%=3600;const s=String(Math.floor(e/60)).padStart(2,"0"),r=String(e%60).padStart(2,"0");return t?`${n==="0"?"":`${n}d `}${a==="00"?"":`${a}h `}${s}m ${r}s`:`${a==="00"?"":`${a}:`}${s}:${r}`},Hf=(e,t)=>{const n=e.match(/day/g)?e.split(", ")[1]:e;return{days:e.match(/day/g)?`${e.split(" ")[0]} ${e.match(/days/g)?t("common.DAY",2):t("common.DAY",1)}`:`0 ${t("common.DAY",2)},`,duration:`${n.split(":")[0]}h ${n.split(":")[1]}min`}},fE=(e,t)=>{if(e.match(/day/g)){const n=Hf(e,t);return`${n.days}, ${n.duration}`}return e},YXe={key:0,id:"user-equipment",class:"description-list"},XXe={class:"equipment-type"},QXe={key:0,class:"equipment-description"},ZXe={key:1,class:"no-description"},JXe={class:"duration-detail"},eQe={class:"sports-list"},tQe={class:"equipment-buttons"},nQe=["disabled"],aQe=["disabled"],sQe=["disabled"],rQe=["disabled"],oQe={key:1},iQe={class:"no-equipment"},uQe=["disabled"],lQe=te({__name:"UserEquipment",props:{authUser:{},equipments:{}},setup(e){const t=e,n=$e(),a=Lt(),{t:s}=yt(),{authUser:r,equipments:o}=_e(t),i=Nt("sportColors"),u=w(()=>n.getters[Me.GETTERS.LOADING]),l=w(()=>p(o.value)),c=w(()=>n.getters[Pt.GETTERS.SPORTS]),f=w(()=>Fn(c.value,s,"all",r.value.sports_list).filter(g=>{var N;return l.value?(N=l.value)==null?void 0:N.default_for_sport_ids.includes(g.id):!1})),E=de(!1);ft(()=>{n.dispatch(Me.ACTIONS.GET_EQUIPMENTS)});function p(g){if(!a.params.id)return null;const N=g.filter(S=>a.params.id?S.id===a.params.id:null);return N.length===0?null:N[0]}function T(g){E.value=g}function O(){var g,N;if((g=l.value)!=null&&g.id){const S={id:l.value.id};((N=l.value)==null?void 0:N.workouts_count)>0&&(S.force=!0),n.dispatch(Me.ACTIONS.DELETE_EQUIPMENT,S)}}function R(g){n.dispatch(Me.ACTIONS.REFRESH_EQUIPMENT,g)}return pt(()=>{n.commit(j.MUTATIONS.EMPTY_ERROR_MESSAGES)}),(g,N)=>{const S=oe("Modal"),A=oe("EquipmentTypeImage"),v=oe("router-link"),D=oe("Distance"),P=oe("SportImage");return l.value?(h(),I("div",YXe,[E.value?(h(),Y(S,{key:0,title:g.$t("common.CONFIRMATION"),message:"user.PROFILE.EQUIPMENTS.CONFIRM_EQUIPMENT_DELETION",strongMessage:l.value.label,warning:l.value.workouts_count>0?g.$t("user.PROFILE.EQUIPMENTS.EQUIPMENT_ASSOCIATED_WITH_WORKOUTS"):"",onConfirmAction:O,onCancelAction:N[0]||(N[0]=C=>T(!1)),onKeydown:N[1]||(N[1]=Je(C=>T(!1),["esc"]))},null,8,["title","strongMessage","warning"])):M("",!0),d("dl",null,[d("dt",null,_(He(g.$t("common.LABEL"))),1),d("dd",null,_(l.value.label),1),d("dt",null,_(He(g.$t("equipments.EQUIPMENT_TYPE"))),1),d("dd",XXe,[W(A,{title:g.$t(`equipment_types.${l.value.equipment_type.label}.LABEL`),"equipment-type-label":l.value.equipment_type.label},null,8,["title","equipment-type-label"]),d("span",null,_(g.$t(`equipment_types.${l.value.equipment_type.label}.LABEL`))+" "+_(l.value.equipment_type.is_active?"":`(${g.$t("common.INACTIVE")})`),1)]),d("dt",null,_(g.$t("common.DESCRIPTION")),1),d("dd",null,[l.value.description?(h(),I("span",QXe,_(l.value.description),1)):(h(),I("span",ZXe,_(g.$t("common.NO_DESCRIPTION")),1))]),d("dt",null,_(He(g.$t("workouts.WORKOUT",0))),1),d("dd",null,[l.value.workouts_count?(h(),Y(v,{key:0,to:`/workouts?equipment_id=${l.value.id}`},{default:le(()=>[V(_(l.value.workouts_count),1)]),_:1},8,["to"])):(h(),I(me,{key:1},[V(_(l.value.workouts_count),1)],64))]),d("dt",null,_(He(g.$t("workouts.TOTAL_DISTANCE",0))),1),d("dd",null,[W(D,{distance:l.value.total_distance,unitFrom:"km",digits:2,displayUnit:!1,useImperialUnits:m(r).imperial_units},null,8,["distance","useImperialUnits"]),d("span",null,_(m(r).imperial_units?"miles":"km"),1)]),d("dt",null,_(He(g.$t("workouts.TOTAL_DURATION",0))),1),d("dd",null,[V(_(m(fE)(l.value.total_moving,g.$t))+" ",1),l.value.total_duration!==l.value.total_moving?(h(),I(me,{key:0},[V(" ("),d("span",JXe,_(g.$t("common.TOTAL_DURATION_WITH_PAUSES"))+": ",1),V(" "+_(m(fE)(l.value.total_duration,g.$t))+") ",1)],64)):M("",!0)]),d("dt",null,_(He(g.$t("common.ACTIVE",0))),1),d("dd",null,[d("i",{class:pe(`fa fa-${l.value.is_active?"check-":""}square-o`),"aria-hidden":"true"},null,2)]),l.value.default_for_sport_ids.length>0?(h(),I(me,{key:0},[d("dt",null,_(He(g.$t("equipments.DEFAULT_FOR_SPORTS",0))),1),d("dd",eQe,[(h(!0),I(me,null,Pe(f.value,C=>(h(),I("span",{class:pe(["sport-badge",{inactive:!C.is_active_for_user}]),key:C.label},[W(P,{title:C.translatedLabel,"sport-label":C.label,color:C.color?C.color:m(i)[C.label]},null,8,["title","sport-label","color"]),W(v,{to:`/profile/sports/${C.id}?fromEquipmentId=${l.value.id}`},{default:le(()=>[V(_(C.translatedLabel)+" "+_(C.is_active_for_user?"":`(${g.$t("common.INACTIVE")})`),1)]),_:2},1032,["to"])],2))),128))])],64)):M("",!0)]),d("div",tQe,[d("button",{onClick:N[2]||(N[2]=C=>g.$router.push(`/profile/edit/equipments/${l.value.id}`)),disabled:u.value},_(g.$t("buttons.EDIT")),9,nQe),d("button",{disabled:u.value,onClick:N[3]||(N[3]=C=>R(l.value.id))},_(g.$t("buttons.REFRESH_TOTALS")),9,aQe),d("button",{class:"danger",onClick:N[4]||(N[4]=C=>E.value=!0),disabled:u.value},_(g.$t("buttons.DELETE")),9,sQe),d("button",{disabled:u.value,onClick:N[5]||(N[5]=C=>g.$router.push(m(a).query.fromWorkoutId?`/workouts/${m(a).query.fromWorkoutId}`:m(a).query.fromSportId?`/profile/sports/${m(a).query.fromSportId}`:"/profile/equipments"))},_(g.$t("buttons.BACK")),9,rQe)])])):(h(),I("div",oQe,[d("p",iQe,_(g.$t("equipments.NO_EQUIPMENT")),1),d("button",{onClick:N[6]||(N[6]=C=>g.$router.push("/profile/equipments")),disabled:u.value},_(g.$t("buttons.BACK")),9,uQe)]))}}}),cQe=ie(lQe,[["__scopeId","data-v-bb9ee5a6"]]),dQe=e=>(ot("data-v-b2876f25"),e=e(),it(),e),EQe={id:"user-equipments-list"},fQe={key:0,class:"mobile-display"},pQe={key:1,class:"equipments-list"},mQe={key:3},_Qe={class:"responsive-table"},TQe={class:"text-left"},hQe={class:"text-left"},SQe={class:"text-left"},AQe={class:"text-left"},OQe={key:0},gQe=dQe(()=>d("th",null,null,-1)),IQe={class:"equipment-label"},RQe={class:"cell-heading"},NQe={class:"column"},vQe={class:"cell-heading"},bQe={class:"column"},CQe={class:"cell-heading"},DQe={class:"active"},PQe={class:"cell-heading"},LQe={key:0,class:"action-buttons"},yQe={class:"cell-heading"},$Qe=["onClick"],UQe={class:"equipments-list-buttons"},kQe=te({__name:"UserEquipmentsList",props:{equipments:{},translatedEquipmentTypes:{},authUser:{},isEdition:{type:Boolean}},setup(e){const t=e,{authUser:n,isEdition:a,equipments:s,translatedEquipmentTypes:r}=_e(t),o=w(()=>i(s.value));function i(u){const l={};return u.map(c=>{c.equipment_type.id in l?l[c.equipment_type.id].push(c):l[c.equipment_type.id]=[c]}),l}return(u,l)=>{const c=oe("EquipmentTypeImage"),f=oe("router-link"),E=oe("Distance");return h(),I("div",EQe,[m(s).length>0?(h(),I("div",fQe,[m(a)?M("",!0):(h(),I("button",{key:0,onClick:l[0]||(l[0]=p=>u.$router.push("/profile/edit/equipments"))},_(u.$t("equipments.EDIT_EQUIPMENTS")),1)),m(a)?M("",!0):(h(),I("button",{key:1,onClick:l[1]||(l[1]=p=>u.$router.push("/profile/equipments/new"))},_(u.$t("equipments.NEW_EQUIPMENT")),1)),m(a)?(h(),I("button",{key:2,onClick:l[2]||(l[2]=p=>u.$router.push("/profile/equipments"))},_(u.$t("buttons.BACK")),1)):(h(),I("button",{key:3,onClick:l[3]||(l[3]=p=>u.$router.push("/"))},_(u.$t("common.HOME")),1))])):M("",!0),m(a)?M("",!0):(h(),I("h1",pQe,_(u.$t("user.PROFILE.EQUIPMENTS.YOUR_EQUIPMENTS")),1)),m(s).length===0?(h(),I("p",{key:2,class:pe(["no-equipments",{edition:m(a)}])},_(u.$t("equipments.NO_EQUIPMENTS")),3)):(h(),I("div",mQe,[(h(!0),I(me,null,Pe(m(r),p=>(h(),I(me,{key:p.label},[o.value[p.id]?(h(),I(me,{key:0},[d("h2",null,[W(c,{title:p.translatedLabel,"equipment-type-label":p.label},null,8,["title","equipment-type-label"]),V(" "+_(p.translatedLabel)+" "+_(p.is_active?"":`(${u.$t("common.INACTIVE")})`),1)]),d("div",_Qe,[d("table",null,[d("thead",null,[d("tr",null,[d("th",TQe,_(u.$t("common.LABEL")),1),d("th",hQe,_(u.$t("workouts.WORKOUT",0)),1),d("th",SQe,_(He(u.$t("workouts.TOTAL_DISTANCE"))),1),d("th",AQe,_(u.$t("common.ACTIVE")),1),m(a)?(h(),I("th",OQe,_(u.$t("common.ACTION")),1)):M("",!0),gQe])]),d("tbody",null,[(h(!0),I(me,null,Pe(o.value[p.id].sort(m(Uf)),T=>(h(),I("tr",{key:T.label},[d("td",IQe,[d("span",RQe,_(u.$t("common.LABEL")),1),W(f,{to:{name:"Equipment",params:{id:T.id}}},{default:le(()=>[V(_(T.label),1)]),_:2},1032,["to"])]),d("td",NQe,[d("span",vQe,_(u.$t("workouts.WORKOUT",0)),1),T.workouts_count?(h(),Y(f,{key:0,to:`/workouts?equipment_id=${T.id}`},{default:le(()=>[V(_(T.workouts_count),1)]),_:2},1032,["to"])):(h(),I(me,{key:1},[V(_(T.workouts_count),1)],64))]),d("td",bQe,[d("span",CQe,_(u.$t("workouts.TOTAL_DISTANCE",0)),1),W(E,{distance:T.total_distance,unitFrom:"km",digits:2,displayUnit:!1,useImperialUnits:m(n).imperial_units},null,8,["distance","useImperialUnits"]),d("span",null,_(m(n).imperial_units?"miles":"km"),1)]),d("td",DQe,[d("span",PQe,_(u.$t("common.ACTIVE")),1),d("i",{class:pe(`fa fa${T.is_active?"-check":""}`),"aria-hidden":"true"},null,2)]),m(a)?(h(),I("td",LQe,[d("span",yQe,_(u.$t("user.PROFILE.SPORT.ACTION")),1),d("button",{onClick:O=>u.$router.push(`/profile/edit/equipments/${T.id}${m(a)?"?fromEdition=true":""}`)},_(u.$t("buttons.EDIT")),9,$Qe)])):M("",!0)]))),128))])])])],64)):M("",!0)],64))),128))])),d("div",UQe,[!m(a)&&m(s).length>0?(h(),I("button",{key:0,onClick:l[4]||(l[4]=p=>u.$router.push("/profile/edit/equipments"))},_(u.$t("equipments.EDIT_EQUIPMENTS")),1)):M("",!0),m(a)?M("",!0):(h(),I("button",{key:1,onClick:l[5]||(l[5]=p=>u.$router.push("/profile/equipments/new"))},_(u.$t("equipments.NEW_EQUIPMENT")),1)),m(a)?(h(),I("button",{key:2,onClick:l[6]||(l[6]=p=>u.$router.push("/profile/equipments"))},_(u.$t("buttons.BACK")),1)):(h(),I("button",{key:3,onClick:l[7]||(l[7]=p=>u.$router.push("/"))},_(u.$t("common.HOME")),1))])])}}}),KT=ie(kQe,[["__scopeId","data-v-b2876f25"]]),wQe={id:"users-sports"},jT=te({__name:"index",props:{user:{},isEdition:{type:Boolean}},setup(e){const t=e,n=$e(),{t:a}=yt(),{user:s,isEdition:r}=_e(t),o=w(()=>n.getters[Pt.GETTERS.SPORTS]),i=w(()=>Fn(o.value,a,"is_active",s.value.sports_list));return pt(()=>{n.commit(j.MUTATIONS.EMPTY_ERROR_MESSAGES),n.commit(tt.MUTATIONS.SET_CLIENTS,[])}),(u,l)=>{const c=oe("router-view");return h(),I("div",wQe,[W(c,{authUser:m(s),isEdition:m(r),translatedSports:i.value},null,8,["authUser","isEdition","translatedSports"])])}}}),MQe=te({__name:"EquipmentBadge",props:{equipment:{},workoutId:{},sportId:{}},setup(e){const t=e,{equipment:n,sportId:a,workoutId:s}=_e(t);return(r,o)=>{var l;const i=oe("EquipmentTypeImage"),u=oe("router-link");return h(),Y(u,{class:pe(["equipment-badge",{inactive:!m(n).is_active}]),to:{name:"Equipment",params:{id:m(n).id},query:{fromWorkoutId:m(s),fromSportId:(l=m(a))==null?void 0:l.toString()}}},{default:le(()=>[W(i,{title:r.$t(`equipment_types.${m(n).equipment_type.label}.LABEL`),"equipment-type-label":m(n).equipment_type.label},null,8,["title","equipment-type-label"]),d("span",null,_(m(n).label)+" "+_(m(n).is_active?"":`(${r.$t("common.INACTIVE")})`),1)]),_:1},8,["class","to"])}}}),VO=ie(MQe,[["__scopeId","data-v-84285cae"]]);function Vf(){const e=$e(),t=w(()=>e.getters[j.GETTERS.ERROR_MESSAGES]),n=w(()=>e.getters[Q.GETTERS.USER_LOADING]),a="#838383",s=Nt("sportColors"),r=de(!1),o=de(""),i=Kt({sport_id:0,color:null,is_active:!0,stopped_speed_threshold:1,fromSport:!1});function u(E){i.is_active=E.target.checked}function l(E){r.value=E}function c(E){const p={...i};p.stopped_speed_threshold=E.imperial_units?Bt(i.stopped_speed_threshold,"mi","km",2):i.stopped_speed_threshold,e.dispatch(Q.ACTIONS.UPDATE_USER_SPORT_PREFERENCES,p)}function f(E,p=!1){e.dispatch(Q.ACTIONS.RESET_USER_SPORT_PREFERENCES,{sportId:E,fromSport:p})}return{defaultColor:a,defaultEquipmentId:o,displayModal:r,errorMessages:t,loading:n,sportColors:s,sportPayload:i,resetSport:f,updateDisplayModal:l,updateIsActive:u,updateSport:c}}const WQe={key:0,id:"user-sport",class:"description-list"},FQe={class:"sport-equipments"},zQe={key:0,class:"no-equipments"},xQe={class:"sport-buttons"},BQe=["disabled"],GQe={key:1},HQe={class:"no-sport"},VQe=te({__name:"UserSport",props:{authUser:{},translatedSports:{}},setup(e){const t=e,n=$e(),a=Lt(),{translatedSports:s}=_e(t),{displayModal:r,errorMessages:o,loading:i,sportColors:u,resetSport:l,updateDisplayModal:c}=Vf(),f=w(()=>E(s.value));function E(p){if(!a.params.id)return null;const T=p.filter(O=>a.params.id?O.id===+a.params.id:null);return T.length===0?null:T[0]}return pt(()=>{n.commit(j.MUTATIONS.EMPTY_ERROR_MESSAGES)}),We(()=>i.value,p=>{!p&&!o.value&&c(!1)}),(p,T)=>{const O=oe("Modal"),R=oe("SportImage"),g=oe("Distance");return f.value?(h(),I("div",WQe,[m(r)?(h(),Y(O,{key:0,title:p.$t("common.CONFIRMATION"),message:p.$t(`user.PROFILE.SPORT.CONFIRM_SPORT_RESET${f.value.default_equipments.length>0?"_WITH_EQUIPMENTS":""}`),onConfirmAction:T[0]||(T[0]=N=>m(l)(f.value.id,!0)),onCancelAction:T[1]||(T[1]=N=>m(c)(!1)),onKeydown:T[2]||(T[2]=Je(N=>m(c)(!1),["esc"]))},null,8,["title","message"])):M("",!0),d("dl",null,[d("dt",null,_(He(p.$t("workouts.SPORT",1))),1),d("dd",null,_(f.value.translatedLabel),1),d("dt",null,_(He(p.$t("user.PROFILE.SPORT.COLOR"))),1),d("dd",null,[W(R,{title:f.value.translatedLabel,"sport-label":f.value.label,color:f.value.color?f.value.color:m(u)[f.value.label]},null,8,["title","sport-label","color"])]),d("dt",null,_(He(p.$t("workouts.WORKOUT",0))),1),d("dd",null,[d("i",{class:pe(`fa fa-${p.authUser.sports_list.includes(f.value.id)?"check-":""}square-o`),"aria-hidden":"true"},null,2)]),d("dt",null,_(He(p.$t("user.PROFILE.SPORT.STOPPED_SPEED_THRESHOLD"))),1),d("dd",null,[W(g,{distance:f.value.stopped_speed_threshold,unitFrom:"km",speed:!0,useImperialUnits:p.authUser.imperial_units},null,8,["distance","useImperialUnits"])]),d("dt",null,_(He(p.$t("common.ACTIVE",0))),1),d("dd",null,[d("i",{class:pe(`fa fa-${f.value.is_active_for_user?"check-":""}square-o`),"aria-hidden":"true"},null,2)]),d("dt",null,_(p.$t("user.PROFILE.SPORT.DEFAULT_EQUIPMENTS",1)),1),d("dd",FQe,[(h(!0),I(me,null,Pe(f.value.default_equipments,N=>(h(),Y(VO,{equipment:N,"sport-id":f.value.id,key:N.label},null,8,["equipment","sport-id"]))),128)),f.value.default_equipments.length===0?(h(),I("div",zQe,_(p.$t("equipments.NO_EQUIPMENTS")),1)):M("",!0)])]),d("div",xQe,[d("button",{onClick:T[3]||(T[3]=N=>p.$router.push(`/profile/edit/sports/${f.value.id}`))},_(p.$t("buttons.EDIT")),1),d("button",{disabled:m(i),class:"danger",onClick:T[4]||(T[4]=be(N=>m(c)(!0),["prevent"]))},_(p.$t("buttons.RESET")),9,BQe),d("button",{onClick:T[5]||(T[5]=N=>p.$router.push(m(a).query.fromEquipmentId?`/profile/equipments/${m(a).query.fromEquipmentId}`:"/profile/sports"))},_(p.$t("buttons.BACK")),1)])])):(h(),I("div",GQe,[d("p",HQe,_(p.$t("user.NO_SPORT_FOUND")),1),d("button",{onClick:T[6]||(T[6]=N=>p.$router.push("/profile/sports"))},_(p.$t("buttons.BACK")),1)]))}}}),KQe=ie(VQe,[["__scopeId","data-v-1211593f"]]),jQe={key:0,id:"sport-edition"},qQe={class:"form-items"},YQe={class:"form-item"},XQe={for:"sport-label"},QQe={class:"form-item"},ZQe={for:"sport-color"},JQe=["disabled"],eZe={class:"form-item"},tZe={for:"sport-threshold"},nZe=["disabled"],aZe={class:"form-item-checkbox"},sZe={for:"equipment-active"},rZe=["checked","disabled"],oZe={class:"form-item"},iZe={for:"sport-default-equipment"},uZe=["disabled"],lZe={value:""},cZe=["value"],dZe={class:"form-buttons"},EZe=["disabled"],fZe=["disabled"],pZe=te({__name:"UserSportEdition",props:{authUser:{},translatedSports:{}},setup(e){const t=e,{t:n}=yt(),a=$e(),s=Lt(),{authUser:r,translatedSports:o}=_e(t),{defaultColor:i,defaultEquipmentId:u,errorMessages:l,loading:c,sportColors:f,sportPayload:E,updateIsActive:p,updateSport:T}=Vf(),O=w(()=>S(o.value)),R=w(()=>a.getters[Me.GETTERS.EQUIPMENTS]),g=w(()=>R.value&&O.value?pO(R.value,n,"withIncludedIds",O.value,O.value.default_equipments.map(P=>P.id)):[]),N=de(!1);St(()=>{var C;const P=document.getElementById("sport-color");P==null||P.focus(),s.params.id&&s.params.id&&(C=O.value)!=null&&C.id&&A(O.value,!0)});function S(P){if(!s.params.id)return null;const C=P.filter(y=>s.params.id?y.id===+s.params.id:null);return C.length===0?null:C[0]}function A(P,C=!1){P!==null&&(E.sport_id=P.id,E.color=P.color?P.color:f?f[P.label]:i,E.is_active=P.is_active_for_user,E.stopped_speed_threshold=+`${r.value.imperial_units?Bt(P.stopped_speed_threshold,"km","mi",2):parseFloat(P.stopped_speed_threshold.toFixed(2))}`,E.fromSport=!0,C&&(u.value=P.default_equipments.length>0?P.default_equipments[0].id:""))}function v(){E.default_equipment_ids=u.value?[u.value]:[],T(r.value)}function D(){N.value=!0}return We(()=>O.value,P=>{s.params.id&&(P!=null&&P.id)&&A(P,!0)}),(P,C)=>{const y=oe("ErrorMessage");return O.value?(h(),I("div",jQe,[d("form",{class:pe({errors:N.value}),onSubmit:be(v,["prevent"])},[d("div",qQe,[d("div",YQe,[d("label",XQe,_(He(P.$t("workouts.SPORT",1))),1),V(" "+_(O.value.translatedLabel),1)]),d("div",QQe,[d("label",ZQe,_(He(P.$t("user.PROFILE.SPORT.COLOR"))),1),Le(d("input",{id:"sport-color",name:"sport-color",class:"sport-color",type:"color",required:"","onUpdate:modelValue":C[0]||(C[0]=z=>m(E).color=z),disabled:m(c),onInvalid:D},null,40,JQe),[[at,m(E).color]])]),d("div",eZe,[d("label",tZe,_(He(P.$t("user.PROFILE.SPORT.STOPPED_SPEED_THRESHOLD")))+" ("+_(`${m(r).imperial_units?"mi":"km"}/h`)+")* ",1),Le(d("input",{id:"sport-threshold",name:"sport-threshold",class:"threshold-input",type:"number",min:"0",step:"0.1",required:"","onUpdate:modelValue":C[1]||(C[1]=z=>m(E).stopped_speed_threshold=z),disabled:m(c),onInvalid:D},null,40,nZe),[[at,m(E).stopped_speed_threshold]])]),d("div",aZe,[d("label",sZe,_(He(P.$t("common.ACTIVE"))),1),d("input",{id:"equipment-active",name:"equipment-active",type:"checkbox",checked:O.value.is_active_for_user,onChange:C[2]||(C[2]=(...z)=>m(p)&&m(p)(...z)),disabled:m(c)},null,40,rZe)]),d("div",oZe,[d("label",iZe,_(P.$t("user.PROFILE.SPORT.DEFAULT_EQUIPMENTS",1)),1),Le(d("select",{id:"sport-default-equipment",onInvalid:D,disabled:m(c),"onUpdate:modelValue":C[3]||(C[3]=z=>Yt(u)?u.value=z:null)},[d("option",lZe,_(P.$t("equipments.NO_EQUIPMENTS")),1),(h(!0),I(me,null,Pe(g.value,z=>(h(),I("option",{value:z.id,key:z.id},_(z.label),9,cZe))),128))],40,uZe),[[ia,m(u)]])])]),m(l)?(h(),Y(y,{key:0,message:m(l)},null,8,["message"])):M("",!0),d("div",dZe,[d("button",{class:"confirm",type:"submit",disabled:m(c)},_(P.$t("buttons.SUBMIT")),9,EZe),d("button",{class:"cancel",onClick:C[4]||(C[4]=be(()=>{var z;return P.$router.push(`/profile/sports/${(z=O.value)==null?void 0:z.id}`)},["prevent"])),disabled:m(c)},_(P.$t("buttons.CANCEL")),9,fZe)])],34)])):M("",!0)}}}),mZe=ie(pZe,[["__scopeId","data-v-7f3cff18"]]),_Ze={id:"user-sport-preferences"},TZe={key:1,class:"responsive-table"},hZe={class:"mobile-display"},SZe={key:0,class:"profile-buttons mobile-display"},AZe={key:1,class:"profile-buttons"},OZe={class:"text-left"},gZe={class:"threshold"},IZe={key:0},RZe={class:"cell-heading"},NZe={class:"cell-heading"},vZe={key:2,class:"disabled-message"},bZe={key:3,class:"fa fa-refresh fa-spin fa-fw"},CZe={class:"cell-heading"},DZe={class:"cell-heading"},PZe={class:"cell-heading"},LZe=["checked"],yZe={class:"cell-heading"},$Ze={key:1},UZe={key:0,class:"action-buttons"},kZe={class:"cell-heading"},wZe=["onClick"],MZe={key:1,class:"edition-buttons"},WZe=["disabled"],FZe=["disabled"],zZe=["disabled"],xZe={key:0,class:"profile-buttons"},BZe={key:1,class:"profile-buttons"},GZe=te({__name:"UserSportPreferences",props:{authUser:{},translatedSports:{},isEdition:{type:Boolean}},setup(e){const t=e,n=$e(),{authUser:a,isEdition:s,translatedSports:r}=_e(t),{defaultColor:o,displayModal:i,errorMessages:u,loading:l,sportColors:c,sportPayload:f,resetSport:E,updateDisplayModal:p,updateIsActive:T,updateSport:O}=Vf(),R=de(!1);function g(A){A!==null?(f.sport_id=A.id,f.color=A.color?A.color:c?c[A.label]:o,f.is_active=A.is_active_for_user,f.stopped_speed_threshold=+`${a.value.imperial_units?Bt(A.stopped_speed_threshold,"km","mi",2):parseFloat(A.stopped_speed_threshold.toFixed(2))}`,R.value=A.default_equipments.length>0):S()}function N(A){return f.sport_id===A}function S(){f.sport_id=0,f.color=null,f.is_active=!0,f.stopped_speed_threshold=1,R.value=!1,n.commit(j.MUTATIONS.EMPTY_ERROR_MESSAGES)}return We(()=>l.value,A=>{!A&&!u.value&&(S(),p(!1))}),(A,v)=>{const D=oe("Modal"),P=oe("SportImage"),C=oe("router-link"),y=oe("ErrorMessage"),z=oe("Distance");return h(),I("div",_Ze,[m(i)?(h(),Y(D,{key:0,title:A.$t("common.CONFIRMATION"),message:A.$t(`user.PROFILE.SPORT.CONFIRM_SPORT_RESET${R.value?"_WITH_EQUIPMENTS":""}`),onConfirmAction:v[0]||(v[0]=$=>m(E)(m(f).sport_id)),onCancelAction:v[1]||(v[1]=$=>m(p)(!1)),onKeydown:v[2]||(v[2]=Je($=>m(p)(!1),["esc"]))},null,8,["title","message"])):M("",!0),m(r).length>0?(h(),I("div",TZe,[d("div",hZe,[m(s)?(h(),I("div",SZe,[d("button",{class:"cancel",onClick:v[3]||(v[3]=be($=>A.$router.push("/profile/sports"),["prevent"]))},_(A.$t("buttons.BACK")),1)])):(h(),I("div",AZe,[d("button",{onClick:v[4]||(v[4]=$=>A.$router.push("/profile/edit/sports"))},_(A.$t("user.PROFILE.EDIT_SPORTS_PREFERENCES")),1),d("button",{onClick:v[5]||(v[5]=$=>A.$router.push("/"))},_(A.$t("common.HOME")),1)]))]),d("table",null,[d("thead",null,[d("tr",null,[d("th",null,_(A.$t("user.PROFILE.SPORT.COLOR")),1),d("th",OZe,_(A.$t("workouts.SPORT",0)),1),d("th",null,_(A.$t("workouts.WORKOUT",0)),1),d("th",null,_(A.$t("equipments.EQUIPMENT",0)),1),d("th",null,_(A.$t("user.PROFILE.SPORT.IS_ACTIVE")),1),d("th",null,[d("div",gZe,[d("span",null,_(A.$t("user.PROFILE.SPORT.STOPPED_SPEED_THRESHOLD")),1),d("span",null," ("+_(`${m(a).imperial_units?"mi":"km"}/h`)+") ",1)])]),m(s)?(h(),I("th",IZe,_(A.$t("user.PROFILE.SPORT.ACTION")),1)):M("",!0)])]),d("tbody",null,[(h(!0),I(me,null,Pe(m(r),$=>(h(),I("tr",{key:$.id},[d("td",null,[d("span",RZe,_(A.$t("user.PROFILE.SPORT.COLOR")),1),N($.id)?Le((h(),I("input",{key:0,class:"sport-color",type:"color","onUpdate:modelValue":v[6]||(v[6]=F=>m(f).color=F)},null,512)),[[at,m(f).color]]):(h(),Y(P,{key:1,title:$.translatedLabel,"sport-label":$.label,color:$.color?$.color:m(c)[$.label]},null,8,["title","sport-label","color"]))]),d("td",{class:pe(["sport-label",{"disabled-sport":!$.is_active}])},[d("span",NZe,_(A.$t("user.PROFILE.SPORT.LABEL")),1),N($.id)?(h(),I(me,{key:0},[V(_($.translatedLabel),1)],64)):(h(),Y(C,{key:1,to:`/profile/sports/${$.id}`},{default:le(()=>[V(_($.translatedLabel),1)]),_:2},1032,["to"])),$.is_active?M("",!0):(h(),I("span",vZe," ("+_(A.$t("user.PROFILE.SPORT.DISABLED_BY_ADMIN"))+") ",1)),m(l)&&N($.id)?(h(),I("i",bZe)):M("",!0),m(u)&&m(f).sport_id===$.id?(h(),Y(y,{key:4,message:m(u)},null,8,["message"])):M("",!0)],2),d("td",{class:pe(["text-center",{"disabled-sport":!$.is_active}])},[d("span",CZe,_(A.$t("workouts.WORKOUT",0)),1),d("i",{class:pe(`fa fa${m(a).sports_list.includes($.id)?"-check":""}`),"aria-hidden":"true"},null,2)],2),d("td",{class:pe(["text-center",{"disabled-sport":!$.is_active}])},[d("span",DZe,_(A.$t("equipments.EQUIPMENT",0)),1),d("i",{class:pe(`fa fa${$.default_equipments.length>0?"-check":""}`),"aria-hidden":"true"},null,2)],2),d("td",{class:pe(["text-center",{"disabled-sport":!$.is_active}])},[d("span",PZe,_(A.$t("user.PROFILE.SPORT.IS_ACTIVE")),1),N($.id)&&$.is_active?(h(),I("input",{key:0,type:"checkbox",checked:$.is_active_for_user,onChange:v[7]||(v[7]=(...F)=>m(T)&&m(T)(...F))},null,40,LZe)):(h(),I("i",{key:1,class:pe(`fa fa${$.is_active_for_user?"-check":""}`),"aria-hidden":"true"},null,2))],2),d("td",{class:pe(["text-center",{"disabled-sport":!$.is_active}])},[d("span",yZe,_(A.$t("user.PROFILE.SPORT.STOPPED_SPEED_THRESHOLD"))+" "+_(`${m(a).imperial_units?"mi":"km"}/h`),1),N($.id)&&$.is_active?Le((h(),I("input",{key:0,class:"threshold-input",type:"number",min:"0",step:"0.1","onUpdate:modelValue":v[8]||(v[8]=F=>m(f).stopped_speed_threshold=F)},null,512)),[[at,m(f).stopped_speed_threshold]]):(h(),I("span",$Ze,[W(z,{distance:$.stopped_speed_threshold,unitFrom:"km",speed:!0,useImperialUnits:m(a).imperial_units,displayUnit:!1},null,8,["distance","useImperialUnits"])]))],2),m(s)?(h(),I("td",UZe,[d("span",kZe,_(A.$t("user.PROFILE.SPORT.ACTION")),1),m(f).sport_id===0?(h(),I("button",{key:0,onClick:F=>g($)},_(A.$t("buttons.EDIT")),9,wZe)):M("",!0),N($.id)?(h(),I("div",MZe,[d("button",{disabled:m(l),onClick:v[9]||(v[9]=be(F=>m(O)(m(a)),["prevent"]))},_(A.$t("buttons.SUBMIT")),9,WZe),d("button",{disabled:m(l),class:"warning",onClick:v[10]||(v[10]=be(F=>m(p)(!0),["prevent"]))},_(A.$t("buttons.RESET")),9,FZe),d("button",{disabled:m(l),onClick:v[11]||(v[11]=F=>g(null))},_(A.$t("buttons.CANCEL")),9,zZe)])):M("",!0)])):M("",!0)]))),128))])]),m(s)?(h(),I("div",xZe,[d("button",{class:"cancel",onClick:v[12]||(v[12]=be($=>A.$router.push("/profile/sports"),["prevent"]))},_(A.$t("buttons.BACK")),1)])):(h(),I("div",BZe,[d("button",{onClick:v[13]||(v[13]=$=>A.$router.push("/profile/edit/sports"))},_(A.$t("user.PROFILE.EDIT_SPORTS_PREFERENCES")),1),d("button",{onClick:v[14]||(v[14]=$=>A.$router.push("/"))},_(A.$t("common.HOME")),1)]))])):M("",!0)])}}}),qT=ie(GZe,[["__scopeId","data-v-6c042f49"]]),ai=e=>(ot("data-v-34b1686b"),e=e(),it(),e),HZe={class:"about-text"},VZe=["innerHTML"],KZe=ai(()=>d("i",{class:"fa fa-book fa-padding","aria-hidden":"true"},null,-1)),jZe=["href"],qZe=ai(()=>d("i",{class:"fa fa-github fa-padding","aria-hidden":"true"},null,-1)),YZe={href:"https://github.com/SamR1/FitTrackee",target:"_blank",rel:"noopener noreferrer"},XZe=ai(()=>d("i",{class:"fa fa-balance-scale fa-padding","aria-hidden":"true"},null,-1)),QZe=ai(()=>d("a",{href:"https://choosealicense.com/licenses/agpl-3.0/",target:"_blank",rel:"noopener noreferrer"},"AGPLv3",-1)),ZZe={key:0},JZe=ai(()=>d("i",{class:"fa fa-envelope-o fa-padding","aria-hidden":"true"},null,-1)),eJe=["href"],tJe={key:1},nJe=["href"],aJe={class:"about-instance"},sJe=["innerHTML"],rJe=te({__name:"About",setup(e){const t=$e(),n=w(()=>t.getters[j.GETTERS.APP_CONFIG]),a=w(()=>o()),s=w(()=>t.getters[j.GETTERS.LANGUAGE]),r=w(()=>i());function o(){const u={};return n.value.weather_provider==="visualcrossing"&&(u.name="Visual Crossing",u.url="https://www.visualcrossing.com"),u}function i(){let u="https://samr1.github.io/FitTrackee/";return s.value==="fr"&&(u+="fr/"),u}return(u,l)=>{const c=oe("i18n-t");return h(),I("div",HZe,[d("div",null,[d("p",{class:"error-message",innerHTML:u.$t("about.FITTRACKEE_DESCRIPTION")},null,8,VZe),d("p",null,[KZe,d("a",{class:"documentation-link",href:r.value,target:"_blank",rel:"noopener noreferrer"},_(He(u.$t("common.DOCUMENTATION"))),9,jZe)]),d("p",null,[qZe,d("a",YZe,_(u.$t("about.SOURCE_CODE")),1)]),d("p",null,[XZe,W(c,{keypath:"about.FITTRACKEE_LICENSE"},{default:le(()=>[QZe]),_:1})]),n.value.admin_contact?(h(),I("div",ZZe,[JZe,d("a",{href:`mailto:${n.value.admin_contact}`},_(u.$t("about.CONTACT_ADMIN")),9,eJe)])):M("",!0),a.value&&a.value.name?(h(),I("div",tJe,[V(_(u.$t("about.WEATHER_DATA_FROM"))+" ",1),d("a",{href:a.value.url,target:"_blank",rel:"nofollow noopener"},_(a.value.name),9,nJe)])):M("",!0),n.value.about?(h(),I(me,{key:2},[d("p",aJe,_(u.$t("about.ABOUT_THIS_INSTANCE")),1),d("div",{innerHTML:m(ys)(m(ko)(n.value.about))},null,8,sJe)],64)):M("",!0)])])}}}),oJe=ie(rJe,[["__scopeId","data-v-34b1686b"]]),iJe={},uJe=e=>(ot("data-v-dc181e30"),e=e(),it(),e),lJe={id:"bike"},cJe=uJe(()=>d("img",{class:"bike-img",src:"/img/bike.svg",alt:"mountain bike"},null,-1)),dJe=[cJe];function EJe(e,t){return h(),I("div",lJe,dJe)}const KO=ie(iJe,[["render",EJe],["__scopeId","data-v-dc181e30"]]),fJe={id:"about",class:"view"},pJe={class:"container"},mJe={class:"container-sub"},_Je={class:"container-sub about-details"},TJe=te({__name:"AboutView",setup(e){return(t,n)=>(h(),I("div",fJe,[d("div",pJe,[d("div",mJe,[W(KO)]),d("div",_Je,[W(oJe)])])]))}}),hJe=ie(TJe,[["__scopeId","data-v-ef9c7198"]]),SJe={id:"error"},AJe={class:"error-content"},OJe=te({__name:"Error",props:{title:{},message:{},buttonText:{},path:{default:"/"}},setup(e){const t=e,{buttonText:n,title:a,message:s,path:r}=_e(t);return(o,i)=>(h(),I("div",SJe,[d("div",AJe,[d("h1",null,_(m(a)),1),d("p",null,_(m(s)),1),m(n)?(h(),I("button",{key:0,onClick:i[0]||(i[0]=u=>o.$router.push(m(r))),class:"upper"},_(m(n)),1)):M("",!0)])]))}}),gJe=ie(OJe,[["__scopeId","data-v-48ec856d"]]),Kf=te({__name:"NotFound",props:{target:{default:"PAGE"}},setup(e){const t=e,{target:n}=_e(t),a=de(),s=de(!1);St(()=>r());function r(){a.value=setTimeout(()=>{s.value=!0},500)}return pt(()=>{a.value&&clearTimeout(a.value)}),(o,i)=>s.value?(h(),Y(gJe,{key:0,title:"404",message:o.$t(`error.NOT_FOUND.${m(n)}`),"button-text":o.$t("common.HOME")},null,8,["message","button-text"])):M("",!0)}}),IJe=e=>(ot("data-v-5eee0876"),e=e(),it(),e),RJe={id:"admin",class:"view"},NJe={key:0,class:"container"},vJe=IJe(()=>d("div",{id:"bottom"},null,-1)),bJe=te({__name:"AdminView",setup(e){const t=$e(),n=w(()=>t.getters[j.GETTERS.APP_CONFIG]),a=w(()=>t.getters[j.GETTERS.APP_STATS]),s=w(()=>t.getters[Q.GETTERS.IS_ADMIN]),r=w(()=>t.getters[Q.GETTERS.USER_LOADING]);return ft(()=>t.dispatch(j.ACTIONS.GET_APPLICATION_STATS)),(o,i)=>{const u=oe("router-view");return h(),I("div",RJe,[r.value?M("",!0):(h(),I("div",NJe,[s.value?(h(),Y(u,{key:0,appConfig:n.value,appStatistics:a.value},null,8,["appConfig","appStatistics"])):(h(),Y(Kf,{key:1})),vJe]))])}}}),CJe=ie(bJe,[["__scopeId","data-v-5eee0876"]]),jO="/img/workouts/mountains.svg",DJe=["alt"],PJe=d("div",{class:"map-attribution"},[d("a",{class:"map-attribution-text",href:"https://www.openstreetmap.org/copyright",target:"_blank",rel:"noopener noreferrer"}," © OpenStreetMap ")],-1),qO=te({__name:"StaticMap",props:{workout:{},displayHover:{type:Boolean,default:!1}},setup(e){const t=e,{displayHover:n}=_e(t),a=`${Vo()}workouts/map/${t.workout.map}`;return(s,r)=>{const o=oe("router-link");return h(),I("div",{class:pe(["static-map",{"display-hover":m(n)}])},[m(n)?(h(),I("img",{key:0,src:a,alt:s.$t("workouts.WORKOUT_MAP")},null,8,DJe)):(h(),Y(o,{key:1,class:"bg-map-image",to:{name:"Workout",params:{workoutId:s.workout.id}},style:ba({backgroundImage:`url(${a})`}),"aria-label":s.$t("workouts.WORKOUT_MAP")},null,8,["to","style","aria-label"])),PJe],2)}}}),jf=e=>(ot("data-v-ef89664d"),e=e(),it(),e),LJe={class:"timeline-workout"},yJe={class:"box"},$Je={class:"workout-user-date"},UJe={class:"workout-user"},kJe=["datetime","title"],wJe={class:"workout-map"},MJe={class:"no-map"},WJe={class:"img"},FJe={class:"data"},zJe=jf(()=>d("i",{class:"fa fa-clock-o","aria-hidden":"true"},null,-1)),xJe={key:0},BJe={class:"data"},GJe=jf(()=>d("i",{class:"fa fa-road","aria-hidden":"true"},null,-1)),HJe={key:0,class:"data elevation"},VJe=["alt"],KJe={class:"data-values"},jJe={key:1,class:"data altitude"},qJe=jf(()=>d("i",{class:"fa fa-location-arrow","aria-hidden":"true"},null,-1)),YJe={class:"data-values"},XJe=te({__name:"WorkoutCard",props:{user:{},useImperialUnits:{type:Boolean},workout:{default:()=>({})},sport:{default:()=>({})}},setup(e){const t=e,n=$e(),{user:a,workout:s,sport:r,useImperialUnits:o}=_e(t),i=w(()=>n.getters[j.GETTERS.LOCALE]),u=w(()=>zn(s.value.workout_date,a.value.timezone,a.value.date_format));function l(f){return f.with_gpx&&f.min_alt!==null&&f.max_alt!==null}function c(f){return l(f)&&f.ascent!==null&&f.descent!==null}return(f,E)=>{var R;const p=oe("router-link"),T=oe("SportImage"),O=oe("Distance");return h(),I("div",LJe,[d("div",yJe,[d("div",$Je,[d("div",UJe,[W(Ko,{user:m(a)},null,8,["user"]),m(a).username?(h(),Y(p,{key:0,class:"workout-user-name",to:{name:"User",params:{username:m(a).username}}},{default:le(()=>[V(_(m(a).username),1)]),_:1},8,["to"])):M("",!0)]),m(s).id?(h(),Y(p,{key:0,class:"workout-title",to:{name:"Workout",params:{workoutId:m(s).id}}},{default:le(()=>[V(_(m(s).title),1)]),_:1},8,["to"])):M("",!0),m(s).workout_date&&m(a)?(h(),I("time",{key:1,class:"workout-date",datetime:u.value,title:u.value},_(m(x3)(new Date(m(s).workout_date),new Date,{addSuffix:!0,locale:i.value})),9,kJe)):M("",!0)]),d("div",wJe,[m(s).with_gpx?(h(),Y(qO,{key:0,workout:m(s)},null,8,["workout"])):m(s).id?(h(),Y(p,{key:1,to:{name:"Workout",params:{workoutId:m(s).id}}},{default:le(()=>[d("div",MJe,_(f.$t("workouts.NO_MAP")),1)]),_:1},8,["to"])):M("",!0)]),d("div",{class:pe(["workout-data",{"without-elevation":!l(m(s))}]),onClick:E[0]||(E[0]=g=>m(s).id?f.$router.push({name:"Workout",params:{workoutId:m(s).id}}):null)},[d("div",WJe,[(R=m(r))!=null&&R.label?(h(),Y(T,{key:0,"sport-label":m(r).label,color:m(r).color},null,8,["sport-label","color"])):M("",!0)]),d("div",FJe,[zJe,m(s)?(h(),I("span",xJe,_(m(s).moving),1)):M("",!0)]),d("div",BJe,[GJe,m(s).id?(h(),Y(O,{key:0,distance:m(s).distance,digits:3,unitFrom:"km",useImperialUnits:m(o)},null,8,["distance","useImperialUnits"])):M("",!0)]),l(m(s))?(h(),I("div",HJe,[d("img",{class:"mountains",src:jO,alt:f.$t("workouts.ELEVATION")},null,8,VJe),d("div",KJe,[m(s).id?(h(),Y(O,{key:0,distance:m(s).min_alt,unitFrom:"m",displayUnit:!1,useImperialUnits:m(o)},null,8,["distance","useImperialUnits"])):M("",!0),V("/ "),m(s).id?(h(),Y(O,{key:1,distance:m(s).max_alt,unitFrom:"m",useImperialUnits:m(o)},null,8,["distance","useImperialUnits"])):M("",!0)])])):M("",!0),c(m(s))?(h(),I("div",jJe,[qJe,d("div",YJe,[V(" +"),m(s).id?(h(),Y(O,{key:0,distance:m(s).ascent,unitFrom:"m",displayUnit:!1,useImperialUnits:m(o)},null,8,["distance","useImperialUnits"])):M("",!0),V("/- "),m(s).id?(h(),Y(O,{key:1,distance:m(s).descent,unitFrom:"m",useImperialUnits:m(o)},null,8,["distance","useImperialUnits"])):M("",!0)])])):M("",!0)],2)])])}}}),YT=ie(XJe,[["__scopeId","data-v-ef89664d"]]),QJe={},ZJe={class:"no-workouts box"};function JJe(e,t){const n=oe("router-link");return h(),I("div",ZJe,[d("div",null,[V(_(e.$t("workouts.NO_WORKOUTS"))+" ",1),W(n,{to:"/workouts/add"},{default:le(()=>[V(_(e.$t("workouts.UPLOAD_FIRST_WORKOUT")),1)]),_:1})])])}const qf=ie(QJe,[["render",JJe],["__scopeId","data-v-b0c91cc6"]]),Xa={ligthMode:{text:"#666",line:"rgba(0, 0, 0, 0.1)"},darkMode:{text:"#a1a1a1",line:"#3f3f3f"}},eet=(e,t,n,a=!1)=>{const s={speed:{label:t("workouts.SPEED"),backgroundColor:["transparent"],borderColor:[a?"#5f5c97":"#8884d8"],borderWidth:2,data:[],yAxisID:"ySpeed"},elevation:{label:t("workouts.ELEVATION"),backgroundColor:[a?"#303030":"#e5e5e5"],borderColor:[a?"#222222":"#cccccc"],borderWidth:1,fill:!0,data:[],yAxisID:"yElevation"}},r=[],o=[],i=[];return e.map(u=>{r.push(qi("km",u.distance,n)),o.push(u.duration),s.speed.data.push(qi("km",u.speed,n)),u.elevation!==void 0&&s.elevation.data.push(qi("m",u.elevation,n)),i.push({latitude:u.latitude,longitude:u.longitude})}),{distance_labels:r,duration_labels:o,datasets:s,coordinates:i}},tet=e=>{const t=e.length;if(t===0)return{};const n={};return e.map(a=>{n[a.sport_id]||(n[a.sport_id]={count:0,percentage:0}),n[a.sport_id].count+=1,n[a.sport_id].percentage=n[a.sport_id].count/t}),n},Mo={order:"desc",order_by:"workout_date"},net={id:"timeline"},aet={class:"section-title"},set={key:0},ret={key:1},oet={key:1,class:"more-workouts"},ki=5,iet=te({__name:"Timeline",props:{sports:{},user:{}},setup(e){const t=e,n=$e(),{sports:a,user:s}=_e(t),r=de(1),o=t.user.nb_workouts>=ki?ki:t.user.nb_workouts;ft(()=>l());const i=w(()=>n.getters[Re.GETTERS.TIMELINE_WORKOUTS]),u=w(()=>i.value.length>0?i.value[i.value.length-1].previous_workout!==null:!1);function l(){n.dispatch(Re.ACTIONS.GET_TIMELINE_WORKOUTS,{page:r.value,per_page:ki,...Mo})}function c(){r.value+=1,n.dispatch(Re.ACTIONS.GET_MORE_TIMELINE_WORKOUTS,{page:r.value,per_page:ki,...Mo})}return(f,E)=>(h(),I("div",net,[d("div",aet,_(f.$t("workouts.LATEST_WORKOUTS")),1),m(s).nb_workouts>0&&i.value.length===0?(h(),I("div",set,[(h(!0),I(me,null,Pe([...Array(m(o)).keys()],p=>(h(),Y(YT,{user:m(s),useImperialUnits:m(s).imperial_units,key:p},null,8,["user","useImperialUnits"]))),128))])):(h(),I("div",ret,[(h(!0),I(me,null,Pe(i.value,p=>(h(),Y(YT,{workout:p,sport:i.value.length>0?m(a).filter(T=>T.id===p.sport_id)[0]:null,user:m(s),useImperialUnits:m(s).imperial_units,key:p.id},null,8,["workout","sport","user","useImperialUnits"]))),128)),i.value.length===0?(h(),Y(qf,{key:0})):M("",!0),u.value?(h(),I("div",oet,[d("button",{onClick:c},_(f.$t("workouts.LOAD_MORE_WORKOUT")),1)])):M("",!0)]))]))}}),uet=ie(iet,[["__scopeId","data-v-e0964959"]]),cet=["title"],YO=te({__name:"CalendarWorkout",props:{displayHARecord:{type:Boolean},workout:{},sportLabel:{},sportColor:{}},setup(e){const t=e,{displayHARecord:n,workout:a,sportLabel:s,sportColor:r}=_e(t);return(o,i)=>{const u=oe("SportImage"),l=oe("router-link");return h(),Y(l,{class:"calendar-workout",to:{name:"Workout",params:{workoutId:m(a).id}}},{default:le(()=>[W(u,{"sport-label":m(s),title:m(a).title,color:m(r)},null,8,["sport-label","title","color"]),d("sup",null,[m(a).records.length>0?(h(),I("i",{key:0,class:"fa fa-trophy custom-fa-small","aria-hidden":"true",title:m(a).records.filter(c=>m(n)?!0:c.record_type!=="HA").map(c=>` ${o.$t(`workouts.RECORD_${c.record_type}`)}`)[0]},null,8,cet)):M("",!0)])]),_:1},8,["to"])}}}),det={class:"donut-chart"},Eet={height:"34",width:"34",viewBox:"0 0 34 34"},fet=["stroke","stroke-dashoffset","transform"],XT=16,QT=16,ZT=14,pet=te({__name:"DonutChart",props:{colors:{},datasets:{}},setup(e){const t=e,{colors:n,datasets:a}=_e(t);let s=-90;const r=2*Math.PI*ZT;function o(u,l){return l-u*l}function i(u,l){const c=`rotate(${s}, ${XT}, ${QT})`;return s=l*360+s,c}return(u,l)=>(h(),I("div",det,[(h(),I("svg",Eet,[(h(!0),I(me,null,Pe(Object.entries(m(a)),(c,f)=>(h(),I("g",{key:f},[d("circle",{cx:XT,cy:QT,r:ZT,fill:"transparent",stroke:m(n)[+c[0]],"stroke-dashoffset":o(c[1].percentage,r),"stroke-dasharray":r,"stroke-width":"3","stroke-opacity":"0.8",transform:i(f,c[1].percentage)},null,8,fet)]))),128))]))]))}}),met=e=>(ot("data-v-796e8c43"),e=e(),it(),e),_et={class:"calendar-workouts-chart"},Tet=["id"],het={class:"workouts-count"},Aet={key:0,class:"workouts-pane"},Oet=["id"],get=met(()=>d("i",{class:"fa fa-times","aria-hidden":"true"},null,-1)),Iet=[get],Ret=te({__name:"CalendarWorkoutsChart",props:{colors:{},datasets:{},sports:{},workouts:{},displayHARecord:{type:Boolean},index:{}},setup(e){const t=e;let n=0;const{colors:a,datasets:s,index:r,sports:o,workouts:i}=_e(t),u=de(!0);function l(){const E=document.getElementById(`workouts-pane-${r.value}`);return E!=null&&E.children&&(E==null?void 0:E.children.length)>0?E:null}async function c(E){var T;E.preventDefault(),E.stopPropagation(),u.value=!u.value,await on();const p=l();u.value?(T=document.getElementById(`workouts-donut-${r.value}`))==null||T.focus():(p==null?void 0:p.children[0]).focus()}function f(E){if(!u.value){if(!u.value&&(E.key==="Tab"||E.keyCode===9)){E.preventDefault(),E.stopPropagation();const p=l();p&&(E.shiftKey?(n-=1,n<0&&(n=p.children.length-1)):(n+=1,n>=p.children.length&&(n=0)),p.children[n].focus())}E.key==="Escape"&&c(E)}}return St(()=>{document.addEventListener("keydown",f)}),pt(()=>{document.removeEventListener("keydown",f)}),(E,p)=>{const T=XI("click-outside");return h(),I("div",_et,[d("button",{class:"workouts-chart transparent",id:`workouts-donut-${m(r)}`,onClick:c},[d("div",het,_(m(i).length),1),W(pet,{datasets:m(s),colors:m(a)},null,8,["datasets","colors"])],8,Tet),u.value?M("",!0):(h(),I("div",Aet,[Le((h(),I("div",{class:"more-workouts",id:`workouts-pane-${m(r)}`},[d("button",{class:"calendar-more-close transparent",onClick:c},Iet),(h(!0),I(me,null,Pe(m(i),(O,R)=>(h(),Y(YO,{key:R,displayHARecord:E.displayHARecord,workout:O,sportLabel:m(Mf)(O,m(o)),sportColor:m(Wf)(O,m(o))},null,8,["displayHARecord","workout","sportLabel","sportColor"]))),128))],8,Oet)),[[T,c]])]))])}}}),JT=ie(Ret,[["__scopeId","data-v-796e8c43"]]),Net={class:"calendar-workouts"},vet={class:"desktop-display"},bet={key:0,class:"workouts-display"},Cet={key:1,class:"donut-display"},Det={class:"mobile-display"},Pet={key:0,class:"donut-display"},e0=6,Let=te({__name:"CalendarWorkouts",props:{displayHARecord:{type:Boolean},workouts:{},sports:{},index:{}},setup(e){const t=e,{displayHARecord:n,index:a,sports:s,workouts:r}=_e(t),o=w(()=>tet(t.workouts)),i=w(()=>tBe(t.sports));return(u,l)=>(h(),I("div",Net,[d("div",vet,[m(r).length<=e0?(h(),I("div",bet,[(h(!0),I(me,null,Pe(m(r).slice(0,e0),(c,f)=>(h(),Y(YO,{key:f,displayHARecord:m(n),workout:c,sportLabel:m(Mf)(c,m(s)),sportColor:m(Wf)(c,m(s))},null,8,["displayHARecord","workout","sportLabel","sportColor"]))),128))])):(h(),I("div",Cet,[W(JT,{workouts:m(r),sports:m(s),datasets:o.value,colors:i.value,displayHARecord:m(n),index:m(a)},null,8,["workouts","sports","datasets","colors","displayHARecord","index"])]))]),d("div",Det,[m(r).length>0?(h(),I("div",Pet,[W(JT,{workouts:m(r),sports:m(s),datasets:o.value,colors:i.value,displayHARecord:m(n),index:m(a)},null,8,["workouts","sports","datasets","colors","displayHARecord","index"])])):M("",!0)])]))}}),yet={class:"calendar-cells"},$et={class:"calendar-cell-day"},Uet=te({__name:"CalendarCells",props:{currentDay:{},displayHARecord:{type:Boolean},endDate:{},sports:{},startDate:{},timezone:{},weekStartingMonday:{type:Boolean},workouts:{}},setup(e){const t=e,{currentDay:n,displayHARecord:a,endDate:s,sports:r,startDate:o,timezone:i,weekStartingMonday:u,workouts:l}=_e(t),c=de([]);St(()=>f());function f(){c.value=[];let T=o.value;for(;T<=s.value;){const O=[];for(let R=0;R<7;R++)O.push(T),T=qo(T,1);c.value.push(O)}}function E(T){return u.value?[5,6].includes(T):[0,6].includes(T)}function p(T,O){return O?O.filter(R=>J1(Ql(R.workout_date,i.value),T)).reverse():[]}return We(()=>t.currentDay,()=>f()),(T,O)=>(h(),I("div",yet,[(h(!0),I(me,null,Pe(c.value,(R,g)=>(h(),I("div",{class:"calendar-row",key:g},[(h(!0),I(me,null,Pe(R,(N,S)=>(h(),I("div",{class:pe(["calendar-cell",{"disabled-cell":!m(G3)(N,m(n)),"week-end":E(S),today:m(H3)(N)}]),key:S},[W(Let,{workouts:p(N,m(l)),sports:m(r),displayHARecord:m(a),index:S},null,8,["workouts","sports","displayHARecord","index"]),d("div",$et,_(m(un)(N,"d")),1)],2))),128))]))),128))]))}}),ket={class:"calendar-days"},wet=te({__name:"CalendarDays",props:{startDate:{},localeOptions:{}},setup(e){const t=e,n=[];for(let a=0;a<7;a++)n.push(qo(t.startDate,a));return(a,s)=>(h(),I("div",ket,[(h(),I(me,null,Pe(n,(r,o)=>d("div",{class:"calendar-day",key:o},_(m(un)(r,a.localeOptions.code==="eu"?"EEEEEE.":"EEE",{locale:a.localeOptions})),1)),64))]))}}),Met={class:"calendar-header"},Wet=["aria-label"],Fet=d("i",{class:"fa fa-chevron-left","aria-hidden":"true"},null,-1),zet=[Fet],xet={class:"calendar-month"},Bet=["aria-label"],Get=d("i",{class:"fa fa-chevron-right","aria-hidden":"true"},null,-1),Het=[Get],Vet=te({__name:"CalendarHeader",props:{day:{},localeOptions:{}},emits:["displayNextMonth","displayPreviousMonth"],setup(e,{emit:t}){const n=e,a=t,{day:s,localeOptions:r}=_e(n);return(o,i)=>(h(),I("div",Met,[d("button",{class:"calendar-arrow calendar-arrow-left transparent",onClick:i[0]||(i[0]=u=>a("displayPreviousMonth")),"aria-label":o.$t("common.PREVIOUS")},zet,8,Wet),d("div",xet,[d("span",null,_(m(un)(m(s),"MMM yyyy",{locale:m(r)})),1)]),d("button",{class:"calendar-arrow calendar-arrow-right transparent",onClick:i[1]||(i[1]=u=>a("displayNextMonth")),"aria-label":o.$t("common.NEXT")},Het,8,Bet)]))}}),Ket={id:"user-calendar"},jet={class:"calendar-card box"},t0="yyyy-MM-dd",qet=te({__name:"index",props:{sports:{},user:{}},setup(e){const t=e,n=$e(),{sports:a,user:s}=_e(t),r=de(new Date),o=de(CT(r.value,s.value.weekm)),i=w(()=>n.getters[Re.GETTERS.CALENDAR_WORKOUTS]),u=w(()=>n.getters[j.GETTERS.LOCALE]);ft(()=>l());function l(){o.value=CT(r.value,t.user.weekm);const E={from:un(o.value.start,t0),to:un(o.value.end,t0),page:1,per_page:100,...Mo};n.dispatch(Re.ACTIONS.GET_CALENDAR_WORKOUTS,E)}function c(){r.value=dr(r.value,1),l()}function f(){r.value=So(r.value,1),l()}return(E,p)=>(h(),I("div",Ket,[d("div",jet,[W(Vet,{day:r.value,"locale-options":u.value,onDisplayNextMonth:c,onDisplayPreviousMonth:f},null,8,["day","locale-options"]),W(wet,{"start-date":o.value.start,"locale-options":u.value},null,8,["start-date","locale-options"]),W(Uet,{currentDay:r.value,displayHARecord:m(s).display_ascent,"end-date":o.value.end,sports:m(a),"start-date":o.value.start,timezone:m(s).timezone,workouts:i.value,weekStartingMonday:m(s).weekm},null,8,["currentDay","displayHARecord","end-date","sports","start-date","timezone","workouts","weekStartingMonday"])])]))}}),XO={data:{type:Object,required:!0},options:{type:Object,default:()=>({})},plugins:{type:Array,default:()=>[]},datasetIdKey:{type:String,default:"label"},updateMode:{type:String,default:void 0}},Yet={ariaLabel:{type:String},ariaDescribedby:{type:String}},Xet={type:{type:String,required:!0},destroyDelay:{type:Number,default:0},...XO,...Yet},Qet=bh[0]==="2"?(e,t)=>Object.assign(e,{attrs:t}):(e,t)=>Object.assign(e,t);function qs(e){return pl(e)?lt(e):e}function Zet(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:e;return pl(t)?new Proxy(e,{}):e}function Jet(e,t){const n=e.options;n&&t&&Object.assign(n,t)}function QO(e,t){e.labels=t}function ZO(e,t,n){const a=[];e.datasets=t.map(s=>{const r=e.datasets.find(o=>o[n]===s[n]);return!r||!s.data||a.includes(r)?{...s}:(a.push(r),Object.assign(r,s),r)})}function ett(e,t){const n={labels:[],datasets:[]};return QO(n,e.labels),ZO(n,e.datasets,t),n}const ttt=te({props:Xet,setup(e,t){let{expose:n,slots:a}=t;const s=de(null),r=Fo(null);n({chart:r});const o=()=>{if(!s.value)return;const{type:l,data:c,options:f,plugins:E,datasetIdKey:p}=e,T=ett(c,p),O=Zet(T,c);r.value=new _E(s.value,{type:l,data:O,options:{...f},plugins:E})},i=()=>{const l=lt(r.value);l&&(e.destroyDelay>0?setTimeout(()=>{l.destroy(),r.value=null},e.destroyDelay):(l.destroy(),r.value=null))},u=l=>{l.update(e.updateMode)};return St(o),pt(i),We([()=>e.options,()=>e.data],(l,c)=>{let[f,E]=l,[p,T]=c;const O=lt(r.value);if(!O)return;let R=!1;if(f){const g=qs(f),N=qs(p);g&&g!==N&&(Jet(O,g),R=!0)}if(E){const g=qs(E.labels),N=qs(T.labels),S=qs(E.datasets),A=qs(T.datasets);g!==N&&(QO(O.config.data,g),R=!0),S&&S!==A&&(ZO(O.config.data,S,e.datasetIdKey),R=!0)}R&&on(()=>{u(O)})},{deep:!0}),()=>Sn("canvas",{role:"img",ariaLabel:e.ariaLabel,ariaDescribedby:e.ariaDescribedby,ref:s},[Sn("p",{},[a.default?a.default():""])])}});function JO(e,t){return _E.register(t),te({props:XO,setup(n,a){let{expose:s}=a;const r=Fo(null),o=i=>{r.value=i==null?void 0:i.chart};return s({chart:r}),()=>Sn(ttt,Qet({ref:o},{type:e,...n}))}})}const ntt=JO("bar",T0),att=JO("line",h0),qr=(e,t,n,a=!0,s="km")=>{const r=n?_n[s].defaultTarget:s;switch(e){case"average_speed":return`${t.toFixed(2)} ${r}/h`;case"average_duration":case"total_duration":return qXe(t,a);case"average_distance":case"average_ascent":case"average_descent":case"total_distance":case"total_ascent":case"total_descent":return`${t.toFixed(2)} ${r}`;default:return t.toString()}},stt=te({__name:"Chart",props:{datasets:{},labels:{},displayedData:{},displayedSportIds:{},fullStats:{type:Boolean},useImperialUnits:{type:Boolean},label:{}},setup(e){const t=e,{datasets:n,labels:a,displayedData:s,displayedSportIds:r,fullStats:o,useImperialUnits:i}=_e(t),u=jo(),{t:l}=yt(),c=w(()=>u.getters[j.GETTERS.DARK_MODE]),f=w(()=>Dl(c.value)),E=w(()=>({color:f.value?Xa.darkMode.line:Xa.ligthMode.line})),p=w(()=>({color:f.value?Xa.darkMode.text:Xa.ligthMode.text})),T=w(()=>s.value!=="average_workouts"&&s.value.startsWith("average")),O=w(()=>({labels:a.value,datasets:JSON.parse(JSON.stringify(n.value))})),R=w(()=>({responsive:!0,maintainAspectRatio:!1,animation:!1,layout:{padding:{top:o.value?40:22}},scales:{x:{stacked:!0,grid:{drawOnChartArea:!1,...E.value},border:{...E.value},ticks:{...p.value}},y:{stacked:!s.value.startsWith("average"),grid:{drawOnChartArea:!1,...E.value},border:{...E.value},ticks:{maxTicksLimit:6,callback:function(A){return qr(s.value,+A,i.value,!1,S(s.value))},...p.value},afterFit:function(A){A.width=o.value?90:60}}},plugins:{datalabels:{anchor:"end",align:"end",color:function(A){return T.value&&A.dataset.backgroundColor?A.dataset.backgroundColor[0]:p.value.color},rotation:function(A){return o.value&&A.chart.chartArea.width<580?310:0},display:function(A){return o.value&&A.chart.chartArea.width<300?!1:T.value?r.value.length==1?"auto":!1:!0},formatter:function(A,v){if(s.value.startsWith("average"))return qr(s.value,A,i.value,!1);{const D=v.chart.data.datasets.map(P=>P.data[v.dataIndex]).reduce((P,C)=>N(P,C),0);return v.datasetIndex===r.value.length-1&&D>0?qr(s.value,D,i.value,!1,S(s.value)):null}}},legend:{display:!1},tooltip:{interaction:{intersect:!0,mode:"index",position:T.value?"nearest":"average"},filter:function(A){return A.formattedValue!=="0"},callbacks:{label:function(A){let v=s.value==="average_workouts"?l("workouts.WORKOUT",0):l(`sports.${A.dataset.label}.LABEL`)||"";return v&&(v+=": "),A.parsed.y!==null&&(v+=qr(s.value,A.parsed.y,i.value,!0,S(s.value))),v},footer:function(A){if(s.value.startsWith("average"))return"";let v=0;return A.map(D=>{v+=D.parsed.y}),`${l("common.TOTAL")}: `+qr(s.value,v,i.value,!0,S(s.value))}}}}}));function g(A){return isNaN(A)?0:+A}function N(A,v){return g(A)+g(v)}function S(A){return A.includes("scent")?"m":"km"}return(A,v)=>(h(),I("div",{class:pe(["bar-chart",{minimal:!m(o)}])},[W(m(ntt),{data:O.value,options:R.value,"aria-label":A.label},null,8,["data","options","aria-label"])],2))}}),rtt=ie(stt,[["__scopeId","data-v-893ee0af"]]),{locale:cl}=Lr.global,eg={week:{api:"yyyy-MM-dd",chart:"MM/dd/yyyy"},month:{api:"yyyy-MM",chart:"MM/yyyy"},year:{api:"yyyy",chart:"yyyy"}},ott=["average_ascent","average_descent","average_distance","average_duration","average_speed","total_workouts","total_duration","total_distance","total_ascent","total_descent"],itt=(e,t)=>{const n=[];for(let a=pGe(e.duration,e.start,t);a<=e.end;a=mGe(e.duration,a))n.push(a);return n},Jn=(e,t,n=!1)=>{const a={label:e,backgroundColor:[t],data:[]};return n?(a.type="line",a.borderColor=[t],a.spanGaps=!0):a.type="bar",a},utt=e=>{const t={average_ascent:[],average_descent:[],average_distance:[],average_duration:[],average_speed:[],average_workouts:[],total_workouts:[],total_distance:[],total_duration:[],total_ascent:[],total_descent:[]};return e.map(n=>{const a=n.color?n.color:wf[n.label];t.average_ascent.push(Jn(n.label,a,!0)),t.average_descent.push(Jn(n.label,a,!0)),t.average_distance.push(Jn(n.label,a,!0)),t.average_duration.push(Jn(n.label,a,!0)),t.average_speed.push(Jn(n.label,a,!0)),t.total_workouts.push(Jn(n.label,a)),t.total_distance.push(Jn(n.label,a)),t.total_duration.push(Jn(n.label,a)),t.total_ascent.push(Jn(n.label,a)),t.total_descent.push(Jn(n.label,a))}),t},ltt=(e,t,n)=>{switch(e){case"average_speed":case"total_distance":case"total_ascent":case"total_descent":case"average_distance":case"average_ascent":case"average_descent":return qi(["average_speed","total_distance","average_distance"].includes(e)?"km":"m",t,n);default:case"total_workouts":case"total_duration":case"average_duration":return t}},pE=(e,t,n,a)=>un(e,t==="week"?ls(n,cl.value):a,{locale:Ls[cl.value]}),ctt=(e,t,n,a,s,r,o)=>{const i=itt(e,t),u=eg[e.duration],l=n.filter(p=>a.includes(p.id)),c=[],f=utt(l),E={};return l.map(p=>E[p.label]=p.id),i.map(p=>{const T=un(p,u.api),O=pE(p,e.duration,o,u.chart);un(p,e.duration==="week"?ls(o,cl.value):u.chart,{locale:Ls[cl.value]}),c.push(O),ott.map(R=>{f[R].map(g=>{g.data.push(T in s&&E[g.label]in s[T]?ltt(R,s[T][E[g.label]][R],r):R.startsWith("average")?null:0)})})}),{labels:c,datasets:f}},dtt=(e,t,n,a)=>{const s=n?1:0,r=t==="year"?YE(Td(e,9)):t==="week"?Ll(So(e,2),{weekStartsOn:s}):Xo(So(e,11)),o=t==="year"?eS(e):t==="week"?XE(e,{weekStartsOn:s}):Yo(e);return{duration:t,end:o,start:r,statsType:a}},Ett=(e,t,n)=>{const{duration:a,start:s,end:r}=e,o=n?1:0;return{duration:a,end:a==="year"?eS(t?Td(r,1):Tu(r,1)):a==="week"?XE(t?ym(r,1):_d(r,1),{weekStartsOn:o}):Yo(t?So(r,1):dr(r,1)),start:a==="year"?YE(t?Td(s,1):Tu(s,1)):a==="week"?Ll(t?ym(s,1):_d(s,1),{weekStartsOn:o}):Xo(t?So(s,1):dr(s,1)),statsType:e.statsType}},n0=e=>{const t=e.reduce((a,s)=>(a||0)+(s||0),0);return+(e.length?(t||0)/e.length:0).toFixed(1)},ftt=(e,t)=>{const n=e.label.toLowerCase(),a=t.label.toLowerCase();return n>a?1:n{const n=[],a={label:"workouts_average",backgroundColor:[],data:[]};let s=[];const r=e.map(o=>(o.label=t(`sports.${o.label}.LABEL`),o)).sort(ftt);for(const o of r)a.data.push(n0(o.data)),a.backgroundColor.push(o.backgroundColor[0]),n.push(o.label),s.length>0?s=s.map((i,u)=>i+(o.data[u]||0)):s=o.data.map(i=>i||0);return{labels:n,datasets:{workouts_average:[a]},workoutsAverage:n0(s)}},mtt=e=>(ot("data-v-0473fee9"),e=e(),it(),e),_tt={class:"stats-chart"},Ttt={key:0},htt={key:1},Stt={class:"chart-radio"},Att=["value","checked","disabled"],Ott=["value","checked","disabled"],gtt=["value","checked","disabled"],Itt={key:0},Rtt=["checked","disabled"],Ntt={key:1},vtt=["value","checked","disabled"],btt={key:2},Ctt=["value","checked","disabled"],Dtt={class:"workouts-average"},Ptt={key:0,class:"info-box"},Ltt=mtt(()=>d("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1)),ytt=te({__name:"index",props:{sports:{},user:{},chartParams:{},displayedSportIds:{default:()=>[]},fullStats:{type:Boolean,default:!1},hideChartIfNoData:{type:Boolean,default:!1},isDisabled:{type:Boolean,default:!1},selectedTimeFrame:{default:null}},setup(e){const t=e,{sports:n,user:a,chartParams:s,displayedSportIds:r,fullStats:o,hideChartIfNoData:i,isDisabled:u}=_e(t),l=$e(),{t:c}=yt(),f=de("total_distance"),E=w(()=>l.getters[Ut.GETTERS.USER_STATS]),p=w(()=>eg[s.value.duration].chart),T=w(()=>pE(s.value.start,s.value.duration,a.value.date_format,p.value)),O=w(()=>pE(s.value.end,s.value.duration,a.value.date_format,p.value)),R=w(()=>ctt(s.value,a.value.weekm,n.value,r.value,E.value,a.value.imperial_units,a.value.date_format)),g=w(()=>R.value.datasets[f.value]),N=w(()=>R.value.labels),S=w(()=>Object.keys(E.value).length===0),A=w(()=>s.value.statsType),v=w(()=>ptt(R.value.datasets.total_workouts,c));ft(()=>D(C(s.value,a.value)));function D(y){l.dispatch(Ut.ACTIONS.GET_USER_STATS,{username:a.value.username,params:y})}function P(y){f.value=y.target.value}function C(y,z){return{from:un(y.start,"yyyy-MM-dd"),to:un(y.end,"yyyy-MM-dd"),time:y.duration==="week"?`week${z.weekm?"m":""}`:y.duration,type:A.value}}return We(()=>s.value,async y=>{D(C(y,a.value))}),We(()=>A.value,async y=>{f.value=y==="total"&&f.value==="average_speed"?"total_distance":`${A.value}_${f.value.split("_")[1]}`}),(y,z)=>(h(),I("div",_tt,[m(i)&&S.value?(h(),I("div",Ttt,_(y.$t("workouts.NO_WORKOUTS")),1)):(h(),I("div",htt,[d("div",Stt,[d("label",null,[d("input",{type:"radio",name:"value_type",value:`${A.value}_distance`,checked:f.value===`${A.value}_distance`,disabled:m(u),onClick:P},null,8,Att),V(" "+_(y.$t("workouts.DISTANCE")),1)]),d("label",null,[d("input",{type:"radio",name:"value_type",value:`${A.value}_duration`,checked:f.value===`${A.value}_duration`,disabled:m(u),onClick:P},null,8,Ott),V(" "+_(y.$t("workouts.DURATION")),1)]),d("label",null,[d("input",{type:"radio",name:"value_type",value:`${A.value}_workouts`,checked:f.value===`${A.value}_workouts`,disabled:m(u),onClick:P},null,8,gtt),V(" "+_(y.$t("workouts.WORKOUT",2)),1)]),m(o)&&A.value==="average"?(h(),I("label",Itt,[d("input",{type:"radio",name:"value_type",value:"average_speed",checked:f.value==="average_speed",disabled:m(u),onClick:P},null,8,Rtt),V(" "+_(y.$t("workouts.SPEED")),1)])):M("",!0),m(o)?(h(),I("label",Ntt,[d("input",{type:"radio",name:"value_type",value:`${A.value}_ascent`,checked:f.value===`${A.value}_ascent`,disabled:m(u),onClick:P},null,8,vtt),V(" "+_(y.$t("workouts.ASCENT")),1)])):M("",!0),m(o)?(h(),I("label",btt,[d("input",{type:"radio",name:"value_type",value:`${A.value}_descent`,checked:f.value===`${A.value}_descent`,disabled:m(u),onClick:P},null,8,Ctt),V(" "+_(y.$t("workouts.DESCENT")),1)])):M("",!0)]),N.value.length>0||v.value.labels.length>0?(h(),Y(rtt,{key:0,datasets:f.value==="average_workouts"?v.value.datasets.workouts_average:g.value,labels:f.value==="average_workouts"?v.value.labels:N.value,displayedData:f.value,displayedSportIds:m(r),fullStats:m(o),useImperialUnits:m(a).imperial_units,label:y.$t(`statistics.STATISTICS_CHARTS.${m(s).duration}`)+` (${T.value} - ${O.value})`},null,8,["datasets","labels","displayedData","displayedSportIds","fullStats","useImperialUnits","label"])):M("",!0),d("div",Dtt,[f.value==="average_workouts"&&y.selectedTimeFrame?(h(),I("div",Ptt,[Ltt,V(" "+_(y.$t("statistics.DATES"))+": "+_(T.value)+" - "+_(O.value)+", "+_(y.$t("statistics.WORKOUTS_AVERAGE"))+": "+_(v.value.workoutsAverage)+"/"+_(y.$t(`statistics.TIME_FRAMES.${y.selectedTimeFrame}`)),1)])):M("",!0)])]))]))}}),tg=ie(ytt,[["__scopeId","data-v-0473fee9"]]),$tt={class:"user-month-stats"},Utt=te({__name:"UserMonthStats",props:{sports:{},user:{}},setup(e){const t=e,{sports:n,user:a}=_e(t),s=new Date,r={duration:"week",start:Xo(s),end:Yo(s),statsType:"total"},o=n.value.map(i=>i.id);return(i,u)=>{const l=oe("Card");return h(),I("div",$tt,[W(l,null,{title:le(()=>[V(_(i.$t("dashboard.THIS_MONTH")),1)]),content:le(()=>[W(tg,{sports:m(n),user:m(a),"chart-params":r,"displayed-sport-ids":m(o),"hide-chart-if-no-data":!0},null,8,["sports","user","displayed-sport-ids"])]),_:1})])}}}),ktt=ie(Utt,[["__scopeId","data-v-3131940a"]]),wtt={class:"record"},Mtt={class:"record-type"},Wtt={class:"record-value"},Ftt={class:"record-date"},ztt=te({__name:"SportRecordsTable",props:{record:{}},setup(e){const t=e,{record:n}=_e(t);return(a,s)=>{const r=oe("router-link");return h(),I("div",wtt,[d("span",Mtt,_(He(m(n).label)),1),d("span",Wtt,_(m(n).value),1),d("span",Ftt,[W(r,{to:{name:"Workout",params:{workoutId:m(n).workout_id}}},{default:le(()=>[d("time",null,_(m(n).workout_date),1)]),_:1},8,["to"])])])}}}),ng=ie(ztt,[["__scopeId","data-v-fce46986"]]),{locale:xtt}=Lr.global,Btt=(e,t,n,a)=>{const s="km",r=n?_n[s].defaultTarget:s,o="m",i=n?_n[o].defaultTarget:o;let u;switch(e.record_type){case"AS":case"MS":u=`${Bt(+e.value,s,r,2)} ${r}/h`;break;case"FD":u=`${Bt(+e.value,s,r,3)} ${r}`;break;case"HA":u=`${Bt(+e.value,o,i,2)} ${i}`;break;case"LD":u=e.value;break;default:throw new Error(`Invalid record type, expected: "AS", "FD", "HA", "LD", "MD", got: "${e.record_type}"`)}return{id:e.id,record_type:e.record_type,sport_id:e.sport_id,value:u,user:e.user,workout_date:zn(e.workout_date,t,a,!1),workout_id:e.workout_id}},ag=(e,t)=>{const n=e.label.toLowerCase(),a=t.label.toLowerCase();return n>a?1:n(r=ls(r,xtt.value),e.filter(i=>s?!0:i.record_type!=="HA").reduce((i,u)=>{const l=t.find(c=>c.id===u.sport_id);return l&&l.label&&(o===null||l.id===o)&&(i[l.translatedLabel]===void 0&&(i[l.translatedLabel]={label:l.label,color:l.color,records:[]}),i[l.translatedLabel].records.push(Btt(u,n,a,r))),i},{})),Gtt={class:"records-card"},Htt=te({__name:"RecordsCard",props:{records:{},sportTranslatedLabel:{}},setup(e){const t=e,{records:n,sportTranslatedLabel:a}=_e(t),s=$e(),{t:r}=yt(),o=w(()=>s.getters[j.GETTERS.LANGUAGE]),i=w(()=>o.value==="bg");function u(l){const c=[];return l.map(f=>{c.push({...f,label:r(`workouts.RECORD_${f.record_type}`)})}),c.sort(ag)}return(l,c)=>{const f=oe("SportImage"),E=oe("Card");return h(),I("div",Gtt,[W(E,null,{title:le(()=>[W(f,{"sport-label":m(n).label,color:m(n).color},null,8,["sport-label","color"]),V(" "+_(m(a)),1)]),content:le(()=>[(h(!0),I(me,null,Pe(u(m(n).records),p=>(h(),Y(ng,{class:pe({"max-width":i.value}),record:p,key:p.id},null,8,["class","record"]))),128))]),_:1})])}}}),Vtt=ie(Htt,[["__scopeId","data-v-97e7ddaa"]]),Ktt=e=>(ot("data-v-fff33919"),e=e(),it(),e),jtt={class:"user-records-section"},qtt={class:"section-title"},Ytt=Ktt(()=>d("i",{class:"fa fa-trophy custom-fa-small","aria-hidden":"true"},null,-1)),Xtt={class:"user-records"},Qtt={key:0,class:"no-records"},Ztt=te({__name:"index",props:{sports:{},user:{}},setup(e){const t=e,{t:n}=yt(),a=w(()=>sg(t.user.records,Fn(t.sports,n),t.user.timezone,t.user.imperial_units,t.user.display_ascent,t.user.date_format));return(s,r)=>(h(),I("div",jtt,[d("div",qtt,[Ytt,V(" "+_(s.$t("workouts.RECORD",2)),1)]),d("div",Xtt,[Object.keys(a.value).length===0?(h(),I("div",Qtt,_(s.$t("workouts.NO_RECORDS")),1)):M("",!0),(h(!0),I(me,null,Pe(Object.keys(a.value).sort(),o=>(h(),Y(Vtt,{sportTranslatedLabel:o,records:a.value[o],key:o,useImperialUnits:s.user.imperial_units},null,8,["sportTranslatedLabel","records","useImperialUnits"]))),128))])]))}}),Jtt=ie(Ztt,[["__scopeId","data-v-fff33919"]]),ent={id:"user-stats"},Gc="km",Hc="m",tnt=te({__name:"index",props:{user:{}},setup(e){const t=e,{t:n}=yt(),{user:a}=_e(t),s=w(()=>Hf(a.value.total_duration,n)),r=a.value.imperial_units?_n[Gc].defaultTarget:Gc,o=w(()=>a.value.imperial_units?Bt(a.value.total_distance,Gc,r,2):parseFloat(a.value.total_distance.toFixed(2))),i=a.value.imperial_units?_n[Hc].defaultTarget:Hc,u=w(()=>a.value.imperial_units?Bt(a.value.total_ascent,Hc,i,2):parseFloat(a.value.total_ascent.toFixed(2)));return(l,c)=>(h(),I("div",ent,[W(Ia,{icon:"calendar",value:m(a).nb_workouts,text:l.$t("workouts.WORKOUT",m(a).nb_workouts)},null,8,["value","text"]),W(Ia,{icon:"road",value:o.value,text:m(r)==="mi"?"miles":m(r)},null,8,["value","text"]),m(a).display_ascent?(h(),Y(Ia,{key:0,icon:"location-arrow",value:u.value,text:m(i)==="ft"?"feet":m(i)},null,8,["value","text"])):M("",!0),W(Ia,{icon:"clock-o",value:s.value.days,text:s.value.duration},null,8,["value","text"]),m(a).display_ascent?M("",!0):(h(),Y(Ia,{key:1,icon:"tags",value:m(a).nb_sports,text:l.$t("workouts.SPORT",m(a).nb_sports)},null,8,["value","text"]))]))}}),nnt={},ant={class:"privacy-policy-message"};function snt(e,t){const n=oe("router-link"),a=oe("i18n-t");return h(),I("div",ant,[d("span",null,[W(a,{keypath:"user.LAST_PRIVACY_POLICY_TO_VALIDATE"},{default:le(()=>[W(n,{to:"/profile/edit/privacy-policy",class:"policy-link"},{default:le(()=>[V(_(e.$t("user.REVIEW")),1)]),_:1})]),_:1})])])}const rnt=ie(nnt,[["render",snt],["__scopeId","data-v-1b250692"]]),si=e=>(ot("data-v-6e13c66c"),e=e(),it(),e),ont={key:0,id:"dashboard",class:"view"},int={class:"container mobile-menu"},unt={class:"box"},lnt=si(()=>d("i",{class:"fa fa-calendar","aria-hidden":"true"},null,-1)),cnt=[lnt],dnt=si(()=>d("i",{class:"fa fa-bar-chart","aria-hidden":"true"},null,-1)),Ent=[dnt],fnt=si(()=>d("i",{class:"fa fa-map-o","aria-hidden":"true"},null,-1)),pnt=[fnt],mnt=si(()=>d("i",{class:"fa fa-trophy","aria-hidden":"true"},null,-1)),_nt=[mnt],Tnt={key:0,class:"container privacy-policy-message"},hnt={class:"container"},Snt={class:"container dashboard-container"},Ant={class:"left-container dashboard-sub-container"},Ont={class:"right-container dashboard-sub-container"},gnt=si(()=>d("div",{id:"bottom"},null,-1)),Int={key:1,class:"app-loading"},Rnt=te({__name:"Dashboard",setup(e){const t=$e(),n=w(()=>t.getters[Q.GETTERS.AUTH_USER_PROFILE]),a=w(()=>t.getters[Pt.GETTERS.SPORTS]),s=de("calendar");ft(()=>t.dispatch(Q.ACTIONS.GET_USER_PROFILE));function r(o){s.value=o}return(o,i)=>{const u=oe("Loader");return n.value.username&&a.value.length>0?(h(),I("div",ont,[d("div",int,[d("div",unt,[d("div",{class:pe(["mobile-menu-item",{"is-selected":s.value==="calendar"}]),onClick:i[0]||(i[0]=l=>r("calendar"))},cnt,2),d("div",{class:pe(["mobile-menu-item",{"is-selected":s.value==="chart"}]),onClick:i[1]||(i[1]=l=>r("chart"))},Ent,2),d("div",{class:pe(["mobile-menu-item",{"is-selected":s.value==="timeline"}]),onClick:i[2]||(i[2]=l=>r("timeline"))},pnt,2),d("div",{class:pe(["mobile-menu-item",{"is-selected":s.value==="records"}]),onClick:i[3]||(i[3]=l=>r("records"))},_nt,2)])]),n.value.accepted_privacy_policy?M("",!0):(h(),I("div",Tnt,[W(rnt)])),d("div",hnt,[W(tnt,{user:n.value},null,8,["user"])]),d("div",Snt,[d("div",Ant,[W(ktt,{sports:a.value,user:n.value,class:pe({"is-hidden":s.value!=="chart"})},null,8,["sports","user","class"]),W(Jtt,{sports:a.value,user:n.value,class:pe({"is-hidden":s.value!=="records"})},null,8,["sports","user","class"])]),d("div",Ont,[W(qet,{sports:a.value,user:n.value,class:pe({"is-hidden":s.value!=="calendar"})},null,8,["sports","user","class"]),W(uet,{sports:a.value,user:n.value,class:pe({"is-hidden":s.value!=="timeline"})},null,8,["sports","user","class"])])]),gnt])):(h(),I("div",Int,[W(u)]))}}}),Nnt=ie(Rnt,[["__scopeId","data-v-6e13c66c"]]),vnt={class:"not-found view"},bnt=te({__name:"NotFoundView",setup(e){return(t,n)=>(h(),I("div",vnt,[W(Kf)]))}}),Cnt={id:"privacy-policy",class:"view"},Dnt={class:"container"},Pnt=d("div",{id:"bottom"},null,-1),Lnt=te({__name:"PrivacyPolicyView",setup(e){const t=$e();return ft(()=>{t.dispatch(j.ACTIONS.GET_APPLICATION_PRIVACY_POLICY)}),(n,a)=>(h(),I("div",Cnt,[d("div",Dnt,[W(xO)]),Pnt]))}}),rg=e=>(ot("data-v-3fa0b6ca"),e=e(),it(),e),ynt={class:"chart-menu"},$nt=["disabled","aria-label"],Unt=rg(()=>d("i",{class:"fa fa-chevron-left","aria-hidden":"true"},null,-1)),knt=[Unt],wnt={class:"time-frames custom-checkboxes-group"},Mnt={class:"time-frames-checkboxes custom-checkboxes"},Wnt=["id","name","checked","onInput","disabled"],Fnt=["id","tabindex","onKeydown"],znt=["disabled","aria-label"],xnt=rg(()=>d("i",{class:"fa fa-chevron-right","aria-hidden":"true"},null,-1)),Bnt=[xnt],Gnt={class:"stats-type"},Hnt={class:"stats-type-radio"},Vnt=["checked","disabled"],Knt=["checked","disabled"],jnt=te({__name:"StatsMenu",props:{isDisabled:{type:Boolean}},emits:["arrowClick","statsTypeUpdate","timeFrameUpdate"],setup(e,{emit:t}){const n=e,{isDisabled:a}=_e(n),s=t,r=de("month"),o=["week","month","year"],i=de("total");function u(c){r.value=c,s("timeFrameUpdate",c)}function l(c){i.value=c.target.value,s("statsTypeUpdate",i.value)}return(c,f)=>(h(),I(me,null,[d("div",ynt,[d("button",{class:"chart-arrow transparent",onClick:f[0]||(f[0]=E=>s("arrowClick",!0)),onKeydown:f[1]||(f[1]=Je(E=>s("arrowClick",!0),["enter"])),disabled:m(a),"aria-label":c.$t("common.PREVIOUS")},knt,40,$nt),d("div",wnt,[d("div",Mnt,[(h(),I(me,null,Pe(o,E=>d("div",{class:"time-frame custom-checkbox",key:E},[d("label",null,[d("input",{type:"radio",id:E,name:E,checked:r.value===E,onInput:p=>u(E),disabled:m(a)},null,40,Wnt),d("span",{id:`frame-${E}`,tabindex:m(a)?-1:0,role:"button",onKeydown:Je(p=>u(E),["enter"])},_(c.$t(`statistics.TIME_FRAMES.${E}`)),41,Fnt)])])),64))])]),d("button",{class:"chart-arrow transparent",onClick:f[2]||(f[2]=E=>s("arrowClick",!1)),onKeydown:f[3]||(f[3]=Je(E=>s("arrowClick",!1),["enter"])),disabled:m(a),"aria-label":c.$t("common.NEXT")},Bnt,40,znt)]),d("div",Gnt,[d("div",Hnt,[d("label",null,[d("input",{type:"radio",name:"stats_type",value:"total",checked:i.value==="total",disabled:m(a),onClick:l},null,8,Vnt),V(" "+_(c.$t("common.TOTAL")),1)]),d("label",null,[d("input",{type:"radio",name:"stats_type",value:"average",checked:i.value==="average",disabled:m(a),onClick:l},null,8,Knt),V(" "+_(c.$t("statistics.AVERAGE")),1)])])])],64))}}),qnt=ie(jnt,[["__scopeId","data-v-3fa0b6ca"]]),Ynt={class:"sports-menu"},Xnt=["id","name","checked","onInput","onKeyup"],Qnt={class:"sport-label"},Znt=te({__name:"StatsSportsMenu",props:{userSports:{},selectedSportIds:{default:()=>[]}},emits:["selectedSportIdsUpdate"],setup(e,{emit:t}){const n=e,a=t,{t:s}=yt(),r=Nt("sportColors"),{selectedSportIds:o}=_e(n),i=w(()=>Fn(n.userSports,s));function u(l){a("selectedSportIdsUpdate",l)}return(l,c)=>{const f=oe("SportImage");return h(),I("div",Ynt,[(h(!0),I(me,null,Pe(i.value,E=>(h(),I("label",{type:"checkbox",key:E.id,style:ba({color:E.color?E.color:m(r)[E.label]})},[d("input",{type:"checkbox",id:`${E.id}`,name:E.label,checked:m(o).includes(E.id),onInput:p=>u(E.id),onKeyup:Je(be(p=>u(E.id),["prevent"]),["space"])},null,40,Xnt),W(f,{"sport-label":E.label,color:E.color},null,8,["sport-label","color"]),d("span",Qnt,_(E.translatedLabel),1)],4))),128))])}}}),Jnt={key:0,id:"user-statistics"},eat=te({__name:"index",props:{sports:{},user:{},isDisabled:{type:Boolean}},setup(e){const t=e,{t:n}=yt(),{sports:a,user:s}=_e(t),r=de("month"),o=de("total"),i=de(E(r.value,o.value)),u=w(()=>Fn(t.sports,n)),l=de(T(a.value));function c(R){r.value=R,i.value=E(R,o.value)}function f(R){o.value=R,i.value=E(r.value,R)}function E(R,g){return dtt(new Date,R,t.user.weekm,g)}function p(R){i.value=Ett(i.value,R,t.user.weekm)}function T(R){return R.map(g=>g.id)}function O(R){l.value.includes(R)?l.value=l.value.filter(g=>g!==R):l.value.push(R)}return We(()=>t.sports,R=>{l.value=T(R)}),(R,g)=>u.value?(h(),I("div",Jnt,[W(qnt,{onStatsTypeUpdate:f,onTimeFrameUpdate:c,onArrowClick:p,isDisabled:R.isDisabled},null,8,["isDisabled"]),W(tg,{sports:m(a),user:m(s),chartParams:i.value,"displayed-sport-ids":l.value,fullStats:!0,isDisabled:R.isDisabled,selectedTimeFrame:r.value},null,8,["sports","user","chartParams","displayed-sport-ids","isDisabled","selectedTimeFrame"]),W(Znt,{"selected-sport-ids":l.value,"user-sports":m(a),onSelectedSportIdsUpdate:O},null,8,["selected-sport-ids","user-sports"])])):M("",!0)}}),tat=ie(eat,[["__scopeId","data-v-ff5da6bd"]]),nat={class:"sport-stat-card"},aat={class:"stat-content"},sat={class:"stat-icon"},rat={class:"stat-details"},oat={class:"stat-label"},iat={class:"stat-values"},uat={key:0,class:"fa fa-refresh fa-spin fa-fw"},lat={key:1,class:"stat-huge"},cat={key:2,class:"stat"},dat={key:0,class:"stat-average"},Eat={key:0},fat=d("i",{class:"fa fa-refresh fa-spin fa-fw"},null,-1),pat=[fat],Ys=te({__name:"SportStatCard",props:{icon:{},text:{default:""},totalValue:{},label:{},loading:{type:Boolean}},setup(e){const t=e,{icon:n,loading:a,text:s,totalValue:r}=_e(t);return(o,i)=>(h(),I("div",nat,[d("div",aat,[d("div",sat,[d("i",{class:pe(["fa",`fa-${m(n)}`])},null,2)]),d("div",rat,[d("div",oat,_(o.label),1),d("div",iat,[m(a)?(h(),I("i",uat)):(h(),I("span",lat,_(m(r)?m(r):""),1)),m(s)?(h(),I("span",cat,_(m(s)),1)):M("",!0)]),["calendar","tachometer"].includes(m(n))?M("",!0):(h(),I("div",dat,[m(a)?(h(),I("div",Eat,pat)):$t(o.$slots,"average",{key:1})]))])])]))}}),og=e=>(ot("data-v-2e2b2caa"),e=e(),it(),e),mat={id:"sport-statistics"},_at={for:"sport"},Tat=["value"],hat={key:0,class:"sport-statistics"},Sat={class:"sport-img-label"},Aat={class:"sport-label"},Oat={class:"label"},gat=og(()=>d("i",{class:"fa fa-line-chart custom-fa-small","aria-hidden":"true"},null,-1)),Iat={class:"statistics"},Rat={key:0,class:"statistics-workouts-count"},Nat={key:1,class:"statistics-workouts-count"},vat={class:"statistics"},bat={class:"records"},Cat={class:"label"},Dat=og(()=>d("i",{class:"fa fa-trophy custom-fa-small","aria-hidden":"true"},null,-1)),Pat=te({__name:"SportStatistics",props:{sports:{},authUser:{}},setup(e){const t=e,n=Lt(),a=ca(),s=$e(),{t:r}=yt(),{authUser:o,sports:i}=_e(t),u=w(()=>Fn(i.value,r,"all")),l=u.value.map(P=>P.id),c=de(l[0]),f=w(()=>sg(o.value.records,u.value,o.value.timezone,o.value.imperial_units,o.value.display_ascent,o.value.date_format,c.value)),E=w(()=>u.value.find(P=>P.id===c.value)),p=w(()=>s.getters.USER_SPORT_STATS[c.value]),T=w(()=>s.getters.TOTAL_WORKOUTS),O=o.value.imperial_units?_n.km.defaultTarget:"km",R=o.value.imperial_units?_n.m.defaultTarget:"m",g=w(()=>s.getters.STATS_LOADING),N=w(()=>p.value?Hf(p.value.total_duration,r):{days:"",duration:""});ft(()=>A());function S(P,C){if(P===void 0)return"";const y=o.value.imperial_units?_n[C].defaultTarget:C;return o.value.imperial_units?Bt(P,C,y,2):P}function A(){c.value=n.query.sport_id&&l.includes(+n.query.sport_id)?+n.query.sport_id:l[0],s.dispatch(Ut.ACTIONS.GET_USER_SPORT_STATS,{username:o.value.username,sportId:c.value})}function v(P){var y,z;const C=[];return(y=E.value)!=null&&y.translatedLabel&&P[(z=E.value)==null?void 0:z.translatedLabel].records.map($=>{C.push({...$,label:r(`workouts.RECORD_${$.record_type}`)})}),C.sort(ag)}function D(P){a.push({path:"/statistics",query:{chart:"by_sport",sport_id:P.target.value}})}return We(()=>n.query,()=>{A()}),(P,C)=>{var $,F,X,re,G,Z;const y=oe("SportImage"),z=oe("Distance");return h(),I("div",mat,[d("label",_at,_(P.$t("workouts.SPORT",1))+": ",1),Le(d("select",{id:"sport","onUpdate:modelValue":C[0]||(C[0]=q=>c.value=q),onChange:D},[(h(!0),I(me,null,Pe(u.value,q=>(h(),I("option",{value:q.id,key:q.id},_(q.translatedLabel),9,Tat))),128))],544),[[ia,c.value]]),E.value?(h(),I("div",hat,[d("div",Sat,[W(y,{"sport-label":E.value.label,color:E.value.color},null,8,["sport-label","color"]),d("div",Aat,_(E.value.translatedLabel),1)]),d("div",null,[d("div",Oat,[gat,V(" "+_(P.$t("statistics.STATISTICS",0)),1)]),d("div",Iat,[W(Ys,{icon:"calendar",loading:g.value,"total-value":T.value,label:P.$t("workouts.WORKOUT",0)},null,8,["loading","total-value","label"])]),p.value&&p.value.total_workouts[d("div",null,_(P.$t("statistics.AVERAGE"))+":",1),p.value?(h(),Y(z,{key:0,distance:p.value.average_distance,unitFrom:"km",useImperialUnits:m(o).imperial_units},null,8,["distance","useImperialUnits"])):M("",!0)]),_:1},8,["loading","total-value","text","label"]),W(Ys,{icon:"clock-o",loading:g.value,"total-value":N.value.days,text:N.value.duration,label:P.$t("workouts.DURATION")},{average:le(()=>[d("div",null,_(P.$t("statistics.AVERAGE"))+":",1),d("span",null,_(p.value?m(fE)(p.value.average_duration,P.$t):""),1)]),_:1},8,["loading","total-value","text","label"]),W(Ys,{icon:"tachometer",loading:g.value,"total-value":S((F=p.value)==null?void 0:F.average_speed,"km"),text:`${m(O)}/h`,label:P.$t("workouts.AVE_SPEED")},null,8,["loading","total-value","text","label"]),((X=p.value)==null?void 0:X.total_ascent)!==null?(h(),Y(Ys,{key:0,icon:"location-arrow",loading:g.value,"total-value":S((re=p.value)==null?void 0:re.total_ascent,"m"),text:m(R),label:P.$t("workouts.ASCENT")},{average:le(()=>[d("div",null,_(P.$t("statistics.AVERAGE"))+":",1),p.value?(h(),Y(z,{key:0,distance:p.value.average_ascent,unitFrom:"m",useImperialUnits:m(o).imperial_units},null,8,["distance","useImperialUnits"])):M("",!0)]),_:1},8,["loading","total-value","text","label"])):M("",!0),((G=p.value)==null?void 0:G.total_descent)!==null?(h(),Y(Ys,{key:1,icon:"location-arrow fa-rotate-90",loading:g.value,"total-value":S((Z=p.value)==null?void 0:Z.total_descent,"m"),text:m(R),label:P.$t("workouts.DESCENT")},{average:le(()=>[d("div",null,_(P.$t("statistics.AVERAGE"))+":",1),p.value?(h(),Y(z,{key:0,distance:p.value.average_descent,unitFrom:"m",useImperialUnits:m(o).imperial_units},null,8,["distance","useImperialUnits"])):M("",!0)]),_:1},8,["loading","total-value","text","label"])):M("",!0)])]),d("div",bat,[d("div",Cat,[Dat,V(" "+_(P.$t("workouts.RECORD",0)),1)]),d("div",null,[(h(!0),I(me,null,Pe(v(f.value),q=>(h(),Y(ng,{record:q,key:q.id},null,8,["record"]))),128))])])])):M("",!0)])}}}),Lat=ie(Pat,[["__scopeId","data-v-2e2b2caa"]]),yat={id:"statistics",class:"view"},$at={key:0,class:"container"},Uat=["value"],kat=te({__name:"StatisticsView",setup(e){const t=Lt(),n=ca(),a=$e(),s=w(()=>a.getters[Q.GETTERS.AUTH_USER_PROFILE]),r=w(()=>a.getters[Pt.GETTERS.SPORTS].filter(c=>s.value.sports_list.includes(c.id))),o=w(()=>s.value.nb_workouts===0),i=["by_time","by_sport"],u=de("by_time");ft(()=>{u.value=t.query.chart&&i.includes(t.query.chart)?t.query.chart:"by_time"}),St(()=>{if(!o.value){const c=document.getElementById("stats-type");c==null||c.focus()}});function l(c){n.push({path:"/statistics",query:{chart:c.target.value}})}return(c,f)=>{const E=oe("Card");return h(),I("div",yat,[s.value.username?(h(),I("div",$at,[W(E,null,{title:le(()=>[V(_(c.$t("statistics.STATISTICS"))+" ",1),r.value.length>0?Le((h(),I("select",{key:0,class:"stats-types",name:"stats-type",id:"stats-type","onUpdate:modelValue":f[0]||(f[0]=p=>u.value=p),onChange:l},[(h(),I(me,null,Pe(i,p=>d("option",{value:p,key:p},_(c.$t(`statistics.STATISTICS_TYPES.${p}`)),9,Uat)),64))],544)),[[ia,u.value]]):M("",!0)]),content:le(()=>[c.$route.query.chart!=="by_sport"?(h(),Y(tat,{key:0,class:pe({"stats-disabled":o.value}),user:s.value,sports:r.value,isDisabled:o.value},null,8,["class","user","sports","isDisabled"])):r.value.length>0?(h(),Y(Lat,{key:1,sports:r.value,authUser:s.value},null,8,["sports","authUser"])):M("",!0)]),_:1}),s.value.nb_workouts===0?(h(),Y(qf,{key:0})):M("",!0)])):M("",!0)])}}}),wat=ie(kat,[["__scopeId","data-v-b57d20e5"]]),Mat={name:"EmailSent"},Wat={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 345.834 345.834",style:{"enable-background":"new 0 0 345.834 345.834"},"xml:space":"preserve"},Fat=d("g",null,[d("path",{d:`M339.798,260.429c0.13-0.026,0.257-0.061,0.385-0.094c0.109-0.028,0.219-0.051,0.326-0.084 - c0.125-0.038,0.247-0.085,0.369-0.129c0.108-0.039,0.217-0.074,0.324-0.119c0.115-0.048,0.226-0.104,0.338-0.157 - c0.109-0.052,0.22-0.1,0.327-0.158c0.107-0.057,0.208-0.122,0.312-0.184c0.107-0.064,0.215-0.124,0.319-0.194 - c0.111-0.074,0.214-0.156,0.321-0.236c0.09-0.067,0.182-0.13,0.27-0.202c0.162-0.133,0.316-0.275,0.466-0.421 - c0.027-0.026,0.056-0.048,0.083-0.075c0.028-0.028,0.052-0.059,0.079-0.088c0.144-0.148,0.284-0.3,0.416-0.46 - c0.077-0.094,0.144-0.192,0.216-0.289c0.074-0.1,0.152-0.197,0.221-0.301c0.074-0.111,0.139-0.226,0.207-0.34 - c0.057-0.096,0.118-0.19,0.171-0.289c0.062-0.115,0.114-0.234,0.169-0.351c0.049-0.104,0.101-0.207,0.146-0.314 - c0.048-0.115,0.086-0.232,0.128-0.349c0.041-0.114,0.085-0.227,0.12-0.343c0.036-0.118,0.062-0.238,0.092-0.358 - c0.029-0.118,0.063-0.234,0.086-0.353c0.028-0.141,0.045-0.283,0.065-0.425c0.014-0.1,0.033-0.199,0.043-0.3 - c0.025-0.249,0.038-0.498,0.038-0.748V92.76c0-4.143-3.357-7.5-7.5-7.5h-236.25c-0.066,0-0.13,0.008-0.196,0.01 - c-0.143,0.004-0.285,0.01-0.427,0.022c-0.113,0.009-0.225,0.022-0.337,0.037c-0.128,0.016-0.255,0.035-0.382,0.058 - c-0.119,0.021-0.237,0.046-0.354,0.073c-0.119,0.028-0.238,0.058-0.356,0.092c-0.117,0.033-0.232,0.069-0.346,0.107 - c-0.117,0.04-0.234,0.082-0.349,0.128c-0.109,0.043-0.216,0.087-0.322,0.135c-0.118,0.053-0.235,0.11-0.351,0.169 - c-0.099,0.051-0.196,0.103-0.292,0.158c-0.116,0.066-0.23,0.136-0.343,0.208c-0.093,0.06-0.184,0.122-0.274,0.185 - c-0.106,0.075-0.211,0.153-0.314,0.235c-0.094,0.075-0.186,0.152-0.277,0.231c-0.09,0.079-0.179,0.158-0.266,0.242 - c-0.099,0.095-0.194,0.194-0.288,0.294c-0.047,0.05-0.097,0.094-0.142,0.145c-0.027,0.03-0.048,0.063-0.074,0.093 - c-0.094,0.109-0.182,0.223-0.27,0.338c-0.064,0.084-0.13,0.168-0.19,0.254c-0.078,0.112-0.15,0.227-0.222,0.343 - c-0.059,0.095-0.12,0.189-0.174,0.286c-0.063,0.112-0.118,0.227-0.175,0.342c-0.052,0.105-0.106,0.21-0.153,0.317 - c-0.049,0.113-0.092,0.23-0.135,0.345c-0.043,0.113-0.087,0.225-0.124,0.339c-0.037,0.115-0.067,0.232-0.099,0.349 - c-0.032,0.12-0.066,0.239-0.093,0.36c-0.025,0.113-0.042,0.228-0.062,0.342c-0.022,0.13-0.044,0.26-0.06,0.39 - c-0.013,0.108-0.019,0.218-0.027,0.328c-0.01,0.14-0.019,0.28-0.021,0.421c-0.001,0.041-0.006,0.081-0.006,0.122v46.252 - c0,4.143,3.357,7.5,7.5,7.5s7.5-3.357,7.5-7.5v-29.595l66.681,59.037c-0.348,0.245-0.683,0.516-0.995,0.827l-65.687,65.687v-49.288 - c0-4.143-3.357-7.5-7.5-7.5s-7.5,3.357-7.5,7.5v9.164h-38.75c-4.143,0-7.5,3.357-7.5,7.5s3.357,7.5,7.5,7.5h38.75v43.231 - c0,4.143,3.357,7.5,7.5,7.5h236.25c0.247,0,0.494-0.013,0.74-0.037c0.115-0.011,0.226-0.033,0.339-0.049 - C339.542,260.469,339.67,260.454,339.798,260.429z M330.834,234.967l-65.688-65.687c-0.042-0.042-0.087-0.077-0.13-0.117 - l49.383-41.897c3.158-2.68,3.546-7.412,0.866-10.571c-2.678-3.157-7.41-3.547-10.571-0.866l-84.381,71.59l-98.444-87.158h208.965 - V234.967z M185.878,179.888c0.535-0.535,0.969-1.131,1.308-1.765l28.051,24.835c1.418,1.255,3.194,1.885,4.972,1.885 - c1.726,0,3.451-0.593,4.853-1.781l28.587-24.254c0.26,0.38,0.553,0.743,0.89,1.08l65.687,65.687H120.191L185.878,179.888z`}),d("path",{d:`M7.5,170.676h126.667c4.143,0,7.5-3.357,7.5-7.5s-3.357-7.5-7.5-7.5H7.5c-4.143,0-7.5,3.357-7.5,7.5 - S3.357,170.676,7.5,170.676z`}),d("path",{d:`M20.625,129.345H77.5c4.143,0,7.5-3.357,7.5-7.5s-3.357-7.5-7.5-7.5H20.625c-4.143,0-7.5,3.357-7.5,7.5 - S16.482,129.345,20.625,129.345z`}),d("path",{d:"M62.5,226.51h-55c-4.143,0-7.5,3.357-7.5,7.5s3.357,7.5,7.5,7.5h55c4.143,0,7.5-3.357,7.5-7.5S66.643,226.51,62.5,226.51z"})],-1),zat=[Fat];function xat(e,t,n,a,s,r){return h(),I("svg",Wat,zat)}const ig=ie(Mat,[["render",xat]]),ug=e=>(ot("data-v-1d52bb01"),e=e(),it(),e),Bat={id:"user-form"},Gat={key:2,class:"info-box success-message"},Hat={class:"form-items"},Vat={key:0,for:"username"},Kat=["disabled"],jat={key:2,class:"form-info"},qat=ug(()=>d("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1)),Yat={key:3,for:"email"},Xat=["disabled"],Qat={key:5,class:"form-info"},Zat=ug(()=>d("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1)),Jat={key:6,for:"password"},est={key:8,for:"accepted_policy",class:"accepted_policy"},tst=["disabled"],nst=["disabled"],ast={key:3},sst={key:0},rst={key:4},ost={class:"account"},ist={key:5},ust=te({__name:"UserAuthForm",props:{action:{},token:{default:""}},setup(e){const t=e,n=Lt(),a=$e(),{action:s}=_e(t),r=Kt({username:"",email:"",password:"",accepted_policy:!1}),o=w(()=>O(t.action)),i=w(()=>a.getters[j.GETTERS.ERROR_MESSAGES]),u=w(()=>a.getters[Q.GETTERS.IS_REGISTRATION_SUCCESS]),l=w(()=>a.getters[Q.GETTERS.IS_SUCCESS]),c=w(()=>a.getters[j.GETTERS.APP_CONFIG]),f=w(()=>a.getters[j.GETTERS.LANGUAGE]),E=w(()=>t.action==="register"&&!c.value.is_registration_enabled),p=w(()=>["reset-request","account-confirmation-resend"].includes(t.action)&&!c.value.is_email_sending_enabled),T=de(!1);function O(A){switch(A){case"reset-request":case"reset":return"buttons.SUBMIT";default:return`buttons.${t.action.toUpperCase()}`}}function R(){T.value=!0}function g(A){r.password=A}function N(A){switch(A){case"reset":return t.token?a.dispatch(Q.ACTIONS.RESET_USER_PASSWORD,{password:r.password,token:t.token}):a.commit(j.MUTATIONS.SET_ERROR_MESSAGES,"user.INVALID_TOKEN");case"reset-request":return a.dispatch(Q.ACTIONS.SEND_PASSWORD_RESET_REQUEST,{email:r.email});case"account-confirmation-resend":return a.dispatch(Q.ACTIONS.RESEND_ACCOUNT_CONFIRMATION_EMAIL,{email:r.email});default:r.language=f.value,a.dispatch(Q.ACTIONS.LOGIN_OR_REGISTER,{actionType:A,formData:r,redirectUrl:n.query.from})}}function S(){r.username="",r.email="",r.password="",r.accepted_policy=!1}return pt(()=>a.commit(j.MUTATIONS.EMPTY_ERROR_MESSAGES)),We(()=>n.path,async()=>{a.commit(j.MUTATIONS.EMPTY_ERROR_MESSAGES),a.commit(Q.MUTATIONS.UPDATE_IS_SUCCESS,!1),a.commit(Q.MUTATIONS.UPDATE_IS_REGISTRATION_SUCCESS,!1),T.value=!1,S()}),(A,v)=>{const D=oe("AlertMessage"),P=oe("router-link"),C=oe("i18n-t"),y=oe("ErrorMessage");return h(),I("div",{id:"user-auth-form",class:pe(`${["reset","reset-request"].includes(m(s))?m(s):"user-form"}`)},[d("div",Bat,[d("div",{class:pe(["form-box",{disabled:E.value}])},[E.value?(h(),Y(D,{key:0,message:"user.REGISTER_DISABLED"})):M("",!0),p.value?(h(),Y(D,{key:1,message:"admin.EMAIL_SENDING_DISABLED"})):M("",!0),l.value||u.value?(h(),I("div",Gat,_(A.$t(`user.PROFILE.SUCCESSFUL_${u.value?`REGISTRATION${c.value.is_email_sending_enabled?"_WITH_EMAIL":""}`:"UPDATE"}`)),1)):M("",!0),d("form",{class:pe({errors:T.value}),onSubmit:v[3]||(v[3]=be(z=>N(m(s)),["prevent"]))},[d("div",Hat,[m(s)==="register"?(h(),I("label",Vat,_(A.$t("user.USERNAME",0)),1)):M("",!0),m(s)==="register"?Le((h(),I("input",{key:1,id:"username",disabled:E.value,required:"",pattern:"[a-zA-Z0-9_]+",minlength:"3",maxlength:"30",onInvalid:R,"onUpdate:modelValue":v[0]||(v[0]=z=>r.username=z),autocomplete:"username"},null,40,Kat)),[[at,r.username]]):M("",!0),m(s)==="register"?(h(),I("div",jat,[qat,V(" "+_(A.$t("user.USERNAME_INFO")),1)])):M("",!0),m(s)!=="reset"?(h(),I("label",Yat,_(A.$t("user.EMAIL",0)),1)):M("",!0),m(s)!=="reset"?Le((h(),I("input",{key:4,id:"email",disabled:E.value||p.value,required:"",onInvalid:R,type:"email","onUpdate:modelValue":v[1]||(v[1]=z=>r.email=z),autocomplete:"email"},null,40,Xat)),[[at,r.email]]):M("",!0),["reset-request","register","account-confirmation-resend"].includes(m(s))?(h(),I("div",Qat,[Zat,V(" "+_(A.$t("user.EMAIL_INFO")),1)])):M("",!0),["account-confirmation-resend","reset-request"].includes(m(s))?M("",!0):(h(),I("label",Jat,_(A.$t(`user.${m(s)==="reset"?"ENTER_PASSWORD":"PASSWORD"}`)),1)),["account-confirmation-resend","reset-request"].includes(m(s))?M("",!0):(h(),Y(EE,{key:7,id:"password",disabled:E.value,required:!0,password:r.password,checkStrength:["reset","register"].includes(m(s)),onUpdatePassword:g,onPasswordError:R,autocomplete:"current-password"},null,8,["disabled","password","checkStrength"])),m(s)==="register"?(h(),I("label",est,[Le(d("input",{type:"checkbox",id:"accepted_policy",disabled:E.value,required:"",onInvalid:R,"onUpdate:modelValue":v[2]||(v[2]=z=>r.accepted_policy=z)},null,40,tst),[[gl,r.accepted_policy]]),d("span",null,[W(C,{keypath:"user.READ_AND_ACCEPT_PRIVACY_POLICY"},{default:le(()=>[W(P,{to:"/privacy-policy",target:"_blank"},{default:le(()=>[V(_(A.$t("privacy_policy.TITLE")),1)]),_:1})]),_:1})])])):M("",!0)]),d("button",{type:"submit",disabled:E.value||p.value},_(A.$t(o.value)),9,nst)],34),m(s)==="login"?(h(),I("div",ast,[W(P,{class:"links",to:"/register"},{default:le(()=>[V(_(A.$t("user.REGISTER")),1)]),_:1}),c.value.is_email_sending_enabled?(h(),I("span",sst,"-")):M("",!0),c.value.is_email_sending_enabled?(h(),Y(P,{key:1,class:"links",to:"/password-reset/request"},{default:le(()=>[V(_(A.$t("user.PASSWORD_FORGOTTEN")),1)]),_:1})):M("",!0)])):M("",!0),m(s)==="register"?(h(),I("div",rst,[d("span",ost,_(A.$t("user.ALREADY_HAVE_ACCOUNT")),1),W(P,{class:"links",to:"/login"},{default:le(()=>[V(_(A.$t("user.LOGIN")),1)]),_:1})])):M("",!0),["login","register"].includes(m(s))&&c.value.is_email_sending_enabled?(h(),I("div",ist,[W(P,{class:"links",to:"/account-confirmation/resend"},{default:le(()=>[V(_(A.$t("user.ACCOUNT_CONFIRMATION_NOT_RECEIVED")),1)]),_:1})])):M("",!0),i.value?(h(),Y(y,{key:6,message:i.value},null,8,["message"])):M("",!0)],2)])],2)}}}),Yf=ie(ust,[["__scopeId","data-v-1d52bb01"]]),lst={id:"account-confirmation-email",class:"center-card with-margin"},cst={key:0,class:"email-sent"},dst={class:"email-sent-message"},Est={key:1},fst=te({__name:"AccountConfirmationEmail",props:{action:{}},setup(e){const t=e,{action:n}=_e(t);return(a,s)=>{const r=oe("Card");return h(),I("div",lst,[m(n)==="email-sent"?(h(),I("div",cst,[W(ig),d("div",dst,_(a.$t("user.ACCOUNT_CONFIRMATION_SENT")),1)])):(h(),I("div",Est,[W(r,null,{title:le(()=>[V(_(a.$t("user.RESENT_ACCOUNT_CONFIRMATION")),1)]),content:le(()=>[W(Yf,{action:m(n)},null,8,["action"])]),_:1})]))])}}}),pst=ie(fst,[["__scopeId","data-v-b0299010"]]),mst={id:"account-confirmation",class:"view"},_st={class:"container"},Tst=te({__name:"AccountConfirmationResendView",props:{action:{}},setup(e){const t=e,{action:n}=_e(t);return(a,s)=>(h(),I("div",mst,[d("div",_st,[W(pst,{action:m(n)},null,8,["action"])])]))}}),a0=ie(Tst,[["__scopeId","data-v-9a9c1644"]]),hst={key:0,id:"account-confirmation",class:"center-card with-margin"},Sst={class:"error-message"},Ast=te({__name:"AccountConfirmationView",setup(e){const t=Lt(),n=ca(),a=$e(),s=w(()=>a.getters[j.GETTERS.ERROR_MESSAGES]),r=w(()=>t.query.token);ft(()=>o());function o(){r.value?a.dispatch(Q.ACTIONS.CONFIRM_ACCOUNT,{token:r.value}):n.push("/")}return pt(()=>a.commit(j.MUTATIONS.EMPTY_ERROR_MESSAGES)),(i,u)=>{const l=oe("router-link");return s.value?(h(),I("div",hst,[W(JE),d("p",Sst,[d("span",null,_(i.$t("error.SOMETHING_WRONG"))+".",1),W(l,{class:"links",to:"/account-confirmation/resend"},{default:le(()=>[V(_(i.$t("buttons.ACCOUNT-CONFIRMATION-RESEND"))+"? ",1)]),_:1})])])):M("",!0)}}}),Ost=ie(Ast,[["__scopeId","data-v-1b343aed"]]),gst={key:0,id:"email-update",class:"center-card with-margin"},Ist={class:"error-message"},Rst=te({__name:"EmailUpdateView",setup(e){const t=Lt(),n=ca(),a=$e(),s=w(()=>a.getters[Q.GETTERS.AUTH_USER_PROFILE]),r=w(()=>a.getters[Q.GETTERS.IS_AUTHENTICATED]),o=w(()=>a.getters[j.GETTERS.ERROR_MESSAGES]),i=w(()=>t.query.token);ft(()=>u());function u(){i.value?a.dispatch(Q.ACTIONS.CONFIRM_EMAIL,{token:i.value,refreshUser:r.value}):n.push("/")}return pt(()=>a.commit(j.MUTATIONS.EMPTY_ERROR_MESSAGES)),We(()=>o.value,l=>{s.value.username&&l&&n.push("/")}),(l,c)=>{const f=oe("router-link"),E=oe("i18n-t");return o.value&&!s.value.username?(h(),I("div",gst,[W(JE),d("p",Ist,[d("span",null,_(l.$t("error.SOMETHING_WRONG"))+".",1),d("span",null,[W(E,{keypath:"user.PROFILE.ERRORED_EMAIL_UPDATE"},{default:le(()=>[W(f,{to:"/login"},{default:le(()=>[V(_(l.$t("user.LOG_IN")),1)]),_:1})]),_:1})])])])):M("",!0)}}}),Nst=ie(Rst,[["__scopeId","data-v-8b516209"]]),vst={id:"loginOrRegister",class:"view"},bst={class:"container"},Cst={class:"container-sub"},Dst={class:"container-sub"},Pst=te({__name:"LoginOrRegister",props:{action:{}},setup(e){const t=e,{action:n}=_e(t);return(a,s)=>(h(),I("div",vst,[d("div",bst,[d("div",Cst,[W(KO)]),d("div",Dst,[W(Yf,{action:m(n)},null,8,["action"])])])]))}}),s0=ie(Pst,[["__scopeId","data-v-84d61340"]]),Lst={name:"Password"},yst={version:"1.1",id:"Layer_1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",x:"0px",y:"0px",viewBox:"0 0 512.001 512.001",style:{"enable-background":"new 0 0 512.001 512.001"},"xml:space":"preserve"},$st=An(``,7),Ust=[$st];function kst(e,t,n,a,s,r){return h(),I("svg",yst,Ust)}const wst=ie(Lst,[["render",kst]]),Mst={id:"password-action-done",class:"center-card with-margin"},Wst={class:"password-message"},Fst={key:0},zst=te({__name:"PasswordActionDone",props:{action:{}},setup(e){const t=e,{action:n}=_e(t);return(a,s)=>{const r=oe("router-link"),o=oe("i18n-t");return h(),I("div",Mst,[m(n)==="request-sent"?(h(),Y(ig,{key:0})):(h(),Y(wst,{key:1})),d("div",Wst,[m(n)==="request-sent"?(h(),I("span",Fst,_(a.$t("user.PASSWORD_SENT_EMAIL_TEXT")),1)):(h(),Y(o,{key:1,keypath:"user.PASSWORD_UPDATED"},{default:le(()=>[W(r,{to:"/login"},{default:le(()=>[V(_(a.$t("common.HERE")),1)]),_:1})]),_:1}))])])}}}),xst=ie(zst,[["__scopeId","data-v-ee1004fc"]]),Bst={id:"password-reset-request",class:"center-card with-margin"},Gst=te({__name:"PasswordResetForm",props:{action:{},token:{default:""}},setup(e){const t=e,{action:n,token:a}=_e(t);return(s,r)=>{const o=oe("Card");return h(),I("div",Bst,[W(o,null,{title:le(()=>[V(_(s.$t("user.RESET_PASSWORD")),1)]),content:le(()=>[W(Yf,{action:m(n),token:m(a)},null,8,["action","token"])]),_:1})])}}}),Hst=ie(Gst,[["__scopeId","data-v-97f01ba1"]]),Vst={id:"password-reset",class:"view"},Kst={class:"container"},jst=te({__name:"PasswordResetView",props:{action:{}},setup(e){const t=e,n=Lt(),a=ca(),{action:s}=_e(t),r=w(()=>n.query.token);return ft(()=>{t.action==="reset"&&!r.value&&a.push("/")}),(o,i)=>(h(),I("div",Vst,[d("div",Kst,[m(s).startsWith("reset")?(h(),Y(Hst,{key:0,action:m(s),token:r.value},null,8,["action","token"])):(h(),Y(xst,{key:1,action:m(s)},null,8,["action"]))])]))}}),wi=ie(jst,[["__scopeId","data-v-5cbe9029"]]),qst=e=>(ot("data-v-af92ad3a"),e=e(),it(),e),Yst={key:0,id:"profile",class:"view"},Xst=qst(()=>d("div",{id:"bottom"},null,-1)),Qst=te({__name:"ProfileView",setup(e){const t=$e(),n=w(()=>t.getters[Q.GETTERS.AUTH_USER_PROFILE]);return(a,s)=>{const r=oe("router-view");return n.value.username?(h(),I("div",Yst,[W(r,{user:n.value},null,8,["user"]),Xst])):M("",!0)}}}),Zst=ie(Qst,[["__scopeId","data-v-af92ad3a"]]),Jst={key:0,id:"user",class:"view"},ert={class:"box"},trt=te({__name:"UserView",props:{fromAdmin:{type:Boolean}},setup(e){const t=e,{fromAdmin:n}=_e(t),a=Lt(),s=$e(),r=w(()=>s.getters[Be.GETTERS.USER]);return ft(()=>{a.params.username&&typeof a.params.username=="string"&&s.dispatch(Be.ACTIONS.GET_USER,a.params.username)}),zo(()=>{s.dispatch(Be.ACTIONS.EMPTY_USER)}),(o,i)=>r.value.username?(h(),I("div",Jst,[W(RO,{user:r.value},null,8,["user"]),d("div",ert,[W(vO,{user:r.value,"from-admin":m(n)},null,8,["user","from-admin"])])])):M("",!0)}}),r0=ie(trt,[["__scopeId","data-v-1b7a0b4f"]]),nrt={id:"workout-form"},art={class:"form-items"},srt={key:0,class:"form-item-radio"},rrt=["checked","disabled"],ort={for:"withGpx"},irt=["checked","disabled"],urt={for:"withoutGpx"},lrt={class:"form-item"},crt={for:"sport"},drt=["disabled"],Ert=["value"],frt={key:1,class:"form-item"},prt={for:"gpxFile"},mrt=["disabled"],_rt={class:"files-help info-box"},Trt={key:2,class:"form-item"},hrt={for:"title"},Srt=["required","disabled"],Art={key:3},Ort={class:"workout-date-duration"},grt={class:"form-item"},Irt={class:"workout-date-time"},Rrt=["disabled"],Nrt=["disabled"],vrt={class:"form-item"},brt={for:"workout-duration-hour",class:"visually-hidden"},Crt=["disabled"],Drt={for:"workout-duration-minutes",class:"visually-hidden"},Prt=["disabled"],Lrt={for:"workout-duration-seconds",class:"visually-hidden"},yrt=["disabled"],$rt={class:"workout-data"},Urt={class:"form-item"},krt=["disabled"],wrt={class:"form-item"},Mrt=["disabled"],Wrt={class:"form-item"},Frt=["disabled"],zrt={key:4,class:"form-item"},xrt={for:"workout-equipment"},Brt=["disabled"],Grt={value:""},Hrt=["value"],Vrt={class:"form-item"},Krt={for:"notes"},jrt={key:1},qrt={key:2,class:"form-buttons"},Yrt=["disabled"],Xrt=te({__name:"WorkoutEdition",props:{authUser:{},sports:{},isCreation:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},workout:{default:()=>({})}},setup(e){const t=e,{t:n}=yt(),a=$e(),s=ca(),{authUser:r,workout:o,isCreation:i,loading:u}=_e(t),l=w(()=>Fn(t.sports,n,"is_active_for_user",o.value.id?[o.value.sport_id]:[])),c=w(()=>a.getters[j.GETTERS.APP_CONFIG]),f=c.value.max_single_file_size?gu(c.value.max_single_file_size):"",E=c.value.gpx_limit_import,p=c.value.max_zip_file_size?gu(c.value.max_zip_file_size):"",T=w(()=>a.getters[j.GETTERS.ERROR_MESSAGES]),O=Kt({sport_id:"",title:"",notes:"",workoutDate:"",workoutTime:"",workoutDurationHour:"",workoutDurationMinutes:"",workoutDurationSeconds:"",workoutDistance:"",workoutAscent:"",workoutDescent:"",equipment_id:""}),R=de(o.value.id?o.value.with_gpx:i.value);let g=null;const N=de(!1),S=de([]),A=w(()=>a.getters[Me.GETTERS.EQUIPMENTS]),v=w(()=>O.sport_id?l.value.filter(B=>B.id===+O.sport_id)[0]:null),D=w(()=>A.value?pO(A.value,n,i.value?"is_active":"withIncludedIds",v.value,i.value?[]:o.value.equipments.map(B=>B.id)):[]);St(()=>{let B;t.workout.id?(z(t.workout),B=document.getElementById("sport")):B=document.getElementById("withGpx"),B&&B.focus()});function P(B){O.notes=B}function C(){R.value=!R.value,N.value=!1}function y(B){B.target.files&&(g=B.target.files[0])}function z(B){if(O.sport_id=`${B.sport_id}`,O.title=B.title,O.notes=B.notes,O.equipment_id=B.equipments.length>0?`${B.equipments[0].id}`:"",!B.with_gpx){const Ne=gO(Ql(B.workout_date,t.authUser.timezone),"yyyy-MM-dd"),qe=B.duration.split(":");O.workoutDistance=`${r.value.imperial_units?Bt(B.distance,"km","mi",3):parseFloat(B.distance.toFixed(3))}`,O.workoutDate=Ne.workout_date,O.workoutTime=Ne.workout_time,O.workoutDurationHour=qe[0],O.workoutDurationMinutes=qe[1],O.workoutDurationSeconds=qe[2],O.workoutAscent=B.ascent===null?"":`${r.value.imperial_units?Bt(B.ascent,"m","ft",2):parseFloat(B.ascent.toFixed(2))}`,O.workoutDescent=B.descent===null?"":`${r.value.imperial_units?Bt(B.descent,"m","ft",2):parseFloat(B.descent.toFixed(2))}`}}function $(){return S.value.includes("workouts.INVALID_DISTANCE")}function F(){return S.value.includes("workouts.INVALID_DURATION")}function X(){return S.value.includes("workouts.INVALID_ASCENT_OR_DESCENT")}function re(B){S.value=[],B.title=O.title,B.duration=+O.workoutDurationHour*3600+ +O.workoutDurationMinutes*60+ +O.workoutDurationSeconds,B.duration<=0&&S.value.push("workouts.INVALID_DURATION"),B.distance=r.value.imperial_units?Bt(+O.workoutDistance,"mi","km",3):+O.workoutDistance,B.distance<=0&&S.value.push("workouts.INVALID_DISTANCE"),B.workout_date=`${O.workoutDate} ${O.workoutTime}`,B.ascent=O.workoutAscent===""?null:r.value.imperial_units?Bt(+O.workoutAscent,"ft","m",3):+O.workoutAscent,B.descent=O.workoutDescent===""?null:r.value.imperial_units?Bt(+O.workoutDescent,"ft","m",3):+O.workoutDescent,(B.ascent!==null&&B.descent===null||B.ascent===null&&B.descent!==null)&&S.value.push("workouts.INVALID_ASCENT_OR_DESCENT")}function G(){const B={sport_id:+O.sport_id,notes:O.notes,equipment_ids:O.equipment_id&&D.value.find(Ne=>Ne.id===O.equipment_id)?[O.equipment_id]:[]};if(t.workout.id)t.workout.with_gpx?B.title=O.title:re(B),S.value.length>0?a.commit(j.MUTATIONS.SET_ERROR_MESSAGES,S.value):a.dispatch(Re.ACTIONS.EDIT_WORKOUT,{workoutId:t.workout.id,data:B});else if(R.value){if(!g){a.commit(j.MUTATIONS.SET_ERROR_MESSAGES,"workouts.NO_FILE_PROVIDED");return}B.file=g,a.dispatch(Re.ACTIONS.ADD_WORKOUT,B)}else re(B),S.value.length>0?a.commit(j.MUTATIONS.SET_ERROR_MESSAGES,S.value):a.dispatch(Re.ACTIONS.ADD_WORKOUT_WITHOUT_GPX,B)}function Z(){t.workout.id?s.push({name:"Workout",params:{workoutId:t.workout.id}}):s.go(-1)}function q(){N.value=!0}return pt(()=>a.commit(j.MUTATIONS.EMPTY_ERROR_MESSAGES)),We(()=>t.workout,async(B,Ne)=>{B!==Ne&&B&&B.id&&z(B)}),We(()=>v.value,B=>{i.value&&(O.equipment_id=B!=null&&B.default_equipments&&(B==null?void 0:B.default_equipments.length)>0?`${B.default_equipments[0].id}`:"")}),(B,Ne)=>{const qe=oe("CustomTextArea"),Fe=oe("ErrorMessage"),Ue=oe("Loader"),zt=oe("Card");return h(),I("div",{id:"workout-edition",class:pe(["center-card with-margin",{"center-form":m(o)&&m(o).with_gpx}])},[W(zt,null,{title:le(()=>[V(_(B.$t(`workouts.${m(i)?"ADD":"EDIT"}_WORKOUT`)),1)]),content:le(()=>[d("div",nrt,[d("form",{class:pe({errors:N.value}),onSubmit:be(G,["prevent"])},[d("div",art,[m(i)?(h(),I("div",srt,[d("div",null,[d("input",{id:"withGpx",type:"radio",checked:R.value,disabled:m(u),onClick:C},null,8,rrt),d("label",ort,_(B.$t("workouts.WITH_GPX")),1)]),d("div",null,[d("input",{id:"withoutGpx",type:"radio",checked:!R.value,disabled:m(u),onClick:C},null,8,irt),d("label",urt,_(B.$t("workouts.WITHOUT_GPX")),1)])])):M("",!0),d("div",lrt,[d("label",crt,_(B.$t("workouts.SPORT",1))+"*: ",1),Le(d("select",{id:"sport",required:"",onInvalid:q,disabled:m(u),"onUpdate:modelValue":Ne[0]||(Ne[0]=ge=>O.sport_id=ge)},[(h(!0),I(me,null,Pe(l.value,ge=>(h(),I("option",{value:ge.id,key:ge.id},_(ge.translatedLabel),9,Ert))),128))],40,drt),[[ia,O.sport_id]])]),m(i)&&R.value?(h(),I("div",frt,[d("label",prt,_(B.$t("workouts.GPX_FILE"))+" "+_(B.$t("workouts.ZIP_ARCHIVE_DESCRIPTION"))+"*: ",1),d("input",{id:"gpxFile",name:"gpxFile",type:"file",accept:".gpx, .zip",disabled:m(u),required:"",onInvalid:q,onInput:y},null,40,mrt),d("div",_rt,[d("div",null,[d("strong",null,_(B.$t("workouts.GPX_FILE"))+":",1),d("ul",null,[d("li",null,_(B.$t("workouts.MAX_SIZE"))+": "+_(m(f)),1)])]),d("div",null,[d("strong",null,_(B.$t("workouts.ZIP_ARCHIVE"))+":",1),d("ul",null,[d("li",null,_(B.$t("workouts.NO_FOLDER")),1),d("li",null,_(B.$t("workouts.MAX_FILES"))+": "+_(m(E)),1),d("li",null,_(B.$t("workouts.MAX_SIZE"))+": "+_(m(p)),1)])])])])):(h(),I("div",Trt,[d("label",hrt,_(B.$t("workouts.TITLE"))+": ",1),Le(d("input",{id:"title",name:"title",type:"text",required:!m(i),onInvalid:q,disabled:m(u),"onUpdate:modelValue":Ne[1]||(Ne[1]=ge=>O.title=ge)},null,40,Srt),[[at,O.title]])])),R.value?M("",!0):(h(),I("div",Art,[d("div",Ort,[d("div",grt,[d("label",null,_(B.$t("workouts.WORKOUT_DATE"))+"*:",1),d("div",Irt,[Le(d("input",{id:"workout-date",name:"workout-date",type:"date",required:"",onInvalid:q,disabled:m(u),"onUpdate:modelValue":Ne[2]||(Ne[2]=ge=>O.workoutDate=ge)},null,40,Rrt),[[at,O.workoutDate]]),Le(d("input",{id:"workout-time",name:"workout-time",class:"workout-time",type:"time",required:"",onInvalid:q,disabled:m(u),"onUpdate:modelValue":Ne[3]||(Ne[3]=ge=>O.workoutTime=ge)},null,40,Nrt),[[at,O.workoutTime]])])]),d("div",vrt,[d("label",null,_(B.$t("workouts.DURATION"))+"*:",1),d("div",null,[d("label",brt,_(B.$t("common.HOURS",0)),1),Le(d("input",{id:"workout-duration-hour",name:"workout-duration-hour",class:pe(["workout-duration",{errored:F()}]),type:"text",placeholder:"HH",minlength:"1",maxlength:"2",pattern:"^([0-1]?[0-9]|2[0-3])$",required:"",onInvalid:q,disabled:m(u),"onUpdate:modelValue":Ne[4]||(Ne[4]=ge=>O.workoutDurationHour=ge)},null,42,Crt),[[at,O.workoutDurationHour]]),V(" : "),d("label",Drt,_(B.$t("common.MINUTES",0)),1),Le(d("input",{id:"workout-duration-minutes",name:"workout-duration-minutes",class:pe(["workout-duration",{errored:F()}]),type:"text",pattern:"^([0-5][0-9])$",minlength:"2",maxlength:"2",placeholder:"MM",required:"",onInvalid:q,disabled:m(u),"onUpdate:modelValue":Ne[5]||(Ne[5]=ge=>O.workoutDurationMinutes=ge)},null,42,Prt),[[at,O.workoutDurationMinutes]]),V(" : "),d("label",Lrt,_(B.$t("common.SECONDS",0)),1),Le(d("input",{id:"workout-duration-seconds",name:"workout-duration-seconds",class:pe(["workout-duration",{errored:F()}]),type:"text",pattern:"^([0-5][0-9])$",minlength:"2",maxlength:"2",placeholder:"SS",required:"",onInvalid:q,disabled:m(u),"onUpdate:modelValue":Ne[6]||(Ne[6]=ge=>O.workoutDurationSeconds=ge)},null,42,yrt),[[at,O.workoutDurationSeconds]])])])]),d("div",$rt,[d("div",Urt,[d("label",null,_(B.$t("workouts.DISTANCE"))+" ("+_(m(r).imperial_units?"mi":"km")+")*: ",1),Le(d("input",{class:pe({errored:$()}),name:"workout-distance",type:"number",min:"0",step:"0.001",required:"",onInvalid:q,disabled:m(u),"onUpdate:modelValue":Ne[7]||(Ne[7]=ge=>O.workoutDistance=ge)},null,42,krt),[[at,O.workoutDistance]])]),d("div",wrt,[d("label",null,_(B.$t("workouts.ASCENT"))+" ("+_(m(r).imperial_units?"ft":"m")+"): ",1),Le(d("input",{class:pe({errored:X()}),name:"workout-ascent",type:"number",min:"0",step:"0.01",onInvalid:q,disabled:m(u),"onUpdate:modelValue":Ne[8]||(Ne[8]=ge=>O.workoutAscent=ge)},null,42,Mrt),[[at,O.workoutAscent]])]),d("div",Wrt,[d("label",null,_(B.$t("workouts.DESCENT"))+" ("+_(m(r).imperial_units?"ft":"m")+"): ",1),Le(d("input",{class:pe({errored:X()}),name:"workout-descent",type:"number",min:"0",step:"0.01",onInvalid:q,disabled:m(u),"onUpdate:modelValue":Ne[9]||(Ne[9]=ge=>O.workoutDescent=ge)},null,42,Frt),[[at,O.workoutDescent]])])])])),A.value?(h(),I("div",zrt,[d("label",xrt,_(B.$t("equipments.EQUIPMENT",1))+": ",1),Le(d("select",{id:"workout-equipment",onInvalid:q,disabled:m(u),"onUpdate:modelValue":Ne[10]||(Ne[10]=ge=>O.equipment_id=ge)},[d("option",Grt,_(B.$t("equipments.NO_EQUIPMENTS")),1),(h(!0),I(me,null,Pe(D.value,ge=>(h(),I("option",{value:ge.id,key:ge.id},_(ge.label),9,Hrt))),128))],40,Brt),[[ia,O.equipment_id]])])):M("",!0),d("div",Vrt,[d("label",Krt,_(B.$t("workouts.NOTES"))+": ",1),W(qe,{name:"notes",input:O.notes,disabled:m(u),onUpdateValue:P},null,8,["input","disabled"])])]),T.value?(h(),Y(Fe,{key:0,message:T.value},null,8,["message"])):M("",!0),m(u)?(h(),I("div",jrt,[W(Ue)])):(h(),I("div",qrt,[d("button",{class:"confirm",type:"submit",disabled:m(u)},_(B.$t("buttons.SUBMIT")),9,Yrt),d("button",{class:"cancel",onClick:be(Z,["prevent"])},_(B.$t("buttons.CANCEL")),1)]))],34)])]),_:1})],2)}}}),lg=ie(Xrt,[["__scopeId","data-v-f97be344"]]),Qrt={id:"add-workout",class:"view"},Zrt={class:"container"},Jrt=te({__name:"AddWorkout",setup(e){const t=$e(),n=w(()=>t.getters[Pt.GETTERS.SPORTS]),a=w(()=>t.getters[Q.GETTERS.AUTH_USER_PROFILE]),s=w(()=>t.getters[Re.GETTERS.WORKOUT_DATA]);return(r,o)=>(h(),I("div",Qrt,[d("div",Zrt,[W(lg,{authUser:a.value,sports:n.value,isCreation:!0,loading:s.value.loading},null,8,["authUser","sports","loading"])])]))}}),eot={id:"edit-workout",class:"view"},tot={class:"container"},not=te({__name:"EditWorkout",setup(e){const t=Lt(),n=$e(),a=w(()=>n.getters[Q.GETTERS.AUTH_USER_PROFILE]),s=w(()=>n.getters[Pt.GETTERS.SPORTS]),r=w(()=>n.getters[Re.GETTERS.WORKOUT_DATA]);return ft(()=>{n.dispatch(Re.ACTIONS.GET_WORKOUT_DATA,{workoutId:t.params.workoutId})}),We(()=>t.params.workoutId,async o=>{o||n.commit(Re.MUTATIONS.EMPTY_WORKOUT)}),(o,i)=>(h(),I("div",eot,[d("div",tot,[r.value.workout.id?(h(),Y(lg,{key:0,authUser:a.value,sports:s.value,workout:r.value.workout,loading:r.value.loading},null,8,["authUser","sports","workout","loading"])):M("",!0)])]))}}),$r=e=>(ot("data-v-ba7fce77"),e=e(),it(),e),aot={id:"workout-card-title"},sot=["disabled","title"],rot=$r(()=>d("i",{class:"fa fa-chevron-left","aria-hidden":"true"},null,-1)),oot=[rot],iot={class:"workout-card-title"},uot={class:"workout-title-date"},lot={key:0,class:"workout-title"},cot=["aria-label"],dot=$r(()=>d("i",{class:"fa fa-edit","aria-hidden":"true"},null,-1)),Eot=[dot],fot=["aria-label"],pot=$r(()=>d("i",{class:"fa fa-download","aria-hidden":"true"},null,-1)),mot=[pot],_ot=["aria-label"],Tot=$r(()=>d("i",{class:"fa fa-trash","aria-hidden":"true"},null,-1)),hot=[Tot],Sot={key:1,class:"workout-title"},Aot={class:"workout-segment"},Oot=$r(()=>d("i",{class:"fa fa-map-marker","aria-hidden":"true"},null,-1)),got={class:"workout-date"},Iot=["datetime"],Rot={class:"workout-link"},Not=["disabled","title"],vot=$r(()=>d("i",{class:"fa fa-chevron-right","aria-hidden":"true"},null,-1)),bot=[vot],Cot=te({__name:"WorkoutCardTitle",props:{sport:{},workoutObject:{}},emits:["displayModal"],setup(e,{emit:t}){const n=e,a=t,{sport:s,workoutObject:r}=_e(n);async function o(u){await Ge.get(`workouts/${u}/gpx/download`,{responseType:"blob"}).then(l=>{const c=window.URL.createObjectURL(new Blob([l.data],{type:"application/gpx+xml"})),f=document.createElement("a");f.href=c,f.setAttribute("download",`${u}.gpx`),document.body.appendChild(f),f.click()})}function i(){a("displayModal",!0)}return(u,l)=>{const c=oe("SportImage"),f=oe("router-link");return h(),I("div",aot,[d("button",{class:pe(["workout-previous workout-arrow transparent",{inactive:!m(r).previousUrl}]),disabled:!m(r).previousUrl,title:m(r).previousUrl?u.$t(`workouts.PREVIOUS_${m(r).type}`):u.$t(`workouts.NO_PREVIOUS_${m(r).type}`),onClick:l[0]||(l[0]=E=>m(r).previousUrl?u.$router.push(m(r).previousUrl):null)},oot,10,sot),d("div",iot,[W(c,{"sport-label":m(s).label,color:m(s).color},null,8,["sport-label","color"]),d("div",uot,[m(r).type==="WORKOUT"?(h(),I("div",lot,[d("span",null,_(m(r).title),1),d("button",{class:"transparent icon-button",onClick:l[1]||(l[1]=E=>u.$router.push({name:"EditWorkout",params:{workoutId:m(r).workoutId}})),"aria-label":u.$t("workouts.EDIT_WORKOUT")},Eot,8,cot),m(r).with_gpx?(h(),I("button",{key:0,class:"transparent icon-button",onClick:l[2]||(l[2]=be(E=>o(m(r).workoutId),["prevent"])),"aria-label":u.$t("workouts.DOWNLOAD_WORKOUT")},mot,8,fot)):M("",!0),d("button",{id:"delete-workout-button",class:"transparent icon-button",onClick:be(i,["prevent"]),"aria-label":u.$t("workouts.DELETE_WORKOUT")},hot,8,_ot)])):m(r).segmentId!==null?(h(),I("div",Sot,[V(_(m(r).title)+" ",1),d("span",Aot,[V(" — "),Oot,V(" "+_(u.$t("workouts.SEGMENT"))+" "+_(m(r).segmentId+1),1)])])):M("",!0),d("div",got,[d("time",{datetime:m(r).workoutFullDate},_(m(r).workoutDate)+" - "+_(m(r).workoutTime),9,Iot),d("span",Rot,[m(r).type==="SEGMENT"?(h(),Y(f,{key:0,to:{name:"Workout",params:{workoutId:m(r).workoutId}}},{default:le(()=>[V(" > "+_(u.$t("workouts.BACK_TO_WORKOUT")),1)]),_:1},8,["to"])):M("",!0)])])])]),d("button",{class:pe(["workout-next workout-arrow transparent",{inactive:!m(r).nextUrl}]),disabled:!m(r).nextUrl,title:m(r).nextUrl?u.$t(`workouts.NEXT_${m(r).type}`):u.$t(`workouts.NO_NEXT_${m(r).type}`),onClick:l[3]||(l[3]=E=>m(r).nextUrl?u.$router.push(m(r).nextUrl):null)},bot,10,Not)])}}}),Dot=ie(Cot,[["__scopeId","data-v-ba7fce77"]]),Pot=e=>(ot("data-v-1b247cbe"),e=e(),it(),e),Lot={key:0,class:"workout-record"},yot=Pot(()=>d("sup",null,[d("i",{class:"fa fa-trophy","aria-hidden":"true"})],-1)),$ot=[yot],Uot=te({__name:"WorkoutRecord",props:{recordType:{},workoutObject:{}},setup(e){const t=e,{recordType:n,workoutObject:a}=_e(t);return(s,r)=>m(a).records&&m(a).records.find(o=>o.record_type===m(n))?(h(),I("span",Lot,$ot)):M("",!0)}}),Yr=ie(Uot,[["__scopeId","data-v-1b247cbe"]]),kot="/img/weather/temperature.svg",wot="/img/weather/pour-rain.svg",Mot="/img/weather/breeze.svg",Wot=["N","NNE","NE","ENE","E","ESE","SE","SSE","S","SSW","SW","WSW","W","WNW","NW","NNW"],Fot=e=>{const t=Math.floor(e/22.5+.5);return Wot[t%16]},zot={class:"wind"},xot={class:"wind-bearing"},Bot=["title"],Got=te({__name:"WeatherWind",props:{weather:{},useImperialUnits:{type:Boolean}},setup(e){const t=e,{useImperialUnits:n,weather:a}=_e(t),{t:s}=yt();function r(o){return s(`workouts.WEATHER.WIND_DIRECTIONS.${Fot(o)}`)}return(o,i)=>(h(),I("div",zot,[V(_(m(KU)(m(a).wind,m(n)))+" ",1),d("div",xot,[m(a).windBearing?(h(),I("i",{key:0,class:"fa fa-long-arrow-down",style:ba({transform:`rotate(${m(a).windBearing}deg)`}),"aria-hidden":"true",title:r(m(a).windBearing)},null,12,Bot)):M("",!0)])]))}}),o0=ie(Got,[["__scopeId","data-v-e1f7f9cc"]]),Hot=e=>(ot("data-v-be2fffb0"),e=e(),it(),e),Vot={key:0,id:"workout-weather"},Kot={class:"weather-table"},jot=Hot(()=>d("th",null,null,-1)),qot={class:"weather-th"},Yot=["src","alt","title"],Xot={class:"weather-th"},Qot=["src","alt","title"],Zot=["alt","title"],Jot=["alt","title"],eit=["alt","title"],tit=te({__name:"WorkoutWeather",props:{workoutObject:{},useImperialUnits:{type:Boolean}},setup(e){const t=e,{useImperialUnits:n,workoutObject:a}=_e(t);return(s,r)=>m(a).weatherStart&&m(a).weatherEnd?(h(),I("div",Vot,[d("table",Kot,[d("thead",null,[d("tr",null,[jot,d("th",null,[d("div",qot,[V(_(s.$t("workouts.START"))+" ",1),d("img",{class:"weather-img",src:`/img/weather/${m(a).weatherStart.icon}.svg`,alt:s.$t(`workouts.WEATHER.DARK_SKY.${m(a).weatherStart.icon}`),title:s.$t(`workouts.WEATHER.DARK_SKY.${m(a).weatherStart.icon}`)},null,8,Yot)])]),d("th",null,[d("div",Xot,[V(_(s.$t("workouts.END"))+" ",1),d("img",{class:"weather-img",src:`/img/weather/${m(a).weatherEnd.icon}.svg`,alt:s.$t(`workouts.WEATHER.DARK_SKY.${m(a).weatherEnd.icon}`),title:s.$t(`workouts.WEATHER.DARK_SKY.${m(a).weatherEnd.icon}`)},null,8,Qot)])])])]),d("tbody",null,[d("tr",null,[d("td",null,[d("img",{class:"weather-img weather-img-small",src:kot,alt:s.$t("workouts.WEATHER.TEMPERATURE"),title:s.$t("workouts.WEATHER.TEMPERATURE")},null,8,Zot)]),d("td",null,_(m(wm)(m(a).weatherStart.temperature,m(n))),1),d("td",null,_(m(wm)(m(a).weatherEnd.temperature,m(n))),1)]),d("tr",null,[d("td",null,[d("img",{class:"weather-img weather-img-small",src:wot,alt:s.$t("workouts.WEATHER.HUMIDITY"),title:s.$t("workouts.WEATHER.HUMIDITY")},null,8,Jot)]),d("td",null,_(Number(m(a).weatherStart.humidity*100).toFixed(1))+"% ",1),d("td",null,_(Number(m(a).weatherEnd.humidity*100).toFixed(1))+"% ",1)]),d("tr",null,[d("td",null,[d("img",{class:"weather-img weather-img-small",src:Mot,alt:s.$t("workouts.WEATHER.WIND"),title:s.$t("workouts.WEATHER.WIND")},null,8,eit)]),d("td",null,[W(o0,{weather:m(a).weatherStart,useImperialUnits:m(n)},null,8,["weather","useImperialUnits"])]),d("td",null,[W(o0,{weather:m(a).weatherEnd,useImperialUnits:m(n)},null,8,["weather","useImperialUnits"])])])])])])):M("",!0)}}),nit=ie(tit,[["__scopeId","data-v-be2fffb0"]]),Fs=e=>(ot("data-v-9341b3e8"),e=e(),it(),e),ait={id:"workout-info"},sit={class:"workout-data"},rit=Fs(()=>d("i",{class:"fa fa-clock-o","aria-hidden":"true"},null,-1)),oit={class:"label"},iit={class:"value"},uit={key:0},lit={class:"value"},cit={class:"value"},dit={key:0,class:"workout-data"},Eit=Fs(()=>d("i",{class:"fa fa-road","aria-hidden":"true"},null,-1)),fit={class:"label"},pit={key:1,class:"workout-data"},mit=Fs(()=>d("i",{class:"fa fa-tachometer","aria-hidden":"true"},null,-1)),_it={class:"label"},Tit=Fs(()=>d("br",null,null,-1)),hit={class:"label"},Sit={key:2,class:"workout-data"},Ait=["alt"],Oit={class:"label"},git=Fs(()=>d("br",null,null,-1)),Iit={class:"label"},Rit={key:3,class:"workout-data"},Nit=Fs(()=>d("i",{class:"fa fa-location-arrow","aria-hidden":"true"},null,-1)),vit={class:"label"},bit=Fs(()=>d("br",null,null,-1)),Cit={class:"label"},Dit=te({__name:"WorkoutData",props:{workoutObject:{},useImperialUnits:{type:Boolean},displayHARecord:{type:Boolean}},setup(e){const t=e,{displayHARecord:n,workoutObject:a,useImperialUnits:s}=_e(t),r=w(()=>t.workoutObject.pauses!=="0:00:00"&&t.workoutObject.pauses!==null);return(o,i)=>{const u=oe("Distance");return h(),I("div",ait,[d("div",sit,[rit,d("span",oit,_(o.$t("workouts.DURATION")),1),V(": "),d("span",iit,_(m(a).moving),1),W(Yr,{workoutObject:m(a),recordType:"LD"},null,8,["workoutObject"]),r.value?(h(),I("div",uit,[V(" ("+_(o.$t("workouts.PAUSES"))+": ",1),d("span",lit,_(m(a).pauses),1),V(" - "+_(o.$t("workouts.TOTAL_DURATION"))+": ",1),d("span",cit,_(m(a).duration)+")",1)])):M("",!0)]),m(a).distance!==null?(h(),I("div",dit,[Eit,d("span",fit,_(o.$t("workouts.DISTANCE")),1),V(": "),W(u,{distance:m(a).distance,digits:3,unitFrom:"km",strong:!0,useImperialUnits:m(s)},null,8,["distance","useImperialUnits"]),W(Yr,{workoutObject:m(a),recordType:"FD"},null,8,["workoutObject"])])):M("",!0),m(a).aveSpeed!==null&&m(a).maxSpeed!==null?(h(),I("div",pit,[mit,d("span",_it,_(o.$t("workouts.AVERAGE_SPEED")),1),V(": "),W(u,{distance:m(a).aveSpeed,unitFrom:"km",speed:!0,strong:!0,useImperialUnits:m(s)},null,8,["distance","useImperialUnits"]),W(Yr,{workoutObject:m(a),recordType:"AS"},null,8,["workoutObject"]),Tit,d("span",hit,_(o.$t("workouts.MAX_SPEED")),1),V(": "),W(u,{distance:m(a).maxSpeed,unitFrom:"km",speed:!0,strong:!0,useImperialUnits:m(s)},null,8,["distance","useImperialUnits"]),W(Yr,{workoutObject:m(a),recordType:"MS"},null,8,["workoutObject"])])):M("",!0),m(a).maxAlt!==null&&m(a).minAlt!==null?(h(),I("div",Sit,[d("img",{class:"mountains",src:jO,alt:o.$t("workouts.ELEVATION")},null,8,Ait),d("span",Oit,_(o.$t("workouts.MIN_ALTITUDE")),1),V(": "),W(u,{distance:m(a).minAlt,unitFrom:"m",strong:!0,useImperialUnits:m(s)},null,8,["distance","useImperialUnits"]),git,d("span",Iit,_(o.$t("workouts.MAX_ALTITUDE")),1),V(": "),W(u,{distance:m(a).maxAlt,unitFrom:"m",strong:!0,useImperialUnits:m(s)},null,8,["distance","useImperialUnits"])])):M("",!0),m(a).ascent!==null&&m(a).descent!==null?(h(),I("div",Rit,[Nit,d("span",vit,_(o.$t("workouts.ASCENT")),1),V(": "),W(u,{distance:m(a).ascent,unitFrom:"m",strong:!0,useImperialUnits:m(s)},null,8,["distance","useImperialUnits"]),m(n)?(h(),Y(Yr,{key:0,workoutObject:m(a),recordType:"HA"},null,8,["workoutObject"])):M("",!0),bit,d("span",Cit,_(o.$t("workouts.DESCENT")),1),V(": "),W(u,{distance:m(a).descent,unitFrom:"m",strong:!0,useImperialUnits:m(s)},null,8,["distance","useImperialUnits"])])):M("",!0),W(nit,{workoutObject:m(a),useImperialUnits:m(s)},null,8,["workoutObject","useImperialUnits"])])}}}),Pit=ie(Dit,[["__scopeId","data-v-9341b3e8"]]);function ir(e,t){return Array.from(e.getElementsByTagName(t))}function Ur(e){return e==null||e.normalize(),e&&e.textContent||""}function Us(e,t,n){const a=e.getElementsByTagName(t),s=a.length?a[0]:null;return s&&n&&n(s),s}function Lit(e,t,n){const a={};if(!e)return a;const s=e.getElementsByTagName(t),r=s.length?s[0]:null;return r&&n?n(r,a):a}function cg(e,t,n){const a=Ur(Us(e,t));return a&&n?n(a)||{}:{}}function i0(e,t,n){const a=parseFloat(Ur(Us(e,t)));if(!isNaN(a))return a&&n?n(a)||{}:{}}function yit(e,t,n){const a=parseFloat(Ur(Us(e,t)));if(!isNaN(a))return n&&n(a),a}function mE(e,t){const n={};for(const a of t)cg(e,a,s=>{n[a]=s});return n}function $it(e){return(e==null?void 0:e.nodeType)===1}function dg(e){return Lit(e,"line",t=>Object.assign({},cg(t,"color",a=>({stroke:`#${a}`})),i0(t,"opacity",a=>({"stroke-opacity":a})),i0(t,"width",a=>({"stroke-width":a*96/25.4}))))}function Eg(e){let t=[];if(e===null)return t;for(const n of Array.from(e.childNodes)){if(!$it(n))continue;const a=Uit(n.nodeName);if(a==="gpxtpx:TrackPointExtension")t=t.concat(Eg(n));else{const s=Ur(n);t.push([a,kit(s)])}}return t}function Uit(e){return["heart","gpxtpx:hr","hr"].includes(e)?"heart":e}function kit(e){const t=parseFloat(e);return isNaN(t)?e:t}function fg(e){const t=[parseFloat(e.getAttribute("lon")||""),parseFloat(e.getAttribute("lat")||"")];if(isNaN(t[0])||isNaN(t[1]))return null;yit(e,"ele",a=>{t.push(a)});const n=Us(e,"time");return{coordinates:t,time:n?Ur(n):null,extendedValues:Eg(Us(e,"extensions"))}}function Xf(e){var s;const t=mE(e,["name","cmt","desc","type","time","keywords"]),n=Array.from(e.getElementsByTagNameNS("http://www.garmin.com/xmlschemas/GpxExtensions/v3","*"));for(const r of n)((s=r.parentNode)==null?void 0:s.parentNode)===e&&(t[r.tagName.replace(":","_")]=Ur(r));const a=ir(e,"link");return a.length&&(t.links=a.map(r=>Object.assign({href:r.getAttribute("href")},mE(r,["text","type"])))),t}function pg(e,t){const n=ir(e,t),a=[],s=[],r={};for(let o=0;o1,o=Object.assign({_gpxType:"trk"},Xf(e),dg(Us(e,"extensions")),a.length?{coordinateProperties:{times:r?a:a[0]}}:{});for(const i of s){n.push(i.line),o.coordinateProperties||(o.coordinateProperties={});const u=o.coordinateProperties,l=Object.entries(i.extendedValues);for(let c=0;cnew Array(p.line.length).fill(null))),u[f][c]=E):u[f]=E}}return{type:"Feature",properties:o,geometry:r?{type:"MultiLineString",coordinates:n}:{type:"LineString",coordinates:n[0]}}}function Wit(e){const t=Object.assign(Xf(e),mE(e,["sym"])),n=fg(e);return n?{type:"Feature",properties:t,geometry:{type:"Point",coordinates:n.coordinates}}:null}function*Fit(e){for(const t of ir(e,"trk")){const n=Mit(t);n&&(yield n)}for(const t of ir(e,"rte")){const n=wit(t);n&&(yield n)}for(const t of ir(e,"wpt")){const n=Wit(t);n&&(yield n)}}function zit(e){return{type:"FeatureCollection",features:Array.from(Fit(e))}}const u0=(e,t)=>{for(const n of Object.keys(t))e.on(n,t[n])},mg=e=>{for(const t of Object.keys(e)){const n=e[t];n&&Ka(n.cancel)&&n.cancel()}},xit=e=>!e||typeof e.charAt!="function"?e:e.charAt(0).toUpperCase()+e.slice(1),Ka=e=>typeof e=="function",Pa=(e,t,n)=>{for(const a in n){const s="set"+xit(a);e[s]?We(()=>n[a],(r,o)=>{e[s](r,o)}):t[s]&&We(()=>n[a],r=>{t[s](r)})}},da=(e,t,n={})=>{const a={...n};for(const s in e){const r=t[s],o=e[s];r&&(r&&r.custom===!0||o!==void 0&&(a[s]=o))}return a},zs=e=>{const t={},n={};for(const a in e)if(a.startsWith("on")&&!a.startsWith("onUpdate")&&a!=="onReady"){const s=a.slice(2).toLocaleLowerCase();t[s]=e[a]}else n[a]=e[a];return{listeners:t,attrs:n}},Bit=async e=>{const t=await Promise.all([kt(()=>import("./maps-BFpqWvfo.js").then(n=>n.m),__vite__mapDeps([0,1])),kt(()=>import("./maps-BFpqWvfo.js").then(n=>n.b),__vite__mapDeps([0,1])),kt(()=>import("./maps-BFpqWvfo.js").then(n=>n.d),__vite__mapDeps([0,1]))]);delete e.Default.prototype._getIconUrl,e.Default.mergeOptions({iconRetinaUrl:t[0].default,iconUrl:t[1].default,shadowUrl:t[2].default})},Mi=e=>{const t=de((...a)=>console.warn(`Method ${e} has been invoked without being replaced`)),n=(...a)=>t.value(...a);return n.wrapped=t,rn(e,n),n},Wi=(e,t)=>e.wrapped.value=t,Hn=typeof self=="object"&&self.self===self&&self||typeof global=="object"&&global.global===global&&global||globalThis,Wn=e=>{const t=Nt(e);if(t===void 0)throw new Error(`Attempt to inject ${e.description} before it was provided.`);return t},La=Symbol("useGlobalLeaflet"),cs=Symbol("addLayer"),Qf=Symbol("removeLayer"),_g=Symbol("registerControl"),Tg=Symbol("registerLayerControl"),hg=Symbol("canSetParentHtml"),Sg=Symbol("setParentHtml"),Ag=Symbol("setIcon"),Git=Symbol("bindPopup"),Hit=Symbol("bindTooltip"),Vit=Symbol("unbindPopup"),Kit=Symbol("unbindTooltip"),ri={options:{type:Object,default:()=>({}),custom:!0}},Zl=e=>({options:e.options,methods:{}}),kr={...ri,pane:{type:String},attribution:{type:String},name:{type:String,custom:!0},layerType:{type:String,custom:!0},visible:{type:Boolean,custom:!0,default:!0}},Zf=(e,t,n)=>{const a=Wn(cs),s=Wn(Qf),{options:r,methods:o}=Zl(e),i=da(e,kr,r),u=()=>a({leafletObject:t.value}),l=()=>s({leafletObject:t.value}),c={...o,setAttribution(f){l(),t.value.options.attribution=f,e.visible&&u()},setName(){l(),e.visible&&u()},setLayerType(){l(),e.visible&&u()},setVisible(f){t.value&&(f?u():l())},bindPopup(f){if(!t.value||!Ka(t.value.bindPopup)){console.warn("Attempt to bind popup before bindPopup method available on layer.");return}t.value.bindPopup(f)},bindTooltip(f){if(!t.value||!Ka(t.value.bindTooltip)){console.warn("Attempt to bind tooltip before bindTooltip method available on layer.");return}t.value.bindTooltip(f)},unbindTooltip(){t.value&&(Ka(t.value.closeTooltip)&&t.value.closeTooltip(),Ka(t.value.unbindTooltip)&&t.value.unbindTooltip())},unbindPopup(){t.value&&(Ka(t.value.closePopup)&&t.value.closePopup(),Ka(t.value.unbindPopup)&&t.value.unbindPopup())},updateVisibleProp(f){n.emit("update:visible",f)}};return rn(Git,c.bindPopup),rn(Hit,c.bindTooltip),rn(Vit,c.unbindPopup),rn(Kit,c.unbindTooltip),pt(()=>{c.unbindPopup(),c.unbindTooltip(),l()}),{options:i,methods:c}},Jf=(e,t)=>{if(e&&t.default)return Sn("div",{style:{display:"none"}},t.default())},jit={...kr,interactive:{type:Boolean,default:void 0},bubblingMouseEvents:{type:Boolean,default:void 0}},Og={...jit,stroke:{type:Boolean,default:void 0},color:{type:String},weight:{type:Number},opacity:{type:Number},lineCap:{type:String},lineJoin:{type:String},dashArray:{type:String},dashOffset:{type:String},fill:{type:Boolean,default:void 0},fillColor:{type:String},fillOpacity:{type:Number},fillRule:{type:String},className:{type:String}},qit={...Og,radius:{type:Number},latLng:{type:[Object,Array],required:!0,custom:!0}};({...qit});const wr={...ri,position:{type:String}},gg=(e,t)=>{const{options:n,methods:a}=Zl(e),s=da(e,wr,n),r={...a,setPosition(o){t.value&&t.value.setPosition(o)}};return pt(()=>{t.value&&t.value.remove()}),{options:s,methods:r}},Yit=e=>e.default?Sn("div",{ref:"root"},e.default()):null,l0=te({name:"LControl",props:{...wr,disableClickPropagation:{type:Boolean,custom:!0,default:!0},disableScrollPropagation:{type:Boolean,custom:!0,default:!1}},setup(e,t){const n=de(),a=de(),s=Nt(La),r=Wn(_g),{options:o,methods:i}=gg(e,n);return St(async()=>{const{Control:u,DomEvent:l}=s?Hn.L:await kt(()=>import("./maps-BFpqWvfo.js").then(f=>f.e),__vite__mapDeps([0,1])),c=u.extend({onAdd(){return a.value}});n.value=Ca(new c(o)),Pa(i,n.value,e),r({leafletObject:n.value}),e.disableClickPropagation&&a.value&&l.disableClickPropagation(a.value),e.disableScrollPropagation&&a.value&&l.disableScrollPropagation(a.value),on(()=>t.emit("ready",n.value))}),{root:a,leafletObject:n}},render(){return Yit(this.$slots)}});({...wr});const Ig={...wr,collapsed:{type:Boolean,default:void 0},autoZIndex:{type:Boolean,default:void 0},hideSingleBase:{type:Boolean,default:void 0},sortLayers:{type:Boolean,default:void 0},sortFunction:{type:Function}},Xit=(e,t)=>{const{options:n}=gg(e,t);return{options:da(e,Ig,n),methods:{addLayer(a){a.layerType==="base"?t.value.addBaseLayer(a.leafletObject,a.name):a.layerType==="overlay"&&t.value.addOverlay(a.leafletObject,a.name)},removeLayer(a){t.value.removeLayer(a.leafletObject)}}}},Qit=te({name:"LControlLayers",props:Ig,setup(e,t){const n=de(),a=Nt(La),s=Wn(Tg),{options:r,methods:o}=Xit(e,n);return St(async()=>{const{control:i}=a?Hn.L:await kt(()=>import("./maps-BFpqWvfo.js").then(u=>u.e),__vite__mapDeps([0,1]));n.value=Ca(i.layers(void 0,void 0,r)),Pa(o,n.value,e),s({...e,...o,leafletObject:n.value}),on(()=>t.emit("ready",n.value))}),{leafletObject:n}},render(){return null}});({...wr});({...wr});const Jl={...kr},Rg=(e,t,n)=>{const{options:a,methods:s}=Zf(e,t,n),r=da(e,Jl,a),o={...s,addLayer(i){t.value.addLayer(i.leafletObject)},removeLayer(i){t.value.removeLayer(i.leafletObject)}};return rn(cs,o.addLayer),rn(Qf,o.removeLayer),{options:r,methods:o}};({...Jl});const Ng={...Jl,geojson:{type:[Object,Array],custom:!0},optionsStyle:{type:Function,custom:!0}},Zit=(e,t,n)=>{const{options:a,methods:s}=Rg(e,t,n),r=da(e,Ng,a);Object.prototype.hasOwnProperty.call(e,"optionsStyle")&&(r.style=e.optionsStyle);const o={...s,setGeojson(i){t.value.clearLayers(),t.value.addData(i)},setOptionsStyle(i){t.value.setStyle(i)},getGeoJSONData(){return t.value.toGeoJSON()},getBounds(){return t.value.getBounds()}};return{options:r,methods:o}},Jit=te({props:Ng,setup(e,t){const n=de(),a=de(!1),s=Nt(La),r=Wn(cs),{methods:o,options:i}=Zit(e,n,t);return St(async()=>{const{geoJSON:u}=s?Hn.L:await kt(()=>import("./maps-BFpqWvfo.js").then(c=>c.e),__vite__mapDeps([0,1]));n.value=Ca(u(e.geojson,i));const{listeners:l}=zs(t.attrs);n.value.on(l),Pa(o,n.value,e),r({...e,...o,leafletObject:n.value}),a.value=!0,on(()=>t.emit("ready",n.value))}),{ready:a,leafletObject:n}},render(){return Jf(this.ready,this.$slots)}}),ep={...kr,opacity:{type:Number},zIndex:{type:Number},tileSize:{type:[Number,Array,Object]},noWrap:{type:Boolean,default:void 0},minZoom:{type:Number},maxZoom:{type:Number},className:{type:String}},vg=(e,t,n)=>{const{options:a,methods:s}=Zf(e,t,n),r=da(e,ep,a),o={...s,setTileComponent(){var i;(i=t.value)==null||i.redraw()}};return pt(()=>{t.value.off()}),{options:r,methods:o}},eut=(e,t,n,a)=>e.extend({initialize(s){this.tileComponents={},this.on("tileunload",this._unloadTile),n.setOptions(this,s)},createTile(s){const r=this._tileCoordsToKey(s);this.tileComponents[r]=t.create("div");const o=Sn({setup:a,props:["coords"]},{coords:s});return SN(o,this.tileComponents[r]),this.tileComponents[r]},_unloadTile(s){const r=this._tileCoordsToKey(s.coords);this.tileComponents[r]&&(this.tileComponents[r].innerHTML="",this.tileComponents[r]=void 0)}});({...ep});const c0={iconUrl:{type:String},iconRetinaUrl:{type:String},iconSize:{type:[Object,Array]},iconAnchor:{type:[Object,Array]},popupAnchor:{type:[Object,Array]},tooltipAnchor:{type:[Object,Array]},shadowUrl:{type:String},shadowRetinaUrl:{type:String},shadowSize:{type:[Object,Array]},shadowAnchor:{type:[Object,Array]},bgPos:{type:[Object,Array]},className:{type:String}},tut=te({name:"LIcon",props:{...c0,...ri},setup(e,t){const n=de(),a=Nt(La),s=Wn(hg),r=Wn(Sg),o=Wn(Ag);let i,u,l,c,f;const E=(R,g,N)=>{const S=R&&R.innerHTML;if(!g){N&&f&&s()&&r(S);return}const{listeners:A}=zs(t.attrs);f&&u(f,A);const{options:v}=Zl(e),D=da(e,c0,v);S&&(D.html=S),f=D.html?l(D):c(D),i(f,A),o(f)},p=()=>{on(()=>E(n.value,!0,!1))},T=()=>{on(()=>E(n.value,!1,!0))},O={setIconUrl:p,setIconRetinaUrl:p,setIconSize:p,setIconAnchor:p,setPopupAnchor:p,setTooltipAnchor:p,setShadowUrl:p,setShadowRetinaUrl:p,setShadowAnchor:p,setBgPos:p,setClassName:p,setHtml:p};return St(async()=>{const{DomEvent:R,divIcon:g,icon:N}=a?Hn.L:await kt(()=>import("./maps-BFpqWvfo.js").then(S=>S.e),__vite__mapDeps([0,1]));i=R.on,u=R.off,l=g,c=N,Pa(O,{},e),new MutationObserver(T).observe(n.value,{attributes:!0,childList:!0,characterData:!0,subtree:!0}),p()}),{root:n}},render(){const e=this.$slots.default?this.$slots.default():void 0;return Sn("div",{ref:"root"},e)}});({...kr});const nut=te({props:Jl,setup(e,t){const n=de(),a=de(!1),s=Nt(La),r=Wn(cs),{methods:o}=Rg(e,n,t);return St(async()=>{const{layerGroup:i}=s?Hn.L:await kt(()=>import("./maps-BFpqWvfo.js").then(l=>l.e),__vite__mapDeps([0,1]));n.value=Ca(i(void 0,e.options));const{listeners:u}=zs(t.attrs);n.value.on(u),Pa(o,n.value,e),r({...e,...o,leafletObject:n.value}),a.value=!0,on(()=>t.emit("ready",n.value))}),{ready:a,leafletObject:n}},render(){return Jf(this.ready,this.$slots)}});function bg(e,t,n){var a,s,r;t===void 0&&(t=50),n===void 0&&(n={});var o=(a=n.isImmediate)!=null&&a,i=(s=n.callback)!=null&&s,u=n.maxWait,l=Date.now(),c=[];function f(){if(u!==void 0){var p=Date.now()-l;if(p+t>=u)return u-p}return t}var E=function(){var p=[].slice.call(arguments),T=this;return new Promise(function(O,R){var g=o&&r===void 0;if(r!==void 0&&clearTimeout(r),r=setTimeout(function(){if(r=void 0,l=Date.now(),!o){var S=e.apply(T,p);i&&i(S),c.forEach(function(A){return(0,A.resolve)(S)}),c=[]}},f()),g){var N=e.apply(T,p);return i&&i(N),O(N)}c.push({resolve:O,reject:R})})};return E.cancel=function(p){r!==void 0&&clearTimeout(r),c.forEach(function(T){return(0,T.reject)(p)}),c=[]},E}const d0={...ri,center:{type:[Object,Array]},bounds:{type:[Array,Object]},maxBounds:{type:[Array,Object]},zoom:{type:Number},minZoom:{type:Number},maxZoom:{type:Number},paddingBottomRight:{type:[Object,Array]},paddingTopLeft:{type:Object},padding:{type:Object},worldCopyJump:{type:Boolean,default:void 0},crs:{type:[String,Object]},maxBoundsViscosity:{type:Number},inertia:{type:Boolean,default:void 0},inertiaDeceleration:{type:Number},inertiaMaxSpeed:{type:Number},easeLinearity:{type:Number},zoomAnimation:{type:Boolean,default:void 0},zoomAnimationThreshold:{type:Number},fadeAnimation:{type:Boolean,default:void 0},markerZoomAnimation:{type:Boolean,default:void 0},noBlockingAnimations:{type:Boolean,default:void 0},useGlobalLeaflet:{type:Boolean,default:!0,custom:!0}},aut=te({inheritAttrs:!1,emits:["ready","update:zoom","update:center","update:bounds"],props:d0,setup(e,t){const n=de(),a=Kt({ready:!1,layersToAdd:[],layersInControl:[]}),{options:s}=Zl(e),r=da(e,d0,s),{listeners:o,attrs:i}=zs(t.attrs),u=Mi(cs),l=Mi(Qf),c=Mi(_g),f=Mi(Tg);rn(La,e.useGlobalLeaflet);const E=w(()=>{const g={};return e.noBlockingAnimations&&(g.animate=!1),g}),p=w(()=>{const g=E.value;return e.padding&&(g.padding=e.padding),e.paddingTopLeft&&(g.paddingTopLeft=e.paddingTopLeft),e.paddingBottomRight&&(g.paddingBottomRight=e.paddingBottomRight),g}),T={moveend:bg(g=>{a.leafletRef&&(t.emit("update:zoom",a.leafletRef.getZoom()),t.emit("update:center",a.leafletRef.getCenter()),t.emit("update:bounds",a.leafletRef.getBounds()))}),overlayadd(g){const N=a.layersInControl.find(S=>S.name===g.name);N&&N.updateVisibleProp(!0)},overlayremove(g){const N=a.layersInControl.find(S=>S.name===g.name);N&&N.updateVisibleProp(!1)}};St(async()=>{e.useGlobalLeaflet&&(Hn.L=Hn.L||await kt(()=>import("./maps-BFpqWvfo.js").then(y=>y.l),__vite__mapDeps([0,1])));const{map:g,CRS:N,Icon:S,latLngBounds:A,latLng:v,stamp:D}=e.useGlobalLeaflet?Hn.L:await kt(()=>import("./maps-BFpqWvfo.js").then(y=>y.e),__vite__mapDeps([0,1]));try{r.beforeMapMount&&await r.beforeMapMount()}catch(y){console.error(`The following error occurred running the provided beforeMapMount hook ${y.message}`)}await Bit(S);const P=typeof r.crs=="string"?N[r.crs]:r.crs;r.crs=P||N.EPSG3857;const C={addLayer(y){y.layerType!==void 0&&(a.layerControl===void 0?a.layersToAdd.push(y):a.layersInControl.find(z=>D(z.leafletObject)===D(y.leafletObject))||(a.layerControl.addLayer(y),a.layersInControl.push(y))),y.visible!==!1&&a.leafletRef.addLayer(y.leafletObject)},removeLayer(y){y.layerType!==void 0&&(a.layerControl===void 0?a.layersToAdd=a.layersToAdd.filter(z=>z.name!==y.name):(a.layerControl.removeLayer(y.leafletObject),a.layersInControl=a.layersInControl.filter(z=>D(z.leafletObject)!==D(y.leafletObject)))),a.leafletRef.removeLayer(y.leafletObject)},registerLayerControl(y){a.layerControl=y,a.layersToAdd.forEach(z=>{a.layerControl.addLayer(z)}),a.layersToAdd=[],c(y)},registerControl(y){a.leafletRef.addControl(y.leafletObject)},setZoom(y){const z=a.leafletRef.getZoom();y!==z&&a.leafletRef.setZoom(y,E.value)},setCrs(y){const z=a.leafletRef.getBounds();a.leafletRef.options.crs=y,a.leafletRef.fitBounds(z,{animate:!1,padding:[0,0]})},fitBounds(y){a.leafletRef.fitBounds(y,p.value)},setBounds(y){if(!y)return;const z=A(y);z.isValid()&&!(a.lastSetBounds||a.leafletRef.getBounds()).equals(z,0)&&(a.lastSetBounds=z,a.leafletRef.fitBounds(z))},setCenter(y){if(y==null)return;const z=v(y),$=a.lastSetCenter||a.leafletRef.getCenter();($.lat!==z.lat||$.lng!==z.lng)&&(a.lastSetCenter=z,a.leafletRef.panTo(z,E.value))}};Wi(u,C.addLayer),Wi(l,C.removeLayer),Wi(c,C.registerControl),Wi(f,C.registerLayerControl),a.leafletRef=Ca(g(n.value,r)),Pa(C,a.leafletRef,e),u0(a.leafletRef,T),u0(a.leafletRef,o),a.ready=!0,on(()=>t.emit("ready",a.leafletRef))}),zo(()=>{mg(T),a.leafletRef&&(a.leafletRef.off(),a.leafletRef.remove())});const O=w(()=>a.leafletRef),R=w(()=>a.ready);return{root:n,ready:R,leafletObject:O,attrs:i}},render({attrs:e}){return e.style||(e.style={}),e.style.width||(e.style.width="100%"),e.style.height||(e.style.height="100%"),Sn("div",{...e,ref:"root"},this.ready&&this.$slots.default?this.$slots.default():{})}}),sut=["Symbol(Comment)","Symbol(Text)"],rut=["LTooltip","LPopup"],Cg={...kr,draggable:{type:Boolean,default:void 0},icon:{type:[Object]},zIndexOffset:{type:Number},latLng:{type:[Object,Array],custom:!0,required:!0}},out=(e,t,n)=>{const{options:a,methods:s}=Zf(e,t,n),r=da(e,Cg,a),o={...s,setDraggable(i){t.value.dragging&&(i?t.value.dragging.enable():t.value.dragging.disable())},latLngSync(i){n.emit("update:latLng",i.latlng),n.emit("update:lat-lng",i.latlng)},setLatLng(i){if(i!=null&&t.value){const u=t.value.getLatLng();(!u||!u.equals(i))&&t.value.setLatLng(i)}}};return{options:r,methods:o}},iut=(e,t)=>{const n=t.slots.default&&t.slots.default();return n&&n.length&&n.some(uut)};function uut(e){return!(sut.includes(e.type.toString())||rut.includes(e.type.name))}const Dg=te({name:"LMarker",props:Cg,setup(e,t){const n=de(),a=de(!1),s=Nt(La),r=Wn(cs);rn(hg,()=>{var l;return!!((l=n.value)!=null&&l.getElement())}),rn(Sg,l=>{var c,f;const E=Ka((c=n.value)==null?void 0:c.getElement)&&((f=n.value)==null?void 0:f.getElement());E&&(E.innerHTML=l)}),rn(Ag,l=>{var c;return((c=n.value)==null?void 0:c.setIcon)&&n.value.setIcon(l)});const{options:o,methods:i}=out(e,n,t),u={moveHandler:bg(i.latLngSync)};return St(async()=>{const{marker:l,divIcon:c}=s?Hn.L:await kt(()=>import("./maps-BFpqWvfo.js").then(E=>E.e),__vite__mapDeps([0,1]));iut(o,t)&&(o.icon=c({className:""})),n.value=Ca(l(e.latLng,o));const{listeners:f}=zs(t.attrs);n.value.on(f),n.value.on("move",u.moveHandler),Pa(i,n.value,e),r({...e,...i,leafletObject:n.value}),a.value=!0,on(()=>t.emit("ready",n.value))}),zo(()=>mg(u)),{ready:a,leafletObject:n}},render(){return Jf(this.ready,this.$slots)}}),lut={...Og,smoothFactor:{type:Number},noClip:{type:Boolean,default:void 0},latLngs:{type:Array,required:!0,custom:!0}},E0={...lut},Pg={...ri,content:{type:String,default:null}};({...Pg});({...E0,latLngs:{...E0.latLngs}});const tp={...ep,tms:{type:Boolean,default:void 0},subdomains:{type:[String,Array],validator:e=>typeof e=="string"?!0:Array.isArray(e)?e.every(t=>typeof t=="string"):!1},detectRetina:{type:Boolean,default:void 0},url:{type:String,required:!0,custom:!0}},cut=(e,t,n)=>{const{options:a,methods:s}=vg(e,t,n),r=da(e,tp,a),o={...s};return{options:r,methods:o}},dut=te({props:tp,setup(e,t){const n=de(),a=Nt(La),s=Wn(cs),{options:r,methods:o}=cut(e,n,t);return St(async()=>{const{tileLayer:i}=a?Hn.L:await kt(()=>import("./maps-BFpqWvfo.js").then(l=>l.e),__vite__mapDeps([0,1]));n.value=Ca(i(e.url,r));const{listeners:u}=zs(t.attrs);n.value.on(u),Pa(o,n.value,e),s({...e,...o,leafletObject:n.value}),on(()=>t.emit("ready",n.value))}),{leafletObject:n}},render(){return null}});({...Pg});({...tp});const f0=te({__name:"CustomMarker",props:{markerCoordinates:{},isStart:{type:Boolean}},setup(e){const t=e,{isStart:n,markerCoordinates:a}=_e(t);return(s,r)=>m(a).latitude?(h(),Y(m(Dg),{key:0,"lat-lng":[m(a).latitude,m(a).longitude]},{default:le(()=>[W(m(tut),{"icon-url":`/img/workouts/${m(n)?"start":"finish"}.svg`,iconSize:[15,15]},null,8,["icon-url"])]),_:1},8,["lat-lng"])):M("",!0)}}),Eut=e=>(ot("data-v-02ef686a"),e=e(),it(),e),fut={id:"workout-map"},put={key:0,class:"leaflet-container"},mut={key:1},_ut=Eut(()=>d("i",{class:"fa fa-refresh","aria-hidden":"true"},null,-1)),Tut={key:1,class:"no-map"},hut=te({__name:"index",props:{workoutData:{},markerCoordinates:{default:()=>({})}},setup(e){const t=e,n=$e(),{workoutData:a,markerCoordinates:s}=_e(t),r=de(null),o=w(()=>R()),i=w(()=>n.getters[j.GETTERS.APP_CONFIG]),u=w(()=>T(o)),l=w(()=>t.workoutData&&t.workoutData.gpx?p(t.workoutData.gpx):{}),c=w(()=>t.workoutData&&t.workoutData.chartData.length>0?{latitude:t.workoutData.chartData[0].latitude,longitude:t.workoutData.chartData[0].longitude}:{}),f=w(()=>t.workoutData&&t.workoutData.chartData.length>0?{latitude:t.workoutData.chartData[t.workoutData.chartData.length-1].latitude,longitude:t.workoutData.chartData[t.workoutData.chartData.length-1].longitude}:{}),E=de(!1);function p(S){if(!S||S!=="")try{return{jsonData:zit(new DOMParser().parseFromString(S,"text/xml"))}}catch{return console.error("Invalid gpx content"),{}}return{}}function T(S){return[(S.value[0][0]+S.value[1][0])/2,(S.value[0][1]+S.value[1][1])/2]}function O(S){var A,v;(A=r.value)!=null&&A.leafletObject&&((v=r.value)==null||v.leafletObject.fitBounds(S))}function R(){return t.workoutData?[[t.workoutData.workout.bounds[0],t.workoutData.workout.bounds[1]],[t.workoutData.workout.bounds[2],t.workoutData.workout.bounds[3]]]:[]}function g(){var S;(S=r.value)==null||S.leafletObject.fitBounds(R())}function N(){E.value=!E.value,E.value||setTimeout(()=>{g()},100)}return(S,A)=>{const v=oe("VFullscreen");return h(),I("div",fut,[m(a).loading?(h(),I("div",put)):(h(),I("div",mut,[m(a).workout.with_gpx?(h(),Y(v,{key:0,modelValue:E.value,"onUpdate:modelValue":A[1]||(A[1]=D=>E.value=D)},{default:le(()=>[d("div",{class:pe(["leaflet-container",{"fullscreen-map":E.value}])},[l.value.jsonData&&u.value&&o.value.length===2?(h(),Y(m(aut),{key:0,zoom:13,maxZoom:19,center:u.value,bounds:o.value,zoomAnimation:!1,ref_key:"workoutMap",ref:r,onReady:A[0]||(A[0]=D=>O(o.value)),"use-global-leaflet":!1,class:"map","aria-label":S.$t("workouts.WORKOUT_MAP")},{default:le(()=>[W(m(Qit)),W(m(l0),{position:"topleft",class:"map-control",tabindex:"0",role:"button","aria-label":S.$t("workouts.RESET_ZOOM"),onClick:g},{default:le(()=>[_ut]),_:1},8,["aria-label"]),W(m(l0),{position:"topleft",class:"map-control",tabindex:"0",role:"button","aria-label":S.$t(`workouts.${E.value?"EXIT":"VIEW"}_FULLSCREEN`),onClick:N},{default:le(()=>[d("i",{class:pe(`fa fa-${E.value?"compress":"arrows-alt"}`),"aria-hidden":"true"},null,2)]),_:1},8,["aria-label"]),W(m(dut),{url:`${m(Vo)()}workouts/map_tile/{s}/{z}/{x}/{y}.png`,attribution:i.value.map_attribution,bounds:o.value},null,8,["url","attribution","bounds"]),W(m(Jit),{geojson:l.value.jsonData},null,8,["geojson"]),m(s).latitude?(h(),Y(m(Dg),{key:0,"lat-lng":[m(s).latitude,m(s).longitude]},null,8,["lat-lng"])):M("",!0),W(m(nut),{name:S.$t("workouts.START_AND_FINISH"),"layer-type":"overlay"},{default:le(()=>[c.value.latitude?(h(),Y(f0,{key:0,markerCoordinates:c.value,isStart:!0},null,8,["markerCoordinates"])):M("",!0),f.value.latitude?(h(),Y(f0,{key:1,markerCoordinates:f.value,isStart:!1},null,8,["markerCoordinates"])):M("",!0)]),_:1},8,["name"])]),_:1},8,["center","bounds","aria-label"])):M("",!0)],2)]),_:1},8,["modelValue"])):(h(),I("div",Tut,_(S.$t("workouts.NO_MAP")),1))]))])}}}),Sut=ie(hut,[["__scopeId","data-v-02ef686a"]]),Aut={class:"workout-detail"},Out={class:"workout-map-data"},gut={key:0,class:"workout-equipments"},Iut=te({__name:"index",props:{authUser:{},displaySegment:{type:Boolean},sports:{},workoutData:{},markerCoordinates:{default:()=>({})}},setup(e){const t=e,n=Lt(),a=$e(),{authUser:s,markerCoordinates:r,workoutData:o}=_e(t),i=w(()=>t.workoutData.workout),u=de(n.params.workoutId?+n.params.segmentId:null),l=w(()=>i.value.segments.length>0&&u.value?i.value.segments[+u.value-1]:null),c=de(!1),f=w(()=>t.sports?t.sports.find(S=>S.id===t.workoutData.workout.sport_id):{}),E=w(()=>T(i.value,l.value));function p(S,A,v){const D=A&&v&&v!==1?`/workouts/${S.id}/segment/${v-1}`:!A&&S.previous_workout?`/workouts/${S.previous_workout}`:null,P=A&&v&&vn.params.segmentId,async S=>{u.value=S?+S:null,N()}),We(()=>n.params.workoutId,async S=>{S&&(c.value=!1,N())}),(S,A)=>{const v=oe("Modal"),D=oe("Card");return h(),I("div",Aut,[c.value?(h(),Y(v,{key:0,title:S.$t("common.CONFIRMATION"),message:S.$t("workouts.WORKOUT_DELETION_CONFIRMATION"),onConfirmAction:A[0]||(A[0]=P=>g(E.value.workoutId)),onCancelAction:R,onKeydown:Je(R,["esc"])},null,8,["title","message"])):M("",!0),W(D,null,{title:le(()=>[f.value?(h(),Y(Dot,{key:0,sport:f.value,workoutObject:E.value,onDisplayModal:A[1]||(A[1]=P=>O(!0))},null,8,["sport","workoutObject"])):M("",!0)]),content:le(()=>[d("div",Out,[W(Sut,{workoutData:m(o),markerCoordinates:m(r)},null,8,["workoutData","markerCoordinates"]),W(Pit,{workoutObject:E.value,useImperialUnits:m(s).imperial_units,displayHARecord:m(s).display_ascent},null,8,["workoutObject","useImperialUnits","displayHARecord"])]),E.value.equipments?(h(),I("div",gut,[(h(!0),I(me,null,Pe(E.value.equipments,P=>(h(),Y(VO,{equipment:P,"workout-id":E.value.workoutId,key:P.label},null,8,["equipment","workout-id"]))),128))])):M("",!0)]),_:1})])}}}),Rut=ie(Iut,[["__scopeId","data-v-18a9d144"]]),Nut=e=>{const t=document.getElementById(e);if(t){let n=t.querySelector("ul");return n||(n=document.createElement("ul"),t.appendChild(n)),n}throw new Error("No legend container")},vut={id:"htmlLegend",afterUpdate(e,t,n){var r,o,i,u,l,c;const a=Nut(n.containerID);for(;a.firstChild;)a.firstChild.remove();((i=(o=(r=e.options.plugins)==null?void 0:r.legend)==null?void 0:o.labels)!=null&&i.generateLabels?(c=(l=(u=e.options.plugins)==null?void 0:u.legend)==null?void 0:l.labels)==null?void 0:c.generateLabels(e):[]).forEach(f=>{var g,N,S;if(!((S=(N=(g=e.config.options)==null?void 0:g.scales)==null?void 0:N.yElevation)!=null&&S.display)&&f.datasetIndex===1)return;const E=document.createElement("li");E.onclick=A=>{A.preventDefault(),f.datasetIndex!==void 0&&(e.setDatasetVisibility(f.datasetIndex,!e.isDatasetVisible(f.datasetIndex)),e.update())};const p=document.createElement("input");p&&(p.type="checkbox",p.id=f.text,p.checked=!f.hidden);const T=document.createElement("label");T.htmlFor=p.id;const O=document.createTextNode(f.text);T.appendChild(O);const R=document.createElement("span");R&&(R.style.background=String(f.fillStyle),R.style.borderColor=String(f.strokeStyle)),T.appendChild(R),E.appendChild(p),E.appendChild(T),a.appendChild(E)})}},but=e=>(ot("data-v-727b605c"),e=e(),it(),e),Cut={id:"workout-chart"},Dut={class:"chart-radio"},Put=["checked"],Lut=["checked"],yut=but(()=>d("div",{id:"chart-legend"},null,-1)),$ut={class:"line-chart"},Uut={class:"chart-info"},kut={class:"no-data-cleaning"},wut={key:0,class:"elevation-start"},Mut=["checked"],Wut=te({__name:"index",props:{authUser:{},workoutData:{}},emits:["getCoordinates"],setup(e,{emit:t}){const n=e,a=t,s=jo(),{t:r}=yt(),{authUser:o,workoutData:i}=_e(n),u=w(()=>s.getters[j.GETTERS.DARK_MODE]),l=w(()=>Dl(u.value)),c=de(!0),f=de(o.value.start_elevation_at_zero),E=w(()=>eet(i.value.chartData,r,o.value.imperial_units,l.value)),p=w(()=>E.value&&E.value.datasets.elevation.data.length>0),T=z("km"),O=z("m"),R=w(()=>({labels:c.value?E.value.distance_labels:E.value.duration_labels,datasets:JSON.parse(JSON.stringify([E.value.datasets.speed,E.value.datasets.elevation]))})),g=w(()=>E.value.coordinates),N=w(()=>({color:l.value?Xa.darkMode.line:Xa.ligthMode.line})),S=w(()=>({color:l.value?Xa.darkMode.text:Xa.ligthMode.text})),A=w(()=>({responsive:!0,maintainAspectRatio:!1,animation:!1,layout:{padding:{top:22}},scales:{x:{grid:{drawOnChartArea:!1,...N.value},border:{...N.value},ticks:{count:10,callback:function($){return c.value?Number($).toFixed(2):P($)},...S.value},type:"linear",bounds:"data",title:{display:!0,text:c.value?r("workouts.DISTANCE")+` (${T})`:r("workouts.DURATION"),...S.value}},ySpeed:{grid:{drawOnChartArea:!1,...N.value},border:{...N.value},position:"left",title:{display:!0,text:r("workouts.SPEED")+` (${T}/h)`,...S.value},ticks:{...S.value}},yElevation:{beginAtZero:f.value,display:p.value,grid:{drawOnChartArea:!1,...N.value},border:{...N.value},position:"right",title:{display:!0,text:r("workouts.ELEVATION")+` (${O})`,...S.value},ticks:{...S.value}}},elements:{point:{pointStyle:"circle",pointRadius:0}},plugins:{datalabels:{display:!1},tooltip:{interaction:{intersect:!1,mode:"index"},callbacks:{label:function($){const F=` ${$.dataset.label}: ${$.formattedValue}`;return $.dataset.yAxisID==="yElevation"?F+` ${O}`:F+` ${T}/h`},title:function($){return $.length>0&&C(g.value[$[0].dataIndex]),$.length===0?"":c.value?`${r("workouts.DISTANCE")}: ${$[0].label} ${T}`:`${r("workouts.DURATION")}: ${P($[0].label.replace(",",""))}`}}},legend:{display:!1},htmlLegend:{containerID:"chart-legend",displayElevation:p.value}}})),v=[vut];function D(){c.value=!c.value}function P($){return new Date(+$*1e3).toISOString().substr(11,8)}function C($){a("getCoordinates",$)}function y(){C({latitude:null,longitude:null})}function z($){return n.authUser.imperial_units?_n[$].defaultTarget:$}return($,F)=>{const X=oe("Card");return h(),I("div",Cut,[W(X,null,{title:le(()=>[V(_($.$t("workouts.ANALYSIS")),1)]),content:le(()=>[d("div",Dut,[d("label",null,[d("input",{type:"radio",name:"distance",checked:c.value,onClick:D},null,8,Put),V(" "+_($.$t("workouts.DISTANCE")),1)]),d("label",null,[d("input",{type:"radio",name:"duration",checked:!c.value,onClick:D},null,8,Lut),V(" "+_($.$t("workouts.DURATION")),1)])]),yut,d("div",$ut,[W(m(att),{data:R.value,options:A.value,plugins:v,onMouseleave:y,"aria-label":$.$t("workouts.WORKOUT_CHART")},null,8,["data","options","aria-label"])]),d("div",Uut,[d("div",kut,_($.$t("workouts.NO_DATA_CLEANING")),1),p.value?(h(),I("div",wut,[d("label",null,[d("input",{type:"checkbox",checked:f.value,onClick:F[0]||(F[0]=re=>f.value=!f.value)},null,8,Mut),V(" "+_($.$t("workouts.START_ELEVATION_AT_ZERO")),1)])])):M("",!0)])]),_:1})])}}}),Fut=ie(Wut,[["__scopeId","data-v-727b605c"]]),zut={id:"workout-note"},xut=["innerHTML"],But=te({__name:"WorkoutNotes",props:{notes:{default:()=>""}},setup(e){const t=e,{notes:n}=_e(t);return(a,s)=>{const r=oe("Card");return h(),I("div",zut,[W(r,null,{title:le(()=>[V(_(a.$t("workouts.NOTES")),1)]),content:le(()=>[d("span",{innerHTML:m(n)&&m(n)!==""?m(ko)(m(n)):a.$t("workouts.NO_NOTES")},null,8,xut)]),_:1})])}}}),Gut=ie(But,[["__scopeId","data-v-f3e81eff"]]),Hut={id:"workout-segments"},Vut=te({__name:"WorkoutSegments",props:{segments:{},useImperialUnits:{type:Boolean}},setup(e){const t=e,{segments:n,useImperialUnits:a}=_e(t);return(s,r)=>{const o=oe("router-link"),i=oe("Distance"),u=oe("Card");return h(),I("div",Hut,[W(u,null,{title:le(()=>[V(_(s.$t("workouts.SEGMENT",2)),1)]),content:le(()=>[d("ul",null,[(h(!0),I(me,null,Pe(m(n),(l,c)=>(h(),I("li",{key:l.segment_id},[W(o,{to:{name:"WorkoutSegment",params:{workoutId:l.workout_id,segmentId:c+1}}},{default:le(()=>[V(_(s.$t("workouts.SEGMENT",1))+" "+_(c+1),1)]),_:2},1032,["to"]),V(" ("+_(s.$t("workouts.DISTANCE"))+": ",1),W(i,{distance:l.distance,unitFrom:"km",useImperialUnits:m(a)},null,8,["distance","useImperialUnits"]),V(", "+_(s.$t("workouts.DURATION"))+": "+_(l.duration)+") ",1)]))),128))])]),_:1})])}}}),Kut=ie(Vut,[["__scopeId","data-v-15725c61"]]),jut=e=>(ot("data-v-eac6aa4b"),e=e(),it(),e),qut={id:"workout",class:"view"},Yut={class:"container"},Xut={key:0,class:"workout-container"},Qut={key:0},Zut=jut(()=>d("div",{id:"bottom"},null,-1)),Jut={key:1},elt=te({__name:"Workout",props:{displaySegment:{type:Boolean}},setup(e){const t=e,n=Lt(),a=$e(),{displaySegment:s}=_e(t),r=w(()=>a.getters[Re.GETTERS.WORKOUT_DATA]),o=w(()=>a.getters[Q.GETTERS.AUTH_USER_PROFILE]),i=w(()=>a.getters[Pt.GETTERS.SPORTS]),u=de({latitude:null,longitude:null});ft(()=>{const c={workoutId:n.params.workoutId};t.displaySegment&&(c.segmentId=n.params.segmentId),a.dispatch(Re.ACTIONS.GET_WORKOUT_DATA,c)}),pt(()=>{a.commit(Re.MUTATIONS.EMPTY_WORKOUT)});function l(c){u.value={latitude:c.latitude,longitude:c.longitude}}return We(()=>n.params.workoutId,async c=>{c&&a.dispatch(Re.ACTIONS.GET_WORKOUT_DATA,{workoutId:c})}),We(()=>n.params.segmentId,async c=>{if(n.params.workoutId){const f={workoutId:n.params.workoutId};c&&(f.segmentId=c),a.dispatch(Re.ACTIONS.GET_WORKOUT_DATA,f)}}),(c,f)=>(h(),I("div",qut,[d("div",Yut,[i.value.length>0?(h(),I("div",Xut,[r.value.workout.id?(h(),I("div",Qut,[W(Rut,{workoutData:r.value,sports:i.value,authUser:o.value,markerCoordinates:u.value,displaySegment:m(s)},null,8,["workoutData","sports","authUser","markerCoordinates","displaySegment"]),r.value.workout.with_gpx&&r.value.chartData.length>0?(h(),Y(Fut,{key:0,workoutData:r.value,authUser:o.value,displaySegment:m(s),onGetCoordinates:l},null,8,["workoutData","authUser","displaySegment"])):M("",!0),!m(s)&&r.value.workout.segments.length>1?(h(),Y(Kut,{key:1,segments:r.value.workout.segments,useImperialUnits:o.value.imperial_units},null,8,["segments","useImperialUnits"])):M("",!0),m(s)?M("",!0):(h(),Y(Gut,{key:2,notes:r.value.workout.notes},null,8,["notes"])),Zut])):(h(),I("div",Jut,[r.value.loading?M("",!0):(h(),Y(Kf,{key:0,target:"WORKOUT"}))]))])):M("",!0)])]))}}),p0=ie(elt,[["__scopeId","data-v-eac6aa4b"]]),np=e=>(ot("data-v-2ab387eb"),e=e(),it(),e),tlt={class:"workouts-filters"},nlt={class:"box"},alt={class:"form-all-items"},slt={class:"form-items-group"},rlt={class:"form-item"},olt={for:"from"},ilt=["value"],ult={class:"form-item"},llt={for:"to"},clt=["value"],dlt={class:"form-item"},Elt={for:"sport_id"},flt=["value"],plt=np(()=>d("option",{value:""},null,-1)),mlt=["value"],_lt={class:"form-item form-item-equipment"},Tlt=["value"],hlt=np(()=>d("option",{value:""},null,-1)),Slt={key:0,value:"",disabled:"",selected:""},Alt={value:"none"},Olt=np(()=>d("option",{disabled:""},"---",-1)),glt=["label"],Ilt=["value"],Rlt={class:"form-items-group"},Nlt={class:"form-item form-item-text"},vlt={for:"title"},blt={class:"form-inputs-group"},Clt=["value"],Dlt={class:"form-item form-item-text"},Plt={for:"notes"},Llt={class:"form-inputs-group"},ylt=["value"],$lt={class:"form-items-group"},Ult={class:"form-item"},klt={class:"form-inputs-group"},wlt=["value"],Mlt=["value"],Wlt={class:"form-item"},Flt={class:"form-inputs-group"},zlt=["value"],xlt=["value"],Blt={class:"form-items-group"},Glt={class:"form-item"},Hlt={class:"form-inputs-group"},Vlt=["value"],Klt=["value"],jlt={class:"form-item"},qlt={class:"form-inputs-group"},Ylt=["value"],Xlt=["value"],Qlt={class:"form-button"},Zlt=te({__name:"WorkoutsFilters",props:{authUser:{},sports:{}},emits:["filter"],setup(e,{emit:t}){const n=e,a=t,{t:s}=yt(),r=jo(),o=Lt(),i=ca(),{authUser:u}=_e(n),l=u.value.imperial_units?_n.km.defaultTarget:"km",c=w(()=>Fn(n.sports,s)),f=w(()=>R(r.getters[Me.GETTERS.EQUIPMENTS]));let E=Object.assign({},o.query);St(()=>{const g=document.getElementById("from");g&&g.focus()});function p(g){const N=g.target.name,S=g.target.value;S===""?delete E[N]:E[N]=S}function T(){a("filter"),"page"in E&&(E.page="1"),i.push({path:"/workouts",query:E})}function O(){a("filter"),i.push({path:"/workouts",query:{}})}function R(g){const N={};return g.filter(S=>S.workouts_count>0).map(S=>{const A=s(`equipment_types.${S.equipment_type.label}.LABEL`);A in N?N[A].push(S):N[A]=[S]}),N}return We(()=>o.query,g=>{E=Object.assign({},g)}),(g,N)=>(h(),I("div",tlt,[d("div",nlt,[d("form",{onSubmit:N[0]||(N[0]=be(()=>{},["prevent"])),class:"form"},[d("div",alt,[d("div",slt,[d("div",rlt,[d("label",olt,_(g.$t("workouts.FROM"))+": ",1),d("input",{id:"from",name:"from",type:"date",value:g.$route.query.from,onChange:p},null,40,ilt)]),d("div",ult,[d("label",llt,_(g.$t("workouts.TO"))+": ",1),d("input",{id:"to",name:"to",type:"date",value:g.$route.query.to,onChange:p},null,40,clt)]),d("div",dlt,[d("label",Elt,_(g.$t("workouts.SPORT",1))+":",1),d("select",{id:"sport_id",name:"sport_id",value:g.$route.query.sport_id,onChange:p,onKeyup:Je(T,["enter"])},[plt,(h(!0),I(me,null,Pe(c.value.filter(S=>m(u).sports_list.includes(S.id)),S=>(h(),I("option",{value:S.id,key:S.id},_(S.translatedLabel),9,mlt))),128))],40,flt)]),d("div",_lt,[d("label",null,_(g.$t("equipments.EQUIPMENT",1))+":",1),d("select",{name:"equipment_id",value:g.$route.query.equipment_id,onChange:p,onKeyup:Je(T,["enter"])},[hlt,Object.keys(f.value).length==0?(h(),I("option",Slt,_(g.$t("equipments.NO_EQUIPMENTS")),1)):M("",!0),Object.keys(f.value).length>0?(h(),I(me,{key:1},[d("option",Alt,_(g.$t("equipments.WITHOUT_EQUIPMENTS")),1),Olt],64)):M("",!0),(h(!0),I(me,null,Pe(Object.keys(f.value).sort(),S=>(h(),I("optgroup",{label:S,key:S},[(h(!0),I(me,null,Pe(f.value[S].sort(m(Uf)),A=>(h(),I("option",{value:A.id,key:A.id},_(A.label),9,Ilt))),128))],8,glt))),128))],40,Tlt)])]),d("div",Rlt,[d("div",Nlt,[d("label",vlt,_(g.$t("workouts.TITLE",1))+":",1),d("div",blt,[d("input",{id:"title",class:"text",name:"title",value:g.$route.query.title,onChange:p,placeholder:"",type:"text",onKeyup:Je(T,["enter"])},null,40,Clt)])]),d("div",Dlt,[d("label",Plt,_(g.$t("workouts.NOTES"))+":",1),d("div",Llt,[d("input",{id:"notes",class:"text",name:"notes",value:g.$route.query.notes,onChange:p,placeholder:"",type:"text",onKeyup:Je(T,["enter"])},null,40,ylt)])])]),d("div",$lt,[d("div",Ult,[d("label",null,_(g.$t("workouts.DISTANCE"))+" ("+_(m(l))+"): ",1),d("div",klt,[d("input",{name:"distance_from",type:"number",min:"0",step:"0.1",value:g.$route.query.distance_from,onChange:p,onKeyup:Je(T,["enter"])},null,40,wlt),d("span",null,_(g.$t("workouts.TO")),1),d("input",{name:"distance_to",type:"number",min:"0",step:"0.1",value:g.$route.query.distance_to,onChange:p,onKeyup:Je(T,["enter"])},null,40,Mlt)])]),d("div",Wlt,[d("label",null,_(g.$t("workouts.DURATION"))+": ",1),d("div",Flt,[d("input",{name:"duration_from",value:g.$route.query.duration_from,onChange:p,pattern:"^([0-9]*[0-9]):([0-5][0-9])$",placeholder:"hh:mm",type:"text",onKeyup:Je(T,["enter"])},null,40,zlt),d("span",null,_(g.$t("workouts.TO")),1),d("input",{name:"duration_to",value:g.$route.query.duration_to,onChange:p,pattern:"^([0-9]*[0-9]):([0-5][0-9])$",placeholder:"hh:mm",type:"text",onKeyup:Je(T,["enter"])},null,40,xlt)])])]),d("div",Blt,[d("div",Glt,[d("label",null,_(g.$t("workouts.AVE_SPEED"))+" ("+_(m(l))+"/h): ",1),d("div",Hlt,[d("input",{min:"0",name:"ave_speed_from",value:g.$route.query.ave_speed_from,onChange:p,step:"0.1",type:"number",onKeyup:Je(T,["enter"])},null,40,Vlt),d("span",null,_(g.$t("workouts.TO")),1),d("input",{min:"0",name:"ave_speed_to",value:g.$route.query.ave_speed_to,onChange:p,step:"0.1",type:"number",onKeyup:Je(T,["enter"])},null,40,Klt)])]),d("div",jlt,[d("label",null,_(g.$t("workouts.MAX_SPEED"))+" ("+_(m(l))+"/h): ",1),d("div",qlt,[d("input",{min:"0",name:"max_speed_from",value:g.$route.query.max_speed_from,onChange:p,step:"0.1",type:"number",onKeyup:Je(T,["enter"])},null,40,Ylt),d("span",null,_(g.$t("workouts.TO")),1),d("input",{min:"0",name:"max_speed_to",value:g.$route.query.max_speed_to,onChange:p,step:"0.1",type:"number",onKeyup:Je(T,["enter"])},null,40,Xlt)])])])]),d("div",Qlt,[d("button",{type:"submit",class:"confirm",onClick:T},_(g.$t("buttons.FILTER")),1),d("button",{class:"confirm",onClick:O},_(g.$t("buttons.CLEAR_FILTER")),1)])],32)])]))}}),Jlt=ie(Zlt,[["__scopeId","data-v-2ab387eb"]]),Lg=e=>(ot("data-v-f1b11684"),e=e(),it(),e),ect={class:"workouts-list"},tct={class:"total"},nct={class:"total-label"},act={key:0},sct={key:0,class:"workouts-table responsive-table"},rct=Lg(()=>d("th",{class:"sport-col"},null,-1)),oct={class:"sport-col"},ict={class:"cell-heading"},uct=["onMouseover"],lct={class:"cell-heading"},cct={key:0,class:"fa fa-map-o","aria-hidden":"true"},dct={class:"title"},Ect={class:"workout-date"},fct={class:"cell-heading"},pct={class:"text-right"},mct={class:"cell-heading"},_ct={class:"text-right"},Tct={class:"cell-heading"},hct={class:"text-right"},Sct={class:"cell-heading"},Act={class:"text-right"},Oct={class:"cell-heading"},gct={class:"text-right"},Ict={class:"cell-heading"},Rct={class:"text-right"},Nct={class:"cell-heading"},vct=Lg(()=>d("div",{id:"bottom"},null,-1)),bct=te({__name:"WorkoutsList",props:{user:{},sports:{}},setup(e){const t=e,n=$e(),a=Lt(),s=ca(),{user:r,sports:o}=_e(t),i=["ave_speed","distance","duration","workout_date"],u=w(()=>n.getters[Re.GETTERS.USER_WORKOUTS]),l=w(()=>n.getters[Re.GETTERS.WORKOUTS_PAGINATION]),c=w(()=>n.getters[j.GETTERS.LANGUAGE]);let f=O(a.query);const E=de(null);ft(()=>{p(f),n.dispatch(Me.ACTIONS.GET_EQUIPMENTS)});function p(N){n.dispatch(Re.ACTIONS.GET_USER_WORKOUTS,r.value.imperial_units?R(N):N)}function T(N,S){const A=Object.assign({},a.query);A[N]=S,N==="per_page"&&(A.page="1"),f=O(A),s.push({path:"/workouts",query:f})}function O(N){const S=oE(N,i,Mo.order_by,{defaultSort:Mo.order});return Object.keys(N).filter(A=>yBe.includes(A)).map(A=>{typeof N[A]=="string"&&(S[A]=N[A])}),S}function R(N){const S={...N};return Object.entries(S).map(A=>{A[0].match("speed|distance")&&A[1]&&(S[A[0]]=Bt(+A[1],"mi","km"))}),S}function g(N){E.value=N}return We(()=>a.query,async N=>{f=O(N),p(f)}),(N,S)=>{const A=oe("SportImage"),v=oe("router-link"),D=oe("Distance");return h(),I("div",ect,[d("div",{class:pe(["box",{"empty-table":u.value.length===0}])},[d("div",tct,[d("span",nct,_(N.$t("common.TOTAL").toLowerCase())+": ",1),l.value.total?(h(),I("span",act,_(l.value.total)+" "+_(N.$t("workouts.WORKOUT",l.value.total)),1)):M("",!0)]),W(_O,{sort:m(zf),order_by:i,query:m(f),message:"workouts",onUpdateSelect:T},null,8,["sort","query"]),u.value.length>0?(h(),I("div",sct,[W(il,{class:"top-pagination",pagination:l.value,path:"/workouts",query:m(f)},null,8,["pagination","query"]),d("table",null,[d("thead",{class:pe({smaller:c.value==="de"})},[d("tr",null,[rct,d("th",null,_(He(N.$t("workouts.WORKOUT",1))),1),d("th",null,_(He(N.$t("workouts.DATE"))),1),d("th",null,_(He(N.$t("workouts.DISTANCE"))),1),d("th",null,_(He(N.$t("workouts.DURATION"))),1),d("th",null,_(He(N.$t("workouts.AVE_SPEED"))),1),d("th",null,_(He(N.$t("workouts.MAX_SPEED"))),1),d("th",null,_(He(N.$t("workouts.ASCENT"))),1),d("th",null,_(He(N.$t("workouts.DESCENT"))),1)])],2),d("tbody",null,[(h(!0),I(me,null,Pe(u.value,P=>(h(),I("tr",{key:P.id},[d("td",oct,[d("span",ict,_(N.$t("workouts.SPORT",1)),1),m(o).length>0?(h(),Y(A,{key:0,title:m(o).filter(C=>C.id===P.sport_id)[0].translatedLabel,"sport-label":m(Mf)(P,m(o)),color:m(Wf)(P,m(o))},null,8,["title","sport-label","color"])):M("",!0)]),d("td",{class:"workout-title",onMouseover:C=>g(P.id),onMouseleave:S[0]||(S[0]=C=>g(null))},[d("span",lct,_(He(N.$t("workouts.WORKOUT",1))),1),W(v,{class:"nav-item",to:{name:"Workout",params:{workoutId:P.id}}},{default:le(()=>[P.with_gpx?(h(),I("i",cct)):M("",!0),d("span",dct,_(P.title),1)]),_:2},1032,["to"]),P.with_gpx&&E.value===P.id?(h(),Y(qO,{key:0,workout:P,"display-hover":!0},null,8,["workout"])):M("",!0)],40,uct),d("td",Ect,[d("span",fct,_(N.$t("workouts.DATE")),1),d("time",null,_(m(zn)(P.workout_date,m(r).timezone,m(r).date_format)),1)]),d("td",pct,[d("span",mct,_(N.$t("workouts.DISTANCE")),1),P.distance!==null?(h(),Y(D,{key:0,distance:P.distance,unitFrom:"km",useImperialUnits:m(r).imperial_units},null,8,["distance","useImperialUnits"])):M("",!0)]),d("td",_ct,[d("span",Tct,_(N.$t("workouts.DURATION")),1),V(" "+_(P.moving),1)]),d("td",hct,[d("span",Sct,_(N.$t("workouts.AVE_SPEED")),1),P.ave_speed!==null?(h(),Y(D,{key:0,distance:P.ave_speed,unitFrom:"km",speed:!0,useImperialUnits:m(r).imperial_units},null,8,["distance","useImperialUnits"])):M("",!0)]),d("td",Act,[d("span",Oct,_(N.$t("workouts.MAX_SPEED")),1),P.max_speed!==null?(h(),Y(D,{key:0,distance:P.max_speed,unitFrom:"km",speed:!0,useImperialUnits:m(r).imperial_units},null,8,["distance","useImperialUnits"])):M("",!0)]),d("td",gct,[d("span",Ict,_(N.$t("workouts.ASCENT")),1),P.ascent!==null?(h(),Y(D,{key:0,distance:P.ascent,unitFrom:"m",useImperialUnits:m(r).imperial_units},null,8,["distance","useImperialUnits"])):M("",!0)]),d("td",Rct,[d("span",Nct,_(N.$t("workouts.DESCENT")),1),P.descent!==null?(h(),Y(D,{key:0,distance:P.descent,unitFrom:"m",useImperialUnits:m(r).imperial_units},null,8,["distance","useImperialUnits"])):M("",!0)])]))),128))])]),W(il,{pagination:l.value,path:"/workouts",query:m(f)},null,8,["pagination","query"])])):M("",!0)],2),u.value.length===0?(h(),Y(qf,{key:0})):M("",!0),vct])}}}),Cct=ie(bct,[["__scopeId","data-v-f1b11684"]]),Dct={key:0,id:"workouts",class:"view"},Pct={class:"container workouts-container"},Lct={class:"display-filters"},yct={class:"list-container"},$ct=te({__name:"WorkoutsView",setup(e){const{t}=yt(),n=$e(),a=w(()=>n.getters[Q.GETTERS.AUTH_USER_PROFILE]),s=w(()=>n.getters[Pt.GETTERS.SPORTS]),r=w(()=>Fn(s.value,t)),o=de(!0);function i(){o.value=!o.value}return(u,l)=>a.value.username?(h(),I("div",Dct,[d("div",Pct,[d("div",{class:pe(["filters-container",{hidden:o.value}])},[W(Jlt,{sports:r.value,authUser:a.value,onFilter:i},null,8,["sports","authUser"])],2),d("div",Lct,[d("div",{onClick:i},[d("i",{class:pe(`fa fa-caret-${o.value?"down":"up"}`),"aria-hidden":"true"},null,2),d("span",null,_(u.$t(`workouts.${o.value?"DISPLAY":"HIDE"}_FILTERS`)),1)])]),d("div",yct,[W(Cct,{user:a.value,sports:r.value},null,8,["user","sports"])])])])):M("",!0)}}),Uct=ie($ct,[["__scopeId","data-v-3fa59b88"]]),{t:m0}=Lr.global,_0=e=>{const t=/(\/profile)(\/edit)*(\/*)/,n=e.replace(t,"").toUpperCase();return n===""?"PROFILE":n.split("/")[0].toUpperCase()},kct=[{path:"/",name:"Dashboard",component:Nnt,meta:{title:"dashboard.DASHBOARD"}},{path:"/login",name:"Login",component:s0,props:{action:"login"},meta:{title:"user.LOGIN",withoutAuth:!0}},{path:"/register",name:"Register",component:s0,props:{action:"register"},meta:{title:"user.REGISTER",withoutAuth:!0}},{path:"/account-confirmation",name:"AccountConfirmation",component:Ost,meta:{title:"user.ACCOUNT_CONFIRMATION",withoutAuth:!0}},{path:"/account-confirmation/resend",name:"AccountConfirmationResend",component:a0,props:{action:"account-confirmation-resend"},meta:{title:"buttons.ACCOUNT-CONFIRMATION-RESEND",withoutAuth:!0}},{path:"/account-confirmation/email-sent",name:"AccountConfirmationEmailSend",component:a0,props:{action:"email-sent"},meta:{title:"buttons.ACCOUNT-CONFIRMATION-RESEND",withoutAuth:!0}},{path:"/password-reset/sent",name:"PasswordEmailSent",component:wi,props:{action:"request-sent"},meta:{title:"user.PASSWORD_RESET",withoutAuth:!0}},{path:"/password-reset/request",name:"PasswordResetRequest",component:wi,props:{action:"reset-request"},meta:{title:"user.PASSWORD_RESET",withoutAuth:!0}},{path:"/password-reset/password-updated",name:"PasswordUpdated",component:wi,props:{action:"password-updated"},meta:{title:"user.PASSWORD_RESET",withoutAuth:!0}},{path:"/password-reset",name:"PasswordReset",component:wi,props:{action:"reset"},meta:{title:"user.PASSWORD_RESET",withoutAuth:!0}},{path:"/email-update",name:"EmailUpdate",component:Nst,meta:{title:"user.EMAIL_UPDATE",withoutChecks:!0}},{path:"/profile",name:"Profile",component:Zst,children:[{path:"",name:"UserProfile",component:rHe,props:e=>({tab:_0(e.path)}),children:[{path:"",name:"UserInfos",component:vO,meta:{title:"user.PROFILE.TABS.PROFILE"}},{path:"preferences",name:"UserPreferences",component:bHe,meta:{title:"user.PROFILE.TABS.PREFERENCES"}},{path:"sports",name:"UserSports",component:jT,props:{isEdition:!1},meta:{title:"user.PROFILE.TABS.SPORTS"},children:[{path:"",name:"UserSportPreferences",component:qT,meta:{title:"user.PROFILE.TABS.SPORTS"}},{path:":id",name:"UserSport",component:KQe,meta:{title:"user.PROFILE.TABS.SPORTS"}}]},{path:"apps",name:"UserApps",component:MYe,children:[{path:"",name:"UserAppsList",component:aXe,meta:{title:"user.PROFILE.TABS.APPS"}},{path:":id",name:"UserApp",component:BT,meta:{title:"user.PROFILE.TABS.APPS"}},{path:":id/created",name:"CreatedUserApp",component:BT,props:{afterCreation:!0},meta:{title:"user.PROFILE.TABS.APPS"}},{path:"new",name:"AddUserApp",component:RYe,meta:{title:"user.PROFILE.TABS.APPS"}},{path:"authorize",name:"AuthorizeUserApp",component:kYe,meta:{title:"user.PROFILE.TABS.APPS"}}]},{path:"equipments",name:"UserEquipments",component:VT,props:{isEdition:!1},children:[{path:"",name:"UserEquipmentsList",component:KT,meta:{title:"user.PROFILE.TABS.EQUIPMENTS"}},{path:"new",name:"AddEquipment",component:HT,meta:{title:"user.PROFILE.TABS.EQUIPMENTS"}},{path:":id",name:"Equipment",component:cQe,meta:{title:"user.PROFILE.TABS.EQUIPMENTS"}}]}]},{path:"edit",name:"UserProfileEdition",component:DHe,props:e=>({tab:_0(e.path)}),children:[{path:"",name:"UserInfosEdition",component:$je,meta:{title:"user.PROFILE.EDIT"}},{path:"account",name:"UserAccountEdition",component:Tje,meta:{title:"user.PROFILE.ACCOUNT_EDITION"}},{path:"picture",name:"UserPictureEdition",component:Gje,meta:{title:"user.PROFILE.PICTURE_EDITION"}},{path:"preferences",name:"UserPreferencesEdition",component:xqe,meta:{title:"user.PROFILE.EDIT_PREFERENCES"}},{path:"sports",name:"UserSportsEdition",component:jT,props:{isEdition:!0},meta:{title:"user.PROFILE.EDIT_SPORTS_PREFERENCES"},children:[{path:"",name:"UserSportPreferencesEdition",component:qT,meta:{title:"user.PROFILE.TABS.SPORTS"}},{path:":id",name:"UserSportEdition",component:mZe,meta:{title:"user.PROFILE.TABS.SPORTS"}}]},{path:"equipments",name:"UserEquipmentsEdition",component:VT,props:{isEdition:!0},children:[{path:"",name:"UserEquipmentsListEdition",component:KT,meta:{title:"user.PROFILE.TABS.EQUIPMENTS"}},{path:":id",name:"EquipmentEdition",component:HT,meta:{title:"user.PROFILE.TABS.EQUIPMENTS"}}]},{path:"privacy-policy",name:"UserPrivacyPolicy",component:tYe,meta:{title:"user.PROFILE.PRIVACY-POLICY_EDITION"}}]}]},{path:"/statistics",name:"Statistics",component:wat,meta:{title:"statistics.STATISTICS"}},{path:"/users/:username",name:"User",component:r0,meta:{title:"administration.USER"}},{path:"/workouts",name:"Workouts",component:Uct,meta:{title:"workouts.WORKOUT",count:0}},{path:"/workouts/:workoutId",name:"Workout",component:p0,props:{displaySegment:!1},meta:{title:"workouts.WORKOUT"}},{path:"/workouts/:workoutId/edit",name:"EditWorkout",component:not,meta:{title:"workouts.EDIT_WORKOUT"}},{path:"/workouts/:workoutId/segment/:segmentId",name:"WorkoutSegment",component:p0,props:{displaySegment:!0},meta:{title:"workouts.SEGMENT",count:0}},{path:"/workouts/add",name:"AddWorkout",component:Jrt,meta:{title:"workouts.ADD_WORKOUT"}},{path:"/admin",name:"Administration",component:CJe,children:[{path:"",name:"AdministrationMenu",component:eBe,meta:{title:"admin.ADMINISTRATION"}},{path:"application",name:"ApplicationAdministration",component:hT,meta:{title:"admin.APP_CONFIG.TITLE"}},{path:"application/edit",name:"ApplicationAdministrationEdition",component:hT,props:{edition:!0},meta:{title:"admin.APPLICATION"}},{path:"equipment-types",name:"EquipmentTypeAdministration",component:Mxe,meta:{title:"admin.EQUIPMENT_TYPES.TITLE"}},{path:"sports",name:"SportsAdministration",component:gBe,meta:{title:"admin.SPORTS.TITLE"}},{path:"users/:username",name:"UserFromAdmin",component:r0,props:{fromAdmin:!0},meta:{title:"admin.USER",count:1}},{path:"users",name:"UsersAdministration",component:zGe,meta:{title:"admin.USERS.TITLE"}}]},{path:"/about",name:"About",component:hJe,meta:{title:"common.ABOUT",withoutChecks:!0}},{path:"/privacy-policy",name:"PrivacyPolicy",component:Lnt,meta:{title:"privacy_policy.TITLE",withoutChecks:!0}},{path:"/:pathMatch(.*)*",name:"not-found",component:bnt,meta:{title:"error.NOT_FOUND.PAGE"}}],yg=Qk({history:Nk("/"),routes:kct});yg.beforeEach((e,t,n)=>{if("title"in e.meta){const a=typeof e.meta.title=="string"?e.meta.title:"",s=a?typeof e.meta.count=="number"?m0(a,+e.meta.count):m0(a):"";window.document.title=`FitTrackee${a?` - ${He(s)}`:""}`}Eo.dispatch(Q.ACTIONS.CHECK_AUTH_USER).then(()=>{if(e.meta.withoutChecks)return n();if(Eo.getters[Q.GETTERS.IS_AUTHENTICATED]&&e.meta.withoutAuth)return n("/");if(!Eo.getters[Q.GETTERS.IS_AUTHENTICATED]&&!e.meta.withoutAuth){const a=e.path==="/"?{path:"/login"}:{path:"/login",query:{from:e.fullPath}};n(a)}else n()}).catch(a=>{console.error(a),n()})});const dt=yg;_E.register(Ug,kg,wg,Mg,Wg,Fg,zg,T0,xg,h0,Bg,Gg);const $g=AN(PU).provide("sportColors",wf).use(Lr).use(Eo).use(dt).use(ob,{name:"VFullscreen"}).directive("click-outside",NM);RM.forEach(e=>{$g.component(e.name,e.target)});$g.mount("#app"); diff --git a/fittrackee/emails/email.py b/fittrackee/emails/email.py index e1adf3f6d..d0ad05408 100644 --- a/fittrackee/emails/email.py +++ b/fittrackee/emails/email.py @@ -1,3 +1,4 @@ +import email.utils as email_utils import logging import smtplib import ssl @@ -32,6 +33,9 @@ def generate_message(self) -> MIMEMultipart: message['Subject'] = self.subject message['From'] = self.sender message['To'] = self.recipient + message['Message-ID'] = email_utils.make_msgid( + domain=self.sender.split("@")[-1] + ) part1 = MIMEText(self.text, 'plain') part2 = MIMEText(self.html, 'html') message.attach(part1) @@ -140,7 +144,9 @@ def parse_email_url(email_url: str) -> Dict: 'port': 25 if parsed_url.port is None else parsed_url.port, 'use_tls': parsed_url.query == 'tls=True', 'use_ssl': parsed_url.query == 'ssl=True', - 'username': username, + 'username': ( + unquote(username) if isinstance(username, str) else username + ), 'password': ( unquote(password) if isinstance(password, str) else password ), diff --git a/fittrackee/migrations/versions/41_6988082918f8_add_workout_description.py b/fittrackee/migrations/versions/41_6988082918f8_add_workout_description.py new file mode 100644 index 000000000..66ef35ede --- /dev/null +++ b/fittrackee/migrations/versions/41_6988082918f8_add_workout_description.py @@ -0,0 +1,32 @@ +"""add workout description + +Revision ID: 6988082918f8 +Revises: c9c6a5a4dd6d +Create Date: 2024-09-07 20:02:56.341637 + +""" +from alembic import op +import sqlalchemy as sa + + +# revision identifiers, used by Alembic. +revision = '6988082918f8' +down_revision = 'c9c6a5a4dd6d' +branch_labels = None +depends_on = None + + +def upgrade(): + # ### commands auto generated by Alembic - please adjust! ### + with op.batch_alter_table('workouts', schema=None) as batch_op: + batch_op.add_column(sa.Column('description', sa.String(length=10000), nullable=True)) + + # ### end Alembic commands ### + + +def downgrade(): + # ### commands auto generated by Alembic - please adjust! ### + with op.batch_alter_table('workouts', schema=None) as batch_op: + batch_op.drop_column('description') + + # ### end Alembic commands ### diff --git a/fittrackee/tests/emails/test_email_service.py b/fittrackee/tests/emails/test_email_service.py index 7b0f0de7b..3b7f59e43 100644 --- a/fittrackee/tests/emails/test_email_service.py +++ b/fittrackee/tests/emails/test_email_service.py @@ -1,3 +1,4 @@ +from email import utils from unittest.mock import Mock, patch from urllib.parse import quote @@ -27,13 +28,32 @@ def test_it_generate_email_data(self) -> None: """, text='Hello !', ) - message_data = message.generate_message() + + with patch.object(utils, 'make_msgid', return_value='message_id'): + message_data = message.generate_message() + assert message_data.get('From') == 'fittrackee@example.com' assert message_data.get('To') == 'test@test.com' assert message_data.get('Subject') == 'Fittrackee - test email' + assert message_data.get('Message-ID') == 'message_id' message_string = message_data.as_string() assert 'Hello !' in message_string + def test_it_calls_make_msgid_with_sender_domain(self) -> None: + sender = 'fittrackee@example.com' + message = EmailMessage( + sender=sender, + recipient='test@test.com', + subject='Fittrackee - test email', + html='test', + text='test', + ) + + with patch.object(utils, 'make_msgid') as make_msgid_mock: + message.generate_message() + + make_msgid_mock.assert_called_once_with(domain=sender.split("@")[-1]) + class TestEmailServiceUrlParser(CallArgsMixin): def test_it_raises_error_if_url_scheme_is_invalid(self) -> None: @@ -111,6 +131,21 @@ def test_it_parses_email_url_with_encoded_password(self) -> None: assert parsed_email['use_tls'] is False assert parsed_email['use_ssl'] is True + def test_it_parses_email_url_with_encoded_username(self) -> None: + username = "user_name@example.com" + password = "12345678" + encoded_username = quote(username) + url = f"smtp://{encoded_username}:{password}@localhost:465?ssl=True" + + parsed_email = email_service.parse_email_url(url) + + assert parsed_email['username'] == username + assert parsed_email['password'] == password + assert parsed_email['host'] == 'localhost' + assert parsed_email['port'] == 465 + assert parsed_email['use_tls'] is False + assert parsed_email['use_ssl'] is True + class TestEmailServiceSend(CallArgsMixin): email_data = { diff --git a/fittrackee/tests/fixtures/fixtures_workouts.py b/fittrackee/tests/fixtures/fixtures_workouts.py index 1b420c432..1bf6f9996 100644 --- a/fittrackee/tests/fixtures/fixtures_workouts.py +++ b/fittrackee/tests/fixtures/fixtures_workouts.py @@ -9,9 +9,16 @@ from werkzeug.datastructures import FileStorage from fittrackee import db -from fittrackee.workouts.models import Sport, Workout, WorkoutSegment +from fittrackee.workouts.models import ( + TITLE_MAX_CHARACTERS, + Sport, + Workout, + WorkoutSegment, +) from fittrackee.workouts.utils.maps import StaticMap +from ..utils import random_string + byte_io = BytesIO() Image.new('RGB', (256, 256)).save(byte_io, 'PNG') byte_image = byte_io.getvalue() @@ -703,6 +710,121 @@ def gpx_file_without_elevation() -> str: ) +@pytest.fixture() +def gpx_file_w_title_exceeding_limit() -> str: + return ( + '' + '' # noqa + ' ' + ' ' + f' {random_string(TITLE_MAX_CHARACTERS + 1)}' + ' ' + ' ' + ' 998' + ' ' + ' ' + ' ' + ' 998' + ' ' + ' ' + ' ' + ' 994' + ' ' + ' ' + ' ' + ' 994' + ' ' + ' ' + ' ' + ' 994' + ' ' + ' ' + ' ' + ' 993' + ' ' + ' ' + ' ' + ' 992' + ' ' + ' ' + ' ' + ' 992' + ' ' + ' ' + ' ' + ' 987' + ' ' + ' ' + ' ' + ' 987' + ' ' + ' ' + ' ' + ' 987' + ' ' + ' ' + ' ' + ' 987' + ' ' + ' ' + ' ' + ' 986' + ' ' + ' ' + ' ' + ' 986' + ' ' + ' ' + ' ' + ' 986' + ' ' + ' ' + ' ' + ' 985' + ' ' + ' ' + ' ' + ' 980' + ' ' + ' ' + ' ' + ' 980' + ' ' + ' ' + ' ' + ' 980' + ' ' + ' ' + ' ' + ' 979' + ' ' + ' ' + ' ' + ' 981' + ' ' + ' ' + ' ' + ' 980' + ' ' + ' ' + ' ' + ' 979' + ' ' + ' ' + ' ' + ' 979' + ' ' + ' ' + ' ' + ' 975' + ' ' + ' ' + ' ' + ' ' + '' + ) + + @pytest.fixture() def gpx_file_wo_track() -> str: return ( diff --git a/fittrackee/tests/users/test_users_export_data.py b/fittrackee/tests/users/test_users_export_data.py index 3b3d0c49c..cc6e4c6de 100644 --- a/fittrackee/tests/users/test_users_export_data.py +++ b/fittrackee/tests/users/test_users_export_data.py @@ -81,6 +81,7 @@ def test_it_returns_data_for_workout_without_gpx( 'weather_end': None, 'notes': workout_cycling_user_1.notes, 'equipments': [], + 'description': None, } ] @@ -125,6 +126,7 @@ def test_it_returns_data_for_workout_with_gpx( 'weather_end': None, 'notes': workout.notes, 'equipments': [], + 'description': None, } ] diff --git a/fittrackee/tests/users/test_users_model.py b/fittrackee/tests/users/test_users_model.py index d0a61281b..490544c0b 100644 --- a/fittrackee/tests/users/test_users_model.py +++ b/fittrackee/tests/users/test_users_model.py @@ -228,7 +228,7 @@ def test_it_returns_user_records( ) -> None: serialized_user = user_1.serialize(user_1) assert len(serialized_user['records']) == 4 - assert serialized_user['records'][0]['record_type'] == 'AS' + assert serialized_user['records'][0]['record_type'] assert serialized_user['records'][0]['sport_id'] == sport_1_cycling.id assert serialized_user['records'][0]['user'] == user_1.username assert serialized_user['records'][0]['value'] > 0 diff --git a/fittrackee/tests/workouts/test_workouts_api_0_get.py b/fittrackee/tests/workouts/test_workouts_api_0_get.py index 1200a0d32..b0dd03c92 100644 --- a/fittrackee/tests/workouts/test_workouts_api_0_get.py +++ b/fittrackee/tests/workouts/test_workouts_api_0_get.py @@ -1134,6 +1134,67 @@ def test_it_returns_all_workouts_when_notes_filter_is_empty_string( assert workouts[0]['id'] == workout_running_user_1.short_id assert workouts[1]['id'] == workout_cycling_user_1.short_id + def test_it_gets_workouts_with_description_filter( + self, + app: Flask, + user_1: User, + user_2: User, + sport_1_cycling: Sport, + seven_workouts_user_1: List[Workout], + workout_cycling_user_2: Workout, + ) -> None: + description = self.random_string() + seven_workouts_user_1[1].description = description + seven_workouts_user_1[3].description = self.random_string() + seven_workouts_user_1[5].description = ( + f"{self.random_string()} {description.upper()} " + f"{self.random_string()}" + ) + workout_cycling_user_2.description = description + client, auth_token = self.get_test_client_and_auth_token( + app, user_1.email + ) + + response = client.get( + f"/api/workouts?description={description}", + headers=dict(Authorization=f"Bearer {auth_token}"), + ) + + data = json.loads(response.data.decode()) + assert response.status_code == 200 + assert 'success' in data['status'] + workouts = data['data']['workouts'] + assert len(workouts) == 2 + assert workouts[0]['id'] == seven_workouts_user_1[5].short_id + assert workouts[1]['id'] == seven_workouts_user_1[1].short_id + + def test_it_returns_all_workouts_when_description_filter_is_empty_string( + self, + app: Flask, + user_1: User, + sport_1_cycling: Sport, + workout_cycling_user_1: Workout, + sport_2_running: Sport, + workout_running_user_1: Workout, + ) -> None: + workout_running_user_1.description = self.random_string() + client, auth_token = self.get_test_client_and_auth_token( + app, user_1.email + ) + + response = client.get( + "/api/workouts?description=", + headers=dict(Authorization=f"Bearer {auth_token}"), + ) + + data = json.loads(response.data.decode()) + assert response.status_code == 200 + assert 'success' in data['status'] + workouts = data['data']['workouts'] + assert len(workouts) == 2 + assert workouts[0]['id'] == workout_running_user_1.short_id + assert workouts[1]['id'] == workout_cycling_user_1.short_id + class TestGetWorkoutsWithFiltersAndPagination(ApiTestCaseMixin): def test_it_gets_page_2_with_date_filter( diff --git a/fittrackee/tests/workouts/test_workouts_api_1_post.py b/fittrackee/tests/workouts/test_workouts_api_1_post.py index 3d3861c58..484ce37f3 100644 --- a/fittrackee/tests/workouts/test_workouts_api_1_post.py +++ b/fittrackee/tests/workouts/test_workouts_api_1_post.py @@ -16,7 +16,13 @@ UserSportPreference, UserSportPreferenceEquipment, ) -from fittrackee.workouts.models import Sport, Workout +from fittrackee.workouts.models import ( + DESCRIPTION_MAX_CHARACTERS, + NOTES_MAX_CHARACTERS, + TITLE_MAX_CHARACTERS, + Sport, + Workout, +) from ..mixins import ApiTestCaseMixin, CallArgsMixin from ..utils import OAUTH_SCOPES, jsonify_dict @@ -34,6 +40,7 @@ def assert_workout_data_with_gpx(data: Dict) -> None: assert data['data']['workouts'][0]['ascent'] == 0.4 assert data['data']['workouts'][0]['ave_speed'] == 4.61 assert data['data']['workouts'][0]['descent'] == 23.4 + assert data['data']['workouts'][0]['description'] is None assert data['data']['workouts'][0]['distance'] == 0.32 assert data['data']['workouts'][0]['max_alt'] == 998.0 assert data['data']['workouts'][0]['max_speed'] == 5.12 @@ -102,6 +109,7 @@ def assert_workout_data_with_gpx_segments(data: Dict) -> None: assert data['data']['workouts'][0]['ascent'] == 0.4 assert data['data']['workouts'][0]['ave_speed'] == 4.59 assert data['data']['workouts'][0]['descent'] == 23.4 + assert data['data']['workouts'][0]['description'] is None assert data['data']['workouts'][0]['distance'] == 0.3 assert data['data']['workouts'][0]['max_alt'] == 998.0 assert data['data']['workouts'][0]['max_speed'] == 5.25 @@ -187,6 +195,7 @@ def assert_workout_data_wo_gpx(data: Dict) -> None: assert data['data']['workouts'][0]['ascent'] is None assert data['data']['workouts'][0]['ave_speed'] == 10.0 assert data['data']['workouts'][0]['descent'] is None + assert data['data']['workouts'][0]['description'] is None assert data['data']['workouts'][0]['distance'] == 10.0 assert data['data']['workouts'][0]['max_alt'] is None assert data['data']['workouts'][0]['max_speed'] == 10.0 @@ -286,6 +295,41 @@ def test_it_adds_a_workout_with_gpx_file( assert 'just a workout' == data['data']['workouts'][0]['title'] assert_workout_data_with_gpx(data) + def test_it_adds_a_workout_with_gpx_file_and_title_exceeding_limits( + self, + app: Flask, + user_1: User, + sport_1_cycling: Sport, + gpx_file_w_title_exceeding_limit: str, + ) -> None: + client, auth_token = self.get_test_client_and_auth_token( + app, user_1.email + ) + + response = client.post( + '/api/workouts', + data=dict( + file=( + BytesIO(str.encode(gpx_file_w_title_exceeding_limit)), + 'example.gpx', + ), + data='{"sport_id": 1}', + ), + headers=dict( + content_type='multipart/form-data', + Authorization=f'Bearer {auth_token}', + ), + ) + + data = json.loads(response.data.decode()) + assert response.status_code == 201 + assert 'created' in data['status'] + assert len(data['data']['workouts']) == 1 + assert ( + len(data['data']['workouts'][0]['title']) == TITLE_MAX_CHARACTERS + ) + assert_workout_data_with_gpx(data) + def test_it_adds_a_workout_with_gpx_file_raw_speed( self, app: Flask, @@ -575,7 +619,7 @@ def test_it_returns_400_when_quotes_are_not_escaped_in_notes( [ ('empty notes', ''), ('short notes', 'test workout'), - ('notes with special characters', "test \n'workout'"), + ('notes with special characters', "test \n'workout'©"), ], ) def test_it_adds_a_workout_with_gpx_notes( @@ -609,6 +653,132 @@ def test_it_adds_a_workout_with_gpx_notes( assert len(data['data']['workouts']) == 1 assert data['data']['workouts'][0]['notes'] == input_notes + def test_it_adds_a_workout_with_gpx_notes_exceeding_limit( + self, + app: Flask, + user_1: User, + sport_1_cycling: Sport, + gpx_file: str, + ) -> None: + notes = self.random_string(length=NOTES_MAX_CHARACTERS + 1) + client, auth_token = self.get_test_client_and_auth_token( + app, user_1.email + ) + + response = client.post( + '/api/workouts', + data=dict( + file=(BytesIO(str.encode(gpx_file)), 'example.gpx'), + data=f'{{"sport_id": 1, "notes": "{notes}"}}', + ), + headers=dict( + content_type='multipart/form-data', + Authorization=f'Bearer {auth_token}', + ), + ) + data = json.loads(response.data.decode()) + + assert response.status_code == 201 + assert 'created' in data['status'] + assert len(data['data']['workouts']) == 1 + assert data['data']['workouts'][0]['notes'] == notes[:-1] + + def test_it_returns_400_when_quotes_are_not_escaped_in_description( + self, + app: Flask, + user_1: User, + sport_1_cycling: Sport, + gpx_file: str, + ) -> None: + client, auth_token = self.get_test_client_and_auth_token( + app, user_1.email + ) + + response = client.post( + '/api/workouts', + data=dict( + file=(BytesIO(str.encode(gpx_file)), 'example.gpx'), + data='{{"sport_id": 1, "description": "test "workout""}}', + ), + headers=dict( + content_type='multipart/form-data', + Authorization=f'Bearer {auth_token}', + ), + ) + + self.assert_400(response) + + @pytest.mark.parametrize( + 'input_test_description,input_description', + [ + ('empty description', ''), + ('short description', 'test workout'), + ('description with special characters', "test \n'workout'©"), + ], + ) + def test_it_adds_a_workout_with_gpx_and_description( + self, + input_test_description: str, + input_description: str, + app: Flask, + user_1: User, + sport_1_cycling: Sport, + gpx_file: str, + ) -> None: + client, auth_token = self.get_test_client_and_auth_token( + app, user_1.email + ) + + response = client.post( + '/api/workouts', + data=dict( + file=(BytesIO(str.encode(gpx_file)), 'example.gpx'), + data=( + f'{{"sport_id": 1, "description": "{input_description}"}}' + ), + ), + headers=dict( + content_type='multipart/form-data', + Authorization=f'Bearer {auth_token}', + ), + ) + data = json.loads(response.data.decode()) + + assert response.status_code == 201 + assert 'created' in data['status'] + assert len(data['data']['workouts']) == 1 + assert data['data']['workouts'][0]['description'] == input_description + + def test_it_adds_a_workout_with_gpx_and_description_exceeding_limit( + self, + app: Flask, + user_1: User, + sport_1_cycling: Sport, + gpx_file: str, + ) -> None: + description = self.random_string(length=DESCRIPTION_MAX_CHARACTERS + 1) + client, auth_token = self.get_test_client_and_auth_token( + app, user_1.email + ) + + response = client.post( + '/api/workouts', + data=dict( + file=(BytesIO(str.encode(gpx_file)), 'example.gpx'), + data=f'{{"sport_id": 1, "description": "{description}"}}', + ), + headers=dict( + content_type='multipart/form-data', + Authorization=f'Bearer {auth_token}', + ), + ) + data = json.loads(response.data.decode()) + + assert response.status_code == 201 + assert 'created' in data['status'] + assert len(data['data']['workouts']) == 1 + assert data['data']['workouts'][0]['description'] == description[:-1] + def test_it_adds_a_workout_with_equipments( self, app: Flask, @@ -1387,6 +1557,67 @@ def test_it_adds_a_workout_without_gpx( assert len(data['data']['workouts']) == 1 assert_workout_data_wo_gpx(data) + def test_it_adds_a_workout_without_gpx_and_title( + self, app: Flask, user_1: User, sport_1_cycling: Sport + ) -> None: + client, auth_token = self.get_test_client_and_auth_token( + app, user_1.email + ) + title = self.random_string() + + response = client.post( + '/api/workouts/no_gpx', + content_type='application/json', + data=json.dumps( + dict( + sport_id=1, + duration=3600, + workout_date='2018-05-15 14:05', + distance=10, + title=title, + ) + ), + headers=dict(Authorization=f'Bearer {auth_token}'), + ) + + data = json.loads(response.data.decode()) + assert response.status_code == 201 + assert 'created' in data['status'] + assert len(data['data']['workouts']) == 1 + assert data['data']['workouts'][0]['title'] == title + + def test_it_adds_a_workout_without_gpx_and_title_exceeding_limit( + self, app: Flask, user_1: User, sport_1_cycling: Sport + ) -> None: + client, auth_token = self.get_test_client_and_auth_token( + app, user_1.email + ) + title = self.random_string(length=TITLE_MAX_CHARACTERS + 1) + + response = client.post( + '/api/workouts/no_gpx', + content_type='application/json', + data=json.dumps( + dict( + sport_id=1, + duration=3600, + workout_date='2018-05-15 14:05', + distance=10, + title=title, + ) + ), + headers=dict(Authorization=f'Bearer {auth_token}'), + ) + + data = json.loads(response.data.decode()) + assert response.status_code == 201 + assert 'created' in data['status'] + assert len(data['data']['workouts']) == 1 + assert ( + data['data']['workouts'][0]['title'] + == title[:TITLE_MAX_CHARACTERS] + ) + @pytest.mark.parametrize( 'input_ascent, input_descent', [ @@ -1672,6 +1903,122 @@ def test_it_returns_400_when_duration_is_invalid( self.assert_400(response) + def test_it_adds_a_workout_with_notes( + self, app: Flask, user_1: User, sport_1_cycling: Sport + ) -> None: + notes = "test" + client, auth_token = self.get_test_client_and_auth_token( + app, user_1.email + ) + + response = client.post( + '/api/workouts/no_gpx', + content_type='application/json', + data=json.dumps( + dict( + sport_id=1, + duration=3600, + workout_date='2018-05-15 14:05', + distance=10, + notes=notes, + ) + ), + headers=dict(Authorization=f'Bearer {auth_token}'), + ) + + data = json.loads(response.data.decode()) + assert response.status_code == 201 + assert 'created' in data['status'] + assert len(data['data']['workouts']) == 1 + assert data['data']['workouts'][0]['notes'] == notes + + def test_it_adds_a_workout_with_notes_exceeding_length_limit( + self, app: Flask, user_1: User, sport_1_cycling: Sport + ) -> None: + notes = self.random_string(length=NOTES_MAX_CHARACTERS + 1) + client, auth_token = self.get_test_client_and_auth_token( + app, user_1.email + ) + + response = client.post( + '/api/workouts/no_gpx', + content_type='application/json', + data=json.dumps( + dict( + sport_id=1, + duration=3600, + workout_date='2018-05-15 14:05', + distance=10, + notes=notes, + ) + ), + headers=dict(Authorization=f'Bearer {auth_token}'), + ) + + data = json.loads(response.data.decode()) + assert response.status_code == 201 + assert 'created' in data['status'] + assert len(data['data']['workouts']) == 1 + assert data['data']['workouts'][0]['notes'] == notes[:-1] + + def test_it_adds_a_workout_with_description( + self, app: Flask, user_1: User, sport_1_cycling: Sport + ) -> None: + description = "test" + client, auth_token = self.get_test_client_and_auth_token( + app, user_1.email + ) + + response = client.post( + '/api/workouts/no_gpx', + content_type='application/json', + data=json.dumps( + dict( + sport_id=1, + duration=3600, + workout_date='2018-05-15 14:05', + distance=10, + description=description, + ) + ), + headers=dict(Authorization=f'Bearer {auth_token}'), + ) + + data = json.loads(response.data.decode()) + assert response.status_code == 201 + assert 'created' in data['status'] + assert len(data['data']['workouts']) == 1 + assert data['data']['workouts'][0]['description'] == description + + def test_it_adds_a_workout_with_description_exceeding_length_limit( + self, app: Flask, user_1: User, sport_1_cycling: Sport + ) -> None: + description = self.random_string(length=DESCRIPTION_MAX_CHARACTERS + 1) + client, auth_token = self.get_test_client_and_auth_token( + app, user_1.email + ) + + response = client.post( + '/api/workouts/no_gpx', + content_type='application/json', + data=json.dumps( + dict( + sport_id=1, + duration=3600, + workout_date='2018-05-15 14:05', + distance=10, + description=description, + ) + ), + headers=dict(Authorization=f'Bearer {auth_token}'), + ) + + data = json.loads(response.data.decode()) + assert response.status_code == 201 + assert 'created' in data['status'] + assert len(data['data']['workouts']) == 1 + assert data['data']['workouts'][0]['description'] == description[:-1] + def test_it_adds_a_workout_with_equipments( self, app: Flask, @@ -2021,6 +2368,7 @@ def test_it_adds_workouts_with_zip_archive( assert data['data']['workouts'][0]['ascent'] == 0.4 assert data['data']['workouts'][0]['ave_speed'] == 4.61 assert data['data']['workouts'][0]['descent'] == 23.4 + assert data['data']['workouts'][0]['description'] is None assert data['data']['workouts'][0]['distance'] == 0.32 assert data['data']['workouts'][0]['max_alt'] == 998.0 assert data['data']['workouts'][0]['max_speed'] == 5.12 diff --git a/fittrackee/tests/workouts/test_workouts_api_2_patch.py b/fittrackee/tests/workouts/test_workouts_api_2_patch.py index 925f843f2..1c36d5aa9 100644 --- a/fittrackee/tests/workouts/test_workouts_api_2_patch.py +++ b/fittrackee/tests/workouts/test_workouts_api_2_patch.py @@ -10,7 +10,13 @@ from fittrackee.equipments.models import Equipment from fittrackee.users.models import User from fittrackee.utils import decode_short_id -from fittrackee.workouts.models import Sport, Workout +from fittrackee.workouts.models import ( + DESCRIPTION_MAX_CHARACTERS, + NOTES_MAX_CHARACTERS, + TITLE_MAX_CHARACTERS, + Sport, + Workout, +) from ..mixins import ApiTestCaseMixin from ..utils import OAUTH_SCOPES, jsonify_dict @@ -28,6 +34,7 @@ def assert_workout_data_with_gpx(data: Dict, sport_id: int) -> None: assert data['data']['workouts'][0]['ascent'] == 0.4 assert data['data']['workouts'][0]['ave_speed'] == 4.61 assert data['data']['workouts'][0]['descent'] == 23.4 + assert data['data']['workouts'][0]['description'] is None assert data['data']['workouts'][0]['distance'] == 0.32 assert data['data']['workouts'][0]['max_alt'] == 998.0 assert data['data']['workouts'][0]['max_speed'] == 5.12 @@ -65,7 +72,7 @@ def assert_workout_data_with_gpx(data: Dict, sport_id: int) -> None: class TestEditWorkoutWithGpx(ApiTestCaseMixin): - def test_it_updates_title_for_a_workout_with_gpx( + def test_it_updates_sport_and_title_for_a_workout_with_gpx( self, app: Flask, user_1: User, @@ -91,6 +98,30 @@ def test_it_updates_title_for_a_workout_with_gpx( assert data['data']['workouts'][0]['title'] == 'Workout test' assert_workout_data_with_gpx(data, sport_2_running.id) + def test_it_updates_title_when_it_exceeds_max_limit( + self, + app: Flask, + user_1: User, + sport_1_cycling: Sport, + gpx_file: str, + ) -> None: + token, workout_short_id = post_a_workout(app, gpx_file) + client = app.test_client() + title = self.random_string(TITLE_MAX_CHARACTERS + 1) + + response = client.patch( + f'/api/workouts/{workout_short_id}', + content_type='application/json', + json={'title': title}, + headers=dict(Authorization=f'Bearer {token}'), + ) + + data = json.loads(response.data.decode()) + assert response.status_code == 200 + assert 'success' in data['status'] + assert len(data['data']['workouts']) == 1 + assert data['data']['workouts'][0]['title'] == title[:-1] + @pytest.mark.parametrize( 'input_description,input_notes', [ @@ -99,7 +130,7 @@ def test_it_updates_title_for_a_workout_with_gpx( ('notes with special characters', 'test \nworkout'), ], ) - def test_it_adds_notes_to_a_workout_with_gpx( + def test_it_updates_notes_for_a_workout_with_gpx( self, app: Flask, input_description: str, @@ -125,6 +156,32 @@ def test_it_adds_notes_to_a_workout_with_gpx( assert len(data['data']['workouts']) == 1 assert data['data']['workouts'][0]['notes'] == input_notes + def test_it_updates_notes_with_notes_exceeding_length_limit( + self, + app: Flask, + user_1: User, + sport_1_cycling: Sport, + gpx_file: str, + ) -> None: + token, workout_short_id = post_a_workout(app, gpx_file) + notes = self.random_string(length=NOTES_MAX_CHARACTERS + 1) + client, auth_token = self.get_test_client_and_auth_token( + app, user_1.email + ) + + response = client.patch( + f'/api/workouts/{workout_short_id}', + content_type='application/json', + json={"notes": notes}, + headers=dict(Authorization=f'Bearer {token}'), + ) + + data = json.loads(response.data.decode()) + assert response.status_code == 200 + assert 'success' in data['status'] + assert len(data['data']['workouts']) == 1 + assert data['data']['workouts'][0]['notes'] == notes[:-1] + def test_it_empties_workout_notes( self, app: Flask, @@ -151,6 +208,92 @@ def test_it_empties_workout_notes( assert len(data['data']['workouts']) == 1 assert data['data']['workouts'][0]['notes'] == '' + @pytest.mark.parametrize( + 'input_test_description,input_description', + [ + ('empty description', ''), + ('short description', 'test workout'), + ('description with special characters', 'test \nworkout'), + ], + ) + def test_it_updates_description_for_a_workout_with_gpx( + self, + app: Flask, + input_test_description: str, + input_description: str, + user_1: User, + sport_1_cycling: Sport, + sport_2_running: Sport, + gpx_file: str, + ) -> None: + token, workout_short_id = post_a_workout(app, gpx_file) + client = app.test_client() + + response = client.patch( + f'/api/workouts/{workout_short_id}', + content_type='application/json', + data=json.dumps(dict(description=input_description)), + headers=dict(Authorization=f'Bearer {token}'), + ) + + data = json.loads(response.data.decode()) + assert response.status_code == 200 + assert 'success' in data['status'] + assert len(data['data']['workouts']) == 1 + assert data['data']['workouts'][0]['description'] == input_description + + def test_it_updates_description_with_description_exceeding_length_limit( + self, + app: Flask, + user_1: User, + sport_1_cycling: Sport, + gpx_file: str, + ) -> None: + token, workout_short_id = post_a_workout(app, gpx_file) + description = self.random_string(length=DESCRIPTION_MAX_CHARACTERS + 1) + client, auth_token = self.get_test_client_and_auth_token( + app, user_1.email + ) + + response = client.patch( + f'/api/workouts/{workout_short_id}', + content_type='application/json', + json={"description": description}, + headers=dict(Authorization=f'Bearer {token}'), + ) + + data = json.loads(response.data.decode()) + assert response.status_code == 200 + assert 'success' in data['status'] + assert len(data['data']['workouts']) == 1 + assert data['data']['workouts'][0]['description'] == description[:-1] + + def test_it_empties_workout_description( + self, + app: Flask, + user_1: User, + sport_1_cycling: Sport, + sport_2_running: Sport, + gpx_file: str, + ) -> None: + token, workout_short_id = post_a_workout( + app, gpx_file, description=self.random_string() + ) + client = app.test_client() + + response = client.patch( + f'/api/workouts/{workout_short_id}', + content_type='application/json', + data=json.dumps(dict(description='')), + headers=dict(Authorization=f'Bearer {token}'), + ) + + data = json.loads(response.data.decode()) + assert response.status_code == 200 + assert 'success' in data['status'] + assert len(data['data']['workouts']) == 1 + assert data['data']['workouts'][0]['description'] == '' + def test_it_raises_403_when_editing_a_workout_from_different_user( self, app: Flask, @@ -634,6 +777,7 @@ def test_it_updates_a_workout_wo_gpx( assert data['data']['workouts'][0]['ascent'] is None assert data['data']['workouts'][0]['ave_speed'] == 8.0 assert data['data']['workouts'][0]['descent'] is None + assert data['data']['workouts'][0]['description'] is None assert data['data']['workouts'][0]['distance'] == 8.0 assert data['data']['workouts'][0]['max_alt'] is None assert data['data']['workouts'][0]['max_speed'] == 8.0 @@ -669,19 +813,9 @@ def test_it_updates_a_workout_wo_gpx( assert records[3]['workout_date'] == 'Tue, 15 May 2018 15:05:00 GMT' assert records[3]['value'] == 8.0 - @pytest.mark.parametrize( - 'input_description,input_notes', - [ - ('empty notes', ''), - ('short notes', 'test workout'), - ('notes with special characters', 'test \nworkout'), - ], - ) - def test_it_adds_notes_to_a_workout_wo_gpx( + def test_it_updates_notes_for_a_workout_wo_gpx( self, app: Flask, - input_description: str, - input_notes: str, user_1: User, sport_1_cycling: Sport, workout_cycling_user_1: Workout, @@ -690,11 +824,12 @@ def test_it_adds_notes_to_a_workout_wo_gpx( client, auth_token = self.get_test_client_and_auth_token( app, user_1.email ) + notes = self.random_string() response = client.patch( f'/api/workouts/{workout_short_id}', content_type='application/json', - data=json.dumps(dict(notes=input_notes)), + json={"notes": notes}, headers=dict(Authorization=f'Bearer {auth_token}'), ) @@ -702,9 +837,9 @@ def test_it_adds_notes_to_a_workout_wo_gpx( assert response.status_code == 200 assert 'success' in data['status'] assert len(data['data']['workouts']) == 1 - assert data['data']['workouts'][0]['notes'] == input_notes + assert data['data']['workouts'][0]['notes'] == notes - def test_it_empties_workout_notes( + def test_it_updates_description_for_a_workout_wo_gpx( self, app: Flask, user_1: User, @@ -712,15 +847,15 @@ def test_it_empties_workout_notes( workout_cycling_user_1: Workout, ) -> None: workout_short_id = workout_cycling_user_1.short_id - workout_cycling_user_1.notes = uuid4().hex client, auth_token = self.get_test_client_and_auth_token( app, user_1.email ) + description = self.random_string() response = client.patch( f'/api/workouts/{workout_short_id}', content_type='application/json', - data=json.dumps(dict(notes='')), + json={"description": description}, headers=dict(Authorization=f'Bearer {auth_token}'), ) @@ -728,7 +863,33 @@ def test_it_empties_workout_notes( assert response.status_code == 200 assert 'success' in data['status'] assert len(data['data']['workouts']) == 1 - assert data['data']['workouts'][0]['notes'] == '' + assert data['data']['workouts'][0]['description'] == description + + def test_it_updates_title_when_it_exceeds_max_limit( + self, + app: Flask, + user_1: User, + sport_1_cycling: Sport, + workout_cycling_user_1: Workout, + ) -> None: + workout_short_id = workout_cycling_user_1.short_id + title = self.random_string(TITLE_MAX_CHARACTERS + 1) + client, auth_token = self.get_test_client_and_auth_token( + app, user_1.email + ) + + response = client.patch( + f'/api/workouts/{workout_short_id}', + content_type='application/json', + json={'title': title}, + headers=dict(Authorization=f'Bearer {auth_token}'), + ) + + data = json.loads(response.data.decode()) + assert response.status_code == 200 + assert 'success' in data['status'] + assert len(data['data']['workouts']) == 1 + assert data['data']['workouts'][0]['title'] == title[:-1] def test_it_returns_403_when_editing_a_workout_wo_gpx_from_different_user( self, @@ -803,6 +964,7 @@ def test_it_updates_a_workout_wo_gpx_with_timezone( assert data['data']['workouts'][0]['ascent'] is None assert data['data']['workouts'][0]['ave_speed'] == 8.0 assert data['data']['workouts'][0]['descent'] is None + assert data['data']['workouts'][0]['description'] is None assert data['data']['workouts'][0]['distance'] == 8.0 assert data['data']['workouts'][0]['max_alt'] is None assert data['data']['workouts'][0]['max_speed'] == 8.0 @@ -870,6 +1032,7 @@ def test_it_updates_only_sport_and_distance_a_workout_wo_gpx( assert data['data']['workouts'][0]['ascent'] is None assert data['data']['workouts'][0]['ave_speed'] == 20.0 assert data['data']['workouts'][0]['descent'] is None + assert data['data']['workouts'][0]['description'] is None assert data['data']['workouts'][0]['distance'] == 20.0 assert data['data']['workouts'][0]['max_alt'] is None assert data['data']['workouts'][0]['max_speed'] == 20.0 diff --git a/fittrackee/tests/workouts/test_workouts_model.py b/fittrackee/tests/workouts/test_workouts_model.py index 9935751b2..348e8584d 100644 --- a/fittrackee/tests/workouts/test_workouts_model.py +++ b/fittrackee/tests/workouts/test_workouts_model.py @@ -53,6 +53,7 @@ def test_serialize_for_workout_without_gpx( assert serialized_workout['bounds'] == [] assert 'creation_date' in serialized_workout assert serialized_workout['descent'] is None + assert serialized_workout['description'] is None assert serialized_workout['distance'] == float(workout.distance) assert serialized_workout['duration'] == str(workout.duration) assert serialized_workout['id'] == workout.short_id @@ -96,6 +97,7 @@ def test_serialize_for_workout_without_gpx_and_with_ascent_and_descent( assert serialized_workout['bounds'] == [] assert 'creation_date' in serialized_workout assert serialized_workout['descent'] == workout.descent + assert serialized_workout['description'] is None assert serialized_workout['distance'] == float(workout.distance) assert serialized_workout['duration'] == str(workout.duration) assert serialized_workout['equipments'] == [] @@ -144,6 +146,7 @@ def test_serialize_for_workout_with_gpx( ] assert 'creation_date' in serialized_workout assert serialized_workout['descent'] is None + assert serialized_workout['description'] is None assert serialized_workout['distance'] == float(workout.distance) assert serialized_workout['duration'] == str(workout.duration) assert serialized_workout['equipments'] == [] diff --git a/fittrackee/tests/workouts/utils.py b/fittrackee/tests/workouts/utils.py index 5c2383e04..3715ec38e 100644 --- a/fittrackee/tests/workouts/utils.py +++ b/fittrackee/tests/workouts/utils.py @@ -6,7 +6,10 @@ def post_a_workout( - app: Flask, gpx_file: str, notes: Optional[str] = None + app: Flask, + gpx_file: str, + notes: Optional[str] = None, + description: Optional[str] = None, ) -> Tuple[str, str]: client = app.test_client() resp_login = client.post( @@ -18,6 +21,8 @@ def post_a_workout( workout_data = '{"sport_id": 1' if notes is not None: workout_data += f', "notes": "{notes}"' + if description is not None: + workout_data += f', "description": "{description}"' workout_data += '}' response = client.post( '/api/workouts', diff --git a/fittrackee/workouts/models.py b/fittrackee/workouts/models.py index 72a64e2ca..b630a62dd 100644 --- a/fittrackee/workouts/models.py +++ b/fittrackee/workouts/models.py @@ -34,6 +34,9 @@ 'LD', # 'Longest Duration' 'MS', # 'Max speed' ] +DESCRIPTION_MAX_CHARACTERS = 10000 +NOTES_MAX_CHARACTERS = 500 +TITLE_MAX_CHARACTERS = 255 def update_records( @@ -201,7 +204,7 @@ class Workout(BaseModel): sport_id = db.Column( db.Integer, db.ForeignKey('sports.id'), index=True, nullable=False ) - title = db.Column(db.String(255), nullable=True) + title = db.Column(db.String(TITLE_MAX_CHARACTERS), nullable=True) gpx = db.Column(db.String(255), nullable=True) creation_date = db.Column(db.DateTime, default=datetime.datetime.utcnow) modification_date = db.Column( @@ -223,7 +226,11 @@ class Workout(BaseModel): map_id = db.Column(db.String(50), index=True, nullable=True) weather_start = db.Column(JSON, nullable=True) weather_end = db.Column(JSON, nullable=True) - notes = db.Column(db.String(500), nullable=True) + notes = db.Column(db.String(NOTES_MAX_CHARACTERS), nullable=True) + description = db.Column( + db.String(DESCRIPTION_MAX_CHARACTERS), nullable=True + ) + segments = db.relationship( 'WorkoutSegment', lazy=True, @@ -293,6 +300,7 @@ def get_workout_data(self) -> Dict: 'weather_start': self.weather_start, 'weather_end': self.weather_end, 'notes': self.notes, + 'description': self.description, } def serialize(self, params: Optional[Dict] = None) -> Dict: diff --git a/fittrackee/workouts/utils/workouts.py b/fittrackee/workouts/utils/workouts.py index a77a4b3f1..c0001a4aa 100644 --- a/fittrackee/workouts/utils/workouts.py +++ b/fittrackee/workouts/utils/workouts.py @@ -16,7 +16,14 @@ from fittrackee.users.models import User, UserSportPreference from ..exceptions import InvalidGPXException, WorkoutException -from ..models import Sport, Workout, WorkoutSegment +from ..models import ( + DESCRIPTION_MAX_CHARACTERS, + NOTES_MAX_CHARACTERS, + TITLE_MAX_CHARACTERS, + Sport, + Workout, + WorkoutSegment, +) from .gpx import get_gpx_info from .maps import generate_map, get_map_hash @@ -133,10 +140,19 @@ def create_workout( distance=distance, duration=duration, ) - new_workout.notes = workout_data.get('notes') + new_workout.notes = ( + None + if workout_data.get('notes') is None + else workout_data['notes'][:NOTES_MAX_CHARACTERS] + ) + new_workout.description = ( + None + if workout_data.get('description') is None + else workout_data['description'][:DESCRIPTION_MAX_CHARACTERS] + ) if title is not None and title != '': - new_workout.title = title + new_workout.title = title[:TITLE_MAX_CHARACTERS] else: sport = Sport.query.filter_by(id=new_workout.sport_id).first() fmt = "%Y-%m-%d %H:%M:%S" @@ -218,9 +234,13 @@ def edit_workout( if workout_data.get('sport_id'): workout.sport_id = workout_data.get('sport_id') if workout_data.get('title'): - workout.title = workout_data.get('title') + workout.title = workout_data['title'][:TITLE_MAX_CHARACTERS] if workout_data.get('notes') is not None: - workout.notes = workout_data.get('notes') + workout.notes = workout_data['notes'][:NOTES_MAX_CHARACTERS] + if workout_data.get('description') is not None: + workout.description = workout_data['description'][ + :DESCRIPTION_MAX_CHARACTERS + ] if workout_data.get('equipments_list') is not None: workout.equipments = workout_data.get('equipments_list') if not workout.gpx: diff --git a/fittrackee/workouts/workouts.py b/fittrackee/workouts/workouts.py index abf775bab..43856fc88 100644 --- a/fittrackee/workouts/workouts.py +++ b/fittrackee/workouts/workouts.py @@ -105,6 +105,7 @@ def get_workouts(auth_user: User) -> Union[Dict, HttpResponse]: "bounds": [], "creation_date": "Sun, 14 Jul 2019 13:51:01 GMT", "descent": null, + "description": null, "distance": 10.0, "duration": "0:17:04", "equipments": [], @@ -218,6 +219,8 @@ def get_workouts(auth_user: User) -> Union[Dict, HttpResponse]: equipments will be returned) :query string notes: any part (or all) of the workout notes, notes matching is case-insensitive + :query string description: any part of the workout description; + description matching is case-insensitive :reqheader Authorization: OAuth 2.0 Bearer Token @@ -250,6 +253,7 @@ def get_workouts(auth_user: User) -> Union[Dict, HttpResponse]: sport_id = params.get('sport_id') title = params.get('title') notes = params.get('notes') + description = params.get('description') if 'equipment_id' in params: if params['equipment_id'] == "none": equipment_id = "none" @@ -272,6 +276,11 @@ def get_workouts(auth_user: User) -> Union[Dict, HttpResponse]: Workout.sport_id == sport_id if sport_id else True, Workout.title.ilike(f"%{title}%") if title else True, Workout.notes.ilike(f"%{notes}%") if notes else True, + ( + Workout.description.ilike(f"%{description}%") + if description + else True + ), Workout.workout_date >= date_from if date_from else True, ( Workout.workout_date < date_to + timedelta(seconds=1) @@ -397,6 +406,7 @@ def get_workout( "bounds": [], "creation_date": "Sun, 14 Jul 2019 18:57:14 GMT", "descent": null, + "description": null, "distance": 12, "duration": "0:45:00", "equipments": [], @@ -965,6 +975,7 @@ def post_workout(auth_user: User) -> Union[Tuple[Dict, int], HttpResponse]: "bounds": [], "creation_date": "Sun, 14 Jul 2019 13:51:01 GMT", "descent": null, + "description": null, "distance": 10.0, "duration": "0:17:04", "equipments": [], @@ -1032,17 +1043,21 @@ def post_workout(auth_user: User) -> Union[Tuple[Dict, int], HttpResponse]: } :form file: gpx file (allowed extensions: .gpx, .zip) - :form data: sport id, equipment id and notes (example: - ``{"sport_id": 1, "notes": "", "equipment_ids": []}``). - Double quotes in notes must be escaped. + :form data: sport id, equipment id, description and notes, for example: + `{"sport_id": 1, "notes": "", "description": "", "equipment_ids": []}`. + Double quotes in notes and description must be escaped. + + The maximum length of notes is 500 characters and that of the + description is 10000 characters. + Otherwise, they will be truncated. - For `equipment_ids`, the id of the equipment to associate with - this workout. - **Note**: for now only one equipment can be associated. - If not provided and default equipment exists for sport, - default equipment will be associated. + For `equipment_ids`, the id of the equipment to associate with + this workout. + **Note**: for now only one equipment can be associated. + If not provided and default equipment exists for sport, + default equipment will be associated. - Notes and equipment ids are not mandatory. + Notes, description and equipment ids are not mandatory. :reqheader Authorization: OAuth 2.0 Bearer Token @@ -1172,6 +1187,7 @@ def post_workout_no_gpx( "bounds": [], "creation_date": "Sun, 14 Jul 2019 13:51:01 GMT", "descent": null, + "description": null, "distance": 10.0, "duration": "0:17:04", "equipments": [], @@ -1242,6 +1258,8 @@ def post_workout_no_gpx( must be provided with descent) : + + diff --git a/fittrackee_client/src/components/Workout/WorkoutDetail/WorkoutNotes.vue b/fittrackee_client/src/components/Workout/WorkoutDetail/WorkoutNotes.vue deleted file mode 100644 index 79cbe4254..000000000 --- a/fittrackee_client/src/components/Workout/WorkoutDetail/WorkoutNotes.vue +++ /dev/null @@ -1,40 +0,0 @@ - - - - - diff --git a/fittrackee_client/src/components/Workout/WorkoutDetail/index.vue b/fittrackee_client/src/components/Workout/WorkoutDetail/index.vue index 943702443..2e7da3489 100644 --- a/fittrackee_client/src/components/Workout/WorkoutDetail/index.vue +++ b/fittrackee_client/src/components/Workout/WorkoutDetail/index.vue @@ -214,6 +214,7 @@ display: flex; ::v-deep(.card) { width: 100%; + margin-bottom: 0; .card-title { padding: $default-padding $default-padding * 1.5; } diff --git a/fittrackee_client/src/components/Workout/WorkoutEdition.vue b/fittrackee_client/src/components/Workout/WorkoutEdition.vue index b23906950..6c79edd76 100644 --- a/fittrackee_client/src/components/Workout/WorkoutEdition.vue +++ b/fittrackee_client/src/components/Workout/WorkoutEdition.vue @@ -1,8 +1,11 @@
    "+$_(Vr(o).replace(/^\n+|\n+$/g,""))+"