2024-11-14

This commit is contained in:
gcch 2024-11-14 09:11:46 +01:00
commit a41cd27833
244 changed files with 17423 additions and 740 deletions

View file

@ -181,24 +181,24 @@ button {
outline: 2px solid transparent;
transition: 0.2s background, 0.2s color;
}
button:focus-visible {
button:not[disabled]:focus-visible {
z-index: 5;
outline: 2px solid var(--couleur-noir);
}
button:disabled, button[disabled] {
background: repeating-conic-gradient(var(--couleur-noir) 0% 25%, transparent 0% 100%) 1px 0.5px/2px 2px;
outline-color: transparent;
}
button:active {
button:not[disabled]:active {
color: var(--couleur-blanc) !important;
background: var(--couleur-noir) !important;
}
@media (hover: hover) {
button:hover {
button:not[disabled]:hover {
color: var(--couleur-noir);
background: var(--couleur-jaune);
}
}
button:disabled, button[disabled] {
background: repeating-conic-gradient(var(--couleur-noir) 0% 25%, transparent 0% 100%) 1px 0.5px/2px 2px;
outline-color: transparent;
}
button.bouton-case-pleine {
width: 100%;
height: 100%;
@ -1094,7 +1094,8 @@ body:has(#menu-mobile:not([aria-hidden=true])) {
border-top-color: transparent;
}
.informations-produit .onglets-details-produit > ul li a:focus-visible {
outline-color: transparent;
outline: 2px solid var(--couleur-noir);
outline-offset: -2px;
}
@media (hover: hover) {
.informations-produit .onglets-details-produit > ul li a:hover {

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -4,40 +4,40 @@
"name": "Either",
"integrity": "sha512-iA88qYfaqIo+2/H0VzUP5VPULY8gMF4bgybyguKQQj/k1/LKHmurwKDvKCIPz3/kdz+2jUjG9/vlqu9+i6/klg=="
},
"_MaybeAsync.AE1jnxuc.js": {
"file": "MaybeAsync.AE1jnxuc.js",
"_MaybeAsync.Ba-OfjWy.js": {
"file": "MaybeAsync.Ba-OfjWy.js",
"name": "MaybeAsync",
"imports": [
"_Either.wHNxn7Os.js"
],
"integrity": "sha512-zBecrvIRiJOu6YYRpnc0k8S2hhntD+UpPtg3zhLd4KQSyWdXQTt6ubhfDTOhBtMYi/W1LLcZX89krSQqxkWfGA=="
"integrity": "sha512-iLyoaxrZR9rsJL8d2tu48LymRiSdej5+2ZWqaIDBVWtM8n5PMvng5xVtXGPNJ5UZpEtZvAUOf7w+jNrY2LP10g=="
},
"_belt_Option-91f3b350.D8kNxoqg.js": {
"file": "belt_Option-91f3b350.D8kNxoqg.js",
"_belt_Option-91f3b350.BKMoZFhU.js": {
"file": "belt_Option-91f3b350.BKMoZFhU.js",
"name": "belt_Option-91f3b350",
"imports": [
"web/app/themes/haiku-atelier-2024/src/scripts/lib/dom.ts"
],
"integrity": "sha512-jq2VqkmFq7qCXj0sEA6g969jMAwRb8i2zXXVrNjRWFEn6hj7sc2kc30RK+UOtV5zpVHicKVw4wNzTuF5nIgLMg=="
"integrity": "sha512-aQFt1IL5vfOZ0G3wLQlW0OxXxOVtECojJ1MLeZKU4ZUa5wEsjWZy8e+hxxA01tMRNvQ0sGvS9VeUkSqtIM5Cjg=="
},
"_exports.DtgtFHVi.js": {
"file": "exports.DtgtFHVi.js",
"_exports.DT-46nyp.js": {
"file": "exports.DT-46nyp.js",
"name": "exports",
"integrity": "sha512-4cRVLOnpaeyA6k5R693OlrBhMVC+rhYTAHtn0u4057IvKs0PfWmjhBN1wkaEYJqrmLuI4lbosNuCqW6umZGNbw=="
"integrity": "sha512-guj1IEABa9hA7TonTv4PlBhvqlwPQeE1vPyMmeRSOemTg5Mih4jIfeZOsFr+pVP0AYgP4dJO0+Vj3YCWwPVZZg=="
},
"_index-0eef19ec.DjnU1cik.js": {
"file": "index-0eef19ec.DjnU1cik.js",
"_index-0eef19ec.CFsloYN6.js": {
"file": "index-0eef19ec.CFsloYN6.js",
"name": "index-0eef19ec",
"imports": [
"web/app/themes/haiku-atelier-2024/src/scripts/lib/dom.ts",
"_belt_Option-91f3b350.D8kNxoqg.js"
"_belt_Option-91f3b350.BKMoZFhU.js"
],
"integrity": "sha512-J+PW1bnDI0vPW0+cLy0fNldUj6bC6EIPoqFhPUuTuCNQ5i8NyLAbAa0TIlLnzx4Fsoetx2Vof4RDwylmGyLO6Q=="
"integrity": "sha512-wORZ0WkOfNuzAUKhf7XA8LXG4geR64dUCIHwukqdLnUhkEFdeLpLtmDfuYMl5Aff09c7XjJxUQIVGwRb8uTbcA=="
},
"_index.BulDzU6h.js": {
"file": "index.BulDzU6h.js",
"_index.BueHQ6RV.js": {
"file": "index.BueHQ6RV.js",
"name": "index",
"integrity": "sha512-3NcVKviJYwWo1JXzPuDxuwEs8BRmMM/4YAukKx2+Zl9klpzEWszVRGw1LsAP1X9O0RkrK5h0/0H/WZKkKAd9+g=="
"integrity": "sha512-JBA3vYABLBXOw7LPZvJ/nt9oHANX6kp2Z2E/w1XzsUXxOaoZO3nu42tV+lS4ZPZuhfTlrKRT+UVfAzLwMapX5A=="
},
"_index.CeK6pfoJ.js": {
"file": "index.CeK6pfoJ.js",
@ -54,7 +54,7 @@
"name": "api",
"src": "web/app/themes/haiku-atelier-2024/src/scripts/constantes/api.ts",
"isEntry": true,
"integrity": "sha512-KODb/K3N+dC4z6EFoCFWi62eYova7cUTt6WLY5LHGfyXylv+amTCs+LUo3n6GSpEfdvmwbsqWOtpYVulFNZ4tQ=="
"integrity": "sha512-IwhkTU893yoVKm6XHK5H3hAtfFt/SDe0ftjM4h2RttKPvlxIl71FP6sOYCNeLEuGsuCx0Hz6FsrdqsUEqOpqVg=="
},
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/cart.ts": {
"file": "cart2.js",
@ -68,7 +68,7 @@
"name": "dom",
"src": "web/app/themes/haiku-atelier-2024/src/scripts/constantes/dom.ts",
"isEntry": true,
"integrity": "sha512-VLt7z6q/6b774swD4ORVonEVYt9aEjZtyjD5/xL9vqUGxZF5LIMhatbRDJw26N512OSTVzazhDD2yf8mNrQsQg=="
"integrity": "sha512-AUdY+bNzLgbYp948Md+Ja5sr822XkYFXSUlfPjF+YTiFxiN9hzYRQAUsTRtsk9z17FBRSOvwOWTS50pwApnMBA=="
},
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/messages.ts": {
"file": "messages3.js",
@ -89,7 +89,7 @@
"name": "products",
"src": "web/app/themes/haiku-atelier-2024/src/scripts/constantes/products.ts",
"isEntry": true,
"integrity": "sha512-Hh8yxeOZedoSWNSUhV6BuO/YXUgZt2KaGQZgbZRedtz0jM90Yc7d2Ir6YJhnbZVRzedow6+uXlxutG9oHeGB0Q=="
"integrity": "sha512-kSyYMKtrlEELmR+Oi/SElrlhfn/mg/1QJkddMt+/w4jlrhYrUlApLvwAr1/ynpCBzj0g4CmBOYen5rTO53bJ1w=="
},
"web/app/themes/haiku-atelier-2024/src/scripts/gaffe.ts": {
"file": "gaffe.js",
@ -98,10 +98,10 @@
"isEntry": true,
"imports": [
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/api.ts",
"_exports.DtgtFHVi.js",
"_exports.DT-46nyp.js",
"_pipe.XPB0wEfw.js"
],
"integrity": "sha512-879kPDiJLnXB+lzNRxL4ShyFPUmbSM13BV6whvCU+Iz0FdNICq8HXYUoGXnvrYBALbphqpGgy0qgZq+7cJpvfw=="
"integrity": "sha512-QQ4AgRankxszy2lL9PwpKn4u1qftdAEfH2fjKIsz2r1r1vbAVy9RxvnRolMzQoDMp9Z5u0LYBibtRl0phcP6Bg=="
},
"web/app/themes/haiku-atelier-2024/src/scripts/lib/dom.ts": {
"file": "dom2.js",
@ -110,11 +110,11 @@
"isEntry": true,
"imports": [
"web/app/themes/haiku-atelier-2024/src/scripts/lib/erreurs.ts",
"_pipe.XPB0wEfw.js",
"_Either.wHNxn7Os.js",
"_exports.DtgtFHVi.js"
"_pipe.XPB0wEfw.js",
"_exports.DT-46nyp.js"
],
"integrity": "sha512-MkD15qSuTmRpn0Wx1vE9hEAZnI+sjDf3VUqaOoiLWWzY0ZVpxNXwgSb+WmvsEi/Qqh699j5U7cm80F/u0BfSfA=="
"integrity": "sha512-q4nE3OSywq1d12PYGyULtsAdxT2OtFe5E0Ec81VSvKP0/+g1qbHqqu7FPYzCcxNXTGuLEsmtdZLPowfIESBzyg=="
},
"web/app/themes/haiku-atelier-2024/src/scripts/lib/erreurs.ts": {
"file": "erreurs.js",
@ -122,9 +122,9 @@
"src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/erreurs.ts",
"isEntry": true,
"imports": [
"_exports.DtgtFHVi.js"
"_exports.DT-46nyp.js"
],
"integrity": "sha512-b8Bd2KjSABlP1YIg9Ye5YaSyPmlazvDe1MKBS89/Hy5Ao31Yrh7HXPu+qqnHXAvEvhL4H1wIZSEKBdp1nufxEg=="
"integrity": "sha512-VCvTqmBichQ2MC4UG1jCaBSZYI814NOS6zm+RJJ8dfvdR9foeXGuvnAEtZAU1U4tBk79bkIHUc6O/hkR8JpcmA=="
},
"web/app/themes/haiku-atelier-2024/src/scripts/lib/gardes.ts": {
"file": "gardes.js",
@ -140,10 +140,10 @@
"isEntry": true,
"imports": [
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/api.ts",
"_MaybeAsync.AE1jnxuc.js",
"_MaybeAsync.Ba-OfjWy.js",
"_Either.wHNxn7Os.js"
],
"integrity": "sha512-4aRzHNyzaWfKoOZofItv0GCb6MFmOL6BlIikWmLx/PnovqoFp6Roj/pysTgAgegVNj5i82d3+ueX5zAFEKMFvQ=="
"integrity": "sha512-cPmRTewvt0FOjnKDlX4Bj+7BhUXeBTVJc1FMaFYBFbiaePTsftZ084cwHuR2eQRV4dSoK6H0JfRwjAolgfcGQA=="
},
"web/app/themes/haiku-atelier-2024/src/scripts/lib/messages.ts": {
"file": "messages.js",
@ -151,18 +151,18 @@
"src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/messages.ts",
"isEntry": true,
"imports": [
"_index.BulDzU6h.js",
"_index.BueHQ6RV.js",
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/messages.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/erreurs.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/messages.ts",
"_Either.wHNxn7Os.js",
"_exports.DtgtFHVi.js",
"_exports.DT-46nyp.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/lib/schemas/api/adresses.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/couts-livraison.ts"
],
"integrity": "sha512-QAXhm7cuT2COvlqofJVbZ4t+7eExXtBJxAnub6i0uZLAPWDiNsKlzLjj/xeaDFcwvGCGX+Lwezerw5YJ3qGW3w=="
"integrity": "sha512-eCAQZVQSA+5btfz3LobyZKZKLeygRne9GOvE2bMw7YNvUkvUd/CGfRXOzhRIE99MkTRjDfYk6nBv03Kdo/Dahw=="
},
"web/app/themes/haiku-atelier-2024/src/scripts/lib/nombres.ts": {
"file": "nombres.js",
@ -178,14 +178,14 @@
"isEntry": true,
"imports": [
"_index.CeK6pfoJ.js",
"_index.BulDzU6h.js",
"_index.BueHQ6RV.js",
"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",
"_pipe.XPB0wEfw.js",
"_exports.DtgtFHVi.js"
"_exports.DT-46nyp.js"
],
"integrity": "sha512-Kleti69vNizn9p7F18Vp1FJkVEsO7QPWUn+mXM5KBtWe6k0TJsJ7Sk1FVX1sLrQc3d1Kg7uADDh+tGRRDs8oog=="
"integrity": "sha512-Wb8z//28EPg7tcrbAGMTUWNyJ4pZsqXr4WA1U5JSewStanmdiKKmkn0Z1T4PYdei4n01mwu+0Q9q7W9JhzQKzQ=="
},
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/adresses.ts": {
"file": "adresses.js",
@ -193,9 +193,9 @@
"src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/adresses.ts",
"isEntry": true,
"imports": [
"_index.BulDzU6h.js"
"_index.BueHQ6RV.js"
],
"integrity": "sha512-PGP3Ki5F8Vhhfnv6YiSb1p55IygKJ66DPC8wTJfrEiKpWM7XEYHEPDlChAun2MgM/ITTxyP9H6CREVXLsVkUag=="
"integrity": "sha512-l7cyXThYwsirOWk5NiFfPijbV8SnXS8HN9wWAsFAU7y1XufGR9Ly0EkiDLnqFtmTdwavl7Mu4OeeqLePol3z0g=="
},
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-add-item.ts": {
"file": "cart-add-item.js",
@ -203,9 +203,9 @@
"src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-add-item.ts",
"isEntry": true,
"imports": [
"_index.BulDzU6h.js"
"_index.BueHQ6RV.js"
],
"integrity": "sha512-0sUMF0qZ3NFZCrEDlik+erBzKGTW2avFSRUdTqQWt5SEmNApUirsBb/xTObjynrVEJ2oRfN1QGMUByahE3ZO0w=="
"integrity": "sha512-1L1gE2CvO306LqYlQlM4NJa4yPg6OQDShh6O/E0aauxb9uWLtyVAkS6F2I7i+B2YVtyWW1TvSpkES90hF9Qx8g=="
},
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-remove-item.ts": {
"file": "cart-remove-item.js",
@ -213,9 +213,9 @@
"src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-remove-item.ts",
"isEntry": true,
"imports": [
"_index.BulDzU6h.js"
"_index.BueHQ6RV.js"
],
"integrity": "sha512-HVnZLnKmJjnfmwl1NRme6CWz+ja3Ywb4Hzi9sa7m+ZbU9CGKpawhKM0zdqMV8bKyPPShpY6uXmAPoWjfiCwt8A=="
"integrity": "sha512-6/1H1KIM6V1DSOrQ9DfPm1nWL+TfjgakrWtXFPHqwN06Am5fW6fMgwc3MpOx9O+64mM5x6/OWCP4S9Vfkf4oOA=="
},
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-update-customer.ts": {
"file": "cart-update-customer.js",
@ -223,10 +223,10 @@
"src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-update-customer.ts",
"isEntry": true,
"imports": [
"_index.BulDzU6h.js",
"_index.BueHQ6RV.js",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/adresses.ts"
],
"integrity": "sha512-wkgyzSixpqLjG9iyIrXE1mVaJg8ysSpmTgsPa8ySWEiuuGem7fWTwhs4rvTH7fn0zWWjCbmFW3b9nFvFqQJRyA=="
"integrity": "sha512-oAEKlHsEbWgZpB6hXfn+BOyXYrEdUPTWPTn0jb02G86LlqNA1QxtXAyvG374HCT+0VbCwIj+vOIoTEsYWKCtAA=="
},
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-update-item.ts": {
"file": "cart-update-item.js",
@ -234,9 +234,9 @@
"src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-update-item.ts",
"isEntry": true,
"imports": [
"_index.BulDzU6h.js"
"_index.BueHQ6RV.js"
],
"integrity": "sha512-bZWlPjJ4gPiYxWbhaQpZ1hppyk8iJa0ufXd42ZkrPkFLAirpx5T6UNJw5u4+twg/WUZW21QRgaSs63jwNVFFUQ=="
"integrity": "sha512-i5nOdW2LgVQLh2RtxfxbzVEOmdgOu2C6rckoxPKeETkyBppGdHMlUGqdDdy10u73KlLRArjnIrtiz/AGnKIp+w=="
},
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart.ts": {
"file": "cart.js",
@ -244,12 +244,12 @@
"src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart.ts",
"isEntry": true,
"imports": [
"_index.BulDzU6h.js",
"_index.BueHQ6RV.js",
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/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/couts-livraison.ts"
],
"integrity": "sha512-KjUpNFeD1I2uENVaTghYfAE7lpzMp2DMV9SljEa7AWKkIvLrxsEEEUs2EWgcA2lQqjgDhMHSBMG5raoOiuesyg=="
"integrity": "sha512-4yTWIWIkf/MYbBJCaHxxfVVs1djAGOlLL2+uLKC9WoWMUiTkD4MvayvDvSSbimr7c/FF6N/dk9EdM5YC1Ycflw=="
},
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/couts-livraison.ts": {
"file": "couts-livraison.js",
@ -257,10 +257,10 @@
"src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/couts-livraison.ts",
"isEntry": true,
"imports": [
"_index.BulDzU6h.js",
"_index.BueHQ6RV.js",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/adresses.ts"
],
"integrity": "sha512-tVVpy5w7joiInPVK4fkK6ZzKbwLWNDvvshLTGRKcxMwUOUUJxH/KysTKoqjIqBlpzxXZ0YV8RQu81JbHvW7k1g=="
"integrity": "sha512-mu/KcAH7KjbWMUDGatCbRUUkqsVskBxmIw3Gsaxz+tAlVMEfqvjKBJ+PB/yW1Em91eMSCHl7tF95Bq1hOLv0oA=="
},
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/erreurs.ts": {
"file": "erreurs2.js",
@ -268,9 +268,9 @@
"src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/erreurs.ts",
"isEntry": true,
"imports": [
"_index.BulDzU6h.js"
"_index.BueHQ6RV.js"
],
"integrity": "sha512-v6MUQqPZYiFCoxTwCQD2rv8TWt0AeIBjuo2zZObPziBqX2n5waPa84+rBfWE4oljnVWfmhAkVHYd1bILH3evFg=="
"integrity": "sha512-KHz2JNlQR5m9V3daJ5+NQvhfvx0ZngG6Aic0Uug8OO7TkTTc9OXGzCxPuorNqQXH52FfLXkCqlnELH5tlSNA0A=="
},
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/products.ts": {
"file": "products3.js",
@ -278,10 +278,10 @@
"src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/products.ts",
"isEntry": true,
"imports": [
"_index.BulDzU6h.js",
"_index.BueHQ6RV.js",
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/products.ts"
],
"integrity": "sha512-xdX2dnN0BITg490rVCxD4iB+IloAMAE6DyE1D1/ajtTDsUl3zh+wLUkeYQFiMcz8GSsFD8SVVyi44uyuVBbS0A=="
"integrity": "sha512-R4IyPyalPJS2dinZnRB0MWTnv0oyfo35iQhpElTXWoRcPXFJAYqcma0Uuz5SBpNl6RBlG9JTzvMdaeeB8BApVA=="
},
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/v3/orders.ts": {
"file": "orders2.js",
@ -289,11 +289,11 @@
"src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/v3/orders.ts",
"isEntry": true,
"imports": [
"_index.BulDzU6h.js",
"_index.BueHQ6RV.js",
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/orders.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/adresses.ts"
],
"integrity": "sha512-cuMhUff7PT0cSvT7qKrqUQsAHS0owAUjarvBnR0BBIYHUG4dEqyQyTzyOX8/v0HSyPUiRYs3EfgRyFbR5rUZSg=="
"integrity": "sha512-c5+UiPuLEs8VaqHU08+BZhULPTykmcG2lvEBzN5KrIvu+vU0gzQ4CvieROpHLoaMJ+GooVMG4vxCnPcupSDtrg=="
},
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/v3/products.ts": {
"file": "products.js",
@ -301,10 +301,10 @@
"src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/v3/products.ts",
"isEntry": true,
"imports": [
"_index.BulDzU6h.js",
"_index.BueHQ6RV.js",
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/products.ts"
],
"integrity": "sha512-2snokc3zNKtXO/5uSZKk46RiixFNm6ilVrl9rpS3oxE9WO0J3PPY4i501kZWeDx66fXTfhFxZCT8Njxef4b2Hg=="
"integrity": "sha512-vqzsZjVwevOjikB2eQx/Ksd/iusSTiyCI6/tyC0pIxyrAb7dN/PHRh0X1hWJyMgE0LA7Vibe9j6jxhz4E+uXkw=="
},
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/messages.ts": {
"file": "messages2.js",
@ -312,14 +312,14 @@
"src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/messages.ts",
"isEntry": true,
"imports": [
"_index.BulDzU6h.js",
"_index.BueHQ6RV.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/lib/schemas/api/adresses.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/couts-livraison.ts"
],
"integrity": "sha512-o3qH4I14gxkuaYiiKsh+M5vI9ReEX3U9kuVfQ6WsXiouUYLHYnbcImsZweeqSQ9RR5jVVBFx7GYIaMbYMTVHqw=="
"integrity": "sha512-DeWFclQ++JTWvSSRkaPB20ZUDIgmRIyuGb5DRSUI1I80Mx4ZOR+bLnCiiWevRtyti9AXTuCCZAft5f9CUxhk0A=="
},
"web/app/themes/haiku-atelier-2024/src/scripts/lib/types/api/v3/orders.ts": {
"file": "orders.js",
@ -345,9 +345,9 @@
"web/app/themes/haiku-atelier-2024/src/scripts/lib/erreurs.ts",
"_pipe.XPB0wEfw.js",
"_Either.wHNxn7Os.js",
"_exports.DtgtFHVi.js"
"_exports.DT-46nyp.js"
],
"integrity": "sha512-h9Qawq0Y7PDPsiOQHoVjkrZU5r8lm8xsFo7s/Nxgbz9/ndkiN9P5ikp/sBdIkBf+pfoVJp9x8txTY4ncAkssTw=="
"integrity": "sha512-F3Lt50ZQrOGB4auHPp9I2CNbXTxd8bjMyUaNHrYYw2Ujy8p+EW8VqHTj2aAperb/C+0VrKEIYn4u2QtZiY/PWw=="
},
"web/app/themes/haiku-atelier-2024/src/scripts/lib/validation.ts": {
"file": "validation.js",
@ -355,10 +355,10 @@
"src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/validation.ts",
"isEntry": true,
"imports": [
"_index.BulDzU6h.js",
"_index.BueHQ6RV.js",
"_Either.wHNxn7Os.js"
],
"integrity": "sha512-WnABT8GHyiP4YBzt4BRB9fdA1zfvLrd5TZWAVF3OXgT8HHz1/JzJlPei6ZauSHS/G42oV0r/ZyOFs/XdJTqHkg=="
"integrity": "sha512-cXdOshDN3m5f4K9MkDFTGd3++CFabxWu3SWHuXfn4h6d08cwXm8jzWKsYU2tn7bKFGrEMamY/l13znqyAMi1Gg=="
},
"web/app/themes/haiku-atelier-2024/src/scripts/scripts-bouton-panier.ts": {
"file": "scripts-bouton-panier.js",
@ -373,16 +373,16 @@
"web/app/themes/haiku-atelier-2024/src/scripts/lib/utils.ts",
"_pipe.XPB0wEfw.js",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/erreurs.ts",
"_exports.DtgtFHVi.js",
"_exports.DT-46nyp.js",
"_Either.wHNxn7Os.js",
"_index.BulDzU6h.js",
"_index.BueHQ6RV.js",
"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/lib/schemas/api/adresses.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/couts-livraison.ts"
],
"integrity": "sha512-iVzK9QmdXDUkfvUfJAq8Z1BKC6x1uDEwZiuPmHr9KHkbfXtukW7xKL5kOh8KSKrkg8M/k3Izj/uf/5Tashp6hw=="
"integrity": "sha512-yUikXIr9hYYjSvORQsWQB8+N3FlCZN4um77zcgiuCIhB0rYkDlHlCJnvuos3kfSpKLAcaxUNP/TdJW1hv12Hxw=="
},
"web/app/themes/haiku-atelier-2024/src/scripts/scripts-menu-categories.ts": {
"file": "scripts-menu-categories.js",
@ -395,11 +395,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.DtgtFHVi.js",
"_exports.DT-46nyp.js",
"_pipe.XPB0wEfw.js",
"_Either.wHNxn7Os.js"
],
"integrity": "sha512-RAN+4IVXl0wdb8e7p/F6UW3U8BHX7KXRZO1YypbdHRTNh9HgJ3dz8fytDdz2jA3XdhczDnRCOTDqF3vL2BEb8g=="
"integrity": "sha512-hcAmR1lM0Iu4YQT67krIiilSomqNJTYIMLWJpyOz7Kqm9yEFRuCE/CDo12l1cIbFz5vpxi6IaCEUjPBSkL7wbQ=="
},
"web/app/themes/haiku-atelier-2024/src/scripts/scripts-menu-mobile.ts": {
"file": "scripts-menu-mobile.js",
@ -411,11 +411,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.DtgtFHVi.js",
"_pipe.XPB0wEfw.js",
"_Either.wHNxn7Os.js"
"_exports.DT-46nyp.js",
"_Either.wHNxn7Os.js",
"_pipe.XPB0wEfw.js"
],
"integrity": "sha512-x0vjlFuSXzr3AkvtWyF9Z1LwW+pGeoOwj8n9qYm+vqajMMTlxTwYpbvVe2mSE/6Xmj14lWKnLu4wrKiJOqLPVA=="
"integrity": "sha512-uyzeoXWRG05f3lSoXisLuii8AFAHjvj9t0YziQU+tGkpZYPo6ReS6rr62zFMqTerYTa8XHpmEEt7lKeRFD4qrw=="
},
"web/app/themes/haiku-atelier-2024/src/scripts/scripts-page-a-propos.ts": {
"file": "scripts-page-a-propos.js",
@ -427,12 +427,12 @@
"web/app/themes/haiku-atelier-2024/src/scripts/lib/utils.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/dom.ts",
"_pipe.XPB0wEfw.js",
"_belt_Option-91f3b350.D8kNxoqg.js",
"_belt_Option-91f3b350.BKMoZFhU.js",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/erreurs.ts",
"_exports.DtgtFHVi.js",
"_exports.DT-46nyp.js",
"_Either.wHNxn7Os.js"
],
"integrity": "sha512-Ot2NrjxvJ3ovohcl4cUxwsglsSVLEPYxcCEmqQjWSrKW+4Hh16ZYq0S6aGLAk4BPIJwlyJN1TcNt0Vnfr8d0DQ=="
"integrity": "sha512-qpXsDfaYPZjzKYKEJrzasSO1utgzizcR9KWVJO6XVjSgJ99R5niOSe+3zkPzSTNXRLDc9AXoiPahP2QCOfSOgA=="
},
"web/app/themes/haiku-atelier-2024/src/scripts/scripts-page-accueil.ts": {
"file": "scripts-page-accueil.js",
@ -445,11 +445,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.DtgtFHVi.js",
"_pipe.XPB0wEfw.js",
"_Either.wHNxn7Os.js"
"_exports.DT-46nyp.js",
"_Either.wHNxn7Os.js",
"_pipe.XPB0wEfw.js"
],
"integrity": "sha512-U+g0gq1deXRSXexG36LTOEvslcFj5v5s+nolLMfJipuSkTHifUpNU+fSTpFTEEZBynQTybTnNuGImWW4cgGrCg=="
"integrity": "sha512-7LblNdCZyF4JvOcu4bu+66BL2bwPMDfTqkHlIVvEfyK5DBtuR0IgDCdyJ/bOa6t/gWODVzRCzDYWQPqc0RjJrg=="
},
"web/app/themes/haiku-atelier-2024/src/scripts/scripts-page-boutique.ts": {
"file": "scripts-page-boutique.js",
@ -458,7 +458,7 @@
"isEntry": true,
"imports": [
"_index.CeK6pfoJ.js",
"_index.BulDzU6h.js",
"_index.BueHQ6RV.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/lib/dom.ts",
@ -467,16 +467,16 @@
"web/app/themes/haiku-atelier-2024/src/scripts/lib/reseau.ts",
"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",
"_MaybeAsync.AE1jnxuc.js",
"_MaybeAsync.Ba-OfjWy.js",
"_pipe.XPB0wEfw.js",
"_index-0eef19ec.DjnU1cik.js",
"_index-0eef19ec.CFsloYN6.js",
"_Either.wHNxn7Os.js",
"_exports.DtgtFHVi.js",
"_exports.DT-46nyp.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",
"_belt_Option-91f3b350.D8kNxoqg.js"
"_belt_Option-91f3b350.BKMoZFhU.js"
],
"integrity": "sha512-bJw/FzsilZIfynZiM/W28WEuC0YgZpgucFWIlA9t/V6G2/RZM36Q3zyQ3OdB/YCNW+eYX6zwzyzViQjuc/xSBw=="
"integrity": "sha512-auB29T3SZpasyR61fK363JAMfgU0xakNPRG/UyMGT9HLNADOBcQLVZrhvj7BJrs6T3pE5Qeq0C5vVecIhB7xtQ=="
},
"web/app/themes/haiku-atelier-2024/src/scripts/scripts-page-panier.ts": {
"file": "scripts-page-panier.js",
@ -485,7 +485,7 @@
"isEntry": true,
"imports": [
"_index.CeK6pfoJ.js",
"_index.BulDzU6h.js",
"_index.BueHQ6RV.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",
@ -503,17 +503,17 @@
"web/app/themes/haiku-atelier-2024/src/scripts/lib/utils.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/validation.ts",
"_pipe.XPB0wEfw.js",
"_index-0eef19ec.DjnU1cik.js",
"_index-0eef19ec.CFsloYN6.js",
"_Either.wHNxn7Os.js",
"_exports.DtgtFHVi.js",
"_exports.DT-46nyp.js",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/messages.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/erreurs.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/cart.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/adresses.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/orders.ts",
"_belt_Option-91f3b350.D8kNxoqg.js"
"_belt_Option-91f3b350.BKMoZFhU.js"
],
"integrity": "sha512-bdh3hOkICfduk3ISqD6YxxdK3Ewons0zTpRzr8tQ9gCZi/ZKkpT1XFCHbOgo2+B9r8sd/tvSChTd1TE3zwlSfA=="
"integrity": "sha512-fp2E3bO0cLM1/k29tp+AVwSD7jOyu4GxspyAGtQHv1i0+6P58iumwE3ByvI+i6m6iJB5uUQMz+QYJv1JOQaF+A=="
},
"web/app/themes/haiku-atelier-2024/src/scripts/scripts-page-produit.ts": {
"file": "scripts-page-produit.js",
@ -522,28 +522,30 @@
"isEntry": true,
"imports": [
"_index.CeK6pfoJ.js",
"_index.BulDzU6h.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/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/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-add-item.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/erreurs.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/utils.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/validation.ts",
"_pipe.XPB0wEfw.js",
"_index-0eef19ec.DjnU1cik.js",
"_index-0eef19ec.CFsloYN6.js",
"_Either.wHNxn7Os.js",
"_exports.DtgtFHVi.js",
"_exports.DT-46nyp.js",
"_index.BueHQ6RV.js",
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/messages.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/messages.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/erreurs.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/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/couts-livraison.ts",
"_belt_Option-91f3b350.D8kNxoqg.js"
"_belt_Option-91f3b350.BKMoZFhU.js"
],
"integrity": "sha512-+lzTczsVRFSM6Gq6iaA6O/Xj1vaR+nL6PZAoNkR0AZiCaPEZjQG9fE7G/OJTia+ZWEKMiwIMoYmKm/X87nTtiw=="
"integrity": "sha512-JyLoXCoym4LGwN9MCrYmQ1wD/YmiZ9edQAUWT12MHkgaS7bdtivh0nFwexmnT/aEVXgFxGEg8a8jN8+Azkg41g=="
}
}

View file

@ -1,4 +1,4 @@
import { E as Either, r as right, l as left, M as Maybe, n as nothing, j as just } from "./Either.wHNxn7Os.js";
import { r as right, l as left, E as Either, n as nothing, j as just, M as Maybe } from "./Either.wHNxn7Os.js";
var _a$1;
const helpers$1 = {
liftEither(either) {
@ -311,4 +311,4 @@ MaybeAsyncImpl.prototype.constructor = MaybeAsync;
export {
EitherAsync as E
};
//# sourceMappingURL=MaybeAsync.AE1jnxuc.js.map
//# sourceMappingURL=MaybeAsync.Ba-OfjWy.js.map

View file

@ -1,4 +1,4 @@
import { o as object, s as string } from "./index.BulDzU6h.js";
import { o as object, s as string } from "./index.BueHQ6RV.js";
const WCStoreBillingAddressSchema = object({
address_1: string(),
address_2: string(),
@ -26,7 +26,7 @@ const WCStoreShippingAddressSchema = object({
state: string()
});
export {
WCStoreBillingAddressSchema as W,
WCStoreShippingAddressSchema as a
WCStoreShippingAddressSchema as W,
WCStoreBillingAddressSchema as a
};
//# sourceMappingURL=adresses.js.map

View file

@ -18,7 +18,7 @@ export {
ROUTE_API_NOUVELLE_COMMANDES as d,
ROUTE_API_AJOUTE_ARTICLE_PANIER as e,
ROUTE_API_PANIER as f,
ENTETE_GLITCHTIP_RATE_LIMITS as g,
ENTETE_GLITCHTIP_RETRY_AFTER as h
ENTETE_GLITCHTIP_RETRY_AFTER as g,
ENTETE_GLITCHTIP_RATE_LIMITS as h
};
//# sourceMappingURL=api.js.map

View file

@ -1,4 +1,4 @@
import { v as valFromOption, i as some } from "./dom2.js";
import { v as valFromOption, s as some } from "./dom2.js";
function sub(n2, r, t) {
var e = new Array(t);
var u = 0;
@ -136,14 +136,14 @@ function isNone(t) {
export {
_1 as _,
isSome as a,
getWithDefault as b,
isNone as b,
create as c,
isNone as d,
getExn as d,
mapU as e,
flatMap as f,
getExn as g,
flatMapU as h,
flatMapU as f,
getWithDefault as g,
flatMap as h,
is_extension as i,
mapWithDefaultU as m
};
//# sourceMappingURL=belt_Option-91f3b350.D8kNxoqg.js.map
//# sourceMappingURL=belt_Option-91f3b350.BKMoZFhU.js.map

View file

@ -1,4 +1,4 @@
import { p as parse, o as object, c as optional, n as number, b as array, s as string } from "./index.BulDzU6h.js";
import { o as object, c as optional, b as array, s as string, n as number } from "./index.BueHQ6RV.js";
const WCStoreCartAddItemArgsItemsSchema = object({
/** Variation attribute name. */
attribute: string(),
@ -13,8 +13,7 @@ const WCStoreCartAddItemArgsSchema = object({
/** Chosen attributes (for variations). */
variation: optional(array(WCStoreCartAddItemArgsItemsSchema))
});
const parseWCStoreCartAddItemArgs = (args) => parse(WCStoreCartAddItemArgsSchema, args);
export {
parseWCStoreCartAddItemArgs as p
WCStoreCartAddItemArgsSchema as W
};
//# sourceMappingURL=cart-add-item.js.map

View file

@ -1 +1 @@
{"version":3,"file":"cart-add-item.js","sources":["../../src/scripts/lib/schemas/api/cart-add-item.ts"],"sourcesContent":["import * as v from \"valibot\";\n\nimport type { WCStoreCartAddItemArgs } from \"../../types/api/cart-add-item\";\n\nexport const WCStoreCartAddItemArgsItemsSchema = v.object({\n /** Variation attribute name. */\n attribute: v.string(),\n /** Variation attribute value. */\n value: v.string(),\n});\n\nexport const WCStoreCartAddItemArgsSchema = v.object({\n /** The basket item product or variation ID. */\n id: v.optional(v.number()),\n /** Quantity of this item to add to the basket. */\n quantity: v.optional(v.number()),\n /** Chosen attributes (for variations). */\n variation: v.optional(v.array(WCStoreCartAddItemArgsItemsSchema)),\n});\n\nexport const parseWCStoreCartAddItemArgs: (args: unknown) => WCStoreCartAddItemArgs = args =>\n v.parse(WCStoreCartAddItemArgsSchema, args);\n"],"names":["v.object","v.string","v.optional","v.number","v.array","v.parse"],"mappings":";AAIa,MAAA,oCAAoCA,OAAS;AAAA;AAAA,EAExD,WAAWC,OAAS;AAAA;AAAA,EAEpB,OAAOA,OAAS;AAClB,CAAC;AAEY,MAAA,+BAA+BD,OAAS;AAAA;AAAA,EAEnD,IAAIE,SAAWC,QAAU;AAAA;AAAA,EAEzB,UAAUD,SAAWC,QAAU;AAAA;AAAA,EAE/B,WAAWD,SAAWE,MAAQ,iCAAiC,CAAC;AAClE,CAAC;AAEM,MAAM,8BAAyE,CAAA,SACpFC,MAAQ,8BAA8B,IAAI;"}
{"version":3,"file":"cart-add-item.js","sources":["../../src/scripts/lib/schemas/api/cart-add-item.ts"],"sourcesContent":["import * as v from \"valibot\";\n\nimport type { WCStoreCartAddItemArgs } from \"../../types/api/cart-add-item\";\n\nexport const WCStoreCartAddItemArgsItemsSchema = v.object({\n /** Variation attribute name. */\n attribute: v.string(),\n /** Variation attribute value. */\n value: v.string(),\n});\n\nexport const WCStoreCartAddItemArgsSchema = v.object({\n /** The basket item product or variation ID. */\n id: v.optional(v.number()),\n /** Quantity of this item to add to the basket. */\n quantity: v.optional(v.number()),\n /** Chosen attributes (for variations). */\n variation: v.optional(v.array(WCStoreCartAddItemArgsItemsSchema)),\n});\n\nexport const parseWCStoreCartAddItemArgs: (args: unknown) => WCStoreCartAddItemArgs = args =>\n v.parse(WCStoreCartAddItemArgsSchema, args);\n"],"names":["v.object","v.string","v.optional","v.number","v.array"],"mappings":";AAIa,MAAA,oCAAoCA,OAAS;AAAA;AAAA,EAExD,WAAWC,OAAS;AAAA;AAAA,EAEpB,OAAOA,OAAS;AAClB,CAAC;AAEY,MAAA,+BAA+BD,OAAS;AAAA;AAAA,EAEnD,IAAIE,SAAWC,QAAU;AAAA;AAAA,EAEzB,UAAUD,SAAWC,QAAU;AAAA;AAAA,EAE/B,WAAWD,SAAWE,MAAQ,iCAAiC,CAAC;AAClE,CAAC;"}

View file

@ -1,4 +1,4 @@
import { o as object, s as string } from "./index.BulDzU6h.js";
import { o as object, s as string } from "./index.BueHQ6RV.js";
const WCStoreCartRemoveItemArgsSchema = object({
/** Unique identifier (key) for the basket item. */
key: string()

View file

@ -1,5 +1,5 @@
import { o as object, c as optional } from "./index.BulDzU6h.js";
import { W as WCStoreBillingAddressSchema, a as WCStoreShippingAddressSchema } from "./adresses.js";
import { o as object, c as optional } from "./index.BueHQ6RV.js";
import { W as WCStoreShippingAddressSchema, a as WCStoreBillingAddressSchema } from "./adresses.js";
const WCStoreCartUpdateCustomerArgsSchema = object({
billing_address: optional(WCStoreBillingAddressSchema),
shipping_address: optional(WCStoreShippingAddressSchema)

View file

@ -1,4 +1,4 @@
import { o as object, s as string, a as pipe, m as minValue, n as number } from "./index.BulDzU6h.js";
import { o as object, a as pipe, m as minValue, n as number, s as string } from "./index.BueHQ6RV.js";
const WCStoreCartUpdateItemArgsSchema = object({
/** Unique identifier (key) for the basket item to update. */
key: string(),

View file

@ -1,6 +1,6 @@
import { o as object, d as boolean, e as enum_, s as string, u as unknown, n as number, b as array, f as union, a as pipe, g as null_, h as url, i as integer } from "./index.BulDzU6h.js";
import { o as object, b as array, u as unknown, s as string, n as number, d as boolean, a as pipe, f as url, g as union, h as null_, e as enum_, i as integer } from "./index.BueHQ6RV.js";
import { C as CATALOG_VISIBILITIES } from "./cart2.js";
import { W as WCStoreBillingAddressSchema, a as WCStoreShippingAddressSchema } from "./adresses.js";
import { W as WCStoreShippingAddressSchema, a as WCStoreBillingAddressSchema } from "./adresses.js";
import { a as WCStoreShippingRateSchema } from "./couts-livraison.js";
const WCStoreCartItemTotalsSchema = object({
currency_code: string(),

View file

@ -1,5 +1,5 @@
import { o as object, j as omit, b as array, s as string, n as number, u as unknown, d as boolean } from "./index.BulDzU6h.js";
import { a as WCStoreShippingAddressSchema } from "./adresses.js";
import { o as object, b as array, s as string, d as boolean, u as unknown, n as number, j as omit } from "./index.BueHQ6RV.js";
import { W as WCStoreShippingAddressSchema } from "./adresses.js";
const WCStoreShippingRateItemSchema = object({
key: string(),
name: string(),

View file

@ -54,42 +54,42 @@ const SELECTEUR_IMAGE_COLONNE_GAUCHE = ".colonne-gauche img";
const SELECTEUR_IMAGES_COLONNE_DROITE = ".colonne-droite img";
const SELECTEUR_PRIX_PRODUIT = ".selecteur-produit__prix";
export {
SELECTEUR_BOITE_TEXTE as $,
CLASS_EPINGLE as $,
ATTRIBUT_CONTIENT_ARTICLES as A,
SELECTEUR_PRIX_LIGNE_PANIER as B,
ATTRIBUT_DESACTIVE as C,
ATTRIBUT_DESACTIVE as B,
SELECTEUR_PRIX_LIGNE_PANIER as C,
SELECTEUR_BOUTON_AJOUT_PANIER as D,
SELECTEUR_SELECTEUR_QUANTITE as E,
SELECTEUR_LIENS_ONGLETS as F,
SELECTEUR_SECTIONS_CONTENUS as G,
SELECTEUR_PRIX_PRODUIT as H,
SELECTEUR_CONTENEUR_FLECHES_DEFILEMENT as I,
SELECTEUR_FLECHE_DEFILEMENT_GAUCHE as J,
SELECTEUR_FLECHE_DEFILEMENT_DROITE as K,
SELECTEUR_PHOTOS_PRODUIT as L,
SELECTEUR_IMAGE_COLONNE_GAUCHE as M,
SELECTEUR_IMAGES_COLONNE_DROITE as N,
ATTRIBUT_INDEX_IMAGE_ACTIVE as O,
ATTRIBUT_ARIA_SELECTED as P,
ATTRIBUT_PRIX as Q,
SELECTEUR_PRIX_PRODUIT as F,
SELECTEUR_LIENS_ONGLETS as G,
SELECTEUR_SECTIONS_CONTENUS as H,
ATTRIBUT_ARIA_SELECTED as I,
ATTRIBUT_PRIX as J,
SELECTEUR_CONTENEUR_FLECHES_DEFILEMENT as K,
SELECTEUR_FLECHE_DEFILEMENT_GAUCHE as L,
SELECTEUR_FLECHE_DEFILEMENT_DROITE as M,
SELECTEUR_PHOTOS_PRODUIT as N,
SELECTEUR_IMAGE_COLONNE_GAUCHE as O,
SELECTEUR_IMAGES_COLONNE_DROITE as P,
ATTRIBUT_INDEX_IMAGE_ACTIVE as Q,
SELECTEUR_BOUTON_MENU_MOBILE as R,
SELECTEUR_BOUTON_PANIER as S,
SELECTEUR_MENU_MOBILE as T,
ATTRIBUT_MENU_MOBILE_ACTIVE as U,
ATTRIBUT_ID_ENSEMBLE_EPINGLE_BOITE as V,
ATTRIBUT_ENSEMBLE_EPINGLE_BOITE_ACTIF as W,
CLASS_BOUTON_FERMETURE_BOITE_TEXTE as X,
CLASS_EPINGLE as Y,
SELECTEUR_CONTENEUR_STORYTELLING_A_PROPOS as Z,
SELECTEUR_EPINGLE as _,
SELECTEUR_CONTENEUR_STORYTELLING_A_PROPOS as V,
SELECTEUR_EPINGLE as W,
SELECTEUR_BOITE_TEXTE as X,
ATTRIBUT_ID_ENSEMBLE_EPINGLE_BOITE as Y,
ATTRIBUT_ENSEMBLE_EPINGLE_BOITE_ACTIF as Z,
CLASS_BOUTON_FERMETURE_BOITE_TEXTE as _,
SELECTEUR_MENU_CATEGORIES_PRODUITS as a,
SELECTEUR_ENTREE_MENU_CATEGORIES_PRODUITS as b,
SELECTEUR_CONTENEUR_STORYTELLING as c,
SELECTEUR_IMAGES_STORYTELLING as d,
ATTRIBUT_CACHE as e,
ATTRIBUT_ARIA_HIDDEN as f,
SELECTEUR_BOUTON_PLUS_PRODUITS as g,
SELECTEUR_GRILLE_PRODUITS as h,
SELECTEUR_GRILLE_PRODUITS as g,
SELECTEUR_BOUTON_PLUS_PRODUITS as h,
ATTRIBUT_ID_CATEGORIE_PRODUITS as i,
ATTRIBUT_PAGE as j,
ATTRIBUT_HIDDEN as k,

View file

@ -1,7 +1,7 @@
import { e as creeSyntaxError, f as reporteEtLeveErreur, g as ErreurEntreeInexistante, h as ERREUR_SYNTAXE_INVALIDE, i as ERREUR_SELECTEUR_INEXISTANT } from "./erreurs.js";
import { p as pipe } from "./pipe.XPB0wEfw.js";
import { e as creeSyntaxError, f as ERREUR_SYNTAXE_INVALIDE, g as ERREUR_SELECTEUR_INEXISTANT, h as reporteEtLeveErreur, i as ErreurEntreeInexistante } from "./erreurs.js";
import { E as Either, r as right, l as left, M as Maybe } from "./Either.wHNxn7Os.js";
import "./exports.DtgtFHVi.js";
import { p as pipe } from "./pipe.XPB0wEfw.js";
import "./exports.DT-46nyp.js";
function int_compare(e, r) {
if (e < r) {
return -1;
@ -2037,26 +2037,26 @@ const eitherSessionStorageGet = (cle) => Maybe.fromNullable(sessionStorage.getIt
const eitherJsonParse = (chaine) => Either.encase(() => JSON.parse(chaine));
export {
Ra as R,
recupereElementsAvecSelecteur as a,
eitherJsonParse as b,
recupereElementAvecSelecteur as c,
recupereElementAvecSelecteur as a,
recupereElementsAvecSelecteur as b,
eitherJsonParse as c,
recupereElementsOuLeve as d,
eitherSessionStorageGet as e,
equal as f,
someU as f,
everyU as g,
html as h,
some$1 as i,
values as j,
fromArray as k,
get$1 as l,
forEachU as m,
mapU as n,
reduceU as o,
append as p,
nullable_to_opt as q,
equal as i,
fromArray as j,
reduceU as k,
append as l,
mapU as m,
forEachU as n,
get$1 as o,
values as p,
concat$1 as q,
recupereElementOuLeve as r,
someU as s,
concat$1 as t,
some$1 as s,
nullable_to_opt as t,
unsafeDeleteKey as u,
valFromOption as v
};

View file

@ -1,4 +1,4 @@
import { c as captureException } from "./exports.DtgtFHVi.js";
import { c as captureException } from "./exports.DT-46nyp.js";
const ERREUR_SYNTAXE_INVALIDE = (selecteur) => `Le selecteur "${selecteur}" est invalide`;
const ERREUR_SELECTEUR_INEXISTANT = (selecteur) => `La requête "${selecteur}" n'a retourné aucun Élément.`;
const creeSyntaxError = (message) => new SyntaxError(message);
@ -77,10 +77,10 @@ export {
leveUnauthorizedError as c,
leveNotFoundError as d,
creeSyntaxError as e,
reporteEtLeveErreur as f,
ErreurEntreeInexistante as g,
ERREUR_SYNTAXE_INVALIDE as h,
ERREUR_SELECTEUR_INEXISTANT as i,
ERREUR_SYNTAXE_INVALIDE as f,
ERREUR_SELECTEUR_INEXISTANT as g,
reporteEtLeveErreur as h,
ErreurEntreeInexistante as i,
leveServerError as l,
reporteErreur as r
};

View file

@ -1,4 +1,4 @@
import { l as is, o as object, n as number, s as string } from "./index.BulDzU6h.js";
import { l as is, o as object, n as number, s as string } from "./index.BueHQ6RV.js";
const WCErrorBodySchema = object({
code: string(),
data: object({

View file

@ -84,7 +84,7 @@ function safeJoin(input, delimiter) {
const SDK_VERSION = "8.38.0";
const GLOBAL_OBJ = globalThis;
function getGlobalSingleton(name, creator, obj) {
const gbl = GLOBAL_OBJ;
const gbl = obj || GLOBAL_OBJ;
const __SENTRY__ = gbl.__SENTRY__ = gbl.__SENTRY__ || {};
const versionedCarrier = __SENTRY__[SDK_VERSION] = __SENTRY__[SDK_VERSION] || {};
return versionedCarrier[name] || (versionedCarrier[name] = creator());
@ -2117,8 +2117,8 @@ function captureEvent(event, hint) {
}
export {
getCurrentScope as $,
isPlainObject as A,
isParameterizedString as B,
isThenable as A,
isPlainObject as B,
CONSOLE_LEVELS as C,
DEBUG_BUILD$1 as D,
SDK_VERSION as E,
@ -2126,24 +2126,24 @@ export {
GLOBAL_OBJ as G,
getOriginalFunction as H,
getFramesFromEvent as I,
addExceptionMechanism as J,
isErrorEvent as K,
isDOMError as L,
isDOMException as M,
addExceptionTypeValue as N,
isEvent as O,
normalizeToSize as P,
extractExceptionKeysForMessage as Q,
isErrorEvent as J,
isDOMError as K,
isDOMException as L,
addExceptionTypeValue as M,
isEvent as N,
normalizeToSize as O,
extractExceptionKeysForMessage as P,
addExceptionMechanism as Q,
isString as R,
SyncPromise as S,
createStackParser as T,
UNKNOWN_FUNCTION as U,
getEventDescription as V,
safeJoin as V,
htmlTreeAsString as W,
safeJoin as X,
getEventDescription as X,
getComponentName as Y,
captureEvent as Z,
getLocationHref as _,
getLocationHref as Z,
captureEvent as _,
consoleSandbox as a,
timestampInSeconds as b,
captureException as c,
@ -2151,7 +2151,7 @@ export {
addNonEnumerableProperty as e,
fill as f,
getFunctionName as g,
resolvedSyncPromise as h,
rejectedSyncPromise as h,
isInstanceOf as i,
dropUndefinedKeys as j,
dateTimestampInSeconds as k,
@ -2161,14 +2161,14 @@ export {
originalConsoleMethods as o,
uuid4 as p,
checkOrSetAlreadyCaught as q,
rejectedSyncPromise as r,
resolvedSyncPromise as r,
isPrimitive as s,
truncate as t,
urlEncode as u,
updateSession as v,
prepareEvent as w,
getDynamicSamplingContextFromClient as x,
getIsolationScope as y,
isThenable as z
isParameterizedString as v,
updateSession as w,
prepareEvent as x,
getDynamicSamplingContextFromClient as y,
getIsolationScope as z
};
//# sourceMappingURL=exports.DtgtFHVi.js.map
//# sourceMappingURL=exports.DT-46nyp.js.map

View file

@ -1,5 +1,5 @@
import { g as ENTETE_GLITCHTIP_RATE_LIMITS, h as ENTETE_GLITCHTIP_RETRY_AFTER } from "./api.js";
import { i as isInstanceOf, t as truncate, a as consoleSandbox, D as DEBUG_BUILD$1, l as logger, g as getFunctionName, G as GLOBAL_OBJ, C as CONSOLE_LEVELS, f as fill, o as originalConsoleMethods, b as timestampInSeconds, d as isError, e as addNonEnumerableProperty, r as rejectedSyncPromise, S as SyncPromise, h as resolvedSyncPromise, j as dropUndefinedKeys, n as normalize, k as dateTimestampInSeconds, m as DEBUG_BUILD$2, u as urlEncode, p as uuid4, q as checkOrSetAlreadyCaught, s as isPrimitive, v as updateSession, w as prepareEvent, x as getDynamicSamplingContextFromClient, y as getIsolationScope, z as isThenable, A as isPlainObject, B as isParameterizedString, E as SDK_VERSION, F as getClient, H as getOriginalFunction, I as getFramesFromEvent, J as addExceptionMechanism, K as isErrorEvent$1, L as isDOMError, M as isDOMException, N as addExceptionTypeValue, O as isEvent, P as normalizeToSize, Q as extractExceptionKeysForMessage, R as isString, T as createStackParser, U as UNKNOWN_FUNCTION, V as getEventDescription, W as htmlTreeAsString, X as safeJoin, Y as getComponentName, Z as captureEvent, _ as getLocationHref, $ as getCurrentScope } from "./exports.DtgtFHVi.js";
import { g as ENTETE_GLITCHTIP_RETRY_AFTER, h as ENTETE_GLITCHTIP_RATE_LIMITS } from "./api.js";
import { i as isInstanceOf, t as truncate, a as consoleSandbox, D as DEBUG_BUILD$1, l as logger, g as getFunctionName, G as GLOBAL_OBJ, C as CONSOLE_LEVELS, f as fill, o as originalConsoleMethods, b as timestampInSeconds, d as isError, e as addNonEnumerableProperty, S as SyncPromise, r as resolvedSyncPromise, h as rejectedSyncPromise, j as dropUndefinedKeys, n as normalize, k as dateTimestampInSeconds, m as DEBUG_BUILD$2, u as urlEncode, p as uuid4, q as checkOrSetAlreadyCaught, s as isPrimitive, v as isParameterizedString, w as updateSession, x as prepareEvent, y as getDynamicSamplingContextFromClient, z as getIsolationScope, A as isThenable, B as isPlainObject, E as SDK_VERSION, F as getClient, H as getOriginalFunction, I as getFramesFromEvent, J as isErrorEvent$1, K as isDOMError, L as isDOMException, M as addExceptionTypeValue, N as isEvent, O as normalizeToSize, P as extractExceptionKeysForMessage, Q as addExceptionMechanism, R as isString, T as createStackParser, U as UNKNOWN_FUNCTION, V as safeJoin, W as htmlTreeAsString, X as getEventDescription, Y as getComponentName, Z as getLocationHref, _ as captureEvent, $ as getCurrentScope } from "./exports.DT-46nyp.js";
import { p as pipe } from "./pipe.XPB0wEfw.js";
function applyAggregateErrorsToEvent(exceptionFromErrorImplementation, parser, maxValueLimit = 250, key, limit, event, hint) {
if (!event.exception || !event.exception.values || !hint || !isInstanceOf(hint.originalException, Error)) {

View file

@ -1,5 +1,5 @@
import { f as ROUTE_API_PANIER, E as ENTETE_WC_NONCE } from "./api.js";
import { E as EitherAsync } from "./MaybeAsync.AE1jnxuc.js";
import { E as EitherAsync } from "./MaybeAsync.Ba-OfjWy.js";
import { r as right, l as left } from "./Either.wHNxn7Os.js";
const ETATS = _etats;
const requeteRecuperePanier = () => fetch(

View file

@ -1,5 +1,5 @@
import { f as equal, g as everyU, s as someU, i as some, v as valFromOption } from "./dom2.js";
import { i as is_extension, a as isSome, m as mapWithDefaultU } from "./belt_Option-91f3b350.D8kNxoqg.js";
import { s as some, v as valFromOption, f as someU, g as everyU, i as equal } from "./dom2.js";
import { i as is_extension, m as mapWithDefaultU, a as isSome } from "./belt_Option-91f3b350.BKMoZFhU.js";
function internalToOCamlException(e) {
if (is_extension(e)) {
return e;
@ -580,4 +580,4 @@ export {
l,
tap as t
};
//# sourceMappingURL=index-0eef19ec.DjnU1cik.js.map
//# sourceMappingURL=index-0eef19ec.CFsloYN6.js.map

View file

@ -584,9 +584,9 @@ export {
optional as c,
boolean as d,
enum_ as e,
union as f,
null_ as g,
url as h,
url as f,
union as g,
null_ as h,
integer as i,
omit as j,
maxValue as k,
@ -599,4 +599,4 @@ export {
unknown as u,
value as v
};
//# sourceMappingURL=index.BulDzU6h.js.map
//# sourceMappingURL=index.BueHQ6RV.js.map

View file

@ -1,9 +1,9 @@
import { p as parse } from "./index.BulDzU6h.js";
import { p as parse } from "./index.BueHQ6RV.js";
import { N as NOM_CANAL_BOUTON_PANIER, T as TYPES_MESSAGES, a as NOM_CANAL_CONTENU_PANIER } from "./messages3.js";
import { r as reporteErreur } from "./erreurs.js";
import { M as MessageMajBoutonPanierSchema, a as MessageMajContenuPanierSchema } from "./messages2.js";
import { E as Either } from "./Either.wHNxn7Os.js";
import "./exports.DtgtFHVi.js";
import "./exports.DT-46nyp.js";
import "./cart.js";
import "./cart2.js";
import "./adresses.js";

View file

@ -1,4 +1,4 @@
import { e as enum_, o as object, a as pipe, v as value, s as string, n as number, b as array } from "./index.BulDzU6h.js";
import { e as enum_, o as object, a as pipe, v as value, s as string, n as number, b as array } from "./index.BueHQ6RV.js";
import { T as TYPES_MESSAGES } from "./messages3.js";
import { a as WCStoreCartItemSchema } from "./cart.js";
import "./cart2.js";

View file

@ -1,6 +1,6 @@
import { o as object, a as pipe, b as array, s as string, e as enum_, c as optional, f as union, d as boolean, u as unknown, i as integer, n as number, g as null_ } from "./index.BulDzU6h.js";
import { o as object, s as string, b as array, a as pipe, i as integer, n as number, e as enum_, u as unknown, c as optional, d as boolean, g as union, h as null_ } from "./index.BueHQ6RV.js";
import { T as TAX_STATUSES, O as ORDER_STATUSES } from "./orders3.js";
import { W as WCStoreBillingAddressSchema, a as WCStoreShippingAddressSchema } from "./adresses.js";
import { W as WCStoreShippingAddressSchema, a as WCStoreBillingAddressSchema } from "./adresses.js";
const WCV3OrdersCouponLineMetaDataSchema = object({
id: pipe(number(), integer()),
key: string(),

View file

@ -1,5 +1,5 @@
import { o as object, c as optional, e as enum_, a as pipe, m as minValue, n as number, k as maxValue, b as array, s as string, d as boolean, f as union, u as unknown, i as integer, g as null_, h as url } from "./index.BulDzU6h.js";
import { A as ATTRIBUTES_RELATIONS, C as CATALOG_VISIBILITIES, a as CATEGORY_OPERATORS, P as PRODUCTS_CONTEXTES, D as DATE_COLUMN_VALUES, O as ORDER_VALUES, b as ORDERBY_VALUES, R as RATINGS, c as PRODUCT_STATUTES, S as STOCK_STATUSES, T as TAG_OPERATORS, d as PRODUCT_TYPES, B as BACKORDERS_SETTINGS, e as TAX_STATUTES } from "./products2.js";
import { o as object, c as optional, e as enum_, s as string, b as array, a as pipe, k as maxValue, m as minValue, n as number, i as integer, d as boolean, u as unknown, g as union, h as null_, f as url } from "./index.BueHQ6RV.js";
import { P as PRODUCT_TYPES, T as TAG_OPERATORS, S as STOCK_STATUSES, a as PRODUCT_STATUTES, R as RATINGS, O as ORDERBY_VALUES, b as ORDER_VALUES, D as DATE_COLUMN_VALUES, c as PRODUCTS_CONTEXTES, C as CATEGORY_OPERATORS, d as CATALOG_VISIBILITIES, A as ATTRIBUTES_RELATIONS, e as TAX_STATUTES, B as BACKORDERS_SETTINGS } from "./products2.js";
const WCV3ProductsArgsSchema = object({
// Date ISO8601
after: optional(string()),

View file

@ -86,17 +86,17 @@ const BACKORDERS_SETTINGS = {
export {
ATTRIBUTES_RELATIONS as A,
BACKORDERS_SETTINGS as B,
CATALOG_VISIBILITIES as C,
CATEGORY_OPERATORS as C,
DATE_COLUMN_VALUES as D,
ORDER_VALUES as O,
PRODUCTS_CONTEXTES as P,
ORDERBY_VALUES as O,
PRODUCT_TYPES as P,
RATINGS as R,
STOCK_STATUSES as S,
TAG_OPERATORS as T,
CATEGORY_OPERATORS as a,
ORDERBY_VALUES as b,
PRODUCT_STATUTES as c,
PRODUCT_TYPES as d,
PRODUCT_STATUTES as a,
ORDER_VALUES as b,
PRODUCTS_CONTEXTES as c,
CATALOG_VISIBILITIES as d,
TAX_STATUTES as e
};
//# sourceMappingURL=products2.js.map

View file

@ -1,5 +1,5 @@
import { o as object, c as optional, e as enum_, a as pipe, m as minValue, n as number, k as maxValue, b as array, s as string, u as unknown, d as boolean, f as union, i as integer, g as null_ } from "./index.BulDzU6h.js";
import { A as ATTRIBUTES_RELATIONS, C as CATALOG_VISIBILITIES, a as CATEGORY_OPERATORS, P as PRODUCTS_CONTEXTES, D as DATE_COLUMN_VALUES, O as ORDER_VALUES, b as ORDERBY_VALUES, R as RATINGS, S as STOCK_STATUSES, T as TAG_OPERATORS, d as PRODUCT_TYPES } from "./products2.js";
import { o as object, c as optional, e as enum_, s as string, b as array, a as pipe, k as maxValue, m as minValue, n as number, i as integer, d as boolean, u as unknown, g as union, h as null_ } from "./index.BueHQ6RV.js";
import { P as PRODUCT_TYPES, T as TAG_OPERATORS, S as STOCK_STATUSES, R as RATINGS, O as ORDERBY_VALUES, b as ORDER_VALUES, D as DATE_COLUMN_VALUES, c as PRODUCTS_CONTEXTES, C as CATEGORY_OPERATORS, d as CATALOG_VISIBILITIES, A as ATTRIBUTES_RELATIONS } from "./products2.js";
object({
// Date ISO8601
after: optional(optional(string())),

View file

@ -1,10 +1,10 @@
import { z, N } from "./index.CeK6pfoJ.js";
import { p as parse } from "./index.BulDzU6h.js";
import { p as parse } from "./index.BueHQ6RV.js";
import { E as ENTETE_WC_NONCE } from "./api.js";
import { b as leveBadRequestError, c as leveUnauthorizedError, d as leveNotFoundError, E as ErreurInconnue, a as leveErreur } from "./erreurs.js";
import { e as estWCError } from "./erreurs2.js";
import { p as pipe } from "./pipe.XPB0wEfw.js";
import "./exports.DtgtFHVi.js";
import "./exports.DT-46nyp.js";
const getBackend = (args) => fetch(
`${args.route}?${args.searchParams}`,
{

View file

@ -5,9 +5,9 @@ import { v as valideMessageMajBoutonPanier } from "./messages.js";
import { r as recupereElementDocumentEither } from "./utils.js";
import { p as pipe } from "./pipe.XPB0wEfw.js";
import "./erreurs.js";
import "./exports.DtgtFHVi.js";
import "./exports.DT-46nyp.js";
import "./Either.wHNxn7Os.js";
import "./index.BulDzU6h.js";
import "./index.BueHQ6RV.js";
import "./messages2.js";
import "./cart.js";
import "./cart2.js";

View file

@ -3,7 +3,7 @@ import { a as SELECTEUR_MENU_CATEGORIES_PRODUITS, b as SELECTEUR_ENTREE_MENU_CAT
import { a as recupereElementDansDocumentOuLeve, b as recupereElementsDansDocumentOuLeve } from "./utils.js";
import { R as Ra } from "./dom2.js";
import "./erreurs.js";
import "./exports.DtgtFHVi.js";
import "./exports.DT-46nyp.js";
import "./pipe.XPB0wEfw.js";
import "./Either.wHNxn7Os.js";
document.addEventListener("DOMContentLoaded", () => {

View file

@ -5,9 +5,9 @@ import { R as SELECTEUR_BOUTON_MENU_MOBILE, T as SELECTEUR_MENU_MOBILE, U as ATT
import { a as recupereElementDansDocumentOuLeve } from "./utils.js";
import "./dom2.js";
import "./erreurs.js";
import "./exports.DtgtFHVi.js";
import "./pipe.XPB0wEfw.js";
import "./exports.DT-46nyp.js";
import "./Either.wHNxn7Os.js";
import "./pipe.XPB0wEfw.js";
const not = {
inert: ":not([inert]):not([inert] *)",
negTabIndex: ':not([tabindex^="-"])',

View file

@ -1,10 +1,10 @@
import { V as ATTRIBUT_ID_ENSEMBLE_EPINGLE_BOITE, W as ATTRIBUT_ENSEMBLE_EPINGLE_BOITE_ACTIF, X as CLASS_BOUTON_FERMETURE_BOITE_TEXTE, Y as CLASS_EPINGLE, Z as SELECTEUR_CONTENEUR_STORYTELLING_A_PROPOS, _ as SELECTEUR_EPINGLE, $ as SELECTEUR_BOITE_TEXTE } from "./dom.js";
import { V as SELECTEUR_CONTENEUR_STORYTELLING_A_PROPOS, W as SELECTEUR_EPINGLE, X as SELECTEUR_BOITE_TEXTE, Y as ATTRIBUT_ID_ENSEMBLE_EPINGLE_BOITE, Z as ATTRIBUT_ENSEMBLE_EPINGLE_BOITE_ACTIF, _ as CLASS_BOUTON_FERMETURE_BOITE_TEXTE, $ as CLASS_EPINGLE } from "./dom.js";
import { a as recupereElementDansDocumentOuLeve, b as recupereElementsDansDocumentOuLeve } from "./utils.js";
import { i as some, o as reduceU, q as nullable_to_opt, v as valFromOption, f as equal, t as concat, R as Ra } from "./dom2.js";
import { k as reduceU, q as concat, v as valFromOption, s as some, i as equal, t as nullable_to_opt, R as Ra } from "./dom2.js";
import { p as pipe } from "./pipe.XPB0wEfw.js";
import { _ as _1, i as is_extension, c as create, g as getExn, b as getWithDefault$1, d as isNone, a as isSome, f as flatMap$1, e as mapU, h as flatMapU, m as mapWithDefaultU } from "./belt_Option-91f3b350.D8kNxoqg.js";
import { _ as _1, i as is_extension, c as create, f as flatMapU, m as mapWithDefaultU, a as isSome, b as isNone, g as getWithDefault$1, d as getExn, e as mapU, h as flatMap$1 } from "./belt_Option-91f3b350.BKMoZFhU.js";
import "./erreurs.js";
import "./exports.DtgtFHVi.js";
import "./exports.DT-46nyp.js";
import "./Either.wHNxn7Os.js";
var t = create("Promise.JsError");
function $$catch(r, s) {

View file

@ -3,9 +3,9 @@ import { e as estEntreDeuxNombres } from "./nombres.js";
import { a as recupereElementDansDocumentOuLeve, b as recupereElementsDansDocumentOuLeve } from "./utils.js";
import "./dom2.js";
import "./erreurs.js";
import "./exports.DtgtFHVi.js";
import "./pipe.XPB0wEfw.js";
import "./exports.DT-46nyp.js";
import "./Either.wHNxn7Os.js";
import "./pipe.XPB0wEfw.js";
const initialiseScrollStorytelling = () => {
const STORYTELLING = recupereElementDansDocumentOuLeve(SELECTEUR_CONTENEUR_STORYTELLING);
const CONTENEUR_STORYTELLING = recupereElementDansDocumentOuLeve(".storytelling__conteneur");

View file

@ -1,21 +1,21 @@
import { z, N } from "./index.CeK6pfoJ.js";
import { p as parse } from "./index.BulDzU6h.js";
import { p as parse } from "./index.BueHQ6RV.js";
import { R as ROUTE_API_NOUVELLE_PRODUCTS } from "./api.js";
import { g as SELECTEUR_BOUTON_PLUS_PRODUITS, h as SELECTEUR_GRILLE_PRODUITS, i as ATTRIBUT_ID_CATEGORIE_PRODUITS, j as ATTRIBUT_PAGE, k as ATTRIBUT_HIDDEN } from "./dom.js";
import { g as SELECTEUR_GRILLE_PRODUITS, h as SELECTEUR_BOUTON_PLUS_PRODUITS, i as ATTRIBUT_ID_CATEGORIE_PRODUITS, j as ATTRIBUT_PAGE, k as ATTRIBUT_HIDDEN } from "./dom.js";
import { h as html } from "./dom2.js";
import { l as leveServerError } from "./erreurs.js";
import { e as estReponse500 } from "./gardes.js";
import { g as getBackend, t as traiteReponseBackendWCSelonCodesHTTP } from "./reseau.js";
import { W as WCV3ProductsArgsSchema, a as WCV3ProductsSchema } from "./products.js";
import { a as recupereElementDansDocumentOuLeve, r as recupereElementDocumentEither } from "./utils.js";
import { E as EitherAsync } from "./MaybeAsync.AE1jnxuc.js";
import { E as EitherAsync } from "./MaybeAsync.Ba-OfjWy.js";
import { p as pipe } from "./pipe.XPB0wEfw.js";
import { t as tap } from "./index-0eef19ec.DjnU1cik.js";
import { t as tap } from "./index-0eef19ec.CFsloYN6.js";
import { E as Either } from "./Either.wHNxn7Os.js";
import "./exports.DtgtFHVi.js";
import "./exports.DT-46nyp.js";
import "./erreurs2.js";
import "./products2.js";
import "./belt_Option-91f3b350.D8kNxoqg.js";
import "./belt_Option-91f3b350.BKMoZFhU.js";
const ETATS_PAGE = _etats;
const GRILLE_PRODUITS = recupereElementDansDocumentOuLeve(SELECTEUR_GRILLE_PRODUITS);
const BOUTON_PLUS_DE_PRODUITS = recupereElementDocumentEither(

View file

@ -1,9 +1,9 @@
import { z } from "./index.CeK6pfoJ.js";
import { p as parse, V as ValiError } from "./index.BulDzU6h.js";
import { p as parse, V as ValiError } from "./index.BueHQ6RV.js";
import { a as ROUTE_API_RETIRE_ARTICLE_PANIER, b as ROUTE_API_MAJ_ARTICLE_PANIER, c as ROUTE_API_MAJ_CLIENT, d as ROUTE_API_NOUVELLE_COMMANDES } from "./api.js";
import { l as SELECTEUR_ENTREES_PANIER, m as SELECTEUR_CONTENEUR_PANIER, n as SELECTEUR_SOUS_TOTAL_PRODUITS, o as SELECTEUR_SOUS_TOTAL_LIVRAISON_COUT, p as SELECTEUR_SOUS_TOTAL_LIVRAISON_PRESTATAIRE, q as SELECTEUR_TOTAL_PANIER, r as SELECTEUR_BOUTON_SEPARATION_ADRESSES, s as SELECTEUR_FORMULAIRE_PANIER, t as SELECTEUR_FORMULAIRE_FACTURATION, u as SELECTEUR_BOUTON_ACTIONS_FORMULAIRE, v as ATTRIBUT_CLE_PANIER, w as SELECTEUR_BOUTON_SOUSTRACTION_QUANTITE, x as SELECTEUR_CHAMP_QUANTITE_LIGNE_PANIER, y as SELECTEUR_BOUTON_ADDITION_QUANTITE, z as SELECTEUR_BOUTON_SUPPRESSION_PANIER, A as ATTRIBUT_CONTIENT_ARTICLES, B as SELECTEUR_PRIX_LIGNE_PANIER, k as ATTRIBUT_HIDDEN, C as ATTRIBUT_DESACTIVE } from "./dom.js";
import { l as SELECTEUR_ENTREES_PANIER, m as SELECTEUR_CONTENEUR_PANIER, n as SELECTEUR_SOUS_TOTAL_PRODUITS, o as SELECTEUR_SOUS_TOTAL_LIVRAISON_COUT, p as SELECTEUR_SOUS_TOTAL_LIVRAISON_PRESTATAIRE, q as SELECTEUR_TOTAL_PANIER, r as SELECTEUR_BOUTON_SEPARATION_ADRESSES, s as SELECTEUR_FORMULAIRE_PANIER, t as SELECTEUR_FORMULAIRE_FACTURATION, u as SELECTEUR_BOUTON_ACTIONS_FORMULAIRE, v as ATTRIBUT_CLE_PANIER, w as SELECTEUR_BOUTON_SOUSTRACTION_QUANTITE, x as SELECTEUR_CHAMP_QUANTITE_LIGNE_PANIER, y as SELECTEUR_BOUTON_ADDITION_QUANTITE, z as SELECTEUR_BOUTON_SUPPRESSION_PANIER, B as ATTRIBUT_DESACTIVE, A as ATTRIBUT_CONTIENT_ARTICLES, C as SELECTEUR_PRIX_LIGNE_PANIER, k as ATTRIBUT_HIDDEN } from "./dom.js";
import { N as NOM_CANAL_BOUTON_PANIER, a as NOM_CANAL_CONTENU_PANIER } from "./messages3.js";
import { r as recupereElementOuLeve, a as recupereElementsAvecSelecteur, e as eitherSessionStorageGet, b as eitherJsonParse, c as recupereElementAvecSelecteur } from "./dom2.js";
import { r as recupereElementOuLeve, a as recupereElementAvecSelecteur, b as recupereElementsAvecSelecteur, e as eitherSessionStorageGet, c as eitherJsonParse } from "./dom2.js";
import { l as leveServerError, r as reporteErreur, a as leveErreur } from "./erreurs.js";
import { e as estReponse500, a as estError } from "./gardes.js";
import { e as emetMessageMajBoutonPanier, a as emetMessageMajContenuPanier, v as valideMessageMajBoutonPanier, b as valideMessageMajContenuPanier } from "./messages.js";
@ -17,15 +17,15 @@ import { W as WCV3OrdersArgsSchema, a as WCV3OrderSchema } from "./orders2.js";
import { c as recupereElementsDocumentEither, r as recupereElementDocumentEither, y, p as propEither, a as recupereElementDansDocumentOuLeve } from "./utils.js";
import { e as eitherParse } from "./validation.js";
import { p as pipe } from "./pipe.XPB0wEfw.js";
import { l } from "./index-0eef19ec.DjnU1cik.js";
import { l } from "./index-0eef19ec.CFsloYN6.js";
import { M as Maybe, E as Either } from "./Either.wHNxn7Os.js";
import "./exports.DtgtFHVi.js";
import "./exports.DT-46nyp.js";
import "./messages2.js";
import "./erreurs2.js";
import "./cart2.js";
import "./adresses.js";
import "./orders3.js";
import "./belt_Option-91f3b350.D8kNxoqg.js";
import "./belt_Option-91f3b350.BKMoZFhU.js";
const ETATS_PAGE = _etats;
const ENTREES_PANIER_EITHER = recupereElementsDocumentEither(
SELECTEUR_ENTREES_PANIER
@ -419,7 +419,6 @@ const initialiseBoutonCreationCommande = () => {
}
]
};
console.debug(argumentsFormulaire);
eitherParse(argumentsFormulaire, WCV3OrdersArgsSchema).map(async (args) => {
await postBackend({
authString: ETATS_PAGE.authString,
@ -434,12 +433,7 @@ const initialiseBoutonCreationCommande = () => {
// Traite tous les codes HTTP possibles
(corpsReponse) => {
console.debug(corpsReponse);
return Either.encase(
() => traiteReponseBackendWCSelonCodesHTTP(
corpsReponse,
WCV3OrderSchema
)
);
return eitherParse(corpsReponse, WCV3OrderSchema);
},
(reponse2) => reponse2.ifRight((r) => {
const url = new URL(`https://${window.location.host}/checkout`);

File diff suppressed because one or more lines are too long

View file

@ -1,25 +1,27 @@
import { z, N } from "./index.CeK6pfoJ.js";
import { p as parse } from "./index.BulDzU6h.js";
import { z } from "./index.CeK6pfoJ.js";
import { e as ROUTE_API_AJOUTE_ARTICLE_PANIER, E as ENTETE_WC_NONCE } from "./api.js";
import { D as SELECTEUR_BOUTON_AJOUT_PANIER, E as SELECTEUR_SELECTEUR_QUANTITE, F as SELECTEUR_LIENS_ONGLETS, G as SELECTEUR_SECTIONS_CONTENUS, H as SELECTEUR_PRIX_PRODUIT, I as SELECTEUR_CONTENEUR_FLECHES_DEFILEMENT, J as SELECTEUR_FLECHE_DEFILEMENT_GAUCHE, K as SELECTEUR_FLECHE_DEFILEMENT_DROITE, L as SELECTEUR_PHOTOS_PRODUIT, M as SELECTEUR_IMAGE_COLONNE_GAUCHE, N as SELECTEUR_IMAGES_COLONNE_DROITE, O as ATTRIBUT_INDEX_IMAGE_ACTIVE, P as ATTRIBUT_ARIA_SELECTED, k as ATTRIBUT_HIDDEN, C as ATTRIBUT_DESACTIVE, Q as ATTRIBUT_PRIX } from "./dom.js";
import { D as SELECTEUR_BOUTON_AJOUT_PANIER, E as SELECTEUR_SELECTEUR_QUANTITE, F as SELECTEUR_PRIX_PRODUIT, G as SELECTEUR_LIENS_ONGLETS, H as SELECTEUR_SECTIONS_CONTENUS, I as ATTRIBUT_ARIA_SELECTED, k as ATTRIBUT_HIDDEN, B as ATTRIBUT_DESACTIVE, J as ATTRIBUT_PRIX, K as SELECTEUR_CONTENEUR_FLECHES_DEFILEMENT, L as SELECTEUR_FLECHE_DEFILEMENT_GAUCHE, M as SELECTEUR_FLECHE_DEFILEMENT_DROITE, N as SELECTEUR_PHOTOS_PRODUIT, O as SELECTEUR_IMAGE_COLONNE_GAUCHE, P as SELECTEUR_IMAGES_COLONNE_DROITE, Q as ATTRIBUT_INDEX_IMAGE_ACTIVE } from "./dom.js";
import { r as recupereElementOuLeve, d as recupereElementsOuLeve, R as Ra } from "./dom2.js";
import { l as leveServerError, b as leveBadRequestError, c as leveUnauthorizedError, d as leveNotFoundError, E as ErreurInconnue, a as leveErreur, r as reporteErreur } from "./erreurs.js";
import { l as leveServerError, r as reporteErreur } from "./erreurs.js";
import { b as estHTMLSelectElement, e as estReponse500, a as estError } from "./gardes.js";
import { e as emetMessageMajBoutonPanier } from "./messages.js";
import { t as traiteReponseBackendWCSelonCodesHTTP } from "./reseau.js";
import { W as WCStoreCartSchema } from "./cart.js";
import { p as parseWCStoreCartAddItemArgs } from "./cart-add-item.js";
import { e as estWCError } from "./erreurs2.js";
import { r as recupereElementDocumentEither, a as recupereElementDansDocumentOuLeve, c as recupereElementsDocumentEither, b as recupereElementsDansDocumentOuLeve, y } from "./utils.js";
import { W as WCStoreCartAddItemArgsSchema } from "./cart-add-item.js";
import { r as recupereElementDocumentEither, a as recupereElementDansDocumentOuLeve, c as recupereElementsDocumentEither, y, b as recupereElementsDansDocumentOuLeve } from "./utils.js";
import { e as eitherParse } from "./validation.js";
import { p as pipe } from "./pipe.XPB0wEfw.js";
import { l } from "./index-0eef19ec.DjnU1cik.js";
import { M as Maybe, E as Either } from "./Either.wHNxn7Os.js";
import "./exports.DtgtFHVi.js";
import { l } from "./index-0eef19ec.CFsloYN6.js";
import { M as Maybe } from "./Either.wHNxn7Os.js";
import "./exports.DT-46nyp.js";
import "./index.BueHQ6RV.js";
import "./messages3.js";
import "./messages2.js";
import "./erreurs2.js";
import "./cart2.js";
import "./adresses.js";
import "./couts-livraison.js";
import "./belt_Option-91f3b350.D8kNxoqg.js";
import "./belt_Option-91f3b350.BKMoZFhU.js";
const ETATS_PAGE = _etats;
const deplieToutesSections = (ensembleLiensContenus) => {
ensembleLiensContenus.forEach((ensemble) => {
@ -130,16 +132,14 @@ const gereBoiteInformationsProduit = () => {
};
const ajouteProduitAuPanier = () => {
BOUTON_AJOUT_PANIER.textContent = "Adding...";
console.debug(SELECTEUR_VARIATION);
const idProduit = SELECTEUR_VARIATION.map((selecteur) => selecteur.value).orDefault(String(ETATS_PAGE.idProduit));
Either.encase(
() => parseWCStoreCartAddItemArgs({
id: Number(idProduit),
quantity: 1
})
).map((args) => {
const args = {
id: Number(idProduit),
quantity: 1
};
eitherParse(args, WCStoreCartAddItemArgsSchema).map((args2) => {
fetch(ROUTE_API_AJOUTE_ARTICLE_PANIER, {
body: JSON.stringify(args),
body: JSON.stringify(args2),
credentials: "same-origin",
headers: {
Accept: "application/json",
@ -155,7 +155,10 @@ const ajouteProduitAuPanier = () => {
// Récupère la Réponse
await reponse.json(),
// Traite tous les codes HTTPs possibles
(corpsReponse) => z(corpsReponse).with({ body: N.select(), status: 400 }, estWCError, leveBadRequestError).with({ body: N.select(), status: 401 }, estWCError, leveUnauthorizedError).with({ body: N.select(), status: 404 }, estWCError, leveNotFoundError).with(N._, (corpsOkInconnu) => parse(WCStoreCartSchema, corpsOkInconnu)).otherwise((e) => pipe(e, ErreurInconnue, leveErreur)),
(corpsReponse) => traiteReponseBackendWCSelonCodesHTTP(
corpsReponse,
WCStoreCartSchema
),
// Récupère le nombre de Produits dans la Panier
y.getUnsafe("items_count"),
// Déclenche les effets pour la mise à jour de l'IU
@ -180,7 +183,7 @@ const ajouteProduitAuPanier = () => {
}
BOUTON_AJOUT_PANIER.textContent = "Add to cart";
});
});
}).ifLeft((e) => console.error(e.issues));
};
document.addEventListener("DOMContentLoaded", () => {
gereBoiteInformationsProduit();

File diff suppressed because one or more lines are too long

View file

@ -1,8 +1,8 @@
import { j as values, k as fromArray, f as equal, l as get$1, u as unsafeDeleteKey, m as forEachU, n as mapU, o as reduceU, p as append, a as recupereElementsAvecSelecteur, c as recupereElementAvecSelecteur, r as recupereElementOuLeve, d as recupereElementsOuLeve } from "./dom2.js";
import { i as equal, j as fromArray, k as reduceU, l as append, m as mapU, n as forEachU, u as unsafeDeleteKey, o as get$1, p as values, a as recupereElementAvecSelecteur, r as recupereElementOuLeve, b as recupereElementsAvecSelecteur, d as recupereElementsOuLeve } from "./dom2.js";
import { C as CleNonTrouveError } from "./erreurs.js";
import { p as pipe } from "./pipe.XPB0wEfw.js";
import { M as Maybe } from "./Either.wHNxn7Os.js";
import "./exports.DtgtFHVi.js";
import "./exports.DT-46nyp.js";
function placeholder(e) {
}
function makeEmpty(e) {

View file

@ -1,4 +1,4 @@
import { p as parse } from "./index.BulDzU6h.js";
import { p as parse } from "./index.BueHQ6RV.js";
import { E as Either } from "./Either.wHNxn7Os.js";
const eitherParse = (valeur, schema) => Either.encase(() => parse(schema, valeur));
export {

View file

@ -1 +1 @@
{"version":3,"file":"validation.js","sources":["../../src/scripts/lib/validation.ts"],"sourcesContent":["/**\n * Fonctions utilitaires de validation via Valibot.\n */\n\nimport { Either } from \"purify-ts\";\nimport { type GenericSchema, InferOutput, parse, type ValiError } from \"valibot\";\n\nexport const eitherParse = <Schema extends GenericSchema>(\n valeur: unknown,\n schema: Schema,\n): Either<ValiError<Schema>, InferOutput<Schema>> => Either.encase(() => parse(schema, valeur));\n"],"names":[],"mappings":";;AAOa,MAAA,cAAc,CACzB,QACA,WACmD,OAAO,OAAO,MAAM,MAAM,QAAQ,MAAM,CAAC;"}
{"version":3,"file":"validation.js","sources":["../../src/scripts/lib/validation.ts"],"sourcesContent":["/**\n * Fonctions utilitaires de validation via Valibot.\n */\n\nimport { Either } from \"purify-ts\";\nimport { type GenericSchema, type InferOutput, parse, type ValiError } from \"valibot\";\n\nexport const eitherParse = <Schema extends GenericSchema>(\n valeur: unknown,\n schema: Schema,\n): Either<ValiError<Schema>, InferOutput<Schema>> => Either.encase(() => parse(schema, valeur));\n"],"names":[],"mappings":";;AAOa,MAAA,cAAc,CACzB,QACA,WACmD,OAAO,OAAO,MAAM,MAAM,QAAQ,MAAM,CAAC;"}

View file

@ -14,14 +14,15 @@ use function Crell\fp\pipe;
require_once __DIR__ . "/src/inc/TraitementInformations.php";
/** @var string */
/** @var string $url_accueil L'URL de la page d'Accueil. */
$url_accueil = get_page_link(get_page_by_path("home")->ID);
/** @var string $session_id L'ID de la Session Stripe. */
/** @var string $session_id L'ID de la Session Stripe liée à la Commande. */
$session_id = $_GET["session_id"];
// Redirige à l'Accueil si le paramètre d'ID de Session Stripe n'est pas présent
if (!$session_id) {
// Retourne un code HTTP 301
header("Location: $url_accueil");
return;
}
@ -33,7 +34,7 @@ $client_stripe = new StripeClient(Config::get("STRIPE_API_SECRET"));
try {
/** @var Session $session La Session Stripe pour la Commande. */
$session = $client_stripe->checkout->sessions->retrieve($session_id);
/** @var string $order_id L'ID de la Commande WooCommerce passée en métadonnée à la Session Stripe. */
/** @var string $order_id L'ID de la Commande WooCommerce passée en métadonnée à la Session. */
$order_id = $session->metadata["order_id"];
/** @var WC_Order|WC_Order_Refund|bool $commande La Commande WooCommerce liée à la Session Stripe, `false` si inexistante. */
$commande = wc_get_order("$order_id");
@ -53,31 +54,35 @@ try {
$contexte = Timber::context();
$modeles = ["succes-commande.twig"];
/** @var WC_Order_Item[] $articles Les Articles de la Commande. */
$articles = $commande->get_items();
// Récupère les données des Produits
/** @var mixed $produits Les Produits de la Commande sous forme de tableau contenant uniquement les données affichées nécessaires pour le Page. */
$produits = pipe(
$commande->get_items(),
fn($a) => Arr::map(
array: $a,
callback: function (WC_Order_Item $produit_commande) {
/** @var string $id_produit L'ID du Produit, différent selon qu'il soit un Produit Simple ou Variable. */
$id_produit =
$produit_commande["variation_id"] !== null
? $produit_commande["variation_id"]
: $produit_commande["product_id"];
/** @var WC_Product|false $produit Les informations du Produit. */
$produit = wc_get_product($id_produit);
$articles_formates = Arr::map(
array: $articles,
callback: function (WC_Order_Item $article) {
$donnees = $article->get_data();
$est_variation = $article["variation_id"] !== null;
$id_produit = $est_variation ? $article["variation_id"] : $article["product_id"];
$produit = wc_get_product($id_produit);
$titre_produit = $produit->get_title();
$attributs_produit = recupere_et_formate_attributs_produit($produit->get_attributes());
return [
"attributs" => $attributs_produit,
"id_produit" => $id_produit,
"image" => pipe($produit->get_image_id(), fn($id) => genere_balise_img_multiformats(id: $id, lazy: true)),
"permalien" => $produit->get_permalink(),
"prix" => $donnees["total"],
"quantite" => $article->get_quantity(),
"titre" => $titre_produit,
];
},
return [
"attributs" => recupere_et_formate_attributs_produit($produit->get_attributes()),
"id_produit" => $id_produit,
"image" => pipe($produit->get_image_id(), fn($id) => genere_balise_img_multiformats(id: $id, lazy: true)),
"permalien" => $produit->get_permalink(),
"prix" => $produit_commande->get_data()["total"],
"quantite" => $produit_commande->get_quantity(),
"titre" => $produit->get_title(),
];
},
),
);
$contexte["articles"] = $articles_formates;
$contexte["produits"] = $produits;
// echo "<pre>";
// print_r($articles_formates);

View file

@ -15,27 +15,21 @@ require_once __DIR__ . "/src/inc/TraitementInformations.php";
$contexte = Timber::context();
$modeles = ["produit.twig"];
$produit = recupere_informations_produit_page_produit(wc_get_product());
$valeurs_attribut_cotes = pipe(
wc_get_product(),
fn($produit) => $produit->get_attribute("pa_side"),
fn($string) => explode(",", $string),
/** @var WC_Product $produit */
$produit = wc_get_product();
$donnees_produit = recupere_informations_produit_page_produit(wc_get_product());
$est_variation = $produit->get_type() == "variable";
$attributs = pipe(
match ($est_variation) {
$produit->get_attribute("pa_side") !== "" => $produit->get_attribute("pa_side"),
$produit->get_attribute("pa_stone") !== "" => $produit->get_attribute("pa_stone"),
$produit->get_attribute("pa_size") !== "" => $produit->get_attribute("pa_size"),
default => "",
},
fn($chaine) => explode(", ", $chaine),
);
$valeurs_attribut_pierres = pipe(
wc_get_product(),
fn($produit) => $produit->get_attribute("pa_stone"),
fn($string) => explode(",", $string),
);
$valeurs_attribut_tailles = pipe(
wc_get_product(),
fn($produit) => $produit->get_attribute("pa_size"),
fn($string) => explode(",", $string),
);
$produits_meme_collection = array_map(
callback: "recupere_informations_produit_page_produit",
array: recupere_produits_meme_collection($produit["collection"])($produit["id"]),
);
$prix = pipe(
$prix_variations = pipe(
// Récupère les Variations
wc_get_product()->get_children(),
// Récupère les informations de chaque Variation
@ -44,12 +38,16 @@ $prix = pipe(
fn($variations) => array_map(callback: fn($variation) => $variation->get_price(), array: $variations),
);
$contexte["produit"] = $produit;
$produits_meme_collection = array_map(
callback: "recupere_informations_produit_page_produit",
array: recupere_produits_meme_collection($donnees_produit["collection"])($donnees_produit["id"]),
);
$contexte["produit"] = $donnees_produit;
$contexte["produits_meme_collection"] = $produits_meme_collection;
$contexte["cotes_produit"] = $valeurs_attribut_cotes;
$contexte["pierres_produit"] = $valeurs_attribut_pierres;
$contexte["tailles_produit"] = $valeurs_attribut_tailles;
$contexte["prix"] = $prix;
$contexte["est_variation"] = $est_variation;
$contexte["attributs"] = $attributs;
$contexte["prix_variations"] = $prix_variations;
/**
* Charge les Scripts nécessaires pour la page Produit.

View file

@ -13,9 +13,23 @@ button {
outline: 2px solid transparent;
transition: 0.2s background, 0.2s color;
&:focus-visible {
z-index: 5;
outline: 2px solid var(--couleur-noir);
&:not[disabled] {
&:focus-visible {
z-index: 5;
outline: 2px solid var(--couleur-noir);
}
&:active {
color: var(--couleur-blanc) !important;
background: var(--couleur-noir) !important;
}
@media (hover: hover) {
&:hover {
color: var(--couleur-noir);
background: var(--couleur-jaune);
}
}
}
&:disabled, &[disabled] {
@ -24,18 +38,6 @@ button {
outline-color: transparent;
}
&:active {
color: var(--couleur-blanc) !important;
background: var(--couleur-noir) !important;
}
@media (hover: hover) {
&:hover {
color: var(--couleur-noir);
background: var(--couleur-jaune);
}
}
// Particularismes
&.bouton-case-pleine {
width: 100%;

View file

@ -126,7 +126,8 @@
}
&:focus-visible {
outline-color: transparent;
outline: 2px solid var(--couleur-noir);
outline-offset: -2px;
}
@media (hover: hover) {

View file

@ -3,7 +3,7 @@
*/
import { Either } from "purify-ts";
import { type GenericSchema, InferOutput, parse, type ValiError } from "valibot";
import { type GenericSchema, type InferOutput, parse, type ValiError } from "valibot";
export const eitherParse = <Schema extends GenericSchema>(
valeur: unknown,

View file

@ -8,7 +8,7 @@ import type { WCStoreCart, WCStoreCartItem, WCStoreShippingRateShippingRate } fr
import type { WCStoreCartRemoveItemArgs } from "./lib/types/api/cart-remove-item";
import type { WCStoreCartUpdateCustomerArgs } from "./lib/types/api/cart-update-customer";
import type { WCStoreCartUpdateItemArgs } from "./lib/types/api/cart-update-item";
import type { WCV3Order, WCV3OrdersArgs } from "./lib/types/api/v3/orders.ts";
import type { WCV3OrdersArgs } from "./lib/types/api/v3/orders.ts";
import type { MessageMajBoutonPanierDonnees, MessageMajContenuPanierDonnees } from "./lib/types/messages";
import {
@ -639,7 +639,6 @@ const initialiseBoutonCreationCommande = (): void => {
},
],
};
console.debug(argumentsFormulaire);
eitherParse<typeof WCV3OrdersArgsSchema>(argumentsFormulaire, WCV3OrdersArgsSchema)
.map(async (args: WCV3OrdersArgs) => {
@ -657,13 +656,7 @@ const initialiseBoutonCreationCommande = (): void => {
// Traite tous les codes HTTP possibles
(corpsReponse: unknown) => {
console.debug(corpsReponse);
return Either.encase<Error, WCV3Order>(
() =>
traiteReponseBackendWCSelonCodesHTTP<WCV3Order, typeof WCV3OrderSchema>(
corpsReponse,
WCV3OrderSchema,
),
);
return eitherParse<typeof WCV3OrderSchema>(corpsReponse, WCV3OrderSchema);
},
reponse =>
reponse.ifRight(r => {

View file

@ -1,10 +1,10 @@
// Scripts pour la Page Produit
import { A, D, F, pipe } from "@mobily/ts-belt";
import { Either, Maybe } from "purify-ts";
import { match, P } from "ts-pattern";
import { parse } from "valibot";
import { type Either, Maybe } from "purify-ts";
import { match } from "ts-pattern";
import type { WCStoreCart } from "./lib/types/api/cart";
import type { WCStoreCartAddItemArgs } from "./lib/types/api/cart-add-item.ts";
import { ENTETE_WC_NONCE, ROUTE_API_AJOUTE_ARTICLE_PANIER } from "./constantes/api.ts";
@ -27,27 +27,19 @@ import {
SELECTEUR_SELECTEUR_QUANTITE,
} from "./constantes/dom";
import { recupereElementOuLeve, recupereElementsOuLeve } from "./lib/dom.ts";
import {
ErreurInconnue,
leveBadRequestError,
leveErreur,
leveNotFoundError,
leveServerError,
leveUnauthorizedError,
reporteErreur,
type UnknownError,
} from "./lib/erreurs.ts";
import { leveServerError, reporteErreur } from "./lib/erreurs.ts";
import { estError, estHTMLSelectElement, estReponse500 } from "./lib/gardes.ts";
import { emetMessageMajBoutonPanier } from "./lib/messages.ts";
import { traiteReponseBackendWCSelonCodesHTTP } from "./lib/reseau.ts";
import { WCStoreCartSchema } from "./lib/schemas/api/cart.ts";
import { parseWCStoreCartAddItemArgs } from "./lib/schemas/api/cart-add-item.ts";
import { estWCError } from "./lib/schemas/api/erreurs.ts";
import { WCStoreCartAddItemArgsSchema } from "./lib/schemas/api/cart-add-item.ts";
import {
recupereElementDansDocumentOuLeve,
recupereElementDocumentEither,
recupereElementsDansDocumentOuLeve,
recupereElementsDocumentEither,
} from "./lib/utils.ts";
import { eitherParse } from "./lib/validation.ts";
/** États utiles pour les scripts de la page. */
type EtatsPage = {
@ -220,79 +212,71 @@ const gereBoiteInformationsProduit = (): void => {
const ajouteProduitAuPanier = () => {
// État de chargement
BOUTON_AJOUT_PANIER.textContent = "Adding...";
console.debug(SELECTEUR_VARIATION);
const idProduit = SELECTEUR_VARIATION
const idProduit: string = SELECTEUR_VARIATION
.map(selecteur => selecteur.value)
.orDefault(String(ETATS_PAGE.idProduit));
const args: WCStoreCartAddItemArgs = {
id: Number(idProduit),
quantity: 1,
};
// TODO: Rendre ça moins long
// TODO: Créer une méthode pour fetch()
// TODO: Créer une méthode pour traiter les codes HTTP
// Exécution de la requête
Either.encase<Error, WCStoreCartAddItemArgs>(() =>
parseWCStoreCartAddItemArgs({
id: Number(idProduit),
quantity: 1,
})
).map((args: WCStoreCartAddItemArgs) => {
fetch(ROUTE_API_AJOUTE_ARTICLE_PANIER, {
body: JSON.stringify(args),
credentials: "same-origin",
headers: {
Accept: "application/json",
"Content-Type": "application/json",
[ENTETE_WC_NONCE]: ETATS_PAGE.nonce,
},
method: "POST",
mode: "same-origin",
signal: AbortSignal.timeout(5000),
})
.then(async (reponse: Response) => {
// Traite le cas d'erreur 500
if (estReponse500(reponse)) leveServerError("500 Server Error");
pipe(
// Récupère la Réponse
await reponse.json(),
// Traite tous les codes HTTPs possibles
(corpsReponse: unknown) =>
match(corpsReponse)
// Réponses problématiques
.with({ body: P.select(), status: 400 }, estWCError, leveBadRequestError)
.with({ body: P.select(), status: 401 }, estWCError, leveUnauthorizedError)
.with({ body: P.select(), status: 404 }, estWCError, leveNotFoundError)
// Réponse OK (201)
.with(P._, corpsOkInconnu => parse(WCStoreCartSchema, corpsOkInconnu))
// Réponses inconnues
.otherwise(e => pipe(e, ErreurInconnue, leveErreur<UnknownError>)),
// Récupère le nombre de Produits dans la Panier
D.getUnsafe("items_count"),
// Déclenche les effets pour la mise à jour de l'IU
F.tap((nombreArticlesPanier: number) => {
BOUTON_AJOUT_PANIER.textContent = "Added to cart!";
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);
}),
);
// Exécute la requête
eitherParse<typeof WCStoreCartAddItemArgsSchema>(args, WCStoreCartAddItemArgsSchema)
.map((args: WCStoreCartAddItemArgs) => {
fetch(ROUTE_API_AJOUTE_ARTICLE_PANIER, {
body: JSON.stringify(args),
credentials: "same-origin",
headers: {
Accept: "application/json",
"Content-Type": "application/json",
[ENTETE_WC_NONCE]: ETATS_PAGE.nonce,
},
method: "POST",
mode: "same-origin",
signal: AbortSignal.timeout(5000),
})
.catch((e: unknown) => {
if (estError(e)) {
reporteErreur(e);
console.error(e);
} else {
console.error("e n'est pas une Erreur ?!", e);
}
BOUTON_AJOUT_PANIER.textContent = "Add to cart";
});
});
.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,
),
// Récupère le nombre de Produits dans la Panier
D.getUnsafe("items_count"),
// Déclenche les effets pour la mise à jour de l'IU
F.tap((nombreArticlesPanier: number) => {
BOUTON_AJOUT_PANIER.textContent = "Added to cart!";
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);
}),
);
})
.catch((e: unknown) => {
if (estError(e)) {
reporteErreur(e);
console.error(e);
} else {
console.error("e n'est pas une Erreur ?!", e);
}
BOUTON_AJOUT_PANIER.textContent = "Add to cart";
});
})
.ifLeft(e => console.error(e.issues));
};
document.addEventListener("DOMContentLoaded", () => {

View file

@ -76,7 +76,7 @@
<section class="selecteur-produit">
<h3 class="selecteur-produit__nom">{{ produit.nom }}</h3>
{% if produit.variations_ids|length > 1 %}
{% if attributs|length > 1 %}
<div class="selecteur-produit__selection-variation">
<label
for="selecteur-variation"
@ -99,36 +99,14 @@
>
--
</option>
{% if cotes_produit|length > 1 %}
{% for cote in cotes_produit %}
<option
data-prix="{{ prix[loop.index0] }}"
value="{{ produit.variations_ids[loop.index0] }}"
>
{{ cote }}
</option>
{% endfor %}
{% endif %}
{% if pierres_produit|length > 1 %}
{% for pierre in pierres_produit %}
<option
data-prix="{{ prix[loop.index0] }}"
value="{{ produit.variations_ids[loop.index0] }}"
>
{{ pierre }}
</option>
{% endfor %}
{% endif %}
{% if tailles_produit|length > 1 %}
{% for taille in tailles_produit %}
<option
data-prix="{{ prix[loop.index0] }}"
value="{{ produit.variations_ids[loop.index0] }}"
>
{{ taille }}
</option>
{% endfor %}
{% endif %}
{% for attribut in attributs %}
<option
data-prix="{{ prix_variations[loop.index0] }}"
value="{{ produit.variations_ids[loop.index0] }}"
>
{{ attribut }}
</option>
{% endfor %}
</select>
</div>
</div>
@ -140,7 +118,7 @@
<section class="actions-produit">
<button
class="bouton-case-pleine"
disabled
{{ attributs|length > 1 ? "disabled" : "" }}
id="bouton-ajout-panier"
type="button"
>

View file

@ -7,50 +7,55 @@
<h2>Successful order!</h2>
</header>
{# Rappel de la Commande avec ses Articles #}
<div class="contenu__rappel-commande">
{% for article in articles %}
<article class="contenu__rappel-commande__produit">
{# Illustration cliquable du Produit #}
<div class="contenu__rappel-commande__produit__illustratif">
<a href="{{ article.permalien }}">
<picture>{{ article.image }}</picture>
</a>
</div>
<div class="contenu__rappel-commande__produit__textuel detail-produit">
<h3 class="detail-produit__nom-prix">
<a href="{{ article.permalien }}">{{ article.titre }}.</a>
<span>{{ article.prix }}€</span>
</h3>
<p class="detail-produit__description">
{# Affiche tous les attributs relevants pour la variation choisie #}
{% for attribut in article.attributs %}
{% if attribut.valeur %}
{{ attribut.nom }}: <strong>{{ attribut.valeur }}</strong><br />
{% endif %}
{% endfor %}
qty: <strong>{{ article.quantite }}</strong>
</p>
</div>
</article>
{% endfor %}
</div>
<div class="contenu__textuel">
<p>
Thank you for your order, {{ session.name }}!
</p>
<p>
You will receive an email conforming your order in a short while.
You will receive an email with your order's details in a short while.
</p>
<p>
If you have any questions, don't hesitate to <a class="lien-lien" href="/contact">contact us</a>!
If you have any questions, don't hesitate to <a
class="lien-lien"
href="/contact"
>
contact us
</a>!
</p>
</div>
{# Rappel de la Commande avec ses Produits #}
<div class="contenu__rappel-commande">
{% for produit in produits %}
<article class="contenu__rappel-commande__produit">
{# Illustration cliquable du Produit #}
<div class="contenu__rappel-commande__produit__illustratif">
<a href="{{ produit.permalien }}">
<picture>{{ produit.image }}</picture>
</a>
</div>
<div class="contenu__rappel-commande__produit__textuel detail-produit">
<h3 class="detail-produit__nom-prix">
<a href="{{ produit.permalien }}">{{ produit.titre }}.</a>
<span>{{ produit.prix }}€</span>
</h3>
<p class="detail-produit__description">
{# Affiche tous les attributs relevants pour la variation choisie #}
{% for attribut in produit.attributs %}
{% if attribut.valeur %}
{{ attribut.nom }}: <strong>{{ attribut.valeur }}</strong><br />
{% endif %}
{% endfor %}
qty: <strong>{{ produit.quantite }}</strong>
</p>
</div>
</article>
{% endfor %}
</div>
</div>
</main>
{% endblock contenu %}