2024-11-20
This commit is contained in:
parent
85c44279a3
commit
730299812d
64 changed files with 912 additions and 693 deletions
|
|
@ -1,38 +1,30 @@
|
|||
@charset "UTF-8";
|
||||
|
||||
#panneau-panier {
|
||||
border-right: 1px solid var(--couleur-noir);
|
||||
}
|
||||
|
||||
#panneau-panier > div {
|
||||
place-content: center;
|
||||
}
|
||||
|
||||
#panneau-panier .panneau__grille-produits {
|
||||
display: flex;
|
||||
flex-flow: column nowrap;
|
||||
}
|
||||
|
||||
#panneau-panier .panneau__grille-produits__produit {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr;
|
||||
grid-template-rows: 1fr;
|
||||
border-bottom: 1px solid var(--couleur-noir);
|
||||
}
|
||||
|
||||
#panneau-panier .panneau__grille-produits__produit__illustratif {
|
||||
border-right: 1px solid var(--couleur-noir);
|
||||
}
|
||||
|
||||
#panneau-panier .panneau__grille-produits__produit__illustratif picture {
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
#panneau-panier .panneau__grille-produits__produit__illustratif img {
|
||||
aspect-ratio: 1;
|
||||
height: auto;
|
||||
}
|
||||
|
||||
#panneau-panier .panneau__grille-produits .detail-produit {
|
||||
display: flex;
|
||||
flex-flow: column nowrap;
|
||||
|
|
@ -42,7 +34,6 @@
|
|||
padding: 0 var(--espace-xl);
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
#panneau-panier .panneau__grille-produits .detail-produit__nom-prix {
|
||||
display: flex;
|
||||
flex-flow: row nowrap;
|
||||
|
|
@ -51,37 +42,29 @@
|
|||
font-size: var(--espace-l);
|
||||
line-height: var(--hauteur-ligne-moitie);
|
||||
}
|
||||
|
||||
#panneau-panier .panneau__grille-produits .detail-produit__nom-prix span {
|
||||
min-width: 4rem;
|
||||
font-weight: 600;
|
||||
font-style: initial;
|
||||
}
|
||||
|
||||
#panneau-panier .panneau__grille-produits .detail-produit__description {
|
||||
margin-bottom: var(--espace-l);
|
||||
text-transform: lowercase;
|
||||
}
|
||||
|
||||
#panneau-panier .panneau__grille-produits .detail-produit__actions {
|
||||
display: grid;
|
||||
grid-template-columns: 0.25fr auto 0.25fr;
|
||||
grid-template-rows: 1fr 1fr;
|
||||
font-weight: 500;
|
||||
font-style: initial;
|
||||
|
||||
/* Bouton d'addition de quantité */
|
||||
|
||||
/*
|
||||
* 1. Cache les flèches d'augmentation/diminution sur Firefox.
|
||||
* 2. Cache les flèches d'augmentation/diminution sur Chrome/Edge/Safari.
|
||||
*/
|
||||
|
||||
/* Bouton de suppression de quantité */
|
||||
|
||||
/* Bouton de suppression du Produit du Panier */
|
||||
}
|
||||
|
||||
#panneau-panier .panneau__grille-produits .detail-produit__actions button:first-of-type {
|
||||
grid-column: 1;
|
||||
min-width: 3rem;
|
||||
|
|
@ -89,8 +72,7 @@
|
|||
border: 1px solid var(--couleur-noir);
|
||||
border-bottom: initial;
|
||||
}
|
||||
|
||||
#panneau-panier .panneau__grille-produits .detail-produit__actions input[type="number"] {
|
||||
#panneau-panier .panneau__grille-produits .detail-produit__actions input[type=number] {
|
||||
grid-column: 2;
|
||||
width: 100%;
|
||||
text-align: center;
|
||||
|
|
@ -98,12 +80,10 @@
|
|||
border: initial;
|
||||
border-top: 1px solid var(--couleur-noir);
|
||||
}
|
||||
|
||||
#panneau-panier .panneau__grille-produits .detail-produit__actions input[type="number"]::-webkit-outer-spin-button, #panneau-panier .panneau__grille-produits .detail-produit__actions input[type="number"]::-webkit-inner-spin-button {
|
||||
#panneau-panier .panneau__grille-produits .detail-produit__actions input[type=number]::-webkit-outer-spin-button, #panneau-panier .panneau__grille-produits .detail-produit__actions input[type=number]::-webkit-inner-spin-button {
|
||||
margin: 0; /* 2 */
|
||||
appearance: none; /* 2 */
|
||||
}
|
||||
|
||||
#panneau-panier .panneau__grille-produits .detail-produit__actions button:nth-of-type(2) {
|
||||
grid-column: 3;
|
||||
min-width: 3rem;
|
||||
|
|
@ -111,7 +91,6 @@
|
|||
border: 1px solid var(--couleur-noir);
|
||||
border-bottom: initial;
|
||||
}
|
||||
|
||||
#panneau-panier .panneau__grille-produits .detail-produit__actions button:last-of-type {
|
||||
grid-column: span 3;
|
||||
grid-row: 2;
|
||||
|
|
@ -119,19 +98,16 @@
|
|||
text-transform: lowercase;
|
||||
border: 1px solid var(--couleur-noir);
|
||||
}
|
||||
|
||||
#panneau-panier .panneau__instructions-code-promo {
|
||||
width: 100%;
|
||||
padding: var(--espace-l) var(--espace-xl);
|
||||
text-align: center;
|
||||
border-bottom: 1px solid var(--couleur-noir);
|
||||
|
||||
/*
|
||||
* 1. Nécessaire pour ne pas qu'un espace vertical non souhaité apparaisse.
|
||||
* 2. Applique une marge entre les instructions et le code promo de notre choix.
|
||||
*/
|
||||
}
|
||||
|
||||
#panneau-panier .panneau__instructions-code-promo__instructions {
|
||||
resize: vertical;
|
||||
display: block; /* 1 */
|
||||
|
|
@ -144,52 +120,52 @@
|
|||
background: initial;
|
||||
border: 1px solid transparent;
|
||||
}
|
||||
|
||||
#panneau-panier .panneau__instructions-code-promo__code-promo {
|
||||
display: flex;
|
||||
flex-flow: row nowrap;
|
||||
flex-flow: row wrap;
|
||||
width: fit-content;
|
||||
place-content: center;
|
||||
margin: auto;
|
||||
/*
|
||||
* 1. Longueur minimale pour le Bouton n'ait pas à changer de taille quel que soit son texte
|
||||
*/
|
||||
}
|
||||
|
||||
#panneau-panier .panneau__instructions-code-promo__code-promo input {
|
||||
width: 20rem;
|
||||
}
|
||||
|
||||
#panneau-panier .panneau__instructions-code-promo__code-promo button {
|
||||
padding: var(--espace-xs) var(--espace-xl);
|
||||
text-transform: lowercase;
|
||||
border: 1px solid var(--couleur-noir);
|
||||
border-left: initial;
|
||||
min-width: 9rem; /* 1 */
|
||||
}
|
||||
#panneau-panier .panneau__instructions-code-promo__code-promo__message {
|
||||
margin-top: var(--espace-m);
|
||||
flex-basis: 100%;
|
||||
}
|
||||
|
||||
#panneau-panier .panneau__sous-totaux {
|
||||
width: min(30rem, 100%);
|
||||
margin: auto;
|
||||
padding: var(--espace-l) var(--espace-xl);
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#panneau-panier .panneau__sous-totaux__ligne {
|
||||
display: flex;
|
||||
flex-flow: row nowrap;
|
||||
justify-content: space-between;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
#panneau-panier .panneau__sous-totaux__ligne strong {
|
||||
text-align: right;
|
||||
text-transform: lowercase;
|
||||
}
|
||||
|
||||
#panneau-panier .panneau__sous-totaux__ligne#sous-total-livraison p:last-of-type {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
#panneau-panier .panneau__sous-totaux__ligne#sous-total-livraison p:last-of-type span {
|
||||
color: grey;
|
||||
}
|
||||
|
||||
#panneau-panier .panneau__sous-totaux__conditions-livraison {
|
||||
margin-top: var(--espace-l);
|
||||
font-size: 0.8rem;
|
||||
|
|
@ -197,7 +173,6 @@
|
|||
color: grey;
|
||||
letter-spacing: var(--espacement-inter-lettres-etendu-s);
|
||||
}
|
||||
|
||||
#panneau-panier .panneau__pied-de-page {
|
||||
align-content: center;
|
||||
padding: var(--espace-l) 0;
|
||||
|
|
@ -209,7 +184,6 @@
|
|||
letter-spacing: 2px;
|
||||
background: var(--couleur-noir);
|
||||
}
|
||||
|
||||
#panneau-panier .panneau__pied-de-page span {
|
||||
margin-left: var(--espace-l);
|
||||
font-style: initial;
|
||||
|
|
@ -221,27 +195,22 @@
|
|||
right: 0;
|
||||
height: fit-content;
|
||||
}
|
||||
|
||||
#panneau-informations-client > * {
|
||||
align-content: center;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#panneau-informations-client .panneau__paypal-express {
|
||||
--hauteur-images-bouton: 18px;
|
||||
--hauteur-bouton: calc(var(--hauteur-images-bouton) * 2);
|
||||
--longueur-bouton: 250px;
|
||||
--espacement-inter-images: var(--espace-xs);
|
||||
|
||||
padding: var(--espace-xl);
|
||||
border-bottom: 1px solid var(--couleur-noir);
|
||||
}
|
||||
|
||||
#panneau-informations-client .panneau__paypal-express p {
|
||||
margin-bottom: var(--espace-s);
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
#panneau-informations-client .panneau__paypal-express button {
|
||||
display: flex;
|
||||
column-gap: var(--espacement-inter-images);
|
||||
|
|
@ -252,20 +221,16 @@
|
|||
margin: auto;
|
||||
background: var(--couleur-noir);
|
||||
}
|
||||
|
||||
#panneau-informations-client .panneau__paypal-express button img {
|
||||
height: var(--hauteur-images-bouton);
|
||||
background: inherit;
|
||||
}
|
||||
|
||||
#panneau-informations-client .panneau__paypal-express button img:first-of-type {
|
||||
margin-top: -1px;
|
||||
}
|
||||
|
||||
#panneau-informations-client .panneau__formulaires {
|
||||
padding: var(--espace-xl) 0;
|
||||
}
|
||||
|
||||
#panneau-informations-client .panneau__formulaires .panneau__formulaires__separation-adresses {
|
||||
position: relative;
|
||||
display: flex;
|
||||
|
|
@ -278,11 +243,9 @@
|
|||
font-size: 0.8rem;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
#panneau-informations-client .panneau__formulaires .panneau__formulaires__separation-adresses label {
|
||||
text-transform: lowercase;
|
||||
}
|
||||
|
||||
#panneau-informations-client .panneau__formulaires .panneau__formulaires__paiement .formulaire__paiement__attente-renseignement-formulaires {
|
||||
align-content: center;
|
||||
width: 100%;
|
||||
|
|
@ -292,20 +255,16 @@
|
|||
color: grey;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#panneau-informations-client .panneau__formulaires .panneau__formulaires__paiement .formulaire__paiement__attente-renseignement-formulaires p + p {
|
||||
margin-top: 1lh;
|
||||
}
|
||||
|
||||
#panneau-informations-client .formulaire {
|
||||
margin: auto;
|
||||
padding: 0 var(--espace-xl);
|
||||
}
|
||||
|
||||
#panneau-informations-client .formulaire + .formulaire {
|
||||
margin-top: var(--espace-xl);
|
||||
}
|
||||
|
||||
#panneau-informations-client .formulaire .formulaire__titre {
|
||||
margin-bottom: var(--espace-m);
|
||||
font-size: 1.25rem;
|
||||
|
|
@ -313,13 +272,11 @@
|
|||
font-style: italic;
|
||||
letter-spacing: 1px;
|
||||
}
|
||||
|
||||
#panneau-informations-client .formulaire .formulaire__champs {
|
||||
width: fit-content;
|
||||
margin: auto;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
#panneau-informations-client .formulaire .formulaire__champs .formulaire__champs__champ {
|
||||
display: flex;
|
||||
flex-flow: row nowrap;
|
||||
|
|
@ -327,25 +284,20 @@
|
|||
place-items: center;
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
#panneau-informations-client .formulaire .formulaire__champs .formulaire__champs__champ + .formulaire__champs__champ {
|
||||
margin-top: var(--espace-l);
|
||||
}
|
||||
|
||||
#panneau-informations-client .formulaire label {
|
||||
width: 7rem;
|
||||
font-weight: 400;
|
||||
text-transform: lowercase;
|
||||
}
|
||||
|
||||
#panneau-informations-client .formulaire label:has(+ :is(input:required, select:required)) {
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
#panneau-informations-client .formulaire input {
|
||||
width: 15rem;
|
||||
}
|
||||
|
||||
#panneau-informations-client .panneau__pied-de-page {
|
||||
align-content: center;
|
||||
padding: var(--espace-l) 0;
|
||||
|
|
@ -357,7 +309,6 @@
|
|||
letter-spacing: 2px;
|
||||
background: var(--couleur-noir);
|
||||
}
|
||||
|
||||
#panneau-informations-client .panneau__pied-de-page button {
|
||||
font: inherit;
|
||||
color: inherit;
|
||||
|
|
@ -371,24 +322,20 @@
|
|||
#page-panier {
|
||||
/* Dimensions */
|
||||
--menu-section-hauteur: var(--menu-categories-produits-hauteur);
|
||||
|
||||
/* Marges */
|
||||
--menu-section-marges-bloc-debut: var(--en-tete-hauteur); /* 1 */
|
||||
|
||||
position: relative;
|
||||
display: flex;
|
||||
flex-flow: row wrap;
|
||||
min-height: calc(100svh - var(--en-tete-hauteur) - var(--pied-de-page-hauteur));
|
||||
margin-top: var(--menu-section-marges-bloc-debut);
|
||||
}
|
||||
|
||||
#page-panier .panneau {
|
||||
flex: 1 1 30rem;
|
||||
min-width: 30rem;
|
||||
border-top: 1px solid var(--couleur-noir);
|
||||
border-bottom: 1px solid var(--couleur-noir);
|
||||
}
|
||||
|
||||
#page-panier .panneau__en-tete {
|
||||
position: sticky;
|
||||
z-index: 2;
|
||||
|
|
@ -401,7 +348,6 @@
|
|||
text-align: center;
|
||||
background: var(--couleur-noir);
|
||||
}
|
||||
|
||||
#page-panier .panneau__en-tete h2 {
|
||||
font-weight: 450;
|
||||
font-style: italic;
|
||||
|
|
@ -410,7 +356,6 @@
|
|||
letter-spacing: 1px;
|
||||
background: var(--couleur-noir);
|
||||
}
|
||||
|
||||
#page-panier .panier-vide {
|
||||
display: none;
|
||||
flex-basis: 100%;
|
||||
|
|
@ -418,21 +363,19 @@
|
|||
min-height: calc(100svh - var(--en-tete-hauteur) - var(--pied-de-page-hauteur));
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#page-panier .panier-vide p {
|
||||
font-size: 1.25rem;
|
||||
}
|
||||
|
||||
#page-panier .panier-vide a {
|
||||
display: inline-block;
|
||||
margin-top: var(--espace-m);
|
||||
font-size: initial;
|
||||
}
|
||||
|
||||
#page-panier[data-contient-articles="false"] .panneau {
|
||||
#page-panier[data-contient-articles=false] .panneau {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#page-panier[data-contient-articles="false"] .panier-vide {
|
||||
#page-panier[data-contient-articles=false] .panier-vide {
|
||||
display: block;
|
||||
}
|
||||
|
||||
/*# sourceMappingURL=page-panier.css.map */
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
{"version":3,"sourceRoot":"","sources":["../../../src/sass/layouts/_panneau-panier.scss","../../../src/sass/layouts/_panneau-informations-client.scss","../../../src/sass/pages/page-panier.scss"],"names":[],"mappings":";AAEA;EACE;;AAEA;EACE;;AAIF;EACE;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAGA;EACE;;AAEA;EACE;;AAGF;EACE;EACA;;AAMN;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAIJ;EACE;EACA;;AAIF;EACE;EACA;EACA;EACA;EACA;AAEA;AASA;AAAA;AAAA;AAAA;AAkBA;AASA;;AAnCA;EACE;EACA;EACA;EACA;EACA;;AAOF;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAKJ;EACE;EACA;EACA;EACA;EACA;;AAIF;EACE;EACA;EACA;EACA;EACA;;AAOR;EACE;EACA;EACA;EACA;AAEA;AAAA;AAAA;AAAA;;AAIA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;EACA;EACA;;AAKN;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAKA;EACE;;AAEA;EACE;;AAMR;EACE;EACA;EACA;EACA;EACA;;AAKJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;;ACtNN;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAIF;EAEE;EACA;EACA;EAGA;EAEA;EACA;;AAEA;EACE;EACA;;AAIF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAGF;EACE;;AAMN;EACE;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAKF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAGE;EACE;;AAOV;EACE;EACA;;AAEA;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;;AAIA;EACE;;AAKN;EACE;EACA;EACA;;AAEA;EACE;;AAIJ;EACE;;AAKJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;;;AC1JN;AAAA;AAAA;AAAA;AAIA;AACE;EACA;AAEA;EACA;EAEA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAGA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;;AAKN;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;EACA;;AAKF;EACE;;AAGF;EACE","file":"page-panier.css"}
|
||||
{"version":3,"sourceRoot":"","sources":["../../../src/sass/layouts/_panneau-panier.scss","../../../src/sass/layouts/_panneau-informations-client.scss","../../../src/sass/pages/page-panier.scss"],"names":[],"mappings":";AAEA;EACE;;AAEA;EACE;;AAIF;EACE;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAGA;EACE;;AAEA;EACE;;AAGF;EACE;EACA;;AAMN;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAIJ;EACE;EACA;;AAIF;EACE;EACA;EACA;EACA;EACA;AAEA;AASA;AAAA;AAAA;AAAA;AAmBA;AASA;;AApCA;EACE;EACA;EACA;EACA;EACA;;AAOF;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EAEE;EACA;;AAKJ;EACE;EACA;EACA;EACA;EACA;;AAIF;EACE;EACA;EACA;EACA;EACA;;AAOR;EACE;EACA;EACA;EACA;AAEA;AAAA;AAAA;AAAA;;AAIA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;AAMA;AAAA;AAAA;;AAJA;EACE;;AAMF;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;;AAKN;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAKA;EACE;;AAEA;EACE;;AAMR;EACE;EACA;EACA;EACA;EACA;;AAKJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;;ACjON;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAIF;EAEE;EACA;EACA;EAGA;EAEA;EACA;;AAEA;EACE;EACA;;AAIF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAGF;EACE;;AAMN;EACE;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAKF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAGE;EACE;;AAOV;EACE;EACA;;AAEA;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;;AAIA;EACE;;AAKN;EACE;EACA;EACA;;AAEA;EACE;;AAIJ;EACE;;AAKJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;;;AC1JN;AAAA;AAAA;AAAA;AAIA;AACE;EACA;AAEA;EACA;EAEA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAGA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;;AAKN;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;EACA;;AAKF;EACE;;AAGF;EACE","file":"page-panier.css"}
|
||||
File diff suppressed because one or more lines are too long
|
|
@ -39,10 +39,10 @@
|
|||
"name": "index",
|
||||
"integrity": "sha512-cxTw0sKKut2H95JwMgiKgEVLyZ0QswK/HydKTapcqcs3w6xHIHNUpYBLdRzEYdeRfHKUsA0kvPNBXBk/QeazjQ=="
|
||||
},
|
||||
"_index.DKC_Jv5v.js": {
|
||||
"file": "index.DKC_Jv5v.js",
|
||||
"_index.DxUTT09Y.js": {
|
||||
"file": "index.DxUTT09Y.js",
|
||||
"name": "index",
|
||||
"integrity": "sha512-FnNBV2ecIkPlV7wsbCaK1Hc8B4+HEgZvdZrMBVdKa7JAnwDm6gH9PpuM7z/KfTM6Ee+bDTJeyJnZbRpjOfvlLA=="
|
||||
"integrity": "sha512-ktQDmsOsv0yimT9VIoz9bZriykTetX5qhLN5BMGkJXvqxj9Z1rKiZ1wbDVj3r6bWs4/S0PGPSJevtJyGx+vcow=="
|
||||
},
|
||||
"_pipe.XPB0wEfw.js": {
|
||||
"file": "pipe.XPB0wEfw.js",
|
||||
|
|
@ -68,7 +68,14 @@
|
|||
"name": "dom",
|
||||
"src": "web/app/themes/haiku-atelier-2024/src/scripts/constantes/dom.ts",
|
||||
"isEntry": true,
|
||||
"integrity": "sha512-xjjWPpOvFbqRaz8tTHQddCsAUitaALWYAqg54uc6zi1ZEMq3m4+DwuL6NtupZJj1yM52vGcALkzUaWIcmh2wqg=="
|
||||
"integrity": "sha512-ldPkBLWjE77dp7raA0LauVQS11/w/N0RpOCtgmJu3PQfwEezQS4iVPnp10lZGduIClmliT7WPpbqrZchRTpITw=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/erreurs.ts": {
|
||||
"file": "erreurs.js",
|
||||
"name": "erreurs",
|
||||
"src": "web/app/themes/haiku-atelier-2024/src/scripts/constantes/erreurs.ts",
|
||||
"isEntry": true,
|
||||
"integrity": "sha512-cXQkAzCU4YB9DhSISYUNfuR3eHjrl1TUQH2zyeCUL6FjuU7iLntlvYKMD1weSH4N9B0J+kd9Kf+aZQ8I7YgmWg=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/messages.ts": {
|
||||
"file": "messages3.js",
|
||||
|
|
@ -114,17 +121,24 @@
|
|||
"_Either.wHNxn7Os.js",
|
||||
"_exports.3IcOsN8u.js"
|
||||
],
|
||||
"integrity": "sha512-RVlTwrCnvAW250x/R9UG3yxyQ0p+fnLIe3HUZN8rIGnWpg0yd3YGpVSClQGPohi2YNPppWS74J3zWlmdRP7qiw=="
|
||||
"integrity": "sha512-nNoNk0nD88HRS8LqyIx5kV9MOZBIbcHO4IaumhTh6T3p34OdBIJtM8QQVngu6X/jPdCbMFDj9uajXKAgMkE8bQ=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/erreurs.ts": {
|
||||
"file": "erreurs.js",
|
||||
"file": "erreurs2.js",
|
||||
"name": "erreurs",
|
||||
"src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/erreurs.ts",
|
||||
"isEntry": true,
|
||||
"imports": [
|
||||
"_exports.3IcOsN8u.js"
|
||||
],
|
||||
"integrity": "sha512-tiEWQ6pmEHs+n04C+vJHPXibpUZ+9ZA5iH4nQzN5jvgK6R058rm+q8dO8Lwem25Jh+cSo8np4/c76yVXI5zl/w=="
|
||||
"integrity": "sha512-Ta/Bb2Do3/sj5Dpq5mLujPDpoZdgCiyvArjHPNRaJ359JvWcL6fczyLPYAJE4VCGGbKHneDhk/e5aHIzxHJscA=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/erreurs/codes-promo.ts": {
|
||||
"file": "codes-promo.js",
|
||||
"name": "codes-promo",
|
||||
"src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/erreurs/codes-promo.ts",
|
||||
"isEntry": true,
|
||||
"integrity": "sha512-mvZ1WtE7fS/BRIPVI1pBdQNkZ+oimmfdowcG0kdixTM/8UW+MrPuC/vMRgO3lWoBiYEPun/19vwaV656LRhijg=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/gardes.ts": {
|
||||
"file": "gardes.js",
|
||||
|
|
@ -151,10 +165,12 @@
|
|||
"src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/messages.ts",
|
||||
"isEntry": true,
|
||||
"imports": [
|
||||
"_index.DKC_Jv5v.js",
|
||||
"_index.DxUTT09Y.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/api/erreurs.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/messages.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/validation.ts",
|
||||
"_Either.wHNxn7Os.js",
|
||||
"_exports.3IcOsN8u.js",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart.ts",
|
||||
|
|
@ -163,7 +179,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-94orRrPxJFN+qWNi1NyL15PG3iKx9mivWneHmduvAzPFzhJOl2UpJFX80rIGGOQKx76DvkrNs0r8Lz0S5E/lXA=="
|
||||
"integrity": "sha512-eNfGzO+xLfiHFnNdNdE+zBcnvpPz/wE6vXX1rKbYVlFuf2gPC9kxCEwQnH+BijivLi/JkqkrtXv+m/92RShOrA=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/nombres.ts": {
|
||||
"file": "nombres.js",
|
||||
|
|
@ -179,14 +195,14 @@
|
|||
"isEntry": true,
|
||||
"imports": [
|
||||
"_index.CeK6pfoJ.js",
|
||||
"_index.DKC_Jv5v.js",
|
||||
"_index.DxUTT09Y.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.3IcOsN8u.js"
|
||||
],
|
||||
"integrity": "sha512-jamYkNXH2680XzDhjyTyaJhA5N6Qbgj9L5NPBpQ94nmQQKIWOnlhB5ECY3ulny2PX4fmgUVWZskYOgkx/DrbjA=="
|
||||
"integrity": "sha512-F8X+ITTTDvOk6ZjYd3qIAYkZlcJ6ZgDpbSCPAJM6Q8kcxuz0OtGVREa+iOntaFU8fiLpPvx7aA4z6u0G0oFjoQ=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/adresses.ts": {
|
||||
"file": "adresses.js",
|
||||
|
|
@ -194,9 +210,9 @@
|
|||
"src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/adresses.ts",
|
||||
"isEntry": true,
|
||||
"imports": [
|
||||
"_index.DKC_Jv5v.js"
|
||||
"_index.DxUTT09Y.js"
|
||||
],
|
||||
"integrity": "sha512-hp7nWc3CrWm2+zbU0mlAqbILcj5jeIp3bNBLiD1ZJCZkQYBttIyEA26+1m5s0smj4zPCYh7cnGoxqFd8/XeLRQ=="
|
||||
"integrity": "sha512-H+aWaFlRjfS2cY3XWyOArYWnFBAV0weV9FMIEvTEFHiEeojtEkK++tJliJLQug2xOYPoMr6BwV3+TuRK+nSSng=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-add-item.ts": {
|
||||
"file": "cart-add-item.js",
|
||||
|
|
@ -204,9 +220,9 @@
|
|||
"src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-add-item.ts",
|
||||
"isEntry": true,
|
||||
"imports": [
|
||||
"_index.DKC_Jv5v.js"
|
||||
"_index.DxUTT09Y.js"
|
||||
],
|
||||
"integrity": "sha512-mbHXCUexMdgzCAGOEVUQaIPaMQiI04HXWCQEx9L541qkkLJVKQGD4TWVRuHmetCyNuOJ4B3etIEHv9M3jqveXA=="
|
||||
"integrity": "sha512-ym6kcAMCCgjH0vatLjbKnTQ2231MGzFV5eNBlxFoDflkKKxPe8xHvnjJbJSTNXFFFTQammafUY3iPqVQ7WdrxA=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-apply-coupon.ts": {
|
||||
"file": "cart-apply-coupon.js",
|
||||
|
|
@ -214,9 +230,9 @@
|
|||
"src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-apply-coupon.ts",
|
||||
"isEntry": true,
|
||||
"imports": [
|
||||
"_index.DKC_Jv5v.js"
|
||||
"_index.DxUTT09Y.js"
|
||||
],
|
||||
"integrity": "sha512-qUrpZo097VcnjC5rGxl7boGS7m8evPkHAnsYn1jHKzKVGBRLu+W5bdjXAGzIdaB7TmUBC+xxbANZx79F/xL+wQ=="
|
||||
"integrity": "sha512-MPKrUdFgPDWEPG0o82PDqPKArhbB6OVTdmeEoSKYjM+PvNsoVM0OeY+pujz5nGkU/daHBd4HriBQqV/dvcW6ww=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-coupons.ts": {
|
||||
"file": "cart-coupons.js",
|
||||
|
|
@ -224,9 +240,9 @@
|
|||
"src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-coupons.ts",
|
||||
"isEntry": true,
|
||||
"imports": [
|
||||
"_index.DKC_Jv5v.js"
|
||||
"_index.DxUTT09Y.js"
|
||||
],
|
||||
"integrity": "sha512-Xgd5HYn6SPOvNb1VVKEjVaSng7kwIQYrDQs288KrtXf4DTOVymIhvXl/o6diMCGsCuPVoh67cK9eFckdCbs/Dg=="
|
||||
"integrity": "sha512-qdooRawTXSQsJWbwGQ5HHFzG39Cw7eFpUDgCqzQqWs8zhVQYvvunO1n4fwXWttekDr7VVChj6IzjUmv4JMdTdA=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-remove-coupon.ts": {
|
||||
"file": "cart-remove-coupon.js",
|
||||
|
|
@ -234,9 +250,9 @@
|
|||
"src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-remove-coupon.ts",
|
||||
"isEntry": true,
|
||||
"imports": [
|
||||
"_index.DKC_Jv5v.js"
|
||||
"_index.DxUTT09Y.js"
|
||||
],
|
||||
"integrity": "sha512-i4ks7+X0CnmjMd2CRT5ytUC4LBvu4lEHKzJkTqdeYnAG7mlFkdjbrifNU/UqvO6ZLA293f2/pNvV8XrXDp7erw=="
|
||||
"integrity": "sha512-fuTTvmIWBTDpR47Wlc4bwacRjTqAa7PZpqHWBz+aAj1zTYnwIQdd/tujRGmDPx8GNiIOaz1w0jyhRyz8YZL82Q=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-remove-item.ts": {
|
||||
"file": "cart-remove-item.js",
|
||||
|
|
@ -244,9 +260,9 @@
|
|||
"src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-remove-item.ts",
|
||||
"isEntry": true,
|
||||
"imports": [
|
||||
"_index.DKC_Jv5v.js"
|
||||
"_index.DxUTT09Y.js"
|
||||
],
|
||||
"integrity": "sha512-97h5QCYr2tffzqwnv+45xT8RViFIYVdtHeT/xdarjjYS6lSF6F8mjwo0o9szKwb1wXry5vvvLfzEzWphl+649w=="
|
||||
"integrity": "sha512-KaWApeBMfdizR8XIwwdVlPigDiuSAkVntzfoVoPx2+L74qnIRlqVzC/h8wmR5iLtJiRHUf8onWKZWTy/YJi0GA=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-update-customer.ts": {
|
||||
"file": "cart-update-customer.js",
|
||||
|
|
@ -254,10 +270,10 @@
|
|||
"src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-update-customer.ts",
|
||||
"isEntry": true,
|
||||
"imports": [
|
||||
"_index.DKC_Jv5v.js",
|
||||
"_index.DxUTT09Y.js",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/adresses.ts"
|
||||
],
|
||||
"integrity": "sha512-6YBAVIuC4+D6f2ro2U4nVUHk3hEIqs2+Z0MtGRzL3/1ZdM+oGqF5WyNYLU96qRAlSohmUzbhoONqpb+WVJVsbA=="
|
||||
"integrity": "sha512-1vsGL4zPWg3ip4cdi+gB+QlHhjCAwn3ETg/rAGJrlDFOoNHLzkaC4Z4iJwVRMzlsISvKAHYuwQxFv1tSF26raA=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-update-item.ts": {
|
||||
"file": "cart-update-item.js",
|
||||
|
|
@ -265,9 +281,9 @@
|
|||
"src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-update-item.ts",
|
||||
"isEntry": true,
|
||||
"imports": [
|
||||
"_index.DKC_Jv5v.js"
|
||||
"_index.DxUTT09Y.js"
|
||||
],
|
||||
"integrity": "sha512-gjO4tVbq4MQ3PJpSDl11Uw9wFXN2dq580DH9Br8fZCJvTT15Liw4bewqcXjOlFMQSeyh2o5DfJTEpeNNFUbWcQ=="
|
||||
"integrity": "sha512-enT7JXW/as+17/IgNE8HTIWumHyycCfOA1A2ViB2BX2+Sb5+yg941ATZCMF00/yIzgy/0po/HPITeEhUcTxCQA=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart.ts": {
|
||||
"file": "cart.js",
|
||||
|
|
@ -275,13 +291,13 @@
|
|||
"src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart.ts",
|
||||
"isEntry": true,
|
||||
"imports": [
|
||||
"_index.DKC_Jv5v.js",
|
||||
"_index.DxUTT09Y.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/cart-coupons.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/couts-livraison.ts"
|
||||
],
|
||||
"integrity": "sha512-Vij49uAaSPn0pnPskrurveRYMvbODXDXfGCeRaW8A0hUJNPtopBdhMslppSpom3UoEOg8iRh4Pr0FUmUB7oThQ=="
|
||||
"integrity": "sha512-nkAa5GpdXm5SEv5taFhiOdunn7bOKm61N1kVyEHzPGM4sa1irsAzExc5RMXEsEjim4ZA7RseBjo6pngFXFxpIg=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/couts-livraison.ts": {
|
||||
"file": "couts-livraison.js",
|
||||
|
|
@ -289,20 +305,20 @@
|
|||
"src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/couts-livraison.ts",
|
||||
"isEntry": true,
|
||||
"imports": [
|
||||
"_index.DKC_Jv5v.js",
|
||||
"_index.DxUTT09Y.js",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/adresses.ts"
|
||||
],
|
||||
"integrity": "sha512-YuWaVfcugmGKrrcrxarYURiOQuOvqG+woBDw79SAa/DkvoV9j8s26xkuHV0lPCSWGmJ+lIhP0r9DeMxVqq6oeQ=="
|
||||
"integrity": "sha512-Wba/eKVlVqEczLMMk3dl0p9KUI7dhNomuSIqltE35s+m9svN/k+dMr49WEyFYlchuQLH6Om19wm0VmnLPvOZmg=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/erreurs.ts": {
|
||||
"file": "erreurs2.js",
|
||||
"file": "erreurs3.js",
|
||||
"name": "erreurs",
|
||||
"src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/erreurs.ts",
|
||||
"isEntry": true,
|
||||
"imports": [
|
||||
"_index.DKC_Jv5v.js"
|
||||
"_index.DxUTT09Y.js"
|
||||
],
|
||||
"integrity": "sha512-kx+Bf9zzHdCwB0vxBE+/KLElyW0soM0ki0d3lT/b40LweGGJD5OyEF1fdc54RqLEvXT2/XDksDRUGdwKdLudrQ=="
|
||||
"integrity": "sha512-/iSqgsgUyBySdgT4/xxOppkIw5kwUV6Ka0auhf2ZeSdqk6QETJm0bj5Ydt3wWdPyncFIlva3ousWwTkw5Sp7Mg=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/products.ts": {
|
||||
"file": "products3.js",
|
||||
|
|
@ -310,10 +326,10 @@
|
|||
"src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/products.ts",
|
||||
"isEntry": true,
|
||||
"imports": [
|
||||
"_index.DKC_Jv5v.js",
|
||||
"_index.DxUTT09Y.js",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/products.ts"
|
||||
],
|
||||
"integrity": "sha512-frGqySW9ausejkcUyAeJZNecXA5vq9/XfvDiYe8ccJb96v2kZdCQaHCdGVbYJPb0wOF/JdVUsNfTTeSu7U8DcA=="
|
||||
"integrity": "sha512-Mr2P09suX7KY2cCzn+cqLdRLDHPDJC/RIsFFlB0VudZZoIE9unlsB3BjSvlzmKrBly5QP3jgnq2+7dKqSHlzMw=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/v3/orders.ts": {
|
||||
"file": "orders2.js",
|
||||
|
|
@ -321,11 +337,11 @@
|
|||
"src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/v3/orders.ts",
|
||||
"isEntry": true,
|
||||
"imports": [
|
||||
"_index.DKC_Jv5v.js",
|
||||
"_index.DxUTT09Y.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-SqTZk6JurX847irpPtuz4+pFmu52sZ5PtytHR63XJ3foElbLgMdyorTU6P8jc0OELmL6qAsSNTpmWufkbJKqAA=="
|
||||
"integrity": "sha512-moB98oUqT6LBlhauPLs5NaX25U/sAMuCRVbfu231Ld/mvdCW4xAd9MUd4l/wrHPckLGSDcU/1jlGPcilj5QmzQ=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/v3/products.ts": {
|
||||
"file": "products.js",
|
||||
|
|
@ -333,10 +349,10 @@
|
|||
"src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/v3/products.ts",
|
||||
"isEntry": true,
|
||||
"imports": [
|
||||
"_index.DKC_Jv5v.js",
|
||||
"_index.DxUTT09Y.js",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/products.ts"
|
||||
],
|
||||
"integrity": "sha512-nDODvHALLqwSzO0AKoZzYVKPg4BGO8VBwJGEMyEgjNO2NBDHrGD85/ptRVgWEZdYHcAHu2mGw10KXkcb+0QEnQ=="
|
||||
"integrity": "sha512-/3pK99mes4gepaV1xY0662S9Wat4PYzOz/0433XYMmGmWzZHUhZ8lEWC2DH8ohCJv09LrvVGOPcFAvlM23KdxQ=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/messages.ts": {
|
||||
"file": "messages2.js",
|
||||
|
|
@ -344,7 +360,7 @@
|
|||
"src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/messages.ts",
|
||||
"isEntry": true,
|
||||
"imports": [
|
||||
"_index.DKC_Jv5v.js",
|
||||
"_index.DxUTT09Y.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",
|
||||
|
|
@ -352,7 +368,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-Z1k+lR05ggnpPfMRz+rkIz/hgZaOSn4QEoMO0gn9PqfulMuAwc+Enbm+4tHey/kPnYVthqLVU9JD45T6WwFkgw=="
|
||||
"integrity": "sha512-DRQfMEltCFFPp1xUw26z4CbypxMn//NWQEsKGc98p9UTSaoSNUy7rDWR7JJYM5mnZvglEu+jEzzrKXCrZvQB2w=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/types/api/v3/orders.ts": {
|
||||
"file": "orders.js",
|
||||
|
|
@ -380,7 +396,7 @@
|
|||
"_Either.wHNxn7Os.js",
|
||||
"_exports.3IcOsN8u.js"
|
||||
],
|
||||
"integrity": "sha512-x3y5f8DNLaNwFU4OIZWHmBHwTKsay8L54ocQdNS+YtIALQETdiLIU3DWBhcflJQagMHjs18d7GHMBAU91t6z+Q=="
|
||||
"integrity": "sha512-lFwvitUqFysRtTgYXkj89gMr6p7ZYAbJcWYdOM8enxrgeI+P5TRMgHa1cGI/odo1eUoLMZAY/ETPefDB6F6jEA=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/validation.ts": {
|
||||
"file": "validation.js",
|
||||
|
|
@ -388,10 +404,10 @@
|
|||
"src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/validation.ts",
|
||||
"isEntry": true,
|
||||
"imports": [
|
||||
"_index.DKC_Jv5v.js",
|
||||
"_index.DxUTT09Y.js",
|
||||
"_Either.wHNxn7Os.js"
|
||||
],
|
||||
"integrity": "sha512-Dhmgzl/XrIuQ1eQdlXuLMdzZpBFlSVPMsGPJV24H4uetPrFJS5ifvqOCuL2vYT50sK8boIg2OSWzRSbDO2l/ZQ=="
|
||||
"integrity": "sha512-U0Sy/QxwPcY4OUTn9k7ece4cny1Ll3yog6ruooDxnpcirIJAhl2GbEanmqCF1blDxuoTtm9rKS6bGpGsIPprEg=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/scripts-bouton-panier.ts": {
|
||||
"file": "scripts-bouton-panier.js",
|
||||
|
|
@ -408,15 +424,17 @@
|
|||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/erreurs.ts",
|
||||
"_exports.3IcOsN8u.js",
|
||||
"_Either.wHNxn7Os.js",
|
||||
"_index.DKC_Jv5v.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/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/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/schemas/api/couts-livraison.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/validation.ts"
|
||||
],
|
||||
"integrity": "sha512-mHc6AtX1ym8HmptAgpbetiNRV1BLrBYZaz5ERTFv38/uFGTgaF6eR3I+51YLVSL84di4HeU/JmhYgUPmzIXRdg=="
|
||||
"integrity": "sha512-owPlbtZQELd8iFvAjd99yep2RtfOCDCUR6rLSY3iqiO4Jroo0EODLGeKKCemJB/yC2TmNio/oPRg4/v4GqKNZA=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/scripts-menu-categories.ts": {
|
||||
"file": "scripts-menu-categories.js",
|
||||
|
|
@ -433,7 +451,7 @@
|
|||
"_pipe.XPB0wEfw.js",
|
||||
"_Either.wHNxn7Os.js"
|
||||
],
|
||||
"integrity": "sha512-j3ILSBME932tOctTi7Zh/O0nNcWVK6CZXnP0cDwVutrUSuIgQZUedocLvyZoqhqEZDE3bDylXvbOdmL97ovovw=="
|
||||
"integrity": "sha512-psMOuhAkU7+jxe9h1Aj21zDO6K3lAhY6syq7TswuJ1a4vHtk81NtFnL6g7u02xM7b+4NZ908PZKhrqu6UlU9/Q=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/scripts-menu-mobile.ts": {
|
||||
"file": "scripts-menu-mobile.js",
|
||||
|
|
@ -449,7 +467,7 @@
|
|||
"_pipe.XPB0wEfw.js",
|
||||
"_Either.wHNxn7Os.js"
|
||||
],
|
||||
"integrity": "sha512-ug1m3ReK/rEWNlcqtQSpt4mUMSkEFt9vqH+TDliSml0CQNHdyFx5k5/+B9gwpBCu7aJi0WLxExOzO1JnnKhb3Q=="
|
||||
"integrity": "sha512-jfXGu7m6fl9WAyW+/q7jIvIzt0BAHzr6/3jdUnmpjl4fk6BBreYq4dCdAYBkdor0SYiojl9CP7K4UAjviu8Fow=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/scripts-page-a-propos.ts": {
|
||||
"file": "scripts-page-a-propos.js",
|
||||
|
|
@ -466,7 +484,7 @@
|
|||
"_exports.3IcOsN8u.js",
|
||||
"_Either.wHNxn7Os.js"
|
||||
],
|
||||
"integrity": "sha512-i8fpg/m7dfAfi1JtF5Dg+JqmW7Me3NkOtlhjVyQnatzYO+KAmbifg/6hLnJmPlKnNoDcpLzWWurmp+LUUayt5w=="
|
||||
"integrity": "sha512-zgCzDeT+sbnhtQa6JjC+5mfYJJFc5jaY7eHYW7aXBkzVxfit6zkxVH+tjLFE5W4agDvvB9x+h/72vW+EWp3uWg=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/scripts-page-accueil.ts": {
|
||||
"file": "scripts-page-accueil.js",
|
||||
|
|
@ -483,7 +501,7 @@
|
|||
"_pipe.XPB0wEfw.js",
|
||||
"_Either.wHNxn7Os.js"
|
||||
],
|
||||
"integrity": "sha512-h+g7IEbO5YmdMbcfG4JK+FISSSVIy0VQJRL8JQXY/kyy76KIYosJOMmWbi+Xf9wIFJmkQdS8/eUIbwmfztYqOA=="
|
||||
"integrity": "sha512-XYeWeT8w4HlKIc9z3CvH16ZZ2lb5kHlxO2e0pSTL5hiyOF5JT21aQMO0OaA1izcpulUIjT+cMorXIK3/hHs2/w=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/scripts-page-boutique.ts": {
|
||||
"file": "scripts-page-boutique.js",
|
||||
|
|
@ -492,7 +510,7 @@
|
|||
"isEntry": true,
|
||||
"imports": [
|
||||
"_index.CeK6pfoJ.js",
|
||||
"_index.DKC_Jv5v.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/dom.ts",
|
||||
|
|
@ -510,7 +528,7 @@
|
|||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/products.ts",
|
||||
"_belt_Option-91f3b350.cBye8bLJ.js"
|
||||
],
|
||||
"integrity": "sha512-uNYyKGhjHeqYncjAyE+T/e7QBoQ/f9UvdSiQDykcwh166q7omicesrkD2sIlLz/N439aSMU26A09bm+GRe6elg=="
|
||||
"integrity": "sha512-tn2cf3wz6jENK1aJWUlAx2ExPnKYCf5zXmDw4DJyshzRgdj0Polb9K7SwYh3Uqf2Ek8rh74MQKX2q7zPFbWA9A=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/scripts-page-panier-code-promo.ts": {
|
||||
"file": "scripts-page-panier-code-promo.js",
|
||||
|
|
@ -519,12 +537,15 @@
|
|||
"isEntry": true,
|
||||
"imports": [
|
||||
"_index.CeK6pfoJ.js",
|
||||
"_index.DKC_Jv5v.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/constantes/erreurs.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/erreurs/codes-promo.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-apply-coupon.ts",
|
||||
|
|
@ -535,13 +556,15 @@
|
|||
"_pipe.XPB0wEfw.js",
|
||||
"_Either.wHNxn7Os.js",
|
||||
"_exports.3IcOsN8u.js",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/messages.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/erreurs.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/messages.ts",
|
||||
"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"
|
||||
],
|
||||
"integrity": "sha512-22TkRIZOEsST92UYKs46BLpB7h9wrAHlaPGzlEtapPuHZRDzN5KDgh/iWTC9Wy16m/4MMTCJ42UNZD3cGIpgOg=="
|
||||
"integrity": "sha512-Dcq5CmQJWGUY0FPDHu4fI5COKoVMxA0I0zUpOpPIS6IQ8HXCvzQjH+18wNzCpbqNB/L0mrILXsSVmLmpeLGEWw=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/scripts-page-panier.ts": {
|
||||
"file": "scripts-page-panier.js",
|
||||
|
|
@ -550,7 +573,7 @@
|
|||
"isEntry": true,
|
||||
"imports": [
|
||||
"_index.CeK6pfoJ.js",
|
||||
"_index.DKC_Jv5v.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/constantes/messages.ts",
|
||||
|
|
@ -572,18 +595,20 @@
|
|||
"_index-0eef19ec.DoJSf22Z.js",
|
||||
"_Either.wHNxn7Os.js",
|
||||
"_exports.3IcOsN8u.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/lib/schemas/messages.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/adresses.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/cart.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-coupons.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/orders.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/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",
|
||||
"_MaybeAsync.AE1jnxuc.js",
|
||||
"_belt_Option-91f3b350.cBye8bLJ.js"
|
||||
],
|
||||
"integrity": "sha512-pjdI16uzECwZBDM0wQrEmMY5cAcToOu2qjDsct0nuz5TqNsP8VqtQ36TqPKJ7ADy+LKVyaajCqpUr4KaErg2Dg=="
|
||||
"integrity": "sha512-nv6WicLF3qhp2tyjzl7Ns5Yyfon9onWi/u5nxsvBRT6oEpdb9h5rXxDx3ydC6OsMR9n/B1wdXsuxxHTmECqX/w=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/scripts-page-produit.ts": {
|
||||
"file": "scripts-page-produit.js",
|
||||
|
|
@ -599,24 +624,24 @@
|
|||
"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/cart.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.DoJSf22Z.js",
|
||||
"_Either.wHNxn7Os.js",
|
||||
"_exports.3IcOsN8u.js",
|
||||
"_index.DKC_Jv5v.js",
|
||||
"_index.DxUTT09Y.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/lib/schemas/messages.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",
|
||||
"_belt_Option-91f3b350.cBye8bLJ.js"
|
||||
],
|
||||
"integrity": "sha512-AfazFsXwZx7Jw4OFVOqn67aMHb33rZaKnWzJWhXb065QNCmsGpBpTpXIN+MceSmx/b/6uKsieqH6PwFKyIk9jw=="
|
||||
"integrity": "sha512-lUQ7gg9r4XVBz+5ivZvD+nP+ncAJ4I78VpiJJE3NSWecpGYoyN/2/LvWzQr8maRyf7Ox4+aJRrbHIaQZVul/fQ=="
|
||||
}
|
||||
}
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
import { o as object, s as string } from "./index.DKC_Jv5v.js";
|
||||
import { o as object, s as string } from "./index.DxUTT09Y.js";
|
||||
const WCStoreBillingAddressSchema = object({
|
||||
address_1: string(),
|
||||
address_2: string(),
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
import { o as object, c as optional, n as number, b as array, s as string } from "./index.DKC_Jv5v.js";
|
||||
import { o as object, c as optional, n as number, b as array, s as string } from "./index.DxUTT09Y.js";
|
||||
const WCStoreCartAddItemArgsItemsSchema = object({
|
||||
/** Variation attribute name. */
|
||||
attribute: string(),
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
import { o as object, c as optional, s as string } from "./index.DKC_Jv5v.js";
|
||||
import { o as object, c as optional, s as string } from "./index.DxUTT09Y.js";
|
||||
const WCStoreCartApplyCouponArgsSchema = object({
|
||||
/** Unique identifier for the coupon within the basket */
|
||||
code: optional(string())
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
import { o as object, s as string, a as pipe, i as integer, n as number } from "./index.DKC_Jv5v.js";
|
||||
import { o as object, s as string, a as pipe, j as integer, n as number } from "./index.DxUTT09Y.js";
|
||||
const WCStoreCartCouponsSchema = object({
|
||||
/** The coupon's unique code. */
|
||||
code: string(),
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
import { o as object, c as optional, s as string } from "./index.DKC_Jv5v.js";
|
||||
import { o as object, c as optional, s as string } from "./index.DxUTT09Y.js";
|
||||
const WCStoreCartRemoveCouponArgsSchema = object({
|
||||
/** Unique identifier for the coupon within the basket */
|
||||
code: optional(string())
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
import { o as object, s as string } from "./index.DKC_Jv5v.js";
|
||||
import { o as object, s as string } from "./index.DxUTT09Y.js";
|
||||
const WCStoreCartRemoveItemArgsSchema = object({
|
||||
/** Unique identifier (key) for the basket item. */
|
||||
key: string()
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
import { o as object, c as optional } from "./index.DKC_Jv5v.js";
|
||||
import { o as object, c as optional } from "./index.DxUTT09Y.js";
|
||||
import { W as WCStoreBillingAddressSchema, a as WCStoreShippingAddressSchema } from "./adresses.js";
|
||||
const WCStoreCartUpdateCustomerArgsSchema = object({
|
||||
billing_address: optional(WCStoreBillingAddressSchema),
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
import { o as object, s as string, a as pipe, m as minValue, n as number } from "./index.DKC_Jv5v.js";
|
||||
import { o as object, s as string, a as pipe, m as minValue, n as number } from "./index.DxUTT09Y.js";
|
||||
const WCStoreCartUpdateItemArgsSchema = object({
|
||||
/** Unique identifier (key) for the basket item to update. */
|
||||
key: string(),
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
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.DKC_Jv5v.js";
|
||||
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, j as integer } from "./index.DxUTT09Y.js";
|
||||
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";
|
||||
|
|
|
|||
10
web/app/themes/haiku-atelier-2024/assets/js/codes-promo.js
Normal file
10
web/app/themes/haiku-atelier-2024/assets/js/codes-promo.js
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
class ErreurCodePromoInvalide extends Error {
|
||||
constructor(message) {
|
||||
super(`Code promo « ${message} » invalide.`);
|
||||
this.name = "ErreurCodePromoInvalide";
|
||||
}
|
||||
}
|
||||
export {
|
||||
ErreurCodePromoInvalide as E
|
||||
};
|
||||
//# sourceMappingURL=codes-promo.js.map
|
||||
|
|
@ -0,0 +1 @@
|
|||
{"version":3,"file":"codes-promo.js","sources":["../../src/scripts/lib/erreurs/codes-promo.ts"],"sourcesContent":["/** Types d'Erreurs liés aux codes promos */\n\nexport class ErreurCodePromoInvalide extends Error {\n constructor(message: string) {\n super(`Code promo « ${message} » invalide.`);\n this.name = \"ErreurCodePromoInvalide\";\n }\n}\n"],"names":[],"mappings":"AAEO,MAAM,gCAAgC,MAAM;AAAA,EACjD,YAAY,SAAiB;AACrB,UAAA,gBAAgB,OAAO,cAAc;AAC3C,SAAK,OAAO;AAAA,EAAA;AAEhB;"}
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
import { o as object, j as omit, b as array, s as string, n as number, u as unknown, d as boolean } from "./index.DKC_Jv5v.js";
|
||||
import { o as object, k as omit, b as array, s as string, n as number, u as unknown, d as boolean } from "./index.DxUTT09Y.js";
|
||||
import { a as WCStoreShippingAddressSchema } from "./adresses.js";
|
||||
const WCStoreShippingRateItemSchema = object({
|
||||
key: string(),
|
||||
|
|
|
|||
|
|
@ -2,17 +2,18 @@ const ATTRIBUT_ARIA_HIDDEN = "aria-hidden";
|
|||
const ATTRIBUT_ARIA_SELECTED = "aria-selected";
|
||||
const ATTRIBUT_CACHE = "data-cache";
|
||||
const ATTRIBUT_CLE_PANIER = "data-cle-panier";
|
||||
const ATTRIBUT_CODE_PROMO_PRESENT = "data-code-promo-present";
|
||||
const ATTRIBUT_CONTIENT_ARTICLES = "data-contient-articles";
|
||||
const ATTRIBUT_DESACTIVE = "disabled";
|
||||
const ATTRIBUT_ENSEMBLE_EPINGLE_BOITE_ACTIF = "data-ensemble-epingle-boite-actif";
|
||||
const ATTRIBUT_HIDDEN = "hidden";
|
||||
const ATTRIBUT_MENU_MOBILE_ACTIVE = "data-menu-mobile-active";
|
||||
const ATTRIBUT_PAGE = "data-page";
|
||||
const ATTRIBUT_ID_CATEGORIE_PRODUITS = "data-id-categorie-produits";
|
||||
const ATTRIBUT_ID_ENSEMBLE_EPINGLE_BOITE = "data-id-ensemble-epingle-boite";
|
||||
const ATTRIBUT_ENSEMBLE_EPINGLE_BOITE_ACTIF = "data-ensemble-epingle-boite-actif";
|
||||
const ATTRIBUT_INDEX_IMAGE_ACTIVE = "data-index-image-active";
|
||||
const ATTRIBUT_MENU_MOBILE_ACTIVE = "data-menu-mobile-active";
|
||||
const ATTRIBUT_PAGE = "data-page";
|
||||
const ATTRIBUT_PRIX = "data-prix";
|
||||
const ATTRIBUT_CODE_PROMO_PRESENT = "data-code-promo-present";
|
||||
const ATTRIBUT_CHARGEMENT = "data-chargement";
|
||||
const SELECTEUR_BOUTON_MENU_MOBILE = "#bouton-menu-mobile";
|
||||
const SELECTEUR_BOUTON_PANIER = ".compte-panier a[rel='cart']";
|
||||
const SELECTEUR_MENU_MOBILE = "#menu-mobile";
|
||||
|
|
@ -43,6 +44,7 @@ const SELECTEUR_INSTRUCTIONS_CLIENT = "#panneau-panier #instructions-client";
|
|||
const SELECTEUR_ENSEMBLE_CODE_PROMO = "#panneau-panier #ensemble-code-promo";
|
||||
const SELECTEUR_CHAMP_CODE_PROMO = "#panneau-panier #champ-code-promo";
|
||||
const SELECTEUR_BOUTON_CODE_PROMO = "#panneau-panier #bouton-code-promo";
|
||||
const SELECTEUR_MESSAGE_CODE_PROMO = "#panneau-panier .panneau__instructions-code-promo__code-promo__message";
|
||||
const SELECTEUR_CONTENEUR_STORYTELLING = ".storytelling";
|
||||
const SELECTEUR_IMAGES_STORYTELLING = ".storytelling__image";
|
||||
const SELECTEUR_GRILLE_PRODUITS = "#page-boutique .grille-produits";
|
||||
|
|
@ -61,42 +63,44 @@ const SELECTEUR_IMAGE_COLONNE_GAUCHE = ".colonne-gauche img";
|
|||
const SELECTEUR_IMAGES_COLONNE_DROITE = ".colonne-droite img";
|
||||
const SELECTEUR_PRIX_PRODUIT = ".selecteur-produit__prix";
|
||||
export {
|
||||
ATTRIBUT_MENU_MOBILE_ACTIVE as $,
|
||||
SELECTEUR_BOUTON_MENU_MOBILE as $,
|
||||
ATTRIBUT_CONTIENT_ARTICLES as A,
|
||||
SELECTEUR_BOUTON_CODE_PROMO as B,
|
||||
ATTRIBUT_CLE_PANIER as C,
|
||||
SELECTEUR_BOUTON_SOUSTRACTION_QUANTITE as D,
|
||||
SELECTEUR_CHAMP_QUANTITE_LIGNE_PANIER as E,
|
||||
SELECTEUR_BOUTON_ADDITION_QUANTITE as F,
|
||||
SELECTEUR_BOUTON_SUPPRESSION_PANIER as G,
|
||||
SELECTEUR_PRIX_LIGNE_PANIER as H,
|
||||
ATTRIBUT_DESACTIVE as I,
|
||||
ATTRIBUT_CODE_PROMO_PRESENT as J,
|
||||
SELECTEUR_BOUTON_AJOUT_PANIER as K,
|
||||
SELECTEUR_SELECTEUR_QUANTITE as L,
|
||||
SELECTEUR_LIENS_ONGLETS as M,
|
||||
SELECTEUR_SECTIONS_CONTENUS as N,
|
||||
SELECTEUR_PRIX_PRODUIT as O,
|
||||
SELECTEUR_CONTENEUR_FLECHES_DEFILEMENT as P,
|
||||
SELECTEUR_FLECHE_DEFILEMENT_GAUCHE as Q,
|
||||
SELECTEUR_FLECHE_DEFILEMENT_DROITE as R,
|
||||
SELECTEUR_BOUTON_SUPPRESSION_PANIER as B,
|
||||
SELECTEUR_PRIX_LIGNE_PANIER as C,
|
||||
ATTRIBUT_DESACTIVE as D,
|
||||
SELECTEUR_BOUTON_CODE_PROMO as E,
|
||||
SELECTEUR_CHAMP_CODE_PROMO as F,
|
||||
SELECTEUR_ENSEMBLE_CODE_PROMO as G,
|
||||
SELECTEUR_MESSAGE_CODE_PROMO as H,
|
||||
SELECTEUR_TOTAL_REDUCTION as I,
|
||||
SELECTEUR_TOTAL_REDUCTION_VALEUR as J,
|
||||
ATTRIBUT_CHARGEMENT as K,
|
||||
ATTRIBUT_CODE_PROMO_PRESENT as L,
|
||||
SELECTEUR_BOUTON_AJOUT_PANIER as M,
|
||||
SELECTEUR_SELECTEUR_QUANTITE as N,
|
||||
SELECTEUR_LIENS_ONGLETS as O,
|
||||
SELECTEUR_SECTIONS_CONTENUS as P,
|
||||
SELECTEUR_PRIX_PRODUIT as Q,
|
||||
SELECTEUR_CONTENEUR_FLECHES_DEFILEMENT as R,
|
||||
SELECTEUR_BOUTON_PANIER as S,
|
||||
SELECTEUR_PHOTOS_PRODUIT as T,
|
||||
SELECTEUR_IMAGE_COLONNE_GAUCHE as U,
|
||||
SELECTEUR_IMAGES_COLONNE_DROITE as V,
|
||||
ATTRIBUT_INDEX_IMAGE_ACTIVE as W,
|
||||
ATTRIBUT_ARIA_SELECTED as X,
|
||||
ATTRIBUT_PRIX as Y,
|
||||
SELECTEUR_BOUTON_MENU_MOBILE as Z,
|
||||
SELECTEUR_MENU_MOBILE as _,
|
||||
SELECTEUR_FLECHE_DEFILEMENT_GAUCHE as T,
|
||||
SELECTEUR_FLECHE_DEFILEMENT_DROITE as U,
|
||||
SELECTEUR_PHOTOS_PRODUIT as V,
|
||||
SELECTEUR_IMAGE_COLONNE_GAUCHE as W,
|
||||
SELECTEUR_IMAGES_COLONNE_DROITE as X,
|
||||
ATTRIBUT_INDEX_IMAGE_ACTIVE as Y,
|
||||
ATTRIBUT_ARIA_SELECTED as Z,
|
||||
ATTRIBUT_PRIX as _,
|
||||
SELECTEUR_MENU_CATEGORIES_PRODUITS as a,
|
||||
ATTRIBUT_ID_ENSEMBLE_EPINGLE_BOITE as a0,
|
||||
ATTRIBUT_ENSEMBLE_EPINGLE_BOITE_ACTIF as a1,
|
||||
CLASS_BOUTON_FERMETURE_BOITE_TEXTE as a2,
|
||||
CLASS_EPINGLE as a3,
|
||||
SELECTEUR_CONTENEUR_STORYTELLING_A_PROPOS as a4,
|
||||
SELECTEUR_EPINGLE as a5,
|
||||
SELECTEUR_BOITE_TEXTE as a6,
|
||||
SELECTEUR_MENU_MOBILE as a0,
|
||||
ATTRIBUT_MENU_MOBILE_ACTIVE as a1,
|
||||
ATTRIBUT_ID_ENSEMBLE_EPINGLE_BOITE as a2,
|
||||
ATTRIBUT_ENSEMBLE_EPINGLE_BOITE_ACTIF as a3,
|
||||
CLASS_BOUTON_FERMETURE_BOITE_TEXTE as a4,
|
||||
CLASS_EPINGLE as a5,
|
||||
SELECTEUR_CONTENEUR_STORYTELLING_A_PROPOS as a6,
|
||||
SELECTEUR_EPINGLE as a7,
|
||||
SELECTEUR_BOITE_TEXTE as a8,
|
||||
SELECTEUR_ENTREE_MENU_CATEGORIES_PRODUITS as b,
|
||||
SELECTEUR_CONTENEUR_STORYTELLING as c,
|
||||
SELECTEUR_IMAGES_STORYTELLING as d,
|
||||
|
|
@ -117,10 +121,10 @@ export {
|
|||
SELECTEUR_FORMULAIRE_PANIER as s,
|
||||
SELECTEUR_FORMULAIRE_FACTURATION as t,
|
||||
SELECTEUR_BOUTON_ACTIONS_FORMULAIRE as u,
|
||||
SELECTEUR_TOTAL_REDUCTION as v,
|
||||
SELECTEUR_TOTAL_REDUCTION_VALEUR as w,
|
||||
SELECTEUR_INSTRUCTIONS_CLIENT as x,
|
||||
SELECTEUR_ENSEMBLE_CODE_PROMO as y,
|
||||
SELECTEUR_CHAMP_CODE_PROMO as z
|
||||
SELECTEUR_INSTRUCTIONS_CLIENT as v,
|
||||
ATTRIBUT_CLE_PANIER as w,
|
||||
SELECTEUR_BOUTON_SOUSTRACTION_QUANTITE as x,
|
||||
SELECTEUR_CHAMP_QUANTITE_LIGNE_PANIER as y,
|
||||
SELECTEUR_BOUTON_ADDITION_QUANTITE as z
|
||||
};
|
||||
//# sourceMappingURL=dom.js.map
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -1,4 +1,4 @@
|
|||
import { e as creeSyntaxError, f as reporteEtLeveErreur, g as ErreurEntreeInexistante, h as ERREUR_SYNTAXE_INVALIDE, i as ERREUR_SELECTEUR_INEXISTANT } from "./erreurs.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, M as Maybe } from "./Either.wHNxn7Os.js";
|
||||
import "./exports.3IcOsN8u.js";
|
||||
|
|
|
|||
|
|
@ -1,88 +1,5 @@
|
|||
import { c as captureException } from "./exports.3IcOsN8u.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);
|
||||
class BadRequestError extends Error {
|
||||
constructor(message = "400 BadRequestError") {
|
||||
super(message);
|
||||
this.name = "BadRequestError";
|
||||
}
|
||||
}
|
||||
class UnauthorizedError extends Error {
|
||||
constructor(message = "401 UnauthorizedError") {
|
||||
super(message);
|
||||
this.name = "UnauthorizedError";
|
||||
}
|
||||
}
|
||||
class NotFoundError extends Error {
|
||||
constructor(message = "404 NotFoundError") {
|
||||
super(message);
|
||||
this.name = "NotFoundError";
|
||||
}
|
||||
}
|
||||
class ServerError extends Error {
|
||||
constructor(message = "500 ServerError") {
|
||||
super(message);
|
||||
this.name = "ServerError";
|
||||
}
|
||||
}
|
||||
class UnknownError extends Error {
|
||||
constructor(message) {
|
||||
super(JSON.stringify(message));
|
||||
this.name = "UnknownError";
|
||||
}
|
||||
}
|
||||
class CleNonTrouveError extends Error {
|
||||
constructor(message) {
|
||||
super(JSON.stringify(message));
|
||||
this.name = "CleNonTrouveError";
|
||||
}
|
||||
}
|
||||
class NonExistingKeyError extends Error {
|
||||
constructor(message) {
|
||||
super(JSON.stringify(message));
|
||||
this.name = "NonExistingKeyError";
|
||||
}
|
||||
}
|
||||
const ErreurInconnue = (erreur) => new UnknownError(erreur);
|
||||
const ErreurEntreeInexistante = (message) => new NonExistingKeyError(message);
|
||||
const leveErreur = (erreur) => {
|
||||
throw erreur;
|
||||
};
|
||||
const leveBadRequestError = (erreur) => {
|
||||
throw new BadRequestError(`(${erreur.code}) ${erreur.message}`);
|
||||
};
|
||||
const leveUnauthorizedError = (erreur) => {
|
||||
throw new UnauthorizedError(`(${erreur.code}) ${erreur.message}`);
|
||||
};
|
||||
const leveNotFoundError = (erreur) => {
|
||||
throw new NotFoundError(`(${erreur.code}) ${erreur.message}`);
|
||||
};
|
||||
const leveServerError = (message) => {
|
||||
throw new ServerError(message);
|
||||
};
|
||||
const reporteErreur = (erreur) => {
|
||||
console.error(erreur);
|
||||
return captureException(erreur);
|
||||
};
|
||||
const reporteEtLeveErreur = (erreur) => {
|
||||
reporteErreur(erreur);
|
||||
throw erreur;
|
||||
};
|
||||
const ERREUR_CODE_PROMO_INVALIDE = "woocommerce_rest_cart_coupon_error";
|
||||
export {
|
||||
CleNonTrouveError as C,
|
||||
ErreurInconnue as E,
|
||||
ServerError as S,
|
||||
leveErreur as a,
|
||||
leveBadRequestError as b,
|
||||
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,
|
||||
leveServerError as l,
|
||||
reporteErreur as r
|
||||
ERREUR_CODE_PROMO_INVALIDE as E
|
||||
};
|
||||
//# sourceMappingURL=erreurs.js.map
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -1,17 +1,88 @@
|
|||
import { l as is, o as object, n as number, s as string } from "./index.DKC_Jv5v.js";
|
||||
const WCErrorBodySchema = object({
|
||||
code: string(),
|
||||
data: object({
|
||||
status: number()
|
||||
}),
|
||||
message: string()
|
||||
});
|
||||
const WCErrorSchema = object({
|
||||
body: WCErrorBodySchema,
|
||||
status: number()
|
||||
});
|
||||
const estWCError = (donnees) => is(WCErrorSchema, donnees);
|
||||
import { c as captureException } from "./exports.3IcOsN8u.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);
|
||||
class BadRequestError extends Error {
|
||||
constructor(message = "400 BadRequestError") {
|
||||
super(message);
|
||||
this.name = "BadRequestError";
|
||||
}
|
||||
}
|
||||
class CleNonTrouveError extends Error {
|
||||
constructor(message) {
|
||||
super(JSON.stringify(message));
|
||||
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);
|
||||
this.name = "NotFoundError";
|
||||
}
|
||||
}
|
||||
class ServerError extends Error {
|
||||
constructor(message = "500 ServerError") {
|
||||
super(message);
|
||||
this.name = "ServerError";
|
||||
}
|
||||
}
|
||||
class UnauthorizedError extends Error {
|
||||
constructor(message = "401 UnauthorizedError") {
|
||||
super(message);
|
||||
this.name = "UnauthorizedError";
|
||||
}
|
||||
}
|
||||
class UnknownError extends Error {
|
||||
constructor(message) {
|
||||
super(JSON.stringify(message));
|
||||
this.name = "UnknownError";
|
||||
}
|
||||
}
|
||||
const ErreurInconnue = (erreur) => new UnknownError(erreur);
|
||||
const ErreurEntreeInexistante = (message) => new NonExistingKeyError(message);
|
||||
const leveErreur = (erreur) => {
|
||||
throw erreur;
|
||||
};
|
||||
const leveBadRequestError = (erreur) => {
|
||||
throw new BadRequestError(`(${erreur.code}) ${erreur.message}`);
|
||||
};
|
||||
const leveUnauthorizedError = (erreur) => {
|
||||
throw new UnauthorizedError(`(${erreur.code}) ${erreur.message}`);
|
||||
};
|
||||
const leveNotFoundError = (erreur) => {
|
||||
throw new NotFoundError(`(${erreur.code}) ${erreur.message}`);
|
||||
};
|
||||
const leveServerError = (message) => {
|
||||
throw new ServerError(message);
|
||||
};
|
||||
const reporteErreur = (erreur) => {
|
||||
console.error(erreur);
|
||||
return captureException(erreur);
|
||||
};
|
||||
const reporteEtLeveErreur = (erreur) => {
|
||||
reporteErreur(erreur);
|
||||
throw erreur;
|
||||
};
|
||||
export {
|
||||
estWCError as e
|
||||
CleNonTrouveError as C,
|
||||
ErreurInconnue as E,
|
||||
ServerError as S,
|
||||
leveErreur as a,
|
||||
leveBadRequestError as b,
|
||||
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,
|
||||
leveServerError as l,
|
||||
reporteErreur as r
|
||||
};
|
||||
//# sourceMappingURL=erreurs2.js.map
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
18
web/app/themes/haiku-atelier-2024/assets/js/erreurs3.js
Normal file
18
web/app/themes/haiku-atelier-2024/assets/js/erreurs3.js
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
import { o as object, n as number, i as is, s as string } from "./index.DxUTT09Y.js";
|
||||
const WCErrorBodySchema = object({
|
||||
code: string(),
|
||||
data: object({
|
||||
status: number()
|
||||
}),
|
||||
message: string()
|
||||
});
|
||||
const WCErrorSchema = object({
|
||||
body: WCErrorBodySchema,
|
||||
status: number()
|
||||
});
|
||||
const estWCError = (donnees) => is(WCErrorSchema, donnees);
|
||||
export {
|
||||
WCErrorSchema as W,
|
||||
estWCError as e
|
||||
};
|
||||
//# sourceMappingURL=erreurs3.js.map
|
||||
|
|
@ -0,0 +1 @@
|
|||
{"version":3,"file":"erreurs3.js","sources":["../../src/scripts/lib/schemas/api/erreurs.ts"],"sourcesContent":["import * as v from \"valibot\";\n\nimport type { WCError } from \"../../types/api/erreurs\";\n\nexport const WCErrorBodySchema = v.object({\n code: v.string(),\n data: v.object({\n status: v.number(),\n }),\n message: v.string(),\n});\n\nexport const WCErrorSchema = v.object({\n body: WCErrorBodySchema,\n status: v.number(),\n});\n\nexport const estWCError = (donnees: unknown): donnees is WCError => v.is(WCErrorSchema, donnees);\n"],"names":["v.object","v.string","v.number","v.is"],"mappings":";AAIa,MAAA,oBAAoBA,OAAS;AAAA,EACxC,MAAMC,OAAS;AAAA,EACf,MAAMD,OAAS;AAAA,IACb,QAAQE,OAAS;AAAA,EAAA,CAClB;AAAA,EACD,SAASD,OAAS;AACpB,CAAC;AAEY,MAAA,gBAAgBD,OAAS;AAAA,EACpC,MAAM;AAAA,EACN,QAAQE,OAAS;AACnB,CAAC;AAEM,MAAM,aAAa,CAAC,YAAyCC,GAAK,eAAe,OAAO;"}
|
||||
File diff suppressed because one or more lines are too long
|
|
@ -606,10 +606,10 @@ export {
|
|||
union as f,
|
||||
null_ as g,
|
||||
url as h,
|
||||
integer as i,
|
||||
omit as j,
|
||||
maxValue as k,
|
||||
is as l,
|
||||
is as i,
|
||||
integer as j,
|
||||
omit as k,
|
||||
maxValue as l,
|
||||
minValue as m,
|
||||
number as n,
|
||||
object as o,
|
||||
|
|
@ -618,4 +618,4 @@ export {
|
|||
unknown as u,
|
||||
value as v
|
||||
};
|
||||
//# sourceMappingURL=index.DKC_Jv5v.js.map
|
||||
//# sourceMappingURL=index.DxUTT09Y.js.map
|
||||
File diff suppressed because one or more lines are too long
|
|
@ -1,7 +1,9 @@
|
|||
import { p as parse } from "./index.DKC_Jv5v.js";
|
||||
import { p as parse } from "./index.DxUTT09Y.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 { r as reporteErreur } from "./erreurs2.js";
|
||||
import { W as WCErrorSchema } from "./erreurs3.js";
|
||||
import { M as MessageMajBoutonPanierSchema, a as MessageMajContenuPanierSchema } from "./messages2.js";
|
||||
import { e as eitherParse } from "./validation.js";
|
||||
import { E as Either } from "./Either.wHNxn7Os.js";
|
||||
import "./exports.3IcOsN8u.js";
|
||||
import "./cart.js";
|
||||
|
|
@ -37,10 +39,12 @@ const valideMessageMajBoutonPanier = (evenementMessage) => Either.of(
|
|||
const valideMessageMajContenuPanier = (evenementMessage) => Either.of(
|
||||
parse(MessageMajContenuPanierSchema, evenementMessage.data)
|
||||
).ifLeft((erreur) => reporteErreur(erreur));
|
||||
const reponseEstCodeErreurWC = (reponse, codeErreurWC) => eitherParse(reponse, WCErrorSchema).map((v) => v.body.code === codeErreurWC).orDefault(false);
|
||||
export {
|
||||
emetMessageMajContenuPanier as a,
|
||||
valideMessageMajContenuPanier as b,
|
||||
emetMessageMajBoutonPanier as e,
|
||||
reponseEstCodeErreurWC as r,
|
||||
valideMessageMajBoutonPanier as v
|
||||
};
|
||||
//# sourceMappingURL=messages.js.map
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
{"version":3,"file":"messages.js","sources":["../../src/scripts/lib/messages.ts"],"sourcesContent":["import { Either } from \"purify-ts\";\nimport { parse, type ValiError } from \"valibot\";\n\nimport type {\n MessageMajBoutonPanier,\n MessageMajBoutonPanierDonnees,\n MessageMajContenuPanier,\n MessageMajContenuPanierDonnees,\n} from \"./types/messages\";\n\nimport { NOM_CANAL_BOUTON_PANIER, NOM_CANAL_CONTENU_PANIER, TYPES_MESSAGES } from \"../constantes/messages.ts\";\nimport { reporteErreur } from \"./erreurs.ts\";\nimport { MessageMajBoutonPanierSchema, MessageMajContenuPanierSchema } from \"./schemas/messages.ts\";\n\n// Émissions\nexport const emetMessageMajBoutonPanier = (args: MessageMajBoutonPanierDonnees): void => {\n const canal = new BroadcastChannel(NOM_CANAL_BOUTON_PANIER);\n canal.postMessage({\n donnees: {\n quantiteProduits: args.quantiteProduits,\n },\n type: TYPES_MESSAGES.MajBoutonPanier,\n } as MessageMajBoutonPanier);\n canal.close();\n};\n\nexport const emetMessageMajContenuPanier = (args: MessageMajContenuPanierDonnees): void => {\n const canal = new BroadcastChannel(NOM_CANAL_CONTENU_PANIER);\n canal.postMessage({\n donnees: {\n produits: args.produits,\n sousTotalPanier: args.sousTotalPanier,\n totalPanier: args.totalPanier,\n },\n type: TYPES_MESSAGES.MajContenuPanier,\n } as MessageMajContenuPanier);\n canal.close();\n};\n\n// Validations\nexport const valideMessageMajBoutonPanier = (\n evenementMessage: MessageEvent<unknown>,\n): Either<ValiError<typeof MessageMajBoutonPanierSchema>, MessageMajBoutonPanier> =>\n Either\n .of<ValiError<typeof MessageMajBoutonPanierSchema>, MessageMajBoutonPanier>(\n parse(MessageMajBoutonPanierSchema, evenementMessage.data),\n )\n .ifLeft(erreur => reporteErreur(erreur));\n\nexport const valideMessageMajContenuPanier = (\n evenementMessage: MessageEvent<unknown>,\n): Either<ValiError<typeof MessageMajContenuPanierSchema>, MessageMajContenuPanier> =>\n Either\n .of<ValiError<typeof MessageMajContenuPanierSchema>, MessageMajContenuPanier>(\n parse(MessageMajContenuPanierSchema, evenementMessage.data),\n )\n .ifLeft(erreur => reporteErreur(erreur));\n"],"names":[],"mappings":";;;;;;;;;;;AAea,MAAA,6BAA6B,CAAC,SAA8C;AACjF,QAAA,QAAQ,IAAI,iBAAiB,uBAAuB;AAC1D,QAAM,YAAY;AAAA,IAChB,SAAS;AAAA,MACP,kBAAkB,KAAK;AAAA,IACzB;AAAA,IACA,MAAM,eAAe;AAAA,EAAA,CACI;AAC3B,QAAM,MAAM;AACd;AAEa,MAAA,8BAA8B,CAAC,SAA+C;AACnF,QAAA,QAAQ,IAAI,iBAAiB,wBAAwB;AAC3D,QAAM,YAAY;AAAA,IAChB,SAAS;AAAA,MACP,UAAU,KAAK;AAAA,MACf,iBAAiB,KAAK;AAAA,MACtB,aAAa,KAAK;AAAA,IACpB;AAAA,IACA,MAAM,eAAe;AAAA,EAAA,CACK;AAC5B,QAAM,MAAM;AACd;AAGa,MAAA,+BAA+B,CAC1C,qBAEA,OACG;AAAA,EACC,MAAM,8BAA8B,iBAAiB,IAAI;AAC3D,EACC,OAAO,CAAA,WAAU,cAAc,MAAM,CAAC;AAE9B,MAAA,gCAAgC,CAC3C,qBAEA,OACG;AAAA,EACC,MAAM,+BAA+B,iBAAiB,IAAI;AAC5D,EACC,OAAO,CAAA,WAAU,cAAc,MAAM,CAAC;"}
|
||||
{"version":3,"file":"messages.js","sources":["../../src/scripts/lib/messages.ts"],"sourcesContent":["import { pipe } from \"@mobily/ts-belt\";\nimport { Either } from \"purify-ts\";\nimport { parse, type ValiError } from \"valibot\";\n\nimport type {\n MessageMajBoutonPanier,\n MessageMajBoutonPanierDonnees,\n MessageMajContenuPanier,\n MessageMajContenuPanierDonnees,\n} from \"./types/messages\";\n\nimport { NOM_CANAL_BOUTON_PANIER, NOM_CANAL_CONTENU_PANIER, TYPES_MESSAGES } from \"../constantes/messages.ts\";\nimport { reporteErreur } from \"./erreurs.ts\";\nimport { WCErrorSchema } from \"./schemas/api/erreurs.ts\";\nimport { MessageMajBoutonPanierSchema, MessageMajContenuPanierSchema } from \"./schemas/messages.ts\";\nimport { ReponseSimplifiee } from \"./types/reseau\";\nimport { eitherParse } from \"./validation.ts\";\n\nexport const canalPostMessage = (canal: BroadcastChannel, message: any): BroadcastChannel => {\n canal.postMessage(message);\n return canal;\n};\n\n// Émissions\nexport const emetMessageMajBoutonPanier = (args: MessageMajBoutonPanierDonnees): void => {\n const canal = new BroadcastChannel(NOM_CANAL_BOUTON_PANIER);\n canal.postMessage({\n donnees: {\n quantiteProduits: args.quantiteProduits,\n },\n type: TYPES_MESSAGES.MajBoutonPanier,\n } as MessageMajBoutonPanier);\n canal.close();\n};\n\nexport const emetMessageMajContenuPanier = (args: MessageMajContenuPanierDonnees): void => {\n const canal = new BroadcastChannel(NOM_CANAL_CONTENU_PANIER);\n canal.postMessage({\n donnees: {\n produits: args.produits,\n sousTotalPanier: args.sousTotalPanier,\n totalPanier: args.totalPanier,\n },\n type: TYPES_MESSAGES.MajContenuPanier,\n } as MessageMajContenuPanier);\n canal.close();\n};\n\n/**\n * Émet un unique message vers un BroadcastChannel (canal) généré sur le moment puis le ferme.\n *\n * @param nomCanal Le nom du BroadcastChannel pour lequel le message est émis.\n * @param message Le message émis.\n * @return void\n */\nexport const emetUniqueMessageCanal = <M>(nomCanal: string, message: M): void =>\n pipe(new BroadcastChannel(nomCanal), canal => canalPostMessage(canal, message), canal => canal.close());\n\n// Validations\nexport const valideMessageMajBoutonPanier = (\n evenementMessage: MessageEvent<unknown>,\n): Either<ValiError<typeof MessageMajBoutonPanierSchema>, MessageMajBoutonPanier> =>\n Either\n .of<ValiError<typeof MessageMajBoutonPanierSchema>, MessageMajBoutonPanier>(\n parse(MessageMajBoutonPanierSchema, evenementMessage.data),\n )\n .ifLeft(erreur => reporteErreur(erreur));\n\nexport const valideMessageMajContenuPanier = (\n evenementMessage: MessageEvent<unknown>,\n): Either<ValiError<typeof MessageMajContenuPanierSchema>, MessageMajContenuPanier> =>\n Either\n .of<ValiError<typeof MessageMajContenuPanierSchema>, MessageMajContenuPanier>(\n parse(MessageMajContenuPanierSchema, evenementMessage.data),\n )\n .ifLeft(erreur => reporteErreur(erreur));\n\n// Correspondances\nexport const reponseEstCodeErreurWC = (reponse: ReponseSimplifiee, codeErreurWC: string): boolean =>\n eitherParse(reponse, WCErrorSchema)\n .map(v => v.body.code === codeErreurWC)\n .orDefault(false);\n"],"names":[],"mappings":";;;;;;;;;;;;;AAwBa,MAAA,6BAA6B,CAAC,SAA8C;AACjF,QAAA,QAAQ,IAAI,iBAAiB,uBAAuB;AAC1D,QAAM,YAAY;AAAA,IAChB,SAAS;AAAA,MACP,kBAAkB,KAAK;AAAA,IACzB;AAAA,IACA,MAAM,eAAe;AAAA,EAAA,CACI;AAC3B,QAAM,MAAM;AACd;AAEa,MAAA,8BAA8B,CAAC,SAA+C;AACnF,QAAA,QAAQ,IAAI,iBAAiB,wBAAwB;AAC3D,QAAM,YAAY;AAAA,IAChB,SAAS;AAAA,MACP,UAAU,KAAK;AAAA,MACf,iBAAiB,KAAK;AAAA,MACtB,aAAa,KAAK;AAAA,IACpB;AAAA,IACA,MAAM,eAAe;AAAA,EAAA,CACK;AAC5B,QAAM,MAAM;AACd;AAaa,MAAA,+BAA+B,CAC1C,qBAEA,OACG;AAAA,EACC,MAAM,8BAA8B,iBAAiB,IAAI;AAC3D,EACC,OAAO,CAAA,WAAU,cAAc,MAAM,CAAC;AAE9B,MAAA,gCAAgC,CAC3C,qBAEA,OACG;AAAA,EACC,MAAM,+BAA+B,iBAAiB,IAAI;AAC5D,EACC,OAAO,CAAA,WAAU,cAAc,MAAM,CAAC;AAGpC,MAAM,yBAAyB,CAAC,SAA4B,iBACjE,YAAY,SAAS,aAAa,EAC/B,IAAI,CAAA,MAAK,EAAE,KAAK,SAAS,YAAY,EACrC,UAAU,KAAK;"}
|
||||
|
|
@ -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.DKC_Jv5v.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.DxUTT09Y.js";
|
||||
import { T as TYPES_MESSAGES } from "./messages3.js";
|
||||
import { a as WCStoreCartItemSchema } from "./cart.js";
|
||||
import "./cart2.js";
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
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, i as integer, n as number, g as null_ } from "./index.DKC_Jv5v.js";
|
||||
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({
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
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.DKC_Jv5v.js";
|
||||
import { o as object, c as optional, e as enum_, a as pipe, m as minValue, n as number, l as maxValue, b as array, s as string, d as boolean, f as union, u as unknown, j as integer, g as null_, h as url } from "./index.DxUTT09Y.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";
|
||||
const WCV3ProductsArgsSchema = object({
|
||||
// Date ISO8601
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
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.DKC_Jv5v.js";
|
||||
import { o as object, c as optional, e as enum_, a as pipe, m as minValue, n as number, l as maxValue, b as array, s as string, u as unknown, d as boolean, f as union, j as integer, g as null_ } from "./index.DxUTT09Y.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";
|
||||
object({
|
||||
// Date ISO8601
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
import { z, N } from "./index.CeK6pfoJ.js";
|
||||
import { p as parse } from "./index.DKC_Jv5v.js";
|
||||
import { p as parse } from "./index.DxUTT09Y.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 { 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.3IcOsN8u.js";
|
||||
const getBackendAvecParametresUrl = (args) => fetch(
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -4,16 +4,18 @@ import { r as recupereElementOuLeve } from "./dom2.js";
|
|||
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 "./erreurs2.js";
|
||||
import "./exports.3IcOsN8u.js";
|
||||
import "./Either.wHNxn7Os.js";
|
||||
import "./index.DKC_Jv5v.js";
|
||||
import "./index.DxUTT09Y.js";
|
||||
import "./erreurs3.js";
|
||||
import "./messages2.js";
|
||||
import "./cart.js";
|
||||
import "./cart2.js";
|
||||
import "./adresses.js";
|
||||
import "./cart-coupons.js";
|
||||
import "./couts-livraison.js";
|
||||
import "./validation.js";
|
||||
const initialiseBoutonPanier = () => {
|
||||
const BOUTON_PANIER = pipe(
|
||||
recupereElementDocumentEither(SELECTEUR_BOUTON_PANIER),
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
{"version":3,"file":"scripts-bouton-panier.js","sources":["../../src/scripts/scripts-bouton-panier.ts"],"sourcesContent":["/**\n * Scripts pour la mise à jour trans-fenêtres/trans-onglets du Bouton du Panier.\n */\n\nimport { pipe } from \"@mobily/ts-belt\";\n\nimport type { MessageMajBoutonPanier } from \"./lib/types/messages\";\n\nimport { ATTRIBUT_CONTIENT_ARTICLES, SELECTEUR_BOUTON_PANIER } from \"./constantes/dom.ts\";\nimport { NOM_CANAL_BOUTON_PANIER } from \"./constantes/messages.ts\";\nimport { recupereElementOuLeve } from \"./lib/dom.ts\";\nimport { valideMessageMajBoutonPanier } from \"./lib/messages.ts\";\nimport { recupereElementDocumentEither } from \"./lib/utils.ts\";\n\nconst initialiseBoutonPanier = (): void => {\n /** Le « Bouton » vers le Panier dont le texte est un indicateur du nombre de Produits dedans. */\n const BOUTON_PANIER: HTMLAnchorElement = pipe(\n recupereElementDocumentEither<HTMLAnchorElement>(SELECTEUR_BOUTON_PANIER),\n recupereElementOuLeve,\n );\n const CANAL_BOUTON_PANIER: BroadcastChannel = new BroadcastChannel(NOM_CANAL_BOUTON_PANIER);\n\n CANAL_BOUTON_PANIER.onmessage = (evenementMessage: MessageEvent<unknown>): void => {\n valideMessageMajBoutonPanier(evenementMessage)\n // Met à jour le Bouton du Panier\n .ifRight((message: MessageMajBoutonPanier) => {\n BOUTON_PANIER.textContent = `cart (${String(message.donnees.quantiteProduits)})`;\n BOUTON_PANIER.setAttribute(ATTRIBUT_CONTIENT_ARTICLES, String(message.donnees.quantiteProduits > 0));\n });\n };\n\n // Ferme le BroadcastChannel à la fermeture de la page\n document.addEventListener(\"visibilitychange\", (): void => {\n CANAL_BOUTON_PANIER.close();\n });\n};\n\ndocument.addEventListener(\"DOMContentLoaded\", () => {\n initialiseBoutonPanier();\n});\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAcA,MAAM,yBAAyB,MAAY;AAEzC,QAAM,gBAAmC;AAAA,IACvC,8BAAiD,uBAAuB;AAAA,IACxE;AAAA,EACF;AACM,QAAA,sBAAwC,IAAI,iBAAiB,uBAAuB;AAEtE,sBAAA,YAAY,CAAC,qBAAkD;AACjF,iCAA6B,gBAAgB,EAE1C,QAAQ,CAAC,YAAoC;AAC5C,oBAAc,cAAc,SAAS,OAAO,QAAQ,QAAQ,gBAAgB,CAAC;AAC7E,oBAAc,aAAa,4BAA4B,OAAO,QAAQ,QAAQ,mBAAmB,CAAC,CAAC;AAAA,IAAA,CACpG;AAAA,EACL;AAGS,WAAA,iBAAiB,oBAAoB,MAAY;AACxD,wBAAoB,MAAM;AAAA,EAAA,CAC3B;AACH;AAEA,SAAS,iBAAiB,oBAAoB,MAAM;AAC3B,yBAAA;AACzB,CAAC;"}
|
||||
{"version":3,"file":"scripts-bouton-panier.js","sources":["../../src/scripts/scripts-bouton-panier.ts"],"sourcesContent":["/**\n * Scripts pour la mise à jour trans-fenêtres/trans-onglets du Bouton du Panier.\n */\n\nimport { pipe } from \"@mobily/ts-belt\";\n\nimport type { MessageMajBoutonPanier } from \"./lib/types/messages\";\n\nimport { ATTRIBUT_CONTIENT_ARTICLES, SELECTEUR_BOUTON_PANIER } from \"./constantes/dom.ts\";\nimport { NOM_CANAL_BOUTON_PANIER } from \"./constantes/messages.ts\";\nimport { recupereElementOuLeve } from \"./lib/dom.ts\";\nimport { valideMessageMajBoutonPanier } from \"./lib/messages.ts\";\nimport { recupereElementDocumentEither } from \"./lib/utils.ts\";\n\nconst initialiseBoutonPanier = (): void => {\n /** Le « Bouton » vers le Panier dont le texte est un indicateur du nombre de Produits dedans. */\n const BOUTON_PANIER: HTMLAnchorElement = pipe(\n recupereElementDocumentEither<HTMLAnchorElement>(SELECTEUR_BOUTON_PANIER),\n recupereElementOuLeve,\n );\n const CANAL_BOUTON_PANIER: BroadcastChannel = new BroadcastChannel(NOM_CANAL_BOUTON_PANIER);\n\n CANAL_BOUTON_PANIER.onmessage = (evenementMessage: MessageEvent<unknown>): void => {\n valideMessageMajBoutonPanier(evenementMessage)\n // Met à jour le Bouton du Panier\n .ifRight((message: MessageMajBoutonPanier) => {\n BOUTON_PANIER.textContent = `cart (${String(message.donnees.quantiteProduits)})`;\n BOUTON_PANIER.setAttribute(ATTRIBUT_CONTIENT_ARTICLES, String(message.donnees.quantiteProduits > 0));\n });\n };\n\n // Ferme le BroadcastChannel à la fermeture de la page\n document.addEventListener(\"visibilitychange\", (): void => {\n CANAL_BOUTON_PANIER.close();\n });\n};\n\ndocument.addEventListener(\"DOMContentLoaded\", () => {\n initialiseBoutonPanier();\n});\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAcA,MAAM,yBAAyB,MAAY;AAEzC,QAAM,gBAAmC;AAAA,IACvC,8BAAiD,uBAAuB;AAAA,IACxE;AAAA,EACF;AACM,QAAA,sBAAwC,IAAI,iBAAiB,uBAAuB;AAEtE,sBAAA,YAAY,CAAC,qBAAkD;AACjF,iCAA6B,gBAAgB,EAE1C,QAAQ,CAAC,YAAoC;AAC5C,oBAAc,cAAc,SAAS,OAAO,QAAQ,QAAQ,gBAAgB,CAAC;AAC7E,oBAAc,aAAa,4BAA4B,OAAO,QAAQ,QAAQ,mBAAmB,CAAC,CAAC;AAAA,IAAA,CACpG;AAAA,EACL;AAGS,WAAA,iBAAiB,oBAAoB,MAAY;AACxD,wBAAoB,MAAM;AAAA,EAAA,CAC3B;AACH;AAEA,SAAS,iBAAiB,oBAAoB,MAAM;AAC3B,yBAAA;AACzB,CAAC;"}
|
||||
|
|
@ -2,7 +2,7 @@ import { z } from "./index.CeK6pfoJ.js";
|
|||
import { a as SELECTEUR_MENU_CATEGORIES_PRODUITS, b as SELECTEUR_ENTREE_MENU_CATEGORIES_PRODUITS } from "./dom.js";
|
||||
import { a as recupereElementDansDocumentOuLeve, b as recupereElementsDansDocumentOuLeve } from "./utils.js";
|
||||
import { R as Ra } from "./dom2.js";
|
||||
import "./erreurs.js";
|
||||
import "./erreurs2.js";
|
||||
import "./exports.3IcOsN8u.js";
|
||||
import "./pipe.XPB0wEfw.js";
|
||||
import "./Either.wHNxn7Os.js";
|
||||
|
|
|
|||
|
|
@ -1,10 +1,10 @@
|
|||
var __defProp = Object.defineProperty;
|
||||
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
||||
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
||||
import { Z as SELECTEUR_BOUTON_MENU_MOBILE, _ as SELECTEUR_MENU_MOBILE, $ as ATTRIBUT_MENU_MOBILE_ACTIVE } from "./dom.js";
|
||||
import { $ as SELECTEUR_BOUTON_MENU_MOBILE, a0 as SELECTEUR_MENU_MOBILE, a1 as ATTRIBUT_MENU_MOBILE_ACTIVE } from "./dom.js";
|
||||
import { a as recupereElementDansDocumentOuLeve } from "./utils.js";
|
||||
import "./dom2.js";
|
||||
import "./erreurs.js";
|
||||
import "./erreurs2.js";
|
||||
import "./exports.3IcOsN8u.js";
|
||||
import "./pipe.XPB0wEfw.js";
|
||||
import "./Either.wHNxn7Os.js";
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
import { a0 as ATTRIBUT_ID_ENSEMBLE_EPINGLE_BOITE, a1 as ATTRIBUT_ENSEMBLE_EPINGLE_BOITE_ACTIF, a2 as CLASS_BOUTON_FERMETURE_BOITE_TEXTE, a3 as CLASS_EPINGLE, a4 as SELECTEUR_CONTENEUR_STORYTELLING_A_PROPOS, a5 as SELECTEUR_EPINGLE, a6 as SELECTEUR_BOITE_TEXTE } from "./dom.js";
|
||||
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 { 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.cBye8bLJ.js";
|
||||
import "./erreurs.js";
|
||||
import "./erreurs2.js";
|
||||
import "./exports.3IcOsN8u.js";
|
||||
import "./Either.wHNxn7Os.js";
|
||||
var t = create("Promise.JsError");
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ import { c as SELECTEUR_CONTENEUR_STORYTELLING, d as SELECTEUR_IMAGES_STORYTELLI
|
|||
import { e as estEntreDeuxNombres } from "./nombres.js";
|
||||
import { a as recupereElementDansDocumentOuLeve, b as recupereElementsDansDocumentOuLeve } from "./utils.js";
|
||||
import "./dom2.js";
|
||||
import "./erreurs.js";
|
||||
import "./erreurs2.js";
|
||||
import "./exports.3IcOsN8u.js";
|
||||
import "./pipe.XPB0wEfw.js";
|
||||
import "./Either.wHNxn7Os.js";
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
import { z, N } from "./index.CeK6pfoJ.js";
|
||||
import { p as parse } from "./index.DKC_Jv5v.js";
|
||||
import { p as parse } from "./index.DxUTT09Y.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 { h as html } from "./dom2.js";
|
||||
import { l as leveServerError } from "./erreurs.js";
|
||||
import { l as leveServerError } from "./erreurs2.js";
|
||||
import { e as estReponse500 } from "./gardes.js";
|
||||
import { g as getBackendAvecParametresUrl, t as traiteReponseBackendWCSelonCodesHTTP } from "./reseau.js";
|
||||
import { W as WCV3ProductsArgsSchema, a as WCV3ProductsSchema } from "./products.js";
|
||||
|
|
@ -13,7 +13,7 @@ import { p as pipe } from "./pipe.XPB0wEfw.js";
|
|||
import { t as tap } from "./index-0eef19ec.DoJSf22Z.js";
|
||||
import { E as Either } from "./Either.wHNxn7Os.js";
|
||||
import "./exports.3IcOsN8u.js";
|
||||
import "./erreurs2.js";
|
||||
import "./erreurs3.js";
|
||||
import "./products2.js";
|
||||
import "./belt_Option-91f3b350.cBye8bLJ.js";
|
||||
const ETATS_PAGE = _etats;
|
||||
|
|
|
|||
|
|
@ -1,10 +1,13 @@
|
|||
import { z, N } from "./index.CeK6pfoJ.js";
|
||||
import { V as ValiError } from "./index.DKC_Jv5v.js";
|
||||
import { V as ValiError } from "./index.DxUTT09Y.js";
|
||||
import { e as ROUTE_API_APPLIQUE_COUPON, f as ROUTE_API_RETIRE_COUPON } from "./api.js";
|
||||
import { B as SELECTEUR_BOUTON_CODE_PROMO, z as SELECTEUR_CHAMP_CODE_PROMO, y as SELECTEUR_ENSEMBLE_CODE_PROMO, q as SELECTEUR_TOTAL_PANIER, v as SELECTEUR_TOTAL_REDUCTION, w as SELECTEUR_TOTAL_REDUCTION_VALEUR, I as ATTRIBUT_DESACTIVE, J as ATTRIBUT_CODE_PROMO_PRESENT, k as ATTRIBUT_HIDDEN } from "./dom.js";
|
||||
import { E as SELECTEUR_BOUTON_CODE_PROMO, F as SELECTEUR_CHAMP_CODE_PROMO, G as SELECTEUR_ENSEMBLE_CODE_PROMO, H as SELECTEUR_MESSAGE_CODE_PROMO, q as SELECTEUR_TOTAL_PANIER, I as SELECTEUR_TOTAL_REDUCTION, J as SELECTEUR_TOTAL_REDUCTION_VALEUR, D as ATTRIBUT_DESACTIVE, K 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 { d as correspondCibleSelecteur, i as identity } from "./dom2.js";
|
||||
import { S as ServerError } from "./erreurs.js";
|
||||
import { S as ServerError } from "./erreurs2.js";
|
||||
import { E as ErreurCodePromoInvalide } from "./codes-promo.js";
|
||||
import { e as estReponse500 } from "./gardes.js";
|
||||
import { r as reponseEstCodeErreurWC } from "./messages.js";
|
||||
import { p as postBackend } from "./reseau.js";
|
||||
import { W as WCStoreCartSchema } from "./cart.js";
|
||||
import { W as WCStoreCartApplyCouponArgsSchema } from "./cart-apply-coupon.js";
|
||||
|
|
@ -15,7 +18,9 @@ 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.3IcOsN8u.js";
|
||||
import "./erreurs2.js";
|
||||
import "./messages3.js";
|
||||
import "./erreurs3.js";
|
||||
import "./messages2.js";
|
||||
import "./cart2.js";
|
||||
import "./adresses.js";
|
||||
import "./cart-coupons.js";
|
||||
|
|
@ -25,80 +30,145 @@ const ELEMENTS = {
|
|||
BOUTON_CODE_PROMO: recupereElementDansDocumentOuLeve(SELECTEUR_BOUTON_CODE_PROMO),
|
||||
CHAMP_CODE_PROMO: recupereElementDansDocumentOuLeve(SELECTEUR_CHAMP_CODE_PROMO),
|
||||
ENSEMBLE_CODE_PROMO: recupereElementDansDocumentOuLeve(SELECTEUR_ENSEMBLE_CODE_PROMO),
|
||||
MESSAGE_CODE_PROMO: recupereElementDansDocumentOuLeve(SELECTEUR_MESSAGE_CODE_PROMO),
|
||||
TOTAL_PANIER: recupereElementDansDocumentOuLeve(SELECTEUR_TOTAL_PANIER),
|
||||
TOTAL_REDUCTION_LIGNE: recupereElementDansDocumentOuLeve(SELECTEUR_TOTAL_REDUCTION),
|
||||
TOTAL_REDUCTION_VALEUR: recupereElementDansDocumentOuLeve(SELECTEUR_TOTAL_REDUCTION_VALEUR)
|
||||
};
|
||||
const initialiseElementsCodePromo = () => {
|
||||
const recupereCodePromoValeur = () => Maybe.fromFalsy(ELEMENTS.CHAMP_CODE_PROMO.value.trim()).extractNullable();
|
||||
const recupereCodePromoPresent = () => ELEMENTS.ENSEMBLE_CODE_PROMO.hasAttribute(ATTRIBUT_CODE_PROMO_PRESENT);
|
||||
ELEMENTS.ENSEMBLE_CODE_PROMO.addEventListener(
|
||||
"click",
|
||||
(evenement) => z({
|
||||
cible: evenement.target,
|
||||
codePromoPresent: recupereCodePromoPresent(),
|
||||
codePromoValeur: recupereCodePromoValeur()
|
||||
}).with(
|
||||
{
|
||||
cible: N.when((cible) => correspondCibleSelecteur(cible, SELECTEUR_BOUTON_CODE_PROMO)),
|
||||
codePromoPresent: false,
|
||||
codePromoValeur: N.string
|
||||
},
|
||||
({ codePromoValeur }) => void EitherAsync.liftEither(eitherParse({ code: codePromoValeur }, WCStoreCartApplyCouponArgsSchema)).map(
|
||||
(args) => postBackend({
|
||||
corps: JSON.stringify(args),
|
||||
nonce: ETATS_PAGE.nonce,
|
||||
route: ROUTE_API_APPLIQUE_COUPON
|
||||
})
|
||||
).chain(
|
||||
(reponse) => EitherAsync(async ({ throwE }) => {
|
||||
if (estReponse500(reponse)) throwE(new ServerError("500 Server Error"));
|
||||
return await reponse.json();
|
||||
})
|
||||
).chain((corpsReponse) => EitherAsync.liftEither(eitherParse(corpsReponse, WCStoreCartSchema))).ifRight((panier) => {
|
||||
const totalReduction = pipe(Number(panier.totals.total_discount) / 100, String, (v) => `-${v}€`);
|
||||
const totalPanier = pipe(Number(panier.totals.total_price) / 100, String, (v) => `${v}€`);
|
||||
ELEMENTS.BOUTON_CODE_PROMO.textContent = "Remove";
|
||||
ELEMENTS.CHAMP_CODE_PROMO.toggleAttribute(ATTRIBUT_DESACTIVE);
|
||||
ELEMENTS.CHAMP_CODE_PROMO.value = panier.coupons[0]?.code ?? "";
|
||||
ELEMENTS.ENSEMBLE_CODE_PROMO.toggleAttribute(ATTRIBUT_CODE_PROMO_PRESENT);
|
||||
ELEMENTS.TOTAL_PANIER.textContent = totalPanier;
|
||||
ELEMENTS.TOTAL_REDUCTION_LIGNE.toggleAttribute(ATTRIBUT_HIDDEN);
|
||||
ELEMENTS.TOTAL_REDUCTION_VALEUR.textContent = totalReduction;
|
||||
}).ifLeft(
|
||||
(erreur) => z(erreur).with(N.instanceOf(ValiError), (e) => console.error("retour ajout code promo", e.issues)).with(N.instanceOf(ServerError), (e) => console.error("retour ajout code promo", e)).with(N.instanceOf(TypeError), (e) => console.error("retour ajout code promo", e)).exhaustive()
|
||||
).run()
|
||||
).with(
|
||||
{
|
||||
cible: N.when((cible) => correspondCibleSelecteur(cible, SELECTEUR_BOUTON_CODE_PROMO)),
|
||||
codePromoPresent: true,
|
||||
codePromoValeur: N.string
|
||||
},
|
||||
({ codePromoValeur }) => void EitherAsync.liftEither(eitherParse({ code: codePromoValeur }, WCStoreCartRemoveCouponArgsSchema)).map(
|
||||
(args) => postBackend({
|
||||
corps: JSON.stringify(args),
|
||||
nonce: ETATS_PAGE.nonce,
|
||||
route: ROUTE_API_RETIRE_COUPON
|
||||
})
|
||||
).chain(
|
||||
(reponse) => EitherAsync(async ({ throwE }) => {
|
||||
if (estReponse500(reponse)) throwE(new ServerError("500 server Error"));
|
||||
return await reponse.json();
|
||||
})
|
||||
).chain((corpsReponse) => EitherAsync.liftEither(eitherParse(corpsReponse, WCStoreCartSchema))).ifRight((panier) => {
|
||||
const totalPanier = pipe(Number(panier.totals.total_price) / 100, String, (v) => `${v}€`);
|
||||
ELEMENTS.BOUTON_CODE_PROMO.textContent = "Apply";
|
||||
ELEMENTS.CHAMP_CODE_PROMO.toggleAttribute(ATTRIBUT_DESACTIVE);
|
||||
ELEMENTS.CHAMP_CODE_PROMO.value = "";
|
||||
ELEMENTS.ENSEMBLE_CODE_PROMO.toggleAttribute(ATTRIBUT_CODE_PROMO_PRESENT);
|
||||
ELEMENTS.TOTAL_PANIER.textContent = totalPanier;
|
||||
ELEMENTS.TOTAL_REDUCTION_LIGNE.toggleAttribute(ATTRIBUT_HIDDEN);
|
||||
ELEMENTS.TOTAL_REDUCTION_VALEUR.textContent = "-0€";
|
||||
}).ifLeft(
|
||||
(erreur) => z(erreur).with(N.instanceOf(ValiError), (e) => console.error("retour ajout code promo", e.issues)).with(N.instanceOf(ServerError), (e) => console.error("retour ajout code promo", e)).with(N.instanceOf(TypeError), (e) => console.error("retour ajout code promo", e)).exhaustive()
|
||||
).run()
|
||||
).with(N._, identity)
|
||||
);
|
||||
const recupereValeurCodePromo = () => Maybe.fromFalsy(ELEMENTS.CHAMP_CODE_PROMO.value.trim()).extractNullable();
|
||||
const recuperePresenceCodePromo = () => ELEMENTS.ENSEMBLE_CODE_PROMO.hasAttribute(ATTRIBUT_CODE_PROMO_PRESENT);
|
||||
ELEMENTS.ENSEMBLE_CODE_PROMO.addEventListener("click", (evenement) => z({
|
||||
cible: evenement.target,
|
||||
codePromoPresent: recuperePresenceCodePromo(),
|
||||
valeurCodePromo: recupereValeurCodePromo()
|
||||
}).with(
|
||||
{
|
||||
cible: N.when(
|
||||
(cible) => correspondCibleSelecteur(cible, SELECTEUR_BOUTON_CODE_PROMO)
|
||||
),
|
||||
codePromoPresent: false,
|
||||
valeurCodePromo: N.string
|
||||
},
|
||||
({ valeurCodePromo }) => void EitherAsync.liftEither(eitherParse({ code: valeurCodePromo }, WCStoreCartApplyCouponArgsSchema)).ifRight(() => {
|
||||
ELEMENTS.BOUTON_CODE_PROMO.setAttribute(ATTRIBUT_DESACTIVE, "");
|
||||
ELEMENTS.BOUTON_CODE_PROMO.setAttribute(ATTRIBUT_CHARGEMENT, "");
|
||||
ELEMENTS.MESSAGE_CODE_PROMO.textContent = "";
|
||||
const animation = {
|
||||
callback: () => {
|
||||
if (!ELEMENTS.BOUTON_CODE_PROMO.hasAttribute(ATTRIBUT_CHARGEMENT)) {
|
||||
clearInterval(animation.interval);
|
||||
return;
|
||||
}
|
||||
ELEMENTS.BOUTON_CODE_PROMO.textContent = animation.etapes.at(animation.index) ?? "Loading...";
|
||||
animation.index = animation.index + 1 > animation.etapes.length - 1 ? 0 : animation.index + 1;
|
||||
},
|
||||
etapes: [
|
||||
"Loading",
|
||||
"Loading.",
|
||||
"Loading..",
|
||||
"Loading..."
|
||||
],
|
||||
index: 0,
|
||||
interval: 0
|
||||
};
|
||||
animation.callback();
|
||||
animation.interval = setInterval(animation.callback, 500);
|
||||
}).map(
|
||||
(args) => postBackend({
|
||||
corps: JSON.stringify(args),
|
||||
nonce: ETATS_PAGE.nonce,
|
||||
route: ROUTE_API_APPLIQUE_COUPON
|
||||
})
|
||||
).chain(
|
||||
(reponse) => EitherAsync(async ({ throwE }) => {
|
||||
if (estReponse500(reponse)) throwE(new ServerError("500 Server Error"));
|
||||
const reponseSimplifiee = {
|
||||
body: await reponse.json(),
|
||||
status: reponse.status
|
||||
};
|
||||
return z(reponseSimplifiee).with({
|
||||
body: N.when(() => reponseEstCodeErreurWC(reponseSimplifiee, ERREUR_CODE_PROMO_INVALIDE)),
|
||||
status: 400
|
||||
}, () => throwE(new ErreurCodePromoInvalide(recupereValeurCodePromo() ?? ""))).with({ status: 200 }, () => reponseSimplifiee.body).run();
|
||||
})
|
||||
).chain((corpsReponse) => EitherAsync.liftEither(eitherParse(corpsReponse, WCStoreCartSchema))).ifRight((panier) => {
|
||||
const totalReduction = pipe(Number(panier.totals.total_discount) / 100, String, (v) => `-${v}€`);
|
||||
const totalPanier = pipe(Number(panier.totals.total_price) / 100, String, (v) => `${v}€`);
|
||||
ELEMENTS.ENSEMBLE_CODE_PROMO.toggleAttribute(ATTRIBUT_CODE_PROMO_PRESENT);
|
||||
ELEMENTS.CHAMP_CODE_PROMO.toggleAttribute(ATTRIBUT_DESACTIVE);
|
||||
ELEMENTS.CHAMP_CODE_PROMO.value = panier.coupons[0]?.code ?? "";
|
||||
ELEMENTS.BOUTON_CODE_PROMO.textContent = "Remove";
|
||||
ELEMENTS.TOTAL_PANIER.textContent = totalPanier;
|
||||
ELEMENTS.TOTAL_REDUCTION_LIGNE.toggleAttribute(ATTRIBUT_HIDDEN);
|
||||
ELEMENTS.TOTAL_REDUCTION_VALEUR.textContent = totalReduction;
|
||||
}).ifLeft((erreur) => {
|
||||
ELEMENTS.BOUTON_CODE_PROMO.textContent = "Apply";
|
||||
z(erreur).with(N.instanceOf(ValiError), (e) => console.error("ValiError", e.issues)).with(N.instanceOf(ErreurCodePromoInvalide), (e) => {
|
||||
ELEMENTS.MESSAGE_CODE_PROMO.textContent = "This promo code does not exist.";
|
||||
console.error(e);
|
||||
}).with(N.instanceOf(ServerError), (e) => console.error(e)).with(N.instanceOf(TypeError), (e) => console.error(e)).exhaustive();
|
||||
}).finally(() => {
|
||||
ELEMENTS.BOUTON_CODE_PROMO.removeAttribute(ATTRIBUT_CHARGEMENT);
|
||||
ELEMENTS.BOUTON_CODE_PROMO.removeAttribute(ATTRIBUT_DESACTIVE);
|
||||
}).run()
|
||||
).with(
|
||||
{
|
||||
cible: N.when((cible) => correspondCibleSelecteur(cible, SELECTEUR_BOUTON_CODE_PROMO)),
|
||||
codePromoPresent: true,
|
||||
valeurCodePromo: N.string
|
||||
},
|
||||
({ valeurCodePromo }) => void EitherAsync.liftEither(eitherParse({ code: valeurCodePromo }, WCStoreCartRemoveCouponArgsSchema)).ifRight(() => {
|
||||
ELEMENTS.BOUTON_CODE_PROMO.setAttribute(ATTRIBUT_DESACTIVE, "");
|
||||
ELEMENTS.BOUTON_CODE_PROMO.setAttribute(ATTRIBUT_CHARGEMENT, "");
|
||||
const animation = {
|
||||
callback: () => {
|
||||
if (!ELEMENTS.BOUTON_CODE_PROMO.hasAttribute(ATTRIBUT_CHARGEMENT)) {
|
||||
clearInterval(animation.interval);
|
||||
return;
|
||||
}
|
||||
ELEMENTS.BOUTON_CODE_PROMO.textContent = animation.etapes.at(animation.index) ?? "Loading...";
|
||||
animation.index = animation.index + 1 > animation.etapes.length - 1 ? 0 : animation.index + 1;
|
||||
},
|
||||
etapes: [
|
||||
"Loading",
|
||||
"Loading.",
|
||||
"Loading..",
|
||||
"Loading..."
|
||||
],
|
||||
index: 0,
|
||||
interval: 0
|
||||
};
|
||||
animation.callback();
|
||||
animation.interval = setInterval(animation.callback, 500);
|
||||
}).map(
|
||||
(args) => postBackend({
|
||||
corps: JSON.stringify(args),
|
||||
nonce: ETATS_PAGE.nonce,
|
||||
route: ROUTE_API_RETIRE_COUPON
|
||||
})
|
||||
).chain(
|
||||
(reponse) => EitherAsync(async ({ throwE }) => {
|
||||
if (estReponse500(reponse)) throwE(new ServerError("500 server Error"));
|
||||
return await reponse.json();
|
||||
})
|
||||
).chain((corpsReponse) => EitherAsync.liftEither(eitherParse(corpsReponse, WCStoreCartSchema))).ifRight((panier) => {
|
||||
const totalPanier = pipe(Number(panier.totals.total_price) / 100, String, (v) => `${v}€`);
|
||||
ELEMENTS.ENSEMBLE_CODE_PROMO.toggleAttribute(ATTRIBUT_CODE_PROMO_PRESENT);
|
||||
ELEMENTS.ENSEMBLE_CODE_PROMO.reset();
|
||||
ELEMENTS.CHAMP_CODE_PROMO.toggleAttribute(ATTRIBUT_DESACTIVE);
|
||||
ELEMENTS.CHAMP_CODE_PROMO.textContent = "";
|
||||
ELEMENTS.BOUTON_CODE_PROMO.textContent = "Apply";
|
||||
ELEMENTS.TOTAL_PANIER.textContent = totalPanier;
|
||||
ELEMENTS.TOTAL_REDUCTION_LIGNE.toggleAttribute(ATTRIBUT_HIDDEN);
|
||||
ELEMENTS.TOTAL_REDUCTION_VALEUR.textContent = "-0€";
|
||||
}).ifLeft(
|
||||
(erreur) => z(erreur).with(N.instanceOf(ValiError), (e) => console.error("retour ajout code promo", e.issues)).with(N.instanceOf(ServerError), (e) => console.error("retour ajout code promo", e)).with(N.instanceOf(TypeError), (e) => console.error("retour ajout code promo", e)).exhaustive()
|
||||
).finally(() => {
|
||||
ELEMENTS.BOUTON_CODE_PROMO.removeAttribute(ATTRIBUT_CHARGEMENT);
|
||||
ELEMENTS.BOUTON_CODE_PROMO.removeAttribute(ATTRIBUT_DESACTIVE);
|
||||
}).run()
|
||||
).with(N._, identity));
|
||||
};
|
||||
export {
|
||||
initialiseElementsCodePromo as i
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -1,10 +1,10 @@
|
|||
import { z } from "./index.CeK6pfoJ.js";
|
||||
import { p as parse, V as ValiError } from "./index.DKC_Jv5v.js";
|
||||
import { p as parse, V as ValiError } from "./index.DxUTT09Y.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 SELECTEUR_TOTAL_REDUCTION, w as SELECTEUR_TOTAL_REDUCTION_VALEUR, x as SELECTEUR_INSTRUCTIONS_CLIENT, y as SELECTEUR_ENSEMBLE_CODE_PROMO, z as SELECTEUR_CHAMP_CODE_PROMO, B as SELECTEUR_BOUTON_CODE_PROMO, C as ATTRIBUT_CLE_PANIER, D as SELECTEUR_BOUTON_SOUSTRACTION_QUANTITE, E as SELECTEUR_CHAMP_QUANTITE_LIGNE_PANIER, F as SELECTEUR_BOUTON_ADDITION_QUANTITE, G as SELECTEUR_BOUTON_SUPPRESSION_PANIER, A as ATTRIBUT_CONTIENT_ARTICLES, H as SELECTEUR_PRIX_LIGNE_PANIER, k as ATTRIBUT_HIDDEN, I 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 SELECTEUR_INSTRUCTIONS_CLIENT, w as ATTRIBUT_CLE_PANIER, x as SELECTEUR_BOUTON_SOUSTRACTION_QUANTITE, y as SELECTEUR_CHAMP_QUANTITE_LIGNE_PANIER, z as SELECTEUR_BOUTON_ADDITION_QUANTITE, B as SELECTEUR_BOUTON_SUPPRESSION_PANIER, A as ATTRIBUT_CONTIENT_ARTICLES, C as SELECTEUR_PRIX_LIGNE_PANIER, k as ATTRIBUT_HIDDEN, D as ATTRIBUT_DESACTIVE } 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 { l as leveServerError, r as reporteErreur, a as leveErreur } from "./erreurs.js";
|
||||
import { l as leveServerError, r as reporteErreur, a as leveErreur } from "./erreurs2.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";
|
||||
import { p as postBackend, t as traiteReponseBackendWCSelonCodesHTTP } from "./reseau.js";
|
||||
|
|
@ -21,12 +21,14 @@ import { p as pipe } from "./pipe.XPB0wEfw.js";
|
|||
import { l } from "./index-0eef19ec.DoJSf22Z.js";
|
||||
import { M as Maybe, E as Either } from "./Either.wHNxn7Os.js";
|
||||
import "./exports.3IcOsN8u.js";
|
||||
import "./erreurs3.js";
|
||||
import "./messages2.js";
|
||||
import "./erreurs2.js";
|
||||
import "./adresses.js";
|
||||
import "./cart2.js";
|
||||
import "./cart-coupons.js";
|
||||
import "./orders3.js";
|
||||
import "./erreurs.js";
|
||||
import "./codes-promo.js";
|
||||
import "./cart-apply-coupon.js";
|
||||
import "./cart-remove-coupon.js";
|
||||
import "./MaybeAsync.AE1jnxuc.js";
|
||||
|
|
@ -51,10 +53,6 @@ const SOUS_TOTAL_LIVRAISON_PRESTATAIRE = pipe(
|
|||
recupereElementDocumentEither(SELECTEUR_SOUS_TOTAL_LIVRAISON_PRESTATAIRE),
|
||||
recupereElementOuLeve
|
||||
);
|
||||
recupereElementDansDocumentOuLeve(SELECTEUR_TOTAL_REDUCTION);
|
||||
recupereElementDansDocumentOuLeve(
|
||||
SELECTEUR_TOTAL_REDUCTION_VALEUR
|
||||
);
|
||||
const INSTRUCTIONS_CLIENT = recupereElementDansDocumentOuLeve(
|
||||
SELECTEUR_INSTRUCTIONS_CLIENT
|
||||
);
|
||||
|
|
@ -66,15 +64,6 @@ const BOUTON_SEPARATION_ADRESSES = pipe(
|
|||
recupereElementDocumentEither(SELECTEUR_BOUTON_SEPARATION_ADRESSES),
|
||||
recupereElementOuLeve
|
||||
);
|
||||
recupereElementDansDocumentOuLeve(
|
||||
SELECTEUR_ENSEMBLE_CODE_PROMO
|
||||
);
|
||||
recupereElementDansDocumentOuLeve(
|
||||
SELECTEUR_CHAMP_CODE_PROMO
|
||||
);
|
||||
recupereElementDansDocumentOuLeve(
|
||||
SELECTEUR_BOUTON_CODE_PROMO
|
||||
);
|
||||
const FORMULAIRE_PANIER = pipe(
|
||||
recupereElementDocumentEither(SELECTEUR_FORMULAIRE_PANIER),
|
||||
recupereElementOuLeve
|
||||
|
|
@ -149,8 +138,8 @@ const initialiseMajEntreesPanier = () => {
|
|||
emetMessageMajBoutonPanier({ quantiteProduits: panier.items_count });
|
||||
emetMessageMajContenuPanier({
|
||||
produits: panier.items,
|
||||
sousTotalPanier: Number(panier.totals.total_price) / 100,
|
||||
totalPanier: Number(panier.totals.total_items) / 100
|
||||
sousTotalPanier: Number(panier.totals.total_items) / 100,
|
||||
totalPanier: Number(panier.totals.total_price) / 100
|
||||
});
|
||||
entree.remove();
|
||||
})
|
||||
|
|
@ -189,8 +178,8 @@ const initialiseMajEntreesPanier = () => {
|
|||
emetMessageMajBoutonPanier({ quantiteProduits: panier.items_count });
|
||||
emetMessageMajContenuPanier({
|
||||
produits: panier.items,
|
||||
sousTotalPanier: Number(panier.totals.total_price) / 100,
|
||||
totalPanier: Number(panier.totals.total_items) / 100
|
||||
sousTotalPanier: Number(panier.totals.total_items) / 100,
|
||||
totalPanier: Number(panier.totals.total_price) / 100
|
||||
});
|
||||
})
|
||||
);
|
||||
|
|
@ -229,8 +218,8 @@ const initialiseMajEntreesPanier = () => {
|
|||
emetMessageMajBoutonPanier({ quantiteProduits: panier.items_count });
|
||||
emetMessageMajContenuPanier({
|
||||
produits: panier.items,
|
||||
sousTotalPanier: Number(panier.totals.total_price) / 100,
|
||||
totalPanier: Number(panier.totals.total_items) / 100
|
||||
sousTotalPanier: Number(panier.totals.total_items) / 100,
|
||||
totalPanier: Number(panier.totals.total_price) / 100
|
||||
});
|
||||
})
|
||||
);
|
||||
|
|
@ -260,20 +249,18 @@ const initialiseMajContenuPanier = () => {
|
|||
valideMessageMajContenuPanier(message).chain(propEither("donnees")).ifRight((donnees) => {
|
||||
donnees.produits.forEach((ligne) => {
|
||||
ENTREES_PANIER_EITHER.ifRight((entrees) => {
|
||||
Maybe.fromNullable(entrees.find((entree) => entree.getAttribute(ATTRIBUT_CLE_PANIER) === ligne.key)).ifJust(
|
||||
(entree) => {
|
||||
const recupereElementDansEntree = recupereElementDansEntreePanierOuLeve(entree);
|
||||
const prixLigne = recupereElementDansEntree(SELECTEUR_PRIX_LIGNE_PANIER);
|
||||
const champQuantite = recupereElementDansEntree(
|
||||
SELECTEUR_CHAMP_QUANTITE_LIGNE_PANIER
|
||||
);
|
||||
entree.setAttribute("data-quantite", String(ligne.quantity));
|
||||
prixLigne.textContent = `${String(Number(ligne.totals.line_subtotal) / 100)}€`;
|
||||
champQuantite.setAttribute("value", String(ligne.quantity));
|
||||
majEtatsActivationBoutons(entrees);
|
||||
}
|
||||
);
|
||||
SOUS_TOTAL_PRODUITS.textContent = `${String(donnees.totalPanier)}€`;
|
||||
Maybe.fromNullable(entrees.find((entree) => entree.getAttribute(ATTRIBUT_CLE_PANIER) === ligne.key)).ifJust((entree) => {
|
||||
const recupereElementDansEntree = recupereElementDansEntreePanierOuLeve(entree);
|
||||
const prixLigne = recupereElementDansEntree(SELECTEUR_PRIX_LIGNE_PANIER);
|
||||
const champQuantite = recupereElementDansEntree(
|
||||
SELECTEUR_CHAMP_QUANTITE_LIGNE_PANIER
|
||||
);
|
||||
entree.setAttribute("data-quantite", String(ligne.quantity));
|
||||
prixLigne.textContent = `${String(Number(ligne.totals.line_subtotal) / 100)}€`;
|
||||
champQuantite.setAttribute("value", String(ligne.quantity));
|
||||
majEtatsActivationBoutons(entrees);
|
||||
});
|
||||
SOUS_TOTAL_PRODUITS.textContent = `${String(donnees.sousTotalPanier)}€`;
|
||||
TOTAL_PANIER.textContent = `${String(donnees.totalPanier)}€`;
|
||||
});
|
||||
});
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -1,23 +1,23 @@
|
|||
import { z } from "./index.CeK6pfoJ.js";
|
||||
import { g as ROUTE_API_AJOUTE_ARTICLE_PANIER, E as ENTETE_WC_NONCE } from "./api.js";
|
||||
import { K as SELECTEUR_BOUTON_AJOUT_PANIER, L as SELECTEUR_SELECTEUR_QUANTITE, M as SELECTEUR_LIENS_ONGLETS, N as SELECTEUR_SECTIONS_CONTENUS, O as SELECTEUR_PRIX_PRODUIT, P as SELECTEUR_CONTENEUR_FLECHES_DEFILEMENT, Q as SELECTEUR_FLECHE_DEFILEMENT_GAUCHE, R as SELECTEUR_FLECHE_DEFILEMENT_DROITE, T as SELECTEUR_PHOTOS_PRODUIT, U as SELECTEUR_IMAGE_COLONNE_GAUCHE, V as SELECTEUR_IMAGES_COLONNE_DROITE, W as ATTRIBUT_INDEX_IMAGE_ACTIVE, X as ATTRIBUT_ARIA_SELECTED, k as ATTRIBUT_HIDDEN, I as ATTRIBUT_DESACTIVE, Y as ATTRIBUT_PRIX } from "./dom.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, D 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 "./erreurs.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";
|
||||
import { t as traiteReponseBackendWCSelonCodesHTTP } from "./reseau.js";
|
||||
import { W as WCStoreCartSchema } from "./cart.js";
|
||||
import { W as WCStoreCartAddItemArgsSchema } from "./cart-add-item.js";
|
||||
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.DoJSf22Z.js";
|
||||
import { M as Maybe } from "./Either.wHNxn7Os.js";
|
||||
import "./exports.3IcOsN8u.js";
|
||||
import "./index.DKC_Jv5v.js";
|
||||
import "./index.DxUTT09Y.js";
|
||||
import "./messages3.js";
|
||||
import "./erreurs3.js";
|
||||
import "./messages2.js";
|
||||
import "./erreurs2.js";
|
||||
import "./cart2.js";
|
||||
import "./adresses.js";
|
||||
import "./cart-coupons.js";
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -1,5 +1,5 @@
|
|||
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, c as recupereElementAvecSelecteur, r as recupereElementOuLeve, f as recupereElementsOuLeve } from "./dom2.js";
|
||||
import { C as CleNonTrouveError } from "./erreurs.js";
|
||||
import { C as CleNonTrouveError } from "./erreurs2.js";
|
||||
import { p as pipe } from "./pipe.XPB0wEfw.js";
|
||||
import { M as Maybe } from "./Either.wHNxn7Os.js";
|
||||
import "./exports.3IcOsN8u.js";
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
import { p as parse } from "./index.DKC_Jv5v.js";
|
||||
import { p as parse } from "./index.DxUTT09Y.js";
|
||||
import { E as Either } from "./Either.wHNxn7Os.js";
|
||||
const eitherParse = (valeur, schema) => Either.encase(() => parse(schema, valeur));
|
||||
export {
|
||||
|
|
|
|||
|
|
@ -145,19 +145,29 @@
|
|||
|
||||
&__code-promo {
|
||||
display: flex;
|
||||
flex-flow: row nowrap;
|
||||
flex-flow: row wrap;
|
||||
width: fit-content;
|
||||
place-content: center;
|
||||
margin: auto;
|
||||
|
||||
input {
|
||||
width: 20rem;
|
||||
}
|
||||
|
||||
/*
|
||||
* 1. Longueur minimale pour le Bouton n'ait pas à changer de taille quel que soit son texte
|
||||
*/
|
||||
button {
|
||||
padding: var(--espace-xs) var(--espace-xl);
|
||||
text-transform: lowercase;
|
||||
border: 1px solid var(--couleur-noir);
|
||||
border-left: initial;
|
||||
min-width: 9rem; /* 1 */
|
||||
}
|
||||
|
||||
&__message {
|
||||
margin-top: var(--espace-m);
|
||||
flex-basis: 100%;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,18 +4,19 @@ export const ATTRIBUT_ARIA_HIDDEN = "aria-hidden";
|
|||
export const ATTRIBUT_ARIA_SELECTED = "aria-selected";
|
||||
export const ATTRIBUT_CACHE = "data-cache";
|
||||
export const ATTRIBUT_CLE_PANIER = "data-cle-panier";
|
||||
export const ATTRIBUT_CODE_PROMO_PRESENT = "data-code-promo-present";
|
||||
export const ATTRIBUT_CONTIENT_ARTICLES = "data-contient-articles";
|
||||
export const ATTRIBUT_DESACTIVE = "disabled";
|
||||
export const ATTRIBUT_ENSEMBLE_EPINGLE_BOITE_ACTIF = "data-ensemble-epingle-boite-actif";
|
||||
export const ATTRIBUT_HIDDEN = "hidden";
|
||||
export const ATTRIBUT_INDEX = "data-index";
|
||||
export const ATTRIBUT_MENU_MOBILE_ACTIVE = "data-menu-mobile-active";
|
||||
export const ATTRIBUT_PAGE = "data-page";
|
||||
export const ATTRIBUT_ID_CATEGORIE_PRODUITS = "data-id-categorie-produits";
|
||||
export const ATTRIBUT_ID_ENSEMBLE_EPINGLE_BOITE = "data-id-ensemble-epingle-boite";
|
||||
export const ATTRIBUT_ENSEMBLE_EPINGLE_BOITE_ACTIF = "data-ensemble-epingle-boite-actif";
|
||||
export const ATTRIBUT_INDEX = "data-index";
|
||||
export const ATTRIBUT_INDEX_IMAGE_ACTIVE = "data-index-image-active";
|
||||
export const ATTRIBUT_MENU_MOBILE_ACTIVE = "data-menu-mobile-active";
|
||||
export const ATTRIBUT_PAGE = "data-page";
|
||||
export const ATTRIBUT_PRIX = "data-prix";
|
||||
export const ATTRIBUT_CODE_PROMO_PRESENT = "data-code-promo-present";
|
||||
export const ATTRIBUT_CHARGEMENT = "data-chargement";
|
||||
|
||||
// En-tête
|
||||
export const SELECTEUR_BOUTON_MENU_MOBILE = "#bouton-menu-mobile";
|
||||
|
|
@ -55,6 +56,7 @@ export const SELECTEUR_INSTRUCTIONS_CLIENT = "#panneau-panier #instructions-clie
|
|||
export const SELECTEUR_ENSEMBLE_CODE_PROMO = "#panneau-panier #ensemble-code-promo";
|
||||
export const SELECTEUR_CHAMP_CODE_PROMO = "#panneau-panier #champ-code-promo";
|
||||
export const SELECTEUR_BOUTON_CODE_PROMO = "#panneau-panier #bouton-code-promo";
|
||||
export const SELECTEUR_MESSAGE_CODE_PROMO = "#panneau-panier .panneau__instructions-code-promo__code-promo__message";
|
||||
|
||||
// Accueil
|
||||
export const SELECTEUR_CONTENEUR_STORYTELLING = ".storytelling";
|
||||
|
|
|
|||
|
|
@ -0,0 +1 @@
|
|||
export const ERREUR_CODE_PROMO_INVALIDE = "woocommerce_rest_cart_coupon_error";
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
/** Types d'Erreurs liés aux codes promos */
|
||||
|
||||
export class ErreurCodePromoInvalide extends Error {
|
||||
constructor(message: string) {
|
||||
super(`Code promo « ${message} » invalide.`);
|
||||
this.name = "ErreurCodePromoInvalide";
|
||||
}
|
||||
}
|
||||
|
|
@ -1,3 +1,4 @@
|
|||
import { pipe } from "@mobily/ts-belt";
|
||||
import { Either } from "purify-ts";
|
||||
import { parse, type ValiError } from "valibot";
|
||||
|
||||
|
|
@ -10,7 +11,15 @@ import type {
|
|||
|
||||
import { NOM_CANAL_BOUTON_PANIER, NOM_CANAL_CONTENU_PANIER, TYPES_MESSAGES } from "../constantes/messages.ts";
|
||||
import { reporteErreur } from "./erreurs.ts";
|
||||
import { WCErrorSchema } from "./schemas/api/erreurs.ts";
|
||||
import { MessageMajBoutonPanierSchema, MessageMajContenuPanierSchema } from "./schemas/messages.ts";
|
||||
import { ReponseSimplifiee } from "./types/reseau";
|
||||
import { eitherParse } from "./validation.ts";
|
||||
|
||||
export const canalPostMessage = (canal: BroadcastChannel, message: any): BroadcastChannel => {
|
||||
canal.postMessage(message);
|
||||
return canal;
|
||||
};
|
||||
|
||||
// Émissions
|
||||
export const emetMessageMajBoutonPanier = (args: MessageMajBoutonPanierDonnees): void => {
|
||||
|
|
@ -37,6 +46,16 @@ export const emetMessageMajContenuPanier = (args: MessageMajContenuPanierDonnees
|
|||
canal.close();
|
||||
};
|
||||
|
||||
/**
|
||||
* Émet un unique message vers un BroadcastChannel (canal) généré sur le moment puis le ferme.
|
||||
*
|
||||
* @param nomCanal Le nom du BroadcastChannel pour lequel le message est émis.
|
||||
* @param message Le message émis.
|
||||
* @return void
|
||||
*/
|
||||
export const emetUniqueMessageCanal = <M>(nomCanal: string, message: M): void =>
|
||||
pipe(new BroadcastChannel(nomCanal), canal => canalPostMessage(canal, message), canal => canal.close());
|
||||
|
||||
// Validations
|
||||
export const valideMessageMajBoutonPanier = (
|
||||
evenementMessage: MessageEvent<unknown>,
|
||||
|
|
@ -55,3 +74,9 @@ export const valideMessageMajContenuPanier = (
|
|||
parse(MessageMajContenuPanierSchema, evenementMessage.data),
|
||||
)
|
||||
.ifLeft(erreur => reporteErreur(erreur));
|
||||
|
||||
// Correspondances
|
||||
export const reponseEstCodeErreurWC = (reponse: ReponseSimplifiee, codeErreurWC: string): boolean =>
|
||||
eitherParse(reponse, WCErrorSchema)
|
||||
.map(v => v.body.code === codeErreurWC)
|
||||
.orDefault(false);
|
||||
|
|
|
|||
4
web/app/themes/haiku-atelier-2024/src/scripts/lib/types/reseau.d.ts
vendored
Normal file
4
web/app/themes/haiku-atelier-2024/src/scripts/lib/types/reseau.d.ts
vendored
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
export interface ReponseSimplifiee {
|
||||
body: unknown;
|
||||
status: number;
|
||||
}
|
||||
|
|
@ -10,22 +10,28 @@ import { ValiError } from "valibot";
|
|||
import type { WCStoreCart } from "./lib/types/api/cart";
|
||||
import type { WCStoreCartApplyCouponArgs } from "./lib/types/api/cart-apply-coupon";
|
||||
import type { WCStoreCartRemoveCouponArgs } from "./lib/types/api/cart-remove-coupon";
|
||||
import type { ReponseSimplifiee } from "./lib/types/reseau";
|
||||
|
||||
import { ROUTE_API_APPLIQUE_COUPON, ROUTE_API_RETIRE_COUPON } from "./constantes/api";
|
||||
import {
|
||||
ATTRIBUT_CHARGEMENT,
|
||||
ATTRIBUT_CODE_PROMO_PRESENT,
|
||||
ATTRIBUT_DESACTIVE,
|
||||
ATTRIBUT_HIDDEN,
|
||||
SELECTEUR_BOUTON_CODE_PROMO,
|
||||
SELECTEUR_CHAMP_CODE_PROMO,
|
||||
SELECTEUR_ENSEMBLE_CODE_PROMO,
|
||||
SELECTEUR_MESSAGE_CODE_PROMO,
|
||||
SELECTEUR_TOTAL_PANIER,
|
||||
SELECTEUR_TOTAL_REDUCTION,
|
||||
SELECTEUR_TOTAL_REDUCTION_VALEUR,
|
||||
} from "./constantes/dom";
|
||||
import { ERREUR_CODE_PROMO_INVALIDE } from "./constantes/erreurs";
|
||||
import { correspondCibleSelecteur } from "./lib/dom";
|
||||
import { ServerError } from "./lib/erreurs";
|
||||
import { ErreurCodePromoInvalide } from "./lib/erreurs/codes-promo";
|
||||
import { estReponse500 } from "./lib/gardes";
|
||||
import { reponseEstCodeErreurWC } from "./lib/messages";
|
||||
import { postBackend } from "./lib/reseau";
|
||||
import { WCStoreCartSchema } from "./lib/schemas/api/cart";
|
||||
import { WCStoreCartApplyCouponArgsSchema } from "./lib/schemas/api/cart-apply-coupon";
|
||||
|
|
@ -47,7 +53,8 @@ const ETATS_PAGE: EtatsPage = _etats;
|
|||
const ELEMENTS = {
|
||||
BOUTON_CODE_PROMO: recupereElementDansDocumentOuLeve<HTMLButtonElement>(SELECTEUR_BOUTON_CODE_PROMO),
|
||||
CHAMP_CODE_PROMO: recupereElementDansDocumentOuLeve<HTMLInputElement>(SELECTEUR_CHAMP_CODE_PROMO),
|
||||
ENSEMBLE_CODE_PROMO: recupereElementDansDocumentOuLeve<HTMLDivElement>(SELECTEUR_ENSEMBLE_CODE_PROMO),
|
||||
ENSEMBLE_CODE_PROMO: recupereElementDansDocumentOuLeve<HTMLFormElement>(SELECTEUR_ENSEMBLE_CODE_PROMO),
|
||||
MESSAGE_CODE_PROMO: recupereElementDansDocumentOuLeve<HTMLParagraphElement>(SELECTEUR_MESSAGE_CODE_PROMO),
|
||||
TOTAL_PANIER: recupereElementDansDocumentOuLeve<HTMLParagraphElement>(SELECTEUR_TOTAL_PANIER),
|
||||
TOTAL_REDUCTION_LIGNE: recupereElementDansDocumentOuLeve<HTMLDivElement>(SELECTEUR_TOTAL_REDUCTION),
|
||||
TOTAL_REDUCTION_VALEUR: recupereElementDansDocumentOuLeve<HTMLSpanElement>(SELECTEUR_TOTAL_REDUCTION_VALEUR),
|
||||
|
|
@ -55,110 +62,200 @@ const ELEMENTS = {
|
|||
|
||||
export const initialiseElementsCodePromo = (): void => {
|
||||
// Récupère le code promo s'il existe
|
||||
const recupereCodePromoValeur = (): null | string =>
|
||||
const recupereValeurCodePromo = (): null | string =>
|
||||
Maybe.fromFalsy(ELEMENTS.CHAMP_CODE_PROMO.value.trim()).extractNullable();
|
||||
const recupereCodePromoPresent = (): boolean =>
|
||||
const recuperePresenceCodePromo = (): boolean =>
|
||||
ELEMENTS.ENSEMBLE_CODE_PROMO.hasAttribute(ATTRIBUT_CODE_PROMO_PRESENT);
|
||||
|
||||
// Créé la délégation d'Événements
|
||||
ELEMENTS.ENSEMBLE_CODE_PROMO.addEventListener(
|
||||
"click",
|
||||
(evenement: Event) =>
|
||||
match({
|
||||
cible: evenement.target,
|
||||
codePromoPresent: recupereCodePromoPresent(),
|
||||
codePromoValeur: recupereCodePromoValeur(),
|
||||
})
|
||||
// Un code promo doit être ajouté
|
||||
.with(
|
||||
{
|
||||
cible: P.when(cible => correspondCibleSelecteur<HTMLButtonElement>(cible, SELECTEUR_BOUTON_CODE_PROMO)),
|
||||
codePromoPresent: false,
|
||||
codePromoValeur: P.string,
|
||||
},
|
||||
({ codePromoValeur }) =>
|
||||
void EitherAsync
|
||||
.liftEither(eitherParse({ code: codePromoValeur }, WCStoreCartApplyCouponArgsSchema))
|
||||
.map((args: WCStoreCartApplyCouponArgs) =>
|
||||
postBackend({
|
||||
corps: JSON.stringify(args),
|
||||
nonce: ETATS_PAGE.nonce,
|
||||
route: ROUTE_API_APPLIQUE_COUPON,
|
||||
})
|
||||
)
|
||||
.chain((reponse: Response) =>
|
||||
EitherAsync<ServerError, unknown>(async ({ throwE }) => {
|
||||
if (estReponse500(reponse)) throwE(new ServerError("500 Server Error"));
|
||||
return await reponse.json();
|
||||
})
|
||||
)
|
||||
.chain((corpsReponse: unknown) => EitherAsync.liftEither(eitherParse(corpsReponse, WCStoreCartSchema)))
|
||||
.ifRight((panier: WCStoreCart) => {
|
||||
const totalReduction = pipe(Number(panier.totals.total_discount) / 100, String, v => `-${v}€`);
|
||||
const totalPanier = pipe(Number(panier.totals.total_price) / 100, String, v => `${v}€`);
|
||||
ELEMENTS.ENSEMBLE_CODE_PROMO.addEventListener("click", (evenement: Event) =>
|
||||
match({
|
||||
cible: evenement.target,
|
||||
codePromoPresent: recuperePresenceCodePromo(),
|
||||
valeurCodePromo: recupereValeurCodePromo(),
|
||||
})
|
||||
// Un code promo doit être ajouté
|
||||
.with(
|
||||
{
|
||||
cible: P.when((cible: EventTarget | null) =>
|
||||
correspondCibleSelecteur<HTMLButtonElement>(cible, SELECTEUR_BOUTON_CODE_PROMO)
|
||||
),
|
||||
codePromoPresent: false,
|
||||
valeurCodePromo: P.string,
|
||||
},
|
||||
({ valeurCodePromo }) =>
|
||||
void EitherAsync
|
||||
.liftEither(eitherParse({ code: valeurCodePromo }, WCStoreCartApplyCouponArgsSchema))
|
||||
.ifRight(() => {
|
||||
// Désactive le Bouton pour empêcher des requêtes concurrentes
|
||||
ELEMENTS.BOUTON_CODE_PROMO.setAttribute(ATTRIBUT_DESACTIVE, "");
|
||||
ELEMENTS.BOUTON_CODE_PROMO.setAttribute(ATTRIBUT_CHARGEMENT, "");
|
||||
ELEMENTS.MESSAGE_CODE_PROMO.textContent = "";
|
||||
|
||||
ELEMENTS.BOUTON_CODE_PROMO.textContent = "Remove";
|
||||
ELEMENTS.CHAMP_CODE_PROMO.toggleAttribute(ATTRIBUT_DESACTIVE);
|
||||
ELEMENTS.CHAMP_CODE_PROMO.value = panier.coupons[0]?.code ?? "";
|
||||
ELEMENTS.ENSEMBLE_CODE_PROMO.toggleAttribute(ATTRIBUT_CODE_PROMO_PRESENT);
|
||||
ELEMENTS.TOTAL_PANIER.textContent = totalPanier;
|
||||
ELEMENTS.TOTAL_REDUCTION_LIGNE.toggleAttribute(ATTRIBUT_HIDDEN);
|
||||
ELEMENTS.TOTAL_REDUCTION_VALEUR.textContent = totalReduction;
|
||||
})
|
||||
.ifLeft(erreur =>
|
||||
match(erreur)
|
||||
.with(P.instanceOf(ValiError), e => console.error("retour ajout code promo", e.issues))
|
||||
.with(P.instanceOf(ServerError), e => console.error("retour ajout code promo", e))
|
||||
.with(P.instanceOf(TypeError), e => console.error("retour ajout code promo", e))
|
||||
.exhaustive()
|
||||
)
|
||||
.run(),
|
||||
)
|
||||
// Un code promo doit être retiré
|
||||
.with(
|
||||
{
|
||||
cible: P.when(cible => correspondCibleSelecteur<HTMLButtonElement>(cible, SELECTEUR_BOUTON_CODE_PROMO)),
|
||||
codePromoPresent: true,
|
||||
codePromoValeur: P.string,
|
||||
},
|
||||
({ codePromoValeur }) =>
|
||||
void EitherAsync
|
||||
.liftEither(eitherParse({ code: codePromoValeur }, WCStoreCartRemoveCouponArgsSchema))
|
||||
.map((args: WCStoreCartRemoveCouponArgs) =>
|
||||
postBackend({
|
||||
corps: JSON.stringify(args),
|
||||
nonce: ETATS_PAGE.nonce,
|
||||
route: ROUTE_API_RETIRE_COUPON,
|
||||
})
|
||||
)
|
||||
.chain((reponse: Response) =>
|
||||
EitherAsync<ServerError, unknown>(async ({ throwE }) => {
|
||||
if (estReponse500(reponse)) throwE(new ServerError("500 server Error"));
|
||||
return await reponse.json();
|
||||
})
|
||||
)
|
||||
.chain((corpsReponse: unknown) => EitherAsync.liftEither(eitherParse(corpsReponse, WCStoreCartSchema)))
|
||||
.ifRight((panier: WCStoreCart) => {
|
||||
const totalPanier = pipe(Number(panier.totals.total_price) / 100, String, v => `${v}€`);
|
||||
// Lance un cycle d'animation sur le texte de chargement
|
||||
const animation = {
|
||||
callback: () => {
|
||||
if (!ELEMENTS.BOUTON_CODE_PROMO.hasAttribute(ATTRIBUT_CHARGEMENT)) {
|
||||
clearInterval(animation.interval);
|
||||
return;
|
||||
}
|
||||
|
||||
ELEMENTS.BOUTON_CODE_PROMO.textContent = "Apply";
|
||||
ELEMENTS.CHAMP_CODE_PROMO.toggleAttribute(ATTRIBUT_DESACTIVE);
|
||||
ELEMENTS.CHAMP_CODE_PROMO.value = "";
|
||||
ELEMENTS.ENSEMBLE_CODE_PROMO.toggleAttribute(ATTRIBUT_CODE_PROMO_PRESENT);
|
||||
ELEMENTS.TOTAL_PANIER.textContent = totalPanier;
|
||||
ELEMENTS.TOTAL_REDUCTION_LIGNE.toggleAttribute(ATTRIBUT_HIDDEN);
|
||||
ELEMENTS.TOTAL_REDUCTION_VALEUR.textContent = "-0€";
|
||||
ELEMENTS.BOUTON_CODE_PROMO.textContent = animation.etapes.at(animation.index)
|
||||
?? "Loading...";
|
||||
animation.index = animation.index + 1 > animation.etapes.length - 1 ? 0 : animation.index + 1;
|
||||
},
|
||||
etapes: [
|
||||
"Loading",
|
||||
"Loading.",
|
||||
"Loading..",
|
||||
"Loading...",
|
||||
],
|
||||
index: 0,
|
||||
interval: 0,
|
||||
};
|
||||
animation.callback();
|
||||
animation.interval = setInterval(animation.callback, 500);
|
||||
})
|
||||
// Réalise la requête auprès du backend
|
||||
.map((args: WCStoreCartApplyCouponArgs) =>
|
||||
postBackend({
|
||||
corps: JSON.stringify(args),
|
||||
nonce: ETATS_PAGE.nonce,
|
||||
route: ROUTE_API_APPLIQUE_COUPON,
|
||||
})
|
||||
.ifLeft(erreur =>
|
||||
match(erreur)
|
||||
.with(P.instanceOf(ValiError), e => console.error("retour ajout code promo", e.issues))
|
||||
.with(P.instanceOf(ServerError), e => console.error("retour ajout code promo", e))
|
||||
.with(P.instanceOf(TypeError), e => console.error("retour ajout code promo", e))
|
||||
.exhaustive()
|
||||
)
|
||||
.run(),
|
||||
)
|
||||
// Ne rien faire en dehors de ces deux situations
|
||||
.with(P._, identity),
|
||||
);
|
||||
)
|
||||
// Traite les cas d'Erreur
|
||||
.chain((reponse: Response) =>
|
||||
EitherAsync<ErreurCodePromoInvalide | ServerError, unknown>(async ({ throwE }) => {
|
||||
if (estReponse500(reponse)) throwE(new ServerError("500 Server Error"));
|
||||
|
||||
const reponseSimplifiee: ReponseSimplifiee = {
|
||||
body: await reponse.json(),
|
||||
status: reponse.status,
|
||||
};
|
||||
|
||||
return match(reponseSimplifiee)
|
||||
.with({
|
||||
body: P.when(() => reponseEstCodeErreurWC(reponseSimplifiee, ERREUR_CODE_PROMO_INVALIDE)),
|
||||
status: 400,
|
||||
}, () => throwE(new ErreurCodePromoInvalide(recupereValeurCodePromo() ?? "")))
|
||||
.with({ status: 200 }, () => reponseSimplifiee.body)
|
||||
.run();
|
||||
})
|
||||
)
|
||||
// Vérifie le Schéma de la Réponse du backend
|
||||
.chain((corpsReponse: unknown) => EitherAsync.liftEither(eitherParse(corpsReponse, WCStoreCartSchema)))
|
||||
// Déclenche les mises à jour du DOM avec les données du nouveau Panier
|
||||
.ifRight((panier: WCStoreCart) => {
|
||||
const totalReduction = pipe(Number(panier.totals.total_discount) / 100, String, v => `-${v}€`);
|
||||
const totalPanier = pipe(Number(panier.totals.total_price) / 100, String, v => `${v}€`);
|
||||
|
||||
ELEMENTS.ENSEMBLE_CODE_PROMO.toggleAttribute(ATTRIBUT_CODE_PROMO_PRESENT);
|
||||
ELEMENTS.CHAMP_CODE_PROMO.toggleAttribute(ATTRIBUT_DESACTIVE);
|
||||
ELEMENTS.CHAMP_CODE_PROMO.value = panier.coupons[0]?.code ?? "";
|
||||
ELEMENTS.BOUTON_CODE_PROMO.textContent = "Remove";
|
||||
|
||||
ELEMENTS.TOTAL_PANIER.textContent = totalPanier;
|
||||
ELEMENTS.TOTAL_REDUCTION_LIGNE.toggleAttribute(ATTRIBUT_HIDDEN);
|
||||
ELEMENTS.TOTAL_REDUCTION_VALEUR.textContent = totalReduction;
|
||||
})
|
||||
.ifLeft(erreur => {
|
||||
// Rétablis le texte d'origine
|
||||
ELEMENTS.BOUTON_CODE_PROMO.textContent = "Apply";
|
||||
match(erreur)
|
||||
.with(P.instanceOf(ValiError), e => console.error("ValiError", e.issues))
|
||||
.with(P.instanceOf(ErreurCodePromoInvalide), e => {
|
||||
ELEMENTS.MESSAGE_CODE_PROMO.textContent = "This promo code does not exist.";
|
||||
console.error(e);
|
||||
})
|
||||
.with(P.instanceOf(ServerError), e => console.error(e))
|
||||
.with(P.instanceOf(TypeError), e => console.error(e))
|
||||
.exhaustive();
|
||||
})
|
||||
.finally(() => {
|
||||
// Désactive l'animation de chargement et rend le Bouton de nouveau cliquable
|
||||
ELEMENTS.BOUTON_CODE_PROMO.removeAttribute(ATTRIBUT_CHARGEMENT);
|
||||
ELEMENTS.BOUTON_CODE_PROMO.removeAttribute(ATTRIBUT_DESACTIVE);
|
||||
})
|
||||
.run(),
|
||||
)
|
||||
// Un code promo doit être retiré
|
||||
.with(
|
||||
{
|
||||
cible: P.when(cible => correspondCibleSelecteur<HTMLButtonElement>(cible, SELECTEUR_BOUTON_CODE_PROMO)),
|
||||
codePromoPresent: true,
|
||||
valeurCodePromo: P.string,
|
||||
},
|
||||
({ valeurCodePromo }) =>
|
||||
void EitherAsync
|
||||
.liftEither(eitherParse({ code: valeurCodePromo }, WCStoreCartRemoveCouponArgsSchema))
|
||||
.ifRight(() => {
|
||||
ELEMENTS.BOUTON_CODE_PROMO.setAttribute(ATTRIBUT_DESACTIVE, "");
|
||||
ELEMENTS.BOUTON_CODE_PROMO.setAttribute(ATTRIBUT_CHARGEMENT, "");
|
||||
|
||||
const animation = {
|
||||
callback: () => {
|
||||
if (!ELEMENTS.BOUTON_CODE_PROMO.hasAttribute(ATTRIBUT_CHARGEMENT)) {
|
||||
clearInterval(animation.interval);
|
||||
return;
|
||||
}
|
||||
|
||||
ELEMENTS.BOUTON_CODE_PROMO.textContent = animation.etapes.at(animation.index)
|
||||
?? "Loading...";
|
||||
animation.index = animation.index + 1 > animation.etapes.length - 1 ? 0 : animation.index + 1;
|
||||
},
|
||||
etapes: [
|
||||
"Loading",
|
||||
"Loading.",
|
||||
"Loading..",
|
||||
"Loading...",
|
||||
],
|
||||
index: 0,
|
||||
interval: 0,
|
||||
};
|
||||
animation.callback();
|
||||
animation.interval = setInterval(animation.callback, 500);
|
||||
})
|
||||
.map((args: WCStoreCartRemoveCouponArgs) =>
|
||||
postBackend({
|
||||
corps: JSON.stringify(args),
|
||||
nonce: ETATS_PAGE.nonce,
|
||||
route: ROUTE_API_RETIRE_COUPON,
|
||||
})
|
||||
)
|
||||
.chain((reponse: Response) =>
|
||||
EitherAsync<ServerError, unknown>(async ({ throwE }) => {
|
||||
if (estReponse500(reponse)) throwE(new ServerError("500 server Error"));
|
||||
return await reponse.json();
|
||||
})
|
||||
)
|
||||
.chain((corpsReponse: unknown) => EitherAsync.liftEither(eitherParse(corpsReponse, WCStoreCartSchema)))
|
||||
.ifRight((panier: WCStoreCart) => {
|
||||
const totalPanier = pipe(Number(panier.totals.total_price) / 100, String, v => `${v}€`);
|
||||
|
||||
ELEMENTS.ENSEMBLE_CODE_PROMO.toggleAttribute(ATTRIBUT_CODE_PROMO_PRESENT);
|
||||
ELEMENTS.ENSEMBLE_CODE_PROMO.reset();
|
||||
ELEMENTS.CHAMP_CODE_PROMO.toggleAttribute(ATTRIBUT_DESACTIVE);
|
||||
ELEMENTS.CHAMP_CODE_PROMO.textContent = "";
|
||||
ELEMENTS.BOUTON_CODE_PROMO.textContent = "Apply";
|
||||
|
||||
ELEMENTS.TOTAL_PANIER.textContent = totalPanier;
|
||||
ELEMENTS.TOTAL_REDUCTION_LIGNE.toggleAttribute(ATTRIBUT_HIDDEN);
|
||||
ELEMENTS.TOTAL_REDUCTION_VALEUR.textContent = "-0€";
|
||||
})
|
||||
.ifLeft(erreur =>
|
||||
match(erreur)
|
||||
.with(P.instanceOf(ValiError), e => console.error("retour ajout code promo", e.issues))
|
||||
.with(P.instanceOf(ServerError), e => console.error("retour ajout code promo", e))
|
||||
.with(P.instanceOf(TypeError), e => console.error("retour ajout code promo", e))
|
||||
.exhaustive()
|
||||
)
|
||||
.finally(() => {
|
||||
ELEMENTS.BOUTON_CODE_PROMO.removeAttribute(ATTRIBUT_CHARGEMENT);
|
||||
ELEMENTS.BOUTON_CODE_PROMO.removeAttribute(ATTRIBUT_DESACTIVE);
|
||||
})
|
||||
.run(),
|
||||
)
|
||||
// Ne rien faire en dehors de ces deux situations
|
||||
.with(P._, identity));
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,12 +1,10 @@
|
|||
import { D, F, pipe } from "@mobily/ts-belt";
|
||||
import { Either, EitherAsync, Maybe } from "purify-ts";
|
||||
import { match, P } from "ts-pattern";
|
||||
import { Either, Maybe } from "purify-ts";
|
||||
import { match } from "ts-pattern";
|
||||
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 { WCStoreCartApplyCouponArgs } from "./lib/types/api/cart-apply-coupon";
|
||||
import type { WCStoreCartRemoveCouponArgs } from "./lib/types/api/cart-remove-coupon";
|
||||
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";
|
||||
|
|
@ -14,29 +12,23 @@ import type { WCV3Order, WCV3OrdersArgs } from "./lib/types/api/v3/orders.ts";
|
|||
import type { MessageMajBoutonPanierDonnees, MessageMajContenuPanierDonnees } from "./lib/types/messages";
|
||||
|
||||
import {
|
||||
ROUTE_API_APPLIQUE_COUPON,
|
||||
ROUTE_API_MAJ_ARTICLE_PANIER,
|
||||
ROUTE_API_MAJ_CLIENT,
|
||||
ROUTE_API_NOUVELLE_COMMANDES,
|
||||
ROUTE_API_RETIRE_ARTICLE_PANIER,
|
||||
ROUTE_API_RETIRE_COUPON,
|
||||
} from "./constantes/api.ts";
|
||||
import {
|
||||
ATTRIBUT_CLE_PANIER,
|
||||
ATTRIBUT_CODE_PROMO_PRESENT,
|
||||
ATTRIBUT_CONTIENT_ARTICLES,
|
||||
ATTRIBUT_DESACTIVE,
|
||||
ATTRIBUT_HIDDEN,
|
||||
SELECTEUR_BOUTON_ACTIONS_FORMULAIRE,
|
||||
SELECTEUR_BOUTON_ADDITION_QUANTITE,
|
||||
SELECTEUR_BOUTON_CODE_PROMO,
|
||||
SELECTEUR_BOUTON_SEPARATION_ADRESSES,
|
||||
SELECTEUR_BOUTON_SOUSTRACTION_QUANTITE,
|
||||
SELECTEUR_BOUTON_SUPPRESSION_PANIER,
|
||||
SELECTEUR_CHAMP_CODE_PROMO,
|
||||
SELECTEUR_CHAMP_QUANTITE_LIGNE_PANIER,
|
||||
SELECTEUR_CONTENEUR_PANIER,
|
||||
SELECTEUR_ENSEMBLE_CODE_PROMO,
|
||||
SELECTEUR_ENTREES_PANIER,
|
||||
SELECTEUR_FORMULAIRE_FACTURATION,
|
||||
SELECTEUR_FORMULAIRE_PANIER,
|
||||
|
|
@ -46,8 +38,6 @@ import {
|
|||
SELECTEUR_SOUS_TOTAL_LIVRAISON_PRESTATAIRE,
|
||||
SELECTEUR_SOUS_TOTAL_PRODUITS,
|
||||
SELECTEUR_TOTAL_PANIER,
|
||||
SELECTEUR_TOTAL_REDUCTION,
|
||||
SELECTEUR_TOTAL_REDUCTION_VALEUR,
|
||||
} from "./constantes/dom.ts";
|
||||
import { NOM_CANAL_BOUTON_PANIER, NOM_CANAL_CONTENU_PANIER } from "./constantes/messages.ts";
|
||||
import {
|
||||
|
|
@ -57,7 +47,7 @@ import {
|
|||
recupereElementOuLeve,
|
||||
recupereElementsAvecSelecteur,
|
||||
} from "./lib/dom.ts";
|
||||
import { type CleNonTrouveError, leveErreur, leveServerError, reporteErreur, ServerError } from "./lib/erreurs.ts";
|
||||
import { type CleNonTrouveError, leveErreur, leveServerError, reporteErreur } from "./lib/erreurs.ts";
|
||||
import { estError, estReponse500 } from "./lib/gardes.ts";
|
||||
import {
|
||||
emetMessageMajBoutonPanier,
|
||||
|
|
@ -66,8 +56,6 @@ import {
|
|||
valideMessageMajContenuPanier,
|
||||
} from "./lib/messages.ts";
|
||||
import { postBackend, traiteReponseBackendWCSelonCodesHTTP } from "./lib/reseau.ts";
|
||||
import { WCStoreCartApplyCouponArgsSchema } from "./lib/schemas/api/cart-apply-coupon.ts";
|
||||
import { WCStoreCartRemoveCouponArgsSchema } from "./lib/schemas/api/cart-remove-coupon.ts";
|
||||
import { WCStoreCartRemoveItemArgsSchema } from "./lib/schemas/api/cart-remove-item.ts";
|
||||
import { WCStoreCartUpdateCustomerArgsSchema } from "./lib/schemas/api/cart-update-customer.ts";
|
||||
import { WCStoreCartUpdateItemArgsSchema } from "./lib/schemas/api/cart-update-item.ts";
|
||||
|
|
@ -121,10 +109,6 @@ const SOUS_TOTAL_LIVRAISON_PRESTATAIRE: HTMLSpanElement = pipe(
|
|||
recupereElementDocumentEither<HTMLSpanElement>(SELECTEUR_SOUS_TOTAL_LIVRAISON_PRESTATAIRE),
|
||||
recupereElementOuLeve,
|
||||
);
|
||||
const SOUS_TOTAL_REDUCTION_LIGNE: HTMLDivElement = recupereElementDansDocumentOuLeve(SELECTEUR_TOTAL_REDUCTION);
|
||||
const SOUS_TOTAL_REDUCTION_VALEUR: HTMLSpanElement = recupereElementDansDocumentOuLeve(
|
||||
SELECTEUR_TOTAL_REDUCTION_VALEUR,
|
||||
);
|
||||
const INSTRUCTIONS_CLIENT: HTMLTextAreaElement = recupereElementDansDocumentOuLeve(
|
||||
SELECTEUR_INSTRUCTIONS_CLIENT,
|
||||
);
|
||||
|
|
@ -136,15 +120,6 @@ const BOUTON_SEPARATION_ADRESSES: HTMLInputElement = pipe(
|
|||
recupereElementDocumentEither<HTMLInputElement>(SELECTEUR_BOUTON_SEPARATION_ADRESSES),
|
||||
recupereElementOuLeve,
|
||||
);
|
||||
const ENSEMBLE_CODE_PROMO: HTMLDivElement = recupereElementDansDocumentOuLeve(
|
||||
SELECTEUR_ENSEMBLE_CODE_PROMO,
|
||||
);
|
||||
const CHAMP_CODE_PROMO: HTMLInputElement = recupereElementDansDocumentOuLeve(
|
||||
SELECTEUR_CHAMP_CODE_PROMO,
|
||||
);
|
||||
const BOUTON_CODE_PROMO: HTMLButtonElement = recupereElementDansDocumentOuLeve(
|
||||
SELECTEUR_BOUTON_CODE_PROMO,
|
||||
);
|
||||
const FORMULAIRE_PANIER: HTMLFormElement = pipe(
|
||||
recupereElementDocumentEither<HTMLFormElement>(SELECTEUR_FORMULAIRE_PANIER),
|
||||
recupereElementOuLeve,
|
||||
|
|
@ -263,8 +238,8 @@ const initialiseMajEntreesPanier = (): void => {
|
|||
// Émet un Message avec le nouveau contenu du Panier
|
||||
emetMessageMajContenuPanier({
|
||||
produits: panier.items,
|
||||
sousTotalPanier: Number(panier.totals.total_price) / 100,
|
||||
totalPanier: Number(panier.totals.total_items) / 100,
|
||||
sousTotalPanier: Number(panier.totals.total_items) / 100,
|
||||
totalPanier: Number(panier.totals.total_price) / 100,
|
||||
});
|
||||
// Retire l'entrée du Panier du DOM
|
||||
entree.remove();
|
||||
|
|
@ -322,8 +297,8 @@ const initialiseMajEntreesPanier = (): void => {
|
|||
// Émet un Message avec le nouveau contenu du Panier
|
||||
emetMessageMajContenuPanier({
|
||||
produits: panier.items,
|
||||
sousTotalPanier: Number(panier.totals.total_price) / 100,
|
||||
totalPanier: Number(panier.totals.total_items) / 100,
|
||||
sousTotalPanier: Number(panier.totals.total_items) / 100,
|
||||
totalPanier: Number(panier.totals.total_price) / 100,
|
||||
});
|
||||
}),
|
||||
);
|
||||
|
|
@ -378,8 +353,8 @@ const initialiseMajEntreesPanier = (): void => {
|
|||
// Émet un Message avec le nouveau contenu du Panier
|
||||
emetMessageMajContenuPanier({
|
||||
produits: panier.items,
|
||||
sousTotalPanier: Number(panier.totals.total_price) / 100,
|
||||
totalPanier: Number(panier.totals.total_items) / 100,
|
||||
sousTotalPanier: Number(panier.totals.total_items) / 100,
|
||||
totalPanier: Number(panier.totals.total_price) / 100,
|
||||
});
|
||||
}),
|
||||
);
|
||||
|
|
@ -421,8 +396,9 @@ const initialiseMajContenuPanier = (): void => {
|
|||
donnees.produits.forEach((ligne: WCStoreCartItem) => {
|
||||
// Met à jour les entrées du Panier
|
||||
ENTREES_PANIER_EITHER.ifRight((entrees: Array<HTMLElement>) => {
|
||||
Maybe.fromNullable(entrees.find(entree => entree.getAttribute(ATTRIBUT_CLE_PANIER) === ligne.key)).ifJust(
|
||||
(entree: HTMLElement) => {
|
||||
Maybe
|
||||
.fromNullable(entrees.find(entree => entree.getAttribute(ATTRIBUT_CLE_PANIER) === ligne.key))
|
||||
.ifJust((entree: HTMLElement) => {
|
||||
// Fonction utilitaire
|
||||
const recupereElementDansEntree = recupereElementDansEntreePanierOuLeve(entree);
|
||||
|
||||
|
|
@ -439,11 +415,10 @@ const initialiseMajContenuPanier = (): void => {
|
|||
|
||||
// Réactive les Boutons
|
||||
majEtatsActivationBoutons(entrees);
|
||||
},
|
||||
);
|
||||
});
|
||||
|
||||
// Met à jour les totaux du Panier
|
||||
SOUS_TOTAL_PRODUITS.textContent = `${String(donnees.totalPanier)}€`;
|
||||
SOUS_TOTAL_PRODUITS.textContent = `${String(donnees.sousTotalPanier)}€`;
|
||||
TOTAL_PANIER.textContent = `${String(donnees.totalPanier)}€`;
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -82,7 +82,8 @@
|
|||
spellcheck="true"
|
||||
></textarea>
|
||||
|
||||
<div
|
||||
<form
|
||||
action=""
|
||||
class="panneau__instructions-code-promo__code-promo"
|
||||
{{ code_promo ? "data-code-promo-present" : "" }}
|
||||
id="ensemble-code-promo"
|
||||
|
|
@ -105,7 +106,9 @@
|
|||
>
|
||||
{{ code_promo ? "Remove" : "Apply" }}
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<p class="panneau__instructions-code-promo__code-promo__message"></p>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<div class="panneau__sous-totaux">
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue