2024-11-27
This commit is contained in:
parent
7623335fa8
commit
fb2f8372f2
111 changed files with 922 additions and 958 deletions
|
|
@ -438,6 +438,50 @@ ul.avec-puce-cercle a {
|
|||
background: no-repeat var(--liste-puce-cercle-puce-position-horizontale) center/var(--liste-puce-cercle-puce-taille) url("/app/themes/haiku-atelier-2024/assets/img/icons/dot.svg"); /* 2 */
|
||||
}
|
||||
|
||||
/* * Styles pour un bandeau défilant. */
|
||||
.bandeau {
|
||||
overflow: hidden;
|
||||
display: flex;
|
||||
column-gap: var(--espace-m);
|
||||
width: 100%;
|
||||
font-style: italic;
|
||||
color: var(--couleur-noir);
|
||||
text-transform: uppercase;
|
||||
white-space: nowrap;
|
||||
background: var(--couleur-jaune);
|
||||
border-top: 1px solid var(--couleur-noir);
|
||||
}
|
||||
.bandeau__conteneur {
|
||||
display: flex;
|
||||
flex-flow: row nowrap;
|
||||
column-gap: var(--espace-m);
|
||||
animation: marquee linear 15s infinite both;
|
||||
}
|
||||
.bandeau__conteneur *::selection {
|
||||
color: var(--couleur-jaune);
|
||||
background: var(--couleur-noir);
|
||||
}
|
||||
.bandeau__conteneur p {
|
||||
display: inline-block;
|
||||
padding: var(--espace-s) 0;
|
||||
}
|
||||
.bandeau__conteneur p strong {
|
||||
font-weight: 600;
|
||||
}
|
||||
@media (hover: hover) {
|
||||
.bandeau:hover .bandeau__conteneur {
|
||||
animation-play-state: paused;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes marquee {
|
||||
from {
|
||||
transform: translateX(0%);
|
||||
}
|
||||
to {
|
||||
transform: translateX(-100%);
|
||||
}
|
||||
}
|
||||
body:has(#menu-mobile:not([aria-hidden=true])) {
|
||||
touch-action: none;
|
||||
overflow: hidden;
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -4,14 +4,6 @@
|
|||
"name": "Either",
|
||||
"integrity": "sha512-k/7Wk+b5oar670iV1x2NAJ/yh+VTLPUJYVhdjoBAuNyWdc8ZcRqV+iyEaYUZRq7WCxiga+Xkz63qaApLpZ4lFw=="
|
||||
},
|
||||
"_MaybeAsync.BkJailCK.js": {
|
||||
"file": "MaybeAsync.BkJailCK.js",
|
||||
"name": "MaybeAsync",
|
||||
"imports": [
|
||||
"_Either.DDEPhGsy.js"
|
||||
],
|
||||
"integrity": "sha512-OT/kU6HBh3TGDwNAymCm9CpXREMy0Zbu8R/eFxEKGxLaTN9+uOIz/a2dFIp6Annr64thEN67HluwUtlSXPexsA=="
|
||||
},
|
||||
"_belt_Option-91f3b350.Dja5KR5O.js": {
|
||||
"file": "belt_Option-91f3b350.Dja5KR5O.js",
|
||||
"name": "belt_Option-91f3b350",
|
||||
|
|
@ -20,28 +12,28 @@
|
|||
],
|
||||
"integrity": "sha512-GYl7KV7iH0RgwbtmdhDjQ5WrTaHX8bx/n8i980uLpmxAtJ851wQY6FSDCCy4UIRYjOmZLhphdS81pTuYHAmEdQ=="
|
||||
},
|
||||
"_exports.BFQs_g59.js": {
|
||||
"file": "exports.BFQs_g59.js",
|
||||
"_exports.jfK3lrNh.js": {
|
||||
"file": "exports.jfK3lrNh.js",
|
||||
"name": "exports",
|
||||
"integrity": "sha512-otBS5h58Ct/3+XrQzkF3XnQLdJ65FxShahhItVr7autk++lWPwTY7B8UurnwC62gab9gyum9ETgrrk2WDZc/VQ=="
|
||||
"integrity": "sha512-e+qw4ivbqqA92OB/oUAhyJ3XRN1q0OuPFTmiYUSG6IwhuTDWuQtUuZCjZzYeARwrGzRD38b5kZIcYCp55RMkzQ=="
|
||||
},
|
||||
"_index-0eef19ec.BYszGP4b.js": {
|
||||
"file": "index-0eef19ec.BYszGP4b.js",
|
||||
"_index-0eef19ec.BAWlGMMA.js": {
|
||||
"file": "index-0eef19ec.BAWlGMMA.js",
|
||||
"name": "index-0eef19ec",
|
||||
"imports": [
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/dom.ts",
|
||||
"_belt_Option-91f3b350.Dja5KR5O.js"
|
||||
],
|
||||
"integrity": "sha512-G5OG70fCFsc7kItScSVc1XVd8YGRgzZ16JILYJIvugF7iZbJhj5XJxylR4Ev2aElQtOCLUusDQ8YiLvrS4iiow=="
|
||||
"integrity": "sha512-mljji0062N6mhdtqR3URitBae8Cf1PQtz7ZZ7+sDRjtsq6sc1FfFedTLzN3vs0raiZYVkzSmhWt4oNBVPDrl5g=="
|
||||
},
|
||||
"_index-c1cc4c86.Ce2mb7Nd.js": {
|
||||
"file": "index-c1cc4c86.Ce2mb7Nd.js",
|
||||
"_index-c1cc4c86.CgXEmUX3.js": {
|
||||
"file": "index-c1cc4c86.CgXEmUX3.js",
|
||||
"name": "index-c1cc4c86",
|
||||
"imports": [
|
||||
"_belt_Option-91f3b350.Dja5KR5O.js",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/dom.ts"
|
||||
],
|
||||
"integrity": "sha512-W7GIguYg4Q6IUzc2vUU8TNe5z8NEgn7nJy9r03ccLYtd/lTvbsNwx3r+Z6ylEEgNqpwXqYvfoajDWeTUFVTZuQ=="
|
||||
"integrity": "sha512-cfzVGfb+bb3/TjdczKEfAijrLaC6cL+TA6Lh4KdBI7D35XtxPHcT/djQtoMQBlStkbSw2SiQYBaGPgtqfbf3Ow=="
|
||||
},
|
||||
"_index.BykRh4R4.js": {
|
||||
"file": "index.BykRh4R4.js",
|
||||
|
|
@ -63,28 +55,42 @@
|
|||
"name": "api",
|
||||
"src": "web/app/themes/haiku-atelier-2024/src/scripts/constantes/api.ts",
|
||||
"isEntry": true,
|
||||
"integrity": "sha512-vpyPiPgpXIVMErDcXfiG4leYzdepIIKSPahu8ScndKzVVhEveqsCGKN/BhU8AShrKa9q8yPbdQt8Mf+V9sSBbg=="
|
||||
"integrity": "sha512-/AHEMEeheLRpncyxzaGeq9e1Hn/jQmfCBUojjsRbZUuM0Ff1RvESCXXDcx0KXHYzLheOapJrNcjzm8JPIKQb1g=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/cart.ts": {
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/api/cart.ts": {
|
||||
"file": "cart2.js",
|
||||
"name": "cart",
|
||||
"src": "web/app/themes/haiku-atelier-2024/src/scripts/constantes/cart.ts",
|
||||
"src": "web/app/themes/haiku-atelier-2024/src/scripts/constantes/api/cart.ts",
|
||||
"isEntry": true,
|
||||
"integrity": "sha512-roJIe6Iyb/xNOxK6106j4AaroobRK5AinfgpZbwJaGWgmU0pp0wHRGauEg1Jk4vp8OwVzUwcciYE0qxzKaWOcg=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/api/erreurs.ts": {
|
||||
"file": "erreurs2.js",
|
||||
"name": "erreurs",
|
||||
"src": "web/app/themes/haiku-atelier-2024/src/scripts/constantes/api/erreurs.ts",
|
||||
"isEntry": true,
|
||||
"integrity": "sha512-rzWCtRigG3LH+6nuZL+ZrDeGABVHUbaroUTQQX0JQIGtzlvzagIbXCCPAzoRVeg1xcASbwnNYjE1P2yfB4Cjpw=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/api/orders.ts": {
|
||||
"file": "orders3.js",
|
||||
"name": "orders",
|
||||
"src": "web/app/themes/haiku-atelier-2024/src/scripts/constantes/api/orders.ts",
|
||||
"isEntry": true,
|
||||
"integrity": "sha512-tBYOF/7yktVSvDukJNW8VdDKdVIydkp4QgcHjOKjXvjFtuFNuh9C1M6PhfP5KRcftReHnLjyxER+8PXLTwqU2A=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/api/products.ts": {
|
||||
"file": "products2.js",
|
||||
"name": "products",
|
||||
"src": "web/app/themes/haiku-atelier-2024/src/scripts/constantes/api/products.ts",
|
||||
"isEntry": true,
|
||||
"integrity": "sha512-KNJWBBjVQ+jPpc5CHpcCk9fzCU2RiltcQdoz+DV8LeG8Oq7hpJkiH+Gea6zGCK3e/s/qvUOmd0hsOaFTqp47VA=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/dom.ts": {
|
||||
"file": "dom.js",
|
||||
"name": "dom",
|
||||
"src": "web/app/themes/haiku-atelier-2024/src/scripts/constantes/dom.ts",
|
||||
"isEntry": true,
|
||||
"integrity": "sha512-lPaIucfexn8VIej8M6cSH7NNLpCi3VgPp/7GiUOBuIhaKaWPSkl4S7fG08n592je8M9zdQHxwJ9ZUfg8AP/HEQ=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/erreurs.ts": {
|
||||
"file": "erreurs.js",
|
||||
"name": "erreurs",
|
||||
"src": "web/app/themes/haiku-atelier-2024/src/scripts/constantes/erreurs.ts",
|
||||
"isEntry": true,
|
||||
"integrity": "sha512-evOHHSLm9r2Mw758EZTy85aZaeMPT40Pfd1lN8be/nV64HYUj0UXYd72B4IGuBfR6UY3ESqvfd797j216uMWNA=="
|
||||
"integrity": "sha512-tGg8DCBED+gxgHEbhZCDC9iUmUYALtI1/Dk1wlShq/xFUuFfvYw0XpGnpzN0Q7qxVYJ1lOvlYYWe9IL8Bb7hsA=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/messages-utilisateur.ts": {
|
||||
"file": "messages-utilisateur.js",
|
||||
|
|
@ -100,20 +106,6 @@
|
|||
"isEntry": true,
|
||||
"integrity": "sha512-SS+OlEe6MXCgF9mn2l/5O3q/AzWqiFxNVlLL54M49GNPYqc2LK2wiocJ1Pg7vZU4pccBCVN16KjNmI2f/rT4Bw=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/orders.ts": {
|
||||
"file": "orders3.js",
|
||||
"name": "orders",
|
||||
"src": "web/app/themes/haiku-atelier-2024/src/scripts/constantes/orders.ts",
|
||||
"isEntry": true,
|
||||
"integrity": "sha512-tBYOF/7yktVSvDukJNW8VdDKdVIydkp4QgcHjOKjXvjFtuFNuh9C1M6PhfP5KRcftReHnLjyxER+8PXLTwqU2A=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/products.ts": {
|
||||
"file": "products2.js",
|
||||
"name": "products",
|
||||
"src": "web/app/themes/haiku-atelier-2024/src/scripts/constantes/products.ts",
|
||||
"isEntry": true,
|
||||
"integrity": "sha512-KNJWBBjVQ+jPpc5CHpcCk9fzCU2RiltcQdoz+DV8LeG8Oq7hpJkiH+Gea6zGCK3e/s/qvUOmd0hsOaFTqp47VA=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/gaffe.ts": {
|
||||
"file": "gaffe.js",
|
||||
"name": "gaffe",
|
||||
|
|
@ -121,10 +113,10 @@
|
|||
"isEntry": true,
|
||||
"imports": [
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/api.ts",
|
||||
"_exports.BFQs_g59.js",
|
||||
"_exports.jfK3lrNh.js",
|
||||
"_pipe.CtTFdEz3.js"
|
||||
],
|
||||
"integrity": "sha512-sVxDaDUKS0ozGrm69Izn+8/Ur4pNQXwHyQWffzC1eJo4nNtBMn+6ekcP3BtLjmJL/enn6XL+xOz5cv3807cFcw=="
|
||||
"integrity": "sha512-IJ2k0dI+9VCHv0rSKtftV5ASV7itad+hbRbehctCbsbVjAoXgQUGb8S+CAJfKdd3yMl3G1SalPeQHagTRCJPSw=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/animations.ts": {
|
||||
"file": "animations.js",
|
||||
|
|
@ -145,19 +137,19 @@
|
|||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/erreurs.ts",
|
||||
"_pipe.CtTFdEz3.js",
|
||||
"_Either.DDEPhGsy.js",
|
||||
"_exports.BFQs_g59.js"
|
||||
"_exports.jfK3lrNh.js"
|
||||
],
|
||||
"integrity": "sha512-5llvGkvmq26OnmpdHeCvHFABIXRk7sxONiLvlnxBloym3Z4dT3YnFI5vvg5AD3YxPnX/lXKeXqksEoIey57wLA=="
|
||||
"integrity": "sha512-E1acEqJ/BjANvuyGzb09Hfvi3XpvNX9ldhoJceStcSy9NxmkKLM4TXnFT51PY9tWrvdh8wKUaFs26tSkp9o8qg=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/erreurs.ts": {
|
||||
"file": "erreurs2.js",
|
||||
"file": "erreurs.js",
|
||||
"name": "erreurs",
|
||||
"src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/erreurs.ts",
|
||||
"isEntry": true,
|
||||
"imports": [
|
||||
"_exports.BFQs_g59.js"
|
||||
"_exports.jfK3lrNh.js"
|
||||
],
|
||||
"integrity": "sha512-FcHmyghZf4IxnQcq39H2xWcw3axta9110UO1vmMmxc5ykLXZHqJlKC6GsIjCcZudoj4DZSmUXgV6NUqQ1J94HA=="
|
||||
"integrity": "sha512-rYbJ+Hsht9ZNAJChZ6SKfdGw0EIj4g1OCAzbPT4RitDwyQodtzVbKz+iZA5B7CjizlnhPGOIdNsakVJ8o44XAg=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/erreurs/adresses.ts": {
|
||||
"file": "adresses.js",
|
||||
|
|
@ -178,19 +170,7 @@
|
|||
"name": "gardes",
|
||||
"src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/gardes.ts",
|
||||
"isEntry": true,
|
||||
"integrity": "sha512-vqaGTRWcx2Y2S6rNQNWQAUaPwBGUWEGkauq3HpF2UFDLtWeYPq0fhSyD9B7iMx+YZwSsgjv4laCOu8ihsUVYzg=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/gestion-panier.ts": {
|
||||
"file": "gestion-panier.js",
|
||||
"name": "gestion-panier",
|
||||
"src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/gestion-panier.ts",
|
||||
"isEntry": true,
|
||||
"imports": [
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/api.ts",
|
||||
"_MaybeAsync.BkJailCK.js",
|
||||
"_Either.DDEPhGsy.js"
|
||||
],
|
||||
"integrity": "sha512-a8H6pvEqUZsEbxYnE0VFh46CP9WYL2nAQ0hhLeVPZeaOeif8J16x2jtnse5rY+z11OtpYSm0QaEBrqbtXlRLqQ=="
|
||||
"integrity": "sha512-vrAiWuideZoT9oVpKIYxSvHyn7ryRadjAaGa1RSriGA/Ftd30bBHqJqHFPQN4hsJ0UXKA0zC5qQtUkBHmkkVKw=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/messages.ts": {
|
||||
"file": "messages.js",
|
||||
|
|
@ -206,14 +186,14 @@
|
|||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/validation.ts",
|
||||
"_pipe.CtTFdEz3.js",
|
||||
"_Either.DDEPhGsy.js",
|
||||
"_exports.BFQs_g59.js",
|
||||
"_exports.jfK3lrNh.js",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/cart.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/api/cart.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/adresses.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-coupons.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/couts-livraison.ts"
|
||||
],
|
||||
"integrity": "sha512-s48fYB/gRuftlZlesFvjUz0LS3y31Dm03iZaJYFo7eQefRgzCJu5gmd8r3GD48t8sc978g0c+eAd2s+WvOCu5Q=="
|
||||
"integrity": "sha512-yT3mpDw00lWmsHRky0/z9ybP100NWe93s0jsZvo6j/eaEqEpMEvIvVV8BJde0bXZ4R45OURkdun8QTPYzNtWMw=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/nombres.ts": {
|
||||
"file": "nombres.js",
|
||||
|
|
@ -236,12 +216,11 @@
|
|||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/api.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/erreurs.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/erreurs.ts",
|
||||
"_MaybeAsync.BkJailCK.js",
|
||||
"_Either.DDEPhGsy.js",
|
||||
"_pipe.CtTFdEz3.js",
|
||||
"_exports.BFQs_g59.js",
|
||||
"_Either.DDEPhGsy.js"
|
||||
"_exports.jfK3lrNh.js"
|
||||
],
|
||||
"integrity": "sha512-9ZxdrxWO3XvdEmC3oLVomVw9TDYnEcX6VcSb1x25aECUJ+Xwek4kbiJSK0BHEW7JZPlflwQvPD+BCZESHc8NjQ=="
|
||||
"integrity": "sha512-yFOR1X1Jzl5oVu90qW2Wg3s7Rw0fKOrI/2U8JHpZLLu3etSGG3G6dhG+s6RtCI4ShOXWfDwjh68acy0xbCOAyg=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/adresses.ts": {
|
||||
"file": "adresses2.js",
|
||||
|
|
@ -331,7 +310,7 @@
|
|||
"isEntry": true,
|
||||
"imports": [
|
||||
"_index.BykRh4R4.js",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/cart.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/api/cart.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/adresses.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-coupons.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/couts-livraison.ts"
|
||||
|
|
@ -357,7 +336,7 @@
|
|||
"imports": [
|
||||
"_index.BykRh4R4.js"
|
||||
],
|
||||
"integrity": "sha512-bH1NSbYWBjHL5RG92D3mvzSxcDLkROF2vyzPhO8wwiEY2ynphAsMpqaEV7odd2G/CDFHiLhDKOMvQv9YSWid5Q=="
|
||||
"integrity": "sha512-tCTHFJggimnNeV4RChNKx/JrRilRNlD5rMPeWQyv5SDPDTBPW8fx+zj8rAqDVxJQ6XoGDDm9DejzwLvjb32q3w=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/products.ts": {
|
||||
"file": "products3.js",
|
||||
|
|
@ -366,7 +345,7 @@
|
|||
"isEntry": true,
|
||||
"imports": [
|
||||
"_index.BykRh4R4.js",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/products.ts"
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/api/products.ts"
|
||||
],
|
||||
"integrity": "sha512-Vpo3U6jcd7aL/fKrUCC/GUie4oEMFirYI2HhhrqmrfXJxiPveK6I5HgwMW04anxLTy5Fcaj89sjSl/KXXPWQUw=="
|
||||
},
|
||||
|
|
@ -377,7 +356,7 @@
|
|||
"isEntry": true,
|
||||
"imports": [
|
||||
"_index.BykRh4R4.js",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/orders.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/api/orders.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/adresses.ts"
|
||||
],
|
||||
"integrity": "sha512-Emn/A/0uhfAHVvrcqrtRnZIFd/8afvntycItjvKQVTQPl9KeLMNkt40g5znL+/8d4KBb651A1xL6wn5t3nehCA=="
|
||||
|
|
@ -389,7 +368,7 @@
|
|||
"isEntry": true,
|
||||
"imports": [
|
||||
"_index.BykRh4R4.js",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/products.ts"
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/api/products.ts"
|
||||
],
|
||||
"integrity": "sha512-3a9RhgpVS2vEVDQMyy3wq9aAt7u4uOzOmuqmpsMMn/WL2RqTKME1wbdQlOU15rLDsUwcPTgu0Kq0spBNw7kAOQ=="
|
||||
},
|
||||
|
|
@ -402,7 +381,7 @@
|
|||
"_index.BykRh4R4.js",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/messages.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/cart.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/api/cart.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/adresses.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-coupons.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/couts-livraison.ts"
|
||||
|
|
@ -433,9 +412,9 @@
|
|||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/erreurs.ts",
|
||||
"_pipe.CtTFdEz3.js",
|
||||
"_Either.DDEPhGsy.js",
|
||||
"_exports.BFQs_g59.js"
|
||||
"_exports.jfK3lrNh.js"
|
||||
],
|
||||
"integrity": "sha512-ratXKwCi3HWTJyBDDS2ddUpI5GygtS6U387B2S3gZ1JsSjgUpWY0IZXEuTLNGDY7dpAUEWGDKavvko7w7ID0ew=="
|
||||
"integrity": "sha512-tYqvHO2uQUgPd2AMbwAHu5BrqtTKQDAJmlSJOKHFqS1xQGG8/77+Gca4R2tSwxrYoZBbxCixN1ubrDO9zNfWvg=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/validation.ts": {
|
||||
"file": "validation.js",
|
||||
|
|
@ -461,19 +440,19 @@
|
|||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/utils.ts",
|
||||
"_pipe.CtTFdEz3.js",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/erreurs.ts",
|
||||
"_exports.BFQs_g59.js",
|
||||
"_exports.jfK3lrNh.js",
|
||||
"_Either.DDEPhGsy.js",
|
||||
"_index.BykRh4R4.js",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/erreurs.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/messages.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/cart.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/api/cart.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/adresses.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-coupons.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/couts-livraison.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/validation.ts"
|
||||
],
|
||||
"integrity": "sha512-IWgbMyCzAvA7Ycuusy8dybyJP6Y/2N9lxi3qrK2dYpnHeSngKORB+RhZ3YlESg/8qLe9LYoUH+W1ud/jzkQNJQ=="
|
||||
"integrity": "sha512-6B8ascGKKxMf5zeT9fbvn9bsL+V3ZRJJOKiuPuzdJGRyKFyUr1C2IDzlNa7cLu9B20WCmtY1JG+z8FGEQMFslw=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/scripts-menu-categories.ts": {
|
||||
"file": "scripts-menu-categories.js",
|
||||
|
|
@ -486,11 +465,11 @@
|
|||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/utils.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/dom.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/erreurs.ts",
|
||||
"_exports.BFQs_g59.js",
|
||||
"_exports.jfK3lrNh.js",
|
||||
"_pipe.CtTFdEz3.js",
|
||||
"_Either.DDEPhGsy.js"
|
||||
],
|
||||
"integrity": "sha512-yG34dgbZUDffyc99MFIyRwyvQ3sU4GWRkur8oH5jlfnEQc5UXLWatUdNPZXg9JlRRmgdgJfEUJjbs0+7qkIbEw=="
|
||||
"integrity": "sha512-YlGyNHiDLPqNnRvSCRrQxItwafYmV6PtQfEMe+BZrHJJFvUtLAbl2BOeUSf0F5yeuX8bfYXt+dqYPBMDzx2lxw=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/scripts-menu-mobile.ts": {
|
||||
"file": "scripts-menu-mobile.js",
|
||||
|
|
@ -501,14 +480,14 @@
|
|||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/dom.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/utils.ts",
|
||||
"_pipe.CtTFdEz3.js",
|
||||
"_index-c1cc4c86.Ce2mb7Nd.js",
|
||||
"_index-c1cc4c86.CgXEmUX3.js",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/dom.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/erreurs.ts",
|
||||
"_exports.BFQs_g59.js",
|
||||
"_exports.jfK3lrNh.js",
|
||||
"_Either.DDEPhGsy.js",
|
||||
"_belt_Option-91f3b350.Dja5KR5O.js"
|
||||
],
|
||||
"integrity": "sha512-IW8QsqTfjnJZkwTLmF8kwCz+ww7P0PJTjTrr9OkSCBTVQ33VuU2CxOQZyexVDawXtaJlMtepUO5yKRsi2M6tdg=="
|
||||
"integrity": "sha512-ZH7shciaTzT5ke+jGxhLKM3poLk6t+k8FcXdTm2XGN+LYNXKPvr5aZsew0ZdrA4NHz4BN2wBXnsTZkJNhfUpCA=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/scripts-page-a-propos.ts": {
|
||||
"file": "scripts-page-a-propos.js",
|
||||
|
|
@ -520,13 +499,13 @@
|
|||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/utils.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/dom.ts",
|
||||
"_pipe.CtTFdEz3.js",
|
||||
"_index-c1cc4c86.Ce2mb7Nd.js",
|
||||
"_index-c1cc4c86.CgXEmUX3.js",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/erreurs.ts",
|
||||
"_exports.BFQs_g59.js",
|
||||
"_exports.jfK3lrNh.js",
|
||||
"_Either.DDEPhGsy.js",
|
||||
"_belt_Option-91f3b350.Dja5KR5O.js"
|
||||
],
|
||||
"integrity": "sha512-V2HTTCRxt4rVcnWBi6RGfieWkL36mjvxImzEkvXceCoHlUUPz29pm4kuh/5ihhHA6VNqq2m7mOX/HIXXkNqM8Q=="
|
||||
"integrity": "sha512-/4VPW/7LKldCQkoJVU3Bx9Ab0ke92G4gTWVStEt+M1wPJJ6aaKzAQNlLeDPH+Uyb8yraqW3rrhqPI8Z4grsTLg=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/scripts-page-accueil.ts": {
|
||||
"file": "scripts-page-accueil.js",
|
||||
|
|
@ -538,14 +517,14 @@
|
|||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/nombres.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/utils.ts",
|
||||
"_pipe.CtTFdEz3.js",
|
||||
"_index-c1cc4c86.Ce2mb7Nd.js",
|
||||
"_index-c1cc4c86.CgXEmUX3.js",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/dom.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/erreurs.ts",
|
||||
"_exports.BFQs_g59.js",
|
||||
"_exports.jfK3lrNh.js",
|
||||
"_Either.DDEPhGsy.js",
|
||||
"_belt_Option-91f3b350.Dja5KR5O.js"
|
||||
],
|
||||
"integrity": "sha512-MBpTAs6K3PRYar3tcs+A6aKm/nX1A4HptsovJj5pfRrNBgoJSJ3uEK8h/8Z0Jjufz/8v1xrICDXkt12aujdB+Q=="
|
||||
"integrity": "sha512-+IMxk9Cj4TUAuEIz1YINcR8OkMPO1w9CyJXBUQDTEgCPq1JUNQ2Uh6cETvE4Nza7rjwfF+aYbJazk3oqy/yA/w=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/scripts-page-boutique.ts": {
|
||||
"file": "scripts-page-boutique.js",
|
||||
|
|
@ -564,16 +543,15 @@
|
|||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/v3/products.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/utils.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/validation.ts",
|
||||
"_MaybeAsync.BkJailCK.js",
|
||||
"_pipe.CtTFdEz3.js",
|
||||
"_index-0eef19ec.BYszGP4b.js",
|
||||
"_index-0eef19ec.BAWlGMMA.js",
|
||||
"_Either.DDEPhGsy.js",
|
||||
"_exports.BFQs_g59.js",
|
||||
"_exports.jfK3lrNh.js",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/erreurs.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/products.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/api/products.ts",
|
||||
"_belt_Option-91f3b350.Dja5KR5O.js"
|
||||
],
|
||||
"integrity": "sha512-d5MGFTta1r0zScaNFU+1rHOUWK3AyFMg16sI8WlYeoiLQbf1gmSiK2BT2v8WlEKJTPJ36KIsKVOo0a/iV9uasg=="
|
||||
"integrity": "sha512-OuECXbix1otc3ECDBWsl7XT7A0QmYSmiLBrRrCzc5AUjaewZJ6OJvfqAv5vt2SdA5R7MVLHO3HZ0Ef2e5XuQGg=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/scripts-page-panier-adresses.ts": {
|
||||
"file": "scripts-page-panier-adresses.js",
|
||||
|
|
@ -602,18 +580,17 @@
|
|||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/utils.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/validation.ts",
|
||||
"_pipe.CtTFdEz3.js",
|
||||
"_MaybeAsync.BkJailCK.js",
|
||||
"_index-c1cc4c86.Ce2mb7Nd.js",
|
||||
"_index-c1cc4c86.CgXEmUX3.js",
|
||||
"_Either.DDEPhGsy.js",
|
||||
"_exports.BFQs_g59.js",
|
||||
"_exports.jfK3lrNh.js",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/messages.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/cart.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/api/cart.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/adresses.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-coupons.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/orders.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/api/orders.ts",
|
||||
"_belt_Option-91f3b350.Dja5KR5O.js"
|
||||
],
|
||||
"integrity": "sha512-WKpiA8or3yRyCVeCQAezpWRy2hDtF1/U1BVRSmKDVQ9Dn2M/91jsfo/NkDH0W8p+yFGmagE32lvqFKEdwkHvcA=="
|
||||
"integrity": "sha512-tb5Cu94trYCDPypVP9Ame3T+5aIX0I0bp9gKE7SYwY8fwfpZ/QmeSAJs00NYiTOWOJrskgtfZXcILtTPz4/M0w=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/scripts-page-panier-code-promo.ts": {
|
||||
"file": "scripts-page-panier-code-promo.js",
|
||||
|
|
@ -624,8 +601,8 @@
|
|||
"_index.CuMLbxmh.js",
|
||||
"_index.BykRh4R4.js",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/api.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/api/erreurs.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/dom.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/erreurs.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/messages.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/animations.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/dom.ts",
|
||||
|
|
@ -640,18 +617,50 @@
|
|||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-remove-coupon.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/utils.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/validation.ts",
|
||||
"_MaybeAsync.BkJailCK.js",
|
||||
"_pipe.CtTFdEz3.js",
|
||||
"_Either.DDEPhGsy.js",
|
||||
"_exports.BFQs_g59.js",
|
||||
"_exports.jfK3lrNh.js",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/erreurs.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/messages.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/cart.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/api/cart.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/adresses.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-coupons.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/couts-livraison.ts"
|
||||
],
|
||||
"integrity": "sha512-/c9xqzEp6BoDcje2+GbOzFesQomidzcHZEN+aIM1mGY6u05H0oAAEyBzT/tVNMypb5Zl/Hv/U42y28NGv4TaAg=="
|
||||
"integrity": "sha512-4XZKmJRrayn1zan+nySWZsT1SzxnBD8BK2WVLWAS35E3P0I6nGc1sk00xhESfzBXc+8q7sHftnhHF6I4TSXcJQ=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/scripts-page-panier-panneau-produits.ts": {
|
||||
"file": "scripts-page-panier-panneau-produits.js",
|
||||
"name": "scripts-page-panier-panneau-produits",
|
||||
"src": "web/app/themes/haiku-atelier-2024/src/scripts/scripts-page-panier-panneau-produits.ts",
|
||||
"isEntry": true,
|
||||
"imports": [
|
||||
"_index.CuMLbxmh.js",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/api.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/dom.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/messages.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/dom.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/erreurs.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/messages.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/nombres.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/reseau.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-remove-item.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-update-item.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/utils.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/validation.ts",
|
||||
"_pipe.CtTFdEz3.js",
|
||||
"_Either.DDEPhGsy.js",
|
||||
"_exports.jfK3lrNh.js",
|
||||
"_index.BykRh4R4.js",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/erreurs.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/messages.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/api/cart.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/adresses.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-coupons.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/couts-livraison.ts"
|
||||
],
|
||||
"integrity": "sha512-3Jfs0QcFp0dLKWCN10SMWj2LkcKu8j5rCZwH0xlNcKyzde9G9rY3jdBgPHDQKJCf0pWeJo4EfIKigFEYrta/mA=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/scripts-page-panier.ts": {
|
||||
"file": "scripts-page-panier.js",
|
||||
|
|
@ -659,49 +668,48 @@
|
|||
"src": "web/app/themes/haiku-atelier-2024/src/scripts/scripts-page-panier.ts",
|
||||
"isEntry": true,
|
||||
"imports": [
|
||||
"_index.BykRh4R4.js",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/api.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/dom.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/messages.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/dom.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/erreurs.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/gardes.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/messages.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/nombres.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/reseau.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-remove-item.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-update-item.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/utils.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/scripts-page-panier-adresses.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/scripts-page-panier-code-promo.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/scripts-page-panier-panneau-produits.ts",
|
||||
"_pipe.CtTFdEz3.js",
|
||||
"_index-0eef19ec.BYszGP4b.js",
|
||||
"_Either.DDEPhGsy.js",
|
||||
"_exports.BFQs_g59.js",
|
||||
"_exports.jfK3lrNh.js",
|
||||
"_index.BykRh4R4.js",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/erreurs.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/messages.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/validation.ts",
|
||||
"_index.CuMLbxmh.js",
|
||||
"_MaybeAsync.BkJailCK.js",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/cart.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/api/cart.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/adresses.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-coupons.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/couts-livraison.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/validation.ts",
|
||||
"_index.CuMLbxmh.js",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/api.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/messages-utilisateur.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/animations.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/erreurs/adresses.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/reseau.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-update-customer.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/v3/orders.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/orders.ts",
|
||||
"_index-c1cc4c86.Ce2mb7Nd.js",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/api/orders.ts",
|
||||
"_index-c1cc4c86.CgXEmUX3.js",
|
||||
"_belt_Option-91f3b350.Dja5KR5O.js",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/erreurs.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/api/erreurs.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/erreurs/codes-promo.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/gardes.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-apply-coupon.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-remove-coupon.ts"
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-remove-coupon.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-remove-item.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-update-item.ts"
|
||||
],
|
||||
"integrity": "sha512-dw8o2avVeepo/Ar+lbRm4Px77xpZFH5hP75w+w480Ejf9DDVeAwAtxEpEZwJl7QkUsYxFOsjtMsvkzZ/Z4ixpA=="
|
||||
"integrity": "sha512-yPvv1GaNMIBfGxH6ll6jQyeLRS2zTJZ+wfdx2Bx2xPBkUqW3R8Y+opE5Jc//IUkbtXtjV5q9RdI3Vbl1za+ujg=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/scripts-page-produit.ts": {
|
||||
"file": "scripts-page-produit.js",
|
||||
|
|
@ -722,20 +730,19 @@
|
|||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/utils.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/validation.ts",
|
||||
"_pipe.CtTFdEz3.js",
|
||||
"_index-0eef19ec.BYszGP4b.js",
|
||||
"_index-0eef19ec.BAWlGMMA.js",
|
||||
"_Either.DDEPhGsy.js",
|
||||
"_exports.BFQs_g59.js",
|
||||
"_exports.jfK3lrNh.js",
|
||||
"_index.BykRh4R4.js",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/messages.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/erreurs.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/messages.ts",
|
||||
"_MaybeAsync.BkJailCK.js",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/cart.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/api/cart.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/adresses.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-coupons.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/couts-livraison.ts",
|
||||
"_belt_Option-91f3b350.Dja5KR5O.js"
|
||||
],
|
||||
"integrity": "sha512-MFvp0X7Je0gFNrn2UNlksAdiHNWh+flbZMS44NEPLS/cxwCDqbHhDy6D+uf7kGd5aAXt+JgRfK0hFK5zfd8nlQ=="
|
||||
"integrity": "sha512-tRWai0GHl5z1xHc4V/hU90ejNZ+LzxGPDpv9Xnw0QWLPSNKuHCwvrurFX6MwjRX2H8z3Oh2tDQKU/r6NzMTSZQ=="
|
||||
}
|
||||
}
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
import{E as o,r as h,l as P,M,n as u,j as c}from"./Either.DDEPhGsy.js";var f;const l={liftEither(i){if(i.isRight())return Promise.resolve(i.extract());throw i.extract()},fromPromise(i){return i.then(l.liftEither)},throwE(i){throw i}};class y{constructor(t){this.runPromise=t,this[f]="EitherAsync",this["fantasy-land/chain"]=this.chain,this["fantasy-land/alt"]=this.alt,this.then=(r,e)=>this.run().then(r,e)}leftOrDefault(t){return this.run().then(r=>r.leftOrDefault(t))}orDefault(t){return this.run().then(r=>r.orDefault(t))}join(){return n(async t=>{const r=await this;if(r.isRight()){const e=await r.extract();return t.liftEither(e)}return t.liftEither(r)})}ap(t){return n(async r=>{const e=await t;if(e.isRight()){const a=await this.run();return a.isRight()?e.extract()(a.extract()):r.liftEither(a)}return r.liftEither(e)})}alt(t){return n(async r=>{const e=await this.run();if(e.isRight())return e.extract();{const a=await t;return r.liftEither(a)}})}extend(t){return n(async r=>{const e=await this.run();if(e.isRight()){const a=n.liftEither(e);return r.liftEither(h(t(a)))}return r.liftEither(e)})}async run(){try{return h(await this.runPromise(l))}catch(t){return P(t)}}bimap(t,r){return n(async e=>{const a=await this.run();try{return await e.liftEither(a.bimap(t,r))}catch(E){throw await E}})}map(t){return n(r=>this.runPromise(r).then(t))}mapLeft(t){return n(async r=>{try{return await this.runPromise(r)}catch(e){throw await t(e)}})}chain(t){return n(async r=>{const e=await this.runPromise(r);return r.fromPromise(t(e))})}chainLeft(t){return n(async r=>{try{return await this.runPromise(r)}catch(e){return r.fromPromise(t(e))}})}toMaybeAsync(){return s(async({liftMaybe:t})=>{const r=await this.run();return t(r.toMaybe())})}swap(){return n(async t=>{const r=await this.run();return r.isRight()&&t.throwE(r.extract()),t.liftEither(h(r.extract()))})}ifLeft(t){return n(async r=>{const e=await this.run();return e.ifLeft(t),r.liftEither(e)})}ifRight(t){return n(async r=>{const e=await this.run();return e.ifRight(t),r.liftEither(e)})}void(){return this.map(t=>{})}caseOf(t){return this.run().then(r=>r.caseOf(t))}finally(t){return n(({fromPromise:r})=>r(this.run().finally(t)))}}f=Symbol.toStringTag;const n=Object.assign(i=>new y(i),{fromPromise:i=>n(({fromPromise:t})=>t(i())),liftEither:i=>n(({liftEither:t})=>t(i)),lefts:i=>Promise.all(i.map(t=>t.run())).then(o.lefts),rights:i=>Promise.all(i.map(t=>t.run())).then(o.rights),sequence:i=>n(async t=>{let r=[];for await(const e of i){if(e.isLeft())return t.liftEither(e);r.push(e.extract())}return t.liftEither(h(r))}),all:i=>n.fromPromise(async()=>Promise.all(i).then(o.sequence))});y.prototype.constructor=n;var m;const w={liftMaybe(i){if(i.isJust())return Promise.resolve(i.extract());throw u},fromPromise(i){return i.then(w.liftMaybe)}};class b{constructor(t){this.runPromise=t,this[m]="MaybeAsync",this["fantasy-land/chain"]=this.chain,this["fantasy-land/filter"]=this.filter,this["fantasy-land/alt"]=this.alt}orDefault(t){return this.run().then(r=>r.orDefault(t))}join(){return s(async t=>{const r=await this.run();if(r.isJust()){const e=await r.extract();return t.liftMaybe(e)}return t.liftMaybe(u)})}ap(t){return s(async r=>{const e=await t;if(e.isJust()){const a=await this.run();return a.isJust()?e.extract()(a.extract()):r.liftMaybe(u)}return r.liftMaybe(u)})}alt(t){return s(async r=>{const e=await this.run();if(e.isJust())return e.extract();{const a=await t;return r.liftMaybe(a)}})}extend(t){return s(async r=>{const e=await this.run();if(e.isJust()){const a=s.liftMaybe(e);return r.liftMaybe(c(t(a)))}return r.liftMaybe(u)})}filter(t){return s(async r=>{const e=await this.run();return r.liftMaybe(e.filter(t))})}async run(){try{return c(await this.runPromise(w))}catch{return u}}map(t){return s(r=>this.runPromise(r).then(t))}chain(t){return s(async r=>{const e=await this.runPromise(r);return r.fromPromise(t(e))})}toEitherAsync(t){return n(async({liftEither:r})=>{const e=await this.run();return r(e.toEither(t))})}ifJust(t){return s(async r=>{const e=await this.run();return e.ifJust(t),r.liftMaybe(e)})}ifNothing(t){return s(async r=>{const e=await this.run();return e.ifNothing(t),r.liftMaybe(e)})}void(){return this.map(t=>{})}caseOf(t){return this.run().then(r=>r.caseOf(t))}finally(t){return s(({fromPromise:r})=>r(this.run().finally(t)))}then(t,r){return this.run().then(t,r)}}m=Symbol.toStringTag;const s=Object.assign(i=>new b(i),{catMaybes:i=>Promise.all(i).then(M.catMaybes),fromPromise:i=>s(({fromPromise:t})=>t(i())),liftMaybe:i=>s(({liftMaybe:t})=>t(i))});b.prototype.constructor=s;export{n as E};
|
||||
//# sourceMappingURL=MaybeAsync.BkJailCK.js.map
|
||||
File diff suppressed because one or more lines are too long
|
|
@ -1 +1 @@
|
|||
{"version":3,"file":"adresses.js","sources":["../../src/scripts/lib/erreurs/adresses.ts"],"sourcesContent":["/** Types d'Erreurs liées aux adresses. */\n\nexport class ErreurAdresseInvalide extends Error {\n problemes: Record<string, string>;\n\n constructor(problemes: Record<string, string>) {\n super(\"Le ou les adresses fournies sont invalides.\");\n this.name = \"ErreurAdresseInvalide\";\n this.problemes = problemes;\n }\n}\n"],"names":["ErreurAdresseInvalide","problemes","__publicField"],"mappings":"oKAEO,MAAMA,UAA8B,KAAM,CAG/C,YAAYC,EAAmC,CAC7C,MAAM,6CAA6C,EAHrDC,EAAA,kBAIE,KAAK,KAAO,wBACZ,KAAK,UAAYD,CAAA,CAErB"}
|
||||
{"version":3,"file":"adresses.js","sources":["../../src/scripts/lib/erreurs/adresses.ts"],"sourcesContent":["/** Types d'Erreurs liées aux adresses WooCommerce. */\n\nexport class ErreurAdresseInvalide extends Error {\n problemes: Record<string, string>;\n\n constructor(problemes: Record<string, string>) {\n super(\"Le ou les adresses fournies sont invalides.\");\n this.name = \"ErreurAdresseInvalide\";\n this.problemes = problemes;\n }\n}\n"],"names":["ErreurAdresseInvalide","problemes","__publicField"],"mappings":"oKAEO,MAAMA,UAA8B,KAAM,CAG/C,YAAYC,EAAmC,CAC7C,MAAM,6CAA6C,EAHrDC,EAAA,kBAIE,KAAK,KAAO,wBACZ,KAAK,UAAYD,CAAA,CAErB"}
|
||||
|
|
@ -1,2 +1,2 @@
|
|||
const E="wp-json",t=`/${E}/wc/store/cart`,_=`/${E}/wc/store/cart/add-item`,s=`/${E}/wc/store/cart/apply-coupon`,c=`/${E}/wc/store/cart/remove-coupon`,o=`/${E}/wc/store/cart/remove-item`,T=`/${E}/wc/store/cart/update-item`,I=`/${E}/wc/store/cart/update-customer`,R=`/${E}/wc/v3/products`,a=`/${E}/wc/v3/orders`,r="Nonce",e="retry-after",A="x-sentry-rate-limits";export{r as E,R,o as a,T as b,s as c,c as d,_ as e,t as f,I as g,a as h,A as i,e as j};
|
||||
const E="wp-json",t=`/${E}/wc/store/cart/add-item`,_=`/${E}/wc/store/cart/apply-coupon`,s=`/${E}/wc/store/cart/update-item`,c=`/${E}/wc/store/cart/update-customer`,T=`/${E}/wc/v3/orders`,o=`/${E}/wc/v3/products`,I=`/${E}/wc/store/cart/remove-item`,R=`/${E}/wc/store/cart/remove-coupon`,a="Nonce",e="retry-after",r="x-sentry-rate-limits";export{a as E,o as R,_ as a,R as b,s as c,I as d,t as e,c as f,T as g,r as h,e as i};
|
||||
//# sourceMappingURL=api.js.map
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
{"version":3,"file":"api.js","sources":["../../src/scripts/constantes/api.ts"],"sourcesContent":["// Chemins et Routes pour l'API WordPress\nexport const CHEMIN_API_REST = \"wp-json\";\nexport const ROUTE_API_PANIER = `/${CHEMIN_API_REST}/wc/store/cart`;\nexport const ROUTE_API_AJOUTE_ARTICLE_PANIER = `/${CHEMIN_API_REST}/wc/store/cart/add-item`;\nexport const ROUTE_API_APPLIQUE_COUPON = `/${CHEMIN_API_REST}/wc/store/cart/apply-coupon`;\nexport const ROUTE_API_RETIRE_COUPON = `/${CHEMIN_API_REST}/wc/store/cart/remove-coupon`;\nexport const ROUTE_API_COUPONS = `/${CHEMIN_API_REST}/wc/store/cart/coupons`;\nexport const ROUTE_API_RETIRE_ARTICLE_PANIER = `/${CHEMIN_API_REST}/wc/store/cart/remove-item`;\nexport const ROUTE_API_MAJ_ARTICLE_PANIER = `/${CHEMIN_API_REST}/wc/store/cart/update-item`;\nexport const ROUTE_API_MAJ_CLIENT = `/${CHEMIN_API_REST}/wc/store/cart/update-customer`;\nexport const ROUTE_API_PRODUITS = `/${CHEMIN_API_REST}/wc/store/products`;\nexport const ROUTE_API_NOUVELLE_PRODUCTS = `/${CHEMIN_API_REST}/wc/v3/products`;\nexport const ROUTE_API_NOUVELLE_COMMANDES = `/${CHEMIN_API_REST}/wc/v3/orders`;\n\n// En-têtes\nexport const ENTETE_WC_NONCE = \"Nonce\";\nexport const ENTETE_GLITCHTIP_RETRY_AFTER = \"retry-after\";\nexport const ENTETE_GLITCHTIP_RATE_LIMITS = \"x-sentry-rate-limits\";\n"],"names":["CHEMIN_API_REST","ROUTE_API_PANIER","ROUTE_API_AJOUTE_ARTICLE_PANIER","ROUTE_API_APPLIQUE_COUPON","ROUTE_API_RETIRE_COUPON","ROUTE_API_RETIRE_ARTICLE_PANIER","ROUTE_API_MAJ_ARTICLE_PANIER","ROUTE_API_MAJ_CLIENT","ROUTE_API_NOUVELLE_PRODUCTS","ROUTE_API_NOUVELLE_COMMANDES","ENTETE_WC_NONCE","ENTETE_GLITCHTIP_RETRY_AFTER","ENTETE_GLITCHTIP_RATE_LIMITS"],"mappings":"AACO,MAAMA,EAAkB,UAClBC,EAAmB,IAAID,CAAe,iBACtCE,EAAkC,IAAIF,CAAe,0BACrDG,EAA4B,IAAIH,CAAe,8BAC/CI,EAA0B,IAAIJ,CAAe,+BAE7CK,EAAkC,IAAIL,CAAe,6BACrDM,EAA+B,IAAIN,CAAe,6BAClDO,EAAuB,IAAIP,CAAe,iCAE1CQ,EAA8B,IAAIR,CAAe,kBACjDS,EAA+B,IAAIT,CAAe,gBAGlDU,EAAkB,QAClBC,EAA+B,cAC/BC,EAA+B"}
|
||||
{"version":3,"file":"api.js","sources":["../../src/scripts/constantes/api.ts"],"sourcesContent":["/** Chemins et Routes pour l'API WordPress/ */\n\nexport const CHEMIN_API_REST = \"wp-json\";\nexport const ROUTE_API_AJOUTE_ARTICLE_PANIER = `/${CHEMIN_API_REST}/wc/store/cart/add-item`;\nexport const ROUTE_API_APPLIQUE_COUPON = `/${CHEMIN_API_REST}/wc/store/cart/apply-coupon`;\nexport const ROUTE_API_COUPONS = `/${CHEMIN_API_REST}/wc/store/cart/coupons`;\nexport const ROUTE_API_MAJ_ARTICLE_PANIER = `/${CHEMIN_API_REST}/wc/store/cart/update-item`;\nexport const ROUTE_API_MAJ_CLIENT = `/${CHEMIN_API_REST}/wc/store/cart/update-customer`;\nexport const ROUTE_API_NOUVELLE_COMMANDES = `/${CHEMIN_API_REST}/wc/v3/orders`;\nexport const ROUTE_API_NOUVELLE_PRODUCTS = `/${CHEMIN_API_REST}/wc/v3/products`;\nexport const ROUTE_API_PANIER = `/${CHEMIN_API_REST}/wc/store/cart`;\nexport const ROUTE_API_PRODUITS = `/${CHEMIN_API_REST}/wc/store/products`;\nexport const ROUTE_API_RETIRE_ARTICLE_PANIER = `/${CHEMIN_API_REST}/wc/store/cart/remove-item`;\nexport const ROUTE_API_RETIRE_COUPON = `/${CHEMIN_API_REST}/wc/store/cart/remove-coupon`;\n\n// En-têtes\nexport const ENTETE_WC_NONCE = \"Nonce\";\nexport const ENTETE_GLITCHTIP_RETRY_AFTER = \"retry-after\";\nexport const ENTETE_GLITCHTIP_RATE_LIMITS = \"x-sentry-rate-limits\";\n"],"names":["CHEMIN_API_REST","ROUTE_API_AJOUTE_ARTICLE_PANIER","ROUTE_API_APPLIQUE_COUPON","ROUTE_API_MAJ_ARTICLE_PANIER","ROUTE_API_MAJ_CLIENT","ROUTE_API_NOUVELLE_COMMANDES","ROUTE_API_NOUVELLE_PRODUCTS","ROUTE_API_RETIRE_ARTICLE_PANIER","ROUTE_API_RETIRE_COUPON","ENTETE_WC_NONCE","ENTETE_GLITCHTIP_RETRY_AFTER","ENTETE_GLITCHTIP_RATE_LIMITS"],"mappings":"AAEO,MAAMA,EAAkB,UAClBC,EAAkC,IAAID,CAAe,0BACrDE,EAA4B,IAAIF,CAAe,8BAE/CG,EAA+B,IAAIH,CAAe,6BAClDI,EAAuB,IAAIJ,CAAe,iCAC1CK,EAA+B,IAAIL,CAAe,gBAClDM,EAA8B,IAAIN,CAAe,kBAGjDO,EAAkC,IAAIP,CAAe,6BACrDQ,EAA0B,IAAIR,CAAe,+BAG7CS,EAAkB,QAClBC,EAA+B,cAC/BC,EAA+B"}
|
||||
|
|
@ -1 +1 @@
|
|||
{"version":3,"file":"cart.js","sources":["../../src/scripts/lib/schemas/api/cart.ts"],"sourcesContent":["import * as v from \"valibot\";\n\nimport { CATALOG_VISIBILITIES } from \"../../../constantes/cart.ts\";\nimport { WCStoreBillingAddressSchema, WCStoreShippingAddressSchema } from \"./adresses.ts\";\nimport { WCStoreCartCouponsSchema } from \"./cart-coupons.ts\";\nimport { WCStoreShippingRateSchema } from \"./couts-livraison.ts\";\n\nexport const WCStoreCartItemTotalsSchema = v.object({\n currency_code: v.string(),\n currency_decimal_separator: v.string(),\n currency_minor_unit: v.number(),\n currency_prefix: v.string(),\n currency_suffix: v.string(),\n currency_symbol: v.string(),\n currency_thousand_separator: v.string(),\n line_subtotal: v.string(),\n line_subtotal_tax: v.string(),\n line_total: v.string(),\n line_total_tax: v.string(),\n});\n\nexport const WCStoreCartItemSchema = v.object({\n backorders_allowed: v.boolean(),\n catalog_visibility: v.enum(CATALOG_VISIBILITIES),\n description: v.string(),\n extensions: v.unknown(),\n id: v.number(),\n images: v.array(v.unknown()),\n item_data: v.array(v.unknown()),\n key: v.string(),\n low_stock_remaining: v.union([v.null()]),\n name: v.string(),\n permalink: v.pipe(v.string(), v.url()),\n prices: v.unknown(),\n quantity: v.number(),\n quantity_limits: v.unknown(),\n short_description: v.string(),\n show_backorder_badge: v.boolean(),\n sku: v.string(),\n sold_individually: v.boolean(),\n totals: WCStoreCartItemTotalsSchema,\n type: v.string(),\n variation: v.array(v.unknown()),\n});\n\nexport const WCStoreCartTotalsSchema = v.object({\n currency_code: v.string(),\n currency_decimal_separator: v.string(),\n currency_minor_unit: v.number(),\n currency_prefix: v.string(),\n currency_suffix: v.string(),\n currency_symbol: v.string(),\n currency_thousand_separator: v.string(),\n tax_lines: v.array(v.unknown()),\n total_discount: v.string(),\n total_discount_tax: v.string(),\n total_fees: v.string(),\n total_fees_tax: v.string(),\n total_items: v.string(),\n total_items_tax: v.string(),\n total_price: v.string(),\n total_shipping: v.pipe(\n v.union([v.string(), v.null()]),\n v.transform(Number),\n ),\n total_shipping_tax: v.union([v.string(), v.null()]),\n total_tax: v.string(),\n});\n\nexport const WCStoreCartSchema = v.object({\n billing_address: WCStoreBillingAddressSchema,\n /** List of applied basket coupons. */\n coupons: v.array(WCStoreCartCouponsSchema),\n cross_sells: v.unknown(),\n errors: v.unknown(),\n extensions: v.unknown(),\n fees: v.unknown(),\n has_calculated_shipping: v.boolean(),\n items: v.array(WCStoreCartItemSchema),\n items_count: v.pipe(v.number(), v.integer()),\n items_weight: v.pipe(v.number(), v.integer()),\n needs_payment: v.boolean(),\n needs_shipping: v.boolean(),\n payment_methods: v.unknown(),\n payment_requirements: v.unknown(),\n shipping_address: WCStoreShippingAddressSchema,\n shipping_rates: v.array(WCStoreShippingRateSchema),\n totals: WCStoreCartTotalsSchema,\n});\n"],"names":["WCStoreCartItemTotalsSchema","v.object","v.string","v.number","WCStoreCartItemSchema","v.boolean","v.enum","CATALOG_VISIBILITIES","v.unknown","v.array","v.union","v.null","v.pipe","v.url","WCStoreCartTotalsSchema","v.transform","WCStoreCartSchema","WCStoreBillingAddressSchema","WCStoreCartCouponsSchema","v.integer","WCStoreShippingAddressSchema","WCStoreShippingRateSchema"],"mappings":"oRAOa,MAAAA,EAA8BC,EAAS,CAClD,cAAeC,EAAS,EACxB,2BAA4BA,EAAS,EACrC,oBAAqBC,EAAS,EAC9B,gBAAiBD,EAAS,EAC1B,gBAAiBA,EAAS,EAC1B,gBAAiBA,EAAS,EAC1B,4BAA6BA,EAAS,EACtC,cAAeA,EAAS,EACxB,kBAAmBA,EAAS,EAC5B,WAAYA,EAAS,EACrB,eAAgBA,EAAS,CAC3B,CAAC,EAEYE,EAAwBH,EAAS,CAC5C,mBAAoBI,EAAU,EAC9B,mBAAoBC,EAAOC,CAAoB,EAC/C,YAAaL,EAAS,EACtB,WAAYM,EAAU,EACtB,GAAIL,EAAS,EACb,OAAQM,EAAQD,GAAW,EAC3B,UAAWC,EAAQD,GAAW,EAC9B,IAAKN,EAAS,EACd,oBAAqBQ,EAAQ,CAACC,EAAE,CAAM,CAAC,EACvC,KAAMT,EAAS,EACf,UAAWU,EAAOV,EAAY,EAAAW,GAAO,EACrC,OAAQL,EAAU,EAClB,SAAUL,EAAS,EACnB,gBAAiBK,EAAU,EAC3B,kBAAmBN,EAAS,EAC5B,qBAAsBG,EAAU,EAChC,IAAKH,EAAS,EACd,kBAAmBG,EAAU,EAC7B,OAAQL,EACR,KAAME,EAAS,EACf,UAAWO,EAAQD,EAAW,CAAA,CAChC,CAAC,EAEYM,EAA0Bb,EAAS,CAC9C,cAAeC,EAAS,EACxB,2BAA4BA,EAAS,EACrC,oBAAqBC,EAAS,EAC9B,gBAAiBD,EAAS,EAC1B,gBAAiBA,EAAS,EAC1B,gBAAiBA,EAAS,EAC1B,4BAA6BA,EAAS,EACtC,UAAWO,EAAQD,GAAW,EAC9B,eAAgBN,EAAS,EACzB,mBAAoBA,EAAS,EAC7B,WAAYA,EAAS,EACrB,eAAgBA,EAAS,EACzB,YAAaA,EAAS,EACtB,gBAAiBA,EAAS,EAC1B,YAAaA,EAAS,EACtB,eAAgBU,EACdF,EAAQ,CAACR,IAAYS,EAAQ,CAAA,CAAC,EAC9BI,EAAY,MAAM,CACpB,EACA,mBAAoBL,EAAQ,CAACR,IAAYS,EAAQ,CAAA,CAAC,EAClD,UAAWT,EAAS,CACtB,CAAC,EAEYc,EAAoBf,EAAS,CACxC,gBAAiBgB,EAEjB,QAASR,EAAQS,CAAwB,EACzC,YAAaV,EAAU,EACvB,OAAQA,EAAU,EAClB,WAAYA,EAAU,EACtB,KAAMA,EAAU,EAChB,wBAAyBH,EAAU,EACnC,MAAOI,EAAQL,CAAqB,EACpC,YAAaQ,EAAOT,EAAY,EAAAgB,GAAW,EAC3C,aAAcP,EAAOT,EAAY,EAAAgB,GAAW,EAC5C,cAAed,EAAU,EACzB,eAAgBA,EAAU,EAC1B,gBAAiBG,EAAU,EAC3B,qBAAsBA,EAAU,EAChC,iBAAkBY,EAClB,eAAgBX,EAAQY,CAAyB,EACjD,OAAQP,CACV,CAAC"}
|
||||
{"version":3,"file":"cart.js","sources":["../../src/scripts/lib/schemas/api/cart.ts"],"sourcesContent":["import * as v from \"valibot\";\n\nimport { CATALOG_VISIBILITIES } from \"../../../constantes/api/cart.ts\";\nimport { WCStoreBillingAddressSchema, WCStoreShippingAddressSchema } from \"./adresses.ts\";\nimport { WCStoreCartCouponsSchema } from \"./cart-coupons.ts\";\nimport { WCStoreShippingRateSchema } from \"./couts-livraison.ts\";\n\nexport const WCStoreCartItemTotalsSchema = v.object({\n currency_code: v.string(),\n currency_decimal_separator: v.string(),\n currency_minor_unit: v.number(),\n currency_prefix: v.string(),\n currency_suffix: v.string(),\n currency_symbol: v.string(),\n currency_thousand_separator: v.string(),\n line_subtotal: v.string(),\n line_subtotal_tax: v.string(),\n line_total: v.string(),\n line_total_tax: v.string(),\n});\n\nexport const WCStoreCartItemSchema = v.object({\n backorders_allowed: v.boolean(),\n catalog_visibility: v.enum(CATALOG_VISIBILITIES),\n description: v.string(),\n extensions: v.unknown(),\n id: v.number(),\n images: v.array(v.unknown()),\n item_data: v.array(v.unknown()),\n key: v.string(),\n low_stock_remaining: v.union([v.null()]),\n name: v.string(),\n permalink: v.pipe(v.string(), v.url()),\n prices: v.unknown(),\n quantity: v.number(),\n quantity_limits: v.unknown(),\n short_description: v.string(),\n show_backorder_badge: v.boolean(),\n sku: v.string(),\n sold_individually: v.boolean(),\n totals: WCStoreCartItemTotalsSchema,\n type: v.string(),\n variation: v.array(v.unknown()),\n});\n\nexport const WCStoreCartTotalsSchema = v.object({\n currency_code: v.string(),\n currency_decimal_separator: v.string(),\n currency_minor_unit: v.number(),\n currency_prefix: v.string(),\n currency_suffix: v.string(),\n currency_symbol: v.string(),\n currency_thousand_separator: v.string(),\n tax_lines: v.array(v.unknown()),\n total_discount: v.string(),\n total_discount_tax: v.string(),\n total_fees: v.string(),\n total_fees_tax: v.string(),\n total_items: v.string(),\n total_items_tax: v.string(),\n total_price: v.string(),\n total_shipping: v.pipe(\n v.union([v.string(), v.null()]),\n v.transform(Number),\n ),\n total_shipping_tax: v.union([v.string(), v.null()]),\n total_tax: v.string(),\n});\n\nexport const WCStoreCartSchema = v.object({\n billing_address: WCStoreBillingAddressSchema,\n /** List of applied basket coupons. */\n coupons: v.array(WCStoreCartCouponsSchema),\n cross_sells: v.unknown(),\n errors: v.unknown(),\n extensions: v.unknown(),\n fees: v.unknown(),\n has_calculated_shipping: v.boolean(),\n items: v.array(WCStoreCartItemSchema),\n items_count: v.pipe(v.number(), v.integer()),\n items_weight: v.pipe(v.number(), v.integer()),\n needs_payment: v.boolean(),\n needs_shipping: v.boolean(),\n payment_methods: v.unknown(),\n payment_requirements: v.unknown(),\n shipping_address: WCStoreShippingAddressSchema,\n shipping_rates: v.array(WCStoreShippingRateSchema),\n totals: WCStoreCartTotalsSchema,\n});\n"],"names":["WCStoreCartItemTotalsSchema","v.object","v.string","v.number","WCStoreCartItemSchema","v.boolean","v.enum","CATALOG_VISIBILITIES","v.unknown","v.array","v.union","v.null","v.pipe","v.url","WCStoreCartTotalsSchema","v.transform","WCStoreCartSchema","WCStoreBillingAddressSchema","WCStoreCartCouponsSchema","v.integer","WCStoreShippingAddressSchema","WCStoreShippingRateSchema"],"mappings":"oRAOa,MAAAA,EAA8BC,EAAS,CAClD,cAAeC,EAAS,EACxB,2BAA4BA,EAAS,EACrC,oBAAqBC,EAAS,EAC9B,gBAAiBD,EAAS,EAC1B,gBAAiBA,EAAS,EAC1B,gBAAiBA,EAAS,EAC1B,4BAA6BA,EAAS,EACtC,cAAeA,EAAS,EACxB,kBAAmBA,EAAS,EAC5B,WAAYA,EAAS,EACrB,eAAgBA,EAAS,CAC3B,CAAC,EAEYE,EAAwBH,EAAS,CAC5C,mBAAoBI,EAAU,EAC9B,mBAAoBC,EAAOC,CAAoB,EAC/C,YAAaL,EAAS,EACtB,WAAYM,EAAU,EACtB,GAAIL,EAAS,EACb,OAAQM,EAAQD,GAAW,EAC3B,UAAWC,EAAQD,GAAW,EAC9B,IAAKN,EAAS,EACd,oBAAqBQ,EAAQ,CAACC,EAAE,CAAM,CAAC,EACvC,KAAMT,EAAS,EACf,UAAWU,EAAOV,EAAY,EAAAW,GAAO,EACrC,OAAQL,EAAU,EAClB,SAAUL,EAAS,EACnB,gBAAiBK,EAAU,EAC3B,kBAAmBN,EAAS,EAC5B,qBAAsBG,EAAU,EAChC,IAAKH,EAAS,EACd,kBAAmBG,EAAU,EAC7B,OAAQL,EACR,KAAME,EAAS,EACf,UAAWO,EAAQD,EAAW,CAAA,CAChC,CAAC,EAEYM,EAA0Bb,EAAS,CAC9C,cAAeC,EAAS,EACxB,2BAA4BA,EAAS,EACrC,oBAAqBC,EAAS,EAC9B,gBAAiBD,EAAS,EAC1B,gBAAiBA,EAAS,EAC1B,gBAAiBA,EAAS,EAC1B,4BAA6BA,EAAS,EACtC,UAAWO,EAAQD,GAAW,EAC9B,eAAgBN,EAAS,EACzB,mBAAoBA,EAAS,EAC7B,WAAYA,EAAS,EACrB,eAAgBA,EAAS,EACzB,YAAaA,EAAS,EACtB,gBAAiBA,EAAS,EAC1B,YAAaA,EAAS,EACtB,eAAgBU,EACdF,EAAQ,CAACR,IAAYS,EAAQ,CAAA,CAAC,EAC9BI,EAAY,MAAM,CACpB,EACA,mBAAoBL,EAAQ,CAACR,IAAYS,EAAQ,CAAA,CAAC,EAClD,UAAWT,EAAS,CACtB,CAAC,EAEYc,EAAoBf,EAAS,CACxC,gBAAiBgB,EAEjB,QAASR,EAAQS,CAAwB,EACzC,YAAaV,EAAU,EACvB,OAAQA,EAAU,EAClB,WAAYA,EAAU,EACtB,KAAMA,EAAU,EAChB,wBAAyBH,EAAU,EACnC,MAAOI,EAAQL,CAAqB,EACpC,YAAaQ,EAAOT,EAAY,EAAAgB,GAAW,EAC3C,aAAcP,EAAOT,EAAY,EAAAgB,GAAW,EAC5C,cAAed,EAAU,EACzB,eAAgBA,EAAU,EAC1B,gBAAiBG,EAAU,EAC3B,qBAAsBA,EAAU,EAChC,iBAAkBY,EAClB,eAAgBX,EAAQY,CAAyB,EACjD,OAAQP,CACV,CAAC"}
|
||||
|
|
@ -1 +1 @@
|
|||
{"version":3,"file":"cart2.js","sources":["../../src/scripts/constantes/cart.ts"],"sourcesContent":["export const CATALOG_VISIBILITIES = {\n INVISIBLE: \"invisible\",\n VISIBLE: \"visible\",\n} as const;\n"],"names":["CATALOG_VISIBILITIES"],"mappings":"AAAO,MAAMA,EAAuB,CAClC,UAAW,YACX,QAAS,SACX"}
|
||||
{"version":3,"file":"cart2.js","sources":["../../src/scripts/constantes/api/cart.ts"],"sourcesContent":["/** Constantes liées aux Paniers WooCommerce. */\n\nexport const CATALOG_VISIBILITIES = {\n INVISIBLE: \"invisible\",\n VISIBLE: \"visible\",\n} as const;\n"],"names":["CATALOG_VISIBILITIES"],"mappings":"AAEO,MAAMA,EAAuB,CAClC,UAAW,YACX,QAAS,SACX"}
|
||||
|
|
@ -1 +1 @@
|
|||
{"version":3,"file":"codes-promo.js","sources":["../../src/scripts/lib/erreurs/codes-promo.ts"],"sourcesContent":["/** Types d'Erreurs liés aux codes promos. */\n\nexport class ErreurCodePromoInvalide extends Error {\n constructor(message: string) {\n super(`Code promo « ${message} » invalide.`);\n this.name = \"ErreurCodePromoInvalide\";\n }\n}\n"],"names":["ErreurCodePromoInvalide","message"],"mappings":"AAEO,MAAMA,UAAgC,KAAM,CACjD,YAAYC,EAAiB,CACrB,MAAA,gBAAgBA,CAAO,cAAc,EAC3C,KAAK,KAAO,yBAAA,CAEhB"}
|
||||
{"version":3,"file":"codes-promo.js","sources":["../../src/scripts/lib/erreurs/codes-promo.ts"],"sourcesContent":["/** Types d'Erreurs liés aux codes promos WooCommerce. */\n\nexport class ErreurCodePromoInvalide extends Error {\n constructor(message: string) {\n super(`Code promo « ${message} » invalide.`);\n this.name = \"ErreurCodePromoInvalide\";\n }\n}\n"],"names":["ErreurCodePromoInvalide","message"],"mappings":"AAEO,MAAMA,UAAgC,KAAM,CACjD,YAAYC,EAAiB,CACrB,MAAA,gBAAgBA,CAAO,cAAc,EAC3C,KAAK,KAAO,yBAAA,CAEhB"}
|
||||
|
|
@ -1,2 +1,2 @@
|
|||
const s="aria-hidden",_="aria-selected",n="data-cache",T="data-chargement",t="data-cle-panier",o="data-code-promo-present",e="data-contient-articles",R="disabled",i="data-ensemble-epingle-boite-actif",U="hidden",c="data-id-categorie-produits",S="data-id-ensemble-epingle-boite",I="data-index-image-active",O="data-livraison-validee",L="data-menu-mobile-active",C="data-page",r="data-prix",A="#bouton-menu-mobile",N=".compte-panier a[rel='cart']",p="#menu-categories-produits ul li a",u="#menu-categories-produits",d="#menu-mobile",l="#bouton-ajout-panier",P="#page-panier",B="a[role='tab']",m="section[role='tabpanel']",D="#selecteur-variation",M="#panneau-informations-client .panneau__pied-de-page button",g="button.detail-produit__actions__addition",b="#panneau-panier #bouton-code-promo",G="#separation-adresses",f="button.detail-produit__actions__soustraction",F="button.detail-produit__actions__suppression",H="#panneau-panier #champ-code-promo",h="input",V="#panneau-panier #ensemble-code-promo",v="article",x="#panneau-informations-client .panneau__formulaires__facturation",X="#panneau-informations-client form",y="#panneau-panier #instructions-client",Q="#panneau-panier .panneau__instructions-code-promo__code-promo__message",Y="#panneau-informations-client #message-formulaire-adresses",q=".detail-produit__nom-prix span",$="#panneau-panier #sous-total-livraison strong",j="#panneau-panier #sous-total-livraison span",J="#panneau-panier #sous-total-produits strong",k="#panneau-panier .panneau__pied-de-page p span",w="#panneau-panier #sous-total-reduction",z="#panneau-panier #sous-total-reduction strong",K=".storytelling",W=".storytelling__image",Z="#page-boutique #bouton-plus-de-produits",EE="#page-boutique .grille-produits",E="boite-texte",aE="boite-texte__bouton-fermeture",a="epingle",sE=`.${E}`,_E=".storytelling__conteneur",nE=`.${a}`,TE=".fleches-defilement",tE=".fleches-defilement__bouton:last-of-type",oE=".fleches-defilement__bouton:first-of-type",eE=".colonne-droite img",RE=".colonne-gauche img",iE=".photos-produit",UE=".selecteur-produit__prix";export{_ as $,e as A,t as B,aE as C,f as D,h as E,g as F,F as G,q as H,b as I,H as J,V as K,Q as L,w as M,o as N,l as O,D as P,B as Q,m as R,N as S,UE as T,TE as U,oE as V,tE as W,iE as X,RE as Y,eE as Z,I as _,u as a,r as a0,A as a1,d as a2,L as a3,M as a4,X as a5,y as a6,Y as a7,$ as a8,j as a9,O as aa,p as b,S as c,i as d,a as e,_E as f,nE as g,sE as h,W as i,K as j,n as k,s as l,Z as m,EE as n,c as o,C as p,R as q,T as r,U as s,v as t,P as u,J as v,z as w,k as x,G as y,x as z};
|
||||
const s="aria-hidden",_="aria-selected",n="data-cache",T="data-chargement",t="data-cle-panier",o="data-code-promo-present",e="data-contient-articles",R="disabled",i="data-ensemble-epingle-boite-actif",U="hidden",c="data-id-categorie-produits",S="data-id-ensemble-epingle-boite",I="data-index-image-active",O="data-livraison-validee",L="data-menu-mobile-active",C="data-page",r="data-prix",A="#bouton-menu-mobile",N=".compte-panier a[rel='cart']",p="#menu-categories-produits ul li a",u="#menu-categories-produits",d="#menu-mobile",l="#bouton-ajout-panier",P="#page-panier",B="a[role='tab']",m="section[role='tabpanel']",D="#selecteur-variation",M="#panneau-informations-client .panneau__pied-de-page button",g="button.detail-produit__actions__addition",b="#panneau-panier #bouton-code-promo",G="#separation-adresses",f="button.detail-produit__actions__soustraction",F="button.detail-produit__actions__suppression",H="#panneau-panier #champ-code-promo",h="input",V="#panneau-panier #ensemble-code-promo",v="article",x="#panneau-informations-client .panneau__formulaires__facturation",X="#panneau-informations-client form",y="#panneau-panier #instructions-client",Q="#panneau-panier .panneau__instructions-code-promo__code-promo__message",Y="#panneau-informations-client #message-formulaire-adresses",q=".detail-produit__nom-prix span",$="#panneau-panier #sous-total-livraison strong",j="#panneau-panier #sous-total-livraison span",J="#panneau-panier #sous-total-produits strong",k="#panneau-panier .panneau__pied-de-page p span",w="#panneau-panier #sous-total-reduction",z="#panneau-panier #sous-total-reduction strong",K=".storytelling",W=".storytelling__image",Z="#page-boutique #bouton-plus-de-produits",EE="#page-boutique .grille-produits",E="boite-texte",aE="boite-texte__bouton-fermeture",a="epingle",sE=`.${E}`,_E=".storytelling__conteneur",nE=`.${a}`,TE=".fleches-defilement",tE=".fleches-defilement__bouton:last-of-type",oE=".fleches-defilement__bouton:first-of-type",eE=".colonne-droite img",RE=".colonne-gauche img",iE=".photos-produit",UE=".selecteur-produit__prix";export{_ as $,e as A,t as B,aE as C,q as D,h as E,g as F,f as G,F as H,b as I,H as J,V as K,Q as L,w as M,o as N,l as O,D as P,B as Q,m as R,N as S,UE as T,TE as U,oE as V,tE as W,iE as X,RE as Y,eE as Z,I as _,u as a,r as a0,A as a1,d as a2,L as a3,M as a4,X as a5,y as a6,Y as a7,$ as a8,j as a9,O as aa,p as b,S as c,i as d,a as e,_E as f,nE as g,sE as h,W as i,K as j,n as k,s as l,Z as m,EE as n,c as o,C as p,R as q,T as r,U as s,v as t,P as u,J as v,z as w,k as x,G as y,x as z};
|
||||
//# sourceMappingURL=dom.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 @@
|
|||
const o="woocommerce_rest_cart_coupon_error";export{o as E};
|
||||
import{c as o}from"./exports.jfK3lrNh.js";const d=r=>`Le selecteur "${r}" est invalide`,l=r=>`La requête "${r}" n'a retourné aucun Élément.`,h=r=>new SyntaxError(r);class s extends Error{constructor(e="400 BadRequestError"){super(e),this.name="BadRequestError"}}class N extends Error{constructor(e){super(JSON.stringify(e)),this.name="CleNonTrouveError"}}class t extends Error{constructor(e){super(JSON.stringify(e)),this.name="NonExistingKeyError"}}class n extends Error{constructor(e="404 NotFoundError"){super(e),this.name="NotFoundError"}}class E extends Error{constructor(e="500 ServerError"){super(e),this.name="ServerError"}}class a extends Error{constructor(e="401 UnauthorizedError"){super(e),this.name="UnauthorizedError"}}class c extends Error{constructor(e){super(JSON.stringify(e)),this.name="UnknownError"}}const w=r=>new c(r),x=r=>new t(r),m=r=>{throw r},p=r=>{throw new s(`(${r.code}) ${r.message}`)},v=r=>{throw new a(`(${r.code}) ${r.message}`)},S=r=>{throw new n(`(${r.code}) ${r.message}`)},R=r=>{throw new E(r)},u=r=>(console.error(r),o(r)),g=r=>{throw u(r),r};export{s as B,N as C,w as E,t as N,E as S,m as a,p as b,v as c,S as d,h as e,g as f,x as g,d as h,l as i,R as l,u as r};
|
||||
//# sourceMappingURL=erreurs.js.map
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -1,2 +1,2 @@
|
|||
import{c as o}from"./exports.BFQs_g59.js";const d=r=>`Le selecteur "${r}" est invalide`,l=r=>`La requête "${r}" n'a retourné aucun Élément.`,h=r=>new SyntaxError(r);class s extends Error{constructor(e="400 BadRequestError"){super(e),this.name="BadRequestError"}}class N extends Error{constructor(e){super(JSON.stringify(e)),this.name="CleNonTrouveError"}}class t extends Error{constructor(e){super(JSON.stringify(e)),this.name="NonExistingKeyError"}}class n extends Error{constructor(e="404 NotFoundError"){super(e),this.name="NotFoundError"}}class E extends Error{constructor(e="500 ServerError"){super(e),this.name="ServerError"}}class a extends Error{constructor(e="401 UnauthorizedError"){super(e),this.name="UnauthorizedError"}}class c extends Error{constructor(e){super(JSON.stringify(e)),this.name="UnknownError"}}const w=r=>new c(r),x=r=>new t(r),m=r=>{throw r},p=r=>{throw new s(`(${r.code}) ${r.message}`)},v=r=>{throw new a(`(${r.code}) ${r.message}`)},S=r=>{throw new n(`(${r.code}) ${r.message}`)},R=r=>{throw new E(r)},u=r=>(console.error(r),o(r)),g=r=>{throw u(r),r};export{s as B,N as C,w as E,t as N,E as S,p as a,v as b,S as c,m as d,h as e,g as f,x as g,d as h,l as i,R as l,u as r};
|
||||
const o="woocommerce_rest_cart_coupon_error";export{o as E};
|
||||
//# sourceMappingURL=erreurs2.js.map
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -1,2 +1,2 @@
|
|||
import{o as a,l as d,c as e,s,u as t,a as l,d as o,i,f as n,n as c}from"./index.BykRh4R4.js";const m=a({code:s(),data:a({status:c()}),message:s()}),p=a({body:m,status:c()}),_=r=>n(p,r),g=a({code:d("rest_invalid_param"),data:a({details:a({billing_address:e(a({code:s(),data:t([o(),s()]),message:s()})),shipping_address:e(a({code:s(),data:t([o(),s()]),message:s()}))}),params:a({billing_address:e(s()),shipping_address:e(s())}),status:d(400)}),message:l(s(),i("Invalid parameter(s):"),i("_address"))}),W=r=>n(g,r);export{p as W,W as a,_ as e};
|
||||
import{o as a,l as d,c as e,s,u as t,a as l,d as o,i,f as n,n as c}from"./index.BykRh4R4.js";const m=a({code:s(),data:a({status:c()}),message:s()}),p=a({body:m,status:c()}),_=r=>n(p,r),g=a({code:d("rest_invalid_param"),data:a({details:a({billing_address:e(a({code:s(),data:t([o(),s()]),message:s()})),shipping_address:e(a({code:s(),data:t([o(),s()]),message:s()}))}),params:a({billing_address:e(s()),shipping_address:e(s())}),status:d(400)}),message:l(s(),i("Invalid parameter(s):"),i("_address"))}),W=r=>n(g,r);export{p as W,_ as a,W as e};
|
||||
//# sourceMappingURL=erreurs3.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
|
|
@ -1,2 +1,2 @@
|
|||
const s=e=>t=>t instanceof e,n=s(HTMLSelectElement),o=e=>e instanceof Error,c=e=>e.status===500;export{o as a,n as b,c as e};
|
||||
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.js.map
|
||||
|
|
|
|||
|
|
@ -1,2 +0,0 @@
|
|||
import{f as o,E as t}from"./api.js";import{E as r}from"./MaybeAsync.BkJailCK.js";import{r as i,l as n}from"./Either.DDEPhGsy.js";const a=_etats,s=()=>fetch(o,{credentials:"same-origin",headers:{Accept:"application/json","Content-Type":"application/json",[t]:a.nonce},method:"GET",mode:"same-origin",signal:AbortSignal.timeout(5e3)}).then(i).catch(n);r.fromPromise(s).map(e=>e.json()).ifLeft(e=>{console.error(e)});
|
||||
//# sourceMappingURL=gestion-panier.js.map
|
||||
|
|
@ -1 +0,0 @@
|
|||
{"version":3,"file":"gestion-panier.js","sources":["../../src/scripts/lib/gestion-panier.ts"],"sourcesContent":["/**\n * Fonctions liées à la gestion du Panier.\n */\n\nimport { type Either, EitherAsync, Left, Right } from \"purify-ts\";\n\nimport { ENTETE_WC_NONCE, ROUTE_API_PANIER } from \"../constantes/api.ts\";\n\n/** États utiles pour les scripts. */\ninterface Etats {\n /** Un nonce pour l'authentification de requêtes API */\n nonce: string;\n}\n\n// @ts-expect-error -- États injectés par le modèle PHP\n// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- États injectés par le modèle PHP\nconst ETATS: Etats = _etats;\n\nconst requeteRecuperePanier = (): Promise<Either<Error, Response>> =>\n fetch(\n ROUTE_API_PANIER,\n {\n credentials: \"same-origin\",\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n [ENTETE_WC_NONCE]: ETATS.nonce,\n },\n method: \"GET\",\n mode: \"same-origin\",\n signal: AbortSignal.timeout(5000),\n },\n )\n .then(Right)\n .catch(Left);\n\nexport const recuperePanier = EitherAsync\n .fromPromise(requeteRecuperePanier)\n .map(a => a.json())\n .ifLeft(e => {\n console.error(e);\n });\n"],"names":["ETATS","requeteRecuperePanier","ROUTE_API_PANIER","ENTETE_WC_NONCE","Right","Left","EitherAsync","a"],"mappings":"iIAgBA,MAAMA,EAAe,OAEfC,EAAwB,IAC5B,MACEC,EACA,CACE,YAAa,cACb,QAAS,CACP,OAAQ,mBACR,eAAgB,mBAChB,CAACC,CAAe,EAAGH,EAAM,KAC3B,EACA,OAAQ,MACR,KAAM,cACN,OAAQ,YAAY,QAAQ,GAAI,CAAA,CAEpC,EACG,KAAKI,CAAK,EACV,MAAMC,CAAI,EAEeC,EAC3B,YAAYL,CAAqB,EACjC,IAASM,GAAAA,EAAE,KAAM,CAAA,EACjB,OAAY,GAAA,CACX,QAAQ,MAAM,CAAC,CACjB,CAAC"}
|
||||
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{_ as W,i as x,c as z,g as D,a as i,b as U,d as S,f as $,m as k,e as o,h as E}from"./belt_Option-91f3b350.Dja5KR5O.js";import{s as u,k as M,n as R,v as e,l as y,m as A}from"./dom2.js";var F=z("Promise.JsError");function G(n,r){return n.catch(function(t){return W(r,x(t)?t:{RE_EXN_ID:F,_1:t})})}function T(n){}function q(n){return u(n)}function I(n){}function J(n){if(n!=null)return u(n)}function O(n){if(n)return n}function a(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 a(t,n[0])}}return a(arguments[0],arguments[1])}function j(n){try{return u(n(void 0))}catch{return}}function w(n){return G(n.then(function(r){return u(r)}),function(r){return Promise.resolve(void 0)})}var f=k;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=o;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 R(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 o(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=i;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 i(n,null)}function Z(n){return i(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 y(t,r)})}function on(){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 an(){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 M(n,[],function(r,t){return o(r,function(P){if(t!==void 0)return A(P,[e(t)])})})}const mn=n=>n;var hn={__proto__:null,Some:mn,None:void 0,placeholder:T,makeSome:q,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:on,zip:an,zipWith:fn,fold:sn,all:cn};export{hn as P,C as f,Q as g};
|
||||
//# sourceMappingURL=index-c1cc4c86.Ce2mb7Nd.js.map
|
||||
import{_ as W,i as x,c as z,g as D,a as o,b as U,d as S,f as $,m as M,e as i,h as E}from"./belt_Option-91f3b350.Dja5KR5O.js";import{s as u,l as R,n as k,v as e,o as y,p as A}from"./dom2.js";var F=z("Promise.JsError");function G(n,r){return n.catch(function(t){return W(r,x(t)?t:{RE_EXN_ID:F,_1:t})})}function T(n){}function q(n){return u(n)}function I(n){}function J(n){if(n!=null)return u(n)}function O(n){if(n)return n}function a(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 a(t,n[0])}}return a(arguments[0],arguments[1])}function j(n){try{return u(n(void 0))}catch{return}}function w(n){return G(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=o;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 o(n,null)}function Z(n){return o(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 y(t,r)})}function on(){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 an(){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 A(P,[e(t)])})})}const mn=n=>n;var hn={__proto__:null,Some:mn,None:void 0,placeholder:T,makeSome:q,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:on,zip:an,zipWith:fn,fold:sn,all:cn};export{hn as P,C as f,Q as g};
|
||||
//# sourceMappingURL=index-c1cc4c86.CgXEmUX3.js.map
|
||||
File diff suppressed because one or more lines are too long
|
|
@ -1 +1 @@
|
|||
{"version":3,"file":"messages-utilisateur.js","sources":["../../src/scripts/constantes/messages-utilisateur.ts"],"sourcesContent":["/** Constantes des Messages affichés aux Utilisateurs. */\n\nexport const ERREUR_GENERIQUE_RESEAU =\n \"Something seems to be wrong with your network. Please verify your connection, refresh and try again?\";\nexport const ERREUR_GENERIQUE_SOUMISSION_ADRESSES =\n \"Something went wrong while submitting the addresses. Please refresh your page and try again?\";\nexport const ERREUR_GENERIQUE_CREATION_COMMANDE =\n \"Something went wrong while creating your order. Please refresh your page and try again?\";\nexport const ERREUR_ADRESSE_GENERIQUE = \"Something is wrong in the information you filled. Please check and try again?\";\nexport const ERREUR_ADRESSE_MAUVAIS_CODE_POSTAL =\n \"Please verify your postcode: it should not contain region/state indicators.\";\n"],"names":["ERREUR_GENERIQUE_RESEAU","ERREUR_GENERIQUE_SOUMISSION_ADRESSES","ERREUR_GENERIQUE_CREATION_COMMANDE","ERREUR_ADRESSE_MAUVAIS_CODE_POSTAL"],"mappings":"AAEO,MAAMA,EACX,uGACWC,EACX,+FACWC,EACX,0FAEWC,EACX"}
|
||||
{"version":3,"file":"messages-utilisateur.js","sources":["../../src/scripts/constantes/messages-utilisateur.ts"],"sourcesContent":["/** Constantes des Messages affichés aux Utilisateurs. */\n\n// Générique\nexport const ERREUR_GENERIQUE_RESEAU =\n \"Something seems to be wrong with your network. Please verify your connection, refresh and try again?\";\nexport const ERREUR_GENERIQUE_SOUMISSION_ADRESSES =\n \"Something went wrong while submitting the addresses. Please refresh your page and try again?\";\nexport const ERREUR_GENERIQUE_CREATION_COMMANDE =\n \"Something went wrong while creating your order. Please refresh your page and try again?\";\n\n// Adresses\nexport const ERREUR_ADRESSE_GENERIQUE = \"Something is wrong in the information you filled. Please check and try again?\";\nexport const ERREUR_ADRESSE_MAUVAIS_CODE_POSTAL =\n \"Please verify your postcode: it should not contain region/state indicators.\";\n"],"names":["ERREUR_GENERIQUE_RESEAU","ERREUR_GENERIQUE_SOUMISSION_ADRESSES","ERREUR_GENERIQUE_CREATION_COMMANDE","ERREUR_ADRESSE_MAUVAIS_CODE_POSTAL"],"mappings":"AAGO,MAAMA,EACX,uGACWC,EACX,+FACWC,EACX,0FAIWC,EACX"}
|
||||
|
|
@ -1,2 +1,2 @@
|
|||
import{p as s}from"./index.BykRh4R4.js";import{N as i,T as t,a as p}from"./messages3.js";import{r}from"./erreurs2.js";import{W as m}from"./erreurs3.js";import{M as u,a as c}from"./messages2.js";import{e as M}from"./validation.js";import{p as d}from"./pipe.CtTFdEz3.js";import{E as n}from"./Either.DDEPhGsy.js";import"./exports.BFQs_g59.js";import"./cart.js";import"./cart2.js";import"./adresses2.js";import"./cart-coupons.js";import"./couts-livraison.js";const l=(e,a)=>(e.postMessage(a),e),L=e=>{const a=new BroadcastChannel(i);a.postMessage({donnees:{quantiteProduits:e.quantiteProduits},type:t.MajBoutonPanier}),a.close()},R=e=>{const a=new BroadcastChannel(p);a.postMessage({donnees:{produits:e.produits,sousTotalProduits:e.sousTotalProduits,sousTotalReduction:e.sousTotalReduction,totalPanier:e.totalPanier},type:t.MajContenuPanier}),a.close()},q=(e,a)=>d(new BroadcastChannel(e),o=>l(o,a),o=>o.close()),v=e=>n.of(s(u,e.data)).ifLeft(a=>r(a)),w=e=>n.of(s(c,e.data)).ifLeft(a=>r(a)),y=(e,a)=>M(e,m).map(o=>o.body.code===a).orDefault(!1);export{R as a,q as b,w as c,L as e,y as r,v};
|
||||
import{p as s}from"./index.BykRh4R4.js";import{N as i,T as t,a as p}from"./messages3.js";import{r}from"./erreurs.js";import{W as m}from"./erreurs3.js";import{M as u,a as c}from"./messages2.js";import{e as M}from"./validation.js";import{p as d}from"./pipe.CtTFdEz3.js";import{E as n}from"./Either.DDEPhGsy.js";import"./exports.jfK3lrNh.js";import"./cart.js";import"./cart2.js";import"./adresses2.js";import"./cart-coupons.js";import"./couts-livraison.js";const l=(e,a)=>(e.postMessage(a),e),L=e=>{const a=new BroadcastChannel(i);a.postMessage({donnees:{quantiteProduits:e.quantiteProduits},type:t.MajBoutonPanier}),a.close()},R=e=>{const a=new BroadcastChannel(p);a.postMessage({donnees:{produits:e.produits,sousTotalProduits:e.sousTotalProduits,sousTotalReduction:e.sousTotalReduction,totalPanier:e.totalPanier},type:t.MajContenuPanier}),a.close()},q=(e,a)=>d(new BroadcastChannel(e),o=>l(o,a),o=>o.close()),v=e=>n.of(s(u,e.data)).ifLeft(a=>r(a)),w=e=>n.of(s(c,e.data)).ifLeft(a=>r(a)),y=(e,a)=>M(e,m).map(o=>o.body.code===a).orDefault(!1);export{w as a,L as b,R as c,q as e,y as r,v};
|
||||
//# sourceMappingURL=messages.js.map
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
{"version":3,"file":"messages.js","sources":["../../src/scripts/lib/messages.ts"],"sourcesContent":["import { pipe } from \"@mobily/ts-belt\";\nimport { Either } from \"purify-ts\";\nimport { parse, type ValiError } from \"valibot\";\n\nimport type {\n MessageMajBoutonPanier,\n MessageMajBoutonPanierDonnees,\n MessageMajContenuPanier,\n MessageMajContenuPanierDonnees,\n} from \"./types/messages\";\nimport type { ReponseSimplifiee } from \"./types/reseau\";\n\nimport { NOM_CANAL_BOUTON_PANIER, NOM_CANAL_CONTENU_PANIER, TYPES_MESSAGES } from \"../constantes/messages.ts\";\nimport { reporteErreur } from \"./erreurs.ts\";\nimport { WCErrorSchema } from \"./schemas/api/erreurs.ts\";\nimport { MessageMajBoutonPanierSchema, MessageMajContenuPanierSchema } from \"./schemas/messages.ts\";\nimport { eitherParse } from \"./validation.ts\";\n\nexport const canalPostMessage = (canal: BroadcastChannel, message: any): BroadcastChannel => {\n canal.postMessage(message);\n return canal;\n};\n\n// Émissions\nexport const emetMessageMajBoutonPanier = (args: MessageMajBoutonPanierDonnees): void => {\n const canal = new BroadcastChannel(NOM_CANAL_BOUTON_PANIER);\n canal.postMessage({\n donnees: {\n quantiteProduits: args.quantiteProduits,\n },\n type: TYPES_MESSAGES.MajBoutonPanier,\n } as MessageMajBoutonPanier);\n canal.close();\n};\n\nexport const emetMessageMajContenuPanier = (args: MessageMajContenuPanierDonnees): void => {\n const canal = new BroadcastChannel(NOM_CANAL_CONTENU_PANIER);\n canal.postMessage({\n donnees: {\n produits: args.produits,\n sousTotalProduits: args.sousTotalProduits,\n sousTotalReduction: args.sousTotalReduction,\n totalPanier: args.totalPanier,\n },\n type: TYPES_MESSAGES.MajContenuPanier,\n } as MessageMajContenuPanier);\n canal.close();\n};\n\n/**\n * Émet un unique message vers un BroadcastChannel (canal) généré sur le moment puis le ferme.\n *\n * @param nomCanal Le nom du BroadcastChannel pour lequel le message est émis.\n * @param message Le message émis.\n * @return void\n */\nexport const emetUniqueMessageCanal = <M>(nomCanal: string, message: M): void =>\n pipe(new BroadcastChannel(nomCanal), canal => canalPostMessage(canal, message), canal => canal.close());\n\n// Validations\nexport const valideMessageMajBoutonPanier = (\n evenementMessage: MessageEvent<unknown>,\n): Either<ValiError<typeof MessageMajBoutonPanierSchema>, MessageMajBoutonPanier> =>\n Either\n .of<ValiError<typeof MessageMajBoutonPanierSchema>, MessageMajBoutonPanier>(\n parse(MessageMajBoutonPanierSchema, evenementMessage.data),\n )\n .ifLeft(erreur => reporteErreur(erreur));\n\nexport const valideMessageMajContenuPanier = (\n evenementMessage: MessageEvent<unknown>,\n): Either<ValiError<typeof MessageMajContenuPanierSchema>, MessageMajContenuPanier> =>\n Either\n .of<ValiError<typeof MessageMajContenuPanierSchema>, MessageMajContenuPanier>(\n parse(MessageMajContenuPanierSchema, evenementMessage.data),\n )\n .ifLeft(erreur => reporteErreur(erreur));\n\n// Correspondances\nexport const reponseEstCodeErreurWC = (reponse: ReponseSimplifiee, codeErreurWC: string): boolean =>\n eitherParse(reponse, WCErrorSchema)\n .map(v => v.body.code === codeErreurWC)\n .orDefault(false);\n"],"names":["parse","NOM_CANAL_BOUTON_PANIER","TYPES_MESSAGES","NOM_CANAL_CONTENU_PANIER","WCErrorSchema","MessageMajBoutonPanierSchema","MessageMajContenuPanierSchema","eitherParse","pipe","Either","canalPostMessage","canal","message","emetMessageMajBoutonPanier","args","emetMessageMajContenuPanier","emetUniqueMessageCanal","nomCanal","valideMessageMajBoutonPanier","evenementMessage","erreur","reporteErreur","valideMessageMajContenuPanier","reponseEstCodeErreurWC","reponse","codeErreurWC","v"],"mappings":"AAkBa,OAAA,KAAAA,MAAA,sBAAA,OAAA,KAAAC,EAAA,KAAAC,EAAA,KAAAC,MAAA,iBAAA,OAAA,MAAA,gBAAA,OAAA,KAAAC,MAAA,gBAAA,OAAA,KAAAC,EAAA,KAAAC,MAAA,iBAAA,OAAA,KAAAC,MAAA,kBAAA,OAAA,KAAAC,MAAA,qBAAA,OAAA,KAAAC,MAAA,uBAAA,MAAA,wBAAA,MAAA,YAAA,MAAA,aAAA,MAAA,iBAAA,MAAA,oBAAA,MAAA,uBAAA,MAAAC,EAAmB,CAACC,EAAyBC,KACxDD,EAAM,YAAYC,CAAO,EAClBD,GAIIE,EAA8BC,GAA8C,CACjF,MAAAH,EAAQ,IAAI,iBAAiBV,CAAuB,EAC1DU,EAAM,YAAY,CAChB,QAAS,CACP,iBAAkBG,EAAK,gBACzB,EACA,KAAMZ,EAAe,eAAA,CACI,EAC3BS,EAAM,MAAM,CACd,EAEaI,EAA+BD,GAA+C,CACnF,MAAAH,EAAQ,IAAI,iBAAiBR,CAAwB,EAC3DQ,EAAM,YAAY,CAChB,QAAS,CACP,SAAUG,EAAK,SACf,kBAAmBA,EAAK,kBACxB,mBAAoBA,EAAK,mBACzB,YAAaA,EAAK,WACpB,EACA,KAAMZ,EAAe,gBAAA,CACK,EAC5BS,EAAM,MAAM,CACd,EASaK,EAAyB,CAAIC,EAAkBL,IAC1DJ,EAAK,IAAI,iBAAiBS,CAAQ,EAAGN,GAASD,EAAiBC,EAAOC,CAAO,EAAYD,GAAAA,EAAM,MAAO,CAAA,EAG3FO,EACXC,GAEAV,EACG,GACCT,EAAMK,EAA8Bc,EAAiB,IAAI,CAC3D,EACC,OAAOC,GAAUC,EAAcD,CAAM,CAAC,EAE9BE,EACXH,GAEAV,EACG,GACCT,EAAMM,EAA+Ba,EAAiB,IAAI,CAC5D,EACC,OAAOC,GAAUC,EAAcD,CAAM,CAAC,EAG9BG,EAAyB,CAACC,EAA4BC,IACjElB,EAAYiB,EAASpB,CAAa,EAC/B,IAAIsB,GAAKA,EAAE,KAAK,OAASD,CAAY,EACrC,UAAU,EAAK"}
|
||||
{"version":3,"file":"messages.js","sources":["../../src/scripts/lib/messages.ts"],"sourcesContent":["import { pipe } from \"@mobily/ts-belt\";\nimport { Either } from \"purify-ts\";\nimport { parse, type ValiError } from \"valibot\";\n\nimport type {\n MessageMajBoutonPanier,\n MessageMajBoutonPanierDonnees,\n MessageMajContenuPanier,\n MessageMajContenuPanierDonnees,\n} from \"./types/messages\";\nimport type { ReponseSimplifiee } from \"./types/reseau\";\n\nimport { NOM_CANAL_BOUTON_PANIER, NOM_CANAL_CONTENU_PANIER, TYPES_MESSAGES } from \"../constantes/messages.ts\";\nimport { reporteErreur } from \"./erreurs.ts\";\nimport { WCErrorSchema } from \"./schemas/api/erreurs.ts\";\nimport { MessageMajBoutonPanierSchema, MessageMajContenuPanierSchema } from \"./schemas/messages.ts\";\nimport { eitherParse } from \"./validation.ts\";\n\nexport const canalPostMessage = (canal: BroadcastChannel, message: any): BroadcastChannel => {\n canal.postMessage(message);\n return canal;\n};\n\n// Émissions\nexport const emetMessageMajBoutonPanier = (args: MessageMajBoutonPanierDonnees): void => {\n const canal = new BroadcastChannel(NOM_CANAL_BOUTON_PANIER);\n canal.postMessage({\n donnees: {\n quantiteProduits: args.quantiteProduits,\n },\n type: TYPES_MESSAGES.MajBoutonPanier,\n } as MessageMajBoutonPanier);\n canal.close();\n};\n\nexport const emetMessageMajContenuPanier = (args: MessageMajContenuPanierDonnees): void => {\n const canal = new BroadcastChannel(NOM_CANAL_CONTENU_PANIER);\n canal.postMessage({\n donnees: {\n produits: args.produits,\n sousTotalProduits: args.sousTotalProduits,\n sousTotalReduction: args.sousTotalReduction,\n totalPanier: args.totalPanier,\n },\n type: TYPES_MESSAGES.MajContenuPanier,\n } as MessageMajContenuPanier);\n canal.close();\n};\n\n/**\n * Émet un unique message vers un BroadcastChannel (canal) généré sur le moment puis le ferme.\n *\n * @param nomCanal Le nom du BroadcastChannel pour lequel le message est émis.\n * @param message Le message émis.\n * @return void\n */\nexport const emetUniqueMessageCanal = <M>(nomCanal: string, message: M): void =>\n pipe(new BroadcastChannel(nomCanal), canal => canalPostMessage(canal, message), canal => canal.close());\n\n// Validations\nexport const valideMessageMajBoutonPanier = (\n evenementMessage: MessageEvent<unknown>,\n): Either<ValiError<typeof MessageMajBoutonPanierSchema>, MessageMajBoutonPanier> =>\n Either\n .of<ValiError<typeof MessageMajBoutonPanierSchema>, MessageMajBoutonPanier>(\n parse(MessageMajBoutonPanierSchema, evenementMessage.data),\n )\n .ifLeft(erreur => reporteErreur(erreur));\n\nexport const valideMessageMajContenuPanier = (\n evenementMessage: MessageEvent<unknown>,\n): Either<ValiError<typeof MessageMajContenuPanierSchema>, MessageMajContenuPanier> =>\n Either\n .of<ValiError<typeof MessageMajContenuPanierSchema>, MessageMajContenuPanier>(\n parse(MessageMajContenuPanierSchema, evenementMessage.data),\n )\n .ifLeft(erreur => reporteErreur(erreur));\n\n// Correspondances\nexport const reponseEstCodeErreurWC = (reponse: ReponseSimplifiee, codeErreurWC: string): boolean =>\n eitherParse(reponse, WCErrorSchema)\n .map(v => v.body.code === codeErreurWC)\n .orDefault(false);\n"],"names":["parse","NOM_CANAL_BOUTON_PANIER","TYPES_MESSAGES","NOM_CANAL_CONTENU_PANIER","WCErrorSchema","MessageMajBoutonPanierSchema","MessageMajContenuPanierSchema","eitherParse","pipe","Either","canalPostMessage","canal","message","emetMessageMajBoutonPanier","args","emetMessageMajContenuPanier","emetUniqueMessageCanal","nomCanal","valideMessageMajBoutonPanier","evenementMessage","erreur","reporteErreur","valideMessageMajContenuPanier","reponseEstCodeErreurWC","reponse","codeErreurWC","v"],"mappings":"AAkBa,OAAA,KAAAA,MAAA,sBAAA,OAAA,KAAAC,EAAA,KAAAC,EAAA,KAAAC,MAAA,iBAAA,OAAA,MAAA,eAAA,OAAA,KAAAC,MAAA,gBAAA,OAAA,KAAAC,EAAA,KAAAC,MAAA,iBAAA,OAAA,KAAAC,MAAA,kBAAA,OAAA,KAAAC,MAAA,qBAAA,OAAA,KAAAC,MAAA,uBAAA,MAAA,wBAAA,MAAA,YAAA,MAAA,aAAA,MAAA,iBAAA,MAAA,oBAAA,MAAA,uBAAA,MAAAC,EAAmB,CAACC,EAAyBC,KACxDD,EAAM,YAAYC,CAAO,EAClBD,GAIIE,EAA8BC,GAA8C,CACjF,MAAAH,EAAQ,IAAI,iBAAiBV,CAAuB,EAC1DU,EAAM,YAAY,CAChB,QAAS,CACP,iBAAkBG,EAAK,gBACzB,EACA,KAAMZ,EAAe,eAAA,CACI,EAC3BS,EAAM,MAAM,CACd,EAEaI,EAA+BD,GAA+C,CACnF,MAAAH,EAAQ,IAAI,iBAAiBR,CAAwB,EAC3DQ,EAAM,YAAY,CAChB,QAAS,CACP,SAAUG,EAAK,SACf,kBAAmBA,EAAK,kBACxB,mBAAoBA,EAAK,mBACzB,YAAaA,EAAK,WACpB,EACA,KAAMZ,EAAe,gBAAA,CACK,EAC5BS,EAAM,MAAM,CACd,EASaK,EAAyB,CAAIC,EAAkBL,IAC1DJ,EAAK,IAAI,iBAAiBS,CAAQ,EAAGN,GAASD,EAAiBC,EAAOC,CAAO,EAAYD,GAAAA,EAAM,MAAO,CAAA,EAG3FO,EACXC,GAEAV,EACG,GACCT,EAAMK,EAA8Bc,EAAiB,IAAI,CAC3D,EACC,OAAOC,GAAUC,EAAcD,CAAM,CAAC,EAE9BE,EACXH,GAEAV,EACG,GACCT,EAAMM,EAA+Ba,EAAiB,IAAI,CAC5D,EACC,OAAOC,GAAUC,EAAcD,CAAM,CAAC,EAG9BG,EAAyB,CAACC,EAA4BC,IACjElB,EAAYiB,EAASpB,CAAa,EAC/B,IAAIsB,GAAKA,EAAE,KAAK,OAASD,CAAY,EACrC,UAAU,EAAK"}
|
||||
|
|
@ -1 +1 @@
|
|||
{"version":3,"file":"messages2.js","sources":["../../src/scripts/lib/schemas/messages.ts"],"sourcesContent":["/**\n * Schémas des Messages passés avec BroadcastChannel.\n */\n\nimport * as v from \"valibot\";\n\nimport { TYPES_MESSAGES } from \"../../constantes/messages.ts\";\nimport { WCStoreCartItemSchema } from \"./api/cart.ts\";\n\nexport const TypesMessagesSchema = v.enum(TYPES_MESSAGES);\n\nexport const MessageMajBoutonPanierDonneesSchema = v.object({\n quantiteProduits: v.number(),\n});\n\nexport const MessageMajBoutonPanierSchema = v.object({\n donnees: MessageMajBoutonPanierDonneesSchema,\n type: v.pipe(v.string(), v.value(TYPES_MESSAGES.MajBoutonPanier)),\n});\n\nexport const MessageMajContenuPanierDonneesSchema = v.object({\n produits: v.array(WCStoreCartItemSchema),\n sousTotalProduits: v.number(),\n sousTotalReduction: v.number(),\n totalPanier: v.number(),\n});\n\nexport const MessageMajContenuPanierSchema = v.object({\n donnees: MessageMajContenuPanierDonneesSchema,\n type: v.pipe(v.string(), v.value(TYPES_MESSAGES.MajContenuPanier)),\n});\n"],"names":["v.enum","TYPES_MESSAGES","MessageMajBoutonPanierDonneesSchema","v.object","v.number","MessageMajBoutonPanierSchema","v.pipe","v.string","v.value","MessageMajContenuPanierDonneesSchema","v.array","WCStoreCartItemSchema","MessageMajContenuPanierSchema"],"mappings":"AASmCA,OAAAA,KAAAA,EAAAA,KAAAA,EAAAA,KAAAA,EAAAA,KAAAA,EAAAA,KAAAA,EAAAA,KAAAA,EAAAA,KAAAA,MAAAA,sBAAAA,OAAAA,KAAAA,MAAAA,iBAAAA,OAAAA,KAAAA,MAAAA,YAAAA,MAAAA,aAAAA,MAAAA,iBAAAA,MAAAA,oBAAAA,MAAAA,uBAAAA,EAAOC,CAAc,EAE3C,MAAAC,EAAsCC,EAAS,CAC1D,iBAAkBC,EAAS,CAC7B,CAAC,EAEYC,EAA+BF,EAAS,CACnD,QAASD,EACT,KAAMI,EAAOC,EAAE,EAAUC,EAAQP,EAAe,eAAe,CAAC,CAClE,CAAC,EAEYQ,EAAuCN,EAAS,CAC3D,SAAUO,EAAQC,CAAqB,EACvC,kBAAmBP,EAAS,EAC5B,mBAAoBA,EAAS,EAC7B,YAAaA,EAAS,CACxB,CAAC,EAEYQ,EAAgCT,EAAS,CACpD,QAASM,EACT,KAAMH,EAAOC,EAAE,EAAUC,EAAQP,EAAe,gBAAgB,CAAC,CACnE,CAAC"}
|
||||
{"version":3,"file":"messages2.js","sources":["../../src/scripts/lib/schemas/messages.ts"],"sourcesContent":["/** Schémas des Messages passés avec BroadcastChannel. */\n\nimport * as v from \"valibot\";\n\nimport { TYPES_MESSAGES } from \"../../constantes/messages.ts\";\nimport { WCStoreCartItemSchema } from \"./api/cart.ts\";\n\nexport const TypesMessagesSchema = v.enum(TYPES_MESSAGES);\n\nexport const MessageMajBoutonPanierDonneesSchema = v.object({\n quantiteProduits: v.number(),\n});\n\nexport const MessageMajBoutonPanierSchema = v.object({\n donnees: MessageMajBoutonPanierDonneesSchema,\n type: v.pipe(v.string(), v.value(TYPES_MESSAGES.MajBoutonPanier)),\n});\n\nexport const MessageMajContenuPanierDonneesSchema = v.object({\n produits: v.array(WCStoreCartItemSchema),\n sousTotalProduits: v.number(),\n sousTotalReduction: v.number(),\n totalPanier: v.number(),\n});\n\nexport const MessageMajContenuPanierSchema = v.object({\n donnees: MessageMajContenuPanierDonneesSchema,\n type: v.pipe(v.string(), v.value(TYPES_MESSAGES.MajContenuPanier)),\n});\n"],"names":["v.enum","TYPES_MESSAGES","MessageMajBoutonPanierDonneesSchema","v.object","v.number","MessageMajBoutonPanierSchema","v.pipe","v.string","v.value","MessageMajContenuPanierDonneesSchema","v.array","WCStoreCartItemSchema","MessageMajContenuPanierSchema"],"mappings":"AAOmCA,OAAAA,KAAAA,EAAAA,KAAAA,EAAAA,KAAAA,EAAAA,KAAAA,EAAAA,KAAAA,EAAAA,KAAAA,EAAAA,KAAAA,MAAAA,sBAAAA,OAAAA,KAAAA,MAAAA,iBAAAA,OAAAA,KAAAA,MAAAA,YAAAA,MAAAA,aAAAA,MAAAA,iBAAAA,MAAAA,oBAAAA,MAAAA,uBAAAA,EAAOC,CAAc,EAE3C,MAAAC,EAAsCC,EAAS,CAC1D,iBAAkBC,EAAS,CAC7B,CAAC,EAEYC,EAA+BF,EAAS,CACnD,QAASD,EACT,KAAMI,EAAOC,EAAE,EAAUC,EAAQP,EAAe,eAAe,CAAC,CAClE,CAAC,EAEYQ,EAAuCN,EAAS,CAC3D,SAAUO,EAAQC,CAAqB,EACvC,kBAAmBP,EAAS,EAC5B,mBAAoBA,EAAS,EAC7B,YAAaA,EAAS,CACxB,CAAC,EAEYQ,EAAgCT,EAAS,CACpD,QAASM,EACT,KAAMH,EAAOC,EAAE,EAAUC,EAAQP,EAAe,gBAAgB,CAAC,CACnE,CAAC"}
|
||||
|
|
@ -1 +1 @@
|
|||
{"version":3,"file":"messages3.js","sources":["../../src/scripts/constantes/messages.ts"],"sourcesContent":["/**\n * Constantes liées aux Messages passés par BroadcastChannel.\n */\n\nexport const NOM_CANAL_BOUTON_PANIER = \"bouton_panier\";\nexport const NOM_CANAL_CONTENU_PANIER = \"contenu_panier\";\nexport const NOM_CANAL_REVALIDATION_LIVRAISON = \"revalidation_livraison\";\n\nexport const TYPES_MESSAGES = {\n MajBoutonPanier: \"maj_bouton_panier\",\n MajContenuPanier: \"maj_contenu_panier\",\n RevalidationLivraison: \"revalidation_livraison\",\n} as const;\n"],"names":["NOM_CANAL_BOUTON_PANIER","NOM_CANAL_CONTENU_PANIER","NOM_CANAL_REVALIDATION_LIVRAISON","TYPES_MESSAGES"],"mappings":"AAIO,MAAMA,EAA0B,gBAC1BC,EAA2B,iBAC3BC,EAAmC,yBAEnCC,EAAiB,CAC5B,gBAAiB,oBACjB,iBAAkB,qBAClB,sBAAuB,wBACzB"}
|
||||
{"version":3,"file":"messages3.js","sources":["../../src/scripts/constantes/messages.ts"],"sourcesContent":["/** Constantes liées aux Messages passés par BroadcastChannel. */\n\nexport const NOM_CANAL_BOUTON_PANIER = \"bouton_panier\";\nexport const NOM_CANAL_CONTENU_PANIER = \"contenu_panier\";\nexport const NOM_CANAL_REVALIDATION_LIVRAISON = \"revalidation_livraison\";\n\nexport const TYPES_MESSAGES = {\n MajBoutonPanier: \"maj_bouton_panier\",\n MajContenuPanier: \"maj_contenu_panier\",\n RevalidationLivraison: \"revalidation_livraison\",\n} as const;\n"],"names":["NOM_CANAL_BOUTON_PANIER","NOM_CANAL_CONTENU_PANIER","NOM_CANAL_REVALIDATION_LIVRAISON","TYPES_MESSAGES"],"mappings":"AAEO,MAAMA,EAA0B,gBAC1BC,EAA2B,iBAC3BC,EAAmC,yBAEnCC,EAAiB,CAC5B,gBAAiB,oBACjB,iBAAkB,qBAClB,sBAAuB,wBACzB"}
|
||||
File diff suppressed because one or more lines are too long
|
|
@ -1 +1 @@
|
|||
{"version":3,"file":"orders3.js","sources":["../../src/scripts/constantes/orders.ts"],"sourcesContent":["export const ORDER_STATUSES = {\n AUTO_DRAFT: \"auto-draft\",\n CANCELLED: \"cancelled\",\n CHECKOUT_DRAFT: \"checkout-draft\",\n COMPLETED: \"completed\",\n FAILED: \"failed\",\n ON_HOLD: \"on-hold\",\n PENDING: \"pending\",\n PROCESSING: \"processing\",\n REFUNDED: \"refuneded\",\n} as const;\n\nexport const TAX_STATUSES = {\n NONE: \"none\",\n TAXABLE: \"taxable\",\n};\n"],"names":["ORDER_STATUSES","TAX_STATUSES"],"mappings":"AAAO,MAAMA,EAAiB,CAC5B,WAAY,aACZ,UAAW,YACX,eAAgB,iBAChB,UAAW,YACX,OAAQ,SACR,QAAS,UACT,QAAS,UACT,WAAY,aACZ,SAAU,WACZ,EAEaC,EAAe,CAC1B,KAAM,OACN,QAAS,SACX"}
|
||||
{"version":3,"file":"orders3.js","sources":["../../src/scripts/constantes/api/orders.ts"],"sourcesContent":["/** Constantes liées aux Commandes WooCommerce. */\n\nexport const ORDER_STATUSES = {\n AUTO_DRAFT: \"auto-draft\",\n CANCELLED: \"cancelled\",\n CHECKOUT_DRAFT: \"checkout-draft\",\n COMPLETED: \"completed\",\n FAILED: \"failed\",\n ON_HOLD: \"on-hold\",\n PENDING: \"pending\",\n PROCESSING: \"processing\",\n REFUNDED: \"refuneded\",\n} as const;\n\nexport const TAX_STATUSES = {\n NONE: \"none\",\n TAXABLE: \"taxable\",\n};\n"],"names":["ORDER_STATUSES","TAX_STATUSES"],"mappings":"AAEO,MAAMA,EAAiB,CAC5B,WAAY,aACZ,UAAW,YACX,eAAgB,iBAChB,UAAW,YACX,OAAQ,SACR,QAAS,UACT,QAAS,UACT,WAAY,aACZ,SAAU,WACZ,EAEaC,EAAe,CAC1B,KAAM,OACN,QAAS,SACX"}
|
||||
File diff suppressed because one or more lines are too long
|
|
@ -1 +1 @@
|
|||
{"version":3,"file":"products2.js","sources":["../../src/scripts/constantes/products.ts"],"sourcesContent":["export const PRODUCTS_CONTEXTES = {\n EDIT: \"edit\",\n VIEW: \"view\",\n} as const;\n\nexport const DATE_COLUMN_VALUES = {\n DATE: \"date\",\n DATE_GMT: \"date_gmt\",\n MODIFIED: \"modified\",\n MODIFIED_GMT: \"modified_gmt\",\n} as const;\n\nexport const ORDER_VALUES = {\n ASC: \"asc\",\n DESC: \"desc\",\n} as const;\n\nexport const ORDERBY_VALUES = {\n COMMENT_COUNT: \"comment_count\",\n DATE: \"date\",\n ID: \"id\",\n INCLUDE: \"include\",\n MENU_ORDER: \"menu_order\",\n MODIFIED: \"modified\",\n POPULARITY: \"popularity\",\n PRICE: \"price\",\n RATING: \"rating\",\n SLUG: \"slug\",\n TITLE: \"title\",\n} as const;\n\nexport const PRODUCT_TYPES = {\n EXTERNAL: \"external\",\n GROUPED: \"grouped\",\n SIMPLE: \"simple\",\n VARIABLE: \"variable\",\n} as const;\n\nexport const CATEGORY_OPERATORS = {\n AND: \"and\",\n IN: \"in\",\n NOT_IN: \"not_in\",\n} as const;\n\nexport const TAG_OPERATORS = {\n AND: \"and\",\n IN: \"in\",\n NOT_IN: \"not_in\",\n} as const;\n\nexport const STOCK_STATUSES = {\n IN_STOCK: \"instock\",\n ON_BACK_ORDER: \"onbackorder\",\n OUT_OF_STOCK: \"outofstock\",\n} as const;\n\nexport const ATTRIBUTES_RELATIONS = {\n AND: \"and\",\n IN: \"in\",\n} as const;\n\nexport const CATALOG_VISIBILITIES = {\n ANY: \"any\",\n CATALOG: \"catalog\",\n HIDDEN: \"hidden\",\n SEARCH: \"search\",\n VISIBLE: \"visible\",\n} as const;\n\nexport const RATINGS = {\n 1: 1,\n 2: 2,\n 3: 3,\n 4: 4,\n 5: 5,\n} as const;\n\nexport const PRODUCT_STATUTES = {\n ANY: \"any\",\n DRAFT: \"draft\",\n FUTURE: \"future\",\n PENDING: \"pending\",\n PRIVATE: \"private\",\n PUBLISH: \"publish\",\n TRASH: \"trash\",\n} as const;\n\nexport const TAX_STATUTES = {\n NONE: \"none\",\n SHIPPING: \"shipping\",\n TAXABLE: \"taxable\",\n} as const;\n\nexport const BACKORDERS_SETTINGS = {\n NO: \"no\",\n NOTIFY: \"notify\",\n YES: \"yes\",\n} as const;\n"],"names":["PRODUCTS_CONTEXTES","DATE_COLUMN_VALUES","ORDER_VALUES","ORDERBY_VALUES","PRODUCT_TYPES","CATEGORY_OPERATORS","TAG_OPERATORS","STOCK_STATUSES","ATTRIBUTES_RELATIONS","CATALOG_VISIBILITIES","RATINGS","PRODUCT_STATUTES","TAX_STATUTES","BACKORDERS_SETTINGS"],"mappings":"AAAO,MAAMA,EAAqB,CAChC,KAAM,OACN,KAAM,MACR,EAEaC,EAAqB,CAChC,KAAM,OACN,SAAU,WACV,SAAU,WACV,aAAc,cAChB,EAEaC,EAAe,CAC1B,IAAK,MACL,KAAM,MACR,EAEaC,EAAiB,CAC5B,cAAe,gBACf,KAAM,OACN,GAAI,KACJ,QAAS,UACT,WAAY,aACZ,SAAU,WACV,WAAY,aACZ,MAAO,QACP,OAAQ,SACR,KAAM,OACN,MAAO,OACT,EAEaC,EAAgB,CAC3B,SAAU,WACV,QAAS,UACT,OAAQ,SACR,SAAU,UACZ,EAEaC,EAAqB,CAChC,IAAK,MACL,GAAI,KACJ,OAAQ,QACV,EAEaC,EAAgB,CAC3B,IAAK,MACL,GAAI,KACJ,OAAQ,QACV,EAEaC,EAAiB,CAC5B,SAAU,UACV,cAAe,cACf,aAAc,YAChB,EAEaC,EAAuB,CAClC,IAAK,MACL,GAAI,IACN,EAEaC,EAAuB,CAClC,IAAK,MACL,QAAS,UACT,OAAQ,SACR,OAAQ,SACR,QAAS,SACX,EAEaC,EAAU,CACrB,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,CACL,EAEaC,EAAmB,CAC9B,IAAK,MACL,MAAO,QACP,OAAQ,SACR,QAAS,UACT,QAAS,UACT,QAAS,UACT,MAAO,OACT,EAEaC,EAAe,CAC1B,KAAM,OACN,SAAU,WACV,QAAS,SACX,EAEaC,EAAsB,CACjC,GAAI,KACJ,OAAQ,SACR,IAAK,KACP"}
|
||||
{"version":3,"file":"products2.js","sources":["../../src/scripts/constantes/api/products.ts"],"sourcesContent":["/** Constantes liées aux Produits WooCommerce. */\n\nexport const PRODUCTS_CONTEXTES = {\n EDIT: \"edit\",\n VIEW: \"view\",\n} as const;\n\nexport const DATE_COLUMN_VALUES = {\n DATE: \"date\",\n DATE_GMT: \"date_gmt\",\n MODIFIED: \"modified\",\n MODIFIED_GMT: \"modified_gmt\",\n} as const;\n\nexport const ORDER_VALUES = {\n ASC: \"asc\",\n DESC: \"desc\",\n} as const;\n\nexport const ORDERBY_VALUES = {\n COMMENT_COUNT: \"comment_count\",\n DATE: \"date\",\n ID: \"id\",\n INCLUDE: \"include\",\n MENU_ORDER: \"menu_order\",\n MODIFIED: \"modified\",\n POPULARITY: \"popularity\",\n PRICE: \"price\",\n RATING: \"rating\",\n SLUG: \"slug\",\n TITLE: \"title\",\n} as const;\n\nexport const PRODUCT_TYPES = {\n EXTERNAL: \"external\",\n GROUPED: \"grouped\",\n SIMPLE: \"simple\",\n VARIABLE: \"variable\",\n} as const;\n\nexport const CATEGORY_OPERATORS = {\n AND: \"and\",\n IN: \"in\",\n NOT_IN: \"not_in\",\n} as const;\n\nexport const TAG_OPERATORS = {\n AND: \"and\",\n IN: \"in\",\n NOT_IN: \"not_in\",\n} as const;\n\nexport const STOCK_STATUSES = {\n IN_STOCK: \"instock\",\n ON_BACK_ORDER: \"onbackorder\",\n OUT_OF_STOCK: \"outofstock\",\n} as const;\n\nexport const ATTRIBUTES_RELATIONS = {\n AND: \"and\",\n IN: \"in\",\n} as const;\n\nexport const CATALOG_VISIBILITIES = {\n ANY: \"any\",\n CATALOG: \"catalog\",\n HIDDEN: \"hidden\",\n SEARCH: \"search\",\n VISIBLE: \"visible\",\n} as const;\n\nexport const RATINGS = {\n 1: 1,\n 2: 2,\n 3: 3,\n 4: 4,\n 5: 5,\n} as const;\n\nexport const PRODUCT_STATUTES = {\n ANY: \"any\",\n DRAFT: \"draft\",\n FUTURE: \"future\",\n PENDING: \"pending\",\n PRIVATE: \"private\",\n PUBLISH: \"publish\",\n TRASH: \"trash\",\n} as const;\n\nexport const TAX_STATUTES = {\n NONE: \"none\",\n SHIPPING: \"shipping\",\n TAXABLE: \"taxable\",\n} as const;\n\nexport const BACKORDERS_SETTINGS = {\n NO: \"no\",\n NOTIFY: \"notify\",\n YES: \"yes\",\n} as const;\n"],"names":["PRODUCTS_CONTEXTES","DATE_COLUMN_VALUES","ORDER_VALUES","ORDERBY_VALUES","PRODUCT_TYPES","CATEGORY_OPERATORS","TAG_OPERATORS","STOCK_STATUSES","ATTRIBUTES_RELATIONS","CATALOG_VISIBILITIES","RATINGS","PRODUCT_STATUTES","TAX_STATUTES","BACKORDERS_SETTINGS"],"mappings":"AAEO,MAAMA,EAAqB,CAChC,KAAM,OACN,KAAM,MACR,EAEaC,EAAqB,CAChC,KAAM,OACN,SAAU,WACV,SAAU,WACV,aAAc,cAChB,EAEaC,EAAe,CAC1B,IAAK,MACL,KAAM,MACR,EAEaC,EAAiB,CAC5B,cAAe,gBACf,KAAM,OACN,GAAI,KACJ,QAAS,UACT,WAAY,aACZ,SAAU,WACV,WAAY,aACZ,MAAO,QACP,OAAQ,SACR,KAAM,OACN,MAAO,OACT,EAEaC,EAAgB,CAC3B,SAAU,WACV,QAAS,UACT,OAAQ,SACR,SAAU,UACZ,EAEaC,EAAqB,CAChC,IAAK,MACL,GAAI,KACJ,OAAQ,QACV,EAEaC,EAAgB,CAC3B,IAAK,MACL,GAAI,KACJ,OAAQ,QACV,EAEaC,EAAiB,CAC5B,SAAU,UACV,cAAe,cACf,aAAc,YAChB,EAEaC,EAAuB,CAClC,IAAK,MACL,GAAI,IACN,EAEaC,EAAuB,CAClC,IAAK,MACL,QAAS,UACT,OAAQ,SACR,OAAQ,SACR,QAAS,SACX,EAEaC,EAAU,CACrB,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,CACL,EAEaC,EAAmB,CAC9B,IAAK,MACL,MAAO,QACP,OAAQ,SACR,QAAS,UACT,QAAS,UACT,QAAS,UACT,MAAO,OACT,EAEaC,EAAe,CAC1B,KAAM,OACN,SAAU,WACV,QAAS,SACX,EAEaC,EAAsB,CACjC,GAAI,KACJ,OAAQ,SACR,IAAK,KACP"}
|
||||
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{S as r,A as n}from"./dom.js";import{N as m}from"./messages3.js";import{r as a}from"./dom2.js";import{v as p}from"./messages.js";import{r as s}from"./utils.js";import{p as d}from"./pipe.CtTFdEz3.js";import"./erreurs2.js";import"./exports.BFQs_g59.js";import"./Either.DDEPhGsy.js";import"./index.BykRh4R4.js";import"./erreurs3.js";import"./messages2.js";import"./cart.js";import"./cart2.js";import"./adresses2.js";import"./cart-coupons.js";import"./couts-livraison.js";import"./validation.js";const E=()=>{const t=d(s(r),a),e=new BroadcastChannel(m);e.onmessage=i=>{p(i).ifRight(o=>{t.textContent=`cart (${String(o.donnees.quantiteProduits)})`,t.setAttribute(n,String(o.donnees.quantiteProduits>0))})},document.addEventListener("visibilitychange",()=>{e.close()})};document.addEventListener("DOMContentLoaded",()=>{E()});
|
||||
import{S as r,A as n}from"./dom.js";import{N as m}from"./messages3.js";import{r as a}from"./dom2.js";import{v as p}from"./messages.js";import{r as s}from"./utils.js";import{p as d}from"./pipe.CtTFdEz3.js";import"./erreurs.js";import"./exports.jfK3lrNh.js";import"./Either.DDEPhGsy.js";import"./index.BykRh4R4.js";import"./erreurs3.js";import"./messages2.js";import"./cart.js";import"./cart2.js";import"./adresses2.js";import"./cart-coupons.js";import"./couts-livraison.js";import"./validation.js";const E=()=>{const t=d(s(r),a),e=new BroadcastChannel(m);e.onmessage=i=>{p(i).ifRight(o=>{t.textContent=`cart (${String(o.donnees.quantiteProduits)})`,t.setAttribute(n,String(o.donnees.quantiteProduits>0))})},document.addEventListener("visibilitychange",()=>{e.close()})};document.addEventListener("DOMContentLoaded",()=>{E()});
|
||||
//# sourceMappingURL=scripts-bouton-panier.js.map
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
{"version":3,"file":"scripts-bouton-panier.js","sources":["../../src/scripts/scripts-bouton-panier.ts"],"sourcesContent":["/**\n * Scripts pour la mise à jour trans-fenêtres/trans-onglets du Bouton du Panier.\n */\n\nimport { pipe } from \"@mobily/ts-belt\";\n\nimport type { MessageMajBoutonPanier } from \"./lib/types/messages\";\n\nimport { ATTRIBUT_CONTIENT_ARTICLES, SELECTEUR_BOUTON_PANIER } from \"./constantes/dom.ts\";\nimport { NOM_CANAL_BOUTON_PANIER } from \"./constantes/messages.ts\";\nimport { recupereElementOuLeve } from \"./lib/dom.ts\";\nimport { valideMessageMajBoutonPanier } from \"./lib/messages.ts\";\nimport { recupereElementDocumentEither } from \"./lib/utils.ts\";\n\nconst initialiseBoutonPanier = (): void => {\n /** Le « Bouton » vers le Panier dont le texte est un indicateur du nombre de Produits dedans. */\n const BOUTON_PANIER: HTMLAnchorElement = pipe(\n recupereElementDocumentEither<HTMLAnchorElement>(SELECTEUR_BOUTON_PANIER),\n recupereElementOuLeve,\n );\n const CANAL_BOUTON_PANIER: BroadcastChannel = new BroadcastChannel(NOM_CANAL_BOUTON_PANIER);\n\n CANAL_BOUTON_PANIER.onmessage = (evenementMessage: MessageEvent<unknown>): void => {\n valideMessageMajBoutonPanier(evenementMessage)\n // Met à jour le Bouton du Panier\n .ifRight((message: MessageMajBoutonPanier) => {\n BOUTON_PANIER.textContent = `cart (${String(message.donnees.quantiteProduits)})`;\n BOUTON_PANIER.setAttribute(ATTRIBUT_CONTIENT_ARTICLES, String(message.donnees.quantiteProduits > 0));\n });\n };\n\n // Ferme le BroadcastChannel à la fermeture de la page\n document.addEventListener(\"visibilitychange\", (): void => {\n CANAL_BOUTON_PANIER.close();\n });\n};\n\ndocument.addEventListener(\"DOMContentLoaded\", () => {\n initialiseBoutonPanier();\n});\n"],"names":["initialiseBoutonPanier","BOUTON_PANIER","pipe","recupereElementDocumentEither","SELECTEUR_BOUTON_PANIER","recupereElementOuLeve","CANAL_BOUTON_PANIER","NOM_CANAL_BOUTON_PANIER","evenementMessage","valideMessageMajBoutonPanier","message","ATTRIBUT_CONTIENT_ARTICLES"],"mappings":"kfAcA,MAAMA,EAAyB,IAAY,CAEzC,MAAMC,EAAmCC,EACvCC,EAAiDC,CAAuB,EACxEC,CACF,EACMC,EAAwC,IAAI,iBAAiBC,CAAuB,EAEtED,EAAA,UAAaE,GAAkD,CACjFC,EAA6BD,CAAgB,EAE1C,QAASE,GAAoC,CAC5CT,EAAc,YAAc,SAAS,OAAOS,EAAQ,QAAQ,gBAAgB,CAAC,IAC7ET,EAAc,aAAaU,EAA4B,OAAOD,EAAQ,QAAQ,iBAAmB,CAAC,CAAC,CAAA,CACpG,CACL,EAGS,SAAA,iBAAiB,mBAAoB,IAAY,CACxDJ,EAAoB,MAAM,CAAA,CAC3B,CACH,EAEA,SAAS,iBAAiB,mBAAoB,IAAM,CAC3BN,EAAA,CACzB,CAAC"}
|
||||
{"version":3,"file":"scripts-bouton-panier.js","sources":["../../src/scripts/scripts-bouton-panier.ts"],"sourcesContent":["/**\n * Scripts pour la mise à jour trans-fenêtres/trans-onglets du Bouton du Panier.\n */\n\nimport { pipe } from \"@mobily/ts-belt\";\n\nimport type { MessageMajBoutonPanier } from \"./lib/types/messages\";\n\nimport { ATTRIBUT_CONTIENT_ARTICLES, SELECTEUR_BOUTON_PANIER } from \"./constantes/dom.ts\";\nimport { NOM_CANAL_BOUTON_PANIER } from \"./constantes/messages.ts\";\nimport { recupereElementOuLeve } from \"./lib/dom.ts\";\nimport { valideMessageMajBoutonPanier } from \"./lib/messages.ts\";\nimport { recupereElementDocumentEither } from \"./lib/utils.ts\";\n\nconst initialiseBoutonPanier = (): void => {\n /** Le « Bouton » vers le Panier dont le texte est un indicateur du nombre de Produits dedans. */\n const BOUTON_PANIER: HTMLAnchorElement = pipe(\n recupereElementDocumentEither<HTMLAnchorElement>(SELECTEUR_BOUTON_PANIER),\n recupereElementOuLeve,\n );\n const CANAL_BOUTON_PANIER: BroadcastChannel = new BroadcastChannel(NOM_CANAL_BOUTON_PANIER);\n\n CANAL_BOUTON_PANIER.onmessage = (evenementMessage: MessageEvent<unknown>): void => {\n valideMessageMajBoutonPanier(evenementMessage)\n // Met à jour le Bouton du Panier\n .ifRight((message: MessageMajBoutonPanier) => {\n BOUTON_PANIER.textContent = `cart (${String(message.donnees.quantiteProduits)})`;\n BOUTON_PANIER.setAttribute(ATTRIBUT_CONTIENT_ARTICLES, String(message.donnees.quantiteProduits > 0));\n });\n };\n\n // Ferme le BroadcastChannel à la fermeture de la page\n document.addEventListener(\"visibilitychange\", (): void => {\n CANAL_BOUTON_PANIER.close();\n });\n};\n\ndocument.addEventListener(\"DOMContentLoaded\", () => {\n initialiseBoutonPanier();\n});\n"],"names":["initialiseBoutonPanier","BOUTON_PANIER","pipe","recupereElementDocumentEither","SELECTEUR_BOUTON_PANIER","recupereElementOuLeve","CANAL_BOUTON_PANIER","NOM_CANAL_BOUTON_PANIER","evenementMessage","valideMessageMajBoutonPanier","message","ATTRIBUT_CONTIENT_ARTICLES"],"mappings":"ifAcA,MAAMA,EAAyB,IAAY,CAEzC,MAAMC,EAAmCC,EACvCC,EAAiDC,CAAuB,EACxEC,CACF,EACMC,EAAwC,IAAI,iBAAiBC,CAAuB,EAEtED,EAAA,UAAaE,GAAkD,CACjFC,EAA6BD,CAAgB,EAE1C,QAASE,GAAoC,CAC5CT,EAAc,YAAc,SAAS,OAAOS,EAAQ,QAAQ,gBAAgB,CAAC,IAC7ET,EAAc,aAAaU,EAA4B,OAAOD,EAAQ,QAAQ,iBAAmB,CAAC,CAAC,CAAA,CACpG,CACL,EAGS,SAAA,iBAAiB,mBAAoB,IAAY,CACxDJ,EAAoB,MAAM,CAAA,CAC3B,CACH,EAEA,SAAS,iBAAiB,mBAAoB,IAAM,CAC3BN,EAAA,CACzB,CAAC"}
|
||||
|
|
@ -1,2 +1,2 @@
|
|||
import{z as i}from"./index.CuMLbxmh.js";import{a as n,b as a}from"./dom.js";import{a as u,b as m}from"./utils.js";import{R as E}from"./dom2.js";import"./erreurs2.js";import"./exports.BFQs_g59.js";import"./pipe.CtTFdEz3.js";import"./Either.DDEPhGsy.js";document.addEventListener("DOMContentLoaded",()=>{const e=u(n),t=m(a);E.forEachWithIndex([t.at(0),t.at(-1)],(o,r)=>{r&&new IntersectionObserver(E.forEach(s=>{s.boundingClientRect.top<=0||i([s.isIntersecting,o]).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{a as n,b as a}from"./dom.js";import{a as u,b as m}from"./utils.js";import{R as E}from"./dom2.js";import"./erreurs.js";import"./exports.jfK3lrNh.js";import"./pipe.CtTFdEz3.js";import"./Either.DDEPhGsy.js";document.addEventListener("DOMContentLoaded",()=>{const e=u(n),t=m(a);E.forEachWithIndex([t.at(0),t.at(-1)],(o,r)=>{r&&new IntersectionObserver(E.forEach(s=>{s.boundingClientRect.top<=0||i([s.isIntersecting,o]).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
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
{"version":3,"file":"scripts-menu-categories.js","sources":["../../src/scripts/scripts-menu-categories.ts"],"sourcesContent":["/** Scripts pour le Menu des Catégories de Produits */\n\nimport { A } from \"@mobily/ts-belt\";\nimport { match } from \"ts-pattern\";\n\nimport { SELECTEUR_ENTREE_MENU_CATEGORIES_PRODUITS, SELECTEUR_MENU_CATEGORIES_PRODUITS } from \"./constantes/dom.ts\";\nimport { recupereEleOuLeve, recupereElesOuLeve } from \"./lib/utils.ts\";\n\ndocument.addEventListener(\"DOMContentLoaded\", (): void => {\n const MENU_CATEGORIES_PRODUITS: HTMLElement = recupereEleOuLeve(SELECTEUR_MENU_CATEGORIES_PRODUITS);\n const ENTREES_MENU_CATEGORIES_PRODUITS: Array<HTMLAnchorElement> = recupereElesOuLeve(\n SELECTEUR_ENTREE_MENU_CATEGORIES_PRODUITS,\n );\n\n A.forEachWithIndex(\n [ENTREES_MENU_CATEGORIES_PRODUITS.at(0), ENTREES_MENU_CATEGORIES_PRODUITS.at(-1)],\n (index, entreeMenu) => {\n if (!entreeMenu) return;\n\n new IntersectionObserver(\n A.forEach(entree => {\n // Ne déclenche rien si le scroll n'est pas horizontal\n if (entree.boundingClientRect.top <= 0) return;\n match([entree.isIntersecting, index])\n .with([true, 0], () => MENU_CATEGORIES_PRODUITS.removeAttribute(\"data-entrees-presentes-debut\"))\n .with([true, 1], () => MENU_CATEGORIES_PRODUITS.removeAttribute(\"data-entrees-presentes-fin\"))\n .with([false, 0], () => MENU_CATEGORIES_PRODUITS.setAttribute(\"data-entrees-presentes-debut\", \"\"))\n .with([false, 1], () => MENU_CATEGORIES_PRODUITS.setAttribute(\"data-entrees-presentes-fin\", \"\"))\n .run();\n }),\n { root: null, threshold: 0.9 },\n ).observe(entreeMenu);\n },\n );\n});\n"],"names":["z","SELECTEUR_MENU_CATEGORIES_PRODUITS","SELECTEUR_ENTREE_MENU_CATEGORIES_PRODUITS","recupereEleOuLeve","recupereElesOuLeve","Ra","MENU_CATEGORIES_PRODUITS","ENTREES_MENU_CATEGORIES_PRODUITS","A","index","entreeMenu","entree","match"],"mappings":"AAQA,OAAA,KAAAA,MAAA,sBAAA,OAAA,KAAAC,EAAA,KAAAC,MAAA,WAAA,OAAA,KAAAC,EAAA,KAAAC,MAAA,aAAA,OAAA,KAAAC,MAAA,YAAA,MAAA,gBAAA,MAAA,wBAAA,MAAA,qBAAA,MAAA,uBAAA,SAAS,iBAAiB,mBAAoB,IAAY,CAClD,MAAAC,EAAwCH,EAAkBF,CAAkC,EAC5FM,EAA6DH,EACjEF,CACF,EAEEM,EAAA,iBACA,CAACD,EAAiC,GAAG,CAAC,EAAGA,EAAiC,GAAG,EAAE,CAAC,EAChF,CAACE,EAAOC,IAAe,CAChBA,GAED,IAAA,qBACFF,EAAE,QAAkBG,GAAA,CAEdA,EAAO,mBAAmB,KAAO,GAC/BC,EAAA,CAACD,EAAO,eAAgBF,CAAK,CAAC,EACjC,KAAK,CAAC,GAAM,CAAC,EAAG,IAAMH,EAAyB,gBAAgB,8BAA8B,CAAC,EAC9F,KAAK,CAAC,GAAM,CAAC,EAAG,IAAMA,EAAyB,gBAAgB,4BAA4B,CAAC,EAC5F,KAAK,CAAC,GAAO,CAAC,EAAG,IAAMA,EAAyB,aAAa,+BAAgC,EAAE,CAAC,EAChG,KAAK,CAAC,GAAO,CAAC,EAAG,IAAMA,EAAyB,aAAa,6BAA8B,EAAE,CAAC,EAC9F,IAAI,CAAA,CACR,EACD,CAAE,KAAM,KAAM,UAAW,EAAI,CAAA,EAC7B,QAAQI,CAAU,CAAA,CAExB,CACF,CAAC"}
|
||||
{"version":3,"file":"scripts-menu-categories.js","sources":["../../src/scripts/scripts-menu-categories.ts"],"sourcesContent":["/** Scripts pour le Menu des Catégories de Produits */\n\nimport { A } from \"@mobily/ts-belt\";\nimport { match } from \"ts-pattern\";\n\nimport { SELECTEUR_ENTREE_MENU_CATEGORIES_PRODUITS, SELECTEUR_MENU_CATEGORIES_PRODUITS } from \"./constantes/dom.ts\";\nimport { recupereEleOuLeve, recupereElesOuLeve } from \"./lib/utils.ts\";\n\ndocument.addEventListener(\"DOMContentLoaded\", (): void => {\n const MENU_CATEGORIES_PRODUITS: HTMLElement = recupereEleOuLeve(SELECTEUR_MENU_CATEGORIES_PRODUITS);\n const ENTREES_MENU_CATEGORIES_PRODUITS: Array<HTMLAnchorElement> = recupereElesOuLeve(\n SELECTEUR_ENTREE_MENU_CATEGORIES_PRODUITS,\n );\n\n A.forEachWithIndex(\n [ENTREES_MENU_CATEGORIES_PRODUITS.at(0), ENTREES_MENU_CATEGORIES_PRODUITS.at(-1)],\n (index, entreeMenu) => {\n if (!entreeMenu) return;\n\n new IntersectionObserver(\n A.forEach(entree => {\n // Ne déclenche rien si le scroll n'est pas horizontal\n if (entree.boundingClientRect.top <= 0) return;\n match([entree.isIntersecting, index])\n .with([true, 0], () => MENU_CATEGORIES_PRODUITS.removeAttribute(\"data-entrees-presentes-debut\"))\n .with([true, 1], () => MENU_CATEGORIES_PRODUITS.removeAttribute(\"data-entrees-presentes-fin\"))\n .with([false, 0], () => MENU_CATEGORIES_PRODUITS.setAttribute(\"data-entrees-presentes-debut\", \"\"))\n .with([false, 1], () => MENU_CATEGORIES_PRODUITS.setAttribute(\"data-entrees-presentes-fin\", \"\"))\n .run();\n }),\n { root: null, threshold: 0.9 },\n ).observe(entreeMenu);\n },\n );\n});\n"],"names":["z","SELECTEUR_MENU_CATEGORIES_PRODUITS","SELECTEUR_ENTREE_MENU_CATEGORIES_PRODUITS","recupereEleOuLeve","recupereElesOuLeve","Ra","MENU_CATEGORIES_PRODUITS","ENTREES_MENU_CATEGORIES_PRODUITS","A","index","entreeMenu","entree","match"],"mappings":"AAQA,OAAA,KAAAA,MAAA,sBAAA,OAAA,KAAAC,EAAA,KAAAC,MAAA,WAAA,OAAA,KAAAC,EAAA,KAAAC,MAAA,aAAA,OAAA,KAAAC,MAAA,YAAA,MAAA,eAAA,MAAA,wBAAA,MAAA,qBAAA,MAAA,uBAAA,SAAS,iBAAiB,mBAAoB,IAAY,CAClD,MAAAC,EAAwCH,EAAkBF,CAAkC,EAC5FM,EAA6DH,EACjEF,CACF,EAEEM,EAAA,iBACA,CAACD,EAAiC,GAAG,CAAC,EAAGA,EAAiC,GAAG,EAAE,CAAC,EAChF,CAACE,EAAOC,IAAe,CAChBA,GAED,IAAA,qBACFF,EAAE,QAAkBG,GAAA,CAEdA,EAAO,mBAAmB,KAAO,GAC/BC,EAAA,CAACD,EAAO,eAAgBF,CAAK,CAAC,EACjC,KAAK,CAAC,GAAM,CAAC,EAAG,IAAMH,EAAyB,gBAAgB,8BAA8B,CAAC,EAC9F,KAAK,CAAC,GAAM,CAAC,EAAG,IAAMA,EAAyB,gBAAgB,4BAA4B,CAAC,EAC5F,KAAK,CAAC,GAAO,CAAC,EAAG,IAAMA,EAAyB,aAAa,+BAAgC,EAAE,CAAC,EAChG,KAAK,CAAC,GAAO,CAAC,EAAG,IAAMA,EAAyB,aAAa,6BAA8B,EAAE,CAAC,EAC9F,IAAI,CAAA,CACR,EACD,CAAE,KAAM,KAAM,UAAW,EAAI,CAAA,EAC7B,QAAQI,CAAU,CAAA,CAExB,CACF,CAAC"}
|
||||
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{c as p,d as T,C as i,e as l,f as L,g as f,h as N}from"./dom.js";import{a as c,b as _}from"./utils.js";import{R as o}from"./dom2.js";import{p as a}from"./pipe.CtTFdEz3.js";import{P as E}from"./index-c1cc4c86.Ce2mb7Nd.js";import"./erreurs2.js";import"./exports.BFQs_g59.js";import"./Either.DDEPhGsy.js";import"./belt_Option-91f3b350.Dja5KR5O.js";const u=c(L),I=_(f),S=_(N),m=new Map;o.forEachWithIndex(I,(s,r)=>{a(r,E.flatMap(t=>t.getAttribute(p)),E.tap(t=>{m.set(t,[r,S[s]])}))});document.addEventListener("DOMContentLoaded",()=>{u.addEventListener("click",s=>{const r=s.target;a(r,E.fromPredicate(t=>t.className===i),E.mapNullable(t=>t.parentElement),E.flatMap(t=>t.getAttribute(p)),E.tap(t=>{a(E.fromNullable(m.get(t)),E.tap(o.forEach(e=>e.removeAttribute(T))))})),a(r,E.fromPredicate(t=>t.className===l),E.flatMap(t=>t.getAttribute(p)),E.tap(t=>{if(r.hasAttribute(T)){a(E.fromNullable(m.get(t)),E.tap(o.forEach(e=>e.removeAttribute(T))));return}a(Array.from(m.values()),o.flat,o.forEach(e=>e.removeAttribute(T))),a(E.fromNullable(m.get(t)),E.tap(o.forEach(e=>e.toggleAttribute(T))))}))})});
|
||||
import{c as p,d as T,C as i,e as l,f as L,g as f,h as N}from"./dom.js";import{a as c,b as _}from"./utils.js";import{R as o}from"./dom2.js";import{p as a}from"./pipe.CtTFdEz3.js";import{P as E}from"./index-c1cc4c86.CgXEmUX3.js";import"./erreurs.js";import"./exports.jfK3lrNh.js";import"./Either.DDEPhGsy.js";import"./belt_Option-91f3b350.Dja5KR5O.js";const u=c(L),I=_(f),S=_(N),m=new Map;o.forEachWithIndex(I,(s,r)=>{a(r,E.flatMap(t=>t.getAttribute(p)),E.tap(t=>{m.set(t,[r,S[s]])}))});document.addEventListener("DOMContentLoaded",()=>{u.addEventListener("click",s=>{const r=s.target;a(r,E.fromPredicate(t=>t.className===i),E.mapNullable(t=>t.parentElement),E.flatMap(t=>t.getAttribute(p)),E.tap(t=>{a(E.fromNullable(m.get(t)),E.tap(o.forEach(e=>e.removeAttribute(T))))})),a(r,E.fromPredicate(t=>t.className===l),E.flatMap(t=>t.getAttribute(p)),E.tap(t=>{if(r.hasAttribute(T)){a(E.fromNullable(m.get(t)),E.tap(o.forEach(e=>e.removeAttribute(T))));return}a(Array.from(m.values()),o.flat,o.forEach(e=>e.removeAttribute(T))),a(E.fromNullable(m.get(t)),E.tap(o.forEach(e=>e.toggleAttribute(T))))}))})});
|
||||
//# sourceMappingURL=scripts-page-a-propos.js.map
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -1,2 +1,2 @@
|
|||
import{i as R,j as l,k as n,l as S}from"./dom.js";import{e as g}from"./nombres.js";import{a as r,b as N}from"./utils.js";import{p as O}from"./pipe.CtTFdEz3.js";import{P as s}from"./index-c1cc4c86.Ce2mb7Nd.js";import{R as G}from"./dom2.js";import"./erreurs2.js";import"./exports.BFQs_g59.js";import"./Either.DDEPhGsy.js";import"./belt_Option-91f3b350.Dja5KR5O.js";const c=()=>{const e={CONTENEUR_STORYTELLING:r(".storytelling__conteneur"),IMAGES_STORYTELLING:N(R),STORYTELLING:r(l)};let o=e.IMAGES_STORYTELLING.at(0)?.getBoundingClientRect().height??0,i=0;const L=(t,E)=>{t.toggleAttribute(n,E),t.toggleAttribute(S,E)},m=()=>{console.time(),o=O(G.getBy(e.IMAGES_STORYTELLING,t=>!t.hasAttribute(n)),s.map(t=>t.getBoundingClientRect().height),s.getWithDefault(0)),e.CONTENEUR_STORYTELLING.style.minHeight=`${String(o*e.IMAGES_STORYTELLING.length+61)}px`,e.CONTENEUR_STORYTELLING.style.maxHeight=`${String(o*e.IMAGES_STORYTELLING.length+61)}px`,console.timeEnd()},T=()=>{i=e.STORYTELLING.scrollTop,e.IMAGES_STORYTELLING.forEach((t,E)=>{const I=o*E,a=o*(E+1);L(t,!g(i,I,a))})};new ResizeObserver(()=>{m(),T()}).observe(e.STORYTELLING),e.STORYTELLING.addEventListener("scroll",()=>T())};document.addEventListener("DOMContentLoaded",()=>{c()});
|
||||
import{i as R,j as l,k as n,l as S}from"./dom.js";import{e as g}from"./nombres.js";import{a as r,b as N}from"./utils.js";import{p as O}from"./pipe.CtTFdEz3.js";import{P as s}from"./index-c1cc4c86.CgXEmUX3.js";import{R as G}from"./dom2.js";import"./erreurs.js";import"./exports.jfK3lrNh.js";import"./Either.DDEPhGsy.js";import"./belt_Option-91f3b350.Dja5KR5O.js";const c=()=>{const e={CONTENEUR_STORYTELLING:r(".storytelling__conteneur"),IMAGES_STORYTELLING:N(R),STORYTELLING:r(l)};let o=e.IMAGES_STORYTELLING.at(0)?.getBoundingClientRect().height??0,i=0;const L=(t,E)=>{t.toggleAttribute(n,E),t.toggleAttribute(S,E)},m=()=>{console.time(),o=O(G.getBy(e.IMAGES_STORYTELLING,t=>!t.hasAttribute(n)),s.map(t=>t.getBoundingClientRect().height),s.getWithDefault(0)),e.CONTENEUR_STORYTELLING.style.minHeight=`${String(o*e.IMAGES_STORYTELLING.length+61)}px`,e.CONTENEUR_STORYTELLING.style.maxHeight=`${String(o*e.IMAGES_STORYTELLING.length+61)}px`,console.timeEnd()},T=()=>{i=e.STORYTELLING.scrollTop,e.IMAGES_STORYTELLING.forEach((t,E)=>{const I=o*E,a=o*(E+1);L(t,!g(i,I,a))})};new ResizeObserver(()=>{m(),T()}).observe(e.STORYTELLING),e.STORYTELLING.addEventListener("scroll",()=>T())};document.addEventListener("DOMContentLoaded",()=>{c()});
|
||||
//# 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":"2WAaA,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 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":"0WAaA,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"}
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
import{z as _,N as l}from"./index.CuMLbxmh.js";import{V as O}from"./index.BykRh4R4.js";import{R as S}from"./api.js";import{m as P,n as R,o as D,p as n,q as u,r as m,s as I}from"./dom.js";import{l as L}from"./animations.js";import{h as f}from"./dom2.js";import{S as g,B as d}from"./erreurs2.js";import{g as h,c as A}from"./reseau.js";import{W as B,a as N}from"./products.js";import{a as p}from"./utils.js";import{e as c}from"./validation.js";import{E as o}from"./MaybeAsync.BkJailCK.js";import{p as C}from"./pipe.CtTFdEz3.js";import{t as v}from"./index-0eef19ec.BYszGP4b.js";import"./Either.DDEPhGsy.js";import"./exports.BFQs_g59.js";import"./erreurs3.js";import"./products2.js";import"./belt_Option-91f3b350.Dja5KR5O.js";const T=_etats,t={BOUTON_PLUS_DE_PRODUITS:p(P),GRILLE_PRODUITS:p(R)},b=()=>{const a=t.GRILLE_PRODUITS.getAttribute(D);t.BOUTON_PLUS_DE_PRODUITS.addEventListener("click",()=>{const s=Number(t.GRILLE_PRODUITS.getAttribute(n))+1,U={page:s,per_page:12,...a&&{category:a}};o.liftEither(c(U,B)).ifRight(()=>{t.BOUTON_PLUS_DE_PRODUITS.setAttribute(u,""),t.BOUTON_PLUS_DE_PRODUITS.setAttribute(m,""),L(t.BOUTON_PLUS_DE_PRODUITS,500)}).chain(r=>o(()=>h({authString:T.authString,nonce:T.nonce,route:S,searchParams:new URLSearchParams(r).toString()}))).chain(r=>o(async({throwE:e})=>_(await A(r)).with({status:500},()=>e(new g("500 Server Error"))).with({status:400},()=>e(new d("400 Server Error"))).with({status:200},i=>i.body).run())).chain(r=>o.liftEither(c(r,N))).ifRight(r=>{r.length<12&&t.BOUTON_PLUS_DE_PRODUITS.toggleAttribute(I);const e=document.createDocumentFragment();for(const i of r.slice(0,12))C(f`
|
||||
import{z as _,N as l}from"./index.CuMLbxmh.js";import{V as O}from"./index.BykRh4R4.js";import{R as S}from"./api.js";import{m as P,n as R,o as D,p as n,q as u,r as p,s as I}from"./dom.js";import{l as L}from"./animations.js";import{h as f}from"./dom2.js";import{S as g,B as d}from"./erreurs.js";import{E as o,g as h,c as A}from"./reseau.js";import{W as B,a as N}from"./products.js";import{a as m}from"./utils.js";import{e as c}from"./validation.js";import{p as C}from"./pipe.CtTFdEz3.js";import{t as v}from"./index-0eef19ec.BAWlGMMA.js";import"./Either.DDEPhGsy.js";import"./exports.jfK3lrNh.js";import"./erreurs3.js";import"./products2.js";import"./belt_Option-91f3b350.Dja5KR5O.js";const T=_etats,t={BOUTON_PLUS_DE_PRODUITS:m(P),GRILLE_PRODUITS:m(R)},b=()=>{const a=t.GRILLE_PRODUITS.getAttribute(D);t.BOUTON_PLUS_DE_PRODUITS.addEventListener("click",()=>{const s=Number(t.GRILLE_PRODUITS.getAttribute(n))+1,U={page:s,per_page:12,...a&&{category:a}};o.liftEither(c(U,B)).ifRight(()=>{t.BOUTON_PLUS_DE_PRODUITS.setAttribute(u,""),t.BOUTON_PLUS_DE_PRODUITS.setAttribute(p,""),L(t.BOUTON_PLUS_DE_PRODUITS,500)}).chain(r=>o(()=>h({authString:T.authString,nonce:T.nonce,route:S,searchParams:new URLSearchParams(r).toString()}))).chain(r=>o(async({throwE:e})=>_(await A(r)).with({status:500},()=>e(new g("500 Server Error"))).with({status:400},()=>e(new d("400 Server Error"))).with({status:200},i=>i.body).run())).chain(r=>o.liftEither(c(r,N))).ifRight(r=>{r.length<12&&t.BOUTON_PLUS_DE_PRODUITS.toggleAttribute(I);const e=document.createDocumentFragment();for(const i of r.slice(0,12))C(f`
|
||||
<article class="produit">
|
||||
<figure>
|
||||
<a href="/product/${i.slug}">
|
||||
|
|
@ -21,5 +21,5 @@ import{z as _,N as l}from"./index.CuMLbxmh.js";import{V as O}from"./index.BykRh4
|
|||
</figcaption>
|
||||
</figure>
|
||||
</article>
|
||||
`,v(E=>e.appendChild(E)));t.GRILLE_PRODUITS.appendChild(e),t.GRILLE_PRODUITS.setAttribute(n,String(s)),t.BOUTON_PLUS_DE_PRODUITS.textContent="Show more"}).ifLeft(r=>{_(r).with(l.instanceOf(O),e=>console.error("ValiError",e.issues)).otherwise(e=>console.error("Erreur",e)),t.BOUTON_PLUS_DE_PRODUITS.textContent="Error, try again?"}).finally(()=>{t.BOUTON_PLUS_DE_PRODUITS.removeAttribute(m),t.BOUTON_PLUS_DE_PRODUITS.removeAttribute(u)}).run()})};document.addEventListener("DOMContentLoaded",()=>{b()});
|
||||
`,v(E=>e.appendChild(E)));t.GRILLE_PRODUITS.appendChild(e),t.GRILLE_PRODUITS.setAttribute(n,String(s)),t.BOUTON_PLUS_DE_PRODUITS.textContent="Show more"}).ifLeft(r=>{_(r).with(l.instanceOf(O),e=>console.error("ValiError",e.issues)).otherwise(e=>console.error("Erreur",e)),t.BOUTON_PLUS_DE_PRODUITS.textContent="Error, try again?"}).finally(()=>{t.BOUTON_PLUS_DE_PRODUITS.removeAttribute(p),t.BOUTON_PLUS_DE_PRODUITS.removeAttribute(u)}).run()})};document.addEventListener("DOMContentLoaded",()=>{b()});
|
||||
//# sourceMappingURL=scripts-page-boutique.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
|
|
@ -1,2 +1,2 @@
|
|||
import{z as a,N as o}from"./index.CuMLbxmh.js";import{V as p}from"./index.BykRh4R4.js";import{c as b,d as B}from"./api.js";import{I as M,J as w,K as v,L as y,x,M as V,w as G,q as i,r as n,N as R,s as u}from"./dom.js";import{E as H}from"./erreurs.js";import{b as f}from"./messages3.js";import{l as N}from"./animations.js";import{c as D,i as W}from"./dom2.js";import{S as _}from"./erreurs2.js";import{E as S}from"./codes-promo.js";import{e as j}from"./gardes.js";import{r as J,b as U}from"./messages.js";import{d as T,a as A,f as P,i as k}from"./nombres.js";import{p as L}from"./reseau.js";import{W as h}from"./cart.js";import{W as q}from"./cart-apply-coupon.js";import{W as z}from"./cart-remove-coupon.js";import{a as E}from"./utils.js";import{e as C}from"./validation.js";import{E as s}from"./MaybeAsync.BkJailCK.js";import{p as c}from"./pipe.CtTFdEz3.js";import{M as F}from"./Either.DDEPhGsy.js";import"./exports.BFQs_g59.js";import"./erreurs3.js";import"./messages2.js";import"./cart2.js";import"./adresses2.js";import"./cart-coupons.js";import"./couts-livraison.js";const d=_etats,t={BOUTON_CODE_PROMO:E(M),CHAMP_CODE_PROMO:E(w),ENSEMBLE_CODE_PROMO:E(v),MESSAGE_CODE_PROMO:E(y),TOTAL_PANIER:E(x),TOTAL_REDUCTION_LIGNE:E(V),TOTAL_REDUCTION_VALEUR:E(G)},Nt=()=>{const l=()=>F.fromFalsy(t.CHAMP_CODE_PROMO.value.trim()).extractNullable(),g=()=>t.ENSEMBLE_CODE_PROMO.hasAttribute(R);t.ENSEMBLE_CODE_PROMO.addEventListener("click",I=>a({cible:I.target,codePromoPresent:g(),valeurCodePromo:l()}).with({cible:o.when(O=>D(O,M)),codePromoPresent:!1,valeurCodePromo:o.string},({valeurCodePromo:O})=>void s.liftEither(C({code:O},q)).ifRight(()=>{t.BOUTON_CODE_PROMO.setAttribute(i,""),t.BOUTON_CODE_PROMO.setAttribute(n,""),t.MESSAGE_CODE_PROMO.textContent="",N(t.BOUTON_CODE_PROMO,500)}).map(e=>L({corps:JSON.stringify(e),nonce:d.nonce,route:b})).chain(e=>s(async({throwE:r})=>{const m={body:await e.json(),status:e.status};return a(m).with({status:500},()=>r(new _("500 Server Error"))).with({body:o.when(()=>J(m,H)),status:400},()=>r(new S(l()??""))).with({status:200},()=>m.body).run()})).chain(e=>s.liftEither(C(e,h))).ifRight(e=>{t.ENSEMBLE_CODE_PROMO.toggleAttribute(R),t.CHAMP_CODE_PROMO.toggleAttribute(i),t.CHAMP_CODE_PROMO.value=e.coupons[0]?.code??"",t.BOUTON_CODE_PROMO.textContent="Remove",t.TOTAL_PANIER.textContent=c(T(e.totals.total_price),A,P),t.TOTAL_REDUCTION_LIGNE.toggleAttribute(u),t.TOTAL_REDUCTION_VALEUR.textContent=c(T(e.totals.total_discount),k,A,P),U(f,!0)}).ifLeft(e=>{t.BOUTON_CODE_PROMO.textContent="Apply",a(e).with(o.instanceOf(p),r=>console.error("ValiError",r.issues)).with(o.instanceOf(S),r=>{t.MESSAGE_CODE_PROMO.textContent="This promo code does not exist.",console.error(r)}).with(o.instanceOf(_),r=>{t.MESSAGE_CODE_PROMO.textContent="Sorry, something went wrong! Please refresh the page and try again.",console.error(r)}).with(o.instanceOf(TypeError),r=>{t.MESSAGE_CODE_PROMO.textContent="Sorry, something went wrong! Please refresh the page and try again.",console.error(r)}).exhaustive()}).finally(()=>{t.BOUTON_CODE_PROMO.removeAttribute(n),t.BOUTON_CODE_PROMO.removeAttribute(i)}).run()).with({cible:o.when(O=>D(O,M)),codePromoPresent:!0,valeurCodePromo:o.string},({valeurCodePromo:O})=>void s.liftEither(C({code:O},z)).ifRight(()=>{t.BOUTON_CODE_PROMO.setAttribute(i,""),t.BOUTON_CODE_PROMO.setAttribute(n,""),N(t.BOUTON_CODE_PROMO,500)}).map(e=>L({corps:JSON.stringify(e),nonce:d.nonce,route:B})).chain(e=>s(async({throwE:r})=>(j(e)&&r(new _("500 server Error")),await e.json()))).chain(e=>s.liftEither(C(e,h))).ifRight(e=>{t.ENSEMBLE_CODE_PROMO.toggleAttribute(R),t.ENSEMBLE_CODE_PROMO.reset(),t.CHAMP_CODE_PROMO.toggleAttribute(i),t.CHAMP_CODE_PROMO.textContent="",t.BOUTON_CODE_PROMO.textContent="Apply",t.TOTAL_PANIER.textContent=c(T(e.totals.total_price),A,P),t.TOTAL_REDUCTION_LIGNE.toggleAttribute(u),t.TOTAL_REDUCTION_VALEUR.textContent="-0€",U(f,!0)}).ifLeft(e=>a(e).with(o.instanceOf(p),r=>console.error("retour ajout code promo",r.issues)).with(o.instanceOf(_),r=>console.error("retour ajout code promo",r)).with(o.instanceOf(TypeError),r=>console.error("retour ajout code promo",r)).exhaustive()).finally(()=>{t.BOUTON_CODE_PROMO.removeAttribute(n),t.BOUTON_CODE_PROMO.removeAttribute(i)}).run()).with(o._,W))};export{Nt as i};
|
||||
import{z as a,N as o}from"./index.CuMLbxmh.js";import{V as u}from"./index.BykRh4R4.js";import{a as b,b as B}from"./api.js";import{E as w}from"./erreurs2.js";import{I as M,J as v,K as y,L as x,x as V,M as G,w as H,q as i,r as n,N as R,s as p}from"./dom.js";import{b as N}from"./messages3.js";import{l as f}from"./animations.js";import{c as D,i as W}from"./dom2.js";import{S as _}from"./erreurs.js";import{E as S}from"./codes-promo.js";import{e as j}from"./gardes.js";import{r as J,e as U}from"./messages.js";import{d as T,a as A,f as P,i as k}from"./nombres.js";import{E as s,p as L}from"./reseau.js";import{W as h}from"./cart.js";import{W as q}from"./cart-apply-coupon.js";import{W as z}from"./cart-remove-coupon.js";import{a as E}from"./utils.js";import{e as C}from"./validation.js";import{p as c}from"./pipe.CtTFdEz3.js";import{M as F}from"./Either.DDEPhGsy.js";import"./exports.jfK3lrNh.js";import"./erreurs3.js";import"./messages2.js";import"./cart2.js";import"./adresses2.js";import"./cart-coupons.js";import"./couts-livraison.js";const d=_etats,t={BOUTON_CODE_PROMO:E(M),CHAMP_CODE_PROMO:E(v),ENSEMBLE_CODE_PROMO:E(y),MESSAGE_CODE_PROMO:E(x),TOTAL_PANIER:E(V),TOTAL_REDUCTION_LIGNE:E(G),TOTAL_REDUCTION_VALEUR:E(H)},Nt=()=>{const l=()=>F.fromFalsy(t.CHAMP_CODE_PROMO.value.trim()).extractNullable(),g=()=>t.ENSEMBLE_CODE_PROMO.hasAttribute(R);t.ENSEMBLE_CODE_PROMO.addEventListener("click",I=>a({cible:I.target,codePromoPresent:g(),valeurCodePromo:l()}).with({cible:o.when(O=>D(O,M)),codePromoPresent:!1,valeurCodePromo:o.string},({valeurCodePromo:O})=>void s.liftEither(C({code:O},q)).ifRight(()=>{t.BOUTON_CODE_PROMO.setAttribute(i,""),t.BOUTON_CODE_PROMO.setAttribute(n,""),t.MESSAGE_CODE_PROMO.textContent="",f(t.BOUTON_CODE_PROMO,500)}).map(e=>L({corps:JSON.stringify(e),nonce:d.nonce,route:b})).chain(e=>s(async({throwE:r})=>{const m={body:await e.json(),status:e.status};return a(m).with({status:500},()=>r(new _("500 Server Error"))).with({body:o.when(()=>J(m,w)),status:400},()=>r(new S(l()??""))).with({status:200},()=>m.body).run()})).chain(e=>s.liftEither(C(e,h))).ifRight(e=>{t.ENSEMBLE_CODE_PROMO.toggleAttribute(R),t.CHAMP_CODE_PROMO.toggleAttribute(i),t.CHAMP_CODE_PROMO.value=e.coupons[0]?.code??"",t.BOUTON_CODE_PROMO.textContent="Remove",t.TOTAL_PANIER.textContent=c(T(e.totals.total_price),A,P),t.TOTAL_REDUCTION_LIGNE.toggleAttribute(p),t.TOTAL_REDUCTION_VALEUR.textContent=c(T(e.totals.total_discount),k,A,P),U(N,!0)}).ifLeft(e=>{t.BOUTON_CODE_PROMO.textContent="Apply",a(e).with(o.instanceOf(u),r=>console.error("ValiError",r.issues)).with(o.instanceOf(S),r=>{t.MESSAGE_CODE_PROMO.textContent="This promo code does not exist.",console.error(r)}).with(o.instanceOf(_),r=>{t.MESSAGE_CODE_PROMO.textContent="Sorry, something went wrong! Please refresh the page and try again.",console.error(r)}).with(o.instanceOf(TypeError),r=>{t.MESSAGE_CODE_PROMO.textContent="Sorry, something went wrong! Please refresh the page and try again.",console.error(r)}).exhaustive()}).finally(()=>{t.BOUTON_CODE_PROMO.removeAttribute(n),t.BOUTON_CODE_PROMO.removeAttribute(i)}).run()).with({cible:o.when(O=>D(O,M)),codePromoPresent:!0,valeurCodePromo:o.string},({valeurCodePromo:O})=>void s.liftEither(C({code:O},z)).ifRight(()=>{t.BOUTON_CODE_PROMO.setAttribute(i,""),t.BOUTON_CODE_PROMO.setAttribute(n,""),f(t.BOUTON_CODE_PROMO,500)}).map(e=>L({corps:JSON.stringify(e),nonce:d.nonce,route:B})).chain(e=>s(async({throwE:r})=>(j(e)&&r(new _("500 server Error")),await e.json()))).chain(e=>s.liftEither(C(e,h))).ifRight(e=>{t.ENSEMBLE_CODE_PROMO.toggleAttribute(R),t.ENSEMBLE_CODE_PROMO.reset(),t.CHAMP_CODE_PROMO.toggleAttribute(i),t.CHAMP_CODE_PROMO.textContent="",t.BOUTON_CODE_PROMO.textContent="Apply",t.TOTAL_PANIER.textContent=c(T(e.totals.total_price),A,P),t.TOTAL_REDUCTION_LIGNE.toggleAttribute(p),t.TOTAL_REDUCTION_VALEUR.textContent="-0€",U(N,!0)}).ifLeft(e=>a(e).with(o.instanceOf(u),r=>console.error("retour ajout code promo",r.issues)).with(o.instanceOf(_),r=>console.error("retour ajout code promo",r)).with(o.instanceOf(TypeError),r=>console.error("retour ajout code promo",r)).exhaustive()).finally(()=>{t.BOUTON_CODE_PROMO.removeAttribute(n),t.BOUTON_CODE_PROMO.removeAttribute(i)}).run()).with(o._,W))};export{Nt as i};
|
||||
//# sourceMappingURL=scripts-page-panier-code-promo.js.map
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -0,0 +1,2 @@
|
|||
import{z as c,N as M}from"./index.CuMLbxmh.js";import{c as v,d as D}from"./api.js";import{t as J,B as Q,F as y,G as L,H as B,E as W,q as A}from"./dom.js";import{b as _}from"./messages3.js";import{f as q,m as f,b as k,r as j}from"./dom2.js";import{S as R,B as T}from"./erreurs.js";import{b as S,c as N,e as d}from"./messages.js";import{d as s}from"./nombres.js";import{E as a,e as I,p as P,c as b}from"./reseau.js";import{W as g}from"./cart.js";import{W as G}from"./cart-remove-item.js";import{W as U}from"./cart-update-item.js";import{c as V}from"./utils.js";import{e as E}from"./validation.js";import{p as h}from"./pipe.CtTFdEz3.js";import{M as m}from"./Either.DDEPhGsy.js";import"./exports.jfK3lrNh.js";import"./index.BykRh4R4.js";import"./erreurs3.js";import"./messages2.js";import"./cart2.js";import"./adresses2.js";import"./cart-coupons.js";import"./couts-livraison.js";const C=_etats,$={ENTREES_PANIER:V(J)},x=i=>o=>h(k(i)(o),j),l=i=>{const o=x(i);return{boutonAddition:o(y),boutonSoustraction:o(L),boutonSuppression:o(B),champQuantite:o(W)}},w=i=>o=>q(o,n=>{n.boutonSoustraction.setAttribute(A,""),n.boutonAddition.setAttribute(A,""),n.boutonSuppression.setAttribute(A,""),n.boutonSuppression.textContent="Loading"}),ft=()=>{$.ENTREES_PANIER.ifRight(i=>q(i,o=>{const n=m.fromNullable(o.getAttribute(Q)).ifNothing(()=>{o.remove()}).orDefault("CLE_PANIER_INEXISTANTE"),p=l(o);o.addEventListener("click",O=>{c(O.target).with(M.nullish,()=>console.error(O.target)).when(e=>e.matches(y),()=>{m.fromNullable(p.champQuantite.valueAsNumber).ifJust(e=>{a.liftEither(E({key:n,quantity:e+1},U)).ifRight(()=>h(i,f(l),w())).chain(t=>I(P({corps:JSON.stringify(t),nonce:C.nonce,route:v}))).chain(t=>a(async({throwE:r})=>c(await b(t)).with({status:500},()=>r(new R("500 Server Error"))).with({status:400},()=>r(new T("400 Bad Request Error"))).with({status:200},u=>u.body).otherwise(u=>r(new Error(`Erreur inconnue ${String(u.status)}`))))).chain(t=>a.liftEither(E(t,g))).ifRight(t=>{S({quantiteProduits:t.items_count}),N({produits:t.items,sousTotalProduits:s(t.totals.total_items),sousTotalReduction:s(t.totals.total_discount),totalPanier:s(t.totals.total_price)}),d(_,!0)}).run()})}).when(e=>e.matches(L),()=>{m.fromNullable(p.champQuantite.valueAsNumber).filter(e=>e>1).ifJust(e=>{a.liftEither(E({key:n,quantity:e-1},U)).ifRight(()=>h(i,f(l),w())).chain(t=>I(P({corps:JSON.stringify(t),nonce:C.nonce,route:v}))).chain(t=>a(async({throwE:r})=>c(await b(t)).with({status:500},()=>r(new R("500 Server Error"))).with({status:400},()=>r(new T("400 Bad Request Error"))).with({status:200},u=>u.body).otherwise(u=>r(new Error(`Erreur inconnue ${String(u.status)}`))))).chain(t=>a.liftEither(E(t,g))).ifRight(t=>{S({quantiteProduits:t.items_count}),N({produits:t.items,sousTotalProduits:s(t.totals.total_items),sousTotalReduction:s(t.totals.total_discount),totalPanier:s(t.totals.total_price)}),d(_,!0)}).run()})}).when(e=>e.matches(B),()=>{m.fromNullable(p.champQuantite.valueAsNumber).ifJust(()=>{a.liftEither(E({key:n},G)).ifRight(()=>h(i,f(l),w())).chain(e=>I(P({corps:JSON.stringify(e),nonce:C.nonce,route:D}))).chain(e=>a(async({throwE:t})=>c(await b(e)).with({status:500},()=>t(new R("500 Server Error"))).with({status:400},()=>t(new T("400 Bad Request Error"))).with({status:200},r=>r.body).otherwise(r=>t(new Error(`Erreur inconnue ${String(r.status)}`))))).chain(e=>a.liftEither(E(e,g))).ifRight(e=>{S({quantiteProduits:e.items_count}),N({produits:e.items,sousTotalProduits:s(e.totals.total_items),sousTotalReduction:s(e.totals.total_discount),totalPanier:s(e.totals.total_price)}),d(_,!0),o.remove()}).run()})}).run()})}))};export{ft as i};
|
||||
//# sourceMappingURL=scripts-page-panier-panneau-produits.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
|
|
@ -1,2 +1,2 @@
|
|||
import{z as N}from"./index.CuMLbxmh.js";import{e as h,E as U}from"./api.js";import{O as g,P as b,Q as v,R as D,T as P,U as M,V as w,W as H,X as F,Y as B,Z as G,_,$ as l,s as A,q as f,a0 as y}from"./dom.js";import{r as W,d as C,R as c}from"./dom2.js";import{l as x,r as k}from"./erreurs2.js";import{b as J,e as V,a as j}from"./gardes.js";import{e as X}from"./messages.js";import{t as q}from"./reseau.js";import{W as Q}from"./cart-add-item.js";import{W as $}from"./cart.js";import{r as L,a as E,c as S,b as z,y as Y}from"./utils.js";import{e as Z}from"./validation.js";import{p as n}from"./pipe.CtTFdEz3.js";import{l as K}from"./index-0eef19ec.BYszGP4b.js";import{M as u}from"./Either.DDEPhGsy.js";import"./exports.BFQs_g59.js";import"./index.BykRh4R4.js";import"./messages3.js";import"./erreurs3.js";import"./messages2.js";import"./MaybeAsync.BkJailCK.js";import"./cart2.js";import"./adresses2.js";import"./cart-coupons.js";import"./couts-livraison.js";import"./belt_Option-91f3b350.Dja5KR5O.js";const I=_etats,ee=s=>{s.forEach(o=>{o[0].setAttribute(l,"false"),o[1].setAttribute(A,"true")})},a=n(L(g),W),d=L(b),te=E(P),re=n(S(v),C),oe=n(S(D),C),se=()=>{const s=E(M),o=E(w),i=E(H),r=E(F),e=c.flat([E(B),z(G)]),t=()=>Number(r.getAttribute(_));c.forEachWithIndex([e.at(0),e.at(-1)],(m,p)=>{p&&(new IntersectionObserver(c.forEach(T=>N([T.isIntersecting,m]).with([!0,0],()=>s.removeAttribute("data-images-presentes-debut")).with([!0,1],()=>s.removeAttribute("data-images-presentes-fin")).with([!1,0],()=>s.setAttribute("data-images-presentes-debut","")).with([!1,1],()=>s.setAttribute("data-images-presentes-fin","")).otherwise(()=>{})),{root:null,rootMargin:"100% 0% 100% 0%",threshold:.5}).observe(p),c.forEachWithIndex(e,(T,O)=>new IntersectionObserver(c.forEach(R=>{R.isIntersecting&&r.setAttribute(_,String(T))}),{root:null,rootMargin:"100% 0% 100% 0%",threshold:.5}).observe(O)),o.addEventListener("click",()=>e[t()-1]?.scrollIntoView({behavior:"smooth",block:"nearest",inline:"center"})),i.addEventListener("click",()=>e[t()+1]?.scrollIntoView({behavior:"smooth",block:"nearest",inline:"center"})))})},ie=()=>{const s=new Map;re.forEach((o,i)=>{const r=o.getAttribute("id"),e=oe[i];if(!r)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(r,[o,e]),o.addEventListener("click",t=>{t.preventDefault();const m=o.getAttribute(l)==="true";ee(n(s.values(),Array.from)),!m&&(o.setAttribute(l,"true"),e.removeAttribute(A))})}),d.ifRight(o=>o.addEventListener("change",i=>{const r=n(u.fromNullable(i.target),e=>e.filter(J));n(r,e=>e.map(t=>t.validity.valid),e=>e.ifJust(t=>a.toggleAttribute(f,!t))),n(r,e=>e.chain(t=>u.fromNullable(t.selectedOptions[0])),e=>e.chain(t=>u.fromNullable(t.getAttribute(y))),e=>e.ifJust(t=>{te.textContent=`${t}€`}))})),a.addEventListener("click",o=>ne())},ne=()=>{a.textContent="Adding...";const s=d.map(i=>i.value).orDefault(String(I.idProduit)),o={id:Number(s),quantity:1};Z(o,Q).map(i=>{fetch(h,{body:JSON.stringify(i),credentials:"same-origin",headers:{Accept:"application/json","Content-Type":"application/json",[U]:I.nonce},method:"POST",mode:"same-origin",signal:AbortSignal.timeout(5e3)}).then(async r=>{V(r)&&x("500 Server Error"),n(await r.json(),e=>q(e,$),Y.getUnsafe("items_count"),K.tap(e=>{a.textContent="Added to cart!",X({quantiteProduits:e}),setTimeout(()=>{d.ifRight(t=>{t.value=t.options.item(0)?.value??"--"}),a.toggleAttribute(f,!0),a.textContent="Add to cart"},3e3)}))}).catch(r=>{j(r)?(k(r),console.error(r)):console.error("e n'est pas une Erreur ?!",r),a.textContent="Add to cart"})}).ifLeft(i=>console.error(i.issues))};document.addEventListener("DOMContentLoaded",()=>{ie(),se()});
|
||||
import{z as R}from"./index.CuMLbxmh.js";import{e as N,E as h}from"./api.js";import{O as U,P as b,Q as g,R as v,T as D,U as P,V as M,W as w,X as H,Y as F,Z as B,_ as p,$ as l,s as I,q as G,a0 as y}from"./dom.js";import{r as W,d as A,R as a}from"./dom2.js";import{l as k,r as x}from"./erreurs.js";import{a as J,e as V,b as j}from"./gardes.js";import{b as X}from"./messages.js";import{t as q}from"./reseau.js";import{W as Q}from"./cart-add-item.js";import{W as $}from"./cart.js";import{r as f,a as E,c as C,b as z,y as Y}from"./utils.js";import{e as Z}from"./validation.js";import{p as n}from"./pipe.CtTFdEz3.js";import{l as K}from"./index-0eef19ec.BAWlGMMA.js";import{M as u}from"./Either.DDEPhGsy.js";import"./exports.jfK3lrNh.js";import"./index.BykRh4R4.js";import"./messages3.js";import"./erreurs3.js";import"./messages2.js";import"./cart2.js";import"./adresses2.js";import"./cart-coupons.js";import"./couts-livraison.js";import"./belt_Option-91f3b350.Dja5KR5O.js";const _=_etats,ee=s=>{s.forEach(r=>{r[0].setAttribute(l,"false"),r[1].setAttribute(I,"true")})},c=n(f(U),W),L=f(b),te=E(D),re=n(C(g),A),oe=n(C(v),A),se=()=>{const s=E(P),r=E(M),i=E(w),t=E(H),e=a.flat([E(F),z(B)]),o=()=>Number(t.getAttribute(p));a.forEachWithIndex([e.at(0),e.at(-1)],(m,d)=>{d&&(new IntersectionObserver(a.forEach(T=>R([T.isIntersecting,m]).with([!0,0],()=>s.removeAttribute("data-images-presentes-debut")).with([!0,1],()=>s.removeAttribute("data-images-presentes-fin")).with([!1,0],()=>s.setAttribute("data-images-presentes-debut","")).with([!1,1],()=>s.setAttribute("data-images-presentes-fin","")).otherwise(()=>{})),{root:null,rootMargin:"100% 0% 100% 0%",threshold:.5}).observe(d),a.forEachWithIndex(e,(T,S)=>new IntersectionObserver(a.forEach(O=>{O.isIntersecting&&t.setAttribute(p,String(T))}),{root:null,rootMargin:"100% 0% 100% 0%",threshold:.5}).observe(S)),r.addEventListener("click",()=>e[o()-1]?.scrollIntoView({behavior:"smooth",block:"nearest",inline:"center"})),i.addEventListener("click",()=>e[o()+1]?.scrollIntoView({behavior:"smooth",block:"nearest",inline:"center"})))})},ie=()=>{const s=new Map;re.forEach((r,i)=>{const t=r.getAttribute("id"),e=oe[i];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 !");s.set(t,[r,e]),r.addEventListener("click",o=>{o.preventDefault();const m=r.getAttribute(l)==="true";ee(n(s.values(),Array.from)),!m&&(r.setAttribute(l,"true"),e.removeAttribute(I))})}),L.ifRight(r=>r.addEventListener("change",i=>{const t=n(u.fromNullable(i.target),e=>e.filter(J));n(t,e=>e.map(o=>o.validity.valid),e=>e.ifJust(o=>c.toggleAttribute(G,!o))),n(t,e=>e.chain(o=>u.fromNullable(o.selectedOptions[0])),e=>e.chain(o=>u.fromNullable(o.getAttribute(y))),e=>e.ifJust(o=>{te.textContent=`${o}€`}))})),c.addEventListener("click",r=>ne())},ne=()=>{c.textContent="Adding...";const s=L.map(i=>i.value).orDefault(String(_.idProduit)),r={id:Number(s),quantity:1};Z(r,Q).map(i=>{fetch(N,{body:JSON.stringify(i),credentials:"same-origin",headers:{Accept:"application/json","Content-Type":"application/json",[h]:_.nonce},method:"POST",mode:"same-origin",signal:AbortSignal.timeout(5e3)}).then(async t=>{V(t)&&k("500 Server Error"),n(await t.json(),e=>q(e,$),Y.getUnsafe("items_count"),K.tap(e=>{c.textContent="Added to cart!",X({quantiteProduits:e})}))}).catch(t=>{j(t)?(x(t),console.error(t)):console.error("e n'est pas une Erreur ?!",t),c.textContent="Add to cart"})}).ifLeft(i=>console.error(i.issues))};document.addEventListener("DOMContentLoaded",()=>{ie(),se()});
|
||||
//# sourceMappingURL=scripts-page-produit.js.map
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -1,2 +1,2 @@
|
|||
import{q as x,t as s,u as k,l as U,w as W,x as L,y as C,k as A,z as D,a as M,b as P,r as $,d as z}from"./dom2.js";import{C as T}from"./erreurs2.js";import{p as N}from"./pipe.CtTFdEz3.js";import{M as B}from"./Either.DDEPhGsy.js";import"./exports.BFQs_g59.js";function F(n){}function G(n){return{}}function f(n,t){return n[t]}function H(){if(arguments.length===1){const n=arguments;return function(e){return f(e,n[0])}}return f(arguments[0],arguments[1])}var i=W;function I(){if(arguments.length===1){const n=arguments;return function(e){return i(e,n[0])}}return i(arguments[0],arguments[1])}function m(n,t){return n[t]}function J(){if(arguments.length===1){const n=arguments;return function(e){return m(e,n[0])}}return m(arguments[0],arguments[1])}function Q(n){return Object.entries(n)}var R=x;function V(n){return Object.keys(n)}var X=s;function g(n,t){return Object.assign({},n,t)}function a(){if(arguments.length===1){const n=arguments;return function(e){return g(e,n[0])}}return g(arguments[0],arguments[1])}function l(n,t,e){var r=a({},n);return r[t]=e,r}function c(){if(arguments.length===2){const n=arguments;return function(e){return l(e,n[0],n[1])}}return l(arguments[0],arguments[1],arguments[2])}function p(n,t,e){return c(n,t,e(W(n,t)))}function Y(){if(arguments.length===2){const n=arguments;return function(e){return p(e,n[0],n[1])}}return p(arguments[0],arguments[1],arguments[2])}function h(n,t,e){return c(n,t,e(n[t]))}function Z(){if(arguments.length===2){const n=arguments;return function(e){return h(e,n[0],n[1])}}return h(arguments[0],arguments[1],arguments[2])}function y(n,t){var e=a({},n);return L(e,t),e}function nn(){if(arguments.length===1){const n=arguments;return function(e){return y(e,n[0])}}return y(arguments[0],arguments[1])}function v(n,t){var e=a({},n);return C(t,function(r){L(e,r)}),e}function en(){if(arguments.length===1){const n=arguments;return function(e){return v(e,n[0])}}return v(arguments[0],arguments[1])}function _(n,t){return s(k(Object.keys(n),function(e){return[e,t(n[e])]}))}function tn(){if(arguments.length===1){const n=arguments;return function(e){return _(e,n[0])}}return _(arguments[0],arguments[1])}function d(n,t){return s(k(Object.keys(n),function(e){return[e,t(e,n[e])]}))}function rn(){if(arguments.length===1){const n=arguments;return function(e){return d(e,n[0])}}return d(arguments[0],arguments[1])}function E(n,t){return s(A(Object.keys(n),[],function(e,r){var u=n[r];return t(u)?D(e,[r,u]):e}))}function S(){if(arguments.length===1){const n=arguments;return function(e){return E(e,n[0])}}return E(arguments[0],arguments[1])}function K(n,t){return s(A(Object.keys(n),[],function(e,r){var u=n[r];return t(r,u)?D(e,[r,u]):e}))}function o(){if(arguments.length===1){const n=arguments;return function(e){return K(e,n[0])}}return K(arguments[0],arguments[1])}function b(n,t){return S(n,function(e){return!t(e)})}function un(){if(arguments.length===1){const n=arguments;return function(e){return b(e,n[0])}}return b(arguments[0],arguments[1])}function j(n,t){return o(n,function(e,r){return!t(e,r)})}function sn(){if(arguments.length===1){const n=arguments;return function(e){return j(e,n[0])}}return j(arguments[0],arguments[1])}function O(n,t){return o(n,function(e,r){return function(q,w){return w.includes(q)}(e,t)})}function an(){if(arguments.length===1){const n=arguments;return function(e){return O(e,n[0])}}return O(arguments[0],arguments[1])}function cn(n){return U(n,{})}function on(n){return!U(n,{})}var fn={__proto__:null,placeholder:F,makeEmpty:G,getUnsafe:H,get:I,prop:J,toPairs:Q,values:R,keys:V,fromPairs:X,merge:a,set:c,update:Y,updateUnsafe:Z,deleteKey:nn,deleteKeys:en,map:tn,mapWithKey:rn,filter:S,filterWithKey:o,reject:un,rejectWithKey:sn,selectKeys:an,isEmpty:cn,isNotEmpty:on};const mn=M(document),gn=P(document),_n=n=>t=>B.fromNullable(fn.getUnsafe(t,n)).toEither(new T(`La clé « ${String(n)} » n'a pas été trouvé dans l'objet.`)),dn=n=>N(gn(n),$),En=n=>N(mn(n),z);export{dn as a,En as b,mn as c,R as d,I as g,tn as m,_n as p,gn as r,fn as y};
|
||||
import{u as C,w as s,x as U,o as k,y as W,z as L,A as M,l as A,B as D,a as P,b as $,r as q,d as z}from"./dom2.js";import{C as B}from"./erreurs.js";import{p as N}from"./pipe.CtTFdEz3.js";import{M as T}from"./Either.DDEPhGsy.js";import"./exports.jfK3lrNh.js";function F(n){}function G(n){return{}}function f(n,t){return n[t]}function H(){if(arguments.length===1){const n=arguments;return function(e){return f(e,n[0])}}return f(arguments[0],arguments[1])}var i=W;function I(){if(arguments.length===1){const n=arguments;return function(e){return i(e,n[0])}}return i(arguments[0],arguments[1])}function m(n,t){return n[t]}function J(){if(arguments.length===1){const n=arguments;return function(e){return m(e,n[0])}}return m(arguments[0],arguments[1])}function Q(n){return Object.entries(n)}var R=C;function V(n){return Object.keys(n)}var X=s;function g(n,t){return Object.assign({},n,t)}function a(){if(arguments.length===1){const n=arguments;return function(e){return g(e,n[0])}}return g(arguments[0],arguments[1])}function l(n,t,e){var r=a({},n);return r[t]=e,r}function c(){if(arguments.length===2){const n=arguments;return function(e){return l(e,n[0],n[1])}}return l(arguments[0],arguments[1],arguments[2])}function p(n,t,e){return c(n,t,e(W(n,t)))}function Y(){if(arguments.length===2){const n=arguments;return function(e){return p(e,n[0],n[1])}}return p(arguments[0],arguments[1],arguments[2])}function h(n,t,e){return c(n,t,e(n[t]))}function Z(){if(arguments.length===2){const n=arguments;return function(e){return h(e,n[0],n[1])}}return h(arguments[0],arguments[1],arguments[2])}function y(n,t){var e=a({},n);return L(e,t),e}function nn(){if(arguments.length===1){const n=arguments;return function(e){return y(e,n[0])}}return y(arguments[0],arguments[1])}function v(n,t){var e=a({},n);return M(t,function(r){L(e,r)}),e}function en(){if(arguments.length===1){const n=arguments;return function(e){return v(e,n[0])}}return v(arguments[0],arguments[1])}function _(n,t){return s(U(Object.keys(n),function(e){return[e,t(n[e])]}))}function tn(){if(arguments.length===1){const n=arguments;return function(e){return _(e,n[0])}}return _(arguments[0],arguments[1])}function d(n,t){return s(U(Object.keys(n),function(e){return[e,t(e,n[e])]}))}function rn(){if(arguments.length===1){const n=arguments;return function(e){return d(e,n[0])}}return d(arguments[0],arguments[1])}function E(n,t){return s(A(Object.keys(n),[],function(e,r){var u=n[r];return t(u)?D(e,[r,u]):e}))}function S(){if(arguments.length===1){const n=arguments;return function(e){return E(e,n[0])}}return E(arguments[0],arguments[1])}function K(n,t){return s(A(Object.keys(n),[],function(e,r){var u=n[r];return t(r,u)?D(e,[r,u]):e}))}function o(){if(arguments.length===1){const n=arguments;return function(e){return K(e,n[0])}}return K(arguments[0],arguments[1])}function b(n,t){return S(n,function(e){return!t(e)})}function un(){if(arguments.length===1){const n=arguments;return function(e){return b(e,n[0])}}return b(arguments[0],arguments[1])}function j(n,t){return o(n,function(e,r){return!t(e,r)})}function sn(){if(arguments.length===1){const n=arguments;return function(e){return j(e,n[0])}}return j(arguments[0],arguments[1])}function O(n,t){return o(n,function(e,r){return function(w,x){return x.includes(w)}(e,t)})}function an(){if(arguments.length===1){const n=arguments;return function(e){return O(e,n[0])}}return O(arguments[0],arguments[1])}function cn(n){return k(n,{})}function on(n){return!k(n,{})}var fn={__proto__:null,placeholder:F,makeEmpty:G,getUnsafe:H,get:I,prop:J,toPairs:Q,values:R,keys:V,fromPairs:X,merge:a,set:c,update:Y,updateUnsafe:Z,deleteKey:nn,deleteKeys:en,map:tn,mapWithKey:rn,filter:S,filterWithKey:o,reject:un,rejectWithKey:sn,selectKeys:an,isEmpty:cn,isNotEmpty:on};const mn=P(document),gn=$(document),_n=n=>t=>T.fromNullable(fn.getUnsafe(t,n)).toEither(new B(`La clé « ${String(n)} » n'a pas été trouvé dans l'objet.`)),dn=n=>N(gn(n),q),En=n=>N(mn(n),z);export{dn as a,En as b,mn as c,R as d,I as g,tn as m,_n as p,gn as r,fn as y};
|
||||
//# sourceMappingURL=utils.js.map
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -5,6 +5,7 @@ declare(strict_types=1);
|
|||
use Carbon_Fields\Carbon_Fields;
|
||||
use HaikuAtelier\StarterSite;
|
||||
use Timber\Timber;
|
||||
use function Env\env;
|
||||
|
||||
// Récupère les dépendances Composer
|
||||
require_once __DIR__ . "../../../../../vendor/autoload.php";
|
||||
|
|
@ -24,12 +25,14 @@ Timber::$dirname = ["views"];
|
|||
|
||||
// Charge les Scripts du thème (report d'erreurs)
|
||||
function charge_scripts_haiku_atelier_2024(): void {
|
||||
wp_enqueue_script_module(
|
||||
id: "haiku-atelier-2024-gaffe",
|
||||
deps: [],
|
||||
src: get_template_directory_uri() . "/assets/js/gaffe.js",
|
||||
version: filemtime(get_template_directory() . "/assets/js/gaffe.js"),
|
||||
);
|
||||
if (env("WP_ENV") == "production") {
|
||||
wp_enqueue_script_module(
|
||||
id: "haiku-atelier-2024-gaffe",
|
||||
deps: [],
|
||||
src: get_template_directory_uri() . "/assets/js/gaffe.js",
|
||||
version: filemtime(get_template_directory() . "/assets/js/gaffe.js"),
|
||||
);
|
||||
}
|
||||
wp_enqueue_script_module(
|
||||
id: "haiku-atelier-2024-bouton-panier",
|
||||
deps: [],
|
||||
|
|
@ -169,6 +172,12 @@ add_filter("big_image_size_threshold", "__return_false");
|
|||
add_filter("async_update_translation", "__return_false");
|
||||
add_filter("auto_update_translation", "__return_false");
|
||||
|
||||
// Block Patterns
|
||||
add_action("after_setup_theme", function () {
|
||||
remove_theme_support("core-block-patterns");
|
||||
});
|
||||
add_filter("should_load_remote_block_patterns", "__return_false");
|
||||
|
||||
/**
|
||||
* WooCommerce
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -122,10 +122,10 @@ $adresse_facturation = WC()->customer->get_billing();
|
|||
$pays_livraison = collect(WC()->countries->get_countries())->only($pays_acceptes)->toArray();
|
||||
$total_livraison = Number::format(floatval(WC()->cart->get_totals()["shipping_total"]), precision: 0);
|
||||
|
||||
echo "<pre>";
|
||||
// echo "<pre>";
|
||||
// print_r(WC()->countries->get_countries());
|
||||
// print_r($adresse_livraison);
|
||||
echo "</pre>";
|
||||
// echo "</pre>";
|
||||
|
||||
$contexte["email"] = $email;
|
||||
$contexte["adresse_livraison"] = $adresse_livraison;
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ use Roots\WPConfig\Config;
|
|||
use Timber\Site;
|
||||
use Timber\URLHelper;
|
||||
use function Crell\fp\pipe;
|
||||
use function Env\env;
|
||||
|
||||
class StarterSite extends Site {
|
||||
public function __construct() {
|
||||
|
|
@ -27,6 +28,8 @@ class StarterSite extends Site {
|
|||
public function ajoute_au_contexte_twig(array $context): array {
|
||||
$context["site"] = $this;
|
||||
|
||||
$context["environnement"] = env("WP_ENV");
|
||||
|
||||
// Récupère les liens des réseaux sociaux définis dans la personnalisation du thème
|
||||
$personnalisations_theme = get_theme_mods();
|
||||
$liens_reseaux_sociaux = [
|
||||
|
|
|
|||
|
|
@ -56,7 +56,6 @@ function dequeue_woocommerce_styles_scripts(): void {
|
|||
wp_dequeue_script("flexslider");
|
||||
wp_dequeue_script("jquery-blockui");
|
||||
wp_dequeue_script("jquery-placeholder");
|
||||
wp_dequeue_script("jqueryui");
|
||||
wp_dequeue_script("photoswipe-ui-default");
|
||||
wp_dequeue_script("prettyPhoto-init");
|
||||
wp_dequeue_script("prettyPhoto");
|
||||
|
|
@ -112,6 +111,18 @@ function retire_script_galerie(): void {
|
|||
remove_action("wp_head", "wc_gallery_noscript");
|
||||
}
|
||||
|
||||
function retire_merdes_wc() {
|
||||
// remove WC generator tag
|
||||
remove_filter("get_the_generator_html", "wc_generator_tag", 10, 2);
|
||||
remove_filter("get_the_generator_xhtml", "wc_generator_tag", 10, 2);
|
||||
// unload WC scripts
|
||||
remove_action("wp_enqueue_scripts", [WC_Frontend_Scripts::class, "load_scripts"]);
|
||||
remove_action("wp_print_scripts", [WC_Frontend_Scripts::class, "localize_printed_scripts"], 5);
|
||||
remove_action("wp_print_footer_scripts", [WC_Frontend_Scripts::class, "localize_printed_scripts"], 5);
|
||||
// remove "Show the gallery if JS is disabled"
|
||||
remove_action("wp_head", "wc_gallery_noscript");
|
||||
}
|
||||
|
||||
/**
|
||||
* Modifie la réponse REST pour un Produit en y ajoutant des balises <img> pour chaque image d'intérêt.
|
||||
*
|
||||
|
|
@ -199,4 +210,6 @@ add_action("after_setup_theme", "desactive_images_produit_woocommerce");
|
|||
add_action("enqueue_block_assets", "desactive_blocs_gutenberg_woocommerce");
|
||||
add_action("init", "desactive_attribution_commande_woocommerce");
|
||||
add_action("init", "retire_script_galerie");
|
||||
add_action("template_redirect", "retire_merdes_wc");
|
||||
add_action("wp_enqueue_scripts", "dequeue_woocommerce_styles_scripts");
|
||||
add_filter("woocommerce_enqueue_styles", "__return_empty_array");
|
||||
|
|
|
|||
|
|
@ -0,0 +1,53 @@
|
|||
/* * Styles pour un bandeau défilant. */
|
||||
|
||||
.bandeau {
|
||||
overflow: hidden;
|
||||
display: flex;
|
||||
column-gap: var(--espace-m);
|
||||
width: 100%;
|
||||
font-style: italic;
|
||||
color: var(--couleur-noir);
|
||||
text-transform: uppercase;
|
||||
white-space: nowrap;
|
||||
background: var(--couleur-jaune);
|
||||
border-top: 1px solid var(--couleur-noir);
|
||||
|
||||
&__conteneur {
|
||||
display: flex;
|
||||
flex-flow: row nowrap;
|
||||
column-gap: var(--espace-m);
|
||||
animation: marquee linear 15s infinite both;
|
||||
|
||||
*::selection {
|
||||
color: var(--couleur-jaune);
|
||||
background: var(--couleur-noir);
|
||||
}
|
||||
|
||||
p {
|
||||
display: inline-block;
|
||||
padding: var(--espace-s) 0;
|
||||
|
||||
strong {
|
||||
font-weight: 600;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@media (hover: hover) {
|
||||
&:hover {
|
||||
.bandeau__conteneur {
|
||||
animation-play-state: paused;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes marquee {
|
||||
from {
|
||||
transform: translateX(0%);
|
||||
}
|
||||
|
||||
to {
|
||||
transform: translateX(-100%);
|
||||
}
|
||||
}
|
||||
|
|
@ -14,6 +14,7 @@
|
|||
@use "base/elements/listes" as listes;
|
||||
|
||||
// 3. Régions
|
||||
@use "layouts/bandeau" as bandeau;
|
||||
@use "layouts/en-tete" as en-tete;
|
||||
@use "layouts/menu-categories-produits" as menu-categories-produits;
|
||||
@use "layouts/colonnes-photos" as colonnes-photos;
|
||||
|
|
|
|||
|
|
@ -1,16 +1,17 @@
|
|||
// Chemins et Routes pour l'API WordPress
|
||||
/** Chemins et Routes pour l'API WordPress/ */
|
||||
|
||||
export const CHEMIN_API_REST = "wp-json";
|
||||
export const ROUTE_API_PANIER = `/${CHEMIN_API_REST}/wc/store/cart`;
|
||||
export const ROUTE_API_AJOUTE_ARTICLE_PANIER = `/${CHEMIN_API_REST}/wc/store/cart/add-item`;
|
||||
export const ROUTE_API_APPLIQUE_COUPON = `/${CHEMIN_API_REST}/wc/store/cart/apply-coupon`;
|
||||
export const ROUTE_API_RETIRE_COUPON = `/${CHEMIN_API_REST}/wc/store/cart/remove-coupon`;
|
||||
export const ROUTE_API_COUPONS = `/${CHEMIN_API_REST}/wc/store/cart/coupons`;
|
||||
export const ROUTE_API_RETIRE_ARTICLE_PANIER = `/${CHEMIN_API_REST}/wc/store/cart/remove-item`;
|
||||
export const ROUTE_API_MAJ_ARTICLE_PANIER = `/${CHEMIN_API_REST}/wc/store/cart/update-item`;
|
||||
export const ROUTE_API_MAJ_CLIENT = `/${CHEMIN_API_REST}/wc/store/cart/update-customer`;
|
||||
export const ROUTE_API_PRODUITS = `/${CHEMIN_API_REST}/wc/store/products`;
|
||||
export const ROUTE_API_NOUVELLE_PRODUCTS = `/${CHEMIN_API_REST}/wc/v3/products`;
|
||||
export const ROUTE_API_NOUVELLE_COMMANDES = `/${CHEMIN_API_REST}/wc/v3/orders`;
|
||||
export const ROUTE_API_NOUVELLE_PRODUCTS = `/${CHEMIN_API_REST}/wc/v3/products`;
|
||||
export const ROUTE_API_PANIER = `/${CHEMIN_API_REST}/wc/store/cart`;
|
||||
export const ROUTE_API_PRODUITS = `/${CHEMIN_API_REST}/wc/store/products`;
|
||||
export const ROUTE_API_RETIRE_ARTICLE_PANIER = `/${CHEMIN_API_REST}/wc/store/cart/remove-item`;
|
||||
export const ROUTE_API_RETIRE_COUPON = `/${CHEMIN_API_REST}/wc/store/cart/remove-coupon`;
|
||||
|
||||
// En-têtes
|
||||
export const ENTETE_WC_NONCE = "Nonce";
|
||||
|
|
|
|||
|
|
@ -1,3 +1,5 @@
|
|||
/** Constantes liées aux Paniers WooCommerce. */
|
||||
|
||||
export const CATALOG_VISIBILITIES = {
|
||||
INVISIBLE: "invisible",
|
||||
VISIBLE: "visible",
|
||||
|
|
@ -1 +1,4 @@
|
|||
/** Constantes liées aux Erreurs WooCommerce. */
|
||||
|
||||
/** Code promo invalide. */
|
||||
export const ERREUR_CODE_PROMO_INVALIDE = "woocommerce_rest_cart_coupon_error";
|
||||
|
|
@ -1,3 +1,5 @@
|
|||
/** Constantes liées aux Commandes WooCommerce. */
|
||||
|
||||
export const ORDER_STATUSES = {
|
||||
AUTO_DRAFT: "auto-draft",
|
||||
CANCELLED: "cancelled",
|
||||
|
|
@ -1,3 +1,5 @@
|
|||
/** Constantes liées aux Produits WooCommerce. */
|
||||
|
||||
export const PRODUCTS_CONTEXTES = {
|
||||
EDIT: "edit",
|
||||
VIEW: "view",
|
||||
|
|
@ -1,11 +1,14 @@
|
|||
/** Constantes des Messages affichés aux Utilisateurs. */
|
||||
|
||||
// Générique
|
||||
export const ERREUR_GENERIQUE_RESEAU =
|
||||
"Something seems to be wrong with your network. Please verify your connection, refresh and try again?";
|
||||
export const ERREUR_GENERIQUE_SOUMISSION_ADRESSES =
|
||||
"Something went wrong while submitting the addresses. Please refresh your page and try again?";
|
||||
export const ERREUR_GENERIQUE_CREATION_COMMANDE =
|
||||
"Something went wrong while creating your order. Please refresh your page and try again?";
|
||||
|
||||
// Adresses
|
||||
export const ERREUR_ADRESSE_GENERIQUE = "Something is wrong in the information you filled. Please check and try again?";
|
||||
export const ERREUR_ADRESSE_MAUVAIS_CODE_POSTAL =
|
||||
"Please verify your postcode: it should not contain region/state indicators.";
|
||||
|
|
|
|||
|
|
@ -1,6 +1,4 @@
|
|||
/**
|
||||
* Constantes liées aux Messages passés par BroadcastChannel.
|
||||
*/
|
||||
/** Constantes liées aux Messages passés par BroadcastChannel. */
|
||||
|
||||
export const NOM_CANAL_BOUTON_PANIER = "bouton_panier";
|
||||
export const NOM_CANAL_CONTENU_PANIER = "contenu_panier";
|
||||
|
|
|
|||
|
|
@ -12,36 +12,6 @@ import {
|
|||
reporteEtLeveErreur,
|
||||
} from "./erreurs";
|
||||
|
||||
/**
|
||||
* @param parent L'Élément parent dans lequel l'Élément souhaité sera recherché.
|
||||
* @param selecteur Le sélecteur de l'Élément recherché.
|
||||
*
|
||||
* @throws Une Erreur si aucun Élément n'a été trouvé.
|
||||
* @returns Un Élément.
|
||||
*/
|
||||
export const safeQuerySelector: (parent: ElementParent) => (selecteur: string) => Element = parent => selecteur => {
|
||||
const element: Element | null = parent.querySelector(selecteur);
|
||||
|
||||
if (!element) throw new DOMException(ERREUR_SELECTEUR_INEXISTANT(selecteur));
|
||||
return element;
|
||||
};
|
||||
|
||||
/**
|
||||
* @param parent L'Élément parent dans lequel l'Élément souhaité sera recherché.
|
||||
* @param selecteur Le sélecteur de l'Élément recherché.
|
||||
*
|
||||
* @returns Un tableau pouvant être vide d'Éléments.
|
||||
*/
|
||||
export const safeQuerySelectorAll: (parent: ElementParent) => (selecteur: string) => Array<Element> =
|
||||
parent => selecteur => {
|
||||
const elements: Array<Element> = Array.from(parent.querySelectorAll(selecteur));
|
||||
|
||||
if (A.isEmpty(elements)) {
|
||||
throw new DOMException(ERREUR_SELECTEUR_INEXISTANT(selecteur));
|
||||
}
|
||||
return elements;
|
||||
};
|
||||
|
||||
export const recupereElementAvecSelecteur =
|
||||
(parent: ElementParent) => <E extends Element = Element>(selecteur: string): Either<SyntaxError, E> =>
|
||||
Either
|
||||
|
|
@ -64,21 +34,6 @@ export const recupereElementsAvecSelecteur =
|
|||
// Retourne une SyntaxError si le tableau est vide
|
||||
.chain((e: Array<E>) => A.isEmpty(e) ? Left(creeSyntaxError(ERREUR_SELECTEUR_INEXISTANT(selecteur))) : Right(e));
|
||||
|
||||
/**
|
||||
* @param element
|
||||
* @returns Un booléen
|
||||
*/
|
||||
export const estDansLaVue: (element: Element) => boolean = element => {
|
||||
const rect: DOMRect = element.getBoundingClientRect();
|
||||
|
||||
return (
|
||||
rect.top >= 0
|
||||
&& rect.left >= 0
|
||||
&& rect.top <= (window.innerHeight || document.documentElement.clientHeight)
|
||||
&& rect.right <= (window.innerWidth || document.documentElement.clientWidth)
|
||||
);
|
||||
};
|
||||
|
||||
export const recupereElementOuLeve = <E extends Element = Element>(elementOuErreur: Either<SyntaxError, E>): E =>
|
||||
elementOuErreur.caseOf({
|
||||
Left: reporteEtLeveErreur<SyntaxError>,
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
/** Types d'Erreurs liées aux adresses. */
|
||||
/** Types d'Erreurs liées aux adresses WooCommerce. */
|
||||
|
||||
export class ErreurAdresseInvalide extends Error {
|
||||
problemes: Record<string, string>;
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
/** Types d'Erreurs liés aux codes promos. */
|
||||
/** Types d'Erreurs liés aux codes promos WooCommerce. */
|
||||
|
||||
export class ErreurCodePromoInvalide extends Error {
|
||||
constructor(message: string) {
|
||||
|
|
|
|||
|
|
@ -1,42 +0,0 @@
|
|||
/**
|
||||
* Fonctions liées à la gestion du Panier.
|
||||
*/
|
||||
|
||||
import { type Either, EitherAsync, Left, Right } from "purify-ts";
|
||||
|
||||
import { ENTETE_WC_NONCE, ROUTE_API_PANIER } from "../constantes/api.ts";
|
||||
|
||||
/** États utiles pour les scripts. */
|
||||
interface Etats {
|
||||
/** Un nonce pour l'authentification de requêtes API */
|
||||
nonce: string;
|
||||
}
|
||||
|
||||
// @ts-expect-error -- États injectés par le modèle PHP
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- États injectés par le modèle PHP
|
||||
const ETATS: Etats = _etats;
|
||||
|
||||
const requeteRecuperePanier = (): Promise<Either<Error, Response>> =>
|
||||
fetch(
|
||||
ROUTE_API_PANIER,
|
||||
{
|
||||
credentials: "same-origin",
|
||||
headers: {
|
||||
Accept: "application/json",
|
||||
"Content-Type": "application/json",
|
||||
[ENTETE_WC_NONCE]: ETATS.nonce,
|
||||
},
|
||||
method: "GET",
|
||||
mode: "same-origin",
|
||||
signal: AbortSignal.timeout(5000),
|
||||
},
|
||||
)
|
||||
.then(Right)
|
||||
.catch(Left);
|
||||
|
||||
export const recuperePanier = EitherAsync
|
||||
.fromPromise(requeteRecuperePanier)
|
||||
.map(a => a.json())
|
||||
.ifLeft(e => {
|
||||
console.error(e);
|
||||
});
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
import * as v from "valibot";
|
||||
|
||||
import { CATALOG_VISIBILITIES } from "../../../constantes/cart.ts";
|
||||
import { CATALOG_VISIBILITIES } from "../../../constantes/api/cart.ts";
|
||||
import { WCStoreBillingAddressSchema, WCStoreShippingAddressSchema } from "./adresses.ts";
|
||||
import { WCStoreCartCouponsSchema } from "./cart-coupons.ts";
|
||||
import { WCStoreShippingRateSchema } from "./couts-livraison.ts";
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ import {
|
|||
RATINGS,
|
||||
STOCK_STATUSES,
|
||||
TAG_OPERATORS,
|
||||
} from "../../../constantes/products.ts";
|
||||
} from "../../../constantes/api/products.ts";
|
||||
|
||||
export const WCProductsArgsSchema = v.object({
|
||||
// Date ISO8601
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
import * as v from "valibot";
|
||||
|
||||
import { ORDER_STATUSES, TAX_STATUSES } from "../../../../constantes/orders";
|
||||
import { ORDER_STATUSES, TAX_STATUSES } from "../../../../constantes/api/orders";
|
||||
import { WCStoreBillingAddressSchema, WCStoreShippingAddressSchema } from "../adresses";
|
||||
|
||||
export const WCV3OrdersCouponLineMetaDataSchema = v.object({
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ import {
|
|||
STOCK_STATUSES,
|
||||
TAG_OPERATORS,
|
||||
TAX_STATUTES,
|
||||
} from "../../../../constantes/products.ts";
|
||||
} from "../../../../constantes/api/products.ts";
|
||||
|
||||
export const WCV3ProductsArgsSchema = v.object({
|
||||
// Date ISO8601
|
||||
|
|
|
|||
|
|
@ -1,6 +1,4 @@
|
|||
/**
|
||||
* Schémas des Messages passés avec BroadcastChannel.
|
||||
*/
|
||||
/** Schémas des Messages passés avec BroadcastChannel. */
|
||||
|
||||
import * as v from "valibot";
|
||||
|
||||
|
|
|
|||
|
|
@ -1,180 +0,0 @@
|
|||
import type { Errors, Type } from "io-ts";
|
||||
|
||||
import { type Either, Left, Right } from "fp-ts/lib/Either";
|
||||
import { reporter } from "io-ts-reporters";
|
||||
|
||||
export async function fetchJson<T, O, I>(
|
||||
url: string,
|
||||
validator: Type<T, O, I>,
|
||||
init?: RequestInit,
|
||||
): Promise<Either<Error, T>> {
|
||||
try {
|
||||
const response = await fetch(url, init);
|
||||
const json: I = await response.json();
|
||||
const result = validator.decode(json);
|
||||
return result.fold<Either<Error, T>>(
|
||||
(errors: Errors) => {
|
||||
const messages = reporter(result);
|
||||
return new Left<Error, T>(new Error(messages.join("\n")));
|
||||
},
|
||||
(value: T) => {
|
||||
return new Right<Error, T>(value);
|
||||
},
|
||||
);
|
||||
} catch (err) {
|
||||
return Promise.resolve(new Left<Error, T>(err));
|
||||
}
|
||||
}
|
||||
|
||||
// the promise is never rejected
|
||||
// we handle the error with Either
|
||||
const readMailFromCli = async (): Promise<
|
||||
Either<{ errorReason: string }, string>
|
||||
> => {
|
||||
const rl = readline.createInterface({ input, output });
|
||||
return rl
|
||||
.question("Please enter your email \n")
|
||||
.then(Right)
|
||||
.catch(error => Left({ errorReason: error.message }))
|
||||
.finally(() => {
|
||||
rl.close();
|
||||
});
|
||||
};
|
||||
|
||||
const validateEmail = (
|
||||
email: string,
|
||||
): Either<{ errorReason: string }, Email> => {
|
||||
if (!email.includes("@")) {
|
||||
return Left({ errorReason: "The email does not contain an @ character" });
|
||||
}
|
||||
|
||||
if (email.length < 3) {
|
||||
return Left({ errorReason: "The email be at least 3 characters long" });
|
||||
}
|
||||
|
||||
return Right(email);
|
||||
};
|
||||
|
||||
const getSessionIdFromEmail = (
|
||||
email: Email,
|
||||
): Promise<Either<{ errorReason: string }, SessionId>> => {
|
||||
// let’s simulate an API call
|
||||
return Promise.resolve(Right("12345"));
|
||||
};
|
||||
|
||||
const printInformations = ({
|
||||
email,
|
||||
sessionId,
|
||||
}: {
|
||||
email: Email;
|
||||
sessionId: SessionId;
|
||||
}): void => {
|
||||
console.log(`Email: ${email}; SessionId: ${sessionId}`);
|
||||
};
|
||||
|
||||
const main = async (): Promise<void> => {
|
||||
const eitherEmailFromInput = await readMailFromCli(); // Returns an Either type
|
||||
|
||||
const eitherEmail = eitherEmailFromInput.map(validateEmail); // map over the either to validate the email
|
||||
|
||||
eitherEmail.caseOf({
|
||||
Left: error => {
|
||||
console.log(error.errorReason);
|
||||
}, // email is invalid
|
||||
Right: async email => {
|
||||
const eitherSessionId = await getSessionIdFromEmail(email);
|
||||
eitherSessionId.caseOf({
|
||||
Left: error => {
|
||||
console.log(error.errorReason);
|
||||
}, // getting the sessionId failed
|
||||
Right: sessionId => {
|
||||
printInformations({ email, sessionId });
|
||||
},
|
||||
});
|
||||
},
|
||||
});
|
||||
};
|
||||
|
||||
const flow = EitherAsync<{ errorReason: string }, void>(
|
||||
async ({ fromPromise, liftEither }) => {
|
||||
const emailFromInput = await fromPromise(readMailFromCli());
|
||||
const email = await liftEither(validateEmail(emailFromInput));
|
||||
const sessionId = await fromPromise(getSessionIdFromEmail(email));
|
||||
printInformations({ email, sessionId });
|
||||
},
|
||||
);
|
||||
|
||||
const main2 = async () => {
|
||||
const result = await flow.run();
|
||||
result.ifLeft(error => {
|
||||
console.log(error.errorReason);
|
||||
});
|
||||
};
|
||||
|
||||
main();
|
||||
|
||||
/* setTimeout(() => {
|
||||
console.debug("Suppression du Panier");
|
||||
fetch(
|
||||
"/wp-json/wc/store/cart/items",
|
||||
{
|
||||
credentials: "same-origin",
|
||||
headers: {
|
||||
"Accept": "application/json",
|
||||
"Content-Type": "application/json",
|
||||
"X-WC-Store-API-Nonce": ETATS.nonce,
|
||||
},
|
||||
method: "DELETE",
|
||||
mode: "same-origin",
|
||||
signal: AbortSignal.timeout(5000),
|
||||
},
|
||||
)
|
||||
.then(a => a.json())
|
||||
.then(a => console.debug(a))
|
||||
.catch(b => console.error(b));
|
||||
}, 5000);
|
||||
|
||||
setTimeout(() => {
|
||||
console.debug("Nouveau Panier");
|
||||
fetch(
|
||||
"/wp-json/wc/store/cart",
|
||||
{
|
||||
credentials: "same-origin",
|
||||
headers: {
|
||||
"Accept": "application/json",
|
||||
"Content-Type": "application/json",
|
||||
"X-WC-Store-API-Nonce": ETATS.nonce,
|
||||
},
|
||||
method: "GET",
|
||||
mode: "same-origin",
|
||||
signal: AbortSignal.timeout(5000),
|
||||
},
|
||||
)
|
||||
.then(a => a.json())
|
||||
.then(a => console.debug(a))
|
||||
.catch(b => console.error(b));
|
||||
}, 7000); */
|
||||
|
||||
/* Fonctions utilitaires */
|
||||
|
||||
// const creeObservateurIntersection = (element: Element, options: IntersectionObserverInit, classe = "anime") => {
|
||||
// const observateur = new IntersectionObserver(entrees => {
|
||||
// for (const entree of entrees) {
|
||||
// const cible = entree.target;
|
||||
|
||||
// /* Enclenchement de l'animation */
|
||||
// if (entree.isIntersecting || estDansLaVue(cible)) {
|
||||
// cible.classList.add(classe);
|
||||
// return;
|
||||
// }
|
||||
|
||||
// /* Empêche que le cycle ne se répète */
|
||||
// if (cible.classList.contains(classe)) {
|
||||
// observateur.unobserve(cible);
|
||||
// }
|
||||
// }
|
||||
// }, options || {});
|
||||
|
||||
// observateur.observe(element);
|
||||
// return observateur;
|
||||
// };
|
||||
|
|
@ -73,7 +73,6 @@ const E = {
|
|||
|
||||
export const mepCanalRevalidationLivraison = (): void => {
|
||||
new BroadcastChannel(NOM_CANAL_REVALIDATION_LIVRAISON).addEventListener("message", () => {
|
||||
console.debug("wow");
|
||||
E.BOUTON_ACTIONS_FORMULAIRE.removeAttribute(ATTRIBUT_LIVRAISON_VALIDEE);
|
||||
E.BOUTON_ACTIONS_FORMULAIRE.textContent = "Submit the addresses";
|
||||
});
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ import type { WCStoreCartRemoveCouponArgs } from "./lib/types/api/cart-remove-co
|
|||
import type { ReponseSimplifiee } from "./lib/types/reseau";
|
||||
|
||||
import { ROUTE_API_APPLIQUE_COUPON, ROUTE_API_RETIRE_COUPON } from "./constantes/api";
|
||||
import { ERREUR_CODE_PROMO_INVALIDE } from "./constantes/api/erreurs";
|
||||
import {
|
||||
ATTRIBUT_CHARGEMENT,
|
||||
ATTRIBUT_CODE_PROMO_PRESENT,
|
||||
|
|
@ -26,7 +27,6 @@ import {
|
|||
SELECTEUR_TOTAL_REDUCTION,
|
||||
SELECTEUR_TOTAL_REDUCTION_VALEUR,
|
||||
} from "./constantes/dom";
|
||||
import { ERREUR_CODE_PROMO_INVALIDE } from "./constantes/erreurs";
|
||||
import { NOM_CANAL_REVALIDATION_LIVRAISON } from "./constantes/messages";
|
||||
import { lanceAnimationCycleLoading } from "./lib/animations";
|
||||
import { accorderCibleASelecteur } from "./lib/dom";
|
||||
|
|
|
|||
|
|
@ -0,0 +1,270 @@
|
|||
/** Scripts pour les Produits de la Page Panier. */
|
||||
|
||||
import { pipe } from "@mobily/ts-belt";
|
||||
import { forEach as arrayForEach, map as arrayMap } from "@mobily/ts-belt/Array";
|
||||
import { EitherAsync, Maybe } from "purify-ts";
|
||||
import { match, P } from "ts-pattern";
|
||||
|
||||
import type { WCStoreCart } from "./lib/types/api/cart";
|
||||
import type { WCStoreCartRemoveItemArgs } from "./lib/types/api/cart-remove-item";
|
||||
import type { WCStoreCartUpdateItemArgs } from "./lib/types/api/cart-update-item";
|
||||
import type { ElementParent } from "./lib/types/dom";
|
||||
|
||||
import { ROUTE_API_MAJ_ARTICLE_PANIER, ROUTE_API_RETIRE_ARTICLE_PANIER } from "./constantes/api";
|
||||
import {
|
||||
ATTRIBUT_CLE_PANIER,
|
||||
ATTRIBUT_DESACTIVE,
|
||||
SELECTEUR_BOUTON_ADDITION_QUANTITE,
|
||||
SELECTEUR_BOUTON_SOUSTRACTION_QUANTITE,
|
||||
SELECTEUR_BOUTON_SUPPRESSION_PANIER,
|
||||
SELECTEUR_CHAMP_QUANTITE_LIGNE_PANIER,
|
||||
SELECTEUR_ENTREES_PANIER,
|
||||
} from "./constantes/dom";
|
||||
import { NOM_CANAL_REVALIDATION_LIVRAISON } from "./constantes/messages";
|
||||
import { recupereElementAvecSelecteur, recupereElementOuLeve } from "./lib/dom";
|
||||
import { BadRequestError, ServerError } from "./lib/erreurs";
|
||||
import { emetMessageMajBoutonPanier, emetMessageMajContenuPanier, emetUniqueMessageCanal } from "./lib/messages";
|
||||
import { diviseParCent } from "./lib/nombres";
|
||||
import { creeReponseSimplifiee, eitherAsyncFetch, postBackend } from "./lib/reseau";
|
||||
import { WCStoreCartSchema } from "./lib/schemas/api/cart";
|
||||
import { WCStoreCartRemoveItemArgsSchema } from "./lib/schemas/api/cart-remove-item";
|
||||
import { WCStoreCartUpdateItemArgsSchema } from "./lib/schemas/api/cart-update-item";
|
||||
import { recupereElementsDocumentEither } from "./lib/utils";
|
||||
import { eitherParse } from "./lib/validation";
|
||||
|
||||
/** États utiles pour les scripts de la page. */
|
||||
type EtatsPage = {
|
||||
authString: string;
|
||||
/** Un nonce pour l'authentification de requêtes API vers le backend WooCommerce. */
|
||||
nonce: string;
|
||||
};
|
||||
// @ts-expect-error -- États injectés par le modèle PHP
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- États injectés par le modèle PHP
|
||||
const ETATS_PAGE: EtatsPage = _etats;
|
||||
|
||||
type ElementsEntreePanier = {
|
||||
boutonAddition: HTMLButtonElement;
|
||||
boutonSoustraction: HTMLButtonElement;
|
||||
boutonSuppression: HTMLButtonElement;
|
||||
champQuantite: HTMLInputElement;
|
||||
};
|
||||
|
||||
const E = {
|
||||
ENTREES_PANIER: recupereElementsDocumentEither<HTMLElement>(SELECTEUR_ENTREES_PANIER),
|
||||
};
|
||||
|
||||
// TODO: Tout ça est bien compliqué
|
||||
const recupereEleDansEntreeOuLeve = (entree: ElementParent) => <E extends HTMLElement>(selecteur: string) =>
|
||||
pipe(recupereElementAvecSelecteur(entree)<E>(selecteur), recupereElementOuLeve);
|
||||
|
||||
const recupereElementsEntreePanier = (entree: HTMLElement): ElementsEntreePanier => {
|
||||
const recupereElementDansEntree = recupereEleDansEntreeOuLeve(entree);
|
||||
return {
|
||||
boutonAddition: recupereElementDansEntree<HTMLButtonElement>(SELECTEUR_BOUTON_ADDITION_QUANTITE),
|
||||
boutonSoustraction: recupereElementDansEntree<HTMLButtonElement>(SELECTEUR_BOUTON_SOUSTRACTION_QUANTITE),
|
||||
boutonSuppression: recupereElementDansEntree<HTMLButtonElement>(SELECTEUR_BOUTON_SUPPRESSION_PANIER),
|
||||
champQuantite: recupereElementDansEntree<HTMLInputElement>(SELECTEUR_CHAMP_QUANTITE_LIGNE_PANIER),
|
||||
};
|
||||
};
|
||||
|
||||
export const majActivationBoutons = (activation: boolean) => (entrees: ReadonlyArray<ElementsEntreePanier>): void =>
|
||||
arrayForEach(entrees, entree => {
|
||||
if (activation) {
|
||||
// Active les Boutons
|
||||
Number(entree.champQuantite.value) === 1
|
||||
? entree.boutonSoustraction.setAttribute(ATTRIBUT_DESACTIVE, "")
|
||||
: entree.boutonSoustraction.removeAttribute(ATTRIBUT_DESACTIVE);
|
||||
entree.boutonAddition.removeAttribute(ATTRIBUT_DESACTIVE);
|
||||
entree.boutonSuppression.removeAttribute(ATTRIBUT_DESACTIVE);
|
||||
entree.boutonSuppression.textContent = "Remove";
|
||||
} else {
|
||||
// Désactive les Boutons
|
||||
entree.boutonSoustraction.setAttribute(ATTRIBUT_DESACTIVE, "");
|
||||
entree.boutonAddition.setAttribute(ATTRIBUT_DESACTIVE, "");
|
||||
entree.boutonSuppression.setAttribute(ATTRIBUT_DESACTIVE, "");
|
||||
entree.boutonSuppression.textContent = "Loading";
|
||||
}
|
||||
});
|
||||
|
||||
export const initialiseActionsEntreesPanier = (): void => {
|
||||
E.ENTREES_PANIER.ifRight((entrees: Array<HTMLElement>) =>
|
||||
arrayForEach(entrees, (entree: HTMLElement): void => {
|
||||
/** Retire l'entrée du DOM si la clé Panier n'existe pas et arrête précocement */
|
||||
const clePanier: string = Maybe
|
||||
.fromNullable(entree.getAttribute(ATTRIBUT_CLE_PANIER))
|
||||
.ifNothing(() => {
|
||||
entree.remove();
|
||||
})
|
||||
.orDefault("CLE_PANIER_INEXISTANTE");
|
||||
/** */
|
||||
const E: ElementsEntreePanier = recupereElementsEntreePanier(entree);
|
||||
|
||||
entree.addEventListener("click", (evenement: Event) => {
|
||||
// Délégation d'Événements
|
||||
match(evenement.target)
|
||||
.with(P.nullish, () => console.error(evenement.target))
|
||||
// Bouton d'addition
|
||||
.when((cible: EventTarget) => (cible as HTMLElement).matches(SELECTEUR_BOUTON_ADDITION_QUANTITE), () => {
|
||||
Maybe
|
||||
// Nécessaire pour que l'on ait une valeur à incrémenter
|
||||
.fromNullable(E.champQuantite.valueAsNumber)
|
||||
.ifJust((valeur: number) => {
|
||||
// Réalise la requête et traite sa réponse
|
||||
void EitherAsync
|
||||
// 1. Valide les Arguments de la Requête
|
||||
.liftEither(eitherParse({ key: clePanier, quantity: valeur + 1 }, WCStoreCartUpdateItemArgsSchema))
|
||||
// 2. Exécute un Effet pour empêcher les requêtes concurrentes
|
||||
.ifRight(() => pipe(entrees, arrayMap(recupereElementsEntreePanier), majActivationBoutons(false)))
|
||||
// 3. Exécute la requête via fetch sous forme d'EitherAsync
|
||||
.chain((args: WCStoreCartUpdateItemArgs) =>
|
||||
eitherAsyncFetch(postBackend({
|
||||
corps: JSON.stringify(args),
|
||||
nonce: ETATS_PAGE.nonce,
|
||||
route: ROUTE_API_MAJ_ARTICLE_PANIER,
|
||||
}))
|
||||
)
|
||||
// 4. Traite les cas d'Erreurs et récupère le Corps de la Réponse
|
||||
.chain((reponse: Response) =>
|
||||
EitherAsync<BadRequestError | Error | ServerError, unknown>(async ({ throwE }) =>
|
||||
// Simplifie les données à matcher
|
||||
match(await creeReponseSimplifiee(reponse))
|
||||
.with({ status: 500 }, () => throwE(new ServerError("500 Server Error")))
|
||||
.with({ status: 400 }, () => throwE(new BadRequestError("400 Bad Request Error")))
|
||||
.with({ status: 200 }, r => r.body)
|
||||
.otherwise(erreur => throwE(new Error(`Erreur inconnue ${String(erreur.status)}`)))
|
||||
)
|
||||
)
|
||||
// 5. Vérifie le Schéma de la Réponse
|
||||
.chain((corps: unknown) => EitherAsync.liftEither(eitherParse(corps, WCStoreCartSchema)))
|
||||
.ifRight((panier: WCStoreCart) => {
|
||||
// Émet un Message avec le nouveau nombre de Produits dans le Panier
|
||||
emetMessageMajBoutonPanier({ quantiteProduits: panier.items_count });
|
||||
// Émet un Message avec le nouveau contenu du Panier
|
||||
emetMessageMajContenuPanier({
|
||||
produits: panier.items,
|
||||
sousTotalProduits: diviseParCent(panier.totals.total_items),
|
||||
sousTotalReduction: diviseParCent(panier.totals.total_discount),
|
||||
totalPanier: diviseParCent(panier.totals.total_price),
|
||||
});
|
||||
// Émet un Message pour réinitialiser la validation de la livraison
|
||||
emetUniqueMessageCanal(NOM_CANAL_REVALIDATION_LIVRAISON, true);
|
||||
|
||||
// Réactive les Boutons
|
||||
// pipe(entrees, arrayMap(recupereElementsEntreePanier), majActivationBoutons(true));
|
||||
})
|
||||
.run();
|
||||
});
|
||||
})
|
||||
// Bouton de soustraction
|
||||
.when((cible: EventTarget) => (cible as HTMLElement).matches(SELECTEUR_BOUTON_SOUSTRACTION_QUANTITE), () => {
|
||||
Maybe
|
||||
// Nécessaire pour que l'on ait une valeur à incrémenter
|
||||
.fromNullable(E.champQuantite.valueAsNumber)
|
||||
.filter(valeur => valeur > 1)
|
||||
.ifJust((valeur: number) => {
|
||||
// Réalise la requête et traite sa réponse
|
||||
void EitherAsync
|
||||
// 1. Valide les Arguments de la Requête
|
||||
.liftEither(eitherParse({ key: clePanier, quantity: valeur - 1 }, WCStoreCartUpdateItemArgsSchema))
|
||||
// 2. Exécute un Effet pour empêcher les requêtes concurrentes
|
||||
.ifRight(() => pipe(entrees, arrayMap(recupereElementsEntreePanier), majActivationBoutons(false)))
|
||||
// 3. Exécute la requête via fetch sous forme d'EitherAsync
|
||||
.chain((args: WCStoreCartUpdateItemArgs) =>
|
||||
eitherAsyncFetch(postBackend({
|
||||
corps: JSON.stringify(args),
|
||||
nonce: ETATS_PAGE.nonce,
|
||||
route: ROUTE_API_MAJ_ARTICLE_PANIER,
|
||||
}))
|
||||
)
|
||||
// 4. Traite les cas d'Erreurs et récupère le Corps de la Réponse
|
||||
.chain((reponse: Response) =>
|
||||
EitherAsync<BadRequestError | Error | ServerError, unknown>(async ({ throwE }) =>
|
||||
// Simplifie les données à matcher
|
||||
match(await creeReponseSimplifiee(reponse))
|
||||
.with({ status: 500 }, () => throwE(new ServerError("500 Server Error")))
|
||||
.with({ status: 400 }, () => throwE(new BadRequestError("400 Bad Request Error")))
|
||||
.with({ status: 200 }, r => r.body)
|
||||
.otherwise(erreur => throwE(new Error(`Erreur inconnue ${String(erreur.status)}`)))
|
||||
)
|
||||
)
|
||||
// 5. Vérifie le Schéma de la Réponse
|
||||
.chain((corps: unknown) => EitherAsync.liftEither(eitherParse(corps, WCStoreCartSchema)))
|
||||
.ifRight((panier: WCStoreCart) => {
|
||||
// Émet un Message avec le nouveau nombre de Produits dans le Panier
|
||||
emetMessageMajBoutonPanier({ quantiteProduits: panier.items_count });
|
||||
// Émet un Message avec le nouveau contenu du Panier
|
||||
emetMessageMajContenuPanier({
|
||||
produits: panier.items,
|
||||
sousTotalProduits: diviseParCent(panier.totals.total_items),
|
||||
sousTotalReduction: diviseParCent(panier.totals.total_discount),
|
||||
totalPanier: diviseParCent(panier.totals.total_price),
|
||||
});
|
||||
// Émet un Message pour réinitialiser la validation de la livraison
|
||||
emetUniqueMessageCanal(NOM_CANAL_REVALIDATION_LIVRAISON, true);
|
||||
|
||||
// Réactive les Boutons
|
||||
// pipe(entrees, arrayMap(recupereElementsEntreePanier), majActivationBoutons(true));
|
||||
})
|
||||
.run();
|
||||
});
|
||||
})
|
||||
// Bouton de suppression
|
||||
.when((cible: EventTarget) => (cible as HTMLElement).matches(SELECTEUR_BOUTON_SUPPRESSION_PANIER), () => {
|
||||
Maybe
|
||||
// TODO: Pourquoi ?
|
||||
.fromNullable(E.champQuantite.valueAsNumber)
|
||||
.ifJust(() => {
|
||||
// Réalise la requête et traite sa réponse
|
||||
void EitherAsync
|
||||
// 1. Valide les Arguments de la Requête
|
||||
.liftEither(eitherParse({ key: clePanier }, WCStoreCartRemoveItemArgsSchema))
|
||||
// 2. Exécute un Effet pour empêcher les requêtes concurrentes
|
||||
.ifRight(() => pipe(entrees, arrayMap(recupereElementsEntreePanier), majActivationBoutons(false)))
|
||||
// 3. Exécute la requête via fetch sous forme d'EitherAsync
|
||||
.chain((args: WCStoreCartRemoveItemArgs) =>
|
||||
eitherAsyncFetch(postBackend({
|
||||
corps: JSON.stringify(args),
|
||||
nonce: ETATS_PAGE.nonce,
|
||||
route: ROUTE_API_RETIRE_ARTICLE_PANIER,
|
||||
}))
|
||||
)
|
||||
// 4. Traite les cas d'Erreurs et récupère le Corps de la Réponse
|
||||
.chain((reponse: Response) =>
|
||||
EitherAsync<BadRequestError | Error | ServerError, unknown>(async ({ throwE }) =>
|
||||
// Simplifie les données à matcher
|
||||
match(await creeReponseSimplifiee(reponse))
|
||||
.with({ status: 500 }, () => throwE(new ServerError("500 Server Error")))
|
||||
.with({ status: 400 }, () => throwE(new BadRequestError("400 Bad Request Error")))
|
||||
.with({ status: 200 }, r => r.body)
|
||||
.otherwise(erreur => throwE(new Error(`Erreur inconnue ${String(erreur.status)}`)))
|
||||
)
|
||||
)
|
||||
// 5. Vérifie le Schéma de la Réponse
|
||||
.chain((corps: unknown) => EitherAsync.liftEither(eitherParse(corps, WCStoreCartSchema)))
|
||||
.ifRight((panier: WCStoreCart) => {
|
||||
// Émet un Message avec le nouveau nombre de Produits dans le Panier
|
||||
emetMessageMajBoutonPanier({ quantiteProduits: panier.items_count });
|
||||
// Émet un Message avec le nouveau contenu du Panier
|
||||
emetMessageMajContenuPanier({
|
||||
produits: panier.items,
|
||||
sousTotalProduits: diviseParCent(panier.totals.total_items),
|
||||
sousTotalReduction: diviseParCent(panier.totals.total_discount),
|
||||
totalPanier: diviseParCent(panier.totals.total_price),
|
||||
});
|
||||
// Émet un Message pour réinitialiser la validation de la livraison
|
||||
emetUniqueMessageCanal(NOM_CANAL_REVALIDATION_LIVRAISON, true);
|
||||
|
||||
// Retire l'entrée du Panier du DOM
|
||||
entree.remove();
|
||||
|
||||
// Réactive les Boutons
|
||||
// pipe(entrees, arrayMap(recupereElementsEntreePanier), majActivationBoutons(true));
|
||||
})
|
||||
.run();
|
||||
});
|
||||
})
|
||||
.run();
|
||||
});
|
||||
})
|
||||
);
|
||||
};
|
||||
|
|
@ -1,14 +1,12 @@
|
|||
import { D, F, pipe } from "@mobily/ts-belt";
|
||||
import { D, pipe } from "@mobily/ts-belt";
|
||||
import { forEach as arrayForEach } from "@mobily/ts-belt/Array";
|
||||
import { Either, Maybe } from "purify-ts";
|
||||
import { parse, type ValiError } from "valibot";
|
||||
import { type ValiError } from "valibot";
|
||||
|
||||
import type { MessageMajContenuPanierSchema } from "./lib/schemas/messages.ts";
|
||||
import type { WCStoreCart, WCStoreCartItem } from "./lib/types/api/cart";
|
||||
import type { WCStoreCartRemoveItemArgs } from "./lib/types/api/cart-remove-item";
|
||||
import type { WCStoreCartUpdateItemArgs } from "./lib/types/api/cart-update-item";
|
||||
import type { WCStoreCartItem } from "./lib/types/api/cart";
|
||||
import type { MessageMajBoutonPanierDonnees, MessageMajContenuPanierDonnees } from "./lib/types/messages";
|
||||
|
||||
import { ROUTE_API_MAJ_ARTICLE_PANIER, ROUTE_API_RETIRE_ARTICLE_PANIER } from "./constantes/api.ts";
|
||||
import {
|
||||
ATTRIBUT_CLE_PANIER,
|
||||
ATTRIBUT_CONTIENT_ARTICLES,
|
||||
|
|
@ -27,26 +25,11 @@ import {
|
|||
SELECTEUR_TOTAL_PANIER,
|
||||
SELECTEUR_TOTAL_REDUCTION_VALEUR,
|
||||
} from "./constantes/dom.ts";
|
||||
import {
|
||||
NOM_CANAL_BOUTON_PANIER,
|
||||
NOM_CANAL_CONTENU_PANIER,
|
||||
NOM_CANAL_REVALIDATION_LIVRAISON,
|
||||
} from "./constantes/messages.ts";
|
||||
import { NOM_CANAL_BOUTON_PANIER, NOM_CANAL_CONTENU_PANIER } from "./constantes/messages.ts";
|
||||
import { recupereElementAvecSelecteur, recupereElementOuLeve, recupereElementsAvecSelecteur } from "./lib/dom.ts";
|
||||
import { type CleNonTrouveError, leveServerError, reporteErreur } from "./lib/erreurs.ts";
|
||||
import { estError, estReponse500 } from "./lib/gardes.ts";
|
||||
import {
|
||||
emetMessageMajBoutonPanier,
|
||||
emetMessageMajContenuPanier,
|
||||
emetUniqueMessageCanal,
|
||||
valideMessageMajBoutonPanier,
|
||||
valideMessageMajContenuPanier,
|
||||
} from "./lib/messages.ts";
|
||||
import { type CleNonTrouveError, reporteErreur } from "./lib/erreurs.ts";
|
||||
import { valideMessageMajBoutonPanier, valideMessageMajContenuPanier } from "./lib/messages.ts";
|
||||
import { arrondisADeuxDecimales, diviseParCent, formateEnEuros, inverseNombre } from "./lib/nombres.ts";
|
||||
import { postBackend, traiteReponseBackendWCSelonCodesHTTP } from "./lib/reseau.ts";
|
||||
import { WCStoreCartRemoveItemArgsSchema } from "./lib/schemas/api/cart-remove-item.ts";
|
||||
import { WCStoreCartUpdateItemArgsSchema } from "./lib/schemas/api/cart-update-item.ts";
|
||||
import { WCStoreCartSchema } from "./lib/schemas/api/cart.ts";
|
||||
import { propEither, recupereElementsDocumentEither, recupereEleOuLeve } from "./lib/utils.ts";
|
||||
import {
|
||||
initialiseBoutonCalculLivraison,
|
||||
|
|
@ -55,6 +38,7 @@ import {
|
|||
revalideLorsMajFormulaires,
|
||||
} from "./scripts-page-panier-adresses.ts";
|
||||
import { initialiseElementsCodePromo } from "./scripts-page-panier-code-promo.ts";
|
||||
import { initialiseActionsEntreesPanier } from "./scripts-page-panier-panneau-produits.ts";
|
||||
|
||||
type ElementsEntreePanier = {
|
||||
boutonAddition: HTMLButtonElement;
|
||||
|
|
@ -99,23 +83,7 @@ const recupereElementDansEntreePanierOuLeve =
|
|||
(entree: HTMLElement) => <E extends Element = Element>(selecteur: string) =>
|
||||
pipe(recupereElementAvecSelecteur(entree)<E>(selecteur), recupereElementOuLeve);
|
||||
|
||||
const desactiveBoutonsEntreesPanier = (entrees: Array<HTMLElement>): void =>
|
||||
entrees.forEach((entree: HTMLElement) => {
|
||||
// Fonction utilitaire
|
||||
const recupereElementDansEntree = recupereElementDansEntreePanierOuLeve(entree);
|
||||
|
||||
const elements: ElementsEntreePanier = {
|
||||
boutonAddition: recupereElementDansEntree<HTMLButtonElement>(SELECTEUR_BOUTON_ADDITION_QUANTITE),
|
||||
boutonSoustraction: recupereElementDansEntree<HTMLButtonElement>(SELECTEUR_BOUTON_SOUSTRACTION_QUANTITE),
|
||||
boutonSuppression: recupereElementDansEntree<HTMLButtonElement>(SELECTEUR_BOUTON_SUPPRESSION_PANIER),
|
||||
};
|
||||
|
||||
elements.boutonSoustraction.setAttribute(ATTRIBUT_DESACTIVE, "");
|
||||
elements.boutonAddition.setAttribute(ATTRIBUT_DESACTIVE, "");
|
||||
elements.boutonSuppression.setAttribute(ATTRIBUT_DESACTIVE, "");
|
||||
elements.boutonSuppression.textContent = "Loading...";
|
||||
});
|
||||
|
||||
// NOTE: Nécessaire pour éviter une condition de course entre la réussite de la requête et l'émission effective du Message
|
||||
const majEtatsActivationBoutons = (entrees: Array<HTMLElement>): void =>
|
||||
entrees.forEach((entree: HTMLElement) => {
|
||||
// Fonction utilitaire
|
||||
|
|
@ -136,205 +104,6 @@ const majEtatsActivationBoutons = (entrees: Array<HTMLElement>): void =>
|
|||
elements.boutonSuppression.textContent = "Remove";
|
||||
});
|
||||
|
||||
const initialiseMajEntreesPanier = (): void => {
|
||||
ENTREES_PANIER_EITHER.ifRight((entrees: Array<HTMLElement>) => {
|
||||
entrees.forEach((entree: HTMLElement) => {
|
||||
const recupereElementDansEntree = recupereElementDansEntreePanierOuLeve(entree);
|
||||
|
||||
// Retire l'entrée du DOM si la clé Panier n'existe pas et arrête précocement
|
||||
const clePanier: string = Maybe.fromNullable(entree.getAttribute(ATTRIBUT_CLE_PANIER))
|
||||
.ifNothing(() => {
|
||||
entree.remove();
|
||||
return;
|
||||
})
|
||||
.orDefault("CLE_PANIER_INEXISTANTE");
|
||||
|
||||
// Récupère les attributs et éléments utilisés dans le script
|
||||
const boutonSoustraction = recupereElementDansEntree<HTMLButtonElement>(SELECTEUR_BOUTON_SOUSTRACTION_QUANTITE);
|
||||
const champQuantite = recupereElementDansEntree<HTMLInputElement>(SELECTEUR_CHAMP_QUANTITE_LIGNE_PANIER);
|
||||
const boutonAddition = recupereElementDansEntree<HTMLButtonElement>(SELECTEUR_BOUTON_ADDITION_QUANTITE);
|
||||
const boutonSuppression = recupereElementDansEntree<HTMLButtonElement>(SELECTEUR_BOUTON_SUPPRESSION_PANIER);
|
||||
|
||||
// Supprime la ligne du Panier au clic sur le bouton de suppression
|
||||
boutonSuppression.addEventListener("click", (): void => {
|
||||
Either
|
||||
// Valide un corps de requête
|
||||
.encase<ValiError<typeof WCStoreCartRemoveItemArgsSchema>, WCStoreCartRemoveItemArgs>(() =>
|
||||
parse(WCStoreCartRemoveItemArgsSchema, { key: clePanier })
|
||||
)
|
||||
.map(async (args: WCStoreCartRemoveItemArgs) => {
|
||||
// Modifie des éléments du DOM pour signaler la requête et empêcher des doubles exécutions
|
||||
desactiveBoutonsEntreesPanier(entrees);
|
||||
|
||||
// Réalise la requête auprès du backend
|
||||
await postBackend({
|
||||
corps: JSON.stringify(args),
|
||||
nonce: ETATS_PAGE.nonce,
|
||||
route: ROUTE_API_RETIRE_ARTICLE_PANIER,
|
||||
})
|
||||
.then(async (reponse: Response) => {
|
||||
// Traite le cas d'erreur 500
|
||||
if (estReponse500(reponse)) leveServerError("500 Server Error");
|
||||
|
||||
pipe(
|
||||
// Récupère la Réponse
|
||||
await reponse.json(),
|
||||
// Traite tous les codes HTTPs possibles
|
||||
(corpsReponse: unknown) =>
|
||||
traiteReponseBackendWCSelonCodesHTTP<WCStoreCart, typeof WCStoreCartSchema>(
|
||||
corpsReponse,
|
||||
WCStoreCartSchema,
|
||||
),
|
||||
// Émets des Messages via BroadcastChannels pour la mise à jour de la page
|
||||
F.tap((panier: WCStoreCart) => {
|
||||
// Émet un Message avec le nouveau nombre de Produits dans le Panier
|
||||
emetMessageMajBoutonPanier({ quantiteProduits: panier.items_count });
|
||||
// Émet un Message avec le nouveau contenu du Panier
|
||||
emetMessageMajContenuPanier({
|
||||
produits: panier.items,
|
||||
sousTotalProduits: diviseParCent(panier.totals.total_items),
|
||||
sousTotalReduction: diviseParCent(panier.totals.total_discount),
|
||||
totalPanier: diviseParCent(panier.totals.total_price),
|
||||
});
|
||||
emetUniqueMessageCanal(NOM_CANAL_REVALIDATION_LIVRAISON, true);
|
||||
// Retire l'entrée du Panier du DOM
|
||||
entree.remove();
|
||||
}),
|
||||
);
|
||||
})
|
||||
.catch((e: unknown) => {
|
||||
if (estError(e)) {
|
||||
reporteErreur(e);
|
||||
} else {
|
||||
console.error("e n'est pas une Erreur ?!", e);
|
||||
}
|
||||
majEtatsActivationBoutons(entrees);
|
||||
});
|
||||
})
|
||||
.ifLeft((erreur: ValiError<typeof WCStoreCartRemoveItemArgsSchema>) => reporteErreur(erreur));
|
||||
});
|
||||
|
||||
// Retire une unité à une ligne du Panier au clic sur le bouton de soustraction
|
||||
boutonSoustraction.addEventListener("click", (): void => {
|
||||
Maybe.fromNullable(champQuantite.valueAsNumber)
|
||||
.filter(valeur => valeur > 1)
|
||||
.ifJust(valeur => {
|
||||
Either
|
||||
// Valide les arguments de la requête
|
||||
.encase<Error, WCStoreCartUpdateItemArgs>(() =>
|
||||
parse(WCStoreCartUpdateItemArgsSchema, { key: clePanier, quantity: valeur - 1 })
|
||||
)
|
||||
.map(async (args: WCStoreCartUpdateItemArgs) => {
|
||||
// Modifie des éléments du DOM pour signaler la requête et empêcher des doubles exécutions
|
||||
desactiveBoutonsEntreesPanier(entrees);
|
||||
|
||||
// Réalise la requête
|
||||
await postBackend({
|
||||
corps: JSON.stringify(args),
|
||||
nonce: ETATS_PAGE.nonce,
|
||||
route: ROUTE_API_MAJ_ARTICLE_PANIER,
|
||||
})
|
||||
.then(async (reponse: Response) => {
|
||||
// Traite le cas d'erreur 500
|
||||
if (estReponse500(reponse)) leveServerError("500 Server Error");
|
||||
|
||||
pipe(
|
||||
// Récupère la Réponse
|
||||
await reponse.json(),
|
||||
// Traite tous les codes HTTPs possibles
|
||||
(corpsReponse: unknown) =>
|
||||
traiteReponseBackendWCSelonCodesHTTP<WCStoreCart, typeof WCStoreCartSchema>(
|
||||
corpsReponse,
|
||||
WCStoreCartSchema,
|
||||
),
|
||||
F.tap((panier: WCStoreCart) => {
|
||||
// Émet un Message avec le nouveau nombre de Produits dans le Panier
|
||||
emetMessageMajBoutonPanier({ quantiteProduits: panier.items_count });
|
||||
// Émet un Message avec le nouveau contenu du Panier
|
||||
emetMessageMajContenuPanier({
|
||||
produits: panier.items,
|
||||
sousTotalProduits: diviseParCent(panier.totals.total_items),
|
||||
sousTotalReduction: diviseParCent(panier.totals.total_discount),
|
||||
totalPanier: diviseParCent(panier.totals.total_price),
|
||||
});
|
||||
emetUniqueMessageCanal(NOM_CANAL_REVALIDATION_LIVRAISON, true);
|
||||
}),
|
||||
);
|
||||
})
|
||||
.catch((e: unknown) => {
|
||||
if (estError(e)) {
|
||||
reporteErreur(e);
|
||||
} else {
|
||||
console.error("e n'est pas une Erreur ?!", e);
|
||||
}
|
||||
|
||||
majEtatsActivationBoutons(entrees);
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
// Ajoute une unité à une ligne du Panier au clic sur le bouton d'addition
|
||||
boutonAddition.addEventListener("click", (): void => {
|
||||
Maybe.fromNullable(champQuantite.valueAsNumber).ifJust(valeur => {
|
||||
// Modifie des éléments du DOM pour signaler la requête et empêcher des doubles exécutions
|
||||
desactiveBoutonsEntreesPanier(entrees);
|
||||
|
||||
Either
|
||||
// Valide les arguments de la requête
|
||||
.encase<Error, WCStoreCartUpdateItemArgs>(() =>
|
||||
parse(WCStoreCartUpdateItemArgsSchema, { key: clePanier, quantity: valeur + 1 })
|
||||
)
|
||||
.map(async (args: WCStoreCartUpdateItemArgs) => {
|
||||
// Réalise la requête
|
||||
await postBackend({
|
||||
corps: JSON.stringify(args),
|
||||
nonce: ETATS_PAGE.nonce,
|
||||
route: ROUTE_API_MAJ_ARTICLE_PANIER,
|
||||
})
|
||||
.then(async (reponse: Response) => {
|
||||
// Traite le cas d'erreur 500
|
||||
if (estReponse500(reponse)) leveServerError("500 Server Error");
|
||||
|
||||
pipe(
|
||||
// Récupère la Réponse
|
||||
await reponse.json(),
|
||||
// Traite tous les codes HTTPs possibles
|
||||
(corpsReponse: unknown) =>
|
||||
traiteReponseBackendWCSelonCodesHTTP<WCStoreCart, typeof WCStoreCartSchema>(
|
||||
corpsReponse,
|
||||
WCStoreCartSchema,
|
||||
),
|
||||
F.tap((panier: WCStoreCart) => {
|
||||
// Émet un Message avec le nouveau nombre de Produits dans le Panier
|
||||
emetMessageMajBoutonPanier({ quantiteProduits: panier.items_count });
|
||||
// Émet un Message avec le nouveau contenu du Panier
|
||||
emetMessageMajContenuPanier({
|
||||
produits: panier.items,
|
||||
sousTotalProduits: diviseParCent(panier.totals.total_items),
|
||||
sousTotalReduction: diviseParCent(panier.totals.total_discount),
|
||||
totalPanier: diviseParCent(panier.totals.total_price),
|
||||
});
|
||||
emetUniqueMessageCanal(NOM_CANAL_REVALIDATION_LIVRAISON, true);
|
||||
}),
|
||||
);
|
||||
})
|
||||
.catch((e: unknown) => {
|
||||
if (estError(e)) {
|
||||
reporteErreur(e);
|
||||
} else {
|
||||
console.error("e n'est pas une Erreur ?!", e);
|
||||
}
|
||||
|
||||
majEtatsActivationBoutons(entrees);
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
const initialiseMajConteneurPanier = (): void => {
|
||||
new BroadcastChannel(NOM_CANAL_BOUTON_PANIER).onmessage = (evenementMessage: MessageEvent<unknown>): void => {
|
||||
valideMessageMajBoutonPanier(evenementMessage)
|
||||
|
|
@ -397,32 +166,34 @@ const initialiseMajContenuPanier = (): void => {
|
|||
};
|
||||
|
||||
const initialiseMajFormulairesPanier = (): void => {
|
||||
BOUTON_SEPARATION_ADRESSES.addEventListener("click", () => {
|
||||
Maybe.fromFalsy(BOUTON_SEPARATION_ADRESSES.checked)
|
||||
BOUTON_SEPARATION_ADRESSES.addEventListener("click", (): void => {
|
||||
Maybe
|
||||
.fromFalsy(BOUTON_SEPARATION_ADRESSES.checked)
|
||||
// Les Adresses sont séparées
|
||||
.ifJust((): void => {
|
||||
// Rend visible le formulaire de facturation
|
||||
FORMULAIRE_FACTURATION.removeAttribute(ATTRIBUT_HIDDEN);
|
||||
recupereElementsAvecSelecteur(FORMULAIRE_FACTURATION)("input, select").ifRight(champs =>
|
||||
champs.forEach(champ => champ.removeAttribute(ATTRIBUT_DESACTIVE))
|
||||
recupereElementsAvecSelecteur(FORMULAIRE_FACTURATION)("input, select").ifRight(
|
||||
arrayForEach(champ => champ.removeAttribute(ATTRIBUT_DESACTIVE)),
|
||||
);
|
||||
})
|
||||
// Les Adresses sont combinées
|
||||
.ifNothing((): void => {
|
||||
// Cache le formulaire de facturation
|
||||
FORMULAIRE_FACTURATION.setAttribute(ATTRIBUT_HIDDEN, "");
|
||||
recupereElementsAvecSelecteur(FORMULAIRE_FACTURATION)<HTMLInputElement | HTMLSelectElement>(
|
||||
"input, select",
|
||||
).ifRight(champs =>
|
||||
champs.forEach(champ => {
|
||||
champ.setAttribute(ATTRIBUT_DESACTIVE, "");
|
||||
champ.value = "";
|
||||
})
|
||||
);
|
||||
).ifRight(arrayForEach(champ => {
|
||||
champ.setAttribute(ATTRIBUT_DESACTIVE, "");
|
||||
champ.value = "";
|
||||
}));
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
document.addEventListener("DOMContentLoaded", (): void => {
|
||||
mepCanalRevalidationLivraison();
|
||||
initialiseMajEntreesPanier();
|
||||
initialiseActionsEntreesPanier();
|
||||
initialiseMajConteneurPanier();
|
||||
initialiseMajContenuPanier();
|
||||
initialiseMajFormulairesPanier();
|
||||
|
|
|
|||
|
|
@ -255,13 +255,13 @@ const ajouteProduitAuPanier = () => {
|
|||
emetMessageMajBoutonPanier({ quantiteProduits: nombreArticlesPanier });
|
||||
|
||||
// TODO: Prévoir un cas où ce Timeout est annulé quand l'Utilisateur agit avant sur le Sélecteur
|
||||
setTimeout(() => {
|
||||
SELECTEUR_VARIATION.ifRight(selecteur => {
|
||||
selecteur.value = selecteur.options.item(0)?.value ?? "--";
|
||||
});
|
||||
BOUTON_AJOUT_PANIER.toggleAttribute(ATTRIBUT_DESACTIVE, true);
|
||||
BOUTON_AJOUT_PANIER.textContent = "Add to cart";
|
||||
}, 3000);
|
||||
// setTimeout(() => {
|
||||
// SELECTEUR_VARIATION.ifRight(selecteur => {
|
||||
// selecteur.value = selecteur.options.item(0)?.value ?? "--";
|
||||
// });
|
||||
// BOUTON_AJOUT_PANIER.toggleAttribute(ATTRIBUT_DESACTIVE, true);
|
||||
// BOUTON_AJOUT_PANIER.textContent = "Add to cart";
|
||||
// }, 3000);
|
||||
}),
|
||||
);
|
||||
})
|
||||
|
|
|
|||
|
|
@ -1 +1,13 @@
|
|||
|
||||
/*
|
||||
Theme Name: Haiku Atelier 2024
|
||||
Theme URI: https://haikuatelier.com
|
||||
Author: Gauthier COLIN--HAAG (gcch)
|
||||
Author URI: https://gcch.fr
|
||||
Description: Hé.
|
||||
Version: 1.0
|
||||
Requires at least: 5.0
|
||||
Tested up to: 5.4
|
||||
Requires PHP: 7.0
|
||||
License: Tous droits réservés
|
||||
Text Domain: haiku-atelier-2024
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -1,32 +1,35 @@
|
|||
{# <head> #}
|
||||
{% block conteneur_html_head %}
|
||||
{% include "parts/html-head.twig" %}
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
{# <head> #}
|
||||
{% block conteneur_html_head %}
|
||||
{% include "parts/html-head.twig" %}
|
||||
|
||||
{% block head %}
|
||||
{% endblock head %}
|
||||
{% endblock conteneur_html_head %}
|
||||
{% block head %}
|
||||
{% endblock head %}
|
||||
{% endblock conteneur_html_head %}
|
||||
|
||||
<body class="{{ body_class }}" data-langue="{{ langue_courante }}">
|
||||
{# En-tête #}
|
||||
{% include "parts/en-tete.twig" %}
|
||||
<body class="{{ body_class }}" data-langue="{{ langue_courante }}">
|
||||
{# En-tête #}
|
||||
{% include "parts/en-tete.twig" %}
|
||||
|
||||
{# Contenu #}
|
||||
{% block contenu %}
|
||||
{% endblock contenu %}
|
||||
{# Contenu #}
|
||||
{% block contenu %}
|
||||
{% endblock contenu %}
|
||||
|
||||
{# Bouton Revenir en haut #}
|
||||
<button
|
||||
hidden class="bouton-retour-haut"
|
||||
data-actif id="bouton-retour-haut"
|
||||
type="button"
|
||||
>
|
||||
<img alt="An arrow pointing to the top" src="{{ site.theme.link }}/assets/img/icons/arrow.svg" />
|
||||
</button>
|
||||
{# Bouton Revenir en haut #}
|
||||
<button
|
||||
hidden class="bouton-retour-haut"
|
||||
data-actif id="bouton-retour-haut"
|
||||
type="button"
|
||||
>
|
||||
<img alt="An arrow pointing to the top" src="{{ site.theme.link }}/assets/img/icons/arrow.svg" />
|
||||
</button>
|
||||
|
||||
{# Pied de page #}
|
||||
{% block footer %}
|
||||
{% include "parts/pied-de-page.twig" %}
|
||||
{# Pied de page #}
|
||||
{% block footer %}
|
||||
{% include "parts/pied-de-page.twig" %}
|
||||
|
||||
{{ function("wp_footer") }}
|
||||
{% endblock footer %}
|
||||
</body>
|
||||
{{ function("wp_footer") }}
|
||||
{% endblock footer %}
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@
|
|||
{% block contenu %}
|
||||
{# Menu avec les catégories de produits #}
|
||||
{% include "parts/menu-categories-produits.twig" %}
|
||||
{% include "parts/bandeau.twig" %}
|
||||
|
||||
<main id="page-boutique">
|
||||
{% include "parts/pages/shop/grille-produits.twig" %}
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue