From 2e98bdccfe22aed557781dcd5228dd580e5e93c5 Mon Sep 17 00:00:00 2001 From: Sam Date: Sun, 5 Jun 2022 11:08:53 +0200 Subject: [PATCH 1/5] Docker - fix typo --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 5002c532..c4616ebe 100644 --- a/Makefile +++ b/Makefile @@ -74,7 +74,7 @@ docker-stop: docker-compose -f docker-compose-dev.yml stop docker-up: - docker-compose -f docker-compose-dev.yml up fittrackeee + docker-compose -f docker-compose-dev.yml up fittrackee downgrade-db: $(FLASK) db downgrade --directory $(MIGRATIONS) From 68d2582bfe68b9fb89c47b098aa3943be671e084 Mon Sep 17 00:00:00 2001 From: Sam Date: Sat, 11 Jun 2022 11:32:12 +0200 Subject: [PATCH 2/5] update python dependencies --- poetry.lock | 258 ++++++++++++++++++++++++------------------------- pyproject.toml | 4 +- 2 files changed, 131 insertions(+), 131 deletions(-) diff --git a/poetry.lock b/poetry.lock index ff8f4c4b..7b840248 100644 --- a/poetry.lock +++ b/poetry.lock @@ -8,11 +8,11 @@ python-versions = "*" [[package]] name = "alembic" -version = "1.7.7" +version = "1.8.0" description = "A database migration tool for SQLAlchemy." category = "main" optional = false -python-versions = ">=3.6" +python-versions = ">=3.7" [package.dependencies] importlib-metadata = {version = "*", markers = "python_version < \"3.9\""} @@ -195,14 +195,14 @@ test = ["flake8 (==3.7.8)", "hypothesis (==3.55.3)"] [[package]] name = "coverage" -version = "6.4" +version = "6.4.1" description = "Code coverage measurement for Python" category = "dev" optional = false python-versions = ">=3.7" [package.dependencies] -tomli = {version = "*", optional = true, markers = "python_version < \"3.11\" and extra == \"toml\""} +tomli = {version = "*", optional = true, markers = "python_full_version <= \"3.11.0a6\" and extra == \"toml\""} [package.extras] toml = ["tomli"] @@ -569,7 +569,7 @@ python-versions = "*" [[package]] name = "mypy" -version = "0.960" +version = "0.961" description = "Optional static typing for Python" category = "dev" optional = false @@ -990,7 +990,7 @@ sphinx = ">=1.3.1" [[package]] name = "redis" -version = "4.3.1" +version = "4.3.3" description = "Python client for Redis database and key-value store" category = "main" optional = false @@ -1009,20 +1009,20 @@ ocsp = ["cryptography (>=36.0.1)", "pyopenssl (==20.0.1)", "requests (>=2.26.0)" [[package]] name = "requests" -version = "2.27.1" +version = "2.28.0" description = "Python HTTP for Humans." category = "main" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*" +python-versions = ">=3.7, <4" [package.dependencies] certifi = ">=2017.4.17" -charset-normalizer = {version = ">=2.0.0,<2.1.0", markers = "python_version >= \"3\""} -idna = {version = ">=2.5,<4", markers = "python_version >= \"3\""} +charset-normalizer = ">=2.0.0,<2.1.0" +idna = ">=2.5,<4" urllib3 = ">=1.21.1,<1.27" [package.extras] -socks = ["PySocks (>=1.5.6,!=1.5.7)", "win-inet-pton"] +socks = ["PySocks (>=1.5.6,!=1.5.7)"] use_chardet_on_py3 = ["chardet (>=3.0.2,<5)"] [[package]] @@ -1227,7 +1227,7 @@ test = ["pytest"] [[package]] name = "sqlalchemy" -version = "1.4.36" +version = "1.4.37" description = "Database Abstraction Library" category = "main" optional = false @@ -1252,7 +1252,7 @@ mysql_connector = ["mysql-connector-python"] oracle = ["cx_oracle (>=7,<8)", "cx_oracle (>=7)"] postgresql = ["psycopg2 (>=2.7)"] postgresql_asyncpg = ["greenlet (!=0.4.17)", "asyncpg"] -postgresql_pg8000 = ["pg8000 (>=1.16.6)"] +postgresql_pg8000 = ["pg8000 (>=1.16.6,!=1.29.0)"] postgresql_psycopg2binary = ["psycopg2-binary"] postgresql_psycopg2cffi = ["psycopg2cffi"] pymysql = ["pymysql (<1)", "pymysql"] @@ -1314,7 +1314,7 @@ python-versions = ">=3.7" [[package]] name = "trio" -version = "0.20.0" +version = "0.21.0" description = "A friendly Python library for async concurrency and I/O" category = "dev" optional = false @@ -1352,7 +1352,7 @@ python-versions = ">=3.6" [[package]] name = "types-freezegun" -version = "1.1.9" +version = "1.1.10" description = "Typing stubs for freezegun" category = "dev" optional = false @@ -1368,7 +1368,7 @@ python-versions = "*" [[package]] name = "types-requests" -version = "2.27.29" +version = "2.27.30" description = "Typing stubs for requests" category = "dev" optional = false @@ -1466,7 +1466,7 @@ testing = ["pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-flake8", "pytest- [metadata] lock-version = "1.1" python-versions = "^3.7" -content-hash = "e3bc153f918e57b66b117505b29466555da5ed642b0bbdc58bb5bcb9bd2ea688" +content-hash = "fa5be5cc59de72ae3ddb18acb2c0291a7d77296de6427492b46c40d794800335" [metadata.files] alabaster = [ @@ -1474,8 +1474,8 @@ alabaster = [ {file = "alabaster-0.7.12.tar.gz", hash = "sha256:a661d72d58e6ea8a57f7a86e37d86716863ee5e92788398526d58b26a4e4dc02"}, ] alembic = [ - {file = "alembic-1.7.7-py3-none-any.whl", hash = "sha256:29be0856ec7591c39f4e1cb10f198045d890e6e2274cf8da80cb5e721a09642b"}, - {file = "alembic-1.7.7.tar.gz", hash = "sha256:4961248173ead7ce8a21efb3de378f13b8398e6630fab0eb258dc74a8af24c58"}, + {file = "alembic-1.8.0-py3-none-any.whl", hash = "sha256:b5ae4bbfc7d1302ed413989d39474d102e7cfa158f6d5969d2497955ffe85a30"}, + {file = "alembic-1.8.0.tar.gz", hash = "sha256:a2d4d90da70b30e70352cd9455e35873a255a31402a438fe24815758d7a0e5e1"}, ] async-generator = [ {file = "async_generator-1.10-py3-none-any.whl", hash = "sha256:01c7bf666359b4967d2cda0000cc2e4af16a0ae098cbffcb8472fb9e8ad6585b"}, @@ -1612,47 +1612,47 @@ commonmark = [ {file = "commonmark-0.9.1.tar.gz", hash = "sha256:452f9dc859be7f06631ddcb328b6919c67984aca654e5fefb3914d54691aed60"}, ] coverage = [ - {file = "coverage-6.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:50ed480b798febce113709846b11f5d5ed1e529c88d8ae92f707806c50297abf"}, - {file = "coverage-6.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:26f8f92699756cb7af2b30720de0c5bb8d028e923a95b6d0c891088025a1ac8f"}, - {file = "coverage-6.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:60c2147921da7f4d2d04f570e1838db32b95c5509d248f3fe6417e91437eaf41"}, - {file = "coverage-6.4-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:750e13834b597eeb8ae6e72aa58d1d831b96beec5ad1d04479ae3772373a8088"}, - {file = "coverage-6.4-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:af5b9ee0fc146e907aa0f5fb858c3b3da9199d78b7bb2c9973d95550bd40f701"}, - {file = "coverage-6.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:a022394996419142b33a0cf7274cb444c01d2bb123727c4bb0b9acabcb515dea"}, - {file = "coverage-6.4-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:5a78cf2c43b13aa6b56003707c5203f28585944c277c1f3f109c7b041b16bd39"}, - {file = "coverage-6.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:9229d074e097f21dfe0643d9d0140ee7433814b3f0fc3706b4abffd1e3038632"}, - {file = "coverage-6.4-cp310-cp310-win32.whl", hash = "sha256:fb45fe08e1abc64eb836d187b20a59172053999823f7f6ef4f18a819c44ba16f"}, - {file = "coverage-6.4-cp310-cp310-win_amd64.whl", hash = "sha256:3cfd07c5889ddb96a401449109a8b97a165be9d67077df6802f59708bfb07720"}, - {file = "coverage-6.4-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:03014a74023abaf5a591eeeaf1ac66a73d54eba178ff4cb1fa0c0a44aae70383"}, - {file = "coverage-6.4-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9c82f2cd69c71698152e943f4a5a6b83a3ab1db73b88f6e769fabc86074c3b08"}, - {file = "coverage-6.4-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7b546cf2b1974ddc2cb222a109b37c6ed1778b9be7e6b0c0bc0cf0438d9e45a6"}, - {file = "coverage-6.4-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cc173f1ce9ffb16b299f51c9ce53f66a62f4d975abe5640e976904066f3c835d"}, - {file = "coverage-6.4-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:c53ad261dfc8695062fc8811ac7c162bd6096a05a19f26097f411bdf5747aee7"}, - {file = "coverage-6.4-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:eef5292b60b6de753d6e7f2d128d5841c7915fb1e3321c3a1fe6acfe76c38052"}, - {file = "coverage-6.4-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:543e172ce4c0de533fa892034cce260467b213c0ea8e39da2f65f9a477425211"}, - {file = "coverage-6.4-cp37-cp37m-win32.whl", hash = "sha256:00c8544510f3c98476bbd58201ac2b150ffbcce46a8c3e4fb89ebf01998f806a"}, - {file = "coverage-6.4-cp37-cp37m-win_amd64.whl", hash = "sha256:b84ab65444dcc68d761e95d4d70f3cfd347ceca5a029f2ffec37d4f124f61311"}, - {file = "coverage-6.4-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:d548edacbf16a8276af13063a2b0669d58bbcfca7c55a255f84aac2870786a61"}, - {file = "coverage-6.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:033ebec282793bd9eb988d0271c211e58442c31077976c19c442e24d827d356f"}, - {file = "coverage-6.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:742fb8b43835078dd7496c3c25a1ec8d15351df49fb0037bffb4754291ef30ce"}, - {file = "coverage-6.4-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d55fae115ef9f67934e9f1103c9ba826b4c690e4c5bcf94482b8b2398311bf9c"}, - {file = "coverage-6.4-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5cd698341626f3c77784858427bad0cdd54a713115b423d22ac83a28303d1d95"}, - {file = "coverage-6.4-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:62d382f7d77eeeaff14b30516b17bcbe80f645f5cf02bb755baac376591c653c"}, - {file = "coverage-6.4-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:016d7f5cf1c8c84f533a3c1f8f36126fbe00b2ec0ccca47cc5731c3723d327c6"}, - {file = "coverage-6.4-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:69432946f154c6add0e9ede03cc43b96e2ef2733110a77444823c053b1ff5166"}, - {file = "coverage-6.4-cp38-cp38-win32.whl", hash = "sha256:83bd142cdec5e4a5c4ca1d4ff6fa807d28460f9db919f9f6a31babaaa8b88426"}, - {file = "coverage-6.4-cp38-cp38-win_amd64.whl", hash = "sha256:4002f9e8c1f286e986fe96ec58742b93484195defc01d5cc7809b8f7acb5ece3"}, - {file = "coverage-6.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:e4f52c272fdc82e7c65ff3f17a7179bc5f710ebc8ce8a5cadac81215e8326740"}, - {file = "coverage-6.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:b5578efe4038be02d76c344007b13119b2b20acd009a88dde8adec2de4f630b5"}, - {file = "coverage-6.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d8099ea680201c2221f8468c372198ceba9338a5fec0e940111962b03b3f716a"}, - {file = "coverage-6.4-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a00441f5ea4504f5abbc047589d09e0dc33eb447dc45a1a527c8b74bfdd32c65"}, - {file = "coverage-6.4-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2e76bd16f0e31bc2b07e0fb1379551fcd40daf8cdf7e24f31a29e442878a827c"}, - {file = "coverage-6.4-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:8d2e80dd3438e93b19e1223a9850fa65425e77f2607a364b6fd134fcd52dc9df"}, - {file = "coverage-6.4-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:341e9c2008c481c5c72d0e0dbf64980a4b2238631a7f9780b0fe2e95755fb018"}, - {file = "coverage-6.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:21e6686a95025927775ac501e74f5940cdf6fe052292f3a3f7349b0abae6d00f"}, - {file = "coverage-6.4-cp39-cp39-win32.whl", hash = "sha256:968ed5407f9460bd5a591cefd1388cc00a8f5099de9e76234655ae48cfdbe2c3"}, - {file = "coverage-6.4-cp39-cp39-win_amd64.whl", hash = "sha256:e35217031e4b534b09f9b9a5841b9344a30a6357627761d4218818b865d45055"}, - {file = "coverage-6.4-pp36.pp37.pp38-none-any.whl", hash = "sha256:e637ae0b7b481905358624ef2e81d7fb0b1af55f5ff99f9ba05442a444b11e45"}, - {file = "coverage-6.4.tar.gz", hash = "sha256:727dafd7f67a6e1cad808dc884bd9c5a2f6ef1f8f6d2f22b37b96cb0080d4f49"}, + {file = "coverage-6.4.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:f1d5aa2703e1dab4ae6cf416eb0095304f49d004c39e9db1d86f57924f43006b"}, + {file = "coverage-6.4.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:4ce1b258493cbf8aec43e9b50d89982346b98e9ffdfaae8ae5793bc112fb0068"}, + {file = "coverage-6.4.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:83c4e737f60c6936460c5be330d296dd5b48b3963f48634c53b3f7deb0f34ec4"}, + {file = "coverage-6.4.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:84e65ef149028516c6d64461b95a8dbcfce95cfd5b9eb634320596173332ea84"}, + {file = "coverage-6.4.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f69718750eaae75efe506406c490d6fc5a6161d047206cc63ce25527e8a3adad"}, + {file = "coverage-6.4.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:e57816f8ffe46b1df8f12e1b348f06d164fd5219beba7d9433ba79608ef011cc"}, + {file = "coverage-6.4.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:01c5615d13f3dd3aa8543afc069e5319cfa0c7d712f6e04b920431e5c564a749"}, + {file = "coverage-6.4.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:75ab269400706fab15981fd4bd5080c56bd5cc07c3bccb86aab5e1d5a88dc8f4"}, + {file = "coverage-6.4.1-cp310-cp310-win32.whl", hash = "sha256:a7f3049243783df2e6cc6deafc49ea123522b59f464831476d3d1448e30d72df"}, + {file = "coverage-6.4.1-cp310-cp310-win_amd64.whl", hash = "sha256:ee2ddcac99b2d2aec413e36d7a429ae9ebcadf912946b13ffa88e7d4c9b712d6"}, + {file = "coverage-6.4.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:fb73e0011b8793c053bfa85e53129ba5f0250fdc0392c1591fd35d915ec75c46"}, + {file = "coverage-6.4.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:106c16dfe494de3193ec55cac9640dd039b66e196e4641fa8ac396181578b982"}, + {file = "coverage-6.4.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:87f4f3df85aa39da00fd3ec4b5abeb7407e82b68c7c5ad181308b0e2526da5d4"}, + {file = "coverage-6.4.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:961e2fb0680b4f5ad63234e0bf55dfb90d302740ae9c7ed0120677a94a1590cb"}, + {file = "coverage-6.4.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:cec3a0f75c8f1031825e19cd86ee787e87cf03e4fd2865c79c057092e69e3a3b"}, + {file = "coverage-6.4.1-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:129cd05ba6f0d08a766d942a9ed4b29283aff7b2cccf5b7ce279d50796860bb3"}, + {file = "coverage-6.4.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:bf5601c33213d3cb19d17a796f8a14a9eaa5e87629a53979a5981e3e3ae166f6"}, + {file = "coverage-6.4.1-cp37-cp37m-win32.whl", hash = "sha256:269eaa2c20a13a5bf17558d4dc91a8d078c4fa1872f25303dddcbba3a813085e"}, + {file = "coverage-6.4.1-cp37-cp37m-win_amd64.whl", hash = "sha256:f02cbbf8119db68455b9d763f2f8737bb7db7e43720afa07d8eb1604e5c5ae28"}, + {file = "coverage-6.4.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:ffa9297c3a453fba4717d06df579af42ab9a28022444cae7fa605af4df612d54"}, + {file = "coverage-6.4.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:145f296d00441ca703a659e8f3eb48ae39fb083baba2d7ce4482fb2723e050d9"}, + {file = "coverage-6.4.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d67d44996140af8b84284e5e7d398e589574b376fb4de8ccd28d82ad8e3bea13"}, + {file = "coverage-6.4.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2bd9a6fc18aab8d2e18f89b7ff91c0f34ff4d5e0ba0b33e989b3cd4194c81fd9"}, + {file = "coverage-6.4.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3384f2a3652cef289e38100f2d037956194a837221edd520a7ee5b42d00cc605"}, + {file = "coverage-6.4.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:9b3e07152b4563722be523e8cd0b209e0d1a373022cfbde395ebb6575bf6790d"}, + {file = "coverage-6.4.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:1480ff858b4113db2718848d7b2d1b75bc79895a9c22e76a221b9d8d62496428"}, + {file = "coverage-6.4.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:865d69ae811a392f4d06bde506d531f6a28a00af36f5c8649684a9e5e4a85c83"}, + {file = "coverage-6.4.1-cp38-cp38-win32.whl", hash = "sha256:664a47ce62fe4bef9e2d2c430306e1428ecea207ffd68649e3b942fa8ea83b0b"}, + {file = "coverage-6.4.1-cp38-cp38-win_amd64.whl", hash = "sha256:26dff09fb0d82693ba9e6231248641d60ba606150d02ed45110f9ec26404ed1c"}, + {file = "coverage-6.4.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:d9c80df769f5ec05ad21ea34be7458d1dc51ff1fb4b2219e77fe24edf462d6df"}, + {file = "coverage-6.4.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:39ee53946bf009788108b4dd2894bf1349b4e0ca18c2016ffa7d26ce46b8f10d"}, + {file = "coverage-6.4.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f5b66caa62922531059bc5ac04f836860412f7f88d38a476eda0a6f11d4724f4"}, + {file = "coverage-6.4.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fd180ed867e289964404051a958f7cccabdeed423f91a899829264bb7974d3d3"}, + {file = "coverage-6.4.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:84631e81dd053e8a0d4967cedab6db94345f1c36107c71698f746cb2636c63e3"}, + {file = "coverage-6.4.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:8c08da0bd238f2970230c2a0d28ff0e99961598cb2e810245d7fc5afcf1254e8"}, + {file = "coverage-6.4.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:d42c549a8f41dc103a8004b9f0c433e2086add8a719da00e246e17cbe4056f72"}, + {file = "coverage-6.4.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:309ce4a522ed5fca432af4ebe0f32b21d6d7ccbb0f5fcc99290e71feba67c264"}, + {file = "coverage-6.4.1-cp39-cp39-win32.whl", hash = "sha256:fdb6f7bd51c2d1714cea40718f6149ad9be6a2ee7d93b19e9f00934c0f2a74d9"}, + {file = "coverage-6.4.1-cp39-cp39-win_amd64.whl", hash = "sha256:342d4aefd1c3e7f620a13f4fe563154d808b69cccef415415aece4c786665397"}, + {file = "coverage-6.4.1-pp36.pp37.pp38-none-any.whl", hash = "sha256:4803e7ccf93230accb928f3a68f00ffa80a88213af98ed338a57ad021ef06815"}, + {file = "coverage-6.4.1.tar.gz", hash = "sha256:4321f075095a096e70aff1d002030ee612b65a205a0a0f5b815280d5dc58100c"}, ] cryptography = [ {file = "cryptography-37.0.2-cp36-abi3-macosx_10_10_universal2.whl", hash = "sha256:ef15c2df7656763b4ff20a9bc4381d8352e6640cfeb95c2972c38ef508e75181"}, @@ -1875,29 +1875,29 @@ mccabe = [ {file = "mccabe-0.6.1.tar.gz", hash = "sha256:dd8d182285a0fe56bace7f45b5e7d1a6ebcbf524e8f3bd87eb0f125271b8831f"}, ] mypy = [ - {file = "mypy-0.960-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:3a3e525cd76c2c4f90f1449fd034ba21fcca68050ff7c8397bb7dd25dd8b8248"}, - {file = "mypy-0.960-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:7a76dc4f91e92db119b1be293892df8379b08fd31795bb44e0ff84256d34c251"}, - {file = "mypy-0.960-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ffdad80a92c100d1b0fe3d3cf1a4724136029a29afe8566404c0146747114382"}, - {file = "mypy-0.960-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:7d390248ec07fa344b9f365e6ed9d205bd0205e485c555bed37c4235c868e9d5"}, - {file = "mypy-0.960-cp310-cp310-win_amd64.whl", hash = "sha256:925aa84369a07846b7f3b8556ccade1f371aa554f2bd4fb31cb97a24b73b036e"}, - {file = "mypy-0.960-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:239d6b2242d6c7f5822163ee082ef7a28ee02e7ac86c35593ef923796826a385"}, - {file = "mypy-0.960-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:f1ba54d440d4feee49d8768ea952137316d454b15301c44403db3f2cb51af024"}, - {file = "mypy-0.960-cp36-cp36m-win_amd64.whl", hash = "sha256:cb7752b24528c118a7403ee955b6a578bfcf5879d5ee91790667c8ea511d2085"}, - {file = "mypy-0.960-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:826a2917c275e2ee05b7c7b736c1e6549a35b7ea5a198ca457f8c2ebea2cbecf"}, - {file = "mypy-0.960-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:3eabcbd2525f295da322dff8175258f3fc4c3eb53f6d1929644ef4d99b92e72d"}, - {file = "mypy-0.960-cp37-cp37m-win_amd64.whl", hash = "sha256:f47322796c412271f5aea48381a528a613f33e0a115452d03ae35d673e6064f8"}, - {file = "mypy-0.960-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:2c7f8bb9619290836a4e167e2ef1f2cf14d70e0bc36c04441e41487456561409"}, - {file = "mypy-0.960-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:fbfb873cf2b8d8c3c513367febde932e061a5f73f762896826ba06391d932b2a"}, - {file = "mypy-0.960-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:cc537885891382e08129d9862553b3d00d4be3eb15b8cae9e2466452f52b0117"}, - {file = "mypy-0.960-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:481f98c6b24383188c928f33dd2f0776690807e12e9989dd0419edd5c74aa53b"}, - {file = "mypy-0.960-cp38-cp38-win_amd64.whl", hash = "sha256:29dc94d9215c3eb80ac3c2ad29d0c22628accfb060348fd23d73abe3ace6c10d"}, - {file = "mypy-0.960-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:33d53a232bb79057f33332dbbb6393e68acbcb776d2f571ba4b1d50a2c8ba873"}, - {file = "mypy-0.960-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:8d645e9e7f7a5da3ec3bbcc314ebb9bb22c7ce39e70367830eb3c08d0140b9ce"}, - {file = "mypy-0.960-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:85cf2b14d32b61db24ade8ac9ae7691bdfc572a403e3cb8537da936e74713275"}, - {file = "mypy-0.960-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:a85a20b43fa69efc0b955eba1db435e2ffecb1ca695fe359768e0503b91ea89f"}, - {file = "mypy-0.960-cp39-cp39-win_amd64.whl", hash = "sha256:0ebfb3f414204b98c06791af37a3a96772203da60636e2897408517fcfeee7a8"}, - {file = "mypy-0.960-py3-none-any.whl", hash = "sha256:bfd4f6536bd384c27c392a8b8f790fd0ed5c0cf2f63fc2fed7bce56751d53026"}, - {file = "mypy-0.960.tar.gz", hash = "sha256:d4fccf04c1acf750babd74252e0f2db6bd2ac3aa8fe960797d9f3ef41cf2bfd4"}, + {file = "mypy-0.961-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:697540876638ce349b01b6786bc6094ccdaba88af446a9abb967293ce6eaa2b0"}, + {file = "mypy-0.961-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:b117650592e1782819829605a193360a08aa99f1fc23d1d71e1a75a142dc7e15"}, + {file = "mypy-0.961-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:bdd5ca340beffb8c44cb9dc26697628d1b88c6bddf5c2f6eb308c46f269bb6f3"}, + {file = "mypy-0.961-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:3e09f1f983a71d0672bbc97ae33ee3709d10c779beb613febc36805a6e28bb4e"}, + {file = "mypy-0.961-cp310-cp310-win_amd64.whl", hash = "sha256:e999229b9f3198c0c880d5e269f9f8129c8862451ce53a011326cad38b9ccd24"}, + {file = "mypy-0.961-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:b24be97351084b11582fef18d79004b3e4db572219deee0212078f7cf6352723"}, + {file = "mypy-0.961-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:f4a21d01fc0ba4e31d82f0fff195682e29f9401a8bdb7173891070eb260aeb3b"}, + {file = "mypy-0.961-cp36-cp36m-win_amd64.whl", hash = "sha256:439c726a3b3da7ca84a0199a8ab444cd8896d95012c4a6c4a0d808e3147abf5d"}, + {file = "mypy-0.961-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:5a0b53747f713f490affdceef835d8f0cb7285187a6a44c33821b6d1f46ed813"}, + {file = "mypy-0.961-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:0e9f70df36405c25cc530a86eeda1e0867863d9471fe76d1273c783df3d35c2e"}, + {file = "mypy-0.961-cp37-cp37m-win_amd64.whl", hash = "sha256:b88f784e9e35dcaa075519096dc947a388319cb86811b6af621e3523980f1c8a"}, + {file = "mypy-0.961-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:d5aaf1edaa7692490f72bdb9fbd941fbf2e201713523bdb3f4038be0af8846c6"}, + {file = "mypy-0.961-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:9f5f5a74085d9a81a1f9c78081d60a0040c3efb3f28e5c9912b900adf59a16e6"}, + {file = "mypy-0.961-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:f4b794db44168a4fc886e3450201365c9526a522c46ba089b55e1f11c163750d"}, + {file = "mypy-0.961-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:64759a273d590040a592e0f4186539858c948302c653c2eac840c7a3cd29e51b"}, + {file = "mypy-0.961-cp38-cp38-win_amd64.whl", hash = "sha256:63e85a03770ebf403291ec50097954cc5caf2a9205c888ce3a61bd3f82e17569"}, + {file = "mypy-0.961-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:5f1332964963d4832a94bebc10f13d3279be3ce8f6c64da563d6ee6e2eeda932"}, + {file = "mypy-0.961-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:006be38474216b833eca29ff6b73e143386f352e10e9c2fbe76aa8549e5554f5"}, + {file = "mypy-0.961-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:9940e6916ed9371809b35b2154baf1f684acba935cd09928952310fbddaba648"}, + {file = "mypy-0.961-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:a5ea0875a049de1b63b972456542f04643daf320d27dc592d7c3d9cd5d9bf950"}, + {file = "mypy-0.961-cp39-cp39-win_amd64.whl", hash = "sha256:1ece702f29270ec6af25db8cf6185c04c02311c6bb21a69f423d40e527b75c56"}, + {file = "mypy-0.961-py3-none-any.whl", hash = "sha256:03c6cc893e7563e7b2949b969e63f02c000b32502a1b4d1314cabe391aa87d66"}, + {file = "mypy-0.961.tar.gz", hash = "sha256:f730d56cb924d371c26b8eaddeea3cc07d78ff51c521c6d04899ac6904b75492"}, ] mypy-extensions = [ {file = "mypy_extensions-0.4.3-py2.py3-none-any.whl", hash = "sha256:090fedd75945a69ae91ce1303b5824f428daf5a028d2f6ab8a299250a846f15d"}, @@ -2160,12 +2160,12 @@ recommonmark = [ {file = "recommonmark-0.7.1.tar.gz", hash = "sha256:bdb4db649f2222dcd8d2d844f0006b958d627f732415d399791ee436a3686d67"}, ] redis = [ - {file = "redis-4.3.1-py3-none-any.whl", hash = "sha256:84316970995a7adb907a56754d2b92d88fc2d252963dc5ac34c88f0f1a22c25d"}, - {file = "redis-4.3.1.tar.gz", hash = "sha256:94b617b4cd296e94991146f66fc5559756fbefe9493604f0312e4d3298ac63e9"}, + {file = "redis-4.3.3-py3-none-any.whl", hash = "sha256:f57f8df5d238a8ecf92f499b6b21467bfee6c13d89953c27edf1e2bc673622e7"}, + {file = "redis-4.3.3.tar.gz", hash = "sha256:2f7a57cf4af15cd543c4394bcbe2b9148db2606a37edba755368836e3a1d053e"}, ] requests = [ - {file = "requests-2.27.1-py2.py3-none-any.whl", hash = "sha256:f22fa1e554c9ddfd16e6e41ac79759e17be9e492b3587efa038054674760e72d"}, - {file = "requests-2.27.1.tar.gz", hash = "sha256:68d7c56fd5a8999887728ef304a6d12edc7be74f1cfa47714fc8b414525c9a61"}, + {file = "requests-2.28.0-py3-none-any.whl", hash = "sha256:bc7861137fbce630f17b03d3ad02ad0bf978c844f3536d0edda6499dafce2b6f"}, + {file = "requests-2.28.0.tar.gz", hash = "sha256:d568723a7ebd25875d8d1eaf5dfa068cd2fc8194b2e483d7b1f7c81918dbec6b"}, ] responses = [ {file = "responses-0.21.0-py3-none-any.whl", hash = "sha256:2dcc863ba63963c0c3d9ee3fa9507cbe36b7d7b0fccb4f0bdfd9e96c539b1487"}, @@ -2235,42 +2235,42 @@ sphinxcontrib-serializinghtml = [ {file = "sphinxcontrib_serializinghtml-1.1.5-py2.py3-none-any.whl", hash = "sha256:352a9a00ae864471d3a7ead8d7d79f5fc0b57e8b3f95e9867eb9eb28999b92fd"}, ] sqlalchemy = [ - {file = "SQLAlchemy-1.4.36-cp27-cp27m-macosx_10_14_x86_64.whl", hash = "sha256:81e53bd383c2c33de9d578bfcc243f559bd3801a0e57f2bcc9a943c790662e0c"}, - {file = "SQLAlchemy-1.4.36-cp27-cp27m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:6e1fe00ee85c768807f2a139b83469c1e52a9ffd58a6eb51aa7aeb524325ab18"}, - {file = "SQLAlchemy-1.4.36-cp27-cp27m-win32.whl", hash = "sha256:d57ac32f8dc731fddeb6f5d1358b4ca5456e72594e664769f0a9163f13df2a31"}, - {file = "SQLAlchemy-1.4.36-cp27-cp27m-win_amd64.whl", hash = "sha256:fca8322e04b2dde722fcb0558682740eebd3bd239bea7a0d0febbc190e99dc15"}, - {file = "SQLAlchemy-1.4.36-cp27-cp27mu-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:53d2d9ee93970c969bc4e3c78b1277d7129554642f6ffea039c282c7dc4577bc"}, - {file = "SQLAlchemy-1.4.36-cp310-cp310-macosx_10_15_x86_64.whl", hash = "sha256:f0394a3acfb8925db178f7728adb38c027ed7e303665b225906bfa8099dc1ce8"}, - {file = "SQLAlchemy-1.4.36-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:09c606d8238feae2f360b8742ffbe67741937eb0a05b57f536948d198a3def96"}, - {file = "SQLAlchemy-1.4.36-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:8d07fe2de0325d06e7e73281e9a9b5e259fbd7cbfbe398a0433cbb0082ad8fa7"}, - {file = "SQLAlchemy-1.4.36-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5041474dcab7973baa91ec1f3112049a9dd4652898d6a95a6a895ff5c58beb6b"}, - {file = "SQLAlchemy-1.4.36-cp310-cp310-win32.whl", hash = "sha256:be094460930087e50fd08297db9d7aadaed8408ad896baf758e9190c335632da"}, - {file = "SQLAlchemy-1.4.36-cp310-cp310-win_amd64.whl", hash = "sha256:64d796e9af522162f7f2bf7a3c5531a0a550764c426782797bbeed809d0646c5"}, - {file = "SQLAlchemy-1.4.36-cp36-cp36m-macosx_10_14_x86_64.whl", hash = "sha256:a0ae3aa2e86a4613f2d4c49eb7da23da536e6ce80b2bfd60bbb2f55fc02b0b32"}, - {file = "SQLAlchemy-1.4.36-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5d50cb71c1dbed70646d521a0975fb0f92b7c3f84c61fa59e07be23a1aaeecfc"}, - {file = "SQLAlchemy-1.4.36-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:16abf35af37a3d5af92725fc9ec507dd9e9183d261c2069b6606d60981ed1c6e"}, - {file = "SQLAlchemy-1.4.36-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5864a83bd345871ad9699ce466388f836db7572003d67d9392a71998092210e3"}, - {file = "SQLAlchemy-1.4.36-cp36-cp36m-win32.whl", hash = "sha256:fbf8c09fe9728168f8cc1b40c239eab10baf9c422c18be7f53213d70434dea43"}, - {file = "SQLAlchemy-1.4.36-cp36-cp36m-win_amd64.whl", hash = "sha256:6e859fa96605027bd50d8e966db1c4e1b03e7b3267abbc4b89ae658c99393c58"}, - {file = "SQLAlchemy-1.4.36-cp37-cp37m-macosx_10_14_x86_64.whl", hash = "sha256:166a3887ec355f7d2f12738f7fa25dc8ac541867147a255f790f2f41f614cb44"}, - {file = "SQLAlchemy-1.4.36-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2e885548da361aa3f8a9433db4cfb335b2107e533bf314359ae3952821d84b3e"}, - {file = "SQLAlchemy-1.4.36-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:5c90ef955d429966d84326d772eb34333178737ebb669845f1d529eb00c75e72"}, - {file = "SQLAlchemy-1.4.36-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7a052bd9f53004f8993c624c452dfad8ec600f572dd0ed0445fbe64b22f5570e"}, - {file = "SQLAlchemy-1.4.36-cp37-cp37m-win32.whl", hash = "sha256:dce3468bf1fc12374a1a732c9efd146ce034f91bb0482b602a9311cb6166a920"}, - {file = "SQLAlchemy-1.4.36-cp37-cp37m-win_amd64.whl", hash = "sha256:6cb4c4f57a20710cea277edf720d249d514e587f796b75785ad2c25e1c0fed26"}, - {file = "SQLAlchemy-1.4.36-cp38-cp38-macosx_10_14_x86_64.whl", hash = "sha256:e74ce103b81c375c3853b436297952ef8d7863d801dcffb6728d01544e5191b5"}, - {file = "SQLAlchemy-1.4.36-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8b20c4178ead9bc398be479428568ff31b6c296eb22e75776273781a6551973f"}, - {file = "SQLAlchemy-1.4.36-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:af2587ae11400157753115612d6c6ad255143efba791406ad8a0cbcccf2edcb3"}, - {file = "SQLAlchemy-1.4.36-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:83cf3077712be9f65c9aaa0b5bc47bc1a44789fd45053e2e3ecd59ff17c63fe9"}, - {file = "SQLAlchemy-1.4.36-cp38-cp38-win32.whl", hash = "sha256:ce20f5da141f8af26c123ebaa1b7771835ca6c161225ce728962a79054f528c3"}, - {file = "SQLAlchemy-1.4.36-cp38-cp38-win_amd64.whl", hash = "sha256:316c7e5304dda3e3ad711569ac5d02698bbc71299b168ac56a7076b86259f7ea"}, - {file = "SQLAlchemy-1.4.36-cp39-cp39-macosx_10_15_x86_64.whl", hash = "sha256:f522214f6749bc073262529c056f7dfd660f3b5ec4180c5354d985eb7219801e"}, - {file = "SQLAlchemy-1.4.36-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2ecac4db8c1aa4a269f5829df7e706639a24b780d2ac46b3e485cbbd27ec0028"}, - {file = "SQLAlchemy-1.4.36-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:b3db741beaa983d4cbf9087558620e7787106319f7e63a066990a70657dd6b35"}, - {file = "SQLAlchemy-1.4.36-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2ec89bf98cc6a0f5d1e28e3ad28e9be6f3b4bdbd521a4053c7ae8d5e1289a8a1"}, - {file = "SQLAlchemy-1.4.36-cp39-cp39-win32.whl", hash = "sha256:e12532c4d3f614678623da5d852f038ace1f01869b89f003ed6fe8c793f0c6a3"}, - {file = "SQLAlchemy-1.4.36-cp39-cp39-win_amd64.whl", hash = "sha256:cb441ca461bf97d00877b607f132772644b623518b39ced54da433215adce691"}, - {file = "SQLAlchemy-1.4.36.tar.gz", hash = "sha256:64678ac321d64a45901ef2e24725ec5e783f1f4a588305e196431447e7ace243"}, + {file = "SQLAlchemy-1.4.37-cp27-cp27m-macosx_10_14_x86_64.whl", hash = "sha256:d9050b0c4a7f5538650c74aaba5c80cd64450e41c206f43ea6d194ae6d060ff9"}, + {file = "SQLAlchemy-1.4.37-cp27-cp27m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:b4c92823889cf9846b972ee6db30c0e3a92c0ddfc76c6060a6cda467aa5fb694"}, + {file = "SQLAlchemy-1.4.37-cp27-cp27m-win32.whl", hash = "sha256:b55932fd0e81b43f4aff397c8ad0b3c038f540af37930423ab8f47a20b117e4c"}, + {file = "SQLAlchemy-1.4.37-cp27-cp27m-win_amd64.whl", hash = "sha256:4a17c1a1152ca4c29d992714aa9df3054da3af1598e02134f2e7314a32ef69d8"}, + {file = "SQLAlchemy-1.4.37-cp27-cp27mu-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:ffe487570f47536b96eff5ef2b84034a8ba4e19aab5ab7647e677d94a119ea55"}, + {file = "SQLAlchemy-1.4.37-cp310-cp310-macosx_10_15_x86_64.whl", hash = "sha256:78363f400fbda80f866e8e91d37d36fe6313ff847ded08674e272873c1377ea5"}, + {file = "SQLAlchemy-1.4.37-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7ee34c85cbda7779d66abac392c306ec78c13f5c73a1f01b8b767916d4895d23"}, + {file = "SQLAlchemy-1.4.37-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:8b38e088659b30c2ca0af63e5d139fad1779a7925d75075a08717a21c406c0f6"}, + {file = "SQLAlchemy-1.4.37-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6629c79967a6c92e33fad811599adf9bc5cee6e504a1027bbf9cc1b6fb2d276d"}, + {file = "SQLAlchemy-1.4.37-cp310-cp310-win32.whl", hash = "sha256:2aac2a685feb9882d09f457f4e5586c885d578af4e97a2b759e91e8c457cbce5"}, + {file = "SQLAlchemy-1.4.37-cp310-cp310-win_amd64.whl", hash = "sha256:7a44683cf97744a405103ef8fdd31199e9d7fc41b4a67e9044523b29541662b0"}, + {file = "SQLAlchemy-1.4.37-cp36-cp36m-macosx_10_14_x86_64.whl", hash = "sha256:cffc67cdd07f0e109a1fc83e333972ae423ea5ad414585b63275b66b870ea62b"}, + {file = "SQLAlchemy-1.4.37-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:17417327b87a0f703c9a20180f75e953315207d048159aff51822052f3e33e69"}, + {file = "SQLAlchemy-1.4.37-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:aaa0e90e527066409c2ea5676282cf4afb4a40bb9dce0f56c8ec2768bff22a6e"}, + {file = "SQLAlchemy-1.4.37-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4c1d9fb3931e27d59166bb5c4dcc911400fee51082cfba66ceb19ac954ade068"}, + {file = "SQLAlchemy-1.4.37-cp36-cp36m-win32.whl", hash = "sha256:0e7fd52e48e933771f177c2a1a484b06ea03774fc7741651ebdf19985a34037c"}, + {file = "SQLAlchemy-1.4.37-cp36-cp36m-win_amd64.whl", hash = "sha256:eec39a17bab3f69c44c9df4e0ed87c7306f2d2bf1eca3070af644927ec4199fa"}, + {file = "SQLAlchemy-1.4.37-cp37-cp37m-macosx_10_15_x86_64.whl", hash = "sha256:caca6acf3f90893d7712ae2c6616ecfeac3581b4cc677c928a330ce6fbad4319"}, + {file = "SQLAlchemy-1.4.37-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:50c8eaf44c3fed5ba6758d375de25f163e46137c39fda3a72b9ee1d1bb327dfc"}, + {file = "SQLAlchemy-1.4.37-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:139c50b9384e6d32a74fc4dcd0e9717f343ed38f95dbacf832c782c68e3862f3"}, + {file = "SQLAlchemy-1.4.37-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d4c3b009c9220ae6e33f17b45f43fb46b9a1d281d76118405af13e26376f2e11"}, + {file = "SQLAlchemy-1.4.37-cp37-cp37m-win32.whl", hash = "sha256:9785d6f962d2c925aeb06a7539ac9d16608877da6aeaaf341984b3693ae80a02"}, + {file = "SQLAlchemy-1.4.37-cp37-cp37m-win_amd64.whl", hash = "sha256:3197441772dc3b1c6419f13304402f2418a18d7fe78000aa5a026e7100836739"}, + {file = "SQLAlchemy-1.4.37-cp38-cp38-macosx_10_15_x86_64.whl", hash = "sha256:3862a069a24f354145e01a76c7c720c263d62405fe5bed038c46a7ce900f5dd6"}, + {file = "SQLAlchemy-1.4.37-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4e8706919829d455a9fa687c6bbd1b048e36fec3919a59f2d366247c2bfdbd9c"}, + {file = "SQLAlchemy-1.4.37-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:06ec11a5e6a4b6428167d3ce33b5bd455c020c867dabe3e6951fa98836e0741d"}, + {file = "SQLAlchemy-1.4.37-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d58f2d9d1a4b1459e8956a0153a4119da80f54ee5a9ea623cd568e99459a3ef1"}, + {file = "SQLAlchemy-1.4.37-cp38-cp38-win32.whl", hash = "sha256:d6927c9e3965b194acf75c8e0fb270b4d54512db171f65faae15ef418721996e"}, + {file = "SQLAlchemy-1.4.37-cp38-cp38-win_amd64.whl", hash = "sha256:a91d0668cada27352432f15b92ac3d43e34d8f30973fa8b86f5e9fddee928f3b"}, + {file = "SQLAlchemy-1.4.37-cp39-cp39-macosx_10_15_x86_64.whl", hash = "sha256:f9940528bf9c4df9e3c3872d23078b6b2da6431c19565637c09f1b88a427a684"}, + {file = "SQLAlchemy-1.4.37-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:29a742c29fea12259f1d2a9ee2eb7fe4694a85d904a4ac66d15e01177b17ad7f"}, + {file = "SQLAlchemy-1.4.37-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:7e579d6e281cc937bdb59917017ab98e618502067e04efb1d24ac168925e1d2a"}, + {file = "SQLAlchemy-1.4.37-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a940c551cfbd2e1e646ceea2777944425f5c3edff914bc808fe734d9e66f8d71"}, + {file = "SQLAlchemy-1.4.37-cp39-cp39-win32.whl", hash = "sha256:5e4e517ce72fad35cce364a01aff165f524449e9c959f1837dc71088afa2824c"}, + {file = "SQLAlchemy-1.4.37-cp39-cp39-win_amd64.whl", hash = "sha256:c37885f83b59e248bebe2b35beabfbea398cb40960cdc6d3a76eac863d4e1938"}, + {file = "SQLAlchemy-1.4.37.tar.gz", hash = "sha256:3688f92c62db6c5df268e2264891078f17ecb91e3141b400f2e28d0f75796dea"}, ] staticmap = [ {file = "staticmap-0.5.5.tar.gz", hash = "sha256:007c507b4d42e00eaba179649753f2f8d69d4ece3028736e18d9e86493044387"}, @@ -2292,8 +2292,8 @@ tomli = [ {file = "tomli-2.0.1.tar.gz", hash = "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"}, ] trio = [ - {file = "trio-0.20.0-py3-none-any.whl", hash = "sha256:fb2d48e4eab0dfb786a472cd514aaadc71e3445b203bc300bad93daa75d77c1a"}, - {file = "trio-0.20.0.tar.gz", hash = "sha256:670a52d3115d0e879e1ac838a4eb999af32f858163e3a704fe4839de2a676070"}, + {file = "trio-0.21.0-py3-none-any.whl", hash = "sha256:4dc0bf9d5cc78767fc4516325b6d80cc0968705a31d0eec2ecd7cdda466265b0"}, + {file = "trio-0.21.0.tar.gz", hash = "sha256:523f39b7b69eef73501cebfe1aafd400a9aad5b03543a0eded52952488ff1c13"}, ] trio-websocket = [ {file = "trio-websocket-0.9.2.tar.gz", hash = "sha256:a3d34de8fac26023eee701ed1e7bf4da9a8326b61a62934ec9e53b64970fd8fe"}, @@ -2326,16 +2326,16 @@ typed-ast = [ {file = "typed_ast-1.5.4.tar.gz", hash = "sha256:39e21ceb7388e4bb37f4c679d72707ed46c2fbf2a5609b8b8ebc4b067d977df2"}, ] types-freezegun = [ - {file = "types-freezegun-1.1.9.tar.gz", hash = "sha256:6f05108d468baecadf999873bd37e57b25ceb35d35d3f83e7a742f25d6fe8b0e"}, - {file = "types_freezegun-1.1.9-py3-none-any.whl", hash = "sha256:fe1dd73372d96358dcb93e3aeb66d39f6ac63749e0724f13554cc145e2120efe"}, + {file = "types-freezegun-1.1.10.tar.gz", hash = "sha256:cb3a2d2eee950eacbaac0673ab50499823365ceb8c655babb1544a41446409ec"}, + {file = "types_freezegun-1.1.10-py3-none-any.whl", hash = "sha256:fadebe72213e0674036153366205038e1f95c8ca96deb4ef9b71ddc15413543e"}, ] types-pytz = [ {file = "types-pytz-2021.3.8.tar.gz", hash = "sha256:41253a3a2bf028b6a3f17b58749a692d955af0f74e975de94f6f4d2d3cd01dbd"}, {file = "types_pytz-2021.3.8-py3-none-any.whl", hash = "sha256:aef4a917ab28c585d3f474bfce4f4b44b91e95d9d47d4de29dd845e0db8e3910"}, ] types-requests = [ - {file = "types-requests-2.27.29.tar.gz", hash = "sha256:fb453b3a76a48eca66381cea8004feaaea12835e838196f5c7ac87c75c5c19ef"}, - {file = "types_requests-2.27.29-py3-none-any.whl", hash = "sha256:014f4f82db7b96c41feea9adaea30e68cd64c230eeab34b70c29bebb26ec74ac"}, + {file = "types-requests-2.27.30.tar.gz", hash = "sha256:ca8d7cc549c3d10dbcb3c69c1b53e3ffd1270089c1001a65c1e9e1017eb5e704"}, + {file = "types_requests-2.27.30-py3-none-any.whl", hash = "sha256:b9b6cd0a6e5d500e56419b79f44ec96f316e9375ff6c8ee566c39d25e9612621"}, ] types-urllib3 = [ {file = "types-urllib3-1.26.15.tar.gz", hash = "sha256:c89283541ef92e344b7f59f83ea9b5a295b16366ceee3f25ecfc5593c79f794e"}, diff --git a/pyproject.toml b/pyproject.toml index ef2b778a..1dcfdfff 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -38,14 +38,14 @@ python-forecastio = "^1.4" pytz = "^2022.1" shortuuid = "^1.0.9" staticmap = "^0.5.4" -SQLAlchemy = "1.4.36" +SQLAlchemy = "1.4.37" pyOpenSSL = "^22.0" ua-parser = "^0.10.0" [tool.poetry.dev-dependencies] black = "^22.3" freezegun = "^1.2" -mypy = "^0.960" +mypy = "^0.961" pytest = "^7.1" pytest-black = "^0.3.12" pytest-cov = "^3.0" From 5874933643e4f3e4efd0b3974cc82fb4fad8c90d Mon Sep 17 00:00:00 2001 From: Sam Date: Sat, 11 Jun 2022 11:33:08 +0200 Subject: [PATCH 3/5] API - fix typo --- .../tests/workouts/test_workouts_api_0_get.py | 6 ++-- .../workouts/test_workouts_api_1_post.py | 22 +++++++-------- .../workouts/test_workouts_api_2_patch.py | 28 +++++++++---------- .../workouts/test_workouts_api_3_delete.py | 18 ++++++------ fittrackee/tests/workouts/utils.py | 2 +- fittrackee/workouts/workouts.py | 20 ++++++------- 6 files changed, 48 insertions(+), 48 deletions(-) diff --git a/fittrackee/tests/workouts/test_workouts_api_0_get.py b/fittrackee/tests/workouts/test_workouts_api_0_get.py index beba7c44..cafcb620 100644 --- a/fittrackee/tests/workouts/test_workouts_api_0_get.py +++ b/fittrackee/tests/workouts/test_workouts_api_0_get.py @@ -969,7 +969,7 @@ class TestGetWorkoutsWithFiltersAndPagination(ApiTestCaseMixin): class TestGetWorkout(ApiTestCaseMixin): - def test_it_gets_an_workout( + def test_it_gets_a_workout( self, app: Flask, user_1: User, @@ -1105,7 +1105,7 @@ class TestGetWorkout(ApiTestCaseMixin): response, f'no gpx file for this workout (id: {workout_short_id})' ) - def test_it_returns_500_on_getting_gpx_if_an_workout_has_invalid_gpx_pathname( # noqa + def test_it_returns_500_on_getting_gpx_if_a_workout_has_invalid_gpx_pathname( # noqa self, app: Flask, user_1: User, @@ -1125,7 +1125,7 @@ class TestGetWorkout(ApiTestCaseMixin): data = self.assert_500(response) assert 'data' not in data - def test_it_returns_500_on_getting_chart_data_if_an_workout_has_invalid_gpx_pathname( # noqa + def test_it_returns_500_on_getting_chart_data_if_a_workout_has_invalid_gpx_pathname( # noqa self, app: Flask, user_1: User, diff --git a/fittrackee/tests/workouts/test_workouts_api_1_post.py b/fittrackee/tests/workouts/test_workouts_api_1_post.py index f6ff5cac..5e56f003 100644 --- a/fittrackee/tests/workouts/test_workouts_api_1_post.py +++ b/fittrackee/tests/workouts/test_workouts_api_1_post.py @@ -222,7 +222,7 @@ class TestPostWorkoutWithGpx(ApiTestCaseMixin, CallArgsMixin): self.assert_401(response) - def test_it_adds_an_workout_with_gpx_file( + def test_it_adds_a_workout_with_gpx_file( self, app: Flask, user_1: User, sport_1_cycling: Sport, gpx_file: str ) -> None: client, auth_token = self.get_test_client_and_auth_token( @@ -248,7 +248,7 @@ class TestPostWorkoutWithGpx(ApiTestCaseMixin, CallArgsMixin): assert 'just a workout' == data['data']['workouts'][0]['title'] assert_workout_data_with_gpx(data) - def test_it_adds_an_workout_with_gpx_without_name( + def test_it_adds_a_workout_with_gpx_without_name( self, app: Flask, user_1: User, @@ -281,7 +281,7 @@ class TestPostWorkoutWithGpx(ApiTestCaseMixin, CallArgsMixin): ) assert_workout_data_with_gpx(data) - def test_it_adds_an_workout_with_gpx_without_name_timezone( + def test_it_adds_a_workout_with_gpx_without_name_timezone( self, app: Flask, user_1: User, @@ -606,7 +606,7 @@ class TestPostWorkoutWithoutGpx(ApiTestCaseMixin): self.assert_401(response) - def test_it_adds_an_workout_without_gpx( + def test_it_adds_a_workout_without_gpx( self, app: Flask, user_1: User, sport_1_cycling: Sport ) -> None: client, auth_token = self.get_test_client_and_auth_token( @@ -953,12 +953,12 @@ class TestPostAndGetWorkoutWithGpx(ApiTestCaseMixin): self.assert_500(response) - def test_it_gets_an_workout_created_with_gpx( + def test_it_gets_a_workout_created_with_gpx( self, app: Flask, user_1: User, sport_1_cycling: Sport, gpx_file: str ) -> None: return self.workout_assertion(app, user_1, gpx_file, False) - def test_it_gets_an_workout_created_with_gpx_with_segments( + def test_it_gets_a_workout_created_with_gpx_with_segments( self, app: Flask, user_1: User, @@ -969,7 +969,7 @@ class TestPostAndGetWorkoutWithGpx(ApiTestCaseMixin): app, user_1, gpx_file_with_segments, True ) - def test_it_gets_chart_data_for_an_workout_created_with_gpx( + def test_it_gets_chart_data_for_a_workout_created_with_gpx( self, app: Flask, user_1: User, sport_1_cycling: Sport, gpx_file: str ) -> None: client, auth_token = self.get_test_client_and_auth_token( @@ -1000,7 +1000,7 @@ class TestPostAndGetWorkoutWithGpx(ApiTestCaseMixin): assert data['message'] == '' assert data['data']['chart_data'] != '' - def test_it_gets_segment_chart_data_for_an_workout_created_with_gpx( + def test_it_gets_segment_chart_data_for_a_workout_created_with_gpx( self, app: Flask, user_1: User, sport_1_cycling: Sport, gpx_file: str ) -> None: client, auth_token = self.get_test_client_and_auth_token( @@ -1125,7 +1125,7 @@ class TestPostAndGetWorkoutWithGpx(ApiTestCaseMixin): class TestPostAndGetWorkoutWithoutGpx(ApiTestCaseMixin): - def test_it_add_and_gets_an_workout_wo_gpx( + def test_it_add_and_gets_a_workout_wo_gpx( self, app: Flask, user_1: User, sport_1_cycling: Sport ) -> None: client, auth_token = self.get_test_client_and_auth_token( @@ -1158,7 +1158,7 @@ class TestPostAndGetWorkoutWithoutGpx(ApiTestCaseMixin): assert len(data['data']['workouts']) == 1 assert_workout_data_wo_gpx(data) - def test_it_adds_and_gets_an_workout_wo_gpx_notes( + def test_it_adds_and_gets_a_workout_wo_gpx_notes( self, app: Flask, user_1: User, sport_1_cycling: Sport ) -> None: client, auth_token = self.get_test_client_and_auth_token( @@ -1194,7 +1194,7 @@ class TestPostAndGetWorkoutWithoutGpx(ApiTestCaseMixin): class TestPostAndGetWorkoutUsingTimezones(ApiTestCaseMixin): - def test_it_add_and_gets_an_workout_wo_gpx_with_timezone( + def test_it_add_and_gets_a_workout_wo_gpx_with_timezone( self, app: Flask, user_1: User, sport_1_cycling: Sport ) -> None: user_1.timezone = 'Europe/Paris' diff --git a/fittrackee/tests/workouts/test_workouts_api_2_patch.py b/fittrackee/tests/workouts/test_workouts_api_2_patch.py index 63bd919f..cf3143bc 100644 --- a/fittrackee/tests/workouts/test_workouts_api_2_patch.py +++ b/fittrackee/tests/workouts/test_workouts_api_2_patch.py @@ -9,7 +9,7 @@ from fittrackee.users.models import User from fittrackee.workouts.models import Sport, Workout from ..mixins import ApiTestCaseMixin -from .utils import get_random_short_id, post_an_workout +from .utils import get_random_short_id, post_a_workout def assert_workout_data_with_gpx(data: Dict, sport_id: int) -> None: @@ -56,7 +56,7 @@ def assert_workout_data_with_gpx(data: Dict, sport_id: int) -> None: class TestEditWorkoutWithGpx(ApiTestCaseMixin): - def test_it_updates_title_for_an_workout_with_gpx( + def test_it_updates_title_for_a_workout_with_gpx( self, app: Flask, user_1: User, @@ -64,7 +64,7 @@ class TestEditWorkoutWithGpx(ApiTestCaseMixin): sport_2_running: Sport, gpx_file: str, ) -> None: - token, workout_short_id = post_an_workout(app, gpx_file) + token, workout_short_id = post_a_workout(app, gpx_file) client = app.test_client() response = client.patch( @@ -100,7 +100,7 @@ class TestEditWorkoutWithGpx(ApiTestCaseMixin): sport_2_running: Sport, gpx_file: str, ) -> None: - token, workout_short_id = post_an_workout(app, gpx_file) + token, workout_short_id = post_a_workout(app, gpx_file) client = app.test_client() response = client.patch( @@ -124,7 +124,7 @@ class TestEditWorkoutWithGpx(ApiTestCaseMixin): sport_2_running: Sport, gpx_file: str, ) -> None: - token, workout_short_id = post_an_workout( + token, workout_short_id = post_a_workout( app, gpx_file, notes=uuid4().hex ) client = app.test_client() @@ -142,7 +142,7 @@ class TestEditWorkoutWithGpx(ApiTestCaseMixin): assert len(data['data']['workouts']) == 1 assert data['data']['workouts'][0]['notes'] == '' - def test_it_raises_403_when_editing_an_workout_from_different_user( + def test_it_raises_403_when_editing_a_workout_from_different_user( self, app: Flask, user_1: User, @@ -151,7 +151,7 @@ class TestEditWorkoutWithGpx(ApiTestCaseMixin): sport_2_running: Sport, gpx_file: str, ) -> None: - _, workout_short_id = post_an_workout(app, gpx_file) + _, workout_short_id = post_a_workout(app, gpx_file) client, auth_token = self.get_test_client_and_auth_token( app, user_2.email ) @@ -173,7 +173,7 @@ class TestEditWorkoutWithGpx(ApiTestCaseMixin): sport_2_running: Sport, gpx_file: str, ) -> None: - token, workout_short_id = post_an_workout(app, gpx_file) + token, workout_short_id = post_a_workout(app, gpx_file) client = app.test_client() response = client.patch( @@ -194,7 +194,7 @@ class TestEditWorkoutWithGpx(ApiTestCaseMixin): def test_it_returns_400_if_payload_is_empty( self, app: Flask, user_1: User, sport_1_cycling: Sport, gpx_file: str ) -> None: - token, workout_short_id = post_an_workout(app, gpx_file) + token, workout_short_id = post_a_workout(app, gpx_file) client = app.test_client() response = client.patch( @@ -209,7 +209,7 @@ class TestEditWorkoutWithGpx(ApiTestCaseMixin): def test_it_raises_500_if_sport_does_not_exists( self, app: Flask, user_1: User, sport_1_cycling: Sport, gpx_file: str ) -> None: - token, workout_short_id = post_an_workout(app, gpx_file) + token, workout_short_id = post_a_workout(app, gpx_file) client = app.test_client() response = client.patch( @@ -223,7 +223,7 @@ class TestEditWorkoutWithGpx(ApiTestCaseMixin): class TestEditWorkoutWithoutGpx(ApiTestCaseMixin): - def test_it_updates_an_workout_wo_gpx( + def test_it_updates_a_workout_wo_gpx( self, app: Flask, user_1: User, @@ -364,7 +364,7 @@ class TestEditWorkoutWithoutGpx(ApiTestCaseMixin): assert len(data['data']['workouts']) == 1 assert data['data']['workouts'][0]['notes'] == '' - def test_returns_403_when_editing_an_workout_wo_gpx_from_different_user( + def test_returns_403_when_editing_a_workout_wo_gpx_from_different_user( self, app: Flask, user_1: User, @@ -393,7 +393,7 @@ class TestEditWorkoutWithoutGpx(ApiTestCaseMixin): self.assert_403(response) - def test_it_updates_an_workout_wo_gpx_with_timezone( + def test_it_updates_a_workout_wo_gpx_with_timezone( self, app: Flask, user_1_paris: User, @@ -468,7 +468,7 @@ class TestEditWorkoutWithoutGpx(ApiTestCaseMixin): assert records[3]['workout_date'] == 'Tue, 15 May 2018 13:05:00 GMT' assert records[3]['value'] == 8.0 - def test_it_updates_only_sport_and_distance_an_workout_wo_gpx( + def test_it_updates_only_sport_and_distance_a_workout_wo_gpx( self, app: Flask, user_1: User, diff --git a/fittrackee/tests/workouts/test_workouts_api_3_delete.py b/fittrackee/tests/workouts/test_workouts_api_3_delete.py index d6c9adfe..86c5684f 100644 --- a/fittrackee/tests/workouts/test_workouts_api_3_delete.py +++ b/fittrackee/tests/workouts/test_workouts_api_3_delete.py @@ -7,7 +7,7 @@ from fittrackee.users.models import User from fittrackee.workouts.models import Sport, Workout from ..mixins import ApiTestCaseMixin -from .utils import get_random_short_id, post_an_workout +from .utils import get_random_short_id, post_a_workout def get_gpx_filepath(workout_id: int) -> str: @@ -16,10 +16,10 @@ def get_gpx_filepath(workout_id: int) -> str: class TestDeleteWorkoutWithGpx(ApiTestCaseMixin): - def test_it_deletes_an_workout_with_gpx( + def test_it_deletes_a_workout_with_gpx( self, app: Flask, user_1: User, sport_1_cycling: Sport, gpx_file: str ) -> None: - token, workout_short_id = post_an_workout(app, gpx_file) + token, workout_short_id = post_a_workout(app, gpx_file) client = app.test_client() response = client.delete( @@ -29,7 +29,7 @@ class TestDeleteWorkoutWithGpx(ApiTestCaseMixin): assert response.status_code == 204 - def test_it_returns_403_when_deleting_an_workout_from_different_user( + def test_it_returns_403_when_deleting_a_workout_from_different_user( self, app: Flask, user_1: User, @@ -37,7 +37,7 @@ class TestDeleteWorkoutWithGpx(ApiTestCaseMixin): sport_1_cycling: Sport, gpx_file: str, ) -> None: - _, workout_short_id = post_an_workout(app, gpx_file) + _, workout_short_id = post_a_workout(app, gpx_file) client, auth_token = self.get_test_client_and_auth_token( app, user_2.email ) @@ -64,10 +64,10 @@ class TestDeleteWorkoutWithGpx(ApiTestCaseMixin): data = self.assert_404(response) assert 'not found' in data['status'] - def test_it_returns_500_when_deleting_an_workout_with_gpx_invalid_file( + def test_it_returns_500_when_deleting_a_workout_with_gpx_invalid_file( self, app: Flask, user_1: User, sport_1_cycling: Sport, gpx_file: str ) -> None: - token, workout_short_id = post_an_workout(app, gpx_file) + token, workout_short_id = post_a_workout(app, gpx_file) client = app.test_client() gpx_filepath = get_gpx_filepath(1) gpx_filepath = get_absolute_file_path(gpx_filepath) @@ -82,7 +82,7 @@ class TestDeleteWorkoutWithGpx(ApiTestCaseMixin): class TestDeleteWorkoutWithoutGpx(ApiTestCaseMixin): - def test_it_deletes_an_workout_wo_gpx( + def test_it_deletes_a_workout_wo_gpx( self, app: Flask, user_1: User, @@ -98,7 +98,7 @@ class TestDeleteWorkoutWithoutGpx(ApiTestCaseMixin): ) assert response.status_code == 204 - def test_it_returns_403_when_deleting_an_workout_from_different_user( + def test_it_returns_403_when_deleting_a_workout_from_different_user( self, app: Flask, user_1: User, diff --git a/fittrackee/tests/workouts/utils.py b/fittrackee/tests/workouts/utils.py index 7aaea2f6..43bc65a9 100644 --- a/fittrackee/tests/workouts/utils.py +++ b/fittrackee/tests/workouts/utils.py @@ -12,7 +12,7 @@ def get_random_short_id() -> str: return encode_uuid(uuid4()) -def post_an_workout( +def post_a_workout( app: Flask, gpx_file: str, notes: Optional[str] = None ) -> Tuple[str, str]: client = app.test_client() diff --git a/fittrackee/workouts/workouts.py b/fittrackee/workouts/workouts.py index d747c128..b5d90a32 100644 --- a/fittrackee/workouts/workouts.py +++ b/fittrackee/workouts/workouts.py @@ -303,7 +303,7 @@ def get_workout( auth_user: User, workout_short_id: str ) -> Union[Dict, HttpResponse]: """ - Get an workout + Get a workout **Example request**: @@ -405,7 +405,7 @@ def get_workout_data( data_type: str, segment_id: Optional[int] = None, ) -> Union[Dict, HttpResponse]: - """Get data from an workout gpx file""" + """Get data from a workout gpx file""" workout_uuid = decode_short_id(workout_short_id) workout = Workout.query.filter_by(uuid=workout_uuid).first() if not workout: @@ -467,7 +467,7 @@ def get_workout_gpx( auth_user: User, workout_short_id: str ) -> Union[Dict, HttpResponse]: """ - Get gpx file for an workout displayed on map with Leaflet + Get gpx file for a workout displayed on map with Leaflet **Example request**: @@ -517,7 +517,7 @@ def get_workout_chart_data( auth_user: User, workout_short_id: str ) -> Union[Dict, HttpResponse]: """ - Get chart data from an workout gpx file, to display it with Recharts + Get chart data from a workout gpx file, to display it with Recharts **Example request**: @@ -587,7 +587,7 @@ def get_segment_gpx( auth_user: User, workout_short_id: str, segment_id: int ) -> Union[Dict, HttpResponse]: """ - Get gpx file for an workout segment displayed on map with Leaflet + Get gpx file for a workout segment displayed on map with Leaflet **Example request**: @@ -639,7 +639,7 @@ def get_segment_chart_data( auth_user: User, workout_short_id: str, segment_id: int ) -> Union[Dict, HttpResponse]: """ - Get chart data from an workout gpx file, to display it with Recharts + Get chart data from a workout gpx file, to display it with Recharts **Example request**: @@ -851,7 +851,7 @@ def get_map_tile(s: str, z: str, x: str, y: str) -> Tuple[Response, int]: @authenticate def post_workout(auth_user: User) -> Union[Tuple[Dict, int], HttpResponse]: """ - Post an workout with a gpx file + Post a workout with a gpx file **Example request**: @@ -1021,7 +1021,7 @@ def post_workout_no_gpx( auth_user: User, ) -> Union[Tuple[Dict, int], HttpResponse]: """ - Post an workout without gpx file + Post a workout without gpx file **Example request**: @@ -1169,7 +1169,7 @@ def update_workout( auth_user: User, workout_short_id: str ) -> Union[Dict, HttpResponse]: """ - Update an workout + Update a workout **Example request**: @@ -1316,7 +1316,7 @@ def delete_workout( auth_user: User, workout_short_id: str ) -> Union[Tuple[Dict, int], HttpResponse]: """ - Delete an workout + Delete a workout **Example request**: From 4288c3c3871cfcc1f689bf87c209aca2cb400216 Mon Sep 17 00:00:00 2001 From: Sam Date: Sat, 11 Jun 2022 13:10:02 +0200 Subject: [PATCH 4/5] API - handle gpx files with offset --- .../tests/fixtures/fixtures_workouts.py | 114 ++++++++++++++++++ .../tests/workouts/test_utils/test_gpx.py | 16 ++- .../workouts/test_utils/test_workouts.py | 87 ++++++++++++- .../workouts/test_workouts_api_1_post.py | 64 ++++++++-- fittrackee/workouts/utils/gpx.py | 86 ++++++++----- fittrackee/workouts/utils/weather.py | 12 +- fittrackee/workouts/utils/workouts.py | 99 ++++++++------- fittrackee/workouts/workouts.py | 6 +- poetry.lock | 8 +- pyproject.toml | 2 +- 10 files changed, 392 insertions(+), 102 deletions(-) diff --git a/fittrackee/tests/fixtures/fixtures_workouts.py b/fittrackee/tests/fixtures/fixtures_workouts.py index 46402c61..e2e11b21 100644 --- a/fittrackee/tests/fixtures/fixtures_workouts.py +++ b/fittrackee/tests/fixtures/fixtures_workouts.py @@ -452,6 +452,120 @@ def gpx_file_wo_name() -> str: ) +@pytest.fixture() +def gpx_file_with_offset() -> str: + return ( + '' + '' # noqa + ' ' + ' ' + ' ' + ' ' + ' 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/workouts/test_utils/test_gpx.py b/fittrackee/tests/workouts/test_utils/test_gpx.py index 06d655a0..167b8bba 100644 --- a/fittrackee/tests/workouts/test_utils/test_gpx.py +++ b/fittrackee/tests/workouts/test_utils/test_gpx.py @@ -2,7 +2,7 @@ from unittest.mock import call, patch import pytest from flask import Flask -from gpxpy.gpx import MovingData +from gpxpy.gpx import IGNORE_TOP_SPEED_PERCENTILES, MovingData from werkzeug.datastructures import FileStorage from fittrackee.users.models import User, UserSportPreference @@ -55,7 +55,12 @@ class TestStoppedSpeedThreshold: assert gpx_track_segment_mock.call_args_list[0] == call( stopped_speed_threshold=expected_threshold ) - gpx_track_segment_mock.assert_called_with(expected_threshold) + gpx_track_segment_mock.assert_called_with( + expected_threshold, # stopped_speed_threshold + False, # raw + IGNORE_TOP_SPEED_PERCENTILES, # speed_extreemes_percentiles + True, # ignore_nonstandard_distances + ) def test_it_calls_get_moving_data_with_threshold_depending_from_user_preference( # noqa self, @@ -85,4 +90,9 @@ class TestStoppedSpeedThreshold: assert gpx_track_segment_mock.call_args_list[0] == call( stopped_speed_threshold=expected_threshold ) - gpx_track_segment_mock.assert_called_with(expected_threshold) + gpx_track_segment_mock.assert_called_with( + expected_threshold, # stopped_speed_threshold + False, # raw + IGNORE_TOP_SPEED_PERCENTILES, # speed_extreemes_percentiles + True, # ignore_nonstandard_distances + ) diff --git a/fittrackee/tests/workouts/test_utils/test_workouts.py b/fittrackee/tests/workouts/test_utils/test_workouts.py index 0e325878..16a90145 100644 --- a/fittrackee/tests/workouts/test_utils/test_workouts.py +++ b/fittrackee/tests/workouts/test_utils/test_workouts.py @@ -1,9 +1,27 @@ +from datetime import datetime from statistics import mean -from typing import List +from typing import List, Union import pytest +import pytz +from gpxpy.gpxfield import SimpleTZ -from fittrackee.workouts.utils.workouts import get_average_speed +from fittrackee.workouts.utils.workouts import ( + get_average_speed, + get_workout_datetime, +) + +utc_datetime = datetime( + year=2022, month=6, day=11, hour=10, minute=23, second=00, tzinfo=pytz.utc +) +input_workout_dates = [ + utc_datetime, + utc_datetime.replace(tzinfo=None), + utc_datetime.replace(tzinfo=SimpleTZ('Z')), + utc_datetime.astimezone(pytz.timezone('Europe/Paris')), + utc_datetime.astimezone(pytz.timezone('America/Toronto')), + '2022-06-11 12:23:00', +] class TestWorkoutAverageSpeed: @@ -30,3 +48,68 @@ class TestWorkoutAverageSpeed: assert get_average_speed( nb_workouts, total_average_speed, workout_average_speed ) == mean(ave_speeds_list) + + +class TestWorkoutGetWorkoutDatetime: + @pytest.mark.parametrize('input_workout_date', input_workout_dates) + def test_it_returns_naive_datetime( + self, input_workout_date: Union[datetime, str] + ) -> None: + naive_workout_date, _ = get_workout_datetime( + workout_date=input_workout_date, user_timezone='Europe/Paris' + ) + + assert naive_workout_date == datetime( + year=2022, month=6, day=11, hour=10, minute=23, second=00 + ) + + def test_it_return_naive_datetime_when_no_user_timezone(self) -> None: + naive_workout_date, _ = get_workout_datetime( + workout_date='2022-06-11 12:23:00', user_timezone=None + ) + + assert naive_workout_date == datetime( + year=2022, month=6, day=11, hour=12, minute=23, second=00 + ) + + @pytest.mark.parametrize('input_workout_date', input_workout_dates) + def test_it_returns_datetime_with_user_timezone( + self, input_workout_date: Union[datetime, str] + ) -> None: + timezone = 'Europe/Paris' + + _, workout_date_with_tz = get_workout_datetime( + input_workout_date, user_timezone=timezone, with_timezone=True + ) + + assert workout_date_with_tz == datetime( + year=2022, + month=6, + day=11, + hour=10, + minute=23, + second=00, + tzinfo=pytz.utc, + ).astimezone(pytz.timezone(timezone)) + + def test_it_does_not_return_datetime_with_user_timezone_when_no_user_tz( + self, + ) -> None: + _, workout_date_with_tz = get_workout_datetime( + workout_date='2022-06-11 12:23:00', + user_timezone=None, + with_timezone=True, + ) + + assert workout_date_with_tz is None + + def test_it_does_not_return_datetime_with_user_timezone_when_with_timezone_to_false( # noqa + self, + ) -> None: + _, workout_date_with_tz = get_workout_datetime( + workout_date='2022-06-11 12:23:00', + user_timezone='Europe/Paris', + with_timezone=False, + ) + + assert workout_date_with_tz is None diff --git a/fittrackee/tests/workouts/test_workouts_api_1_post.py b/fittrackee/tests/workouts/test_workouts_api_1_post.py index 5e56f003..f75320ec 100644 --- a/fittrackee/tests/workouts/test_workouts_api_1_post.py +++ b/fittrackee/tests/workouts/test_workouts_api_1_post.py @@ -2,7 +2,7 @@ import json import os from datetime import datetime from io import BytesIO -from typing import Dict +from typing import Dict, Optional from unittest.mock import Mock import pytest @@ -92,9 +92,7 @@ def assert_workout_data_with_gpx_segments(data: Dict) -> None: assert data['data']['workouts'][0]['descent'] == 23.4 assert data['data']['workouts'][0]['distance'] == 0.3 assert data['data']['workouts'][0]['max_alt'] == 998.0 - assert ( - data['data']['workouts'][0]['max_speed'] is None - ) # not enough points + assert data['data']['workouts'][0]['max_speed'] == 5.25 assert data['data']['workouts'][0]['min_alt'] == 975.0 assert data['data']['workouts'][0]['moving'] == '0:03:55' assert data['data']['workouts'][0]['pauses'] == '0:00:15' @@ -114,7 +112,7 @@ def assert_workout_data_with_gpx_segments(data: Dict) -> None: assert segment['descent'] == 11.0 assert segment['distance'] == 0.113 assert segment['max_alt'] == 998.0 - assert segment['max_speed'] is None + assert segment['max_speed'] == 5.25 assert segment['min_alt'] == 987.0 assert segment['moving'] == '0:01:30' assert segment['pauses'] is None @@ -128,28 +126,33 @@ def assert_workout_data_with_gpx_segments(data: Dict) -> None: assert segment['descent'] == 12.4 assert segment['distance'] == 0.186 assert segment['max_alt'] == 987.0 - assert segment['max_speed'] is None + assert segment['max_speed'] == 5.12 assert segment['min_alt'] == 975.0 assert segment['moving'] == '0:02:25' assert segment['pauses'] is None records = data['data']['workouts'][0]['records'] - assert len(records) == 3 + assert len(records) == 4 assert records[0]['sport_id'] == 1 assert records[0]['workout_id'] == data['data']['workouts'][0]['id'] - assert records[0]['record_type'] == 'LD' + assert records[0]['record_type'] == 'MS' assert records[0]['workout_date'] == 'Tue, 13 Mar 2018 12:44:45 GMT' - assert records[0]['value'] == '0:03:55' + assert records[0]['value'] == 5.25 assert records[1]['sport_id'] == 1 assert records[1]['workout_id'] == data['data']['workouts'][0]['id'] - assert records[1]['record_type'] == 'FD' + assert records[1]['record_type'] == 'LD' assert records[1]['workout_date'] == 'Tue, 13 Mar 2018 12:44:45 GMT' - assert records[1]['value'] == 0.3 + assert records[1]['value'] == '0:03:55' assert records[2]['sport_id'] == 1 assert records[2]['workout_id'] == data['data']['workouts'][0]['id'] - assert records[2]['record_type'] == 'AS' + assert records[2]['record_type'] == 'FD' assert records[2]['workout_date'] == 'Tue, 13 Mar 2018 12:44:45 GMT' - assert records[2]['value'] == 4.59 + assert records[2]['value'] == 0.3 + assert records[3]['sport_id'] == 1 + assert records[3]['workout_id'] == data['data']['workouts'][0]['id'] + assert records[3]['record_type'] == 'AS' + assert records[3]['workout_date'] == 'Tue, 13 Mar 2018 12:44:45 GMT' + assert records[3]['value'] == 4.59 def assert_workout_data_wo_gpx(data: Dict) -> None: @@ -315,6 +318,41 @@ class TestPostWorkoutWithGpx(ApiTestCaseMixin, CallArgsMixin): ) assert_workout_data_with_gpx(data) + @pytest.mark.parametrize('input_user_timezone', [None, 'Europe/Paris']) + def test_it_adds_a_workout_with_gpx_with_offset( + self, + app: Flask, + user_1: User, + sport_1_cycling: Sport, + gpx_file_with_offset: str, + input_user_timezone: Optional[str], + ) -> None: + user_1.timezone = input_user_timezone + 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_with_offset)), + '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_workout_data_with_gpx(data) + @pytest.mark.parametrize( 'input_description,input_notes', [ diff --git a/fittrackee/workouts/utils/gpx.py b/fittrackee/workouts/utils/gpx.py index f549014f..367c1c3c 100644 --- a/fittrackee/workouts/utils/gpx.py +++ b/fittrackee/workouts/utils/gpx.py @@ -1,5 +1,5 @@ -from datetime import timedelta -from typing import Any, Dict, List, Optional, Tuple +from datetime import datetime, timedelta, timezone +from typing import Any, Dict, List, Optional, Tuple, Union import gpxpy.gpx @@ -16,9 +16,9 @@ def open_gpx_file(gpx_file: str) -> Optional[gpxpy.gpx.GPX]: def get_gpx_data( - parsed_gpx: gpxpy.gpx, + parsed_gpx: Union[gpxpy.gpx.GPX, gpxpy.gpx.GPXTrackSegment], max_speed: float, - start: int, + start: Union[datetime, None], stopped_time_between_seg: timedelta, stopped_speed_threshold: float, ) -> Dict: @@ -32,7 +32,8 @@ def get_gpx_data( duration = parsed_gpx.get_duration() gpx_data['duration'] = ( - timedelta(seconds=duration) + stopped_time_between_seg + timedelta(seconds=duration if duration else 0) + + stopped_time_between_seg ) ele = parsed_gpx.get_elevation_extremes() @@ -43,18 +44,24 @@ def get_gpx_data( gpx_data['uphill'] = hill.uphill gpx_data['downhill'] = hill.downhill - mv = parsed_gpx.get_moving_data( + moving_data = parsed_gpx.get_moving_data( stopped_speed_threshold=stopped_speed_threshold ) - gpx_data['moving_time'] = timedelta(seconds=mv.moving_time) - gpx_data['stop_time'] = ( - timedelta(seconds=mv.stopped_time) + stopped_time_between_seg - ) - distance = mv.moving_distance + mv.stopped_distance - gpx_data['distance'] = distance / 1000 + if moving_data: + gpx_data['moving_time'] = timedelta(seconds=moving_data.moving_time) + gpx_data['stop_time'] = ( + timedelta(seconds=moving_data.stopped_time) + + stopped_time_between_seg + ) + distance = moving_data.moving_distance + moving_data.stopped_distance + gpx_data['distance'] = distance / 1000 - average_speed = distance / mv.moving_time if mv.moving_time > 0 else 0 - gpx_data['average_speed'] = (average_speed / 1000) * 3600 + average_speed = ( + distance / moving_data.moving_time + if moving_data.moving_time > 0 + else 0 + ) + gpx_data['average_speed'] = (average_speed / 1000) * 3600 return gpx_data @@ -72,9 +79,9 @@ def get_gpx_info( if gpx is None: raise WorkoutGPXException('not found', 'No gpx file') - gpx_data = {'name': gpx.tracks[0].name, 'segments': []} - max_speed = 0 - start = 0 + gpx_data: Dict = {'name': gpx.tracks[0].name, 'segments': []} + max_speed = 0.0 + start: Optional[datetime] = None map_data = [] weather_data = [] segments_nb = len(gpx.tracks[0].segments) @@ -83,14 +90,15 @@ def get_gpx_info( stopped_time_between_seg = no_stopped_time for segment_idx, segment in enumerate(gpx.tracks[0].segments): - segment_start = 0 + segment_start: Optional[datetime] = None segment_points_nb = len(segment.points) for point_idx, point in enumerate(segment.points): if point_idx == 0: + segment_start = point.time # first gpx point => get weather - if start == 0: + if start is None: start = point.time - if update_weather_data: + if point.time and update_weather_data: weather_data.append(get_weather(point)) # if a previous segment exists, calculate stopped time between @@ -108,13 +116,19 @@ def get_gpx_info( if update_map_data: map_data.append([point.longitude, point.latitude]) - calculated_max_speed = segment.get_moving_data( + moving_data = segment.get_moving_data( stopped_speed_threshold=stopped_speed_threshold - ).max_speed - segment_max_speed = calculated_max_speed if calculated_max_speed else 0 + ) + if moving_data: + calculated_max_speed = moving_data.max_speed + segment_max_speed = ( + calculated_max_speed if calculated_max_speed else 0 + ) - if segment_max_speed > max_speed: - max_speed = segment_max_speed + if segment_max_speed > max_speed: + max_speed = segment_max_speed + else: + segment_max_speed = 0.0 segment_data = get_gpx_data( segment, @@ -137,12 +151,16 @@ def get_gpx_info( if update_map_data: bounds = gpx.get_bounds() - gpx_data['bounds'] = [ - bounds.min_latitude, - bounds.min_longitude, - bounds.max_latitude, - bounds.max_longitude, - ] + gpx_data['bounds'] = ( + [ + bounds.min_latitude, + bounds.min_longitude, + bounds.max_latitude, + bounds.max_longitude, + ] + if bounds + else [] + ) return gpx_data, map_data, weather_data @@ -222,7 +240,11 @@ def get_chart_data( 'latitude': point.latitude, 'longitude': point.longitude, 'speed': speed, - 'time': point.time, + # workaround + # https://github.com/tkrajina/gpxpy/issues/209 + 'time': point.time.replace( + tzinfo=timezone(point.time.utcoffset()) + ), } ) previous_point = point diff --git a/fittrackee/workouts/utils/weather.py b/fittrackee/workouts/utils/weather.py index 8d580ad7..79a22932 100644 --- a/fittrackee/workouts/utils/weather.py +++ b/fittrackee/workouts/utils/weather.py @@ -3,18 +3,22 @@ from typing import Dict, Optional import forecastio import pytz -from gpxpy.gpx import GPXRoutePoint +from gpxpy.gpx import GPXTrackPoint from fittrackee import appLog API_KEY = os.getenv('WEATHER_API_KEY') -def get_weather(point: GPXRoutePoint) -> Optional[Dict]: - if not API_KEY or API_KEY == '': +def get_weather(point: GPXTrackPoint) -> Optional[Dict]: + if not API_KEY or not point.time: return None try: - point_time = pytz.utc.localize(point.time) + point_time = ( + pytz.utc.localize(point.time) + if point.time.tzinfo is None + else point.time.astimezone(pytz.utc) + ) forecast = forecastio.load_forecast( API_KEY, point.latitude, diff --git a/fittrackee/workouts/utils/workouts.py b/fittrackee/workouts/utils/workouts.py index e9159423..dea4c946 100644 --- a/fittrackee/workouts/utils/workouts.py +++ b/fittrackee/workouts/utils/workouts.py @@ -22,31 +22,42 @@ from .gpx import get_gpx_info from .maps import generate_map, get_map_hash -def get_datetime_with_tz( - timezone: str, workout_date: datetime, gpx_data: Optional[Dict] = None -) -> Tuple[Optional[datetime], datetime]: +def get_workout_datetime( + workout_date: Union[datetime, str], + user_timezone: Optional[str], + date_str_format: Optional[str] = None, + with_timezone: bool = False, +) -> Tuple[datetime, Optional[datetime]]: """ - Return naive datetime and datetime with user timezone + Return naive datetime and datetime with user timezone if with_timezone """ - workout_date_tz = None - if timezone: - user_tz = pytz.timezone(timezone) - utc_tz = pytz.utc - if gpx_data: - # workout date in gpx is in UTC, but in naive datetime - fmt = '%Y-%m-%d %H:%M:%S' - workout_date_string = workout_date.strftime(fmt) - workout_date_tmp = utc_tz.localize( - datetime.strptime(workout_date_string, fmt) - ) - workout_date_tz = workout_date_tmp.astimezone(user_tz) - else: - workout_date_tz = user_tz.localize(workout_date) - workout_date = workout_date_tz.astimezone(utc_tz) - # make datetime 'naive' like in gpx file - workout_date = workout_date.replace(tzinfo=None) + workout_date_with_user_tz = None - return workout_date_tz, workout_date + # workout w/o gpx + if isinstance(workout_date, str): + if not date_str_format: + date_str_format = '%Y-%m-%d %H:%M:%S' + workout_date = datetime.strptime(workout_date, date_str_format) + if user_timezone: + workout_date = pytz.timezone(user_timezone).localize(workout_date) + + if workout_date.tzinfo is None: + naive_workout_date = workout_date + if user_timezone and with_timezone: + pytz.utc.localize(naive_workout_date) + workout_date_with_user_tz = pytz.utc.localize( + naive_workout_date + ).astimezone(pytz.timezone(user_timezone)) + else: + naive_workout_date = workout_date.astimezone(pytz.utc).replace( + tzinfo=None + ) + if user_timezone and with_timezone: + workout_date_with_user_tz = workout_date.astimezone( + pytz.timezone(user_timezone) + ) + + return naive_workout_date, workout_date_with_user_tz def get_datetime_from_request_args( @@ -57,25 +68,32 @@ def get_datetime_from_request_args( date_from_str = params.get('from') if date_from_str: - date_from = datetime.strptime(date_from_str, '%Y-%m-%d') - _, date_from = get_datetime_with_tz(user.timezone, date_from) + date_from, _ = get_workout_datetime( + workout_date=date_from_str, + user_timezone=user.timezone, + date_str_format='%Y-%m-%d', + ) date_to_str = params.get('to') if date_to_str: - date_to = datetime.strptime( - f'{date_to_str} 23:59:59', '%Y-%m-%d %H:%M:%S' + date_to, _ = get_workout_datetime( + workout_date=f'{date_to_str} 23:59:59', + user_timezone=user.timezone, ) - _, date_to = get_datetime_with_tz(user.timezone, date_to) return date_from, date_to +def _remove_microseconds(delta: timedelta) -> timedelta: + return delta - timedelta(microseconds=delta.microseconds) + + def update_workout_data( workout: Union[Workout, WorkoutSegment], gpx_data: Dict ) -> Union[Workout, WorkoutSegment]: """ Update workout or workout segment with data from gpx file """ - workout.pauses = gpx_data['stop_time'] - workout.moving = gpx_data['moving_time'] + workout.pauses = _remove_microseconds(gpx_data['stop_time']) + workout.moving = _remove_microseconds(gpx_data['moving_time']) workout.min_alt = gpx_data['elevation_min'] workout.max_alt = gpx_data['elevation_max'] workout.descent = gpx_data['downhill'] @@ -92,17 +110,17 @@ def create_workout( Create Workout from data entered by user and from gpx if a gpx file is provided """ - workout_date = ( - gpx_data['start'] + workout_date, workout_date_tz = get_workout_datetime( + workout_date=gpx_data['start'] if gpx_data - else datetime.strptime(workout_data['workout_date'], '%Y-%m-%d %H:%M') - ) - workout_date_tz, workout_date = get_datetime_with_tz( - user.timezone, workout_date, gpx_data + else workout_data['workout_date'], + date_str_format=None if gpx_data else '%Y-%m-%d %H:%M', + user_timezone=user.timezone, + with_timezone=True, ) duration = ( - gpx_data['duration'] + _remove_microseconds(gpx_data['duration']) if gpx_data else timedelta(seconds=workout_data['duration']) ) @@ -202,11 +220,10 @@ def edit_workout( workout.notes = workout_data.get('notes') if not workout.gpx: if workout_data.get('workout_date'): - workout_date = datetime.strptime( - workout_data['workout_date'], '%Y-%m-%d %H:%M' - ) - _, workout.workout_date = get_datetime_with_tz( - auth_user.timezone, workout_date + workout.workout_date, _ = get_workout_datetime( + workout_date=workout_data.get('workout_date', ''), + date_str_format='%Y-%m-%d %H:%M', + user_timezone=auth_user.timezone, ) if workout_data.get('duration'): diff --git a/fittrackee/workouts/workouts.py b/fittrackee/workouts/workouts.py index b5d90a32..a6152189 100644 --- a/fittrackee/workouts/workouts.py +++ b/fittrackee/workouts/workouts.py @@ -1111,7 +1111,8 @@ def post_workout_no_gpx( "status": "success" } - :=3.7.4.3", markers = "python_version < \"3.8\"" [[package]] name = "gpxpy" -version = "1.3.4" +version = "1.5.0" description = "GPX file parser and GPS track manipulation library" category = "main" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +python-versions = ">=3.6" [[package]] name = "greenlet" @@ -1466,7 +1466,7 @@ testing = ["pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-flake8", "pytest- [metadata] lock-version = "1.1" python-versions = "^3.7" -content-hash = "fa5be5cc59de72ae3ddb18acb2c0291a7d77296de6427492b46c40d794800335" +content-hash = "40b8491c8b82a7b29f57a2845209965c6351b527aebb7d504f5f8ec0ace4141e" [metadata.files] alabaster = [ @@ -1727,7 +1727,7 @@ gitpython = [ {file = "GitPython-3.1.27.tar.gz", hash = "sha256:1c885ce809e8ba2d88a29befeb385fcea06338d3640712b59ca623c220bb5704"}, ] gpxpy = [ - {file = "gpxpy-1.3.4.tar.gz", hash = "sha256:4a0f072ae5bdf9270c7450e452f93a6c5c91d888114e8d78868a8f163b0dbb15"}, + {file = "gpxpy-1.5.0.tar.gz", hash = "sha256:e6993a8945eae07a833cd304b88bbc6c3c132d63b2bf4a9b0a5d9097616b8708"}, ] greenlet = [ {file = "greenlet-1.1.2-cp27-cp27m-macosx_10_14_x86_64.whl", hash = "sha256:58df5c2a0e293bf665a51f8a100d3e9956febfbf1d9aaf8c0677cf70218910c6"}, diff --git a/pyproject.toml b/pyproject.toml index 1dcfdfff..6d13c3b5 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -29,7 +29,7 @@ flask = "^2.1" flask-bcrypt = "^1.0" flask-dramatiq = "^0.6.0" flask-migrate = "^3.1" -gpxpy = "=1.3.4" +gpxpy = "=1.5.0" gunicorn = "^20.1" humanize = "^4.1" psycopg2-binary = "^2.9" From 22a3df526314fe27559d0b1b3e7bb4747fecb98c Mon Sep 17 00:00:00 2001 From: Sam Date: Sat, 11 Jun 2022 19:59:41 +0200 Subject: [PATCH 5/5] bump version to 0.6.7 --- CHANGELOG.md | 11 + VERSION | 2 +- docs/.buildinfo | 2 +- docs/_images/fittrackee_screenshot-01.png | Bin 551644 -> 551950 bytes docs/_images/fittrackee_screenshot-02.png | Bin 377021 -> 377323 bytes docs/_images/fittrackee_screenshot-03.png | Bin 205377 -> 205695 bytes docs/_images/fittrackee_screenshot-04.png | Bin 70695 -> 71001 bytes docs/_images/fittrackee_screenshot-05.png | Bin 71432 -> 71759 bytes docs/_images/fittrackee_screenshot-06.png | Bin 104970 -> 105268 bytes docs/_sources/changelog.md.txt | 11 + docs/_sources/installation.rst.txt | 16 +- docs/_static/documentation_options.js | 2 +- docs/api/auth.html | 4 +- docs/api/configuration.html | 8 +- docs/api/index.html | 4 +- docs/api/records.html | 4 +- docs/api/sports.html | 4 +- docs/api/stats.html | 4 +- docs/api/users.html | 4 +- docs/api/workouts.html | 28 +- docs/changelog.html | 532 +++++++++--------- docs/cli.html | 4 +- docs/features.html | 4 +- docs/genindex.html | 4 +- docs/http-routingtable.html | 4 +- docs/index.html | 4 +- docs/installation.html | 20 +- docs/objects.inv | Bin 1340 -> 1340 bytes docs/search.html | 4 +- docs/searchindex.js | 2 +- docs/troubleshooting/administrator.html | 4 +- docs/troubleshooting/index.html | 4 +- docs/troubleshooting/user.html | 4 +- .../_images/fittrackee_screenshot-01.png | Bin 551644 -> 551950 bytes .../_images/fittrackee_screenshot-02.png | Bin 377021 -> 377323 bytes .../_images/fittrackee_screenshot-03.png | Bin 205377 -> 205695 bytes .../_images/fittrackee_screenshot-04.png | Bin 70695 -> 71001 bytes .../_images/fittrackee_screenshot-05.png | Bin 71432 -> 71759 bytes .../_images/fittrackee_screenshot-06.png | Bin 104970 -> 105268 bytes docsrc/source/installation.rst | 16 +- fittrackee/__init__.py | 2 +- fittrackee/application/app_config.py | 4 +- fittrackee/dist/index.html | 2 +- fittrackee/dist/service-worker.js | 2 +- fittrackee/dist/service-worker.js.map | 2 +- .../js/{app.a9b9439a.js => app.8517c25d.js} | 4 +- ...pp.a9b9439a.js.map => app.8517c25d.js.map} | 2 +- ...kouts.a9d2f467.js => workouts.02fe5945.js} | 2 +- ...d2f467.js.map => workouts.02fe5945.js.map} | 2 +- fittrackee_client/package.json | 2 +- pyproject.toml | 2 +- 51 files changed, 390 insertions(+), 346 deletions(-) rename fittrackee/dist/static/js/{app.a9b9439a.js => app.8517c25d.js} (99%) rename fittrackee/dist/static/js/{app.a9b9439a.js.map => app.8517c25d.js.map} (99%) rename fittrackee/dist/static/js/{workouts.a9d2f467.js => workouts.02fe5945.js} (99%) rename fittrackee/dist/static/js/{workouts.a9d2f467.js.map => workouts.02fe5945.js.map} (99%) diff --git a/CHANGELOG.md b/CHANGELOG.md index c156b3b4..a864e947 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,16 @@ # Change log +## Version 0.6.7 (2022/06/11) + +### Issues Closed + +#### Bugs Fixed + +* [#156](https://github.com/SamR1/FitTrackee/issues/156) - Process gpx file with offset + +In this release 1 issue was closed. + + ## Version 0.6.6 (2022/05/29) ### Misc diff --git a/VERSION b/VERSION index 05e8a459..2228cad4 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.6.6 +0.6.7 diff --git a/docs/.buildinfo b/docs/.buildinfo index f23c64e7..e7a8e0dc 100644 --- a/docs/.buildinfo +++ b/docs/.buildinfo @@ -1,4 +1,4 @@ # Sphinx build info version 1 # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. -config: 4cdeaae17c31d716c1f73eb46769543b +config: e7f46ba7f0469b1929d2349b0c52c449 tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/docs/_images/fittrackee_screenshot-01.png b/docs/_images/fittrackee_screenshot-01.png index c6e94f8cb838fe87af7f90d0013c264565c8f26f..3d4b351b749d64f83a7e1bd25e4206baa809afd7 100644 GIT binary patch delta 21777 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 Kt6al6^nU=fVMc@i delta 21628 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 OPhZFQPPvxDv;P9){~^x+ diff --git a/docs/_images/fittrackee_screenshot-02.png b/docs/_images/fittrackee_screenshot-02.png index ec37af303ba3e9c04a19a502ebbd9afaac5555eb..ac84e7dadc1d01ce5d9964e64c746d0db89656cc 100644 GIT binary patch delta 17833 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 D!WN>= diff --git a/docs/_images/fittrackee_screenshot-03.png b/docs/_images/fittrackee_screenshot-03.png index 30e2281d3bd8f9daae2be2dbc34393ebd43cc804..1bcd8272b5f7ce18eace30596b51182532332c3a 100644 GIT binary patch delta 20935 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 aE6H*tCmI%3Q(jmcZ*6XBV}dmDO85`SPx+hx delta 20737 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 delta 16512 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 I(k$qI0689?f&c&j diff --git a/docs/_images/fittrackee_screenshot-05.png b/docs/_images/fittrackee_screenshot-05.png index c4700811e25a584bed8448df3099b88d9c87b7d8..c86d015d2e0e629314011d7c86461808db54d528 100644 GIT binary patch delta 13427 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 delta 13187 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

Q{{19t?K-}fXwbu-O-X4ye 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 diff --git a/docs/_images/fittrackee_screenshot-06.png b/docs/_images/fittrackee_screenshot-06.png index 92f89fd38061446d6bde4d1ebf0b544e2ddcb86c..1a572f27b1fd00a409c1d861156f82903fa96b62 100644 GIT binary patch delta 17662 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%0A4#%`u`%n<+PtTGT|gU_ZiDSX$L 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 Nq^Ru2a^cT@{}12w7$^V$ delta 17527 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 diff --git a/docs/_sources/changelog.md.txt b/docs/_sources/changelog.md.txt index c156b3b4..a864e947 100644 --- a/docs/_sources/changelog.md.txt +++ b/docs/_sources/changelog.md.txt @@ -1,5 +1,16 @@ # Change log +## Version 0.6.7 (2022/06/11) + +### Issues Closed + +#### Bugs Fixed + +* [#156](https://github.com/SamR1/FitTrackee/issues/156) - Process gpx file with offset + +In this release 1 issue was closed. + + ## Version 0.6.6 (2022/05/29) ### Misc diff --git a/docs/_sources/installation.rst.txt b/docs/_sources/installation.rst.txt index 7672d862..8e216f61 100644 --- a/docs/_sources/installation.rst.txt +++ b/docs/_sources/installation.rst.txt @@ -395,13 +395,13 @@ Production environment .. warning:: | Note that FitTrackee is under heavy development, some features may be unstable. -- Download the last release (for now, it is the release v0.6.6): +- Download the last release (for now, it is the release v0.6.7): .. code:: bash - $ wget https://github.com/SamR1/FitTrackee/archive/v0.6.6.tar.gz - $ tar -xzf v0.6.6.tar.gz - $ mv FitTrackee-0.6.6 FitTrackee + $ wget https://github.com/SamR1/FitTrackee/archive/v0.6.7.tar.gz + $ tar -xzf v0.6.7.tar.gz + $ mv FitTrackee-0.6.7 FitTrackee $ cd FitTrackee - Create **.env** from example and update it @@ -521,13 +521,13 @@ Prod environment - Change to the directory where FitTrackee directory is located -- Download the last release (for now, it is the release v0.6.6) and overwrite existing files: +- Download the last release (for now, it is the release v0.6.7) and overwrite existing files: .. code:: bash - $ wget https://github.com/SamR1/FitTrackee/archive/v0.6.6.tar.gz - $ tar -xzf v0.6.6.tar.gz - $ cp -R FitTrackee-0.6.6/* FitTrackee/ + $ wget https://github.com/SamR1/FitTrackee/archive/v0.6.7.tar.gz + $ tar -xzf v0.6.7.tar.gz + $ cp -R FitTrackee-0.6.7/* FitTrackee/ $ cd FitTrackee - Update **.env** if needed (see `Environment variables `__). diff --git a/docs/_static/documentation_options.js b/docs/_static/documentation_options.js index e321a341..04642c0d 100644 --- a/docs/_static/documentation_options.js +++ b/docs/_static/documentation_options.js @@ -1,6 +1,6 @@ var DOCUMENTATION_OPTIONS = { URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'), - VERSION: '0.6.6', + VERSION: '0.6.7', LANGUAGE: 'None', COLLAPSE_INDEX: false, BUILDER: 'html', diff --git a/docs/api/auth.html b/docs/api/auth.html index 457c8a3f..b67d059d 100644 --- a/docs/api/auth.html +++ b/docs/api/auth.html @@ -5,7 +5,7 @@ - Authentication — FitTrackee 0.6.6 + <title>Authentication — FitTrackee 0.6.7 documentation @@ -40,7 +40,7 @@ FitTrackee - 0.6.6 + 0.6.7 diff --git a/docs/api/configuration.html b/docs/api/configuration.html index ce571e7c..0144414b 100644 --- a/docs/api/configuration.html +++ b/docs/api/configuration.html @@ -5,7 +5,7 @@ - Configuration — FitTrackee 0.6.6 + <title>Configuration — FitTrackee 0.6.7 documentation @@ -40,7 +40,7 @@ FitTrackee - 0.6.6 + 0.6.7 @@ -151,7 +151,7 @@ "max_users": 0, "max_zip_file_size": 10485760, "map_attribution": "&copy; <a href=http://www.openstreetmap.org/copyright>OpenStreetMap</a> contributors" - "version": "0.6.6" + "version": "0.6.7" }, "status": "success" } @@ -191,7 +191,7 @@ "max_users": 10, "max_zip_file_size": 10485760, "map_attribution": "&copy; <a href=http://www.openstreetmap.org/copyright>OpenStreetMap</a> contributors" - "version": "0.6.6" + "version": "0.6.7" }, "status": "success" } diff --git a/docs/api/index.html b/docs/api/index.html index 77b9a619..830cb717 100644 --- a/docs/api/index.html +++ b/docs/api/index.html @@ -5,7 +5,7 @@ - API documentation — FitTrackee 0.6.6 + <title>API documentation — FitTrackee 0.6.7 documentation @@ -40,7 +40,7 @@ FitTrackee - 0.6.6 + 0.6.7 diff --git a/docs/api/records.html b/docs/api/records.html index 9a450856..5ffe89f9 100644 --- a/docs/api/records.html +++ b/docs/api/records.html @@ -5,7 +5,7 @@ - Records — FitTrackee 0.6.6 + <title>Records — FitTrackee 0.6.7 documentation @@ -40,7 +40,7 @@ FitTrackee - 0.6.6 + 0.6.7 diff --git a/docs/api/sports.html b/docs/api/sports.html index 81202219..4380f1a7 100644 --- a/docs/api/sports.html +++ b/docs/api/sports.html @@ -5,7 +5,7 @@ - Sports — FitTrackee 0.6.6 + <title>Sports — FitTrackee 0.6.7 documentation @@ -40,7 +40,7 @@ FitTrackee - 0.6.6 + 0.6.7 diff --git a/docs/api/stats.html b/docs/api/stats.html index 29ce85f5..f86acf0b 100644 --- a/docs/api/stats.html +++ b/docs/api/stats.html @@ -5,7 +5,7 @@ - Statistics — FitTrackee 0.6.6 + <title>Statistics — FitTrackee 0.6.7 documentation @@ -40,7 +40,7 @@ FitTrackee - 0.6.6 + 0.6.7 diff --git a/docs/api/users.html b/docs/api/users.html index 5f08835e..4392be91 100644 --- a/docs/api/users.html +++ b/docs/api/users.html @@ -5,7 +5,7 @@ - Users — FitTrackee 0.6.6 + <title>Users — FitTrackee 0.6.7 documentation @@ -40,7 +40,7 @@ FitTrackee - 0.6.6 + 0.6.7 diff --git a/docs/api/workouts.html b/docs/api/workouts.html index ba67a71e..692f77a2 100644 --- a/docs/api/workouts.html +++ b/docs/api/workouts.html @@ -5,7 +5,7 @@ - Workouts — FitTrackee 0.6.6 + <title>Workouts — FitTrackee 0.6.7 documentation @@ -40,7 +40,7 @@ FitTrackee - 0.6.6 + 0.6.7 @@ -284,7 +284,7 @@

GET /api/workouts/(string: workout_short_id)
-

Get an workout

+

Get a workout

Example request:

GET /api/workouts/kjxavSTUrJvoAh2wvCeGEF HTTP/1.1
 
@@ -378,7 +378,7 @@
GET /api/workouts/(string: workout_short_id)/gpx
-

Get gpx file for an workout displayed on map with Leaflet

+

Get gpx file for a workout displayed on map with Leaflet

Example request:

GET /api/workouts/kjxavSTUrJvoAh2wvCeGEF/gpx HTTP/1.1
 Content-Type: application/json
@@ -431,7 +431,7 @@
 
GET /api/workouts/(string: workout_short_id)/chart_data
-

Get chart data from an workout gpx file, to display it with Recharts

+

Get chart data from a workout gpx file, to display it with Recharts

Example request:

GET /api/workouts/kjxavSTUrJvoAh2wvCeGEF/chart HTTP/1.1
 Content-Type: application/json
@@ -503,7 +503,7 @@
 
GET /api/workouts/(string: workout_short_id)/chart_data/segment/(int: segment_id)
-

Get chart data from an workout gpx file, to display it with Recharts

+

Get chart data from a workout gpx file, to display it with Recharts

Example request:

GET /api/workouts/kjxavSTUrJvoAh2wvCeGEF/chart/segment/0 HTTP/1.1
 Content-Type: application/json
@@ -573,7 +573,7 @@
 
GET /api/workouts/(string: workout_short_id)/gpx/segment/(int: segment_id)
-

Get gpx file for an workout segment displayed on map with Leaflet

+

Get gpx file for a workout segment displayed on map with Leaflet

Example request:

GET /api/workouts/kjxavSTUrJvoAh2wvCeGEF/gpx/segment/0 HTTP/1.1
 Content-Type: application/json
@@ -724,7 +724,7 @@
 
POST /api/workouts
-

Post an workout with a gpx file

+

Post a workout with a gpx file

Example request:

POST /api/workouts/ HTTP/1.1
 Content-Type: multipart/form-data
@@ -847,7 +847,7 @@
 
POST /api/workouts/no_gpx
-

Post an workout without gpx file

+

Post a workout without gpx file

Example request:

POST /api/workouts/no_gpx HTTP/1.1
 Content-Type: application/json
@@ -935,7 +935,8 @@
 
Request JSON Object
diff --git a/docs/genindex.html b/docs/genindex.html index 12a06448..dd562660 100644 --- a/docs/genindex.html +++ b/docs/genindex.html @@ -4,7 +4,7 @@ - Index — FitTrackee 0.6.6 + <title>Index — FitTrackee 0.6.7 documentation @@ -37,7 +37,7 @@ FitTrackee - 0.6.6 + 0.6.7
diff --git a/docs/http-routingtable.html b/docs/http-routingtable.html index a205643f..5b0f5bff 100644 --- a/docs/http-routingtable.html +++ b/docs/http-routingtable.html @@ -4,7 +4,7 @@ - HTTP Routing Table — FitTrackee 0.6.6 + <title>HTTP Routing Table — FitTrackee 0.6.7 documentation @@ -44,7 +44,7 @@ FitTrackee - 0.6.6 + 0.6.7
diff --git a/docs/index.html b/docs/index.html index 5ca321fe..93011bdd 100644 --- a/docs/index.html +++ b/docs/index.html @@ -5,7 +5,7 @@ - FitTrackee — FitTrackee 0.6.6 + <title>FitTrackee — FitTrackee 0.6.7 documentation @@ -39,7 +39,7 @@ FitTrackee - 0.6.6 + 0.6.7
diff --git a/docs/installation.html b/docs/installation.html index 4da17945..44cc081e 100644 --- a/docs/installation.html +++ b/docs/installation.html @@ -5,7 +5,7 @@ - Installation — FitTrackee 0.6.6 + <title>Installation — FitTrackee 0.6.7 documentation @@ -40,7 +40,7 @@ FitTrackee - 0.6.6 + 0.6.7
@@ -674,11 +674,11 @@ $ make install-db
    -
  • Download the last release (for now, it is the release v0.6.6):

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

-
$ wget https://github.com/SamR1/FitTrackee/archive/v0.6.6.tar.gz
-$ tar -xzf v0.6.6.tar.gz
-$ mv FitTrackee-0.6.6 FitTrackee
+
$ wget https://github.com/SamR1/FitTrackee/archive/v0.6.7.tar.gz
+$ tar -xzf v0.6.7.tar.gz
+$ mv FitTrackee-0.6.7 FitTrackee
 $ cd FitTrackee
 
@@ -798,11 +798,11 @@ $ source .env
  • Stop the application

  • Change to the directory where FitTrackee directory is located

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

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

-
$ wget https://github.com/SamR1/FitTrackee/archive/v0.6.6.tar.gz
-$ tar -xzf v0.6.6.tar.gz
-$ cp -R FitTrackee-0.6.6/* FitTrackee/
+
$ wget https://github.com/SamR1/FitTrackee/archive/v0.6.7.tar.gz
+$ tar -xzf v0.6.7.tar.gz
+$ cp -R FitTrackee-0.6.7/* FitTrackee/
 $ cd FitTrackee
 
diff --git a/docs/objects.inv b/docs/objects.inv index 3dc3fb8394e3b62b2fff50a24a8360b6b4820dc5..8025b7c95f9658b354873e67c5b47255a051218c 100644 GIT binary patch delta 12 TcmdnPwTEkh6QlV?=btP99p(gx delta 12 TcmdnPwTEkh6QkKi=btP99pMCr diff --git a/docs/search.html b/docs/search.html index db9bbc93..483e123f 100644 --- a/docs/search.html +++ b/docs/search.html @@ -4,7 +4,7 @@ - Search — FitTrackee 0.6.6 + <title>Search — FitTrackee 0.6.7 documentation @@ -44,7 +44,7 @@ FitTrackee - 0.6.6 + 0.6.7
diff --git a/docs/searchindex.js b/docs/searchindex.js index ad80a83e..02b1cbdc 100644 --- a/docs/searchindex.js +++ b/docs/searchindex.js @@ -1 +1 @@ -Search.setIndex({docnames:["api/auth","api/configuration","api/index","api/records","api/sports","api/stats","api/users","api/workouts","changelog","cli","features","index","installation","troubleshooting/administrator","troubleshooting/index","troubleshooting/user"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":5,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":3,"sphinx.domains.rst":2,"sphinx.domains.std":2,sphinx:56},filenames:["api/auth.rst","api/configuration.rst","api/index.rst","api/records.rst","api/sports.rst","api/stats.rst","api/users.rst","api/workouts.rst","changelog.md","cli.rst","features.rst","index.rst","installation.rst","troubleshooting/administrator.rst","troubleshooting/index.rst","troubleshooting/user.rst"],objects:{"":[[0,0,1,"post--api-auth-account-confirm","/api/auth/account/confirm"],[0,0,1,"post--api-auth-account-resend-confirmation","/api/auth/account/resend-confirmation"],[0,0,1,"post--api-auth-email-update","/api/auth/email/update"],[0,0,1,"post--api-auth-login","/api/auth/login"],[0,0,1,"post--api-auth-password-reset-request","/api/auth/password/reset-request"],[0,0,1,"post--api-auth-password-update","/api/auth/password/update"],[0,1,1,"delete--api-auth-picture","/api/auth/picture"],[0,0,1,"post--api-auth-picture","/api/auth/picture"],[0,2,1,"get--api-auth-profile","/api/auth/profile"],[0,0,1,"post--api-auth-profile-edit","/api/auth/profile/edit"],[0,3,1,"patch--api-auth-profile-edit-account","/api/auth/profile/edit/account"],[0,0,1,"post--api-auth-profile-edit-preferences","/api/auth/profile/edit/preferences"],[0,0,1,"post--api-auth-profile-edit-sports","/api/auth/profile/edit/sports"],[0,1,1,"delete--api-auth-profile-reset-sports-(sport_id)","/api/auth/profile/reset/sports/(sport_id)"],[0,0,1,"post--api-auth-register","/api/auth/register"],[1,2,1,"get--api-config","/api/config"],[1,3,1,"patch--api-config","/api/config"],[1,2,1,"get--api-ping","/api/ping"],[3,2,1,"get--api-records","/api/records"],[4,2,1,"get--api-sports","/api/sports"],[4,2,1,"get--api-sports-(int-sport_id)","/api/sports/(int:sport_id)"],[4,3,1,"patch--api-sports-(int-sport_id)","/api/sports/(int:sport_id)"],[5,2,1,"get--api-stats-(user_name)-by_sport","/api/stats/(user_name)/by_sport"],[5,2,1,"get--api-stats-(user_name)-by_time","/api/stats/(user_name)/by_time"],[5,2,1,"get--api-stats-all","/api/stats/all"],[6,2,1,"get--api-users","/api/users"],[6,1,1,"delete--api-users-(user_name)","/api/users/(user_name)"],[6,2,1,"get--api-users-(user_name)","/api/users/(user_name)"],[6,3,1,"patch--api-users-(user_name)","/api/users/(user_name)"],[6,2,1,"get--api-users-(user_name)-picture","/api/users/(user_name)/picture"],[7,2,1,"get--api-workouts","/api/workouts"],[7,0,1,"post--api-workouts","/api/workouts"],[7,1,1,"delete--api-workouts-(string-workout_short_id)","/api/workouts/(string:workout_short_id)"],[7,2,1,"get--api-workouts-(string-workout_short_id)","/api/workouts/(string:workout_short_id)"],[7,3,1,"patch--api-workouts-(string-workout_short_id)","/api/workouts/(string:workout_short_id)"],[7,2,1,"get--api-workouts-(string-workout_short_id)-chart_data","/api/workouts/(string:workout_short_id)/chart_data"],[7,2,1,"get--api-workouts-(string-workout_short_id)-chart_data-segment-(int-segment_id)","/api/workouts/(string:workout_short_id)/chart_data/segment/(int:segment_id)"],[7,2,1,"get--api-workouts-(string-workout_short_id)-gpx","/api/workouts/(string:workout_short_id)/gpx"],[7,2,1,"get--api-workouts-(string-workout_short_id)-gpx-download","/api/workouts/(string:workout_short_id)/gpx/download"],[7,2,1,"get--api-workouts-(string-workout_short_id)-gpx-segment-(int-segment_id)","/api/workouts/(string:workout_short_id)/gpx/segment/(int:segment_id)"],[7,2,1,"get--api-workouts-map-(map_id)","/api/workouts/map/(map_id)"],[7,0,1,"post--api-workouts-no_gpx","/api/workouts/no_gpx"],[12,4,1,"-","APP_LOG"],[12,4,1,"-","APP_SECRET_KEY"],[12,4,1,"-","APP_SETTINGS"],[12,4,1,"-","APP_WORKERS"],[12,4,1,"-","DATABASE_DISABLE_POOLING"],[12,4,1,"-","DATABASE_URL"],[12,4,1,"envvar-DEFAULT_STATICMAP","DEFAULT_STATICMAP \ud83c\udd95"],[12,4,1,"-","EMAIL_URL"],[12,4,1,"-","FLASK_APP"],[12,4,1,"-","HOST"],[12,4,1,"-","MAP_ATTRIBUTION"],[12,4,1,"-","PORT"],[12,4,1,"-","REDIS_URL"],[12,4,1,"-","SENDER_EMAIL"],[12,4,1,"-","TILE_SERVER_URL"],[12,4,1,"-","UI_URL"],[12,4,1,"-","UPLOAD_FOLDER"],[12,4,1,"-","VUE_APP_API_URL"],[12,4,1,"-","WEATHER_API_KEY"],[12,4,1,"-","WORKERS_PROCESSES"]],"/api/workouts/map_tile/(s)/(z)/(x)/(y)":[[7,2,1,"get--api-workouts-map_tile-(s)-(z)-(x)-(y).png","png"]]},objnames:{"0":["http","post","HTTP post"],"1":["http","delete","HTTP delete"],"2":["http","get","HTTP get"],"3":["http","patch","HTTP patch"],"4":["std","envvar","environment variable"]},objtypes:{"0":"http:post","1":"http:delete","2":"http:get","3":"http:patch","4":"std:envvar"},terms:{"0":[0,1,3,4,5,6,7,9,10,12],"00":[0,3,6,7],"000000":0,"01":[0,3,5,6,7],"02":7,"03":[6,7],"04":7,"06":5,"07":[0,3,6,7],"08":[0,3,6],"09":[0,6],"0mb":[0,7],"1":[0,1,3,4,5,6,7,10,12],"10":[0,1,3,6,7,12],"100":[7,8,10],"1000":5,"101":8,"104":8,"1048576":1,"10485760":1,"106":8,"109":8,"11":[0,3,6,10],"115":8,"116":8,"12":[0,3,6,7],"121":8,"123":8,"1232004":7,"12341":5,"1234538":7,"1267":5,"127":[8,12],"129":8,"13":7,"131":8,"134":8,"135":8,"138":8,"14":[0,6,7],"140":8,"145":8,"146":8,"149":8,"15":[5,7],"150":5,"151":8,"152":8,"155":8,"156":5,"1563529507772":7,"16":[5,7],"160":8,"161":8,"169":8,"17":[7,12],"171":8,"173":8,"175":8,"177":8,"178":[5,8],"18":[0,3,6,7,8],"180":8,"2":[0,1,3,4,5,6,7,10,12],"20":6,"200":[0,1,3,4,5,6,7],"201":7,"2017":[5,7],"2018":[5,7],"2019":[0,3,5,6,7],"203":5,"204":[0,6,7],"22":[7,8],"25":[8,12],"26":8,"27":[0,6],"279":7,"28":8,"280":7,"282":5,"2930":7,"2e1ee2c":8,"3":[0,4,5,6,7,10,12],"30":[0,5],"3000":12,"301":12,"31":7,"33":8,"34":8,"34614d5":8,"36":8,"37":8,"39":7,"4":[0,4,5,6,7,12],"40":8,"400":[0,1,4,6,7],"401":[0,1,3,4,5,6,7],"403":[0,1,4,5,6,7],"404":[0,4,5,6,7],"41":8,"4109":7,"413":[0,7],"43":8,"44":[7,8],"443":12,"45":7,"46":[5,8],"465":12,"47":[5,7,8],"48":5,"4c3fc34":8,"5":[4,5,6,7,9,10,12],"50":[0,6,8],"500":[0,1,4,6,7],"5000":12,"5078118":7,"5079733":7,"51":7,"53":8,"54":8,"5432":12,"57":[7,8],"58":[0,6,8],"587":12,"59":8,"6":[0,1,4,6,7,9,10,12],"613":5,"62":8,"63":7,"64":8,"66":8,"67":[0,6],"7":[7,12],"70":8,"71":8,"72":8,"7380":7,"75":8,"78":5,"79":8,"8":[0,7],"80":[8,12],"8025":12,"81":8,"82":8,"83":8,"84":8,"877fa0f":8,"895":[0,6],"9":[0,3,6,12],"90":8,"91":8,"93":8,"95":[5,8],"98":8,"99":[5,8],"9960":5,"boolean":[0,1,6,9],"case":[10,12],"default":[5,6,7,8,10,12],"do":[1,4,5,6,7],"export":11,"float":[0,7],"import":[8,12],"int":[4,7],"new":[0,6,9,10,12],"null":[0,4,6,7],"return":[3,6,7,12],"short":7,"static":[8,12],"switch":8,"true":[0,1,4,6,8,12],"try":[0,6,7],A:[6,8,9,10,12,13],AS:[0,3,6,7],And:8,For:[10,12],If:[0,10,12],In:[8,10],It:[0,6,8,10,11,13],NO:[0,6,7],NOT:[4,7],No:[0,6,7,8,11],Not:[0,4,5,6,7],OF:12,ON:12,On:12,One:12,TO:12,The:[0,8,9,10,12],There:12,To:[8,12],WITH:12,With:12,_:[0,8],__main__:12,_blank:12,access:12,account:[0,6,8,9,12],acit:7,activ:[0,4,6,8,9,10,11,12],ad:[0,8,9,10],adapt:12,add:[6,8,9,10,11],addit:12,address:[0,10,12],admin:[0,1,3,4,5,6,7,8,9,10,12],admin_contact:1,administr:[0,1,6,7,14],adress:12,after:[0,8,10,12],again:[0,1,3,4,5,6,7],agplv3:8,all:[3,4,5,6,12],allow:[0,1,7,8,10,11],along:7,alphanumer:[0,8],alpin:10,alreadi:0,also:[8,9,11,12],altitud:8,alwai:12,an:[0,1,4,6,7,8,10,12],android:11,anoth:[0,6,12],anymor:8,apach:11,api:[0,1,3,4,5,6,7,8,10,11,12],apikei:12,app:[8,11],app_log:12,app_secret_kei:12,app_set:12,app_work:12,appear:10,appli:9,applic:[0,1,3,4,5,6,7,8,10,11,12],ar:[3,7,8,9,10,11,12,13],arch:12,archiv:[1,8,10,12],archlinux:12,arg:9,arrow:10,asc:6,ascent:[7,10],attribut:12,auth:[0,1,3,4,5,6,7,12],auth_token:0,authent:[1,2,3,4,6,7],author:[0,1,3,4,5,6,7],autoescap:8,avail:[0,3,9,10,12],ave_spe:7,ave_speed_from:7,ave_speed_to:7,averag:[3,7,8,10],average_spe:5,avoid:8,awesom:12,axi:7,b862a77:8,b:12,background:8,backup:12,bad:[0,1,4,6,7],bearer:[0,1,3,4,5,6,7],becom:8,been:8,befor:[8,12],begin:12,better:8,between:10,bike:[4,7,8,10],bin:12,bio:[0,6],biographi:0,birth:[0,8],birth_dat:[0,6],bound:7,build:12,button:8,by_sport:5,by_tim:5,c:7,calcul:8,calendar:[8,10],can:[0,6,8,10,11,12,13],cannot:[8,10],card:8,cd:12,chang:[0,10,11,12],changelog:12,charact:[0,8],chart:[7,8,10,12],chart_data:7,check:[1,8,12,13],choos:[8,10],cli:[8,9,10,12],client:[8,12],client_max_body_s:12,clone:12,code:[0,1,3,4,5,6,7,8],color:[0,4,8,10],com:[0,1,6,12],come:10,command:[8,10,11,12],complet:8,compos:12,config:[1,8,12],configur:[2,8,10,12],confirm:[0,8,10,12],contact:[0,1,6,7,10],contain:[8,10,12],content:[0,1,3,4,5,6,7],contributor:[1,8,12],control:[8,10],coordin:12,copi:[1,12],copyright:[1,12],correctli:8,countri:10,cp:12,creat:[0,7,8,10,12],create_app:12,created_at:[0,6],creation:[8,10],creation_d:7,credenti:[0,12],criteria:6,cross:10,curent:6,current:[0,8],custom:12,cycl:[4,8,10],d:[0,5,7],dai:[8,10],danielsiersleben:8,dark:12,darkski:[8,10],dashboard:8,data:[0,1,3,4,5,6,7,8,10,11,12],databas:[8,10,12,13],database_disable_pool:12,database_url:[8,12],date:[0,5,7,8,10],db:12,debian:12,default_staticmap:[8,12],defin:10,definit:8,delet:[0,6,7,8,9,10],depend:[8,12],deprec:9,desc:7,descent:[7,10],describ:12,descript:[9,12],detail:[6,8],develop:[8,9,11],dialect:13,differ:[6,8,10],direct:[8,10],directli:12,directori:[8,12],disabl:[0,8,10,12],displai:[0,7,8,9,10,11,12,13],distanc:[0,3,7,8,10],distance_from:7,distance_to:7,distribut:12,docker:8,document:[8,11,12],doe:[0,5,6,7,8],don:0,dotenv:8,down:8,download:[7,8,10,12],dramatiq:[8,12],drop:8,dropdown:10,due:8,durat:[3,7,8,10],duration_from:7,duration_to:7,dure:[0,7],easi:8,edit:[0,8,10],electr:10,elev:[7,8,10,12],els:12,email:[0,1,6,8,9,10,13],email_url:[12,13],empti:[8,9,12],en:[0,6],enabl:[0,1,6,10,12],encount:12,end:[5,7],endpoint:[0,1,8],engin:[8,12,13],english:10,enter:[8,10],entiti:[0,7],entri:12,entrypoint:8,env:12,environ:[8,9,13],error:[0,1,4,6,7,8,10,12,13],europ:[0,6],evalu:[8,12],even:[8,10],exampl:[0,1,3,4,5,6,7,11,12],exc:13,exce:[0,7],exceed:8,except:[6,13],execstart:12,exhaust:11,exist:[0,5,6,7,10,11,12],exit:9,expir:[0,1,3,4,5,6,7],extens:[0,7],fa33f4d996844a5c73ecd1ae24456ab8:7,fail:[8,14],fals:[0,1,4,6,7,12],farest:[3,8],farthest:[8,10],fd:[0,3,6,7],featur:[11,12],fetch:12,file:[0,1,7,8,9,10,11,12],filter:[8,10],finish:8,first:[0,10],first_nam:[0,6],fitotrack:11,fittracke:[9,10,12,14],fittrackee_cli:12,fittrackee_set_admin:9,fittrackee_upgrade_db:9,fittrackee_work:12,flask:12,flask_app:12,flaticon:12,fmstrat:8,follow:[3,9,10,12,13],forbidden:[0,1,4,5,6,7],forecast:12,fork:12,form:[0,7],format:[0,5,7],former:12,forrunn:11,forward:12,found:[0,4,5,6,7],fr:6,frame:5,freepik:12,french:10,fri:7,from:[5,7,8,10,11],ftcli:12,full:[8,10],fullchain:12,fullscreen:8,gener:[8,10,12],get:[0,1,3,4,5,6,7],gif:0,git:12,github:12,given:[0,12],gmt:[0,3,6,7],gpl:11,gpx:[7,8,10,11,12],gpx_limit_import:1,gpxpy:[0,10,12],grant:12,graph:8,greater:8,gunicorn:[12,13],gz:12,h:[7,10],ha:[6,10],handl:[0,10,12],has_workout:4,have:[1,4,5,6,7,8],he:6,header:[0,1,3,4,5,6,7],health:1,heavi:[11,12],help:9,hexadecim:0,hi:[0,6,8,10],hike:[4,8,10],home:12,host:12,href:[1,12],http2:12,http:[0,1,3,4,5,6,7,12],hvybqybra7wwxpastwr4v2:[0,3,6],i18n:8,icon:[8,12],id:[0,3,4,5,6,7],imag:[0,6,7,8,10,12],imperi:[0,8,10],imperial_unit:[0,6],inact:[0,6,10,12],includ:8,incorrect:8,index:7,indic:10,info:0,inform:[0,8,11,12],init:12,initi:[8,12],initialis:[8,12],input:8,insid:12,instal:[8,11],instanc:[1,8,10,12],instead:10,instruct:[0,8,10,12],integ:[1,4,5,6,7],interceptor:8,interfac:[11,12],intern:[0,1,4,6,7],introduc:8,invalid:[0,1,3,4,5,6,7,8,12],invalidemailurlschem:13,io:12,ip:12,is_act:[0,4,6],is_active_for_us:4,is_admin:6,is_email_sending_en:1,is_registration_en:1,issu:[11,12],jan:7,javascript:8,jinja:8,john_do:6,jpeg:6,jpg:0,js:12,json:[0,1,3,4,5,6,7],jul:[0,3,6,7],keep:[8,11,12],kei:[8,10,12],kjxavsturjvoah2wvcegef:7,km:[7,10],label:[4,8],languag:[0,6,10],larg:[0,7,10],larger:12,last:[0,12],last_nam:[0,6],latitud:7,launch:8,layer:[8,12],ld:[0,3,6,7],leaflet:[7,12],least:7,legitim:8,less:8,librari:12,licens:[8,11],like:[10,12],limit:[8,10],line:[10,11,12],link:[8,12],linux:12,list:[8,11,12],listen:12,load:[8,13],local:[8,11,12],localhost:[8,12],locat:[0,6,12],lock:10,log:[0,1,3,4,5,6,7,10,11,12,13],logfil:12,login:0,logo:12,logout:8,longer:[8,13],longest:[3,8,10],longitud:7,m:[0,5,7],made:12,mai:[10,11,12],mailhog:12,major:8,make:[8,12],makefil:12,manag:[8,9],mandatori:[7,8,12],map:[7,8,10,11],map_attribut:[1,12],map_id:7,map_til:7,marker:8,match:0,max:[1,6,7,8],max_alt:7,max_single_file_s:1,max_spe:7,max_speed_from:7,max_speed_to:7,max_us:1,max_zip_file_s:1,maxim:7,maximum:[3,8,10],messag:[0,1,7,8,9],method:12,metric:10,migrat:[8,9,12],min:8,min_alt:7,minim:7,miss:[0,8],mobil:11,model:8,modifi:[6,8,9,12],modification_d:7,modul:12,mon:7,mondai:[0,5,10],montain:8,month:[5,8,10],more:[8,10,11,12],morn:7,mountain:[4,10],mous:8,move:[7,8],movement:8,ms:[0,3,6,7],multi:12,multipart:[0,7],must:[0,1,4,6,8,10,12,13],mv:12,n:0,name:[0,5,6,12],nano:12,nb_sport:[0,6],nb_workout:[0,5,6],necessari:[10,12],need:[8,12],network:12,new_email:6,new_password:0,newli:[0,12],next:[9,10],next_workout:7,nginx:[10,12],no_gpx:7,non:[4,11],noopen:12,noreferr:12,nosuchmoduleerror:13,note:[7,8,10,12],now:[8,9,10,12],number:[1,6,7,8,10,12],oauth:[0,1,3,4,5,6,7],object:[0,1,4,6,7],office365:12,ok:[0,1,3,4,5,6,7],old:12,omit:12,one:[0,6,7,10],onli:[0,6,7,8,9,10,12],open:[11,12],openstreetmap:[1,8,12],opentrack:11,option:[8,9,12],order:[6,7,8],order_bi:6,org:[1,12],origin:10,os:12,other:[6,12],outdoor:[8,11,12],over:8,overrid:10,overridden:10,overwrit:12,own:[6,11],owner:[8,10],packag:[8,12],paf38:8,page:[6,7],pagin:[6,7],par_pag:6,paramet:[0,4,5,6,7,8,10],pari:[0,6],pars:[8,12],part:[0,7],pass:12,password:[0,6,8,9,10,12],patch:[0,1,4,6,7],path:12,paus:[7,8],payload:[0,1,4,6,7],pem:12,per:[6,7,8],per_pag:[6,7],period:10,permiss:[1,4,5,6,7],pg_dump:12,pictur:[0,6,7,8],ping:1,pip:12,pipenv:8,pleas:[0,1,3,4,5,6,7,8],plugin:13,png:[0,7,12],poetri:[8,12],point:[8,12],pong:1,pool:12,port:12,posit:[8,10],possibl:[8,10,11,12],post:[0,7],postgr:[8,13],postgresql:[8,12,13],pre:8,prefer:[0,6,8],previous_workout:7,privileg:12,privkei:12,process:[0,10,12],product:8,productionconfig:12,profil:[0,8],project:12,provid:[0,1,3,4,5,6,7,8,10,12,13],proxi:12,proxy_add_x_forwarded_for:12,proxy_pass:12,proxy_redirect:12,proxy_set_head:12,pull:12,purpos:[8,12],pwd:12,py:12,python:[8,12],q:6,queri:[5,6,7],queue:12,r:12,rais:10,read:8,real:12,rebuild:8,rechart:7,recommend:12,record:[0,2,6,7,8,10],record_typ:[0,3,6,7],redi:[8,12],redis_url:12,reduc:8,refacto:8,refactor:8,refresh:8,regardless:6,regist:[0,1,12],registr:[0,1,8,10,12],rel:12,relat:[10,12],releas:12,remain:8,remote_addr:12,remov:[6,8,9,10],renam:8,replac:[8,12],repo:12,report:8,repositori:12,request:[0,1,3,4,5,6,7,12],request_uri:12,requir:0,requisit:8,resend:0,resent:0,reset:[0,6,8,9,10,12],reset_password:6,resolut:8,respons:[0,1,3,4,5,6,7],restart:12,restartsec:12,right:[6,8,9,10,12],rout:8,row:10,run:[4,8,10,12],runner:11,s:[6,7,8,12],sam:[0,6],same:8,samr1:12,sanit:8,sat:6,save:[8,10],schema:12,screen:[8,10],script:8,search:8,second:7,secret:12,see:[8,10,11,12,13],seem:8,segment:[7,8,10],segment_id:7,select:[0,7],send:[0,6,8,10,12],sender:12,sender_email:12,sent:[8,10,12],serv:[8,12],server:[0,1,4,6,7,8,10,11],server_nam:12,servic:12,set:[8,9,10,12],sever:[8,11,12],shell:12,should:12,show:[8,9],shown:8,side:8,signatur:[0,1,3,4,5,6,7],simpl:12,simplifi:8,sinc:12,singl:[1,6,8,12],size:[0,1,7,8,10],ski:10,sky:12,slow:8,small:8,smtp:[8,12],snowsho:[8,10],some:[6,7,8,11,12],sorri:0,sort:[6,7],spawn:12,speed:[0,3,7,8,10,12],spinner:8,sport:[0,2,5,7,8,10,12],sport_id:[0,3,4,5,6,7],sports_list:[0,6],sql:12,sqlalchemi:[8,12,13],ssl:12,ssl_certif:12,ssl_certificate_kei:12,standard:[8,12],standarderror:12,standardoutput:12,start:[0,5,7,8,10,12,14],startlimitintervalsec:12,starttl:12,stat:[5,8],staticmap:12,statist:2,statu:[0,1,3,4,5,6,7,9],step:12,still:[10,11],stop:[0,8,10,12],stopped_speed_threshold:[0,4],store:[10,11],street:11,string:[0,1,4,5,6,7,12],subdomain:7,success:[0,1,3,4,5,6,7],successfulli:0,sun:[0,3,6,7],sundai:[5,7,10],support:[8,10,13],syslog:12,syslogidentifi:12,system:[10,12],systemd:12,t:[0,8,13],taken:0,tar:12,target:12,task:12,templat:8,term:[8,12],test:12,textarea:8,than:[6,8],thank:8,thei:12,them:11,thi:[0,7,8,9,10,11,12],threshold:[0,8,10],thunderforest:[8,12],tile:[7,8],tile_server_url:12,time:[0,5,7,8,10],timezon:[0,6,8,10],titl:7,tl:[8,12],todo:15,token:[0,1,3,4,5,6,7],too:[0,7],tool:12,tooltip:[8,10],total:[8,10],total_asc:5,total_dist:[0,5,6],total_dur:[0,5,6],track:11,trail:10,translat:8,transport:[4,8,10],troubleshoot:11,type:[0,1,3,4,5,6,7,12],typescript:12,u:12,ui:8,ui_url:12,unauthor:[0,1,3,4,5,6,7],under:[11,12],underscor:0,unencrypt:12,unit:[0,8,12],unstabl:[11,12],up:[10,11],updat:[0,1,4,6,7,8,10,12],upgrad:8,upload:[8,9,10,12],upload_fold:12,uploads_dir_s:5,uri:8,url:[0,8,12,13],us:[0,6,7,8,10,11,12],usag:9,user:[0,1,2,3,4,5,7,8,10,12,14],user_id:0,user_nam:[5,6],usernam:[0,6,8,12],uuid:[7,8],v0:12,v3:11,valid:[0,1,3,4,5,6,7,8,12,13],valu:[0,3,6,7],variabl:[8,13],venv:12,version:[1,9,12],via:10,view:[8,10],virtualenv:12,vue3:12,vue:12,vue_app_api_url:12,vuex:12,w:8,wa:[0,8],wai:12,walk:[4,8,10],wantedbi:12,warn:[8,10],weather:[8,10,12],weather_api:12,weather_api_kei:12,weather_end:7,weather_start:7,web:[0,11,12],week:[0,5,8,10],weekend:8,weekm:[0,5,6],were:8,wget:12,when:[0,1,8,9,10,12],where:12,which:10,wind:[8,10],with_gpx:7,without:[5,6,7,8,10,11],work:12,worker:[8,12],workers_process:12,workingdirectori:12,workout:[0,2,5,8,11],workout_d:[0,3,6,7],workout_id:[0,3,6,7],workout_short_id:7,workouts_count:6,written:12,www:[1,12],x:[7,12],xml:7,xxxx:12,xzf:12,y:[0,5,7,12],yai:12,yarn:12,year:[5,10],yet:11,you:[1,4,5,6,7,11],your:[6,11,12],z:[7,12],zip:[1,7,8,10],zone:0,zoom:7},titles:["Authentication","Configuration","API documentation","Records","Sports","Statistics","Users","Workouts","Change log","Command line interface","Features","FitTrackee","Installation","Administrator","Troubleshooting","User"],titleterms:{"0":8,"01":8,"02":8,"03":8,"04":8,"05":8,"07":8,"09":8,"1":8,"10":8,"11":8,"12":8,"13":8,"14":8,"15":8,"16":8,"17":8,"19":8,"2":8,"2018":8,"2019":8,"2020":8,"2021":8,"2022":8,"21":8,"23":8,"24":8,"27":8,"29":8,"3":8,"30":8,"31":8,"4":8,"5":8,"6":8,"7":8,"8":8,"9":8,"new":8,account:10,administr:[8,10,13],api:2,authent:0,avail:8,bug:8,chang:8,close:8,command:9,configur:1,content:11,dashboard:10,databas:9,db:9,deploy:12,detail:10,dev:12,develop:12,docker:12,document:2,drop:9,email:12,endpoint:2,environ:12,fail:13,featur:[8,10],first:8,fittracke:[8,11,13],fix:8,french:8,from:12,ftcli:9,improv:8,instal:12,interfac:9,issu:8,line:9,list:10,log:8,map:12,minor:8,misc:8,prefer:10,prerequisit:12,prod:12,product:12,pull:8,pypi:[8,12],record:3,releas:8,request:8,screenshot:10,secur:8,server:12,sourc:12,sport:4,start:13,statist:[5,8,10],tabl:11,tile:12,translat:10,troubleshoot:14,updat:9,upgrad:[9,12],user:[6,9,15],variabl:12,version:8,workout:[7,10]}}) \ No newline at end of file +Search.setIndex({docnames:["api/auth","api/configuration","api/index","api/records","api/sports","api/stats","api/users","api/workouts","changelog","cli","features","index","installation","troubleshooting/administrator","troubleshooting/index","troubleshooting/user"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":5,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":3,"sphinx.domains.rst":2,"sphinx.domains.std":2,sphinx:56},filenames:["api/auth.rst","api/configuration.rst","api/index.rst","api/records.rst","api/sports.rst","api/stats.rst","api/users.rst","api/workouts.rst","changelog.md","cli.rst","features.rst","index.rst","installation.rst","troubleshooting/administrator.rst","troubleshooting/index.rst","troubleshooting/user.rst"],objects:{"":[[0,0,1,"post--api-auth-account-confirm","/api/auth/account/confirm"],[0,0,1,"post--api-auth-account-resend-confirmation","/api/auth/account/resend-confirmation"],[0,0,1,"post--api-auth-email-update","/api/auth/email/update"],[0,0,1,"post--api-auth-login","/api/auth/login"],[0,0,1,"post--api-auth-password-reset-request","/api/auth/password/reset-request"],[0,0,1,"post--api-auth-password-update","/api/auth/password/update"],[0,1,1,"delete--api-auth-picture","/api/auth/picture"],[0,0,1,"post--api-auth-picture","/api/auth/picture"],[0,2,1,"get--api-auth-profile","/api/auth/profile"],[0,0,1,"post--api-auth-profile-edit","/api/auth/profile/edit"],[0,3,1,"patch--api-auth-profile-edit-account","/api/auth/profile/edit/account"],[0,0,1,"post--api-auth-profile-edit-preferences","/api/auth/profile/edit/preferences"],[0,0,1,"post--api-auth-profile-edit-sports","/api/auth/profile/edit/sports"],[0,1,1,"delete--api-auth-profile-reset-sports-(sport_id)","/api/auth/profile/reset/sports/(sport_id)"],[0,0,1,"post--api-auth-register","/api/auth/register"],[1,2,1,"get--api-config","/api/config"],[1,3,1,"patch--api-config","/api/config"],[1,2,1,"get--api-ping","/api/ping"],[3,2,1,"get--api-records","/api/records"],[4,2,1,"get--api-sports","/api/sports"],[4,2,1,"get--api-sports-(int-sport_id)","/api/sports/(int:sport_id)"],[4,3,1,"patch--api-sports-(int-sport_id)","/api/sports/(int:sport_id)"],[5,2,1,"get--api-stats-(user_name)-by_sport","/api/stats/(user_name)/by_sport"],[5,2,1,"get--api-stats-(user_name)-by_time","/api/stats/(user_name)/by_time"],[5,2,1,"get--api-stats-all","/api/stats/all"],[6,2,1,"get--api-users","/api/users"],[6,1,1,"delete--api-users-(user_name)","/api/users/(user_name)"],[6,2,1,"get--api-users-(user_name)","/api/users/(user_name)"],[6,3,1,"patch--api-users-(user_name)","/api/users/(user_name)"],[6,2,1,"get--api-users-(user_name)-picture","/api/users/(user_name)/picture"],[7,2,1,"get--api-workouts","/api/workouts"],[7,0,1,"post--api-workouts","/api/workouts"],[7,1,1,"delete--api-workouts-(string-workout_short_id)","/api/workouts/(string:workout_short_id)"],[7,2,1,"get--api-workouts-(string-workout_short_id)","/api/workouts/(string:workout_short_id)"],[7,3,1,"patch--api-workouts-(string-workout_short_id)","/api/workouts/(string:workout_short_id)"],[7,2,1,"get--api-workouts-(string-workout_short_id)-chart_data","/api/workouts/(string:workout_short_id)/chart_data"],[7,2,1,"get--api-workouts-(string-workout_short_id)-chart_data-segment-(int-segment_id)","/api/workouts/(string:workout_short_id)/chart_data/segment/(int:segment_id)"],[7,2,1,"get--api-workouts-(string-workout_short_id)-gpx","/api/workouts/(string:workout_short_id)/gpx"],[7,2,1,"get--api-workouts-(string-workout_short_id)-gpx-download","/api/workouts/(string:workout_short_id)/gpx/download"],[7,2,1,"get--api-workouts-(string-workout_short_id)-gpx-segment-(int-segment_id)","/api/workouts/(string:workout_short_id)/gpx/segment/(int:segment_id)"],[7,2,1,"get--api-workouts-map-(map_id)","/api/workouts/map/(map_id)"],[7,0,1,"post--api-workouts-no_gpx","/api/workouts/no_gpx"],[12,4,1,"-","APP_LOG"],[12,4,1,"-","APP_SECRET_KEY"],[12,4,1,"-","APP_SETTINGS"],[12,4,1,"-","APP_WORKERS"],[12,4,1,"-","DATABASE_DISABLE_POOLING"],[12,4,1,"-","DATABASE_URL"],[12,4,1,"envvar-DEFAULT_STATICMAP","DEFAULT_STATICMAP \ud83c\udd95"],[12,4,1,"-","EMAIL_URL"],[12,4,1,"-","FLASK_APP"],[12,4,1,"-","HOST"],[12,4,1,"-","MAP_ATTRIBUTION"],[12,4,1,"-","PORT"],[12,4,1,"-","REDIS_URL"],[12,4,1,"-","SENDER_EMAIL"],[12,4,1,"-","TILE_SERVER_URL"],[12,4,1,"-","UI_URL"],[12,4,1,"-","UPLOAD_FOLDER"],[12,4,1,"-","VUE_APP_API_URL"],[12,4,1,"-","WEATHER_API_KEY"],[12,4,1,"-","WORKERS_PROCESSES"]],"/api/workouts/map_tile/(s)/(z)/(x)/(y)":[[7,2,1,"get--api-workouts-map_tile-(s)-(z)-(x)-(y).png","png"]]},objnames:{"0":["http","post","HTTP post"],"1":["http","delete","HTTP delete"],"2":["http","get","HTTP get"],"3":["http","patch","HTTP patch"],"4":["std","envvar","environment variable"]},objtypes:{"0":"http:post","1":"http:delete","2":"http:get","3":"http:patch","4":"std:envvar"},terms:{"0":[0,1,3,4,5,6,7,9,10,12],"00":[0,3,6,7],"000000":0,"01":[0,3,5,6,7],"02":7,"03":[6,7],"04":7,"06":5,"07":[0,3,6,7],"08":[0,3,6],"09":[0,6],"0mb":[0,7],"1":[0,1,3,4,5,6,7,10,12],"10":[0,1,3,6,7,12],"100":[7,8,10],"1000":5,"101":8,"104":8,"1048576":1,"10485760":1,"106":8,"109":8,"11":[0,3,6,10],"115":8,"116":8,"12":[0,3,6,7],"121":8,"123":8,"1232004":7,"12341":5,"1234538":7,"1267":5,"127":[8,12],"129":8,"13":7,"131":8,"134":8,"135":8,"138":8,"14":[0,6,7],"140":8,"145":8,"146":8,"149":8,"15":[5,7],"150":5,"151":8,"152":8,"155":8,"156":[5,8],"1563529507772":7,"16":[5,7],"160":8,"161":8,"169":8,"17":[7,12],"171":8,"173":8,"175":8,"177":8,"178":[5,8],"18":[0,3,6,7,8],"180":8,"2":[0,1,3,4,5,6,7,10,12],"20":6,"200":[0,1,3,4,5,6,7],"201":7,"2017":[5,7],"2018":[5,7],"2019":[0,3,5,6,7],"203":5,"204":[0,6,7],"22":[7,8],"25":[8,12],"26":8,"27":[0,6],"279":7,"28":8,"280":7,"282":5,"2930":7,"2e1ee2c":8,"3":[0,4,5,6,7,10,12],"30":[0,5],"3000":12,"301":12,"31":7,"33":8,"34":8,"34614d5":8,"36":8,"37":8,"39":7,"4":[0,4,5,6,7,12],"40":8,"400":[0,1,4,6,7],"401":[0,1,3,4,5,6,7],"403":[0,1,4,5,6,7],"404":[0,4,5,6,7],"41":8,"4109":7,"413":[0,7],"43":8,"44":[7,8],"443":12,"45":7,"46":[5,8],"465":12,"47":[5,7,8],"48":5,"4c3fc34":8,"5":[4,5,6,7,9,10,12],"50":[0,6,8],"500":[0,1,4,6,7],"5000":12,"5078118":7,"5079733":7,"51":7,"53":8,"54":8,"5432":12,"57":[7,8],"58":[0,6,8],"587":12,"59":8,"6":[0,1,4,6,7,9,10,12],"613":5,"62":8,"63":7,"64":8,"66":8,"67":[0,6],"7":[1,7,12],"70":8,"71":8,"72":8,"7380":7,"75":8,"78":5,"79":8,"8":[0,7],"80":[8,12],"8025":12,"81":8,"82":8,"83":8,"84":8,"877fa0f":8,"895":[0,6],"9":[0,3,6,12],"90":8,"91":8,"93":8,"95":[5,8],"98":8,"99":[5,8],"9960":5,"boolean":[0,1,6,9],"case":[10,12],"default":[5,6,7,8,10,12],"do":[1,4,5,6,7],"export":11,"float":[0,7],"import":[8,12],"int":[4,7],"new":[0,6,9,10,12],"null":[0,4,6,7],"return":[3,6,7,12],"short":7,"static":[8,12],"switch":8,"true":[0,1,4,6,8,12],"try":[0,6,7],A:[6,8,9,10,12,13],AS:[0,3,6,7],And:8,For:[10,12],If:[0,10,12],In:[8,10],It:[0,6,8,10,11,13],NO:[0,6,7],NOT:[4,7],No:[0,6,7,8,11],Not:[0,4,5,6,7],OF:12,ON:12,On:12,One:12,TO:12,The:[0,8,9,10,12],There:12,To:[8,12],WITH:12,With:12,_:[0,8],__main__:12,_blank:12,access:12,account:[0,6,8,9,12],acit:7,activ:[0,4,6,8,9,10,11,12],ad:[0,8,9,10],adapt:12,add:[6,8,9,10,11],addit:12,address:[0,10,12],admin:[0,1,3,4,5,6,7,8,9,10,12],admin_contact:1,administr:[0,1,6,7,14],adress:12,after:[0,8,10,12],again:[0,1,3,4,5,6,7],agplv3:8,all:[3,4,5,6,12],allow:[0,1,7,8,10,11],along:7,alphanumer:[0,8],alpin:10,alreadi:0,also:[8,9,11,12],altitud:8,alwai:12,an:[0,1,4,6,8,10,12],android:11,anoth:[0,6,12],anymor:8,apach:11,api:[0,1,3,4,5,6,7,8,10,11,12],apikei:12,app:[8,11],app_log:12,app_secret_kei:12,app_set:12,app_work:12,appear:10,appli:9,applic:[0,1,3,4,5,6,7,8,10,11,12],ar:[3,7,8,9,10,11,12,13],arch:12,archiv:[1,8,10,12],archlinux:12,arg:9,arrow:10,asc:6,ascent:[7,10],attribut:12,auth:[0,1,3,4,5,6,7,12],auth_token:0,authent:[1,2,3,4,6,7],author:[0,1,3,4,5,6,7],autoescap:8,avail:[0,3,9,10,12],ave_spe:7,ave_speed_from:7,ave_speed_to:7,averag:[3,7,8,10],average_spe:5,avoid:8,awesom:12,axi:7,b862a77:8,b:12,background:8,backup:12,bad:[0,1,4,6,7],bearer:[0,1,3,4,5,6,7],becom:8,been:8,befor:[8,12],begin:12,better:8,between:10,bike:[4,7,8,10],bin:12,bio:[0,6],biographi:0,birth:[0,8],birth_dat:[0,6],bound:7,build:12,button:8,by_sport:5,by_tim:5,c:7,calcul:8,calendar:[8,10],can:[0,6,8,10,11,12,13],cannot:[8,10],card:8,cd:12,chang:[0,10,11,12],changelog:12,charact:[0,8],chart:[7,8,10,12],chart_data:7,check:[1,8,12,13],choos:[8,10],cli:[8,9,10,12],client:[8,12],client_max_body_s:12,clone:12,code:[0,1,3,4,5,6,7,8],color:[0,4,8,10],com:[0,1,6,12],come:10,command:[8,10,11,12],complet:8,compos:12,config:[1,8,12],configur:[2,8,10,12],confirm:[0,8,10,12],contact:[0,1,6,7,10],contain:[8,10,12],content:[0,1,3,4,5,6,7],contributor:[1,8,12],control:[8,10],coordin:12,copi:[1,12],copyright:[1,12],correctli:8,countri:10,cp:12,creat:[0,7,8,10,12],create_app:12,created_at:[0,6],creation:[8,10],creation_d:7,credenti:[0,12],criteria:6,cross:10,curent:6,current:[0,8],custom:12,cycl:[4,8,10],d:[0,5,7],dai:[8,10],danielsiersleben:8,dark:12,darkski:[8,10],dashboard:8,data:[0,1,3,4,5,6,7,8,10,11,12],databas:[8,10,12,13],database_disable_pool:12,database_url:[8,12],date:[0,5,7,8,10],db:12,debian:12,default_staticmap:[8,12],defin:10,definit:8,delet:[0,6,7,8,9,10],depend:[8,12],deprec:9,desc:7,descent:[7,10],describ:12,descript:[9,12],detail:[6,8],develop:[8,9,11],dialect:13,differ:[6,8,10],direct:[8,10],directli:12,directori:[8,12],disabl:[0,8,10,12],displai:[0,7,8,9,10,11,12,13],distanc:[0,3,7,8,10],distance_from:7,distance_to:7,distribut:12,docker:8,document:[8,11,12],doe:[0,5,6,7,8],don:0,dotenv:8,down:8,download:[7,8,10,12],dramatiq:[8,12],drop:8,dropdown:10,due:8,durat:[3,7,8,10],duration_from:7,duration_to:7,dure:[0,7],easi:8,edit:[0,8,10],electr:10,elev:[7,8,10,12],els:12,email:[0,1,6,8,9,10,13],email_url:[12,13],empti:[8,9,12],en:[0,6],enabl:[0,1,6,10,12],encount:12,end:[5,7],endpoint:[0,1,8],engin:[8,12,13],english:10,enter:[8,10],entiti:[0,7],entri:12,entrypoint:8,env:12,environ:[8,9,13],error:[0,1,4,6,7,8,10,12,13],europ:[0,6],evalu:[8,12],even:[8,10],exampl:[0,1,3,4,5,6,7,11,12],exc:13,exce:[0,7],exceed:8,except:[6,13],execstart:12,exhaust:11,exist:[0,5,6,7,10,11,12],exit:9,expir:[0,1,3,4,5,6,7],extens:[0,7],fa33f4d996844a5c73ecd1ae24456ab8:7,fail:[8,14],fals:[0,1,4,6,7,12],farest:[3,8],farthest:[8,10],fd:[0,3,6,7],featur:[11,12],fetch:12,file:[0,1,7,8,9,10,11,12],filter:[8,10],finish:8,first:[0,10],first_nam:[0,6],fitotrack:11,fittracke:[9,10,12,14],fittrackee_cli:12,fittrackee_set_admin:9,fittrackee_upgrade_db:9,fittrackee_work:12,flask:12,flask_app:12,flaticon:12,fmstrat:8,follow:[3,9,10,12,13],forbidden:[0,1,4,5,6,7],forecast:12,fork:12,form:[0,7],format:[0,5,7],former:12,forrunn:11,forward:12,found:[0,4,5,6,7],fr:6,frame:5,freepik:12,french:10,fri:7,from:[5,7,8,10,11],ftcli:12,full:[8,10],fullchain:12,fullscreen:8,gener:[8,10,12],get:[0,1,3,4,5,6,7],gif:0,git:12,github:12,given:[0,12],gmt:[0,3,6,7],gpl:11,gpx:[7,8,10,11,12],gpx_limit_import:1,gpxpy:[0,10,12],grant:12,graph:8,greater:8,gunicorn:[12,13],gz:12,h:[7,10],ha:[6,10],handl:[0,10,12],has_workout:4,have:[1,4,5,6,7,8],he:6,header:[0,1,3,4,5,6,7],health:1,heavi:[11,12],help:9,hexadecim:0,hi:[0,6,8,10],hike:[4,8,10],home:12,host:12,href:[1,12],http2:12,http:[0,1,3,4,5,6,7,12],hvybqybra7wwxpastwr4v2:[0,3,6],i18n:8,icon:[8,12],id:[0,3,4,5,6,7],imag:[0,6,7,8,10,12],imperi:[0,8,10],imperial_unit:[0,6],inact:[0,6,10,12],includ:8,incorrect:8,index:7,indic:10,info:0,inform:[0,8,11,12],init:12,initi:[8,12],initialis:[8,12],input:8,insid:12,instal:[8,11],instanc:[1,8,10,12],instead:10,instruct:[0,8,10,12],integ:[1,4,5,6,7],interceptor:8,interfac:[11,12],intern:[0,1,4,6,7],introduc:8,invalid:[0,1,3,4,5,6,7,8,12],invalidemailurlschem:13,io:12,ip:12,is_act:[0,4,6],is_active_for_us:4,is_admin:6,is_email_sending_en:1,is_registration_en:1,issu:[11,12],jan:7,javascript:8,jinja:8,john_do:6,jpeg:6,jpg:0,js:12,json:[0,1,3,4,5,6,7],jul:[0,3,6,7],keep:[8,11,12],kei:[8,10,12],kjxavsturjvoah2wvcegef:7,km:[7,10],label:[4,8],languag:[0,6,10],larg:[0,7,10],larger:12,last:[0,12],last_nam:[0,6],latitud:7,launch:8,layer:[8,12],ld:[0,3,6,7],leaflet:[7,12],least:7,legitim:8,less:8,librari:12,licens:[8,11],like:[10,12],limit:[8,10],line:[10,11,12],link:[8,12],linux:12,list:[8,11,12],listen:12,load:[8,13],local:[8,11,12],localhost:[8,12],locat:[0,6,12],lock:10,log:[0,1,3,4,5,6,7,10,11,12,13],logfil:12,login:0,logo:12,logout:8,longer:[8,13],longest:[3,8,10],longitud:7,m:[0,5,7],made:12,mai:[10,11,12],mailhog:12,major:8,make:[8,12],makefil:12,manag:[8,9],mandatori:[7,8,12],map:[7,8,10,11],map_attribut:[1,12],map_id:7,map_til:7,marker:8,match:0,max:[1,6,7,8],max_alt:7,max_single_file_s:1,max_spe:7,max_speed_from:7,max_speed_to:7,max_us:1,max_zip_file_s:1,maxim:7,maximum:[3,8,10],messag:[0,1,7,8,9],method:12,metric:10,migrat:[8,9,12],min:8,min_alt:7,minim:7,miss:[0,8],mobil:11,model:8,modifi:[6,8,9,12],modification_d:7,modul:12,mon:7,mondai:[0,5,10],montain:8,month:[5,8,10],more:[8,10,11,12],morn:7,mountain:[4,10],mous:8,move:[7,8],movement:8,ms:[0,3,6,7],multi:12,multipart:[0,7],must:[0,1,4,6,8,10,12,13],mv:12,n:0,name:[0,5,6,12],nano:12,nb_sport:[0,6],nb_workout:[0,5,6],necessari:[10,12],need:[8,12],network:12,new_email:6,new_password:0,newli:[0,12],next:[9,10],next_workout:7,nginx:[10,12],no_gpx:7,non:[4,11],noopen:12,noreferr:12,nosuchmoduleerror:13,note:[7,8,10,12],now:[8,9,10,12],number:[1,6,7,8,10,12],oauth:[0,1,3,4,5,6,7],object:[0,1,4,6,7],office365:12,offset:8,ok:[0,1,3,4,5,6,7],old:12,omit:12,one:[0,6,7,10],onli:[0,6,7,8,9,10,12],open:[11,12],openstreetmap:[1,8,12],opentrack:11,option:[8,9,12],order:[6,7,8],order_bi:6,org:[1,12],origin:10,os:12,other:[6,12],outdoor:[8,11,12],over:8,overrid:10,overridden:10,overwrit:12,own:[6,11],owner:[8,10],packag:[8,12],paf38:8,page:[6,7],pagin:[6,7],par_pag:6,paramet:[0,4,5,6,7,8,10],pari:[0,6],pars:[8,12],part:[0,7],pass:12,password:[0,6,8,9,10,12],patch:[0,1,4,6,7],path:12,paus:[7,8],payload:[0,1,4,6,7],pem:12,per:[6,7,8],per_pag:[6,7],period:10,permiss:[1,4,5,6,7],pg_dump:12,pictur:[0,6,7,8],ping:1,pip:12,pipenv:8,pleas:[0,1,3,4,5,6,7,8],plugin:13,png:[0,7,12],poetri:[8,12],point:[8,12],pong:1,pool:12,port:12,posit:[8,10],possibl:[8,10,11,12],post:[0,7],postgr:[8,13],postgresql:[8,12,13],pre:8,prefer:[0,6,8],previous_workout:7,privileg:12,privkei:12,process:[0,8,10,12],product:8,productionconfig:12,profil:[0,8],project:12,provid:[0,1,3,4,5,6,7,8,10,12,13],proxi:12,proxy_add_x_forwarded_for:12,proxy_pass:12,proxy_redirect:12,proxy_set_head:12,pull:12,purpos:[8,12],pwd:12,py:12,python:[8,12],q:6,queri:[5,6,7],queue:12,r:12,rais:10,read:8,real:12,rebuild:8,rechart:7,recommend:12,record:[0,2,6,7,8,10],record_typ:[0,3,6,7],redi:[8,12],redis_url:12,reduc:8,refacto:8,refactor:8,refresh:8,regardless:6,regist:[0,1,12],registr:[0,1,8,10,12],rel:12,relat:[10,12],releas:12,remain:8,remote_addr:12,remov:[6,8,9,10],renam:8,replac:[8,12],repo:12,report:8,repositori:12,request:[0,1,3,4,5,6,7,12],request_uri:12,requir:0,requisit:8,resend:0,resent:0,reset:[0,6,8,9,10,12],reset_password:6,resolut:8,respons:[0,1,3,4,5,6,7],restart:12,restartsec:12,right:[6,8,9,10,12],rout:8,row:10,run:[4,8,10,12],runner:11,s:[6,7,8,12],sam:[0,6],same:8,samr1:12,sanit:8,sat:6,save:[8,10],schema:12,screen:[8,10],script:8,search:8,second:7,secret:12,see:[8,10,11,12,13],seem:8,segment:[7,8,10],segment_id:7,select:[0,7],send:[0,6,8,10,12],sender:12,sender_email:12,sent:[8,10,12],serv:[8,12],server:[0,1,4,6,7,8,10,11],server_nam:12,servic:12,set:[8,9,10,12],sever:[8,11,12],shell:12,should:12,show:[8,9],shown:8,side:8,signatur:[0,1,3,4,5,6,7],simpl:12,simplifi:8,sinc:12,singl:[1,6,8,12],size:[0,1,7,8,10],ski:10,sky:12,slow:8,small:8,smtp:[8,12],snowsho:[8,10],some:[6,7,8,11,12],sorri:0,sort:[6,7],spawn:12,speed:[0,3,7,8,10,12],spinner:8,sport:[0,2,5,7,8,10,12],sport_id:[0,3,4,5,6,7],sports_list:[0,6],sql:12,sqlalchemi:[8,12,13],ssl:12,ssl_certif:12,ssl_certificate_kei:12,standard:[8,12],standarderror:12,standardoutput:12,start:[0,5,7,8,10,12,14],startlimitintervalsec:12,starttl:12,stat:[5,8],staticmap:12,statist:2,statu:[0,1,3,4,5,6,7,9],step:12,still:[10,11],stop:[0,8,10,12],stopped_speed_threshold:[0,4],store:[10,11],street:11,string:[0,1,4,5,6,7,12],subdomain:7,success:[0,1,3,4,5,6,7],successfulli:0,sun:[0,3,6,7],sundai:[5,7,10],support:[8,10,13],syslog:12,syslogidentifi:12,system:[10,12],systemd:12,t:[0,8,13],taken:0,tar:12,target:12,task:12,templat:8,term:[8,12],test:12,textarea:8,than:[6,8],thank:8,thei:12,them:11,thi:[0,7,8,9,10,11,12],threshold:[0,8,10],thunderforest:[8,12],tile:[7,8],tile_server_url:12,time:[0,5,7,8,10],timezon:[0,6,7,8,10],titl:7,tl:[8,12],todo:15,token:[0,1,3,4,5,6,7],too:[0,7],tool:12,tooltip:[8,10],total:[8,10],total_asc:5,total_dist:[0,5,6],total_dur:[0,5,6],track:11,trail:10,translat:8,transport:[4,8,10],troubleshoot:11,type:[0,1,3,4,5,6,7,12],typescript:12,u:12,ui:8,ui_url:12,unauthor:[0,1,3,4,5,6,7],under:[11,12],underscor:0,unencrypt:12,unit:[0,8,12],unstabl:[11,12],up:[10,11],updat:[0,1,4,6,7,8,10,12],upgrad:8,upload:[8,9,10,12],upload_fold:12,uploads_dir_s:5,uri:8,url:[0,8,12,13],us:[0,6,7,8,10,11,12],usag:9,user:[0,1,2,3,4,5,7,8,10,12,14],user_id:0,user_nam:[5,6],usernam:[0,6,8,12],uuid:[7,8],v0:12,v3:11,valid:[0,1,3,4,5,6,7,8,12,13],valu:[0,3,6,7],variabl:[8,13],venv:12,version:[1,9,12],via:10,view:[8,10],virtualenv:12,vue3:12,vue:12,vue_app_api_url:12,vuex:12,w:8,wa:[0,8],wai:12,walk:[4,8,10],wantedbi:12,warn:[8,10],weather:[8,10,12],weather_api:12,weather_api_kei:12,weather_end:7,weather_start:7,web:[0,11,12],week:[0,5,8,10],weekend:8,weekm:[0,5,6],were:8,wget:12,when:[0,1,8,9,10,12],where:12,which:10,wind:[8,10],with_gpx:7,without:[5,6,7,8,10,11],work:12,worker:[8,12],workers_process:12,workingdirectori:12,workout:[0,2,5,8,11],workout_d:[0,3,6,7],workout_id:[0,3,6,7],workout_short_id:7,workouts_count:6,written:12,www:[1,12],x:[7,12],xml:7,xxxx:12,xzf:12,y:[0,5,7,12],yai:12,yarn:12,year:[5,10],yet:11,you:[1,4,5,6,7,11],your:[6,11,12],z:[7,12],zip:[1,7,8,10],zone:0,zoom:7},titles:["Authentication","Configuration","API documentation","Records","Sports","Statistics","Users","Workouts","Change log","Command line interface","Features","FitTrackee","Installation","Administrator","Troubleshooting","User"],titleterms:{"0":8,"01":8,"02":8,"03":8,"04":8,"05":8,"06":8,"07":8,"09":8,"1":8,"10":8,"11":8,"12":8,"13":8,"14":8,"15":8,"16":8,"17":8,"19":8,"2":8,"2018":8,"2019":8,"2020":8,"2021":8,"2022":8,"21":8,"23":8,"24":8,"27":8,"29":8,"3":8,"30":8,"31":8,"4":8,"5":8,"6":8,"7":8,"8":8,"9":8,"new":8,account:10,administr:[8,10,13],api:2,authent:0,avail:8,bug:8,chang:8,close:8,command:9,configur:1,content:11,dashboard:10,databas:9,db:9,deploy:12,detail:10,dev:12,develop:12,docker:12,document:2,drop:9,email:12,endpoint:2,environ:12,fail:13,featur:[8,10],first:8,fittracke:[8,11,13],fix:8,french:8,from:12,ftcli:9,improv:8,instal:12,interfac:9,issu:8,line:9,list:10,log:8,map:12,minor:8,misc:8,prefer:10,prerequisit:12,prod:12,product:12,pull:8,pypi:[8,12],record:3,releas:8,request:8,screenshot:10,secur:8,server:12,sourc:12,sport:4,start:13,statist:[5,8,10],tabl:11,tile:12,translat:10,troubleshoot:14,updat:9,upgrad:[9,12],user:[6,9,15],variabl:12,version:8,workout:[7,10]}}) \ No newline at end of file diff --git a/docs/troubleshooting/administrator.html b/docs/troubleshooting/administrator.html index c21e5116..d9cd6270 100644 --- a/docs/troubleshooting/administrator.html +++ b/docs/troubleshooting/administrator.html @@ -5,7 +5,7 @@ - Administrator — FitTrackee 0.6.6 + <title>Administrator — FitTrackee 0.6.7 documentation @@ -40,7 +40,7 @@ FitTrackee - 0.6.6 + 0.6.7
diff --git a/docs/troubleshooting/index.html b/docs/troubleshooting/index.html index d18a457a..4f3f34df 100644 --- a/docs/troubleshooting/index.html +++ b/docs/troubleshooting/index.html @@ -5,7 +5,7 @@ - Troubleshooting — FitTrackee 0.6.6 + <title>Troubleshooting — FitTrackee 0.6.7 documentation @@ -40,7 +40,7 @@ FitTrackee - 0.6.6 + 0.6.7
diff --git a/docs/troubleshooting/user.html b/docs/troubleshooting/user.html index a769a11a..e28c17c0 100644 --- a/docs/troubleshooting/user.html +++ b/docs/troubleshooting/user.html @@ -5,7 +5,7 @@ - User — FitTrackee 0.6.6 + <title>User — FitTrackee 0.6.7 documentation @@ -40,7 +40,7 @@ FitTrackee - 0.6.6 + 0.6.7
diff --git a/docsrc/source/_images/fittrackee_screenshot-01.png b/docsrc/source/_images/fittrackee_screenshot-01.png index c6e94f8cb838fe87af7f90d0013c264565c8f26f..3d4b351b749d64f83a7e1bd25e4206baa809afd7 100644 GIT binary patch delta 21777 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 Kt6al6^nU=fVMc@i delta 21628 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 OPhZFQPPvxDv;P9){~^x+ diff --git a/docsrc/source/_images/fittrackee_screenshot-02.png b/docsrc/source/_images/fittrackee_screenshot-02.png index ec37af303ba3e9c04a19a502ebbd9afaac5555eb..ac84e7dadc1d01ce5d9964e64c746d0db89656cc 100644 GIT binary patch delta 17833 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 D!WN>= diff --git a/docsrc/source/_images/fittrackee_screenshot-03.png b/docsrc/source/_images/fittrackee_screenshot-03.png index 30e2281d3bd8f9daae2be2dbc34393ebd43cc804..1bcd8272b5f7ce18eace30596b51182532332c3a 100644 GIT binary patch delta 20935 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 aE6H*tCmI%3Q(jmcZ*6XBV}dmDO85`SPx+hx delta 20737 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 delta 16512 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 I(k$qI0689?f&c&j diff --git a/docsrc/source/_images/fittrackee_screenshot-05.png b/docsrc/source/_images/fittrackee_screenshot-05.png index c4700811e25a584bed8448df3099b88d9c87b7d8..c86d015d2e0e629314011d7c86461808db54d528 100644 GIT binary patch delta 13427 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 delta 13187 zcmYj$dpwix|G!Rj*10Hj5IN_Z^IIxOC_>K3Va>73oQAtn6v<&Z8y%d_%%M3gDaYB8 z!`Rp=hhZ4T#>V!&eSZJ^{@L!`_a68Cx~}_qJrA#oP__F_#qLDO9f+jMGQjo3KhYCM z9C6cvu+7lDCUzJ*UtbNEOK{oG*T)2e&K-u2@Hg1|`2Q{|6egO|t-V`9Jo+*PHMhc= zJGMkB!vTs?s}iA5A}7X1DfHc+B&r?{zQ+05L1fZi5!DYb_B6fbgh#qcV1I4u8uDv@ z!7eQyzw9>*yAYu$IlFu_98kO}?&)NWK={90=v>p{{}trD1a3DGBONB0SXeuvbm^WY z>DbgitI1G-W$X#}r&jBCKOc1e6~VB$;Vj*Dfx0ofke@xXexKP8rT=jyh`q1e)j}fT zmRuq2$j0O(CuoZm`eq98z>kO}Yq4ogob_hiE%6Eq3L6WvF=*%m9x4a?99n}8_Wt0$ ze|9D{f-Zi|zC{#xeVMdnLqQege5|hs6=8^|OC?@Y?mTI%`;1Bykv7IbV+OyPK&3De zK~R%{6P-$2ot(iN9wtJ)q3t=BTTquN^B76%CJq)6t)xSI)a1`#m^sHg7>ufJRD zb#17;W_xGR=l$O|e!sKXwmV>#!a;dQ ziP>Z1FvaI_BaKhfubda~x__r^*-NJG%rkePk8SN!IX#taD|$>3V0bMqfVOYxC0Dd)UnP?sv$vohQnd zRSYYub#Id>t*GbxRu39`^&8(b-$-6`U|)MhN_x5?Q$osxs+i%J#F8*mo4KRB*^{i&nvu8Q|gmYzL zXRd#6mAGm@aOQ&Ddw0tOvwpi9tP&yC81G(vDyL8T7^lek=F-GPszrmoZO6!`$KI3h zTQZI09$(nKQKR?tcdba)Xk1&~qmZj+f>G%sQu^6)e`|H;ebGeG?3&|y%zvT%77%zf zOATMRgOkj=OWr_zN=LY_G$G2$OSils+iCdGy3`on@A~e4H0OfQs#T-shYwLlbOO9n ze`p`IC*52S%nwabG3I%>i-<#|!|g8*^N{^6g2+5mny9H!!LJX41%^>4(Bbv8+ewwt z$p$SspTkYl>svmAY3STPrjYRQnetRgyh+>%T-FDJ^Cq7G)UD64rJ1XdX2qpf{ zVhCSCbB#`pp8aur$MNpsxO4bd(%maVH}*!9-Ji}JsrKwC#Aohz{jXcUXSU+jxA#9^ zV9)IKpZphFs$1!O5q*X5G=CpWBuv0)=a1TJ2lg)=sWswQ7dU7xpLRcp9ICDyKH_vg zc#&yQ{ypAZ<_UFbdbkulJxZ@SEEEe+hpG~Vrd{OJ|7+cbX>|kiz zovxPA7iYUFEDd9+KQTw9zUQ)kNqNe~X@Ei50)^oH2?VDeZ z^M{6kv+=jIB#U18RMn27XtQ~Qw)y0vokG#~>q+o7G)#-jD2?~a+OjZeBZ{J#e zQ$Xw!{Ng-ULYA>atud~IjsKar2DPs`BXnth`>XNZGdl$|bi6(l%v{$F^(HHO*~&Sg zD)&@eZn61<)6qF{0+X1%_t|b8jTD`(g3#Mg-z&%VTeDZZ0hpEC?qb-9_%`D1-(|Z` zPPMKajBec*d}Q?WH&Iw3Z*@wE>-VR$B4;*B+s$MA!<|*;>(=(I(BsWrH%h+UkiRG- za{{FT$qqSIbmD$r(y5BN40?Kf|MzT2|d-nDMuA3XCR-OE@m^zpr$ zPX!dmoh6+Lr{YBbAK;436QL8C7hdE&FqIS9DL5QcUi-QF+{-(JqP_~0*vYxQ@9qb= zL|+w&IA(t%5Mjr znu*CSrxQ+{=kGCJc?s>GN_3WqlFmQle&NIE7ekS*-O=tv;YVfdpI+fCS16Za9-u~V z5q|9*eN0hIA1PC=gogbAE1dhnx5DGlKJI%9?_P9>`8q4@_KgKL^d5>q&$3VOVwvN*%@EM-IZ@O{+EeU|H&0>@zF-4E^7+(F>i?Zu687_J!1$ZzBm1lFm5=V16%DMtdeijsH`K?SF^BCnWSiwi@9y6< zA+GjuNcc`eks55|Zsgj{noA{6cgDhn;g&S^#gpG=Uia^6chfcwwgu#JEhl=_^#-me zU=Lt>ij?chJ)S^Y~kc@V1QncaNR@ zPoSaI<6>VU2GQCDt9zwpc8feX$`LyJSnY4rBaO72!0LAlv}bziqd*~r<7y99qrJ~v zS2=oz^5odFhNGXZ0bdOP{u1ZmZB(YfIAw8UW?*S`C7SPi&%ASFQLHmiOIrEk%BK+7 zbGZGF%5MJpxTEN-vTIfU?64f^jd;kuio&9Hm&x9q3S802LFJO$N`YTLdzY6FUjJ-> z`8fP`KkMRy%a?E0ov+qaf=F{es>pgGcP2;3&#-sLPWL@{sTg~%u>d$qUaiWTl05Qx z-Qwbd3%3PgozJHn)4Ek;g}MitI8}wjzr?%u1YHzKy-701zafnod+v<62gqp}{aXK6 z>sXSdFt<~d1gH$Pp+yoEZyow~u;My%YUAaXvVO1IJ)!R$;F%CSXP?hs_R^Mm+1{W# z8tMlcFVFqjz>AE}*6C>j1PS4peI^!jt~;+X8cF1+*6%KOu8P9uRI}2+|9==0`a1GF z{Z-}11h!LeW#!*sAs+CFKYD%NkU!ka(9kff^U)bw7qOeq@pmnE-8q@@;)%q}H8lyn zqkC$4Z_jj0nB@Kni1@OTwP*BtkRtt)OrV!i;n#;bfVeT44VStV>eMjb=ndq3w@^|) ztA%KgJ~8~a1#TT>4kKN;e~icL{*)rHE0nFT9j0eUTYf_Mm_>Z3_CB{-B$-PgC^Z#P6ttY;%P>J{~Ah6>V)X3k#b60Pol?m`e!p059q4;6eKf$xIR{c=gU%lKPd!_Bx2OHFh116+|x@C4#?ilmj0!4NWM$R}IW7uBSVa5uR7@7iOlk&vkRSQ$`mYEk2A^x$tQ3 z?xeqrP-Lo%^1eM{dqplv$%)yBUZpMjj%A4sky=Ym z)Xh0q=eKGHS`OJO)OisrPL|$${OY`o` z;X>TPROp0EfyYqVrc?qOq1X~U;#Cb_M6ADc3~gT!(F*g))PQEkK5&mI*DMDdoUN@> zOe6eMKoNq^~hM^II2&X&jt z2|P^kXTL*TmBF^I_vmUar3?-Zy0^oLJqhLl_)zVgIgAudeVyi#C7mmlUOeELXB{^^`enBEGI+3?+j0 zgpAh>cM&3iz{id7*$-RqwJ*2ddUq$e4BH+#JLWp28%TFiiRi#(!+8>_e}39pIawhq z%lj{3uQBtcGW#&Pw12VUy^%e}08qQ_&g2@V4lf#_bX-6Q)cQNu$H7;FU&PgX2SKKL{gQ_S0 zb7NPBq6^@(fdq>!KSk_xDlQj$-eL^4V9at|9oe@rkfJ%6Z!1I_@3tCf4jl+*yom}} z;vojhVG|4NDGo4}wGT-#rKc(cbny_=>FtNtM?9F*N?othoU()@09jQ}e9zo?(=-l1 zVv%MVj+!O`TmuPwzAZJ`*q{HX*D~^-fWUbHlN*K)G$sLkR-v4K7x*$&5%{rH#NtmJ zh(vlBCM+^?nmvGVdIxgH1_9rs7c~rFsCL%MY^hYijVvuk-pb{0>uQFWTHZiX-8>F04mUiWgPK zy?5}pVUK{gO5eqvLv2HkH45(p(LVVB9huS*FFMUJjZ8VK#P^*WD#c|O@Qub{(@GB$ z~z>gn4p2?Qrs$4g5&+de2!ccfMY#cP`J0c6fmq zHIdNeYwMiuzz;K=#-Xx$D_eYDclg|-(tbNW9j(*)_c3CnvZ(?O2lNeu^;r)VBW7GA zxY=~TuSJ@c3%?`YI2D^8U1vqufJbAu%y~;piK!P^N(7ls@l=2f=!2CNJJ7)QgZoH~ znN&Kx=~B_W)ch{%s?2HrTC`;M&}sff>PQ652h$xLx`{7^F$`Upg z&rod9HV%j7jzx^;2J|c8ah@(N{u#ZzryF(KM5V}R0|m5yat6HcodN>uvdUkQm1=bs5t0ZNh* z74~d9T8P@PWs@b(;-1R#NwlS$Y5eY1e~|%$vd9sIJ}slSOp=Fe7c$K>9W^V3MRIoi z1`x%B(TGA{^ss2DB7EbUVI}RStssq;rD#gTiyw1Kl(+l0V@x`7&nB|ev#NC z&2|Ixm|hl!+t#Vi`hN&ID!cJrRNd3jIb>sPbA6I@uWGH}Y=LjqFoyo3Ghpl}^=@*r zdO%-to8%E`%D0a%Inla{X_PxCo_b>AH6T0Q z7})dXeqFG(K?qhapsz2OR$Z9W3zB0hLVVK}ueJ5{B&ksNEXYh7i`AvbpaYopw3Twj?_PCTB>aby@QP_r~4S zi@QmBw%i8|Xn6qvb_2__iNcikr%s~NxCF_fzZoJtv#BvwgEvdI9t~@-CJkDhYqGc(_*didp~g*8BF{&WnXeFo}ttt_2pKA!zX2j zem16AR!**_s)U0jO@qQ|RY{3;+4$`2;gMR`w7opY{Gj_e;nS}HM}VxSwKOvjuyq;R zQ!?Ht56eweuaFCqN9Hv)N`V2|L-86Trk9^>QH26W^T1Xq;;E=wQSJdC=$1183-JTt zdM@aD#zvo3p$E~K9R4}NF`22vG36NW10vUuRyA$f-X6S{dqy8OL=Aj2T)@til$4&% zI@&Sk49h1wGvJ2<#oK;Su>Z_s^Y>E;6`Clo?FT$gIV`Lj9U4-|1} zHB_FOTZdT}Y?q6PC3k4Ffhy880)ybPt=X``_j1xE6!En-ZP2%7sIsH%%t1%h!&Jhi z`ZF51Ds1l|Yi&r+;H(Jd%3Oq~%>wB%XxM<>BISuw2x0K9x7pVEUk!U*g%IO?Qs5EQe*U#Kl(x1O}RgVnKwWohIW-)P@>P?C)c|v*w1r8D=ve3NuN3b+ek45XpUrDGV*#+V5E%0G`JsRrS<5o;??l$T6)+O}PHw-Hw45wgR$JsI@ zXN~Rw61<6J@I=0!leWj7-b$rqjH$zLz8hEV$vp$57VVJgPU;zsjg3=aR33?~kEot$ z&13US2-4s@SML9m3@GJE=Zd652OyJ)yI6M<{G8@^qhaXyn*K1C(xzg3g^nLehXLd* za$+sOMVJF@)IG2!;=8=ZYi@$JeakVZuPjBN`KuJq}RG-tpR4macQ zN&${=h|HHx^RD9-*hG*u%^GeRZZtYDy4M=Un|=`ObDlZnxQ%{&_NAFMUDd1_6h4hd zrTH(Sy(w8L>X5CKgzZO!A_mj9UsUKqpR0)%_PrxEvPE}mvsVOU@aXt6Yj5!rhlXb} zUPMv4z>s5QWrfTF7Q@e1wrJ^E$9ZB~wL>0mkK^4rJ;f+ziDX0ngT-glJQgNa>{}2- z-8I~|W=#*Tj(1s!FaTi!u5UVie7gkk@Xcb!4K|s{DpD3%rXOI$2W%s{CYdvM? zW7aD*CyOCMo}h2X{3AIq=l-~Ah4A%|lJrR5H2{awR7%j_@JarkpO@f=hrDj5C*un> zqgzuZ2i zEsjeYtk3$Rhs0y13v?EHD+&4vNCP#*Vla*8uN~}@yOp4QxrJq*ZB^LUwa++04hevn zDUV$+*=C%JJ1Vr$6fRNJ6T7+goo`B16oakU(P&wno9BV1S-hIx;LLF>F*cS&^l7l9 zZxUo6G;-(GRoFDXFCVMb2n@ zUVp%it-C&Ar8WObm5Co&o&`;eBbUZh4I6uPF7jUjY_JE~%&7VBZ^0|1to9X}3o3;zWnq?lH_ShvqWLdt zK6tQOi}x-Ul433v09sqgZWZ>kP}H;E{m|iBlc25PZLwh1kj=@SrDmGAS2t;ktxan^ z!WO#PfF^bAKb8S!aC80iX^+hx!D*QJ80k$5)~Iji=A`Xu2&3Hs*KVPUGT^P?Rv)gy zc_7hDtxhEL5R{sA$qa-$FK{Xz^N&p{kWz;yts-+QtP0EtXN_*T&#j8^{s;*Ow64l} zc{yI7GfSwdN*-AXnkq;3IIX79RUZ$gZvxAwA)@b;FfXE<2}#mhk_7z_E3iGWnc?FG zQnl8SPT^EPxl-j181Hg-k$P!yS+n0PAJ`HnLGHl$<2PQktsfKR40qwOu;;;q-;F>P zP9_US8lu$KaUKmYgY&i3z*XlL%_eaNfaS5k9lcM7bBBZ7PG zMhPs5JRuff3IXc?xG2h3-!5Utf1FFk?{V!3y2<|YP5zBR3!Li8mW%WnAI-6~ zyEcC0ixKq>#7E)#5{N(r^`qgIPs2v$Y;AyC)II^1`~R!549z0Vjss0>V{wDO>l0Sk z$gROrTP0Np9+&vZ2;Cv-J*dDRZfLb;GpB4FlQL8x(?ypO?johkS|3cPKK=8}r*&g` zmePVq&I@KxHpoM^5K=7^I^?zdANVR!F%qGY5u8;!&k)BXxShTdR#`jCf294taFgwl zTK@5tga$or(%uD{)}87Uo83Z*kZJPaw-TRji(>KTu%S>y}`UQ|;C%WfI1k z&p-u}WY*?}dSC82u<`?G;kmx_7n}m~#=zNRaLk3)y{U06)7!AxJfJk$)OpTI^T2An zCZ)@2i!%lOL{?99cyJdQDjk6Q6q`HD={{Az&Gm#=Jq?sFIS?E@_TCj3oU${J1UFCs z5sY7*9YFWUmTnSVdR@R?p9L;OQ!i=z8)pYYFLTCWcoRgv-GH#?0)^RSirJv-u&eqg z+q78a*UDX300XKHiyt0%j~7WB$k2t`*f3fH@Vb!+fiC&J$&-V*~9iLqX-mkY=heGBj4~B%^P{b@&Z!)TzhRfN|vpPXOUS3|m^G(wT^ACr> zrc)-FGet2L0-YZQI#4qExR;uxqI!C>&R?)qTLm0amnJ7%&sglM86~$%_sP=C=4__1 zYQQQ2I#grQidbUJqQ@I0bfQgG78ou`46#PH3QUU&0JeTr&sL19$1oZ^6q{@OJ1jDD z#GS}fV^-|$JLTR=5lf^*Wz0HwtH*;)&<0E9xmLc-Xhi24-I>1L9*i4mSnEYtc@~() zXlQZsT59eTYMAOell@ygdEw)3p|fkjDjsuXfwLo0wCrYE8+!eUWdcLf;;X#D2G4o) z34kJv@aMAXxS+(=abcUTI-X5^-Ue=LJ&h~vl$`WX=ILon8l~rD$=rN{_rlj50xoyA zm(Nc%pOLF5onZV(wc7xQv|4{E@6roD6Hi=v5^sxJ7{O&hiS@n(W?88i=5)SW=lcv* zL=Z(pPuoIw!<{t_$-SGYCc~xz0Fb;5`3wVpigBy9e(>U$F8})hD7cjBNddjv&A4F) z|Gw3i9f&mnfkO@3okHI`H=SXdm*9eRhO~kEMA}^nEBY%Qdaw$${Ne;g0>`}SP2TPn*Z*;!|CJ;R5#7~|5@l5n_3gi2NzZ>sHUw`fg8NJL=# zHW(ElSFMNCG4p9Lkl&Lc8$>wEAhJq-!U{Ii-Xhk0s%Y+UTLMGxh@hq}$ z+T7fnW7w!iC}Oh9r+K+UL^tHAcHm5+zgXbCWMGn|v)HA>Xx@gQqDEE~D4DaPXoz#f zLR}z(q6eGCbr;?L@*9!nWLfvrH960@<>w{4_UJ?Cr~Ng;S!z&APeNu2Du^W0m!(N~ zPRk{T1yeHkT60AS%^k62TxiJDknJ{1B}EKeuS=O{rymy64xb~>4z|Lz>-?PnHkacK z?|x-6aN2<;)VXTHtylQnVoF{ejT~PETtir-(DpI*`p50*gcHx}ZWN)IKhQ=ixVUz@ z=T8N*(o<%ZVA@ji9jo%Ir$W|3i_Z?&I&a{vPoablv1aN@k>X;~`Bbc9y5 zi<-{iKH#HMwpnfo*sAY|NI2BPYx2!56g+5#>^KDb{

Q{{19t?K-}fXwbu-O-X4ye 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 diff --git a/docsrc/source/_images/fittrackee_screenshot-06.png b/docsrc/source/_images/fittrackee_screenshot-06.png index 92f89fd38061446d6bde4d1ebf0b544e2ddcb86c..1a572f27b1fd00a409c1d861156f82903fa96b62 100644 GIT binary patch delta 17662 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%0A4#%`u`%n<+PtTGT|gU_ZiDSX$L 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 Nq^Ru2a^cT@{}12w7$^V$ delta 17527 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 diff --git a/docsrc/source/installation.rst b/docsrc/source/installation.rst index 7672d862..8e216f61 100644 --- a/docsrc/source/installation.rst +++ b/docsrc/source/installation.rst @@ -395,13 +395,13 @@ Production environment .. warning:: | Note that FitTrackee is under heavy development, some features may be unstable. -- Download the last release (for now, it is the release v0.6.6): +- Download the last release (for now, it is the release v0.6.7): .. code:: bash - $ wget https://github.com/SamR1/FitTrackee/archive/v0.6.6.tar.gz - $ tar -xzf v0.6.6.tar.gz - $ mv FitTrackee-0.6.6 FitTrackee + $ wget https://github.com/SamR1/FitTrackee/archive/v0.6.7.tar.gz + $ tar -xzf v0.6.7.tar.gz + $ mv FitTrackee-0.6.7 FitTrackee $ cd FitTrackee - Create **.env** from example and update it @@ -521,13 +521,13 @@ Prod environment - Change to the directory where FitTrackee directory is located -- Download the last release (for now, it is the release v0.6.6) and overwrite existing files: +- Download the last release (for now, it is the release v0.6.7) and overwrite existing files: .. code:: bash - $ wget https://github.com/SamR1/FitTrackee/archive/v0.6.6.tar.gz - $ tar -xzf v0.6.6.tar.gz - $ cp -R FitTrackee-0.6.6/* FitTrackee/ + $ wget https://github.com/SamR1/FitTrackee/archive/v0.6.7.tar.gz + $ tar -xzf v0.6.7.tar.gz + $ cp -R FitTrackee-0.6.7/* FitTrackee/ $ cd FitTrackee - Update **.env** if needed (see `Environment variables `__). diff --git a/fittrackee/__init__.py b/fittrackee/__init__.py index 9fcc0772..042919db 100644 --- a/fittrackee/__init__.py +++ b/fittrackee/__init__.py @@ -20,7 +20,7 @@ from sqlalchemy.exc import ProgrammingError from fittrackee.emails.email import EmailService from fittrackee.request import CustomRequest -VERSION = __version__ = '0.6.6' +VERSION = __version__ = '0.6.7' db = SQLAlchemy() bcrypt = Bcrypt() migrate = Migrate() diff --git a/fittrackee/application/app_config.py b/fittrackee/application/app_config.py index d623e2b4..8dbb918f 100644 --- a/fittrackee/application/app_config.py +++ b/fittrackee/application/app_config.py @@ -48,7 +48,7 @@ def get_application_config() -> Union[Dict, HttpResponse]: "max_users": 0, "max_zip_file_size": 10485760, "map_attribution": "© OpenStreetMap contributors" - "version": "0.6.6" + "version": "0.6.7" }, "status": "success" } @@ -98,7 +98,7 @@ def update_application_config(auth_user: User) -> Union[Dict, HttpResponse]: "max_users": 10, "max_zip_file_size": 10485760, "map_attribution": "© OpenStreetMap contributors" - "version": "0.6.6" + "version": "0.6.7" }, "status": "success" } diff --git a/fittrackee/dist/index.html b/fittrackee/dist/index.html index c7c9b1ad..ec4abf77 100644 --- a/fittrackee/dist/index.html +++ b/fittrackee/dist/index.html @@ -1 +1 @@ -FitTrackee

\ No newline at end of file +FitTrackee
\ No newline at end of file diff --git a/fittrackee/dist/service-worker.js b/fittrackee/dist/service-worker.js index 4c6be92a..595634a3 100644 --- a/fittrackee/dist/service-worker.js +++ b/fittrackee/dist/service-worker.js @@ -1,2 +1,2 @@ -if(!self.define){let s,i={};const e=(e,t)=>(e=new URL(e+".js",t).href,i[e]||new Promise((i=>{if("document"in self){const s=document.createElement("script");s.src=e,s.onload=i,document.head.appendChild(s)}else s=e,importScripts(e),i()})).then((()=>{let s=i[e];if(!s)throw new Error(`Module ${e} didn’t register its module`);return s})));self.define=(t,r)=>{const a=s||("document"in self?document.currentScript.src:"")||location.href;if(i[a])return;let n={};const l=s=>e(s,a),c={module:{uri:a},exports:n,require:l};i[a]=Promise.all(t.map((s=>c[s]||l(s)))).then((s=>(r(...s),n)))}}define(["./workbox-2d118ab0"],(function(s){"use strict";s.setCacheNameDetails({prefix:"fittrackee_client"}),self.addEventListener("message",(s=>{s.data&&"SKIP_WAITING"===s.data.type&&self.skipWaiting()})),s.precacheAndRoute([{url:"/img/bike.svg",revision:"ab4faed007625b209af72b9b8dce84db"},{url:"/img/weather/breeze.svg",revision:"428c6ccb838f8e91dc4826c5b650a98b"},{url:"/img/weather/clear-day.svg",revision:"f3e8628de2e5089f508f03944f8be951"},{url:"/img/weather/clear-night.svg",revision:"6a0d6579a93e89fdf1a2a95b398e0935"},{url:"/img/weather/cloudy.svg",revision:"c52fe62c9d9fea2cdf5ae2813b3df366"},{url:"/img/weather/fog.svg",revision:"9f4d74289594eb83f9c175d13167a0eb"},{url:"/img/weather/partly-cloudy-day.svg",revision:"f730c2e4f4c014e8b49c9d4a0a141b90"},{url:"/img/weather/partly-cloudy-night.svg",revision:"0d9270901c4dffbc05f3998d835171c8"},{url:"/img/weather/pour-rain.svg",revision:"91eb3159ba8781d258d8c384a8ef987c"},{url:"/img/weather/rain.svg",revision:"c52ca88ce0ddf4de0fc29167e578b2be"},{url:"/img/weather/sleet.svg",revision:"97d61d89332f912c1ec27bcbe077b7bd"},{url:"/img/weather/snow.svg",revision:"9e88c89c0d6d14174e9665e98932dd80"},{url:"/img/weather/temperature.svg",revision:"d42b62d0b57d5d326506277d87b70435"},{url:"/img/weather/wind.svg",revision:"d75fbe559220d7b2b9577a98a91f38d0"},{url:"/img/workouts/finish.svg",revision:"375196b7ade7c07c3b64ac4cb8b850a8"},{url:"/img/workouts/mountains.svg",revision:"0b94f1d4a050a86ca5ac89ab3ed60f9c"},{url:"/img/workouts/start.svg",revision:"97f6a197b6c2869e0cb2ff0e7697af86"},{url:"/index.html",revision:"8078b0f1b8c4f02f5c19a32964823e66"},{url:"/manifest.json",revision:"c61028ca6e9f81bf958e6b66238e2d7c"},{url:"/robots.txt",revision:"b6216d61c03e6ce0c9aea6ca7808f7ca"},{url:"/static/css/admin.73df498d.css",revision:null},{url:"/static/css/app.e8b7692c.css",revision:null},{url:"/static/css/fork-awesome.min.css",revision:"82c1118c918377daaa71a320ab8eea42"},{url:"/static/css/leaflet.css",revision:"5c761a156eea82263d8bacf1718fe04d"},{url:"/static/css/profile.203e78e2.css",revision:null},{url:"/static/css/reset.e2527ec6.css",revision:null},{url:"/static/css/statistics.91fe968e.css",revision:null},{url:"/static/css/workouts.3ddc8329.css",revision:null},{url:"/static/fonts/forkawesome-webfont.eot",revision:"e719f9244c69e28e7d00e725ca1e280e"},{url:"/static/fonts/forkawesome-webfont.svg",revision:"d58987a18774d859d98af95281c1dee5"},{url:"/static/fonts/forkawesome-webfont.ttf",revision:"fe45770c6c277da3921355d971045ea5"},{url:"/static/fonts/forkawesome-webfont.woff",revision:"92cd4d8328b2ae614386a01ff935a9f3"},{url:"/static/fonts/forkawesome-webfont.woff2",revision:"12ee76445f0383c58529169d700b6650"},{url:"/static/fonts/pt-sans-v9-latin-700.01a58da9.eot",revision:null},{url:"/static/fonts/pt-sans-v9-latin-700.51b1613b.woff2",revision:null},{url:"/static/fonts/pt-sans-v9-latin-700.5ff2a2d7.woff",revision:null},{url:"/static/fonts/pt-sans-v9-latin-700.6514157e.ttf",revision:null},{url:"/static/fonts/pt-sans-v9-latin-italic.10011d51.woff2",revision:null},{url:"/static/fonts/pt-sans-v9-latin-italic.6206408d.ttf",revision:null},{url:"/static/fonts/pt-sans-v9-latin-italic.8293436e.eot",revision:null},{url:"/static/fonts/pt-sans-v9-latin-italic.fe36f54f.woff",revision:null},{url:"/static/fonts/pt-sans-v9-latin-regular.b5b74f16.woff",revision:null},{url:"/static/fonts/pt-sans-v9-latin-regular.c43bc0a2.ttf",revision:null},{url:"/static/fonts/pt-sans-v9-latin-regular.c5a514ae.eot",revision:null},{url:"/static/fonts/pt-sans-v9-latin-regular.e7867499.woff2",revision:null},{url:"/static/img/map.5b26d82b.svg",revision:null},{url:"/static/img/pt-sans-v9-latin-700.b8a7047e.svg",revision:null},{url:"/static/img/pt-sans-v9-latin-italic.0b285c83.svg",revision:null},{url:"/static/img/pt-sans-v9-latin-regular.59a385b4.svg",revision:null},{url:"/static/js/243.697a3d7b.js",revision:null},{url:"/static/js/431.54edda90.js",revision:null},{url:"/static/js/633.c743cd9a.js",revision:null},{url:"/static/js/858.4449709a.js",revision:null},{url:"/static/js/93.0cd1858e.js",revision:null},{url:"/static/js/admin.43bba6c9.js",revision:null},{url:"/static/js/app.a9b9439a.js",revision:null},{url:"/static/js/chunk-vendors.e335684a.js",revision:null},{url:"/static/js/password.b05df85b.js",revision:null},{url:"/static/js/profile.6625cfc7.js",revision:null},{url:"/static/js/reset.80b9da45.js",revision:null},{url:"/static/js/statistics.ea7ff674.js",revision:null},{url:"/static/js/workouts.a9d2f467.js",revision:null}],{})})); +if(!self.define){let s,i={};const e=(e,t)=>(e=new URL(e+".js",t).href,i[e]||new Promise((i=>{if("document"in self){const s=document.createElement("script");s.src=e,s.onload=i,document.head.appendChild(s)}else s=e,importScripts(e),i()})).then((()=>{let s=i[e];if(!s)throw new Error(`Module ${e} didn’t register its module`);return s})));self.define=(t,r)=>{const a=s||("document"in self?document.currentScript.src:"")||location.href;if(i[a])return;let n={};const l=s=>e(s,a),c={module:{uri:a},exports:n,require:l};i[a]=Promise.all(t.map((s=>c[s]||l(s)))).then((s=>(r(...s),n)))}}define(["./workbox-2d118ab0"],(function(s){"use strict";s.setCacheNameDetails({prefix:"fittrackee_client"}),self.addEventListener("message",(s=>{s.data&&"SKIP_WAITING"===s.data.type&&self.skipWaiting()})),s.precacheAndRoute([{url:"/img/bike.svg",revision:"ab4faed007625b209af72b9b8dce84db"},{url:"/img/weather/breeze.svg",revision:"428c6ccb838f8e91dc4826c5b650a98b"},{url:"/img/weather/clear-day.svg",revision:"f3e8628de2e5089f508f03944f8be951"},{url:"/img/weather/clear-night.svg",revision:"6a0d6579a93e89fdf1a2a95b398e0935"},{url:"/img/weather/cloudy.svg",revision:"c52fe62c9d9fea2cdf5ae2813b3df366"},{url:"/img/weather/fog.svg",revision:"9f4d74289594eb83f9c175d13167a0eb"},{url:"/img/weather/partly-cloudy-day.svg",revision:"f730c2e4f4c014e8b49c9d4a0a141b90"},{url:"/img/weather/partly-cloudy-night.svg",revision:"0d9270901c4dffbc05f3998d835171c8"},{url:"/img/weather/pour-rain.svg",revision:"91eb3159ba8781d258d8c384a8ef987c"},{url:"/img/weather/rain.svg",revision:"c52ca88ce0ddf4de0fc29167e578b2be"},{url:"/img/weather/sleet.svg",revision:"97d61d89332f912c1ec27bcbe077b7bd"},{url:"/img/weather/snow.svg",revision:"9e88c89c0d6d14174e9665e98932dd80"},{url:"/img/weather/temperature.svg",revision:"d42b62d0b57d5d326506277d87b70435"},{url:"/img/weather/wind.svg",revision:"d75fbe559220d7b2b9577a98a91f38d0"},{url:"/img/workouts/finish.svg",revision:"375196b7ade7c07c3b64ac4cb8b850a8"},{url:"/img/workouts/mountains.svg",revision:"0b94f1d4a050a86ca5ac89ab3ed60f9c"},{url:"/img/workouts/start.svg",revision:"97f6a197b6c2869e0cb2ff0e7697af86"},{url:"/index.html",revision:"894d150a285387648e8dde8fd24d3b22"},{url:"/manifest.json",revision:"c61028ca6e9f81bf958e6b66238e2d7c"},{url:"/robots.txt",revision:"b6216d61c03e6ce0c9aea6ca7808f7ca"},{url:"/static/css/admin.73df498d.css",revision:null},{url:"/static/css/app.e8b7692c.css",revision:null},{url:"/static/css/fork-awesome.min.css",revision:"82c1118c918377daaa71a320ab8eea42"},{url:"/static/css/leaflet.css",revision:"5c761a156eea82263d8bacf1718fe04d"},{url:"/static/css/profile.203e78e2.css",revision:null},{url:"/static/css/reset.e2527ec6.css",revision:null},{url:"/static/css/statistics.91fe968e.css",revision:null},{url:"/static/css/workouts.3ddc8329.css",revision:null},{url:"/static/fonts/forkawesome-webfont.eot",revision:"e719f9244c69e28e7d00e725ca1e280e"},{url:"/static/fonts/forkawesome-webfont.svg",revision:"d58987a18774d859d98af95281c1dee5"},{url:"/static/fonts/forkawesome-webfont.ttf",revision:"fe45770c6c277da3921355d971045ea5"},{url:"/static/fonts/forkawesome-webfont.woff",revision:"92cd4d8328b2ae614386a01ff935a9f3"},{url:"/static/fonts/forkawesome-webfont.woff2",revision:"12ee76445f0383c58529169d700b6650"},{url:"/static/fonts/pt-sans-v9-latin-700.01a58da9.eot",revision:null},{url:"/static/fonts/pt-sans-v9-latin-700.51b1613b.woff2",revision:null},{url:"/static/fonts/pt-sans-v9-latin-700.5ff2a2d7.woff",revision:null},{url:"/static/fonts/pt-sans-v9-latin-700.6514157e.ttf",revision:null},{url:"/static/fonts/pt-sans-v9-latin-italic.10011d51.woff2",revision:null},{url:"/static/fonts/pt-sans-v9-latin-italic.6206408d.ttf",revision:null},{url:"/static/fonts/pt-sans-v9-latin-italic.8293436e.eot",revision:null},{url:"/static/fonts/pt-sans-v9-latin-italic.fe36f54f.woff",revision:null},{url:"/static/fonts/pt-sans-v9-latin-regular.b5b74f16.woff",revision:null},{url:"/static/fonts/pt-sans-v9-latin-regular.c43bc0a2.ttf",revision:null},{url:"/static/fonts/pt-sans-v9-latin-regular.c5a514ae.eot",revision:null},{url:"/static/fonts/pt-sans-v9-latin-regular.e7867499.woff2",revision:null},{url:"/static/img/map.5b26d82b.svg",revision:null},{url:"/static/img/pt-sans-v9-latin-700.b8a7047e.svg",revision:null},{url:"/static/img/pt-sans-v9-latin-italic.0b285c83.svg",revision:null},{url:"/static/img/pt-sans-v9-latin-regular.59a385b4.svg",revision:null},{url:"/static/js/243.697a3d7b.js",revision:null},{url:"/static/js/431.54edda90.js",revision:null},{url:"/static/js/633.c743cd9a.js",revision:null},{url:"/static/js/858.4449709a.js",revision:null},{url:"/static/js/93.0cd1858e.js",revision:null},{url:"/static/js/admin.43bba6c9.js",revision:null},{url:"/static/js/app.8517c25d.js",revision:null},{url:"/static/js/chunk-vendors.e335684a.js",revision:null},{url:"/static/js/password.b05df85b.js",revision:null},{url:"/static/js/profile.6625cfc7.js",revision:null},{url:"/static/js/reset.80b9da45.js",revision:null},{url:"/static/js/statistics.ea7ff674.js",revision:null},{url:"/static/js/workouts.02fe5945.js",revision:null}],{})})); //# sourceMappingURL=service-worker.js.map diff --git a/fittrackee/dist/service-worker.js.map b/fittrackee/dist/service-worker.js.map index db84be67..4a075d99 100644 --- a/fittrackee/dist/service-worker.js.map +++ b/fittrackee/dist/service-worker.js.map @@ -1 +1 @@ -{"version":3,"file":"service-worker.js","sources":["../../../../../../tmp/bdcf0eb963d40d2fe04d3f40701bbc6b/service-worker.js"],"sourcesContent":["import {setCacheNameDetails as workbox_core_setCacheNameDetails} from '/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/workbox-core/setCacheNameDetails.mjs';\nimport {precacheAndRoute as workbox_precaching_precacheAndRoute} from '/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/workbox-precaching/precacheAndRoute.mjs';/**\n * Welcome to your Workbox-powered service worker!\n *\n * You'll need to register this file in your web app.\n * See https://goo.gl/nhQhGp\n *\n * The rest of the code is auto-generated. Please don't update this file\n * directly; instead, make changes to your Workbox build configuration\n * and re-run your build process.\n * See https://goo.gl/2aRDsh\n */\n\n\n\n\n\nworkbox_core_setCacheNameDetails({prefix: \"fittrackee_client\"});\n\n\nself.addEventListener('message', (event) => {\n if (event.data && event.data.type === 'SKIP_WAITING') {\n self.skipWaiting();\n }\n});\n\n\n\n\n/**\n * The precacheAndRoute() method efficiently caches and responds to\n * requests for URLs in the manifest.\n * See https://goo.gl/S9QRab\n */\nworkbox_precaching_precacheAndRoute([\n {\n \"url\": \"/img/bike.svg\",\n \"revision\": \"ab4faed007625b209af72b9b8dce84db\"\n },\n {\n \"url\": \"/img/weather/breeze.svg\",\n \"revision\": \"428c6ccb838f8e91dc4826c5b650a98b\"\n },\n {\n \"url\": \"/img/weather/clear-day.svg\",\n \"revision\": \"f3e8628de2e5089f508f03944f8be951\"\n },\n {\n \"url\": \"/img/weather/clear-night.svg\",\n \"revision\": \"6a0d6579a93e89fdf1a2a95b398e0935\"\n },\n {\n \"url\": \"/img/weather/cloudy.svg\",\n \"revision\": \"c52fe62c9d9fea2cdf5ae2813b3df366\"\n },\n {\n \"url\": \"/img/weather/fog.svg\",\n \"revision\": \"9f4d74289594eb83f9c175d13167a0eb\"\n },\n {\n \"url\": \"/img/weather/partly-cloudy-day.svg\",\n \"revision\": \"f730c2e4f4c014e8b49c9d4a0a141b90\"\n },\n {\n \"url\": \"/img/weather/partly-cloudy-night.svg\",\n \"revision\": \"0d9270901c4dffbc05f3998d835171c8\"\n },\n {\n \"url\": \"/img/weather/pour-rain.svg\",\n \"revision\": \"91eb3159ba8781d258d8c384a8ef987c\"\n },\n {\n \"url\": \"/img/weather/rain.svg\",\n \"revision\": \"c52ca88ce0ddf4de0fc29167e578b2be\"\n },\n {\n \"url\": \"/img/weather/sleet.svg\",\n \"revision\": \"97d61d89332f912c1ec27bcbe077b7bd\"\n },\n {\n \"url\": \"/img/weather/snow.svg\",\n \"revision\": \"9e88c89c0d6d14174e9665e98932dd80\"\n },\n {\n \"url\": \"/img/weather/temperature.svg\",\n \"revision\": \"d42b62d0b57d5d326506277d87b70435\"\n },\n {\n \"url\": \"/img/weather/wind.svg\",\n \"revision\": \"d75fbe559220d7b2b9577a98a91f38d0\"\n },\n {\n \"url\": \"/img/workouts/finish.svg\",\n \"revision\": \"375196b7ade7c07c3b64ac4cb8b850a8\"\n },\n {\n \"url\": \"/img/workouts/mountains.svg\",\n \"revision\": \"0b94f1d4a050a86ca5ac89ab3ed60f9c\"\n },\n {\n \"url\": \"/img/workouts/start.svg\",\n \"revision\": \"97f6a197b6c2869e0cb2ff0e7697af86\"\n },\n {\n \"url\": \"/index.html\",\n \"revision\": \"8078b0f1b8c4f02f5c19a32964823e66\"\n },\n {\n \"url\": \"/manifest.json\",\n \"revision\": \"c61028ca6e9f81bf958e6b66238e2d7c\"\n },\n {\n \"url\": \"/robots.txt\",\n \"revision\": \"b6216d61c03e6ce0c9aea6ca7808f7ca\"\n },\n {\n \"url\": \"/static/css/admin.73df498d.css\",\n \"revision\": null\n },\n {\n \"url\": \"/static/css/app.e8b7692c.css\",\n \"revision\": null\n },\n {\n \"url\": \"/static/css/fork-awesome.min.css\",\n \"revision\": \"82c1118c918377daaa71a320ab8eea42\"\n },\n {\n \"url\": \"/static/css/leaflet.css\",\n \"revision\": \"5c761a156eea82263d8bacf1718fe04d\"\n },\n {\n \"url\": \"/static/css/profile.203e78e2.css\",\n \"revision\": null\n },\n {\n \"url\": \"/static/css/reset.e2527ec6.css\",\n \"revision\": null\n },\n {\n \"url\": \"/static/css/statistics.91fe968e.css\",\n \"revision\": null\n },\n {\n \"url\": \"/static/css/workouts.3ddc8329.css\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/forkawesome-webfont.eot\",\n \"revision\": \"e719f9244c69e28e7d00e725ca1e280e\"\n },\n {\n \"url\": \"/static/fonts/forkawesome-webfont.svg\",\n \"revision\": \"d58987a18774d859d98af95281c1dee5\"\n },\n {\n \"url\": \"/static/fonts/forkawesome-webfont.ttf\",\n \"revision\": \"fe45770c6c277da3921355d971045ea5\"\n },\n {\n \"url\": \"/static/fonts/forkawesome-webfont.woff\",\n \"revision\": \"92cd4d8328b2ae614386a01ff935a9f3\"\n },\n {\n \"url\": \"/static/fonts/forkawesome-webfont.woff2\",\n \"revision\": \"12ee76445f0383c58529169d700b6650\"\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-700.01a58da9.eot\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-700.51b1613b.woff2\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-700.5ff2a2d7.woff\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-700.6514157e.ttf\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-italic.10011d51.woff2\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-italic.6206408d.ttf\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-italic.8293436e.eot\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-italic.fe36f54f.woff\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-regular.b5b74f16.woff\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-regular.c43bc0a2.ttf\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-regular.c5a514ae.eot\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-regular.e7867499.woff2\",\n \"revision\": null\n },\n {\n \"url\": \"/static/img/map.5b26d82b.svg\",\n \"revision\": null\n },\n {\n \"url\": \"/static/img/pt-sans-v9-latin-700.b8a7047e.svg\",\n \"revision\": null\n },\n {\n \"url\": \"/static/img/pt-sans-v9-latin-italic.0b285c83.svg\",\n \"revision\": null\n },\n {\n \"url\": \"/static/img/pt-sans-v9-latin-regular.59a385b4.svg\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/243.697a3d7b.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/431.54edda90.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/633.c743cd9a.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/858.4449709a.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/93.0cd1858e.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/admin.43bba6c9.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/app.a9b9439a.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/chunk-vendors.e335684a.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/password.b05df85b.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/profile.6625cfc7.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/reset.80b9da45.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/statistics.ea7ff674.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/workouts.a9d2f467.js\",\n \"revision\": null\n }\n], {});\n\n\n\n\n\n\n\n\n"],"names":["workbox_core_setCacheNameDetails","prefix","self","addEventListener","event","data","type","skipWaiting","workbox_precaching_precacheAndRoute","url","revision"],"mappings":"0nBAiBAA,EAAAA,oBAAiC,CAACC,OAAQ,sBAG1CC,KAAKC,iBAAiB,WAAYC,IAC5BA,EAAMC,MAA4B,iBAApBD,EAAMC,KAAKC,MAC3BJ,KAAKK,iBAYTC,EAAAA,iBAAoC,CAClC,CACEC,IAAO,gBACPC,SAAY,oCAEd,CACED,IAAO,0BACPC,SAAY,oCAEd,CACED,IAAO,6BACPC,SAAY,oCAEd,CACED,IAAO,+BACPC,SAAY,oCAEd,CACED,IAAO,0BACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,qCACPC,SAAY,oCAEd,CACED,IAAO,uCACPC,SAAY,oCAEd,CACED,IAAO,6BACPC,SAAY,oCAEd,CACED,IAAO,wBACPC,SAAY,oCAEd,CACED,IAAO,yBACPC,SAAY,oCAEd,CACED,IAAO,wBACPC,SAAY,oCAEd,CACED,IAAO,+BACPC,SAAY,oCAEd,CACED,IAAO,wBACPC,SAAY,oCAEd,CACED,IAAO,2BACPC,SAAY,oCAEd,CACED,IAAO,8BACPC,SAAY,oCAEd,CACED,IAAO,0BACPC,SAAY,oCAEd,CACED,IAAO,cACPC,SAAY,oCAEd,CACED,IAAO,iBACPC,SAAY,oCAEd,CACED,IAAO,cACPC,SAAY,oCAEd,CACED,IAAO,iCACPC,SAAY,MAEd,CACED,IAAO,+BACPC,SAAY,MAEd,CACED,IAAO,mCACPC,SAAY,oCAEd,CACED,IAAO,0BACPC,SAAY,oCAEd,CACED,IAAO,mCACPC,SAAY,MAEd,CACED,IAAO,iCACPC,SAAY,MAEd,CACED,IAAO,sCACPC,SAAY,MAEd,CACED,IAAO,oCACPC,SAAY,MAEd,CACED,IAAO,wCACPC,SAAY,oCAEd,CACED,IAAO,wCACPC,SAAY,oCAEd,CACED,IAAO,wCACPC,SAAY,oCAEd,CACED,IAAO,yCACPC,SAAY,oCAEd,CACED,IAAO,0CACPC,SAAY,oCAEd,CACED,IAAO,kDACPC,SAAY,MAEd,CACED,IAAO,oDACPC,SAAY,MAEd,CACED,IAAO,mDACPC,SAAY,MAEd,CACED,IAAO,kDACPC,SAAY,MAEd,CACED,IAAO,uDACPC,SAAY,MAEd,CACED,IAAO,qDACPC,SAAY,MAEd,CACED,IAAO,qDACPC,SAAY,MAEd,CACED,IAAO,sDACPC,SAAY,MAEd,CACED,IAAO,uDACPC,SAAY,MAEd,CACED,IAAO,sDACPC,SAAY,MAEd,CACED,IAAO,sDACPC,SAAY,MAEd,CACED,IAAO,wDACPC,SAAY,MAEd,CACED,IAAO,+BACPC,SAAY,MAEd,CACED,IAAO,gDACPC,SAAY,MAEd,CACED,IAAO,mDACPC,SAAY,MAEd,CACED,IAAO,oDACPC,SAAY,MAEd,CACED,IAAO,6BACPC,SAAY,MAEd,CACED,IAAO,6BACPC,SAAY,MAEd,CACED,IAAO,6BACPC,SAAY,MAEd,CACED,IAAO,6BACPC,SAAY,MAEd,CACED,IAAO,4BACPC,SAAY,MAEd,CACED,IAAO,+BACPC,SAAY,MAEd,CACED,IAAO,6BACPC,SAAY,MAEd,CACED,IAAO,uCACPC,SAAY,MAEd,CACED,IAAO,kCACPC,SAAY,MAEd,CACED,IAAO,iCACPC,SAAY,MAEd,CACED,IAAO,+BACPC,SAAY,MAEd,CACED,IAAO,oCACPC,SAAY,MAEd,CACED,IAAO,kCACPC,SAAY,OAEb"} \ No newline at end of file +{"version":3,"file":"service-worker.js","sources":["../../../../../../tmp/267273dbee060894dfeb16b5c4c1bacc/service-worker.js"],"sourcesContent":["import {setCacheNameDetails as workbox_core_setCacheNameDetails} from '/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/workbox-core/setCacheNameDetails.mjs';\nimport {precacheAndRoute as workbox_precaching_precacheAndRoute} from '/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/workbox-precaching/precacheAndRoute.mjs';/**\n * Welcome to your Workbox-powered service worker!\n *\n * You'll need to register this file in your web app.\n * See https://goo.gl/nhQhGp\n *\n * The rest of the code is auto-generated. Please don't update this file\n * directly; instead, make changes to your Workbox build configuration\n * and re-run your build process.\n * See https://goo.gl/2aRDsh\n */\n\n\n\n\n\nworkbox_core_setCacheNameDetails({prefix: \"fittrackee_client\"});\n\n\nself.addEventListener('message', (event) => {\n if (event.data && event.data.type === 'SKIP_WAITING') {\n self.skipWaiting();\n }\n});\n\n\n\n\n/**\n * The precacheAndRoute() method efficiently caches and responds to\n * requests for URLs in the manifest.\n * See https://goo.gl/S9QRab\n */\nworkbox_precaching_precacheAndRoute([\n {\n \"url\": \"/img/bike.svg\",\n \"revision\": \"ab4faed007625b209af72b9b8dce84db\"\n },\n {\n \"url\": \"/img/weather/breeze.svg\",\n \"revision\": \"428c6ccb838f8e91dc4826c5b650a98b\"\n },\n {\n \"url\": \"/img/weather/clear-day.svg\",\n \"revision\": \"f3e8628de2e5089f508f03944f8be951\"\n },\n {\n \"url\": \"/img/weather/clear-night.svg\",\n \"revision\": \"6a0d6579a93e89fdf1a2a95b398e0935\"\n },\n {\n \"url\": \"/img/weather/cloudy.svg\",\n \"revision\": \"c52fe62c9d9fea2cdf5ae2813b3df366\"\n },\n {\n \"url\": \"/img/weather/fog.svg\",\n \"revision\": \"9f4d74289594eb83f9c175d13167a0eb\"\n },\n {\n \"url\": \"/img/weather/partly-cloudy-day.svg\",\n \"revision\": \"f730c2e4f4c014e8b49c9d4a0a141b90\"\n },\n {\n \"url\": \"/img/weather/partly-cloudy-night.svg\",\n \"revision\": \"0d9270901c4dffbc05f3998d835171c8\"\n },\n {\n \"url\": \"/img/weather/pour-rain.svg\",\n \"revision\": \"91eb3159ba8781d258d8c384a8ef987c\"\n },\n {\n \"url\": \"/img/weather/rain.svg\",\n \"revision\": \"c52ca88ce0ddf4de0fc29167e578b2be\"\n },\n {\n \"url\": \"/img/weather/sleet.svg\",\n \"revision\": \"97d61d89332f912c1ec27bcbe077b7bd\"\n },\n {\n \"url\": \"/img/weather/snow.svg\",\n \"revision\": \"9e88c89c0d6d14174e9665e98932dd80\"\n },\n {\n \"url\": \"/img/weather/temperature.svg\",\n \"revision\": \"d42b62d0b57d5d326506277d87b70435\"\n },\n {\n \"url\": \"/img/weather/wind.svg\",\n \"revision\": \"d75fbe559220d7b2b9577a98a91f38d0\"\n },\n {\n \"url\": \"/img/workouts/finish.svg\",\n \"revision\": \"375196b7ade7c07c3b64ac4cb8b850a8\"\n },\n {\n \"url\": \"/img/workouts/mountains.svg\",\n \"revision\": \"0b94f1d4a050a86ca5ac89ab3ed60f9c\"\n },\n {\n \"url\": \"/img/workouts/start.svg\",\n \"revision\": \"97f6a197b6c2869e0cb2ff0e7697af86\"\n },\n {\n \"url\": \"/index.html\",\n \"revision\": \"894d150a285387648e8dde8fd24d3b22\"\n },\n {\n \"url\": \"/manifest.json\",\n \"revision\": \"c61028ca6e9f81bf958e6b66238e2d7c\"\n },\n {\n \"url\": \"/robots.txt\",\n \"revision\": \"b6216d61c03e6ce0c9aea6ca7808f7ca\"\n },\n {\n \"url\": \"/static/css/admin.73df498d.css\",\n \"revision\": null\n },\n {\n \"url\": \"/static/css/app.e8b7692c.css\",\n \"revision\": null\n },\n {\n \"url\": \"/static/css/fork-awesome.min.css\",\n \"revision\": \"82c1118c918377daaa71a320ab8eea42\"\n },\n {\n \"url\": \"/static/css/leaflet.css\",\n \"revision\": \"5c761a156eea82263d8bacf1718fe04d\"\n },\n {\n \"url\": \"/static/css/profile.203e78e2.css\",\n \"revision\": null\n },\n {\n \"url\": \"/static/css/reset.e2527ec6.css\",\n \"revision\": null\n },\n {\n \"url\": \"/static/css/statistics.91fe968e.css\",\n \"revision\": null\n },\n {\n \"url\": \"/static/css/workouts.3ddc8329.css\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/forkawesome-webfont.eot\",\n \"revision\": \"e719f9244c69e28e7d00e725ca1e280e\"\n },\n {\n \"url\": \"/static/fonts/forkawesome-webfont.svg\",\n \"revision\": \"d58987a18774d859d98af95281c1dee5\"\n },\n {\n \"url\": \"/static/fonts/forkawesome-webfont.ttf\",\n \"revision\": \"fe45770c6c277da3921355d971045ea5\"\n },\n {\n \"url\": \"/static/fonts/forkawesome-webfont.woff\",\n \"revision\": \"92cd4d8328b2ae614386a01ff935a9f3\"\n },\n {\n \"url\": \"/static/fonts/forkawesome-webfont.woff2\",\n \"revision\": \"12ee76445f0383c58529169d700b6650\"\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-700.01a58da9.eot\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-700.51b1613b.woff2\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-700.5ff2a2d7.woff\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-700.6514157e.ttf\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-italic.10011d51.woff2\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-italic.6206408d.ttf\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-italic.8293436e.eot\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-italic.fe36f54f.woff\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-regular.b5b74f16.woff\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-regular.c43bc0a2.ttf\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-regular.c5a514ae.eot\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-regular.e7867499.woff2\",\n \"revision\": null\n },\n {\n \"url\": \"/static/img/map.5b26d82b.svg\",\n \"revision\": null\n },\n {\n \"url\": \"/static/img/pt-sans-v9-latin-700.b8a7047e.svg\",\n \"revision\": null\n },\n {\n \"url\": \"/static/img/pt-sans-v9-latin-italic.0b285c83.svg\",\n \"revision\": null\n },\n {\n \"url\": \"/static/img/pt-sans-v9-latin-regular.59a385b4.svg\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/243.697a3d7b.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/431.54edda90.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/633.c743cd9a.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/858.4449709a.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/93.0cd1858e.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/admin.43bba6c9.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/app.8517c25d.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/chunk-vendors.e335684a.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/password.b05df85b.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/profile.6625cfc7.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/reset.80b9da45.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/statistics.ea7ff674.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/workouts.02fe5945.js\",\n \"revision\": null\n }\n], {});\n\n\n\n\n\n\n\n\n"],"names":["workbox_core_setCacheNameDetails","prefix","self","addEventListener","event","data","type","skipWaiting","workbox_precaching_precacheAndRoute","url","revision"],"mappings":"0nBAiBAA,EAAAA,oBAAiC,CAACC,OAAQ,sBAG1CC,KAAKC,iBAAiB,WAAYC,IAC5BA,EAAMC,MAA4B,iBAApBD,EAAMC,KAAKC,MAC3BJ,KAAKK,iBAYTC,EAAAA,iBAAoC,CAClC,CACEC,IAAO,gBACPC,SAAY,oCAEd,CACED,IAAO,0BACPC,SAAY,oCAEd,CACED,IAAO,6BACPC,SAAY,oCAEd,CACED,IAAO,+BACPC,SAAY,oCAEd,CACED,IAAO,0BACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,qCACPC,SAAY,oCAEd,CACED,IAAO,uCACPC,SAAY,oCAEd,CACED,IAAO,6BACPC,SAAY,oCAEd,CACED,IAAO,wBACPC,SAAY,oCAEd,CACED,IAAO,yBACPC,SAAY,oCAEd,CACED,IAAO,wBACPC,SAAY,oCAEd,CACED,IAAO,+BACPC,SAAY,oCAEd,CACED,IAAO,wBACPC,SAAY,oCAEd,CACED,IAAO,2BACPC,SAAY,oCAEd,CACED,IAAO,8BACPC,SAAY,oCAEd,CACED,IAAO,0BACPC,SAAY,oCAEd,CACED,IAAO,cACPC,SAAY,oCAEd,CACED,IAAO,iBACPC,SAAY,oCAEd,CACED,IAAO,cACPC,SAAY,oCAEd,CACED,IAAO,iCACPC,SAAY,MAEd,CACED,IAAO,+BACPC,SAAY,MAEd,CACED,IAAO,mCACPC,SAAY,oCAEd,CACED,IAAO,0BACPC,SAAY,oCAEd,CACED,IAAO,mCACPC,SAAY,MAEd,CACED,IAAO,iCACPC,SAAY,MAEd,CACED,IAAO,sCACPC,SAAY,MAEd,CACED,IAAO,oCACPC,SAAY,MAEd,CACED,IAAO,wCACPC,SAAY,oCAEd,CACED,IAAO,wCACPC,SAAY,oCAEd,CACED,IAAO,wCACPC,SAAY,oCAEd,CACED,IAAO,yCACPC,SAAY,oCAEd,CACED,IAAO,0CACPC,SAAY,oCAEd,CACED,IAAO,kDACPC,SAAY,MAEd,CACED,IAAO,oDACPC,SAAY,MAEd,CACED,IAAO,mDACPC,SAAY,MAEd,CACED,IAAO,kDACPC,SAAY,MAEd,CACED,IAAO,uDACPC,SAAY,MAEd,CACED,IAAO,qDACPC,SAAY,MAEd,CACED,IAAO,qDACPC,SAAY,MAEd,CACED,IAAO,sDACPC,SAAY,MAEd,CACED,IAAO,uDACPC,SAAY,MAEd,CACED,IAAO,sDACPC,SAAY,MAEd,CACED,IAAO,sDACPC,SAAY,MAEd,CACED,IAAO,wDACPC,SAAY,MAEd,CACED,IAAO,+BACPC,SAAY,MAEd,CACED,IAAO,gDACPC,SAAY,MAEd,CACED,IAAO,mDACPC,SAAY,MAEd,CACED,IAAO,oDACPC,SAAY,MAEd,CACED,IAAO,6BACPC,SAAY,MAEd,CACED,IAAO,6BACPC,SAAY,MAEd,CACED,IAAO,6BACPC,SAAY,MAEd,CACED,IAAO,6BACPC,SAAY,MAEd,CACED,IAAO,4BACPC,SAAY,MAEd,CACED,IAAO,+BACPC,SAAY,MAEd,CACED,IAAO,6BACPC,SAAY,MAEd,CACED,IAAO,uCACPC,SAAY,MAEd,CACED,IAAO,kCACPC,SAAY,MAEd,CACED,IAAO,iCACPC,SAAY,MAEd,CACED,IAAO,+BACPC,SAAY,MAEd,CACED,IAAO,oCACPC,SAAY,MAEd,CACED,IAAO,kCACPC,SAAY,OAEb"} \ No newline at end of file diff --git a/fittrackee/dist/static/js/app.a9b9439a.js b/fittrackee/dist/static/js/app.8517c25d.js similarity index 99% rename from fittrackee/dist/static/js/app.a9b9439a.js rename to fittrackee/dist/static/js/app.8517c25d.js index ab64ef6f..f8dcfac4 100644 --- a/fittrackee/dist/static/js/app.a9b9439a.js +++ b/fittrackee/dist/static/js/app.8517c25d.js @@ -1,2 +1,2 @@ -(function(){var e={5167:function(e,t,n){"use strict";var a=n(9669),r=n.n(a),s=n(12),o=n(8602),i=n(2024);const l=r().create({baseURL:(0,i.k)()});l.interceptors.request.use((e=>{const t=s.Z.getters[o.YN.GETTERS.AUTH_TOKEN];if(t){const n=`Bearer ${t}`;e.headers&&e.headers.Authorization!==n&&(e.headers.Authorization=`Bearer ${t}`)}return e}),(e=>Promise.reject(e))),t["Z"]=l},2540:function(e,t,n){"use strict";var a=n(3324);function r(){const e=n(4612),t={};return e.keys().forEach((n=>{const a=n.match(/([A-Za-z0-9-_]+)\./i);if(a&&a.length>1){const r=a[1];t[r]=e(n).default}})),t}t["Z"]=(0,a.o)({legacy:!1,locale:"en",fallbackLocale:"en",globalInjection:!0,messages:r()})},9350:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return _}});var a={CONTACT_ADMIN:e=>{const{normalize:t}=e;return t(["Contact the administrator"])},FITTRACKEE_DESCRIPTION:e=>{const{normalize:t}=e;return t(["FitTrackee is a self-hosted outdoor activity tracker."])},FITTRACKEE_LICENSE:e=>{const{normalize:t,interpolate:n,list:a}=e;return t(["under ",n(a(0))," license "])},SOURCE_CODE:e=>{const{normalize:t}=e;return t(["Source code"])}},r={ACTION:e=>{const{normalize:t}=e;return t(["Action"])},ACTIVATE_USER_ACCOUNT:e=>{const{normalize:t}=e;return t(["Activate account"])},ACTIVE:e=>{const{normalize:t}=e;return t(["Active"])},ADMIN_RIGHTS_DELETE_USER_ACCOUNT:e=>{const{normalize:t}=e;return t(["Add/remove admin rights, delete user account."])},ADMIN:e=>{const{normalize:t}=e;return t(["Admin"])},ADMINISTRATION:e=>{const{normalize:t}=e;return t(["Administration"])},APPLICATION:e=>{const{normalize:t}=e;return t(["Application"])},APP_CONFIG:{ADMIN_CONTACT:e=>{const{normalize:t}=e;return t(["Administrator email for contact"])},MAX_USERS_LABEL:e=>{const{normalize:t}=e;return t(["Max. number of active users"])},MAX_USERS_HELP:e=>{const{normalize:t}=e;return t(["If 0, no limitation on registration."])},MAX_FILES_IN_ZIP_LABEL:e=>{const{normalize:t}=e;return t(["Max. files of zip archive"])},NO_CONTACT_EMAIL:e=>{const{normalize:t}=e;return t(["no contact email"])},SINGLE_UPLOAD_MAX_SIZE_LABEL:e=>{const{normalize:t}=e;return t(["Max. size of uploaded files (in Mb)"])},TITLE:e=>{const{normalize:t}=e;return t(["Application configuration"])},ZIP_UPLOAD_MAX_SIZE_LABEL:e=>{const{normalize:t}=e;return t(["Max. size of zip archive (in Mb)"])}},BACK_TO_ADMIN:e=>{const{normalize:t}=e;return t(["Back to admin"])},CONFIRM_USER_ACCOUNT_DELETION:e=>{const{normalize:t,interpolate:n,list:a}=e;return t(["Are you sure you want to delete ",n(a(0))," account? All data will be deleted, this cannot be undone."])},CONFIRM_USER_PASSWORD_RESET:e=>{const{normalize:t,interpolate:n,list:a}=e;return t(["Are you sure you want to reset ",n(a(0))," password?"])},CURRENT_EMAIL:e=>{const{normalize:t}=e;return t(["Current email"])},DELETE_USER:e=>{const{normalize:t}=e;return t(["Delete user"])},EMAIL_SENDING_DISABLED:e=>{const{normalize:t}=e;return t(["Email sending is disabled."])},ENABLE_DISABLE_SPORTS:e=>{const{normalize:t}=e;return t(["Enable/disable sports."])},NEW_EMAIL:e=>{const{normalize:t}=e;return t(["New email"])},PASSWORD_RESET_SUCCESSFUL:e=>{const{normalize:t}=e;return t(["The password has been reset."])},REGISTRATION_DISABLED:e=>{const{normalize:t}=e;return t(["Registration is currently disabled."])},REGISTRATION_ENABLED:e=>{const{normalize:t}=e;return t(["Registration is currently enabled."])},RESET_USER_PASSWORD:e=>{const{normalize:t}=e;return t(["Reset password"])},SPORTS:{TABLE:{ACTIVE:e=>{const{normalize:t}=e;return t(["Active"])},HAS_WORKOUTS:e=>{const{normalize:t}=e;return t(["workouts exist"])},IMAGE:e=>{const{normalize:t}=e;return t(["Image"])},LABEL:e=>{const{normalize:t}=e;return t(["Label"])}},TITLE:e=>{const{normalize:t}=e;return t(["Sports administration"])}},UPDATE_APPLICATION_DESCRIPTION:e=>{const{normalize:t}=e;return t(["Update application configuration (maximum number of registered users, maximum files size)."])},UPDATE_USER_EMAIL:e=>{const{normalize:t}=e;return t(["Update email"])},USER:e=>{const{normalize:t,plural:n}=e;return n([t(["user"]),t(["users"])])},USER_EMAIL_UPDATE_SUCCESSFUL:e=>{const{normalize:t}=e;return t(["The email address has been updated."])},USERS:{TABLE:{ADD_ADMIN_RIGHTS:e=>{const{normalize:t}=e;return t(["Add admin rights"])},REMOVE_ADMIN_RIGHTS:e=>{const{normalize:t}=e;return t(["Remove admin rights"])}},SELECTS:{ORDER_BY:{ADMIN:e=>{const{normalize:t}=e;return t(["admin status"])},CREATED_AT:e=>{const{normalize:t}=e;return t(["registration date"])},IS_ACTIVE:e=>{const{normalize:t}=e;return t(["account status"])},USERNAME:e=>{const{normalize:t}=e;return t(["username"])},WORKOUTS_COUNT:e=>{const{normalize:t}=e;return t(["workout count"])}}}}},s={ERROR:{UNKNOWN:e=>{const{normalize:t}=e;return t(["Error. Please try again or contact the administrator."])},"email: valid email must be provided":e=>{const{normalize:t}=e;return t(["Email: valid email must be provided."])},"error on getting configuration":e=>{const{normalize:t}=e;return t(["Error on getting configuration."])},"error when updating configuration":e=>{const{normalize:t}=e;return t(["Error when updating configuration"])},"error, please try again or contact the administrator":e=>{const{normalize:t}=e;return t(["Error, please try again or contact the administrator."])},"error, registration is disabled":e=>{const{normalize:t}=e;return t(["Error, registration is disabled."])},"file extension not allowed":e=>{const{normalize:t}=e;return t(["File extension not allowed."])},"file size is greater than the allowed size":e=>{const{normalize:t}=e;return t(["File size is greater than the allowed size."])},"invalid credentials":e=>{const{normalize:t}=e;return t(["Invalid credentials."])},"invalid payload":e=>{const{normalize:t}=e;return t(["Provided data are invalid."])},"invalid token, please log in again":e=>{const{normalize:t}=e;return t(["Invalid token, please log in again."])},"invalid token, please request a new token":e=>{const{normalize:t}=e;return t(["Invalid token, please log in again."])},"Network Error":e=>{const{normalize:t}=e;return t(["Network Error."])},"new email must be different than curent email":e=>{const{normalize:t}=e;return t(["The new email must be different than curent email"])},"no file part":e=>{const{normalize:t}=e;return t(["No file provided."])},"no selected file":e=>{const{normalize:t}=e;return t(["No selected file."])},"password: password and password confirmation do not match":e=>{const{normalize:t}=e;return t(["Password: password and password confirmation don't match."])},"provide a valid auth token":e=>{const{normalize:t}=e;return t(["Provide a valid auth token."])},"sorry, that username is already taken":e=>{const{normalize:t}=e;return t(["Sorry, that username is already taken."])},"sport does not exist":e=>{const{normalize:t}=e;return t(["Sport does not exist."])},"signature expired, please log in again":e=>{const{normalize:t}=e;return t(["Signature expired. Please log in again."])},"successfully registered":e=>{const{normalize:t}=e;return t(["Successfully registered."])},"user does not exist":e=>{const{normalize:t}=e;return t(["User does not exist."])},"valid email must be provided for admin contact":e=>{const{normalize:t}=e;return t(["A valid email must be provided for administrator contact"])},"you can not delete your account, no other user has admin rights":e=>{const{normalize:t}=e;return t(["You can not delete your account, no other user has admin rights."])},"you do not have permissions":e=>{const{normalize:t}=e;return t(["You do not have permissions."])}},PAGINATION:{PREVIOUS:e=>{const{normalize:t}=e;return t(["previous"])},NEXT:e=>{const{normalize:t}=e;return t(["next"])}}},o={"ACCOUNT-CONFIRMATION-RESEND":e=>{const{normalize:t}=e;return t(["Resend confirmation email"])},BACK:e=>{const{normalize:t}=e;return t(["Back"])},CANCEL:e=>{const{normalize:t}=e;return t(["Cancel"])},CLEAR_FILTER:e=>{const{normalize:t}=e;return t(["Clear filters"])},DELETE_MY_ACCOUNT:e=>{const{normalize:t}=e;return t(["Delete my account"])},DISABLE:e=>{const{normalize:t}=e;return t(["Disable"])},EDIT:e=>{const{normalize:t}=e;return t(["Edit"])},ENABLE:e=>{const{normalize:t}=e;return t(["Enable"])},FILTER:e=>{const{normalize:t}=e;return t(["Filter"])},LOGIN:e=>{const{normalize:t}=e;return t(["Log in"])},NO:e=>{const{normalize:t}=e;return t(["No"])},REGISTER:e=>{const{normalize:t}=e;return t(["Register"])},RESET:e=>{const{normalize:t}=e;return t(["Reset"])},SUBMIT:e=>{const{normalize:t}=e;return t(["Submit"])},YES:e=>{const{normalize:t}=e;return t(["Yes"])}},i={ABOUT:e=>{const{normalize:t}=e;return t(["about"])},CONFIRMATION:e=>{const{normalize:t}=e;return t(["Confirmation"])},CONTACT:e=>{const{normalize:t}=e;return t(["contact"])},DAY:e=>{const{normalize:t,plural:n}=e;return n([t(["day"]),t(["days"])])},DOCUMENTATION:e=>{const{normalize:t}=e;return t(["documentation"])},HOME:e=>{const{normalize:t}=e;return t(["Home"])},HERE:e=>{const{normalize:t}=e;return t(["here"])},SELECTS:{ORDER_BY:{LABEL:e=>{const{normalize:t}=e;return t(["order by"])}},ORDER:{LABEL:e=>{const{normalize:t}=e;return t(["sort"])},ASC:e=>{const{normalize:t}=e;return t(["ascending"])},DESC:e=>{const{normalize:t}=e;return t(["descending"])}},PER_PAGE:{LABEL:e=>{const{normalize:t}=e;return t(["par page"])}}},TOTAL:e=>{const{normalize:t}=e;return t(["Total"])}},l={DASHBOARD:e=>{const{normalize:t}=e;return t(["Dashboard"])},THIS_MONTH:e=>{const{normalize:t}=e;return t(["This month"])}},c={UNKNOWN:e=>{const{normalize:t}=e;return t(["Error. Please try again or contact the administrator."])},APP_ERROR:e=>{const{normalize:t}=e;return t(["The application seems to have encountered some issues.
Please try again later or contact the administrator."])},NOT_FOUND:{PAGE:e=>{const{normalize:t}=e;return t(["Page not found"])},WORKOUT:e=>{const{normalize:t}=e;return t(["Workout not found"])}},SOMETHING_WRONG:e=>{const{normalize:t}=e;return t(["Something went wrong"])}},u={"Cycling (Sport)":{LABEL:e=>{const{normalize:t}=e;return t(["Cycling (Sport)"])}},"Cycling (Transport)":{LABEL:e=>{const{normalize:t}=e;return t(["Cycling (Transport)"])}},Hiking:{LABEL:e=>{const{normalize:t}=e;return t(["Hiking"])}},"Mountain Biking":{LABEL:e=>{const{normalize:t}=e;return t(["Mountain Biking"])}},"Mountain Biking (Electric)":{LABEL:e=>{const{normalize:t}=e;return t(["Mountain Biking (Electric)"])}},Rowing:{LABEL:e=>{const{normalize:t}=e;return t(["Rowing"])}},Running:{LABEL:e=>{const{normalize:t}=e;return t(["Running"])}},"Skiing (Alpine)":{LABEL:e=>{const{normalize:t}=e;return t(["Skiing (Alpine)"])}},"Skiing (Cross Country)":{LABEL:e=>{const{normalize:t}=e;return t(["Skiing (Cross Country)"])}},Snowshoes:{LABEL:e=>{const{normalize:t}=e;return t(["Snowshoes"])}},Trail:{LABEL:e=>{const{normalize:t}=e;return t(["Trail"])}},Walking:{LABEL:e=>{const{normalize:t}=e;return t(["Walking"])}}},d={STATISTICS:e=>{const{normalize:t}=e;return t(["Statistics"])},TIME_FRAMES:{week:e=>{const{normalize:t}=e;return t(["week"])},month:e=>{const{normalize:t}=e;return t(["month"])},year:e=>{const{normalize:t}=e;return t(["year"])}}},m={ACCOUNT_CONFIRMATION_NOT_RECEIVED:e=>{const{normalize:t}=e;return t(["Didn't received instructions?"])},ACCOUNT_CONFIRMATION_SENT:e=>{const{normalize:t}=e;return t(["Check your email. A new confirmation email has been sent to the address provided."])},ADMIN:e=>{const{normalize:t}=e;return t(["Admin"])},ALREADY_HAVE_ACCOUNT:e=>{const{normalize:t}=e;return t(["Already have an account?"])},CONFIRM_ACCOUNT_DELETION:e=>{const{normalize:t}=e;return t(["Are you sure you want to delete your account? All data will be deleted, this cannot be undone"])},CURRENT_PASSWORD:e=>{const{normalize:t}=e;return t(["Current password"])},EMAIL:e=>{const{normalize:t}=e;return t(["Email"])},EMAIL_INFO:e=>{const{normalize:t}=e;return t(["Enter a valid email address."])},ENTER_PASSWORD:e=>{const{normalize:t}=e;return t(["Enter a password"])},FILTER_ON_USERNAME:e=>{const{normalize:t}=e;return t(["Filter on username"])},HIDE_PASSWORD:e=>{const{normalize:t}=e;return t(["hide password"])},INVALID_TOKEN:e=>{const{normalize:t}=e;return t(["Invalid token, please request a new password reset."])},LANGUAGE:e=>{const{normalize:t}=e;return t(["Language"])},LOG_IN:e=>{const{normalize:t}=e;return t(["log in"])},LOGIN:e=>{const{normalize:t}=e;return t(["Login"])},LOGOUT:e=>{const{normalize:t}=e;return t(["Logout"])},NEW_PASSWORD:e=>{const{normalize:t}=e;return t(["New password"])},NO_USERS_FOUND:e=>{const{normalize:t}=e;return t(["No users found."])},PASSWORD:e=>{const{normalize:t}=e;return t(["Password"])},PASSWORD_INFO:e=>{const{normalize:t}=e;return t(["At least 8 characters required."])},PASSWORD_FORGOTTEN:e=>{const{normalize:t}=e;return t(["Forgot password?"])},PASSWORD_RESET:e=>{const{normalize:t}=e;return t(["Password reset"])},PASSWORD_SENT_EMAIL_TEXT:e=>{const{normalize:t}=e;return t(["Check your email. If your address is in our database, you'll received an email with a link to reset your password."])},PASSWORD_STRENGTH:{WEAK:e=>{const{normalize:t}=e;return t(["weak"])},AVERAGE:e=>{const{normalize:t}=e;return t(["average"])},GOOD:e=>{const{normalize:t}=e;return t(["good"])},STRONG:e=>{const{normalize:t}=e;return t(["strong"])},LABEL:e=>{const{normalize:t}=e;return t(["password strength"])},SUGGESTIONS:{l33t:e=>{const{normalize:t}=e;return t(["Avoid predictable letter substitutions like ","@"," for a."])},reverseWords:e=>{const{normalize:t}=e;return t(["Avoid reversed spellings of common words."])},allUppercase:e=>{const{normalize:t}=e;return t(["Capitalize some, but not all letters."])},capitalization:e=>{const{normalize:t}=e;return t(["Capitalize more than the first letter."])},dates:e=>{const{normalize:t}=e;return t(["Avoid dates and years that are associated with you."])},recentYears:e=>{const{normalize:t}=e;return t(["Avoid recent years."])},associatedYears:e=>{const{normalize:t}=e;return t(["Avoid years that are associated with you."])},sequences:e=>{const{normalize:t}=e;return t(["Avoid common character sequences."])},repeated:e=>{const{normalize:t}=e;return t(["Avoid repeated words and characters."])},longerKeyboardPattern:e=>{const{normalize:t}=e;return t(["Use longer keyboard patterns and change typing direction multiple times."])},anotherWord:e=>{const{normalize:t}=e;return t(["Add more words that are less common."])},useWords:e=>{const{normalize:t}=e;return t(["Use multiple words, but avoid common phrases."])},noNeed:e=>{const{normalize:t}=e;return t(["You can create strong passwords without using symbols, numbers, or uppercase letters."])},pwned:e=>{const{normalize:t}=e;return t(["If you use this password elsewhere, you should change it."])}}},PASSWORD_UPDATED:e=>{const{normalize:t,interpolate:n,list:a}=e;return t(["Your password have been updated. Click ",n(a(0))," to log in."])},PROFILE:{ACCOUNT_EDITION:e=>{const{normalize:t}=e;return t(["Account edition"])},BACK_TO_PROFILE:e=>{const{normalize:t}=e;return t(["Back to profile"])},BIO:e=>{const{normalize:t}=e;return t(["Bio"])},BIRTH_DATE:e=>{const{normalize:t}=e;return t(["Birth date"])},EDIT:e=>{const{normalize:t}=e;return t(["Edit profile"])},EDIT_PREFERENCES:e=>{const{normalize:t}=e;return t(["Edit preferences"])},EDIT_SPORTS_PREFERENCES:e=>{const{normalize:t}=e;return t(["Edit sports preferences"])},ERRORED_EMAIL_UPDATE:e=>{const{normalize:t,interpolate:n,list:a}=e;return t(["Please ",n(a(0))," to change your email address again or contact the administrator"])},FIRST_NAME:e=>{const{normalize:t}=e;return t(["First name"])},FIRST_DAY_OF_WEEK:e=>{const{normalize:t}=e;return t(["First day of week"])},LANGUAGE:e=>{const{normalize:t}=e;return t(["Language"])},LAST_NAME:e=>{const{normalize:t}=e;return t(["Last name"])},LOCATION:e=>{const{normalize:t}=e;return t(["Location"])},MONDAY:e=>{const{normalize:t}=e;return t(["Monday"])},PICTURE:e=>{const{normalize:t}=e;return t(["Picture"])},PICTURE_EDITION:e=>{const{normalize:t}=e;return t(["Picture edition"])},PICTURE_UPDATE:e=>{const{normalize:t}=e;return t(["Update picture"])},PICTURE_REMOVE:e=>{const{normalize:t}=e;return t(["Remove picture"])},PREFERENCES_EDITION:e=>{const{normalize:t}=e;return t(["Preferences edition"])},PROFILE_EDITION:e=>{const{normalize:t}=e;return t(["Profile edition"])},REGISTRATION_DATE:e=>{const{normalize:t}=e;return t(["Registration date"])},SPORTS_EDITION:e=>{const{normalize:t}=e;return t(["Sports preferences edition"])},SUNDAY:e=>{const{normalize:t}=e;return t(["Sunday"])},TABS:{ACCOUNT:e=>{const{normalize:t}=e;return t(["account"])},PICTURE:e=>{const{normalize:t}=e;return t(["picture"])},PREFERENCES:e=>{const{normalize:t}=e;return t(["preferences"])},PROFILE:e=>{const{normalize:t}=e;return t(["profile"])},SPORTS:e=>{const{normalize:t}=e;return t(["sports"])}},SPORT:{ACTION:e=>{const{normalize:t}=e;return t(["action"])},COLOR:e=>{const{normalize:t}=e;return t(["color"])},DISABLED_BY_ADMIN:e=>{const{normalize:t}=e;return t(["disabled by admin"])},IS_ACTIVE:e=>{const{normalize:t}=e;return t(["active"])},LABEL:e=>{const{normalize:t}=e;return t(["label"])},STOPPED_SPEED_THRESHOLD:e=>{const{normalize:t}=e;return t(["stopped speed threshold"])}},SUCCESSFUL_EMAIL_UPDATE:e=>{const{normalize:t}=e;return t(["Your account has been updated successfully. Please check your email to confirm your new email address."])},SUCCESSFUL_REGISTRATION:e=>{const{normalize:t}=e;return t(["Your account has been created successfully."])},SUCCESSFUL_REGISTRATION_WITH_EMAIL:e=>{const{normalize:t}=e;return t(["A link to activate your account has been emailed to the address provided."])},SUCCESSFUL_UPDATE:e=>{const{normalize:t}=e;return t(["Your account has been updated successfully."])},UNITS:{LABEL:e=>{const{normalize:t}=e;return t(["Units for distance"])},IMPERIAL:e=>{const{normalize:t}=e;return t(["Imperial system (ft, mi)"])},METRIC:e=>{const{normalize:t}=e;return t(["Metric system (m, km)"])}},TIMEZONE:e=>{const{normalize:t}=e;return t(["Timezone"])}},REGISTER:e=>{const{normalize:t}=e;return t(["Register"])},RESENT_ACCOUNT_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Resend account confirmation email"])},REGISTER_DISABLED:e=>{const{normalize:t}=e;return t(["Sorry, registration is disabled."])},RESET_PASSWORD:e=>{const{normalize:t}=e;return t(["Reset your password"])},SHOW_PASSWORD:e=>{const{normalize:t}=e;return t(["show password"])},THIS_USER_ACCOUNT_IS_INACTIVE:e=>{const{normalize:t}=e;return t(["This user account is inactive."])},USER_PICTURE:e=>{const{normalize:t}=e;return t(["user picture"])},USERNAME:e=>{const{normalize:t}=e;return t(["Username"])},USERNAME_INFO:e=>{const{normalize:t}=e;return t(['3 to 30 characters required, only alphanumeric characters and the underscore character "_" allowed.'])}},S={ADD_WORKOUT:e=>{const{normalize:t}=e;return t(["Add a workout"])},ANALYSIS:e=>{const{normalize:t}=e;return t(["analysis"])},ASCENT:e=>{const{normalize:t}=e;return t(["ascent"])},AVE_SPEED:e=>{const{normalize:t}=e;return t(["ave. speed"])},AVERAGE_SPEED:e=>{const{normalize:t}=e;return t(["average speed"])},BACK_TO_WORKOUT:e=>{const{normalize:t}=e;return t(["back to workout"])},DATE:e=>{const{normalize:t}=e;return t(["date"])},DESCENT:e=>{const{normalize:t}=e;return t(["descent"])},DISPLAY_FILTERS:e=>{const{normalize:t}=e;return t(["display filters"])},DISTANCE:e=>{const{normalize:t}=e;return t(["distance"])},DURATION:e=>{const{normalize:t}=e;return t(["duration"])},EDIT_WORKOUT:e=>{const{normalize:t}=e;return t(["Edit the workout"])},ELEVATION:e=>{const{normalize:t}=e;return t(["elevation"])},END:e=>{const{normalize:t}=e;return t(["end"])},FROM:e=>{const{normalize:t}=e;return t(["from"])},GPX_FILE:e=>{const{normalize:t}=e;return t([".gpx file"])},HIDE_FILTERS:e=>{const{normalize:t}=e;return t(["hide filters"])},LATEST_WORKOUTS:e=>{const{normalize:t}=e;return t(["Latest workouts"])},LOAD_MORE_WORKOUT:e=>{const{normalize:t}=e;return t(["Load more workouts"])},MAX_ALTITUDE:e=>{const{normalize:t}=e;return t(["max. altitude"])},MAX_FILES:e=>{const{normalize:t}=e;return t(["max files"])},MAX_SIZE:e=>{const{normalize:t}=e;return t(["max size"])},MAX_SPEED:e=>{const{normalize:t}=e;return t(["max. speed"])},MIN_ALTITUDE:e=>{const{normalize:t}=e;return t(["min. altitude"])},NEXT_SEGMENT:e=>{const{normalize:t}=e;return t(["No next segment"])},NEXT_WORKOUT:e=>{const{normalize:t}=e;return t(["Next workout"])},NO_DATA_CLEANING:e=>{const{normalize:t}=e;return t(["data from gpx, without any cleaning"])},NO_FILE_PROVIDED:e=>{const{normalize:t}=e;return t(["No file provided"])},NO_FOLDER:e=>{const{normalize:t}=e;return t(["no folder inside"])},NO_MAP:e=>{const{normalize:t}=e;return t(["No map"])},NO_NEXT_SEGMENT:e=>{const{normalize:t}=e;return t(["No next segment"])},NO_NEXT_WORKOUT:e=>{const{normalize:t}=e;return t(["No next workout"])},NO_NOTES:e=>{const{normalize:t}=e;return t(["No notes"])},NO_PREVIOUS_SEGMENT:e=>{const{normalize:t}=e;return t(["No previous segment"])},NO_PREVIOUS_WORKOUT:e=>{const{normalize:t}=e;return t(["No previous workout"])},NO_RECORDS:e=>{const{normalize:t}=e;return t(["No records."])},NO_WORKOUTS:e=>{const{normalize:t}=e;return t(["No workouts."])},NOTES:e=>{const{normalize:t}=e;return t(["notes"])},PAUSES:e=>{const{normalize:t}=e;return t(["pauses"])},PREVIOUS_SEGMENT:e=>{const{normalize:t}=e;return t(["Previous segment"])},PREVIOUS_WORKOUT:e=>{const{normalize:t}=e;return t(["Previous workout"])},RECORD:e=>{const{normalize:t,plural:n}=e;return n([t(["record"]),t(["records"])])},RECORD_AS:e=>{const{normalize:t}=e;return t(["Ave. speed"])},RECORD_FD:e=>{const{normalize:t}=e;return t(["Farthest distance"])},RECORD_LD:e=>{const{normalize:t}=e;return t(["Longest duration"])},RECORD_MS:e=>{const{normalize:t}=e;return t(["Max. speed"])},REMAINING_CHARS:e=>{const{normalize:t}=e;return t(["remaining characters"])},SEGMENT:e=>{const{normalize:t,plural:n}=e;return n([t(["segment"]),t(["segments"])])},SPEED:e=>{const{normalize:t}=e;return t(["speed"])},SPORT:e=>{const{normalize:t,plural:n}=e;return n([t(["sport"]),t(["sports"])])},START:e=>{const{normalize:t}=e;return t(["start"])},START_AND_FINISH:e=>{const{normalize:t}=e;return t(["Start and finish"])},START_ELEVATION_AT_ZERO:e=>{const{normalize:t}=e;return t(["start elevation axis at zero"])},TITLE:e=>{const{normalize:t}=e;return t(["title"])},TO:e=>{const{normalize:t}=e;return t(["to"])},TOTAL_DURATION:e=>{const{normalize:t}=e;return t(["total duration"])},UPLOAD_FIRST_WORKOUT:e=>{const{normalize:t}=e;return t(["Upload one!"])},WEATHER:{HUMIDITY:e=>{const{normalize:t}=e;return t(["humidity"])},TEMPERATURE:e=>{const{normalize:t}=e;return t(["temperature"])},WIND:e=>{const{normalize:t}=e;return t(["wind"])},WIND_DIRECTIONS:{N:e=>{const{normalize:t}=e;return t(["N"])},NNE:e=>{const{normalize:t}=e;return t(["NNE"])},NE:e=>{const{normalize:t}=e;return t(["NE"])},ENE:e=>{const{normalize:t}=e;return t(["ENE"])},E:e=>{const{normalize:t}=e;return t(["E"])},ESE:e=>{const{normalize:t}=e;return t(["ESE"])},SE:e=>{const{normalize:t}=e;return t(["SE"])},SSE:e=>{const{normalize:t}=e;return t(["SSE"])},S:e=>{const{normalize:t}=e;return t(["S"])},SSW:e=>{const{normalize:t}=e;return t(["SSW"])},SW:e=>{const{normalize:t}=e;return t(["SW"])},WSW:e=>{const{normalize:t}=e;return t(["WSW"])},W:e=>{const{normalize:t}=e;return t(["W"])},WNW:e=>{const{normalize:t}=e;return t(["WNW"])},NW:e=>{const{normalize:t}=e;return t(["NW"])},NNW:e=>{const{normalize:t}=e;return t(["NNW"])}},DARK_SKY:{"clear-day":e=>{const{normalize:t}=e;return t(["clear day"])},"clear-night":e=>{const{normalize:t}=e;return t(["clear night"])},cloudy:e=>{const{normalize:t}=e;return t(["cloudy"])},fog:e=>{const{normalize:t}=e;return t(["fog"])},"partly-cloudy-day":e=>{const{normalize:t}=e;return t(["partly cloudy day"])},"partly-cloudy-night":e=>{const{normalize:t}=e;return t(["partly cloudy night"])},rain:e=>{const{normalize:t}=e;return t(["rain"])},sleet:e=>{const{normalize:t}=e;return t(["sleet"])},snow:e=>{const{normalize:t}=e;return t(["snow"])},wind:e=>{const{normalize:t}=e;return t(["wind"])}}},WITH_GPX:e=>{const{normalize:t}=e;return t(["with .gpx file"])},WITHOUT_GPX:e=>{const{normalize:t}=e;return t(["without .gpx file"])},WORKOUT:e=>{const{normalize:t,plural:n}=e;return n([t(["workout"]),t(["workouts"])])},WORKOUT_DATE:e=>{const{normalize:t}=e;return t(["workout date"])},WORKOUT_DELETION_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Are you sure you want to delete this workout?"])},ZIP_ARCHIVE:e=>{const{normalize:t}=e;return t([".zip file"])},ZIP_ARCHIVE_DESCRIPTION:e=>{const{normalize:t}=e;return t(["or .zip file containing .gpx files"])}},_={about:a,admin:r,api:s,buttons:o,common:i,dashboard:l,error:c,sports:u,statistics:d,user:m,workouts:S}},1079:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return _}});var a={CONTACT_ADMIN:e=>{const{normalize:t}=e;return t(["Contacter l'administrateur"])},FITTRACKEE_DESCRIPTION:e=>{const{normalize:t}=e;return t(["FitTrackee est un tracker d'activités sportives (en extérieur)."])},FITTRACKEE_LICENSE:e=>{const{normalize:t,interpolate:n,list:a}=e;return t(["sous license ",n(a(0))," (en)"])},SOURCE_CODE:e=>{const{normalize:t}=e;return t(["Code source (en)"])}},r={ACTION:e=>{const{normalize:t}=e;return t(["Action"])},ACTIVATE_USER_ACCOUNT:e=>{const{normalize:t}=e;return t(["Activer le compte"])},ACTIVE:e=>{const{normalize:t}=e;return t(["Actif"])},ADMIN_RIGHTS_DELETE_USER_ACCOUNT:e=>{const{normalize:t}=e;return t(["Ajouter/retirer des droits d'administration, supprimer des comptes utilisateurs."])},ADMIN:e=>{const{normalize:t}=e;return t(["Admin"])},ADMINISTRATION:e=>{const{normalize:t}=e;return t(["Administration"])},APPLICATION:e=>{const{normalize:t}=e;return t(["Application"])},APP_CONFIG:{ADMIN_CONTACT:e=>{const{normalize:t}=e;return t(["Email de l'administrateur pour contact "])},MAX_USERS_LABEL:e=>{const{normalize:t}=e;return t(["Nombre maximum d'utilisateurs actifs "])},MAX_USERS_HELP:e=>{const{normalize:t}=e;return t(["Si égal à 0, pas limite d'inscription"])},MAX_FILES_IN_ZIP_LABEL:e=>{const{normalize:t}=e;return t(["Taille max. des archives zip (en Mo) "])},NO_CONTACT_EMAIL:e=>{const{normalize:t}=e;return t(["non renseigné"])},SINGLE_UPLOAD_MAX_SIZE_LABEL:e=>{const{normalize:t}=e;return t(["Taille max. des fichiers (en Mo) "])},TITLE:e=>{const{normalize:t}=e;return t(["Configuration de l'application"])},ZIP_UPLOAD_MAX_SIZE_LABEL:e=>{const{normalize:t}=e;return t(["Nombre max. de fichiers dans une archive zip "])}},BACK_TO_ADMIN:e=>{const{normalize:t}=e;return t(["Revenir à l'admin"])},CONFIRM_USER_ACCOUNT_DELETION:e=>{const{normalize:t,interpolate:n,list:a}=e;return t(["Êtes-vous sûr de vouloir supprimer le compte de l'utilisateur ",n(a(0))," ? Toutes les données seront définitivement."])},CONFIRM_USER_PASSWORD_RESET:e=>{const{normalize:t,interpolate:n,list:a}=e;return t(["Êtes-vous sûr de vouloir réinitialiser le mot de passe de l'utilisateur ",n(a(0))," ?"])},CURRENT_EMAIL:e=>{const{normalize:t}=e;return t(["Adresse email actuelle"])},DELETE_USER:e=>{const{normalize:t}=e;return t(["Supprimer l'utilisateur"])},EMAIL_SENDING_DISABLED:e=>{const{normalize:t}=e;return t(["L'envoi d'emails est désactivé."])},ENABLE_DISABLE_SPORTS:e=>{const{normalize:t}=e;return t(["Activer/désactiver des sports."])},NEW_EMAIL:e=>{const{normalize:t}=e;return t(["Nouvelle adresse email"])},PASSWORD_RESET_SUCCESSFUL:e=>{const{normalize:t}=e;return t(["Le mot de passe a été réinitialisé."])},REGISTRATION_DISABLED:e=>{const{normalize:t}=e;return t(["Les inscriptions sont actuellement désactivées."])},REGISTRATION_ENABLED:e=>{const{normalize:t}=e;return t(["Les inscriptions sont actuellement activées."])},RESET_USER_PASSWORD:e=>{const{normalize:t}=e;return t(["Réinit. le mot de passe"])},SPORTS:{TABLE:{ACTIVE:e=>{const{normalize:t}=e;return t(["Actif"])},HAS_WORKOUTS:e=>{const{normalize:t}=e;return t(["des séances existent"])},IMAGE:e=>{const{normalize:t}=e;return t(["Image"])},LABEL:e=>{const{normalize:t}=e;return t(["Label"])}},TITLE:e=>{const{normalize:t}=e;return t(["Administration - Sports"])}},UPDATE_APPLICATION_DESCRIPTION:e=>{const{normalize:t}=e;return t(["Configurer l'application (nombre maximum d'utilisateurs inscrits, taille maximale des fichers)."])},UPDATE_USER_EMAIL:e=>{const{normalize:t}=e;return t(["Changer l'email"])},USER:e=>{const{normalize:t,plural:n}=e;return n([t(["utilisateur"]),t(["utilisateurs"])])},USER_EMAIL_UPDATE_SUCCESSFUL:e=>{const{normalize:t}=e;return t(["L'adresse email a été mise à jour."])},USERS:{TABLE:{ADD_ADMIN_RIGHTS:e=>{const{normalize:t}=e;return t(["Ajouter les droits d'admin"])},REMOVE_ADMIN_RIGHTS:e=>{const{normalize:t}=e;return t(["Retirer les droits d'admin"])}},SELECTS:{ORDER_BY:{ADMIN:e=>{const{normalize:t}=e;return t(["status administrateur"])},CREATED_AT:e=>{const{normalize:t}=e;return t(["date d'inscription"])},IS_ACTIVE:e=>{const{normalize:t}=e;return t(["statut du compte"])},USERNAME:e=>{const{normalize:t}=e;return t(["nom d'utilisateur"])},WORKOUTS_COUNT:e=>{const{normalize:t}=e;return t(["nombre de séances"])}}}}},s={ERROR:{UNKNOWN:e=>{const{normalize:t}=e;return t(["Erreur. Veuillez réessayer ou contacter l'administrateur."])},"email: valid email must be provided":e=>{const{normalize:t}=e;return t(["Email : une adresse email valide doit être fournie."])},"error on getting configuration":e=>{const{normalize:t}=e;return t(["Erreur lors de la récupération de la configuration."])},"error when updating configuration":e=>{const{normalize:t}=e;return t(["Erreur lors de la mise à jour de la configuration"])},"error, please try again or contact the administrator":e=>{const{normalize:t}=e;return t(["Erreur, veuillez réessayer ou contacter l'administrateur."])},"error, registration is disabled":e=>{const{normalize:t}=e;return t(["Erreur, les inscriptions sont désactivées."])},"file extension not allowed":e=>{const{normalize:t}=e;return t(["Extension de fichier non autorisée."])},"file size is greater than the allowed size":e=>{const{normalize:t}=e;return t(["La taille du fichier est supérieure à la limite autorisée."])},"invalid credentials":e=>{const{normalize:t}=e;return t(["Identifiants invalides."])},"invalid payload":e=>{const{normalize:t}=e;return t(["Données fournies incorrectes."])},"invalid token, please log in again":e=>{const{normalize:t}=e;return t(["Jeton de connexion invalide, merci de vous reconnecter."])},"invalid token, please request a new token":e=>{const{normalize:t}=e;return t(["Jeton de connexion, merci de vous reconnecter."])},"no file part":e=>{const{normalize:t}=e;return t(["Pas de fichier fourni."])},"no selected file":e=>{const{normalize:t}=e;return t(["Pas de fichier sélectionné."])},"Network Error":e=>{const{normalize:t}=e;return t(["Erreur Réseau."])},"new email must be different than curent email":e=>{const{normalize:t}=e;return t(["La nouvelle addresse email doit être differente de l'adresse actuelle"])},"password: password and password confirmation do not match":e=>{const{normalize:t}=e;return t(["Mot de passe : les mots de passe saisis sont différents."])},"provide a valid auth token":e=>{const{normalize:t}=e;return t(["Merci de fournir un jeton de connexion valide."])},"sport does not exist":e=>{const{normalize:t}=e;return t(["Ce sport n'existe pas."])},"signature expired, please log in again":e=>{const{normalize:t}=e;return t(["Signature expirée. Merci de vous reconnecter."])},"sorry, that username is already taken":e=>{const{normalize:t}=e;return t(["Désolé, ce nom d'utilisateur est déjà utilisé."])},"successfully registered":e=>{const{normalize:t}=e;return t(["Inscription validée."])},"user does not exist":e=>{const{normalize:t}=e;return t(["L'utilisateur n'existe pas"])},"valid email must be provided for admin contact":e=>{const{normalize:t}=e;return t(["Une adresse email doit être fournie pour le contact de l'administrateur."])},"you can not delete your account, no other user has admin rights":e=>{const{normalize:t}=e;return t(["Vous ne pouvez pas supprimer votre compte, aucun autre utilisateur n'a des droits d'administration."])},"you do not have permissions":e=>{const{normalize:t}=e;return t(["Vous n'avez pas les permissions nécessaires."])}},PAGINATION:{PREVIOUS:e=>{const{normalize:t}=e;return t(["précédent"])},NEXT:e=>{const{normalize:t}=e;return t(["suivant"])}}},o={"ACCOUNT-CONFIRMATION-RESEND":e=>{const{normalize:t}=e;return t(["Envoyer à nouveau l'email de confirmation"])},BACK:e=>{const{normalize:t}=e;return t(["Précédent"])},CANCEL:e=>{const{normalize:t}=e;return t(["Annuler"])},CLEAR_FILTER:e=>{const{normalize:t}=e;return t(["Réinitialiser"])},DELETE_MY_ACCOUNT:e=>{const{normalize:t}=e;return t(["Supprimer mon compte"])},DISABLE:e=>{const{normalize:t}=e;return t(["Désactiver"])},EDIT:e=>{const{normalize:t}=e;return t(["Modifier"])},ENABLE:e=>{const{normalize:t}=e;return t(["Activer"])},FILTER:e=>{const{normalize:t}=e;return t(["Filtrer"])},LOGIN:e=>{const{normalize:t}=e;return t(["Se connecter"])},NO:e=>{const{normalize:t}=e;return t(["Non"])},REGISTER:e=>{const{normalize:t}=e;return t(["S'inscrire"])},RESET:e=>{const{normalize:t}=e;return t(["Réinit."])},SUBMIT:e=>{const{normalize:t}=e;return t(["Valider"])},YES:e=>{const{normalize:t}=e;return t(["Oui"])}},i={ABOUT:e=>{const{normalize:t}=e;return t(["à propos"])},CONFIRMATION:e=>{const{normalize:t}=e;return t(["Confirmation"])},CONTACT:e=>{const{normalize:t}=e;return t(["contact"])},DAY:e=>{const{normalize:t,plural:n}=e;return n([t(["jour"]),t(["jours"])])},DOCUMENTATION:e=>{const{normalize:t}=e;return t(["documentation (en)"])},HOME:e=>{const{normalize:t}=e;return t(["Accueil"])},HERE:e=>{const{normalize:t}=e;return t(["ici"])},SELECTS:{ORDER_BY:{LABEL:e=>{const{normalize:t}=e;return t(["trier par "])}},ORDER:{LABEL:e=>{const{normalize:t}=e;return t(["tri"])},ASC:e=>{const{normalize:t}=e;return t(["ascendant"])},DESC:e=>{const{normalize:t}=e;return t(["descendant"])}},PER_PAGE:{LABEL:e=>{const{normalize:t}=e;return t(["par page"])}}},TOTAL:e=>{const{normalize:t}=e;return t(["Total"])}},l={DASHBOARD:e=>{const{normalize:t}=e;return t(["Tableau de Bord"])},THIS_MONTH:e=>{const{normalize:t}=e;return t(["Ce mois"])}},c={UNKNOWN:e=>{const{normalize:t}=e;return t(["Erreur. Veuillez réessayer ou contacter l'administrateur."])},APP_ERROR:e=>{const{normalize:t}=e;return t(["L'application semble rencontrer quelques problèmes.
Veuillez réessayer plus tard ou contacter l'administrateur."])},NOT_FOUND:{PAGE:e=>{const{normalize:t}=e;return t(["Page introuvable"])},WORKOUT:e=>{const{normalize:t}=e;return t(["Séance introuvable"])}},SOMETHING_WRONG:e=>{const{normalize:t}=e;return t(["Une erreur s'est produite"])}},u={"Cycling (Sport)":{LABEL:e=>{const{normalize:t}=e;return t(["Vélo (Sport)"])}},"Cycling (Transport)":{LABEL:e=>{const{normalize:t}=e;return t(["Vélo (Transport)"])}},Hiking:{LABEL:e=>{const{normalize:t}=e;return t(["Randonnée"])}},"Mountain Biking":{LABEL:e=>{const{normalize:t}=e;return t(["VTT"])}},"Mountain Biking (Electric)":{LABEL:e=>{const{normalize:t}=e;return t(["VTT (Electrique)"])}},Rowing:{LABEL:e=>{const{normalize:t}=e;return t(["Aviron"])}},Running:{LABEL:e=>{const{normalize:t}=e;return t(["Course"])}},"Skiing (Alpine)":{LABEL:e=>{const{normalize:t}=e;return t(["Ski (Alpin)"])}},"Skiing (Cross Country)":{LABEL:e=>{const{normalize:t}=e;return t(["Ski (Randonnée)"])}},Snowshoes:{LABEL:e=>{const{normalize:t}=e;return t(["Raquettes"])}},Trail:{LABEL:e=>{const{normalize:t}=e;return t(["Trail"])}},Walking:{LABEL:e=>{const{normalize:t}=e;return t(["Marche"])}}},d={STATISTICS:e=>{const{normalize:t}=e;return t(["Statistiques"])},TIME_FRAMES:{week:e=>{const{normalize:t}=e;return t(["semaine"])},month:e=>{const{normalize:t}=e;return t(["mois"])},year:e=>{const{normalize:t}=e;return t(["année"])}}},m={ACCOUNT_CONFIRMATION_NOT_RECEIVED:e=>{const{normalize:t}=e;return t(["Vous n'avez pas reçu les instructions ?"])},ACCOUNT_CONFIRMATION_SENT:e=>{const{normalize:t}=e;return t(["Vérifiez votre boite mail. Un nouvel email de confirmation a été envoyé à l'adresse email fournie."])},ADMIN:e=>{const{normalize:t}=e;return t(["Admin"])},ALREADY_HAVE_ACCOUNT:e=>{const{normalize:t}=e;return t(["Vous avez déjà un compte ?"])},CONFIRM_ACCOUNT_DELETION:e=>{const{normalize:t}=e;return t(["Êtes-vous sûr de vouloir supprimer votre compte ? Toutes les données seront définitivement effacés."])},CURRENT_PASSWORD:e=>{const{normalize:t}=e;return t(["Mot de passe actuel"])},EMAIL:e=>{const{normalize:t}=e;return t(["Email"])},EMAIL_INFO:e=>{const{normalize:t}=e;return t(["Saisir une adresse email valide."])},ENTER_PASSWORD:e=>{const{normalize:t}=e;return t(["Saisir un mot de passe"])},FILTER_ON_USERNAME:e=>{const{normalize:t}=e;return t(["Filtrer sur le nom d'utilisateur"])},HIDE_PASSWORD:e=>{const{normalize:t}=e;return t(["masquer le mot de passe"])},INVALID_TOKEN:e=>{const{normalize:t}=e;return t(["Jeton invalide, veuillez demander une nouvelle réinitialisation de mot de passe."])},LANGUAGE:e=>{const{normalize:t}=e;return t(["Langue"])},LOG_IN:e=>{const{normalize:t}=e;return t(["connecter"])},LOGIN:e=>{const{normalize:t}=e;return t(["Se connecter"])},LOGOUT:e=>{const{normalize:t}=e;return t(["Se déconnecter"])},NEW_PASSWORD:e=>{const{normalize:t}=e;return t(["Nouveau mot de passe"])},NO_USERS_FOUND:e=>{const{normalize:t}=e;return t(["Aucun utilisateur trouvé."])},PASSWORD:e=>{const{normalize:t}=e;return t(["Mot de passe"])},PASSWORD_INFO:e=>{const{normalize:t}=e;return t(["8 caractères minimum."])},PASSWORD_FORGOTTEN:e=>{const{normalize:t}=e;return t(["Mot de passe oublié ?"])},PASSWORD_RESET:e=>{const{normalize:t}=e;return t(["Réinitialisation du mot de passe"])},PASSWORD_SENT_EMAIL_TEXT:e=>{const{normalize:t}=e;return t(["Vérifiez votre boite mail. Si vote adresse est dans notre base de données, vous recevrez un email avec un lien pour réinitialiser votre mot de passe."])},PASSWORD_STRENGTH:{WEAK:e=>{const{normalize:t}=e;return t(["faible"])},AVERAGE:e=>{const{normalize:t}=e;return t(["moyenne"])},GOOD:e=>{const{normalize:t}=e;return t(["bonne"])},STRONG:e=>{const{normalize:t}=e;return t(["forte"])},LABEL:e=>{const{normalize:t}=e;return t(["robustesse du mot de passe "])},SUGGESTIONS:{l33t:e=>{const{normalize:t}=e;return t(["Évitez les substitutions de lettres prévisibles comme ","@"," pour a."])},reverseWords:e=>{const{normalize:t}=e;return t(["Évitez les orthographes inversées des mots courants"])},allUppercase:e=>{const{normalize:t}=e;return t(["Mettez quelques lettres en majuscules, mais pas toutes."])},capitalization:e=>{const{normalize:t}=e;return t(["Capitalisez mais pas seulement la première lettre."])},dates:e=>{const{normalize:t}=e;return t(["Évitez les dates et les années qui vous sont associées. (ex: date ou année de naissance)"])},recentYears:e=>{const{normalize:t}=e;return t(["Évitez les dernières années."])},associatedYears:e=>{const{normalize:t}=e;return t(["Évitez les années qui vous sont associées. (ex: date de naissance)"])},sequences:e=>{const{normalize:t}=e;return t(["Évitez les séquences de caractères courantes."])},repeated:e=>{const{normalize:t}=e;return t(["Évitez les mots et les caractères répétés."])},longerKeyboardPattern:e=>{const{normalize:t}=e;return t(["Utilisez des motifs de clavier plus longs et changez de sens de frappe plusieurs fois."])},anotherWord:e=>{const{normalize:t}=e;return t(["Ajoutez des mots moins courants."])},useWords:e=>{const{normalize:t}=e;return t(["Utilisez plusieurs mots, mais évitez les phrases courantes."])},noNeed:e=>{const{normalize:t}=e;return t(["Vous pouvez créer des mots de passe forts sans utiliser de symboles, de chiffres ou de lettres majuscules."])},pwned:e=>{const{normalize:t}=e;return t(["Si vous utilisez ce mot de passe ailleurs, vous devriez le modifier."])}}},PASSWORD_UPDATED:e=>{const{normalize:t,interpolate:n,list:a}=e;return t(["Votre mot de passe a été mis à jour. Cliquez ",n(a(0))," pour vous connecter."])},PROFILE:{ACCOUNT_EDITION:e=>{const{normalize:t}=e;return t(["Mise à jour du compte"])},BACK_TO_PROFILE:e=>{const{normalize:t}=e;return t(["Revenir au profil"])},BIO:e=>{const{normalize:t}=e;return t(["Bio"])},BIRTH_DATE:e=>{const{normalize:t}=e;return t(["Date de naissance"])},EDIT:e=>{const{normalize:t}=e;return t(["Modifier le profil"])},EDIT_PREFERENCES:e=>{const{normalize:t}=e;return t(["Modifier les préférences"])},EDIT_SPORTS_PREFERENCES:e=>{const{normalize:t}=e;return t(["Modifier les préférences des sports"])},ERRORED_EMAIL_UPDATE:e=>{const{normalize:t,interpolate:n,list:a}=e;return t(["Veuillez vous ",n(a(0))," pour changer de nouveau votre adresse email ou contacter l'administrateur"])},FIRST_DAY_OF_WEEK:e=>{const{normalize:t}=e;return t(["Premier jour de la semaine"])},FIRST_NAME:e=>{const{normalize:t}=e;return t(["Prénom"])},LANGUAGE:e=>{const{normalize:t}=e;return t(["Langue"])},LAST_NAME:e=>{const{normalize:t}=e;return t(["Nom"])},LOCATION:e=>{const{normalize:t}=e;return t(["Lieu"])},MONDAY:e=>{const{normalize:t}=e;return t(["Lundi"])},PICTURE:e=>{const{normalize:t}=e;return t(["Image de profil"])},PICTURE_EDITION:e=>{const{normalize:t}=e;return t(["Mise à jour de l'image de profil"])},PICTURE_UPDATE:e=>{const{normalize:t}=e;return t(["Mettre à jour l'image"])},PICTURE_REMOVE:e=>{const{normalize:t}=e;return t(["Supprimer"])},PREFERENCES_EDITION:e=>{const{normalize:t}=e;return t(["Mise à jour des préférences"])},PROFILE_EDITION:e=>{const{normalize:t}=e;return t(["Mise à jour du profil"])},REGISTRATION_DATE:e=>{const{normalize:t}=e;return t(["Date d'inscription"])},SPORTS_EDITION:e=>{const{normalize:t}=e;return t(["Mise à jour des préférences des sports"])},SUNDAY:e=>{const{normalize:t}=e;return t(["Dimanche"])},TABS:{ACCOUNT:e=>{const{normalize:t}=e;return t(["compte"])},PICTURE:e=>{const{normalize:t}=e;return t(["image"])},PREFERENCES:e=>{const{normalize:t}=e;return t(["préférences"])},PROFILE:e=>{const{normalize:t}=e;return t(["profil"])},SPORTS:e=>{const{normalize:t}=e;return t(["sports"])}},UNITS:{LABEL:e=>{const{normalize:t}=e;return t(["Unités pour les distances "])},IMPERIAL:e=>{const{normalize:t}=e;return t(["Système impérial (ft, mi)"])},METRIC:e=>{const{normalize:t}=e;return t(["Système métrique (m, km)"])}},SPORT:{ACTION:e=>{const{normalize:t}=e;return t(["action"])},COLOR:e=>{const{normalize:t}=e;return t(["couleur"])},DISABLED_BY_ADMIN:e=>{const{normalize:t}=e;return t(["désactivé par l'administrateur"])},IS_ACTIVE:e=>{const{normalize:t}=e;return t(["actif"])},LABEL:e=>{const{normalize:t}=e;return t(["label"])},STOPPED_SPEED_THRESHOLD:e=>{const{normalize:t}=e;return t(["seuil de vitesse arrêtée"])}},SUCCESSFUL_EMAIL_UPDATE:e=>{const{normalize:t}=e;return t(["Votre compte a été modifié avec succès. Veuillez vérifier votre boite email pour valider votre nouvelle adresse email."])},SUCCESSFUL_REGISTRATION:e=>{const{normalize:t}=e;return t(["Votre compte a été créé avec succès."])},SUCCESSFUL_REGISTRATION_WITH_EMAIL:e=>{const{normalize:t}=e;return t(["Un lien pour activer votre compte a été envoyé à l'adresse email fournie."])},SUCCESSFUL_UPDATE:e=>{const{normalize:t}=e;return t(["Votre compte a été modifié avec succès."])},TIMEZONE:e=>{const{normalize:t}=e;return t(["Fuseau horaire"])}},REGISTER:e=>{const{normalize:t}=e;return t(["S'inscrire"])},REGISTER_DISABLED:e=>{const{normalize:t}=e;return t(["Désolé, les inscriptions sont désactivées."])},RESENT_ACCOUNT_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Envoyer à nouveau l'email de confirmation de compte"])},RESET_PASSWORD:e=>{const{normalize:t}=e;return t(["Réinitialiser votre mot de passe"])},SHOW_PASSWORD:e=>{const{normalize:t}=e;return t(["afficher le mot de passe"])},THIS_USER_ACCOUNT_IS_INACTIVE:e=>{const{normalize:t}=e;return t(["Le compte de cet utilisateur est inactif."])},USER_PICTURE:e=>{const{normalize:t}=e;return t(["photo de l'utilisateur"])},USERNAME:e=>{const{normalize:t}=e;return t(["Nom d'utilisateur"])},USERNAME_INFO:e=>{const{normalize:t}=e;return t(['3 à 30 caractères requis, seuls les caractères alphanumériques et le caractère "_" sont autorisés.'])}},S={ADD_WORKOUT:e=>{const{normalize:t}=e;return t(["Ajouter une séance"])},ANALYSIS:e=>{const{normalize:t}=e;return t(["analyse"])},ASCENT:e=>{const{normalize:t}=e;return t(["dénivelé positif"])},AVERAGE_SPEED:e=>{const{normalize:t}=e;return t(["vitesse moyenne"])},AVE_SPEED:e=>{const{normalize:t}=e;return t(["vitesse moy."])},BACK_TO_WORKOUT:e=>{const{normalize:t}=e;return t(["revenir à la séance"])},DATE:e=>{const{normalize:t}=e;return t(["date"])},DESCENT:e=>{const{normalize:t}=e;return t(["dénivelé négatif"])},DISPLAY_FILTERS:e=>{const{normalize:t}=e;return t(["afficher les filtres"])},DISTANCE:e=>{const{normalize:t}=e;return t(["distance"])},DURATION:e=>{const{normalize:t}=e;return t(["durée"])},EDIT_WORKOUT:e=>{const{normalize:t}=e;return t(["Modifier la séance"])},ELEVATION:e=>{const{normalize:t}=e;return t(["altitude"])},END:e=>{const{normalize:t}=e;return t(["fin"])},FROM:e=>{const{normalize:t}=e;return t(["à partir de"])},GPX_FILE:e=>{const{normalize:t}=e;return t(["fichier .gpx"])},HIDE_FILTERS:e=>{const{normalize:t}=e;return t(["masquer les filtres"])},LATEST_WORKOUTS:e=>{const{normalize:t}=e;return t(["Séances récentes"])},LOAD_MORE_WORKOUT:e=>{const{normalize:t}=e;return t(["Charger les séances suivantes"])},MAX_ALTITUDE:e=>{const{normalize:t}=e;return t(["altitude max"])},MAX_FILES:e=>{const{normalize:t}=e;return t(["fichiers max. "])},MAX_SIZE:e=>{const{normalize:t}=e;return t(["taille max. "])},MAX_SPEED:e=>{const{normalize:t}=e;return t(["vitesse max"])},MIN_ALTITUDE:e=>{const{normalize:t}=e;return t(["altitude min"])},NEXT_SEGMENT:e=>{const{normalize:t}=e;return t(["Segment suivant"])},NEXT_WORKOUT:e=>{const{normalize:t}=e;return t(["Séance suivante"])},NO_DATA_CLEANING:e=>{const{normalize:t}=e;return t(["données issues du fichier gpx, sans correction"])},NO_FILE_PROVIDED:e=>{const{normalize:t}=e;return t(["Pas de fichier fourni"])},NO_FOLDER:e=>{const{normalize:t}=e;return t(["pas de répertoire"])},NO_MAP:e=>{const{normalize:t}=e;return t(["Pas de carte"])},NO_NEXT_SEGMENT:e=>{const{normalize:t}=e;return t(["Pas de segment suivant"])},NO_NEXT_WORKOUT:e=>{const{normalize:t}=e;return t(["Pas de séance suivante"])},NO_NOTES:e=>{const{normalize:t}=e;return t(["Pas de notes"])},NO_PREVIOUS_SEGMENT:e=>{const{normalize:t}=e;return t(["Pas de segment précédent"])},NO_PREVIOUS_WORKOUT:e=>{const{normalize:t}=e;return t(["Pas de séance précédente"])},NO_RECORDS:e=>{const{normalize:t}=e;return t(["Pas de records."])},NO_WORKOUTS:e=>{const{normalize:t}=e;return t(["Pas de séances."])},NOTES:e=>{const{normalize:t}=e;return t(["notes"])},PAUSES:e=>{const{normalize:t}=e;return t(["pauses"])},PREVIOUS_SEGMENT:e=>{const{normalize:t}=e;return t(["Segment précédent"])},PREVIOUS_WORKOUT:e=>{const{normalize:t}=e;return t(["Séance précédente"])},RECORD:e=>{const{normalize:t,plural:n}=e;return n([t(["record"]),t(["records"])])},RECORD_AS:e=>{const{normalize:t}=e;return t(["Vitesse moy."])},RECORD_FD:e=>{const{normalize:t}=e;return t(["Distance la + longue"])},RECORD_LD:e=>{const{normalize:t}=e;return t(["Durée la + longue"])},RECORD_MS:e=>{const{normalize:t}=e;return t(["Vitesse max."])},REMAINING_CHARS:e=>{const{normalize:t}=e;return t(["nombre de caractères restants "])},SEGMENT:e=>{const{normalize:t,plural:n}=e;return n([t(["segment"]),t(["segments"])])},SPEED:e=>{const{normalize:t}=e;return t(["vitesse"])},SPORT:e=>{const{normalize:t,plural:n}=e;return n([t(["sport"]),t(["sports"])])},START:e=>{const{normalize:t}=e;return t(["début"])},START_AND_FINISH:e=>{const{normalize:t}=e;return t(["Départ et arrivée"])},START_ELEVATION_AT_ZERO:e=>{const{normalize:t}=e;return t(["démarrer l'axe de l'altitude à 0"])},TITLE:e=>{const{normalize:t}=e;return t(["titre"])},TO:e=>{const{normalize:t}=e;return t(["jusqu'au"])},TOTAL_DURATION:e=>{const{normalize:t}=e;return t(["durée totale"])},UPLOAD_FIRST_WORKOUT:e=>{const{normalize:t}=e;return t(["Ajoutez votre première séance !"])},WEATHER:{HUMIDITY:e=>{const{normalize:t}=e;return t(["humidité"])},TEMPERATURE:e=>{const{normalize:t}=e;return t(["température"])},WIND:e=>{const{normalize:t}=e;return t(["vent"])},WIND_DIRECTIONS:{N:e=>{const{normalize:t}=e;return t(["N"])},NNE:e=>{const{normalize:t}=e;return t(["NNE"])},NE:e=>{const{normalize:t}=e;return t(["NE"])},ENE:e=>{const{normalize:t}=e;return t(["ENE"])},E:e=>{const{normalize:t}=e;return t(["E"])},ESE:e=>{const{normalize:t}=e;return t(["ESE"])},SE:e=>{const{normalize:t}=e;return t(["SE"])},SSE:e=>{const{normalize:t}=e;return t(["SSE"])},S:e=>{const{normalize:t}=e;return t(["S"])},SSW:e=>{const{normalize:t}=e;return t(["SSO"])},SW:e=>{const{normalize:t}=e;return t(["SO"])},WSW:e=>{const{normalize:t}=e;return t(["OSO"])},W:e=>{const{normalize:t}=e;return t(["O"])},WNW:e=>{const{normalize:t}=e;return t(["ONO"])},NW:e=>{const{normalize:t}=e;return t(["NO"])},NNW:e=>{const{normalize:t}=e;return t(["NNO"])}},DARK_SKY:{"clear-day":e=>{const{normalize:t}=e;return t(["ensoleillé"])},"clear-night":e=>{const{normalize:t}=e;return t(["nuit claire"])},cloudy:e=>{const{normalize:t}=e;return t(["nuageux"])},fog:e=>{const{normalize:t}=e;return t(["brouillard"])},"partly-cloudy-day":e=>{const{normalize:t}=e;return t(["partiellement nuageux"])},"partly-cloudy-night":e=>{const{normalize:t}=e;return t(["nuit partiellement nuageuse"])},rain:e=>{const{normalize:t}=e;return t(["pluie"])},sleet:e=>{const{normalize:t}=e;return t(["neige fondue"])},snow:e=>{const{normalize:t}=e;return t(["neige"])},wind:e=>{const{normalize:t}=e;return t(["venteux"])}}},WITH_GPX:e=>{const{normalize:t}=e;return t(["avec un fichier .gpx"])},WITHOUT_GPX:e=>{const{normalize:t}=e;return t(["sans fichier .gpx"])},WORKOUT:e=>{const{normalize:t,plural:n}=e;return n([t(["séance"]),t(["séances"])])},WORKOUT_DATE:e=>{const{normalize:t}=e;return t(["date de la séance"])},WORKOUT_DELETION_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Etes-vous sûr de vouloir supprimer cette séance ?"])},ZIP_ARCHIVE:e=>{const{normalize:t}=e;return t(["archive .zip"])},ZIP_ARCHIVE_DESCRIPTION:e=>{const{normalize:t}=e;return t(["ou une archive .zip contenant des fichiers .gpx"])}},_={about:a,admin:r,api:s,buttons:o,common:i,dashboard:l,error:c,sports:u,statistics:d,user:m,workouts:S}},811:function(e,t,n){"use strict";var a=n(3328),r=n(8278),s=n(9963),o=n(2343),i=n(5205);(0,i.z)("/service-worker.js",{ready(){console.log("App is being served from cache by a service worker.\nFor more details, visit https://goo.gl/AFskqB")},registered(){console.log("Service worker has been registered.")},cached(){console.log("Content has been cached for offline use.")},updatefound(){console.log("New content is downloading.")},updated(){console.log("New content is available; please refresh.")},offline(){console.log("No internet connection found. App is running in offline mode.")},error(e){console.error("Error during service worker registration:",e)}});var l=n(6252),c=n(2262),u=n(3577);const d=e=>((0,l.dD)("data-v-2c73279e"),e=e(),(0,l.Cn)(),e),m={id:"footer"},S={class:"footer-items"},_={class:"footer-item"},E=d((()=>(0,l._)("strong",null,"FitTrackee",-1))),p=d((()=>(0,l._)("div",{class:"footer-item bullet"},"•",-1))),T={class:"footer-item"},A={key:0,class:"footer-item bullet"},U={key:1,class:"footer-item"},O=["href"],R=d((()=>(0,l._)("div",{class:"footer-item bullet"},"•",-1))),I={class:"footer-item"},g={href:"https://samr1.github.io/FitTrackee/",target:"_blank",rel:"noopener noreferrer"};var w=(0,l.aZ)({name:"Footer",props:{version:null,adminContact:null},setup(e){const t=e,{adminContact:n,version:a}=(0,c.BK)(t);return(e,t)=>{const r=(0,l.up)("router-link");return(0,l.wg)(),(0,l.iD)("div",m,[(0,l._)("div",S,[(0,l._)("div",_,[E,(0,l.Uk)(" v"+(0,u.zw)((0,c.SU)(a)),1)]),p,(0,l._)("div",T,[(0,l.Wm)(r,{to:"/about"},{default:(0,l.w5)((()=>[(0,l.Uk)((0,u.zw)(e.$t("common.ABOUT")),1)])),_:1})]),(0,c.SU)(n)?((0,l.wg)(),(0,l.iD)("div",A,"•")):(0,l.kq)("",!0),(0,c.SU)(n)?((0,l.wg)(),(0,l.iD)("div",U,[(0,l._)("a",{href:`mailto:${(0,c.SU)(n)}`},(0,u.zw)(e.$t("common.CONTACT")),9,O)])):(0,l.kq)("",!0),R,(0,l._)("div",I,[(0,l._)("a",g,(0,u.zw)(e.$t("common.DOCUMENTATION")),1)])])])}}}),v=n(3744);const f=(0,v.Z)(w,[["__scopeId","data-v-2c73279e"]]);var N=f,h=n(3324),C=n(6595),D=n(8602),k=n(9917),z=n(6287);const P=e=>((0,l.dD)("data-v-0d4f0b8f"),e=e(),(0,l.Cn)(),e),M={id:"nav"},y={class:"nav-container"},b={class:"nav-app-name"},L={class:"nav-items-close"},G=P((()=>(0,l._)("div",{class:"app-name"},"FitTrackee",-1))),F={key:0,class:"nav-items-group"},W=P((()=>(0,l._)("div",{class:"nav-item nav-separator"},null,-1))),Y={class:"nav-items-user-menu"},x={key:0,class:"nav-items-group"},$={class:"nav-item nav-profile-img"},Z={key:1,class:"nav-items-group"},K=P((()=>(0,l._)("i",{class:"fa fa-language"},null,-1)));var B=(0,l.aZ)({name:"NavBar",emits:["menuInteraction"],setup(e,{emit:t}){const{locale:n}=(0,h.QT)(),a=(0,k.o)(),r=(0,l.Fl)((()=>a.getters[D.YN.GETTERS.AUTH_USER_PROFILE])),s=(0,l.Fl)((()=>a.getters[D.YN.GETTERS.IS_AUTHENTICATED])),o=(0,l.Fl)((()=>a.getters[D.SY.GETTERS.LANGUAGE]));let i=(0,c.iH)(!1);function d(){i.value=!0,t("menuInteraction",!0)}function m(){i.value=!1,t("menuInteraction",!1)}function S(e){n.value=e.value.toString(),a.commit(D.SY.MUTATIONS.UPDATE_LANG,e.value)}function _(){a.dispatch(D.YN.ACTIONS.LOGOUT)}return(e,t)=>{const n=(0,l.up)("router-link"),a=(0,l.up)("Dropdown");return(0,l.wg)(),(0,l.iD)("div",M,[(0,l._)("div",y,[(0,l._)("div",b,[(0,l._)("div",{class:"nav-item app-name",onClick:t[0]||(t[0]=t=>e.$router.push("/"))}," FitTrackee ")]),(0,l._)("div",{class:(0,u.C_)(["nav-icon-open",{"menu-open":(0,c.SU)(i)}])},[(0,l._)("i",{class:"fa fa-bars hamburger-icon",onClick:t[1]||(t[1]=e=>d())})],2),(0,l._)("div",{class:(0,u.C_)(["nav-items",{"menu-open":(0,c.SU)(i)}])},[(0,l._)("div",L,[G,(0,l._)("i",{class:(0,u.C_)(["fa fa-close close-icon nav-item",{"menu-closed":!(0,c.SU)(i)}]),onClick:t[2]||(t[2]=e=>m())},null,2)]),(0,l._)("div",{class:"nav-items-app-menu",onClick:t[3]||(t[3]=e=>m())},[(0,c.SU)(s)?((0,l.wg)(),(0,l.iD)("div",F,[(0,l.Wm)(n,{class:"nav-item",to:"/"},{default:(0,l.w5)((()=>[(0,l.Uk)((0,u.zw)(e.$t("dashboard.DASHBOARD")),1)])),_:1}),(0,l.Wm)(n,{class:"nav-item",to:"/workouts"},{default:(0,l.w5)((()=>[(0,l.Uk)((0,u.zw)((0,u.kC)(e.$t("workouts.WORKOUT",2))),1)])),_:1}),(0,l.Wm)(n,{class:"nav-item",to:"/statistics"},{default:(0,l.w5)((()=>[(0,l.Uk)((0,u.zw)(e.$t("statistics.STATISTICS")),1)])),_:1}),(0,l.Wm)(n,{class:"nav-item",to:"/workouts/add"},{default:(0,l.w5)((()=>[(0,l.Uk)((0,u.zw)(e.$t("workouts.ADD_WORKOUT")),1)])),_:1}),(0,c.SU)(s)&&(0,c.SU)(r).admin?((0,l.wg)(),(0,l.j4)(n,{key:0,class:"nav-item",to:"/admin"},{default:(0,l.w5)((()=>[(0,l.Uk)((0,u.zw)(e.$t("admin.ADMIN")),1)])),_:1})):(0,l.kq)("",!0),W])):(0,l.kq)("",!0)]),(0,l._)("div",Y,[(0,c.SU)(s)?((0,l.wg)(),(0,l.iD)("div",x,[(0,l._)("div",$,[(0,l.Wm)(C.Z,{user:(0,c.SU)(r)},null,8,["user"])]),(0,l.Wm)(n,{class:"nav-item",to:"/profile",onClick:m},{default:(0,l.w5)((()=>[(0,l.Uk)((0,u.zw)((0,c.SU)(r).username),1)])),_:1}),(0,l._)("div",{class:"nav-item nav-link",onClick:_},(0,u.zw)(e.$t("user.LOGOUT")),1)])):((0,l.wg)(),(0,l.iD)("div",Z,[(0,l.Wm)(n,{class:"nav-item",to:"/login",onClick:m},{default:(0,l.w5)((()=>[(0,l.Uk)((0,u.zw)(e.$t("user.LOGIN")),1)])),_:1}),(0,l.Wm)(n,{class:"nav-item",to:"/register",onClick:m},{default:(0,l.w5)((()=>[(0,l.Uk)((0,u.zw)(e.$t("user.REGISTER")),1)])),_:1})])),(0,c.SU)(z.mT)&&(0,c.SU)(o)?((0,l.wg)(),(0,l.j4)(a,{key:2,class:"nav-item",options:(0,c.SU)(z.mT),selected:(0,c.SU)(o),onSelected:S},{default:(0,l.w5)((()=>[K])),_:1},8,["options","selected"])):(0,l.kq)("",!0)])],2)])])}}});const H=(0,v.Z)(B,[["__scopeId","data-v-0d4f0b8f"]]);var q=H,j=n(7167);const V={id:"no-config"},X={class:"error-page"},J={class:"error-img"},Q=["innerHTML"];var ee=(0,l.aZ)({name:"NoConfig",setup(e){return(e,t)=>((0,l.wg)(),(0,l.iD)("div",V,[(0,l._)("div",X,[(0,l._)("div",J,[(0,l.Wm)(j.Z)]),(0,l._)("p",{class:"error-message",innerHTML:e.$t("error.APP_ERROR")},null,8,Q)])]))}});const te=(0,v.Z)(ee,[["__scopeId","data-v-47759238"]]);var ne=te;const ae=(0,l._)("div",{id:"top"},null,-1),re={key:0,class:"app-container"},se={class:"app-loading"},oe={class:"container scroll"},ie=(0,l._)("i",{class:"fa fa-chevron-up","aria-hidden":"true"},null,-1),le=[ie];var ce=(0,l.aZ)({name:"App",setup(e){const t=(0,k.o)(),n=(0,l.Fl)((()=>t.getters[D.SY.GETTERS.APP_CONFIG])),a=(0,l.Fl)((()=>t.getters[D.SY.GETTERS.APP_LOADING])),r=(0,c.iH)(!1),s=(0,c.iH)(!1);function o(e){r.value=e}function i(e){return e.getBoundingClientRect().top=0}function d(){window.onscroll=()=>{let e=document.querySelector("#bottom");s.value=null!==e&&i(e)}}function m(){window.scrollTo({top:0,behavior:"smooth"}),setTimeout((()=>{s.value=!1}),300)}return(0,l.wF)((()=>t.dispatch(D.SY.ACTIONS.GET_APPLICATION_CONFIG))),(0,l.bv)((()=>d())),(e,t)=>{const i=(0,l.up)("Loader"),d=(0,l.up)("router-view");return(0,l.wg)(),(0,l.iD)(l.HY,null,[ae,(0,l.Wm)(q,{onMenuInteraction:o}),(0,c.SU)(a)?((0,l.wg)(),(0,l.iD)("div",re,[(0,l._)("div",se,[(0,l.Wm)(i)])])):((0,l.wg)(),(0,l.iD)("div",{key:1,class:(0,u.C_)(["app-container",{"hide-scroll":r.value}])},[(0,c.SU)(n)?((0,l.wg)(),(0,l.j4)(d,{key:0})):((0,l.wg)(),(0,l.j4)(ne,{key:1}))],2)),(0,l._)("div",oe,[(0,l._)("div",{class:(0,u.C_)(["scroll-button",{"display-button":s.value}]),onClick:m},le,2)]),(0,c.SU)(n)?((0,l.wg)(),(0,l.j4)(N,{key:2,version:(0,c.SU)(n)?(0,c.SU)(n).version:"",adminContact:(0,c.SU)(n).admin_contact},null,8,["version","adminContact"])):(0,l.kq)("",!0)],64)}}});const ue=ce;var de=ue,me=n(2540),Se=n(8733),_e=n(12);const Ee={class:"alert-message"},pe=["innerHTML"];var Te=(0,l.aZ)({name:"AlertMessage",props:{message:null},setup(e){const t=e,{message:n}=(0,c.BK)(t);return(e,t)=>((0,l.wg)(),(0,l.iD)("div",Ee,[(0,l._)("div",{innerHTML:e.$t((0,c.SU)(n))},null,8,pe)]))}});const Ae=(0,v.Z)(Te,[["__scopeId","data-v-69d7e4ff"]]);var Ue=Ae,Oe=n(2531);const Re={class:"custom-textarea"},Ie=["id","name","maxLenght","disabled"],ge={class:"remaining-chars"};var we=(0,l.aZ)({name:"CustomTextArea",props:{name:null,charLimit:{default:500},disabled:{type:Boolean,default:!1},input:{default:""}},emits:["updateValue"],setup(e,{emit:t}){const n=e;let a=(0,c.iH)("");function r(e){t("updateValue",e.target.value)}return(0,l.YP)((()=>n.input),(e=>{a.value=e})),(t,n)=>((0,l.wg)(),(0,l.iD)("div",Re,[(0,l.wy)((0,l._)("textarea",{id:e.name,name:e.name,maxLenght:e.charLimit,disabled:e.disabled,"onUpdate:modelValue":n[0]||(n[0]=e=>(0,c.dq)(a)?a.value=e:a=e),onInput:r},null,40,Ie),[[s.nr,(0,c.SU)(a)]]),(0,l._)("div",ge,(0,u.zw)(t.$t("workouts.REMAINING_CHARS"))+": "+(0,u.zw)((0,c.SU)(a).length)+"/"+(0,u.zw)(e.charLimit),1)]))}});const ve=(0,v.Z)(we,[["__scopeId","data-v-3ec2aca2"]]);var fe=ve,Ne=n(3649);const he=(0,l.Uk)(" "+(0,u.zw)(" ")+" ");var Ce=(0,l.aZ)({name:"Distance",props:{distance:null,unitFrom:null,useImperialUnits:{type:Boolean},digits:{default:2},displayUnit:{type:Boolean,default:!0},speed:{type:Boolean,default:!1},strong:{type:Boolean,default:!1}},setup(e){const t=e,{digits:n,displayUnit:a,distance:r,speed:s,strong:o,unitFrom:i,useImperialUnits:d}=(0,c.BK)(t),m=(0,l.Fl)((()=>d.value?Ne.Dl[i.value].defaultTarget:i.value)),S=(0,l.Fl)((()=>d.value?(0,Ne.sC)(r.value,i.value,m.value,n.value):parseFloat(r.value.toFixed(n.value))));return(e,t)=>((0,l.wg)(),(0,l.iD)(l.HY,null,[(0,l._)("span",{class:(0,u.C_)(["distance",{strong:(0,c.SU)(o)}])},(0,u.zw)((0,c.SU)(S)),3),he,(0,c.SU)(a)?((0,l.wg)(),(0,l.iD)("span",{key:0,class:(0,u.C_)(["unit",{strong:(0,c.SU)(o)}])},(0,u.zw)((0,c.SU)(m))+(0,u.zw)((0,c.SU)(s)?"/h":""),3)):(0,l.kq)("",!0)],64))}});const De=(0,v.Z)(Ce,[["__scopeId","data-v-f46ff1d6"]]);var ke=De,ze=n(2119);const Pe={class:"dropdown-wrapper"},Me={key:0,class:"dropdown-list"},ye=["onClick"];var be=(0,l.aZ)({name:"Dropdown",props:{options:null,selected:null},emits:{selected:e=>e},setup(e,{emit:t}){const n=e,a=(0,ze.yj)();let r=(0,c.iH)(!1),s=n.options.map((e=>e));function o(){r.value=!r.value}function i(e){t("selected",e),r.value=!1}return(0,l.YP)((()=>a.path),(()=>r.value=!1)),(t,n)=>((0,l.wg)(),(0,l.iD)("div",Pe,[(0,l._)("div",{class:"dropdown-selected",onClick:o},[(0,l.WI)(t.$slots,"default")]),(0,c.SU)(r)?((0,l.wg)(),(0,l.iD)("ul",Me,[((0,l.wg)(!0),(0,l.iD)(l.HY,null,(0,l.Ko)((0,c.SU)(s),((t,n)=>((0,l.wg)(),(0,l.iD)("li",{class:(0,u.C_)(["dropdown-item",{selected:t.value===e.selected}]),key:n,onClick:e=>i(t)},(0,u.zw)(t.label),11,ye)))),128))])):(0,l.kq)("",!0)]))}});const Le=(0,v.Z)(be,[["__scopeId","data-v-ca61364c"]]);var Ge=Le;const Fe={class:"error-message"},We={key:0},Ye={key:1};var xe=(0,l.aZ)({name:"ErrorMessage",props:{message:null},setup(e){const t=e,{message:n}=(0,c.BK)(t);return(e,t)=>((0,l.wg)(),(0,l.iD)("div",Fe,[Array.isArray((0,c.SU)(n))?((0,l.wg)(),(0,l.iD)("ul",We,[((0,l.wg)(!0),(0,l.iD)(l.HY,null,(0,l.Ko)((0,c.SU)(n),((t,n)=>((0,l.wg)(),(0,l.iD)("li",{key:n},(0,u.zw)(e.$t(t)),1)))),128))])):((0,l.wg)(),(0,l.iD)("div",Ye,(0,u.zw)(e.$t((0,c.SU)(n))),1))]))}});const $e=(0,v.Z)(xe,[["__scopeId","data-v-2659a79a"]]);var Ze=$e;const Ke={version:"1.1",id:"Capa_1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",x:"0px",y:"0px",viewBox:"0 0 491.737 491.737",style:{"enable-background":"new 0 0 491.737 491.737"},"xml:space":"preserve"},Be=(0,l._)("desc",{id:"cyclingSportDescription"}," silhouette of a person riding a bicycle ",-1),He=(0,l._)("g",null,[(0,l._)("path",{d:"M321.097,112.359c20.973,12.338,47.985,5.315,60.293-15.652c12.34-20.973,5.35-47.974-15.623-60.304\n\t\tc-21.009-12.332-47.99-5.317-60.314,15.65C293.129,73.036,300.103,100.027,321.097,112.359z"}),(0,l._)("path",{d:"M393.081,264.102c-2.414,0-4.8,0.194-7.169,0.362l-14.431-71.605l4.702-1.757c10.666-3.987,16.093-15.868,12.098-26.54\n\t\tc-3.994-10.681-15.946-16.084-26.531-12.09l-51.823,19.38l-2.321-18.864c6.3-13.193,5.541-29.78-4.767-41.482\n\t\tc-21.224-24.092-47.12-12.508-55.191-5.976l-106.884,86.555l0.016,0.024c-3.319,2.893-6.089,6.485-7.86,10.842\n\t\tc-2.191,5.396-2.596,11.067-1.564,16.384c-8.503,0.669-15.255,7.571-15.255,16.246c0,9.085,7.346,16.44,16.432,16.48l-6.797,15.906\n\t\tc-8.62-2.465-17.674-3.866-27.066-3.866C44.27,264.102,0,308.354,0,362.754c0,54.403,44.27,98.663,98.668,98.663\n\t\tc54.403,0,98.652-44.26,98.652-98.663c0-36.228-19.683-67.867-48.858-85.024l10.957-25.652h17.767l60.281,24.462l-32.201,52.773\n\t\tc-8.297,13.612-3.994,31.382,9.615,39.685c4.691,2.86,9.878,4.229,15,4.229c9.729,0,19.234-4.929,24.677-13.838l29.339-48.095\n\t\tl19.072,11.511c-5.447,12.227-8.54,25.726-8.54,39.95c0,54.403,44.254,98.663,98.652,98.663c54.402,0,98.656-44.26,98.656-98.663\n\t\tC491.737,308.354,447.483,264.102,393.081,264.102z M98.668,436.671c-40.756,0-73.923-33.161-73.923-73.917\n\t\tc0-40.756,33.167-73.909,73.923-73.909c5.944,0,11.649,0.896,17.188,2.224l-20.476,47.893\n\t\tc-11.758,1.619-20.843,11.598-20.843,23.792c0,13.323,10.808,24.132,24.13,24.132c8.767,0,16.367-4.745,20.589-11.76h52.065\n\t\tC165.395,409.988,135.188,436.671,98.668,436.671z M171.322,350.383h-52.065c-0.355-0.588-0.708-1.176-1.112-1.732l20.476-47.901\n\t\tC155.679,311.776,167.793,329.595,171.322,350.383z M296.781,290.175l7.666-12.564c4.416-7.233,5.431-16.038,2.774-24.084\n\t\tc-2.661-8.046-8.718-14.515-16.562-17.704l-52.725-21.395l32.443-26.281l1.804,14.691c0.756,6.267,4.366,11.841,9.761,15.12\n\t\tc3.271,1.981,6.979,2.988,10.698,2.988c2.435,0,4.88-0.435,7.218-1.306l48.15-18.001l13.627,67.691\n\t\tc-18.268,6.162-34.117,17.51-45.848,32.314L296.781,290.175z M375.396,337.633l-38.003-22.94\n\t\tc7.877-9.118,17.787-16.319,29.205-20.734L375.396,337.633z M393.081,436.671c-40.757,0-73.907-33.161-73.907-73.917\n\t\tc0-9.544,1.965-18.597,5.268-26.983l44.541,26.888c0,0.032-0.016,0.064-0.016,0.095c0,13.323,10.808,24.132,24.114,24.132\n\t\tc13.322,0,24.118-10.81,24.118-24.132c0-10.478-6.721-19.307-16.06-22.64l-10.277-51.043c0.756-0.024,1.463-0.226,2.22-0.226\n\t\tc40.757,0,73.911,33.153,73.911,73.909C466.992,403.51,433.838,436.671,393.081,436.671z"})],-1),qe=[Be,He];function je(e,t,n,a,r,s){return(0,l.wg)(),(0,l.iD)("svg",Ke,qe)}var Ve={name:"CyclingSport"};const Xe=(0,v.Z)(Ve,[["render",je]]);var Je=Xe;const Qe={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"},et=(0,l._)("desc",{id:"cyclingTransportDescription"}," silhouette of a person riding a bicycle (for transportation) ",-1),tt=(0,l._)("g",{id:"g147"},[(0,l._)("path",{d:"m 189.097,82.359 c 20.97701,12.331184 47.97442,5.308784 60.293,-15.652 12.32942,-20.979222 5.35418,-47.981117 -15.623,-60.304 -21.00482,-12.3391184 -47.99,-5.317 -60.314,15.65 -12.324,20.983 -5.34599,47.967183 15.644,60.306 z",id:"path143"}),(0,l._)("path",{d:"m 393.081,264.102 c -2.414,0 -4.8,0.194 -7.169,0.362 l -14.431,-71.605 4.702,-1.757 c 10.666,-3.987 16.093,-15.868 12.098,-26.54 -3.994,-10.681 -15.946,-16.084 -26.531,-12.09 l -63.05508,-1.53717 C 284.04753,137.09803 248.90259,106.55858 243.33317,101.62481 217.77732,75.090916 186.1698,85.012419 178.0988,91.544419 L 140.764,192.085 l 0.016,0.024 c -3.319,2.893 -6.089,6.485 -7.86,10.842 -2.191,5.396 -2.596,11.067 -1.564,16.384 -8.503,0.669 -15.255,7.571 -15.255,16.246 0,9.085 7.346,16.44 16.432,16.48 l -6.797,15.906 c -8.62,-2.465 -17.674,-3.866 -27.066,-3.866 C 44.27,264.102 0,308.354 0,362.754 c 0,54.403 44.27,98.663 98.668,98.663 54.403,0 98.652,-44.26 98.652,-98.663 0,-36.228 -19.683,-67.867 -48.858,-85.024 l 10.957,-25.652 h 17.767 l 60.281,24.462 -32.201,52.773 c -8.297,13.612 -3.994,31.382 9.615,39.685 4.691,2.86 9.878,4.229 15,4.229 9.729,0 19.234,-4.929 24.677,-13.838 l 29.339,-48.095 19.072,11.511 c -5.447,12.227 -8.54,25.726 -8.54,39.95 0,54.403 44.254,98.663 98.652,98.663 54.402,0 98.656,-44.26 98.656,-98.663 0,-54.401 -44.254,-98.653 -98.656,-98.653 z M 98.668,436.671 c -40.756,0 -73.923,-33.161 -73.923,-73.917 0,-40.756 33.167,-73.909 73.923,-73.909 5.944,0 11.649,0.896 17.188,2.224 L 95.38,338.962 c -11.758,1.619 -20.843,11.598 -20.843,23.792 0,13.323 10.808,24.132 24.13,24.132 8.767,0 16.367,-4.745 20.589,-11.76 h 52.065 c -5.926,34.862 -36.133,61.545 -72.653,61.545 z m 72.654,-86.288 h -52.065 c -0.355,-0.588 -0.708,-1.176 -1.112,-1.732 l 20.476,-47.901 c 17.058,11.026 29.172,28.845 32.701,49.633 z m 125.459,-60.208 7.666,-12.564 c 4.416,-7.233 5.431,-16.038 2.774,-24.084 -2.661,-8.046 -8.718,-14.515 -16.562,-17.704 l -73.83357,-31.7176 16.7558,-45.21274 c 10.36934,4.13303 41.82171,27.90767 45.77423,28.08592 3.271,1.981 8.57725,1.46711 12.29625,1.46711 2.435,0 18.50584,0.70472 20.84384,-0.16628 L 343.32113,188.03378 361.635,269.33 c -18.268,6.162 -34.117,17.51 -45.848,32.314 z m 78.615,47.458 -38.003,-22.94 c 7.877,-9.118 17.787,-16.319 29.205,-20.734 z m 17.685,99.038 c -40.757,0 -73.907,-33.161 -73.907,-73.917 0,-9.544 1.965,-18.597 5.268,-26.983 l 44.541,26.888 c 0,0.032 -0.016,0.064 -0.016,0.095 0,13.323 10.808,24.132 24.114,24.132 13.322,0 24.118,-10.81 24.118,-24.132 0,-10.478 -6.721,-19.307 -16.06,-22.64 l -10.277,-51.043 c 0.756,-0.024 1.463,-0.226 2.22,-0.226 40.757,0 73.911,33.153 73.911,73.909 -10e-4,40.756 -33.155,73.917 -73.912,73.917 z",id:"path145"})],-1),nt=[et,tt];function at(e,t,n,a,r,s){return(0,l.wg)(),(0,l.iD)("svg",Qe,nt)}var rt={name:"CyclingTransport"};const st=(0,v.Z)(rt,[["render",at]]);var ot=st;const it={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"},lt=(0,l._)("desc",{id:"hikingDescription"},"silhouette of a person hiking",-1),ct=(0,l._)("g",null,[(0,l._)("path",{d:"M246.413,78.492c21.688,0,39.255-17.573,39.255-39.251c0-21.67-17.567-39.24-39.255-39.24\n\t\tc-21.652,0-39.242,17.57-39.242,39.24C207.171,60.919,224.761,78.492,246.413,78.492z"}),(0,l._)("path",{d:"M386.604,202.858c0-11.185-9.066-20.251-20.253-20.251h-68.479l-38.62-54.832l0.127-0.933\n\t\tc1.378-10.474-1.474-21.067-7.911-29.444c-6.441-8.378-15.932-13.852-26.408-15.23c-11.596-1.511-22.592,2.224-30.852,9.225V45.779\n\t\tc0-7.847-6.362-14.217-14.225-14.217H140.59c-7.867,0-14.225,6.37-14.225,14.217v168.953c0,20.68,15.821,37.476,35.979,39.446\n\t\tl-3.043,7.073l-23.859,90.136l-53.73,72.188c-8.006,10.768-5.794,25.987,4.984,34.001c4.348,3.245,9.443,4.811,14.491,4.811\n\t\tc7.422,0,14.729-3.385,19.511-9.795l56.529-75.945c1.851-2.484,3.213-5.299,4.003-8.289l16.266-61.414l44.521,40.877l-6.076,88.603\n\t\tc-0.917,13.393,9.177,24.99,22.58,25.908c0.552,0.04,1.124,0.056,1.691,0.056c12.66,0,23.339-9.819,24.208-22.642l6.882-100.264\n\t\tc0.508-7.364-2.371-14.572-7.815-19.564l-45.994-42.219l13.992-90.613l19.331,27.435c3.801,5.387,9.972,8.592,16.552,8.592h70.882\n\t\tl1.339,232.294c0,4.478,3.626,8.101,8.101,8.101c4.479,0,8.101-3.624,8.101-8.101l-1.339-234.036\n\t\tC381.588,218.245,386.604,211.15,386.604,202.858z"})],-1),ut=[lt,ct];function dt(e,t,n,a,r,s){return(0,l.wg)(),(0,l.iD)("svg",it,ut)}var mt={name:"Hiking"};const St=(0,v.Z)(mt,[["render",dt]]);var _t=St;const Et={version:"1.1",id:"Capa_1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",x:"0px",y:"0px",viewBox:"0 0 503.162 503.162",style:{"enable-background":"new 0 0 503.162 503.162"},"xml:space":"preserve"},pt=(0,l._)("desc",{id:"mountainBikingDescription"}," silhouette of a person riding a mountain bike ",-1),Tt=(0,l._)("g",null,[(0,l._)("g",null,[(0,l._)("path",{d:"M149.951,67.997c15.711-7.143,22.739-25.675,15.596-41.416c-7.124-15.701-25.723-22.682-41.453-15.539\n\t\t\tc-15.721,7.134-22.702,25.752-15.578,41.444C115.679,68.216,134.23,75.14,149.951,67.997z"}),(0,l._)("path",{d:"M87.517,89.072l-32.828,87.755c-1.979,5.967-1.683,12.594,1.1,18.733c4.055,8.922,12.604,14.525,21.755,15.271\n\t\t\tl76.873,6.244l29.137,64.184c4.122,9.046,14.832,13.148,23.906,9.017c9.075-4.131,13.072-14.859,8.951-23.944l-36.424-80.201\n\t\t\tc0,0-3.605-13.76-21.343-14.133l-43.873-2.572l21.009-55.166l31.671,20.588c5.584,3.663,10.997,3.682,15.1,1.722l55.051-24.997\n\t\t\tc17.069-7.755,6.952-30.036-10.108-22.29l-47.506,21.707l-53.55-34.846c0,0-11.638-8.013-24.241-2.285\n\t\t\tC102.205,73.858,91.112,77.243,87.517,89.072z"}),(0,l._)("path",{d:"M423.687,182.488l-2.61,15.042c-2.123,12.154-13.35,25.092-25.092,28.888l-3.711,1.195\n\t\t\tc3.041-16.543,1.282-34.148-6.215-50.633c-19.498-42.974-70.094-61.87-112.943-42.419\n\t\t\tc-42.878,19.479-61.936,70.017-42.438,112.981c17.069,37.562,57.881,56.744,96.534,47.966l-0.784,1.415\n\t\t\tc-5.968,10.796-20.817,19.221-33.144,18.8l-17.892-0.622c-12.336-0.411-30.514,5.002-40.603,12.116l-22.376,15.759\n\t\t\tc-10.107,7.104-28.276,12.632-40.612,12.354l-12.001-0.277c12.718-22.845,14.889-51.159,3.242-76.806\n\t\t\tc-19.517-42.955-70.074-61.879-113.019-42.381c-42.792,19.44-61.87,70.007-42.372,112.933\n\t\t\tc16.667,36.711,56.084,55.788,93.914,48.444l-1.32,2.056c-6.675,10.385-22.08,18.398-34.406,17.92l-32.79-1.291\n\t\t\tc-12.326-0.497-24.021,8.97-26.096,21.143l-2.62,15.339c-0.564,3.271-0.354,6.11,0.401,8.501c-0.43,1.778-0.736,3.548-0.736,5.326\n\t\t\tv9.562c0,10.557,8.568,19.125,19.125,19.125h460.932c10.557,0,19.115-8.568,19.106-19.125l-0.125-167.507\n\t\t\tc0-2.782-0.593-5.221-1.616-7.286c1.396-3.806,2.057-7.841,1.598-11.839l-4.677-40.497c-1.415-12.249-9.763-29.146-18.637-37.724\n\t\t\tl-36.127-34.951C434.712,167.418,425.79,170.325,423.687,182.488z"})])],-1),At=[pt,Tt];function Ut(e,t,n,a,r,s){return(0,l.wg)(),(0,l.iD)("svg",Et,At)}var Ot={name:"MountainBiking"};const Rt=(0,v.Z)(Ot,[["render",Ut]]);var It=Rt;const gt={version:"1.1",id:"Capa_1",xmlns:"http://www.w3.org/2000/svg","xmlns:svg":"http://www.w3.org/2000/svg",x:"0px",y:"0px",viewBox:"0 0 503.162 503.162",style:{"enable-background":"new 0 0 503.162 503.162"},"xml:space":"preserve"},wt=(0,l.uE)(' silhouette of a person riding an electric mountain bike ',18),vt=[wt];function ft(e,t,n,a,r,s){return(0,l.wg)(),(0,l.iD)("svg",gt,vt)}var Nt={name:"MountainBikingElectric"};const ht=(0,v.Z)(Nt,[["render",ft]]);var Ct=ht;const Dt={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"},kt=(0,l._)("desc",{id:"rowingDescription"},"silhouette of a person rowing",-1),zt=(0,l._)("g",null,[(0,l._)("g",null,[(0,l._)("path",{d:"M70.517,393.857h132.622l-67.205,68.631c-3.28,3.385-3.204,8.797,0.172,12.076c1.597,1.568,3.72,2.43,5.958,2.43\n\t\t\tc2.305,0,4.533-0.947,6.12-2.572l78.881-80.555h221.315c12.45,0,30.676-6.006,40.296-13.914\n\t\t\tc8.788-7.229,19.049-16.217,26.345-24.299c10.375-9.811,22.214-23.639-4.255-22.834c-6.98,0.248-206.789,0.02-223.926,0\n\t\t\tl47.144-48.139l22.176-22.032l28.209,9.17c10.414,3.385,22.472-0.803,26.919-9.362c4.446-8.558,0.268-18.407-9.343-21.993\n\t\t\tl-17.404-6.512l54.698-54.774c12.507,6.617,28.362,4.867,38.899-5.671l46.541-46.607c13.11-13.015,13.11-33.957,0-46.923\n\t\t\tc-12.909-13.034-34.042-13.034-46.942,0l-46.512,46.598c-10.892,10.815-12.508,27.139-5.26,39.742l-57.853,59.077L253.744,183.09\n\t\t\tc-1.482-0.851-14.153-5.786-26.833-10.643c-14.898-5.719-30.371,0.583-34.53,13.971l-7.525,24.241l-35.324,118.451\n\t\t\tc-0.468,1.34-0.603,2.562-0.746,3.711H14.136c-12.45,0-17.662,8.836-11.618,19.727l23.237,21.592\n\t\t\tC39.123,385.068,58.066,393.857,70.517,393.857z M272.63,248.727c1.797-5.967,8.099-9.39,14.075-7.64l51.37,14.975l-33.038,33.737\n\t\t\tl-43.453,43.012h-14.2L272.63,248.727z"}),(0,l._)("circle",{cx:"248.953",cy:"109.842",r:"52.326"})])],-1),Pt=[kt,zt];function Mt(e,t,n,a,r,s){return(0,l.wg)(),(0,l.iD)("svg",Dt,Pt)}var yt={name:"Rowing"};const bt=(0,v.Z)(yt,[["render",Mt]]);var Lt=bt;const Gt={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"},Ft=(0,l._)("desc",{id:"runningDescription"},"silhouette of a running person",-1),Wt=(0,l._)("g",null,[(0,l._)("path",{d:"M282.74,80.771c22.318,0,40.401-18.08,40.401-40.389C323.141,18.084,305.058,0,282.74,0\n\t\tc-22.281,0-40.378,18.084-40.378,40.383C242.362,62.691,260.458,80.771,282.74,80.771z"}),(0,l._)("path",{d:"M400.207,188.547H331.47l-38.766-55.03l0.123-0.944c1.384-10.514-1.475-21.146-7.94-29.556\n\t\tc-6.461-8.409-16.007-13.903-26.52-15.287c-10.926-1.429-22.619,3.12-31.206,8.646c-1.441,0.928-84.97,54.921-84.97,54.921\n\t\tc-5.175,3.358-8.542,8.877-9.165,15.016c-0.634,6.13,1.574,12.222,5.976,16.541l58.982,58l-6.417,48.954l-18.707,65.584l-67.8-19.4\n\t\tc-12.911-3.676-26.44,3.796-30.159,16.747c-3.699,12.951,3.799,26.459,16.758,30.168l91.271,26.109\n\t\tc2.192,0.627,4.444,0.936,6.7,0.936c4.113,0,8.195-1.04,11.848-3.073c5.655-3.146,9.833-8.409,11.611-14.635l21.963-77.057\n\t\tl26.365,36.639l6.684,119.628c0.73,12.991,11.501,23.036,24.349,23.036c0.441,0,0.92-0.016,1.379-0.039\n\t\tc13.453-0.748,23.745-12.262,23-25.713l-7.083-126.736c-0.271-4.643-1.846-9.116-4.56-12.887l-32.24-44.811l11.959-91.279\n\t\tl19.409,27.555c3.794,5.407,10.005,8.624,16.613,8.624h79.28c11.226,0,20.326-9.101,20.326-20.329\n\t\tC420.533,197.647,411.432,188.547,400.207,188.547z M204.606,190.357l-19.026-18.717l23.476-15.206L204.606,190.357z"})],-1),Yt=[Ft,Wt];function xt(e,t,n,a,r,s){return(0,l.wg)(),(0,l.iD)("svg",Gt,Yt)}var $t={name:"Running"};const Zt=(0,v.Z)($t,[["render",xt]]);var Kt=Zt;const Bt={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"},Ht=(0,l._)("desc",{id:"alpineSkiingDescription"},"silhouette of a person skiing",-1),qt=(0,l._)("g",null,[(0,l._)("g",null,[(0,l._)("path",{d:"M14.314,351.859L408.088,461.78c4.484,1.311,9.104,1.97,13.731,1.97l0,0c17.471,0,33.746-9.429,42.467-24.604\n\t\t\tc2.716-4.724,3.137-10.27,1.157-15.214c-1.912-4.762-5.767-8.31-10.576-9.744c-7.373-2.237-15.481,1.109-22.146,9.229\n\t\t\tc-3.548,4.303-9.496,6.244-15.07,4.714l-136.467-38.078c1.396-0.555,2.812-1.195,4.236-2.065l103.266-63.15\n\t\t\tc15.443-9.362,18.493-33.957,7.812-43.883l-64.758-60.233l39.972-21.688l69.682,9.744c5.23,0.736,9.744-2.037,10.079-6.187\n\t\t\tc0.344-4.141-3.624-8.1-8.855-8.826l-48.605-6.828l22.472-12.192c39.895-23.275,5.823-85.192-35.334-63.112l-87.554,61.19\n\t\t\tl-117.503-16.515l2.543-12.087c0.545-2.582-1.109-5.116-3.691-5.661c-2.572-0.593-5.116,1.1-5.661,3.701l-2.678,12.709\n\t\t\tl-18.331-2.582c-5.231-0.727-9.467,2.123-9.467,6.369s4.236,8.281,9.467,9.017l15.176,2.123l-2.544,12.087\n\t\t\tc-0.545,2.582,1.109,5.125,3.691,5.671c0.334,0.076,0.66,0.105,0.994,0.105c2.209,0,4.198-1.54,4.676-3.787l2.678-12.737\n\t\t\tl102.414,14.315l-5.308,3.72c-4.332,3.022-10.155,9.151-11.723,14.201c-3.844,12.45-1.473,26.717,10.452,37.705l68.802,62.175\n\t\t\tc0,0-50.978,31.776-74.998,46.397c-14.219,8.606-13.674,23.858-6.129,33.393L23.705,318.199\n\t\t\tc-10.012-2.792-20.569,2.554-23.113,11.695C-2,339.169,4.159,349.029,14.314,351.859z"}),(0,l._)("path",{d:"M450.842,72.003c-15.291,16.715-14.201,42.667,2.639,58.121c16.706,15.31,42.716,14.086,58.073-2.668\n\t\t\tc15.386-16.677,14.172-42.734-2.544-58.016C492.305,54.064,466.17,55.192,450.842,72.003z"})])],-1),jt=[Ht,qt];function Vt(e,t,n,a,r,s){return(0,l.wg)(),(0,l.iD)("svg",Bt,jt)}var Xt={name:"SkiingAlpine"};const Jt=(0,v.Z)(Xt,[["render",Vt]]);var Qt=Jt;const en={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"},tn=(0,l._)("desc",{id:"crossCountrySkiingDescription"}," silhouette of a person skiing (cross country) ",-1),nn=(0,l._)("g",null,[(0,l._)("path",{d:"M241.313,246.906h-39.564l0.456-1.273c5.62-18.374,3.479-37.58-6.027-54.278c-5.653-9.929-13.443-18.018-22.745-23.959\n\t\tl12.886-51.126c3.035-12.05-4.272-24.266-16.322-27.301c-2.634-0.664-5.278-0.826-7.833-0.559\n\t\tc-0.151-0.011-0.299-0.032-0.452-0.038c-26.03-1.077-51.443,8.485-70.33,25.993L41.586,82.855\n\t\tc-4.332-2.741-10.065-1.451-12.806,2.881s-1.451,10.065,2.88,12.806l47.625,30.136c-2.557,6.013-0.962,13.224,4.375,17.531\n\t\tc2.774,2.24,6.104,3.33,9.413,3.33c4.377-0.001,8.717-1.907,11.68-5.579l0.478-0.591c8.686-10.766,20.465-18.479,33.484-22.317\n\t\tl-11.095,44.046c-1.061,4.214-0.854,8.448,0.374,12.305c-12.908,17.917-28.398,33.68-46.198,46.979l-14.649,10.727\n\t\tc-3.938,2.943-6.001,7.798-6.005,11.798H8.25c-4.556,0-8.083,4.131-8.083,8.688v2.063c0,4.556,3.527,8.25,8.083,8.25h55.188\n\t\th161.375H280c9.113,0,16.167-7.387,16.167-16.5v-2.5H241.313z M153.974,192.398c0.741-0.153,1.471-0.231,2.188-0.457\n\t\tc5.742,3.406,10.53,8.313,13.945,14.311c5.378,9.447,6.59,20.402,3.41,30.797l-1.799,5.674c-0.447,1.461-0.656,3.184-0.657,4.184\n\t\th-69.909C121.581,231.906,139.297,213.274,153.974,192.398z M167,57.938c0-15.378,12.466-27.844,27.844-27.844\n\t\ts27.844,12.466,27.844,27.844s-12.466,27.844-27.844,27.844S167,73.315,167,57.938z"})],-1),an=[tn,nn];function rn(e,t,n,a,r,s){return(0,l.wg)(),(0,l.iD)("svg",en,an)}var sn={name:"SkiingCrossCountry"};const on=(0,v.Z)(sn,[["render",rn]]);var ln=on;const cn={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"},un=(0,l.uE)('silhouette of a person with snowshoes',6),dn=[un];function mn(e,t,n,a,r,s){return(0,l.wg)(),(0,l.iD)("svg",cn,dn)}var Sn={name:"Snowshoes"};const _n=(0,v.Z)(Sn,[["render",mn]]);var En=_n;const pn={version:"1.1",id:"Capa_1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",x:"0px",y:"0px",viewBox:"0 0 535.876 535.876",style:{"enable-background":"new 0 0 535.876 535.876"},"xml:space":"preserve"},Tn=(0,l._)("desc",{id:"trailDescription"},"silhouette of a person running (trail)",-1),An=(0,l._)("g",null,[(0,l._)("g",null,[(0,l._)("path",{d:"M505.204,326.949c-5.805-10.892-15.176-10.862-20.923,0.067l-7.114,13.512c-5.757,10.92-20.416,19.775-32.752,19.775\n\t\t\th-16.753c-12.346,0-29.645,6.847-38.643,15.29l-32.35,30.342l-1.233-105.388c0.822-18.446-10.596-24.634-10.596-24.634\n\t\t\tl-56.543-25.972l33.67-67.645l38.527,22.912c0,0,15.472,9.715,26.727-9.324l37.026-63.093c1.625-3.519,2.094-7.564,1.052-11.609\n\t\t\tc-2.381-9.256-11.81-14.86-21.095-12.479c-4.083,1.042-7.459,3.49-9.754,6.713l-30.772,51.962l-62.777-37.102\n\t\t\tc-4.733-2.716-10.519-3.691-16.257-2.209l-78.345,20.12c-5.03,1.291-8.96,4.762-11.017,9.142l-38.097,76.165\n\t\t\tc-2.591,3.854-3.624,8.73-2.371,13.607c2.285,8.941,11.456,14.363,20.435,12.059c5.04-1.291,8.951-4.743,10.997-9.161\n\t\t\tl35.314-70.858l28.936-7.296l-76.203,149.921l-65.981,16.734c-1.759,0.393-3.48,1.023-5.163,1.836\n\t\t\tc-10.596,5.412-14.679,18.179-9.267,28.803c4.733,9.266,15.252,13.636,24.901,10.978l78.067-20.187\n\t\t\tc18.6-4.093,23.313-14.449,23.313-14.449l30.581-58.79l62.28,35.678l0.593,86.216c0.01,1.08,0.259,2.161,0.421,3.241l-11.6-4.188\n\t\t\tc-11.608-4.188-30.57-4.608-42.361-0.956l-26.135,8.128c-11.79,3.663-30.791,3.338-42.447-0.717l-19.221-6.694\n\t\t\tc-11.657-4.054-28.831-0.984-38.374,6.838L109.9,433.954c-9.544,7.822-26.67,10.72-38.25,6.483L40.84,429.135\n\t\t\tc-11.58-4.256-25.608,1.157-31.336,12.097l-7.21,13.789c-5.728,10.93-0.354,19.794,11.982,19.794H500.27\n\t\t\tc12.336,0,24.309-9.802,26.728-21.907l8.004-39.981c2.409-12.097-0.325-30.733-6.14-41.616L505.204,326.949z"}),(0,l._)("path",{d:"M326.395,126.625c17.806-4.562,28.563-22.721,23.983-40.526c-4.581-17.844-22.74-28.554-40.555-23.983\n\t\t\tc-17.796,4.581-28.535,22.711-23.964,40.535C290.439,120.476,308.599,131.205,326.395,126.625z"})])],-1),Un=[Tn,An];function On(e,t,n,a,r,s){return(0,l.wg)(),(0,l.iD)("svg",pn,Un)}var Rn={name:"Trail"};const In=(0,v.Z)(Rn,[["render",On]]);var gn=In;const wn={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"},vn=(0,l.uE)('silhouette of a walking person',3),fn=[vn];function Nn(e,t,n,a,r,s){return(0,l.wg)(),(0,l.iD)("svg",wn,fn)}var hn={name:"Walking"};const Cn=(0,v.Z)(hn,[["render",Nn]]);var Dn=Cn;const kn=["title"];var zn=(0,l.aZ)({name:"index",props:{sportLabel:null,color:null,title:{default:""}},setup(e){const t=e,{color:n,sportLabel:a,title:r}=(0,c.BK)(t),s=(0,l.f3)("sportColors");return(e,t)=>((0,l.wg)(),(0,l.iD)("div",{class:"sport-img",style:(0,u.j5)({fill:(0,c.SU)(n)?(0,c.SU)(n):(0,c.SU)(s)[(0,c.SU)(a)]}),title:(0,c.SU)(r)?(0,c.SU)(r):e.$t(`sports.${(0,c.SU)(a)}.LABEL`)},["Cycling (Sport)"===(0,c.SU)(a)?((0,l.wg)(),(0,l.j4)(Je,{key:0})):(0,l.kq)("",!0),"Cycling (Transport)"===(0,c.SU)(a)?((0,l.wg)(),(0,l.j4)(ot,{key:1})):(0,l.kq)("",!0),"Hiking"===(0,c.SU)(a)?((0,l.wg)(),(0,l.j4)(_t,{key:2})):(0,l.kq)("",!0),"Mountain Biking"===(0,c.SU)(a)?((0,l.wg)(),(0,l.j4)(It,{key:3})):(0,l.kq)("",!0),"Mountain Biking (Electric)"===(0,c.SU)(a)?((0,l.wg)(),(0,l.j4)(Ct,{key:4})):(0,l.kq)("",!0),"Rowing"===(0,c.SU)(a)?((0,l.wg)(),(0,l.j4)(Lt,{key:5})):(0,l.kq)("",!0),"Running"===(0,c.SU)(a)?((0,l.wg)(),(0,l.j4)(Kt,{key:6})):(0,l.kq)("",!0),"Skiing (Alpine)"===(0,c.SU)(a)?((0,l.wg)(),(0,l.j4)(Qt,{key:7})):(0,l.kq)("",!0),"Skiing (Cross Country)"===(0,c.SU)(a)?((0,l.wg)(),(0,l.j4)(ln,{key:8})):(0,l.kq)("",!0),"Snowshoes"===(0,c.SU)(a)?((0,l.wg)(),(0,l.j4)(En,{key:9})):(0,l.kq)("",!0),"Trail"===(0,c.SU)(a)?((0,l.wg)(),(0,l.j4)(gn,{key:10})):(0,l.kq)("",!0),"Walking"===(0,c.SU)(a)?((0,l.wg)(),(0,l.j4)(Dn,{key:11})):(0,l.kq)("",!0)],12,kn))}});const Pn=zn;var Mn=Pn;const yn={class:"loader"};function bn(e,t){return(0,l.wg)(),(0,l.iD)("div",yn)}const Ln={},Gn=(0,v.Z)(Ln,[["render",bn],["__scopeId","data-v-4c9921ee"]]);var Fn=Gn;const Wn={id:"modal"},Yn={class:"custom-modal"},xn={key:0,class:"modal-message"},$n={key:1,class:"modal-message"},Zn={class:"modal-buttons"};var Kn=(0,l.aZ)({name:"Modal",props:{title:null,message:null,strongMessage:{default:()=>null}},emits:["cancelAction","confirmAction"],setup(e,{emit:t}){const n=e,a=(0,k.o)(),{title:r,message:s,strongMessage:o}=(0,c.BK)(n),i=(0,l.Fl)((()=>a.getters[D.SY.GETTERS.ERROR_MESSAGES]));return(0,l.Ah)((()=>a.commit(D.SY.MUTATIONS.EMPTY_ERROR_MESSAGES))),(e,n)=>{const a=(0,l.up)("i18n-t"),d=(0,l.up)("ErrorMessage"),m=(0,l.up)("Card");return(0,l.wg)(),(0,l.iD)("div",Wn,[(0,l._)("div",Yn,[(0,l.Wm)(m,null,{title:(0,l.w5)((()=>[(0,l.Uk)((0,u.zw)((0,c.SU)(r)),1)])),content:(0,l.w5)((()=>[(0,c.SU)(o)?((0,l.wg)(),(0,l.iD)("div",xn,[(0,l.Wm)(a,{keypath:(0,c.SU)(s)},{default:(0,l.w5)((()=>[(0,l._)("span",null,(0,u.zw)((0,c.SU)(o)),1)])),_:1},8,["keypath"])])):((0,l.wg)(),(0,l.iD)("div",$n,(0,u.zw)((0,c.SU)(s)),1)),(0,c.SU)(i)?((0,l.wg)(),(0,l.j4)(d,{key:2,message:(0,c.SU)(i)},null,8,["message"])):(0,l.kq)("",!0),(0,l._)("div",Zn,[(0,c.SU)(i)?(0,l.kq)("",!0):((0,l.wg)(),(0,l.iD)("button",{key:0,class:"confirm",onClick:n[0]||(n[0]=e=>t("confirmAction"))},(0,u.zw)(e.$t("buttons.YES")),1)),(0,l._)("button",{class:"cancel",onClick:n[1]||(n[1]=e=>t("cancelAction"))},(0,u.zw)(e.$t("buttons."+((0,c.SU)(i)?"CANCEL":"NO"))),1)])])),_:1})])])}}});const Bn=(0,v.Z)(Kn,[["__scopeId","data-v-e8fcfaba"]]);var Hn=Bn;const qn=[{target:Ue,name:"AlertMessage"},{target:Oe.Z,name:"Card"},{target:fe,name:"CustomTextArea"},{target:ke,name:"Distance"},{target:Ge,name:"Dropdown"},{target:Ze,name:"ErrorMessage"},{target:Fn,name:"Loader"},{target:Hn,name:"Modal"},{target:Mn,name:"SportImage"}],jn={mounted:(e,t)=>{e.clickOutsideEvent=function(n){e===n.target||e.contains(n.target)||t.value(n)},document.body.addEventListener("click",e.clickOutsideEvent),document.body.addEventListener("touchstart",e.clickOutsideEvent)},unmounted:function(e){e.clickOutsideEvent&&(document.body.removeEventListener("click",e.clickOutsideEvent),document.body.removeEventListener("touchstart",e.clickOutsideEvent),e.clickOutsideEvent=void 0)}};var Vn=n(631);a.kL.register(a.ZL,a.jn,a.od,a.De,a.Dx,a.u,a.Gu,a.vn,a.uw,a.ST,a.f$,r.Z);const Xn=(0,s.ri)(de).provide("sportColors",Vn.Zo).use(me.Z).use(_e.Z).use(Se.Z).use(o.ZP,{name:"VFullscreen"}).directive("click-outside",jn);qn.forEach((e=>{Xn.component(e.name,e.target)})),Xn.mount("#app")},8733:function(e,t,n){"use strict";n.d(t,{Z:function(){return si}});n(6699);var a=n(2119),r=n(6252),s=n(3577),o=n(9963),i=n(2262),l=n(8602),c=n(9917),u=n(8966);const d=e=>((0,r.dD)("data-v-24ec93e2"),e=e(),(0,r.Cn)(),e),m={id:"admin-app",class:"admin-card"},S=["onSubmit"],_={for:"admin_contact"},E=["value"],p=["disabled"],T={for:"max_users"},A=["disabled"],U={class:"user-limit-help"},O={class:"info-box"},R=d((()=>(0,r._)("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1))),I={for:"max_single_file_size"},g=["disabled"],w={for:"max_zip_file_size"},v=["disabled"],f={for:"gpx_limit_import"},N=["disabled"],h={key:1,class:"form-buttons"},C={class:"confirm",type:"submit"},D=["onClick"],k={key:2,class:"form-buttons"};var z=(0,r.aZ)({name:"AdminApplication",props:{appConfig:null,edition:{type:Boolean,default:!1}},setup(e){const t=e,{edition:n}=(0,i.BK)(t),d=(0,c.o)(),z=(0,a.tv)(),P=(0,i.qj)({admin_contact:"",max_users:0,max_single_file_size:0,max_zip_file_size:0,gpx_limit_import:0}),M=(0,r.Fl)((()=>d.getters[l.SY.GETTERS.ERROR_MESSAGES]));function y(e){Object.keys(P).map((t=>{["max_single_file_size","max_zip_file_size"].includes(t)?P[t]=(0,u.j)(e[t]):P[t]=e[t]}))}function b(){y(t.appConfig),d.commit(l.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),z.push("/admin/application")}function L(){const e=Object.assign({},P);e.max_single_file_size*=1048576,e.max_zip_file_size*=1048576,d.dispatch(l.SY.ACTIONS.UPDATE_APPLICATION_CONFIG,e)}return(0,r.wF)((()=>{t.appConfig&&y(t.appConfig)})),(e,t)=>{const a=(0,r.up)("ErrorMessage"),l=(0,r.up)("Card");return(0,r.wg)(),(0,r.iD)("div",m,[(0,r.Wm)(l,null,{title:(0,r.w5)((()=>[(0,r.Uk)((0,s.zw)(e.$t("admin.APP_CONFIG.TITLE")),1)])),content:(0,r.w5)((()=>[(0,r._)("form",{class:"admin-form",onSubmit:(0,o.iM)(L,["prevent"])},[(0,r._)("label",_,[(0,r.Uk)((0,s.zw)(e.$t("admin.APP_CONFIG.ADMIN_CONTACT"))+": ",1),(0,i.SU)(n)||P.admin_contact?(0,r.wy)(((0,r.wg)(),(0,r.iD)("input",{key:1,id:"admin_contact",name:"admin_contact",type:"email","onUpdate:modelValue":t[0]||(t[0]=e=>P.admin_contact=e),disabled:!(0,i.SU)(n)},null,8,p)),[[o.nr,P.admin_contact]]):((0,r.wg)(),(0,r.iD)("input",{key:0,class:"no-contact",value:e.$t("admin.APP_CONFIG.NO_CONTACT_EMAIL"),disabled:""},null,8,E))]),(0,r._)("label",T,[(0,r.Uk)((0,s.zw)(e.$t("admin.APP_CONFIG.MAX_USERS_LABEL"))+": ",1),(0,r.wy)((0,r._)("input",{id:"max_users",name:"max_users",type:"number",min:"0","onUpdate:modelValue":t[1]||(t[1]=e=>P.max_users=e),disabled:!(0,i.SU)(n)},null,8,A),[[o.nr,P.max_users]])]),(0,r._)("div",U,[(0,r._)("span",O,[R,(0,r.Uk)(" "+(0,s.zw)(e.$t("admin.APP_CONFIG.MAX_USERS_HELP")),1)])]),(0,r._)("label",I,[(0,r.Uk)((0,s.zw)(e.$t("admin.APP_CONFIG.SINGLE_UPLOAD_MAX_SIZE_LABEL"))+": ",1),(0,r.wy)((0,r._)("input",{id:"max_single_file_size",name:"max_single_file_size",type:"number",step:"0.1",min:"0","onUpdate:modelValue":t[2]||(t[2]=e=>P.max_single_file_size=e),disabled:!(0,i.SU)(n)},null,8,g),[[o.nr,P.max_single_file_size]])]),(0,r._)("label",w,[(0,r.Uk)((0,s.zw)(e.$t("admin.APP_CONFIG.ZIP_UPLOAD_MAX_SIZE_LABEL"))+": ",1),(0,r.wy)((0,r._)("input",{id:"max_zip_file_size",name:"max_zip_file_size",type:"number",step:"0.1",min:"0","onUpdate:modelValue":t[3]||(t[3]=e=>P.max_zip_file_size=e),disabled:!(0,i.SU)(n)},null,8,v),[[o.nr,P.max_zip_file_size]])]),(0,r._)("label",f,[(0,r.Uk)((0,s.zw)(e.$t("admin.APP_CONFIG.MAX_FILES_IN_ZIP_LABEL"))+": ",1),(0,r.wy)((0,r._)("input",{id:"gpx_limit_import",name:"gpx_limit_import",type:"number",min:"0","onUpdate:modelValue":t[4]||(t[4]=e=>P.gpx_limit_import=e),disabled:!(0,i.SU)(n)},null,8,N),[[o.nr,P.gpx_limit_import]])]),(0,i.SU)(M)?((0,r.wg)(),(0,r.j4)(a,{key:0,message:(0,i.SU)(M)},null,8,["message"])):(0,r.kq)("",!0),(0,i.SU)(n)?((0,r.wg)(),(0,r.iD)("div",h,[(0,r._)("button",C,(0,s.zw)(e.$t("buttons.SUBMIT")),1),(0,r._)("button",{class:"cancel",onClick:(0,o.iM)(b,["prevent"])},(0,s.zw)(e.$t("buttons.CANCEL")),9,D)])):((0,r.wg)(),(0,r.iD)("div",k,[(0,r._)("button",{class:"confirm",onClick:t[5]||(t[5]=(0,o.iM)((t=>e.$router.push("/admin/application/edit")),["prevent"]))},(0,s.zw)(e.$t("buttons.EDIT")),1),(0,r._)("button",{class:"cancel",onClick:t[6]||(t[6]=(0,o.iM)((t=>e.$router.push("/admin")),["prevent"]))},(0,s.zw)(e.$t("admin.BACK_TO_ADMIN")),1)]))],40,S)])),_:1})])}}}),P=n(3744);const M=(0,P.Z)(z,[["__scopeId","data-v-24ec93e2"]]);var y=M;const b={class:"stat-card"},L={class:"stat-content box"},G={class:"stat-icon"},F={class:"stat-details"},W={class:"stat-huge"},Y={class:"stat"};var x=(0,r.aZ)({name:"StatCard",props:{icon:null,text:null,value:null},setup(e){const t=e,{icon:n,text:a,value:o}=(0,i.BK)(t);return(e,t)=>((0,r.wg)(),(0,r.iD)("div",b,[(0,r._)("div",L,[(0,r._)("div",G,[(0,r._)("i",{class:(0,s.C_)(["fa",`fa-${(0,i.SU)(n)}`])},null,2)]),(0,r._)("div",F,[(0,r._)("div",W,(0,s.zw)((0,i.SU)(o)),1),(0,r._)("div",Y,(0,s.zw)((0,i.SU)(a)),1)])])]))}});const $=x;var Z=$;const K={id:"user-stats"};var B=(0,r.aZ)({name:"AppStatsCards",props:{appStatistics:null},setup(e){const t=e,{appStatistics:n}=(0,i.BK)(t),a=(0,r.Fl)((()=>(0,u.Z)(n.value.uploads_dir_size,!1)));return(e,t)=>((0,r.wg)(),(0,r.iD)("div",K,[(0,r.Wm)(Z,{icon:"users",value:(0,i.SU)(n).users,text:e.$t("admin.USER",(0,i.SU)(n).users)},null,8,["value","text"]),(0,r.Wm)(Z,{icon:"tags",value:(0,i.SU)(n).sports,text:e.$t("workouts.SPORT",(0,i.SU)(n).sports)},null,8,["value","text"]),(0,r.Wm)(Z,{icon:"calendar",value:(0,i.SU)(n).workouts,text:e.$t("workouts.WORKOUT",(0,i.SU)(n).workouts)},null,8,["value","text"]),(0,r.Wm)(Z,{icon:"folder-open",value:(0,i.SU)(a).size,text:(0,i.SU)(a).suffix},null,8,["value","text"])]))}});const H=B;var q=H,j=n(2531);const V=e=>((0,r.dD)("data-v-0dd66f89"),e=e(),(0,r.Cn)(),e),X={id:"admin-menu",class:"center-card"},J={class:"admin-menu description-list"},Q={class:"application-config-details"},ee=V((()=>(0,r._)("br",null,null,-1))),te={class:"registration-status"},ne={key:0,class:"email-sending-status"},ae=V((()=>(0,r._)("i",{class:"fa fa-exclamation-triangle","aria-hidden":"true"},null,-1)));var re=(0,r.aZ)({name:"AdminMenu",props:{appConfig:null,appStatistics:{default:()=>({})}},setup(e){const t=e,{appConfig:n,appStatistics:a}=(0,i.BK)(t);return(e,t)=>{const o=(0,r.up)("router-link");return(0,r.wg)(),(0,r.iD)("div",X,[(0,r.Wm)(j.Z,null,{title:(0,r.w5)((()=>[(0,r.Uk)((0,s.zw)(e.$t("admin.ADMINISTRATION")),1)])),content:(0,r.w5)((()=>[(0,r.Wm)(q,{appStatistics:(0,i.SU)(a)},null,8,["appStatistics"]),(0,r._)("div",J,[(0,r._)("dl",null,[(0,r._)("dt",null,[(0,r.Wm)(o,{to:"/admin/application"},{default:(0,r.w5)((()=>[(0,r.Uk)((0,s.zw)(e.$t("admin.APPLICATION")),1)])),_:1})]),(0,r._)("dd",Q,[(0,r.Uk)((0,s.zw)(e.$t("admin.UPDATE_APPLICATION_DESCRIPTION")),1),ee,(0,r._)("span",te,(0,s.zw)(e.$t("admin.REGISTRATION_"+((0,i.SU)(n).is_registration_enabled?"ENABLED":"DISABLED"))),1),(0,i.SU)(n).is_email_sending_enabled?(0,r.kq)("",!0):((0,r.wg)(),(0,r.iD)("span",ne,[ae,(0,r.Uk)(" "+(0,s.zw)(e.$t("admin.EMAIL_SENDING_DISABLED")),1)]))]),(0,r._)("dt",null,[(0,r.Wm)(o,{to:"/admin/sports"},{default:(0,r.w5)((()=>[(0,r.Uk)((0,s.zw)((0,s.kC)(e.$t("workouts.SPORT",0))),1)])),_:1})]),(0,r._)("dd",null,(0,s.zw)(e.$t("admin.ENABLE_DISABLE_SPORTS")),1),(0,r._)("dt",null,[(0,r.Wm)(o,{to:"/admin/users"},{default:(0,r.w5)((()=>[(0,r.Uk)((0,s.zw)((0,s.kC)(e.$t("admin.USER",0))),1)])),_:1})]),(0,r._)("dd",null,(0,s.zw)(e.$t("admin.ADMIN_RIGHTS_DELETE_USER_ACCOUNT")),1)])])])),_:1})])}}});const se=(0,P.Z)(re,[["__scopeId","data-v-0dd66f89"]]);var oe=se,ie=n(3324),le=n(631);const ce=e=>((0,r.dD)("data-v-6d62af67"),e=e(),(0,r.Cn)(),e),ue={id:"admin-sports",class:"admin-card"},de={class:"responsive-table"},me=ce((()=>(0,r._)("th",null,"#",-1))),Se={class:"text-left"},_e={class:"text-left sport-action"},Ee=ce((()=>(0,r._)("th",null,null,-1))),pe={class:"text-center"},Te=ce((()=>(0,r._)("span",{class:"cell-heading"},"id",-1))),Ae={class:"cell-heading"},Ue={class:"sport-label"},Oe={class:"cell-heading"},Re={class:"text-center"},Ie={class:"cell-heading"},ge={class:"sport-action"},we={class:"cell-heading"},ve={class:"action-button"},fe=["onClick"],Ne={key:0,class:"has-workouts"},he=ce((()=>(0,r._)("i",{class:"fa fa-warning","aria-hidden":"true"},null,-1)));var Ce=(0,r.aZ)({name:"AdminSports",setup(e){const{t:t}=(0,ie.QT)(),n=(0,c.o)(),a=(0,r.Fl)((()=>(0,le.xH)(n.getters[l.O8.GETTERS.SPORTS],t))),u=(0,r.Fl)((()=>n.getters[l.SY.GETTERS.ERROR_MESSAGES]));function d(e,t){n.dispatch(l.O8.ACTIONS.UPDATE_SPORTS,{id:e,isActive:t})}return(e,t)=>{const n=(0,r.up)("SportImage"),l=(0,r.up)("ErrorMessage"),c=(0,r.up)("Card");return(0,r.wg)(),(0,r.iD)("div",ue,[(0,r.Wm)(c,null,{title:(0,r.w5)((()=>[(0,r.Uk)((0,s.zw)(e.$t("admin.SPORTS.TITLE")),1)])),content:(0,r.w5)((()=>[(0,r._)("button",{class:"top-button",onClick:t[0]||(t[0]=(0,o.iM)((t=>e.$router.push("/admin")),["prevent"]))},(0,s.zw)(e.$t("admin.BACK_TO_ADMIN")),1),(0,r._)("div",de,[(0,r._)("table",null,[(0,r._)("thead",null,[(0,r._)("tr",null,[me,(0,r._)("th",null,(0,s.zw)(e.$t("admin.SPORTS.TABLE.IMAGE")),1),(0,r._)("th",Se,(0,s.zw)(e.$t("admin.SPORTS.TABLE.LABEL")),1),(0,r._)("th",null,(0,s.zw)(e.$t("admin.SPORTS.TABLE.ACTIVE")),1),(0,r._)("th",_e,(0,s.zw)(e.$t("admin.ACTION")),1),Ee])]),(0,r._)("tbody",null,[((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)((0,i.SU)(a),(t=>((0,r.wg)(),(0,r.iD)("tr",{key:t.id},[(0,r._)("td",pe,[Te,(0,r.Uk)(" "+(0,s.zw)(t.id),1)]),(0,r._)("td",null,[(0,r._)("span",Ae,(0,s.zw)(e.$t("admin.SPORTS.TABLE.IMAGE")),1),(0,r.Wm)(n,{title:t.translatedLabel,"sport-label":t.label,color:t.color},null,8,["title","sport-label","color"])]),(0,r._)("td",Ue,[(0,r._)("span",Oe,(0,s.zw)(e.$t("admin.SPORTS.TABLE.LABEL")),1),(0,r.Uk)(" "+(0,s.zw)(t.translatedLabel),1)]),(0,r._)("td",Re,[(0,r._)("span",Ie,(0,s.zw)(e.$t("admin.SPORTS.TABLE.ACTIVE")),1),(0,r._)("i",{class:(0,s.C_)("fa fa"+(t.is_active?"-check":"")),"aria-hidden":"true"},null,2)]),(0,r._)("td",ge,[(0,r._)("span",we,(0,s.zw)(e.$t("admin.ACTION")),1),(0,r._)("div",ve,[(0,r._)("button",{class:(0,s.C_)({danger:t.is_active}),onClick:e=>d(t.id,!t.is_active)},(0,s.zw)(e.$t(`buttons.${t.is_active?"DIS":"EN"}ABLE`)),11,fe),t.has_workouts?((0,r.wg)(),(0,r.iD)("span",Ne,[he,(0,r.Uk)(" "+(0,s.zw)(e.$t("admin.SPORTS.TABLE.HAS_WORKOUTS")),1)])):(0,r.kq)("",!0)])])])))),128))])]),(0,i.SU)(u)?((0,r.wg)(),(0,r.j4)(l,{key:0,message:(0,i.SU)(u)},null,8,["message"])):(0,r.kq)("",!0),(0,r._)("button",{onClick:t[1]||(t[1]=(0,o.iM)((t=>e.$router.push("/admin")),["prevent"]))},(0,s.zw)(e.$t("admin.BACK_TO_ADMIN")),1)])])),_:1})])}}});const De=(0,P.Z)(Ce,[["__scopeId","data-v-6d62af67"]]);var ke=De,ze=n(4850),Pe=n(8626),Me=n(6514),ye=n(6595);const be={class:"users-filters"},Le={class:"search-username"},Ge=["onKeyup","placeholder"];var Fe=(0,r.aZ)({name:"UsersNameFilter",emits:["filterOnUsername"],setup(e,{emit:t}){const n=(0,a.yj)(),l=(0,i.iH)(n.query.q?n.query.q:"");function c(){""!==l.value&&t("filterOnUsername",l)}function u(){l.value="",t("filterOnUsername",l.value)}return(e,t)=>((0,r.wg)(),(0,r.iD)("div",be,[(0,r._)("div",Le,[(0,r.wy)((0,r._)("input",{id:"username",name:"username","onUpdate:modelValue":t[0]||(t[0]=e=>l.value=e),onKeyup:(0,o.D2)(c,["enter"]),placeholder:e.$t("user.FILTER_ON_USERNAME")},null,40,Ge),[[o.nr,l.value,void 0,{trim:!0}]]),""!==l.value?((0,r.wg)(),(0,r.iD)("i",{key:0,class:"fa fa-times","aria-hidden":"true",onClick:u})):(0,r.kq)("",!0)]),(0,r._)("i",{class:(0,s.C_)(["fa fa-search",{"fa-disabled":""===l.value}]),"aria-hidden":"true",onClick:c},null,2)]))}});const We=(0,P.Z)(Fe,[["__scopeId","data-v-627a8e91"]]);var Ye=We,xe=n(2766),$e=n(6558);const Ze=e=>((0,r.dD)("data-v-4735c10f"),e=e(),(0,r.Cn)(),e),Ke={id:"admin-users",class:"admin-card"},Be={key:0,class:"no-users"},He={key:1,class:"responsive-table"},qe=Ze((()=>(0,r._)("th",null,"#",-1))),je={class:"left-text"},Ve={class:"left-text"},Xe={class:"left-text"},Je={class:"cell-heading"},Qe={class:"cell-heading"},et={class:"cell-heading"},tt={class:"cell-heading"},nt={class:"text-center"},at={class:"cell-heading"},rt={class:"text-center"},st={class:"cell-heading"},ot={class:"text-center"},it={class:"cell-heading"},lt={class:"text-center"},ct={class:"cell-heading"},ut=["disabled","onClick"];var dt=(0,r.aZ)({name:"AdminUsers",setup(e){const t=(0,c.o)(),n=(0,a.yj)(),u=(0,a.tv)(),d=["is_active","admin","created_at","username","workouts_count"],m="created_at";let S=(0,i.qj)((0,xe.pm)(n.query,d,m));const _=(0,r.Fl)((()=>t.getters[l.YN.GETTERS.AUTH_USER_PROFILE])),E=(0,r.Fl)((()=>t.getters[l.RT.GETTERS.USERS])),p=(0,r.Fl)((()=>t.getters[l.RT.GETTERS.USERS_PAGINATION])),T=(0,r.Fl)((()=>t.getters[l.SY.GETTERS.ERROR_MESSAGES]));function A(e){t.dispatch(l.RT.ACTIONS.GET_USERS,e)}function U(e){R("q",e.value)}function O(e,n){t.dispatch(l.RT.ACTIONS.UPDATE_USER,{username:e,admin:n})}function R(e,t){S[e]=t,"per_page"===e&&(S.page=1),u.push({path:"/admin/users",query:S})}return(0,r.wF)((()=>A(S))),(0,r.Ah)((()=>{t.dispatch(l.RT.ACTIONS.EMPTY_USERS)})),(0,r.YP)((()=>n.query),(e=>{S=(0,xe.pm)(e,d,m,{query:S}),A(S)})),(e,t)=>{const n=(0,r.up)("router-link"),a=(0,r.up)("ErrorMessage"),l=(0,r.up)("Card");return(0,r.wg)(),(0,r.iD)("div",Ke,[(0,r.Wm)(l,null,{title:(0,r.w5)((()=>[(0,r.Uk)((0,s.zw)((0,s.kC)(e.$t("admin.USER",0))),1)])),content:(0,r.w5)((()=>[(0,r._)("button",{class:"top-button",onClick:t[0]||(t[0]=(0,o.iM)((t=>e.$router.push("/admin")),["prevent"]))},(0,s.zw)(e.$t("admin.BACK_TO_ADMIN")),1),(0,r.Wm)(Ye,{onFilterOnUsername:U}),(0,r.Wm)(Pe.Z,{sort:(0,i.SU)(xe.fS),order_by:d,query:(0,i.SU)(S),message:"admin.USERS.SELECTS.ORDER_BY",onUpdateSelect:R},null,8,["sort","query"]),0===(0,i.SU)(E).length?((0,r.wg)(),(0,r.iD)("div",Be,(0,s.zw)(e.$t("user.NO_USERS_FOUND")),1)):((0,r.wg)(),(0,r.iD)("div",He,[(0,r._)("table",null,[(0,r._)("thead",null,[(0,r._)("tr",null,[qe,(0,r._)("th",je,(0,s.zw)(e.$t("user.USERNAME")),1),(0,r._)("th",Ve,(0,s.zw)(e.$t("user.EMAIL")),1),(0,r._)("th",Xe,(0,s.zw)(e.$t("user.PROFILE.REGISTRATION_DATE")),1),(0,r._)("th",null,(0,s.zw)((0,s.kC)(e.$t("workouts.WORKOUT",0))),1),(0,r._)("th",null,(0,s.zw)(e.$t("admin.ACTIVE")),1),(0,r._)("th",null,(0,s.zw)(e.$t("user.ADMIN")),1),(0,r._)("th",null,(0,s.zw)(e.$t("admin.ACTION")),1)])]),(0,r._)("tbody",null,[((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)((0,i.SU)(E),(t=>((0,r.wg)(),(0,r.iD)("tr",{key:t.username},[(0,r._)("td",null,[(0,r._)("span",Je,(0,s.zw)(e.$t("user.PROFILE.PICTURE")),1),(0,r.Wm)(ye.Z,{user:t},null,8,["user"])]),(0,r._)("td",null,[(0,r._)("span",Qe,(0,s.zw)(e.$t("user.USERNAME")),1),(0,r.Wm)(n,{to:`/admin/users/${t.username}`},{default:(0,r.w5)((()=>[(0,r.Uk)((0,s.zw)(t.username),1)])),_:2},1032,["to"])]),(0,r._)("td",null,[(0,r._)("span",et,(0,s.zw)(e.$t("user.EMAIL")),1),(0,r.Uk)(" "+(0,s.zw)(t.email),1)]),(0,r._)("td",null,[(0,r._)("span",tt,(0,s.zw)(e.$t("user.PROFILE.REGISTRATION_DATE")),1),(0,r.Uk)(" "+(0,s.zw)((0,i.SU)(ze.Z)((0,i.SU)($e.eB)(t.created_at,(0,i.SU)(_).timezone),"dd/MM/yyyy HH:mm")),1)]),(0,r._)("td",nt,[(0,r._)("span",at,(0,s.zw)((0,s.kC)(e.$t("workouts.WORKOUT",0))),1),(0,r.Uk)(" "+(0,s.zw)(t.nb_workouts),1)]),(0,r._)("td",rt,[(0,r._)("span",st,(0,s.zw)(e.$t("admin.ACTIVE")),1),(0,r._)("i",{class:(0,s.C_)(`fa fa${t.is_active?"-check":""}-square-o`),"aria-hidden":"true"},null,2)]),(0,r._)("td",ot,[(0,r._)("span",it,(0,s.zw)(e.$t("user.ADMIN")),1),(0,r._)("i",{class:(0,s.C_)(`fa fa${t.admin?"-check":""}-square-o`),"aria-hidden":"true"},null,2)]),(0,r._)("td",lt,[(0,r._)("span",ct,(0,s.zw)(e.$t("admin.ACTION")),1),(0,r._)("button",{class:(0,s.C_)({danger:t.admin}),disabled:t.username===(0,i.SU)(_).username,onClick:e=>O(t.username,!t.admin)},(0,s.zw)(e.$t(`admin.USERS.TABLE.${t.admin?"REMOVE":"ADD"}_ADMIN_RIGHTS`)),11,ut)])])))),128))])]),(0,i.SU)(p).page?((0,r.wg)(),(0,r.j4)(Me.Z,{key:0,path:"/admin/users",pagination:(0,i.SU)(p),query:(0,i.SU)(S)},null,8,["pagination","query"])):(0,r.kq)("",!0),(0,i.SU)(T)?((0,r.wg)(),(0,r.j4)(a,{key:1,message:(0,i.SU)(T)},null,8,["message"])):(0,r.kq)("",!0),(0,r._)("button",{onClick:t[1]||(t[1]=(0,o.iM)((t=>e.$router.push("/admin")),["prevent"]))},(0,s.zw)(e.$t("admin.BACK_TO_ADMIN")),1)]))])),_:1})])}}});const mt=(0,P.Z)(dt,[["__scopeId","data-v-4735c10f"]]);var St=mt,_t=n(2179);const Et={class:"profile-tabs custom-checkboxes-group"},pt={class:"profile-tabs-checkboxes custom-checkboxes"},Tt=["id","name","checked","disabled","onInput"];var At=(0,r.aZ)({name:"UserProfileTabs",props:{tabs:null,selectedTab:null,edition:{type:Boolean},disabled:{type:Boolean,default:!1}},setup(e){const t=e,{tabs:n,selectedTab:a,disabled:o}=(0,i.BK)(t);function l(e){switch(e){case"ACCOUNT":case"PICTURE":return`/profile/edit/${e.toLocaleLowerCase()}`;case"PREFERENCES":case"SPORTS":return`/profile${t.edition?"/edit":""}/${e.toLocaleLowerCase()}`;default:case"PROFILE":return"/profile"+(t.edition?"/edit":"")}}return(e,t)=>((0,r.wg)(),(0,r.iD)("div",Et,[(0,r._)("div",pt,[((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)((0,i.SU)(n),(t=>((0,r.wg)(),(0,r.iD)("div",{class:"profile-tab custom-checkbox",key:t},[(0,r._)("label",null,[(0,r._)("input",{type:"radio",id:t,name:t,checked:(0,i.SU)(a)===t,disabled:(0,i.SU)(o),onInput:n=>e.$router.push(l(t))},null,40,Tt),(0,r._)("span",null,(0,s.zw)(e.$t(`user.PROFILE.TABS.${t}`)),1)])])))),128))])]))}});const Ut=At;var Ot=Ut;const Rt={id:"user-profile"},It={class:"box"};var gt=(0,r.aZ)({name:"index",props:{user:null,tab:null},setup(e){const t=e,{user:n,tab:a}=(0,i.BK)(t),s=["PROFILE","PREFERENCES","SPORTS"];return(e,t)=>{const o=(0,r.up)("router-view");return(0,r.wg)(),(0,r.iD)("div",Rt,[(0,r.Wm)(_t.Z,{user:(0,i.SU)(n)},null,8,["user"]),(0,r._)("div",It,[(0,r.Wm)(Ot,{tabs:s,selectedTab:(0,i.SU)(a),edition:!1},null,8,["selectedTab"]),(0,r.Wm)(o,{user:(0,i.SU)(n)},null,8,["user"])])])}}});const wt=(0,P.Z)(gt,[["__scopeId","data-v-e26535e0"]]);var vt=wt,ft=n(4980),Nt=n(6287);const ht={id:"user-preferences",class:"description-list"},Ct={class:"profile-buttons"};var Dt=(0,r.aZ)({name:"UserPreferences",props:{user:null},setup(e){const t=e,n=(0,r.Fl)((()=>t.user.language?Nt.zK[t.user.language]:Nt.zK.en)),a=(0,r.Fl)((()=>t.user.weekm?"MONDAY":"SUNDAY")),o=(0,r.Fl)((()=>t.user.timezone?t.user.timezone:"Europe/Paris"));return(t,l)=>((0,r.wg)(),(0,r.iD)("div",ht,[(0,r._)("dl",null,[(0,r._)("dt",null,(0,s.zw)(t.$t("user.PROFILE.LANGUAGE"))+":",1),(0,r._)("dd",null,(0,s.zw)((0,i.SU)(n)),1),(0,r._)("dt",null,(0,s.zw)(t.$t("user.PROFILE.TIMEZONE"))+":",1),(0,r._)("dd",null,(0,s.zw)((0,i.SU)(o)),1),(0,r._)("dt",null,(0,s.zw)(t.$t("user.PROFILE.FIRST_DAY_OF_WEEK"))+":",1),(0,r._)("dd",null,(0,s.zw)(t.$t(`user.PROFILE.${(0,i.SU)(a)}`)),1),(0,r._)("dt",null,(0,s.zw)(t.$t("user.PROFILE.UNITS.LABEL"))+":",1),(0,r._)("dd",null,(0,s.zw)(t.$t("user.PROFILE.UNITS."+(e.user.imperial_units?"IMPERIAL":"METRIC"))),1)]),(0,r._)("div",Ct,[(0,r._)("button",{onClick:l[0]||(l[0]=e=>t.$router.push("/profile/edit/preferences"))},(0,s.zw)(t.$t("user.PROFILE.EDIT_PREFERENCES")),1),(0,r._)("button",{onClick:l[1]||(l[1]=e=>t.$router.push("/"))},(0,s.zw)(t.$t("common.HOME")),1)])]))}});const kt=Dt;var zt=kt;const Pt={id:"user-profile-edition",class:"center-card"};var Mt=(0,r.aZ)({name:"index",props:{user:null,tab:null},setup(e){const t=e,n=(0,c.o)(),{user:a,tab:o}=(0,i.BK)(t),u=["PROFILE","ACCOUNT","PICTURE","PREFERENCES","SPORTS"],d=(0,r.Fl)((()=>n.getters[l.YN.GETTERS.USER_LOADING]));return(e,t)=>{const n=(0,r.up)("router-view"),l=(0,r.up)("Card");return(0,r.wg)(),(0,r.iD)("div",Pt,[(0,r.Wm)(l,null,{title:(0,r.w5)((()=>[(0,r.Uk)((0,s.zw)(e.$t(`user.PROFILE.${(0,i.SU)(o)}_EDITION`)),1)])),content:(0,r.w5)((()=>[(0,r.Wm)(Ot,{tabs:u,selectedTab:(0,i.SU)(o),edition:!0,disabled:(0,i.SU)(d)},null,8,["selectedTab","disabled"]),(0,r.Wm)(n,{user:(0,i.SU)(a)},null,8,["user"])])),_:1})])}}});const yt=Mt;var bt=yt,Lt=n(2047);const Gt={id:"user-infos-edition"},Ft={class:"profile-form form-box"},Wt={key:1,class:"info-box success-message"},Yt=["onSubmit"],xt={class:"form-items",for:"email"},$t=["disabled"],Zt={class:"form-items",for:"password-field"},Kt={class:"form-items",for:"new-password-field"},Bt={class:"form-buttons"},Ht={class:"confirm",type:"submit"};var qt=(0,r.aZ)({name:"UserAccountEdition",props:{user:null},setup(e){const t=e,{user:n}=(0,i.BK)(t),a=(0,c.o)(),u=(0,i.qj)({email:"",password:"",new_password:""}),d=(0,r.Fl)((()=>a.getters[l.YN.GETTERS.USER_LOADING])),m=(0,r.Fl)((()=>a.getters[l.SY.GETTERS.APP_CONFIG])),S=(0,r.Fl)((()=>a.getters[l.YN.GETTERS.IS_SUCCESS])),_=(0,i.iH)(!1),E=(0,r.Fl)((()=>a.getters[l.SY.GETTERS.ERROR_MESSAGES])),p=(0,i.iH)(!1),T=(0,i.iH)(!1);function A(){p.value=!0}function U(e){u.email=e.email}function O(e){u.password=e}function R(e){u.new_password=e}function I(){const e={email:u.email,password:u.password};u.new_password&&(e.new_password=u.new_password),_.value=u.email!==n.value.email,a.dispatch(l.YN.ACTIONS.UPDATE_USER_ACCOUNT,e)}function g(e){T.value=e}function w(e){a.dispatch(l.YN.ACTIONS.DELETE_ACCOUNT,{username:e})}return(0,r.bv)((()=>{t.user&&U(t.user)})),(0,r.Ah)((()=>{a.commit(l.YN.MUTATIONS.UPDATE_IS_SUCCESS,!1),a.commit(l.SY.MUTATIONS.EMPTY_ERROR_MESSAGES)})),(0,r.YP)((()=>S.value),(async e=>{e&&(O(""),R(""),U(n.value),p.value=!1)})),(0,r.YP)((()=>n.value.email),(async()=>{U(n.value)})),(e,t)=>{const a=(0,r.up)("Modal"),l=(0,r.up)("ErrorMessage");return(0,r.wg)(),(0,r.iD)("div",Gt,[T.value?((0,r.wg)(),(0,r.j4)(a,{key:0,title:e.$t("common.CONFIRMATION"),message:e.$t("user.CONFIRM_ACCOUNT_DELETION"),onConfirmAction:t[0]||(t[0]=e=>w((0,i.SU)(n).username)),onCancelAction:t[1]||(t[1]=e=>g(!1))},null,8,["title","message"])):(0,r.kq)("",!0),(0,r._)("div",Ft,[(0,i.SU)(E)?((0,r.wg)(),(0,r.j4)(l,{key:0,message:(0,i.SU)(E)},null,8,["message"])):(0,r.kq)("",!0),(0,i.SU)(S)?((0,r.wg)(),(0,r.iD)("div",Wt,(0,s.zw)(e.$t(`user.PROFILE.SUCCESSFUL_${_.value&&(0,i.SU)(m).is_email_sending_enabled?"EMAIL_":""}UPDATE`)),1)):(0,r.kq)("",!0),(0,r._)("form",{class:(0,s.C_)({errors:p.value}),onSubmit:(0,o.iM)(I,["prevent"])},[(0,r._)("label",xt,[(0,r.Uk)((0,s.zw)(e.$t("user.EMAIL"))+"* ",1),(0,r.wy)((0,r._)("input",{id:"email","onUpdate:modelValue":t[2]||(t[2]=e=>u.email=e),disabled:(0,i.SU)(d),required:!0,onInvalid:A},null,40,$t),[[o.nr,u.email]])]),(0,r._)("label",Zt,[(0,r.Uk)((0,s.zw)(e.$t("user.CURRENT_PASSWORD"))+"* ",1),(0,r.Wm)(Lt.Z,{id:"password-field",disabled:(0,i.SU)(d),password:u.password,required:!0,onUpdatePassword:O,onPasswordError:A},null,8,["disabled","password"])]),(0,r._)("label",Kt,[(0,r.Uk)((0,s.zw)(e.$t("user.NEW_PASSWORD"))+" ",1),(0,r.Wm)(Lt.Z,{id:"new-password-field",disabled:(0,i.SU)(d),checkStrength:!0,password:u.new_password,isSuccess:!1,onUpdatePassword:R,onPasswordError:A},null,8,["disabled","password"])]),(0,r._)("div",Bt,[(0,r._)("button",Ht,(0,s.zw)(e.$t("buttons.SUBMIT")),1),(0,r._)("button",{class:"cancel",onClick:t[3]||(t[3]=(0,o.iM)((t=>e.$router.push("/profile")),["prevent"]))},(0,s.zw)(e.$t("buttons.CANCEL")),1),(0,r._)("button",{class:"danger",onClick:t[4]||(t[4]=(0,o.iM)((e=>g(!0)),["prevent"]))},(0,s.zw)(e.$t("buttons.DELETE_MY_ACCOUNT")),1)])],42,Yt)])])}}});const jt=(0,P.Z)(qt,[["__scopeId","data-v-37b8c4c8"]]);var Vt=jt;const Xt={id:"user-infos-edition"},Jt={class:"profile-form form-box"},Qt=["onSubmit"],en={class:"form-items",for:"registrationDate"},tn=["value"],nn={class:"form-items",for:"first_name"},an=["disabled"],rn={class:"form-items",for:"last_name"},sn={class:"form-items",for:"birth_date"},on=["disabled"],ln={class:"form-items",for:"location"},cn=["disabled"],un={class:"form-items"},dn={class:"form-buttons"},mn={class:"confirm",type:"submit"};var Sn=(0,r.aZ)({name:"UserInfosEdition",props:{user:null},setup(e){const t=e,n=(0,c.o)(),a=(0,i.qj)({first_name:"",last_name:"",birth_date:"",location:"",bio:""}),u=(0,r.Fl)((()=>t.user.created_at?(0,ze.Z)(new Date(t.user.created_at),"dd/MM/yyyy HH:mm"):"")),d=(0,r.Fl)((()=>n.getters[l.YN.GETTERS.USER_LOADING])),m=(0,r.Fl)((()=>n.getters[l.SY.GETTERS.ERROR_MESSAGES]));function S(e){a.first_name=e.first_name?e.first_name:"",a.last_name=e.last_name?e.last_name:"",a.birth_date=e.birth_date?(0,ze.Z)(new Date(e.birth_date),"yyyy-MM-dd"):"",a.location=e.location?e.location:"",a.bio=e.bio?e.bio:""}function _(e){a.bio=e}function E(){n.dispatch(l.YN.ACTIONS.UPDATE_USER_PROFILE,a)}return(0,r.bv)((()=>{t.user&&S(t.user)})),(0,r.Ah)((()=>{n.commit(l.SY.MUTATIONS.EMPTY_ERROR_MESSAGES)})),(e,t)=>{const n=(0,r.up)("ErrorMessage"),l=(0,r.up)("CustomTextArea");return(0,r.wg)(),(0,r.iD)("div",Xt,[(0,r._)("div",Jt,[(0,i.SU)(m)?((0,r.wg)(),(0,r.j4)(n,{key:0,message:(0,i.SU)(m)},null,8,["message"])):(0,r.kq)("",!0),(0,r._)("form",{onSubmit:(0,o.iM)(E,["prevent"])},[(0,r._)("label",en,[(0,r.Uk)((0,s.zw)(e.$t("user.PROFILE.REGISTRATION_DATE"))+" ",1),(0,r._)("input",{id:"registrationDate",value:(0,i.SU)(u),disabled:""},null,8,tn)]),(0,r._)("label",nn,[(0,r.Uk)((0,s.zw)(e.$t("user.PROFILE.FIRST_NAME"))+" ",1),(0,r.wy)((0,r._)("input",{id:"first_name","onUpdate:modelValue":t[0]||(t[0]=e=>a.first_name=e),disabled:(0,i.SU)(d)},null,8,an),[[o.nr,a.first_name]])]),(0,r._)("label",rn,[(0,r.Uk)((0,s.zw)(e.$t("user.PROFILE.LAST_NAME"))+" ",1),(0,r.wy)((0,r._)("input",{id:"last_name","onUpdate:modelValue":t[1]||(t[1]=e=>a.last_name=e)},null,512),[[o.nr,a.last_name]])]),(0,r._)("label",sn,[(0,r.Uk)((0,s.zw)(e.$t("user.PROFILE.BIRTH_DATE"))+" ",1),(0,r.wy)((0,r._)("input",{id:"birth_date",type:"date",class:"birth-date","onUpdate:modelValue":t[2]||(t[2]=e=>a.birth_date=e),disabled:(0,i.SU)(d)},null,8,on),[[o.nr,a.birth_date]])]),(0,r._)("label",ln,[(0,r.Uk)((0,s.zw)(e.$t("user.PROFILE.LOCATION"))+" ",1),(0,r.wy)((0,r._)("input",{id:"location","onUpdate:modelValue":t[3]||(t[3]=e=>a.location=e),disabled:(0,i.SU)(d)},null,8,cn),[[o.nr,a.location]])]),(0,r._)("label",un,[(0,r.Uk)((0,s.zw)(e.$t("user.PROFILE.BIO"))+" ",1),(0,r.Wm)(l,{name:"bio",charLimit:200,input:a.bio,disabled:(0,i.SU)(d),onUpdateValue:_},null,8,["input","disabled"])]),(0,r._)("div",dn,[(0,r._)("button",mn,(0,s.zw)(e.$t("buttons.SUBMIT")),1),(0,r._)("button",{class:"cancel",onClick:t[4]||(t[4]=(0,o.iM)((t=>e.$router.push("/profile")),["prevent"]))},(0,s.zw)(e.$t("buttons.CANCEL")),1)])],40,Qt)])])}}});const _n=(0,P.Z)(Sn,[["__scopeId","data-v-b6bacea0"]]);var En=_n;const pn=e=>((0,r.dD)("data-v-3a97bb3c"),e=e(),(0,r.Cn)(),e),Tn={id:"user-picture-edition"},An={class:"user-picture-form"},Un=["onSubmit"],On={class:"picture-help"},Rn={class:"info-box"},In=pn((()=>(0,r._)("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1))),gn={class:"picture-buttons"},wn=["disabled"];var vn=(0,r.aZ)({name:"UserPictureEdition",props:{user:null},setup(e){const t=e,n=(0,c.o)(),{user:a}=(0,i.BK)(t),d=(0,r.Fl)((()=>n.getters[l.SY.GETTERS.ERROR_MESSAGES])),m=(0,r.Fl)((()=>n.getters[l.SY.GETTERS.APP_CONFIG])),S=m.value.max_single_file_size?(0,u.Z)(m.value.max_single_file_size):"";let _=(0,i.iH)(null);function E(){n.dispatch(l.YN.ACTIONS.DELETE_PICTURE)}function p(e){e.target.files&&(_.value=e.target.files[0])}function T(){_.value&&n.dispatch(l.YN.ACTIONS.UPDATE_USER_PICTURE,{picture:_.value})}return(0,r.Ah)((()=>{n.commit(l.SY.MUTATIONS.EMPTY_ERROR_MESSAGES)})),(e,t)=>{const n=(0,r.up)("ErrorMessage");return(0,r.wg)(),(0,r.iD)("div",Tn,[(0,r._)("div",An,[(0,i.SU)(d)?((0,r.wg)(),(0,r.j4)(n,{key:0,message:(0,i.SU)(d)},null,8,["message"])):(0,r.kq)("",!0),(0,r.Wm)(ye.Z,{user:(0,i.SU)(a)},null,8,["user"]),(0,r._)("form",{onSubmit:(0,o.iM)(T,["prevent"])},[(0,r._)("input",{type:"file",name:"picture",accept:".png,.jpg,.gif",onInput:p},null,32),(0,r._)("div",On,[(0,r._)("span",Rn,[In,(0,r.Uk)(" "+(0,s.zw)(e.$t("workouts.MAX_SIZE"))+": "+(0,s.zw)((0,i.SU)(S)),1)])]),(0,r._)("div",gn,[(0,r._)("button",{type:"submit",disabled:!(0,i.SU)(_)},(0,s.zw)(e.$t("user.PROFILE.PICTURE_UPDATE")),9,wn),(0,i.SU)(a).picture?((0,r.wg)(),(0,r.iD)("button",{key:0,class:"danger",onClick:E},(0,s.zw)(e.$t("user.PROFILE.PICTURE_REMOVE")),1)):(0,r.kq)("",!0),(0,r._)("button",{class:"cancel",onClick:t[0]||(t[0]=t=>e.$router.push("/profile"))},(0,s.zw)(e.$t("user.PROFILE.BACK_TO_PROFILE")),1)])],40,Un)])])}}});const fn=(0,P.Z)(vn,[["__scopeId","data-v-3a97bb3c"]]);var Nn=fn;const hn=["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"],Cn={id:"tz-dropdown"},Dn=["value","disabled","onKeydown"],kn=["onClick","onMouseover","autofocus"];var zn=(0,r.aZ)({name:"TimezoneDropdown",props:{input:null,disabled:{type:Boolean,default:!1}},emits:["updateTimezone"],setup(e,{emit:t}){const n=e,{input:a,disabled:l}=(0,i.BK)(n),c=(0,i.iH)(n.input),u=(0,i.iH)(!1),d=(0,i.iH)(null),m=(0,i.iH)(0);function S(e){return e.toLowerCase().match(c.value.toLowerCase())}function _(e){m.value=e}function E(e){c.value=e,u.value=!1,t("updateTimezone",e)}function p(e){e.preventDefault(),d.value?.firstElementChild?.innerHTML&&E(d.value?.firstElementChild?.innerHTML)}function T(e){e.preventDefault(),u.value=!0,c.value=e.target.value.trim()}return(0,r.YP)((()=>n.input),(e=>{c.value=e})),(e,t)=>((0,r.wg)(),(0,r.iD)("div",Cn,[(0,r._)("input",{class:"tz-dropdown-input",id:"timezone",name:"timezone",value:c.value,disabled:(0,i.SU)(l),required:"",onKeydown:[t[0]||(t[0]=(0,o.D2)((e=>E((0,i.SU)(a))),["esc"])),(0,o.D2)(p,["enter"])],onInput:T},null,40,Dn),u.value?((0,r.wg)(),(0,r.iD)("ul",{key:0,class:"tz-dropdown-list",ref_key:"tzList",ref:d},[((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)((0,i.SU)(hn).filter((e=>S(e))),((e,t)=>((0,r.wg)(),(0,r.iD)("li",{key:e,class:(0,s.C_)(["tz-dropdown-item",{focus:t===m.value}]),onClick:t=>E(e),onMouseover:e=>_(t),autofocus:t===m.value},(0,s.zw)(e),43,kn)))),128))],512)):(0,r.kq)("",!0)]))}});const Pn=(0,P.Z)(zn,[["__scopeId","data-v-47ea2903"]]);var Mn=Pn;const yn={id:"user-preferences-edition"},bn={class:"profile-form form-box"},Ln=["onSubmit"],Gn={class:"form-items"},Fn=["disabled"],Wn=["value"],Yn={class:"form-items"},xn={class:"form-items"},$n=["disabled"],Zn=["value"],Kn={class:"form-items"},Bn=["disabled"],Hn=["value"],qn={class:"form-buttons"},jn={class:"confirm",type:"submit"};var Vn=(0,r.aZ)({name:"UserPreferencesEdition",props:{user:null},setup(e){const t=e,n=(0,c.o)(),a=(0,i.qj)({imperial_units:!1,language:"",timezone:"Europe/Paris",weekm:!1}),u=[{label:"MONDAY",value:!0},{label:"SUNDAY",value:!1}],d=[{label:"IMPERIAL",value:!0},{label:"METRIC",value:!1}],m=(0,r.Fl)((()=>n.getters[l.YN.GETTERS.USER_LOADING])),S=(0,r.Fl)((()=>n.getters[l.SY.GETTERS.ERROR_MESSAGES]));function _(e){a.imperial_units=!!e.imperial_units&&e.imperial_units,a.language=e.language?e.language:"en",a.timezone=e.timezone?e.timezone:"Europe/Paris",a.weekm=!!e.weekm&&e.weekm}function E(){n.dispatch(l.YN.ACTIONS.UPDATE_USER_PREFERENCES,a)}function p(e){a.timezone=e}return(0,r.bv)((()=>{t.user&&_(t.user)})),(0,r.Ah)((()=>{n.commit(l.SY.MUTATIONS.EMPTY_ERROR_MESSAGES)})),(e,t)=>{const n=(0,r.up)("ErrorMessage");return(0,r.wg)(),(0,r.iD)("div",yn,[(0,r._)("div",bn,[(0,i.SU)(S)?((0,r.wg)(),(0,r.j4)(n,{key:0,message:(0,i.SU)(S)},null,8,["message"])):(0,r.kq)("",!0),(0,r._)("form",{onSubmit:(0,o.iM)(E,["prevent"])},[(0,r._)("label",Gn,[(0,r.Uk)((0,s.zw)(e.$t("user.PROFILE.LANGUAGE"))+" ",1),(0,r.wy)((0,r._)("select",{id:"language","onUpdate:modelValue":t[0]||(t[0]=e=>a.language=e),disabled:(0,i.SU)(m)},[((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)((0,i.SU)(Nt.mT),(e=>((0,r.wg)(),(0,r.iD)("option",{value:e.value,key:e.value},(0,s.zw)(e.label),9,Wn)))),128))],8,Fn),[[o.bM,a.language]])]),(0,r._)("label",Yn,[(0,r.Uk)((0,s.zw)(e.$t("user.PROFILE.TIMEZONE"))+" ",1),(0,r.Wm)(Mn,{input:a.timezone,disabled:(0,i.SU)(m),onUpdateTimezone:p},null,8,["input","disabled"])]),(0,r._)("label",xn,[(0,r.Uk)((0,s.zw)(e.$t("user.PROFILE.FIRST_DAY_OF_WEEK"))+" ",1),(0,r.wy)((0,r._)("select",{id:"weekm","onUpdate:modelValue":t[1]||(t[1]=e=>a.weekm=e),disabled:(0,i.SU)(m)},[((0,r.wg)(),(0,r.iD)(r.HY,null,(0,r.Ko)(u,(t=>(0,r._)("option",{value:t.value,key:t.value},(0,s.zw)(e.$t(`user.PROFILE.${t.label}`)),9,Zn))),64))],8,$n),[[o.bM,a.weekm]])]),(0,r._)("label",Kn,[(0,r.Uk)((0,s.zw)(e.$t("user.PROFILE.UNITS.LABEL"))+" ",1),(0,r.wy)((0,r._)("select",{id:"imperial_units","onUpdate:modelValue":t[2]||(t[2]=e=>a.imperial_units=e),disabled:(0,i.SU)(m)},[((0,r.wg)(),(0,r.iD)(r.HY,null,(0,r.Ko)(d,(t=>(0,r._)("option",{value:t.value,key:t.value},(0,s.zw)(e.$t(`user.PROFILE.UNITS.${t.label}`)),9,Hn))),64))],8,Bn),[[o.bM,a.imperial_units]])]),(0,r._)("div",qn,[(0,r._)("button",jn,(0,s.zw)(e.$t("buttons.SUBMIT")),1),(0,r._)("button",{class:"cancel",onClick:t[3]||(t[3]=(0,o.iM)((t=>e.$router.push("/profile/preferences")),["prevent"]))},(0,s.zw)(e.$t("buttons.CANCEL")),1)])],40,Ln)])])}}});const Xn=Vn;var Jn=Xn;const Qn={id:"user-sport-preferences"},ea={key:0,class:"responsive-table"},ta={class:"mobile-display"},na={key:0,class:"profile-buttons mobile-display"},aa={key:1,class:"profile-buttons"},ra={class:"text-left"},sa={key:0},oa={class:"cell-heading"},ia=["value"],la={class:"cell-heading"},ca={key:0,class:"disabled-message"},ua={key:1,class:"fa fa-refresh fa-spin fa-fw"},da={class:"cell-heading"},ma={class:"cell-heading"},Sa=["checked"],_a={class:"cell-heading"},Ea=["value"],pa={key:1},Ta={key:0,class:"action-buttons"},Aa={class:"cell-heading"},Ua=["onClick"],Oa={key:1,class:"edition-buttons"},Ra=["disabled"],Ia=["disabled","onClick"],ga=["disabled"],wa={key:0,class:"profile-buttons"},va={key:1,class:"profile-buttons"};var fa=(0,r.aZ)({name:"UserSportPreferences",props:{user:null,isEdition:{type:Boolean}},setup(e){const t=e,n=(0,c.o)(),{t:a}=(0,ie.QT)(),{isEdition:u,user:d}=(0,i.BK)(t),m=(0,r.f3)("sportColors"),S=(0,r.Fl)((()=>n.getters[l.O8.GETTERS.SPORTS])),_=(0,r.Fl)((()=>(0,le.xH)(S.value,a,"is_active",d.value.sports_list))),E=(0,r.Fl)((()=>n.getters[l.YN.GETTERS.USER_LOADING])),p=(0,r.Fl)((()=>n.getters[l.SY.GETTERS.ERROR_MESSAGES])),T=(0,i.qj)({sport_id:0,color:null,is_active:!0,stopped_speed_threshold:1});function A(e){null!==e?(T.sport_id=e.id,T.color=e.color?e.color:m[e.label],T.is_active=e.is_active_for_user,T.stopped_speed_threshold=e.stopped_speed_threshold):g()}function U(e){return T.sport_id===e}function O(e){T.color=e.target.value}function R(e){T.stopped_speed_threshold=parseFloat(e.target.value)}function I(e){T.is_active=e.target.checked}function g(){T.sport_id=0,T.color=null,T.is_active=!0,T.stopped_speed_threshold=1,n.commit(l.SY.MUTATIONS.EMPTY_ERROR_MESSAGES)}function w(e){e.preventDefault(),n.dispatch(l.YN.ACTIONS.UPDATE_USER_SPORT_PREFERENCES,T)}function v(e,t){e.preventDefault(),n.dispatch(l.YN.ACTIONS.RESET_USER_SPORT_PREFERENCES,t)}return(0,r.YP)((()=>E.value),(e=>{e||p.value||g()})),(e,t)=>{const n=(0,r.up)("SportImage"),a=(0,r.up)("ErrorMessage");return(0,r.wg)(),(0,r.iD)("div",Qn,[(0,i.SU)(S).length>0?((0,r.wg)(),(0,r.iD)("div",ea,[(0,r._)("div",ta,[(0,i.SU)(u)?((0,r.wg)(),(0,r.iD)("div",na,[(0,r._)("button",{class:"cancel",onClick:t[0]||(t[0]=(0,o.iM)((t=>e.$router.push("/profile/sports")),["prevent"]))},(0,s.zw)(e.$t("buttons.BACK")),1)])):((0,r.wg)(),(0,r.iD)("div",aa,[(0,r._)("button",{onClick:t[1]||(t[1]=t=>e.$router.push("/profile/edit/sports"))},(0,s.zw)(e.$t("user.PROFILE.EDIT_SPORTS_PREFERENCES")),1),(0,r._)("button",{onClick:t[2]||(t[2]=t=>e.$router.push("/"))},(0,s.zw)(e.$t("common.HOME")),1)]))]),(0,r._)("table",null,[(0,r._)("thead",null,[(0,r._)("tr",null,[(0,r._)("th",null,(0,s.zw)(e.$t("user.PROFILE.SPORT.COLOR")),1),(0,r._)("th",ra,(0,s.zw)(e.$t("workouts.SPORT",0)),1),(0,r._)("th",null,(0,s.zw)(e.$t("workouts.WORKOUT",0)),1),(0,r._)("th",null,(0,s.zw)(e.$t("user.PROFILE.SPORT.IS_ACTIVE")),1),(0,r._)("th",null,(0,s.zw)(e.$t("user.PROFILE.SPORT.STOPPED_SPEED_THRESHOLD")),1),(0,i.SU)(u)?((0,r.wg)(),(0,r.iD)("th",sa,(0,s.zw)(e.$t("user.PROFILE.SPORT.ACTION")),1)):(0,r.kq)("",!0)])]),(0,r._)("tbody",null,[((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)((0,i.SU)(_),(o=>((0,r.wg)(),(0,r.iD)("tr",{key:o.id},[(0,r._)("td",null,[(0,r._)("span",oa,(0,s.zw)(e.$t("user.PROFILE.SPORT.COLOR")),1),U(o.id)?((0,r.wg)(),(0,r.iD)("input",{key:0,class:"sport-color",type:"color",value:T.color,onInput:O},null,40,ia)):((0,r.wg)(),(0,r.j4)(n,{key:1,title:o.translatedLabel,"sport-label":o.label,color:o.color?o.color:(0,i.SU)(m)[o.label]},null,8,["title","sport-label","color"]))]),(0,r._)("td",{class:(0,s.C_)(["sport-label",{"disabled-sport":!o.is_active}])},[(0,r._)("span",la,(0,s.zw)(e.$t("user.PROFILE.SPORT.LABEL")),1),(0,r.Uk)(" "+(0,s.zw)(o.translatedLabel)+" ",1),o.is_active?(0,r.kq)("",!0):((0,r.wg)(),(0,r.iD)("span",ca," ("+(0,s.zw)(e.$t("user.PROFILE.SPORT.DISABLED_BY_ADMIN"))+") ",1)),(0,i.SU)(E)&&U(o.id)?((0,r.wg)(),(0,r.iD)("i",ua)):(0,r.kq)("",!0),(0,i.SU)(p)&&T.sport_id===o.id?((0,r.wg)(),(0,r.j4)(a,{key:2,message:(0,i.SU)(p)},null,8,["message"])):(0,r.kq)("",!0)],2),(0,r._)("td",{class:(0,s.C_)(["text-center",{"disabled-sport":!o.is_active}])},[(0,r._)("span",da,(0,s.zw)(e.$t("workouts.WORKOUT",0)),1),(0,r._)("i",{class:(0,s.C_)("fa fa"+((0,i.SU)(d).sports_list.includes(o.id)?"-check":"")),"aria-hidden":"true"},null,2)],2),(0,r._)("td",{class:(0,s.C_)(["text-center",{"disabled-sport":!o.is_active}])},[(0,r._)("span",ma,(0,s.zw)(e.$t("user.PROFILE.SPORT.IS_ACTIVE")),1),U(o.id)&&o.is_active?((0,r.wg)(),(0,r.iD)("input",{key:0,type:"checkbox",checked:o.is_active_for_user,onChange:I},null,40,Sa)):((0,r.wg)(),(0,r.iD)("i",{key:1,class:(0,s.C_)("fa fa"+(o.is_active_for_user?"-check":"")),"aria-hidden":"true"},null,2))],2),(0,r._)("td",{class:(0,s.C_)(["text-center",{"disabled-sport":!o.is_active}])},[(0,r._)("span",_a,(0,s.zw)(e.$t("user.PROFILE.SPORT.STOPPED_SPEED_THRESHOLD")),1),U(o.id)&&o.is_active?((0,r.wg)(),(0,r.iD)("input",{key:0,class:"threshold-input",type:"number",min:"0",step:"0.1",value:T.stopped_speed_threshold,onInput:R},null,40,Ea)):((0,r.wg)(),(0,r.iD)("span",pa,(0,s.zw)(o.stopped_speed_threshold),1))],2),(0,i.SU)(u)?((0,r.wg)(),(0,r.iD)("td",Ta,[(0,r._)("span",Aa,(0,s.zw)(e.$t("user.PROFILE.SPORT.ACTION")),1),0===T.sport_id?((0,r.wg)(),(0,r.iD)("button",{key:0,onClick:e=>A(o)},(0,s.zw)(e.$t("buttons.EDIT")),9,Ua)):(0,r.kq)("",!0),U(o.id)?((0,r.wg)(),(0,r.iD)("div",Oa,[(0,r._)("button",{disabled:(0,i.SU)(E),onClick:w},(0,s.zw)(e.$t("buttons.SUBMIT")),9,Ra),(0,r._)("button",{disabled:(0,i.SU)(E),onClick:e=>v(e,o.id)},(0,s.zw)(e.$t("buttons.RESET")),9,Ia),(0,r._)("button",{disabled:(0,i.SU)(E),onClick:t[3]||(t[3]=e=>A(null))},(0,s.zw)(e.$t("buttons.CANCEL")),9,ga)])):(0,r.kq)("",!0)])):(0,r.kq)("",!0)])))),128))])]),(0,i.SU)(u)?((0,r.wg)(),(0,r.iD)("div",wa,[(0,r._)("button",{class:"cancel",onClick:t[4]||(t[4]=(0,o.iM)((t=>e.$router.push("/profile/sports")),["prevent"]))},(0,s.zw)(e.$t("buttons.BACK")),1)])):((0,r.wg)(),(0,r.iD)("div",va,[(0,r._)("button",{onClick:t[5]||(t[5]=t=>e.$router.push("/profile/edit/sports"))},(0,s.zw)(e.$t("user.PROFILE.EDIT_SPORTS_PREFERENCES")),1),(0,r._)("button",{onClick:t[6]||(t[6]=t=>e.$router.push("/"))},(0,s.zw)(e.$t("common.HOME")),1)]))])):(0,r.kq)("",!0)])}}});const Na=(0,P.Z)(fa,[["__scopeId","data-v-4775544a"]]);var ha=Na,Ca=n(12);const Da=e=>((0,r.dD)("data-v-74257266"),e=e(),(0,r.Cn)(),e),ka={class:"about-text"},za=["innerHTML"],Pa=Da((()=>(0,r._)("i",{class:"fa fa-book fa-padding","aria-hidden":"true"},null,-1))),Ma={href:"https://samr1.github.io/FitTrackee/",target:"_blank",rel:"noopener noreferrer"},ya=Da((()=>(0,r._)("i",{class:"fa fa-github fa-padding","aria-hidden":"true"},null,-1))),ba={href:"https://github.com/SamR1/FitTrackee",target:"_blank",rel:"noopener noreferrer"},La=Da((()=>(0,r._)("i",{class:"fa fa-balance-scale fa-padding","aria-hidden":"true"},null,-1))),Ga=Da((()=>(0,r._)("a",{href:"https://choosealicense.com/licenses/agpl-3.0/",target:"_blank",rel:"noopener noreferrer"}," AGPLv3 ",-1))),Fa={key:0},Wa=Da((()=>(0,r._)("i",{class:"fa fa-envelope-o fa-padding","aria-hidden":"true"},null,-1))),Ya=["href"];var xa=(0,r.aZ)({name:"About",setup(e){const t=(0,c.o)(),n=(0,r.Fl)((()=>t.getters[l.SY.GETTERS.APP_CONFIG]));return(e,t)=>{const a=(0,r.up)("i18n-t");return(0,r.wg)(),(0,r.iD)("div",ka,[(0,r._)("div",null,[(0,r._)("p",{class:"error-message",innerHTML:e.$t("about.FITTRACKEE_DESCRIPTION")},null,8,za),(0,r._)("p",null,[Pa,(0,r._)("a",Ma,(0,s.zw)((0,s.kC)(e.$t("common.DOCUMENTATION"))),1)]),(0,r._)("p",null,[ya,(0,r._)("a",ba,(0,s.zw)(e.$t("about.SOURCE_CODE")),1)]),(0,r._)("p",null,[La,(0,r.Wm)(a,{keypath:"about.FITTRACKEE_LICENSE"},{default:(0,r.w5)((()=>[Ga])),_:1})]),(0,i.SU)(n).admin_contact?((0,r.wg)(),(0,r.iD)("div",Fa,[Wa,(0,r._)("a",{href:`mailto:${(0,i.SU)(n).admin_contact}`},(0,s.zw)(e.$t("about.CONTACT_ADMIN")),9,Ya)])):(0,r.kq)("",!0)])])}}});const $a=(0,P.Z)(xa,[["__scopeId","data-v-74257266"]]);var Za=$a;const Ka={id:"bike"},Ba=["src"];function Ha(e,t){return(0,r.wg)(),(0,r.iD)("div",Ka,[(0,r._)("img",{class:"bike-img",src:"/img/bike.svg",alt:"mountain bike"},null,8,Ba)])}const qa={},ja=(0,P.Z)(qa,[["render",Ha],["__scopeId","data-v-795f7f5f"]]);var Va=ja;const Xa={id:"about",class:"view"},Ja={class:"container"},Qa={class:"container-sub"},er={class:"container-sub about-details"};var tr=(0,r.aZ)({name:"AboutView",setup(e){return(e,t)=>((0,r.wg)(),(0,r.iD)("div",Xa,[(0,r._)("div",Ja,[(0,r._)("div",Qa,[(0,r.Wm)(Va)]),(0,r._)("div",er,[(0,r.Wm)(Za)])])]))}});const nr=(0,P.Z)(tr,[["__scopeId","data-v-bffb50d0"]]);var ar=nr,rr=n(1818),sr=n(2056);const or=e=>((0,r.dD)("data-v-c9d1f10c"),e=e(),(0,r.Cn)(),e),ir={class:"timeline-workout"},lr={class:"box"},cr={class:"workout-user-date"},ur={class:"workout-user"},dr=["title"],mr={key:0},Sr={key:1,class:"no-map"},_r={class:"img"},Er={class:"data"},pr=or((()=>(0,r._)("i",{class:"fa fa-clock-o","aria-hidden":"true"},null,-1))),Tr={key:0},Ar={class:"data"},Ur=or((()=>(0,r._)("i",{class:"fa fa-road","aria-hidden":"true"},null,-1))),Or={key:0,class:"data elevation"},Rr=["alt"],Ir={class:"data-values"},gr=(0,r.Uk)("/ "),wr={key:1,class:"data altitude"},vr=or((()=>(0,r._)("i",{class:"fa fa-location-arrow","aria-hidden":"true"},null,-1))),fr={class:"data-values"},Nr=(0,r.Uk)(" +"),hr=(0,r.Uk)("/- ");var Cr=(0,r.aZ)({name:"WorkoutCard",props:{user:null,useImperialUnits:{type:Boolean},workout:{default:()=>({})},sport:{default:()=>({})}},setup(e){const t=e,n=(0,c.o)(),{user:a,workout:o,sport:u,useImperialUnits:d}=(0,i.BK)(t),m=(0,r.Fl)((()=>n.getters[l.SY.GETTERS.LOCALE]));return(e,t)=>{const n=(0,r.up)("router-link"),l=(0,r.up)("SportImage"),c=(0,r.up)("Distance");return(0,r.wg)(),(0,r.iD)("div",ir,[(0,r._)("div",lr,[(0,r._)("div",cr,[(0,r._)("div",ur,[(0,r.Wm)(ye.Z,{user:(0,i.SU)(a)},null,8,["user"]),(0,i.SU)(a).username?((0,r.wg)(),(0,r.j4)(n,{key:0,class:"workout-user-name",to:{name:"User",params:{username:(0,i.SU)(a).username}}},{default:(0,r.w5)((()=>[(0,r.Uk)((0,s.zw)((0,i.SU)(a).username),1)])),_:1},8,["to"])):(0,r.kq)("",!0)]),(0,i.SU)(o).id?((0,r.wg)(),(0,r.j4)(n,{key:0,class:"workout-title",to:{name:"Workout",params:{workoutId:(0,i.SU)(o).id}}},{default:(0,r.w5)((()=>[(0,r.Uk)((0,s.zw)((0,i.SU)(o).title),1)])),_:1},8,["to"])):(0,r.kq)("",!0),(0,i.SU)(o).workout_date&&(0,i.SU)(a)?((0,r.wg)(),(0,r.iD)("div",{key:1,class:"workout-date",title:(0,i.SU)(ze.Z)((0,i.SU)($e.eB)((0,i.SU)(o).workout_date,(0,i.SU)(a).timezone),"dd/MM/yyyy HH:mm")},(0,s.zw)((0,i.SU)(rr.Z)(new Date((0,i.SU)(o).workout_date),new Date,{addSuffix:!0,locale:(0,i.SU)(m)})),9,dr)):(0,r.kq)("",!0)]),(0,r._)("div",{class:(0,s.C_)(["workout-map",{"no-cursor":!(0,i.SU)(o)}]),onClick:t[0]||(t[0]=t=>(0,i.SU)(o).id?e.$router.push({name:"Workout",params:{workoutId:(0,i.SU)(o).id}}):null)},[(0,i.SU)(o)?((0,r.wg)(),(0,r.iD)("div",mr,[(0,i.SU)(o).with_gpx?((0,r.wg)(),(0,r.j4)(sr.Z,{key:0,workout:(0,i.SU)(o)},null,8,["workout"])):((0,r.wg)(),(0,r.iD)("div",Sr,(0,s.zw)(e.$t("workouts.NO_MAP")),1))])):(0,r.kq)("",!0)],2),(0,r._)("div",{class:(0,s.C_)(["workout-data",{"without-gpx":(0,i.SU)(o)&&!(0,i.SU)(o).with_gpx}]),onClick:t[1]||(t[1]=t=>(0,i.SU)(o).id?e.$router.push({name:"Workout",params:{workoutId:(0,i.SU)(o).id}}):null)},[(0,r._)("div",_r,[(0,i.SU)(u).label?((0,r.wg)(),(0,r.j4)(l,{key:0,"sport-label":(0,i.SU)(u).label,color:(0,i.SU)(u).color},null,8,["sport-label","color"])):(0,r.kq)("",!0)]),(0,r._)("div",Er,[pr,(0,i.SU)(o)?((0,r.wg)(),(0,r.iD)("span",Tr,(0,s.zw)((0,i.SU)(o).moving),1)):(0,r.kq)("",!0)]),(0,r._)("div",Ar,[Ur,(0,i.SU)(o).id?((0,r.wg)(),(0,r.j4)(c,{key:0,distance:(0,i.SU)(o).distance,digits:3,unitFrom:"km",useImperialUnits:(0,i.SU)(d)},null,8,["distance","useImperialUnits"])):(0,r.kq)("",!0)]),(0,i.SU)(o)&&(0,i.SU)(o).with_gpx?((0,r.wg)(),(0,r.iD)("div",Or,[(0,r._)("img",{class:"mountains",src:"/img/workouts/mountains.svg",alt:e.$t("workouts.ELEVATION")},null,8,Rr),(0,r._)("div",Ir,[(0,i.SU)(o).id?((0,r.wg)(),(0,r.j4)(c,{key:0,distance:(0,i.SU)(o).min_alt,unitFrom:"m",displayUnit:!1,useImperialUnits:(0,i.SU)(d)},null,8,["distance","useImperialUnits"])):(0,r.kq)("",!0),gr,(0,i.SU)(o).id?((0,r.wg)(),(0,r.j4)(c,{key:1,distance:(0,i.SU)(o).max_alt,unitFrom:"m",useImperialUnits:(0,i.SU)(d)},null,8,["distance","useImperialUnits"])):(0,r.kq)("",!0)])])):(0,r.kq)("",!0),(0,i.SU)(o)&&(0,i.SU)(o).with_gpx?((0,r.wg)(),(0,r.iD)("div",wr,[vr,(0,r._)("div",fr,[Nr,(0,i.SU)(o).id?((0,r.wg)(),(0,r.j4)(c,{key:0,distance:(0,i.SU)(o).ascent,unitFrom:"m",displayUnit:!1,useImperialUnits:(0,i.SU)(d)},null,8,["distance","useImperialUnits"])):(0,r.kq)("",!0),hr,(0,i.SU)(o).id?((0,r.wg)(),(0,r.j4)(c,{key:1,distance:(0,i.SU)(o).descent,unitFrom:"m",useImperialUnits:(0,i.SU)(d)},null,8,["distance","useImperialUnits"])):(0,r.kq)("",!0)])])):(0,r.kq)("",!0)],2)])])}}});const Dr=(0,P.Z)(Cr,[["__scopeId","data-v-c9d1f10c"]]);var kr=Dr,zr=n(5630),Pr=n(3768);const Mr={id:"timeline"},yr={class:"section-title"},br={key:0},Lr={key:1},Gr={key:1,class:"more-workouts"};var Fr=(0,r.aZ)({name:"Timeline",props:{sports:null,user:null},setup(e){const t=e,n=(0,c.o)(),{sports:a,user:o}=(0,i.BK)(t);let u=(0,i.iH)(1);const d=5,m=t.user.nb_workouts>=d?d:t.user.nb_workouts;(0,r.wF)((()=>E()));const S=(0,r.Fl)((()=>n.getters[l.aX.GETTERS.TIMELINE_WORKOUTS])),_=(0,r.Fl)((()=>S.value.length>0&&null!==S.value[S.value.length-1].previous_workout));function E(){n.dispatch(l.aX.ACTIONS.GET_TIMELINE_WORKOUTS,{page:u.value,per_page:d,...Pr.eR})}function p(){u.value+=1,n.dispatch(l.aX.ACTIONS.GET_MORE_TIMELINE_WORKOUTS,{page:u.value,per_page:d,...Pr.eR})}return(e,t)=>((0,r.wg)(),(0,r.iD)("div",Mr,[(0,r._)("div",yr,(0,s.zw)(e.$t("workouts.LATEST_WORKOUTS")),1),(0,i.SU)(o).nb_workouts>0&&0===(0,i.SU)(S).length?((0,r.wg)(),(0,r.iD)("div",br,[((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)([...Array((0,i.SU)(m)).keys()],(e=>((0,r.wg)(),(0,r.j4)(kr,{user:(0,i.SU)(o),useImperialUnits:(0,i.SU)(o).imperial_units,key:e},null,8,["user","useImperialUnits"])))),128))])):((0,r.wg)(),(0,r.iD)("div",Lr,[((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)((0,i.SU)(S),(e=>((0,r.wg)(),(0,r.j4)(kr,{workout:e,sport:(0,i.SU)(S).length>0?(0,i.SU)(a).filter((t=>t.id===e.sport_id))[0]:null,user:(0,i.SU)(o),useImperialUnits:(0,i.SU)(o).imperial_units,key:e.id},null,8,["workout","sport","user","useImperialUnits"])))),128)),0===(0,i.SU)(S).length?((0,r.wg)(),(0,r.j4)(zr.Z,{key:0})):(0,r.kq)("",!0),(0,i.SU)(_)?((0,r.wg)(),(0,r.iD)("div",Gr,[(0,r._)("button",{onClick:p},(0,s.zw)(e.$t("workouts.LOAD_MORE_WORKOUT")),1)])):(0,r.kq)("",!0)]))]))}});const Wr=(0,P.Z)(Fr,[["__scopeId","data-v-9ef2a9ac"]]);var Yr=Wr,xr=n(1640),$r=n(4559),Zr=n(7349),Kr=n(1743),Br=n(9160),Hr=n(1085);const qr=["title"];var jr=(0,r.aZ)({name:"CalendarWorkout",props:{workout:null,sportLabel:null,sportColor:null},setup(e){const t=e,{workout:n,sportLabel:a,sportColor:s}=(0,i.BK)(t);return(e,t)=>{const o=(0,r.up)("SportImage");return(0,r.wg)(),(0,r.iD)("div",{class:"calendar-workout",onClick:t[0]||(t[0]=t=>e.$router.push({name:"Workout",params:{workoutId:(0,i.SU)(n).id}}))},[(0,r.Wm)(o,{"sport-label":(0,i.SU)(a),title:(0,i.SU)(n).title,color:(0,i.SU)(s)},null,8,["sport-label","title","color"]),(0,r._)("sup",null,[(0,i.SU)(n).records.length>0?((0,r.wg)(),(0,r.iD)("i",{key:0,class:"fa fa-trophy custom-fa-small","aria-hidden":"true",title:(0,i.SU)(n).records.map((t=>` ${e.$t(`workouts.RECORD_${t.record_type}`)}`))},null,8,qr)):(0,r.kq)("",!0)])])}}});const Vr=jr;var Xr=Vr;const Jr={class:"donut-chart"},Qr={height:"34",width:"34",viewBox:"0 0 34 34"},es=["stroke","stroke-dashoffset","transform"];var ts=(0,r.aZ)({name:"DonutChart",props:{colors:null,datasets:null},setup(e){const t=e,{colors:n,datasets:a}=(0,i.BK)(t);let s=-90;const o=16,l=16,c=14,u=2*Math.PI*c;function d(e,t){return t-e*t}function m(e,t){const n=`rotate(${s}, ${o}, ${l})`;return s=360*t+s,n}return(e,t)=>((0,r.wg)(),(0,r.iD)("div",Jr,[((0,r.wg)(),(0,r.iD)("svg",Qr,[((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)(Object.entries((0,i.SU)(a)),((e,t)=>((0,r.wg)(),(0,r.iD)("g",{key:t},[(0,r._)("circle",{cx:o,cy:l,r:c,fill:"transparent",stroke:(0,i.SU)(n)[+e[0]],"stroke-dashoffset":d(e[1].percentage,u),"stroke-dasharray":u,"stroke-width":"3","stroke-opacity":"0.8",transform:m(t,e[1].percentage)},null,8,es)])))),128))]))]))}});const ns=ts;var as=ns;const rs={class:"calendar-workouts-chart"},ss={class:"workouts-count"},os={key:0,class:"workouts-pane"},is={class:"more-workouts"};var ls=(0,r.aZ)({name:"CalendarWorkoutsChart",props:{colors:null,datasets:null,sports:null,workouts:null},setup(e){const t=e,{colors:n,datasets:a,sports:o,workouts:l}=(0,i.BK)(t),c=(0,i.iH)(!0);function u(e){e.stopPropagation(),c.value=!c.value}return(e,t)=>{const d=(0,r.Q2)("click-outside");return(0,r.wg)(),(0,r.iD)("div",rs,[(0,r._)("div",{class:"workouts-chart",onClick:u},[(0,r._)("div",ss,(0,s.zw)((0,i.SU)(l).length),1),(0,r.Wm)(as,{datasets:(0,i.SU)(a),colors:(0,i.SU)(n)},null,8,["datasets","colors"])]),c.value?(0,r.kq)("",!0):((0,r.wg)(),(0,r.iD)("div",os,[(0,r.wy)(((0,r.wg)(),(0,r.iD)("div",is,[(0,r._)("i",{class:"fa fa-times calendar-more","aria-hidden":"true",onClick:u}),((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)((0,i.SU)(l),((e,t)=>((0,r.wg)(),(0,r.j4)(Xr,{key:t,workout:e,sportLabel:(0,i.SU)(le.PA)(e,(0,i.SU)(o)),sportColor:(0,i.SU)(le.CM)(e,(0,i.SU)(o))},null,8,["workout","sportLabel","sportColor"])))),128))])),[[d,u]])]))])}}});const cs=(0,P.Z)(ls,[["__scopeId","data-v-52d4310a"]]);var us=cs;const ds={class:"calendar-workouts"},ms={class:"desktop-display"},Ss={key:0,class:"workouts-display"},_s={key:1,class:"donut-display"},Es={class:"mobile-display"},ps={key:0,class:"donut-display"};var Ts=(0,r.aZ)({name:"CalendarWorkouts",props:{workouts:null,sports:null},setup(e){const t=e,{workouts:n,sports:a}=(0,i.BK)(t),s=(0,r.Fl)((()=>(0,Pr.BN)(t.workouts))),o=(0,r.Fl)((()=>(0,le.Yx)(t.sports))),l=6;return(e,t)=>((0,r.wg)(),(0,r.iD)("div",ds,[(0,r._)("div",ms,[(0,i.SU)(n).length<=l?((0,r.wg)(),(0,r.iD)("div",Ss,[((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)((0,i.SU)(n).slice(0,l),((e,t)=>((0,r.wg)(),(0,r.j4)(Xr,{key:t,workout:e,sportLabel:(0,i.SU)(le.PA)(e,(0,i.SU)(a)),sportColor:(0,i.SU)(le.CM)(e,(0,i.SU)(a))},null,8,["workout","sportLabel","sportColor"])))),128))])):((0,r.wg)(),(0,r.iD)("div",_s,[(0,r.Wm)(us,{workouts:(0,i.SU)(n),sports:(0,i.SU)(a),datasets:(0,i.SU)(s),colors:(0,i.SU)(o)},null,8,["workouts","sports","datasets","colors"])]))]),(0,r._)("div",Es,[(0,i.SU)(n).length>0?((0,r.wg)(),(0,r.iD)("div",ps,[(0,r.Wm)(us,{workouts:(0,i.SU)(n),sports:(0,i.SU)(a),datasets:(0,i.SU)(s),colors:(0,i.SU)(o)},null,8,["workouts","sports","datasets","colors"])])):(0,r.kq)("",!0)])]))}});const As=Ts;var Us=As;const Os={class:"calendar-cells"},Rs={class:"calendar-cell-day"};var Is=(0,r.aZ)({name:"CalendarCells",props:{currentDay:null,endDate:null,sports:null,startDate:null,timezone:null,weekStartingMonday:{type:Boolean},workouts:null},setup(e){const t=e,{currentDay:n,endDate:a,sports:o,startDate:l,timezone:c,weekStartingMonday:u,workouts:d}=(0,i.BK)(t),m=(0,i.iH)([]);function S(){m.value=[];let e=l.value;while(e<=a.value){const t=[];for(let n=0;n<7;n++)t.push(e),e=(0,Zr.Z)(e,1);m.value.push(t)}}function _(e){return u.value?[5,6].includes(e):[0,6].includes(e)}function E(e,t){return t?t.filter((t=>(0,Kr.Z)((0,$e.eB)(t.workout_date,c.value),e))).reverse():[]}return(0,r.bv)((()=>S())),(0,r.YP)((()=>t.currentDay),(()=>S())),(e,t)=>((0,r.wg)(),(0,r.iD)("div",Os,[((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)(m.value,((e,t)=>((0,r.wg)(),(0,r.iD)("div",{class:"calendar-row",key:t},[((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)(e,((e,t)=>((0,r.wg)(),(0,r.iD)("div",{class:(0,s.C_)(["calendar-cell",{"disabled-cell":!(0,i.SU)(Br.Z)(e,(0,i.SU)(n)),"week-end":_(t),today:(0,i.SU)(Hr.Z)(e)}]),key:t},[(0,r.Wm)(Us,{workouts:E(e,(0,i.SU)(d)),sports:(0,i.SU)(o)},null,8,["workouts","sports"]),(0,r._)("div",Rs,(0,s.zw)((0,i.SU)(ze.Z)(e,"d")),1)],2)))),128))])))),128))]))}});const gs=Is;var ws=gs;const vs={class:"calendar-days"};var fs=(0,r.aZ)({name:"CalendarDays",props:{startDate:null,localeOptions:null},setup(e){const t=e,n=[];for(let a=0;a<7;a++)n.push((0,Zr.Z)(t.startDate,a));return(t,a)=>((0,r.wg)(),(0,r.iD)("div",vs,[((0,r.wg)(),(0,r.iD)(r.HY,null,(0,r.Ko)(n,((t,n)=>(0,r._)("div",{class:"calendar-day",key:n},(0,s.zw)((0,i.SU)(ze.Z)(t,"EEE",{locale:e.localeOptions})),1))),64))]))}});const Ns=fs;var hs=Ns;const Cs={class:"calendar-header"},Ds=(0,r._)("i",{class:"fa fa-chevron-left","aria-hidden":"true"},null,-1),ks=[Ds],zs={class:"calendar-month"},Ps=(0,r._)("i",{class:"fa fa-chevron-right","aria-hidden":"true"},null,-1),Ms=[Ps];var ys=(0,r.aZ)({name:"CalendarHeader",props:{day:null,localeOptions:null},emits:["displayNextMonth","displayPreviousMonth"],setup(e,{emit:t}){const n=e,{day:a,localeOptions:o}=(0,i.BK)(n);return(e,n)=>((0,r.wg)(),(0,r.iD)("div",Cs,[(0,r._)("div",{class:"calendar-arrow calendar-arrow-left",onClick:n[0]||(n[0]=e=>t("displayPreviousMonth"))},ks),(0,r._)("div",zs,[(0,r._)("span",null,(0,s.zw)((0,i.SU)(ze.Z)((0,i.SU)(a),"MMM yyyy",{locale:(0,i.SU)(o)})),1)]),(0,r._)("div",{class:"calendar-arrow calendar-arrow-right",onClick:n[1]||(n[1]=e=>t("displayNextMonth"))},Ms)]))}});const bs=ys;var Ls=bs;const Gs={id:"user-calendar"},Fs={class:"calendar-card box"};var Ws=(0,r.aZ)({name:"index",props:{sports:null,user:null},setup(e){const t=e,n=(0,c.o)(),{sports:a,user:s}=(0,i.BK)(t),o="yyyy-MM-dd";let u=(0,i.iH)(new Date),d=(0,i.iH)((0,$e.yx)(u.value,t.user.weekm));const m=(0,r.Fl)((()=>n.getters[l.aX.GETTERS.CALENDAR_WORKOUTS])),S=(0,r.Fl)((()=>n.getters[l.SY.GETTERS.LOCALE]));function _(){d.value=(0,$e.yx)(u.value,t.user.weekm);const e={from:(0,ze.Z)(d.value.start,o),to:(0,ze.Z)(d.value.end,o),page:1,per_page:100,...Pr.eR};n.dispatch(l.aX.ACTIONS.GET_CALENDAR_WORKOUTS,e)}function E(){u.value=(0,xr.Z)(u.value,1),_()}function p(){u.value=(0,$r.Z)(u.value,1),_()}return(0,r.wF)((()=>_())),(e,t)=>((0,r.wg)(),(0,r.iD)("div",Gs,[(0,r._)("div",Fs,[(0,r.Wm)(Ls,{day:(0,i.SU)(u),"locale-options":(0,i.SU)(S),onDisplayNextMonth:E,onDisplayPreviousMonth:p},null,8,["day","locale-options"]),(0,r.Wm)(hs,{"start-date":(0,i.SU)(d).start,"locale-options":(0,i.SU)(S)},null,8,["start-date","locale-options"]),(0,r.Wm)(ws,{currentDay:(0,i.SU)(u),"end-date":(0,i.SU)(d).end,sports:(0,i.SU)(a),"start-date":(0,i.SU)(d).start,timezone:(0,i.SU)(s).timezone,workouts:(0,i.SU)(m),weekStartingMonday:(0,i.SU)(s).weekm},null,8,["currentDay","end-date","sports","start-date","timezone","workouts","weekStartingMonday"])])]))}});const Ys=Ws;var xs=Ys,$s=n(3703),Zs=n(4135),Ks=n(7402);const Bs={class:"user-month-stats"};var Hs=(0,r.aZ)({name:"UserMonthStats",props:{sports:null,user:null},setup(e){const t=e,{sports:n,user:a}=(0,i.BK)(t),o=new Date,l={duration:"week",start:(0,$s.Z)(o),end:(0,Zs.Z)(o)},c=t.sports.map((e=>e.id));return(e,t)=>{const o=(0,r.up)("Card");return(0,r.wg)(),(0,r.iD)("div",Bs,[(0,r.Wm)(o,null,{title:(0,r.w5)((()=>[(0,r.Uk)((0,s.zw)(e.$t("dashboard.THIS_MONTH")),1)])),content:(0,r.w5)((()=>[(0,r.Wm)(Ks.Z,{sports:(0,i.SU)(n),user:(0,i.SU)(a),"chart-params":l,"displayed-sport-ids":(0,i.SU)(c),"hide-chart-if-no-data":!0},null,8,["sports","user","displayed-sport-ids"])])),_:1})])}}});const qs=(0,P.Z)(Hs,[["__scopeId","data-v-1bcddc12"]]);var js=qs;const Vs={class:"records-card"},Xs={class:"record-type"},Js={class:"record-value"},Qs={class:"record-date"};var eo=(0,r.aZ)({name:"RecordsCard",props:{records:null,sportTranslatedLabel:null},setup(e){const t=e,{records:n,sportTranslatedLabel:a}=(0,i.BK)(t);return(e,t)=>{const o=(0,r.up)("SportImage"),l=(0,r.up)("router-link"),c=(0,r.up)("Card");return(0,r.wg)(),(0,r.iD)("div",Vs,[(0,r.Wm)(c,null,{title:(0,r.w5)((()=>[(0,r.Wm)(o,{"sport-label":(0,i.SU)(n).label,color:(0,i.SU)(n).color},null,8,["sport-label","color"]),(0,r.Uk)(" "+(0,s.zw)((0,i.SU)(a)),1)])),content:(0,r.w5)((()=>[((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)((0,i.SU)(n).records,(t=>((0,r.wg)(),(0,r.iD)("div",{class:"record",key:t.id},[(0,r._)("span",Xs,(0,s.zw)(e.$t(`workouts.RECORD_${t.record_type}`)),1),(0,r._)("span",Js,(0,s.zw)(t.value),1),(0,r._)("span",Qs,[(0,r.Wm)(l,{to:{name:"Workout",params:{workoutId:t.workout_id}}},{default:(0,r.w5)((()=>[(0,r.Uk)((0,s.zw)(t.workout_date),1)])),_:2},1032,["to"])])])))),128))])),_:1})])}}});const to=(0,P.Z)(eo,[["__scopeId","data-v-aee1f956"]]);var no=to,ao=(n(1703),n(3649));const ro=(e,t,n)=>{const a="km",r=n?ao.Dl[a].defaultTarget:a;let s;switch(e.record_type){case"AS":case"MS":s=`${(0,ao.sC)(+e.value,a,r,2)} ${r}/h`;break;case"FD":s=`${(0,ao.sC)(+e.value,a,r,3)} ${r}`;break;case"LD":s=e.value;break;default:throw new Error(`Invalid record type, expected: "AS", "FD", "LD", "MD", got: "${e.record_type}"`)}return{workout_date:(0,$e.Jo)((0,$e.eB)(e.workout_date,t)).workout_date,workout_id:e.workout_id,id:e.id,record_type:e.record_type,value:s}},so=(e,t,n,a)=>e.reduce(((e,r)=>{const s=t.find((e=>e.id===r.sport_id));return s&&s.label&&(void 0===e[s.translatedLabel]&&(e[s.translatedLabel]={label:s.label,color:s.color,records:[]}),e[s.translatedLabel].records.push(ro(r,n,a))),e}),{}),oo=e=>((0,r.dD)("data-v-ae25a82a"),e=e(),(0,r.Cn)(),e),io={class:"user-records-section"},lo={class:"section-title"},co=oo((()=>(0,r._)("i",{class:"fa fa-trophy custom-fa-small","aria-hidden":"true"},null,-1))),uo={class:"user-records"},mo={key:0,class:"no-records"};var So=(0,r.aZ)({name:"index",props:{sports:null,user:null},setup(e){const t=e,{t:n}=(0,ie.QT)(),a=(0,r.Fl)((()=>so(t.user.records,(0,le.xH)(t.sports,n),t.user.timezone,t.user.imperial_units)));return(t,n)=>((0,r.wg)(),(0,r.iD)("div",io,[(0,r._)("div",lo,[co,(0,r.Uk)(" "+(0,s.zw)(t.$t("workouts.RECORD",2)),1)]),(0,r._)("div",uo,[0===Object.keys((0,i.SU)(a)).length?((0,r.wg)(),(0,r.iD)("div",mo,(0,s.zw)(t.$t("workouts.NO_RECORDS")),1)):(0,r.kq)("",!0),((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)(Object.keys((0,i.SU)(a)).sort(),(t=>((0,r.wg)(),(0,r.j4)(no,{sportTranslatedLabel:t,records:(0,i.SU)(a)[t],key:t,useImperialUnits:e.user.imperial_units},null,8,["sportTranslatedLabel","records","useImperialUnits"])))),128))])]))}});const _o=(0,P.Z)(So,[["__scopeId","data-v-ae25a82a"]]);var Eo=_o;const po={id:"user-stats"};var To=(0,r.aZ)({name:"index",props:{user:null},setup(e){const t=e,{t:n}=(0,ie.QT)(),{user:a}=(0,i.BK)(t),s=(0,r.Fl)((()=>t.user.total_duration)),o=(0,r.Fl)((()=>d(s))),l="km",c=a.value.imperial_units?ao.Dl[l].defaultTarget:l,u=(0,r.Fl)((()=>a.value.imperial_units?(0,ao.sC)(a.value.total_distance,l,c,2):parseFloat(a.value.total_distance.toFixed(2))));function d(e){const t=e.value.match(/day/g)?e.value.split(", ")[1]:e.value;return{days:e.value.match(/day/g)?`${e.value.split(" ")[0]} ${e.value.match(/days/g)?n("common.DAY",2):n("common.DAY",1)}`:`0 ${n("common.DAY",2)},`,duration:`${t.split(":")[0]}h ${t.split(":")[1]}min`}}return(e,t)=>((0,r.wg)(),(0,r.iD)("div",po,[(0,r.Wm)(Z,{icon:"calendar",value:(0,i.SU)(a).nb_workouts,text:e.$t("workouts.WORKOUT",(0,i.SU)(a).nb_workouts)},null,8,["value","text"]),(0,r.Wm)(Z,{icon:"road",value:(0,i.SU)(u),text:"mi"===(0,i.SU)(c)?"miles":(0,i.SU)(c)},null,8,["value","text"]),(0,r.Wm)(Z,{icon:"clock-o",value:(0,i.SU)(o).days,text:(0,i.SU)(o).duration},null,8,["value","text"]),(0,r.Wm)(Z,{icon:"tags",value:(0,i.SU)(a).nb_sports,text:e.$t("workouts.SPORT",(0,i.SU)(a).nb_sports)},null,8,["value","text"])]))}});const Ao=To;var Uo=Ao;const Oo=e=>((0,r.dD)("data-v-20e19721"),e=e(),(0,r.Cn)(),e),Ro={key:0,id:"dashboard",class:"view"},Io={class:"container mobile-menu"},go={class:"box"},wo=Oo((()=>(0,r._)("i",{class:"fa fa-calendar","aria-hidden":"true"},null,-1))),vo=[wo],fo=Oo((()=>(0,r._)("i",{class:"fa fa-bar-chart","aria-hidden":"true"},null,-1))),No=[fo],ho=Oo((()=>(0,r._)("i",{class:"fa fa-map-o","aria-hidden":"true"},null,-1))),Co=[ho],Do=Oo((()=>(0,r._)("i",{class:"fa fa-trophy","aria-hidden":"true"},null,-1))),ko=[Do],zo={class:"container"},Po={class:"container dashboard-container"},Mo={class:"left-container dashboard-sub-container"},yo={class:"right-container dashboard-sub-container"},bo=Oo((()=>(0,r._)("div",{id:"bottom"},null,-1))),Lo={key:1,class:"app-loading"};var Go=(0,r.aZ)({name:"Dashboard",setup(e){const t=(0,c.o)(),n=(0,r.Fl)((()=>t.getters[l.YN.GETTERS.AUTH_USER_PROFILE])),a=(0,r.Fl)((()=>t.getters[l.O8.GETTERS.SPORTS])),o=(0,i.iH)("calendar");function u(e){o.value=e}return(e,t)=>{const l=(0,r.up)("Loader");return(0,i.SU)(n).username&&(0,i.SU)(a).length>0?((0,r.wg)(),(0,r.iD)("div",Ro,[(0,r._)("div",Io,[(0,r._)("div",go,[(0,r._)("div",{class:(0,s.C_)(["mobile-menu-item",{"is-selected":"calendar"===o.value}]),onClick:t[0]||(t[0]=e=>u("calendar"))},vo,2),(0,r._)("div",{class:(0,s.C_)(["mobile-menu-item",{"is-selected":"chart"===o.value}]),onClick:t[1]||(t[1]=e=>u("chart"))},No,2),(0,r._)("div",{class:(0,s.C_)(["mobile-menu-item",{"is-selected":"timeline"===o.value}]),onClick:t[2]||(t[2]=e=>u("timeline"))},Co,2),(0,r._)("div",{class:(0,s.C_)(["mobile-menu-item",{"is-selected":"records"===o.value}]),onClick:t[3]||(t[3]=e=>u("records"))},ko,2)])]),(0,r._)("div",zo,[(0,r.Wm)(Uo,{user:(0,i.SU)(n)},null,8,["user"])]),(0,r._)("div",Po,[(0,r._)("div",Mo,[(0,r.Wm)(js,{sports:(0,i.SU)(a),user:(0,i.SU)(n),class:(0,s.C_)({"is-hidden":!("chart"===o.value)})},null,8,["sports","user","class"]),(0,r.Wm)(Eo,{sports:(0,i.SU)(a),user:(0,i.SU)(n),class:(0,s.C_)({"is-hidden":!("records"===o.value)})},null,8,["sports","user","class"])]),(0,r._)("div",yo,[(0,r.Wm)(xs,{sports:(0,i.SU)(a),user:(0,i.SU)(n),class:(0,s.C_)({"is-hidden":!("calendar"===o.value)})},null,8,["sports","user","class"]),(0,r.Wm)(Yr,{sports:(0,i.SU)(a),user:(0,i.SU)(n),class:(0,s.C_)({"is-hidden":!("timeline"===o.value)})},null,8,["sports","user","class"])])]),bo])):((0,r.wg)(),(0,r.iD)("div",Lo,[(0,r.Wm)(l)]))}}});const Fo=(0,P.Z)(Go,[["__scopeId","data-v-20e19721"]]);var Wo=Fo,Yo=n(8273);const xo={class:"not-found view"};var $o=(0,r.aZ)({name:"NotFoundView",setup(e){return(e,t)=>((0,r.wg)(),(0,r.iD)("div",xo,[(0,r.Wm)(Yo.Z)]))}});const Zo=$o;var Ko=Zo,Bo=n(2422);const Ho={id:"loginOrRegister",class:"view"},qo={class:"container"},jo={class:"container-sub"},Vo={class:"container-sub"};var Xo=(0,r.aZ)({name:"LoginOrRegister",props:{action:null},setup(e){const t=e,{action:n}=(0,i.BK)(t);return(e,t)=>((0,r.wg)(),(0,r.iD)("div",Ho,[(0,r._)("div",qo,[(0,r._)("div",jo,[(0,r.Wm)(Va)]),(0,r._)("div",Vo,[(0,r.Wm)(Bo.Z,{action:(0,i.SU)(n)},null,8,["action"])])])]))}});const Jo=(0,P.Z)(Xo,[["__scopeId","data-v-6a38125b"]]);var Qo=Jo;const ei=e=>{const t=/(\/profile)(\/edit)*(\/*)/,n=e.replace(t,"").toUpperCase();return""===n?"PROFILE":n.toUpperCase()},ti=[{path:"/",name:"Dashboard",component:Wo},{path:"/login",name:"Login",component:Qo,props:{action:"login"}},{path:"/register",name:"Register",component:Qo,props:{action:"register"}},{path:"/account-confirmation",name:"AccountConfirmation",component:()=>n.e(845).then(n.bind(n,4264))},{path:"/account-confirmation/resend",name:"AccountConfirmationResend",component:()=>n.e(24).then(n.bind(n,5639)),props:{action:"account-confirmation-resend"}},{path:"/account-confirmation/email-sent",name:"AccountConfirmationEmailSend",component:()=>n.e(24).then(n.bind(n,5639)),props:{action:"email-sent"}},{path:"/password-reset/sent",name:"PasswordEmailSent",component:()=>n.e(24).then(n.bind(n,1627)),props:{action:"request-sent"}},{path:"/password-reset/request",name:"PasswordResetRequest",component:()=>n.e(24).then(n.bind(n,1627)),props:{action:"reset-request"}},{path:"/password-reset/password-updated",name:"PasswordUpdated",component:()=>n.e(24).then(n.bind(n,1627)),props:{action:"password-updated"}},{path:"/password-reset",name:"PasswordReset",component:()=>n.e(24).then(n.bind(n,1627)),props:{action:"reset"}},{path:"/email-update",name:"EmailUpdate",component:()=>n.e(845).then(n.bind(n,8160))},{path:"/profile",name:"Profile",component:()=>n.e(845).then(n.bind(n,6266)),children:[{path:"",name:"UserProfile",component:vt,props:e=>({tab:ei(e.path)}),children:[{path:"",name:"UserInfos",component:ft.Z},{path:"preferences",name:"UserPreferences",component:zt},{path:"sports",name:"UserSportPreferences",component:ha,props:{isEdition:!1}}]},{path:"edit",name:"UserProfileEdition",component:bt,props:e=>({tab:ei(e.path)}),children:[{path:"",name:"UserInfosEdition",component:En},{path:"account",name:"UserAccountEdition",component:Vt},{path:"picture",name:"UserPictureEdition",component:Nn},{path:"preferences",name:"UserPreferencesEdition",component:Jn},{path:"sports",name:"UserSportPreferencesEdition",component:ha,props:{isEdition:!0}}]}]},{path:"/statistics",name:"Statistics",component:()=>n.e(193).then(n.bind(n,7749))},{path:"/users/:username",name:"User",component:()=>n.e(845).then(n.bind(n,9453))},{path:"/workouts",name:"Workouts",component:()=>n.e(401).then(n.bind(n,8291))},{path:"/workouts/:workoutId",name:"Workout",component:()=>n.e(401).then(n.bind(n,9003)),props:{displaySegment:!1}},{path:"/workouts/:workoutId/edit",name:"EditWorkout",component:()=>n.e(401).then(n.bind(n,8237))},{path:"/workouts/:workoutId/segment/:segmentId",name:"WorkoutSegment",component:()=>n.e(401).then(n.bind(n,9003)),props:{displaySegment:!0}},{path:"/workouts/add",name:"AddWorkout",component:()=>n.e(401).then(n.bind(n,4189))},{path:"/admin",name:"Administration",component:()=>n.e(328).then(n.bind(n,6e3)),children:[{path:"",name:"AdministrationMenu",component:oe},{path:"application",name:"ApplicationAdministration",component:y},{path:"application/edit",name:"ApplicationAdministrationEdition",component:y,props:{edition:!0}},{path:"sports",name:"SportsAdministration",component:ke},{path:"users/:username",name:"UserFromAdmin",component:()=>n.e(845).then(n.bind(n,9453)),props:{fromAdmin:!0}},{path:"users",name:"UsersAdministration",component:St}]},{path:"/about",name:"About",component:ar},{path:"/:pathMatch(.*)*",name:"not-found",component:Ko}],ni=(0,a.p7)({history:(0,a.PO)("/"),routes:ti}),ai=["/login","/password-reset","/password-reset/password-updated","/password-reset/request","/password-reset/sent","/register","/account-confirmation","/account-confirmation/resend","/account-confirmation/email-sent"],ri=["/email-update","/about"];ni.beforeEach(((e,t,n)=>{Ca.Z.dispatch(l.YN.ACTIONS.CHECK_AUTH_USER).then((()=>{if(ri.includes(e.path))return n();if(Ca.Z.getters[l.YN.GETTERS.IS_AUTHENTICATED]&&ai.includes(e.path))return n("/");if(Ca.Z.getters[l.YN.GETTERS.IS_AUTHENTICATED]||ai.includes(e.path))n();else{const t="/"===e.path?{path:"/login"}:{path:"/login",query:{from:e.fullPath}};n(t)}})).catch((e=>{console.error(e),n()}))}));var si=ni},8602:function(e,t,n){"use strict";var a,r,s,o,i,l,c,u,d,m,S,_,E,p,T;n.d(t,{YN:function(){return I},SY:function(){return U},O8:function(){return O},gu:function(){return R},RT:function(){return g},aX:function(){return w}}),function(e){e["CHECK_AUTH_USER"]="CHECK_AUTH_USER",e["CONFIRM_ACCOUNT"]="CONFIRM_ACCOUNT",e["CONFIRM_EMAIL"]="CONFIRM_EMAIL",e["DELETE_ACCOUNT"]="DELETE_ACCOUNT",e["DELETE_PICTURE"]="DELETE_PICTURE",e["GET_USER_PROFILE"]="GET_USER_PROFILE",e["LOGIN_OR_REGISTER"]="LOGIN_OR_REGISTER",e["LOGOUT"]="LOGOUT",e["SEND_PASSWORD_RESET_REQUEST"]="SEND_PASSWORD_RESET_REQUEST",e["RESEND_ACCOUNT_CONFIRMATION_EMAIL"]="RESEND_ACCOUNT_CONFIRMATION_EMAIL",e["RESET_USER_PASSWORD"]="RESET_USER_PASSWORD",e["RESET_USER_SPORT_PREFERENCES"]="RESET_USER_SPORT_PREFERENCES",e["UPDATE_USER_ACCOUNT"]="UPDATE_USER_ACCOUNT",e["UPDATE_USER_PICTURE"]="UPDATE_USER_PICTURE",e["UPDATE_USER_PROFILE"]="UPDATE_USER_PROFILE",e["UPDATE_USER_PREFERENCES"]="UPDATE_USER_PREFERENCES",e["UPDATE_USER_SPORT_PREFERENCES"]="UPDATE_USER_SPORT_PREFERENCES"}(a||(a={})),function(e){e["AUTH_TOKEN"]="AUTH_TOKEN",e["AUTH_USER_PROFILE"]="AUTH_USER_PROFILE",e["IS_ADMIN"]="IS_ADMIN",e["IS_AUTHENTICATED"]="IS_AUTHENTICATED",e["IS_SUCCESS"]="IS_SUCCESS",e["IS_REGISTRATION_SUCCESS"]="IS_REGISTRATION_SUCCESS",e["USER_LOADING"]="USER_LOADING"}(r||(r={})),function(e){e["CLEAR_AUTH_USER_TOKEN"]="CLEAR_AUTH_USER_TOKEN",e["UPDATE_AUTH_TOKEN"]="UPDATE_AUTH_TOKEN",e["UPDATE_AUTH_USER_PROFILE"]="UPDATE_AUTH_USER_PROFILE",e["UPDATE_IS_SUCCESS"]="UPDATE_USER_IS_SUCCESS",e["UPDATE_IS_REGISTRATION_SUCCESS"]="UPDATE_IS_REGISTRATION_SUCCESS",e["UPDATE_USER_LOADING"]="UPDATE_USER_LOADING"}(s||(s={})),function(e){e["GET_APPLICATION_CONFIG"]="GET_APPLICATION_CONFIG",e["GET_APPLICATION_STATS"]="GET_APPLICATION_STATS",e["UPDATE_APPLICATION_CONFIG"]="UPDATE_APPLICATION_CONFIG"}(o||(o={})),function(e){e["APP_CONFIG"]="APP_CONFIG",e["APP_LOADING"]="APP_LOADING",e["APP_STATS"]="APP_STATS",e["ERROR_MESSAGES"]="ERROR_MESSAGES",e["LANGUAGE"]="LANGUAGE",e["LOCALE"]="LOCALE"}(i||(i={})),function(e){e["EMPTY_ERROR_MESSAGES"]="EMPTY_ERROR_MESSAGES",e["SET_ERROR_MESSAGES"]="SET_ERROR_MESSAGES",e["UPDATE_APPLICATION_CONFIG"]="UPDATE_APPLICATION_CONFIG",e["UPDATE_APPLICATION_LOADING"]="UPDATE_APPLICATION_LOADING",e["UPDATE_APPLICATION_STATS"]="UPDATE_APPLICATION_STATS",e["UPDATE_LANG"]="UPDATE_LANG"}(l||(l={})),function(e){e["GET_SPORTS"]="GET_SPORTS",e["UPDATE_SPORTS"]="UPDATE_SPORTS"}(c||(c={})),function(e){e["SPORTS"]="SPORTS"}(u||(u={})),function(e){e["SET_SPORTS"]="SET_SPORTS"}(d||(d={})),function(e){e["GET_USER_STATS"]="GET_USER_STATS"}(m||(m={})),function(e){e["USER_STATS"]="USER_STATS"}(S||(S={})),function(e){e["EMPTY_USER_STATS"]="EMPTY_USER_STATS",e["UPDATE_USER_STATS"]="UPDATE_USER_STATS"}(_||(_={})),function(e){e["EMPTY_USER"]="EMPTY_USER",e["EMPTY_USERS"]="EMPTY_USERS",e["GET_USER"]="GET_USER",e["GET_USERS"]="GET_USERS",e["UPDATE_USER"]="UPDATE_USER",e["DELETE_USER_ACCOUNT"]="DELETE_USER_ACCOUNT"}(E||(E={})),function(e){e["USER"]="USER",e["USERS"]="USERS",e["USERS_IS_SUCCESS"]="USERS_IS_SUCCESS",e["USERS_LOADING"]="USERS_LOADING",e["USERS_PAGINATION"]="USERS_PAGINATION"}(p||(p={})),function(e){e["UPDATE_USER"]="UPDATE_USER",e["UPDATE_USER_IN_USERS"]="UPDATE_USER_IN_USERS",e["UPDATE_USERS"]="UPDATE_USERS",e["UPDATE_USERS_LOADING"]="UPDATE_USERS_LOADING",e["UPDATE_USERS_PAGINATION"]="UPDATE_USERS_PAGINATION",e["UPDATE_IS_SUCCESS"]="UPDATE_IS_SUCCESS"}(T||(T={}));var A=n(52);const U={ACTIONS:o,GETTERS:i,MUTATIONS:l},O={ACTIONS:c,GETTERS:u,MUTATIONS:d},R={ACTIONS:m,GETTERS:S,MUTATIONS:_},I={ACTIONS:a,GETTERS:r,MUTATIONS:s},g={ACTIONS:E,GETTERS:p,MUTATIONS:T},w={ACTIONS:A.tW,GETTERS:A.JP,MUTATIONS:A.CW}},12:function(e,t,n){"use strict";n.d(t,{Z:function(){return re}});var a=n(3907),r=(n(1703),n(5167)),s=n(9669),o=n.n(s),i=n(2024);const l=o().create({baseURL:(0,i.k)()});var c=l,u=n(2540),d=n(8733),m=n(8602);const S=(e,t)=>{e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),r.Z["delete"](`users/${t.username}`).then((n=>{204===n.status?t.fromAdmin?d.Z.push("/admin/users"):e.dispatch(m.YN.ACTIONS.LOGOUT).then((()=>d.Z.push("/"))):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t)))},_={[m.RT.ACTIONS.EMPTY_USER](e){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.RT.MUTATIONS.UPDATE_USER,{})},[m.RT.ACTIONS.EMPTY_USERS](e){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.RT.MUTATIONS.UPDATE_USERS,[]),e.commit(m.RT.MUTATIONS.UPDATE_USERS_PAGINATION,{})},[m.RT.ACTIONS.GET_USER](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.RT.MUTATIONS.UPDATE_USERS_LOADING,!0),r.Z.get(`users/${t}`).then((t=>{"success"===t.data.status?e.commit(m.RT.MUTATIONS.UPDATE_USER,t.data.data.users[0]):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t))).finally((()=>e.commit(m.RT.MUTATIONS.UPDATE_USERS_LOADING,!1)))},[m.RT.ACTIONS.GET_USERS](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.RT.MUTATIONS.UPDATE_USERS_LOADING,!0),r.Z.get("users",{params:t}).then((t=>{"success"===t.data.status?(e.commit(m.RT.MUTATIONS.UPDATE_USERS,t.data.data.users),e.commit(m.RT.MUTATIONS.UPDATE_USERS_PAGINATION,t.data.pagination)):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t))).finally((()=>e.commit(m.RT.MUTATIONS.UPDATE_USERS_LOADING,!1)))},[m.RT.ACTIONS.UPDATE_USER](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.RT.MUTATIONS.UPDATE_IS_SUCCESS,!1);const n={};void 0!==t.admin&&(n.admin=t.admin),t.resetPassword&&(n.reset_password=t.resetPassword),t.activate&&(n.activate=t.activate),void 0!==t.new_email&&(n.new_email=t.new_email),r.Z.patch(`users/${t.username}`,n).then((n=>{"success"===n.data.status?(e.commit(m.RT.MUTATIONS.UPDATE_USER_IN_USERS,n.data.data.users[0]),(t.resetPassword||t.new_email)&&e.commit(m.RT.MUTATIONS.UPDATE_IS_SUCCESS,!0),(t.activate||t.new_email)&&e.commit(m.RT.MUTATIONS.UPDATE_USER,n.data.data.users[0])):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t))).finally((()=>e.commit(m.RT.MUTATIONS.UPDATE_USERS_LOADING,!1)))},[m.RT.ACTIONS.DELETE_USER_ACCOUNT](e,t){S(e,{username:t.username,fromAdmin:!0})}},{locale:E}=u.Z.global,p=e=>{localStorage.removeItem("authToken"),e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.gu.MUTATIONS.EMPTY_USER_STATS),e.commit(m.YN.MUTATIONS.CLEAR_AUTH_USER_TOKEN),e.commit(m.RT.MUTATIONS.UPDATE_USERS,[]),e.commit(m.aX.MUTATIONS.EMPTY_WORKOUTS),e.commit(m.aX.MUTATIONS.EMPTY_WORKOUT),d.Z.push("/login")},T={[m.YN.ACTIONS.CHECK_AUTH_USER](e){window.localStorage.authToken&&!e.getters[m.YN.GETTERS.IS_AUTHENTICATED]&&(e.commit(m.YN.MUTATIONS.UPDATE_AUTH_TOKEN,window.localStorage.authToken),e.dispatch(m.YN.ACTIONS.GET_USER_PROFILE))},[m.YN.ACTIONS.CONFIRM_ACCOUNT](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),c.post("auth/account/confirm",{token:t.token}).then((t=>{if("success"===t.data.status){const n=t.data.auth_token;window.localStorage.setItem("authToken",n),e.commit(m.YN.MUTATIONS.UPDATE_AUTH_TOKEN,n),e.dispatch(m.YN.ACTIONS.GET_USER_PROFILE).then((()=>d.Z.push("/")))}else(0,i.S)(e,null)})).catch((t=>{(0,i.S)(e,t)}))},[m.YN.ACTIONS.CONFIRM_EMAIL](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.YN.MUTATIONS.UPDATE_IS_SUCCESS,!1),c.post("/auth/email/update",{token:t.token}).then((n=>{"success"===n.data.status?(e.commit(m.YN.MUTATIONS.UPDATE_IS_SUCCESS,!0),t.refreshUser&&e.dispatch(m.YN.ACTIONS.GET_USER_PROFILE).then((()=>d.Z.push("/profile/edit/account"))),d.Z.push("/profile/edit/account")):(0,i.S)(e,null)})).catch((t=>{(0,i.S)(e,t)}))},[m.YN.ACTIONS.GET_USER_PROFILE](e){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),r.Z.get("auth/profile").then((t=>{"success"===t.data.status?(e.commit(m.YN.MUTATIONS.UPDATE_AUTH_USER_PROFILE,t.data.data),t.data.data.language&&(e.commit(m.SY.MUTATIONS.UPDATE_LANG,t.data.data.language),E.value=t.data.data.language),e.dispatch(m.O8.ACTIONS.GET_SPORTS)):((0,i.S)(e,null),p(e))})).catch((t=>{(0,i.S)(e,t),p(e)}))},[m.YN.ACTIONS.LOGIN_OR_REGISTER](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.YN.MUTATIONS.UPDATE_IS_REGISTRATION_SUCCESS,!1),c.post(`/auth/${t.actionType}`,t.formData).then((n=>{if("success"===n.data.status)if("login"===t.actionType){const a=n.data.auth_token;window.localStorage.setItem("authToken",a),e.commit(m.YN.MUTATIONS.UPDATE_AUTH_TOKEN,a),e.dispatch(m.YN.ACTIONS.GET_USER_PROFILE).then((()=>d.Z.push("string"===typeof t.redirectUrl?t.redirectUrl:"/")))}else d.Z.push("/login").then((()=>e.commit(m.YN.MUTATIONS.UPDATE_IS_REGISTRATION_SUCCESS,!0)));else(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t)))},[m.YN.ACTIONS.LOGOUT](e){p(e)},[m.YN.ACTIONS.UPDATE_USER_PROFILE](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!0),r.Z.post("auth/profile/edit",t).then((t=>{"success"===t.data.status?(e.commit(m.YN.MUTATIONS.UPDATE_AUTH_USER_PROFILE,t.data.data),d.Z.push("/profile")):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t))).finally((()=>e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!1)))},[m.YN.ACTIONS.UPDATE_USER_ACCOUNT](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!0),e.commit(m.YN.MUTATIONS.UPDATE_IS_SUCCESS,!1),r.Z.patch("auth/profile/edit/account",t).then((t=>{"success"===t.data.status?(e.commit(m.YN.MUTATIONS.UPDATE_AUTH_USER_PROFILE,t.data.data),e.commit(m.YN.MUTATIONS.UPDATE_IS_SUCCESS,!0)):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t))).finally((()=>e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!1)))},[m.YN.ACTIONS.UPDATE_USER_PREFERENCES](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!0),r.Z.post("auth/profile/edit/preferences",t).then((t=>{"success"===t.data.status?(e.commit(m.YN.MUTATIONS.UPDATE_AUTH_USER_PROFILE,t.data.data),e.commit(m.SY.MUTATIONS.UPDATE_LANG,t.data.data.language),E.value=t.data.data.language,d.Z.push("/profile/preferences")):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t))).finally((()=>e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!1)))},[m.YN.ACTIONS.RESET_USER_SPORT_PREFERENCES](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!0),r.Z["delete"](`auth/profile/reset/sports/${t}`).then((t=>{204===t.status?e.dispatch(m.O8.ACTIONS.GET_SPORTS):(0,i.S)(e,null)})).catch((t=>{(0,i.S)(e,t),e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!1)}))},[m.YN.ACTIONS.UPDATE_USER_SPORT_PREFERENCES](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!0),r.Z.post("auth/profile/edit/sports",t).then((t=>{"success"===t.data.status?e.dispatch(m.O8.ACTIONS.GET_SPORTS):(0,i.S)(e,null)})).catch((t=>{(0,i.S)(e,t),e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!1)}))},[m.YN.ACTIONS.UPDATE_USER_PICTURE](e,t){if(e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!0),!t.picture)throw new Error("No file part");const n=new FormData;n.append("file",t.picture),r.Z.post("auth/picture",n,{headers:{"content-type":"multipart/form-data"}}).then((t=>{"success"===t.data.status?e.dispatch(m.YN.ACTIONS.GET_USER_PROFILE).then((()=>d.Z.push("/profile"))):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t))).finally((()=>e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!1)))},[m.YN.ACTIONS.DELETE_ACCOUNT](e,t){S(e,t)},[m.YN.ACTIONS.DELETE_PICTURE](e){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!0),r.Z["delete"]("auth/picture").then((t=>{204===t.status?e.dispatch(m.YN.ACTIONS.GET_USER_PROFILE).then((()=>d.Z.push("/profile"))):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t))).finally((()=>e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!1)))},[m.YN.ACTIONS.SEND_PASSWORD_RESET_REQUEST](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),c.post("auth/password/reset-request",t).then((t=>{"success"===t.data.status?d.Z.push("/password-reset/sent"):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t)))},[m.YN.ACTIONS.RESEND_ACCOUNT_CONFIRMATION_EMAIL](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),c.post("auth/account/resend-confirmation",t).then((t=>{"success"===t.data.status?d.Z.push("/account-confirmation/email-sent"):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t)))},[m.YN.ACTIONS.RESET_USER_PASSWORD](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),c.post("auth/password/update",t).then((t=>{"success"===t.data.status?d.Z.push("/password-reset/password-updated"):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t)))}},A={[m.YN.GETTERS.AUTH_TOKEN]:e=>e.authToken,[m.YN.GETTERS.AUTH_USER_PROFILE]:e=>e.authUserProfile,[m.YN.GETTERS.IS_AUTHENTICATED]:e=>null!==e.authToken,[m.YN.GETTERS.IS_ADMIN]:e=>e.authUserProfile&&e.authUserProfile.admin,[m.YN.GETTERS.IS_REGISTRATION_SUCCESS]:e=>e.isRegistrationSuccess,[m.YN.GETTERS.IS_SUCCESS]:e=>e.isSuccess,[m.YN.GETTERS.USER_LOADING]:e=>e.loading},U={[m.YN.MUTATIONS.CLEAR_AUTH_USER_TOKEN](e){e.authToken=null,e.authUserProfile={}},[m.YN.MUTATIONS.UPDATE_AUTH_TOKEN](e,t){e.authToken=t},[m.YN.MUTATIONS.UPDATE_AUTH_USER_PROFILE](e,t){e.authUserProfile=t},[m.YN.MUTATIONS.UPDATE_IS_REGISTRATION_SUCCESS](e,t){e.isRegistrationSuccess=t},[m.YN.MUTATIONS.UPDATE_IS_SUCCESS](e,t){e.isSuccess=t},[m.YN.MUTATIONS.UPDATE_USER_LOADING](e,t){e.loading=t}},O={authToken:null,authUserProfile:{},isSuccess:!1,isRegistrationSuccess:!1,loading:!1},R={state:O,actions:T,getters:A,mutations:U};var I=R;const g={[m.SY.ACTIONS.GET_APPLICATION_CONFIG](e){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.SY.MUTATIONS.UPDATE_APPLICATION_LOADING,!0),r.Z.get("config").then((t=>{"success"===t.data.status?e.commit(m.SY.MUTATIONS.UPDATE_APPLICATION_CONFIG,t.data.data):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t))).finally((()=>e.commit(m.SY.MUTATIONS.UPDATE_APPLICATION_LOADING,!1)))},[m.SY.ACTIONS.GET_APPLICATION_STATS](e){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),r.Z.get("stats/all").then((t=>{"success"===t.data.status?e.commit(m.SY.MUTATIONS.UPDATE_APPLICATION_STATS,t.data.data):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t)))},[m.SY.ACTIONS.UPDATE_APPLICATION_CONFIG](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),r.Z.patch("config",t).then((t=>{"success"===t.data.status?(e.commit(m.SY.MUTATIONS.UPDATE_APPLICATION_CONFIG,t.data.data),d.Z.push("/admin/application")):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t)))}},w={[m.SY.GETTERS.APP_CONFIG]:e=>e.application.config,[m.SY.GETTERS.APP_LOADING]:e=>e.appLoading,[m.SY.GETTERS.APP_STATS]:e=>e.application.statistics,[m.SY.GETTERS.ERROR_MESSAGES]:e=>e.errorMessages,[m.SY.GETTERS.LANGUAGE]:e=>e.language,[m.SY.GETTERS.LOCALE]:e=>e.locale};var v=n(6287);const f={[m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES](e){e.errorMessages=null},[m.SY.MUTATIONS.SET_ERROR_MESSAGES](e,t){e.errorMessages=t},[m.SY.MUTATIONS.UPDATE_APPLICATION_CONFIG](e,t){e.application.config=t},[m.SY.MUTATIONS.UPDATE_APPLICATION_LOADING](e,t){e.appLoading=t},[m.SY.MUTATIONS.UPDATE_APPLICATION_STATS](e,t){e.application.statistics=t},[m.SY.MUTATIONS.UPDATE_LANG](e,t){e.language=t,e.locale=v.v1[t]}};var N=n(5826);const h={root:!0,language:"en",locale:N.Z,errorMessages:null,application:{statistics:{sports:0,uploads_dir_size:0,users:0,workouts:0}},appLoading:!1},C={[m.O8.ACTIONS.GET_SPORTS](e){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),r.Z.get("sports").then((t=>{"success"===t.data.status?(e.commit(m.O8.MUTATIONS.SET_SPORTS,t.data.data.sports),e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!1)):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t)))},[m.O8.ACTIONS.UPDATE_SPORTS](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),r.Z.patch(`sports/${t.id}`,{is_active:t.isActive}).then((t=>{"success"===t.data.status?e.dispatch(m.O8.ACTIONS.GET_SPORTS):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t)))}},D={[m.O8.GETTERS.SPORTS]:e=>e.sports},k={[m.O8.MUTATIONS.SET_SPORTS](e,t){e.sports=t}},z={sports:[]},P={state:z,actions:C,getters:D,mutations:k};var M=P;const y={[m.gu.ACTIONS.GET_USER_STATS](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),r.Z.get(`stats/${t.username}/${t.filterType}`,{params:t.params}).then((t=>{"success"===t.data.status?e.commit(m.gu.MUTATIONS.UPDATE_USER_STATS,t.data.data.statistics):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t)))}},b={[m.gu.GETTERS.USER_STATS]:e=>e.statistics},L={[m.gu.MUTATIONS.UPDATE_USER_STATS](e,t){e.statistics=t},[m.gu.MUTATIONS.EMPTY_USER_STATS](e){e.statistics={}}},G={statistics:{}},F={state:G,actions:y,getters:b,mutations:L};var W=F;const Y={[m.RT.GETTERS.USER]:e=>e.user,[m.RT.GETTERS.USERS]:e=>e.users,[m.RT.GETTERS.USERS_IS_SUCCESS]:e=>e.isSuccess,[m.RT.GETTERS.USERS_LOADING]:e=>e.loading,[m.RT.GETTERS.USERS_PAGINATION]:e=>e.pagination},x={[m.RT.MUTATIONS.UPDATE_USER](e,t){e.user=t},[m.RT.MUTATIONS.UPDATE_USER_IN_USERS](e,t){e.users=e.users.map((e=>e.username===t.username?t:e))},[m.RT.MUTATIONS.UPDATE_USERS](e,t){e.users=t},[m.RT.MUTATIONS.UPDATE_USERS_LOADING](e,t){e.loading=t},[m.RT.MUTATIONS.UPDATE_USERS_PAGINATION](e,t){e.pagination=t},[m.RT.MUTATIONS.UPDATE_IS_SUCCESS](e,t){e.isSuccess=t}},$={user:{},users:[],loading:!1,isSuccess:!1,pagination:{}},Z={state:$,actions:_,getters:Y,mutations:x};var K=Z,B=n(52);const H=(e,t,n)=>{e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),r.Z.get("workouts",{params:t}).then((t=>{"success"===t.data.status?(e.commit(m.aX.MUTATIONS[n],t.data.data.workouts),n===B.CW.SET_USER_WORKOUTS&&e.commit(m.aX.MUTATIONS.SET_WORKOUTS_PAGINATION,t.data.pagination)):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t)))},q={[m.aX.ACTIONS.GET_CALENDAR_WORKOUTS](e,t){e.commit(m.aX.MUTATIONS.EMPTY_CALENDAR_WORKOUTS),H(e,t,B.CW.SET_CALENDAR_WORKOUTS)},[m.aX.ACTIONS.GET_USER_WORKOUTS](e,t){H(e,t,B.CW.SET_USER_WORKOUTS)},[m.aX.ACTIONS.GET_TIMELINE_WORKOUTS](e,t){H(e,t,B.CW.SET_TIMELINE_WORKOUTS)},[m.aX.ACTIONS.GET_MORE_TIMELINE_WORKOUTS](e,t){H(e,t,B.CW.ADD_TIMELINE_WORKOUTS)},[m.aX.ACTIONS.GET_WORKOUT_DATA](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.aX.MUTATIONS.SET_WORKOUT_LOADING,!0);const n=t.segmentId?`/segment/${t.segmentId}`:"";r.Z.get(`workouts/${t.workoutId}`).then((a=>{const s=a.data.data.workouts[0];if("success"===a.data.status){if(t.segmentId&&(0===s.segments.length||!s.segments[+t.segmentId-1]))throw new Error("WORKOUT_NOT_FOUND");e.commit(m.aX.MUTATIONS.SET_WORKOUT,a.data.data.workouts[0]),a.data.data.workouts[0].with_gpx&&(r.Z.get(`workouts/${t.workoutId}/chart_data${n}`).then((t=>{"success"===t.data.status&&e.commit(m.aX.MUTATIONS.SET_WORKOUT_CHART_DATA,t.data.data.chart_data)})),r.Z.get(`workouts/${t.workoutId}/gpx${n}`).then((t=>{"success"===t.data.status&&e.commit(m.aX.MUTATIONS.SET_WORKOUT_GPX,t.data.data.gpx)})))}else e.commit(m.aX.MUTATIONS.EMPTY_WORKOUT),(0,i.S)(e,null)})).catch((t=>{e.commit(m.aX.MUTATIONS.EMPTY_WORKOUT),(0,i.S)(e,t)})).finally((()=>e.commit(m.aX.MUTATIONS.SET_WORKOUT_LOADING,!1)))},[m.aX.ACTIONS.DELETE_WORKOUT](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.aX.MUTATIONS.SET_WORKOUT_LOADING,!0),r.Z["delete"](`workouts/${t.workoutId}`).then((()=>{e.commit(m.aX.MUTATIONS.EMPTY_WORKOUT),e.dispatch(m.YN.ACTIONS.GET_USER_PROFILE),d.Z.push("/")})).catch((t=>{(0,i.S)(e,t)})).finally((()=>e.commit(m.aX.MUTATIONS.SET_WORKOUT_LOADING,!1)))},[m.aX.ACTIONS.EDIT_WORKOUT](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.aX.MUTATIONS.SET_WORKOUT_LOADING,!0),r.Z.patch(`workouts/${t.workoutId}`,t.data).then((()=>{e.dispatch(m.YN.ACTIONS.GET_USER_PROFILE),e.dispatch(m.aX.ACTIONS.GET_WORKOUT_DATA,{workoutId:t.workoutId}).then((()=>{d.Z.push({name:"Workout",params:{workoutId:t.workoutId}})}))})).catch((t=>{(0,i.S)(e,t)})).finally((()=>e.commit(m.aX.MUTATIONS.SET_WORKOUT_LOADING,!1)))},[m.aX.ACTIONS.ADD_WORKOUT](e,t){if(e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.aX.MUTATIONS.SET_WORKOUT_LOADING,!0),!t.file)throw new Error("No file part");const n=new FormData;n.append("file",t.file),n.append("data",`{"sport_id": ${t.sport_id}, "notes": "${t.notes}"}`),r.Z.post("workouts",n,{headers:{"content-type":"multipart/form-data"}}).then((t=>{if("created"===t.data.status){e.dispatch(m.YN.ACTIONS.GET_USER_PROFILE);const n=t.data.data.workouts[0];d.Z.push(1===t.data.data.workouts.length?`/workouts/${n.id}`:"/")}})).catch((t=>{(0,i.S)(e,t)})).finally((()=>e.commit(m.aX.MUTATIONS.SET_WORKOUT_LOADING,!1)))},[m.aX.ACTIONS.ADD_WORKOUT_WITHOUT_GPX](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.aX.MUTATIONS.SET_WORKOUT_LOADING,!0),r.Z.post("workouts/no_gpx",t).then((t=>{if("created"===t.data.status){e.dispatch(m.YN.ACTIONS.GET_USER_PROFILE);const n=t.data.data.workouts[0];d.Z.push(`/workouts/${n.id}`)}})).catch((t=>{(0,i.S)(e,t)})).finally((()=>e.commit(m.aX.MUTATIONS.SET_WORKOUT_LOADING,!1)))}},j={[m.aX.GETTERS.CALENDAR_WORKOUTS]:e=>e.calendar_workouts,[m.aX.GETTERS.TIMELINE_WORKOUTS]:e=>e.timeline_workouts,[m.aX.GETTERS.USER_WORKOUTS]:e=>e.user_workouts,[m.aX.GETTERS.WORKOUT_DATA]:e=>e.workoutData,[m.aX.GETTERS.WORKOUTS_PAGINATION]:e=>e.pagination},V={[m.aX.MUTATIONS.ADD_TIMELINE_WORKOUTS](e,t){e.timeline_workouts=e.timeline_workouts.concat(t)},[m.aX.MUTATIONS.SET_CALENDAR_WORKOUTS](e,t){e.calendar_workouts=t},[m.aX.MUTATIONS.SET_TIMELINE_WORKOUTS](e,t){e.timeline_workouts=t},[m.aX.MUTATIONS.SET_USER_WORKOUTS](e,t){e.user_workouts=t},[m.aX.MUTATIONS.SET_WORKOUTS_PAGINATION](e,t){e.pagination=t},[m.aX.MUTATIONS.SET_WORKOUT](e,t){e.workoutData.workout=t},[m.aX.MUTATIONS.SET_WORKOUT_CHART_DATA](e,t){e.workoutData.chartData=t},[m.aX.MUTATIONS.SET_WORKOUT_GPX](e,t){e.workoutData.gpx=t},[m.aX.MUTATIONS.SET_WORKOUT_LOADING](e,t){e.workoutData.loading=t},[m.aX.MUTATIONS.EMPTY_CALENDAR_WORKOUTS](e){e.calendar_workouts=[]},[m.aX.MUTATIONS.EMPTY_WORKOUTS](e){e.calendar_workouts=[],e.user_workouts=[],e.timeline_workouts=[]},[m.aX.MUTATIONS.EMPTY_WORKOUT](e){e.workoutData={gpx:"",loading:!1,workout:{},chartData:[]}}},X={calendar_workouts:[],timeline_workouts:[],pagination:{},user_workouts:[],workoutData:{gpx:"",loading:!1,workout:{},chartData:[]}},J={state:X,actions:q,getters:j,mutations:V};var Q=J;const ee={authUserModule:I,sportsModule:M,statsModule:W,usersModule:K,workoutsModule:Q},te={state:h,actions:g,getters:w,mutations:f,modules:ee};var ne=te;const ae=(0,a.MT)(ne);var re=ae},52:function(e,t,n){"use strict";var a,r,s;n.d(t,{CW:function(){return s},JP:function(){return r},tW:function(){return a}}),function(e){e["ADD_WORKOUT"]="ADD_WORKOUT",e["ADD_WORKOUT_WITHOUT_GPX"]="ADD_WORKOUT_WITHOUT_GPX",e["DELETE_WORKOUT"]="DELETE_WORKOUT",e["EDIT_WORKOUT"]="EDIT_WORKOUT",e["GET_CALENDAR_WORKOUTS"]="GET_CALENDAR_WORKOUTS",e["GET_USER_WORKOUTS"]="GET_USER_WORKOUTS",e["GET_TIMELINE_WORKOUTS"]="GET_TIMELINE_WORKOUTS",e["GET_MORE_TIMELINE_WORKOUTS"]="GET_MORE_TIMELINE_WORKOUTS",e["GET_WORKOUT_DATA"]="GET_WORKOUT_DATA"}(a||(a={})),function(e){e["CALENDAR_WORKOUTS"]="CALENDAR_WORKOUTS",e["TIMELINE_WORKOUTS"]="TIMELINE_WORKOUTS",e["USER_WORKOUTS"]="USER_WORKOUTS",e["WORKOUT_DATA"]="WORKOUT_DATA",e["WORKOUTS_PAGINATION"]="WORKOUTS_PAGINATION"}(r||(r={})),function(e){e["ADD_TIMELINE_WORKOUTS"]="ADD_TIMELINE_WORKOUTS",e["EMPTY_WORKOUTS"]="EMPTY_WORKOUTS",e["EMPTY_CALENDAR_WORKOUTS"]="EMPTY_CALENDAR_WORKOUTS",e["EMPTY_WORKOUT"]="EMPTY_WORKOUT",e["SET_CALENDAR_WORKOUTS"]="SET_CALENDAR_WORKOUTS",e["SET_TIMELINE_WORKOUTS"]="SET_TIMELINE_WORKOUTS",e["SET_USER_WORKOUTS"]="SET_USER_WORKOUTS",e["SET_WORKOUT"]="SET_WORKOUT",e["SET_WORKOUT_GPX"]="SET_WORKOUT_GPX",e["SET_WORKOUT_CHART_DATA"]="SET_WORKOUT_CHART_DATA",e["SET_WORKOUT_LOADING"]="SET_WORKOUT_LOADING",e["SET_WORKOUTS_PAGINATION"]="SET_WORKOUTS_PAGINATION"}(s||(s={}))},9917:function(e,t,n){"use strict";n.d(t,{o:function(){return r}});var a=n(3907);function r(){return(0,a.oR)()}},2766:function(e,t,n){"use strict";n.d(t,{Ne:function(){return c},fS:function(){return a},lM:function(){return d},pm:function(){return l}});n(6699);const a=["asc","desc"],r=1,s=10,o=(e,t)=>e&&"string"===typeof e&&+e>0?+e:t,i=(e,t,n)=>e&&"string"===typeof e&&t.includes(e)?e:n,l=(e,t,n,l)=>{const c=l||{},u=c.defaultSort||"asc",d={};return d.page=o(e.page,r),d.per_page=o(e.per_page,s),d.order=i(e.order,a,u),d.order_by=i(e.order_by,t,n),"string"===typeof e.q?d.q=e.q:delete d.q,d},c=["from","to","ave_speed_from","ave_speed_to","max_speed_from","max_speed_to","distance_from","distance_to","duration_from","duration_to","sport_id"],u=(e,t=1)=>Array.from({length:e-t+1},((e,n)=>t+n)),d=(e,t)=>{if(e<0)return[];if(e<9)return u(e);let n=[1,2];return t<4?n=n.concat([3,4,5]):t<6?n=n.concat(u(t+2,3)):(n=n.concat(["..."]),t=e-2&&n[n.length-1]{switch(e){case"week":return(0,a.Z)(t,{weekStartsOn:n?1:0});case"year":return(0,r.Z)(t);case"month":return(0,s.Z)(t);default:throw new Error(`Invalid duration, expected: "week", "month", "year", got: "${e}"`)}},_=(e,t)=>{switch(e){case"week":return(0,o.Z)(t,7);case"year":return(0,i.Z)(t,1);case"month":return(0,l.Z)(t,1);default:throw new Error(`Invalid duration, expected: "week", "month", "year", got: "${e}"`)}},E=(e,t)=>(0,m.utcToZonedTime)(new Date(e),t),p=(e,t)=>{const n=(0,s.Z)(e),r=(0,c.Z)(e),o=t?1:0;return{start:(0,a.Z)(n,{weekStartsOn:o}),end:(0,u.Z)(r,{weekStartsOn:o})}},T=(e,t=null,n=null)=>(t||(t="yyyy/MM/dd"),n||(n="HH:mm"),{workout_date:(0,d.Z)(e,t),workout_time:(0,d.Z)(e,n)})},8966:function(e,t,n){"use strict";n.d(t,{Z:function(){return r},j:function(){return s}});const a=["bytes","KB","MB","GB","TB"],r=(e,t=!0)=>{const n=Math.floor(Math.log(e)/Math.log(1024));if(!e)return t?"0 bytes":{size:"0",suffix:"bytes"};const r=(e/Math.pow(1024,n)).toFixed(1),s=a[n];return t?`${r}${s}`:{size:r,suffix:s}},s=e=>{const t=e/1048576;return+t.toFixed(2)}},2024:function(e,t,n){"use strict";n.d(t,{S:function(){return s},k:function(){return r}});n(6699);var a=n(8602);const r=()=>"/api/",s=(e,t,n="UNKNOWN")=>{const r=t?t.response?413===t.response.status?"file size is greater than the allowed size":t.response.data.message?t.response.data.message:n:t.message?t.message:n:n;e.commit(a.SY.MUTATIONS.SET_ERROR_MESSAGES,r.includes("\n")?r.split("\n").filter((e=>""!==e)).map((e=>`api.ERROR.${e}`)):`api.ERROR.${r}`)}},6287:function(e,t,n){"use strict";n.d(t,{mT:function(){return c},v1:function(){return o},zK:function(){return i}});var a=n(5826),r=n(5830),s=n(2540);const o={en:a.Z,fr:r.Z},i={en:"English",fr:"Français"},{availableLocales:l}=s.Z.global,c=l.map((e=>({label:i[e],value:e})))},631:function(e,t,n){"use strict";n.d(t,{CM:function(){return l},PA:function(){return i},Yx:function(){return r},Zo:function(){return a},xH:function(){return o}});n(6699);const a={"Cycling (Sport)":"#4c9792","Cycling (Transport)":"#88af98",Hiking:"#bb757c","Mountain Biking":"#d4b371","Mountain Biking (Electric)":"#fc9d6f",Rowing:"#fcce72",Running:"#835b83","Skiing (Alpine)":"#67a4bd","Skiing (Cross Country)":"#9498d0",Snowshoes:"#5780a8",Trail:"#09a98a",Walking:"#838383"},r=e=>{const t={};return e.map((e=>t[e.id]=e.color?e.color:a[e.label])),t},s=(e,t)=>{const n=e.translatedLabel.toLowerCase(),a=t.translatedLabel.toLowerCase();return n>a?1:ne.filter((e=>"all"===n||(a.includes(e.id)||e[n]))).map((e=>({...e,translatedLabel:t(`sports.${e.label}.LABEL`)}))).sort(s),i=(e,t)=>t.filter((t=>t.id===e.sport_id)).map((e=>e.label))[0],l=(e,t)=>t.filter((t=>t.id===e.sport_id)).map((e=>e.color))[0]},9318:function(e,t,n){"use strict";n.d(t,{FN:function(){return N},aZ:function(){return f},v1:function(){return v}});n(6699);var a=n(4850),r=n(8148),s=n(9319),o=n(584),i=n(4559),l=n(3703),c=n(876),u=n(7090),d=n(4135),m=n(1593),S=n(7982),_=n(3500),E=n(1640),p=n(6558),T=n(631),A=n(3649);const U={week:{api:"yyyy-MM-dd",chart:"dd/MM/yyyy"},month:{api:"yyyy-MM",chart:"MM/yyyy"},year:{api:"yyyy",chart:"yyyy"}},O=["average_speed","nb_workouts","total_duration","total_distance","total_ascent","total_descent"],R=(e,t)=>{const n=[];for(let a=(0,p.Nh)(e.duration,e.start,t);a<=e.end;a=(0,p.xA)(e.duration,a))n.push(a);return n},I=(e,t,n=!1)=>{const a={label:e,backgroundColor:[t],data:[]};return n&&(a.type="line",a.borderColor=[t],a.spanGaps=!0),a},g=e=>{const t={average_speed:[],nb_workouts:[],total_distance:[],total_duration:[],total_ascent:[],total_descent:[]};return e.map((e=>{const n=e.color?e.color:T.Zo[e.label];t.average_speed.push(I(e.label,n,!0)),t.nb_workouts.push(I(e.label,n)),t.total_distance.push(I(e.label,n)),t.total_duration.push(I(e.label,n)),t.total_ascent.push(I(e.label,n)),t.total_descent.push(I(e.label,n))})),t},w=(e,t,n)=>{switch(e){case"average_speed":case"total_distance":case"total_ascent":case"total_descent":return(0,A.f3)(["average_speed","total_distance"].includes(e)?"km":"m",t,n);default:case"nb_workouts":case"total_duration":return t}},v=(e,t,n,r,s,o)=>{const i=R(e,t),l=U[e.duration],c=n.filter((e=>r.includes(e.id))),u=[],d=g(c),m={};return c.map((e=>m[e.label]=e.id)),i.map((e=>{const t=(0,a.Z)(e,l.api),n=(0,a.Z)(e,l.chart);u.push(n),O.map((e=>{d[e].map((n=>{n.data.push(s!=={}&&t in s&&m[n.label]in s[t]?w(e,s[t][m[n.label]][e],o):"average_speed"===e?null:0)}))}))})),{labels:u,datasets:d}},f=(e,t,n)=>{const a=n?1:0,m="year"===t?(0,r.Z)((0,s.Z)(e,9)):"week"===t?(0,o.Z)((0,i.Z)(e,2),{weekStartsOn:a}):(0,l.Z)((0,i.Z)(e,11)),S="year"===t?(0,c.Z)(e):"week"===t?(0,u.Z)(e,{weekStartsOn:a}):(0,d.Z)(e);return{duration:t,end:S,start:m}},N=(e,t,n)=>{const{duration:a,start:p,end:T}=e,A=n?1:0;return{duration:a,end:"year"===a?(0,c.Z)(t?(0,s.Z)(T,1):(0,m.Z)(T,1)):"week"===a?(0,u.Z)(t?(0,S.Z)(T,1):(0,_.Z)(T,1),{weekStartsOn:A}):(0,d.Z)(t?(0,i.Z)(T,1):(0,E.Z)(T,1)),start:"year"===a?(0,r.Z)(t?(0,s.Z)(p,1):(0,m.Z)(p,1)):"week"===a?(0,o.Z)(t?(0,S.Z)(p,1):(0,_.Z)(p,1),{weekStartsOn:A}):(0,l.Z)(t?(0,i.Z)(p,1):(0,E.Z)(p,1))}}},3649:function(e,t,n){"use strict";n.d(t,{Dl:function(){return a},f3:function(){return o},sC:function(){return s}});const a={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"}},r={metric:{imperial:3.280839895,metric:1},imperial:{metric:1/3.280839895,imperial:1}},s=(e,t,n,s=3)=>{const o=a[t],i=a[n],l=e*o.multiplier*r[o.system][i.system]/i.multiplier;return null!==s?parseFloat(l.toFixed(s)):l},o=(e,t,n)=>{const r=n?a[e].defaultTarget:e;return n?s(t,e,r,2):t}},3768:function(e,t,n){"use strict";n.d(t,{BN:function(){return s},EX:function(){return r},eR:function(){return o}});var a=n(3649);const r=(e,t,n)=>{const r={speed:{label:t("workouts.SPEED"),backgroundColor:["#FFFFFF"],borderColor:["#8884d8"],borderWidth:2,data:[],yAxisID:"ySpeed"},elevation:{label:t("workouts.ELEVATION"),backgroundColor:["#e5e5e5"],borderColor:["#cccccc"],borderWidth:1,fill:!0,data:[],yAxisID:"yElevation"}},s=[],o=[],i=[];return e.map((e=>{s.push(e.distance),o.push(e.duration),r.speed.data.push((0,a.f3)("km",e.speed,n)),r.elevation.data.push((0,a.f3)("m",e.elevation,n)),i.push({latitude:e.latitude,longitude:e.longitude})})),{distance_labels:s,duration_labels:o,datasets:r,coordinates:i}},s=e=>{const t=e.length;if(0===t)return{};const n={};return e.map((e=>{n[e.sport_id]||(n[e.sport_id]={count:0,percentage:0}),n[e.sport_id].count+=1,n[e.sport_id].percentage=n[e.sport_id].count/t})),n},o={order:"desc",order_by:"workout_date"}},2531:function(e,t,n){"use strict";n.d(t,{Z:function(){return d}});var a=n(6252);const r={class:"card"},s={class:"card-title"},o={class:"card-content"};function i(e,t){return(0,a.wg)(),(0,a.iD)("div",r,[(0,a._)("div",s,[(0,a.WI)(e.$slots,"title")]),(0,a._)("div",o,[(0,a.WI)(e.$slots,"content")])])}var l=n(3744);const c={},u=(0,l.Z)(c,[["render",i]]);var d=u},8626:function(e,t,n){"use strict";n.d(t,{Z:function(){return p}});var a=n(6252),r=n(3577),s=n(2262);const o={class:"table-selects"},i=["value"],l=["value"],c=["value"],u=["value"],d=["value"],m=["value"];var S=(0,a.aZ)({name:"FilterSelects",props:{order_by:null,query:null,sort:null,message:null},emits:["updateSelect"],setup(e,{emit:t}){const n=e,{order_by:S,query:_,sort:E,message:p}=(0,s.BK)(n),T=[10,25,50,100];function A(e){t("updateSelect",e.target.id,e.target.value)}return(e,t)=>((0,a.wg)(),(0,a.iD)("div",o,[(0,a._)("label",null,[(0,a.Uk)((0,r.zw)(e.$t("common.SELECTS.ORDER_BY.LABEL"))+": ",1),(0,a._)("select",{name:"order_by",id:"order_by",value:(0,s.SU)(_).order_by,onChange:A},[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,s.SU)(S),(t=>((0,a.wg)(),(0,a.iD)("option",{value:t,key:t},(0,r.zw)(e.$t(`${(0,s.SU)(p)}.${t.toUpperCase()}`)),9,l)))),128))],40,i)]),(0,a._)("label",null,[(0,a.Uk)((0,r.zw)(e.$t("common.SELECTS.ORDER.LABEL"))+": ",1),(0,a._)("select",{name:"order",id:"order",value:(0,s.SU)(_).order,onChange:A},[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,s.SU)(E),(t=>((0,a.wg)(),(0,a.iD)("option",{value:t,key:t},(0,r.zw)(e.$t(`common.SELECTS.ORDER.${t.toUpperCase()}`)),9,u)))),128))],40,c)]),(0,a._)("label",null,[(0,a.Uk)((0,r.zw)(e.$t("common.SELECTS.PER_PAGE.LABEL"))+": ",1),(0,a._)("select",{name:"per_page",id:"per_page",value:(0,s.SU)(_).per_page,onChange:A},[((0,a.wg)(),(0,a.iD)(a.HY,null,(0,a.Ko)(T,(e=>(0,a._)("option",{value:e,key:e},(0,r.zw)(e),9,m))),64))],40,d)])]))}}),_=n(3744);const E=(0,_.Z)(S,[["__scopeId","data-v-72463173"]]);var p=E},7167:function(e,t,n){"use strict";n.d(t,{Z:function(){return d}});var a=n(6252);const r={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 -51 512 512"},s=(0,a.uE)('',1),o=[s];function i(e,t,n,s,i,l){return(0,a.wg)(),(0,a.iD)("svg",r,o)}var l={name:"ErrorImg"},c=n(3744);const u=(0,c.Z)(l,[["render",i]]);var d=u},8273:function(e,t,n){"use strict";n.d(t,{Z:function(){return _}});var a=n(6252),r=n(2262),s=n(3577);const o={id:"error"},i={class:"error-content"};var l=(0,a.aZ)({name:"Error",props:{title:null,message:null,buttonText:null,path:{default:"/"}},setup(e){const t=e,{buttonText:n,title:l,message:c,path:u}=(0,r.BK)(t);return(e,t)=>((0,a.wg)(),(0,a.iD)("div",o,[(0,a._)("div",i,[(0,a._)("h1",null,(0,s.zw)((0,r.SU)(l)),1),(0,a._)("p",null,(0,s.zw)((0,r.SU)(c)),1),(0,r.SU)(n)?((0,a.wg)(),(0,a.iD)("button",{key:0,onClick:t[0]||(t[0]=t=>e.$router.push((0,r.SU)(u))),class:"upper"},(0,s.zw)((0,r.SU)(n)),1)):(0,a.kq)("",!0)])]))}}),c=n(3744);const u=(0,c.Z)(l,[["__scopeId","data-v-b60bfa80"]]);var d=u,m=(0,a.aZ)({name:"NotFound",props:{target:{default:"PAGE"}},setup(e){const t=e,{target:n}=(0,r.BK)(t);return(e,t)=>((0,a.wg)(),(0,a.j4)(d,{title:"404",message:e.$t(`error.NOT_FOUND.${(0,r.SU)(n)}`),"button-text":e.$t("common.HOME")},null,8,["message","button-text"]))}});const S=m;var _=S},6514:function(e,t,n){"use strict";n.d(t,{Z:function(){return p}});var a=n(6252),r=n(3577),s=n(2262),o=n(2766);const i=e=>((0,a.dD)("data-v-f38ea1b8"),e=e(),(0,a.Cn)(),e),l={class:"pagination-center","aria-label":"navigation"},c={class:"pagination"},u=i((()=>(0,a._)("i",{class:"fa fa-chevron-left","aria-hidden":"true"},null,-1))),d={key:0},m=i((()=>(0,a._)("i",{class:"fa fa-chevron-right","aria-hidden":"true"},null,-1)));var S=(0,a.aZ)({name:"Pagination",props:{pagination:null,path:null,query:null},setup(e){const t=e,{pagination:n,path:i,query:S}=(0,s.BK)(t);function _(e,t){const n=Object.assign({},S.value);return n.page=t?e+t:e,n}return(e,t)=>{const S=(0,a.up)("router-link");return(0,a.wg)(),(0,a.iD)("nav",l,[(0,a._)("ul",c,[(0,a._)("li",{class:(0,r.C_)(["page-prev",{disabled:!(0,s.SU)(n).has_prev}])},[(0,a.Wm)(S,{class:"page-link",to:{path:(0,s.SU)(i),query:_((0,s.SU)(n).page,-1)},disabled:!(0,s.SU)(n).has_prev},{default:(0,a.w5)((({navigate:t})=>[(0,a.WI)(e.$slots,"default",{onClick:e=>(0,s.SU)(n).has_next?t:null},(()=>[(0,a.Uk)((0,r.zw)(e.$t("api.PAGINATION.PREVIOUS"))+" ",1),u]))])),_:3},8,["to","disabled"])],2),((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,s.SU)(o.lM)((0,s.SU)(n).pages,(0,s.SU)(n).page),(e=>((0,a.wg)(),(0,a.iD)("li",{key:e,class:(0,r.C_)(["page",{active:e===(0,s.SU)(n).page}])},["..."===e?((0,a.wg)(),(0,a.iD)("span",d," ... ")):((0,a.wg)(),(0,a.j4)(S,{key:1,class:"page-link",to:{path:(0,s.SU)(i),query:_(+e)}},{default:(0,a.w5)((()=>[(0,a.Uk)((0,r.zw)(e),1)])),_:2},1032,["to"]))],2)))),128)),(0,a._)("li",{class:(0,r.C_)(["page-next",{disabled:!(0,s.SU)(n).has_next}])},[(0,a.Wm)(S,{class:"page-link",to:{path:(0,s.SU)(i),query:_((0,s.SU)(n).page,1)},disabled:!(0,s.SU)(n).has_next},{default:(0,a.w5)((({navigate:t})=>[(0,a.WI)(e.$slots,"default",{onClick:e=>(0,s.SU)(n).has_next?t:null},(()=>[(0,a.Uk)((0,r.zw)(e.$t("api.PAGINATION.NEXT"))+" ",1),m]))])),_:3},8,["to","disabled"])],2)])])}}}),_=n(3744);const E=(0,_.Z)(S,[["__scopeId","data-v-f38ea1b8"]]);var p=E},2047:function(e,t,n){"use strict";n.d(t,{Z:function(){return C}});var a=n(6252),r=n(2262),s=n(9963),o=n(3577),i=n(3257),l=n(8602),c=n(9917);const u=async e=>{const t=await n.e(881).then(n.bind(n,410)),a=await n.e(881).then(n.bind(n,8288)),r=await n.e(881).then(n.bind(n,6947)),s={en:a,fr:r},o=s[e],l={graphs:t.default.adjacencyGraphs,dictionary:{...t.default.dictionary,...o.default.dictionary}};i.Mu.setOptions(l)},d=e=>{switch(e){case 2:return"AVERAGE";case 3:return"GOOD";case 4:return"STRONG";default:return"WEAK"}},m={class:"password-strength"},S=["value"],_={key:0,class:"password-strength-details"},E={class:"password-strength-value"},p={key:0,class:"info-box"},T={class:"password-feedback"};var A=(0,a.aZ)({name:"PasswordStength",props:{password:null},setup(e){const t=e,{password:n}=(0,r.BK)(t),s=(0,c.o)(),A=(0,a.Fl)((()=>s.getters[l.SY.GETTERS.LANGUAGE])),U=(0,a.Fl)((()=>s.getters[l.YN.GETTERS.IS_SUCCESS])),O=(0,r.iH)(0),R=(0,r.iH)(""),I=(0,r.iH)([]),g=(0,r.iH)("0% 100%");function w(e){let t=(0,i.tu)(e);O.value=t.score,R.value=d(O.value),I.value=t.feedback.suggestions,g.value=100*O.value/4+"% 100%"}return(0,a.wF)((async()=>await u(A.value))),(0,a.YP)((()=>A.value),(async e=>{await u(e)})),(0,a.YP)((()=>n.value),(async e=>{U.value?R.value="":w(e)})),(e,t)=>((0,a.wg)(),(0,a.iD)("div",m,[(0,a._)("input",{class:(0,o.C_)(["password-slider",`strength-${O.value}`]),style:(0,o.j5)({backgroundSize:g.value}),type:"range",value:O.value,min:"0",max:"4",step:"1"},null,14,S),R.value?((0,a.wg)(),(0,a.iD)("div",_,[(0,a._)("span",E,(0,o.zw)(e.$t("user.PASSWORD_STRENGTH.LABEL"))+": "+(0,o.zw)(e.$t(`user.PASSWORD_STRENGTH.${R.value}`)),1),I.value.length>0?((0,a.wg)(),(0,a.iD)("div",p,[(0,a._)("ul",T,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)(I.value,(t=>((0,a.wg)(),(0,a.iD)("li",{key:t},(0,o.zw)(e.$t(`user.PASSWORD_STRENGTH.SUGGESTIONS.${t}`)),1)))),128))])])):(0,a.kq)("",!0)])):(0,a.kq)("",!0)]))}}),U=n(3744);const O=(0,U.Z)(A,[["__scopeId","data-v-79c9693d"]]);var R=O;const I=e=>((0,a.dD)("data-v-5a126514"),e=e(),(0,a.Cn)(),e),g={class:"password-input"},w=["id","disabled","placeholder","required","type"],v={key:0,class:"form-info"},f=I((()=>(0,a._)("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1)));var N=(0,a.aZ)({name:"PasswordInput",props:{checkStrength:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},id:{default:"password"},password:{default:""},placeholder:null,required:{type:Boolean,default:!1}},emits:["updatePassword","passwordError"],setup(e,{emit:t}){const n=e,{checkStrength:i,disabled:l,id:c,password:u,placeholder:d,required:m}=(0,r.BK)(n),S=(0,r.iH)(!1),_=(0,r.iH)("");function E(){S.value=!S.value}function p(e){t("updatePassword",e.target.value)}function T(){t("passwordError")}return(0,a.YP)((()=>u.value),(e=>{""===e&&(_.value="")})),(e,t)=>((0,a.wg)(),(0,a.iD)("div",g,[(0,a.wy)((0,a._)("input",{id:(0,r.SU)(c),disabled:(0,r.SU)(l),placeholder:(0,r.SU)(d),required:(0,r.SU)(m),type:S.value?"text":"password","onUpdate:modelValue":t[0]||(t[0]=e=>_.value=e),minlength:"8",onInput:p,onInvalid:T},null,40,w),[[s.YZ,_.value]]),(0,a._)("div",{class:"show-password",onClick:E},[(0,a.Uk)((0,o.zw)(e.$t(`user.${S.value?"HIDE":"SHOW"}_PASSWORD`))+" ",1),(0,a._)("i",{class:(0,o.C_)(["fa","fa-eye"+(S.value?"-slash":"")]),"aria-hidden":"true"},null,2)]),(0,r.SU)(i)?((0,a.wg)(),(0,a.iD)("div",v,[f,(0,a.Uk)(" "+(0,o.zw)(e.$t("user.PASSWORD_INFO")),1)])):(0,a.kq)("",!0),(0,r.SU)(i)?((0,a.wg)(),(0,a.j4)(R,{key:1,password:_.value},null,8,["password"])):(0,a.kq)("",!0)]))}});const h=(0,U.Z)(N,[["__scopeId","data-v-5a126514"]]);var C=h},2056:function(e,t,n){"use strict";n.d(t,{Z:function(){return u}});var a=n(6252),r=n(3577),s=n(2262),o=n(2024);const i=(0,a._)("div",{class:"map-attribution"},[(0,a._)("span",{class:"map-attribution-text"},"©"),(0,a._)("a",{class:"map-attribution-text",href:"https://www.openstreetmap.org/copyright",target:"_blank",rel:"noopener noreferrer"}," OpenStreetMap ")],-1);var l=(0,a.aZ)({name:"StaticMap",props:{workout:null,displayHover:{type:Boolean,default:!1}},setup(e){const t=e,{displayHover:n}=(0,s.BK)(t),l=`${(0,o.k)()}workouts/map/${t.workout.map}`;return(e,t)=>((0,a.wg)(),(0,a.iD)("div",{class:(0,r.C_)(["static-map",{"display-hover":(0,s.SU)(n)}])},[(0,s.SU)(n)?((0,a.wg)(),(0,a.iD)("img",{key:0,src:l,alt:""})):((0,a.wg)(),(0,a.iD)("div",{key:1,class:"bg-map-image",style:(0,r.j5)({backgroundImage:`url(${l})`})},null,4)),i],2))}});const c=l;var u=c},7402:function(e,t,n){"use strict";n.d(t,{Z:function(){return L}});var a=n(6252),r=n(3577);const s={class:"start-chart"},o={key:0},i={key:1},l={class:"chart-radio"},c=["checked"],u=["checked"],d=["checked"],m={key:0},S=["checked"],_={key:1},E=["checked"],p={key:2},T=["checked"];function A(e,t,n,A,U,O){const R=(0,a.up)("Chart");return(0,a.wg)(),(0,a.iD)("div",s,[e.hideChartIfNoData&&e.emptyStats?((0,a.wg)(),(0,a.iD)("div",o,(0,r.zw)(e.$t("workouts.NO_WORKOUTS")),1)):((0,a.wg)(),(0,a.iD)("div",i,[(0,a._)("div",l,[(0,a._)("label",null,[(0,a._)("input",{type:"radio",name:"total_distance",checked:"total_distance"===e.displayedData,onClick:t[0]||(t[0]=(...t)=>e.updateDisplayData&&e.updateDisplayData(...t))},null,8,c),(0,a.Uk)(" "+(0,r.zw)(e.$t("workouts.DISTANCE")),1)]),(0,a._)("label",null,[(0,a._)("input",{type:"radio",name:"total_duration",checked:"total_duration"===e.displayedData,onClick:t[1]||(t[1]=(...t)=>e.updateDisplayData&&e.updateDisplayData(...t))},null,8,u),(0,a.Uk)(" "+(0,r.zw)(e.$t("workouts.DURATION")),1)]),(0,a._)("label",null,[(0,a._)("input",{type:"radio",name:"nb_workouts",checked:"nb_workouts"===e.displayedData,onClick:t[2]||(t[2]=(...t)=>e.updateDisplayData&&e.updateDisplayData(...t))},null,8,d),(0,a.Uk)(" "+(0,r.zw)(e.$t("workouts.WORKOUT",2)),1)]),e.fullStats?((0,a.wg)(),(0,a.iD)("label",m,[(0,a._)("input",{type:"radio",name:"average_speed",checked:"average_speed"===e.displayedData,onClick:t[3]||(t[3]=(...t)=>e.updateDisplayData&&e.updateDisplayData(...t))},null,8,S),(0,a.Uk)(" "+(0,r.zw)(e.$t("workouts.AVERAGE_SPEED")),1)])):(0,a.kq)("",!0),e.fullStats?((0,a.wg)(),(0,a.iD)("label",_,[(0,a._)("input",{type:"radio",name:"total_ascent",checked:"total_ascent"===e.displayedData,onClick:t[4]||(t[4]=(...t)=>e.updateDisplayData&&e.updateDisplayData(...t))},null,8,E),(0,a.Uk)(" "+(0,r.zw)(e.$t("workouts.ASCENT")),1)])):(0,a.kq)("",!0),e.fullStats?((0,a.wg)(),(0,a.iD)("label",p,[(0,a._)("input",{type:"radio",name:"total_descent",checked:"total_descent"===e.displayedData,onClick:t[5]||(t[5]=(...t)=>e.updateDisplayData&&e.updateDisplayData(...t))},null,8,T),(0,a.Uk)(" "+(0,r.zw)(e.$t("workouts.DESCENT")),1)])):(0,a.kq)("",!0)]),e.labels.length>0?((0,a.wg)(),(0,a.j4)(R,{key:0,datasets:e.datasets,labels:e.labels,displayedData:e.displayedData,displayedSportIds:e.displayedSportIds,fullStats:e.fullStats,useImperialUnits:e.user.imperial_units},null,8,["datasets","labels","displayedData","displayedSportIds","fullStats","useImperialUnits"])):(0,a.kq)("",!0)]))])}var U=n(4850),O=n(2262);const R={class:"chart"};function I(e,t,n,r,s,o){const i=(0,a.up)("BarChart");return(0,a.wg)(),(0,a.iD)("div",R,[(0,a.Wm)(i,(0,a.dG)(e.barChartProps,{class:"bar-chart"}),null,16)])}var g=n(6518),w=n(3324);const v=(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 r=String(Math.floor(e/60)).padStart(2,"0"),s=String(e%60).padStart(2,"0");return t?`${"0"===n?"":`${n}d `}${"00"===a?"":`${a}h `}${r}m ${s}s`:`${"00"===a?"":`${a}:`}${r}:${s}`};var f=n(3649);const N=(e,t,n,a=!0)=>{const r="km",s=n?f.Dl[r].defaultTarget:r;switch(e){case"average_speed":return`${t.toFixed(2)} ${s}/h`;case"total_duration":return v(t,a);case"total_distance":return`${t.toFixed(2)} ${s}`;case"total_ascent":case"total_descent":return`${(t/1e3).toFixed(2)} ${s}`;default:return t.toString()}};var h=(0,a.aZ)({name:"Chart",components:{BarChart:g.vz},props:{datasets:{type:Object,required:!0},labels:{type:Object,required:!0},displayedData:{type:String,required:!0},displayedSportIds:{type:Array,required:!0},fullStats:{type:Boolean,required:!0},useImperialUnits:{type:Boolean,required:!0}},setup(e){const{t:t}=(0,w.QT)();function n(e){return isNaN(e)?0:+e}function r(e,t){return n(e)+n(t)}let s=(0,a.Fl)((()=>({labels:e.labels,datasets:JSON.parse(JSON.stringify(e.datasets))})));const o=(0,a.Fl)((()=>({responsive:!0,maintainAspectRatio:!0,animation:!1,layout:{padding:{top:e.fullStats?40:22}},scales:{x:{stacked:!0,grid:{drawOnChartArea:!1}},y:{stacked:"average_speed"!==e.displayedData,grid:{drawOnChartArea:!1},ticks:{maxTicksLimit:6,callback:function(t){return N(e.displayedData,+t,e.useImperialUnits,!1)}},afterFit:function(t){t.width=e.fullStats?75:60}}},plugins:{datalabels:{anchor:"end",align:"end",color:function(t){return"average_speed"===e.displayedData&&t.dataset.backgroundColor?t.dataset.backgroundColor[0]:"#666666"},rotation:function(t){return e.fullStats&&t.chart.chartArea.width<580?310:0},display:function(t){return!(e.fullStats&&t.chart.chartArea.width<300)&&("average_speed"!==e.displayedData||1==e.displayedSportIds.length&&"auto")},formatter:function(t,n){if("average_speed"===e.displayedData)return N(e.displayedData,t,e.useImperialUnits,!1);{const t=n.chart.data.datasets.map((e=>e.data[n.dataIndex])).reduce(((e,t)=>r(e,t)),0);return n.datasetIndex===e.displayedSportIds.length-1&&t>0?N(e.displayedData,t,e.useImperialUnits,!1):null}}},legend:{display:!1},tooltip:{interaction:{intersect:!0,mode:"index",position:"average_speed"===e.displayedData?"nearest":"average"},filter:function(e){return"0"!==e.formattedValue},callbacks:{label:function(n){let a=t(`sports.${n.dataset.label}.LABEL`)||"";return a&&(a+=": "),null!==n.parsed.y&&(a+=N(e.displayedData,n.parsed.y,e.useImperialUnits)),a},footer:function(n){if("average_speed"===e.displayedData)return"";let a=0;return n.map((e=>{a+=e.parsed.y})),`${t("common.TOTAL")}: `+N(e.displayedData,a,e.useImperialUnits)}}}}}))),{barChartProps:i}=(0,g.xZ)({chartData:s,options:o});return{barChartProps:i}}}),C=n(3744);const D=(0,C.Z)(h,[["render",I]]);var k=D,z=n(8602),P=n(9917),M=n(9318),y=(0,a.aZ)({name:"UserMonthStats",components:{Chart:k},props:{sports:{type:Object,required:!0},user:{type:Object,required:!0},chartParams:{type:Object,required:!0},displayedSportIds:{type:Array,default:()=>[]},fullStats:{type:Boolean,default:!1},hideChartIfNoData:{type:Boolean,default:!1}},setup(e){const t=(0,P.o)();let n=(0,O.iH)("total_distance");const r=(0,a.Fl)((()=>t.getters[z.gu.GETTERS.USER_STATS])),s=(0,a.Fl)((()=>(0,M.v1)(e.chartParams,e.user.weekm,e.sports,e.displayedSportIds,r.value,e.user.imperial_units)));function o(n){t.dispatch(z.gu.ACTIONS.GET_USER_STATS,{username:e.user.username,filterType:"by_time",params:n})}function i(e){n.value=e.target.name}function l(e,t){return{from:(0,U.Z)(e.start,"yyyy-MM-dd"),to:(0,U.Z)(e.end,"yyyy-MM-dd"),time:"week"===e.duration?"week"+(t.weekm?"m":""):e.duration}}return(0,a.wF)((()=>o(l(e.chartParams,e.user)))),(0,a.YP)((()=>e.chartParams),(async t=>{o(l(t,e.user))})),{datasets:(0,a.Fl)((()=>s.value.datasets[n.value])),labels:(0,a.Fl)((()=>s.value.labels)),emptyStats:(0,a.Fl)((()=>0===Object.keys(r.value).length)),displayedData:n,updateDisplayData:i}}});const b=(0,C.Z)(y,[["render",A],["__scopeId","data-v-68a6a495"]]);var L=b},2179:function(e,t,n){"use strict";n.d(t,{Z:function(){return w}});var a=n(6252),r=n(2262),s=n(3577),o=n(6595),i=n(8602),l=n(9917);const c={class:"box user-header"},u={class:"user-details"},d={class:"user-name"},m={class:"user-stats"},S={class:"user-stat"},_={class:"stat-number"},E={class:"stat-label"},p={class:"user-stat"},T={class:"stat-label"},A={class:"user-stat hide-small"},U={class:"stat-number"},O={class:"stat-label"};var R=(0,a.aZ)({name:"UserHeader",props:{user:null},setup(e){const t=e,{user:n}=(0,r.BK)(t),R=(0,l.o)(),I=(0,a.Fl)((()=>R.getters[i.YN.GETTERS.AUTH_USER_PROFILE]));return(e,t)=>{const i=(0,a.up)("Distance");return(0,a.wg)(),(0,a.iD)("div",c,[(0,a.Wm)(o.Z,{user:(0,r.SU)(n)},null,8,["user"]),(0,a._)("div",u,[(0,a._)("div",d,(0,s.zw)((0,r.SU)(n).username),1),(0,a._)("div",m,[(0,a._)("div",S,[(0,a._)("span",_,(0,s.zw)((0,r.SU)(n).nb_workouts),1),(0,a._)("span",E,(0,s.zw)(e.$t("workouts.WORKOUT",(0,r.SU)(n).nb_workouts)),1)]),(0,a._)("div",p,[(0,a.Wm)(i,{distance:(0,r.SU)(n).total_distance,unitFrom:"km",digits:0,displayUnit:!1,useImperialUnits:(0,r.SU)(I).imperial_units},null,8,["distance","useImperialUnits"]),(0,a._)("span",T,(0,s.zw)((0,r.SU)(I).imperial_units?"miles":"km"),1)]),(0,a._)("div",A,[(0,a._)("span",U,(0,s.zw)((0,r.SU)(n).nb_sports),1),(0,a._)("span",O,(0,s.zw)(e.$t("workouts.SPORT",(0,r.SU)(n).nb_sports)),1)])])])])}}}),I=n(3744);const g=(0,I.Z)(R,[["__scopeId","data-v-20291951"]]);var w=g},4980:function(e,t,n){"use strict";n.d(t,{Z:function(){return f}});var a=n(6252),r=n(2262),s=n(3577),o=n(9963),i=n(4850),l=n(8602),c=n(9917);const u={id:"user-infos",class:"description-list"},d={key:1,class:"info-box success-message"},m={key:4,class:"email-form form-box"},S={class:"form-items",for:"email"},_={class:"form-items",for:"email"},E={class:"form-buttons"},p={class:"confirm",type:"submit"},T=["onClick"],A={key:5},U={class:"user-bio"},O={key:0,class:"profile-buttons"},R=["onClick"],I={key:1,class:"profile-buttons"};var g=(0,a.aZ)({name:"UserInfos",props:{user:null,fromAdmin:{type:Boolean,default:!1}},setup(e){const t=e,n=(0,c.o)(),{user:g,fromAdmin:w}=(0,r.BK)(t),v=(0,a.Fl)((()=>n.getters[l.YN.GETTERS.AUTH_USER_PROFILE])),f=(0,a.Fl)((()=>t.user.created_at?(0,i.Z)(new Date(t.user.created_at),"dd/MM/yyyy HH:mm"):"")),N=(0,a.Fl)((()=>t.user.birth_date?(0,i.Z)(new Date(t.user.birth_date),"dd/MM/yyyy"):"")),h=(0,a.Fl)((()=>n.getters[l.RT.GETTERS.USERS_IS_SUCCESS])),C=(0,a.Fl)((()=>n.getters[l.SY.GETTERS.ERROR_MESSAGES])),D=(0,a.Fl)((()=>n.getters[l.SY.GETTERS.APP_CONFIG]));let k=(0,r.iH)("");const z=(0,r.iH)(!1),P=(0,r.iH)(!1),M=(0,r.iH)(""),y=(0,r.iH)("");function b(e){k.value=e,""!==e&&n.commit(l.RT.MUTATIONS.UPDATE_IS_SUCCESS,!1)}function L(e){n.dispatch(l.RT.ACTIONS.DELETE_USER_ACCOUNT,{username:e})}function G(e){y.value="password-reset",n.dispatch(l.RT.ACTIONS.UPDATE_USER,{username:e,resetPassword:!0})}function F(e){n.dispatch(l.RT.ACTIONS.UPDATE_USER,{username:e,activate:!0})}function W(){$(),M.value=g.value.email_to_confirm?g.value.email_to_confirm:"",P.value=!0,y.value="email-update"}function Y(){M.value="",P.value=!1}function x(e){n.dispatch(l.RT.ACTIONS.UPDATE_USER,{username:e,new_email:M.value})}function $(){n.commit(l.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),n.commit(l.RT.MUTATIONS.UPDATE_IS_SUCCESS,!1),y.value=""}return(0,a.Ah)((()=>$())),(0,a.YP)((()=>h.value),(e=>{e&&(b(""),Y())})),(e,t)=>{const n=(0,a.up)("Modal"),i=(0,a.up)("AlertMessage"),l=(0,a.up)("ErrorMessage");return(0,a.wg)(),(0,a.iD)("div",u,[(0,r.SU)(k)?((0,a.wg)(),(0,a.j4)(n,{key:0,title:e.$t("common.CONFIRMATION"),message:"delete"===(0,r.SU)(k)?"admin.CONFIRM_USER_ACCOUNT_DELETION":"admin.CONFIRM_USER_PASSWORD_RESET",strongMessage:(0,r.SU)(g).username,onConfirmAction:t[0]||(t[0]=e=>"delete"===(0,r.SU)(k)?L((0,r.SU)(g).username):G((0,r.SU)(g).username)),onCancelAction:t[1]||(t[1]=e=>b(""))},null,8,["title","message","strongMessage"])):(0,a.kq)("",!0),(0,r.SU)(h)?((0,a.wg)(),(0,a.iD)("div",d,(0,s.zw)(e.$t(`admin.${"password-reset"===y.value?"PASSWORD_RESET":"USER_EMAIL_UPDATE"}_SUCCESSFUL`)),1)):(0,a.kq)("",!0),(0,r.SU)(g).is_active?(0,a.kq)("",!0):((0,a.wg)(),(0,a.j4)(i,{key:2,message:"user.THIS_USER_ACCOUNT_IS_INACTIVE"})),(0,r.SU)(C)?((0,a.wg)(),(0,a.j4)(l,{key:3,message:(0,r.SU)(C)},null,8,["message"])):(0,a.kq)("",!0),P.value?((0,a.wg)(),(0,a.iD)("div",m,[(0,a._)("form",{class:(0,s.C_)({errors:z.value}),onSubmit:t[4]||(t[4]=(0,o.iM)((e=>x((0,r.SU)(g).username)),["prevent"]))},[(0,a._)("label",S,[(0,a.Uk)((0,s.zw)(e.$t("admin.CURRENT_EMAIL"))+" ",1),(0,a.wy)((0,a._)("input",{id:"email",type:"email","onUpdate:modelValue":t[2]||(t[2]=e=>(0,r.SU)(g).email=e),disabled:""},null,512),[[o.nr,(0,r.SU)(g).email]])]),(0,a._)("label",_,[(0,a.Uk)((0,s.zw)(e.$t("admin.NEW_EMAIL"))+"* ",1),(0,a.wy)((0,a._)("input",{id:"new-email",type:"email",required:"","onUpdate:modelValue":t[3]||(t[3]=e=>M.value=e)},null,512),[[o.nr,M.value]])]),(0,a._)("div",E,[(0,a._)("button",p,(0,s.zw)(e.$t("buttons.SUBMIT")),1),(0,a._)("button",{class:"cancel",onClick:(0,o.iM)(Y,["prevent"])},(0,s.zw)(e.$t("buttons.CANCEL")),9,T)])],34)])):((0,a.wg)(),(0,a.iD)("div",A,[(0,a._)("dl",null,[(0,a._)("dt",null,(0,s.zw)(e.$t("user.PROFILE.REGISTRATION_DATE"))+":",1),(0,a._)("dd",null,(0,s.zw)((0,r.SU)(f)),1),(0,a._)("dt",null,(0,s.zw)(e.$t("user.PROFILE.FIRST_NAME"))+":",1),(0,a._)("dd",null,(0,s.zw)((0,r.SU)(g).first_name),1),(0,a._)("dt",null,(0,s.zw)(e.$t("user.PROFILE.LAST_NAME"))+":",1),(0,a._)("dd",null,(0,s.zw)((0,r.SU)(g).last_name),1),(0,a._)("dt",null,(0,s.zw)(e.$t("user.PROFILE.BIRTH_DATE"))+":",1),(0,a._)("dd",null,(0,s.zw)((0,r.SU)(N)),1),(0,a._)("dt",null,(0,s.zw)(e.$t("user.PROFILE.LOCATION"))+":",1),(0,a._)("dd",null,(0,s.zw)((0,r.SU)(g).location),1),(0,a._)("dt",null,(0,s.zw)(e.$t("user.PROFILE.BIO"))+":",1),(0,a._)("dd",U,(0,s.zw)((0,r.SU)(g).bio),1)]),(0,r.SU)(w)?((0,a.wg)(),(0,a.iD)("div",O,[(0,r.SU)(v).username!==(0,r.SU)(g).username?((0,a.wg)(),(0,a.iD)("button",{key:0,class:"danger",onClick:t[5]||(t[5]=(0,o.iM)((e=>b("delete")),["prevent"]))},(0,s.zw)(e.$t("admin.DELETE_USER")),1)):(0,a.kq)("",!0),(0,r.SU)(g).is_active?(0,a.kq)("",!0):((0,a.wg)(),(0,a.iD)("button",{key:1,onClick:t[6]||(t[6]=(0,o.iM)((e=>F((0,r.SU)(g).username)),["prevent"]))},(0,s.zw)(e.$t("admin.ACTIVATE_USER_ACCOUNT")),1)),(0,r.SU)(v).username!==(0,r.SU)(g).username?((0,a.wg)(),(0,a.iD)("button",{key:2,onClick:(0,o.iM)(W,["prevent"])},(0,s.zw)(e.$t("admin.UPDATE_USER_EMAIL")),9,R)):(0,a.kq)("",!0),(0,r.SU)(v).username!==(0,r.SU)(g).username&&(0,r.SU)(D).is_email_sending_enabled?((0,a.wg)(),(0,a.iD)("button",{key:3,onClick:t[7]||(t[7]=(0,o.iM)((e=>b("reset")),["prevent"]))},(0,s.zw)(e.$t("admin.RESET_USER_PASSWORD")),1)):(0,a.kq)("",!0),(0,a._)("button",{onClick:t[8]||(t[8]=t=>e.$router.go(-1))},(0,s.zw)(e.$t("buttons.BACK")),1)])):((0,a.wg)(),(0,a.iD)("div",I,[(0,a._)("button",{onClick:t[9]||(t[9]=t=>e.$router.push("/profile/edit"))},(0,s.zw)(e.$t("user.PROFILE.EDIT")),1),(0,a._)("button",{onClick:t[10]||(t[10]=t=>e.$router.push("/"))},(0,s.zw)(e.$t("common.HOME")),1)]))]))])}}}),w=n(3744);const v=(0,w.Z)(g,[["__scopeId","data-v-1b6fd7df"]]);var f=v},2422:function(e,t,n){"use strict";n.d(t,{Z:function(){return D}});n(6699);var a=n(6252),r=n(3577),s=n(2262),o=n(9963),i=n(2119),l=n(2047),c=n(8602),u=n(9917);const d=e=>((0,a.dD)("data-v-26d3a7be"),e=e(),(0,a.Cn)(),e),m={id:"user-form"},S={key:2,class:"info-box success-message"},_={class:"form-items"},E=["disabled","placeholder"],p={key:1,class:"form-info"},T=d((()=>(0,a._)("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1))),A=["disabled","placeholder"],U={key:3,class:"form-info"},O=d((()=>(0,a._)("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1))),R=["disabled"],I={key:3},g={key:0},w={key:4},v={class:"account"},f={key:5};var N=(0,a.aZ)({name:"UserAuthForm",props:{action:null,token:{default:""}},setup(e){const t=e,n=(0,i.yj)(),d=(0,u.o)(),{action:N}=(0,s.BK)(t),h=(0,s.qj)({username:"",email:"",password:""}),C=(0,a.Fl)((()=>L(t.action))),D=(0,a.Fl)((()=>d.getters[c.SY.GETTERS.ERROR_MESSAGES])),k=(0,a.Fl)((()=>d.getters[c.YN.GETTERS.IS_REGISTRATION_SUCCESS])),z=(0,a.Fl)((()=>d.getters[c.YN.GETTERS.IS_SUCCESS])),P=(0,a.Fl)((()=>d.getters[c.SY.GETTERS.APP_CONFIG])),M=(0,a.Fl)((()=>"register"===t.action&&!P.value.is_registration_enabled)),y=(0,a.Fl)((()=>["reset-request","account-confirmation-resend"].includes(t.action)&&!P.value.is_email_sending_enabled)),b=(0,s.iH)(!1);function L(e){switch(e){case"reset-request":case"reset":return"buttons.SUBMIT";default:return`buttons.${t.action.toUpperCase()}`}}function G(){b.value=!0}function F(e){h.password=e}function W(e){switch(e){case"reset":return t.token?d.dispatch(c.YN.ACTIONS.RESET_USER_PASSWORD,{password:h.password,token:t.token}):d.commit(c.SY.MUTATIONS.SET_ERROR_MESSAGES,"user.INVALID_TOKEN");case"reset-request":return d.dispatch(c.YN.ACTIONS.SEND_PASSWORD_RESET_REQUEST,{email:h.email});case"account-confirmation-resend":return d.dispatch(c.YN.ACTIONS.RESEND_ACCOUNT_CONFIRMATION_EMAIL,{email:h.email});default:d.dispatch(c.YN.ACTIONS.LOGIN_OR_REGISTER,{actionType:e,formData:h,redirectUrl:n.query.from})}}function Y(){h.username="",h.email="",h.password=""}return(0,a.YP)((()=>n.path),(async()=>{d.commit(c.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),d.commit(c.YN.MUTATIONS.UPDATE_IS_SUCCESS,!1),d.commit(c.YN.MUTATIONS.UPDATE_IS_REGISTRATION_SUCCESS,!1),b.value=!1,Y()})),(e,t)=>{const n=(0,a.up)("AlertMessage"),i=(0,a.up)("router-link"),c=(0,a.up)("ErrorMessage");return(0,a.wg)(),(0,a.iD)("div",{id:"user-auth-form",class:(0,r.C_)(`${["reset","reset-request"].includes((0,s.SU)(N))?(0,s.SU)(N):"user-form"}`)},[(0,a._)("div",m,[(0,a._)("div",{class:(0,r.C_)(["form-box",{disabled:(0,s.SU)(M)}])},[(0,s.SU)(M)?((0,a.wg)(),(0,a.j4)(n,{key:0,message:"user.REGISTER_DISABLED"})):(0,a.kq)("",!0),(0,s.SU)(y)?((0,a.wg)(),(0,a.j4)(n,{key:1,message:"admin.EMAIL_SENDING_DISABLED"})):(0,a.kq)("",!0),(0,s.SU)(z)||(0,s.SU)(k)?((0,a.wg)(),(0,a.iD)("div",S,(0,r.zw)(e.$t("user.PROFILE.SUCCESSFUL_"+((0,s.SU)(k)?"REGISTRATION"+((0,s.SU)(P).is_email_sending_enabled?"_WITH_EMAIL":""):"UPDATE"))),1)):(0,a.kq)("",!0),(0,a._)("form",{class:(0,r.C_)({errors:b.value}),onSubmit:t[2]||(t[2]=(0,o.iM)((e=>W((0,s.SU)(N))),["prevent"]))},[(0,a._)("div",_,["register"===(0,s.SU)(N)?(0,a.wy)(((0,a.wg)(),(0,a.iD)("input",{key:0,id:"username",disabled:(0,s.SU)(M),required:"",pattern:"[a-zA-Z0-9_]+",minlength:"3",maxlength:"30",onInvalid:G,"onUpdate:modelValue":t[0]||(t[0]=e=>h.username=e),placeholder:e.$t("user.USERNAME")},null,40,E)),[[o.nr,h.username]]):(0,a.kq)("",!0),"register"===(0,s.SU)(N)?((0,a.wg)(),(0,a.iD)("div",p,[T,(0,a.Uk)(" "+(0,r.zw)(e.$t("user.USERNAME_INFO")),1)])):(0,a.kq)("",!0),"reset"!==(0,s.SU)(N)?(0,a.wy)(((0,a.wg)(),(0,a.iD)("input",{key:2,id:"email",disabled:(0,s.SU)(M)||(0,s.SU)(y),required:"",onInvalid:G,type:"email","onUpdate:modelValue":t[1]||(t[1]=e=>h.email=e),placeholder:e.$t("user.EMAIL")},null,40,A)),[[o.nr,h.email]]):(0,a.kq)("",!0),["reset-request","register","account-confirmation-resend"].includes((0,s.SU)(N))?((0,a.wg)(),(0,a.iD)("div",U,[O,(0,a.Uk)(" "+(0,r.zw)(e.$t("user.EMAIL_INFO")),1)])):(0,a.kq)("",!0),["account-confirmation-resend","reset-request"].includes((0,s.SU)(N))?(0,a.kq)("",!0):((0,a.wg)(),(0,a.j4)(l.Z,{key:4,disabled:(0,s.SU)(M),required:!0,placeholder:"reset"===(0,s.SU)(N)?e.$t("user.ENTER_PASSWORD"):e.$t("user.PASSWORD"),password:h.password,checkStrength:["reset","register"].includes((0,s.SU)(N)),onUpdatePassword:F,onPasswordError:G},null,8,["disabled","placeholder","password","checkStrength"]))]),(0,a._)("button",{type:"submit",disabled:(0,s.SU)(M)||(0,s.SU)(y)},(0,r.zw)(e.$t((0,s.SU)(C))),9,R)],34),"login"===(0,s.SU)(N)?((0,a.wg)(),(0,a.iD)("div",I,[(0,a.Wm)(i,{class:"links",to:"/register"},{default:(0,a.w5)((()=>[(0,a.Uk)((0,r.zw)(e.$t("user.REGISTER")),1)])),_:1}),(0,s.SU)(P).is_email_sending_enabled?((0,a.wg)(),(0,a.iD)("span",g,"-")):(0,a.kq)("",!0),(0,s.SU)(P).is_email_sending_enabled?((0,a.wg)(),(0,a.j4)(i,{key:1,class:"links",to:"/password-reset/request"},{default:(0,a.w5)((()=>[(0,a.Uk)((0,r.zw)(e.$t("user.PASSWORD_FORGOTTEN")),1)])),_:1})):(0,a.kq)("",!0)])):(0,a.kq)("",!0),"register"===(0,s.SU)(N)?((0,a.wg)(),(0,a.iD)("div",w,[(0,a._)("span",v,(0,r.zw)(e.$t("user.ALREADY_HAVE_ACCOUNT")),1),(0,a.Wm)(i,{class:"links",to:"/login"},{default:(0,a.w5)((()=>[(0,a.Uk)((0,r.zw)(e.$t("user.LOGIN")),1)])),_:1})])):(0,a.kq)("",!0),["login","register"].includes((0,s.SU)(N))&&(0,s.SU)(P).is_email_sending_enabled?((0,a.wg)(),(0,a.iD)("div",f,[(0,a.Wm)(i,{class:"links",to:"/account-confirmation/resend"},{default:(0,a.w5)((()=>[(0,a.Uk)((0,r.zw)(e.$t("user.ACCOUNT_CONFIRMATION_NOT_RECEIVED")),1)])),_:1})])):(0,a.kq)("",!0),(0,s.SU)(D)?((0,a.wg)(),(0,a.j4)(c,{key:6,message:(0,s.SU)(D)},null,8,["message"])):(0,a.kq)("",!0)],2)])],2)}}}),h=n(3744);const C=(0,h.Z)(N,[["__scopeId","data-v-26d3a7be"]]);var D=C},6595:function(e,t,n){"use strict";n.d(t,{Z:function(){return S}});var a=n(6252),r=n(2262),s=n(2024);const o={class:"user-picture"},i=["alt","src"],l={key:1,class:"no-picture"},c=(0,a._)("i",{class:"fa fa-user-circle-o","aria-hidden":"true"},null,-1),u=[c];var d=(0,a.aZ)({name:"UserPicture",props:{user:null},setup(e){const t=e,n=(0,a.Fl)((()=>t.user.picture?`${(0,s.k)()}users/${t.user.username}/picture?${Date.now()}`:""));return(e,t)=>((0,a.wg)(),(0,a.iD)("div",o,[""!==(0,r.SU)(n)?((0,a.wg)(),(0,a.iD)("img",{key:0,class:"profile-user-img",alt:e.$t("user.USER_PICTURE"),src:(0,r.SU)(n)},null,8,i)):((0,a.wg)(),(0,a.iD)("div",l,u))]))}});const m=d;var S=m},5630:function(e,t,n){"use strict";n.d(t,{Z:function(){return u}});var a=n(6252),r=n(3577);const s={class:"no-workouts box"};function o(e,t){const n=(0,a.up)("router-link");return(0,a.wg)(),(0,a.iD)("div",s,[(0,a._)("div",null,[(0,a.Uk)((0,r.zw)(e.$t("workouts.NO_WORKOUTS"))+" ",1),(0,a.Wm)(n,{to:"/workouts/add"},{default:(0,a.w5)((()=>[(0,a.Uk)((0,r.zw)(e.$t("workouts.UPLOAD_FIRST_WORKOUT")),1)])),_:1})])])}var i=n(3744);const l={},c=(0,i.Z)(l,[["render",o],["__scopeId","data-v-4b4d15fb"]]);var u=c},4612:function(e,t,n){var a={"./en/en.ts":9350,"./fr/fr.ts":1079};function r(e){var t=s(e);return n(t)}function s(e){if(!n.o(a,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return a[e]}r.keys=function(){return Object.keys(a)},r.resolve=s,e.exports=r,r.id=4612}},t={};function n(a){var r=t[a];if(void 0!==r)return r.exports;var s=t[a]={exports:{}};return e[a].call(s.exports,s,s.exports,n),s.exports}n.m=e,function(){var e=[];n.O=function(t,a,r,s){if(!a){var o=1/0;for(u=0;u=s)&&Object.keys(n.O).every((function(e){return n.O[e](a[l])}))?a.splice(l--,1):(i=!1,s0&&e[u-1][2]>s;u--)e[u]=e[u-1];e[u]=[a,r,s]}}(),function(){n.n=function(e){var t=e&&e.__esModule?function(){return e["default"]}:function(){return e};return n.d(t,{a:t}),t}}(),function(){var e,t=Object.getPrototypeOf?function(e){return Object.getPrototypeOf(e)}:function(e){return e.__proto__};n.t=function(a,r){if(1&r&&(a=this(a)),8&r)return a;if("object"===typeof a&&a){if(4&r&&a.__esModule)return a;if(16&r&&"function"===typeof a.then)return a}var s=Object.create(null);n.r(s);var o={};e=e||[null,t({}),t([]),t(t)];for(var i=2&r&&a;"object"==typeof i&&!~e.indexOf(i);i=t(i))Object.getOwnPropertyNames(i).forEach((function(e){o[e]=function(){return a[e]}}));return o["default"]=function(){return a},n.d(s,o),s}}(),function(){n.d=function(e,t){for(var a in t)n.o(t,a)&&!n.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:t[a]})}}(),function(){n.f={},n.e=function(e){return Promise.all(Object.keys(n.f).reduce((function(t,a){return n.f[a](e,t),t}),[]))}}(),function(){n.u=function(e){return"static/js/"+({24:"reset",193:"statistics",328:"admin",401:"workouts",845:"profile",881:"password"}[e]||e)+"."+{24:"80b9da45",93:"0cd1858e",193:"ea7ff674",243:"697a3d7b",328:"43bba6c9",401:"a9d2f467",431:"54edda90",633:"c743cd9a",845:"6625cfc7",858:"4449709a",881:"b05df85b"}[e]+".js"}}(),function(){n.miniCssF=function(e){return"static/css/"+{24:"reset",193:"statistics",328:"admin",401:"workouts",845:"profile"}[e]+"."+{24:"e2527ec6",193:"91fe968e",328:"73df498d",401:"3ddc8329",845:"203e78e2"}[e]+".css"}}(),function(){n.g=function(){if("object"===typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"===typeof window)return window}}()}(),function(){n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)}}(),function(){var e={},t="fittrackee_client:";n.l=function(a,r,s,o){if(e[a])e[a].push(r);else{var i,l;if(void 0!==s)for(var c=document.getElementsByTagName("script"),u=0;u{const t=s.Z.getters[o.YN.GETTERS.AUTH_TOKEN];if(t){const n=`Bearer ${t}`;e.headers&&e.headers.Authorization!==n&&(e.headers.Authorization=`Bearer ${t}`)}return e}),(e=>Promise.reject(e))),t["Z"]=l},2540:function(e,t,n){"use strict";var a=n(3324);function r(){const e=n(4612),t={};return e.keys().forEach((n=>{const a=n.match(/([A-Za-z0-9-_]+)\./i);if(a&&a.length>1){const r=a[1];t[r]=e(n).default}})),t}t["Z"]=(0,a.o)({legacy:!1,locale:"en",fallbackLocale:"en",globalInjection:!0,messages:r()})},9350:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return _}});var a={CONTACT_ADMIN:e=>{const{normalize:t}=e;return t(["Contact the administrator"])},FITTRACKEE_DESCRIPTION:e=>{const{normalize:t}=e;return t(["FitTrackee is a self-hosted outdoor activity tracker."])},FITTRACKEE_LICENSE:e=>{const{normalize:t,interpolate:n,list:a}=e;return t(["under ",n(a(0))," license "])},SOURCE_CODE:e=>{const{normalize:t}=e;return t(["Source code"])}},r={ACTION:e=>{const{normalize:t}=e;return t(["Action"])},ACTIVATE_USER_ACCOUNT:e=>{const{normalize:t}=e;return t(["Activate account"])},ACTIVE:e=>{const{normalize:t}=e;return t(["Active"])},ADMIN_RIGHTS_DELETE_USER_ACCOUNT:e=>{const{normalize:t}=e;return t(["Add/remove admin rights, delete user account."])},ADMIN:e=>{const{normalize:t}=e;return t(["Admin"])},ADMINISTRATION:e=>{const{normalize:t}=e;return t(["Administration"])},APPLICATION:e=>{const{normalize:t}=e;return t(["Application"])},APP_CONFIG:{ADMIN_CONTACT:e=>{const{normalize:t}=e;return t(["Administrator email for contact"])},MAX_USERS_LABEL:e=>{const{normalize:t}=e;return t(["Max. number of active users"])},MAX_USERS_HELP:e=>{const{normalize:t}=e;return t(["If 0, no limitation on registration."])},MAX_FILES_IN_ZIP_LABEL:e=>{const{normalize:t}=e;return t(["Max. files of zip archive"])},NO_CONTACT_EMAIL:e=>{const{normalize:t}=e;return t(["no contact email"])},SINGLE_UPLOAD_MAX_SIZE_LABEL:e=>{const{normalize:t}=e;return t(["Max. size of uploaded files (in Mb)"])},TITLE:e=>{const{normalize:t}=e;return t(["Application configuration"])},ZIP_UPLOAD_MAX_SIZE_LABEL:e=>{const{normalize:t}=e;return t(["Max. size of zip archive (in Mb)"])}},BACK_TO_ADMIN:e=>{const{normalize:t}=e;return t(["Back to admin"])},CONFIRM_USER_ACCOUNT_DELETION:e=>{const{normalize:t,interpolate:n,list:a}=e;return t(["Are you sure you want to delete ",n(a(0))," account? All data will be deleted, this cannot be undone."])},CONFIRM_USER_PASSWORD_RESET:e=>{const{normalize:t,interpolate:n,list:a}=e;return t(["Are you sure you want to reset ",n(a(0))," password?"])},CURRENT_EMAIL:e=>{const{normalize:t}=e;return t(["Current email"])},DELETE_USER:e=>{const{normalize:t}=e;return t(["Delete user"])},EMAIL_SENDING_DISABLED:e=>{const{normalize:t}=e;return t(["Email sending is disabled."])},ENABLE_DISABLE_SPORTS:e=>{const{normalize:t}=e;return t(["Enable/disable sports."])},NEW_EMAIL:e=>{const{normalize:t}=e;return t(["New email"])},PASSWORD_RESET_SUCCESSFUL:e=>{const{normalize:t}=e;return t(["The password has been reset."])},REGISTRATION_DISABLED:e=>{const{normalize:t}=e;return t(["Registration is currently disabled."])},REGISTRATION_ENABLED:e=>{const{normalize:t}=e;return t(["Registration is currently enabled."])},RESET_USER_PASSWORD:e=>{const{normalize:t}=e;return t(["Reset password"])},SPORTS:{TABLE:{ACTIVE:e=>{const{normalize:t}=e;return t(["Active"])},HAS_WORKOUTS:e=>{const{normalize:t}=e;return t(["workouts exist"])},IMAGE:e=>{const{normalize:t}=e;return t(["Image"])},LABEL:e=>{const{normalize:t}=e;return t(["Label"])}},TITLE:e=>{const{normalize:t}=e;return t(["Sports administration"])}},UPDATE_APPLICATION_DESCRIPTION:e=>{const{normalize:t}=e;return t(["Update application configuration (maximum number of registered users, maximum files size)."])},UPDATE_USER_EMAIL:e=>{const{normalize:t}=e;return t(["Update email"])},USER:e=>{const{normalize:t,plural:n}=e;return n([t(["user"]),t(["users"])])},USER_EMAIL_UPDATE_SUCCESSFUL:e=>{const{normalize:t}=e;return t(["The email address has been updated."])},USERS:{TABLE:{ADD_ADMIN_RIGHTS:e=>{const{normalize:t}=e;return t(["Add admin rights"])},REMOVE_ADMIN_RIGHTS:e=>{const{normalize:t}=e;return t(["Remove admin rights"])}},SELECTS:{ORDER_BY:{ADMIN:e=>{const{normalize:t}=e;return t(["admin status"])},CREATED_AT:e=>{const{normalize:t}=e;return t(["registration date"])},IS_ACTIVE:e=>{const{normalize:t}=e;return t(["account status"])},USERNAME:e=>{const{normalize:t}=e;return t(["username"])},WORKOUTS_COUNT:e=>{const{normalize:t}=e;return t(["workout count"])}}}}},s={ERROR:{UNKNOWN:e=>{const{normalize:t}=e;return t(["Error. Please try again or contact the administrator."])},"email: valid email must be provided":e=>{const{normalize:t}=e;return t(["Email: valid email must be provided."])},"error on getting configuration":e=>{const{normalize:t}=e;return t(["Error on getting configuration."])},"error when updating configuration":e=>{const{normalize:t}=e;return t(["Error when updating configuration"])},"error, please try again or contact the administrator":e=>{const{normalize:t}=e;return t(["Error, please try again or contact the administrator."])},"error, registration is disabled":e=>{const{normalize:t}=e;return t(["Error, registration is disabled."])},"file extension not allowed":e=>{const{normalize:t}=e;return t(["File extension not allowed."])},"file size is greater than the allowed size":e=>{const{normalize:t}=e;return t(["File size is greater than the allowed size."])},"invalid credentials":e=>{const{normalize:t}=e;return t(["Invalid credentials."])},"invalid payload":e=>{const{normalize:t}=e;return t(["Provided data are invalid."])},"invalid token, please log in again":e=>{const{normalize:t}=e;return t(["Invalid token, please log in again."])},"invalid token, please request a new token":e=>{const{normalize:t}=e;return t(["Invalid token, please log in again."])},"Network Error":e=>{const{normalize:t}=e;return t(["Network Error."])},"new email must be different than curent email":e=>{const{normalize:t}=e;return t(["The new email must be different than curent email"])},"no file part":e=>{const{normalize:t}=e;return t(["No file provided."])},"no selected file":e=>{const{normalize:t}=e;return t(["No selected file."])},"password: password and password confirmation do not match":e=>{const{normalize:t}=e;return t(["Password: password and password confirmation don't match."])},"provide a valid auth token":e=>{const{normalize:t}=e;return t(["Provide a valid auth token."])},"sorry, that username is already taken":e=>{const{normalize:t}=e;return t(["Sorry, that username is already taken."])},"sport does not exist":e=>{const{normalize:t}=e;return t(["Sport does not exist."])},"signature expired, please log in again":e=>{const{normalize:t}=e;return t(["Signature expired. Please log in again."])},"successfully registered":e=>{const{normalize:t}=e;return t(["Successfully registered."])},"user does not exist":e=>{const{normalize:t}=e;return t(["User does not exist."])},"valid email must be provided for admin contact":e=>{const{normalize:t}=e;return t(["A valid email must be provided for administrator contact"])},"you can not delete your account, no other user has admin rights":e=>{const{normalize:t}=e;return t(["You can not delete your account, no other user has admin rights."])},"you do not have permissions":e=>{const{normalize:t}=e;return t(["You do not have permissions."])}},PAGINATION:{PREVIOUS:e=>{const{normalize:t}=e;return t(["previous"])},NEXT:e=>{const{normalize:t}=e;return t(["next"])}}},o={"ACCOUNT-CONFIRMATION-RESEND":e=>{const{normalize:t}=e;return t(["Resend confirmation email"])},BACK:e=>{const{normalize:t}=e;return t(["Back"])},CANCEL:e=>{const{normalize:t}=e;return t(["Cancel"])},CLEAR_FILTER:e=>{const{normalize:t}=e;return t(["Clear filters"])},DELETE_MY_ACCOUNT:e=>{const{normalize:t}=e;return t(["Delete my account"])},DISABLE:e=>{const{normalize:t}=e;return t(["Disable"])},EDIT:e=>{const{normalize:t}=e;return t(["Edit"])},ENABLE:e=>{const{normalize:t}=e;return t(["Enable"])},FILTER:e=>{const{normalize:t}=e;return t(["Filter"])},LOGIN:e=>{const{normalize:t}=e;return t(["Log in"])},NO:e=>{const{normalize:t}=e;return t(["No"])},REGISTER:e=>{const{normalize:t}=e;return t(["Register"])},RESET:e=>{const{normalize:t}=e;return t(["Reset"])},SUBMIT:e=>{const{normalize:t}=e;return t(["Submit"])},YES:e=>{const{normalize:t}=e;return t(["Yes"])}},i={ABOUT:e=>{const{normalize:t}=e;return t(["about"])},CONFIRMATION:e=>{const{normalize:t}=e;return t(["Confirmation"])},CONTACT:e=>{const{normalize:t}=e;return t(["contact"])},DAY:e=>{const{normalize:t,plural:n}=e;return n([t(["day"]),t(["days"])])},DOCUMENTATION:e=>{const{normalize:t}=e;return t(["documentation"])},HOME:e=>{const{normalize:t}=e;return t(["Home"])},HERE:e=>{const{normalize:t}=e;return t(["here"])},SELECTS:{ORDER_BY:{LABEL:e=>{const{normalize:t}=e;return t(["order by"])}},ORDER:{LABEL:e=>{const{normalize:t}=e;return t(["sort"])},ASC:e=>{const{normalize:t}=e;return t(["ascending"])},DESC:e=>{const{normalize:t}=e;return t(["descending"])}},PER_PAGE:{LABEL:e=>{const{normalize:t}=e;return t(["par page"])}}},TOTAL:e=>{const{normalize:t}=e;return t(["Total"])}},l={DASHBOARD:e=>{const{normalize:t}=e;return t(["Dashboard"])},THIS_MONTH:e=>{const{normalize:t}=e;return t(["This month"])}},c={UNKNOWN:e=>{const{normalize:t}=e;return t(["Error. Please try again or contact the administrator."])},APP_ERROR:e=>{const{normalize:t}=e;return t(["The application seems to have encountered some issues.
Please try again later or contact the administrator."])},NOT_FOUND:{PAGE:e=>{const{normalize:t}=e;return t(["Page not found"])},WORKOUT:e=>{const{normalize:t}=e;return t(["Workout not found"])}},SOMETHING_WRONG:e=>{const{normalize:t}=e;return t(["Something went wrong"])}},u={"Cycling (Sport)":{LABEL:e=>{const{normalize:t}=e;return t(["Cycling (Sport)"])}},"Cycling (Transport)":{LABEL:e=>{const{normalize:t}=e;return t(["Cycling (Transport)"])}},Hiking:{LABEL:e=>{const{normalize:t}=e;return t(["Hiking"])}},"Mountain Biking":{LABEL:e=>{const{normalize:t}=e;return t(["Mountain Biking"])}},"Mountain Biking (Electric)":{LABEL:e=>{const{normalize:t}=e;return t(["Mountain Biking (Electric)"])}},Rowing:{LABEL:e=>{const{normalize:t}=e;return t(["Rowing"])}},Running:{LABEL:e=>{const{normalize:t}=e;return t(["Running"])}},"Skiing (Alpine)":{LABEL:e=>{const{normalize:t}=e;return t(["Skiing (Alpine)"])}},"Skiing (Cross Country)":{LABEL:e=>{const{normalize:t}=e;return t(["Skiing (Cross Country)"])}},Snowshoes:{LABEL:e=>{const{normalize:t}=e;return t(["Snowshoes"])}},Trail:{LABEL:e=>{const{normalize:t}=e;return t(["Trail"])}},Walking:{LABEL:e=>{const{normalize:t}=e;return t(["Walking"])}}},d={STATISTICS:e=>{const{normalize:t}=e;return t(["Statistics"])},TIME_FRAMES:{week:e=>{const{normalize:t}=e;return t(["week"])},month:e=>{const{normalize:t}=e;return t(["month"])},year:e=>{const{normalize:t}=e;return t(["year"])}}},m={ACCOUNT_CONFIRMATION_NOT_RECEIVED:e=>{const{normalize:t}=e;return t(["Didn't received instructions?"])},ACCOUNT_CONFIRMATION_SENT:e=>{const{normalize:t}=e;return t(["Check your email. A new confirmation email has been sent to the address provided."])},ADMIN:e=>{const{normalize:t}=e;return t(["Admin"])},ALREADY_HAVE_ACCOUNT:e=>{const{normalize:t}=e;return t(["Already have an account?"])},CONFIRM_ACCOUNT_DELETION:e=>{const{normalize:t}=e;return t(["Are you sure you want to delete your account? All data will be deleted, this cannot be undone"])},CURRENT_PASSWORD:e=>{const{normalize:t}=e;return t(["Current password"])},EMAIL:e=>{const{normalize:t}=e;return t(["Email"])},EMAIL_INFO:e=>{const{normalize:t}=e;return t(["Enter a valid email address."])},ENTER_PASSWORD:e=>{const{normalize:t}=e;return t(["Enter a password"])},FILTER_ON_USERNAME:e=>{const{normalize:t}=e;return t(["Filter on username"])},HIDE_PASSWORD:e=>{const{normalize:t}=e;return t(["hide password"])},INVALID_TOKEN:e=>{const{normalize:t}=e;return t(["Invalid token, please request a new password reset."])},LANGUAGE:e=>{const{normalize:t}=e;return t(["Language"])},LOG_IN:e=>{const{normalize:t}=e;return t(["log in"])},LOGIN:e=>{const{normalize:t}=e;return t(["Login"])},LOGOUT:e=>{const{normalize:t}=e;return t(["Logout"])},NEW_PASSWORD:e=>{const{normalize:t}=e;return t(["New password"])},NO_USERS_FOUND:e=>{const{normalize:t}=e;return t(["No users found."])},PASSWORD:e=>{const{normalize:t}=e;return t(["Password"])},PASSWORD_INFO:e=>{const{normalize:t}=e;return t(["At least 8 characters required."])},PASSWORD_FORGOTTEN:e=>{const{normalize:t}=e;return t(["Forgot password?"])},PASSWORD_RESET:e=>{const{normalize:t}=e;return t(["Password reset"])},PASSWORD_SENT_EMAIL_TEXT:e=>{const{normalize:t}=e;return t(["Check your email. If your address is in our database, you'll received an email with a link to reset your password."])},PASSWORD_STRENGTH:{WEAK:e=>{const{normalize:t}=e;return t(["weak"])},AVERAGE:e=>{const{normalize:t}=e;return t(["average"])},GOOD:e=>{const{normalize:t}=e;return t(["good"])},STRONG:e=>{const{normalize:t}=e;return t(["strong"])},LABEL:e=>{const{normalize:t}=e;return t(["password strength"])},SUGGESTIONS:{l33t:e=>{const{normalize:t}=e;return t(["Avoid predictable letter substitutions like ","@"," for a."])},reverseWords:e=>{const{normalize:t}=e;return t(["Avoid reversed spellings of common words."])},allUppercase:e=>{const{normalize:t}=e;return t(["Capitalize some, but not all letters."])},capitalization:e=>{const{normalize:t}=e;return t(["Capitalize more than the first letter."])},dates:e=>{const{normalize:t}=e;return t(["Avoid dates and years that are associated with you."])},recentYears:e=>{const{normalize:t}=e;return t(["Avoid recent years."])},associatedYears:e=>{const{normalize:t}=e;return t(["Avoid years that are associated with you."])},sequences:e=>{const{normalize:t}=e;return t(["Avoid common character sequences."])},repeated:e=>{const{normalize:t}=e;return t(["Avoid repeated words and characters."])},longerKeyboardPattern:e=>{const{normalize:t}=e;return t(["Use longer keyboard patterns and change typing direction multiple times."])},anotherWord:e=>{const{normalize:t}=e;return t(["Add more words that are less common."])},useWords:e=>{const{normalize:t}=e;return t(["Use multiple words, but avoid common phrases."])},noNeed:e=>{const{normalize:t}=e;return t(["You can create strong passwords without using symbols, numbers, or uppercase letters."])},pwned:e=>{const{normalize:t}=e;return t(["If you use this password elsewhere, you should change it."])}}},PASSWORD_UPDATED:e=>{const{normalize:t,interpolate:n,list:a}=e;return t(["Your password have been updated. Click ",n(a(0))," to log in."])},PROFILE:{ACCOUNT_EDITION:e=>{const{normalize:t}=e;return t(["Account edition"])},BACK_TO_PROFILE:e=>{const{normalize:t}=e;return t(["Back to profile"])},BIO:e=>{const{normalize:t}=e;return t(["Bio"])},BIRTH_DATE:e=>{const{normalize:t}=e;return t(["Birth date"])},EDIT:e=>{const{normalize:t}=e;return t(["Edit profile"])},EDIT_PREFERENCES:e=>{const{normalize:t}=e;return t(["Edit preferences"])},EDIT_SPORTS_PREFERENCES:e=>{const{normalize:t}=e;return t(["Edit sports preferences"])},ERRORED_EMAIL_UPDATE:e=>{const{normalize:t,interpolate:n,list:a}=e;return t(["Please ",n(a(0))," to change your email address again or contact the administrator"])},FIRST_NAME:e=>{const{normalize:t}=e;return t(["First name"])},FIRST_DAY_OF_WEEK:e=>{const{normalize:t}=e;return t(["First day of week"])},LANGUAGE:e=>{const{normalize:t}=e;return t(["Language"])},LAST_NAME:e=>{const{normalize:t}=e;return t(["Last name"])},LOCATION:e=>{const{normalize:t}=e;return t(["Location"])},MONDAY:e=>{const{normalize:t}=e;return t(["Monday"])},PICTURE:e=>{const{normalize:t}=e;return t(["Picture"])},PICTURE_EDITION:e=>{const{normalize:t}=e;return t(["Picture edition"])},PICTURE_UPDATE:e=>{const{normalize:t}=e;return t(["Update picture"])},PICTURE_REMOVE:e=>{const{normalize:t}=e;return t(["Remove picture"])},PREFERENCES_EDITION:e=>{const{normalize:t}=e;return t(["Preferences edition"])},PROFILE_EDITION:e=>{const{normalize:t}=e;return t(["Profile edition"])},REGISTRATION_DATE:e=>{const{normalize:t}=e;return t(["Registration date"])},SPORTS_EDITION:e=>{const{normalize:t}=e;return t(["Sports preferences edition"])},SUNDAY:e=>{const{normalize:t}=e;return t(["Sunday"])},TABS:{ACCOUNT:e=>{const{normalize:t}=e;return t(["account"])},PICTURE:e=>{const{normalize:t}=e;return t(["picture"])},PREFERENCES:e=>{const{normalize:t}=e;return t(["preferences"])},PROFILE:e=>{const{normalize:t}=e;return t(["profile"])},SPORTS:e=>{const{normalize:t}=e;return t(["sports"])}},SPORT:{ACTION:e=>{const{normalize:t}=e;return t(["action"])},COLOR:e=>{const{normalize:t}=e;return t(["color"])},DISABLED_BY_ADMIN:e=>{const{normalize:t}=e;return t(["disabled by admin"])},IS_ACTIVE:e=>{const{normalize:t}=e;return t(["active"])},LABEL:e=>{const{normalize:t}=e;return t(["label"])},STOPPED_SPEED_THRESHOLD:e=>{const{normalize:t}=e;return t(["stopped speed threshold"])}},SUCCESSFUL_EMAIL_UPDATE:e=>{const{normalize:t}=e;return t(["Your account has been updated successfully. Please check your email to confirm your new email address."])},SUCCESSFUL_REGISTRATION:e=>{const{normalize:t}=e;return t(["Your account has been created successfully."])},SUCCESSFUL_REGISTRATION_WITH_EMAIL:e=>{const{normalize:t}=e;return t(["A link to activate your account has been emailed to the address provided."])},SUCCESSFUL_UPDATE:e=>{const{normalize:t}=e;return t(["Your account has been updated successfully."])},UNITS:{LABEL:e=>{const{normalize:t}=e;return t(["Units for distance"])},IMPERIAL:e=>{const{normalize:t}=e;return t(["Imperial system (ft, mi)"])},METRIC:e=>{const{normalize:t}=e;return t(["Metric system (m, km)"])}},TIMEZONE:e=>{const{normalize:t}=e;return t(["Timezone"])}},REGISTER:e=>{const{normalize:t}=e;return t(["Register"])},RESENT_ACCOUNT_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Resend account confirmation email"])},REGISTER_DISABLED:e=>{const{normalize:t}=e;return t(["Sorry, registration is disabled."])},RESET_PASSWORD:e=>{const{normalize:t}=e;return t(["Reset your password"])},SHOW_PASSWORD:e=>{const{normalize:t}=e;return t(["show password"])},THIS_USER_ACCOUNT_IS_INACTIVE:e=>{const{normalize:t}=e;return t(["This user account is inactive."])},USER_PICTURE:e=>{const{normalize:t}=e;return t(["user picture"])},USERNAME:e=>{const{normalize:t}=e;return t(["Username"])},USERNAME_INFO:e=>{const{normalize:t}=e;return t(['3 to 30 characters required, only alphanumeric characters and the underscore character "_" allowed.'])}},S={ADD_WORKOUT:e=>{const{normalize:t}=e;return t(["Add a workout"])},ANALYSIS:e=>{const{normalize:t}=e;return t(["analysis"])},ASCENT:e=>{const{normalize:t}=e;return t(["ascent"])},AVE_SPEED:e=>{const{normalize:t}=e;return t(["ave. speed"])},AVERAGE_SPEED:e=>{const{normalize:t}=e;return t(["average speed"])},BACK_TO_WORKOUT:e=>{const{normalize:t}=e;return t(["back to workout"])},DATE:e=>{const{normalize:t}=e;return t(["date"])},DESCENT:e=>{const{normalize:t}=e;return t(["descent"])},DISPLAY_FILTERS:e=>{const{normalize:t}=e;return t(["display filters"])},DISTANCE:e=>{const{normalize:t}=e;return t(["distance"])},DURATION:e=>{const{normalize:t}=e;return t(["duration"])},EDIT_WORKOUT:e=>{const{normalize:t}=e;return t(["Edit the workout"])},ELEVATION:e=>{const{normalize:t}=e;return t(["elevation"])},END:e=>{const{normalize:t}=e;return t(["end"])},FROM:e=>{const{normalize:t}=e;return t(["from"])},GPX_FILE:e=>{const{normalize:t}=e;return t([".gpx file"])},HIDE_FILTERS:e=>{const{normalize:t}=e;return t(["hide filters"])},LATEST_WORKOUTS:e=>{const{normalize:t}=e;return t(["Latest workouts"])},LOAD_MORE_WORKOUT:e=>{const{normalize:t}=e;return t(["Load more workouts"])},MAX_ALTITUDE:e=>{const{normalize:t}=e;return t(["max. altitude"])},MAX_FILES:e=>{const{normalize:t}=e;return t(["max files"])},MAX_SIZE:e=>{const{normalize:t}=e;return t(["max size"])},MAX_SPEED:e=>{const{normalize:t}=e;return t(["max. speed"])},MIN_ALTITUDE:e=>{const{normalize:t}=e;return t(["min. altitude"])},NEXT_SEGMENT:e=>{const{normalize:t}=e;return t(["No next segment"])},NEXT_WORKOUT:e=>{const{normalize:t}=e;return t(["Next workout"])},NO_DATA_CLEANING:e=>{const{normalize:t}=e;return t(["data from gpx, without any cleaning"])},NO_FILE_PROVIDED:e=>{const{normalize:t}=e;return t(["No file provided"])},NO_FOLDER:e=>{const{normalize:t}=e;return t(["no folder inside"])},NO_MAP:e=>{const{normalize:t}=e;return t(["No map"])},NO_NEXT_SEGMENT:e=>{const{normalize:t}=e;return t(["No next segment"])},NO_NEXT_WORKOUT:e=>{const{normalize:t}=e;return t(["No next workout"])},NO_NOTES:e=>{const{normalize:t}=e;return t(["No notes"])},NO_PREVIOUS_SEGMENT:e=>{const{normalize:t}=e;return t(["No previous segment"])},NO_PREVIOUS_WORKOUT:e=>{const{normalize:t}=e;return t(["No previous workout"])},NO_RECORDS:e=>{const{normalize:t}=e;return t(["No records."])},NO_WORKOUTS:e=>{const{normalize:t}=e;return t(["No workouts."])},NOTES:e=>{const{normalize:t}=e;return t(["notes"])},PAUSES:e=>{const{normalize:t}=e;return t(["pauses"])},PREVIOUS_SEGMENT:e=>{const{normalize:t}=e;return t(["Previous segment"])},PREVIOUS_WORKOUT:e=>{const{normalize:t}=e;return t(["Previous workout"])},RECORD:e=>{const{normalize:t,plural:n}=e;return n([t(["record"]),t(["records"])])},RECORD_AS:e=>{const{normalize:t}=e;return t(["Ave. speed"])},RECORD_FD:e=>{const{normalize:t}=e;return t(["Farthest distance"])},RECORD_LD:e=>{const{normalize:t}=e;return t(["Longest duration"])},RECORD_MS:e=>{const{normalize:t}=e;return t(["Max. speed"])},REMAINING_CHARS:e=>{const{normalize:t}=e;return t(["remaining characters"])},SEGMENT:e=>{const{normalize:t,plural:n}=e;return n([t(["segment"]),t(["segments"])])},SPEED:e=>{const{normalize:t}=e;return t(["speed"])},SPORT:e=>{const{normalize:t,plural:n}=e;return n([t(["sport"]),t(["sports"])])},START:e=>{const{normalize:t}=e;return t(["start"])},START_AND_FINISH:e=>{const{normalize:t}=e;return t(["Start and finish"])},START_ELEVATION_AT_ZERO:e=>{const{normalize:t}=e;return t(["start elevation axis at zero"])},TITLE:e=>{const{normalize:t}=e;return t(["title"])},TO:e=>{const{normalize:t}=e;return t(["to"])},TOTAL_DURATION:e=>{const{normalize:t}=e;return t(["total duration"])},UPLOAD_FIRST_WORKOUT:e=>{const{normalize:t}=e;return t(["Upload one!"])},WEATHER:{HUMIDITY:e=>{const{normalize:t}=e;return t(["humidity"])},TEMPERATURE:e=>{const{normalize:t}=e;return t(["temperature"])},WIND:e=>{const{normalize:t}=e;return t(["wind"])},WIND_DIRECTIONS:{N:e=>{const{normalize:t}=e;return t(["N"])},NNE:e=>{const{normalize:t}=e;return t(["NNE"])},NE:e=>{const{normalize:t}=e;return t(["NE"])},ENE:e=>{const{normalize:t}=e;return t(["ENE"])},E:e=>{const{normalize:t}=e;return t(["E"])},ESE:e=>{const{normalize:t}=e;return t(["ESE"])},SE:e=>{const{normalize:t}=e;return t(["SE"])},SSE:e=>{const{normalize:t}=e;return t(["SSE"])},S:e=>{const{normalize:t}=e;return t(["S"])},SSW:e=>{const{normalize:t}=e;return t(["SSW"])},SW:e=>{const{normalize:t}=e;return t(["SW"])},WSW:e=>{const{normalize:t}=e;return t(["WSW"])},W:e=>{const{normalize:t}=e;return t(["W"])},WNW:e=>{const{normalize:t}=e;return t(["WNW"])},NW:e=>{const{normalize:t}=e;return t(["NW"])},NNW:e=>{const{normalize:t}=e;return t(["NNW"])}},DARK_SKY:{"clear-day":e=>{const{normalize:t}=e;return t(["clear day"])},"clear-night":e=>{const{normalize:t}=e;return t(["clear night"])},cloudy:e=>{const{normalize:t}=e;return t(["cloudy"])},fog:e=>{const{normalize:t}=e;return t(["fog"])},"partly-cloudy-day":e=>{const{normalize:t}=e;return t(["partly cloudy day"])},"partly-cloudy-night":e=>{const{normalize:t}=e;return t(["partly cloudy night"])},rain:e=>{const{normalize:t}=e;return t(["rain"])},sleet:e=>{const{normalize:t}=e;return t(["sleet"])},snow:e=>{const{normalize:t}=e;return t(["snow"])},wind:e=>{const{normalize:t}=e;return t(["wind"])}}},WITH_GPX:e=>{const{normalize:t}=e;return t(["with .gpx file"])},WITHOUT_GPX:e=>{const{normalize:t}=e;return t(["without .gpx file"])},WORKOUT:e=>{const{normalize:t,plural:n}=e;return n([t(["workout"]),t(["workouts"])])},WORKOUT_DATE:e=>{const{normalize:t}=e;return t(["workout date"])},WORKOUT_DELETION_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Are you sure you want to delete this workout?"])},ZIP_ARCHIVE:e=>{const{normalize:t}=e;return t([".zip file"])},ZIP_ARCHIVE_DESCRIPTION:e=>{const{normalize:t}=e;return t(["or .zip file containing .gpx files"])}},_={about:a,admin:r,api:s,buttons:o,common:i,dashboard:l,error:c,sports:u,statistics:d,user:m,workouts:S}},1079:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return _}});var a={CONTACT_ADMIN:e=>{const{normalize:t}=e;return t(["Contacter l'administrateur"])},FITTRACKEE_DESCRIPTION:e=>{const{normalize:t}=e;return t(["FitTrackee est un tracker d'activités sportives (en extérieur)."])},FITTRACKEE_LICENSE:e=>{const{normalize:t,interpolate:n,list:a}=e;return t(["sous license ",n(a(0))," (en)"])},SOURCE_CODE:e=>{const{normalize:t}=e;return t(["Code source (en)"])}},r={ACTION:e=>{const{normalize:t}=e;return t(["Action"])},ACTIVATE_USER_ACCOUNT:e=>{const{normalize:t}=e;return t(["Activer le compte"])},ACTIVE:e=>{const{normalize:t}=e;return t(["Actif"])},ADMIN_RIGHTS_DELETE_USER_ACCOUNT:e=>{const{normalize:t}=e;return t(["Ajouter/retirer des droits d'administration, supprimer des comptes utilisateurs."])},ADMIN:e=>{const{normalize:t}=e;return t(["Admin"])},ADMINISTRATION:e=>{const{normalize:t}=e;return t(["Administration"])},APPLICATION:e=>{const{normalize:t}=e;return t(["Application"])},APP_CONFIG:{ADMIN_CONTACT:e=>{const{normalize:t}=e;return t(["Email de l'administrateur pour contact "])},MAX_USERS_LABEL:e=>{const{normalize:t}=e;return t(["Nombre maximum d'utilisateurs actifs "])},MAX_USERS_HELP:e=>{const{normalize:t}=e;return t(["Si égal à 0, pas limite d'inscription"])},MAX_FILES_IN_ZIP_LABEL:e=>{const{normalize:t}=e;return t(["Taille max. des archives zip (en Mo) "])},NO_CONTACT_EMAIL:e=>{const{normalize:t}=e;return t(["non renseigné"])},SINGLE_UPLOAD_MAX_SIZE_LABEL:e=>{const{normalize:t}=e;return t(["Taille max. des fichiers (en Mo) "])},TITLE:e=>{const{normalize:t}=e;return t(["Configuration de l'application"])},ZIP_UPLOAD_MAX_SIZE_LABEL:e=>{const{normalize:t}=e;return t(["Nombre max. de fichiers dans une archive zip "])}},BACK_TO_ADMIN:e=>{const{normalize:t}=e;return t(["Revenir à l'admin"])},CONFIRM_USER_ACCOUNT_DELETION:e=>{const{normalize:t,interpolate:n,list:a}=e;return t(["Êtes-vous sûr de vouloir supprimer le compte de l'utilisateur ",n(a(0))," ? Toutes les données seront définitivement."])},CONFIRM_USER_PASSWORD_RESET:e=>{const{normalize:t,interpolate:n,list:a}=e;return t(["Êtes-vous sûr de vouloir réinitialiser le mot de passe de l'utilisateur ",n(a(0))," ?"])},CURRENT_EMAIL:e=>{const{normalize:t}=e;return t(["Adresse email actuelle"])},DELETE_USER:e=>{const{normalize:t}=e;return t(["Supprimer l'utilisateur"])},EMAIL_SENDING_DISABLED:e=>{const{normalize:t}=e;return t(["L'envoi d'emails est désactivé."])},ENABLE_DISABLE_SPORTS:e=>{const{normalize:t}=e;return t(["Activer/désactiver des sports."])},NEW_EMAIL:e=>{const{normalize:t}=e;return t(["Nouvelle adresse email"])},PASSWORD_RESET_SUCCESSFUL:e=>{const{normalize:t}=e;return t(["Le mot de passe a été réinitialisé."])},REGISTRATION_DISABLED:e=>{const{normalize:t}=e;return t(["Les inscriptions sont actuellement désactivées."])},REGISTRATION_ENABLED:e=>{const{normalize:t}=e;return t(["Les inscriptions sont actuellement activées."])},RESET_USER_PASSWORD:e=>{const{normalize:t}=e;return t(["Réinit. le mot de passe"])},SPORTS:{TABLE:{ACTIVE:e=>{const{normalize:t}=e;return t(["Actif"])},HAS_WORKOUTS:e=>{const{normalize:t}=e;return t(["des séances existent"])},IMAGE:e=>{const{normalize:t}=e;return t(["Image"])},LABEL:e=>{const{normalize:t}=e;return t(["Label"])}},TITLE:e=>{const{normalize:t}=e;return t(["Administration - Sports"])}},UPDATE_APPLICATION_DESCRIPTION:e=>{const{normalize:t}=e;return t(["Configurer l'application (nombre maximum d'utilisateurs inscrits, taille maximale des fichers)."])},UPDATE_USER_EMAIL:e=>{const{normalize:t}=e;return t(["Changer l'email"])},USER:e=>{const{normalize:t,plural:n}=e;return n([t(["utilisateur"]),t(["utilisateurs"])])},USER_EMAIL_UPDATE_SUCCESSFUL:e=>{const{normalize:t}=e;return t(["L'adresse email a été mise à jour."])},USERS:{TABLE:{ADD_ADMIN_RIGHTS:e=>{const{normalize:t}=e;return t(["Ajouter les droits d'admin"])},REMOVE_ADMIN_RIGHTS:e=>{const{normalize:t}=e;return t(["Retirer les droits d'admin"])}},SELECTS:{ORDER_BY:{ADMIN:e=>{const{normalize:t}=e;return t(["status administrateur"])},CREATED_AT:e=>{const{normalize:t}=e;return t(["date d'inscription"])},IS_ACTIVE:e=>{const{normalize:t}=e;return t(["statut du compte"])},USERNAME:e=>{const{normalize:t}=e;return t(["nom d'utilisateur"])},WORKOUTS_COUNT:e=>{const{normalize:t}=e;return t(["nombre de séances"])}}}}},s={ERROR:{UNKNOWN:e=>{const{normalize:t}=e;return t(["Erreur. Veuillez réessayer ou contacter l'administrateur."])},"email: valid email must be provided":e=>{const{normalize:t}=e;return t(["Email : une adresse email valide doit être fournie."])},"error on getting configuration":e=>{const{normalize:t}=e;return t(["Erreur lors de la récupération de la configuration."])},"error when updating configuration":e=>{const{normalize:t}=e;return t(["Erreur lors de la mise à jour de la configuration"])},"error, please try again or contact the administrator":e=>{const{normalize:t}=e;return t(["Erreur, veuillez réessayer ou contacter l'administrateur."])},"error, registration is disabled":e=>{const{normalize:t}=e;return t(["Erreur, les inscriptions sont désactivées."])},"file extension not allowed":e=>{const{normalize:t}=e;return t(["Extension de fichier non autorisée."])},"file size is greater than the allowed size":e=>{const{normalize:t}=e;return t(["La taille du fichier est supérieure à la limite autorisée."])},"invalid credentials":e=>{const{normalize:t}=e;return t(["Identifiants invalides."])},"invalid payload":e=>{const{normalize:t}=e;return t(["Données fournies incorrectes."])},"invalid token, please log in again":e=>{const{normalize:t}=e;return t(["Jeton de connexion invalide, merci de vous reconnecter."])},"invalid token, please request a new token":e=>{const{normalize:t}=e;return t(["Jeton de connexion, merci de vous reconnecter."])},"no file part":e=>{const{normalize:t}=e;return t(["Pas de fichier fourni."])},"no selected file":e=>{const{normalize:t}=e;return t(["Pas de fichier sélectionné."])},"Network Error":e=>{const{normalize:t}=e;return t(["Erreur Réseau."])},"new email must be different than curent email":e=>{const{normalize:t}=e;return t(["La nouvelle addresse email doit être differente de l'adresse actuelle"])},"password: password and password confirmation do not match":e=>{const{normalize:t}=e;return t(["Mot de passe : les mots de passe saisis sont différents."])},"provide a valid auth token":e=>{const{normalize:t}=e;return t(["Merci de fournir un jeton de connexion valide."])},"sport does not exist":e=>{const{normalize:t}=e;return t(["Ce sport n'existe pas."])},"signature expired, please log in again":e=>{const{normalize:t}=e;return t(["Signature expirée. Merci de vous reconnecter."])},"sorry, that username is already taken":e=>{const{normalize:t}=e;return t(["Désolé, ce nom d'utilisateur est déjà utilisé."])},"successfully registered":e=>{const{normalize:t}=e;return t(["Inscription validée."])},"user does not exist":e=>{const{normalize:t}=e;return t(["L'utilisateur n'existe pas"])},"valid email must be provided for admin contact":e=>{const{normalize:t}=e;return t(["Une adresse email doit être fournie pour le contact de l'administrateur."])},"you can not delete your account, no other user has admin rights":e=>{const{normalize:t}=e;return t(["Vous ne pouvez pas supprimer votre compte, aucun autre utilisateur n'a des droits d'administration."])},"you do not have permissions":e=>{const{normalize:t}=e;return t(["Vous n'avez pas les permissions nécessaires."])}},PAGINATION:{PREVIOUS:e=>{const{normalize:t}=e;return t(["précédent"])},NEXT:e=>{const{normalize:t}=e;return t(["suivant"])}}},o={"ACCOUNT-CONFIRMATION-RESEND":e=>{const{normalize:t}=e;return t(["Envoyer à nouveau l'email de confirmation"])},BACK:e=>{const{normalize:t}=e;return t(["Précédent"])},CANCEL:e=>{const{normalize:t}=e;return t(["Annuler"])},CLEAR_FILTER:e=>{const{normalize:t}=e;return t(["Réinitialiser"])},DELETE_MY_ACCOUNT:e=>{const{normalize:t}=e;return t(["Supprimer mon compte"])},DISABLE:e=>{const{normalize:t}=e;return t(["Désactiver"])},EDIT:e=>{const{normalize:t}=e;return t(["Modifier"])},ENABLE:e=>{const{normalize:t}=e;return t(["Activer"])},FILTER:e=>{const{normalize:t}=e;return t(["Filtrer"])},LOGIN:e=>{const{normalize:t}=e;return t(["Se connecter"])},NO:e=>{const{normalize:t}=e;return t(["Non"])},REGISTER:e=>{const{normalize:t}=e;return t(["S'inscrire"])},RESET:e=>{const{normalize:t}=e;return t(["Réinit."])},SUBMIT:e=>{const{normalize:t}=e;return t(["Valider"])},YES:e=>{const{normalize:t}=e;return t(["Oui"])}},i={ABOUT:e=>{const{normalize:t}=e;return t(["à propos"])},CONFIRMATION:e=>{const{normalize:t}=e;return t(["Confirmation"])},CONTACT:e=>{const{normalize:t}=e;return t(["contact"])},DAY:e=>{const{normalize:t,plural:n}=e;return n([t(["jour"]),t(["jours"])])},DOCUMENTATION:e=>{const{normalize:t}=e;return t(["documentation (en)"])},HOME:e=>{const{normalize:t}=e;return t(["Accueil"])},HERE:e=>{const{normalize:t}=e;return t(["ici"])},SELECTS:{ORDER_BY:{LABEL:e=>{const{normalize:t}=e;return t(["trier par "])}},ORDER:{LABEL:e=>{const{normalize:t}=e;return t(["tri"])},ASC:e=>{const{normalize:t}=e;return t(["ascendant"])},DESC:e=>{const{normalize:t}=e;return t(["descendant"])}},PER_PAGE:{LABEL:e=>{const{normalize:t}=e;return t(["par page"])}}},TOTAL:e=>{const{normalize:t}=e;return t(["Total"])}},l={DASHBOARD:e=>{const{normalize:t}=e;return t(["Tableau de Bord"])},THIS_MONTH:e=>{const{normalize:t}=e;return t(["Ce mois"])}},c={UNKNOWN:e=>{const{normalize:t}=e;return t(["Erreur. Veuillez réessayer ou contacter l'administrateur."])},APP_ERROR:e=>{const{normalize:t}=e;return t(["L'application semble rencontrer quelques problèmes.
Veuillez réessayer plus tard ou contacter l'administrateur."])},NOT_FOUND:{PAGE:e=>{const{normalize:t}=e;return t(["Page introuvable"])},WORKOUT:e=>{const{normalize:t}=e;return t(["Séance introuvable"])}},SOMETHING_WRONG:e=>{const{normalize:t}=e;return t(["Une erreur s'est produite"])}},u={"Cycling (Sport)":{LABEL:e=>{const{normalize:t}=e;return t(["Vélo (Sport)"])}},"Cycling (Transport)":{LABEL:e=>{const{normalize:t}=e;return t(["Vélo (Transport)"])}},Hiking:{LABEL:e=>{const{normalize:t}=e;return t(["Randonnée"])}},"Mountain Biking":{LABEL:e=>{const{normalize:t}=e;return t(["VTT"])}},"Mountain Biking (Electric)":{LABEL:e=>{const{normalize:t}=e;return t(["VTT (Electrique)"])}},Rowing:{LABEL:e=>{const{normalize:t}=e;return t(["Aviron"])}},Running:{LABEL:e=>{const{normalize:t}=e;return t(["Course"])}},"Skiing (Alpine)":{LABEL:e=>{const{normalize:t}=e;return t(["Ski (Alpin)"])}},"Skiing (Cross Country)":{LABEL:e=>{const{normalize:t}=e;return t(["Ski (Randonnée)"])}},Snowshoes:{LABEL:e=>{const{normalize:t}=e;return t(["Raquettes"])}},Trail:{LABEL:e=>{const{normalize:t}=e;return t(["Trail"])}},Walking:{LABEL:e=>{const{normalize:t}=e;return t(["Marche"])}}},d={STATISTICS:e=>{const{normalize:t}=e;return t(["Statistiques"])},TIME_FRAMES:{week:e=>{const{normalize:t}=e;return t(["semaine"])},month:e=>{const{normalize:t}=e;return t(["mois"])},year:e=>{const{normalize:t}=e;return t(["année"])}}},m={ACCOUNT_CONFIRMATION_NOT_RECEIVED:e=>{const{normalize:t}=e;return t(["Vous n'avez pas reçu les instructions ?"])},ACCOUNT_CONFIRMATION_SENT:e=>{const{normalize:t}=e;return t(["Vérifiez votre boite mail. Un nouvel email de confirmation a été envoyé à l'adresse email fournie."])},ADMIN:e=>{const{normalize:t}=e;return t(["Admin"])},ALREADY_HAVE_ACCOUNT:e=>{const{normalize:t}=e;return t(["Vous avez déjà un compte ?"])},CONFIRM_ACCOUNT_DELETION:e=>{const{normalize:t}=e;return t(["Êtes-vous sûr de vouloir supprimer votre compte ? Toutes les données seront définitivement effacés."])},CURRENT_PASSWORD:e=>{const{normalize:t}=e;return t(["Mot de passe actuel"])},EMAIL:e=>{const{normalize:t}=e;return t(["Email"])},EMAIL_INFO:e=>{const{normalize:t}=e;return t(["Saisir une adresse email valide."])},ENTER_PASSWORD:e=>{const{normalize:t}=e;return t(["Saisir un mot de passe"])},FILTER_ON_USERNAME:e=>{const{normalize:t}=e;return t(["Filtrer sur le nom d'utilisateur"])},HIDE_PASSWORD:e=>{const{normalize:t}=e;return t(["masquer le mot de passe"])},INVALID_TOKEN:e=>{const{normalize:t}=e;return t(["Jeton invalide, veuillez demander une nouvelle réinitialisation de mot de passe."])},LANGUAGE:e=>{const{normalize:t}=e;return t(["Langue"])},LOG_IN:e=>{const{normalize:t}=e;return t(["connecter"])},LOGIN:e=>{const{normalize:t}=e;return t(["Se connecter"])},LOGOUT:e=>{const{normalize:t}=e;return t(["Se déconnecter"])},NEW_PASSWORD:e=>{const{normalize:t}=e;return t(["Nouveau mot de passe"])},NO_USERS_FOUND:e=>{const{normalize:t}=e;return t(["Aucun utilisateur trouvé."])},PASSWORD:e=>{const{normalize:t}=e;return t(["Mot de passe"])},PASSWORD_INFO:e=>{const{normalize:t}=e;return t(["8 caractères minimum."])},PASSWORD_FORGOTTEN:e=>{const{normalize:t}=e;return t(["Mot de passe oublié ?"])},PASSWORD_RESET:e=>{const{normalize:t}=e;return t(["Réinitialisation du mot de passe"])},PASSWORD_SENT_EMAIL_TEXT:e=>{const{normalize:t}=e;return t(["Vérifiez votre boite mail. Si vote adresse est dans notre base de données, vous recevrez un email avec un lien pour réinitialiser votre mot de passe."])},PASSWORD_STRENGTH:{WEAK:e=>{const{normalize:t}=e;return t(["faible"])},AVERAGE:e=>{const{normalize:t}=e;return t(["moyenne"])},GOOD:e=>{const{normalize:t}=e;return t(["bonne"])},STRONG:e=>{const{normalize:t}=e;return t(["forte"])},LABEL:e=>{const{normalize:t}=e;return t(["robustesse du mot de passe "])},SUGGESTIONS:{l33t:e=>{const{normalize:t}=e;return t(["Évitez les substitutions de lettres prévisibles comme ","@"," pour a."])},reverseWords:e=>{const{normalize:t}=e;return t(["Évitez les orthographes inversées des mots courants"])},allUppercase:e=>{const{normalize:t}=e;return t(["Mettez quelques lettres en majuscules, mais pas toutes."])},capitalization:e=>{const{normalize:t}=e;return t(["Capitalisez mais pas seulement la première lettre."])},dates:e=>{const{normalize:t}=e;return t(["Évitez les dates et les années qui vous sont associées. (ex: date ou année de naissance)"])},recentYears:e=>{const{normalize:t}=e;return t(["Évitez les dernières années."])},associatedYears:e=>{const{normalize:t}=e;return t(["Évitez les années qui vous sont associées. (ex: date de naissance)"])},sequences:e=>{const{normalize:t}=e;return t(["Évitez les séquences de caractères courantes."])},repeated:e=>{const{normalize:t}=e;return t(["Évitez les mots et les caractères répétés."])},longerKeyboardPattern:e=>{const{normalize:t}=e;return t(["Utilisez des motifs de clavier plus longs et changez de sens de frappe plusieurs fois."])},anotherWord:e=>{const{normalize:t}=e;return t(["Ajoutez des mots moins courants."])},useWords:e=>{const{normalize:t}=e;return t(["Utilisez plusieurs mots, mais évitez les phrases courantes."])},noNeed:e=>{const{normalize:t}=e;return t(["Vous pouvez créer des mots de passe forts sans utiliser de symboles, de chiffres ou de lettres majuscules."])},pwned:e=>{const{normalize:t}=e;return t(["Si vous utilisez ce mot de passe ailleurs, vous devriez le modifier."])}}},PASSWORD_UPDATED:e=>{const{normalize:t,interpolate:n,list:a}=e;return t(["Votre mot de passe a été mis à jour. Cliquez ",n(a(0))," pour vous connecter."])},PROFILE:{ACCOUNT_EDITION:e=>{const{normalize:t}=e;return t(["Mise à jour du compte"])},BACK_TO_PROFILE:e=>{const{normalize:t}=e;return t(["Revenir au profil"])},BIO:e=>{const{normalize:t}=e;return t(["Bio"])},BIRTH_DATE:e=>{const{normalize:t}=e;return t(["Date de naissance"])},EDIT:e=>{const{normalize:t}=e;return t(["Modifier le profil"])},EDIT_PREFERENCES:e=>{const{normalize:t}=e;return t(["Modifier les préférences"])},EDIT_SPORTS_PREFERENCES:e=>{const{normalize:t}=e;return t(["Modifier les préférences des sports"])},ERRORED_EMAIL_UPDATE:e=>{const{normalize:t,interpolate:n,list:a}=e;return t(["Veuillez vous ",n(a(0))," pour changer de nouveau votre adresse email ou contacter l'administrateur"])},FIRST_DAY_OF_WEEK:e=>{const{normalize:t}=e;return t(["Premier jour de la semaine"])},FIRST_NAME:e=>{const{normalize:t}=e;return t(["Prénom"])},LANGUAGE:e=>{const{normalize:t}=e;return t(["Langue"])},LAST_NAME:e=>{const{normalize:t}=e;return t(["Nom"])},LOCATION:e=>{const{normalize:t}=e;return t(["Lieu"])},MONDAY:e=>{const{normalize:t}=e;return t(["Lundi"])},PICTURE:e=>{const{normalize:t}=e;return t(["Image de profil"])},PICTURE_EDITION:e=>{const{normalize:t}=e;return t(["Mise à jour de l'image de profil"])},PICTURE_UPDATE:e=>{const{normalize:t}=e;return t(["Mettre à jour l'image"])},PICTURE_REMOVE:e=>{const{normalize:t}=e;return t(["Supprimer"])},PREFERENCES_EDITION:e=>{const{normalize:t}=e;return t(["Mise à jour des préférences"])},PROFILE_EDITION:e=>{const{normalize:t}=e;return t(["Mise à jour du profil"])},REGISTRATION_DATE:e=>{const{normalize:t}=e;return t(["Date d'inscription"])},SPORTS_EDITION:e=>{const{normalize:t}=e;return t(["Mise à jour des préférences des sports"])},SUNDAY:e=>{const{normalize:t}=e;return t(["Dimanche"])},TABS:{ACCOUNT:e=>{const{normalize:t}=e;return t(["compte"])},PICTURE:e=>{const{normalize:t}=e;return t(["image"])},PREFERENCES:e=>{const{normalize:t}=e;return t(["préférences"])},PROFILE:e=>{const{normalize:t}=e;return t(["profil"])},SPORTS:e=>{const{normalize:t}=e;return t(["sports"])}},UNITS:{LABEL:e=>{const{normalize:t}=e;return t(["Unités pour les distances "])},IMPERIAL:e=>{const{normalize:t}=e;return t(["Système impérial (ft, mi)"])},METRIC:e=>{const{normalize:t}=e;return t(["Système métrique (m, km)"])}},SPORT:{ACTION:e=>{const{normalize:t}=e;return t(["action"])},COLOR:e=>{const{normalize:t}=e;return t(["couleur"])},DISABLED_BY_ADMIN:e=>{const{normalize:t}=e;return t(["désactivé par l'administrateur"])},IS_ACTIVE:e=>{const{normalize:t}=e;return t(["actif"])},LABEL:e=>{const{normalize:t}=e;return t(["label"])},STOPPED_SPEED_THRESHOLD:e=>{const{normalize:t}=e;return t(["seuil de vitesse arrêtée"])}},SUCCESSFUL_EMAIL_UPDATE:e=>{const{normalize:t}=e;return t(["Votre compte a été modifié avec succès. Veuillez vérifier votre boite email pour valider votre nouvelle adresse email."])},SUCCESSFUL_REGISTRATION:e=>{const{normalize:t}=e;return t(["Votre compte a été créé avec succès."])},SUCCESSFUL_REGISTRATION_WITH_EMAIL:e=>{const{normalize:t}=e;return t(["Un lien pour activer votre compte a été envoyé à l'adresse email fournie."])},SUCCESSFUL_UPDATE:e=>{const{normalize:t}=e;return t(["Votre compte a été modifié avec succès."])},TIMEZONE:e=>{const{normalize:t}=e;return t(["Fuseau horaire"])}},REGISTER:e=>{const{normalize:t}=e;return t(["S'inscrire"])},REGISTER_DISABLED:e=>{const{normalize:t}=e;return t(["Désolé, les inscriptions sont désactivées."])},RESENT_ACCOUNT_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Envoyer à nouveau l'email de confirmation de compte"])},RESET_PASSWORD:e=>{const{normalize:t}=e;return t(["Réinitialiser votre mot de passe"])},SHOW_PASSWORD:e=>{const{normalize:t}=e;return t(["afficher le mot de passe"])},THIS_USER_ACCOUNT_IS_INACTIVE:e=>{const{normalize:t}=e;return t(["Le compte de cet utilisateur est inactif."])},USER_PICTURE:e=>{const{normalize:t}=e;return t(["photo de l'utilisateur"])},USERNAME:e=>{const{normalize:t}=e;return t(["Nom d'utilisateur"])},USERNAME_INFO:e=>{const{normalize:t}=e;return t(['3 à 30 caractères requis, seuls les caractères alphanumériques et le caractère "_" sont autorisés.'])}},S={ADD_WORKOUT:e=>{const{normalize:t}=e;return t(["Ajouter une séance"])},ANALYSIS:e=>{const{normalize:t}=e;return t(["analyse"])},ASCENT:e=>{const{normalize:t}=e;return t(["dénivelé positif"])},AVERAGE_SPEED:e=>{const{normalize:t}=e;return t(["vitesse moyenne"])},AVE_SPEED:e=>{const{normalize:t}=e;return t(["vitesse moy."])},BACK_TO_WORKOUT:e=>{const{normalize:t}=e;return t(["revenir à la séance"])},DATE:e=>{const{normalize:t}=e;return t(["date"])},DESCENT:e=>{const{normalize:t}=e;return t(["dénivelé négatif"])},DISPLAY_FILTERS:e=>{const{normalize:t}=e;return t(["afficher les filtres"])},DISTANCE:e=>{const{normalize:t}=e;return t(["distance"])},DURATION:e=>{const{normalize:t}=e;return t(["durée"])},EDIT_WORKOUT:e=>{const{normalize:t}=e;return t(["Modifier la séance"])},ELEVATION:e=>{const{normalize:t}=e;return t(["altitude"])},END:e=>{const{normalize:t}=e;return t(["fin"])},FROM:e=>{const{normalize:t}=e;return t(["à partir de"])},GPX_FILE:e=>{const{normalize:t}=e;return t(["fichier .gpx"])},HIDE_FILTERS:e=>{const{normalize:t}=e;return t(["masquer les filtres"])},LATEST_WORKOUTS:e=>{const{normalize:t}=e;return t(["Séances récentes"])},LOAD_MORE_WORKOUT:e=>{const{normalize:t}=e;return t(["Charger les séances suivantes"])},MAX_ALTITUDE:e=>{const{normalize:t}=e;return t(["altitude max"])},MAX_FILES:e=>{const{normalize:t}=e;return t(["fichiers max. "])},MAX_SIZE:e=>{const{normalize:t}=e;return t(["taille max. "])},MAX_SPEED:e=>{const{normalize:t}=e;return t(["vitesse max"])},MIN_ALTITUDE:e=>{const{normalize:t}=e;return t(["altitude min"])},NEXT_SEGMENT:e=>{const{normalize:t}=e;return t(["Segment suivant"])},NEXT_WORKOUT:e=>{const{normalize:t}=e;return t(["Séance suivante"])},NO_DATA_CLEANING:e=>{const{normalize:t}=e;return t(["données issues du fichier gpx, sans correction"])},NO_FILE_PROVIDED:e=>{const{normalize:t}=e;return t(["Pas de fichier fourni"])},NO_FOLDER:e=>{const{normalize:t}=e;return t(["pas de répertoire"])},NO_MAP:e=>{const{normalize:t}=e;return t(["Pas de carte"])},NO_NEXT_SEGMENT:e=>{const{normalize:t}=e;return t(["Pas de segment suivant"])},NO_NEXT_WORKOUT:e=>{const{normalize:t}=e;return t(["Pas de séance suivante"])},NO_NOTES:e=>{const{normalize:t}=e;return t(["Pas de notes"])},NO_PREVIOUS_SEGMENT:e=>{const{normalize:t}=e;return t(["Pas de segment précédent"])},NO_PREVIOUS_WORKOUT:e=>{const{normalize:t}=e;return t(["Pas de séance précédente"])},NO_RECORDS:e=>{const{normalize:t}=e;return t(["Pas de records."])},NO_WORKOUTS:e=>{const{normalize:t}=e;return t(["Pas de séances."])},NOTES:e=>{const{normalize:t}=e;return t(["notes"])},PAUSES:e=>{const{normalize:t}=e;return t(["pauses"])},PREVIOUS_SEGMENT:e=>{const{normalize:t}=e;return t(["Segment précédent"])},PREVIOUS_WORKOUT:e=>{const{normalize:t}=e;return t(["Séance précédente"])},RECORD:e=>{const{normalize:t,plural:n}=e;return n([t(["record"]),t(["records"])])},RECORD_AS:e=>{const{normalize:t}=e;return t(["Vitesse moy."])},RECORD_FD:e=>{const{normalize:t}=e;return t(["Distance la + longue"])},RECORD_LD:e=>{const{normalize:t}=e;return t(["Durée la + longue"])},RECORD_MS:e=>{const{normalize:t}=e;return t(["Vitesse max."])},REMAINING_CHARS:e=>{const{normalize:t}=e;return t(["nombre de caractères restants "])},SEGMENT:e=>{const{normalize:t,plural:n}=e;return n([t(["segment"]),t(["segments"])])},SPEED:e=>{const{normalize:t}=e;return t(["vitesse"])},SPORT:e=>{const{normalize:t,plural:n}=e;return n([t(["sport"]),t(["sports"])])},START:e=>{const{normalize:t}=e;return t(["début"])},START_AND_FINISH:e=>{const{normalize:t}=e;return t(["Départ et arrivée"])},START_ELEVATION_AT_ZERO:e=>{const{normalize:t}=e;return t(["démarrer l'axe de l'altitude à 0"])},TITLE:e=>{const{normalize:t}=e;return t(["titre"])},TO:e=>{const{normalize:t}=e;return t(["jusqu'au"])},TOTAL_DURATION:e=>{const{normalize:t}=e;return t(["durée totale"])},UPLOAD_FIRST_WORKOUT:e=>{const{normalize:t}=e;return t(["Ajoutez votre première séance !"])},WEATHER:{HUMIDITY:e=>{const{normalize:t}=e;return t(["humidité"])},TEMPERATURE:e=>{const{normalize:t}=e;return t(["température"])},WIND:e=>{const{normalize:t}=e;return t(["vent"])},WIND_DIRECTIONS:{N:e=>{const{normalize:t}=e;return t(["N"])},NNE:e=>{const{normalize:t}=e;return t(["NNE"])},NE:e=>{const{normalize:t}=e;return t(["NE"])},ENE:e=>{const{normalize:t}=e;return t(["ENE"])},E:e=>{const{normalize:t}=e;return t(["E"])},ESE:e=>{const{normalize:t}=e;return t(["ESE"])},SE:e=>{const{normalize:t}=e;return t(["SE"])},SSE:e=>{const{normalize:t}=e;return t(["SSE"])},S:e=>{const{normalize:t}=e;return t(["S"])},SSW:e=>{const{normalize:t}=e;return t(["SSO"])},SW:e=>{const{normalize:t}=e;return t(["SO"])},WSW:e=>{const{normalize:t}=e;return t(["OSO"])},W:e=>{const{normalize:t}=e;return t(["O"])},WNW:e=>{const{normalize:t}=e;return t(["ONO"])},NW:e=>{const{normalize:t}=e;return t(["NO"])},NNW:e=>{const{normalize:t}=e;return t(["NNO"])}},DARK_SKY:{"clear-day":e=>{const{normalize:t}=e;return t(["ensoleillé"])},"clear-night":e=>{const{normalize:t}=e;return t(["nuit claire"])},cloudy:e=>{const{normalize:t}=e;return t(["nuageux"])},fog:e=>{const{normalize:t}=e;return t(["brouillard"])},"partly-cloudy-day":e=>{const{normalize:t}=e;return t(["partiellement nuageux"])},"partly-cloudy-night":e=>{const{normalize:t}=e;return t(["nuit partiellement nuageuse"])},rain:e=>{const{normalize:t}=e;return t(["pluie"])},sleet:e=>{const{normalize:t}=e;return t(["neige fondue"])},snow:e=>{const{normalize:t}=e;return t(["neige"])},wind:e=>{const{normalize:t}=e;return t(["venteux"])}}},WITH_GPX:e=>{const{normalize:t}=e;return t(["avec un fichier .gpx"])},WITHOUT_GPX:e=>{const{normalize:t}=e;return t(["sans fichier .gpx"])},WORKOUT:e=>{const{normalize:t,plural:n}=e;return n([t(["séance"]),t(["séances"])])},WORKOUT_DATE:e=>{const{normalize:t}=e;return t(["date de la séance"])},WORKOUT_DELETION_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Etes-vous sûr de vouloir supprimer cette séance ?"])},ZIP_ARCHIVE:e=>{const{normalize:t}=e;return t(["archive .zip"])},ZIP_ARCHIVE_DESCRIPTION:e=>{const{normalize:t}=e;return t(["ou une archive .zip contenant des fichiers .gpx"])}},_={about:a,admin:r,api:s,buttons:o,common:i,dashboard:l,error:c,sports:u,statistics:d,user:m,workouts:S}},811:function(e,t,n){"use strict";var a=n(3328),r=n(8278),s=n(9963),o=n(2343),i=n(5205);(0,i.z)("/service-worker.js",{ready(){console.log("App is being served from cache by a service worker.\nFor more details, visit https://goo.gl/AFskqB")},registered(){console.log("Service worker has been registered.")},cached(){console.log("Content has been cached for offline use.")},updatefound(){console.log("New content is downloading.")},updated(){console.log("New content is available; please refresh.")},offline(){console.log("No internet connection found. App is running in offline mode.")},error(e){console.error("Error during service worker registration:",e)}});var l=n(6252),c=n(2262),u=n(3577);const d=e=>((0,l.dD)("data-v-2c73279e"),e=e(),(0,l.Cn)(),e),m={id:"footer"},S={class:"footer-items"},_={class:"footer-item"},E=d((()=>(0,l._)("strong",null,"FitTrackee",-1))),p=d((()=>(0,l._)("div",{class:"footer-item bullet"},"•",-1))),T={class:"footer-item"},A={key:0,class:"footer-item bullet"},U={key:1,class:"footer-item"},O=["href"],R=d((()=>(0,l._)("div",{class:"footer-item bullet"},"•",-1))),I={class:"footer-item"},g={href:"https://samr1.github.io/FitTrackee/",target:"_blank",rel:"noopener noreferrer"};var w=(0,l.aZ)({name:"Footer",props:{version:null,adminContact:null},setup(e){const t=e,{adminContact:n,version:a}=(0,c.BK)(t);return(e,t)=>{const r=(0,l.up)("router-link");return(0,l.wg)(),(0,l.iD)("div",m,[(0,l._)("div",S,[(0,l._)("div",_,[E,(0,l.Uk)(" v"+(0,u.zw)((0,c.SU)(a)),1)]),p,(0,l._)("div",T,[(0,l.Wm)(r,{to:"/about"},{default:(0,l.w5)((()=>[(0,l.Uk)((0,u.zw)(e.$t("common.ABOUT")),1)])),_:1})]),(0,c.SU)(n)?((0,l.wg)(),(0,l.iD)("div",A,"•")):(0,l.kq)("",!0),(0,c.SU)(n)?((0,l.wg)(),(0,l.iD)("div",U,[(0,l._)("a",{href:`mailto:${(0,c.SU)(n)}`},(0,u.zw)(e.$t("common.CONTACT")),9,O)])):(0,l.kq)("",!0),R,(0,l._)("div",I,[(0,l._)("a",g,(0,u.zw)(e.$t("common.DOCUMENTATION")),1)])])])}}}),v=n(3744);const f=(0,v.Z)(w,[["__scopeId","data-v-2c73279e"]]);var N=f,h=n(3324),C=n(6595),D=n(8602),k=n(9917),z=n(6287);const P=e=>((0,l.dD)("data-v-0d4f0b8f"),e=e(),(0,l.Cn)(),e),M={id:"nav"},y={class:"nav-container"},b={class:"nav-app-name"},L={class:"nav-items-close"},G=P((()=>(0,l._)("div",{class:"app-name"},"FitTrackee",-1))),F={key:0,class:"nav-items-group"},W=P((()=>(0,l._)("div",{class:"nav-item nav-separator"},null,-1))),Y={class:"nav-items-user-menu"},x={key:0,class:"nav-items-group"},$={class:"nav-item nav-profile-img"},Z={key:1,class:"nav-items-group"},K=P((()=>(0,l._)("i",{class:"fa fa-language"},null,-1)));var B=(0,l.aZ)({name:"NavBar",emits:["menuInteraction"],setup(e,{emit:t}){const{locale:n}=(0,h.QT)(),a=(0,k.o)(),r=(0,l.Fl)((()=>a.getters[D.YN.GETTERS.AUTH_USER_PROFILE])),s=(0,l.Fl)((()=>a.getters[D.YN.GETTERS.IS_AUTHENTICATED])),o=(0,l.Fl)((()=>a.getters[D.SY.GETTERS.LANGUAGE]));let i=(0,c.iH)(!1);function d(){i.value=!0,t("menuInteraction",!0)}function m(){i.value=!1,t("menuInteraction",!1)}function S(e){n.value=e.value.toString(),a.commit(D.SY.MUTATIONS.UPDATE_LANG,e.value)}function _(){a.dispatch(D.YN.ACTIONS.LOGOUT)}return(e,t)=>{const n=(0,l.up)("router-link"),a=(0,l.up)("Dropdown");return(0,l.wg)(),(0,l.iD)("div",M,[(0,l._)("div",y,[(0,l._)("div",b,[(0,l._)("div",{class:"nav-item app-name",onClick:t[0]||(t[0]=t=>e.$router.push("/"))}," FitTrackee ")]),(0,l._)("div",{class:(0,u.C_)(["nav-icon-open",{"menu-open":(0,c.SU)(i)}])},[(0,l._)("i",{class:"fa fa-bars hamburger-icon",onClick:t[1]||(t[1]=e=>d())})],2),(0,l._)("div",{class:(0,u.C_)(["nav-items",{"menu-open":(0,c.SU)(i)}])},[(0,l._)("div",L,[G,(0,l._)("i",{class:(0,u.C_)(["fa fa-close close-icon nav-item",{"menu-closed":!(0,c.SU)(i)}]),onClick:t[2]||(t[2]=e=>m())},null,2)]),(0,l._)("div",{class:"nav-items-app-menu",onClick:t[3]||(t[3]=e=>m())},[(0,c.SU)(s)?((0,l.wg)(),(0,l.iD)("div",F,[(0,l.Wm)(n,{class:"nav-item",to:"/"},{default:(0,l.w5)((()=>[(0,l.Uk)((0,u.zw)(e.$t("dashboard.DASHBOARD")),1)])),_:1}),(0,l.Wm)(n,{class:"nav-item",to:"/workouts"},{default:(0,l.w5)((()=>[(0,l.Uk)((0,u.zw)((0,u.kC)(e.$t("workouts.WORKOUT",2))),1)])),_:1}),(0,l.Wm)(n,{class:"nav-item",to:"/statistics"},{default:(0,l.w5)((()=>[(0,l.Uk)((0,u.zw)(e.$t("statistics.STATISTICS")),1)])),_:1}),(0,l.Wm)(n,{class:"nav-item",to:"/workouts/add"},{default:(0,l.w5)((()=>[(0,l.Uk)((0,u.zw)(e.$t("workouts.ADD_WORKOUT")),1)])),_:1}),(0,c.SU)(s)&&(0,c.SU)(r).admin?((0,l.wg)(),(0,l.j4)(n,{key:0,class:"nav-item",to:"/admin"},{default:(0,l.w5)((()=>[(0,l.Uk)((0,u.zw)(e.$t("admin.ADMIN")),1)])),_:1})):(0,l.kq)("",!0),W])):(0,l.kq)("",!0)]),(0,l._)("div",Y,[(0,c.SU)(s)?((0,l.wg)(),(0,l.iD)("div",x,[(0,l._)("div",$,[(0,l.Wm)(C.Z,{user:(0,c.SU)(r)},null,8,["user"])]),(0,l.Wm)(n,{class:"nav-item",to:"/profile",onClick:m},{default:(0,l.w5)((()=>[(0,l.Uk)((0,u.zw)((0,c.SU)(r).username),1)])),_:1}),(0,l._)("div",{class:"nav-item nav-link",onClick:_},(0,u.zw)(e.$t("user.LOGOUT")),1)])):((0,l.wg)(),(0,l.iD)("div",Z,[(0,l.Wm)(n,{class:"nav-item",to:"/login",onClick:m},{default:(0,l.w5)((()=>[(0,l.Uk)((0,u.zw)(e.$t("user.LOGIN")),1)])),_:1}),(0,l.Wm)(n,{class:"nav-item",to:"/register",onClick:m},{default:(0,l.w5)((()=>[(0,l.Uk)((0,u.zw)(e.$t("user.REGISTER")),1)])),_:1})])),(0,c.SU)(z.mT)&&(0,c.SU)(o)?((0,l.wg)(),(0,l.j4)(a,{key:2,class:"nav-item",options:(0,c.SU)(z.mT),selected:(0,c.SU)(o),onSelected:S},{default:(0,l.w5)((()=>[K])),_:1},8,["options","selected"])):(0,l.kq)("",!0)])],2)])])}}});const H=(0,v.Z)(B,[["__scopeId","data-v-0d4f0b8f"]]);var q=H,j=n(7167);const V={id:"no-config"},X={class:"error-page"},J={class:"error-img"},Q=["innerHTML"];var ee=(0,l.aZ)({name:"NoConfig",setup(e){return(e,t)=>((0,l.wg)(),(0,l.iD)("div",V,[(0,l._)("div",X,[(0,l._)("div",J,[(0,l.Wm)(j.Z)]),(0,l._)("p",{class:"error-message",innerHTML:e.$t("error.APP_ERROR")},null,8,Q)])]))}});const te=(0,v.Z)(ee,[["__scopeId","data-v-47759238"]]);var ne=te;const ae=(0,l._)("div",{id:"top"},null,-1),re={key:0,class:"app-container"},se={class:"app-loading"},oe={class:"container scroll"},ie=(0,l._)("i",{class:"fa fa-chevron-up","aria-hidden":"true"},null,-1),le=[ie];var ce=(0,l.aZ)({name:"App",setup(e){const t=(0,k.o)(),n=(0,l.Fl)((()=>t.getters[D.SY.GETTERS.APP_CONFIG])),a=(0,l.Fl)((()=>t.getters[D.SY.GETTERS.APP_LOADING])),r=(0,c.iH)(!1),s=(0,c.iH)(!1);function o(e){r.value=e}function i(e){return e.getBoundingClientRect().top=0}function d(){window.onscroll=()=>{let e=document.querySelector("#bottom");s.value=null!==e&&i(e)}}function m(){window.scrollTo({top:0,behavior:"smooth"}),setTimeout((()=>{s.value=!1}),300)}return(0,l.wF)((()=>t.dispatch(D.SY.ACTIONS.GET_APPLICATION_CONFIG))),(0,l.bv)((()=>d())),(e,t)=>{const i=(0,l.up)("Loader"),d=(0,l.up)("router-view");return(0,l.wg)(),(0,l.iD)(l.HY,null,[ae,(0,l.Wm)(q,{onMenuInteraction:o}),(0,c.SU)(a)?((0,l.wg)(),(0,l.iD)("div",re,[(0,l._)("div",se,[(0,l.Wm)(i)])])):((0,l.wg)(),(0,l.iD)("div",{key:1,class:(0,u.C_)(["app-container",{"hide-scroll":r.value}])},[(0,c.SU)(n)?((0,l.wg)(),(0,l.j4)(d,{key:0})):((0,l.wg)(),(0,l.j4)(ne,{key:1}))],2)),(0,l._)("div",oe,[(0,l._)("div",{class:(0,u.C_)(["scroll-button",{"display-button":s.value}]),onClick:m},le,2)]),(0,c.SU)(n)?((0,l.wg)(),(0,l.j4)(N,{key:2,version:(0,c.SU)(n)?(0,c.SU)(n).version:"",adminContact:(0,c.SU)(n).admin_contact},null,8,["version","adminContact"])):(0,l.kq)("",!0)],64)}}});const ue=ce;var de=ue,me=n(2540),Se=n(8733),_e=n(12);const Ee={class:"alert-message"},pe=["innerHTML"];var Te=(0,l.aZ)({name:"AlertMessage",props:{message:null},setup(e){const t=e,{message:n}=(0,c.BK)(t);return(e,t)=>((0,l.wg)(),(0,l.iD)("div",Ee,[(0,l._)("div",{innerHTML:e.$t((0,c.SU)(n))},null,8,pe)]))}});const Ae=(0,v.Z)(Te,[["__scopeId","data-v-69d7e4ff"]]);var Ue=Ae,Oe=n(2531);const Re={class:"custom-textarea"},Ie=["id","name","maxLenght","disabled"],ge={class:"remaining-chars"};var we=(0,l.aZ)({name:"CustomTextArea",props:{name:null,charLimit:{default:500},disabled:{type:Boolean,default:!1},input:{default:""}},emits:["updateValue"],setup(e,{emit:t}){const n=e;let a=(0,c.iH)("");function r(e){t("updateValue",e.target.value)}return(0,l.YP)((()=>n.input),(e=>{a.value=e})),(t,n)=>((0,l.wg)(),(0,l.iD)("div",Re,[(0,l.wy)((0,l._)("textarea",{id:e.name,name:e.name,maxLenght:e.charLimit,disabled:e.disabled,"onUpdate:modelValue":n[0]||(n[0]=e=>(0,c.dq)(a)?a.value=e:a=e),onInput:r},null,40,Ie),[[s.nr,(0,c.SU)(a)]]),(0,l._)("div",ge,(0,u.zw)(t.$t("workouts.REMAINING_CHARS"))+": "+(0,u.zw)((0,c.SU)(a).length)+"/"+(0,u.zw)(e.charLimit),1)]))}});const ve=(0,v.Z)(we,[["__scopeId","data-v-3ec2aca2"]]);var fe=ve,Ne=n(3649);const he=(0,l.Uk)(" "+(0,u.zw)(" ")+" ");var Ce=(0,l.aZ)({name:"Distance",props:{distance:null,unitFrom:null,useImperialUnits:{type:Boolean},digits:{default:2},displayUnit:{type:Boolean,default:!0},speed:{type:Boolean,default:!1},strong:{type:Boolean,default:!1}},setup(e){const t=e,{digits:n,displayUnit:a,distance:r,speed:s,strong:o,unitFrom:i,useImperialUnits:d}=(0,c.BK)(t),m=(0,l.Fl)((()=>d.value?Ne.Dl[i.value].defaultTarget:i.value)),S=(0,l.Fl)((()=>d.value?(0,Ne.sC)(r.value,i.value,m.value,n.value):parseFloat(r.value.toFixed(n.value))));return(e,t)=>((0,l.wg)(),(0,l.iD)(l.HY,null,[(0,l._)("span",{class:(0,u.C_)(["distance",{strong:(0,c.SU)(o)}])},(0,u.zw)((0,c.SU)(S)),3),he,(0,c.SU)(a)?((0,l.wg)(),(0,l.iD)("span",{key:0,class:(0,u.C_)(["unit",{strong:(0,c.SU)(o)}])},(0,u.zw)((0,c.SU)(m))+(0,u.zw)((0,c.SU)(s)?"/h":""),3)):(0,l.kq)("",!0)],64))}});const De=(0,v.Z)(Ce,[["__scopeId","data-v-f46ff1d6"]]);var ke=De,ze=n(2119);const Pe={class:"dropdown-wrapper"},Me={key:0,class:"dropdown-list"},ye=["onClick"];var be=(0,l.aZ)({name:"Dropdown",props:{options:null,selected:null},emits:{selected:e=>e},setup(e,{emit:t}){const n=e,a=(0,ze.yj)();let r=(0,c.iH)(!1),s=n.options.map((e=>e));function o(){r.value=!r.value}function i(e){t("selected",e),r.value=!1}return(0,l.YP)((()=>a.path),(()=>r.value=!1)),(t,n)=>((0,l.wg)(),(0,l.iD)("div",Pe,[(0,l._)("div",{class:"dropdown-selected",onClick:o},[(0,l.WI)(t.$slots,"default")]),(0,c.SU)(r)?((0,l.wg)(),(0,l.iD)("ul",Me,[((0,l.wg)(!0),(0,l.iD)(l.HY,null,(0,l.Ko)((0,c.SU)(s),((t,n)=>((0,l.wg)(),(0,l.iD)("li",{class:(0,u.C_)(["dropdown-item",{selected:t.value===e.selected}]),key:n,onClick:e=>i(t)},(0,u.zw)(t.label),11,ye)))),128))])):(0,l.kq)("",!0)]))}});const Le=(0,v.Z)(be,[["__scopeId","data-v-ca61364c"]]);var Ge=Le;const Fe={class:"error-message"},We={key:0},Ye={key:1};var xe=(0,l.aZ)({name:"ErrorMessage",props:{message:null},setup(e){const t=e,{message:n}=(0,c.BK)(t);return(e,t)=>((0,l.wg)(),(0,l.iD)("div",Fe,[Array.isArray((0,c.SU)(n))?((0,l.wg)(),(0,l.iD)("ul",We,[((0,l.wg)(!0),(0,l.iD)(l.HY,null,(0,l.Ko)((0,c.SU)(n),((t,n)=>((0,l.wg)(),(0,l.iD)("li",{key:n},(0,u.zw)(e.$t(t)),1)))),128))])):((0,l.wg)(),(0,l.iD)("div",Ye,(0,u.zw)(e.$t((0,c.SU)(n))),1))]))}});const $e=(0,v.Z)(xe,[["__scopeId","data-v-2659a79a"]]);var Ze=$e;const Ke={version:"1.1",id:"Capa_1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",x:"0px",y:"0px",viewBox:"0 0 491.737 491.737",style:{"enable-background":"new 0 0 491.737 491.737"},"xml:space":"preserve"},Be=(0,l._)("desc",{id:"cyclingSportDescription"}," silhouette of a person riding a bicycle ",-1),He=(0,l._)("g",null,[(0,l._)("path",{d:"M321.097,112.359c20.973,12.338,47.985,5.315,60.293-15.652c12.34-20.973,5.35-47.974-15.623-60.304\n\t\tc-21.009-12.332-47.99-5.317-60.314,15.65C293.129,73.036,300.103,100.027,321.097,112.359z"}),(0,l._)("path",{d:"M393.081,264.102c-2.414,0-4.8,0.194-7.169,0.362l-14.431-71.605l4.702-1.757c10.666-3.987,16.093-15.868,12.098-26.54\n\t\tc-3.994-10.681-15.946-16.084-26.531-12.09l-51.823,19.38l-2.321-18.864c6.3-13.193,5.541-29.78-4.767-41.482\n\t\tc-21.224-24.092-47.12-12.508-55.191-5.976l-106.884,86.555l0.016,0.024c-3.319,2.893-6.089,6.485-7.86,10.842\n\t\tc-2.191,5.396-2.596,11.067-1.564,16.384c-8.503,0.669-15.255,7.571-15.255,16.246c0,9.085,7.346,16.44,16.432,16.48l-6.797,15.906\n\t\tc-8.62-2.465-17.674-3.866-27.066-3.866C44.27,264.102,0,308.354,0,362.754c0,54.403,44.27,98.663,98.668,98.663\n\t\tc54.403,0,98.652-44.26,98.652-98.663c0-36.228-19.683-67.867-48.858-85.024l10.957-25.652h17.767l60.281,24.462l-32.201,52.773\n\t\tc-8.297,13.612-3.994,31.382,9.615,39.685c4.691,2.86,9.878,4.229,15,4.229c9.729,0,19.234-4.929,24.677-13.838l29.339-48.095\n\t\tl19.072,11.511c-5.447,12.227-8.54,25.726-8.54,39.95c0,54.403,44.254,98.663,98.652,98.663c54.402,0,98.656-44.26,98.656-98.663\n\t\tC491.737,308.354,447.483,264.102,393.081,264.102z M98.668,436.671c-40.756,0-73.923-33.161-73.923-73.917\n\t\tc0-40.756,33.167-73.909,73.923-73.909c5.944,0,11.649,0.896,17.188,2.224l-20.476,47.893\n\t\tc-11.758,1.619-20.843,11.598-20.843,23.792c0,13.323,10.808,24.132,24.13,24.132c8.767,0,16.367-4.745,20.589-11.76h52.065\n\t\tC165.395,409.988,135.188,436.671,98.668,436.671z M171.322,350.383h-52.065c-0.355-0.588-0.708-1.176-1.112-1.732l20.476-47.901\n\t\tC155.679,311.776,167.793,329.595,171.322,350.383z M296.781,290.175l7.666-12.564c4.416-7.233,5.431-16.038,2.774-24.084\n\t\tc-2.661-8.046-8.718-14.515-16.562-17.704l-52.725-21.395l32.443-26.281l1.804,14.691c0.756,6.267,4.366,11.841,9.761,15.12\n\t\tc3.271,1.981,6.979,2.988,10.698,2.988c2.435,0,4.88-0.435,7.218-1.306l48.15-18.001l13.627,67.691\n\t\tc-18.268,6.162-34.117,17.51-45.848,32.314L296.781,290.175z M375.396,337.633l-38.003-22.94\n\t\tc7.877-9.118,17.787-16.319,29.205-20.734L375.396,337.633z M393.081,436.671c-40.757,0-73.907-33.161-73.907-73.917\n\t\tc0-9.544,1.965-18.597,5.268-26.983l44.541,26.888c0,0.032-0.016,0.064-0.016,0.095c0,13.323,10.808,24.132,24.114,24.132\n\t\tc13.322,0,24.118-10.81,24.118-24.132c0-10.478-6.721-19.307-16.06-22.64l-10.277-51.043c0.756-0.024,1.463-0.226,2.22-0.226\n\t\tc40.757,0,73.911,33.153,73.911,73.909C466.992,403.51,433.838,436.671,393.081,436.671z"})],-1),qe=[Be,He];function je(e,t,n,a,r,s){return(0,l.wg)(),(0,l.iD)("svg",Ke,qe)}var Ve={name:"CyclingSport"};const Xe=(0,v.Z)(Ve,[["render",je]]);var Je=Xe;const Qe={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"},et=(0,l._)("desc",{id:"cyclingTransportDescription"}," silhouette of a person riding a bicycle (for transportation) ",-1),tt=(0,l._)("g",{id:"g147"},[(0,l._)("path",{d:"m 189.097,82.359 c 20.97701,12.331184 47.97442,5.308784 60.293,-15.652 12.32942,-20.979222 5.35418,-47.981117 -15.623,-60.304 -21.00482,-12.3391184 -47.99,-5.317 -60.314,15.65 -12.324,20.983 -5.34599,47.967183 15.644,60.306 z",id:"path143"}),(0,l._)("path",{d:"m 393.081,264.102 c -2.414,0 -4.8,0.194 -7.169,0.362 l -14.431,-71.605 4.702,-1.757 c 10.666,-3.987 16.093,-15.868 12.098,-26.54 -3.994,-10.681 -15.946,-16.084 -26.531,-12.09 l -63.05508,-1.53717 C 284.04753,137.09803 248.90259,106.55858 243.33317,101.62481 217.77732,75.090916 186.1698,85.012419 178.0988,91.544419 L 140.764,192.085 l 0.016,0.024 c -3.319,2.893 -6.089,6.485 -7.86,10.842 -2.191,5.396 -2.596,11.067 -1.564,16.384 -8.503,0.669 -15.255,7.571 -15.255,16.246 0,9.085 7.346,16.44 16.432,16.48 l -6.797,15.906 c -8.62,-2.465 -17.674,-3.866 -27.066,-3.866 C 44.27,264.102 0,308.354 0,362.754 c 0,54.403 44.27,98.663 98.668,98.663 54.403,0 98.652,-44.26 98.652,-98.663 0,-36.228 -19.683,-67.867 -48.858,-85.024 l 10.957,-25.652 h 17.767 l 60.281,24.462 -32.201,52.773 c -8.297,13.612 -3.994,31.382 9.615,39.685 4.691,2.86 9.878,4.229 15,4.229 9.729,0 19.234,-4.929 24.677,-13.838 l 29.339,-48.095 19.072,11.511 c -5.447,12.227 -8.54,25.726 -8.54,39.95 0,54.403 44.254,98.663 98.652,98.663 54.402,0 98.656,-44.26 98.656,-98.663 0,-54.401 -44.254,-98.653 -98.656,-98.653 z M 98.668,436.671 c -40.756,0 -73.923,-33.161 -73.923,-73.917 0,-40.756 33.167,-73.909 73.923,-73.909 5.944,0 11.649,0.896 17.188,2.224 L 95.38,338.962 c -11.758,1.619 -20.843,11.598 -20.843,23.792 0,13.323 10.808,24.132 24.13,24.132 8.767,0 16.367,-4.745 20.589,-11.76 h 52.065 c -5.926,34.862 -36.133,61.545 -72.653,61.545 z m 72.654,-86.288 h -52.065 c -0.355,-0.588 -0.708,-1.176 -1.112,-1.732 l 20.476,-47.901 c 17.058,11.026 29.172,28.845 32.701,49.633 z m 125.459,-60.208 7.666,-12.564 c 4.416,-7.233 5.431,-16.038 2.774,-24.084 -2.661,-8.046 -8.718,-14.515 -16.562,-17.704 l -73.83357,-31.7176 16.7558,-45.21274 c 10.36934,4.13303 41.82171,27.90767 45.77423,28.08592 3.271,1.981 8.57725,1.46711 12.29625,1.46711 2.435,0 18.50584,0.70472 20.84384,-0.16628 L 343.32113,188.03378 361.635,269.33 c -18.268,6.162 -34.117,17.51 -45.848,32.314 z m 78.615,47.458 -38.003,-22.94 c 7.877,-9.118 17.787,-16.319 29.205,-20.734 z m 17.685,99.038 c -40.757,0 -73.907,-33.161 -73.907,-73.917 0,-9.544 1.965,-18.597 5.268,-26.983 l 44.541,26.888 c 0,0.032 -0.016,0.064 -0.016,0.095 0,13.323 10.808,24.132 24.114,24.132 13.322,0 24.118,-10.81 24.118,-24.132 0,-10.478 -6.721,-19.307 -16.06,-22.64 l -10.277,-51.043 c 0.756,-0.024 1.463,-0.226 2.22,-0.226 40.757,0 73.911,33.153 73.911,73.909 -10e-4,40.756 -33.155,73.917 -73.912,73.917 z",id:"path145"})],-1),nt=[et,tt];function at(e,t,n,a,r,s){return(0,l.wg)(),(0,l.iD)("svg",Qe,nt)}var rt={name:"CyclingTransport"};const st=(0,v.Z)(rt,[["render",at]]);var ot=st;const it={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"},lt=(0,l._)("desc",{id:"hikingDescription"},"silhouette of a person hiking",-1),ct=(0,l._)("g",null,[(0,l._)("path",{d:"M246.413,78.492c21.688,0,39.255-17.573,39.255-39.251c0-21.67-17.567-39.24-39.255-39.24\n\t\tc-21.652,0-39.242,17.57-39.242,39.24C207.171,60.919,224.761,78.492,246.413,78.492z"}),(0,l._)("path",{d:"M386.604,202.858c0-11.185-9.066-20.251-20.253-20.251h-68.479l-38.62-54.832l0.127-0.933\n\t\tc1.378-10.474-1.474-21.067-7.911-29.444c-6.441-8.378-15.932-13.852-26.408-15.23c-11.596-1.511-22.592,2.224-30.852,9.225V45.779\n\t\tc0-7.847-6.362-14.217-14.225-14.217H140.59c-7.867,0-14.225,6.37-14.225,14.217v168.953c0,20.68,15.821,37.476,35.979,39.446\n\t\tl-3.043,7.073l-23.859,90.136l-53.73,72.188c-8.006,10.768-5.794,25.987,4.984,34.001c4.348,3.245,9.443,4.811,14.491,4.811\n\t\tc7.422,0,14.729-3.385,19.511-9.795l56.529-75.945c1.851-2.484,3.213-5.299,4.003-8.289l16.266-61.414l44.521,40.877l-6.076,88.603\n\t\tc-0.917,13.393,9.177,24.99,22.58,25.908c0.552,0.04,1.124,0.056,1.691,0.056c12.66,0,23.339-9.819,24.208-22.642l6.882-100.264\n\t\tc0.508-7.364-2.371-14.572-7.815-19.564l-45.994-42.219l13.992-90.613l19.331,27.435c3.801,5.387,9.972,8.592,16.552,8.592h70.882\n\t\tl1.339,232.294c0,4.478,3.626,8.101,8.101,8.101c4.479,0,8.101-3.624,8.101-8.101l-1.339-234.036\n\t\tC381.588,218.245,386.604,211.15,386.604,202.858z"})],-1),ut=[lt,ct];function dt(e,t,n,a,r,s){return(0,l.wg)(),(0,l.iD)("svg",it,ut)}var mt={name:"Hiking"};const St=(0,v.Z)(mt,[["render",dt]]);var _t=St;const Et={version:"1.1",id:"Capa_1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",x:"0px",y:"0px",viewBox:"0 0 503.162 503.162",style:{"enable-background":"new 0 0 503.162 503.162"},"xml:space":"preserve"},pt=(0,l._)("desc",{id:"mountainBikingDescription"}," silhouette of a person riding a mountain bike ",-1),Tt=(0,l._)("g",null,[(0,l._)("g",null,[(0,l._)("path",{d:"M149.951,67.997c15.711-7.143,22.739-25.675,15.596-41.416c-7.124-15.701-25.723-22.682-41.453-15.539\n\t\t\tc-15.721,7.134-22.702,25.752-15.578,41.444C115.679,68.216,134.23,75.14,149.951,67.997z"}),(0,l._)("path",{d:"M87.517,89.072l-32.828,87.755c-1.979,5.967-1.683,12.594,1.1,18.733c4.055,8.922,12.604,14.525,21.755,15.271\n\t\t\tl76.873,6.244l29.137,64.184c4.122,9.046,14.832,13.148,23.906,9.017c9.075-4.131,13.072-14.859,8.951-23.944l-36.424-80.201\n\t\t\tc0,0-3.605-13.76-21.343-14.133l-43.873-2.572l21.009-55.166l31.671,20.588c5.584,3.663,10.997,3.682,15.1,1.722l55.051-24.997\n\t\t\tc17.069-7.755,6.952-30.036-10.108-22.29l-47.506,21.707l-53.55-34.846c0,0-11.638-8.013-24.241-2.285\n\t\t\tC102.205,73.858,91.112,77.243,87.517,89.072z"}),(0,l._)("path",{d:"M423.687,182.488l-2.61,15.042c-2.123,12.154-13.35,25.092-25.092,28.888l-3.711,1.195\n\t\t\tc3.041-16.543,1.282-34.148-6.215-50.633c-19.498-42.974-70.094-61.87-112.943-42.419\n\t\t\tc-42.878,19.479-61.936,70.017-42.438,112.981c17.069,37.562,57.881,56.744,96.534,47.966l-0.784,1.415\n\t\t\tc-5.968,10.796-20.817,19.221-33.144,18.8l-17.892-0.622c-12.336-0.411-30.514,5.002-40.603,12.116l-22.376,15.759\n\t\t\tc-10.107,7.104-28.276,12.632-40.612,12.354l-12.001-0.277c12.718-22.845,14.889-51.159,3.242-76.806\n\t\t\tc-19.517-42.955-70.074-61.879-113.019-42.381c-42.792,19.44-61.87,70.007-42.372,112.933\n\t\t\tc16.667,36.711,56.084,55.788,93.914,48.444l-1.32,2.056c-6.675,10.385-22.08,18.398-34.406,17.92l-32.79-1.291\n\t\t\tc-12.326-0.497-24.021,8.97-26.096,21.143l-2.62,15.339c-0.564,3.271-0.354,6.11,0.401,8.501c-0.43,1.778-0.736,3.548-0.736,5.326\n\t\t\tv9.562c0,10.557,8.568,19.125,19.125,19.125h460.932c10.557,0,19.115-8.568,19.106-19.125l-0.125-167.507\n\t\t\tc0-2.782-0.593-5.221-1.616-7.286c1.396-3.806,2.057-7.841,1.598-11.839l-4.677-40.497c-1.415-12.249-9.763-29.146-18.637-37.724\n\t\t\tl-36.127-34.951C434.712,167.418,425.79,170.325,423.687,182.488z"})])],-1),At=[pt,Tt];function Ut(e,t,n,a,r,s){return(0,l.wg)(),(0,l.iD)("svg",Et,At)}var Ot={name:"MountainBiking"};const Rt=(0,v.Z)(Ot,[["render",Ut]]);var It=Rt;const gt={version:"1.1",id:"Capa_1",xmlns:"http://www.w3.org/2000/svg","xmlns:svg":"http://www.w3.org/2000/svg",x:"0px",y:"0px",viewBox:"0 0 503.162 503.162",style:{"enable-background":"new 0 0 503.162 503.162"},"xml:space":"preserve"},wt=(0,l.uE)(' silhouette of a person riding an electric mountain bike ',18),vt=[wt];function ft(e,t,n,a,r,s){return(0,l.wg)(),(0,l.iD)("svg",gt,vt)}var Nt={name:"MountainBikingElectric"};const ht=(0,v.Z)(Nt,[["render",ft]]);var Ct=ht;const Dt={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"},kt=(0,l._)("desc",{id:"rowingDescription"},"silhouette of a person rowing",-1),zt=(0,l._)("g",null,[(0,l._)("g",null,[(0,l._)("path",{d:"M70.517,393.857h132.622l-67.205,68.631c-3.28,3.385-3.204,8.797,0.172,12.076c1.597,1.568,3.72,2.43,5.958,2.43\n\t\t\tc2.305,0,4.533-0.947,6.12-2.572l78.881-80.555h221.315c12.45,0,30.676-6.006,40.296-13.914\n\t\t\tc8.788-7.229,19.049-16.217,26.345-24.299c10.375-9.811,22.214-23.639-4.255-22.834c-6.98,0.248-206.789,0.02-223.926,0\n\t\t\tl47.144-48.139l22.176-22.032l28.209,9.17c10.414,3.385,22.472-0.803,26.919-9.362c4.446-8.558,0.268-18.407-9.343-21.993\n\t\t\tl-17.404-6.512l54.698-54.774c12.507,6.617,28.362,4.867,38.899-5.671l46.541-46.607c13.11-13.015,13.11-33.957,0-46.923\n\t\t\tc-12.909-13.034-34.042-13.034-46.942,0l-46.512,46.598c-10.892,10.815-12.508,27.139-5.26,39.742l-57.853,59.077L253.744,183.09\n\t\t\tc-1.482-0.851-14.153-5.786-26.833-10.643c-14.898-5.719-30.371,0.583-34.53,13.971l-7.525,24.241l-35.324,118.451\n\t\t\tc-0.468,1.34-0.603,2.562-0.746,3.711H14.136c-12.45,0-17.662,8.836-11.618,19.727l23.237,21.592\n\t\t\tC39.123,385.068,58.066,393.857,70.517,393.857z M272.63,248.727c1.797-5.967,8.099-9.39,14.075-7.64l51.37,14.975l-33.038,33.737\n\t\t\tl-43.453,43.012h-14.2L272.63,248.727z"}),(0,l._)("circle",{cx:"248.953",cy:"109.842",r:"52.326"})])],-1),Pt=[kt,zt];function Mt(e,t,n,a,r,s){return(0,l.wg)(),(0,l.iD)("svg",Dt,Pt)}var yt={name:"Rowing"};const bt=(0,v.Z)(yt,[["render",Mt]]);var Lt=bt;const Gt={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"},Ft=(0,l._)("desc",{id:"runningDescription"},"silhouette of a running person",-1),Wt=(0,l._)("g",null,[(0,l._)("path",{d:"M282.74,80.771c22.318,0,40.401-18.08,40.401-40.389C323.141,18.084,305.058,0,282.74,0\n\t\tc-22.281,0-40.378,18.084-40.378,40.383C242.362,62.691,260.458,80.771,282.74,80.771z"}),(0,l._)("path",{d:"M400.207,188.547H331.47l-38.766-55.03l0.123-0.944c1.384-10.514-1.475-21.146-7.94-29.556\n\t\tc-6.461-8.409-16.007-13.903-26.52-15.287c-10.926-1.429-22.619,3.12-31.206,8.646c-1.441,0.928-84.97,54.921-84.97,54.921\n\t\tc-5.175,3.358-8.542,8.877-9.165,15.016c-0.634,6.13,1.574,12.222,5.976,16.541l58.982,58l-6.417,48.954l-18.707,65.584l-67.8-19.4\n\t\tc-12.911-3.676-26.44,3.796-30.159,16.747c-3.699,12.951,3.799,26.459,16.758,30.168l91.271,26.109\n\t\tc2.192,0.627,4.444,0.936,6.7,0.936c4.113,0,8.195-1.04,11.848-3.073c5.655-3.146,9.833-8.409,11.611-14.635l21.963-77.057\n\t\tl26.365,36.639l6.684,119.628c0.73,12.991,11.501,23.036,24.349,23.036c0.441,0,0.92-0.016,1.379-0.039\n\t\tc13.453-0.748,23.745-12.262,23-25.713l-7.083-126.736c-0.271-4.643-1.846-9.116-4.56-12.887l-32.24-44.811l11.959-91.279\n\t\tl19.409,27.555c3.794,5.407,10.005,8.624,16.613,8.624h79.28c11.226,0,20.326-9.101,20.326-20.329\n\t\tC420.533,197.647,411.432,188.547,400.207,188.547z M204.606,190.357l-19.026-18.717l23.476-15.206L204.606,190.357z"})],-1),Yt=[Ft,Wt];function xt(e,t,n,a,r,s){return(0,l.wg)(),(0,l.iD)("svg",Gt,Yt)}var $t={name:"Running"};const Zt=(0,v.Z)($t,[["render",xt]]);var Kt=Zt;const Bt={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"},Ht=(0,l._)("desc",{id:"alpineSkiingDescription"},"silhouette of a person skiing",-1),qt=(0,l._)("g",null,[(0,l._)("g",null,[(0,l._)("path",{d:"M14.314,351.859L408.088,461.78c4.484,1.311,9.104,1.97,13.731,1.97l0,0c17.471,0,33.746-9.429,42.467-24.604\n\t\t\tc2.716-4.724,3.137-10.27,1.157-15.214c-1.912-4.762-5.767-8.31-10.576-9.744c-7.373-2.237-15.481,1.109-22.146,9.229\n\t\t\tc-3.548,4.303-9.496,6.244-15.07,4.714l-136.467-38.078c1.396-0.555,2.812-1.195,4.236-2.065l103.266-63.15\n\t\t\tc15.443-9.362,18.493-33.957,7.812-43.883l-64.758-60.233l39.972-21.688l69.682,9.744c5.23,0.736,9.744-2.037,10.079-6.187\n\t\t\tc0.344-4.141-3.624-8.1-8.855-8.826l-48.605-6.828l22.472-12.192c39.895-23.275,5.823-85.192-35.334-63.112l-87.554,61.19\n\t\t\tl-117.503-16.515l2.543-12.087c0.545-2.582-1.109-5.116-3.691-5.661c-2.572-0.593-5.116,1.1-5.661,3.701l-2.678,12.709\n\t\t\tl-18.331-2.582c-5.231-0.727-9.467,2.123-9.467,6.369s4.236,8.281,9.467,9.017l15.176,2.123l-2.544,12.087\n\t\t\tc-0.545,2.582,1.109,5.125,3.691,5.671c0.334,0.076,0.66,0.105,0.994,0.105c2.209,0,4.198-1.54,4.676-3.787l2.678-12.737\n\t\t\tl102.414,14.315l-5.308,3.72c-4.332,3.022-10.155,9.151-11.723,14.201c-3.844,12.45-1.473,26.717,10.452,37.705l68.802,62.175\n\t\t\tc0,0-50.978,31.776-74.998,46.397c-14.219,8.606-13.674,23.858-6.129,33.393L23.705,318.199\n\t\t\tc-10.012-2.792-20.569,2.554-23.113,11.695C-2,339.169,4.159,349.029,14.314,351.859z"}),(0,l._)("path",{d:"M450.842,72.003c-15.291,16.715-14.201,42.667,2.639,58.121c16.706,15.31,42.716,14.086,58.073-2.668\n\t\t\tc15.386-16.677,14.172-42.734-2.544-58.016C492.305,54.064,466.17,55.192,450.842,72.003z"})])],-1),jt=[Ht,qt];function Vt(e,t,n,a,r,s){return(0,l.wg)(),(0,l.iD)("svg",Bt,jt)}var Xt={name:"SkiingAlpine"};const Jt=(0,v.Z)(Xt,[["render",Vt]]);var Qt=Jt;const en={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"},tn=(0,l._)("desc",{id:"crossCountrySkiingDescription"}," silhouette of a person skiing (cross country) ",-1),nn=(0,l._)("g",null,[(0,l._)("path",{d:"M241.313,246.906h-39.564l0.456-1.273c5.62-18.374,3.479-37.58-6.027-54.278c-5.653-9.929-13.443-18.018-22.745-23.959\n\t\tl12.886-51.126c3.035-12.05-4.272-24.266-16.322-27.301c-2.634-0.664-5.278-0.826-7.833-0.559\n\t\tc-0.151-0.011-0.299-0.032-0.452-0.038c-26.03-1.077-51.443,8.485-70.33,25.993L41.586,82.855\n\t\tc-4.332-2.741-10.065-1.451-12.806,2.881s-1.451,10.065,2.88,12.806l47.625,30.136c-2.557,6.013-0.962,13.224,4.375,17.531\n\t\tc2.774,2.24,6.104,3.33,9.413,3.33c4.377-0.001,8.717-1.907,11.68-5.579l0.478-0.591c8.686-10.766,20.465-18.479,33.484-22.317\n\t\tl-11.095,44.046c-1.061,4.214-0.854,8.448,0.374,12.305c-12.908,17.917-28.398,33.68-46.198,46.979l-14.649,10.727\n\t\tc-3.938,2.943-6.001,7.798-6.005,11.798H8.25c-4.556,0-8.083,4.131-8.083,8.688v2.063c0,4.556,3.527,8.25,8.083,8.25h55.188\n\t\th161.375H280c9.113,0,16.167-7.387,16.167-16.5v-2.5H241.313z M153.974,192.398c0.741-0.153,1.471-0.231,2.188-0.457\n\t\tc5.742,3.406,10.53,8.313,13.945,14.311c5.378,9.447,6.59,20.402,3.41,30.797l-1.799,5.674c-0.447,1.461-0.656,3.184-0.657,4.184\n\t\th-69.909C121.581,231.906,139.297,213.274,153.974,192.398z M167,57.938c0-15.378,12.466-27.844,27.844-27.844\n\t\ts27.844,12.466,27.844,27.844s-12.466,27.844-27.844,27.844S167,73.315,167,57.938z"})],-1),an=[tn,nn];function rn(e,t,n,a,r,s){return(0,l.wg)(),(0,l.iD)("svg",en,an)}var sn={name:"SkiingCrossCountry"};const on=(0,v.Z)(sn,[["render",rn]]);var ln=on;const cn={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"},un=(0,l.uE)('silhouette of a person with snowshoes',6),dn=[un];function mn(e,t,n,a,r,s){return(0,l.wg)(),(0,l.iD)("svg",cn,dn)}var Sn={name:"Snowshoes"};const _n=(0,v.Z)(Sn,[["render",mn]]);var En=_n;const pn={version:"1.1",id:"Capa_1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",x:"0px",y:"0px",viewBox:"0 0 535.876 535.876",style:{"enable-background":"new 0 0 535.876 535.876"},"xml:space":"preserve"},Tn=(0,l._)("desc",{id:"trailDescription"},"silhouette of a person running (trail)",-1),An=(0,l._)("g",null,[(0,l._)("g",null,[(0,l._)("path",{d:"M505.204,326.949c-5.805-10.892-15.176-10.862-20.923,0.067l-7.114,13.512c-5.757,10.92-20.416,19.775-32.752,19.775\n\t\t\th-16.753c-12.346,0-29.645,6.847-38.643,15.29l-32.35,30.342l-1.233-105.388c0.822-18.446-10.596-24.634-10.596-24.634\n\t\t\tl-56.543-25.972l33.67-67.645l38.527,22.912c0,0,15.472,9.715,26.727-9.324l37.026-63.093c1.625-3.519,2.094-7.564,1.052-11.609\n\t\t\tc-2.381-9.256-11.81-14.86-21.095-12.479c-4.083,1.042-7.459,3.49-9.754,6.713l-30.772,51.962l-62.777-37.102\n\t\t\tc-4.733-2.716-10.519-3.691-16.257-2.209l-78.345,20.12c-5.03,1.291-8.96,4.762-11.017,9.142l-38.097,76.165\n\t\t\tc-2.591,3.854-3.624,8.73-2.371,13.607c2.285,8.941,11.456,14.363,20.435,12.059c5.04-1.291,8.951-4.743,10.997-9.161\n\t\t\tl35.314-70.858l28.936-7.296l-76.203,149.921l-65.981,16.734c-1.759,0.393-3.48,1.023-5.163,1.836\n\t\t\tc-10.596,5.412-14.679,18.179-9.267,28.803c4.733,9.266,15.252,13.636,24.901,10.978l78.067-20.187\n\t\t\tc18.6-4.093,23.313-14.449,23.313-14.449l30.581-58.79l62.28,35.678l0.593,86.216c0.01,1.08,0.259,2.161,0.421,3.241l-11.6-4.188\n\t\t\tc-11.608-4.188-30.57-4.608-42.361-0.956l-26.135,8.128c-11.79,3.663-30.791,3.338-42.447-0.717l-19.221-6.694\n\t\t\tc-11.657-4.054-28.831-0.984-38.374,6.838L109.9,433.954c-9.544,7.822-26.67,10.72-38.25,6.483L40.84,429.135\n\t\t\tc-11.58-4.256-25.608,1.157-31.336,12.097l-7.21,13.789c-5.728,10.93-0.354,19.794,11.982,19.794H500.27\n\t\t\tc12.336,0,24.309-9.802,26.728-21.907l8.004-39.981c2.409-12.097-0.325-30.733-6.14-41.616L505.204,326.949z"}),(0,l._)("path",{d:"M326.395,126.625c17.806-4.562,28.563-22.721,23.983-40.526c-4.581-17.844-22.74-28.554-40.555-23.983\n\t\t\tc-17.796,4.581-28.535,22.711-23.964,40.535C290.439,120.476,308.599,131.205,326.395,126.625z"})])],-1),Un=[Tn,An];function On(e,t,n,a,r,s){return(0,l.wg)(),(0,l.iD)("svg",pn,Un)}var Rn={name:"Trail"};const In=(0,v.Z)(Rn,[["render",On]]);var gn=In;const wn={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"},vn=(0,l.uE)('silhouette of a walking person',3),fn=[vn];function Nn(e,t,n,a,r,s){return(0,l.wg)(),(0,l.iD)("svg",wn,fn)}var hn={name:"Walking"};const Cn=(0,v.Z)(hn,[["render",Nn]]);var Dn=Cn;const kn=["title"];var zn=(0,l.aZ)({name:"index",props:{sportLabel:null,color:null,title:{default:""}},setup(e){const t=e,{color:n,sportLabel:a,title:r}=(0,c.BK)(t),s=(0,l.f3)("sportColors");return(e,t)=>((0,l.wg)(),(0,l.iD)("div",{class:"sport-img",style:(0,u.j5)({fill:(0,c.SU)(n)?(0,c.SU)(n):(0,c.SU)(s)[(0,c.SU)(a)]}),title:(0,c.SU)(r)?(0,c.SU)(r):e.$t(`sports.${(0,c.SU)(a)}.LABEL`)},["Cycling (Sport)"===(0,c.SU)(a)?((0,l.wg)(),(0,l.j4)(Je,{key:0})):(0,l.kq)("",!0),"Cycling (Transport)"===(0,c.SU)(a)?((0,l.wg)(),(0,l.j4)(ot,{key:1})):(0,l.kq)("",!0),"Hiking"===(0,c.SU)(a)?((0,l.wg)(),(0,l.j4)(_t,{key:2})):(0,l.kq)("",!0),"Mountain Biking"===(0,c.SU)(a)?((0,l.wg)(),(0,l.j4)(It,{key:3})):(0,l.kq)("",!0),"Mountain Biking (Electric)"===(0,c.SU)(a)?((0,l.wg)(),(0,l.j4)(Ct,{key:4})):(0,l.kq)("",!0),"Rowing"===(0,c.SU)(a)?((0,l.wg)(),(0,l.j4)(Lt,{key:5})):(0,l.kq)("",!0),"Running"===(0,c.SU)(a)?((0,l.wg)(),(0,l.j4)(Kt,{key:6})):(0,l.kq)("",!0),"Skiing (Alpine)"===(0,c.SU)(a)?((0,l.wg)(),(0,l.j4)(Qt,{key:7})):(0,l.kq)("",!0),"Skiing (Cross Country)"===(0,c.SU)(a)?((0,l.wg)(),(0,l.j4)(ln,{key:8})):(0,l.kq)("",!0),"Snowshoes"===(0,c.SU)(a)?((0,l.wg)(),(0,l.j4)(En,{key:9})):(0,l.kq)("",!0),"Trail"===(0,c.SU)(a)?((0,l.wg)(),(0,l.j4)(gn,{key:10})):(0,l.kq)("",!0),"Walking"===(0,c.SU)(a)?((0,l.wg)(),(0,l.j4)(Dn,{key:11})):(0,l.kq)("",!0)],12,kn))}});const Pn=zn;var Mn=Pn;const yn={class:"loader"};function bn(e,t){return(0,l.wg)(),(0,l.iD)("div",yn)}const Ln={},Gn=(0,v.Z)(Ln,[["render",bn],["__scopeId","data-v-4c9921ee"]]);var Fn=Gn;const Wn={id:"modal"},Yn={class:"custom-modal"},xn={key:0,class:"modal-message"},$n={key:1,class:"modal-message"},Zn={class:"modal-buttons"};var Kn=(0,l.aZ)({name:"Modal",props:{title:null,message:null,strongMessage:{default:()=>null}},emits:["cancelAction","confirmAction"],setup(e,{emit:t}){const n=e,a=(0,k.o)(),{title:r,message:s,strongMessage:o}=(0,c.BK)(n),i=(0,l.Fl)((()=>a.getters[D.SY.GETTERS.ERROR_MESSAGES]));return(0,l.Ah)((()=>a.commit(D.SY.MUTATIONS.EMPTY_ERROR_MESSAGES))),(e,n)=>{const a=(0,l.up)("i18n-t"),d=(0,l.up)("ErrorMessage"),m=(0,l.up)("Card");return(0,l.wg)(),(0,l.iD)("div",Wn,[(0,l._)("div",Yn,[(0,l.Wm)(m,null,{title:(0,l.w5)((()=>[(0,l.Uk)((0,u.zw)((0,c.SU)(r)),1)])),content:(0,l.w5)((()=>[(0,c.SU)(o)?((0,l.wg)(),(0,l.iD)("div",xn,[(0,l.Wm)(a,{keypath:(0,c.SU)(s)},{default:(0,l.w5)((()=>[(0,l._)("span",null,(0,u.zw)((0,c.SU)(o)),1)])),_:1},8,["keypath"])])):((0,l.wg)(),(0,l.iD)("div",$n,(0,u.zw)((0,c.SU)(s)),1)),(0,c.SU)(i)?((0,l.wg)(),(0,l.j4)(d,{key:2,message:(0,c.SU)(i)},null,8,["message"])):(0,l.kq)("",!0),(0,l._)("div",Zn,[(0,c.SU)(i)?(0,l.kq)("",!0):((0,l.wg)(),(0,l.iD)("button",{key:0,class:"confirm",onClick:n[0]||(n[0]=e=>t("confirmAction"))},(0,u.zw)(e.$t("buttons.YES")),1)),(0,l._)("button",{class:"cancel",onClick:n[1]||(n[1]=e=>t("cancelAction"))},(0,u.zw)(e.$t("buttons."+((0,c.SU)(i)?"CANCEL":"NO"))),1)])])),_:1})])])}}});const Bn=(0,v.Z)(Kn,[["__scopeId","data-v-e8fcfaba"]]);var Hn=Bn;const qn=[{target:Ue,name:"AlertMessage"},{target:Oe.Z,name:"Card"},{target:fe,name:"CustomTextArea"},{target:ke,name:"Distance"},{target:Ge,name:"Dropdown"},{target:Ze,name:"ErrorMessage"},{target:Fn,name:"Loader"},{target:Hn,name:"Modal"},{target:Mn,name:"SportImage"}],jn={mounted:(e,t)=>{e.clickOutsideEvent=function(n){e===n.target||e.contains(n.target)||t.value(n)},document.body.addEventListener("click",e.clickOutsideEvent),document.body.addEventListener("touchstart",e.clickOutsideEvent)},unmounted:function(e){e.clickOutsideEvent&&(document.body.removeEventListener("click",e.clickOutsideEvent),document.body.removeEventListener("touchstart",e.clickOutsideEvent),e.clickOutsideEvent=void 0)}};var Vn=n(631);a.kL.register(a.ZL,a.jn,a.od,a.De,a.Dx,a.u,a.Gu,a.vn,a.uw,a.ST,a.f$,r.Z);const Xn=(0,s.ri)(de).provide("sportColors",Vn.Zo).use(me.Z).use(_e.Z).use(Se.Z).use(o.ZP,{name:"VFullscreen"}).directive("click-outside",jn);qn.forEach((e=>{Xn.component(e.name,e.target)})),Xn.mount("#app")},8733:function(e,t,n){"use strict";n.d(t,{Z:function(){return si}});n(6699);var a=n(2119),r=n(6252),s=n(3577),o=n(9963),i=n(2262),l=n(8602),c=n(9917),u=n(8966);const d=e=>((0,r.dD)("data-v-24ec93e2"),e=e(),(0,r.Cn)(),e),m={id:"admin-app",class:"admin-card"},S=["onSubmit"],_={for:"admin_contact"},E=["value"],p=["disabled"],T={for:"max_users"},A=["disabled"],U={class:"user-limit-help"},O={class:"info-box"},R=d((()=>(0,r._)("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1))),I={for:"max_single_file_size"},g=["disabled"],w={for:"max_zip_file_size"},v=["disabled"],f={for:"gpx_limit_import"},N=["disabled"],h={key:1,class:"form-buttons"},C={class:"confirm",type:"submit"},D=["onClick"],k={key:2,class:"form-buttons"};var z=(0,r.aZ)({name:"AdminApplication",props:{appConfig:null,edition:{type:Boolean,default:!1}},setup(e){const t=e,{edition:n}=(0,i.BK)(t),d=(0,c.o)(),z=(0,a.tv)(),P=(0,i.qj)({admin_contact:"",max_users:0,max_single_file_size:0,max_zip_file_size:0,gpx_limit_import:0}),M=(0,r.Fl)((()=>d.getters[l.SY.GETTERS.ERROR_MESSAGES]));function y(e){Object.keys(P).map((t=>{["max_single_file_size","max_zip_file_size"].includes(t)?P[t]=(0,u.j)(e[t]):P[t]=e[t]}))}function b(){y(t.appConfig),d.commit(l.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),z.push("/admin/application")}function L(){const e=Object.assign({},P);e.max_single_file_size*=1048576,e.max_zip_file_size*=1048576,d.dispatch(l.SY.ACTIONS.UPDATE_APPLICATION_CONFIG,e)}return(0,r.wF)((()=>{t.appConfig&&y(t.appConfig)})),(e,t)=>{const a=(0,r.up)("ErrorMessage"),l=(0,r.up)("Card");return(0,r.wg)(),(0,r.iD)("div",m,[(0,r.Wm)(l,null,{title:(0,r.w5)((()=>[(0,r.Uk)((0,s.zw)(e.$t("admin.APP_CONFIG.TITLE")),1)])),content:(0,r.w5)((()=>[(0,r._)("form",{class:"admin-form",onSubmit:(0,o.iM)(L,["prevent"])},[(0,r._)("label",_,[(0,r.Uk)((0,s.zw)(e.$t("admin.APP_CONFIG.ADMIN_CONTACT"))+": ",1),(0,i.SU)(n)||P.admin_contact?(0,r.wy)(((0,r.wg)(),(0,r.iD)("input",{key:1,id:"admin_contact",name:"admin_contact",type:"email","onUpdate:modelValue":t[0]||(t[0]=e=>P.admin_contact=e),disabled:!(0,i.SU)(n)},null,8,p)),[[o.nr,P.admin_contact]]):((0,r.wg)(),(0,r.iD)("input",{key:0,class:"no-contact",value:e.$t("admin.APP_CONFIG.NO_CONTACT_EMAIL"),disabled:""},null,8,E))]),(0,r._)("label",T,[(0,r.Uk)((0,s.zw)(e.$t("admin.APP_CONFIG.MAX_USERS_LABEL"))+": ",1),(0,r.wy)((0,r._)("input",{id:"max_users",name:"max_users",type:"number",min:"0","onUpdate:modelValue":t[1]||(t[1]=e=>P.max_users=e),disabled:!(0,i.SU)(n)},null,8,A),[[o.nr,P.max_users]])]),(0,r._)("div",U,[(0,r._)("span",O,[R,(0,r.Uk)(" "+(0,s.zw)(e.$t("admin.APP_CONFIG.MAX_USERS_HELP")),1)])]),(0,r._)("label",I,[(0,r.Uk)((0,s.zw)(e.$t("admin.APP_CONFIG.SINGLE_UPLOAD_MAX_SIZE_LABEL"))+": ",1),(0,r.wy)((0,r._)("input",{id:"max_single_file_size",name:"max_single_file_size",type:"number",step:"0.1",min:"0","onUpdate:modelValue":t[2]||(t[2]=e=>P.max_single_file_size=e),disabled:!(0,i.SU)(n)},null,8,g),[[o.nr,P.max_single_file_size]])]),(0,r._)("label",w,[(0,r.Uk)((0,s.zw)(e.$t("admin.APP_CONFIG.ZIP_UPLOAD_MAX_SIZE_LABEL"))+": ",1),(0,r.wy)((0,r._)("input",{id:"max_zip_file_size",name:"max_zip_file_size",type:"number",step:"0.1",min:"0","onUpdate:modelValue":t[3]||(t[3]=e=>P.max_zip_file_size=e),disabled:!(0,i.SU)(n)},null,8,v),[[o.nr,P.max_zip_file_size]])]),(0,r._)("label",f,[(0,r.Uk)((0,s.zw)(e.$t("admin.APP_CONFIG.MAX_FILES_IN_ZIP_LABEL"))+": ",1),(0,r.wy)((0,r._)("input",{id:"gpx_limit_import",name:"gpx_limit_import",type:"number",min:"0","onUpdate:modelValue":t[4]||(t[4]=e=>P.gpx_limit_import=e),disabled:!(0,i.SU)(n)},null,8,N),[[o.nr,P.gpx_limit_import]])]),(0,i.SU)(M)?((0,r.wg)(),(0,r.j4)(a,{key:0,message:(0,i.SU)(M)},null,8,["message"])):(0,r.kq)("",!0),(0,i.SU)(n)?((0,r.wg)(),(0,r.iD)("div",h,[(0,r._)("button",C,(0,s.zw)(e.$t("buttons.SUBMIT")),1),(0,r._)("button",{class:"cancel",onClick:(0,o.iM)(b,["prevent"])},(0,s.zw)(e.$t("buttons.CANCEL")),9,D)])):((0,r.wg)(),(0,r.iD)("div",k,[(0,r._)("button",{class:"confirm",onClick:t[5]||(t[5]=(0,o.iM)((t=>e.$router.push("/admin/application/edit")),["prevent"]))},(0,s.zw)(e.$t("buttons.EDIT")),1),(0,r._)("button",{class:"cancel",onClick:t[6]||(t[6]=(0,o.iM)((t=>e.$router.push("/admin")),["prevent"]))},(0,s.zw)(e.$t("admin.BACK_TO_ADMIN")),1)]))],40,S)])),_:1})])}}}),P=n(3744);const M=(0,P.Z)(z,[["__scopeId","data-v-24ec93e2"]]);var y=M;const b={class:"stat-card"},L={class:"stat-content box"},G={class:"stat-icon"},F={class:"stat-details"},W={class:"stat-huge"},Y={class:"stat"};var x=(0,r.aZ)({name:"StatCard",props:{icon:null,text:null,value:null},setup(e){const t=e,{icon:n,text:a,value:o}=(0,i.BK)(t);return(e,t)=>((0,r.wg)(),(0,r.iD)("div",b,[(0,r._)("div",L,[(0,r._)("div",G,[(0,r._)("i",{class:(0,s.C_)(["fa",`fa-${(0,i.SU)(n)}`])},null,2)]),(0,r._)("div",F,[(0,r._)("div",W,(0,s.zw)((0,i.SU)(o)),1),(0,r._)("div",Y,(0,s.zw)((0,i.SU)(a)),1)])])]))}});const $=x;var Z=$;const K={id:"user-stats"};var B=(0,r.aZ)({name:"AppStatsCards",props:{appStatistics:null},setup(e){const t=e,{appStatistics:n}=(0,i.BK)(t),a=(0,r.Fl)((()=>(0,u.Z)(n.value.uploads_dir_size,!1)));return(e,t)=>((0,r.wg)(),(0,r.iD)("div",K,[(0,r.Wm)(Z,{icon:"users",value:(0,i.SU)(n).users,text:e.$t("admin.USER",(0,i.SU)(n).users)},null,8,["value","text"]),(0,r.Wm)(Z,{icon:"tags",value:(0,i.SU)(n).sports,text:e.$t("workouts.SPORT",(0,i.SU)(n).sports)},null,8,["value","text"]),(0,r.Wm)(Z,{icon:"calendar",value:(0,i.SU)(n).workouts,text:e.$t("workouts.WORKOUT",(0,i.SU)(n).workouts)},null,8,["value","text"]),(0,r.Wm)(Z,{icon:"folder-open",value:(0,i.SU)(a).size,text:(0,i.SU)(a).suffix},null,8,["value","text"])]))}});const H=B;var q=H,j=n(2531);const V=e=>((0,r.dD)("data-v-0dd66f89"),e=e(),(0,r.Cn)(),e),X={id:"admin-menu",class:"center-card"},J={class:"admin-menu description-list"},Q={class:"application-config-details"},ee=V((()=>(0,r._)("br",null,null,-1))),te={class:"registration-status"},ne={key:0,class:"email-sending-status"},ae=V((()=>(0,r._)("i",{class:"fa fa-exclamation-triangle","aria-hidden":"true"},null,-1)));var re=(0,r.aZ)({name:"AdminMenu",props:{appConfig:null,appStatistics:{default:()=>({})}},setup(e){const t=e,{appConfig:n,appStatistics:a}=(0,i.BK)(t);return(e,t)=>{const o=(0,r.up)("router-link");return(0,r.wg)(),(0,r.iD)("div",X,[(0,r.Wm)(j.Z,null,{title:(0,r.w5)((()=>[(0,r.Uk)((0,s.zw)(e.$t("admin.ADMINISTRATION")),1)])),content:(0,r.w5)((()=>[(0,r.Wm)(q,{appStatistics:(0,i.SU)(a)},null,8,["appStatistics"]),(0,r._)("div",J,[(0,r._)("dl",null,[(0,r._)("dt",null,[(0,r.Wm)(o,{to:"/admin/application"},{default:(0,r.w5)((()=>[(0,r.Uk)((0,s.zw)(e.$t("admin.APPLICATION")),1)])),_:1})]),(0,r._)("dd",Q,[(0,r.Uk)((0,s.zw)(e.$t("admin.UPDATE_APPLICATION_DESCRIPTION")),1),ee,(0,r._)("span",te,(0,s.zw)(e.$t("admin.REGISTRATION_"+((0,i.SU)(n).is_registration_enabled?"ENABLED":"DISABLED"))),1),(0,i.SU)(n).is_email_sending_enabled?(0,r.kq)("",!0):((0,r.wg)(),(0,r.iD)("span",ne,[ae,(0,r.Uk)(" "+(0,s.zw)(e.$t("admin.EMAIL_SENDING_DISABLED")),1)]))]),(0,r._)("dt",null,[(0,r.Wm)(o,{to:"/admin/sports"},{default:(0,r.w5)((()=>[(0,r.Uk)((0,s.zw)((0,s.kC)(e.$t("workouts.SPORT",0))),1)])),_:1})]),(0,r._)("dd",null,(0,s.zw)(e.$t("admin.ENABLE_DISABLE_SPORTS")),1),(0,r._)("dt",null,[(0,r.Wm)(o,{to:"/admin/users"},{default:(0,r.w5)((()=>[(0,r.Uk)((0,s.zw)((0,s.kC)(e.$t("admin.USER",0))),1)])),_:1})]),(0,r._)("dd",null,(0,s.zw)(e.$t("admin.ADMIN_RIGHTS_DELETE_USER_ACCOUNT")),1)])])])),_:1})])}}});const se=(0,P.Z)(re,[["__scopeId","data-v-0dd66f89"]]);var oe=se,ie=n(3324),le=n(631);const ce=e=>((0,r.dD)("data-v-6d62af67"),e=e(),(0,r.Cn)(),e),ue={id:"admin-sports",class:"admin-card"},de={class:"responsive-table"},me=ce((()=>(0,r._)("th",null,"#",-1))),Se={class:"text-left"},_e={class:"text-left sport-action"},Ee=ce((()=>(0,r._)("th",null,null,-1))),pe={class:"text-center"},Te=ce((()=>(0,r._)("span",{class:"cell-heading"},"id",-1))),Ae={class:"cell-heading"},Ue={class:"sport-label"},Oe={class:"cell-heading"},Re={class:"text-center"},Ie={class:"cell-heading"},ge={class:"sport-action"},we={class:"cell-heading"},ve={class:"action-button"},fe=["onClick"],Ne={key:0,class:"has-workouts"},he=ce((()=>(0,r._)("i",{class:"fa fa-warning","aria-hidden":"true"},null,-1)));var Ce=(0,r.aZ)({name:"AdminSports",setup(e){const{t:t}=(0,ie.QT)(),n=(0,c.o)(),a=(0,r.Fl)((()=>(0,le.xH)(n.getters[l.O8.GETTERS.SPORTS],t))),u=(0,r.Fl)((()=>n.getters[l.SY.GETTERS.ERROR_MESSAGES]));function d(e,t){n.dispatch(l.O8.ACTIONS.UPDATE_SPORTS,{id:e,isActive:t})}return(e,t)=>{const n=(0,r.up)("SportImage"),l=(0,r.up)("ErrorMessage"),c=(0,r.up)("Card");return(0,r.wg)(),(0,r.iD)("div",ue,[(0,r.Wm)(c,null,{title:(0,r.w5)((()=>[(0,r.Uk)((0,s.zw)(e.$t("admin.SPORTS.TITLE")),1)])),content:(0,r.w5)((()=>[(0,r._)("button",{class:"top-button",onClick:t[0]||(t[0]=(0,o.iM)((t=>e.$router.push("/admin")),["prevent"]))},(0,s.zw)(e.$t("admin.BACK_TO_ADMIN")),1),(0,r._)("div",de,[(0,r._)("table",null,[(0,r._)("thead",null,[(0,r._)("tr",null,[me,(0,r._)("th",null,(0,s.zw)(e.$t("admin.SPORTS.TABLE.IMAGE")),1),(0,r._)("th",Se,(0,s.zw)(e.$t("admin.SPORTS.TABLE.LABEL")),1),(0,r._)("th",null,(0,s.zw)(e.$t("admin.SPORTS.TABLE.ACTIVE")),1),(0,r._)("th",_e,(0,s.zw)(e.$t("admin.ACTION")),1),Ee])]),(0,r._)("tbody",null,[((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)((0,i.SU)(a),(t=>((0,r.wg)(),(0,r.iD)("tr",{key:t.id},[(0,r._)("td",pe,[Te,(0,r.Uk)(" "+(0,s.zw)(t.id),1)]),(0,r._)("td",null,[(0,r._)("span",Ae,(0,s.zw)(e.$t("admin.SPORTS.TABLE.IMAGE")),1),(0,r.Wm)(n,{title:t.translatedLabel,"sport-label":t.label,color:t.color},null,8,["title","sport-label","color"])]),(0,r._)("td",Ue,[(0,r._)("span",Oe,(0,s.zw)(e.$t("admin.SPORTS.TABLE.LABEL")),1),(0,r.Uk)(" "+(0,s.zw)(t.translatedLabel),1)]),(0,r._)("td",Re,[(0,r._)("span",Ie,(0,s.zw)(e.$t("admin.SPORTS.TABLE.ACTIVE")),1),(0,r._)("i",{class:(0,s.C_)("fa fa"+(t.is_active?"-check":"")),"aria-hidden":"true"},null,2)]),(0,r._)("td",ge,[(0,r._)("span",we,(0,s.zw)(e.$t("admin.ACTION")),1),(0,r._)("div",ve,[(0,r._)("button",{class:(0,s.C_)({danger:t.is_active}),onClick:e=>d(t.id,!t.is_active)},(0,s.zw)(e.$t(`buttons.${t.is_active?"DIS":"EN"}ABLE`)),11,fe),t.has_workouts?((0,r.wg)(),(0,r.iD)("span",Ne,[he,(0,r.Uk)(" "+(0,s.zw)(e.$t("admin.SPORTS.TABLE.HAS_WORKOUTS")),1)])):(0,r.kq)("",!0)])])])))),128))])]),(0,i.SU)(u)?((0,r.wg)(),(0,r.j4)(l,{key:0,message:(0,i.SU)(u)},null,8,["message"])):(0,r.kq)("",!0),(0,r._)("button",{onClick:t[1]||(t[1]=(0,o.iM)((t=>e.$router.push("/admin")),["prevent"]))},(0,s.zw)(e.$t("admin.BACK_TO_ADMIN")),1)])])),_:1})])}}});const De=(0,P.Z)(Ce,[["__scopeId","data-v-6d62af67"]]);var ke=De,ze=n(4850),Pe=n(8626),Me=n(6514),ye=n(6595);const be={class:"users-filters"},Le={class:"search-username"},Ge=["onKeyup","placeholder"];var Fe=(0,r.aZ)({name:"UsersNameFilter",emits:["filterOnUsername"],setup(e,{emit:t}){const n=(0,a.yj)(),l=(0,i.iH)(n.query.q?n.query.q:"");function c(){""!==l.value&&t("filterOnUsername",l)}function u(){l.value="",t("filterOnUsername",l.value)}return(e,t)=>((0,r.wg)(),(0,r.iD)("div",be,[(0,r._)("div",Le,[(0,r.wy)((0,r._)("input",{id:"username",name:"username","onUpdate:modelValue":t[0]||(t[0]=e=>l.value=e),onKeyup:(0,o.D2)(c,["enter"]),placeholder:e.$t("user.FILTER_ON_USERNAME")},null,40,Ge),[[o.nr,l.value,void 0,{trim:!0}]]),""!==l.value?((0,r.wg)(),(0,r.iD)("i",{key:0,class:"fa fa-times","aria-hidden":"true",onClick:u})):(0,r.kq)("",!0)]),(0,r._)("i",{class:(0,s.C_)(["fa fa-search",{"fa-disabled":""===l.value}]),"aria-hidden":"true",onClick:c},null,2)]))}});const We=(0,P.Z)(Fe,[["__scopeId","data-v-627a8e91"]]);var Ye=We,xe=n(2766),$e=n(6558);const Ze=e=>((0,r.dD)("data-v-4735c10f"),e=e(),(0,r.Cn)(),e),Ke={id:"admin-users",class:"admin-card"},Be={key:0,class:"no-users"},He={key:1,class:"responsive-table"},qe=Ze((()=>(0,r._)("th",null,"#",-1))),je={class:"left-text"},Ve={class:"left-text"},Xe={class:"left-text"},Je={class:"cell-heading"},Qe={class:"cell-heading"},et={class:"cell-heading"},tt={class:"cell-heading"},nt={class:"text-center"},at={class:"cell-heading"},rt={class:"text-center"},st={class:"cell-heading"},ot={class:"text-center"},it={class:"cell-heading"},lt={class:"text-center"},ct={class:"cell-heading"},ut=["disabled","onClick"];var dt=(0,r.aZ)({name:"AdminUsers",setup(e){const t=(0,c.o)(),n=(0,a.yj)(),u=(0,a.tv)(),d=["is_active","admin","created_at","username","workouts_count"],m="created_at";let S=(0,i.qj)((0,xe.pm)(n.query,d,m));const _=(0,r.Fl)((()=>t.getters[l.YN.GETTERS.AUTH_USER_PROFILE])),E=(0,r.Fl)((()=>t.getters[l.RT.GETTERS.USERS])),p=(0,r.Fl)((()=>t.getters[l.RT.GETTERS.USERS_PAGINATION])),T=(0,r.Fl)((()=>t.getters[l.SY.GETTERS.ERROR_MESSAGES]));function A(e){t.dispatch(l.RT.ACTIONS.GET_USERS,e)}function U(e){R("q",e.value)}function O(e,n){t.dispatch(l.RT.ACTIONS.UPDATE_USER,{username:e,admin:n})}function R(e,t){S[e]=t,"per_page"===e&&(S.page=1),u.push({path:"/admin/users",query:S})}return(0,r.wF)((()=>A(S))),(0,r.Ah)((()=>{t.dispatch(l.RT.ACTIONS.EMPTY_USERS)})),(0,r.YP)((()=>n.query),(e=>{S=(0,xe.pm)(e,d,m,{query:S}),A(S)})),(e,t)=>{const n=(0,r.up)("router-link"),a=(0,r.up)("ErrorMessage"),l=(0,r.up)("Card");return(0,r.wg)(),(0,r.iD)("div",Ke,[(0,r.Wm)(l,null,{title:(0,r.w5)((()=>[(0,r.Uk)((0,s.zw)((0,s.kC)(e.$t("admin.USER",0))),1)])),content:(0,r.w5)((()=>[(0,r._)("button",{class:"top-button",onClick:t[0]||(t[0]=(0,o.iM)((t=>e.$router.push("/admin")),["prevent"]))},(0,s.zw)(e.$t("admin.BACK_TO_ADMIN")),1),(0,r.Wm)(Ye,{onFilterOnUsername:U}),(0,r.Wm)(Pe.Z,{sort:(0,i.SU)(xe.fS),order_by:d,query:(0,i.SU)(S),message:"admin.USERS.SELECTS.ORDER_BY",onUpdateSelect:R},null,8,["sort","query"]),0===(0,i.SU)(E).length?((0,r.wg)(),(0,r.iD)("div",Be,(0,s.zw)(e.$t("user.NO_USERS_FOUND")),1)):((0,r.wg)(),(0,r.iD)("div",He,[(0,r._)("table",null,[(0,r._)("thead",null,[(0,r._)("tr",null,[qe,(0,r._)("th",je,(0,s.zw)(e.$t("user.USERNAME")),1),(0,r._)("th",Ve,(0,s.zw)(e.$t("user.EMAIL")),1),(0,r._)("th",Xe,(0,s.zw)(e.$t("user.PROFILE.REGISTRATION_DATE")),1),(0,r._)("th",null,(0,s.zw)((0,s.kC)(e.$t("workouts.WORKOUT",0))),1),(0,r._)("th",null,(0,s.zw)(e.$t("admin.ACTIVE")),1),(0,r._)("th",null,(0,s.zw)(e.$t("user.ADMIN")),1),(0,r._)("th",null,(0,s.zw)(e.$t("admin.ACTION")),1)])]),(0,r._)("tbody",null,[((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)((0,i.SU)(E),(t=>((0,r.wg)(),(0,r.iD)("tr",{key:t.username},[(0,r._)("td",null,[(0,r._)("span",Je,(0,s.zw)(e.$t("user.PROFILE.PICTURE")),1),(0,r.Wm)(ye.Z,{user:t},null,8,["user"])]),(0,r._)("td",null,[(0,r._)("span",Qe,(0,s.zw)(e.$t("user.USERNAME")),1),(0,r.Wm)(n,{to:`/admin/users/${t.username}`},{default:(0,r.w5)((()=>[(0,r.Uk)((0,s.zw)(t.username),1)])),_:2},1032,["to"])]),(0,r._)("td",null,[(0,r._)("span",et,(0,s.zw)(e.$t("user.EMAIL")),1),(0,r.Uk)(" "+(0,s.zw)(t.email),1)]),(0,r._)("td",null,[(0,r._)("span",tt,(0,s.zw)(e.$t("user.PROFILE.REGISTRATION_DATE")),1),(0,r.Uk)(" "+(0,s.zw)((0,i.SU)(ze.Z)((0,i.SU)($e.eB)(t.created_at,(0,i.SU)(_).timezone),"dd/MM/yyyy HH:mm")),1)]),(0,r._)("td",nt,[(0,r._)("span",at,(0,s.zw)((0,s.kC)(e.$t("workouts.WORKOUT",0))),1),(0,r.Uk)(" "+(0,s.zw)(t.nb_workouts),1)]),(0,r._)("td",rt,[(0,r._)("span",st,(0,s.zw)(e.$t("admin.ACTIVE")),1),(0,r._)("i",{class:(0,s.C_)(`fa fa${t.is_active?"-check":""}-square-o`),"aria-hidden":"true"},null,2)]),(0,r._)("td",ot,[(0,r._)("span",it,(0,s.zw)(e.$t("user.ADMIN")),1),(0,r._)("i",{class:(0,s.C_)(`fa fa${t.admin?"-check":""}-square-o`),"aria-hidden":"true"},null,2)]),(0,r._)("td",lt,[(0,r._)("span",ct,(0,s.zw)(e.$t("admin.ACTION")),1),(0,r._)("button",{class:(0,s.C_)({danger:t.admin}),disabled:t.username===(0,i.SU)(_).username,onClick:e=>O(t.username,!t.admin)},(0,s.zw)(e.$t(`admin.USERS.TABLE.${t.admin?"REMOVE":"ADD"}_ADMIN_RIGHTS`)),11,ut)])])))),128))])]),(0,i.SU)(p).page?((0,r.wg)(),(0,r.j4)(Me.Z,{key:0,path:"/admin/users",pagination:(0,i.SU)(p),query:(0,i.SU)(S)},null,8,["pagination","query"])):(0,r.kq)("",!0),(0,i.SU)(T)?((0,r.wg)(),(0,r.j4)(a,{key:1,message:(0,i.SU)(T)},null,8,["message"])):(0,r.kq)("",!0),(0,r._)("button",{onClick:t[1]||(t[1]=(0,o.iM)((t=>e.$router.push("/admin")),["prevent"]))},(0,s.zw)(e.$t("admin.BACK_TO_ADMIN")),1)]))])),_:1})])}}});const mt=(0,P.Z)(dt,[["__scopeId","data-v-4735c10f"]]);var St=mt,_t=n(2179);const Et={class:"profile-tabs custom-checkboxes-group"},pt={class:"profile-tabs-checkboxes custom-checkboxes"},Tt=["id","name","checked","disabled","onInput"];var At=(0,r.aZ)({name:"UserProfileTabs",props:{tabs:null,selectedTab:null,edition:{type:Boolean},disabled:{type:Boolean,default:!1}},setup(e){const t=e,{tabs:n,selectedTab:a,disabled:o}=(0,i.BK)(t);function l(e){switch(e){case"ACCOUNT":case"PICTURE":return`/profile/edit/${e.toLocaleLowerCase()}`;case"PREFERENCES":case"SPORTS":return`/profile${t.edition?"/edit":""}/${e.toLocaleLowerCase()}`;default:case"PROFILE":return"/profile"+(t.edition?"/edit":"")}}return(e,t)=>((0,r.wg)(),(0,r.iD)("div",Et,[(0,r._)("div",pt,[((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)((0,i.SU)(n),(t=>((0,r.wg)(),(0,r.iD)("div",{class:"profile-tab custom-checkbox",key:t},[(0,r._)("label",null,[(0,r._)("input",{type:"radio",id:t,name:t,checked:(0,i.SU)(a)===t,disabled:(0,i.SU)(o),onInput:n=>e.$router.push(l(t))},null,40,Tt),(0,r._)("span",null,(0,s.zw)(e.$t(`user.PROFILE.TABS.${t}`)),1)])])))),128))])]))}});const Ut=At;var Ot=Ut;const Rt={id:"user-profile"},It={class:"box"};var gt=(0,r.aZ)({name:"index",props:{user:null,tab:null},setup(e){const t=e,{user:n,tab:a}=(0,i.BK)(t),s=["PROFILE","PREFERENCES","SPORTS"];return(e,t)=>{const o=(0,r.up)("router-view");return(0,r.wg)(),(0,r.iD)("div",Rt,[(0,r.Wm)(_t.Z,{user:(0,i.SU)(n)},null,8,["user"]),(0,r._)("div",It,[(0,r.Wm)(Ot,{tabs:s,selectedTab:(0,i.SU)(a),edition:!1},null,8,["selectedTab"]),(0,r.Wm)(o,{user:(0,i.SU)(n)},null,8,["user"])])])}}});const wt=(0,P.Z)(gt,[["__scopeId","data-v-e26535e0"]]);var vt=wt,ft=n(4980),Nt=n(6287);const ht={id:"user-preferences",class:"description-list"},Ct={class:"profile-buttons"};var Dt=(0,r.aZ)({name:"UserPreferences",props:{user:null},setup(e){const t=e,n=(0,r.Fl)((()=>t.user.language?Nt.zK[t.user.language]:Nt.zK.en)),a=(0,r.Fl)((()=>t.user.weekm?"MONDAY":"SUNDAY")),o=(0,r.Fl)((()=>t.user.timezone?t.user.timezone:"Europe/Paris"));return(t,l)=>((0,r.wg)(),(0,r.iD)("div",ht,[(0,r._)("dl",null,[(0,r._)("dt",null,(0,s.zw)(t.$t("user.PROFILE.LANGUAGE"))+":",1),(0,r._)("dd",null,(0,s.zw)((0,i.SU)(n)),1),(0,r._)("dt",null,(0,s.zw)(t.$t("user.PROFILE.TIMEZONE"))+":",1),(0,r._)("dd",null,(0,s.zw)((0,i.SU)(o)),1),(0,r._)("dt",null,(0,s.zw)(t.$t("user.PROFILE.FIRST_DAY_OF_WEEK"))+":",1),(0,r._)("dd",null,(0,s.zw)(t.$t(`user.PROFILE.${(0,i.SU)(a)}`)),1),(0,r._)("dt",null,(0,s.zw)(t.$t("user.PROFILE.UNITS.LABEL"))+":",1),(0,r._)("dd",null,(0,s.zw)(t.$t("user.PROFILE.UNITS."+(e.user.imperial_units?"IMPERIAL":"METRIC"))),1)]),(0,r._)("div",Ct,[(0,r._)("button",{onClick:l[0]||(l[0]=e=>t.$router.push("/profile/edit/preferences"))},(0,s.zw)(t.$t("user.PROFILE.EDIT_PREFERENCES")),1),(0,r._)("button",{onClick:l[1]||(l[1]=e=>t.$router.push("/"))},(0,s.zw)(t.$t("common.HOME")),1)])]))}});const kt=Dt;var zt=kt;const Pt={id:"user-profile-edition",class:"center-card"};var Mt=(0,r.aZ)({name:"index",props:{user:null,tab:null},setup(e){const t=e,n=(0,c.o)(),{user:a,tab:o}=(0,i.BK)(t),u=["PROFILE","ACCOUNT","PICTURE","PREFERENCES","SPORTS"],d=(0,r.Fl)((()=>n.getters[l.YN.GETTERS.USER_LOADING]));return(e,t)=>{const n=(0,r.up)("router-view"),l=(0,r.up)("Card");return(0,r.wg)(),(0,r.iD)("div",Pt,[(0,r.Wm)(l,null,{title:(0,r.w5)((()=>[(0,r.Uk)((0,s.zw)(e.$t(`user.PROFILE.${(0,i.SU)(o)}_EDITION`)),1)])),content:(0,r.w5)((()=>[(0,r.Wm)(Ot,{tabs:u,selectedTab:(0,i.SU)(o),edition:!0,disabled:(0,i.SU)(d)},null,8,["selectedTab","disabled"]),(0,r.Wm)(n,{user:(0,i.SU)(a)},null,8,["user"])])),_:1})])}}});const yt=Mt;var bt=yt,Lt=n(2047);const Gt={id:"user-infos-edition"},Ft={class:"profile-form form-box"},Wt={key:1,class:"info-box success-message"},Yt=["onSubmit"],xt={class:"form-items",for:"email"},$t=["disabled"],Zt={class:"form-items",for:"password-field"},Kt={class:"form-items",for:"new-password-field"},Bt={class:"form-buttons"},Ht={class:"confirm",type:"submit"};var qt=(0,r.aZ)({name:"UserAccountEdition",props:{user:null},setup(e){const t=e,{user:n}=(0,i.BK)(t),a=(0,c.o)(),u=(0,i.qj)({email:"",password:"",new_password:""}),d=(0,r.Fl)((()=>a.getters[l.YN.GETTERS.USER_LOADING])),m=(0,r.Fl)((()=>a.getters[l.SY.GETTERS.APP_CONFIG])),S=(0,r.Fl)((()=>a.getters[l.YN.GETTERS.IS_SUCCESS])),_=(0,i.iH)(!1),E=(0,r.Fl)((()=>a.getters[l.SY.GETTERS.ERROR_MESSAGES])),p=(0,i.iH)(!1),T=(0,i.iH)(!1);function A(){p.value=!0}function U(e){u.email=e.email}function O(e){u.password=e}function R(e){u.new_password=e}function I(){const e={email:u.email,password:u.password};u.new_password&&(e.new_password=u.new_password),_.value=u.email!==n.value.email,a.dispatch(l.YN.ACTIONS.UPDATE_USER_ACCOUNT,e)}function g(e){T.value=e}function w(e){a.dispatch(l.YN.ACTIONS.DELETE_ACCOUNT,{username:e})}return(0,r.bv)((()=>{t.user&&U(t.user)})),(0,r.Ah)((()=>{a.commit(l.YN.MUTATIONS.UPDATE_IS_SUCCESS,!1),a.commit(l.SY.MUTATIONS.EMPTY_ERROR_MESSAGES)})),(0,r.YP)((()=>S.value),(async e=>{e&&(O(""),R(""),U(n.value),p.value=!1)})),(0,r.YP)((()=>n.value.email),(async()=>{U(n.value)})),(e,t)=>{const a=(0,r.up)("Modal"),l=(0,r.up)("ErrorMessage");return(0,r.wg)(),(0,r.iD)("div",Gt,[T.value?((0,r.wg)(),(0,r.j4)(a,{key:0,title:e.$t("common.CONFIRMATION"),message:e.$t("user.CONFIRM_ACCOUNT_DELETION"),onConfirmAction:t[0]||(t[0]=e=>w((0,i.SU)(n).username)),onCancelAction:t[1]||(t[1]=e=>g(!1))},null,8,["title","message"])):(0,r.kq)("",!0),(0,r._)("div",Ft,[(0,i.SU)(E)?((0,r.wg)(),(0,r.j4)(l,{key:0,message:(0,i.SU)(E)},null,8,["message"])):(0,r.kq)("",!0),(0,i.SU)(S)?((0,r.wg)(),(0,r.iD)("div",Wt,(0,s.zw)(e.$t(`user.PROFILE.SUCCESSFUL_${_.value&&(0,i.SU)(m).is_email_sending_enabled?"EMAIL_":""}UPDATE`)),1)):(0,r.kq)("",!0),(0,r._)("form",{class:(0,s.C_)({errors:p.value}),onSubmit:(0,o.iM)(I,["prevent"])},[(0,r._)("label",xt,[(0,r.Uk)((0,s.zw)(e.$t("user.EMAIL"))+"* ",1),(0,r.wy)((0,r._)("input",{id:"email","onUpdate:modelValue":t[2]||(t[2]=e=>u.email=e),disabled:(0,i.SU)(d),required:!0,onInvalid:A},null,40,$t),[[o.nr,u.email]])]),(0,r._)("label",Zt,[(0,r.Uk)((0,s.zw)(e.$t("user.CURRENT_PASSWORD"))+"* ",1),(0,r.Wm)(Lt.Z,{id:"password-field",disabled:(0,i.SU)(d),password:u.password,required:!0,onUpdatePassword:O,onPasswordError:A},null,8,["disabled","password"])]),(0,r._)("label",Kt,[(0,r.Uk)((0,s.zw)(e.$t("user.NEW_PASSWORD"))+" ",1),(0,r.Wm)(Lt.Z,{id:"new-password-field",disabled:(0,i.SU)(d),checkStrength:!0,password:u.new_password,isSuccess:!1,onUpdatePassword:R,onPasswordError:A},null,8,["disabled","password"])]),(0,r._)("div",Bt,[(0,r._)("button",Ht,(0,s.zw)(e.$t("buttons.SUBMIT")),1),(0,r._)("button",{class:"cancel",onClick:t[3]||(t[3]=(0,o.iM)((t=>e.$router.push("/profile")),["prevent"]))},(0,s.zw)(e.$t("buttons.CANCEL")),1),(0,r._)("button",{class:"danger",onClick:t[4]||(t[4]=(0,o.iM)((e=>g(!0)),["prevent"]))},(0,s.zw)(e.$t("buttons.DELETE_MY_ACCOUNT")),1)])],42,Yt)])])}}});const jt=(0,P.Z)(qt,[["__scopeId","data-v-37b8c4c8"]]);var Vt=jt;const Xt={id:"user-infos-edition"},Jt={class:"profile-form form-box"},Qt=["onSubmit"],en={class:"form-items",for:"registrationDate"},tn=["value"],nn={class:"form-items",for:"first_name"},an=["disabled"],rn={class:"form-items",for:"last_name"},sn={class:"form-items",for:"birth_date"},on=["disabled"],ln={class:"form-items",for:"location"},cn=["disabled"],un={class:"form-items"},dn={class:"form-buttons"},mn={class:"confirm",type:"submit"};var Sn=(0,r.aZ)({name:"UserInfosEdition",props:{user:null},setup(e){const t=e,n=(0,c.o)(),a=(0,i.qj)({first_name:"",last_name:"",birth_date:"",location:"",bio:""}),u=(0,r.Fl)((()=>t.user.created_at?(0,ze.Z)(new Date(t.user.created_at),"dd/MM/yyyy HH:mm"):"")),d=(0,r.Fl)((()=>n.getters[l.YN.GETTERS.USER_LOADING])),m=(0,r.Fl)((()=>n.getters[l.SY.GETTERS.ERROR_MESSAGES]));function S(e){a.first_name=e.first_name?e.first_name:"",a.last_name=e.last_name?e.last_name:"",a.birth_date=e.birth_date?(0,ze.Z)(new Date(e.birth_date),"yyyy-MM-dd"):"",a.location=e.location?e.location:"",a.bio=e.bio?e.bio:""}function _(e){a.bio=e}function E(){n.dispatch(l.YN.ACTIONS.UPDATE_USER_PROFILE,a)}return(0,r.bv)((()=>{t.user&&S(t.user)})),(0,r.Ah)((()=>{n.commit(l.SY.MUTATIONS.EMPTY_ERROR_MESSAGES)})),(e,t)=>{const n=(0,r.up)("ErrorMessage"),l=(0,r.up)("CustomTextArea");return(0,r.wg)(),(0,r.iD)("div",Xt,[(0,r._)("div",Jt,[(0,i.SU)(m)?((0,r.wg)(),(0,r.j4)(n,{key:0,message:(0,i.SU)(m)},null,8,["message"])):(0,r.kq)("",!0),(0,r._)("form",{onSubmit:(0,o.iM)(E,["prevent"])},[(0,r._)("label",en,[(0,r.Uk)((0,s.zw)(e.$t("user.PROFILE.REGISTRATION_DATE"))+" ",1),(0,r._)("input",{id:"registrationDate",value:(0,i.SU)(u),disabled:""},null,8,tn)]),(0,r._)("label",nn,[(0,r.Uk)((0,s.zw)(e.$t("user.PROFILE.FIRST_NAME"))+" ",1),(0,r.wy)((0,r._)("input",{id:"first_name","onUpdate:modelValue":t[0]||(t[0]=e=>a.first_name=e),disabled:(0,i.SU)(d)},null,8,an),[[o.nr,a.first_name]])]),(0,r._)("label",rn,[(0,r.Uk)((0,s.zw)(e.$t("user.PROFILE.LAST_NAME"))+" ",1),(0,r.wy)((0,r._)("input",{id:"last_name","onUpdate:modelValue":t[1]||(t[1]=e=>a.last_name=e)},null,512),[[o.nr,a.last_name]])]),(0,r._)("label",sn,[(0,r.Uk)((0,s.zw)(e.$t("user.PROFILE.BIRTH_DATE"))+" ",1),(0,r.wy)((0,r._)("input",{id:"birth_date",type:"date",class:"birth-date","onUpdate:modelValue":t[2]||(t[2]=e=>a.birth_date=e),disabled:(0,i.SU)(d)},null,8,on),[[o.nr,a.birth_date]])]),(0,r._)("label",ln,[(0,r.Uk)((0,s.zw)(e.$t("user.PROFILE.LOCATION"))+" ",1),(0,r.wy)((0,r._)("input",{id:"location","onUpdate:modelValue":t[3]||(t[3]=e=>a.location=e),disabled:(0,i.SU)(d)},null,8,cn),[[o.nr,a.location]])]),(0,r._)("label",un,[(0,r.Uk)((0,s.zw)(e.$t("user.PROFILE.BIO"))+" ",1),(0,r.Wm)(l,{name:"bio",charLimit:200,input:a.bio,disabled:(0,i.SU)(d),onUpdateValue:_},null,8,["input","disabled"])]),(0,r._)("div",dn,[(0,r._)("button",mn,(0,s.zw)(e.$t("buttons.SUBMIT")),1),(0,r._)("button",{class:"cancel",onClick:t[4]||(t[4]=(0,o.iM)((t=>e.$router.push("/profile")),["prevent"]))},(0,s.zw)(e.$t("buttons.CANCEL")),1)])],40,Qt)])])}}});const _n=(0,P.Z)(Sn,[["__scopeId","data-v-b6bacea0"]]);var En=_n;const pn=e=>((0,r.dD)("data-v-3a97bb3c"),e=e(),(0,r.Cn)(),e),Tn={id:"user-picture-edition"},An={class:"user-picture-form"},Un=["onSubmit"],On={class:"picture-help"},Rn={class:"info-box"},In=pn((()=>(0,r._)("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1))),gn={class:"picture-buttons"},wn=["disabled"];var vn=(0,r.aZ)({name:"UserPictureEdition",props:{user:null},setup(e){const t=e,n=(0,c.o)(),{user:a}=(0,i.BK)(t),d=(0,r.Fl)((()=>n.getters[l.SY.GETTERS.ERROR_MESSAGES])),m=(0,r.Fl)((()=>n.getters[l.SY.GETTERS.APP_CONFIG])),S=m.value.max_single_file_size?(0,u.Z)(m.value.max_single_file_size):"";let _=(0,i.iH)(null);function E(){n.dispatch(l.YN.ACTIONS.DELETE_PICTURE)}function p(e){e.target.files&&(_.value=e.target.files[0])}function T(){_.value&&n.dispatch(l.YN.ACTIONS.UPDATE_USER_PICTURE,{picture:_.value})}return(0,r.Ah)((()=>{n.commit(l.SY.MUTATIONS.EMPTY_ERROR_MESSAGES)})),(e,t)=>{const n=(0,r.up)("ErrorMessage");return(0,r.wg)(),(0,r.iD)("div",Tn,[(0,r._)("div",An,[(0,i.SU)(d)?((0,r.wg)(),(0,r.j4)(n,{key:0,message:(0,i.SU)(d)},null,8,["message"])):(0,r.kq)("",!0),(0,r.Wm)(ye.Z,{user:(0,i.SU)(a)},null,8,["user"]),(0,r._)("form",{onSubmit:(0,o.iM)(T,["prevent"])},[(0,r._)("input",{type:"file",name:"picture",accept:".png,.jpg,.gif",onInput:p},null,32),(0,r._)("div",On,[(0,r._)("span",Rn,[In,(0,r.Uk)(" "+(0,s.zw)(e.$t("workouts.MAX_SIZE"))+": "+(0,s.zw)((0,i.SU)(S)),1)])]),(0,r._)("div",gn,[(0,r._)("button",{type:"submit",disabled:!(0,i.SU)(_)},(0,s.zw)(e.$t("user.PROFILE.PICTURE_UPDATE")),9,wn),(0,i.SU)(a).picture?((0,r.wg)(),(0,r.iD)("button",{key:0,class:"danger",onClick:E},(0,s.zw)(e.$t("user.PROFILE.PICTURE_REMOVE")),1)):(0,r.kq)("",!0),(0,r._)("button",{class:"cancel",onClick:t[0]||(t[0]=t=>e.$router.push("/profile"))},(0,s.zw)(e.$t("user.PROFILE.BACK_TO_PROFILE")),1)])],40,Un)])])}}});const fn=(0,P.Z)(vn,[["__scopeId","data-v-3a97bb3c"]]);var Nn=fn;const hn=["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"],Cn={id:"tz-dropdown"},Dn=["value","disabled","onKeydown"],kn=["onClick","onMouseover","autofocus"];var zn=(0,r.aZ)({name:"TimezoneDropdown",props:{input:null,disabled:{type:Boolean,default:!1}},emits:["updateTimezone"],setup(e,{emit:t}){const n=e,{input:a,disabled:l}=(0,i.BK)(n),c=(0,i.iH)(n.input),u=(0,i.iH)(!1),d=(0,i.iH)(null),m=(0,i.iH)(0);function S(e){return e.toLowerCase().match(c.value.toLowerCase())}function _(e){m.value=e}function E(e){c.value=e,u.value=!1,t("updateTimezone",e)}function p(e){e.preventDefault(),d.value?.firstElementChild?.innerHTML&&E(d.value?.firstElementChild?.innerHTML)}function T(e){e.preventDefault(),u.value=!0,c.value=e.target.value.trim()}return(0,r.YP)((()=>n.input),(e=>{c.value=e})),(e,t)=>((0,r.wg)(),(0,r.iD)("div",Cn,[(0,r._)("input",{class:"tz-dropdown-input",id:"timezone",name:"timezone",value:c.value,disabled:(0,i.SU)(l),required:"",onKeydown:[t[0]||(t[0]=(0,o.D2)((e=>E((0,i.SU)(a))),["esc"])),(0,o.D2)(p,["enter"])],onInput:T},null,40,Dn),u.value?((0,r.wg)(),(0,r.iD)("ul",{key:0,class:"tz-dropdown-list",ref_key:"tzList",ref:d},[((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)((0,i.SU)(hn).filter((e=>S(e))),((e,t)=>((0,r.wg)(),(0,r.iD)("li",{key:e,class:(0,s.C_)(["tz-dropdown-item",{focus:t===m.value}]),onClick:t=>E(e),onMouseover:e=>_(t),autofocus:t===m.value},(0,s.zw)(e),43,kn)))),128))],512)):(0,r.kq)("",!0)]))}});const Pn=(0,P.Z)(zn,[["__scopeId","data-v-47ea2903"]]);var Mn=Pn;const yn={id:"user-preferences-edition"},bn={class:"profile-form form-box"},Ln=["onSubmit"],Gn={class:"form-items"},Fn=["disabled"],Wn=["value"],Yn={class:"form-items"},xn={class:"form-items"},$n=["disabled"],Zn=["value"],Kn={class:"form-items"},Bn=["disabled"],Hn=["value"],qn={class:"form-buttons"},jn={class:"confirm",type:"submit"};var Vn=(0,r.aZ)({name:"UserPreferencesEdition",props:{user:null},setup(e){const t=e,n=(0,c.o)(),a=(0,i.qj)({imperial_units:!1,language:"",timezone:"Europe/Paris",weekm:!1}),u=[{label:"MONDAY",value:!0},{label:"SUNDAY",value:!1}],d=[{label:"IMPERIAL",value:!0},{label:"METRIC",value:!1}],m=(0,r.Fl)((()=>n.getters[l.YN.GETTERS.USER_LOADING])),S=(0,r.Fl)((()=>n.getters[l.SY.GETTERS.ERROR_MESSAGES]));function _(e){a.imperial_units=!!e.imperial_units&&e.imperial_units,a.language=e.language?e.language:"en",a.timezone=e.timezone?e.timezone:"Europe/Paris",a.weekm=!!e.weekm&&e.weekm}function E(){n.dispatch(l.YN.ACTIONS.UPDATE_USER_PREFERENCES,a)}function p(e){a.timezone=e}return(0,r.bv)((()=>{t.user&&_(t.user)})),(0,r.Ah)((()=>{n.commit(l.SY.MUTATIONS.EMPTY_ERROR_MESSAGES)})),(e,t)=>{const n=(0,r.up)("ErrorMessage");return(0,r.wg)(),(0,r.iD)("div",yn,[(0,r._)("div",bn,[(0,i.SU)(S)?((0,r.wg)(),(0,r.j4)(n,{key:0,message:(0,i.SU)(S)},null,8,["message"])):(0,r.kq)("",!0),(0,r._)("form",{onSubmit:(0,o.iM)(E,["prevent"])},[(0,r._)("label",Gn,[(0,r.Uk)((0,s.zw)(e.$t("user.PROFILE.LANGUAGE"))+" ",1),(0,r.wy)((0,r._)("select",{id:"language","onUpdate:modelValue":t[0]||(t[0]=e=>a.language=e),disabled:(0,i.SU)(m)},[((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)((0,i.SU)(Nt.mT),(e=>((0,r.wg)(),(0,r.iD)("option",{value:e.value,key:e.value},(0,s.zw)(e.label),9,Wn)))),128))],8,Fn),[[o.bM,a.language]])]),(0,r._)("label",Yn,[(0,r.Uk)((0,s.zw)(e.$t("user.PROFILE.TIMEZONE"))+" ",1),(0,r.Wm)(Mn,{input:a.timezone,disabled:(0,i.SU)(m),onUpdateTimezone:p},null,8,["input","disabled"])]),(0,r._)("label",xn,[(0,r.Uk)((0,s.zw)(e.$t("user.PROFILE.FIRST_DAY_OF_WEEK"))+" ",1),(0,r.wy)((0,r._)("select",{id:"weekm","onUpdate:modelValue":t[1]||(t[1]=e=>a.weekm=e),disabled:(0,i.SU)(m)},[((0,r.wg)(),(0,r.iD)(r.HY,null,(0,r.Ko)(u,(t=>(0,r._)("option",{value:t.value,key:t.value},(0,s.zw)(e.$t(`user.PROFILE.${t.label}`)),9,Zn))),64))],8,$n),[[o.bM,a.weekm]])]),(0,r._)("label",Kn,[(0,r.Uk)((0,s.zw)(e.$t("user.PROFILE.UNITS.LABEL"))+" ",1),(0,r.wy)((0,r._)("select",{id:"imperial_units","onUpdate:modelValue":t[2]||(t[2]=e=>a.imperial_units=e),disabled:(0,i.SU)(m)},[((0,r.wg)(),(0,r.iD)(r.HY,null,(0,r.Ko)(d,(t=>(0,r._)("option",{value:t.value,key:t.value},(0,s.zw)(e.$t(`user.PROFILE.UNITS.${t.label}`)),9,Hn))),64))],8,Bn),[[o.bM,a.imperial_units]])]),(0,r._)("div",qn,[(0,r._)("button",jn,(0,s.zw)(e.$t("buttons.SUBMIT")),1),(0,r._)("button",{class:"cancel",onClick:t[3]||(t[3]=(0,o.iM)((t=>e.$router.push("/profile/preferences")),["prevent"]))},(0,s.zw)(e.$t("buttons.CANCEL")),1)])],40,Ln)])])}}});const Xn=Vn;var Jn=Xn;const Qn={id:"user-sport-preferences"},ea={key:0,class:"responsive-table"},ta={class:"mobile-display"},na={key:0,class:"profile-buttons mobile-display"},aa={key:1,class:"profile-buttons"},ra={class:"text-left"},sa={key:0},oa={class:"cell-heading"},ia=["value"],la={class:"cell-heading"},ca={key:0,class:"disabled-message"},ua={key:1,class:"fa fa-refresh fa-spin fa-fw"},da={class:"cell-heading"},ma={class:"cell-heading"},Sa=["checked"],_a={class:"cell-heading"},Ea=["value"],pa={key:1},Ta={key:0,class:"action-buttons"},Aa={class:"cell-heading"},Ua=["onClick"],Oa={key:1,class:"edition-buttons"},Ra=["disabled"],Ia=["disabled","onClick"],ga=["disabled"],wa={key:0,class:"profile-buttons"},va={key:1,class:"profile-buttons"};var fa=(0,r.aZ)({name:"UserSportPreferences",props:{user:null,isEdition:{type:Boolean}},setup(e){const t=e,n=(0,c.o)(),{t:a}=(0,ie.QT)(),{isEdition:u,user:d}=(0,i.BK)(t),m=(0,r.f3)("sportColors"),S=(0,r.Fl)((()=>n.getters[l.O8.GETTERS.SPORTS])),_=(0,r.Fl)((()=>(0,le.xH)(S.value,a,"is_active",d.value.sports_list))),E=(0,r.Fl)((()=>n.getters[l.YN.GETTERS.USER_LOADING])),p=(0,r.Fl)((()=>n.getters[l.SY.GETTERS.ERROR_MESSAGES])),T=(0,i.qj)({sport_id:0,color:null,is_active:!0,stopped_speed_threshold:1});function A(e){null!==e?(T.sport_id=e.id,T.color=e.color?e.color:m[e.label],T.is_active=e.is_active_for_user,T.stopped_speed_threshold=e.stopped_speed_threshold):g()}function U(e){return T.sport_id===e}function O(e){T.color=e.target.value}function R(e){T.stopped_speed_threshold=parseFloat(e.target.value)}function I(e){T.is_active=e.target.checked}function g(){T.sport_id=0,T.color=null,T.is_active=!0,T.stopped_speed_threshold=1,n.commit(l.SY.MUTATIONS.EMPTY_ERROR_MESSAGES)}function w(e){e.preventDefault(),n.dispatch(l.YN.ACTIONS.UPDATE_USER_SPORT_PREFERENCES,T)}function v(e,t){e.preventDefault(),n.dispatch(l.YN.ACTIONS.RESET_USER_SPORT_PREFERENCES,t)}return(0,r.YP)((()=>E.value),(e=>{e||p.value||g()})),(e,t)=>{const n=(0,r.up)("SportImage"),a=(0,r.up)("ErrorMessage");return(0,r.wg)(),(0,r.iD)("div",Qn,[(0,i.SU)(S).length>0?((0,r.wg)(),(0,r.iD)("div",ea,[(0,r._)("div",ta,[(0,i.SU)(u)?((0,r.wg)(),(0,r.iD)("div",na,[(0,r._)("button",{class:"cancel",onClick:t[0]||(t[0]=(0,o.iM)((t=>e.$router.push("/profile/sports")),["prevent"]))},(0,s.zw)(e.$t("buttons.BACK")),1)])):((0,r.wg)(),(0,r.iD)("div",aa,[(0,r._)("button",{onClick:t[1]||(t[1]=t=>e.$router.push("/profile/edit/sports"))},(0,s.zw)(e.$t("user.PROFILE.EDIT_SPORTS_PREFERENCES")),1),(0,r._)("button",{onClick:t[2]||(t[2]=t=>e.$router.push("/"))},(0,s.zw)(e.$t("common.HOME")),1)]))]),(0,r._)("table",null,[(0,r._)("thead",null,[(0,r._)("tr",null,[(0,r._)("th",null,(0,s.zw)(e.$t("user.PROFILE.SPORT.COLOR")),1),(0,r._)("th",ra,(0,s.zw)(e.$t("workouts.SPORT",0)),1),(0,r._)("th",null,(0,s.zw)(e.$t("workouts.WORKOUT",0)),1),(0,r._)("th",null,(0,s.zw)(e.$t("user.PROFILE.SPORT.IS_ACTIVE")),1),(0,r._)("th",null,(0,s.zw)(e.$t("user.PROFILE.SPORT.STOPPED_SPEED_THRESHOLD")),1),(0,i.SU)(u)?((0,r.wg)(),(0,r.iD)("th",sa,(0,s.zw)(e.$t("user.PROFILE.SPORT.ACTION")),1)):(0,r.kq)("",!0)])]),(0,r._)("tbody",null,[((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)((0,i.SU)(_),(o=>((0,r.wg)(),(0,r.iD)("tr",{key:o.id},[(0,r._)("td",null,[(0,r._)("span",oa,(0,s.zw)(e.$t("user.PROFILE.SPORT.COLOR")),1),U(o.id)?((0,r.wg)(),(0,r.iD)("input",{key:0,class:"sport-color",type:"color",value:T.color,onInput:O},null,40,ia)):((0,r.wg)(),(0,r.j4)(n,{key:1,title:o.translatedLabel,"sport-label":o.label,color:o.color?o.color:(0,i.SU)(m)[o.label]},null,8,["title","sport-label","color"]))]),(0,r._)("td",{class:(0,s.C_)(["sport-label",{"disabled-sport":!o.is_active}])},[(0,r._)("span",la,(0,s.zw)(e.$t("user.PROFILE.SPORT.LABEL")),1),(0,r.Uk)(" "+(0,s.zw)(o.translatedLabel)+" ",1),o.is_active?(0,r.kq)("",!0):((0,r.wg)(),(0,r.iD)("span",ca," ("+(0,s.zw)(e.$t("user.PROFILE.SPORT.DISABLED_BY_ADMIN"))+") ",1)),(0,i.SU)(E)&&U(o.id)?((0,r.wg)(),(0,r.iD)("i",ua)):(0,r.kq)("",!0),(0,i.SU)(p)&&T.sport_id===o.id?((0,r.wg)(),(0,r.j4)(a,{key:2,message:(0,i.SU)(p)},null,8,["message"])):(0,r.kq)("",!0)],2),(0,r._)("td",{class:(0,s.C_)(["text-center",{"disabled-sport":!o.is_active}])},[(0,r._)("span",da,(0,s.zw)(e.$t("workouts.WORKOUT",0)),1),(0,r._)("i",{class:(0,s.C_)("fa fa"+((0,i.SU)(d).sports_list.includes(o.id)?"-check":"")),"aria-hidden":"true"},null,2)],2),(0,r._)("td",{class:(0,s.C_)(["text-center",{"disabled-sport":!o.is_active}])},[(0,r._)("span",ma,(0,s.zw)(e.$t("user.PROFILE.SPORT.IS_ACTIVE")),1),U(o.id)&&o.is_active?((0,r.wg)(),(0,r.iD)("input",{key:0,type:"checkbox",checked:o.is_active_for_user,onChange:I},null,40,Sa)):((0,r.wg)(),(0,r.iD)("i",{key:1,class:(0,s.C_)("fa fa"+(o.is_active_for_user?"-check":"")),"aria-hidden":"true"},null,2))],2),(0,r._)("td",{class:(0,s.C_)(["text-center",{"disabled-sport":!o.is_active}])},[(0,r._)("span",_a,(0,s.zw)(e.$t("user.PROFILE.SPORT.STOPPED_SPEED_THRESHOLD")),1),U(o.id)&&o.is_active?((0,r.wg)(),(0,r.iD)("input",{key:0,class:"threshold-input",type:"number",min:"0",step:"0.1",value:T.stopped_speed_threshold,onInput:R},null,40,Ea)):((0,r.wg)(),(0,r.iD)("span",pa,(0,s.zw)(o.stopped_speed_threshold),1))],2),(0,i.SU)(u)?((0,r.wg)(),(0,r.iD)("td",Ta,[(0,r._)("span",Aa,(0,s.zw)(e.$t("user.PROFILE.SPORT.ACTION")),1),0===T.sport_id?((0,r.wg)(),(0,r.iD)("button",{key:0,onClick:e=>A(o)},(0,s.zw)(e.$t("buttons.EDIT")),9,Ua)):(0,r.kq)("",!0),U(o.id)?((0,r.wg)(),(0,r.iD)("div",Oa,[(0,r._)("button",{disabled:(0,i.SU)(E),onClick:w},(0,s.zw)(e.$t("buttons.SUBMIT")),9,Ra),(0,r._)("button",{disabled:(0,i.SU)(E),onClick:e=>v(e,o.id)},(0,s.zw)(e.$t("buttons.RESET")),9,Ia),(0,r._)("button",{disabled:(0,i.SU)(E),onClick:t[3]||(t[3]=e=>A(null))},(0,s.zw)(e.$t("buttons.CANCEL")),9,ga)])):(0,r.kq)("",!0)])):(0,r.kq)("",!0)])))),128))])]),(0,i.SU)(u)?((0,r.wg)(),(0,r.iD)("div",wa,[(0,r._)("button",{class:"cancel",onClick:t[4]||(t[4]=(0,o.iM)((t=>e.$router.push("/profile/sports")),["prevent"]))},(0,s.zw)(e.$t("buttons.BACK")),1)])):((0,r.wg)(),(0,r.iD)("div",va,[(0,r._)("button",{onClick:t[5]||(t[5]=t=>e.$router.push("/profile/edit/sports"))},(0,s.zw)(e.$t("user.PROFILE.EDIT_SPORTS_PREFERENCES")),1),(0,r._)("button",{onClick:t[6]||(t[6]=t=>e.$router.push("/"))},(0,s.zw)(e.$t("common.HOME")),1)]))])):(0,r.kq)("",!0)])}}});const Na=(0,P.Z)(fa,[["__scopeId","data-v-4775544a"]]);var ha=Na,Ca=n(12);const Da=e=>((0,r.dD)("data-v-74257266"),e=e(),(0,r.Cn)(),e),ka={class:"about-text"},za=["innerHTML"],Pa=Da((()=>(0,r._)("i",{class:"fa fa-book fa-padding","aria-hidden":"true"},null,-1))),Ma={href:"https://samr1.github.io/FitTrackee/",target:"_blank",rel:"noopener noreferrer"},ya=Da((()=>(0,r._)("i",{class:"fa fa-github fa-padding","aria-hidden":"true"},null,-1))),ba={href:"https://github.com/SamR1/FitTrackee",target:"_blank",rel:"noopener noreferrer"},La=Da((()=>(0,r._)("i",{class:"fa fa-balance-scale fa-padding","aria-hidden":"true"},null,-1))),Ga=Da((()=>(0,r._)("a",{href:"https://choosealicense.com/licenses/agpl-3.0/",target:"_blank",rel:"noopener noreferrer"}," AGPLv3 ",-1))),Fa={key:0},Wa=Da((()=>(0,r._)("i",{class:"fa fa-envelope-o fa-padding","aria-hidden":"true"},null,-1))),Ya=["href"];var xa=(0,r.aZ)({name:"About",setup(e){const t=(0,c.o)(),n=(0,r.Fl)((()=>t.getters[l.SY.GETTERS.APP_CONFIG]));return(e,t)=>{const a=(0,r.up)("i18n-t");return(0,r.wg)(),(0,r.iD)("div",ka,[(0,r._)("div",null,[(0,r._)("p",{class:"error-message",innerHTML:e.$t("about.FITTRACKEE_DESCRIPTION")},null,8,za),(0,r._)("p",null,[Pa,(0,r._)("a",Ma,(0,s.zw)((0,s.kC)(e.$t("common.DOCUMENTATION"))),1)]),(0,r._)("p",null,[ya,(0,r._)("a",ba,(0,s.zw)(e.$t("about.SOURCE_CODE")),1)]),(0,r._)("p",null,[La,(0,r.Wm)(a,{keypath:"about.FITTRACKEE_LICENSE"},{default:(0,r.w5)((()=>[Ga])),_:1})]),(0,i.SU)(n).admin_contact?((0,r.wg)(),(0,r.iD)("div",Fa,[Wa,(0,r._)("a",{href:`mailto:${(0,i.SU)(n).admin_contact}`},(0,s.zw)(e.$t("about.CONTACT_ADMIN")),9,Ya)])):(0,r.kq)("",!0)])])}}});const $a=(0,P.Z)(xa,[["__scopeId","data-v-74257266"]]);var Za=$a;const Ka={id:"bike"},Ba=["src"];function Ha(e,t){return(0,r.wg)(),(0,r.iD)("div",Ka,[(0,r._)("img",{class:"bike-img",src:"/img/bike.svg",alt:"mountain bike"},null,8,Ba)])}const qa={},ja=(0,P.Z)(qa,[["render",Ha],["__scopeId","data-v-795f7f5f"]]);var Va=ja;const Xa={id:"about",class:"view"},Ja={class:"container"},Qa={class:"container-sub"},er={class:"container-sub about-details"};var tr=(0,r.aZ)({name:"AboutView",setup(e){return(e,t)=>((0,r.wg)(),(0,r.iD)("div",Xa,[(0,r._)("div",Ja,[(0,r._)("div",Qa,[(0,r.Wm)(Va)]),(0,r._)("div",er,[(0,r.Wm)(Za)])])]))}});const nr=(0,P.Z)(tr,[["__scopeId","data-v-bffb50d0"]]);var ar=nr,rr=n(1818),sr=n(2056);const or=e=>((0,r.dD)("data-v-c9d1f10c"),e=e(),(0,r.Cn)(),e),ir={class:"timeline-workout"},lr={class:"box"},cr={class:"workout-user-date"},ur={class:"workout-user"},dr=["title"],mr={key:0},Sr={key:1,class:"no-map"},_r={class:"img"},Er={class:"data"},pr=or((()=>(0,r._)("i",{class:"fa fa-clock-o","aria-hidden":"true"},null,-1))),Tr={key:0},Ar={class:"data"},Ur=or((()=>(0,r._)("i",{class:"fa fa-road","aria-hidden":"true"},null,-1))),Or={key:0,class:"data elevation"},Rr=["alt"],Ir={class:"data-values"},gr=(0,r.Uk)("/ "),wr={key:1,class:"data altitude"},vr=or((()=>(0,r._)("i",{class:"fa fa-location-arrow","aria-hidden":"true"},null,-1))),fr={class:"data-values"},Nr=(0,r.Uk)(" +"),hr=(0,r.Uk)("/- ");var Cr=(0,r.aZ)({name:"WorkoutCard",props:{user:null,useImperialUnits:{type:Boolean},workout:{default:()=>({})},sport:{default:()=>({})}},setup(e){const t=e,n=(0,c.o)(),{user:a,workout:o,sport:u,useImperialUnits:d}=(0,i.BK)(t),m=(0,r.Fl)((()=>n.getters[l.SY.GETTERS.LOCALE]));return(e,t)=>{const n=(0,r.up)("router-link"),l=(0,r.up)("SportImage"),c=(0,r.up)("Distance");return(0,r.wg)(),(0,r.iD)("div",ir,[(0,r._)("div",lr,[(0,r._)("div",cr,[(0,r._)("div",ur,[(0,r.Wm)(ye.Z,{user:(0,i.SU)(a)},null,8,["user"]),(0,i.SU)(a).username?((0,r.wg)(),(0,r.j4)(n,{key:0,class:"workout-user-name",to:{name:"User",params:{username:(0,i.SU)(a).username}}},{default:(0,r.w5)((()=>[(0,r.Uk)((0,s.zw)((0,i.SU)(a).username),1)])),_:1},8,["to"])):(0,r.kq)("",!0)]),(0,i.SU)(o).id?((0,r.wg)(),(0,r.j4)(n,{key:0,class:"workout-title",to:{name:"Workout",params:{workoutId:(0,i.SU)(o).id}}},{default:(0,r.w5)((()=>[(0,r.Uk)((0,s.zw)((0,i.SU)(o).title),1)])),_:1},8,["to"])):(0,r.kq)("",!0),(0,i.SU)(o).workout_date&&(0,i.SU)(a)?((0,r.wg)(),(0,r.iD)("div",{key:1,class:"workout-date",title:(0,i.SU)(ze.Z)((0,i.SU)($e.eB)((0,i.SU)(o).workout_date,(0,i.SU)(a).timezone),"dd/MM/yyyy HH:mm")},(0,s.zw)((0,i.SU)(rr.Z)(new Date((0,i.SU)(o).workout_date),new Date,{addSuffix:!0,locale:(0,i.SU)(m)})),9,dr)):(0,r.kq)("",!0)]),(0,r._)("div",{class:(0,s.C_)(["workout-map",{"no-cursor":!(0,i.SU)(o)}]),onClick:t[0]||(t[0]=t=>(0,i.SU)(o).id?e.$router.push({name:"Workout",params:{workoutId:(0,i.SU)(o).id}}):null)},[(0,i.SU)(o)?((0,r.wg)(),(0,r.iD)("div",mr,[(0,i.SU)(o).with_gpx?((0,r.wg)(),(0,r.j4)(sr.Z,{key:0,workout:(0,i.SU)(o)},null,8,["workout"])):((0,r.wg)(),(0,r.iD)("div",Sr,(0,s.zw)(e.$t("workouts.NO_MAP")),1))])):(0,r.kq)("",!0)],2),(0,r._)("div",{class:(0,s.C_)(["workout-data",{"without-gpx":(0,i.SU)(o)&&!(0,i.SU)(o).with_gpx}]),onClick:t[1]||(t[1]=t=>(0,i.SU)(o).id?e.$router.push({name:"Workout",params:{workoutId:(0,i.SU)(o).id}}):null)},[(0,r._)("div",_r,[(0,i.SU)(u).label?((0,r.wg)(),(0,r.j4)(l,{key:0,"sport-label":(0,i.SU)(u).label,color:(0,i.SU)(u).color},null,8,["sport-label","color"])):(0,r.kq)("",!0)]),(0,r._)("div",Er,[pr,(0,i.SU)(o)?((0,r.wg)(),(0,r.iD)("span",Tr,(0,s.zw)((0,i.SU)(o).moving),1)):(0,r.kq)("",!0)]),(0,r._)("div",Ar,[Ur,(0,i.SU)(o).id?((0,r.wg)(),(0,r.j4)(c,{key:0,distance:(0,i.SU)(o).distance,digits:3,unitFrom:"km",useImperialUnits:(0,i.SU)(d)},null,8,["distance","useImperialUnits"])):(0,r.kq)("",!0)]),(0,i.SU)(o)&&(0,i.SU)(o).with_gpx?((0,r.wg)(),(0,r.iD)("div",Or,[(0,r._)("img",{class:"mountains",src:"/img/workouts/mountains.svg",alt:e.$t("workouts.ELEVATION")},null,8,Rr),(0,r._)("div",Ir,[(0,i.SU)(o).id?((0,r.wg)(),(0,r.j4)(c,{key:0,distance:(0,i.SU)(o).min_alt,unitFrom:"m",displayUnit:!1,useImperialUnits:(0,i.SU)(d)},null,8,["distance","useImperialUnits"])):(0,r.kq)("",!0),gr,(0,i.SU)(o).id?((0,r.wg)(),(0,r.j4)(c,{key:1,distance:(0,i.SU)(o).max_alt,unitFrom:"m",useImperialUnits:(0,i.SU)(d)},null,8,["distance","useImperialUnits"])):(0,r.kq)("",!0)])])):(0,r.kq)("",!0),(0,i.SU)(o)&&(0,i.SU)(o).with_gpx?((0,r.wg)(),(0,r.iD)("div",wr,[vr,(0,r._)("div",fr,[Nr,(0,i.SU)(o).id?((0,r.wg)(),(0,r.j4)(c,{key:0,distance:(0,i.SU)(o).ascent,unitFrom:"m",displayUnit:!1,useImperialUnits:(0,i.SU)(d)},null,8,["distance","useImperialUnits"])):(0,r.kq)("",!0),hr,(0,i.SU)(o).id?((0,r.wg)(),(0,r.j4)(c,{key:1,distance:(0,i.SU)(o).descent,unitFrom:"m",useImperialUnits:(0,i.SU)(d)},null,8,["distance","useImperialUnits"])):(0,r.kq)("",!0)])])):(0,r.kq)("",!0)],2)])])}}});const Dr=(0,P.Z)(Cr,[["__scopeId","data-v-c9d1f10c"]]);var kr=Dr,zr=n(5630),Pr=n(3768);const Mr={id:"timeline"},yr={class:"section-title"},br={key:0},Lr={key:1},Gr={key:1,class:"more-workouts"};var Fr=(0,r.aZ)({name:"Timeline",props:{sports:null,user:null},setup(e){const t=e,n=(0,c.o)(),{sports:a,user:o}=(0,i.BK)(t);let u=(0,i.iH)(1);const d=5,m=t.user.nb_workouts>=d?d:t.user.nb_workouts;(0,r.wF)((()=>E()));const S=(0,r.Fl)((()=>n.getters[l.aX.GETTERS.TIMELINE_WORKOUTS])),_=(0,r.Fl)((()=>S.value.length>0&&null!==S.value[S.value.length-1].previous_workout));function E(){n.dispatch(l.aX.ACTIONS.GET_TIMELINE_WORKOUTS,{page:u.value,per_page:d,...Pr.eR})}function p(){u.value+=1,n.dispatch(l.aX.ACTIONS.GET_MORE_TIMELINE_WORKOUTS,{page:u.value,per_page:d,...Pr.eR})}return(e,t)=>((0,r.wg)(),(0,r.iD)("div",Mr,[(0,r._)("div",yr,(0,s.zw)(e.$t("workouts.LATEST_WORKOUTS")),1),(0,i.SU)(o).nb_workouts>0&&0===(0,i.SU)(S).length?((0,r.wg)(),(0,r.iD)("div",br,[((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)([...Array((0,i.SU)(m)).keys()],(e=>((0,r.wg)(),(0,r.j4)(kr,{user:(0,i.SU)(o),useImperialUnits:(0,i.SU)(o).imperial_units,key:e},null,8,["user","useImperialUnits"])))),128))])):((0,r.wg)(),(0,r.iD)("div",Lr,[((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)((0,i.SU)(S),(e=>((0,r.wg)(),(0,r.j4)(kr,{workout:e,sport:(0,i.SU)(S).length>0?(0,i.SU)(a).filter((t=>t.id===e.sport_id))[0]:null,user:(0,i.SU)(o),useImperialUnits:(0,i.SU)(o).imperial_units,key:e.id},null,8,["workout","sport","user","useImperialUnits"])))),128)),0===(0,i.SU)(S).length?((0,r.wg)(),(0,r.j4)(zr.Z,{key:0})):(0,r.kq)("",!0),(0,i.SU)(_)?((0,r.wg)(),(0,r.iD)("div",Gr,[(0,r._)("button",{onClick:p},(0,s.zw)(e.$t("workouts.LOAD_MORE_WORKOUT")),1)])):(0,r.kq)("",!0)]))]))}});const Wr=(0,P.Z)(Fr,[["__scopeId","data-v-9ef2a9ac"]]);var Yr=Wr,xr=n(1640),$r=n(4559),Zr=n(7349),Kr=n(1743),Br=n(9160),Hr=n(1085);const qr=["title"];var jr=(0,r.aZ)({name:"CalendarWorkout",props:{workout:null,sportLabel:null,sportColor:null},setup(e){const t=e,{workout:n,sportLabel:a,sportColor:s}=(0,i.BK)(t);return(e,t)=>{const o=(0,r.up)("SportImage");return(0,r.wg)(),(0,r.iD)("div",{class:"calendar-workout",onClick:t[0]||(t[0]=t=>e.$router.push({name:"Workout",params:{workoutId:(0,i.SU)(n).id}}))},[(0,r.Wm)(o,{"sport-label":(0,i.SU)(a),title:(0,i.SU)(n).title,color:(0,i.SU)(s)},null,8,["sport-label","title","color"]),(0,r._)("sup",null,[(0,i.SU)(n).records.length>0?((0,r.wg)(),(0,r.iD)("i",{key:0,class:"fa fa-trophy custom-fa-small","aria-hidden":"true",title:(0,i.SU)(n).records.map((t=>` ${e.$t(`workouts.RECORD_${t.record_type}`)}`))},null,8,qr)):(0,r.kq)("",!0)])])}}});const Vr=jr;var Xr=Vr;const Jr={class:"donut-chart"},Qr={height:"34",width:"34",viewBox:"0 0 34 34"},es=["stroke","stroke-dashoffset","transform"];var ts=(0,r.aZ)({name:"DonutChart",props:{colors:null,datasets:null},setup(e){const t=e,{colors:n,datasets:a}=(0,i.BK)(t);let s=-90;const o=16,l=16,c=14,u=2*Math.PI*c;function d(e,t){return t-e*t}function m(e,t){const n=`rotate(${s}, ${o}, ${l})`;return s=360*t+s,n}return(e,t)=>((0,r.wg)(),(0,r.iD)("div",Jr,[((0,r.wg)(),(0,r.iD)("svg",Qr,[((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)(Object.entries((0,i.SU)(a)),((e,t)=>((0,r.wg)(),(0,r.iD)("g",{key:t},[(0,r._)("circle",{cx:o,cy:l,r:c,fill:"transparent",stroke:(0,i.SU)(n)[+e[0]],"stroke-dashoffset":d(e[1].percentage,u),"stroke-dasharray":u,"stroke-width":"3","stroke-opacity":"0.8",transform:m(t,e[1].percentage)},null,8,es)])))),128))]))]))}});const ns=ts;var as=ns;const rs={class:"calendar-workouts-chart"},ss={class:"workouts-count"},os={key:0,class:"workouts-pane"},is={class:"more-workouts"};var ls=(0,r.aZ)({name:"CalendarWorkoutsChart",props:{colors:null,datasets:null,sports:null,workouts:null},setup(e){const t=e,{colors:n,datasets:a,sports:o,workouts:l}=(0,i.BK)(t),c=(0,i.iH)(!0);function u(e){e.stopPropagation(),c.value=!c.value}return(e,t)=>{const d=(0,r.Q2)("click-outside");return(0,r.wg)(),(0,r.iD)("div",rs,[(0,r._)("div",{class:"workouts-chart",onClick:u},[(0,r._)("div",ss,(0,s.zw)((0,i.SU)(l).length),1),(0,r.Wm)(as,{datasets:(0,i.SU)(a),colors:(0,i.SU)(n)},null,8,["datasets","colors"])]),c.value?(0,r.kq)("",!0):((0,r.wg)(),(0,r.iD)("div",os,[(0,r.wy)(((0,r.wg)(),(0,r.iD)("div",is,[(0,r._)("i",{class:"fa fa-times calendar-more","aria-hidden":"true",onClick:u}),((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)((0,i.SU)(l),((e,t)=>((0,r.wg)(),(0,r.j4)(Xr,{key:t,workout:e,sportLabel:(0,i.SU)(le.PA)(e,(0,i.SU)(o)),sportColor:(0,i.SU)(le.CM)(e,(0,i.SU)(o))},null,8,["workout","sportLabel","sportColor"])))),128))])),[[d,u]])]))])}}});const cs=(0,P.Z)(ls,[["__scopeId","data-v-52d4310a"]]);var us=cs;const ds={class:"calendar-workouts"},ms={class:"desktop-display"},Ss={key:0,class:"workouts-display"},_s={key:1,class:"donut-display"},Es={class:"mobile-display"},ps={key:0,class:"donut-display"};var Ts=(0,r.aZ)({name:"CalendarWorkouts",props:{workouts:null,sports:null},setup(e){const t=e,{workouts:n,sports:a}=(0,i.BK)(t),s=(0,r.Fl)((()=>(0,Pr.BN)(t.workouts))),o=(0,r.Fl)((()=>(0,le.Yx)(t.sports))),l=6;return(e,t)=>((0,r.wg)(),(0,r.iD)("div",ds,[(0,r._)("div",ms,[(0,i.SU)(n).length<=l?((0,r.wg)(),(0,r.iD)("div",Ss,[((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)((0,i.SU)(n).slice(0,l),((e,t)=>((0,r.wg)(),(0,r.j4)(Xr,{key:t,workout:e,sportLabel:(0,i.SU)(le.PA)(e,(0,i.SU)(a)),sportColor:(0,i.SU)(le.CM)(e,(0,i.SU)(a))},null,8,["workout","sportLabel","sportColor"])))),128))])):((0,r.wg)(),(0,r.iD)("div",_s,[(0,r.Wm)(us,{workouts:(0,i.SU)(n),sports:(0,i.SU)(a),datasets:(0,i.SU)(s),colors:(0,i.SU)(o)},null,8,["workouts","sports","datasets","colors"])]))]),(0,r._)("div",Es,[(0,i.SU)(n).length>0?((0,r.wg)(),(0,r.iD)("div",ps,[(0,r.Wm)(us,{workouts:(0,i.SU)(n),sports:(0,i.SU)(a),datasets:(0,i.SU)(s),colors:(0,i.SU)(o)},null,8,["workouts","sports","datasets","colors"])])):(0,r.kq)("",!0)])]))}});const As=Ts;var Us=As;const Os={class:"calendar-cells"},Rs={class:"calendar-cell-day"};var Is=(0,r.aZ)({name:"CalendarCells",props:{currentDay:null,endDate:null,sports:null,startDate:null,timezone:null,weekStartingMonday:{type:Boolean},workouts:null},setup(e){const t=e,{currentDay:n,endDate:a,sports:o,startDate:l,timezone:c,weekStartingMonday:u,workouts:d}=(0,i.BK)(t),m=(0,i.iH)([]);function S(){m.value=[];let e=l.value;while(e<=a.value){const t=[];for(let n=0;n<7;n++)t.push(e),e=(0,Zr.Z)(e,1);m.value.push(t)}}function _(e){return u.value?[5,6].includes(e):[0,6].includes(e)}function E(e,t){return t?t.filter((t=>(0,Kr.Z)((0,$e.eB)(t.workout_date,c.value),e))).reverse():[]}return(0,r.bv)((()=>S())),(0,r.YP)((()=>t.currentDay),(()=>S())),(e,t)=>((0,r.wg)(),(0,r.iD)("div",Os,[((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)(m.value,((e,t)=>((0,r.wg)(),(0,r.iD)("div",{class:"calendar-row",key:t},[((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)(e,((e,t)=>((0,r.wg)(),(0,r.iD)("div",{class:(0,s.C_)(["calendar-cell",{"disabled-cell":!(0,i.SU)(Br.Z)(e,(0,i.SU)(n)),"week-end":_(t),today:(0,i.SU)(Hr.Z)(e)}]),key:t},[(0,r.Wm)(Us,{workouts:E(e,(0,i.SU)(d)),sports:(0,i.SU)(o)},null,8,["workouts","sports"]),(0,r._)("div",Rs,(0,s.zw)((0,i.SU)(ze.Z)(e,"d")),1)],2)))),128))])))),128))]))}});const gs=Is;var ws=gs;const vs={class:"calendar-days"};var fs=(0,r.aZ)({name:"CalendarDays",props:{startDate:null,localeOptions:null},setup(e){const t=e,n=[];for(let a=0;a<7;a++)n.push((0,Zr.Z)(t.startDate,a));return(t,a)=>((0,r.wg)(),(0,r.iD)("div",vs,[((0,r.wg)(),(0,r.iD)(r.HY,null,(0,r.Ko)(n,((t,n)=>(0,r._)("div",{class:"calendar-day",key:n},(0,s.zw)((0,i.SU)(ze.Z)(t,"EEE",{locale:e.localeOptions})),1))),64))]))}});const Ns=fs;var hs=Ns;const Cs={class:"calendar-header"},Ds=(0,r._)("i",{class:"fa fa-chevron-left","aria-hidden":"true"},null,-1),ks=[Ds],zs={class:"calendar-month"},Ps=(0,r._)("i",{class:"fa fa-chevron-right","aria-hidden":"true"},null,-1),Ms=[Ps];var ys=(0,r.aZ)({name:"CalendarHeader",props:{day:null,localeOptions:null},emits:["displayNextMonth","displayPreviousMonth"],setup(e,{emit:t}){const n=e,{day:a,localeOptions:o}=(0,i.BK)(n);return(e,n)=>((0,r.wg)(),(0,r.iD)("div",Cs,[(0,r._)("div",{class:"calendar-arrow calendar-arrow-left",onClick:n[0]||(n[0]=e=>t("displayPreviousMonth"))},ks),(0,r._)("div",zs,[(0,r._)("span",null,(0,s.zw)((0,i.SU)(ze.Z)((0,i.SU)(a),"MMM yyyy",{locale:(0,i.SU)(o)})),1)]),(0,r._)("div",{class:"calendar-arrow calendar-arrow-right",onClick:n[1]||(n[1]=e=>t("displayNextMonth"))},Ms)]))}});const bs=ys;var Ls=bs;const Gs={id:"user-calendar"},Fs={class:"calendar-card box"};var Ws=(0,r.aZ)({name:"index",props:{sports:null,user:null},setup(e){const t=e,n=(0,c.o)(),{sports:a,user:s}=(0,i.BK)(t),o="yyyy-MM-dd";let u=(0,i.iH)(new Date),d=(0,i.iH)((0,$e.yx)(u.value,t.user.weekm));const m=(0,r.Fl)((()=>n.getters[l.aX.GETTERS.CALENDAR_WORKOUTS])),S=(0,r.Fl)((()=>n.getters[l.SY.GETTERS.LOCALE]));function _(){d.value=(0,$e.yx)(u.value,t.user.weekm);const e={from:(0,ze.Z)(d.value.start,o),to:(0,ze.Z)(d.value.end,o),page:1,per_page:100,...Pr.eR};n.dispatch(l.aX.ACTIONS.GET_CALENDAR_WORKOUTS,e)}function E(){u.value=(0,xr.Z)(u.value,1),_()}function p(){u.value=(0,$r.Z)(u.value,1),_()}return(0,r.wF)((()=>_())),(e,t)=>((0,r.wg)(),(0,r.iD)("div",Gs,[(0,r._)("div",Fs,[(0,r.Wm)(Ls,{day:(0,i.SU)(u),"locale-options":(0,i.SU)(S),onDisplayNextMonth:E,onDisplayPreviousMonth:p},null,8,["day","locale-options"]),(0,r.Wm)(hs,{"start-date":(0,i.SU)(d).start,"locale-options":(0,i.SU)(S)},null,8,["start-date","locale-options"]),(0,r.Wm)(ws,{currentDay:(0,i.SU)(u),"end-date":(0,i.SU)(d).end,sports:(0,i.SU)(a),"start-date":(0,i.SU)(d).start,timezone:(0,i.SU)(s).timezone,workouts:(0,i.SU)(m),weekStartingMonday:(0,i.SU)(s).weekm},null,8,["currentDay","end-date","sports","start-date","timezone","workouts","weekStartingMonday"])])]))}});const Ys=Ws;var xs=Ys,$s=n(3703),Zs=n(4135),Ks=n(7402);const Bs={class:"user-month-stats"};var Hs=(0,r.aZ)({name:"UserMonthStats",props:{sports:null,user:null},setup(e){const t=e,{sports:n,user:a}=(0,i.BK)(t),o=new Date,l={duration:"week",start:(0,$s.Z)(o),end:(0,Zs.Z)(o)},c=t.sports.map((e=>e.id));return(e,t)=>{const o=(0,r.up)("Card");return(0,r.wg)(),(0,r.iD)("div",Bs,[(0,r.Wm)(o,null,{title:(0,r.w5)((()=>[(0,r.Uk)((0,s.zw)(e.$t("dashboard.THIS_MONTH")),1)])),content:(0,r.w5)((()=>[(0,r.Wm)(Ks.Z,{sports:(0,i.SU)(n),user:(0,i.SU)(a),"chart-params":l,"displayed-sport-ids":(0,i.SU)(c),"hide-chart-if-no-data":!0},null,8,["sports","user","displayed-sport-ids"])])),_:1})])}}});const qs=(0,P.Z)(Hs,[["__scopeId","data-v-1bcddc12"]]);var js=qs;const Vs={class:"records-card"},Xs={class:"record-type"},Js={class:"record-value"},Qs={class:"record-date"};var eo=(0,r.aZ)({name:"RecordsCard",props:{records:null,sportTranslatedLabel:null},setup(e){const t=e,{records:n,sportTranslatedLabel:a}=(0,i.BK)(t);return(e,t)=>{const o=(0,r.up)("SportImage"),l=(0,r.up)("router-link"),c=(0,r.up)("Card");return(0,r.wg)(),(0,r.iD)("div",Vs,[(0,r.Wm)(c,null,{title:(0,r.w5)((()=>[(0,r.Wm)(o,{"sport-label":(0,i.SU)(n).label,color:(0,i.SU)(n).color},null,8,["sport-label","color"]),(0,r.Uk)(" "+(0,s.zw)((0,i.SU)(a)),1)])),content:(0,r.w5)((()=>[((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)((0,i.SU)(n).records,(t=>((0,r.wg)(),(0,r.iD)("div",{class:"record",key:t.id},[(0,r._)("span",Xs,(0,s.zw)(e.$t(`workouts.RECORD_${t.record_type}`)),1),(0,r._)("span",Js,(0,s.zw)(t.value),1),(0,r._)("span",Qs,[(0,r.Wm)(l,{to:{name:"Workout",params:{workoutId:t.workout_id}}},{default:(0,r.w5)((()=>[(0,r.Uk)((0,s.zw)(t.workout_date),1)])),_:2},1032,["to"])])])))),128))])),_:1})])}}});const to=(0,P.Z)(eo,[["__scopeId","data-v-aee1f956"]]);var no=to,ao=(n(1703),n(3649));const ro=(e,t,n)=>{const a="km",r=n?ao.Dl[a].defaultTarget:a;let s;switch(e.record_type){case"AS":case"MS":s=`${(0,ao.sC)(+e.value,a,r,2)} ${r}/h`;break;case"FD":s=`${(0,ao.sC)(+e.value,a,r,3)} ${r}`;break;case"LD":s=e.value;break;default:throw new Error(`Invalid record type, expected: "AS", "FD", "LD", "MD", got: "${e.record_type}"`)}return{workout_date:(0,$e.Jo)((0,$e.eB)(e.workout_date,t)).workout_date,workout_id:e.workout_id,id:e.id,record_type:e.record_type,value:s}},so=(e,t,n,a)=>e.reduce(((e,r)=>{const s=t.find((e=>e.id===r.sport_id));return s&&s.label&&(void 0===e[s.translatedLabel]&&(e[s.translatedLabel]={label:s.label,color:s.color,records:[]}),e[s.translatedLabel].records.push(ro(r,n,a))),e}),{}),oo=e=>((0,r.dD)("data-v-ae25a82a"),e=e(),(0,r.Cn)(),e),io={class:"user-records-section"},lo={class:"section-title"},co=oo((()=>(0,r._)("i",{class:"fa fa-trophy custom-fa-small","aria-hidden":"true"},null,-1))),uo={class:"user-records"},mo={key:0,class:"no-records"};var So=(0,r.aZ)({name:"index",props:{sports:null,user:null},setup(e){const t=e,{t:n}=(0,ie.QT)(),a=(0,r.Fl)((()=>so(t.user.records,(0,le.xH)(t.sports,n),t.user.timezone,t.user.imperial_units)));return(t,n)=>((0,r.wg)(),(0,r.iD)("div",io,[(0,r._)("div",lo,[co,(0,r.Uk)(" "+(0,s.zw)(t.$t("workouts.RECORD",2)),1)]),(0,r._)("div",uo,[0===Object.keys((0,i.SU)(a)).length?((0,r.wg)(),(0,r.iD)("div",mo,(0,s.zw)(t.$t("workouts.NO_RECORDS")),1)):(0,r.kq)("",!0),((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)(Object.keys((0,i.SU)(a)).sort(),(t=>((0,r.wg)(),(0,r.j4)(no,{sportTranslatedLabel:t,records:(0,i.SU)(a)[t],key:t,useImperialUnits:e.user.imperial_units},null,8,["sportTranslatedLabel","records","useImperialUnits"])))),128))])]))}});const _o=(0,P.Z)(So,[["__scopeId","data-v-ae25a82a"]]);var Eo=_o;const po={id:"user-stats"};var To=(0,r.aZ)({name:"index",props:{user:null},setup(e){const t=e,{t:n}=(0,ie.QT)(),{user:a}=(0,i.BK)(t),s=(0,r.Fl)((()=>t.user.total_duration)),o=(0,r.Fl)((()=>d(s))),l="km",c=a.value.imperial_units?ao.Dl[l].defaultTarget:l,u=(0,r.Fl)((()=>a.value.imperial_units?(0,ao.sC)(a.value.total_distance,l,c,2):parseFloat(a.value.total_distance.toFixed(2))));function d(e){const t=e.value.match(/day/g)?e.value.split(", ")[1]:e.value;return{days:e.value.match(/day/g)?`${e.value.split(" ")[0]} ${e.value.match(/days/g)?n("common.DAY",2):n("common.DAY",1)}`:`0 ${n("common.DAY",2)},`,duration:`${t.split(":")[0]}h ${t.split(":")[1]}min`}}return(e,t)=>((0,r.wg)(),(0,r.iD)("div",po,[(0,r.Wm)(Z,{icon:"calendar",value:(0,i.SU)(a).nb_workouts,text:e.$t("workouts.WORKOUT",(0,i.SU)(a).nb_workouts)},null,8,["value","text"]),(0,r.Wm)(Z,{icon:"road",value:(0,i.SU)(u),text:"mi"===(0,i.SU)(c)?"miles":(0,i.SU)(c)},null,8,["value","text"]),(0,r.Wm)(Z,{icon:"clock-o",value:(0,i.SU)(o).days,text:(0,i.SU)(o).duration},null,8,["value","text"]),(0,r.Wm)(Z,{icon:"tags",value:(0,i.SU)(a).nb_sports,text:e.$t("workouts.SPORT",(0,i.SU)(a).nb_sports)},null,8,["value","text"])]))}});const Ao=To;var Uo=Ao;const Oo=e=>((0,r.dD)("data-v-20e19721"),e=e(),(0,r.Cn)(),e),Ro={key:0,id:"dashboard",class:"view"},Io={class:"container mobile-menu"},go={class:"box"},wo=Oo((()=>(0,r._)("i",{class:"fa fa-calendar","aria-hidden":"true"},null,-1))),vo=[wo],fo=Oo((()=>(0,r._)("i",{class:"fa fa-bar-chart","aria-hidden":"true"},null,-1))),No=[fo],ho=Oo((()=>(0,r._)("i",{class:"fa fa-map-o","aria-hidden":"true"},null,-1))),Co=[ho],Do=Oo((()=>(0,r._)("i",{class:"fa fa-trophy","aria-hidden":"true"},null,-1))),ko=[Do],zo={class:"container"},Po={class:"container dashboard-container"},Mo={class:"left-container dashboard-sub-container"},yo={class:"right-container dashboard-sub-container"},bo=Oo((()=>(0,r._)("div",{id:"bottom"},null,-1))),Lo={key:1,class:"app-loading"};var Go=(0,r.aZ)({name:"Dashboard",setup(e){const t=(0,c.o)(),n=(0,r.Fl)((()=>t.getters[l.YN.GETTERS.AUTH_USER_PROFILE])),a=(0,r.Fl)((()=>t.getters[l.O8.GETTERS.SPORTS])),o=(0,i.iH)("calendar");function u(e){o.value=e}return(e,t)=>{const l=(0,r.up)("Loader");return(0,i.SU)(n).username&&(0,i.SU)(a).length>0?((0,r.wg)(),(0,r.iD)("div",Ro,[(0,r._)("div",Io,[(0,r._)("div",go,[(0,r._)("div",{class:(0,s.C_)(["mobile-menu-item",{"is-selected":"calendar"===o.value}]),onClick:t[0]||(t[0]=e=>u("calendar"))},vo,2),(0,r._)("div",{class:(0,s.C_)(["mobile-menu-item",{"is-selected":"chart"===o.value}]),onClick:t[1]||(t[1]=e=>u("chart"))},No,2),(0,r._)("div",{class:(0,s.C_)(["mobile-menu-item",{"is-selected":"timeline"===o.value}]),onClick:t[2]||(t[2]=e=>u("timeline"))},Co,2),(0,r._)("div",{class:(0,s.C_)(["mobile-menu-item",{"is-selected":"records"===o.value}]),onClick:t[3]||(t[3]=e=>u("records"))},ko,2)])]),(0,r._)("div",zo,[(0,r.Wm)(Uo,{user:(0,i.SU)(n)},null,8,["user"])]),(0,r._)("div",Po,[(0,r._)("div",Mo,[(0,r.Wm)(js,{sports:(0,i.SU)(a),user:(0,i.SU)(n),class:(0,s.C_)({"is-hidden":!("chart"===o.value)})},null,8,["sports","user","class"]),(0,r.Wm)(Eo,{sports:(0,i.SU)(a),user:(0,i.SU)(n),class:(0,s.C_)({"is-hidden":!("records"===o.value)})},null,8,["sports","user","class"])]),(0,r._)("div",yo,[(0,r.Wm)(xs,{sports:(0,i.SU)(a),user:(0,i.SU)(n),class:(0,s.C_)({"is-hidden":!("calendar"===o.value)})},null,8,["sports","user","class"]),(0,r.Wm)(Yr,{sports:(0,i.SU)(a),user:(0,i.SU)(n),class:(0,s.C_)({"is-hidden":!("timeline"===o.value)})},null,8,["sports","user","class"])])]),bo])):((0,r.wg)(),(0,r.iD)("div",Lo,[(0,r.Wm)(l)]))}}});const Fo=(0,P.Z)(Go,[["__scopeId","data-v-20e19721"]]);var Wo=Fo,Yo=n(8273);const xo={class:"not-found view"};var $o=(0,r.aZ)({name:"NotFoundView",setup(e){return(e,t)=>((0,r.wg)(),(0,r.iD)("div",xo,[(0,r.Wm)(Yo.Z)]))}});const Zo=$o;var Ko=Zo,Bo=n(2422);const Ho={id:"loginOrRegister",class:"view"},qo={class:"container"},jo={class:"container-sub"},Vo={class:"container-sub"};var Xo=(0,r.aZ)({name:"LoginOrRegister",props:{action:null},setup(e){const t=e,{action:n}=(0,i.BK)(t);return(e,t)=>((0,r.wg)(),(0,r.iD)("div",Ho,[(0,r._)("div",qo,[(0,r._)("div",jo,[(0,r.Wm)(Va)]),(0,r._)("div",Vo,[(0,r.Wm)(Bo.Z,{action:(0,i.SU)(n)},null,8,["action"])])])]))}});const Jo=(0,P.Z)(Xo,[["__scopeId","data-v-6a38125b"]]);var Qo=Jo;const ei=e=>{const t=/(\/profile)(\/edit)*(\/*)/,n=e.replace(t,"").toUpperCase();return""===n?"PROFILE":n.toUpperCase()},ti=[{path:"/",name:"Dashboard",component:Wo},{path:"/login",name:"Login",component:Qo,props:{action:"login"}},{path:"/register",name:"Register",component:Qo,props:{action:"register"}},{path:"/account-confirmation",name:"AccountConfirmation",component:()=>n.e(845).then(n.bind(n,4264))},{path:"/account-confirmation/resend",name:"AccountConfirmationResend",component:()=>n.e(24).then(n.bind(n,5639)),props:{action:"account-confirmation-resend"}},{path:"/account-confirmation/email-sent",name:"AccountConfirmationEmailSend",component:()=>n.e(24).then(n.bind(n,5639)),props:{action:"email-sent"}},{path:"/password-reset/sent",name:"PasswordEmailSent",component:()=>n.e(24).then(n.bind(n,1627)),props:{action:"request-sent"}},{path:"/password-reset/request",name:"PasswordResetRequest",component:()=>n.e(24).then(n.bind(n,1627)),props:{action:"reset-request"}},{path:"/password-reset/password-updated",name:"PasswordUpdated",component:()=>n.e(24).then(n.bind(n,1627)),props:{action:"password-updated"}},{path:"/password-reset",name:"PasswordReset",component:()=>n.e(24).then(n.bind(n,1627)),props:{action:"reset"}},{path:"/email-update",name:"EmailUpdate",component:()=>n.e(845).then(n.bind(n,8160))},{path:"/profile",name:"Profile",component:()=>n.e(845).then(n.bind(n,6266)),children:[{path:"",name:"UserProfile",component:vt,props:e=>({tab:ei(e.path)}),children:[{path:"",name:"UserInfos",component:ft.Z},{path:"preferences",name:"UserPreferences",component:zt},{path:"sports",name:"UserSportPreferences",component:ha,props:{isEdition:!1}}]},{path:"edit",name:"UserProfileEdition",component:bt,props:e=>({tab:ei(e.path)}),children:[{path:"",name:"UserInfosEdition",component:En},{path:"account",name:"UserAccountEdition",component:Vt},{path:"picture",name:"UserPictureEdition",component:Nn},{path:"preferences",name:"UserPreferencesEdition",component:Jn},{path:"sports",name:"UserSportPreferencesEdition",component:ha,props:{isEdition:!0}}]}]},{path:"/statistics",name:"Statistics",component:()=>n.e(193).then(n.bind(n,7749))},{path:"/users/:username",name:"User",component:()=>n.e(845).then(n.bind(n,9453))},{path:"/workouts",name:"Workouts",component:()=>n.e(401).then(n.bind(n,8291))},{path:"/workouts/:workoutId",name:"Workout",component:()=>n.e(401).then(n.bind(n,9003)),props:{displaySegment:!1}},{path:"/workouts/:workoutId/edit",name:"EditWorkout",component:()=>n.e(401).then(n.bind(n,8237))},{path:"/workouts/:workoutId/segment/:segmentId",name:"WorkoutSegment",component:()=>n.e(401).then(n.bind(n,9003)),props:{displaySegment:!0}},{path:"/workouts/add",name:"AddWorkout",component:()=>n.e(401).then(n.bind(n,4189))},{path:"/admin",name:"Administration",component:()=>n.e(328).then(n.bind(n,6e3)),children:[{path:"",name:"AdministrationMenu",component:oe},{path:"application",name:"ApplicationAdministration",component:y},{path:"application/edit",name:"ApplicationAdministrationEdition",component:y,props:{edition:!0}},{path:"sports",name:"SportsAdministration",component:ke},{path:"users/:username",name:"UserFromAdmin",component:()=>n.e(845).then(n.bind(n,9453)),props:{fromAdmin:!0}},{path:"users",name:"UsersAdministration",component:St}]},{path:"/about",name:"About",component:ar},{path:"/:pathMatch(.*)*",name:"not-found",component:Ko}],ni=(0,a.p7)({history:(0,a.PO)("/"),routes:ti}),ai=["/login","/password-reset","/password-reset/password-updated","/password-reset/request","/password-reset/sent","/register","/account-confirmation","/account-confirmation/resend","/account-confirmation/email-sent"],ri=["/email-update","/about"];ni.beforeEach(((e,t,n)=>{Ca.Z.dispatch(l.YN.ACTIONS.CHECK_AUTH_USER).then((()=>{if(ri.includes(e.path))return n();if(Ca.Z.getters[l.YN.GETTERS.IS_AUTHENTICATED]&&ai.includes(e.path))return n("/");if(Ca.Z.getters[l.YN.GETTERS.IS_AUTHENTICATED]||ai.includes(e.path))n();else{const t="/"===e.path?{path:"/login"}:{path:"/login",query:{from:e.fullPath}};n(t)}})).catch((e=>{console.error(e),n()}))}));var si=ni},8602:function(e,t,n){"use strict";var a,r,s,o,i,l,c,u,d,m,S,_,E,p,T;n.d(t,{YN:function(){return I},SY:function(){return U},O8:function(){return O},gu:function(){return R},RT:function(){return g},aX:function(){return w}}),function(e){e["CHECK_AUTH_USER"]="CHECK_AUTH_USER",e["CONFIRM_ACCOUNT"]="CONFIRM_ACCOUNT",e["CONFIRM_EMAIL"]="CONFIRM_EMAIL",e["DELETE_ACCOUNT"]="DELETE_ACCOUNT",e["DELETE_PICTURE"]="DELETE_PICTURE",e["GET_USER_PROFILE"]="GET_USER_PROFILE",e["LOGIN_OR_REGISTER"]="LOGIN_OR_REGISTER",e["LOGOUT"]="LOGOUT",e["SEND_PASSWORD_RESET_REQUEST"]="SEND_PASSWORD_RESET_REQUEST",e["RESEND_ACCOUNT_CONFIRMATION_EMAIL"]="RESEND_ACCOUNT_CONFIRMATION_EMAIL",e["RESET_USER_PASSWORD"]="RESET_USER_PASSWORD",e["RESET_USER_SPORT_PREFERENCES"]="RESET_USER_SPORT_PREFERENCES",e["UPDATE_USER_ACCOUNT"]="UPDATE_USER_ACCOUNT",e["UPDATE_USER_PICTURE"]="UPDATE_USER_PICTURE",e["UPDATE_USER_PROFILE"]="UPDATE_USER_PROFILE",e["UPDATE_USER_PREFERENCES"]="UPDATE_USER_PREFERENCES",e["UPDATE_USER_SPORT_PREFERENCES"]="UPDATE_USER_SPORT_PREFERENCES"}(a||(a={})),function(e){e["AUTH_TOKEN"]="AUTH_TOKEN",e["AUTH_USER_PROFILE"]="AUTH_USER_PROFILE",e["IS_ADMIN"]="IS_ADMIN",e["IS_AUTHENTICATED"]="IS_AUTHENTICATED",e["IS_SUCCESS"]="IS_SUCCESS",e["IS_REGISTRATION_SUCCESS"]="IS_REGISTRATION_SUCCESS",e["USER_LOADING"]="USER_LOADING"}(r||(r={})),function(e){e["CLEAR_AUTH_USER_TOKEN"]="CLEAR_AUTH_USER_TOKEN",e["UPDATE_AUTH_TOKEN"]="UPDATE_AUTH_TOKEN",e["UPDATE_AUTH_USER_PROFILE"]="UPDATE_AUTH_USER_PROFILE",e["UPDATE_IS_SUCCESS"]="UPDATE_USER_IS_SUCCESS",e["UPDATE_IS_REGISTRATION_SUCCESS"]="UPDATE_IS_REGISTRATION_SUCCESS",e["UPDATE_USER_LOADING"]="UPDATE_USER_LOADING"}(s||(s={})),function(e){e["GET_APPLICATION_CONFIG"]="GET_APPLICATION_CONFIG",e["GET_APPLICATION_STATS"]="GET_APPLICATION_STATS",e["UPDATE_APPLICATION_CONFIG"]="UPDATE_APPLICATION_CONFIG"}(o||(o={})),function(e){e["APP_CONFIG"]="APP_CONFIG",e["APP_LOADING"]="APP_LOADING",e["APP_STATS"]="APP_STATS",e["ERROR_MESSAGES"]="ERROR_MESSAGES",e["LANGUAGE"]="LANGUAGE",e["LOCALE"]="LOCALE"}(i||(i={})),function(e){e["EMPTY_ERROR_MESSAGES"]="EMPTY_ERROR_MESSAGES",e["SET_ERROR_MESSAGES"]="SET_ERROR_MESSAGES",e["UPDATE_APPLICATION_CONFIG"]="UPDATE_APPLICATION_CONFIG",e["UPDATE_APPLICATION_LOADING"]="UPDATE_APPLICATION_LOADING",e["UPDATE_APPLICATION_STATS"]="UPDATE_APPLICATION_STATS",e["UPDATE_LANG"]="UPDATE_LANG"}(l||(l={})),function(e){e["GET_SPORTS"]="GET_SPORTS",e["UPDATE_SPORTS"]="UPDATE_SPORTS"}(c||(c={})),function(e){e["SPORTS"]="SPORTS"}(u||(u={})),function(e){e["SET_SPORTS"]="SET_SPORTS"}(d||(d={})),function(e){e["GET_USER_STATS"]="GET_USER_STATS"}(m||(m={})),function(e){e["USER_STATS"]="USER_STATS"}(S||(S={})),function(e){e["EMPTY_USER_STATS"]="EMPTY_USER_STATS",e["UPDATE_USER_STATS"]="UPDATE_USER_STATS"}(_||(_={})),function(e){e["EMPTY_USER"]="EMPTY_USER",e["EMPTY_USERS"]="EMPTY_USERS",e["GET_USER"]="GET_USER",e["GET_USERS"]="GET_USERS",e["UPDATE_USER"]="UPDATE_USER",e["DELETE_USER_ACCOUNT"]="DELETE_USER_ACCOUNT"}(E||(E={})),function(e){e["USER"]="USER",e["USERS"]="USERS",e["USERS_IS_SUCCESS"]="USERS_IS_SUCCESS",e["USERS_LOADING"]="USERS_LOADING",e["USERS_PAGINATION"]="USERS_PAGINATION"}(p||(p={})),function(e){e["UPDATE_USER"]="UPDATE_USER",e["UPDATE_USER_IN_USERS"]="UPDATE_USER_IN_USERS",e["UPDATE_USERS"]="UPDATE_USERS",e["UPDATE_USERS_LOADING"]="UPDATE_USERS_LOADING",e["UPDATE_USERS_PAGINATION"]="UPDATE_USERS_PAGINATION",e["UPDATE_IS_SUCCESS"]="UPDATE_IS_SUCCESS"}(T||(T={}));var A=n(52);const U={ACTIONS:o,GETTERS:i,MUTATIONS:l},O={ACTIONS:c,GETTERS:u,MUTATIONS:d},R={ACTIONS:m,GETTERS:S,MUTATIONS:_},I={ACTIONS:a,GETTERS:r,MUTATIONS:s},g={ACTIONS:E,GETTERS:p,MUTATIONS:T},w={ACTIONS:A.tW,GETTERS:A.JP,MUTATIONS:A.CW}},12:function(e,t,n){"use strict";n.d(t,{Z:function(){return re}});var a=n(3907),r=(n(1703),n(5167)),s=n(9669),o=n.n(s),i=n(2024);const l=o().create({baseURL:(0,i.k)()});var c=l,u=n(2540),d=n(8733),m=n(8602);const S=(e,t)=>{e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),r.Z["delete"](`users/${t.username}`).then((n=>{204===n.status?t.fromAdmin?d.Z.push("/admin/users"):e.dispatch(m.YN.ACTIONS.LOGOUT).then((()=>d.Z.push("/"))):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t)))},_={[m.RT.ACTIONS.EMPTY_USER](e){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.RT.MUTATIONS.UPDATE_USER,{})},[m.RT.ACTIONS.EMPTY_USERS](e){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.RT.MUTATIONS.UPDATE_USERS,[]),e.commit(m.RT.MUTATIONS.UPDATE_USERS_PAGINATION,{})},[m.RT.ACTIONS.GET_USER](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.RT.MUTATIONS.UPDATE_USERS_LOADING,!0),r.Z.get(`users/${t}`).then((t=>{"success"===t.data.status?e.commit(m.RT.MUTATIONS.UPDATE_USER,t.data.data.users[0]):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t))).finally((()=>e.commit(m.RT.MUTATIONS.UPDATE_USERS_LOADING,!1)))},[m.RT.ACTIONS.GET_USERS](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.RT.MUTATIONS.UPDATE_USERS_LOADING,!0),r.Z.get("users",{params:t}).then((t=>{"success"===t.data.status?(e.commit(m.RT.MUTATIONS.UPDATE_USERS,t.data.data.users),e.commit(m.RT.MUTATIONS.UPDATE_USERS_PAGINATION,t.data.pagination)):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t))).finally((()=>e.commit(m.RT.MUTATIONS.UPDATE_USERS_LOADING,!1)))},[m.RT.ACTIONS.UPDATE_USER](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.RT.MUTATIONS.UPDATE_IS_SUCCESS,!1);const n={};void 0!==t.admin&&(n.admin=t.admin),t.resetPassword&&(n.reset_password=t.resetPassword),t.activate&&(n.activate=t.activate),void 0!==t.new_email&&(n.new_email=t.new_email),r.Z.patch(`users/${t.username}`,n).then((n=>{"success"===n.data.status?(e.commit(m.RT.MUTATIONS.UPDATE_USER_IN_USERS,n.data.data.users[0]),(t.resetPassword||t.new_email)&&e.commit(m.RT.MUTATIONS.UPDATE_IS_SUCCESS,!0),(t.activate||t.new_email)&&e.commit(m.RT.MUTATIONS.UPDATE_USER,n.data.data.users[0])):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t))).finally((()=>e.commit(m.RT.MUTATIONS.UPDATE_USERS_LOADING,!1)))},[m.RT.ACTIONS.DELETE_USER_ACCOUNT](e,t){S(e,{username:t.username,fromAdmin:!0})}},{locale:E}=u.Z.global,p=e=>{localStorage.removeItem("authToken"),e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.gu.MUTATIONS.EMPTY_USER_STATS),e.commit(m.YN.MUTATIONS.CLEAR_AUTH_USER_TOKEN),e.commit(m.RT.MUTATIONS.UPDATE_USERS,[]),e.commit(m.aX.MUTATIONS.EMPTY_WORKOUTS),e.commit(m.aX.MUTATIONS.EMPTY_WORKOUT),d.Z.push("/login")},T={[m.YN.ACTIONS.CHECK_AUTH_USER](e){window.localStorage.authToken&&!e.getters[m.YN.GETTERS.IS_AUTHENTICATED]&&(e.commit(m.YN.MUTATIONS.UPDATE_AUTH_TOKEN,window.localStorage.authToken),e.dispatch(m.YN.ACTIONS.GET_USER_PROFILE))},[m.YN.ACTIONS.CONFIRM_ACCOUNT](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),c.post("auth/account/confirm",{token:t.token}).then((t=>{if("success"===t.data.status){const n=t.data.auth_token;window.localStorage.setItem("authToken",n),e.commit(m.YN.MUTATIONS.UPDATE_AUTH_TOKEN,n),e.dispatch(m.YN.ACTIONS.GET_USER_PROFILE).then((()=>d.Z.push("/")))}else(0,i.S)(e,null)})).catch((t=>{(0,i.S)(e,t)}))},[m.YN.ACTIONS.CONFIRM_EMAIL](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.YN.MUTATIONS.UPDATE_IS_SUCCESS,!1),c.post("/auth/email/update",{token:t.token}).then((n=>{"success"===n.data.status?(e.commit(m.YN.MUTATIONS.UPDATE_IS_SUCCESS,!0),t.refreshUser&&e.dispatch(m.YN.ACTIONS.GET_USER_PROFILE).then((()=>d.Z.push("/profile/edit/account"))),d.Z.push("/profile/edit/account")):(0,i.S)(e,null)})).catch((t=>{(0,i.S)(e,t)}))},[m.YN.ACTIONS.GET_USER_PROFILE](e){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),r.Z.get("auth/profile").then((t=>{"success"===t.data.status?(e.commit(m.YN.MUTATIONS.UPDATE_AUTH_USER_PROFILE,t.data.data),t.data.data.language&&(e.commit(m.SY.MUTATIONS.UPDATE_LANG,t.data.data.language),E.value=t.data.data.language),e.dispatch(m.O8.ACTIONS.GET_SPORTS)):((0,i.S)(e,null),p(e))})).catch((t=>{(0,i.S)(e,t),p(e)}))},[m.YN.ACTIONS.LOGIN_OR_REGISTER](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.YN.MUTATIONS.UPDATE_IS_REGISTRATION_SUCCESS,!1),c.post(`/auth/${t.actionType}`,t.formData).then((n=>{if("success"===n.data.status)if("login"===t.actionType){const a=n.data.auth_token;window.localStorage.setItem("authToken",a),e.commit(m.YN.MUTATIONS.UPDATE_AUTH_TOKEN,a),e.dispatch(m.YN.ACTIONS.GET_USER_PROFILE).then((()=>d.Z.push("string"===typeof t.redirectUrl?t.redirectUrl:"/")))}else d.Z.push("/login").then((()=>e.commit(m.YN.MUTATIONS.UPDATE_IS_REGISTRATION_SUCCESS,!0)));else(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t)))},[m.YN.ACTIONS.LOGOUT](e){p(e)},[m.YN.ACTIONS.UPDATE_USER_PROFILE](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!0),r.Z.post("auth/profile/edit",t).then((t=>{"success"===t.data.status?(e.commit(m.YN.MUTATIONS.UPDATE_AUTH_USER_PROFILE,t.data.data),d.Z.push("/profile")):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t))).finally((()=>e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!1)))},[m.YN.ACTIONS.UPDATE_USER_ACCOUNT](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!0),e.commit(m.YN.MUTATIONS.UPDATE_IS_SUCCESS,!1),r.Z.patch("auth/profile/edit/account",t).then((t=>{"success"===t.data.status?(e.commit(m.YN.MUTATIONS.UPDATE_AUTH_USER_PROFILE,t.data.data),e.commit(m.YN.MUTATIONS.UPDATE_IS_SUCCESS,!0)):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t))).finally((()=>e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!1)))},[m.YN.ACTIONS.UPDATE_USER_PREFERENCES](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!0),r.Z.post("auth/profile/edit/preferences",t).then((t=>{"success"===t.data.status?(e.commit(m.YN.MUTATIONS.UPDATE_AUTH_USER_PROFILE,t.data.data),e.commit(m.SY.MUTATIONS.UPDATE_LANG,t.data.data.language),E.value=t.data.data.language,d.Z.push("/profile/preferences")):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t))).finally((()=>e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!1)))},[m.YN.ACTIONS.RESET_USER_SPORT_PREFERENCES](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!0),r.Z["delete"](`auth/profile/reset/sports/${t}`).then((t=>{204===t.status?e.dispatch(m.O8.ACTIONS.GET_SPORTS):(0,i.S)(e,null)})).catch((t=>{(0,i.S)(e,t),e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!1)}))},[m.YN.ACTIONS.UPDATE_USER_SPORT_PREFERENCES](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!0),r.Z.post("auth/profile/edit/sports",t).then((t=>{"success"===t.data.status?e.dispatch(m.O8.ACTIONS.GET_SPORTS):(0,i.S)(e,null)})).catch((t=>{(0,i.S)(e,t),e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!1)}))},[m.YN.ACTIONS.UPDATE_USER_PICTURE](e,t){if(e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!0),!t.picture)throw new Error("No file part");const n=new FormData;n.append("file",t.picture),r.Z.post("auth/picture",n,{headers:{"content-type":"multipart/form-data"}}).then((t=>{"success"===t.data.status?e.dispatch(m.YN.ACTIONS.GET_USER_PROFILE).then((()=>d.Z.push("/profile"))):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t))).finally((()=>e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!1)))},[m.YN.ACTIONS.DELETE_ACCOUNT](e,t){S(e,t)},[m.YN.ACTIONS.DELETE_PICTURE](e){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!0),r.Z["delete"]("auth/picture").then((t=>{204===t.status?e.dispatch(m.YN.ACTIONS.GET_USER_PROFILE).then((()=>d.Z.push("/profile"))):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t))).finally((()=>e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!1)))},[m.YN.ACTIONS.SEND_PASSWORD_RESET_REQUEST](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),c.post("auth/password/reset-request",t).then((t=>{"success"===t.data.status?d.Z.push("/password-reset/sent"):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t)))},[m.YN.ACTIONS.RESEND_ACCOUNT_CONFIRMATION_EMAIL](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),c.post("auth/account/resend-confirmation",t).then((t=>{"success"===t.data.status?d.Z.push("/account-confirmation/email-sent"):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t)))},[m.YN.ACTIONS.RESET_USER_PASSWORD](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),c.post("auth/password/update",t).then((t=>{"success"===t.data.status?d.Z.push("/password-reset/password-updated"):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t)))}},A={[m.YN.GETTERS.AUTH_TOKEN]:e=>e.authToken,[m.YN.GETTERS.AUTH_USER_PROFILE]:e=>e.authUserProfile,[m.YN.GETTERS.IS_AUTHENTICATED]:e=>null!==e.authToken,[m.YN.GETTERS.IS_ADMIN]:e=>e.authUserProfile&&e.authUserProfile.admin,[m.YN.GETTERS.IS_REGISTRATION_SUCCESS]:e=>e.isRegistrationSuccess,[m.YN.GETTERS.IS_SUCCESS]:e=>e.isSuccess,[m.YN.GETTERS.USER_LOADING]:e=>e.loading},U={[m.YN.MUTATIONS.CLEAR_AUTH_USER_TOKEN](e){e.authToken=null,e.authUserProfile={}},[m.YN.MUTATIONS.UPDATE_AUTH_TOKEN](e,t){e.authToken=t},[m.YN.MUTATIONS.UPDATE_AUTH_USER_PROFILE](e,t){e.authUserProfile=t},[m.YN.MUTATIONS.UPDATE_IS_REGISTRATION_SUCCESS](e,t){e.isRegistrationSuccess=t},[m.YN.MUTATIONS.UPDATE_IS_SUCCESS](e,t){e.isSuccess=t},[m.YN.MUTATIONS.UPDATE_USER_LOADING](e,t){e.loading=t}},O={authToken:null,authUserProfile:{},isSuccess:!1,isRegistrationSuccess:!1,loading:!1},R={state:O,actions:T,getters:A,mutations:U};var I=R;const g={[m.SY.ACTIONS.GET_APPLICATION_CONFIG](e){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.SY.MUTATIONS.UPDATE_APPLICATION_LOADING,!0),r.Z.get("config").then((t=>{"success"===t.data.status?e.commit(m.SY.MUTATIONS.UPDATE_APPLICATION_CONFIG,t.data.data):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t))).finally((()=>e.commit(m.SY.MUTATIONS.UPDATE_APPLICATION_LOADING,!1)))},[m.SY.ACTIONS.GET_APPLICATION_STATS](e){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),r.Z.get("stats/all").then((t=>{"success"===t.data.status?e.commit(m.SY.MUTATIONS.UPDATE_APPLICATION_STATS,t.data.data):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t)))},[m.SY.ACTIONS.UPDATE_APPLICATION_CONFIG](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),r.Z.patch("config",t).then((t=>{"success"===t.data.status?(e.commit(m.SY.MUTATIONS.UPDATE_APPLICATION_CONFIG,t.data.data),d.Z.push("/admin/application")):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t)))}},w={[m.SY.GETTERS.APP_CONFIG]:e=>e.application.config,[m.SY.GETTERS.APP_LOADING]:e=>e.appLoading,[m.SY.GETTERS.APP_STATS]:e=>e.application.statistics,[m.SY.GETTERS.ERROR_MESSAGES]:e=>e.errorMessages,[m.SY.GETTERS.LANGUAGE]:e=>e.language,[m.SY.GETTERS.LOCALE]:e=>e.locale};var v=n(6287);const f={[m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES](e){e.errorMessages=null},[m.SY.MUTATIONS.SET_ERROR_MESSAGES](e,t){e.errorMessages=t},[m.SY.MUTATIONS.UPDATE_APPLICATION_CONFIG](e,t){e.application.config=t},[m.SY.MUTATIONS.UPDATE_APPLICATION_LOADING](e,t){e.appLoading=t},[m.SY.MUTATIONS.UPDATE_APPLICATION_STATS](e,t){e.application.statistics=t},[m.SY.MUTATIONS.UPDATE_LANG](e,t){e.language=t,e.locale=v.v1[t]}};var N=n(5826);const h={root:!0,language:"en",locale:N.Z,errorMessages:null,application:{statistics:{sports:0,uploads_dir_size:0,users:0,workouts:0}},appLoading:!1},C={[m.O8.ACTIONS.GET_SPORTS](e){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),r.Z.get("sports").then((t=>{"success"===t.data.status?(e.commit(m.O8.MUTATIONS.SET_SPORTS,t.data.data.sports),e.commit(m.YN.MUTATIONS.UPDATE_USER_LOADING,!1)):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t)))},[m.O8.ACTIONS.UPDATE_SPORTS](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),r.Z.patch(`sports/${t.id}`,{is_active:t.isActive}).then((t=>{"success"===t.data.status?e.dispatch(m.O8.ACTIONS.GET_SPORTS):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t)))}},D={[m.O8.GETTERS.SPORTS]:e=>e.sports},k={[m.O8.MUTATIONS.SET_SPORTS](e,t){e.sports=t}},z={sports:[]},P={state:z,actions:C,getters:D,mutations:k};var M=P;const y={[m.gu.ACTIONS.GET_USER_STATS](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),r.Z.get(`stats/${t.username}/${t.filterType}`,{params:t.params}).then((t=>{"success"===t.data.status?e.commit(m.gu.MUTATIONS.UPDATE_USER_STATS,t.data.data.statistics):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t)))}},b={[m.gu.GETTERS.USER_STATS]:e=>e.statistics},L={[m.gu.MUTATIONS.UPDATE_USER_STATS](e,t){e.statistics=t},[m.gu.MUTATIONS.EMPTY_USER_STATS](e){e.statistics={}}},G={statistics:{}},F={state:G,actions:y,getters:b,mutations:L};var W=F;const Y={[m.RT.GETTERS.USER]:e=>e.user,[m.RT.GETTERS.USERS]:e=>e.users,[m.RT.GETTERS.USERS_IS_SUCCESS]:e=>e.isSuccess,[m.RT.GETTERS.USERS_LOADING]:e=>e.loading,[m.RT.GETTERS.USERS_PAGINATION]:e=>e.pagination},x={[m.RT.MUTATIONS.UPDATE_USER](e,t){e.user=t},[m.RT.MUTATIONS.UPDATE_USER_IN_USERS](e,t){e.users=e.users.map((e=>e.username===t.username?t:e))},[m.RT.MUTATIONS.UPDATE_USERS](e,t){e.users=t},[m.RT.MUTATIONS.UPDATE_USERS_LOADING](e,t){e.loading=t},[m.RT.MUTATIONS.UPDATE_USERS_PAGINATION](e,t){e.pagination=t},[m.RT.MUTATIONS.UPDATE_IS_SUCCESS](e,t){e.isSuccess=t}},$={user:{},users:[],loading:!1,isSuccess:!1,pagination:{}},Z={state:$,actions:_,getters:Y,mutations:x};var K=Z,B=n(52);const H=(e,t,n)=>{e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),r.Z.get("workouts",{params:t}).then((t=>{"success"===t.data.status?(e.commit(m.aX.MUTATIONS[n],t.data.data.workouts),n===B.CW.SET_USER_WORKOUTS&&e.commit(m.aX.MUTATIONS.SET_WORKOUTS_PAGINATION,t.data.pagination)):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t)))},q={[m.aX.ACTIONS.GET_CALENDAR_WORKOUTS](e,t){e.commit(m.aX.MUTATIONS.EMPTY_CALENDAR_WORKOUTS),H(e,t,B.CW.SET_CALENDAR_WORKOUTS)},[m.aX.ACTIONS.GET_USER_WORKOUTS](e,t){H(e,t,B.CW.SET_USER_WORKOUTS)},[m.aX.ACTIONS.GET_TIMELINE_WORKOUTS](e,t){H(e,t,B.CW.SET_TIMELINE_WORKOUTS)},[m.aX.ACTIONS.GET_MORE_TIMELINE_WORKOUTS](e,t){H(e,t,B.CW.ADD_TIMELINE_WORKOUTS)},[m.aX.ACTIONS.GET_WORKOUT_DATA](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.aX.MUTATIONS.SET_WORKOUT_LOADING,!0);const n=t.segmentId?`/segment/${t.segmentId}`:"";r.Z.get(`workouts/${t.workoutId}`).then((a=>{const s=a.data.data.workouts[0];if("success"===a.data.status){if(t.segmentId&&(0===s.segments.length||!s.segments[+t.segmentId-1]))throw new Error("WORKOUT_NOT_FOUND");e.commit(m.aX.MUTATIONS.SET_WORKOUT,a.data.data.workouts[0]),a.data.data.workouts[0].with_gpx&&(r.Z.get(`workouts/${t.workoutId}/chart_data${n}`).then((t=>{"success"===t.data.status&&e.commit(m.aX.MUTATIONS.SET_WORKOUT_CHART_DATA,t.data.data.chart_data)})),r.Z.get(`workouts/${t.workoutId}/gpx${n}`).then((t=>{"success"===t.data.status&&e.commit(m.aX.MUTATIONS.SET_WORKOUT_GPX,t.data.data.gpx)})))}else e.commit(m.aX.MUTATIONS.EMPTY_WORKOUT),(0,i.S)(e,null)})).catch((t=>{e.commit(m.aX.MUTATIONS.EMPTY_WORKOUT),(0,i.S)(e,t)})).finally((()=>e.commit(m.aX.MUTATIONS.SET_WORKOUT_LOADING,!1)))},[m.aX.ACTIONS.DELETE_WORKOUT](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.aX.MUTATIONS.SET_WORKOUT_LOADING,!0),r.Z["delete"](`workouts/${t.workoutId}`).then((()=>{e.commit(m.aX.MUTATIONS.EMPTY_WORKOUT),e.dispatch(m.YN.ACTIONS.GET_USER_PROFILE),d.Z.push("/")})).catch((t=>{(0,i.S)(e,t)})).finally((()=>e.commit(m.aX.MUTATIONS.SET_WORKOUT_LOADING,!1)))},[m.aX.ACTIONS.EDIT_WORKOUT](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.aX.MUTATIONS.SET_WORKOUT_LOADING,!0),r.Z.patch(`workouts/${t.workoutId}`,t.data).then((()=>{e.dispatch(m.YN.ACTIONS.GET_USER_PROFILE),e.dispatch(m.aX.ACTIONS.GET_WORKOUT_DATA,{workoutId:t.workoutId}).then((()=>{d.Z.push({name:"Workout",params:{workoutId:t.workoutId}})}))})).catch((t=>{(0,i.S)(e,t)})).finally((()=>e.commit(m.aX.MUTATIONS.SET_WORKOUT_LOADING,!1)))},[m.aX.ACTIONS.ADD_WORKOUT](e,t){if(e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.aX.MUTATIONS.SET_WORKOUT_LOADING,!0),!t.file)throw new Error("No file part");const n=new FormData;n.append("file",t.file),n.append("data",`{"sport_id": ${t.sport_id}, "notes": "${t.notes}"}`),r.Z.post("workouts",n,{headers:{"content-type":"multipart/form-data"}}).then((t=>{if("created"===t.data.status){e.dispatch(m.YN.ACTIONS.GET_USER_PROFILE);const n=t.data.data.workouts[0];d.Z.push(1===t.data.data.workouts.length?`/workouts/${n.id}`:"/")}})).catch((t=>{(0,i.S)(e,t)})).finally((()=>e.commit(m.aX.MUTATIONS.SET_WORKOUT_LOADING,!1)))},[m.aX.ACTIONS.ADD_WORKOUT_WITHOUT_GPX](e,t){e.commit(m.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(m.aX.MUTATIONS.SET_WORKOUT_LOADING,!0),r.Z.post("workouts/no_gpx",t).then((t=>{if("created"===t.data.status){e.dispatch(m.YN.ACTIONS.GET_USER_PROFILE);const n=t.data.data.workouts[0];d.Z.push(`/workouts/${n.id}`)}})).catch((t=>{(0,i.S)(e,t)})).finally((()=>e.commit(m.aX.MUTATIONS.SET_WORKOUT_LOADING,!1)))}},j={[m.aX.GETTERS.CALENDAR_WORKOUTS]:e=>e.calendar_workouts,[m.aX.GETTERS.TIMELINE_WORKOUTS]:e=>e.timeline_workouts,[m.aX.GETTERS.USER_WORKOUTS]:e=>e.user_workouts,[m.aX.GETTERS.WORKOUT_DATA]:e=>e.workoutData,[m.aX.GETTERS.WORKOUTS_PAGINATION]:e=>e.pagination},V={[m.aX.MUTATIONS.ADD_TIMELINE_WORKOUTS](e,t){e.timeline_workouts=e.timeline_workouts.concat(t)},[m.aX.MUTATIONS.SET_CALENDAR_WORKOUTS](e,t){e.calendar_workouts=t},[m.aX.MUTATIONS.SET_TIMELINE_WORKOUTS](e,t){e.timeline_workouts=t},[m.aX.MUTATIONS.SET_USER_WORKOUTS](e,t){e.user_workouts=t},[m.aX.MUTATIONS.SET_WORKOUTS_PAGINATION](e,t){e.pagination=t},[m.aX.MUTATIONS.SET_WORKOUT](e,t){e.workoutData.workout=t},[m.aX.MUTATIONS.SET_WORKOUT_CHART_DATA](e,t){e.workoutData.chartData=t},[m.aX.MUTATIONS.SET_WORKOUT_GPX](e,t){e.workoutData.gpx=t},[m.aX.MUTATIONS.SET_WORKOUT_LOADING](e,t){e.workoutData.loading=t},[m.aX.MUTATIONS.EMPTY_CALENDAR_WORKOUTS](e){e.calendar_workouts=[]},[m.aX.MUTATIONS.EMPTY_WORKOUTS](e){e.calendar_workouts=[],e.user_workouts=[],e.timeline_workouts=[]},[m.aX.MUTATIONS.EMPTY_WORKOUT](e){e.workoutData={gpx:"",loading:!1,workout:{},chartData:[]}}},X={calendar_workouts:[],timeline_workouts:[],pagination:{},user_workouts:[],workoutData:{gpx:"",loading:!1,workout:{},chartData:[]}},J={state:X,actions:q,getters:j,mutations:V};var Q=J;const ee={authUserModule:I,sportsModule:M,statsModule:W,usersModule:K,workoutsModule:Q},te={state:h,actions:g,getters:w,mutations:f,modules:ee};var ne=te;const ae=(0,a.MT)(ne);var re=ae},52:function(e,t,n){"use strict";var a,r,s;n.d(t,{CW:function(){return s},JP:function(){return r},tW:function(){return a}}),function(e){e["ADD_WORKOUT"]="ADD_WORKOUT",e["ADD_WORKOUT_WITHOUT_GPX"]="ADD_WORKOUT_WITHOUT_GPX",e["DELETE_WORKOUT"]="DELETE_WORKOUT",e["EDIT_WORKOUT"]="EDIT_WORKOUT",e["GET_CALENDAR_WORKOUTS"]="GET_CALENDAR_WORKOUTS",e["GET_USER_WORKOUTS"]="GET_USER_WORKOUTS",e["GET_TIMELINE_WORKOUTS"]="GET_TIMELINE_WORKOUTS",e["GET_MORE_TIMELINE_WORKOUTS"]="GET_MORE_TIMELINE_WORKOUTS",e["GET_WORKOUT_DATA"]="GET_WORKOUT_DATA"}(a||(a={})),function(e){e["CALENDAR_WORKOUTS"]="CALENDAR_WORKOUTS",e["TIMELINE_WORKOUTS"]="TIMELINE_WORKOUTS",e["USER_WORKOUTS"]="USER_WORKOUTS",e["WORKOUT_DATA"]="WORKOUT_DATA",e["WORKOUTS_PAGINATION"]="WORKOUTS_PAGINATION"}(r||(r={})),function(e){e["ADD_TIMELINE_WORKOUTS"]="ADD_TIMELINE_WORKOUTS",e["EMPTY_WORKOUTS"]="EMPTY_WORKOUTS",e["EMPTY_CALENDAR_WORKOUTS"]="EMPTY_CALENDAR_WORKOUTS",e["EMPTY_WORKOUT"]="EMPTY_WORKOUT",e["SET_CALENDAR_WORKOUTS"]="SET_CALENDAR_WORKOUTS",e["SET_TIMELINE_WORKOUTS"]="SET_TIMELINE_WORKOUTS",e["SET_USER_WORKOUTS"]="SET_USER_WORKOUTS",e["SET_WORKOUT"]="SET_WORKOUT",e["SET_WORKOUT_GPX"]="SET_WORKOUT_GPX",e["SET_WORKOUT_CHART_DATA"]="SET_WORKOUT_CHART_DATA",e["SET_WORKOUT_LOADING"]="SET_WORKOUT_LOADING",e["SET_WORKOUTS_PAGINATION"]="SET_WORKOUTS_PAGINATION"}(s||(s={}))},9917:function(e,t,n){"use strict";n.d(t,{o:function(){return r}});var a=n(3907);function r(){return(0,a.oR)()}},2766:function(e,t,n){"use strict";n.d(t,{Ne:function(){return c},fS:function(){return a},lM:function(){return d},pm:function(){return l}});n(6699);const a=["asc","desc"],r=1,s=10,o=(e,t)=>e&&"string"===typeof e&&+e>0?+e:t,i=(e,t,n)=>e&&"string"===typeof e&&t.includes(e)?e:n,l=(e,t,n,l)=>{const c=l||{},u=c.defaultSort||"asc",d={};return d.page=o(e.page,r),d.per_page=o(e.per_page,s),d.order=i(e.order,a,u),d.order_by=i(e.order_by,t,n),"string"===typeof e.q?d.q=e.q:delete d.q,d},c=["from","to","ave_speed_from","ave_speed_to","max_speed_from","max_speed_to","distance_from","distance_to","duration_from","duration_to","sport_id"],u=(e,t=1)=>Array.from({length:e-t+1},((e,n)=>t+n)),d=(e,t)=>{if(e<0)return[];if(e<9)return u(e);let n=[1,2];return t<4?n=n.concat([3,4,5]):t<6?n=n.concat(u(t+2,3)):(n=n.concat(["..."]),t=e-2&&n[n.length-1]{switch(e){case"week":return(0,a.Z)(t,{weekStartsOn:n?1:0});case"year":return(0,r.Z)(t);case"month":return(0,s.Z)(t);default:throw new Error(`Invalid duration, expected: "week", "month", "year", got: "${e}"`)}},_=(e,t)=>{switch(e){case"week":return(0,o.Z)(t,7);case"year":return(0,i.Z)(t,1);case"month":return(0,l.Z)(t,1);default:throw new Error(`Invalid duration, expected: "week", "month", "year", got: "${e}"`)}},E=(e,t)=>(0,m.utcToZonedTime)(new Date(e),t),p=(e,t)=>{const n=(0,s.Z)(e),r=(0,c.Z)(e),o=t?1:0;return{start:(0,a.Z)(n,{weekStartsOn:o}),end:(0,u.Z)(r,{weekStartsOn:o})}},T=(e,t=null,n=null)=>(t||(t="yyyy/MM/dd"),n||(n="HH:mm"),{workout_date:(0,d.Z)(e,t),workout_time:(0,d.Z)(e,n)})},8966:function(e,t,n){"use strict";n.d(t,{Z:function(){return r},j:function(){return s}});const a=["bytes","KB","MB","GB","TB"],r=(e,t=!0)=>{const n=Math.floor(Math.log(e)/Math.log(1024));if(!e)return t?"0 bytes":{size:"0",suffix:"bytes"};const r=(e/Math.pow(1024,n)).toFixed(1),s=a[n];return t?`${r}${s}`:{size:r,suffix:s}},s=e=>{const t=e/1048576;return+t.toFixed(2)}},2024:function(e,t,n){"use strict";n.d(t,{S:function(){return s},k:function(){return r}});n(6699);var a=n(8602);const r=()=>"/api/",s=(e,t,n="UNKNOWN")=>{const r=t?t.response?413===t.response.status?"file size is greater than the allowed size":t.response.data.message?t.response.data.message:n:t.message?t.message:n:n;e.commit(a.SY.MUTATIONS.SET_ERROR_MESSAGES,r.includes("\n")?r.split("\n").filter((e=>""!==e)).map((e=>`api.ERROR.${e}`)):`api.ERROR.${r}`)}},6287:function(e,t,n){"use strict";n.d(t,{mT:function(){return c},v1:function(){return o},zK:function(){return i}});var a=n(5826),r=n(5830),s=n(2540);const o={en:a.Z,fr:r.Z},i={en:"English",fr:"Français"},{availableLocales:l}=s.Z.global,c=l.map((e=>({label:i[e],value:e})))},631:function(e,t,n){"use strict";n.d(t,{CM:function(){return l},PA:function(){return i},Yx:function(){return r},Zo:function(){return a},xH:function(){return o}});n(6699);const a={"Cycling (Sport)":"#4c9792","Cycling (Transport)":"#88af98",Hiking:"#bb757c","Mountain Biking":"#d4b371","Mountain Biking (Electric)":"#fc9d6f",Rowing:"#fcce72",Running:"#835b83","Skiing (Alpine)":"#67a4bd","Skiing (Cross Country)":"#9498d0",Snowshoes:"#5780a8",Trail:"#09a98a",Walking:"#838383"},r=e=>{const t={};return e.map((e=>t[e.id]=e.color?e.color:a[e.label])),t},s=(e,t)=>{const n=e.translatedLabel.toLowerCase(),a=t.translatedLabel.toLowerCase();return n>a?1:ne.filter((e=>"all"===n||(a.includes(e.id)||e[n]))).map((e=>({...e,translatedLabel:t(`sports.${e.label}.LABEL`)}))).sort(s),i=(e,t)=>t.filter((t=>t.id===e.sport_id)).map((e=>e.label))[0],l=(e,t)=>t.filter((t=>t.id===e.sport_id)).map((e=>e.color))[0]},9318:function(e,t,n){"use strict";n.d(t,{FN:function(){return N},aZ:function(){return f},v1:function(){return v}});n(6699);var a=n(4850),r=n(8148),s=n(9319),o=n(584),i=n(4559),l=n(3703),c=n(876),u=n(7090),d=n(4135),m=n(1593),S=n(7982),_=n(3500),E=n(1640),p=n(6558),T=n(631),A=n(3649);const U={week:{api:"yyyy-MM-dd",chart:"dd/MM/yyyy"},month:{api:"yyyy-MM",chart:"MM/yyyy"},year:{api:"yyyy",chart:"yyyy"}},O=["average_speed","nb_workouts","total_duration","total_distance","total_ascent","total_descent"],R=(e,t)=>{const n=[];for(let a=(0,p.Nh)(e.duration,e.start,t);a<=e.end;a=(0,p.xA)(e.duration,a))n.push(a);return n},I=(e,t,n=!1)=>{const a={label:e,backgroundColor:[t],data:[]};return n&&(a.type="line",a.borderColor=[t],a.spanGaps=!0),a},g=e=>{const t={average_speed:[],nb_workouts:[],total_distance:[],total_duration:[],total_ascent:[],total_descent:[]};return e.map((e=>{const n=e.color?e.color:T.Zo[e.label];t.average_speed.push(I(e.label,n,!0)),t.nb_workouts.push(I(e.label,n)),t.total_distance.push(I(e.label,n)),t.total_duration.push(I(e.label,n)),t.total_ascent.push(I(e.label,n)),t.total_descent.push(I(e.label,n))})),t},w=(e,t,n)=>{switch(e){case"average_speed":case"total_distance":case"total_ascent":case"total_descent":return(0,A.f3)(["average_speed","total_distance"].includes(e)?"km":"m",t,n);default:case"nb_workouts":case"total_duration":return t}},v=(e,t,n,r,s,o)=>{const i=R(e,t),l=U[e.duration],c=n.filter((e=>r.includes(e.id))),u=[],d=g(c),m={};return c.map((e=>m[e.label]=e.id)),i.map((e=>{const t=(0,a.Z)(e,l.api),n=(0,a.Z)(e,l.chart);u.push(n),O.map((e=>{d[e].map((n=>{n.data.push(s!=={}&&t in s&&m[n.label]in s[t]?w(e,s[t][m[n.label]][e],o):"average_speed"===e?null:0)}))}))})),{labels:u,datasets:d}},f=(e,t,n)=>{const a=n?1:0,m="year"===t?(0,r.Z)((0,s.Z)(e,9)):"week"===t?(0,o.Z)((0,i.Z)(e,2),{weekStartsOn:a}):(0,l.Z)((0,i.Z)(e,11)),S="year"===t?(0,c.Z)(e):"week"===t?(0,u.Z)(e,{weekStartsOn:a}):(0,d.Z)(e);return{duration:t,end:S,start:m}},N=(e,t,n)=>{const{duration:a,start:p,end:T}=e,A=n?1:0;return{duration:a,end:"year"===a?(0,c.Z)(t?(0,s.Z)(T,1):(0,m.Z)(T,1)):"week"===a?(0,u.Z)(t?(0,S.Z)(T,1):(0,_.Z)(T,1),{weekStartsOn:A}):(0,d.Z)(t?(0,i.Z)(T,1):(0,E.Z)(T,1)),start:"year"===a?(0,r.Z)(t?(0,s.Z)(p,1):(0,m.Z)(p,1)):"week"===a?(0,o.Z)(t?(0,S.Z)(p,1):(0,_.Z)(p,1),{weekStartsOn:A}):(0,l.Z)(t?(0,i.Z)(p,1):(0,E.Z)(p,1))}}},3649:function(e,t,n){"use strict";n.d(t,{Dl:function(){return a},f3:function(){return o},sC:function(){return s}});const a={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"}},r={metric:{imperial:3.280839895,metric:1},imperial:{metric:1/3.280839895,imperial:1}},s=(e,t,n,s=3)=>{const o=a[t],i=a[n],l=e*o.multiplier*r[o.system][i.system]/i.multiplier;return null!==s?parseFloat(l.toFixed(s)):l},o=(e,t,n)=>{const r=n?a[e].defaultTarget:e;return n?s(t,e,r,2):t}},3768:function(e,t,n){"use strict";n.d(t,{BN:function(){return s},EX:function(){return r},eR:function(){return o}});var a=n(3649);const r=(e,t,n)=>{const r={speed:{label:t("workouts.SPEED"),backgroundColor:["#FFFFFF"],borderColor:["#8884d8"],borderWidth:2,data:[],yAxisID:"ySpeed"},elevation:{label:t("workouts.ELEVATION"),backgroundColor:["#e5e5e5"],borderColor:["#cccccc"],borderWidth:1,fill:!0,data:[],yAxisID:"yElevation"}},s=[],o=[],i=[];return e.map((e=>{s.push(e.distance),o.push(e.duration),r.speed.data.push((0,a.f3)("km",e.speed,n)),r.elevation.data.push((0,a.f3)("m",e.elevation,n)),i.push({latitude:e.latitude,longitude:e.longitude})})),{distance_labels:s,duration_labels:o,datasets:r,coordinates:i}},s=e=>{const t=e.length;if(0===t)return{};const n={};return e.map((e=>{n[e.sport_id]||(n[e.sport_id]={count:0,percentage:0}),n[e.sport_id].count+=1,n[e.sport_id].percentage=n[e.sport_id].count/t})),n},o={order:"desc",order_by:"workout_date"}},2531:function(e,t,n){"use strict";n.d(t,{Z:function(){return d}});var a=n(6252);const r={class:"card"},s={class:"card-title"},o={class:"card-content"};function i(e,t){return(0,a.wg)(),(0,a.iD)("div",r,[(0,a._)("div",s,[(0,a.WI)(e.$slots,"title")]),(0,a._)("div",o,[(0,a.WI)(e.$slots,"content")])])}var l=n(3744);const c={},u=(0,l.Z)(c,[["render",i]]);var d=u},8626:function(e,t,n){"use strict";n.d(t,{Z:function(){return p}});var a=n(6252),r=n(3577),s=n(2262);const o={class:"table-selects"},i=["value"],l=["value"],c=["value"],u=["value"],d=["value"],m=["value"];var S=(0,a.aZ)({name:"FilterSelects",props:{order_by:null,query:null,sort:null,message:null},emits:["updateSelect"],setup(e,{emit:t}){const n=e,{order_by:S,query:_,sort:E,message:p}=(0,s.BK)(n),T=[10,25,50,100];function A(e){t("updateSelect",e.target.id,e.target.value)}return(e,t)=>((0,a.wg)(),(0,a.iD)("div",o,[(0,a._)("label",null,[(0,a.Uk)((0,r.zw)(e.$t("common.SELECTS.ORDER_BY.LABEL"))+": ",1),(0,a._)("select",{name:"order_by",id:"order_by",value:(0,s.SU)(_).order_by,onChange:A},[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,s.SU)(S),(t=>((0,a.wg)(),(0,a.iD)("option",{value:t,key:t},(0,r.zw)(e.$t(`${(0,s.SU)(p)}.${t.toUpperCase()}`)),9,l)))),128))],40,i)]),(0,a._)("label",null,[(0,a.Uk)((0,r.zw)(e.$t("common.SELECTS.ORDER.LABEL"))+": ",1),(0,a._)("select",{name:"order",id:"order",value:(0,s.SU)(_).order,onChange:A},[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,s.SU)(E),(t=>((0,a.wg)(),(0,a.iD)("option",{value:t,key:t},(0,r.zw)(e.$t(`common.SELECTS.ORDER.${t.toUpperCase()}`)),9,u)))),128))],40,c)]),(0,a._)("label",null,[(0,a.Uk)((0,r.zw)(e.$t("common.SELECTS.PER_PAGE.LABEL"))+": ",1),(0,a._)("select",{name:"per_page",id:"per_page",value:(0,s.SU)(_).per_page,onChange:A},[((0,a.wg)(),(0,a.iD)(a.HY,null,(0,a.Ko)(T,(e=>(0,a._)("option",{value:e,key:e},(0,r.zw)(e),9,m))),64))],40,d)])]))}}),_=n(3744);const E=(0,_.Z)(S,[["__scopeId","data-v-72463173"]]);var p=E},7167:function(e,t,n){"use strict";n.d(t,{Z:function(){return d}});var a=n(6252);const r={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 -51 512 512"},s=(0,a.uE)('',1),o=[s];function i(e,t,n,s,i,l){return(0,a.wg)(),(0,a.iD)("svg",r,o)}var l={name:"ErrorImg"},c=n(3744);const u=(0,c.Z)(l,[["render",i]]);var d=u},8273:function(e,t,n){"use strict";n.d(t,{Z:function(){return _}});var a=n(6252),r=n(2262),s=n(3577);const o={id:"error"},i={class:"error-content"};var l=(0,a.aZ)({name:"Error",props:{title:null,message:null,buttonText:null,path:{default:"/"}},setup(e){const t=e,{buttonText:n,title:l,message:c,path:u}=(0,r.BK)(t);return(e,t)=>((0,a.wg)(),(0,a.iD)("div",o,[(0,a._)("div",i,[(0,a._)("h1",null,(0,s.zw)((0,r.SU)(l)),1),(0,a._)("p",null,(0,s.zw)((0,r.SU)(c)),1),(0,r.SU)(n)?((0,a.wg)(),(0,a.iD)("button",{key:0,onClick:t[0]||(t[0]=t=>e.$router.push((0,r.SU)(u))),class:"upper"},(0,s.zw)((0,r.SU)(n)),1)):(0,a.kq)("",!0)])]))}}),c=n(3744);const u=(0,c.Z)(l,[["__scopeId","data-v-b60bfa80"]]);var d=u,m=(0,a.aZ)({name:"NotFound",props:{target:{default:"PAGE"}},setup(e){const t=e,{target:n}=(0,r.BK)(t);return(e,t)=>((0,a.wg)(),(0,a.j4)(d,{title:"404",message:e.$t(`error.NOT_FOUND.${(0,r.SU)(n)}`),"button-text":e.$t("common.HOME")},null,8,["message","button-text"]))}});const S=m;var _=S},6514:function(e,t,n){"use strict";n.d(t,{Z:function(){return p}});var a=n(6252),r=n(3577),s=n(2262),o=n(2766);const i=e=>((0,a.dD)("data-v-f38ea1b8"),e=e(),(0,a.Cn)(),e),l={class:"pagination-center","aria-label":"navigation"},c={class:"pagination"},u=i((()=>(0,a._)("i",{class:"fa fa-chevron-left","aria-hidden":"true"},null,-1))),d={key:0},m=i((()=>(0,a._)("i",{class:"fa fa-chevron-right","aria-hidden":"true"},null,-1)));var S=(0,a.aZ)({name:"Pagination",props:{pagination:null,path:null,query:null},setup(e){const t=e,{pagination:n,path:i,query:S}=(0,s.BK)(t);function _(e,t){const n=Object.assign({},S.value);return n.page=t?e+t:e,n}return(e,t)=>{const S=(0,a.up)("router-link");return(0,a.wg)(),(0,a.iD)("nav",l,[(0,a._)("ul",c,[(0,a._)("li",{class:(0,r.C_)(["page-prev",{disabled:!(0,s.SU)(n).has_prev}])},[(0,a.Wm)(S,{class:"page-link",to:{path:(0,s.SU)(i),query:_((0,s.SU)(n).page,-1)},disabled:!(0,s.SU)(n).has_prev},{default:(0,a.w5)((({navigate:t})=>[(0,a.WI)(e.$slots,"default",{onClick:e=>(0,s.SU)(n).has_next?t:null},(()=>[(0,a.Uk)((0,r.zw)(e.$t("api.PAGINATION.PREVIOUS"))+" ",1),u]))])),_:3},8,["to","disabled"])],2),((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,s.SU)(o.lM)((0,s.SU)(n).pages,(0,s.SU)(n).page),(e=>((0,a.wg)(),(0,a.iD)("li",{key:e,class:(0,r.C_)(["page",{active:e===(0,s.SU)(n).page}])},["..."===e?((0,a.wg)(),(0,a.iD)("span",d," ... ")):((0,a.wg)(),(0,a.j4)(S,{key:1,class:"page-link",to:{path:(0,s.SU)(i),query:_(+e)}},{default:(0,a.w5)((()=>[(0,a.Uk)((0,r.zw)(e),1)])),_:2},1032,["to"]))],2)))),128)),(0,a._)("li",{class:(0,r.C_)(["page-next",{disabled:!(0,s.SU)(n).has_next}])},[(0,a.Wm)(S,{class:"page-link",to:{path:(0,s.SU)(i),query:_((0,s.SU)(n).page,1)},disabled:!(0,s.SU)(n).has_next},{default:(0,a.w5)((({navigate:t})=>[(0,a.WI)(e.$slots,"default",{onClick:e=>(0,s.SU)(n).has_next?t:null},(()=>[(0,a.Uk)((0,r.zw)(e.$t("api.PAGINATION.NEXT"))+" ",1),m]))])),_:3},8,["to","disabled"])],2)])])}}}),_=n(3744);const E=(0,_.Z)(S,[["__scopeId","data-v-f38ea1b8"]]);var p=E},2047:function(e,t,n){"use strict";n.d(t,{Z:function(){return C}});var a=n(6252),r=n(2262),s=n(9963),o=n(3577),i=n(3257),l=n(8602),c=n(9917);const u=async e=>{const t=await n.e(881).then(n.bind(n,410)),a=await n.e(881).then(n.bind(n,8288)),r=await n.e(881).then(n.bind(n,6947)),s={en:a,fr:r},o=s[e],l={graphs:t.default.adjacencyGraphs,dictionary:{...t.default.dictionary,...o.default.dictionary}};i.Mu.setOptions(l)},d=e=>{switch(e){case 2:return"AVERAGE";case 3:return"GOOD";case 4:return"STRONG";default:return"WEAK"}},m={class:"password-strength"},S=["value"],_={key:0,class:"password-strength-details"},E={class:"password-strength-value"},p={key:0,class:"info-box"},T={class:"password-feedback"};var A=(0,a.aZ)({name:"PasswordStength",props:{password:null},setup(e){const t=e,{password:n}=(0,r.BK)(t),s=(0,c.o)(),A=(0,a.Fl)((()=>s.getters[l.SY.GETTERS.LANGUAGE])),U=(0,a.Fl)((()=>s.getters[l.YN.GETTERS.IS_SUCCESS])),O=(0,r.iH)(0),R=(0,r.iH)(""),I=(0,r.iH)([]),g=(0,r.iH)("0% 100%");function w(e){let t=(0,i.tu)(e);O.value=t.score,R.value=d(O.value),I.value=t.feedback.suggestions,g.value=100*O.value/4+"% 100%"}return(0,a.wF)((async()=>await u(A.value))),(0,a.YP)((()=>A.value),(async e=>{await u(e)})),(0,a.YP)((()=>n.value),(async e=>{U.value?R.value="":w(e)})),(e,t)=>((0,a.wg)(),(0,a.iD)("div",m,[(0,a._)("input",{class:(0,o.C_)(["password-slider",`strength-${O.value}`]),style:(0,o.j5)({backgroundSize:g.value}),type:"range",value:O.value,min:"0",max:"4",step:"1"},null,14,S),R.value?((0,a.wg)(),(0,a.iD)("div",_,[(0,a._)("span",E,(0,o.zw)(e.$t("user.PASSWORD_STRENGTH.LABEL"))+": "+(0,o.zw)(e.$t(`user.PASSWORD_STRENGTH.${R.value}`)),1),I.value.length>0?((0,a.wg)(),(0,a.iD)("div",p,[(0,a._)("ul",T,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)(I.value,(t=>((0,a.wg)(),(0,a.iD)("li",{key:t},(0,o.zw)(e.$t(`user.PASSWORD_STRENGTH.SUGGESTIONS.${t}`)),1)))),128))])])):(0,a.kq)("",!0)])):(0,a.kq)("",!0)]))}}),U=n(3744);const O=(0,U.Z)(A,[["__scopeId","data-v-79c9693d"]]);var R=O;const I=e=>((0,a.dD)("data-v-5a126514"),e=e(),(0,a.Cn)(),e),g={class:"password-input"},w=["id","disabled","placeholder","required","type"],v={key:0,class:"form-info"},f=I((()=>(0,a._)("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1)));var N=(0,a.aZ)({name:"PasswordInput",props:{checkStrength:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},id:{default:"password"},password:{default:""},placeholder:null,required:{type:Boolean,default:!1}},emits:["updatePassword","passwordError"],setup(e,{emit:t}){const n=e,{checkStrength:i,disabled:l,id:c,password:u,placeholder:d,required:m}=(0,r.BK)(n),S=(0,r.iH)(!1),_=(0,r.iH)("");function E(){S.value=!S.value}function p(e){t("updatePassword",e.target.value)}function T(){t("passwordError")}return(0,a.YP)((()=>u.value),(e=>{""===e&&(_.value="")})),(e,t)=>((0,a.wg)(),(0,a.iD)("div",g,[(0,a.wy)((0,a._)("input",{id:(0,r.SU)(c),disabled:(0,r.SU)(l),placeholder:(0,r.SU)(d),required:(0,r.SU)(m),type:S.value?"text":"password","onUpdate:modelValue":t[0]||(t[0]=e=>_.value=e),minlength:"8",onInput:p,onInvalid:T},null,40,w),[[s.YZ,_.value]]),(0,a._)("div",{class:"show-password",onClick:E},[(0,a.Uk)((0,o.zw)(e.$t(`user.${S.value?"HIDE":"SHOW"}_PASSWORD`))+" ",1),(0,a._)("i",{class:(0,o.C_)(["fa","fa-eye"+(S.value?"-slash":"")]),"aria-hidden":"true"},null,2)]),(0,r.SU)(i)?((0,a.wg)(),(0,a.iD)("div",v,[f,(0,a.Uk)(" "+(0,o.zw)(e.$t("user.PASSWORD_INFO")),1)])):(0,a.kq)("",!0),(0,r.SU)(i)?((0,a.wg)(),(0,a.j4)(R,{key:1,password:_.value},null,8,["password"])):(0,a.kq)("",!0)]))}});const h=(0,U.Z)(N,[["__scopeId","data-v-5a126514"]]);var C=h},2056:function(e,t,n){"use strict";n.d(t,{Z:function(){return u}});var a=n(6252),r=n(3577),s=n(2262),o=n(2024);const i=(0,a._)("div",{class:"map-attribution"},[(0,a._)("span",{class:"map-attribution-text"},"©"),(0,a._)("a",{class:"map-attribution-text",href:"https://www.openstreetmap.org/copyright",target:"_blank",rel:"noopener noreferrer"}," OpenStreetMap ")],-1);var l=(0,a.aZ)({name:"StaticMap",props:{workout:null,displayHover:{type:Boolean,default:!1}},setup(e){const t=e,{displayHover:n}=(0,s.BK)(t),l=`${(0,o.k)()}workouts/map/${t.workout.map}`;return(e,t)=>((0,a.wg)(),(0,a.iD)("div",{class:(0,r.C_)(["static-map",{"display-hover":(0,s.SU)(n)}])},[(0,s.SU)(n)?((0,a.wg)(),(0,a.iD)("img",{key:0,src:l,alt:""})):((0,a.wg)(),(0,a.iD)("div",{key:1,class:"bg-map-image",style:(0,r.j5)({backgroundImage:`url(${l})`})},null,4)),i],2))}});const c=l;var u=c},7402:function(e,t,n){"use strict";n.d(t,{Z:function(){return L}});var a=n(6252),r=n(3577);const s={class:"start-chart"},o={key:0},i={key:1},l={class:"chart-radio"},c=["checked"],u=["checked"],d=["checked"],m={key:0},S=["checked"],_={key:1},E=["checked"],p={key:2},T=["checked"];function A(e,t,n,A,U,O){const R=(0,a.up)("Chart");return(0,a.wg)(),(0,a.iD)("div",s,[e.hideChartIfNoData&&e.emptyStats?((0,a.wg)(),(0,a.iD)("div",o,(0,r.zw)(e.$t("workouts.NO_WORKOUTS")),1)):((0,a.wg)(),(0,a.iD)("div",i,[(0,a._)("div",l,[(0,a._)("label",null,[(0,a._)("input",{type:"radio",name:"total_distance",checked:"total_distance"===e.displayedData,onClick:t[0]||(t[0]=(...t)=>e.updateDisplayData&&e.updateDisplayData(...t))},null,8,c),(0,a.Uk)(" "+(0,r.zw)(e.$t("workouts.DISTANCE")),1)]),(0,a._)("label",null,[(0,a._)("input",{type:"radio",name:"total_duration",checked:"total_duration"===e.displayedData,onClick:t[1]||(t[1]=(...t)=>e.updateDisplayData&&e.updateDisplayData(...t))},null,8,u),(0,a.Uk)(" "+(0,r.zw)(e.$t("workouts.DURATION")),1)]),(0,a._)("label",null,[(0,a._)("input",{type:"radio",name:"nb_workouts",checked:"nb_workouts"===e.displayedData,onClick:t[2]||(t[2]=(...t)=>e.updateDisplayData&&e.updateDisplayData(...t))},null,8,d),(0,a.Uk)(" "+(0,r.zw)(e.$t("workouts.WORKOUT",2)),1)]),e.fullStats?((0,a.wg)(),(0,a.iD)("label",m,[(0,a._)("input",{type:"radio",name:"average_speed",checked:"average_speed"===e.displayedData,onClick:t[3]||(t[3]=(...t)=>e.updateDisplayData&&e.updateDisplayData(...t))},null,8,S),(0,a.Uk)(" "+(0,r.zw)(e.$t("workouts.AVERAGE_SPEED")),1)])):(0,a.kq)("",!0),e.fullStats?((0,a.wg)(),(0,a.iD)("label",_,[(0,a._)("input",{type:"radio",name:"total_ascent",checked:"total_ascent"===e.displayedData,onClick:t[4]||(t[4]=(...t)=>e.updateDisplayData&&e.updateDisplayData(...t))},null,8,E),(0,a.Uk)(" "+(0,r.zw)(e.$t("workouts.ASCENT")),1)])):(0,a.kq)("",!0),e.fullStats?((0,a.wg)(),(0,a.iD)("label",p,[(0,a._)("input",{type:"radio",name:"total_descent",checked:"total_descent"===e.displayedData,onClick:t[5]||(t[5]=(...t)=>e.updateDisplayData&&e.updateDisplayData(...t))},null,8,T),(0,a.Uk)(" "+(0,r.zw)(e.$t("workouts.DESCENT")),1)])):(0,a.kq)("",!0)]),e.labels.length>0?((0,a.wg)(),(0,a.j4)(R,{key:0,datasets:e.datasets,labels:e.labels,displayedData:e.displayedData,displayedSportIds:e.displayedSportIds,fullStats:e.fullStats,useImperialUnits:e.user.imperial_units},null,8,["datasets","labels","displayedData","displayedSportIds","fullStats","useImperialUnits"])):(0,a.kq)("",!0)]))])}var U=n(4850),O=n(2262);const R={class:"chart"};function I(e,t,n,r,s,o){const i=(0,a.up)("BarChart");return(0,a.wg)(),(0,a.iD)("div",R,[(0,a.Wm)(i,(0,a.dG)(e.barChartProps,{class:"bar-chart"}),null,16)])}var g=n(6518),w=n(3324);const v=(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 r=String(Math.floor(e/60)).padStart(2,"0"),s=String(e%60).padStart(2,"0");return t?`${"0"===n?"":`${n}d `}${"00"===a?"":`${a}h `}${r}m ${s}s`:`${"00"===a?"":`${a}:`}${r}:${s}`};var f=n(3649);const N=(e,t,n,a=!0)=>{const r="km",s=n?f.Dl[r].defaultTarget:r;switch(e){case"average_speed":return`${t.toFixed(2)} ${s}/h`;case"total_duration":return v(t,a);case"total_distance":return`${t.toFixed(2)} ${s}`;case"total_ascent":case"total_descent":return`${(t/1e3).toFixed(2)} ${s}`;default:return t.toString()}};var h=(0,a.aZ)({name:"Chart",components:{BarChart:g.vz},props:{datasets:{type:Object,required:!0},labels:{type:Object,required:!0},displayedData:{type:String,required:!0},displayedSportIds:{type:Array,required:!0},fullStats:{type:Boolean,required:!0},useImperialUnits:{type:Boolean,required:!0}},setup(e){const{t:t}=(0,w.QT)();function n(e){return isNaN(e)?0:+e}function r(e,t){return n(e)+n(t)}let s=(0,a.Fl)((()=>({labels:e.labels,datasets:JSON.parse(JSON.stringify(e.datasets))})));const o=(0,a.Fl)((()=>({responsive:!0,maintainAspectRatio:!0,animation:!1,layout:{padding:{top:e.fullStats?40:22}},scales:{x:{stacked:!0,grid:{drawOnChartArea:!1}},y:{stacked:"average_speed"!==e.displayedData,grid:{drawOnChartArea:!1},ticks:{maxTicksLimit:6,callback:function(t){return N(e.displayedData,+t,e.useImperialUnits,!1)}},afterFit:function(t){t.width=e.fullStats?75:60}}},plugins:{datalabels:{anchor:"end",align:"end",color:function(t){return"average_speed"===e.displayedData&&t.dataset.backgroundColor?t.dataset.backgroundColor[0]:"#666666"},rotation:function(t){return e.fullStats&&t.chart.chartArea.width<580?310:0},display:function(t){return!(e.fullStats&&t.chart.chartArea.width<300)&&("average_speed"!==e.displayedData||1==e.displayedSportIds.length&&"auto")},formatter:function(t,n){if("average_speed"===e.displayedData)return N(e.displayedData,t,e.useImperialUnits,!1);{const t=n.chart.data.datasets.map((e=>e.data[n.dataIndex])).reduce(((e,t)=>r(e,t)),0);return n.datasetIndex===e.displayedSportIds.length-1&&t>0?N(e.displayedData,t,e.useImperialUnits,!1):null}}},legend:{display:!1},tooltip:{interaction:{intersect:!0,mode:"index",position:"average_speed"===e.displayedData?"nearest":"average"},filter:function(e){return"0"!==e.formattedValue},callbacks:{label:function(n){let a=t(`sports.${n.dataset.label}.LABEL`)||"";return a&&(a+=": "),null!==n.parsed.y&&(a+=N(e.displayedData,n.parsed.y,e.useImperialUnits)),a},footer:function(n){if("average_speed"===e.displayedData)return"";let a=0;return n.map((e=>{a+=e.parsed.y})),`${t("common.TOTAL")}: `+N(e.displayedData,a,e.useImperialUnits)}}}}}))),{barChartProps:i}=(0,g.xZ)({chartData:s,options:o});return{barChartProps:i}}}),C=n(3744);const D=(0,C.Z)(h,[["render",I]]);var k=D,z=n(8602),P=n(9917),M=n(9318),y=(0,a.aZ)({name:"UserMonthStats",components:{Chart:k},props:{sports:{type:Object,required:!0},user:{type:Object,required:!0},chartParams:{type:Object,required:!0},displayedSportIds:{type:Array,default:()=>[]},fullStats:{type:Boolean,default:!1},hideChartIfNoData:{type:Boolean,default:!1}},setup(e){const t=(0,P.o)();let n=(0,O.iH)("total_distance");const r=(0,a.Fl)((()=>t.getters[z.gu.GETTERS.USER_STATS])),s=(0,a.Fl)((()=>(0,M.v1)(e.chartParams,e.user.weekm,e.sports,e.displayedSportIds,r.value,e.user.imperial_units)));function o(n){t.dispatch(z.gu.ACTIONS.GET_USER_STATS,{username:e.user.username,filterType:"by_time",params:n})}function i(e){n.value=e.target.name}function l(e,t){return{from:(0,U.Z)(e.start,"yyyy-MM-dd"),to:(0,U.Z)(e.end,"yyyy-MM-dd"),time:"week"===e.duration?"week"+(t.weekm?"m":""):e.duration}}return(0,a.wF)((()=>o(l(e.chartParams,e.user)))),(0,a.YP)((()=>e.chartParams),(async t=>{o(l(t,e.user))})),{datasets:(0,a.Fl)((()=>s.value.datasets[n.value])),labels:(0,a.Fl)((()=>s.value.labels)),emptyStats:(0,a.Fl)((()=>0===Object.keys(r.value).length)),displayedData:n,updateDisplayData:i}}});const b=(0,C.Z)(y,[["render",A],["__scopeId","data-v-68a6a495"]]);var L=b},2179:function(e,t,n){"use strict";n.d(t,{Z:function(){return w}});var a=n(6252),r=n(2262),s=n(3577),o=n(6595),i=n(8602),l=n(9917);const c={class:"box user-header"},u={class:"user-details"},d={class:"user-name"},m={class:"user-stats"},S={class:"user-stat"},_={class:"stat-number"},E={class:"stat-label"},p={class:"user-stat"},T={class:"stat-label"},A={class:"user-stat hide-small"},U={class:"stat-number"},O={class:"stat-label"};var R=(0,a.aZ)({name:"UserHeader",props:{user:null},setup(e){const t=e,{user:n}=(0,r.BK)(t),R=(0,l.o)(),I=(0,a.Fl)((()=>R.getters[i.YN.GETTERS.AUTH_USER_PROFILE]));return(e,t)=>{const i=(0,a.up)("Distance");return(0,a.wg)(),(0,a.iD)("div",c,[(0,a.Wm)(o.Z,{user:(0,r.SU)(n)},null,8,["user"]),(0,a._)("div",u,[(0,a._)("div",d,(0,s.zw)((0,r.SU)(n).username),1),(0,a._)("div",m,[(0,a._)("div",S,[(0,a._)("span",_,(0,s.zw)((0,r.SU)(n).nb_workouts),1),(0,a._)("span",E,(0,s.zw)(e.$t("workouts.WORKOUT",(0,r.SU)(n).nb_workouts)),1)]),(0,a._)("div",p,[(0,a.Wm)(i,{distance:(0,r.SU)(n).total_distance,unitFrom:"km",digits:0,displayUnit:!1,useImperialUnits:(0,r.SU)(I).imperial_units},null,8,["distance","useImperialUnits"]),(0,a._)("span",T,(0,s.zw)((0,r.SU)(I).imperial_units?"miles":"km"),1)]),(0,a._)("div",A,[(0,a._)("span",U,(0,s.zw)((0,r.SU)(n).nb_sports),1),(0,a._)("span",O,(0,s.zw)(e.$t("workouts.SPORT",(0,r.SU)(n).nb_sports)),1)])])])])}}}),I=n(3744);const g=(0,I.Z)(R,[["__scopeId","data-v-20291951"]]);var w=g},4980:function(e,t,n){"use strict";n.d(t,{Z:function(){return f}});var a=n(6252),r=n(2262),s=n(3577),o=n(9963),i=n(4850),l=n(8602),c=n(9917);const u={id:"user-infos",class:"description-list"},d={key:1,class:"info-box success-message"},m={key:4,class:"email-form form-box"},S={class:"form-items",for:"email"},_={class:"form-items",for:"email"},E={class:"form-buttons"},p={class:"confirm",type:"submit"},T=["onClick"],A={key:5},U={class:"user-bio"},O={key:0,class:"profile-buttons"},R=["onClick"],I={key:1,class:"profile-buttons"};var g=(0,a.aZ)({name:"UserInfos",props:{user:null,fromAdmin:{type:Boolean,default:!1}},setup(e){const t=e,n=(0,c.o)(),{user:g,fromAdmin:w}=(0,r.BK)(t),v=(0,a.Fl)((()=>n.getters[l.YN.GETTERS.AUTH_USER_PROFILE])),f=(0,a.Fl)((()=>t.user.created_at?(0,i.Z)(new Date(t.user.created_at),"dd/MM/yyyy HH:mm"):"")),N=(0,a.Fl)((()=>t.user.birth_date?(0,i.Z)(new Date(t.user.birth_date),"dd/MM/yyyy"):"")),h=(0,a.Fl)((()=>n.getters[l.RT.GETTERS.USERS_IS_SUCCESS])),C=(0,a.Fl)((()=>n.getters[l.SY.GETTERS.ERROR_MESSAGES])),D=(0,a.Fl)((()=>n.getters[l.SY.GETTERS.APP_CONFIG]));let k=(0,r.iH)("");const z=(0,r.iH)(!1),P=(0,r.iH)(!1),M=(0,r.iH)(""),y=(0,r.iH)("");function b(e){k.value=e,""!==e&&n.commit(l.RT.MUTATIONS.UPDATE_IS_SUCCESS,!1)}function L(e){n.dispatch(l.RT.ACTIONS.DELETE_USER_ACCOUNT,{username:e})}function G(e){y.value="password-reset",n.dispatch(l.RT.ACTIONS.UPDATE_USER,{username:e,resetPassword:!0})}function F(e){n.dispatch(l.RT.ACTIONS.UPDATE_USER,{username:e,activate:!0})}function W(){$(),M.value=g.value.email_to_confirm?g.value.email_to_confirm:"",P.value=!0,y.value="email-update"}function Y(){M.value="",P.value=!1}function x(e){n.dispatch(l.RT.ACTIONS.UPDATE_USER,{username:e,new_email:M.value})}function $(){n.commit(l.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),n.commit(l.RT.MUTATIONS.UPDATE_IS_SUCCESS,!1),y.value=""}return(0,a.Ah)((()=>$())),(0,a.YP)((()=>h.value),(e=>{e&&(b(""),Y())})),(e,t)=>{const n=(0,a.up)("Modal"),i=(0,a.up)("AlertMessage"),l=(0,a.up)("ErrorMessage");return(0,a.wg)(),(0,a.iD)("div",u,[(0,r.SU)(k)?((0,a.wg)(),(0,a.j4)(n,{key:0,title:e.$t("common.CONFIRMATION"),message:"delete"===(0,r.SU)(k)?"admin.CONFIRM_USER_ACCOUNT_DELETION":"admin.CONFIRM_USER_PASSWORD_RESET",strongMessage:(0,r.SU)(g).username,onConfirmAction:t[0]||(t[0]=e=>"delete"===(0,r.SU)(k)?L((0,r.SU)(g).username):G((0,r.SU)(g).username)),onCancelAction:t[1]||(t[1]=e=>b(""))},null,8,["title","message","strongMessage"])):(0,a.kq)("",!0),(0,r.SU)(h)?((0,a.wg)(),(0,a.iD)("div",d,(0,s.zw)(e.$t(`admin.${"password-reset"===y.value?"PASSWORD_RESET":"USER_EMAIL_UPDATE"}_SUCCESSFUL`)),1)):(0,a.kq)("",!0),(0,r.SU)(g).is_active?(0,a.kq)("",!0):((0,a.wg)(),(0,a.j4)(i,{key:2,message:"user.THIS_USER_ACCOUNT_IS_INACTIVE"})),(0,r.SU)(C)?((0,a.wg)(),(0,a.j4)(l,{key:3,message:(0,r.SU)(C)},null,8,["message"])):(0,a.kq)("",!0),P.value?((0,a.wg)(),(0,a.iD)("div",m,[(0,a._)("form",{class:(0,s.C_)({errors:z.value}),onSubmit:t[4]||(t[4]=(0,o.iM)((e=>x((0,r.SU)(g).username)),["prevent"]))},[(0,a._)("label",S,[(0,a.Uk)((0,s.zw)(e.$t("admin.CURRENT_EMAIL"))+" ",1),(0,a.wy)((0,a._)("input",{id:"email",type:"email","onUpdate:modelValue":t[2]||(t[2]=e=>(0,r.SU)(g).email=e),disabled:""},null,512),[[o.nr,(0,r.SU)(g).email]])]),(0,a._)("label",_,[(0,a.Uk)((0,s.zw)(e.$t("admin.NEW_EMAIL"))+"* ",1),(0,a.wy)((0,a._)("input",{id:"new-email",type:"email",required:"","onUpdate:modelValue":t[3]||(t[3]=e=>M.value=e)},null,512),[[o.nr,M.value]])]),(0,a._)("div",E,[(0,a._)("button",p,(0,s.zw)(e.$t("buttons.SUBMIT")),1),(0,a._)("button",{class:"cancel",onClick:(0,o.iM)(Y,["prevent"])},(0,s.zw)(e.$t("buttons.CANCEL")),9,T)])],34)])):((0,a.wg)(),(0,a.iD)("div",A,[(0,a._)("dl",null,[(0,a._)("dt",null,(0,s.zw)(e.$t("user.PROFILE.REGISTRATION_DATE"))+":",1),(0,a._)("dd",null,(0,s.zw)((0,r.SU)(f)),1),(0,a._)("dt",null,(0,s.zw)(e.$t("user.PROFILE.FIRST_NAME"))+":",1),(0,a._)("dd",null,(0,s.zw)((0,r.SU)(g).first_name),1),(0,a._)("dt",null,(0,s.zw)(e.$t("user.PROFILE.LAST_NAME"))+":",1),(0,a._)("dd",null,(0,s.zw)((0,r.SU)(g).last_name),1),(0,a._)("dt",null,(0,s.zw)(e.$t("user.PROFILE.BIRTH_DATE"))+":",1),(0,a._)("dd",null,(0,s.zw)((0,r.SU)(N)),1),(0,a._)("dt",null,(0,s.zw)(e.$t("user.PROFILE.LOCATION"))+":",1),(0,a._)("dd",null,(0,s.zw)((0,r.SU)(g).location),1),(0,a._)("dt",null,(0,s.zw)(e.$t("user.PROFILE.BIO"))+":",1),(0,a._)("dd",U,(0,s.zw)((0,r.SU)(g).bio),1)]),(0,r.SU)(w)?((0,a.wg)(),(0,a.iD)("div",O,[(0,r.SU)(v).username!==(0,r.SU)(g).username?((0,a.wg)(),(0,a.iD)("button",{key:0,class:"danger",onClick:t[5]||(t[5]=(0,o.iM)((e=>b("delete")),["prevent"]))},(0,s.zw)(e.$t("admin.DELETE_USER")),1)):(0,a.kq)("",!0),(0,r.SU)(g).is_active?(0,a.kq)("",!0):((0,a.wg)(),(0,a.iD)("button",{key:1,onClick:t[6]||(t[6]=(0,o.iM)((e=>F((0,r.SU)(g).username)),["prevent"]))},(0,s.zw)(e.$t("admin.ACTIVATE_USER_ACCOUNT")),1)),(0,r.SU)(v).username!==(0,r.SU)(g).username?((0,a.wg)(),(0,a.iD)("button",{key:2,onClick:(0,o.iM)(W,["prevent"])},(0,s.zw)(e.$t("admin.UPDATE_USER_EMAIL")),9,R)):(0,a.kq)("",!0),(0,r.SU)(v).username!==(0,r.SU)(g).username&&(0,r.SU)(D).is_email_sending_enabled?((0,a.wg)(),(0,a.iD)("button",{key:3,onClick:t[7]||(t[7]=(0,o.iM)((e=>b("reset")),["prevent"]))},(0,s.zw)(e.$t("admin.RESET_USER_PASSWORD")),1)):(0,a.kq)("",!0),(0,a._)("button",{onClick:t[8]||(t[8]=t=>e.$router.go(-1))},(0,s.zw)(e.$t("buttons.BACK")),1)])):((0,a.wg)(),(0,a.iD)("div",I,[(0,a._)("button",{onClick:t[9]||(t[9]=t=>e.$router.push("/profile/edit"))},(0,s.zw)(e.$t("user.PROFILE.EDIT")),1),(0,a._)("button",{onClick:t[10]||(t[10]=t=>e.$router.push("/"))},(0,s.zw)(e.$t("common.HOME")),1)]))]))])}}}),w=n(3744);const v=(0,w.Z)(g,[["__scopeId","data-v-1b6fd7df"]]);var f=v},2422:function(e,t,n){"use strict";n.d(t,{Z:function(){return D}});n(6699);var a=n(6252),r=n(3577),s=n(2262),o=n(9963),i=n(2119),l=n(2047),c=n(8602),u=n(9917);const d=e=>((0,a.dD)("data-v-26d3a7be"),e=e(),(0,a.Cn)(),e),m={id:"user-form"},S={key:2,class:"info-box success-message"},_={class:"form-items"},E=["disabled","placeholder"],p={key:1,class:"form-info"},T=d((()=>(0,a._)("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1))),A=["disabled","placeholder"],U={key:3,class:"form-info"},O=d((()=>(0,a._)("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1))),R=["disabled"],I={key:3},g={key:0},w={key:4},v={class:"account"},f={key:5};var N=(0,a.aZ)({name:"UserAuthForm",props:{action:null,token:{default:""}},setup(e){const t=e,n=(0,i.yj)(),d=(0,u.o)(),{action:N}=(0,s.BK)(t),h=(0,s.qj)({username:"",email:"",password:""}),C=(0,a.Fl)((()=>L(t.action))),D=(0,a.Fl)((()=>d.getters[c.SY.GETTERS.ERROR_MESSAGES])),k=(0,a.Fl)((()=>d.getters[c.YN.GETTERS.IS_REGISTRATION_SUCCESS])),z=(0,a.Fl)((()=>d.getters[c.YN.GETTERS.IS_SUCCESS])),P=(0,a.Fl)((()=>d.getters[c.SY.GETTERS.APP_CONFIG])),M=(0,a.Fl)((()=>"register"===t.action&&!P.value.is_registration_enabled)),y=(0,a.Fl)((()=>["reset-request","account-confirmation-resend"].includes(t.action)&&!P.value.is_email_sending_enabled)),b=(0,s.iH)(!1);function L(e){switch(e){case"reset-request":case"reset":return"buttons.SUBMIT";default:return`buttons.${t.action.toUpperCase()}`}}function G(){b.value=!0}function F(e){h.password=e}function W(e){switch(e){case"reset":return t.token?d.dispatch(c.YN.ACTIONS.RESET_USER_PASSWORD,{password:h.password,token:t.token}):d.commit(c.SY.MUTATIONS.SET_ERROR_MESSAGES,"user.INVALID_TOKEN");case"reset-request":return d.dispatch(c.YN.ACTIONS.SEND_PASSWORD_RESET_REQUEST,{email:h.email});case"account-confirmation-resend":return d.dispatch(c.YN.ACTIONS.RESEND_ACCOUNT_CONFIRMATION_EMAIL,{email:h.email});default:d.dispatch(c.YN.ACTIONS.LOGIN_OR_REGISTER,{actionType:e,formData:h,redirectUrl:n.query.from})}}function Y(){h.username="",h.email="",h.password=""}return(0,a.YP)((()=>n.path),(async()=>{d.commit(c.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),d.commit(c.YN.MUTATIONS.UPDATE_IS_SUCCESS,!1),d.commit(c.YN.MUTATIONS.UPDATE_IS_REGISTRATION_SUCCESS,!1),b.value=!1,Y()})),(e,t)=>{const n=(0,a.up)("AlertMessage"),i=(0,a.up)("router-link"),c=(0,a.up)("ErrorMessage");return(0,a.wg)(),(0,a.iD)("div",{id:"user-auth-form",class:(0,r.C_)(`${["reset","reset-request"].includes((0,s.SU)(N))?(0,s.SU)(N):"user-form"}`)},[(0,a._)("div",m,[(0,a._)("div",{class:(0,r.C_)(["form-box",{disabled:(0,s.SU)(M)}])},[(0,s.SU)(M)?((0,a.wg)(),(0,a.j4)(n,{key:0,message:"user.REGISTER_DISABLED"})):(0,a.kq)("",!0),(0,s.SU)(y)?((0,a.wg)(),(0,a.j4)(n,{key:1,message:"admin.EMAIL_SENDING_DISABLED"})):(0,a.kq)("",!0),(0,s.SU)(z)||(0,s.SU)(k)?((0,a.wg)(),(0,a.iD)("div",S,(0,r.zw)(e.$t("user.PROFILE.SUCCESSFUL_"+((0,s.SU)(k)?"REGISTRATION"+((0,s.SU)(P).is_email_sending_enabled?"_WITH_EMAIL":""):"UPDATE"))),1)):(0,a.kq)("",!0),(0,a._)("form",{class:(0,r.C_)({errors:b.value}),onSubmit:t[2]||(t[2]=(0,o.iM)((e=>W((0,s.SU)(N))),["prevent"]))},[(0,a._)("div",_,["register"===(0,s.SU)(N)?(0,a.wy)(((0,a.wg)(),(0,a.iD)("input",{key:0,id:"username",disabled:(0,s.SU)(M),required:"",pattern:"[a-zA-Z0-9_]+",minlength:"3",maxlength:"30",onInvalid:G,"onUpdate:modelValue":t[0]||(t[0]=e=>h.username=e),placeholder:e.$t("user.USERNAME")},null,40,E)),[[o.nr,h.username]]):(0,a.kq)("",!0),"register"===(0,s.SU)(N)?((0,a.wg)(),(0,a.iD)("div",p,[T,(0,a.Uk)(" "+(0,r.zw)(e.$t("user.USERNAME_INFO")),1)])):(0,a.kq)("",!0),"reset"!==(0,s.SU)(N)?(0,a.wy)(((0,a.wg)(),(0,a.iD)("input",{key:2,id:"email",disabled:(0,s.SU)(M)||(0,s.SU)(y),required:"",onInvalid:G,type:"email","onUpdate:modelValue":t[1]||(t[1]=e=>h.email=e),placeholder:e.$t("user.EMAIL")},null,40,A)),[[o.nr,h.email]]):(0,a.kq)("",!0),["reset-request","register","account-confirmation-resend"].includes((0,s.SU)(N))?((0,a.wg)(),(0,a.iD)("div",U,[O,(0,a.Uk)(" "+(0,r.zw)(e.$t("user.EMAIL_INFO")),1)])):(0,a.kq)("",!0),["account-confirmation-resend","reset-request"].includes((0,s.SU)(N))?(0,a.kq)("",!0):((0,a.wg)(),(0,a.j4)(l.Z,{key:4,disabled:(0,s.SU)(M),required:!0,placeholder:"reset"===(0,s.SU)(N)?e.$t("user.ENTER_PASSWORD"):e.$t("user.PASSWORD"),password:h.password,checkStrength:["reset","register"].includes((0,s.SU)(N)),onUpdatePassword:F,onPasswordError:G},null,8,["disabled","placeholder","password","checkStrength"]))]),(0,a._)("button",{type:"submit",disabled:(0,s.SU)(M)||(0,s.SU)(y)},(0,r.zw)(e.$t((0,s.SU)(C))),9,R)],34),"login"===(0,s.SU)(N)?((0,a.wg)(),(0,a.iD)("div",I,[(0,a.Wm)(i,{class:"links",to:"/register"},{default:(0,a.w5)((()=>[(0,a.Uk)((0,r.zw)(e.$t("user.REGISTER")),1)])),_:1}),(0,s.SU)(P).is_email_sending_enabled?((0,a.wg)(),(0,a.iD)("span",g,"-")):(0,a.kq)("",!0),(0,s.SU)(P).is_email_sending_enabled?((0,a.wg)(),(0,a.j4)(i,{key:1,class:"links",to:"/password-reset/request"},{default:(0,a.w5)((()=>[(0,a.Uk)((0,r.zw)(e.$t("user.PASSWORD_FORGOTTEN")),1)])),_:1})):(0,a.kq)("",!0)])):(0,a.kq)("",!0),"register"===(0,s.SU)(N)?((0,a.wg)(),(0,a.iD)("div",w,[(0,a._)("span",v,(0,r.zw)(e.$t("user.ALREADY_HAVE_ACCOUNT")),1),(0,a.Wm)(i,{class:"links",to:"/login"},{default:(0,a.w5)((()=>[(0,a.Uk)((0,r.zw)(e.$t("user.LOGIN")),1)])),_:1})])):(0,a.kq)("",!0),["login","register"].includes((0,s.SU)(N))&&(0,s.SU)(P).is_email_sending_enabled?((0,a.wg)(),(0,a.iD)("div",f,[(0,a.Wm)(i,{class:"links",to:"/account-confirmation/resend"},{default:(0,a.w5)((()=>[(0,a.Uk)((0,r.zw)(e.$t("user.ACCOUNT_CONFIRMATION_NOT_RECEIVED")),1)])),_:1})])):(0,a.kq)("",!0),(0,s.SU)(D)?((0,a.wg)(),(0,a.j4)(c,{key:6,message:(0,s.SU)(D)},null,8,["message"])):(0,a.kq)("",!0)],2)])],2)}}}),h=n(3744);const C=(0,h.Z)(N,[["__scopeId","data-v-26d3a7be"]]);var D=C},6595:function(e,t,n){"use strict";n.d(t,{Z:function(){return S}});var a=n(6252),r=n(2262),s=n(2024);const o={class:"user-picture"},i=["alt","src"],l={key:1,class:"no-picture"},c=(0,a._)("i",{class:"fa fa-user-circle-o","aria-hidden":"true"},null,-1),u=[c];var d=(0,a.aZ)({name:"UserPicture",props:{user:null},setup(e){const t=e,n=(0,a.Fl)((()=>t.user.picture?`${(0,s.k)()}users/${t.user.username}/picture?${Date.now()}`:""));return(e,t)=>((0,a.wg)(),(0,a.iD)("div",o,[""!==(0,r.SU)(n)?((0,a.wg)(),(0,a.iD)("img",{key:0,class:"profile-user-img",alt:e.$t("user.USER_PICTURE"),src:(0,r.SU)(n)},null,8,i)):((0,a.wg)(),(0,a.iD)("div",l,u))]))}});const m=d;var S=m},5630:function(e,t,n){"use strict";n.d(t,{Z:function(){return u}});var a=n(6252),r=n(3577);const s={class:"no-workouts box"};function o(e,t){const n=(0,a.up)("router-link");return(0,a.wg)(),(0,a.iD)("div",s,[(0,a._)("div",null,[(0,a.Uk)((0,r.zw)(e.$t("workouts.NO_WORKOUTS"))+" ",1),(0,a.Wm)(n,{to:"/workouts/add"},{default:(0,a.w5)((()=>[(0,a.Uk)((0,r.zw)(e.$t("workouts.UPLOAD_FIRST_WORKOUT")),1)])),_:1})])])}var i=n(3744);const l={},c=(0,i.Z)(l,[["render",o],["__scopeId","data-v-4b4d15fb"]]);var u=c},4612:function(e,t,n){var a={"./en/en.ts":9350,"./fr/fr.ts":1079};function r(e){var t=s(e);return n(t)}function s(e){if(!n.o(a,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return a[e]}r.keys=function(){return Object.keys(a)},r.resolve=s,e.exports=r,r.id=4612}},t={};function n(a){var r=t[a];if(void 0!==r)return r.exports;var s=t[a]={exports:{}};return e[a].call(s.exports,s,s.exports,n),s.exports}n.m=e,function(){var e=[];n.O=function(t,a,r,s){if(!a){var o=1/0;for(u=0;u=s)&&Object.keys(n.O).every((function(e){return n.O[e](a[l])}))?a.splice(l--,1):(i=!1,s0&&e[u-1][2]>s;u--)e[u]=e[u-1];e[u]=[a,r,s]}}(),function(){n.n=function(e){var t=e&&e.__esModule?function(){return e["default"]}:function(){return e};return n.d(t,{a:t}),t}}(),function(){var e,t=Object.getPrototypeOf?function(e){return Object.getPrototypeOf(e)}:function(e){return e.__proto__};n.t=function(a,r){if(1&r&&(a=this(a)),8&r)return a;if("object"===typeof a&&a){if(4&r&&a.__esModule)return a;if(16&r&&"function"===typeof a.then)return a}var s=Object.create(null);n.r(s);var o={};e=e||[null,t({}),t([]),t(t)];for(var i=2&r&&a;"object"==typeof i&&!~e.indexOf(i);i=t(i))Object.getOwnPropertyNames(i).forEach((function(e){o[e]=function(){return a[e]}}));return o["default"]=function(){return a},n.d(s,o),s}}(),function(){n.d=function(e,t){for(var a in t)n.o(t,a)&&!n.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:t[a]})}}(),function(){n.f={},n.e=function(e){return Promise.all(Object.keys(n.f).reduce((function(t,a){return n.f[a](e,t),t}),[]))}}(),function(){n.u=function(e){return"static/js/"+({24:"reset",193:"statistics",328:"admin",401:"workouts",845:"profile",881:"password"}[e]||e)+"."+{24:"80b9da45",93:"0cd1858e",193:"ea7ff674",243:"697a3d7b",328:"43bba6c9",401:"02fe5945",431:"54edda90",633:"c743cd9a",845:"6625cfc7",858:"4449709a",881:"b05df85b"}[e]+".js"}}(),function(){n.miniCssF=function(e){return"static/css/"+{24:"reset",193:"statistics",328:"admin",401:"workouts",845:"profile"}[e]+"."+{24:"e2527ec6",193:"91fe968e",328:"73df498d",401:"3ddc8329",845:"203e78e2"}[e]+".css"}}(),function(){n.g=function(){if("object"===typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"===typeof window)return window}}()}(),function(){n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)}}(),function(){var e={},t="fittrackee_client:";n.l=function(a,r,s,o){if(e[a])e[a].push(r);else{var i,l;if(void 0!==s)for(var c=document.getElementsByTagName("script"),u=0;u {\n const authToken = store.getters[AUTH_USER_STORE.GETTERS.AUTH_TOKEN]\n if (authToken) {\n const auth = `Bearer ${authToken}`\n if (config.headers && config.headers.Authorization !== auth) {\n config.headers.Authorization = `Bearer ${authToken}`\n }\n }\n return config\n },\n (error) => Promise.reject(error)\n)\n\nexport default authApi\n","import { createI18n, LocaleMessages, VueMessageType } from 'vue-i18n'\n\n/**\n * Load locale messages\n *\n * The loaded `JSON` locale messages is pre-compiled by `@intlify/vue-i18n-loader`, which is integrated into `vue-cli-plugin-i18n`.\n * See: https://github.com/intlify/vue-i18n-loader#rocket-i18n-resource-pre-compilation\n */\nfunction loadLocaleMessages(): LocaleMessages {\n const locales = require.context('./locales', true, /[A-Za-z0-9-_,\\s]+\\.ts$/i)\n const messages: LocaleMessages = {}\n locales.keys().forEach((key) => {\n const matched = key.match(/([A-Za-z0-9-_]+)\\./i)\n if (matched && matched.length > 1) {\n const locale = matched[1]\n messages[locale] = locales(key).default\n }\n })\n return messages\n}\n\nexport default createI18n({\n legacy: false,\n locale: 'en',\n fallbackLocale: 'en',\n globalInjection: true,\n messages: loadLocaleMessages(),\n})\n","export default {\n \"CONTACT_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Contact the administrator\"])},\n \"FITTRACKEE_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"FitTrackee is a self-hosted outdoor activity tracker.\"])},\n \"FITTRACKEE_LICENSE\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"under \", _interpolate(_list(0)), \" license \"])},\n \"SOURCE_CODE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Source code\"])}\n}","export default {\n \"ACTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Action\"])},\n \"ACTIVATE_USER_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Activate account\"])},\n \"ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Active\"])},\n \"ADMIN_RIGHTS_DELETE_USER_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Add/remove admin rights, delete user account.\"])},\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Admin\"])},\n \"ADMINISTRATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Administration\"])},\n \"APPLICATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Application\"])},\n \"APP_CONFIG\": {\n \"ADMIN_CONTACT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Administrator email for contact\"])},\n \"MAX_USERS_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. number of active users\"])},\n \"MAX_USERS_HELP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"If 0, no limitation on registration.\"])},\n \"MAX_FILES_IN_ZIP_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. files of zip archive\"])},\n \"NO_CONTACT_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"no contact email\"])},\n \"SINGLE_UPLOAD_MAX_SIZE_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. size of uploaded files (in Mb)\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Application configuration\"])},\n \"ZIP_UPLOAD_MAX_SIZE_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. size of zip archive (in Mb)\"])}\n },\n \"BACK_TO_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Back to admin\"])},\n \"CONFIRM_USER_ACCOUNT_DELETION\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Are you sure you want to delete \", _interpolate(_list(0)), \" account? All data will be deleted, this cannot be undone.\"])},\n \"CONFIRM_USER_PASSWORD_RESET\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Are you sure you want to reset \", _interpolate(_list(0)), \" password?\"])},\n \"CURRENT_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Current email\"])},\n \"DELETE_USER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Delete user\"])},\n \"EMAIL_SENDING_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Email sending is disabled.\"])},\n \"ENABLE_DISABLE_SPORTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enable/disable sports.\"])},\n \"NEW_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"New email\"])},\n \"PASSWORD_RESET_SUCCESSFUL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"The password has been reset.\"])},\n \"REGISTRATION_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registration is currently disabled.\"])},\n \"REGISTRATION_ENABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registration is currently enabled.\"])},\n \"RESET_USER_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reset password\"])},\n \"SPORTS\": {\n \"TABLE\": {\n \"ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Active\"])},\n \"HAS_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"workouts exist\"])},\n \"IMAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Image\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Label\"])}\n },\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sports administration\"])}\n },\n \"UPDATE_APPLICATION_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Update application configuration (maximum number of registered users, maximum files size).\"])},\n \"UPDATE_USER_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Update email\"])},\n \"USER\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"user\"]), _normalize([\"users\"])])},\n \"USER_EMAIL_UPDATE_SUCCESSFUL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"The email address has been updated.\"])},\n \"USERS\": {\n \"TABLE\": {\n \"ADD_ADMIN_RIGHTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Add admin rights\"])},\n \"REMOVE_ADMIN_RIGHTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Remove admin rights\"])}\n },\n \"SELECTS\": {\n \"ORDER_BY\": {\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"admin status\"])},\n \"CREATED_AT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"registration date\"])},\n \"IS_ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"account status\"])},\n \"USERNAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"username\"])},\n \"WORKOUTS_COUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"workout count\"])}\n }\n }\n }\n}","export default {\n \"ERROR\": {\n \"UNKNOWN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error. Please try again or contact the administrator.\"])},\n \"email: valid email must be provided\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Email: valid email must be provided.\"])},\n \"error on getting configuration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error on getting configuration.\"])},\n \"error when updating configuration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error when updating configuration\"])},\n \"error, please try again or contact the administrator\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error, please try again or contact the administrator.\"])},\n \"error, registration is disabled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error, registration is disabled.\"])},\n \"file extension not allowed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"File extension not allowed.\"])},\n \"file size is greater than the allowed size\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"File size is greater than the allowed size.\"])},\n \"invalid credentials\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Invalid credentials.\"])},\n \"invalid payload\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Provided data are invalid.\"])},\n \"invalid token, please log in again\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Invalid token, please log in again.\"])},\n \"invalid token, please request a new token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Invalid token, please log in again.\"])},\n \"Network Error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Network Error.\"])},\n \"new email must be different than curent email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"The new email must be different than curent email\"])},\n \"no file part\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No file provided.\"])},\n \"no selected file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No selected file.\"])},\n \"password: password and password confirmation do not match\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Password: password and password confirmation don't match.\"])},\n \"provide a valid auth token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Provide a valid auth token.\"])},\n \"sorry, that username is already taken\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sorry, that username is already taken.\"])},\n \"sport does not exist\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sport does not exist.\"])},\n \"signature expired, please log in again\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Signature expired. Please log in again.\"])},\n \"successfully registered\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Successfully registered.\"])},\n \"user does not exist\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"User does not exist.\"])},\n \"valid email must be provided for admin contact\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"A valid email must be provided for administrator contact\"])},\n \"you can not delete your account, no other user has admin rights\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"You can not delete your account, no other user has admin rights.\"])},\n \"you do not have permissions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"You do not have permissions.\"])}\n },\n \"PAGINATION\": {\n \"PREVIOUS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"previous\"])},\n \"NEXT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"next\"])}\n }\n}","export default {\n \"ACCOUNT-CONFIRMATION-RESEND\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Resend confirmation email\"])},\n \"BACK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Back\"])},\n \"CANCEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Cancel\"])},\n \"CLEAR_FILTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Clear filters\"])},\n \"DELETE_MY_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Delete my account\"])},\n \"DISABLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Disable\"])},\n \"EDIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Edit\"])},\n \"ENABLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enable\"])},\n \"FILTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Filter\"])},\n \"LOGIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Log in\"])},\n \"NO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No\"])},\n \"REGISTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Register\"])},\n \"RESET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reset\"])},\n \"SUBMIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Submit\"])},\n \"YES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Yes\"])}\n}","export default {\n \"ABOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"about\"])},\n \"CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Confirmation\"])},\n \"CONTACT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"contact\"])},\n \"DAY\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"day\"]), _normalize([\"days\"])])},\n \"DOCUMENTATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"documentation\"])},\n \"HOME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Home\"])},\n \"HERE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"here\"])},\n \"SELECTS\": {\n \"ORDER_BY\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"order by\"])}\n },\n \"ORDER\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sort\"])},\n \"ASC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ascending\"])},\n \"DESC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"descending\"])}\n },\n \"PER_PAGE\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"par page\"])}\n }\n },\n \"TOTAL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Total\"])}\n}","export default {\n \"DASHBOARD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dashboard\"])},\n \"THIS_MONTH\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"This month\"])}\n}","export default {\n \"UNKNOWN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error. Please try again or contact the administrator.\"])},\n \"APP_ERROR\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"The application seems to have encountered some issues.
Please try again later or contact the administrator.\"])},\n \"NOT_FOUND\": {\n \"PAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Page not found\"])},\n \"WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Workout not found\"])}\n },\n \"SOMETHING_WRONG\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Something went wrong\"])}\n}","export default {\n \"Cycling (Sport)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Cycling (Sport)\"])}\n },\n \"Cycling (Transport)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Cycling (Transport)\"])}\n },\n \"Hiking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hiking\"])}\n },\n \"Mountain Biking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mountain Biking\"])}\n },\n \"Mountain Biking (Electric)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mountain Biking (Electric)\"])}\n },\n \"Rowing\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Rowing\"])}\n },\n \"Running\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Running\"])}\n },\n \"Skiing (Alpine)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Skiing (Alpine)\"])}\n },\n \"Skiing (Cross Country)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Skiing (Cross Country)\"])}\n },\n \"Snowshoes\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Snowshoes\"])}\n },\n \"Trail\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Trail\"])}\n },\n \"Walking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Walking\"])}\n }\n}","export default {\n \"STATISTICS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Statistics\"])},\n \"TIME_FRAMES\": {\n \"week\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"week\"])},\n \"month\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"month\"])},\n \"year\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"year\"])}\n }\n}","export default {\n \"ACCOUNT_CONFIRMATION_NOT_RECEIVED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Didn't received instructions?\"])},\n \"ACCOUNT_CONFIRMATION_SENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Check your email. A new confirmation email has been sent to the address provided.\"])},\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Admin\"])},\n \"ALREADY_HAVE_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Already have an account?\"])},\n \"CONFIRM_ACCOUNT_DELETION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Are you sure you want to delete your account? All data will be deleted, this cannot be undone\"])},\n \"CURRENT_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Current password\"])},\n \"EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Email\"])},\n \"EMAIL_INFO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enter a valid email address.\"])},\n \"ENTER_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enter a password\"])},\n \"FILTER_ON_USERNAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Filter on username\"])},\n \"HIDE_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"hide password\"])},\n \"INVALID_TOKEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Invalid token, please request a new password reset.\"])},\n \"LANGUAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Language\"])},\n \"LOG_IN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"log in\"])},\n \"LOGIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Login\"])},\n \"LOGOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Logout\"])},\n \"NEW_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"New password\"])},\n \"NO_USERS_FOUND\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No users found.\"])},\n \"PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Password\"])},\n \"PASSWORD_INFO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"At least 8 characters required.\"])},\n \"PASSWORD_FORGOTTEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Forgot password?\"])},\n \"PASSWORD_RESET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Password reset\"])},\n \"PASSWORD_SENT_EMAIL_TEXT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Check your email. If your address is in our database, you'll received an email with a link to reset your password.\"])},\n \"PASSWORD_STRENGTH\": {\n \"WEAK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"weak\"])},\n \"AVERAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"average\"])},\n \"GOOD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"good\"])},\n \"STRONG\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"strong\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"password strength\"])},\n \"SUGGESTIONS\": {\n \"l33t\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Avoid predictable letter substitutions like \", \"@\", \" for a.\"])},\n \"reverseWords\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Avoid reversed spellings of common words.\"])},\n \"allUppercase\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Capitalize some, but not all letters.\"])},\n \"capitalization\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Capitalize more than the first letter.\"])},\n \"dates\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Avoid dates and years that are associated with you.\"])},\n \"recentYears\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Avoid recent years.\"])},\n \"associatedYears\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Avoid years that are associated with you.\"])},\n \"sequences\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Avoid common character sequences.\"])},\n \"repeated\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Avoid repeated words and characters.\"])},\n \"longerKeyboardPattern\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Use longer keyboard patterns and change typing direction multiple times.\"])},\n \"anotherWord\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Add more words that are less common.\"])},\n \"useWords\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Use multiple words, but avoid common phrases.\"])},\n \"noNeed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"You can create strong passwords without using symbols, numbers, or uppercase letters.\"])},\n \"pwned\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"If you use this password elsewhere, you should change it.\"])}\n }\n },\n \"PASSWORD_UPDATED\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Your password have been updated. Click \", _interpolate(_list(0)), \" to log in.\"])},\n \"PROFILE\": {\n \"ACCOUNT_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Account edition\"])},\n \"BACK_TO_PROFILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Back to profile\"])},\n \"BIO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bio\"])},\n \"BIRTH_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Birth date\"])},\n \"EDIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Edit profile\"])},\n \"EDIT_PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Edit preferences\"])},\n \"EDIT_SPORTS_PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Edit sports preferences\"])},\n \"ERRORED_EMAIL_UPDATE\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Please \", _interpolate(_list(0)), \" to change your email address again or contact the administrator\"])},\n \"FIRST_NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"First name\"])},\n \"FIRST_DAY_OF_WEEK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"First day of week\"])},\n \"LANGUAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Language\"])},\n \"LAST_NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Last name\"])},\n \"LOCATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Location\"])},\n \"MONDAY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Monday\"])},\n \"PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Picture\"])},\n \"PICTURE_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Picture edition\"])},\n \"PICTURE_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Update picture\"])},\n \"PICTURE_REMOVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Remove picture\"])},\n \"PREFERENCES_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Preferences edition\"])},\n \"PROFILE_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Profile edition\"])},\n \"REGISTRATION_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registration date\"])},\n \"SPORTS_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sports preferences edition\"])},\n \"SUNDAY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sunday\"])},\n \"TABS\": {\n \"ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"account\"])},\n \"PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"picture\"])},\n \"PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"preferences\"])},\n \"PROFILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"profile\"])},\n \"SPORTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sports\"])}\n },\n \"SPORT\": {\n \"ACTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"action\"])},\n \"COLOR\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"color\"])},\n \"DISABLED_BY_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"disabled by admin\"])},\n \"IS_ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"active\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"label\"])},\n \"STOPPED_SPEED_THRESHOLD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"stopped speed threshold\"])}\n },\n \"SUCCESSFUL_EMAIL_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Your account has been updated successfully. Please check your email to confirm your new email address.\"])},\n \"SUCCESSFUL_REGISTRATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Your account has been created successfully.\"])},\n \"SUCCESSFUL_REGISTRATION_WITH_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"A link to activate your account has been emailed to the address provided.\"])},\n \"SUCCESSFUL_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Your account has been updated successfully.\"])},\n \"UNITS\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Units for distance\"])},\n \"IMPERIAL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Imperial system (ft, mi)\"])},\n \"METRIC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Metric system (m, km)\"])}\n },\n \"TIMEZONE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Timezone\"])}\n },\n \"REGISTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Register\"])},\n \"RESENT_ACCOUNT_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Resend account confirmation email\"])},\n \"REGISTER_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sorry, registration is disabled.\"])},\n \"RESET_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reset your password\"])},\n \"SHOW_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"show password\"])},\n \"THIS_USER_ACCOUNT_IS_INACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"This user account is inactive.\"])},\n \"USER_PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"user picture\"])},\n \"USERNAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Username\"])},\n \"USERNAME_INFO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"3 to 30 characters required, only alphanumeric characters and the underscore character \\\"_\\\" allowed.\"])}\n}","export default {\n \"ADD_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Add a workout\"])},\n \"ANALYSIS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"analysis\"])},\n \"ASCENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ascent\"])},\n \"AVE_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ave. speed\"])},\n \"AVERAGE_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"average speed\"])},\n \"BACK_TO_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"back to workout\"])},\n \"DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"date\"])},\n \"DESCENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"descent\"])},\n \"DISPLAY_FILTERS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"display filters\"])},\n \"DISTANCE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"distance\"])},\n \"DURATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"duration\"])},\n \"EDIT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Edit the workout\"])},\n \"ELEVATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"elevation\"])},\n \"END\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"end\"])},\n \"FROM\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"from\"])},\n \"GPX_FILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\".gpx file\"])},\n \"HIDE_FILTERS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"hide filters\"])},\n \"LATEST_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Latest workouts\"])},\n \"LOAD_MORE_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Load more workouts\"])},\n \"MAX_ALTITUDE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"max. altitude\"])},\n \"MAX_FILES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"max files\"])},\n \"MAX_SIZE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"max size\"])},\n \"MAX_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"max. speed\"])},\n \"MIN_ALTITUDE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"min. altitude\"])},\n \"NEXT_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No next segment\"])},\n \"NEXT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Next workout\"])},\n \"NO_DATA_CLEANING\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"data from gpx, without any cleaning\"])},\n \"NO_FILE_PROVIDED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No file provided\"])},\n \"NO_FOLDER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"no folder inside\"])},\n \"NO_MAP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No map\"])},\n \"NO_NEXT_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No next segment\"])},\n \"NO_NEXT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No next workout\"])},\n \"NO_NOTES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No notes\"])},\n \"NO_PREVIOUS_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No previous segment\"])},\n \"NO_PREVIOUS_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No previous workout\"])},\n \"NO_RECORDS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No records.\"])},\n \"NO_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No workouts.\"])},\n \"NOTES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"notes\"])},\n \"PAUSES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"pauses\"])},\n \"PREVIOUS_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Previous segment\"])},\n \"PREVIOUS_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Previous workout\"])},\n \"RECORD\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"record\"]), _normalize([\"records\"])])},\n \"RECORD_AS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ave. speed\"])},\n \"RECORD_FD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Farthest distance\"])},\n \"RECORD_LD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Longest duration\"])},\n \"RECORD_MS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. speed\"])},\n \"REMAINING_CHARS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"remaining characters\"])},\n \"SEGMENT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"segment\"]), _normalize([\"segments\"])])},\n \"SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"speed\"])},\n \"SPORT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"sport\"]), _normalize([\"sports\"])])},\n \"START\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"start\"])},\n \"START_AND_FINISH\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Start and finish\"])},\n \"START_ELEVATION_AT_ZERO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"start elevation axis at zero\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"title\"])},\n \"TO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"to\"])},\n \"TOTAL_DURATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"total duration\"])},\n \"UPLOAD_FIRST_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Upload one!\"])},\n \"WEATHER\": {\n \"HUMIDITY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"humidity\"])},\n \"TEMPERATURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"temperature\"])},\n \"WIND\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"wind\"])},\n \"WIND_DIRECTIONS\": {\n \"N\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"N\"])},\n \"NNE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NNE\"])},\n \"NE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NE\"])},\n \"ENE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ENE\"])},\n \"E\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"E\"])},\n \"ESE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ESE\"])},\n \"SE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SE\"])},\n \"SSE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SSE\"])},\n \"S\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"S\"])},\n \"SSW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SSW\"])},\n \"SW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SW\"])},\n \"WSW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"WSW\"])},\n \"W\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"W\"])},\n \"WNW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"WNW\"])},\n \"NW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NW\"])},\n \"NNW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NNW\"])}\n },\n \"DARK_SKY\": {\n \"clear-day\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"clear day\"])},\n \"clear-night\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"clear night\"])},\n \"cloudy\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"cloudy\"])},\n \"fog\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"fog\"])},\n \"partly-cloudy-day\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"partly cloudy day\"])},\n \"partly-cloudy-night\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"partly cloudy night\"])},\n \"rain\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"rain\"])},\n \"sleet\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sleet\"])},\n \"snow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"snow\"])},\n \"wind\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"wind\"])}\n }\n },\n \"WITH_GPX\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"with .gpx file\"])},\n \"WITHOUT_GPX\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"without .gpx file\"])},\n \"WORKOUT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"workout\"]), _normalize([\"workouts\"])])},\n \"WORKOUT_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"workout date\"])},\n \"WORKOUT_DELETION_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Are you sure you want to delete this workout?\"])},\n \"ZIP_ARCHIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\".zip file\"])},\n \"ZIP_ARCHIVE_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"or .zip file containing .gpx files\"])}\n}","import AboutTranslations from './about.json'\nimport AdministrationTranslations from './administration.json'\nimport ApiTranslations from './api.json'\nimport ButtonsTranslations from './buttons.json'\nimport CommonTranslations from './common.json'\nimport DashboardTranslations from './dashboard.json'\nimport ErrorTranslations from './error.json'\nimport SportsTranslations from './sports.json'\nimport StatisticsTranslations from './statistics.json'\nimport UserTranslations from './user.json'\nimport WorkoutsTranslations from './workouts.json'\n\nexport default {\n about: AboutTranslations,\n admin: AdministrationTranslations,\n api: ApiTranslations,\n buttons: ButtonsTranslations,\n common: CommonTranslations,\n dashboard: DashboardTranslations,\n error: ErrorTranslations,\n sports: SportsTranslations,\n statistics: StatisticsTranslations,\n user: UserTranslations,\n workouts: WorkoutsTranslations,\n}\n","export default {\n \"CONTACT_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Contacter l'administrateur\"])},\n \"FITTRACKEE_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"FitTrackee est un tracker d'activités sportives (en extérieur).\"])},\n \"FITTRACKEE_LICENSE\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"sous license \", _interpolate(_list(0)), \" (en)\"])},\n \"SOURCE_CODE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Code source (en)\"])}\n}","export default {\n \"ACTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Action\"])},\n \"ACTIVATE_USER_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Activer le compte\"])},\n \"ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Actif\"])},\n \"ADMIN_RIGHTS_DELETE_USER_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ajouter/retirer des droits d'administration, supprimer des comptes utilisateurs.\"])},\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Admin\"])},\n \"ADMINISTRATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Administration\"])},\n \"APPLICATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Application\"])},\n \"APP_CONFIG\": {\n \"ADMIN_CONTACT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Email de l'administrateur pour contact \"])},\n \"MAX_USERS_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nombre maximum d'utilisateurs actifs \"])},\n \"MAX_USERS_HELP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Si égal à 0, pas limite d'inscription\"])},\n \"MAX_FILES_IN_ZIP_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Taille max. des archives zip (en Mo) \"])},\n \"NO_CONTACT_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"non renseigné\"])},\n \"SINGLE_UPLOAD_MAX_SIZE_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Taille max. des fichiers (en Mo) \"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Configuration de l'application\"])},\n \"ZIP_UPLOAD_MAX_SIZE_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nombre max. de fichiers dans une archive zip \"])}\n },\n \"BACK_TO_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Revenir à l'admin\"])},\n \"CONFIRM_USER_ACCOUNT_DELETION\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Êtes-vous sûr de vouloir supprimer le compte de l'utilisateur \", _interpolate(_list(0)), \" ? Toutes les données seront définitivement.\"])},\n \"CONFIRM_USER_PASSWORD_RESET\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Êtes-vous sûr de vouloir réinitialiser le mot de passe de l'utilisateur \", _interpolate(_list(0)), \" ?\"])},\n \"CURRENT_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Adresse email actuelle\"])},\n \"DELETE_USER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Supprimer l'utilisateur\"])},\n \"EMAIL_SENDING_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"L'envoi d'emails est désactivé.\"])},\n \"ENABLE_DISABLE_SPORTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Activer/désactiver des sports.\"])},\n \"NEW_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nouvelle adresse email\"])},\n \"PASSWORD_RESET_SUCCESSFUL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Le mot de passe a été réinitialisé.\"])},\n \"REGISTRATION_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Les inscriptions sont actuellement désactivées.\"])},\n \"REGISTRATION_ENABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Les inscriptions sont actuellement activées.\"])},\n \"RESET_USER_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Réinit. le mot de passe\"])},\n \"SPORTS\": {\n \"TABLE\": {\n \"ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Actif\"])},\n \"HAS_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"des séances existent\"])},\n \"IMAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Image\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Label\"])}\n },\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Administration - Sports\"])}\n },\n \"UPDATE_APPLICATION_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Configurer l'application (nombre maximum d'utilisateurs inscrits, taille maximale des fichers).\"])},\n \"UPDATE_USER_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Changer l'email\"])},\n \"USER\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"utilisateur\"]), _normalize([\"utilisateurs\"])])},\n \"USER_EMAIL_UPDATE_SUCCESSFUL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"L'adresse email a été mise à jour.\"])},\n \"USERS\": {\n \"TABLE\": {\n \"ADD_ADMIN_RIGHTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ajouter les droits d'admin\"])},\n \"REMOVE_ADMIN_RIGHTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Retirer les droits d'admin\"])}\n },\n \"SELECTS\": {\n \"ORDER_BY\": {\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"status administrateur\"])},\n \"CREATED_AT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"date d'inscription\"])},\n \"IS_ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"statut du compte\"])},\n \"USERNAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nom d'utilisateur\"])},\n \"WORKOUTS_COUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nombre de séances\"])}\n }\n }\n }\n}","export default {\n \"ERROR\": {\n \"UNKNOWN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur. Veuillez réessayer ou contacter l'administrateur.\"])},\n \"email: valid email must be provided\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Email : une adresse email valide doit être fournie.\"])},\n \"error on getting configuration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur lors de la récupération de la configuration.\"])},\n \"error when updating configuration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur lors de la mise à jour de la configuration\"])},\n \"error, please try again or contact the administrator\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur, veuillez réessayer ou contacter l'administrateur.\"])},\n \"error, registration is disabled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur, les inscriptions sont désactivées.\"])},\n \"file extension not allowed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Extension de fichier non autorisée.\"])},\n \"file size is greater than the allowed size\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"La taille du fichier est supérieure à la limite autorisée.\"])},\n \"invalid credentials\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Identifiants invalides.\"])},\n \"invalid payload\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Données fournies incorrectes.\"])},\n \"invalid token, please log in again\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Jeton de connexion invalide, merci de vous reconnecter.\"])},\n \"invalid token, please request a new token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Jeton de connexion, merci de vous reconnecter.\"])},\n \"no file part\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de fichier fourni.\"])},\n \"no selected file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de fichier sélectionné.\"])},\n \"Network Error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur Réseau.\"])},\n \"new email must be different than curent email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"La nouvelle addresse email doit être differente de l'adresse actuelle\"])},\n \"password: password and password confirmation do not match\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mot de passe : les mots de passe saisis sont différents.\"])},\n \"provide a valid auth token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Merci de fournir un jeton de connexion valide.\"])},\n \"sport does not exist\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ce sport n'existe pas.\"])},\n \"signature expired, please log in again\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Signature expirée. Merci de vous reconnecter.\"])},\n \"sorry, that username is already taken\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Désolé, ce nom d'utilisateur est déjà utilisé.\"])},\n \"successfully registered\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Inscription validée.\"])},\n \"user does not exist\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"L'utilisateur n'existe pas\"])},\n \"valid email must be provided for admin contact\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Une adresse email doit être fournie pour le contact de l'administrateur.\"])},\n \"you can not delete your account, no other user has admin rights\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vous ne pouvez pas supprimer votre compte, aucun autre utilisateur n'a des droits d'administration.\"])},\n \"you do not have permissions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vous n'avez pas les permissions nécessaires.\"])}\n },\n \"PAGINATION\": {\n \"PREVIOUS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"précédent\"])},\n \"NEXT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"suivant\"])}\n }\n}","export default {\n \"ACCOUNT-CONFIRMATION-RESEND\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Envoyer à nouveau l'email de confirmation\"])},\n \"BACK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Précédent\"])},\n \"CANCEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Annuler\"])},\n \"CLEAR_FILTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Réinitialiser\"])},\n \"DELETE_MY_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Supprimer mon compte\"])},\n \"DISABLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Désactiver\"])},\n \"EDIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Modifier\"])},\n \"ENABLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Activer\"])},\n \"FILTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Filtrer\"])},\n \"LOGIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Se connecter\"])},\n \"NO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Non\"])},\n \"REGISTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"S'inscrire\"])},\n \"RESET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Réinit.\"])},\n \"SUBMIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Valider\"])},\n \"YES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Oui\"])}\n}","export default {\n \"ABOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"à propos\"])},\n \"CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Confirmation\"])},\n \"CONTACT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"contact\"])},\n \"DAY\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"jour\"]), _normalize([\"jours\"])])},\n \"DOCUMENTATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"documentation (en)\"])},\n \"HOME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Accueil\"])},\n \"HERE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ici\"])},\n \"SELECTS\": {\n \"ORDER_BY\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"trier par \"])}\n },\n \"ORDER\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"tri\"])},\n \"ASC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ascendant\"])},\n \"DESC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"descendant\"])}\n },\n \"PER_PAGE\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"par page\"])}\n }\n },\n \"TOTAL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Total\"])}\n}","export default {\n \"DASHBOARD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Tableau de Bord\"])},\n \"THIS_MONTH\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ce mois\"])}\n}","export default {\n \"UNKNOWN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur. Veuillez réessayer ou contacter l'administrateur.\"])},\n \"APP_ERROR\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"L'application semble rencontrer quelques problèmes.
Veuillez réessayer plus tard ou contacter l'administrateur.\"])},\n \"NOT_FOUND\": {\n \"PAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Page introuvable\"])},\n \"WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Séance introuvable\"])}\n },\n \"SOMETHING_WRONG\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Une erreur s'est produite\"])}\n}","export default {\n \"Cycling (Sport)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vélo (Sport)\"])}\n },\n \"Cycling (Transport)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vélo (Transport)\"])}\n },\n \"Hiking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Randonnée\"])}\n },\n \"Mountain Biking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"VTT\"])}\n },\n \"Mountain Biking (Electric)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"VTT (Electrique)\"])}\n },\n \"Rowing\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aviron\"])}\n },\n \"Running\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Course\"])}\n },\n \"Skiing (Alpine)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ski (Alpin)\"])}\n },\n \"Skiing (Cross Country)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ski (Randonnée)\"])}\n },\n \"Snowshoes\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Raquettes\"])}\n },\n \"Trail\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Trail\"])}\n },\n \"Walking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Marche\"])}\n }\n}","export default {\n \"STATISTICS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Statistiques\"])},\n \"TIME_FRAMES\": {\n \"week\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"semaine\"])},\n \"month\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"mois\"])},\n \"year\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"année\"])}\n }\n}","export default {\n \"ACCOUNT_CONFIRMATION_NOT_RECEIVED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vous n'avez pas reçu les instructions ?\"])},\n \"ACCOUNT_CONFIRMATION_SENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vérifiez votre boite mail. Un nouvel email de confirmation a été envoyé à l'adresse email fournie.\"])},\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Admin\"])},\n \"ALREADY_HAVE_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vous avez déjà un compte ?\"])},\n \"CONFIRM_ACCOUNT_DELETION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Êtes-vous sûr de vouloir supprimer votre compte ? Toutes les données seront définitivement effacés.\"])},\n \"CURRENT_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mot de passe actuel\"])},\n \"EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Email\"])},\n \"EMAIL_INFO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Saisir une adresse email valide.\"])},\n \"ENTER_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Saisir un mot de passe\"])},\n \"FILTER_ON_USERNAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Filtrer sur le nom d'utilisateur\"])},\n \"HIDE_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"masquer le mot de passe\"])},\n \"INVALID_TOKEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Jeton invalide, veuillez demander une nouvelle réinitialisation de mot de passe.\"])},\n \"LANGUAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Langue\"])},\n \"LOG_IN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"connecter\"])},\n \"LOGIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Se connecter\"])},\n \"LOGOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Se déconnecter\"])},\n \"NEW_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nouveau mot de passe\"])},\n \"NO_USERS_FOUND\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aucun utilisateur trouvé.\"])},\n \"PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mot de passe\"])},\n \"PASSWORD_INFO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"8 caractères minimum.\"])},\n \"PASSWORD_FORGOTTEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mot de passe oublié ?\"])},\n \"PASSWORD_RESET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Réinitialisation du mot de passe\"])},\n \"PASSWORD_SENT_EMAIL_TEXT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vérifiez votre boite mail. Si vote adresse est dans notre base de données, vous recevrez un email avec un lien pour réinitialiser votre mot de passe.\"])},\n \"PASSWORD_STRENGTH\": {\n \"WEAK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"faible\"])},\n \"AVERAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"moyenne\"])},\n \"GOOD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"bonne\"])},\n \"STRONG\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"forte\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"robustesse du mot de passe \"])},\n \"SUGGESTIONS\": {\n \"l33t\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Évitez les substitutions de lettres prévisibles comme \", \"@\", \" pour a.\"])},\n \"reverseWords\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Évitez les orthographes inversées des mots courants\"])},\n \"allUppercase\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mettez quelques lettres en majuscules, mais pas toutes.\"])},\n \"capitalization\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Capitalisez mais pas seulement la première lettre.\"])},\n \"dates\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Évitez les dates et les années qui vous sont associées. (ex: date ou année de naissance)\"])},\n \"recentYears\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Évitez les dernières années.\"])},\n \"associatedYears\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Évitez les années qui vous sont associées. (ex: date de naissance)\"])},\n \"sequences\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Évitez les séquences de caractères courantes.\"])},\n \"repeated\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Évitez les mots et les caractères répétés.\"])},\n \"longerKeyboardPattern\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Utilisez des motifs de clavier plus longs et changez de sens de frappe plusieurs fois.\"])},\n \"anotherWord\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ajoutez des mots moins courants.\"])},\n \"useWords\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Utilisez plusieurs mots, mais évitez les phrases courantes.\"])},\n \"noNeed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vous pouvez créer des mots de passe forts sans utiliser de symboles, de chiffres ou de lettres majuscules.\"])},\n \"pwned\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Si vous utilisez ce mot de passe ailleurs, vous devriez le modifier.\"])}\n }\n },\n \"PASSWORD_UPDATED\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Votre mot de passe a été mis à jour. Cliquez \", _interpolate(_list(0)), \" pour vous connecter.\"])},\n \"PROFILE\": {\n \"ACCOUNT_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mise à jour du compte\"])},\n \"BACK_TO_PROFILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Revenir au profil\"])},\n \"BIO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bio\"])},\n \"BIRTH_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Date de naissance\"])},\n \"EDIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Modifier le profil\"])},\n \"EDIT_PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Modifier les préférences\"])},\n \"EDIT_SPORTS_PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Modifier les préférences des sports\"])},\n \"ERRORED_EMAIL_UPDATE\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Veuillez vous \", _interpolate(_list(0)), \" pour changer de nouveau votre adresse email ou contacter l'administrateur\"])},\n \"FIRST_DAY_OF_WEEK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Premier jour de la semaine\"])},\n \"FIRST_NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Prénom\"])},\n \"LANGUAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Langue\"])},\n \"LAST_NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nom\"])},\n \"LOCATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Lieu\"])},\n \"MONDAY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Lundi\"])},\n \"PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Image de profil\"])},\n \"PICTURE_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mise à jour de l'image de profil\"])},\n \"PICTURE_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mettre à jour l'image\"])},\n \"PICTURE_REMOVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Supprimer\"])},\n \"PREFERENCES_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mise à jour des préférences\"])},\n \"PROFILE_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mise à jour du profil\"])},\n \"REGISTRATION_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Date d'inscription\"])},\n \"SPORTS_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mise à jour des préférences des sports\"])},\n \"SUNDAY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dimanche\"])},\n \"TABS\": {\n \"ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"compte\"])},\n \"PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"image\"])},\n \"PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"préférences\"])},\n \"PROFILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"profil\"])},\n \"SPORTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sports\"])}\n },\n \"UNITS\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unités pour les distances \"])},\n \"IMPERIAL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Système impérial (ft, mi)\"])},\n \"METRIC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Système métrique (m, km)\"])}\n },\n \"SPORT\": {\n \"ACTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"action\"])},\n \"COLOR\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"couleur\"])},\n \"DISABLED_BY_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"désactivé par l'administrateur\"])},\n \"IS_ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"actif\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"label\"])},\n \"STOPPED_SPEED_THRESHOLD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"seuil de vitesse arrêtée\"])}\n },\n \"SUCCESSFUL_EMAIL_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Votre compte a été modifié avec succès. Veuillez vérifier votre boite email pour valider votre nouvelle adresse email.\"])},\n \"SUCCESSFUL_REGISTRATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Votre compte a été créé avec succès.\"])},\n \"SUCCESSFUL_REGISTRATION_WITH_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Un lien pour activer votre compte a été envoyé à l'adresse email fournie.\"])},\n \"SUCCESSFUL_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Votre compte a été modifié avec succès.\"])},\n \"TIMEZONE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fuseau horaire\"])}\n },\n \"REGISTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"S'inscrire\"])},\n \"REGISTER_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Désolé, les inscriptions sont désactivées.\"])},\n \"RESENT_ACCOUNT_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Envoyer à nouveau l'email de confirmation de compte\"])},\n \"RESET_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Réinitialiser votre mot de passe\"])},\n \"SHOW_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"afficher le mot de passe\"])},\n \"THIS_USER_ACCOUNT_IS_INACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Le compte de cet utilisateur est inactif.\"])},\n \"USER_PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"photo de l'utilisateur\"])},\n \"USERNAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nom d'utilisateur\"])},\n \"USERNAME_INFO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"3 à 30 caractères requis, seuls les caractères alphanumériques et le caractère \\\"_\\\" sont autorisés.\"])}\n}","export default {\n \"ADD_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ajouter une séance\"])},\n \"ANALYSIS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"analyse\"])},\n \"ASCENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"dénivelé positif\"])},\n \"AVERAGE_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"vitesse moyenne\"])},\n \"AVE_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"vitesse moy.\"])},\n \"BACK_TO_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"revenir à la séance\"])},\n \"DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"date\"])},\n \"DESCENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"dénivelé négatif\"])},\n \"DISPLAY_FILTERS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"afficher les filtres\"])},\n \"DISTANCE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"distance\"])},\n \"DURATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"durée\"])},\n \"EDIT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Modifier la séance\"])},\n \"ELEVATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"altitude\"])},\n \"END\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"fin\"])},\n \"FROM\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"à partir de\"])},\n \"GPX_FILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"fichier .gpx\"])},\n \"HIDE_FILTERS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"masquer les filtres\"])},\n \"LATEST_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Séances récentes\"])},\n \"LOAD_MORE_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Charger les séances suivantes\"])},\n \"MAX_ALTITUDE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"altitude max\"])},\n \"MAX_FILES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"fichiers max. \"])},\n \"MAX_SIZE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"taille max. \"])},\n \"MAX_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"vitesse max\"])},\n \"MIN_ALTITUDE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"altitude min\"])},\n \"NEXT_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Segment suivant\"])},\n \"NEXT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Séance suivante\"])},\n \"NO_DATA_CLEANING\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"données issues du fichier gpx, sans correction\"])},\n \"NO_FILE_PROVIDED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de fichier fourni\"])},\n \"NO_FOLDER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"pas de répertoire\"])},\n \"NO_MAP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de carte\"])},\n \"NO_NEXT_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de segment suivant\"])},\n \"NO_NEXT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de séance suivante\"])},\n \"NO_NOTES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de notes\"])},\n \"NO_PREVIOUS_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de segment précédent\"])},\n \"NO_PREVIOUS_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de séance précédente\"])},\n \"NO_RECORDS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de records.\"])},\n \"NO_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de séances.\"])},\n \"NOTES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"notes\"])},\n \"PAUSES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"pauses\"])},\n \"PREVIOUS_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Segment précédent\"])},\n \"PREVIOUS_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Séance précédente\"])},\n \"RECORD\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"record\"]), _normalize([\"records\"])])},\n \"RECORD_AS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vitesse moy.\"])},\n \"RECORD_FD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Distance la + longue\"])},\n \"RECORD_LD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Durée la + longue\"])},\n \"RECORD_MS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vitesse max.\"])},\n \"REMAINING_CHARS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nombre de caractères restants \"])},\n \"SEGMENT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"segment\"]), _normalize([\"segments\"])])},\n \"SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"vitesse\"])},\n \"SPORT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"sport\"]), _normalize([\"sports\"])])},\n \"START\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"début\"])},\n \"START_AND_FINISH\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Départ et arrivée\"])},\n \"START_ELEVATION_AT_ZERO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"démarrer l'axe de l'altitude à 0\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"titre\"])},\n \"TO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"jusqu'au\"])},\n \"TOTAL_DURATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"durée totale\"])},\n \"UPLOAD_FIRST_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ajoutez votre première séance !\"])},\n \"WEATHER\": {\n \"HUMIDITY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"humidité\"])},\n \"TEMPERATURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"température\"])},\n \"WIND\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"vent\"])},\n \"WIND_DIRECTIONS\": {\n \"N\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"N\"])},\n \"NNE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NNE\"])},\n \"NE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NE\"])},\n \"ENE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ENE\"])},\n \"E\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"E\"])},\n \"ESE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ESE\"])},\n \"SE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SE\"])},\n \"SSE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SSE\"])},\n \"S\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"S\"])},\n \"SSW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SSO\"])},\n \"SW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SO\"])},\n \"WSW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"OSO\"])},\n \"W\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"O\"])},\n \"WNW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ONO\"])},\n \"NW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NO\"])},\n \"NNW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NNO\"])}\n },\n \"DARK_SKY\": {\n \"clear-day\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ensoleillé\"])},\n \"clear-night\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nuit claire\"])},\n \"cloudy\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nuageux\"])},\n \"fog\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"brouillard\"])},\n \"partly-cloudy-day\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"partiellement nuageux\"])},\n \"partly-cloudy-night\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nuit partiellement nuageuse\"])},\n \"rain\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"pluie\"])},\n \"sleet\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"neige fondue\"])},\n \"snow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"neige\"])},\n \"wind\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"venteux\"])}\n }\n },\n \"WITH_GPX\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"avec un fichier .gpx\"])},\n \"WITHOUT_GPX\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sans fichier .gpx\"])},\n \"WORKOUT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"séance\"]), _normalize([\"séances\"])])},\n \"WORKOUT_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"date de la séance\"])},\n \"WORKOUT_DELETION_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Etes-vous sûr de vouloir supprimer cette séance ?\"])},\n \"ZIP_ARCHIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"archive .zip\"])},\n \"ZIP_ARCHIVE_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ou une archive .zip contenant des fichiers .gpx\"])}\n}","import AboutTranslations from './about.json'\nimport AdministrationTranslations from './administration.json'\nimport ApiTranslations from './api.json'\nimport ButtonsTranslations from './buttons.json'\nimport CommonTranslations from './common.json'\nimport DashboardTranslations from './dashboard.json'\nimport ErrorTranslations from './error.json'\nimport SportsTranslations from './sports.json'\nimport StatisticsTranslations from './statistics.json'\nimport UserTranslations from './user.json'\nimport WorkoutsTranslations from './workouts.json'\n\nexport default {\n about: AboutTranslations,\n admin: AdministrationTranslations,\n api: ApiTranslations,\n buttons: ButtonsTranslations,\n common: CommonTranslations,\n dashboard: DashboardTranslations,\n error: ErrorTranslations,\n sports: SportsTranslations,\n statistics: StatisticsTranslations,\n user: UserTranslations,\n workouts: WorkoutsTranslations,\n}\n","/* eslint-disable no-console */\n\nimport { register } from 'register-service-worker'\n\nif (process.env.NODE_ENV === 'production') {\n register(`${process.env.BASE_URL}service-worker.js`, {\n ready() {\n console.log(\n 'App is being served from cache by a service worker.\\n' +\n 'For more details, visit https://goo.gl/AFskqB'\n )\n },\n registered() {\n console.log('Service worker has been registered.')\n },\n cached() {\n console.log('Content has been cached for offline use.')\n },\n updatefound() {\n console.log('New content is downloading.')\n },\n updated() {\n console.log('New content is available; please refresh.')\n },\n offline() {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n )\n },\n error(error) {\n console.error('Error during service worker registration:', error)\n },\n })\n}\n","import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, unref as _unref, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-2c73279e\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"footer\" }\nconst _hoisted_2 = { class: \"footer-items\" }\nconst _hoisted_3 = { class: \"footer-item\" }\nconst _hoisted_4 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"strong\", null, \"FitTrackee\", -1))\nconst _hoisted_5 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"footer-item bullet\" }, \"•\", -1))\nconst _hoisted_6 = { class: \"footer-item\" }\nconst _hoisted_7 = {\n key: 0,\n class: \"footer-item bullet\"\n}\nconst _hoisted_8 = {\n key: 1,\n class: \"footer-item\"\n}\nconst _hoisted_9 = [\"href\"]\nconst _hoisted_10 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"footer-item bullet\" }, \"•\", -1))\nconst _hoisted_11 = { class: \"footer-item\" }\nconst _hoisted_12 = {\n href: \"https://samr1.github.io/FitTrackee/\",\n target: \"_blank\",\n rel: \"noopener noreferrer\"\n}\n\nimport { toRefs } from 'vue'\n\n interface Props {\n version: string\n adminContact?: string\n }\n \nexport default /*#__PURE__*/_defineComponent({\n name: 'Footer',\n props: {\n version: null,\n adminContact: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n version: string\n adminContact?: string\n }\n\n \n\n const { adminContact, version } = toRefs(props)\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_link = _resolveComponent(\"router-link\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _hoisted_4,\n _createTextVNode(\" v\" + _toDisplayString(_unref(version)), 1)\n ]),\n _hoisted_5,\n _createElementVNode(\"div\", _hoisted_6, [\n _createVNode(_component_router_link, { to: \"/about\" }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('common.ABOUT')), 1)\n ]),\n _: 1\n })\n ]),\n (_unref(adminContact))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_7, \"•\"))\n : _createCommentVNode(\"\", true),\n (_unref(adminContact))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_8, [\n _createElementVNode(\"a\", {\n href: `mailto:${_unref(adminContact)}`\n }, _toDisplayString(_ctx.$t('common.CONTACT')), 9, _hoisted_9)\n ]))\n : _createCommentVNode(\"\", true),\n _hoisted_10,\n _createElementVNode(\"div\", _hoisted_11, [\n _createElementVNode(\"a\", _hoisted_12, _toDisplayString(_ctx.$t('common.DOCUMENTATION')), 1)\n ])\n ])\n ]))\n}\n}\n\n})","import script from \"./Footer.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Footer.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./Footer.vue?vue&type=style&index=0&id=2c73279e&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-2c73279e\"]])\n\nexport default __exports__","import script from \"./NavBar.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./NavBar.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./NavBar.vue?vue&type=style&index=0&id=0d4f0b8f&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-0d4f0b8f\"]])\n\nexport default __exports__","import script from \"./NoConfig.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./NoConfig.vue?vue&type=script&lang=ts&setup=true\"\n\nimport \"./NoConfig.vue?vue&type=style&index=0&id=47759238&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-47759238\"]])\n\nexport default __exports__","import script from \"./App.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./App.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./App.vue?vue&type=style&index=0&id=c446fb44&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import script from \"./AlertMessage.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AlertMessage.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./AlertMessage.vue?vue&type=style&index=0&id=69d7e4ff&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-69d7e4ff\"]])\n\nexport default __exports__","import script from \"./CustomTextArea.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./CustomTextArea.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./CustomTextArea.vue?vue&type=style&index=0&id=3ec2aca2&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-3ec2aca2\"]])\n\nexport default __exports__","import script from \"./Distance.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Distance.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./Distance.vue?vue&type=style&index=0&id=f46ff1d6&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-f46ff1d6\"]])\n\nexport default __exports__","import script from \"./Dropdown.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Dropdown.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./Dropdown.vue?vue&type=style&index=0&id=ca61364c&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-ca61364c\"]])\n\nexport default __exports__","import script from \"./ErrorMessage.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./ErrorMessage.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./ErrorMessage.vue?vue&type=style&index=0&id=2659a79a&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-2659a79a\"]])\n\nexport default __exports__","\n\n\n","import { render } from \"./CyclingSport.vue?vue&type=template&id=be8023a2\"\nimport script from \"./CyclingSport.vue?vue&type=script&lang=js\"\nexport * from \"./CyclingSport.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./CyclingTransport.vue?vue&type=template&id=97af5148\"\nimport script from \"./CyclingTransport.vue?vue&type=script&lang=js\"\nexport * from \"./CyclingTransport.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./Hiking.vue?vue&type=template&id=40903dc4\"\nimport script from \"./Hiking.vue?vue&type=script&lang=js\"\nexport * from \"./Hiking.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./MountainBiking.vue?vue&type=template&id=5bdbc6e8\"\nimport script from \"./MountainBiking.vue?vue&type=script&lang=js\"\nexport * from \"./MountainBiking.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./MountainBikingElectric.vue?vue&type=template&id=21e72aec\"\nimport script from \"./MountainBikingElectric.vue?vue&type=script&lang=js\"\nexport * from \"./MountainBikingElectric.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./Rowing.vue?vue&type=template&id=31ae2dd5\"\nimport script from \"./Rowing.vue?vue&type=script&lang=js\"\nexport * from \"./Rowing.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./Running.vue?vue&type=template&id=4d47a4fe\"\nimport script from \"./Running.vue?vue&type=script&lang=js\"\nexport * from \"./Running.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./SkiingAlpine.vue?vue&type=template&id=3ebf3bca\"\nimport script from \"./SkiingAlpine.vue?vue&type=script&lang=js\"\nexport * from \"./SkiingAlpine.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./SkiingCrossCountry.vue?vue&type=template&id=1561bbe6\"\nimport script from \"./SkiingCrossCountry.vue?vue&type=script&lang=js\"\nexport * from \"./SkiingCrossCountry.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./Snowshoes.vue?vue&type=template&id=67df2761\"\nimport script from \"./Snowshoes.vue?vue&type=script&lang=js\"\nexport * from \"./Snowshoes.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./Trail.vue?vue&type=template&id=32a14156\"\nimport script from \"./Trail.vue?vue&type=script&lang=js\"\nexport * from \"./Trail.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./Walking.vue?vue&type=template&id=2ed4f5f4\"\nimport script from \"./Walking.vue?vue&type=script&lang=js\"\nexport * from \"./Walking.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import script from \"./index.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./index.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n\n\n","import { render } from \"./Loader.vue?vue&type=template&id=4c9921ee&scoped=true\"\nconst script = {}\n\nimport \"./Loader.vue?vue&type=style&index=0&id=4c9921ee&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-4c9921ee\"]])\n\nexport default __exports__","import script from \"./Modal.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Modal.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./Modal.vue?vue&type=style&index=0&id=e8fcfaba&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-e8fcfaba\"]])\n\nexport default __exports__","import AlertMessage from '@/components/Common/AlertMessage.vue'\nimport Card from '@/components/Common/Card.vue'\nimport CustomTextArea from '@/components/Common/CustomTextArea.vue'\nimport Distance from '@/components/Common/Distance.vue'\nimport Dropdown from '@/components/Common/Dropdown.vue'\nimport ErrorMessage from '@/components/Common/ErrorMessage.vue'\nimport SportImage from '@/components/Common/Images/SportImage/index.vue'\nimport Loader from '@/components/Common/Loader.vue'\nimport Modal from '@/components/Common/Modal.vue'\n\nexport const customComponents = [\n { target: AlertMessage, name: 'AlertMessage' },\n { target: Card, name: 'Card' },\n { target: CustomTextArea, name: 'CustomTextArea' },\n { target: Distance, name: 'Distance' },\n { target: Dropdown, name: 'Dropdown' },\n { target: ErrorMessage, name: 'ErrorMessage' },\n { target: Loader, name: 'Loader' },\n { target: Modal, name: 'Modal' },\n { target: SportImage, name: 'SportImage' },\n]\n","import { Directive, DirectiveBinding } from 'vue'\n\ninterface ClickOutsideHTMLElement extends HTMLElement {\n clickOutsideEvent?: (event: MouseEvent | TouchEvent) => void\n}\n\nexport const clickOutsideDirective: Directive = {\n mounted: (\n element: ClickOutsideHTMLElement,\n binding: DirectiveBinding\n ): void => {\n element.clickOutsideEvent = function (event) {\n if (!(element === event.target || element.contains(event.target))) {\n binding.value(event)\n }\n }\n document.body.addEventListener('click', element.clickOutsideEvent)\n document.body.addEventListener('touchstart', element.clickOutsideEvent)\n },\n unmounted: function (element: ClickOutsideHTMLElement): void {\n if (element.clickOutsideEvent) {\n document.body.removeEventListener('click', element.clickOutsideEvent)\n document.body.removeEventListener('touchstart', element.clickOutsideEvent)\n element.clickOutsideEvent = undefined\n }\n },\n}\n","import {\n Chart,\n BarElement,\n LineElement,\n PointElement,\n Legend,\n Title,\n Tooltip,\n Filler,\n BarController,\n CategoryScale,\n LineController,\n LinearScale,\n} from 'chart.js'\nimport ChartDataLabels from 'chartjs-plugin-datalabels'\nimport { createApp } from 'vue'\nimport VueFullscreen from 'vue-fullscreen'\n\nimport './registerServiceWorker'\nimport App from './App.vue'\nimport i18n from './i18n'\nimport router from './router'\nimport store from './store'\n\nimport { customComponents } from '@/custom-components'\nimport { clickOutsideDirective } from '@/directives'\nimport { sportColors } from '@/utils/sports'\n\nChart.register(\n BarElement,\n LineElement,\n PointElement,\n Legend,\n Title,\n Tooltip,\n Filler,\n BarController,\n CategoryScale,\n LineController,\n LinearScale,\n ChartDataLabels\n)\n\nconst app = createApp(App)\n .provide('sportColors', sportColors)\n .use(i18n)\n .use(store)\n .use(router)\n .use(VueFullscreen, { name: 'VFullscreen' })\n .directive('click-outside', clickOutsideDirective)\n\ncustomComponents.forEach((component) => {\n app.component(component.name, component.target)\n})\n\napp.mount('#app')\n","import script from \"./AdminApplication.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AdminApplication.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./AdminApplication.vue?vue&type=style&index=0&id=24ec93e2&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-24ec93e2\"]])\n\nexport default __exports__","import script from \"./StatCard.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./StatCard.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./StatCard.vue?vue&type=style&index=0&id=6cbb3351&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import script from \"./AppStatsCards.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AppStatsCards.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./AppStatsCards.vue?vue&type=style&index=0&id=61c5053e&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import script from \"./AdminMenu.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AdminMenu.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./AdminMenu.vue?vue&type=style&index=0&id=0dd66f89&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-0dd66f89\"]])\n\nexport default __exports__","import script from \"./AdminSports.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AdminSports.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./AdminSports.vue?vue&type=style&index=0&id=6d62af67&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-6d62af67\"]])\n\nexport default __exports__","import script from \"./UsersNameFilter.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./UsersNameFilter.vue?vue&type=script&lang=ts&setup=true\"\n\nimport \"./UsersNameFilter.vue?vue&type=style&index=0&id=627a8e91&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-627a8e91\"]])\n\nexport default __exports__","import script from \"./AdminUsers.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AdminUsers.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./AdminUsers.vue?vue&type=style&index=0&id=4735c10f&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-4735c10f\"]])\n\nexport default __exports__","import script from \"./UserProfileTabs.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserProfileTabs.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserProfileTabs.vue?vue&type=style&index=0&id=40025245&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import script from \"./index.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./index.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./index.vue?vue&type=style&index=0&id=e26535e0&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-e26535e0\"]])\n\nexport default __exports__","import script from \"./UserPreferences.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserPreferences.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import script from \"./index.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./index.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import script from \"./UserAccountEdition.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserAccountEdition.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserAccountEdition.vue?vue&type=style&index=0&id=37b8c4c8&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-37b8c4c8\"]])\n\nexport default __exports__","import script from \"./UserInfosEdition.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserInfosEdition.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserInfosEdition.vue?vue&type=style&index=0&id=b6bacea0&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-b6bacea0\"]])\n\nexport default __exports__","import script from \"./UserPictureEdition.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserPictureEdition.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserPictureEdition.vue?vue&type=style&index=0&id=3a97bb3c&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-3a97bb3c\"]])\n\nexport default __exports__","export const timeZones = [\n 'Africa/Abidjan',\n 'Africa/Accra',\n 'Africa/Algiers',\n 'Africa/Bissau',\n 'Africa/Cairo',\n 'Africa/Casablanca',\n 'Africa/Ceuta',\n 'Africa/El_Aaiun',\n 'Africa/Johannesburg',\n 'Africa/Juba',\n 'Africa/Khartoum',\n 'Africa/Lagos',\n 'Africa/Maputo',\n 'Africa/Monrovia',\n 'Africa/Nairobi',\n 'Africa/Ndjamena',\n 'Africa/Sao_Tome',\n 'Africa/Tripoli',\n 'Africa/Tunis',\n 'Africa/Windhoek',\n 'America/Adak',\n 'America/Anchorage',\n 'America/Araguaina',\n 'America/Argentina/Buenos_Aires',\n 'America/Argentina/Catamarca',\n 'America/Argentina/Cordoba',\n 'America/Argentina/Jujuy',\n 'America/Argentina/La_Rioja',\n 'America/Argentina/Mendoza',\n 'America/Argentina/Rio_Gallegos',\n 'America/Argentina/Salta',\n 'America/Argentina/San_Juan',\n 'America/Argentina/San_Luis',\n 'America/Argentina/Tucuman',\n 'America/Argentina/Ushuaia',\n 'America/Asuncion',\n 'America/Atikokan',\n 'America/Bahia',\n 'America/Bahia_Banderas',\n 'America/Barbados',\n 'America/Belem',\n 'America/Belize',\n 'America/Blanc-Sablon',\n 'America/Boa_Vista',\n 'America/Bogota',\n 'America/Boise',\n 'America/Cambridge_Bay',\n 'America/Campo_Grande',\n 'America/Cancun',\n 'America/Caracas',\n 'America/Cayenne',\n 'America/Chicago',\n 'America/Chihuahua',\n 'America/Costa_Rica',\n 'America/Creston',\n 'America/Cuiaba',\n 'America/Curacao',\n 'America/Danmarkshavn',\n 'America/Dawson',\n 'America/Dawson_Creek',\n 'America/Denver',\n 'America/Detroit',\n 'America/Edmonton',\n 'America/Eirunepe',\n 'America/El_Salvador',\n 'America/Fortaleza',\n 'America/Fort_Nelson',\n 'America/Glace_Bay',\n 'America/Godthab',\n 'America/Goose_Bay',\n 'America/Grand_Turk',\n 'America/Guatemala',\n 'America/Guayaquil',\n 'America/Guyana',\n 'America/Halifax',\n 'America/Havana',\n 'America/Hermosillo',\n 'America/Indiana/Indianapolis',\n 'America/Indiana/Knox',\n 'America/Indiana/Marengo',\n 'America/Indiana/Petersburg',\n 'America/Indiana/Tell_City',\n 'America/Indiana/Vevay',\n 'America/Indiana/Vincennes',\n 'America/Indiana/Winamac',\n 'America/Inuvik',\n 'America/Iqaluit',\n 'America/Jamaica',\n 'America/Juneau',\n 'America/Kentucky/Louisville',\n 'America/Kentucky/Monticello',\n 'America/La_Paz',\n 'America/Lima',\n 'America/Los_Angeles',\n 'America/Maceio',\n 'America/Managua',\n 'America/Manaus',\n 'America/Martinique',\n 'America/Matamoros',\n 'America/Mazatlan',\n 'America/Menominee',\n 'America/Merida',\n 'America/Metlakatla',\n 'America/Mexico_City',\n 'America/Miquelon',\n 'America/Moncton',\n 'America/Monterrey',\n 'America/Montevideo',\n 'America/Nassau',\n 'America/New_York',\n 'America/Nipigon',\n 'America/Nome',\n 'America/Noronha',\n 'America/North_Dakota/Beulah',\n 'America/North_Dakota/Center',\n 'America/North_Dakota/New_Salem',\n 'America/Ojinaga',\n 'America/Panama',\n 'America/Pangnirtung',\n 'America/Paramaribo',\n 'America/Phoenix',\n 'America/Port-au-Prince',\n 'America/Port_of_Spain',\n 'America/Porto_Velho',\n 'America/Puerto_Rico',\n 'America/Punta_Arenas',\n 'America/Rainy_River',\n 'America/Rankin_Inlet',\n 'America/Recife',\n 'America/Regina',\n 'America/Resolute',\n 'America/Rio_Branco',\n 'America/Santarem',\n 'America/Santiago',\n 'America/Santo_Domingo',\n 'America/Sao_Paulo',\n 'America/Scoresbysund',\n 'America/Sitka',\n 'America/St_Johns',\n 'America/Swift_Current',\n 'America/Tegucigalpa',\n 'America/Thule',\n 'America/Thunder_Bay',\n 'America/Tijuana',\n 'America/Toronto',\n 'America/Vancouver',\n 'America/Whitehorse',\n 'America/Winnipeg',\n 'America/Yakutat',\n 'America/Yellowknife',\n 'Antarctica/Casey',\n 'Antarctica/Davis',\n 'Antarctica/DumontDUrville',\n 'Antarctica/Macquarie',\n 'Antarctica/Mawson',\n 'Antarctica/Palmer',\n 'Antarctica/Rothera',\n 'Antarctica/Syowa',\n 'Antarctica/Troll',\n 'Antarctica/Vostok',\n 'Asia/Almaty',\n 'Asia/Amman',\n 'Asia/Anadyr',\n 'Asia/Aqtau',\n 'Asia/Aqtobe',\n 'Asia/Ashgabat',\n 'Asia/Atyrau',\n 'Asia/Baghdad',\n 'Asia/Baku',\n 'Asia/Bangkok',\n 'Asia/Barnaul',\n 'Asia/Beirut',\n 'Asia/Bishkek',\n 'Asia/Brunei',\n 'Asia/Chita',\n 'Asia/Choibalsan',\n 'Asia/Colombo',\n 'Asia/Damascus',\n 'Asia/Dhaka',\n 'Asia/Dili',\n 'Asia/Dubai',\n 'Asia/Dushanbe',\n 'Asia/Famagusta',\n 'Asia/Gaza',\n 'Asia/Hebron',\n 'Asia/Ho_Chi_Minh',\n 'Asia/Hong_Kong',\n 'Asia/Hovd',\n 'Asia/Irkutsk',\n 'Asia/Jakarta',\n 'Asia/Jayapura',\n 'Asia/Jerusalem',\n 'Asia/Kabul',\n 'Asia/Kamchatka',\n 'Asia/Karachi',\n 'Asia/Kathmandu',\n 'Asia/Khandyga',\n 'Asia/Kolkata',\n 'Asia/Krasnoyarsk',\n 'Asia/Kuala_Lumpur',\n 'Asia/Kuching',\n 'Asia/Macau',\n 'Asia/Magadan',\n 'Asia/Makassar',\n 'Asia/Manila',\n 'Asia/Nicosia',\n 'Asia/Novokuznetsk',\n 'Asia/Novosibirsk',\n 'Asia/Omsk',\n 'Asia/Oral',\n 'Asia/Pontianak',\n 'Asia/Pyongyang',\n 'Asia/Qatar',\n 'Asia/Qostanay',\n 'Asia/Qyzylorda',\n 'Asia/Riyadh',\n 'Asia/Sakhalin',\n 'Asia/Samarkand',\n 'Asia/Seoul',\n 'Asia/Shanghai',\n 'Asia/Singapore',\n 'Asia/Srednekolymsk',\n 'Asia/Taipei',\n 'Asia/Tashkent',\n 'Asia/Tbilisi',\n 'Asia/Tehran',\n 'Asia/Thimphu',\n 'Asia/Tokyo',\n 'Asia/Tomsk',\n 'Asia/Ulaanbaatar',\n 'Asia/Urumqi',\n 'Asia/Ust-Nera',\n 'Asia/Vladivostok',\n 'Asia/Yakutsk',\n 'Asia/Yangon',\n 'Asia/Yekaterinburg',\n 'Asia/Yerevan',\n 'Atlantic/Azores',\n 'Atlantic/Bermuda',\n 'Atlantic/Canary',\n 'Atlantic/Cape_Verde',\n 'Atlantic/Faroe',\n 'Atlantic/Madeira',\n 'Atlantic/Reykjavik',\n 'Atlantic/South_Georgia',\n 'Atlantic/Stanley',\n 'Australia/Adelaide',\n 'Australia/Brisbane',\n 'Australia/Broken_Hill',\n 'Australia/Currie',\n 'Australia/Darwin',\n 'Australia/Eucla',\n 'Australia/Hobart',\n 'Australia/Lindeman',\n 'Australia/Lord_Howe',\n 'Australia/Melbourne',\n 'Australia/Perth',\n 'Australia/Sydney',\n 'Europe/Amsterdam',\n 'Europe/Andorra',\n 'Europe/Astrakhan',\n 'Europe/Athens',\n 'Europe/Belgrade',\n 'Europe/Berlin',\n 'Europe/Brussels',\n 'Europe/Bucharest',\n 'Europe/Budapest',\n 'Europe/Chisinau',\n 'Europe/Copenhagen',\n 'Europe/Dublin',\n 'Europe/Gibraltar',\n 'Europe/Helsinki',\n 'Europe/Istanbul',\n 'Europe/Kaliningrad',\n 'Europe/Kiev',\n 'Europe/Kirov',\n 'Europe/Lisbon',\n 'Europe/London',\n 'Europe/Luxembourg',\n 'Europe/Madrid',\n 'Europe/Malta',\n 'Europe/Minsk',\n 'Europe/Monaco',\n 'Europe/Moscow',\n 'Europe/Oslo',\n 'Europe/Paris',\n 'Europe/Prague',\n 'Europe/Riga',\n 'Europe/Rome',\n 'Europe/Samara',\n 'Europe/Saratov',\n 'Europe/Simferopol',\n 'Europe/Sofia',\n 'Europe/Stockholm',\n 'Europe/Tallinn',\n 'Europe/Tirane',\n 'Europe/Ulyanovsk',\n 'Europe/Uzhgorod',\n 'Europe/Vienna',\n 'Europe/Vilnius',\n 'Europe/Volgograd',\n 'Europe/Warsaw',\n 'Europe/Zaporozhye',\n 'Europe/Zurich',\n 'Indian/Chagos',\n 'Indian/Christmas',\n 'Indian/Cocos',\n 'Indian/Kerguelen',\n 'Indian/Mahe',\n 'Indian/Maldives',\n 'Indian/Mauritius',\n 'Indian/Reunion',\n 'Pacific/Apia',\n 'Pacific/Auckland',\n 'Pacific/Bougainville',\n 'Pacific/Chatham',\n 'Pacific/Chuuk',\n 'Pacific/Easter',\n 'Pacific/Efate',\n 'Pacific/Enderbury',\n 'Pacific/Fakaofo',\n 'Pacific/Fiji',\n 'Pacific/Funafuti',\n 'Pacific/Galapagos',\n 'Pacific/Gambier',\n 'Pacific/Guadalcanal',\n 'Pacific/Guam',\n 'Pacific/Honolulu',\n 'Pacific/Kiritimati',\n 'Pacific/Kosrae',\n 'Pacific/Kwajalein',\n 'Pacific/Majuro',\n 'Pacific/Marquesas',\n 'Pacific/Nauru',\n 'Pacific/Niue',\n 'Pacific/Norfolk',\n 'Pacific/Noumea',\n 'Pacific/Pago_Pago',\n 'Pacific/Palau',\n 'Pacific/Pitcairn',\n 'Pacific/Pohnpei',\n 'Pacific/Port_Moresby',\n 'Pacific/Rarotonga',\n 'Pacific/Tahiti',\n 'Pacific/Tarawa',\n 'Pacific/Tongatapu',\n 'Pacific/Wake',\n 'Pacific/Wallis',\n]\n","import script from \"./TimezoneDropdown.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./TimezoneDropdown.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./TimezoneDropdown.vue?vue&type=style&index=0&id=47ea2903&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-47ea2903\"]])\n\nexport default __exports__","import script from \"./UserPreferencesEdition.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserPreferencesEdition.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import script from \"./UserSportPreferences.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserSportPreferences.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserSportPreferences.vue?vue&type=style&index=0&id=4775544a&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-4775544a\"]])\n\nexport default __exports__","import script from \"./About.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./About.vue?vue&type=script&lang=ts&setup=true\"\n\nimport \"./About.vue?vue&type=style&index=0&id=74257266&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-74257266\"]])\n\nexport default __exports__","\n\n\n","import { render } from \"./BikePic.vue?vue&type=template&id=795f7f5f&scoped=true\"\nconst script = {}\n\nimport \"./BikePic.vue?vue&type=style&index=0&id=795f7f5f&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-795f7f5f\"]])\n\nexport default __exports__","import script from \"./AboutView.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./AboutView.vue?vue&type=script&lang=ts&setup=true\"\n\nimport \"./AboutView.vue?vue&type=style&index=0&id=bffb50d0&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-bffb50d0\"]])\n\nexport default __exports__","import script from \"./WorkoutCard.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./WorkoutCard.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./WorkoutCard.vue?vue&type=style&index=0&id=c9d1f10c&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-c9d1f10c\"]])\n\nexport default __exports__","import script from \"./Timeline.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Timeline.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./Timeline.vue?vue&type=style&index=0&id=9ef2a9ac&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-9ef2a9ac\"]])\n\nexport default __exports__","import script from \"./CalendarWorkout.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./CalendarWorkout.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./CalendarWorkout.vue?vue&type=style&index=0&id=7de0052b&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import script from \"./DonutChart.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./DonutChart.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import script from \"./CalendarWorkoutsChart.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./CalendarWorkoutsChart.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./CalendarWorkoutsChart.vue?vue&type=style&index=0&id=52d4310a&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-52d4310a\"]])\n\nexport default __exports__","import script from \"./CalendarWorkouts.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./CalendarWorkouts.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./CalendarWorkouts.vue?vue&type=style&index=0&id=4663dbac&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import script from \"./CalendarCells.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./CalendarCells.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./CalendarCells.vue?vue&type=style&index=0&id=73426002&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import script from \"./CalendarDays.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./CalendarDays.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./CalendarDays.vue?vue&type=style&index=0&id=4f3dc99e&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import script from \"./CalendarHeader.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./CalendarHeader.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./CalendarHeader.vue?vue&type=style&index=0&id=79a65a70&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import script from \"./index.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./index.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./index.vue?vue&type=style&index=0&id=4b0ade2c&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import script from \"./UserMonthStats.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserMonthStats.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserMonthStats.vue?vue&type=style&index=0&id=1bcddc12&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-1bcddc12\"]])\n\nexport default __exports__","import script from \"./RecordsCard.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./RecordsCard.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./RecordsCard.vue?vue&type=style&index=0&id=aee1f956&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-aee1f956\"]])\n\nexport default __exports__","import { ITranslatedSport } from '@/types/sports'\nimport { TUnit } from '@/types/units'\nimport { IRecord, IRecordsBySports } from '@/types/workouts'\nimport { formatWorkoutDate, getDateWithTZ } from '@/utils/dates'\nimport { convertDistance, units } from '@/utils/units'\n\nexport const formatRecord = (\n record: IRecord,\n tz: string,\n useImperialUnits: boolean\n): Record => {\n const unitFrom: TUnit = 'km'\n const unitTo: TUnit = useImperialUnits\n ? units[unitFrom].defaultTarget\n : unitFrom\n let value\n switch (record.record_type) {\n case 'AS':\n case 'MS':\n value = `${convertDistance(\n +record.value,\n unitFrom,\n unitTo,\n 2\n )} ${unitTo}/h`\n break\n case 'FD':\n value = `${convertDistance(+record.value, unitFrom, unitTo, 3)} ${unitTo}`\n break\n case 'LD':\n value = record.value\n break\n default:\n throw new Error(\n `Invalid record type, expected: \"AS\", \"FD\", \"LD\", \"MD\", got: \"${record.record_type}\"`\n )\n }\n return {\n workout_date: formatWorkoutDate(getDateWithTZ(record.workout_date, tz))\n .workout_date,\n workout_id: record.workout_id,\n id: record.id,\n record_type: record.record_type,\n value: value,\n }\n}\n\nexport const getRecordsBySports = (\n records: IRecord[],\n translatedSports: ITranslatedSport[],\n tz: string,\n useImperialUnits: boolean\n): IRecordsBySports =>\n records.reduce((sportList: IRecordsBySports, record) => {\n const sport = translatedSports.find((s) => s.id === record.sport_id)\n if (sport && sport.label) {\n if (sportList[sport.translatedLabel] === void 0) {\n sportList[sport.translatedLabel] = {\n label: sport.label,\n color: sport.color,\n records: [],\n }\n }\n sportList[sport.translatedLabel].records.push(\n formatRecord(record, tz, useImperialUnits)\n )\n }\n return sportList\n }, {})\n","import script from \"./index.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./index.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./index.vue?vue&type=style&index=0&id=ae25a82a&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-ae25a82a\"]])\n\nexport default __exports__","import script from \"./index.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./index.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./index.vue?vue&type=style&index=0&id=6c24b4fa&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import script from \"./Dashboard.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Dashboard.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./Dashboard.vue?vue&type=style&index=0&id=20e19721&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-20e19721\"]])\n\nexport default __exports__","import script from \"./NotFoundView.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./NotFoundView.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import script from \"./LoginOrRegister.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./LoginOrRegister.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./LoginOrRegister.vue?vue&type=style&index=0&id=6a38125b&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-6a38125b\"]])\n\nexport default __exports__","import { createRouter, createWebHistory, RouteRecordRaw } from 'vue-router'\n\nimport AdminApplication from '@/components/Administration/AdminApplication.vue'\nimport AdminMenu from '@/components/Administration/AdminMenu.vue'\nimport AdminSports from '@/components/Administration/AdminSports.vue'\nimport AdminUsers from '@/components/Administration/AdminUsers.vue'\nimport Profile from '@/components/User/ProfileDisplay/index.vue'\nimport UserInfos from '@/components/User/ProfileDisplay/UserInfos.vue'\nimport UserPreferences from '@/components/User/ProfileDisplay/UserPreferences.vue'\nimport ProfileEdition from '@/components/User/ProfileEdition/index.vue'\nimport UserAccountEdition from '@/components/User/ProfileEdition/UserAccountEdition.vue'\nimport UserInfosEdition from '@/components/User/ProfileEdition/UserInfosEdition.vue'\nimport UserPictureEdition from '@/components/User/ProfileEdition/UserPictureEdition.vue'\nimport UserPreferencesEdition from '@/components/User/ProfileEdition/UserPreferencesEdition.vue'\nimport UserSportPreferences from '@/components/User/UserSportPreferences.vue'\nimport store from '@/store'\nimport { AUTH_USER_STORE } from '@/store/constants'\nimport AboutView from '@/views/AboutView.vue'\nimport Dashboard from '@/views/Dashboard.vue'\nimport NotFoundView from '@/views/NotFoundView.vue'\nimport LoginOrRegister from '@/views/user/LoginOrRegister.vue'\n\nconst getTabFromPath = (path: string): string => {\n const regex = /(\\/profile)(\\/edit)*(\\/*)/\n const tag = path.replace(regex, '').toUpperCase()\n return tag === '' ? 'PROFILE' : tag.toUpperCase()\n}\n\nconst routes: Array = [\n {\n path: '/',\n name: 'Dashboard',\n component: Dashboard,\n },\n {\n path: '/login',\n name: 'Login',\n component: LoginOrRegister,\n props: { action: 'login' },\n },\n {\n path: '/register',\n name: 'Register',\n component: LoginOrRegister,\n props: { action: 'register' },\n },\n {\n path: '/account-confirmation',\n name: 'AccountConfirmation',\n component: () =>\n import(\n /* webpackChunkName: 'profile' */ '@/views/user/AccountConfirmationView.vue'\n ),\n },\n {\n path: '/account-confirmation/resend',\n name: 'AccountConfirmationResend',\n component: () =>\n import(\n /* webpackChunkName: 'reset' */ '@/views/user/AccountConfirmationResendView.vue'\n ),\n props: { action: 'account-confirmation-resend' },\n },\n {\n path: '/account-confirmation/email-sent',\n name: 'AccountConfirmationEmailSend',\n component: () =>\n import(\n /* webpackChunkName: 'reset' */ '@/views/user/AccountConfirmationResendView.vue'\n ),\n props: { action: 'email-sent' },\n },\n {\n path: '/password-reset/sent',\n name: 'PasswordEmailSent',\n component: () =>\n import(\n /* webpackChunkName: 'reset' */ '@/views/user/PasswordResetView.vue'\n ),\n props: { action: 'request-sent' },\n },\n {\n path: '/password-reset/request',\n name: 'PasswordResetRequest',\n component: () =>\n import(\n /* webpackChunkName: 'reset' */ '@/views/user/PasswordResetView.vue'\n ),\n props: { action: 'reset-request' },\n },\n {\n path: '/password-reset/password-updated',\n name: 'PasswordUpdated',\n component: () =>\n import(\n /* webpackChunkName: 'reset' */ '@/views/user/PasswordResetView.vue'\n ),\n props: { action: 'password-updated' },\n },\n {\n path: '/password-reset',\n name: 'PasswordReset',\n component: () =>\n import(\n /* webpackChunkName: 'reset' */ '@/views/user/PasswordResetView.vue'\n ),\n props: { action: 'reset' },\n },\n {\n path: '/email-update',\n name: 'EmailUpdate',\n component: () =>\n import(\n /* webpackChunkName: 'profile' */ '@/views/user/EmailUpdateView.vue'\n ),\n },\n {\n path: '/profile',\n name: 'Profile',\n component: () =>\n import(/* webpackChunkName: 'profile' */ '@/views/user/ProfileView.vue'),\n children: [\n {\n path: '',\n name: 'UserProfile',\n component: Profile,\n props: (route) => ({\n tab: getTabFromPath(route.path),\n }),\n children: [\n {\n path: '',\n name: 'UserInfos',\n component: UserInfos,\n },\n {\n path: 'preferences',\n name: 'UserPreferences',\n component: UserPreferences,\n },\n {\n path: 'sports',\n name: 'UserSportPreferences',\n component: UserSportPreferences,\n props: { isEdition: false },\n },\n ],\n },\n {\n path: 'edit',\n name: 'UserProfileEdition',\n component: ProfileEdition,\n props: (route) => ({\n tab: getTabFromPath(route.path),\n }),\n children: [\n {\n path: '',\n name: 'UserInfosEdition',\n component: UserInfosEdition,\n },\n {\n path: 'account',\n name: 'UserAccountEdition',\n component: UserAccountEdition,\n },\n {\n path: 'picture',\n name: 'UserPictureEdition',\n component: UserPictureEdition,\n },\n {\n path: 'preferences',\n name: 'UserPreferencesEdition',\n component: UserPreferencesEdition,\n },\n {\n path: 'sports',\n name: 'UserSportPreferencesEdition',\n component: UserSportPreferences,\n props: { isEdition: true },\n },\n ],\n },\n ],\n },\n {\n path: '/statistics',\n name: 'Statistics',\n component: () =>\n import(/* webpackChunkName: 'statistics' */ '@/views/StatisticsView.vue'),\n },\n {\n path: '/users/:username',\n name: 'User',\n component: () =>\n import(/* webpackChunkName: 'profile' */ '@/views/user/UserView.vue'),\n },\n {\n path: '/workouts',\n name: 'Workouts',\n component: () =>\n import(\n /* webpackChunkName: 'workouts' */ '@/views/workouts/WorkoutsView.vue'\n ),\n },\n {\n path: '/workouts/:workoutId',\n name: 'Workout',\n component: () =>\n import(/* webpackChunkName: 'workouts' */ '@/views/workouts/Workout.vue'),\n props: { displaySegment: false },\n },\n {\n path: '/workouts/:workoutId/edit',\n name: 'EditWorkout',\n component: () =>\n import(\n /* webpackChunkName: 'workouts' */ '@/views/workouts/EditWorkout.vue'\n ),\n },\n {\n path: '/workouts/:workoutId/segment/:segmentId',\n name: 'WorkoutSegment',\n component: () =>\n import(/* webpackChunkName: 'workouts' */ '@/views/workouts/Workout.vue'),\n props: { displaySegment: true },\n },\n {\n path: '/workouts/add',\n name: 'AddWorkout',\n component: () =>\n import(\n /* webpackChunkName: 'workouts' */ '@/views/workouts/AddWorkout.vue'\n ),\n },\n {\n path: '/admin',\n name: 'Administration',\n component: () =>\n import(/* webpackChunkName: 'admin' */ '@/views/AdminView.vue'),\n children: [\n {\n path: '',\n name: 'AdministrationMenu',\n component: AdminMenu,\n },\n {\n path: 'application',\n name: 'ApplicationAdministration',\n component: AdminApplication,\n },\n {\n path: 'application/edit',\n name: 'ApplicationAdministrationEdition',\n component: AdminApplication,\n props: { edition: true },\n },\n {\n path: 'sports',\n name: 'SportsAdministration',\n component: AdminSports,\n },\n {\n path: 'users/:username',\n name: 'UserFromAdmin',\n component: () =>\n import(/* webpackChunkName: 'profile' */ '@/views/user/UserView.vue'),\n props: { fromAdmin: true },\n },\n {\n path: 'users',\n name: 'UsersAdministration',\n component: AdminUsers,\n },\n ],\n },\n {\n path: '/about',\n name: 'About',\n component: AboutView,\n },\n {\n path: '/:pathMatch(.*)*',\n name: 'not-found',\n component: NotFoundView,\n },\n]\n\nconst router = createRouter({\n history: createWebHistory(process.env.BASE_URL),\n routes,\n})\n\nconst pathsWithoutAuthentication = [\n '/login',\n '/password-reset',\n '/password-reset/password-updated',\n '/password-reset/request',\n '/password-reset/sent',\n '/register',\n '/account-confirmation',\n '/account-confirmation/resend',\n '/account-confirmation/email-sent',\n]\n\nconst pathsWithoutChecks = ['/email-update', '/about']\n\nrouter.beforeEach((to, from, next) => {\n store\n .dispatch(AUTH_USER_STORE.ACTIONS.CHECK_AUTH_USER)\n .then(() => {\n if (pathsWithoutChecks.includes(to.path)) {\n return next()\n }\n if (\n store.getters[AUTH_USER_STORE.GETTERS.IS_AUTHENTICATED] &&\n pathsWithoutAuthentication.includes(to.path)\n ) {\n return next('/')\n }\n if (\n !store.getters[AUTH_USER_STORE.GETTERS.IS_AUTHENTICATED] &&\n !pathsWithoutAuthentication.includes(to.path)\n ) {\n const path =\n to.path === '/'\n ? { path: '/login' }\n : { path: '/login', query: { from: to.fullPath } }\n next(path)\n } else {\n next()\n }\n })\n .catch((error) => {\n console.error(error)\n next()\n })\n})\n\nexport default router\n","export enum AuthUserActions {\n CHECK_AUTH_USER = 'CHECK_AUTH_USER',\n CONFIRM_ACCOUNT = 'CONFIRM_ACCOUNT',\n CONFIRM_EMAIL = 'CONFIRM_EMAIL',\n DELETE_ACCOUNT = 'DELETE_ACCOUNT',\n DELETE_PICTURE = 'DELETE_PICTURE',\n GET_USER_PROFILE = 'GET_USER_PROFILE',\n LOGIN_OR_REGISTER = 'LOGIN_OR_REGISTER',\n LOGOUT = 'LOGOUT',\n SEND_PASSWORD_RESET_REQUEST = 'SEND_PASSWORD_RESET_REQUEST',\n RESEND_ACCOUNT_CONFIRMATION_EMAIL = 'RESEND_ACCOUNT_CONFIRMATION_EMAIL',\n RESET_USER_PASSWORD = 'RESET_USER_PASSWORD',\n RESET_USER_SPORT_PREFERENCES = 'RESET_USER_SPORT_PREFERENCES',\n UPDATE_USER_ACCOUNT = 'UPDATE_USER_ACCOUNT',\n UPDATE_USER_PICTURE = 'UPDATE_USER_PICTURE',\n UPDATE_USER_PROFILE = 'UPDATE_USER_PROFILE',\n UPDATE_USER_PREFERENCES = 'UPDATE_USER_PREFERENCES',\n UPDATE_USER_SPORT_PREFERENCES = 'UPDATE_USER_SPORT_PREFERENCES',\n}\n\nexport enum AuthUserGetters {\n AUTH_TOKEN = 'AUTH_TOKEN',\n AUTH_USER_PROFILE = 'AUTH_USER_PROFILE',\n IS_ADMIN = 'IS_ADMIN',\n IS_AUTHENTICATED = 'IS_AUTHENTICATED',\n IS_SUCCESS = 'IS_SUCCESS',\n IS_REGISTRATION_SUCCESS = 'IS_REGISTRATION_SUCCESS',\n USER_LOADING = 'USER_LOADING',\n}\n\nexport enum AuthUserMutations {\n CLEAR_AUTH_USER_TOKEN = 'CLEAR_AUTH_USER_TOKEN',\n UPDATE_AUTH_TOKEN = 'UPDATE_AUTH_TOKEN',\n UPDATE_AUTH_USER_PROFILE = 'UPDATE_AUTH_USER_PROFILE',\n UPDATE_IS_SUCCESS = 'UPDATE_USER_IS_SUCCESS',\n UPDATE_IS_REGISTRATION_SUCCESS = 'UPDATE_IS_REGISTRATION_SUCCESS',\n UPDATE_USER_LOADING = 'UPDATE_USER_LOADING',\n}\n","export enum RootActions {\n GET_APPLICATION_CONFIG = 'GET_APPLICATION_CONFIG',\n GET_APPLICATION_STATS = 'GET_APPLICATION_STATS',\n UPDATE_APPLICATION_CONFIG = 'UPDATE_APPLICATION_CONFIG',\n}\n\nexport enum RootGetters {\n APP_CONFIG = 'APP_CONFIG',\n APP_LOADING = 'APP_LOADING',\n APP_STATS = 'APP_STATS',\n ERROR_MESSAGES = 'ERROR_MESSAGES',\n LANGUAGE = 'LANGUAGE',\n LOCALE = 'LOCALE', // date-fns\n}\n\nexport enum RootMutations {\n EMPTY_ERROR_MESSAGES = 'EMPTY_ERROR_MESSAGES',\n SET_ERROR_MESSAGES = 'SET_ERROR_MESSAGES',\n UPDATE_APPLICATION_CONFIG = 'UPDATE_APPLICATION_CONFIG',\n UPDATE_APPLICATION_LOADING = 'UPDATE_APPLICATION_LOADING',\n UPDATE_APPLICATION_STATS = 'UPDATE_APPLICATION_STATS',\n UPDATE_LANG = 'UPDATE_LANG',\n}\n","export enum SportsActions {\n GET_SPORTS = 'GET_SPORTS',\n UPDATE_SPORTS = 'UPDATE_SPORTS',\n}\n\nexport enum SportsGetters {\n SPORTS = 'SPORTS',\n}\n\nexport enum SportsMutation {\n SET_SPORTS = 'SET_SPORTS',\n}\n","export enum StatisticsActions {\n GET_USER_STATS = 'GET_USER_STATS',\n}\n\nexport enum StatisticsGetters {\n USER_STATS = 'USER_STATS',\n}\n\nexport enum StatisticsMutations {\n EMPTY_USER_STATS = 'EMPTY_USER_STATS',\n UPDATE_USER_STATS = 'UPDATE_USER_STATS',\n}\n","export enum UsersActions {\n EMPTY_USER = 'EMPTY_USER',\n EMPTY_USERS = 'EMPTY_USERS',\n GET_USER = 'GET_USER',\n GET_USERS = 'GET_USERS',\n UPDATE_USER = 'UPDATE_USER',\n DELETE_USER_ACCOUNT = 'DELETE_USER_ACCOUNT',\n}\n\nexport enum UsersGetters {\n USER = 'USER',\n USERS = 'USERS',\n USERS_IS_SUCCESS = 'USERS_IS_SUCCESS',\n USERS_LOADING = 'USERS_LOADING',\n USERS_PAGINATION = 'USERS_PAGINATION',\n}\n\nexport enum UsersMutations {\n UPDATE_USER = 'UPDATE_USER',\n UPDATE_USER_IN_USERS = 'UPDATE_USER_IN_USERS',\n UPDATE_USERS = 'UPDATE_USERS',\n UPDATE_USERS_LOADING = 'UPDATE_USERS_LOADING',\n UPDATE_USERS_PAGINATION = 'UPDATE_USERS_PAGINATION',\n UPDATE_IS_SUCCESS = 'UPDATE_IS_SUCCESS',\n}\n","import {\n AuthUserActions,\n AuthUserGetters,\n AuthUserMutations,\n} from '@/store/modules/authUser/enums'\nimport {\n RootActions,\n RootGetters,\n RootMutations,\n} from '@/store/modules/root/enums'\nimport {\n SportsActions,\n SportsGetters,\n SportsMutation,\n} from '@/store/modules/sports/enums'\nimport {\n StatisticsActions,\n StatisticsGetters,\n StatisticsMutations,\n} from '@/store/modules/statistics/enums'\nimport {\n UsersActions,\n UsersGetters,\n UsersMutations,\n} from '@/store/modules/users/enums'\nimport {\n WorkoutsActions,\n WorkoutsGetters,\n WorkoutsMutations,\n} from '@/store/modules/workouts/enums'\n\nexport const ROOT_STORE = {\n ACTIONS: RootActions,\n GETTERS: RootGetters,\n MUTATIONS: RootMutations,\n}\n\nexport const SPORTS_STORE = {\n ACTIONS: SportsActions,\n GETTERS: SportsGetters,\n MUTATIONS: SportsMutation,\n}\n\nexport const STATS_STORE = {\n ACTIONS: StatisticsActions,\n GETTERS: StatisticsGetters,\n MUTATIONS: StatisticsMutations,\n}\n\nexport const AUTH_USER_STORE = {\n ACTIONS: AuthUserActions,\n GETTERS: AuthUserGetters,\n MUTATIONS: AuthUserMutations,\n}\n\nexport const USERS_STORE = {\n ACTIONS: UsersActions,\n GETTERS: UsersGetters,\n MUTATIONS: UsersMutations,\n}\n\nexport const WORKOUTS_STORE = {\n ACTIONS: WorkoutsActions,\n GETTERS: WorkoutsGetters,\n MUTATIONS: WorkoutsMutations,\n}\n","import axios from 'axios'\n\nimport { getApiUrl } from '@/utils'\n\nconst api = axios.create({\n baseURL: getApiUrl(),\n})\n\nexport default api\n","import { ActionContext, ActionTree } from 'vuex'\n\nimport authApi from '@/api/authApi'\nimport router from '@/router'\nimport { AUTH_USER_STORE, ROOT_STORE, USERS_STORE } from '@/store/constants'\nimport { IAuthUserState } from '@/store/modules/authUser/types'\nimport { IRootState } from '@/store/modules/root/types'\nimport { IUsersActions, IUsersState } from '@/store/modules/users/types'\nimport { TPaginationPayload } from '@/types/api'\nimport { IAdminUserPayload, IUserDeletionPayload } from '@/types/user'\nimport { handleError } from '@/utils'\n\nexport const deleteUserAccount = (\n context:\n | ActionContext\n | ActionContext,\n payload: IUserDeletionPayload\n): void => {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n authApi\n .delete(`users/${payload.username}`)\n .then((res) => {\n if (res.status === 204) {\n if (payload.fromAdmin) {\n router.push('/admin/users')\n } else {\n context\n .dispatch(AUTH_USER_STORE.ACTIONS.LOGOUT)\n .then(() => router.push('/'))\n }\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n}\n\nexport const actions: ActionTree & IUsersActions = {\n [USERS_STORE.ACTIONS.EMPTY_USER](\n context: ActionContext\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(USERS_STORE.MUTATIONS.UPDATE_USER, {})\n },\n [USERS_STORE.ACTIONS.EMPTY_USERS](\n context: ActionContext\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(USERS_STORE.MUTATIONS.UPDATE_USERS, [])\n context.commit(USERS_STORE.MUTATIONS.UPDATE_USERS_PAGINATION, {})\n },\n [USERS_STORE.ACTIONS.GET_USER](\n context: ActionContext,\n username: string\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(USERS_STORE.MUTATIONS.UPDATE_USERS_LOADING, true)\n authApi\n .get(`users/${username}`)\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n USERS_STORE.MUTATIONS.UPDATE_USER,\n res.data.data.users[0]\n )\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n .finally(() =>\n context.commit(USERS_STORE.MUTATIONS.UPDATE_USERS_LOADING, false)\n )\n },\n [USERS_STORE.ACTIONS.GET_USERS](\n context: ActionContext,\n payload: TPaginationPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(USERS_STORE.MUTATIONS.UPDATE_USERS_LOADING, true)\n authApi\n .get('users', { params: payload })\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n USERS_STORE.MUTATIONS.UPDATE_USERS,\n res.data.data.users\n )\n context.commit(\n USERS_STORE.MUTATIONS.UPDATE_USERS_PAGINATION,\n res.data.pagination\n )\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n .finally(() =>\n context.commit(USERS_STORE.MUTATIONS.UPDATE_USERS_LOADING, false)\n )\n },\n [USERS_STORE.ACTIONS.UPDATE_USER](\n context: ActionContext,\n payload: IAdminUserPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(USERS_STORE.MUTATIONS.UPDATE_IS_SUCCESS, false)\n const data: Record = {}\n if (payload.admin !== undefined) {\n data.admin = payload.admin\n }\n if (payload.resetPassword) {\n data.reset_password = payload.resetPassword\n }\n if (payload.activate) {\n data.activate = payload.activate\n }\n if (payload.new_email !== undefined) {\n data.new_email = payload.new_email\n }\n authApi\n .patch(`users/${payload.username}`, data)\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n USERS_STORE.MUTATIONS.UPDATE_USER_IN_USERS,\n res.data.data.users[0]\n )\n if (payload.resetPassword || payload.new_email) {\n context.commit(USERS_STORE.MUTATIONS.UPDATE_IS_SUCCESS, true)\n }\n if (payload.activate || payload.new_email) {\n context.commit(\n USERS_STORE.MUTATIONS.UPDATE_USER,\n res.data.data.users[0]\n )\n }\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n .finally(() =>\n context.commit(USERS_STORE.MUTATIONS.UPDATE_USERS_LOADING, false)\n )\n },\n [USERS_STORE.ACTIONS.DELETE_USER_ACCOUNT](\n context: ActionContext,\n payload: IUserDeletionPayload\n ): void {\n deleteUserAccount(context, {\n username: payload.username,\n fromAdmin: true,\n })\n },\n}\n","import { ActionContext, ActionTree } from 'vuex'\n\nimport authApi from '@/api/authApi'\nimport api from '@/api/defaultApi'\nimport createI18n from '@/i18n'\nimport router from '@/router'\nimport {\n AUTH_USER_STORE,\n ROOT_STORE,\n SPORTS_STORE,\n STATS_STORE,\n USERS_STORE,\n WORKOUTS_STORE,\n} from '@/store/constants'\nimport {\n IAuthUserActions,\n IAuthUserState,\n} from '@/store/modules/authUser/types'\nimport { IRootState } from '@/store/modules/root/types'\nimport { deleteUserAccount } from '@/store/modules/users/actions'\nimport {\n ILoginOrRegisterData,\n IUserAccountPayload,\n IUserDeletionPayload,\n IUserAccountUpdatePayload,\n IUserEmailPayload,\n IUserPasswordResetPayload,\n IUserPayload,\n IUserPicturePayload,\n IUserPreferencesPayload,\n IUserSportPreferencesPayload,\n} from '@/types/user'\nimport { handleError } from '@/utils'\n\nconst { locale } = createI18n.global\n\nconst removeAuthUserData = (\n context: ActionContext\n) => {\n localStorage.removeItem('authToken')\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(STATS_STORE.MUTATIONS.EMPTY_USER_STATS)\n context.commit(AUTH_USER_STORE.MUTATIONS.CLEAR_AUTH_USER_TOKEN)\n context.commit(USERS_STORE.MUTATIONS.UPDATE_USERS, [])\n context.commit(WORKOUTS_STORE.MUTATIONS.EMPTY_WORKOUTS)\n context.commit(WORKOUTS_STORE.MUTATIONS.EMPTY_WORKOUT)\n router.push('/login')\n}\n\nexport const actions: ActionTree &\n IAuthUserActions = {\n [AUTH_USER_STORE.ACTIONS.CHECK_AUTH_USER](\n context: ActionContext\n ): void {\n if (\n window.localStorage.authToken &&\n !context.getters[AUTH_USER_STORE.GETTERS.IS_AUTHENTICATED]\n ) {\n context.commit(\n AUTH_USER_STORE.MUTATIONS.UPDATE_AUTH_TOKEN,\n window.localStorage.authToken\n )\n context.dispatch(AUTH_USER_STORE.ACTIONS.GET_USER_PROFILE)\n }\n },\n [AUTH_USER_STORE.ACTIONS.CONFIRM_ACCOUNT](\n context: ActionContext,\n payload: IUserAccountUpdatePayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n api\n .post('auth/account/confirm', { token: payload.token })\n .then((res) => {\n if (res.data.status === 'success') {\n const token = res.data.auth_token\n window.localStorage.setItem('authToken', token)\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_AUTH_TOKEN, token)\n context\n .dispatch(AUTH_USER_STORE.ACTIONS.GET_USER_PROFILE)\n .then(() => router.push('/'))\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => {\n handleError(context, error)\n })\n },\n [AUTH_USER_STORE.ACTIONS.CONFIRM_EMAIL](\n context: ActionContext,\n payload: IUserAccountUpdatePayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_IS_SUCCESS, false)\n api\n .post('/auth/email/update', { token: payload.token })\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_IS_SUCCESS, true)\n if (payload.refreshUser) {\n context\n .dispatch(AUTH_USER_STORE.ACTIONS.GET_USER_PROFILE)\n .then(() => {\n return router.push('/profile/edit/account')\n })\n }\n router.push('/profile/edit/account')\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => {\n handleError(context, error)\n })\n },\n [AUTH_USER_STORE.ACTIONS.GET_USER_PROFILE](\n context: ActionContext\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n authApi\n .get('auth/profile')\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n AUTH_USER_STORE.MUTATIONS.UPDATE_AUTH_USER_PROFILE,\n res.data.data\n )\n if (res.data.data.language) {\n context.commit(\n ROOT_STORE.MUTATIONS.UPDATE_LANG,\n res.data.data.language\n )\n locale.value = res.data.data.language\n }\n context.dispatch(SPORTS_STORE.ACTIONS.GET_SPORTS)\n } else {\n handleError(context, null)\n removeAuthUserData(context)\n }\n })\n .catch((error) => {\n handleError(context, error)\n removeAuthUserData(context)\n })\n },\n [AUTH_USER_STORE.ACTIONS.LOGIN_OR_REGISTER](\n context: ActionContext,\n data: ILoginOrRegisterData\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(\n AUTH_USER_STORE.MUTATIONS.UPDATE_IS_REGISTRATION_SUCCESS,\n false\n )\n api\n .post(`/auth/${data.actionType}`, data.formData)\n .then((res) => {\n if (res.data.status === 'success') {\n if (data.actionType === 'login') {\n const token = res.data.auth_token\n window.localStorage.setItem('authToken', token)\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_AUTH_TOKEN, token)\n context\n .dispatch(AUTH_USER_STORE.ACTIONS.GET_USER_PROFILE)\n .then(() =>\n router.push(\n typeof data.redirectUrl === 'string' ? data.redirectUrl : '/'\n )\n )\n } else {\n router\n .push('/login')\n .then(() =>\n context.commit(\n AUTH_USER_STORE.MUTATIONS.UPDATE_IS_REGISTRATION_SUCCESS,\n true\n )\n )\n }\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n [AUTH_USER_STORE.ACTIONS.LOGOUT](\n context: ActionContext\n ): void {\n removeAuthUserData(context)\n },\n [AUTH_USER_STORE.ACTIONS.UPDATE_USER_PROFILE](\n context: ActionContext,\n payload: IUserPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, true)\n authApi\n .post('auth/profile/edit', payload)\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n AUTH_USER_STORE.MUTATIONS.UPDATE_AUTH_USER_PROFILE,\n res.data.data\n )\n router.push('/profile')\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n .finally(() =>\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, false)\n )\n },\n [AUTH_USER_STORE.ACTIONS.UPDATE_USER_ACCOUNT](\n context: ActionContext,\n payload: IUserAccountPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, true)\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_IS_SUCCESS, false)\n authApi\n .patch('auth/profile/edit/account', payload)\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n AUTH_USER_STORE.MUTATIONS.UPDATE_AUTH_USER_PROFILE,\n res.data.data\n )\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_IS_SUCCESS, true)\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n .finally(() =>\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, false)\n )\n },\n [AUTH_USER_STORE.ACTIONS.UPDATE_USER_PREFERENCES](\n context: ActionContext,\n payload: IUserPreferencesPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, true)\n authApi\n .post('auth/profile/edit/preferences', payload)\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n AUTH_USER_STORE.MUTATIONS.UPDATE_AUTH_USER_PROFILE,\n res.data.data\n )\n context.commit(\n ROOT_STORE.MUTATIONS.UPDATE_LANG,\n res.data.data.language\n )\n locale.value = res.data.data.language\n router.push('/profile/preferences')\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n .finally(() =>\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, false)\n )\n },\n [AUTH_USER_STORE.ACTIONS.RESET_USER_SPORT_PREFERENCES](\n context: ActionContext,\n sportId: number\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, true)\n authApi\n .delete(`auth/profile/reset/sports/${sportId}`)\n .then((res) => {\n if (res.status === 204) {\n context.dispatch(SPORTS_STORE.ACTIONS.GET_SPORTS)\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => {\n handleError(context, error)\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, false)\n })\n },\n [AUTH_USER_STORE.ACTIONS.UPDATE_USER_SPORT_PREFERENCES](\n context: ActionContext,\n payload: IUserSportPreferencesPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, true)\n authApi\n .post('auth/profile/edit/sports', payload)\n .then((res) => {\n if (res.data.status === 'success') {\n context.dispatch(SPORTS_STORE.ACTIONS.GET_SPORTS)\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => {\n handleError(context, error)\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, false)\n })\n },\n [AUTH_USER_STORE.ACTIONS.UPDATE_USER_PICTURE](\n context: ActionContext,\n payload: IUserPicturePayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, true)\n if (!payload.picture) {\n throw new Error('No file part')\n }\n const form = new FormData()\n form.append('file', payload.picture)\n authApi\n .post('auth/picture', form, {\n headers: {\n 'content-type': 'multipart/form-data',\n },\n })\n .then((res) => {\n if (res.data.status === 'success') {\n context\n .dispatch(AUTH_USER_STORE.ACTIONS.GET_USER_PROFILE)\n .then(() => router.push('/profile'))\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n .finally(() =>\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, false)\n )\n },\n [AUTH_USER_STORE.ACTIONS.DELETE_ACCOUNT](\n context: ActionContext,\n payload: IUserDeletionPayload\n ): void {\n deleteUserAccount(context, payload)\n },\n [AUTH_USER_STORE.ACTIONS.DELETE_PICTURE](\n context: ActionContext\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, true)\n authApi\n .delete(`auth/picture`)\n .then((res) => {\n if (res.status === 204) {\n context\n .dispatch(AUTH_USER_STORE.ACTIONS.GET_USER_PROFILE)\n .then(() => router.push('/profile'))\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n .finally(() =>\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, false)\n )\n },\n [AUTH_USER_STORE.ACTIONS.SEND_PASSWORD_RESET_REQUEST](\n context: ActionContext,\n payload: IUserEmailPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n api\n .post('auth/password/reset-request', payload)\n .then((res) => {\n if (res.data.status === 'success') {\n router.push('/password-reset/sent')\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n [AUTH_USER_STORE.ACTIONS.RESEND_ACCOUNT_CONFIRMATION_EMAIL](\n context: ActionContext,\n payload: IUserEmailPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n api\n .post('auth/account/resend-confirmation', payload)\n .then((res) => {\n if (res.data.status === 'success') {\n router.push('/account-confirmation/email-sent')\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n [AUTH_USER_STORE.ACTIONS.RESET_USER_PASSWORD](\n context: ActionContext,\n payload: IUserPasswordResetPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n api\n .post('auth/password/update', payload)\n .then((res) => {\n if (res.data.status === 'success') {\n router.push('/password-reset/password-updated')\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n}\n","import { GetterTree } from 'vuex'\n\nimport { AUTH_USER_STORE } from '@/store/constants'\nimport {\n IAuthUserGetters,\n IAuthUserState,\n} from '@/store/modules/authUser/types'\nimport { IRootState } from '@/store/modules/root/types'\n\nexport const getters: GetterTree &\n IAuthUserGetters = {\n [AUTH_USER_STORE.GETTERS.AUTH_TOKEN]: (state: IAuthUserState) => {\n return state.authToken\n },\n [AUTH_USER_STORE.GETTERS.AUTH_USER_PROFILE]: (state: IAuthUserState) => {\n return state.authUserProfile\n },\n [AUTH_USER_STORE.GETTERS.IS_AUTHENTICATED]: (state: IAuthUserState) => {\n return state.authToken !== null\n },\n [AUTH_USER_STORE.GETTERS.IS_ADMIN]: (state: IAuthUserState) => {\n return state.authUserProfile && state.authUserProfile.admin\n },\n [AUTH_USER_STORE.GETTERS.IS_REGISTRATION_SUCCESS]: (\n state: IAuthUserState\n ) => {\n return state.isRegistrationSuccess\n },\n [AUTH_USER_STORE.GETTERS.IS_SUCCESS]: (state: IAuthUserState) => {\n return state.isSuccess\n },\n [AUTH_USER_STORE.GETTERS.USER_LOADING]: (state: IAuthUserState) => {\n return state.loading\n },\n}\n","import { MutationTree } from 'vuex'\n\nimport { AUTH_USER_STORE } from '@/store/constants'\nimport {\n IAuthUserState,\n TAuthUserMutations,\n} from '@/store/modules/authUser/types'\nimport { IAuthUserProfile } from '@/types/user'\n\nexport const mutations: MutationTree & TAuthUserMutations = {\n [AUTH_USER_STORE.MUTATIONS.CLEAR_AUTH_USER_TOKEN](state: IAuthUserState) {\n state.authToken = null\n state.authUserProfile = {}\n },\n [AUTH_USER_STORE.MUTATIONS.UPDATE_AUTH_TOKEN](\n state: IAuthUserState,\n authToken: string\n ) {\n state.authToken = authToken\n },\n [AUTH_USER_STORE.MUTATIONS.UPDATE_AUTH_USER_PROFILE](\n state: IAuthUserState,\n authUserProfile: IAuthUserProfile\n ) {\n state.authUserProfile = authUserProfile\n },\n [AUTH_USER_STORE.MUTATIONS.UPDATE_IS_REGISTRATION_SUCCESS](\n state: IAuthUserState,\n isRegistrationSuccess: boolean\n ) {\n state.isRegistrationSuccess = isRegistrationSuccess\n },\n [AUTH_USER_STORE.MUTATIONS.UPDATE_IS_SUCCESS](\n state: IAuthUserState,\n isSuccess: boolean\n ) {\n state.isSuccess = isSuccess\n },\n [AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING](\n state: IAuthUserState,\n loading: boolean\n ) {\n state.loading = loading\n },\n}\n","import { IAuthUserState } from '@/store/modules/authUser/types'\nimport { IAuthUserProfile } from '@/types/user'\n\nexport const authUserState: IAuthUserState = {\n authToken: null,\n authUserProfile: {},\n isSuccess: false,\n isRegistrationSuccess: false,\n loading: false,\n}\n","import { Module } from 'vuex'\n\nimport { actions } from '@/store/modules/authUser/actions'\nimport { getters } from '@/store/modules/authUser/getters'\nimport { mutations } from '@/store/modules/authUser/mutations'\nimport { authUserState } from '@/store/modules/authUser/state'\nimport { IAuthUserState } from '@/store/modules/authUser/types'\nimport { IRootState } from '@/store/modules/root/types'\n\nconst authUser: Module = {\n state: authUserState,\n actions,\n getters,\n mutations,\n}\n\nexport default authUser\n","import { ActionContext, ActionTree } from 'vuex'\n\nimport authApi from '@/api/authApi'\nimport router from '@/router'\nimport { ROOT_STORE } from '@/store/constants'\nimport { IRootActions, IRootState } from '@/store/modules/root/types'\nimport { TAppConfigForm } from '@/types/application'\nimport { handleError } from '@/utils'\n\nexport const actions: ActionTree & IRootActions = {\n [ROOT_STORE.ACTIONS.GET_APPLICATION_CONFIG](\n context: ActionContext\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(ROOT_STORE.MUTATIONS.UPDATE_APPLICATION_LOADING, true)\n authApi\n .get('config')\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n ROOT_STORE.MUTATIONS.UPDATE_APPLICATION_CONFIG,\n res.data.data\n )\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n .finally(() =>\n context.commit(ROOT_STORE.MUTATIONS.UPDATE_APPLICATION_LOADING, false)\n )\n },\n [ROOT_STORE.ACTIONS.GET_APPLICATION_STATS](\n context: ActionContext\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n authApi\n .get('stats/all')\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n ROOT_STORE.MUTATIONS.UPDATE_APPLICATION_STATS,\n res.data.data\n )\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n [ROOT_STORE.ACTIONS.UPDATE_APPLICATION_CONFIG](\n context: ActionContext,\n payload: TAppConfigForm\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n authApi\n .patch('config', payload)\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n ROOT_STORE.MUTATIONS.UPDATE_APPLICATION_CONFIG,\n res.data.data\n )\n router.push('/admin/application')\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n}\n","import { GetterTree } from 'vuex'\n\nimport { ROOT_STORE } from '@/store/constants'\nimport { IRootGetters, IRootState } from '@/store/modules/root/types'\n\nexport const getters: GetterTree & IRootGetters = {\n [ROOT_STORE.GETTERS.APP_CONFIG]: (state: IRootState) => {\n return state.application.config\n },\n [ROOT_STORE.GETTERS.APP_LOADING]: (state: IRootState) => {\n return state.appLoading\n },\n [ROOT_STORE.GETTERS.APP_STATS]: (state: IRootState) => {\n return state.application.statistics\n },\n [ROOT_STORE.GETTERS.ERROR_MESSAGES]: (state: IRootState) => {\n return state.errorMessages\n },\n [ROOT_STORE.GETTERS.LANGUAGE]: (state: IRootState) => {\n return state.language\n },\n [ROOT_STORE.GETTERS.LOCALE]: (state: IRootState) => {\n return state.locale\n },\n}\n","import { MutationTree } from 'vuex'\n\nimport { ROOT_STORE } from '@/store/constants'\nimport { IRootState, TRootMutations } from '@/store/modules/root/types'\nimport { TAppConfig, IAppStatistics } from '@/types/application'\nimport { localeFromLanguage } from '@/utils/locales'\n\nexport const mutations: MutationTree & TRootMutations = {\n [ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES](state: IRootState) {\n state.errorMessages = null\n },\n [ROOT_STORE.MUTATIONS.SET_ERROR_MESSAGES](\n state: IRootState,\n errorMessages: string\n ) {\n state.errorMessages = errorMessages\n },\n [ROOT_STORE.MUTATIONS.UPDATE_APPLICATION_CONFIG](\n state: IRootState,\n config: TAppConfig\n ) {\n state.application.config = config\n },\n [ROOT_STORE.MUTATIONS.UPDATE_APPLICATION_LOADING](\n state: IRootState,\n loading: boolean\n ) {\n state.appLoading = loading\n },\n [ROOT_STORE.MUTATIONS.UPDATE_APPLICATION_STATS](\n state: IRootState,\n statistics: IAppStatistics\n ) {\n state.application.statistics = statistics\n },\n [ROOT_STORE.MUTATIONS.UPDATE_LANG](state: IRootState, language: string) {\n state.language = language\n state.locale = localeFromLanguage[language]\n },\n}\n","import { enUS } from 'date-fns/locale'\n\nimport { IRootState } from '@/store/modules/root/types'\nimport { IApplication } from '@/types/application'\n\nexport const state: IRootState = {\n root: true,\n language: 'en',\n locale: enUS,\n errorMessages: null,\n application: {\n statistics: {\n sports: 0,\n uploads_dir_size: 0,\n users: 0,\n workouts: 0,\n },\n },\n appLoading: false,\n}\n","import { ActionContext, ActionTree } from 'vuex'\n\nimport authApi from '@/api/authApi'\nimport { AUTH_USER_STORE, ROOT_STORE, SPORTS_STORE } from '@/store/constants'\nimport { IRootState } from '@/store/modules/root/types'\nimport { ISportsActions, ISportsState } from '@/store/modules/sports/types'\nimport { ISportPayload } from '@/types/sports'\nimport { handleError } from '@/utils'\n\nexport const actions: ActionTree & ISportsActions = {\n [SPORTS_STORE.ACTIONS.GET_SPORTS](\n context: ActionContext\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n authApi\n .get('sports')\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n SPORTS_STORE.MUTATIONS.SET_SPORTS,\n res.data.data.sports\n )\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, false)\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n [SPORTS_STORE.ACTIONS.UPDATE_SPORTS](\n context: ActionContext,\n payload: ISportPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n authApi\n .patch(`sports/${payload.id}`, { is_active: payload.isActive })\n .then((res) => {\n if (res.data.status === 'success') {\n context.dispatch(SPORTS_STORE.ACTIONS.GET_SPORTS)\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n}\n","import { GetterTree } from 'vuex'\n\nimport { SPORTS_STORE } from '@/store/constants'\nimport { IRootState } from '@/store/modules/root/types'\nimport { ISportsGetters, ISportsState } from '@/store/modules/sports/types'\n\nexport const getters: GetterTree & ISportsGetters = {\n [SPORTS_STORE.GETTERS.SPORTS]: (state: ISportsState) => state.sports,\n}\n","import { MutationTree } from 'vuex'\n\nimport { SPORTS_STORE } from '@/store/constants'\nimport { ISportsState, TSportsMutations } from '@/store/modules/sports/types'\nimport { ISport } from '@/types/sports'\n\nexport const mutations: MutationTree & TSportsMutations = {\n [SPORTS_STORE.MUTATIONS.SET_SPORTS](state: ISportsState, sports: ISport[]) {\n state.sports = sports\n },\n}\n","import { ISportsState } from '@/store/modules/sports/types'\n\nexport const sportsState: ISportsState = {\n sports: [],\n}\n","import { Module } from 'vuex'\n\nimport { IRootState } from '@/store/modules/root/types'\nimport { actions } from '@/store/modules/sports/actions'\nimport { getters } from '@/store/modules/sports/getters'\nimport { mutations } from '@/store/modules/sports/mutations'\nimport { sportsState } from '@/store/modules/sports/state'\nimport { ISportsState } from '@/store/modules/sports/types'\n\nconst sports: Module = {\n state: sportsState,\n actions,\n getters,\n mutations,\n}\n\nexport default sports\n","import { ActionContext, ActionTree } from 'vuex'\n\nimport authApi from '@/api/authApi'\nimport { STATS_STORE, ROOT_STORE } from '@/store/constants'\nimport { IRootState } from '@/store/modules/root/types'\nimport {\n IStatisticsActions,\n IStatisticsState,\n} from '@/store/modules/statistics/types'\nimport { IUserStatisticsPayload } from '@/types/statistics'\nimport { handleError } from '@/utils'\n\nexport const actions: ActionTree &\n IStatisticsActions = {\n [STATS_STORE.ACTIONS.GET_USER_STATS](\n context: ActionContext,\n payload: IUserStatisticsPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n authApi\n .get(`stats/${payload.username}/${payload.filterType}`, {\n params: payload.params,\n })\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n STATS_STORE.MUTATIONS.UPDATE_USER_STATS,\n res.data.data.statistics\n )\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n}\n","import { GetterTree } from 'vuex'\n\nimport { STATS_STORE } from '@/store/constants'\nimport { IRootState } from '@/store/modules/root/types'\nimport {\n IStatisticsGetters,\n IStatisticsState,\n} from '@/store/modules/statistics/types'\n\nexport const getters: GetterTree &\n IStatisticsGetters = {\n [STATS_STORE.GETTERS.USER_STATS]: (state: IStatisticsState) => {\n return state.statistics\n },\n}\n","import { MutationTree } from 'vuex'\n\nimport { STATS_STORE } from '@/store/constants'\nimport {\n IStatisticsState,\n TStatisticsMutations,\n} from '@/store/modules/statistics/types'\nimport { TStatisticsFromApi } from '@/types/statistics'\n\nexport const mutations: MutationTree & TStatisticsMutations =\n {\n [STATS_STORE.MUTATIONS.UPDATE_USER_STATS](\n state: IStatisticsState,\n statistics: TStatisticsFromApi\n ) {\n state.statistics = statistics\n },\n [STATS_STORE.MUTATIONS.EMPTY_USER_STATS](state: IStatisticsState) {\n state.statistics = {}\n },\n }\n","import { IStatisticsState } from '@/store/modules/statistics/types'\nimport { TStatisticsFromApi } from '@/types/statistics'\n\nexport const statisticsState: IStatisticsState = {\n statistics: {},\n}\n","import { Module } from 'vuex'\n\nimport { IRootState } from '@/store/modules/root/types'\nimport { actions } from '@/store/modules/statistics/actions'\nimport { getters } from '@/store/modules/statistics/getters'\nimport { mutations } from '@/store/modules/statistics/mutations'\nimport { statisticsState } from '@/store/modules/statistics/state'\nimport { IStatisticsState } from '@/store/modules/statistics/types'\n\nconst statistics: Module = {\n state: statisticsState,\n actions,\n getters,\n mutations,\n}\n\nexport default statistics\n","import { GetterTree } from 'vuex'\n\nimport { USERS_STORE } from '@/store/constants'\nimport { IRootState } from '@/store/modules/root/types'\nimport { IUsersGetters, IUsersState } from '@/store/modules/users/types'\n\nexport const getters: GetterTree & IUsersGetters = {\n [USERS_STORE.GETTERS.USER]: (state: IUsersState) => {\n return state.user\n },\n [USERS_STORE.GETTERS.USERS]: (state: IUsersState) => {\n return state.users\n },\n [USERS_STORE.GETTERS.USERS_IS_SUCCESS]: (state: IUsersState) => {\n return state.isSuccess\n },\n [USERS_STORE.GETTERS.USERS_LOADING]: (state: IUsersState) => {\n return state.loading\n },\n [USERS_STORE.GETTERS.USERS_PAGINATION]: (state: IUsersState) => {\n return state.pagination\n },\n}\n","import { MutationTree } from 'vuex'\n\nimport { USERS_STORE } from '@/store/constants'\nimport { IUsersState, TUsersMutations } from '@/store/modules/users/types'\nimport { IPagination } from '@/types/api'\nimport { IUserProfile } from '@/types/user'\n\nexport const mutations: MutationTree & TUsersMutations = {\n [USERS_STORE.MUTATIONS.UPDATE_USER](state: IUsersState, user: IUserProfile) {\n state.user = user\n },\n [USERS_STORE.MUTATIONS.UPDATE_USER_IN_USERS](\n state: IUsersState,\n updatedUser: IUserProfile\n ) {\n state.users = state.users.map((user) => {\n if (user.username === updatedUser.username) {\n return updatedUser\n }\n return user\n })\n },\n [USERS_STORE.MUTATIONS.UPDATE_USERS](\n state: IUsersState,\n users: IUserProfile[]\n ) {\n state.users = users\n },\n [USERS_STORE.MUTATIONS.UPDATE_USERS_LOADING](\n state: IUsersState,\n loading: boolean\n ) {\n state.loading = loading\n },\n [USERS_STORE.MUTATIONS.UPDATE_USERS_PAGINATION](\n state: IUsersState,\n pagination: IPagination\n ) {\n state.pagination = pagination\n },\n [USERS_STORE.MUTATIONS.UPDATE_IS_SUCCESS](\n state: IUsersState,\n isSuccess: boolean\n ) {\n state.isSuccess = isSuccess\n },\n}\n","import { IUsersState } from '@/store/modules/users/types'\nimport { IPagination } from '@/types/api'\nimport { IUserProfile } from '@/types/user'\n\nexport const usersState: IUsersState = {\n user: {},\n users: [],\n loading: false,\n isSuccess: false,\n pagination: {},\n}\n","import { Module } from 'vuex'\n\nimport { IRootState } from '@/store/modules/root/types'\nimport { actions } from '@/store/modules/users/actions'\nimport { getters } from '@/store/modules/users/getters'\nimport { mutations } from '@/store/modules/users/mutations'\nimport { usersState } from '@/store/modules/users/state'\nimport { IUsersState } from '@/store/modules/users/types'\n\nconst users: Module = {\n state: usersState,\n actions,\n getters,\n mutations,\n}\n\nexport default users\n","import { ActionContext, ActionTree } from 'vuex'\n\nimport authApi from '@/api/authApi'\nimport router from '@/router'\nimport { ROOT_STORE, AUTH_USER_STORE, WORKOUTS_STORE } from '@/store/constants'\nimport { IRootState } from '@/store/modules/root/types'\nimport { WorkoutsMutations } from '@/store/modules/workouts/enums'\nimport {\n IWorkoutsActions,\n IWorkoutsState,\n} from '@/store/modules/workouts/types'\nimport {\n IWorkout,\n IWorkoutForm,\n IWorkoutPayload,\n TWorkoutsPayload,\n} from '@/types/workouts'\nimport { handleError } from '@/utils'\n\nconst getWorkouts = (\n context: ActionContext,\n payload: TWorkoutsPayload,\n target: WorkoutsMutations\n): void => {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n authApi\n .get('workouts', {\n params: payload,\n })\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(WORKOUTS_STORE.MUTATIONS[target], res.data.data.workouts)\n if (target === WorkoutsMutations['SET_USER_WORKOUTS']) {\n context.commit(\n WORKOUTS_STORE.MUTATIONS.SET_WORKOUTS_PAGINATION,\n res.data.pagination\n )\n }\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n}\n\nexport const actions: ActionTree &\n IWorkoutsActions = {\n [WORKOUTS_STORE.ACTIONS.GET_CALENDAR_WORKOUTS](\n context: ActionContext,\n payload: TWorkoutsPayload\n ): void {\n context.commit(WORKOUTS_STORE.MUTATIONS.EMPTY_CALENDAR_WORKOUTS)\n getWorkouts(context, payload, WorkoutsMutations['SET_CALENDAR_WORKOUTS'])\n },\n [WORKOUTS_STORE.ACTIONS.GET_USER_WORKOUTS](\n context: ActionContext,\n payload: TWorkoutsPayload\n ): void {\n getWorkouts(context, payload, WorkoutsMutations['SET_USER_WORKOUTS'])\n },\n [WORKOUTS_STORE.ACTIONS.GET_TIMELINE_WORKOUTS](\n context: ActionContext,\n payload: TWorkoutsPayload\n ): void {\n getWorkouts(context, payload, WorkoutsMutations['SET_TIMELINE_WORKOUTS'])\n },\n [WORKOUTS_STORE.ACTIONS.GET_MORE_TIMELINE_WORKOUTS](\n context: ActionContext,\n payload: TWorkoutsPayload\n ): void {\n getWorkouts(context, payload, WorkoutsMutations['ADD_TIMELINE_WORKOUTS'])\n },\n [WORKOUTS_STORE.ACTIONS.GET_WORKOUT_DATA](\n context: ActionContext,\n payload: IWorkoutPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING, true)\n const segmentUrl = payload.segmentId ? `/segment/${payload.segmentId}` : ''\n authApi\n .get(`workouts/${payload.workoutId}`)\n .then((res) => {\n const workout: IWorkout = res.data.data.workouts[0]\n if (res.data.status === 'success') {\n if (\n payload.segmentId &&\n (workout.segments.length === 0 ||\n !workout.segments[+payload.segmentId - 1])\n ) {\n throw new Error('WORKOUT_NOT_FOUND')\n }\n context.commit(\n WORKOUTS_STORE.MUTATIONS.SET_WORKOUT,\n res.data.data.workouts[0]\n )\n if (res.data.data.workouts[0].with_gpx) {\n authApi\n .get(`workouts/${payload.workoutId}/chart_data${segmentUrl}`)\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_CHART_DATA,\n res.data.data.chart_data\n )\n }\n })\n authApi\n .get(`workouts/${payload.workoutId}/gpx${segmentUrl}`)\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_GPX,\n res.data.data.gpx\n )\n }\n })\n }\n } else {\n context.commit(WORKOUTS_STORE.MUTATIONS.EMPTY_WORKOUT)\n handleError(context, null)\n }\n })\n .catch((error) => {\n context.commit(WORKOUTS_STORE.MUTATIONS.EMPTY_WORKOUT)\n handleError(context, error)\n })\n .finally(() =>\n context.commit(WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING, false)\n )\n },\n [WORKOUTS_STORE.ACTIONS.DELETE_WORKOUT](\n context: ActionContext,\n payload: IWorkoutPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING, true)\n authApi\n .delete(`workouts/${payload.workoutId}`)\n .then(() => {\n context.commit(WORKOUTS_STORE.MUTATIONS.EMPTY_WORKOUT)\n context.dispatch(AUTH_USER_STORE.ACTIONS.GET_USER_PROFILE)\n router.push('/')\n })\n .catch((error) => {\n handleError(context, error)\n })\n .finally(() =>\n context.commit(WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING, false)\n )\n },\n [WORKOUTS_STORE.ACTIONS.EDIT_WORKOUT](\n context: ActionContext,\n payload: IWorkoutPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING, true)\n authApi\n .patch(`workouts/${payload.workoutId}`, payload.data)\n .then(() => {\n context.dispatch(AUTH_USER_STORE.ACTIONS.GET_USER_PROFILE)\n context\n .dispatch(WORKOUTS_STORE.ACTIONS.GET_WORKOUT_DATA, {\n workoutId: payload.workoutId,\n })\n .then(() => {\n router.push({\n name: 'Workout',\n params: { workoutId: payload.workoutId },\n })\n })\n })\n .catch((error) => {\n handleError(context, error)\n })\n .finally(() =>\n context.commit(WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING, false)\n )\n },\n [WORKOUTS_STORE.ACTIONS.ADD_WORKOUT](\n context: ActionContext,\n payload: IWorkoutForm\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING, true)\n if (!payload.file) {\n throw new Error('No file part')\n }\n const form = new FormData()\n form.append('file', payload.file)\n form.append(\n 'data',\n `{\"sport_id\": ${payload.sport_id}, \"notes\": \"${payload.notes}\"}`\n )\n authApi\n .post('workouts', form, {\n headers: {\n 'content-type': 'multipart/form-data',\n },\n })\n .then((res) => {\n if (res.data.status === 'created') {\n context.dispatch(AUTH_USER_STORE.ACTIONS.GET_USER_PROFILE)\n const workout: IWorkout = res.data.data.workouts[0]\n router.push(\n res.data.data.workouts.length === 1\n ? `/workouts/${workout.id}`\n : '/'\n )\n }\n })\n .catch((error) => {\n handleError(context, error)\n })\n .finally(() =>\n context.commit(WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING, false)\n )\n },\n [WORKOUTS_STORE.ACTIONS.ADD_WORKOUT_WITHOUT_GPX](\n context: ActionContext,\n payload: IWorkoutForm\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING, true)\n authApi\n .post('workouts/no_gpx', payload)\n .then((res) => {\n if (res.data.status === 'created') {\n context.dispatch(AUTH_USER_STORE.ACTIONS.GET_USER_PROFILE)\n const workout: IWorkout = res.data.data.workouts[0]\n router.push(`/workouts/${workout.id}`)\n }\n })\n .catch((error) => {\n handleError(context, error)\n })\n .finally(() =>\n context.commit(WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING, false)\n )\n },\n}\n","import { GetterTree } from 'vuex'\n\nimport { WORKOUTS_STORE } from '@/store/constants'\nimport { IRootState } from '@/store/modules/root/types'\nimport {\n IWorkoutsGetters,\n IWorkoutsState,\n} from '@/store/modules/workouts/types'\n\nexport const getters: GetterTree &\n IWorkoutsGetters = {\n [WORKOUTS_STORE.GETTERS.CALENDAR_WORKOUTS]: (state: IWorkoutsState) => {\n return state.calendar_workouts\n },\n [WORKOUTS_STORE.GETTERS.TIMELINE_WORKOUTS]: (state: IWorkoutsState) => {\n return state.timeline_workouts\n },\n [WORKOUTS_STORE.GETTERS.USER_WORKOUTS]: (state: IWorkoutsState) => {\n return state.user_workouts\n },\n [WORKOUTS_STORE.GETTERS.WORKOUT_DATA]: (state: IWorkoutsState) => {\n return state.workoutData\n },\n [WORKOUTS_STORE.GETTERS.WORKOUTS_PAGINATION]: (state: IWorkoutsState) => {\n return state.pagination\n },\n}\n","import { MutationTree } from 'vuex'\n\nimport { WORKOUTS_STORE } from '@/store/constants'\nimport {\n IWorkoutsState,\n TWorkoutsMutations,\n} from '@/store/modules/workouts/types'\nimport { IPagination } from '@/types/api'\nimport { IWorkout, IWorkoutApiChartData } from '@/types/workouts'\n\nexport const mutations: MutationTree & TWorkoutsMutations = {\n [WORKOUTS_STORE.MUTATIONS.ADD_TIMELINE_WORKOUTS](\n state: IWorkoutsState,\n workouts: IWorkout[]\n ) {\n state.timeline_workouts = state.timeline_workouts.concat(workouts)\n },\n [WORKOUTS_STORE.MUTATIONS.SET_CALENDAR_WORKOUTS](\n state: IWorkoutsState,\n workouts: IWorkout[]\n ) {\n state.calendar_workouts = workouts\n },\n [WORKOUTS_STORE.MUTATIONS.SET_TIMELINE_WORKOUTS](\n state: IWorkoutsState,\n workouts: IWorkout[]\n ) {\n state.timeline_workouts = workouts\n },\n [WORKOUTS_STORE.MUTATIONS.SET_USER_WORKOUTS](\n state: IWorkoutsState,\n workouts: IWorkout[]\n ) {\n state.user_workouts = workouts\n },\n [WORKOUTS_STORE.MUTATIONS.SET_WORKOUTS_PAGINATION](\n state: IWorkoutsState,\n pagination: IPagination\n ) {\n state.pagination = pagination\n },\n [WORKOUTS_STORE.MUTATIONS.SET_WORKOUT](\n state: IWorkoutsState,\n workout: IWorkout\n ) {\n state.workoutData.workout = workout\n },\n [WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_CHART_DATA](\n state: IWorkoutsState,\n chartData: IWorkoutApiChartData[]\n ) {\n state.workoutData.chartData = chartData\n },\n [WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_GPX](\n state: IWorkoutsState,\n gpx: string\n ) {\n state.workoutData.gpx = gpx\n },\n [WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING](\n state: IWorkoutsState,\n loading: boolean\n ) {\n state.workoutData.loading = loading\n },\n [WORKOUTS_STORE.MUTATIONS.EMPTY_CALENDAR_WORKOUTS](state: IWorkoutsState) {\n state.calendar_workouts = []\n },\n [WORKOUTS_STORE.MUTATIONS.EMPTY_WORKOUTS](state: IWorkoutsState) {\n state.calendar_workouts = []\n state.user_workouts = []\n state.timeline_workouts = []\n },\n [WORKOUTS_STORE.MUTATIONS.EMPTY_WORKOUT](state: IWorkoutsState) {\n state.workoutData = {\n gpx: '',\n loading: false,\n workout: {},\n chartData: [],\n }\n },\n}\n","import { IWorkoutsState } from '@/store/modules/workouts/types'\nimport { IPagination } from '@/types/api'\nimport { IWorkout } from '@/types/workouts'\n\nexport const workoutsState: IWorkoutsState = {\n calendar_workouts: [],\n timeline_workouts: [],\n pagination: {},\n user_workouts: [],\n workoutData: {\n gpx: '',\n loading: false,\n workout: {},\n chartData: [],\n },\n}\n","import { Module } from 'vuex'\n\nimport { IRootState } from '@/store/modules/root/types'\nimport { actions } from '@/store/modules/workouts/actions'\nimport { getters } from '@/store/modules/workouts/getters'\nimport { mutations } from '@/store/modules/workouts/mutations'\nimport { workoutsState } from '@/store/modules/workouts/state'\nimport { IWorkoutsState } from '@/store/modules/workouts/types'\n\nconst workouts: Module = {\n state: workoutsState,\n actions,\n getters,\n mutations,\n}\n\nexport default workouts\n","import { Module, ModuleTree } from 'vuex'\n\nimport authUserModule from '@/store/modules/authUser'\nimport { actions } from '@/store/modules/root/actions'\nimport { getters } from '@/store/modules/root/getters'\nimport { mutations } from '@/store/modules/root/mutations'\nimport { state } from '@/store/modules/root/state'\nimport { IRootState } from '@/store/modules/root/types'\nimport sportsModule from '@/store/modules/sports'\nimport statsModule from '@/store/modules/statistics'\nimport usersModule from '@/store/modules/users'\nimport workoutsModule from '@/store/modules/workouts'\n\nconst modules: ModuleTree = {\n authUserModule,\n sportsModule,\n statsModule,\n usersModule,\n workoutsModule,\n}\n\nconst root: Module = {\n state,\n actions,\n getters,\n mutations,\n modules,\n}\n\nexport default root\n","import { createStore } from 'vuex'\n\nimport root from '@/store/modules/root'\nimport { IRootState } from '@/store/modules/root/types'\n\nconst store = createStore(root)\n\nexport default store\n","export enum WorkoutsActions {\n ADD_WORKOUT = 'ADD_WORKOUT',\n ADD_WORKOUT_WITHOUT_GPX = 'ADD_WORKOUT_WITHOUT_GPX',\n DELETE_WORKOUT = 'DELETE_WORKOUT',\n EDIT_WORKOUT = 'EDIT_WORKOUT',\n GET_CALENDAR_WORKOUTS = 'GET_CALENDAR_WORKOUTS',\n GET_USER_WORKOUTS = 'GET_USER_WORKOUTS',\n GET_TIMELINE_WORKOUTS = 'GET_TIMELINE_WORKOUTS',\n GET_MORE_TIMELINE_WORKOUTS = 'GET_MORE_TIMELINE_WORKOUTS',\n GET_WORKOUT_DATA = 'GET_WORKOUT_DATA',\n}\n\nexport enum WorkoutsGetters {\n CALENDAR_WORKOUTS = 'CALENDAR_WORKOUTS',\n TIMELINE_WORKOUTS = 'TIMELINE_WORKOUTS',\n USER_WORKOUTS = 'USER_WORKOUTS',\n WORKOUT_DATA = 'WORKOUT_DATA',\n WORKOUTS_PAGINATION = 'WORKOUTS_PAGINATION',\n}\n\nexport enum WorkoutsMutations {\n ADD_TIMELINE_WORKOUTS = 'ADD_TIMELINE_WORKOUTS',\n EMPTY_WORKOUTS = 'EMPTY_WORKOUTS',\n EMPTY_CALENDAR_WORKOUTS = 'EMPTY_CALENDAR_WORKOUTS',\n EMPTY_WORKOUT = 'EMPTY_WORKOUT',\n SET_CALENDAR_WORKOUTS = 'SET_CALENDAR_WORKOUTS',\n SET_TIMELINE_WORKOUTS = 'SET_TIMELINE_WORKOUTS',\n SET_USER_WORKOUTS = 'SET_USER_WORKOUTS',\n SET_WORKOUT = 'SET_WORKOUT',\n SET_WORKOUT_GPX = 'SET_WORKOUT_GPX',\n SET_WORKOUT_CHART_DATA = 'SET_WORKOUT_CHART_DATA',\n SET_WORKOUT_LOADING = 'SET_WORKOUT_LOADING',\n SET_WORKOUTS_PAGINATION = 'SET_WORKOUTS_PAGINATION',\n}\n","import { useStore as VuexStore } from 'vuex'\n\nimport { Store } from '@/store/types'\n\nexport function useStore(): Store {\n return VuexStore() as Store\n}\n","import { LocationQuery } from 'vue-router'\n\nimport { IQueryOptions, TPaginationPayload } from '@/types/api'\n\nexport const sortList: string[] = ['asc', 'desc']\nexport const defaultPage = 1\nexport const defaultPerPage = 10\n\nexport const getNumberQueryValue = (\n queryValue: string | (string | null)[] | null,\n defaultValue: number\n): number => {\n return queryValue && typeof queryValue === 'string' && +queryValue > 0\n ? +queryValue\n : defaultValue\n}\n\nexport const getStringQueryValue = (\n queryValue: string | (string | null)[] | null,\n availableValues: string[],\n defaultValue: string\n): string => {\n return queryValue &&\n typeof queryValue === 'string' &&\n availableValues.includes(queryValue)\n ? queryValue\n : defaultValue\n}\n\nexport const getQuery = (\n locationQuery: LocationQuery,\n orderByList: string[],\n defaultOrderBy: string,\n options?: IQueryOptions\n): TPaginationPayload => {\n const queryOptions = options || {}\n const defaultSort = queryOptions.defaultSort || 'asc'\n const query = {}\n\n query.page = getNumberQueryValue(locationQuery.page, defaultPage)\n query.per_page = getNumberQueryValue(locationQuery.per_page, defaultPerPage)\n query.order = getStringQueryValue(locationQuery.order, sortList, defaultSort)\n query.order_by = getStringQueryValue(\n locationQuery.order_by,\n orderByList,\n defaultOrderBy\n )\n if (typeof locationQuery.q === 'string') {\n query.q = locationQuery.q\n } else {\n delete query.q\n }\n\n return query\n}\n\nexport const workoutsPayloadKeys = [\n 'from',\n 'to',\n 'ave_speed_from',\n 'ave_speed_to',\n 'max_speed_from',\n 'max_speed_to',\n 'distance_from',\n 'distance_to',\n 'duration_from',\n 'duration_to',\n 'sport_id',\n]\n\nconst getRange = (stop: number, start = 1): number[] => {\n return Array.from({ length: stop - start + 1 }, (_, i) => start + i)\n}\n\nexport const rangePagination = (\n pages: number,\n currentPage: number\n): (string | number)[] => {\n if (pages < 0) {\n return []\n }\n\n if (pages < 9) {\n return getRange(pages)\n }\n\n let pagination: (string | number)[] = [1, 2]\n if (currentPage < 4) {\n pagination = pagination.concat([3, 4, 5])\n } else if (currentPage < 6) {\n pagination = pagination.concat(getRange(currentPage + 2, 3))\n } else {\n pagination = pagination.concat(['...'])\n if (currentPage < pages - 2) {\n pagination = pagination.concat(getRange(currentPage + 2, currentPage - 2))\n }\n }\n if (currentPage + 2 <= pages - 2) {\n pagination = pagination.concat(['...'])\n pagination = pagination.concat(getRange(pages, pages - 1))\n } else {\n if (\n pagination[pagination.length - 1] !== '...' &&\n pagination[pagination.length - 1] >= pages - 2 &&\n pagination[pagination.length - 1] < pages\n ) {\n pagination = pagination.concat(\n getRange(pages, +pagination[pagination.length - 1] + 1)\n )\n } else {\n pagination = pagination.concat(\n getRange(\n pages,\n currentPage < pages - 3 ? currentPage + 3 : currentPage - 5\n )\n )\n }\n }\n\n return pagination\n}\n","import {\n addDays,\n addMonths,\n addYears,\n endOfMonth,\n endOfWeek,\n format,\n startOfMonth,\n startOfWeek,\n startOfYear,\n} from 'date-fns'\nimport { utcToZonedTime } from 'date-fns-tz'\n\nexport const getStartDate = (\n duration: string,\n day: Date,\n weekStartingMonday: boolean\n): Date => {\n switch (duration) {\n case 'week':\n return startOfWeek(day, { weekStartsOn: weekStartingMonday ? 1 : 0 })\n case 'year':\n return startOfYear(day)\n case 'month':\n return startOfMonth(day)\n default:\n throw new Error(\n `Invalid duration, expected: \"week\", \"month\", \"year\", got: \"${duration}\"`\n )\n }\n}\n\nexport const incrementDate = (duration: string, day: Date): Date => {\n switch (duration) {\n case 'week':\n return addDays(day, 7)\n case 'year':\n return addYears(day, 1)\n case 'month':\n return addMonths(day, 1)\n default:\n throw new Error(\n `Invalid duration, expected: \"week\", \"month\", \"year\", got: \"${duration}\"`\n )\n }\n}\n\nexport const getDateWithTZ = (dateInUTC: string, tz: string): Date => {\n return utcToZonedTime(new Date(dateInUTC), tz)\n}\n\nexport const getCalendarStartAndEnd = (\n date: Date,\n weekStartingMonday: boolean\n): Record => {\n const monthStart = startOfMonth(date)\n const monthEnd = endOfMonth(date)\n const weekStartsOn = weekStartingMonday ? 1 : 0\n return {\n start: startOfWeek(monthStart, { weekStartsOn }),\n end: endOfWeek(monthEnd, { weekStartsOn }),\n }\n}\n\nexport const formatWorkoutDate = (\n dateTime: Date,\n dateFormat: string | null = null,\n timeFormat: string | null = null\n): Record => {\n if (!dateFormat) {\n dateFormat = 'yyyy/MM/dd'\n }\n if (!timeFormat) {\n timeFormat = 'HH:mm'\n }\n return {\n workout_date: format(dateTime, dateFormat),\n workout_time: format(dateTime, timeFormat),\n }\n}\n","const suffixes = ['bytes', 'KB', 'MB', 'GB', 'TB']\n\nexport const getReadableFileSize = (\n fileSize: number,\n asText = true\n): string | Record => {\n const i = Math.floor(Math.log(fileSize) / Math.log(1024))\n if (!fileSize) {\n return asText ? '0 bytes' : { size: '0', suffix: 'bytes' }\n }\n const size = (fileSize / Math.pow(1024, i)).toFixed(1)\n const suffix = suffixes[i]\n return asText ? `${size}${suffix}` : { size, suffix }\n}\n\nexport const getFileSizeInMB = (fileSize: number): number => {\n const value = fileSize / 1048576\n return (!fileSize && 0) || +value.toFixed(2)\n}\n","import { AxiosError } from 'axios'\nimport { ActionContext } from 'vuex'\n\nimport { ROOT_STORE } from '@/store/constants'\nimport { IAuthUserState } from '@/store/modules/authUser/types'\nimport { IRootState } from '@/store/modules/root/types'\nimport { ISportsState } from '@/store/modules/sports/types'\nimport { IStatisticsState } from '@/store/modules/statistics/types'\nimport { IUsersState } from '@/store/modules/users/types'\nimport { IWorkoutsState } from '@/store/modules/workouts/types'\n\nexport const getApiUrl = (): string => {\n return process.env.NODE_ENV === 'production'\n ? '/api/'\n : `${process.env.VUE_APP_API_URL}/api/`\n}\n\nexport const handleError = (\n context:\n | ActionContext\n | ActionContext\n | ActionContext\n | ActionContext\n | ActionContext\n | ActionContext,\n error: AxiosError | null,\n msg = 'UNKNOWN'\n): void => {\n const errorMessages = !error\n ? msg\n : error.response\n ? error.response.status === 413\n ? 'file size is greater than the allowed size'\n : error.response.data.message\n ? error.response.data.message\n : msg\n : error.message\n ? error.message\n : msg\n context.commit(\n ROOT_STORE.MUTATIONS.SET_ERROR_MESSAGES,\n errorMessages.includes('\\n')\n ? errorMessages\n .split('\\n')\n .filter((m: string) => m !== '')\n .map((m: string) => `api.ERROR.${m}`)\n : `api.ERROR.${errorMessages}`\n )\n}\n","/* eslint-disable import/no-duplicates */\nimport { Locale } from 'date-fns'\nimport { enUS, fr } from 'date-fns/locale'\n\nimport createI18n from '@/i18n'\n\nexport const localeFromLanguage: Record = {\n en: enUS,\n fr: fr,\n}\n\nexport const languageLabels: Record = {\n en: 'English',\n fr: 'Français',\n}\n\nconst { availableLocales } = createI18n.global\nexport const availableLanguages = availableLocales.map((l) => {\n return { label: languageLabels[l], value: l }\n})\n","import { ISport, ITranslatedSport, TActiveStatus } from '@/types/sports'\nimport { IWorkout } from '@/types/workouts'\n\nexport const sportColors: Record = {\n 'Cycling (Sport)': '#4c9792',\n 'Cycling (Transport)': '#88af98',\n Hiking: '#bb757c',\n 'Mountain Biking': '#d4b371',\n 'Mountain Biking (Electric)': '#fc9d6f',\n Rowing: '#fcce72',\n Running: '#835b83',\n 'Skiing (Alpine)': '#67a4bd',\n 'Skiing (Cross Country)': '#9498d0',\n Snowshoes: '#5780a8',\n Trail: '#09a98a',\n Walking: '#838383',\n}\n\nexport const sportIdColors = (sports: ISport[]): Record => {\n const colors: Record = {}\n sports.map(\n (sport) =>\n (colors[sport.id] = sport.color ? sport.color : sportColors[sport.label])\n )\n return colors\n}\n\nconst sortSports = (a: ITranslatedSport, b: ITranslatedSport): number => {\n const sportATranslatedLabel = a.translatedLabel.toLowerCase()\n const sportBTranslatedLabel = b.translatedLabel.toLowerCase()\n return sportATranslatedLabel > sportBTranslatedLabel\n ? 1\n : sportATranslatedLabel < sportBTranslatedLabel\n ? -1\n : 0\n}\n\nexport const translateSports = (\n sports: ISport[],\n t: CallableFunction,\n activeStatus: TActiveStatus = 'all',\n sportsToInclude: number[] = []\n): ITranslatedSport[] =>\n sports\n .filter((sport) =>\n activeStatus === 'all'\n ? true\n : sportsToInclude.includes(sport.id) || sport[activeStatus]\n )\n .map((sport) => ({\n ...sport,\n translatedLabel: t(`sports.${sport.label}.LABEL`),\n }))\n .sort(sortSports)\n\nexport const getSportLabel = (workout: IWorkout, sports: ISport[]): string => {\n return sports\n .filter((sport) => sport.id === workout.sport_id)\n .map((sport) => sport.label)[0]\n}\n\nexport const getSportColor = (\n workout: IWorkout,\n sports: ISport[]\n): string | null => {\n return sports\n .filter((sport) => sport.id === workout.sport_id)\n .map((sport) => sport.color)[0]\n}\n","import {\n addMonths,\n addWeeks,\n addYears,\n endOfMonth,\n endOfWeek,\n endOfYear,\n format,\n startOfMonth,\n startOfWeek,\n startOfYear,\n subMonths,\n subWeeks,\n subYears,\n} from 'date-fns'\n\nimport { IChartDataset } from '@/types/chart'\nimport { ISport } from '@/types/sports'\nimport {\n IStatisticsChartData,\n IStatisticsDateParams,\n TStatisticsDatasetKeys,\n TStatisticsDatasets,\n TStatisticsFromApi,\n} from '@/types/statistics'\nimport { incrementDate, getStartDate } from '@/utils/dates'\nimport { sportColors } from '@/utils/sports'\nimport { convertStatsDistance } from '@/utils/units'\n\nconst dateFormats: Record> = {\n week: {\n api: 'yyyy-MM-dd',\n chart: 'dd/MM/yyyy',\n },\n month: {\n api: 'yyyy-MM',\n chart: 'MM/yyyy',\n },\n year: {\n api: 'yyyy',\n chart: 'yyyy',\n },\n}\n\nexport const datasetKeys: TStatisticsDatasetKeys[] = [\n 'average_speed',\n 'nb_workouts',\n 'total_duration',\n 'total_distance',\n 'total_ascent',\n 'total_descent',\n]\n\nexport const getDateKeys = (\n params: IStatisticsDateParams,\n weekStartingMonday: boolean\n): Date[] => {\n const days = []\n for (\n let day = getStartDate(params.duration, params.start, weekStartingMonday);\n day <= params.end;\n day = incrementDate(params.duration, day)\n ) {\n days.push(day)\n }\n return days\n}\n\nconst getStatisticsChartDataset = (\n sportLabel: string,\n color: string,\n isLineChart = false\n): IChartDataset => {\n const dataset: IChartDataset = {\n label: sportLabel,\n backgroundColor: [color],\n data: [],\n }\n if (isLineChart) {\n dataset.type = 'line'\n dataset.borderColor = [color]\n dataset.spanGaps = true\n }\n return dataset\n}\n\nexport const getDatasets = (displayedSports: ISport[]): TStatisticsDatasets => {\n const datasets: TStatisticsDatasets = {\n average_speed: [],\n nb_workouts: [],\n total_distance: [],\n total_duration: [],\n total_ascent: [],\n total_descent: [],\n }\n displayedSports.map((sport) => {\n const color = sport.color ? sport.color : sportColors[sport.label]\n datasets.average_speed.push(\n getStatisticsChartDataset(sport.label, color, true)\n )\n datasets.nb_workouts.push(getStatisticsChartDataset(sport.label, color))\n datasets.total_distance.push(getStatisticsChartDataset(sport.label, color))\n datasets.total_duration.push(getStatisticsChartDataset(sport.label, color))\n datasets.total_ascent.push(getStatisticsChartDataset(sport.label, color))\n datasets.total_descent.push(getStatisticsChartDataset(sport.label, color))\n })\n return datasets\n}\n\nexport const convertStatsValue = (\n datasetKey: TStatisticsDatasetKeys,\n value: number,\n useImperialUnits: boolean\n): number => {\n switch (datasetKey) {\n case 'average_speed':\n case 'total_distance':\n case 'total_ascent':\n case 'total_descent':\n return convertStatsDistance(\n ['average_speed', 'total_distance'].includes(datasetKey) ? 'km' : 'm',\n value,\n useImperialUnits\n )\n default:\n case 'nb_workouts':\n case 'total_duration':\n return value\n }\n}\n\nexport const formatStats = (\n params: IStatisticsDateParams,\n weekStartingMonday: boolean,\n sports: ISport[],\n displayedSportsId: number[],\n apiStats: TStatisticsFromApi,\n useImperialUnits: boolean\n): IStatisticsChartData => {\n const dayKeys = getDateKeys(params, weekStartingMonday)\n const dateFormat = dateFormats[params.duration]\n const displayedSports = sports.filter((sport) =>\n displayedSportsId.includes(sport.id)\n )\n const labels: string[] = []\n const datasets = getDatasets(displayedSports)\n const sportsId: Record = {}\n displayedSports.map(\n (displayedSport) => (sportsId[displayedSport.label] = displayedSport.id)\n )\n\n dayKeys.map((key) => {\n const date: string = format(key, dateFormat.api)\n const label: string = format(key, dateFormat.chart)\n labels.push(label)\n datasetKeys.map((datasetKey) => {\n datasets[datasetKey].map((dataset) => {\n dataset.data.push(\n apiStats !== {} &&\n date in apiStats &&\n sportsId[dataset.label] in apiStats[date]\n ? convertStatsValue(\n datasetKey,\n apiStats[date][sportsId[dataset.label]][datasetKey],\n useImperialUnits\n )\n : datasetKey === 'average_speed'\n ? null\n : 0\n )\n })\n })\n })\n return {\n labels,\n datasets,\n }\n}\n\nexport const getStatsDateParams = (\n date: Date,\n timeFrame: string,\n weekStartingMonday: boolean\n): IStatisticsDateParams => {\n const weekStartsOn = weekStartingMonday ? 1 : 0\n const start =\n timeFrame === 'year'\n ? startOfYear(subYears(date, 9))\n : timeFrame === 'week'\n ? startOfWeek(subMonths(date, 2), { weekStartsOn })\n : startOfMonth(subMonths(date, 11)) // month\n const end =\n timeFrame === 'year'\n ? endOfYear(date)\n : timeFrame === 'week'\n ? endOfWeek(date, { weekStartsOn })\n : endOfMonth(date) // month\n return {\n duration: timeFrame,\n end,\n start,\n }\n}\n\nexport const updateChartParams = (\n chartParams: IStatisticsDateParams,\n backward: boolean,\n weekStartingMonday: boolean\n): IStatisticsDateParams => {\n const { duration, start, end } = chartParams\n const weekStartsOn = weekStartingMonday ? 1 : 0\n return {\n duration,\n end:\n duration === 'year'\n ? endOfYear(backward ? subYears(end, 1) : addYears(end, 1))\n : duration === 'week'\n ? endOfWeek(backward ? subWeeks(end, 1) : addWeeks(end, 1), {\n weekStartsOn,\n })\n : endOfMonth(backward ? subMonths(end, 1) : addMonths(end, 1)),\n start:\n duration === 'year'\n ? startOfYear(backward ? subYears(start, 1) : addYears(start, 1))\n : duration === 'week'\n ? startOfWeek(backward ? subWeeks(start, 1) : addWeeks(start, 1), {\n weekStartsOn,\n })\n : startOfMonth(backward ? subMonths(start, 1) : addMonths(start, 1)),\n }\n}\n","import { IUnit, TFactor, TUnit } from '@/types/units'\n\nexport const units: Record = {\n ft: {\n unit: 'ft',\n system: 'imperial',\n multiplier: 1,\n defaultTarget: 'm',\n },\n mi: {\n unit: 'mi',\n system: 'imperial',\n multiplier: 5280,\n defaultTarget: 'km',\n },\n m: {\n unit: 'm',\n system: 'metric',\n multiplier: 1,\n defaultTarget: 'ft',\n },\n km: {\n unit: 'm',\n system: 'metric',\n multiplier: 1000,\n defaultTarget: 'mi',\n },\n}\n\nconst factors: TFactor = {\n metric: {\n imperial: 3.280839895,\n metric: 1,\n },\n imperial: {\n metric: 1 / 3.280839895,\n imperial: 1,\n },\n}\n\nexport const convertDistance = (\n distance: number,\n from: TUnit,\n to: TUnit,\n digits: number | null = 3\n): number => {\n const unitFrom = units[from]\n const unitTo = units[to]\n const convertedDistance =\n (distance * unitFrom.multiplier * factors[unitFrom.system][unitTo.system]) /\n unitTo.multiplier\n if (digits !== null) {\n return parseFloat(convertedDistance.toFixed(digits))\n }\n return convertedDistance\n}\n\nexport const convertStatsDistance = (\n unitFrom: TUnit,\n value: number,\n useImperialUnits: boolean\n): number => {\n const unitTo = useImperialUnits ? units[unitFrom].defaultTarget : unitFrom\n return useImperialUnits ? convertDistance(value, unitFrom, unitTo, 2) : value\n}\n","import {\n IWorkout,\n IWorkoutApiChartData,\n IWorkoutChartData,\n TCoordinates,\n TWorkoutDatasets,\n} from '@/types/workouts'\nimport { convertStatsDistance } from '@/utils/units'\n\nexport const getDatasets = (\n chartData: IWorkoutApiChartData[],\n t: CallableFunction,\n useImperialUnits: boolean\n): IWorkoutChartData => {\n const datasets: TWorkoutDatasets = {\n speed: {\n label: t('workouts.SPEED'),\n backgroundColor: ['#FFFFFF'],\n borderColor: ['#8884d8'],\n borderWidth: 2,\n data: [],\n yAxisID: 'ySpeed',\n },\n elevation: {\n label: t('workouts.ELEVATION'),\n backgroundColor: ['#e5e5e5'],\n borderColor: ['#cccccc'],\n borderWidth: 1,\n fill: true,\n data: [],\n yAxisID: 'yElevation',\n },\n }\n const distance_labels: unknown[] = []\n const duration_labels: unknown[] = []\n const coordinates: TCoordinates[] = []\n\n chartData.map((data) => {\n distance_labels.push(data.distance)\n duration_labels.push(data.duration)\n datasets.speed.data.push(\n convertStatsDistance('km', data.speed, useImperialUnits)\n )\n datasets.elevation.data.push(\n convertStatsDistance('m', data.elevation, useImperialUnits)\n )\n coordinates.push({ latitude: data.latitude, longitude: data.longitude })\n })\n\n return { distance_labels, duration_labels, datasets, coordinates }\n}\n\nexport const getDonutDatasets = (\n workouts: IWorkout[]\n): Record> => {\n const total = workouts.length\n if (total === 0) {\n return {}\n }\n\n const datasets: Record> = {}\n workouts.map((workout) => {\n if (!datasets[workout.sport_id]) {\n datasets[workout.sport_id] = {\n count: 0,\n percentage: 0,\n }\n }\n datasets[workout.sport_id].count += 1\n datasets[workout.sport_id].percentage =\n datasets[workout.sport_id].count / total\n })\n\n return datasets\n}\n\nexport const defaultOrder = {\n order: 'desc',\n order_by: 'workout_date',\n}\n","\n\n\n","import { render } from \"./Card.vue?vue&type=template&id=ad374c24\"\nconst script = {}\n\nimport \"./Card.vue?vue&type=style&index=0&id=ad374c24&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import script from \"./FilterSelects.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./FilterSelects.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./FilterSelects.vue?vue&type=style&index=0&id=72463173&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-72463173\"]])\n\nexport default __exports__","\n\n\n","import { render } from \"./ErrorImg.vue?vue&type=template&id=e620aed4\"\nimport script from \"./ErrorImg.vue?vue&type=script&lang=js\"\nexport * from \"./ErrorImg.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import script from \"./Error.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Error.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./Error.vue?vue&type=style&index=0&id=b60bfa80&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-b60bfa80\"]])\n\nexport default __exports__","import script from \"./NotFound.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./NotFound.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import script from \"./Pagination.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Pagination.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./Pagination.vue?vue&type=style&index=0&id=f38ea1b8&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-f38ea1b8\"]])\n\nexport default __exports__","import { zxcvbnOptions } from '@zxcvbn-ts/core'\n\nexport const setZxcvbnOptions = async (language: string) => {\n const zxcvbnCommonPackage = await import(\n /* webpackChunkName: \"password\" */ '@zxcvbn-ts/language-common'\n )\n const zxcvbnEnPackage = await import(\n /* webpackChunkName: \"password\" */ '@zxcvbn-ts/language-en'\n )\n const zxcvbnFrPackage = await import(\n /* webpackChunkName: \"password\" */ '@zxcvbn-ts/language-fr'\n )\n const zxcvbnLangPackages: Record = {\n en: zxcvbnEnPackage,\n fr: zxcvbnFrPackage,\n }\n const zxcvbnPackage = zxcvbnLangPackages[language]\n const options = {\n graphs: zxcvbnCommonPackage.default.adjacencyGraphs,\n dictionary: {\n ...zxcvbnCommonPackage.default.dictionary,\n ...zxcvbnPackage.default.dictionary,\n },\n }\n zxcvbnOptions.setOptions(options)\n}\n\nexport const getPasswordStrength = (strength: number): string => {\n switch (strength) {\n case 2:\n return 'AVERAGE'\n case 3:\n return 'GOOD'\n case 4:\n return 'STRONG'\n default:\n return 'WEAK'\n }\n}\n","import script from \"./PasswordStength.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./PasswordStength.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./PasswordStength.vue?vue&type=style&index=0&id=79c9693d&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-79c9693d\"]])\n\nexport default __exports__","import script from \"./PasswordInput.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./PasswordInput.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./PasswordInput.vue?vue&type=style&index=0&id=5a126514&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-5a126514\"]])\n\nexport default __exports__","import script from \"./StaticMap.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./StaticMap.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./StaticMap.vue?vue&type=style&index=0&id=6b7e4baf&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, createBlock as _createBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-68a6a495\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"start-chart\" }\nconst _hoisted_2 = { key: 0 }\nconst _hoisted_3 = { key: 1 }\nconst _hoisted_4 = { class: \"chart-radio\" }\nconst _hoisted_5 = [\"checked\"]\nconst _hoisted_6 = [\"checked\"]\nconst _hoisted_7 = [\"checked\"]\nconst _hoisted_8 = { key: 0 }\nconst _hoisted_9 = [\"checked\"]\nconst _hoisted_10 = { key: 1 }\nconst _hoisted_11 = [\"checked\"]\nconst _hoisted_12 = { key: 2 }\nconst _hoisted_13 = [\"checked\"]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_Chart = _resolveComponent(\"Chart\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_ctx.hideChartIfNoData && _ctx.emptyStats)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, _toDisplayString(_ctx.$t('workouts.NO_WORKOUTS')), 1))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"label\", null, [\n _createElementVNode(\"input\", {\n type: \"radio\",\n name: \"total_distance\",\n checked: _ctx.displayedData === 'total_distance',\n onClick: _cache[0] || (_cache[0] = \n//@ts-ignore\n(...args) => (_ctx.updateDisplayData && _ctx.updateDisplayData(...args)))\n }, null, 8, _hoisted_5),\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('workouts.DISTANCE')), 1)\n ]),\n _createElementVNode(\"label\", null, [\n _createElementVNode(\"input\", {\n type: \"radio\",\n name: \"total_duration\",\n checked: _ctx.displayedData === 'total_duration',\n onClick: _cache[1] || (_cache[1] = \n//@ts-ignore\n(...args) => (_ctx.updateDisplayData && _ctx.updateDisplayData(...args)))\n }, null, 8, _hoisted_6),\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('workouts.DURATION')), 1)\n ]),\n _createElementVNode(\"label\", null, [\n _createElementVNode(\"input\", {\n type: \"radio\",\n name: \"nb_workouts\",\n checked: _ctx.displayedData === 'nb_workouts',\n onClick: _cache[2] || (_cache[2] = \n//@ts-ignore\n(...args) => (_ctx.updateDisplayData && _ctx.updateDisplayData(...args)))\n }, null, 8, _hoisted_7),\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('workouts.WORKOUT', 2)), 1)\n ]),\n (_ctx.fullStats)\n ? (_openBlock(), _createElementBlock(\"label\", _hoisted_8, [\n _createElementVNode(\"input\", {\n type: \"radio\",\n name: \"average_speed\",\n checked: _ctx.displayedData === 'average_speed',\n onClick: _cache[3] || (_cache[3] = \n//@ts-ignore\n(...args) => (_ctx.updateDisplayData && _ctx.updateDisplayData(...args)))\n }, null, 8, _hoisted_9),\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('workouts.AVERAGE_SPEED')), 1)\n ]))\n : _createCommentVNode(\"\", true),\n (_ctx.fullStats)\n ? (_openBlock(), _createElementBlock(\"label\", _hoisted_10, [\n _createElementVNode(\"input\", {\n type: \"radio\",\n name: \"total_ascent\",\n checked: _ctx.displayedData === 'total_ascent',\n onClick: _cache[4] || (_cache[4] = \n//@ts-ignore\n(...args) => (_ctx.updateDisplayData && _ctx.updateDisplayData(...args)))\n }, null, 8, _hoisted_11),\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('workouts.ASCENT')), 1)\n ]))\n : _createCommentVNode(\"\", true),\n (_ctx.fullStats)\n ? (_openBlock(), _createElementBlock(\"label\", _hoisted_12, [\n _createElementVNode(\"input\", {\n type: \"radio\",\n name: \"total_descent\",\n checked: _ctx.displayedData === 'total_descent',\n onClick: _cache[5] || (_cache[5] = \n//@ts-ignore\n(...args) => (_ctx.updateDisplayData && _ctx.updateDisplayData(...args)))\n }, null, 8, _hoisted_13),\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('workouts.DESCENT')), 1)\n ]))\n : _createCommentVNode(\"\", true)\n ]),\n (_ctx.labels.length > 0)\n ? (_openBlock(), _createBlock(_component_Chart, {\n key: 0,\n datasets: _ctx.datasets,\n labels: _ctx.labels,\n displayedData: _ctx.displayedData,\n displayedSportIds: _ctx.displayedSportIds,\n fullStats: _ctx.fullStats,\n useImperialUnits: _ctx.user.imperial_units\n }, null, 8, [\"datasets\", \"labels\", \"displayedData\", \"displayedSportIds\", \"fullStats\", \"useImperialUnits\"]))\n : _createCommentVNode(\"\", true)\n ]))\n ]))\n}","export const formatDuration = (\n totalSeconds: number,\n formatWithUnits = false\n): string => {\n let days = '0'\n if (formatWithUnits) {\n days = String(Math.floor(totalSeconds / 86400))\n totalSeconds %= 86400\n }\n const hours = String(Math.floor(totalSeconds / 3600)).padStart(2, '0')\n totalSeconds %= 3600\n const minutes = String(Math.floor(totalSeconds / 60)).padStart(2, '0')\n const seconds = String(totalSeconds % 60).padStart(2, '0')\n if (formatWithUnits) {\n return `${days === '0' ? '' : `${days}d `}${\n hours === '00' ? '' : `${hours}h `\n }${minutes}m ${seconds}s`\n }\n return `${hours === '00' ? '' : `${hours}:`}${minutes}:${seconds}`\n}\n","import { TStatisticsDatasetKeys } from '@/types/statistics'\nimport { formatDuration } from '@/utils/duration'\nimport { units } from '@/utils/units'\n\nexport const formatTooltipValue = (\n displayedData: TStatisticsDatasetKeys,\n value: number,\n useImperialUnits: boolean,\n formatWithUnits = true\n): string => {\n const unitFrom = 'km'\n const unitTo = useImperialUnits ? units[unitFrom].defaultTarget : unitFrom\n switch (displayedData) {\n case 'average_speed':\n return `${value.toFixed(2)} ${unitTo}/h`\n case 'total_duration':\n return formatDuration(value, formatWithUnits)\n case 'total_distance':\n return `${value.toFixed(2)} ${unitTo}`\n case 'total_ascent':\n case 'total_descent':\n return `${(value / 1000).toFixed(2)} ${unitTo}`\n default:\n return value.toString()\n }\n}\n","import { render } from \"./Chart.vue?vue&type=template&id=7eb1257c&ts=true\"\nimport script from \"./Chart.vue?vue&type=script&lang=ts\"\nexport * from \"./Chart.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./index.vue?vue&type=template&id=68a6a495&scoped=true&ts=true\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\nimport \"./index.vue?vue&type=style&index=0&id=68a6a495&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-68a6a495\"]])\n\nexport default __exports__","import script from \"./UserHeader.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserHeader.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserHeader.vue?vue&type=style&index=0&id=20291951&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-20291951\"]])\n\nexport default __exports__","import script from \"./UserInfos.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserInfos.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserInfos.vue?vue&type=style&index=0&id=1b6fd7df&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-1b6fd7df\"]])\n\nexport default __exports__","import script from \"./UserAuthForm.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserAuthForm.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserAuthForm.vue?vue&type=style&index=0&id=26d3a7be&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-26d3a7be\"]])\n\nexport default __exports__","import script from \"./UserPicture.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserPicture.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserPicture.vue?vue&type=style&index=0&id=26bea286&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n\n\n","import { render } from \"./NoWorkouts.vue?vue&type=template&id=4b4d15fb&scoped=true\"\nconst script = {}\n\nimport \"./NoWorkouts.vue?vue&type=style&index=0&id=4b4d15fb&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-4b4d15fb\"]])\n\nexport default __exports__","var map = {\n\t\"./en/en.ts\": 9350,\n\t\"./fr/fr.ts\": 1079\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 4612;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","var getProto = Object.getPrototypeOf ? function(obj) { return Object.getPrototypeOf(obj); } : function(obj) { return obj.__proto__; };\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach(function(key) { def[key] = function() { return value[key]; }; });\n\t}\n\tdef['default'] = function() { return value; };\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"static/js/\" + ({\"24\":\"reset\",\"193\":\"statistics\",\"328\":\"admin\",\"401\":\"workouts\",\"845\":\"profile\",\"881\":\"password\"}[chunkId] || chunkId) + \".\" + {\"24\":\"80b9da45\",\"93\":\"0cd1858e\",\"193\":\"ea7ff674\",\"243\":\"697a3d7b\",\"328\":\"43bba6c9\",\"401\":\"a9d2f467\",\"431\":\"54edda90\",\"633\":\"c743cd9a\",\"845\":\"6625cfc7\",\"858\":\"4449709a\",\"881\":\"b05df85b\"}[chunkId] + \".js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"static/css/\" + {\"24\":\"reset\",\"193\":\"statistics\",\"328\":\"admin\",\"401\":\"workouts\",\"845\":\"profile\"}[chunkId] + \".\" + {\"24\":\"e2527ec6\",\"193\":\"91fe968e\",\"328\":\"73df498d\",\"401\":\"3ddc8329\",\"845\":\"203e78e2\"}[chunkId] + \".css\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","var inProgress = {};\nvar dataWebpackPrefix = \"fittrackee_client:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t}\n\t;\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.p = \"/\";","var createStylesheet = function(chunkId, fullhref, resolve, reject) {\n\tvar linkTag = document.createElement(\"link\");\n\n\tlinkTag.rel = \"stylesheet\";\n\tlinkTag.type = \"text/css\";\n\tvar onLinkComplete = function(event) {\n\t\t// avoid mem leaks.\n\t\tlinkTag.onerror = linkTag.onload = null;\n\t\tif (event.type === 'load') {\n\t\t\tresolve();\n\t\t} else {\n\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\tvar realHref = event && event.target && event.target.href || fullhref;\n\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + realHref + \")\");\n\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n\t\t\terr.type = errorType;\n\t\t\terr.request = realHref;\n\t\t\tlinkTag.parentNode.removeChild(linkTag)\n\t\t\treject(err);\n\t\t}\n\t}\n\tlinkTag.onerror = linkTag.onload = onLinkComplete;\n\tlinkTag.href = fullhref;\n\n\tdocument.head.appendChild(linkTag);\n\treturn linkTag;\n};\nvar findStylesheet = function(href, fullhref) {\n\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n\tfor(var i = 0; i < existingLinkTags.length; i++) {\n\t\tvar tag = existingLinkTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return tag;\n\t}\n\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n\tfor(var i = 0; i < existingStyleTags.length; i++) {\n\t\tvar tag = existingStyleTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\");\n\t\tif(dataHref === href || dataHref === fullhref) return tag;\n\t}\n};\nvar loadStylesheet = function(chunkId) {\n\treturn new Promise(function(resolve, reject) {\n\t\tvar href = __webpack_require__.miniCssF(chunkId);\n\t\tvar fullhref = __webpack_require__.p + href;\n\t\tif(findStylesheet(href, fullhref)) return resolve();\n\t\tcreateStylesheet(chunkId, fullhref, resolve, reject);\n\t});\n}\n// object to store loaded CSS chunks\nvar installedCssChunks = {\n\t143: 0\n};\n\n__webpack_require__.f.miniCss = function(chunkId, promises) {\n\tvar cssChunks = {\"24\":1,\"193\":1,\"328\":1,\"401\":1,\"845\":1};\n\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n\t\tpromises.push(installedCssChunks[chunkId] = loadStylesheet(chunkId).then(function() {\n\t\t\tinstalledCssChunks[chunkId] = 0;\n\t\t}, function(e) {\n\t\t\tdelete installedCssChunks[chunkId];\n\t\t\tthrow e;\n\t\t}));\n\t}\n};\n\n// no hmr","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t143: 0\n};\n\n__webpack_require__.f.j = function(chunkId, promises) {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise(function(resolve, reject) { installedChunkData = installedChunks[chunkId] = [resolve, reject]; });\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = function(event) {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkfittrackee_client\"] = self[\"webpackChunkfittrackee_client\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [998], function() { return __webpack_require__(811); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["authApi","axios","baseURL","getApiUrl","interceptors","request","use","config","authToken","store","AUTH_USER_STORE","auth","headers","Authorization","error","Promise","reject","loadLocaleMessages","locales","require","messages","keys","forEach","key","matched","match","length","locale","default","createI18n","legacy","fallbackLocale","globalInjection","ctx","normalize","_normalize","interpolate","_interpolate","list","_list","plural","_plural","about","AboutTranslations","admin","AdministrationTranslations","api","ApiTranslations","buttons","ButtonsTranslations","common","CommonTranslations","dashboard","DashboardTranslations","ErrorTranslations","sports","SportsTranslations","statistics","StatisticsTranslations","user","UserTranslations","workouts","WorkoutsTranslations","register","ready","console","log","registered","cached","updatefound","updated","offline","_withScopeId","n","_pushScopeId","_popScopeId","_hoisted_1","id","_hoisted_2","class","_hoisted_3","_hoisted_4","_createElementVNode","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","href","target","rel","_defineComponent","name","props","version","adminContact","setup","__props","toRefs","_ctx","_cache","_component_router_link","_resolveComponent","_openBlock","_createElementBlock","_createTextVNode","_toDisplayString","_unref","_createVNode","to","_withCtx","$t","_","_createCommentVNode","__exports__","emits","emit","useI18n","useStore","authUser","computed","getters","isAuthenticated","language","ROOT_STORE","isMenuOpen","ref","openMenu","value","closeMenu","updateLanguage","option","toString","commit","logout","dispatch","_component_Dropdown","onClick","$event","$router","push","_normalizeClass","capitalize","_createBlock","UserPicture","username","availableLanguages","options","selected","onSelected","ErrorImg","innerHTML","appConfig","appLoading","hideScrollBar","displayScrollButton","updateHideScrollBar","isScrolledToBottom","element","getBoundingClientRect","top","window","innerHeight","bottom","scroll","onscroll","document","querySelector","scrollToTop","scrollTo","behavior","setTimeout","onBeforeMount","onMounted","_component_Loader","_component_router_view","_Fragment","NavBar","onMenuInteraction","NoConfig","Footer","admin_contact","message","charLimit","disabled","type","Boolean","input","text","updateText","event","watch","_withDirectives","maxLenght","_isRef","onInput","_vModelText","distance","unitFrom","useImperialUnits","digits","displayUnit","speed","strong","unitTo","units","defaultTarget","convertedDistance","convertDistance","parseFloat","toFixed","route","useRoute","isOpen","dropdownOptions","map","toggleDropdown","updateSelected","path","_renderSlot","$slots","_renderList","index","label","Array","isArray","subMessage","xmlns","x","y","viewBox","style","d","render","_hoisted_20","cx","cy","r","sportLabel","color","title","sportColors","inject","_normalizeStyle","fill","CyclingSport","CyclingTransport","Hiking","MountainBiking","MountainBikingElectric","Rowing","Running","SkiingAlpine","SkiingCrossCountry","Snowshoes","Trail","Walking","script","strongMessage","errorMessages","onUnmounted","_component_i18n_t","_component_ErrorMessage","_component_Card","content","keypath","customComponents","AlertMessage","Card","CustomTextArea","Distance","Dropdown","ErrorMessage","Loader","Modal","SportImage","clickOutsideDirective","mounted","binding","clickOutsideEvent","contains","body","addEventListener","unmounted","removeEventListener","undefined","Chart","BarElement","LineElement","PointElement","Legend","Title","Tooltip","Filler","BarController","CategoryScale","LineController","LinearScale","ChartDataLabels","app","createApp","App","provide","i18n","router","VueFullscreen","directive","component","mount","for","_hoisted_13","_hoisted_14","_hoisted_15","_hoisted_16","_hoisted_17","_hoisted_18","_hoisted_19","edition","useRouter","appData","reactive","max_users","max_single_file_size","max_zip_file_size","gpx_limit_import","updateForm","Object","includes","getFileSizeInMB","onCancel","onSubmit","formData","assign","_withModifiers","min","step","icon","appStatistics","uploadDirSize","getReadableFileSize","uploads_dir_size","StatCard","users","size","suffix","AppStatsCards","is_registration_enabled","is_email_sending_enabled","t","translatedSports","translateSports","SPORTS_STORE","updateSportStatus","isActive","_component_SportImage","sport","translatedLabel","is_active","danger","has_workouts","query","q","searchUsers","resetFilter","onKeyup","_withKeys","placeholder","trim","orderByList","defaultOrderBy","getQuery","USERS_STORE","pagination","loadUsers","queryParams","reloadUsers","updateUser","queryParam","queryValue","page","newQuery","UsersNameFilter","onFilterOnUsername","FilterSelects","sort","sortList","order_by","onUpdateSelect","email","format","getDateWithTZ","created_at","timezone","nb_workouts","Pagination","tabs","selectedTab","getPath","tab","toLocaleLowerCase","checked","UserHeader","UserProfileTabs","languageLabels","fistDayOfWeek","weekm","imperial_units","loading","userForm","password","new_password","isSuccess","emailUpdate","formErrors","displayModal","invalidateForm","updateUserForm","updatePassword","updateNewPassword","updateProfile","payload","updateDisplayModal","deleteAccount","isSuccessValue","_component_Modal","onConfirmAction","onCancelAction","errors","required","onInvalid","PasswordInput","onUpdatePassword","onPasswordError","checkStrength","first_name","last_name","birth_date","location","bio","registrationDate","Date","updateBio","_component_CustomTextArea","onUpdateValue","fileSizeLimit","pictureFile","deleteUserPicture","updatePictureFile","files","updateUserPicture","picture","accept","timeZones","tzList","focusItemIndex","matchTimezone","toLowerCase","onMouseOver","onUpdateTimezone","onEnter","preventDefault","firstElementChild","openDropdown","onKeydown","ref_key","filter","tz","focus","onMouseover","autofocus","weekStart","imperialUnits","updateTZ","lang","_vModelSelect","TimezoneDropdown","start","unit","_hoisted_21","_hoisted_22","_hoisted_23","_hoisted_24","_hoisted_25","_hoisted_26","_hoisted_27","isEdition","sports_list","sportPayload","sport_id","stopped_speed_threshold","updateSportInEdition","is_active_for_user","resetSportPayload","isSportInEdition","sportId","updateColor","updateThreshold","updateIsActive","updateSport","resetSport","newIsLoading","onChange","e","src","alt","BikePic","About","workout","_component_Distance","params","workoutId","workout_date","formatDistance","addSuffix","with_gpx","StaticMap","moving","min_alt","max_alt","ascent","descent","per_page","initWorkoutsCount","loadWorkouts","WORKOUTS_STORE","moreWorkoutsExist","previous_workout","defaultOrder","loadMoreWorkouts","WorkoutCard","s","NoWorkouts","sportColor","records","record","record_type","height","width","colors","datasets","angleOffset","radius","circumference","Math","PI","calculateStrokeDashOffset","percentage","returnCircleTransformValue","rotation","entries","data","stroke","transform","isHidden","togglePane","stopPropagation","_directive_click_outside","_resolveDirective","DonutChart","CalendarWorkout","getSportLabel","getSportColor","chartDatasets","getDonutDatasets","sportIdColors","displayedWorkoutCount","slice","CalendarWorkoutsChart","currentDay","endDate","startDate","weekStartingMonday","rows","getDays","day","days","i","addDays","isWeekEnd","filterWorkouts","isSameDay","reverse","row","isSameMonth","today","isToday","CalendarWorkouts","localeOptions","dateFormat","calendarDates","getCalendarStartAndEnd","calendarWorkouts","getCalendarWorkouts","apiParams","from","end","displayNextMonth","addMonths","displayPreviousMonth","subMonths","CalendarHeader","onDisplayNextMonth","onDisplayPreviousMonth","CalendarDays","CalendarCells","date","chartParams","duration","startOfMonth","endOfMonth","selectedSportIds","StatChart","sportTranslatedLabel","workout_id","formatRecord","Error","formatWorkoutDate","getRecordsBySports","reduce","sportList","find","recordsBySport","RecordsCard","userTotalDuration","total_duration","totalDuration","get_duration","defaultUnitFrom","totalDistance","total_distance","split","nb_sports","isSelected","updateDisplayColumn","UserStatsCards","UserMonthStats","UserRecords","UserCalendar","Timeline","NotFound","action","LoginOrRegisterForm","getTabFromPath","regex","tag","replace","toUpperCase","routes","Dashboard","LoginOrRegister","children","Profile","UserInfos","UserPreferences","UserSportPreferences","ProfileEdition","UserInfosEdition","UserAccountEdition","UserPictureEdition","UserPreferencesEdition","displaySegment","AdminMenu","AdminApplication","AdminSports","fromAdmin","AdminUsers","AboutView","NotFoundView","createRouter","history","createWebHistory","process","pathsWithoutAuthentication","pathsWithoutChecks","beforeEach","next","then","fullPath","catch","AuthUserActions","AuthUserGetters","AuthUserMutations","RootActions","RootGetters","RootMutations","SportsActions","SportsGetters","SportsMutation","StatisticsActions","StatisticsGetters","StatisticsMutations","UsersActions","UsersGetters","UsersMutations","ACTIONS","GETTERS","MUTATIONS","STATS_STORE","WorkoutsActions","WorkoutsGetters","WorkoutsMutations","deleteUserAccount","context","res","status","handleError","actions","finally","resetPassword","reset_password","activate","new_email","removeAuthUserData","localStorage","removeItem","token","auth_token","setItem","refreshUser","actionType","redirectUrl","form","FormData","append","state","authUserProfile","isRegistrationSuccess","mutations","authUserState","application","localeFromLanguage","root","enUS","sportsState","filterType","statisticsState","updatedUser","usersState","getWorkouts","segmentUrl","segmentId","segments","chart_data","gpx","file","notes","calendar_workouts","timeline_workouts","user_workouts","workoutData","concat","chartData","workoutsState","modules","authUserModule","sportsModule","statsModule","usersModule","workoutsModule","createStore","VuexStore","defaultPage","defaultPerPage","getNumberQueryValue","defaultValue","getStringQueryValue","availableValues","locationQuery","queryOptions","defaultSort","order","workoutsPayloadKeys","getRange","stop","rangePagination","pages","currentPage","getStartDate","startOfWeek","weekStartsOn","startOfYear","incrementDate","addYears","dateInUTC","utcToZonedTime","monthStart","monthEnd","endOfWeek","dateTime","timeFormat","workout_time","suffixes","fileSize","asText","floor","pow","msg","response","m","en","fr","availableLocales","l","sortSports","a","b","sportATranslatedLabel","sportBTranslatedLabel","activeStatus","sportsToInclude","dateFormats","week","chart","month","year","datasetKeys","getDateKeys","getStatisticsChartDataset","isLineChart","dataset","backgroundColor","borderColor","spanGaps","getDatasets","displayedSports","average_speed","total_ascent","total_descent","convertStatsValue","datasetKey","convertStatsDistance","formatStats","displayedSportsId","apiStats","dayKeys","labels","sportsId","displayedSport","getStatsDateParams","timeFrame","subYears","endOfYear","updateChartParams","backward","subWeeks","addWeeks","ft","system","multiplier","mi","km","factors","metric","imperial","borderWidth","yAxisID","elevation","distance_labels","duration_labels","coordinates","latitude","longitude","total","count","perPage","onSelectUpdate","nb","buttonText","cursor","has_prev","navigate","has_next","active","setZxcvbnOptions","async","zxcvbnCommonPackage","zxcvbnEnPackage","zxcvbnFrPackage","zxcvbnLangPackages","zxcvbnPackage","graphs","adjacencyGraphs","dictionary","zxcvbnOptions","getPasswordStrength","strength","passwordScore","passwordStrength","passwordSuggestions","backgroundSize","calculatePasswordStrength","zxcvbnResult","zxcvbn","score","feedback","suggestions","newLanguageValue","newPassword","max","suggestion","showPassword","passwordValue","togglePassword","invalidPassword","minlength","_vModelDynamic","PasswordStrength","displayHover","imageUrl","backgroundImage","$props","$setup","$data","$options","_component_Chart","hideChartIfNoData","emptyStats","displayedData","args","updateDisplayData","fullStats","displayedSportIds","_component_BarChart","_mergeProps","barChartProps","formatDuration","totalSeconds","formatWithUnits","String","hours","padStart","minutes","seconds","formatTooltipValue","defineComponent","components","BarChart","getNumber","isNaN","getSum","JSON","parse","stringify","responsive","maintainAspectRatio","animation","layout","padding","scales","stacked","grid","drawOnChartArea","ticks","maxTicksLimit","callback","afterFit","scale","plugins","datalabels","anchor","align","chartArea","display","formatter","dataIndex","datasetIndex","legend","tooltip","interaction","intersect","mode","position","tooltipItem","formattedValue","callbacks","parsed","footer","tooltipItems","sum","useBarChart","formattedStats","getStatistics","getApiParams","time","newParams","birthDate","displayUserEmailForm","newUserEmail","currentAction","resetUserPassword","confirmUserAccount","displayEmailForm","resetErrorsAndSuccess","email_to_confirm","hideEmailForm","updateUserEmail","newIsSuccess","_component_AlertMessage","go","getButtonText","registration_disabled","sendingEmailDisabled","resetFormData","pattern","maxlength","authUserPictureUrl","now","webpackContext","req","webpackContextResolve","__webpack_require__","o","code","resolve","module","exports","__webpack_module_cache__","moduleId","cachedModule","__webpack_modules__","call","deferred","O","result","chunkIds","fn","priority","notFulfilled","Infinity","fulfilled","j","every","splice","getter","__esModule","leafPrototypes","getProto","getPrototypeOf","obj","__proto__","this","ns","create","def","current","indexOf","getOwnPropertyNames","definition","defineProperty","enumerable","get","f","chunkId","all","promises","u","miniCssF","g","globalThis","Function","prop","prototype","hasOwnProperty","inProgress","dataWebpackPrefix","url","done","needAttach","scripts","getElementsByTagName","getAttribute","createElement","charset","timeout","nc","setAttribute","onScriptComplete","prev","onerror","onload","clearTimeout","doneFns","parentNode","removeChild","bind","head","appendChild","Symbol","toStringTag","p","createStylesheet","fullhref","linkTag","onLinkComplete","errorType","realHref","err","findStylesheet","existingLinkTags","dataHref","existingStyleTags","loadStylesheet","installedCssChunks","miniCss","cssChunks","installedChunks","installedChunkData","promise","loadingEnded","realSrc","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","self","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/app.8517c25d.js","mappings":"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AAA,OAAcC,EAAAA,EAAAA,IAAoB,SAAU,CAC3CpF,IAAK,EACLwD,MAAO,SACP6D,QAASqT,IACRpV,EAAAA,EAAAA,IAAiBP,EAAKY,GAAG,gCAAiC,KAC7DE,EAAAA,EAAAA,IAAoB,IAAI,IAC5BlC,EAAAA,EAAAA,GAAoB,SAAU,CAC5BH,MAAO,SACP6D,QAASrC,EAAO,KAAOA,EAAO,GAAMsC,GAAiBvC,EAAKwC,QAAQC,KAAK,eACtElC,EAAAA,EAAAA,IAAiBP,EAAKY,GAAG,iCAAkC,MAE/D,GAAIlC,YsDlHb,MAAM,IAA2B,OAAgB,GAAQ,CAAC,CAAC,YAAY,qBAEvE,UCRO,MAAMuX,GAAY,CACvB,iBACA,eACA,iBACA,gBACA,eACA,oBACA,eACA,kBACA,sBACA,cACA,kBACA,eACA,gBACA,kBACA,iBACA,kBACA,kBACA,iBACA,eACA,kBACA,eACA,oBACA,oBACA,iCACA,8BACA,4BACA,0BACA,6BACA,4BACA,iCACA,0BACA,6BACA,6BACA,4BACA,4BACA,mBACA,mBACA,gBACA,yBACA,mBACA,gBACA,iBACA,uBACA,oBACA,iBACA,gBACA,wBACA,uBACA,iBACA,kBACA,kBACA,kBACA,oBACA,qBACA,kBACA,iBACA,kBACA,uBACA,iBACA,uBACA,iBACA,kBACA,mBACA,mBACA,sBACA,oBACA,sBACA,oBACA,kBACA,oBACA,qBACA,oBACA,oBACA,iBACA,kBACA,iBACA,qBACA,+BACA,uBACA,0BACA,6BACA,4BACA,wBACA,4BACA,0BACA,iBACA,kBACA,kBACA,iBACA,8BACA,8BACA,iBACA,eACA,sBACA,iBACA,kBACA,iBACA,qBACA,oBACA,mBACA,oBACA,iBACA,qBACA,sBACA,mBACA,kBACA,oBACA,qBACA,iBACA,mBACA,kBACA,eACA,kBACA,8BACA,8BACA,iCACA,kBACA,iBACA,sBACA,qBACA,kBACA,yBACA,wBACA,sBACA,sBACA,uBACA,sBACA,uBACA,iBACA,iBACA,mBACA,qBACA,mBACA,mBACA,wBACA,oBACA,uBACA,gBACA,mBACA,wBACA,sBACA,gBACA,sBACA,kBACA,kBACA,oBACA,qBACA,mBACA,kBACA,sBACA,mBACA,mBACA,4BACA,uBACA,oBACA,oBACA,qBACA,mBACA,mBACA,oBACA,cACA,aACA,cACA,aACA,cACA,gBACA,cACA,eACA,YACA,eACA,eACA,cACA,eACA,cACA,aACA,kBACA,eACA,gBACA,aACA,YACA,aACA,gBACA,iBACA,YACA,cACA,mBACA,iBACA,YACA,eACA,eACA,gBACA,iBACA,aACA,iBACA,eACA,iBACA,gBACA,eACA,mBACA,oBACA,eACA,aACA,eACA,gBACA,cACA,eACA,oBACA,mBACA,YACA,YACA,iBACA,iBACA,aACA,gBACA,iBACA,cACA,gBACA,iBACA,aACA,gBACA,iBACA,qBACA,cACA,gBACA,eACA,cACA,eACA,aACA,aACA,mBACA,cACA,gBACA,mBACA,eACA,cACA,qBACA,eACA,kBACA,mBACA,kBACA,sBACA,iBACA,mBACA,qBACA,yBACA,mBACA,qBACA,qBACA,wBACA,mBACA,mBACA,kBACA,mBACA,qBACA,sBACA,sBACA,kBACA,mBACA,mBACA,iBACA,mBACA,gBACA,kBACA,gBACA,kBACA,mBACA,kBACA,kBACA,oBACA,gBACA,mBACA,kBACA,kBACA,qBACA,cACA,eACA,gBACA,gBACA,oBACA,gBACA,eACA,eACA,gBACA,gBACA,cACA,eACA,gBACA,cACA,cACA,gBACA,iBACA,oBACA,eACA,mBACA,iBACA,gBACA,mBACA,kBACA,gBACA,iBACA,mBACA,gBACA,oBACA,gBACA,gBACA,mBACA,eACA,mBACA,cACA,kBACA,mBACA,iBACA,eACA,mBACA,uBACA,kBACA,gBACA,iBACA,gBACA,oBACA,kBACA,eACA,mBACA,oBACA,kBACA,sBACA,eACA,mBACA,qBACA,iBACA,oBACA,iBACA,oBACA,gBACA,eACA,kBACA,iBACA,oBACA,gBACA,mBACA,kBACA,uBACA,oBACA,iBACA,iBACA,oBACA,eACA,kBvDx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","sources":["webpack://fittrackee_client/./src/api/authApi.ts","webpack://fittrackee_client/./src/i18n.ts","webpack://fittrackee_client/./src/locales/en/about.json","webpack://fittrackee_client/./src/locales/en/administration.json","webpack://fittrackee_client/./src/locales/en/api.json","webpack://fittrackee_client/./src/locales/en/buttons.json","webpack://fittrackee_client/./src/locales/en/common.json","webpack://fittrackee_client/./src/locales/en/dashboard.json","webpack://fittrackee_client/./src/locales/en/error.json","webpack://fittrackee_client/./src/locales/en/sports.json","webpack://fittrackee_client/./src/locales/en/statistics.json","webpack://fittrackee_client/./src/locales/en/user.json","webpack://fittrackee_client/./src/locales/en/workouts.json","webpack://fittrackee_client/./src/locales/en/en.ts","webpack://fittrackee_client/./src/locales/fr/about.json","webpack://fittrackee_client/./src/locales/fr/administration.json","webpack://fittrackee_client/./src/locales/fr/api.json","webpack://fittrackee_client/./src/locales/fr/buttons.json","webpack://fittrackee_client/./src/locales/fr/common.json","webpack://fittrackee_client/./src/locales/fr/dashboard.json","webpack://fittrackee_client/./src/locales/fr/error.json","webpack://fittrackee_client/./src/locales/fr/sports.json","webpack://fittrackee_client/./src/locales/fr/statistics.json","webpack://fittrackee_client/./src/locales/fr/user.json","webpack://fittrackee_client/./src/locales/fr/workouts.json","webpack://fittrackee_client/./src/locales/fr/fr.ts","webpack://fittrackee_client/./src/registerServiceWorker.ts","webpack://fittrackee_client/./node_modules/vue-loader/dist/index.js","webpack://fittrackee_client/./src/components/Footer.vue","webpack://fittrackee_client/./src/components/NavBar.vue","webpack://fittrackee_client/./src/components/NoConfig.vue","webpack://fittrackee_client/./src/App.vue","webpack://fittrackee_client/./src/components/Common/AlertMessage.vue","webpack://fittrackee_client/./src/components/Common/CustomTextArea.vue","webpack://fittrackee_client/./src/components/Common/Distance.vue","webpack://fittrackee_client/./src/components/Common/Dropdown.vue","webpack://fittrackee_client/./src/components/Common/ErrorMessage.vue","webpack://fittrackee_client/./src/components/Common/Images/SportImage/CyclingSport.vue","webpack://fittrackee_client/./src/components/Common/Images/SportImage/CyclingSport.vue?4f4b","webpack://fittrackee_client/./src/components/Common/Images/SportImage/CyclingTransport.vue","webpack://fittrackee_client/./src/components/Common/Images/SportImage/CyclingTransport.vue?a81c","webpack://fittrackee_client/./src/components/Common/Images/SportImage/Hiking.vue","webpack://fittrackee_client/./src/components/Common/Images/SportImage/Hiking.vue?cf60","webpack://fittrackee_client/./src/components/Common/Images/SportImage/MountainBiking.vue","webpack://fittrackee_client/./src/components/Common/Images/SportImage/MountainBiking.vue?8a30","webpack://fittrackee_client/./src/components/Common/Images/SportImage/MountainBikingElectric.vue","webpack://fittrackee_client/./src/components/Common/Images/SportImage/MountainBikingElectric.vue?f7ee","webpack://fittrackee_client/./src/components/Common/Images/SportImage/Rowing.vue","webpack://fittrackee_client/./src/components/Common/Images/SportImage/Rowing.vue?c24b","webpack://fittrackee_client/./src/components/Common/Images/SportImage/Running.vue","webpack://fittrackee_client/./src/components/Common/Images/SportImage/Running.vue?2cd2","webpack://fittrackee_client/./src/components/Common/Images/SportImage/SkiingAlpine.vue","webpack://fittrackee_client/./src/components/Common/Images/SportImage/SkiingAlpine.vue?f1ff","webpack://fittrackee_client/./src/components/Common/Images/SportImage/SkiingCrossCountry.vue","webpack://fittrackee_client/./src/components/Common/Images/SportImage/SkiingCrossCountry.vue?f0db","webpack://fittrackee_client/./src/components/Common/Images/SportImage/Snowshoes.vue","webpack://fittrackee_client/./src/components/Common/Images/SportImage/Snowshoes.vue?cfb7","webpack://fittrackee_client/./src/components/Common/Images/SportImage/Trail.vue","webpack://fittrackee_client/./src/components/Common/Images/SportImage/Trail.vue?5564","webpack://fittrackee_client/./src/components/Common/Images/SportImage/Walking.vue","webpack://fittrackee_client/./src/components/Common/Images/SportImage/Walking.vue?f92f","webpack://fittrackee_client/./src/components/Common/Images/SportImage/index.vue","webpack://fittrackee_client/./src/components/Common/Loader.vue","webpack://fittrackee_client/./src/components/Common/Loader.vue?0b74","webpack://fittrackee_client/./src/components/Common/Modal.vue","webpack://fittrackee_client/./src/custom-components.ts","webpack://fittrackee_client/./src/directives.ts","webpack://fittrackee_client/./src/main.ts","webpack://fittrackee_client/./src/components/Administration/AdminApplication.vue","webpack://fittrackee_client/./src/components/Common/StatCard.vue","webpack://fittrackee_client/./src/components/Administration/AppStatsCards.vue","webpack://fittrackee_client/./src/components/Administration/AdminMenu.vue","webpack://fittrackee_client/./src/components/Administration/AdminSports.vue","webpack://fittrackee_client/./src/components/Users/UsersNameFilter.vue","webpack://fittrackee_client/./src/components/Administration/AdminUsers.vue","webpack://fittrackee_client/./src/components/User/UserProfileTabs.vue","webpack://fittrackee_client/./src/components/User/ProfileDisplay/index.vue","webpack://fittrackee_client/./src/components/User/ProfileDisplay/UserPreferences.vue","webpack://fittrackee_client/./src/components/User/ProfileEdition/index.vue","webpack://fittrackee_client/./src/components/User/ProfileEdition/UserAccountEdition.vue","webpack://fittrackee_client/./src/components/User/ProfileEdition/UserInfosEdition.vue","webpack://fittrackee_client/./src/components/User/ProfileEdition/UserPictureEdition.vue","webpack://fittrackee_client/./src/utils/timezone.ts","webpack://fittrackee_client/./src/components/User/ProfileEdition/TimezoneDropdown.vue","webpack://fittrackee_client/./src/components/User/ProfileEdition/UserPreferencesEdition.vue","webpack://fittrackee_client/./src/components/User/UserSportPreferences.vue","webpack://fittrackee_client/./src/components/About.vue","webpack://fittrackee_client/./src/components/BikePic.vue","webpack://fittrackee_client/./src/components/BikePic.vue?a9e2","webpack://fittrackee_client/./src/views/AboutView.vue","webpack://fittrackee_client/./src/components/Workout/WorkoutCard.vue","webpack://fittrackee_client/./src/components/Dashboard/Timeline.vue","webpack://fittrackee_client/./src/components/Dashboard/UserCalendar/CalendarWorkout.vue","webpack://fittrackee_client/./src/components/Dashboard/UserCalendar/DonutChart.vue","webpack://fittrackee_client/./src/components/Dashboard/UserCalendar/CalendarWorkoutsChart.vue","webpack://fittrackee_client/./src/components/Dashboard/UserCalendar/CalendarWorkouts.vue","webpack://fittrackee_client/./src/components/Dashboard/UserCalendar/CalendarCells.vue","webpack://fittrackee_client/./src/components/Dashboard/UserCalendar/CalendarDays.vue","webpack://fittrackee_client/./src/components/Dashboard/UserCalendar/CalendarHeader.vue","webpack://fittrackee_client/./src/components/Dashboard/UserCalendar/index.vue","webpack://fittrackee_client/./src/components/Dashboard/UserMonthStats.vue","webpack://fittrackee_client/./src/components/Dashboard/UserRecords/RecordsCard.vue","webpack://fittrackee_client/./src/utils/records.ts","webpack://fittrackee_client/./src/components/Dashboard/UserRecords/index.vue","webpack://fittrackee_client/./src/components/Dashboard/UserStatsCards/index.vue","webpack://fittrackee_client/./src/views/Dashboard.vue","webpack://fittrackee_client/./src/views/NotFoundView.vue","webpack://fittrackee_client/./src/views/user/LoginOrRegister.vue","webpack://fittrackee_client/./src/router/index.ts","webpack://fittrackee_client/./src/store/modules/authUser/enums.ts","webpack://fittrackee_client/./src/store/modules/root/enums.ts","webpack://fittrackee_client/./src/store/modules/sports/enums.ts","webpack://fittrackee_client/./src/store/modules/statistics/enums.ts","webpack://fittrackee_client/./src/store/modules/users/enums.ts","webpack://fittrackee_client/./src/store/constants.ts","webpack://fittrackee_client/./src/api/defaultApi.ts","webpack://fittrackee_client/./src/store/modules/users/actions.ts","webpack://fittrackee_client/./src/store/modules/authUser/actions.ts","webpack://fittrackee_client/./src/store/modules/authUser/getters.ts","webpack://fittrackee_client/./src/store/modules/authUser/mutations.ts","webpack://fittrackee_client/./src/store/modules/authUser/state.ts","webpack://fittrackee_client/./src/store/modules/authUser/index.ts","webpack://fittrackee_client/./src/store/modules/root/actions.ts","webpack://fittrackee_client/./src/store/modules/root/getters.ts","webpack://fittrackee_client/./src/store/modules/root/mutations.ts","webpack://fittrackee_client/./src/store/modules/root/state.ts","webpack://fittrackee_client/./src/store/modules/sports/actions.ts","webpack://fittrackee_client/./src/store/modules/sports/getters.ts","webpack://fittrackee_client/./src/store/modules/sports/mutations.ts","webpack://fittrackee_client/./src/store/modules/sports/state.ts","webpack://fittrackee_client/./src/store/modules/sports/index.ts","webpack://fittrackee_client/./src/store/modules/statistics/actions.ts","webpack://fittrackee_client/./src/store/modules/statistics/getters.ts","webpack://fittrackee_client/./src/store/modules/statistics/mutations.ts","webpack://fittrackee_client/./src/store/modules/statistics/state.ts","webpack://fittrackee_client/./src/store/modules/statistics/index.ts","webpack://fittrackee_client/./src/store/modules/users/getters.ts","webpack://fittrackee_client/./src/store/modules/users/mutations.ts","webpack://fittrackee_client/./src/store/modules/users/state.ts","webpack://fittrackee_client/./src/store/modules/users/index.ts","webpack://fittrackee_client/./src/store/modules/workouts/actions.ts","webpack://fittrackee_client/./src/store/modules/workouts/getters.ts","webpack://fittrackee_client/./src/store/modules/workouts/mutations.ts","webpack://fittrackee_client/./src/store/modules/workouts/state.ts","webpack://fittrackee_client/./src/store/modules/workouts/index.ts","webpack://fittrackee_client/./src/store/modules/root/index.ts","webpack://fittrackee_client/./src/store/index.ts","webpack://fittrackee_client/./src/store/modules/workouts/enums.ts","webpack://fittrackee_client/./src/use/useStore.ts","webpack://fittrackee_client/./src/utils/api.ts","webpack://fittrackee_client/./src/utils/dates.ts","webpack://fittrackee_client/./src/utils/files.ts","webpack://fittrackee_client/./src/utils/index.ts","webpack://fittrackee_client/./src/utils/locales.ts","webpack://fittrackee_client/./src/utils/sports.ts","webpack://fittrackee_client/./src/utils/statistics.ts","webpack://fittrackee_client/./src/utils/units.ts","webpack://fittrackee_client/./src/utils/workouts.ts","webpack://fittrackee_client/./src/components/Common/Card.vue","webpack://fittrackee_client/./src/components/Common/Card.vue?88f1","webpack://fittrackee_client/./src/components/Common/FilterSelects.vue","webpack://fittrackee_client/./src/components/Common/Images/ErrorImg.vue","webpack://fittrackee_client/./src/components/Common/Images/ErrorImg.vue?6a2a","webpack://fittrackee_client/./src/components/Common/Error.vue","webpack://fittrackee_client/./src/components/Common/NotFound.vue","webpack://fittrackee_client/./src/components/Common/Pagination.vue","webpack://fittrackee_client/./src/utils/password.ts","webpack://fittrackee_client/./src/components/Common/PasswordStength.vue","webpack://fittrackee_client/./src/components/Common/PasswordInput.vue","webpack://fittrackee_client/./src/components/Common/StaticMap.vue","webpack://fittrackee_client/./node_modules/vue-loader/dist/templateLoader.js","webpack://fittrackee_client/./src/utils/duration.ts","webpack://fittrackee_client/./src/utils/tooltip.ts","webpack://fittrackee_client/./src/components/Common/StatsChart/Chart.vue","webpack://fittrackee_client/./src/components/Common/StatsChart/index.vue","webpack://fittrackee_client/./src/components/User/ProfileDisplay/UserHeader.vue","webpack://fittrackee_client/./src/components/User/ProfileDisplay/UserInfos.vue","webpack://fittrackee_client/./src/components/User/UserAuthForm.vue","webpack://fittrackee_client/./src/components/User/UserPicture.vue","webpack://fittrackee_client/./src/components/Workouts/NoWorkouts.vue","webpack://fittrackee_client/./src/components/Workouts/NoWorkouts.vue?e10e","webpack://fittrackee_client/./src/locales/ sync [A-Za-z0-9-_,\\s]+\\.ts$/","webpack://fittrackee_client/webpack/bootstrap","webpack://fittrackee_client/webpack/runtime/chunk loaded","webpack://fittrackee_client/webpack/runtime/compat get default export","webpack://fittrackee_client/webpack/runtime/create fake namespace object","webpack://fittrackee_client/webpack/runtime/define property getters","webpack://fittrackee_client/webpack/runtime/ensure chunk","webpack://fittrackee_client/webpack/runtime/get javascript chunk filename","webpack://fittrackee_client/webpack/runtime/get mini-css chunk filename","webpack://fittrackee_client/webpack/runtime/global","webpack://fittrackee_client/webpack/runtime/hasOwnProperty shorthand","webpack://fittrackee_client/webpack/runtime/load script","webpack://fittrackee_client/webpack/runtime/make namespace object","webpack://fittrackee_client/webpack/runtime/publicPath","webpack://fittrackee_client/webpack/runtime/css loading","webpack://fittrackee_client/webpack/runtime/jsonp chunk loading","webpack://fittrackee_client/webpack/startup"],"sourcesContent":["import axios from 'axios'\n\nimport store from '@/store'\nimport { AUTH_USER_STORE } from '@/store/constants'\nimport { getApiUrl } from '@/utils'\n\nconst authApi = axios.create({\n baseURL: getApiUrl(),\n})\n\nauthApi.interceptors.request.use(\n (config) => {\n const authToken = store.getters[AUTH_USER_STORE.GETTERS.AUTH_TOKEN]\n if (authToken) {\n const auth = `Bearer ${authToken}`\n if (config.headers && config.headers.Authorization !== auth) {\n config.headers.Authorization = `Bearer ${authToken}`\n }\n }\n return config\n },\n (error) => Promise.reject(error)\n)\n\nexport default authApi\n","import { createI18n, LocaleMessages, VueMessageType } from 'vue-i18n'\n\n/**\n * Load locale messages\n *\n * The loaded `JSON` locale messages is pre-compiled by `@intlify/vue-i18n-loader`, which is integrated into `vue-cli-plugin-i18n`.\n * See: https://github.com/intlify/vue-i18n-loader#rocket-i18n-resource-pre-compilation\n */\nfunction loadLocaleMessages(): LocaleMessages {\n const locales = require.context('./locales', true, /[A-Za-z0-9-_,\\s]+\\.ts$/i)\n const messages: LocaleMessages = {}\n locales.keys().forEach((key) => {\n const matched = key.match(/([A-Za-z0-9-_]+)\\./i)\n if (matched && matched.length > 1) {\n const locale = matched[1]\n messages[locale] = locales(key).default\n }\n })\n return messages\n}\n\nexport default createI18n({\n legacy: false,\n locale: 'en',\n fallbackLocale: 'en',\n globalInjection: true,\n messages: loadLocaleMessages(),\n})\n","export default {\n \"CONTACT_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Contact the administrator\"])},\n \"FITTRACKEE_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"FitTrackee is a self-hosted outdoor activity tracker.\"])},\n \"FITTRACKEE_LICENSE\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"under \", _interpolate(_list(0)), \" license \"])},\n \"SOURCE_CODE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Source code\"])}\n}","export default {\n \"ACTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Action\"])},\n \"ACTIVATE_USER_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Activate account\"])},\n \"ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Active\"])},\n \"ADMIN_RIGHTS_DELETE_USER_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Add/remove admin rights, delete user account.\"])},\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Admin\"])},\n \"ADMINISTRATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Administration\"])},\n \"APPLICATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Application\"])},\n \"APP_CONFIG\": {\n \"ADMIN_CONTACT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Administrator email for contact\"])},\n \"MAX_USERS_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. number of active users\"])},\n \"MAX_USERS_HELP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"If 0, no limitation on registration.\"])},\n \"MAX_FILES_IN_ZIP_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. files of zip archive\"])},\n \"NO_CONTACT_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"no contact email\"])},\n \"SINGLE_UPLOAD_MAX_SIZE_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. size of uploaded files (in Mb)\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Application configuration\"])},\n \"ZIP_UPLOAD_MAX_SIZE_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. size of zip archive (in Mb)\"])}\n },\n \"BACK_TO_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Back to admin\"])},\n \"CONFIRM_USER_ACCOUNT_DELETION\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Are you sure you want to delete \", _interpolate(_list(0)), \" account? All data will be deleted, this cannot be undone.\"])},\n \"CONFIRM_USER_PASSWORD_RESET\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Are you sure you want to reset \", _interpolate(_list(0)), \" password?\"])},\n \"CURRENT_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Current email\"])},\n \"DELETE_USER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Delete user\"])},\n \"EMAIL_SENDING_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Email sending is disabled.\"])},\n \"ENABLE_DISABLE_SPORTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enable/disable sports.\"])},\n \"NEW_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"New email\"])},\n \"PASSWORD_RESET_SUCCESSFUL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"The password has been reset.\"])},\n \"REGISTRATION_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registration is currently disabled.\"])},\n \"REGISTRATION_ENABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registration is currently enabled.\"])},\n \"RESET_USER_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reset password\"])},\n \"SPORTS\": {\n \"TABLE\": {\n \"ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Active\"])},\n \"HAS_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"workouts exist\"])},\n \"IMAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Image\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Label\"])}\n },\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sports administration\"])}\n },\n \"UPDATE_APPLICATION_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Update application configuration (maximum number of registered users, maximum files size).\"])},\n \"UPDATE_USER_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Update email\"])},\n \"USER\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"user\"]), _normalize([\"users\"])])},\n \"USER_EMAIL_UPDATE_SUCCESSFUL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"The email address has been updated.\"])},\n \"USERS\": {\n \"TABLE\": {\n \"ADD_ADMIN_RIGHTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Add admin rights\"])},\n \"REMOVE_ADMIN_RIGHTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Remove admin rights\"])}\n },\n \"SELECTS\": {\n \"ORDER_BY\": {\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"admin status\"])},\n \"CREATED_AT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"registration date\"])},\n \"IS_ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"account status\"])},\n \"USERNAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"username\"])},\n \"WORKOUTS_COUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"workout count\"])}\n }\n }\n }\n}","export default {\n \"ERROR\": {\n \"UNKNOWN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error. Please try again or contact the administrator.\"])},\n \"email: valid email must be provided\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Email: valid email must be provided.\"])},\n \"error on getting configuration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error on getting configuration.\"])},\n \"error when updating configuration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error when updating configuration\"])},\n \"error, please try again or contact the administrator\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error, please try again or contact the administrator.\"])},\n \"error, registration is disabled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error, registration is disabled.\"])},\n \"file extension not allowed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"File extension not allowed.\"])},\n \"file size is greater than the allowed size\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"File size is greater than the allowed size.\"])},\n \"invalid credentials\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Invalid credentials.\"])},\n \"invalid payload\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Provided data are invalid.\"])},\n \"invalid token, please log in again\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Invalid token, please log in again.\"])},\n \"invalid token, please request a new token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Invalid token, please log in again.\"])},\n \"Network Error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Network Error.\"])},\n \"new email must be different than curent email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"The new email must be different than curent email\"])},\n \"no file part\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No file provided.\"])},\n \"no selected file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No selected file.\"])},\n \"password: password and password confirmation do not match\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Password: password and password confirmation don't match.\"])},\n \"provide a valid auth token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Provide a valid auth token.\"])},\n \"sorry, that username is already taken\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sorry, that username is already taken.\"])},\n \"sport does not exist\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sport does not exist.\"])},\n \"signature expired, please log in again\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Signature expired. Please log in again.\"])},\n \"successfully registered\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Successfully registered.\"])},\n \"user does not exist\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"User does not exist.\"])},\n \"valid email must be provided for admin contact\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"A valid email must be provided for administrator contact\"])},\n \"you can not delete your account, no other user has admin rights\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"You can not delete your account, no other user has admin rights.\"])},\n \"you do not have permissions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"You do not have permissions.\"])}\n },\n \"PAGINATION\": {\n \"PREVIOUS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"previous\"])},\n \"NEXT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"next\"])}\n }\n}","export default {\n \"ACCOUNT-CONFIRMATION-RESEND\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Resend confirmation email\"])},\n \"BACK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Back\"])},\n \"CANCEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Cancel\"])},\n \"CLEAR_FILTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Clear filters\"])},\n \"DELETE_MY_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Delete my account\"])},\n \"DISABLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Disable\"])},\n \"EDIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Edit\"])},\n \"ENABLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enable\"])},\n \"FILTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Filter\"])},\n \"LOGIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Log in\"])},\n \"NO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No\"])},\n \"REGISTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Register\"])},\n \"RESET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reset\"])},\n \"SUBMIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Submit\"])},\n \"YES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Yes\"])}\n}","export default {\n \"ABOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"about\"])},\n \"CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Confirmation\"])},\n \"CONTACT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"contact\"])},\n \"DAY\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"day\"]), _normalize([\"days\"])])},\n \"DOCUMENTATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"documentation\"])},\n \"HOME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Home\"])},\n \"HERE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"here\"])},\n \"SELECTS\": {\n \"ORDER_BY\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"order by\"])}\n },\n \"ORDER\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sort\"])},\n \"ASC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ascending\"])},\n \"DESC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"descending\"])}\n },\n \"PER_PAGE\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"par page\"])}\n }\n },\n \"TOTAL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Total\"])}\n}","export default {\n \"DASHBOARD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dashboard\"])},\n \"THIS_MONTH\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"This month\"])}\n}","export default {\n \"UNKNOWN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error. Please try again or contact the administrator.\"])},\n \"APP_ERROR\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"The application seems to have encountered some issues.
Please try again later or contact the administrator.\"])},\n \"NOT_FOUND\": {\n \"PAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Page not found\"])},\n \"WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Workout not found\"])}\n },\n \"SOMETHING_WRONG\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Something went wrong\"])}\n}","export default {\n \"Cycling (Sport)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Cycling (Sport)\"])}\n },\n \"Cycling (Transport)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Cycling (Transport)\"])}\n },\n \"Hiking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hiking\"])}\n },\n \"Mountain Biking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mountain Biking\"])}\n },\n \"Mountain Biking (Electric)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mountain Biking (Electric)\"])}\n },\n \"Rowing\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Rowing\"])}\n },\n \"Running\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Running\"])}\n },\n \"Skiing (Alpine)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Skiing (Alpine)\"])}\n },\n \"Skiing (Cross Country)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Skiing (Cross Country)\"])}\n },\n \"Snowshoes\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Snowshoes\"])}\n },\n \"Trail\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Trail\"])}\n },\n \"Walking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Walking\"])}\n }\n}","export default {\n \"STATISTICS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Statistics\"])},\n \"TIME_FRAMES\": {\n \"week\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"week\"])},\n \"month\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"month\"])},\n \"year\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"year\"])}\n }\n}","export default {\n \"ACCOUNT_CONFIRMATION_NOT_RECEIVED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Didn't received instructions?\"])},\n \"ACCOUNT_CONFIRMATION_SENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Check your email. A new confirmation email has been sent to the address provided.\"])},\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Admin\"])},\n \"ALREADY_HAVE_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Already have an account?\"])},\n \"CONFIRM_ACCOUNT_DELETION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Are you sure you want to delete your account? All data will be deleted, this cannot be undone\"])},\n \"CURRENT_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Current password\"])},\n \"EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Email\"])},\n \"EMAIL_INFO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enter a valid email address.\"])},\n \"ENTER_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enter a password\"])},\n \"FILTER_ON_USERNAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Filter on username\"])},\n \"HIDE_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"hide password\"])},\n \"INVALID_TOKEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Invalid token, please request a new password reset.\"])},\n \"LANGUAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Language\"])},\n \"LOG_IN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"log in\"])},\n \"LOGIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Login\"])},\n \"LOGOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Logout\"])},\n \"NEW_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"New password\"])},\n \"NO_USERS_FOUND\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No users found.\"])},\n \"PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Password\"])},\n \"PASSWORD_INFO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"At least 8 characters required.\"])},\n \"PASSWORD_FORGOTTEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Forgot password?\"])},\n \"PASSWORD_RESET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Password reset\"])},\n \"PASSWORD_SENT_EMAIL_TEXT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Check your email. If your address is in our database, you'll received an email with a link to reset your password.\"])},\n \"PASSWORD_STRENGTH\": {\n \"WEAK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"weak\"])},\n \"AVERAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"average\"])},\n \"GOOD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"good\"])},\n \"STRONG\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"strong\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"password strength\"])},\n \"SUGGESTIONS\": {\n \"l33t\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Avoid predictable letter substitutions like \", \"@\", \" for a.\"])},\n \"reverseWords\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Avoid reversed spellings of common words.\"])},\n \"allUppercase\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Capitalize some, but not all letters.\"])},\n \"capitalization\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Capitalize more than the first letter.\"])},\n \"dates\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Avoid dates and years that are associated with you.\"])},\n \"recentYears\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Avoid recent years.\"])},\n \"associatedYears\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Avoid years that are associated with you.\"])},\n \"sequences\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Avoid common character sequences.\"])},\n \"repeated\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Avoid repeated words and characters.\"])},\n \"longerKeyboardPattern\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Use longer keyboard patterns and change typing direction multiple times.\"])},\n \"anotherWord\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Add more words that are less common.\"])},\n \"useWords\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Use multiple words, but avoid common phrases.\"])},\n \"noNeed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"You can create strong passwords without using symbols, numbers, or uppercase letters.\"])},\n \"pwned\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"If you use this password elsewhere, you should change it.\"])}\n }\n },\n \"PASSWORD_UPDATED\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Your password have been updated. Click \", _interpolate(_list(0)), \" to log in.\"])},\n \"PROFILE\": {\n \"ACCOUNT_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Account edition\"])},\n \"BACK_TO_PROFILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Back to profile\"])},\n \"BIO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bio\"])},\n \"BIRTH_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Birth date\"])},\n \"EDIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Edit profile\"])},\n \"EDIT_PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Edit preferences\"])},\n \"EDIT_SPORTS_PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Edit sports preferences\"])},\n \"ERRORED_EMAIL_UPDATE\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Please \", _interpolate(_list(0)), \" to change your email address again or contact the administrator\"])},\n \"FIRST_NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"First name\"])},\n \"FIRST_DAY_OF_WEEK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"First day of week\"])},\n \"LANGUAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Language\"])},\n \"LAST_NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Last name\"])},\n \"LOCATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Location\"])},\n \"MONDAY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Monday\"])},\n \"PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Picture\"])},\n \"PICTURE_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Picture edition\"])},\n \"PICTURE_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Update picture\"])},\n \"PICTURE_REMOVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Remove picture\"])},\n \"PREFERENCES_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Preferences edition\"])},\n \"PROFILE_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Profile edition\"])},\n \"REGISTRATION_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registration date\"])},\n \"SPORTS_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sports preferences edition\"])},\n \"SUNDAY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sunday\"])},\n \"TABS\": {\n \"ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"account\"])},\n \"PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"picture\"])},\n \"PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"preferences\"])},\n \"PROFILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"profile\"])},\n \"SPORTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sports\"])}\n },\n \"SPORT\": {\n \"ACTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"action\"])},\n \"COLOR\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"color\"])},\n \"DISABLED_BY_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"disabled by admin\"])},\n \"IS_ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"active\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"label\"])},\n \"STOPPED_SPEED_THRESHOLD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"stopped speed threshold\"])}\n },\n \"SUCCESSFUL_EMAIL_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Your account has been updated successfully. Please check your email to confirm your new email address.\"])},\n \"SUCCESSFUL_REGISTRATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Your account has been created successfully.\"])},\n \"SUCCESSFUL_REGISTRATION_WITH_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"A link to activate your account has been emailed to the address provided.\"])},\n \"SUCCESSFUL_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Your account has been updated successfully.\"])},\n \"UNITS\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Units for distance\"])},\n \"IMPERIAL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Imperial system (ft, mi)\"])},\n \"METRIC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Metric system (m, km)\"])}\n },\n \"TIMEZONE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Timezone\"])}\n },\n \"REGISTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Register\"])},\n \"RESENT_ACCOUNT_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Resend account confirmation email\"])},\n \"REGISTER_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sorry, registration is disabled.\"])},\n \"RESET_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reset your password\"])},\n \"SHOW_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"show password\"])},\n \"THIS_USER_ACCOUNT_IS_INACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"This user account is inactive.\"])},\n \"USER_PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"user picture\"])},\n \"USERNAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Username\"])},\n \"USERNAME_INFO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"3 to 30 characters required, only alphanumeric characters and the underscore character \\\"_\\\" allowed.\"])}\n}","export default {\n \"ADD_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Add a workout\"])},\n \"ANALYSIS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"analysis\"])},\n \"ASCENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ascent\"])},\n \"AVE_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ave. speed\"])},\n \"AVERAGE_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"average speed\"])},\n \"BACK_TO_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"back to workout\"])},\n \"DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"date\"])},\n \"DESCENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"descent\"])},\n \"DISPLAY_FILTERS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"display filters\"])},\n \"DISTANCE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"distance\"])},\n \"DURATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"duration\"])},\n \"EDIT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Edit the workout\"])},\n \"ELEVATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"elevation\"])},\n \"END\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"end\"])},\n \"FROM\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"from\"])},\n \"GPX_FILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\".gpx file\"])},\n \"HIDE_FILTERS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"hide filters\"])},\n \"LATEST_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Latest workouts\"])},\n \"LOAD_MORE_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Load more workouts\"])},\n \"MAX_ALTITUDE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"max. altitude\"])},\n \"MAX_FILES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"max files\"])},\n \"MAX_SIZE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"max size\"])},\n \"MAX_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"max. speed\"])},\n \"MIN_ALTITUDE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"min. altitude\"])},\n \"NEXT_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No next segment\"])},\n \"NEXT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Next workout\"])},\n \"NO_DATA_CLEANING\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"data from gpx, without any cleaning\"])},\n \"NO_FILE_PROVIDED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No file provided\"])},\n \"NO_FOLDER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"no folder inside\"])},\n \"NO_MAP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No map\"])},\n \"NO_NEXT_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No next segment\"])},\n \"NO_NEXT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No next workout\"])},\n \"NO_NOTES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No notes\"])},\n \"NO_PREVIOUS_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No previous segment\"])},\n \"NO_PREVIOUS_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No previous workout\"])},\n \"NO_RECORDS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No records.\"])},\n \"NO_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No workouts.\"])},\n \"NOTES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"notes\"])},\n \"PAUSES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"pauses\"])},\n \"PREVIOUS_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Previous segment\"])},\n \"PREVIOUS_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Previous workout\"])},\n \"RECORD\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"record\"]), _normalize([\"records\"])])},\n \"RECORD_AS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ave. speed\"])},\n \"RECORD_FD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Farthest distance\"])},\n \"RECORD_LD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Longest duration\"])},\n \"RECORD_MS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. speed\"])},\n \"REMAINING_CHARS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"remaining characters\"])},\n \"SEGMENT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"segment\"]), _normalize([\"segments\"])])},\n \"SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"speed\"])},\n \"SPORT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"sport\"]), _normalize([\"sports\"])])},\n \"START\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"start\"])},\n \"START_AND_FINISH\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Start and finish\"])},\n \"START_ELEVATION_AT_ZERO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"start elevation axis at zero\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"title\"])},\n \"TO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"to\"])},\n \"TOTAL_DURATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"total duration\"])},\n \"UPLOAD_FIRST_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Upload one!\"])},\n \"WEATHER\": {\n \"HUMIDITY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"humidity\"])},\n \"TEMPERATURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"temperature\"])},\n \"WIND\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"wind\"])},\n \"WIND_DIRECTIONS\": {\n \"N\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"N\"])},\n \"NNE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NNE\"])},\n \"NE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NE\"])},\n \"ENE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ENE\"])},\n \"E\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"E\"])},\n \"ESE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ESE\"])},\n \"SE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SE\"])},\n \"SSE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SSE\"])},\n \"S\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"S\"])},\n \"SSW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SSW\"])},\n \"SW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SW\"])},\n \"WSW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"WSW\"])},\n \"W\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"W\"])},\n \"WNW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"WNW\"])},\n \"NW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NW\"])},\n \"NNW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NNW\"])}\n },\n \"DARK_SKY\": {\n \"clear-day\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"clear day\"])},\n \"clear-night\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"clear night\"])},\n \"cloudy\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"cloudy\"])},\n \"fog\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"fog\"])},\n \"partly-cloudy-day\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"partly cloudy day\"])},\n \"partly-cloudy-night\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"partly cloudy night\"])},\n \"rain\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"rain\"])},\n \"sleet\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sleet\"])},\n \"snow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"snow\"])},\n \"wind\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"wind\"])}\n }\n },\n \"WITH_GPX\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"with .gpx file\"])},\n \"WITHOUT_GPX\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"without .gpx file\"])},\n \"WORKOUT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"workout\"]), _normalize([\"workouts\"])])},\n \"WORKOUT_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"workout date\"])},\n \"WORKOUT_DELETION_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Are you sure you want to delete this workout?\"])},\n \"ZIP_ARCHIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\".zip file\"])},\n \"ZIP_ARCHIVE_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"or .zip file containing .gpx files\"])}\n}","import AboutTranslations from './about.json'\nimport AdministrationTranslations from './administration.json'\nimport ApiTranslations from './api.json'\nimport ButtonsTranslations from './buttons.json'\nimport CommonTranslations from './common.json'\nimport DashboardTranslations from './dashboard.json'\nimport ErrorTranslations from './error.json'\nimport SportsTranslations from './sports.json'\nimport StatisticsTranslations from './statistics.json'\nimport UserTranslations from './user.json'\nimport WorkoutsTranslations from './workouts.json'\n\nexport default {\n about: AboutTranslations,\n admin: AdministrationTranslations,\n api: ApiTranslations,\n buttons: ButtonsTranslations,\n common: CommonTranslations,\n dashboard: DashboardTranslations,\n error: ErrorTranslations,\n sports: SportsTranslations,\n statistics: StatisticsTranslations,\n user: UserTranslations,\n workouts: WorkoutsTranslations,\n}\n","export default {\n \"CONTACT_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Contacter l'administrateur\"])},\n \"FITTRACKEE_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"FitTrackee est un tracker d'activités sportives (en extérieur).\"])},\n \"FITTRACKEE_LICENSE\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"sous license \", _interpolate(_list(0)), \" (en)\"])},\n \"SOURCE_CODE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Code source (en)\"])}\n}","export default {\n \"ACTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Action\"])},\n \"ACTIVATE_USER_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Activer le compte\"])},\n \"ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Actif\"])},\n \"ADMIN_RIGHTS_DELETE_USER_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ajouter/retirer des droits d'administration, supprimer des comptes utilisateurs.\"])},\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Admin\"])},\n \"ADMINISTRATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Administration\"])},\n \"APPLICATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Application\"])},\n \"APP_CONFIG\": {\n \"ADMIN_CONTACT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Email de l'administrateur pour contact \"])},\n \"MAX_USERS_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nombre maximum d'utilisateurs actifs \"])},\n \"MAX_USERS_HELP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Si égal à 0, pas limite d'inscription\"])},\n \"MAX_FILES_IN_ZIP_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Taille max. des archives zip (en Mo) \"])},\n \"NO_CONTACT_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"non renseigné\"])},\n \"SINGLE_UPLOAD_MAX_SIZE_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Taille max. des fichiers (en Mo) \"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Configuration de l'application\"])},\n \"ZIP_UPLOAD_MAX_SIZE_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nombre max. de fichiers dans une archive zip \"])}\n },\n \"BACK_TO_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Revenir à l'admin\"])},\n \"CONFIRM_USER_ACCOUNT_DELETION\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Êtes-vous sûr de vouloir supprimer le compte de l'utilisateur \", _interpolate(_list(0)), \" ? Toutes les données seront définitivement.\"])},\n \"CONFIRM_USER_PASSWORD_RESET\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Êtes-vous sûr de vouloir réinitialiser le mot de passe de l'utilisateur \", _interpolate(_list(0)), \" ?\"])},\n \"CURRENT_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Adresse email actuelle\"])},\n \"DELETE_USER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Supprimer l'utilisateur\"])},\n \"EMAIL_SENDING_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"L'envoi d'emails est désactivé.\"])},\n \"ENABLE_DISABLE_SPORTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Activer/désactiver des sports.\"])},\n \"NEW_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nouvelle adresse email\"])},\n \"PASSWORD_RESET_SUCCESSFUL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Le mot de passe a été réinitialisé.\"])},\n \"REGISTRATION_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Les inscriptions sont actuellement désactivées.\"])},\n \"REGISTRATION_ENABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Les inscriptions sont actuellement activées.\"])},\n \"RESET_USER_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Réinit. le mot de passe\"])},\n \"SPORTS\": {\n \"TABLE\": {\n \"ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Actif\"])},\n \"HAS_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"des séances existent\"])},\n \"IMAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Image\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Label\"])}\n },\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Administration - Sports\"])}\n },\n \"UPDATE_APPLICATION_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Configurer l'application (nombre maximum d'utilisateurs inscrits, taille maximale des fichers).\"])},\n \"UPDATE_USER_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Changer l'email\"])},\n \"USER\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"utilisateur\"]), _normalize([\"utilisateurs\"])])},\n \"USER_EMAIL_UPDATE_SUCCESSFUL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"L'adresse email a été mise à jour.\"])},\n \"USERS\": {\n \"TABLE\": {\n \"ADD_ADMIN_RIGHTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ajouter les droits d'admin\"])},\n \"REMOVE_ADMIN_RIGHTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Retirer les droits d'admin\"])}\n },\n \"SELECTS\": {\n \"ORDER_BY\": {\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"status administrateur\"])},\n \"CREATED_AT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"date d'inscription\"])},\n \"IS_ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"statut du compte\"])},\n \"USERNAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nom d'utilisateur\"])},\n \"WORKOUTS_COUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nombre de séances\"])}\n }\n }\n }\n}","export default {\n \"ERROR\": {\n \"UNKNOWN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur. Veuillez réessayer ou contacter l'administrateur.\"])},\n \"email: valid email must be provided\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Email : une adresse email valide doit être fournie.\"])},\n \"error on getting configuration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur lors de la récupération de la configuration.\"])},\n \"error when updating configuration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur lors de la mise à jour de la configuration\"])},\n \"error, please try again or contact the administrator\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur, veuillez réessayer ou contacter l'administrateur.\"])},\n \"error, registration is disabled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur, les inscriptions sont désactivées.\"])},\n \"file extension not allowed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Extension de fichier non autorisée.\"])},\n \"file size is greater than the allowed size\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"La taille du fichier est supérieure à la limite autorisée.\"])},\n \"invalid credentials\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Identifiants invalides.\"])},\n \"invalid payload\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Données fournies incorrectes.\"])},\n \"invalid token, please log in again\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Jeton de connexion invalide, merci de vous reconnecter.\"])},\n \"invalid token, please request a new token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Jeton de connexion, merci de vous reconnecter.\"])},\n \"no file part\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de fichier fourni.\"])},\n \"no selected file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de fichier sélectionné.\"])},\n \"Network Error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur Réseau.\"])},\n \"new email must be different than curent email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"La nouvelle addresse email doit être differente de l'adresse actuelle\"])},\n \"password: password and password confirmation do not match\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mot de passe : les mots de passe saisis sont différents.\"])},\n \"provide a valid auth token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Merci de fournir un jeton de connexion valide.\"])},\n \"sport does not exist\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ce sport n'existe pas.\"])},\n \"signature expired, please log in again\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Signature expirée. Merci de vous reconnecter.\"])},\n \"sorry, that username is already taken\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Désolé, ce nom d'utilisateur est déjà utilisé.\"])},\n \"successfully registered\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Inscription validée.\"])},\n \"user does not exist\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"L'utilisateur n'existe pas\"])},\n \"valid email must be provided for admin contact\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Une adresse email doit être fournie pour le contact de l'administrateur.\"])},\n \"you can not delete your account, no other user has admin rights\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vous ne pouvez pas supprimer votre compte, aucun autre utilisateur n'a des droits d'administration.\"])},\n \"you do not have permissions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vous n'avez pas les permissions nécessaires.\"])}\n },\n \"PAGINATION\": {\n \"PREVIOUS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"précédent\"])},\n \"NEXT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"suivant\"])}\n }\n}","export default {\n \"ACCOUNT-CONFIRMATION-RESEND\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Envoyer à nouveau l'email de confirmation\"])},\n \"BACK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Précédent\"])},\n \"CANCEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Annuler\"])},\n \"CLEAR_FILTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Réinitialiser\"])},\n \"DELETE_MY_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Supprimer mon compte\"])},\n \"DISABLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Désactiver\"])},\n \"EDIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Modifier\"])},\n \"ENABLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Activer\"])},\n \"FILTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Filtrer\"])},\n \"LOGIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Se connecter\"])},\n \"NO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Non\"])},\n \"REGISTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"S'inscrire\"])},\n \"RESET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Réinit.\"])},\n \"SUBMIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Valider\"])},\n \"YES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Oui\"])}\n}","export default {\n \"ABOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"à propos\"])},\n \"CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Confirmation\"])},\n \"CONTACT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"contact\"])},\n \"DAY\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"jour\"]), _normalize([\"jours\"])])},\n \"DOCUMENTATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"documentation (en)\"])},\n \"HOME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Accueil\"])},\n \"HERE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ici\"])},\n \"SELECTS\": {\n \"ORDER_BY\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"trier par \"])}\n },\n \"ORDER\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"tri\"])},\n \"ASC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ascendant\"])},\n \"DESC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"descendant\"])}\n },\n \"PER_PAGE\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"par page\"])}\n }\n },\n \"TOTAL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Total\"])}\n}","export default {\n \"DASHBOARD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Tableau de Bord\"])},\n \"THIS_MONTH\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ce mois\"])}\n}","export default {\n \"UNKNOWN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur. Veuillez réessayer ou contacter l'administrateur.\"])},\n \"APP_ERROR\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"L'application semble rencontrer quelques problèmes.
Veuillez réessayer plus tard ou contacter l'administrateur.\"])},\n \"NOT_FOUND\": {\n \"PAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Page introuvable\"])},\n \"WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Séance introuvable\"])}\n },\n \"SOMETHING_WRONG\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Une erreur s'est produite\"])}\n}","export default {\n \"Cycling (Sport)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vélo (Sport)\"])}\n },\n \"Cycling (Transport)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vélo (Transport)\"])}\n },\n \"Hiking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Randonnée\"])}\n },\n \"Mountain Biking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"VTT\"])}\n },\n \"Mountain Biking (Electric)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"VTT (Electrique)\"])}\n },\n \"Rowing\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aviron\"])}\n },\n \"Running\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Course\"])}\n },\n \"Skiing (Alpine)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ski (Alpin)\"])}\n },\n \"Skiing (Cross Country)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ski (Randonnée)\"])}\n },\n \"Snowshoes\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Raquettes\"])}\n },\n \"Trail\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Trail\"])}\n },\n \"Walking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Marche\"])}\n }\n}","export default {\n \"STATISTICS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Statistiques\"])},\n \"TIME_FRAMES\": {\n \"week\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"semaine\"])},\n \"month\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"mois\"])},\n \"year\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"année\"])}\n }\n}","export default {\n \"ACCOUNT_CONFIRMATION_NOT_RECEIVED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vous n'avez pas reçu les instructions ?\"])},\n \"ACCOUNT_CONFIRMATION_SENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vérifiez votre boite mail. Un nouvel email de confirmation a été envoyé à l'adresse email fournie.\"])},\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Admin\"])},\n \"ALREADY_HAVE_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vous avez déjà un compte ?\"])},\n \"CONFIRM_ACCOUNT_DELETION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Êtes-vous sûr de vouloir supprimer votre compte ? Toutes les données seront définitivement effacés.\"])},\n \"CURRENT_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mot de passe actuel\"])},\n \"EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Email\"])},\n \"EMAIL_INFO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Saisir une adresse email valide.\"])},\n \"ENTER_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Saisir un mot de passe\"])},\n \"FILTER_ON_USERNAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Filtrer sur le nom d'utilisateur\"])},\n \"HIDE_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"masquer le mot de passe\"])},\n \"INVALID_TOKEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Jeton invalide, veuillez demander une nouvelle réinitialisation de mot de passe.\"])},\n \"LANGUAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Langue\"])},\n \"LOG_IN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"connecter\"])},\n \"LOGIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Se connecter\"])},\n \"LOGOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Se déconnecter\"])},\n \"NEW_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nouveau mot de passe\"])},\n \"NO_USERS_FOUND\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aucun utilisateur trouvé.\"])},\n \"PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mot de passe\"])},\n \"PASSWORD_INFO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"8 caractères minimum.\"])},\n \"PASSWORD_FORGOTTEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mot de passe oublié ?\"])},\n \"PASSWORD_RESET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Réinitialisation du mot de passe\"])},\n \"PASSWORD_SENT_EMAIL_TEXT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vérifiez votre boite mail. Si vote adresse est dans notre base de données, vous recevrez un email avec un lien pour réinitialiser votre mot de passe.\"])},\n \"PASSWORD_STRENGTH\": {\n \"WEAK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"faible\"])},\n \"AVERAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"moyenne\"])},\n \"GOOD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"bonne\"])},\n \"STRONG\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"forte\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"robustesse du mot de passe \"])},\n \"SUGGESTIONS\": {\n \"l33t\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Évitez les substitutions de lettres prévisibles comme \", \"@\", \" pour a.\"])},\n \"reverseWords\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Évitez les orthographes inversées des mots courants\"])},\n \"allUppercase\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mettez quelques lettres en majuscules, mais pas toutes.\"])},\n \"capitalization\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Capitalisez mais pas seulement la première lettre.\"])},\n \"dates\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Évitez les dates et les années qui vous sont associées. (ex: date ou année de naissance)\"])},\n \"recentYears\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Évitez les dernières années.\"])},\n \"associatedYears\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Évitez les années qui vous sont associées. (ex: date de naissance)\"])},\n \"sequences\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Évitez les séquences de caractères courantes.\"])},\n \"repeated\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Évitez les mots et les caractères répétés.\"])},\n \"longerKeyboardPattern\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Utilisez des motifs de clavier plus longs et changez de sens de frappe plusieurs fois.\"])},\n \"anotherWord\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ajoutez des mots moins courants.\"])},\n \"useWords\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Utilisez plusieurs mots, mais évitez les phrases courantes.\"])},\n \"noNeed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vous pouvez créer des mots de passe forts sans utiliser de symboles, de chiffres ou de lettres majuscules.\"])},\n \"pwned\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Si vous utilisez ce mot de passe ailleurs, vous devriez le modifier.\"])}\n }\n },\n \"PASSWORD_UPDATED\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Votre mot de passe a été mis à jour. Cliquez \", _interpolate(_list(0)), \" pour vous connecter.\"])},\n \"PROFILE\": {\n \"ACCOUNT_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mise à jour du compte\"])},\n \"BACK_TO_PROFILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Revenir au profil\"])},\n \"BIO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bio\"])},\n \"BIRTH_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Date de naissance\"])},\n \"EDIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Modifier le profil\"])},\n \"EDIT_PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Modifier les préférences\"])},\n \"EDIT_SPORTS_PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Modifier les préférences des sports\"])},\n \"ERRORED_EMAIL_UPDATE\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Veuillez vous \", _interpolate(_list(0)), \" pour changer de nouveau votre adresse email ou contacter l'administrateur\"])},\n \"FIRST_DAY_OF_WEEK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Premier jour de la semaine\"])},\n \"FIRST_NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Prénom\"])},\n \"LANGUAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Langue\"])},\n \"LAST_NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nom\"])},\n \"LOCATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Lieu\"])},\n \"MONDAY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Lundi\"])},\n \"PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Image de profil\"])},\n \"PICTURE_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mise à jour de l'image de profil\"])},\n \"PICTURE_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mettre à jour l'image\"])},\n \"PICTURE_REMOVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Supprimer\"])},\n \"PREFERENCES_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mise à jour des préférences\"])},\n \"PROFILE_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mise à jour du profil\"])},\n \"REGISTRATION_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Date d'inscription\"])},\n \"SPORTS_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mise à jour des préférences des sports\"])},\n \"SUNDAY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dimanche\"])},\n \"TABS\": {\n \"ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"compte\"])},\n \"PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"image\"])},\n \"PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"préférences\"])},\n \"PROFILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"profil\"])},\n \"SPORTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sports\"])}\n },\n \"UNITS\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unités pour les distances \"])},\n \"IMPERIAL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Système impérial (ft, mi)\"])},\n \"METRIC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Système métrique (m, km)\"])}\n },\n \"SPORT\": {\n \"ACTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"action\"])},\n \"COLOR\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"couleur\"])},\n \"DISABLED_BY_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"désactivé par l'administrateur\"])},\n \"IS_ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"actif\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"label\"])},\n \"STOPPED_SPEED_THRESHOLD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"seuil de vitesse arrêtée\"])}\n },\n \"SUCCESSFUL_EMAIL_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Votre compte a été modifié avec succès. Veuillez vérifier votre boite email pour valider votre nouvelle adresse email.\"])},\n \"SUCCESSFUL_REGISTRATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Votre compte a été créé avec succès.\"])},\n \"SUCCESSFUL_REGISTRATION_WITH_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Un lien pour activer votre compte a été envoyé à l'adresse email fournie.\"])},\n \"SUCCESSFUL_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Votre compte a été modifié avec succès.\"])},\n \"TIMEZONE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fuseau horaire\"])}\n },\n \"REGISTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"S'inscrire\"])},\n \"REGISTER_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Désolé, les inscriptions sont désactivées.\"])},\n \"RESENT_ACCOUNT_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Envoyer à nouveau l'email de confirmation de compte\"])},\n \"RESET_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Réinitialiser votre mot de passe\"])},\n \"SHOW_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"afficher le mot de passe\"])},\n \"THIS_USER_ACCOUNT_IS_INACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Le compte de cet utilisateur est inactif.\"])},\n \"USER_PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"photo de l'utilisateur\"])},\n \"USERNAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nom d'utilisateur\"])},\n \"USERNAME_INFO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"3 à 30 caractères requis, seuls les caractères alphanumériques et le caractère \\\"_\\\" sont autorisés.\"])}\n}","export default {\n \"ADD_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ajouter une séance\"])},\n \"ANALYSIS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"analyse\"])},\n \"ASCENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"dénivelé positif\"])},\n \"AVERAGE_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"vitesse moyenne\"])},\n \"AVE_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"vitesse moy.\"])},\n \"BACK_TO_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"revenir à la séance\"])},\n \"DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"date\"])},\n \"DESCENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"dénivelé négatif\"])},\n \"DISPLAY_FILTERS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"afficher les filtres\"])},\n \"DISTANCE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"distance\"])},\n \"DURATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"durée\"])},\n \"EDIT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Modifier la séance\"])},\n \"ELEVATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"altitude\"])},\n \"END\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"fin\"])},\n \"FROM\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"à partir de\"])},\n \"GPX_FILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"fichier .gpx\"])},\n \"HIDE_FILTERS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"masquer les filtres\"])},\n \"LATEST_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Séances récentes\"])},\n \"LOAD_MORE_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Charger les séances suivantes\"])},\n \"MAX_ALTITUDE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"altitude max\"])},\n \"MAX_FILES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"fichiers max. \"])},\n \"MAX_SIZE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"taille max. \"])},\n \"MAX_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"vitesse max\"])},\n \"MIN_ALTITUDE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"altitude min\"])},\n \"NEXT_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Segment suivant\"])},\n \"NEXT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Séance suivante\"])},\n \"NO_DATA_CLEANING\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"données issues du fichier gpx, sans correction\"])},\n \"NO_FILE_PROVIDED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de fichier fourni\"])},\n \"NO_FOLDER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"pas de répertoire\"])},\n \"NO_MAP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de carte\"])},\n \"NO_NEXT_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de segment suivant\"])},\n \"NO_NEXT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de séance suivante\"])},\n \"NO_NOTES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de notes\"])},\n \"NO_PREVIOUS_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de segment précédent\"])},\n \"NO_PREVIOUS_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de séance précédente\"])},\n \"NO_RECORDS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de records.\"])},\n \"NO_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de séances.\"])},\n \"NOTES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"notes\"])},\n \"PAUSES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"pauses\"])},\n \"PREVIOUS_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Segment précédent\"])},\n \"PREVIOUS_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Séance précédente\"])},\n \"RECORD\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"record\"]), _normalize([\"records\"])])},\n \"RECORD_AS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vitesse moy.\"])},\n \"RECORD_FD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Distance la + longue\"])},\n \"RECORD_LD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Durée la + longue\"])},\n \"RECORD_MS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vitesse max.\"])},\n \"REMAINING_CHARS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nombre de caractères restants \"])},\n \"SEGMENT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"segment\"]), _normalize([\"segments\"])])},\n \"SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"vitesse\"])},\n \"SPORT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"sport\"]), _normalize([\"sports\"])])},\n \"START\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"début\"])},\n \"START_AND_FINISH\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Départ et arrivée\"])},\n \"START_ELEVATION_AT_ZERO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"démarrer l'axe de l'altitude à 0\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"titre\"])},\n \"TO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"jusqu'au\"])},\n \"TOTAL_DURATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"durée totale\"])},\n \"UPLOAD_FIRST_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ajoutez votre première séance !\"])},\n \"WEATHER\": {\n \"HUMIDITY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"humidité\"])},\n \"TEMPERATURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"température\"])},\n \"WIND\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"vent\"])},\n \"WIND_DIRECTIONS\": {\n \"N\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"N\"])},\n \"NNE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NNE\"])},\n \"NE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NE\"])},\n \"ENE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ENE\"])},\n \"E\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"E\"])},\n \"ESE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ESE\"])},\n \"SE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SE\"])},\n \"SSE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SSE\"])},\n \"S\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"S\"])},\n \"SSW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SSO\"])},\n \"SW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SO\"])},\n \"WSW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"OSO\"])},\n \"W\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"O\"])},\n \"WNW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ONO\"])},\n \"NW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NO\"])},\n \"NNW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NNO\"])}\n },\n \"DARK_SKY\": {\n \"clear-day\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ensoleillé\"])},\n \"clear-night\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nuit claire\"])},\n \"cloudy\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nuageux\"])},\n \"fog\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"brouillard\"])},\n \"partly-cloudy-day\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"partiellement nuageux\"])},\n \"partly-cloudy-night\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nuit partiellement nuageuse\"])},\n \"rain\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"pluie\"])},\n \"sleet\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"neige fondue\"])},\n \"snow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"neige\"])},\n \"wind\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"venteux\"])}\n }\n },\n \"WITH_GPX\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"avec un fichier .gpx\"])},\n \"WITHOUT_GPX\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sans fichier .gpx\"])},\n \"WORKOUT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"séance\"]), _normalize([\"séances\"])])},\n \"WORKOUT_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"date de la séance\"])},\n \"WORKOUT_DELETION_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Etes-vous sûr de vouloir supprimer cette séance ?\"])},\n \"ZIP_ARCHIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"archive .zip\"])},\n \"ZIP_ARCHIVE_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ou une archive .zip contenant des fichiers .gpx\"])}\n}","import AboutTranslations from './about.json'\nimport AdministrationTranslations from './administration.json'\nimport ApiTranslations from './api.json'\nimport ButtonsTranslations from './buttons.json'\nimport CommonTranslations from './common.json'\nimport DashboardTranslations from './dashboard.json'\nimport ErrorTranslations from './error.json'\nimport SportsTranslations from './sports.json'\nimport StatisticsTranslations from './statistics.json'\nimport UserTranslations from './user.json'\nimport WorkoutsTranslations from './workouts.json'\n\nexport default {\n about: AboutTranslations,\n admin: AdministrationTranslations,\n api: ApiTranslations,\n buttons: ButtonsTranslations,\n common: CommonTranslations,\n dashboard: DashboardTranslations,\n error: ErrorTranslations,\n sports: SportsTranslations,\n statistics: StatisticsTranslations,\n user: UserTranslations,\n workouts: WorkoutsTranslations,\n}\n","/* eslint-disable no-console */\n\nimport { register } from 'register-service-worker'\n\nif (process.env.NODE_ENV === 'production') {\n register(`${process.env.BASE_URL}service-worker.js`, {\n ready() {\n console.log(\n 'App is being served from cache by a service worker.\\n' +\n 'For more details, visit https://goo.gl/AFskqB'\n )\n },\n registered() {\n console.log('Service worker has been registered.')\n },\n cached() {\n console.log('Content has been cached for offline use.')\n },\n updatefound() {\n console.log('New content is downloading.')\n },\n updated() {\n console.log('New content is available; please refresh.')\n },\n offline() {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n )\n },\n error(error) {\n console.error('Error during service worker registration:', error)\n },\n })\n}\n","import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, unref as _unref, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-2c73279e\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"footer\" }\nconst _hoisted_2 = { class: \"footer-items\" }\nconst _hoisted_3 = { class: \"footer-item\" }\nconst _hoisted_4 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"strong\", null, \"FitTrackee\", -1))\nconst _hoisted_5 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"footer-item bullet\" }, \"•\", -1))\nconst _hoisted_6 = { class: \"footer-item\" }\nconst _hoisted_7 = {\n key: 0,\n class: \"footer-item bullet\"\n}\nconst _hoisted_8 = {\n key: 1,\n class: \"footer-item\"\n}\nconst _hoisted_9 = [\"href\"]\nconst _hoisted_10 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"footer-item bullet\" }, \"•\", -1))\nconst _hoisted_11 = { class: \"footer-item\" }\nconst _hoisted_12 = {\n href: \"https://samr1.github.io/FitTrackee/\",\n target: \"_blank\",\n rel: \"noopener noreferrer\"\n}\n\nimport { toRefs } from 'vue'\n\n interface Props {\n version: string\n adminContact?: string\n }\n \nexport default /*#__PURE__*/_defineComponent({\n name: 'Footer',\n props: {\n version: null,\n adminContact: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n version: string\n adminContact?: string\n }\n\n \n\n const { adminContact, version } = toRefs(props)\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_link = _resolveComponent(\"router-link\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _hoisted_4,\n _createTextVNode(\" v\" + _toDisplayString(_unref(version)), 1)\n ]),\n _hoisted_5,\n _createElementVNode(\"div\", _hoisted_6, [\n _createVNode(_component_router_link, { to: \"/about\" }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('common.ABOUT')), 1)\n ]),\n _: 1\n })\n ]),\n (_unref(adminContact))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_7, \"•\"))\n : _createCommentVNode(\"\", true),\n (_unref(adminContact))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_8, [\n _createElementVNode(\"a\", {\n href: `mailto:${_unref(adminContact)}`\n }, _toDisplayString(_ctx.$t('common.CONTACT')), 9, _hoisted_9)\n ]))\n : _createCommentVNode(\"\", true),\n _hoisted_10,\n _createElementVNode(\"div\", _hoisted_11, [\n _createElementVNode(\"a\", _hoisted_12, _toDisplayString(_ctx.$t('common.DOCUMENTATION')), 1)\n ])\n ])\n ]))\n}\n}\n\n})","import script from \"./Footer.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Footer.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./Footer.vue?vue&type=style&index=0&id=2c73279e&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-2c73279e\"]])\n\nexport default __exports__","import script from \"./NavBar.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./NavBar.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./NavBar.vue?vue&type=style&index=0&id=0d4f0b8f&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-0d4f0b8f\"]])\n\nexport default __exports__","import script from \"./NoConfig.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./NoConfig.vue?vue&type=script&lang=ts&setup=true\"\n\nimport \"./NoConfig.vue?vue&type=style&index=0&id=47759238&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-47759238\"]])\n\nexport default __exports__","import script from \"./App.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./App.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./App.vue?vue&type=style&index=0&id=c446fb44&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import script from \"./AlertMessage.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AlertMessage.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./AlertMessage.vue?vue&type=style&index=0&id=69d7e4ff&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-69d7e4ff\"]])\n\nexport default __exports__","import script from \"./CustomTextArea.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./CustomTextArea.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./CustomTextArea.vue?vue&type=style&index=0&id=3ec2aca2&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-3ec2aca2\"]])\n\nexport default __exports__","import script from \"./Distance.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Distance.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./Distance.vue?vue&type=style&index=0&id=f46ff1d6&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-f46ff1d6\"]])\n\nexport default __exports__","import script from \"./Dropdown.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Dropdown.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./Dropdown.vue?vue&type=style&index=0&id=ca61364c&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-ca61364c\"]])\n\nexport default __exports__","import script from \"./ErrorMessage.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./ErrorMessage.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./ErrorMessage.vue?vue&type=style&index=0&id=2659a79a&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-2659a79a\"]])\n\nexport default __exports__","\n\n\n","import { render } from \"./CyclingSport.vue?vue&type=template&id=be8023a2\"\nimport script from \"./CyclingSport.vue?vue&type=script&lang=js\"\nexport * from \"./CyclingSport.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./CyclingTransport.vue?vue&type=template&id=97af5148\"\nimport script from \"./CyclingTransport.vue?vue&type=script&lang=js\"\nexport * from \"./CyclingTransport.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./Hiking.vue?vue&type=template&id=40903dc4\"\nimport script from \"./Hiking.vue?vue&type=script&lang=js\"\nexport * from \"./Hiking.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./MountainBiking.vue?vue&type=template&id=5bdbc6e8\"\nimport script from \"./MountainBiking.vue?vue&type=script&lang=js\"\nexport * from \"./MountainBiking.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./MountainBikingElectric.vue?vue&type=template&id=21e72aec\"\nimport script from \"./MountainBikingElectric.vue?vue&type=script&lang=js\"\nexport * from \"./MountainBikingElectric.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./Rowing.vue?vue&type=template&id=31ae2dd5\"\nimport script from \"./Rowing.vue?vue&type=script&lang=js\"\nexport * from \"./Rowing.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./Running.vue?vue&type=template&id=4d47a4fe\"\nimport script from \"./Running.vue?vue&type=script&lang=js\"\nexport * from \"./Running.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./SkiingAlpine.vue?vue&type=template&id=3ebf3bca\"\nimport script from \"./SkiingAlpine.vue?vue&type=script&lang=js\"\nexport * from \"./SkiingAlpine.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./SkiingCrossCountry.vue?vue&type=template&id=1561bbe6\"\nimport script from \"./SkiingCrossCountry.vue?vue&type=script&lang=js\"\nexport * from \"./SkiingCrossCountry.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./Snowshoes.vue?vue&type=template&id=67df2761\"\nimport script from \"./Snowshoes.vue?vue&type=script&lang=js\"\nexport * from \"./Snowshoes.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./Trail.vue?vue&type=template&id=32a14156\"\nimport script from \"./Trail.vue?vue&type=script&lang=js\"\nexport * from \"./Trail.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./Walking.vue?vue&type=template&id=2ed4f5f4\"\nimport script from \"./Walking.vue?vue&type=script&lang=js\"\nexport * from \"./Walking.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import script from \"./index.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./index.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n\n\n","import { render } from \"./Loader.vue?vue&type=template&id=4c9921ee&scoped=true\"\nconst script = {}\n\nimport \"./Loader.vue?vue&type=style&index=0&id=4c9921ee&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-4c9921ee\"]])\n\nexport default __exports__","import script from \"./Modal.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Modal.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./Modal.vue?vue&type=style&index=0&id=e8fcfaba&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-e8fcfaba\"]])\n\nexport default __exports__","import AlertMessage from '@/components/Common/AlertMessage.vue'\nimport Card from '@/components/Common/Card.vue'\nimport CustomTextArea from '@/components/Common/CustomTextArea.vue'\nimport Distance from '@/components/Common/Distance.vue'\nimport Dropdown from '@/components/Common/Dropdown.vue'\nimport ErrorMessage from '@/components/Common/ErrorMessage.vue'\nimport SportImage from '@/components/Common/Images/SportImage/index.vue'\nimport Loader from '@/components/Common/Loader.vue'\nimport Modal from '@/components/Common/Modal.vue'\n\nexport const customComponents = [\n { target: AlertMessage, name: 'AlertMessage' },\n { target: Card, name: 'Card' },\n { target: CustomTextArea, name: 'CustomTextArea' },\n { target: Distance, name: 'Distance' },\n { target: Dropdown, name: 'Dropdown' },\n { target: ErrorMessage, name: 'ErrorMessage' },\n { target: Loader, name: 'Loader' },\n { target: Modal, name: 'Modal' },\n { target: SportImage, name: 'SportImage' },\n]\n","import { Directive, DirectiveBinding } from 'vue'\n\ninterface ClickOutsideHTMLElement extends HTMLElement {\n clickOutsideEvent?: (event: MouseEvent | TouchEvent) => void\n}\n\nexport const clickOutsideDirective: Directive = {\n mounted: (\n element: ClickOutsideHTMLElement,\n binding: DirectiveBinding\n ): void => {\n element.clickOutsideEvent = function (event) {\n if (!(element === event.target || element.contains(event.target))) {\n binding.value(event)\n }\n }\n document.body.addEventListener('click', element.clickOutsideEvent)\n document.body.addEventListener('touchstart', element.clickOutsideEvent)\n },\n unmounted: function (element: ClickOutsideHTMLElement): void {\n if (element.clickOutsideEvent) {\n document.body.removeEventListener('click', element.clickOutsideEvent)\n document.body.removeEventListener('touchstart', element.clickOutsideEvent)\n element.clickOutsideEvent = undefined\n }\n },\n}\n","import {\n Chart,\n BarElement,\n LineElement,\n PointElement,\n Legend,\n Title,\n Tooltip,\n Filler,\n BarController,\n CategoryScale,\n LineController,\n LinearScale,\n} from 'chart.js'\nimport ChartDataLabels from 'chartjs-plugin-datalabels'\nimport { createApp } from 'vue'\nimport VueFullscreen from 'vue-fullscreen'\n\nimport './registerServiceWorker'\nimport App from './App.vue'\nimport i18n from './i18n'\nimport router from './router'\nimport store from './store'\n\nimport { customComponents } from '@/custom-components'\nimport { clickOutsideDirective } from '@/directives'\nimport { sportColors } from '@/utils/sports'\n\nChart.register(\n BarElement,\n LineElement,\n PointElement,\n Legend,\n Title,\n Tooltip,\n Filler,\n BarController,\n CategoryScale,\n LineController,\n LinearScale,\n ChartDataLabels\n)\n\nconst app = createApp(App)\n .provide('sportColors', sportColors)\n .use(i18n)\n .use(store)\n .use(router)\n .use(VueFullscreen, { name: 'VFullscreen' })\n .directive('click-outside', clickOutsideDirective)\n\ncustomComponents.forEach((component) => {\n app.component(component.name, component.target)\n})\n\napp.mount('#app')\n","import script from \"./AdminApplication.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AdminApplication.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./AdminApplication.vue?vue&type=style&index=0&id=24ec93e2&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-24ec93e2\"]])\n\nexport default __exports__","import script from \"./StatCard.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./StatCard.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./StatCard.vue?vue&type=style&index=0&id=6cbb3351&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import script from \"./AppStatsCards.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AppStatsCards.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./AppStatsCards.vue?vue&type=style&index=0&id=61c5053e&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import script from \"./AdminMenu.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AdminMenu.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./AdminMenu.vue?vue&type=style&index=0&id=0dd66f89&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-0dd66f89\"]])\n\nexport default __exports__","import script from \"./AdminSports.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AdminSports.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./AdminSports.vue?vue&type=style&index=0&id=6d62af67&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-6d62af67\"]])\n\nexport default __exports__","import script from \"./UsersNameFilter.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./UsersNameFilter.vue?vue&type=script&lang=ts&setup=true\"\n\nimport \"./UsersNameFilter.vue?vue&type=style&index=0&id=627a8e91&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-627a8e91\"]])\n\nexport default __exports__","import script from \"./AdminUsers.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AdminUsers.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./AdminUsers.vue?vue&type=style&index=0&id=4735c10f&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-4735c10f\"]])\n\nexport default __exports__","import script from \"./UserProfileTabs.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserProfileTabs.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserProfileTabs.vue?vue&type=style&index=0&id=40025245&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import script from \"./index.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./index.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./index.vue?vue&type=style&index=0&id=e26535e0&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-e26535e0\"]])\n\nexport default __exports__","import script from \"./UserPreferences.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserPreferences.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import script from \"./index.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./index.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import script from \"./UserAccountEdition.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserAccountEdition.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserAccountEdition.vue?vue&type=style&index=0&id=37b8c4c8&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-37b8c4c8\"]])\n\nexport default __exports__","import script from \"./UserInfosEdition.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserInfosEdition.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserInfosEdition.vue?vue&type=style&index=0&id=b6bacea0&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-b6bacea0\"]])\n\nexport default __exports__","import script from \"./UserPictureEdition.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserPictureEdition.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserPictureEdition.vue?vue&type=style&index=0&id=3a97bb3c&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-3a97bb3c\"]])\n\nexport default __exports__","export const timeZones = [\n 'Africa/Abidjan',\n 'Africa/Accra',\n 'Africa/Algiers',\n 'Africa/Bissau',\n 'Africa/Cairo',\n 'Africa/Casablanca',\n 'Africa/Ceuta',\n 'Africa/El_Aaiun',\n 'Africa/Johannesburg',\n 'Africa/Juba',\n 'Africa/Khartoum',\n 'Africa/Lagos',\n 'Africa/Maputo',\n 'Africa/Monrovia',\n 'Africa/Nairobi',\n 'Africa/Ndjamena',\n 'Africa/Sao_Tome',\n 'Africa/Tripoli',\n 'Africa/Tunis',\n 'Africa/Windhoek',\n 'America/Adak',\n 'America/Anchorage',\n 'America/Araguaina',\n 'America/Argentina/Buenos_Aires',\n 'America/Argentina/Catamarca',\n 'America/Argentina/Cordoba',\n 'America/Argentina/Jujuy',\n 'America/Argentina/La_Rioja',\n 'America/Argentina/Mendoza',\n 'America/Argentina/Rio_Gallegos',\n 'America/Argentina/Salta',\n 'America/Argentina/San_Juan',\n 'America/Argentina/San_Luis',\n 'America/Argentina/Tucuman',\n 'America/Argentina/Ushuaia',\n 'America/Asuncion',\n 'America/Atikokan',\n 'America/Bahia',\n 'America/Bahia_Banderas',\n 'America/Barbados',\n 'America/Belem',\n 'America/Belize',\n 'America/Blanc-Sablon',\n 'America/Boa_Vista',\n 'America/Bogota',\n 'America/Boise',\n 'America/Cambridge_Bay',\n 'America/Campo_Grande',\n 'America/Cancun',\n 'America/Caracas',\n 'America/Cayenne',\n 'America/Chicago',\n 'America/Chihuahua',\n 'America/Costa_Rica',\n 'America/Creston',\n 'America/Cuiaba',\n 'America/Curacao',\n 'America/Danmarkshavn',\n 'America/Dawson',\n 'America/Dawson_Creek',\n 'America/Denver',\n 'America/Detroit',\n 'America/Edmonton',\n 'America/Eirunepe',\n 'America/El_Salvador',\n 'America/Fortaleza',\n 'America/Fort_Nelson',\n 'America/Glace_Bay',\n 'America/Godthab',\n 'America/Goose_Bay',\n 'America/Grand_Turk',\n 'America/Guatemala',\n 'America/Guayaquil',\n 'America/Guyana',\n 'America/Halifax',\n 'America/Havana',\n 'America/Hermosillo',\n 'America/Indiana/Indianapolis',\n 'America/Indiana/Knox',\n 'America/Indiana/Marengo',\n 'America/Indiana/Petersburg',\n 'America/Indiana/Tell_City',\n 'America/Indiana/Vevay',\n 'America/Indiana/Vincennes',\n 'America/Indiana/Winamac',\n 'America/Inuvik',\n 'America/Iqaluit',\n 'America/Jamaica',\n 'America/Juneau',\n 'America/Kentucky/Louisville',\n 'America/Kentucky/Monticello',\n 'America/La_Paz',\n 'America/Lima',\n 'America/Los_Angeles',\n 'America/Maceio',\n 'America/Managua',\n 'America/Manaus',\n 'America/Martinique',\n 'America/Matamoros',\n 'America/Mazatlan',\n 'America/Menominee',\n 'America/Merida',\n 'America/Metlakatla',\n 'America/Mexico_City',\n 'America/Miquelon',\n 'America/Moncton',\n 'America/Monterrey',\n 'America/Montevideo',\n 'America/Nassau',\n 'America/New_York',\n 'America/Nipigon',\n 'America/Nome',\n 'America/Noronha',\n 'America/North_Dakota/Beulah',\n 'America/North_Dakota/Center',\n 'America/North_Dakota/New_Salem',\n 'America/Ojinaga',\n 'America/Panama',\n 'America/Pangnirtung',\n 'America/Paramaribo',\n 'America/Phoenix',\n 'America/Port-au-Prince',\n 'America/Port_of_Spain',\n 'America/Porto_Velho',\n 'America/Puerto_Rico',\n 'America/Punta_Arenas',\n 'America/Rainy_River',\n 'America/Rankin_Inlet',\n 'America/Recife',\n 'America/Regina',\n 'America/Resolute',\n 'America/Rio_Branco',\n 'America/Santarem',\n 'America/Santiago',\n 'America/Santo_Domingo',\n 'America/Sao_Paulo',\n 'America/Scoresbysund',\n 'America/Sitka',\n 'America/St_Johns',\n 'America/Swift_Current',\n 'America/Tegucigalpa',\n 'America/Thule',\n 'America/Thunder_Bay',\n 'America/Tijuana',\n 'America/Toronto',\n 'America/Vancouver',\n 'America/Whitehorse',\n 'America/Winnipeg',\n 'America/Yakutat',\n 'America/Yellowknife',\n 'Antarctica/Casey',\n 'Antarctica/Davis',\n 'Antarctica/DumontDUrville',\n 'Antarctica/Macquarie',\n 'Antarctica/Mawson',\n 'Antarctica/Palmer',\n 'Antarctica/Rothera',\n 'Antarctica/Syowa',\n 'Antarctica/Troll',\n 'Antarctica/Vostok',\n 'Asia/Almaty',\n 'Asia/Amman',\n 'Asia/Anadyr',\n 'Asia/Aqtau',\n 'Asia/Aqtobe',\n 'Asia/Ashgabat',\n 'Asia/Atyrau',\n 'Asia/Baghdad',\n 'Asia/Baku',\n 'Asia/Bangkok',\n 'Asia/Barnaul',\n 'Asia/Beirut',\n 'Asia/Bishkek',\n 'Asia/Brunei',\n 'Asia/Chita',\n 'Asia/Choibalsan',\n 'Asia/Colombo',\n 'Asia/Damascus',\n 'Asia/Dhaka',\n 'Asia/Dili',\n 'Asia/Dubai',\n 'Asia/Dushanbe',\n 'Asia/Famagusta',\n 'Asia/Gaza',\n 'Asia/Hebron',\n 'Asia/Ho_Chi_Minh',\n 'Asia/Hong_Kong',\n 'Asia/Hovd',\n 'Asia/Irkutsk',\n 'Asia/Jakarta',\n 'Asia/Jayapura',\n 'Asia/Jerusalem',\n 'Asia/Kabul',\n 'Asia/Kamchatka',\n 'Asia/Karachi',\n 'Asia/Kathmandu',\n 'Asia/Khandyga',\n 'Asia/Kolkata',\n 'Asia/Krasnoyarsk',\n 'Asia/Kuala_Lumpur',\n 'Asia/Kuching',\n 'Asia/Macau',\n 'Asia/Magadan',\n 'Asia/Makassar',\n 'Asia/Manila',\n 'Asia/Nicosia',\n 'Asia/Novokuznetsk',\n 'Asia/Novosibirsk',\n 'Asia/Omsk',\n 'Asia/Oral',\n 'Asia/Pontianak',\n 'Asia/Pyongyang',\n 'Asia/Qatar',\n 'Asia/Qostanay',\n 'Asia/Qyzylorda',\n 'Asia/Riyadh',\n 'Asia/Sakhalin',\n 'Asia/Samarkand',\n 'Asia/Seoul',\n 'Asia/Shanghai',\n 'Asia/Singapore',\n 'Asia/Srednekolymsk',\n 'Asia/Taipei',\n 'Asia/Tashkent',\n 'Asia/Tbilisi',\n 'Asia/Tehran',\n 'Asia/Thimphu',\n 'Asia/Tokyo',\n 'Asia/Tomsk',\n 'Asia/Ulaanbaatar',\n 'Asia/Urumqi',\n 'Asia/Ust-Nera',\n 'Asia/Vladivostok',\n 'Asia/Yakutsk',\n 'Asia/Yangon',\n 'Asia/Yekaterinburg',\n 'Asia/Yerevan',\n 'Atlantic/Azores',\n 'Atlantic/Bermuda',\n 'Atlantic/Canary',\n 'Atlantic/Cape_Verde',\n 'Atlantic/Faroe',\n 'Atlantic/Madeira',\n 'Atlantic/Reykjavik',\n 'Atlantic/South_Georgia',\n 'Atlantic/Stanley',\n 'Australia/Adelaide',\n 'Australia/Brisbane',\n 'Australia/Broken_Hill',\n 'Australia/Currie',\n 'Australia/Darwin',\n 'Australia/Eucla',\n 'Australia/Hobart',\n 'Australia/Lindeman',\n 'Australia/Lord_Howe',\n 'Australia/Melbourne',\n 'Australia/Perth',\n 'Australia/Sydney',\n 'Europe/Amsterdam',\n 'Europe/Andorra',\n 'Europe/Astrakhan',\n 'Europe/Athens',\n 'Europe/Belgrade',\n 'Europe/Berlin',\n 'Europe/Brussels',\n 'Europe/Bucharest',\n 'Europe/Budapest',\n 'Europe/Chisinau',\n 'Europe/Copenhagen',\n 'Europe/Dublin',\n 'Europe/Gibraltar',\n 'Europe/Helsinki',\n 'Europe/Istanbul',\n 'Europe/Kaliningrad',\n 'Europe/Kiev',\n 'Europe/Kirov',\n 'Europe/Lisbon',\n 'Europe/London',\n 'Europe/Luxembourg',\n 'Europe/Madrid',\n 'Europe/Malta',\n 'Europe/Minsk',\n 'Europe/Monaco',\n 'Europe/Moscow',\n 'Europe/Oslo',\n 'Europe/Paris',\n 'Europe/Prague',\n 'Europe/Riga',\n 'Europe/Rome',\n 'Europe/Samara',\n 'Europe/Saratov',\n 'Europe/Simferopol',\n 'Europe/Sofia',\n 'Europe/Stockholm',\n 'Europe/Tallinn',\n 'Europe/Tirane',\n 'Europe/Ulyanovsk',\n 'Europe/Uzhgorod',\n 'Europe/Vienna',\n 'Europe/Vilnius',\n 'Europe/Volgograd',\n 'Europe/Warsaw',\n 'Europe/Zaporozhye',\n 'Europe/Zurich',\n 'Indian/Chagos',\n 'Indian/Christmas',\n 'Indian/Cocos',\n 'Indian/Kerguelen',\n 'Indian/Mahe',\n 'Indian/Maldives',\n 'Indian/Mauritius',\n 'Indian/Reunion',\n 'Pacific/Apia',\n 'Pacific/Auckland',\n 'Pacific/Bougainville',\n 'Pacific/Chatham',\n 'Pacific/Chuuk',\n 'Pacific/Easter',\n 'Pacific/Efate',\n 'Pacific/Enderbury',\n 'Pacific/Fakaofo',\n 'Pacific/Fiji',\n 'Pacific/Funafuti',\n 'Pacific/Galapagos',\n 'Pacific/Gambier',\n 'Pacific/Guadalcanal',\n 'Pacific/Guam',\n 'Pacific/Honolulu',\n 'Pacific/Kiritimati',\n 'Pacific/Kosrae',\n 'Pacific/Kwajalein',\n 'Pacific/Majuro',\n 'Pacific/Marquesas',\n 'Pacific/Nauru',\n 'Pacific/Niue',\n 'Pacific/Norfolk',\n 'Pacific/Noumea',\n 'Pacific/Pago_Pago',\n 'Pacific/Palau',\n 'Pacific/Pitcairn',\n 'Pacific/Pohnpei',\n 'Pacific/Port_Moresby',\n 'Pacific/Rarotonga',\n 'Pacific/Tahiti',\n 'Pacific/Tarawa',\n 'Pacific/Tongatapu',\n 'Pacific/Wake',\n 'Pacific/Wallis',\n]\n","import script from \"./TimezoneDropdown.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./TimezoneDropdown.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./TimezoneDropdown.vue?vue&type=style&index=0&id=47ea2903&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-47ea2903\"]])\n\nexport default __exports__","import script from \"./UserPreferencesEdition.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserPreferencesEdition.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import script from \"./UserSportPreferences.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserSportPreferences.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserSportPreferences.vue?vue&type=style&index=0&id=4775544a&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-4775544a\"]])\n\nexport default __exports__","import script from \"./About.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./About.vue?vue&type=script&lang=ts&setup=true\"\n\nimport \"./About.vue?vue&type=style&index=0&id=74257266&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-74257266\"]])\n\nexport default __exports__","\n\n\n","import { render } from \"./BikePic.vue?vue&type=template&id=795f7f5f&scoped=true\"\nconst script = {}\n\nimport \"./BikePic.vue?vue&type=style&index=0&id=795f7f5f&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-795f7f5f\"]])\n\nexport default __exports__","import script from \"./AboutView.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./AboutView.vue?vue&type=script&lang=ts&setup=true\"\n\nimport \"./AboutView.vue?vue&type=style&index=0&id=bffb50d0&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-bffb50d0\"]])\n\nexport default __exports__","import script from \"./WorkoutCard.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./WorkoutCard.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./WorkoutCard.vue?vue&type=style&index=0&id=c9d1f10c&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-c9d1f10c\"]])\n\nexport default __exports__","import script from \"./Timeline.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Timeline.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./Timeline.vue?vue&type=style&index=0&id=9ef2a9ac&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-9ef2a9ac\"]])\n\nexport default __exports__","import script from \"./CalendarWorkout.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./CalendarWorkout.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./CalendarWorkout.vue?vue&type=style&index=0&id=7de0052b&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import script from \"./DonutChart.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./DonutChart.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import script from \"./CalendarWorkoutsChart.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./CalendarWorkoutsChart.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./CalendarWorkoutsChart.vue?vue&type=style&index=0&id=52d4310a&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-52d4310a\"]])\n\nexport default __exports__","import script from \"./CalendarWorkouts.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./CalendarWorkouts.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./CalendarWorkouts.vue?vue&type=style&index=0&id=4663dbac&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import script from \"./CalendarCells.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./CalendarCells.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./CalendarCells.vue?vue&type=style&index=0&id=73426002&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import script from \"./CalendarDays.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./CalendarDays.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./CalendarDays.vue?vue&type=style&index=0&id=4f3dc99e&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import script from \"./CalendarHeader.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./CalendarHeader.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./CalendarHeader.vue?vue&type=style&index=0&id=79a65a70&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import script from \"./index.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./index.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./index.vue?vue&type=style&index=0&id=4b0ade2c&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import script from \"./UserMonthStats.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserMonthStats.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserMonthStats.vue?vue&type=style&index=0&id=1bcddc12&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-1bcddc12\"]])\n\nexport default __exports__","import script from \"./RecordsCard.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./RecordsCard.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./RecordsCard.vue?vue&type=style&index=0&id=aee1f956&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-aee1f956\"]])\n\nexport default __exports__","import { ITranslatedSport } from '@/types/sports'\nimport { TUnit } from '@/types/units'\nimport { IRecord, IRecordsBySports } from '@/types/workouts'\nimport { formatWorkoutDate, getDateWithTZ } from '@/utils/dates'\nimport { convertDistance, units } from '@/utils/units'\n\nexport const formatRecord = (\n record: IRecord,\n tz: string,\n useImperialUnits: boolean\n): Record => {\n const unitFrom: TUnit = 'km'\n const unitTo: TUnit = useImperialUnits\n ? units[unitFrom].defaultTarget\n : unitFrom\n let value\n switch (record.record_type) {\n case 'AS':\n case 'MS':\n value = `${convertDistance(\n +record.value,\n unitFrom,\n unitTo,\n 2\n )} ${unitTo}/h`\n break\n case 'FD':\n value = `${convertDistance(+record.value, unitFrom, unitTo, 3)} ${unitTo}`\n break\n case 'LD':\n value = record.value\n break\n default:\n throw new Error(\n `Invalid record type, expected: \"AS\", \"FD\", \"LD\", \"MD\", got: \"${record.record_type}\"`\n )\n }\n return {\n workout_date: formatWorkoutDate(getDateWithTZ(record.workout_date, tz))\n .workout_date,\n workout_id: record.workout_id,\n id: record.id,\n record_type: record.record_type,\n value: value,\n }\n}\n\nexport const getRecordsBySports = (\n records: IRecord[],\n translatedSports: ITranslatedSport[],\n tz: string,\n useImperialUnits: boolean\n): IRecordsBySports =>\n records.reduce((sportList: IRecordsBySports, record) => {\n const sport = translatedSports.find((s) => s.id === record.sport_id)\n if (sport && sport.label) {\n if (sportList[sport.translatedLabel] === void 0) {\n sportList[sport.translatedLabel] = {\n label: sport.label,\n color: sport.color,\n records: [],\n }\n }\n sportList[sport.translatedLabel].records.push(\n formatRecord(record, tz, useImperialUnits)\n )\n }\n return sportList\n }, {})\n","import script from \"./index.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./index.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./index.vue?vue&type=style&index=0&id=ae25a82a&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-ae25a82a\"]])\n\nexport default __exports__","import script from \"./index.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./index.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./index.vue?vue&type=style&index=0&id=6c24b4fa&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import script from \"./Dashboard.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Dashboard.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./Dashboard.vue?vue&type=style&index=0&id=20e19721&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-20e19721\"]])\n\nexport default __exports__","import script from \"./NotFoundView.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./NotFoundView.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import script from \"./LoginOrRegister.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./LoginOrRegister.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./LoginOrRegister.vue?vue&type=style&index=0&id=6a38125b&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-6a38125b\"]])\n\nexport default __exports__","import { createRouter, createWebHistory, RouteRecordRaw } from 'vue-router'\n\nimport AdminApplication from '@/components/Administration/AdminApplication.vue'\nimport AdminMenu from '@/components/Administration/AdminMenu.vue'\nimport AdminSports from '@/components/Administration/AdminSports.vue'\nimport AdminUsers from '@/components/Administration/AdminUsers.vue'\nimport Profile from '@/components/User/ProfileDisplay/index.vue'\nimport UserInfos from '@/components/User/ProfileDisplay/UserInfos.vue'\nimport UserPreferences from '@/components/User/ProfileDisplay/UserPreferences.vue'\nimport ProfileEdition from '@/components/User/ProfileEdition/index.vue'\nimport UserAccountEdition from '@/components/User/ProfileEdition/UserAccountEdition.vue'\nimport UserInfosEdition from '@/components/User/ProfileEdition/UserInfosEdition.vue'\nimport UserPictureEdition from '@/components/User/ProfileEdition/UserPictureEdition.vue'\nimport UserPreferencesEdition from '@/components/User/ProfileEdition/UserPreferencesEdition.vue'\nimport UserSportPreferences from '@/components/User/UserSportPreferences.vue'\nimport store from '@/store'\nimport { AUTH_USER_STORE } from '@/store/constants'\nimport AboutView from '@/views/AboutView.vue'\nimport Dashboard from '@/views/Dashboard.vue'\nimport NotFoundView from '@/views/NotFoundView.vue'\nimport LoginOrRegister from '@/views/user/LoginOrRegister.vue'\n\nconst getTabFromPath = (path: string): string => {\n const regex = /(\\/profile)(\\/edit)*(\\/*)/\n const tag = path.replace(regex, '').toUpperCase()\n return tag === '' ? 'PROFILE' : tag.toUpperCase()\n}\n\nconst routes: Array = [\n {\n path: '/',\n name: 'Dashboard',\n component: Dashboard,\n },\n {\n path: '/login',\n name: 'Login',\n component: LoginOrRegister,\n props: { action: 'login' },\n },\n {\n path: '/register',\n name: 'Register',\n component: LoginOrRegister,\n props: { action: 'register' },\n },\n {\n path: '/account-confirmation',\n name: 'AccountConfirmation',\n component: () =>\n import(\n /* webpackChunkName: 'profile' */ '@/views/user/AccountConfirmationView.vue'\n ),\n },\n {\n path: '/account-confirmation/resend',\n name: 'AccountConfirmationResend',\n component: () =>\n import(\n /* webpackChunkName: 'reset' */ '@/views/user/AccountConfirmationResendView.vue'\n ),\n props: { action: 'account-confirmation-resend' },\n },\n {\n path: '/account-confirmation/email-sent',\n name: 'AccountConfirmationEmailSend',\n component: () =>\n import(\n /* webpackChunkName: 'reset' */ '@/views/user/AccountConfirmationResendView.vue'\n ),\n props: { action: 'email-sent' },\n },\n {\n path: '/password-reset/sent',\n name: 'PasswordEmailSent',\n component: () =>\n import(\n /* webpackChunkName: 'reset' */ '@/views/user/PasswordResetView.vue'\n ),\n props: { action: 'request-sent' },\n },\n {\n path: '/password-reset/request',\n name: 'PasswordResetRequest',\n component: () =>\n import(\n /* webpackChunkName: 'reset' */ '@/views/user/PasswordResetView.vue'\n ),\n props: { action: 'reset-request' },\n },\n {\n path: '/password-reset/password-updated',\n name: 'PasswordUpdated',\n component: () =>\n import(\n /* webpackChunkName: 'reset' */ '@/views/user/PasswordResetView.vue'\n ),\n props: { action: 'password-updated' },\n },\n {\n path: '/password-reset',\n name: 'PasswordReset',\n component: () =>\n import(\n /* webpackChunkName: 'reset' */ '@/views/user/PasswordResetView.vue'\n ),\n props: { action: 'reset' },\n },\n {\n path: '/email-update',\n name: 'EmailUpdate',\n component: () =>\n import(\n /* webpackChunkName: 'profile' */ '@/views/user/EmailUpdateView.vue'\n ),\n },\n {\n path: '/profile',\n name: 'Profile',\n component: () =>\n import(/* webpackChunkName: 'profile' */ '@/views/user/ProfileView.vue'),\n children: [\n {\n path: '',\n name: 'UserProfile',\n component: Profile,\n props: (route) => ({\n tab: getTabFromPath(route.path),\n }),\n children: [\n {\n path: '',\n name: 'UserInfos',\n component: UserInfos,\n },\n {\n path: 'preferences',\n name: 'UserPreferences',\n component: UserPreferences,\n },\n {\n path: 'sports',\n name: 'UserSportPreferences',\n component: UserSportPreferences,\n props: { isEdition: false },\n },\n ],\n },\n {\n path: 'edit',\n name: 'UserProfileEdition',\n component: ProfileEdition,\n props: (route) => ({\n tab: getTabFromPath(route.path),\n }),\n children: [\n {\n path: '',\n name: 'UserInfosEdition',\n component: UserInfosEdition,\n },\n {\n path: 'account',\n name: 'UserAccountEdition',\n component: UserAccountEdition,\n },\n {\n path: 'picture',\n name: 'UserPictureEdition',\n component: UserPictureEdition,\n },\n {\n path: 'preferences',\n name: 'UserPreferencesEdition',\n component: UserPreferencesEdition,\n },\n {\n path: 'sports',\n name: 'UserSportPreferencesEdition',\n component: UserSportPreferences,\n props: { isEdition: true },\n },\n ],\n },\n ],\n },\n {\n path: '/statistics',\n name: 'Statistics',\n component: () =>\n import(/* webpackChunkName: 'statistics' */ '@/views/StatisticsView.vue'),\n },\n {\n path: '/users/:username',\n name: 'User',\n component: () =>\n import(/* webpackChunkName: 'profile' */ '@/views/user/UserView.vue'),\n },\n {\n path: '/workouts',\n name: 'Workouts',\n component: () =>\n import(\n /* webpackChunkName: 'workouts' */ '@/views/workouts/WorkoutsView.vue'\n ),\n },\n {\n path: '/workouts/:workoutId',\n name: 'Workout',\n component: () =>\n import(/* webpackChunkName: 'workouts' */ '@/views/workouts/Workout.vue'),\n props: { displaySegment: false },\n },\n {\n path: '/workouts/:workoutId/edit',\n name: 'EditWorkout',\n component: () =>\n import(\n /* webpackChunkName: 'workouts' */ '@/views/workouts/EditWorkout.vue'\n ),\n },\n {\n path: '/workouts/:workoutId/segment/:segmentId',\n name: 'WorkoutSegment',\n component: () =>\n import(/* webpackChunkName: 'workouts' */ '@/views/workouts/Workout.vue'),\n props: { displaySegment: true },\n },\n {\n path: '/workouts/add',\n name: 'AddWorkout',\n component: () =>\n import(\n /* webpackChunkName: 'workouts' */ '@/views/workouts/AddWorkout.vue'\n ),\n },\n {\n path: '/admin',\n name: 'Administration',\n component: () =>\n import(/* webpackChunkName: 'admin' */ '@/views/AdminView.vue'),\n children: [\n {\n path: '',\n name: 'AdministrationMenu',\n component: AdminMenu,\n },\n {\n path: 'application',\n name: 'ApplicationAdministration',\n component: AdminApplication,\n },\n {\n path: 'application/edit',\n name: 'ApplicationAdministrationEdition',\n component: AdminApplication,\n props: { edition: true },\n },\n {\n path: 'sports',\n name: 'SportsAdministration',\n component: AdminSports,\n },\n {\n path: 'users/:username',\n name: 'UserFromAdmin',\n component: () =>\n import(/* webpackChunkName: 'profile' */ '@/views/user/UserView.vue'),\n props: { fromAdmin: true },\n },\n {\n path: 'users',\n name: 'UsersAdministration',\n component: AdminUsers,\n },\n ],\n },\n {\n path: '/about',\n name: 'About',\n component: AboutView,\n },\n {\n path: '/:pathMatch(.*)*',\n name: 'not-found',\n component: NotFoundView,\n },\n]\n\nconst router = createRouter({\n history: createWebHistory(process.env.BASE_URL),\n routes,\n})\n\nconst pathsWithoutAuthentication = [\n '/login',\n '/password-reset',\n '/password-reset/password-updated',\n '/password-reset/request',\n '/password-reset/sent',\n '/register',\n '/account-confirmation',\n '/account-confirmation/resend',\n '/account-confirmation/email-sent',\n]\n\nconst pathsWithoutChecks = ['/email-update', '/about']\n\nrouter.beforeEach((to, from, next) => {\n store\n .dispatch(AUTH_USER_STORE.ACTIONS.CHECK_AUTH_USER)\n .then(() => {\n if (pathsWithoutChecks.includes(to.path)) {\n return next()\n }\n if (\n store.getters[AUTH_USER_STORE.GETTERS.IS_AUTHENTICATED] &&\n pathsWithoutAuthentication.includes(to.path)\n ) {\n return next('/')\n }\n if (\n !store.getters[AUTH_USER_STORE.GETTERS.IS_AUTHENTICATED] &&\n !pathsWithoutAuthentication.includes(to.path)\n ) {\n const path =\n to.path === '/'\n ? { path: '/login' }\n : { path: '/login', query: { from: to.fullPath } }\n next(path)\n } else {\n next()\n }\n })\n .catch((error) => {\n console.error(error)\n next()\n })\n})\n\nexport default router\n","export enum AuthUserActions {\n CHECK_AUTH_USER = 'CHECK_AUTH_USER',\n CONFIRM_ACCOUNT = 'CONFIRM_ACCOUNT',\n CONFIRM_EMAIL = 'CONFIRM_EMAIL',\n DELETE_ACCOUNT = 'DELETE_ACCOUNT',\n DELETE_PICTURE = 'DELETE_PICTURE',\n GET_USER_PROFILE = 'GET_USER_PROFILE',\n LOGIN_OR_REGISTER = 'LOGIN_OR_REGISTER',\n LOGOUT = 'LOGOUT',\n SEND_PASSWORD_RESET_REQUEST = 'SEND_PASSWORD_RESET_REQUEST',\n RESEND_ACCOUNT_CONFIRMATION_EMAIL = 'RESEND_ACCOUNT_CONFIRMATION_EMAIL',\n RESET_USER_PASSWORD = 'RESET_USER_PASSWORD',\n RESET_USER_SPORT_PREFERENCES = 'RESET_USER_SPORT_PREFERENCES',\n UPDATE_USER_ACCOUNT = 'UPDATE_USER_ACCOUNT',\n UPDATE_USER_PICTURE = 'UPDATE_USER_PICTURE',\n UPDATE_USER_PROFILE = 'UPDATE_USER_PROFILE',\n UPDATE_USER_PREFERENCES = 'UPDATE_USER_PREFERENCES',\n UPDATE_USER_SPORT_PREFERENCES = 'UPDATE_USER_SPORT_PREFERENCES',\n}\n\nexport enum AuthUserGetters {\n AUTH_TOKEN = 'AUTH_TOKEN',\n AUTH_USER_PROFILE = 'AUTH_USER_PROFILE',\n IS_ADMIN = 'IS_ADMIN',\n IS_AUTHENTICATED = 'IS_AUTHENTICATED',\n IS_SUCCESS = 'IS_SUCCESS',\n IS_REGISTRATION_SUCCESS = 'IS_REGISTRATION_SUCCESS',\n USER_LOADING = 'USER_LOADING',\n}\n\nexport enum AuthUserMutations {\n CLEAR_AUTH_USER_TOKEN = 'CLEAR_AUTH_USER_TOKEN',\n UPDATE_AUTH_TOKEN = 'UPDATE_AUTH_TOKEN',\n UPDATE_AUTH_USER_PROFILE = 'UPDATE_AUTH_USER_PROFILE',\n UPDATE_IS_SUCCESS = 'UPDATE_USER_IS_SUCCESS',\n UPDATE_IS_REGISTRATION_SUCCESS = 'UPDATE_IS_REGISTRATION_SUCCESS',\n UPDATE_USER_LOADING = 'UPDATE_USER_LOADING',\n}\n","export enum RootActions {\n GET_APPLICATION_CONFIG = 'GET_APPLICATION_CONFIG',\n GET_APPLICATION_STATS = 'GET_APPLICATION_STATS',\n UPDATE_APPLICATION_CONFIG = 'UPDATE_APPLICATION_CONFIG',\n}\n\nexport enum RootGetters {\n APP_CONFIG = 'APP_CONFIG',\n APP_LOADING = 'APP_LOADING',\n APP_STATS = 'APP_STATS',\n ERROR_MESSAGES = 'ERROR_MESSAGES',\n LANGUAGE = 'LANGUAGE',\n LOCALE = 'LOCALE', // date-fns\n}\n\nexport enum RootMutations {\n EMPTY_ERROR_MESSAGES = 'EMPTY_ERROR_MESSAGES',\n SET_ERROR_MESSAGES = 'SET_ERROR_MESSAGES',\n UPDATE_APPLICATION_CONFIG = 'UPDATE_APPLICATION_CONFIG',\n UPDATE_APPLICATION_LOADING = 'UPDATE_APPLICATION_LOADING',\n UPDATE_APPLICATION_STATS = 'UPDATE_APPLICATION_STATS',\n UPDATE_LANG = 'UPDATE_LANG',\n}\n","export enum SportsActions {\n GET_SPORTS = 'GET_SPORTS',\n UPDATE_SPORTS = 'UPDATE_SPORTS',\n}\n\nexport enum SportsGetters {\n SPORTS = 'SPORTS',\n}\n\nexport enum SportsMutation {\n SET_SPORTS = 'SET_SPORTS',\n}\n","export enum StatisticsActions {\n GET_USER_STATS = 'GET_USER_STATS',\n}\n\nexport enum StatisticsGetters {\n USER_STATS = 'USER_STATS',\n}\n\nexport enum StatisticsMutations {\n EMPTY_USER_STATS = 'EMPTY_USER_STATS',\n UPDATE_USER_STATS = 'UPDATE_USER_STATS',\n}\n","export enum UsersActions {\n EMPTY_USER = 'EMPTY_USER',\n EMPTY_USERS = 'EMPTY_USERS',\n GET_USER = 'GET_USER',\n GET_USERS = 'GET_USERS',\n UPDATE_USER = 'UPDATE_USER',\n DELETE_USER_ACCOUNT = 'DELETE_USER_ACCOUNT',\n}\n\nexport enum UsersGetters {\n USER = 'USER',\n USERS = 'USERS',\n USERS_IS_SUCCESS = 'USERS_IS_SUCCESS',\n USERS_LOADING = 'USERS_LOADING',\n USERS_PAGINATION = 'USERS_PAGINATION',\n}\n\nexport enum UsersMutations {\n UPDATE_USER = 'UPDATE_USER',\n UPDATE_USER_IN_USERS = 'UPDATE_USER_IN_USERS',\n UPDATE_USERS = 'UPDATE_USERS',\n UPDATE_USERS_LOADING = 'UPDATE_USERS_LOADING',\n UPDATE_USERS_PAGINATION = 'UPDATE_USERS_PAGINATION',\n UPDATE_IS_SUCCESS = 'UPDATE_IS_SUCCESS',\n}\n","import {\n AuthUserActions,\n AuthUserGetters,\n AuthUserMutations,\n} from '@/store/modules/authUser/enums'\nimport {\n RootActions,\n RootGetters,\n RootMutations,\n} from '@/store/modules/root/enums'\nimport {\n SportsActions,\n SportsGetters,\n SportsMutation,\n} from '@/store/modules/sports/enums'\nimport {\n StatisticsActions,\n StatisticsGetters,\n StatisticsMutations,\n} from '@/store/modules/statistics/enums'\nimport {\n UsersActions,\n UsersGetters,\n UsersMutations,\n} from '@/store/modules/users/enums'\nimport {\n WorkoutsActions,\n WorkoutsGetters,\n WorkoutsMutations,\n} from '@/store/modules/workouts/enums'\n\nexport const ROOT_STORE = {\n ACTIONS: RootActions,\n GETTERS: RootGetters,\n MUTATIONS: RootMutations,\n}\n\nexport const SPORTS_STORE = {\n ACTIONS: SportsActions,\n GETTERS: SportsGetters,\n MUTATIONS: SportsMutation,\n}\n\nexport const STATS_STORE = {\n ACTIONS: StatisticsActions,\n GETTERS: StatisticsGetters,\n MUTATIONS: StatisticsMutations,\n}\n\nexport const AUTH_USER_STORE = {\n ACTIONS: AuthUserActions,\n GETTERS: AuthUserGetters,\n MUTATIONS: AuthUserMutations,\n}\n\nexport const USERS_STORE = {\n ACTIONS: UsersActions,\n GETTERS: UsersGetters,\n MUTATIONS: UsersMutations,\n}\n\nexport const WORKOUTS_STORE = {\n ACTIONS: WorkoutsActions,\n GETTERS: WorkoutsGetters,\n MUTATIONS: WorkoutsMutations,\n}\n","import axios from 'axios'\n\nimport { getApiUrl } from '@/utils'\n\nconst api = axios.create({\n baseURL: getApiUrl(),\n})\n\nexport default api\n","import { ActionContext, ActionTree } from 'vuex'\n\nimport authApi from '@/api/authApi'\nimport router from '@/router'\nimport { AUTH_USER_STORE, ROOT_STORE, USERS_STORE } from '@/store/constants'\nimport { IAuthUserState } from '@/store/modules/authUser/types'\nimport { IRootState } from '@/store/modules/root/types'\nimport { IUsersActions, IUsersState } from '@/store/modules/users/types'\nimport { TPaginationPayload } from '@/types/api'\nimport { IAdminUserPayload, IUserDeletionPayload } from '@/types/user'\nimport { handleError } from '@/utils'\n\nexport const deleteUserAccount = (\n context:\n | ActionContext\n | ActionContext,\n payload: IUserDeletionPayload\n): void => {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n authApi\n .delete(`users/${payload.username}`)\n .then((res) => {\n if (res.status === 204) {\n if (payload.fromAdmin) {\n router.push('/admin/users')\n } else {\n context\n .dispatch(AUTH_USER_STORE.ACTIONS.LOGOUT)\n .then(() => router.push('/'))\n }\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n}\n\nexport const actions: ActionTree & IUsersActions = {\n [USERS_STORE.ACTIONS.EMPTY_USER](\n context: ActionContext\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(USERS_STORE.MUTATIONS.UPDATE_USER, {})\n },\n [USERS_STORE.ACTIONS.EMPTY_USERS](\n context: ActionContext\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(USERS_STORE.MUTATIONS.UPDATE_USERS, [])\n context.commit(USERS_STORE.MUTATIONS.UPDATE_USERS_PAGINATION, {})\n },\n [USERS_STORE.ACTIONS.GET_USER](\n context: ActionContext,\n username: string\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(USERS_STORE.MUTATIONS.UPDATE_USERS_LOADING, true)\n authApi\n .get(`users/${username}`)\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n USERS_STORE.MUTATIONS.UPDATE_USER,\n res.data.data.users[0]\n )\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n .finally(() =>\n context.commit(USERS_STORE.MUTATIONS.UPDATE_USERS_LOADING, false)\n )\n },\n [USERS_STORE.ACTIONS.GET_USERS](\n context: ActionContext,\n payload: TPaginationPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(USERS_STORE.MUTATIONS.UPDATE_USERS_LOADING, true)\n authApi\n .get('users', { params: payload })\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n USERS_STORE.MUTATIONS.UPDATE_USERS,\n res.data.data.users\n )\n context.commit(\n USERS_STORE.MUTATIONS.UPDATE_USERS_PAGINATION,\n res.data.pagination\n )\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n .finally(() =>\n context.commit(USERS_STORE.MUTATIONS.UPDATE_USERS_LOADING, false)\n )\n },\n [USERS_STORE.ACTIONS.UPDATE_USER](\n context: ActionContext,\n payload: IAdminUserPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(USERS_STORE.MUTATIONS.UPDATE_IS_SUCCESS, false)\n const data: Record = {}\n if (payload.admin !== undefined) {\n data.admin = payload.admin\n }\n if (payload.resetPassword) {\n data.reset_password = payload.resetPassword\n }\n if (payload.activate) {\n data.activate = payload.activate\n }\n if (payload.new_email !== undefined) {\n data.new_email = payload.new_email\n }\n authApi\n .patch(`users/${payload.username}`, data)\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n USERS_STORE.MUTATIONS.UPDATE_USER_IN_USERS,\n res.data.data.users[0]\n )\n if (payload.resetPassword || payload.new_email) {\n context.commit(USERS_STORE.MUTATIONS.UPDATE_IS_SUCCESS, true)\n }\n if (payload.activate || payload.new_email) {\n context.commit(\n USERS_STORE.MUTATIONS.UPDATE_USER,\n res.data.data.users[0]\n )\n }\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n .finally(() =>\n context.commit(USERS_STORE.MUTATIONS.UPDATE_USERS_LOADING, false)\n )\n },\n [USERS_STORE.ACTIONS.DELETE_USER_ACCOUNT](\n context: ActionContext,\n payload: IUserDeletionPayload\n ): void {\n deleteUserAccount(context, {\n username: payload.username,\n fromAdmin: true,\n })\n },\n}\n","import { ActionContext, ActionTree } from 'vuex'\n\nimport authApi from '@/api/authApi'\nimport api from '@/api/defaultApi'\nimport createI18n from '@/i18n'\nimport router from '@/router'\nimport {\n AUTH_USER_STORE,\n ROOT_STORE,\n SPORTS_STORE,\n STATS_STORE,\n USERS_STORE,\n WORKOUTS_STORE,\n} from '@/store/constants'\nimport {\n IAuthUserActions,\n IAuthUserState,\n} from '@/store/modules/authUser/types'\nimport { IRootState } from '@/store/modules/root/types'\nimport { deleteUserAccount } from '@/store/modules/users/actions'\nimport {\n ILoginOrRegisterData,\n IUserAccountPayload,\n IUserDeletionPayload,\n IUserAccountUpdatePayload,\n IUserEmailPayload,\n IUserPasswordResetPayload,\n IUserPayload,\n IUserPicturePayload,\n IUserPreferencesPayload,\n IUserSportPreferencesPayload,\n} from '@/types/user'\nimport { handleError } from '@/utils'\n\nconst { locale } = createI18n.global\n\nconst removeAuthUserData = (\n context: ActionContext\n) => {\n localStorage.removeItem('authToken')\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(STATS_STORE.MUTATIONS.EMPTY_USER_STATS)\n context.commit(AUTH_USER_STORE.MUTATIONS.CLEAR_AUTH_USER_TOKEN)\n context.commit(USERS_STORE.MUTATIONS.UPDATE_USERS, [])\n context.commit(WORKOUTS_STORE.MUTATIONS.EMPTY_WORKOUTS)\n context.commit(WORKOUTS_STORE.MUTATIONS.EMPTY_WORKOUT)\n router.push('/login')\n}\n\nexport const actions: ActionTree &\n IAuthUserActions = {\n [AUTH_USER_STORE.ACTIONS.CHECK_AUTH_USER](\n context: ActionContext\n ): void {\n if (\n window.localStorage.authToken &&\n !context.getters[AUTH_USER_STORE.GETTERS.IS_AUTHENTICATED]\n ) {\n context.commit(\n AUTH_USER_STORE.MUTATIONS.UPDATE_AUTH_TOKEN,\n window.localStorage.authToken\n )\n context.dispatch(AUTH_USER_STORE.ACTIONS.GET_USER_PROFILE)\n }\n },\n [AUTH_USER_STORE.ACTIONS.CONFIRM_ACCOUNT](\n context: ActionContext,\n payload: IUserAccountUpdatePayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n api\n .post('auth/account/confirm', { token: payload.token })\n .then((res) => {\n if (res.data.status === 'success') {\n const token = res.data.auth_token\n window.localStorage.setItem('authToken', token)\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_AUTH_TOKEN, token)\n context\n .dispatch(AUTH_USER_STORE.ACTIONS.GET_USER_PROFILE)\n .then(() => router.push('/'))\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => {\n handleError(context, error)\n })\n },\n [AUTH_USER_STORE.ACTIONS.CONFIRM_EMAIL](\n context: ActionContext,\n payload: IUserAccountUpdatePayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_IS_SUCCESS, false)\n api\n .post('/auth/email/update', { token: payload.token })\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_IS_SUCCESS, true)\n if (payload.refreshUser) {\n context\n .dispatch(AUTH_USER_STORE.ACTIONS.GET_USER_PROFILE)\n .then(() => {\n return router.push('/profile/edit/account')\n })\n }\n router.push('/profile/edit/account')\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => {\n handleError(context, error)\n })\n },\n [AUTH_USER_STORE.ACTIONS.GET_USER_PROFILE](\n context: ActionContext\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n authApi\n .get('auth/profile')\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n AUTH_USER_STORE.MUTATIONS.UPDATE_AUTH_USER_PROFILE,\n res.data.data\n )\n if (res.data.data.language) {\n context.commit(\n ROOT_STORE.MUTATIONS.UPDATE_LANG,\n res.data.data.language\n )\n locale.value = res.data.data.language\n }\n context.dispatch(SPORTS_STORE.ACTIONS.GET_SPORTS)\n } else {\n handleError(context, null)\n removeAuthUserData(context)\n }\n })\n .catch((error) => {\n handleError(context, error)\n removeAuthUserData(context)\n })\n },\n [AUTH_USER_STORE.ACTIONS.LOGIN_OR_REGISTER](\n context: ActionContext,\n data: ILoginOrRegisterData\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(\n AUTH_USER_STORE.MUTATIONS.UPDATE_IS_REGISTRATION_SUCCESS,\n false\n )\n api\n .post(`/auth/${data.actionType}`, data.formData)\n .then((res) => {\n if (res.data.status === 'success') {\n if (data.actionType === 'login') {\n const token = res.data.auth_token\n window.localStorage.setItem('authToken', token)\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_AUTH_TOKEN, token)\n context\n .dispatch(AUTH_USER_STORE.ACTIONS.GET_USER_PROFILE)\n .then(() =>\n router.push(\n typeof data.redirectUrl === 'string' ? data.redirectUrl : '/'\n )\n )\n } else {\n router\n .push('/login')\n .then(() =>\n context.commit(\n AUTH_USER_STORE.MUTATIONS.UPDATE_IS_REGISTRATION_SUCCESS,\n true\n )\n )\n }\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n [AUTH_USER_STORE.ACTIONS.LOGOUT](\n context: ActionContext\n ): void {\n removeAuthUserData(context)\n },\n [AUTH_USER_STORE.ACTIONS.UPDATE_USER_PROFILE](\n context: ActionContext,\n payload: IUserPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, true)\n authApi\n .post('auth/profile/edit', payload)\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n AUTH_USER_STORE.MUTATIONS.UPDATE_AUTH_USER_PROFILE,\n res.data.data\n )\n router.push('/profile')\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n .finally(() =>\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, false)\n )\n },\n [AUTH_USER_STORE.ACTIONS.UPDATE_USER_ACCOUNT](\n context: ActionContext,\n payload: IUserAccountPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, true)\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_IS_SUCCESS, false)\n authApi\n .patch('auth/profile/edit/account', payload)\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n AUTH_USER_STORE.MUTATIONS.UPDATE_AUTH_USER_PROFILE,\n res.data.data\n )\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_IS_SUCCESS, true)\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n .finally(() =>\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, false)\n )\n },\n [AUTH_USER_STORE.ACTIONS.UPDATE_USER_PREFERENCES](\n context: ActionContext,\n payload: IUserPreferencesPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, true)\n authApi\n .post('auth/profile/edit/preferences', payload)\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n AUTH_USER_STORE.MUTATIONS.UPDATE_AUTH_USER_PROFILE,\n res.data.data\n )\n context.commit(\n ROOT_STORE.MUTATIONS.UPDATE_LANG,\n res.data.data.language\n )\n locale.value = res.data.data.language\n router.push('/profile/preferences')\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n .finally(() =>\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, false)\n )\n },\n [AUTH_USER_STORE.ACTIONS.RESET_USER_SPORT_PREFERENCES](\n context: ActionContext,\n sportId: number\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, true)\n authApi\n .delete(`auth/profile/reset/sports/${sportId}`)\n .then((res) => {\n if (res.status === 204) {\n context.dispatch(SPORTS_STORE.ACTIONS.GET_SPORTS)\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => {\n handleError(context, error)\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, false)\n })\n },\n [AUTH_USER_STORE.ACTIONS.UPDATE_USER_SPORT_PREFERENCES](\n context: ActionContext,\n payload: IUserSportPreferencesPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, true)\n authApi\n .post('auth/profile/edit/sports', payload)\n .then((res) => {\n if (res.data.status === 'success') {\n context.dispatch(SPORTS_STORE.ACTIONS.GET_SPORTS)\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => {\n handleError(context, error)\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, false)\n })\n },\n [AUTH_USER_STORE.ACTIONS.UPDATE_USER_PICTURE](\n context: ActionContext,\n payload: IUserPicturePayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, true)\n if (!payload.picture) {\n throw new Error('No file part')\n }\n const form = new FormData()\n form.append('file', payload.picture)\n authApi\n .post('auth/picture', form, {\n headers: {\n 'content-type': 'multipart/form-data',\n },\n })\n .then((res) => {\n if (res.data.status === 'success') {\n context\n .dispatch(AUTH_USER_STORE.ACTIONS.GET_USER_PROFILE)\n .then(() => router.push('/profile'))\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n .finally(() =>\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, false)\n )\n },\n [AUTH_USER_STORE.ACTIONS.DELETE_ACCOUNT](\n context: ActionContext,\n payload: IUserDeletionPayload\n ): void {\n deleteUserAccount(context, payload)\n },\n [AUTH_USER_STORE.ACTIONS.DELETE_PICTURE](\n context: ActionContext\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, true)\n authApi\n .delete(`auth/picture`)\n .then((res) => {\n if (res.status === 204) {\n context\n .dispatch(AUTH_USER_STORE.ACTIONS.GET_USER_PROFILE)\n .then(() => router.push('/profile'))\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n .finally(() =>\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, false)\n )\n },\n [AUTH_USER_STORE.ACTIONS.SEND_PASSWORD_RESET_REQUEST](\n context: ActionContext,\n payload: IUserEmailPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n api\n .post('auth/password/reset-request', payload)\n .then((res) => {\n if (res.data.status === 'success') {\n router.push('/password-reset/sent')\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n [AUTH_USER_STORE.ACTIONS.RESEND_ACCOUNT_CONFIRMATION_EMAIL](\n context: ActionContext,\n payload: IUserEmailPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n api\n .post('auth/account/resend-confirmation', payload)\n .then((res) => {\n if (res.data.status === 'success') {\n router.push('/account-confirmation/email-sent')\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n [AUTH_USER_STORE.ACTIONS.RESET_USER_PASSWORD](\n context: ActionContext,\n payload: IUserPasswordResetPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n api\n .post('auth/password/update', payload)\n .then((res) => {\n if (res.data.status === 'success') {\n router.push('/password-reset/password-updated')\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n}\n","import { GetterTree } from 'vuex'\n\nimport { AUTH_USER_STORE } from '@/store/constants'\nimport {\n IAuthUserGetters,\n IAuthUserState,\n} from '@/store/modules/authUser/types'\nimport { IRootState } from '@/store/modules/root/types'\n\nexport const getters: GetterTree &\n IAuthUserGetters = {\n [AUTH_USER_STORE.GETTERS.AUTH_TOKEN]: (state: IAuthUserState) => {\n return state.authToken\n },\n [AUTH_USER_STORE.GETTERS.AUTH_USER_PROFILE]: (state: IAuthUserState) => {\n return state.authUserProfile\n },\n [AUTH_USER_STORE.GETTERS.IS_AUTHENTICATED]: (state: IAuthUserState) => {\n return state.authToken !== null\n },\n [AUTH_USER_STORE.GETTERS.IS_ADMIN]: (state: IAuthUserState) => {\n return state.authUserProfile && state.authUserProfile.admin\n },\n [AUTH_USER_STORE.GETTERS.IS_REGISTRATION_SUCCESS]: (\n state: IAuthUserState\n ) => {\n return state.isRegistrationSuccess\n },\n [AUTH_USER_STORE.GETTERS.IS_SUCCESS]: (state: IAuthUserState) => {\n return state.isSuccess\n },\n [AUTH_USER_STORE.GETTERS.USER_LOADING]: (state: IAuthUserState) => {\n return state.loading\n },\n}\n","import { MutationTree } from 'vuex'\n\nimport { AUTH_USER_STORE } from '@/store/constants'\nimport {\n IAuthUserState,\n TAuthUserMutations,\n} from '@/store/modules/authUser/types'\nimport { IAuthUserProfile } from '@/types/user'\n\nexport const mutations: MutationTree & TAuthUserMutations = {\n [AUTH_USER_STORE.MUTATIONS.CLEAR_AUTH_USER_TOKEN](state: IAuthUserState) {\n state.authToken = null\n state.authUserProfile = {}\n },\n [AUTH_USER_STORE.MUTATIONS.UPDATE_AUTH_TOKEN](\n state: IAuthUserState,\n authToken: string\n ) {\n state.authToken = authToken\n },\n [AUTH_USER_STORE.MUTATIONS.UPDATE_AUTH_USER_PROFILE](\n state: IAuthUserState,\n authUserProfile: IAuthUserProfile\n ) {\n state.authUserProfile = authUserProfile\n },\n [AUTH_USER_STORE.MUTATIONS.UPDATE_IS_REGISTRATION_SUCCESS](\n state: IAuthUserState,\n isRegistrationSuccess: boolean\n ) {\n state.isRegistrationSuccess = isRegistrationSuccess\n },\n [AUTH_USER_STORE.MUTATIONS.UPDATE_IS_SUCCESS](\n state: IAuthUserState,\n isSuccess: boolean\n ) {\n state.isSuccess = isSuccess\n },\n [AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING](\n state: IAuthUserState,\n loading: boolean\n ) {\n state.loading = loading\n },\n}\n","import { IAuthUserState } from '@/store/modules/authUser/types'\nimport { IAuthUserProfile } from '@/types/user'\n\nexport const authUserState: IAuthUserState = {\n authToken: null,\n authUserProfile: {},\n isSuccess: false,\n isRegistrationSuccess: false,\n loading: false,\n}\n","import { Module } from 'vuex'\n\nimport { actions } from '@/store/modules/authUser/actions'\nimport { getters } from '@/store/modules/authUser/getters'\nimport { mutations } from '@/store/modules/authUser/mutations'\nimport { authUserState } from '@/store/modules/authUser/state'\nimport { IAuthUserState } from '@/store/modules/authUser/types'\nimport { IRootState } from '@/store/modules/root/types'\n\nconst authUser: Module = {\n state: authUserState,\n actions,\n getters,\n mutations,\n}\n\nexport default authUser\n","import { ActionContext, ActionTree } from 'vuex'\n\nimport authApi from '@/api/authApi'\nimport router from '@/router'\nimport { ROOT_STORE } from '@/store/constants'\nimport { IRootActions, IRootState } from '@/store/modules/root/types'\nimport { TAppConfigForm } from '@/types/application'\nimport { handleError } from '@/utils'\n\nexport const actions: ActionTree & IRootActions = {\n [ROOT_STORE.ACTIONS.GET_APPLICATION_CONFIG](\n context: ActionContext\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(ROOT_STORE.MUTATIONS.UPDATE_APPLICATION_LOADING, true)\n authApi\n .get('config')\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n ROOT_STORE.MUTATIONS.UPDATE_APPLICATION_CONFIG,\n res.data.data\n )\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n .finally(() =>\n context.commit(ROOT_STORE.MUTATIONS.UPDATE_APPLICATION_LOADING, false)\n )\n },\n [ROOT_STORE.ACTIONS.GET_APPLICATION_STATS](\n context: ActionContext\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n authApi\n .get('stats/all')\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n ROOT_STORE.MUTATIONS.UPDATE_APPLICATION_STATS,\n res.data.data\n )\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n [ROOT_STORE.ACTIONS.UPDATE_APPLICATION_CONFIG](\n context: ActionContext,\n payload: TAppConfigForm\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n authApi\n .patch('config', payload)\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n ROOT_STORE.MUTATIONS.UPDATE_APPLICATION_CONFIG,\n res.data.data\n )\n router.push('/admin/application')\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n}\n","import { GetterTree } from 'vuex'\n\nimport { ROOT_STORE } from '@/store/constants'\nimport { IRootGetters, IRootState } from '@/store/modules/root/types'\n\nexport const getters: GetterTree & IRootGetters = {\n [ROOT_STORE.GETTERS.APP_CONFIG]: (state: IRootState) => {\n return state.application.config\n },\n [ROOT_STORE.GETTERS.APP_LOADING]: (state: IRootState) => {\n return state.appLoading\n },\n [ROOT_STORE.GETTERS.APP_STATS]: (state: IRootState) => {\n return state.application.statistics\n },\n [ROOT_STORE.GETTERS.ERROR_MESSAGES]: (state: IRootState) => {\n return state.errorMessages\n },\n [ROOT_STORE.GETTERS.LANGUAGE]: (state: IRootState) => {\n return state.language\n },\n [ROOT_STORE.GETTERS.LOCALE]: (state: IRootState) => {\n return state.locale\n },\n}\n","import { MutationTree } from 'vuex'\n\nimport { ROOT_STORE } from '@/store/constants'\nimport { IRootState, TRootMutations } from '@/store/modules/root/types'\nimport { TAppConfig, IAppStatistics } from '@/types/application'\nimport { localeFromLanguage } from '@/utils/locales'\n\nexport const mutations: MutationTree & TRootMutations = {\n [ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES](state: IRootState) {\n state.errorMessages = null\n },\n [ROOT_STORE.MUTATIONS.SET_ERROR_MESSAGES](\n state: IRootState,\n errorMessages: string\n ) {\n state.errorMessages = errorMessages\n },\n [ROOT_STORE.MUTATIONS.UPDATE_APPLICATION_CONFIG](\n state: IRootState,\n config: TAppConfig\n ) {\n state.application.config = config\n },\n [ROOT_STORE.MUTATIONS.UPDATE_APPLICATION_LOADING](\n state: IRootState,\n loading: boolean\n ) {\n state.appLoading = loading\n },\n [ROOT_STORE.MUTATIONS.UPDATE_APPLICATION_STATS](\n state: IRootState,\n statistics: IAppStatistics\n ) {\n state.application.statistics = statistics\n },\n [ROOT_STORE.MUTATIONS.UPDATE_LANG](state: IRootState, language: string) {\n state.language = language\n state.locale = localeFromLanguage[language]\n },\n}\n","import { enUS } from 'date-fns/locale'\n\nimport { IRootState } from '@/store/modules/root/types'\nimport { IApplication } from '@/types/application'\n\nexport const state: IRootState = {\n root: true,\n language: 'en',\n locale: enUS,\n errorMessages: null,\n application: {\n statistics: {\n sports: 0,\n uploads_dir_size: 0,\n users: 0,\n workouts: 0,\n },\n },\n appLoading: false,\n}\n","import { ActionContext, ActionTree } from 'vuex'\n\nimport authApi from '@/api/authApi'\nimport { AUTH_USER_STORE, ROOT_STORE, SPORTS_STORE } from '@/store/constants'\nimport { IRootState } from '@/store/modules/root/types'\nimport { ISportsActions, ISportsState } from '@/store/modules/sports/types'\nimport { ISportPayload } from '@/types/sports'\nimport { handleError } from '@/utils'\n\nexport const actions: ActionTree & ISportsActions = {\n [SPORTS_STORE.ACTIONS.GET_SPORTS](\n context: ActionContext\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n authApi\n .get('sports')\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n SPORTS_STORE.MUTATIONS.SET_SPORTS,\n res.data.data.sports\n )\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, false)\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n [SPORTS_STORE.ACTIONS.UPDATE_SPORTS](\n context: ActionContext,\n payload: ISportPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n authApi\n .patch(`sports/${payload.id}`, { is_active: payload.isActive })\n .then((res) => {\n if (res.data.status === 'success') {\n context.dispatch(SPORTS_STORE.ACTIONS.GET_SPORTS)\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n}\n","import { GetterTree } from 'vuex'\n\nimport { SPORTS_STORE } from '@/store/constants'\nimport { IRootState } from '@/store/modules/root/types'\nimport { ISportsGetters, ISportsState } from '@/store/modules/sports/types'\n\nexport const getters: GetterTree & ISportsGetters = {\n [SPORTS_STORE.GETTERS.SPORTS]: (state: ISportsState) => state.sports,\n}\n","import { MutationTree } from 'vuex'\n\nimport { SPORTS_STORE } from '@/store/constants'\nimport { ISportsState, TSportsMutations } from '@/store/modules/sports/types'\nimport { ISport } from '@/types/sports'\n\nexport const mutations: MutationTree & TSportsMutations = {\n [SPORTS_STORE.MUTATIONS.SET_SPORTS](state: ISportsState, sports: ISport[]) {\n state.sports = sports\n },\n}\n","import { ISportsState } from '@/store/modules/sports/types'\n\nexport const sportsState: ISportsState = {\n sports: [],\n}\n","import { Module } from 'vuex'\n\nimport { IRootState } from '@/store/modules/root/types'\nimport { actions } from '@/store/modules/sports/actions'\nimport { getters } from '@/store/modules/sports/getters'\nimport { mutations } from '@/store/modules/sports/mutations'\nimport { sportsState } from '@/store/modules/sports/state'\nimport { ISportsState } from '@/store/modules/sports/types'\n\nconst sports: Module = {\n state: sportsState,\n actions,\n getters,\n mutations,\n}\n\nexport default sports\n","import { ActionContext, ActionTree } from 'vuex'\n\nimport authApi from '@/api/authApi'\nimport { STATS_STORE, ROOT_STORE } from '@/store/constants'\nimport { IRootState } from '@/store/modules/root/types'\nimport {\n IStatisticsActions,\n IStatisticsState,\n} from '@/store/modules/statistics/types'\nimport { IUserStatisticsPayload } from '@/types/statistics'\nimport { handleError } from '@/utils'\n\nexport const actions: ActionTree &\n IStatisticsActions = {\n [STATS_STORE.ACTIONS.GET_USER_STATS](\n context: ActionContext,\n payload: IUserStatisticsPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n authApi\n .get(`stats/${payload.username}/${payload.filterType}`, {\n params: payload.params,\n })\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n STATS_STORE.MUTATIONS.UPDATE_USER_STATS,\n res.data.data.statistics\n )\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n}\n","import { GetterTree } from 'vuex'\n\nimport { STATS_STORE } from '@/store/constants'\nimport { IRootState } from '@/store/modules/root/types'\nimport {\n IStatisticsGetters,\n IStatisticsState,\n} from '@/store/modules/statistics/types'\n\nexport const getters: GetterTree &\n IStatisticsGetters = {\n [STATS_STORE.GETTERS.USER_STATS]: (state: IStatisticsState) => {\n return state.statistics\n },\n}\n","import { MutationTree } from 'vuex'\n\nimport { STATS_STORE } from '@/store/constants'\nimport {\n IStatisticsState,\n TStatisticsMutations,\n} from '@/store/modules/statistics/types'\nimport { TStatisticsFromApi } from '@/types/statistics'\n\nexport const mutations: MutationTree & TStatisticsMutations =\n {\n [STATS_STORE.MUTATIONS.UPDATE_USER_STATS](\n state: IStatisticsState,\n statistics: TStatisticsFromApi\n ) {\n state.statistics = statistics\n },\n [STATS_STORE.MUTATIONS.EMPTY_USER_STATS](state: IStatisticsState) {\n state.statistics = {}\n },\n }\n","import { IStatisticsState } from '@/store/modules/statistics/types'\nimport { TStatisticsFromApi } from '@/types/statistics'\n\nexport const statisticsState: IStatisticsState = {\n statistics: {},\n}\n","import { Module } from 'vuex'\n\nimport { IRootState } from '@/store/modules/root/types'\nimport { actions } from '@/store/modules/statistics/actions'\nimport { getters } from '@/store/modules/statistics/getters'\nimport { mutations } from '@/store/modules/statistics/mutations'\nimport { statisticsState } from '@/store/modules/statistics/state'\nimport { IStatisticsState } from '@/store/modules/statistics/types'\n\nconst statistics: Module = {\n state: statisticsState,\n actions,\n getters,\n mutations,\n}\n\nexport default statistics\n","import { GetterTree } from 'vuex'\n\nimport { USERS_STORE } from '@/store/constants'\nimport { IRootState } from '@/store/modules/root/types'\nimport { IUsersGetters, IUsersState } from '@/store/modules/users/types'\n\nexport const getters: GetterTree & IUsersGetters = {\n [USERS_STORE.GETTERS.USER]: (state: IUsersState) => {\n return state.user\n },\n [USERS_STORE.GETTERS.USERS]: (state: IUsersState) => {\n return state.users\n },\n [USERS_STORE.GETTERS.USERS_IS_SUCCESS]: (state: IUsersState) => {\n return state.isSuccess\n },\n [USERS_STORE.GETTERS.USERS_LOADING]: (state: IUsersState) => {\n return state.loading\n },\n [USERS_STORE.GETTERS.USERS_PAGINATION]: (state: IUsersState) => {\n return state.pagination\n },\n}\n","import { MutationTree } from 'vuex'\n\nimport { USERS_STORE } from '@/store/constants'\nimport { IUsersState, TUsersMutations } from '@/store/modules/users/types'\nimport { IPagination } from '@/types/api'\nimport { IUserProfile } from '@/types/user'\n\nexport const mutations: MutationTree & TUsersMutations = {\n [USERS_STORE.MUTATIONS.UPDATE_USER](state: IUsersState, user: IUserProfile) {\n state.user = user\n },\n [USERS_STORE.MUTATIONS.UPDATE_USER_IN_USERS](\n state: IUsersState,\n updatedUser: IUserProfile\n ) {\n state.users = state.users.map((user) => {\n if (user.username === updatedUser.username) {\n return updatedUser\n }\n return user\n })\n },\n [USERS_STORE.MUTATIONS.UPDATE_USERS](\n state: IUsersState,\n users: IUserProfile[]\n ) {\n state.users = users\n },\n [USERS_STORE.MUTATIONS.UPDATE_USERS_LOADING](\n state: IUsersState,\n loading: boolean\n ) {\n state.loading = loading\n },\n [USERS_STORE.MUTATIONS.UPDATE_USERS_PAGINATION](\n state: IUsersState,\n pagination: IPagination\n ) {\n state.pagination = pagination\n },\n [USERS_STORE.MUTATIONS.UPDATE_IS_SUCCESS](\n state: IUsersState,\n isSuccess: boolean\n ) {\n state.isSuccess = isSuccess\n },\n}\n","import { IUsersState } from '@/store/modules/users/types'\nimport { IPagination } from '@/types/api'\nimport { IUserProfile } from '@/types/user'\n\nexport const usersState: IUsersState = {\n user: {},\n users: [],\n loading: false,\n isSuccess: false,\n pagination: {},\n}\n","import { Module } from 'vuex'\n\nimport { IRootState } from '@/store/modules/root/types'\nimport { actions } from '@/store/modules/users/actions'\nimport { getters } from '@/store/modules/users/getters'\nimport { mutations } from '@/store/modules/users/mutations'\nimport { usersState } from '@/store/modules/users/state'\nimport { IUsersState } from '@/store/modules/users/types'\n\nconst users: Module = {\n state: usersState,\n actions,\n getters,\n mutations,\n}\n\nexport default users\n","import { ActionContext, ActionTree } from 'vuex'\n\nimport authApi from '@/api/authApi'\nimport router from '@/router'\nimport { ROOT_STORE, AUTH_USER_STORE, WORKOUTS_STORE } from '@/store/constants'\nimport { IRootState } from '@/store/modules/root/types'\nimport { WorkoutsMutations } from '@/store/modules/workouts/enums'\nimport {\n IWorkoutsActions,\n IWorkoutsState,\n} from '@/store/modules/workouts/types'\nimport {\n IWorkout,\n IWorkoutForm,\n IWorkoutPayload,\n TWorkoutsPayload,\n} from '@/types/workouts'\nimport { handleError } from '@/utils'\n\nconst getWorkouts = (\n context: ActionContext,\n payload: TWorkoutsPayload,\n target: WorkoutsMutations\n): void => {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n authApi\n .get('workouts', {\n params: payload,\n })\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(WORKOUTS_STORE.MUTATIONS[target], res.data.data.workouts)\n if (target === WorkoutsMutations['SET_USER_WORKOUTS']) {\n context.commit(\n WORKOUTS_STORE.MUTATIONS.SET_WORKOUTS_PAGINATION,\n res.data.pagination\n )\n }\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n}\n\nexport const actions: ActionTree &\n IWorkoutsActions = {\n [WORKOUTS_STORE.ACTIONS.GET_CALENDAR_WORKOUTS](\n context: ActionContext,\n payload: TWorkoutsPayload\n ): void {\n context.commit(WORKOUTS_STORE.MUTATIONS.EMPTY_CALENDAR_WORKOUTS)\n getWorkouts(context, payload, WorkoutsMutations['SET_CALENDAR_WORKOUTS'])\n },\n [WORKOUTS_STORE.ACTIONS.GET_USER_WORKOUTS](\n context: ActionContext,\n payload: TWorkoutsPayload\n ): void {\n getWorkouts(context, payload, WorkoutsMutations['SET_USER_WORKOUTS'])\n },\n [WORKOUTS_STORE.ACTIONS.GET_TIMELINE_WORKOUTS](\n context: ActionContext,\n payload: TWorkoutsPayload\n ): void {\n getWorkouts(context, payload, WorkoutsMutations['SET_TIMELINE_WORKOUTS'])\n },\n [WORKOUTS_STORE.ACTIONS.GET_MORE_TIMELINE_WORKOUTS](\n context: ActionContext,\n payload: TWorkoutsPayload\n ): void {\n getWorkouts(context, payload, WorkoutsMutations['ADD_TIMELINE_WORKOUTS'])\n },\n [WORKOUTS_STORE.ACTIONS.GET_WORKOUT_DATA](\n context: ActionContext,\n payload: IWorkoutPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING, true)\n const segmentUrl = payload.segmentId ? `/segment/${payload.segmentId}` : ''\n authApi\n .get(`workouts/${payload.workoutId}`)\n .then((res) => {\n const workout: IWorkout = res.data.data.workouts[0]\n if (res.data.status === 'success') {\n if (\n payload.segmentId &&\n (workout.segments.length === 0 ||\n !workout.segments[+payload.segmentId - 1])\n ) {\n throw new Error('WORKOUT_NOT_FOUND')\n }\n context.commit(\n WORKOUTS_STORE.MUTATIONS.SET_WORKOUT,\n res.data.data.workouts[0]\n )\n if (res.data.data.workouts[0].with_gpx) {\n authApi\n .get(`workouts/${payload.workoutId}/chart_data${segmentUrl}`)\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_CHART_DATA,\n res.data.data.chart_data\n )\n }\n })\n authApi\n .get(`workouts/${payload.workoutId}/gpx${segmentUrl}`)\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_GPX,\n res.data.data.gpx\n )\n }\n })\n }\n } else {\n context.commit(WORKOUTS_STORE.MUTATIONS.EMPTY_WORKOUT)\n handleError(context, null)\n }\n })\n .catch((error) => {\n context.commit(WORKOUTS_STORE.MUTATIONS.EMPTY_WORKOUT)\n handleError(context, error)\n })\n .finally(() =>\n context.commit(WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING, false)\n )\n },\n [WORKOUTS_STORE.ACTIONS.DELETE_WORKOUT](\n context: ActionContext,\n payload: IWorkoutPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING, true)\n authApi\n .delete(`workouts/${payload.workoutId}`)\n .then(() => {\n context.commit(WORKOUTS_STORE.MUTATIONS.EMPTY_WORKOUT)\n context.dispatch(AUTH_USER_STORE.ACTIONS.GET_USER_PROFILE)\n router.push('/')\n })\n .catch((error) => {\n handleError(context, error)\n })\n .finally(() =>\n context.commit(WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING, false)\n )\n },\n [WORKOUTS_STORE.ACTIONS.EDIT_WORKOUT](\n context: ActionContext,\n payload: IWorkoutPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING, true)\n authApi\n .patch(`workouts/${payload.workoutId}`, payload.data)\n .then(() => {\n context.dispatch(AUTH_USER_STORE.ACTIONS.GET_USER_PROFILE)\n context\n .dispatch(WORKOUTS_STORE.ACTIONS.GET_WORKOUT_DATA, {\n workoutId: payload.workoutId,\n })\n .then(() => {\n router.push({\n name: 'Workout',\n params: { workoutId: payload.workoutId },\n })\n })\n })\n .catch((error) => {\n handleError(context, error)\n })\n .finally(() =>\n context.commit(WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING, false)\n )\n },\n [WORKOUTS_STORE.ACTIONS.ADD_WORKOUT](\n context: ActionContext,\n payload: IWorkoutForm\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING, true)\n if (!payload.file) {\n throw new Error('No file part')\n }\n const form = new FormData()\n form.append('file', payload.file)\n form.append(\n 'data',\n `{\"sport_id\": ${payload.sport_id}, \"notes\": \"${payload.notes}\"}`\n )\n authApi\n .post('workouts', form, {\n headers: {\n 'content-type': 'multipart/form-data',\n },\n })\n .then((res) => {\n if (res.data.status === 'created') {\n context.dispatch(AUTH_USER_STORE.ACTIONS.GET_USER_PROFILE)\n const workout: IWorkout = res.data.data.workouts[0]\n router.push(\n res.data.data.workouts.length === 1\n ? `/workouts/${workout.id}`\n : '/'\n )\n }\n })\n .catch((error) => {\n handleError(context, error)\n })\n .finally(() =>\n context.commit(WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING, false)\n )\n },\n [WORKOUTS_STORE.ACTIONS.ADD_WORKOUT_WITHOUT_GPX](\n context: ActionContext,\n payload: IWorkoutForm\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING, true)\n authApi\n .post('workouts/no_gpx', payload)\n .then((res) => {\n if (res.data.status === 'created') {\n context.dispatch(AUTH_USER_STORE.ACTIONS.GET_USER_PROFILE)\n const workout: IWorkout = res.data.data.workouts[0]\n router.push(`/workouts/${workout.id}`)\n }\n })\n .catch((error) => {\n handleError(context, error)\n })\n .finally(() =>\n context.commit(WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING, false)\n )\n },\n}\n","import { GetterTree } from 'vuex'\n\nimport { WORKOUTS_STORE } from '@/store/constants'\nimport { IRootState } from '@/store/modules/root/types'\nimport {\n IWorkoutsGetters,\n IWorkoutsState,\n} from '@/store/modules/workouts/types'\n\nexport const getters: GetterTree &\n IWorkoutsGetters = {\n [WORKOUTS_STORE.GETTERS.CALENDAR_WORKOUTS]: (state: IWorkoutsState) => {\n return state.calendar_workouts\n },\n [WORKOUTS_STORE.GETTERS.TIMELINE_WORKOUTS]: (state: IWorkoutsState) => {\n return state.timeline_workouts\n },\n [WORKOUTS_STORE.GETTERS.USER_WORKOUTS]: (state: IWorkoutsState) => {\n return state.user_workouts\n },\n [WORKOUTS_STORE.GETTERS.WORKOUT_DATA]: (state: IWorkoutsState) => {\n return state.workoutData\n },\n [WORKOUTS_STORE.GETTERS.WORKOUTS_PAGINATION]: (state: IWorkoutsState) => {\n return state.pagination\n },\n}\n","import { MutationTree } from 'vuex'\n\nimport { WORKOUTS_STORE } from '@/store/constants'\nimport {\n IWorkoutsState,\n TWorkoutsMutations,\n} from '@/store/modules/workouts/types'\nimport { IPagination } from '@/types/api'\nimport { IWorkout, IWorkoutApiChartData } from '@/types/workouts'\n\nexport const mutations: MutationTree & TWorkoutsMutations = {\n [WORKOUTS_STORE.MUTATIONS.ADD_TIMELINE_WORKOUTS](\n state: IWorkoutsState,\n workouts: IWorkout[]\n ) {\n state.timeline_workouts = state.timeline_workouts.concat(workouts)\n },\n [WORKOUTS_STORE.MUTATIONS.SET_CALENDAR_WORKOUTS](\n state: IWorkoutsState,\n workouts: IWorkout[]\n ) {\n state.calendar_workouts = workouts\n },\n [WORKOUTS_STORE.MUTATIONS.SET_TIMELINE_WORKOUTS](\n state: IWorkoutsState,\n workouts: IWorkout[]\n ) {\n state.timeline_workouts = workouts\n },\n [WORKOUTS_STORE.MUTATIONS.SET_USER_WORKOUTS](\n state: IWorkoutsState,\n workouts: IWorkout[]\n ) {\n state.user_workouts = workouts\n },\n [WORKOUTS_STORE.MUTATIONS.SET_WORKOUTS_PAGINATION](\n state: IWorkoutsState,\n pagination: IPagination\n ) {\n state.pagination = pagination\n },\n [WORKOUTS_STORE.MUTATIONS.SET_WORKOUT](\n state: IWorkoutsState,\n workout: IWorkout\n ) {\n state.workoutData.workout = workout\n },\n [WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_CHART_DATA](\n state: IWorkoutsState,\n chartData: IWorkoutApiChartData[]\n ) {\n state.workoutData.chartData = chartData\n },\n [WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_GPX](\n state: IWorkoutsState,\n gpx: string\n ) {\n state.workoutData.gpx = gpx\n },\n [WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING](\n state: IWorkoutsState,\n loading: boolean\n ) {\n state.workoutData.loading = loading\n },\n [WORKOUTS_STORE.MUTATIONS.EMPTY_CALENDAR_WORKOUTS](state: IWorkoutsState) {\n state.calendar_workouts = []\n },\n [WORKOUTS_STORE.MUTATIONS.EMPTY_WORKOUTS](state: IWorkoutsState) {\n state.calendar_workouts = []\n state.user_workouts = []\n state.timeline_workouts = []\n },\n [WORKOUTS_STORE.MUTATIONS.EMPTY_WORKOUT](state: IWorkoutsState) {\n state.workoutData = {\n gpx: '',\n loading: false,\n workout: {},\n chartData: [],\n }\n },\n}\n","import { IWorkoutsState } from '@/store/modules/workouts/types'\nimport { IPagination } from '@/types/api'\nimport { IWorkout } from '@/types/workouts'\n\nexport const workoutsState: IWorkoutsState = {\n calendar_workouts: [],\n timeline_workouts: [],\n pagination: {},\n user_workouts: [],\n workoutData: {\n gpx: '',\n loading: false,\n workout: {},\n chartData: [],\n },\n}\n","import { Module } from 'vuex'\n\nimport { IRootState } from '@/store/modules/root/types'\nimport { actions } from '@/store/modules/workouts/actions'\nimport { getters } from '@/store/modules/workouts/getters'\nimport { mutations } from '@/store/modules/workouts/mutations'\nimport { workoutsState } from '@/store/modules/workouts/state'\nimport { IWorkoutsState } from '@/store/modules/workouts/types'\n\nconst workouts: Module = {\n state: workoutsState,\n actions,\n getters,\n mutations,\n}\n\nexport default workouts\n","import { Module, ModuleTree } from 'vuex'\n\nimport authUserModule from '@/store/modules/authUser'\nimport { actions } from '@/store/modules/root/actions'\nimport { getters } from '@/store/modules/root/getters'\nimport { mutations } from '@/store/modules/root/mutations'\nimport { state } from '@/store/modules/root/state'\nimport { IRootState } from '@/store/modules/root/types'\nimport sportsModule from '@/store/modules/sports'\nimport statsModule from '@/store/modules/statistics'\nimport usersModule from '@/store/modules/users'\nimport workoutsModule from '@/store/modules/workouts'\n\nconst modules: ModuleTree = {\n authUserModule,\n sportsModule,\n statsModule,\n usersModule,\n workoutsModule,\n}\n\nconst root: Module = {\n state,\n actions,\n getters,\n mutations,\n modules,\n}\n\nexport default root\n","import { createStore } from 'vuex'\n\nimport root from '@/store/modules/root'\nimport { IRootState } from '@/store/modules/root/types'\n\nconst store = createStore(root)\n\nexport default store\n","export enum WorkoutsActions {\n ADD_WORKOUT = 'ADD_WORKOUT',\n ADD_WORKOUT_WITHOUT_GPX = 'ADD_WORKOUT_WITHOUT_GPX',\n DELETE_WORKOUT = 'DELETE_WORKOUT',\n EDIT_WORKOUT = 'EDIT_WORKOUT',\n GET_CALENDAR_WORKOUTS = 'GET_CALENDAR_WORKOUTS',\n GET_USER_WORKOUTS = 'GET_USER_WORKOUTS',\n GET_TIMELINE_WORKOUTS = 'GET_TIMELINE_WORKOUTS',\n GET_MORE_TIMELINE_WORKOUTS = 'GET_MORE_TIMELINE_WORKOUTS',\n GET_WORKOUT_DATA = 'GET_WORKOUT_DATA',\n}\n\nexport enum WorkoutsGetters {\n CALENDAR_WORKOUTS = 'CALENDAR_WORKOUTS',\n TIMELINE_WORKOUTS = 'TIMELINE_WORKOUTS',\n USER_WORKOUTS = 'USER_WORKOUTS',\n WORKOUT_DATA = 'WORKOUT_DATA',\n WORKOUTS_PAGINATION = 'WORKOUTS_PAGINATION',\n}\n\nexport enum WorkoutsMutations {\n ADD_TIMELINE_WORKOUTS = 'ADD_TIMELINE_WORKOUTS',\n EMPTY_WORKOUTS = 'EMPTY_WORKOUTS',\n EMPTY_CALENDAR_WORKOUTS = 'EMPTY_CALENDAR_WORKOUTS',\n EMPTY_WORKOUT = 'EMPTY_WORKOUT',\n SET_CALENDAR_WORKOUTS = 'SET_CALENDAR_WORKOUTS',\n SET_TIMELINE_WORKOUTS = 'SET_TIMELINE_WORKOUTS',\n SET_USER_WORKOUTS = 'SET_USER_WORKOUTS',\n SET_WORKOUT = 'SET_WORKOUT',\n SET_WORKOUT_GPX = 'SET_WORKOUT_GPX',\n SET_WORKOUT_CHART_DATA = 'SET_WORKOUT_CHART_DATA',\n SET_WORKOUT_LOADING = 'SET_WORKOUT_LOADING',\n SET_WORKOUTS_PAGINATION = 'SET_WORKOUTS_PAGINATION',\n}\n","import { useStore as VuexStore } from 'vuex'\n\nimport { Store } from '@/store/types'\n\nexport function useStore(): Store {\n return VuexStore() as Store\n}\n","import { LocationQuery } from 'vue-router'\n\nimport { IQueryOptions, TPaginationPayload } from '@/types/api'\n\nexport const sortList: string[] = ['asc', 'desc']\nexport const defaultPage = 1\nexport const defaultPerPage = 10\n\nexport const getNumberQueryValue = (\n queryValue: string | (string | null)[] | null,\n defaultValue: number\n): number => {\n return queryValue && typeof queryValue === 'string' && +queryValue > 0\n ? +queryValue\n : defaultValue\n}\n\nexport const getStringQueryValue = (\n queryValue: string | (string | null)[] | null,\n availableValues: string[],\n defaultValue: string\n): string => {\n return queryValue &&\n typeof queryValue === 'string' &&\n availableValues.includes(queryValue)\n ? queryValue\n : defaultValue\n}\n\nexport const getQuery = (\n locationQuery: LocationQuery,\n orderByList: string[],\n defaultOrderBy: string,\n options?: IQueryOptions\n): TPaginationPayload => {\n const queryOptions = options || {}\n const defaultSort = queryOptions.defaultSort || 'asc'\n const query = {}\n\n query.page = getNumberQueryValue(locationQuery.page, defaultPage)\n query.per_page = getNumberQueryValue(locationQuery.per_page, defaultPerPage)\n query.order = getStringQueryValue(locationQuery.order, sortList, defaultSort)\n query.order_by = getStringQueryValue(\n locationQuery.order_by,\n orderByList,\n defaultOrderBy\n )\n if (typeof locationQuery.q === 'string') {\n query.q = locationQuery.q\n } else {\n delete query.q\n }\n\n return query\n}\n\nexport const workoutsPayloadKeys = [\n 'from',\n 'to',\n 'ave_speed_from',\n 'ave_speed_to',\n 'max_speed_from',\n 'max_speed_to',\n 'distance_from',\n 'distance_to',\n 'duration_from',\n 'duration_to',\n 'sport_id',\n]\n\nconst getRange = (stop: number, start = 1): number[] => {\n return Array.from({ length: stop - start + 1 }, (_, i) => start + i)\n}\n\nexport const rangePagination = (\n pages: number,\n currentPage: number\n): (string | number)[] => {\n if (pages < 0) {\n return []\n }\n\n if (pages < 9) {\n return getRange(pages)\n }\n\n let pagination: (string | number)[] = [1, 2]\n if (currentPage < 4) {\n pagination = pagination.concat([3, 4, 5])\n } else if (currentPage < 6) {\n pagination = pagination.concat(getRange(currentPage + 2, 3))\n } else {\n pagination = pagination.concat(['...'])\n if (currentPage < pages - 2) {\n pagination = pagination.concat(getRange(currentPage + 2, currentPage - 2))\n }\n }\n if (currentPage + 2 <= pages - 2) {\n pagination = pagination.concat(['...'])\n pagination = pagination.concat(getRange(pages, pages - 1))\n } else {\n if (\n pagination[pagination.length - 1] !== '...' &&\n pagination[pagination.length - 1] >= pages - 2 &&\n pagination[pagination.length - 1] < pages\n ) {\n pagination = pagination.concat(\n getRange(pages, +pagination[pagination.length - 1] + 1)\n )\n } else {\n pagination = pagination.concat(\n getRange(\n pages,\n currentPage < pages - 3 ? currentPage + 3 : currentPage - 5\n )\n )\n }\n }\n\n return pagination\n}\n","import {\n addDays,\n addMonths,\n addYears,\n endOfMonth,\n endOfWeek,\n format,\n startOfMonth,\n startOfWeek,\n startOfYear,\n} from 'date-fns'\nimport { utcToZonedTime } from 'date-fns-tz'\n\nexport const getStartDate = (\n duration: string,\n day: Date,\n weekStartingMonday: boolean\n): Date => {\n switch (duration) {\n case 'week':\n return startOfWeek(day, { weekStartsOn: weekStartingMonday ? 1 : 0 })\n case 'year':\n return startOfYear(day)\n case 'month':\n return startOfMonth(day)\n default:\n throw new Error(\n `Invalid duration, expected: \"week\", \"month\", \"year\", got: \"${duration}\"`\n )\n }\n}\n\nexport const incrementDate = (duration: string, day: Date): Date => {\n switch (duration) {\n case 'week':\n return addDays(day, 7)\n case 'year':\n return addYears(day, 1)\n case 'month':\n return addMonths(day, 1)\n default:\n throw new Error(\n `Invalid duration, expected: \"week\", \"month\", \"year\", got: \"${duration}\"`\n )\n }\n}\n\nexport const getDateWithTZ = (dateInUTC: string, tz: string): Date => {\n return utcToZonedTime(new Date(dateInUTC), tz)\n}\n\nexport const getCalendarStartAndEnd = (\n date: Date,\n weekStartingMonday: boolean\n): Record => {\n const monthStart = startOfMonth(date)\n const monthEnd = endOfMonth(date)\n const weekStartsOn = weekStartingMonday ? 1 : 0\n return {\n start: startOfWeek(monthStart, { weekStartsOn }),\n end: endOfWeek(monthEnd, { weekStartsOn }),\n }\n}\n\nexport const formatWorkoutDate = (\n dateTime: Date,\n dateFormat: string | null = null,\n timeFormat: string | null = null\n): Record => {\n if (!dateFormat) {\n dateFormat = 'yyyy/MM/dd'\n }\n if (!timeFormat) {\n timeFormat = 'HH:mm'\n }\n return {\n workout_date: format(dateTime, dateFormat),\n workout_time: format(dateTime, timeFormat),\n }\n}\n","const suffixes = ['bytes', 'KB', 'MB', 'GB', 'TB']\n\nexport const getReadableFileSize = (\n fileSize: number,\n asText = true\n): string | Record => {\n const i = Math.floor(Math.log(fileSize) / Math.log(1024))\n if (!fileSize) {\n return asText ? '0 bytes' : { size: '0', suffix: 'bytes' }\n }\n const size = (fileSize / Math.pow(1024, i)).toFixed(1)\n const suffix = suffixes[i]\n return asText ? `${size}${suffix}` : { size, suffix }\n}\n\nexport const getFileSizeInMB = (fileSize: number): number => {\n const value = fileSize / 1048576\n return (!fileSize && 0) || +value.toFixed(2)\n}\n","import { AxiosError } from 'axios'\nimport { ActionContext } from 'vuex'\n\nimport { ROOT_STORE } from '@/store/constants'\nimport { IAuthUserState } from '@/store/modules/authUser/types'\nimport { IRootState } from '@/store/modules/root/types'\nimport { ISportsState } from '@/store/modules/sports/types'\nimport { IStatisticsState } from '@/store/modules/statistics/types'\nimport { IUsersState } from '@/store/modules/users/types'\nimport { IWorkoutsState } from '@/store/modules/workouts/types'\n\nexport const getApiUrl = (): string => {\n return process.env.NODE_ENV === 'production'\n ? '/api/'\n : `${process.env.VUE_APP_API_URL}/api/`\n}\n\nexport const handleError = (\n context:\n | ActionContext\n | ActionContext\n | ActionContext\n | ActionContext\n | ActionContext\n | ActionContext,\n error: AxiosError | null,\n msg = 'UNKNOWN'\n): void => {\n const errorMessages = !error\n ? msg\n : error.response\n ? error.response.status === 413\n ? 'file size is greater than the allowed size'\n : error.response.data.message\n ? error.response.data.message\n : msg\n : error.message\n ? error.message\n : msg\n context.commit(\n ROOT_STORE.MUTATIONS.SET_ERROR_MESSAGES,\n errorMessages.includes('\\n')\n ? errorMessages\n .split('\\n')\n .filter((m: string) => m !== '')\n .map((m: string) => `api.ERROR.${m}`)\n : `api.ERROR.${errorMessages}`\n )\n}\n","/* eslint-disable import/no-duplicates */\nimport { Locale } from 'date-fns'\nimport { enUS, fr } from 'date-fns/locale'\n\nimport createI18n from '@/i18n'\n\nexport const localeFromLanguage: Record = {\n en: enUS,\n fr: fr,\n}\n\nexport const languageLabels: Record = {\n en: 'English',\n fr: 'Français',\n}\n\nconst { availableLocales } = createI18n.global\nexport const availableLanguages = availableLocales.map((l) => {\n return { label: languageLabels[l], value: l }\n})\n","import { ISport, ITranslatedSport, TActiveStatus } from '@/types/sports'\nimport { IWorkout } from '@/types/workouts'\n\nexport const sportColors: Record = {\n 'Cycling (Sport)': '#4c9792',\n 'Cycling (Transport)': '#88af98',\n Hiking: '#bb757c',\n 'Mountain Biking': '#d4b371',\n 'Mountain Biking (Electric)': '#fc9d6f',\n Rowing: '#fcce72',\n Running: '#835b83',\n 'Skiing (Alpine)': '#67a4bd',\n 'Skiing (Cross Country)': '#9498d0',\n Snowshoes: '#5780a8',\n Trail: '#09a98a',\n Walking: '#838383',\n}\n\nexport const sportIdColors = (sports: ISport[]): Record => {\n const colors: Record = {}\n sports.map(\n (sport) =>\n (colors[sport.id] = sport.color ? sport.color : sportColors[sport.label])\n )\n return colors\n}\n\nconst sortSports = (a: ITranslatedSport, b: ITranslatedSport): number => {\n const sportATranslatedLabel = a.translatedLabel.toLowerCase()\n const sportBTranslatedLabel = b.translatedLabel.toLowerCase()\n return sportATranslatedLabel > sportBTranslatedLabel\n ? 1\n : sportATranslatedLabel < sportBTranslatedLabel\n ? -1\n : 0\n}\n\nexport const translateSports = (\n sports: ISport[],\n t: CallableFunction,\n activeStatus: TActiveStatus = 'all',\n sportsToInclude: number[] = []\n): ITranslatedSport[] =>\n sports\n .filter((sport) =>\n activeStatus === 'all'\n ? true\n : sportsToInclude.includes(sport.id) || sport[activeStatus]\n )\n .map((sport) => ({\n ...sport,\n translatedLabel: t(`sports.${sport.label}.LABEL`),\n }))\n .sort(sortSports)\n\nexport const getSportLabel = (workout: IWorkout, sports: ISport[]): string => {\n return sports\n .filter((sport) => sport.id === workout.sport_id)\n .map((sport) => sport.label)[0]\n}\n\nexport const getSportColor = (\n workout: IWorkout,\n sports: ISport[]\n): string | null => {\n return sports\n .filter((sport) => sport.id === workout.sport_id)\n .map((sport) => sport.color)[0]\n}\n","import {\n addMonths,\n addWeeks,\n addYears,\n endOfMonth,\n endOfWeek,\n endOfYear,\n format,\n startOfMonth,\n startOfWeek,\n startOfYear,\n subMonths,\n subWeeks,\n subYears,\n} from 'date-fns'\n\nimport { IChartDataset } from '@/types/chart'\nimport { ISport } from '@/types/sports'\nimport {\n IStatisticsChartData,\n IStatisticsDateParams,\n TStatisticsDatasetKeys,\n TStatisticsDatasets,\n TStatisticsFromApi,\n} from '@/types/statistics'\nimport { incrementDate, getStartDate } from '@/utils/dates'\nimport { sportColors } from '@/utils/sports'\nimport { convertStatsDistance } from '@/utils/units'\n\nconst dateFormats: Record> = {\n week: {\n api: 'yyyy-MM-dd',\n chart: 'dd/MM/yyyy',\n },\n month: {\n api: 'yyyy-MM',\n chart: 'MM/yyyy',\n },\n year: {\n api: 'yyyy',\n chart: 'yyyy',\n },\n}\n\nexport const datasetKeys: TStatisticsDatasetKeys[] = [\n 'average_speed',\n 'nb_workouts',\n 'total_duration',\n 'total_distance',\n 'total_ascent',\n 'total_descent',\n]\n\nexport const getDateKeys = (\n params: IStatisticsDateParams,\n weekStartingMonday: boolean\n): Date[] => {\n const days = []\n for (\n let day = getStartDate(params.duration, params.start, weekStartingMonday);\n day <= params.end;\n day = incrementDate(params.duration, day)\n ) {\n days.push(day)\n }\n return days\n}\n\nconst getStatisticsChartDataset = (\n sportLabel: string,\n color: string,\n isLineChart = false\n): IChartDataset => {\n const dataset: IChartDataset = {\n label: sportLabel,\n backgroundColor: [color],\n data: [],\n }\n if (isLineChart) {\n dataset.type = 'line'\n dataset.borderColor = [color]\n dataset.spanGaps = true\n }\n return dataset\n}\n\nexport const getDatasets = (displayedSports: ISport[]): TStatisticsDatasets => {\n const datasets: TStatisticsDatasets = {\n average_speed: [],\n nb_workouts: [],\n total_distance: [],\n total_duration: [],\n total_ascent: [],\n total_descent: [],\n }\n displayedSports.map((sport) => {\n const color = sport.color ? sport.color : sportColors[sport.label]\n datasets.average_speed.push(\n getStatisticsChartDataset(sport.label, color, true)\n )\n datasets.nb_workouts.push(getStatisticsChartDataset(sport.label, color))\n datasets.total_distance.push(getStatisticsChartDataset(sport.label, color))\n datasets.total_duration.push(getStatisticsChartDataset(sport.label, color))\n datasets.total_ascent.push(getStatisticsChartDataset(sport.label, color))\n datasets.total_descent.push(getStatisticsChartDataset(sport.label, color))\n })\n return datasets\n}\n\nexport const convertStatsValue = (\n datasetKey: TStatisticsDatasetKeys,\n value: number,\n useImperialUnits: boolean\n): number => {\n switch (datasetKey) {\n case 'average_speed':\n case 'total_distance':\n case 'total_ascent':\n case 'total_descent':\n return convertStatsDistance(\n ['average_speed', 'total_distance'].includes(datasetKey) ? 'km' : 'm',\n value,\n useImperialUnits\n )\n default:\n case 'nb_workouts':\n case 'total_duration':\n return value\n }\n}\n\nexport const formatStats = (\n params: IStatisticsDateParams,\n weekStartingMonday: boolean,\n sports: ISport[],\n displayedSportsId: number[],\n apiStats: TStatisticsFromApi,\n useImperialUnits: boolean\n): IStatisticsChartData => {\n const dayKeys = getDateKeys(params, weekStartingMonday)\n const dateFormat = dateFormats[params.duration]\n const displayedSports = sports.filter((sport) =>\n displayedSportsId.includes(sport.id)\n )\n const labels: string[] = []\n const datasets = getDatasets(displayedSports)\n const sportsId: Record = {}\n displayedSports.map(\n (displayedSport) => (sportsId[displayedSport.label] = displayedSport.id)\n )\n\n dayKeys.map((key) => {\n const date: string = format(key, dateFormat.api)\n const label: string = format(key, dateFormat.chart)\n labels.push(label)\n datasetKeys.map((datasetKey) => {\n datasets[datasetKey].map((dataset) => {\n dataset.data.push(\n apiStats !== {} &&\n date in apiStats &&\n sportsId[dataset.label] in apiStats[date]\n ? convertStatsValue(\n datasetKey,\n apiStats[date][sportsId[dataset.label]][datasetKey],\n useImperialUnits\n )\n : datasetKey === 'average_speed'\n ? null\n : 0\n )\n })\n })\n })\n return {\n labels,\n datasets,\n }\n}\n\nexport const getStatsDateParams = (\n date: Date,\n timeFrame: string,\n weekStartingMonday: boolean\n): IStatisticsDateParams => {\n const weekStartsOn = weekStartingMonday ? 1 : 0\n const start =\n timeFrame === 'year'\n ? startOfYear(subYears(date, 9))\n : timeFrame === 'week'\n ? startOfWeek(subMonths(date, 2), { weekStartsOn })\n : startOfMonth(subMonths(date, 11)) // month\n const end =\n timeFrame === 'year'\n ? endOfYear(date)\n : timeFrame === 'week'\n ? endOfWeek(date, { weekStartsOn })\n : endOfMonth(date) // month\n return {\n duration: timeFrame,\n end,\n start,\n }\n}\n\nexport const updateChartParams = (\n chartParams: IStatisticsDateParams,\n backward: boolean,\n weekStartingMonday: boolean\n): IStatisticsDateParams => {\n const { duration, start, end } = chartParams\n const weekStartsOn = weekStartingMonday ? 1 : 0\n return {\n duration,\n end:\n duration === 'year'\n ? endOfYear(backward ? subYears(end, 1) : addYears(end, 1))\n : duration === 'week'\n ? endOfWeek(backward ? subWeeks(end, 1) : addWeeks(end, 1), {\n weekStartsOn,\n })\n : endOfMonth(backward ? subMonths(end, 1) : addMonths(end, 1)),\n start:\n duration === 'year'\n ? startOfYear(backward ? subYears(start, 1) : addYears(start, 1))\n : duration === 'week'\n ? startOfWeek(backward ? subWeeks(start, 1) : addWeeks(start, 1), {\n weekStartsOn,\n })\n : startOfMonth(backward ? subMonths(start, 1) : addMonths(start, 1)),\n }\n}\n","import { IUnit, TFactor, TUnit } from '@/types/units'\n\nexport const units: Record = {\n ft: {\n unit: 'ft',\n system: 'imperial',\n multiplier: 1,\n defaultTarget: 'm',\n },\n mi: {\n unit: 'mi',\n system: 'imperial',\n multiplier: 5280,\n defaultTarget: 'km',\n },\n m: {\n unit: 'm',\n system: 'metric',\n multiplier: 1,\n defaultTarget: 'ft',\n },\n km: {\n unit: 'm',\n system: 'metric',\n multiplier: 1000,\n defaultTarget: 'mi',\n },\n}\n\nconst factors: TFactor = {\n metric: {\n imperial: 3.280839895,\n metric: 1,\n },\n imperial: {\n metric: 1 / 3.280839895,\n imperial: 1,\n },\n}\n\nexport const convertDistance = (\n distance: number,\n from: TUnit,\n to: TUnit,\n digits: number | null = 3\n): number => {\n const unitFrom = units[from]\n const unitTo = units[to]\n const convertedDistance =\n (distance * unitFrom.multiplier * factors[unitFrom.system][unitTo.system]) /\n unitTo.multiplier\n if (digits !== null) {\n return parseFloat(convertedDistance.toFixed(digits))\n }\n return convertedDistance\n}\n\nexport const convertStatsDistance = (\n unitFrom: TUnit,\n value: number,\n useImperialUnits: boolean\n): number => {\n const unitTo = useImperialUnits ? units[unitFrom].defaultTarget : unitFrom\n return useImperialUnits ? convertDistance(value, unitFrom, unitTo, 2) : value\n}\n","import {\n IWorkout,\n IWorkoutApiChartData,\n IWorkoutChartData,\n TCoordinates,\n TWorkoutDatasets,\n} from '@/types/workouts'\nimport { convertStatsDistance } from '@/utils/units'\n\nexport const getDatasets = (\n chartData: IWorkoutApiChartData[],\n t: CallableFunction,\n useImperialUnits: boolean\n): IWorkoutChartData => {\n const datasets: TWorkoutDatasets = {\n speed: {\n label: t('workouts.SPEED'),\n backgroundColor: ['#FFFFFF'],\n borderColor: ['#8884d8'],\n borderWidth: 2,\n data: [],\n yAxisID: 'ySpeed',\n },\n elevation: {\n label: t('workouts.ELEVATION'),\n backgroundColor: ['#e5e5e5'],\n borderColor: ['#cccccc'],\n borderWidth: 1,\n fill: true,\n data: [],\n yAxisID: 'yElevation',\n },\n }\n const distance_labels: unknown[] = []\n const duration_labels: unknown[] = []\n const coordinates: TCoordinates[] = []\n\n chartData.map((data) => {\n distance_labels.push(data.distance)\n duration_labels.push(data.duration)\n datasets.speed.data.push(\n convertStatsDistance('km', data.speed, useImperialUnits)\n )\n datasets.elevation.data.push(\n convertStatsDistance('m', data.elevation, useImperialUnits)\n )\n coordinates.push({ latitude: data.latitude, longitude: data.longitude })\n })\n\n return { distance_labels, duration_labels, datasets, coordinates }\n}\n\nexport const getDonutDatasets = (\n workouts: IWorkout[]\n): Record> => {\n const total = workouts.length\n if (total === 0) {\n return {}\n }\n\n const datasets: Record> = {}\n workouts.map((workout) => {\n if (!datasets[workout.sport_id]) {\n datasets[workout.sport_id] = {\n count: 0,\n percentage: 0,\n }\n }\n datasets[workout.sport_id].count += 1\n datasets[workout.sport_id].percentage =\n datasets[workout.sport_id].count / total\n })\n\n return datasets\n}\n\nexport const defaultOrder = {\n order: 'desc',\n order_by: 'workout_date',\n}\n","\n\n\n","import { render } from \"./Card.vue?vue&type=template&id=ad374c24\"\nconst script = {}\n\nimport \"./Card.vue?vue&type=style&index=0&id=ad374c24&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import script from \"./FilterSelects.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./FilterSelects.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./FilterSelects.vue?vue&type=style&index=0&id=72463173&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-72463173\"]])\n\nexport default __exports__","\n\n\n","import { render } from \"./ErrorImg.vue?vue&type=template&id=e620aed4\"\nimport script from \"./ErrorImg.vue?vue&type=script&lang=js\"\nexport * from \"./ErrorImg.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import script from \"./Error.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Error.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./Error.vue?vue&type=style&index=0&id=b60bfa80&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-b60bfa80\"]])\n\nexport default __exports__","import script from \"./NotFound.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./NotFound.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import script from \"./Pagination.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Pagination.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./Pagination.vue?vue&type=style&index=0&id=f38ea1b8&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-f38ea1b8\"]])\n\nexport default __exports__","import { zxcvbnOptions } from '@zxcvbn-ts/core'\n\nexport const setZxcvbnOptions = async (language: string) => {\n const zxcvbnCommonPackage = await import(\n /* webpackChunkName: \"password\" */ '@zxcvbn-ts/language-common'\n )\n const zxcvbnEnPackage = await import(\n /* webpackChunkName: \"password\" */ '@zxcvbn-ts/language-en'\n )\n const zxcvbnFrPackage = await import(\n /* webpackChunkName: \"password\" */ '@zxcvbn-ts/language-fr'\n )\n const zxcvbnLangPackages: Record = {\n en: zxcvbnEnPackage,\n fr: zxcvbnFrPackage,\n }\n const zxcvbnPackage = zxcvbnLangPackages[language]\n const options = {\n graphs: zxcvbnCommonPackage.default.adjacencyGraphs,\n dictionary: {\n ...zxcvbnCommonPackage.default.dictionary,\n ...zxcvbnPackage.default.dictionary,\n },\n }\n zxcvbnOptions.setOptions(options)\n}\n\nexport const getPasswordStrength = (strength: number): string => {\n switch (strength) {\n case 2:\n return 'AVERAGE'\n case 3:\n return 'GOOD'\n case 4:\n return 'STRONG'\n default:\n return 'WEAK'\n }\n}\n","import script from \"./PasswordStength.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./PasswordStength.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./PasswordStength.vue?vue&type=style&index=0&id=79c9693d&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-79c9693d\"]])\n\nexport default __exports__","import script from \"./PasswordInput.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./PasswordInput.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./PasswordInput.vue?vue&type=style&index=0&id=5a126514&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-5a126514\"]])\n\nexport default __exports__","import script from \"./StaticMap.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./StaticMap.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./StaticMap.vue?vue&type=style&index=0&id=6b7e4baf&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, createBlock as _createBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-68a6a495\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"start-chart\" }\nconst _hoisted_2 = { key: 0 }\nconst _hoisted_3 = { key: 1 }\nconst _hoisted_4 = { class: \"chart-radio\" }\nconst _hoisted_5 = [\"checked\"]\nconst _hoisted_6 = [\"checked\"]\nconst _hoisted_7 = [\"checked\"]\nconst _hoisted_8 = { key: 0 }\nconst _hoisted_9 = [\"checked\"]\nconst _hoisted_10 = { key: 1 }\nconst _hoisted_11 = [\"checked\"]\nconst _hoisted_12 = { key: 2 }\nconst _hoisted_13 = [\"checked\"]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_Chart = _resolveComponent(\"Chart\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_ctx.hideChartIfNoData && _ctx.emptyStats)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, _toDisplayString(_ctx.$t('workouts.NO_WORKOUTS')), 1))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"label\", null, [\n _createElementVNode(\"input\", {\n type: \"radio\",\n name: \"total_distance\",\n checked: _ctx.displayedData === 'total_distance',\n onClick: _cache[0] || (_cache[0] = \n//@ts-ignore\n(...args) => (_ctx.updateDisplayData && _ctx.updateDisplayData(...args)))\n }, null, 8, _hoisted_5),\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('workouts.DISTANCE')), 1)\n ]),\n _createElementVNode(\"label\", null, [\n _createElementVNode(\"input\", {\n type: \"radio\",\n name: \"total_duration\",\n checked: _ctx.displayedData === 'total_duration',\n onClick: _cache[1] || (_cache[1] = \n//@ts-ignore\n(...args) => (_ctx.updateDisplayData && _ctx.updateDisplayData(...args)))\n }, null, 8, _hoisted_6),\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('workouts.DURATION')), 1)\n ]),\n _createElementVNode(\"label\", null, [\n _createElementVNode(\"input\", {\n type: \"radio\",\n name: \"nb_workouts\",\n checked: _ctx.displayedData === 'nb_workouts',\n onClick: _cache[2] || (_cache[2] = \n//@ts-ignore\n(...args) => (_ctx.updateDisplayData && _ctx.updateDisplayData(...args)))\n }, null, 8, _hoisted_7),\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('workouts.WORKOUT', 2)), 1)\n ]),\n (_ctx.fullStats)\n ? (_openBlock(), _createElementBlock(\"label\", _hoisted_8, [\n _createElementVNode(\"input\", {\n type: \"radio\",\n name: \"average_speed\",\n checked: _ctx.displayedData === 'average_speed',\n onClick: _cache[3] || (_cache[3] = \n//@ts-ignore\n(...args) => (_ctx.updateDisplayData && _ctx.updateDisplayData(...args)))\n }, null, 8, _hoisted_9),\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('workouts.AVERAGE_SPEED')), 1)\n ]))\n : _createCommentVNode(\"\", true),\n (_ctx.fullStats)\n ? (_openBlock(), _createElementBlock(\"label\", _hoisted_10, [\n _createElementVNode(\"input\", {\n type: \"radio\",\n name: \"total_ascent\",\n checked: _ctx.displayedData === 'total_ascent',\n onClick: _cache[4] || (_cache[4] = \n//@ts-ignore\n(...args) => (_ctx.updateDisplayData && _ctx.updateDisplayData(...args)))\n }, null, 8, _hoisted_11),\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('workouts.ASCENT')), 1)\n ]))\n : _createCommentVNode(\"\", true),\n (_ctx.fullStats)\n ? (_openBlock(), _createElementBlock(\"label\", _hoisted_12, [\n _createElementVNode(\"input\", {\n type: \"radio\",\n name: \"total_descent\",\n checked: _ctx.displayedData === 'total_descent',\n onClick: _cache[5] || (_cache[5] = \n//@ts-ignore\n(...args) => (_ctx.updateDisplayData && _ctx.updateDisplayData(...args)))\n }, null, 8, _hoisted_13),\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('workouts.DESCENT')), 1)\n ]))\n : _createCommentVNode(\"\", true)\n ]),\n (_ctx.labels.length > 0)\n ? (_openBlock(), _createBlock(_component_Chart, {\n key: 0,\n datasets: _ctx.datasets,\n labels: _ctx.labels,\n displayedData: _ctx.displayedData,\n displayedSportIds: _ctx.displayedSportIds,\n fullStats: _ctx.fullStats,\n useImperialUnits: _ctx.user.imperial_units\n }, null, 8, [\"datasets\", \"labels\", \"displayedData\", \"displayedSportIds\", \"fullStats\", \"useImperialUnits\"]))\n : _createCommentVNode(\"\", true)\n ]))\n ]))\n}","export const formatDuration = (\n totalSeconds: number,\n formatWithUnits = false\n): string => {\n let days = '0'\n if (formatWithUnits) {\n days = String(Math.floor(totalSeconds / 86400))\n totalSeconds %= 86400\n }\n const hours = String(Math.floor(totalSeconds / 3600)).padStart(2, '0')\n totalSeconds %= 3600\n const minutes = String(Math.floor(totalSeconds / 60)).padStart(2, '0')\n const seconds = String(totalSeconds % 60).padStart(2, '0')\n if (formatWithUnits) {\n return `${days === '0' ? '' : `${days}d `}${\n hours === '00' ? '' : `${hours}h `\n }${minutes}m ${seconds}s`\n }\n return `${hours === '00' ? '' : `${hours}:`}${minutes}:${seconds}`\n}\n","import { TStatisticsDatasetKeys } from '@/types/statistics'\nimport { formatDuration } from '@/utils/duration'\nimport { units } from '@/utils/units'\n\nexport const formatTooltipValue = (\n displayedData: TStatisticsDatasetKeys,\n value: number,\n useImperialUnits: boolean,\n formatWithUnits = true\n): string => {\n const unitFrom = 'km'\n const unitTo = useImperialUnits ? units[unitFrom].defaultTarget : unitFrom\n switch (displayedData) {\n case 'average_speed':\n return `${value.toFixed(2)} ${unitTo}/h`\n case 'total_duration':\n return formatDuration(value, formatWithUnits)\n case 'total_distance':\n return `${value.toFixed(2)} ${unitTo}`\n case 'total_ascent':\n case 'total_descent':\n return `${(value / 1000).toFixed(2)} ${unitTo}`\n default:\n return value.toString()\n }\n}\n","import { render } from \"./Chart.vue?vue&type=template&id=7eb1257c&ts=true\"\nimport script from \"./Chart.vue?vue&type=script&lang=ts\"\nexport * from \"./Chart.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./index.vue?vue&type=template&id=68a6a495&scoped=true&ts=true\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\nimport \"./index.vue?vue&type=style&index=0&id=68a6a495&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-68a6a495\"]])\n\nexport default __exports__","import script from \"./UserHeader.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserHeader.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserHeader.vue?vue&type=style&index=0&id=20291951&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-20291951\"]])\n\nexport default __exports__","import script from \"./UserInfos.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserInfos.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserInfos.vue?vue&type=style&index=0&id=1b6fd7df&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-1b6fd7df\"]])\n\nexport default __exports__","import script from \"./UserAuthForm.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserAuthForm.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserAuthForm.vue?vue&type=style&index=0&id=26d3a7be&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-26d3a7be\"]])\n\nexport default __exports__","import script from \"./UserPicture.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserPicture.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserPicture.vue?vue&type=style&index=0&id=26bea286&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n\n\n","import { render } from \"./NoWorkouts.vue?vue&type=template&id=4b4d15fb&scoped=true\"\nconst script = {}\n\nimport \"./NoWorkouts.vue?vue&type=style&index=0&id=4b4d15fb&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-4b4d15fb\"]])\n\nexport default __exports__","var map = {\n\t\"./en/en.ts\": 9350,\n\t\"./fr/fr.ts\": 1079\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 4612;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","var getProto = Object.getPrototypeOf ? function(obj) { return Object.getPrototypeOf(obj); } : function(obj) { return obj.__proto__; };\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach(function(key) { def[key] = function() { return value[key]; }; });\n\t}\n\tdef['default'] = function() { return value; };\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"static/js/\" + ({\"24\":\"reset\",\"193\":\"statistics\",\"328\":\"admin\",\"401\":\"workouts\",\"845\":\"profile\",\"881\":\"password\"}[chunkId] || chunkId) + \".\" + {\"24\":\"80b9da45\",\"93\":\"0cd1858e\",\"193\":\"ea7ff674\",\"243\":\"697a3d7b\",\"328\":\"43bba6c9\",\"401\":\"02fe5945\",\"431\":\"54edda90\",\"633\":\"c743cd9a\",\"845\":\"6625cfc7\",\"858\":\"4449709a\",\"881\":\"b05df85b\"}[chunkId] + \".js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"static/css/\" + {\"24\":\"reset\",\"193\":\"statistics\",\"328\":\"admin\",\"401\":\"workouts\",\"845\":\"profile\"}[chunkId] + \".\" + {\"24\":\"e2527ec6\",\"193\":\"91fe968e\",\"328\":\"73df498d\",\"401\":\"3ddc8329\",\"845\":\"203e78e2\"}[chunkId] + \".css\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","var inProgress = {};\nvar dataWebpackPrefix = \"fittrackee_client:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t}\n\t;\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.p = \"/\";","var createStylesheet = function(chunkId, fullhref, resolve, reject) {\n\tvar linkTag = document.createElement(\"link\");\n\n\tlinkTag.rel = \"stylesheet\";\n\tlinkTag.type = \"text/css\";\n\tvar onLinkComplete = function(event) {\n\t\t// avoid mem leaks.\n\t\tlinkTag.onerror = linkTag.onload = null;\n\t\tif (event.type === 'load') {\n\t\t\tresolve();\n\t\t} else {\n\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\tvar realHref = event && event.target && event.target.href || fullhref;\n\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + realHref + \")\");\n\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n\t\t\terr.type = errorType;\n\t\t\terr.request = realHref;\n\t\t\tlinkTag.parentNode.removeChild(linkTag)\n\t\t\treject(err);\n\t\t}\n\t}\n\tlinkTag.onerror = linkTag.onload = onLinkComplete;\n\tlinkTag.href = fullhref;\n\n\tdocument.head.appendChild(linkTag);\n\treturn linkTag;\n};\nvar findStylesheet = function(href, fullhref) {\n\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n\tfor(var i = 0; i < existingLinkTags.length; i++) {\n\t\tvar tag = existingLinkTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return tag;\n\t}\n\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n\tfor(var i = 0; i < existingStyleTags.length; i++) {\n\t\tvar tag = existingStyleTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\");\n\t\tif(dataHref === href || dataHref === fullhref) return tag;\n\t}\n};\nvar loadStylesheet = function(chunkId) {\n\treturn new Promise(function(resolve, reject) {\n\t\tvar href = __webpack_require__.miniCssF(chunkId);\n\t\tvar fullhref = __webpack_require__.p + href;\n\t\tif(findStylesheet(href, fullhref)) return resolve();\n\t\tcreateStylesheet(chunkId, fullhref, resolve, reject);\n\t});\n}\n// object to store loaded CSS chunks\nvar installedCssChunks = {\n\t143: 0\n};\n\n__webpack_require__.f.miniCss = function(chunkId, promises) {\n\tvar cssChunks = {\"24\":1,\"193\":1,\"328\":1,\"401\":1,\"845\":1};\n\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n\t\tpromises.push(installedCssChunks[chunkId] = loadStylesheet(chunkId).then(function() {\n\t\t\tinstalledCssChunks[chunkId] = 0;\n\t\t}, function(e) {\n\t\t\tdelete installedCssChunks[chunkId];\n\t\t\tthrow e;\n\t\t}));\n\t}\n};\n\n// no hmr","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t143: 0\n};\n\n__webpack_require__.f.j = function(chunkId, promises) {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise(function(resolve, reject) { installedChunkData = installedChunks[chunkId] = [resolve, reject]; });\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = function(event) {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkfittrackee_client\"] = self[\"webpackChunkfittrackee_client\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [998], function() { return __webpack_require__(811); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["authApi","axios","baseURL","getApiUrl","interceptors","request","use","config","authToken","store","AUTH_USER_STORE","auth","headers","Authorization","error","Promise","reject","loadLocaleMessages","locales","require","messages","keys","forEach","key","matched","match","length","locale","default","createI18n","legacy","fallbackLocale","globalInjection","ctx","normalize","_normalize","interpolate","_interpolate","list","_list","plural","_plural","about","AboutTranslations","admin","AdministrationTranslations","api","ApiTranslations","buttons","ButtonsTranslations","common","CommonTranslations","dashboard","DashboardTranslations","ErrorTranslations","sports","SportsTranslations","statistics","StatisticsTranslations","user","UserTranslations","workouts","WorkoutsTranslations","register","ready","console","log","registered","cached","updatefound","updated","offline","_withScopeId","n","_pushScopeId","_popScopeId","_hoisted_1","id","_hoisted_2","class","_hoisted_3","_hoisted_4","_createElementVNode","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","href","target","rel","_defineComponent","name","props","version","adminContact","setup","__props","toRefs","_ctx","_cache","_component_router_link","_resolveComponent","_openBlock","_createElementBlock","_createTextVNode","_toDisplayString","_unref","_createVNode","to","_withCtx","$t","_","_createCommentVNode","__exports__","emits","emit","useI18n","useStore","authUser","computed","getters","isAuthenticated","language","ROOT_STORE","isMenuOpen","ref","openMenu","value","closeMenu","updateLanguage","option","toString","commit","logout","dispatch","_component_Dropdown","onClick","$event","$router","push","_normalizeClass","capitalize","_createBlock","UserPicture","username","availableLanguages","options","selected","onSelected","ErrorImg","innerHTML","appConfig","appLoading","hideScrollBar","displayScrollButton","updateHideScrollBar","isScrolledToBottom","element","getBoundingClientRect","top","window","innerHeight","bottom","scroll","onscroll","document","querySelector","scrollToTop","scrollTo","behavior","setTimeout","onBeforeMount","onMounted","_component_Loader","_component_router_view","_Fragment","NavBar","onMenuInteraction","NoConfig","Footer","admin_contact","message","charLimit","disabled","type","Boolean","input","text","updateText","event","watch","_withDirectives","maxLenght","_isRef","onInput","_vModelText","distance","unitFrom","useImperialUnits","digits","displayUnit","speed","strong","unitTo","units","defaultTarget","convertedDistance","convertDistance","parseFloat","toFixed","route","useRoute","isOpen","dropdownOptions","map","toggleDropdown","updateSelected","path","_renderSlot","$slots","_renderList","index","label","Array","isArray","subMessage","xmlns","x","y","viewBox","style","d","render","_hoisted_20","cx","cy","r","sportLabel","color","title","sportColors","inject","_normalizeStyle","fill","CyclingSport","CyclingTransport","Hiking","MountainBiking","MountainBikingElectric","Rowing","Running","SkiingAlpine","SkiingCrossCountry","Snowshoes","Trail","Walking","script","strongMessage","errorMessages","onUnmounted","_component_i18n_t","_component_ErrorMessage","_component_Card","content","keypath","customComponents","AlertMessage","Card","CustomTextArea","Distance","Dropdown","ErrorMessage","Loader","Modal","SportImage","clickOutsideDirective","mounted","binding","clickOutsideEvent","contains","body","addEventListener","unmounted","removeEventListener","undefined","Chart","BarElement","LineElement","PointElement","Legend","Title","Tooltip","Filler","BarController","CategoryScale","LineController","LinearScale","ChartDataLabels","app","createApp","App","provide","i18n","router","VueFullscreen","directive","component","mount","for","_hoisted_13","_hoisted_14","_hoisted_15","_hoisted_16","_hoisted_17","_hoisted_18","_hoisted_19","edition","useRouter","appData","reactive","max_users","max_single_file_size","max_zip_file_size","gpx_limit_import","updateForm","Object","includes","getFileSizeInMB","onCancel","onSubmit","formData","assign","_withModifiers","min","step","icon","appStatistics","uploadDirSize","getReadableFileSize","uploads_dir_size","StatCard","users","size","suffix","AppStatsCards","is_registration_enabled","is_email_sending_enabled","t","translatedSports","translateSports","SPORTS_STORE","updateSportStatus","isActive","_component_SportImage","sport","translatedLabel","is_active","danger","has_workouts","query","q","searchUsers","resetFilter","onKeyup","_withKeys","placeholder","trim","orderByList","defaultOrderBy","getQuery","USERS_STORE","pagination","loadUsers","queryParams","reloadUsers","updateUser","queryParam","queryValue","page","newQuery","UsersNameFilter","onFilterOnUsername","FilterSelects","sort","sortList","order_by","onUpdateSelect","email","format","getDateWithTZ","created_at","timezone","nb_workouts","Pagination","tabs","selectedTab","getPath","tab","toLocaleLowerCase","checked","UserHeader","UserProfileTabs","languageLabels","fistDayOfWeek","weekm","imperial_units","loading","userForm","password","new_password","isSuccess","emailUpdate","formErrors","displayModal","invalidateForm","updateUserForm","updatePassword","updateNewPassword","updateProfile","payload","updateDisplayModal","deleteAccount","isSuccessValue","_component_Modal","onConfirmAction","onCancelAction","errors","required","onInvalid","PasswordInput","onUpdatePassword","onPasswordError","checkStrength","first_name","last_name","birth_date","location","bio","registrationDate","Date","updateBio","_component_CustomTextArea","onUpdateValue","fileSizeLimit","pictureFile","deleteUserPicture","updatePictureFile","files","updateUserPicture","picture","accept","timeZones","tzList","focusItemIndex","matchTimezone","toLowerCase","onMouseOver","onUpdateTimezone","onEnter","preventDefault","firstElementChild","openDropdown","onKeydown","ref_key","filter","tz","focus","onMouseover","autofocus","weekStart","imperialUnits","updateTZ","lang","_vModelSelect","TimezoneDropdown","start","unit","_hoisted_21","_hoisted_22","_hoisted_23","_hoisted_24","_hoisted_25","_hoisted_26","_hoisted_27","isEdition","sports_list","sportPayload","sport_id","stopped_speed_threshold","updateSportInEdition","is_active_for_user","resetSportPayload","isSportInEdition","sportId","updateColor","updateThreshold","updateIsActive","updateSport","resetSport","newIsLoading","onChange","e","src","alt","BikePic","About","workout","_component_Distance","params","workoutId","workout_date","formatDistance","addSuffix","with_gpx","StaticMap","moving","min_alt","max_alt","ascent","descent","per_page","initWorkoutsCount","loadWorkouts","WORKOUTS_STORE","moreWorkoutsExist","previous_workout","defaultOrder","loadMoreWorkouts","WorkoutCard","s","NoWorkouts","sportColor","records","record","record_type","height","width","colors","datasets","angleOffset","radius","circumference","Math","PI","calculateStrokeDashOffset","percentage","returnCircleTransformValue","rotation","entries","data","stroke","transform","isHidden","togglePane","stopPropagation","_directive_click_outside","_resolveDirective","DonutChart","CalendarWorkout","getSportLabel","getSportColor","chartDatasets","getDonutDatasets","sportIdColors","displayedWorkoutCount","slice","CalendarWorkoutsChart","currentDay","endDate","startDate","weekStartingMonday","rows","getDays","day","days","i","addDays","isWeekEnd","filterWorkouts","isSameDay","reverse","row","isSameMonth","today","isToday","CalendarWorkouts","localeOptions","dateFormat","calendarDates","getCalendarStartAndEnd","calendarWorkouts","getCalendarWorkouts","apiParams","from","end","displayNextMonth","addMonths","displayPreviousMonth","subMonths","CalendarHeader","onDisplayNextMonth","onDisplayPreviousMonth","CalendarDays","CalendarCells","date","chartParams","duration","startOfMonth","endOfMonth","selectedSportIds","StatChart","sportTranslatedLabel","workout_id","formatRecord","Error","formatWorkoutDate","getRecordsBySports","reduce","sportList","find","recordsBySport","RecordsCard","userTotalDuration","total_duration","totalDuration","get_duration","defaultUnitFrom","totalDistance","total_distance","split","nb_sports","isSelected","updateDisplayColumn","UserStatsCards","UserMonthStats","UserRecords","UserCalendar","Timeline","NotFound","action","LoginOrRegisterForm","getTabFromPath","regex","tag","replace","toUpperCase","routes","Dashboard","LoginOrRegister","children","Profile","UserInfos","UserPreferences","UserSportPreferences","ProfileEdition","UserInfosEdition","UserAccountEdition","UserPictureEdition","UserPreferencesEdition","displaySegment","AdminMenu","AdminApplication","AdminSports","fromAdmin","AdminUsers","AboutView","NotFoundView","createRouter","history","createWebHistory","process","pathsWithoutAuthentication","pathsWithoutChecks","beforeEach","next","then","fullPath","catch","AuthUserActions","AuthUserGetters","AuthUserMutations","RootActions","RootGetters","RootMutations","SportsActions","SportsGetters","SportsMutation","StatisticsActions","StatisticsGetters","StatisticsMutations","UsersActions","UsersGetters","UsersMutations","ACTIONS","GETTERS","MUTATIONS","STATS_STORE","WorkoutsActions","WorkoutsGetters","WorkoutsMutations","deleteUserAccount","context","res","status","handleError","actions","finally","resetPassword","reset_password","activate","new_email","removeAuthUserData","localStorage","removeItem","token","auth_token","setItem","refreshUser","actionType","redirectUrl","form","FormData","append","state","authUserProfile","isRegistrationSuccess","mutations","authUserState","application","localeFromLanguage","root","enUS","sportsState","filterType","statisticsState","updatedUser","usersState","getWorkouts","segmentUrl","segmentId","segments","chart_data","gpx","file","notes","calendar_workouts","timeline_workouts","user_workouts","workoutData","concat","chartData","workoutsState","modules","authUserModule","sportsModule","statsModule","usersModule","workoutsModule","createStore","VuexStore","defaultPage","defaultPerPage","getNumberQueryValue","defaultValue","getStringQueryValue","availableValues","locationQuery","queryOptions","defaultSort","order","workoutsPayloadKeys","getRange","stop","rangePagination","pages","currentPage","getStartDate","startOfWeek","weekStartsOn","startOfYear","incrementDate","addYears","dateInUTC","utcToZonedTime","monthStart","monthEnd","endOfWeek","dateTime","timeFormat","workout_time","suffixes","fileSize","asText","floor","pow","msg","response","m","en","fr","availableLocales","l","sortSports","a","b","sportATranslatedLabel","sportBTranslatedLabel","activeStatus","sportsToInclude","dateFormats","week","chart","month","year","datasetKeys","getDateKeys","getStatisticsChartDataset","isLineChart","dataset","backgroundColor","borderColor","spanGaps","getDatasets","displayedSports","average_speed","total_ascent","total_descent","convertStatsValue","datasetKey","convertStatsDistance","formatStats","displayedSportsId","apiStats","dayKeys","labels","sportsId","displayedSport","getStatsDateParams","timeFrame","subYears","endOfYear","updateChartParams","backward","subWeeks","addWeeks","ft","system","multiplier","mi","km","factors","metric","imperial","borderWidth","yAxisID","elevation","distance_labels","duration_labels","coordinates","latitude","longitude","total","count","perPage","onSelectUpdate","nb","buttonText","cursor","has_prev","navigate","has_next","active","setZxcvbnOptions","async","zxcvbnCommonPackage","zxcvbnEnPackage","zxcvbnFrPackage","zxcvbnLangPackages","zxcvbnPackage","graphs","adjacencyGraphs","dictionary","zxcvbnOptions","getPasswordStrength","strength","passwordScore","passwordStrength","passwordSuggestions","backgroundSize","calculatePasswordStrength","zxcvbnResult","zxcvbn","score","feedback","suggestions","newLanguageValue","newPassword","max","suggestion","showPassword","passwordValue","togglePassword","invalidPassword","minlength","_vModelDynamic","PasswordStrength","displayHover","imageUrl","backgroundImage","$props","$setup","$data","$options","_component_Chart","hideChartIfNoData","emptyStats","displayedData","args","updateDisplayData","fullStats","displayedSportIds","_component_BarChart","_mergeProps","barChartProps","formatDuration","totalSeconds","formatWithUnits","String","hours","padStart","minutes","seconds","formatTooltipValue","defineComponent","components","BarChart","getNumber","isNaN","getSum","JSON","parse","stringify","responsive","maintainAspectRatio","animation","layout","padding","scales","stacked","grid","drawOnChartArea","ticks","maxTicksLimit","callback","afterFit","scale","plugins","datalabels","anchor","align","chartArea","display","formatter","dataIndex","datasetIndex","legend","tooltip","interaction","intersect","mode","position","tooltipItem","formattedValue","callbacks","parsed","footer","tooltipItems","sum","useBarChart","formattedStats","getStatistics","getApiParams","time","newParams","birthDate","displayUserEmailForm","newUserEmail","currentAction","resetUserPassword","confirmUserAccount","displayEmailForm","resetErrorsAndSuccess","email_to_confirm","hideEmailForm","updateUserEmail","newIsSuccess","_component_AlertMessage","go","getButtonText","registration_disabled","sendingEmailDisabled","resetFormData","pattern","maxlength","authUserPictureUrl","now","webpackContext","req","webpackContextResolve","__webpack_require__","o","code","resolve","module","exports","__webpack_module_cache__","moduleId","cachedModule","__webpack_modules__","call","deferred","O","result","chunkIds","fn","priority","notFulfilled","Infinity","fulfilled","j","every","splice","getter","__esModule","leafPrototypes","getProto","getPrototypeOf","obj","__proto__","this","ns","create","def","current","indexOf","getOwnPropertyNames","definition","defineProperty","enumerable","get","f","chunkId","all","promises","u","miniCssF","g","globalThis","Function","prop","prototype","hasOwnProperty","inProgress","dataWebpackPrefix","url","done","needAttach","scripts","getElementsByTagName","getAttribute","createElement","charset","timeout","nc","setAttribute","onScriptComplete","prev","onerror","onload","clearTimeout","doneFns","parentNode","removeChild","bind","head","appendChild","Symbol","toStringTag","p","createStylesheet","fullhref","linkTag","onLinkComplete","errorType","realHref","err","findStylesheet","existingLinkTags","dataHref","existingStyleTags","loadStylesheet","installedCssChunks","miniCss","cssChunks","installedChunks","installedChunkData","promise","loadingEnded","realSrc","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","self","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file diff --git a/fittrackee/dist/static/js/workouts.a9d2f467.js b/fittrackee/dist/static/js/workouts.02fe5945.js similarity index 99% rename from fittrackee/dist/static/js/workouts.a9d2f467.js rename to fittrackee/dist/static/js/workouts.02fe5945.js index 8cfc9345..78d59ab7 100644 --- a/fittrackee/dist/static/js/workouts.a9d2f467.js +++ b/fittrackee/dist/static/js/workouts.02fe5945.js @@ -1,2 +1,2 @@ "use strict";(self["webpackChunkfittrackee_client"]=self["webpackChunkfittrackee_client"]||[]).push([[401],{1990:function(t,e,o){o.d(e,{Z:function(){return et}});var a=o(6252),n=o(3577),l=o(2262),r=o(9963),s=o(3324),i=o(2119),u=o(8602),d=o(9917),c=o(6558),p=o(8966),m=o(631),w=o(3649);const k={id:"workout-form"},f=["onSubmit"],v={class:"form-items"},g={key:0,class:"form-item-radio"},_=["checked","disabled"],y={for:"withGpx"},S=["checked","disabled"],U={for:"withoutGpx"},h={class:"form-item"},b=["disabled"],T=["value"],E={key:1,class:"form-item"},D={for:"gpxFile"},O=["disabled"],I={class:"files-help info-box"},A={key:2,class:"form-item"},C={for:"title"},R=["required","disabled"],$={key:3},N={class:"workout-date-duration"},x={class:"form-item"},z={class:"workout-date-time"},L=["disabled"],W=["disabled"],j={class:"form-item"},B=["disabled"],P=(0,a.Uk)(" : "),F=["disabled"],M=(0,a.Uk)(" : "),H=["disabled"],Z={class:"form-item"},q=["disabled"],G={class:"form-item"},K={key:1},Y={key:2,class:"form-buttons"},V=["disabled"],J=["onClick"];var X=(0,a.aZ)({name:"WorkoutEdition",props:{authUser:null,sports:null,isCreation:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},workout:{default:()=>({})}},setup(t){const e=t,{t:o}=(0,s.QT)(),X=(0,d.o)(),Q=(0,i.tv)(),{authUser:tt,workout:et,isCreation:ot,loading:at}=(0,l.BK)(e),nt=(0,a.Fl)((()=>(0,m.xH)(e.sports,o,"is_active_for_user",et.value.id?[et.value.sport_id]:[]))),lt=(0,a.Fl)((()=>X.getters[u.SY.GETTERS.APP_CONFIG])),rt=lt.value.max_single_file_size?(0,p.Z)(lt.value.max_single_file_size):"",st=lt.value.gpx_limit_import,it=lt.value.max_zip_file_size?(0,p.Z)(lt.value.max_zip_file_size):"",ut=(0,a.Fl)((()=>X.getters[u.SY.GETTERS.ERROR_MESSAGES])),dt=(0,l.qj)({sport_id:"",title:"",notes:"",workoutDate:"",workoutTime:"",workoutDurationHour:"",workoutDurationMinutes:"",workoutDurationSeconds:"",workoutDistance:""});let ct=(0,l.iH)(e.workout.id?e.workout.with_gpx:e.isCreation),pt=null;const mt=(0,l.iH)(!1);function wt(t){dt.notes=t}function kt(){ct.value=!ct.value,mt.value=!1}function ft(t){t.target.files&&(pt=t.target.files[0])}function vt(t){if(dt.sport_id=`${t.sport_id}`,dt.title=t.title,dt.notes=t.notes,!t.with_gpx){const o=(0,c.Jo)((0,c.eB)(t.workout_date,e.authUser.timezone),"yyyy-MM-dd"),a=t.duration.split(":");dt.workoutDistance=`${tt.value.imperial_units?(0,w.sC)(t.distance,"km","mi",2):parseFloat(t.distance.toFixed(2))}`,dt.workoutDate=o.workout_date,dt.workoutTime=o.workout_time,dt.workoutDurationHour=a[0],dt.workoutDurationMinutes=a[1],dt.workoutDurationSeconds=a[2]}}function gt(t){t.title=dt.title,t.distance=tt.value.imperial_units?(0,w.sC)(+dt.workoutDistance,"mi","km",3):+dt.workoutDistance,t.duration=3600*+dt.workoutDurationHour+60*+dt.workoutDurationMinutes+ +dt.workoutDurationSeconds,t.workout_date=`${dt.workoutDate} ${dt.workoutTime}`}function _t(){const t={sport_id:+dt.sport_id,notes:dt.notes};if(e.workout.id)e.workout.with_gpx?t.title=dt.title:gt(t),X.dispatch(u.aX.ACTIONS.EDIT_WORKOUT,{workoutId:e.workout.id,data:t});else if(ct.value){if(!pt){const t="workouts.NO_FILE_PROVIDED";return void X.commit(u.SY.MUTATIONS.SET_ERROR_MESSAGES,t)}t.file=pt,X.dispatch(u.aX.ACTIONS.ADD_WORKOUT,t)}else gt(t),X.dispatch(u.aX.ACTIONS.ADD_WORKOUT_WITHOUT_GPX,t)}function yt(){e.workout.id?Q.push({name:"Workout",params:{workoutId:e.workout.id}}):Q.go(-1)}function St(){mt.value=!0}return(0,a.bv)((()=>{e.workout.id&&vt(e.workout)})),(0,a.Ah)((()=>X.commit(u.SY.MUTATIONS.EMPTY_ERROR_MESSAGES))),(0,a.YP)((()=>e.workout),(async(t,e)=>{t!==e&&t&&t.id&&vt(t)})),(t,e)=>{const o=(0,a.up)("CustomTextArea"),s=(0,a.up)("ErrorMessage"),i=(0,a.up)("Loader"),u=(0,a.up)("Card");return(0,a.wg)(),(0,a.iD)("div",{id:"workout-edition",class:(0,n.C_)(["center-card with-margin",{"center-form":(0,l.SU)(et)&&(0,l.SU)(et).with_gpx}])},[(0,a.Wm)(u,null,{title:(0,a.w5)((()=>[(0,a.Uk)((0,n.zw)(t.$t(`workouts.${(0,l.SU)(ot)?"ADD":"EDIT"}_WORKOUT`)),1)])),content:(0,a.w5)((()=>[(0,a._)("div",k,[(0,a._)("form",{class:(0,n.C_)({errors:mt.value}),onSubmit:(0,r.iM)(_t,["prevent"])},[(0,a._)("div",v,[(0,l.SU)(ot)?((0,a.wg)(),(0,a.iD)("div",g,[(0,a._)("div",null,[(0,a._)("input",{id:"withGpx",type:"radio",checked:(0,l.SU)(ct),disabled:(0,l.SU)(at),onClick:kt},null,8,_),(0,a._)("label",y,(0,n.zw)(t.$t("workouts.WITH_GPX")),1)]),(0,a._)("div",null,[(0,a._)("input",{id:"withoutGpx",type:"radio",checked:!(0,l.SU)(ct),disabled:(0,l.SU)(at),onClick:kt},null,8,S),(0,a._)("label",U,(0,n.zw)(t.$t("workouts.WITHOUT_GPX")),1)])])):(0,a.kq)("",!0),(0,a._)("div",h,[(0,a._)("label",null,(0,n.zw)(t.$t("workouts.SPORT",1))+": ",1),(0,a.wy)((0,a._)("select",{id:"sport",required:"",onInvalid:St,disabled:(0,l.SU)(at),"onUpdate:modelValue":e[0]||(e[0]=t=>dt.sport_id=t)},[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,l.SU)(nt),(t=>((0,a.wg)(),(0,a.iD)("option",{value:t.id,key:t.id},(0,n.zw)(t.translatedLabel),9,T)))),128))],40,b),[[r.bM,dt.sport_id]])]),(0,l.SU)(ot)&&(0,l.SU)(ct)?((0,a.wg)(),(0,a.iD)("div",E,[(0,a._)("label",D,(0,n.zw)(t.$t("workouts.GPX_FILE"))+" "+(0,n.zw)(t.$t("workouts.ZIP_ARCHIVE_DESCRIPTION"))+": ",1),(0,a._)("input",{id:"gpxFile",name:"gpxFile",type:"file",accept:".gpx, .zip",disabled:(0,l.SU)(at),required:"",onInvalid:St,onInput:ft},null,40,O),(0,a._)("div",I,[(0,a._)("div",null,[(0,a._)("strong",null,(0,n.zw)(t.$t("workouts.GPX_FILE"))+":",1),(0,a._)("ul",null,[(0,a._)("li",null,(0,n.zw)(t.$t("workouts.MAX_SIZE"))+": "+(0,n.zw)((0,l.SU)(rt)),1)])]),(0,a._)("div",null,[(0,a._)("strong",null,(0,n.zw)(t.$t("workouts.ZIP_ARCHIVE"))+":",1),(0,a._)("ul",null,[(0,a._)("li",null,(0,n.zw)(t.$t("workouts.NO_FOLDER")),1),(0,a._)("li",null,(0,n.zw)(t.$t("workouts.MAX_FILES"))+": "+(0,n.zw)((0,l.SU)(st)),1),(0,a._)("li",null,(0,n.zw)(t.$t("workouts.MAX_SIZE"))+": "+(0,n.zw)((0,l.SU)(it)),1)])])])])):((0,a.wg)(),(0,a.iD)("div",A,[(0,a._)("label",C,(0,n.zw)(t.$t("workouts.TITLE"))+": ",1),(0,a.wy)((0,a._)("input",{id:"title",name:"title",type:"text",required:!(0,l.SU)(ot),onInvalid:St,disabled:(0,l.SU)(at),"onUpdate:modelValue":e[1]||(e[1]=t=>dt.title=t)},null,40,R),[[r.nr,dt.title]])])),(0,l.SU)(ct)?(0,a.kq)("",!0):((0,a.wg)(),(0,a.iD)("div",$,[(0,a._)("div",N,[(0,a._)("div",x,[(0,a._)("label",null,(0,n.zw)(t.$t("workouts.WORKOUT_DATE"))+":",1),(0,a._)("div",z,[(0,a.wy)((0,a._)("input",{id:"workout-date",name:"workout-date",type:"date",required:"",onInvalid:St,disabled:(0,l.SU)(at),"onUpdate:modelValue":e[2]||(e[2]=t=>dt.workoutDate=t)},null,40,L),[[r.nr,dt.workoutDate]]),(0,a.wy)((0,a._)("input",{id:"workout-time",name:"workout-time",class:"workout-time",type:"time",required:"",onInvalid:St,disabled:(0,l.SU)(at),"onUpdate:modelValue":e[3]||(e[3]=t=>dt.workoutTime=t)},null,40,W),[[r.nr,dt.workoutTime]])])]),(0,a._)("div",j,[(0,a._)("label",null,(0,n.zw)(t.$t("workouts.DURATION"))+":",1),(0,a._)("div",null,[(0,a.wy)((0,a._)("input",{id:"workout-duration-hour",name:"workout-duration-hour",class:"workout-duration",type:"text",placeholder:"HH",minlength:"1",maxlength:"2",pattern:"^([0-1]?[0-9]|2[0-3])$",required:"",onInvalid:St,disabled:(0,l.SU)(at),"onUpdate:modelValue":e[4]||(e[4]=t=>dt.workoutDurationHour=t)},null,40,B),[[r.nr,dt.workoutDurationHour]]),P,(0,a.wy)((0,a._)("input",{id:"workout-duration-minutes",name:"workout-duration-minutes",class:"workout-duration",type:"text",pattern:"^([0-5][0-9])$",minlength:"2",maxlength:"2",placeholder:"MM",required:"",onInvalid:St,disabled:(0,l.SU)(at),"onUpdate:modelValue":e[5]||(e[5]=t=>dt.workoutDurationMinutes=t)},null,40,F),[[r.nr,dt.workoutDurationMinutes]]),M,(0,a.wy)((0,a._)("input",{id:"workout-duration-seconds",name:"workout-duration-seconds",class:"workout-duration",type:"text",pattern:"^([0-5][0-9])$",minlength:"2",maxlength:"2",placeholder:"SS",required:"",onInvalid:St,disabled:(0,l.SU)(at),"onUpdate:modelValue":e[6]||(e[6]=t=>dt.workoutDurationSeconds=t)},null,40,H),[[r.nr,dt.workoutDurationSeconds]])])])]),(0,a._)("div",Z,[(0,a._)("label",null,(0,n.zw)(t.$t("workouts.DISTANCE"))+" ("+(0,n.zw)((0,l.SU)(tt).imperial_units?"mi":"km")+"): ",1),(0,a.wy)((0,a._)("input",{name:"workout-distance",type:"number",min:"0",step:"0.001",required:"",onInvalid:St,disabled:(0,l.SU)(at),"onUpdate:modelValue":e[7]||(e[7]=t=>dt.workoutDistance=t)},null,40,q),[[r.nr,dt.workoutDistance]])])])),(0,a._)("div",G,[(0,a._)("label",null,(0,n.zw)(t.$t("workouts.NOTES"))+": ",1),(0,a.Wm)(o,{name:"notes",input:dt.notes,disabled:(0,l.SU)(at),onUpdateValue:wt},null,8,["input","disabled"])])]),(0,l.SU)(ut)?((0,a.wg)(),(0,a.j4)(s,{key:0,message:(0,l.SU)(ut)},null,8,["message"])):(0,a.kq)("",!0),(0,l.SU)(at)?((0,a.wg)(),(0,a.iD)("div",K,[(0,a.Wm)(i)])):((0,a.wg)(),(0,a.iD)("div",Y,[(0,a._)("button",{class:"confirm",type:"submit",disabled:(0,l.SU)(at)},(0,n.zw)(t.$t("buttons.SUBMIT")),9,V),(0,a._)("button",{class:"cancel",onClick:(0,r.iM)(yt,["prevent"])},(0,n.zw)(t.$t("buttons.CANCEL")),9,J)]))],42,f)])])),_:1})],2)}}}),Q=o(3744);const tt=(0,Q.Z)(X,[["__scopeId","data-v-031d018d"]]);var et=tt},4189:function(t,e,o){o.r(e),o.d(e,{default:function(){return p}});var a=o(6252),n=o(2262),l=o(1990),r=o(8602),s=o(9917);const i={id:"add-workout",class:"view"},u={class:"container"};var d=(0,a.aZ)({name:"AddWorkout",setup(t){const e=(0,s.o)(),o=(0,a.Fl)((()=>e.getters[r.O8.GETTERS.SPORTS])),d=(0,a.Fl)((()=>e.getters[r.YN.GETTERS.AUTH_USER_PROFILE])),c=(0,a.Fl)((()=>e.getters[r.aX.GETTERS.WORKOUT_DATA]));return(t,e)=>((0,a.wg)(),(0,a.iD)("div",i,[(0,a._)("div",u,[(0,a.Wm)(l.Z,{authUser:(0,n.SU)(d),sports:(0,n.SU)(o),isCreation:!0,loading:(0,n.SU)(c).loading},null,8,["authUser","sports","loading"])])]))}});const c=d;var p=c},8237:function(t,e,o){o.r(e),o.d(e,{default:function(){return m}});var a=o(6252),n=o(2262),l=o(2119),r=o(1990),s=o(8602),i=o(9917);const u={id:"edit-workout",class:"view"},d={class:"container"};var c=(0,a.aZ)({name:"EditWorkout",setup(t){const e=(0,l.yj)(),o=(0,i.o)(),c=(0,a.Fl)((()=>o.getters[s.YN.GETTERS.AUTH_USER_PROFILE])),p=(0,a.Fl)((()=>o.getters[s.O8.GETTERS.SPORTS])),m=(0,a.Fl)((()=>o.getters[s.aX.GETTERS.WORKOUT_DATA]));return(0,a.wF)((()=>{o.dispatch(s.aX.ACTIONS.GET_WORKOUT_DATA,{workoutId:e.params.workoutId})})),(0,a.YP)((()=>e.params.workoutId),(async t=>{t||o.commit(s.aX.MUTATIONS.EMPTY_WORKOUT)})),(t,e)=>((0,a.wg)(),(0,a.iD)("div",u,[(0,a._)("div",d,[(0,a.Wm)(r.Z,{authUser:(0,n.SU)(c),sports:(0,n.SU)(p),workout:(0,n.SU)(m).workout,loading:(0,n.SU)(m).loading},null,8,["authUser","sports","workout","loading"])])]))}});const p=c;var m=p},9003:function(t,e,o){o.r(e),o.d(e,{default:function(){return na}});var a=o(6252),n=o(2262),l=o(2119),r=o(8273),s=o(3577),i=o(9963),u=o(5167);const d=t=>((0,a.dD)("data-v-4d9f9a8a"),t=t(),(0,a.Cn)(),t),c={id:"workout-card-title"},p=["title"],m=d((()=>(0,a._)("i",{class:"fa fa-chevron-left","aria-hidden":"true"},null,-1))),w=[m],k={class:"workout-card-title"},f={class:"workout-title-date"},v={key:0,class:"workout-title"},g={key:1,class:"workout-title"},_={class:"workout-segment"},y=(0,a.Uk)(" — "),S=d((()=>(0,a._)("i",{class:"fa fa-map-marker","aria-hidden":"true"},null,-1))),U={class:"workout-date"},h={class:"workout-link"},b=["title"],T=d((()=>(0,a._)("i",{class:"fa fa-chevron-right","aria-hidden":"true"},null,-1))),E=[T];var D=(0,a.aZ)({name:"WorkoutCardTitle",props:{sport:null,workoutObject:null},emits:["displayModal"],setup(t,{emit:e}){const o=t,{sport:l,workoutObject:r}=(0,n.BK)(o);async function d(t){await u.Z.get(`workouts/${t}/gpx/download`,{responseType:"blob"}).then((e=>{const o=window.URL.createObjectURL(new Blob([e.data],{type:"application/gpx+xml"})),a=document.createElement("a");a.href=o,a.setAttribute("download",`${t}.gpx`),document.body.appendChild(a),a.click()}))}return(t,o)=>{const u=(0,a.up)("SportImage"),m=(0,a.up)("router-link");return(0,a.wg)(),(0,a.iD)("div",c,[(0,a._)("div",{class:(0,s.C_)(["workout-previous workout-arrow",{inactive:!(0,n.SU)(r).previousUrl}]),title:(0,n.SU)(r).previousUrl?t.$t(`workouts.PREVIOUS_${(0,n.SU)(r).type}`):t.$t(`workouts.NO_PREVIOUS_${(0,n.SU)(r).type}`),onClick:o[0]||(o[0]=e=>(0,n.SU)(r).previousUrl?t.$router.push((0,n.SU)(r).previousUrl):null)},w,10,p),(0,a._)("div",k,[(0,a.Wm)(u,{"sport-label":(0,n.SU)(l).label,color:(0,n.SU)(l).color},null,8,["sport-label","color"]),(0,a._)("div",f,["WORKOUT"===(0,n.SU)(r).type?((0,a.wg)(),(0,a.iD)("div",v,[(0,a._)("span",null,(0,s.zw)((0,n.SU)(r).title),1),(0,a._)("i",{class:"fa fa-edit","aria-hidden":"true",onClick:o[1]||(o[1]=e=>t.$router.push({name:"EditWorkout",params:{workoutId:(0,n.SU)(r).workoutId}}))}),(0,n.SU)(r).with_gpx?((0,a.wg)(),(0,a.iD)("i",{key:0,class:"fa fa-download","aria-hidden":"true",onClick:o[2]||(o[2]=(0,i.iM)((t=>d((0,n.SU)(r).workoutId)),["prevent"]))})):(0,a.kq)("",!0),(0,a._)("i",{class:"fa fa-trash","aria-hidden":"true",onClick:o[3]||(o[3]=t=>e("displayModal",!0))})])):((0,a.wg)(),(0,a.iD)("div",g,[(0,a.Uk)((0,s.zw)((0,n.SU)(r).title)+" ",1),(0,a._)("span",_,[y,S,(0,a.Uk)(" "+(0,s.zw)(t.$t("workouts.SEGMENT"))+" "+(0,s.zw)((0,n.SU)(r).segmentId+1),1)])])),(0,a._)("div",U,[(0,a.Uk)((0,s.zw)((0,n.SU)(r).workoutDate)+" - "+(0,s.zw)((0,n.SU)(r).workoutTime)+" ",1),(0,a._)("span",h,["SEGMENT"===(0,n.SU)(r).type?((0,a.wg)(),(0,a.j4)(m,{key:0,to:{name:"Workout",params:{workoutId:(0,n.SU)(r).workoutId}}},{default:(0,a.w5)((()=>[(0,a.Uk)(" > "+(0,s.zw)(t.$t("workouts.BACK_TO_WORKOUT")),1)])),_:1},8,["to"])):(0,a.kq)("",!0)])])])]),(0,a._)("div",{class:(0,s.C_)(["workout-next workout-arrow",{inactive:!(0,n.SU)(r).nextUrl}]),title:(0,n.SU)(r).nextUrl?t.$t(`workouts.NEXT_${(0,n.SU)(r).type}`):t.$t(`workouts.NO_NEXT_${(0,n.SU)(r).type}`),onClick:o[4]||(o[4]=e=>(0,n.SU)(r).nextUrl?t.$router.push((0,n.SU)(r).nextUrl):null)},E,10,b)])}}}),O=o(3744);const I=(0,O.Z)(D,[["__scopeId","data-v-4d9f9a8a"]]);var A=I;const C=t=>((0,a.dD)("data-v-1a5282f6"),t=t(),(0,a.Cn)(),t),R={key:0,class:"workout-record"},$=C((()=>(0,a._)("sup",null,[(0,a._)("i",{class:"fa fa-trophy","aria-hidden":"true"})],-1))),N=[$];var x=(0,a.aZ)({name:"WorkoutRecord",props:{recordType:null,workoutObject:null},setup(t){const e=t,{recordType:o,workoutObject:l}=(0,n.BK)(e);return(t,e)=>(0,n.SU)(l).records&&(0,n.SU)(l).records.find((t=>t.record_type===(0,n.SU)(o)))?((0,a.wg)(),(0,a.iD)("span",R,N)):(0,a.kq)("",!0)}});const z=(0,O.Z)(x,[["__scopeId","data-v-1a5282f6"]]);var L=z,W=o(3324);const j=["N","NNE","NE","ENE","E","ESE","SE","SSE","S","SSW","SW","WSW","W","WNW","NW","NNW"],B=t=>{const e=Math.floor(t/22.5+.5);return j[e%16]},P={class:"wind"},F={class:"wind-bearing"},M=["title"];var H=(0,a.aZ)({name:"WeatherWind",props:{weather:null,useImperialUnits:{type:Boolean}},setup(t){const e=t,{useImperialUnits:o,weather:l}=(0,n.BK)(e),{t:r}=(0,W.QT)();function i(t){return r(`workouts.WEATHER.WIND_DIRECTIONS.${B(t)}`)}return(t,e)=>{const r=(0,a.up)("Distance");return(0,a.wg)(),(0,a.iD)("div",P,[(0,a.Wm)(r,{distance:(0,n.SU)(l).wind,unitFrom:"m",digits:1,displayUnit:!1,useImperialUnits:(0,n.SU)(o)},null,8,["distance","useImperialUnits"]),(0,a.Uk)(" "+(0,s.zw)((0,n.SU)(o)?"ft":"m")+"/s ",1),(0,a._)("div",F,[(0,n.SU)(l).windBearing?((0,a.wg)(),(0,a.iD)("i",{key:0,class:"fa fa-long-arrow-down",style:(0,s.j5)({transform:`rotate(${(0,n.SU)(l).windBearing}deg)`}),"aria-hidden":"true",title:i((0,n.SU)(l).windBearing)},null,12,M)):(0,a.kq)("",!0)])])}}});const Z=(0,O.Z)(H,[["__scopeId","data-v-46a7c31c"]]);var q=Z;const G=t=>((0,a.dD)("data-v-76e9ab62"),t=t(),(0,a.Cn)(),t),K={key:0,id:"workout-weather"},Y={class:"weather-table"},V=G((()=>(0,a._)("th",null,null,-1))),J={class:"weather-th"},X=["src","alt","title"],Q={class:"weather-th"},tt=["src","alt","title"],et=["alt","title"],ot=["alt","title"],at=["alt","title"];var nt=(0,a.aZ)({name:"WorkoutWeather",props:{workoutObject:null,useImperialUnits:{type:Boolean}},setup(t){const e=t,{useImperialUnits:o,workoutObject:l}=(0,n.BK)(e);return(t,e)=>(0,n.SU)(l).weatherStart&&(0,n.SU)(l).weatherEnd?((0,a.wg)(),(0,a.iD)("div",K,[(0,a._)("table",Y,[(0,a._)("thead",null,[(0,a._)("tr",null,[V,(0,a._)("th",null,[(0,a._)("div",J,[(0,a.Uk)((0,s.zw)(t.$t("workouts.START"))+" ",1),(0,a._)("img",{class:"weather-img",src:`/img/weather/${(0,n.SU)(l).weatherStart.icon}.svg`,alt:t.$t(`workouts.WEATHER.DARK_SKY.${(0,n.SU)(l).weatherStart.icon}`),title:t.$t(`workouts.WEATHER.DARK_SKY.${(0,n.SU)(l).weatherStart.icon}`)},null,8,X)])]),(0,a._)("th",null,[(0,a._)("div",Q,[(0,a.Uk)((0,s.zw)(t.$t("workouts.END"))+" ",1),(0,a._)("img",{class:"weather-img",src:`/img/weather/${(0,n.SU)(l).weatherEnd.icon}.svg`,alt:t.$t(`workouts.WEATHER.DARK_SKY.${(0,n.SU)(l).weatherEnd.icon}`),title:t.$t(`workouts.WEATHER.DARK_SKY.${(0,n.SU)(l).weatherEnd.icon}`)},null,8,tt)])])])]),(0,a._)("tbody",null,[(0,a._)("tr",null,[(0,a._)("td",null,[(0,a._)("img",{class:"weather-img weather-img-small",src:"/img/weather/temperature.svg",alt:t.$t("workouts.WEATHER.TEMPERATURE"),title:t.$t("workouts.WEATHER.TEMPERATURE")},null,8,et)]),(0,a._)("td",null,(0,s.zw)(Number((0,n.SU)(l).weatherStart.temperature).toFixed(1))+"°C ",1),(0,a._)("td",null,(0,s.zw)(Number((0,n.SU)(l).weatherEnd.temperature).toFixed(1))+"°C ",1)]),(0,a._)("tr",null,[(0,a._)("td",null,[(0,a._)("img",{class:"weather-img weather-img-small",src:"/img/weather/pour-rain.svg",alt:t.$t("workouts.WEATHER.HUMIDITY"),title:t.$t("workouts.WEATHER.HUMIDITY")},null,8,ot)]),(0,a._)("td",null,(0,s.zw)(Number(100*(0,n.SU)(l).weatherStart.humidity).toFixed(1))+"% ",1),(0,a._)("td",null,(0,s.zw)(Number(100*(0,n.SU)(l).weatherEnd.humidity).toFixed(1))+"% ",1)]),(0,a._)("tr",null,[(0,a._)("td",null,[(0,a._)("img",{class:"weather-img weather-img-small",src:"/img/weather/breeze.svg",alt:t.$t("workouts.WEATHER.WIND"),title:t.$t("workouts.WEATHER.WIND")},null,8,at)]),(0,a._)("td",null,[(0,a.Wm)(q,{weather:(0,n.SU)(l).weatherStart,useImperialUnits:(0,n.SU)(o)},null,8,["weather","useImperialUnits"])]),(0,a._)("td",null,[(0,a.Wm)(q,{weather:(0,n.SU)(l).weatherEnd,useImperialUnits:(0,n.SU)(o)},null,8,["weather","useImperialUnits"])])])])])])):(0,a.kq)("",!0)}});const lt=(0,O.Z)(nt,[["__scopeId","data-v-76e9ab62"]]);var rt=lt;const st=t=>((0,a.dD)("data-v-dc2fbc66"),t=t(),(0,a.Cn)(),t),it={id:"workout-info"},ut={class:"workout-data"},dt=st((()=>(0,a._)("i",{class:"fa fa-clock-o","aria-hidden":"true"},null,-1))),ct={class:"label"},pt=(0,a.Uk)(": "),mt={class:"value"},wt={key:0},kt={class:"value"},ft={class:"value"},vt={class:"workout-data"},gt=st((()=>(0,a._)("i",{class:"fa fa-road","aria-hidden":"true"},null,-1))),_t={class:"label"},yt=(0,a.Uk)(": "),St={class:"workout-data"},Ut=st((()=>(0,a._)("i",{class:"fa fa-tachometer","aria-hidden":"true"},null,-1))),ht={class:"label"},bt=(0,a.Uk)(": "),Tt=st((()=>(0,a._)("br",null,null,-1))),Et={class:"label"},Dt=(0,a.Uk)(": "),Ot={key:0,class:"workout-data"},It=["alt"],At={class:"label"},Ct=(0,a.Uk)(": "),Rt=st((()=>(0,a._)("br",null,null,-1))),$t={class:"label"},Nt=(0,a.Uk)(": "),xt={key:1,class:"workout-data"},zt=st((()=>(0,a._)("i",{class:"fa fa-location-arrow","aria-hidden":"true"},null,-1))),Lt={class:"label"},Wt=(0,a.Uk)(": "),jt=st((()=>(0,a._)("br",null,null,-1))),Bt={class:"label"},Pt=(0,a.Uk)(": ");var Ft=(0,a.aZ)({name:"WorkoutData",props:{workoutObject:null,useImperialUnits:{type:Boolean}},setup(t){const e=t,{workoutObject:o,useImperialUnits:l}=(0,n.BK)(e),r=(0,a.Fl)((()=>"0:00:00"!==e.workoutObject.pauses&&null!==e.workoutObject.pauses));return(t,e)=>{const i=(0,a.up)("Distance");return(0,a.wg)(),(0,a.iD)("div",it,[(0,a._)("div",ut,[dt,(0,a._)("span",ct,(0,s.zw)(t.$t("workouts.DURATION")),1),pt,(0,a._)("span",mt,(0,s.zw)((0,n.SU)(o).moving),1),(0,a.Wm)(L,{workoutObject:(0,n.SU)(o),recordType:"LD"},null,8,["workoutObject"]),(0,n.SU)(r)?((0,a.wg)(),(0,a.iD)("div",wt,[(0,a.Uk)(" ("+(0,s.zw)(t.$t("workouts.PAUSES"))+": ",1),(0,a._)("span",kt,(0,s.zw)((0,n.SU)(o).pauses),1),(0,a.Uk)(" - "+(0,s.zw)(t.$t("workouts.TOTAL_DURATION"))+": ",1),(0,a._)("span",ft,(0,s.zw)((0,n.SU)(o).duration)+")",1)])):(0,a.kq)("",!0)]),(0,a._)("div",vt,[gt,(0,a._)("span",_t,(0,s.zw)(t.$t("workouts.DISTANCE")),1),yt,(0,a.Wm)(i,{distance:(0,n.SU)(o).distance,digits:3,unitFrom:"km",strong:!0,useImperialUnits:(0,n.SU)(l)},null,8,["distance","useImperialUnits"]),(0,a.Wm)(L,{workoutObject:(0,n.SU)(o),recordType:"FD"},null,8,["workoutObject"])]),(0,a._)("div",St,[Ut,(0,a._)("span",ht,(0,s.zw)(t.$t("workouts.AVERAGE_SPEED")),1),bt,(0,a.Wm)(i,{distance:(0,n.SU)(o).aveSpeed,unitFrom:"km",speed:!0,strong:!0,useImperialUnits:(0,n.SU)(l)},null,8,["distance","useImperialUnits"]),(0,a.Wm)(L,{workoutObject:(0,n.SU)(o),recordType:"AS"},null,8,["workoutObject"]),Tt,(0,a._)("span",Et,(0,s.zw)(t.$t("workouts.MAX_SPEED")),1),Dt,(0,a.Wm)(i,{distance:(0,n.SU)(o).maxSpeed,unitFrom:"km",speed:!0,strong:!0,useImperialUnits:(0,n.SU)(l)},null,8,["distance","useImperialUnits"]),(0,a.Wm)(L,{workoutObject:(0,n.SU)(o),recordType:"MS"},null,8,["workoutObject"])]),null!==(0,n.SU)(o).maxAlt&&null!==(0,n.SU)(o).minAlt?((0,a.wg)(),(0,a.iD)("div",Ot,[(0,a._)("img",{class:"mountains",src:"/img/workouts/mountains.svg",alt:t.$t("workouts.ELEVATION")},null,8,It),(0,a._)("span",At,(0,s.zw)(t.$t("workouts.MIN_ALTITUDE")),1),Ct,(0,a.Wm)(i,{distance:(0,n.SU)(o).minAlt,unitFrom:"m",strong:!0,useImperialUnits:(0,n.SU)(l)},null,8,["distance","useImperialUnits"]),Rt,(0,a._)("span",$t,(0,s.zw)(t.$t("workouts.MAX_ALTITUDE")),1),Nt,(0,a.Wm)(i,{distance:(0,n.SU)(o).maxAlt,unitFrom:"m",strong:!0,useImperialUnits:(0,n.SU)(l)},null,8,["distance","useImperialUnits"])])):(0,a.kq)("",!0),null!==(0,n.SU)(o).ascent&&null!==(0,n.SU)(o).descent?((0,a.wg)(),(0,a.iD)("div",xt,[zt,(0,a._)("span",Lt,(0,s.zw)(t.$t("workouts.ASCENT")),1),Wt,(0,a.Wm)(i,{distance:(0,n.SU)(o).ascent,unitFrom:"m",strong:!0,useImperialUnits:(0,n.SU)(l)},null,8,["distance","useImperialUnits"]),jt,(0,a._)("span",Bt,(0,s.zw)(t.$t("workouts.DESCENT")),1),Pt,(0,a.Wm)(i,{distance:(0,n.SU)(o).descent,unitFrom:"m",strong:!0,useImperialUnits:(0,n.SU)(l)},null,8,["distance","useImperialUnits"])])):(0,a.kq)("",!0),(0,a.Wm)(rt,{workoutObject:(0,n.SU)(o),useImperialUnits:(0,n.SU)(l)},null,8,["workoutObject","useImperialUnits"])])}}});const Mt=(0,O.Z)(Ft,[["__scopeId","data-v-dc2fbc66"]]);var Ht=Mt;function Zt(t,e){return Array.from(t.getElementsByTagName(e))}function qt(t){return t?.normalize(),t&&t.textContent||""}function Gt(t,e,o){const a=t.getElementsByTagName(e),n=a.length?a[0]:null;return n&&o&&o(n),n}function Kt(t,e,o){const a={};if(!t)return a;const n=t.getElementsByTagName(e),l=n.length?n[0]:null;return l&&o?o(l,a):a}function Yt(t,e,o){const a=qt(Gt(t,e));return a&&o&&o(a)||{}}function Vt(t,e,o){const a=parseFloat(qt(Gt(t,e)));if(!isNaN(a))return a&&o&&o(a)||{}}function Jt(t,e,o){const a=parseFloat(qt(Gt(t,e)));if(!isNaN(a))return a&&o&&o(a),a}function Xt(t,e){const o={};for(const a of e)Yt(t,a,(t=>{o[a]=t}));return o}function Qt(t){return 1===t?.nodeType}function te(t){return Kt(t,"line",(t=>{const e=Object.assign({},Yt(t,"color",(t=>({stroke:`#${t}`}))),Vt(t,"opacity",(t=>({"stroke-opacity":t}))),Vt(t,"width",(t=>({"stroke-width":96*t/25.4}))));return e}))}function ee(t){let e=[];if(null===t)return e;for(const o of Array.from(t.childNodes)){if(!Qt(o))continue;const t=oe(o.nodeName);if("gpxtpx:TrackPointExtension"===t)e=e.concat(ee(o));else{const a=qt(o);e.push([t,ae(a)])}}return e}function oe(t){return["heart","gpxtpx:hr","hr"].includes(t)?"heart":t}function ae(t){const e=parseFloat(t);return isNaN(e)?t:e}function ne(t){const e=[parseFloat(t.getAttribute("lon")||""),parseFloat(t.getAttribute("lat")||"")];if(isNaN(e[0])||isNaN(e[1]))return null;Jt(t,"ele",(t=>{e.push(t)}));const o=Gt(t,"time");return{coordinates:e,time:o?qt(o):null,extendedValues:ee(Gt(t,"extensions"))}}function le(t){const e=Xt(t,["name","cmt","desc","type","time","keywords"]),o=Array.from(t.getElementsByTagNameNS("http://www.garmin.com/xmlschemas/GpxExtensions/v3","*"));for(const n of o)n.parentNode?.parentNode===t&&(e[n.tagName.replace(":","_")]=qt(n));const a=Zt(t,"link");return a.length&&(e.links=a.map((t=>Object.assign({href:t.getAttribute("href")},Xt(t,["text","type"]))))),e}function re(t,e){const o=Zt(t,e),a=[],n=[],l={};for(let r=0;r1,r=Object.assign({_gpxType:"trk"},le(t),te(Gt(t,"extensions")),a.length?{coordinateProperties:{times:l?a:a[0]}}:{});for(const s of n){o.push(s.line),r.coordinateProperties||(r.coordinateProperties={});const t=r.coordinateProperties,e=Object.entries(s.extendedValues);for(let o=0;onew Array(t.line.length).fill(null)))),t[a][o]=r):t[a]=r}}return{type:"Feature",properties:r,geometry:l?{type:"MultiLineString",coordinates:o}:{type:"LineString",coordinates:o[0]}}}function ue(t){const e=Object.assign(le(t),Xt(t,["sym"])),o=ne(t);return o?{type:"Feature",properties:e,geometry:{type:"Point",coordinates:o.coordinates}}:null}function*de(t){for(const e of Zt(t,"trk")){const t=ie(e);t&&(yield t)}for(const e of Zt(t,"rte")){const t=se(e);t&&(yield t)}for(const e of Zt(t,"wpt")){const t=ue(e);t&&(yield t)}}function ce(t){return{type:"FeatureCollection",features:Array.from(de(t))}}const pe=(t,e)=>{let o;return function(...a){const n=this;o&&clearTimeout(o),o=setTimeout((()=>{t.apply(n,a),o=null}),e)}},me=t=>t&&"function"===typeof t.charAt?t.charAt(0).toUpperCase()+t.slice(1):t,we=(t,e,o)=>{for(const n in o){const l="set"+me(n);t[l]?(0,a.YP)((()=>o[n]),((e,o)=>{t[l](e,o)})):e[l]&&(0,a.YP)((()=>o[n]),(t=>{e[l](t)}))}},ke=t=>{const e={};for(const o in t)if(o.startsWith("on")&&!o.startsWith("onUpdate")&&"onReady"!==o){const a=o.slice(2).toLocaleLowerCase();e[a]=t[o]}return e},fe=async t=>{const e=await Promise.all([o.e(431).then(o.t.bind(o,6431,17)),o.e(93).then(o.t.bind(o,7093,17)),o.e(858).then(o.t.bind(o,8858,17))]);delete t.Default.prototype._getIconUrl,t.Default.mergeOptions({iconRetinaUrl:e[0].default,iconUrl:e[1].default,shadowUrl:e[2].default})},ve=t=>{const e=(0,n.iH)((()=>console.warn(`Method ${t} has been invoked without being replaced`))),o=(...t)=>e.value(...t);return o.wrapped=e,(0,a.JJ)(t,o),o},ge=(t,e)=>t.wrapped.value=e,_e="object"===typeof self&&self.self===self&&self||"object"===typeof o.g&&o.g.global===o.g&&o.g||void 0,ye="useGlobalLeaflet",Se={options:{type:Object,default:()=>({})}},Ue=t=>({options:t.options,methods:{}}),he={...Se,pane:{type:String,default:"overlayPane"},attribution:{type:String,default:null},name:{type:String,custom:!0,default:void 0},layerType:{type:String,custom:!0,default:void 0},visible:{type:Boolean,custom:!0,default:!0}},be=(t,e,o)=>{const n=(0,a.f3)("addLayer"),l=(0,a.f3)("removeLayer"),{options:r,methods:s}=Ue(t),i={...r,attribution:t.attribution,pane:t.pane},u=()=>n({leafletObject:e.value}),d=()=>l({leafletObject:e.value}),c={...s,setAttribution(t,e){const o=this.$parent.leafletObject.attributionControl;o.removeAttribution(e).addAttribution(t)},setName(){d(),t.visible&&u()},setLayerType(){d(),t.visible&&u()},setVisible(t){e.value&&(t?u():d())},bindPopup({leafletObject:t}){e.value.bindPopup(t)},bindTooltip({leafletObject:t}){e.value.bindTooltip(t)},unbindTooltip(){const t=e.value?e.value.getTooltip():null;t&&t.unbindTooltip()},unbindPopup(){const t=e.value?e.value.getPopup():null;t&&t.unbindPopup()},updateVisibleProp(t){o.emit("update:visible",t)}};return(0,a.JJ)("bindPopup",c.bindPopup),(0,a.JJ)("bindTooltip",c.bindTooltip),(0,a.JJ)("unbindTooltip",c.unbindTooltip),(0,a.JJ)("unbindPopup",c.unbindPopup),(0,a.Ah)((()=>{c.unbindPopup(),c.unbindTooltip(),d()})),{options:i,methods:c}},Te=(t,e)=>{if(t&&e.default)return(0,a.h)("div",{style:{display:"none"}},e.default())},Ee={...Se,interactive:{type:Boolean,default:!0},bubblingMouseEvents:{type:Boolean,default:!0}},De={...he,...Ee,stroke:{type:Boolean,custom:!0,default:!0},color:{type:String,custom:!0,default:"#3388ff"},weight:{type:Number,custom:!0,default:3},opacity:{type:Number,custom:!0,default:1},lineCap:{type:String,custom:!0,default:"round"},lineJoin:{type:String,custom:!0,default:"round"},dashArray:{type:String,custom:!0,default:null},dashOffset:{type:String,custom:!0,default:null},fill:{type:Boolean,custom:!0,default:!1},fillColor:{type:String,custom:!0,default:"#3388ff"},fillOpacity:{type:Number,custom:!0,default:.2},fillRule:{type:String,custom:!0,default:"evenodd"},className:{type:String,custom:!0,default:null}},Oe={...De,latLng:{type:[Object,Array],custom:!0,default:null},radius:{type:Number,default:null}};const Ie={...Se,position:{type:String,default:"topright"}},Ae=(t,e)=>{const{options:o,methods:n}=Ue(t),l={...o,position:t.position},r={...n,setPosition(t){e.value&&e.value.setPosition(t)}};return(0,a.Ah)((()=>{e.value&&e.value.remove()})),{options:l,methods:r}},Ce=t=>t.default?(0,a.h)("div",{ref:"root"},t.default()):null;var Re={name:"LControl",props:{...Ie,disableClickPropagation:{type:Boolean,custom:!0,default:!0},disableScrollPropagation:{type:Boolean,custom:!0,default:!1}},setup(t,e){const l=(0,n.iH)({}),r=(0,n.iH)(null),s=(0,a.f3)(ye),i=(0,a.f3)("registerControl"),{options:u,methods:d}=Ae(t,l);return(0,a.bv)((async()=>{const{Control:n,DomEvent:c}=s?_e.L:await o.e(633).then(o.bind(o,6633)),p=n.extend({onAdd(){return r.value}});l.value=new p(u),we(d,l.value,t),i({leafletObject:l.value}),t.disableClickPropagation&&c.disableClickPropagation(r.value),t.disableScrollPropagation&&c.disableScrollPropagation(r.value),(0,a.Y3)((()=>e.emit("ready",l.value)))})),{root:r,leafletObject:l}},render(){return Ce(this.$slots)},__file:"src/components/LControl.vue"};const $e={...Ie,collapsed:{type:Boolean,default:!0},autoZIndex:{type:Boolean,default:!0},hideSingleBase:{type:Boolean,default:!1},sortLayers:{type:Boolean,default:!1},sortFunction:{type:Function,default:void 0}},Ne=(t,e)=>{const{options:o}=Ae(t,e),a={...o,collapsed:t.collapsed,autoZIndex:t.autoZIndex,hideSingleBase:t.hideSingleBase,sortLayers:t.sortLayers,sortFunction:t.sortFunction},n={addLayer(t){"base"===t.layerType?e.value.addBaseLayer(t.leafletObject,t.name):"overlay"===t.layerType&&e.value.addOverlay(t.leafletObject,t.name)},removeLayer(t){e.value.removeLayer(t.leafletObject)}};return{options:a,methods:n}};var xe={name:"LControlLayers",props:$e,setup(t,e){const l=(0,n.iH)({}),r=(0,a.f3)(ye),s=(0,a.f3)("registerLayerControl"),{options:i,methods:u}=Ne(t,l);return(0,a.bv)((async()=>{const{control:n}=r?_e.L:await o.e(633).then(o.bind(o,6633));l.value=n.layers(null,null,i),we(u,l.value,t),s({...t,...u,leafletObject:l.value}),(0,a.Y3)((()=>e.emit("ready",l.value)))})),{leafletObject:l.value}},render(){return null},__file:"src/components/LControlLayers.vue"};Boolean,Boolean,Boolean;const ze={...he},Le=(t,e,o)=>{const{options:n,methods:l}=be(t,e,o),r={...n},s={...l,addLayer(t){e.value.addLayer(t.leafletObject)},removeLayer(t){e.value.removeLayer(t.leafletObject)}};return(0,a.JJ)("addLayer",s.addLayer),(0,a.JJ)("removeLayer",s.removeLayer),{options:r,methods:s}};const We={...ze,geojson:{type:[Object,Array],default:()=>({})}},je=(t,e)=>{const{options:o,methods:a}=Le(t,e),n={...o,...t},l={...a,setGeojson(t){e.value.clearLayers(),e.value.addData(t)},getGeoJSONData(){return e.value.toGeoJSON()},getBounds(){return e.value.getBounds()}};return{options:n,methods:l}};var Be={props:We,setup(t,e){const l=(0,n.iH)({}),r=(0,n.iH)(!1),s=(0,a.f3)(ye),i=(0,a.f3)("addLayer"),{methods:u,options:d}=je(t,l);return(0,a.bv)((async()=>{const{geoJSON:n,DomEvent:c}=s?_e.L:await o.e(633).then(o.bind(o,6633));l.value=n(t.geojson,d);const p=ke(e.attrs);c.on(l.value,p),we(u,l.value,t),i({...t,...u,leafletObject:l.value}),r.value=!0,(0,a.Y3)((()=>e.emit("ready",l.value)))})),{ready:r,leafletObject:l}},render(){return Te(this.ready,this.$slots)},__file:"src/components/LGeoJson.vue"};const Pe={...he,pane:{type:String,default:"tilePane"},opacity:{type:Number,custom:!1,default:1},zIndex:{type:Number,default:1},tileSize:{type:Number,default:256},noWrap:{type:Boolean,default:!1},minZoom:{type:Number,default:0},maxZoom:{type:Number,default:void 0}},Fe=(t,e,o)=>{const{options:a,methods:n}=be(t,e,o),l={...a,pane:t.pane,opacity:t.opacity,zIndex:t.zIndex,tileSize:t.tileSize,noWrap:t.noWrap,minZoom:t.minZoom,maxZoom:t.maxZoom};return{options:l,methods:{...n}}};const Me={iconUrl:{type:String,custom:!0,default:null},iconRetinaUrl:{type:String,custom:!0,default:null},iconSize:{type:[Object,Array],custom:!0,default:null},iconAnchor:{type:[Object,Array],custom:!0,default:null},popupAnchor:{type:[Object,Array],custom:!0,default:()=>[0,0]},tooltipAnchor:{type:[Object,Array],custom:!0,default:()=>[0,0]},shadowUrl:{type:String,custom:!0,default:null},shadowRetinaUrl:{type:String,custom:!0,default:null},shadowSize:{type:[Object,Array],custom:!0,default:null},shadowAnchor:{type:[Object,Array],custom:!0,default:null},bgPos:{type:[Object,Array],custom:!0,default:()=>[0,0]},className:{type:String,custom:!0,default:""},options:{type:Object,custom:!0,default:()=>({})}};var He={name:"LIcon",props:{...Me,...Se},setup(t,e){const l=(0,n.iH)(null),r=(0,a.f3)(ye),s=(0,a.f3)("canSetParentHtml"),i=(0,a.f3)("setParentHtml"),u=(0,a.f3)("setIcon");let d,c,p,m,w;const k=(o,a,n)=>{const l=o&&o.innerHTML;if(!a)return void(n&&w&&s()&&i(l));const r=ke(e.attrs);w&&c(w,r);const{options:k}=Ue(t),f={...k,iconUrl:t.iconUrl,iconRetinaUrl:t.iconRetinaUrl,iconSize:t.iconSize,iconAnchor:t.iconAnchor,popupAnchor:t.popupAnchor,tooltipAnchor:t.tooltipAnchor,shadowUrl:t.shadowUrl,shadowRetinaUrl:t.shadowRetinaUrl,shadowSize:t.shadowSize,shadowAnchor:t.shadowAnchor,bgPos:t.bgPos,className:t.className,html:l||t.html};w=f.html?p(f):m(f),d(w,r),u(w)},f=()=>{(0,a.Y3)((()=>k(l.value,!0,!1)))},v=()=>{(0,a.Y3)((()=>k(l.value,!1,!0)))},g={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(0,a.bv)((async()=>{const{DomEvent:e,divIcon:a,icon:n}=r?_e.L:await o.e(633).then(o.bind(o,6633));d=e.on,c=e.off,p=a,m=n,we(g,{},t);const s=new MutationObserver(v);s.observe(l.value,{attributes:!0,childList:!0,characterData:!0,subtree:!0}),f()})),{root:l}},render(){const t=this.$slots.default?this.$slots.default():void 0;return(0,a.h)("div",{ref:"root"},t)},__file:"src/components/LIcon.vue"};Boolean,Boolean;var Ze={props:ze,setup(t,e){const l=(0,n.iH)({}),r=(0,n.iH)(!1),s=(0,a.f3)(ye),i=(0,a.f3)("addLayer"),{methods:u}=Le(t,l,e);return(0,a.bv)((async()=>{const{layerGroup:n,DomEvent:d}=s?_e.L:await o.e(633).then(o.bind(o,6633));l.value=n(t.options);const c=ke(e.attrs);d.on(l.value,c),we(u,l.value,t),i({...t,...u,leafletObject:l.value}),r.value=!0,(0,a.Y3)((()=>e.emit("ready",l.value)))})),{ready:r,leafletObject:l}},render(){return Te(this.ready,this.$slots)},__file:"src/components/LLayerGroup.vue"},qe={emits:["ready","update:zoom","update:center","update:bounds"],props:{...Se,center:{type:[Object,Array],default:()=>[0,0]},bounds:{type:[Array,Object],default:void 0},maxBounds:{type:[Array,Object],default:void 0},zoom:{type:Number,default:0},minZoom:{type:Number,default:void 0},maxZoom:{type:Number,default:void 0},paddingBottomRight:{type:Array,default:void 0},paddingTopLeft:{type:Array,default:void 0},padding:{type:Array,default:void 0},worldCopyJump:{type:Boolean,default:!1},crs:{type:[String,Object],default:"EPSG3857"},maxBoundsViscosity:{type:Number,default:void 0},inertia:{type:Boolean,default:void 0},inertiaDeceleration:{type:Number,default:void 0},inertiaMaxSpeed:{type:Number,default:void 0},easeLinearity:{type:Number,default:void 0},zoomAnimation:{type:Boolean,default:void 0},zoomAnimationThreshold:{type:Number,default:void 0},fadeAnimation:{type:Boolean,default:void 0},markerZoomAnimation:{type:Boolean,default:void 0},noBlockingAnimations:{type:Boolean,default:!1},useGlobalLeaflet:{type:Boolean,default:!1}},setup(t,e){const l=(0,n.iH)(null),r=(0,n.qj)({ready:!1,leafletRef:{},layersToAdd:[],layersInControl:[]}),{options:s}=Ue(t),i={...s,minZoom:t.minZoom,maxZoom:t.maxZoom,maxBounds:t.maxBounds,maxBoundsViscosity:t.maxBoundsViscosity,worldCopyJump:t.worldCopyJump,crs:t.crs,center:t.center,zoom:t.zoom,inertia:t.inertia,inertiaDeceleration:t.inertiaDeceleration,inertiaMaxSpeed:t.inertiaMaxSpeed,easeLinearity:t.easeLinearity,zoomAnimation:t.zoomAnimation,zoomAnimationThreshold:t.zoomAnimationThreshold,fadeAnimation:t.fadeAnimation,markerZoomAnimation:t.markerZoomAnimation},u=ve("addLayer"),d=ve("removeLayer"),c=ve("registerControl"),p=ve("registerLayerControl");(0,a.JJ)(ye,t.useGlobalLeaflet);const m={moveEndHandler(){e.emit("update:zoom",r.leafletRef.getZoom()),e.emit("update:center",r.leafletRef.getCenter()),e.emit("update:bounds",r.leafletRef.getBounds())},overlayAddHandler(t){const e=r.layersInControl.find((e=>e.name===t.name));e&&e.updateVisibleProp(!0)},overlayRemoveHandler(t){const e=r.layersInControl.find((e=>e.name===t.name));e&&e.updateVisibleProp(!1)}};(0,a.bv)((async()=>{t.useGlobalLeaflet&&(_e.L=_e.L||await o.e(243).then(o.t.bind(o,5243,23)));const{map:n,CRS:s,Icon:w,latLngBounds:k,latLng:f,DomEvent:v}=t.useGlobalLeaflet?_e.L:await o.e(633).then(o.bind(o,6633));try{i.beforeMapMount&&await i.beforeMapMount()}catch(S){console.error(`The following error occurred running the provided beforeMapMount hook ${S.message}`)}await fe(w);const g="string"==typeof i.crs?s[i.crs]:i.crs;i.crs=g||s.EPSG3857;const _={addLayer(t){if(void 0!==t.layerType)if(void 0===r.layerControl)r.layersToAdd.push(t);else{const e=r.layersInControl.find((e=>e.leafletObject._leaflet_id===t.leafletObject._leaflet_id));e||(r.layerControl.addLayer(t),r.layersInControl.push(t))}!1!==t.visible&&r.leafletRef.addLayer(t.leafletObject)},removeLayer(t){void 0!==t.layerType&&(void 0===r.layerControl?r.layersToAdd=r.layersToAdd.filter((e=>e.name!==t.name)):(r.layerControl.removeLayer(t.leafletObject),r.layersInControl=r.layersInControl.filter((e=>e.leafletObject._leaflet_id!==t.leafletObject._leaflet_id)))),r.leafletRef.removeLayer(t.leafletObject)},registerLayerControl(t){r.layerControl=t,r.layersToAdd.forEach((t=>{r.layerControl.addLayer(t)})),r.layersToAdd=[],c(t)},registerControl(t){r.leafletRef.addControl(t.leafletObject)},setZoom(e){const o=r.leafletRef.getZoom();e!==o&&r.leafletRef.setZoom(e,{animate:!t.noBlockingAnimations&&null})},setPaddingBottomRight(t){r.paddingBottomRight=t},setPaddingTopLeft(t){r.paddingTopLeft=t},setPadding(t){r.padding=t},setCrs(t){const e=r.leafletRef.getBounds();r.leafletRef.options.crs=t,r.leafletRef.fitBounds(e,{animate:!1,padding:[0,0]})},fitBounds(t){r.leafletRef.fitBounds(t,{animate:!this.noBlockingAnimations&&null})},setBounds(t){if(!t)return;const e=k(t);if(!e.isValid())return;const o=r.lastSetBounds||r.leafletRef.getBounds(),a=!o.equals(e,0);a&&(r.lastSetBounds=e,r.leafletRef.fitBounds(e,this.fitBoundsOptions))},setCenter(t){if(null==t)return;const e=f(t),o=r.lastSetCenter||r.leafletRef.getCenter();o.lat===e.lat&&o.lng===e.lng||(r.lastSetCenter=e,r.leafletRef.panTo(e,{animate:!this.noBlockingAnimations&&null}))}};ge(u,_.addLayer),ge(d,_.removeLayer),ge(c,_.registerControl),ge(p,_.registerLayerControl),r.leafletRef=n(l.value,i),we(_,r.leafletRef,t);const y=ke(e.attrs);r.leafletRef.on("moveend",pe(m.moveEndHandler,100)),r.leafletRef.on("overlayadd",m.overlayAddHandler),r.leafletRef.on("overlayremove",m.overlayRemoveHandler),v.on(r.leafletRef,y),r.ready=!0,(0,a.Y3)((()=>e.emit("ready",r.leafletRef)))})),(0,a.Jd)((()=>{r.leafletRef&&r.leafletRef.remove()}));const w=(0,a.Fl)((()=>r.leafletRef)),k=(0,a.Fl)((()=>r.ready));return{root:l,ready:k,leafletObject:w}},render(){return(0,a.h)("div",{style:{width:"100%",height:"100%"},ref:"root"},this.ready?this.$slots.default():{})},__file:"src/components/LMap.vue"};const Ge={...he,pane:{type:String,default:"markerPane"},draggable:{type:Boolean,custom:!0,default:!1},latLng:{type:[Object,Array],custom:!0,default:null},icon:{type:[Object],default:()=>{},custom:!1},zIndexOffset:{type:Number,custom:!1,default:null}},Ke=(t,e,o)=>{const{options:a,methods:n}=be(t,e,o),l={...a,...t},r={...n,setDraggable(t){e.value.dragging&&(t?e.value.dragging.enable():e.value.dragging.disable())},latLngSync(t){o.emit("update:latLng",t.latlng),o.emit("update:lat-lng",t.latlng)},setLatLng(t){if(null!=t&&e.value){const o=e.value.getLatLng();o&&o.equals(t)||e.value.setLatLng(t)}}};return{options:l,methods:r}};var Ye={name:"LMarker",props:Ge,setup(t,e){const l=(0,n.iH)({}),r=(0,n.iH)(!1),s=(0,a.f3)(ye),i=(0,a.f3)("addLayer");(0,a.JJ)("canSetParentHtml",(()=>!!l.value.getElement())),(0,a.JJ)("setParentHtml",(t=>l.value.getElement().innerHTML=t)),(0,a.JJ)("setIcon",(t=>l.value.setIcon&&l.value.setIcon(t)));const{options:u,methods:d}=Ke(t,l,e);return void 0===u.icon&&delete u.icon,(0,a.bv)((async()=>{const{marker:n,DomEvent:c}=s?_e.L:await o.e(633).then(o.bind(o,6633));l.value=n(t.latLng,u);const p=ke(e.attrs);c.on(l.value,p),l.value.on("move",pe(d.latLngSync,100)),we(d,l.value,t),i({...t,...d,leafletObject:l.value}),r.value=!0,(0,a.Y3)((()=>e.emit("ready",l.value)))})),{ready:r,leafletObject:l}},render(){return Te(this.ready,this.$slots)},__file:"src/components/LMarker.vue"};const Ve={...De,latLngs:{type:Array,default:()=>[]},smoothFactor:{type:Number,custom:!0,default:1},noClip:{type:Boolean,custom:!0,default:!1}},Je={...Ve};const Xe={...Se,content:{type:String,default:null}};const Qe={...Pe,tms:{type:Boolean,default:!1},subdomains:{type:String,default:"abc"},detectRetina:{type:Boolean,default:!1},url:{type:String,default:null}},to=(t,e)=>{const{options:o,methods:a}=Fe(t,e),n={...o,tms:t.tms,subdomains:t.subdomains,detectRetina:t.detectRetina};return{options:n,methods:{...a}}};var eo={props:Qe,setup(t,e){const l=(0,n.iH)({}),r=(0,a.f3)(ye),s=(0,a.f3)("addLayer"),{options:i,methods:u}=to(t,l);return(0,a.bv)((async()=>{const{tileLayer:n,DomEvent:d}=r?_e.L:await o.e(633).then(o.bind(o,6633));l.value=n(t.url,i);const c=ke(e.attrs);d.on(l.value,c),we(u,l.value,t),s({...t,...u,leafletObject:l.value}),(0,a.Y3)((()=>e.emit("ready",l.value)))})),{leafletObject:l}},render(){return null},__file:"src/components/LTileLayer.vue"};Boolean,Boolean;var oo=(0,a.aZ)({name:"CustomMarker",props:{markerCoordinates:null,isStart:{type:Boolean}},setup(t){const e=t,{isStart:o,markerCoordinates:l}=(0,n.BK)(e);return(t,e)=>(0,n.SU)(l).latitude?((0,a.wg)(),(0,a.j4)((0,n.SU)(Ye),{key:0,"lat-lng":[(0,n.SU)(l).latitude,(0,n.SU)(l).longitude]},{default:(0,a.w5)((()=>[(0,a.Wm)((0,n.SU)(He),{"icon-url":`/img/workouts/${(0,n.SU)(o)?"start":"finish"}.svg`,iconSize:[15,15]},null,8,["icon-url"])])),_:1},8,["lat-lng"])):(0,a.kq)("",!0)}});const ao=oo;var no=ao,lo=o(8602),ro=o(9917),so=o(2024);const io=t=>((0,a.dD)("data-v-6b490f5d"),t=t(),(0,a.Cn)(),t),uo={id:"workout-map"},co={key:0,class:"leaflet-container"},po={key:1},mo=io((()=>(0,a._)("i",{class:"fa fa-refresh","aria-hidden":"true"},null,-1))),wo={key:1,class:"no-map"};var ko=(0,a.aZ)({name:"index",props:{workoutData:null,markerCoordinates:{default:()=>({})}},setup(t){const e=t,o=(0,ro.o)(),{workoutData:l,markerCoordinates:r}=(0,n.BK)(e),i=(0,n.iH)(null),u=(0,a.Fl)((()=>_())),d=(0,a.Fl)((()=>o.getters[lo.SY.GETTERS.APP_CONFIG])),c=(0,a.Fl)((()=>v(u))),p=(0,a.Fl)((()=>e.workoutData&&e.workoutData.gpx?f(e.workoutData.gpx):{})),m=(0,a.Fl)((()=>e.workoutData&&e.workoutData.chartData.length>0?{latitude:e.workoutData.chartData[0].latitude,longitude:e.workoutData.chartData[0].longitude}:{})),w=(0,a.Fl)((()=>e.workoutData&&e.workoutData.chartData.length>0?{latitude:e.workoutData.chartData[e.workoutData.chartData.length-1].latitude,longitude:e.workoutData.chartData[e.workoutData.chartData.length-1].longitude}:{})),k=(0,n.iH)(!1);function f(t){if(!t||""!==t)try{const e=ce((new DOMParser).parseFromString(t,"text/xml"));return{jsonData:e}}catch(e){return console.error("Invalid gpx content"),{}}return{}}function v(t){return[(t.value[0][0]+t.value[1][0])/2,(t.value[0][1]+t.value[1][1])/2]}function g(t){i.value?.leafletObject&&i.value?.leafletObject.fitBounds(t)}function _(){return e.workoutData?[[e.workoutData.workout.bounds[0],e.workoutData.workout.bounds[1]],[e.workoutData.workout.bounds[2],e.workoutData.workout.bounds[3]]]:[]}function y(){i.value?.leafletObject.fitBounds(_())}function S(){k.value=!k.value,k.value||setTimeout((()=>{y()}),100)}return(t,e)=>{const o=(0,a.up)("VFullscreen");return(0,a.wg)(),(0,a.iD)("div",uo,[(0,n.SU)(l).loading?((0,a.wg)(),(0,a.iD)("div",co)):((0,a.wg)(),(0,a.iD)("div",po,[(0,n.SU)(l).workout.with_gpx?((0,a.wg)(),(0,a.j4)(o,{key:0,modelValue:k.value,"onUpdate:modelValue":e[1]||(e[1]=t=>k.value=t)},{default:(0,a.w5)((()=>[(0,a._)("div",{class:(0,s.C_)(["leaflet-container",{"fullscreen-map":k.value}])},[(0,n.SU)(p).jsonData&&(0,n.SU)(c)&&2===(0,n.SU)(u).length?((0,a.wg)(),(0,a.j4)((0,n.SU)(qe),{key:0,zoom:13,maxZoom:19,center:(0,n.SU)(c),bounds:(0,n.SU)(u),ref_key:"workoutMap",ref:i,onReady:e[0]||(e[0]=t=>g((0,n.SU)(u)))},{default:(0,a.w5)((()=>[(0,a.Wm)((0,n.SU)(xe)),(0,a.Wm)((0,n.SU)(Re),{position:"topleft",class:"map-control",onClick:y},{default:(0,a.w5)((()=>[mo])),_:1}),(0,a.Wm)((0,n.SU)(Re),{position:"topleft",class:"map-control",onClick:S},{default:(0,a.w5)((()=>[(0,a._)("i",{class:(0,s.C_)("fa fa-"+(k.value?"compress":"arrows-alt")),"aria-hidden":"true"},null,2)])),_:1}),(0,a.Wm)((0,n.SU)(eo),{url:`${(0,n.SU)(so.k)()}workouts/map_tile/{s}/{z}/{x}/{y}.png`,attribution:(0,n.SU)(d).map_attribution,bounds:(0,n.SU)(u)},null,8,["url","attribution","bounds"]),(0,a.Wm)((0,n.SU)(Be),{geojson:(0,n.SU)(p).jsonData},null,8,["geojson"]),(0,n.SU)(r).latitude?((0,a.wg)(),(0,a.j4)((0,n.SU)(Ye),{key:0,"lat-lng":[(0,n.SU)(r).latitude,(0,n.SU)(r).longitude]},null,8,["lat-lng"])):(0,a.kq)("",!0),(0,a.Wm)((0,n.SU)(Ze),{name:t.$t("workouts.START_AND_FINISH"),"layer-type":"overlay"},{default:(0,a.w5)((()=>[(0,n.SU)(m).latitude?((0,a.wg)(),(0,a.j4)(no,{key:0,markerCoordinates:(0,n.SU)(m),isStart:!0},null,8,["markerCoordinates"])):(0,a.kq)("",!0),(0,n.SU)(w).latitude?((0,a.wg)(),(0,a.j4)(no,{key:1,markerCoordinates:(0,n.SU)(w),isStart:!1},null,8,["markerCoordinates"])):(0,a.kq)("",!0)])),_:1},8,["name"])])),_:1},8,["center","bounds"])):(0,a.kq)("",!0)],2)])),_:1},8,["modelValue"])):((0,a.wg)(),(0,a.iD)("div",wo,(0,s.zw)(t.$t("workouts.NO_MAP")),1))]))])}}});const fo=(0,O.Z)(ko,[["__scopeId","data-v-6b490f5d"]]);var vo=fo,go=o(6558);const _o={class:"workout-detail"};var yo=(0,a.aZ)({name:"index",props:{authUser:null,displaySegment:{type:Boolean},sports:null,workoutData:null,markerCoordinates:{default:()=>({})}},setup(t){const e=t,o=(0,l.yj)(),r=(0,ro.o)(),{authUser:s,markerCoordinates:i,workoutData:u}=(0,n.BK)(e),d=(0,a.Fl)((()=>e.workoutData.workout));let c=(0,n.iH)(o.params.workoutId?+o.params.segmentId:null);const p=(0,a.Fl)((()=>d.value.segments.length>0&&c.value?d.value.segments[+c.value-1]:null));let m=(0,n.iH)(!1);const w=(0,a.Fl)((()=>e.sports?e.sports.find((t=>t.id===e.workoutData.workout.sport_id)):{})),k=(0,a.Fl)((()=>v(d.value,p.value)));function f(t,e,o){const a=e&&o&&1!==o?`/workouts/${t.id}/segment/${o-1}`:!e&&t.previous_workout?`/workouts/${t.previous_workout}`:null,n=e&&o&&oo.params.segmentId),(async t=>{t&&(c.value=+t)})),(t,e)=>{const o=(0,a.up)("Modal"),l=(0,a.up)("Card");return(0,a.wg)(),(0,a.iD)("div",_o,[(0,n.SU)(m)?((0,a.wg)(),(0,a.j4)(o,{key:0,title:t.$t("common.CONFIRMATION"),message:t.$t("workouts.WORKOUT_DELETION_CONFIRMATION"),onConfirmAction:e[0]||(e[0]=t=>_((0,n.SU)(k).workoutId)),onCancelAction:e[1]||(e[1]=t=>g(!1))},null,8,["title","message"])):(0,a.kq)("",!0),(0,a.Wm)(l,null,{title:(0,a.w5)((()=>[(0,a.Wm)(A,{sport:(0,n.SU)(w),workoutObject:(0,n.SU)(k),onDisplayModal:e[2]||(e[2]=t=>g(!0))},null,8,["sport","workoutObject"])])),content:(0,a.w5)((()=>[(0,a.Wm)(vo,{workoutData:(0,n.SU)(u),markerCoordinates:(0,n.SU)(i)},null,8,["workoutData","markerCoordinates"]),(0,a.Wm)(Ht,{workoutObject:(0,n.SU)(k),useImperialUnits:(0,n.SU)(s).imperial_units},null,8,["workoutObject","useImperialUnits"])])),_:1})])}}});const So=(0,O.Z)(yo,[["__scopeId","data-v-4ddbe26a"]]);var Uo=So,ho=o(6518);o(1703);const bo=t=>{const e=document.getElementById(t);if(e){let t=e.querySelector("ul");return t||(t=document.createElement("ul"),e.appendChild(t)),t}throw new Error("No legend container")},To={id:"htmlLegend",afterUpdate(t,e,o){const a=bo(o.containerID);while(a.firstChild)a.firstChild.remove();const n=t.options.plugins?.legend?.labels?.generateLabels?t.options.plugins?.legend?.labels?.generateLabels(t):[];n.forEach((e=>{const o=document.createElement("li");o.onclick=()=>{t.setDatasetVisibility(e.datasetIndex,!t.isDatasetVisible(e.datasetIndex)),t.update()};const n=document.createElement("input");n&&(n.type="checkbox",n.id=e.text,n.checked=!e.hidden);const l=document.createTextNode(e.text),r=document.createElement("span");r&&(r.style.background=String(e.fillStyle),r.style.borderColor=String(e.strokeStyle)),o.appendChild(n),o.appendChild(l),o.appendChild(r),a.appendChild(o)}))}};var Eo=o(3649),Do=o(3768);const Oo=t=>((0,a.dD)("data-v-79120018"),t=t(),(0,a.Cn)(),t),Io={id:"workout-chart"},Ao={class:"chart-radio"},Co=["checked"],Ro=["checked"],$o=Oo((()=>(0,a._)("div",{id:"chart-legend"},null,-1))),No={class:"chart-info"},xo={class:"no-data-cleaning"},zo={class:"elevation-start"},Lo=["checked"];var Wo=(0,a.aZ)({name:"index",props:{authUser:null,workoutData:null},emits:["getCoordinates"],setup(t,{emit:e}){const o=t,{t:l}=(0,W.QT)();let r=(0,n.iH)(!0),i=(0,n.iH)(!0);const u=(0,a.Fl)((()=>(0,Do.EX)(o.workoutData.chartData,l,o.authUser.imperial_units))),d=y("km"),c=y("m");let p=(0,a.Fl)((()=>({labels:r.value?u.value.distance_labels:u.value.duration_labels,datasets:JSON.parse(JSON.stringify([u.value.datasets.speed,u.value.datasets.elevation]))})));const m=(0,a.Fl)((()=>u.value.coordinates)),w=(0,a.Fl)((()=>({responsive:!0,maintainAspectRatio:!0,animation:!1,layout:{padding:{top:22}},scales:{[r.value?"xDistance":"xDuration"]:{grid:{drawOnChartArea:!1},ticks:{count:10,callback:function(t){return r.value?Number(t).toFixed(2):v(t)}},type:"linear",bounds:"data",title:{display:!0,text:r.value?l("workouts.DISTANCE")+` (${d})`:l("workouts.DURATION")}},ySpeed:{grid:{drawOnChartArea:!1},position:"left",title:{display:!0,text:l("workouts.SPEED")+` (${d}/h)`}},yElevation:{beginAtZero:i.value,grid:{drawOnChartArea:!1},position:"right",title:{display:!0,text:l("workouts.ELEVATION")+` (${c})`}}},elements:{point:{pointStyle:"circle",pointRadius:0}},plugins:{datalabels:{display:!1},tooltip:{interaction:{intersect:!1,mode:"index"},callbacks:{label:function(t){const e=` ${t.dataset.label}: ${t.formattedValue}`;return"yElevation"===t.dataset.yAxisID?e+` ${c}`:e+` ${d}/h`},title:function(t){return t.length>0&&g(m.value[t[0].dataIndex]),0===t.length?"":r.value?`${l("workouts.DISTANCE")}: ${t[0].label} ${d}`:`${l("workouts.DURATION")}: ${v(t[0].label.replace(",",""))}`}}},legend:{display:!1},htmlLegend:{containerID:"chart-legend"}}}))),{lineChartProps:k}=(0,ho.tn)({chartData:p,options:w,plugins:[To]});function f(){r.value=!r.value}function v(t){return new Date(1e3*+t).toISOString().substr(11,8)}function g(t){e("getCoordinates",t)}function _(){g({latitude:null,longitude:null})}function y(t){return o.authUser.imperial_units?Eo.Dl[t].defaultTarget:t}return(t,e)=>{const o=(0,a.up)("Card");return(0,a.wg)(),(0,a.iD)("div",Io,[(0,a.Wm)(o,null,{title:(0,a.w5)((()=>[(0,a.Uk)((0,s.zw)(t.$t("workouts.ANALYSIS")),1)])),content:(0,a.w5)((()=>[(0,a._)("div",Ao,[(0,a._)("label",null,[(0,a._)("input",{type:"radio",name:"distance",checked:(0,n.SU)(r),onClick:f},null,8,Co),(0,a.Uk)(" "+(0,s.zw)(t.$t("workouts.DISTANCE")),1)]),(0,a._)("label",null,[(0,a._)("input",{type:"radio",name:"duration",checked:!(0,n.SU)(r),onClick:f},null,8,Ro),(0,a.Uk)(" "+(0,s.zw)(t.$t("workouts.DURATION")),1)])]),$o,(0,a.Wm)((0,n.SU)(ho.wW),(0,a.dG)((0,n.SU)(k),{class:"line-chart",onMouseleave:_}),null,16),(0,a._)("div",No,[(0,a._)("div",xo,(0,s.zw)(t.$t("workouts.NO_DATA_CLEANING")),1),(0,a._)("div",zo,[(0,a._)("label",null,[(0,a._)("input",{type:"checkbox",checked:(0,n.SU)(i),onClick:e[0]||(e[0]=t=>(0,n.dq)(i)?i.value=!(0,n.SU)(i):i=!(0,n.SU)(i))},null,8,Lo),(0,a.Uk)(" "+(0,s.zw)(t.$t("workouts.START_ELEVATION_AT_ZERO")),1)])])])])),_:1})])}}});const jo=(0,O.Z)(Wo,[["__scopeId","data-v-79120018"]]);var Bo=jo;const Po={id:"workout-note"};var Fo=(0,a.aZ)({name:"WorkoutNotes",props:{notes:{default:()=>null}},setup(t){const e=t,{notes:o}=(0,n.BK)(e);return(t,e)=>{const l=(0,a.up)("Card");return(0,a.wg)(),(0,a.iD)("div",Po,[(0,a.Wm)(l,null,{title:(0,a.w5)((()=>[(0,a.Uk)((0,s.zw)(t.$t("workouts.NOTES")),1)])),content:(0,a.w5)((()=>[(0,a.Uk)((0,s.zw)((0,n.SU)(o)&&""!==(0,n.SU)(o)?(0,n.SU)(o):t.$t("workouts.NO_NOTES")),1)])),_:1})])}}});const Mo=(0,O.Z)(Fo,[["__scopeId","data-v-028ad527"]]);var Ho=Mo;const Zo={id:"workout-segments"};var qo=(0,a.aZ)({name:"WorkoutSegments",props:{segments:null,useImperialUnits:{type:Boolean}},setup(t){const e=t,{segments:o,useImperialUnits:l}=(0,n.BK)(e);return(t,e)=>{const r=(0,a.up)("router-link"),i=(0,a.up)("Distance"),u=(0,a.up)("Card");return(0,a.wg)(),(0,a.iD)("div",Zo,[(0,a.Wm)(u,null,{title:(0,a.w5)((()=>[(0,a.Uk)((0,s.zw)(t.$t("workouts.SEGMENT",2)),1)])),content:(0,a.w5)((()=>[(0,a._)("ul",null,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,n.SU)(o),((e,o)=>((0,a.wg)(),(0,a.iD)("li",{key:e.segment_id},[(0,a.Wm)(r,{to:{name:"WorkoutSegment",params:{workoutId:e.workout_id,segmentId:o+1}}},{default:(0,a.w5)((()=>[(0,a.Uk)((0,s.zw)(t.$t("workouts.SEGMENT",1))+" "+(0,s.zw)(o+1),1)])),_:2},1032,["to"]),(0,a.Uk)(" ("+(0,s.zw)(t.$t("workouts.DISTANCE"))+": ",1),(0,a.Wm)(i,{distance:e.distance,unitFrom:"km",useImperialUnits:(0,n.SU)(l)},null,8,["distance","useImperialUnits"]),(0,a.Uk)(", "+(0,s.zw)(t.$t("workouts.DURATION"))+": "+(0,s.zw)(e.duration)+") ",1)])))),128))])])),_:1})])}}});const Go=(0,O.Z)(qo,[["__scopeId","data-v-6b8a27cd"]]);var Ko=Go;const Yo=t=>((0,a.dD)("data-v-85ac744a"),t=t(),(0,a.Cn)(),t),Vo={id:"workout",class:"view"},Jo={class:"container"},Xo={key:0,class:"workout-container"},Qo={key:0},ta=Yo((()=>(0,a._)("div",{id:"bottom"},null,-1))),ea={key:1};var oa=(0,a.aZ)({name:"Workout",props:{displaySegment:{type:Boolean}},setup(t){const e=t,o=(0,l.yj)(),s=(0,ro.o)(),{displaySegment:i}=(0,n.BK)(e),u=(0,a.Fl)((()=>s.getters[lo.aX.GETTERS.WORKOUT_DATA])),d=(0,a.Fl)((()=>s.getters[lo.YN.GETTERS.AUTH_USER_PROFILE])),c=(0,a.Fl)((()=>s.getters[lo.O8.GETTERS.SPORTS]));let p=(0,n.iH)({latitude:null,longitude:null});function m(t){p.value={latitude:t.latitude,longitude:t.longitude}}return(0,a.wF)((()=>{const t={workoutId:o.params.workoutId};e.displaySegment&&(t.segmentId=o.params.segmentId),s.dispatch(lo.aX.ACTIONS.GET_WORKOUT_DATA,t)})),(0,a.Ah)((()=>{s.commit(lo.aX.MUTATIONS.EMPTY_WORKOUT)})),(0,a.YP)((()=>o.params.workoutId),(async t=>{t&&s.dispatch(lo.aX.ACTIONS.GET_WORKOUT_DATA,{workoutId:t})})),(0,a.YP)((()=>o.params.segmentId),(async t=>{if(o.params.workoutId){const e={workoutId:o.params.workoutId};t&&(e.segmentId=t),s.dispatch(lo.aX.ACTIONS.GET_WORKOUT_DATA,e)}})),(t,e)=>((0,a.wg)(),(0,a.iD)("div",Vo,[(0,a._)("div",Jo,[(0,n.SU)(c).length>0?((0,a.wg)(),(0,a.iD)("div",Xo,[(0,n.SU)(u).workout.id?((0,a.wg)(),(0,a.iD)("div",Qo,[(0,a.Wm)(Uo,{workoutData:(0,n.SU)(u),sports:(0,n.SU)(c),authUser:(0,n.SU)(d),markerCoordinates:(0,n.SU)(p),displaySegment:(0,n.SU)(i)},null,8,["workoutData","sports","authUser","markerCoordinates","displaySegment"]),(0,n.SU)(u).workout.with_gpx&&(0,n.SU)(u).chartData.length>0?((0,a.wg)(),(0,a.j4)(Bo,{key:0,workoutData:(0,n.SU)(u),authUser:(0,n.SU)(d),displaySegment:(0,n.SU)(i),onGetCoordinates:m},null,8,["workoutData","authUser","displaySegment"])):(0,a.kq)("",!0),!(0,n.SU)(i)&&(0,n.SU)(u).workout.segments.length>1?((0,a.wg)(),(0,a.j4)(Ko,{key:1,segments:(0,n.SU)(u).workout.segments,useImperialUnits:(0,n.SU)(d).imperial_units},null,8,["segments","useImperialUnits"])):(0,a.kq)("",!0),(0,n.SU)(i)?(0,a.kq)("",!0):((0,a.wg)(),(0,a.j4)(Ho,{key:2,notes:(0,n.SU)(u).workout.notes},null,8,["notes"])),ta])):((0,a.wg)(),(0,a.iD)("div",ea,[(0,n.SU)(u).loading?(0,a.kq)("",!0):((0,a.wg)(),(0,a.j4)(r.Z,{key:0,target:"WORKOUT"}))]))])):(0,a.kq)("",!0)])]))}});const aa=(0,O.Z)(oa,[["__scopeId","data-v-85ac744a"]]);var na=aa},8291:function(t,e,o){o.r(e),o.d(e,{default:function(){return Bt}});var a=o(6252),n=o(2262),l=o(3577),r=o(3324),s=(o(6699),o(2119)),i=o(631),u=o(3649);const d=t=>((0,a.dD)("data-v-6c38593a"),t=t(),(0,a.Cn)(),t),c={class:"workouts-filters"},p={class:"box"},m={class:"form"},w={class:"form-items-group"},k={class:"form-item"},f=["value"],v={class:"form-item"},g=["value"],_={class:"form-items-group"},y={class:"form-item"},S=["value"],U=d((()=>(0,a._)("option",{value:""},null,-1))),h=["value"],b={class:"form-items-group"},T={class:"form-item"},E={class:"form-inputs-group"},D=["value"],O=["value"],I={class:"form-items-group"},A={class:"form-item"},C={class:"form-inputs-group"},R=["value"],$=["value"],N={class:"form-items-group"},x={class:"form-item"},z={class:"form-inputs-group"},L=["value"],W=["value"],j={class:"form-items-group"},B={class:"form-item"},P={class:"form-inputs-group"},F=["value"],M=["value"],H={class:"form-button"};var Z=(0,a.aZ)({name:"WorkoutsFilters",props:{authUser:null,sports:null},emits:["filter"],setup(t,{emit:e}){const o=t,{t:d}=(0,r.QT)(),Z=(0,s.yj)(),q=(0,s.tv)(),{authUser:G}=(0,n.BK)(o),K=G.value.imperial_units?u.Dl.km.defaultTarget:"km",Y=(0,a.Fl)((()=>(0,i.xH)(o.sports,d)));let V=Object.assign({},Z.query);function J(t){""===t.target.value?delete V[t.target.name]:V[t.target.name]=t.target.value}function X(){e("filter"),"page"in V&&(V["page"]="1"),q.push({path:"/workouts",query:V})}function Q(){e("filter"),q.push({path:"/workouts",query:{}})}return(0,a.YP)((()=>Z.query),(t=>{V=Object.assign({},t)})),(t,e)=>((0,a.wg)(),(0,a.iD)("div",c,[(0,a._)("div",p,[(0,a._)("div",m,[(0,a._)("div",w,[(0,a._)("div",k,[(0,a._)("label",null,(0,l.zw)(t.$t("workouts.FROM"))+": ",1),(0,a._)("input",{name:"from",type:"date",value:t.$route.query.from,onChange:J},null,40,f)]),(0,a._)("div",v,[(0,a._)("label",null,(0,l.zw)(t.$t("workouts.TO"))+": ",1),(0,a._)("input",{name:"to",type:"date",value:t.$route.query.to,onChange:J},null,40,g)])]),(0,a._)("div",_,[(0,a._)("div",y,[(0,a._)("label",null,(0,l.zw)(t.$t("workouts.SPORT",1))+":",1),(0,a._)("select",{name:"sport_id",value:t.$route.query.sport_id,onChange:J},[U,((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,n.SU)(Y).filter((t=>(0,n.SU)(G).sports_list.includes(t.id))),(t=>((0,a.wg)(),(0,a.iD)("option",{value:t.id,key:t.id},(0,l.zw)(t.translatedLabel),9,h)))),128))],40,S)])]),(0,a._)("div",b,[(0,a._)("div",T,[(0,a._)("label",null,(0,l.zw)(t.$t("workouts.DISTANCE"))+" ("+(0,l.zw)((0,n.SU)(K))+"): ",1),(0,a._)("div",E,[(0,a._)("input",{name:"distance_from",type:"number",min:"0",step:"0.1",value:t.$route.query.distance_from,onChange:J},null,40,D),(0,a._)("span",null,(0,l.zw)(t.$t("workouts.TO")),1),(0,a._)("input",{name:"distance_to",type:"number",min:"0",step:"0.1",value:t.$route.query.distance_to,onChange:J},null,40,O)])])]),(0,a._)("div",I,[(0,a._)("div",A,[(0,a._)("label",null,(0,l.zw)(t.$t("workouts.DURATION"))+": ",1),(0,a._)("div",C,[(0,a._)("input",{name:"duration_from",value:t.$route.query.duration_from,onChange:J,pattern:"^([0-9]*[0-9]):([0-5][0-9])$",placeholder:"hh:mm",type:"text"},null,40,R),(0,a._)("span",null,(0,l.zw)(t.$t("workouts.TO")),1),(0,a._)("input",{name:"duration_to",value:t.$route.query.duration_to,onChange:J,pattern:"^([0-9]*[0-9]):([0-5][0-9])$",placeholder:"hh:mm",type:"text"},null,40,$)])])]),(0,a._)("div",N,[(0,a._)("div",x,[(0,a._)("label",null,(0,l.zw)(t.$t("workouts.AVE_SPEED"))+" ("+(0,l.zw)((0,n.SU)(K))+"/h): ",1),(0,a._)("div",z,[(0,a._)("input",{min:"0",name:"ave_speed_from",value:t.$route.query.ave_speed_from,onChange:J,step:"0.1",type:"number"},null,40,L),(0,a._)("span",null,(0,l.zw)(t.$t("workouts.TO")),1),(0,a._)("input",{min:"0",name:"ave_speed_to",value:t.$route.query.ave_speed_to,onChange:J,step:"0.1",type:"number"},null,40,W)])])]),(0,a._)("div",j,[(0,a._)("div",B,[(0,a._)("label",null,(0,l.zw)(t.$t("workouts.MAX_SPEED"))+" ("+(0,l.zw)((0,n.SU)(K))+"/h): ",1),(0,a._)("div",P,[(0,a._)("input",{min:"0",name:"max_speed_from",value:t.$route.query.max_speed_from,onChange:J,step:"0.1",type:"number"},null,40,F),(0,a._)("span",null,(0,l.zw)(t.$t("workouts.TO")),1),(0,a._)("input",{min:"0",name:"max_speed_to",value:t.$route.query.max_speed_to,onChange:J,step:"0.1",type:"number"},null,40,M)])])])]),(0,a._)("div",H,[(0,a._)("button",{class:"confirm",onClick:X},(0,l.zw)(t.$t("buttons.FILTER")),1),(0,a._)("button",{class:"confirm",onClick:Q},(0,l.zw)(t.$t("buttons.CLEAR_FILTER")),1)])])]))}}),q=o(3744);const G=(0,q.Z)(Z,[["__scopeId","data-v-6c38593a"]]);var K=G,Y=o(4850),V=o(8626),J=o(6514),X=o(2056),Q=o(5630),tt=o(8602),et=o(9917),ot=o(2766),at=o(6558),nt=o(3768);const lt=t=>((0,a.dD)("data-v-3be47bc9"),t=t(),(0,a.Cn)(),t),rt={class:"workouts-list"},st={class:"total"},it={class:"total-label"},ut={key:0},dt={key:0,class:"workouts-table responsive-table"},ct=lt((()=>(0,a._)("th",{class:"sport-col"},null,-1))),pt={class:"sport-col"},mt={class:"cell-heading"},wt=["onMouseover"],kt={class:"cell-heading"},ft={key:0,class:"fa fa-map-o","aria-hidden":"true"},vt={class:"cell-heading"},gt={class:"text-right"},_t={class:"cell-heading"},yt={class:"text-right"},St={class:"cell-heading"},Ut={class:"text-right"},ht={class:"cell-heading"},bt={class:"text-right"},Tt={class:"cell-heading"},Et={class:"text-right"},Dt={class:"cell-heading"},Ot={class:"text-right"},It={class:"cell-heading"},At=lt((()=>(0,a._)("div",{id:"bottom"},null,-1)));var Ct=(0,a.aZ)({name:"WorkoutsList",props:{user:null,sports:null},setup(t){const e=t,o=(0,et.o)(),r=(0,s.yj)(),d=(0,s.tv)(),{user:c,sports:p}=(0,n.BK)(e),m=["ave_speed","distance","duration","workout_date"],w=(0,a.Fl)((()=>o.getters[tt.aX.GETTERS.USER_WORKOUTS])),k=(0,a.Fl)((()=>o.getters[tt.aX.GETTERS.WORKOUTS_PAGINATION]));let f=y(r.query);const v=(0,n.iH)(null);function g(t){o.dispatch(tt.aX.ACTIONS.GET_USER_WORKOUTS,c.value.imperial_units?S(t):t)}function _(t,e){const o=Object.assign({},r.query);o[t]=e,"per_page"===t&&(o["page"]="1"),f=y(o),d.push({path:"/workouts",query:f})}function y(t){let e=(0,ot.pm)(t,m,nt.eR.order_by,{defaultSort:nt.eR.order});return Object.keys(t).filter((t=>ot.Ne.includes(t))).map((o=>{"string"===typeof t[o]&&(e[o]=t[o])})),e}function S(t){const e={...t};return Object.entries(e).map((t=>{t[0].match("speed|distance")&&(e[t[0]]=(0,u.sC)(+t[1],"mi","km"))})),e}function U(t){v.value=t}return(0,a.wF)((()=>{g(f)})),(0,a.YP)((()=>r.query),(async t=>{f=y(t),g(f)})),(t,e)=>{const o=(0,a.up)("SportImage"),r=(0,a.up)("router-link"),s=(0,a.up)("Distance");return(0,a.wg)(),(0,a.iD)("div",rt,[(0,a._)("div",{class:(0,l.C_)(["box",{"empty-table":0===(0,n.SU)(w).length}])},[(0,a._)("div",st,[(0,a._)("span",it,(0,l.zw)(t.$t("common.TOTAL").toLowerCase())+": ",1),null!==(0,n.SU)(k).total?((0,a.wg)(),(0,a.iD)("span",ut,(0,l.zw)((0,n.SU)(k).total)+" "+(0,l.zw)(t.$t("workouts.WORKOUT",(0,n.SU)(k).total)),1)):(0,a.kq)("",!0)]),(0,a.Wm)(V.Z,{sort:(0,n.SU)(ot.fS),order_by:m,query:(0,n.SU)(f),message:"workouts",onUpdateSelect:_},null,8,["sort","query"]),(0,n.SU)(w).length>0?((0,a.wg)(),(0,a.iD)("div",dt,[(0,a.Wm)(J.Z,{class:"top-pagination",pagination:(0,n.SU)(k),path:"/workouts",query:(0,n.SU)(f)},null,8,["pagination","query"]),(0,a._)("table",null,[(0,a._)("thead",null,[(0,a._)("tr",null,[ct,(0,a._)("th",null,(0,l.zw)((0,l.kC)(t.$t("workouts.WORKOUT",1))),1),(0,a._)("th",null,(0,l.zw)((0,l.kC)(t.$t("workouts.DATE"))),1),(0,a._)("th",null,(0,l.zw)((0,l.kC)(t.$t("workouts.DISTANCE"))),1),(0,a._)("th",null,(0,l.zw)((0,l.kC)(t.$t("workouts.DURATION"))),1),(0,a._)("th",null,(0,l.zw)((0,l.kC)(t.$t("workouts.AVE_SPEED"))),1),(0,a._)("th",null,(0,l.zw)((0,l.kC)(t.$t("workouts.MAX_SPEED"))),1),(0,a._)("th",null,(0,l.zw)((0,l.kC)(t.$t("workouts.ASCENT"))),1),(0,a._)("th",null,(0,l.zw)((0,l.kC)(t.$t("workouts.DESCENT"))),1)])]),(0,a._)("tbody",null,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,n.SU)(w),(u=>((0,a.wg)(),(0,a.iD)("tr",{key:u.id},[(0,a._)("td",pt,[(0,a._)("span",mt,(0,l.zw)(t.$t("workouts.SPORT",1)),1),(0,n.SU)(p).length>0?((0,a.wg)(),(0,a.j4)(o,{key:0,title:(0,n.SU)(p).find((t=>t.id===u.sport_id)).translatedLabel,"sport-label":(0,n.SU)(i.PA)(u,(0,n.SU)(p)),color:(0,n.SU)(i.CM)(u,(0,n.SU)(p))},null,8,["title","sport-label","color"])):(0,a.kq)("",!0)]),(0,a._)("td",{class:"workout-title",onMouseover:t=>U(u.id),onMouseleave:e[0]||(e[0]=t=>U(null))},[(0,a._)("span",kt,(0,l.zw)((0,l.kC)(t.$t("workouts.WORKOUT",1))),1),(0,a.Wm)(r,{class:"nav-item",to:{name:"Workout",params:{workoutId:u.id}}},{default:(0,a.w5)((()=>[u.with_gpx?((0,a.wg)(),(0,a.iD)("i",ft)):(0,a.kq)("",!0),(0,a.Uk)(" "+(0,l.zw)(u.title),1)])),_:2},1032,["to"]),u.with_gpx&&v.value===u.id?((0,a.wg)(),(0,a.j4)(X.Z,{key:0,workout:u,"display-hover":!0},null,8,["workout"])):(0,a.kq)("",!0)],40,wt),(0,a._)("td",null,[(0,a._)("span",vt,(0,l.zw)(t.$t("workouts.DATE")),1),(0,a.Uk)(" "+(0,l.zw)((0,n.SU)(Y.Z)((0,n.SU)(at.eB)(u.workout_date,(0,n.SU)(c).timezone),"dd/MM/yyyy HH:mm")),1)]),(0,a._)("td",gt,[(0,a._)("span",_t,(0,l.zw)(t.$t("workouts.DISTANCE")),1),(0,a.Wm)(s,{distance:u.distance,unitFrom:"km",useImperialUnits:(0,n.SU)(c).imperial_units},null,8,["distance","useImperialUnits"])]),(0,a._)("td",yt,[(0,a._)("span",St,(0,l.zw)(t.$t("workouts.DURATION")),1),(0,a.Uk)(" "+(0,l.zw)(u.moving),1)]),(0,a._)("td",Ut,[(0,a._)("span",ht,(0,l.zw)(t.$t("workouts.AVE_SPEED")),1),(0,a.Wm)(s,{distance:u.ave_speed,unitFrom:"km",speed:!0,useImperialUnits:(0,n.SU)(c).imperial_units},null,8,["distance","useImperialUnits"])]),(0,a._)("td",bt,[(0,a._)("span",Tt,(0,l.zw)(t.$t("workouts.MAX_SPEED")),1),(0,a.Wm)(s,{distance:u.max_speed,unitFrom:"km",speed:!0,useImperialUnits:(0,n.SU)(c).imperial_units},null,8,["distance","useImperialUnits"])]),(0,a._)("td",Et,[(0,a._)("span",Dt,(0,l.zw)(t.$t("workouts.ASCENT")),1),u.with_gpx?((0,a.wg)(),(0,a.j4)(s,{key:0,distance:u.ascent,unitFrom:"m",useImperialUnits:(0,n.SU)(c).imperial_units},null,8,["distance","useImperialUnits"])):(0,a.kq)("",!0)]),(0,a._)("td",Ot,[(0,a._)("span",It,(0,l.zw)(t.$t("workouts.DESCENT")),1),u.with_gpx?((0,a.wg)(),(0,a.j4)(s,{key:0,distance:u.descent,unitFrom:"m",useImperialUnits:(0,n.SU)(c).imperial_units},null,8,["distance","useImperialUnits"])):(0,a.kq)("",!0)])])))),128))])]),(0,a.Wm)(J.Z,{pagination:(0,n.SU)(k),path:"/workouts",query:(0,n.SU)(f)},null,8,["pagination","query"])])):(0,a.kq)("",!0)],2),0===(0,n.SU)(w).length?((0,a.wg)(),(0,a.j4)(Q.Z,{key:0})):(0,a.kq)("",!0),At])}}});const Rt=(0,q.Z)(Ct,[["__scopeId","data-v-3be47bc9"]]);var $t=Rt;const Nt={key:0,id:"workouts",class:"view"},xt={class:"container workouts-container"},zt={class:"display-filters"},Lt={class:"list-container"};var Wt=(0,a.aZ)({name:"WorkoutsView",setup(t){const{t:e}=(0,r.QT)(),o=(0,et.o)(),s=(0,a.Fl)((()=>o.getters[tt.YN.GETTERS.AUTH_USER_PROFILE])),u=(0,a.Fl)((()=>o.getters[tt.O8.GETTERS.SPORTS])),d=(0,a.Fl)((()=>(0,i.xH)(u.value,e))),c=(0,n.iH)(!0);function p(){c.value=!c.value}return(t,e)=>(0,n.SU)(s).username?((0,a.wg)(),(0,a.iD)("div",Nt,[(0,a._)("div",xt,[(0,a._)("div",{class:(0,l.C_)(["filters-container",{hidden:c.value}])},[(0,a.Wm)(K,{sports:(0,n.SU)(d),authUser:(0,n.SU)(s),onFilter:p},null,8,["sports","authUser"])],2),(0,a._)("div",zt,[(0,a._)("div",{onClick:p},[(0,a._)("i",{class:(0,l.C_)("fa fa-caret-"+(c.value?"down":"up")),"aria-hidden":"true"},null,2),(0,a._)("span",null,(0,l.zw)(t.$t(`workouts.${c.value?"DISPLAY":"HIDE"}_FILTERS`)),1)])]),(0,a._)("div",Lt,[(0,a.Wm)($t,{user:(0,n.SU)(s),sports:(0,n.SU)(d)},null,8,["user","sports"])])])])):(0,a.kq)("",!0)}});const jt=(0,q.Z)(Wt,[["__scopeId","data-v-77e54012"]]);var Bt=jt}}]); -//# sourceMappingURL=workouts.a9d2f467.js.map \ No newline at end of file +//# sourceMappingURL=workouts.02fe5945.js.map \ No newline at end of file diff --git a/fittrackee/dist/static/js/workouts.a9d2f467.js.map b/fittrackee/dist/static/js/workouts.02fe5945.js.map similarity index 99% rename from fittrackee/dist/static/js/workouts.a9d2f467.js.map rename to fittrackee/dist/static/js/workouts.02fe5945.js.map index 59e9c6f2..9ca0e0d7 100644 --- a/fittrackee/dist/static/js/workouts.a9d2f467.js.map +++ b/fittrackee/dist/static/js/workouts.02fe5945.js.map @@ -1 +1 @@ -{"version":3,"file":"static/js/workouts.a9d2f467.js","mappings":"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","sources":["webpack://fittrackee_client/./node_modules/vue-loader/dist/index.js","webpack://fittrackee_client/./src/components/Workout/WorkoutEdition.vue","webpack://fittrackee_client/./src/views/workouts/AddWorkout.vue","webpack://fittrackee_client/./src/views/workouts/EditWorkout.vue","webpack://fittrackee_client/./src/components/Workout/WorkoutDetail/WorkoutCardTitle.vue","webpack://fittrackee_client/./src/components/Workout/WorkoutDetail/WorkoutRecord.vue","webpack://fittrackee_client/./src/utils/weather.ts","webpack://fittrackee_client/./src/components/Workout/WorkoutDetail/WeatherWind.vue","webpack://fittrackee_client/./src/components/Workout/WorkoutDetail/WorkoutWeather.vue","webpack://fittrackee_client/./src/components/Workout/WorkoutDetail/WorkoutData.vue","webpack://fittrackee_client/./node_modules/@tmcw/togeojson/dist/togeojson.es.mjs","webpack://fittrackee_client/./node_modules/@vue-leaflet/vue-leaflet/dist/vue-leaflet.esm.js","webpack://fittrackee_client/./src/components/Workout/WorkoutDetail/WorkoutMap/CustomMarker.vue","webpack://fittrackee_client/./src/components/Workout/WorkoutDetail/WorkoutMap/index.vue","webpack://fittrackee_client/./src/components/Workout/WorkoutDetail/index.vue","webpack://fittrackee_client/./src/components/Workout/WorkoutDetail/WorkoutChart/legend.ts","webpack://fittrackee_client/./src/components/Workout/WorkoutDetail/WorkoutChart/index.vue","webpack://fittrackee_client/./src/components/Workout/WorkoutDetail/WorkoutNotes.vue","webpack://fittrackee_client/./src/components/Workout/WorkoutDetail/WorkoutSegments.vue","webpack://fittrackee_client/./src/views/workouts/Workout.vue","webpack://fittrackee_client/./src/components/Workouts/WorkoutsFilters.vue","webpack://fittrackee_client/./src/components/Workouts/WorkoutsList.vue","webpack://fittrackee_client/./src/views/workouts/WorkoutsView.vue"],"sourcesContent":["import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, renderList as _renderList, Fragment as _Fragment, vModelSelect as _vModelSelect, withDirectives as _withDirectives, vModelText as _vModelText, resolveComponent as _resolveComponent, createVNode as _createVNode, createBlock as _createBlock, withModifiers as _withModifiers, normalizeClass as _normalizeClass, withCtx as _withCtx, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-031d018d\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"workout-form\" }\nconst _hoisted_2 = [\"onSubmit\"]\nconst _hoisted_3 = { class: \"form-items\" }\nconst _hoisted_4 = {\n key: 0,\n class: \"form-item-radio\"\n}\nconst _hoisted_5 = [\"checked\", \"disabled\"]\nconst _hoisted_6 = { for: \"withGpx\" }\nconst _hoisted_7 = [\"checked\", \"disabled\"]\nconst _hoisted_8 = { for: \"withoutGpx\" }\nconst _hoisted_9 = { class: \"form-item\" }\nconst _hoisted_10 = [\"disabled\"]\nconst _hoisted_11 = [\"value\"]\nconst _hoisted_12 = {\n key: 1,\n class: \"form-item\"\n}\nconst _hoisted_13 = { for: \"gpxFile\" }\nconst _hoisted_14 = [\"disabled\"]\nconst _hoisted_15 = { class: \"files-help info-box\" }\nconst _hoisted_16 = {\n key: 2,\n class: \"form-item\"\n}\nconst _hoisted_17 = { for: \"title\" }\nconst _hoisted_18 = [\"required\", \"disabled\"]\nconst _hoisted_19 = { key: 3 }\nconst _hoisted_20 = { class: \"workout-date-duration\" }\nconst _hoisted_21 = { class: \"form-item\" }\nconst _hoisted_22 = { class: \"workout-date-time\" }\nconst _hoisted_23 = [\"disabled\"]\nconst _hoisted_24 = [\"disabled\"]\nconst _hoisted_25 = { class: \"form-item\" }\nconst _hoisted_26 = [\"disabled\"]\nconst _hoisted_27 = /*#__PURE__*/_createTextVNode(\" : \")\nconst _hoisted_28 = [\"disabled\"]\nconst _hoisted_29 = /*#__PURE__*/_createTextVNode(\" : \")\nconst _hoisted_30 = [\"disabled\"]\nconst _hoisted_31 = { class: \"form-item\" }\nconst _hoisted_32 = [\"disabled\"]\nconst _hoisted_33 = { class: \"form-item\" }\nconst _hoisted_34 = { key: 1 }\nconst _hoisted_35 = {\n key: 2,\n class: \"form-buttons\"\n}\nconst _hoisted_36 = [\"disabled\"]\nconst _hoisted_37 = [\"onClick\"]\n\nimport {\n ComputedRef,\n computed,\n reactive,\n ref,\n toRefs,\n watch,\n onMounted,\n onUnmounted,\n withDefaults,\n } from 'vue'\n import { useI18n } from 'vue-i18n'\n import { useRouter } from 'vue-router'\n\n import { ROOT_STORE, WORKOUTS_STORE } from '@/store/constants'\n import { TAppConfig } from '@/types/application'\n import { ISport } from '@/types/sports'\n import { IAuthUserProfile } from '@/types/user'\n import { IWorkout, IWorkoutForm } from '@/types/workouts'\n import { useStore } from '@/use/useStore'\n import { formatWorkoutDate, getDateWithTZ } from '@/utils/dates'\n import { getReadableFileSize } from '@/utils/files'\n import { translateSports } from '@/utils/sports'\n import { convertDistance } from '@/utils/units'\n\n interface Props {\n authUser: IAuthUserProfile\n sports: ISport[]\n isCreation?: boolean\n loading?: boolean\n workout?: IWorkout\n }\n \nexport default /*#__PURE__*/_defineComponent({\n name: 'WorkoutEdition',\n props: {\n authUser: null,\n sports: null,\n isCreation: { type: Boolean, default: false },\n loading: { type: Boolean, default: false },\n workout: { default: () => ({} as IWorkout) }\n },\n setup(__props: any) {\n\nconst props = __props as { authUser: IAuthUserProfile, sports: ISport[], isCreation: boolean, loading: boolean, workout: IWorkout }\n\n \n\n const { t } = useI18n()\n const store = useStore()\n const router = useRouter()\n\n const { authUser, workout, isCreation, loading } = toRefs(props)\n const translatedSports: ComputedRef = computed(() =>\n translateSports(\n props.sports,\n t,\n 'is_active_for_user',\n workout.value.id ? [workout.value.sport_id] : []\n )\n )\n const appConfig: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.APP_CONFIG]\n )\n const fileSizeLimit = appConfig.value.max_single_file_size\n ? getReadableFileSize(appConfig.value.max_single_file_size)\n : ''\n const gpx_limit_import = appConfig.value.gpx_limit_import\n const zipSizeLimit = appConfig.value.max_zip_file_size\n ? getReadableFileSize(appConfig.value.max_zip_file_size)\n : ''\n const errorMessages: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.ERROR_MESSAGES]\n )\n const workoutForm = reactive({\n sport_id: '',\n title: '',\n notes: '',\n workoutDate: '',\n workoutTime: '',\n workoutDurationHour: '',\n workoutDurationMinutes: '',\n workoutDurationSeconds: '',\n workoutDistance: '',\n })\n let withGpx = ref(\n props.workout.id ? props.workout.with_gpx : props.isCreation\n )\n let gpxFile: File | null = null\n const formErrors = ref(false)\n\n onMounted(() => {\n if (props.workout.id) {\n formatWorkoutForm(props.workout)\n }\n })\n\n function updateNotes(value: string) {\n workoutForm.notes = value\n }\n function updateWithGpx() {\n withGpx.value = !withGpx.value\n formErrors.value = false\n }\n function updateFile(event: Event & { target: HTMLInputElement }) {\n if (event.target.files) {\n gpxFile = event.target.files[0]\n }\n }\n function formatWorkoutForm(workout: IWorkout) {\n workoutForm.sport_id = `${workout.sport_id}`\n workoutForm.title = workout.title\n workoutForm.notes = workout.notes\n if (!workout.with_gpx) {\n const workoutDateTime = formatWorkoutDate(\n getDateWithTZ(workout.workout_date, props.authUser.timezone),\n 'yyyy-MM-dd'\n )\n const duration = workout.duration.split(':')\n workoutForm.workoutDistance = `${\n authUser.value.imperial_units\n ? convertDistance(workout.distance, 'km', 'mi', 2)\n : parseFloat(workout.distance.toFixed(2))\n }`\n workoutForm.workoutDate = workoutDateTime.workout_date\n workoutForm.workoutTime = workoutDateTime.workout_time\n workoutForm.workoutDurationHour = duration[0]\n workoutForm.workoutDurationMinutes = duration[1]\n workoutForm.workoutDurationSeconds = duration[2]\n }\n }\n function formatPayload(payload: IWorkoutForm) {\n payload.title = workoutForm.title\n payload.distance = authUser.value.imperial_units\n ? convertDistance(+workoutForm.workoutDistance, 'mi', 'km', 3)\n : +workoutForm.workoutDistance\n payload.duration =\n +workoutForm.workoutDurationHour * 3600 +\n +workoutForm.workoutDurationMinutes * 60 +\n +workoutForm.workoutDurationSeconds\n payload.workout_date = `${workoutForm.workoutDate} ${workoutForm.workoutTime}`\n }\n function updateWorkout() {\n const payload: IWorkoutForm = {\n sport_id: +workoutForm.sport_id,\n notes: workoutForm.notes,\n }\n if (props.workout.id) {\n if (props.workout.with_gpx) {\n payload.title = workoutForm.title\n } else {\n formatPayload(payload)\n }\n store.dispatch(WORKOUTS_STORE.ACTIONS.EDIT_WORKOUT, {\n workoutId: props.workout.id,\n data: payload,\n })\n } else {\n if (withGpx.value) {\n if (!gpxFile) {\n const errorMessage = 'workouts.NO_FILE_PROVIDED'\n store.commit(ROOT_STORE.MUTATIONS.SET_ERROR_MESSAGES, errorMessage)\n return\n }\n payload.file = gpxFile\n store.dispatch(WORKOUTS_STORE.ACTIONS.ADD_WORKOUT, payload)\n } else {\n formatPayload(payload)\n store.dispatch(WORKOUTS_STORE.ACTIONS.ADD_WORKOUT_WITHOUT_GPX, payload)\n }\n }\n }\n function onCancel() {\n if (props.workout.id) {\n router.push({\n name: 'Workout',\n params: { workoutId: props.workout.id },\n })\n } else {\n router.go(-1)\n }\n }\n function invalidateForm() {\n formErrors.value = true\n }\n\n onUnmounted(() => store.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES))\n\n watch(\n () => props.workout,\n async (\n newWorkout: IWorkout | undefined,\n previousWorkout: IWorkout | undefined\n ) => {\n if (newWorkout !== previousWorkout && newWorkout && newWorkout.id) {\n formatWorkoutForm(newWorkout)\n }\n }\n )\n\nreturn (_ctx: any,_cache: any) => {\n const _component_CustomTextArea = _resolveComponent(\"CustomTextArea\")!\n const _component_ErrorMessage = _resolveComponent(\"ErrorMessage\")!\n const _component_Loader = _resolveComponent(\"Loader\")!\n const _component_Card = _resolveComponent(\"Card\")!\n\n return (_openBlock(), _createElementBlock(\"div\", {\n id: \"workout-edition\",\n class: _normalizeClass([\"center-card with-margin\", { 'center-form': _unref(workout) && _unref(workout).with_gpx }])\n }, [\n _createVNode(_component_Card, null, {\n title: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t(`workouts.${_unref(isCreation) ? 'ADD' : 'EDIT'}_WORKOUT`)), 1)\n ]),\n content: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_1, [\n _createElementVNode(\"form\", {\n class: _normalizeClass({ errors: formErrors.value }),\n onSubmit: _withModifiers(updateWorkout, [\"prevent\"])\n }, [\n _createElementVNode(\"div\", _hoisted_3, [\n (_unref(isCreation))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_4, [\n _createElementVNode(\"div\", null, [\n _createElementVNode(\"input\", {\n id: \"withGpx\",\n type: \"radio\",\n checked: _unref(withGpx),\n disabled: _unref(loading),\n onClick: updateWithGpx\n }, null, 8, _hoisted_5),\n _createElementVNode(\"label\", _hoisted_6, _toDisplayString(_ctx.$t('workouts.WITH_GPX')), 1)\n ]),\n _createElementVNode(\"div\", null, [\n _createElementVNode(\"input\", {\n id: \"withoutGpx\",\n type: \"radio\",\n checked: !_unref(withGpx),\n disabled: _unref(loading),\n onClick: updateWithGpx\n }, null, 8, _hoisted_7),\n _createElementVNode(\"label\", _hoisted_8, _toDisplayString(_ctx.$t('workouts.WITHOUT_GPX')), 1)\n ])\n ]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_9, [\n _createElementVNode(\"label\", null, _toDisplayString(_ctx.$t('workouts.SPORT', 1)) + \": \", 1),\n _withDirectives(_createElementVNode(\"select\", {\n id: \"sport\",\n required: \"\",\n onInvalid: invalidateForm,\n disabled: _unref(loading),\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((workoutForm.sport_id) = $event))\n }, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(translatedSports), (sport) => {\n return (_openBlock(), _createElementBlock(\"option\", {\n value: sport.id,\n key: sport.id\n }, _toDisplayString(sport.translatedLabel), 9, _hoisted_11))\n }), 128))\n ], 40, _hoisted_10), [\n [_vModelSelect, workoutForm.sport_id]\n ])\n ]),\n (_unref(isCreation) && _unref(withGpx))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_12, [\n _createElementVNode(\"label\", _hoisted_13, _toDisplayString(_ctx.$t('workouts.GPX_FILE')) + \" \" + _toDisplayString(_ctx.$t('workouts.ZIP_ARCHIVE_DESCRIPTION')) + \": \", 1),\n _createElementVNode(\"input\", {\n id: \"gpxFile\",\n name: \"gpxFile\",\n type: \"file\",\n accept: \".gpx, .zip\",\n disabled: _unref(loading),\n required: \"\",\n onInvalid: invalidateForm,\n onInput: updateFile\n }, null, 40, _hoisted_14),\n _createElementVNode(\"div\", _hoisted_15, [\n _createElementVNode(\"div\", null, [\n _createElementVNode(\"strong\", null, _toDisplayString(_ctx.$t('workouts.GPX_FILE')) + \":\", 1),\n _createElementVNode(\"ul\", null, [\n _createElementVNode(\"li\", null, _toDisplayString(_ctx.$t('workouts.MAX_SIZE')) + \": \" + _toDisplayString(_unref(fileSizeLimit)), 1)\n ])\n ]),\n _createElementVNode(\"div\", null, [\n _createElementVNode(\"strong\", null, _toDisplayString(_ctx.$t('workouts.ZIP_ARCHIVE')) + \":\", 1),\n _createElementVNode(\"ul\", null, [\n _createElementVNode(\"li\", null, _toDisplayString(_ctx.$t('workouts.NO_FOLDER')), 1),\n _createElementVNode(\"li\", null, _toDisplayString(_ctx.$t('workouts.MAX_FILES')) + \": \" + _toDisplayString(_unref(gpx_limit_import)), 1),\n _createElementVNode(\"li\", null, _toDisplayString(_ctx.$t('workouts.MAX_SIZE')) + \": \" + _toDisplayString(_unref(zipSizeLimit)), 1)\n ])\n ])\n ])\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_16, [\n _createElementVNode(\"label\", _hoisted_17, _toDisplayString(_ctx.$t('workouts.TITLE')) + \": \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"title\",\n name: \"title\",\n type: \"text\",\n required: !_unref(isCreation),\n onInvalid: invalidateForm,\n disabled: _unref(loading),\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => ((workoutForm.title) = $event))\n }, null, 40, _hoisted_18), [\n [_vModelText, workoutForm.title]\n ])\n ])),\n (!_unref(withGpx))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_19, [\n _createElementVNode(\"div\", _hoisted_20, [\n _createElementVNode(\"div\", _hoisted_21, [\n _createElementVNode(\"label\", null, _toDisplayString(_ctx.$t('workouts.WORKOUT_DATE')) + \":\", 1),\n _createElementVNode(\"div\", _hoisted_22, [\n _withDirectives(_createElementVNode(\"input\", {\n id: \"workout-date\",\n name: \"workout-date\",\n type: \"date\",\n required: \"\",\n onInvalid: invalidateForm,\n disabled: _unref(loading),\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => ((workoutForm.workoutDate) = $event))\n }, null, 40, _hoisted_23), [\n [_vModelText, workoutForm.workoutDate]\n ]),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"workout-time\",\n name: \"workout-time\",\n class: \"workout-time\",\n type: \"time\",\n required: \"\",\n onInvalid: invalidateForm,\n disabled: _unref(loading),\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = ($event: any) => ((workoutForm.workoutTime) = $event))\n }, null, 40, _hoisted_24), [\n [_vModelText, workoutForm.workoutTime]\n ])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_25, [\n _createElementVNode(\"label\", null, _toDisplayString(_ctx.$t('workouts.DURATION')) + \":\", 1),\n _createElementVNode(\"div\", null, [\n _withDirectives(_createElementVNode(\"input\", {\n id: \"workout-duration-hour\",\n name: \"workout-duration-hour\",\n class: \"workout-duration\",\n type: \"text\",\n placeholder: \"HH\",\n minlength: \"1\",\n maxlength: \"2\",\n pattern: \"^([0-1]?[0-9]|2[0-3])$\",\n required: \"\",\n onInvalid: invalidateForm,\n disabled: _unref(loading),\n \"onUpdate:modelValue\": _cache[4] || (_cache[4] = ($event: any) => ((workoutForm.workoutDurationHour) = $event))\n }, null, 40, _hoisted_26), [\n [_vModelText, workoutForm.workoutDurationHour]\n ]),\n _hoisted_27,\n _withDirectives(_createElementVNode(\"input\", {\n id: \"workout-duration-minutes\",\n name: \"workout-duration-minutes\",\n class: \"workout-duration\",\n type: \"text\",\n pattern: \"^([0-5][0-9])$\",\n minlength: \"2\",\n maxlength: \"2\",\n placeholder: \"MM\",\n required: \"\",\n onInvalid: invalidateForm,\n disabled: _unref(loading),\n \"onUpdate:modelValue\": _cache[5] || (_cache[5] = ($event: any) => ((workoutForm.workoutDurationMinutes) = $event))\n }, null, 40, _hoisted_28), [\n [_vModelText, workoutForm.workoutDurationMinutes]\n ]),\n _hoisted_29,\n _withDirectives(_createElementVNode(\"input\", {\n id: \"workout-duration-seconds\",\n name: \"workout-duration-seconds\",\n class: \"workout-duration\",\n type: \"text\",\n pattern: \"^([0-5][0-9])$\",\n minlength: \"2\",\n maxlength: \"2\",\n placeholder: \"SS\",\n required: \"\",\n onInvalid: invalidateForm,\n disabled: _unref(loading),\n \"onUpdate:modelValue\": _cache[6] || (_cache[6] = ($event: any) => ((workoutForm.workoutDurationSeconds) = $event))\n }, null, 40, _hoisted_30), [\n [_vModelText, workoutForm.workoutDurationSeconds]\n ])\n ])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_31, [\n _createElementVNode(\"label\", null, _toDisplayString(_ctx.$t('workouts.DISTANCE')) + \" (\" + _toDisplayString(_unref(authUser).imperial_units ? 'mi' : 'km') + \"): \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n name: \"workout-distance\",\n type: \"number\",\n min: \"0\",\n step: \"0.001\",\n required: \"\",\n onInvalid: invalidateForm,\n disabled: _unref(loading),\n \"onUpdate:modelValue\": _cache[7] || (_cache[7] = ($event: any) => ((workoutForm.workoutDistance) = $event))\n }, null, 40, _hoisted_32), [\n [_vModelText, workoutForm.workoutDistance]\n ])\n ])\n ]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_33, [\n _createElementVNode(\"label\", null, _toDisplayString(_ctx.$t('workouts.NOTES')) + \": \", 1),\n _createVNode(_component_CustomTextArea, {\n name: \"notes\",\n input: workoutForm.notes,\n disabled: _unref(loading),\n onUpdateValue: updateNotes\n }, null, 8, [\"input\", \"disabled\"])\n ])\n ]),\n (_unref(errorMessages))\n ? (_openBlock(), _createBlock(_component_ErrorMessage, {\n key: 0,\n message: _unref(errorMessages)\n }, null, 8, [\"message\"]))\n : _createCommentVNode(\"\", true),\n (_unref(loading))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_34, [\n _createVNode(_component_Loader)\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_35, [\n _createElementVNode(\"button\", {\n class: \"confirm\",\n type: \"submit\",\n disabled: _unref(loading)\n }, _toDisplayString(_ctx.$t('buttons.SUBMIT')), 9, _hoisted_36),\n _createElementVNode(\"button\", {\n class: \"cancel\",\n onClick: _withModifiers(onCancel, [\"prevent\"])\n }, _toDisplayString(_ctx.$t('buttons.CANCEL')), 9, _hoisted_37)\n ]))\n ], 42, _hoisted_2)\n ])\n ]),\n _: 1\n })\n ], 2))\n}\n}\n\n})","import script from \"./WorkoutEdition.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./WorkoutEdition.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./WorkoutEdition.vue?vue&type=style&index=0&id=031d018d&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-031d018d\"]])\n\nexport default __exports__","import script from \"./AddWorkout.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AddWorkout.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import script from \"./EditWorkout.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./EditWorkout.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import script from \"./WorkoutCardTitle.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./WorkoutCardTitle.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./WorkoutCardTitle.vue?vue&type=style&index=0&id=4d9f9a8a&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-4d9f9a8a\"]])\n\nexport default __exports__","import script from \"./WorkoutRecord.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./WorkoutRecord.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./WorkoutRecord.vue?vue&type=style&index=0&id=1a5282f6&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-1a5282f6\"]])\n\nexport default __exports__","const directions = [\n 'N',\n 'NNE',\n 'NE',\n 'ENE',\n 'E',\n 'ESE',\n 'SE',\n 'SSE',\n 'S',\n 'SSW',\n 'SW',\n 'WSW',\n 'W',\n 'WNW',\n 'NW',\n 'NNW',\n]\n\nexport const convertDegreeToDirection = (angle: number): string => {\n const value = Math.floor(angle / 22.5 + 0.5)\n return directions[value % 16]\n}\n","import script from \"./WeatherWind.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./WeatherWind.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./WeatherWind.vue?vue&type=style&index=0&id=46a7c31c&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-46a7c31c\"]])\n\nexport default __exports__","import script from \"./WorkoutWeather.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./WorkoutWeather.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./WorkoutWeather.vue?vue&type=style&index=0&id=76e9ab62&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-76e9ab62\"]])\n\nexport default __exports__","import script from \"./WorkoutData.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./WorkoutData.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./WorkoutData.vue?vue&type=style&index=0&id=dc2fbc66&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-dc2fbc66\"]])\n\nexport default __exports__","function $(element, tagName) {\n return Array.from(element.getElementsByTagName(tagName));\n}\nfunction normalizeId(id) {\n return id[0] === \"#\" ? id : `#${id}`;\n}\nfunction $ns(element, tagName, ns) {\n return Array.from(element.getElementsByTagNameNS(ns, tagName));\n}\n/**\n * get the content of a text node, if any\n */\nfunction nodeVal(node) {\n node?.normalize();\n return (node && node.textContent) || \"\";\n}\n/**\n * Get one Y child of X, if any, otherwise null\n */\nfunction get1(node, tagName, callback) {\n const n = node.getElementsByTagName(tagName);\n const result = n.length ? n[0] : null;\n if (result && callback)\n callback(result);\n return result;\n}\nfunction get(node, tagName, callback) {\n const properties = {};\n if (!node)\n return properties;\n const n = node.getElementsByTagName(tagName);\n const result = n.length ? n[0] : null;\n if (result && callback) {\n return callback(result, properties);\n }\n return properties;\n}\nfunction val1(node, tagName, callback) {\n const val = nodeVal(get1(node, tagName));\n if (val && callback)\n return callback(val) || {};\n return {};\n}\nfunction $num(node, tagName, callback) {\n const val = parseFloat(nodeVal(get1(node, tagName)));\n if (isNaN(val))\n return undefined;\n if (val && callback)\n return callback(val) || {};\n return {};\n}\nfunction num1(node, tagName, callback) {\n const val = parseFloat(nodeVal(get1(node, tagName)));\n if (isNaN(val))\n return undefined;\n if (val && callback)\n callback(val);\n return val;\n}\nfunction getMulti(node, propertyNames) {\n const properties = {};\n for (const property of propertyNames) {\n val1(node, property, (val) => {\n properties[property] = val;\n });\n }\n return properties;\n}\nfunction isElement(node) {\n return node?.nodeType === 1;\n}\n\nfunction getLineStyle(node) {\n return get(node, \"line\", (lineStyle) => {\n const val = Object.assign({}, val1(lineStyle, \"color\", (color) => {\n return { stroke: `#${color}` };\n }), $num(lineStyle, \"opacity\", (opacity) => {\n return { \"stroke-opacity\": opacity };\n }), $num(lineStyle, \"width\", (width) => {\n // GPX width is in mm, convert to px with 96 px per inch\n return { \"stroke-width\": (width * 96) / 25.4 };\n }));\n return val;\n });\n}\n\nfunction getExtensions(node) {\n let values = [];\n if (node === null)\n return values;\n for (const child of Array.from(node.childNodes)) {\n if (!isElement(child))\n continue;\n const name = abbreviateName(child.nodeName);\n if (name === \"gpxtpx:TrackPointExtension\") {\n // loop again for nested garmin extensions (eg. \"gpxtpx:hr\")\n values = values.concat(getExtensions(child));\n }\n else {\n // push custom extension (eg. \"power\")\n const val = nodeVal(child);\n values.push([name, parseNumeric(val)]);\n }\n }\n return values;\n}\nfunction abbreviateName(name) {\n return [\"heart\", \"gpxtpx:hr\", \"hr\"].includes(name) ? \"heart\" : name;\n}\nfunction parseNumeric(val) {\n const num = parseFloat(val);\n return isNaN(num) ? val : num;\n}\n\nfunction coordPair$1(node) {\n const ll = [\n parseFloat(node.getAttribute(\"lon\") || \"\"),\n parseFloat(node.getAttribute(\"lat\") || \"\"),\n ];\n if (isNaN(ll[0]) || isNaN(ll[1])) {\n return null;\n }\n num1(node, \"ele\", (val) => {\n ll.push(val);\n });\n const time = get1(node, \"time\");\n return {\n coordinates: ll,\n time: time ? nodeVal(time) : null,\n extendedValues: getExtensions(get1(node, \"extensions\")),\n };\n}\n\nfunction extractProperties(node) {\n const properties = getMulti(node, [\n \"name\",\n \"cmt\",\n \"desc\",\n \"type\",\n \"time\",\n \"keywords\",\n ]);\n const extensions = Array.from(node.getElementsByTagNameNS(\"http://www.garmin.com/xmlschemas/GpxExtensions/v3\", \"*\"));\n for (const child of extensions) {\n if (child.parentNode?.parentNode === node) {\n properties[child.tagName.replace(\":\", \"_\")] = nodeVal(child);\n }\n }\n const links = $(node, \"link\");\n if (links.length) {\n properties.links = links.map((link) => Object.assign({ href: link.getAttribute(\"href\") }, getMulti(link, [\"text\", \"type\"])));\n }\n return properties;\n}\n\n/**\n * Extract points from a trkseg or rte element.\n */\nfunction getPoints$1(node, pointname) {\n const pts = $(node, pointname);\n const line = [];\n const times = [];\n const extendedValues = {};\n for (let i = 0; i < pts.length; i++) {\n const c = coordPair$1(pts[i]);\n if (!c) {\n continue;\n }\n line.push(c.coordinates);\n if (c.time)\n times.push(c.time);\n for (const [name, val] of c.extendedValues) {\n const plural = name === \"heart\" ? name : name.replace(\"gpxtpx:\", \"\") + \"s\";\n if (!extendedValues[plural]) {\n extendedValues[plural] = Array(pts.length).fill(null);\n }\n extendedValues[plural][i] = val;\n }\n }\n if (line.length < 2)\n return; // Invalid line in GeoJSON\n return {\n line: line,\n times: times,\n extendedValues: extendedValues,\n };\n}\n/**\n * Extract a LineString geometry from a rte\n * element.\n */\nfunction getRoute(node) {\n const line = getPoints$1(node, \"rtept\");\n if (!line)\n return;\n return {\n type: \"Feature\",\n properties: Object.assign({ _gpxType: \"rte\" }, extractProperties(node), getLineStyle(get1(node, \"extensions\"))),\n geometry: {\n type: \"LineString\",\n coordinates: line.line,\n },\n };\n}\nfunction getTrack(node) {\n const segments = $(node, \"trkseg\");\n const track = [];\n const times = [];\n const extractedLines = [];\n for (const segment of segments) {\n const line = getPoints$1(segment, \"trkpt\");\n if (line) {\n extractedLines.push(line);\n if (line.times && line.times.length)\n times.push(line.times);\n }\n }\n if (extractedLines.length === 0)\n return null;\n const multi = extractedLines.length > 1;\n const properties = Object.assign({ _gpxType: \"trk\" }, extractProperties(node), getLineStyle(get1(node, \"extensions\")), times.length\n ? {\n coordinateProperties: {\n times: multi ? times : times[0],\n },\n }\n : {});\n for (const line of extractedLines) {\n track.push(line.line);\n if (!properties.coordinateProperties) {\n properties.coordinateProperties = {};\n }\n const props = properties.coordinateProperties;\n const entries = Object.entries(line.extendedValues);\n for (let i = 0; i < entries.length; i++) {\n const [name, val] = entries[i];\n if (multi) {\n if (!props[name]) {\n props[name] = extractedLines.map((line) => new Array(line.line.length).fill(null));\n }\n props[name][i] = val;\n }\n else {\n props[name] = val;\n }\n }\n }\n return {\n type: \"Feature\",\n properties: properties,\n geometry: multi\n ? {\n type: \"MultiLineString\",\n coordinates: track,\n }\n : {\n type: \"LineString\",\n coordinates: track[0],\n },\n };\n}\n/**\n * Extract a point, if possible, from a given node,\n * which is usually a wpt or trkpt\n */\nfunction getPoint(node) {\n const properties = Object.assign(extractProperties(node), getMulti(node, [\"sym\"]));\n const pair = coordPair$1(node);\n if (!pair)\n return null;\n return {\n type: \"Feature\",\n properties,\n geometry: {\n type: \"Point\",\n coordinates: pair.coordinates,\n },\n };\n}\n/**\n * Convert GPX to GeoJSON incrementally, returning\n * a [Generator](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Iterators_and_Generators)\n * that yields output feature by feature.\n */\nfunction* gpxGen(node) {\n for (const track of $(node, \"trk\")) {\n const feature = getTrack(track);\n if (feature)\n yield feature;\n }\n for (const route of $(node, \"rte\")) {\n const feature = getRoute(route);\n if (feature)\n yield feature;\n }\n for (const waypoint of $(node, \"wpt\")) {\n const point = getPoint(waypoint);\n if (point)\n yield point;\n }\n}\n/**\n *\n * Convert a GPX document to GeoJSON. The first argument, `doc`, must be a GPX\n * document as an XML DOM - not as a string. You can get this using jQuery's default\n * `.ajax` function or using a bare XMLHttpRequest with the `.response` property\n * holding an XML DOM.\n *\n * The output is a JavaScript object of GeoJSON data, same as `.kml` outputs, with the\n * addition of a `_gpxType` property on each `LineString` feature that indicates whether\n * the feature was encoded as a route (`rte`) or track (`trk`) in the GPX document.\n */\nfunction gpx(node) {\n return {\n type: \"FeatureCollection\",\n features: Array.from(gpxGen(node)),\n };\n}\n\nconst EXTENSIONS_NS = \"http://www.garmin.com/xmlschemas/ActivityExtension/v2\";\nconst TRACKPOINT_ATTRIBUTES = [\n [\"heartRate\", \"heartRates\"],\n [\"Cadence\", \"cadences\"],\n // Extended Trackpoint attributes\n [\"Speed\", \"speeds\"],\n [\"Watts\", \"watts\"],\n];\nconst LAP_ATTRIBUTES = [\n [\"TotalTimeSeconds\", \"totalTimeSeconds\"],\n [\"DistanceMeters\", \"distanceMeters\"],\n [\"MaximumSpeed\", \"maxSpeed\"],\n [\"AverageHeartRateBpm\", \"avgHeartRate\"],\n [\"MaximumHeartRateBpm\", \"maxHeartRate\"],\n // Extended Lap attributes\n [\"AvgSpeed\", \"avgSpeed\"],\n [\"AvgWatts\", \"avgWatts\"],\n [\"MaxWatts\", \"maxWatts\"],\n];\nfunction getProperties(node, attributeNames) {\n const properties = [];\n for (const [tag, alias] of attributeNames) {\n let elem = get1(node, tag);\n if (!elem) {\n const elements = node.getElementsByTagNameNS(EXTENSIONS_NS, tag);\n if (elements.length) {\n elem = elements[0];\n }\n }\n const val = parseFloat(nodeVal(elem));\n if (!isNaN(val)) {\n properties.push([alias, val]);\n }\n }\n return properties;\n}\nfunction coordPair(node) {\n const ll = [num1(node, \"LongitudeDegrees\"), num1(node, \"LatitudeDegrees\")];\n if (ll[0] === undefined ||\n isNaN(ll[0]) ||\n ll[1] === undefined ||\n isNaN(ll[1])) {\n return null;\n }\n const heartRate = get1(node, \"HeartRateBpm\");\n const time = nodeVal(get1(node, \"Time\"));\n get1(node, \"AltitudeMeters\", (alt) => {\n const a = parseFloat(nodeVal(alt));\n if (!isNaN(a)) {\n ll.push(a);\n }\n });\n return {\n coordinates: ll,\n time: time || null,\n heartRate: heartRate ? parseFloat(nodeVal(heartRate)) : null,\n extensions: getProperties(node, TRACKPOINT_ATTRIBUTES),\n };\n}\nfunction getPoints(node) {\n const pts = $(node, \"Trackpoint\");\n const line = [];\n const times = [];\n const heartRates = [];\n if (pts.length < 2)\n return null; // Invalid line in GeoJSON\n const extendedProperties = {};\n const result = { extendedProperties };\n for (let i = 0; i < pts.length; i++) {\n const c = coordPair(pts[i]);\n if (c === null)\n continue;\n line.push(c.coordinates);\n const { time, heartRate, extensions } = c;\n if (time)\n times.push(time);\n if (heartRate)\n heartRates.push(heartRate);\n for (const [alias, value] of extensions) {\n if (!extendedProperties[alias]) {\n extendedProperties[alias] = Array(pts.length).fill(null);\n }\n extendedProperties[alias][i] = value;\n }\n }\n if (line.length < 2)\n return null;\n return Object.assign(result, {\n line: line,\n times: times,\n heartRates: heartRates,\n });\n}\nfunction getLap(node) {\n const segments = $(node, \"Track\");\n const track = [];\n const times = [];\n const heartRates = [];\n const allExtendedProperties = [];\n let line;\n const properties = Object.assign(Object.fromEntries(getProperties(node, LAP_ATTRIBUTES)), get(node, \"Name\", (nameElement) => {\n return { name: nodeVal(nameElement) };\n }));\n for (const segment of segments) {\n line = getPoints(segment);\n if (line) {\n track.push(line.line);\n if (line.times.length)\n times.push(line.times);\n if (line.heartRates.length)\n heartRates.push(line.heartRates);\n allExtendedProperties.push(line.extendedProperties);\n }\n }\n for (let i = 0; i < allExtendedProperties.length; i++) {\n const extendedProperties = allExtendedProperties[i];\n for (const property in extendedProperties) {\n if (segments.length === 1) {\n if (line) {\n properties[property] = line.extendedProperties[property];\n }\n }\n else {\n if (!properties[property]) {\n properties[property] = track.map((track) => Array(track.length).fill(null));\n }\n properties[property][i] = extendedProperties[property];\n }\n }\n }\n if (track.length === 0)\n return null;\n if (times.length || heartRates.length) {\n properties.coordinateProperties = Object.assign(times.length\n ? {\n times: track.length === 1 ? times[0] : times,\n }\n : {}, heartRates.length\n ? {\n heart: track.length === 1 ? heartRates[0] : heartRates,\n }\n : {});\n }\n return {\n type: \"Feature\",\n properties: properties,\n geometry: track.length === 1\n ? {\n type: \"LineString\",\n coordinates: track[0],\n }\n : {\n type: \"MultiLineString\",\n coordinates: track,\n },\n };\n}\n/**\n * Incrementally convert a TCX document to GeoJSON. The\n * first argument, `doc`, must be a TCX\n * document as an XML DOM - not as a string.\n */\nfunction* tcxGen(node) {\n for (const lap of $(node, \"Lap\")) {\n const feature = getLap(lap);\n if (feature)\n yield feature;\n }\n for (const course of $(node, \"Courses\")) {\n const feature = getLap(course);\n if (feature)\n yield feature;\n }\n}\n/**\n * Convert a TCX document to GeoJSON. The first argument, `doc`, must be a TCX\n * document as an XML DOM - not as a string.\n */\nfunction tcx(node) {\n return {\n type: \"FeatureCollection\",\n features: Array.from(tcxGen(node)),\n };\n}\n\nfunction fixColor(v, prefix) {\n const properties = {};\n const colorProp = prefix == \"stroke\" || prefix === \"fill\" ? prefix : prefix + \"-color\";\n if (v[0] === \"#\") {\n v = v.substring(1);\n }\n if (v.length === 6 || v.length === 3) {\n properties[colorProp] = \"#\" + v;\n }\n else if (v.length === 8) {\n properties[prefix + \"-opacity\"] = parseInt(v.substring(0, 2), 16) / 255;\n properties[colorProp] =\n \"#\" + v.substring(6, 8) + v.substring(4, 6) + v.substring(2, 4);\n }\n return properties;\n}\n\nfunction numericProperty(node, source, target) {\n const properties = {};\n num1(node, source, (val) => {\n properties[target] = val;\n });\n return properties;\n}\nfunction getColor(node, output) {\n return get(node, \"color\", (elem) => fixColor(nodeVal(elem), output));\n}\nfunction extractIcon(node) {\n return get(node, \"IconStyle\", (iconStyle) => {\n return Object.assign(getColor(iconStyle, \"icon\"), numericProperty(iconStyle, \"scale\", \"icon-scale\"), numericProperty(iconStyle, \"heading\", \"icon-heading\"), get(iconStyle, \"hotSpot\", (hotspot) => {\n const left = parseFloat(hotspot.getAttribute(\"x\") || \"\");\n const top = parseFloat(hotspot.getAttribute(\"y\") || \"\");\n const xunits = hotspot.getAttribute(\"xunits\") || \"\";\n const yunits = hotspot.getAttribute(\"yunits\") || \"\";\n if (!isNaN(left) && !isNaN(top))\n return {\n \"icon-offset\": [left, top],\n \"icon-offset-units\": [xunits, yunits],\n };\n return {};\n }), get(iconStyle, \"Icon\", (icon, properties) => {\n val1(icon, \"href\", (href) => {\n properties.icon = href;\n });\n return properties;\n }));\n });\n}\nfunction extractLabel(node) {\n return get(node, \"LabelStyle\", (labelStyle) => {\n return Object.assign(getColor(labelStyle, \"label\"), numericProperty(labelStyle, \"scale\", \"label-scale\"));\n });\n}\nfunction extractLine(node) {\n return get(node, \"LineStyle\", (lineStyle) => {\n return Object.assign(getColor(lineStyle, \"stroke\"), numericProperty(lineStyle, \"width\", \"stroke-width\"));\n });\n}\nfunction extractPoly(node) {\n return get(node, \"PolyStyle\", (polyStyle, properties) => {\n return Object.assign(properties, get(polyStyle, \"color\", (elem) => fixColor(nodeVal(elem), \"fill\")), val1(polyStyle, \"fill\", (fill) => {\n if (fill === \"0\")\n return { \"fill-opacity\": 0 };\n }), val1(polyStyle, \"outline\", (outline) => {\n if (outline === \"0\")\n return { \"stroke-opacity\": 0 };\n }));\n });\n}\nfunction extractStyle(node) {\n return Object.assign({}, extractPoly(node), extractLine(node), extractLabel(node), extractIcon(node));\n}\n\nconst removeSpace = /\\s*/g;\nconst trimSpace = /^\\s*|\\s*$/g;\nconst splitSpace = /\\s+/;\n/**\n * Get one coordinate from a coordinate array, if any\n */\nfunction coord1(value) {\n return value\n .replace(removeSpace, \"\")\n .split(\",\")\n .map(parseFloat)\n .filter((num) => !isNaN(num));\n}\n/**\n * Get all coordinates from a coordinate array as [[],[]]\n */\nfunction coord(value) {\n return value\n .replace(trimSpace, \"\")\n .split(splitSpace)\n .map(coord1)\n .filter((coord) => {\n return coord.length >= 2;\n });\n}\nfunction gxCoords(node) {\n let elems = $(node, \"coord\");\n if (elems.length === 0) {\n elems = $ns(node, \"coord\", \"*\");\n }\n const coordinates = elems.map((elem) => {\n return nodeVal(elem).split(\" \").map(parseFloat);\n });\n if (coordinates.length === 0) {\n return null;\n }\n return {\n geometry: coordinates.length > 2\n ? {\n type: \"LineString\",\n coordinates,\n }\n : {\n type: \"Point\",\n coordinates: coordinates[0],\n },\n times: $(node, \"when\").map((elem) => nodeVal(elem)),\n };\n}\nfunction fixRing(ring) {\n if (ring.length === 0)\n return ring;\n const first = ring[0];\n const last = ring[ring.length - 1];\n let equal = true;\n for (let i = 0; i < Math.max(first.length, last.length); i++) {\n if (first[i] !== last[i]) {\n equal = false;\n break;\n }\n }\n if (!equal) {\n return ring.concat([ring[0]]);\n }\n return ring;\n}\nconst GEO_TYPES = [\n \"Polygon\",\n \"LineString\",\n \"Point\",\n \"Track\",\n \"gx:Track\",\n];\nfunction getCoordinates(node) {\n return nodeVal(get1(node, \"coordinates\"));\n}\nfunction getGeometry(node) {\n const geometries = [];\n const coordTimes = [];\n for (const t of [\"MultiGeometry\", \"MultiTrack\", \"gx:MultiTrack\"]) {\n const elem = get1(node, t);\n if (elem) {\n return getGeometry(elem);\n }\n }\n for (const geoType of GEO_TYPES) {\n for (const geomNode of $(node, geoType)) {\n switch (geoType) {\n case \"Point\": {\n const coordinates = coord1(getCoordinates(geomNode));\n if (coordinates.length >= 2) {\n geometries.push({\n type: \"Point\",\n coordinates,\n });\n }\n break;\n }\n case \"LineString\": {\n const coordinates = coord(getCoordinates(geomNode));\n if (coordinates.length >= 2) {\n geometries.push({\n type: \"LineString\",\n coordinates,\n });\n }\n break;\n }\n case \"Polygon\": {\n const coords = [];\n for (const linearRing of $(geomNode, \"LinearRing\")) {\n const ring = fixRing(coord(getCoordinates(linearRing)));\n if (ring.length >= 4) {\n coords.push(ring);\n }\n }\n if (coords.length) {\n geometries.push({\n type: \"Polygon\",\n coordinates: coords,\n });\n }\n break;\n }\n case \"Track\":\n case \"gx:Track\": {\n const gx = gxCoords(geomNode);\n if (!gx)\n break;\n const { times, geometry } = gx;\n geometries.push(geometry);\n if (times.length)\n coordTimes.push(times);\n break;\n }\n }\n }\n }\n return {\n geometries,\n coordTimes,\n };\n}\n\nfunction extractExtendedData(node) {\n return get(node, \"ExtendedData\", (extendedData, properties) => {\n for (const data of $(extendedData, \"Data\")) {\n properties[data.getAttribute(\"name\") || \"\"] = nodeVal(get1(data, \"value\"));\n }\n for (const simpleData of $(extendedData, \"SimpleData\")) {\n properties[simpleData.getAttribute(\"name\") || \"\"] = nodeVal(simpleData);\n }\n return properties;\n });\n}\nfunction geometryListToGeometry(geometries) {\n return geometries.length === 0\n ? null\n : geometries.length === 1\n ? geometries[0]\n : {\n type: \"GeometryCollection\",\n geometries,\n };\n}\nfunction extractTimeSpan(node) {\n return get(node, \"TimeSpan\", (timeSpan) => {\n return {\n timespan: {\n begin: nodeVal(get1(timeSpan, \"begin\")),\n end: nodeVal(get1(timeSpan, \"end\")),\n },\n };\n });\n}\nfunction extractTimeStamp(node) {\n return get(node, \"TimeStamp\", (timeStamp) => {\n return { timestamp: nodeVal(get1(timeStamp, \"when\")) };\n });\n}\nfunction extractCascadedStyle(node, styleMap) {\n return val1(node, \"styleUrl\", (styleUrl) => {\n styleUrl = normalizeId(styleUrl);\n if (styleMap[styleUrl]) {\n return Object.assign({ styleUrl }, styleMap[styleUrl]);\n }\n // For backward-compatibility. Should we still include\n // styleUrl even if it's not resolved?\n return { styleUrl };\n });\n}\nfunction getPlacemark(node, styleMap) {\n const { coordTimes, geometries } = getGeometry(node);\n const feature = {\n type: \"Feature\",\n geometry: geometryListToGeometry(geometries),\n properties: Object.assign(getMulti(node, [\n \"name\",\n \"address\",\n \"visibility\",\n \"open\",\n \"phoneNumber\",\n \"description\",\n ]), extractCascadedStyle(node, styleMap), extractStyle(node), extractExtendedData(node), extractTimeSpan(node), extractTimeStamp(node), coordTimes.length\n ? {\n coordinateProperties: {\n times: coordTimes.length === 1 ? coordTimes[0] : coordTimes,\n },\n }\n : {}),\n };\n const id = node.getAttribute(\"id\");\n if (id !== null && id !== \"\")\n feature.id = id;\n return feature;\n}\n\nfunction getStyleId(style) {\n let id = style.getAttribute(\"id\");\n const parentNode = style.parentNode;\n if (!id &&\n isElement(parentNode) &&\n parentNode.localName === \"CascadingStyle\") {\n id = parentNode.getAttribute(\"kml:id\") || parentNode.getAttribute(\"id\");\n }\n return normalizeId(id || \"\");\n}\nfunction buildStyleMap(node) {\n const styleMap = {};\n for (const style of $(node, \"Style\")) {\n styleMap[getStyleId(style)] = extractStyle(style);\n }\n for (const map of $(node, \"StyleMap\")) {\n const id = normalizeId(map.getAttribute(\"id\") || \"\");\n val1(map, \"styleUrl\", (styleUrl) => {\n styleUrl = normalizeId(styleUrl);\n if (styleMap[styleUrl]) {\n styleMap[id] = styleMap[styleUrl];\n }\n });\n }\n return styleMap;\n}\nconst FOLDER_PROPS = [\n \"name\",\n \"visibility\",\n \"open\",\n \"address\",\n \"description\",\n \"phoneNumber\",\n \"visibility\",\n];\nfunction getFolder(node) {\n const meta = {};\n for (const child of Array.from(node.childNodes)) {\n if (isElement(child) && FOLDER_PROPS.includes(child.tagName)) {\n meta[child.tagName] = nodeVal(child);\n }\n }\n return {\n type: \"folder\",\n meta,\n children: [],\n };\n}\n/**\n * Yield a nested tree with KML folder structure\n *\n * This generates a tree with the given structure:\n *\n * ```js\n * {\n * \"type\": \"root\",\n * \"children\": [\n * {\n * \"type\": \"folder\",\n * \"meta\": {\n * \"name\": \"Test\"\n * },\n * \"children\": [\n * // ...features and folders\n * ]\n * }\n * // ...features\n * ]\n * }\n * ```\n */\nfunction kmlWithFolders(node) {\n const styleMap = buildStyleMap(node);\n const tree = { type: \"root\", children: [] };\n function traverse(node, pointer) {\n if (isElement(node)) {\n switch (node.tagName) {\n case \"Placemark\": {\n const placemark = getPlacemark(node, styleMap);\n if (placemark) {\n pointer.children.push(placemark);\n }\n break;\n }\n case \"Folder\": {\n const folder = getFolder(node);\n pointer.children.push(folder);\n pointer = folder;\n break;\n }\n }\n }\n if (node.childNodes) {\n for (let i = 0; i < node.childNodes.length; i++) {\n traverse(node.childNodes[i], pointer);\n }\n }\n }\n traverse(node, tree);\n return tree;\n}\n/**\n * Convert KML to GeoJSON incrementally, returning\n * a [Generator](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Iterators_and_Generators)\n * that yields output feature by feature.\n */\nfunction* kmlGen(node) {\n const styleMap = buildStyleMap(node);\n for (const placemark of $(node, \"Placemark\")) {\n const feature = getPlacemark(placemark, styleMap);\n if (feature)\n yield feature;\n }\n}\n/**\n * Convert a KML document to GeoJSON. The first argument, `doc`, must be a KML\n * document as an XML DOM - not as a string. You can get this using jQuery's default\n * `.ajax` function or using a bare XMLHttpRequest with the `.response` property\n * holding an XML DOM.\n *\n * The output is a JavaScript object of GeoJSON data. You can convert it to a string\n * with [JSON.stringify](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify)\n * or use it directly in libraries.\n */\nfunction kml(node) {\n return {\n type: \"FeatureCollection\",\n features: Array.from(kmlGen(node)),\n };\n}\n\nexport { gpx, gpxGen, kml, kmlGen, kmlWithFolders, tcx, tcxGen };\n//# sourceMappingURL=togeojson.es.mjs.map\n","import { watch, ref, provide, h, inject, onUnmounted, onBeforeUnmount, onMounted, nextTick, render as render$3, reactive, computed } from 'vue';\n\nconst debounce = (fn, time) => {\n let timeout;\n\n return function (...args) {\n const context = this;\n if (timeout) {\n clearTimeout(timeout);\n }\n timeout = setTimeout(() => {\n fn.apply(context, args);\n timeout = null;\n }, time);\n };\n};\n\nconst capitalizeFirstLetter = (string) => {\n if (!string || typeof string.charAt !== \"function\") {\n return string;\n }\n return string.charAt(0).toUpperCase() + string.slice(1);\n};\n\nconst propsBinder = (methods, leafletElement, props) => {\n for (const key in props) {\n const setMethodName = \"set\" + capitalizeFirstLetter(key);\n if (methods[setMethodName]) {\n watch(\n () => props[key],\n (newVal, oldVal) => {\n methods[setMethodName](newVal, oldVal);\n }\n );\n } else if (leafletElement[setMethodName]) {\n watch(\n () => props[key],\n (newVal) => {\n leafletElement[setMethodName](newVal);\n }\n );\n }\n }\n};\n\nconst remapEvents = (contextAttrs) => {\n const result = {};\n for (const attrName in contextAttrs) {\n if (\n attrName.startsWith(\"on\") &&\n !attrName.startsWith(\"onUpdate\") &&\n attrName !== \"onReady\"\n ) {\n const eventName = attrName.slice(2).toLocaleLowerCase();\n result[eventName] = contextAttrs[attrName];\n }\n }\n return result;\n};\n\nconst resetWebpackIcon = async (Icon) => {\n const modules = await Promise.all([\n import('leaflet/dist/images/marker-icon-2x.png'),\n import('leaflet/dist/images/marker-icon.png'),\n import('leaflet/dist/images/marker-shadow.png'),\n ]);\n\n delete Icon.Default.prototype._getIconUrl;\n\n Icon.Default.mergeOptions({\n iconRetinaUrl: modules[0].default,\n iconUrl: modules[1].default,\n shadowUrl: modules[2].default,\n });\n};\n\n/**\n * Wraps a placeholder function and provides it with the given name.\n * The wrapper can later be updated with {@link updateLeafletWrapper}\n * to provide a different function.\n *\n * @param {String} methodName Key used to provide the wrapper function\n */\nconst provideLeafletWrapper = (methodName) => {\n const wrapped = ref(() =>\n console.warn(`Method ${methodName} has been invoked without being replaced`)\n );\n const wrapper = (...args) => wrapped.value(...args);\n // eslint-disable-next-line vue/no-ref-as-operand\n wrapper.wrapped = wrapped;\n provide(methodName, wrapper);\n\n return wrapper;\n};\n\n/**\n * Change the function that will be executed when an injected Leaflet wrapper\n * is invoked.\n *\n * @param {*} wrapper Provided wrapper whose wrapped function is to be updated\n * @param {function} leafletMethod New method to be wrapped by the wrapper\n */\nconst updateLeafletWrapper = (wrapper, leafletMethod) =>\n (wrapper.wrapped.value = leafletMethod);\n\nconst WINDOW_OR_GLOBAL =\n (typeof self === \"object\" && self.self === self && self) ||\n (typeof global === \"object\" && global.global === global && global) ||\n undefined;\n\nconst GLOBAL_LEAFLET_OPT = \"useGlobalLeaflet\";\n\nconst props = {\n options: {\n type: Object,\n default: () => ({}),\n },\n};\n\nconst setup = (props) => {\n return { options: props.options, methods: {} };\n};\n\nconst props$1 = {\n ...props,\n pane: {\n type: String,\n default: \"overlayPane\",\n },\n attribution: {\n type: String,\n default: null,\n },\n name: {\n type: String,\n custom: true,\n default: undefined,\n },\n layerType: {\n type: String,\n custom: true,\n default: undefined,\n },\n visible: {\n type: Boolean,\n custom: true,\n default: true,\n },\n};\n\nconst setup$1 = (props, leafletRef, context) => {\n const addLayer = inject(\"addLayer\");\n const removeLayer = inject(\"removeLayer\");\n const {\n options: componentOptions,\n methods: componentMethods,\n } = setup(props);\n\n const options = {\n ...componentOptions,\n attribution: props.attribution,\n pane: props.pane,\n };\n\n const addThisLayer = () => addLayer({ leafletObject: leafletRef.value });\n const removeThisLayer = () =>\n removeLayer({ leafletObject: leafletRef.value });\n\n const methods = {\n ...componentMethods,\n setAttribution(val, old) {\n const attributionControl = this.$parent.leafletObject.attributionControl;\n attributionControl.removeAttribution(old).addAttribution(val);\n },\n setName() {\n removeThisLayer();\n if (props.visible) {\n addThisLayer();\n }\n },\n setLayerType() {\n removeThisLayer();\n if (props.visible) {\n addThisLayer();\n }\n },\n setVisible(isVisible) {\n if (leafletRef.value) {\n if (isVisible) {\n addThisLayer();\n } else {\n removeThisLayer();\n }\n }\n },\n bindPopup({ leafletObject }) {\n leafletRef.value.bindPopup(leafletObject);\n },\n bindTooltip({ leafletObject }) {\n leafletRef.value.bindTooltip(leafletObject);\n },\n unbindTooltip() {\n const tooltip = leafletRef.value ? leafletRef.value.getTooltip() : null;\n if (tooltip) {\n tooltip.unbindTooltip();\n }\n },\n unbindPopup() {\n const popup = leafletRef.value ? leafletRef.value.getPopup() : null;\n if (popup) {\n popup.unbindPopup();\n }\n },\n updateVisibleProp(value) {\n /**\n * Triggers when the visible prop needs to be updated\n * @type {boolean}\n * @property {boolean} value - value of the visible property\n */\n context.emit(\"update:visible\", value);\n },\n };\n\n provide(\"bindPopup\", methods.bindPopup);\n provide(\"bindTooltip\", methods.bindTooltip);\n provide(\"unbindTooltip\", methods.unbindTooltip);\n provide(\"unbindPopup\", methods.unbindPopup);\n\n onUnmounted(() => {\n methods.unbindPopup();\n methods.unbindTooltip();\n removeThisLayer();\n });\n\n return { options, methods };\n};\n\nconst render = (ready, slots) => {\n if (ready && slots.default) {\n return h(\"div\", { style: { display: \"none\" } }, slots.default());\n }\n};\n\nconst props$2 = {\n ...props,\n interactive: {\n type: Boolean,\n default: true,\n },\n bubblingMouseEvents: {\n type: Boolean,\n default: true,\n },\n};\n\nconst setup$2 = (props) => {\n const { options: componentOptions, methods } = setup(props);\n const options = {\n ...componentOptions,\n interactive: props.interactive,\n bubblingMouseEvents: props.bubblingMouseEvents,\n };\n\n return { options, methods };\n};\n\nconst props$3 = {\n ...props$1,\n ...props$2,\n stroke: {\n type: Boolean,\n custom: true,\n default: true,\n },\n color: {\n type: String,\n custom: true,\n default: \"#3388ff\",\n },\n weight: {\n type: Number,\n custom: true,\n default: 3,\n },\n opacity: {\n type: Number,\n custom: true,\n default: 1.0,\n },\n lineCap: {\n type: String,\n custom: true,\n default: \"round\",\n },\n lineJoin: {\n type: String,\n custom: true,\n default: \"round\",\n },\n dashArray: {\n type: String,\n custom: true,\n default: null,\n },\n dashOffset: {\n type: String,\n custom: true,\n default: null,\n },\n fill: {\n type: Boolean,\n custom: true,\n default: false,\n },\n fillColor: {\n type: String,\n custom: true,\n default: \"#3388ff\",\n },\n fillOpacity: {\n type: Number,\n custom: true,\n default: 0.2,\n },\n fillRule: {\n type: String,\n custom: true,\n default: \"evenodd\",\n },\n className: {\n type: String,\n custom: true,\n default: null,\n },\n};\n\nconst setup$3 = (props, leafletRef, context) => {\n const { options: layerOptions, methods: layerMethods } = setup$1(\n props,\n leafletRef,\n context\n );\n const {\n options: interactiveLayerOptions,\n methods: interactiveLayerMethods,\n } = setup$2(props);\n\n const removeLayer = inject(\"removeLayer\");\n\n const options = {\n ...layerOptions,\n ...interactiveLayerOptions,\n stroke: props.stroke,\n color: props.color,\n weight: props.weight,\n opacity: props.opacity,\n lineCap: props.lineCap,\n lineJoin: props.lineJoin,\n dashArray: props.dashArray,\n dashOffset: props.dashOffset,\n fill: props.fill,\n fillColor: props.fillColor,\n fillOpacity: props.fillOpacity,\n fillRule: props.fillRule,\n className: props.className,\n };\n const methods = {\n ...layerMethods,\n ...interactiveLayerMethods,\n setStroke(stroke) {\n leafletRef.value.setStyle({ stroke });\n },\n setColor(color) {\n leafletRef.value.setStyle({ color });\n },\n setWeight(weight) {\n leafletRef.value.setStyle({ weight });\n },\n setOpacity(opacity) {\n leafletRef.value.setStyle({ opacity });\n },\n setLineCap(lineCap) {\n leafletRef.value.setStyle({ lineCap });\n },\n setLineJoin(lineJoin) {\n leafletRef.value.setStyle({ lineJoin });\n },\n setDashArray(dashArray) {\n leafletRef.value.setStyle({ dashArray });\n },\n setDashOffset(dashOffset) {\n leafletRef.value.setStyle({ dashOffset });\n },\n setFill(fill) {\n leafletRef.value.setStyle({ fill });\n },\n setFillColor(fillColor) {\n leafletRef.value.setStyle({ fillColor });\n },\n setFillOpacity(fillOpacity) {\n leafletRef.value.setStyle({ fillOpacity });\n },\n setFillRule(fillRule) {\n leafletRef.value.setStyle({ fillRule });\n },\n setClassName(className) {\n leafletRef.value.setStyle({ className });\n },\n };\n\n onBeforeUnmount(() => {\n removeLayer({ leafletObject: leafletRef.value });\n });\n\n return { options, methods };\n};\n\nconst props$4 = {\n ...props$3,\n latLng: {\n type: [Object, Array],\n custom: true,\n default: null,\n },\n /**\n * Radius of the marker in pixels.\n */\n radius: {\n type: Number,\n default: null,\n },\n};\n\nconst setup$4 = (props, leafletRef, context) => {\n const { options: pathOptions, methods: pathMethods } = setup$3(\n props,\n leafletRef,\n context\n );\n const options = {\n ...pathOptions,\n ...props,\n };\n const methods = {\n ...pathMethods,\n setRadius(radius) {\n leafletRef.value.setRadius(radius);\n },\n setLatLng(latLng) {\n leafletRef.value.setLatLng(latLng);\n },\n };\n\n return { options, methods };\n};\n\nconst props$5 = {\n ...props$4,\n /**\n * Radius of the circle in meters.\n */\n radius: {\n type: Number,\n default: null,\n },\n};\n\nconst setup$5 = (props, leafletRef, context) => {\n const {\n options: circleMarkerOptions,\n methods: circleMarkerMethods,\n } = setup$4(props, leafletRef, context);\n\n const options = {\n ...circleMarkerOptions,\n ...props,\n };\n\n const methods = {\n ...circleMarkerMethods,\n };\n\n return { options, methods };\n};\n\n/**\n * Circle component, lets you add and personalize circles on the map\n */\nvar script = {\n name: \"LCircle\",\n props: props$5,\n setup(props, context) {\n const leafletRef = ref({});\n const ready = ref(false);\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const addLayer = inject(\"addLayer\");\n\n const { options, methods } = setup$5(props, leafletRef, context);\n\n onMounted(async () => {\n const { circle, DomEvent } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n\n leafletRef.value = circle(props.latLng, options);\n\n const listeners = remapEvents(context.attrs);\n DomEvent.on(leafletRef.value, listeners);\n\n propsBinder(methods, leafletRef.value, props);\n\n addLayer({\n ...props,\n ...methods,\n leafletObject: leafletRef.value,\n });\n ready.value = true;\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n return { ready, leafletObject: leafletRef };\n },\n render() {\n return render(this.ready, this.$slots);\n },\n};\n\nscript.__file = \"src/components/LCircle.vue\";\n\n/**\n * Circle Marker component, lets you add and personalize circle markers on the map\n */\nvar script$1 = {\n name: \"LCircleMarker\",\n props: props$4,\n setup(props, context) {\n const leafletRef = ref({});\n const ready = ref(false);\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const addLayer = inject(\"addLayer\");\n\n const { options, methods } = setup$4(props, leafletRef, context);\n\n onMounted(async () => {\n const { circleMarker, DomEvent } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n\n leafletRef.value = circleMarker(props.latLng, options);\n\n const listeners = remapEvents(context.attrs);\n DomEvent.on(leafletRef.value, listeners);\n\n propsBinder(methods, leafletRef.value, props);\n\n addLayer({\n ...props,\n ...methods,\n leafletObject: leafletRef.value,\n });\n ready.value = true;\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n return { ready, leafletObject: leafletRef };\n },\n render() {\n return render(this.ready, this.$slots);\n },\n};\n\nscript$1.__file = \"src/components/LCircleMarker.vue\";\n\nconst props$6 = {\n ...props,\n position: {\n type: String,\n default: \"topright\",\n },\n};\n\nconst setup$6 = (props, leafletRef) => {\n const {\n options: componentOptions,\n methods: componentMethods,\n } = setup(props);\n const options = {\n ...componentOptions,\n position: props.position,\n };\n\n const methods = {\n ...componentMethods,\n setPosition(position) {\n if (leafletRef.value) {\n leafletRef.value.setPosition(position);\n }\n },\n };\n\n onUnmounted(() => {\n if (leafletRef.value) {\n leafletRef.value.remove();\n }\n });\n\n return { options, methods };\n};\n\nconst render$1 = (slots) => {\n if (slots.default) {\n return h(\"div\", { ref: \"root\" }, slots.default());\n }\n return null;\n};\n\nvar script$2 = {\n name: \"LControl\",\n props: {\n ...props$6,\n disableClickPropagation: {\n type: Boolean,\n custom: true,\n default: true,\n },\n disableScrollPropagation: {\n type: Boolean,\n custom: true,\n default: false,\n },\n },\n setup(props, context) {\n const leafletRef = ref({});\n const root = ref(null);\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const registerControl = inject(\"registerControl\");\n\n const { options, methods } = setup$6(props, leafletRef);\n\n onMounted(async () => {\n const { Control, DomEvent } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n\n const LControl = Control.extend({\n onAdd() {\n return root.value;\n },\n });\n\n leafletRef.value = new LControl(options);\n propsBinder(methods, leafletRef.value, props);\n registerControl({ leafletObject: leafletRef.value });\n\n if (props.disableClickPropagation) {\n DomEvent.disableClickPropagation(root.value);\n }\n if (props.disableScrollPropagation) {\n DomEvent.disableScrollPropagation(root.value);\n }\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n return { root, leafletObject: leafletRef };\n },\n render() {\n return render$1(this.$slots);\n },\n};\n\nscript$2.__file = \"src/components/LControl.vue\";\n\nconst props$7 = {\n ...props$6,\n prefix: {\n type: String,\n default: \"Vue-Leaflet\",\n custom: true,\n },\n};\n\nconst setup$7 = (props, leafletRef) => {\n const { options: controlOptions, methods: controlMethods } = setup$6(\n props,\n leafletRef\n );\n const options = {\n ...controlOptions,\n prefix: props.prefix,\n };\n\n const methods = {\n ...controlMethods,\n setPrefix(prefix) {\n leafletRef.value.setPrefix(prefix);\n },\n };\n\n return { options, methods };\n};\n\nvar script$3 = {\n name: \"LControlAttribution\",\n props: props$7,\n setup(props, context) {\n const leafletRef = ref({});\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const registerControl = inject(\"registerControl\");\n\n const { options, methods } = setup$7(props, leafletRef);\n\n onMounted(async () => {\n const { control } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n\n leafletRef.value = control.attribution(options);\n propsBinder(methods, leafletRef.value, props);\n registerControl({ leafletObject: leafletRef.value });\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n return { leafletObject: leafletRef.value };\n },\n render() {\n return null;\n },\n};\n\nscript$3.__file = \"src/components/LControlAttribution.vue\";\n\nconst props$8 = {\n ...props$6,\n collapsed: {\n type: Boolean,\n default: true,\n },\n autoZIndex: {\n type: Boolean,\n default: true,\n },\n hideSingleBase: {\n type: Boolean,\n default: false,\n },\n sortLayers: {\n type: Boolean,\n default: false,\n },\n sortFunction: {\n type: Function,\n default: undefined,\n },\n};\n\nconst setup$8 = (props, leafletRef) => {\n const { options: controlOptions } = setup$6(props, leafletRef);\n const options = {\n ...controlOptions,\n collapsed: props.collapsed,\n autoZIndex: props.autoZIndex,\n hideSingleBase: props.hideSingleBase,\n sortLayers: props.sortLayers,\n sortFunction: props.sortFunction,\n };\n\n const methods = {\n addLayer(layer) {\n if (layer.layerType === \"base\") {\n leafletRef.value.addBaseLayer(layer.leafletObject, layer.name);\n } else if (layer.layerType === \"overlay\") {\n leafletRef.value.addOverlay(layer.leafletObject, layer.name);\n }\n },\n removeLayer(layer) {\n leafletRef.value.removeLayer(layer.leafletObject);\n },\n };\n return { options, methods };\n};\n\nvar script$4 = {\n name: \"LControlLayers\",\n props: props$8,\n setup(props, context) {\n const leafletRef = ref({});\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const registerLayerControl = inject(\"registerLayerControl\");\n\n const { options, methods } = setup$8(props, leafletRef);\n\n onMounted(async () => {\n const { control } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n\n leafletRef.value = control.layers(null, null, options);\n\n propsBinder(methods, leafletRef.value, props);\n\n registerLayerControl({\n ...props,\n ...methods,\n leafletObject: leafletRef.value,\n });\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n return { leafletObject: leafletRef.value };\n },\n render() {\n return null;\n },\n};\n\nscript$4.__file = \"src/components/LControlLayers.vue\";\n\nconst props$9 = {\n ...props$6,\n maxWidth: {\n type: Number,\n default: 100,\n },\n metric: {\n type: Boolean,\n default: true,\n },\n imperial: {\n type: Boolean,\n default: true,\n },\n updateWhenIdle: {\n type: Boolean,\n default: false,\n },\n};\n\nconst setup$9 = (props, leafletRef) => {\n const { options: controlOptions, methods: controlMethods } = setup$6(\n props,\n leafletRef\n );\n const options = {\n ...controlOptions,\n maxWidth: props.maxWidth,\n metric: props.metric,\n imperial: props.imperial,\n updateWhenIdle: props.updateWhenIdle,\n };\n\n return { options, methods: controlMethods };\n};\n\nvar script$5 = {\n name: \"LControlScale\",\n props: props$9,\n setup(props, context) {\n const leafletRef = ref({});\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const registerControl = inject(\"registerControl\");\n\n const { options, methods } = setup$9(props, leafletRef);\n\n onMounted(async () => {\n const { control } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n\n leafletRef.value = control.scale(options);\n propsBinder(methods, leafletRef.value, props);\n registerControl({ leafletObject: leafletRef.value });\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n return { leafletObject: leafletRef.value };\n },\n render() {\n return null;\n },\n};\n\nscript$5.__file = \"src/components/LControlScale.vue\";\n\nconst props$a = {\n ...props$6,\n zoomInText: {\n type: String,\n default: \"+\",\n },\n zoomInTitle: {\n type: String,\n default: \"Zoom in\",\n },\n zoomOutText: {\n type: String,\n default: \"-\",\n },\n zoomOutTitle: {\n type: String,\n default: \"Zoom out\",\n },\n};\n\nconst setup$a = (props, leafletRef) => {\n const { options: controlOptions, methods: controlMethods } = setup$6(\n props,\n leafletRef\n );\n const options = {\n ...controlOptions,\n zoomInText: props.zoomInText,\n zoomInTitle: props.zoomInTitle,\n zoomOutText: props.zoomOutText,\n zoomOutTitle: props.zoomOutTitle,\n };\n\n return { options, methods: controlMethods };\n};\n\nvar script$6 = {\n name: \"LControlZoom\",\n props: props$a,\n setup(props, context) {\n const leafletRef = ref({});\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const registerControl = inject(\"registerControl\");\n\n const { options, methods } = setup$a(props, leafletRef);\n\n onMounted(async () => {\n const { control } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n\n leafletRef.value = control.zoom(options);\n propsBinder(methods, leafletRef.value, props);\n registerControl({ leafletObject: leafletRef.value });\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n return { leafletObject: leafletRef.value };\n },\n render() {\n return null;\n },\n};\n\nscript$6.__file = \"src/components/LControlZoom.vue\";\n\nconst props$b = {\n ...props$1,\n};\n\nconst setup$b = (props, leafletRef, context) => {\n const { options: layerOptions, methods: layerMethods } = setup$1(\n props,\n leafletRef,\n context\n );\n\n const options = {\n ...layerOptions,\n };\n\n const methods = {\n ...layerMethods,\n addLayer(layer) {\n leafletRef.value.addLayer(layer.leafletObject);\n },\n removeLayer(layer) {\n leafletRef.value.removeLayer(layer.leafletObject);\n },\n };\n\n provide(\"addLayer\", methods.addLayer);\n provide(\"removeLayer\", methods.removeLayer);\n\n return { options, methods };\n};\n\nconst props$c = {\n ...props$b,\n};\n\nconst setup$c = (props, leafletRef) => {\n const { options: layerOptions, methods: layerGroupMethods } = setup$b(\n props,\n leafletRef\n );\n\n const options = {\n ...layerOptions,\n ...props,\n };\n\n const methods = {\n ...layerGroupMethods,\n };\n\n return { options, methods };\n};\n\nvar script$7 = {\n props: props$c,\n setup(props, context) {\n const leafletRef = ref({});\n const ready = ref(false);\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const addLayer = inject(\"addLayer\");\n\n const { methods, options } = setup$c(props, leafletRef);\n\n onMounted(async () => {\n const { featureGroup, DomEvent } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n\n leafletRef.value = featureGroup(options);\n\n const listeners = remapEvents(context.attrs);\n DomEvent.on(leafletRef.value, listeners);\n\n propsBinder(methods, leafletRef.value, props);\n addLayer({\n ...props,\n ...methods,\n leafletObject: leafletRef.value,\n });\n ready.value = true;\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n return { ready, leafletObject: leafletRef };\n },\n render() {\n return render(this.ready, this.$slots);\n },\n};\n\nscript$7.__file = \"src/components/LFeatureGroup.vue\";\n\nconst props$d = {\n ...props$b,\n geojson: {\n type: [Object, Array],\n default: () => ({}),\n },\n};\n\nconst setup$d = (props, leafletRef) => {\n const { options: layerOptions, methods: layerGroupMethods } = setup$b(\n props,\n leafletRef\n );\n\n const options = {\n ...layerOptions,\n ...props,\n };\n\n const methods = {\n ...layerGroupMethods,\n setGeojson(newVal) {\n leafletRef.value.clearLayers();\n leafletRef.value.addData(newVal);\n },\n getGeoJSONData() {\n return leafletRef.value.toGeoJSON();\n },\n getBounds() {\n return leafletRef.value.getBounds();\n },\n };\n\n return { options, methods };\n};\n\nvar script$8 = {\n props: props$d,\n setup(props, context) {\n const leafletRef = ref({});\n const ready = ref(false);\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const addLayer = inject(\"addLayer\");\n\n const { methods, options } = setup$d(props, leafletRef);\n\n onMounted(async () => {\n const { geoJSON, DomEvent } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n\n leafletRef.value = geoJSON(props.geojson, options);\n\n const listeners = remapEvents(context.attrs);\n DomEvent.on(leafletRef.value, listeners);\n\n propsBinder(methods, leafletRef.value, props);\n addLayer({\n ...props,\n ...methods,\n leafletObject: leafletRef.value,\n });\n ready.value = true;\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n return { ready, leafletObject: leafletRef };\n },\n render() {\n return render(this.ready, this.$slots);\n },\n};\n\nscript$8.__file = \"src/components/LGeoJson.vue\";\n\nconst props$e = {\n ...props$1,\n pane: {\n type: String,\n default: \"tilePane\",\n },\n opacity: {\n type: Number,\n custom: false,\n default: 1.0,\n },\n zIndex: {\n type: Number,\n default: 1,\n },\n tileSize: {\n type: Number,\n default: 256,\n },\n noWrap: {\n type: Boolean,\n default: false,\n },\n minZoom: {\n type: Number,\n default: 0,\n },\n maxZoom: {\n type: Number,\n default: undefined,\n },\n};\n\nconst setup$e = (props, leafletRef, context) => {\n const { options: layerOptions, methods: layerMethods } = setup$1(\n props,\n leafletRef,\n context\n );\n const options = {\n ...layerOptions,\n pane: props.pane,\n opacity: props.opacity,\n zIndex: props.zIndex,\n tileSize: props.tileSize,\n noWrap: props.noWrap,\n minZoom: props.minZoom,\n maxZoom: props.maxZoom,\n };\n return { options, methods: { ...layerMethods } };\n};\n\nvar script$9 = {\n props: {\n ...props$e,\n childRender: {\n type: Function,\n required: true,\n },\n },\n setup(props, context) {\n const leafletRef = ref({});\n const tileComponents = ref({});\n const root = ref(null);\n const ready = ref(false);\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const addLayer = inject(\"addLayer\");\n\n const { options, methods } = setup$e(props, leafletRef, context);\n\n onMounted(async () => {\n const { GridLayer, DomEvent, DomUtil } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n\n methods.onUnload = (e) => {\n const key = leafletRef.value._tileCoordsToKey(e.coords);\n if (tileComponents[key]) {\n tileComponents[key].innerHTML = \"\";\n tileComponents[key] = undefined;\n }\n };\n\n methods.setTileComponent = () => {\n leafletRef.value.redraw();\n };\n\n const GLayer = GridLayer.extend({\n createTile(coords) {\n const key = leafletRef.value._tileCoordsToKey(coords);\n tileComponents[key] = DomUtil.create(\"div\");\n\n let vNode = h(\n { setup: props.childRender, props: [\"coords\"] },\n { coords }\n );\n render$3(vNode, tileComponents[key]);\n\n return tileComponents[key];\n },\n });\n\n leafletRef.value = new GLayer(options);\n\n const listeners = remapEvents(context.attrs);\n DomEvent.on(leafletRef.value, listeners);\n\n leafletRef.value.on(\"tileunload\", methods.onUnload);\n\n propsBinder(methods, leafletRef.value, props);\n addLayer({\n ...props,\n ...methods,\n leafletObject: leafletRef.value,\n });\n ready.value = true;\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n\n onUnmounted(() => {\n leafletRef.value.off(\"tileunload\", methods.unLoad);\n });\n\n return { root, ready, leafletObject: leafletRef };\n },\n render() {\n if (this.ready) {\n return h(\"div\", { style: { display: \"none\" }, ref: \"root\" });\n }\n return null;\n },\n};\n\nscript$9.__file = \"src/components/LGridLayer.vue\";\n\nconst props$f = {\n iconUrl: {\n type: String,\n custom: true,\n default: null,\n },\n iconRetinaUrl: {\n type: String,\n custom: true,\n default: null,\n },\n iconSize: {\n type: [Object, Array],\n custom: true,\n default: null,\n },\n iconAnchor: {\n type: [Object, Array],\n custom: true,\n default: null,\n },\n popupAnchor: {\n type: [Object, Array],\n custom: true,\n default: () => [0, 0],\n },\n tooltipAnchor: {\n type: [Object, Array],\n custom: true,\n default: () => [0, 0],\n },\n shadowUrl: {\n type: String,\n custom: true,\n default: null,\n },\n shadowRetinaUrl: {\n type: String,\n custom: true,\n default: null,\n },\n shadowSize: {\n type: [Object, Array],\n custom: true,\n default: null,\n },\n shadowAnchor: {\n type: [Object, Array],\n custom: true,\n default: null,\n },\n bgPos: {\n type: [Object, Array],\n custom: true,\n default: () => [0, 0],\n },\n className: {\n type: String,\n custom: true,\n default: \"\",\n },\n options: {\n type: Object,\n custom: true,\n default: () => ({}),\n },\n};\n\n/**\n * Icon component, lets you add and custom icons to the map\n */\nvar script$a = {\n name: \"LIcon\",\n props: {\n ...props$f,\n ...props,\n },\n setup(props, context) {\n const root = ref(null);\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const canSetParentHtml = inject(\"canSetParentHtml\");\n const setParentHtml = inject(\"setParentHtml\");\n const setIcon = inject(\"setIcon\");\n\n let onDomEvent;\n let offDomEvent;\n let divIcon;\n let icon;\n let iconObject = undefined;\n\n const createIcon = (el, recreationNeeded, htmlSwapNeeded) => {\n const elHtml = el && el.innerHTML;\n if (!recreationNeeded) {\n if (htmlSwapNeeded && iconObject && canSetParentHtml()) {\n setParentHtml(elHtml);\n }\n return;\n }\n\n const listeners = remapEvents(context.attrs);\n if (iconObject) {\n offDomEvent(iconObject, listeners);\n }\n\n const { options: componentOptions } = setup(props);\n const options = {\n ...componentOptions,\n iconUrl: props.iconUrl,\n iconRetinaUrl: props.iconRetinaUrl,\n iconSize: props.iconSize,\n iconAnchor: props.iconAnchor,\n popupAnchor: props.popupAnchor,\n tooltipAnchor: props.tooltipAnchor,\n shadowUrl: props.shadowUrl,\n shadowRetinaUrl: props.shadowRetinaUrl,\n shadowSize: props.shadowSize,\n shadowAnchor: props.shadowAnchor,\n bgPos: props.bgPos,\n className: props.className,\n html: elHtml || props.html,\n };\n\n iconObject = options.html ? divIcon(options) : icon(options);\n onDomEvent(iconObject, listeners);\n setIcon(iconObject);\n };\n\n const scheduleCreateIcon = () => {\n nextTick(() => createIcon(root.value, true, false));\n };\n\n const scheduleHtmlSwap = () => {\n nextTick(() => createIcon(root.value, false, true));\n };\n\n const methods = {\n setIconUrl: scheduleCreateIcon,\n setIconRetinaUrl: scheduleCreateIcon,\n setIconSize: scheduleCreateIcon,\n setIconAnchor: scheduleCreateIcon,\n setPopupAnchor: scheduleCreateIcon,\n setTooltipAnchor: scheduleCreateIcon,\n setShadowUrl: scheduleCreateIcon,\n setShadowRetinaUrl: scheduleCreateIcon,\n setShadowAnchor: scheduleCreateIcon,\n setBgPos: scheduleCreateIcon,\n setClassName: scheduleCreateIcon,\n setHtml: scheduleCreateIcon,\n };\n\n onMounted(async () => {\n const { DomEvent, divIcon: lDivIcon, icon: lIcon } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n\n onDomEvent = DomEvent.on;\n offDomEvent = DomEvent.off;\n divIcon = lDivIcon;\n icon = lIcon;\n\n propsBinder(methods, {}, props);\n\n const observer = new MutationObserver(scheduleHtmlSwap);\n observer.observe(root.value, {\n attributes: true,\n childList: true,\n characterData: true,\n subtree: true,\n });\n scheduleCreateIcon();\n });\n\n return { root };\n },\n render() {\n const content = this.$slots.default ? this.$slots.default() : undefined;\n return h(\"div\", { ref: \"root\" }, content);\n },\n};\n\nscript$a.__file = \"src/components/LIcon.vue\";\n\n/**\n * @typedef {import('leaflet/dist/leaflet-src.esm.js').LatLngBounds} LatLngBounds\n */\n\nconst props$g = {\n ...props$1,\n url: {\n type: String,\n required: true,\n },\n bounds: {\n type: [Array, Object],\n required: true,\n },\n opacity: {\n type: Number,\n custom: true,\n default: 1.0,\n },\n alt: {\n type: String,\n default: \"\",\n },\n interactive: {\n type: Boolean,\n default: false,\n },\n crossOrigin: {\n type: Boolean,\n default: false,\n },\n errorOverlayUrl: {\n type: String,\n custom: true,\n default: \"\",\n },\n zIndex: {\n type: Number,\n custom: true,\n default: 1,\n },\n className: {\n type: String,\n default: \"\",\n },\n};\n\nconst setup$f = (setupProps, LeafletRef, context) => {\n const { options: layerOptions, methods: layerMethods } = setup$1(\n setupProps,\n LeafletRef,\n context\n );\n const options = {\n ...layerOptions,\n ...setupProps,\n };\n\n const methods = {\n ...layerMethods,\n /**\n * Sets the opacity of the overlay.\n * @param {number} opacity\n */\n setOpacity(opacity) {\n return LeafletRef.value.setOpacity(opacity);\n },\n /**\n * Changes the URL of the image.\n * @param {string} url\n */\n setUrl(url) {\n return LeafletRef.value.setUrl(url);\n },\n /**\n * Update the bounds that this ImageOverlay covers\n * @param {LatLngBounds | Array>} bounds\n */\n setBounds(bounds) {\n return LeafletRef.value.setBounds(bounds);\n },\n /**\n * Get the bounds that this ImageOverlay covers\n * @returns {LatLngBounds}\n */\n getBounds() {\n return LeafletRef.value.getBounds();\n },\n /**\n * Returns the instance of HTMLImageElement used by this overlay.\n * @returns {HTMLElement}\n */\n getElement() {\n return LeafletRef.value.getElement();\n },\n /**\n * Brings the layer to the top of all overlays.\n */\n bringToFront() {\n return LeafletRef.value.bringToFront();\n },\n /**\n * Brings the layer to the bottom of all overlays.\n */\n bringToBack() {\n return LeafletRef.value.bringToBack();\n },\n /**\n * Changes the zIndex of the image overlay.\n * @param {number} zIndex\n */\n setZIndex(zIndex) {\n return LeafletRef.value.setZIndex(zIndex);\n },\n };\n\n return { options, methods };\n};\n\n/**\n * ImageOverlay component, render a plain image instead of a geospatial map.\n */\nvar script$b = {\n name: \"LImageOverlay\",\n props: props$g,\n setup(props, context) {\n const leafletRef = ref({});\n const ready = ref(false);\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const addLayer = inject(\"addLayer\");\n\n const { options, methods } = setup$f(props, leafletRef, context);\n\n onMounted(async () => {\n const { imageOverlay, DomEvent } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n leafletRef.value = imageOverlay(props.url, props.bounds, options);\n\n const listeners = remapEvents(context.attrs);\n DomEvent.on(leafletRef.value, listeners);\n propsBinder(methods, leafletRef.value, props);\n addLayer({\n ...props,\n ...methods,\n leafletObject: leafletRef.value,\n });\n ready.value = true;\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n\n return { ready, leafletObject: leafletRef };\n },\n render() {\n return render(this.ready, this.$slots);\n },\n};\n\nscript$b.__file = \"src/components/LImageOverlay.vue\";\n\nvar script$c = {\n props: props$b,\n setup(props, context) {\n const leafletRef = ref({});\n const ready = ref(false);\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const addLayer = inject(\"addLayer\");\n\n const { methods } = setup$b(props, leafletRef, context);\n\n onMounted(async () => {\n const { layerGroup, DomEvent } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n leafletRef.value = layerGroup(props.options);\n\n const listeners = remapEvents(context.attrs);\n DomEvent.on(leafletRef.value, listeners);\n\n propsBinder(methods, leafletRef.value, props);\n addLayer({\n ...props,\n ...methods,\n leafletObject: leafletRef.value,\n });\n ready.value = true;\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n return { ready, leafletObject: leafletRef };\n },\n render() {\n return render(this.ready, this.$slots);\n },\n};\n\nscript$c.__file = \"src/components/LLayerGroup.vue\";\n\nvar script$d = {\n emits: [\"ready\", \"update:zoom\", \"update:center\", \"update:bounds\"],\n props: {\n ...props,\n /**\n * The center of the map, supports .sync modifier\n */\n center: {\n type: [Object, Array],\n default: () => [0, 0],\n },\n /**\n * The bounds of the map, supports .sync modifier\n */\n bounds: {\n type: [Array, Object],\n default: undefined,\n },\n /**\n * The max bounds of the map\n */\n maxBounds: {\n type: [Array, Object],\n default: undefined,\n },\n /**\n * The zoom of the map, supports .sync modifier\n */\n zoom: {\n type: Number,\n default: 0,\n },\n /**\n * The minZoom of the map\n */\n minZoom: {\n type: Number,\n default: undefined,\n },\n /**\n * The maxZoom of the map\n */\n maxZoom: {\n type: Number,\n default: undefined,\n },\n /**\n * The paddingBottomRight of the map\n */\n paddingBottomRight: {\n type: Array,\n default: undefined,\n },\n /**\n * The paddingTopLeft of the map\n */\n paddingTopLeft: {\n type: Array,\n default: undefined,\n },\n /**\n * The padding of the map\n */\n padding: {\n type: Array,\n default: undefined,\n },\n /**\n * The worldCopyJump option for the map\n */\n worldCopyJump: {\n type: Boolean,\n default: false,\n },\n /**\n * The CRS to use for the map. Can be an object that defines a coordinate reference\n * system for projecting geographical points into screen coordinates and back\n * (see https://leafletjs.com/reference-1.7.1.html#crs-l-crs-base), or a string\n * name identifying one of Leaflet's defined CRSs, such as \"EPSG4326\".\n */\n crs: {\n type: [String, Object],\n default: \"EPSG3857\",\n },\n maxBoundsViscosity: {\n type: Number,\n default: undefined,\n },\n inertia: {\n type: Boolean,\n default: undefined,\n },\n inertiaDeceleration: {\n type: Number,\n default: undefined,\n },\n inertiaMaxSpeed: {\n type: Number,\n default: undefined,\n },\n easeLinearity: {\n type: Number,\n default: undefined,\n },\n zoomAnimation: {\n type: Boolean,\n default: undefined,\n },\n zoomAnimationThreshold: {\n type: Number,\n default: undefined,\n },\n fadeAnimation: {\n type: Boolean,\n default: undefined,\n },\n markerZoomAnimation: {\n type: Boolean,\n default: undefined,\n },\n noBlockingAnimations: {\n type: Boolean,\n default: false,\n },\n useGlobalLeaflet: {\n type: Boolean,\n default: false,\n },\n },\n setup(props, context) {\n const root = ref(null);\n const blueprint = reactive({\n ready: false,\n leafletRef: {},\n layersToAdd: [],\n layersInControl: [],\n });\n const { options: componentOptions } = setup(props);\n const options = {\n ...componentOptions,\n minZoom: props.minZoom,\n maxZoom: props.maxZoom,\n maxBounds: props.maxBounds,\n maxBoundsViscosity: props.maxBoundsViscosity,\n worldCopyJump: props.worldCopyJump,\n crs: props.crs,\n center: props.center,\n zoom: props.zoom,\n inertia: props.inertia,\n inertiaDeceleration: props.inertiaDeceleration,\n inertiaMaxSpeed: props.inertiaMaxSpeed,\n easeLinearity: props.easeLinearity,\n zoomAnimation: props.zoomAnimation,\n zoomAnimationThreshold: props.zoomAnimationThreshold,\n fadeAnimation: props.fadeAnimation,\n markerZoomAnimation: props.markerZoomAnimation,\n };\n\n const addLayer = provideLeafletWrapper(\"addLayer\");\n const removeLayer = provideLeafletWrapper(\"removeLayer\");\n const registerControl = provideLeafletWrapper(\"registerControl\");\n const registerLayerControl = provideLeafletWrapper(\"registerLayerControl\");\n provide(GLOBAL_LEAFLET_OPT, props.useGlobalLeaflet);\n\n const eventHandlers = {\n moveEndHandler() {\n /**\n * Triggers when zoom is updated\n * @type {number,string}\n */\n context.emit(\"update:zoom\", blueprint.leafletRef.getZoom());\n /**\n * Triggers when center is updated\n * @type {object,array}\n */\n context.emit(\"update:center\", blueprint.leafletRef.getCenter());\n\n /**\n * Triggers when bounds are updated\n * @type {object}\n */\n context.emit(\"update:bounds\", blueprint.leafletRef.getBounds());\n },\n overlayAddHandler(e) {\n const layer = blueprint.layersInControl.find((l) => l.name === e.name);\n if (layer) {\n layer.updateVisibleProp(true);\n }\n },\n overlayRemoveHandler(e) {\n const layer = blueprint.layersInControl.find((l) => l.name === e.name);\n if (layer) {\n layer.updateVisibleProp(false);\n }\n },\n };\n\n onMounted(async () => {\n if (props.useGlobalLeaflet) {\n WINDOW_OR_GLOBAL.L = WINDOW_OR_GLOBAL.L || (await import('leaflet'));\n }\n const {\n map,\n CRS,\n Icon,\n latLngBounds,\n latLng,\n DomEvent,\n } = props.useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n\n try {\n options.beforeMapMount && (await options.beforeMapMount());\n } catch (error) {\n console.error(\n `The following error occurred running the provided beforeMapMount hook ${error.message}`\n );\n }\n\n await resetWebpackIcon(Icon);\n\n const optionsCrs =\n typeof options.crs == \"string\" ? CRS[options.crs] : options.crs;\n options.crs = optionsCrs || CRS.EPSG3857;\n\n const methods = {\n addLayer(layer) {\n if (layer.layerType !== undefined) {\n if (blueprint.layerControl === undefined) {\n blueprint.layersToAdd.push(layer);\n } else {\n const exist = blueprint.layersInControl.find(\n (l) =>\n l.leafletObject._leaflet_id ===\n layer.leafletObject._leaflet_id\n );\n if (!exist) {\n blueprint.layerControl.addLayer(layer);\n blueprint.layersInControl.push(layer);\n }\n }\n }\n if (layer.visible !== false) {\n blueprint.leafletRef.addLayer(layer.leafletObject);\n }\n },\n removeLayer(layer) {\n if (layer.layerType !== undefined) {\n if (blueprint.layerControl === undefined) {\n blueprint.layersToAdd = blueprint.layersToAdd.filter(\n (l) => l.name !== layer.name\n );\n } else {\n blueprint.layerControl.removeLayer(layer.leafletObject);\n blueprint.layersInControl = blueprint.layersInControl.filter(\n (l) =>\n l.leafletObject._leaflet_id !==\n layer.leafletObject._leaflet_id\n );\n }\n }\n blueprint.leafletRef.removeLayer(layer.leafletObject);\n },\n\n registerLayerControl(lControlLayer) {\n blueprint.layerControl = lControlLayer;\n blueprint.layersToAdd.forEach((layer) => {\n blueprint.layerControl.addLayer(layer);\n });\n blueprint.layersToAdd = [];\n\n registerControl(lControlLayer);\n },\n\n registerControl(lControl) {\n blueprint.leafletRef.addControl(lControl.leafletObject);\n },\n\n setZoom(newVal) {\n const zoom = blueprint.leafletRef.getZoom();\n if (newVal !== zoom) {\n blueprint.leafletRef.setZoom(newVal, {\n animate: props.noBlockingAnimations ? false : null,\n });\n }\n },\n\n setPaddingBottomRight(newVal) {\n blueprint.paddingBottomRight = newVal;\n },\n setPaddingTopLeft(newVal) {\n blueprint.paddingTopLeft = newVal;\n },\n setPadding(newVal) {\n blueprint.padding = newVal;\n },\n setCrs(newVal) {\n const prevBounds = blueprint.leafletRef.getBounds();\n blueprint.leafletRef.options.crs = newVal;\n blueprint.leafletRef.fitBounds(prevBounds, {\n animate: false,\n padding: [0, 0],\n });\n },\n fitBounds(bounds) {\n blueprint.leafletRef.fitBounds(bounds, {\n animate: this.noBlockingAnimations ? false : null,\n });\n },\n setBounds(newVal) {\n if (!newVal) {\n return;\n }\n const newBounds = latLngBounds(newVal);\n if (!newBounds.isValid()) {\n return;\n }\n const oldBounds =\n blueprint.lastSetBounds || blueprint.leafletRef.getBounds();\n const boundsChanged = !oldBounds.equals(newBounds, 0); // set maxMargin to 0 - check exact equals\n if (boundsChanged) {\n blueprint.lastSetBounds = newBounds;\n blueprint.leafletRef.fitBounds(newBounds, this.fitBoundsOptions);\n }\n },\n\n setCenter(newVal) {\n if (newVal == null) {\n return;\n }\n const newCenter = latLng(newVal);\n const oldCenter =\n blueprint.lastSetCenter || blueprint.leafletRef.getCenter();\n if (\n oldCenter.lat !== newCenter.lat ||\n oldCenter.lng !== newCenter.lng\n ) {\n blueprint.lastSetCenter = newCenter;\n blueprint.leafletRef.panTo(newCenter, {\n animate: this.noBlockingAnimations ? false : null,\n });\n }\n },\n };\n\n updateLeafletWrapper(addLayer, methods.addLayer);\n updateLeafletWrapper(removeLayer, methods.removeLayer);\n updateLeafletWrapper(registerControl, methods.registerControl);\n updateLeafletWrapper(registerLayerControl, methods.registerLayerControl);\n\n blueprint.leafletRef = map(root.value, options);\n\n propsBinder(methods, blueprint.leafletRef, props);\n const listeners = remapEvents(context.attrs);\n\n blueprint.leafletRef.on(\n \"moveend\",\n debounce(eventHandlers.moveEndHandler, 100)\n );\n blueprint.leafletRef.on(\"overlayadd\", eventHandlers.overlayAddHandler);\n blueprint.leafletRef.on(\n \"overlayremove\",\n eventHandlers.overlayRemoveHandler\n );\n DomEvent.on(blueprint.leafletRef, listeners);\n blueprint.ready = true;\n nextTick(() => context.emit(\"ready\", blueprint.leafletRef));\n });\n\n onBeforeUnmount(() => {\n if (blueprint.leafletRef) {\n blueprint.leafletRef.remove();\n }\n });\n\n const leafletObject = computed(() => blueprint.leafletRef);\n const ready = computed(() => blueprint.ready);\n return { root, ready, leafletObject };\n },\n render() {\n return h(\n \"div\",\n { style: { width: \"100%\", height: \"100%\" }, ref: \"root\" },\n this.ready ? this.$slots.default() : {}\n );\n },\n};\n\nscript$d.__file = \"src/components/LMap.vue\";\n\nconst props$h = {\n ...props$1,\n pane: {\n type: String,\n default: \"markerPane\",\n },\n draggable: {\n type: Boolean,\n custom: true,\n default: false,\n },\n latLng: {\n type: [Object, Array],\n custom: true,\n default: null,\n },\n icon: {\n type: [Object],\n default: () => undefined,\n custom: false,\n },\n zIndexOffset: {\n type: Number,\n custom: false,\n default: null,\n },\n};\n\nconst setup$g = (props, leafletRef, context) => {\n const { options: layerOptions, methods: layerMethods } = setup$1(\n props,\n leafletRef,\n context\n );\n const options = {\n ...layerOptions,\n ...props,\n };\n\n const methods = {\n ...layerMethods,\n setDraggable(value) {\n if (leafletRef.value.dragging) {\n value\n ? leafletRef.value.dragging.enable()\n : leafletRef.value.dragging.disable();\n }\n },\n latLngSync(event) {\n context.emit(\"update:latLng\", event.latlng);\n context.emit(\"update:lat-lng\", event.latlng);\n },\n setLatLng(newVal) {\n if (newVal == null) {\n return;\n }\n\n if (leafletRef.value) {\n const oldLatLng = leafletRef.value.getLatLng();\n if (!oldLatLng || !oldLatLng.equals(newVal)) {\n leafletRef.value.setLatLng(newVal);\n }\n }\n },\n };\n return { options, methods };\n};\n\n/**\n * Marker component, lets you add and personalize markers on the map\n */\nvar script$e = {\n name: \"LMarker\",\n props: props$h,\n setup(props, context) {\n const leafletRef = ref({});\n const ready = ref(false);\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const addLayer = inject(\"addLayer\");\n\n provide(\"canSetParentHtml\", () => !!leafletRef.value.getElement());\n provide(\n \"setParentHtml\",\n (html) => (leafletRef.value.getElement().innerHTML = html)\n );\n provide(\n \"setIcon\",\n (newIcon) => leafletRef.value.setIcon && leafletRef.value.setIcon(newIcon)\n );\n const { options, methods } = setup$g(props, leafletRef, context);\n if (options.icon === undefined) {\n // If the options objection has a property named 'icon', then Leaflet will overwrite\n // the default icon with it for the marker, _even if it is undefined_.\n // This leads to the issue discussed in https://github.com/vue-leaflet/vue-leaflet/issues/130\n delete options.icon;\n }\n\n onMounted(async () => {\n const { marker, DomEvent } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n leafletRef.value = marker(props.latLng, options);\n\n const listeners = remapEvents(context.attrs);\n DomEvent.on(leafletRef.value, listeners);\n\n leafletRef.value.on(\"move\", debounce(methods.latLngSync, 100));\n propsBinder(methods, leafletRef.value, props);\n addLayer({\n ...props,\n ...methods,\n leafletObject: leafletRef.value,\n });\n ready.value = true;\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n\n return { ready, leafletObject: leafletRef };\n },\n render() {\n return render(this.ready, this.$slots);\n },\n};\n\nscript$e.__file = \"src/components/LMarker.vue\";\n\nconst props$i = {\n ...props$3,\n latLngs: {\n type: Array,\n default: () => [],\n },\n smoothFactor: {\n type: Number,\n custom: true,\n default: 1.0,\n },\n noClip: {\n type: Boolean,\n custom: true,\n default: false,\n },\n};\n\nconst setup$h = (props, leafletRef, context) => {\n const { options: pathOptions, methods: pathMethods } = setup$3(\n props,\n leafletRef,\n context\n );\n const options = {\n ...pathOptions,\n ...props,\n };\n\n const methods = {\n ...pathMethods,\n setSmoothFactor(smoothFactor) {\n leafletRef.value.setStyle({ smoothFactor });\n },\n setNoClip(noClip) {\n leafletRef.value.setStyle({ noClip });\n },\n addLatLng(latLng) {\n leafletRef.value.addLatLng(latLng);\n },\n };\n return { options, methods };\n};\n\nconst props$j = {\n ...props$i,\n};\n\nconst setup$i = (props, leafletRef, context) => {\n const { options: polylineOptions, methods: polylineMethods } = setup$h(\n props,\n leafletRef,\n context\n );\n const options = {\n ...polylineOptions,\n ...props,\n };\n\n const methods = {\n ...polylineMethods,\n toGeoJSON(precision) {\n return leafletRef.value.toGeoJSON(precision);\n },\n };\n\n return { options, methods };\n};\n\n/**\n * Polygon component, lets you add and customize polygon regions on the map\n */\nvar script$f = {\n name: \"LPolygon\",\n props: props$j,\n setup(props, context) {\n const leafletRef = ref({});\n const ready = ref(false);\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const addLayer = inject(\"addLayer\");\n\n const { options, methods } = setup$i(props, leafletRef, context);\n\n onMounted(async () => {\n const { polygon, DomEvent } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n\n leafletRef.value = polygon(props.latLngs, options);\n\n const listeners = remapEvents(context.attrs);\n DomEvent.on(leafletRef.value, listeners);\n\n propsBinder(methods, leafletRef.value, props);\n\n addLayer({\n ...props,\n ...methods,\n leafletObject: leafletRef.value,\n });\n ready.value = true;\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n\n return { ready, leafletObject: leafletRef };\n },\n render() {\n return render(this.ready, this.$slots);\n },\n};\n\nscript$f.__file = \"src/components/LPolygon.vue\";\n\n/**\n * Polyline component, lets you add and personalize polylines on the map\n */\nvar script$g = {\n name: \"LPolyline\",\n props: props$i,\n setup(props, context) {\n const leafletRef = ref({});\n const ready = ref(false);\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const addLayer = inject(\"addLayer\");\n\n const { options, methods } = setup$h(props, leafletRef, context);\n\n onMounted(async () => {\n const { polyline, DomEvent } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n\n leafletRef.value = polyline(props.latLngs, options);\n\n const listeners = remapEvents(context.attrs);\n DomEvent.on(leafletRef.value, listeners);\n\n propsBinder(methods, leafletRef.value, props);\n\n addLayer({\n ...props,\n ...methods,\n leafletObject: leafletRef.value,\n });\n ready.value = true;\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n return { ready, leafletObject: leafletRef };\n },\n render() {\n return render(this.ready, this.$slots);\n },\n};\n\nscript$g.__file = \"src/components/LPolyline.vue\";\n\nconst props$k = {\n ...props,\n content: {\n type: String,\n default: null,\n },\n};\n\nconst setup$j = (props, leafletRef) => {\n const { options, methods: componentMethods } = setup(props);\n const methods = {\n ...componentMethods,\n setContent(newVal) {\n if (leafletRef.value && newVal !== null && newVal !== undefined) {\n leafletRef.value.setContent(newVal);\n }\n },\n };\n return { options, methods };\n};\n\nconst render$2 = (slots) => {\n if (slots.default) {\n return h(\"div\", { ref: \"root\" }, slots.default());\n }\n return null;\n};\n\nconst props$l = {\n ...props$k,\n latLng: {\n type: [Object, Array],\n default: () => [],\n },\n};\n\nconst setup$k = (props, leafletRef) => {\n const { options, methods } = setup$j(props, leafletRef);\n const unbindPopup = inject(\"unbindPopup\");\n\n onBeforeUnmount(() => {\n unbindPopup();\n });\n\n return { options, methods };\n};\n\n/**\n * Display a popup on the map\n */\nvar script$h = {\n name: \"LPopup\",\n props: props$l,\n setup(props, context) {\n const leafletRef = ref({});\n const root = ref(null);\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const bindPopup = inject(\"bindPopup\");\n\n const { options, methods } = setup$k(props, leafletRef);\n\n onMounted(async () => {\n const { popup, DomEvent } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n\n leafletRef.value = popup(options);\n\n if (props.latLng !== undefined) {\n leafletRef.value.setLatLng(props.latLng);\n }\n\n propsBinder(methods, leafletRef.value, props);\n const listeners = remapEvents(context.attrs);\n DomEvent.on(leafletRef.value, listeners);\n leafletRef.value.setContent(props.content || root.value);\n bindPopup({ leafletObject: leafletRef.value });\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n return { root, leafletObject: leafletRef };\n },\n render() {\n return render$2(this.$slots);\n },\n};\n\nscript$h.__file = \"src/components/LPopup.vue\";\n\nconst props$m = {\n ...props$j,\n bounds: {\n type: Array,\n default: undefined,\n },\n};\n\nconst setup$l = (props, leafletRef, context) => {\n const { options: polygonOptions, methods: polygonMethods } = setup$i(\n props,\n leafletRef,\n context\n );\n const options = {\n ...polygonOptions,\n ...props,\n };\n\n const methods = {\n ...polygonMethods,\n setBounds(latLngBounds) {\n leafletRef.value.setBounds(latLngBounds);\n },\n setLatLngs(latLngs) {\n // Calling setLatLngs on a Leaflet rectangle will convert it\n // to a polygon. So instead, we call setBounds here to ensure\n // that the rectangle remains a rectangle, defined by the\n // bounds of the points in the latLngs array.\n leafletRef.value.setBounds(latLngs);\n },\n };\n\n return { options, methods };\n};\n\n/**\n * Rectangle component, lets you add and customize rectangular regions on the map\n */\nvar script$i = {\n name: \"LRectangle\",\n props: props$m,\n setup(props, context) {\n const leafletRef = ref({});\n const ready = ref(false);\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const addLayer = inject(\"addLayer\");\n\n const { options, methods } = setup$l(props, leafletRef, context);\n\n onMounted(async () => {\n const { rectangle, latLngBounds, DomEvent } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n\n const bounds =\n props.bounds && props.bounds.length\n ? latLngBounds(props.bounds)\n : latLngBounds(props.latLngs);\n leafletRef.value = rectangle(bounds, options);\n\n const listeners = remapEvents(context.attrs);\n DomEvent.on(leafletRef.value, listeners);\n\n propsBinder(methods, leafletRef.value, props);\n\n addLayer({\n ...props,\n ...methods,\n leafletObject: leafletRef.value,\n });\n ready.value = true;\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n\n return { ready, leafletObject: leafletRef };\n },\n render() {\n return render(this.ready, this.$slots);\n },\n};\n\nscript$i.__file = \"src/components/LRectangle.vue\";\n\nconst props$n = {\n ...props$e,\n tms: {\n type: Boolean,\n default: false,\n },\n subdomains: {\n type: String,\n default: \"abc\",\n },\n detectRetina: {\n type: Boolean,\n default: false,\n },\n url: {\n type: String,\n default: null,\n },\n};\n\nconst setup$m = (props, leafletRef) => {\n const {\n options: gridLayerOptions,\n methods: gridLayerMethods,\n } = setup$e(props, leafletRef);\n const options = {\n ...gridLayerOptions,\n tms: props.tms,\n subdomains: props.subdomains,\n detectRetina: props.detectRetina,\n };\n return {\n options,\n methods: {\n ...gridLayerMethods,\n },\n };\n};\n\nvar script$j = {\n props: props$n,\n setup(props, context) {\n const leafletRef = ref({});\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const addLayer = inject(\"addLayer\");\n\n const { options, methods } = setup$m(props, leafletRef);\n\n onMounted(async () => {\n const { tileLayer, DomEvent } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n leafletRef.value = tileLayer(props.url, options);\n\n const listeners = remapEvents(context.attrs);\n DomEvent.on(leafletRef.value, listeners);\n\n propsBinder(methods, leafletRef.value, props);\n addLayer({\n ...props,\n ...methods,\n leafletObject: leafletRef.value,\n });\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n\n return { leafletObject: leafletRef };\n },\n render() {\n return null;\n },\n};\n\nscript$j.__file = \"src/components/LTileLayer.vue\";\n\nconst props$o = {\n ...props$k,\n};\n\nconst setup$n = (props, leafletRef) => {\n const { options, methods } = setup$j(props, leafletRef);\n const unbindTooltip = inject(\"unbindTooltip\");\n\n onBeforeUnmount(() => {\n unbindTooltip();\n });\n\n return { options, methods };\n};\n\n/**\n * Display a tooltip on the map\n */\nvar script$k = {\n name: \"LTooltip\",\n props: props$o,\n setup(props, context) {\n const leafletRef = ref({});\n const root = ref(null);\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const bindTooltip = inject(\"bindTooltip\");\n\n const { options, methods } = setup$n(props, leafletRef);\n\n onMounted(async () => {\n const { tooltip, DomEvent } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n\n leafletRef.value = tooltip(options);\n\n propsBinder(methods, leafletRef.value, props);\n const listeners = remapEvents(context.attrs);\n DomEvent.on(leafletRef.value, listeners);\n leafletRef.value.setContent(props.content || root.value);\n bindTooltip({ leafletObject: leafletRef.value });\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n return { root, leafletObject: leafletRef };\n },\n render() {\n return render$2(this.$slots);\n },\n};\n\nscript$k.__file = \"src/components/LTooltip.vue\";\n\nconst props$p = {\n ...props$n,\n baseUrl: {\n type: String,\n default: null,\n required: true,\n },\n layers: {\n type: String,\n default: \"\",\n },\n styles: {\n type: String,\n default: \"\",\n },\n format: {\n type: String,\n default: \"image/jpeg\",\n },\n transparent: {\n type: Boolean,\n custom: false,\n },\n version: {\n type: String,\n default: \"1.1.1\",\n },\n crs: {\n default: null,\n },\n upperCase: {\n type: Boolean,\n default: false,\n },\n};\n\nconst setup$o = (props, leafletRef) => {\n const {\n options: tileLayerOptions,\n methods: tileLayerMethods,\n } = setup$m(props, leafletRef);\n const options = {\n ...tileLayerOptions,\n layers: props.layers,\n styles: props.styles,\n format: props.format,\n transparent: props.transparent,\n version: props.version,\n crs: props.crs,\n upperCase: props.upperCase,\n };\n return {\n options,\n methods: {\n ...tileLayerMethods,\n },\n };\n};\n\nvar script$l = {\n props: props$p,\n setup(props, context) {\n const leafletRef = ref({});\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const addLayer = inject(\"addLayer\");\n\n const { options, methods } = setup$o(props, leafletRef);\n\n onMounted(async () => {\n const { tileLayer, DomEvent } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n\n leafletRef.value = tileLayer.wms(props.baseUrl, options);\n\n const listeners = remapEvents(context.attrs);\n DomEvent.on(leafletRef.value, listeners);\n\n propsBinder(methods, leafletRef.value, props);\n addLayer({\n ...props,\n ...methods,\n leafletObject: leafletRef.value,\n });\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n return { leafletObject: leafletRef.value };\n },\n render() {\n return null;\n },\n};\n\nscript$l.__file = \"src/components/LWmsTileLayer.vue\";\n\nexport { script as LCircle, script$1 as LCircleMarker, script$2 as LControl, script$3 as LControlAttribution, script$4 as LControlLayers, script$5 as LControlScale, script$6 as LControlZoom, script$7 as LFeatureGroup, script$8 as LGeoJson, script$9 as LGridLayer, script$a as LIcon, script$b as LImageOverlay, script$c as LLayerGroup, script$d as LMap, script$e as LMarker, script$f as LPolygon, script$g as LPolyline, script$h as LPopup, script$i as LRectangle, script$j as LTileLayer, script$k as LTooltip, script$l as LWmsTileLayer };\n//# sourceMappingURL=vue-leaflet.esm.js.map\n","import script from \"./CustomMarker.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./CustomMarker.vue?vue&type=script&lang=ts&setup=true\"\n\nconst __exports__ = script;\n\nexport default __exports__","import script from \"./index.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./index.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./index.vue?vue&type=style&index=0&id=6b490f5d&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-6b490f5d\"]])\n\nexport default __exports__","import script from \"./index.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./index.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./index.vue?vue&type=style&index=0&id=4ddbe26a&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-4ddbe26a\"]])\n\nexport default __exports__","import { Chart, LegendItem } from 'chart.js'\n\nconst getOrCreateLegendList = (id: string): HTMLUListElement => {\n const legendContainer = document.getElementById(id)\n if (legendContainer) {\n let listContainer = legendContainer.querySelector('ul')\n if (!listContainer) {\n listContainer = document.createElement('ul')\n legendContainer.appendChild(listContainer)\n }\n return listContainer\n }\n throw new Error('No legend container')\n}\n\nexport const htmlLegendPlugin = {\n id: 'htmlLegend',\n afterUpdate(\n chart: Chart,\n args: Record,\n options: Record\n ): void {\n const ul = getOrCreateLegendList(options.containerID)\n while (ul.firstChild) {\n ul.firstChild.remove()\n }\n\n const legendItems = chart.options.plugins?.legend?.labels?.generateLabels\n ? chart.options.plugins?.legend?.labels?.generateLabels(chart)\n : []\n\n legendItems.forEach((item: LegendItem) => {\n const li = document.createElement('li')\n li.onclick = () => {\n chart.setDatasetVisibility(\n item.datasetIndex,\n !chart.isDatasetVisible(item.datasetIndex)\n )\n chart.update()\n }\n\n const checkBox = document.createElement('input')\n if (checkBox) {\n checkBox.type = 'checkbox'\n checkBox.id = item.text\n checkBox.checked = !item.hidden\n }\n\n const text = document.createTextNode(item.text)\n\n const boxSpan = document.createElement('span')\n if (boxSpan) {\n boxSpan.style.background = String(item.fillStyle)\n boxSpan.style.borderColor = String(item.strokeStyle)\n }\n\n li.appendChild(checkBox)\n li.appendChild(text)\n li.appendChild(boxSpan)\n ul.appendChild(li)\n })\n },\n}\n","import script from \"./index.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./index.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./index.vue?vue&type=style&index=0&id=79120018&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-79120018\"]])\n\nexport default __exports__","import script from \"./WorkoutNotes.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./WorkoutNotes.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./WorkoutNotes.vue?vue&type=style&index=0&id=028ad527&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-028ad527\"]])\n\nexport default __exports__","import script from \"./WorkoutSegments.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./WorkoutSegments.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./WorkoutSegments.vue?vue&type=style&index=0&id=6b8a27cd&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-6b8a27cd\"]])\n\nexport default __exports__","import script from \"./Workout.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Workout.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./Workout.vue?vue&type=style&index=0&id=85ac744a&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-85ac744a\"]])\n\nexport default __exports__","import script from \"./WorkoutsFilters.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./WorkoutsFilters.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./WorkoutsFilters.vue?vue&type=style&index=0&id=6c38593a&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-6c38593a\"]])\n\nexport default __exports__","import script from \"./WorkoutsList.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./WorkoutsList.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./WorkoutsList.vue?vue&type=style&index=0&id=3be47bc9&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-3be47bc9\"]])\n\nexport default __exports__","import script from \"./WorkoutsView.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./WorkoutsView.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./WorkoutsView.vue?vue&type=style&index=0&id=77e54012&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-77e54012\"]])\n\nexport default __exports__"],"names":["_hoisted_1","id","_hoisted_2","_hoisted_3","class","_hoisted_4","key","_hoisted_5","_hoisted_6","for","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","_hoisted_13","_hoisted_14","_hoisted_15","_hoisted_16","_hoisted_17","_hoisted_18","_hoisted_19","_hoisted_20","_hoisted_21","_hoisted_22","_hoisted_23","_hoisted_24","_hoisted_25","_hoisted_26","_hoisted_27","_createTextVNode","_hoisted_28","_hoisted_29","_hoisted_30","_hoisted_31","_hoisted_32","_hoisted_33","_hoisted_34","_hoisted_35","_hoisted_36","_hoisted_37","_defineComponent","name","props","authUser","sports","isCreation","type","Boolean","default","loading","workout","setup","__props","t","useI18n","store","useStore","router","useRouter","toRefs","translatedSports","computed","translateSports","value","sport_id","appConfig","getters","ROOT_STORE","fileSizeLimit","max_single_file_size","getReadableFileSize","gpx_limit_import","zipSizeLimit","max_zip_file_size","errorMessages","workoutForm","reactive","title","notes","workoutDate","workoutTime","workoutDurationHour","workoutDurationMinutes","workoutDurationSeconds","workoutDistance","withGpx","ref","with_gpx","gpxFile","formErrors","updateNotes","updateWithGpx","updateFile","event","target","files","formatWorkoutForm","workoutDateTime","formatWorkoutDate","getDateWithTZ","workout_date","timezone","duration","split","imperial_units","convertDistance","distance","parseFloat","toFixed","workout_time","formatPayload","payload","updateWorkout","dispatch","WORKOUTS_STORE","workoutId","data","errorMessage","commit","file","onCancel","push","params","go","invalidateForm","onMounted","onUnmounted","watch","async","newWorkout","previousWorkout","_ctx","_cache","_component_CustomTextArea","_resolveComponent","_component_ErrorMessage","_component_Loader","_component_Card","_openBlock","_createElementBlock","_normalizeClass","_unref","_createVNode","_withCtx","_toDisplayString","$t","content","_createElementVNode","errors","onSubmit","_withModifiers","checked","disabled","onClick","_createCommentVNode","_withDirectives","required","onInvalid","$event","_Fragment","_renderList","sport","translatedLabel","_vModelSelect","accept","onInput","_vModelText","placeholder","minlength","maxlength","pattern","min","step","input","onUpdateValue","_createBlock","message","_","__exports__","SPORTS_STORE","AUTH_USER_STORE","workoutData","WorkoutEdition","route","useRoute","onBeforeMount","newWorkoutId","_withScopeId","n","_pushScopeId","_popScopeId","workoutObject","emits","emit","downloadGpx","authApi","responseType","then","response","gpxFileUrl","window","URL","createObjectURL","Blob","gpxLink","document","createElement","href","setAttribute","body","appendChild","click","_component_SportImage","_component_router_link","inactive","previousUrl","$router","label","color","segmentId","to","nextUrl","recordType","records","find","record","record_type","directions","convertDegreeToDirection","angle","Math","floor","weather","useImperialUnits","getWindDirectionTitle","windBearing","_component_Distance","wind","unitFrom","digits","displayUnit","style","_normalizeStyle","transform","weatherStart","weatherEnd","src","icon","alt","Number","temperature","humidity","WeatherWind","withPause","pauses","moving","WorkoutRecord","strong","aveSpeed","speed","maxSpeed","maxAlt","minAlt","ascent","descent","WorkoutWeather","$","element","tagName","Array","from","getElementsByTagName","nodeVal","node","normalize","textContent","get1","callback","result","length","get","properties","val1","val","$num","isNaN","num1","getMulti","propertyNames","property","isElement","nodeType","getLineStyle","lineStyle","Object","assign","stroke","opacity","width","getExtensions","values","child","childNodes","abbreviateName","nodeName","concat","parseNumeric","includes","num","coordPair$1","ll","getAttribute","time","coordinates","extendedValues","extractProperties","extensions","getElementsByTagNameNS","parentNode","replace","links","map","link","getPoints$1","pointname","pts","line","times","i","c","plural","fill","getRoute","_gpxType","geometry","getTrack","segments","track","extractedLines","segment","multi","coordinateProperties","entries","getPoint","pair","gpxGen","feature","waypoint","point","gpx","features","debounce","fn","timeout","args","context","this","clearTimeout","setTimeout","apply","capitalizeFirstLetter","string","charAt","toUpperCase","slice","propsBinder","methods","leafletElement","setMethodName","newVal","oldVal","remapEvents","contextAttrs","attrName","startsWith","eventName","toLocaleLowerCase","resetWebpackIcon","Icon","modules","Promise","all","Default","prototype","_getIconUrl","mergeOptions","iconRetinaUrl","iconUrl","shadowUrl","provideLeafletWrapper","methodName","wrapped","console","warn","wrapper","updateLeafletWrapper","leafletMethod","WINDOW_OR_GLOBAL","self","g","global","undefined","GLOBAL_LEAFLET_OPT","options","props$1","pane","String","attribution","custom","layerType","visible","setup$1","leafletRef","addLayer","removeLayer","componentOptions","componentMethods","addThisLayer","leafletObject","removeThisLayer","setAttribution","old","attributionControl","$parent","removeAttribution","addAttribution","setName","setLayerType","setVisible","isVisible","bindPopup","bindTooltip","unbindTooltip","tooltip","getTooltip","unbindPopup","popup","getPopup","updateVisibleProp","render","ready","slots","h","display","props$2","interactive","bubblingMouseEvents","props$3","weight","lineCap","lineJoin","dashArray","dashOffset","fillColor","fillOpacity","fillRule","className","props$4","latLng","radius","props$6","position","setup$6","setPosition","remove","render$1","script$2","disableClickPropagation","disableScrollPropagation","root","useGlobalLeaflet","registerControl","Control","DomEvent","L","LControl","extend","onAdd","$slots","props$8","collapsed","autoZIndex","hideSingleBase","sortLayers","sortFunction","Function","setup$8","controlOptions","layer","addBaseLayer","addOverlay","script$4","registerLayerControl","control","layers","props$b","setup$b","layerOptions","layerMethods","props$d","geojson","setup$d","layerGroupMethods","setGeojson","clearLayers","addData","getGeoJSONData","toGeoJSON","getBounds","script$8","geoJSON","listeners","attrs","on","props$e","zIndex","tileSize","noWrap","minZoom","maxZoom","setup$e","props$f","iconSize","iconAnchor","popupAnchor","tooltipAnchor","shadowRetinaUrl","shadowSize","shadowAnchor","bgPos","script$a","canSetParentHtml","setParentHtml","setIcon","onDomEvent","offDomEvent","divIcon","iconObject","createIcon","el","recreationNeeded","htmlSwapNeeded","elHtml","innerHTML","html","scheduleCreateIcon","scheduleHtmlSwap","setIconUrl","setIconRetinaUrl","setIconSize","setIconAnchor","setPopupAnchor","setTooltipAnchor","setShadowUrl","setShadowRetinaUrl","setShadowAnchor","setBgPos","setClassName","setHtml","lDivIcon","lIcon","off","observer","MutationObserver","observe","attributes","childList","characterData","subtree","script$c","layerGroup","script$d","center","bounds","maxBounds","zoom","paddingBottomRight","paddingTopLeft","padding","worldCopyJump","crs","maxBoundsViscosity","inertia","inertiaDeceleration","inertiaMaxSpeed","easeLinearity","zoomAnimation","zoomAnimationThreshold","fadeAnimation","markerZoomAnimation","noBlockingAnimations","blueprint","layersToAdd","layersInControl","eventHandlers","moveEndHandler","getZoom","getCenter","overlayAddHandler","e","l","overlayRemoveHandler","CRS","latLngBounds","beforeMapMount","error","optionsCrs","EPSG3857","layerControl","exist","_leaflet_id","filter","lControlLayer","forEach","lControl","addControl","setZoom","animate","setPaddingBottomRight","setPaddingTopLeft","setPadding","setCrs","prevBounds","fitBounds","setBounds","newBounds","isValid","oldBounds","lastSetBounds","boundsChanged","equals","fitBoundsOptions","setCenter","newCenter","oldCenter","lastSetCenter","lat","lng","panTo","height","props$h","draggable","zIndexOffset","setup$g","setDraggable","dragging","enable","disable","latLngSync","latlng","setLatLng","oldLatLng","getLatLng","script$e","getElement","newIcon","marker","props$i","latLngs","smoothFactor","noClip","props$j","props$k","props$n","tms","subdomains","detectRetina","url","setup$m","gridLayerOptions","gridLayerMethods","script$j","tileLayer","markerCoordinates","isStart","latitude","LMarker","longitude","LIcon","workoutMap","geoJson","getGeoJson","startMarkerCoordinates","chartData","endMarkerCoordinates","isFullscreen","gpxContent","jsonData","DOMParser","parseFromString","resetZoom","toggleFullscreen","_component_VFullscreen","modelValue","LMap","ref_key","onReady","LControlLayers","LTileLayer","getApiUrl","map_attribution","LGeoJson","LLayerGroup","CustomMarker","displaySegment","displayModal","getWorkoutObject","getWorkoutObjectUrl","previous_workout","next_workout","urls","ave_speed","max_alt","max_speed","min_alt","segment_id","weather_end","weather_start","updateDisplayModal","deleteWorkout","newSegmentId","_component_Modal","onConfirmAction","onCancelAction","WorkoutCardTitle","onDisplayModal","WorkoutMap","WorkoutData","getOrCreateLegendList","legendContainer","getElementById","listContainer","querySelector","Error","htmlLegendPlugin","afterUpdate","chart","ul","containerID","firstChild","legendItems","plugins","legend","labels","generateLabels","item","li","onclick","setDatasetVisibility","datasetIndex","isDatasetVisible","update","checkBox","text","hidden","createTextNode","boxSpan","background","fillStyle","borderColor","strokeStyle","displayDistance","beginElevationAtZero","datasets","getDatasets","fromKmUnit","getUnitTo","fromMUnit","distance_labels","duration_labels","JSON","parse","stringify","elevation","responsive","maintainAspectRatio","animation","layout","top","scales","grid","drawOnChartArea","ticks","count","formatDuration","ySpeed","yElevation","beginAtZero","elements","pointStyle","pointRadius","datalabels","interaction","intersect","mode","callbacks","dataset","formattedValue","yAxisID","tooltipItems","emitCoordinates","dataIndex","htmlLegend","lineChartProps","useLineChart","updateDisplayDistance","Date","toISOString","substr","emitEmptyCoordinates","units","defaultTarget","LineChart","_mergeProps","onMouseleave","_isRef","index","workout_id","updateCoordinates","WorkoutDetail","WorkoutChart","onGetCoordinates","WorkoutSegments","WorkoutNotes","NotFound","toUnit","query","handleFilterChange","onFilter","path","onClearFilter","newQuery","$route","onChange","s","sports_list","distance_from","distance_to","duration_from","duration_to","ave_speed_from","ave_speed_to","max_speed_from","max_speed_to","user","orderByList","workouts","pagination","getWorkoutsQuery","hoverWorkoutId","loadWorkouts","getConvertedPayload","reloadWorkouts","queryParam","queryValue","workoutQuery","getQuery","defaultOrder","defaultSort","keys","k","workoutsPayloadKeys","convertedPayload","entry","match","onHover","toLowerCase","total","FilterSelects","sort","sortList","order_by","onUpdateSelect","Pagination","capitalize","getSportLabel","getSportColor","onMouseover","StaticMap","format","NoWorkouts","hiddenFilters","toggleFilters","username","WorkoutsFilters","WorkoutsList"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/workouts.02fe5945.js","mappings":"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","sources":["webpack://fittrackee_client/./node_modules/vue-loader/dist/index.js","webpack://fittrackee_client/./src/components/Workout/WorkoutEdition.vue","webpack://fittrackee_client/./src/views/workouts/AddWorkout.vue","webpack://fittrackee_client/./src/views/workouts/EditWorkout.vue","webpack://fittrackee_client/./src/components/Workout/WorkoutDetail/WorkoutCardTitle.vue","webpack://fittrackee_client/./src/components/Workout/WorkoutDetail/WorkoutRecord.vue","webpack://fittrackee_client/./src/utils/weather.ts","webpack://fittrackee_client/./src/components/Workout/WorkoutDetail/WeatherWind.vue","webpack://fittrackee_client/./src/components/Workout/WorkoutDetail/WorkoutWeather.vue","webpack://fittrackee_client/./src/components/Workout/WorkoutDetail/WorkoutData.vue","webpack://fittrackee_client/./node_modules/@tmcw/togeojson/dist/togeojson.es.mjs","webpack://fittrackee_client/./node_modules/@vue-leaflet/vue-leaflet/dist/vue-leaflet.esm.js","webpack://fittrackee_client/./src/components/Workout/WorkoutDetail/WorkoutMap/CustomMarker.vue","webpack://fittrackee_client/./src/components/Workout/WorkoutDetail/WorkoutMap/index.vue","webpack://fittrackee_client/./src/components/Workout/WorkoutDetail/index.vue","webpack://fittrackee_client/./src/components/Workout/WorkoutDetail/WorkoutChart/legend.ts","webpack://fittrackee_client/./src/components/Workout/WorkoutDetail/WorkoutChart/index.vue","webpack://fittrackee_client/./src/components/Workout/WorkoutDetail/WorkoutNotes.vue","webpack://fittrackee_client/./src/components/Workout/WorkoutDetail/WorkoutSegments.vue","webpack://fittrackee_client/./src/views/workouts/Workout.vue","webpack://fittrackee_client/./src/components/Workouts/WorkoutsFilters.vue","webpack://fittrackee_client/./src/components/Workouts/WorkoutsList.vue","webpack://fittrackee_client/./src/views/workouts/WorkoutsView.vue"],"sourcesContent":["import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, renderList as _renderList, Fragment as _Fragment, vModelSelect as _vModelSelect, withDirectives as _withDirectives, vModelText as _vModelText, resolveComponent as _resolveComponent, createVNode as _createVNode, createBlock as _createBlock, withModifiers as _withModifiers, normalizeClass as _normalizeClass, withCtx as _withCtx, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-031d018d\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"workout-form\" }\nconst _hoisted_2 = [\"onSubmit\"]\nconst _hoisted_3 = { class: \"form-items\" }\nconst _hoisted_4 = {\n key: 0,\n class: \"form-item-radio\"\n}\nconst _hoisted_5 = [\"checked\", \"disabled\"]\nconst _hoisted_6 = { for: \"withGpx\" }\nconst _hoisted_7 = [\"checked\", \"disabled\"]\nconst _hoisted_8 = { for: \"withoutGpx\" }\nconst _hoisted_9 = { class: \"form-item\" }\nconst _hoisted_10 = [\"disabled\"]\nconst _hoisted_11 = [\"value\"]\nconst _hoisted_12 = {\n key: 1,\n class: \"form-item\"\n}\nconst _hoisted_13 = { for: \"gpxFile\" }\nconst _hoisted_14 = [\"disabled\"]\nconst _hoisted_15 = { class: \"files-help info-box\" }\nconst _hoisted_16 = {\n key: 2,\n class: \"form-item\"\n}\nconst _hoisted_17 = { for: \"title\" }\nconst _hoisted_18 = [\"required\", \"disabled\"]\nconst _hoisted_19 = { key: 3 }\nconst _hoisted_20 = { class: \"workout-date-duration\" }\nconst _hoisted_21 = { class: \"form-item\" }\nconst _hoisted_22 = { class: \"workout-date-time\" }\nconst _hoisted_23 = [\"disabled\"]\nconst _hoisted_24 = [\"disabled\"]\nconst _hoisted_25 = { class: \"form-item\" }\nconst _hoisted_26 = [\"disabled\"]\nconst _hoisted_27 = /*#__PURE__*/_createTextVNode(\" : \")\nconst _hoisted_28 = [\"disabled\"]\nconst _hoisted_29 = /*#__PURE__*/_createTextVNode(\" : \")\nconst _hoisted_30 = [\"disabled\"]\nconst _hoisted_31 = { class: \"form-item\" }\nconst _hoisted_32 = [\"disabled\"]\nconst _hoisted_33 = { class: \"form-item\" }\nconst _hoisted_34 = { key: 1 }\nconst _hoisted_35 = {\n key: 2,\n class: \"form-buttons\"\n}\nconst _hoisted_36 = [\"disabled\"]\nconst _hoisted_37 = [\"onClick\"]\n\nimport {\n ComputedRef,\n computed,\n reactive,\n ref,\n toRefs,\n watch,\n onMounted,\n onUnmounted,\n withDefaults,\n } from 'vue'\n import { useI18n } from 'vue-i18n'\n import { useRouter } from 'vue-router'\n\n import { ROOT_STORE, WORKOUTS_STORE } from '@/store/constants'\n import { TAppConfig } from '@/types/application'\n import { ISport } from '@/types/sports'\n import { IAuthUserProfile } from '@/types/user'\n import { IWorkout, IWorkoutForm } from '@/types/workouts'\n import { useStore } from '@/use/useStore'\n import { formatWorkoutDate, getDateWithTZ } from '@/utils/dates'\n import { getReadableFileSize } from '@/utils/files'\n import { translateSports } from '@/utils/sports'\n import { convertDistance } from '@/utils/units'\n\n interface Props {\n authUser: IAuthUserProfile\n sports: ISport[]\n isCreation?: boolean\n loading?: boolean\n workout?: IWorkout\n }\n \nexport default /*#__PURE__*/_defineComponent({\n name: 'WorkoutEdition',\n props: {\n authUser: null,\n sports: null,\n isCreation: { type: Boolean, default: false },\n loading: { type: Boolean, default: false },\n workout: { default: () => ({} as IWorkout) }\n },\n setup(__props: any) {\n\nconst props = __props as { authUser: IAuthUserProfile, sports: ISport[], isCreation: boolean, loading: boolean, workout: IWorkout }\n\n \n\n const { t } = useI18n()\n const store = useStore()\n const router = useRouter()\n\n const { authUser, workout, isCreation, loading } = toRefs(props)\n const translatedSports: ComputedRef = computed(() =>\n translateSports(\n props.sports,\n t,\n 'is_active_for_user',\n workout.value.id ? [workout.value.sport_id] : []\n )\n )\n const appConfig: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.APP_CONFIG]\n )\n const fileSizeLimit = appConfig.value.max_single_file_size\n ? getReadableFileSize(appConfig.value.max_single_file_size)\n : ''\n const gpx_limit_import = appConfig.value.gpx_limit_import\n const zipSizeLimit = appConfig.value.max_zip_file_size\n ? getReadableFileSize(appConfig.value.max_zip_file_size)\n : ''\n const errorMessages: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.ERROR_MESSAGES]\n )\n const workoutForm = reactive({\n sport_id: '',\n title: '',\n notes: '',\n workoutDate: '',\n workoutTime: '',\n workoutDurationHour: '',\n workoutDurationMinutes: '',\n workoutDurationSeconds: '',\n workoutDistance: '',\n })\n let withGpx = ref(\n props.workout.id ? props.workout.with_gpx : props.isCreation\n )\n let gpxFile: File | null = null\n const formErrors = ref(false)\n\n onMounted(() => {\n if (props.workout.id) {\n formatWorkoutForm(props.workout)\n }\n })\n\n function updateNotes(value: string) {\n workoutForm.notes = value\n }\n function updateWithGpx() {\n withGpx.value = !withGpx.value\n formErrors.value = false\n }\n function updateFile(event: Event & { target: HTMLInputElement }) {\n if (event.target.files) {\n gpxFile = event.target.files[0]\n }\n }\n function formatWorkoutForm(workout: IWorkout) {\n workoutForm.sport_id = `${workout.sport_id}`\n workoutForm.title = workout.title\n workoutForm.notes = workout.notes\n if (!workout.with_gpx) {\n const workoutDateTime = formatWorkoutDate(\n getDateWithTZ(workout.workout_date, props.authUser.timezone),\n 'yyyy-MM-dd'\n )\n const duration = workout.duration.split(':')\n workoutForm.workoutDistance = `${\n authUser.value.imperial_units\n ? convertDistance(workout.distance, 'km', 'mi', 2)\n : parseFloat(workout.distance.toFixed(2))\n }`\n workoutForm.workoutDate = workoutDateTime.workout_date\n workoutForm.workoutTime = workoutDateTime.workout_time\n workoutForm.workoutDurationHour = duration[0]\n workoutForm.workoutDurationMinutes = duration[1]\n workoutForm.workoutDurationSeconds = duration[2]\n }\n }\n function formatPayload(payload: IWorkoutForm) {\n payload.title = workoutForm.title\n payload.distance = authUser.value.imperial_units\n ? convertDistance(+workoutForm.workoutDistance, 'mi', 'km', 3)\n : +workoutForm.workoutDistance\n payload.duration =\n +workoutForm.workoutDurationHour * 3600 +\n +workoutForm.workoutDurationMinutes * 60 +\n +workoutForm.workoutDurationSeconds\n payload.workout_date = `${workoutForm.workoutDate} ${workoutForm.workoutTime}`\n }\n function updateWorkout() {\n const payload: IWorkoutForm = {\n sport_id: +workoutForm.sport_id,\n notes: workoutForm.notes,\n }\n if (props.workout.id) {\n if (props.workout.with_gpx) {\n payload.title = workoutForm.title\n } else {\n formatPayload(payload)\n }\n store.dispatch(WORKOUTS_STORE.ACTIONS.EDIT_WORKOUT, {\n workoutId: props.workout.id,\n data: payload,\n })\n } else {\n if (withGpx.value) {\n if (!gpxFile) {\n const errorMessage = 'workouts.NO_FILE_PROVIDED'\n store.commit(ROOT_STORE.MUTATIONS.SET_ERROR_MESSAGES, errorMessage)\n return\n }\n payload.file = gpxFile\n store.dispatch(WORKOUTS_STORE.ACTIONS.ADD_WORKOUT, payload)\n } else {\n formatPayload(payload)\n store.dispatch(WORKOUTS_STORE.ACTIONS.ADD_WORKOUT_WITHOUT_GPX, payload)\n }\n }\n }\n function onCancel() {\n if (props.workout.id) {\n router.push({\n name: 'Workout',\n params: { workoutId: props.workout.id },\n })\n } else {\n router.go(-1)\n }\n }\n function invalidateForm() {\n formErrors.value = true\n }\n\n onUnmounted(() => store.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES))\n\n watch(\n () => props.workout,\n async (\n newWorkout: IWorkout | undefined,\n previousWorkout: IWorkout | undefined\n ) => {\n if (newWorkout !== previousWorkout && newWorkout && newWorkout.id) {\n formatWorkoutForm(newWorkout)\n }\n }\n )\n\nreturn (_ctx: any,_cache: any) => {\n const _component_CustomTextArea = _resolveComponent(\"CustomTextArea\")!\n const _component_ErrorMessage = _resolveComponent(\"ErrorMessage\")!\n const _component_Loader = _resolveComponent(\"Loader\")!\n const _component_Card = _resolveComponent(\"Card\")!\n\n return (_openBlock(), _createElementBlock(\"div\", {\n id: \"workout-edition\",\n class: _normalizeClass([\"center-card with-margin\", { 'center-form': _unref(workout) && _unref(workout).with_gpx }])\n }, [\n _createVNode(_component_Card, null, {\n title: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t(`workouts.${_unref(isCreation) ? 'ADD' : 'EDIT'}_WORKOUT`)), 1)\n ]),\n content: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_1, [\n _createElementVNode(\"form\", {\n class: _normalizeClass({ errors: formErrors.value }),\n onSubmit: _withModifiers(updateWorkout, [\"prevent\"])\n }, [\n _createElementVNode(\"div\", _hoisted_3, [\n (_unref(isCreation))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_4, [\n _createElementVNode(\"div\", null, [\n _createElementVNode(\"input\", {\n id: \"withGpx\",\n type: \"radio\",\n checked: _unref(withGpx),\n disabled: _unref(loading),\n onClick: updateWithGpx\n }, null, 8, _hoisted_5),\n _createElementVNode(\"label\", _hoisted_6, _toDisplayString(_ctx.$t('workouts.WITH_GPX')), 1)\n ]),\n _createElementVNode(\"div\", null, [\n _createElementVNode(\"input\", {\n id: \"withoutGpx\",\n type: \"radio\",\n checked: !_unref(withGpx),\n disabled: _unref(loading),\n onClick: updateWithGpx\n }, null, 8, _hoisted_7),\n _createElementVNode(\"label\", _hoisted_8, _toDisplayString(_ctx.$t('workouts.WITHOUT_GPX')), 1)\n ])\n ]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_9, [\n _createElementVNode(\"label\", null, _toDisplayString(_ctx.$t('workouts.SPORT', 1)) + \": \", 1),\n _withDirectives(_createElementVNode(\"select\", {\n id: \"sport\",\n required: \"\",\n onInvalid: invalidateForm,\n disabled: _unref(loading),\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((workoutForm.sport_id) = $event))\n }, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(translatedSports), (sport) => {\n return (_openBlock(), _createElementBlock(\"option\", {\n value: sport.id,\n key: sport.id\n }, _toDisplayString(sport.translatedLabel), 9, _hoisted_11))\n }), 128))\n ], 40, _hoisted_10), [\n [_vModelSelect, workoutForm.sport_id]\n ])\n ]),\n (_unref(isCreation) && _unref(withGpx))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_12, [\n _createElementVNode(\"label\", _hoisted_13, _toDisplayString(_ctx.$t('workouts.GPX_FILE')) + \" \" + _toDisplayString(_ctx.$t('workouts.ZIP_ARCHIVE_DESCRIPTION')) + \": \", 1),\n _createElementVNode(\"input\", {\n id: \"gpxFile\",\n name: \"gpxFile\",\n type: \"file\",\n accept: \".gpx, .zip\",\n disabled: _unref(loading),\n required: \"\",\n onInvalid: invalidateForm,\n onInput: updateFile\n }, null, 40, _hoisted_14),\n _createElementVNode(\"div\", _hoisted_15, [\n _createElementVNode(\"div\", null, [\n _createElementVNode(\"strong\", null, _toDisplayString(_ctx.$t('workouts.GPX_FILE')) + \":\", 1),\n _createElementVNode(\"ul\", null, [\n _createElementVNode(\"li\", null, _toDisplayString(_ctx.$t('workouts.MAX_SIZE')) + \": \" + _toDisplayString(_unref(fileSizeLimit)), 1)\n ])\n ]),\n _createElementVNode(\"div\", null, [\n _createElementVNode(\"strong\", null, _toDisplayString(_ctx.$t('workouts.ZIP_ARCHIVE')) + \":\", 1),\n _createElementVNode(\"ul\", null, [\n _createElementVNode(\"li\", null, _toDisplayString(_ctx.$t('workouts.NO_FOLDER')), 1),\n _createElementVNode(\"li\", null, _toDisplayString(_ctx.$t('workouts.MAX_FILES')) + \": \" + _toDisplayString(_unref(gpx_limit_import)), 1),\n _createElementVNode(\"li\", null, _toDisplayString(_ctx.$t('workouts.MAX_SIZE')) + \": \" + _toDisplayString(_unref(zipSizeLimit)), 1)\n ])\n ])\n ])\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_16, [\n _createElementVNode(\"label\", _hoisted_17, _toDisplayString(_ctx.$t('workouts.TITLE')) + \": \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"title\",\n name: \"title\",\n type: \"text\",\n required: !_unref(isCreation),\n onInvalid: invalidateForm,\n disabled: _unref(loading),\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => ((workoutForm.title) = $event))\n }, null, 40, _hoisted_18), [\n [_vModelText, workoutForm.title]\n ])\n ])),\n (!_unref(withGpx))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_19, [\n _createElementVNode(\"div\", _hoisted_20, [\n _createElementVNode(\"div\", _hoisted_21, [\n _createElementVNode(\"label\", null, _toDisplayString(_ctx.$t('workouts.WORKOUT_DATE')) + \":\", 1),\n _createElementVNode(\"div\", _hoisted_22, [\n _withDirectives(_createElementVNode(\"input\", {\n id: \"workout-date\",\n name: \"workout-date\",\n type: \"date\",\n required: \"\",\n onInvalid: invalidateForm,\n disabled: _unref(loading),\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => ((workoutForm.workoutDate) = $event))\n }, null, 40, _hoisted_23), [\n [_vModelText, workoutForm.workoutDate]\n ]),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"workout-time\",\n name: \"workout-time\",\n class: \"workout-time\",\n type: \"time\",\n required: \"\",\n onInvalid: invalidateForm,\n disabled: _unref(loading),\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = ($event: any) => ((workoutForm.workoutTime) = $event))\n }, null, 40, _hoisted_24), [\n [_vModelText, workoutForm.workoutTime]\n ])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_25, [\n _createElementVNode(\"label\", null, _toDisplayString(_ctx.$t('workouts.DURATION')) + \":\", 1),\n _createElementVNode(\"div\", null, [\n _withDirectives(_createElementVNode(\"input\", {\n id: \"workout-duration-hour\",\n name: \"workout-duration-hour\",\n class: \"workout-duration\",\n type: \"text\",\n placeholder: \"HH\",\n minlength: \"1\",\n maxlength: \"2\",\n pattern: \"^([0-1]?[0-9]|2[0-3])$\",\n required: \"\",\n onInvalid: invalidateForm,\n disabled: _unref(loading),\n \"onUpdate:modelValue\": _cache[4] || (_cache[4] = ($event: any) => ((workoutForm.workoutDurationHour) = $event))\n }, null, 40, _hoisted_26), [\n [_vModelText, workoutForm.workoutDurationHour]\n ]),\n _hoisted_27,\n _withDirectives(_createElementVNode(\"input\", {\n id: \"workout-duration-minutes\",\n name: \"workout-duration-minutes\",\n class: \"workout-duration\",\n type: \"text\",\n pattern: \"^([0-5][0-9])$\",\n minlength: \"2\",\n maxlength: \"2\",\n placeholder: \"MM\",\n required: \"\",\n onInvalid: invalidateForm,\n disabled: _unref(loading),\n \"onUpdate:modelValue\": _cache[5] || (_cache[5] = ($event: any) => ((workoutForm.workoutDurationMinutes) = $event))\n }, null, 40, _hoisted_28), [\n [_vModelText, workoutForm.workoutDurationMinutes]\n ]),\n _hoisted_29,\n _withDirectives(_createElementVNode(\"input\", {\n id: \"workout-duration-seconds\",\n name: \"workout-duration-seconds\",\n class: \"workout-duration\",\n type: \"text\",\n pattern: \"^([0-5][0-9])$\",\n minlength: \"2\",\n maxlength: \"2\",\n placeholder: \"SS\",\n required: \"\",\n onInvalid: invalidateForm,\n disabled: _unref(loading),\n \"onUpdate:modelValue\": _cache[6] || (_cache[6] = ($event: any) => ((workoutForm.workoutDurationSeconds) = $event))\n }, null, 40, _hoisted_30), [\n [_vModelText, workoutForm.workoutDurationSeconds]\n ])\n ])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_31, [\n _createElementVNode(\"label\", null, _toDisplayString(_ctx.$t('workouts.DISTANCE')) + \" (\" + _toDisplayString(_unref(authUser).imperial_units ? 'mi' : 'km') + \"): \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n name: \"workout-distance\",\n type: \"number\",\n min: \"0\",\n step: \"0.001\",\n required: \"\",\n onInvalid: invalidateForm,\n disabled: _unref(loading),\n \"onUpdate:modelValue\": _cache[7] || (_cache[7] = ($event: any) => ((workoutForm.workoutDistance) = $event))\n }, null, 40, _hoisted_32), [\n [_vModelText, workoutForm.workoutDistance]\n ])\n ])\n ]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_33, [\n _createElementVNode(\"label\", null, _toDisplayString(_ctx.$t('workouts.NOTES')) + \": \", 1),\n _createVNode(_component_CustomTextArea, {\n name: \"notes\",\n input: workoutForm.notes,\n disabled: _unref(loading),\n onUpdateValue: updateNotes\n }, null, 8, [\"input\", \"disabled\"])\n ])\n ]),\n (_unref(errorMessages))\n ? (_openBlock(), _createBlock(_component_ErrorMessage, {\n key: 0,\n message: _unref(errorMessages)\n }, null, 8, [\"message\"]))\n : _createCommentVNode(\"\", true),\n (_unref(loading))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_34, [\n _createVNode(_component_Loader)\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_35, [\n _createElementVNode(\"button\", {\n class: \"confirm\",\n type: \"submit\",\n disabled: _unref(loading)\n }, _toDisplayString(_ctx.$t('buttons.SUBMIT')), 9, _hoisted_36),\n _createElementVNode(\"button\", {\n class: \"cancel\",\n onClick: _withModifiers(onCancel, [\"prevent\"])\n }, _toDisplayString(_ctx.$t('buttons.CANCEL')), 9, _hoisted_37)\n ]))\n ], 42, _hoisted_2)\n ])\n ]),\n _: 1\n })\n ], 2))\n}\n}\n\n})","import script from \"./WorkoutEdition.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./WorkoutEdition.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./WorkoutEdition.vue?vue&type=style&index=0&id=031d018d&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-031d018d\"]])\n\nexport default __exports__","import script from \"./AddWorkout.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AddWorkout.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import script from \"./EditWorkout.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./EditWorkout.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import script from \"./WorkoutCardTitle.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./WorkoutCardTitle.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./WorkoutCardTitle.vue?vue&type=style&index=0&id=4d9f9a8a&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-4d9f9a8a\"]])\n\nexport default __exports__","import script from \"./WorkoutRecord.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./WorkoutRecord.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./WorkoutRecord.vue?vue&type=style&index=0&id=1a5282f6&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-1a5282f6\"]])\n\nexport default __exports__","const directions = [\n 'N',\n 'NNE',\n 'NE',\n 'ENE',\n 'E',\n 'ESE',\n 'SE',\n 'SSE',\n 'S',\n 'SSW',\n 'SW',\n 'WSW',\n 'W',\n 'WNW',\n 'NW',\n 'NNW',\n]\n\nexport const convertDegreeToDirection = (angle: number): string => {\n const value = Math.floor(angle / 22.5 + 0.5)\n return directions[value % 16]\n}\n","import script from \"./WeatherWind.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./WeatherWind.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./WeatherWind.vue?vue&type=style&index=0&id=46a7c31c&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-46a7c31c\"]])\n\nexport default __exports__","import script from \"./WorkoutWeather.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./WorkoutWeather.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./WorkoutWeather.vue?vue&type=style&index=0&id=76e9ab62&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-76e9ab62\"]])\n\nexport default __exports__","import script from \"./WorkoutData.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./WorkoutData.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./WorkoutData.vue?vue&type=style&index=0&id=dc2fbc66&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-dc2fbc66\"]])\n\nexport default __exports__","function $(element, tagName) {\n return Array.from(element.getElementsByTagName(tagName));\n}\nfunction normalizeId(id) {\n return id[0] === \"#\" ? id : `#${id}`;\n}\nfunction $ns(element, tagName, ns) {\n return Array.from(element.getElementsByTagNameNS(ns, tagName));\n}\n/**\n * get the content of a text node, if any\n */\nfunction nodeVal(node) {\n node?.normalize();\n return (node && node.textContent) || \"\";\n}\n/**\n * Get one Y child of X, if any, otherwise null\n */\nfunction get1(node, tagName, callback) {\n const n = node.getElementsByTagName(tagName);\n const result = n.length ? n[0] : null;\n if (result && callback)\n callback(result);\n return result;\n}\nfunction get(node, tagName, callback) {\n const properties = {};\n if (!node)\n return properties;\n const n = node.getElementsByTagName(tagName);\n const result = n.length ? n[0] : null;\n if (result && callback) {\n return callback(result, properties);\n }\n return properties;\n}\nfunction val1(node, tagName, callback) {\n const val = nodeVal(get1(node, tagName));\n if (val && callback)\n return callback(val) || {};\n return {};\n}\nfunction $num(node, tagName, callback) {\n const val = parseFloat(nodeVal(get1(node, tagName)));\n if (isNaN(val))\n return undefined;\n if (val && callback)\n return callback(val) || {};\n return {};\n}\nfunction num1(node, tagName, callback) {\n const val = parseFloat(nodeVal(get1(node, tagName)));\n if (isNaN(val))\n return undefined;\n if (val && callback)\n callback(val);\n return val;\n}\nfunction getMulti(node, propertyNames) {\n const properties = {};\n for (const property of propertyNames) {\n val1(node, property, (val) => {\n properties[property] = val;\n });\n }\n return properties;\n}\nfunction isElement(node) {\n return node?.nodeType === 1;\n}\n\nfunction getLineStyle(node) {\n return get(node, \"line\", (lineStyle) => {\n const val = Object.assign({}, val1(lineStyle, \"color\", (color) => {\n return { stroke: `#${color}` };\n }), $num(lineStyle, \"opacity\", (opacity) => {\n return { \"stroke-opacity\": opacity };\n }), $num(lineStyle, \"width\", (width) => {\n // GPX width is in mm, convert to px with 96 px per inch\n return { \"stroke-width\": (width * 96) / 25.4 };\n }));\n return val;\n });\n}\n\nfunction getExtensions(node) {\n let values = [];\n if (node === null)\n return values;\n for (const child of Array.from(node.childNodes)) {\n if (!isElement(child))\n continue;\n const name = abbreviateName(child.nodeName);\n if (name === \"gpxtpx:TrackPointExtension\") {\n // loop again for nested garmin extensions (eg. \"gpxtpx:hr\")\n values = values.concat(getExtensions(child));\n }\n else {\n // push custom extension (eg. \"power\")\n const val = nodeVal(child);\n values.push([name, parseNumeric(val)]);\n }\n }\n return values;\n}\nfunction abbreviateName(name) {\n return [\"heart\", \"gpxtpx:hr\", \"hr\"].includes(name) ? \"heart\" : name;\n}\nfunction parseNumeric(val) {\n const num = parseFloat(val);\n return isNaN(num) ? val : num;\n}\n\nfunction coordPair$1(node) {\n const ll = [\n parseFloat(node.getAttribute(\"lon\") || \"\"),\n parseFloat(node.getAttribute(\"lat\") || \"\"),\n ];\n if (isNaN(ll[0]) || isNaN(ll[1])) {\n return null;\n }\n num1(node, \"ele\", (val) => {\n ll.push(val);\n });\n const time = get1(node, \"time\");\n return {\n coordinates: ll,\n time: time ? nodeVal(time) : null,\n extendedValues: getExtensions(get1(node, \"extensions\")),\n };\n}\n\nfunction extractProperties(node) {\n const properties = getMulti(node, [\n \"name\",\n \"cmt\",\n \"desc\",\n \"type\",\n \"time\",\n \"keywords\",\n ]);\n const extensions = Array.from(node.getElementsByTagNameNS(\"http://www.garmin.com/xmlschemas/GpxExtensions/v3\", \"*\"));\n for (const child of extensions) {\n if (child.parentNode?.parentNode === node) {\n properties[child.tagName.replace(\":\", \"_\")] = nodeVal(child);\n }\n }\n const links = $(node, \"link\");\n if (links.length) {\n properties.links = links.map((link) => Object.assign({ href: link.getAttribute(\"href\") }, getMulti(link, [\"text\", \"type\"])));\n }\n return properties;\n}\n\n/**\n * Extract points from a trkseg or rte element.\n */\nfunction getPoints$1(node, pointname) {\n const pts = $(node, pointname);\n const line = [];\n const times = [];\n const extendedValues = {};\n for (let i = 0; i < pts.length; i++) {\n const c = coordPair$1(pts[i]);\n if (!c) {\n continue;\n }\n line.push(c.coordinates);\n if (c.time)\n times.push(c.time);\n for (const [name, val] of c.extendedValues) {\n const plural = name === \"heart\" ? name : name.replace(\"gpxtpx:\", \"\") + \"s\";\n if (!extendedValues[plural]) {\n extendedValues[plural] = Array(pts.length).fill(null);\n }\n extendedValues[plural][i] = val;\n }\n }\n if (line.length < 2)\n return; // Invalid line in GeoJSON\n return {\n line: line,\n times: times,\n extendedValues: extendedValues,\n };\n}\n/**\n * Extract a LineString geometry from a rte\n * element.\n */\nfunction getRoute(node) {\n const line = getPoints$1(node, \"rtept\");\n if (!line)\n return;\n return {\n type: \"Feature\",\n properties: Object.assign({ _gpxType: \"rte\" }, extractProperties(node), getLineStyle(get1(node, \"extensions\"))),\n geometry: {\n type: \"LineString\",\n coordinates: line.line,\n },\n };\n}\nfunction getTrack(node) {\n const segments = $(node, \"trkseg\");\n const track = [];\n const times = [];\n const extractedLines = [];\n for (const segment of segments) {\n const line = getPoints$1(segment, \"trkpt\");\n if (line) {\n extractedLines.push(line);\n if (line.times && line.times.length)\n times.push(line.times);\n }\n }\n if (extractedLines.length === 0)\n return null;\n const multi = extractedLines.length > 1;\n const properties = Object.assign({ _gpxType: \"trk\" }, extractProperties(node), getLineStyle(get1(node, \"extensions\")), times.length\n ? {\n coordinateProperties: {\n times: multi ? times : times[0],\n },\n }\n : {});\n for (const line of extractedLines) {\n track.push(line.line);\n if (!properties.coordinateProperties) {\n properties.coordinateProperties = {};\n }\n const props = properties.coordinateProperties;\n const entries = Object.entries(line.extendedValues);\n for (let i = 0; i < entries.length; i++) {\n const [name, val] = entries[i];\n if (multi) {\n if (!props[name]) {\n props[name] = extractedLines.map((line) => new Array(line.line.length).fill(null));\n }\n props[name][i] = val;\n }\n else {\n props[name] = val;\n }\n }\n }\n return {\n type: \"Feature\",\n properties: properties,\n geometry: multi\n ? {\n type: \"MultiLineString\",\n coordinates: track,\n }\n : {\n type: \"LineString\",\n coordinates: track[0],\n },\n };\n}\n/**\n * Extract a point, if possible, from a given node,\n * which is usually a wpt or trkpt\n */\nfunction getPoint(node) {\n const properties = Object.assign(extractProperties(node), getMulti(node, [\"sym\"]));\n const pair = coordPair$1(node);\n if (!pair)\n return null;\n return {\n type: \"Feature\",\n properties,\n geometry: {\n type: \"Point\",\n coordinates: pair.coordinates,\n },\n };\n}\n/**\n * Convert GPX to GeoJSON incrementally, returning\n * a [Generator](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Iterators_and_Generators)\n * that yields output feature by feature.\n */\nfunction* gpxGen(node) {\n for (const track of $(node, \"trk\")) {\n const feature = getTrack(track);\n if (feature)\n yield feature;\n }\n for (const route of $(node, \"rte\")) {\n const feature = getRoute(route);\n if (feature)\n yield feature;\n }\n for (const waypoint of $(node, \"wpt\")) {\n const point = getPoint(waypoint);\n if (point)\n yield point;\n }\n}\n/**\n *\n * Convert a GPX document to GeoJSON. The first argument, `doc`, must be a GPX\n * document as an XML DOM - not as a string. You can get this using jQuery's default\n * `.ajax` function or using a bare XMLHttpRequest with the `.response` property\n * holding an XML DOM.\n *\n * The output is a JavaScript object of GeoJSON data, same as `.kml` outputs, with the\n * addition of a `_gpxType` property on each `LineString` feature that indicates whether\n * the feature was encoded as a route (`rte`) or track (`trk`) in the GPX document.\n */\nfunction gpx(node) {\n return {\n type: \"FeatureCollection\",\n features: Array.from(gpxGen(node)),\n };\n}\n\nconst EXTENSIONS_NS = \"http://www.garmin.com/xmlschemas/ActivityExtension/v2\";\nconst TRACKPOINT_ATTRIBUTES = [\n [\"heartRate\", \"heartRates\"],\n [\"Cadence\", \"cadences\"],\n // Extended Trackpoint attributes\n [\"Speed\", \"speeds\"],\n [\"Watts\", \"watts\"],\n];\nconst LAP_ATTRIBUTES = [\n [\"TotalTimeSeconds\", \"totalTimeSeconds\"],\n [\"DistanceMeters\", \"distanceMeters\"],\n [\"MaximumSpeed\", \"maxSpeed\"],\n [\"AverageHeartRateBpm\", \"avgHeartRate\"],\n [\"MaximumHeartRateBpm\", \"maxHeartRate\"],\n // Extended Lap attributes\n [\"AvgSpeed\", \"avgSpeed\"],\n [\"AvgWatts\", \"avgWatts\"],\n [\"MaxWatts\", \"maxWatts\"],\n];\nfunction getProperties(node, attributeNames) {\n const properties = [];\n for (const [tag, alias] of attributeNames) {\n let elem = get1(node, tag);\n if (!elem) {\n const elements = node.getElementsByTagNameNS(EXTENSIONS_NS, tag);\n if (elements.length) {\n elem = elements[0];\n }\n }\n const val = parseFloat(nodeVal(elem));\n if (!isNaN(val)) {\n properties.push([alias, val]);\n }\n }\n return properties;\n}\nfunction coordPair(node) {\n const ll = [num1(node, \"LongitudeDegrees\"), num1(node, \"LatitudeDegrees\")];\n if (ll[0] === undefined ||\n isNaN(ll[0]) ||\n ll[1] === undefined ||\n isNaN(ll[1])) {\n return null;\n }\n const heartRate = get1(node, \"HeartRateBpm\");\n const time = nodeVal(get1(node, \"Time\"));\n get1(node, \"AltitudeMeters\", (alt) => {\n const a = parseFloat(nodeVal(alt));\n if (!isNaN(a)) {\n ll.push(a);\n }\n });\n return {\n coordinates: ll,\n time: time || null,\n heartRate: heartRate ? parseFloat(nodeVal(heartRate)) : null,\n extensions: getProperties(node, TRACKPOINT_ATTRIBUTES),\n };\n}\nfunction getPoints(node) {\n const pts = $(node, \"Trackpoint\");\n const line = [];\n const times = [];\n const heartRates = [];\n if (pts.length < 2)\n return null; // Invalid line in GeoJSON\n const extendedProperties = {};\n const result = { extendedProperties };\n for (let i = 0; i < pts.length; i++) {\n const c = coordPair(pts[i]);\n if (c === null)\n continue;\n line.push(c.coordinates);\n const { time, heartRate, extensions } = c;\n if (time)\n times.push(time);\n if (heartRate)\n heartRates.push(heartRate);\n for (const [alias, value] of extensions) {\n if (!extendedProperties[alias]) {\n extendedProperties[alias] = Array(pts.length).fill(null);\n }\n extendedProperties[alias][i] = value;\n }\n }\n if (line.length < 2)\n return null;\n return Object.assign(result, {\n line: line,\n times: times,\n heartRates: heartRates,\n });\n}\nfunction getLap(node) {\n const segments = $(node, \"Track\");\n const track = [];\n const times = [];\n const heartRates = [];\n const allExtendedProperties = [];\n let line;\n const properties = Object.assign(Object.fromEntries(getProperties(node, LAP_ATTRIBUTES)), get(node, \"Name\", (nameElement) => {\n return { name: nodeVal(nameElement) };\n }));\n for (const segment of segments) {\n line = getPoints(segment);\n if (line) {\n track.push(line.line);\n if (line.times.length)\n times.push(line.times);\n if (line.heartRates.length)\n heartRates.push(line.heartRates);\n allExtendedProperties.push(line.extendedProperties);\n }\n }\n for (let i = 0; i < allExtendedProperties.length; i++) {\n const extendedProperties = allExtendedProperties[i];\n for (const property in extendedProperties) {\n if (segments.length === 1) {\n if (line) {\n properties[property] = line.extendedProperties[property];\n }\n }\n else {\n if (!properties[property]) {\n properties[property] = track.map((track) => Array(track.length).fill(null));\n }\n properties[property][i] = extendedProperties[property];\n }\n }\n }\n if (track.length === 0)\n return null;\n if (times.length || heartRates.length) {\n properties.coordinateProperties = Object.assign(times.length\n ? {\n times: track.length === 1 ? times[0] : times,\n }\n : {}, heartRates.length\n ? {\n heart: track.length === 1 ? heartRates[0] : heartRates,\n }\n : {});\n }\n return {\n type: \"Feature\",\n properties: properties,\n geometry: track.length === 1\n ? {\n type: \"LineString\",\n coordinates: track[0],\n }\n : {\n type: \"MultiLineString\",\n coordinates: track,\n },\n };\n}\n/**\n * Incrementally convert a TCX document to GeoJSON. The\n * first argument, `doc`, must be a TCX\n * document as an XML DOM - not as a string.\n */\nfunction* tcxGen(node) {\n for (const lap of $(node, \"Lap\")) {\n const feature = getLap(lap);\n if (feature)\n yield feature;\n }\n for (const course of $(node, \"Courses\")) {\n const feature = getLap(course);\n if (feature)\n yield feature;\n }\n}\n/**\n * Convert a TCX document to GeoJSON. The first argument, `doc`, must be a TCX\n * document as an XML DOM - not as a string.\n */\nfunction tcx(node) {\n return {\n type: \"FeatureCollection\",\n features: Array.from(tcxGen(node)),\n };\n}\n\nfunction fixColor(v, prefix) {\n const properties = {};\n const colorProp = prefix == \"stroke\" || prefix === \"fill\" ? prefix : prefix + \"-color\";\n if (v[0] === \"#\") {\n v = v.substring(1);\n }\n if (v.length === 6 || v.length === 3) {\n properties[colorProp] = \"#\" + v;\n }\n else if (v.length === 8) {\n properties[prefix + \"-opacity\"] = parseInt(v.substring(0, 2), 16) / 255;\n properties[colorProp] =\n \"#\" + v.substring(6, 8) + v.substring(4, 6) + v.substring(2, 4);\n }\n return properties;\n}\n\nfunction numericProperty(node, source, target) {\n const properties = {};\n num1(node, source, (val) => {\n properties[target] = val;\n });\n return properties;\n}\nfunction getColor(node, output) {\n return get(node, \"color\", (elem) => fixColor(nodeVal(elem), output));\n}\nfunction extractIcon(node) {\n return get(node, \"IconStyle\", (iconStyle) => {\n return Object.assign(getColor(iconStyle, \"icon\"), numericProperty(iconStyle, \"scale\", \"icon-scale\"), numericProperty(iconStyle, \"heading\", \"icon-heading\"), get(iconStyle, \"hotSpot\", (hotspot) => {\n const left = parseFloat(hotspot.getAttribute(\"x\") || \"\");\n const top = parseFloat(hotspot.getAttribute(\"y\") || \"\");\n const xunits = hotspot.getAttribute(\"xunits\") || \"\";\n const yunits = hotspot.getAttribute(\"yunits\") || \"\";\n if (!isNaN(left) && !isNaN(top))\n return {\n \"icon-offset\": [left, top],\n \"icon-offset-units\": [xunits, yunits],\n };\n return {};\n }), get(iconStyle, \"Icon\", (icon, properties) => {\n val1(icon, \"href\", (href) => {\n properties.icon = href;\n });\n return properties;\n }));\n });\n}\nfunction extractLabel(node) {\n return get(node, \"LabelStyle\", (labelStyle) => {\n return Object.assign(getColor(labelStyle, \"label\"), numericProperty(labelStyle, \"scale\", \"label-scale\"));\n });\n}\nfunction extractLine(node) {\n return get(node, \"LineStyle\", (lineStyle) => {\n return Object.assign(getColor(lineStyle, \"stroke\"), numericProperty(lineStyle, \"width\", \"stroke-width\"));\n });\n}\nfunction extractPoly(node) {\n return get(node, \"PolyStyle\", (polyStyle, properties) => {\n return Object.assign(properties, get(polyStyle, \"color\", (elem) => fixColor(nodeVal(elem), \"fill\")), val1(polyStyle, \"fill\", (fill) => {\n if (fill === \"0\")\n return { \"fill-opacity\": 0 };\n }), val1(polyStyle, \"outline\", (outline) => {\n if (outline === \"0\")\n return { \"stroke-opacity\": 0 };\n }));\n });\n}\nfunction extractStyle(node) {\n return Object.assign({}, extractPoly(node), extractLine(node), extractLabel(node), extractIcon(node));\n}\n\nconst removeSpace = /\\s*/g;\nconst trimSpace = /^\\s*|\\s*$/g;\nconst splitSpace = /\\s+/;\n/**\n * Get one coordinate from a coordinate array, if any\n */\nfunction coord1(value) {\n return value\n .replace(removeSpace, \"\")\n .split(\",\")\n .map(parseFloat)\n .filter((num) => !isNaN(num));\n}\n/**\n * Get all coordinates from a coordinate array as [[],[]]\n */\nfunction coord(value) {\n return value\n .replace(trimSpace, \"\")\n .split(splitSpace)\n .map(coord1)\n .filter((coord) => {\n return coord.length >= 2;\n });\n}\nfunction gxCoords(node) {\n let elems = $(node, \"coord\");\n if (elems.length === 0) {\n elems = $ns(node, \"coord\", \"*\");\n }\n const coordinates = elems.map((elem) => {\n return nodeVal(elem).split(\" \").map(parseFloat);\n });\n if (coordinates.length === 0) {\n return null;\n }\n return {\n geometry: coordinates.length > 2\n ? {\n type: \"LineString\",\n coordinates,\n }\n : {\n type: \"Point\",\n coordinates: coordinates[0],\n },\n times: $(node, \"when\").map((elem) => nodeVal(elem)),\n };\n}\nfunction fixRing(ring) {\n if (ring.length === 0)\n return ring;\n const first = ring[0];\n const last = ring[ring.length - 1];\n let equal = true;\n for (let i = 0; i < Math.max(first.length, last.length); i++) {\n if (first[i] !== last[i]) {\n equal = false;\n break;\n }\n }\n if (!equal) {\n return ring.concat([ring[0]]);\n }\n return ring;\n}\nconst GEO_TYPES = [\n \"Polygon\",\n \"LineString\",\n \"Point\",\n \"Track\",\n \"gx:Track\",\n];\nfunction getCoordinates(node) {\n return nodeVal(get1(node, \"coordinates\"));\n}\nfunction getGeometry(node) {\n const geometries = [];\n const coordTimes = [];\n for (const t of [\"MultiGeometry\", \"MultiTrack\", \"gx:MultiTrack\"]) {\n const elem = get1(node, t);\n if (elem) {\n return getGeometry(elem);\n }\n }\n for (const geoType of GEO_TYPES) {\n for (const geomNode of $(node, geoType)) {\n switch (geoType) {\n case \"Point\": {\n const coordinates = coord1(getCoordinates(geomNode));\n if (coordinates.length >= 2) {\n geometries.push({\n type: \"Point\",\n coordinates,\n });\n }\n break;\n }\n case \"LineString\": {\n const coordinates = coord(getCoordinates(geomNode));\n if (coordinates.length >= 2) {\n geometries.push({\n type: \"LineString\",\n coordinates,\n });\n }\n break;\n }\n case \"Polygon\": {\n const coords = [];\n for (const linearRing of $(geomNode, \"LinearRing\")) {\n const ring = fixRing(coord(getCoordinates(linearRing)));\n if (ring.length >= 4) {\n coords.push(ring);\n }\n }\n if (coords.length) {\n geometries.push({\n type: \"Polygon\",\n coordinates: coords,\n });\n }\n break;\n }\n case \"Track\":\n case \"gx:Track\": {\n const gx = gxCoords(geomNode);\n if (!gx)\n break;\n const { times, geometry } = gx;\n geometries.push(geometry);\n if (times.length)\n coordTimes.push(times);\n break;\n }\n }\n }\n }\n return {\n geometries,\n coordTimes,\n };\n}\n\nfunction extractExtendedData(node) {\n return get(node, \"ExtendedData\", (extendedData, properties) => {\n for (const data of $(extendedData, \"Data\")) {\n properties[data.getAttribute(\"name\") || \"\"] = nodeVal(get1(data, \"value\"));\n }\n for (const simpleData of $(extendedData, \"SimpleData\")) {\n properties[simpleData.getAttribute(\"name\") || \"\"] = nodeVal(simpleData);\n }\n return properties;\n });\n}\nfunction geometryListToGeometry(geometries) {\n return geometries.length === 0\n ? null\n : geometries.length === 1\n ? geometries[0]\n : {\n type: \"GeometryCollection\",\n geometries,\n };\n}\nfunction extractTimeSpan(node) {\n return get(node, \"TimeSpan\", (timeSpan) => {\n return {\n timespan: {\n begin: nodeVal(get1(timeSpan, \"begin\")),\n end: nodeVal(get1(timeSpan, \"end\")),\n },\n };\n });\n}\nfunction extractTimeStamp(node) {\n return get(node, \"TimeStamp\", (timeStamp) => {\n return { timestamp: nodeVal(get1(timeStamp, \"when\")) };\n });\n}\nfunction extractCascadedStyle(node, styleMap) {\n return val1(node, \"styleUrl\", (styleUrl) => {\n styleUrl = normalizeId(styleUrl);\n if (styleMap[styleUrl]) {\n return Object.assign({ styleUrl }, styleMap[styleUrl]);\n }\n // For backward-compatibility. Should we still include\n // styleUrl even if it's not resolved?\n return { styleUrl };\n });\n}\nfunction getPlacemark(node, styleMap) {\n const { coordTimes, geometries } = getGeometry(node);\n const feature = {\n type: \"Feature\",\n geometry: geometryListToGeometry(geometries),\n properties: Object.assign(getMulti(node, [\n \"name\",\n \"address\",\n \"visibility\",\n \"open\",\n \"phoneNumber\",\n \"description\",\n ]), extractCascadedStyle(node, styleMap), extractStyle(node), extractExtendedData(node), extractTimeSpan(node), extractTimeStamp(node), coordTimes.length\n ? {\n coordinateProperties: {\n times: coordTimes.length === 1 ? coordTimes[0] : coordTimes,\n },\n }\n : {}),\n };\n const id = node.getAttribute(\"id\");\n if (id !== null && id !== \"\")\n feature.id = id;\n return feature;\n}\n\nfunction getStyleId(style) {\n let id = style.getAttribute(\"id\");\n const parentNode = style.parentNode;\n if (!id &&\n isElement(parentNode) &&\n parentNode.localName === \"CascadingStyle\") {\n id = parentNode.getAttribute(\"kml:id\") || parentNode.getAttribute(\"id\");\n }\n return normalizeId(id || \"\");\n}\nfunction buildStyleMap(node) {\n const styleMap = {};\n for (const style of $(node, \"Style\")) {\n styleMap[getStyleId(style)] = extractStyle(style);\n }\n for (const map of $(node, \"StyleMap\")) {\n const id = normalizeId(map.getAttribute(\"id\") || \"\");\n val1(map, \"styleUrl\", (styleUrl) => {\n styleUrl = normalizeId(styleUrl);\n if (styleMap[styleUrl]) {\n styleMap[id] = styleMap[styleUrl];\n }\n });\n }\n return styleMap;\n}\nconst FOLDER_PROPS = [\n \"name\",\n \"visibility\",\n \"open\",\n \"address\",\n \"description\",\n \"phoneNumber\",\n \"visibility\",\n];\nfunction getFolder(node) {\n const meta = {};\n for (const child of Array.from(node.childNodes)) {\n if (isElement(child) && FOLDER_PROPS.includes(child.tagName)) {\n meta[child.tagName] = nodeVal(child);\n }\n }\n return {\n type: \"folder\",\n meta,\n children: [],\n };\n}\n/**\n * Yield a nested tree with KML folder structure\n *\n * This generates a tree with the given structure:\n *\n * ```js\n * {\n * \"type\": \"root\",\n * \"children\": [\n * {\n * \"type\": \"folder\",\n * \"meta\": {\n * \"name\": \"Test\"\n * },\n * \"children\": [\n * // ...features and folders\n * ]\n * }\n * // ...features\n * ]\n * }\n * ```\n */\nfunction kmlWithFolders(node) {\n const styleMap = buildStyleMap(node);\n const tree = { type: \"root\", children: [] };\n function traverse(node, pointer) {\n if (isElement(node)) {\n switch (node.tagName) {\n case \"Placemark\": {\n const placemark = getPlacemark(node, styleMap);\n if (placemark) {\n pointer.children.push(placemark);\n }\n break;\n }\n case \"Folder\": {\n const folder = getFolder(node);\n pointer.children.push(folder);\n pointer = folder;\n break;\n }\n }\n }\n if (node.childNodes) {\n for (let i = 0; i < node.childNodes.length; i++) {\n traverse(node.childNodes[i], pointer);\n }\n }\n }\n traverse(node, tree);\n return tree;\n}\n/**\n * Convert KML to GeoJSON incrementally, returning\n * a [Generator](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Iterators_and_Generators)\n * that yields output feature by feature.\n */\nfunction* kmlGen(node) {\n const styleMap = buildStyleMap(node);\n for (const placemark of $(node, \"Placemark\")) {\n const feature = getPlacemark(placemark, styleMap);\n if (feature)\n yield feature;\n }\n}\n/**\n * Convert a KML document to GeoJSON. The first argument, `doc`, must be a KML\n * document as an XML DOM - not as a string. You can get this using jQuery's default\n * `.ajax` function or using a bare XMLHttpRequest with the `.response` property\n * holding an XML DOM.\n *\n * The output is a JavaScript object of GeoJSON data. You can convert it to a string\n * with [JSON.stringify](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify)\n * or use it directly in libraries.\n */\nfunction kml(node) {\n return {\n type: \"FeatureCollection\",\n features: Array.from(kmlGen(node)),\n };\n}\n\nexport { gpx, gpxGen, kml, kmlGen, kmlWithFolders, tcx, tcxGen };\n//# sourceMappingURL=togeojson.es.mjs.map\n","import { watch, ref, provide, h, inject, onUnmounted, onBeforeUnmount, onMounted, nextTick, render as render$3, reactive, computed } from 'vue';\n\nconst debounce = (fn, time) => {\n let timeout;\n\n return function (...args) {\n const context = this;\n if (timeout) {\n clearTimeout(timeout);\n }\n timeout = setTimeout(() => {\n fn.apply(context, args);\n timeout = null;\n }, time);\n };\n};\n\nconst capitalizeFirstLetter = (string) => {\n if (!string || typeof string.charAt !== \"function\") {\n return string;\n }\n return string.charAt(0).toUpperCase() + string.slice(1);\n};\n\nconst propsBinder = (methods, leafletElement, props) => {\n for (const key in props) {\n const setMethodName = \"set\" + capitalizeFirstLetter(key);\n if (methods[setMethodName]) {\n watch(\n () => props[key],\n (newVal, oldVal) => {\n methods[setMethodName](newVal, oldVal);\n }\n );\n } else if (leafletElement[setMethodName]) {\n watch(\n () => props[key],\n (newVal) => {\n leafletElement[setMethodName](newVal);\n }\n );\n }\n }\n};\n\nconst remapEvents = (contextAttrs) => {\n const result = {};\n for (const attrName in contextAttrs) {\n if (\n attrName.startsWith(\"on\") &&\n !attrName.startsWith(\"onUpdate\") &&\n attrName !== \"onReady\"\n ) {\n const eventName = attrName.slice(2).toLocaleLowerCase();\n result[eventName] = contextAttrs[attrName];\n }\n }\n return result;\n};\n\nconst resetWebpackIcon = async (Icon) => {\n const modules = await Promise.all([\n import('leaflet/dist/images/marker-icon-2x.png'),\n import('leaflet/dist/images/marker-icon.png'),\n import('leaflet/dist/images/marker-shadow.png'),\n ]);\n\n delete Icon.Default.prototype._getIconUrl;\n\n Icon.Default.mergeOptions({\n iconRetinaUrl: modules[0].default,\n iconUrl: modules[1].default,\n shadowUrl: modules[2].default,\n });\n};\n\n/**\n * Wraps a placeholder function and provides it with the given name.\n * The wrapper can later be updated with {@link updateLeafletWrapper}\n * to provide a different function.\n *\n * @param {String} methodName Key used to provide the wrapper function\n */\nconst provideLeafletWrapper = (methodName) => {\n const wrapped = ref(() =>\n console.warn(`Method ${methodName} has been invoked without being replaced`)\n );\n const wrapper = (...args) => wrapped.value(...args);\n // eslint-disable-next-line vue/no-ref-as-operand\n wrapper.wrapped = wrapped;\n provide(methodName, wrapper);\n\n return wrapper;\n};\n\n/**\n * Change the function that will be executed when an injected Leaflet wrapper\n * is invoked.\n *\n * @param {*} wrapper Provided wrapper whose wrapped function is to be updated\n * @param {function} leafletMethod New method to be wrapped by the wrapper\n */\nconst updateLeafletWrapper = (wrapper, leafletMethod) =>\n (wrapper.wrapped.value = leafletMethod);\n\nconst WINDOW_OR_GLOBAL =\n (typeof self === \"object\" && self.self === self && self) ||\n (typeof global === \"object\" && global.global === global && global) ||\n undefined;\n\nconst GLOBAL_LEAFLET_OPT = \"useGlobalLeaflet\";\n\nconst props = {\n options: {\n type: Object,\n default: () => ({}),\n },\n};\n\nconst setup = (props) => {\n return { options: props.options, methods: {} };\n};\n\nconst props$1 = {\n ...props,\n pane: {\n type: String,\n default: \"overlayPane\",\n },\n attribution: {\n type: String,\n default: null,\n },\n name: {\n type: String,\n custom: true,\n default: undefined,\n },\n layerType: {\n type: String,\n custom: true,\n default: undefined,\n },\n visible: {\n type: Boolean,\n custom: true,\n default: true,\n },\n};\n\nconst setup$1 = (props, leafletRef, context) => {\n const addLayer = inject(\"addLayer\");\n const removeLayer = inject(\"removeLayer\");\n const {\n options: componentOptions,\n methods: componentMethods,\n } = setup(props);\n\n const options = {\n ...componentOptions,\n attribution: props.attribution,\n pane: props.pane,\n };\n\n const addThisLayer = () => addLayer({ leafletObject: leafletRef.value });\n const removeThisLayer = () =>\n removeLayer({ leafletObject: leafletRef.value });\n\n const methods = {\n ...componentMethods,\n setAttribution(val, old) {\n const attributionControl = this.$parent.leafletObject.attributionControl;\n attributionControl.removeAttribution(old).addAttribution(val);\n },\n setName() {\n removeThisLayer();\n if (props.visible) {\n addThisLayer();\n }\n },\n setLayerType() {\n removeThisLayer();\n if (props.visible) {\n addThisLayer();\n }\n },\n setVisible(isVisible) {\n if (leafletRef.value) {\n if (isVisible) {\n addThisLayer();\n } else {\n removeThisLayer();\n }\n }\n },\n bindPopup({ leafletObject }) {\n leafletRef.value.bindPopup(leafletObject);\n },\n bindTooltip({ leafletObject }) {\n leafletRef.value.bindTooltip(leafletObject);\n },\n unbindTooltip() {\n const tooltip = leafletRef.value ? leafletRef.value.getTooltip() : null;\n if (tooltip) {\n tooltip.unbindTooltip();\n }\n },\n unbindPopup() {\n const popup = leafletRef.value ? leafletRef.value.getPopup() : null;\n if (popup) {\n popup.unbindPopup();\n }\n },\n updateVisibleProp(value) {\n /**\n * Triggers when the visible prop needs to be updated\n * @type {boolean}\n * @property {boolean} value - value of the visible property\n */\n context.emit(\"update:visible\", value);\n },\n };\n\n provide(\"bindPopup\", methods.bindPopup);\n provide(\"bindTooltip\", methods.bindTooltip);\n provide(\"unbindTooltip\", methods.unbindTooltip);\n provide(\"unbindPopup\", methods.unbindPopup);\n\n onUnmounted(() => {\n methods.unbindPopup();\n methods.unbindTooltip();\n removeThisLayer();\n });\n\n return { options, methods };\n};\n\nconst render = (ready, slots) => {\n if (ready && slots.default) {\n return h(\"div\", { style: { display: \"none\" } }, slots.default());\n }\n};\n\nconst props$2 = {\n ...props,\n interactive: {\n type: Boolean,\n default: true,\n },\n bubblingMouseEvents: {\n type: Boolean,\n default: true,\n },\n};\n\nconst setup$2 = (props) => {\n const { options: componentOptions, methods } = setup(props);\n const options = {\n ...componentOptions,\n interactive: props.interactive,\n bubblingMouseEvents: props.bubblingMouseEvents,\n };\n\n return { options, methods };\n};\n\nconst props$3 = {\n ...props$1,\n ...props$2,\n stroke: {\n type: Boolean,\n custom: true,\n default: true,\n },\n color: {\n type: String,\n custom: true,\n default: \"#3388ff\",\n },\n weight: {\n type: Number,\n custom: true,\n default: 3,\n },\n opacity: {\n type: Number,\n custom: true,\n default: 1.0,\n },\n lineCap: {\n type: String,\n custom: true,\n default: \"round\",\n },\n lineJoin: {\n type: String,\n custom: true,\n default: \"round\",\n },\n dashArray: {\n type: String,\n custom: true,\n default: null,\n },\n dashOffset: {\n type: String,\n custom: true,\n default: null,\n },\n fill: {\n type: Boolean,\n custom: true,\n default: false,\n },\n fillColor: {\n type: String,\n custom: true,\n default: \"#3388ff\",\n },\n fillOpacity: {\n type: Number,\n custom: true,\n default: 0.2,\n },\n fillRule: {\n type: String,\n custom: true,\n default: \"evenodd\",\n },\n className: {\n type: String,\n custom: true,\n default: null,\n },\n};\n\nconst setup$3 = (props, leafletRef, context) => {\n const { options: layerOptions, methods: layerMethods } = setup$1(\n props,\n leafletRef,\n context\n );\n const {\n options: interactiveLayerOptions,\n methods: interactiveLayerMethods,\n } = setup$2(props);\n\n const removeLayer = inject(\"removeLayer\");\n\n const options = {\n ...layerOptions,\n ...interactiveLayerOptions,\n stroke: props.stroke,\n color: props.color,\n weight: props.weight,\n opacity: props.opacity,\n lineCap: props.lineCap,\n lineJoin: props.lineJoin,\n dashArray: props.dashArray,\n dashOffset: props.dashOffset,\n fill: props.fill,\n fillColor: props.fillColor,\n fillOpacity: props.fillOpacity,\n fillRule: props.fillRule,\n className: props.className,\n };\n const methods = {\n ...layerMethods,\n ...interactiveLayerMethods,\n setStroke(stroke) {\n leafletRef.value.setStyle({ stroke });\n },\n setColor(color) {\n leafletRef.value.setStyle({ color });\n },\n setWeight(weight) {\n leafletRef.value.setStyle({ weight });\n },\n setOpacity(opacity) {\n leafletRef.value.setStyle({ opacity });\n },\n setLineCap(lineCap) {\n leafletRef.value.setStyle({ lineCap });\n },\n setLineJoin(lineJoin) {\n leafletRef.value.setStyle({ lineJoin });\n },\n setDashArray(dashArray) {\n leafletRef.value.setStyle({ dashArray });\n },\n setDashOffset(dashOffset) {\n leafletRef.value.setStyle({ dashOffset });\n },\n setFill(fill) {\n leafletRef.value.setStyle({ fill });\n },\n setFillColor(fillColor) {\n leafletRef.value.setStyle({ fillColor });\n },\n setFillOpacity(fillOpacity) {\n leafletRef.value.setStyle({ fillOpacity });\n },\n setFillRule(fillRule) {\n leafletRef.value.setStyle({ fillRule });\n },\n setClassName(className) {\n leafletRef.value.setStyle({ className });\n },\n };\n\n onBeforeUnmount(() => {\n removeLayer({ leafletObject: leafletRef.value });\n });\n\n return { options, methods };\n};\n\nconst props$4 = {\n ...props$3,\n latLng: {\n type: [Object, Array],\n custom: true,\n default: null,\n },\n /**\n * Radius of the marker in pixels.\n */\n radius: {\n type: Number,\n default: null,\n },\n};\n\nconst setup$4 = (props, leafletRef, context) => {\n const { options: pathOptions, methods: pathMethods } = setup$3(\n props,\n leafletRef,\n context\n );\n const options = {\n ...pathOptions,\n ...props,\n };\n const methods = {\n ...pathMethods,\n setRadius(radius) {\n leafletRef.value.setRadius(radius);\n },\n setLatLng(latLng) {\n leafletRef.value.setLatLng(latLng);\n },\n };\n\n return { options, methods };\n};\n\nconst props$5 = {\n ...props$4,\n /**\n * Radius of the circle in meters.\n */\n radius: {\n type: Number,\n default: null,\n },\n};\n\nconst setup$5 = (props, leafletRef, context) => {\n const {\n options: circleMarkerOptions,\n methods: circleMarkerMethods,\n } = setup$4(props, leafletRef, context);\n\n const options = {\n ...circleMarkerOptions,\n ...props,\n };\n\n const methods = {\n ...circleMarkerMethods,\n };\n\n return { options, methods };\n};\n\n/**\n * Circle component, lets you add and personalize circles on the map\n */\nvar script = {\n name: \"LCircle\",\n props: props$5,\n setup(props, context) {\n const leafletRef = ref({});\n const ready = ref(false);\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const addLayer = inject(\"addLayer\");\n\n const { options, methods } = setup$5(props, leafletRef, context);\n\n onMounted(async () => {\n const { circle, DomEvent } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n\n leafletRef.value = circle(props.latLng, options);\n\n const listeners = remapEvents(context.attrs);\n DomEvent.on(leafletRef.value, listeners);\n\n propsBinder(methods, leafletRef.value, props);\n\n addLayer({\n ...props,\n ...methods,\n leafletObject: leafletRef.value,\n });\n ready.value = true;\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n return { ready, leafletObject: leafletRef };\n },\n render() {\n return render(this.ready, this.$slots);\n },\n};\n\nscript.__file = \"src/components/LCircle.vue\";\n\n/**\n * Circle Marker component, lets you add and personalize circle markers on the map\n */\nvar script$1 = {\n name: \"LCircleMarker\",\n props: props$4,\n setup(props, context) {\n const leafletRef = ref({});\n const ready = ref(false);\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const addLayer = inject(\"addLayer\");\n\n const { options, methods } = setup$4(props, leafletRef, context);\n\n onMounted(async () => {\n const { circleMarker, DomEvent } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n\n leafletRef.value = circleMarker(props.latLng, options);\n\n const listeners = remapEvents(context.attrs);\n DomEvent.on(leafletRef.value, listeners);\n\n propsBinder(methods, leafletRef.value, props);\n\n addLayer({\n ...props,\n ...methods,\n leafletObject: leafletRef.value,\n });\n ready.value = true;\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n return { ready, leafletObject: leafletRef };\n },\n render() {\n return render(this.ready, this.$slots);\n },\n};\n\nscript$1.__file = \"src/components/LCircleMarker.vue\";\n\nconst props$6 = {\n ...props,\n position: {\n type: String,\n default: \"topright\",\n },\n};\n\nconst setup$6 = (props, leafletRef) => {\n const {\n options: componentOptions,\n methods: componentMethods,\n } = setup(props);\n const options = {\n ...componentOptions,\n position: props.position,\n };\n\n const methods = {\n ...componentMethods,\n setPosition(position) {\n if (leafletRef.value) {\n leafletRef.value.setPosition(position);\n }\n },\n };\n\n onUnmounted(() => {\n if (leafletRef.value) {\n leafletRef.value.remove();\n }\n });\n\n return { options, methods };\n};\n\nconst render$1 = (slots) => {\n if (slots.default) {\n return h(\"div\", { ref: \"root\" }, slots.default());\n }\n return null;\n};\n\nvar script$2 = {\n name: \"LControl\",\n props: {\n ...props$6,\n disableClickPropagation: {\n type: Boolean,\n custom: true,\n default: true,\n },\n disableScrollPropagation: {\n type: Boolean,\n custom: true,\n default: false,\n },\n },\n setup(props, context) {\n const leafletRef = ref({});\n const root = ref(null);\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const registerControl = inject(\"registerControl\");\n\n const { options, methods } = setup$6(props, leafletRef);\n\n onMounted(async () => {\n const { Control, DomEvent } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n\n const LControl = Control.extend({\n onAdd() {\n return root.value;\n },\n });\n\n leafletRef.value = new LControl(options);\n propsBinder(methods, leafletRef.value, props);\n registerControl({ leafletObject: leafletRef.value });\n\n if (props.disableClickPropagation) {\n DomEvent.disableClickPropagation(root.value);\n }\n if (props.disableScrollPropagation) {\n DomEvent.disableScrollPropagation(root.value);\n }\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n return { root, leafletObject: leafletRef };\n },\n render() {\n return render$1(this.$slots);\n },\n};\n\nscript$2.__file = \"src/components/LControl.vue\";\n\nconst props$7 = {\n ...props$6,\n prefix: {\n type: String,\n default: \"Vue-Leaflet\",\n custom: true,\n },\n};\n\nconst setup$7 = (props, leafletRef) => {\n const { options: controlOptions, methods: controlMethods } = setup$6(\n props,\n leafletRef\n );\n const options = {\n ...controlOptions,\n prefix: props.prefix,\n };\n\n const methods = {\n ...controlMethods,\n setPrefix(prefix) {\n leafletRef.value.setPrefix(prefix);\n },\n };\n\n return { options, methods };\n};\n\nvar script$3 = {\n name: \"LControlAttribution\",\n props: props$7,\n setup(props, context) {\n const leafletRef = ref({});\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const registerControl = inject(\"registerControl\");\n\n const { options, methods } = setup$7(props, leafletRef);\n\n onMounted(async () => {\n const { control } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n\n leafletRef.value = control.attribution(options);\n propsBinder(methods, leafletRef.value, props);\n registerControl({ leafletObject: leafletRef.value });\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n return { leafletObject: leafletRef.value };\n },\n render() {\n return null;\n },\n};\n\nscript$3.__file = \"src/components/LControlAttribution.vue\";\n\nconst props$8 = {\n ...props$6,\n collapsed: {\n type: Boolean,\n default: true,\n },\n autoZIndex: {\n type: Boolean,\n default: true,\n },\n hideSingleBase: {\n type: Boolean,\n default: false,\n },\n sortLayers: {\n type: Boolean,\n default: false,\n },\n sortFunction: {\n type: Function,\n default: undefined,\n },\n};\n\nconst setup$8 = (props, leafletRef) => {\n const { options: controlOptions } = setup$6(props, leafletRef);\n const options = {\n ...controlOptions,\n collapsed: props.collapsed,\n autoZIndex: props.autoZIndex,\n hideSingleBase: props.hideSingleBase,\n sortLayers: props.sortLayers,\n sortFunction: props.sortFunction,\n };\n\n const methods = {\n addLayer(layer) {\n if (layer.layerType === \"base\") {\n leafletRef.value.addBaseLayer(layer.leafletObject, layer.name);\n } else if (layer.layerType === \"overlay\") {\n leafletRef.value.addOverlay(layer.leafletObject, layer.name);\n }\n },\n removeLayer(layer) {\n leafletRef.value.removeLayer(layer.leafletObject);\n },\n };\n return { options, methods };\n};\n\nvar script$4 = {\n name: \"LControlLayers\",\n props: props$8,\n setup(props, context) {\n const leafletRef = ref({});\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const registerLayerControl = inject(\"registerLayerControl\");\n\n const { options, methods } = setup$8(props, leafletRef);\n\n onMounted(async () => {\n const { control } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n\n leafletRef.value = control.layers(null, null, options);\n\n propsBinder(methods, leafletRef.value, props);\n\n registerLayerControl({\n ...props,\n ...methods,\n leafletObject: leafletRef.value,\n });\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n return { leafletObject: leafletRef.value };\n },\n render() {\n return null;\n },\n};\n\nscript$4.__file = \"src/components/LControlLayers.vue\";\n\nconst props$9 = {\n ...props$6,\n maxWidth: {\n type: Number,\n default: 100,\n },\n metric: {\n type: Boolean,\n default: true,\n },\n imperial: {\n type: Boolean,\n default: true,\n },\n updateWhenIdle: {\n type: Boolean,\n default: false,\n },\n};\n\nconst setup$9 = (props, leafletRef) => {\n const { options: controlOptions, methods: controlMethods } = setup$6(\n props,\n leafletRef\n );\n const options = {\n ...controlOptions,\n maxWidth: props.maxWidth,\n metric: props.metric,\n imperial: props.imperial,\n updateWhenIdle: props.updateWhenIdle,\n };\n\n return { options, methods: controlMethods };\n};\n\nvar script$5 = {\n name: \"LControlScale\",\n props: props$9,\n setup(props, context) {\n const leafletRef = ref({});\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const registerControl = inject(\"registerControl\");\n\n const { options, methods } = setup$9(props, leafletRef);\n\n onMounted(async () => {\n const { control } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n\n leafletRef.value = control.scale(options);\n propsBinder(methods, leafletRef.value, props);\n registerControl({ leafletObject: leafletRef.value });\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n return { leafletObject: leafletRef.value };\n },\n render() {\n return null;\n },\n};\n\nscript$5.__file = \"src/components/LControlScale.vue\";\n\nconst props$a = {\n ...props$6,\n zoomInText: {\n type: String,\n default: \"+\",\n },\n zoomInTitle: {\n type: String,\n default: \"Zoom in\",\n },\n zoomOutText: {\n type: String,\n default: \"-\",\n },\n zoomOutTitle: {\n type: String,\n default: \"Zoom out\",\n },\n};\n\nconst setup$a = (props, leafletRef) => {\n const { options: controlOptions, methods: controlMethods } = setup$6(\n props,\n leafletRef\n );\n const options = {\n ...controlOptions,\n zoomInText: props.zoomInText,\n zoomInTitle: props.zoomInTitle,\n zoomOutText: props.zoomOutText,\n zoomOutTitle: props.zoomOutTitle,\n };\n\n return { options, methods: controlMethods };\n};\n\nvar script$6 = {\n name: \"LControlZoom\",\n props: props$a,\n setup(props, context) {\n const leafletRef = ref({});\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const registerControl = inject(\"registerControl\");\n\n const { options, methods } = setup$a(props, leafletRef);\n\n onMounted(async () => {\n const { control } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n\n leafletRef.value = control.zoom(options);\n propsBinder(methods, leafletRef.value, props);\n registerControl({ leafletObject: leafletRef.value });\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n return { leafletObject: leafletRef.value };\n },\n render() {\n return null;\n },\n};\n\nscript$6.__file = \"src/components/LControlZoom.vue\";\n\nconst props$b = {\n ...props$1,\n};\n\nconst setup$b = (props, leafletRef, context) => {\n const { options: layerOptions, methods: layerMethods } = setup$1(\n props,\n leafletRef,\n context\n );\n\n const options = {\n ...layerOptions,\n };\n\n const methods = {\n ...layerMethods,\n addLayer(layer) {\n leafletRef.value.addLayer(layer.leafletObject);\n },\n removeLayer(layer) {\n leafletRef.value.removeLayer(layer.leafletObject);\n },\n };\n\n provide(\"addLayer\", methods.addLayer);\n provide(\"removeLayer\", methods.removeLayer);\n\n return { options, methods };\n};\n\nconst props$c = {\n ...props$b,\n};\n\nconst setup$c = (props, leafletRef) => {\n const { options: layerOptions, methods: layerGroupMethods } = setup$b(\n props,\n leafletRef\n );\n\n const options = {\n ...layerOptions,\n ...props,\n };\n\n const methods = {\n ...layerGroupMethods,\n };\n\n return { options, methods };\n};\n\nvar script$7 = {\n props: props$c,\n setup(props, context) {\n const leafletRef = ref({});\n const ready = ref(false);\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const addLayer = inject(\"addLayer\");\n\n const { methods, options } = setup$c(props, leafletRef);\n\n onMounted(async () => {\n const { featureGroup, DomEvent } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n\n leafletRef.value = featureGroup(options);\n\n const listeners = remapEvents(context.attrs);\n DomEvent.on(leafletRef.value, listeners);\n\n propsBinder(methods, leafletRef.value, props);\n addLayer({\n ...props,\n ...methods,\n leafletObject: leafletRef.value,\n });\n ready.value = true;\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n return { ready, leafletObject: leafletRef };\n },\n render() {\n return render(this.ready, this.$slots);\n },\n};\n\nscript$7.__file = \"src/components/LFeatureGroup.vue\";\n\nconst props$d = {\n ...props$b,\n geojson: {\n type: [Object, Array],\n default: () => ({}),\n },\n};\n\nconst setup$d = (props, leafletRef) => {\n const { options: layerOptions, methods: layerGroupMethods } = setup$b(\n props,\n leafletRef\n );\n\n const options = {\n ...layerOptions,\n ...props,\n };\n\n const methods = {\n ...layerGroupMethods,\n setGeojson(newVal) {\n leafletRef.value.clearLayers();\n leafletRef.value.addData(newVal);\n },\n getGeoJSONData() {\n return leafletRef.value.toGeoJSON();\n },\n getBounds() {\n return leafletRef.value.getBounds();\n },\n };\n\n return { options, methods };\n};\n\nvar script$8 = {\n props: props$d,\n setup(props, context) {\n const leafletRef = ref({});\n const ready = ref(false);\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const addLayer = inject(\"addLayer\");\n\n const { methods, options } = setup$d(props, leafletRef);\n\n onMounted(async () => {\n const { geoJSON, DomEvent } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n\n leafletRef.value = geoJSON(props.geojson, options);\n\n const listeners = remapEvents(context.attrs);\n DomEvent.on(leafletRef.value, listeners);\n\n propsBinder(methods, leafletRef.value, props);\n addLayer({\n ...props,\n ...methods,\n leafletObject: leafletRef.value,\n });\n ready.value = true;\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n return { ready, leafletObject: leafletRef };\n },\n render() {\n return render(this.ready, this.$slots);\n },\n};\n\nscript$8.__file = \"src/components/LGeoJson.vue\";\n\nconst props$e = {\n ...props$1,\n pane: {\n type: String,\n default: \"tilePane\",\n },\n opacity: {\n type: Number,\n custom: false,\n default: 1.0,\n },\n zIndex: {\n type: Number,\n default: 1,\n },\n tileSize: {\n type: Number,\n default: 256,\n },\n noWrap: {\n type: Boolean,\n default: false,\n },\n minZoom: {\n type: Number,\n default: 0,\n },\n maxZoom: {\n type: Number,\n default: undefined,\n },\n};\n\nconst setup$e = (props, leafletRef, context) => {\n const { options: layerOptions, methods: layerMethods } = setup$1(\n props,\n leafletRef,\n context\n );\n const options = {\n ...layerOptions,\n pane: props.pane,\n opacity: props.opacity,\n zIndex: props.zIndex,\n tileSize: props.tileSize,\n noWrap: props.noWrap,\n minZoom: props.minZoom,\n maxZoom: props.maxZoom,\n };\n return { options, methods: { ...layerMethods } };\n};\n\nvar script$9 = {\n props: {\n ...props$e,\n childRender: {\n type: Function,\n required: true,\n },\n },\n setup(props, context) {\n const leafletRef = ref({});\n const tileComponents = ref({});\n const root = ref(null);\n const ready = ref(false);\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const addLayer = inject(\"addLayer\");\n\n const { options, methods } = setup$e(props, leafletRef, context);\n\n onMounted(async () => {\n const { GridLayer, DomEvent, DomUtil } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n\n methods.onUnload = (e) => {\n const key = leafletRef.value._tileCoordsToKey(e.coords);\n if (tileComponents[key]) {\n tileComponents[key].innerHTML = \"\";\n tileComponents[key] = undefined;\n }\n };\n\n methods.setTileComponent = () => {\n leafletRef.value.redraw();\n };\n\n const GLayer = GridLayer.extend({\n createTile(coords) {\n const key = leafletRef.value._tileCoordsToKey(coords);\n tileComponents[key] = DomUtil.create(\"div\");\n\n let vNode = h(\n { setup: props.childRender, props: [\"coords\"] },\n { coords }\n );\n render$3(vNode, tileComponents[key]);\n\n return tileComponents[key];\n },\n });\n\n leafletRef.value = new GLayer(options);\n\n const listeners = remapEvents(context.attrs);\n DomEvent.on(leafletRef.value, listeners);\n\n leafletRef.value.on(\"tileunload\", methods.onUnload);\n\n propsBinder(methods, leafletRef.value, props);\n addLayer({\n ...props,\n ...methods,\n leafletObject: leafletRef.value,\n });\n ready.value = true;\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n\n onUnmounted(() => {\n leafletRef.value.off(\"tileunload\", methods.unLoad);\n });\n\n return { root, ready, leafletObject: leafletRef };\n },\n render() {\n if (this.ready) {\n return h(\"div\", { style: { display: \"none\" }, ref: \"root\" });\n }\n return null;\n },\n};\n\nscript$9.__file = \"src/components/LGridLayer.vue\";\n\nconst props$f = {\n iconUrl: {\n type: String,\n custom: true,\n default: null,\n },\n iconRetinaUrl: {\n type: String,\n custom: true,\n default: null,\n },\n iconSize: {\n type: [Object, Array],\n custom: true,\n default: null,\n },\n iconAnchor: {\n type: [Object, Array],\n custom: true,\n default: null,\n },\n popupAnchor: {\n type: [Object, Array],\n custom: true,\n default: () => [0, 0],\n },\n tooltipAnchor: {\n type: [Object, Array],\n custom: true,\n default: () => [0, 0],\n },\n shadowUrl: {\n type: String,\n custom: true,\n default: null,\n },\n shadowRetinaUrl: {\n type: String,\n custom: true,\n default: null,\n },\n shadowSize: {\n type: [Object, Array],\n custom: true,\n default: null,\n },\n shadowAnchor: {\n type: [Object, Array],\n custom: true,\n default: null,\n },\n bgPos: {\n type: [Object, Array],\n custom: true,\n default: () => [0, 0],\n },\n className: {\n type: String,\n custom: true,\n default: \"\",\n },\n options: {\n type: Object,\n custom: true,\n default: () => ({}),\n },\n};\n\n/**\n * Icon component, lets you add and custom icons to the map\n */\nvar script$a = {\n name: \"LIcon\",\n props: {\n ...props$f,\n ...props,\n },\n setup(props, context) {\n const root = ref(null);\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const canSetParentHtml = inject(\"canSetParentHtml\");\n const setParentHtml = inject(\"setParentHtml\");\n const setIcon = inject(\"setIcon\");\n\n let onDomEvent;\n let offDomEvent;\n let divIcon;\n let icon;\n let iconObject = undefined;\n\n const createIcon = (el, recreationNeeded, htmlSwapNeeded) => {\n const elHtml = el && el.innerHTML;\n if (!recreationNeeded) {\n if (htmlSwapNeeded && iconObject && canSetParentHtml()) {\n setParentHtml(elHtml);\n }\n return;\n }\n\n const listeners = remapEvents(context.attrs);\n if (iconObject) {\n offDomEvent(iconObject, listeners);\n }\n\n const { options: componentOptions } = setup(props);\n const options = {\n ...componentOptions,\n iconUrl: props.iconUrl,\n iconRetinaUrl: props.iconRetinaUrl,\n iconSize: props.iconSize,\n iconAnchor: props.iconAnchor,\n popupAnchor: props.popupAnchor,\n tooltipAnchor: props.tooltipAnchor,\n shadowUrl: props.shadowUrl,\n shadowRetinaUrl: props.shadowRetinaUrl,\n shadowSize: props.shadowSize,\n shadowAnchor: props.shadowAnchor,\n bgPos: props.bgPos,\n className: props.className,\n html: elHtml || props.html,\n };\n\n iconObject = options.html ? divIcon(options) : icon(options);\n onDomEvent(iconObject, listeners);\n setIcon(iconObject);\n };\n\n const scheduleCreateIcon = () => {\n nextTick(() => createIcon(root.value, true, false));\n };\n\n const scheduleHtmlSwap = () => {\n nextTick(() => createIcon(root.value, false, true));\n };\n\n const methods = {\n setIconUrl: scheduleCreateIcon,\n setIconRetinaUrl: scheduleCreateIcon,\n setIconSize: scheduleCreateIcon,\n setIconAnchor: scheduleCreateIcon,\n setPopupAnchor: scheduleCreateIcon,\n setTooltipAnchor: scheduleCreateIcon,\n setShadowUrl: scheduleCreateIcon,\n setShadowRetinaUrl: scheduleCreateIcon,\n setShadowAnchor: scheduleCreateIcon,\n setBgPos: scheduleCreateIcon,\n setClassName: scheduleCreateIcon,\n setHtml: scheduleCreateIcon,\n };\n\n onMounted(async () => {\n const { DomEvent, divIcon: lDivIcon, icon: lIcon } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n\n onDomEvent = DomEvent.on;\n offDomEvent = DomEvent.off;\n divIcon = lDivIcon;\n icon = lIcon;\n\n propsBinder(methods, {}, props);\n\n const observer = new MutationObserver(scheduleHtmlSwap);\n observer.observe(root.value, {\n attributes: true,\n childList: true,\n characterData: true,\n subtree: true,\n });\n scheduleCreateIcon();\n });\n\n return { root };\n },\n render() {\n const content = this.$slots.default ? this.$slots.default() : undefined;\n return h(\"div\", { ref: \"root\" }, content);\n },\n};\n\nscript$a.__file = \"src/components/LIcon.vue\";\n\n/**\n * @typedef {import('leaflet/dist/leaflet-src.esm.js').LatLngBounds} LatLngBounds\n */\n\nconst props$g = {\n ...props$1,\n url: {\n type: String,\n required: true,\n },\n bounds: {\n type: [Array, Object],\n required: true,\n },\n opacity: {\n type: Number,\n custom: true,\n default: 1.0,\n },\n alt: {\n type: String,\n default: \"\",\n },\n interactive: {\n type: Boolean,\n default: false,\n },\n crossOrigin: {\n type: Boolean,\n default: false,\n },\n errorOverlayUrl: {\n type: String,\n custom: true,\n default: \"\",\n },\n zIndex: {\n type: Number,\n custom: true,\n default: 1,\n },\n className: {\n type: String,\n default: \"\",\n },\n};\n\nconst setup$f = (setupProps, LeafletRef, context) => {\n const { options: layerOptions, methods: layerMethods } = setup$1(\n setupProps,\n LeafletRef,\n context\n );\n const options = {\n ...layerOptions,\n ...setupProps,\n };\n\n const methods = {\n ...layerMethods,\n /**\n * Sets the opacity of the overlay.\n * @param {number} opacity\n */\n setOpacity(opacity) {\n return LeafletRef.value.setOpacity(opacity);\n },\n /**\n * Changes the URL of the image.\n * @param {string} url\n */\n setUrl(url) {\n return LeafletRef.value.setUrl(url);\n },\n /**\n * Update the bounds that this ImageOverlay covers\n * @param {LatLngBounds | Array>} bounds\n */\n setBounds(bounds) {\n return LeafletRef.value.setBounds(bounds);\n },\n /**\n * Get the bounds that this ImageOverlay covers\n * @returns {LatLngBounds}\n */\n getBounds() {\n return LeafletRef.value.getBounds();\n },\n /**\n * Returns the instance of HTMLImageElement used by this overlay.\n * @returns {HTMLElement}\n */\n getElement() {\n return LeafletRef.value.getElement();\n },\n /**\n * Brings the layer to the top of all overlays.\n */\n bringToFront() {\n return LeafletRef.value.bringToFront();\n },\n /**\n * Brings the layer to the bottom of all overlays.\n */\n bringToBack() {\n return LeafletRef.value.bringToBack();\n },\n /**\n * Changes the zIndex of the image overlay.\n * @param {number} zIndex\n */\n setZIndex(zIndex) {\n return LeafletRef.value.setZIndex(zIndex);\n },\n };\n\n return { options, methods };\n};\n\n/**\n * ImageOverlay component, render a plain image instead of a geospatial map.\n */\nvar script$b = {\n name: \"LImageOverlay\",\n props: props$g,\n setup(props, context) {\n const leafletRef = ref({});\n const ready = ref(false);\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const addLayer = inject(\"addLayer\");\n\n const { options, methods } = setup$f(props, leafletRef, context);\n\n onMounted(async () => {\n const { imageOverlay, DomEvent } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n leafletRef.value = imageOverlay(props.url, props.bounds, options);\n\n const listeners = remapEvents(context.attrs);\n DomEvent.on(leafletRef.value, listeners);\n propsBinder(methods, leafletRef.value, props);\n addLayer({\n ...props,\n ...methods,\n leafletObject: leafletRef.value,\n });\n ready.value = true;\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n\n return { ready, leafletObject: leafletRef };\n },\n render() {\n return render(this.ready, this.$slots);\n },\n};\n\nscript$b.__file = \"src/components/LImageOverlay.vue\";\n\nvar script$c = {\n props: props$b,\n setup(props, context) {\n const leafletRef = ref({});\n const ready = ref(false);\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const addLayer = inject(\"addLayer\");\n\n const { methods } = setup$b(props, leafletRef, context);\n\n onMounted(async () => {\n const { layerGroup, DomEvent } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n leafletRef.value = layerGroup(props.options);\n\n const listeners = remapEvents(context.attrs);\n DomEvent.on(leafletRef.value, listeners);\n\n propsBinder(methods, leafletRef.value, props);\n addLayer({\n ...props,\n ...methods,\n leafletObject: leafletRef.value,\n });\n ready.value = true;\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n return { ready, leafletObject: leafletRef };\n },\n render() {\n return render(this.ready, this.$slots);\n },\n};\n\nscript$c.__file = \"src/components/LLayerGroup.vue\";\n\nvar script$d = {\n emits: [\"ready\", \"update:zoom\", \"update:center\", \"update:bounds\"],\n props: {\n ...props,\n /**\n * The center of the map, supports .sync modifier\n */\n center: {\n type: [Object, Array],\n default: () => [0, 0],\n },\n /**\n * The bounds of the map, supports .sync modifier\n */\n bounds: {\n type: [Array, Object],\n default: undefined,\n },\n /**\n * The max bounds of the map\n */\n maxBounds: {\n type: [Array, Object],\n default: undefined,\n },\n /**\n * The zoom of the map, supports .sync modifier\n */\n zoom: {\n type: Number,\n default: 0,\n },\n /**\n * The minZoom of the map\n */\n minZoom: {\n type: Number,\n default: undefined,\n },\n /**\n * The maxZoom of the map\n */\n maxZoom: {\n type: Number,\n default: undefined,\n },\n /**\n * The paddingBottomRight of the map\n */\n paddingBottomRight: {\n type: Array,\n default: undefined,\n },\n /**\n * The paddingTopLeft of the map\n */\n paddingTopLeft: {\n type: Array,\n default: undefined,\n },\n /**\n * The padding of the map\n */\n padding: {\n type: Array,\n default: undefined,\n },\n /**\n * The worldCopyJump option for the map\n */\n worldCopyJump: {\n type: Boolean,\n default: false,\n },\n /**\n * The CRS to use for the map. Can be an object that defines a coordinate reference\n * system for projecting geographical points into screen coordinates and back\n * (see https://leafletjs.com/reference-1.7.1.html#crs-l-crs-base), or a string\n * name identifying one of Leaflet's defined CRSs, such as \"EPSG4326\".\n */\n crs: {\n type: [String, Object],\n default: \"EPSG3857\",\n },\n maxBoundsViscosity: {\n type: Number,\n default: undefined,\n },\n inertia: {\n type: Boolean,\n default: undefined,\n },\n inertiaDeceleration: {\n type: Number,\n default: undefined,\n },\n inertiaMaxSpeed: {\n type: Number,\n default: undefined,\n },\n easeLinearity: {\n type: Number,\n default: undefined,\n },\n zoomAnimation: {\n type: Boolean,\n default: undefined,\n },\n zoomAnimationThreshold: {\n type: Number,\n default: undefined,\n },\n fadeAnimation: {\n type: Boolean,\n default: undefined,\n },\n markerZoomAnimation: {\n type: Boolean,\n default: undefined,\n },\n noBlockingAnimations: {\n type: Boolean,\n default: false,\n },\n useGlobalLeaflet: {\n type: Boolean,\n default: false,\n },\n },\n setup(props, context) {\n const root = ref(null);\n const blueprint = reactive({\n ready: false,\n leafletRef: {},\n layersToAdd: [],\n layersInControl: [],\n });\n const { options: componentOptions } = setup(props);\n const options = {\n ...componentOptions,\n minZoom: props.minZoom,\n maxZoom: props.maxZoom,\n maxBounds: props.maxBounds,\n maxBoundsViscosity: props.maxBoundsViscosity,\n worldCopyJump: props.worldCopyJump,\n crs: props.crs,\n center: props.center,\n zoom: props.zoom,\n inertia: props.inertia,\n inertiaDeceleration: props.inertiaDeceleration,\n inertiaMaxSpeed: props.inertiaMaxSpeed,\n easeLinearity: props.easeLinearity,\n zoomAnimation: props.zoomAnimation,\n zoomAnimationThreshold: props.zoomAnimationThreshold,\n fadeAnimation: props.fadeAnimation,\n markerZoomAnimation: props.markerZoomAnimation,\n };\n\n const addLayer = provideLeafletWrapper(\"addLayer\");\n const removeLayer = provideLeafletWrapper(\"removeLayer\");\n const registerControl = provideLeafletWrapper(\"registerControl\");\n const registerLayerControl = provideLeafletWrapper(\"registerLayerControl\");\n provide(GLOBAL_LEAFLET_OPT, props.useGlobalLeaflet);\n\n const eventHandlers = {\n moveEndHandler() {\n /**\n * Triggers when zoom is updated\n * @type {number,string}\n */\n context.emit(\"update:zoom\", blueprint.leafletRef.getZoom());\n /**\n * Triggers when center is updated\n * @type {object,array}\n */\n context.emit(\"update:center\", blueprint.leafletRef.getCenter());\n\n /**\n * Triggers when bounds are updated\n * @type {object}\n */\n context.emit(\"update:bounds\", blueprint.leafletRef.getBounds());\n },\n overlayAddHandler(e) {\n const layer = blueprint.layersInControl.find((l) => l.name === e.name);\n if (layer) {\n layer.updateVisibleProp(true);\n }\n },\n overlayRemoveHandler(e) {\n const layer = blueprint.layersInControl.find((l) => l.name === e.name);\n if (layer) {\n layer.updateVisibleProp(false);\n }\n },\n };\n\n onMounted(async () => {\n if (props.useGlobalLeaflet) {\n WINDOW_OR_GLOBAL.L = WINDOW_OR_GLOBAL.L || (await import('leaflet'));\n }\n const {\n map,\n CRS,\n Icon,\n latLngBounds,\n latLng,\n DomEvent,\n } = props.useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n\n try {\n options.beforeMapMount && (await options.beforeMapMount());\n } catch (error) {\n console.error(\n `The following error occurred running the provided beforeMapMount hook ${error.message}`\n );\n }\n\n await resetWebpackIcon(Icon);\n\n const optionsCrs =\n typeof options.crs == \"string\" ? CRS[options.crs] : options.crs;\n options.crs = optionsCrs || CRS.EPSG3857;\n\n const methods = {\n addLayer(layer) {\n if (layer.layerType !== undefined) {\n if (blueprint.layerControl === undefined) {\n blueprint.layersToAdd.push(layer);\n } else {\n const exist = blueprint.layersInControl.find(\n (l) =>\n l.leafletObject._leaflet_id ===\n layer.leafletObject._leaflet_id\n );\n if (!exist) {\n blueprint.layerControl.addLayer(layer);\n blueprint.layersInControl.push(layer);\n }\n }\n }\n if (layer.visible !== false) {\n blueprint.leafletRef.addLayer(layer.leafletObject);\n }\n },\n removeLayer(layer) {\n if (layer.layerType !== undefined) {\n if (blueprint.layerControl === undefined) {\n blueprint.layersToAdd = blueprint.layersToAdd.filter(\n (l) => l.name !== layer.name\n );\n } else {\n blueprint.layerControl.removeLayer(layer.leafletObject);\n blueprint.layersInControl = blueprint.layersInControl.filter(\n (l) =>\n l.leafletObject._leaflet_id !==\n layer.leafletObject._leaflet_id\n );\n }\n }\n blueprint.leafletRef.removeLayer(layer.leafletObject);\n },\n\n registerLayerControl(lControlLayer) {\n blueprint.layerControl = lControlLayer;\n blueprint.layersToAdd.forEach((layer) => {\n blueprint.layerControl.addLayer(layer);\n });\n blueprint.layersToAdd = [];\n\n registerControl(lControlLayer);\n },\n\n registerControl(lControl) {\n blueprint.leafletRef.addControl(lControl.leafletObject);\n },\n\n setZoom(newVal) {\n const zoom = blueprint.leafletRef.getZoom();\n if (newVal !== zoom) {\n blueprint.leafletRef.setZoom(newVal, {\n animate: props.noBlockingAnimations ? false : null,\n });\n }\n },\n\n setPaddingBottomRight(newVal) {\n blueprint.paddingBottomRight = newVal;\n },\n setPaddingTopLeft(newVal) {\n blueprint.paddingTopLeft = newVal;\n },\n setPadding(newVal) {\n blueprint.padding = newVal;\n },\n setCrs(newVal) {\n const prevBounds = blueprint.leafletRef.getBounds();\n blueprint.leafletRef.options.crs = newVal;\n blueprint.leafletRef.fitBounds(prevBounds, {\n animate: false,\n padding: [0, 0],\n });\n },\n fitBounds(bounds) {\n blueprint.leafletRef.fitBounds(bounds, {\n animate: this.noBlockingAnimations ? false : null,\n });\n },\n setBounds(newVal) {\n if (!newVal) {\n return;\n }\n const newBounds = latLngBounds(newVal);\n if (!newBounds.isValid()) {\n return;\n }\n const oldBounds =\n blueprint.lastSetBounds || blueprint.leafletRef.getBounds();\n const boundsChanged = !oldBounds.equals(newBounds, 0); // set maxMargin to 0 - check exact equals\n if (boundsChanged) {\n blueprint.lastSetBounds = newBounds;\n blueprint.leafletRef.fitBounds(newBounds, this.fitBoundsOptions);\n }\n },\n\n setCenter(newVal) {\n if (newVal == null) {\n return;\n }\n const newCenter = latLng(newVal);\n const oldCenter =\n blueprint.lastSetCenter || blueprint.leafletRef.getCenter();\n if (\n oldCenter.lat !== newCenter.lat ||\n oldCenter.lng !== newCenter.lng\n ) {\n blueprint.lastSetCenter = newCenter;\n blueprint.leafletRef.panTo(newCenter, {\n animate: this.noBlockingAnimations ? false : null,\n });\n }\n },\n };\n\n updateLeafletWrapper(addLayer, methods.addLayer);\n updateLeafletWrapper(removeLayer, methods.removeLayer);\n updateLeafletWrapper(registerControl, methods.registerControl);\n updateLeafletWrapper(registerLayerControl, methods.registerLayerControl);\n\n blueprint.leafletRef = map(root.value, options);\n\n propsBinder(methods, blueprint.leafletRef, props);\n const listeners = remapEvents(context.attrs);\n\n blueprint.leafletRef.on(\n \"moveend\",\n debounce(eventHandlers.moveEndHandler, 100)\n );\n blueprint.leafletRef.on(\"overlayadd\", eventHandlers.overlayAddHandler);\n blueprint.leafletRef.on(\n \"overlayremove\",\n eventHandlers.overlayRemoveHandler\n );\n DomEvent.on(blueprint.leafletRef, listeners);\n blueprint.ready = true;\n nextTick(() => context.emit(\"ready\", blueprint.leafletRef));\n });\n\n onBeforeUnmount(() => {\n if (blueprint.leafletRef) {\n blueprint.leafletRef.remove();\n }\n });\n\n const leafletObject = computed(() => blueprint.leafletRef);\n const ready = computed(() => blueprint.ready);\n return { root, ready, leafletObject };\n },\n render() {\n return h(\n \"div\",\n { style: { width: \"100%\", height: \"100%\" }, ref: \"root\" },\n this.ready ? this.$slots.default() : {}\n );\n },\n};\n\nscript$d.__file = \"src/components/LMap.vue\";\n\nconst props$h = {\n ...props$1,\n pane: {\n type: String,\n default: \"markerPane\",\n },\n draggable: {\n type: Boolean,\n custom: true,\n default: false,\n },\n latLng: {\n type: [Object, Array],\n custom: true,\n default: null,\n },\n icon: {\n type: [Object],\n default: () => undefined,\n custom: false,\n },\n zIndexOffset: {\n type: Number,\n custom: false,\n default: null,\n },\n};\n\nconst setup$g = (props, leafletRef, context) => {\n const { options: layerOptions, methods: layerMethods } = setup$1(\n props,\n leafletRef,\n context\n );\n const options = {\n ...layerOptions,\n ...props,\n };\n\n const methods = {\n ...layerMethods,\n setDraggable(value) {\n if (leafletRef.value.dragging) {\n value\n ? leafletRef.value.dragging.enable()\n : leafletRef.value.dragging.disable();\n }\n },\n latLngSync(event) {\n context.emit(\"update:latLng\", event.latlng);\n context.emit(\"update:lat-lng\", event.latlng);\n },\n setLatLng(newVal) {\n if (newVal == null) {\n return;\n }\n\n if (leafletRef.value) {\n const oldLatLng = leafletRef.value.getLatLng();\n if (!oldLatLng || !oldLatLng.equals(newVal)) {\n leafletRef.value.setLatLng(newVal);\n }\n }\n },\n };\n return { options, methods };\n};\n\n/**\n * Marker component, lets you add and personalize markers on the map\n */\nvar script$e = {\n name: \"LMarker\",\n props: props$h,\n setup(props, context) {\n const leafletRef = ref({});\n const ready = ref(false);\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const addLayer = inject(\"addLayer\");\n\n provide(\"canSetParentHtml\", () => !!leafletRef.value.getElement());\n provide(\n \"setParentHtml\",\n (html) => (leafletRef.value.getElement().innerHTML = html)\n );\n provide(\n \"setIcon\",\n (newIcon) => leafletRef.value.setIcon && leafletRef.value.setIcon(newIcon)\n );\n const { options, methods } = setup$g(props, leafletRef, context);\n if (options.icon === undefined) {\n // If the options objection has a property named 'icon', then Leaflet will overwrite\n // the default icon with it for the marker, _even if it is undefined_.\n // This leads to the issue discussed in https://github.com/vue-leaflet/vue-leaflet/issues/130\n delete options.icon;\n }\n\n onMounted(async () => {\n const { marker, DomEvent } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n leafletRef.value = marker(props.latLng, options);\n\n const listeners = remapEvents(context.attrs);\n DomEvent.on(leafletRef.value, listeners);\n\n leafletRef.value.on(\"move\", debounce(methods.latLngSync, 100));\n propsBinder(methods, leafletRef.value, props);\n addLayer({\n ...props,\n ...methods,\n leafletObject: leafletRef.value,\n });\n ready.value = true;\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n\n return { ready, leafletObject: leafletRef };\n },\n render() {\n return render(this.ready, this.$slots);\n },\n};\n\nscript$e.__file = \"src/components/LMarker.vue\";\n\nconst props$i = {\n ...props$3,\n latLngs: {\n type: Array,\n default: () => [],\n },\n smoothFactor: {\n type: Number,\n custom: true,\n default: 1.0,\n },\n noClip: {\n type: Boolean,\n custom: true,\n default: false,\n },\n};\n\nconst setup$h = (props, leafletRef, context) => {\n const { options: pathOptions, methods: pathMethods } = setup$3(\n props,\n leafletRef,\n context\n );\n const options = {\n ...pathOptions,\n ...props,\n };\n\n const methods = {\n ...pathMethods,\n setSmoothFactor(smoothFactor) {\n leafletRef.value.setStyle({ smoothFactor });\n },\n setNoClip(noClip) {\n leafletRef.value.setStyle({ noClip });\n },\n addLatLng(latLng) {\n leafletRef.value.addLatLng(latLng);\n },\n };\n return { options, methods };\n};\n\nconst props$j = {\n ...props$i,\n};\n\nconst setup$i = (props, leafletRef, context) => {\n const { options: polylineOptions, methods: polylineMethods } = setup$h(\n props,\n leafletRef,\n context\n );\n const options = {\n ...polylineOptions,\n ...props,\n };\n\n const methods = {\n ...polylineMethods,\n toGeoJSON(precision) {\n return leafletRef.value.toGeoJSON(precision);\n },\n };\n\n return { options, methods };\n};\n\n/**\n * Polygon component, lets you add and customize polygon regions on the map\n */\nvar script$f = {\n name: \"LPolygon\",\n props: props$j,\n setup(props, context) {\n const leafletRef = ref({});\n const ready = ref(false);\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const addLayer = inject(\"addLayer\");\n\n const { options, methods } = setup$i(props, leafletRef, context);\n\n onMounted(async () => {\n const { polygon, DomEvent } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n\n leafletRef.value = polygon(props.latLngs, options);\n\n const listeners = remapEvents(context.attrs);\n DomEvent.on(leafletRef.value, listeners);\n\n propsBinder(methods, leafletRef.value, props);\n\n addLayer({\n ...props,\n ...methods,\n leafletObject: leafletRef.value,\n });\n ready.value = true;\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n\n return { ready, leafletObject: leafletRef };\n },\n render() {\n return render(this.ready, this.$slots);\n },\n};\n\nscript$f.__file = \"src/components/LPolygon.vue\";\n\n/**\n * Polyline component, lets you add and personalize polylines on the map\n */\nvar script$g = {\n name: \"LPolyline\",\n props: props$i,\n setup(props, context) {\n const leafletRef = ref({});\n const ready = ref(false);\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const addLayer = inject(\"addLayer\");\n\n const { options, methods } = setup$h(props, leafletRef, context);\n\n onMounted(async () => {\n const { polyline, DomEvent } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n\n leafletRef.value = polyline(props.latLngs, options);\n\n const listeners = remapEvents(context.attrs);\n DomEvent.on(leafletRef.value, listeners);\n\n propsBinder(methods, leafletRef.value, props);\n\n addLayer({\n ...props,\n ...methods,\n leafletObject: leafletRef.value,\n });\n ready.value = true;\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n return { ready, leafletObject: leafletRef };\n },\n render() {\n return render(this.ready, this.$slots);\n },\n};\n\nscript$g.__file = \"src/components/LPolyline.vue\";\n\nconst props$k = {\n ...props,\n content: {\n type: String,\n default: null,\n },\n};\n\nconst setup$j = (props, leafletRef) => {\n const { options, methods: componentMethods } = setup(props);\n const methods = {\n ...componentMethods,\n setContent(newVal) {\n if (leafletRef.value && newVal !== null && newVal !== undefined) {\n leafletRef.value.setContent(newVal);\n }\n },\n };\n return { options, methods };\n};\n\nconst render$2 = (slots) => {\n if (slots.default) {\n return h(\"div\", { ref: \"root\" }, slots.default());\n }\n return null;\n};\n\nconst props$l = {\n ...props$k,\n latLng: {\n type: [Object, Array],\n default: () => [],\n },\n};\n\nconst setup$k = (props, leafletRef) => {\n const { options, methods } = setup$j(props, leafletRef);\n const unbindPopup = inject(\"unbindPopup\");\n\n onBeforeUnmount(() => {\n unbindPopup();\n });\n\n return { options, methods };\n};\n\n/**\n * Display a popup on the map\n */\nvar script$h = {\n name: \"LPopup\",\n props: props$l,\n setup(props, context) {\n const leafletRef = ref({});\n const root = ref(null);\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const bindPopup = inject(\"bindPopup\");\n\n const { options, methods } = setup$k(props, leafletRef);\n\n onMounted(async () => {\n const { popup, DomEvent } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n\n leafletRef.value = popup(options);\n\n if (props.latLng !== undefined) {\n leafletRef.value.setLatLng(props.latLng);\n }\n\n propsBinder(methods, leafletRef.value, props);\n const listeners = remapEvents(context.attrs);\n DomEvent.on(leafletRef.value, listeners);\n leafletRef.value.setContent(props.content || root.value);\n bindPopup({ leafletObject: leafletRef.value });\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n return { root, leafletObject: leafletRef };\n },\n render() {\n return render$2(this.$slots);\n },\n};\n\nscript$h.__file = \"src/components/LPopup.vue\";\n\nconst props$m = {\n ...props$j,\n bounds: {\n type: Array,\n default: undefined,\n },\n};\n\nconst setup$l = (props, leafletRef, context) => {\n const { options: polygonOptions, methods: polygonMethods } = setup$i(\n props,\n leafletRef,\n context\n );\n const options = {\n ...polygonOptions,\n ...props,\n };\n\n const methods = {\n ...polygonMethods,\n setBounds(latLngBounds) {\n leafletRef.value.setBounds(latLngBounds);\n },\n setLatLngs(latLngs) {\n // Calling setLatLngs on a Leaflet rectangle will convert it\n // to a polygon. So instead, we call setBounds here to ensure\n // that the rectangle remains a rectangle, defined by the\n // bounds of the points in the latLngs array.\n leafletRef.value.setBounds(latLngs);\n },\n };\n\n return { options, methods };\n};\n\n/**\n * Rectangle component, lets you add and customize rectangular regions on the map\n */\nvar script$i = {\n name: \"LRectangle\",\n props: props$m,\n setup(props, context) {\n const leafletRef = ref({});\n const ready = ref(false);\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const addLayer = inject(\"addLayer\");\n\n const { options, methods } = setup$l(props, leafletRef, context);\n\n onMounted(async () => {\n const { rectangle, latLngBounds, DomEvent } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n\n const bounds =\n props.bounds && props.bounds.length\n ? latLngBounds(props.bounds)\n : latLngBounds(props.latLngs);\n leafletRef.value = rectangle(bounds, options);\n\n const listeners = remapEvents(context.attrs);\n DomEvent.on(leafletRef.value, listeners);\n\n propsBinder(methods, leafletRef.value, props);\n\n addLayer({\n ...props,\n ...methods,\n leafletObject: leafletRef.value,\n });\n ready.value = true;\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n\n return { ready, leafletObject: leafletRef };\n },\n render() {\n return render(this.ready, this.$slots);\n },\n};\n\nscript$i.__file = \"src/components/LRectangle.vue\";\n\nconst props$n = {\n ...props$e,\n tms: {\n type: Boolean,\n default: false,\n },\n subdomains: {\n type: String,\n default: \"abc\",\n },\n detectRetina: {\n type: Boolean,\n default: false,\n },\n url: {\n type: String,\n default: null,\n },\n};\n\nconst setup$m = (props, leafletRef) => {\n const {\n options: gridLayerOptions,\n methods: gridLayerMethods,\n } = setup$e(props, leafletRef);\n const options = {\n ...gridLayerOptions,\n tms: props.tms,\n subdomains: props.subdomains,\n detectRetina: props.detectRetina,\n };\n return {\n options,\n methods: {\n ...gridLayerMethods,\n },\n };\n};\n\nvar script$j = {\n props: props$n,\n setup(props, context) {\n const leafletRef = ref({});\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const addLayer = inject(\"addLayer\");\n\n const { options, methods } = setup$m(props, leafletRef);\n\n onMounted(async () => {\n const { tileLayer, DomEvent } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n leafletRef.value = tileLayer(props.url, options);\n\n const listeners = remapEvents(context.attrs);\n DomEvent.on(leafletRef.value, listeners);\n\n propsBinder(methods, leafletRef.value, props);\n addLayer({\n ...props,\n ...methods,\n leafletObject: leafletRef.value,\n });\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n\n return { leafletObject: leafletRef };\n },\n render() {\n return null;\n },\n};\n\nscript$j.__file = \"src/components/LTileLayer.vue\";\n\nconst props$o = {\n ...props$k,\n};\n\nconst setup$n = (props, leafletRef) => {\n const { options, methods } = setup$j(props, leafletRef);\n const unbindTooltip = inject(\"unbindTooltip\");\n\n onBeforeUnmount(() => {\n unbindTooltip();\n });\n\n return { options, methods };\n};\n\n/**\n * Display a tooltip on the map\n */\nvar script$k = {\n name: \"LTooltip\",\n props: props$o,\n setup(props, context) {\n const leafletRef = ref({});\n const root = ref(null);\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const bindTooltip = inject(\"bindTooltip\");\n\n const { options, methods } = setup$n(props, leafletRef);\n\n onMounted(async () => {\n const { tooltip, DomEvent } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n\n leafletRef.value = tooltip(options);\n\n propsBinder(methods, leafletRef.value, props);\n const listeners = remapEvents(context.attrs);\n DomEvent.on(leafletRef.value, listeners);\n leafletRef.value.setContent(props.content || root.value);\n bindTooltip({ leafletObject: leafletRef.value });\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n return { root, leafletObject: leafletRef };\n },\n render() {\n return render$2(this.$slots);\n },\n};\n\nscript$k.__file = \"src/components/LTooltip.vue\";\n\nconst props$p = {\n ...props$n,\n baseUrl: {\n type: String,\n default: null,\n required: true,\n },\n layers: {\n type: String,\n default: \"\",\n },\n styles: {\n type: String,\n default: \"\",\n },\n format: {\n type: String,\n default: \"image/jpeg\",\n },\n transparent: {\n type: Boolean,\n custom: false,\n },\n version: {\n type: String,\n default: \"1.1.1\",\n },\n crs: {\n default: null,\n },\n upperCase: {\n type: Boolean,\n default: false,\n },\n};\n\nconst setup$o = (props, leafletRef) => {\n const {\n options: tileLayerOptions,\n methods: tileLayerMethods,\n } = setup$m(props, leafletRef);\n const options = {\n ...tileLayerOptions,\n layers: props.layers,\n styles: props.styles,\n format: props.format,\n transparent: props.transparent,\n version: props.version,\n crs: props.crs,\n upperCase: props.upperCase,\n };\n return {\n options,\n methods: {\n ...tileLayerMethods,\n },\n };\n};\n\nvar script$l = {\n props: props$p,\n setup(props, context) {\n const leafletRef = ref({});\n\n const useGlobalLeaflet = inject(GLOBAL_LEAFLET_OPT);\n const addLayer = inject(\"addLayer\");\n\n const { options, methods } = setup$o(props, leafletRef);\n\n onMounted(async () => {\n const { tileLayer, DomEvent } = useGlobalLeaflet\n ? WINDOW_OR_GLOBAL.L\n : await import('leaflet/dist/leaflet-src.esm');\n\n leafletRef.value = tileLayer.wms(props.baseUrl, options);\n\n const listeners = remapEvents(context.attrs);\n DomEvent.on(leafletRef.value, listeners);\n\n propsBinder(methods, leafletRef.value, props);\n addLayer({\n ...props,\n ...methods,\n leafletObject: leafletRef.value,\n });\n nextTick(() => context.emit(\"ready\", leafletRef.value));\n });\n return { leafletObject: leafletRef.value };\n },\n render() {\n return null;\n },\n};\n\nscript$l.__file = \"src/components/LWmsTileLayer.vue\";\n\nexport { script as LCircle, script$1 as LCircleMarker, script$2 as LControl, script$3 as LControlAttribution, script$4 as LControlLayers, script$5 as LControlScale, script$6 as LControlZoom, script$7 as LFeatureGroup, script$8 as LGeoJson, script$9 as LGridLayer, script$a as LIcon, script$b as LImageOverlay, script$c as LLayerGroup, script$d as LMap, script$e as LMarker, script$f as LPolygon, script$g as LPolyline, script$h as LPopup, script$i as LRectangle, script$j as LTileLayer, script$k as LTooltip, script$l as LWmsTileLayer };\n//# sourceMappingURL=vue-leaflet.esm.js.map\n","import script from \"./CustomMarker.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./CustomMarker.vue?vue&type=script&lang=ts&setup=true\"\n\nconst __exports__ = script;\n\nexport default __exports__","import script from \"./index.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./index.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./index.vue?vue&type=style&index=0&id=6b490f5d&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-6b490f5d\"]])\n\nexport default __exports__","import script from \"./index.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./index.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./index.vue?vue&type=style&index=0&id=4ddbe26a&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-4ddbe26a\"]])\n\nexport default __exports__","import { Chart, LegendItem } from 'chart.js'\n\nconst getOrCreateLegendList = (id: string): HTMLUListElement => {\n const legendContainer = document.getElementById(id)\n if (legendContainer) {\n let listContainer = legendContainer.querySelector('ul')\n if (!listContainer) {\n listContainer = document.createElement('ul')\n legendContainer.appendChild(listContainer)\n }\n return listContainer\n }\n throw new Error('No legend container')\n}\n\nexport const htmlLegendPlugin = {\n id: 'htmlLegend',\n afterUpdate(\n chart: Chart,\n args: Record,\n options: Record\n ): void {\n const ul = getOrCreateLegendList(options.containerID)\n while (ul.firstChild) {\n ul.firstChild.remove()\n }\n\n const legendItems = chart.options.plugins?.legend?.labels?.generateLabels\n ? chart.options.plugins?.legend?.labels?.generateLabels(chart)\n : []\n\n legendItems.forEach((item: LegendItem) => {\n const li = document.createElement('li')\n li.onclick = () => {\n chart.setDatasetVisibility(\n item.datasetIndex,\n !chart.isDatasetVisible(item.datasetIndex)\n )\n chart.update()\n }\n\n const checkBox = document.createElement('input')\n if (checkBox) {\n checkBox.type = 'checkbox'\n checkBox.id = item.text\n checkBox.checked = !item.hidden\n }\n\n const text = document.createTextNode(item.text)\n\n const boxSpan = document.createElement('span')\n if (boxSpan) {\n boxSpan.style.background = String(item.fillStyle)\n boxSpan.style.borderColor = String(item.strokeStyle)\n }\n\n li.appendChild(checkBox)\n li.appendChild(text)\n li.appendChild(boxSpan)\n ul.appendChild(li)\n })\n },\n}\n","import script from \"./index.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./index.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./index.vue?vue&type=style&index=0&id=79120018&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-79120018\"]])\n\nexport default __exports__","import script from \"./WorkoutNotes.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./WorkoutNotes.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./WorkoutNotes.vue?vue&type=style&index=0&id=028ad527&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-028ad527\"]])\n\nexport default __exports__","import script from \"./WorkoutSegments.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./WorkoutSegments.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./WorkoutSegments.vue?vue&type=style&index=0&id=6b8a27cd&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-6b8a27cd\"]])\n\nexport default __exports__","import script from \"./Workout.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Workout.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./Workout.vue?vue&type=style&index=0&id=85ac744a&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-85ac744a\"]])\n\nexport default __exports__","import script from \"./WorkoutsFilters.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./WorkoutsFilters.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./WorkoutsFilters.vue?vue&type=style&index=0&id=6c38593a&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-6c38593a\"]])\n\nexport default __exports__","import script from \"./WorkoutsList.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./WorkoutsList.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./WorkoutsList.vue?vue&type=style&index=0&id=3be47bc9&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-3be47bc9\"]])\n\nexport default __exports__","import script from \"./WorkoutsView.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./WorkoutsView.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./WorkoutsView.vue?vue&type=style&index=0&id=77e54012&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-77e54012\"]])\n\nexport default __exports__"],"names":["_hoisted_1","id","_hoisted_2","_hoisted_3","class","_hoisted_4","key","_hoisted_5","_hoisted_6","for","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","_hoisted_13","_hoisted_14","_hoisted_15","_hoisted_16","_hoisted_17","_hoisted_18","_hoisted_19","_hoisted_20","_hoisted_21","_hoisted_22","_hoisted_23","_hoisted_24","_hoisted_25","_hoisted_26","_hoisted_27","_createTextVNode","_hoisted_28","_hoisted_29","_hoisted_30","_hoisted_31","_hoisted_32","_hoisted_33","_hoisted_34","_hoisted_35","_hoisted_36","_hoisted_37","_defineComponent","name","props","authUser","sports","isCreation","type","Boolean","default","loading","workout","setup","__props","t","useI18n","store","useStore","router","useRouter","toRefs","translatedSports","computed","translateSports","value","sport_id","appConfig","getters","ROOT_STORE","fileSizeLimit","max_single_file_size","getReadableFileSize","gpx_limit_import","zipSizeLimit","max_zip_file_size","errorMessages","workoutForm","reactive","title","notes","workoutDate","workoutTime","workoutDurationHour","workoutDurationMinutes","workoutDurationSeconds","workoutDistance","withGpx","ref","with_gpx","gpxFile","formErrors","updateNotes","updateWithGpx","updateFile","event","target","files","formatWorkoutForm","workoutDateTime","formatWorkoutDate","getDateWithTZ","workout_date","timezone","duration","split","imperial_units","convertDistance","distance","parseFloat","toFixed","workout_time","formatPayload","payload","updateWorkout","dispatch","WORKOUTS_STORE","workoutId","data","errorMessage","commit","file","onCancel","push","params","go","invalidateForm","onMounted","onUnmounted","watch","async","newWorkout","previousWorkout","_ctx","_cache","_component_CustomTextArea","_resolveComponent","_component_ErrorMessage","_component_Loader","_component_Card","_openBlock","_createElementBlock","_normalizeClass","_unref","_createVNode","_withCtx","_toDisplayString","$t","content","_createElementVNode","errors","onSubmit","_withModifiers","checked","disabled","onClick","_createCommentVNode","_withDirectives","required","onInvalid","$event","_Fragment","_renderList","sport","translatedLabel","_vModelSelect","accept","onInput","_vModelText","placeholder","minlength","maxlength","pattern","min","step","input","onUpdateValue","_createBlock","message","_","__exports__","SPORTS_STORE","AUTH_USER_STORE","workoutData","WorkoutEdition","route","useRoute","onBeforeMount","newWorkoutId","_withScopeId","n","_pushScopeId","_popScopeId","workoutObject","emits","emit","downloadGpx","authApi","responseType","then","response","gpxFileUrl","window","URL","createObjectURL","Blob","gpxLink","document","createElement","href","setAttribute","body","appendChild","click","_component_SportImage","_component_router_link","inactive","previousUrl","$router","label","color","segmentId","to","nextUrl","recordType","records","find","record","record_type","directions","convertDegreeToDirection","angle","Math","floor","weather","useImperialUnits","getWindDirectionTitle","windBearing","_component_Distance","wind","unitFrom","digits","displayUnit","style","_normalizeStyle","transform","weatherStart","weatherEnd","src","icon","alt","Number","temperature","humidity","WeatherWind","withPause","pauses","moving","WorkoutRecord","strong","aveSpeed","speed","maxSpeed","maxAlt","minAlt","ascent","descent","WorkoutWeather","$","element","tagName","Array","from","getElementsByTagName","nodeVal","node","normalize","textContent","get1","callback","result","length","get","properties","val1","val","$num","isNaN","num1","getMulti","propertyNames","property","isElement","nodeType","getLineStyle","lineStyle","Object","assign","stroke","opacity","width","getExtensions","values","child","childNodes","abbreviateName","nodeName","concat","parseNumeric","includes","num","coordPair$1","ll","getAttribute","time","coordinates","extendedValues","extractProperties","extensions","getElementsByTagNameNS","parentNode","replace","links","map","link","getPoints$1","pointname","pts","line","times","i","c","plural","fill","getRoute","_gpxType","geometry","getTrack","segments","track","extractedLines","segment","multi","coordinateProperties","entries","getPoint","pair","gpxGen","feature","waypoint","point","gpx","features","debounce","fn","timeout","args","context","this","clearTimeout","setTimeout","apply","capitalizeFirstLetter","string","charAt","toUpperCase","slice","propsBinder","methods","leafletElement","setMethodName","newVal","oldVal","remapEvents","contextAttrs","attrName","startsWith","eventName","toLocaleLowerCase","resetWebpackIcon","Icon","modules","Promise","all","Default","prototype","_getIconUrl","mergeOptions","iconRetinaUrl","iconUrl","shadowUrl","provideLeafletWrapper","methodName","wrapped","console","warn","wrapper","updateLeafletWrapper","leafletMethod","WINDOW_OR_GLOBAL","self","g","global","undefined","GLOBAL_LEAFLET_OPT","options","props$1","pane","String","attribution","custom","layerType","visible","setup$1","leafletRef","addLayer","removeLayer","componentOptions","componentMethods","addThisLayer","leafletObject","removeThisLayer","setAttribution","old","attributionControl","$parent","removeAttribution","addAttribution","setName","setLayerType","setVisible","isVisible","bindPopup","bindTooltip","unbindTooltip","tooltip","getTooltip","unbindPopup","popup","getPopup","updateVisibleProp","render","ready","slots","h","display","props$2","interactive","bubblingMouseEvents","props$3","weight","lineCap","lineJoin","dashArray","dashOffset","fillColor","fillOpacity","fillRule","className","props$4","latLng","radius","props$6","position","setup$6","setPosition","remove","render$1","script$2","disableClickPropagation","disableScrollPropagation","root","useGlobalLeaflet","registerControl","Control","DomEvent","L","LControl","extend","onAdd","$slots","props$8","collapsed","autoZIndex","hideSingleBase","sortLayers","sortFunction","Function","setup$8","controlOptions","layer","addBaseLayer","addOverlay","script$4","registerLayerControl","control","layers","props$b","setup$b","layerOptions","layerMethods","props$d","geojson","setup$d","layerGroupMethods","setGeojson","clearLayers","addData","getGeoJSONData","toGeoJSON","getBounds","script$8","geoJSON","listeners","attrs","on","props$e","zIndex","tileSize","noWrap","minZoom","maxZoom","setup$e","props$f","iconSize","iconAnchor","popupAnchor","tooltipAnchor","shadowRetinaUrl","shadowSize","shadowAnchor","bgPos","script$a","canSetParentHtml","setParentHtml","setIcon","onDomEvent","offDomEvent","divIcon","iconObject","createIcon","el","recreationNeeded","htmlSwapNeeded","elHtml","innerHTML","html","scheduleCreateIcon","scheduleHtmlSwap","setIconUrl","setIconRetinaUrl","setIconSize","setIconAnchor","setPopupAnchor","setTooltipAnchor","setShadowUrl","setShadowRetinaUrl","setShadowAnchor","setBgPos","setClassName","setHtml","lDivIcon","lIcon","off","observer","MutationObserver","observe","attributes","childList","characterData","subtree","script$c","layerGroup","script$d","center","bounds","maxBounds","zoom","paddingBottomRight","paddingTopLeft","padding","worldCopyJump","crs","maxBoundsViscosity","inertia","inertiaDeceleration","inertiaMaxSpeed","easeLinearity","zoomAnimation","zoomAnimationThreshold","fadeAnimation","markerZoomAnimation","noBlockingAnimations","blueprint","layersToAdd","layersInControl","eventHandlers","moveEndHandler","getZoom","getCenter","overlayAddHandler","e","l","overlayRemoveHandler","CRS","latLngBounds","beforeMapMount","error","optionsCrs","EPSG3857","layerControl","exist","_leaflet_id","filter","lControlLayer","forEach","lControl","addControl","setZoom","animate","setPaddingBottomRight","setPaddingTopLeft","setPadding","setCrs","prevBounds","fitBounds","setBounds","newBounds","isValid","oldBounds","lastSetBounds","boundsChanged","equals","fitBoundsOptions","setCenter","newCenter","oldCenter","lastSetCenter","lat","lng","panTo","height","props$h","draggable","zIndexOffset","setup$g","setDraggable","dragging","enable","disable","latLngSync","latlng","setLatLng","oldLatLng","getLatLng","script$e","getElement","newIcon","marker","props$i","latLngs","smoothFactor","noClip","props$j","props$k","props$n","tms","subdomains","detectRetina","url","setup$m","gridLayerOptions","gridLayerMethods","script$j","tileLayer","markerCoordinates","isStart","latitude","LMarker","longitude","LIcon","workoutMap","geoJson","getGeoJson","startMarkerCoordinates","chartData","endMarkerCoordinates","isFullscreen","gpxContent","jsonData","DOMParser","parseFromString","resetZoom","toggleFullscreen","_component_VFullscreen","modelValue","LMap","ref_key","onReady","LControlLayers","LTileLayer","getApiUrl","map_attribution","LGeoJson","LLayerGroup","CustomMarker","displaySegment","displayModal","getWorkoutObject","getWorkoutObjectUrl","previous_workout","next_workout","urls","ave_speed","max_alt","max_speed","min_alt","segment_id","weather_end","weather_start","updateDisplayModal","deleteWorkout","newSegmentId","_component_Modal","onConfirmAction","onCancelAction","WorkoutCardTitle","onDisplayModal","WorkoutMap","WorkoutData","getOrCreateLegendList","legendContainer","getElementById","listContainer","querySelector","Error","htmlLegendPlugin","afterUpdate","chart","ul","containerID","firstChild","legendItems","plugins","legend","labels","generateLabels","item","li","onclick","setDatasetVisibility","datasetIndex","isDatasetVisible","update","checkBox","text","hidden","createTextNode","boxSpan","background","fillStyle","borderColor","strokeStyle","displayDistance","beginElevationAtZero","datasets","getDatasets","fromKmUnit","getUnitTo","fromMUnit","distance_labels","duration_labels","JSON","parse","stringify","elevation","responsive","maintainAspectRatio","animation","layout","top","scales","grid","drawOnChartArea","ticks","count","formatDuration","ySpeed","yElevation","beginAtZero","elements","pointStyle","pointRadius","datalabels","interaction","intersect","mode","callbacks","dataset","formattedValue","yAxisID","tooltipItems","emitCoordinates","dataIndex","htmlLegend","lineChartProps","useLineChart","updateDisplayDistance","Date","toISOString","substr","emitEmptyCoordinates","units","defaultTarget","LineChart","_mergeProps","onMouseleave","_isRef","index","workout_id","updateCoordinates","WorkoutDetail","WorkoutChart","onGetCoordinates","WorkoutSegments","WorkoutNotes","NotFound","toUnit","query","handleFilterChange","onFilter","path","onClearFilter","newQuery","$route","onChange","s","sports_list","distance_from","distance_to","duration_from","duration_to","ave_speed_from","ave_speed_to","max_speed_from","max_speed_to","user","orderByList","workouts","pagination","getWorkoutsQuery","hoverWorkoutId","loadWorkouts","getConvertedPayload","reloadWorkouts","queryParam","queryValue","workoutQuery","getQuery","defaultOrder","defaultSort","keys","k","workoutsPayloadKeys","convertedPayload","entry","match","onHover","toLowerCase","total","FilterSelects","sort","sortList","order_by","onUpdateSelect","Pagination","capitalize","getSportLabel","getSportColor","onMouseover","StaticMap","format","NoWorkouts","hiddenFilters","toggleFilters","username","WorkoutsFilters","WorkoutsList"],"sourceRoot":""} \ No newline at end of file diff --git a/fittrackee_client/package.json b/fittrackee_client/package.json index 18dd156f..7e388c6e 100644 --- a/fittrackee_client/package.json +++ b/fittrackee_client/package.json @@ -1,6 +1,6 @@ { "name": "fittrackee_client", - "version": "0.6.6", + "version": "0.6.7", "private": true, "scripts": { "serve": "vue-cli-service serve", diff --git a/pyproject.toml b/pyproject.toml index 6d13c3b5..cbcf0d41 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "fittrackee" -version = "0.6.6" +version = "0.6.7" description = "Self-hosted outdoor workout/activity tracker" authors = ["SamR1"] license = "AGPL-3.0"