2024-11-29
This commit is contained in:
parent
8b74ebf97c
commit
700299157c
66 changed files with 478 additions and 451 deletions
4
.vscode/settings.json
vendored
4
.vscode/settings.json
vendored
|
|
@ -29,6 +29,8 @@
|
||||||
"ETATS",
|
"ETATS",
|
||||||
"etendu",
|
"etendu",
|
||||||
"exts",
|
"exts",
|
||||||
|
"Fenetre",
|
||||||
|
"FENETRE",
|
||||||
"formatte",
|
"formatte",
|
||||||
"generique",
|
"generique",
|
||||||
"geometricprecision",
|
"geometricprecision",
|
||||||
|
|
@ -44,12 +46,14 @@
|
||||||
"multiformats",
|
"multiformats",
|
||||||
"paypal",
|
"paypal",
|
||||||
"phpstan",
|
"phpstan",
|
||||||
|
"Planifiee",
|
||||||
"prenom",
|
"prenom",
|
||||||
"presentes",
|
"presentes",
|
||||||
"problemes",
|
"problemes",
|
||||||
"Proprietes",
|
"Proprietes",
|
||||||
"rafraichissement",
|
"rafraichissement",
|
||||||
"rapprochee",
|
"rapprochee",
|
||||||
|
"recalcul",
|
||||||
"reponse",
|
"reponse",
|
||||||
"requete",
|
"requete",
|
||||||
"resultat",
|
"resultat",
|
||||||
|
|
|
||||||
3
TODO.md
3
TODO.md
|
|
@ -3,14 +3,13 @@
|
||||||
- [-] Bouton « Réinitialiser » pour les Adresses
|
- [-] Bouton « Réinitialiser » pour les Adresses
|
||||||
- Emails
|
- Emails
|
||||||
- Gestion des erreurs sur le Panier
|
- Gestion des erreurs sur le Panier
|
||||||
- Ajouter une flèche pour revenir en haut de la page
|
|
||||||
- Menu Mobile
|
- Menu Mobile
|
||||||
- Reprendre pour suivre la maquette initiale
|
- Reprendre pour suivre la maquette initiale
|
||||||
- PayPal à faire
|
- PayPal à faire
|
||||||
- Styles pour les focus à faire
|
- Styles pour les focus à faire
|
||||||
- Boutons
|
- Boutons
|
||||||
- Champs
|
- Champs
|
||||||
- Envoyer des emails aux deux clients
|
- Reporter toutes les erreurs
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
|
||||||
89
composer.lock
generated
89
composer.lock
generated
|
|
@ -2288,16 +2288,16 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/clock",
|
"name": "symfony/clock",
|
||||||
"version": "v7.1.6",
|
"version": "v7.2.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/clock.git",
|
"url": "https://github.com/symfony/clock.git",
|
||||||
"reference": "97bebc53548684c17ed696bc8af016880f0f098d"
|
"reference": "b81435fbd6648ea425d1ee96a2d8e68f4ceacd24"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/clock/zipball/97bebc53548684c17ed696bc8af016880f0f098d",
|
"url": "https://api.github.com/repos/symfony/clock/zipball/b81435fbd6648ea425d1ee96a2d8e68f4ceacd24",
|
||||||
"reference": "97bebc53548684c17ed696bc8af016880f0f098d",
|
"reference": "b81435fbd6648ea425d1ee96a2d8e68f4ceacd24",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
|
|
@ -2342,7 +2342,7 @@
|
||||||
"time"
|
"time"
|
||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/clock/tree/v7.1.6"
|
"source": "https://github.com/symfony/clock/tree/v7.2.0"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
|
|
@ -2358,7 +2358,7 @@
|
||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2024-09-25T14:20:29+00:00"
|
"time": "2024-09-25T14:21:43+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/deprecation-contracts",
|
"name": "symfony/deprecation-contracts",
|
||||||
|
|
@ -2899,20 +2899,21 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/translation",
|
"name": "symfony/translation",
|
||||||
"version": "v7.1.6",
|
"version": "v7.2.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/translation.git",
|
"url": "https://github.com/symfony/translation.git",
|
||||||
"reference": "b9f72ab14efdb6b772f85041fa12f820dee8d55f"
|
"reference": "dc89e16b44048ceecc879054e5b7f38326ab6cc5"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/translation/zipball/b9f72ab14efdb6b772f85041fa12f820dee8d55f",
|
"url": "https://api.github.com/repos/symfony/translation/zipball/dc89e16b44048ceecc879054e5b7f38326ab6cc5",
|
||||||
"reference": "b9f72ab14efdb6b772f85041fa12f820dee8d55f",
|
"reference": "dc89e16b44048ceecc879054e5b7f38326ab6cc5",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"php": ">=8.2",
|
"php": ">=8.2",
|
||||||
|
"symfony/deprecation-contracts": "^2.5|^3",
|
||||||
"symfony/polyfill-mbstring": "~1.0",
|
"symfony/polyfill-mbstring": "~1.0",
|
||||||
"symfony/translation-contracts": "^2.5|^3.0"
|
"symfony/translation-contracts": "^2.5|^3.0"
|
||||||
},
|
},
|
||||||
|
|
@ -2973,7 +2974,7 @@
|
||||||
"description": "Provides tools to internationalize your application",
|
"description": "Provides tools to internationalize your application",
|
||||||
"homepage": "https://symfony.com",
|
"homepage": "https://symfony.com",
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/translation/tree/v7.1.6"
|
"source": "https://github.com/symfony/translation/tree/v7.2.0"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
|
|
@ -2989,7 +2990,7 @@
|
||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2024-09-28T12:35:13+00:00"
|
"time": "2024-11-12T20:47:56+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/translation-contracts",
|
"name": "symfony/translation-contracts",
|
||||||
|
|
@ -3071,16 +3072,16 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/uid",
|
"name": "symfony/uid",
|
||||||
"version": "v7.1.6",
|
"version": "v7.2.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/uid.git",
|
"url": "https://github.com/symfony/uid.git",
|
||||||
"reference": "65befb3bb2d503bbffbd08c815aa38b472999917"
|
"reference": "2d294d0c48df244c71c105a169d0190bfb080426"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/uid/zipball/65befb3bb2d503bbffbd08c815aa38b472999917",
|
"url": "https://api.github.com/repos/symfony/uid/zipball/2d294d0c48df244c71c105a169d0190bfb080426",
|
||||||
"reference": "65befb3bb2d503bbffbd08c815aa38b472999917",
|
"reference": "2d294d0c48df244c71c105a169d0190bfb080426",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
|
|
@ -3125,7 +3126,7 @@
|
||||||
"uuid"
|
"uuid"
|
||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/uid/tree/v7.1.6"
|
"source": "https://github.com/symfony/uid/tree/v7.2.0"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
|
|
@ -3141,7 +3142,7 @@
|
||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2024-09-25T14:20:29+00:00"
|
"time": "2024-09-25T14:21:43+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "timber/timber",
|
"name": "timber/timber",
|
||||||
|
|
@ -3247,16 +3248,16 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "twig/twig",
|
"name": "twig/twig",
|
||||||
"version": "v3.15.0",
|
"version": "v3.16.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/twigphp/Twig.git",
|
"url": "https://github.com/twigphp/Twig.git",
|
||||||
"reference": "2d5b3964cc21d0188633d7ddce732dc8e874db02"
|
"reference": "475ad2dc97d65d8631393e721e7e44fb544f0561"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/twigphp/Twig/zipball/2d5b3964cc21d0188633d7ddce732dc8e874db02",
|
"url": "https://api.github.com/repos/twigphp/Twig/zipball/475ad2dc97d65d8631393e721e7e44fb544f0561",
|
||||||
"reference": "2d5b3964cc21d0188633d7ddce732dc8e874db02",
|
"reference": "475ad2dc97d65d8631393e721e7e44fb544f0561",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
|
|
@ -3267,6 +3268,7 @@
|
||||||
"symfony/polyfill-php81": "^1.29"
|
"symfony/polyfill-php81": "^1.29"
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
|
"phpstan/phpstan": "^2.0",
|
||||||
"psr/container": "^1.0|^2.0",
|
"psr/container": "^1.0|^2.0",
|
||||||
"symfony/phpunit-bridge": "^5.4.9|^6.4|^7.0"
|
"symfony/phpunit-bridge": "^5.4.9|^6.4|^7.0"
|
||||||
},
|
},
|
||||||
|
|
@ -3310,7 +3312,7 @@
|
||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"issues": "https://github.com/twigphp/Twig/issues",
|
"issues": "https://github.com/twigphp/Twig/issues",
|
||||||
"source": "https://github.com/twigphp/Twig/tree/v3.15.0"
|
"source": "https://github.com/twigphp/Twig/tree/v3.16.0"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
|
|
@ -3322,7 +3324,7 @@
|
||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2024-11-17T15:59:19+00:00"
|
"time": "2024-11-29T08:27:05+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "vlucas/phpdotenv",
|
"name": "vlucas/phpdotenv",
|
||||||
|
|
@ -5889,16 +5891,16 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/console",
|
"name": "symfony/console",
|
||||||
"version": "v7.1.8",
|
"version": "v7.2.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/console.git",
|
"url": "https://github.com/symfony/console.git",
|
||||||
"reference": "ff04e5b5ba043d2badfb308197b9e6b42883fcd5"
|
"reference": "23c8aae6d764e2bae02d2a99f7532a7f6ed619cf"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/console/zipball/ff04e5b5ba043d2badfb308197b9e6b42883fcd5",
|
"url": "https://api.github.com/repos/symfony/console/zipball/23c8aae6d764e2bae02d2a99f7532a7f6ed619cf",
|
||||||
"reference": "ff04e5b5ba043d2badfb308197b9e6b42883fcd5",
|
"reference": "23c8aae6d764e2bae02d2a99f7532a7f6ed619cf",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
|
|
@ -5962,7 +5964,7 @@
|
||||||
"terminal"
|
"terminal"
|
||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/console/tree/v7.1.8"
|
"source": "https://github.com/symfony/console/tree/v7.2.0"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
|
|
@ -5978,20 +5980,20 @@
|
||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2024-11-06T14:23:19+00:00"
|
"time": "2024-11-06T14:24:19+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/filesystem",
|
"name": "symfony/filesystem",
|
||||||
"version": "v7.1.6",
|
"version": "v7.2.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/filesystem.git",
|
"url": "https://github.com/symfony/filesystem.git",
|
||||||
"reference": "c835867b3c62bb05c7fe3d637c871c7ae52024d4"
|
"reference": "b8dce482de9d7c9fe2891155035a7248ab5c7fdb"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/filesystem/zipball/c835867b3c62bb05c7fe3d637c871c7ae52024d4",
|
"url": "https://api.github.com/repos/symfony/filesystem/zipball/b8dce482de9d7c9fe2891155035a7248ab5c7fdb",
|
||||||
"reference": "c835867b3c62bb05c7fe3d637c871c7ae52024d4",
|
"reference": "b8dce482de9d7c9fe2891155035a7248ab5c7fdb",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
|
|
@ -6028,7 +6030,7 @@
|
||||||
"description": "Provides basic utilities for the filesystem",
|
"description": "Provides basic utilities for the filesystem",
|
||||||
"homepage": "https://symfony.com",
|
"homepage": "https://symfony.com",
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/filesystem/tree/v7.1.6"
|
"source": "https://github.com/symfony/filesystem/tree/v7.2.0"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
|
|
@ -6044,7 +6046,7 @@
|
||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2024-10-25T15:11:02+00:00"
|
"time": "2024-10-25T15:15:23+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/polyfill-intl-grapheme",
|
"name": "symfony/polyfill-intl-grapheme",
|
||||||
|
|
@ -6290,16 +6292,16 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/string",
|
"name": "symfony/string",
|
||||||
"version": "v7.1.8",
|
"version": "v7.2.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/string.git",
|
"url": "https://github.com/symfony/string.git",
|
||||||
"reference": "591ebd41565f356fcd8b090fe64dbb5878f50281"
|
"reference": "446e0d146f991dde3e73f45f2c97a9faad773c82"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/string/zipball/591ebd41565f356fcd8b090fe64dbb5878f50281",
|
"url": "https://api.github.com/repos/symfony/string/zipball/446e0d146f991dde3e73f45f2c97a9faad773c82",
|
||||||
"reference": "591ebd41565f356fcd8b090fe64dbb5878f50281",
|
"reference": "446e0d146f991dde3e73f45f2c97a9faad773c82",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
|
|
@ -6357,7 +6359,7 @@
|
||||||
"utf8"
|
"utf8"
|
||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/string/tree/v7.1.8"
|
"source": "https://github.com/symfony/string/tree/v7.2.0"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
|
|
@ -6373,7 +6375,7 @@
|
||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2024-11-13T13:31:21+00:00"
|
"time": "2024-11-13T13:31:26+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "szepeviktor/phpstan-wordpress",
|
"name": "szepeviktor/phpstan-wordpress",
|
||||||
|
|
@ -6406,6 +6408,7 @@
|
||||||
"suggest": {
|
"suggest": {
|
||||||
"swissspidy/phpstan-no-private": "Detect usage of internal core functions, classes and methods"
|
"swissspidy/phpstan-no-private": "Detect usage of internal core functions, classes and methods"
|
||||||
},
|
},
|
||||||
|
"default-branch": true,
|
||||||
"type": "phpstan-extension",
|
"type": "phpstan-extension",
|
||||||
"extra": {
|
"extra": {
|
||||||
"phpstan": {
|
"phpstan": {
|
||||||
|
|
@ -6433,7 +6436,7 @@
|
||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"issues": "https://github.com/szepeviktor/phpstan-wordpress/issues",
|
"issues": "https://github.com/szepeviktor/phpstan-wordpress/issues",
|
||||||
"source": "https://github.com/szepeviktor/phpstan-wordpress/tree/2.x"
|
"source": "https://github.com/szepeviktor/phpstan-wordpress/tree/v2.0.0"
|
||||||
},
|
},
|
||||||
"time": "2024-11-17T13:12:31+00:00"
|
"time": "2024-11-17T13:12:31+00:00"
|
||||||
},
|
},
|
||||||
|
|
|
||||||
102
pnpm-lock.yaml
generated
102
pnpm-lock.yaml
generated
|
|
@ -65,13 +65,13 @@ importers:
|
||||||
version: 4.24.2
|
version: 4.24.2
|
||||||
eslint:
|
eslint:
|
||||||
specifier: ^9.15.0
|
specifier: ^9.15.0
|
||||||
version: 9.15.0(jiti@2.4.0)
|
version: 9.15.0(jiti@2.4.1)
|
||||||
eslint-plugin-oxlint:
|
eslint-plugin-oxlint:
|
||||||
specifier: ^0.13.2
|
specifier: ^0.13.2
|
||||||
version: 0.13.2
|
version: 0.13.2
|
||||||
eslint-plugin-perfectionist:
|
eslint-plugin-perfectionist:
|
||||||
specifier: ^4.1.2
|
specifier: ^4.1.2
|
||||||
version: 4.1.2(eslint@9.15.0(jiti@2.4.0))(typescript@5.8.0-dev.20241122)
|
version: 4.1.2(eslint@9.15.0(jiti@2.4.1))(typescript@5.8.0-dev.20241122)
|
||||||
fdir:
|
fdir:
|
||||||
specifier: ^6.4.2
|
specifier: ^6.4.2
|
||||||
version: 6.4.2(picomatch@4.0.2)
|
version: 6.4.2(picomatch@4.0.2)
|
||||||
|
|
@ -122,22 +122,22 @@ importers:
|
||||||
version: 5.8.0-dev.20241122
|
version: 5.8.0-dev.20241122
|
||||||
typescript-eslint:
|
typescript-eslint:
|
||||||
specifier: ^8.16.0
|
specifier: ^8.16.0
|
||||||
version: 8.16.0(eslint@9.15.0(jiti@2.4.0))(typescript@5.8.0-dev.20241122)
|
version: 8.16.0(eslint@9.15.0(jiti@2.4.1))(typescript@5.8.0-dev.20241122)
|
||||||
vite:
|
vite:
|
||||||
specifier: ^6.0.1
|
specifier: ^6.0.1
|
||||||
version: 6.0.1(@types/node@22.10.1)(jiti@2.4.0)(sass-embedded@1.81.0)(sass@1.80.6)
|
version: 6.0.1(@types/node@22.10.1)(jiti@2.4.1)(sass-embedded@1.81.0)(sass@1.80.6)
|
||||||
vite-plugin-manifest-sri:
|
vite-plugin-manifest-sri:
|
||||||
specifier: ^0.2.0
|
specifier: ^0.2.0
|
||||||
version: 0.2.0
|
version: 0.2.0
|
||||||
vite-plugin-node-polyfills:
|
vite-plugin-node-polyfills:
|
||||||
specifier: ^0.22.0
|
specifier: ^0.22.0
|
||||||
version: 0.22.0(rollup@4.27.4)(vite@6.0.1(@types/node@22.10.1)(jiti@2.4.0)(sass-embedded@1.81.0)(sass@1.80.6))
|
version: 0.22.0(rollup@4.27.4)(vite@6.0.1(@types/node@22.10.1)(jiti@2.4.1)(sass-embedded@1.81.0)(sass@1.80.6))
|
||||||
vite-plugin-valibot-env:
|
vite-plugin-valibot-env:
|
||||||
specifier: ^0.9.1
|
specifier: ^0.9.1
|
||||||
version: 0.9.1(valibot@1.0.0-beta.9(typescript@5.8.0-dev.20241122))(vite@6.0.1(@types/node@22.10.1)(jiti@2.4.0)(sass-embedded@1.81.0)(sass@1.80.6))
|
version: 0.9.1(valibot@1.0.0-beta.9(typescript@5.8.0-dev.20241122))(vite@6.0.1(@types/node@22.10.1)(jiti@2.4.1)(sass-embedded@1.81.0)(sass@1.80.6))
|
||||||
vite-tsconfig-paths:
|
vite-tsconfig-paths:
|
||||||
specifier: ^5.1.3
|
specifier: ^5.1.3
|
||||||
version: 5.1.3(typescript@5.8.0-dev.20241122)(vite@6.0.1(@types/node@22.10.1)(jiti@2.4.0)(sass-embedded@1.81.0)(sass@1.80.6))
|
version: 5.1.3(typescript@5.8.0-dev.20241122)(vite@6.0.1(@types/node@22.10.1)(jiti@2.4.1)(sass-embedded@1.81.0)(sass@1.80.6))
|
||||||
wp-types:
|
wp-types:
|
||||||
specifier: ^4.67.0
|
specifier: ^4.67.0
|
||||||
version: 4.67.0
|
version: 4.67.0
|
||||||
|
|
@ -1905,8 +1905,8 @@ packages:
|
||||||
resolution: {integrity: sha512-u4sej9B1LPSxTGKB/HiuzvEQnXH0ECYkSVQU39koSwmFAxhlEAFl9RdTvLv4TOTQUgBS5O3O5fwUxk6byBZ+IQ==}
|
resolution: {integrity: sha512-u4sej9B1LPSxTGKB/HiuzvEQnXH0ECYkSVQU39koSwmFAxhlEAFl9RdTvLv4TOTQUgBS5O3O5fwUxk6byBZ+IQ==}
|
||||||
engines: {node: '>=10'}
|
engines: {node: '>=10'}
|
||||||
|
|
||||||
jiti@2.4.0:
|
jiti@2.4.1:
|
||||||
resolution: {integrity: sha512-H5UpaUI+aHOqZXlYOaFP/8AzKsg+guWu+Pr3Y8i7+Y3zr1aXAvCvTAQ1RxSc6oVD8R8c7brgNtTVP91E7upH/g==}
|
resolution: {integrity: sha512-yPBThwecp1wS9DmoA4x4KR2h3QoslacnDR8ypuFM962kI4/456Iy1oHx2RAgh4jfZNdn0bctsdadceiBUgpU1g==}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
|
|
||||||
js-tokens@4.0.0:
|
js-tokens@4.0.0:
|
||||||
|
|
@ -2771,8 +2771,8 @@ packages:
|
||||||
resolution: {integrity: sha512-lbDrTLVsHhOMljPscd0yitpozq7Ga2M5Cvez5AjGg8GASBjtt6iERCAJ93yommPmz62fb45oFIXHEZ3u9bfJEA==}
|
resolution: {integrity: sha512-lbDrTLVsHhOMljPscd0yitpozq7Ga2M5Cvez5AjGg8GASBjtt6iERCAJ93yommPmz62fb45oFIXHEZ3u9bfJEA==}
|
||||||
engines: {node: '>=14.16'}
|
engines: {node: '>=14.16'}
|
||||||
|
|
||||||
ts-api-utils@1.4.2:
|
ts-api-utils@1.4.3:
|
||||||
resolution: {integrity: sha512-ZF5gQIQa/UmzfvxbHZI3JXN0/Jt+vnAfAviNRAMc491laiK6YCLpCW9ft8oaCRFOTxCZtUTE6XB0ZQAe3olntw==}
|
resolution: {integrity: sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw==}
|
||||||
engines: {node: '>=16'}
|
engines: {node: '>=16'}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
typescript: '>=4.2.0'
|
typescript: '>=4.2.0'
|
||||||
|
|
@ -3183,9 +3183,9 @@ snapshots:
|
||||||
'@esbuild/win32-x64@0.24.0':
|
'@esbuild/win32-x64@0.24.0':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@eslint-community/eslint-utils@4.4.1(eslint@9.15.0(jiti@2.4.0))':
|
'@eslint-community/eslint-utils@4.4.1(eslint@9.15.0(jiti@2.4.1))':
|
||||||
dependencies:
|
dependencies:
|
||||||
eslint: 9.15.0(jiti@2.4.0)
|
eslint: 9.15.0(jiti@2.4.1)
|
||||||
eslint-visitor-keys: 3.4.3
|
eslint-visitor-keys: 3.4.3
|
||||||
|
|
||||||
'@eslint-community/regexpp@4.12.1': {}
|
'@eslint-community/regexpp@4.12.1': {}
|
||||||
|
|
@ -3637,32 +3637,32 @@ snapshots:
|
||||||
dependencies:
|
dependencies:
|
||||||
undici-types: 6.20.0
|
undici-types: 6.20.0
|
||||||
|
|
||||||
'@typescript-eslint/eslint-plugin@8.16.0(@typescript-eslint/parser@8.16.0(eslint@9.15.0(jiti@2.4.0))(typescript@5.8.0-dev.20241122))(eslint@9.15.0(jiti@2.4.0))(typescript@5.8.0-dev.20241122)':
|
'@typescript-eslint/eslint-plugin@8.16.0(@typescript-eslint/parser@8.16.0(eslint@9.15.0(jiti@2.4.1))(typescript@5.8.0-dev.20241122))(eslint@9.15.0(jiti@2.4.1))(typescript@5.8.0-dev.20241122)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@eslint-community/regexpp': 4.12.1
|
'@eslint-community/regexpp': 4.12.1
|
||||||
'@typescript-eslint/parser': 8.16.0(eslint@9.15.0(jiti@2.4.0))(typescript@5.8.0-dev.20241122)
|
'@typescript-eslint/parser': 8.16.0(eslint@9.15.0(jiti@2.4.1))(typescript@5.8.0-dev.20241122)
|
||||||
'@typescript-eslint/scope-manager': 8.16.0
|
'@typescript-eslint/scope-manager': 8.16.0
|
||||||
'@typescript-eslint/type-utils': 8.16.0(eslint@9.15.0(jiti@2.4.0))(typescript@5.8.0-dev.20241122)
|
'@typescript-eslint/type-utils': 8.16.0(eslint@9.15.0(jiti@2.4.1))(typescript@5.8.0-dev.20241122)
|
||||||
'@typescript-eslint/utils': 8.16.0(eslint@9.15.0(jiti@2.4.0))(typescript@5.8.0-dev.20241122)
|
'@typescript-eslint/utils': 8.16.0(eslint@9.15.0(jiti@2.4.1))(typescript@5.8.0-dev.20241122)
|
||||||
'@typescript-eslint/visitor-keys': 8.16.0
|
'@typescript-eslint/visitor-keys': 8.16.0
|
||||||
eslint: 9.15.0(jiti@2.4.0)
|
eslint: 9.15.0(jiti@2.4.1)
|
||||||
graphemer: 1.4.0
|
graphemer: 1.4.0
|
||||||
ignore: 5.3.2
|
ignore: 5.3.2
|
||||||
natural-compare: 1.4.0
|
natural-compare: 1.4.0
|
||||||
ts-api-utils: 1.4.2(typescript@5.8.0-dev.20241122)
|
ts-api-utils: 1.4.3(typescript@5.8.0-dev.20241122)
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
typescript: 5.8.0-dev.20241122
|
typescript: 5.8.0-dev.20241122
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
'@typescript-eslint/parser@8.16.0(eslint@9.15.0(jiti@2.4.0))(typescript@5.8.0-dev.20241122)':
|
'@typescript-eslint/parser@8.16.0(eslint@9.15.0(jiti@2.4.1))(typescript@5.8.0-dev.20241122)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@typescript-eslint/scope-manager': 8.16.0
|
'@typescript-eslint/scope-manager': 8.16.0
|
||||||
'@typescript-eslint/types': 8.16.0
|
'@typescript-eslint/types': 8.16.0
|
||||||
'@typescript-eslint/typescript-estree': 8.16.0(typescript@5.8.0-dev.20241122)
|
'@typescript-eslint/typescript-estree': 8.16.0(typescript@5.8.0-dev.20241122)
|
||||||
'@typescript-eslint/visitor-keys': 8.16.0
|
'@typescript-eslint/visitor-keys': 8.16.0
|
||||||
debug: 4.3.7
|
debug: 4.3.7
|
||||||
eslint: 9.15.0(jiti@2.4.0)
|
eslint: 9.15.0(jiti@2.4.1)
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
typescript: 5.8.0-dev.20241122
|
typescript: 5.8.0-dev.20241122
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
|
|
@ -3673,13 +3673,13 @@ snapshots:
|
||||||
'@typescript-eslint/types': 8.16.0
|
'@typescript-eslint/types': 8.16.0
|
||||||
'@typescript-eslint/visitor-keys': 8.16.0
|
'@typescript-eslint/visitor-keys': 8.16.0
|
||||||
|
|
||||||
'@typescript-eslint/type-utils@8.16.0(eslint@9.15.0(jiti@2.4.0))(typescript@5.8.0-dev.20241122)':
|
'@typescript-eslint/type-utils@8.16.0(eslint@9.15.0(jiti@2.4.1))(typescript@5.8.0-dev.20241122)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@typescript-eslint/typescript-estree': 8.16.0(typescript@5.8.0-dev.20241122)
|
'@typescript-eslint/typescript-estree': 8.16.0(typescript@5.8.0-dev.20241122)
|
||||||
'@typescript-eslint/utils': 8.16.0(eslint@9.15.0(jiti@2.4.0))(typescript@5.8.0-dev.20241122)
|
'@typescript-eslint/utils': 8.16.0(eslint@9.15.0(jiti@2.4.1))(typescript@5.8.0-dev.20241122)
|
||||||
debug: 4.3.7
|
debug: 4.3.7
|
||||||
eslint: 9.15.0(jiti@2.4.0)
|
eslint: 9.15.0(jiti@2.4.1)
|
||||||
ts-api-utils: 1.4.2(typescript@5.8.0-dev.20241122)
|
ts-api-utils: 1.4.3(typescript@5.8.0-dev.20241122)
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
typescript: 5.8.0-dev.20241122
|
typescript: 5.8.0-dev.20241122
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
|
|
@ -3696,19 +3696,19 @@ snapshots:
|
||||||
is-glob: 4.0.3
|
is-glob: 4.0.3
|
||||||
minimatch: 9.0.5
|
minimatch: 9.0.5
|
||||||
semver: 7.6.3
|
semver: 7.6.3
|
||||||
ts-api-utils: 1.4.2(typescript@5.8.0-dev.20241122)
|
ts-api-utils: 1.4.3(typescript@5.8.0-dev.20241122)
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
typescript: 5.8.0-dev.20241122
|
typescript: 5.8.0-dev.20241122
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
'@typescript-eslint/utils@8.16.0(eslint@9.15.0(jiti@2.4.0))(typescript@5.8.0-dev.20241122)':
|
'@typescript-eslint/utils@8.16.0(eslint@9.15.0(jiti@2.4.1))(typescript@5.8.0-dev.20241122)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@eslint-community/eslint-utils': 4.4.1(eslint@9.15.0(jiti@2.4.0))
|
'@eslint-community/eslint-utils': 4.4.1(eslint@9.15.0(jiti@2.4.1))
|
||||||
'@typescript-eslint/scope-manager': 8.16.0
|
'@typescript-eslint/scope-manager': 8.16.0
|
||||||
'@typescript-eslint/types': 8.16.0
|
'@typescript-eslint/types': 8.16.0
|
||||||
'@typescript-eslint/typescript-estree': 8.16.0(typescript@5.8.0-dev.20241122)
|
'@typescript-eslint/typescript-estree': 8.16.0(typescript@5.8.0-dev.20241122)
|
||||||
eslint: 9.15.0(jiti@2.4.0)
|
eslint: 9.15.0(jiti@2.4.1)
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
typescript: 5.8.0-dev.20241122
|
typescript: 5.8.0-dev.20241122
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
|
|
@ -4244,11 +4244,11 @@ snapshots:
|
||||||
dependencies:
|
dependencies:
|
||||||
jsonc-parser: 3.3.1
|
jsonc-parser: 3.3.1
|
||||||
|
|
||||||
eslint-plugin-perfectionist@4.1.2(eslint@9.15.0(jiti@2.4.0))(typescript@5.8.0-dev.20241122):
|
eslint-plugin-perfectionist@4.1.2(eslint@9.15.0(jiti@2.4.1))(typescript@5.8.0-dev.20241122):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@typescript-eslint/types': 8.16.0
|
'@typescript-eslint/types': 8.16.0
|
||||||
'@typescript-eslint/utils': 8.16.0(eslint@9.15.0(jiti@2.4.0))(typescript@5.8.0-dev.20241122)
|
'@typescript-eslint/utils': 8.16.0(eslint@9.15.0(jiti@2.4.1))(typescript@5.8.0-dev.20241122)
|
||||||
eslint: 9.15.0(jiti@2.4.0)
|
eslint: 9.15.0(jiti@2.4.1)
|
||||||
natural-orderby: 5.0.0
|
natural-orderby: 5.0.0
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
@ -4263,9 +4263,9 @@ snapshots:
|
||||||
|
|
||||||
eslint-visitor-keys@4.2.0: {}
|
eslint-visitor-keys@4.2.0: {}
|
||||||
|
|
||||||
eslint@9.15.0(jiti@2.4.0):
|
eslint@9.15.0(jiti@2.4.1):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@eslint-community/eslint-utils': 4.4.1(eslint@9.15.0(jiti@2.4.0))
|
'@eslint-community/eslint-utils': 4.4.1(eslint@9.15.0(jiti@2.4.1))
|
||||||
'@eslint-community/regexpp': 4.12.1
|
'@eslint-community/regexpp': 4.12.1
|
||||||
'@eslint/config-array': 0.19.0
|
'@eslint/config-array': 0.19.0
|
||||||
'@eslint/core': 0.9.0
|
'@eslint/core': 0.9.0
|
||||||
|
|
@ -4300,7 +4300,7 @@ snapshots:
|
||||||
natural-compare: 1.4.0
|
natural-compare: 1.4.0
|
||||||
optionator: 0.9.4
|
optionator: 0.9.4
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
jiti: 2.4.0
|
jiti: 2.4.1
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
|
|
@ -4638,7 +4638,7 @@ snapshots:
|
||||||
|
|
||||||
isomorphic-timers-promises@1.0.1: {}
|
isomorphic-timers-promises@1.0.1: {}
|
||||||
|
|
||||||
jiti@2.4.0: {}
|
jiti@2.4.1: {}
|
||||||
|
|
||||||
js-tokens@4.0.0: {}
|
js-tokens@4.0.0: {}
|
||||||
|
|
||||||
|
|
@ -4674,7 +4674,7 @@ snapshots:
|
||||||
easy-table: 1.2.0
|
easy-table: 1.2.0
|
||||||
enhanced-resolve: 5.17.1
|
enhanced-resolve: 5.17.1
|
||||||
fast-glob: 3.3.2
|
fast-glob: 3.3.2
|
||||||
jiti: 2.4.0
|
jiti: 2.4.1
|
||||||
js-yaml: 4.1.0
|
js-yaml: 4.1.0
|
||||||
minimist: 1.2.8
|
minimist: 1.2.8
|
||||||
picocolors: 1.1.1
|
picocolors: 1.1.1
|
||||||
|
|
@ -5517,7 +5517,7 @@ snapshots:
|
||||||
'@tokenizer/token': 0.3.0
|
'@tokenizer/token': 0.3.0
|
||||||
ieee754: 1.2.1
|
ieee754: 1.2.1
|
||||||
|
|
||||||
ts-api-utils@1.4.2(typescript@5.8.0-dev.20241122):
|
ts-api-utils@1.4.3(typescript@5.8.0-dev.20241122):
|
||||||
dependencies:
|
dependencies:
|
||||||
typescript: 5.8.0-dev.20241122
|
typescript: 5.8.0-dev.20241122
|
||||||
|
|
||||||
|
|
@ -5535,12 +5535,12 @@ snapshots:
|
||||||
dependencies:
|
dependencies:
|
||||||
prelude-ls: 1.2.1
|
prelude-ls: 1.2.1
|
||||||
|
|
||||||
typescript-eslint@8.16.0(eslint@9.15.0(jiti@2.4.0))(typescript@5.8.0-dev.20241122):
|
typescript-eslint@8.16.0(eslint@9.15.0(jiti@2.4.1))(typescript@5.8.0-dev.20241122):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@typescript-eslint/eslint-plugin': 8.16.0(@typescript-eslint/parser@8.16.0(eslint@9.15.0(jiti@2.4.0))(typescript@5.8.0-dev.20241122))(eslint@9.15.0(jiti@2.4.0))(typescript@5.8.0-dev.20241122)
|
'@typescript-eslint/eslint-plugin': 8.16.0(@typescript-eslint/parser@8.16.0(eslint@9.15.0(jiti@2.4.1))(typescript@5.8.0-dev.20241122))(eslint@9.15.0(jiti@2.4.1))(typescript@5.8.0-dev.20241122)
|
||||||
'@typescript-eslint/parser': 8.16.0(eslint@9.15.0(jiti@2.4.0))(typescript@5.8.0-dev.20241122)
|
'@typescript-eslint/parser': 8.16.0(eslint@9.15.0(jiti@2.4.1))(typescript@5.8.0-dev.20241122)
|
||||||
'@typescript-eslint/utils': 8.16.0(eslint@9.15.0(jiti@2.4.0))(typescript@5.8.0-dev.20241122)
|
'@typescript-eslint/utils': 8.16.0(eslint@9.15.0(jiti@2.4.1))(typescript@5.8.0-dev.20241122)
|
||||||
eslint: 9.15.0(jiti@2.4.0)
|
eslint: 9.15.0(jiti@2.4.1)
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
typescript: 5.8.0-dev.20241122
|
typescript: 5.8.0-dev.20241122
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
|
|
@ -5592,33 +5592,33 @@ snapshots:
|
||||||
|
|
||||||
vite-plugin-manifest-sri@0.2.0: {}
|
vite-plugin-manifest-sri@0.2.0: {}
|
||||||
|
|
||||||
vite-plugin-node-polyfills@0.22.0(rollup@4.27.4)(vite@6.0.1(@types/node@22.10.1)(jiti@2.4.0)(sass-embedded@1.81.0)(sass@1.80.6)):
|
vite-plugin-node-polyfills@0.22.0(rollup@4.27.4)(vite@6.0.1(@types/node@22.10.1)(jiti@2.4.1)(sass-embedded@1.81.0)(sass@1.80.6)):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@rollup/plugin-inject': 5.0.5(rollup@4.27.4)
|
'@rollup/plugin-inject': 5.0.5(rollup@4.27.4)
|
||||||
node-stdlib-browser: 1.3.0
|
node-stdlib-browser: 1.3.0
|
||||||
vite: 6.0.1(@types/node@22.10.1)(jiti@2.4.0)(sass-embedded@1.81.0)(sass@1.80.6)
|
vite: 6.0.1(@types/node@22.10.1)(jiti@2.4.1)(sass-embedded@1.81.0)(sass@1.80.6)
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- rollup
|
- rollup
|
||||||
|
|
||||||
vite-plugin-valibot-env@0.9.1(valibot@1.0.0-beta.9(typescript@5.8.0-dev.20241122))(vite@6.0.1(@types/node@22.10.1)(jiti@2.4.0)(sass-embedded@1.81.0)(sass@1.80.6)):
|
vite-plugin-valibot-env@0.9.1(valibot@1.0.0-beta.9(typescript@5.8.0-dev.20241122))(vite@6.0.1(@types/node@22.10.1)(jiti@2.4.1)(sass-embedded@1.81.0)(sass@1.80.6)):
|
||||||
dependencies:
|
dependencies:
|
||||||
kleur: 4.1.5
|
kleur: 4.1.5
|
||||||
log-symbols: 7.0.0
|
log-symbols: 7.0.0
|
||||||
valibot: 1.0.0-beta.9(typescript@5.8.0-dev.20241122)
|
valibot: 1.0.0-beta.9(typescript@5.8.0-dev.20241122)
|
||||||
vite: 6.0.1(@types/node@22.10.1)(jiti@2.4.0)(sass-embedded@1.81.0)(sass@1.80.6)
|
vite: 6.0.1(@types/node@22.10.1)(jiti@2.4.1)(sass-embedded@1.81.0)(sass@1.80.6)
|
||||||
|
|
||||||
vite-tsconfig-paths@5.1.3(typescript@5.8.0-dev.20241122)(vite@6.0.1(@types/node@22.10.1)(jiti@2.4.0)(sass-embedded@1.81.0)(sass@1.80.6)):
|
vite-tsconfig-paths@5.1.3(typescript@5.8.0-dev.20241122)(vite@6.0.1(@types/node@22.10.1)(jiti@2.4.1)(sass-embedded@1.81.0)(sass@1.80.6)):
|
||||||
dependencies:
|
dependencies:
|
||||||
debug: 4.3.7
|
debug: 4.3.7
|
||||||
globrex: 0.1.2
|
globrex: 0.1.2
|
||||||
tsconfck: 3.1.4(typescript@5.8.0-dev.20241122)
|
tsconfck: 3.1.4(typescript@5.8.0-dev.20241122)
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
vite: 6.0.1(@types/node@22.10.1)(jiti@2.4.0)(sass-embedded@1.81.0)(sass@1.80.6)
|
vite: 6.0.1(@types/node@22.10.1)(jiti@2.4.1)(sass-embedded@1.81.0)(sass@1.80.6)
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
- typescript
|
- typescript
|
||||||
|
|
||||||
vite@6.0.1(@types/node@22.10.1)(jiti@2.4.0)(sass-embedded@1.81.0)(sass@1.80.6):
|
vite@6.0.1(@types/node@22.10.1)(jiti@2.4.1)(sass-embedded@1.81.0)(sass@1.80.6):
|
||||||
dependencies:
|
dependencies:
|
||||||
esbuild: 0.24.0
|
esbuild: 0.24.0
|
||||||
postcss: 8.4.49
|
postcss: 8.4.49
|
||||||
|
|
@ -5626,7 +5626,7 @@ snapshots:
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@types/node': 22.10.1
|
'@types/node': 22.10.1
|
||||||
fsevents: 2.3.3
|
fsevents: 2.3.3
|
||||||
jiti: 2.4.0
|
jiti: 2.4.1
|
||||||
sass: 1.80.6
|
sass: 1.80.6
|
||||||
sass-embedded: 1.81.0
|
sass-embedded: 1.81.0
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -233,7 +233,7 @@ button.bouton-blanc-sur-noir {
|
||||||
button.bouton-retour-haut {
|
button.bouton-retour-haut {
|
||||||
position: fixed;
|
position: fixed;
|
||||||
right: var(--espace-xl);
|
right: var(--espace-xl);
|
||||||
bottom: calc(var(--espace-xl) + var(--pied-de-page-hauteur));
|
bottom: calc(var(--espace-l) + var(--pied-de-page-hauteur));
|
||||||
transform: rotate(180deg);
|
transform: rotate(180deg);
|
||||||
padding: var(--espace-m);
|
padding: var(--espace-m);
|
||||||
visibility: hidden;
|
visibility: hidden;
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -1,67 +1,41 @@
|
||||||
{
|
{
|
||||||
"_animations.Qm6pdIPC.js": {
|
|
||||||
"file": "animations.Qm6pdIPC.js",
|
|
||||||
"name": "animations",
|
|
||||||
"imports": [
|
|
||||||
"_utils.DNv5smZT.js"
|
|
||||||
],
|
|
||||||
"integrity": "sha512-jRjNX07vm4GLWnKD033PE+nHjYx9KSQx5+wJonXCXerQrHe0yHfpmgiHs1fnPaXkWskasrU8cUc7538+xRfT2Q=="
|
|
||||||
},
|
|
||||||
"_api.DpNqIphF.js": {
|
"_api.DpNqIphF.js": {
|
||||||
"file": "api.DpNqIphF.js",
|
"file": "api.DpNqIphF.js",
|
||||||
"name": "api",
|
"name": "api",
|
||||||
"integrity": "sha512-mTfL4gtvoz3qjZQc7YT1SR3vveP++WDx2k4ZRvGymQqyphpGVy449QeScFaoHKn1foAIA6tVv3zyLPRRxNe8DA=="
|
"integrity": "sha512-mTfL4gtvoz3qjZQc7YT1SR3vveP++WDx2k4ZRvGymQqyphpGVy449QeScFaoHKn1foAIA6tVv3zyLPRRxNe8DA=="
|
||||||
},
|
},
|
||||||
"_belt_Option-91f3b350.y_XblYXp.js": {
|
|
||||||
"file": "belt_Option-91f3b350.y_XblYXp.js",
|
|
||||||
"name": "belt_Option-91f3b350",
|
|
||||||
"imports": [
|
|
||||||
"_utils.DNv5smZT.js"
|
|
||||||
],
|
|
||||||
"integrity": "sha512-eOwGPCcuN6HDz5c6hr2qmF+V4eJBx3M7Vq/TnUlpNIbkrm2Czsltx8suxRUwui4TzdEt4t6AJXfkO/gQrPzM6A=="
|
|
||||||
},
|
|
||||||
"_exports.1ijyAKMZ.js": {
|
"_exports.1ijyAKMZ.js": {
|
||||||
"file": "exports.1ijyAKMZ.js",
|
"file": "exports.1ijyAKMZ.js",
|
||||||
"name": "exports",
|
"name": "exports",
|
||||||
"integrity": "sha512-rJhZSofSl3JPZZ+GhoqNey/Yq1PI4SLzLm9zb6x2wNb+XrqHY//eaKKfWFpTDTAq3kb5GA83kQAQCbTIT87dqw=="
|
"integrity": "sha512-rJhZSofSl3JPZZ+GhoqNey/Yq1PI4SLzLm9zb6x2wNb+XrqHY//eaKKfWFpTDTAq3kb5GA83kQAQCbTIT87dqw=="
|
||||||
},
|
},
|
||||||
"_gardes.CgXTclcl.js": {
|
"_gardes.CUgVnuaB.js": {
|
||||||
"file": "gardes.CgXTclcl.js",
|
"file": "gardes.CUgVnuaB.js",
|
||||||
"name": "gardes",
|
"name": "gardes",
|
||||||
"integrity": "sha512-OBCB0p698NhCHDMxxmkgijBmjufwF2NDjZl1j1SlohZYzT/fRqoUURBwr97o1d/d9lx3V86U6dYtn5O5vHFIdQ=="
|
"integrity": "sha512-vm0IriyudxmLFDDV6rB6o7rCqTsT2I7Rupjru5IX6WuTx8WZ+Pvm8Xnml4qUvhIAcDjM1NnOohGItitNxLKYHA=="
|
||||||
},
|
},
|
||||||
"_index-0eef19ec.BdWpJoEP.js": {
|
"_index-c1cc4c86.RjqwfILA.js": {
|
||||||
"file": "index-0eef19ec.BdWpJoEP.js",
|
"file": "index-c1cc4c86.RjqwfILA.js",
|
||||||
"name": "index-0eef19ec",
|
|
||||||
"imports": [
|
|
||||||
"_utils.DNv5smZT.js",
|
|
||||||
"_belt_Option-91f3b350.y_XblYXp.js"
|
|
||||||
],
|
|
||||||
"integrity": "sha512-Tt1Dy4aNY2HiBRTMaY+p12kI46gAAjn0hDK1PyErTNZQchQrynv3RUt8/OKM6iyr0we/wsdae62uEQCVsHR7+w=="
|
|
||||||
},
|
|
||||||
"_index-c1cc4c86.BsIfgdq2.js": {
|
|
||||||
"file": "index-c1cc4c86.BsIfgdq2.js",
|
|
||||||
"name": "index-c1cc4c86",
|
"name": "index-c1cc4c86",
|
||||||
"imports": [
|
"imports": [
|
||||||
"_belt_Option-91f3b350.y_XblYXp.js",
|
"_utils.DS2YS0tX.js"
|
||||||
"_utils.DNv5smZT.js"
|
|
||||||
],
|
],
|
||||||
"integrity": "sha512-AR5N1q+q6bqLw0ABJvuY/Q5pPJv/Kt8VRNzU64eiAGoqVQLLNUFaXYytAFZAi/O3qGbveSm6vhV9TbIG08lCwg=="
|
"integrity": "sha512-H92M5EOab0KcEZ7HG5eU3A04CJhqcemVErVxHIP9cFW4hFUMiL3qB+lv4cQQ7AszeOfbMINXqggZvaG8wfIZfA=="
|
||||||
},
|
},
|
||||||
"_index.CuMLbxmh.js": {
|
"_index.CuMLbxmh.js": {
|
||||||
"file": "index.CuMLbxmh.js",
|
"file": "index.CuMLbxmh.js",
|
||||||
"name": "index",
|
"name": "index",
|
||||||
"integrity": "sha512-u/eN65V2Mf+6bp8PJqdo4/z5+Ht+17xIrQG7BPsZWCM8BNgBh9Sllb+qTa1gAqj+f8zUsADoUA93twZvBTU6nQ=="
|
"integrity": "sha512-u/eN65V2Mf+6bp8PJqdo4/z5+Ht+17xIrQG7BPsZWCM8BNgBh9Sllb+qTa1gAqj+f8zUsADoUA93twZvBTU6nQ=="
|
||||||
},
|
},
|
||||||
"_messages.B4HRoo_h.js": {
|
"_messages.Qx8X6YMT.js": {
|
||||||
"file": "messages.B4HRoo_h.js",
|
"file": "messages.Qx8X6YMT.js",
|
||||||
"name": "messages",
|
"name": "messages",
|
||||||
"imports": [
|
"imports": [
|
||||||
"_validation.CuPxXgCV.js",
|
"_validation.p-hUfG_o.js",
|
||||||
"_utils.DNv5smZT.js",
|
"_utils.DS2YS0tX.js",
|
||||||
"_exports.1ijyAKMZ.js"
|
"_exports.1ijyAKMZ.js"
|
||||||
],
|
],
|
||||||
"integrity": "sha512-6Z51Hgtxxrk+R2ym+m5pryKII+Okf0KF1lfw1fnfI5JQpMOtYNXcfN3u0I2+yKrTn9PQu6G8XPLwiXdlG0BFdQ=="
|
"integrity": "sha512-PGSWoFfZPADzB4i4pFN468IMt8tYXQrFXOL8sPN5QSBLEu7F4jEFJZ1Ym5iSpomPaXLLIIg2HmXT50yBq8SiHA=="
|
||||||
},
|
},
|
||||||
"_nombres.n4VPN7qr.js": {
|
"_nombres.n4VPN7qr.js": {
|
||||||
"file": "nombres.n4VPN7qr.js",
|
"file": "nombres.n4VPN7qr.js",
|
||||||
|
|
@ -71,33 +45,30 @@
|
||||||
],
|
],
|
||||||
"integrity": "sha512-tplE1x3QotJwjR/88Gked0Naxkl+PwUtPNjSDoWwIyl/3Y5jyCSbcBSAvcPNG5K0CyJRnozj5aUiVXazKm50XA=="
|
"integrity": "sha512-tplE1x3QotJwjR/88Gked0Naxkl+PwUtPNjSDoWwIyl/3Y5jyCSbcBSAvcPNG5K0CyJRnozj5aUiVXazKm50XA=="
|
||||||
},
|
},
|
||||||
"_reseau.BY8-4gXm.js": {
|
"_reseau.C8CWV2JS.js": {
|
||||||
"file": "reseau.BY8-4gXm.js",
|
"file": "reseau.C8CWV2JS.js",
|
||||||
"name": "reseau",
|
"name": "reseau",
|
||||||
"imports": [
|
"imports": [
|
||||||
"_index.CuMLbxmh.js",
|
"_utils.DS2YS0tX.js",
|
||||||
"_validation.CuPxXgCV.js",
|
"_api.DpNqIphF.js"
|
||||||
"_api.DpNqIphF.js",
|
|
||||||
"_utils.DNv5smZT.js",
|
|
||||||
"_exports.1ijyAKMZ.js"
|
|
||||||
],
|
],
|
||||||
"integrity": "sha512-CovkZ+/wMng2pkuwwix7gEHlZWoGStc/77MrDGhRTZdUtfrdwTkeisXNdtvrb0gM5HnjAlFm8JLlfhI4ov3fog=="
|
"integrity": "sha512-HUpopU/Kk2R5l1fNpuKaUBAXYyG1/ofIRXmEfXHTElg7E8vbyWAde8b1ZLR4t6iKwl3mhraHzRlPbcjkS3RQEw=="
|
||||||
},
|
},
|
||||||
"_utils.DNv5smZT.js": {
|
"_utils.DS2YS0tX.js": {
|
||||||
"file": "utils.DNv5smZT.js",
|
"file": "utils.DS2YS0tX.js",
|
||||||
"name": "utils",
|
"name": "utils",
|
||||||
"imports": [
|
"imports": [
|
||||||
"_exports.1ijyAKMZ.js"
|
"_exports.1ijyAKMZ.js"
|
||||||
],
|
],
|
||||||
"integrity": "sha512-sfRBh+WliazJoVRpuqpOcgYR5UMBsUKexeLsOR88eVsmWFpagj9iMCAerlFRz171Id2ikIVK/Y9kUjHmEFCuVw=="
|
"integrity": "sha512-MpJC/uObUIE48VQyU7cfHHe1oTqniZuIThTp/gXSNBQuWjwwIe5FbCJBeR0+6Ab/oL9nHgMP9lkSb//iVjPPew=="
|
||||||
},
|
},
|
||||||
"_validation.CuPxXgCV.js": {
|
"_validation.p-hUfG_o.js": {
|
||||||
"file": "validation.CuPxXgCV.js",
|
"file": "validation.p-hUfG_o.js",
|
||||||
"name": "validation",
|
"name": "validation",
|
||||||
"imports": [
|
"imports": [
|
||||||
"_utils.DNv5smZT.js"
|
"_utils.DS2YS0tX.js"
|
||||||
],
|
],
|
||||||
"integrity": "sha512-tznL8NmgoWlo00JJsZaoYA69cCZdCb/wpxB49f6V+tPmm+lcWqN9ugtg4VEv1eQJGJ9hLDtrpm7vrBSzIj0PCA=="
|
"integrity": "sha512-JiBgCO1G2lYlIBrQ7JQaqIynKpti44CoSRZt5JUluqbzEx6d7RGdtrxvTQOZI71tu4mKeFnViC8rZhlFRyabTw=="
|
||||||
},
|
},
|
||||||
"web/app/themes/haiku-atelier-2024/src/scripts/gaffe.ts": {
|
"web/app/themes/haiku-atelier-2024/src/scripts/gaffe.ts": {
|
||||||
"file": "gaffe.js",
|
"file": "gaffe.js",
|
||||||
|
|
@ -108,7 +79,7 @@
|
||||||
"_api.DpNqIphF.js",
|
"_api.DpNqIphF.js",
|
||||||
"_exports.1ijyAKMZ.js"
|
"_exports.1ijyAKMZ.js"
|
||||||
],
|
],
|
||||||
"integrity": "sha512-Ytv7YxquAHWEukHDAUnuQvhyeqoxasaesRX6YRDBi0LTmbmPd3PxbcaLAIQ9J0FsFnywyRr8dyfO9abtB7fX3g=="
|
"integrity": "sha512-4MYUCOMO0X3HFwN7ubugRTcF0GkMRxsLS0ziTYQewm523z3vWPPAXs9hhGJHjt2jhZY8m1wyadKCJCvBHnVqCA=="
|
||||||
},
|
},
|
||||||
"web/app/themes/haiku-atelier-2024/src/scripts/scripts-bouton-panier.ts": {
|
"web/app/themes/haiku-atelier-2024/src/scripts/scripts-bouton-panier.ts": {
|
||||||
"file": "scripts-bouton-panier.js",
|
"file": "scripts-bouton-panier.js",
|
||||||
|
|
@ -116,12 +87,12 @@
|
||||||
"src": "web/app/themes/haiku-atelier-2024/src/scripts/scripts-bouton-panier.ts",
|
"src": "web/app/themes/haiku-atelier-2024/src/scripts/scripts-bouton-panier.ts",
|
||||||
"isEntry": true,
|
"isEntry": true,
|
||||||
"imports": [
|
"imports": [
|
||||||
"_utils.DNv5smZT.js",
|
"_utils.DS2YS0tX.js",
|
||||||
"_messages.B4HRoo_h.js",
|
"_messages.Qx8X6YMT.js",
|
||||||
"_exports.1ijyAKMZ.js",
|
"_exports.1ijyAKMZ.js",
|
||||||
"_validation.CuPxXgCV.js"
|
"_validation.p-hUfG_o.js"
|
||||||
],
|
],
|
||||||
"integrity": "sha512-iG6P+98eu+x1s4ON57LdWH+DkkLXG5OICEFxoDXCr6k0X47ToYChMiLKlex1ILE0TB34lBQ+GiMAizLArz2k8A=="
|
"integrity": "sha512-O2UStDYJI8sYbmVPxIyKcv0LGLbW6e/NnBl5mWF07XE6LrsJCl+6aopsTQso+Rum66nDaBtBmDGXP+ugZx2vRg=="
|
||||||
},
|
},
|
||||||
"web/app/themes/haiku-atelier-2024/src/scripts/scripts-bouton-retour-sommet.ts": {
|
"web/app/themes/haiku-atelier-2024/src/scripts/scripts-bouton-retour-sommet.ts": {
|
||||||
"file": "scripts-bouton-retour-sommet.js",
|
"file": "scripts-bouton-retour-sommet.js",
|
||||||
|
|
@ -129,12 +100,11 @@
|
||||||
"src": "web/app/themes/haiku-atelier-2024/src/scripts/scripts-bouton-retour-sommet.ts",
|
"src": "web/app/themes/haiku-atelier-2024/src/scripts/scripts-bouton-retour-sommet.ts",
|
||||||
"isEntry": true,
|
"isEntry": true,
|
||||||
"imports": [
|
"imports": [
|
||||||
"_utils.DNv5smZT.js",
|
"_utils.DS2YS0tX.js",
|
||||||
"_exports.1ijyAKMZ.js",
|
"_exports.1ijyAKMZ.js",
|
||||||
"_index-c1cc4c86.BsIfgdq2.js",
|
"_index-c1cc4c86.RjqwfILA.js"
|
||||||
"_belt_Option-91f3b350.y_XblYXp.js"
|
|
||||||
],
|
],
|
||||||
"integrity": "sha512-wHWc6eAG1Mx+7lvIcks07qKx1Do70/prEa62AGOad5JO2zCP33O7PhiPzcq79zceO9el+fDEz5LiMpsDqvAgww=="
|
"integrity": "sha512-eSgUhUMFGH3+lb8VHA7SMxEKH1hennA3ioZtwQRgam4A0PkArixOH6dWVnssBK5m0JS6SI5MSdYw7bbsKO3Iig=="
|
||||||
},
|
},
|
||||||
"web/app/themes/haiku-atelier-2024/src/scripts/scripts-menu-categories.ts": {
|
"web/app/themes/haiku-atelier-2024/src/scripts/scripts-menu-categories.ts": {
|
||||||
"file": "scripts-menu-categories.js",
|
"file": "scripts-menu-categories.js",
|
||||||
|
|
@ -143,10 +113,10 @@
|
||||||
"isEntry": true,
|
"isEntry": true,
|
||||||
"imports": [
|
"imports": [
|
||||||
"_index.CuMLbxmh.js",
|
"_index.CuMLbxmh.js",
|
||||||
"_utils.DNv5smZT.js",
|
"_utils.DS2YS0tX.js",
|
||||||
"_exports.1ijyAKMZ.js"
|
"_exports.1ijyAKMZ.js"
|
||||||
],
|
],
|
||||||
"integrity": "sha512-zsicg9FCUX8+2jnJk6xXVH4+fcv6YX/kh8eGgsnUrNUB99fHk7zEZ08IF0/4zh6W22moc+8BZbgXp+8u4OeG3g=="
|
"integrity": "sha512-bBtWkcglfOQX2zrtNSjjqbtgvIs/NU5LQCvUUHNSN+vSBZMUfooTPsbhns68cydEkXdIiz1gN4bOJm4NCb2BIQ=="
|
||||||
},
|
},
|
||||||
"web/app/themes/haiku-atelier-2024/src/scripts/scripts-menu-mobile.ts": {
|
"web/app/themes/haiku-atelier-2024/src/scripts/scripts-menu-mobile.ts": {
|
||||||
"file": "scripts-menu-mobile.js",
|
"file": "scripts-menu-mobile.js",
|
||||||
|
|
@ -154,12 +124,11 @@
|
||||||
"src": "web/app/themes/haiku-atelier-2024/src/scripts/scripts-menu-mobile.ts",
|
"src": "web/app/themes/haiku-atelier-2024/src/scripts/scripts-menu-mobile.ts",
|
||||||
"isEntry": true,
|
"isEntry": true,
|
||||||
"imports": [
|
"imports": [
|
||||||
"_utils.DNv5smZT.js",
|
"_utils.DS2YS0tX.js",
|
||||||
"_exports.1ijyAKMZ.js",
|
"_exports.1ijyAKMZ.js",
|
||||||
"_index-c1cc4c86.BsIfgdq2.js",
|
"_index-c1cc4c86.RjqwfILA.js"
|
||||||
"_belt_Option-91f3b350.y_XblYXp.js"
|
|
||||||
],
|
],
|
||||||
"integrity": "sha512-VnI22OX11MgovPxoms9yzXyOe4ua58dYH+uLXKI2U9TE0gR2fiwUwxlaR5RaU3IdqEo5//89fZSLVxnMke9rDw=="
|
"integrity": "sha512-I+HieuVa3p0OLDdzNJhRu12fNnKtH0JVInJT+zheNGEFRl03ckB0O261xXeF4hzoGFMRq0r3kMwQ0BiJcaMBvg=="
|
||||||
},
|
},
|
||||||
"web/app/themes/haiku-atelier-2024/src/scripts/scripts-page-a-propos.ts": {
|
"web/app/themes/haiku-atelier-2024/src/scripts/scripts-page-a-propos.ts": {
|
||||||
"file": "scripts-page-a-propos.js",
|
"file": "scripts-page-a-propos.js",
|
||||||
|
|
@ -167,12 +136,11 @@
|
||||||
"src": "web/app/themes/haiku-atelier-2024/src/scripts/scripts-page-a-propos.ts",
|
"src": "web/app/themes/haiku-atelier-2024/src/scripts/scripts-page-a-propos.ts",
|
||||||
"isEntry": true,
|
"isEntry": true,
|
||||||
"imports": [
|
"imports": [
|
||||||
"_utils.DNv5smZT.js",
|
"_utils.DS2YS0tX.js",
|
||||||
"_exports.1ijyAKMZ.js",
|
"_exports.1ijyAKMZ.js",
|
||||||
"_index-c1cc4c86.BsIfgdq2.js",
|
"_index-c1cc4c86.RjqwfILA.js"
|
||||||
"_belt_Option-91f3b350.y_XblYXp.js"
|
|
||||||
],
|
],
|
||||||
"integrity": "sha512-eAiZkJwn+Tf5URID69tQVpymDTFHIIiI656wWpbJ+ddfR1mpxVblxIwBQTqScop2bnJlc76rttZpStjKOADbRw=="
|
"integrity": "sha512-wkbRCz77c1NXq/bAIzaGkNsSfKqN+gQxpA8t/VEQCfmQNHJsScjdodSuOefw9WhQQwQpE5CY6QauG7MDOLtRug=="
|
||||||
},
|
},
|
||||||
"web/app/themes/haiku-atelier-2024/src/scripts/scripts-page-accueil.ts": {
|
"web/app/themes/haiku-atelier-2024/src/scripts/scripts-page-accueil.ts": {
|
||||||
"file": "scripts-page-accueil.js",
|
"file": "scripts-page-accueil.js",
|
||||||
|
|
@ -180,13 +148,12 @@
|
||||||
"src": "web/app/themes/haiku-atelier-2024/src/scripts/scripts-page-accueil.ts",
|
"src": "web/app/themes/haiku-atelier-2024/src/scripts/scripts-page-accueil.ts",
|
||||||
"isEntry": true,
|
"isEntry": true,
|
||||||
"imports": [
|
"imports": [
|
||||||
"_utils.DNv5smZT.js",
|
"_utils.DS2YS0tX.js",
|
||||||
"_nombres.n4VPN7qr.js",
|
"_nombres.n4VPN7qr.js",
|
||||||
"_exports.1ijyAKMZ.js",
|
"_exports.1ijyAKMZ.js",
|
||||||
"_index-c1cc4c86.BsIfgdq2.js",
|
"_index-c1cc4c86.RjqwfILA.js"
|
||||||
"_belt_Option-91f3b350.y_XblYXp.js"
|
|
||||||
],
|
],
|
||||||
"integrity": "sha512-9JpaEKsYNltIO6Fwf84bqS4QdE25tRczV09TcKnGB3Kw9O80ATwElB51dNTxwP6XwJB0OZoQrMRDziHh4zh0yw=="
|
"integrity": "sha512-GF+2quJeXyU5difx44vjv4/eLm7EGD6RS1jTzj68+HzLf0i3kHcFMxCwYLM5I7Eu0FvDq/DNRTHdH86aRKJQww=="
|
||||||
},
|
},
|
||||||
"web/app/themes/haiku-atelier-2024/src/scripts/scripts-page-boutique.ts": {
|
"web/app/themes/haiku-atelier-2024/src/scripts/scripts-page-boutique.ts": {
|
||||||
"file": "scripts-page-boutique.js",
|
"file": "scripts-page-boutique.js",
|
||||||
|
|
@ -195,16 +162,13 @@
|
||||||
"isEntry": true,
|
"isEntry": true,
|
||||||
"imports": [
|
"imports": [
|
||||||
"_index.CuMLbxmh.js",
|
"_index.CuMLbxmh.js",
|
||||||
"_validation.CuPxXgCV.js",
|
"_validation.p-hUfG_o.js",
|
||||||
"_api.DpNqIphF.js",
|
"_api.DpNqIphF.js",
|
||||||
"_utils.DNv5smZT.js",
|
"_utils.DS2YS0tX.js",
|
||||||
"_animations.Qm6pdIPC.js",
|
"_reseau.C8CWV2JS.js",
|
||||||
"_reseau.BY8-4gXm.js",
|
"_exports.1ijyAKMZ.js"
|
||||||
"_exports.1ijyAKMZ.js",
|
|
||||||
"_index-0eef19ec.BdWpJoEP.js",
|
|
||||||
"_belt_Option-91f3b350.y_XblYXp.js"
|
|
||||||
],
|
],
|
||||||
"integrity": "sha512-3kF55bNdRSwZDTQHBm7jb6EO4RNQSPV/JHAvyGTyZSNtuPvnXk414E8ECpLeOLzH+afwpkTtgI68pWjoKYCagw=="
|
"integrity": "sha512-hkKU+xO2o23KphBXVN7Im7knCzLn4VpgazebmRRJSclm4x1ZX4Q4NwK2K5JpHjzIEyMbAg4UiR8tLkH8EU3kew=="
|
||||||
},
|
},
|
||||||
"web/app/themes/haiku-atelier-2024/src/scripts/scripts-page-panier.ts": {
|
"web/app/themes/haiku-atelier-2024/src/scripts/scripts-page-panier.ts": {
|
||||||
"file": "scripts-page-panier.js",
|
"file": "scripts-page-panier.js",
|
||||||
|
|
@ -212,20 +176,18 @@
|
||||||
"src": "web/app/themes/haiku-atelier-2024/src/scripts/scripts-page-panier.ts",
|
"src": "web/app/themes/haiku-atelier-2024/src/scripts/scripts-page-panier.ts",
|
||||||
"isEntry": true,
|
"isEntry": true,
|
||||||
"imports": [
|
"imports": [
|
||||||
"_utils.DNv5smZT.js",
|
"_utils.DS2YS0tX.js",
|
||||||
"_messages.B4HRoo_h.js",
|
"_messages.Qx8X6YMT.js",
|
||||||
"_nombres.n4VPN7qr.js",
|
"_nombres.n4VPN7qr.js",
|
||||||
"_index.CuMLbxmh.js",
|
"_index.CuMLbxmh.js",
|
||||||
"_validation.CuPxXgCV.js",
|
"_validation.p-hUfG_o.js",
|
||||||
"_api.DpNqIphF.js",
|
"_api.DpNqIphF.js",
|
||||||
"_animations.Qm6pdIPC.js",
|
"_reseau.C8CWV2JS.js",
|
||||||
"_reseau.BY8-4gXm.js",
|
|
||||||
"_exports.1ijyAKMZ.js",
|
"_exports.1ijyAKMZ.js",
|
||||||
"_index-c1cc4c86.BsIfgdq2.js",
|
"_index-c1cc4c86.RjqwfILA.js",
|
||||||
"_gardes.CgXTclcl.js",
|
"_gardes.CUgVnuaB.js"
|
||||||
"_belt_Option-91f3b350.y_XblYXp.js"
|
|
||||||
],
|
],
|
||||||
"integrity": "sha512-7oZPpY06yidFju+WmSgSNKZeUUgoowheMZkiDF0AMIw6EnJF2uQIR2yWsPhgEPE5QHwqcPDMpfB00N4KIYh4hA=="
|
"integrity": "sha512-xWRO6G9WQM4CwzVGBh9FYmHX+fslOq25ELZZZtSgm3Q6wEfCk4uages0uJ2enzKi47OadCASXPx9jNOdWn/fMA=="
|
||||||
},
|
},
|
||||||
"web/app/themes/haiku-atelier-2024/src/scripts/scripts-page-produit.ts": {
|
"web/app/themes/haiku-atelier-2024/src/scripts/scripts-page-produit.ts": {
|
||||||
"file": "scripts-page-produit.js",
|
"file": "scripts-page-produit.js",
|
||||||
|
|
@ -234,16 +196,15 @@
|
||||||
"isEntry": true,
|
"isEntry": true,
|
||||||
"imports": [
|
"imports": [
|
||||||
"_index.CuMLbxmh.js",
|
"_index.CuMLbxmh.js",
|
||||||
|
"_validation.p-hUfG_o.js",
|
||||||
"_api.DpNqIphF.js",
|
"_api.DpNqIphF.js",
|
||||||
"_utils.DNv5smZT.js",
|
"_utils.DS2YS0tX.js",
|
||||||
"_gardes.CgXTclcl.js",
|
"_reseau.C8CWV2JS.js",
|
||||||
"_messages.B4HRoo_h.js",
|
"_gardes.CUgVnuaB.js",
|
||||||
"_reseau.BY8-4gXm.js",
|
"_messages.Qx8X6YMT.js",
|
||||||
"_validation.CuPxXgCV.js",
|
|
||||||
"_exports.1ijyAKMZ.js",
|
"_exports.1ijyAKMZ.js",
|
||||||
"_index-0eef19ec.BdWpJoEP.js",
|
"_index-c1cc4c86.RjqwfILA.js"
|
||||||
"_belt_Option-91f3b350.y_XblYXp.js"
|
|
||||||
],
|
],
|
||||||
"integrity": "sha512-mk2TzSoaVhfvCK/fna+S/wfq4pAU14NAAJrjfp2IHtEQFUA2SEzv6qbJH3DJ7p5Ty+64ZkJLeeRoVTYm4dvM+A=="
|
"integrity": "sha512-aqdkuZjhvcdnGLbqGdmYphpDjDprtPrwsr6kTBUQ0LZ78gLuQmhQTVUA4k7/f8FyEhNYt6l4QjtUXEKrIAfLAg=="
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1,2 +0,0 @@
|
||||||
import{B as a}from"./utils.DNv5smZT.js";const i=t=>{const e={callback:()=>{if(!t.element.hasAttribute(t.attribut)){clearInterval(e.interval);return}t.element.textContent=e.etapes.at(e.index)??"Loading...",e.index=e.index+1>e.etapes.length-1?0:e.index+1},etapes:t.etapes,index:0,interval:setInterval(()=>{},2147483647)};return e},o=(t,e)=>{const n=i({attribut:a,element:t,etapes:["Loading","Loading.","Loading..","Loading..."]});n.callback(),n.interval=setInterval(n.callback,e)};export{o as l};
|
|
||||||
//# sourceMappingURL=animations.Qm6pdIPC.js.map
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
{"version":3,"file":"animations.Qm6pdIPC.js","sources":["../../src/scripts/lib/animations.ts"],"sourcesContent":["/** Fonctions pour la création de simples animations JavaScript. */\n\nimport { ATTRIBUT_CHARGEMENT } from \"../constantes/dom\";\n\n// Types\ninterface AnimationCycleTexte {\n callback: () => void;\n etapes: Array<string>;\n index: number;\n interval: NodeJS.Timeout;\n}\n\ninterface ParametresAnimationCycleTexte {\n attribut: string;\n element: HTMLElement;\n etapes: Array<string>;\n}\n\n/**\n * Créer le nécessaire pour une animation s'exécutant jusqu'à ce que un interval soit manuellement arrêté. L'animation\n * consiste en la mise à jour d'un texte avec l'utilisation de toutes les valeurs d'un tableau, une par une.\n *\n * @param args Les paramètres nécessaires pour la création de l'animation.\n * @returns Un objet contenant les informations de l'animation, notamment l'interval utilisable pour son arrêt.\n */\nconst lanceAnimationCycleTexte = (args: ParametresAnimationCycleTexte): AnimationCycleTexte => {\n const animation: AnimationCycleTexte = {\n callback: (): void => {\n // Arrête le cycle quand l'Attribut de chargement n'est plus présent\n if (!args.element.hasAttribute(args.attribut)) {\n clearInterval(animation.interval);\n return;\n }\n\n // Change le texte\n args.element.textContent = animation.etapes.at(animation.index) ?? \"Loading...\";\n // Incrémente ou réinitialise l'index\n animation.index = animation.index + 1 > animation.etapes.length - 1 ? 0 : animation.index + 1;\n },\n etapes: args.etapes,\n index: 0,\n interval: setInterval(() => {}, 2147483647),\n };\n\n return animation;\n};\n\nexport const lanceAnimationCycleLoading = (element: HTMLElement, delai: number): void => {\n const animation = lanceAnimationCycleTexte({\n attribut: ATTRIBUT_CHARGEMENT,\n element: element,\n etapes: [\n \"Loading\",\n \"Loading.\",\n \"Loading..\",\n \"Loading...\",\n ],\n });\n animation.callback();\n animation.interval = setInterval(animation.callback, delai);\n};\n"],"names":["ATTRIBUT_CHARGEMENT","lanceAnimationCycleTexte","args","animation","lanceAnimationCycleLoading","element","delai"],"mappings":"AAyBA,OAAA,KAAAA,MAAA,sBAAA,MAAMC,EAA4BC,GAA6D,CAC7F,MAAMC,EAAiC,CACrC,SAAU,IAAY,CAEpB,GAAI,CAACD,EAAK,QAAQ,aAAaA,EAAK,QAAQ,EAAG,CAC7C,cAAcC,EAAU,QAAQ,EAChC,MAAA,CAIFD,EAAK,QAAQ,YAAcC,EAAU,OAAO,GAAGA,EAAU,KAAK,GAAK,aAEzDA,EAAA,MAAQA,EAAU,MAAQ,EAAIA,EAAU,OAAO,OAAS,EAAI,EAAIA,EAAU,MAAQ,CAC9F,EACA,OAAQD,EAAK,OACb,MAAO,EACP,SAAU,YAAY,IAAM,CAAA,EAAI,UAAU,CAC5C,EAEO,OAAAC,CACT,EAEaC,EAA6B,CAACC,EAAsBC,IAAwB,CACvF,MAAMH,EAAYF,EAAyB,CACzC,SAAUD,EACV,QAAAK,EACA,OAAQ,CACN,UACA,WACA,YACA,YAAA,CACF,CACD,EACDF,EAAU,SAAS,EACnBA,EAAU,SAAW,YAAYA,EAAU,SAAUG,CAAK,CAC5D"}
|
|
||||||
|
|
@ -1,2 +0,0 @@
|
||||||
import{at as f,aq as h}from"./utils.DNv5smZT.js";function l(n,r,i){for(var t=new Array(i),e=0,u=r;e<i;)t[e]=n[u],e=e+1|0,u=u+1|0;return t}function v(n,r){for(;;){var i=r,t=n,e=t.length,u=e===0?1:e,o=u-i.length|0;if(o===0)return t.apply(null,i);if(o>=0)return function(a,c){return function(p){return v(a,c.concat([p]))}}(t,i);r=l(i,u,0|-o),n=t.apply(null,l(i,0,u))}}function d(n,r){var i=n.length;if(i===1)return n(r);switch(i){case 1:return n(r);case 2:return function(t){return n(r,t)};case 3:return function(t,e){return n(r,t,e)};case 4:return function(t,e,u){return n(r,t,e,u)};case 5:return function(t,e,u,o){return n(r,t,e,u,o)};case 6:return function(t,e,u,o,a){return n(r,t,e,u,o,a)};case 7:return function(t,e,u,o,a,c){return n(r,t,e,u,o,a,c)};default:return v(n,[r])}}function _(n){return n.length===1?n:function(r){return d(n,r)}}var s={contents:0};function E(n){return s.contents=s.contents+1|0,n+"/"+s.contents}function w(n){return n==null?!1:typeof n.RE_EXN_ID=="string"}function y(n){if(n!==void 0)return f(n);throw{RE_EXN_ID:"Not_found",Error:new Error}}function D(n,r,i){return n!==void 0?i(f(n)):r}function N(n,r){if(n!==void 0)return h(r(f(n)))}function g(n,r){if(n!==void 0)return r(f(n))}function x(n,r){return g(n,_(r))}function U(n,r){return n!==void 0?f(n):r}function b(n){return n!==void 0}function I(n){return n===void 0}export{d as _,U as a,I as b,E as c,b as d,g as e,x as f,y as g,D as h,w as i,N as m};
|
|
||||||
//# sourceMappingURL=belt_Option-91f3b350.y_XblYXp.js.map
|
|
||||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -0,0 +1,2 @@
|
||||||
|
const s=e=>t=>t instanceof e,n=s(HTMLSelectElement),c=e=>e.status===500;export{n as a,c as e};
|
||||||
|
//# sourceMappingURL=gardes.CUgVnuaB.js.map
|
||||||
|
|
@ -1 +1 @@
|
||||||
{"version":3,"file":"gardes.CgXTclcl.js","sources":["../../src/scripts/lib/gardes.ts"],"sourcesContent":["import type { Constructor } from \"./types/classes\";\n\nconst estElement = <T extends HTMLElement>(typeElement: Constructor<T>) => (element: unknown): element is T =>\n element instanceof typeElement;\n\nexport const estHTMLSelectElement = estElement<HTMLSelectElement>(HTMLSelectElement);\n\nexport const estError = (erreur: unknown): erreur is Error => erreur instanceof Error;\n\nexport const estReponse500 = (reponse: Response): boolean => reponse.status === 500;\n"],"names":["estElement","typeElement","element","estHTMLSelectElement","estError","erreur","estReponse500","reponse"],"mappings":"AAEA,MAAMA,EAAqCC,GAAiCC,GAC1EA,aAAmBD,EAERE,EAAuBH,EAA8B,iBAAiB,EAEtEI,EAAYC,GAAqCA,aAAkB,MAEnEC,EAAiBC,GAA+BA,EAAQ,SAAW"}
|
{"version":3,"file":"gardes.CUgVnuaB.js","sources":["../../src/scripts/lib/gardes.ts"],"sourcesContent":["import type { Constructor } from \"./types/classes\";\n\nconst estElement = <T extends HTMLElement>(typeElement: Constructor<T>) => (element: unknown): element is T =>\n element instanceof typeElement;\n\nexport const estHTMLSelectElement = estElement<HTMLSelectElement>(HTMLSelectElement);\n\nexport const estError = (erreur: unknown): erreur is Error => erreur instanceof Error;\n\nexport const estReponse500 = (reponse: Response): boolean => reponse.status === 500;\n"],"names":["estElement","typeElement","element","estHTMLSelectElement","estReponse500","reponse"],"mappings":"AAEA,MAAMA,EAAqCC,GAAiCC,GAC1EA,aAAmBD,EAERE,EAAuBH,EAA8B,iBAAiB,EAItEI,EAAiBC,GAA+BA,EAAQ,SAAW"}
|
||||||
|
|
@ -1,2 +0,0 @@
|
||||||
const s=e=>t=>t instanceof e,n=s(HTMLSelectElement),o=e=>e instanceof Error,c=e=>e.status===500;export{n as a,o as b,c as e};
|
|
||||||
//# sourceMappingURL=gardes.CgXTclcl.js.map
|
|
||||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -1,2 +0,0 @@
|
||||||
import{_ as W,i as x,c as z,g as D,a,b as U,d as S,f as $,m as M,e as i,h as E}from"./belt_Option-91f3b350.y_XblYXp.js";import{aq as u,ar as R,as as k,at as e,au as q,av as y}from"./utils.DNv5smZT.js";var A=z("Promise.JsError");function F(n,r){return n.catch(function(t){return W(r,x(t)?t:{RE_EXN_ID:A,_1:t})})}function G(n){}function T(n){return u(n)}function I(n){}function J(n){if(n!=null)return u(n)}function O(n){if(n)return n}function o(n,r){return $(n==null?void 0:u(n),function(t){if(r(t))return u(t)})}function X(){if(arguments.length===1){const n=arguments;return function(t){return o(t,n[0])}}return o(arguments[0],arguments[1])}function j(n){try{return u(n(void 0))}catch{return}}function w(n){return F(n.then(function(r){return u(r)}),function(r){return Promise.resolve(void 0)})}var f=M;function B(){if(arguments.length===1){const n=arguments;return function(t){return f(t,n[0])}}return f(arguments[0],arguments[1])}var s=i;function C(){if(arguments.length===1){const n=arguments;return function(t){return s(t,n[0])}}return s(arguments[0],arguments[1])}var c=E;function H(){if(arguments.length===2){const n=arguments;return function(t){return c(t,n[0],n[1])}}return c(arguments[0],arguments[1],arguments[2])}function m(n,r){if(n!==void 0)return k(r(e(n)))}function K(){if(arguments.length===1){const n=arguments;return function(t){return m(t,n[0])}}return m(arguments[0],arguments[1])}function g(n,r){return i(n,function(t){if(r(t))return u(t)})}function L(){if(arguments.length===1){const n=arguments;return function(t){return g(t,n[0])}}return g(arguments[0],arguments[1])}var l=a;function Q(){if(arguments.length===1){const n=arguments;return function(t){return l(t,n[0])}}return l(arguments[0],arguments[1])}var V=D;function Y(n){return a(n,null)}function Z(n){return a(n,void 0)}function h(n,r){return n!==void 0?{TAG:0,_0:e(n)}:{TAG:1,_0:r}}function nn(){if(arguments.length===1){const n=arguments;return function(t){return h(t,n[0])}}return h(arguments[0],arguments[1])}function v(n,r,t){return n!==void 0?r(e(n)):t(void 0)}function tn(){if(arguments.length===2){const n=arguments;return function(t){return v(t,n[0],n[1])}}return v(arguments[0],arguments[1],arguments[2])}var rn=U,en=S;function d(n,r){return n!==void 0&&r(e(n)),n}function un(){if(arguments.length===1){const n=arguments;return function(t){return d(t,n[0])}}return d(arguments[0],arguments[1])}function _(n,r){return E(n,!1,function(t){return q(t,r)})}function an(){if(arguments.length===1){const n=arguments;return function(t){return _(t,n[0])}}return _(arguments[0],arguments[1])}function p(n,r){if(n!==void 0&&r!==void 0)return[e(n),e(r)]}function on(){if(arguments.length===1){const n=arguments;return function(t){return p(t,n[0])}}return p(arguments[0],arguments[1])}function N(n,r,t){if(n!==void 0&&r!==void 0)return u(t(e(n),e(r)))}function fn(){if(arguments.length===2){const n=arguments;return function(t){return N(t,n[0],n[1])}}return N(arguments[0],arguments[1],arguments[2])}function b(n,r,t){return n!==void 0?r(e(n)):t(void 0)}function sn(){if(arguments.length===2){const n=arguments;return function(t){return b(t,n[0],n[1])}}return b(arguments[0],arguments[1],arguments[2])}function cn(n){return R(n,[],function(r,t){return i(r,function(P){if(t!==void 0)return y(P,[e(t)])})})}const mn=n=>n;var hn={__proto__:null,Some:mn,None:void 0,placeholder:G,makeSome:T,makeNone:I,fromNullable:J,fromFalsy:O,fromPredicate:X,fromExecution:j,fromPromise:w,map:B,flatMap:C,mapWithDefault:H,mapNullable:K,filter:L,getWithDefault:Q,getExn:V,toNullable:Y,toUndefined:Z,toResult:nn,match:tn,isNone:rn,isSome:en,tap:un,contains:an,zip:on,zipWith:fn,fold:sn,all:cn};export{hn as P,C as f,Q as g,un as t};
|
|
||||||
//# sourceMappingURL=index-c1cc4c86.BsIfgdq2.js.map
|
|
||||||
File diff suppressed because one or more lines are too long
|
|
@ -0,0 +1,2 @@
|
||||||
|
import{aG as o,aH as a,aI as $,aJ as A,aK as G,aL as M}from"./utils.DS2YS0tX.js";function v(n,t,r){for(var e=new Array(r),u=0,i=t;u<r;)e[u]=n[i],u=u+1|0,i=i+1|0;return e}function R(n,t){for(;;){var r=t,e=n,u=e.length,i=u===0?1:u,f=i-r.length|0;if(f===0)return e.apply(null,r);if(f>=0)return function(c,m){return function(S){return R(c,m.concat([S]))}}(e,r);t=v(r,i,0|-f),n=e.apply(null,v(r,0,i))}}function U(n,t){var r=n.length;if(r===1)return n(t);switch(r){case 1:return n(t);case 2:return function(e){return n(t,e)};case 3:return function(e,u){return n(t,e,u)};case 4:return function(e,u,i){return n(t,e,u,i)};case 5:return function(e,u,i,f){return n(t,e,u,i,f)};case 6:return function(e,u,i,f,c){return n(t,e,u,i,f,c)};case 7:return function(e,u,i,f,c,m){return n(t,e,u,i,f,c,m)};default:return R(n,[t])}}function X(n){return n.length===1?n:function(t){return U(n,t)}}var g={contents:0};function k(n){return g.contents=g.contents+1|0,n+"/"+g.contents}function F(n){return n==null?!1:typeof n.RE_EXN_ID=="string"}function J(n){if(n!==void 0)return o(n);throw{RE_EXN_ID:"Not_found",Error:new Error}}function I(n,t,r){return n!==void 0?r(o(n)):t}function T(n,t){if(n!==void 0)return a(t(o(n)))}function s(n,t){if(n!==void 0)return t(o(n))}function q(n,t){return s(n,X(t))}function l(n,t){return n!==void 0?o(n):t}function H(n){return n!==void 0}function K(n){return n===void 0}var L=k("Promise.JsError");function O(n,t){return n.catch(function(r){return U(t,F(r)?r:{RE_EXN_ID:L,_1:r})})}function j(n){}function B(n){return a(n)}function C(n){}function Q(n){if(n!=null)return a(n)}function V(n){if(n)return n}function h(n,t){return q(n==null?void 0:a(n),function(r){if(t(r))return a(r)})}function Y(){if(arguments.length===1){const n=arguments;return function(r){return h(r,n[0])}}return h(arguments[0],arguments[1])}function Z(n){try{return a(n(void 0))}catch{return}}function nn(n){return O(n.then(function(t){return a(t)}),function(t){return Promise.resolve(void 0)})}var d=T;function tn(){if(arguments.length===1){const n=arguments;return function(r){return d(r,n[0])}}return d(arguments[0],arguments[1])}var _=s;function rn(){if(arguments.length===1){const n=arguments;return function(r){return _(r,n[0])}}return _(arguments[0],arguments[1])}var p=I;function en(){if(arguments.length===2){const n=arguments;return function(r){return p(r,n[0],n[1])}}return p(arguments[0],arguments[1],arguments[2])}function N(n,t){if(n!==void 0)return A(t(o(n)))}function un(){if(arguments.length===1){const n=arguments;return function(r){return N(r,n[0])}}return N(arguments[0],arguments[1])}function E(n,t){return s(n,function(r){if(t(r))return a(r)})}function on(){if(arguments.length===1){const n=arguments;return function(r){return E(r,n[0])}}return E(arguments[0],arguments[1])}var b=l;function fn(){if(arguments.length===1){const n=arguments;return function(r){return b(r,n[0])}}return b(arguments[0],arguments[1])}var an=J;function cn(n){return l(n,null)}function sn(n){return l(n,void 0)}function D(n,t){return n!==void 0?{TAG:0,_0:o(n)}:{TAG:1,_0:t}}function mn(){if(arguments.length===1){const n=arguments;return function(r){return D(r,n[0])}}return D(arguments[0],arguments[1])}function w(n,t,r){return n!==void 0?t(o(n)):r(void 0)}function gn(){if(arguments.length===2){const n=arguments;return function(r){return w(r,n[0],n[1])}}return w(arguments[0],arguments[1],arguments[2])}var ln=K,vn=H;function y(n,t){return n!==void 0&&t(o(n)),n}function hn(){if(arguments.length===1){const n=arguments;return function(r){return y(r,n[0])}}return y(arguments[0],arguments[1])}function P(n,t){return I(n,!1,function(r){return G(r,t)})}function dn(){if(arguments.length===1){const n=arguments;return function(r){return P(r,n[0])}}return P(arguments[0],arguments[1])}function W(n,t){if(n!==void 0&&t!==void 0)return[o(n),o(t)]}function _n(){if(arguments.length===1){const n=arguments;return function(r){return W(r,n[0])}}return W(arguments[0],arguments[1])}function x(n,t,r){if(n!==void 0&&t!==void 0)return a(r(o(n),o(t)))}function pn(){if(arguments.length===2){const n=arguments;return function(r){return x(r,n[0],n[1])}}return x(arguments[0],arguments[1],arguments[2])}function z(n,t,r){return n!==void 0?t(o(n)):r(void 0)}function Nn(){if(arguments.length===2){const n=arguments;return function(r){return z(r,n[0],n[1])}}return z(arguments[0],arguments[1],arguments[2])}function En(n){return $(n,[],function(t,r){return s(t,function(e){if(r!==void 0)return M(e,[o(r)])})})}const bn=n=>n;var wn={__proto__:null,Some:bn,None:void 0,placeholder:j,makeSome:B,makeNone:C,fromNullable:Q,fromFalsy:V,fromPredicate:Y,fromExecution:Z,fromPromise:nn,map:tn,flatMap:rn,mapWithDefault:en,mapNullable:un,filter:on,getWithDefault:fn,getExn:an,toNullable:cn,toUndefined:sn,toResult:mn,match:gn,isNone:ln,isSome:vn,tap:hn,contains:dn,zip:_n,zipWith:pn,fold:Nn,all:En};export{wn as P,rn as f,fn as g,hn as t};
|
||||||
|
//# sourceMappingURL=index-c1cc4c86.RjqwfILA.js.map
|
||||||
File diff suppressed because one or more lines are too long
|
|
@ -1,2 +0,0 @@
|
||||||
import{o as n,s as e,p as c,i as l,n as s,l as M,c as r,f as o,d as i,e as m,u as d,g as p,h as P,t as b,v as y,q as h,j as x,W as I}from"./validation.CuPxXgCV.js";import{aO as S,ao as g}from"./utils.DNv5smZT.js";import{a0 as j}from"./exports.1ijyAKMZ.js";const v="bouton_panier",A="contenu_panier",z="revalidation_livraison",u={MajBoutonPanier:"maj_bouton_panier",MajContenuPanier:"maj_contenu_panier",RevalidationLivraison:"revalidation_livraison"},N={INVISIBLE:"invisible",VISIBLE:"visible"},B=n({address_1:e(),address_2:e(),city:e(),company:e(),country:e(),email:e(),first_name:e(),last_name:e(),phone:e(),postcode:e(),state:e()}),C=n({address_1:e(),address_2:e(),city:e(),company:e(),country:e(),first_name:e(),last_name:e(),phone:e(),postcode:e(),state:e()}),E=n({code:e(),discount_type:e(),totals:n({currency_code:e(),currency_decimal_separator:e(),currency_minor_unit:c(s(),l()),currency_prefix:e(),currency_suffix:e(),currency_symbol:e(),currency_thousand_separator:e(),total_discount:e(),total_discount_tax:e()})}),W=n({key:e(),name:e(),quantity:s()}),R=n({currency_code:e(),currency_decimal_separator:e(),currency_minor_unit:s(),currency_prefix:e(),currency_suffix:e(),currency_symbol:e(),currency_thousand_separator:e(),delivery_time:e(),description:e(),instance_id:s(),meta_data:r(o()),method_id:e(),name:e(),price:e(),rate_id:e(),selected:i(),taxes:e()}),T=r(R),L=n({destination:M(C,["company","first_name","last_name","phone"]),items:r(W),name:e(),package_id:s(),shipping_rates:T}),O=n({currency_code:e(),currency_decimal_separator:e(),currency_minor_unit:s(),currency_prefix:e(),currency_suffix:e(),currency_symbol:e(),currency_thousand_separator:e(),line_subtotal:e(),line_subtotal_tax:e(),line_total:e(),line_total_tax:e()}),f=n({backorders_allowed:i(),catalog_visibility:m(N),description:e(),extensions:o(),id:s(),images:r(o()),item_data:r(o()),key:e(),low_stock_remaining:d([p()]),name:e(),permalink:c(e(),P()),prices:o(),quantity:s(),quantity_limits:o(),short_description:e(),show_backorder_badge:i(),sku:e(),sold_individually:i(),totals:O,type:e(),variation:r(o())}),k=n({currency_code:e(),currency_decimal_separator:e(),currency_minor_unit:s(),currency_prefix:e(),currency_suffix:e(),currency_symbol:e(),currency_thousand_separator:e(),tax_lines:r(o()),total_discount:e(),total_discount_tax:e(),total_fees:e(),total_fees_tax:e(),total_items:e(),total_items_tax:e(),total_price:e(),total_shipping:c(d([e(),p()]),b(Number)),total_shipping_tax:d([e(),p()]),total_tax:e()}),F=n({billing_address:B,coupons:r(E),cross_sells:o(),errors:o(),extensions:o(),fees:o(),has_calculated_shipping:i(),items:r(f),items_count:c(s(),l()),items_weight:c(s(),l()),needs_payment:i(),needs_shipping:i(),payment_methods:o(),payment_requirements:o(),shipping_address:C,shipping_rates:r(L),totals:k});m(u);const q=n({quantiteProduits:s()}),w=n({donnees:q,type:c(e(),y(u.MajBoutonPanier))}),V=n({produits:r(f),sousTotalProduits:s(),sousTotalReduction:s(),totalPanier:s()}),D=n({donnees:V,type:c(e(),y(u.MajContenuPanier))}),U=(a,t)=>(a.postMessage(t),a),H=a=>{const t=new BroadcastChannel(v);t.postMessage({donnees:{quantiteProduits:a.quantiteProduits},type:u.MajBoutonPanier}),t.close()},J=a=>{const t=new BroadcastChannel(A);t.postMessage({donnees:{produits:a.produits,sousTotalProduits:a.sousTotalProduits,sousTotalReduction:a.sousTotalReduction,totalPanier:a.totalPanier},type:u.MajContenuPanier}),t.close()},K=(a,t)=>j(new BroadcastChannel(a),_=>U(_,t),_=>_.close()),Q=a=>S.of(h(w,a.data)).ifLeft(t=>g(t)),X=a=>S.of(h(D,a.data)).ifLeft(t=>g(t)),Z=(a,t)=>x(a,I).map(_=>_.body.code===t).orDefault(!1);export{v as N,B as W,C as a,z as b,F as c,T as d,K as e,H as f,J as g,A as h,X as i,Z as r,Q as v};
|
|
||||||
//# sourceMappingURL=messages.B4HRoo_h.js.map
|
|
||||||
File diff suppressed because one or more lines are too long
|
|
@ -0,0 +1,2 @@
|
||||||
|
import{o as a,l as y,a as p,s as e,u as d,p as i,k as x,g as u,q as h,n as t,i as m,r as I,c as r,f as o,d as c,e as S,h as j,t as v,v as g,w as C,j as A}from"./validation.p-hUfG_o.js";import{aF as f,I as M}from"./utils.DS2YS0tX.js";import{a0 as E}from"./exports.1ijyAKMZ.js";const W="bouton_panier",B="contenu_panier",X="revalidation_livraison",l={MajBoutonPanier:"maj_bouton_panier",MajContenuPanier:"maj_contenu_panier",RevalidationLivraison:"revalidation_livraison"},N=a({code:e(),data:a({status:t()}),message:e()}),R=a({body:N,status:t()}),T=a({code:y("rest_invalid_param"),data:a({details:a({billing_address:p(a({code:e(),data:d([u(),e()]),message:e()})),shipping_address:p(a({code:e(),data:d([u(),e()]),message:e()}))}),params:a({billing_address:p(e()),shipping_address:p(e())}),status:y(400)}),message:i(e(),h("Invalid parameter(s):"),h("_address"))}),Z=s=>x(T,s),L={INVISIBLE:"invisible",VISIBLE:"visible"},k=a({address_1:e(),address_2:e(),city:e(),company:e(),country:e(),email:e(),first_name:e(),last_name:e(),phone:e(),postcode:e(),state:e()}),P=a({address_1:e(),address_2:e(),city:e(),company:e(),country:e(),first_name:e(),last_name:e(),phone:e(),postcode:e(),state:e()}),q=a({code:e(),discount_type:e(),totals:a({currency_code:e(),currency_decimal_separator:e(),currency_minor_unit:i(t(),m()),currency_prefix:e(),currency_suffix:e(),currency_symbol:e(),currency_thousand_separator:e(),total_discount:e(),total_discount_tax:e()})}),w=a({key:e(),name:e(),quantity:t()}),O=a({currency_code:e(),currency_decimal_separator:e(),currency_minor_unit:t(),currency_prefix:e(),currency_suffix:e(),currency_symbol:e(),currency_thousand_separator:e(),delivery_time:e(),description:e(),instance_id:t(),meta_data:r(o()),method_id:e(),name:e(),price:e(),rate_id:e(),selected:c(),taxes:e()}),V=r(O),D=a({destination:I(P,["company","first_name","last_name","phone"]),items:r(w),name:e(),package_id:t(),shipping_rates:V}),U=a({currency_code:e(),currency_decimal_separator:e(),currency_minor_unit:t(),currency_prefix:e(),currency_suffix:e(),currency_symbol:e(),currency_thousand_separator:e(),line_subtotal:e(),line_subtotal_tax:e(),line_total:e(),line_total_tax:e()}),b=a({backorders_allowed:c(),catalog_visibility:S(L),description:e(),extensions:o(),id:t(),images:r(o()),item_data:r(o()),key:e(),low_stock_remaining:d([u()]),name:e(),permalink:i(e(),j()),prices:o(),quantity:t(),quantity_limits:o(),short_description:e(),show_backorder_badge:c(),sku:e(),sold_individually:c(),totals:U,type:e(),variation:r(o())}),G=a({currency_code:e(),currency_decimal_separator:e(),currency_minor_unit:t(),currency_prefix:e(),currency_suffix:e(),currency_symbol:e(),currency_thousand_separator:e(),tax_lines:r(o()),total_discount:e(),total_discount_tax:e(),total_fees:e(),total_fees_tax:e(),total_items:e(),total_items_tax:e(),total_price:e(),total_shipping:i(d([e(),u()]),v(Number)),total_shipping_tax:d([e(),u()]),total_tax:e()}),ee=a({billing_address:k,coupons:r(q),cross_sells:o(),errors:o(),extensions:o(),fees:o(),has_calculated_shipping:c(),items:r(b),items_count:i(t(),m()),items_weight:i(t(),m()),needs_payment:c(),needs_shipping:c(),payment_methods:o(),payment_requirements:o(),shipping_address:P,shipping_rates:r(D),totals:G});S(l);const F=a({quantiteProduits:t()}),Y=a({donnees:F,type:i(e(),g(l.MajBoutonPanier))}),$=a({produits:r(b),sousTotalProduits:t(),sousTotalReduction:t(),totalPanier:t()}),z=a({donnees:$,type:i(e(),g(l.MajContenuPanier))}),H=(s,n)=>(s.postMessage(n),s),ae=s=>{const n=new BroadcastChannel(W);n.postMessage({donnees:{quantiteProduits:s.quantiteProduits},type:l.MajBoutonPanier}),n.close()},se=s=>{const n=new BroadcastChannel(B);n.postMessage({donnees:{produits:s.produits,sousTotalProduits:s.sousTotalProduits,sousTotalReduction:s.sousTotalReduction,totalPanier:s.totalPanier},type:l.MajContenuPanier}),n.close()},te=(s,n)=>E(new BroadcastChannel(s),_=>H(_,n),_=>_.close()),ne=s=>f.of(C(Y,s.data)).ifLeft(n=>M(n)),oe=s=>f.of(C(z,s.data)).ifLeft(n=>M(n)),re=(s,n)=>A(s,R).map(_=>_.body.code===n).orDefault(!1);export{W as N,k as W,P as a,X as b,te as c,ee as d,Z as e,V as f,ae as g,se as h,B as i,oe as j,re as r,ne as v};
|
||||||
|
//# sourceMappingURL=messages.Qx8X6YMT.js.map
|
||||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -1,2 +1,2 @@
|
||||||
import{r as o,S as a,a as r,A as s}from"./utils.DNv5smZT.js";import{N as d,v as E}from"./messages.B4HRoo_h.js";import{a0 as N}from"./exports.1ijyAKMZ.js";import"./validation.CuPxXgCV.js";const u=()=>{const e=N(o(a),r),t=new BroadcastChannel(d);t.onmessage=i=>{E(i).ifRight(n=>{e.textContent=`cart (${String(n.donnees.quantiteProduits)})`,e.setAttribute(s,String(n.donnees.quantiteProduits>0))})},document.addEventListener("visibilitychange",()=>{t.close()})};document.addEventListener("DOMContentLoaded",()=>{u()});
|
import{r as o,S as a,a as r,A as s}from"./utils.DS2YS0tX.js";import{N as d,v as E}from"./messages.Qx8X6YMT.js";import{a0 as N}from"./exports.1ijyAKMZ.js";import"./validation.p-hUfG_o.js";const u=()=>{const e=N(o(a),r),t=new BroadcastChannel(d);t.onmessage=i=>{E(i).ifRight(n=>{e.textContent=`cart (${String(n.donnees.quantiteProduits)})`,e.setAttribute(s,String(n.donnees.quantiteProduits>0))})},document.addEventListener("visibilitychange",()=>{t.close()})};document.addEventListener("DOMContentLoaded",()=>{u()});
|
||||||
//# sourceMappingURL=scripts-bouton-panier.js.map
|
//# sourceMappingURL=scripts-bouton-panier.js.map
|
||||||
|
|
|
||||||
|
|
@ -1,2 +1,2 @@
|
||||||
import{b as n,h as u,c as s,d as O}from"./utils.DNv5smZT.js";import{a0 as d}from"./exports.1ijyAKMZ.js";import{t as R}from"./index-c1cc4c86.BsIfgdq2.js";import"./belt_Option-91f3b350.y_XblYXp.js";const e={BOUTON_RETOUR_SOMMET:n("#bouton-retour-haut"),CORPS_HTML:n("body"),IMAGE_BOUTON:n("#bouton-retour-haut img")},o=2;let a=e.CORPS_HTML.getBoundingClientRect().height/window.innerHeight,i=window.scrollY,r=!1;const T=()=>window.scrollY,l=t=>{t?(e.BOUTON_RETOUR_SOMMET.setAttribute(s,""),e.IMAGE_BOUTON.removeAttribute(O)):(e.BOUTON_RETOUR_SOMMET.removeAttribute(s),e.IMAGE_BOUTON.setAttribute(O,"")),r=!1},_=()=>{l(i>window.innerHeight*o),new ResizeObserver(t=>{d(u(t),R(m=>{a=e.CORPS_HTML.getBoundingClientRect().height/window.innerHeight,i=T()}))}).observe(e.CORPS_HTML),window.addEventListener("scroll",()=>{i=T(),!(a<o)&&(r||(r=!0,requestAnimationFrame(()=>l(i>window.innerHeight*o))))})},E=()=>{e.BOUTON_RETOUR_SOMMET.addEventListener("click",t=>{t.preventDefault(),window.scrollTo({behavior:"smooth",top:0})})};document.addEventListener("DOMContentLoaded",()=>{E(),_()});
|
import{b as i,c as M,h as l,d as O,e as T,f as s}from"./utils.DS2YS0tX.js";import{a0 as u}from"./exports.1ijyAKMZ.js";import{t as R}from"./index-c1cc4c86.RjqwfILA.js";const e={BOUTON_MENU_MOBILE:i(M),BOUTON_RETOUR_SOMMET:i("#bouton-retour-haut"),CORPS_HTML:i("body"),IMAGE_BOUTON:i("#bouton-retour-haut img")},o=2;let E=e.CORPS_HTML.getBoundingClientRect().height/window.innerHeight,n=window.scrollY,r=!1;const _=()=>window.scrollY,a=t=>{t?(e.BOUTON_RETOUR_SOMMET.setAttribute(O,""),e.BOUTON_RETOUR_SOMMET.setAttribute(T,"99"),e.IMAGE_BOUTON.removeAttribute(s)):(e.BOUTON_RETOUR_SOMMET.removeAttribute(O),e.BOUTON_RETOUR_SOMMET.setAttribute(T,"-2"),e.IMAGE_BOUTON.setAttribute(s,"")),r=!1},U=()=>{window.addEventListener("scroll",()=>{n=_(),!(E<o)&&(r||(r=!0,requestAnimationFrame(()=>a(n>window.innerHeight*o))))}),new ResizeObserver(t=>{u(l(t),R(B=>{E=e.CORPS_HTML.getBoundingClientRect().height/window.innerHeight,n=_()}))}).observe(e.CORPS_HTML),a(n>window.innerHeight*o)},d=()=>{e.BOUTON_RETOUR_SOMMET.addEventListener("click",t=>{t.preventDefault(),window.scrollTo({behavior:"smooth",top:0}),e.BOUTON_MENU_MOBILE.focus({preventScroll:!0})})};document.addEventListener("DOMContentLoaded",()=>{d(),U()});
|
||||||
//# sourceMappingURL=scripts-bouton-retour-sommet.js.map
|
//# sourceMappingURL=scripts-bouton-retour-sommet.js.map
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
|
|
@ -1,2 +1,2 @@
|
||||||
import{z as a}from"./index.CuMLbxmh.js";import{b as i,e as o,R as E,f as u,g as R}from"./utils.DNv5smZT.js";import"./exports.1ijyAKMZ.js";document.addEventListener("DOMContentLoaded",()=>{const e=i(u),t=o(R);E.forEachWithIndex([t.at(0),t.at(-1)],(n,r)=>{r&&new IntersectionObserver(E.forEach(s=>{s.boundingClientRect.top<=0||a([s.isIntersecting,n]).with([!0,0],()=>e.removeAttribute("data-entrees-presentes-debut")).with([!0,1],()=>e.removeAttribute("data-entrees-presentes-fin")).with([!1,0],()=>e.setAttribute("data-entrees-presentes-debut","")).with([!1,1],()=>e.setAttribute("data-entrees-presentes-fin","")).run()}),{root:null,threshold:.9}).observe(r)})});
|
import{z as i}from"./index.CuMLbxmh.js";import{b as a,g as o,R as E,i as u,j as R}from"./utils.DS2YS0tX.js";import"./exports.1ijyAKMZ.js";document.addEventListener("DOMContentLoaded",()=>{const e=a(u),t=o(R);E.forEachWithIndex([t.at(0),t.at(-1)],(n,r)=>{r&&new IntersectionObserver(E.forEach(s=>{s.boundingClientRect.top<=0||i([s.isIntersecting,n]).with([!0,0],()=>e.removeAttribute("data-entrees-presentes-debut")).with([!0,1],()=>e.removeAttribute("data-entrees-presentes-fin")).with([!1,0],()=>e.setAttribute("data-entrees-presentes-debut","")).with([!1,1],()=>e.setAttribute("data-entrees-presentes-fin","")).run()}),{root:null,threshold:.9}).observe(r)})});
|
||||||
//# sourceMappingURL=scripts-menu-categories.js.map
|
//# sourceMappingURL=scripts-menu-categories.js.map
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -1,2 +1,2 @@
|
||||||
import{b as m,e as L,R as T,l as _,m as o,C as N,n as c,o as p,p as f,q as i}from"./utils.DNv5smZT.js";import{a0 as a}from"./exports.1ijyAKMZ.js";import{P as E}from"./index-c1cc4c86.BsIfgdq2.js";import"./belt_Option-91f3b350.y_XblYXp.js";const u=m(p),I=L(f),S=L(i),s=new Map;T.forEachWithIndex(I,(l,r)=>{a(r,E.flatMap(t=>t.getAttribute(_)),E.tap(t=>{s.set(t,[r,S[l]])}))});document.addEventListener("DOMContentLoaded",()=>{u.addEventListener("click",l=>{const r=l.target;a(r,E.fromPredicate(t=>t.className===N),E.mapNullable(t=>t.parentElement),E.flatMap(t=>t.getAttribute(_)),E.tap(t=>{a(E.fromNullable(s.get(t)),E.tap(T.forEach(e=>e.removeAttribute(o))))})),a(r,E.fromPredicate(t=>t.className===c),E.flatMap(t=>t.getAttribute(_)),E.tap(t=>{if(r.hasAttribute(o)){a(E.fromNullable(s.get(t)),E.tap(T.forEach(e=>e.removeAttribute(o))));return}a(Array.from(s.values()),T.flat,T.forEach(e=>e.removeAttribute(o))),a(E.fromNullable(s.get(t)),E.tap(T.forEach(e=>e.toggleAttribute(o))))}))})});
|
import{b as N,g as L,R as T,m as l,n as o,C as m,o as c,p as f,q as p,s as u}from"./utils.DS2YS0tX.js";import{a0 as a}from"./exports.1ijyAKMZ.js";import{P as E}from"./index-c1cc4c86.RjqwfILA.js";const I=N(f),i=L(p),S=L(u),s=new Map;T.forEachWithIndex(i,(_,r)=>{a(r,E.flatMap(t=>t.getAttribute(l)),E.tap(t=>{s.set(t,[r,S[_]])}))});document.addEventListener("DOMContentLoaded",()=>{I.addEventListener("click",_=>{const r=_.target;a(r,E.fromPredicate(t=>t.className===m),E.mapNullable(t=>t.parentElement),E.flatMap(t=>t.getAttribute(l)),E.tap(t=>{a(E.fromNullable(s.get(t)),E.tap(T.forEach(e=>e.removeAttribute(o))))})),a(r,E.fromPredicate(t=>t.className===c),E.flatMap(t=>t.getAttribute(l)),E.tap(t=>{if(r.hasAttribute(o)){a(E.fromNullable(s.get(t)),E.tap(T.forEach(e=>e.removeAttribute(o))));return}a(Array.from(s.values()),T.flat,T.forEach(e=>e.removeAttribute(o))),a(E.fromNullable(s.get(t)),E.tap(T.forEach(e=>e.toggleAttribute(o))))}))})});
|
||||||
//# sourceMappingURL=scripts-page-a-propos.js.map
|
//# sourceMappingURL=scripts-page-a-propos.js.map
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
|
|
@ -1,2 +1,2 @@
|
||||||
import{b as i,e as S,s as l,t as g,R as N,u as s,d as m}from"./utils.DNv5smZT.js";import{e as O}from"./nombres.n4VPN7qr.js";import{a0 as G}from"./exports.1ijyAKMZ.js";import{P as L}from"./index-c1cc4c86.BsIfgdq2.js";import"./belt_Option-91f3b350.y_XblYXp.js";const c=()=>{const e={CONTENEUR_STORYTELLING:i(".storytelling__conteneur"),IMAGES_STORYTELLING:S(l),STORYTELLING:i(g)};let E=e.IMAGES_STORYTELLING.at(0)?.getBoundingClientRect().height??0,n=0;const r=(t,T)=>{t.toggleAttribute(s,T),t.toggleAttribute(m,T)},I=()=>{console.time(),E=G(N.getBy(e.IMAGES_STORYTELLING,t=>!t.hasAttribute(s)),L.map(t=>t.getBoundingClientRect().height),L.getWithDefault(0)),e.CONTENEUR_STORYTELLING.style.minHeight=`${String(E*e.IMAGES_STORYTELLING.length+61)}px`,e.CONTENEUR_STORYTELLING.style.maxHeight=`${String(E*e.IMAGES_STORYTELLING.length+61)}px`,console.timeEnd()},o=()=>{n=e.STORYTELLING.scrollTop,e.IMAGES_STORYTELLING.forEach((t,T)=>{const a=E*T,R=E*(T+1);r(t,!O(n,a,R))})};new ResizeObserver(()=>{I(),o()}).observe(e.STORYTELLING),e.STORYTELLING.addEventListener("scroll",()=>o())};document.addEventListener("DOMContentLoaded",()=>{c()});
|
import{b as o,g as S,t as g,u as l,R as N,v as i,f as O}from"./utils.DS2YS0tX.js";import{e as G}from"./nombres.n4VPN7qr.js";import{a0 as m}from"./exports.1ijyAKMZ.js";import{P as s}from"./index-c1cc4c86.RjqwfILA.js";const c=()=>{const e={CONTENEUR_STORYTELLING:o(".storytelling__conteneur"),IMAGES_STORYTELLING:S(g),STORYTELLING:o(l)};let E=e.IMAGES_STORYTELLING.at(0)?.getBoundingClientRect().height??0,n=0;const r=(t,T)=>{t.toggleAttribute(i,T),t.toggleAttribute(O,T)},I=()=>{E=m(N.getBy(e.IMAGES_STORYTELLING,t=>!t.hasAttribute(i)),s.map(t=>t.getBoundingClientRect().height),s.getWithDefault(0)),e.CONTENEUR_STORYTELLING.style.minHeight=`${String(E*e.IMAGES_STORYTELLING.length+61)}px`,e.CONTENEUR_STORYTELLING.style.maxHeight=`${String(E*e.IMAGES_STORYTELLING.length+61)}px`},L=()=>{n=e.STORYTELLING.scrollTop,e.IMAGES_STORYTELLING.forEach((t,T)=>{const a=E*T,R=E*(T+1);r(t,!G(n,a,R))})};new ResizeObserver(()=>{I(),L()}).observe(e.STORYTELLING),e.STORYTELLING.addEventListener("scroll",()=>L())};document.addEventListener("DOMContentLoaded",()=>{c()});
|
||||||
//# sourceMappingURL=scripts-page-accueil.js.map
|
//# sourceMappingURL=scripts-page-accueil.js.map
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
{"version":3,"file":"scripts-page-accueil.js","sources":["../../src/scripts/scripts-page-accueil.ts"],"sourcesContent":["// Scripts pour la Page d'accueil\n\nimport { A, O, pipe } from \"@mobily/ts-belt\";\n\nimport {\n ATTRIBUT_ARIA_HIDDEN,\n ATTRIBUT_CACHE,\n SELECTEUR_CONTENEUR_STORYTELLING,\n SELECTEUR_IMAGES_STORYTELLING,\n} from \"./constantes/dom.ts\";\nimport { estEntreDeuxNombres } from \"./lib/nombres.ts\";\nimport { recupereEleOuLeve, recupereElesOuLeve } from \"./lib/utils.ts\";\n\nconst initialiseScrollStorytelling = (): void => {\n const E = {\n /** Le conteneur des images du storytelling. */\n CONTENEUR_STORYTELLING: recupereEleOuLeve<HTMLElement>(\".storytelling__conteneur\"),\n /** Les images du storytelling. */\n IMAGES_STORYTELLING: recupereElesOuLeve<HTMLDivElement>(SELECTEUR_IMAGES_STORYTELLING),\n /** Le bloc contenant le storytelling. */\n STORYTELLING: recupereEleOuLeve<HTMLElement>(SELECTEUR_CONTENEUR_STORYTELLING),\n };\n\n /** La hauteur d'une image du storytelling. */\n let hauteurImage = E.IMAGES_STORYTELLING.at(0)?.getBoundingClientRect().height ?? 0;\n /** La position du défilement (en pixels) du Conteneur des images du storytelling. */\n let positionDefilementConteneur = 0;\n\n /**\n * TODO\n * @param image\n * @param visible\n */\n const changeVisibiliteImage = (image: HTMLDivElement, visible: boolean) => {\n image.toggleAttribute(ATTRIBUT_CACHE, visible);\n image.toggleAttribute(ATTRIBUT_ARIA_HIDDEN, visible);\n };\n\n /**\n * TODO\n */\n const majDimensions = (): void => {\n console.time();\n hauteurImage = pipe(\n A.getBy(E.IMAGES_STORYTELLING, (i: HTMLDivElement) => !i.hasAttribute(ATTRIBUT_CACHE)),\n O.map((i: HTMLDivElement) => i.getBoundingClientRect().height),\n O.getWithDefault(0),\n );\n E.CONTENEUR_STORYTELLING.style.minHeight = `${String(hauteurImage * E.IMAGES_STORYTELLING.length + 61)}px`;\n E.CONTENEUR_STORYTELLING.style.maxHeight = `${String(hauteurImage * E.IMAGES_STORYTELLING.length + 61)}px`;\n console.timeEnd();\n };\n\n /**\n * TODO\n */\n const majImages = (): void => {\n // Met à jour la position du défilement dans le Conteneur\n positionDefilementConteneur = E.STORYTELLING.scrollTop;\n\n // Met à jour l'attribut de visibilité des images en fonction du défilement\n E.IMAGES_STORYTELLING.forEach((image: HTMLDivElement, index: number): void => {\n const debutYImage = hauteurImage * index;\n const finYImage = hauteurImage * (index + 1);\n\n changeVisibiliteImage(image, !estEntreDeuxNombres(positionDefilementConteneur, debutYImage, finYImage));\n });\n };\n\n // Initialise l'Observateur de Redimensionnement (ResizeObserver)\n new ResizeObserver((): void => {\n majDimensions();\n majImages();\n }).observe(E.STORYTELLING);\n\n // Initialise la mise à jour des images au défilement sur le Conteneur\n E.STORYTELLING.addEventListener(\"scroll\", (): void => majImages());\n};\n\ndocument.addEventListener(\"DOMContentLoaded\", (): void => {\n initialiseScrollStorytelling();\n});\n"],"names":["initialiseScrollStorytelling","E","recupereEleOuLeve","recupereElesOuLeve","SELECTEUR_IMAGES_STORYTELLING","SELECTEUR_CONTENEUR_STORYTELLING","hauteurImage","positionDefilementConteneur","changeVisibiliteImage","image","visible","ATTRIBUT_CACHE","ATTRIBUT_ARIA_HIDDEN","majDimensions","pipe","A","i","O","majImages","index","debutYImage","finYImage","estEntreDeuxNombres"],"mappings":"mQAaA,MAAMA,EAA+B,IAAY,CAC/C,MAAMC,EAAI,CAER,uBAAwBC,EAA+B,0BAA0B,EAEjF,oBAAqBC,EAAmCC,CAA6B,EAErF,aAAcF,EAA+BG,CAAgC,CAC/E,EAGI,IAAAC,EAAeL,EAAE,oBAAoB,GAAG,CAAC,GAAG,wBAAwB,QAAU,EAE9EM,EAA8B,EAO5B,MAAAC,EAAwB,CAACC,EAAuBC,IAAqB,CACnED,EAAA,gBAAgBE,EAAgBD,CAAO,EACvCD,EAAA,gBAAgBG,EAAsBF,CAAO,CACrD,EAKMG,EAAgB,IAAY,CAChC,QAAQ,KAAK,EACEP,EAAAQ,EACbC,EAAE,MAAMd,EAAE,oBAAsBe,GAAsB,CAACA,EAAE,aAAaL,CAAc,CAAC,EACrFM,EAAE,IAAKD,GAAsBA,EAAE,wBAAwB,MAAM,EAC7DC,EAAE,eAAe,CAAC,CACpB,EACEhB,EAAA,uBAAuB,MAAM,UAAY,GAAG,OAAOK,EAAeL,EAAE,oBAAoB,OAAS,EAAE,CAAC,KACpGA,EAAA,uBAAuB,MAAM,UAAY,GAAG,OAAOK,EAAeL,EAAE,oBAAoB,OAAS,EAAE,CAAC,KACtG,QAAQ,QAAQ,CAClB,EAKMiB,EAAY,IAAY,CAE5BX,EAA8BN,EAAE,aAAa,UAG7CA,EAAE,oBAAoB,QAAQ,CAACQ,EAAuBU,IAAwB,CAC5E,MAAMC,EAAcd,EAAea,EAC7BE,EAAYf,GAAgBa,EAAQ,GAE1CX,EAAsBC,EAAO,CAACa,EAAoBf,EAA6Ba,EAAaC,CAAS,CAAC,CAAA,CACvG,CACH,EAGA,IAAI,eAAe,IAAY,CACfR,EAAA,EACJK,EAAA,CAAA,CACX,EAAE,QAAQjB,EAAE,YAAY,EAGzBA,EAAE,aAAa,iBAAiB,SAAU,IAAYiB,GAAW,CACnE,EAEA,SAAS,iBAAiB,mBAAoB,IAAY,CAC3BlB,EAAA,CAC/B,CAAC"}
|
{"version":3,"file":"scripts-page-accueil.js","sources":["../../src/scripts/scripts-page-accueil.ts"],"sourcesContent":["// Scripts pour la Page d'accueil\n\nimport { A, O, pipe } from \"@mobily/ts-belt\";\n\nimport {\n ATTRIBUT_ARIA_HIDDEN,\n ATTRIBUT_CACHE,\n SELECTEUR_CONTENEUR_STORYTELLING,\n SELECTEUR_IMAGES_STORYTELLING,\n} from \"./constantes/dom.ts\";\nimport { estEntreDeuxNombres } from \"./lib/nombres.ts\";\nimport { recupereEleOuLeve, recupereElesOuLeve } from \"./lib/utils.ts\";\n\nconst initialiseScrollStorytelling = (): void => {\n const E = {\n /** Le conteneur des images du storytelling. */\n CONTENEUR_STORYTELLING: recupereEleOuLeve<HTMLElement>(\".storytelling__conteneur\"),\n /** Les images du storytelling. */\n IMAGES_STORYTELLING: recupereElesOuLeve<HTMLDivElement>(SELECTEUR_IMAGES_STORYTELLING),\n /** Le bloc contenant le storytelling. */\n STORYTELLING: recupereEleOuLeve<HTMLElement>(SELECTEUR_CONTENEUR_STORYTELLING),\n };\n\n /** La hauteur d'une image du storytelling. */\n let hauteurImage = E.IMAGES_STORYTELLING.at(0)?.getBoundingClientRect().height ?? 0;\n /** La position du défilement (en pixels) du Conteneur des images du storytelling. */\n let positionDefilementConteneur = 0;\n\n /**\n * TODO\n * @param image\n * @param visible\n */\n const changeVisibiliteImage = (image: HTMLDivElement, visible: boolean) => {\n image.toggleAttribute(ATTRIBUT_CACHE, visible);\n image.toggleAttribute(ATTRIBUT_ARIA_HIDDEN, visible);\n };\n\n /**\n * TODO\n */\n const majDimensions = (): void => {\n hauteurImage = pipe(\n A.getBy(E.IMAGES_STORYTELLING, (i: HTMLDivElement) => !i.hasAttribute(ATTRIBUT_CACHE)),\n O.map((i: HTMLDivElement) => i.getBoundingClientRect().height),\n O.getWithDefault(0),\n );\n E.CONTENEUR_STORYTELLING.style.minHeight = `${String(hauteurImage * E.IMAGES_STORYTELLING.length + 61)}px`;\n E.CONTENEUR_STORYTELLING.style.maxHeight = `${String(hauteurImage * E.IMAGES_STORYTELLING.length + 61)}px`;\n };\n\n /**\n * TODO\n */\n const majImages = (): void => {\n // Met à jour la position du défilement dans le Conteneur\n positionDefilementConteneur = E.STORYTELLING.scrollTop;\n\n // Met à jour l'attribut de visibilité des images en fonction du défilement\n E.IMAGES_STORYTELLING.forEach((image: HTMLDivElement, index: number): void => {\n const debutYImage = hauteurImage * index;\n const finYImage = hauteurImage * (index + 1);\n\n changeVisibiliteImage(image, !estEntreDeuxNombres(positionDefilementConteneur, debutYImage, finYImage));\n });\n };\n\n // Initialise l'Observateur de Redimensionnement (ResizeObserver)\n new ResizeObserver((): void => {\n majDimensions();\n majImages();\n }).observe(E.STORYTELLING);\n\n // Initialise la mise à jour des images au défilement sur le Conteneur\n E.STORYTELLING.addEventListener(\"scroll\", (): void => majImages());\n};\n\ndocument.addEventListener(\"DOMContentLoaded\", (): void => {\n initialiseScrollStorytelling();\n});\n"],"names":["initialiseScrollStorytelling","E","recupereEleOuLeve","recupereElesOuLeve","SELECTEUR_IMAGES_STORYTELLING","SELECTEUR_CONTENEUR_STORYTELLING","hauteurImage","positionDefilementConteneur","changeVisibiliteImage","image","visible","ATTRIBUT_CACHE","ATTRIBUT_ARIA_HIDDEN","majDimensions","pipe","A","i","O","majImages","index","debutYImage","finYImage","estEntreDeuxNombres"],"mappings":"wNAaA,MAAMA,EAA+B,IAAY,CAC/C,MAAMC,EAAI,CAER,uBAAwBC,EAA+B,0BAA0B,EAEjF,oBAAqBC,EAAmCC,CAA6B,EAErF,aAAcF,EAA+BG,CAAgC,CAC/E,EAGI,IAAAC,EAAeL,EAAE,oBAAoB,GAAG,CAAC,GAAG,wBAAwB,QAAU,EAE9EM,EAA8B,EAO5B,MAAAC,EAAwB,CAACC,EAAuBC,IAAqB,CACnED,EAAA,gBAAgBE,EAAgBD,CAAO,EACvCD,EAAA,gBAAgBG,EAAsBF,CAAO,CACrD,EAKMG,EAAgB,IAAY,CACjBP,EAAAQ,EACbC,EAAE,MAAMd,EAAE,oBAAsBe,GAAsB,CAACA,EAAE,aAAaL,CAAc,CAAC,EACrFM,EAAE,IAAKD,GAAsBA,EAAE,wBAAwB,MAAM,EAC7DC,EAAE,eAAe,CAAC,CACpB,EACEhB,EAAA,uBAAuB,MAAM,UAAY,GAAG,OAAOK,EAAeL,EAAE,oBAAoB,OAAS,EAAE,CAAC,KACpGA,EAAA,uBAAuB,MAAM,UAAY,GAAG,OAAOK,EAAeL,EAAE,oBAAoB,OAAS,EAAE,CAAC,IACxG,EAKMiB,EAAY,IAAY,CAE5BX,EAA8BN,EAAE,aAAa,UAG7CA,EAAE,oBAAoB,QAAQ,CAACQ,EAAuBU,IAAwB,CAC5E,MAAMC,EAAcd,EAAea,EAC7BE,EAAYf,GAAgBa,EAAQ,GAE1CX,EAAsBC,EAAO,CAACa,EAAoBf,EAA6Ba,EAAaC,CAAS,CAAC,CAAA,CACvG,CACH,EAGA,IAAI,eAAe,IAAY,CACfR,EAAA,EACJK,EAAA,CAAA,CACX,EAAE,QAAQjB,EAAE,YAAY,EAGzBA,EAAE,aAAa,iBAAiB,SAAU,IAAYiB,GAAW,CACnE,EAEA,SAAS,iBAAiB,mBAAoB,IAAY,CAC3BlB,EAAA,CAC/B,CAAC"}
|
||||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -1,2 +1,2 @@
|
||||||
import{z as U}from"./index.CuMLbxmh.js";import{h as g,i as v}from"./api.DpNqIphF.js";import{r as S,aw as D,ax as P,b as E,J as p,ay as M,az as w,a as F,aA as H,aB as f,aC as y,aD as B,aE as G,aF as x,R as i,aG as J,e as j,aH as k,aI as _,aJ as m,F as O,T as l,z as W,aK as V,aL as X,al as q,ao as z}from"./utils.DNv5smZT.js";import{a as K,e as Q,b as $}from"./gardes.CgXTclcl.js";import{f as Y,c as Z}from"./messages.B4HRoo_h.js";import{t as ee}from"./reseau.BY8-4gXm.js";import{o as N,a as d,n as A,c as te,s as C,j as re}from"./validation.CuPxXgCV.js";import{a0 as n}from"./exports.1ijyAKMZ.js";import{l as se}from"./index-0eef19ec.BdWpJoEP.js";import"./belt_Option-91f3b350.y_XblYXp.js";const ae=N({attribute:C(),value:C()}),oe=N({id:d(A()),quantity:d(A()),variation:d(te(ae))}),L=_etats,ne=a=>{a.forEach(r=>{r[0].setAttribute(m,"false"),r[1].setAttribute(O,"true")})},c=n(S(D),F),R=S(P),Ee=E(H),ie=n(p(M),f),ce=n(p(w),f),ue=()=>{const a=E(y),r=E(B),o=E(G),t=E(x),e=i.flat([E(J),j(k)]),s=()=>Number(t.getAttribute(_));i.forEachWithIndex([e.at(0),e.at(-1)],(u,I)=>{I&&(new IntersectionObserver(i.forEach(T=>U([T.isIntersecting,u]).with([!0,0],()=>a.removeAttribute("data-images-presentes-debut")).with([!0,1],()=>a.removeAttribute("data-images-presentes-fin")).with([!1,0],()=>a.setAttribute("data-images-presentes-debut","")).with([!1,1],()=>a.setAttribute("data-images-presentes-fin","")).otherwise(()=>{})),{root:null,rootMargin:"100% 0% 100% 0%",threshold:.5}).observe(I),i.forEachWithIndex(e,(T,h)=>new IntersectionObserver(i.forEach(b=>{b.isIntersecting&&t.setAttribute(_,String(T))}),{root:null,rootMargin:"100% 0% 100% 0%",threshold:.5}).observe(h)),r.addEventListener("click",()=>e[s()-1]?.scrollIntoView({behavior:"smooth",block:"nearest",inline:"center"})),o.addEventListener("click",()=>e[s()+1]?.scrollIntoView({behavior:"smooth",block:"nearest",inline:"center"})))})},Te=()=>{const a=new Map;ie.forEach((r,o)=>{const t=r.getAttribute("id"),e=ce[o];if(!t)throw new Error("Le lien ne dispose pas d'ID !");if(!e)throw new Error("Le lien ne dispose pas de section correspondante !");a.set(t,[r,e]),r.addEventListener("click",s=>{s.preventDefault();const u=r.getAttribute(m)==="true";ne(n(a.values(),Array.from)),!u&&(r.setAttribute(m,"true"),e.removeAttribute(O))})}),R.ifRight(r=>r.addEventListener("change",o=>{const t=n(l.fromNullable(o.target),e=>e.filter(K));n(t,e=>e.map(s=>s.validity.valid),e=>e.ifJust(s=>c.toggleAttribute(W,!s))),n(t,e=>e.chain(s=>l.fromNullable(s.selectedOptions[0])),e=>e.chain(s=>l.fromNullable(s.getAttribute(V))),e=>e.ifJust(s=>{Ee.textContent=`${s}€`}))})),c.addEventListener("click",r=>le())},le=()=>{c.textContent="Adding...";const a=R.map(o=>o.value).orDefault(String(L.idProduit)),r={id:Number(a),quantity:1};re(r,oe).map(o=>{fetch(g,{body:JSON.stringify(o),credentials:"same-origin",headers:{Accept:"application/json","Content-Type":"application/json",[v]:L.nonce},method:"POST",mode:"same-origin",signal:AbortSignal.timeout(5e3)}).then(async t=>{Q(t)&&X("500 Server Error"),n(await t.json(),e=>ee(e,Z),q.getUnsafe("items_count"),se.tap(e=>{c.textContent="Added to cart!",Y({quantiteProduits:e})}))}).catch(t=>{$(t)?(z(t),console.error(t)):console.error("e n'est pas une Erreur ?!",t),c.textContent="Add to cart"})}).ifLeft(o=>console.error(o.issues))};document.addEventListener("DOMContentLoaded",()=>{Te(),ue()});
|
import{z as O,N as n}from"./index.CuMLbxmh.js";import{o as m,a as _,n as N,c as D,s as R,j as U,V as g}from"./validation.p-hUfG_o.js";import{h as P}from"./api.DpNqIphF.js";import{b as i,R as o,g as I,r as v,ar as M,as as F,at as B,au as w,av as H,aw as G,ax as y,ay as J,az as V,aA as x,aB as k,aC as l,aD as C,G as h,V as q,B as u,aE as W,D as S,E as L,F as d,a1 as X,I as c,ac as j,f as z}from"./utils.DS2YS0tX.js";import{E as A,l as $,e as Q,p as K,c as Y}from"./reseau.C8CWV2JS.js";import{a as Z}from"./gardes.CUgVnuaB.js";import{g as ee,d as te}from"./messages.Qx8X6YMT.js";import{a0 as p}from"./exports.1ijyAKMZ.js";import{t as re}from"./index-c1cc4c86.RjqwfILA.js";const Ee=m({attribute:R(),value:R()}),ae=m({id:_(N()),quantity:_(N()),variation:_(D(Ee))}),f=_etats,se=s=>j(s,t=>{t.at(0)?.setAttribute(z,"false"),t.at(1)?.setAttribute(h,"true")}),e={BOUTON_AJOUT_PANIER:i(F),CONTENEUR_FLECHES_DEFILEMENT:i(B),FLECHE_DEFILEMENT_DROITE:i(w),FLECHE_DEFILEMENT_GAUCHE:i(H),IMAGES:o.flat([i(G),I(y)]),LIENS_ONGLETS:I(J),PHOTOS_PRODUIT:i(V),PRIX_PRODUIT:i(x),SECTIONS_CONTENUS:I(k),SELECTEUR_VARIATION:v(M)},ie=()=>{const s=()=>Number(e.PHOTOS_PRODUIT.getAttribute(l));o.forEachWithIndex([e.IMAGES.at(0),e.IMAGES.at(-1)],(t,r)=>{r&&(new IntersectionObserver(o.forEach(a=>O([a.isIntersecting,t]).with([!0,0],()=>e.CONTENEUR_FLECHES_DEFILEMENT.removeAttribute("data-images-presentes-debut")).with([!0,1],()=>e.CONTENEUR_FLECHES_DEFILEMENT.removeAttribute("data-images-presentes-fin")).with([!1,0],()=>e.CONTENEUR_FLECHES_DEFILEMENT.setAttribute("data-images-presentes-debut","")).with([!1,1],()=>e.CONTENEUR_FLECHES_DEFILEMENT.setAttribute("data-images-presentes-fin","")).otherwise(()=>{})),{root:null,rootMargin:"100% 0% 100% 0%",threshold:.5}).observe(r),o.forEachWithIndex(e.IMAGES,(a,E)=>new IntersectionObserver(o.forEach(T=>{T.isIntersecting&&e.PHOTOS_PRODUIT.setAttribute(l,String(a))}),{root:null,rootMargin:"100% 0% 100% 0%",threshold:.5}).observe(E)),e.FLECHE_DEFILEMENT_GAUCHE.addEventListener("click",()=>e.IMAGES[s()-1]?.scrollIntoView({behavior:"smooth",block:"nearest",inline:"center"})),e.FLECHE_DEFILEMENT_DROITE.addEventListener("click",()=>e.IMAGES[s()+1]?.scrollIntoView({behavior:"smooth",block:"nearest",inline:"center"})))})},ne=()=>{const s=new Map;e.LIENS_ONGLETS.forEach((t,r)=>{const a=t.getAttribute("id"),E=e.SECTIONS_CONTENUS[r];if(!a)throw new Error("Le lien ne dispose pas d'ID !");if(!E)throw new Error("Le lien ne dispose pas de section correspondante !");s.set(a,[t,E]),t.addEventListener("click",T=>{T.preventDefault();const b=t.getAttribute(C)==="true";se(p(s.values(),Array.from)),!b&&(t.setAttribute(C,"true"),E.removeAttribute(h))})}),e.SELECTEUR_VARIATION.ifRight(t=>t.addEventListener("change",r=>{const a=q.fromNullable(r.target).filter(Z);a.map(E=>E.validity.valid).ifJust(E=>e.BOUTON_AJOUT_PANIER.toggleAttribute(u,!E)),a.chainNullable(E=>E.selectedOptions[0]).chainNullable(E=>E.getAttribute(W)).ifJust(E=>{e.PRIX_PRODUIT.textContent=`${E}€`})})),e.BOUTON_AJOUT_PANIER.addEventListener("click",()=>oe())},oe=()=>{const s={id:e.SELECTEUR_VARIATION.map(t=>Number(t.value)).orDefault(f.idProduit),quantity:1};A.liftEither(U(s,ae)).ifRight(()=>{e.BOUTON_AJOUT_PANIER.setAttribute(u,""),e.BOUTON_AJOUT_PANIER.setAttribute(S,""),$(e.BOUTON_AJOUT_PANIER,500)}).chain(t=>Q(K({corps:JSON.stringify(t),nonce:f.nonce,route:P}))).chain(t=>A(async({throwE:r})=>O(await Y(t)).with({status:500},()=>r(new L("500 Server Error"))).with({status:400},()=>r(new d("400 Bad Request Error"))).with({status:201},a=>a.body).otherwise(a=>r(new Error(`Erreur inconnue ${String(a.status)}`))))).chain(t=>A.liftEither(U(t,te))).ifRight(t=>p(X(t,"items_count"),re(r=>{e.BOUTON_AJOUT_PANIER.textContent="Added to cart!",ee({quantiteProduits:r})}))).ifLeft(t=>{O(t).with(n.instanceOf(g),r=>{c(r),console.error(r.issues)}).with(n.instanceOf(L),n.instanceOf(d),r=>{c(r),console.error(r)}).with(n.instanceOf(DOMException),n.instanceOf(TypeError),n.instanceOf(Error),r=>{c(r),console.error(r)}).exhaustive(),e.BOUTON_AJOUT_PANIER.textContent="Add to cart"}).finally(()=>{e.BOUTON_AJOUT_PANIER.removeAttribute(S),e.BOUTON_AJOUT_PANIER.removeAttribute(u)}).run()};document.addEventListener("DOMContentLoaded",()=>{ne(),ie()});
|
||||||
//# sourceMappingURL=scripts-page-produit.js.map
|
//# sourceMappingURL=scripts-page-produit.js.map
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -69,7 +69,7 @@ button {
|
||||||
&.bouton-retour-haut {
|
&.bouton-retour-haut {
|
||||||
position: fixed;
|
position: fixed;
|
||||||
right: var(--espace-xl);
|
right: var(--espace-xl);
|
||||||
bottom: calc(var(--espace-xl) + var(--pied-de-page-hauteur));
|
bottom: calc(var(--espace-l) + var(--pied-de-page-hauteur));
|
||||||
transform: rotate(180deg);
|
transform: rotate(180deg);
|
||||||
padding: var(--espace-m);
|
padding: var(--espace-m);
|
||||||
visibility: hidden;
|
visibility: hidden;
|
||||||
|
|
|
||||||
|
|
@ -19,6 +19,7 @@ export const ATTRIBUT_LIVRAISON_VALIDEE = "data-livraison-validee";
|
||||||
export const ATTRIBUT_MENU_MOBILE_ACTIVE = "data-menu-mobile-active";
|
export const ATTRIBUT_MENU_MOBILE_ACTIVE = "data-menu-mobile-active";
|
||||||
export const ATTRIBUT_PAGE = "data-page";
|
export const ATTRIBUT_PAGE = "data-page";
|
||||||
export const ATTRIBUT_PRIX = "data-prix";
|
export const ATTRIBUT_PRIX = "data-prix";
|
||||||
|
export const ATTRIBUT_TABINDEX = "tabindex";
|
||||||
|
|
||||||
// En-tête
|
// En-tête
|
||||||
export const SELECTEUR_BOUTON_MENU_MOBILE = "#bouton-menu-mobile";
|
export const SELECTEUR_BOUTON_MENU_MOBILE = "#bouton-menu-mobile";
|
||||||
|
|
|
||||||
|
|
@ -53,7 +53,7 @@ const creeTransportFetch = (options: BrowserTransportOptions): Transport => {
|
||||||
/* Créé la configuration Sentry */
|
/* Créé la configuration Sentry */
|
||||||
const client = new BrowserClient({
|
const client = new BrowserClient({
|
||||||
dsn: import.meta.env.VITE_GLITCHTIP_NSD,
|
dsn: import.meta.env.VITE_GLITCHTIP_NSD,
|
||||||
environment: "development",
|
environment: "production",
|
||||||
integrations: [
|
integrations: [
|
||||||
breadcrumbsIntegration(),
|
breadcrumbsIntegration(),
|
||||||
dedupeIntegration(),
|
dedupeIntegration(),
|
||||||
|
|
@ -63,6 +63,7 @@ const client = new BrowserClient({
|
||||||
httpContextIntegration(),
|
httpContextIntegration(),
|
||||||
linkedErrorsIntegration(),
|
linkedErrorsIntegration(),
|
||||||
],
|
],
|
||||||
|
sendDefaultPii: true,
|
||||||
stackParser: defaultStackParser,
|
stackParser: defaultStackParser,
|
||||||
tracesSampleRate: 0.01,
|
tracesSampleRate: 0.01,
|
||||||
transport: creeTransportFetch,
|
transport: creeTransportFetch,
|
||||||
|
|
|
||||||
|
|
@ -97,10 +97,7 @@ export const leveNonExistingKeyError = (message: string): never => {
|
||||||
* @param erreur
|
* @param erreur
|
||||||
* @returns L'ID Sentry de l'évènement capturé.
|
* @returns L'ID Sentry de l'évènement capturé.
|
||||||
*/
|
*/
|
||||||
export const reporteErreur = <E extends Error>(erreur: E): string => {
|
export const reporteErreur = <E extends Error>(erreur: E): string => captureException(erreur);
|
||||||
console.error(erreur);
|
|
||||||
return captureException(erreur);
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Reporte une Erreur, sous forme d'erreur console et au service GlitchTip, puis la lève sous forme
|
* Reporte une Erreur, sous forme d'erreur console et au service GlitchTip, puis la lève sous forme
|
||||||
|
|
|
||||||
|
|
@ -38,7 +38,7 @@ import {
|
||||||
} from "../constantes/messages-utilisateur";
|
} from "../constantes/messages-utilisateur";
|
||||||
import { lanceAnimationCycleLoading } from "../lib/animations";
|
import { lanceAnimationCycleLoading } from "../lib/animations";
|
||||||
import { eitherJsonParse, eitherSessionStorageGet } from "../lib/dom";
|
import { eitherJsonParse, eitherSessionStorageGet } from "../lib/dom";
|
||||||
import { BadRequestError, leveErreur, NonExistingKeyError, ServerError } from "../lib/erreurs";
|
import { BadRequestError, leveErreur, NonExistingKeyError, reporteErreur, ServerError } from "../lib/erreurs";
|
||||||
import { ErreurAdresseInvalide } from "../lib/erreurs/adresses";
|
import { ErreurAdresseInvalide } from "../lib/erreurs/adresses";
|
||||||
import { emetUniqueMessageCanal } from "../lib/messages";
|
import { emetUniqueMessageCanal } from "../lib/messages";
|
||||||
import { diviseParCent, formateEnEuros } from "../lib/nombres";
|
import { diviseParCent, formateEnEuros } from "../lib/nombres";
|
||||||
|
|
@ -194,10 +194,12 @@ export const initialiseBoutonCalculLivraison = (): void => {
|
||||||
(erreur: BadRequestError | ErreurAdresseInvalide | FetchErrors | ServerError | ValiError<AnySchema>) => {
|
(erreur: BadRequestError | ErreurAdresseInvalide | FetchErrors | ServerError | ValiError<AnySchema>) => {
|
||||||
match(erreur)
|
match(erreur)
|
||||||
.with(P.instanceOf(ValiError), e => {
|
.with(P.instanceOf(ValiError), e => {
|
||||||
|
reporteErreur(e);
|
||||||
console.error(e.issues);
|
console.error(e.issues);
|
||||||
E.MESSAGE_ADRESSES.textContent = ERREUR_GENERIQUE_SOUMISSION_ADRESSES;
|
E.MESSAGE_ADRESSES.textContent = ERREUR_GENERIQUE_SOUMISSION_ADRESSES;
|
||||||
})
|
})
|
||||||
.with(P.instanceOf(ErreurAdresseInvalide), e => {
|
.with(P.instanceOf(ErreurAdresseInvalide), e => {
|
||||||
|
reporteErreur(e);
|
||||||
console.error(e, e.problemes);
|
console.error(e, e.problemes);
|
||||||
match(e.problemes)
|
match(e.problemes)
|
||||||
.when(p => pipe(dictValues(p), arrayFind(c => c === "The provided postcode is not valid")), () => {
|
.when(p => pipe(dictValues(p), arrayFind(c => c === "The provided postcode is not valid")), () => {
|
||||||
|
|
@ -208,10 +210,12 @@ export const initialiseBoutonCalculLivraison = (): void => {
|
||||||
});
|
});
|
||||||
})
|
})
|
||||||
.with(P.instanceOf(ServerError), P.instanceOf(BadRequestError), e => {
|
.with(P.instanceOf(ServerError), P.instanceOf(BadRequestError), e => {
|
||||||
|
reporteErreur(e);
|
||||||
console.error(e);
|
console.error(e);
|
||||||
E.MESSAGE_ADRESSES.textContent = ERREUR_GENERIQUE_SOUMISSION_ADRESSES;
|
E.MESSAGE_ADRESSES.textContent = ERREUR_GENERIQUE_SOUMISSION_ADRESSES;
|
||||||
})
|
})
|
||||||
.with(P.instanceOf(DOMException), P.instanceOf(TypeError), P.instanceOf(Error), e => {
|
.with(P.instanceOf(DOMException), P.instanceOf(TypeError), P.instanceOf(Error), e => {
|
||||||
|
reporteErreur(e);
|
||||||
console.error(e);
|
console.error(e);
|
||||||
E.MESSAGE_ADRESSES.textContent = ERREUR_GENERIQUE_RESEAU;
|
E.MESSAGE_ADRESSES.textContent = ERREUR_GENERIQUE_RESEAU;
|
||||||
})
|
})
|
||||||
|
|
@ -261,8 +265,14 @@ export const initialiseBoutonCreationCommande = (): void => {
|
||||||
// Traite de manière différenciée les Erreurs
|
// Traite de manière différenciée les Erreurs
|
||||||
.ifLeft((erreur: NonExistingKeyError | SyntaxError | ValiError<AnySchema>) => {
|
.ifLeft((erreur: NonExistingKeyError | SyntaxError | ValiError<AnySchema>) => {
|
||||||
match(erreur)
|
match(erreur)
|
||||||
.with(P.instanceOf(ValiError), e => console.error(e.issues))
|
.with(P.instanceOf(ValiError), e => {
|
||||||
.with(P.instanceOf(SyntaxError), P.instanceOf(NonExistingKeyError), e => console.error(e))
|
reporteErreur(e);
|
||||||
|
console.error(e.issues);
|
||||||
|
})
|
||||||
|
.with(P.instanceOf(SyntaxError), P.instanceOf(NonExistingKeyError), e => {
|
||||||
|
reporteErreur(e);
|
||||||
|
console.error(e);
|
||||||
|
})
|
||||||
.exhaustive();
|
.exhaustive();
|
||||||
|
|
||||||
// Nettoie un stockage de session erronné
|
// Nettoie un stockage de session erronné
|
||||||
|
|
@ -381,6 +391,7 @@ export const initialiseBoutonCreationCommande = (): void => {
|
||||||
.ifLeft((erreur: BadRequestError | DOMException | ServerError | TypeError | ValiError<AnySchema>) => {
|
.ifLeft((erreur: BadRequestError | DOMException | ServerError | TypeError | ValiError<AnySchema>) => {
|
||||||
match(erreur)
|
match(erreur)
|
||||||
.with(P.instanceOf(ValiError), e => {
|
.with(P.instanceOf(ValiError), e => {
|
||||||
|
reporteErreur(e);
|
||||||
console.error("ValiError", e.issues);
|
console.error("ValiError", e.issues);
|
||||||
E.MESSAGE_ADRESSES.textContent = ERREUR_GENERIQUE_CREATION_COMMANDE;
|
E.MESSAGE_ADRESSES.textContent = ERREUR_GENERIQUE_CREATION_COMMANDE;
|
||||||
})
|
})
|
||||||
|
|
@ -390,11 +401,15 @@ export const initialiseBoutonCreationCommande = (): void => {
|
||||||
P.instanceOf(ServerError),
|
P.instanceOf(ServerError),
|
||||||
P.instanceOf(TypeError),
|
P.instanceOf(TypeError),
|
||||||
e => {
|
e => {
|
||||||
|
reporteErreur(e);
|
||||||
console.error(e);
|
console.error(e);
|
||||||
E.MESSAGE_ADRESSES.textContent = ERREUR_GENERIQUE_CREATION_COMMANDE;
|
E.MESSAGE_ADRESSES.textContent = ERREUR_GENERIQUE_CREATION_COMMANDE;
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
.otherwise(e => console.error("erreur inconnu", e));
|
.otherwise(e => {
|
||||||
|
reporteErreur(e);
|
||||||
|
console.error("erreur inconnu", e);
|
||||||
|
});
|
||||||
|
|
||||||
// Désactive l'animation de chargement et rend le Bouton de nouveau cliquable
|
// Désactive l'animation de chargement et rend le Bouton de nouveau cliquable
|
||||||
E.BOUTON_ACTIONS_FORMULAIRE.removeAttribute(ATTRIBUT_CHARGEMENT);
|
E.BOUTON_ACTIONS_FORMULAIRE.removeAttribute(ATTRIBUT_CHARGEMENT);
|
||||||
|
|
|
||||||
|
|
@ -31,7 +31,7 @@ import {
|
||||||
import { NOM_CANAL_REVALIDATION_LIVRAISON } from "../constantes/messages";
|
import { NOM_CANAL_REVALIDATION_LIVRAISON } from "../constantes/messages";
|
||||||
import { lanceAnimationCycleLoading } from "../lib/animations";
|
import { lanceAnimationCycleLoading } from "../lib/animations";
|
||||||
import { accorderCibleASelecteur } from "../lib/dom";
|
import { accorderCibleASelecteur } from "../lib/dom";
|
||||||
import { ServerError } from "../lib/erreurs";
|
import { reporteErreur, ServerError } from "../lib/erreurs";
|
||||||
import { ErreurCodePromoInvalide } from "../lib/erreurs/codes-promo";
|
import { ErreurCodePromoInvalide } from "../lib/erreurs/codes-promo";
|
||||||
import { estReponse500 } from "../lib/gardes";
|
import { estReponse500 } from "../lib/gardes";
|
||||||
import { emetUniqueMessageCanal, reponseEstCodeErreurWC } from "../lib/messages";
|
import { emetUniqueMessageCanal, reponseEstCodeErreurWC } from "../lib/messages";
|
||||||
|
|
@ -149,19 +149,25 @@ export const initialiseElementsCodePromo = (): void => {
|
||||||
|
|
||||||
// Traite les Erreurs et affiche un Message à l'Utilisateur
|
// Traite les Erreurs et affiche un Message à l'Utilisateur
|
||||||
match(erreur)
|
match(erreur)
|
||||||
.with(P.instanceOf(ValiError), e => console.error("ValiError", e.issues))
|
.with(P.instanceOf(ValiError), e => {
|
||||||
|
reporteErreur(e);
|
||||||
|
console.error("ValiError", e.issues);
|
||||||
|
})
|
||||||
.with(P.instanceOf(ErreurCodePromoInvalide), e => {
|
.with(P.instanceOf(ErreurCodePromoInvalide), e => {
|
||||||
E.MESSAGE_CODE_PROMO.textContent = "This promo code does not exist.";
|
E.MESSAGE_CODE_PROMO.textContent = "This promo code does not exist.";
|
||||||
|
reporteErreur(e);
|
||||||
console.error(e);
|
console.error(e);
|
||||||
})
|
})
|
||||||
.with(P.instanceOf(ServerError), e => {
|
.with(P.instanceOf(ServerError), e => {
|
||||||
E.MESSAGE_CODE_PROMO.textContent =
|
E.MESSAGE_CODE_PROMO.textContent =
|
||||||
"Sorry, something went wrong! Please refresh the page and try again.";
|
"Sorry, something went wrong! Please refresh the page and try again.";
|
||||||
|
reporteErreur(e);
|
||||||
console.error(e);
|
console.error(e);
|
||||||
})
|
})
|
||||||
.with(P.instanceOf(TypeError), e => {
|
.with(P.instanceOf(TypeError), e => {
|
||||||
E.MESSAGE_CODE_PROMO.textContent =
|
E.MESSAGE_CODE_PROMO.textContent =
|
||||||
"Sorry, something went wrong! Please refresh the page and try again.";
|
"Sorry, something went wrong! Please refresh the page and try again.";
|
||||||
|
reporteErreur(e);
|
||||||
console.error(e);
|
console.error(e);
|
||||||
})
|
})
|
||||||
.exhaustive();
|
.exhaustive();
|
||||||
|
|
@ -223,9 +229,18 @@ export const initialiseElementsCodePromo = (): void => {
|
||||||
})
|
})
|
||||||
.ifLeft(erreur =>
|
.ifLeft(erreur =>
|
||||||
match(erreur)
|
match(erreur)
|
||||||
.with(P.instanceOf(ValiError), e => console.error("retour ajout code promo", e.issues))
|
.with(P.instanceOf(ValiError), e => {
|
||||||
.with(P.instanceOf(ServerError), e => console.error("retour ajout code promo", e))
|
reporteErreur(e);
|
||||||
.with(P.instanceOf(TypeError), e => console.error("retour ajout code promo", e))
|
console.error("retour ajout code promo", e.issues);
|
||||||
|
})
|
||||||
|
.with(P.instanceOf(ServerError), e => {
|
||||||
|
reporteErreur(e);
|
||||||
|
console.error("retour ajout code promo", e);
|
||||||
|
})
|
||||||
|
.with(P.instanceOf(TypeError), e => {
|
||||||
|
reporteErreur(e);
|
||||||
|
console.error("retour ajout code promo", e);
|
||||||
|
})
|
||||||
.exhaustive()
|
.exhaustive()
|
||||||
)
|
)
|
||||||
.finally(() => {
|
.finally(() => {
|
||||||
|
|
|
||||||
|
|
@ -147,6 +147,7 @@ export const initialiseActionsEntreesPanier = (): void => {
|
||||||
// Réactive les Boutons
|
// Réactive les Boutons
|
||||||
// pipe(entrees, arrayMap(recupereElementsEntreePanier), majActivationBoutons(true));
|
// pipe(entrees, arrayMap(recupereElementsEntreePanier), majActivationBoutons(true));
|
||||||
})
|
})
|
||||||
|
// TODO: ifLeft ?
|
||||||
.run();
|
.run();
|
||||||
});
|
});
|
||||||
})
|
})
|
||||||
|
|
@ -200,6 +201,7 @@ export const initialiseActionsEntreesPanier = (): void => {
|
||||||
// Réactive les Boutons
|
// Réactive les Boutons
|
||||||
// pipe(entrees, arrayMap(recupereElementsEntreePanier), majActivationBoutons(true));
|
// pipe(entrees, arrayMap(recupereElementsEntreePanier), majActivationBoutons(true));
|
||||||
})
|
})
|
||||||
|
// TODO: ifLeft ?
|
||||||
.run();
|
.run();
|
||||||
});
|
});
|
||||||
})
|
})
|
||||||
|
|
@ -255,6 +257,7 @@ export const initialiseActionsEntreesPanier = (): void => {
|
||||||
// Réactive les Boutons
|
// Réactive les Boutons
|
||||||
// pipe(entrees, arrayMap(recupereElementsEntreePanier), majActivationBoutons(true));
|
// pipe(entrees, arrayMap(recupereElementsEntreePanier), majActivationBoutons(true));
|
||||||
})
|
})
|
||||||
|
// TODO: ifLeft ?
|
||||||
.run();
|
.run();
|
||||||
});
|
});
|
||||||
})
|
})
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,12 @@ import { pipe } from "@mobily/ts-belt";
|
||||||
import { head as arrayHead } from "@mobily/ts-belt/Array";
|
import { head as arrayHead } from "@mobily/ts-belt/Array";
|
||||||
import { tap as optionTap } from "@mobily/ts-belt/Option";
|
import { tap as optionTap } from "@mobily/ts-belt/Option";
|
||||||
|
|
||||||
import { ATTRIBUT_ACTIF, ATTRIBUT_ARIA_HIDDEN } from "./constantes/dom";
|
import {
|
||||||
|
ATTRIBUT_ACTIF,
|
||||||
|
ATTRIBUT_ARIA_HIDDEN,
|
||||||
|
ATTRIBUT_TABINDEX,
|
||||||
|
SELECTEUR_BOUTON_MENU_MOBILE,
|
||||||
|
} from "./constantes/dom";
|
||||||
import { recupereEleOuLeve } from "./lib/utils";
|
import { recupereEleOuLeve } from "./lib/utils";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -17,61 +22,91 @@ import { recupereEleOuLeve } from "./lib/utils";
|
||||||
*/
|
*/
|
||||||
|
|
||||||
const E = {
|
const E = {
|
||||||
|
BOUTON_MENU_MOBILE: recupereEleOuLeve<HTMLButtonElement>(SELECTEUR_BOUTON_MENU_MOBILE),
|
||||||
BOUTON_RETOUR_SOMMET: recupereEleOuLeve<HTMLButtonElement>("#bouton-retour-haut"),
|
BOUTON_RETOUR_SOMMET: recupereEleOuLeve<HTMLButtonElement>("#bouton-retour-haut"),
|
||||||
CORPS_HTML: recupereEleOuLeve<HTMLBodyElement>("body"),
|
CORPS_HTML: recupereEleOuLeve<HTMLBodyElement>("body"),
|
||||||
IMAGE_BOUTON: recupereEleOuLeve<HTMLImageElement>("#bouton-retour-haut img"),
|
IMAGE_BOUTON: recupereEleOuLeve<HTMLImageElement>("#bouton-retour-haut img"),
|
||||||
};
|
};
|
||||||
|
|
||||||
const RATIO_MINIMUM_FENETRE_PAR_ECRAN = 2;
|
/** Le ratio minimum hauteur de page/hauteur de la fenêtre à atteindre pour que le Bouton soit nécessaire. */
|
||||||
|
const RATIO_MINIMUM_PAGE_PAR_FENETRE = 2;
|
||||||
|
|
||||||
|
/** Le ratio actuel hauteur de page/hauteur de la fenêtre. */
|
||||||
let ratioActuel = E.CORPS_HTML.getBoundingClientRect().height / window.innerHeight;
|
let ratioActuel = E.CORPS_HTML.getBoundingClientRect().height / window.innerHeight;
|
||||||
|
/** La position actuelle du défilement vertical dans la page. */
|
||||||
let defilementY = window.scrollY;
|
let defilementY = window.scrollY;
|
||||||
|
/** Indique qu'une étape de rafraîchissement via `requestAnimationFrame` a déjà été demandée. */
|
||||||
let etapePlanifiee = false;
|
let etapePlanifiee = false;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Retourne la position du défilement vertical dans la page.
|
||||||
|
*
|
||||||
|
* @returns Un nombre en pixels.
|
||||||
|
*/
|
||||||
const majDefilementY = (): number => window.scrollY;
|
const majDefilementY = (): number => window.scrollY;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param estVisible
|
||||||
|
*/
|
||||||
const majVisibiliteBouton = (estVisible: boolean): void => {
|
const majVisibiliteBouton = (estVisible: boolean): void => {
|
||||||
if (estVisible) {
|
if (estVisible) {
|
||||||
E.BOUTON_RETOUR_SOMMET.setAttribute(ATTRIBUT_ACTIF, "");
|
E.BOUTON_RETOUR_SOMMET.setAttribute(ATTRIBUT_ACTIF, "");
|
||||||
|
E.BOUTON_RETOUR_SOMMET.setAttribute(ATTRIBUT_TABINDEX, "99");
|
||||||
E.IMAGE_BOUTON.removeAttribute(ATTRIBUT_ARIA_HIDDEN);
|
E.IMAGE_BOUTON.removeAttribute(ATTRIBUT_ARIA_HIDDEN);
|
||||||
} else {
|
} else {
|
||||||
E.BOUTON_RETOUR_SOMMET.removeAttribute(ATTRIBUT_ACTIF);
|
E.BOUTON_RETOUR_SOMMET.removeAttribute(ATTRIBUT_ACTIF);
|
||||||
|
E.BOUTON_RETOUR_SOMMET.setAttribute(ATTRIBUT_TABINDEX, "-2");
|
||||||
E.IMAGE_BOUTON.setAttribute(ATTRIBUT_ARIA_HIDDEN, "");
|
E.IMAGE_BOUTON.setAttribute(ATTRIBUT_ARIA_HIDDEN, "");
|
||||||
}
|
}
|
||||||
etapePlanifiee = false;
|
etapePlanifiee = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Initialise le cycle de mises à jour du Bouton en fonction de la position du défilement dans la page et le recalcul
|
||||||
|
* de ces données au redimensionnement de la fenêtre.
|
||||||
|
*
|
||||||
|
* @returns void
|
||||||
|
*/
|
||||||
const initialiseObservationFenetre = (): void => {
|
const initialiseObservationFenetre = (): void => {
|
||||||
majVisibiliteBouton(defilementY > window.innerHeight * RATIO_MINIMUM_FENETRE_PAR_ECRAN);
|
window.addEventListener("scroll", (): void => {
|
||||||
|
// Met à jour la valeur du défilement vertical dans la page
|
||||||
|
defilementY = majDefilementY();
|
||||||
|
// Vérifie que le Ratio soit le bon
|
||||||
|
if (ratioActuel < RATIO_MINIMUM_PAGE_PAR_FENETRE) return;
|
||||||
|
// Attend la prochaine étape
|
||||||
|
if (etapePlanifiee) return;
|
||||||
|
|
||||||
new ResizeObserver(entrees => {
|
etapePlanifiee = true;
|
||||||
|
requestAnimationFrame((): void =>
|
||||||
|
majVisibiliteBouton(defilementY > (window.innerHeight * RATIO_MINIMUM_PAGE_PAR_FENETRE))
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
new ResizeObserver((entrees: Array<ResizeObserverEntry>): void => {
|
||||||
pipe(
|
pipe(
|
||||||
arrayHead(entrees),
|
arrayHead(entrees),
|
||||||
optionTap(_ => {
|
optionTap((_): void => {
|
||||||
ratioActuel = E.CORPS_HTML.getBoundingClientRect().height / window.innerHeight;
|
ratioActuel = E.CORPS_HTML.getBoundingClientRect().height / window.innerHeight;
|
||||||
defilementY = majDefilementY();
|
defilementY = majDefilementY();
|
||||||
}),
|
}),
|
||||||
);
|
);
|
||||||
}).observe(E.CORPS_HTML);
|
}).observe(E.CORPS_HTML);
|
||||||
|
|
||||||
window.addEventListener("scroll", () => {
|
// Déclenche la première mise à jour
|
||||||
// Met à jour la valeur du défilement
|
majVisibiliteBouton(defilementY > window.innerHeight * RATIO_MINIMUM_PAGE_PAR_FENETRE);
|
||||||
defilementY = majDefilementY();
|
|
||||||
// Vérifie que le Ratio est le bon
|
|
||||||
if (ratioActuel < RATIO_MINIMUM_FENETRE_PAR_ECRAN) return;
|
|
||||||
// Attend la prochaine étape
|
|
||||||
if (etapePlanifiee) return;
|
|
||||||
|
|
||||||
etapePlanifiee = true;
|
|
||||||
requestAnimationFrame(() =>
|
|
||||||
majVisibiliteBouton(defilementY > (window.innerHeight * RATIO_MINIMUM_FENETRE_PAR_ECRAN))
|
|
||||||
);
|
|
||||||
});
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Navigue au sommet de la page et focus sur le premier élément de la page qui peut le recevoir.
|
||||||
|
*
|
||||||
|
* @returns void
|
||||||
|
*/
|
||||||
const initialiseBoutonRetourSommet = (): void => {
|
const initialiseBoutonRetourSommet = (): void => {
|
||||||
E.BOUTON_RETOUR_SOMMET.addEventListener("click", (evenement: Event) => {
|
E.BOUTON_RETOUR_SOMMET.addEventListener("click", (evenement: Event): void => {
|
||||||
evenement.preventDefault();
|
evenement.preventDefault();
|
||||||
|
|
||||||
window.scrollTo({ behavior: "smooth", top: 0 });
|
window.scrollTo({ behavior: "smooth", top: 0 });
|
||||||
|
E.BOUTON_MENU_MOBILE.focus({ preventScroll: true });
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -40,7 +40,6 @@ const initialiseScrollStorytelling = (): void => {
|
||||||
* TODO
|
* TODO
|
||||||
*/
|
*/
|
||||||
const majDimensions = (): void => {
|
const majDimensions = (): void => {
|
||||||
console.time();
|
|
||||||
hauteurImage = pipe(
|
hauteurImage = pipe(
|
||||||
A.getBy(E.IMAGES_STORYTELLING, (i: HTMLDivElement) => !i.hasAttribute(ATTRIBUT_CACHE)),
|
A.getBy(E.IMAGES_STORYTELLING, (i: HTMLDivElement) => !i.hasAttribute(ATTRIBUT_CACHE)),
|
||||||
O.map((i: HTMLDivElement) => i.getBoundingClientRect().height),
|
O.map((i: HTMLDivElement) => i.getBoundingClientRect().height),
|
||||||
|
|
@ -48,7 +47,6 @@ const initialiseScrollStorytelling = (): void => {
|
||||||
);
|
);
|
||||||
E.CONTENEUR_STORYTELLING.style.minHeight = `${String(hauteurImage * E.IMAGES_STORYTELLING.length + 61)}px`;
|
E.CONTENEUR_STORYTELLING.style.minHeight = `${String(hauteurImage * E.IMAGES_STORYTELLING.length + 61)}px`;
|
||||||
E.CONTENEUR_STORYTELLING.style.maxHeight = `${String(hauteurImage * E.IMAGES_STORYTELLING.length + 61)}px`;
|
E.CONTENEUR_STORYTELLING.style.maxHeight = `${String(hauteurImage * E.IMAGES_STORYTELLING.length + 61)}px`;
|
||||||
console.timeEnd();
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -24,7 +24,7 @@ import {
|
||||||
} from "./constantes/dom.ts";
|
} from "./constantes/dom.ts";
|
||||||
import { lanceAnimationCycleLoading } from "./lib/animations.ts";
|
import { lanceAnimationCycleLoading } from "./lib/animations.ts";
|
||||||
import { html } from "./lib/dom.ts";
|
import { html } from "./lib/dom.ts";
|
||||||
import { BadRequestError, ServerError } from "./lib/erreurs.ts";
|
import { BadRequestError, reporteErreur, ServerError } from "./lib/erreurs.ts";
|
||||||
import { creeReponseSimplifiee, getBackendAvecParametresUrl } from "./lib/reseau.ts";
|
import { creeReponseSimplifiee, getBackendAvecParametresUrl } from "./lib/reseau.ts";
|
||||||
import { WCV3ProductsArgsSchema, WCV3ProductsSchema } from "./lib/schemas/api/v3/products.ts";
|
import { WCV3ProductsArgsSchema, WCV3ProductsSchema } from "./lib/schemas/api/v3/products.ts";
|
||||||
import { recupereEleOuLeve } from "./lib/utils.ts";
|
import { recupereEleOuLeve } from "./lib/utils.ts";
|
||||||
|
|
@ -145,8 +145,14 @@ const initialisePageBoutique = (): void => {
|
||||||
// 7. Traite les Erreurs et affiche un Message à l'Utilisateur
|
// 7. Traite les Erreurs et affiche un Message à l'Utilisateur
|
||||||
.ifLeft((erreur: APIProductsErrors) => {
|
.ifLeft((erreur: APIProductsErrors) => {
|
||||||
match(erreur)
|
match(erreur)
|
||||||
.with(P.instanceOf(ValiError), e => console.error("ValiError", e.issues))
|
.with(P.instanceOf(ValiError), e => {
|
||||||
.otherwise(e => console.error("Erreur", e));
|
reporteErreur(e);
|
||||||
|
console.error("ValiError", e.issues);
|
||||||
|
})
|
||||||
|
.otherwise(e => {
|
||||||
|
reporteErreur(e);
|
||||||
|
console.error("Erreur", e);
|
||||||
|
});
|
||||||
|
|
||||||
E.BOUTON_PLUS_DE_PRODUITS.textContent = "Error, try again?";
|
E.BOUTON_PLUS_DE_PRODUITS.textContent = "Error, try again?";
|
||||||
})
|
})
|
||||||
|
|
|
||||||
|
|
@ -1,15 +1,22 @@
|
||||||
// Scripts pour la Page Produit
|
// Scripts pour la Page Produit
|
||||||
|
|
||||||
import { A, D, F, pipe } from "@mobily/ts-belt";
|
import { A, pipe } from "@mobily/ts-belt";
|
||||||
import { type Either, Maybe } from "purify-ts";
|
import { forEach as arrayForEach } from "@mobily/ts-belt/Array";
|
||||||
import { match } from "ts-pattern";
|
import { get as dictGet } from "@mobily/ts-belt/Dict";
|
||||||
|
import { tap as optionTap } from "@mobily/ts-belt/Option";
|
||||||
|
import { EitherAsync, Maybe } from "purify-ts";
|
||||||
|
import { match, P } from "ts-pattern";
|
||||||
|
import { type AnySchema, ValiError } from "valibot";
|
||||||
|
|
||||||
import type { WCStoreCart } from "./lib/types/api/cart";
|
import type { WCStoreCart } from "./lib/types/api/cart";
|
||||||
import type { WCStoreCartAddItemArgs } from "./lib/types/api/cart-add-item.ts";
|
import type { WCStoreCartAddItemArgs } from "./lib/types/api/cart-add-item.ts";
|
||||||
|
import type { FetchErrors } from "./lib/types/reseau";
|
||||||
|
|
||||||
import { ENTETE_WC_NONCE, ROUTE_API_AJOUTE_ARTICLE_PANIER } from "./constantes/api.ts";
|
import { ROUTE_API_AJOUTE_ARTICLE_PANIER } from "./constantes/api.ts";
|
||||||
import {
|
import {
|
||||||
|
ATTRIBUT_ARIA_HIDDEN,
|
||||||
ATTRIBUT_ARIA_SELECTED,
|
ATTRIBUT_ARIA_SELECTED,
|
||||||
|
ATTRIBUT_CHARGEMENT,
|
||||||
ATTRIBUT_DESACTIVE,
|
ATTRIBUT_DESACTIVE,
|
||||||
ATTRIBUT_HIDDEN,
|
ATTRIBUT_HIDDEN,
|
||||||
ATTRIBUT_INDEX_IMAGE_ACTIVE,
|
ATTRIBUT_INDEX_IMAGE_ACTIVE,
|
||||||
|
|
@ -26,19 +33,14 @@ import {
|
||||||
SELECTEUR_SECTIONS_CONTENUS,
|
SELECTEUR_SECTIONS_CONTENUS,
|
||||||
SELECTEUR_SELECTEUR_QUANTITE,
|
SELECTEUR_SELECTEUR_QUANTITE,
|
||||||
} from "./constantes/dom";
|
} from "./constantes/dom";
|
||||||
import { recupereElementOuLeve, recupereElementsOuLeve } from "./lib/dom.ts";
|
import { lanceAnimationCycleLoading } from "./lib/animations.ts";
|
||||||
import { leveServerError, reporteErreur } from "./lib/erreurs.ts";
|
import { BadRequestError, reporteErreur, ServerError } from "./lib/erreurs.ts";
|
||||||
import { estError, estHTMLSelectElement, estReponse500 } from "./lib/gardes.ts";
|
import { estHTMLSelectElement } from "./lib/gardes.ts";
|
||||||
import { emetMessageMajBoutonPanier } from "./lib/messages.ts";
|
import { emetMessageMajBoutonPanier } from "./lib/messages.ts";
|
||||||
import { traiteReponseBackendWCSelonCodesHTTP } from "./lib/reseau.ts";
|
import { creeReponseSimplifiee, eitherAsyncFetch, postBackend } from "./lib/reseau.ts";
|
||||||
import { WCStoreCartAddItemArgsSchema } from "./lib/schemas/api/cart-add-item.ts";
|
import { WCStoreCartAddItemArgsSchema } from "./lib/schemas/api/cart-add-item.ts";
|
||||||
import { WCStoreCartSchema } from "./lib/schemas/api/cart.ts";
|
import { WCStoreCartSchema } from "./lib/schemas/api/cart.ts";
|
||||||
import {
|
import { recupereElementDocumentEither, recupereEleOuLeve, recupereElesOuLeve } from "./lib/utils.ts";
|
||||||
recupereElementDocumentEither,
|
|
||||||
recupereElementsDocumentEither,
|
|
||||||
recupereEleOuLeve,
|
|
||||||
recupereElesOuLeve,
|
|
||||||
} from "./lib/utils.ts";
|
|
||||||
import { eitherParse } from "./lib/validation.ts";
|
import { eitherParse } from "./lib/validation.ts";
|
||||||
|
|
||||||
type EnsembleLienContenu = [HTMLAnchorElement, HTMLElement];
|
type EnsembleLienContenu = [HTMLAnchorElement, HTMLElement];
|
||||||
|
|
@ -55,97 +57,81 @@ type EtatsPage = {
|
||||||
const ETATS_PAGE: EtatsPage = _etats;
|
const ETATS_PAGE: EtatsPage = _etats;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Fonction utilitaire pour déplier toutes les sections de la Boîte des Informations Produit, en ajustant les attributs correspondants.
|
* Fonction utilitaire pour déplier toutes les sections de la Boîte des Informations Produit en ajustant les attributs
|
||||||
|
* correspondants.
|
||||||
*/
|
*/
|
||||||
const deplieToutesSections = (ensembleLiensContenus: Array<EnsembleLienContenu>): void => {
|
const deplieToutesSections = (ensembleLiensContenus: Array<EnsembleLienContenu>): void =>
|
||||||
ensembleLiensContenus.forEach(ensemble => {
|
arrayForEach(ensembleLiensContenus, (ensemble: EnsembleLienContenu): void => {
|
||||||
ensemble[0].setAttribute(ATTRIBUT_ARIA_SELECTED, "false");
|
ensemble.at(0)?.setAttribute(ATTRIBUT_ARIA_HIDDEN, "false");
|
||||||
ensemble[1].setAttribute(ATTRIBUT_HIDDEN, "true");
|
ensemble.at(1)?.setAttribute(ATTRIBUT_HIDDEN, "true");
|
||||||
});
|
});
|
||||||
};
|
|
||||||
|
|
||||||
// Éléments d'intérêt
|
// Éléments d'intérêt
|
||||||
/** Le Bouton permettant l'ajout d'un Produit dans le Panier. */
|
const E = {
|
||||||
const BOUTON_AJOUT_PANIER: HTMLButtonElement = pipe(
|
BOUTON_AJOUT_PANIER: recupereEleOuLeve<HTMLButtonElement>(SELECTEUR_BOUTON_AJOUT_PANIER),
|
||||||
recupereElementDocumentEither<HTMLButtonElement>(SELECTEUR_BOUTON_AJOUT_PANIER),
|
CONTENEUR_FLECHES_DEFILEMENT: recupereEleOuLeve<HTMLDivElement>(SELECTEUR_CONTENEUR_FLECHES_DEFILEMENT),
|
||||||
recupereElementOuLeve,
|
FLECHE_DEFILEMENT_DROITE: recupereEleOuLeve<HTMLButtonElement>(SELECTEUR_FLECHE_DEFILEMENT_DROITE),
|
||||||
);
|
FLECHE_DEFILEMENT_GAUCHE: recupereEleOuLeve<HTMLButtonElement>(SELECTEUR_FLECHE_DEFILEMENT_GAUCHE),
|
||||||
/** Le Sélecteur de Variation de Produit. */
|
IMAGES: A.flat([
|
||||||
const SELECTEUR_VARIATION: Either<SyntaxError, HTMLSelectElement> = recupereElementDocumentEither<HTMLSelectElement>(
|
|
||||||
SELECTEUR_SELECTEUR_QUANTITE,
|
|
||||||
);
|
|
||||||
const PRIX_PRODUIT: HTMLParagraphElement = recupereEleOuLeve<HTMLParagraphElement>(
|
|
||||||
SELECTEUR_PRIX_PRODUIT,
|
|
||||||
);
|
|
||||||
/** */
|
|
||||||
const LIENS_ONGLETS: Array<HTMLAnchorElement> = pipe(
|
|
||||||
recupereElementsDocumentEither<HTMLAnchorElement>(SELECTEUR_LIENS_ONGLETS),
|
|
||||||
recupereElementsOuLeve,
|
|
||||||
);
|
|
||||||
/** */
|
|
||||||
const SECTIONS_CONTENUS: Array<HTMLElement> = pipe(
|
|
||||||
recupereElementsDocumentEither<HTMLElement>(SELECTEUR_SECTIONS_CONTENUS),
|
|
||||||
recupereElementsOuLeve,
|
|
||||||
);
|
|
||||||
|
|
||||||
const initialiseFlechesDefilementImages = (): void => {
|
|
||||||
const CONTENEUR_FLECHES_DEFILEMENT = recupereEleOuLeve<HTMLDivElement>(
|
|
||||||
SELECTEUR_CONTENEUR_FLECHES_DEFILEMENT,
|
|
||||||
);
|
|
||||||
const FLECHE_DEFILEMENT_GAUCHE = recupereEleOuLeve<HTMLButtonElement>(
|
|
||||||
SELECTEUR_FLECHE_DEFILEMENT_GAUCHE,
|
|
||||||
);
|
|
||||||
const FLECHE_DEFILEMENT_DROITE = recupereEleOuLeve<HTMLButtonElement>(
|
|
||||||
SELECTEUR_FLECHE_DEFILEMENT_DROITE,
|
|
||||||
);
|
|
||||||
const PHOTOS_PRODUIT = recupereEleOuLeve<HTMLElement>(SELECTEUR_PHOTOS_PRODUIT);
|
|
||||||
const IMAGES = A.flat([
|
|
||||||
recupereEleOuLeve<HTMLImageElement>(SELECTEUR_IMAGE_COLONNE_GAUCHE),
|
recupereEleOuLeve<HTMLImageElement>(SELECTEUR_IMAGE_COLONNE_GAUCHE),
|
||||||
recupereElesOuLeve<HTMLImageElement>(SELECTEUR_IMAGES_COLONNE_DROITE),
|
recupereElesOuLeve<HTMLImageElement>(SELECTEUR_IMAGES_COLONNE_DROITE),
|
||||||
]);
|
]),
|
||||||
|
LIENS_ONGLETS: recupereElesOuLeve<HTMLAnchorElement>(SELECTEUR_LIENS_ONGLETS),
|
||||||
|
PHOTOS_PRODUIT: recupereEleOuLeve<HTMLElement>(SELECTEUR_PHOTOS_PRODUIT),
|
||||||
|
PRIX_PRODUIT: recupereEleOuLeve<HTMLParagraphElement>(SELECTEUR_PRIX_PRODUIT),
|
||||||
|
SECTIONS_CONTENUS: recupereElesOuLeve<HTMLElement>(SELECTEUR_SECTIONS_CONTENUS),
|
||||||
|
SELECTEUR_VARIATION: recupereElementDocumentEither<HTMLSelectElement>(SELECTEUR_SELECTEUR_QUANTITE),
|
||||||
|
};
|
||||||
|
|
||||||
const recupereIndexImageCourante = (): number => Number(PHOTOS_PRODUIT.getAttribute(ATTRIBUT_INDEX_IMAGE_ACTIVE));
|
const initialiseFlechesDefilementImages = (): void => {
|
||||||
|
const recupereIndexImageCourante = (): number => Number(E.PHOTOS_PRODUIT.getAttribute(ATTRIBUT_INDEX_IMAGE_ACTIVE));
|
||||||
|
|
||||||
// Affiche et cache en fonction de la position de défilement
|
// Affiche et cache en fonction de la position de défilement
|
||||||
A.forEachWithIndex([IMAGES.at(0), IMAGES.at(-1)], (index, image) => {
|
A.forEachWithIndex([E.IMAGES.at(0), E.IMAGES.at(-1)], (index, image) => {
|
||||||
if (!image) return;
|
if (!image) return;
|
||||||
|
|
||||||
// Change les attributs gérant l'affichage des flèches de défilement
|
// Change les attributs gérants l'affichage des flèches de défilement
|
||||||
new IntersectionObserver(
|
new IntersectionObserver(
|
||||||
A.forEach(entree =>
|
A.forEach(entree =>
|
||||||
match([entree.isIntersecting, index])
|
match([entree.isIntersecting, index])
|
||||||
.with([true, 0], () => CONTENEUR_FLECHES_DEFILEMENT.removeAttribute("data-images-presentes-debut"))
|
.with([true, 0], () => E.CONTENEUR_FLECHES_DEFILEMENT.removeAttribute("data-images-presentes-debut"))
|
||||||
.with([true, 1], () => CONTENEUR_FLECHES_DEFILEMENT.removeAttribute("data-images-presentes-fin"))
|
.with([true, 1], () => E.CONTENEUR_FLECHES_DEFILEMENT.removeAttribute("data-images-presentes-fin"))
|
||||||
.with([false, 0], () => CONTENEUR_FLECHES_DEFILEMENT.setAttribute("data-images-presentes-debut", ""))
|
.with([false, 0], () => E.CONTENEUR_FLECHES_DEFILEMENT.setAttribute("data-images-presentes-debut", ""))
|
||||||
.with([false, 1], () => CONTENEUR_FLECHES_DEFILEMENT.setAttribute("data-images-presentes-fin", ""))
|
.with([false, 1], () => E.CONTENEUR_FLECHES_DEFILEMENT.setAttribute("data-images-presentes-fin", ""))
|
||||||
.otherwise(() => void 0)
|
.otherwise(() => void 0)
|
||||||
),
|
),
|
||||||
{ root: null, rootMargin: "100% 0% 100% 0%", threshold: 0.5 },
|
{ root: null, rootMargin: "100% 0% 100% 0%", threshold: 0.5 },
|
||||||
).observe(image);
|
).observe(image);
|
||||||
|
|
||||||
// Change l'index de l'Image active en fonction du défilement
|
// Change l'index de l'Image active en fonction du défilement
|
||||||
A.forEachWithIndex(IMAGES, (index, image) =>
|
A.forEachWithIndex(E.IMAGES, (index, image) =>
|
||||||
new IntersectionObserver(
|
new IntersectionObserver(
|
||||||
A.forEach(entree => {
|
A.forEach(entree => {
|
||||||
if (!entree.isIntersecting) return;
|
if (!entree.isIntersecting) return;
|
||||||
PHOTOS_PRODUIT.setAttribute(ATTRIBUT_INDEX_IMAGE_ACTIVE, String(index));
|
E.PHOTOS_PRODUIT.setAttribute(ATTRIBUT_INDEX_IMAGE_ACTIVE, String(index));
|
||||||
}),
|
}),
|
||||||
{ root: null, rootMargin: "100% 0% 100% 0%", threshold: 0.5 },
|
{ root: null, rootMargin: "100% 0% 100% 0%", threshold: 0.5 },
|
||||||
).observe(image));
|
).observe(image));
|
||||||
|
|
||||||
// Défile au clic sur les flèches
|
// Défile au clic sur les flèches
|
||||||
FLECHE_DEFILEMENT_GAUCHE.addEventListener("click", () =>
|
E.FLECHE_DEFILEMENT_GAUCHE.addEventListener(
|
||||||
IMAGES[recupereIndexImageCourante() - 1]?.scrollIntoView({
|
"click",
|
||||||
behavior: "smooth",
|
() =>
|
||||||
block: "nearest",
|
E.IMAGES[recupereIndexImageCourante() - 1]?.scrollIntoView({
|
||||||
inline: "center",
|
behavior: "smooth",
|
||||||
}));
|
block: "nearest",
|
||||||
FLECHE_DEFILEMENT_DROITE.addEventListener("click", () =>
|
inline: "center",
|
||||||
IMAGES[recupereIndexImageCourante() + 1]?.scrollIntoView({
|
}),
|
||||||
behavior: "smooth",
|
);
|
||||||
block: "nearest",
|
E.FLECHE_DEFILEMENT_DROITE.addEventListener(
|
||||||
inline: "center",
|
"click",
|
||||||
}));
|
() =>
|
||||||
|
E.IMAGES[recupereIndexImageCourante() + 1]?.scrollIntoView({
|
||||||
|
behavior: "smooth",
|
||||||
|
block: "nearest",
|
||||||
|
inline: "center",
|
||||||
|
}),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -153,23 +139,26 @@ const gereBoiteInformationsProduit = (): void => {
|
||||||
const onglets = new Map<string, EnsembleLienContenu>();
|
const onglets = new Map<string, EnsembleLienContenu>();
|
||||||
|
|
||||||
// Créé la Map avec les ensembles Lien-Contenu
|
// Créé la Map avec les ensembles Lien-Contenu
|
||||||
LIENS_ONGLETS.forEach((lien, index) => {
|
E.LIENS_ONGLETS.forEach((lien, index): void => {
|
||||||
const idOnglet: null | string = lien.getAttribute("id");
|
const idOnglet: null | string = lien.getAttribute("id");
|
||||||
const sectionCorrespondante: HTMLElement | undefined = SECTIONS_CONTENUS[index];
|
const sectionCorrespondante: HTMLElement | undefined = E.SECTIONS_CONTENUS[index];
|
||||||
|
|
||||||
if (!idOnglet) throw new Error("Le lien ne dispose pas d'ID !");
|
if (!idOnglet) throw new Error("Le lien ne dispose pas d'ID !");
|
||||||
if (!sectionCorrespondante) throw new Error("Le lien ne dispose pas de section correspondante !");
|
if (!sectionCorrespondante) throw new Error("Le lien ne dispose pas de section correspondante !");
|
||||||
|
|
||||||
onglets.set(idOnglet, [lien, sectionCorrespondante]);
|
onglets.set(idOnglet, [lien, sectionCorrespondante]);
|
||||||
|
|
||||||
lien.addEventListener("click", e => {
|
lien.addEventListener("click", (evenement: Event): void => {
|
||||||
// Empêche la pollution de l'historique de navigation
|
// Empêche la pollution de l'historique de navigation
|
||||||
e.preventDefault();
|
evenement.preventDefault();
|
||||||
|
|
||||||
// Sauvegarde l'état d'ouverture de la section avant de toutes les fermer
|
// Sauvegarde l'état d'ouverture de la section avant de toutes les fermer
|
||||||
const estAncienOngletCourant: boolean = lien.getAttribute(ATTRIBUT_ARIA_SELECTED) === "true";
|
const estAncienOngletCourant: boolean = lien.getAttribute(ATTRIBUT_ARIA_SELECTED) === "true";
|
||||||
deplieToutesSections(pipe(onglets.values(), Array.from<EnsembleLienContenu>));
|
deplieToutesSections(pipe(onglets.values(), Array.from<EnsembleLienContenu>));
|
||||||
|
|
||||||
// Ne fais rien de plus si l'onglet sélectionné était le courant
|
// Ne fais rien de plus si l'onglet sélectionné était le courant
|
||||||
if (estAncienOngletCourant) return;
|
if (estAncienOngletCourant) return;
|
||||||
|
|
||||||
// Ouvre le nouvel onglet sélectionné
|
// Ouvre le nouvel onglet sélectionné
|
||||||
lien.setAttribute(ATTRIBUT_ARIA_SELECTED, "true");
|
lien.setAttribute(ATTRIBUT_ARIA_SELECTED, "true");
|
||||||
sectionCorrespondante.removeAttribute(ATTRIBUT_HIDDEN);
|
sectionCorrespondante.removeAttribute(ATTRIBUT_HIDDEN);
|
||||||
|
|
@ -177,108 +166,117 @@ const gereBoiteInformationsProduit = (): void => {
|
||||||
});
|
});
|
||||||
|
|
||||||
// Ajoute des Écouteurs d'Événements
|
// Ajoute des Écouteurs d'Événements
|
||||||
SELECTEUR_VARIATION.ifRight(selecteur =>
|
E.SELECTEUR_VARIATION.ifRight(selecteur =>
|
||||||
selecteur.addEventListener("change", evenement => {
|
selecteur.addEventListener("change", (evenement: Event): void => {
|
||||||
const cibleSelecteur = pipe(
|
const cibleSelecteur: Maybe<HTMLSelectElement> = Maybe
|
||||||
Maybe.fromNullable(evenement.target),
|
.fromNullable(evenement.target)
|
||||||
cibleEvenement => cibleEvenement.filter(estHTMLSelectElement),
|
.filter(estHTMLSelectElement);
|
||||||
);
|
|
||||||
|
|
||||||
// Active le Bouton si le Sélecteur est valide
|
// Active le Bouton si le Sélecteur est valide
|
||||||
pipe(
|
cibleSelecteur
|
||||||
cibleSelecteur,
|
.map(v => v.validity.valid)
|
||||||
element => element.map(v => v.validity.valid),
|
.ifJust((v: boolean) => E.BOUTON_AJOUT_PANIER.toggleAttribute(ATTRIBUT_DESACTIVE, !v));
|
||||||
validite => validite.ifJust((v: boolean) => BOUTON_AJOUT_PANIER.toggleAttribute(ATTRIBUT_DESACTIVE, !v)),
|
|
||||||
);
|
|
||||||
|
|
||||||
// Met à jour le prix affiché pour la Variation
|
// Met à jour le prix affiché pour la Variation
|
||||||
pipe(
|
cibleSelecteur
|
||||||
cibleSelecteur,
|
.chainNullable(s => s.selectedOptions[0])
|
||||||
selecteur => selecteur.chain(s => Maybe.fromNullable(s.selectedOptions[0])),
|
.chainNullable(e => e.getAttribute(ATTRIBUT_PRIX))
|
||||||
option => option.chain(e => Maybe.fromNullable(e.getAttribute(ATTRIBUT_PRIX))),
|
.ifJust(p => {
|
||||||
prix =>
|
E.PRIX_PRODUIT.textContent = `${p}€`;
|
||||||
prix.ifJust(p => {
|
});
|
||||||
PRIX_PRODUIT.textContent = `${p}€`;
|
|
||||||
}),
|
|
||||||
);
|
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
BOUTON_AJOUT_PANIER.addEventListener("click", _ => ajouteProduitAuPanier());
|
E.BOUTON_AJOUT_PANIER.addEventListener("click", (): void => ajouteProduitAuPanier());
|
||||||
};
|
};
|
||||||
|
|
||||||
const ajouteProduitAuPanier = () => {
|
const ajouteProduitAuPanier = (): void => {
|
||||||
// Déclenche l'etat de chargement
|
|
||||||
BOUTON_AJOUT_PANIER.textContent = "Adding...";
|
|
||||||
|
|
||||||
// Construis les arguments de la requête au backend
|
// Construis les arguments de la requête au backend
|
||||||
const idProduit: string = SELECTEUR_VARIATION
|
const argsRequete: WCStoreCartAddItemArgs = {
|
||||||
.map(selecteur => selecteur.value)
|
id: E.SELECTEUR_VARIATION
|
||||||
.orDefault(String(ETATS_PAGE.idProduit));
|
.map((selecteur: HTMLSelectElement): number => Number(selecteur.value))
|
||||||
const args: WCStoreCartAddItemArgs = {
|
// Récupère l'ID du Produit de la Page pour les Produits simples
|
||||||
id: Number(idProduit),
|
.orDefault(ETATS_PAGE.idProduit),
|
||||||
quantity: 1,
|
quantity: 1,
|
||||||
};
|
};
|
||||||
|
|
||||||
// Exécute la requête
|
// Réalise la Requête et traite sa Réponse
|
||||||
eitherParse<typeof WCStoreCartAddItemArgsSchema>(args, WCStoreCartAddItemArgsSchema)
|
void EitherAsync
|
||||||
.map((args: WCStoreCartAddItemArgs) => {
|
// 1. Valide les arguments de la Requête
|
||||||
fetch(ROUTE_API_AJOUTE_ARTICLE_PANIER, {
|
.liftEither(eitherParse(argsRequete, WCStoreCartAddItemArgsSchema))
|
||||||
body: JSON.stringify(args),
|
// 2. Exécute un Effet pour empêcher les requêtes concurrentes et lancer une animation de chargement
|
||||||
credentials: "same-origin",
|
.ifRight(() => {
|
||||||
headers: {
|
// Désactive le Bouton pour empêcher des requêtes concurrentes
|
||||||
Accept: "application/json",
|
E.BOUTON_AJOUT_PANIER.setAttribute(ATTRIBUT_DESACTIVE, "");
|
||||||
"Content-Type": "application/json",
|
E.BOUTON_AJOUT_PANIER.setAttribute(ATTRIBUT_CHARGEMENT, "");
|
||||||
[ENTETE_WC_NONCE]: ETATS_PAGE.nonce,
|
|
||||||
},
|
|
||||||
method: "POST",
|
|
||||||
mode: "same-origin",
|
|
||||||
signal: AbortSignal.timeout(5000),
|
|
||||||
})
|
|
||||||
.then(async (reponse: Response) => {
|
|
||||||
// Traite le cas d'erreur 500
|
|
||||||
if (estReponse500(reponse)) leveServerError("500 Server Error");
|
|
||||||
|
|
||||||
pipe(
|
// Lance un cycle d'animation sur le texte de chargement
|
||||||
// Récupère la Réponse
|
lanceAnimationCycleLoading(E.BOUTON_AJOUT_PANIER, 500);
|
||||||
await reponse.json(),
|
})
|
||||||
// Traite tous les codes HTTPs possibles
|
// 3. Exécute la requête via fetch sous forme d'EitherAsync
|
||||||
(corpsReponse: unknown) =>
|
.chain((args: WCStoreCartAddItemArgs) =>
|
||||||
traiteReponseBackendWCSelonCodesHTTP<WCStoreCart, typeof WCStoreCartSchema>(
|
eitherAsyncFetch(
|
||||||
corpsReponse,
|
postBackend({
|
||||||
WCStoreCartSchema,
|
corps: JSON.stringify(args),
|
||||||
),
|
nonce: ETATS_PAGE.nonce,
|
||||||
// Récupère le nombre de Produits dans la Panier
|
route: ROUTE_API_AJOUTE_ARTICLE_PANIER,
|
||||||
D.getUnsafe("items_count"),
|
}),
|
||||||
// Déclenche les effets pour la mise à jour de l'IU
|
)
|
||||||
F.tap((nombreArticlesPanier: number) => {
|
)
|
||||||
BOUTON_AJOUT_PANIER.textContent = "Added to cart!";
|
// 4. Traite les cas d'Erreurs et récupère le Corps de la Réponse
|
||||||
emetMessageMajBoutonPanier({ quantiteProduits: nombreArticlesPanier });
|
.chain((reponse: Response) =>
|
||||||
|
EitherAsync<BadRequestError | ServerError, unknown>(async ({ throwE }) =>
|
||||||
// TODO: Prévoir un cas où ce Timeout est annulé quand l'Utilisateur agit avant sur le Sélecteur
|
// Simplifie les données à matcher
|
||||||
// setTimeout(() => {
|
match(await creeReponseSimplifiee(reponse))
|
||||||
// SELECTEUR_VARIATION.ifRight(selecteur => {
|
.with({ status: 500 }, () => throwE(new ServerError("500 Server Error")))
|
||||||
// selecteur.value = selecteur.options.item(0)?.value ?? "--";
|
.with({ status: 400 }, () => throwE(new BadRequestError("400 Bad Request Error")))
|
||||||
// });
|
.with({ status: 201 }, r => r.body)
|
||||||
// BOUTON_AJOUT_PANIER.toggleAttribute(ATTRIBUT_DESACTIVE, true);
|
.otherwise(erreur => throwE(new Error(`Erreur inconnue ${String(erreur.status)}`)))
|
||||||
// BOUTON_AJOUT_PANIER.textContent = "Add to cart";
|
)
|
||||||
// }, 3000);
|
)
|
||||||
}),
|
// 5. Vérifie le Schéma de la Réponse
|
||||||
);
|
.chain((corpsReponse: unknown) => EitherAsync.liftEither(eitherParse(corpsReponse, WCStoreCartSchema)))
|
||||||
})
|
// 6. Exécute un Effet pour la mise à jour du DOM avec les Résultats
|
||||||
.catch((e: unknown) => {
|
.ifRight((panier: WCStoreCart) =>
|
||||||
if (estError(e)) {
|
pipe(
|
||||||
|
dictGet(panier, "items_count"),
|
||||||
|
optionTap((totalArticles: number) => {
|
||||||
|
E.BOUTON_AJOUT_PANIER.textContent = "Added to cart!";
|
||||||
|
emetMessageMajBoutonPanier({ quantiteProduits: totalArticles });
|
||||||
|
}),
|
||||||
|
)
|
||||||
|
)
|
||||||
|
.ifLeft(
|
||||||
|
(erreur: BadRequestError | FetchErrors | ServerError | ValiError<AnySchema>) => {
|
||||||
|
match(erreur)
|
||||||
|
.with(P.instanceOf(ValiError), e => {
|
||||||
|
reporteErreur(e);
|
||||||
|
console.error(e.issues);
|
||||||
|
// E.MESSAGE_ADRESSES.textContent = ERREUR_GENERIQUE_SOUMISSION_ADRESSES;
|
||||||
|
})
|
||||||
|
.with(P.instanceOf(ServerError), P.instanceOf(BadRequestError), e => {
|
||||||
reporteErreur(e);
|
reporteErreur(e);
|
||||||
console.error(e);
|
console.error(e);
|
||||||
} else {
|
// E.MESSAGE_ADRESSES.textContent = ERREUR_GENERIQUE_SOUMISSION_ADRESSES;
|
||||||
console.error("e n'est pas une Erreur ?!", e);
|
})
|
||||||
}
|
.with(P.instanceOf(DOMException), P.instanceOf(TypeError), P.instanceOf(Error), e => {
|
||||||
BOUTON_AJOUT_PANIER.textContent = "Add to cart";
|
reporteErreur(e);
|
||||||
});
|
console.error(e);
|
||||||
|
// E.MESSAGE_ADRESSES.textContent = ERREUR_GENERIQUE_RESEAU;
|
||||||
|
})
|
||||||
|
.exhaustive();
|
||||||
|
|
||||||
|
E.BOUTON_AJOUT_PANIER.textContent = "Add to cart";
|
||||||
|
},
|
||||||
|
)
|
||||||
|
.finally((): void => {
|
||||||
|
// Désactive l'animation de chargement et rend le Bouton de nouveau cliquable
|
||||||
|
E.BOUTON_AJOUT_PANIER.removeAttribute(ATTRIBUT_CHARGEMENT);
|
||||||
|
E.BOUTON_AJOUT_PANIER.removeAttribute(ATTRIBUT_DESACTIVE);
|
||||||
})
|
})
|
||||||
.ifLeft(e => console.error(e.issues));
|
.run();
|
||||||
};
|
};
|
||||||
|
|
||||||
document.addEventListener("DOMContentLoaded", () => {
|
document.addEventListener("DOMContentLoaded", (): void => {
|
||||||
gereBoiteInformationsProduit();
|
gereBoiteInformationsProduit();
|
||||||
initialiseFlechesDefilementImages();
|
initialiseFlechesDefilementImages();
|
||||||
});
|
});
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue