2024-10-03
This commit is contained in:
parent
93a452ec4a
commit
7b90cf9d33
64 changed files with 518 additions and 281 deletions
2
.vscode/settings.json
vendored
2
.vscode/settings.json
vendored
|
|
@ -1,5 +1,7 @@
|
|||
{
|
||||
"cSpell.words": [
|
||||
"backorder",
|
||||
"backorders",
|
||||
"controle",
|
||||
"controles",
|
||||
"Crell",
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@
|
|||
"test": "echo \"Error: no test specified\" && exit 1"
|
||||
},
|
||||
"dependencies": {
|
||||
"@sentry/browser": "^8.33.0",
|
||||
"@sentry/browser": "^8.33.1",
|
||||
"purify-ts": "^2.1.0",
|
||||
"remeda": "^2.14.0",
|
||||
"ts-pattern": "^5.4.0",
|
||||
|
|
@ -24,7 +24,7 @@
|
|||
"@eslint/js": "^9.11.1",
|
||||
"@prettier/plugin-php": "^0.22.2",
|
||||
"@prettier/plugin-xml": "^3.4.1",
|
||||
"@sentry/types": "^8.33.0",
|
||||
"@sentry/types": "^8.33.1",
|
||||
"@swc/cli": "0.4.1-nightly.20240914",
|
||||
"@types/eslint__js": "^8.42.3",
|
||||
"better-typescript-lib": "^2.9.0",
|
||||
|
|
@ -51,7 +51,7 @@
|
|||
"typescript-eslint": "^8.8.0",
|
||||
"vite": "^5.4.8",
|
||||
"vite-plugin-manifest-sri": "^0.2.0",
|
||||
"vite-plugin-valibot-env": "^0.6.12",
|
||||
"vite-plugin-valibot-env": "^0.7.0",
|
||||
"vite-tsconfig-paths": "^5.0.1",
|
||||
"wp-types": "^4.66.1"
|
||||
},
|
||||
|
|
|
|||
116
pnpm-lock.yaml
generated
116
pnpm-lock.yaml
generated
|
|
@ -9,8 +9,8 @@ importers:
|
|||
.:
|
||||
dependencies:
|
||||
'@sentry/browser':
|
||||
specifier: ^8.33.0
|
||||
version: 8.33.0
|
||||
specifier: ^8.33.1
|
||||
version: 8.33.1
|
||||
purify-ts:
|
||||
specifier: ^2.1.0
|
||||
version: 2.1.0
|
||||
|
|
@ -40,8 +40,8 @@ importers:
|
|||
specifier: ^3.4.1
|
||||
version: 3.4.1(prettier@3.3.3)
|
||||
'@sentry/types':
|
||||
specifier: ^8.33.0
|
||||
version: 8.33.0
|
||||
specifier: ^8.33.1
|
||||
version: 8.33.1
|
||||
'@swc/cli':
|
||||
specifier: 0.4.1-nightly.20240914
|
||||
version: 0.4.1-nightly.20240914(@swc/core@1.7.28)
|
||||
|
|
@ -121,8 +121,8 @@ importers:
|
|||
specifier: ^0.2.0
|
||||
version: 0.2.0
|
||||
vite-plugin-valibot-env:
|
||||
specifier: ^0.6.12
|
||||
version: 0.6.12(valibot@1.0.0-beta.0(typescript@5.6.2))(vite@5.4.8(@types/node@22.7.4)(sass@1.79.4))
|
||||
specifier: ^0.7.0
|
||||
version: 0.7.0(valibot@1.0.0-beta.0(typescript@5.6.2))(vite@5.4.8(@types/node@22.7.4)(sass@1.79.4))
|
||||
vite-tsconfig-paths:
|
||||
specifier: ^5.0.1
|
||||
version: 5.0.1(typescript@5.6.2)(vite@5.4.8(@types/node@22.7.4)(sass@1.79.4))
|
||||
|
|
@ -729,36 +729,36 @@ packages:
|
|||
cpu: [x64]
|
||||
os: [win32]
|
||||
|
||||
'@sentry-internal/browser-utils@8.33.0':
|
||||
resolution: {integrity: sha512-zwjmD+XI3pgxxiqKGLXYDGSd+zfO7az9zzbLn1le8Vv9cRL2lZyMLcwiwEaTpwz3B0pPONeDZMT8+bzMGRs8zw==}
|
||||
'@sentry-internal/browser-utils@8.33.1':
|
||||
resolution: {integrity: sha512-TW6/r+Gl5jiXv54iK1xZ3mlVgTS/jaBp4vcQ0xGMdgiQ3WchEPcFSeYovL+YHT3tSud0GZqVtDQCz+5i76puqA==}
|
||||
engines: {node: '>=14.18'}
|
||||
|
||||
'@sentry-internal/feedback@8.33.0':
|
||||
resolution: {integrity: sha512-KSW/aiNgmJc8PDl2NsM+ONvGure4tPaluj7O1Nw+947Dh8W6CJnQ9srB7xPyoYYWyQW8Hyl1vzxY9W0J+fjlhA==}
|
||||
'@sentry-internal/feedback@8.33.1':
|
||||
resolution: {integrity: sha512-qauMRTm3qDaLqZ3ibI03cj4gLF40y0ij65nj+cns6iWxGCtPrO8tjvXFWuQsE7Aye9dGMnBgmv7uN+NTUtC3RA==}
|
||||
engines: {node: '>=14.18'}
|
||||
|
||||
'@sentry-internal/replay-canvas@8.33.0':
|
||||
resolution: {integrity: sha512-9fEhMP+gQYQrtn/SQd1Vd7U7emTSGBpLKc5h5f0iV0yDmjYAhNVbq4RgPTYAgnBEcdVo3qgboL6UIz9Dv+dYRQ==}
|
||||
'@sentry-internal/replay-canvas@8.33.1':
|
||||
resolution: {integrity: sha512-nsxTFTPCT10Ty/v6+AiST3+yotGP1sUb8xqfKB9fPnS1hZHFryp0NnEls7xFjBsBbZPU1GpFkzrk/E6JFzixDQ==}
|
||||
engines: {node: '>=14.18'}
|
||||
|
||||
'@sentry-internal/replay@8.33.0':
|
||||
resolution: {integrity: sha512-GFBaDA4yhlEf3wTXOVXnJVG/diuKxeqZuXcuhsAwJb+YcFR0NhgsRn3wIGuYOZZF8GBXzx9PFnb9yIuFgx5Nbw==}
|
||||
'@sentry-internal/replay@8.33.1':
|
||||
resolution: {integrity: sha512-fm4coIOjmanU29NOVN9MyaP4fUCOYytbtFqVSKRFNZQ/xAgNeySiBIbUd6IjujMmnOk9bY0WEUMcdm3Uotjdog==}
|
||||
engines: {node: '>=14.18'}
|
||||
|
||||
'@sentry/browser@8.33.0':
|
||||
resolution: {integrity: sha512-qu/g20ZskywEU8BWc4Fts1kXFFBtw1vS+XvPq7Ta9zCeRG5dlXhhYDVQ4/v4nAL/cs0o6aLCq73m109CFF0Kig==}
|
||||
'@sentry/browser@8.33.1':
|
||||
resolution: {integrity: sha512-c6zI/igexkLwZuGk+u8Rj26ChjxGgkhe6ZbKFsXCYaKAp5ep5X7HQRkkqgbxApiqlC0LduHdd/ymzh139JLg8w==}
|
||||
engines: {node: '>=14.18'}
|
||||
|
||||
'@sentry/core@8.33.0':
|
||||
resolution: {integrity: sha512-618PQGHQLBVCpAq1s+e/rpIUaLUnj19IPUgn97rUGXLLna8ETIAoyQoG70wz4q9niw4Z4GlS5kZNrael2O3+2w==}
|
||||
'@sentry/core@8.33.1':
|
||||
resolution: {integrity: sha512-3SS41suXLFzxL3OQvTMZ6q92ZapELVq2l2SoWlZopcamWhog2Ru0dp2vkunq97kFHb2TzKRTlFH4+4gbT8SJug==}
|
||||
engines: {node: '>=14.18'}
|
||||
|
||||
'@sentry/types@8.33.0':
|
||||
resolution: {integrity: sha512-V/A+72ZdnfGtXeXIpz1kUo3LRdq3WKEYYFUR2RKpCdPh9yeOrHq6u/rmzTWx49+om0yhZN+JhVoxDzt75UoFRg==}
|
||||
'@sentry/types@8.33.1':
|
||||
resolution: {integrity: sha512-GjoAMvwtpIemoF/IiwZ7A60g4nQv3qwzR21GvJqDVUoKD0e8pv9OLX+HyXoUat4wEDGSuDUcUyUKD2G+od73QA==}
|
||||
engines: {node: '>=14.18'}
|
||||
|
||||
'@sentry/utils@8.33.0':
|
||||
resolution: {integrity: sha512-TdwtGdevJij2wq2x/hDUr+x5TXt47ZhWxZ8zluai/lnIDTUB3Xs/L9yHtj1J+H9hr8obkMASE9IanUrWXzrP6Q==}
|
||||
'@sentry/utils@8.33.1':
|
||||
resolution: {integrity: sha512-uzuYpiiJuFY3N4WNHMBWUQX5oNv2t/TbG0OHRp3Rr7yeu+HSfD542TIp9/gMZ+G0Cxd8AmVO3wkKIFbk0TL4Qg==}
|
||||
engines: {node: '>=14.18'}
|
||||
|
||||
'@sindresorhus/is@4.6.0':
|
||||
|
|
@ -2142,11 +2142,11 @@ packages:
|
|||
vite-plugin-manifest-sri@0.2.0:
|
||||
resolution: {integrity: sha512-Zt5jt19xTIJ91LOuQTCtNG7rTFc5OziAjBz2H5NdCGqaOD1nxrWExLhcKW+W4/q8/jOPCg/n5ncYEQmqCxiGQQ==}
|
||||
|
||||
vite-plugin-valibot-env@0.6.12:
|
||||
resolution: {integrity: sha512-91IrDFO5sMq8D9W2qNUj2rwKcl3SXIam55sTJCYV9cwXGWxDoOnocFVEaZzkNAKor3VyjNHWMWYgQyAtrIDMyw==}
|
||||
vite-plugin-valibot-env@0.7.0:
|
||||
resolution: {integrity: sha512-ZWOotDNSaaS2imljDofr+sIjA/lMgDXP9Sp5u6zRYbN5s4YF6g70xnHq8Dv/jLBdy/qDms/ZaA/KI4gQgwUojw==}
|
||||
engines: {node: '>=18.0.0'}
|
||||
peerDependencies:
|
||||
valibot: '>=0.30 <0.43'
|
||||
valibot: '>=0.30 <0.43 || 1.0.0-beta.0'
|
||||
vite: '>=2 <6'
|
||||
|
||||
vite-tsconfig-paths@5.0.1:
|
||||
|
|
@ -2644,52 +2644,52 @@ snapshots:
|
|||
'@rollup/rollup-win32-x64-msvc@4.24.0':
|
||||
optional: true
|
||||
|
||||
'@sentry-internal/browser-utils@8.33.0':
|
||||
'@sentry-internal/browser-utils@8.33.1':
|
||||
dependencies:
|
||||
'@sentry/core': 8.33.0
|
||||
'@sentry/types': 8.33.0
|
||||
'@sentry/utils': 8.33.0
|
||||
'@sentry/core': 8.33.1
|
||||
'@sentry/types': 8.33.1
|
||||
'@sentry/utils': 8.33.1
|
||||
|
||||
'@sentry-internal/feedback@8.33.0':
|
||||
'@sentry-internal/feedback@8.33.1':
|
||||
dependencies:
|
||||
'@sentry/core': 8.33.0
|
||||
'@sentry/types': 8.33.0
|
||||
'@sentry/utils': 8.33.0
|
||||
'@sentry/core': 8.33.1
|
||||
'@sentry/types': 8.33.1
|
||||
'@sentry/utils': 8.33.1
|
||||
|
||||
'@sentry-internal/replay-canvas@8.33.0':
|
||||
'@sentry-internal/replay-canvas@8.33.1':
|
||||
dependencies:
|
||||
'@sentry-internal/replay': 8.33.0
|
||||
'@sentry/core': 8.33.0
|
||||
'@sentry/types': 8.33.0
|
||||
'@sentry/utils': 8.33.0
|
||||
'@sentry-internal/replay': 8.33.1
|
||||
'@sentry/core': 8.33.1
|
||||
'@sentry/types': 8.33.1
|
||||
'@sentry/utils': 8.33.1
|
||||
|
||||
'@sentry-internal/replay@8.33.0':
|
||||
'@sentry-internal/replay@8.33.1':
|
||||
dependencies:
|
||||
'@sentry-internal/browser-utils': 8.33.0
|
||||
'@sentry/core': 8.33.0
|
||||
'@sentry/types': 8.33.0
|
||||
'@sentry/utils': 8.33.0
|
||||
'@sentry-internal/browser-utils': 8.33.1
|
||||
'@sentry/core': 8.33.1
|
||||
'@sentry/types': 8.33.1
|
||||
'@sentry/utils': 8.33.1
|
||||
|
||||
'@sentry/browser@8.33.0':
|
||||
'@sentry/browser@8.33.1':
|
||||
dependencies:
|
||||
'@sentry-internal/browser-utils': 8.33.0
|
||||
'@sentry-internal/feedback': 8.33.0
|
||||
'@sentry-internal/replay': 8.33.0
|
||||
'@sentry-internal/replay-canvas': 8.33.0
|
||||
'@sentry/core': 8.33.0
|
||||
'@sentry/types': 8.33.0
|
||||
'@sentry/utils': 8.33.0
|
||||
'@sentry-internal/browser-utils': 8.33.1
|
||||
'@sentry-internal/feedback': 8.33.1
|
||||
'@sentry-internal/replay': 8.33.1
|
||||
'@sentry-internal/replay-canvas': 8.33.1
|
||||
'@sentry/core': 8.33.1
|
||||
'@sentry/types': 8.33.1
|
||||
'@sentry/utils': 8.33.1
|
||||
|
||||
'@sentry/core@8.33.0':
|
||||
'@sentry/core@8.33.1':
|
||||
dependencies:
|
||||
'@sentry/types': 8.33.0
|
||||
'@sentry/utils': 8.33.0
|
||||
'@sentry/types': 8.33.1
|
||||
'@sentry/utils': 8.33.1
|
||||
|
||||
'@sentry/types@8.33.0': {}
|
||||
'@sentry/types@8.33.1': {}
|
||||
|
||||
'@sentry/utils@8.33.0':
|
||||
'@sentry/utils@8.33.1':
|
||||
dependencies:
|
||||
'@sentry/types': 8.33.0
|
||||
'@sentry/types': 8.33.1
|
||||
|
||||
'@sindresorhus/is@4.6.0': {}
|
||||
|
||||
|
|
@ -4059,7 +4059,7 @@ snapshots:
|
|||
|
||||
vite-plugin-manifest-sri@0.2.0: {}
|
||||
|
||||
vite-plugin-valibot-env@0.6.12(valibot@1.0.0-beta.0(typescript@5.6.2))(vite@5.4.8(@types/node@22.7.4)(sass@1.79.4)):
|
||||
vite-plugin-valibot-env@0.7.0(valibot@1.0.0-beta.0(typescript@5.6.2))(vite@5.4.8(@types/node@22.7.4)(sass@1.79.4)):
|
||||
dependencies:
|
||||
kleur: 4.1.5
|
||||
log-symbols: 7.0.0
|
||||
|
|
|
|||
|
|
@ -108,14 +108,9 @@
|
|||
|
||||
/**
|
||||
* 1. Utilise un meilleur modèle de boîte.
|
||||
* 2. Rendu spécifique du texte pour Safari/iOS.
|
||||
* 3. Rendu plus précis du texte.
|
||||
*/
|
||||
html {
|
||||
box-sizing: border-box; /* 1 */
|
||||
-webkit-font-smoothing: antialiased; /* 2 */
|
||||
text-size-adjust: none; /* 2 */
|
||||
text-rendering: geometricprecision; /* 3 */
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -161,9 +156,23 @@ textarea {
|
|||
background: var(--couleur-jaune);
|
||||
}
|
||||
|
||||
/**
|
||||
* 2. Rendu spécifique du texte pour Safari/iOS.
|
||||
* 3. Rendu plus précis du texte.
|
||||
*/
|
||||
html {
|
||||
-webkit-font-smoothing: antialiased; /* 2 */
|
||||
text-size-adjust: none; /* 2 */
|
||||
text-rendering: geometricprecision; /* 3 */
|
||||
}
|
||||
|
||||
body {
|
||||
font: 1rem/1.4 Lato;
|
||||
font-optical-sizing: auto;
|
||||
font-kerning: normal;
|
||||
font-variant-ligatures: common-ligatures no-discretionary-ligatures no-historical-ligatures contextual;
|
||||
color: var(--couleur-noir);
|
||||
text-decoration-skip-ink: auto;
|
||||
letter-spacing: 0.5px;
|
||||
}
|
||||
|
||||
|
|
@ -186,7 +195,6 @@ button.bouton-case-pleine {
|
|||
}
|
||||
button[disabled] {
|
||||
cursor: not-allowed;
|
||||
background: repeating-conic-gradient(var(--couleur-noir) 0% 25%, transparent 0% 100%) 1px 0.5px/2px 2px;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
{"version":3,"sourceRoot":"","sources":["../../src/sass/base/polices/_lato.scss","../../src/sass/base/polices/_myriad.scss","../../src/sass/abstracts/_variables.scss","../../src/sass/base/_base.scss","../../src/sass/base/_typographie.scss","../../src/sass/base/elements/_boutons.scss","../../src/sass/base/elements/_images.scss","../../src/sass/base/elements/_liens.scss","../../src/sass/base/elements/_listes.scss","../../src/sass/layouts/_en-tete.scss","../../src/sass/layouts/_menu-categories-produits.scss","../../src/sass/layouts/_colonnes-photos.scss","../../src/sass/layouts/_grille-produits.scss","../../src/sass/layouts/_informations-produit.scss","../../src/sass/layouts/_produits-similaires.scss","../../src/sass/layouts/_pied-de-page.scss"],"names":[],"mappings":";AAAA;EACE;EACA;EACA;EACA;EACA,KACE;;AAIJ;EACE;EACA;EACA;EACA;EACA,KACE;;AAIJ;EACE;EACA;EACA;EACA;EACA,KACE;;AAIJ;EACE;EACA;EACA;EACA;EACA,KACE;;AAIJ;EACE;EACA;EACA;EACA;EACA,KACE;;AAIJ;EACE;EACA;EACA;EACA;EACA,KACE;;AAIJ;EACE;EACA;EACA;EACA;EACA,KACE;;AAIJ;EACE;EACA;EACA;EACA;EACA,KACE;;AAIJ;EACE;EACA;EACA;EACA;EACA,KACE;;AAIJ;EACE;EACA;EACA;EACA;EACA,KACE;;AChGJ;EACE;EACA;EACA;EACA;EACA;EACA,KACE;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA,KACE;;AChBJ;AACE;EACA;EACA;EACA;EACA;EACA;AAEA;EACA;EACA;AAEA;EACA;EACA;AAEA;EACA;EACA;EACA;EACA;EACA;;;ACnBF;AAAA;AAAA;AAAA;AAAA;AAKA;EACE;EACA;EACA;EACA;;;AAGF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA;AAAA;AAAA;EAGE;EACA;EACA;EACA;EACA;;;AAGF;AAAA;AAAA;AAGA;EACE;;;AAGF;AAAA;AAAA;AAAA;AAIA;AAAA;AAAA;AAAA;EAIE;EACA;;;AAGF;AAAA;AAAA;AAGA;EACE;;;ACtDF;EACE;EACA;EACA;;;AAGF;EACE;;;ACPF;AAAA;AAAA;AAGA;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAGF;EACE;EAGA;;;AClBJ;AAAA;AAAA;AAAA;AAAA;AAKA;AAAA;EAEE;EACA;;;AAGF;EACE;EACA;;;ACbF;AAAA;AAAA;AAAA;AAAA;AAKA;AACE;EACA;EAEA;EACA;EACA;EACA;EACA;EACA,YACE,kHAK4B;EAE9B;AAEA;AAMA;AAAA;AAAA;;AALA;EAEE;;AAMF;AACE;EACA;EACA;AAEA;EACA;EAEA;EACA;AAEA;AAMA;AAKA;;AAVA;EAEE;;AAIF;EACE;;AAIF;EACE;IACE;;;AAMJ;EACE;IACE;;;;AClER;AAAA;AAAA;AAAA;AAAA;AAKA;EACE;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAMA;AACE;EACA;AAEA;EACA;AAEA;EACA;;AAEA;EACE;EACA,qLAEkE;;;AC5BxE;AACE;EACA;EACA;AAEA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AAWA;;AATA;EACE;;AAEA;AAAA;EAEE;;AAKJ;EACE;EACA;EACA;EACA;EACA;AAUA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AARA;EACE;EACA;EACA;EACA;EACA;;AAYF;AACE;EACA;EACA;EACA;AAEA;EACA;;AAEA;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;IACE;;;AAMR;EACE;EACA;EACA;EACA;EACA;AAEA;AAAA;AAAA;;AAGA;EACE;EACA;;AAEA;EACE;;AAGF;EACE;;;ACvGR;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA;AACE;EACA;EACA;AAEA;EACA;EACA;EAEA;EACA;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAOA;EACE;EACA;EACA;AAEA;AAAA;AAAA;;AAGA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AAYA;AAAA;AAAA;AAAA;AAAA;;AATE;EACE;;AAIJ;EACE;;AAQF;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EAEE;EACA;;AAGF;EACE;IACE;IACA;;;AAKN;EACE;;AAGF;EACE;;;ACrFR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA;AACE;EACA;AAEA;EACA;EACA;AAAA;AAAA;AAIA;EACA;EAEA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAGA;EACE;;AAMF;EACE;EACA;;;AC7CR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAYA;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAEA;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAEA;EAEI;IACE;IACA;IACA;;;AAMR;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAGF;EACE;EACA;;AAMR;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;;;AC3FN;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA;AACE;EAEA;EAGA;EACA;EAGA;EAEA;EACA;EACA;EACA;EACA;AAuGA;AAyGA;;AA9MA;EACE;EACA;EACA;EACA;EACA;AAEA;AAAA;AAAA;;AAGA;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAKN;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;;AAGF;EACE;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAEA;EACE;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;AAEA;;AACA;EACE;;AAGF;EACE;;AASN;EACE;;AAMN;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;EACA;EACA;AAEA;AAMA;AAwCA;AAqBA;;AAlEA;EACE;EACA;;AAIF;EACE;AAEA;;AACA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EAEI;IACE;IACA;;;AAKN;EAEI;IACE;IACA;;;AAOR;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;IACE;;;AAKN;EACE;;AAeJ;EACE;;AAKJ;EACE;EACA;EACA;AAEA;;AACA;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;AAEA;;AAEE;EACE;IACE;;;;AAQZ;EACE;IACE;;EAGF;IACE;;;AC3QJ;EACE;EACA;EACA;EACA,qBACE;EAEF;EACA;AAEA;;AACA;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAEA;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAEA;EAEI;IACE;IACA;IACA;;;AAMR;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAGF;EACE;EACA;;;AC7FZ;AAAA;AAAA;AAGA;AACE;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA","file":"main.css"}
|
||||
{"version":3,"sourceRoot":"","sources":["../../src/sass/base/polices/_lato.scss","../../src/sass/base/polices/_myriad.scss","../../src/sass/abstracts/_variables.scss","../../src/sass/base/_base.scss","../../src/sass/base/_typographie.scss","../../src/sass/base/elements/_boutons.scss","../../src/sass/base/elements/_images.scss","../../src/sass/base/elements/_liens.scss","../../src/sass/base/elements/_listes.scss","../../src/sass/layouts/_en-tete.scss","../../src/sass/layouts/_menu-categories-produits.scss","../../src/sass/layouts/_colonnes-photos.scss","../../src/sass/layouts/_grille-produits.scss","../../src/sass/layouts/_informations-produit.scss","../../src/sass/layouts/_produits-similaires.scss","../../src/sass/layouts/_pied-de-page.scss"],"names":[],"mappings":";AAAA;EACE;EACA;EACA;EACA;EACA,KACE;;AAIJ;EACE;EACA;EACA;EACA;EACA,KACE;;AAIJ;EACE;EACA;EACA;EACA;EACA,KACE;;AAIJ;EACE;EACA;EACA;EACA;EACA,KACE;;AAIJ;EACE;EACA;EACA;EACA;EACA,KACE;;AAIJ;EACE;EACA;EACA;EACA;EACA,KACE;;AAIJ;EACE;EACA;EACA;EACA;EACA,KACE;;AAIJ;EACE;EACA;EACA;EACA;EACA,KACE;;AAIJ;EACE;EACA;EACA;EACA;EACA,KACE;;AAIJ;EACE;EACA;EACA;EACA;EACA,KACE;;AChGJ;EACE;EACA;EACA;EACA;EACA;EACA,KACE;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA,KACE;;AChBJ;AACE;EACA;EACA;EACA;EACA;EACA;AAEA;EACA;EACA;AAEA;EACA;EACA;AAEA;EACA;EACA;EACA;EACA;EACA;;;ACnBF;AAAA;AAAA;AAGA;EACE;;;AAGF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA;AAAA;AAAA;EAGE;EACA;EACA;EACA;EACA;;;AAGF;AAAA;AAAA;AAGA;EACE;;;AAGF;AAAA;AAAA;AAAA;AAIA;AAAA;AAAA;AAAA;EAIE;EACA;;;AAGF;AAAA;AAAA;AAGA;EACE;;;ACjDF;AAAA;AAAA;AAAA;AAIA;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;ACrBF;AAAA;AAAA;AAGA;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAGF;EACE;;;ACfJ;AAAA;AAAA;AAAA;AAAA;AAKA;AAAA;EAEE;EACA;;;AAGF;EACE;EACA;;;ACbF;AAAA;AAAA;AAAA;AAAA;AAKA;AACE;EACA;EAEA;EACA;EACA;EACA;EACA;EACA,YACE,kHAK4B;EAE9B;AAEA;AAMA;AAAA;AAAA;;AALA;EAEE;;AAMF;AACE;EACA;EACA;AAEA;EACA;EAEA;EACA;AAEA;AAMA;AAKA;;AAVA;EAEE;;AAIF;EACE;;AAIF;EACE;IACE;;;AAMJ;EACE;IACE;;;;AClER;AAAA;AAAA;AAAA;AAAA;AAKA;EACE;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAMA;AACE;EACA;AAEA;EACA;AAEA;EACA;;AAEA;EACE;EACA,qLAEkE;;;AC5BxE;AACE;EACA;EACA;AAEA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AAWA;;AATA;EACE;;AAEA;AAAA;EAEE;;AAKJ;EACE;EACA;EACA;EACA;EACA;AAUA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AARA;EACE;EACA;EACA;EACA;EACA;;AAYF;AACE;EACA;EACA;EACA;AAEA;EACA;;AAEA;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;IACE;;;AAMR;EACE;EACA;EACA;EACA;EACA;AAEA;AAAA;AAAA;;AAGA;EACE;EACA;;AAEA;EACE;;AAGF;EACE;;;ACvGR;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA;AACE;EACA;EACA;AAEA;EACA;EACA;EAEA;EACA;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAOA;EACE;EACA;EACA;AAEA;AAAA;AAAA;;AAGA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AAYA;AAAA;AAAA;AAAA;AAAA;;AATE;EACE;;AAIJ;EACE;;AAQF;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EAEE;EACA;;AAGF;EACE;IACE;IACA;;;AAKN;EACE;;AAGF;EACE;;;ACrFR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA;AACE;EACA;AAEA;EACA;EACA;AAAA;AAAA;AAIA;EACA;EAEA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAGA;EACE;;AAMF;EACE;EACA;;;AC7CR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAYA;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAEA;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAEA;EAEI;IACE;IACA;IACA;;;AAMR;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAGF;EACE;EACA;;AAMR;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;;;AC3FN;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA;AACE;EAEA;EAGA;EACA;EAGA;EAEA;EACA;EACA;EACA;EACA;AAuGA;AAyGA;;AA9MA;EACE;EACA;EACA;EACA;EACA;AAEA;AAAA;AAAA;;AAGA;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAKN;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;;AAGF;EACE;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAEA;EACE;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;AAEA;;AACA;EACE;;AAGF;EACE;;AASN;EACE;;AAMN;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;EACA;EACA;AAEA;AAMA;AAwCA;AAqBA;;AAlEA;EACE;EACA;;AAIF;EACE;AAEA;;AACA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EAEI;IACE;IACA;;;AAKN;EAEI;IACE;IACA;;;AAOR;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;IACE;;;AAKN;EACE;;AAeJ;EACE;;AAKJ;EACE;EACA;EACA;AAEA;;AACA;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;AAEA;;AAEE;EACE;IACE;;;;AAQZ;EACE;IACE;;EAGF;IACE;;;AC3QJ;EACE;EACA;EACA;EACA,qBACE;EAEF;EACA;AAEA;;AACA;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAEA;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAEA;EAEI;IACE;IACA;IACA;;;AAMR;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAGF;EACE;EACA;;;AC7FZ;AAAA;AAAA;AAGA;AACE;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA","file":"main.css"}
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -11,7 +11,7 @@
|
|||
}
|
||||
#panneau-panier .panneau__grille-produits__produit {
|
||||
display: grid;
|
||||
grid-template-columns: fit-content(100%) auto;
|
||||
grid-template-columns: max-content auto;
|
||||
grid-template-rows: 1fr;
|
||||
border-bottom: 1px solid var(--couleur-noir);
|
||||
}
|
||||
|
|
@ -31,6 +31,7 @@
|
|||
place-content: center;
|
||||
width: fit-content;
|
||||
margin: auto;
|
||||
padding: 0 var(--espace-xl);
|
||||
font-style: italic;
|
||||
}
|
||||
#panneau-panier .panneau__grille-produits .detail-produit__nom-prix {
|
||||
|
|
@ -55,18 +56,25 @@
|
|||
font-weight: 500;
|
||||
font-style: initial;
|
||||
border: 1px solid var(--couleur-noir);
|
||||
/* 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:disabled {
|
||||
background: repeating-conic-gradient(var(--couleur-noir) 0% 25%, transparent 0% 100%) 1px 0.5px/2px 2px;
|
||||
}
|
||||
#panneau-panier .panneau__grille-produits .detail-produit__actions button:first-of-type {
|
||||
grid-column: 1;
|
||||
width: 3rem;
|
||||
min-width: 3rem;
|
||||
max-width: 3rem;
|
||||
}
|
||||
#panneau-panier .panneau__grille-produits .detail-produit__actions input[type=number] {
|
||||
grid-column: 2;
|
||||
width: 100%;
|
||||
text-align: center;
|
||||
appearance: textfield; /* 1 */
|
||||
background: initial;
|
||||
|
|
@ -80,7 +88,8 @@
|
|||
}
|
||||
#panneau-panier .panneau__grille-produits .detail-produit__actions button:nth-of-type(2) {
|
||||
grid-column: 3;
|
||||
width: 3rem;
|
||||
min-width: 3rem;
|
||||
max-width: 3rem;
|
||||
}
|
||||
#panneau-panier .panneau__grille-produits .detail-produit__actions button:last-of-type {
|
||||
grid-column: span 3;
|
||||
|
|
@ -154,7 +163,7 @@
|
|||
}
|
||||
#panneau-panier .panneau__instructions-code-promo {
|
||||
width: 100%;
|
||||
padding: var(--espace-l) 0;
|
||||
padding: var(--espace-l) var(--espace-xl);
|
||||
text-align: center;
|
||||
border-bottom: 1px solid var(--couleur-noir);
|
||||
/**
|
||||
|
|
@ -165,6 +174,7 @@
|
|||
#panneau-panier .panneau__instructions-code-promo__instructions {
|
||||
resize: vertical;
|
||||
display: block; /* 1 */
|
||||
width: 100%;
|
||||
margin: auto; /* 1 */
|
||||
margin-bottom: var(--espace-s); /* 2 */
|
||||
padding: var(--espace-s);
|
||||
|
|
@ -260,7 +270,8 @@
|
|||
display: block;
|
||||
}
|
||||
#page-panier .panneau {
|
||||
flex-basis: 50%;
|
||||
flex: 1 1 30rem;
|
||||
min-width: 30rem;
|
||||
border-top: 1px solid var(--couleur-noir);
|
||||
border-bottom: 1px solid var(--couleur-noir);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
{"version":3,"sourceRoot":"","sources":["../../../src/sass/layouts/_panneau-panier.scss","../../../src/sass/pages/page-panier.scss"],"names":[],"mappings":";AAEA;EACE;;AAEA;EACE;;AAIF;EACE;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAGA;EACE;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAMN;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAIJ;EACE;EACA;;AAIF;EACE;EACA;EACA;EACA;EACA;EACA;AAOA;AAAA;AAAA;AAAA;AAyBA;;AA9BA;EACE;EACA;;AAOF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EAEE;EACA;;AAIJ;EACE;EACA;;AAIF;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;IACE;IACA;;;AASZ;EACE;EACA;EACA;EACA;EACA;;AAGA;EACE;EACA;;AAGF;EACE;EACA;EACA;;AAEA;EACE;EACA;;AAIJ;EACE;EACA;EACA;EACA;AAgCA;AAAA;AAAA;;AA9BA;EACE;EACA;EACA;EACA;;AAGF;EACE;;AAIF;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAEA;EACE;EACA;EACA;EACA;;AAQN;EACE;EACA;;AAMN;EACE;EACA;EACA;EACA;AAEA;AAAA;AAAA;AAAA;;AAIA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;;AAKN;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAGF;EACE;;AAIJ;EACE;EACA;EACA;;AAKJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;;AC5RN;AAAA;AAAA;AAAA;AAIA;AACE;EACA;AAEA;EACA;EAEA;EACA;EACA;EACA;;AAGE;EACE;;AAGF;EACE;;AAIJ;EACE;EACA;EACA;;AAGA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;;AAON;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;EACA","file":"page-panier.css"}
|
||||
{"version":3,"sourceRoot":"","sources":["../../../src/sass/layouts/_panneau-panier.scss","../../../src/sass/pages/page-panier.scss"],"names":[],"mappings":";AAEA;EACE;;AAEA;EACE;;AAIF;EACE;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAGA;EACE;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAMN;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAIJ;EACE;EACA;;AAIF;EACE;EACA;EACA;EACA;EACA;EACA;AAMA;AAOA;AAAA;AAAA;AAAA;AAqBA;AAOA;;AAvCA;EACE;;AAIF;EACE;EACA;EACA;;AAOF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EAEE;EACA;;AAKJ;EACE;EACA;EACA;;AAIF;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;IACE;IACA;;;AASZ;EACE;EACA;EACA;EACA;EACA;;AAGA;EACE;EACA;;AAGF;EACE;EACA;EACA;;AAEA;EACE;EACA;;AAIJ;EACE;EACA;EACA;EACA;AAgCA;AAAA;AAAA;;AA9BA;EACE;EACA;EACA;EACA;;AAGF;EACE;;AAIF;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAEA;EACE;EACA;EACA;EACA;;AAQN;EACE;EACA;;AAMN;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;EACA;EACA;EACA;;AAEA;EACE;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;;AAKN;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAGF;EACE;;AAIJ;EACE;EACA;EACA;;AAKJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;;ACvSN;AAAA;AAAA;AAAA;AAIA;AACE;EACA;AAEA;EACA;EAEA;EACA;EACA;EACA;;AAGE;EACE;;AAGF;EACE;;AAIJ;EACE;EACA;EACA;EACA;;AAGA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;;AAON;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;EACA","file":"page-panier.css"}
|
||||
|
|
@ -9,15 +9,15 @@
|
|||
"name": "chunk-7BKSRZNG",
|
||||
"integrity": "sha512-CM4zAemmzkH8eePsFpJsdTc4IE2wJMlJwIfivLBSAbYuwQjWAmOH28ZFnpki3QBlU1XqR3G7q+ph5etbxY47XA=="
|
||||
},
|
||||
"_exports.BNibT8R5.js": {
|
||||
"file": "exports.BNibT8R5.js",
|
||||
"_exports.CqgMoAXr.js": {
|
||||
"file": "exports.CqgMoAXr.js",
|
||||
"name": "exports",
|
||||
"integrity": "sha512-cnJ9asFTTBn16nlJir9fEVx89P0ONlgU81/G7E/WOy1e/FGT5P7dOdJuw3XGK1+r0cMQZqs2d5N6HqUOGgUBVA=="
|
||||
"integrity": "sha512-XxyyAYpiSluIP0+t/brf2yffq17Zbk+/sbhzC2WQvQTWgajgirbQ2pkyk4i58Q8p+ciXXWe99KLdEkOUJji/uQ=="
|
||||
},
|
||||
"_index.C9ScFdVV.js": {
|
||||
"file": "index.C9ScFdVV.js",
|
||||
"_index.DYThEupQ.js": {
|
||||
"file": "index.DYThEupQ.js",
|
||||
"name": "index",
|
||||
"integrity": "sha512-6+iQXPHL5BUtZ6P2Qn4BQ2HuADyCmrRqhaCjODdUrT9RsyUsEYdXKVGdr4vK4lULTx2TRGuxN6wi5m+HaKihog=="
|
||||
"integrity": "sha512-YB/pxNHmpqtWHQuX88NHi57DdNSq6aOY0IwMn35fe40p8xcrJpNu/ZKNmeXF4A8IvQUuglOKSQBl713X757LXA=="
|
||||
},
|
||||
"_index.Dxgx1GXj.js": {
|
||||
"file": "index.Dxgx1GXj.js",
|
||||
|
|
@ -29,14 +29,21 @@
|
|||
"name": "api",
|
||||
"src": "web/app/themes/haiku-atelier-2024/src/scripts/constantes/api.ts",
|
||||
"isEntry": true,
|
||||
"integrity": "sha512-ld0nEHk+UTouQa2rIsEGfWTdBegMl3fKv8S6MHRG7xkLDwXLk8687de2nZ1/2Fk6pLoKMa07zJc7qF2AayoQNQ=="
|
||||
"integrity": "sha512-fXZJ7+9tXq8x1Kxsj5QAtAkAT4lRi6XIAy7ljUgw43ohufl/v+L7cVazgnFj0HW4E8WssdBS06CsOT2wNDoWxQ=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/cart.ts": {
|
||||
"file": "cart2.js",
|
||||
"name": "cart",
|
||||
"src": "web/app/themes/haiku-atelier-2024/src/scripts/constantes/cart.ts",
|
||||
"isEntry": true,
|
||||
"integrity": "sha512-roJIe6Iyb/xNOxK6106j4AaroobRK5AinfgpZbwJaGWgmU0pp0wHRGauEg1Jk4vp8OwVzUwcciYE0qxzKaWOcg=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/dom.ts": {
|
||||
"file": "dom.js",
|
||||
"name": "dom",
|
||||
"src": "web/app/themes/haiku-atelier-2024/src/scripts/constantes/dom.ts",
|
||||
"isEntry": true,
|
||||
"integrity": "sha512-YR8sQCH9oywG8bKZXi1E4mwI15m9IsC5yMwIO41beqOuQGuD7nZU1dZ2qrApcPtH/nh1uMPhNU7R/MB3BFZICA=="
|
||||
"integrity": "sha512-VjPpL1wOUAMAz7urwl/GzLJzuadoG2FzM1W6YTdso4bRrCPlEUlpcuhKR69J9gzx0QODzq4ysfyg5Y++BiVkoA=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/messages.ts": {
|
||||
"file": "messages3.js",
|
||||
|
|
@ -53,9 +60,9 @@
|
|||
"imports": [
|
||||
"_chunk-7BKSRZNG.F4GWJRq9.js",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/api.ts",
|
||||
"_exports.BNibT8R5.js"
|
||||
"_exports.CqgMoAXr.js"
|
||||
],
|
||||
"integrity": "sha512-XTh6W0Xs7w3dLOvTEsH34ngi8skKFWV/yMSp9iPnswMi+gju/mwerleCuqE93Mu6F++H7x3wt7snw4z8A732vQ=="
|
||||
"integrity": "sha512-ohitJLXJZhKukclzCDCWNZx3di0Cyv/GN2yflb42AKk1F0aD3Cpr4JAOffrMVfepxl9EbQcZ7j/HXzVIo1JJkg=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/api.ts": {
|
||||
"file": "api.js",
|
||||
|
|
@ -66,7 +73,7 @@
|
|||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/api.ts",
|
||||
"_Either.DDEPhGsy.js"
|
||||
],
|
||||
"integrity": "sha512-SqB8dgsNWcDfK+us02BHRxw+Ok3QkAMqt9Lo4G71Fy8mGhotbXfDpvPObdMvxaYEiDY4H+UXxzwSDKFlrQBXJg=="
|
||||
"integrity": "sha512-/CWvVmojNPw3K8A73UNdUgl9hlQoy31If2QGEV4LH1YcBMjK9sq+hLG0BwhvtZL7FRftscB9x+pMNkl0b0kOlw=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/dom.ts": {
|
||||
"file": "dom2.js",
|
||||
|
|
@ -77,9 +84,9 @@
|
|||
"_chunk-7BKSRZNG.F4GWJRq9.js",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/erreurs.ts",
|
||||
"_Either.DDEPhGsy.js",
|
||||
"_exports.BNibT8R5.js"
|
||||
"_exports.CqgMoAXr.js"
|
||||
],
|
||||
"integrity": "sha512-qrZ+WIkbmKsNYTJ2//onxS1HzLggo4qK7sRTk/Hst5izujybuIJpe+e7gPWa3yI8OCmt+g7hipt78oWL3Pf6+A=="
|
||||
"integrity": "sha512-eyiNifBgU6+/1dX8+HRIEQsDgrKecsGqnNVys+tRg+ySNZ2/JQ6ojhrBXpLrOMrgyfBRbVOcwyDNrCi8zmoKfg=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/erreurs.ts": {
|
||||
"file": "erreurs.js",
|
||||
|
|
@ -87,9 +94,9 @@
|
|||
"src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/erreurs.ts",
|
||||
"isEntry": true,
|
||||
"imports": [
|
||||
"_exports.BNibT8R5.js"
|
||||
"_exports.CqgMoAXr.js"
|
||||
],
|
||||
"integrity": "sha512-JylcVjXlYn3U3P34joLUS3SnsE0BP4nuM7DtiJHIPCREaYSmqQpWV7Nd6+aOr9Bv5NEDRUphwHLF5DeffwW2Vw=="
|
||||
"integrity": "sha512-SOjfas9+qR/lxLAZnwQng9sIPF2fotjXZQcsWJjir0R+PbOBgwAJBDDvqg7u4taogh7sYqDNmaO6y7VJD5OWEg=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/gardes.ts": {
|
||||
"file": "gardes.js",
|
||||
|
|
@ -107,7 +114,7 @@
|
|||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/api.ts",
|
||||
"_Either.DDEPhGsy.js"
|
||||
],
|
||||
"integrity": "sha512-44H494vXGGg9FqI+hSj2UXzFd8TFAmpUIcQDCKXmcJ/0UaCj59/dWW/9wyJe1xzuoc9PQ3dLEcgN/hE04Y4cKg=="
|
||||
"integrity": "sha512-uzokkOlud1oP8RUZJukWpDgdnF9oc42Ml9WEmjSLn1Oh5V5Ivmqt0L87xaG7ollvmeZl2zh2vq8NAMVK76Gw6Q=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/messages.ts": {
|
||||
"file": "messages.js",
|
||||
|
|
@ -115,14 +122,14 @@
|
|||
"src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/messages.ts",
|
||||
"isEntry": true,
|
||||
"imports": [
|
||||
"_index.C9ScFdVV.js",
|
||||
"_index.DYThEupQ.js",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/erreurs.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/messages.ts",
|
||||
"_Either.DDEPhGsy.js",
|
||||
"_exports.BNibT8R5.js",
|
||||
"_exports.CqgMoAXr.js",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/messages.ts"
|
||||
],
|
||||
"integrity": "sha512-b9pltMriGAcDypqE6hQDZ67XSFtZLp2GhS64H/7PCraBqpD3KKqxErPWvVlsy0u5JoT7tAh233kSnFNWZ7BcBg=="
|
||||
"integrity": "sha512-EkBKXyL40Fqjvr2uiJZ2fM69xSS62wQl7PeiXNO0YYQfFS4M5RPNHbL3e9LiCDtiS603nEt0xmmdgM9puPm6LQ=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/reseau.ts": {
|
||||
"file": "reseau.js",
|
||||
|
|
@ -132,7 +139,7 @@
|
|||
"imports": [
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/api.ts"
|
||||
],
|
||||
"integrity": "sha512-Nt9jnR9hXjtYxufmQp1G6MOoNnuWh4HtgiSt8LHlF8rOF+XZ89of+KUQvvfksxcgJ7W8tKYxDs68B7ebaGTCtw=="
|
||||
"integrity": "sha512-HuOriKv5d+WCfiqyqum3vpqL+XkipWqsc3GNfpkDOM3M0wLDO1Xte5bCnHi6+uz+kVmdJ35Uutwmq/XdNqvKJA=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/cart-add-item.ts": {
|
||||
"file": "cart-add-item.js",
|
||||
|
|
@ -140,9 +147,9 @@
|
|||
"src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/cart-add-item.ts",
|
||||
"isEntry": true,
|
||||
"imports": [
|
||||
"_index.C9ScFdVV.js"
|
||||
"_index.DYThEupQ.js"
|
||||
],
|
||||
"integrity": "sha512-aj77TJ3YhBCfWuPdIrU4cP5/jjOGUskdCvUjdF1z9UgKnCKfKjQcV9829AfPDlJj43pd8hmZBvBa6RIcRDGuVg=="
|
||||
"integrity": "sha512-365FeQBpvYEubs1gJc79ZXpUC6IxhJlX+DJ6WqiRoPNyql5LerPTJDpysYTm6KBsOmdzelGu+Zg7SinXMocjJw=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/cart-remove-item.ts": {
|
||||
"file": "cart-remove-item.js",
|
||||
|
|
@ -150,9 +157,19 @@
|
|||
"src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/cart-remove-item.ts",
|
||||
"isEntry": true,
|
||||
"imports": [
|
||||
"_index.C9ScFdVV.js"
|
||||
"_index.DYThEupQ.js"
|
||||
],
|
||||
"integrity": "sha512-ksb8zxVH1SqC+HlC+Y5LUNYI2CZTpLyc1K8akl8dpH8IlVeGcmtVAL+oJyuZ3I6wOzxpTicKj0LmzP5YT2KiwQ=="
|
||||
"integrity": "sha512-4JJBzzYFadk5CHLyQhZorkeHBAsxIJ3YaZzy05DRgKAgydL0e2jVT88tDytYLlug2cD/mpm0uLAjFNC6sa+Pfg=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/cart-update-item.ts": {
|
||||
"file": "cart-update-item.js",
|
||||
"name": "cart-update-item",
|
||||
"src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/cart-update-item.ts",
|
||||
"isEntry": true,
|
||||
"imports": [
|
||||
"_index.DYThEupQ.js"
|
||||
],
|
||||
"integrity": "sha512-Qoua2eltUFTq2zRWsJ3ZRVLgag445wi+zln0NBR8TUEDKc65i3V3UtqEDYdLIQrfbbX9I52hqARFMF+p5ZmcWA=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/cart.ts": {
|
||||
"file": "cart.js",
|
||||
|
|
@ -160,9 +177,10 @@
|
|||
"src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/cart.ts",
|
||||
"isEntry": true,
|
||||
"imports": [
|
||||
"_index.C9ScFdVV.js"
|
||||
"_index.DYThEupQ.js",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/cart.ts"
|
||||
],
|
||||
"integrity": "sha512-2CHat7wLZuNa2589dZpLckXxQhNo8YzMFBBbiBpRqaDgDyps8Y8hnwOwlo/gf2blPV8lhkQMaVzn3RM14TIeoA=="
|
||||
"integrity": "sha512-FbUsUIeh9rOMEOuoD3qN0pBJ4apA8fjdN1MMdB64zk/JHS4vAA05/wA6bz5KqtKnps+jjloJ4K4/JzthGbsSGQ=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/erreurs.ts": {
|
||||
"file": "erreurs2.js",
|
||||
|
|
@ -170,9 +188,9 @@
|
|||
"src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/erreurs.ts",
|
||||
"isEntry": true,
|
||||
"imports": [
|
||||
"_index.C9ScFdVV.js"
|
||||
"_index.DYThEupQ.js"
|
||||
],
|
||||
"integrity": "sha512-eI8yOqOBdmtFY3SAR+IWBaj7FhNuKDpbrAg1K8OKl5QlrU+m78xejcTpDt8+FqTdXTDS2LY2EySpDuBT8kBfng=="
|
||||
"integrity": "sha512-y8NNRe15U9yhgtXjcaes5VIX6c1pEK+iy2xwr7dFN9THegA0KdMng7+yflWcpU3jp26pie/sACB8nUGnB+g1LA=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/messages.ts": {
|
||||
"file": "messages2.js",
|
||||
|
|
@ -180,10 +198,10 @@
|
|||
"src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/messages.ts",
|
||||
"isEntry": true,
|
||||
"imports": [
|
||||
"_index.C9ScFdVV.js",
|
||||
"_index.DYThEupQ.js",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/messages.ts"
|
||||
],
|
||||
"integrity": "sha512-xXCa4oCcnuvDew93KLXCOvVh1JN4vgCS5AeP1fhgbu97RH98rWl1/MQF8+c5YedTtvKQNfeId5LfQM4uCCcHew=="
|
||||
"integrity": "sha512-XV6A0HF58T6U5DT/i7pRM2UnieWXQfeEpGdTVVuYrqoFuk5gwuIpFcdSbQeP+3pZmAW1RmAtu8aPqFUn64U7Rw=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/utils.ts": {
|
||||
"file": "utils.js",
|
||||
|
|
@ -194,10 +212,10 @@
|
|||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/dom.ts",
|
||||
"_chunk-7BKSRZNG.F4GWJRq9.js",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/erreurs.ts",
|
||||
"_exports.BNibT8R5.js",
|
||||
"_exports.CqgMoAXr.js",
|
||||
"_Either.DDEPhGsy.js"
|
||||
],
|
||||
"integrity": "sha512-yN0a8PmVmEmLg4ULsJDr9zEzH9JnozImw4wnopOueDzl5yN6xrm+GBcT/dgYH8jdpmQ1GYtTKvCrsIcB0zHyLA=="
|
||||
"integrity": "sha512-7JdNqUHZ73wDUf4iPpqqv8sG0fLn3lfANO7U5vct4AC6Ywg5kYQwwozfWxbfqrwPswZdVbkDI4oimTH9A7CObg=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/scripts-bouton-panier.ts": {
|
||||
"file": "scripts-bouton-panier.js",
|
||||
|
|
@ -212,12 +230,12 @@
|
|||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/messages.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/utils.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/erreurs.ts",
|
||||
"_exports.BNibT8R5.js",
|
||||
"_exports.CqgMoAXr.js",
|
||||
"_Either.DDEPhGsy.js",
|
||||
"_index.C9ScFdVV.js",
|
||||
"_index.DYThEupQ.js",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/messages.ts"
|
||||
],
|
||||
"integrity": "sha512-oL/TP1nUTL2L0Cd8s+1q8U47Xyx4J2x2HpvlNx9l5155QpKD/ppBrXhngffiXe+GjC6iv+Rytfa+kMCMaauzPw=="
|
||||
"integrity": "sha512-LuFgM+BdYCb8YV6hv0fhV2aaihNjoUfqER3NeB3ZMKmAtNvlGB2pSvM2hm4FonQqWbMWUfD6bAUSIjjZuCwFRg=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/scripts-page-panier.ts": {
|
||||
"file": "scripts-page-panier.js",
|
||||
|
|
@ -227,7 +245,7 @@
|
|||
"imports": [
|
||||
"_index.Dxgx1GXj.js",
|
||||
"_chunk-7BKSRZNG.F4GWJRq9.js",
|
||||
"_index.C9ScFdVV.js",
|
||||
"_index.DYThEupQ.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",
|
||||
|
|
@ -237,14 +255,16 @@
|
|||
"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/cart-remove-item.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/cart-update-item.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/cart.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/erreurs.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/utils.ts",
|
||||
"_Either.DDEPhGsy.js",
|
||||
"_exports.BNibT8R5.js",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/messages.ts"
|
||||
"_exports.CqgMoAXr.js",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/messages.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/cart.ts"
|
||||
],
|
||||
"integrity": "sha512-21LRx7In3xsKuO6+J+UAlwL/NphWXhHdwa+J3rA0te4UJIi2MSleiFiqHk/fXytM6+dfalEzwuBuASeF1glbRQ=="
|
||||
"integrity": "sha512-J8hoZecxicG126OsyOzrGPDEWEXDxxBjpFGMox6IkAoLYk1HViBN/K4ytL1qN4SKEIxCNsrrBuJpmJZWOXqZdg=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/scripts-page-produit.ts": {
|
||||
"file": "scripts-page-produit.js",
|
||||
|
|
@ -254,7 +274,7 @@
|
|||
"imports": [
|
||||
"_index.Dxgx1GXj.js",
|
||||
"_chunk-7BKSRZNG.F4GWJRq9.js",
|
||||
"_index.C9ScFdVV.js",
|
||||
"_index.DYThEupQ.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",
|
||||
|
|
@ -266,8 +286,9 @@
|
|||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/erreurs.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/utils.ts",
|
||||
"_Either.DDEPhGsy.js",
|
||||
"_exports.BNibT8R5.js"
|
||||
"_exports.CqgMoAXr.js",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/cart.ts"
|
||||
],
|
||||
"integrity": "sha512-a87nfnaiYWWa/g6YZEHRbQ8vx0xM1EhhiOoIkZTUcl3CEyJtRM5hsIA2FkxgsVcRO2w3FrSKHRuZF4jOmx01EQ=="
|
||||
"integrity": "sha512-g5gLgWCP/xWo+sMHO9g/uc9IljaUZqkN2rvUakwBKPGUSBGK7Qj+BF3lpjvzXjMMei1iK5rhkK3OfbB97z0KWQ=="
|
||||
}
|
||||
}
|
||||
|
|
@ -1,3 +1,3 @@
|
|||
import{d as R}from"./api2.js";import{r as F}from"./Either.DDEPhGsy.js";const H="application/json",S="Content-Type",y=Symbol(),w=Symbol();function C(t={}){var e;return(e=Object.entries(t).find(([o])=>o.toLowerCase()===S.toLowerCase()))===null||e===void 0?void 0:e[1]}function P(t){return/^application\/.*json.*/.test(t)}const u=function(t,e,o=!1){return Object.entries(e).reduce((c,[i,l])=>{const f=t[i];return Array.isArray(f)&&Array.isArray(l)?c[i]=o?[...f,...l]:l:typeof f=="object"&&typeof l=="object"?c[i]=u(f,l,o):c[i]=l,c},{...t})},g={options:{},errorType:"text",polyfills:{},polyfill(t,e=!0,o=!1,...c){const i=this.polyfills[t]||(typeof self<"u"?self[t]:null)||(typeof global<"u"?global[t]:null);if(e&&!i)throw new Error(t+" is not defined");return o&&i?new i(...c):i}};function L(t,e=!1){g.options=e?t:u(g.options,t)}function N(t,e=!1){g.polyfills=e?t:u(g.polyfills,t)}function I(t){g.errorType=t}const J=t=>e=>t.reduceRight((o,c)=>c(o),e)||e;class x extends Error{}const U=t=>{const e=Object.create(null);t=t._addons.reduce((r,s)=>s.beforeRequest&&s.beforeRequest(r,t._options,e)||r,t);const{_url:o,_options:c,_config:i,_catchers:l,_resolvers:f,_middlewares:m,_addons:E}=t,d=new Map(l),D=u(i.options,c);let j=o;const v=J(m)((r,s)=>(j=r,i.polyfill("fetch")(r,s)))(o,D),b=new Error,A=v.catch(r=>{throw{[y]:r}}).then(r=>{var s;if(!r.ok){const n=new x;if(n.cause=b,n.stack=n.stack+`
|
||||
import{e as R}from"./api2.js";import{r as F}from"./Either.DDEPhGsy.js";const H="application/json",S="Content-Type",y=Symbol(),w=Symbol();function C(t={}){var e;return(e=Object.entries(t).find(([o])=>o.toLowerCase()===S.toLowerCase()))===null||e===void 0?void 0:e[1]}function P(t){return/^application\/.*json.*/.test(t)}const u=function(t,e,o=!1){return Object.entries(e).reduce((c,[i,l])=>{const f=t[i];return Array.isArray(f)&&Array.isArray(l)?c[i]=o?[...f,...l]:l:typeof f=="object"&&typeof l=="object"?c[i]=u(f,l,o):c[i]=l,c},{...t})},g={options:{},errorType:"text",polyfills:{},polyfill(t,e=!0,o=!1,...c){const i=this.polyfills[t]||(typeof self<"u"?self[t]:null)||(typeof global<"u"?global[t]:null);if(e&&!i)throw new Error(t+" is not defined");return o&&i?new i(...c):i}};function L(t,e=!1){g.options=e?t:u(g.options,t)}function N(t,e=!1){g.polyfills=e?t:u(g.polyfills,t)}function I(t){g.errorType=t}const J=t=>e=>t.reduceRight((o,c)=>c(o),e)||e;class x extends Error{}const U=t=>{const e=Object.create(null);t=t._addons.reduce((r,s)=>s.beforeRequest&&s.beforeRequest(r,t._options,e)||r,t);const{_url:o,_options:c,_config:i,_catchers:l,_resolvers:f,_middlewares:m,_addons:E}=t,d=new Map(l),D=u(i.options,c);let j=o;const v=J(m)((r,s)=>(j=r,i.polyfill("fetch")(r,s)))(o,D),b=new Error,A=v.catch(r=>{throw{[y]:r}}).then(r=>{var s;if(!r.ok){const n=new x;if(n.cause=b,n.stack=n.stack+`
|
||||
CAUSE: `+b.stack,n.response=r,n.status=r.status,n.url=j,r.type==="opaque")throw n;const a=i.errorType==="json"||((s=r.headers.get("Content-Type"))===null||s===void 0?void 0:s.split(";")[0])==="application/json";return(i.errorType?a?r.text():r[i.errorType]():Promise.resolve(r.body)).then(h=>{throw n.message=typeof h=="string"?h:r.statusText,h&&(a&&typeof h=="string"?(n.text=h,n.json=JSON.parse(h)):n[i.errorType]=h),n})}return r}),O=r=>r.catch(s=>{const n=Object.prototype.hasOwnProperty.call(s,y),a=n?s[y]:s,T=a?.status&&d.get(a.status)||d.get(a?.name)||n&&d.has(y)&&d.get(y);if(T)return T(a,t);const h=d.get(w);if(h)return h(a,t);throw a}),_=r=>s=>O(r?A.then(n=>n&&n[r]()).then(n=>s?s(n):n):A.then(n=>s?s(n):n)),M={_wretchReq:t,_fetchReq:v,_sharedState:e,res:_(null),json:_("json"),blob:_("blob"),formData:_("formData"),arrayBuffer:_("arrayBuffer"),text:_("text"),error(r,s){return d.set(r,s),this},badRequest(r){return this.error(400,r)},unauthorized(r){return this.error(401,r)},forbidden(r){return this.error(403,r)},notFound(r){return this.error(404,r)},timeout(r){return this.error(408,r)},internalError(r){return this.error(500,r)},fetchError(r){return this.error(y,r)}},q=E.reduce((r,s)=>({...r,...typeof s.resolver=="function"?s.resolver(r):s.resolver}),M);return f.reduce((r,s)=>s(r,t),q)},k={_url:"",_options:{},_config:g,_catchers:new Map,_resolvers:[],_deferred:[],_middlewares:[],_addons:[],addon(t){return{...this,_addons:[...this._addons,t],...t.wretch}},errorType(t){return{...this,_config:{...this._config,errorType:t}}},polyfills(t,e=!1){return{...this,_config:{...this._config,polyfills:e?t:u(this._config.polyfills,t)}}},url(t,e=!1){if(e)return{...this,_url:t};const o=this._url.split("?");return{...this,_url:o.length>1?o[0]+t+"?"+o[1]:this._url+t}},options(t,e=!1){return{...this,_options:e?t:u(this._options,t)}},headers(t){const e=t?Array.isArray(t)?Object.fromEntries(t):"entries"in t?Object.fromEntries(t.entries()):t:{};return{...this,_options:u(this._options,{headers:e})}},accept(t){return this.headers({Accept:t})},content(t){return this.headers({[S]:t})},auth(t){return this.headers({Authorization:t})},catcher(t,e){const o=new Map(this._catchers);return o.set(t,e),{...this,_catchers:o}},catcherFallback(t){return this.catcher(w,t)},resolve(t,e=!1){return{...this,_resolvers:e?[t]:[...this._resolvers,t]}},defer(t,e=!1){return{...this,_deferred:e?[t]:[...this._deferred,t]}},middlewares(t,e=!1){return{...this,_middlewares:e?t:[...this._middlewares,...t]}},fetch(t=this._options.method,e="",o=null){let c=this.url(e).options({method:t});const i=C(c._options.headers),l=this._config.polyfill("FormData",!1),f=typeof o=="object"&&!(l&&o instanceof l)&&(!c._options.headers||!i||P(i));return c=o?f?c.json(o,i):c.body(o):c,U(c._deferred.reduce((m,E)=>E(m,m._url,m._options),c))},get(t=""){return this.fetch("GET",t)},delete(t=""){return this.fetch("DELETE",t)},put(t,e=""){return this.fetch("PUT",e,t)},post(t,e=""){return this.fetch("POST",e,t)},patch(t,e=""){return this.fetch("PATCH",e,t)},head(t=""){return this.fetch("HEAD",t)},opts(t=""){return this.fetch("OPTIONS",t)},body(t){return{...this,_options:{...this._options,body:t}}},json(t,e){const o=C(this._options.headers);return this.content(e||P(o)&&o||H).body(JSON.stringify(t))}};function p(t="",e={}){return{...k,_url:t,_options:e}}p.default=p;p.options=L;p.errorType=I;p.polyfills=N;p.WretchError=x;fetch(R,{credentials:"same-origin",headers:{"Content-Type":"application/json"},method:"GET",mode:"same-origin",signal:AbortSignal.timeout(5e3)}).then(F);p(R).content("application/json").options({credentials:"same-origin",mode:"same-origin",signal:AbortSignal.timeout(5e3)}).get().json().catch();
|
||||
//# sourceMappingURL=api.js.map
|
||||
|
|
|
|||
|
|
@ -1,2 +1,2 @@
|
|||
const E="wp-json",T=`/${E}/wc/store/cart`,t=`/${E}/wc/store/cart/add-item`,_=`/${E}/wc/store/cart/remove-item`,s="Nonce",I="retry-after",R="x-sentry-rate-limits";export{R as E,_ as R,I as a,t as b,s as c,T as d};
|
||||
const E="wp-json",t=`/${E}/wc/store/cart`,T=`/${E}/wc/store/cart/add-item`,_=`/${E}/wc/store/cart/remove-item`,s=`/${E}/wc/store/cart/update-item`,I="Nonce",R="retry-after",c="x-sentry-rate-limits";export{c as E,_ as R,R as a,s as b,T as c,I as d,t as e};
|
||||
//# sourceMappingURL=api2.js.map
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
{"version":3,"file":"api2.js","sources":["../../src/scripts/constantes/api.ts"],"sourcesContent":["// Chemins et Routes pour l'API WordPress\nexport const CHEMIN_API_REST = \"wp-json\";\nexport const ROUTE_API_PANIER = `/${CHEMIN_API_REST}/wc/store/cart`;\nexport const ROUTE_API_AJOUTE_ARTICLE_PANIER = `/${CHEMIN_API_REST}/wc/store/cart/add-item`;\nexport const ROUTE_API_RETIRE_ARTICLE_PANIER = `/${CHEMIN_API_REST}/wc/store/cart/remove-item`;\n\n// En-têtes\nexport const ENTETE_WC_NONCE = \"Nonce\";\nexport const ENTETE_GLITCHTIP_RETRY_AFTER = \"retry-after\";\nexport const ENTETE_GLITCHTIP_RATE_LIMITS = \"x-sentry-rate-limits\";\n"],"names":["CHEMIN_API_REST","ROUTE_API_PANIER","ROUTE_API_AJOUTE_ARTICLE_PANIER","ROUTE_API_RETIRE_ARTICLE_PANIER","ENTETE_WC_NONCE","ENTETE_GLITCHTIP_RETRY_AFTER","ENTETE_GLITCHTIP_RATE_LIMITS"],"mappings":"AACO,MAAMA,EAAkB,UAClBC,EAAmB,IAAID,CAAe,iBACtCE,EAAkC,IAAIF,CAAe,0BACrDG,EAAkC,IAAIH,CAAe,6BAGrDI,EAAkB,QAClBC,EAA+B,cAC/BC,EAA+B"}
|
||||
{"version":3,"file":"api2.js","sources":["../../src/scripts/constantes/api.ts"],"sourcesContent":["// Chemins et Routes pour l'API WordPress\nexport const CHEMIN_API_REST = \"wp-json\";\nexport const ROUTE_API_PANIER = `/${CHEMIN_API_REST}/wc/store/cart`;\nexport const ROUTE_API_AJOUTE_ARTICLE_PANIER = `/${CHEMIN_API_REST}/wc/store/cart/add-item`;\nexport const ROUTE_API_RETIRE_ARTICLE_PANIER = `/${CHEMIN_API_REST}/wc/store/cart/remove-item`;\nexport const ROUTE_API_MAJ_ARTICLE_PANIER = `/${CHEMIN_API_REST}/wc/store/cart/update-item`;\n\n// En-têtes\nexport const ENTETE_WC_NONCE = \"Nonce\";\nexport const ENTETE_GLITCHTIP_RETRY_AFTER = \"retry-after\";\nexport const ENTETE_GLITCHTIP_RATE_LIMITS = \"x-sentry-rate-limits\";\n"],"names":["CHEMIN_API_REST","ROUTE_API_PANIER","ROUTE_API_AJOUTE_ARTICLE_PANIER","ROUTE_API_RETIRE_ARTICLE_PANIER","ROUTE_API_MAJ_ARTICLE_PANIER","ENTETE_WC_NONCE","ENTETE_GLITCHTIP_RETRY_AFTER","ENTETE_GLITCHTIP_RATE_LIMITS"],"mappings":"AACO,MAAMA,EAAkB,UAClBC,EAAmB,IAAID,CAAe,iBACtCE,EAAkC,IAAIF,CAAe,0BACrDG,EAAkC,IAAIH,CAAe,6BACrDI,EAA+B,IAAIJ,CAAe,6BAGlDK,EAAkB,QAClBC,EAA+B,cAC/BC,EAA+B"}
|
||||
|
|
@ -1,2 +1,2 @@
|
|||
import{o as s,a as t,p as o,n as a,b as m,s as r}from"./index.C9ScFdVV.js";const n=s({attribute:r(),value:r()}),i=s({id:t(a()),quantity:t(a()),variation:t(m(n))}),p=e=>o(i,e);export{p};
|
||||
import{o as s,a as t,p as o,n as a,b as m,s as r}from"./index.DYThEupQ.js";const n=s({attribute:r(),value:r()}),i=s({id:t(a()),quantity:t(a()),variation:t(m(n))}),p=e=>o(i,e);export{p};
|
||||
//# sourceMappingURL=cart-add-item.js.map
|
||||
|
|
|
|||
|
|
@ -1,2 +1,2 @@
|
|||
import{o as e,s as o}from"./index.C9ScFdVV.js";const r=e({key:o()});export{r as W};
|
||||
import{o as e,s as o}from"./index.DYThEupQ.js";const r=e({key:o()});export{r as W};
|
||||
//# sourceMappingURL=cart-remove-item.js.map
|
||||
|
|
|
|||
|
|
@ -0,0 +1,2 @@
|
|||
import{o as a,s as t,c as e,m as s,n as r}from"./index.DYThEupQ.js";const o=a({key:t(),quantity:e(r(),s(1))});export{o as W};
|
||||
//# sourceMappingURL=cart-update-item.js.map
|
||||
|
|
@ -0,0 +1 @@
|
|||
{"version":3,"file":"cart-update-item.js","sources":["../../src/scripts/lib/schemas/cart-update-item.ts"],"sourcesContent":["import * as v from \"valibot\";\n\nexport const WCStoreCartUpdateItemArgsSchema = v.object({\n /** Unique identifier (key) for the basket item to update. */\n key: v.string(),\n /** New quantity of the item in the basket. */\n quantity: v.pipe(v.number(), v.minValue(1)),\n});\n"],"names":["WCStoreCartUpdateItemArgsSchema","v.object","v.string","v.pipe","v.number","v.minValue"],"mappings":"oEAEa,MAAAA,EAAkCC,EAAS,CAEtD,IAAKC,EAAS,EAEd,SAAUC,EAAOC,EAAY,EAAAC,EAAW,CAAC,CAAC,CAC5C,CAAC"}
|
||||
|
|
@ -1,2 +1,2 @@
|
|||
import{o as a,s as e,u as i,n,c as s,b as t,d as r,i as o}from"./index.C9ScFdVV.js";a({name:e(),package_id:i([n(),e()])});const m=a({billing_address:s(),coupons:s(),cross_sells:s(),errors:s(),extensions:s(),fees:s(),has_calculated_shipping:s(),items:t(s()),items_count:r(n(),o()),items_weight:s(),needs_payment:s(),needs_shipping:s(),payment_methods:s(),payment_requirements:s(),shipping_address:s(),shipping_rates:s(),totals:s()});export{m as W};
|
||||
import{o as n,d as i,e as r,s as e,u as s,n as t,b as a,f as _,c as o,g as m,h as l,i as p}from"./index.DYThEupQ.js";import{C as d}from"./cart2.js";const c=n({backorders_allowed:i(),catalog_visibility:r(d),description:e(),extensions:s(),id:t(),images:a(s()),item_data:a(s()),key:e(),low_stock_remaining:_([m()]),name:e(),permalink:o(e(),l()),prices:s(),quantity:t(),quantity_limits:s(),short_description:e(),show_backorder_badge:i(),sku:e(),sold_individually:i(),totals:s(),type:e(),variation:a(s())}),h=n({billing_address:s(),coupons:s(),cross_sells:s(),errors:s(),extensions:s(),fees:s(),has_calculated_shipping:s(),items:a(c),items_count:o(t(),p()),items_weight:s(),needs_payment:s(),needs_shipping:s(),payment_methods:s(),payment_requirements:s(),shipping_address:s(),shipping_rates:s(),totals:s()});export{h as W};
|
||||
//# sourceMappingURL=cart.js.map
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
{"version":3,"file":"cart.js","sources":["../../src/scripts/lib/schemas/cart.ts"],"sourcesContent":["import * as v from \"valibot\";\n\nconst WCStoreCartItemTotalsSchema = v.object({\n currency_code: v.string(),\n currency_decimal_separator: v.string(),\n currency_minor_unit: v.number(),\n currency_prefix: v.string(),\n currency_suffix: v.string(),\n currency_symbol: v.string(),\n currency_thousand_separator: v.string(),\n total_discount: v.string(),\n total_discount_tax: v.string(),\n});\n\nconst WCStoreCartItemShippingRateSchema = v.object({\n name: v.string(),\n package_id: v.union([v.number(), v.string()]),\n});\n\nconst WCStoreCartItemSchema = v.object({\n code: v.string(),\n discount_type: v.string(),\n shipping_rates: v.array(WCStoreCartItemShippingRateSchema),\n totals: v.array(WCStoreCartItemTotalsSchema),\n});\n\nexport const WCStoreCartSchema = v.object({\n billing_address: v.unknown(),\n coupons: v.unknown(),\n cross_sells: v.unknown(),\n errors: v.unknown(),\n extensions: v.unknown(),\n fees: v.unknown(),\n has_calculated_shipping: v.unknown(),\n items: v.array(v.unknown()),\n items_count: v.pipe(v.number(), v.integer()),\n items_weight: v.unknown(),\n needs_payment: v.unknown(),\n needs_shipping: v.unknown(),\n payment_methods: v.unknown(),\n payment_requirements: v.unknown(),\n shipping_address: v.unknown(),\n shipping_rates: v.unknown(),\n totals: v.unknown(),\n});\n"],"names":["v.object","v.string","v.union","v.number","WCStoreCartSchema","v.unknown","v.array","v.pipe","v.integer"],"mappings":"AAc0CA,OAAAA,KAAAA,EAAAA,KAAAA,EAAAA,KAAAA,EAAAA,EAAAA,KAAAA,EAAAA,KAAAA,EAAAA,KAAAA,EAAAA,KAAAA,MAAAA,sBAAAA,EAAS,CACjD,KAAMC,EAAS,EACf,WAAYC,EAAQ,CAACC,IAAYF,EAAU,CAAA,CAAC,CAC9C,CAAC,EASY,MAAAG,EAAoBJ,EAAS,CACxC,gBAAiBK,EAAU,EAC3B,QAASA,EAAU,EACnB,YAAaA,EAAU,EACvB,OAAQA,EAAU,EAClB,WAAYA,EAAU,EACtB,KAAMA,EAAU,EAChB,wBAAyBA,EAAU,EACnC,MAAOC,EAAQD,GAAW,EAC1B,YAAaE,EAAOJ,EAAY,EAAAK,GAAW,EAC3C,aAAcH,EAAU,EACxB,cAAeA,EAAU,EACzB,eAAgBA,EAAU,EAC1B,gBAAiBA,EAAU,EAC3B,qBAAsBA,EAAU,EAChC,iBAAkBA,EAAU,EAC5B,eAAgBA,EAAU,EAC1B,OAAQA,EAAU,CACpB,CAAC"}
|
||||
{"version":3,"file":"cart.js","sources":["../../src/scripts/lib/schemas/cart.ts"],"sourcesContent":["import * as v from \"valibot\";\n\nimport { CATALOG_VISIBILITIES } from \"../../constantes/cart.ts\";\n\nexport const WCStoreCartItemSchema = v.object({\n \"backorders_allowed\": v.boolean(),\n \"catalog_visibility\": v.enum(CATALOG_VISIBILITIES),\n \"description\": v.string(),\n \"extensions\": v.unknown(),\n \"id\": v.number(),\n \"images\": v.array(v.unknown()),\n \"item_data\": v.array(v.unknown()),\n \"key\": v.string(),\n \"low_stock_remaining\": v.union([v.null()]),\n \"name\": v.string(),\n \"permalink\": v.pipe(v.string(), v.url()),\n \"prices\": v.unknown(),\n \"quantity\": v.number(),\n \"quantity_limits\": v.unknown(),\n \"short_description\": v.string(),\n \"show_backorder_badge\": v.boolean(),\n \"sku\": v.string(),\n \"sold_individually\": v.boolean(),\n \"totals\": v.unknown(),\n \"type\": v.string(),\n \"variation\": v.array(v.unknown()),\n});\n\nexport const WCStoreCartSchema = v.object({\n billing_address: v.unknown(),\n coupons: v.unknown(),\n cross_sells: v.unknown(),\n errors: v.unknown(),\n extensions: v.unknown(),\n fees: v.unknown(),\n has_calculated_shipping: v.unknown(),\n items: v.array(WCStoreCartItemSchema),\n items_count: v.pipe(v.number(), v.integer()),\n items_weight: v.unknown(),\n needs_payment: v.unknown(),\n needs_shipping: v.unknown(),\n payment_methods: v.unknown(),\n payment_requirements: v.unknown(),\n shipping_address: v.unknown(),\n shipping_rates: v.unknown(),\n totals: v.unknown(),\n});\n"],"names":["WCStoreCartItemSchema","v.object","v.boolean","v.enum","CATALOG_VISIBILITIES","v.string","v.unknown","v.number","v.array","v.union","v.null","v.pipe","v.url","WCStoreCartSchema","v.integer"],"mappings":"oJAIa,MAAAA,EAAwBC,EAAS,CAC5C,mBAAsBC,EAAU,EAChC,mBAAsBC,EAAOC,CAAoB,EACjD,YAAeC,EAAS,EACxB,WAAcC,EAAU,EACxB,GAAMC,EAAS,EACf,OAAUC,EAAQF,GAAW,EAC7B,UAAaE,EAAQF,GAAW,EAChC,IAAOD,EAAS,EAChB,oBAAuBI,EAAQ,CAACC,EAAE,CAAM,CAAC,EACzC,KAAQL,EAAS,EACjB,UAAaM,EAAON,EAAY,EAAAO,GAAO,EACvC,OAAUN,EAAU,EACpB,SAAYC,EAAS,EACrB,gBAAmBD,EAAU,EAC7B,kBAAqBD,EAAS,EAC9B,qBAAwBH,EAAU,EAClC,IAAOG,EAAS,EAChB,kBAAqBH,EAAU,EAC/B,OAAUI,EAAU,EACpB,KAAQD,EAAS,EACjB,UAAaG,EAAQF,GAAW,CAClC,CAAC,EAEYO,EAAoBZ,EAAS,CACxC,gBAAiBK,EAAU,EAC3B,QAASA,EAAU,EACnB,YAAaA,EAAU,EACvB,OAAQA,EAAU,EAClB,WAAYA,EAAU,EACtB,KAAMA,EAAU,EAChB,wBAAyBA,EAAU,EACnC,MAAOE,EAAQR,CAAqB,EACpC,YAAaW,EAAOJ,EAAY,EAAAO,GAAW,EAC3C,aAAcR,EAAU,EACxB,cAAeA,EAAU,EACzB,eAAgBA,EAAU,EAC1B,gBAAiBA,EAAU,EAC3B,qBAAsBA,EAAU,EAChC,iBAAkBA,EAAU,EAC5B,eAAgBA,EAAU,EAC1B,OAAQA,EAAU,CACpB,CAAC"}
|
||||
2
web/app/themes/haiku-atelier-2024/assets/js/cart2.js
Normal file
2
web/app/themes/haiku-atelier-2024/assets/js/cart2.js
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
const I={INVISIBLE:"invisible",VISIBLE:"visible"};export{I as C};
|
||||
//# sourceMappingURL=cart2.js.map
|
||||
1
web/app/themes/haiku-atelier-2024/assets/js/cart2.js.map
Normal file
1
web/app/themes/haiku-atelier-2024/assets/js/cart2.js.map
Normal file
|
|
@ -0,0 +1 @@
|
|||
{"version":3,"file":"cart2.js","sources":["../../src/scripts/constantes/cart.ts"],"sourcesContent":["export const CATALOG_VISIBILITIES = {\n INVISIBLE: \"invisible\",\n VISIBLE: \"visible\",\n} as const;\n"],"names":["CATALOG_VISIBILITIES"],"mappings":"AAAO,MAAMA,EAAuB,CAClC,UAAW,YACX,QAAS,SACX"}
|
||||
|
|
@ -1,2 +1,2 @@
|
|||
const E="aria-selected",T="hidden",t="data-contient-articles",a="disabled",s="data-cle-panier",_="#page-panier",o=".compte-panier a[rel='cart']",n="#selecteur-variation",c="#bouton-ajout-panier",e="a[role='tab']",R="section[role='tabpanel']",U="article",N="button.detail-produit__actions__suppression",S="button.detail-produit__actions__soustraction",i="input";export{t as A,o as S,U as a,_ as b,s as c,N as d,S as e,i as f,c as g,n as h,e as i,R as j,E as k,T as l,a as m};
|
||||
const E="aria-selected",T="hidden",t="data-contient-articles",a="disabled",_="data-cle-panier",s="#page-panier",o=".compte-panier a[rel='cart']",n="#selecteur-variation",U="#bouton-ajout-panier",c="a[role='tab']",e="section[role='tabpanel']",N="article",R="button.detail-produit__actions__suppression",i="button.detail-produit__actions__soustraction",S="button.detail-produit__actions__addition",I="input";export{t as A,o as S,N as a,s as b,_ as c,i as d,I as e,S as f,R as g,U as h,n as i,c as j,e as k,E as l,T as m,a as n};
|
||||
//# sourceMappingURL=dom.js.map
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
{"version":3,"file":"dom.js","sources":["../../src/scripts/constantes/dom.ts"],"sourcesContent":["/** Constantes de valeurs pour la manipulation du DOM : sélecteurs et attributs. */\n\nexport const ATTRIBUT_ARIA_SELECTED = \"aria-selected\";\nexport const ATTRIBUT_ARIA_HIDDEN = \"aria-hidden\";\nexport const ATTRIBUT_HIDDEN = \"hidden\";\nexport const ATTRIBUT_CONTIENT_ARTICLES = \"data-contient-articles\";\nexport const ATTRIBUT_DESACTIVE = \"disabled\";\nexport const ATTRIBUT_CLE_PANIER = \"data-cle-panier\";\n\nexport const SELECTEUR_CONTENEUR_PANIER = \"#page-panier\";\nexport const SELECTEUR_BOUTON_PANIER = \".compte-panier a[rel='cart']\";\nexport const SELECTEUR_SELECTEUR_QUANTITE = \"#selecteur-variation\";\nexport const SELECTEUR_BOUTON_AJOUT_PANIER = \"#bouton-ajout-panier\";\nexport const SELECTEUR_LIENS_ONGLETS = \"a[role='tab']\";\nexport const SELECTEUR_SECTIONS_CONTENUS = \"section[role='tabpanel']\";\n\n// Panier\nexport const SELECTEUR_ENTREES_PANIER = \"article\";\nexport const SELECTEUR_BOUTON_SUPPRESSION_PANIER = \"button.detail-produit__actions__suppression\";\nexport const SELECTEUR_BOUTON_SOUSTRACTION_QUANTITE = \"button.detail-produit__actions__soustraction\";\nexport const SELECTEUR_BOUTON_ADDITION_QUANTITE = \"button.detail-produit__actions__addition\";\nexport const SELECTEUR_CHAMP_QUANTITE = \"input\";\n"],"names":["ATTRIBUT_ARIA_SELECTED","ATTRIBUT_HIDDEN","ATTRIBUT_CONTIENT_ARTICLES","ATTRIBUT_DESACTIVE","ATTRIBUT_CLE_PANIER","SELECTEUR_CONTENEUR_PANIER","SELECTEUR_BOUTON_PANIER","SELECTEUR_SELECTEUR_QUANTITE","SELECTEUR_BOUTON_AJOUT_PANIER","SELECTEUR_LIENS_ONGLETS","SELECTEUR_SECTIONS_CONTENUS","SELECTEUR_ENTREES_PANIER","SELECTEUR_BOUTON_SUPPRESSION_PANIER","SELECTEUR_BOUTON_SOUSTRACTION_QUANTITE","SELECTEUR_CHAMP_QUANTITE"],"mappings":"AAEO,MAAMA,EAAyB,gBAEzBC,EAAkB,SAClBC,EAA6B,yBAC7BC,EAAqB,WACrBC,EAAsB,kBAEtBC,EAA6B,eAC7BC,EAA0B,+BAC1BC,EAA+B,uBAC/BC,EAAgC,uBAChCC,EAA0B,gBAC1BC,EAA8B,2BAG9BC,EAA2B,UAC3BC,EAAsC,8CACtCC,EAAyC,+CAEzCC,EAA2B"}
|
||||
{"version":3,"file":"dom.js","sources":["../../src/scripts/constantes/dom.ts"],"sourcesContent":["/** Constantes de valeurs pour la manipulation du DOM : sélecteurs et attributs. */\n\nexport const ATTRIBUT_ARIA_SELECTED = \"aria-selected\";\nexport const ATTRIBUT_ARIA_HIDDEN = \"aria-hidden\";\nexport const ATTRIBUT_HIDDEN = \"hidden\";\nexport const ATTRIBUT_CONTIENT_ARTICLES = \"data-contient-articles\";\nexport const ATTRIBUT_DESACTIVE = \"disabled\";\nexport const ATTRIBUT_CLE_PANIER = \"data-cle-panier\";\n\nexport const SELECTEUR_CONTENEUR_PANIER = \"#page-panier\";\nexport const SELECTEUR_BOUTON_PANIER = \".compte-panier a[rel='cart']\";\nexport const SELECTEUR_SELECTEUR_QUANTITE = \"#selecteur-variation\";\nexport const SELECTEUR_BOUTON_AJOUT_PANIER = \"#bouton-ajout-panier\";\nexport const SELECTEUR_LIENS_ONGLETS = \"a[role='tab']\";\nexport const SELECTEUR_SECTIONS_CONTENUS = \"section[role='tabpanel']\";\n\n// Panier\nexport const SELECTEUR_ENTREES_PANIER = \"article\";\nexport const SELECTEUR_BOUTON_SUPPRESSION_PANIER = \"button.detail-produit__actions__suppression\";\nexport const SELECTEUR_BOUTON_SOUSTRACTION_QUANTITE = \"button.detail-produit__actions__soustraction\";\nexport const SELECTEUR_BOUTON_ADDITION_QUANTITE = \"button.detail-produit__actions__addition\";\nexport const SELECTEUR_CHAMP_QUANTITE = \"input\";\n"],"names":["ATTRIBUT_ARIA_SELECTED","ATTRIBUT_HIDDEN","ATTRIBUT_CONTIENT_ARTICLES","ATTRIBUT_DESACTIVE","ATTRIBUT_CLE_PANIER","SELECTEUR_CONTENEUR_PANIER","SELECTEUR_BOUTON_PANIER","SELECTEUR_SELECTEUR_QUANTITE","SELECTEUR_BOUTON_AJOUT_PANIER","SELECTEUR_LIENS_ONGLETS","SELECTEUR_SECTIONS_CONTENUS","SELECTEUR_ENTREES_PANIER","SELECTEUR_BOUTON_SUPPRESSION_PANIER","SELECTEUR_BOUTON_SOUSTRACTION_QUANTITE","SELECTEUR_BOUTON_ADDITION_QUANTITE","SELECTEUR_CHAMP_QUANTITE"],"mappings":"AAEO,MAAMA,EAAyB,gBAEzBC,EAAkB,SAClBC,EAA6B,yBAC7BC,EAAqB,WACrBC,EAAsB,kBAEtBC,EAA6B,eAC7BC,EAA0B,+BAC1BC,EAA+B,uBAC/BC,EAAgC,uBAChCC,EAA0B,gBAC1BC,EAA8B,2BAG9BC,EAA2B,UAC3BC,EAAsC,8CACtCC,EAAyC,+CACzCC,EAAqC,2CACrCC,EAA2B"}
|
||||
|
|
@ -1,2 +1,2 @@
|
|||
import{x as m}from"./chunk-7BKSRZNG.F4GWJRq9.js";import{e as n,f as a,g as c,h as o}from"./erreurs.js";import{E as s,r as E,l as i}from"./Either.DDEPhGsy.js";import"./exports.BNibT8R5.js";function p(e){return e!==null}function l(e){return e===void 0?!0:typeof e=="string"||Array.isArray(e)?e.length===0:Object.keys(e).length===0}const f=e=>e,L=e=>r=>s.encase(()=>e.querySelector(r)).mapLeft(t=>n(c(r))).chain(t=>p(t)?E(t):i(n(o(r)))),R=e=>r=>s.encase(()=>m(e.querySelectorAll(r),Array.from)).mapLeft(t=>n(c(r))).chain(t=>l(t)?i(n(o(r))):E(t)),S=e=>e.caseOf({Left:a,Right:f}),g=e=>e.caseOf({Left:a,Right:f});export{g as a,L as b,R as c,S as r};
|
||||
import{x as m}from"./chunk-7BKSRZNG.F4GWJRq9.js";import{e as n,f as a,g as c,h as o}from"./erreurs.js";import{E as s,r as E,l as i}from"./Either.DDEPhGsy.js";import"./exports.CqgMoAXr.js";function p(e){return e!==null}function l(e){return e===void 0?!0:typeof e=="string"||Array.isArray(e)?e.length===0:Object.keys(e).length===0}const f=e=>e,L=e=>r=>s.encase(()=>e.querySelector(r)).mapLeft(t=>n(c(r))).chain(t=>p(t)?E(t):i(n(o(r)))),R=e=>r=>s.encase(()=>m(e.querySelectorAll(r),Array.from)).mapLeft(t=>n(c(r))).chain(t=>l(t)?i(n(o(r))):E(t)),S=e=>e.caseOf({Left:a,Right:f}),g=e=>e.caseOf({Left:a,Right:f});export{g as a,L as b,R as c,S as r};
|
||||
//# sourceMappingURL=dom2.js.map
|
||||
|
|
|
|||
|
|
@ -1,2 +1,2 @@
|
|||
import{$ as o}from"./exports.BNibT8R5.js";const u=r=>`Le selecteur "${r}" est invalide`,d=r=>`La requête "${r}" n'a retourné aucun Élément.`,i=r=>new SyntaxError(r);class s extends Error{constructor(e="400 BadRequestError"){super(e),this.name="BadRequestError"}}class t extends Error{constructor(e="401 UnauthorizedError"){super(e),this.name="UnauthorizedError"}}class n extends Error{constructor(e="404 NotFoundError"){super(e),this.name="NotFoundError"}}class E extends Error{constructor(e="500 ServerError"){super(e),this.name="ServerError"}}class a extends Error{constructor(e){super(JSON.stringify(e)),this.name="UnknownError"}}class l extends Error{constructor(e){super(JSON.stringify(e)),this.name="DOMElementAbsentError"}}const h=r=>new a(r),m=r=>{throw r},w=r=>{throw new s(`(${r.code}) ${r.message}`)},p=r=>{throw new t(`(${r.code}) ${r.message}`)},v=r=>{throw new n(`(${r.code}) ${r.message}`)},R=r=>{throw new E(r)},S=r=>(console.error(r),o(r)),x=r=>{throw o(r),r};export{l as D,h as E,w as a,p as b,v as c,m as d,i as e,x as f,u as g,d as h,R as l,S as r};
|
||||
import{$ as o}from"./exports.CqgMoAXr.js";const d=r=>`Le selecteur "${r}" est invalide`,h=r=>`La requête "${r}" n'a retourné aucun Élément.`,i=r=>new SyntaxError(r);class s extends Error{constructor(e="400 BadRequestError"){super(e),this.name="BadRequestError"}}class t extends Error{constructor(e="401 UnauthorizedError"){super(e),this.name="UnauthorizedError"}}class n extends Error{constructor(e="404 NotFoundError"){super(e),this.name="NotFoundError"}}class E extends Error{constructor(e="500 ServerError"){super(e),this.name="ServerError"}}class a extends Error{constructor(e){super(JSON.stringify(e)),this.name="UnknownError"}}const l=r=>new a(r),w=r=>{throw r},m=r=>{throw new s(`(${r.code}) ${r.message}`)},p=r=>{throw new t(`(${r.code}) ${r.message}`)},v=r=>{throw new n(`(${r.code}) ${r.message}`)},R=r=>{throw new E(r)},c=r=>(console.error(r),o(r)),S=r=>{throw c(r),r};export{l as E,m as a,p as b,v as c,w as d,i as e,S as f,d as g,h,R as l,c as r};
|
||||
//# sourceMappingURL=erreurs.js.map
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -1,2 +1,2 @@
|
|||
import{e as t,o as s,n as r,s as o}from"./index.C9ScFdVV.js";const e=s({code:o(),data:s({status:r()}),message:o()}),c=s({body:e,status:r()}),n=a=>t(c,a);export{n as i};
|
||||
import{j as a,o as s,n as r,s as o}from"./index.DYThEupQ.js";const e=s({code:o(),data:s({status:r()}),message:o()}),c=s({body:e,status:r()}),n=t=>a(c,t);export{n as e};
|
||||
//# sourceMappingURL=erreurs2.js.map
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
{"version":3,"file":"erreurs2.js","sources":["../../src/scripts/lib/schemas/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 isWCError = (donnees: unknown): donnees is WCError => v.is(WCErrorSchema, donnees);\n"],"names":["WCErrorBodySchema","v.object","v.string","v.number","WCErrorSchema","isWCError","donnees","v.is"],"mappings":"6DAIa,MAAAA,EAAoBC,EAAS,CACxC,KAAMC,EAAS,EACf,KAAMD,EAAS,CACb,OAAQE,EAAS,CAAA,CAClB,EACD,QAASD,EAAS,CACpB,CAAC,EAEYE,EAAgBH,EAAS,CACpC,KAAMD,EACN,OAAQG,EAAS,CACnB,CAAC,EAEYE,EAAaC,GAAyCC,EAAKH,EAAeE,CAAO"}
|
||||
{"version":3,"file":"erreurs2.js","sources":["../../src/scripts/lib/schemas/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":["WCErrorBodySchema","v.object","v.string","v.number","WCErrorSchema","estWCError","donnees","v.is"],"mappings":"6DAIa,MAAAA,EAAoBC,EAAS,CACxC,KAAMC,EAAS,EACf,KAAMD,EAAS,CACb,OAAQE,EAAS,CAAA,CAClB,EACD,QAASD,EAAS,CACpB,CAAC,EAEYE,EAAgBH,EAAS,CACpC,KAAMD,EACN,OAAQG,EAAS,CACnB,CAAC,EAEYE,EAAcC,GAAyCC,EAAKH,EAAeE,CAAO"}
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -1,4 +1,4 @@
|
|||
import{x as _t}from"./chunk-7BKSRZNG.F4GWJRq9.js";import{E as me,a as ge}from"./api2.js";import{i as J,t as yt,c as Ge,D as ae,l as f,g as Et,G as h,C as vt,f as O,o as _e,a as C,b as We,d as V,r as Ye,S as Ke,e as k,h as ce,n as St,j as Xe,k as g,u as bt,m as B,p as ye,q as ue,s as Ee,v as kt,w as It,x as ze,y as Tt,z as Z,A as Je,B as ve,E as y,F as wt,H as Se,I as q,J as Ve,K as be,L as Rt,M as ke,N as le,O as Nt,P as Ct,Q as P,R as Ot,U as $,T as $t,V as Pt,W as Ie,X as Dt,Y as G,Z as Ft,_ as xt}from"./exports.BNibT8R5.js";function Ht(t,e,n=250,r,s,o,i){if(!o.exception||!o.exception.values||!i||!J(i.originalException,Error))return;const a=o.exception.values.length>0?o.exception.values[o.exception.values.length-1]:void 0;a&&(o.exception.values=Lt(Q(t,e,s,i.originalException,r,o.exception.values,a,0),n))}function Q(t,e,n,r,s,o,i,a){if(o.length>=n+1)return o;let c=[...o];if(J(r[s],Error)){Te(i,a);const u=t(e,r[s]),d=c.length;we(u,s,d,a),c=Q(t,e,n,r[s],s,[u,...c],u,d)}return Array.isArray(r.errors)&&r.errors.forEach((u,d)=>{if(J(u,Error)){Te(i,a);const l=t(e,u),m=c.length;we(l,`errors[${d}]`,m,a),c=Q(t,e,n,u,s,[l,...c],l,m)}}),c}function Te(t,e){t.mechanism=t.mechanism||{type:"generic",handled:!0},t.mechanism={...t.mechanism,...t.type==="AggregateError"&&{is_exception_group:!0},exception_id:e}}function we(t,e,n,r){t.mechanism=t.mechanism||{type:"generic",handled:!0},t.mechanism={...t.mechanism,type:"chained",source:e,exception_id:n,parent_id:r}}function Lt(t,e){return t.map(n=>(n.value&&(n.value=yt(n.value,e)),n))}function Ze(t){if(t!==void 0)return t>=400&&t<500?"warning":t>=500?"error":void 0}const Mt=/^(?:(\w+):)\/\/(?:(\w+)(?::(\w+)?)?@)([\w.-]+)(?::(\d+))?\/(.+)/;function Ut(t){return t==="http"||t==="https"}function W(t,e=!1){const{host:n,path:r,pass:s,port:o,projectId:i,protocol:a,publicKey:c}=t;return`${a}://${c}${e&&s?`:${s}`:""}@${n}${o?`:${o}`:""}/${r&&`${r}/`}${i}`}function jt(t){const e=Mt.exec(t);if(!e){Ge(()=>{console.error(`Invalid Sentry Dsn: ${t}`)});return}const[n,r,s="",o="",i="",a=""]=e.slice(1);let c="",u=a;const d=u.split("/");if(d.length>1&&(c=d.slice(0,-1).join("/"),u=d.pop()),u){const l=u.match(/^\d+/);l&&(u=l[0])}return Qe({host:o,pass:s,path:c,projectId:u,port:i,protocol:n,publicKey:r})}function Qe(t){return{protocol:t.protocol,publicKey:t.publicKey||"",pass:t.pass||"",host:t.host,port:t.port||"",path:t.path||"",projectId:t.projectId}}function Bt(t){if(!ae)return!0;const{port:e,projectId:n,protocol:r}=t;return["protocol","publicKey","host","projectId"].find(i=>t[i]?!1:(f.error(`Invalid Sentry Dsn: ${i} missing`),!0))?!1:n.match(/^\d+$/)?Ut(r)?e&&isNaN(parseInt(e,10))?(f.error(`Invalid Sentry Dsn: Invalid port ${e}`),!1):!0:(f.error(`Invalid Sentry Dsn: Invalid protocol ${r}`),!1):(f.error(`Invalid Sentry Dsn: Invalid projectId ${n}`),!1)}function At(t){const e=typeof t=="string"?jt(t):Qe(t);if(!(!e||!Bt(e)))return e}class b extends Error{constructor(e,n="warn"){super(e),this.message=e,this.name=new.target.prototype.constructor.name,Object.setPrototypeOf(this,new.target.prototype),this.logLevel=n}}const A={},Re={};function w(t,e){A[t]=A[t]||[],A[t].push(e)}function R(t,e){Re[t]||(e(),Re[t]=!0)}function S(t,e){const n=t&&A[t];if(n)for(const r of n)try{r(e)}catch(s){ae&&f.error(`Error while triggering instrumentation handler.
|
||||
import{x as _t}from"./chunk-7BKSRZNG.F4GWJRq9.js";import{E as me,a as ge}from"./api2.js";import{i as J,t as yt,c as Ge,D as ae,l as f,g as Et,G as h,C as vt,f as O,o as _e,a as C,b as We,d as V,r as Ye,S as Ke,e as k,h as ce,n as St,j as Xe,k as g,u as bt,m as B,p as ye,q as ue,s as Ee,v as kt,w as It,x as ze,y as Tt,z as Z,A as Je,B as ve,E as y,F as wt,H as Se,I as q,J as Ve,K as be,L as Rt,M as ke,N as le,O as Nt,P as Ct,Q as P,R as Ot,U as $,T as $t,V as Pt,W as Ie,X as Dt,Y as G,Z as Ft,_ as xt}from"./exports.CqgMoAXr.js";function Ht(t,e,n=250,r,s,o,i){if(!o.exception||!o.exception.values||!i||!J(i.originalException,Error))return;const a=o.exception.values.length>0?o.exception.values[o.exception.values.length-1]:void 0;a&&(o.exception.values=Lt(Q(t,e,s,i.originalException,r,o.exception.values,a,0),n))}function Q(t,e,n,r,s,o,i,a){if(o.length>=n+1)return o;let c=[...o];if(J(r[s],Error)){Te(i,a);const u=t(e,r[s]),d=c.length;we(u,s,d,a),c=Q(t,e,n,r[s],s,[u,...c],u,d)}return Array.isArray(r.errors)&&r.errors.forEach((u,d)=>{if(J(u,Error)){Te(i,a);const l=t(e,u),m=c.length;we(l,`errors[${d}]`,m,a),c=Q(t,e,n,u,s,[l,...c],l,m)}}),c}function Te(t,e){t.mechanism=t.mechanism||{type:"generic",handled:!0},t.mechanism={...t.mechanism,...t.type==="AggregateError"&&{is_exception_group:!0},exception_id:e}}function we(t,e,n,r){t.mechanism=t.mechanism||{type:"generic",handled:!0},t.mechanism={...t.mechanism,type:"chained",source:e,exception_id:n,parent_id:r}}function Lt(t,e){return t.map(n=>(n.value&&(n.value=yt(n.value,e)),n))}function Ze(t){if(t!==void 0)return t>=400&&t<500?"warning":t>=500?"error":void 0}const Mt=/^(?:(\w+):)\/\/(?:(\w+)(?::(\w+)?)?@)([\w.-]+)(?::(\d+))?\/(.+)/;function Ut(t){return t==="http"||t==="https"}function W(t,e=!1){const{host:n,path:r,pass:s,port:o,projectId:i,protocol:a,publicKey:c}=t;return`${a}://${c}${e&&s?`:${s}`:""}@${n}${o?`:${o}`:""}/${r&&`${r}/`}${i}`}function jt(t){const e=Mt.exec(t);if(!e){Ge(()=>{console.error(`Invalid Sentry Dsn: ${t}`)});return}const[n,r,s="",o="",i="",a=""]=e.slice(1);let c="",u=a;const d=u.split("/");if(d.length>1&&(c=d.slice(0,-1).join("/"),u=d.pop()),u){const l=u.match(/^\d+/);l&&(u=l[0])}return Qe({host:o,pass:s,path:c,projectId:u,port:i,protocol:n,publicKey:r})}function Qe(t){return{protocol:t.protocol,publicKey:t.publicKey||"",pass:t.pass||"",host:t.host,port:t.port||"",path:t.path||"",projectId:t.projectId}}function Bt(t){if(!ae)return!0;const{port:e,projectId:n,protocol:r}=t;return["protocol","publicKey","host","projectId"].find(i=>t[i]?!1:(f.error(`Invalid Sentry Dsn: ${i} missing`),!0))?!1:n.match(/^\d+$/)?Ut(r)?e&&isNaN(parseInt(e,10))?(f.error(`Invalid Sentry Dsn: Invalid port ${e}`),!1):!0:(f.error(`Invalid Sentry Dsn: Invalid protocol ${r}`),!1):(f.error(`Invalid Sentry Dsn: Invalid projectId ${n}`),!1)}function At(t){const e=typeof t=="string"?jt(t):Qe(t);if(!(!e||!Bt(e)))return e}class b extends Error{constructor(e,n="warn"){super(e),this.message=e,this.name=new.target.prototype.constructor.name,Object.setPrototypeOf(this,new.target.prototype),this.logLevel=n}}const A={},Re={};function w(t,e){A[t]=A[t]||[],A[t].push(e)}function R(t,e){Re[t]||(e(),Re[t]=!0)}function S(t,e){const n=t&&A[t];if(n)for(const r of n)try{r(e)}catch(s){ae&&f.error(`Error while triggering instrumentation handler.
|
||||
Type: ${t}
|
||||
Name: ${Et(r)}
|
||||
Error:`,s)}}function qt(t){const e="console";w(e,t),R(e,Gt)}function Gt(){"console"in h&&vt.forEach(function(t){t in h.console&&O(h.console,t,function(e){return _e[t]=e,function(...n){S("console",{args:n,level:t});const s=_e[t];s&&s.apply(h.console,n)}})})}const ee=h;function Wt(){if(!("fetch"in ee))return!1;try{return new Headers,new Request("http://www.example.com"),new Response,!0}catch{return!1}}function Ne(t){return t&&/^function\s+\w+\(\)\s+\{\s+\[native code\]\s+\}$/.test(t.toString())}function et(){if(typeof EdgeRuntime=="string")return!0;if(!Wt())return!1;if(Ne(ee.fetch))return!0;let t=!1;const e=ee.document;if(e&&typeof e.createElement=="function")try{const n=e.createElement("iframe");n.hidden=!0,e.head.appendChild(n),n.contentWindow&&n.contentWindow.fetch&&(t=Ne(n.contentWindow.fetch)),e.head.removeChild(n)}catch(n){ae&&f.warn("Could not create sandbox iframe for pure fetch check, bailing to window.fetch: ",n)}return t}function tt(t,e){const n="fetch";w(n,t),R(n,()=>Yt(void 0,e))}function Yt(t,e=!1){e&&!et()||O(h,"fetch",function(n){return function(...r){const{method:s,url:o}=Kt(r),i={args:r,fetchData:{method:s,url:o},startTimestamp:C()*1e3};S("fetch",{...i});const a=new Error().stack;return n.apply(h,r).then(async c=>(S("fetch",{...i,endTimestamp:C()*1e3,response:c}),c),c=>{throw S("fetch",{...i,endTimestamp:C()*1e3,error:c}),We(c)&&c.stack===void 0&&(c.stack=a,V(c,"framesToPop",1)),c})}})}function te(t,e){return!!t&&typeof t=="object"&&!!t[e]}function Ce(t){return typeof t=="string"?t:t?te(t,"url")?t.url:t.toString?t.toString():"":""}function Kt(t){if(t.length===0)return{method:"GET",url:""};if(t.length===2){const[n,r]=t;return{url:Ce(n),method:te(r,"method")?String(r.method).toUpperCase():"GET"}}const e=t[0];return{url:Ce(e),method:te(e,"method")?String(e.method).toUpperCase():"GET"}}let H=null;function Xt(t){const e="error";w(e,t),R(e,zt)}function zt(){H=h.onerror,h.onerror=function(t,e,n,r,s){return S("error",{column:r,error:s,line:n,msg:t,url:e}),H&&!H.__SENTRY_LOADER__?H.apply(this,arguments):!1},h.onerror.__SENTRY_INSTRUMENTED__=!0}let L=null;function Jt(t){const e="unhandledrejection";w(e,t),R(e,Vt)}function Vt(){L=h.onunhandledrejection,h.onunhandledrejection=function(t){return S("unhandledrejection",t),L&&!L.__SENTRY_LOADER__?L.apply(this,arguments):!0},h.onunhandledrejection.__SENTRY_INSTRUMENTED__=!0}function Zt(){return"npm"}function Qt(t){const e=[];function n(){return t===void 0||e.length<t}function r(i){return e.splice(e.indexOf(i),1)[0]||Promise.resolve(void 0)}function s(i){if(!n())return Ye(new b("Not adding Promise because buffer limit was reached."));const a=i();return e.indexOf(a)===-1&&e.push(a),a.then(()=>r(a)).then(null,()=>r(a).then(null,()=>{})),a}function o(i){return new Ke((a,c)=>{let u=e.length;if(!u)return a(!0);const d=setTimeout(()=>{i&&i>0&&a(!1)},i);e.forEach(l=>{k(l).then(()=>{--u||(clearTimeout(d),a(!0))},c)})})}return{$:e,add:s,drain:o}}function X(t){if(!t)return{};const e=t.match(/^(([^:/?#]+):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?$/);if(!e)return{};const n=e[6]||"",r=e[8]||"";return{host:e[4],path:e[5],protocol:e[2],search:n,hash:r,relative:e[5]+n+r}}const en=["fatal","error","warning","log","info","debug"];function tn(t){return t==="warn"?"warning":en.includes(t)?t:"log"}function D(t,e=[]){return[t,e]}function nn(t,e){const[n,r]=t;return[n,[...r,e]]}function Oe(t,e){const n=t[1];for(const r of n){const s=r[0].type;if(e(r,s))return!0}return!1}function ne(t){return h.__SENTRY__&&h.__SENTRY__.encodePolyfill?h.__SENTRY__.encodePolyfill(t):new TextEncoder().encode(t)}function rn(t){const[e,n]=t;let r=JSON.stringify(e);function s(o){typeof r=="string"?r=typeof o=="string"?r+o:[ne(r),o]:r.push(typeof o=="string"?ne(o):o)}for(const o of n){const[i,a]=o;if(s(`
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -1,2 +1,2 @@
|
|||
import{d as g,c as M}from"./api2.js";import{E as h,r as o,l as f,M as p,n as u,j as c}from"./Either.DDEPhGsy.js";var l;const y={liftEither(i){if(i.isRight())return Promise.resolve(i.extract());throw i.extract()},fromPromise(i){return i.then(y.liftEither)},throwE(i){throw i}};class m{constructor(t){this.runPromise=t,this[l]="EitherAsync",this["fantasy-land/chain"]=this.chain,this["fantasy-land/alt"]=this.alt,this.then=(r,e)=>this.run().then(r,e)}leftOrDefault(t){return this.run().then(r=>r.leftOrDefault(t))}orDefault(t){return this.run().then(r=>r.orDefault(t))}join(){return n(async t=>{const r=await this;if(r.isRight()){const e=await r.extract();return t.liftEither(e)}return t.liftEither(r)})}ap(t){return n(async r=>{const e=await t;if(e.isRight()){const a=await this.run();return a.isRight()?e.extract()(a.extract()):r.liftEither(a)}return r.liftEither(e)})}alt(t){return n(async r=>{const e=await this.run();if(e.isRight())return e.extract();{const a=await t;return r.liftEither(a)}})}extend(t){return n(async r=>{const e=await this.run();if(e.isRight()){const a=n.liftEither(e);return r.liftEither(o(t(a)))}return r.liftEither(e)})}async run(){try{return o(await this.runPromise(y))}catch(t){return f(t)}}bimap(t,r){return n(async e=>{const a=await this.run();try{return await e.liftEither(a.bimap(t,r))}catch(P){throw await P}})}map(t){return n(r=>this.runPromise(r).then(t))}mapLeft(t){return n(async r=>{try{return await this.runPromise(r)}catch(e){throw await t(e)}})}chain(t){return n(async r=>{const e=await this.runPromise(r);return r.fromPromise(t(e))})}chainLeft(t){return n(async r=>{try{return await this.runPromise(r)}catch(e){return r.fromPromise(t(e))}})}toMaybeAsync(){return s(async({liftMaybe:t})=>{const r=await this.run();return t(r.toMaybe())})}swap(){return n(async t=>{const r=await this.run();return r.isRight()&&t.throwE(r.extract()),t.liftEither(o(r.extract()))})}ifLeft(t){return n(async r=>{const e=await this.run();return e.ifLeft(t),r.liftEither(e)})}ifRight(t){return n(async r=>{const e=await this.run();return e.ifRight(t),r.liftEither(e)})}void(){return this.map(t=>{})}caseOf(t){return this.run().then(r=>r.caseOf(t))}finally(t){return n(({fromPromise:r})=>r(this.run().finally(t)))}}l=Symbol.toStringTag;const n=Object.assign(i=>new m(i),{fromPromise:i=>n(({fromPromise:t})=>t(i())),liftEither:i=>n(({liftEither:t})=>t(i)),lefts:i=>Promise.all(i.map(t=>t.run())).then(h.lefts),rights:i=>Promise.all(i.map(t=>t.run())).then(h.rights),sequence:i=>n(async t=>{let r=[];for await(const e of i){if(e.isLeft())return t.liftEither(e);r.push(e.extract())}return t.liftEither(o(r))}),all:i=>n.fromPromise(async()=>Promise.all(i).then(h.sequence))});m.prototype.constructor=n;var w;const E={liftMaybe(i){if(i.isJust())return Promise.resolve(i.extract());throw u},fromPromise(i){return i.then(E.liftMaybe)}};class b{constructor(t){this.runPromise=t,this[w]="MaybeAsync",this["fantasy-land/chain"]=this.chain,this["fantasy-land/filter"]=this.filter,this["fantasy-land/alt"]=this.alt}orDefault(t){return this.run().then(r=>r.orDefault(t))}join(){return s(async t=>{const r=await this.run();if(r.isJust()){const e=await r.extract();return t.liftMaybe(e)}return t.liftMaybe(u)})}ap(t){return s(async r=>{const e=await t;if(e.isJust()){const a=await this.run();return a.isJust()?e.extract()(a.extract()):r.liftMaybe(u)}return r.liftMaybe(u)})}alt(t){return s(async r=>{const e=await this.run();if(e.isJust())return e.extract();{const a=await t;return r.liftMaybe(a)}})}extend(t){return s(async r=>{const e=await this.run();if(e.isJust()){const a=s.liftMaybe(e);return r.liftMaybe(c(t(a)))}return r.liftMaybe(u)})}filter(t){return s(async r=>{const e=await this.run();return r.liftMaybe(e.filter(t))})}async run(){try{return c(await this.runPromise(E))}catch{return u}}map(t){return s(r=>this.runPromise(r).then(t))}chain(t){return s(async r=>{const e=await this.runPromise(r);return r.fromPromise(t(e))})}toEitherAsync(t){return n(async({liftEither:r})=>{const e=await this.run();return r(e.toEither(t))})}ifJust(t){return s(async r=>{const e=await this.run();return e.ifJust(t),r.liftMaybe(e)})}ifNothing(t){return s(async r=>{const e=await this.run();return e.ifNothing(t),r.liftMaybe(e)})}void(){return this.map(t=>{})}caseOf(t){return this.run().then(r=>r.caseOf(t))}finally(t){return s(({fromPromise:r})=>r(this.run().finally(t)))}then(t,r){return this.run().then(t,r)}}w=Symbol.toStringTag;const s=Object.assign(i=>new b(i),{catMaybes:i=>Promise.all(i).then(p.catMaybes),fromPromise:i=>s(({fromPromise:t})=>t(i())),liftMaybe:i=>s(({liftMaybe:t})=>t(i))});b.prototype.constructor=s;const d=_etats,x=()=>fetch(g,{credentials:"same-origin",headers:{Accept:"application/json","Content-Type":"application/json",[M]:d.nonce},method:"GET",mode:"same-origin",signal:AbortSignal.timeout(5e3)}).then(o).catch(f);n.fromPromise(x).map(i=>i.json()).ifLeft(i=>{console.error(i)});
|
||||
import{e as g,d as M}from"./api2.js";import{E as h,r as o,l as f,M as p,n as u,j as c}from"./Either.DDEPhGsy.js";var l;const y={liftEither(i){if(i.isRight())return Promise.resolve(i.extract());throw i.extract()},fromPromise(i){return i.then(y.liftEither)},throwE(i){throw i}};class m{constructor(t){this.runPromise=t,this[l]="EitherAsync",this["fantasy-land/chain"]=this.chain,this["fantasy-land/alt"]=this.alt,this.then=(r,e)=>this.run().then(r,e)}leftOrDefault(t){return this.run().then(r=>r.leftOrDefault(t))}orDefault(t){return this.run().then(r=>r.orDefault(t))}join(){return n(async t=>{const r=await this;if(r.isRight()){const e=await r.extract();return t.liftEither(e)}return t.liftEither(r)})}ap(t){return n(async r=>{const e=await t;if(e.isRight()){const a=await this.run();return a.isRight()?e.extract()(a.extract()):r.liftEither(a)}return r.liftEither(e)})}alt(t){return n(async r=>{const e=await this.run();if(e.isRight())return e.extract();{const a=await t;return r.liftEither(a)}})}extend(t){return n(async r=>{const e=await this.run();if(e.isRight()){const a=n.liftEither(e);return r.liftEither(o(t(a)))}return r.liftEither(e)})}async run(){try{return o(await this.runPromise(y))}catch(t){return f(t)}}bimap(t,r){return n(async e=>{const a=await this.run();try{return await e.liftEither(a.bimap(t,r))}catch(P){throw await P}})}map(t){return n(r=>this.runPromise(r).then(t))}mapLeft(t){return n(async r=>{try{return await this.runPromise(r)}catch(e){throw await t(e)}})}chain(t){return n(async r=>{const e=await this.runPromise(r);return r.fromPromise(t(e))})}chainLeft(t){return n(async r=>{try{return await this.runPromise(r)}catch(e){return r.fromPromise(t(e))}})}toMaybeAsync(){return s(async({liftMaybe:t})=>{const r=await this.run();return t(r.toMaybe())})}swap(){return n(async t=>{const r=await this.run();return r.isRight()&&t.throwE(r.extract()),t.liftEither(o(r.extract()))})}ifLeft(t){return n(async r=>{const e=await this.run();return e.ifLeft(t),r.liftEither(e)})}ifRight(t){return n(async r=>{const e=await this.run();return e.ifRight(t),r.liftEither(e)})}void(){return this.map(t=>{})}caseOf(t){return this.run().then(r=>r.caseOf(t))}finally(t){return n(({fromPromise:r})=>r(this.run().finally(t)))}}l=Symbol.toStringTag;const n=Object.assign(i=>new m(i),{fromPromise:i=>n(({fromPromise:t})=>t(i())),liftEither:i=>n(({liftEither:t})=>t(i)),lefts:i=>Promise.all(i.map(t=>t.run())).then(h.lefts),rights:i=>Promise.all(i.map(t=>t.run())).then(h.rights),sequence:i=>n(async t=>{let r=[];for await(const e of i){if(e.isLeft())return t.liftEither(e);r.push(e.extract())}return t.liftEither(o(r))}),all:i=>n.fromPromise(async()=>Promise.all(i).then(h.sequence))});m.prototype.constructor=n;var w;const E={liftMaybe(i){if(i.isJust())return Promise.resolve(i.extract());throw u},fromPromise(i){return i.then(E.liftMaybe)}};class b{constructor(t){this.runPromise=t,this[w]="MaybeAsync",this["fantasy-land/chain"]=this.chain,this["fantasy-land/filter"]=this.filter,this["fantasy-land/alt"]=this.alt}orDefault(t){return this.run().then(r=>r.orDefault(t))}join(){return s(async t=>{const r=await this.run();if(r.isJust()){const e=await r.extract();return t.liftMaybe(e)}return t.liftMaybe(u)})}ap(t){return s(async r=>{const e=await t;if(e.isJust()){const a=await this.run();return a.isJust()?e.extract()(a.extract()):r.liftMaybe(u)}return r.liftMaybe(u)})}alt(t){return s(async r=>{const e=await this.run();if(e.isJust())return e.extract();{const a=await t;return r.liftMaybe(a)}})}extend(t){return s(async r=>{const e=await this.run();if(e.isJust()){const a=s.liftMaybe(e);return r.liftMaybe(c(t(a)))}return r.liftMaybe(u)})}filter(t){return s(async r=>{const e=await this.run();return r.liftMaybe(e.filter(t))})}async run(){try{return c(await this.runPromise(E))}catch{return u}}map(t){return s(r=>this.runPromise(r).then(t))}chain(t){return s(async r=>{const e=await this.runPromise(r);return r.fromPromise(t(e))})}toEitherAsync(t){return n(async({liftEither:r})=>{const e=await this.run();return r(e.toEither(t))})}ifJust(t){return s(async r=>{const e=await this.run();return e.ifJust(t),r.liftMaybe(e)})}ifNothing(t){return s(async r=>{const e=await this.run();return e.ifNothing(t),r.liftMaybe(e)})}void(){return this.map(t=>{})}caseOf(t){return this.run().then(r=>r.caseOf(t))}finally(t){return s(({fromPromise:r})=>r(this.run().finally(t)))}then(t,r){return this.run().then(t,r)}}w=Symbol.toStringTag;const s=Object.assign(i=>new b(i),{catMaybes:i=>Promise.all(i).then(p.catMaybes),fromPromise:i=>s(({fromPromise:t})=>t(i())),liftMaybe:i=>s(({liftMaybe:t})=>t(i))});b.prototype.constructor=s;const d=_etats,x=()=>fetch(g,{credentials:"same-origin",headers:{Accept:"application/json","Content-Type":"application/json",[M]:d.nonce},method:"GET",mode:"same-origin",signal:AbortSignal.timeout(5e3)}).then(o).catch(f);n.fromPromise(x).map(i=>i.json()).ifLeft(i=>{console.error(i)});
|
||||
//# sourceMappingURL=gestion-panier.js.map
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -1,2 +1,2 @@
|
|||
import{p as a}from"./index.C9ScFdVV.js";import{r as o}from"./erreurs.js";import{M as i}from"./messages2.js";import{E as s}from"./Either.DDEPhGsy.js";import"./exports.BNibT8R5.js";import"./messages3.js";const E=r=>s.of(a(i,r.data)).ifLeft(e=>{o(e)});export{E as v};
|
||||
import{p as a}from"./index.DYThEupQ.js";import{r as o}from"./erreurs.js";import{M as i}from"./messages2.js";import{E as s}from"./Either.DDEPhGsy.js";import"./exports.CqgMoAXr.js";import"./messages3.js";const E=r=>s.of(a(i,r.data)).ifLeft(e=>{o(e)});export{E as v};
|
||||
//# sourceMappingURL=messages.js.map
|
||||
|
|
|
|||
|
|
@ -1,2 +1,2 @@
|
|||
import{f as s,o as a,n as o,d as r,v as n,s as i}from"./index.C9ScFdVV.js";import{T as e}from"./messages3.js";s(e);const p=a({donnees:o(),type:r(i(),n(e.MiseAJourPanier))});export{p as M};
|
||||
import{e as s,o as a,n as o,c as r,v as n,s as i}from"./index.DYThEupQ.js";import{T as e}from"./messages3.js";s(e);const p=a({donnees:o(),type:r(i(),n(e.MiseAJourPanier))});export{p as M};
|
||||
//# sourceMappingURL=messages2.js.map
|
||||
|
|
|
|||
|
|
@ -1,2 +1,2 @@
|
|||
import{c as e}from"./api2.js";const n=o=>fetch(o.route,{body:o.corps,credentials:"same-origin",headers:{Accept:"application/json","Content-Type":"application/json",[e]:o.nonce},method:"POST",mode:"same-origin",signal:AbortSignal.timeout(5e3)});export{n as p};
|
||||
import{d as e}from"./api2.js";const n=o=>fetch(o.route,{body:o.corps,credentials:"same-origin",headers:{Accept:"application/json","Content-Type":"application/json",[e]:o.nonce},method:"POST",mode:"same-origin",signal:AbortSignal.timeout(5e3)});export{n as p};
|
||||
//# sourceMappingURL=reseau.js.map
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
{"version":3,"file":"reseau.js","sources":["../../src/scripts/lib/reseau.ts"],"sourcesContent":["import { pipe } from \"remeda\";\nimport { match, P } from \"ts-pattern\";\nimport { type GenericSchema, parse } from \"valibot\";\n\nimport { ENTETE_WC_NONCE } from \"../constantes/api.ts\";\nimport {\n ErreurInconnue,\n leveBadRequestError,\n leveErreur,\n leveNotFoundError,\n leveUnauthorizedError,\n type UnknownError,\n} from \"./erreurs.ts\";\nimport { isWCError } from \"./schemas/erreurs.ts\";\n\ntype ArgumentsPostBackendWC = {\n corps: BodyInit;\n nonce: string;\n route: string;\n};\n\nexport const postBackendWC = (args: ArgumentsPostBackendWC) =>\n fetch(\n args.route,\n {\n body: args.corps,\n credentials: \"same-origin\",\n headers: {\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\",\n [ENTETE_WC_NONCE]: args.nonce,\n },\n method: \"POST\",\n mode: \"same-origin\",\n signal: AbortSignal.timeout(5000),\n },\n );\n\nexport const traiteReponseBackendWCSelonCodesHTTP = (corpsReponse: unknown, schemaReponse: GenericSchema) =>\n match(corpsReponse)\n // Réponses problématiques\n .with({ body: P.select(), status: 400 }, isWCError, leveBadRequestError)\n .with({ body: P.select(), status: 401 }, isWCError, leveUnauthorizedError)\n .with({ body: P.select(), status: 404 }, isWCError, leveNotFoundError)\n // Réponse OK (201)\n .with(P._, corpsOkInconnu => parse(schemaReponse, corpsOkInconnu))\n // Réponses inconnues\n .otherwise(e => pipe(e, ErreurInconnue, leveErreur<UnknownError>));\n"],"names":["ENTETE_WC_NONCE","postBackendWC","args"],"mappings":"AAqBa,OAAA,KAAAA,MAAA,YAAA,MAAAC,EAAiBC,GAC5B,MACEA,EAAK,MACL,CACE,KAAMA,EAAK,MACX,YAAa,cACb,QAAS,CACP,OAAU,mBACV,eAAgB,mBAChB,CAACF,CAAe,EAAGE,EAAK,KAC1B,EACA,OAAQ,OACR,KAAM,cACN,OAAQ,YAAY,QAAQ,GAAI,CAClC,CACF"}
|
||||
{"version":3,"file":"reseau.js","sources":["../../src/scripts/lib/reseau.ts"],"sourcesContent":["import { pipe } from \"remeda\";\nimport { match, P } from \"ts-pattern\";\nimport { type GenericSchema, parse } from \"valibot\";\n\nimport { ENTETE_WC_NONCE } from \"../constantes/api.ts\";\nimport {\n ErreurInconnue,\n leveBadRequestError,\n leveErreur,\n leveNotFoundError,\n leveUnauthorizedError,\n type UnknownError,\n} from \"./erreurs.ts\";\nimport { estWCError } from \"./schemas/erreurs.ts\";\n\ntype ArgumentsPostBackendWC = {\n corps: BodyInit;\n nonce: string;\n route: string;\n};\n\nexport const postBackendWC = (args: ArgumentsPostBackendWC) =>\n fetch(\n args.route,\n {\n body: args.corps,\n credentials: \"same-origin\",\n headers: {\n \"Accept\": \"application/json\",\n \"Content-Type\": \"application/json\",\n [ENTETE_WC_NONCE]: args.nonce,\n },\n method: \"POST\",\n mode: \"same-origin\",\n signal: AbortSignal.timeout(5000),\n },\n );\n\nexport const traiteReponseBackendWCSelonCodesHTTP = (corpsReponse: unknown, schemaReponse: GenericSchema) =>\n match(corpsReponse)\n // Réponses problématiques\n .with({ body: P.select(), status: 400 }, estWCError, leveBadRequestError)\n .with({ body: P.select(), status: 401 }, estWCError, leveUnauthorizedError)\n .with({ body: P.select(), status: 404 }, estWCError, leveNotFoundError)\n // Réponse OK (201)\n .with(P._, corpsOkInconnu => parse(schemaReponse, corpsOkInconnu))\n // Réponses inconnues\n .otherwise(e => pipe(e, ErreurInconnue, leveErreur<UnknownError>));\n"],"names":["ENTETE_WC_NONCE","postBackendWC","args"],"mappings":"AAqBa,OAAA,KAAAA,MAAA,YAAA,MAAAC,EAAiBC,GAC5B,MACEA,EAAK,MACL,CACE,KAAMA,EAAK,MACX,YAAa,cACb,QAAS,CACP,OAAU,mBACV,eAAgB,mBAChB,CAACF,CAAe,EAAGE,EAAK,KAC1B,EACA,OAAQ,OACR,KAAM,cACN,OAAQ,YAAY,QAAQ,GAAI,CAClC,CACF"}
|
||||
|
|
@ -1,2 +1,2 @@
|
|||
import{x as n}from"./chunk-7BKSRZNG.F4GWJRq9.js";import{S as i,A as m}from"./dom.js";import{N as a}from"./messages3.js";import{r as s}from"./dom2.js";import{v as N}from"./messages.js";import{r as p}from"./utils.js";import"./erreurs.js";import"./exports.BNibT8R5.js";import"./Either.DDEPhGsy.js";import"./index.C9ScFdVV.js";import"./messages2.js";console.debug("mdr");const E=()=>{const e=n(p(i),s),o=new BroadcastChannel(a);o.onmessage=r=>{N(r).ifRight(t=>{e.textContent=`cart (${String(t.donnees)})`,e.setAttribute(m,String(t.donnees>0))})}};document.addEventListener("DOMContentLoaded",()=>{E()});
|
||||
import{x as n}from"./chunk-7BKSRZNG.F4GWJRq9.js";import{S as i,A as m}from"./dom.js";import{N as a}from"./messages3.js";import{r as s}from"./dom2.js";import{v as N}from"./messages.js";import{r as p}from"./utils.js";import"./erreurs.js";import"./exports.CqgMoAXr.js";import"./Either.DDEPhGsy.js";import"./index.DYThEupQ.js";import"./messages2.js";const E=()=>{const t=n(p(i),s),r=new BroadcastChannel(a);r.onmessage=o=>{N(o).ifRight(e=>{t.textContent=`cart (${String(e.donnees)})`,t.setAttribute(m,String(e.donnees>0))})}};document.addEventListener("DOMContentLoaded",()=>{E()});
|
||||
//# sourceMappingURL=scripts-bouton-panier.js.map
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
{"version":3,"file":"scripts-bouton-panier.js","sources":["../../src/scripts/scripts-bouton-panier.ts"],"sourcesContent":["/**\n * Scripts pour la mise à jour trans-fenêtres/trans-onglets du Bouton du Panier.\n */\n\nimport { pipe } from \"remeda\";\n\nimport type { MiseAJourPanierMessage } 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 { valideMessageMajPanier } from \"./lib/messages.ts\";\nimport { recupereElementDocumentEither } from \"./lib/utils.ts\";\n\nconsole.debug(\"mdr\");\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 valideMessageMajPanier(evenementMessage)\n // Met à jour le Bouton du Panier\n .ifRight((message: MiseAJourPanierMessage) => {\n BOUTON_PANIER.textContent = `cart (${String(message.donnees)})`;\n BOUTON_PANIER.setAttribute(ATTRIBUT_CONTIENT_ARTICLES, String(message.donnees > 0));\n });\n };\n};\n\ndocument.addEventListener(\"DOMContentLoaded\", () => {\n initialiseBoutonPanier();\n});\n"],"names":["x","SELECTEUR_BOUTON_PANIER","ATTRIBUT_CONTIENT_ARTICLES","NOM_CANAL_BOUTON_PANIER","recupereElementOuLeve","valideMessageMajPanier","recupereElementDocumentEither","initialiseBoutonPanier","BOUTON_PANIER","pipe","CANAL_BOUTON_PANIER","evenementMessage","message"],"mappings":"AAcA,OAAA,KAAAA,MAAA,+BAAA,OAAA,KAAAC,EAAA,KAAAC,MAAA,WAAA,OAAA,KAAAC,MAAA,iBAAA,OAAA,KAAAC,MAAA,YAAA,OAAA,KAAAC,MAAA,gBAAA,OAAA,KAAAC,MAAA,aAAA,MAAA,eAAA,MAAA,wBAAA,MAAA,uBAAA,MAAA,sBAAA,MAAA,iBAAA,QAAQ,MAAM,KAAK,EAEnB,MAAMC,EAAyB,IAAY,CAEzC,MAAMC,EAAmCC,EACvCH,EAAiDL,CAAuB,EACxEG,CAAA,EAEIM,EAAwC,IAAI,iBAAiBP,CAAuB,EAEtEO,EAAA,UAAaC,GAAkD,CACjFN,EAAuBM,CAAgB,EAEpC,QAASC,GAAoC,CAC5CJ,EAAc,YAAc,SAAS,OAAOI,EAAQ,OAAO,CAAC,IAC5DJ,EAAc,aAAaN,EAA4B,OAAOU,EAAQ,QAAU,CAAC,CAAC,CAAA,CACnF,CAAA,CAEP,EAEA,SAAS,iBAAiB,mBAAoB,IAAM,CAC3BL,GACzB,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 \"remeda\";\n\nimport type { MiseAJourPanierMessage } 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 { valideMessageMajPanier } 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 valideMessageMajPanier(evenementMessage)\n // Met à jour le Bouton du Panier\n .ifRight((message: MiseAJourPanierMessage) => {\n BOUTON_PANIER.textContent = `cart (${String(message.donnees)})`;\n BOUTON_PANIER.setAttribute(ATTRIBUT_CONTIENT_ARTICLES, String(message.donnees > 0));\n });\n };\n};\n\ndocument.addEventListener(\"DOMContentLoaded\", () => {\n initialiseBoutonPanier();\n});\n"],"names":["initialiseBoutonPanier","BOUTON_PANIER","pipe","recupereElementDocumentEither","SELECTEUR_BOUTON_PANIER","recupereElementOuLeve","CANAL_BOUTON_PANIER","NOM_CANAL_BOUTON_PANIER","evenementMessage","valideMessageMajPanier","message","ATTRIBUT_CONTIENT_ARTICLES"],"mappings":"0VAcA,MAAMA,EAAyB,IAAY,CAEzC,MAAMC,EAAmCC,EACvCC,EAAiDC,CAAuB,EACxEC,CAAA,EAEIC,EAAwC,IAAI,iBAAiBC,CAAuB,EAEtED,EAAA,UAAaE,GAAkD,CACjFC,EAAuBD,CAAgB,EAEpC,QAASE,GAAoC,CAC5CT,EAAc,YAAc,SAAS,OAAOS,EAAQ,OAAO,CAAC,IAC5DT,EAAc,aAAaU,EAA4B,OAAOD,EAAQ,QAAU,CAAC,CAAC,CAAA,CACnF,CAAA,CAEP,EAEA,SAAS,iBAAiB,mBAAoB,IAAM,CAC3BV,GACzB,CAAC"}
|
||||
|
|
@ -1,2 +1,2 @@
|
|||
import{r as u,p as C,z as l,N as E}from"./index.Dxgx1GXj.js";import{x as t}from"./chunk-7BKSRZNG.F4GWJRq9.js";import{p as c}from"./index.C9ScFdVV.js";import{R as f}from"./api2.js";import{a as I,b as S,c as d,d as P,e as L,f as O,A as U}from"./dom.js";import{N as T,T as h}from"./messages3.js";import{a as v,r as _,b as i}from"./dom2.js";import{r as m,D as A,l as B,a as g,b as M,c as b,E as w,d as y}from"./erreurs.js";import{e as D,a as W}from"./gardes.js";import{v as k}from"./messages.js";import{p as j}from"./reseau.js";import{W as X}from"./cart-remove-item.js";import{W as x}from"./cart.js";import{i as N}from"./erreurs2.js";import{a as z,r as G}from"./utils.js";import{M as J,E as Q}from"./Either.DDEPhGsy.js";import"./exports.BNibT8R5.js";import"./messages2.js";const $=_etats,q=t(z(I),v),F=t(G(S),_),H=()=>{q.forEach(e=>{const s=J.fromNullable(e.getAttribute(d));i(e)(P).ifLeft(()=>t(new A(`L'entrée « ${s.orDefault("CLE_PANIER_INEXISTANTE")} » n'a pas de Bouton de suppression.`),m)).ifRight(o=>{o.addEventListener("click",()=>{const p=s.ifNothing(()=>{e.remove()}).orDefault("CLE_PANIER_INEXISTANTE");o.textContent="C= C= C= C= C=┌(;・ω・)┘",Q.encase(()=>c(X,{key:p})).map(R=>{j({corps:JSON.stringify(R),nonce:$.nonce,route:f}).then(async r=>{D(r)&&B("500 Server Error"),t(await r.json(),n=>l(n).with({body:E.select(),status:400},N,g).with({body:E.select(),status:401},N,M).with({body:E.select(),status:404},N,b).with(E._,a=>c(x,a)).otherwise(a=>t(a,w,y)),C("items_count"),u(n=>{new BroadcastChannel(T).postMessage({donnees:n,type:h.MiseAJourPanier}),e.remove()}))}).catch(r=>{W(r)?(m(r),console.error(r)):console.error("e n'est pas une Erreur ?!",r)})})})}),i(e)(L).ifLeft(()=>t(new A(`L'entrée « ${s.orDefault("CLE_PANIER_INEXISTANTE")} » n'a pas de Bouton de soustraction.`),m)).ifRight(o=>{o.addEventListener("click",()=>{t(i(e)(O),_)})})})},Y=()=>{const e=new BroadcastChannel(T);e.onmessage=s=>{k(s).ifRight(o=>{F.setAttribute(U,String(o.donnees!==0))})}};document.addEventListener("DOMContentLoaded",()=>{H(),Y()});
|
||||
import{r as d,p as k,z as p,N as s}from"./index.Dxgx1GXj.js";import{x as i}from"./chunk-7BKSRZNG.F4GWJRq9.js";import{p as A}from"./index.DYThEupQ.js";import{R as D,b as B}from"./api2.js";import{a as W,b as x,c as j,d as q,e as Q,f as z,g as G,A as F}from"./dom.js";import{N as b,T}from"./messages3.js";import{a as H,r as J,b as X}from"./dom2.js";import{l as R,a as f,b as g,c as S,E as O,d as I,r as h}from"./erreurs.js";import{e as P,a as U}from"./gardes.js";import{v as Y}from"./messages.js";import{p as v}from"./reseau.js";import{W as K}from"./cart-remove-item.js";import{W as M}from"./cart-update-item.js";import{W as y}from"./cart.js";import{e as n}from"./erreurs2.js";import{a as V,r as Z}from"./utils.js";import{M as C,E as L}from"./Either.DDEPhGsy.js";import"./exports.CqgMoAXr.js";import"./messages2.js";import"./cart2.js";const w=_etats,$=i(V(W),H),ee=i(Z(x),J),te=E=>u=>i(X(E)(u),J),re=()=>{$.forEach(E=>{const u=te(E),c=C.fromNullable(E.getAttribute(j)).ifNothing(()=>{E.remove()}).orDefault("CLE_PANIER_INEXISTANTE"),m=u(q),_=u(Q),N=u(z),o=u(G);o.addEventListener("click",()=>{o.textContent="C= C= C= C= C=┌(;・ω・)┘",L.encase(()=>A(K,{key:c})).map(l=>{v({corps:JSON.stringify(l),nonce:w.nonce,route:D}).then(async a=>{P(a)&&R("500 Server Error"),i(await a.json(),e=>p(e).with({body:s.select(),status:400},n,f).with({body:s.select(),status:401},n,g).with({body:s.select(),status:404},n,S).with(s._,r=>A(y,r)).otherwise(r=>i(r,O,I)),k("items_count"),d(e=>{console.debug("nombreArticlesPanier",e),new BroadcastChannel(b).postMessage({donnees:e,type:T.MiseAJourPanier}),E.remove()}))}).catch(a=>{U(a)?h(a):console.error("e n'est pas une Erreur ?!",a)})})}),m.addEventListener("click",()=>{C.fromNullable(_.valueAsNumber).filter(l=>l>1).ifJust(l=>{o.textContent="C= C= C= C= C=┌(;・ω・)┘",m.toggleAttribute("disabled"),N.toggleAttribute("disabled"),o.toggleAttribute("disabled"),L.encase(()=>A(M,{key:c,quantity:l-1})).map(a=>{v({corps:JSON.stringify(a),nonce:w.nonce,route:B}).then(async e=>{P(e)&&R("500 Server Error"),i(await e.json(),r=>p(r).with({body:s.select(),status:400},n,f).with({body:s.select(),status:401},n,g).with({body:s.select(),status:404},n,S).with(s._,t=>A(y,t)).otherwise(t=>i(t,O,I)),d(r=>{new BroadcastChannel(b).postMessage({donnees:r.items_count,type:T.MiseAJourPanier})}),d(r=>{C.fromNullable(r.items.find(t=>c===t.key)?.quantity).ifJust(t=>_.setAttribute("value",String(t))),m.toggleAttribute("disabled"),N.toggleAttribute("disabled"),o.toggleAttribute("disabled"),o.textContent="Remove"}))}).catch(e=>{U(e)?h(e):console.error("e n'est pas une Erreur ?!",e)})})})}),N.addEventListener("click",()=>{C.fromNullable(_.valueAsNumber).ifJust(l=>{o.textContent="C= C= C= C= C=┌(;・ω・)┘",m.toggleAttribute("disabled"),N.toggleAttribute("disabled"),o.toggleAttribute("disabled"),L.encase(()=>A(M,{key:c,quantity:l+1})).map(a=>{v({corps:JSON.stringify(a),nonce:w.nonce,route:B}).then(async e=>{P(e)&&R("500 Server Error"),i(await e.json(),r=>p(r).with({body:s.select(),status:400},n,f).with({body:s.select(),status:401},n,g).with({body:s.select(),status:404},n,S).with(s._,t=>A(y,t)).otherwise(t=>i(t,O,I)),d(r=>{new BroadcastChannel(b).postMessage({donnees:r.items_count,type:T.MiseAJourPanier})}),d(r=>{C.fromNullable(r.items.find(t=>c===t.key)?.quantity).ifJust(t=>_.setAttribute("value",String(t))),m.toggleAttribute("disabled"),N.toggleAttribute("disabled"),o.toggleAttribute("disabled"),o.textContent="Remove"}))}).catch(e=>{U(e)?h(e):console.error("e n'est pas une Erreur ?!",e)})})})})})},se=()=>{const E=new BroadcastChannel(b);E.onmessage=u=>{Y(u).ifRight(c=>{ee.setAttribute(F,String(c.donnees!==0))})}};document.addEventListener("DOMContentLoaded",()=>{re(),se()});
|
||||
//# sourceMappingURL=scripts-page-panier.js.map
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -1,2 +1,2 @@
|
|||
import{r as u,p as C,z as f,N as n}from"./index.Dxgx1GXj.js";import{x as o}from"./chunk-7BKSRZNG.F4GWJRq9.js";import{p as O}from"./index.C9ScFdVV.js";import{b as I,c as L}from"./api2.js";import{g,h,i as U,j as v,k as m,l as d,m as A}from"./dom.js";import{N as R,T as b}from"./messages3.js";import{r as T,a as p}from"./dom2.js";import{l as P,a as w,b as y,c as B,E as D,d as M,r as J}from"./erreurs.js";import{b as j,e as x,a as W}from"./gardes.js";import{p as G}from"./cart-add-item.js";import{W as k}from"./cart.js";import{i as c}from"./erreurs2.js";import{r as l,a as N}from"./utils.js";import{M as q,E as z}from"./Either.DDEPhGsy.js";import"./exports.BNibT8R5.js";const H=_etats,V=a=>{a.forEach(e=>{e[0].setAttribute(m,"false"),e[1].setAttribute(d,"true")})},s=o(l(g),T),i=o(l(h),T),F=o(N(U),p),Q=o(N(v),p),Y=()=>{const a=new Map;F.forEach((e,t)=>{const r=e.getAttribute("id"),E=Q[t];if(!r)throw new Error("Le lien ne dispose pas d'ID !");if(!E)throw new Error("Le lien ne dispose pas de section correspondante !");a.set(r,[e,E]),e.addEventListener("click",_=>{_.preventDefault();const S=e.getAttribute(m)==="true";V(o(a.values(),Array.from)),!S&&(e.setAttribute(m,"true"),E.removeAttribute(d))})}),i.addEventListener("change",e=>{o(e.target,q.fromNullable,t=>t.filter(j),t=>t.map(r=>r.validity.valid),t=>t.ifJust(r=>s.toggleAttribute(A,!r)))}),s.addEventListener("click",e=>K())},K=()=>{s.textContent="Adding...",z.encase(()=>G({id:Number(i.value),quantity:1})).map(a=>{fetch(I,{body:JSON.stringify(a),credentials:"same-origin",headers:{Accept:"application/json","Content-Type":"application/json",[L]:H.nonce},method:"POST",mode:"same-origin",signal:AbortSignal.timeout(5e3)}).then(async e=>{x(e)&&P("500 Server Error"),o(await e.json(),t=>f(t).with({body:n.select(),status:400},c,w).with({body:n.select(),status:401},c,y).with({body:n.select(),status:404},c,B).with(n._,r=>O(k,r)).otherwise(r=>o(r,D,M)),u(t=>console.debug("Panier",t)),C("items_count"),u(t=>{s.textContent="Added to cart!",new BroadcastChannel(R).postMessage({donnees:t,type:b.MiseAJourPanier}),setTimeout(()=>{i.value=i.options.item(0)?.value??"--",s.toggleAttribute(A,!0),s.textContent="Add to cart"},3e3)}))}).catch(e=>{W(e)?(J(e),console.error(e)):console.error("e n'est pas une Erreur ?!",e),s.textContent="Add to cart"})})};document.addEventListener("DOMContentLoaded",()=>{Y()});
|
||||
import{r as u,p as C,z as f,N as n}from"./index.Dxgx1GXj.js";import{x as o}from"./chunk-7BKSRZNG.F4GWJRq9.js";import{p as O}from"./index.DYThEupQ.js";import{c as I,d as L}from"./api2.js";import{h,i as U,j as g,k as v,l as m,m as d,n as A}from"./dom.js";import{N as R,T as b}from"./messages3.js";import{r as p,a as T}from"./dom2.js";import{l as P,a as w,b as y,c as B,E as D,d as M,r as J}from"./erreurs.js";import{b as j,e as x,a as W}from"./gardes.js";import{p as G}from"./cart-add-item.js";import{W as k}from"./cart.js";import{e as c}from"./erreurs2.js";import{r as l,a as N}from"./utils.js";import{M as q,E as z}from"./Either.DDEPhGsy.js";import"./exports.CqgMoAXr.js";import"./cart2.js";const H=_etats,V=a=>{a.forEach(e=>{e[0].setAttribute(m,"false"),e[1].setAttribute(d,"true")})},s=o(l(h),p),i=o(l(U),p),F=o(N(g),T),Q=o(N(v),T),Y=()=>{const a=new Map;F.forEach((e,t)=>{const r=e.getAttribute("id"),E=Q[t];if(!r)throw new Error("Le lien ne dispose pas d'ID !");if(!E)throw new Error("Le lien ne dispose pas de section correspondante !");a.set(r,[e,E]),e.addEventListener("click",_=>{_.preventDefault();const S=e.getAttribute(m)==="true";V(o(a.values(),Array.from)),!S&&(e.setAttribute(m,"true"),E.removeAttribute(d))})}),i.addEventListener("change",e=>{o(e.target,q.fromNullable,t=>t.filter(j),t=>t.map(r=>r.validity.valid),t=>t.ifJust(r=>s.toggleAttribute(A,!r)))}),s.addEventListener("click",e=>K())},K=()=>{s.textContent="Adding...",z.encase(()=>G({id:Number(i.value),quantity:1})).map(a=>{fetch(I,{body:JSON.stringify(a),credentials:"same-origin",headers:{Accept:"application/json","Content-Type":"application/json",[L]:H.nonce},method:"POST",mode:"same-origin",signal:AbortSignal.timeout(5e3)}).then(async e=>{x(e)&&P("500 Server Error"),o(await e.json(),t=>f(t).with({body:n.select(),status:400},c,w).with({body:n.select(),status:401},c,y).with({body:n.select(),status:404},c,B).with(n._,r=>O(k,r)).otherwise(r=>o(r,D,M)),u(t=>console.debug("Panier",t)),C("items_count"),u(t=>{s.textContent="Added to cart!",new BroadcastChannel(R).postMessage({donnees:t,type:b.MiseAJourPanier}),setTimeout(()=>{i.value=i.options.item(0)?.value??"--",s.toggleAttribute(A,!0),s.textContent="Add to cart"},3e3)}))}).catch(e=>{W(e)?(J(e),console.error(e)):console.error("e n'est pas une Erreur ?!",e),s.textContent="Add to cart"})})};document.addEventListener("DOMContentLoaded",()=>{Y()});
|
||||
//# sourceMappingURL=scripts-page-produit.js.map
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -1,2 +1,2 @@
|
|||
import{c as e,b as r}from"./dom2.js";import"./chunk-7BKSRZNG.F4GWJRq9.js";import"./erreurs.js";import"./exports.BNibT8R5.js";import"./Either.DDEPhGsy.js";const p=e(document),u=r(document);export{p as a,u as r};
|
||||
import{c as e,b as r}from"./dom2.js";import"./chunk-7BKSRZNG.F4GWJRq9.js";import"./erreurs.js";import"./exports.CqgMoAXr.js";import"./Either.DDEPhGsy.js";const p=e(document),u=r(document);export{p as a,u as r};
|
||||
//# sourceMappingURL=utils.js.map
|
||||
|
|
|
|||
|
|
@ -4,14 +4,9 @@
|
|||
|
||||
/**
|
||||
* 1. Utilise un meilleur modèle de boîte.
|
||||
* 2. Rendu spécifique du texte pour Safari/iOS.
|
||||
* 3. Rendu plus précis du texte.
|
||||
*/
|
||||
html {
|
||||
box-sizing: border-box; /* 1 */
|
||||
-webkit-font-smoothing: antialiased; /* 2 */
|
||||
text-size-adjust: none; /* 2 */
|
||||
text-rendering: geometricprecision; /* 3 */
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -1,8 +1,22 @@
|
|||
// Styles typographiques de base
|
||||
|
||||
/**
|
||||
* 2. Rendu spécifique du texte pour Safari/iOS.
|
||||
* 3. Rendu plus précis du texte.
|
||||
*/
|
||||
html {
|
||||
-webkit-font-smoothing: antialiased; /* 2 */
|
||||
text-size-adjust: none; /* 2 */
|
||||
text-rendering: geometricprecision; /* 3 */
|
||||
}
|
||||
|
||||
body {
|
||||
font: 1rem/1.4 Lato;
|
||||
font-optical-sizing: auto;
|
||||
font-kerning: normal;
|
||||
font-variant-ligatures: common-ligatures no-discretionary-ligatures no-historical-ligatures contextual;
|
||||
color: var(--couleur-noir);
|
||||
text-decoration-skip-ink: auto;
|
||||
letter-spacing: 0.5px;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -16,6 +16,5 @@ button {
|
|||
|
||||
&[disabled] {
|
||||
cursor: not-allowed;
|
||||
background: repeating-conic-gradient(var(--couleur-noir) 0% 25%, transparent 0% 100%) 1px 0.5px / 2px 2px;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@
|
|||
|
||||
&__produit {
|
||||
display: grid;
|
||||
grid-template-columns: fit-content(100%) auto;
|
||||
grid-template-columns: max-content auto;
|
||||
grid-template-rows: 1fr;
|
||||
border-bottom: 1px solid var(--couleur-noir);
|
||||
|
||||
|
|
@ -39,6 +39,7 @@
|
|||
place-content: center;
|
||||
width: fit-content;
|
||||
margin: auto;
|
||||
padding: 0 var(--espace-xl);
|
||||
font-style: italic;
|
||||
|
||||
&__nom-prix {
|
||||
|
|
@ -68,9 +69,15 @@
|
|||
font-style: initial;
|
||||
border: 1px solid var(--couleur-noir);
|
||||
|
||||
button:disabled {
|
||||
background: repeating-conic-gradient(var(--couleur-noir) 0% 25%, transparent 0% 100%) 1px 0.5px / 2px 2px;
|
||||
}
|
||||
|
||||
/* Bouton d'addition de quantité */
|
||||
button:first-of-type {
|
||||
grid-column: 1;
|
||||
width: 3rem;
|
||||
min-width: 3rem;
|
||||
max-width: 3rem;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -79,6 +86,7 @@
|
|||
*/
|
||||
input[type="number"] {
|
||||
grid-column: 2;
|
||||
width: 100%;
|
||||
text-align: center;
|
||||
appearance: textfield; /* 1 */
|
||||
background: initial;
|
||||
|
|
@ -93,9 +101,11 @@
|
|||
}
|
||||
}
|
||||
|
||||
/* Bouton de suppression de quantité */
|
||||
button:nth-of-type(2) {
|
||||
grid-column: 3;
|
||||
width: 3rem;
|
||||
min-width: 3rem;
|
||||
max-width: 3rem;
|
||||
}
|
||||
|
||||
/* Bouton de suppression du Produit du Panier */
|
||||
|
|
@ -191,7 +201,7 @@
|
|||
// Instructions pour la commande et code promo
|
||||
.panneau__instructions-code-promo {
|
||||
width: 100%;
|
||||
padding: var(--espace-l) 0;
|
||||
padding: var(--espace-l) var(--espace-xl);
|
||||
text-align: center;
|
||||
border-bottom: 1px solid var(--couleur-noir);
|
||||
|
||||
|
|
@ -202,6 +212,7 @@
|
|||
&__instructions {
|
||||
resize: vertical;
|
||||
display: block; /* 1 */
|
||||
width: 100%;
|
||||
margin: auto; /* 1 */
|
||||
margin-bottom: var(--espace-s); /* 2 */
|
||||
padding: var(--espace-s);
|
||||
|
|
|
|||
|
|
@ -29,7 +29,8 @@
|
|||
}
|
||||
|
||||
.panneau {
|
||||
flex-basis: 50%;
|
||||
flex: 1 1 30rem;
|
||||
min-width: 30rem;
|
||||
border-top: 1px solid var(--couleur-noir);
|
||||
border-bottom: 1px solid var(--couleur-noir);
|
||||
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ export const CHEMIN_API_REST = "wp-json";
|
|||
export const ROUTE_API_PANIER = `/${CHEMIN_API_REST}/wc/store/cart`;
|
||||
export const ROUTE_API_AJOUTE_ARTICLE_PANIER = `/${CHEMIN_API_REST}/wc/store/cart/add-item`;
|
||||
export const ROUTE_API_RETIRE_ARTICLE_PANIER = `/${CHEMIN_API_REST}/wc/store/cart/remove-item`;
|
||||
export const ROUTE_API_MAJ_ARTICLE_PANIER = `/${CHEMIN_API_REST}/wc/store/cart/update-item`;
|
||||
|
||||
// En-têtes
|
||||
export const ENTETE_WC_NONCE = "Nonce";
|
||||
|
|
|
|||
|
|
@ -0,0 +1,4 @@
|
|||
export const CATALOG_VISIBILITIES = {
|
||||
INVISIBLE: "invisible",
|
||||
VISIBLE: "visible",
|
||||
} as const;
|
||||
|
|
@ -77,6 +77,12 @@ export const leveUnknownError = (erreur: unknown): never => {
|
|||
throw new UnknownError(erreur);
|
||||
};
|
||||
|
||||
/**
|
||||
* Reporte une Erreur, sous forme d'erreur console et au service GlitchTip.
|
||||
*
|
||||
* @param erreur
|
||||
* @returns L'ID Sentry de l'évènement capturé.
|
||||
*/
|
||||
/* eslint-disable-next-line @typescript-eslint/no-unnecessary-type-parameters -- Permet d'indiquer
|
||||
le type d'Erreur à l'appel de la fonction. */
|
||||
export const reporteErreur = <E extends Error>(erreur: E): string => {
|
||||
|
|
@ -85,12 +91,15 @@ export const reporteErreur = <E extends Error>(erreur: E): string => {
|
|||
};
|
||||
|
||||
/**
|
||||
* Reporte une Erreur au service GlitchTip puis la lève sous forme d'Exception.
|
||||
* Reporte une Erreur, sous forme d'erreur console et au service GlitchTip, puis la lève sous forme
|
||||
* d'Exception.
|
||||
*
|
||||
* @param erreur
|
||||
* @returns never Lève une Erreur et ne retourne donc rien.
|
||||
*/
|
||||
/* eslint-disable-next-line @typescript-eslint/no-unnecessary-type-parameters -- Permet d'indiquer
|
||||
le type d'Erreur à l'appel de la fonction. */
|
||||
export const reporteEtLeveErreur = <E extends Error>(erreur: E): never => {
|
||||
captureException(erreur);
|
||||
reporteErreur<E>(erreur);
|
||||
throw erreur;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ import {
|
|||
leveUnauthorizedError,
|
||||
type UnknownError,
|
||||
} from "./erreurs.ts";
|
||||
import { isWCError } from "./schemas/erreurs.ts";
|
||||
import { estWCError } from "./schemas/erreurs.ts";
|
||||
|
||||
type ArgumentsPostBackendWC = {
|
||||
corps: BodyInit;
|
||||
|
|
@ -39,9 +39,9 @@ export const postBackendWC = (args: ArgumentsPostBackendWC) =>
|
|||
export const traiteReponseBackendWCSelonCodesHTTP = (corpsReponse: unknown, schemaReponse: GenericSchema) =>
|
||||
match(corpsReponse)
|
||||
// Réponses problématiques
|
||||
.with({ body: P.select(), status: 400 }, isWCError, leveBadRequestError)
|
||||
.with({ body: P.select(), status: 401 }, isWCError, leveUnauthorizedError)
|
||||
.with({ body: P.select(), status: 404 }, isWCError, leveNotFoundError)
|
||||
.with({ body: P.select(), status: 400 }, estWCError, leveBadRequestError)
|
||||
.with({ body: P.select(), status: 401 }, estWCError, leveUnauthorizedError)
|
||||
.with({ body: P.select(), status: 404 }, estWCError, leveNotFoundError)
|
||||
// Réponse OK (201)
|
||||
.with(P._, corpsOkInconnu => parse(schemaReponse, corpsOkInconnu))
|
||||
// Réponses inconnues
|
||||
|
|
|
|||
|
|
@ -0,0 +1,8 @@
|
|||
import * as v from "valibot";
|
||||
|
||||
export const WCStoreCartUpdateItemArgsSchema = v.object({
|
||||
/** Unique identifier (key) for the basket item to update. */
|
||||
key: v.string(),
|
||||
/** New quantity of the item in the basket. */
|
||||
quantity: v.pipe(v.number(), v.minValue(1)),
|
||||
});
|
||||
|
|
@ -1,27 +1,29 @@
|
|||
import * as v from "valibot";
|
||||
|
||||
const WCStoreCartItemTotalsSchema = v.object({
|
||||
currency_code: v.string(),
|
||||
currency_decimal_separator: v.string(),
|
||||
currency_minor_unit: v.number(),
|
||||
currency_prefix: v.string(),
|
||||
currency_suffix: v.string(),
|
||||
currency_symbol: v.string(),
|
||||
currency_thousand_separator: v.string(),
|
||||
total_discount: v.string(),
|
||||
total_discount_tax: v.string(),
|
||||
});
|
||||
import { CATALOG_VISIBILITIES } from "../../constantes/cart.ts";
|
||||
|
||||
const WCStoreCartItemShippingRateSchema = v.object({
|
||||
name: v.string(),
|
||||
package_id: v.union([v.number(), v.string()]),
|
||||
});
|
||||
|
||||
const WCStoreCartItemSchema = v.object({
|
||||
code: v.string(),
|
||||
discount_type: v.string(),
|
||||
shipping_rates: v.array(WCStoreCartItemShippingRateSchema),
|
||||
totals: v.array(WCStoreCartItemTotalsSchema),
|
||||
export const WCStoreCartItemSchema = v.object({
|
||||
"backorders_allowed": v.boolean(),
|
||||
"catalog_visibility": v.enum(CATALOG_VISIBILITIES),
|
||||
"description": v.string(),
|
||||
"extensions": v.unknown(),
|
||||
"id": v.number(),
|
||||
"images": v.array(v.unknown()),
|
||||
"item_data": v.array(v.unknown()),
|
||||
"key": v.string(),
|
||||
"low_stock_remaining": v.union([v.null()]),
|
||||
"name": v.string(),
|
||||
"permalink": v.pipe(v.string(), v.url()),
|
||||
"prices": v.unknown(),
|
||||
"quantity": v.number(),
|
||||
"quantity_limits": v.unknown(),
|
||||
"short_description": v.string(),
|
||||
"show_backorder_badge": v.boolean(),
|
||||
"sku": v.string(),
|
||||
"sold_individually": v.boolean(),
|
||||
"totals": v.unknown(),
|
||||
"type": v.string(),
|
||||
"variation": v.array(v.unknown()),
|
||||
});
|
||||
|
||||
export const WCStoreCartSchema = v.object({
|
||||
|
|
@ -32,7 +34,7 @@ export const WCStoreCartSchema = v.object({
|
|||
extensions: v.unknown(),
|
||||
fees: v.unknown(),
|
||||
has_calculated_shipping: v.unknown(),
|
||||
items: v.array(v.unknown()),
|
||||
items: v.array(WCStoreCartItemSchema),
|
||||
items_count: v.pipe(v.number(), v.integer()),
|
||||
items_weight: v.unknown(),
|
||||
needs_payment: v.unknown(),
|
||||
|
|
|
|||
|
|
@ -15,4 +15,4 @@ export const WCErrorSchema = v.object({
|
|||
status: v.number(),
|
||||
});
|
||||
|
||||
export const isWCError = (donnees: unknown): donnees is WCError => v.is(WCErrorSchema, donnees);
|
||||
export const estWCError = (donnees: unknown): donnees is WCError => v.is(WCErrorSchema, donnees);
|
||||
|
|
|
|||
5
web/app/themes/haiku-atelier-2024/src/scripts/lib/types/api/cart-update-item.d.ts
vendored
Normal file
5
web/app/themes/haiku-atelier-2024/src/scripts/lib/types/api/cart-update-item.d.ts
vendored
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
import type { InferOutput } from "valibot";
|
||||
|
||||
import type { WCStoreCartUpdateItemArgsSchema } from "../../schemas/cart-update-item.ts";
|
||||
|
||||
export type WCStoreCartUpdateItemArgs = InferOutput<typeof WCStoreCartUpdateItemArgsSchema>;
|
||||
|
|
@ -1,5 +1,6 @@
|
|||
import type { InferOutput } from "valibot";
|
||||
|
||||
import type { WCStoreCartSchema } from "../../schemas/cart.ts";
|
||||
import type { WCStoreCartItemSchema, WCStoreCartSchema } from "../../schemas/cart.ts";
|
||||
|
||||
export type WCStoreCartItem = InferOutput<typeof WCStoreCartItemSchema>;
|
||||
export type WCStoreCart = InferOutput<typeof WCStoreCartSchema>;
|
||||
|
|
|
|||
|
|
@ -3,13 +3,16 @@ import { pipe, prop, tap } from "remeda";
|
|||
import { match, P } from "ts-pattern";
|
||||
import { parse } from "valibot";
|
||||
|
||||
import type { WCStoreCart, WCStoreCartItem } from "./lib/types/api/cart";
|
||||
import type { WCStoreCartRemoveItemArgs } from "./lib/types/api/cart-remove-item";
|
||||
import type { WCStoreCartUpdateItemArgs } from "./lib/types/api/cart-update-item";
|
||||
import type { MiseAJourPanierMessage } from "./lib/types/messages";
|
||||
|
||||
import { ROUTE_API_RETIRE_ARTICLE_PANIER } from "./constantes/api.ts";
|
||||
import { ROUTE_API_MAJ_ARTICLE_PANIER, ROUTE_API_RETIRE_ARTICLE_PANIER } from "./constantes/api.ts";
|
||||
import {
|
||||
ATTRIBUT_CLE_PANIER,
|
||||
ATTRIBUT_CONTIENT_ARTICLES,
|
||||
SELECTEUR_BOUTON_ADDITION_QUANTITE,
|
||||
SELECTEUR_BOUTON_SOUSTRACTION_QUANTITE,
|
||||
SELECTEUR_BOUTON_SUPPRESSION_PANIER,
|
||||
SELECTEUR_CHAMP_QUANTITE,
|
||||
|
|
@ -17,12 +20,7 @@ import {
|
|||
SELECTEUR_ENTREES_PANIER,
|
||||
} from "./constantes/dom.ts";
|
||||
import { NOM_CANAL_BOUTON_PANIER, TYPES_MESSAGES } from "./constantes/messages.ts";
|
||||
import {
|
||||
recupereElementAvecSelecteur,
|
||||
recupereElementOuLeve,
|
||||
recupereElementsAvecSelecteur,
|
||||
recupereElementsOuLeve,
|
||||
} from "./lib/dom.ts";
|
||||
import { recupereElementAvecSelecteur, recupereElementOuLeve, recupereElementsOuLeve } from "./lib/dom.ts";
|
||||
import {
|
||||
DOMElementAbsentError,
|
||||
ErreurInconnue,
|
||||
|
|
@ -38,28 +36,11 @@ import { estError, estReponse500 } from "./lib/gardes.ts";
|
|||
import { valideMessageMajPanier } from "./lib/messages.ts";
|
||||
import { postBackendWC } from "./lib/reseau.ts";
|
||||
import { WCStoreCartRemoveItemArgsSchema } from "./lib/schemas/cart-remove-item.ts";
|
||||
import { WCStoreCartUpdateItemArgsSchema } from "./lib/schemas/cart-update-item.ts";
|
||||
import { WCStoreCartSchema } from "./lib/schemas/cart.ts";
|
||||
import { isWCError } from "./lib/schemas/erreurs.ts";
|
||||
import { estWCError } from "./lib/schemas/erreurs.ts";
|
||||
import { recupereElementDocumentEither, recupereElementsDocumentEither } from "./lib/utils.ts";
|
||||
|
||||
/**
|
||||
* Récupère les <article> dans le panier
|
||||
* Itère dessus
|
||||
* Récupère le button de suppression
|
||||
* Si n'existe pas pour une raison ou une autre
|
||||
* Ne rien faire
|
||||
* Créé un eventListener au click
|
||||
* Récupère la clé Panier de l'attribut data-cle-panier
|
||||
* Si n'existe pas pour une raison ou une autre
|
||||
* Retirer l'élément du DOM
|
||||
* Réalise une requête API pour supprimer l'entrée du Panier
|
||||
* Remplacer le texte du bouton remove avec un picto de chargement
|
||||
* Au retour avec succès, retirer l'élément du DOM
|
||||
* Sinon, afficher un message à l'Utilisateur avec des pistes de résolution (?)
|
||||
*
|
||||
* TODO: Prévoir le cas où il n'y a pas de Produits dans le Panier
|
||||
*/
|
||||
|
||||
/** États utiles pour les scripts de la page. */
|
||||
type EtatsPage = {
|
||||
/** Un nonce pour l'authentification de requêtes API vers le backend WooCommerce. */
|
||||
|
|
@ -80,43 +61,130 @@ const CONTENEUR_PANIER: HTMLElement = pipe(
|
|||
recupereElementOuLeve,
|
||||
);
|
||||
|
||||
/**
|
||||
* Fonction utilitaire pour rapidement créer et reporter une Erreur DOMElementAbsent.
|
||||
*
|
||||
* @param message
|
||||
* @returns L'ID Sentry de l'évènement capturé.
|
||||
*/
|
||||
const reporteErreurDOMElementAbsent = (message: string): string =>
|
||||
pipe(
|
||||
new DOMElementAbsentError(message),
|
||||
reporteErreur,
|
||||
);
|
||||
|
||||
const recupereElementDansEntreePanierOuLeve =
|
||||
/* eslint-disable-next-line @typescript-eslint/no-unnecessary-type-parameters -- Nécessaire pour
|
||||
documenter le type d'Element attendu */
|
||||
(entree: HTMLElement) => <E extends Element = Element>(selecteur: string) =>
|
||||
pipe(
|
||||
recupereElementAvecSelecteur(entree)<E>(selecteur),
|
||||
recupereElementOuLeve,
|
||||
);
|
||||
|
||||
const initialiseScriptsPagePanier = (): void => {
|
||||
ENTREES_PANIER.forEach((entree: HTMLElement) => {
|
||||
const maybeClePanier: Maybe<string> = Maybe.fromNullable(entree.getAttribute(ATTRIBUT_CLE_PANIER));
|
||||
const recupereElementDansEntree = recupereElementDansEntreePanierOuLeve(entree);
|
||||
|
||||
recupereElementAvecSelecteur(entree)<HTMLButtonElement>(SELECTEUR_BOUTON_SUPPRESSION_PANIER)
|
||||
// Remplace la SyntaxError par une Erreur plus détaillée et parlante
|
||||
.ifLeft(() =>
|
||||
pipe(
|
||||
new DOMElementAbsentError(
|
||||
`L'entrée « ${maybeClePanier.orDefault("CLE_PANIER_INEXISTANTE")} » n'a pas de Bouton de suppression.`,
|
||||
),
|
||||
reporteErreur,
|
||||
)
|
||||
)
|
||||
// Créé l'Écouteur d'Événement pour le click sur le Bouton
|
||||
.ifRight((boutonPanier: HTMLButtonElement) => {
|
||||
boutonPanier.addEventListener("click", (): void => {
|
||||
// Retire l'entrée du DOM si la clé Panier n'existe pas et arrête précocement
|
||||
const clePanier = maybeClePanier.ifNothing(() => {
|
||||
entree.remove();
|
||||
return;
|
||||
})
|
||||
.orDefault("CLE_PANIER_INEXISTANTE");
|
||||
// Retire l'entrée du DOM si la clé Panier n'existe pas et arrête précocement
|
||||
const clePanier: string = Maybe
|
||||
.fromNullable(entree.getAttribute(ATTRIBUT_CLE_PANIER))
|
||||
.ifNothing(() => {
|
||||
entree.remove();
|
||||
return;
|
||||
})
|
||||
.orDefault("CLE_PANIER_INEXISTANTE");
|
||||
|
||||
// TODO: Créer une boucle d'animation
|
||||
// Affiche un texte de chargement dans le Bouton
|
||||
boutonPanier.textContent = "C= C= C= C= C=┌(;・ω・)┘";
|
||||
// Récupère les attributs et éléments utilisés dans le script
|
||||
const boutonSoustraction = recupereElementDansEntree<HTMLButtonElement>(SELECTEUR_BOUTON_SOUSTRACTION_QUANTITE);
|
||||
const champQuantite = recupereElementDansEntree<HTMLInputElement>(SELECTEUR_CHAMP_QUANTITE);
|
||||
const boutonAddition = recupereElementDansEntree<HTMLButtonElement>(SELECTEUR_BOUTON_ADDITION_QUANTITE);
|
||||
const boutonSuppression = recupereElementDansEntree<HTMLButtonElement>(SELECTEUR_BOUTON_SUPPRESSION_PANIER);
|
||||
|
||||
// Supprime la ligne du Panier au clic sur le bouton de suppression
|
||||
boutonSuppression.addEventListener("click", (): void => {
|
||||
// TODO: Créer une boucle d'animation
|
||||
// Affiche un texte de chargement dans le Bouton
|
||||
boutonSuppression.textContent = "C= C= C= C= C=┌(;・ω・)┘";
|
||||
|
||||
Either
|
||||
.encase<Error, WCStoreCartRemoveItemArgs>(() => parse(WCStoreCartRemoveItemArgsSchema, { key: clePanier }))
|
||||
.map(
|
||||
(args: WCStoreCartRemoveItemArgs) => {
|
||||
postBackendWC({
|
||||
corps: JSON.stringify(args),
|
||||
nonce: ETATS_PAGE.nonce,
|
||||
route: ROUTE_API_RETIRE_ARTICLE_PANIER,
|
||||
})
|
||||
.then(async (reponse: Response) => {
|
||||
// Traite le cas d'erreur 500
|
||||
if (estReponse500(reponse)) leveServerError("500 Server Error");
|
||||
|
||||
pipe(
|
||||
// Récupère la Réponse
|
||||
await reponse.json(),
|
||||
// Traite tous les codes HTTPs possibles
|
||||
(corpsReponse: unknown) =>
|
||||
match(corpsReponse)
|
||||
// Réponses problématiques
|
||||
.with({ body: P.select(), status: 400 }, estWCError, leveBadRequestError)
|
||||
.with({ body: P.select(), status: 401 }, estWCError, leveUnauthorizedError)
|
||||
.with({ body: P.select(), status: 404 }, estWCError, leveNotFoundError)
|
||||
// Réponse OK (201)
|
||||
.with(P._, corpsOkInconnu => parse(WCStoreCartSchema, corpsOkInconnu))
|
||||
// Réponses inconnues
|
||||
.otherwise(e => pipe(e, ErreurInconnue, leveErreur<UnknownError>)),
|
||||
prop("items_count"),
|
||||
tap((nombreArticlesPanier: number) => {
|
||||
console.debug("nombreArticlesPanier", nombreArticlesPanier);
|
||||
|
||||
// Émet un Message avec le nouveau nombre de Produits dans le Panier
|
||||
const CANAL_BOUTON_PANIER: BroadcastChannel = new BroadcastChannel(NOM_CANAL_BOUTON_PANIER);
|
||||
CANAL_BOUTON_PANIER.postMessage({
|
||||
donnees: nombreArticlesPanier,
|
||||
type: TYPES_MESSAGES.MiseAJourPanier,
|
||||
});
|
||||
// Retire l'entrée du Panier du DOM
|
||||
entree.remove();
|
||||
}),
|
||||
);
|
||||
})
|
||||
.catch((e: unknown) => {
|
||||
if (estError(e)) {
|
||||
reporteErreur(e);
|
||||
} else {
|
||||
console.error("e n'est pas une Erreur ?!", e);
|
||||
}
|
||||
});
|
||||
},
|
||||
);
|
||||
});
|
||||
|
||||
// Retire une unité à une ligne du Panier au clic sur le bouton de soustraction
|
||||
boutonSoustraction.addEventListener("click", () => {
|
||||
Maybe
|
||||
.fromNullable(champQuantite.valueAsNumber)
|
||||
.filter((valeur) => valeur > 1)
|
||||
.ifJust((valeur) => {
|
||||
// Modifie des éléments du DOM pour signifier le traitement de la requête et empêcher des
|
||||
// doubles exécutions
|
||||
boutonSuppression.textContent = "C= C= C= C= C=┌(;・ω・)┘";
|
||||
boutonSoustraction.toggleAttribute("disabled");
|
||||
boutonAddition.toggleAttribute("disabled");
|
||||
boutonSuppression.toggleAttribute("disabled");
|
||||
|
||||
// Chaîne de la requête
|
||||
Either
|
||||
.encase<Error, WCStoreCartRemoveItemArgs>(() => parse(WCStoreCartRemoveItemArgsSchema, { key: clePanier }))
|
||||
// Valide les arguments de la requête
|
||||
.encase<Error, WCStoreCartUpdateItemArgs>(() =>
|
||||
parse(WCStoreCartUpdateItemArgsSchema, { key: clePanier, quantity: valeur - 1 })
|
||||
)
|
||||
.map(
|
||||
(args: WCStoreCartRemoveItemArgs) => {
|
||||
(args: WCStoreCartUpdateItemArgs) => {
|
||||
// Réalise la requête
|
||||
postBackendWC({
|
||||
corps: JSON.stringify(args),
|
||||
nonce: ETATS_PAGE.nonce,
|
||||
route: ROUTE_API_RETIRE_ARTICLE_PANIER,
|
||||
route: ROUTE_API_MAJ_ARTICLE_PANIER,
|
||||
})
|
||||
.then(async (reponse: Response) => {
|
||||
// Traite le cas d'erreur 500
|
||||
|
|
@ -129,30 +197,42 @@ const initialiseScriptsPagePanier = (): void => {
|
|||
(corpsReponse: unknown) =>
|
||||
match(corpsReponse)
|
||||
// Réponses problématiques
|
||||
.with({ body: P.select(), status: 400 }, isWCError, leveBadRequestError)
|
||||
.with({ body: P.select(), status: 401 }, isWCError, leveUnauthorizedError)
|
||||
.with({ body: P.select(), status: 404 }, isWCError, leveNotFoundError)
|
||||
.with({ body: P.select(), status: 400 }, estWCError, leveBadRequestError)
|
||||
.with({ body: P.select(), status: 401 }, estWCError, leveUnauthorizedError)
|
||||
.with({ body: P.select(), status: 404 }, estWCError, leveNotFoundError)
|
||||
// Réponse OK (201)
|
||||
.with(P._, corpsOkInconnu => parse(WCStoreCartSchema, corpsOkInconnu))
|
||||
// Réponses inconnues
|
||||
.otherwise(e => pipe(e, ErreurInconnue, leveErreur<UnknownError>)),
|
||||
prop("items_count"),
|
||||
tap((nombreArticlesPanier: number) => {
|
||||
// Émet un Message avec le nouveau nombre de Produits dans le Panier
|
||||
tap((reponse: WCStoreCart) => {
|
||||
// Émet un message pour la mise à jour du bouton du Panier
|
||||
const CANAL_BOUTON_PANIER: BroadcastChannel = new BroadcastChannel(NOM_CANAL_BOUTON_PANIER);
|
||||
CANAL_BOUTON_PANIER.postMessage({
|
||||
donnees: nombreArticlesPanier,
|
||||
donnees: reponse.items_count,
|
||||
type: TYPES_MESSAGES.MiseAJourPanier,
|
||||
});
|
||||
// Retire l'entrée du Panier du DOM
|
||||
entree.remove();
|
||||
}),
|
||||
tap((reponse: WCStoreCart) => {
|
||||
Maybe
|
||||
.fromNullable(
|
||||
reponse.items
|
||||
.find((ligne: WCStoreCartItem) => clePanier === ligne.key)
|
||||
?.quantity,
|
||||
)
|
||||
.ifJust((nouvelleQuantite: number) =>
|
||||
champQuantite.setAttribute("value", String(nouvelleQuantite))
|
||||
);
|
||||
|
||||
boutonSoustraction.toggleAttribute("disabled");
|
||||
boutonAddition.toggleAttribute("disabled");
|
||||
boutonSuppression.toggleAttribute("disabled");
|
||||
boutonSuppression.textContent = "Remove";
|
||||
}),
|
||||
);
|
||||
})
|
||||
.catch((e: unknown) => {
|
||||
if (estError(e)) {
|
||||
reporteErreur(e);
|
||||
console.error(e);
|
||||
} else {
|
||||
console.error("e n'est pas une Erreur ?!", e);
|
||||
}
|
||||
|
|
@ -160,27 +240,88 @@ const initialiseScriptsPagePanier = (): void => {
|
|||
},
|
||||
);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
recupereElementAvecSelecteur(entree)<HTMLButtonElement>(SELECTEUR_BOUTON_SOUSTRACTION_QUANTITE)
|
||||
// Remplace la SyntaxError par une Erreur plus détaillée et parlante
|
||||
.ifLeft(() =>
|
||||
pipe(
|
||||
new DOMElementAbsentError(
|
||||
`L'entrée « ${maybeClePanier.orDefault("CLE_PANIER_INEXISTANTE")} » n'a pas de Bouton de soustraction.`,
|
||||
),
|
||||
reporteErreur,
|
||||
)
|
||||
)
|
||||
.ifRight((bouton: HTMLButtonElement) => {
|
||||
bouton.addEventListener("click", () => {
|
||||
const champQuantite: HTMLInputElement = pipe(
|
||||
recupereElementAvecSelecteur(entree)<HTMLInputElement>(SELECTEUR_CHAMP_QUANTITE),
|
||||
recupereElementOuLeve,
|
||||
);
|
||||
const valeur: number = champQuantite.valueAsNumber;
|
||||
// Ajoute une unité à une ligne du Panier au clic sur le bouton d'addition
|
||||
boutonAddition.addEventListener("click", () => {
|
||||
Maybe
|
||||
.fromNullable(champQuantite.valueAsNumber)
|
||||
.ifJust((valeur) => {
|
||||
// Modifie des éléments du DOM pour signifier le traitement de la requête et empêcher des
|
||||
// doubles exécutions
|
||||
boutonSuppression.textContent = "C= C= C= C= C=┌(;・ω・)┘";
|
||||
boutonSoustraction.toggleAttribute("disabled");
|
||||
boutonAddition.toggleAttribute("disabled");
|
||||
boutonSuppression.toggleAttribute("disabled");
|
||||
|
||||
Either
|
||||
// Valide les arguments de la requête
|
||||
.encase<Error, WCStoreCartUpdateItemArgs>(() =>
|
||||
parse(WCStoreCartUpdateItemArgsSchema, { key: clePanier, quantity: valeur + 1 })
|
||||
)
|
||||
.map(
|
||||
(args: WCStoreCartUpdateItemArgs) => {
|
||||
// Réalise la requête
|
||||
postBackendWC({
|
||||
corps: JSON.stringify(args),
|
||||
nonce: ETATS_PAGE.nonce,
|
||||
route: ROUTE_API_MAJ_ARTICLE_PANIER,
|
||||
})
|
||||
.then(async (reponse: Response) => {
|
||||
// Traite le cas d'erreur 500
|
||||
if (estReponse500(reponse)) leveServerError("500 Server Error");
|
||||
|
||||
pipe(
|
||||
// Récupère la Réponse
|
||||
await reponse.json(),
|
||||
// Traite tous les codes HTTPs possibles
|
||||
(corpsReponse: unknown) =>
|
||||
match(corpsReponse)
|
||||
// Réponses problématiques
|
||||
.with({ body: P.select(), status: 400 }, estWCError, leveBadRequestError)
|
||||
.with({ body: P.select(), status: 401 }, estWCError, leveUnauthorizedError)
|
||||
.with({ body: P.select(), status: 404 }, estWCError, leveNotFoundError)
|
||||
// Réponse OK (201)
|
||||
.with(P._, corpsOkInconnu => parse(WCStoreCartSchema, corpsOkInconnu))
|
||||
// Réponses inconnues
|
||||
.otherwise(e => pipe(e, ErreurInconnue, leveErreur<UnknownError>)),
|
||||
tap((reponse: WCStoreCart) => {
|
||||
// Émet un message pour la mise à jour du bouton du Panier
|
||||
const CANAL_BOUTON_PANIER: BroadcastChannel = new BroadcastChannel(NOM_CANAL_BOUTON_PANIER);
|
||||
CANAL_BOUTON_PANIER.postMessage({
|
||||
donnees: reponse.items_count,
|
||||
type: TYPES_MESSAGES.MiseAJourPanier,
|
||||
});
|
||||
}),
|
||||
tap((reponse: WCStoreCart) => {
|
||||
Maybe
|
||||
.fromNullable(
|
||||
reponse.items
|
||||
.find((ligne: WCStoreCartItem) => clePanier === ligne.key)
|
||||
?.quantity,
|
||||
)
|
||||
.ifJust((nouvelleQuantite: number) =>
|
||||
champQuantite.setAttribute("value", String(nouvelleQuantite))
|
||||
);
|
||||
|
||||
boutonSoustraction.toggleAttribute("disabled");
|
||||
boutonAddition.toggleAttribute("disabled");
|
||||
boutonSuppression.toggleAttribute("disabled");
|
||||
boutonSuppression.textContent = "Remove";
|
||||
}),
|
||||
);
|
||||
})
|
||||
.catch((e: unknown) => {
|
||||
if (estError(e)) {
|
||||
reporteErreur(e);
|
||||
} else {
|
||||
console.error("e n'est pas une Erreur ?!", e);
|
||||
}
|
||||
});
|
||||
},
|
||||
);
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -14,7 +14,6 @@ import {
|
|||
ATTRIBUT_DESACTIVE,
|
||||
ATTRIBUT_HIDDEN,
|
||||
SELECTEUR_BOUTON_AJOUT_PANIER,
|
||||
SELECTEUR_BOUTON_PANIER,
|
||||
SELECTEUR_LIENS_ONGLETS,
|
||||
SELECTEUR_SECTIONS_CONTENUS,
|
||||
SELECTEUR_SELECTEUR_QUANTITE,
|
||||
|
|
@ -34,7 +33,7 @@ import {
|
|||
import { estError, estHTMLSelectElement, estReponse500 } from "./lib/gardes.ts";
|
||||
import { parseWCStoreCartAddItemArgs } from "./lib/schemas/cart-add-item.ts";
|
||||
import { WCStoreCartSchema } from "./lib/schemas/cart.ts";
|
||||
import { isWCError } from "./lib/schemas/erreurs.ts";
|
||||
import { estWCError } from "./lib/schemas/erreurs.ts";
|
||||
import { recupereElementDocumentEither, recupereElementsDocumentEither } from "./lib/utils.ts";
|
||||
|
||||
/** États utiles pour les scripts de la page. */
|
||||
|
|
@ -182,9 +181,9 @@ const ajouteProduitAuPanier = () => {
|
|||
(corpsReponse: unknown) =>
|
||||
match(corpsReponse)
|
||||
// Réponses problématiques
|
||||
.with({ body: P.select(), status: 400 }, isWCError, leveBadRequestError)
|
||||
.with({ body: P.select(), status: 401 }, isWCError, leveUnauthorizedError)
|
||||
.with({ body: P.select(), status: 404 }, isWCError, leveNotFoundError)
|
||||
.with({ body: P.select(), status: 400 }, estWCError, leveBadRequestError)
|
||||
.with({ body: P.select(), status: 401 }, estWCError, leveUnauthorizedError)
|
||||
.with({ body: P.select(), status: 404 }, estWCError, leveNotFoundError)
|
||||
// Réponse OK (201)
|
||||
.with(P._, corpsOkInconnu => parse(WCStoreCartSchema, corpsOkInconnu))
|
||||
// Réponses inconnues
|
||||
|
|
|
|||
|
|
@ -95,7 +95,6 @@
|
|||
<div class="panneau__instructions-code-promo">
|
||||
<textarea
|
||||
class="panneau__instructions-code-promo__instructions"
|
||||
cols="80"
|
||||
id="instructions"
|
||||
maxlength="2000"
|
||||
minlength="10"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue