2024-11-23

fonc(db) exporte la BDD de production
This commit is contained in:
gcch 2024-11-22 23:59:26 +01:00
commit 900bef5aeb
39 changed files with 14926 additions and 591 deletions

View file

@ -12,27 +12,27 @@
],
"integrity": "sha512-zBecrvIRiJOu6YYRpnc0k8S2hhntD+UpPtg3zhLd4KQSyWdXQTt6ubhfDTOhBtMYi/W1LLcZX89krSQqxkWfGA=="
},
"_belt_Option-91f3b350.Bf2JA1bN.js": {
"file": "belt_Option-91f3b350.Bf2JA1bN.js",
"_belt_Option-91f3b350.cBye8bLJ.js": {
"file": "belt_Option-91f3b350.cBye8bLJ.js",
"name": "belt_Option-91f3b350",
"imports": [
"web/app/themes/haiku-atelier-2024/src/scripts/lib/dom.ts"
],
"integrity": "sha512-1yCuw+VrCUAdtJZnNCCGQjJc0WIOQw7SD5b5Xz6LQq+wZwcv4Qb2BEz/nqBWGeka7VWLGZfLl7noxG0QTSbA6g=="
"integrity": "sha512-9jLdf+ptxzABI2/IowOZjgnuQLIzj36EJ7+u1FMIXffUF+jtqNSBFfsTSpmVe1MaAivun9Bb3/fjur20hZhk8w=="
},
"_exports.B84S-6H1.js": {
"file": "exports.B84S-6H1.js",
"name": "exports",
"integrity": "sha512-rYFoHD4l6MsBUw4QxiKCaIfX00GsFaTGihRiDcawuDV0+592g9cOFlQq8btqldNq3/pKWpS8Rg5N/j5u4C0dow=="
},
"_index-0eef19ec.Bvb4qYFq.js": {
"file": "index-0eef19ec.Bvb4qYFq.js",
"_index-0eef19ec.DoJSf22Z.js": {
"file": "index-0eef19ec.DoJSf22Z.js",
"name": "index-0eef19ec",
"imports": [
"web/app/themes/haiku-atelier-2024/src/scripts/lib/dom.ts",
"_belt_Option-91f3b350.Bf2JA1bN.js"
"_belt_Option-91f3b350.cBye8bLJ.js"
],
"integrity": "sha512-QQsyZBe+eeVwL/BrUaa8E8Xgf/qwV9yEqVkJ+iWA2WR3vQoMlQOUaHxfwLKcQL8bQSi6fiVOIaYVh+FUQIxNmQ=="
"integrity": "sha512-BYIJDDOI3NTIytshd2k13/Wyep1oJ6pfwg9dCdZ18XVQrzO9uj99f5wF9bS0pjKa7OkbM2F27wF817UKn6thgg=="
},
"_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-YEgwmKHSz0gRHk88OpNlmQ0lxrSltLuvvtd+eIXJzb3fW3IHzSCvk01/EdedkiTE4ma0+9EVluldqrWygL5v/w=="
"integrity": "sha512-DrDkVrVqdTqe7XX60O++FWFn1nm/X7naPDhDe61T2m57a2seCAi0NdNoaA7+76GLG5WL7fywLGIG9V9uOhoXyg=="
},
"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-WxVe4bxUUCGeygovzpWBFGO4/CNz1F7dtRsTUVXvF48Y+zaQHTzX73N08O8Vpd89gcfD5BLecjd9bWPH9PEnHw=="
"integrity": "sha512-2Ar/pvj8qBi/+vgGiExcb4HheX7rZIkbE2m0Ni5lh+aQveBc+dhZLQfEsBzUVZl/nI73900eqRgPb9gvAIFJVQ=="
},
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/erreurs.ts": {
"file": "erreurs.js",
@ -85,11 +85,11 @@
"integrity": "sha512-M8me/iGRLfItVHaEf+BhA3xdEIxEwdyNuN+H87daJ1jl1oOENbROB7ub6RPP47NdFsQUChTRphEhQglT+qc6RA=="
},
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/orders.ts": {
"file": "orders2.js",
"file": "orders3.js",
"name": "orders",
"src": "web/app/themes/haiku-atelier-2024/src/scripts/constantes/orders.ts",
"isEntry": true,
"integrity": "sha512-wV9B3cW/1TnjBcesuc4a2M+28+67nsmX2++/Up1QUraP4Bdzbn9RiToohkone5Z+1mZNOjB/Hrd8x7Gc+jtVvg=="
"integrity": "sha512-dLV15du4JF6iPF2I93pExJpqAG13hXNCrRj8hF1dO47SFaa/7S74hT3puqnojjF5g1vStbjuGX+dLVklMIZuOw=="
},
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/products.ts": {
"file": "products2.js",
@ -108,7 +108,7 @@
"_exports.B84S-6H1.js",
"_pipe.XPB0wEfw.js"
],
"integrity": "sha512-0YzSe2XlztM9VdJ4yRiCiB+QcYXRvEdcoO9OX21OJGsptcyhNR/lXrhy4U/kSPWbeaMhWkUX3R4cayeB0DZL9Q=="
"integrity": "sha512-VgM7Kk9VsWTzhTB9iedVCvty32Z1HtOtnVxsL246UyZ3U0H/1WGL4fjgfZd/11ovT2HBuuYSNcaJTllkL2vpyw=="
},
"web/app/themes/haiku-atelier-2024/src/scripts/lib/animations.ts": {
"file": "animations.js",
@ -128,7 +128,7 @@
"_Either.wHNxn7Os.js",
"_exports.B84S-6H1.js"
],
"integrity": "sha512-0BdfhY1b/kj2rhV/KpJB1DqBWTlSves9qMjFfPvOW2fle+9IbMogjDDv4yeccGwN4QvcjJhQqgWtlPX5nwZPDw=="
"integrity": "sha512-5Xiq6SPZBkHe/fYOdutQl14td9r3b4mQRtef8524PEN+QWMLOGN83Zwfg3aHVnFQ0AZc3AG9U50zWXg89tcv4w=="
},
"web/app/themes/haiku-atelier-2024/src/scripts/lib/erreurs.ts": {
"file": "erreurs2.js",
@ -138,7 +138,7 @@
"imports": [
"_exports.B84S-6H1.js"
],
"integrity": "sha512-3Q8EegpJS0ltN1vAo1TJ3KKVy392F3/r8a7TsK0mtAiqHXxJxxo9Oy3ztMGKLWYm0H7FQP//1uZx5Mi1y0E7LQ=="
"integrity": "sha512-q/vBNk2FX1du9asWIUsTxJPU+FX2AkQY6LWPQHAVAWR/8fkrhKFaKdih18+40mxqe8zEfzGg9fUfoR+h0SYvug=="
},
"web/app/themes/haiku-atelier-2024/src/scripts/lib/erreurs/codes-promo.ts": {
"file": "codes-promo.js",
@ -164,7 +164,7 @@
"_MaybeAsync.AE1jnxuc.js",
"_Either.wHNxn7Os.js"
],
"integrity": "sha512-GiKCr6BmXjQBAY2VTgiAxXdmlHLywqrEiTdwluMlM7JaVp3SSC/+5dyPb60UBdXKylyOPcDf0RMNg3uwwniLqg=="
"integrity": "sha512-4Z9hRY3XtEbYTEViQK/Rpzxlfvx5zXtLRQtXIDbqNg7gxXbkOgF3KZaYwZdOytvbMfGDgf9XVk75VakJOdFJOA=="
},
"web/app/themes/haiku-atelier-2024/src/scripts/lib/messages.ts": {
"file": "messages.js",
@ -209,7 +209,7 @@
"_pipe.XPB0wEfw.js",
"_exports.B84S-6H1.js"
],
"integrity": "sha512-acVk9dK0TqeQXvCLpsWbA8qwLZZ0ifyGO4+a+zuaFIawQZFSYWyZuwUzIo3D3SJdNOJds8GuFpZaG2+GSx9hIg=="
"integrity": "sha512-aitZrp9G4pXD0IfVhDyZVfh1vgxpES6hfrB6h+Jkpe9ApSK634ne2J5WI7Q5VpZcIHSjVXAsIxMjPLNrx0x4Kw=="
},
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/adresses.ts": {
"file": "adresses.js",
@ -304,7 +304,7 @@
"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-vWAKO8wnk+0YggDDgm5AlyGv6JmrqvrQl59zJGRZRD/YT7uPqMFYZvESRk5YFc2vfjwZFlHeNX99pVmBX2+12g=="
"integrity": "sha512-nkAa5GpdXm5SEv5taFhiOdunn7bOKm61N1kVyEHzPGM4sa1irsAzExc5RMXEsEjim4ZA7RseBjo6pngFXFxpIg=="
},
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/couts-livraison.ts": {
"file": "couts-livraison.js",
@ -315,7 +315,7 @@
"_index.DxUTT09Y.js",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/adresses.ts"
],
"integrity": "sha512-wg5eUuBJsShnO0/emL0PQGDxI2zpJGmeVlv6+a8/rg9NBlH48Dx65RoJx4EzTZsVtCigRPxFU4/+v1VIKMUtNA=="
"integrity": "sha512-Wba/eKVlVqEczLMMk3dl0p9KUI7dhNomuSIqltE35s+m9svN/k+dMr49WEyFYlchuQLH6Om19wm0VmnLPvOZmg=="
},
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/erreurs.ts": {
"file": "erreurs3.js",
@ -339,7 +339,7 @@
"integrity": "sha512-Mr2P09suX7KY2cCzn+cqLdRLDHPDJC/RIsFFlB0VudZZoIE9unlsB3BjSvlzmKrBly5QP3jgnq2+7dKqSHlzMw=="
},
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/v3/orders.ts": {
"file": "orders3.js",
"file": "orders2.js",
"name": "orders",
"src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/v3/orders.ts",
"isEntry": true,
@ -348,7 +348,7 @@
"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-010SyRhlWpMyhynDIgXgmDCI+E+KNBLpJEj13xmvtd97ps0q4PLxF3dOwu+T6BW6XCeLoM3ORyivxArLA8u+4A=="
"integrity": "sha512-moB98oUqT6LBlhauPLs5NaX25U/sAMuCRVbfu231Ld/mvdCW4xAd9MUd4l/wrHPckLGSDcU/1jlGPcilj5QmzQ=="
},
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/v3/products.ts": {
"file": "products.js",
@ -403,7 +403,7 @@
"_Either.wHNxn7Os.js",
"_exports.B84S-6H1.js"
],
"integrity": "sha512-k8Ef8tyPHVgGqJbto0PpMp2SLqyeobQx9ChBTeBaigtKFUMdi+SbO5GKxOZZep0uzDtHY0bxYjOPsgcxvSvXDA=="
"integrity": "sha512-drCe9+Fkclf5BaZypqhMqTxhsMoKFsmrplcG/oOVBM/cqECfRMwxkfMdeQDXUZ/WPRtfUPmnVZSqBl+hoqhu2w=="
},
"web/app/themes/haiku-atelier-2024/src/scripts/lib/validation.ts": {
"file": "validation.js",
@ -486,12 +486,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.Bf2JA1bN.js",
"_belt_Option-91f3b350.cBye8bLJ.js",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/erreurs.ts",
"_exports.B84S-6H1.js",
"_Either.wHNxn7Os.js"
],
"integrity": "sha512-I1icDP67e89MNTZ9Rh0x8k43aZndx06lotiIWHoYzUl8q159JduYHERN7G2Gm4UHScved+y15nJqaf3DJxEskQ=="
"integrity": "sha512-CJGUIue+ioClxccUKzKChNl63VpTf7+uCVsEalt/wpDgAPwcdGIcDLH1Z0g2xYRY9DL/gCvnKUXleB6aAWarYQ=="
},
"web/app/themes/haiku-atelier-2024/src/scripts/scripts-page-accueil.ts": {
"file": "scripts-page-accueil.js",
@ -528,14 +528,14 @@
"web/app/themes/haiku-atelier-2024/src/scripts/lib/utils.ts",
"_MaybeAsync.AE1jnxuc.js",
"_pipe.XPB0wEfw.js",
"_index-0eef19ec.Bvb4qYFq.js",
"_index-0eef19ec.DoJSf22Z.js",
"_Either.wHNxn7Os.js",
"_exports.B84S-6H1.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.Bf2JA1bN.js"
"_belt_Option-91f3b350.cBye8bLJ.js"
],
"integrity": "sha512-sXtFNbqUp7NukY8C+9bSq8flJ+WAwIY7BGflFIE2MFp3IaFnYgY1JwZfwRds1bFaz5rtQpVfMWiv71A39ml+uQ=="
"integrity": "sha512-FFaHFK1310TtQEKVpGgo9MMgZGROVyV60mw5GXp4eWrVjbjXfVqVR1qd5+xlIIHbuzbGHLSNHFw9J8InWYhQMA=="
},
"web/app/themes/haiku-atelier-2024/src/scripts/scripts-page-panier-adresses.ts": {
"file": "scripts-page-panier-adresses.js",
@ -544,28 +544,31 @@
"isEntry": true,
"imports": [
"_index.CeK6pfoJ.js",
"_index.DxUTT09Y.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/animations.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/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-update-customer.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/couts-livraison.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/v3/orders.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",
"_MaybeAsync.AE1jnxuc.js",
"_pipe.XPB0wEfw.js",
"_Either.wHNxn7Os.js",
"_exports.B84S-6H1.js",
"_index.DxUTT09Y.js",
"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/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/dom.ts"
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/orders.ts"
],
"integrity": "sha512-1d2FUGpO7DgABdetsGEkSfeSuPEen3hO77zSs5P6jdP9RvFtDV4qMUDY1j4eSGReP0etBCxulE3viWJa0ouFPg=="
"integrity": "sha512-1bj/xtpAb4T9nqhZReDmTKqT03Wnrx93tBLN0h50WYtr0X+leZ0YIy5yplO83PmqFrnt4s8FyoR8K0OLZt12ZQ=="
},
"web/app/themes/haiku-atelier-2024/src/scripts/scripts-page-panier-code-promo.ts": {
"file": "scripts-page-panier-code-promo.js",
@ -602,7 +605,7 @@
"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-xoax+Th1dp0cii/tdnmUdyPflZ8EvoDbAqraSZ32T5Xd2LsTvgneZiqG0HltfD6xC1Jel10TrjpH0uE2qKp2pQ=="
"integrity": "sha512-wRjjWn9cL7y/mYhjwrm1GFVwBO15aStATpGa9MXGvfwAmZsVt6Ulz6riE/O+4JVvJ9nvb+EdWQonWehAC55J3Q=="
},
"web/app/themes/haiku-atelier-2024/src/scripts/scripts-page-panier.ts": {
"file": "scripts-page-panier.js",
@ -626,7 +629,7 @@
"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",
"_pipe.XPB0wEfw.js",
"_index-0eef19ec.Bvb4qYFq.js",
"_index-0eef19ec.DoJSf22Z.js",
"_Either.wHNxn7Os.js",
"_exports.B84S-6H1.js",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/erreurs.ts",
@ -639,14 +642,16 @@
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/couts-livraison.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/animations.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",
"_MaybeAsync.AE1jnxuc.js",
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/erreurs.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/erreurs/codes-promo.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",
"_belt_Option-91f3b350.Bf2JA1bN.js"
"_belt_Option-91f3b350.cBye8bLJ.js"
],
"integrity": "sha512-XcOYahNk49sMhIAlRU+7moHa3qUgNMFkzgLFOyjpRXG2wW5hEn4z75NZJvLLlzNZy9D1d7SgQIqlq38GObfdZA=="
"integrity": "sha512-0HVDbb+ZDwLw3RNt4yP16CE2HhnQsEev5ZhXYP8c1KppoEIW0Z1uXpwRrZ5CYeBKluQpX9P/45PD0E0qHOPqxw=="
},
"web/app/themes/haiku-atelier-2024/src/scripts/scripts-page-produit.ts": {
"file": "scripts-page-produit.js",
@ -667,7 +672,7 @@
"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.Bvb4qYFq.js",
"_index-0eef19ec.DoJSf22Z.js",
"_Either.wHNxn7Os.js",
"_exports.B84S-6H1.js",
"_index.DxUTT09Y.js",
@ -678,8 +683,8 @@
"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.Bf2JA1bN.js"
"_belt_Option-91f3b350.cBye8bLJ.js"
],
"integrity": "sha512-MFB+v8oiEdg0uPkWNwEwk3+JCh/MZbvod9NaQ5TwMQ8zj0vlDPzwM/rsnwyx0+cwMvAefdOaCFleriysX5/xkQ=="
"integrity": "sha512-rXLngIRzynideEoG746rDWELBrGA11T2vxGSgznGO4SjJbowoec3MhNLuDHONwQbxISU0vPXTjc8+Hls51f1EA=="
}
}

View file

@ -7,6 +7,7 @@ const ROUTE_API_RETIRE_ARTICLE_PANIER = `/${CHEMIN_API_REST}/wc/store/cart/remov
const ROUTE_API_MAJ_ARTICLE_PANIER = `/${CHEMIN_API_REST}/wc/store/cart/update-item`;
const ROUTE_API_MAJ_CLIENT = `/${CHEMIN_API_REST}/wc/store/cart/update-customer`;
const ROUTE_API_NOUVELLE_PRODUCTS = `/${CHEMIN_API_REST}/wc/v3/products`;
const ROUTE_API_NOUVELLE_COMMANDES = `/${CHEMIN_API_REST}/wc/v3/orders`;
const ENTETE_WC_NONCE = "Nonce";
const ENTETE_GLITCHTIP_RETRY_AFTER = "retry-after";
const ENTETE_GLITCHTIP_RATE_LIMITS = "x-sentry-rate-limits";
@ -16,11 +17,12 @@ export {
ROUTE_API_RETIRE_ARTICLE_PANIER as a,
ROUTE_API_MAJ_ARTICLE_PANIER as b,
ROUTE_API_MAJ_CLIENT as c,
ROUTE_API_APPLIQUE_COUPON as d,
ROUTE_API_RETIRE_COUPON as e,
ROUTE_API_AJOUTE_ARTICLE_PANIER as f,
ROUTE_API_PANIER as g,
ENTETE_GLITCHTIP_RATE_LIMITS as h,
ENTETE_GLITCHTIP_RETRY_AFTER as i
ROUTE_API_NOUVELLE_COMMANDES as d,
ROUTE_API_APPLIQUE_COUPON as e,
ROUTE_API_RETIRE_COUPON as f,
ROUTE_API_AJOUTE_ARTICLE_PANIER as g,
ROUTE_API_PANIER as h,
ENTETE_GLITCHTIP_RATE_LIMITS as i,
ENTETE_GLITCHTIP_RETRY_AFTER as j
};
//# sourceMappingURL=api.js.map

View file

@ -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":[],"mappings":"AACO,MAAM,kBAAkB;AAClB,MAAA,mBAAmB,IAAI,eAAe;AACtC,MAAA,kCAAkC,IAAI,eAAe;AACrD,MAAA,4BAA4B,IAAI,eAAe;AAC/C,MAAA,0BAA0B,IAAI,eAAe;AAE7C,MAAA,kCAAkC,IAAI,eAAe;AACrD,MAAA,+BAA+B,IAAI,eAAe;AAClD,MAAA,uBAAuB,IAAI,eAAe;AAE1C,MAAA,8BAA8B,IAAI,eAAe;AAIvD,MAAM,kBAAkB;AACxB,MAAM,+BAA+B;AACrC,MAAM,+BAA+B;"}
{"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":[],"mappings":"AACO,MAAM,kBAAkB;AAClB,MAAA,mBAAmB,IAAI,eAAe;AACtC,MAAA,kCAAkC,IAAI,eAAe;AACrD,MAAA,4BAA4B,IAAI,eAAe;AAC/C,MAAA,0BAA0B,IAAI,eAAe;AAE7C,MAAA,kCAAkC,IAAI,eAAe;AACrD,MAAA,+BAA+B,IAAI,eAAe;AAClD,MAAA,uBAAuB,IAAI,eAAe;AAE1C,MAAA,8BAA8B,IAAI,eAAe;AACjD,MAAA,+BAA+B,IAAI,eAAe;AAGxD,MAAM,kBAAkB;AACxB,MAAM,+BAA+B;AACrC,MAAM,+BAA+B;"}

View file

@ -1,4 +1,4 @@
import { v as valFromOption, g as some } from "./dom2.js";
import { v as valFromOption, k as some } from "./dom2.js";
function sub(n2, r, t) {
var e = new Array(t);
var u = 0;
@ -146,4 +146,4 @@ export {
is_extension as i,
mapWithDefaultU as m
};
//# sourceMappingURL=belt_Option-91f3b350.Bf2JA1bN.js.map
//# sourceMappingURL=belt_Option-91f3b350.cBye8bLJ.js.map

View file

@ -2,7 +2,7 @@ import { o as object, d as boolean, e as enum_, s as string, u as unknown, n as
import { C as CATALOG_VISIBILITIES } from "./cart2.js";
import { W as WCStoreBillingAddressSchema, a as WCStoreShippingAddressSchema } from "./adresses.js";
import { W as WCStoreCartCouponsSchema } from "./cart-coupons.js";
import { W as WCStoreShippingRateSchema } from "./couts-livraison.js";
import { a as WCStoreShippingRateSchema } from "./couts-livraison.js";
const WCStoreCartItemTotalsSchema = object({
currency_code: string(),
currency_decimal_separator: string(),

View file

@ -32,6 +32,7 @@ const WCStoreShippingRateSchema = object({
shipping_rates: array(WCStoreShippingRateShippingRateSchema)
});
export {
WCStoreShippingRateSchema as W
WCStoreShippingRateShippingRateSchema as W,
WCStoreShippingRateSchema as a
};
//# sourceMappingURL=couts-livraison.js.map

View file

@ -65,8 +65,8 @@ const SELECTEUR_PRIX_PRODUIT = ".selecteur-produit__prix";
export {
SELECTEUR_BOUTON_MENU_MOBILE as $,
ATTRIBUT_CONTIENT_ARTICLES as A,
SELECTEUR_PRIX_LIGNE_PANIER as B,
ATTRIBUT_DESACTIVE as C,
SELECTEUR_FORMULAIRE_PANIER as B,
SELECTEUR_INSTRUCTIONS_CLIENT as C,
SELECTEUR_SOUS_TOTAL_LIVRAISON_COUT as D,
SELECTEUR_SOUS_TOTAL_LIVRAISON_PRESTATAIRE as E,
ATTRIBUT_CHARGEMENT as F,
@ -115,16 +115,16 @@ export {
SELECTEUR_CONTENEUR_PANIER as m,
SELECTEUR_SOUS_TOTAL_PRODUITS as n,
SELECTEUR_TOTAL_REDUCTION_VALEUR as o,
SELECTEUR_INSTRUCTIONS_CLIENT as p,
SELECTEUR_TOTAL_PANIER as q,
SELECTEUR_BOUTON_SEPARATION_ADRESSES as r,
SELECTEUR_FORMULAIRE_PANIER as s,
SELECTEUR_FORMULAIRE_FACTURATION as t,
SELECTEUR_BOUTON_ACTIONS_FORMULAIRE as u,
ATTRIBUT_CLE_PANIER as v,
SELECTEUR_BOUTON_SOUSTRACTION_QUANTITE as w,
SELECTEUR_CHAMP_QUANTITE_LIGNE_PANIER as x,
SELECTEUR_BOUTON_ADDITION_QUANTITE as y,
SELECTEUR_BOUTON_SUPPRESSION_PANIER as z
SELECTEUR_TOTAL_PANIER as p,
SELECTEUR_BOUTON_SEPARATION_ADRESSES as q,
SELECTEUR_FORMULAIRE_FACTURATION as r,
ATTRIBUT_CLE_PANIER as s,
SELECTEUR_BOUTON_SOUSTRACTION_QUANTITE as t,
SELECTEUR_CHAMP_QUANTITE_LIGNE_PANIER as u,
SELECTEUR_BOUTON_ADDITION_QUANTITE as v,
SELECTEUR_BOUTON_SUPPRESSION_PANIER as w,
SELECTEUR_PRIX_LIGNE_PANIER as x,
ATTRIBUT_DESACTIVE as y,
SELECTEUR_BOUTON_ACTIONS_FORMULAIRE as z
};
//# sourceMappingURL=dom.js.map

View file

@ -1,6 +1,6 @@
import { e as creeSyntaxError, f as reporteEtLeveErreur, g as ERREUR_SYNTAXE_INVALIDE, h as ERREUR_SELECTEUR_INEXISTANT } from "./erreurs2.js";
import { e as creeSyntaxError, f as reporteEtLeveErreur, g as ErreurEntreeInexistante, h as ERREUR_SYNTAXE_INVALIDE, i as ERREUR_SELECTEUR_INEXISTANT } from "./erreurs2.js";
import { p as pipe } from "./pipe.XPB0wEfw.js";
import { E as Either, r as right, l as left } from "./Either.wHNxn7Os.js";
import { E as Either, r as right, l as left, M as Maybe } from "./Either.wHNxn7Os.js";
import "./exports.B84S-6H1.js";
function int_compare(e, r) {
if (e < r) {
@ -2033,30 +2033,34 @@ const html = (strings, ...args) => pipe(
(template) => majElementInnerHtml(template)(args.reduce((prev, value, i2) => prev + value + strings[i2 + 1], strings[0])),
(template) => template.content
);
const eitherSessionStorageGet = (cle) => Maybe.fromNullable(sessionStorage.getItem(cle)).toEither(ErreurEntreeInexistante(`Clé ${cle} absente dans le stockage de session.`));
const eitherJsonParse = (chaine) => Either.encase(() => JSON.parse(chaine));
const accorderCibleASelecteur = (cible, selecteur) => cible !== null && cible.matches(selecteur);
export {
Ra as R,
recupereElementsAvecSelecteur as a,
recupereElementAvecSelecteur as b,
accorderCibleASelecteur as c,
recupereElementsOuLeve as d,
equal as e,
everyU as f,
some$1 as g,
eitherJsonParse as c,
accorderCibleASelecteur as d,
eitherSessionStorageGet as e,
recupereElementsOuLeve as f,
equal as g,
html as h,
identity 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,
everyU as j,
some$1 as k,
values as l,
fromArray as m,
get$1 as n,
forEachU as o,
mapU as p,
reduceU as q,
recupereElementOuLeve as r,
someU as s,
concat$1 as t,
append as t,
unsafeDeleteKey as u,
valFromOption as v
valFromOption as v,
nullable_to_opt as w,
concat$1 as x
};
//# sourceMappingURL=dom2.js.map

File diff suppressed because one or more lines are too long

View file

@ -14,6 +14,12 @@ class CleNonTrouveError extends Error {
this.name = "CleNonTrouveError";
}
}
class NonExistingKeyError extends Error {
constructor(message) {
super(JSON.stringify(message));
this.name = "NonExistingKeyError";
}
}
class NotFoundError extends Error {
constructor(message = "404 NotFoundError") {
super(message);
@ -39,6 +45,7 @@ class UnknownError extends Error {
}
}
const ErreurInconnue = (erreur) => new UnknownError(erreur);
const ErreurEntreeInexistante = (message) => new NonExistingKeyError(message);
const leveErreur = (erreur) => {
throw erreur;
};
@ -66,14 +73,15 @@ export {
CleNonTrouveError as C,
ErreurInconnue as E,
ServerError as S,
leveBadRequestError as a,
leveUnauthorizedError as b,
leveNotFoundError as c,
leveErreur as d,
leveErreur as a,
leveBadRequestError as b,
leveUnauthorizedError as c,
leveNotFoundError as d,
creeSyntaxError as e,
reporteEtLeveErreur as f,
ERREUR_SYNTAXE_INVALIDE as g,
ERREUR_SELECTEUR_INEXISTANT as h,
ErreurEntreeInexistante as g,
ERREUR_SYNTAXE_INVALIDE as h,
ERREUR_SELECTEUR_INEXISTANT as i,
leveServerError as l,
reporteErreur as r
};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -1,4 +1,4 @@
import { h as ENTETE_GLITCHTIP_RATE_LIMITS, i as ENTETE_GLITCHTIP_RETRY_AFTER } from "./api.js";
import { i as ENTETE_GLITCHTIP_RATE_LIMITS, j as ENTETE_GLITCHTIP_RETRY_AFTER } from "./api.js";
import { D as DEBUG_BUILD$1, l as logger, g as getFunctionName, G as GLOBAL_OBJ, a as DEBUG_BUILD$2, b as consoleSandbox, d as dropUndefinedKeys, n as normalize, u as urlEncode, e as dateTimestampInSeconds, f as uuid4, h as checkOrSetAlreadyCaught, i as isPrimitive, j as updateSession, r as resolvedSyncPromise, S as SyncPromise, p as prepareEvent, k as getDynamicSamplingContextFromClient, m as getIsolationScope, o as rejectedSyncPromise, q as isThenable, s as isPlainObject, t as isParameterizedString, v as SDK_VERSION, w as getClient, x as getOriginalFunction, y as isInstanceOf, z as truncate, C as CONSOLE_LEVELS, A as fill, B as originalConsoleMethods, E as getFramesFromEvent, F as timestampInSeconds, H as isError, I as addNonEnumerableProperty, 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.B84S-6H1.js";
import { p as pipe } from "./pipe.XPB0wEfw.js";
const handlers = {};

View file

@ -1,4 +1,4 @@
import { g as ROUTE_API_PANIER, E as ENTETE_WC_NONCE } from "./api.js";
import { h as ROUTE_API_PANIER, E as ENTETE_WC_NONCE } from "./api.js";
import { E as EitherAsync } from "./MaybeAsync.AE1jnxuc.js";
import { r as right, l as left } from "./Either.wHNxn7Os.js";
const ETATS = _etats;

View file

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

View file

@ -1,20 +1,162 @@
const ORDER_STATUSES = {
AUTO_DRAFT: "auto-draft",
CANCELLED: "cancelled",
CHECKOUT_DRAFT: "checkout-draft",
COMPLETED: "completed",
FAILED: "failed",
ON_HOLD: "on-hold",
PENDING: "pending",
PROCESSING: "processing",
REFUNDED: "refuneded"
};
const TAX_STATUSES = {
NONE: "none",
TAXABLE: "taxable"
};
import { o as object, a as pipe, b as array, s as string, e as enum_, f as union, c as optional, d as boolean, u as unknown, j as integer, n as number, g as null_ } from "./index.DxUTT09Y.js";
import { T as TAX_STATUSES, O as ORDER_STATUSES } from "./orders3.js";
import { W as WCStoreBillingAddressSchema, a as WCStoreShippingAddressSchema } from "./adresses.js";
const WCV3OrdersCouponLineMetaDataSchema = object({
id: pipe(number(), integer()),
key: string(),
value: unknown()
});
const WCV3OrdersCouponLineSchema = object({
code: string(),
discount: string(),
discount_tax: string(),
discount_type: string(),
free_shipping: boolean(),
id: pipe(number(), integer()),
meta_data: array(WCV3OrdersCouponLineMetaDataSchema),
nominal_amount: number()
});
const WCV3OrdersFeeLineMetaDataSchema = object({
id: pipe(number(), integer()),
key: string(),
value: unknown()
});
const WCV3OrdersFeeLineTaxSchema = object({
id: pipe(number(), integer()),
subtotal: string(),
total: string()
});
const WCV3OrdersFeeLineSchema = object({
id: pipe(number(), integer()),
meta_data: array(WCV3OrdersFeeLineMetaDataSchema),
name: string(),
tax_class: string(),
tax_status: enum_(TAX_STATUSES),
taxes: array(WCV3OrdersFeeLineTaxSchema),
total: string(),
total_tax: string()
});
const WCV3OrdersShippingLineMetaDataSchema = object({
id: pipe(number(), integer()),
key: string(),
value: unknown()
});
const WCV3OrdersShippingLineTaxSchema = object({
id: pipe(number(), integer()),
total: string()
});
const WCV3OrdersShippingLineSchema = object({
id: optional(pipe(number(), integer())),
meta_data: optional(array(WCV3OrdersShippingLineMetaDataSchema)),
method_id: optional(string()),
method_title: optional(string()),
taxes: optional(array(WCV3OrdersShippingLineTaxSchema)),
total: optional(string()),
total_tax: optional(string())
});
const WCV3OrdersLineItemImageSchema = object({
id: union([string(), pipe(number(), integer())]),
src: string()
});
const WCV3OrdersLineItemMetaDataSchema = object({
display_key: string(),
display_value: string(),
id: pipe(number(), integer()),
key: string(),
value: unknown()
});
const WCV3OrdersLineItemTaxSchema = object({
id: pipe(number(), integer()),
subtotal: string(),
total: string()
});
const WCV3OrdersLineItemSchema = object({
id: optional(pipe(number(), integer())),
image: optional(WCV3OrdersLineItemImageSchema),
meta_data: optional(array(WCV3OrdersLineItemMetaDataSchema)),
name: optional(string()),
parent_name: optional(union([string(), null_()])),
price: optional(number()),
product_id: optional(pipe(number(), integer())),
quantity: optional(pipe(number(), integer())),
sku: optional(string()),
subtotal: optional(string()),
subtotal_tax: optional(string()),
tax_class: optional(string()),
taxes: optional(array(WCV3OrdersLineItemTaxSchema)),
total: optional(string()),
total_tax: optional(string()),
variation_id: optional(pipe(number(), integer()))
});
const WCV3OrdersArgsSchema = object({
billing: optional(WCStoreBillingAddressSchema),
coupon_lines: optional(array(WCV3OrdersCouponLineSchema)),
currency: optional(string()),
customer_id: optional(pipe(number(), integer())),
customer_note: optional(string()),
fee_lines: optional(array(WCV3OrdersFeeLineSchema)),
line_items: optional(array(WCV3OrdersLineItemSchema)),
manual_update: optional(boolean()),
parent_id: optional(pipe(number(), integer())),
payment_method: optional(string()),
payment_method_title: optional(string()),
set_paid: optional(boolean()),
shipping: optional(WCStoreShippingAddressSchema),
shipping_lines: optional(array(WCV3OrdersShippingLineSchema)),
status: optional(enum_(ORDER_STATUSES)),
transaction_id: optional(string())
});
const WCV3OrderSchema = object({
billing: WCStoreBillingAddressSchema,
cart_hash: string(),
cart_tax: string(),
coupon_lines: array(WCV3OrdersCouponLineSchema),
created_via: string(),
currency: string(),
currency_symbol: string(),
customer_id: pipe(number(), integer()),
customer_ip_address: string(),
customer_note: string(),
customer_user_agent: string(),
date_completed: union([string(), null_()]),
date_completed_gmt: union([string(), null_()]),
// Date
date_created: string(),
date_created_gmt: string(),
date_modified: string(),
date_modified_gmt: string(),
date_paid: union([string(), null_()]),
date_paid_gmt: union([string(), null_()]),
discount_tax: string(),
discount_total: string(),
fee_lines: array(WCV3OrdersFeeLineSchema),
id: pipe(number(), integer()),
is_editable: boolean(),
line_items: array(WCV3OrdersLineItemSchema),
meta_data: unknown(),
needs_payment: boolean(),
needs_processing: boolean(),
number: string(),
order_key: string(),
parent_id: pipe(number(), integer()),
payment_method: string(),
payment_method_title: string(),
payment_url: string(),
prices_include_tax: boolean(),
refunds: array(unknown()),
shipping: WCStoreShippingAddressSchema,
shipping_lines: array(WCV3OrdersShippingLineSchema),
shipping_tax: string(),
shipping_total: string(),
status: enum_(ORDER_STATUSES),
tax_lines: array(unknown()),
total: string(),
total_tax: string(),
transaction_id: string(),
version: string()
});
export {
ORDER_STATUSES as O,
TAX_STATUSES as T
WCV3OrdersArgsSchema as W,
WCV3OrderSchema as a
};
//# sourceMappingURL=orders2.js.map

File diff suppressed because one or more lines are too long

View file

@ -1,158 +1,20 @@
import { o as object, a as pipe, b as array, s as string, e as enum_, f as union, c as optional, d as boolean, u as unknown, j as integer, n as number, g as null_ } from "./index.DxUTT09Y.js";
import { T as TAX_STATUSES, O as ORDER_STATUSES } from "./orders2.js";
import { W as WCStoreBillingAddressSchema, a as WCStoreShippingAddressSchema } from "./adresses.js";
const WCV3OrdersCouponLineMetaDataSchema = object({
id: pipe(number(), integer()),
key: string(),
value: unknown()
});
const WCV3OrdersCouponLineSchema = object({
code: string(),
discount: string(),
discount_tax: string(),
discount_type: string(),
free_shipping: boolean(),
id: pipe(number(), integer()),
meta_data: array(WCV3OrdersCouponLineMetaDataSchema),
nominal_amount: number()
});
const WCV3OrdersFeeLineMetaDataSchema = object({
id: pipe(number(), integer()),
key: string(),
value: unknown()
});
const WCV3OrdersFeeLineTaxSchema = object({
id: pipe(number(), integer()),
subtotal: string(),
total: string()
});
const WCV3OrdersFeeLineSchema = object({
id: pipe(number(), integer()),
meta_data: array(WCV3OrdersFeeLineMetaDataSchema),
name: string(),
tax_class: string(),
tax_status: enum_(TAX_STATUSES),
taxes: array(WCV3OrdersFeeLineTaxSchema),
total: string(),
total_tax: string()
});
const WCV3OrdersShippingLineMetaDataSchema = object({
id: pipe(number(), integer()),
key: string(),
value: unknown()
});
const WCV3OrdersShippingLineTaxSchema = object({
id: pipe(number(), integer()),
total: string()
});
const WCV3OrdersShippingLineSchema = object({
id: optional(pipe(number(), integer())),
meta_data: optional(array(WCV3OrdersShippingLineMetaDataSchema)),
method_id: optional(string()),
method_title: optional(string()),
taxes: optional(array(WCV3OrdersShippingLineTaxSchema)),
total: optional(string()),
total_tax: optional(string())
});
const WCV3OrdersLineItemImageSchema = object({
id: union([string(), pipe(number(), integer())]),
src: string()
});
const WCV3OrdersLineItemMetaDataSchema = object({
display_key: string(),
display_value: string(),
id: pipe(number(), integer()),
key: string(),
value: unknown()
});
const WCV3OrdersLineItemTaxSchema = object({
id: pipe(number(), integer()),
subtotal: string(),
total: string()
});
const WCV3OrdersLineItemSchema = object({
id: optional(pipe(number(), integer())),
image: optional(WCV3OrdersLineItemImageSchema),
meta_data: optional(array(WCV3OrdersLineItemMetaDataSchema)),
name: optional(string()),
parent_name: optional(union([string(), null_()])),
price: optional(number()),
product_id: optional(pipe(number(), integer())),
quantity: optional(pipe(number(), integer())),
sku: optional(string()),
subtotal: optional(string()),
subtotal_tax: optional(string()),
tax_class: optional(string()),
taxes: optional(array(WCV3OrdersLineItemTaxSchema)),
total: optional(string()),
total_tax: optional(string()),
variation_id: optional(pipe(number(), integer()))
});
object({
billing: optional(WCStoreBillingAddressSchema),
coupon_lines: optional(array(WCV3OrdersCouponLineSchema)),
currency: optional(string()),
customer_id: optional(pipe(number(), integer())),
customer_note: optional(string()),
fee_lines: optional(array(WCV3OrdersFeeLineSchema)),
line_items: optional(array(WCV3OrdersLineItemSchema)),
manual_update: optional(boolean()),
parent_id: optional(pipe(number(), integer())),
payment_method: optional(string()),
payment_method_title: optional(string()),
set_paid: optional(boolean()),
shipping: optional(WCStoreShippingAddressSchema),
shipping_lines: optional(array(WCV3OrdersShippingLineSchema)),
status: optional(enum_(ORDER_STATUSES)),
transaction_id: optional(string())
});
object({
billing: WCStoreBillingAddressSchema,
cart_hash: string(),
cart_tax: string(),
coupon_lines: array(WCV3OrdersCouponLineSchema),
created_via: string(),
currency: string(),
currency_symbol: string(),
customer_id: pipe(number(), integer()),
customer_ip_address: string(),
customer_note: string(),
customer_user_agent: string(),
date_completed: union([string(), null_()]),
date_completed_gmt: union([string(), null_()]),
// Date
date_created: string(),
date_created_gmt: string(),
date_modified: string(),
date_modified_gmt: string(),
date_paid: union([string(), null_()]),
date_paid_gmt: union([string(), null_()]),
discount_tax: string(),
discount_total: string(),
fee_lines: array(WCV3OrdersFeeLineSchema),
id: pipe(number(), integer()),
is_editable: boolean(),
line_items: array(WCV3OrdersLineItemSchema),
meta_data: unknown(),
needs_payment: boolean(),
needs_processing: boolean(),
number: string(),
order_key: string(),
parent_id: pipe(number(), integer()),
payment_method: string(),
payment_method_title: string(),
payment_url: string(),
prices_include_tax: boolean(),
refunds: array(unknown()),
shipping: WCStoreShippingAddressSchema,
shipping_lines: array(WCV3OrdersShippingLineSchema),
shipping_tax: string(),
shipping_total: string(),
status: enum_(ORDER_STATUSES),
tax_lines: array(unknown()),
total: string(),
total_tax: string(),
transaction_id: string(),
version: string()
});
const ORDER_STATUSES = {
AUTO_DRAFT: "auto-draft",
CANCELLED: "cancelled",
CHECKOUT_DRAFT: "checkout-draft",
COMPLETED: "completed",
FAILED: "failed",
ON_HOLD: "on-hold",
PENDING: "pending",
PROCESSING: "processing",
REFUNDED: "refuneded"
};
const TAX_STATUSES = {
NONE: "none",
TAXABLE: "taxable"
};
export {
ORDER_STATUSES as O,
TAX_STATUSES as T
};
//# sourceMappingURL=orders3.js.map

File diff suppressed because one or more lines are too long

View file

@ -1,7 +1,7 @@
import { z, N } from "./index.CeK6pfoJ.js";
import { p as parse } from "./index.DxUTT09Y.js";
import { E as ENTETE_WC_NONCE } from "./api.js";
import { a as leveBadRequestError, b as leveUnauthorizedError, c as leveNotFoundError, E as ErreurInconnue, d as leveErreur } from "./erreurs2.js";
import { b as leveBadRequestError, c as leveUnauthorizedError, d as leveNotFoundError, E as ErreurInconnue, a as leveErreur } from "./erreurs2.js";
import { e as estWCError } from "./erreurs3.js";
import { p as pipe } from "./pipe.XPB0wEfw.js";
import "./exports.B84S-6H1.js";

View file

@ -1,8 +1,8 @@
import { a2 as ATTRIBUT_ID_ENSEMBLE_EPINGLE_BOITE, a3 as ATTRIBUT_ENSEMBLE_EPINGLE_BOITE_ACTIF, a4 as CLASS_BOUTON_FERMETURE_BOITE_TEXTE, a5 as CLASS_EPINGLE, a6 as SELECTEUR_CONTENEUR_STORYTELLING_A_PROPOS, a7 as SELECTEUR_EPINGLE, a8 as SELECTEUR_BOITE_TEXTE } from "./dom.js";
import { a as recupereElementDansDocumentOuLeve, b as recupereElementsDansDocumentOuLeve } from "./utils.js";
import { g as some, o as reduceU, q as nullable_to_opt, v as valFromOption, e as equal, t as concat, R as Ra } from "./dom2.js";
import { k as some, q as reduceU, w as nullable_to_opt, v as valFromOption, g as equal, x as concat, 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.Bf2JA1bN.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.cBye8bLJ.js";
import "./erreurs2.js";
import "./exports.B84S-6H1.js";
import "./Either.wHNxn7Os.js";

View file

@ -10,12 +10,12 @@ import { W as WCV3ProductsArgsSchema, a as WCV3ProductsSchema } from "./products
import { a as recupereElementDansDocumentOuLeve, r as recupereElementDocumentEither } from "./utils.js";
import { E as EitherAsync } from "./MaybeAsync.AE1jnxuc.js";
import { p as pipe } from "./pipe.XPB0wEfw.js";
import { t as tap } from "./index-0eef19ec.Bvb4qYFq.js";
import { t as tap } from "./index-0eef19ec.DoJSf22Z.js";
import { E as Either } from "./Either.wHNxn7Os.js";
import "./exports.B84S-6H1.js";
import "./erreurs3.js";
import "./products2.js";
import "./belt_Option-91f3b350.Bf2JA1bN.js";
import "./belt_Option-91f3b350.cBye8bLJ.js";
const ETATS_PAGE = _etats;
const GRILLE_PRODUITS = recupereElementDansDocumentOuLeve(SELECTEUR_GRILLE_PRODUITS);
const BOUTON_PLUS_DE_PRODUITS = recupereElementDocumentEither(

View file

@ -1,34 +1,39 @@
import { z } from "./index.CeK6pfoJ.js";
import { c as ROUTE_API_MAJ_CLIENT } from "./api.js";
import { u as SELECTEUR_BOUTON_ACTIONS_FORMULAIRE, s as SELECTEUR_FORMULAIRE_PANIER, D as SELECTEUR_SOUS_TOTAL_LIVRAISON_COUT, E as SELECTEUR_SOUS_TOTAL_LIVRAISON_PRESTATAIRE, C as ATTRIBUT_DESACTIVE, F as ATTRIBUT_CHARGEMENT } from "./dom.js";
import { V as ValiError } from "./index.DxUTT09Y.js";
import { c as ROUTE_API_MAJ_CLIENT, d as ROUTE_API_NOUVELLE_COMMANDES } from "./api.js";
import { l as SELECTEUR_ENTREES_PANIER, z as SELECTEUR_BOUTON_ACTIONS_FORMULAIRE, B as SELECTEUR_FORMULAIRE_PANIER, C as SELECTEUR_INSTRUCTIONS_CLIENT, D as SELECTEUR_SOUS_TOTAL_LIVRAISON_COUT, E as SELECTEUR_SOUS_TOTAL_LIVRAISON_PRESTATAIRE, y as ATTRIBUT_DESACTIVE, F as ATTRIBUT_CHARGEMENT } from "./dom.js";
import { l as lanceAnimationCycleTexte } from "./animations.js";
import { S as ServerError } from "./erreurs2.js";
import { e as eitherSessionStorageGet, c as eitherJsonParse } from "./dom2.js";
import { S as ServerError, a as leveErreur, l as leveServerError } from "./erreurs2.js";
import { e as estReponse500 } from "./gardes.js";
import { p as postBackend } from "./reseau.js";
import { W as WCStoreCartSchema } from "./cart.js";
import { W as WCStoreCartUpdateCustomerArgsSchema } from "./cart-update-customer.js";
import { a as recupereElementDansDocumentOuLeve, y } from "./utils.js";
import { W as WCStoreShippingRateShippingRateSchema } from "./couts-livraison.js";
import { W as WCV3OrdersArgsSchema, a as WCV3OrderSchema } from "./orders2.js";
import { a as recupereElementDansDocumentOuLeve, c as recupereElementsDocumentEither } from "./utils.js";
import { e as eitherParse } from "./validation.js";
import { p as pipe } from "./pipe.XPB0wEfw.js";
import { E as EitherAsync } from "./MaybeAsync.AE1jnxuc.js";
import { p as pipe } from "./pipe.XPB0wEfw.js";
import { M as Maybe } from "./Either.wHNxn7Os.js";
import "./exports.B84S-6H1.js";
import "./index.DxUTT09Y.js";
import "./erreurs3.js";
import "./cart2.js";
import "./adresses.js";
import "./cart-coupons.js";
import "./couts-livraison.js";
import "./dom2.js";
import "./orders3.js";
const ETATS_PAGE = _etats;
const ELEMENTS = {
BOUTON_ACTIONS_FORMULAIRE: recupereElementDansDocumentOuLeve(SELECTEUR_BOUTON_ACTIONS_FORMULAIRE),
ENTREES_PANIER_EITHER: recupereElementsDocumentEither(SELECTEUR_ENTREES_PANIER),
FORMULAIRE_PANIER: recupereElementDansDocumentOuLeve(SELECTEUR_FORMULAIRE_PANIER),
SOUS_TOTAL_LIVRAISON_COUT: recupereElementDansDocumentOuLeve(SELECTEUR_SOUS_TOTAL_LIVRAISON_COUT),
SOUS_TOTAL_LIVRAISON_PRESTATAIRE: recupereElementDansDocumentOuLeve(
INSTRUCTIONS_CLIENT: recupereElementDansDocumentOuLeve(SELECTEUR_INSTRUCTIONS_CLIENT),
TOTAL_LIVRAISON_COUT: recupereElementDansDocumentOuLeve(SELECTEUR_SOUS_TOTAL_LIVRAISON_COUT),
TOTAL_LIVRAISON_PRESTATAIRE: recupereElementDansDocumentOuLeve(
SELECTEUR_SOUS_TOTAL_LIVRAISON_PRESTATAIRE
)
};
const initialiseBoutonActions = () => {
const initialiseBoutonSoumissionAdresses = () => {
ELEMENTS.BOUTON_ACTIONS_FORMULAIRE.addEventListener("click", (evenement) => {
Maybe.fromFalsy(ELEMENTS.FORMULAIRE_PANIER.checkValidity()).ifJust(() => {
evenement.preventDefault();
@ -46,13 +51,7 @@ const initialiseBoutonActions = () => {
});
animation.callback();
animation.interval = setInterval(animation.callback, 500);
}).ifJust(() => {
const donneesFormulaire = pipe(
new FormData(ELEMENTS.FORMULAIRE_PANIER),
(formData) => formData.entries(),
(entrees) => Array.from(entrees),
(tuple) => y.fromPairs(tuple)
);
const donneesFormulaire = Object.fromEntries(new FormData(ELEMENTS.FORMULAIRE_PANIER));
const argumentsFormulaire = {
billing_address: {
address_1: donneesFormulaire["facturation-adresse"] ?? donneesFormulaire["livraison-adresse"] ?? "",
@ -95,16 +94,17 @@ const initialiseBoutonActions = () => {
return z(reponseSimplifiee).with({ status: 500 }, () => throwE(new ServerError("500 Server Error"))).with({ status: 200 }, () => reponseSimplifiee.body).run();
})
).chain((corsReponse) => EitherAsync.liftEither(eitherParse(corsReponse, WCStoreCartSchema))).ifRight((panier) => {
console.debug(panier);
console.debug(panier.shipping_rates);
const sousTotalLivraison = panier.totals.total_shipping === "0" ? "Free" : `${String(panier.totals.total_shipping)}`;
const prestataireLivraison = panier.shipping_rates[0]?.shipping_rates[0]?.name ?? "";
ELEMENTS.SOUS_TOTAL_LIVRAISON_COUT.textContent = sousTotalLivraison;
ELEMENTS.SOUS_TOTAL_LIVRAISON_PRESTATAIRE.textContent = prestataireLivraison;
ELEMENTS.TOTAL_LIVRAISON_COUT.textContent = sousTotalLivraison;
ELEMENTS.TOTAL_LIVRAISON_PRESTATAIRE.textContent = prestataireLivraison;
sessionStorage.setItem(
"shipping_rates",
JSON.stringify(panier.shipping_rates[0]?.shipping_rates[0] ?? "")
);
ELEMENTS.BOUTON_ACTIONS_FORMULAIRE.textContent = "Check-out";
initialiseBoutonCreationCommande();
}).ifLeft((erreur) => z(erreur).with).finally(() => {
ELEMENTS.BOUTON_ACTIONS_FORMULAIRE.removeAttribute(ATTRIBUT_CHARGEMENT);
ELEMENTS.BOUTON_ACTIONS_FORMULAIRE.removeAttribute(ATTRIBUT_DESACTIVE);
@ -112,7 +112,108 @@ const initialiseBoutonActions = () => {
});
});
};
const initialiseBoutonCreationCommande = () => {
ELEMENTS.BOUTON_ACTIONS_FORMULAIRE.outerHTML = ELEMENTS.BOUTON_ACTIONS_FORMULAIRE.outerHTML;
ELEMENTS.BOUTON_ACTIONS_FORMULAIRE = recupereElementDansDocumentOuLeve(
SELECTEUR_BOUTON_ACTIONS_FORMULAIRE
);
ELEMENTS.BOUTON_ACTIONS_FORMULAIRE.addEventListener("click", (evenement) => {
Maybe.fromFalsy(ELEMENTS.FORMULAIRE_PANIER.checkValidity()).ifJust(() => {
evenement.preventDefault();
ELEMENTS.BOUTON_ACTIONS_FORMULAIRE.setAttribute(ATTRIBUT_DESACTIVE, "");
ELEMENTS.BOUTON_ACTIONS_FORMULAIRE.setAttribute(ATTRIBUT_CHARGEMENT, "");
const animation = lanceAnimationCycleTexte({
attribut: ATTRIBUT_CHARGEMENT,
element: ELEMENTS.BOUTON_ACTIONS_FORMULAIRE,
etapes: [
"Loading",
"Loading.",
"Loading..",
"Loading..."
]
});
animation.callback();
animation.interval = setInterval(animation.callback, 500);
const donneesFormulaire = Object.fromEntries(new FormData(ELEMENTS.FORMULAIRE_PANIER));
const methodeLivraison = eitherSessionStorageGet("shipping_rates").chain(eitherJsonParse).chain(
(json) => eitherParse(
json,
WCStoreShippingRateShippingRateSchema
)
).ifLeft((e) => {
if (e instanceof ValiError) console.error(e.issues);
console.error("methodeLivraison", e);
ELEMENTS.BOUTON_ACTIONS_FORMULAIRE.textContent = "Check-out";
leveErreur(e);
}).unsafeCoerce();
const articlesPanier = ELEMENTS.ENTREES_PANIER_EITHER.orDefault([]).map((entree) => ({
product_id: Number(entree.getAttribute("data-id-produit")),
quantity: Number(entree.getAttribute("data-quantite")),
...entree.getAttribute("data-id-variation") && {
variation_id: Number(entree.getAttribute("data-id-variation"))
}
}));
const argumentsFormulaire = {
billing: {
address_1: donneesFormulaire["facturation-adresse"] ?? donneesFormulaire["livraison-adresse"] ?? "",
address_2: "",
city: donneesFormulaire["facturation-ville"] ?? donneesFormulaire["livraison-ville"] ?? "",
company: "",
country: "FR",
email: donneesFormulaire["facturation-email"] ?? donneesFormulaire["livraison-email"] ?? "",
first_name: donneesFormulaire["facturation-prenom"] ?? donneesFormulaire["livraison-prenom"] ?? "",
last_name: donneesFormulaire["facturation-nom"] ?? donneesFormulaire["livraison-nom"] ?? "",
phone: donneesFormulaire["facturation-telephone"] ?? donneesFormulaire["livraison-telephone"] ?? "",
postcode: donneesFormulaire["facturation-code-postal"] ?? donneesFormulaire["livraison-code-postal"] ?? "",
state: donneesFormulaire["facturation-region-etat"] ?? donneesFormulaire["livraison-region-etat"] ?? ""
},
currency: methodeLivraison.currency_code,
customer_note: ELEMENTS.INSTRUCTIONS_CLIENT.value,
line_items: articlesPanier,
shipping: {
address_1: donneesFormulaire["livraison-adresse"] ?? "",
address_2: "",
city: donneesFormulaire["livraison-ville"] ?? "",
company: "",
country: "FR",
first_name: donneesFormulaire["livraison-prenom"] ?? "",
last_name: donneesFormulaire["livraison-nom"] ?? "",
phone: donneesFormulaire["livraison-telephone"] ?? "",
postcode: donneesFormulaire["livraison-code-postal"] ?? "",
state: donneesFormulaire["livraison-region-etat"] ?? ""
},
shipping_lines: [
{
method_id: methodeLivraison.method_id,
method_title: methodeLivraison.name,
total: methodeLivraison.price
}
]
};
eitherParse(argumentsFormulaire, WCV3OrdersArgsSchema).map(async (args) => {
await postBackend({
authString: ETATS_PAGE.authString,
corps: JSON.stringify(args),
nonce: ETATS_PAGE.nonce,
route: ROUTE_API_NOUVELLE_COMMANDES
}).then(async (reponse) => {
if (estReponse500(reponse)) leveServerError("500 Server Error");
pipe(
// Récupère la Réponse
await reponse.json(),
(corpsReponse) => eitherParse(corpsReponse, WCV3OrderSchema).ifRight((reponse2) => {
const url = new URL(`https://${window.location.host}/checkout`);
url.searchParams.append("order_key", reponse2.order_key);
url.searchParams.append("order_id", String(reponse2.id));
location.assign(url);
}).ifLeft((e) => console.error(e.issues))
);
});
}).ifLeft((a) => console.error(a.issues));
});
});
};
export {
initialiseBoutonActions as i
initialiseBoutonSoumissionAdresses as i
};
//# sourceMappingURL=scripts-page-panier-adresses.js.map

File diff suppressed because one or more lines are too long

View file

@ -1,10 +1,10 @@
import { z, N } from "./index.CeK6pfoJ.js";
import { V as ValiError } from "./index.DxUTT09Y.js";
import { d as ROUTE_API_APPLIQUE_COUPON, e as ROUTE_API_RETIRE_COUPON } from "./api.js";
import { G as SELECTEUR_BOUTON_CODE_PROMO, H as SELECTEUR_CHAMP_CODE_PROMO, I as SELECTEUR_ENSEMBLE_CODE_PROMO, J as SELECTEUR_MESSAGE_CODE_PROMO, q as SELECTEUR_TOTAL_PANIER, K as SELECTEUR_TOTAL_REDUCTION, o as SELECTEUR_TOTAL_REDUCTION_VALEUR, C as ATTRIBUT_DESACTIVE, F as ATTRIBUT_CHARGEMENT, L as ATTRIBUT_CODE_PROMO_PRESENT, k as ATTRIBUT_HIDDEN } from "./dom.js";
import { e as ROUTE_API_APPLIQUE_COUPON, f as ROUTE_API_RETIRE_COUPON } from "./api.js";
import { G as SELECTEUR_BOUTON_CODE_PROMO, H as SELECTEUR_CHAMP_CODE_PROMO, I as SELECTEUR_ENSEMBLE_CODE_PROMO, J as SELECTEUR_MESSAGE_CODE_PROMO, p as SELECTEUR_TOTAL_PANIER, K as SELECTEUR_TOTAL_REDUCTION, o as SELECTEUR_TOTAL_REDUCTION_VALEUR, y as ATTRIBUT_DESACTIVE, F as ATTRIBUT_CHARGEMENT, L as ATTRIBUT_CODE_PROMO_PRESENT, k as ATTRIBUT_HIDDEN } from "./dom.js";
import { E as ERREUR_CODE_PROMO_INVALIDE } from "./erreurs.js";
import { l as lanceAnimationCycleTexte } from "./animations.js";
import { c as accorderCibleASelecteur, i as identity } from "./dom2.js";
import { d as accorderCibleASelecteur, i as identity } from "./dom2.js";
import { S as ServerError } from "./erreurs2.js";
import { E as ErreurCodePromoInvalide } from "./codes-promo.js";
import { e as estReponse500 } from "./gardes.js";

View file

@ -1,6 +1,6 @@
import { p as parse } from "./index.DxUTT09Y.js";
import { a as ROUTE_API_RETIRE_ARTICLE_PANIER, b as ROUTE_API_MAJ_ARTICLE_PANIER } from "./api.js";
import { l as SELECTEUR_ENTREES_PANIER, m as SELECTEUR_CONTENEUR_PANIER, n as SELECTEUR_SOUS_TOTAL_PRODUITS, o as SELECTEUR_TOTAL_REDUCTION_VALEUR, p as SELECTEUR_INSTRUCTIONS_CLIENT, 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_TOTAL_REDUCTION_VALEUR, p as SELECTEUR_TOTAL_PANIER, q as SELECTEUR_BOUTON_SEPARATION_ADRESSES, r as SELECTEUR_FORMULAIRE_FACTURATION, s as ATTRIBUT_CLE_PANIER, t as SELECTEUR_BOUTON_SOUSTRACTION_QUANTITE, u as SELECTEUR_CHAMP_QUANTITE_LIGNE_PANIER, v as SELECTEUR_BOUTON_ADDITION_QUANTITE, w as SELECTEUR_BOUTON_SUPPRESSION_PANIER, A as ATTRIBUT_CONTIENT_ARTICLES, x as SELECTEUR_PRIX_LIGNE_PANIER, k as ATTRIBUT_HIDDEN, y as ATTRIBUT_DESACTIVE } from "./dom.js";
import { N as NOM_CANAL_BOUTON_PANIER, a as NOM_CANAL_CONTENU_PANIER } from "./messages3.js";
import { a as recupereElementsAvecSelecteur, b as recupereElementAvecSelecteur, r as recupereElementOuLeve } from "./dom2.js";
import { l as leveServerError, r as reporteErreur } from "./erreurs2.js";
@ -11,10 +11,10 @@ import { W as WCStoreCartRemoveItemArgsSchema } from "./cart-remove-item.js";
import { W as WCStoreCartUpdateItemArgsSchema } from "./cart-update-item.js";
import { W as WCStoreCartSchema } from "./cart.js";
import { c as recupereElementsDocumentEither, a as recupereElementDansDocumentOuLeve, y, p as propEither } from "./utils.js";
import { i as initialiseBoutonActions } from "./scripts-page-panier-adresses.js";
import { i as initialiseBoutonSoumissionAdresses } from "./scripts-page-panier-adresses.js";
import { i as initialiseElementsCodePromo } from "./scripts-page-panier-code-promo.js";
import { p as pipe } from "./pipe.XPB0wEfw.js";
import { l } from "./index-0eef19ec.Bvb4qYFq.js";
import { l } from "./index-0eef19ec.DoJSf22Z.js";
import { M as Maybe, E as Either } from "./Either.wHNxn7Os.js";
import "./exports.B84S-6H1.js";
import "./erreurs3.js";
@ -27,12 +27,14 @@ import "./cart-coupons.js";
import "./couts-livraison.js";
import "./animations.js";
import "./cart-update-customer.js";
import "./orders2.js";
import "./orders3.js";
import "./MaybeAsync.AE1jnxuc.js";
import "./erreurs.js";
import "./codes-promo.js";
import "./cart-apply-coupon.js";
import "./cart-remove-coupon.js";
import "./belt_Option-91f3b350.Bf2JA1bN.js";
import "./belt_Option-91f3b350.cBye8bLJ.js";
const ETATS_PAGE = _etats;
const ENTREES_PANIER_EITHER = recupereElementsDocumentEither(
SELECTEUR_ENTREES_PANIER
@ -40,16 +42,11 @@ const ENTREES_PANIER_EITHER = recupereElementsDocumentEither(
const CONTENEUR_PANIER = recupereElementDansDocumentOuLeve(SELECTEUR_CONTENEUR_PANIER);
const SOUS_TOTAL_PRODUITS = recupereElementDansDocumentOuLeve(SELECTEUR_SOUS_TOTAL_PRODUITS);
const SOUS_TOTAL_REDUCTION = recupereElementDansDocumentOuLeve(SELECTEUR_TOTAL_REDUCTION_VALEUR);
recupereElementDansDocumentOuLeve(SELECTEUR_INSTRUCTIONS_CLIENT);
const TOTAL_PANIER = recupereElementDansDocumentOuLeve(SELECTEUR_TOTAL_PANIER);
const BOUTON_SEPARATION_ADRESSES = recupereElementDansDocumentOuLeve(
SELECTEUR_BOUTON_SEPARATION_ADRESSES
);
recupereElementDansDocumentOuLeve(SELECTEUR_FORMULAIRE_PANIER);
const FORMULAIRE_FACTURATION = recupereElementDansDocumentOuLeve(SELECTEUR_FORMULAIRE_FACTURATION);
recupereElementDansDocumentOuLeve(
SELECTEUR_BOUTON_ACTIONS_FORMULAIRE
);
const recupereElementDansEntreePanierOuLeve = (entree) => (selecteur) => pipe(recupereElementAvecSelecteur(entree)(selecteur), recupereElementOuLeve);
const desactiveBoutonsEntreesPanier = (entrees) => entrees.forEach((entree) => {
const recupereElementDansEntree = recupereElementDansEntreePanierOuLeve(entree);
@ -273,7 +270,7 @@ document.addEventListener("DOMContentLoaded", () => {
initialiseMajConteneurPanier();
initialiseMajContenuPanier();
initialiseMajFormulairesPanier();
initialiseBoutonActions();
initialiseBoutonSoumissionAdresses();
initialiseElementsCodePromo();
});
//# sourceMappingURL=scripts-page-panier.js.map

File diff suppressed because one or more lines are too long

View file

@ -1,7 +1,7 @@
import { z } from "./index.CeK6pfoJ.js";
import { f as ROUTE_API_AJOUTE_ARTICLE_PANIER, E as ENTETE_WC_NONCE } from "./api.js";
import { M as SELECTEUR_BOUTON_AJOUT_PANIER, N as SELECTEUR_SELECTEUR_QUANTITE, O as SELECTEUR_LIENS_ONGLETS, P as SELECTEUR_SECTIONS_CONTENUS, Q as SELECTEUR_PRIX_PRODUIT, R as SELECTEUR_CONTENEUR_FLECHES_DEFILEMENT, T as SELECTEUR_FLECHE_DEFILEMENT_GAUCHE, U as SELECTEUR_FLECHE_DEFILEMENT_DROITE, V as SELECTEUR_PHOTOS_PRODUIT, W as SELECTEUR_IMAGE_COLONNE_GAUCHE, X as SELECTEUR_IMAGES_COLONNE_DROITE, Y as ATTRIBUT_INDEX_IMAGE_ACTIVE, Z as ATTRIBUT_ARIA_SELECTED, k as ATTRIBUT_HIDDEN, C as ATTRIBUT_DESACTIVE, _ as ATTRIBUT_PRIX } from "./dom.js";
import { r as recupereElementOuLeve, d as recupereElementsOuLeve, R as Ra } from "./dom2.js";
import { g as ROUTE_API_AJOUTE_ARTICLE_PANIER, E as ENTETE_WC_NONCE } from "./api.js";
import { M as SELECTEUR_BOUTON_AJOUT_PANIER, N as SELECTEUR_SELECTEUR_QUANTITE, O as SELECTEUR_LIENS_ONGLETS, P as SELECTEUR_SECTIONS_CONTENUS, Q as SELECTEUR_PRIX_PRODUIT, R as SELECTEUR_CONTENEUR_FLECHES_DEFILEMENT, T as SELECTEUR_FLECHE_DEFILEMENT_GAUCHE, U as SELECTEUR_FLECHE_DEFILEMENT_DROITE, V as SELECTEUR_PHOTOS_PRODUIT, W as SELECTEUR_IMAGE_COLONNE_GAUCHE, X as SELECTEUR_IMAGES_COLONNE_DROITE, Y as ATTRIBUT_INDEX_IMAGE_ACTIVE, Z as ATTRIBUT_ARIA_SELECTED, k as ATTRIBUT_HIDDEN, y as ATTRIBUT_DESACTIVE, _ as ATTRIBUT_PRIX } from "./dom.js";
import { r as recupereElementOuLeve, f as recupereElementsOuLeve, R as Ra } from "./dom2.js";
import { l as leveServerError, r as reporteErreur } from "./erreurs2.js";
import { b as estHTMLSelectElement, e as estReponse500, a as estError } from "./gardes.js";
import { e as emetMessageMajBoutonPanier } from "./messages.js";
@ -11,7 +11,7 @@ import { W as WCStoreCartSchema } from "./cart.js";
import { r as recupereElementDocumentEither, a as recupereElementDansDocumentOuLeve, c as recupereElementsDocumentEither, b as recupereElementsDansDocumentOuLeve, y } from "./utils.js";
import { e as eitherParse } from "./validation.js";
import { p as pipe } from "./pipe.XPB0wEfw.js";
import { l } from "./index-0eef19ec.Bvb4qYFq.js";
import { l } from "./index-0eef19ec.DoJSf22Z.js";
import { M as Maybe } from "./Either.wHNxn7Os.js";
import "./exports.B84S-6H1.js";
import "./index.DxUTT09Y.js";
@ -22,7 +22,7 @@ import "./cart2.js";
import "./adresses.js";
import "./cart-coupons.js";
import "./couts-livraison.js";
import "./belt_Option-91f3b350.Bf2JA1bN.js";
import "./belt_Option-91f3b350.cBye8bLJ.js";
const ETATS_PAGE = _etats;
const deplieToutesSections = (ensembleLiensContenus) => {
ensembleLiensContenus.forEach((ensemble) => {

View file

@ -1,4 +1,4 @@
import { j as values, k as fromArray, e as equal, l as get$1, u as unsafeDeleteKey, m as forEachU, n as mapU, o as reduceU, p as append, a as recupereElementsAvecSelecteur, b as recupereElementAvecSelecteur, r as recupereElementOuLeve, d as recupereElementsOuLeve } from "./dom2.js";
import { l as values, m as fromArray, g as equal, n as get$1, u as unsafeDeleteKey, o as forEachU, p as mapU, q as reduceU, t as append, a as recupereElementsAvecSelecteur, b as recupereElementAvecSelecteur, r as recupereElementOuLeve, f as recupereElementsOuLeve } from "./dom2.js";
import { C as CleNonTrouveError } from "./erreurs2.js";
import { p as pipe } from "./pipe.XPB0wEfw.js";
import { M as Maybe } from "./Either.wHNxn7Os.js";

View file

@ -1,26 +1,34 @@
import { D, pipe } from "@mobily/ts-belt";
import { pipe } from "@mobily/ts-belt";
import { EitherAsync, Maybe } from "purify-ts";
import { match } from "ts-pattern";
import { ValiError } from "valibot";
import type { WCStoreCart } from "./lib/types/api/cart";
import type { WCStoreCart, WCStoreShippingRateShippingRate } from "./lib/types/api/cart";
import type { WCStoreCartUpdateCustomerArgs } from "./lib/types/api/cart-update-customer";
import type { WCV3Order, WCV3OrdersArgs } from "./lib/types/api/v3/orders";
import type { ReponseSimplifiee } from "./lib/types/reseau";
import { ROUTE_API_MAJ_CLIENT } from "./constantes/api";
import { ROUTE_API_MAJ_CLIENT, ROUTE_API_NOUVELLE_COMMANDES } from "./constantes/api";
import {
ATTRIBUT_CHARGEMENT,
ATTRIBUT_DESACTIVE,
SELECTEUR_BOUTON_ACTIONS_FORMULAIRE,
SELECTEUR_ENTREES_PANIER,
SELECTEUR_FORMULAIRE_PANIER,
SELECTEUR_INSTRUCTIONS_CLIENT,
SELECTEUR_SOUS_TOTAL_LIVRAISON_COUT,
SELECTEUR_SOUS_TOTAL_LIVRAISON_PRESTATAIRE,
} from "./constantes/dom";
import { lanceAnimationCycleTexte } from "./lib/animations";
import { ServerError } from "./lib/erreurs";
import { eitherJsonParse, eitherSessionStorageGet } from "./lib/dom";
import { leveErreur, leveServerError, ServerError } from "./lib/erreurs";
import { estReponse500 } from "./lib/gardes";
import { postBackend } from "./lib/reseau";
import { WCStoreCartSchema } from "./lib/schemas/api/cart";
import { WCStoreCartUpdateCustomerArgsSchema } from "./lib/schemas/api/cart-update-customer";
import { recupereElementDansDocumentOuLeve } from "./lib/utils";
import { WCStoreShippingRateShippingRateSchema } from "./lib/schemas/api/couts-livraison";
import { WCV3OrdersArgsSchema, WCV3OrderSchema } from "./lib/schemas/api/v3/orders";
import { recupereElementDansDocumentOuLeve, recupereElementsDocumentEither } from "./lib/utils";
import { eitherParse } from "./lib/validation";
/** États utiles pour les scripts de la page. */
@ -35,14 +43,16 @@ const ETATS_PAGE: EtatsPage = _etats;
const ELEMENTS = {
BOUTON_ACTIONS_FORMULAIRE: recupereElementDansDocumentOuLeve<HTMLButtonElement>(SELECTEUR_BOUTON_ACTIONS_FORMULAIRE),
ENTREES_PANIER_EITHER: recupereElementsDocumentEither<HTMLElement>(SELECTEUR_ENTREES_PANIER),
FORMULAIRE_PANIER: recupereElementDansDocumentOuLeve<HTMLFormElement>(SELECTEUR_FORMULAIRE_PANIER),
SOUS_TOTAL_LIVRAISON_COUT: recupereElementDansDocumentOuLeve<HTMLElement>(SELECTEUR_SOUS_TOTAL_LIVRAISON_COUT),
SOUS_TOTAL_LIVRAISON_PRESTATAIRE: recupereElementDansDocumentOuLeve<HTMLSpanElement>(
INSTRUCTIONS_CLIENT: recupereElementDansDocumentOuLeve<HTMLTextAreaElement>(SELECTEUR_INSTRUCTIONS_CLIENT),
TOTAL_LIVRAISON_COUT: recupereElementDansDocumentOuLeve<HTMLElement>(SELECTEUR_SOUS_TOTAL_LIVRAISON_COUT),
TOTAL_LIVRAISON_PRESTATAIRE: recupereElementDansDocumentOuLeve<HTMLSpanElement>(
SELECTEUR_SOUS_TOTAL_LIVRAISON_PRESTATAIRE,
),
};
export const initialiseBoutonActions = (): void => {
export const initialiseBoutonSoumissionAdresses = (): void => {
// Déclenche la requête pour la soumission des adresses
ELEMENTS.BOUTON_ACTIONS_FORMULAIRE.addEventListener("click", evenement => {
Maybe
@ -68,16 +78,12 @@ export const initialiseBoutonActions = (): void => {
});
animation.callback();
animation.interval = setInterval(animation.callback, 500);
})
.ifJust(() => {
// Récupère les données du Formulaire
// @ts-expect-error -- Problème de typage de la librairie DOM
const donneesFormulaire: Record<string, string> = pipe(
new FormData(ELEMENTS.FORMULAIRE_PANIER),
formData => formData.entries(),
entrees => Array.from(entrees),
tuple => D.fromPairs(tuple),
);
const donneesFormulaire = Object.fromEntries(new FormData(ELEMENTS.FORMULAIRE_PANIER)) as Record<
string,
string
>;
// Transforme les données brutes en arguments de requête auprès du backend
const argumentsFormulaire: WCStoreCartUpdateCustomerArgs = {
@ -136,15 +142,16 @@ export const initialiseBoutonActions = (): void => {
// Vérifie le Schéma de la réponse du backend
.chain((corsReponse: unknown) => EitherAsync.liftEither(eitherParse(corsReponse, WCStoreCartSchema)))
.ifRight((panier: WCStoreCart) => {
console.debug(panier);
console.debug(panier.shipping_rates);
const sousTotalLivraison = panier.totals.total_shipping === "0"
? "Free"
: `${String(panier.totals.total_shipping)}`;
const prestataireLivraison = panier.shipping_rates[0]?.shipping_rates[0]?.name ?? "";
// Met à jour les informations de Livraison affichés à l'Utilisateur
ELEMENTS.SOUS_TOTAL_LIVRAISON_COUT.textContent = sousTotalLivraison;
ELEMENTS.SOUS_TOTAL_LIVRAISON_PRESTATAIRE.textContent = prestataireLivraison;
ELEMENTS.TOTAL_LIVRAISON_COUT.textContent = sousTotalLivraison;
ELEMENTS.TOTAL_LIVRAISON_PRESTATAIRE.textContent = prestataireLivraison;
// Sauvegarde la Méthode de Livraison dans le Stockage de Session
sessionStorage.setItem(
@ -155,7 +162,7 @@ export const initialiseBoutonActions = (): void => {
ELEMENTS.BOUTON_ACTIONS_FORMULAIRE.textContent = "Check-out";
// Active le Bouton pour la création de la Commande
// initialiseBoutonCreationCommande();
initialiseBoutonCreationCommande();
})
.ifLeft(erreur => match(erreur).with)
.finally(() => {
@ -167,3 +174,142 @@ export const initialiseBoutonActions = (): void => {
});
});
};
export const initialiseBoutonCreationCommande = (): void => {
// Permet de supprimer tout Écouteur d'Évènement assigné au Bouton
ELEMENTS.BOUTON_ACTIONS_FORMULAIRE.outerHTML = ELEMENTS.BOUTON_ACTIONS_FORMULAIRE.outerHTML;
// Réassigne le Bouton
ELEMENTS.BOUTON_ACTIONS_FORMULAIRE = recupereElementDansDocumentOuLeve<HTMLButtonElement>(
SELECTEUR_BOUTON_ACTIONS_FORMULAIRE,
);
// Créé la Commande au clic sur le Bouton
ELEMENTS.BOUTON_ACTIONS_FORMULAIRE.addEventListener("click", (evenement: Event) => {
Maybe
// Ne fais rien si le Formulaire n'est pas valide
.fromFalsy(ELEMENTS.FORMULAIRE_PANIER.checkValidity())
// Active l'état de chargement
.ifJust(() => {
evenement.preventDefault();
//
// Désactive le Bouton pour empêcher des requêtes concurrentes
ELEMENTS.BOUTON_ACTIONS_FORMULAIRE.setAttribute(ATTRIBUT_DESACTIVE, "");
ELEMENTS.BOUTON_ACTIONS_FORMULAIRE.setAttribute(ATTRIBUT_CHARGEMENT, "");
// Lance un cycle d'animation sur le texte de chargement
const animation = lanceAnimationCycleTexte({
attribut: ATTRIBUT_CHARGEMENT,
element: ELEMENTS.BOUTON_ACTIONS_FORMULAIRE,
etapes: [
"Loading",
"Loading.",
"Loading..",
"Loading...",
],
});
animation.callback();
animation.interval = setInterval(animation.callback, 500);
// Récupère les données du Formulaire sous forme d'Objet
const donneesFormulaire = Object.fromEntries(new FormData(ELEMENTS.FORMULAIRE_PANIER)) as Record<
string,
string
>;
const methodeLivraison: WCStoreShippingRateShippingRate = eitherSessionStorageGet("shipping_rates")
// Récupère la méthode de livraison depuis le stockage de session sous forme d'objet
.chain(eitherJsonParse)
// Vérifie la forme de l'objet récupéré
.chain((json: JSONValue) =>
eitherParse<typeof WCStoreShippingRateShippingRateSchema>(
json,
WCStoreShippingRateShippingRateSchema,
)
)
.ifLeft(e => {
if (e instanceof ValiError) console.error(e.issues);
console.error("methodeLivraison", e);
ELEMENTS.BOUTON_ACTIONS_FORMULAIRE.textContent = "Check-out";
leveErreur(e);
})
.unsafeCoerce();
const articlesPanier = ELEMENTS.ENTREES_PANIER_EITHER
.orDefault([])
.map((entree: HTMLElement) => ({
product_id: Number(entree.getAttribute("data-id-produit")),
quantity: Number(entree.getAttribute("data-quantite")),
...(entree.getAttribute("data-id-variation") && {
variation_id: Number(entree.getAttribute("data-id-variation")),
}),
}));
const argumentsFormulaire: WCV3OrdersArgs = {
billing: {
address_1: donneesFormulaire["facturation-adresse"] ?? donneesFormulaire["livraison-adresse"] ?? "",
address_2: "",
city: donneesFormulaire["facturation-ville"] ?? donneesFormulaire["livraison-ville"] ?? "",
company: "",
country: "FR",
email: donneesFormulaire["facturation-email"] ?? donneesFormulaire["livraison-email"] ?? "",
first_name: donneesFormulaire["facturation-prenom"] ?? donneesFormulaire["livraison-prenom"] ?? "",
last_name: donneesFormulaire["facturation-nom"] ?? donneesFormulaire["livraison-nom"] ?? "",
phone: donneesFormulaire["facturation-telephone"] ?? donneesFormulaire["livraison-telephone"] ?? "",
postcode: donneesFormulaire["facturation-code-postal"] ?? donneesFormulaire["livraison-code-postal"] ?? "",
state: donneesFormulaire["facturation-region-etat"] ?? donneesFormulaire["livraison-region-etat"] ?? "",
},
currency: methodeLivraison.currency_code,
customer_note: ELEMENTS.INSTRUCTIONS_CLIENT.value,
line_items: articlesPanier,
shipping: {
address_1: donneesFormulaire["livraison-adresse"] ?? "",
address_2: "",
city: donneesFormulaire["livraison-ville"] ?? "",
company: "",
country: "FR",
first_name: donneesFormulaire["livraison-prenom"] ?? "",
last_name: donneesFormulaire["livraison-nom"] ?? "",
phone: donneesFormulaire["livraison-telephone"] ?? "",
postcode: donneesFormulaire["livraison-code-postal"] ?? "",
state: donneesFormulaire["livraison-region-etat"] ?? "",
},
shipping_lines: [
{
method_id: methodeLivraison.method_id,
method_title: methodeLivraison.name,
total: methodeLivraison.price,
},
],
};
// Vérifie que la forme de l'objet des arguments est correcte
eitherParse<typeof WCV3OrdersArgsSchema>(argumentsFormulaire, WCV3OrdersArgsSchema)
.map(async (args: WCV3OrdersArgs) => {
// Réalise la requête
await postBackend({
authString: ETATS_PAGE.authString,
corps: JSON.stringify(args),
nonce: ETATS_PAGE.nonce,
route: ROUTE_API_NOUVELLE_COMMANDES,
}).then(async (reponse: Response) => {
if (estReponse500(reponse)) leveServerError("500 Server Error");
pipe(
// Récupère la Réponse
await reponse.json(),
(corpsReponse: unknown) =>
eitherParse<typeof WCV3OrderSchema>(corpsReponse, WCV3OrderSchema)
.ifRight((reponse: WCV3Order) => {
const url = new URL(`https://${window.location.host}/checkout`);
url.searchParams.append("order_key", reponse.order_key);
url.searchParams.append("order_id", String(reponse.id));
location.assign(url);
})
.ifLeft(e => console.error(e.issues)),
);
});
})
.ifLeft(a => console.error(a.issues));
});
});
};

View file

@ -3,23 +3,17 @@ import { Either, Maybe } from "purify-ts";
import { parse, ValiError } from "valibot";
import type { MessageMajContenuPanierSchema } from "./lib/schemas/messages.ts";
import type { WCStoreCart, WCStoreCartItem, WCStoreShippingRateShippingRate } from "./lib/types/api/cart";
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 { WCV3Order, WCV3OrdersArgs } from "./lib/types/api/v3/orders.ts";
import type { MessageMajBoutonPanierDonnees, MessageMajContenuPanierDonnees } from "./lib/types/messages";
import {
ROUTE_API_MAJ_ARTICLE_PANIER,
ROUTE_API_NOUVELLE_COMMANDES,
ROUTE_API_RETIRE_ARTICLE_PANIER,
} from "./constantes/api.ts";
import { ROUTE_API_MAJ_ARTICLE_PANIER, ROUTE_API_RETIRE_ARTICLE_PANIER } from "./constantes/api.ts";
import {
ATTRIBUT_CLE_PANIER,
ATTRIBUT_CONTIENT_ARTICLES,
ATTRIBUT_DESACTIVE,
ATTRIBUT_HIDDEN,
SELECTEUR_BOUTON_ACTIONS_FORMULAIRE,
SELECTEUR_BOUTON_ADDITION_QUANTITE,
SELECTEUR_BOUTON_SEPARATION_ADRESSES,
SELECTEUR_BOUTON_SOUSTRACTION_QUANTITE,
@ -28,22 +22,14 @@ import {
SELECTEUR_CONTENEUR_PANIER,
SELECTEUR_ENTREES_PANIER,
SELECTEUR_FORMULAIRE_FACTURATION,
SELECTEUR_FORMULAIRE_PANIER,
SELECTEUR_INSTRUCTIONS_CLIENT,
SELECTEUR_PRIX_LIGNE_PANIER,
SELECTEUR_SOUS_TOTAL_PRODUITS,
SELECTEUR_TOTAL_PANIER,
SELECTEUR_TOTAL_REDUCTION_VALEUR,
} from "./constantes/dom.ts";
import { NOM_CANAL_BOUTON_PANIER, NOM_CANAL_CONTENU_PANIER } from "./constantes/messages.ts";
import {
eitherJsonParse,
eitherSessionStorageGet,
recupereElementAvecSelecteur,
recupereElementOuLeve,
recupereElementsAvecSelecteur,
} from "./lib/dom.ts";
import { type CleNonTrouveError, leveErreur, leveServerError, reporteErreur } from "./lib/erreurs.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,
@ -55,11 +41,8 @@ import { postBackend, traiteReponseBackendWCSelonCodesHTTP } from "./lib/reseau.
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 { WCStoreShippingRateShippingRateSchema } from "./lib/schemas/api/couts-livraison.ts";
import { WCV3OrdersArgsSchema, WCV3OrderSchema } from "./lib/schemas/api/v3/orders.ts";
import { propEither, recupereElementDansDocumentOuLeve, recupereElementsDocumentEither } from "./lib/utils.ts";
import { eitherParse } from "./lib/validation.ts";
import { initialiseBoutonActions } from "./scripts-page-panier-adresses.ts";
import { initialiseBoutonSoumissionAdresses } from "./scripts-page-panier-adresses.ts";
import { initialiseElementsCodePromo } from "./scripts-page-panier-code-promo.ts";
type ElementsEntreePanier = {
@ -87,16 +70,11 @@ const ENTREES_PANIER_EITHER: Either<SyntaxError, Array<HTMLElement>> = recupereE
const CONTENEUR_PANIER: HTMLElement = recupereElementDansDocumentOuLeve(SELECTEUR_CONTENEUR_PANIER);
const SOUS_TOTAL_PRODUITS: HTMLElement = recupereElementDansDocumentOuLeve(SELECTEUR_SOUS_TOTAL_PRODUITS);
const SOUS_TOTAL_REDUCTION: HTMLSpanElement = recupereElementDansDocumentOuLeve(SELECTEUR_TOTAL_REDUCTION_VALEUR);
const INSTRUCTIONS_CLIENT: HTMLTextAreaElement = recupereElementDansDocumentOuLeve(SELECTEUR_INSTRUCTIONS_CLIENT);
const TOTAL_PANIER: HTMLParagraphElement = recupereElementDansDocumentOuLeve(SELECTEUR_TOTAL_PANIER);
const BOUTON_SEPARATION_ADRESSES: HTMLInputElement = recupereElementDansDocumentOuLeve(
SELECTEUR_BOUTON_SEPARATION_ADRESSES,
);
const FORMULAIRE_PANIER: HTMLFormElement = recupereElementDansDocumentOuLeve(SELECTEUR_FORMULAIRE_PANIER);
const FORMULAIRE_FACTURATION: HTMLDivElement = recupereElementDansDocumentOuLeve(SELECTEUR_FORMULAIRE_FACTURATION);
let BOUTON_ACTIONS_FORMULAIRE: HTMLButtonElement = recupereElementDansDocumentOuLeve(
SELECTEUR_BOUTON_ACTIONS_FORMULAIRE,
);
/**
* Fonction utilitaire pour récupérer un Élément dans une ligne (entrée) du Panier, en levant une
@ -424,128 +402,11 @@ const initialiseMajFormulairesPanier = (): void => {
});
};
const initialiseBoutonCreationCommande = (): void => {
// Permet de supprimer tout Écouteur d'Évènement assigné au Bouton
BOUTON_ACTIONS_FORMULAIRE.outerHTML = BOUTON_ACTIONS_FORMULAIRE.outerHTML;
// Réassigne le Bouton
BOUTON_ACTIONS_FORMULAIRE = recupereElementDansDocumentOuLeve<HTMLButtonElement>(SELECTEUR_BOUTON_ACTIONS_FORMULAIRE);
// Créé la Commande au clic sur le Bouton
BOUTON_ACTIONS_FORMULAIRE.addEventListener("click", (evenement: Event) => {
Maybe
// Ne fais rien si le Formulaire n'est pas valide
.fromFalsy(FORMULAIRE_PANIER.checkValidity())
// Active l'état de chargement
.ifJust(() => {
evenement.preventDefault();
BOUTON_ACTIONS_FORMULAIRE.textContent = "Submitting...";
})
.ifJust(() => {
// Récupère les données du Formulaire sous forme d'Objet
const donneesFormulaire = Object.fromEntries(new FormData(FORMULAIRE_PANIER)) as Record<string, string>;
const methodeLivraison: WCStoreShippingRateShippingRate = eitherSessionStorageGet("shipping_rates")
// Récupère la méthode de livraison depuis le stockage de session sous forme d'objet
.chain(eitherJsonParse)
// Vérifie la forme de l'objet récupéré
.chain((json: JSONValue) =>
eitherParse<typeof WCStoreShippingRateShippingRateSchema>(
json,
WCStoreShippingRateShippingRateSchema,
)
)
.ifLeft(e => {
if (e instanceof ValiError) console.error(e.issues);
console.error("methodeLivraison", e);
BOUTON_ACTIONS_FORMULAIRE.textContent = "Check-out";
leveErreur(e);
})
.unsafeCoerce();
const articlesPanier = ENTREES_PANIER_EITHER
.orDefault([])
.map((entree: HTMLElement) => ({
product_id: Number(entree.getAttribute("data-id-produit")),
quantity: Number(entree.getAttribute("data-quantite")),
...(entree.getAttribute("data-id-variation") && {
variation_id: Number(entree.getAttribute("data-id-variation")),
}),
}));
const argumentsFormulaire: WCV3OrdersArgs = {
billing: {
address_1: donneesFormulaire["facturation-adresse"] ?? donneesFormulaire["livraison-adresse"] ?? "",
address_2: "",
city: donneesFormulaire["facturation-ville"] ?? donneesFormulaire["livraison-ville"] ?? "",
company: "",
country: "FR",
email: donneesFormulaire["facturation-email"] ?? donneesFormulaire["livraison-email"] ?? "",
first_name: donneesFormulaire["facturation-prenom"] ?? donneesFormulaire["livraison-prenom"] ?? "",
last_name: donneesFormulaire["facturation-nom"] ?? donneesFormulaire["livraison-nom"] ?? "",
phone: donneesFormulaire["facturation-telephone"] ?? donneesFormulaire["livraison-telephone"] ?? "",
postcode: donneesFormulaire["facturation-code-postal"] ?? donneesFormulaire["livraison-code-postal"] ?? "",
state: donneesFormulaire["facturation-region-etat"] ?? donneesFormulaire["livraison-region-etat"] ?? "",
},
currency: methodeLivraison.currency_code,
customer_note: INSTRUCTIONS_CLIENT.value,
line_items: articlesPanier,
shipping: {
address_1: donneesFormulaire["livraison-adresse"] ?? "",
address_2: "",
city: donneesFormulaire["livraison-ville"] ?? "",
company: "",
country: "FR",
first_name: donneesFormulaire["livraison-prenom"] ?? "",
last_name: donneesFormulaire["livraison-nom"] ?? "",
phone: donneesFormulaire["livraison-telephone"] ?? "",
postcode: donneesFormulaire["livraison-code-postal"] ?? "",
state: donneesFormulaire["livraison-region-etat"] ?? "",
},
shipping_lines: [
{
method_id: methodeLivraison.method_id,
method_title: methodeLivraison.name,
total: methodeLivraison.price,
},
],
};
// Vérifie que la forme de l'objet des arguments est correcte
eitherParse<typeof WCV3OrdersArgsSchema>(argumentsFormulaire, WCV3OrdersArgsSchema)
.map(async (args: WCV3OrdersArgs) => {
// Réalise la requête
await postBackend({
authString: ETATS_PAGE.authString,
corps: JSON.stringify(args),
nonce: ETATS_PAGE.nonce,
route: ROUTE_API_NOUVELLE_COMMANDES,
}).then(async (reponse: Response) => {
if (estReponse500(reponse)) leveServerError("500 Server Error");
pipe(
// Récupère la Réponse
await reponse.json(),
(corpsReponse: unknown) =>
eitherParse<typeof WCV3OrderSchema>(corpsReponse, WCV3OrderSchema)
.ifRight((reponse: WCV3Order) => {
const url = new URL(`https://${window.location.host}/checkout`);
url.searchParams.append("order_key", reponse.order_key);
url.searchParams.append("order_id", String(reponse.id));
location.assign(url);
})
.ifLeft(e => console.error(e.issues)),
);
});
})
.ifLeft(a => console.error(a.issues));
});
});
};
document.addEventListener("DOMContentLoaded", (): void => {
initialiseMajEntreesPanier();
initialiseMajConteneurPanier();
initialiseMajContenuPanier();
initialiseMajFormulairesPanier();
initialiseBoutonActions();
initialiseBoutonSoumissionAdresses();
initialiseElementsCodePromo();
});

View file

@ -80,7 +80,7 @@
</nav>
{# Bouton « Panier » avec l'indicateur de quantité de Produits #}
<section class="compte-panier">
<section class="compte-panier" hidden>
<a
class="lien-bouton"
data-contient-articles="{{ articles_presents }}"

View file

@ -28,8 +28,8 @@
</div>
<form
id="formulaire-commande"
class="panneau__formulaires"
id="formulaire-commande"
method="post"
>
{# Formulaires pour la livraison et facturation #}
@ -323,7 +323,7 @@
form="formulaire-commande"
type="submit"
>
Submit the address
Submit the addresses
</button>
</footer>
</section>

View file

@ -117,6 +117,7 @@
<section class="actions-produit">
<button
hidden
class="bouton-case-pleine"
{{ variations_produit|length > 1 ? "disabled" : "" }}
id="bouton-ajout-panier"