2024-10-16
This commit is contained in:
parent
ee7c786dbd
commit
5793fcb710
72 changed files with 1586 additions and 667 deletions
3
.vscode/settings.json
vendored
3
.vscode/settings.json
vendored
|
|
@ -5,6 +5,8 @@
|
|||
"controle",
|
||||
"controles",
|
||||
"coordonnee",
|
||||
"COUT",
|
||||
"couts",
|
||||
"Crell",
|
||||
"defini",
|
||||
"deplie",
|
||||
|
|
@ -25,6 +27,7 @@
|
|||
"mobily",
|
||||
"paypal",
|
||||
"phpstan",
|
||||
"prenom",
|
||||
"Proprietes",
|
||||
"rafraichissement",
|
||||
"rapprochee",
|
||||
|
|
|
|||
18
composer.lock
generated
18
composer.lock
generated
|
|
@ -2313,15 +2313,15 @@
|
|||
},
|
||||
{
|
||||
"name": "wpackagist-plugin/wc-multishipping",
|
||||
"version": "2.5.2",
|
||||
"version": "2.5.3",
|
||||
"source": {
|
||||
"type": "svn",
|
||||
"url": "https://plugins.svn.wordpress.org/wc-multishipping/",
|
||||
"reference": "tags/2.5.2"
|
||||
"reference": "tags/2.5.3"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://downloads.wordpress.org/plugin/wc-multishipping.2.5.2.zip"
|
||||
"url": "https://downloads.wordpress.org/plugin/wc-multishipping.2.5.3.zip"
|
||||
},
|
||||
"require": {
|
||||
"composer/installers": "^1.0 || ^2.0"
|
||||
|
|
@ -3301,16 +3301,16 @@
|
|||
},
|
||||
{
|
||||
"name": "phpstan/phpdoc-parser",
|
||||
"version": "1.32.0",
|
||||
"version": "1.33.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/phpstan/phpdoc-parser.git",
|
||||
"reference": "6ca22b154efdd9e3c68c56f5d94670920a1c19a4"
|
||||
"reference": "82a311fd3690fb2bf7b64d5c98f912b3dd746140"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/6ca22b154efdd9e3c68c56f5d94670920a1c19a4",
|
||||
"reference": "6ca22b154efdd9e3c68c56f5d94670920a1c19a4",
|
||||
"url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/82a311fd3690fb2bf7b64d5c98f912b3dd746140",
|
||||
"reference": "82a311fd3690fb2bf7b64d5c98f912b3dd746140",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
|
|
@ -3342,9 +3342,9 @@
|
|||
"description": "PHPDoc parser with support for nullable, intersection and generic types",
|
||||
"support": {
|
||||
"issues": "https://github.com/phpstan/phpdoc-parser/issues",
|
||||
"source": "https://github.com/phpstan/phpdoc-parser/tree/1.32.0"
|
||||
"source": "https://github.com/phpstan/phpdoc-parser/tree/1.33.0"
|
||||
},
|
||||
"time": "2024-09-26T07:23:32+00:00"
|
||||
"time": "2024-10-13T11:25:22+00:00"
|
||||
},
|
||||
{
|
||||
"name": "phpstan/phpstan",
|
||||
|
|
|
|||
13
package.json
13
package.json
|
|
@ -12,9 +12,10 @@
|
|||
"dependencies": {
|
||||
"@mobily/ts-belt": "^3.13.1",
|
||||
"@sentry/browser": "8.34.0",
|
||||
"html-template-tag": "^4.1.0",
|
||||
"purify-ts": "^2.1.0",
|
||||
"remeda": "^2.15.0",
|
||||
"ts-pattern": "^5.4.0",
|
||||
"ts-pattern": "^5.5.0",
|
||||
"valibot": "1.0.0-beta.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
|
|
@ -30,8 +31,8 @@
|
|||
"configurations-js": "git+https://git.gcch.fr/gcch/configurations-js.git",
|
||||
"eslint": "^9.12.0",
|
||||
"eslint-plugin-oxlint": "^0.9.10",
|
||||
"eslint-plugin-perfectionist": "^3.8.0",
|
||||
"fdir": "^6.4.0",
|
||||
"eslint-plugin-perfectionist": "^3.9.0",
|
||||
"fdir": "^6.4.2",
|
||||
"globals": "^15.11.0",
|
||||
"oxlint": "^0.9.10",
|
||||
"picomatch": "^4.0.2",
|
||||
|
|
@ -46,10 +47,10 @@
|
|||
"stylelint-declaration-block-no-ignored-properties": "^2.8.0",
|
||||
"stylelint-plugin-logical-css": "^1.2.1",
|
||||
"typescript": "5.7.0-dev.20241010",
|
||||
"typescript-eslint": "^8.8.1",
|
||||
"vite": "^5.4.8",
|
||||
"typescript-eslint": "^8.9.0",
|
||||
"vite": "^5.4.9",
|
||||
"vite-plugin-manifest-sri": "^0.2.0",
|
||||
"vite-plugin-valibot-env": "^0.8.0",
|
||||
"vite-plugin-valibot-env": "^0.8.1",
|
||||
"vite-tsconfig-paths": "^5.0.1",
|
||||
"wp-types": "^4.66.1"
|
||||
},
|
||||
|
|
|
|||
289
pnpm-lock.yaml
generated
289
pnpm-lock.yaml
generated
|
|
@ -14,6 +14,9 @@ importers:
|
|||
'@sentry/browser':
|
||||
specifier: 8.34.0
|
||||
version: 8.34.0
|
||||
html-template-tag:
|
||||
specifier: ^4.1.0
|
||||
version: 4.1.0
|
||||
purify-ts:
|
||||
specifier: ^2.1.0
|
||||
version: 2.1.0
|
||||
|
|
@ -21,8 +24,8 @@ importers:
|
|||
specifier: ^2.15.0
|
||||
version: 2.15.0
|
||||
ts-pattern:
|
||||
specifier: ^5.4.0
|
||||
version: 5.4.0
|
||||
specifier: ^5.5.0
|
||||
version: 5.5.0
|
||||
valibot:
|
||||
specifier: 1.0.0-beta.0
|
||||
version: 1.0.0-beta.0(typescript@5.7.0-dev.20241010)
|
||||
|
|
@ -64,11 +67,11 @@ importers:
|
|||
specifier: ^0.9.10
|
||||
version: 0.9.10
|
||||
eslint-plugin-perfectionist:
|
||||
specifier: ^3.8.0
|
||||
version: 3.8.0(eslint@9.12.0)(typescript@5.7.0-dev.20241010)
|
||||
specifier: ^3.9.0
|
||||
version: 3.9.0(eslint@9.12.0)(typescript@5.7.0-dev.20241010)
|
||||
fdir:
|
||||
specifier: ^6.4.0
|
||||
version: 6.4.0(picomatch@4.0.2)
|
||||
specifier: ^6.4.2
|
||||
version: 6.4.2(picomatch@4.0.2)
|
||||
globals:
|
||||
specifier: ^15.11.0
|
||||
version: 15.11.0
|
||||
|
|
@ -112,20 +115,20 @@ importers:
|
|||
specifier: 5.7.0-dev.20241010
|
||||
version: 5.7.0-dev.20241010
|
||||
typescript-eslint:
|
||||
specifier: ^8.8.1
|
||||
version: 8.8.1(eslint@9.12.0)(typescript@5.7.0-dev.20241010)
|
||||
specifier: ^8.9.0
|
||||
version: 8.9.0(eslint@9.12.0)(typescript@5.7.0-dev.20241010)
|
||||
vite:
|
||||
specifier: ^5.4.8
|
||||
version: 5.4.8(@types/node@22.7.5)(sass@1.79.5)
|
||||
specifier: ^5.4.9
|
||||
version: 5.4.9(@types/node@22.7.5)(sass@1.79.5)
|
||||
vite-plugin-manifest-sri:
|
||||
specifier: ^0.2.0
|
||||
version: 0.2.0
|
||||
vite-plugin-valibot-env:
|
||||
specifier: ^0.8.0
|
||||
version: 0.8.0(valibot@1.0.0-beta.0(typescript@5.7.0-dev.20241010))(vite@5.4.8(@types/node@22.7.5)(sass@1.79.5))
|
||||
specifier: ^0.8.1
|
||||
version: 0.8.1(valibot@1.0.0-beta.0(typescript@5.7.0-dev.20241010))(vite@5.4.9(@types/node@22.7.5)(sass@1.79.5))
|
||||
vite-tsconfig-paths:
|
||||
specifier: ^5.0.1
|
||||
version: 5.0.1(typescript@5.7.0-dev.20241010)(vite@5.4.8(@types/node@22.7.5)(sass@1.79.5))
|
||||
version: 5.0.1(typescript@5.7.0-dev.20241010)(vite@5.4.9(@types/node@22.7.5)(sass@1.79.5))
|
||||
wp-types:
|
||||
specifier: ^4.66.1
|
||||
version: 4.66.1
|
||||
|
|
@ -979,8 +982,8 @@ packages:
|
|||
'@types/responselike@1.0.3':
|
||||
resolution: {integrity: sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==}
|
||||
|
||||
'@typescript-eslint/eslint-plugin@8.8.1':
|
||||
resolution: {integrity: sha512-xfvdgA8AP/vxHgtgU310+WBnLB4uJQ9XdyP17RebG26rLtDrQJV3ZYrcopX91GrHmMoH8bdSwMRh2a//TiJ1jQ==}
|
||||
'@typescript-eslint/eslint-plugin@8.9.0':
|
||||
resolution: {integrity: sha512-Y1n621OCy4m7/vTXNlCbMVp87zSd7NH0L9cXD8aIpOaNlzeWxIK4+Q19A68gSmTNRZn92UjocVUWDthGxtqHFg==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
peerDependencies:
|
||||
'@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0
|
||||
|
|
@ -990,8 +993,8 @@ packages:
|
|||
typescript:
|
||||
optional: true
|
||||
|
||||
'@typescript-eslint/parser@8.8.1':
|
||||
resolution: {integrity: sha512-hQUVn2Lij2NAxVFEdvIGxT9gP1tq2yM83m+by3whWFsWC+1y8pxxxHUFE1UqDu2VsGi2i6RLcv4QvouM84U+ow==}
|
||||
'@typescript-eslint/parser@8.9.0':
|
||||
resolution: {integrity: sha512-U+BLn2rqTTHnc4FL3FJjxaXptTxmf9sNftJK62XLz4+GxG3hLHm/SUNaaXP5Y4uTiuYoL5YLy4JBCJe3+t8awQ==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
peerDependencies:
|
||||
eslint: ^8.57.0 || ^9.0.0
|
||||
|
|
@ -1000,12 +1003,12 @@ packages:
|
|||
typescript:
|
||||
optional: true
|
||||
|
||||
'@typescript-eslint/scope-manager@8.8.1':
|
||||
resolution: {integrity: sha512-X4JdU+66Mazev/J0gfXlcC/dV6JI37h+93W9BRYXrSn0hrE64IoWgVkO9MSJgEzoWkxONgaQpICWg8vAN74wlA==}
|
||||
'@typescript-eslint/scope-manager@8.9.0':
|
||||
resolution: {integrity: sha512-bZu9bUud9ym1cabmOYH9S6TnbWRzpklVmwqICeOulTCZ9ue2/pczWzQvt/cGj2r2o1RdKoZbuEMalJJSYw3pHQ==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
|
||||
'@typescript-eslint/type-utils@8.8.1':
|
||||
resolution: {integrity: sha512-qSVnpcbLP8CALORf0za+vjLYj1Wp8HSoiI8zYU5tHxRVj30702Z1Yw4cLwfNKhTPWp5+P+k1pjmD5Zd1nhxiZA==}
|
||||
'@typescript-eslint/type-utils@8.9.0':
|
||||
resolution: {integrity: sha512-JD+/pCqlKqAk5961vxCluK+clkppHY07IbV3vett97KOV+8C6l+CPEPwpUuiMwgbOz/qrN3Ke4zzjqbT+ls+1Q==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
peerDependencies:
|
||||
typescript: '*'
|
||||
|
|
@ -1013,12 +1016,12 @@ packages:
|
|||
typescript:
|
||||
optional: true
|
||||
|
||||
'@typescript-eslint/types@8.8.1':
|
||||
resolution: {integrity: sha512-WCcTP4SDXzMd23N27u66zTKMuEevH4uzU8C9jf0RO4E04yVHgQgW+r+TeVTNnO1KIfrL8ebgVVYYMMO3+jC55Q==}
|
||||
'@typescript-eslint/types@8.9.0':
|
||||
resolution: {integrity: sha512-SjgkvdYyt1FAPhU9c6FiYCXrldwYYlIQLkuc+LfAhCna6ggp96ACncdtlbn8FmnG72tUkXclrDExOpEYf1nfJQ==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
|
||||
'@typescript-eslint/typescript-estree@8.8.1':
|
||||
resolution: {integrity: sha512-A5d1R9p+X+1js4JogdNilDuuq+EHZdsH9MjTVxXOdVFfTJXunKJR/v+fNNyO4TnoOn5HqobzfRlc70NC6HTcdg==}
|
||||
'@typescript-eslint/typescript-estree@8.9.0':
|
||||
resolution: {integrity: sha512-9iJYTgKLDG6+iqegehc5+EqE6sqaee7kb8vWpmHZ86EqwDjmlqNNHeqDVqb9duh+BY6WCNHfIGvuVU3Tf9Db0g==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
peerDependencies:
|
||||
typescript: '*'
|
||||
|
|
@ -1026,14 +1029,14 @@ packages:
|
|||
typescript:
|
||||
optional: true
|
||||
|
||||
'@typescript-eslint/utils@8.8.1':
|
||||
resolution: {integrity: sha512-/QkNJDbV0bdL7H7d0/y0qBbV2HTtf0TIyjSDTvvmQEzeVx8jEImEbLuOA4EsvE8gIgqMitns0ifb5uQhMj8d9w==}
|
||||
'@typescript-eslint/utils@8.9.0':
|
||||
resolution: {integrity: sha512-PKgMmaSo/Yg/F7kIZvrgrWa1+Vwn036CdNUvYFEkYbPwOH4i8xvkaRlu148W3vtheWK9ckKRIz7PBP5oUlkrvQ==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
peerDependencies:
|
||||
eslint: ^8.57.0 || ^9.0.0
|
||||
|
||||
'@typescript-eslint/visitor-keys@8.8.1':
|
||||
resolution: {integrity: sha512-0/TdC3aeRAsW7MDvYRwEc1Uwm0TIBfzjPFgg60UU2Haj5qsCs9cc3zNgY71edqE3LbWfF/WoZQd3lJoDXFQpag==}
|
||||
'@typescript-eslint/visitor-keys@8.9.0':
|
||||
resolution: {integrity: sha512-Ht4y38ubk4L5/U8xKUBfKNYGmvKvA1CANoxiTRMM+tOLk3lbF3DvzZCxJCRSE+2GdCMSh6zq9VZJc3asc1XuAA==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
|
||||
'@xml-tools/parser@1.0.11':
|
||||
|
|
@ -1044,8 +1047,8 @@ packages:
|
|||
peerDependencies:
|
||||
acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
|
||||
|
||||
acorn@8.12.1:
|
||||
resolution: {integrity: sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==}
|
||||
acorn@8.13.0:
|
||||
resolution: {integrity: sha512-8zSiw54Oxrdym50NlZ9sUusyO1Z1ZchgRLWRaK6c86XJFClyCgFKetdowBg5bKxyp/u+CDBJG4Mpp0m3HLZl9w==}
|
||||
engines: {node: '>=0.4.0'}
|
||||
hasBin: true
|
||||
|
||||
|
|
@ -1131,8 +1134,8 @@ packages:
|
|||
resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
|
||||
engines: {node: '>=6'}
|
||||
|
||||
caniuse-lite@1.0.30001668:
|
||||
resolution: {integrity: sha512-nWLrdxqCdblixUO+27JtGJJE/txpJlyUy5YN1u53wLZkP0emYCo5zgS6QYft7VUYR42LGgi/S5hdLZTrnyIddw==}
|
||||
caniuse-lite@1.0.30001669:
|
||||
resolution: {integrity: sha512-DlWzFDJqstqtIVx1zeSpIMLjunf5SmwOw0N2Ck/QSQdS8PLS4+9HrLaYei4w8BIAL7IB/UEDu889d8vhCTPA0w==}
|
||||
|
||||
chalk@2.4.2:
|
||||
resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==}
|
||||
|
|
@ -1203,10 +1206,6 @@ packages:
|
|||
resolution: {integrity: sha512-IQOkD3hbR5KrN93MtcYuad6YPuTSUhntLHDuLEbFWE+ff2/XSZNdZG+LcbbIW5AXKg/WFIfYItIzVoHngHXZzA==}
|
||||
engines: {node: '>=12 || >=16'}
|
||||
|
||||
css-tree@2.3.1:
|
||||
resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==}
|
||||
engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0}
|
||||
|
||||
css-tree@3.0.0:
|
||||
resolution: {integrity: sha512-o88DVQ6GzsABn1+6+zo2ct801dBO5OASVyxbbvA2W20ue2puSh/VOuqUj90eUeMSX/xqGqBmOKiRQN7tJOuBXw==}
|
||||
engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0}
|
||||
|
|
@ -1245,8 +1244,8 @@ packages:
|
|||
resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==}
|
||||
engines: {node: '>=8'}
|
||||
|
||||
electron-to-chromium@1.5.36:
|
||||
resolution: {integrity: sha512-HYTX8tKge/VNp6FGO+f/uVDmUkq+cEfcxYhKf15Akc4M5yxt5YmorwlAitKWjWhWQnKcDRBAQKXkhqqXMqcrjw==}
|
||||
electron-to-chromium@1.5.39:
|
||||
resolution: {integrity: sha512-4xkpSR6CjuiaNyvwiWDI85N9AxsvbPawB8xc7yzLPonYTuP19BVgYweKyUMFtHEZgIcHWMt1ks5Cqx2m+6/Grg==}
|
||||
|
||||
emoji-regex@8.0.0:
|
||||
resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
|
||||
|
|
@ -1285,8 +1284,8 @@ packages:
|
|||
eslint-plugin-oxlint@0.9.10:
|
||||
resolution: {integrity: sha512-8AyknsmYBJ/82dNChwUDnR4PmE9jKfNn9W+dQ3buzmrwoTvpSIuho2A/KoaGv6B7Lz0cMaEloR6BGo/a0b/xOw==}
|
||||
|
||||
eslint-plugin-perfectionist@3.8.0:
|
||||
resolution: {integrity: sha512-BYJWbQVOjvIGK9V1xUfn790HuvkePjxti8epOi1H6sdzo0N4RehBmQ8coHPbgA/f12BUG1NIoDtQhI9mUm+o2A==}
|
||||
eslint-plugin-perfectionist@3.9.0:
|
||||
resolution: {integrity: sha512-qLsV6/94hokK+k77wUeLMEtB3tS/NtC9ke5OZCAaeCyK1VyVv7Ct0il16vkNNw/1IwNo8Fy60PKjQZSBcsVX5A==}
|
||||
engines: {node: ^18.0.0 || >=20.0.0}
|
||||
peerDependencies:
|
||||
astro-eslint-parser: ^1.0.2
|
||||
|
|
@ -1379,8 +1378,8 @@ packages:
|
|||
fast-levenshtein@2.0.6:
|
||||
resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
|
||||
|
||||
fast-uri@3.0.2:
|
||||
resolution: {integrity: sha512-GR6f0hD7XXyNJa25Tb9BuIdN0tdr+0BMi6/CJPH3wJO1JjNG3n/VsSw38AwRdKZABm8lGbPfakLRkYzx2V9row==}
|
||||
fast-uri@3.0.3:
|
||||
resolution: {integrity: sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw==}
|
||||
|
||||
fastest-levenshtein@1.0.16:
|
||||
resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==}
|
||||
|
|
@ -1389,8 +1388,8 @@ packages:
|
|||
fastq@1.17.1:
|
||||
resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==}
|
||||
|
||||
fdir@6.4.0:
|
||||
resolution: {integrity: sha512-3oB133prH1o4j/L5lLW7uOCF1PlD+/It2L0eL/iAqWMB91RBbqTewABqxhj0ibBd90EEmWZq7ntIWzVaWcXTGQ==}
|
||||
fdir@6.4.2:
|
||||
resolution: {integrity: sha512-KnhMXsKSPZlAhp7+IjUkRZKPb4fUyccpDrdFXbi4QL1qkmFh9kVY09Yox+n4MaOb3lHZ1Tv829C3oaaXoMYPDQ==}
|
||||
peerDependencies:
|
||||
picomatch: ^3 || ^4
|
||||
peerDependenciesMeta:
|
||||
|
|
@ -1506,10 +1505,19 @@ packages:
|
|||
resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
|
||||
engines: {node: '>=8'}
|
||||
|
||||
html-element-attributes@3.4.0:
|
||||
resolution: {integrity: sha512-u76G07278nacmHiSKs1yxbB2se0aiuQH8uJidyDMc6har3HRpFAR/sDKrZR426p03vu7QuvPAcaLMhp4kWcRbg==}
|
||||
|
||||
html-es6cape@2.0.2:
|
||||
resolution: {integrity: sha512-utzhH8rq2VABdW1LsPdv5tmxeMNOtP83If0jKCa79xPBgLWfcMvdf9K+EZoxJ5P7KioCxTs6WBnSDWLQHJ2lWA==}
|
||||
|
||||
html-tags@3.3.1:
|
||||
resolution: {integrity: sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==}
|
||||
engines: {node: '>=8'}
|
||||
|
||||
html-template-tag@4.1.0:
|
||||
resolution: {integrity: sha512-ZaKbMF8Udd00Wvy1aabnO8mKZoat3TdYeM5BMoj5gkyLqBmuT8UTSCIp44EKzzMmP31wTni+mlim8pSw/MbS7Q==}
|
||||
|
||||
http-cache-semantics@4.1.1:
|
||||
resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==}
|
||||
|
||||
|
|
@ -1661,12 +1669,12 @@ packages:
|
|||
mathml-tag-names@2.1.3:
|
||||
resolution: {integrity: sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==}
|
||||
|
||||
mdn-data@2.0.30:
|
||||
resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==}
|
||||
|
||||
mdn-data@2.10.0:
|
||||
resolution: {integrity: sha512-qq7C3EtK3yJXMwz1zAab65pjl+UhohqMOctTgcqjLOWABqmwj+me02LSsCuEUxnst9X1lCBpoE0WArGKgdGDzw==}
|
||||
|
||||
mdn-data@2.11.1:
|
||||
resolution: {integrity: sha512-Hdx3wmyqPFrhd6YHVuSkUK2eIGAcxR0xlndcgZqjA68yMJTbfXrjJwbgsBOsNjI7LnBIVUQnmyMVSdi/ob0GpQ==}
|
||||
|
||||
meow@13.2.0:
|
||||
resolution: {integrity: sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==}
|
||||
engines: {node: '>=18'}
|
||||
|
|
@ -1804,15 +1812,15 @@ packages:
|
|||
resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==}
|
||||
engines: {node: '>=8'}
|
||||
|
||||
peek-readable@5.2.0:
|
||||
resolution: {integrity: sha512-U94a+eXHzct7vAd19GH3UQ2dH4Satbng0MyYTMaQatL0pvYYL5CTPR25HBhKtecl+4bfu1/i3vC6k0hydO5Vcw==}
|
||||
peek-readable@5.3.1:
|
||||
resolution: {integrity: sha512-GVlENSDW6KHaXcd9zkZltB7tCLosKB/4Hg0fqBJkAoBgYG2Tn1xtMgXtSUuMU9AK/gCm/tTdT8mgAeF4YNeeqw==}
|
||||
engines: {node: '>=14.16'}
|
||||
|
||||
php-parser@3.1.5:
|
||||
resolution: {integrity: sha512-jEY2DcbgCm5aclzBdfW86GM6VEIWcSlhTBSHN1qhJguVePlYe28GhwS0yoeLYXpM2K8y6wzLwrbq814n2PHSoQ==}
|
||||
|
||||
picocolors@1.1.0:
|
||||
resolution: {integrity: sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==}
|
||||
picocolors@1.1.1:
|
||||
resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==}
|
||||
|
||||
picomatch@2.3.1:
|
||||
resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
|
||||
|
|
@ -2122,8 +2130,8 @@ packages:
|
|||
peerDependencies:
|
||||
stylelint: ^14.0.0 || ^15.0.0 || ^16.0.0
|
||||
|
||||
stylelint-scss@6.7.0:
|
||||
resolution: {integrity: sha512-RFIa2A+pVWS5wjNT+whtK7wsbZEWazyqesCuSaPbPlZ8lh2TujwVJSnCYJijg6ChZzwI8pZPRZS1L6A9aCbXDg==}
|
||||
stylelint-scss@6.8.0:
|
||||
resolution: {integrity: sha512-6gjsCZ30UUF6ivjZB2Z+1lb6k0+JFa1uR2MgGbYu76xRjEfvNTpSS1nQim1Gom1ijFF9GzauOiq1Kr7zKptQOw==}
|
||||
engines: {node: '>=18.12.0'}
|
||||
peerDependencies:
|
||||
stylelint: ^16.0.2
|
||||
|
|
@ -2173,8 +2181,8 @@ packages:
|
|||
peerDependencies:
|
||||
typescript: '>=4.2.0'
|
||||
|
||||
ts-pattern@5.4.0:
|
||||
resolution: {integrity: sha512-hgfOMfjlrARCnYtGD/xEAkFHDXuSyuqjzFSltyQCbN689uNvoQL20TVN2XFcLMjfNuwSsQGU+xtH6MrjIwhwUg==}
|
||||
ts-pattern@5.5.0:
|
||||
resolution: {integrity: sha512-jqbIpTsa/KKTJYWgPNsFNbLVpwCgzXfFJ1ukNn4I8hMwyQzHMJnk/BqWzggB0xpkILuKzaO/aMYhS0SkaJyKXg==}
|
||||
|
||||
tsconfck@3.1.4:
|
||||
resolution: {integrity: sha512-kdqWFGVJqe+KGYvlSO9NIaWn9jT1Ny4oKVzAJsKii5eoE9snzTJzL4+MMVOMn+fikWGFmKEylcXL710V/kIPJQ==}
|
||||
|
|
@ -2186,8 +2194,8 @@ packages:
|
|||
typescript:
|
||||
optional: true
|
||||
|
||||
tslib@2.7.0:
|
||||
resolution: {integrity: sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==}
|
||||
tslib@2.8.0:
|
||||
resolution: {integrity: sha512-jWVzBLplnCmoaTr13V9dYbiQ99wvZRd0vNWaDRg+aVYRcjDF3nDksxFDE/+fkXnKhpnUUkmx5pK/v8mCtLVqZA==}
|
||||
|
||||
type-check@0.4.0:
|
||||
resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
|
||||
|
|
@ -2197,8 +2205,8 @@ packages:
|
|||
resolution: {integrity: sha512-yOGpmOAL7CkKe/91I5O3gPICmJNLJ1G4zFYVAsRHg7M64biSnPtRj0WNQt++bRkjYOqjWXrhnUw1utzmVErAdg==}
|
||||
engines: {node: '>=16'}
|
||||
|
||||
typescript-eslint@8.8.1:
|
||||
resolution: {integrity: sha512-R0dsXFt6t4SAFjUSKFjMh4pXDtq04SsFKCVGDP3ZOzNP7itF0jBcZYU4fMsZr4y7O7V7Nc751dDeESbe4PbQMQ==}
|
||||
typescript-eslint@8.9.0:
|
||||
resolution: {integrity: sha512-AuD/FXGYRQyqyOBCpNLldMlsCGvmDNxptQ3Dp58/NXeB+FqyvTfXmMyba3PYa0Vi9ybnj7G8S/yd/4Cw8y47eA==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
peerDependencies:
|
||||
typescript: '*'
|
||||
|
|
@ -2242,11 +2250,11 @@ packages:
|
|||
vite-plugin-manifest-sri@0.2.0:
|
||||
resolution: {integrity: sha512-Zt5jt19xTIJ91LOuQTCtNG7rTFc5OziAjBz2H5NdCGqaOD1nxrWExLhcKW+W4/q8/jOPCg/n5ncYEQmqCxiGQQ==}
|
||||
|
||||
vite-plugin-valibot-env@0.8.0:
|
||||
resolution: {integrity: sha512-uMxgu7qpR/nJlVrOCTvxXSc6KnWAxT4eqINenPvHau6kHuIdHO3N7eQlffUKKZNMWqbuM9MURv4dTAZVLTPYzQ==}
|
||||
vite-plugin-valibot-env@0.8.1:
|
||||
resolution: {integrity: sha512-TKS0F/G24gIVaDpPSNGe835QRqibvulF13N7vYry73mvLErJppLAQQAsBBYEMMf6HTg//lXaAcA9kzF8OxOS9Q==}
|
||||
engines: {node: '>=18.0.0'}
|
||||
peerDependencies:
|
||||
valibot: '>=0.30 <0.43 || 1.0.0-beta.0'
|
||||
valibot: '>=0.30 <0.43 || 1.0.0-beta.0 || 1.0.0-beta.1'
|
||||
vite: '>=2 <6'
|
||||
|
||||
vite-tsconfig-paths@5.0.1:
|
||||
|
|
@ -2257,8 +2265,8 @@ packages:
|
|||
vite:
|
||||
optional: true
|
||||
|
||||
vite@5.4.8:
|
||||
resolution: {integrity: sha512-FqrItQ4DT1NC4zCUqMB4c4AZORMKIa0m8/URVCZ77OZ/QSNeJ54bU1vrFADbDsuwfIPcgknRkmqakQcgnL4GiQ==}
|
||||
vite@5.4.9:
|
||||
resolution: {integrity: sha512-20OVpJHh0PAM0oSOELa5GaZNWeDjcAvQjGXy2Uyr+Tp+/D2/Hdz6NLgpJLsarPTA2QJ6v8mX2P1ZfbsSKvdMkg==}
|
||||
engines: {node: ^18.0.0 || >=20.0.0}
|
||||
hasBin: true
|
||||
peerDependencies:
|
||||
|
|
@ -2327,7 +2335,7 @@ snapshots:
|
|||
'@babel/code-frame@7.25.7':
|
||||
dependencies:
|
||||
'@babel/highlight': 7.25.7
|
||||
picocolors: 1.1.0
|
||||
picocolors: 1.1.1
|
||||
|
||||
'@babel/helper-validator-identifier@7.25.7': {}
|
||||
|
||||
|
|
@ -2336,7 +2344,7 @@ snapshots:
|
|||
'@babel/helper-validator-identifier': 7.25.7
|
||||
chalk: 2.4.2
|
||||
js-tokens: 4.0.0
|
||||
picocolors: 1.1.0
|
||||
picocolors: 1.1.1
|
||||
|
||||
'@better-typescript-lib/decorators@2.9.0(typescript@5.7.0-dev.20241010)':
|
||||
dependencies:
|
||||
|
|
@ -2970,14 +2978,14 @@ snapshots:
|
|||
dependencies:
|
||||
'@types/node': 22.7.5
|
||||
|
||||
'@typescript-eslint/eslint-plugin@8.8.1(@typescript-eslint/parser@8.8.1(eslint@9.12.0)(typescript@5.7.0-dev.20241010))(eslint@9.12.0)(typescript@5.7.0-dev.20241010)':
|
||||
'@typescript-eslint/eslint-plugin@8.9.0(@typescript-eslint/parser@8.9.0(eslint@9.12.0)(typescript@5.7.0-dev.20241010))(eslint@9.12.0)(typescript@5.7.0-dev.20241010)':
|
||||
dependencies:
|
||||
'@eslint-community/regexpp': 4.11.1
|
||||
'@typescript-eslint/parser': 8.8.1(eslint@9.12.0)(typescript@5.7.0-dev.20241010)
|
||||
'@typescript-eslint/scope-manager': 8.8.1
|
||||
'@typescript-eslint/type-utils': 8.8.1(eslint@9.12.0)(typescript@5.7.0-dev.20241010)
|
||||
'@typescript-eslint/utils': 8.8.1(eslint@9.12.0)(typescript@5.7.0-dev.20241010)
|
||||
'@typescript-eslint/visitor-keys': 8.8.1
|
||||
'@typescript-eslint/parser': 8.9.0(eslint@9.12.0)(typescript@5.7.0-dev.20241010)
|
||||
'@typescript-eslint/scope-manager': 8.9.0
|
||||
'@typescript-eslint/type-utils': 8.9.0(eslint@9.12.0)(typescript@5.7.0-dev.20241010)
|
||||
'@typescript-eslint/utils': 8.9.0(eslint@9.12.0)(typescript@5.7.0-dev.20241010)
|
||||
'@typescript-eslint/visitor-keys': 8.9.0
|
||||
eslint: 9.12.0
|
||||
graphemer: 1.4.0
|
||||
ignore: 5.3.2
|
||||
|
|
@ -2988,12 +2996,12 @@ snapshots:
|
|||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
'@typescript-eslint/parser@8.8.1(eslint@9.12.0)(typescript@5.7.0-dev.20241010)':
|
||||
'@typescript-eslint/parser@8.9.0(eslint@9.12.0)(typescript@5.7.0-dev.20241010)':
|
||||
dependencies:
|
||||
'@typescript-eslint/scope-manager': 8.8.1
|
||||
'@typescript-eslint/types': 8.8.1
|
||||
'@typescript-eslint/typescript-estree': 8.8.1(typescript@5.7.0-dev.20241010)
|
||||
'@typescript-eslint/visitor-keys': 8.8.1
|
||||
'@typescript-eslint/scope-manager': 8.9.0
|
||||
'@typescript-eslint/types': 8.9.0
|
||||
'@typescript-eslint/typescript-estree': 8.9.0(typescript@5.7.0-dev.20241010)
|
||||
'@typescript-eslint/visitor-keys': 8.9.0
|
||||
debug: 4.3.7
|
||||
eslint: 9.12.0
|
||||
optionalDependencies:
|
||||
|
|
@ -3001,15 +3009,15 @@ snapshots:
|
|||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
'@typescript-eslint/scope-manager@8.8.1':
|
||||
'@typescript-eslint/scope-manager@8.9.0':
|
||||
dependencies:
|
||||
'@typescript-eslint/types': 8.8.1
|
||||
'@typescript-eslint/visitor-keys': 8.8.1
|
||||
'@typescript-eslint/types': 8.9.0
|
||||
'@typescript-eslint/visitor-keys': 8.9.0
|
||||
|
||||
'@typescript-eslint/type-utils@8.8.1(eslint@9.12.0)(typescript@5.7.0-dev.20241010)':
|
||||
'@typescript-eslint/type-utils@8.9.0(eslint@9.12.0)(typescript@5.7.0-dev.20241010)':
|
||||
dependencies:
|
||||
'@typescript-eslint/typescript-estree': 8.8.1(typescript@5.7.0-dev.20241010)
|
||||
'@typescript-eslint/utils': 8.8.1(eslint@9.12.0)(typescript@5.7.0-dev.20241010)
|
||||
'@typescript-eslint/typescript-estree': 8.9.0(typescript@5.7.0-dev.20241010)
|
||||
'@typescript-eslint/utils': 8.9.0(eslint@9.12.0)(typescript@5.7.0-dev.20241010)
|
||||
debug: 4.3.7
|
||||
ts-api-utils: 1.3.0(typescript@5.7.0-dev.20241010)
|
||||
optionalDependencies:
|
||||
|
|
@ -3018,12 +3026,12 @@ snapshots:
|
|||
- eslint
|
||||
- supports-color
|
||||
|
||||
'@typescript-eslint/types@8.8.1': {}
|
||||
'@typescript-eslint/types@8.9.0': {}
|
||||
|
||||
'@typescript-eslint/typescript-estree@8.8.1(typescript@5.7.0-dev.20241010)':
|
||||
'@typescript-eslint/typescript-estree@8.9.0(typescript@5.7.0-dev.20241010)':
|
||||
dependencies:
|
||||
'@typescript-eslint/types': 8.8.1
|
||||
'@typescript-eslint/visitor-keys': 8.8.1
|
||||
'@typescript-eslint/types': 8.9.0
|
||||
'@typescript-eslint/visitor-keys': 8.9.0
|
||||
debug: 4.3.7
|
||||
fast-glob: 3.3.2
|
||||
is-glob: 4.0.3
|
||||
|
|
@ -3035,31 +3043,31 @@ snapshots:
|
|||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
'@typescript-eslint/utils@8.8.1(eslint@9.12.0)(typescript@5.7.0-dev.20241010)':
|
||||
'@typescript-eslint/utils@8.9.0(eslint@9.12.0)(typescript@5.7.0-dev.20241010)':
|
||||
dependencies:
|
||||
'@eslint-community/eslint-utils': 4.4.0(eslint@9.12.0)
|
||||
'@typescript-eslint/scope-manager': 8.8.1
|
||||
'@typescript-eslint/types': 8.8.1
|
||||
'@typescript-eslint/typescript-estree': 8.8.1(typescript@5.7.0-dev.20241010)
|
||||
'@typescript-eslint/scope-manager': 8.9.0
|
||||
'@typescript-eslint/types': 8.9.0
|
||||
'@typescript-eslint/typescript-estree': 8.9.0(typescript@5.7.0-dev.20241010)
|
||||
eslint: 9.12.0
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
- typescript
|
||||
|
||||
'@typescript-eslint/visitor-keys@8.8.1':
|
||||
'@typescript-eslint/visitor-keys@8.9.0':
|
||||
dependencies:
|
||||
'@typescript-eslint/types': 8.8.1
|
||||
'@typescript-eslint/types': 8.9.0
|
||||
eslint-visitor-keys: 3.4.3
|
||||
|
||||
'@xml-tools/parser@1.0.11':
|
||||
dependencies:
|
||||
chevrotain: 7.1.1
|
||||
|
||||
acorn-jsx@5.3.2(acorn@8.12.1):
|
||||
acorn-jsx@5.3.2(acorn@8.13.0):
|
||||
dependencies:
|
||||
acorn: 8.12.1
|
||||
acorn: 8.13.0
|
||||
|
||||
acorn@8.12.1: {}
|
||||
acorn@8.13.0: {}
|
||||
|
||||
ajv@6.12.6:
|
||||
dependencies:
|
||||
|
|
@ -3071,7 +3079,7 @@ snapshots:
|
|||
ajv@8.17.1:
|
||||
dependencies:
|
||||
fast-deep-equal: 3.1.3
|
||||
fast-uri: 3.0.2
|
||||
fast-uri: 3.0.3
|
||||
json-schema-traverse: 1.0.0
|
||||
require-from-string: 2.0.2
|
||||
|
||||
|
|
@ -3148,8 +3156,8 @@ snapshots:
|
|||
|
||||
browserslist@4.24.0:
|
||||
dependencies:
|
||||
caniuse-lite: 1.0.30001668
|
||||
electron-to-chromium: 1.5.36
|
||||
caniuse-lite: 1.0.30001669
|
||||
electron-to-chromium: 1.5.39
|
||||
node-releases: 2.0.18
|
||||
update-browserslist-db: 1.1.1(browserslist@4.24.0)
|
||||
|
||||
|
|
@ -3167,7 +3175,7 @@ snapshots:
|
|||
|
||||
callsites@3.1.0: {}
|
||||
|
||||
caniuse-lite@1.0.30001668: {}
|
||||
caniuse-lite@1.0.30001669: {}
|
||||
|
||||
chalk@2.4.2:
|
||||
dependencies:
|
||||
|
|
@ -3239,11 +3247,6 @@ snapshots:
|
|||
|
||||
css-functions-list@3.2.3: {}
|
||||
|
||||
css-tree@2.3.1:
|
||||
dependencies:
|
||||
mdn-data: 2.0.30
|
||||
source-map-js: 1.2.1
|
||||
|
||||
css-tree@3.0.0:
|
||||
dependencies:
|
||||
mdn-data: 2.10.0
|
||||
|
|
@ -3269,7 +3272,7 @@ snapshots:
|
|||
dependencies:
|
||||
path-type: 4.0.0
|
||||
|
||||
electron-to-chromium@1.5.36: {}
|
||||
electron-to-chromium@1.5.39: {}
|
||||
|
||||
emoji-regex@8.0.0: {}
|
||||
|
||||
|
|
@ -3321,10 +3324,10 @@ snapshots:
|
|||
dependencies:
|
||||
scule: 1.3.0
|
||||
|
||||
eslint-plugin-perfectionist@3.8.0(eslint@9.12.0)(typescript@5.7.0-dev.20241010):
|
||||
eslint-plugin-perfectionist@3.9.0(eslint@9.12.0)(typescript@5.7.0-dev.20241010):
|
||||
dependencies:
|
||||
'@typescript-eslint/types': 8.8.1
|
||||
'@typescript-eslint/utils': 8.8.1(eslint@9.12.0)(typescript@5.7.0-dev.20241010)
|
||||
'@typescript-eslint/types': 8.9.0
|
||||
'@typescript-eslint/utils': 8.9.0(eslint@9.12.0)(typescript@5.7.0-dev.20241010)
|
||||
eslint: 9.12.0
|
||||
minimatch: 9.0.5
|
||||
natural-compare-lite: 1.4.0
|
||||
|
|
@ -3383,8 +3386,8 @@ snapshots:
|
|||
|
||||
espree@10.2.0:
|
||||
dependencies:
|
||||
acorn: 8.12.1
|
||||
acorn-jsx: 5.3.2(acorn@8.12.1)
|
||||
acorn: 8.13.0
|
||||
acorn-jsx: 5.3.2(acorn@8.13.0)
|
||||
eslint-visitor-keys: 4.1.0
|
||||
|
||||
esquery@1.6.0:
|
||||
|
|
@ -3448,7 +3451,7 @@ snapshots:
|
|||
|
||||
fast-levenshtein@2.0.6: {}
|
||||
|
||||
fast-uri@3.0.2: {}
|
||||
fast-uri@3.0.3: {}
|
||||
|
||||
fastest-levenshtein@1.0.16: {}
|
||||
|
||||
|
|
@ -3456,7 +3459,7 @@ snapshots:
|
|||
dependencies:
|
||||
reusify: 1.0.4
|
||||
|
||||
fdir@6.4.0(picomatch@4.0.2):
|
||||
fdir@6.4.2(picomatch@4.0.2):
|
||||
optionalDependencies:
|
||||
picomatch: 4.0.2
|
||||
|
||||
|
|
@ -3573,8 +3576,17 @@ snapshots:
|
|||
|
||||
has-flag@4.0.0: {}
|
||||
|
||||
html-element-attributes@3.4.0: {}
|
||||
|
||||
html-es6cape@2.0.2: {}
|
||||
|
||||
html-tags@3.3.1: {}
|
||||
|
||||
html-template-tag@4.1.0:
|
||||
dependencies:
|
||||
html-element-attributes: 3.4.0
|
||||
html-es6cape: 2.0.2
|
||||
|
||||
http-cache-semantics@4.1.1: {}
|
||||
|
||||
http2-wrapper@1.0.3:
|
||||
|
|
@ -3684,10 +3696,10 @@ snapshots:
|
|||
|
||||
mathml-tag-names@2.1.3: {}
|
||||
|
||||
mdn-data@2.0.30: {}
|
||||
|
||||
mdn-data@2.10.0: {}
|
||||
|
||||
mdn-data@2.11.1: {}
|
||||
|
||||
meow@13.2.0: {}
|
||||
|
||||
merge-stream@2.0.0: {}
|
||||
|
|
@ -3804,11 +3816,11 @@ snapshots:
|
|||
|
||||
path-type@4.0.0: {}
|
||||
|
||||
peek-readable@5.2.0: {}
|
||||
peek-readable@5.3.1: {}
|
||||
|
||||
php-parser@3.1.5: {}
|
||||
|
||||
picocolors@1.1.0: {}
|
||||
picocolors@1.1.1: {}
|
||||
|
||||
picomatch@2.3.1: {}
|
||||
|
||||
|
|
@ -3846,7 +3858,7 @@ snapshots:
|
|||
postcss@8.4.47:
|
||||
dependencies:
|
||||
nanoid: 3.3.7
|
||||
picocolors: 1.1.0
|
||||
picocolors: 1.1.1
|
||||
source-map-js: 1.2.1
|
||||
|
||||
prelude-ls@1.2.1: {}
|
||||
|
|
@ -3959,7 +3971,7 @@ snapshots:
|
|||
|
||||
sh-syntax@0.4.2:
|
||||
dependencies:
|
||||
tslib: 2.7.0
|
||||
tslib: 2.8.0
|
||||
|
||||
shebang-command@1.2.0:
|
||||
dependencies:
|
||||
|
|
@ -4022,7 +4034,7 @@ snapshots:
|
|||
strtok3@7.1.1:
|
||||
dependencies:
|
||||
'@tokenizer/token': 0.3.0
|
||||
peek-readable: 5.2.0
|
||||
peek-readable: 5.3.1
|
||||
|
||||
style-search@0.1.0: {}
|
||||
|
||||
|
|
@ -4036,7 +4048,7 @@ snapshots:
|
|||
postcss-scss: 4.0.9(postcss@8.4.47)
|
||||
stylelint: 16.10.0(typescript@5.7.0-dev.20241010)
|
||||
stylelint-config-recommended: 14.0.1(stylelint@16.10.0(typescript@5.7.0-dev.20241010))
|
||||
stylelint-scss: 6.7.0(stylelint@16.10.0(typescript@5.7.0-dev.20241010))
|
||||
stylelint-scss: 6.8.0(stylelint@16.10.0(typescript@5.7.0-dev.20241010))
|
||||
optionalDependencies:
|
||||
postcss: 8.4.47
|
||||
|
||||
|
|
@ -4050,7 +4062,7 @@ snapshots:
|
|||
postcss: 8.4.47
|
||||
postcss-scss: 4.0.9(postcss@8.4.47)
|
||||
stylelint: 16.10.0(typescript@5.7.0-dev.20241010)
|
||||
stylelint-scss: 6.7.0(stylelint@16.10.0(typescript@5.7.0-dev.20241010))
|
||||
stylelint-scss: 6.8.0(stylelint@16.10.0(typescript@5.7.0-dev.20241010))
|
||||
|
||||
stylelint-config-standard-scss@13.1.0(postcss@8.4.47)(stylelint@16.10.0(typescript@5.7.0-dev.20241010)):
|
||||
dependencies:
|
||||
|
|
@ -4079,11 +4091,12 @@ snapshots:
|
|||
dependencies:
|
||||
stylelint: 16.10.0(typescript@5.7.0-dev.20241010)
|
||||
|
||||
stylelint-scss@6.7.0(stylelint@16.10.0(typescript@5.7.0-dev.20241010)):
|
||||
stylelint-scss@6.8.0(stylelint@16.10.0(typescript@5.7.0-dev.20241010)):
|
||||
dependencies:
|
||||
css-tree: 2.3.1
|
||||
css-tree: 3.0.0
|
||||
is-plain-object: 5.0.0
|
||||
known-css-properties: 0.34.0
|
||||
mdn-data: 2.11.1
|
||||
postcss-media-query-parser: 0.2.3
|
||||
postcss-resolve-nested-selector: 0.1.6
|
||||
postcss-selector-parser: 6.1.2
|
||||
|
|
@ -4118,7 +4131,7 @@ snapshots:
|
|||
meow: 13.2.0
|
||||
micromatch: 4.0.8
|
||||
normalize-path: 3.0.0
|
||||
picocolors: 1.1.0
|
||||
picocolors: 1.1.1
|
||||
postcss: 8.4.47
|
||||
postcss-resolve-nested-selector: 0.1.6
|
||||
postcss-safe-parser: 7.0.1(postcss@8.4.47)
|
||||
|
|
@ -4176,13 +4189,13 @@ snapshots:
|
|||
dependencies:
|
||||
typescript: 5.7.0-dev.20241010
|
||||
|
||||
ts-pattern@5.4.0: {}
|
||||
ts-pattern@5.5.0: {}
|
||||
|
||||
tsconfck@3.1.4(typescript@5.7.0-dev.20241010):
|
||||
optionalDependencies:
|
||||
typescript: 5.7.0-dev.20241010
|
||||
|
||||
tslib@2.7.0: {}
|
||||
tslib@2.8.0: {}
|
||||
|
||||
type-check@0.4.0:
|
||||
dependencies:
|
||||
|
|
@ -4190,11 +4203,11 @@ snapshots:
|
|||
|
||||
type-fest@4.26.1: {}
|
||||
|
||||
typescript-eslint@8.8.1(eslint@9.12.0)(typescript@5.7.0-dev.20241010):
|
||||
typescript-eslint@8.9.0(eslint@9.12.0)(typescript@5.7.0-dev.20241010):
|
||||
dependencies:
|
||||
'@typescript-eslint/eslint-plugin': 8.8.1(@typescript-eslint/parser@8.8.1(eslint@9.12.0)(typescript@5.7.0-dev.20241010))(eslint@9.12.0)(typescript@5.7.0-dev.20241010)
|
||||
'@typescript-eslint/parser': 8.8.1(eslint@9.12.0)(typescript@5.7.0-dev.20241010)
|
||||
'@typescript-eslint/utils': 8.8.1(eslint@9.12.0)(typescript@5.7.0-dev.20241010)
|
||||
'@typescript-eslint/eslint-plugin': 8.9.0(@typescript-eslint/parser@8.9.0(eslint@9.12.0)(typescript@5.7.0-dev.20241010))(eslint@9.12.0)(typescript@5.7.0-dev.20241010)
|
||||
'@typescript-eslint/parser': 8.9.0(eslint@9.12.0)(typescript@5.7.0-dev.20241010)
|
||||
'@typescript-eslint/utils': 8.9.0(eslint@9.12.0)(typescript@5.7.0-dev.20241010)
|
||||
optionalDependencies:
|
||||
typescript: 5.7.0-dev.20241010
|
||||
transitivePeerDependencies:
|
||||
|
|
@ -4211,7 +4224,7 @@ snapshots:
|
|||
dependencies:
|
||||
browserslist: 4.24.0
|
||||
escalade: 3.2.0
|
||||
picocolors: 1.1.0
|
||||
picocolors: 1.1.1
|
||||
|
||||
uri-js@4.4.1:
|
||||
dependencies:
|
||||
|
|
@ -4225,25 +4238,25 @@ snapshots:
|
|||
|
||||
vite-plugin-manifest-sri@0.2.0: {}
|
||||
|
||||
vite-plugin-valibot-env@0.8.0(valibot@1.0.0-beta.0(typescript@5.7.0-dev.20241010))(vite@5.4.8(@types/node@22.7.5)(sass@1.79.5)):
|
||||
vite-plugin-valibot-env@0.8.1(valibot@1.0.0-beta.0(typescript@5.7.0-dev.20241010))(vite@5.4.9(@types/node@22.7.5)(sass@1.79.5)):
|
||||
dependencies:
|
||||
kleur: 4.1.5
|
||||
log-symbols: 7.0.0
|
||||
valibot: 1.0.0-beta.0(typescript@5.7.0-dev.20241010)
|
||||
vite: 5.4.8(@types/node@22.7.5)(sass@1.79.5)
|
||||
vite: 5.4.9(@types/node@22.7.5)(sass@1.79.5)
|
||||
|
||||
vite-tsconfig-paths@5.0.1(typescript@5.7.0-dev.20241010)(vite@5.4.8(@types/node@22.7.5)(sass@1.79.5)):
|
||||
vite-tsconfig-paths@5.0.1(typescript@5.7.0-dev.20241010)(vite@5.4.9(@types/node@22.7.5)(sass@1.79.5)):
|
||||
dependencies:
|
||||
debug: 4.3.7
|
||||
globrex: 0.1.2
|
||||
tsconfck: 3.1.4(typescript@5.7.0-dev.20241010)
|
||||
optionalDependencies:
|
||||
vite: 5.4.8(@types/node@22.7.5)(sass@1.79.5)
|
||||
vite: 5.4.9(@types/node@22.7.5)(sass@1.79.5)
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
- typescript
|
||||
|
||||
vite@5.4.8(@types/node@22.7.5)(sass@1.79.5):
|
||||
vite@5.4.9(@types/node@22.7.5)(sass@1.79.5):
|
||||
dependencies:
|
||||
esbuild: 0.21.5
|
||||
postcss: 8.4.47
|
||||
|
|
|
|||
|
|
@ -15,12 +15,26 @@ $modeles = ["boutique.twig"];
|
|||
|
||||
/** @var array<WC_Product> $informations_produits Les informations brutes des Produits. */
|
||||
$informations_produits = wc_get_products([
|
||||
"orderby" => "date",
|
||||
"limit" => 12,
|
||||
"order" => "DESC",
|
||||
"orderby" => "date",
|
||||
]);
|
||||
/** @var InformationsProduitShop $produits Les informations strictement nécessaires pour la grille des Produits. */
|
||||
$produits = array_map(callback: "recupere_informations_produit_shop", array: $informations_produits);
|
||||
$contexte["produits"] = $produits;
|
||||
|
||||
/**
|
||||
* Charge les Scripts nécessaires pour la page Boutique.
|
||||
*/
|
||||
function charge_scripts_page_boutique(): void {
|
||||
wp_enqueue_script_module(
|
||||
id: "haiku-atelier-2024-scripts-page-boutique",
|
||||
src: get_template_directory_uri() . "/assets/js/scripts-page-boutique.js",
|
||||
deps: [],
|
||||
version: filemtime(get_template_directory() . "/assets/js/scripts-page-boutique.js"),
|
||||
);
|
||||
}
|
||||
add_action("wp_enqueue_scripts", "charge_scripts_page_boutique");
|
||||
|
||||
// Rendu
|
||||
Timber::render($filenames = $modeles, $data = $contexte);
|
||||
|
|
|
|||
|
|
@ -459,7 +459,7 @@ ul.avec-puce-cercle a {
|
|||
*/
|
||||
}
|
||||
#en-tete .compte-panier a {
|
||||
min-width: 9ch; /* 1 */
|
||||
min-width: 10ch; /* 1 */
|
||||
text-transform: lowercase;
|
||||
}
|
||||
#en-tete .compte-panier a.lien-compte {
|
||||
|
|
|
|||
|
|
@ -405,7 +405,7 @@ ul.avec-puce-cercle a {
|
|||
|
||||
#en-tete .compte-panier a {
|
||||
text-transform: lowercase;
|
||||
min-width: 9ch;
|
||||
min-width: 10ch;
|
||||
}
|
||||
|
||||
#en-tete .compte-panier a.lien-compte {
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -175,14 +175,11 @@
|
|||
border-left: initial;
|
||||
}
|
||||
#panneau-panier .panneau__sous-totaux {
|
||||
width: fit-content;
|
||||
width: min(30rem, 100%);
|
||||
margin: auto;
|
||||
padding: var(--espace-l) 0;
|
||||
padding: var(--espace-l) var(--espace-xl);
|
||||
text-align: center;
|
||||
}
|
||||
#panneau-panier .panneau__sous-totaux p + p {
|
||||
margin-top: var(--espace-l);
|
||||
}
|
||||
#panneau-panier .panneau__sous-totaux__ligne {
|
||||
display: flex;
|
||||
flex-flow: row nowrap;
|
||||
|
|
@ -190,12 +187,17 @@
|
|||
font-style: italic;
|
||||
}
|
||||
#panneau-panier .panneau__sous-totaux__ligne strong {
|
||||
text-align: right;
|
||||
text-transform: lowercase;
|
||||
}
|
||||
#panneau-panier .panneau__sous-totaux__ligne.sous-total strong {
|
||||
font-style: normal;
|
||||
#panneau-panier .panneau__sous-totaux__ligne#sous-total-livraison p:last-of-type {
|
||||
text-align: right;
|
||||
}
|
||||
#panneau-panier .panneau__sous-totaux__ligne#sous-total-livraison p:last-of-type span {
|
||||
color: grey;
|
||||
}
|
||||
#panneau-panier .panneau__sous-totaux__conditions-livraison {
|
||||
margin-top: var(--espace-l);
|
||||
font-size: 0.8rem;
|
||||
font-weight: 450;
|
||||
color: grey;
|
||||
|
|
@ -361,6 +363,7 @@
|
|||
}
|
||||
#page-panier .panneau__en-tete {
|
||||
position: sticky;
|
||||
z-index: 2;
|
||||
top: var(--menu-section-marges-bloc-debut);
|
||||
display: block;
|
||||
align-content: center;
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
{"version":3,"sourceRoot":"","sources":["../../../src/sass/layouts/_panneau-panier.scss","../../../src/sass/layouts/_panneau-informations-client.scss","../../../src/sass/pages/page-panier.scss"],"names":[],"mappings":";AAEA;EACE;;AAEA;EACE;;AAIF;EACE;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAGA;EACE;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;AAOA;AAOA;AAAA;AAAA;AAAA;AAmBA;AAOA;;AAtCA;EACE;;AAKF;EACE;EACA;EACA;;AAOF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;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;;AAEA;EACE;EACA;EACA;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;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;AAKN;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;;AAIJ;EACE;EACA;EACA;EACA;;AAKJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;;ACjQJ;EACE;EACA;;AAIF;EAEE;EACA;EACA;EAGA;EAEA;EACA;;AAEA;EACE;EACA;;AAIF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAGF;EACE;;AAMN;EACE;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAKF;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAMR;EACE;EACA;;AAEA;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;;AAIA;EACE;;AAKN;EACE;EACA;;AAEA;EACE;;AAIJ;EACE;;AAKJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;;;AC/IN;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"}
|
||||
{"version":3,"sourceRoot":"","sources":["../../../src/sass/layouts/_panneau-panier.scss","../../../src/sass/layouts/_panneau-informations-client.scss","../../../src/sass/pages/page-panier.scss"],"names":[],"mappings":";AAEA;EACE;;AAEA;EACE;;AAIF;EACE;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAGA;EACE;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;AAOA;AAOA;AAAA;AAAA;AAAA;AAmBA;AAOA;;AAtCA;EACE;;AAKF;EACE;EACA;EACA;;AAOF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;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;;AAEA;EACE;EACA;EACA;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;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;AAKN;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAKA;EACE;;AAEA;EACE;;AAMR;EACE;EACA;EACA;EACA;EACA;;AAKJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;;ACtQJ;EACE;EACA;;AAIF;EAEE;EACA;EACA;EAGA;EAEA;EACA;;AAEA;EACE;EACA;;AAIF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAGF;EACE;;AAMN;EACE;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAKF;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAMR;EACE;EACA;;AAEA;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;;AAIA;EACE;;AAKN;EACE;EACA;;AAEA;EACE;;AAIJ;EACE;;AAKJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;;;AC/IN;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;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;;AAON;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;EACA","file":"page-panier.css"}
|
||||
|
|
@ -191,16 +191,12 @@
|
|||
}
|
||||
|
||||
#panneau-panier .panneau__sous-totaux {
|
||||
padding: var(--espace-l) 0;
|
||||
padding: var(--espace-l) var(--espace-xl);
|
||||
text-align: center;
|
||||
width: fit-content;
|
||||
width: min(30rem, 100%);
|
||||
margin: auto;
|
||||
}
|
||||
|
||||
#panneau-panier .panneau__sous-totaux p + p {
|
||||
margin-top: var(--espace-l);
|
||||
}
|
||||
|
||||
#panneau-panier .panneau__sous-totaux__ligne {
|
||||
flex-flow: row;
|
||||
justify-content: space-between;
|
||||
|
|
@ -209,14 +205,20 @@
|
|||
}
|
||||
|
||||
#panneau-panier .panneau__sous-totaux__ligne strong {
|
||||
text-align: right;
|
||||
text-transform: lowercase;
|
||||
}
|
||||
|
||||
#panneau-panier .panneau__sous-totaux__ligne.sous-total strong {
|
||||
font-style: normal;
|
||||
#panneau-panier .panneau__sous-totaux__ligne#sous-total-livraison p:last-of-type {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
#panneau-panier .panneau__sous-totaux__ligne#sous-total-livraison p:last-of-type span {
|
||||
color: gray;
|
||||
}
|
||||
|
||||
#panneau-panier .panneau__sous-totaux__conditions-livraison {
|
||||
margin-top: var(--espace-l);
|
||||
color: gray;
|
||||
letter-spacing: var(--espacement-inter-lettres-etendu-s);
|
||||
font-size: .8rem;
|
||||
|
|
@ -402,6 +404,7 @@
|
|||
}
|
||||
|
||||
#page-panier .panneau__en-tete {
|
||||
z-index: 2;
|
||||
top: var(--menu-section-marges-bloc-debut);
|
||||
min-height: var(--menu-categories-produits-hauteur);
|
||||
max-height: var(--menu-categories-produits-hauteur);
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -4,6 +4,14 @@
|
|||
"name": "Either",
|
||||
"integrity": "sha512-iA88qYfaqIo+2/H0VzUP5VPULY8gMF4bgybyguKQQj/k1/LKHmurwKDvKCIPz3/kdz+2jUjG9/vlqu9+i6/klg=="
|
||||
},
|
||||
"_MaybeAsync.AE1jnxuc.js": {
|
||||
"file": "MaybeAsync.AE1jnxuc.js",
|
||||
"name": "MaybeAsync",
|
||||
"imports": [
|
||||
"_Either.wHNxn7Os.js"
|
||||
],
|
||||
"integrity": "sha512-zBecrvIRiJOu6YYRpnc0k8S2hhntD+UpPtg3zhLd4KQSyWdXQTt6ubhfDTOhBtMYi/W1LLcZX89krSQqxkWfGA=="
|
||||
},
|
||||
"_chunk-7BKSRZNG.C39W3Wne.js": {
|
||||
"file": "chunk-7BKSRZNG.C39W3Wne.js",
|
||||
"name": "chunk-7BKSRZNG",
|
||||
|
|
@ -22,10 +30,10 @@
|
|||
"name": "exports",
|
||||
"integrity": "sha512-4L1NzKs7XuOMvUiv40ZQLFZJItYzg2xO1M1/o+W9uoqJCevPc0wu43ims0AqUOnFutsTK+5kwQMlOUa82vCTdA=="
|
||||
},
|
||||
"_index.CCa5Y_L9.js": {
|
||||
"file": "index.CCa5Y_L9.js",
|
||||
"_index.BgFo03XT.js": {
|
||||
"file": "index.BgFo03XT.js",
|
||||
"name": "index",
|
||||
"integrity": "sha512-90fLqYbmnlMjhgjkHf4kDEY5l9tWpXgXpK3UZHKW6v9OsRy/984W2biSAMatbQDVAdGBAc1qilsYHB881LHY5w=="
|
||||
"integrity": "sha512-mkUDAVXY6FYNwZLm2RKwfRhpeDzJmsQXUZRCBb0qzw4E663VOhzr3KVUZYKFwER5/sVOSEhzENOr0L0Be37xMA=="
|
||||
},
|
||||
"_index.CeK6pfoJ.js": {
|
||||
"file": "index.CeK6pfoJ.js",
|
||||
|
|
@ -37,7 +45,7 @@
|
|||
"name": "api",
|
||||
"src": "web/app/themes/haiku-atelier-2024/src/scripts/constantes/api.ts",
|
||||
"isEntry": true,
|
||||
"integrity": "sha512-isSbYHck1VApW4KWFvzCqcYoJ7U4biNCdQ3ow29jcLclrNvPSUarq5a4fuGtSU62V05477qOQygpvqRjkFQVUQ=="
|
||||
"integrity": "sha512-KlQ3CP8fpSdVqqlBACQdu8tIF+UfpFqyN9VzMFUMg67ePX4Rw4quG7F0MXv061/kmH2gic+/W+9UFUStvO94mQ=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/cart.ts": {
|
||||
"file": "cart2.js",
|
||||
|
|
@ -51,7 +59,7 @@
|
|||
"name": "dom",
|
||||
"src": "web/app/themes/haiku-atelier-2024/src/scripts/constantes/dom.ts",
|
||||
"isEntry": true,
|
||||
"integrity": "sha512-TRKlKpx3Dv5K4Vh0v/dJ+coW8iGh7cI/HVHStw2Un0CaL9qAEGEulyM8wNSQU+j8F4YEjFDkvIe+xdl0zhqK+g=="
|
||||
"integrity": "sha512-xwz5v6vA/BIYqmNwycPaoCRusHiZFuQcuUKamfU48ZyhJS1KTfBuTbg14KSioNySU7X/xFTI8KYTYujdXJ+/+Q=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/messages.ts": {
|
||||
"file": "messages3.js",
|
||||
|
|
@ -60,6 +68,13 @@
|
|||
"isEntry": true,
|
||||
"integrity": "sha512-M8me/iGRLfItVHaEf+BhA3xdEIxEwdyNuN+H87daJ1jl1oOENbROB7ub6RPP47NdFsQUChTRphEhQglT+qc6RA=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/products.ts": {
|
||||
"file": "products2.js",
|
||||
"name": "products",
|
||||
"src": "web/app/themes/haiku-atelier-2024/src/scripts/constantes/products.ts",
|
||||
"isEntry": true,
|
||||
"integrity": "sha512-/zFsvDZX1rrqufbSChpUygVykHsMrhiyH+UnMYe2FmVjAoHeW62C8DyS13nboxkBdBVWVB5eC0DH5x6klYGhTQ=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/gaffe.ts": {
|
||||
"file": "gaffe.js",
|
||||
"name": "gaffe",
|
||||
|
|
@ -109,9 +124,10 @@
|
|||
"isEntry": true,
|
||||
"imports": [
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/api.ts",
|
||||
"_MaybeAsync.AE1jnxuc.js",
|
||||
"_Either.wHNxn7Os.js"
|
||||
],
|
||||
"integrity": "sha512-/I7wyKvxLmRqqV/VPkMIpCO6ERcFxsNVO2qaF8vp9tFc00GtuFFzBpCnJZeeFR1FW9cGENex9Sq5bBBcmW2dfw=="
|
||||
"integrity": "sha512-tGCX6+XL+3Dhu/qmMH5NTKonqdCqHpyjAg+EdaArvuHgW1IXl7sQ/89n4PLfaeete/zs2+3d4ZDYBAhdMtrzxw=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/messages.ts": {
|
||||
"file": "messages.js",
|
||||
|
|
@ -119,16 +135,18 @@
|
|||
"src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/messages.ts",
|
||||
"isEntry": true,
|
||||
"imports": [
|
||||
"_index.CCa5Y_L9.js",
|
||||
"_index.BgFo03XT.js",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/messages.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/erreurs.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/messages.ts",
|
||||
"_Either.wHNxn7Os.js",
|
||||
"_exports.DMCTjIlP.js",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/cart.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/cart.ts"
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/cart.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/adresses.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/couts-livraison.ts"
|
||||
],
|
||||
"integrity": "sha512-txyIVexRgXbPLkSwTFO9si1mvKV1dO2v04q8wozhdn1YHfnCojwbJBciVP6MyGat6TQqNI/hBdpeOnvFcOGc8A=="
|
||||
"integrity": "sha512-e9MTWFujks17HJeMP6TlzT/GqEW5Dpe8+uHYwqXPpoeFZeU6M2Z+TmdfN2Fc49o03Ula2Um5ar5sc41cK+fUSQ=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/nombres.ts": {
|
||||
"file": "nombres.js",
|
||||
|
|
@ -145,13 +163,13 @@
|
|||
"imports": [
|
||||
"_chunk-7BKSRZNG.C39W3Wne.js",
|
||||
"_index.CeK6pfoJ.js",
|
||||
"_index.CCa5Y_L9.js",
|
||||
"_index.BgFo03XT.js",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/api.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/erreurs.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/erreurs.ts",
|
||||
"_exports.DMCTjIlP.js"
|
||||
],
|
||||
"integrity": "sha512-NvN86x4tFNVdlV/fniGzu20tlqfPTk2VaElCMfu+DofDgvceQOh9c6smO+KrrT9G7tXm7Lz6FGUjdSoIoasY2A=="
|
||||
"integrity": "sha512-GJBtNFtSQsddbW8ZQKquJktaJ3oyVDmg87XsjWSNDgIbcIDoGs9/RSR+WOzRdGKX0aWTDGRHpZzkRTFTgZBiWA=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/adresses.ts": {
|
||||
"file": "adresses.js",
|
||||
|
|
@ -159,9 +177,9 @@
|
|||
"src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/adresses.ts",
|
||||
"isEntry": true,
|
||||
"imports": [
|
||||
"_index.CCa5Y_L9.js"
|
||||
"_index.BgFo03XT.js"
|
||||
],
|
||||
"integrity": "sha512-jKIONskkSs0NFR/cmkT7qtXsnMDNRXS9tPRhT+rKzwoErAgAnHuBKooSpf/OFsDKC1lkZrzbVZjBcKTXgFubzg=="
|
||||
"integrity": "sha512-PWB/yz54toSPVvIpyT6zCJIHOzVNIX+M154xCc2xtvUCRKlZfUCkLYrBkBakB61b3NpGBmEclPVxmX8X/coW2g=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/cart-add-item.ts": {
|
||||
"file": "cart-add-item.js",
|
||||
|
|
@ -169,9 +187,9 @@
|
|||
"src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/cart-add-item.ts",
|
||||
"isEntry": true,
|
||||
"imports": [
|
||||
"_index.CCa5Y_L9.js"
|
||||
"_index.BgFo03XT.js"
|
||||
],
|
||||
"integrity": "sha512-Fv0Uo9mdDj+0r41caJbUsgI/Y9l2DORQdWGNriQcmSbZa01rgFBO0cbmvdXFd/SLtuXAsou0LR2+tcopArD62A=="
|
||||
"integrity": "sha512-3TBIZu8/bsHhYY02HEQESgI0+LjS+vprxbZZwZ7j5S49Juma4bd3ALdAPsO5Ja2l4P+C2wRs7O+zkhigx4w/oA=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/cart-remove-item.ts": {
|
||||
"file": "cart-remove-item.js",
|
||||
|
|
@ -179,9 +197,9 @@
|
|||
"src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/cart-remove-item.ts",
|
||||
"isEntry": true,
|
||||
"imports": [
|
||||
"_index.CCa5Y_L9.js"
|
||||
"_index.BgFo03XT.js"
|
||||
],
|
||||
"integrity": "sha512-+yl2DCnj7GEme8NFHsHXiDRXvtmiu5k2rAYjFIKC4+vj0OcdwwMe1PiA5NmxY7trJVlQ+cbod1jXuih52BwbyQ=="
|
||||
"integrity": "sha512-KZPK9mt1gojaqHvTt0kjsv3XuqR8pL+fjUYBfaYztCXySS1aZhK5bVTvJ7j3gl7L1DSaYgl0QW0BAxCzhiZwMA=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/cart-update-customer.ts": {
|
||||
"file": "cart-update-customer.js",
|
||||
|
|
@ -189,10 +207,10 @@
|
|||
"src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/cart-update-customer.ts",
|
||||
"isEntry": true,
|
||||
"imports": [
|
||||
"_index.CCa5Y_L9.js",
|
||||
"_index.BgFo03XT.js",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/adresses.ts"
|
||||
],
|
||||
"integrity": "sha512-THkmTxVm3dNONEjEq2KYH8OSWdZLz1DRgMDz5VaFxjvl+vitvyGaXdIFJrU+l+1TI+q5DtFJPFbqxnysmT0r3g=="
|
||||
"integrity": "sha512-WL31TJPcQlZIa6+H232n5HgcWvg0m2RGT0I6aTvNyJYdDNtlhAoDBRVaJM+pYaY11W4YuMNwOkCefvdcYcknBQ=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/cart-update-item.ts": {
|
||||
"file": "cart-update-item.js",
|
||||
|
|
@ -200,9 +218,9 @@
|
|||
"src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/cart-update-item.ts",
|
||||
"isEntry": true,
|
||||
"imports": [
|
||||
"_index.CCa5Y_L9.js"
|
||||
"_index.BgFo03XT.js"
|
||||
],
|
||||
"integrity": "sha512-yMT1BHxguhSAOOcT+w+x9qEs8IyKsDvA+Efap2v+ZJcxjp5Re5bMmQpqM/PmdhusBOLKkMJIdculJj0Z3Ml+ng=="
|
||||
"integrity": "sha512-49LIvn0U3OOvPPmzSh9iq8j+VOD+bb4OqdXBuxJh/KLS7jgxq35OcUrJQKiERMwk9klgSE/OCnY/As8a7mVTEQ=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/cart.ts": {
|
||||
"file": "cart.js",
|
||||
|
|
@ -210,10 +228,23 @@
|
|||
"src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/cart.ts",
|
||||
"isEntry": true,
|
||||
"imports": [
|
||||
"_index.CCa5Y_L9.js",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/cart.ts"
|
||||
"_index.BgFo03XT.js",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/cart.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/adresses.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/couts-livraison.ts"
|
||||
],
|
||||
"integrity": "sha512-fQTej3IG0FYaDBUsiAI19t5iloXlcHSUTb0RsXrE3VgieIVfdUDWiBxN+bIoTrsRMi8ZJVITSQtV4PVyQk4Rsw=="
|
||||
"integrity": "sha512-o+jIghAfwI7OEahl1kLA1AqSO/61slG+vWVzKllNF78u6mPcTX/rxUZa9sXlxLQ16UQqkNOxVqQ5fiiTG1hu7Q=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/couts-livraison.ts": {
|
||||
"file": "couts-livraison.js",
|
||||
"name": "couts-livraison",
|
||||
"src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/couts-livraison.ts",
|
||||
"isEntry": true,
|
||||
"imports": [
|
||||
"_index.BgFo03XT.js",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/adresses.ts"
|
||||
],
|
||||
"integrity": "sha512-65X1bR5sntwf7hF6ZRi5snb8/8dYXQjiOi0o385K0SGO6xmtiWZUUv+5On8HiGVbm0BdCUuOIMepobxReFGnLQ=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/erreurs.ts": {
|
||||
"file": "erreurs2.js",
|
||||
|
|
@ -221,9 +252,9 @@
|
|||
"src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/erreurs.ts",
|
||||
"isEntry": true,
|
||||
"imports": [
|
||||
"_index.CCa5Y_L9.js"
|
||||
"_index.BgFo03XT.js"
|
||||
],
|
||||
"integrity": "sha512-WnxjO9YyxH/KqyeIyTxMrWQ9Z10G/645ajz2fACKfJCAWuuiYEXXItwRsoFnnKfeYlyZRXEepcJJWxzubBsSeQ=="
|
||||
"integrity": "sha512-hjLUa8RcdczGiS1xy8y/Gs6sQ9XQSlgFJXNw78nXtSM1EcMcBEJrwM3lV/VAh2Z2nS1C592/ANRhJicnXknpqw=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/messages.ts": {
|
||||
"file": "messages2.js",
|
||||
|
|
@ -231,12 +262,25 @@
|
|||
"src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/messages.ts",
|
||||
"isEntry": true,
|
||||
"imports": [
|
||||
"_index.CCa5Y_L9.js",
|
||||
"_index.BgFo03XT.js",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/messages.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/cart.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/cart.ts"
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/cart.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/adresses.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/couts-livraison.ts"
|
||||
],
|
||||
"integrity": "sha512-dsnjuUCQSYJFqA7Vp7sP28s35HhIa1VYSWUHWK7vXhgW2WjDwUbpDzieqN7vyRgwgsXVKGdD8hLS+NJm23O19w=="
|
||||
"integrity": "sha512-gDKxylkDFbH2NALf/lIfPyDRpd9S563DGaADkIkXeWAOjcQTYu9RuFwC9DMuN2lDQJn+IYEnmz1EiZIDpfkv7Q=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/products.ts": {
|
||||
"file": "products.js",
|
||||
"name": "products",
|
||||
"src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/products.ts",
|
||||
"isEntry": true,
|
||||
"imports": [
|
||||
"_index.BgFo03XT.js",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/products.ts"
|
||||
],
|
||||
"integrity": "sha512-QlHEB2GFBcjh0Sll/7biVUiji3iP9QbGKaSfzg5avjUHVO2tTKCgAvqkvsUW48kND8cJeDYT6u7O2fKmBYN3sQ=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/utils.ts": {
|
||||
"file": "utils.js",
|
||||
|
|
@ -267,12 +311,14 @@
|
|||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/erreurs.ts",
|
||||
"_exports.DMCTjIlP.js",
|
||||
"_Either.wHNxn7Os.js",
|
||||
"_index.CCa5Y_L9.js",
|
||||
"_index.BgFo03XT.js",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/messages.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/cart.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/cart.ts"
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/cart.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/adresses.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/couts-livraison.ts"
|
||||
],
|
||||
"integrity": "sha512-5kXYj+AE5jMTevcUBOZGPCwHBU4dhilcFP9NQe3SvI2VvJIiGzlr/aVh1OLJ6w/X/iNYvf3cl0f+p+lo2BKwoA=="
|
||||
"integrity": "sha512-Pb4GVNTRHc/chtjbSl4vP97cucG+qqZ9MTajnUEYrfv0mGwJxCjn7rk6FV+Hk05LODX23ljAdEPxx5Kp3uPdXA=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/scripts-page-accueil.ts": {
|
||||
"file": "scripts-page-accueil.js",
|
||||
|
|
@ -291,6 +337,31 @@
|
|||
],
|
||||
"integrity": "sha512-FPEzyKVN5yR1bFurSMzgKI+mnFQqWe/VJVWv7ZakzzqicbKDak6yGjbuxV+Em/pffaDttGmNhO7bW83t3dB08A=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/scripts-page-boutique.ts": {
|
||||
"file": "scripts-page-boutique.js",
|
||||
"name": "scripts-page-boutique",
|
||||
"src": "web/app/themes/haiku-atelier-2024/src/scripts/scripts-page-boutique.ts",
|
||||
"isEntry": true,
|
||||
"imports": [
|
||||
"_index.CeK6pfoJ.js",
|
||||
"_index.BgFo03XT.js",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/api.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/dom.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/erreurs.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/gardes.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/reseau.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/products.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/utils.ts",
|
||||
"_MaybeAsync.AE1jnxuc.js",
|
||||
"_Either.wHNxn7Os.js",
|
||||
"_exports.DMCTjIlP.js",
|
||||
"_chunk-7BKSRZNG.C39W3Wne.js",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/erreurs.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/products.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/dom.ts"
|
||||
],
|
||||
"integrity": "sha512-3DRzmFpKHx9rO8GDPwrs0eZmVE1ZzvivU6h1ajuDfaymWdEdzlEcX1wcvwyWrTBu6tsSrEEEfktG25BEpzx1Cg=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/scripts-page-panier.ts": {
|
||||
"file": "scripts-page-panier.js",
|
||||
"name": "scripts-page-panier",
|
||||
|
|
@ -300,7 +371,8 @@
|
|||
"_chunk-RU7WR4KH.D5j7HXCF.js",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/utils.ts",
|
||||
"_chunk-7BKSRZNG.C39W3Wne.js",
|
||||
"_index.CCa5Y_L9.js",
|
||||
"_index.CeK6pfoJ.js",
|
||||
"_index.BgFo03XT.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",
|
||||
|
|
@ -316,12 +388,12 @@
|
|||
"_Either.wHNxn7Os.js",
|
||||
"_exports.DMCTjIlP.js",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/messages.ts",
|
||||
"_index.CeK6pfoJ.js",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/erreurs.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/cart.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/adresses.ts"
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/adresses.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/couts-livraison.ts"
|
||||
],
|
||||
"integrity": "sha512-8GSJr7ShZETNpEpcyGSYv4uohHCOibRIbWct+4Qppcc5g8W9YmBMxQ6zOFD3mUHWpq/MHcqfeyA00hAAb6+8TQ=="
|
||||
"integrity": "sha512-XHUsI1LLTWRlSCATokiesk5hfsEJWCwy3DGjmyzOixzn+RmTIqN9qzW3eh8ZRmSgSIBwBlIqSuSg0fY9kifVEQ=="
|
||||
},
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/scripts-page-produit.ts": {
|
||||
"file": "scripts-page-produit.js",
|
||||
|
|
@ -333,7 +405,7 @@
|
|||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/utils.ts",
|
||||
"_chunk-7BKSRZNG.C39W3Wne.js",
|
||||
"_index.CeK6pfoJ.js",
|
||||
"_index.CCa5Y_L9.js",
|
||||
"_index.BgFo03XT.js",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/api.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/dom.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/dom.ts",
|
||||
|
|
@ -347,8 +419,10 @@
|
|||
"_exports.DMCTjIlP.js",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/messages.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/messages.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/cart.ts"
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/cart.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/adresses.ts",
|
||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/couts-livraison.ts"
|
||||
],
|
||||
"integrity": "sha512-nCQjnWYyJKCD6nxZIQHC2S20lpQH3u5DHf4mXHaT+K0/NeltuwhIWs3REhHsFo4XVhp3uInBv9KQMhkTi1nwFQ=="
|
||||
"integrity": "sha512-9KSU2DK2nWVp5khzZuZRx1o5YAeB4L8PxfbGUpshm6fK8yp4r409y5DqfXe3ubguUs9SAhH8sz0TS3tg2NHhwA=="
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,314 @@
|
|||
import { E as Either, r as right, l as left, M as Maybe, n as nothing, j as just } from "./Either.wHNxn7Os.js";
|
||||
var _a$1;
|
||||
const helpers$1 = {
|
||||
liftEither(either) {
|
||||
if (either.isRight()) {
|
||||
return Promise.resolve(either.extract());
|
||||
}
|
||||
throw either.extract();
|
||||
},
|
||||
fromPromise(promise) {
|
||||
return promise.then(helpers$1.liftEither);
|
||||
},
|
||||
throwE(error) {
|
||||
throw error;
|
||||
}
|
||||
};
|
||||
class EitherAsyncImpl {
|
||||
constructor(runPromise) {
|
||||
this.runPromise = runPromise;
|
||||
this[_a$1] = "EitherAsync";
|
||||
this["fantasy-land/chain"] = this.chain;
|
||||
this["fantasy-land/alt"] = this.alt;
|
||||
this.then = (onfulfilled, onrejected) => {
|
||||
return this.run().then(onfulfilled, onrejected);
|
||||
};
|
||||
}
|
||||
leftOrDefault(defaultValue) {
|
||||
return this.run().then((x) => x.leftOrDefault(defaultValue));
|
||||
}
|
||||
orDefault(defaultValue) {
|
||||
return this.run().then((x) => x.orDefault(defaultValue));
|
||||
}
|
||||
join() {
|
||||
return EitherAsync(async (helpers2) => {
|
||||
const either = await this;
|
||||
if (either.isRight()) {
|
||||
const nestedEither = await either.extract();
|
||||
return helpers2.liftEither(nestedEither);
|
||||
}
|
||||
return helpers2.liftEither(either);
|
||||
});
|
||||
}
|
||||
ap(eitherF) {
|
||||
return EitherAsync(async (helpers2) => {
|
||||
const otherValue = await eitherF;
|
||||
if (otherValue.isRight()) {
|
||||
const thisValue = await this.run();
|
||||
if (thisValue.isRight()) {
|
||||
return otherValue.extract()(thisValue.extract());
|
||||
} else {
|
||||
return helpers2.liftEither(thisValue);
|
||||
}
|
||||
}
|
||||
return helpers2.liftEither(otherValue);
|
||||
});
|
||||
}
|
||||
alt(other) {
|
||||
return EitherAsync(async (helpers2) => {
|
||||
const thisValue = await this.run();
|
||||
if (thisValue.isRight()) {
|
||||
return thisValue.extract();
|
||||
} else {
|
||||
const otherValue = await other;
|
||||
return helpers2.liftEither(otherValue);
|
||||
}
|
||||
});
|
||||
}
|
||||
extend(f) {
|
||||
return EitherAsync(async (helpers2) => {
|
||||
const either = await this.run();
|
||||
if (either.isRight()) {
|
||||
const v = EitherAsync.liftEither(either);
|
||||
return helpers2.liftEither(right(f(v)));
|
||||
}
|
||||
return helpers2.liftEither(either);
|
||||
});
|
||||
}
|
||||
async run() {
|
||||
try {
|
||||
return right(await this.runPromise(helpers$1));
|
||||
} catch (e) {
|
||||
return left(e);
|
||||
}
|
||||
}
|
||||
bimap(f, g) {
|
||||
return EitherAsync(async (helpers2) => {
|
||||
const either = await this.run();
|
||||
try {
|
||||
return await helpers2.liftEither(either.bimap(f, g));
|
||||
} catch (e) {
|
||||
throw await e;
|
||||
}
|
||||
});
|
||||
}
|
||||
map(f) {
|
||||
return EitherAsync((helpers2) => this.runPromise(helpers2).then(f));
|
||||
}
|
||||
mapLeft(f) {
|
||||
return EitherAsync(async (helpers2) => {
|
||||
try {
|
||||
return await this.runPromise(helpers2);
|
||||
} catch (e) {
|
||||
throw await f(e);
|
||||
}
|
||||
});
|
||||
}
|
||||
chain(f) {
|
||||
return EitherAsync(async (helpers2) => {
|
||||
const value = await this.runPromise(helpers2);
|
||||
return helpers2.fromPromise(f(value));
|
||||
});
|
||||
}
|
||||
chainLeft(f) {
|
||||
return EitherAsync(async (helpers2) => {
|
||||
try {
|
||||
return await this.runPromise(helpers2);
|
||||
} catch (e) {
|
||||
return helpers2.fromPromise(f(e));
|
||||
}
|
||||
});
|
||||
}
|
||||
toMaybeAsync() {
|
||||
return MaybeAsync(async ({ liftMaybe }) => {
|
||||
const either = await this.run();
|
||||
return liftMaybe(either.toMaybe());
|
||||
});
|
||||
}
|
||||
swap() {
|
||||
return EitherAsync(async (helpers2) => {
|
||||
const either = await this.run();
|
||||
if (either.isRight())
|
||||
helpers2.throwE(either.extract());
|
||||
return helpers2.liftEither(right(either.extract()));
|
||||
});
|
||||
}
|
||||
ifLeft(effect) {
|
||||
return EitherAsync(async (helpers2) => {
|
||||
const either = await this.run();
|
||||
either.ifLeft(effect);
|
||||
return helpers2.liftEither(either);
|
||||
});
|
||||
}
|
||||
ifRight(effect) {
|
||||
return EitherAsync(async (helpers2) => {
|
||||
const either = await this.run();
|
||||
either.ifRight(effect);
|
||||
return helpers2.liftEither(either);
|
||||
});
|
||||
}
|
||||
void() {
|
||||
return this.map((_) => {
|
||||
});
|
||||
}
|
||||
caseOf(patterns) {
|
||||
return this.run().then((x) => x.caseOf(patterns));
|
||||
}
|
||||
finally(effect) {
|
||||
return EitherAsync(({ fromPromise }) => fromPromise(this.run().finally(effect)));
|
||||
}
|
||||
}
|
||||
_a$1 = Symbol.toStringTag;
|
||||
const EitherAsync = Object.assign((runPromise) => new EitherAsyncImpl(runPromise), {
|
||||
fromPromise: (f) => EitherAsync(({ fromPromise: fP }) => fP(f())),
|
||||
liftEither: (either) => EitherAsync(({ liftEither }) => liftEither(either)),
|
||||
lefts: (list) => Promise.all(list.map((x) => x.run())).then(Either.lefts),
|
||||
rights: (list) => Promise.all(list.map((x) => x.run())).then(Either.rights),
|
||||
sequence: (eas) => EitherAsync(async (helpers2) => {
|
||||
let res = [];
|
||||
for await (const e of eas) {
|
||||
if (e.isLeft()) {
|
||||
return helpers2.liftEither(e);
|
||||
}
|
||||
res.push(e.extract());
|
||||
}
|
||||
return helpers2.liftEither(right(res));
|
||||
}),
|
||||
all: (eas) => EitherAsync.fromPromise(async () => Promise.all(eas).then(Either.sequence))
|
||||
});
|
||||
EitherAsyncImpl.prototype.constructor = EitherAsync;
|
||||
var _a;
|
||||
const helpers = {
|
||||
liftMaybe(maybe) {
|
||||
if (maybe.isJust()) {
|
||||
return Promise.resolve(maybe.extract());
|
||||
}
|
||||
throw nothing;
|
||||
},
|
||||
fromPromise(promise) {
|
||||
return promise.then(helpers.liftMaybe);
|
||||
}
|
||||
};
|
||||
class MaybeAsyncImpl {
|
||||
constructor(runPromise) {
|
||||
this.runPromise = runPromise;
|
||||
this[_a] = "MaybeAsync";
|
||||
this["fantasy-land/chain"] = this.chain;
|
||||
this["fantasy-land/filter"] = this.filter;
|
||||
this["fantasy-land/alt"] = this.alt;
|
||||
}
|
||||
orDefault(defaultValue) {
|
||||
return this.run().then((x) => x.orDefault(defaultValue));
|
||||
}
|
||||
join() {
|
||||
return MaybeAsync(async (helpers2) => {
|
||||
const maybe = await this.run();
|
||||
if (maybe.isJust()) {
|
||||
const nestedMaybe = await maybe.extract();
|
||||
return helpers2.liftMaybe(nestedMaybe);
|
||||
}
|
||||
return helpers2.liftMaybe(nothing);
|
||||
});
|
||||
}
|
||||
ap(maybeF) {
|
||||
return MaybeAsync(async (helpers2) => {
|
||||
const otherValue = await maybeF;
|
||||
if (otherValue.isJust()) {
|
||||
const thisValue = await this.run();
|
||||
if (thisValue.isJust()) {
|
||||
return otherValue.extract()(thisValue.extract());
|
||||
} else {
|
||||
return helpers2.liftMaybe(nothing);
|
||||
}
|
||||
}
|
||||
return helpers2.liftMaybe(nothing);
|
||||
});
|
||||
}
|
||||
alt(other) {
|
||||
return MaybeAsync(async (helpers2) => {
|
||||
const thisValue = await this.run();
|
||||
if (thisValue.isJust()) {
|
||||
return thisValue.extract();
|
||||
} else {
|
||||
const otherValue = await other;
|
||||
return helpers2.liftMaybe(otherValue);
|
||||
}
|
||||
});
|
||||
}
|
||||
extend(f) {
|
||||
return MaybeAsync(async (helpers2) => {
|
||||
const maybe = await this.run();
|
||||
if (maybe.isJust()) {
|
||||
const v = MaybeAsync.liftMaybe(maybe);
|
||||
return helpers2.liftMaybe(just(f(v)));
|
||||
}
|
||||
return helpers2.liftMaybe(nothing);
|
||||
});
|
||||
}
|
||||
filter(pred) {
|
||||
return MaybeAsync(async (helpers2) => {
|
||||
const value = await this.run();
|
||||
return helpers2.liftMaybe(value.filter(pred));
|
||||
});
|
||||
}
|
||||
async run() {
|
||||
try {
|
||||
return just(await this.runPromise(helpers));
|
||||
} catch {
|
||||
return nothing;
|
||||
}
|
||||
}
|
||||
map(f) {
|
||||
return MaybeAsync((helpers2) => this.runPromise(helpers2).then(f));
|
||||
}
|
||||
chain(f) {
|
||||
return MaybeAsync(async (helpers2) => {
|
||||
const value = await this.runPromise(helpers2);
|
||||
return helpers2.fromPromise(f(value));
|
||||
});
|
||||
}
|
||||
toEitherAsync(error) {
|
||||
return EitherAsync(async ({ liftEither }) => {
|
||||
const maybe = await this.run();
|
||||
return liftEither(maybe.toEither(error));
|
||||
});
|
||||
}
|
||||
ifJust(effect) {
|
||||
return MaybeAsync(async (helpers2) => {
|
||||
const maybe = await this.run();
|
||||
maybe.ifJust(effect);
|
||||
return helpers2.liftMaybe(maybe);
|
||||
});
|
||||
}
|
||||
ifNothing(effect) {
|
||||
return MaybeAsync(async (helpers2) => {
|
||||
const maybe = await this.run();
|
||||
maybe.ifNothing(effect);
|
||||
return helpers2.liftMaybe(maybe);
|
||||
});
|
||||
}
|
||||
void() {
|
||||
return this.map((_) => {
|
||||
});
|
||||
}
|
||||
caseOf(patterns) {
|
||||
return this.run().then((x) => x.caseOf(patterns));
|
||||
}
|
||||
finally(effect) {
|
||||
return MaybeAsync(({ fromPromise }) => fromPromise(this.run().finally(effect)));
|
||||
}
|
||||
then(onfulfilled, onrejected) {
|
||||
return this.run().then(onfulfilled, onrejected);
|
||||
}
|
||||
}
|
||||
_a = Symbol.toStringTag;
|
||||
const MaybeAsync = Object.assign((runPromise) => new MaybeAsyncImpl(runPromise), {
|
||||
catMaybes: (list) => Promise.all(list).then(Maybe.catMaybes),
|
||||
fromPromise: (f) => MaybeAsync(({ fromPromise: fP }) => fP(f())),
|
||||
liftMaybe: (maybe) => MaybeAsync(({ liftMaybe }) => liftMaybe(maybe))
|
||||
});
|
||||
MaybeAsyncImpl.prototype.constructor = MaybeAsync;
|
||||
export {
|
||||
EitherAsync as E
|
||||
};
|
||||
//# sourceMappingURL=MaybeAsync.AE1jnxuc.js.map
|
||||
File diff suppressed because one or more lines are too long
|
|
@ -1,11 +1,12 @@
|
|||
import { o as object, s as string, c as pipe, e as email } from "./index.CCa5Y_L9.js";
|
||||
import { o as object, s as string } from "./index.BgFo03XT.js";
|
||||
const WCStoreBillingAddressSchema = object({
|
||||
address_1: string(),
|
||||
address_2: string(),
|
||||
city: string(),
|
||||
company: string(),
|
||||
country: string(),
|
||||
email: pipe(string(), email()),
|
||||
// email: v.optional(v.pipe(v.string(), v.email())),
|
||||
email: string(),
|
||||
first_name: string(),
|
||||
last_name: string(),
|
||||
phone: string(),
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
{"version":3,"file":"adresses.js","sources":["../../src/scripts/lib/schemas/adresses.ts"],"sourcesContent":["import * as v from \"valibot\";\n\nexport const WCStoreBillingAddressSchema = v.object({\n address_1: v.string(),\n address_2: v.string(),\n city: v.string(),\n company: v.string(),\n country: v.string(),\n email: v.pipe(v.string(), v.email()),\n first_name: v.string(),\n last_name: v.string(),\n phone: v.string(),\n postcode: v.string(),\n state: v.string(),\n});\n\nexport const WCStoreShippingAddressSchema = v.object({\n address_1: v.string(),\n address_2: v.string(),\n city: v.string(),\n company: v.string(),\n country: v.string(),\n first_name: v.string(),\n last_name: v.string(),\n phone: v.string(),\n postcode: v.string(),\n state: v.string(),\n});\n"],"names":["v.object","v.string","v.pipe","v.email"],"mappings":";AAEa,MAAA,8BAA8BA,OAAS;AAAA,EAClD,WAAWC,OAAS;AAAA,EACpB,WAAWA,OAAS;AAAA,EACpB,MAAMA,OAAS;AAAA,EACf,SAASA,OAAS;AAAA,EAClB,SAASA,OAAS;AAAA,EAClB,OAAOC,KAAOD,OAAY,GAAAE,OAAS;AAAA,EACnC,YAAYF,OAAS;AAAA,EACrB,WAAWA,OAAS;AAAA,EACpB,OAAOA,OAAS;AAAA,EAChB,UAAUA,OAAS;AAAA,EACnB,OAAOA,OAAS;AAClB,CAAC;AAEY,MAAA,+BAA+BD,OAAS;AAAA,EACnD,WAAWC,OAAS;AAAA,EACpB,WAAWA,OAAS;AAAA,EACpB,MAAMA,OAAS;AAAA,EACf,SAASA,OAAS;AAAA,EAClB,SAASA,OAAS;AAAA,EAClB,YAAYA,OAAS;AAAA,EACrB,WAAWA,OAAS;AAAA,EACpB,OAAOA,OAAS;AAAA,EAChB,UAAUA,OAAS;AAAA,EACnB,OAAOA,OAAS;AAClB,CAAC;"}
|
||||
{"version":3,"file":"adresses.js","sources":["../../src/scripts/lib/schemas/adresses.ts"],"sourcesContent":["import * as v from \"valibot\";\n\nexport const WCStoreBillingAddressSchema = v.object({\n address_1: v.string(),\n address_2: v.string(),\n city: v.string(),\n company: v.string(),\n country: v.string(),\n // email: v.optional(v.pipe(v.string(), v.email())),\n email: v.string(),\n first_name: v.string(),\n last_name: v.string(),\n phone: v.string(),\n postcode: v.string(),\n state: v.string(),\n});\n\nexport const WCStoreShippingAddressSchema = v.object({\n address_1: v.string(),\n address_2: v.string(),\n city: v.string(),\n company: v.string(),\n country: v.string(),\n first_name: v.string(),\n last_name: v.string(),\n phone: v.string(),\n postcode: v.string(),\n state: v.string(),\n});\n"],"names":["v.object","v.string"],"mappings":";AAEa,MAAA,8BAA8BA,OAAS;AAAA,EAClD,WAAWC,OAAS;AAAA,EACpB,WAAWA,OAAS;AAAA,EACpB,MAAMA,OAAS;AAAA,EACf,SAASA,OAAS;AAAA,EAClB,SAASA,OAAS;AAAA;AAAA,EAElB,OAAOA,OAAS;AAAA,EAChB,YAAYA,OAAS;AAAA,EACrB,WAAWA,OAAS;AAAA,EACpB,OAAOA,OAAS;AAAA,EAChB,UAAUA,OAAS;AAAA,EACnB,OAAOA,OAAS;AAClB,CAAC;AAEY,MAAA,+BAA+BD,OAAS;AAAA,EACnD,WAAWC,OAAS;AAAA,EACpB,WAAWA,OAAS;AAAA,EACpB,MAAMA,OAAS;AAAA,EACf,SAASA,OAAS;AAAA,EAClB,SAASA,OAAS;AAAA,EAClB,YAAYA,OAAS;AAAA,EACrB,WAAWA,OAAS;AAAA,EACpB,OAAOA,OAAS;AAAA,EAChB,UAAUA,OAAS;AAAA,EACnB,OAAOA,OAAS;AAClB,CAAC;"}
|
||||
|
|
@ -4,17 +4,19 @@ const ROUTE_API_AJOUTE_ARTICLE_PANIER = `/${CHEMIN_API_REST}/wc/store/cart/add-i
|
|||
const ROUTE_API_RETIRE_ARTICLE_PANIER = `/${CHEMIN_API_REST}/wc/store/cart/remove-item`;
|
||||
const ROUTE_API_MAJ_ARTICLE_PANIER = `/${CHEMIN_API_REST}/wc/store/cart/update-item`;
|
||||
const ROUTE_API_MAJ_CLIENT = `/${CHEMIN_API_REST}/wc/store/cart/update-customer`;
|
||||
const ROUTE_API_PRODUITS = `/${CHEMIN_API_REST}/wc/store/products`;
|
||||
const ENTETE_WC_NONCE = "Nonce";
|
||||
const ENTETE_GLITCHTIP_RETRY_AFTER = "retry-after";
|
||||
const ENTETE_GLITCHTIP_RATE_LIMITS = "x-sentry-rate-limits";
|
||||
export {
|
||||
ENTETE_GLITCHTIP_RATE_LIMITS as E,
|
||||
ROUTE_API_RETIRE_ARTICLE_PANIER as R,
|
||||
ROUTE_API_PRODUITS as R,
|
||||
ENTETE_GLITCHTIP_RETRY_AFTER as a,
|
||||
ROUTE_API_MAJ_ARTICLE_PANIER as b,
|
||||
ROUTE_API_MAJ_CLIENT as c,
|
||||
ROUTE_API_AJOUTE_ARTICLE_PANIER as d,
|
||||
ENTETE_WC_NONCE as e,
|
||||
ROUTE_API_PANIER as f
|
||||
ROUTE_API_RETIRE_ARTICLE_PANIER as b,
|
||||
ROUTE_API_MAJ_ARTICLE_PANIER as c,
|
||||
ROUTE_API_MAJ_CLIENT as d,
|
||||
ROUTE_API_AJOUTE_ARTICLE_PANIER as e,
|
||||
ENTETE_WC_NONCE as f,
|
||||
ROUTE_API_PANIER as g
|
||||
};
|
||||
//# sourceMappingURL=api.js.map
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
{"version":3,"file":"api.js","sources":["../../src/scripts/constantes/api.ts"],"sourcesContent":["// Chemins et Routes pour l'API WordPress\nexport const CHEMIN_API_REST = \"wp-json\";\nexport const ROUTE_API_PANIER = `/${CHEMIN_API_REST}/wc/store/cart`;\nexport const ROUTE_API_AJOUTE_ARTICLE_PANIER = `/${CHEMIN_API_REST}/wc/store/cart/add-item`;\nexport const ROUTE_API_RETIRE_ARTICLE_PANIER = `/${CHEMIN_API_REST}/wc/store/cart/remove-item`;\nexport const ROUTE_API_MAJ_ARTICLE_PANIER = `/${CHEMIN_API_REST}/wc/store/cart/update-item`;\nexport const ROUTE_API_MAJ_CLIENT = `/${CHEMIN_API_REST}/wc/store/cart/update-customer`;\n\n// En-têtes\nexport const ENTETE_WC_NONCE = \"Nonce\";\nexport const ENTETE_GLITCHTIP_RETRY_AFTER = \"retry-after\";\nexport const ENTETE_GLITCHTIP_RATE_LIMITS = \"x-sentry-rate-limits\";\n"],"names":[],"mappings":"AACO,MAAM,kBAAkB;AAClB,MAAA,mBAAmB,IAAI,eAAe;AACtC,MAAA,kCAAkC,IAAI,eAAe;AACrD,MAAA,kCAAkC,IAAI,eAAe;AACrD,MAAA,+BAA+B,IAAI,eAAe;AAClD,MAAA,uBAAuB,IAAI,eAAe;AAGhD,MAAM,kBAAkB;AACxB,MAAM,+BAA+B;AACrC,MAAM,+BAA+B;"}
|
||||
{"version":3,"file":"api.js","sources":["../../src/scripts/constantes/api.ts"],"sourcesContent":["// Chemins et Routes pour l'API WordPress\nexport const CHEMIN_API_REST = \"wp-json\";\nexport const ROUTE_API_PANIER = `/${CHEMIN_API_REST}/wc/store/cart`;\nexport const ROUTE_API_AJOUTE_ARTICLE_PANIER = `/${CHEMIN_API_REST}/wc/store/cart/add-item`;\nexport const ROUTE_API_RETIRE_ARTICLE_PANIER = `/${CHEMIN_API_REST}/wc/store/cart/remove-item`;\nexport const ROUTE_API_MAJ_ARTICLE_PANIER = `/${CHEMIN_API_REST}/wc/store/cart/update-item`;\nexport const ROUTE_API_MAJ_CLIENT = `/${CHEMIN_API_REST}/wc/store/cart/update-customer`;\nexport const ROUTE_API_PRODUITS = `/${CHEMIN_API_REST}/wc/store/products`;\n\n// En-têtes\nexport const ENTETE_WC_NONCE = \"Nonce\";\nexport const ENTETE_GLITCHTIP_RETRY_AFTER = \"retry-after\";\nexport const ENTETE_GLITCHTIP_RATE_LIMITS = \"x-sentry-rate-limits\";\n"],"names":[],"mappings":"AACO,MAAM,kBAAkB;AAClB,MAAA,mBAAmB,IAAI,eAAe;AACtC,MAAA,kCAAkC,IAAI,eAAe;AACrD,MAAA,kCAAkC,IAAI,eAAe;AACrD,MAAA,+BAA+B,IAAI,eAAe;AAClD,MAAA,uBAAuB,IAAI,eAAe;AAC1C,MAAA,qBAAqB,IAAI,eAAe;AAG9C,MAAM,kBAAkB;AACxB,MAAM,+BAA+B;AACrC,MAAM,+BAA+B;"}
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
import { o as object, a as optional, p as parse, n as number, b as array, s as string } from "./index.CCa5Y_L9.js";
|
||||
import { o as object, a as optional, n as number, b as array, p as parse, s as string } from "./index.BgFo03XT.js";
|
||||
const WCStoreCartAddItemArgsItemsSchema = object({
|
||||
/** Variation attribute name. */
|
||||
attribute: string(),
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
import { o as object, s as string } from "./index.CCa5Y_L9.js";
|
||||
import { o as object, s as string } from "./index.BgFo03XT.js";
|
||||
const WCStoreCartRemoveItemArgsSchema = object({
|
||||
/** Unique identifier (key) for the basket item. */
|
||||
key: string()
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
import { o as object, a as optional } from "./index.CCa5Y_L9.js";
|
||||
import { o as object, a as optional } from "./index.BgFo03XT.js";
|
||||
import { W as WCStoreBillingAddressSchema, a as WCStoreShippingAddressSchema } from "./adresses.js";
|
||||
const WCStoreCartUpdateCustomerArgsSchema = object({
|
||||
billing_address: optional(WCStoreBillingAddressSchema),
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
import { o as object, s as string, c as pipe, m as minValue, n as number } from "./index.CCa5Y_L9.js";
|
||||
import { o as object, s as string, c as pipe, m as minValue, n as number } from "./index.BgFo03XT.js";
|
||||
const WCStoreCartUpdateItemArgsSchema = object({
|
||||
/** Unique identifier (key) for the basket item to update. */
|
||||
key: string(),
|
||||
|
|
|
|||
|
|
@ -1,5 +1,7 @@
|
|||
import { o as object, f as boolean, d as enum_, s as string, u as unknown, n as number, b as array, g as union, c as pipe, h as null_, j as url, k as integer } from "./index.CCa5Y_L9.js";
|
||||
import { o as object, d as boolean, e as enum_, s as string, u as unknown, n as number, b as array, f as union, c as pipe, g as null_, h as url, j as integer } from "./index.BgFo03XT.js";
|
||||
import { C as CATALOG_VISIBILITIES } from "./cart2.js";
|
||||
import { W as WCStoreBillingAddressSchema, a as WCStoreShippingAddressSchema } from "./adresses.js";
|
||||
import { W as WCStoreShippingRateSchema } from "./couts-livraison.js";
|
||||
const WCStoreCartItemTotalsSchema = object({
|
||||
currency_code: string(),
|
||||
currency_decimal_separator: string(),
|
||||
|
|
@ -57,22 +59,22 @@ const WCStoreCartTotalsSchema = object({
|
|||
total_tax: string()
|
||||
});
|
||||
const WCStoreCartSchema = object({
|
||||
billing_address: unknown(),
|
||||
billing_address: WCStoreBillingAddressSchema,
|
||||
coupons: unknown(),
|
||||
cross_sells: unknown(),
|
||||
errors: unknown(),
|
||||
extensions: unknown(),
|
||||
fees: unknown(),
|
||||
has_calculated_shipping: unknown(),
|
||||
has_calculated_shipping: boolean(),
|
||||
items: array(WCStoreCartItemSchema),
|
||||
items_count: pipe(number(), integer()),
|
||||
items_weight: unknown(),
|
||||
needs_payment: unknown(),
|
||||
needs_shipping: unknown(),
|
||||
items_weight: pipe(number(), integer()),
|
||||
needs_payment: boolean(),
|
||||
needs_shipping: boolean(),
|
||||
payment_methods: unknown(),
|
||||
payment_requirements: unknown(),
|
||||
shipping_address: unknown(),
|
||||
shipping_rates: unknown(),
|
||||
shipping_address: WCStoreShippingAddressSchema,
|
||||
shipping_rates: array(WCStoreShippingRateSchema),
|
||||
totals: WCStoreCartTotalsSchema
|
||||
});
|
||||
export {
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
{"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 WCStoreCartItemTotalsSchema = v.object({\n currency_code: v.string(),\n currency_decimal_separator: v.string(),\n currency_minor_unit: v.number(),\n currency_prefix: v.string(),\n currency_suffix: v.string(),\n currency_symbol: v.string(),\n currency_thousand_separator: v.string(),\n line_subtotal: v.string(),\n line_subtotal_tax: v.string(),\n line_total: v.string(),\n line_total_tax: v.string(),\n});\n\nexport const WCStoreCartItemSchema = v.object({\n backorders_allowed: v.boolean(),\n catalog_visibility: v.enum(CATALOG_VISIBILITIES),\n description: v.string(),\n extensions: v.unknown(),\n id: v.number(),\n images: v.array(v.unknown()),\n item_data: v.array(v.unknown()),\n key: v.string(),\n low_stock_remaining: v.union([v.null()]),\n name: v.string(),\n permalink: v.pipe(v.string(), v.url()),\n prices: v.unknown(),\n quantity: v.number(),\n quantity_limits: v.unknown(),\n short_description: v.string(),\n show_backorder_badge: v.boolean(),\n sku: v.string(),\n sold_individually: v.boolean(),\n totals: WCStoreCartItemTotalsSchema,\n type: v.string(),\n variation: v.array(v.unknown()),\n});\n\nexport const WCStoreCartTotalsSchema = v.object({\n currency_code: v.string(),\n currency_decimal_separator: v.string(),\n currency_minor_unit: v.number(),\n currency_prefix: v.string(),\n currency_suffix: v.string(),\n currency_symbol: v.string(),\n currency_thousand_separator: v.string(),\n tax_lines: v.array(v.unknown()),\n total_discount: v.string(),\n total_discount_tax: v.string(),\n total_fees: v.string(),\n total_fees_tax: v.string(),\n total_items: v.string(),\n total_items_tax: v.string(),\n total_price: v.string(),\n total_shipping: v.union([v.string(), v.null()]),\n total_shipping_tax: v.union([v.string(), v.null()]),\n total_tax: v.string(),\n});\n\nexport const WCStoreCartSchema = v.object({\n billing_address: 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: WCStoreCartTotalsSchema,\n});\n"],"names":["v.object","v.string","v.number","v.boolean","v.enum","v.unknown","v.array","v.union","v.null","v.pipe","v.url","v.integer"],"mappings":";;AAIa,MAAA,8BAA8BA,OAAS;AAAA,EAClD,eAAeC,OAAS;AAAA,EACxB,4BAA4BA,OAAS;AAAA,EACrC,qBAAqBC,OAAS;AAAA,EAC9B,iBAAiBD,OAAS;AAAA,EAC1B,iBAAiBA,OAAS;AAAA,EAC1B,iBAAiBA,OAAS;AAAA,EAC1B,6BAA6BA,OAAS;AAAA,EACtC,eAAeA,OAAS;AAAA,EACxB,mBAAmBA,OAAS;AAAA,EAC5B,YAAYA,OAAS;AAAA,EACrB,gBAAgBA,OAAS;AAC3B,CAAC;AAEY,MAAA,wBAAwBD,OAAS;AAAA,EAC5C,oBAAoBG,QAAU;AAAA,EAC9B,oBAAoBC,MAAO,oBAAoB;AAAA,EAC/C,aAAaH,OAAS;AAAA,EACtB,YAAYI,QAAU;AAAA,EACtB,IAAIH,OAAS;AAAA,EACb,QAAQI,MAAQD,SAAW;AAAA,EAC3B,WAAWC,MAAQD,SAAW;AAAA,EAC9B,KAAKJ,OAAS;AAAA,EACd,qBAAqBM,MAAQ,CAACC,MAAE,CAAM,CAAC;AAAA,EACvC,MAAMP,OAAS;AAAA,EACf,WAAWQ,KAAOR,OAAY,GAAAS,KAAO;AAAA,EACrC,QAAQL,QAAU;AAAA,EAClB,UAAUH,OAAS;AAAA,EACnB,iBAAiBG,QAAU;AAAA,EAC3B,mBAAmBJ,OAAS;AAAA,EAC5B,sBAAsBE,QAAU;AAAA,EAChC,KAAKF,OAAS;AAAA,EACd,mBAAmBE,QAAU;AAAA,EAC7B,QAAQ;AAAA,EACR,MAAMF,OAAS;AAAA,EACf,WAAWK,MAAQD,SAAW;AAChC,CAAC;AAEY,MAAA,0BAA0BL,OAAS;AAAA,EAC9C,eAAeC,OAAS;AAAA,EACxB,4BAA4BA,OAAS;AAAA,EACrC,qBAAqBC,OAAS;AAAA,EAC9B,iBAAiBD,OAAS;AAAA,EAC1B,iBAAiBA,OAAS;AAAA,EAC1B,iBAAiBA,OAAS;AAAA,EAC1B,6BAA6BA,OAAS;AAAA,EACtC,WAAWK,MAAQD,SAAW;AAAA,EAC9B,gBAAgBJ,OAAS;AAAA,EACzB,oBAAoBA,OAAS;AAAA,EAC7B,YAAYA,OAAS;AAAA,EACrB,gBAAgBA,OAAS;AAAA,EACzB,aAAaA,OAAS;AAAA,EACtB,iBAAiBA,OAAS;AAAA,EAC1B,aAAaA,OAAS;AAAA,EACtB,gBAAgBM,MAAQ,CAACN,UAAYO,MAAQ,CAAA,CAAC;AAAA,EAC9C,oBAAoBD,MAAQ,CAACN,UAAYO,MAAQ,CAAA,CAAC;AAAA,EAClD,WAAWP,OAAS;AACtB,CAAC;AAEY,MAAA,oBAAoBD,OAAS;AAAA,EACxC,iBAAiBK,QAAU;AAAA,EAC3B,SAASA,QAAU;AAAA,EACnB,aAAaA,QAAU;AAAA,EACvB,QAAQA,QAAU;AAAA,EAClB,YAAYA,QAAU;AAAA,EACtB,MAAMA,QAAU;AAAA,EAChB,yBAAyBA,QAAU;AAAA,EACnC,OAAOC,MAAQ,qBAAqB;AAAA,EACpC,aAAaG,KAAOP,OAAY,GAAAS,SAAW;AAAA,EAC3C,cAAcN,QAAU;AAAA,EACxB,eAAeA,QAAU;AAAA,EACzB,gBAAgBA,QAAU;AAAA,EAC1B,iBAAiBA,QAAU;AAAA,EAC3B,sBAAsBA,QAAU;AAAA,EAChC,kBAAkBA,QAAU;AAAA,EAC5B,gBAAgBA,QAAU;AAAA,EAC1B,QAAQ;AACV,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\";\nimport { WCStoreBillingAddressSchema, WCStoreShippingAddressSchema } from \"./adresses.ts\";\nimport { WCStoreShippingRateSchema } from \"./couts-livraison.ts\";\n\nexport const WCStoreCartItemTotalsSchema = v.object({\n currency_code: v.string(),\n currency_decimal_separator: v.string(),\n currency_minor_unit: v.number(),\n currency_prefix: v.string(),\n currency_suffix: v.string(),\n currency_symbol: v.string(),\n currency_thousand_separator: v.string(),\n line_subtotal: v.string(),\n line_subtotal_tax: v.string(),\n line_total: v.string(),\n line_total_tax: v.string(),\n});\n\nexport const WCStoreCartItemSchema = v.object({\n backorders_allowed: v.boolean(),\n catalog_visibility: v.enum(CATALOG_VISIBILITIES),\n description: v.string(),\n extensions: v.unknown(),\n id: v.number(),\n images: v.array(v.unknown()),\n item_data: v.array(v.unknown()),\n key: v.string(),\n low_stock_remaining: v.union([v.null()]),\n name: v.string(),\n permalink: v.pipe(v.string(), v.url()),\n prices: v.unknown(),\n quantity: v.number(),\n quantity_limits: v.unknown(),\n short_description: v.string(),\n show_backorder_badge: v.boolean(),\n sku: v.string(),\n sold_individually: v.boolean(),\n totals: WCStoreCartItemTotalsSchema,\n type: v.string(),\n variation: v.array(v.unknown()),\n});\n\nexport const WCStoreCartTotalsSchema = v.object({\n currency_code: v.string(),\n currency_decimal_separator: v.string(),\n currency_minor_unit: v.number(),\n currency_prefix: v.string(),\n currency_suffix: v.string(),\n currency_symbol: v.string(),\n currency_thousand_separator: v.string(),\n tax_lines: v.array(v.unknown()),\n total_discount: v.string(),\n total_discount_tax: v.string(),\n total_fees: v.string(),\n total_fees_tax: v.string(),\n total_items: v.string(),\n total_items_tax: v.string(),\n total_price: v.string(),\n total_shipping: v.union([v.string(), v.null()]),\n total_shipping_tax: v.union([v.string(), v.null()]),\n total_tax: v.string(),\n});\n\nexport const WCStoreCartSchema = v.object({\n billing_address: WCStoreBillingAddressSchema,\n 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.boolean(),\n items: v.array(WCStoreCartItemSchema),\n items_count: v.pipe(v.number(), v.integer()),\n items_weight: v.pipe(v.number(), v.integer()),\n needs_payment: v.boolean(),\n needs_shipping: v.boolean(),\n payment_methods: v.unknown(),\n payment_requirements: v.unknown(),\n shipping_address: WCStoreShippingAddressSchema,\n shipping_rates: v.array(WCStoreShippingRateSchema),\n totals: WCStoreCartTotalsSchema,\n});\n"],"names":["v.object","v.string","v.number","v.boolean","v.enum","v.unknown","v.array","v.union","v.null","v.pipe","v.url","v.integer"],"mappings":";;;;AAMa,MAAA,8BAA8BA,OAAS;AAAA,EAClD,eAAeC,OAAS;AAAA,EACxB,4BAA4BA,OAAS;AAAA,EACrC,qBAAqBC,OAAS;AAAA,EAC9B,iBAAiBD,OAAS;AAAA,EAC1B,iBAAiBA,OAAS;AAAA,EAC1B,iBAAiBA,OAAS;AAAA,EAC1B,6BAA6BA,OAAS;AAAA,EACtC,eAAeA,OAAS;AAAA,EACxB,mBAAmBA,OAAS;AAAA,EAC5B,YAAYA,OAAS;AAAA,EACrB,gBAAgBA,OAAS;AAC3B,CAAC;AAEY,MAAA,wBAAwBD,OAAS;AAAA,EAC5C,oBAAoBG,QAAU;AAAA,EAC9B,oBAAoBC,MAAO,oBAAoB;AAAA,EAC/C,aAAaH,OAAS;AAAA,EACtB,YAAYI,QAAU;AAAA,EACtB,IAAIH,OAAS;AAAA,EACb,QAAQI,MAAQD,SAAW;AAAA,EAC3B,WAAWC,MAAQD,SAAW;AAAA,EAC9B,KAAKJ,OAAS;AAAA,EACd,qBAAqBM,MAAQ,CAACC,MAAE,CAAM,CAAC;AAAA,EACvC,MAAMP,OAAS;AAAA,EACf,WAAWQ,KAAOR,OAAY,GAAAS,KAAO;AAAA,EACrC,QAAQL,QAAU;AAAA,EAClB,UAAUH,OAAS;AAAA,EACnB,iBAAiBG,QAAU;AAAA,EAC3B,mBAAmBJ,OAAS;AAAA,EAC5B,sBAAsBE,QAAU;AAAA,EAChC,KAAKF,OAAS;AAAA,EACd,mBAAmBE,QAAU;AAAA,EAC7B,QAAQ;AAAA,EACR,MAAMF,OAAS;AAAA,EACf,WAAWK,MAAQD,SAAW;AAChC,CAAC;AAEY,MAAA,0BAA0BL,OAAS;AAAA,EAC9C,eAAeC,OAAS;AAAA,EACxB,4BAA4BA,OAAS;AAAA,EACrC,qBAAqBC,OAAS;AAAA,EAC9B,iBAAiBD,OAAS;AAAA,EAC1B,iBAAiBA,OAAS;AAAA,EAC1B,iBAAiBA,OAAS;AAAA,EAC1B,6BAA6BA,OAAS;AAAA,EACtC,WAAWK,MAAQD,SAAW;AAAA,EAC9B,gBAAgBJ,OAAS;AAAA,EACzB,oBAAoBA,OAAS;AAAA,EAC7B,YAAYA,OAAS;AAAA,EACrB,gBAAgBA,OAAS;AAAA,EACzB,aAAaA,OAAS;AAAA,EACtB,iBAAiBA,OAAS;AAAA,EAC1B,aAAaA,OAAS;AAAA,EACtB,gBAAgBM,MAAQ,CAACN,UAAYO,MAAQ,CAAA,CAAC;AAAA,EAC9C,oBAAoBD,MAAQ,CAACN,UAAYO,MAAQ,CAAA,CAAC;AAAA,EAClD,WAAWP,OAAS;AACtB,CAAC;AAEY,MAAA,oBAAoBD,OAAS;AAAA,EACxC,iBAAiB;AAAA,EACjB,SAASK,QAAU;AAAA,EACnB,aAAaA,QAAU;AAAA,EACvB,QAAQA,QAAU;AAAA,EAClB,YAAYA,QAAU;AAAA,EACtB,MAAMA,QAAU;AAAA,EAChB,yBAAyBF,QAAU;AAAA,EACnC,OAAOG,MAAQ,qBAAqB;AAAA,EACpC,aAAaG,KAAOP,OAAY,GAAAS,SAAW;AAAA,EAC3C,cAAcF,KAAOP,OAAY,GAAAS,SAAW;AAAA,EAC5C,eAAeR,QAAU;AAAA,EACzB,gBAAgBA,QAAU;AAAA,EAC1B,iBAAiBE,QAAU;AAAA,EAC3B,sBAAsBA,QAAU;AAAA,EAChC,kBAAkB;AAAA,EAClB,gBAAgBC,MAAQ,yBAAyB;AAAA,EACjD,QAAQ;AACV,CAAC;"}
|
||||
|
|
@ -0,0 +1,37 @@
|
|||
import { o as object, k as omit, b as array, s as string, n as number, u as unknown, d as boolean } from "./index.BgFo03XT.js";
|
||||
import { a as WCStoreShippingAddressSchema } from "./adresses.js";
|
||||
const WCStoreShippingRateItemSchema = object({
|
||||
key: string(),
|
||||
name: string(),
|
||||
quantity: number()
|
||||
});
|
||||
const WCStoreShippingRateShippingRateSchema = object({
|
||||
currency_code: string(),
|
||||
currency_decimal_separator: string(),
|
||||
currency_minor_unit: number(),
|
||||
currency_prefix: string(),
|
||||
currency_suffix: string(),
|
||||
currency_symbol: string(),
|
||||
currency_thousand_separator: string(),
|
||||
delivery_time: string(),
|
||||
description: string(),
|
||||
instance_id: number(),
|
||||
meta_data: array(unknown()),
|
||||
method_id: string(),
|
||||
name: string(),
|
||||
price: string(),
|
||||
rate_id: string(),
|
||||
selected: boolean(),
|
||||
taxes: string()
|
||||
});
|
||||
const WCStoreShippingRateSchema = object({
|
||||
destination: omit(WCStoreShippingAddressSchema, ["company", "first_name", "last_name", "phone"]),
|
||||
items: array(WCStoreShippingRateItemSchema),
|
||||
name: string(),
|
||||
package_id: number(),
|
||||
shipping_rates: array(WCStoreShippingRateShippingRateSchema)
|
||||
});
|
||||
export {
|
||||
WCStoreShippingRateSchema as W
|
||||
};
|
||||
//# sourceMappingURL=couts-livraison.js.map
|
||||
|
|
@ -0,0 +1 @@
|
|||
{"version":3,"file":"couts-livraison.js","sources":["../../src/scripts/lib/schemas/couts-livraison.ts"],"sourcesContent":["// Coûts de livraison (\"shipping rates\")\n\nimport * as v from \"valibot\";\n\nimport { WCStoreShippingAddressSchema } from \"./adresses.ts\";\n\nexport const WCStoreShippingRateItemSchema = v.object({\n key: v.string(),\n name: v.string(),\n quantity: v.number(),\n});\n\nexport const WCStoreShippingRateShippingRateSchema = 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 delivery_time: v.string(),\n description: v.string(),\n instance_id: v.number(),\n meta_data: v.array(v.unknown()),\n method_id: v.string(),\n name: v.string(),\n price: v.string(),\n rate_id: v.string(),\n selected: v.boolean(),\n taxes: v.string(),\n});\n\nexport const WCStoreShippingRateSchema = v.object({\n destination: v.omit(WCStoreShippingAddressSchema, [\"company\", \"first_name\", \"last_name\", \"phone\"]),\n items: v.array(WCStoreShippingRateItemSchema),\n name: v.string(),\n package_id: v.number(),\n shipping_rates: v.array(WCStoreShippingRateShippingRateSchema),\n});\n"],"names":["v.object","v.string","v.number","v.array","v.unknown","v.boolean","v.omit"],"mappings":";;AAMa,MAAA,gCAAgCA,OAAS;AAAA,EACpD,KAAKC,OAAS;AAAA,EACd,MAAMA,OAAS;AAAA,EACf,UAAUC,OAAS;AACrB,CAAC;AAEY,MAAA,wCAAwCF,OAAS;AAAA,EAC5D,eAAeC,OAAS;AAAA,EACxB,4BAA4BA,OAAS;AAAA,EACrC,qBAAqBC,OAAS;AAAA,EAC9B,iBAAiBD,OAAS;AAAA,EAC1B,iBAAiBA,OAAS;AAAA,EAC1B,iBAAiBA,OAAS;AAAA,EAC1B,6BAA6BA,OAAS;AAAA,EACtC,eAAeA,OAAS;AAAA,EACxB,aAAaA,OAAS;AAAA,EACtB,aAAaC,OAAS;AAAA,EACtB,WAAWC,MAAQC,SAAW;AAAA,EAC9B,WAAWH,OAAS;AAAA,EACpB,MAAMA,OAAS;AAAA,EACf,OAAOA,OAAS;AAAA,EAChB,SAASA,OAAS;AAAA,EAClB,UAAUI,QAAU;AAAA,EACpB,OAAOJ,OAAS;AAClB,CAAC;AAEY,MAAA,4BAA4BD,OAAS;AAAA,EAChD,aAAaM,KAAO,8BAA8B,CAAC,WAAW,cAAc,aAAa,OAAO,CAAC;AAAA,EACjG,OAAOH,MAAQ,6BAA6B;AAAA,EAC5C,MAAMF,OAAS;AAAA,EACf,YAAYC,OAAS;AAAA,EACrB,gBAAgBC,MAAQ,qCAAqC;AAC/D,CAAC;"}
|
||||
|
|
@ -18,7 +18,9 @@ const SELECTEUR_BOUTON_SOUSTRACTION_QUANTITE = "button.detail-produit__actions__
|
|||
const SELECTEUR_BOUTON_ADDITION_QUANTITE = "button.detail-produit__actions__addition";
|
||||
const SELECTEUR_CHAMP_QUANTITE_LIGNE_PANIER = "input";
|
||||
const SELECTEUR_PRIX_LIGNE_PANIER = ".detail-produit__nom-prix span";
|
||||
const SELECTEUR_SOUS_TOTAL_PANIER = "#panneau-panier .panneau__sous-totaux__ligne strong";
|
||||
const SELECTEUR_SOUS_TOTAL_PRODUITS = "#panneau-panier #sous-total-produits strong";
|
||||
const SELECTEUR_SOUS_TOTAL_LIVRAISON_COUT = "#panneau-panier #sous-total-livraison strong";
|
||||
const SELECTEUR_SOUS_TOTAL_LIVRAISON_PRESTATAIRE = "#panneau-panier #sous-total-livraison span";
|
||||
const SELECTEUR_TOTAL_PANIER = "#panneau-panier .panneau__pied-de-page p span";
|
||||
const SELECTEUR_BOUTON_SEPARATION_ADRESSES = "#separation-adresses";
|
||||
const SELECTEUR_FORMULAIRE_PANIER = "#panneau-informations-client form";
|
||||
|
|
@ -27,35 +29,41 @@ const SELECTEUR_FORMULAIRE_FACTURATION = "#panneau-informations-client .panneau_
|
|||
const SELECTEUR_BOUTON_ACTIONS_FORMULAIRE = "#panneau-informations-client .panneau__pied-de-page button";
|
||||
const SELECTEUR_CONTENEUR_STORYTELLING = ".storytelling";
|
||||
const SELECTEUR_IMAGES_STORYTELLING = ".storytelling__image";
|
||||
const SELECTEUR_GRILLE_PRODUITS = "#page-boutique .grille-produits";
|
||||
const SELECTEUR_BOUTON_PLUS_PRODUITS = "#page-boutique #bouton-plus-de-produits";
|
||||
export {
|
||||
ATTRIBUT_CONTIENT_ARTICLES as A,
|
||||
ATTRIBUT_ARIA_SELECTED as B,
|
||||
SELECTEUR_BOUTON_AJOUT_PANIER as B,
|
||||
SELECTEUR_SELECTEUR_QUANTITE as C,
|
||||
SELECTEUR_LIENS_ONGLETS as D,
|
||||
SELECTEUR_SECTIONS_CONTENUS as E,
|
||||
ATTRIBUT_ARIA_SELECTED as F,
|
||||
SELECTEUR_BOUTON_PANIER as S,
|
||||
SELECTEUR_CONTENEUR_STORYTELLING as a,
|
||||
SELECTEUR_IMAGES_STORYTELLING as b,
|
||||
ATTRIBUT_INDEX as c,
|
||||
ATTRIBUT_CACHE as d,
|
||||
ATTRIBUT_ARIA_HIDDEN as e,
|
||||
SELECTEUR_ENTREES_PANIER as f,
|
||||
SELECTEUR_CONTENEUR_PANIER as g,
|
||||
SELECTEUR_SOUS_TOTAL_PANIER as h,
|
||||
SELECTEUR_TOTAL_PANIER as i,
|
||||
SELECTEUR_BOUTON_SEPARATION_ADRESSES as j,
|
||||
SELECTEUR_FORMULAIRE_PANIER as k,
|
||||
SELECTEUR_FORMULAIRE_LIVRAISON as l,
|
||||
SELECTEUR_FORMULAIRE_FACTURATION as m,
|
||||
SELECTEUR_BOUTON_ACTIONS_FORMULAIRE as n,
|
||||
ATTRIBUT_CLE_PANIER as o,
|
||||
SELECTEUR_BOUTON_SOUSTRACTION_QUANTITE as p,
|
||||
SELECTEUR_CHAMP_QUANTITE_LIGNE_PANIER as q,
|
||||
SELECTEUR_BOUTON_ADDITION_QUANTITE as r,
|
||||
SELECTEUR_BOUTON_SUPPRESSION_PANIER as s,
|
||||
SELECTEUR_PRIX_LIGNE_PANIER as t,
|
||||
ATTRIBUT_HIDDEN as u,
|
||||
ATTRIBUT_DESACTIVE as v,
|
||||
SELECTEUR_BOUTON_AJOUT_PANIER as w,
|
||||
SELECTEUR_SELECTEUR_QUANTITE as x,
|
||||
SELECTEUR_LIENS_ONGLETS as y,
|
||||
SELECTEUR_SECTIONS_CONTENUS as z
|
||||
SELECTEUR_GRILLE_PRODUITS as f,
|
||||
SELECTEUR_BOUTON_PLUS_PRODUITS as g,
|
||||
SELECTEUR_ENTREES_PANIER as h,
|
||||
SELECTEUR_CONTENEUR_PANIER as i,
|
||||
SELECTEUR_SOUS_TOTAL_PRODUITS as j,
|
||||
SELECTEUR_SOUS_TOTAL_LIVRAISON_COUT as k,
|
||||
SELECTEUR_SOUS_TOTAL_LIVRAISON_PRESTATAIRE as l,
|
||||
SELECTEUR_TOTAL_PANIER as m,
|
||||
SELECTEUR_BOUTON_SEPARATION_ADRESSES as n,
|
||||
SELECTEUR_FORMULAIRE_PANIER as o,
|
||||
SELECTEUR_FORMULAIRE_LIVRAISON as p,
|
||||
SELECTEUR_FORMULAIRE_FACTURATION as q,
|
||||
SELECTEUR_BOUTON_ACTIONS_FORMULAIRE as r,
|
||||
ATTRIBUT_CLE_PANIER as s,
|
||||
SELECTEUR_BOUTON_SOUSTRACTION_QUANTITE as t,
|
||||
SELECTEUR_CHAMP_QUANTITE_LIGNE_PANIER as u,
|
||||
SELECTEUR_BOUTON_ADDITION_QUANTITE as v,
|
||||
SELECTEUR_BOUTON_SUPPRESSION_PANIER as w,
|
||||
SELECTEUR_PRIX_LIGNE_PANIER as x,
|
||||
ATTRIBUT_HIDDEN as y,
|
||||
ATTRIBUT_DESACTIVE as z
|
||||
};
|
||||
//# 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_HIDDEN = \"aria-hidden\";\nexport const ATTRIBUT_ARIA_SELECTED = \"aria-selected\";\nexport const ATTRIBUT_CACHE = \"data-cache\";\nexport const ATTRIBUT_CLE_PANIER = \"data-cle-panier\";\nexport const ATTRIBUT_CONTIENT_ARTICLES = \"data-contient-articles\";\nexport const ATTRIBUT_DESACTIVE = \"disabled\";\nexport const ATTRIBUT_HIDDEN = \"hidden\";\nexport const ATTRIBUT_INDEX = \"data-index\";\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_LIGNE_PANIER = \"input\";\nexport const SELECTEUR_PRIX_LIGNE_PANIER = \".detail-produit__nom-prix span\";\nexport const SELECTEUR_SOUS_TOTAL_PANIER = \"#panneau-panier .panneau__sous-totaux__ligne strong\";\nexport const SELECTEUR_TOTAL_PANIER = \"#panneau-panier .panneau__pied-de-page p span\";\nexport const SELECTEUR_BOUTON_SEPARATION_ADRESSES = \"#separation-adresses\";\nexport const SELECTEUR_FORMULAIRE_PANIER = \"#panneau-informations-client form\";\nexport const SELECTEUR_FORMULAIRE_LIVRAISON = \"#panneau-informations-client .panneau__formulaires__livraison\";\nexport const SELECTEUR_FORMULAIRE_FACTURATION = \"#panneau-informations-client .panneau__formulaires__facturation\";\nexport const SELECTEUR_BOUTON_ACTIONS_FORMULAIRE = \"#panneau-informations-client .panneau__pied-de-page button\";\n\n// Accueil\nexport const SELECTEUR_CONTENEUR_STORYTELLING = \".storytelling\";\nexport const SELECTEUR_IMAGES_STORYTELLING = \".storytelling__image\";\n"],"names":[],"mappings":"AAEO,MAAM,uBAAuB;AAC7B,MAAM,yBAAyB;AAC/B,MAAM,iBAAiB;AACvB,MAAM,sBAAsB;AAC5B,MAAM,6BAA6B;AACnC,MAAM,qBAAqB;AAC3B,MAAM,kBAAkB;AACxB,MAAM,iBAAiB;AAEvB,MAAM,6BAA6B;AACnC,MAAM,0BAA0B;AAChC,MAAM,+BAA+B;AACrC,MAAM,gCAAgC;AACtC,MAAM,0BAA0B;AAChC,MAAM,8BAA8B;AAGpC,MAAM,2BAA2B;AACjC,MAAM,sCAAsC;AAC5C,MAAM,yCAAyC;AAC/C,MAAM,qCAAqC;AAC3C,MAAM,wCAAwC;AAC9C,MAAM,8BAA8B;AACpC,MAAM,8BAA8B;AACpC,MAAM,yBAAyB;AAC/B,MAAM,uCAAuC;AAC7C,MAAM,8BAA8B;AACpC,MAAM,iCAAiC;AACvC,MAAM,mCAAmC;AACzC,MAAM,sCAAsC;AAG5C,MAAM,mCAAmC;AACzC,MAAM,gCAAgC;"}
|
||||
{"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_HIDDEN = \"aria-hidden\";\nexport const ATTRIBUT_ARIA_SELECTED = \"aria-selected\";\nexport const ATTRIBUT_CACHE = \"data-cache\";\nexport const ATTRIBUT_CLE_PANIER = \"data-cle-panier\";\nexport const ATTRIBUT_CONTIENT_ARTICLES = \"data-contient-articles\";\nexport const ATTRIBUT_DESACTIVE = \"disabled\";\nexport const ATTRIBUT_HIDDEN = \"hidden\";\nexport const ATTRIBUT_INDEX = \"data-index\";\nexport const ATTRIBUT_PAGE = \"data-page\";\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_LIGNE_PANIER = \"input\";\nexport const SELECTEUR_PRIX_LIGNE_PANIER = \".detail-produit__nom-prix span\";\nexport const SELECTEUR_SOUS_TOTAL_PRODUITS = \"#panneau-panier #sous-total-produits strong\";\nexport const SELECTEUR_SOUS_TOTAL_LIVRAISON_COUT = \"#panneau-panier #sous-total-livraison strong\";\nexport const SELECTEUR_SOUS_TOTAL_LIVRAISON_PRESTATAIRE = \"#panneau-panier #sous-total-livraison span\";\nexport const SELECTEUR_TOTAL_PANIER = \"#panneau-panier .panneau__pied-de-page p span\";\nexport const SELECTEUR_BOUTON_SEPARATION_ADRESSES = \"#separation-adresses\";\nexport const SELECTEUR_FORMULAIRE_PANIER = \"#panneau-informations-client form\";\nexport const SELECTEUR_FORMULAIRE_LIVRAISON = \"#panneau-informations-client .panneau__formulaires__livraison\";\nexport const SELECTEUR_FORMULAIRE_FACTURATION = \"#panneau-informations-client .panneau__formulaires__facturation\";\nexport const SELECTEUR_BOUTON_ACTIONS_FORMULAIRE = \"#panneau-informations-client .panneau__pied-de-page button\";\n\n// Accueil\nexport const SELECTEUR_CONTENEUR_STORYTELLING = \".storytelling\";\nexport const SELECTEUR_IMAGES_STORYTELLING = \".storytelling__image\";\n\n// Boutique\nexport const SELECTEUR_GRILLE_PRODUITS = \"#page-boutique .grille-produits\";\nexport const SELECTEUR_BOUTON_PLUS_PRODUITS = \"#page-boutique #bouton-plus-de-produits\";\n"],"names":[],"mappings":"AAEO,MAAM,uBAAuB;AAC7B,MAAM,yBAAyB;AAC/B,MAAM,iBAAiB;AACvB,MAAM,sBAAsB;AAC5B,MAAM,6BAA6B;AACnC,MAAM,qBAAqB;AAC3B,MAAM,kBAAkB;AACxB,MAAM,iBAAiB;AAGvB,MAAM,6BAA6B;AACnC,MAAM,0BAA0B;AAChC,MAAM,+BAA+B;AACrC,MAAM,gCAAgC;AACtC,MAAM,0BAA0B;AAChC,MAAM,8BAA8B;AAGpC,MAAM,2BAA2B;AACjC,MAAM,sCAAsC;AAC5C,MAAM,yCAAyC;AAC/C,MAAM,qCAAqC;AAC3C,MAAM,wCAAwC;AAC9C,MAAM,8BAA8B;AACpC,MAAM,gCAAgC;AACtC,MAAM,sCAAsC;AAC5C,MAAM,6CAA6C;AACnD,MAAM,yBAAyB;AAC/B,MAAM,uCAAuC;AAC7C,MAAM,8BAA8B;AACpC,MAAM,iCAAiC;AACvC,MAAM,mCAAmC;AACzC,MAAM,sCAAsC;AAG5C,MAAM,mCAAmC;AACzC,MAAM,gCAAgC;AAGtC,MAAM,4BAA4B;AAClC,MAAM,iCAAiC;"}
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
import { i as is, o as object, n as number, s as string } from "./index.CCa5Y_L9.js";
|
||||
import { i as is, o as object, n as number, s as string } from "./index.BgFo03XT.js";
|
||||
const WCErrorBodySchema = object({
|
||||
code: string(),
|
||||
data: object({
|
||||
|
|
|
|||
|
|
@ -1,314 +1,6 @@
|
|||
import { f as ROUTE_API_PANIER, e as ENTETE_WC_NONCE } from "./api.js";
|
||||
import { E as Either, r as right, l as left, M as Maybe, n as nothing, j as just } from "./Either.wHNxn7Os.js";
|
||||
var _a$1;
|
||||
const helpers$1 = {
|
||||
liftEither(either) {
|
||||
if (either.isRight()) {
|
||||
return Promise.resolve(either.extract());
|
||||
}
|
||||
throw either.extract();
|
||||
},
|
||||
fromPromise(promise) {
|
||||
return promise.then(helpers$1.liftEither);
|
||||
},
|
||||
throwE(error) {
|
||||
throw error;
|
||||
}
|
||||
};
|
||||
class EitherAsyncImpl {
|
||||
constructor(runPromise) {
|
||||
this.runPromise = runPromise;
|
||||
this[_a$1] = "EitherAsync";
|
||||
this["fantasy-land/chain"] = this.chain;
|
||||
this["fantasy-land/alt"] = this.alt;
|
||||
this.then = (onfulfilled, onrejected) => {
|
||||
return this.run().then(onfulfilled, onrejected);
|
||||
};
|
||||
}
|
||||
leftOrDefault(defaultValue) {
|
||||
return this.run().then((x) => x.leftOrDefault(defaultValue));
|
||||
}
|
||||
orDefault(defaultValue) {
|
||||
return this.run().then((x) => x.orDefault(defaultValue));
|
||||
}
|
||||
join() {
|
||||
return EitherAsync(async (helpers2) => {
|
||||
const either = await this;
|
||||
if (either.isRight()) {
|
||||
const nestedEither = await either.extract();
|
||||
return helpers2.liftEither(nestedEither);
|
||||
}
|
||||
return helpers2.liftEither(either);
|
||||
});
|
||||
}
|
||||
ap(eitherF) {
|
||||
return EitherAsync(async (helpers2) => {
|
||||
const otherValue = await eitherF;
|
||||
if (otherValue.isRight()) {
|
||||
const thisValue = await this.run();
|
||||
if (thisValue.isRight()) {
|
||||
return otherValue.extract()(thisValue.extract());
|
||||
} else {
|
||||
return helpers2.liftEither(thisValue);
|
||||
}
|
||||
}
|
||||
return helpers2.liftEither(otherValue);
|
||||
});
|
||||
}
|
||||
alt(other) {
|
||||
return EitherAsync(async (helpers2) => {
|
||||
const thisValue = await this.run();
|
||||
if (thisValue.isRight()) {
|
||||
return thisValue.extract();
|
||||
} else {
|
||||
const otherValue = await other;
|
||||
return helpers2.liftEither(otherValue);
|
||||
}
|
||||
});
|
||||
}
|
||||
extend(f) {
|
||||
return EitherAsync(async (helpers2) => {
|
||||
const either = await this.run();
|
||||
if (either.isRight()) {
|
||||
const v = EitherAsync.liftEither(either);
|
||||
return helpers2.liftEither(right(f(v)));
|
||||
}
|
||||
return helpers2.liftEither(either);
|
||||
});
|
||||
}
|
||||
async run() {
|
||||
try {
|
||||
return right(await this.runPromise(helpers$1));
|
||||
} catch (e) {
|
||||
return left(e);
|
||||
}
|
||||
}
|
||||
bimap(f, g) {
|
||||
return EitherAsync(async (helpers2) => {
|
||||
const either = await this.run();
|
||||
try {
|
||||
return await helpers2.liftEither(either.bimap(f, g));
|
||||
} catch (e) {
|
||||
throw await e;
|
||||
}
|
||||
});
|
||||
}
|
||||
map(f) {
|
||||
return EitherAsync((helpers2) => this.runPromise(helpers2).then(f));
|
||||
}
|
||||
mapLeft(f) {
|
||||
return EitherAsync(async (helpers2) => {
|
||||
try {
|
||||
return await this.runPromise(helpers2);
|
||||
} catch (e) {
|
||||
throw await f(e);
|
||||
}
|
||||
});
|
||||
}
|
||||
chain(f) {
|
||||
return EitherAsync(async (helpers2) => {
|
||||
const value = await this.runPromise(helpers2);
|
||||
return helpers2.fromPromise(f(value));
|
||||
});
|
||||
}
|
||||
chainLeft(f) {
|
||||
return EitherAsync(async (helpers2) => {
|
||||
try {
|
||||
return await this.runPromise(helpers2);
|
||||
} catch (e) {
|
||||
return helpers2.fromPromise(f(e));
|
||||
}
|
||||
});
|
||||
}
|
||||
toMaybeAsync() {
|
||||
return MaybeAsync(async ({ liftMaybe }) => {
|
||||
const either = await this.run();
|
||||
return liftMaybe(either.toMaybe());
|
||||
});
|
||||
}
|
||||
swap() {
|
||||
return EitherAsync(async (helpers2) => {
|
||||
const either = await this.run();
|
||||
if (either.isRight())
|
||||
helpers2.throwE(either.extract());
|
||||
return helpers2.liftEither(right(either.extract()));
|
||||
});
|
||||
}
|
||||
ifLeft(effect) {
|
||||
return EitherAsync(async (helpers2) => {
|
||||
const either = await this.run();
|
||||
either.ifLeft(effect);
|
||||
return helpers2.liftEither(either);
|
||||
});
|
||||
}
|
||||
ifRight(effect) {
|
||||
return EitherAsync(async (helpers2) => {
|
||||
const either = await this.run();
|
||||
either.ifRight(effect);
|
||||
return helpers2.liftEither(either);
|
||||
});
|
||||
}
|
||||
void() {
|
||||
return this.map((_) => {
|
||||
});
|
||||
}
|
||||
caseOf(patterns) {
|
||||
return this.run().then((x) => x.caseOf(patterns));
|
||||
}
|
||||
finally(effect) {
|
||||
return EitherAsync(({ fromPromise }) => fromPromise(this.run().finally(effect)));
|
||||
}
|
||||
}
|
||||
_a$1 = Symbol.toStringTag;
|
||||
const EitherAsync = Object.assign((runPromise) => new EitherAsyncImpl(runPromise), {
|
||||
fromPromise: (f) => EitherAsync(({ fromPromise: fP }) => fP(f())),
|
||||
liftEither: (either) => EitherAsync(({ liftEither }) => liftEither(either)),
|
||||
lefts: (list) => Promise.all(list.map((x) => x.run())).then(Either.lefts),
|
||||
rights: (list) => Promise.all(list.map((x) => x.run())).then(Either.rights),
|
||||
sequence: (eas) => EitherAsync(async (helpers2) => {
|
||||
let res = [];
|
||||
for await (const e of eas) {
|
||||
if (e.isLeft()) {
|
||||
return helpers2.liftEither(e);
|
||||
}
|
||||
res.push(e.extract());
|
||||
}
|
||||
return helpers2.liftEither(right(res));
|
||||
}),
|
||||
all: (eas) => EitherAsync.fromPromise(async () => Promise.all(eas).then(Either.sequence))
|
||||
});
|
||||
EitherAsyncImpl.prototype.constructor = EitherAsync;
|
||||
var _a;
|
||||
const helpers = {
|
||||
liftMaybe(maybe) {
|
||||
if (maybe.isJust()) {
|
||||
return Promise.resolve(maybe.extract());
|
||||
}
|
||||
throw nothing;
|
||||
},
|
||||
fromPromise(promise) {
|
||||
return promise.then(helpers.liftMaybe);
|
||||
}
|
||||
};
|
||||
class MaybeAsyncImpl {
|
||||
constructor(runPromise) {
|
||||
this.runPromise = runPromise;
|
||||
this[_a] = "MaybeAsync";
|
||||
this["fantasy-land/chain"] = this.chain;
|
||||
this["fantasy-land/filter"] = this.filter;
|
||||
this["fantasy-land/alt"] = this.alt;
|
||||
}
|
||||
orDefault(defaultValue) {
|
||||
return this.run().then((x) => x.orDefault(defaultValue));
|
||||
}
|
||||
join() {
|
||||
return MaybeAsync(async (helpers2) => {
|
||||
const maybe = await this.run();
|
||||
if (maybe.isJust()) {
|
||||
const nestedMaybe = await maybe.extract();
|
||||
return helpers2.liftMaybe(nestedMaybe);
|
||||
}
|
||||
return helpers2.liftMaybe(nothing);
|
||||
});
|
||||
}
|
||||
ap(maybeF) {
|
||||
return MaybeAsync(async (helpers2) => {
|
||||
const otherValue = await maybeF;
|
||||
if (otherValue.isJust()) {
|
||||
const thisValue = await this.run();
|
||||
if (thisValue.isJust()) {
|
||||
return otherValue.extract()(thisValue.extract());
|
||||
} else {
|
||||
return helpers2.liftMaybe(nothing);
|
||||
}
|
||||
}
|
||||
return helpers2.liftMaybe(nothing);
|
||||
});
|
||||
}
|
||||
alt(other) {
|
||||
return MaybeAsync(async (helpers2) => {
|
||||
const thisValue = await this.run();
|
||||
if (thisValue.isJust()) {
|
||||
return thisValue.extract();
|
||||
} else {
|
||||
const otherValue = await other;
|
||||
return helpers2.liftMaybe(otherValue);
|
||||
}
|
||||
});
|
||||
}
|
||||
extend(f) {
|
||||
return MaybeAsync(async (helpers2) => {
|
||||
const maybe = await this.run();
|
||||
if (maybe.isJust()) {
|
||||
const v = MaybeAsync.liftMaybe(maybe);
|
||||
return helpers2.liftMaybe(just(f(v)));
|
||||
}
|
||||
return helpers2.liftMaybe(nothing);
|
||||
});
|
||||
}
|
||||
filter(pred) {
|
||||
return MaybeAsync(async (helpers2) => {
|
||||
const value = await this.run();
|
||||
return helpers2.liftMaybe(value.filter(pred));
|
||||
});
|
||||
}
|
||||
async run() {
|
||||
try {
|
||||
return just(await this.runPromise(helpers));
|
||||
} catch {
|
||||
return nothing;
|
||||
}
|
||||
}
|
||||
map(f) {
|
||||
return MaybeAsync((helpers2) => this.runPromise(helpers2).then(f));
|
||||
}
|
||||
chain(f) {
|
||||
return MaybeAsync(async (helpers2) => {
|
||||
const value = await this.runPromise(helpers2);
|
||||
return helpers2.fromPromise(f(value));
|
||||
});
|
||||
}
|
||||
toEitherAsync(error) {
|
||||
return EitherAsync(async ({ liftEither }) => {
|
||||
const maybe = await this.run();
|
||||
return liftEither(maybe.toEither(error));
|
||||
});
|
||||
}
|
||||
ifJust(effect) {
|
||||
return MaybeAsync(async (helpers2) => {
|
||||
const maybe = await this.run();
|
||||
maybe.ifJust(effect);
|
||||
return helpers2.liftMaybe(maybe);
|
||||
});
|
||||
}
|
||||
ifNothing(effect) {
|
||||
return MaybeAsync(async (helpers2) => {
|
||||
const maybe = await this.run();
|
||||
maybe.ifNothing(effect);
|
||||
return helpers2.liftMaybe(maybe);
|
||||
});
|
||||
}
|
||||
void() {
|
||||
return this.map((_) => {
|
||||
});
|
||||
}
|
||||
caseOf(patterns) {
|
||||
return this.run().then((x) => x.caseOf(patterns));
|
||||
}
|
||||
finally(effect) {
|
||||
return MaybeAsync(({ fromPromise }) => fromPromise(this.run().finally(effect)));
|
||||
}
|
||||
then(onfulfilled, onrejected) {
|
||||
return this.run().then(onfulfilled, onrejected);
|
||||
}
|
||||
}
|
||||
_a = Symbol.toStringTag;
|
||||
const MaybeAsync = Object.assign((runPromise) => new MaybeAsyncImpl(runPromise), {
|
||||
catMaybes: (list) => Promise.all(list).then(Maybe.catMaybes),
|
||||
fromPromise: (f) => MaybeAsync(({ fromPromise: fP }) => fP(f())),
|
||||
liftMaybe: (maybe) => MaybeAsync(({ liftMaybe }) => liftMaybe(maybe))
|
||||
});
|
||||
MaybeAsyncImpl.prototype.constructor = MaybeAsync;
|
||||
import { g as ROUTE_API_PANIER, f as ENTETE_WC_NONCE } from "./api.js";
|
||||
import { E as EitherAsync } from "./MaybeAsync.AE1jnxuc.js";
|
||||
import { r as right, l as left } from "./Either.wHNxn7Os.js";
|
||||
const ETATS = _etats;
|
||||
const requeteRecuperePanier = () => fetch(
|
||||
ROUTE_API_PANIER,
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -1,7 +1,6 @@
|
|||
var __defProp = Object.defineProperty;
|
||||
var __defNormalProp = (obj, key, value2) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value: value2 }) : obj[key] = value2;
|
||||
var __publicField = (obj, key, value2) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value2);
|
||||
var EMAIL_REGEX = /^[\w+-]+(?:\.[\w+-]+)*@[\da-z]+(?:[.-][\da-z]+)*\.[a-z]{2,}$/iu;
|
||||
var store;
|
||||
function getGlobalConfig(config2) {
|
||||
return {
|
||||
|
|
@ -94,23 +93,6 @@ var ValiError = class extends Error {
|
|||
this.issues = issues;
|
||||
}
|
||||
};
|
||||
function email(message) {
|
||||
return {
|
||||
kind: "validation",
|
||||
type: "email",
|
||||
reference: email,
|
||||
expects: null,
|
||||
async: false,
|
||||
requirement: EMAIL_REGEX,
|
||||
message,
|
||||
"~validate"(dataset, config2) {
|
||||
if (dataset.typed && !this.requirement.test(dataset.value)) {
|
||||
_addIssue(this, "email", dataset, config2);
|
||||
}
|
||||
return dataset;
|
||||
}
|
||||
};
|
||||
}
|
||||
function integer(message) {
|
||||
return {
|
||||
kind: "validation",
|
||||
|
|
@ -128,6 +110,25 @@ function integer(message) {
|
|||
}
|
||||
};
|
||||
}
|
||||
function maxValue(requirement, message) {
|
||||
return {
|
||||
kind: "validation",
|
||||
type: "max_value",
|
||||
reference: maxValue,
|
||||
async: false,
|
||||
expects: `<=${requirement instanceof Date ? requirement.toJSON() : _stringify(requirement)}`,
|
||||
requirement,
|
||||
message,
|
||||
"~validate"(dataset, config2) {
|
||||
if (dataset.typed && dataset.value > this.requirement) {
|
||||
_addIssue(this, "value", dataset, config2, {
|
||||
received: dataset.value instanceof Date ? dataset.value.toJSON() : _stringify(dataset.value)
|
||||
});
|
||||
}
|
||||
return dataset;
|
||||
}
|
||||
};
|
||||
}
|
||||
function minValue(requirement, message) {
|
||||
return {
|
||||
kind: "validation",
|
||||
|
|
@ -540,6 +541,15 @@ function unknown() {
|
|||
}
|
||||
};
|
||||
}
|
||||
function omit(schema, keys) {
|
||||
const entries = {
|
||||
...schema.entries
|
||||
};
|
||||
for (const key of keys) {
|
||||
delete entries[key];
|
||||
}
|
||||
return { ...schema, entries };
|
||||
}
|
||||
function parse(schema, input, config2) {
|
||||
const dataset = schema["~validate"](
|
||||
{ value: input },
|
||||
|
|
@ -574,14 +584,15 @@ export {
|
|||
optional as a,
|
||||
array as b,
|
||||
pipe as c,
|
||||
enum_ as d,
|
||||
email as e,
|
||||
boolean as f,
|
||||
union as g,
|
||||
null_ as h,
|
||||
boolean as d,
|
||||
enum_ as e,
|
||||
union as f,
|
||||
null_ as g,
|
||||
url as h,
|
||||
is as i,
|
||||
url as j,
|
||||
integer as k,
|
||||
integer as j,
|
||||
omit as k,
|
||||
maxValue as l,
|
||||
minValue as m,
|
||||
number as n,
|
||||
object as o,
|
||||
|
|
@ -590,4 +601,4 @@ export {
|
|||
unknown as u,
|
||||
value as v
|
||||
};
|
||||
//# sourceMappingURL=index.CCa5Y_L9.js.map
|
||||
//# sourceMappingURL=index.BgFo03XT.js.map
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -1,4 +1,4 @@
|
|||
import { p as parse } from "./index.CCa5Y_L9.js";
|
||||
import { p as parse } from "./index.BgFo03XT.js";
|
||||
import { N as NOM_CANAL_BOUTON_PANIER, T as TYPES_MESSAGES, a as NOM_CANAL_CONTENU_PANIER } from "./messages3.js";
|
||||
import { r as reporteErreur } from "./erreurs.js";
|
||||
import { M as MessageMajBoutonPanierSchema, a as MessageMajContenuPanierSchema } from "./messages2.js";
|
||||
|
|
@ -6,6 +6,8 @@ import { E as Either } from "./Either.wHNxn7Os.js";
|
|||
import "./exports.DMCTjIlP.js";
|
||||
import "./cart.js";
|
||||
import "./cart2.js";
|
||||
import "./adresses.js";
|
||||
import "./couts-livraison.js";
|
||||
const emetMessageMajBoutonPanier = (args) => {
|
||||
new BroadcastChannel(NOM_CANAL_BOUTON_PANIER).postMessage({
|
||||
donnees: {
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
{"version":3,"file":"messages.js","sources":["../../src/scripts/lib/messages.ts"],"sourcesContent":["import { Either } from \"purify-ts\";\nimport { parse, type ValiError } from \"valibot\";\n\nimport type {\n MessageMajBoutonPanier,\n MessageMajBoutonPanierDonnees,\n MessageMajContenuPanier,\n MessageMajContenuPanierDonnees,\n} from \"./types/messages\";\n\nimport { NOM_CANAL_BOUTON_PANIER, NOM_CANAL_CONTENU_PANIER, TYPES_MESSAGES } from \"../constantes/messages.ts\";\nimport { reporteErreur } from \"./erreurs.ts\";\nimport { MessageMajBoutonPanierSchema, MessageMajContenuPanierSchema } from \"./schemas/messages.ts\";\n\n// Émissions\nexport const emetMessageMajBoutonPanier = (args: MessageMajBoutonPanierDonnees): void => {\n new BroadcastChannel(NOM_CANAL_BOUTON_PANIER).postMessage({\n donnees: {\n quantiteProduits: args.quantiteProduits,\n },\n type: TYPES_MESSAGES.MajBoutonPanier,\n } as MessageMajBoutonPanier);\n};\n\nexport const emetMessageMajContenuPanier = (args: MessageMajContenuPanierDonnees): void =>\n new BroadcastChannel(NOM_CANAL_CONTENU_PANIER).postMessage({\n donnees: {\n produits: args.produits,\n sousTotalPanier: args.sousTotalPanier,\n totalPanier: args.totalPanier,\n },\n type: TYPES_MESSAGES.MajContenuPanier,\n } as MessageMajContenuPanier);\n\n// Validations\nexport const valideMessageMajBoutonPanier = (\n evenementMessage: MessageEvent<unknown>,\n): Either<ValiError<typeof MessageMajBoutonPanierSchema>, MessageMajBoutonPanier> =>\n Either\n .of<ValiError<typeof MessageMajBoutonPanierSchema>, MessageMajBoutonPanier>(\n parse(MessageMajBoutonPanierSchema, evenementMessage.data),\n )\n .ifLeft(erreur => reporteErreur(erreur));\n\nexport const valideMessageMajContenuPanier = (\n evenementMessage: MessageEvent<unknown>,\n): Either<ValiError<typeof MessageMajContenuPanierSchema>, MessageMajContenuPanier> =>\n Either\n .of<ValiError<typeof MessageMajContenuPanierSchema>, MessageMajContenuPanier>(\n parse(MessageMajContenuPanierSchema, evenementMessage.data),\n )\n .ifLeft(erreur => reporteErreur(erreur));\n"],"names":[],"mappings":";;;;;;;;AAea,MAAA,6BAA6B,CAAC,SAA8C;AACnF,MAAA,iBAAiB,uBAAuB,EAAE,YAAY;AAAA,IACxD,SAAS;AAAA,MACP,kBAAkB,KAAK;AAAA,IACzB;AAAA,IACA,MAAM,eAAe;AAAA,EAAA,CACI;AAC7B;AAEO,MAAM,8BAA8B,CAAC,SAC1C,IAAI,iBAAiB,wBAAwB,EAAE,YAAY;AAAA,EACzD,SAAS;AAAA,IACP,UAAU,KAAK;AAAA,IACf,iBAAiB,KAAK;AAAA,IACtB,aAAa,KAAK;AAAA,EACpB;AAAA,EACA,MAAM,eAAe;AACvB,CAA4B;AAGjB,MAAA,+BAA+B,CAC1C,qBAEA,OACG;AAAA,EACC,MAAM,8BAA8B,iBAAiB,IAAI;AAC3D,EACC,OAAO,CAAA,WAAU,cAAc,MAAM,CAAC;AAE9B,MAAA,gCAAgC,CAC3C,qBAEA,OACG;AAAA,EACC,MAAM,+BAA+B,iBAAiB,IAAI;AAC5D,EACC,OAAO,CAAA,WAAU,cAAc,MAAM,CAAC;"}
|
||||
{"version":3,"file":"messages.js","sources":["../../src/scripts/lib/messages.ts"],"sourcesContent":["import { Either } from \"purify-ts\";\nimport { parse, type ValiError } from \"valibot\";\n\nimport type {\n MessageMajBoutonPanier,\n MessageMajBoutonPanierDonnees,\n MessageMajContenuPanier,\n MessageMajContenuPanierDonnees,\n} from \"./types/messages\";\n\nimport { NOM_CANAL_BOUTON_PANIER, NOM_CANAL_CONTENU_PANIER, TYPES_MESSAGES } from \"../constantes/messages.ts\";\nimport { reporteErreur } from \"./erreurs.ts\";\nimport { MessageMajBoutonPanierSchema, MessageMajContenuPanierSchema } from \"./schemas/messages.ts\";\n\n// Émissions\nexport const emetMessageMajBoutonPanier = (args: MessageMajBoutonPanierDonnees): void => {\n new BroadcastChannel(NOM_CANAL_BOUTON_PANIER).postMessage({\n donnees: {\n quantiteProduits: args.quantiteProduits,\n },\n type: TYPES_MESSAGES.MajBoutonPanier,\n } as MessageMajBoutonPanier);\n};\n\nexport const emetMessageMajContenuPanier = (args: MessageMajContenuPanierDonnees): void =>\n new BroadcastChannel(NOM_CANAL_CONTENU_PANIER).postMessage({\n donnees: {\n produits: args.produits,\n sousTotalPanier: args.sousTotalPanier,\n totalPanier: args.totalPanier,\n },\n type: TYPES_MESSAGES.MajContenuPanier,\n } as MessageMajContenuPanier);\n\n// Validations\nexport const valideMessageMajBoutonPanier = (\n evenementMessage: MessageEvent<unknown>,\n): Either<ValiError<typeof MessageMajBoutonPanierSchema>, MessageMajBoutonPanier> =>\n Either\n .of<ValiError<typeof MessageMajBoutonPanierSchema>, MessageMajBoutonPanier>(\n parse(MessageMajBoutonPanierSchema, evenementMessage.data),\n )\n .ifLeft(erreur => reporteErreur(erreur));\n\nexport const valideMessageMajContenuPanier = (\n evenementMessage: MessageEvent<unknown>,\n): Either<ValiError<typeof MessageMajContenuPanierSchema>, MessageMajContenuPanier> =>\n Either\n .of<ValiError<typeof MessageMajContenuPanierSchema>, MessageMajContenuPanier>(\n parse(MessageMajContenuPanierSchema, evenementMessage.data),\n )\n .ifLeft(erreur => reporteErreur(erreur));\n"],"names":[],"mappings":";;;;;;;;;;AAea,MAAA,6BAA6B,CAAC,SAA8C;AACnF,MAAA,iBAAiB,uBAAuB,EAAE,YAAY;AAAA,IACxD,SAAS;AAAA,MACP,kBAAkB,KAAK;AAAA,IACzB;AAAA,IACA,MAAM,eAAe;AAAA,EAAA,CACI;AAC7B;AAEO,MAAM,8BAA8B,CAAC,SAC1C,IAAI,iBAAiB,wBAAwB,EAAE,YAAY;AAAA,EACzD,SAAS;AAAA,IACP,UAAU,KAAK;AAAA,IACf,iBAAiB,KAAK;AAAA,IACtB,aAAa,KAAK;AAAA,EACpB;AAAA,EACA,MAAM,eAAe;AACvB,CAA4B;AAGjB,MAAA,+BAA+B,CAC1C,qBAEA,OACG;AAAA,EACC,MAAM,8BAA8B,iBAAiB,IAAI;AAC3D,EACC,OAAO,CAAA,WAAU,cAAc,MAAM,CAAC;AAE9B,MAAA,gCAAgC,CAC3C,qBAEA,OACG;AAAA,EACC,MAAM,+BAA+B,iBAAiB,IAAI;AAC5D,EACC,OAAO,CAAA,WAAU,cAAc,MAAM,CAAC;"}
|
||||
|
|
@ -1,7 +1,9 @@
|
|||
import { d as enum_, o as object, c as pipe, v as value, s as string, n as number, b as array } from "./index.CCa5Y_L9.js";
|
||||
import { e as enum_, o as object, c as pipe, v as value, s as string, n as number, b as array } from "./index.BgFo03XT.js";
|
||||
import { T as TYPES_MESSAGES } from "./messages3.js";
|
||||
import { a as WCStoreCartItemSchema } from "./cart.js";
|
||||
import "./cart2.js";
|
||||
import "./adresses.js";
|
||||
import "./couts-livraison.js";
|
||||
enum_(TYPES_MESSAGES);
|
||||
const MessageMajBoutonPanierDonneesSchema = object({
|
||||
quantiteProduits: number()
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
{"version":3,"file":"messages2.js","sources":["../../src/scripts/lib/schemas/messages.ts"],"sourcesContent":["/**\n * Schémas des Messages passés avec BroadcastChannel.\n */\n\nimport * as v from \"valibot\";\n\nimport { TYPES_MESSAGES } from \"../../constantes/messages.ts\";\nimport { WCStoreCartItemSchema } from \"./cart.ts\";\n\nexport const TypesMessagesSchema = v.enum(TYPES_MESSAGES);\n\nexport const MessageMajBoutonPanierDonneesSchema = v.object({\n quantiteProduits: v.number(),\n});\n\nexport const MessageMajBoutonPanierSchema = v.object({\n donnees: MessageMajBoutonPanierDonneesSchema,\n type: v.pipe(v.string(), v.value(TYPES_MESSAGES.MajBoutonPanier)),\n});\n\nexport const MessageMajContenuPanierDonneesSchema = v.object({\n produits: v.array(WCStoreCartItemSchema),\n sousTotalPanier: v.number(),\n totalPanier: v.number(),\n});\n\nexport const MessageMajContenuPanierSchema = v.object({\n donnees: MessageMajContenuPanierDonneesSchema,\n type: v.pipe(v.string(), v.value(TYPES_MESSAGES.MajContenuPanier)),\n});\n"],"names":["v.enum","v.object","v.number","v.pipe","v.string","v.value","v.array"],"mappings":";;;;AASmCA,MAAO,cAAc;AAE3C,MAAA,sCAAsCC,OAAS;AAAA,EAC1D,kBAAkBC,OAAS;AAC7B,CAAC;AAEY,MAAA,+BAA+BD,OAAS;AAAA,EACnD,SAAS;AAAA,EACT,MAAME,KAAOC,OAAE,GAAUC,MAAQ,eAAe,eAAe,CAAC;AAClE,CAAC;AAEY,MAAA,uCAAuCJ,OAAS;AAAA,EAC3D,UAAUK,MAAQ,qBAAqB;AAAA,EACvC,iBAAiBJ,OAAS;AAAA,EAC1B,aAAaA,OAAS;AACxB,CAAC;AAEY,MAAA,gCAAgCD,OAAS;AAAA,EACpD,SAAS;AAAA,EACT,MAAME,KAAOC,OAAE,GAAUC,MAAQ,eAAe,gBAAgB,CAAC;AACnE,CAAC;"}
|
||||
{"version":3,"file":"messages2.js","sources":["../../src/scripts/lib/schemas/messages.ts"],"sourcesContent":["/**\n * Schémas des Messages passés avec BroadcastChannel.\n */\n\nimport * as v from \"valibot\";\n\nimport { TYPES_MESSAGES } from \"../../constantes/messages.ts\";\nimport { WCStoreCartItemSchema } from \"./cart.ts\";\n\nexport const TypesMessagesSchema = v.enum(TYPES_MESSAGES);\n\nexport const MessageMajBoutonPanierDonneesSchema = v.object({\n quantiteProduits: v.number(),\n});\n\nexport const MessageMajBoutonPanierSchema = v.object({\n donnees: MessageMajBoutonPanierDonneesSchema,\n type: v.pipe(v.string(), v.value(TYPES_MESSAGES.MajBoutonPanier)),\n});\n\nexport const MessageMajContenuPanierDonneesSchema = v.object({\n produits: v.array(WCStoreCartItemSchema),\n sousTotalPanier: v.number(),\n totalPanier: v.number(),\n});\n\nexport const MessageMajContenuPanierSchema = v.object({\n donnees: MessageMajContenuPanierDonneesSchema,\n type: v.pipe(v.string(), v.value(TYPES_MESSAGES.MajContenuPanier)),\n});\n"],"names":["v.enum","v.object","v.number","v.pipe","v.string","v.value","v.array"],"mappings":";;;;;;AASmCA,MAAO,cAAc;AAE3C,MAAA,sCAAsCC,OAAS;AAAA,EAC1D,kBAAkBC,OAAS;AAC7B,CAAC;AAEY,MAAA,+BAA+BD,OAAS;AAAA,EACnD,SAAS;AAAA,EACT,MAAME,KAAOC,OAAE,GAAUC,MAAQ,eAAe,eAAe,CAAC;AAClE,CAAC;AAEY,MAAA,uCAAuCJ,OAAS;AAAA,EAC3D,UAAUK,MAAQ,qBAAqB;AAAA,EACvC,iBAAiBJ,OAAS;AAAA,EAC1B,aAAaA,OAAS;AACxB,CAAC;AAEY,MAAA,gCAAgCD,OAAS;AAAA,EACpD,SAAS;AAAA,EACT,MAAME,KAAOC,OAAE,GAAUC,MAAQ,eAAe,gBAAgB,CAAC;AACnE,CAAC;"}
|
||||
110
web/app/themes/haiku-atelier-2024/assets/js/products.js
Normal file
110
web/app/themes/haiku-atelier-2024/assets/js/products.js
Normal file
|
|
@ -0,0 +1,110 @@
|
|||
import { o as object, a as optional, s as string, e as enum_, c as pipe, m as minValue, n as number, l as maxValue, b as array, u as unknown, d as boolean, f as union, g as null_, j as integer } from "./index.BgFo03XT.js";
|
||||
import { A as ATTRIBUTES_RELATIONS, C as CATALOG_VISIBILITIES, a as CATEGORY_OPERATORS, P as PRODUCTS_CONTEXTES, D as DATE_COLUMN_VALUES, O as ORDER_VALUES, b as ORDERBY_VALUES, R as RATINGS, S as STOCK_STATUSES, T as TAG_OPERATORS, c as PRODUCT_TYPES } from "./products2.js";
|
||||
const WCProductsArgsSchema = object({
|
||||
// Date ISO8601
|
||||
after: optional(optional(string())),
|
||||
attribute_relation: optional(enum_(ATTRIBUTES_RELATIONS)),
|
||||
attributes: optional(array(unknown())),
|
||||
// Date ISO8601
|
||||
before: optional(string()),
|
||||
catalog_visibility: optional(enum_(CATALOG_VISIBILITIES)),
|
||||
category: optional(string()),
|
||||
category_operator: optional(enum_(CATEGORY_OPERATORS)),
|
||||
context: optional(enum_(PRODUCTS_CONTEXTES)),
|
||||
date_column: optional(enum_(DATE_COLUMN_VALUES)),
|
||||
exclude: optional(array(pipe(number(), integer()))),
|
||||
featured: optional(boolean()),
|
||||
include: optional(array(pipe(number(), integer()))),
|
||||
max_price: optional(string()),
|
||||
min_price: optional(string()),
|
||||
offset: optional(number()),
|
||||
on_sale: optional(boolean()),
|
||||
order: optional(enum_(ORDER_VALUES)),
|
||||
orderby: optional(enum_(ORDERBY_VALUES)),
|
||||
page: optional(pipe(number(), minValue(1))),
|
||||
parent: optional(array(pipe(number(), integer()))),
|
||||
parent_exclude: optional(array(pipe(number(), integer()))),
|
||||
per_page: optional(pipe(number(), minValue(0), maxValue(100))),
|
||||
rating: optional(array(enum_(RATINGS))),
|
||||
search: optional(string()),
|
||||
sku: optional(string()),
|
||||
slug: optional(string()),
|
||||
stock_status: optional(array(enum_(STOCK_STATUSES))),
|
||||
tag: optional(string()),
|
||||
tag_operator: optional(enum_(TAG_OPERATORS)),
|
||||
type: optional(enum_(PRODUCT_TYPES))
|
||||
});
|
||||
const WCProductSchema = object({
|
||||
add_to_cart: object({
|
||||
description: string(),
|
||||
maximum: number(),
|
||||
minimum: number(),
|
||||
multiple_of: number(),
|
||||
text: string(),
|
||||
url: string()
|
||||
}),
|
||||
attributes: array(unknown()),
|
||||
average_rating: string(),
|
||||
categories: array(object({
|
||||
id: number(),
|
||||
link: string(),
|
||||
name: string(),
|
||||
slug: string()
|
||||
})),
|
||||
description: string(),
|
||||
extensions: unknown(),
|
||||
has_options: boolean(),
|
||||
id: number(),
|
||||
images: array(object({
|
||||
alt: string(),
|
||||
id: number(),
|
||||
name: string(),
|
||||
sizes: string(),
|
||||
src: string(),
|
||||
srcset: string(),
|
||||
thumbnail: string()
|
||||
})),
|
||||
is_in_stock: boolean(),
|
||||
is_on_backorder: boolean(),
|
||||
is_purchasable: boolean(),
|
||||
low_stock_remaining: union([string(), null_()]),
|
||||
name: string(),
|
||||
on_sale: boolean(),
|
||||
parent: number(),
|
||||
permalink: string(),
|
||||
price_html: string(),
|
||||
prices: object({
|
||||
currency_code: string(),
|
||||
currency_decimal_separator: string(),
|
||||
currency_minor_unit: number(),
|
||||
currency_prefix: string(),
|
||||
currency_suffix: string(),
|
||||
currency_symbol: string(),
|
||||
currency_thousand_separator: string(),
|
||||
price: string(),
|
||||
price_range: optional(unknown()),
|
||||
regular_price: string(),
|
||||
sale_price: string()
|
||||
}),
|
||||
review_count: number(),
|
||||
short_description: string(),
|
||||
sku: string(),
|
||||
slug: string(),
|
||||
sold_individually: boolean(),
|
||||
tags: array(string()),
|
||||
type: string(),
|
||||
variation: unknown(),
|
||||
variations: array(object({
|
||||
attributes: array(object({
|
||||
name: string(),
|
||||
value: string()
|
||||
})),
|
||||
id: number()
|
||||
}))
|
||||
});
|
||||
const WCProductsSchema = array(WCProductSchema);
|
||||
export {
|
||||
WCProductsArgsSchema as W,
|
||||
WCProductsSchema as a
|
||||
};
|
||||
//# sourceMappingURL=products.js.map
|
||||
File diff suppressed because one or more lines are too long
81
web/app/themes/haiku-atelier-2024/assets/js/products2.js
Normal file
81
web/app/themes/haiku-atelier-2024/assets/js/products2.js
Normal file
|
|
@ -0,0 +1,81 @@
|
|||
const PRODUCTS_CONTEXTES = {
|
||||
EDIT: "edit",
|
||||
VIEW: "view"
|
||||
};
|
||||
const DATE_COLUMN_VALUES = {
|
||||
DATE: "date",
|
||||
DATE_GMT: "date_gmt",
|
||||
MODIFIED: "modified",
|
||||
MODIFIED_GMT: "modified_gmt"
|
||||
};
|
||||
const ORDER_VALUES = {
|
||||
ASC: "asc",
|
||||
DESC: "desc"
|
||||
};
|
||||
const ORDERBY_VALUES = {
|
||||
COMMENT_COUNT: "comment_count",
|
||||
DATE: "date",
|
||||
ID: "id",
|
||||
INCLUDE: "include",
|
||||
MENU_ORDER: "menu_order",
|
||||
MODIFIED: "modified",
|
||||
POPULARITY: "popularity",
|
||||
PRICE: "price",
|
||||
RATING: "rating",
|
||||
SLUG: "slug",
|
||||
TITLE: "title"
|
||||
};
|
||||
const PRODUCT_TYPES = {
|
||||
EXTERNAL: "external",
|
||||
GROUPED: "grouped",
|
||||
SIMPLE: "simple",
|
||||
VARIABLE: "variable",
|
||||
VARIATION: "variation"
|
||||
};
|
||||
const CATEGORY_OPERATORS = {
|
||||
AND: "and",
|
||||
IN: "in",
|
||||
NOT_IN: "not_in"
|
||||
};
|
||||
const TAG_OPERATORS = {
|
||||
AND: "and",
|
||||
IN: "in",
|
||||
NOT_IN: "not_in"
|
||||
};
|
||||
const STOCK_STATUSES = {
|
||||
IN_STOCK: "instock",
|
||||
ON_BACK_ORDER: "onbackorder",
|
||||
OUT_OF_STOCK: "outofstock"
|
||||
};
|
||||
const ATTRIBUTES_RELATIONS = {
|
||||
AND: "and",
|
||||
IN: "in"
|
||||
};
|
||||
const CATALOG_VISIBILITIES = {
|
||||
ANY: "any",
|
||||
CATALOG: "catalog",
|
||||
HIDDEN: "hidden",
|
||||
SEARCH: "search",
|
||||
VISIBLE: "visible"
|
||||
};
|
||||
const RATINGS = {
|
||||
1: 1,
|
||||
2: 2,
|
||||
3: 3,
|
||||
4: 4,
|
||||
5: 5
|
||||
};
|
||||
export {
|
||||
ATTRIBUTES_RELATIONS as A,
|
||||
CATALOG_VISIBILITIES as C,
|
||||
DATE_COLUMN_VALUES as D,
|
||||
ORDER_VALUES as O,
|
||||
PRODUCTS_CONTEXTES as P,
|
||||
RATINGS as R,
|
||||
STOCK_STATUSES as S,
|
||||
TAG_OPERATORS as T,
|
||||
CATEGORY_OPERATORS as a,
|
||||
ORDERBY_VALUES as b,
|
||||
PRODUCT_TYPES as c
|
||||
};
|
||||
//# sourceMappingURL=products2.js.map
|
||||
|
|
@ -0,0 +1 @@
|
|||
{"version":3,"file":"products2.js","sources":["../../src/scripts/constantes/products.ts"],"sourcesContent":["export const PRODUCTS_CONTEXTES = {\n EDIT: \"edit\",\n VIEW: \"view\",\n} as const;\n\nexport const DATE_COLUMN_VALUES = {\n DATE: \"date\",\n DATE_GMT: \"date_gmt\",\n MODIFIED: \"modified\",\n MODIFIED_GMT: \"modified_gmt\",\n} as const;\n\nexport const ORDER_VALUES = {\n ASC: \"asc\",\n DESC: \"desc\",\n} as const;\n\nexport const ORDERBY_VALUES = {\n COMMENT_COUNT: \"comment_count\",\n DATE: \"date\",\n ID: \"id\",\n INCLUDE: \"include\",\n MENU_ORDER: \"menu_order\",\n MODIFIED: \"modified\",\n POPULARITY: \"popularity\",\n PRICE: \"price\",\n RATING: \"rating\",\n SLUG: \"slug\",\n TITLE: \"title\",\n} as const;\n\nexport const PRODUCT_TYPES = {\n EXTERNAL: \"external\",\n GROUPED: \"grouped\",\n SIMPLE: \"simple\",\n VARIABLE: \"variable\",\n VARIATION: \"variation\",\n} as const;\n\nexport const CATEGORY_OPERATORS = {\n AND: \"and\",\n IN: \"in\",\n NOT_IN: \"not_in\",\n} as const;\n\nexport const TAG_OPERATORS = {\n AND: \"and\",\n IN: \"in\",\n NOT_IN: \"not_in\",\n} as const;\n\nexport const STOCK_STATUSES = {\n IN_STOCK: \"instock\",\n ON_BACK_ORDER: \"onbackorder\",\n OUT_OF_STOCK: \"outofstock\",\n} as const;\n\nexport const ATTRIBUTES_RELATIONS = {\n AND: \"and\",\n IN: \"in\",\n} as const;\n\nexport const CATALOG_VISIBILITIES = {\n ANY: \"any\",\n CATALOG: \"catalog\",\n HIDDEN: \"hidden\",\n SEARCH: \"search\",\n VISIBLE: \"visible\",\n} as const;\n\nexport const RATINGS = {\n 1: 1,\n 2: 2,\n 3: 3,\n 4: 4,\n 5: 5,\n} as const;\n"],"names":[],"mappings":"AAAO,MAAM,qBAAqB;AAAA,EAChC,MAAM;AAAA,EACN,MAAM;AACR;AAEO,MAAM,qBAAqB;AAAA,EAChC,MAAM;AAAA,EACN,UAAU;AAAA,EACV,UAAU;AAAA,EACV,cAAc;AAChB;AAEO,MAAM,eAAe;AAAA,EAC1B,KAAK;AAAA,EACL,MAAM;AACR;AAEO,MAAM,iBAAiB;AAAA,EAC5B,eAAe;AAAA,EACf,MAAM;AAAA,EACN,IAAI;AAAA,EACJ,SAAS;AAAA,EACT,YAAY;AAAA,EACZ,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,OAAO;AACT;AAEO,MAAM,gBAAgB;AAAA,EAC3B,UAAU;AAAA,EACV,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,WAAW;AACb;AAEO,MAAM,qBAAqB;AAAA,EAChC,KAAK;AAAA,EACL,IAAI;AAAA,EACJ,QAAQ;AACV;AAEO,MAAM,gBAAgB;AAAA,EAC3B,KAAK;AAAA,EACL,IAAI;AAAA,EACJ,QAAQ;AACV;AAEO,MAAM,iBAAiB;AAAA,EAC5B,UAAU;AAAA,EACV,eAAe;AAAA,EACf,cAAc;AAChB;AAEO,MAAM,uBAAuB;AAAA,EAClC,KAAK;AAAA,EACL,IAAI;AACN;AAEO,MAAM,uBAAuB;AAAA,EAClC,KAAK;AAAA,EACL,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,SAAS;AACX;AAEO,MAAM,UAAU;AAAA,EACrB,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AACL;"}
|
||||
|
|
@ -1,10 +1,24 @@
|
|||
import { x } from "./chunk-7BKSRZNG.C39W3Wne.js";
|
||||
import { z, N } from "./index.CeK6pfoJ.js";
|
||||
import { p as parse } from "./index.CCa5Y_L9.js";
|
||||
import { e as ENTETE_WC_NONCE } from "./api.js";
|
||||
import { p as parse } from "./index.BgFo03XT.js";
|
||||
import { f as ENTETE_WC_NONCE } from "./api.js";
|
||||
import { a as leveBadRequestError, b as leveUnauthorizedError, c as leveNotFoundError, d as leveErreur, E as ErreurInconnue } from "./erreurs.js";
|
||||
import { e as estWCError } from "./erreurs2.js";
|
||||
import "./exports.DMCTjIlP.js";
|
||||
const getBackend = (args) => fetch(
|
||||
`${args.route}?${args.searchParams}`,
|
||||
{
|
||||
credentials: "same-origin",
|
||||
headers: {
|
||||
Accept: "application/json",
|
||||
"Content-Type": "application/json",
|
||||
[ENTETE_WC_NONCE]: args.nonce
|
||||
},
|
||||
method: "GET",
|
||||
mode: "same-origin",
|
||||
signal: AbortSignal.timeout(5e3)
|
||||
}
|
||||
);
|
||||
const postBackend = (args) => fetch(
|
||||
args.route,
|
||||
{
|
||||
|
|
@ -22,6 +36,7 @@ const postBackend = (args) => fetch(
|
|||
);
|
||||
const traiteReponseBackendWCSelonCodesHTTP = (corpsReponse, schemaReponse) => z(corpsReponse).with({ body: N.select(), status: 400 }, estWCError, leveBadRequestError).with({ body: N.select(), status: 401 }, estWCError, leveUnauthorizedError).with({ body: N.select(), status: 404 }, estWCError, leveNotFoundError).with(N._, (corpsOkInconnu) => parse(schemaReponse, corpsOkInconnu)).otherwise((e) => x(e, ErreurInconnue, leveErreur));
|
||||
export {
|
||||
getBackend as g,
|
||||
postBackend as p,
|
||||
traiteReponseBackendWCSelonCodesHTTP as t
|
||||
};
|
||||
|
|
|
|||
|
|
@ -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 { estWCError } from \"./schemas/erreurs.ts\";\n\ntype ArgumentsPostBackendWC = {\n /** Le corps de la requête (ses arguments). */\n corps: BodyInit;\n /** Une chaîne de caractères généré par le backend et à joindre à chaque requête pour l'authentifier. */\n nonce: string;\n /** La route, ou chemin, de l'API à demander au backend. */\n route: string;\n};\n\nexport const postBackend = (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 = <R, S extends GenericSchema<R>>(\n corpsReponse: unknown,\n schemaReponse: S,\n): R =>\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<S>(schemaReponse, corpsOkInconnu))\n // Réponses inconnues\n .otherwise(e => pipe(e, ErreurInconnue, leveErreur<UnknownError>));\n"],"names":["match","P","pipe"],"mappings":";;;;;;;AAwBa,MAAA,cAAc,CAAC,SAC1B;AAAA,EACE,KAAK;AAAA,EACL;AAAA,IACE,MAAM,KAAK;AAAA,IACX,aAAa;AAAA,IACb,SAAS;AAAA,MACP,QAAQ;AAAA,MACR,gBAAgB;AAAA,MAChB,CAAC,eAAe,GAAG,KAAK;AAAA,IAC1B;AAAA,IACA,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,QAAQ,YAAY,QAAQ,GAAI;AAAA,EAClC;AACF;AAEW,MAAA,uCAAuC,CAClD,cACA,kBAEAA,EAAM,YAAY,EAEf,KAAK,EAAE,MAAMC,EAAE,OAAO,GAAG,QAAQ,IAAO,GAAA,YAAY,mBAAmB,EACvE,KAAK,EAAE,MAAMA,EAAE,UAAU,QAAQ,IAAA,GAAO,YAAY,qBAAqB,EACzE,KAAK,EAAE,MAAMA,EAAE,OAAA,GAAU,QAAQ,IAAI,GAAG,YAAY,iBAAiB,EAErE,KAAKA,EAAE,GAAG,CAAkB,mBAAA,MAAS,eAAe,cAAc,CAAC,EAEnE,UAAU,CAAA,MAAKC,EAAK,GAAG,gBAAgB,UAAwB,CAAC;"}
|
||||
{"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 ArgumentsGetBackendWC = {\n /** Une chaîne de caractères généré par le backend et à joindre à chaque requête pour l'authentifier. */\n nonce: string;\n /** La route, ou chemin, de l'API à demander au backend. */\n route: string;\n /** Paramètres de recherche (« query args ») à injecter dans l'URL de la requête. */\n searchParams: string;\n};\n\ntype ArgumentsPostBackendWC = {\n /** Le corps de la requête (ses arguments). */\n corps: BodyInit;\n /** Une chaîne de caractères généré par le backend et à joindre à chaque requête pour l'authentifier. */\n nonce: string;\n /** La route, ou chemin, de l'API à demander au backend. */\n route: string;\n};\n\nexport const getBackend = (args: ArgumentsGetBackendWC) =>\n fetch(\n `${args.route}?${args.searchParams}`,\n {\n credentials: \"same-origin\",\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n [ENTETE_WC_NONCE]: args.nonce,\n },\n method: \"GET\",\n mode: \"same-origin\",\n signal: AbortSignal.timeout(5000),\n },\n );\n\nexport const postBackend = (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 = <R, S extends GenericSchema<R>>(\n corpsReponse: unknown,\n schemaReponse: S,\n): R =>\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<S>(schemaReponse, corpsOkInconnu))\n // Réponses inconnues\n .otherwise(e => pipe(e, ErreurInconnue, leveErreur<UnknownError>));\n"],"names":["match","P","pipe"],"mappings":";;;;;;;AAiCa,MAAA,aAAa,CAAC,SACzB;AAAA,EACE,GAAG,KAAK,KAAK,IAAI,KAAK,YAAY;AAAA,EAClC;AAAA,IACE,aAAa;AAAA,IACb,SAAS;AAAA,MACP,QAAQ;AAAA,MACR,gBAAgB;AAAA,MAChB,CAAC,eAAe,GAAG,KAAK;AAAA,IAC1B;AAAA,IACA,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,QAAQ,YAAY,QAAQ,GAAI;AAAA,EAClC;AACF;AAEW,MAAA,cAAc,CAAC,SAC1B;AAAA,EACE,KAAK;AAAA,EACL;AAAA,IACE,MAAM,KAAK;AAAA,IACX,aAAa;AAAA,IACb,SAAS;AAAA,MACP,QAAQ;AAAA,MACR,gBAAgB;AAAA,MAChB,CAAC,eAAe,GAAG,KAAK;AAAA,IAC1B;AAAA,IACA,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,QAAQ,YAAY,QAAQ,GAAI;AAAA,EAClC;AACF;AAEW,MAAA,uCAAuC,CAClD,cACA,kBAEAA,EAAM,YAAY,EAEf,KAAK,EAAE,MAAMC,EAAE,OAAO,GAAG,QAAQ,IAAO,GAAA,YAAY,mBAAmB,EACvE,KAAK,EAAE,MAAMA,EAAE,UAAU,QAAQ,IAAA,GAAO,YAAY,qBAAqB,EACzE,KAAK,EAAE,MAAMA,EAAE,OAAA,GAAU,QAAQ,IAAI,GAAG,YAAY,iBAAiB,EAErE,KAAKA,EAAE,GAAG,CAAkB,mBAAA,MAAS,eAAe,cAAc,CAAC,EAEnE,UAAU,CAAA,MAAKC,EAAK,GAAG,gBAAgB,UAAwB,CAAC;"}
|
||||
|
|
@ -7,10 +7,12 @@ import { r as recupereElementDocumentEither } from "./utils.js";
|
|||
import "./erreurs.js";
|
||||
import "./exports.DMCTjIlP.js";
|
||||
import "./Either.wHNxn7Os.js";
|
||||
import "./index.CCa5Y_L9.js";
|
||||
import "./index.BgFo03XT.js";
|
||||
import "./messages2.js";
|
||||
import "./cart.js";
|
||||
import "./cart2.js";
|
||||
import "./adresses.js";
|
||||
import "./couts-livraison.js";
|
||||
const initialiseBoutonPanier = () => {
|
||||
const BOUTON_PANIER = x(
|
||||
recupereElementDocumentEither(SELECTEUR_BOUTON_PANIER),
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
{"version":3,"file":"scripts-bouton-panier.js","sources":["../../src/scripts/scripts-bouton-panier.ts"],"sourcesContent":["/**\n * Scripts pour la mise à jour trans-fenêtres/trans-onglets du Bouton du Panier.\n */\n\nimport { pipe } from \"remeda\";\n\nimport type { MessageMajBoutonPanier } from \"./lib/types/messages\";\n\nimport { ATTRIBUT_CONTIENT_ARTICLES, SELECTEUR_BOUTON_PANIER } from \"./constantes/dom.ts\";\nimport { NOM_CANAL_BOUTON_PANIER } from \"./constantes/messages.ts\";\nimport { recupereElementOuLeve } from \"./lib/dom.ts\";\nimport { valideMessageMajBoutonPanier } from \"./lib/messages.ts\";\nimport { recupereElementDocumentEither } from \"./lib/utils.ts\";\n\nconst initialiseBoutonPanier = (): void => {\n /** Le « Bouton » vers le Panier dont le texte est un indicateur du nombre de Produits dedans. */\n const BOUTON_PANIER: HTMLAnchorElement = pipe(\n recupereElementDocumentEither<HTMLAnchorElement>(SELECTEUR_BOUTON_PANIER),\n recupereElementOuLeve,\n );\n const CANAL_BOUTON_PANIER: BroadcastChannel = new BroadcastChannel(NOM_CANAL_BOUTON_PANIER);\n\n CANAL_BOUTON_PANIER.onmessage = (evenementMessage: MessageEvent<unknown>): void => {\n valideMessageMajBoutonPanier(evenementMessage)\n // Met à jour le Bouton du Panier\n .ifRight((message: MessageMajBoutonPanier) => {\n BOUTON_PANIER.textContent = `cart (${String(message.donnees.quantiteProduits)})`;\n BOUTON_PANIER.setAttribute(ATTRIBUT_CONTIENT_ARTICLES, String(message.donnees.quantiteProduits > 0));\n });\n };\n};\n\ndocument.addEventListener(\"DOMContentLoaded\", () => {\n initialiseBoutonPanier();\n});\n"],"names":["pipe"],"mappings":";;;;;;;;;;;;;AAcA,MAAM,yBAAyB,MAAY;AAEzC,QAAM,gBAAmCA;AAAAA,IACvC,8BAAiD,uBAAuB;AAAA,IACxE;AAAA,EAAA;AAEI,QAAA,sBAAwC,IAAI,iBAAiB,uBAAuB;AAEtE,sBAAA,YAAY,CAAC,qBAAkD;AACjF,iCAA6B,gBAAgB,EAE1C,QAAQ,CAAC,YAAoC;AAC5C,oBAAc,cAAc,SAAS,OAAO,QAAQ,QAAQ,gBAAgB,CAAC;AAC7E,oBAAc,aAAa,4BAA4B,OAAO,QAAQ,QAAQ,mBAAmB,CAAC,CAAC;AAAA,IAAA,CACpG;AAAA,EAAA;AAEP;AAEA,SAAS,iBAAiB,oBAAoB,MAAM;AAC3B;AACzB,CAAC;"}
|
||||
{"version":3,"file":"scripts-bouton-panier.js","sources":["../../src/scripts/scripts-bouton-panier.ts"],"sourcesContent":["/**\n * Scripts pour la mise à jour trans-fenêtres/trans-onglets du Bouton du Panier.\n */\n\nimport { pipe } from \"remeda\";\n\nimport type { MessageMajBoutonPanier } from \"./lib/types/messages\";\n\nimport { ATTRIBUT_CONTIENT_ARTICLES, SELECTEUR_BOUTON_PANIER } from \"./constantes/dom.ts\";\nimport { NOM_CANAL_BOUTON_PANIER } from \"./constantes/messages.ts\";\nimport { recupereElementOuLeve } from \"./lib/dom.ts\";\nimport { valideMessageMajBoutonPanier } from \"./lib/messages.ts\";\nimport { recupereElementDocumentEither } from \"./lib/utils.ts\";\n\nconst initialiseBoutonPanier = (): void => {\n /** Le « Bouton » vers le Panier dont le texte est un indicateur du nombre de Produits dedans. */\n const BOUTON_PANIER: HTMLAnchorElement = pipe(\n recupereElementDocumentEither<HTMLAnchorElement>(SELECTEUR_BOUTON_PANIER),\n recupereElementOuLeve,\n );\n const CANAL_BOUTON_PANIER: BroadcastChannel = new BroadcastChannel(NOM_CANAL_BOUTON_PANIER);\n\n CANAL_BOUTON_PANIER.onmessage = (evenementMessage: MessageEvent<unknown>): void => {\n valideMessageMajBoutonPanier(evenementMessage)\n // Met à jour le Bouton du Panier\n .ifRight((message: MessageMajBoutonPanier) => {\n BOUTON_PANIER.textContent = `cart (${String(message.donnees.quantiteProduits)})`;\n BOUTON_PANIER.setAttribute(ATTRIBUT_CONTIENT_ARTICLES, String(message.donnees.quantiteProduits > 0));\n });\n };\n};\n\ndocument.addEventListener(\"DOMContentLoaded\", () => {\n initialiseBoutonPanier();\n});\n"],"names":["pipe"],"mappings":";;;;;;;;;;;;;;;AAcA,MAAM,yBAAyB,MAAY;AAEzC,QAAM,gBAAmCA;AAAAA,IACvC,8BAAiD,uBAAuB;AAAA,IACxE;AAAA,EAAA;AAEI,QAAA,sBAAwC,IAAI,iBAAiB,uBAAuB;AAEtE,sBAAA,YAAY,CAAC,qBAAkD;AACjF,iCAA6B,gBAAgB,EAE1C,QAAQ,CAAC,YAAoC;AAC5C,oBAAc,cAAc,SAAS,OAAO,QAAQ,QAAQ,gBAAgB,CAAC;AAC7E,oBAAc,aAAa,4BAA4B,OAAO,QAAQ,QAAQ,mBAAmB,CAAC,CAAC;AAAA,IAAA,CACpG;AAAA,EAAA;AAEP;AAEA,SAAS,iBAAiB,oBAAoB,MAAM;AAC3B;AACzB,CAAC;"}
|
||||
|
|
@ -0,0 +1,56 @@
|
|||
import { z, N } from "./index.CeK6pfoJ.js";
|
||||
import { p as parse } from "./index.BgFo03XT.js";
|
||||
import { R as ROUTE_API_PRODUITS } from "./api.js";
|
||||
import { f as SELECTEUR_GRILLE_PRODUITS, g as SELECTEUR_BOUTON_PLUS_PRODUITS } from "./dom.js";
|
||||
import { l as leveServerError } from "./erreurs.js";
|
||||
import { e as estReponse500 } from "./gardes.js";
|
||||
import { g as getBackend, t as traiteReponseBackendWCSelonCodesHTTP } from "./reseau.js";
|
||||
import { W as WCProductsArgsSchema, a as WCProductsSchema } from "./products.js";
|
||||
import { a as recupereElementDansDocumentOuLeve } from "./utils.js";
|
||||
import { E as EitherAsync } from "./MaybeAsync.AE1jnxuc.js";
|
||||
import { E as Either } from "./Either.wHNxn7Os.js";
|
||||
import "./exports.DMCTjIlP.js";
|
||||
import "./chunk-7BKSRZNG.C39W3Wne.js";
|
||||
import "./erreurs2.js";
|
||||
import "./products2.js";
|
||||
import "./dom2.js";
|
||||
const ETATS_PAGE = _etats;
|
||||
recupereElementDansDocumentOuLeve(SELECTEUR_GRILLE_PRODUITS);
|
||||
const BOUTON_PLUS_DE_PRODUITS = recupereElementDansDocumentOuLeve(SELECTEUR_BOUTON_PLUS_PRODUITS);
|
||||
const initialisePageBoutique = () => {
|
||||
BOUTON_PLUS_DE_PRODUITS.addEventListener("click", () => {
|
||||
const args = {
|
||||
page: 1
|
||||
};
|
||||
Either.encase(() => parse(WCProductsArgsSchema, args)).map(
|
||||
async (args2) => {
|
||||
await EitherAsync(
|
||||
() => getBackend({
|
||||
nonce: ETATS_PAGE.nonce,
|
||||
route: ROUTE_API_PRODUITS,
|
||||
searchParams: new URLSearchParams(args2).toString()
|
||||
})
|
||||
).map((reponse) => {
|
||||
if (estReponse500(reponse)) leveServerError("500 Server Error");
|
||||
return reponse.json();
|
||||
}).map(
|
||||
(corpsReponse) => (
|
||||
// Traite tous les codes HTTPs possibles
|
||||
traiteReponseBackendWCSelonCodesHTTP(
|
||||
corpsReponse,
|
||||
WCProductsSchema
|
||||
)
|
||||
)
|
||||
).ifRight((donnees) => {
|
||||
console.debug(donnees);
|
||||
}).ifLeft((e) => {
|
||||
z(e).with({ issues: N.select(), name: "ValiError" }, (problemes) => console.error("ValiError", problemes)).otherwise((e2) => console.error("Autre", e2.name, e2));
|
||||
}).void();
|
||||
}
|
||||
);
|
||||
});
|
||||
};
|
||||
document.addEventListener("DOMContentLoaded", () => {
|
||||
initialisePageBoutique();
|
||||
});
|
||||
//# sourceMappingURL=scripts-page-boutique.js.map
|
||||
|
|
@ -0,0 +1 @@
|
|||
{"version":3,"file":"scripts-page-boutique.js","sources":["../../src/scripts/scripts-page-boutique.ts"],"sourcesContent":["/**\n * Scripts pour les fonctionnalités de la page Boutique.\n */\n\nimport { Either, EitherAsync } from \"purify-ts\";\nimport { match, P } from \"ts-pattern\";\nimport { parse, type ValiError } from \"valibot\";\n\nimport type { APIFetchErrors } from \"./lib/types/api/erreurs\";\nimport type { WCProducts, WCProductsArgs } from \"./lib/types/api/products\";\n\nimport { ROUTE_API_PRODUITS } from \"./constantes/api.ts\";\nimport { SELECTEUR_BOUTON_PLUS_PRODUITS, SELECTEUR_GRILLE_PRODUITS } from \"./constantes/dom.ts\";\nimport { leveServerError } from \"./lib/erreurs.ts\";\nimport { estReponse500 } from \"./lib/gardes.ts\";\nimport { getBackend, traiteReponseBackendWCSelonCodesHTTP } from \"./lib/reseau.ts\";\nimport { WCProductsArgsSchema, WCProductsSchema } from \"./lib/schemas/products.ts\";\nimport { recupereElementDansDocumentOuLeve } from \"./lib/utils.ts\";\n\n/** États utiles pour les scripts de la page. */\ntype EtatsPage = {\n /** Un nonce pour l'authentification de requêtes API vers le backend WooCommerce. */\n nonce: string;\n};\n\n// @ts-expect-error -- États injectés par le modèle PHP\n// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- États injectés par le modèle PHP\nconst ETATS_PAGE: EtatsPage = _etats;\n\n// Éléments d'intérêt\nconst GRILLE_PRODUITS: HTMLDivElement = recupereElementDansDocumentOuLeve(SELECTEUR_GRILLE_PRODUITS);\nconst BOUTON_PLUS_DE_PRODUITS: HTMLButtonElement = recupereElementDansDocumentOuLeve(SELECTEUR_BOUTON_PLUS_PRODUITS);\n\nconst initialisePageBoutique = (): void => {\n BOUTON_PLUS_DE_PRODUITS.addEventListener(\"click\", (): void => {\n const args: WCProductsArgs = {\n page: 1,\n };\n\n type APIProductsErrors =\n | APIFetchErrors\n | ValiError<typeof WCProductsArgsSchema>\n | ValiError<typeof WCProductsSchema>;\n\n // Réalise la requête et traite sa réponse\n Either\n // Valide les arguments de la requête\n .encase<ValiError<typeof WCProductsArgsSchema>, WCProductsArgs>(() => parse(WCProductsArgsSchema, args))\n .map(\n async (args: WCProductsArgs) => {\n // Réalise la requête\n await EitherAsync<APIProductsErrors, Response>(() =>\n getBackend({\n nonce: ETATS_PAGE.nonce,\n route: ROUTE_API_PRODUITS,\n searchParams: new URLSearchParams(args).toString(),\n })\n )\n .map((reponse: Response) => {\n // Traite le cas d'erreur 500\n if (estReponse500(reponse)) leveServerError(\"500 Server Error\");\n // Retourne le corps de la Réponse\n return reponse.json();\n })\n .map((corpsReponse: unknown) =>\n // Traite tous les codes HTTPs possibles\n traiteReponseBackendWCSelonCodesHTTP<WCProducts, typeof WCProductsSchema>(\n corpsReponse,\n WCProductsSchema,\n )\n )\n .ifRight((donnees: WCProducts) => {\n console.debug(donnees);\n // Met à jour le DOM\n })\n .ifLeft(e => {\n match(e)\n // TODO: Créer une méthode pour rapporter les problèmes de validation\n .with({ issues: P.select(), name: \"ValiError\" }, problemes => console.error(\"ValiError\", problemes))\n .otherwise(e => console.error(\"Autre\", e.name, e));\n })\n // Pas d'intérêt à récupérer le résultat\n .void();\n },\n );\n });\n};\n\ndocument.addEventListener(\"DOMContentLoaded\", (): void => {\n initialisePageBoutique();\n});\n"],"names":["args","match","P","e"],"mappings":";;;;;;;;;;;;;;;;AA2BA,MAAM,aAAwB;AAGU,kCAAkC,yBAAyB;AACnG,MAAM,0BAA6C,kCAAkC,8BAA8B;AAEnH,MAAM,yBAAyB,MAAY;AACjB,0BAAA,iBAAiB,SAAS,MAAY;AAC5D,UAAM,OAAuB;AAAA,MAC3B,MAAM;AAAA,IAAA;AASR,WAEG,OAA+D,MAAM,MAAM,sBAAsB,IAAI,CAAC,EACtG;AAAA,MACC,OAAOA,UAAyB;AAExB,cAAA;AAAA,UAAyC,MAC7C,WAAW;AAAA,YACT,OAAO,WAAW;AAAA,YAClB,OAAO;AAAA,YACP,cAAc,IAAI,gBAAgBA,KAAI,EAAE,SAAS;AAAA,UAAA,CAClD;AAAA,QAAA,EAEA,IAAI,CAAC,YAAsB;AAE1B,cAAI,cAAc,OAAO,EAAG,iBAAgB,kBAAkB;AAE9D,iBAAO,QAAQ;QAChB,CAAA,EACA;AAAA,UAAI,CAAC;AAAA;AAAA,YAEJ;AAAA,cACE;AAAA,cACA;AAAA,YACF;AAAA;AAAA,QAAA,EAED,QAAQ,CAAC,YAAwB;AAChC,kBAAQ,MAAM,OAAO;AAAA,QAAA,CAEtB,EACA,OAAO,CAAK,MAAA;AACLC,YAAA,CAAC,EAEJ,KAAK,EAAE,QAAQC,EAAE,OAAA,GAAU,MAAM,eAAe,CAAa,cAAA,QAAQ,MAAM,aAAa,SAAS,CAAC,EAClG,UAAU,CAAAC,OAAK,QAAQ,MAAM,SAASA,GAAE,MAAMA,EAAC,CAAC;AAAA,QAAA,CACpD,EAEA,KAAK;AAAA,MACV;AAAA,IAAA;AAAA,EACF,CACH;AACH;AAEA,SAAS,iBAAiB,oBAAoB,MAAY;AACjC;AACzB,CAAC;"}
|
||||
|
|
@ -1,9 +1,10 @@
|
|||
import { r } from "./chunk-RU7WR4KH.D5j7HXCF.js";
|
||||
import { u, c as recupereElementsDocumentEither, r as recupereElementDocumentEither, p, d as propEither } from "./utils.js";
|
||||
import { x } from "./chunk-7BKSRZNG.C39W3Wne.js";
|
||||
import { p as parse } from "./index.CCa5Y_L9.js";
|
||||
import { R as ROUTE_API_RETIRE_ARTICLE_PANIER, b as ROUTE_API_MAJ_ARTICLE_PANIER, c as ROUTE_API_MAJ_CLIENT } from "./api.js";
|
||||
import { f as SELECTEUR_ENTREES_PANIER, g as SELECTEUR_CONTENEUR_PANIER, h as SELECTEUR_SOUS_TOTAL_PANIER, i as SELECTEUR_TOTAL_PANIER, j as SELECTEUR_BOUTON_SEPARATION_ADRESSES, k as SELECTEUR_FORMULAIRE_PANIER, l as SELECTEUR_FORMULAIRE_LIVRAISON, m as SELECTEUR_FORMULAIRE_FACTURATION, n as SELECTEUR_BOUTON_ACTIONS_FORMULAIRE, o as ATTRIBUT_CLE_PANIER, p as SELECTEUR_BOUTON_SOUSTRACTION_QUANTITE, q as SELECTEUR_CHAMP_QUANTITE_LIGNE_PANIER, r as SELECTEUR_BOUTON_ADDITION_QUANTITE, s as SELECTEUR_BOUTON_SUPPRESSION_PANIER, A as ATTRIBUT_CONTIENT_ARTICLES, t as SELECTEUR_PRIX_LIGNE_PANIER, u as ATTRIBUT_HIDDEN, v as ATTRIBUT_DESACTIVE } from "./dom.js";
|
||||
import { z } from "./index.CeK6pfoJ.js";
|
||||
import { p as parse } from "./index.BgFo03XT.js";
|
||||
import { b as ROUTE_API_RETIRE_ARTICLE_PANIER, c as ROUTE_API_MAJ_ARTICLE_PANIER, d as ROUTE_API_MAJ_CLIENT } from "./api.js";
|
||||
import { h as SELECTEUR_ENTREES_PANIER, i as SELECTEUR_CONTENEUR_PANIER, j as SELECTEUR_SOUS_TOTAL_PRODUITS, k as SELECTEUR_SOUS_TOTAL_LIVRAISON_COUT, l as SELECTEUR_SOUS_TOTAL_LIVRAISON_PRESTATAIRE, m as SELECTEUR_TOTAL_PANIER, n as SELECTEUR_BOUTON_SEPARATION_ADRESSES, o as SELECTEUR_FORMULAIRE_PANIER, p as SELECTEUR_FORMULAIRE_LIVRAISON, q as SELECTEUR_FORMULAIRE_FACTURATION, r as SELECTEUR_BOUTON_ACTIONS_FORMULAIRE, s as ATTRIBUT_CLE_PANIER, t as SELECTEUR_BOUTON_SOUSTRACTION_QUANTITE, u as SELECTEUR_CHAMP_QUANTITE_LIGNE_PANIER, v as SELECTEUR_BOUTON_ADDITION_QUANTITE, w as SELECTEUR_BOUTON_SUPPRESSION_PANIER, A as ATTRIBUT_CONTIENT_ARTICLES, x as SELECTEUR_PRIX_LIGNE_PANIER, y as ATTRIBUT_HIDDEN, z as ATTRIBUT_DESACTIVE } from "./dom.js";
|
||||
import { N as NOM_CANAL_BOUTON_PANIER, a as NOM_CANAL_CONTENU_PANIER } from "./messages3.js";
|
||||
import { r as recupereElementOuLeve, a as recupereElementsAvecSelecteur, b as recupereElementAvecSelecteur } from "./dom2.js";
|
||||
import { l as leveServerError, r as reporteErreur } from "./erreurs.js";
|
||||
|
|
@ -17,10 +18,10 @@ import { W as WCStoreCartUpdateItemArgsSchema } from "./cart-update-item.js";
|
|||
import { M as Maybe, E as Either } from "./Either.wHNxn7Os.js";
|
||||
import "./exports.DMCTjIlP.js";
|
||||
import "./messages2.js";
|
||||
import "./index.CeK6pfoJ.js";
|
||||
import "./erreurs2.js";
|
||||
import "./cart2.js";
|
||||
import "./adresses.js";
|
||||
import "./couts-livraison.js";
|
||||
function n(...r2) {
|
||||
return u(Object.fromEntries, r2);
|
||||
}
|
||||
|
|
@ -32,8 +33,16 @@ const CONTENEUR_PANIER = x(
|
|||
recupereElementDocumentEither(SELECTEUR_CONTENEUR_PANIER),
|
||||
recupereElementOuLeve
|
||||
);
|
||||
const SOUS_TOTAL_PANIER = x(
|
||||
recupereElementDocumentEither(SELECTEUR_SOUS_TOTAL_PANIER),
|
||||
const SOUS_TOTAL_PRODUITS = x(
|
||||
recupereElementDocumentEither(SELECTEUR_SOUS_TOTAL_PRODUITS),
|
||||
recupereElementOuLeve
|
||||
);
|
||||
const SOUS_TOTAL_LIVRAISON_COUT = x(
|
||||
recupereElementDocumentEither(SELECTEUR_SOUS_TOTAL_LIVRAISON_COUT),
|
||||
recupereElementOuLeve
|
||||
);
|
||||
const SOUS_TOTAL_LIVRAISON_PRESTATAIRE = x(
|
||||
recupereElementDocumentEither(SELECTEUR_SOUS_TOTAL_LIVRAISON_PRESTATAIRE),
|
||||
recupereElementOuLeve
|
||||
);
|
||||
const TOTAL_PANIER = x(
|
||||
|
|
@ -252,7 +261,7 @@ const initialiseMajContenuPanier = () => {
|
|||
champQuantite.setAttribute("value", String(ligne.quantity));
|
||||
majEtatsActivationBoutons(entrees);
|
||||
});
|
||||
SOUS_TOTAL_PANIER.textContent = `${String(donnees.totalPanier)} €`;
|
||||
SOUS_TOTAL_PRODUITS.textContent = `${String(donnees.totalPanier)} €`;
|
||||
TOTAL_PANIER.textContent = `${String(donnees.totalPanier)} €`;
|
||||
});
|
||||
});
|
||||
|
|
@ -271,7 +280,6 @@ const initialiseMajFormulairesPanier = () => {
|
|||
FORMULAIRE_FACTURATION.setAttribute(ATTRIBUT_HIDDEN, "");
|
||||
recupereElementsAvecSelecteur(FORMULAIRE_FACTURATION)("input, select").ifRight(
|
||||
(champs) => champs.forEach((champ) => {
|
||||
console.debug(champ);
|
||||
champ.setAttribute(ATTRIBUT_DESACTIVE, "");
|
||||
champ.value = "";
|
||||
})
|
||||
|
|
@ -319,12 +327,17 @@ const initialiseBoutonActions = () => {
|
|||
x(
|
||||
// Récupère la Réponse
|
||||
await reponse.json(),
|
||||
r((a) => console.debug(a)),
|
||||
// Traite tous les codes HTTPs possibles
|
||||
(corpsReponse) => traiteReponseBackendWCSelonCodesHTTP(
|
||||
corpsReponse,
|
||||
WCStoreCartSchema
|
||||
)
|
||||
),
|
||||
r((donnees) => {
|
||||
const sousTotalLivraison = donnees.totals.total_shipping === "0" ? "Free" : `${String(donnees.totals.total_shipping)} €`;
|
||||
const sousTotalPrestataire = z(donnees.shipping_rates[0]?.shipping_rates[0]?.name).with("Mondial Relay - Livraison Point Relais (Gratuit)", () => "Mondial Relay - Pickup Point").otherwise(() => "");
|
||||
SOUS_TOTAL_LIVRAISON_COUT.textContent = sousTotalLivraison;
|
||||
SOUS_TOTAL_LIVRAISON_PRESTATAIRE.textContent = sousTotalPrestataire;
|
||||
})
|
||||
);
|
||||
});
|
||||
}
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -2,9 +2,9 @@ import { r } from "./chunk-RU7WR4KH.D5j7HXCF.js";
|
|||
import { r as recupereElementDocumentEither, c as recupereElementsDocumentEither, p } from "./utils.js";
|
||||
import { x } from "./chunk-7BKSRZNG.C39W3Wne.js";
|
||||
import { z, N } from "./index.CeK6pfoJ.js";
|
||||
import { p as parse } from "./index.CCa5Y_L9.js";
|
||||
import { d as ROUTE_API_AJOUTE_ARTICLE_PANIER, e as ENTETE_WC_NONCE } from "./api.js";
|
||||
import { w as SELECTEUR_BOUTON_AJOUT_PANIER, x as SELECTEUR_SELECTEUR_QUANTITE, y as SELECTEUR_LIENS_ONGLETS, z as SELECTEUR_SECTIONS_CONTENUS, B as ATTRIBUT_ARIA_SELECTED, u as ATTRIBUT_HIDDEN, v as ATTRIBUT_DESACTIVE } from "./dom.js";
|
||||
import { p as parse } from "./index.BgFo03XT.js";
|
||||
import { e as ROUTE_API_AJOUTE_ARTICLE_PANIER, f as ENTETE_WC_NONCE } from "./api.js";
|
||||
import { B as SELECTEUR_BOUTON_AJOUT_PANIER, C as SELECTEUR_SELECTEUR_QUANTITE, D as SELECTEUR_LIENS_ONGLETS, E as SELECTEUR_SECTIONS_CONTENUS, F as ATTRIBUT_ARIA_SELECTED, y as ATTRIBUT_HIDDEN, z as ATTRIBUT_DESACTIVE } from "./dom.js";
|
||||
import { r as recupereElementOuLeve, c as recupereElementsOuLeve } from "./dom2.js";
|
||||
import { l as leveServerError, a as leveBadRequestError, b as leveUnauthorizedError, c as leveNotFoundError, E as ErreurInconnue, d as leveErreur, r as reporteErreur } from "./erreurs.js";
|
||||
import { b as estHTMLSelectElement, e as estReponse500, a as estError } from "./gardes.js";
|
||||
|
|
@ -17,6 +17,8 @@ import "./exports.DMCTjIlP.js";
|
|||
import "./messages3.js";
|
||||
import "./messages2.js";
|
||||
import "./cart2.js";
|
||||
import "./adresses.js";
|
||||
import "./couts-livraison.js";
|
||||
const ETATS_PAGE = _etats;
|
||||
const deplieToutesSections = (ensembleLiensContenus) => {
|
||||
ensembleLiensContenus.forEach((ensemble) => {
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -99,7 +99,7 @@
|
|||
* 1. Permet d'éviter un agrandissement de l'élément avec plus de 9 articles.
|
||||
*/
|
||||
a {
|
||||
min-width: 9ch; /* 1 */
|
||||
min-width: 10ch; /* 1 */
|
||||
text-transform: lowercase;
|
||||
|
||||
&.lien-compte {
|
||||
|
|
|
|||
|
|
@ -212,15 +212,11 @@
|
|||
}
|
||||
|
||||
.panneau__sous-totaux {
|
||||
width: fit-content;
|
||||
width: min(30rem, 100%);
|
||||
margin: auto;
|
||||
padding: var(--espace-l) 0;
|
||||
padding: var(--espace-l) var(--espace-xl);
|
||||
text-align: center;
|
||||
|
||||
p + p {
|
||||
margin-top: var(--espace-l);
|
||||
}
|
||||
|
||||
&__ligne {
|
||||
display: flex;
|
||||
flex-flow: row nowrap;
|
||||
|
|
@ -228,15 +224,24 @@
|
|||
font-style: italic;
|
||||
|
||||
strong {
|
||||
text-align: right;
|
||||
text-transform: lowercase;
|
||||
}
|
||||
|
||||
&.sous-total strong {
|
||||
font-style: normal;
|
||||
&#sous-total-livraison {
|
||||
// Prestataire de la livraison
|
||||
p:last-of-type {
|
||||
text-align: right;
|
||||
|
||||
span {
|
||||
color: grey;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&__conditions-livraison {
|
||||
margin-top: var(--espace-l);
|
||||
font-size: 0.8rem;
|
||||
font-weight: 450;
|
||||
color: grey;
|
||||
|
|
|
|||
|
|
@ -38,6 +38,7 @@
|
|||
// En-têtes de panneau (« Your cart / Your info >)
|
||||
&__en-tete {
|
||||
position: sticky;
|
||||
z-index: 2;
|
||||
top: var(--menu-section-marges-bloc-debut);
|
||||
display: block;
|
||||
align-content: center;
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ export const ROUTE_API_AJOUTE_ARTICLE_PANIER = `/${CHEMIN_API_REST}/wc/store/car
|
|||
export const ROUTE_API_RETIRE_ARTICLE_PANIER = `/${CHEMIN_API_REST}/wc/store/cart/remove-item`;
|
||||
export const ROUTE_API_MAJ_ARTICLE_PANIER = `/${CHEMIN_API_REST}/wc/store/cart/update-item`;
|
||||
export const ROUTE_API_MAJ_CLIENT = `/${CHEMIN_API_REST}/wc/store/cart/update-customer`;
|
||||
export const ROUTE_API_PRODUITS = `/${CHEMIN_API_REST}/wc/store/products`;
|
||||
|
||||
// En-têtes
|
||||
export const ENTETE_WC_NONCE = "Nonce";
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ export const ATTRIBUT_CONTIENT_ARTICLES = "data-contient-articles";
|
|||
export const ATTRIBUT_DESACTIVE = "disabled";
|
||||
export const ATTRIBUT_HIDDEN = "hidden";
|
||||
export const ATTRIBUT_INDEX = "data-index";
|
||||
export const ATTRIBUT_PAGE = "data-page";
|
||||
|
||||
export const SELECTEUR_CONTENEUR_PANIER = "#page-panier";
|
||||
export const SELECTEUR_BOUTON_PANIER = ".compte-panier a[rel='cart']";
|
||||
|
|
@ -23,7 +24,9 @@ export const SELECTEUR_BOUTON_SOUSTRACTION_QUANTITE = "button.detail-produit__ac
|
|||
export const SELECTEUR_BOUTON_ADDITION_QUANTITE = "button.detail-produit__actions__addition";
|
||||
export const SELECTEUR_CHAMP_QUANTITE_LIGNE_PANIER = "input";
|
||||
export const SELECTEUR_PRIX_LIGNE_PANIER = ".detail-produit__nom-prix span";
|
||||
export const SELECTEUR_SOUS_TOTAL_PANIER = "#panneau-panier .panneau__sous-totaux__ligne strong";
|
||||
export const SELECTEUR_SOUS_TOTAL_PRODUITS = "#panneau-panier #sous-total-produits strong";
|
||||
export const SELECTEUR_SOUS_TOTAL_LIVRAISON_COUT = "#panneau-panier #sous-total-livraison strong";
|
||||
export const SELECTEUR_SOUS_TOTAL_LIVRAISON_PRESTATAIRE = "#panneau-panier #sous-total-livraison span";
|
||||
export const SELECTEUR_TOTAL_PANIER = "#panneau-panier .panneau__pied-de-page p span";
|
||||
export const SELECTEUR_BOUTON_SEPARATION_ADRESSES = "#separation-adresses";
|
||||
export const SELECTEUR_FORMULAIRE_PANIER = "#panneau-informations-client form";
|
||||
|
|
@ -34,3 +37,7 @@ export const SELECTEUR_BOUTON_ACTIONS_FORMULAIRE = "#panneau-informations-client
|
|||
// Accueil
|
||||
export const SELECTEUR_CONTENEUR_STORYTELLING = ".storytelling";
|
||||
export const SELECTEUR_IMAGES_STORYTELLING = ".storytelling__image";
|
||||
|
||||
// Boutique
|
||||
export const SELECTEUR_GRILLE_PRODUITS = "#page-boutique .grille-produits";
|
||||
export const SELECTEUR_BOUTON_PLUS_PRODUITS = "#page-boutique #bouton-plus-de-produits";
|
||||
|
|
|
|||
|
|
@ -0,0 +1,77 @@
|
|||
export const PRODUCTS_CONTEXTES = {
|
||||
EDIT: "edit",
|
||||
VIEW: "view",
|
||||
} as const;
|
||||
|
||||
export const DATE_COLUMN_VALUES = {
|
||||
DATE: "date",
|
||||
DATE_GMT: "date_gmt",
|
||||
MODIFIED: "modified",
|
||||
MODIFIED_GMT: "modified_gmt",
|
||||
} as const;
|
||||
|
||||
export const ORDER_VALUES = {
|
||||
ASC: "asc",
|
||||
DESC: "desc",
|
||||
} as const;
|
||||
|
||||
export const ORDERBY_VALUES = {
|
||||
COMMENT_COUNT: "comment_count",
|
||||
DATE: "date",
|
||||
ID: "id",
|
||||
INCLUDE: "include",
|
||||
MENU_ORDER: "menu_order",
|
||||
MODIFIED: "modified",
|
||||
POPULARITY: "popularity",
|
||||
PRICE: "price",
|
||||
RATING: "rating",
|
||||
SLUG: "slug",
|
||||
TITLE: "title",
|
||||
} as const;
|
||||
|
||||
export const PRODUCT_TYPES = {
|
||||
EXTERNAL: "external",
|
||||
GROUPED: "grouped",
|
||||
SIMPLE: "simple",
|
||||
VARIABLE: "variable",
|
||||
VARIATION: "variation",
|
||||
} as const;
|
||||
|
||||
export const CATEGORY_OPERATORS = {
|
||||
AND: "and",
|
||||
IN: "in",
|
||||
NOT_IN: "not_in",
|
||||
} as const;
|
||||
|
||||
export const TAG_OPERATORS = {
|
||||
AND: "and",
|
||||
IN: "in",
|
||||
NOT_IN: "not_in",
|
||||
} as const;
|
||||
|
||||
export const STOCK_STATUSES = {
|
||||
IN_STOCK: "instock",
|
||||
ON_BACK_ORDER: "onbackorder",
|
||||
OUT_OF_STOCK: "outofstock",
|
||||
} as const;
|
||||
|
||||
export const ATTRIBUTES_RELATIONS = {
|
||||
AND: "and",
|
||||
IN: "in",
|
||||
} as const;
|
||||
|
||||
export const CATALOG_VISIBILITIES = {
|
||||
ANY: "any",
|
||||
CATALOG: "catalog",
|
||||
HIDDEN: "hidden",
|
||||
SEARCH: "search",
|
||||
VISIBLE: "visible",
|
||||
} as const;
|
||||
|
||||
export const RATINGS = {
|
||||
1: 1,
|
||||
2: 2,
|
||||
3: 3,
|
||||
4: 4,
|
||||
5: 5,
|
||||
} as const;
|
||||
|
|
@ -13,6 +13,15 @@ import {
|
|||
} from "./erreurs.ts";
|
||||
import { estWCError } from "./schemas/erreurs.ts";
|
||||
|
||||
type ArgumentsGetBackendWC = {
|
||||
/** Une chaîne de caractères généré par le backend et à joindre à chaque requête pour l'authentifier. */
|
||||
nonce: string;
|
||||
/** La route, ou chemin, de l'API à demander au backend. */
|
||||
route: string;
|
||||
/** Paramètres de recherche (« query args ») à injecter dans l'URL de la requête. */
|
||||
searchParams: string;
|
||||
};
|
||||
|
||||
type ArgumentsPostBackendWC = {
|
||||
/** Le corps de la requête (ses arguments). */
|
||||
corps: BodyInit;
|
||||
|
|
@ -22,6 +31,22 @@ type ArgumentsPostBackendWC = {
|
|||
route: string;
|
||||
};
|
||||
|
||||
export const getBackend = (args: ArgumentsGetBackendWC) =>
|
||||
fetch(
|
||||
`${args.route}?${args.searchParams}`,
|
||||
{
|
||||
credentials: "same-origin",
|
||||
headers: {
|
||||
Accept: "application/json",
|
||||
"Content-Type": "application/json",
|
||||
[ENTETE_WC_NONCE]: args.nonce,
|
||||
},
|
||||
method: "GET",
|
||||
mode: "same-origin",
|
||||
signal: AbortSignal.timeout(5000),
|
||||
},
|
||||
);
|
||||
|
||||
export const postBackend = (args: ArgumentsPostBackendWC) =>
|
||||
fetch(
|
||||
args.route,
|
||||
|
|
|
|||
|
|
@ -6,7 +6,8 @@ export const WCStoreBillingAddressSchema = v.object({
|
|||
city: v.string(),
|
||||
company: v.string(),
|
||||
country: v.string(),
|
||||
email: v.pipe(v.string(), v.email()),
|
||||
// email: v.optional(v.pipe(v.string(), v.email())),
|
||||
email: v.string(),
|
||||
first_name: v.string(),
|
||||
last_name: v.string(),
|
||||
phone: v.string(),
|
||||
|
|
|
|||
|
|
@ -1,6 +1,8 @@
|
|||
import * as v from "valibot";
|
||||
|
||||
import { CATALOG_VISIBILITIES } from "../../constantes/cart.ts";
|
||||
import { WCStoreBillingAddressSchema, WCStoreShippingAddressSchema } from "./adresses.ts";
|
||||
import { WCStoreShippingRateSchema } from "./couts-livraison.ts";
|
||||
|
||||
export const WCStoreCartItemTotalsSchema = v.object({
|
||||
currency_code: v.string(),
|
||||
|
|
@ -62,21 +64,21 @@ export const WCStoreCartTotalsSchema = v.object({
|
|||
});
|
||||
|
||||
export const WCStoreCartSchema = v.object({
|
||||
billing_address: v.unknown(),
|
||||
billing_address: WCStoreBillingAddressSchema,
|
||||
coupons: v.unknown(),
|
||||
cross_sells: v.unknown(),
|
||||
errors: v.unknown(),
|
||||
extensions: v.unknown(),
|
||||
fees: v.unknown(),
|
||||
has_calculated_shipping: v.unknown(),
|
||||
has_calculated_shipping: v.boolean(),
|
||||
items: v.array(WCStoreCartItemSchema),
|
||||
items_count: v.pipe(v.number(), v.integer()),
|
||||
items_weight: v.unknown(),
|
||||
needs_payment: v.unknown(),
|
||||
needs_shipping: v.unknown(),
|
||||
items_weight: v.pipe(v.number(), v.integer()),
|
||||
needs_payment: v.boolean(),
|
||||
needs_shipping: v.boolean(),
|
||||
payment_methods: v.unknown(),
|
||||
payment_requirements: v.unknown(),
|
||||
shipping_address: v.unknown(),
|
||||
shipping_rates: v.unknown(),
|
||||
shipping_address: WCStoreShippingAddressSchema,
|
||||
shipping_rates: v.array(WCStoreShippingRateSchema),
|
||||
totals: WCStoreCartTotalsSchema,
|
||||
});
|
||||
|
|
|
|||
|
|
@ -0,0 +1,39 @@
|
|||
// Coûts de livraison ("shipping rates")
|
||||
|
||||
import * as v from "valibot";
|
||||
|
||||
import { WCStoreShippingAddressSchema } from "./adresses.ts";
|
||||
|
||||
export const WCStoreShippingRateItemSchema = v.object({
|
||||
key: v.string(),
|
||||
name: v.string(),
|
||||
quantity: v.number(),
|
||||
});
|
||||
|
||||
export const WCStoreShippingRateShippingRateSchema = 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(),
|
||||
delivery_time: v.string(),
|
||||
description: v.string(),
|
||||
instance_id: v.number(),
|
||||
meta_data: v.array(v.unknown()),
|
||||
method_id: v.string(),
|
||||
name: v.string(),
|
||||
price: v.string(),
|
||||
rate_id: v.string(),
|
||||
selected: v.boolean(),
|
||||
taxes: v.string(),
|
||||
});
|
||||
|
||||
export const WCStoreShippingRateSchema = v.object({
|
||||
destination: v.omit(WCStoreShippingAddressSchema, ["company", "first_name", "last_name", "phone"]),
|
||||
items: v.array(WCStoreShippingRateItemSchema),
|
||||
name: v.string(),
|
||||
package_id: v.number(),
|
||||
shipping_rates: v.array(WCStoreShippingRateShippingRateSchema),
|
||||
});
|
||||
|
|
@ -0,0 +1,121 @@
|
|||
import * as v from "valibot";
|
||||
|
||||
import {
|
||||
ATTRIBUTES_RELATIONS,
|
||||
CATALOG_VISIBILITIES,
|
||||
CATEGORY_OPERATORS,
|
||||
DATE_COLUMN_VALUES,
|
||||
ORDER_VALUES,
|
||||
ORDERBY_VALUES,
|
||||
PRODUCT_TYPES,
|
||||
PRODUCTS_CONTEXTES,
|
||||
RATINGS,
|
||||
STOCK_STATUSES,
|
||||
TAG_OPERATORS,
|
||||
} from "../../constantes/products.ts";
|
||||
|
||||
export const WCProductsArgsSchema = v.object({
|
||||
// Date ISO8601
|
||||
after: v.optional(v.optional(v.string())),
|
||||
attribute_relation: v.optional(v.enum(ATTRIBUTES_RELATIONS)),
|
||||
attributes: v.optional(v.array(v.unknown())),
|
||||
// Date ISO8601
|
||||
before: v.optional(v.string()),
|
||||
catalog_visibility: v.optional(v.enum(CATALOG_VISIBILITIES)),
|
||||
category: v.optional(v.string()),
|
||||
category_operator: v.optional(v.enum(CATEGORY_OPERATORS)),
|
||||
context: v.optional(v.enum(PRODUCTS_CONTEXTES)),
|
||||
date_column: v.optional(v.enum(DATE_COLUMN_VALUES)),
|
||||
exclude: v.optional(v.array(v.pipe(v.number(), v.integer()))),
|
||||
featured: v.optional(v.boolean()),
|
||||
include: v.optional(v.array(v.pipe(v.number(), v.integer()))),
|
||||
max_price: v.optional(v.string()),
|
||||
min_price: v.optional(v.string()),
|
||||
offset: v.optional(v.number()),
|
||||
on_sale: v.optional(v.boolean()),
|
||||
order: v.optional(v.enum(ORDER_VALUES)),
|
||||
orderby: v.optional(v.enum(ORDERBY_VALUES)),
|
||||
page: v.optional(v.pipe(v.number(), v.minValue(1))),
|
||||
parent: v.optional(v.array(v.pipe(v.number(), v.integer()))),
|
||||
parent_exclude: v.optional(v.array(v.pipe(v.number(), v.integer()))),
|
||||
per_page: v.optional(v.pipe(v.number(), v.minValue(0), v.maxValue(100))),
|
||||
rating: v.optional(v.array(v.enum(RATINGS))),
|
||||
search: v.optional(v.string()),
|
||||
sku: v.optional(v.string()),
|
||||
slug: v.optional(v.string()),
|
||||
stock_status: v.optional(v.array(v.enum(STOCK_STATUSES))),
|
||||
tag: v.optional(v.string()),
|
||||
tag_operator: v.optional(v.enum(TAG_OPERATORS)),
|
||||
type: v.optional(v.enum(PRODUCT_TYPES)),
|
||||
});
|
||||
|
||||
export const WCProductSchema = v.object({
|
||||
add_to_cart: v.object({
|
||||
description: v.string(),
|
||||
maximum: v.number(),
|
||||
minimum: v.number(),
|
||||
multiple_of: v.number(),
|
||||
text: v.string(),
|
||||
url: v.string(),
|
||||
}),
|
||||
attributes: v.array(v.unknown()),
|
||||
average_rating: v.string(),
|
||||
categories: v.array(v.object({
|
||||
id: v.number(),
|
||||
link: v.string(),
|
||||
name: v.string(),
|
||||
slug: v.string(),
|
||||
})),
|
||||
description: v.string(),
|
||||
extensions: v.unknown(),
|
||||
has_options: v.boolean(),
|
||||
id: v.number(),
|
||||
images: v.array(v.object({
|
||||
alt: v.string(),
|
||||
id: v.number(),
|
||||
name: v.string(),
|
||||
sizes: v.string(),
|
||||
src: v.string(),
|
||||
srcset: v.string(),
|
||||
thumbnail: v.string(),
|
||||
})),
|
||||
is_in_stock: v.boolean(),
|
||||
is_on_backorder: v.boolean(),
|
||||
is_purchasable: v.boolean(),
|
||||
low_stock_remaining: v.union([v.string(), v.null()]),
|
||||
name: v.string(),
|
||||
on_sale: v.boolean(),
|
||||
parent: v.number(),
|
||||
permalink: v.string(),
|
||||
price_html: v.string(),
|
||||
prices: 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(),
|
||||
price: v.string(),
|
||||
price_range: v.optional(v.unknown()),
|
||||
regular_price: v.string(),
|
||||
sale_price: v.string(),
|
||||
}),
|
||||
review_count: v.number(),
|
||||
short_description: v.string(),
|
||||
sku: v.string(),
|
||||
slug: v.string(),
|
||||
sold_individually: v.boolean(),
|
||||
tags: v.array(v.string()),
|
||||
type: v.string(),
|
||||
variation: v.unknown(),
|
||||
variations: v.array(v.object({
|
||||
attributes: v.array(v.object({
|
||||
name: v.string(),
|
||||
value: v.string(),
|
||||
})),
|
||||
id: v.number(),
|
||||
})),
|
||||
});
|
||||
|
||||
export const WCProductsSchema = v.array(WCProductSchema);
|
||||
|
|
@ -1,6 +1,14 @@
|
|||
import type { InferOutput } from "valibot";
|
||||
|
||||
import type { BadRequestError, NotFoundError, ServerError, UnauthorizedError, UnknownError } from "../../erreurs.ts";
|
||||
import type { WCErrorBodySchema, WCErrorSchema } from "../../schemas/erreurs.ts";
|
||||
|
||||
export type WCErrorBody = InferOutput<typeof WCErrorBodySchema>;
|
||||
export type WCError = InferOutput<typeof WCErrorSchema>;
|
||||
|
||||
export type APIFetchErrors =
|
||||
| BadRequestError
|
||||
| NotFoundError
|
||||
| ServerError
|
||||
| UnauthorizedError
|
||||
| UnknownError;
|
||||
|
|
|
|||
8
web/app/themes/haiku-atelier-2024/src/scripts/lib/types/api/products.d.ts
vendored
Normal file
8
web/app/themes/haiku-atelier-2024/src/scripts/lib/types/api/products.d.ts
vendored
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
import type { InferOutput } from "valibot";
|
||||
|
||||
import type { WCProductsArgsSchema, WCProductSchema, WCProductsSchema } from "../../schemas/products.ts";
|
||||
|
||||
export type WCProduct = InferOutput<typeof WCProductSchema>;
|
||||
export type WCProducts = InferOutput<typeof WCProductsSchema>;
|
||||
|
||||
export type WCProductsArgs = InferOutput<typeof WCProductsArgsSchema>;
|
||||
|
|
@ -0,0 +1,91 @@
|
|||
/**
|
||||
* Scripts pour les fonctionnalités de la page Boutique.
|
||||
*/
|
||||
|
||||
import { Either, EitherAsync } from "purify-ts";
|
||||
import { match, P } from "ts-pattern";
|
||||
import { parse, type ValiError } from "valibot";
|
||||
|
||||
import type { APIFetchErrors } from "./lib/types/api/erreurs";
|
||||
import type { WCProducts, WCProductsArgs } from "./lib/types/api/products";
|
||||
|
||||
import { ROUTE_API_PRODUITS } from "./constantes/api.ts";
|
||||
import { SELECTEUR_BOUTON_PLUS_PRODUITS, SELECTEUR_GRILLE_PRODUITS } from "./constantes/dom.ts";
|
||||
import { leveServerError } from "./lib/erreurs.ts";
|
||||
import { estReponse500 } from "./lib/gardes.ts";
|
||||
import { getBackend, traiteReponseBackendWCSelonCodesHTTP } from "./lib/reseau.ts";
|
||||
import { WCProductsArgsSchema, WCProductsSchema } from "./lib/schemas/products.ts";
|
||||
import { recupereElementDansDocumentOuLeve } from "./lib/utils.ts";
|
||||
|
||||
/** États utiles pour les scripts de la page. */
|
||||
type EtatsPage = {
|
||||
/** Un nonce pour l'authentification de requêtes API vers le backend WooCommerce. */
|
||||
nonce: string;
|
||||
};
|
||||
|
||||
// @ts-expect-error -- États injectés par le modèle PHP
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- États injectés par le modèle PHP
|
||||
const ETATS_PAGE: EtatsPage = _etats;
|
||||
|
||||
// Éléments d'intérêt
|
||||
const GRILLE_PRODUITS: HTMLDivElement = recupereElementDansDocumentOuLeve(SELECTEUR_GRILLE_PRODUITS);
|
||||
const BOUTON_PLUS_DE_PRODUITS: HTMLButtonElement = recupereElementDansDocumentOuLeve(SELECTEUR_BOUTON_PLUS_PRODUITS);
|
||||
|
||||
const initialisePageBoutique = (): void => {
|
||||
BOUTON_PLUS_DE_PRODUITS.addEventListener("click", (): void => {
|
||||
const args: WCProductsArgs = {
|
||||
page: 1,
|
||||
};
|
||||
|
||||
type APIProductsErrors =
|
||||
| APIFetchErrors
|
||||
| ValiError<typeof WCProductsArgsSchema>
|
||||
| ValiError<typeof WCProductsSchema>;
|
||||
|
||||
// Réalise la requête et traite sa réponse
|
||||
Either
|
||||
// Valide les arguments de la requête
|
||||
.encase<ValiError<typeof WCProductsArgsSchema>, WCProductsArgs>(() => parse(WCProductsArgsSchema, args))
|
||||
.map(
|
||||
async (args: WCProductsArgs) => {
|
||||
// Réalise la requête
|
||||
await EitherAsync<APIProductsErrors, Response>(() =>
|
||||
getBackend({
|
||||
nonce: ETATS_PAGE.nonce,
|
||||
route: ROUTE_API_PRODUITS,
|
||||
searchParams: new URLSearchParams(args).toString(),
|
||||
})
|
||||
)
|
||||
.map((reponse: Response) => {
|
||||
// Traite le cas d'erreur 500
|
||||
if (estReponse500(reponse)) leveServerError("500 Server Error");
|
||||
// Retourne le corps de la Réponse
|
||||
return reponse.json();
|
||||
})
|
||||
.map((corpsReponse: unknown) =>
|
||||
// Traite tous les codes HTTPs possibles
|
||||
traiteReponseBackendWCSelonCodesHTTP<WCProducts, typeof WCProductsSchema>(
|
||||
corpsReponse,
|
||||
WCProductsSchema,
|
||||
)
|
||||
)
|
||||
.ifRight((donnees: WCProducts) => {
|
||||
console.debug(donnees);
|
||||
// Met à jour le DOM
|
||||
})
|
||||
.ifLeft(e => {
|
||||
match(e)
|
||||
// TODO: Créer une méthode pour rapporter les problèmes de validation
|
||||
.with({ issues: P.select(), name: "ValiError" }, problemes => console.error("ValiError", problemes))
|
||||
.otherwise(e => console.error("Autre", e.name, e));
|
||||
})
|
||||
// Pas d'intérêt à récupérer le résultat
|
||||
.void();
|
||||
},
|
||||
);
|
||||
});
|
||||
};
|
||||
|
||||
document.addEventListener("DOMContentLoaded", (): void => {
|
||||
initialisePageBoutique();
|
||||
});
|
||||
|
|
@ -1,5 +1,6 @@
|
|||
import { Either, Maybe } from "purify-ts";
|
||||
import { fromEntries, pipe, prop, tap } from "remeda";
|
||||
import { match } from "ts-pattern";
|
||||
import { parse, type ValiError } from "valibot";
|
||||
|
||||
import type { MessageMajContenuPanierSchema } from "./lib/schemas/messages.ts";
|
||||
|
|
@ -31,7 +32,9 @@ import {
|
|||
SELECTEUR_FORMULAIRE_LIVRAISON,
|
||||
SELECTEUR_FORMULAIRE_PANIER,
|
||||
SELECTEUR_PRIX_LIGNE_PANIER,
|
||||
SELECTEUR_SOUS_TOTAL_PANIER,
|
||||
SELECTEUR_SOUS_TOTAL_LIVRAISON_COUT,
|
||||
SELECTEUR_SOUS_TOTAL_LIVRAISON_PRESTATAIRE,
|
||||
SELECTEUR_SOUS_TOTAL_PRODUITS,
|
||||
SELECTEUR_TOTAL_PANIER,
|
||||
} from "./constantes/dom.ts";
|
||||
import { NOM_CANAL_BOUTON_PANIER, NOM_CANAL_CONTENU_PANIER } from "./constantes/messages.ts";
|
||||
|
|
@ -76,8 +79,16 @@ const CONTENEUR_PANIER: HTMLElement = pipe(
|
|||
recupereElementDocumentEither<HTMLElement>(SELECTEUR_CONTENEUR_PANIER),
|
||||
recupereElementOuLeve,
|
||||
);
|
||||
const SOUS_TOTAL_PANIER: HTMLElement = pipe(
|
||||
recupereElementDocumentEither<HTMLParagraphElement>(SELECTEUR_SOUS_TOTAL_PANIER),
|
||||
const SOUS_TOTAL_PRODUITS: HTMLElement = pipe(
|
||||
recupereElementDocumentEither<HTMLParagraphElement>(SELECTEUR_SOUS_TOTAL_PRODUITS),
|
||||
recupereElementOuLeve,
|
||||
);
|
||||
const SOUS_TOTAL_LIVRAISON_COUT: HTMLElement = pipe(
|
||||
recupereElementDocumentEither<HTMLElement>(SELECTEUR_SOUS_TOTAL_LIVRAISON_COUT),
|
||||
recupereElementOuLeve,
|
||||
);
|
||||
const SOUS_TOTAL_LIVRAISON_PRESTATAIRE: HTMLSpanElement = pipe(
|
||||
recupereElementDocumentEither<HTMLSpanElement>(SELECTEUR_SOUS_TOTAL_LIVRAISON_PRESTATAIRE),
|
||||
recupereElementOuLeve,
|
||||
);
|
||||
const TOTAL_PANIER: HTMLParagraphElement = pipe(
|
||||
|
|
@ -398,7 +409,7 @@ const initialiseMajContenuPanier = (): void => {
|
|||
});
|
||||
|
||||
// Met à jour les totaux du Panier
|
||||
SOUS_TOTAL_PANIER.textContent = `${String(donnees.totalPanier)} €`;
|
||||
SOUS_TOTAL_PRODUITS.textContent = `${String(donnees.totalPanier)} €`;
|
||||
TOTAL_PANIER.textContent = `${String(donnees.totalPanier)} €`;
|
||||
});
|
||||
});
|
||||
|
|
@ -426,7 +437,6 @@ const initialiseMajFormulairesPanier = (): void => {
|
|||
recupereElementsAvecSelecteur(FORMULAIRE_FACTURATION)<HTMLInputElement | HTMLSelectElement>("input, select")
|
||||
.ifRight(champs =>
|
||||
champs.forEach(champ => {
|
||||
console.debug(champ);
|
||||
champ.setAttribute(ATTRIBUT_DESACTIVE, "");
|
||||
champ.value = "";
|
||||
})
|
||||
|
|
@ -445,6 +455,7 @@ const initialiseBoutonActions = (): void => {
|
|||
BOUTON_ACTIONS_FORMULAIRE.textContent = "Check-out";
|
||||
})
|
||||
.ifJust(() => {
|
||||
// Récupère les données du Formulaire
|
||||
// @ts-expect-error -- Problème de typage de la librairie DOM
|
||||
const donneesFormulaireLivraison: Record<string, string> = pipe(
|
||||
new FormData(FORMULAIRE_PANIER),
|
||||
|
|
@ -453,6 +464,7 @@ const initialiseBoutonActions = (): void => {
|
|||
fromEntries,
|
||||
);
|
||||
|
||||
// Transforme les données brutes en arguments de requête auprès du backend
|
||||
const argumentsFormulaire: WCStoreCartUpdateCustomerArgs = {
|
||||
shipping_address: {
|
||||
address_1: donneesFormulaireLivraison["livraison-adresse"] ?? "",
|
||||
|
|
@ -468,7 +480,9 @@ const initialiseBoutonActions = (): void => {
|
|||
},
|
||||
};
|
||||
|
||||
// Réalise la requête et traite sa réponse
|
||||
Either
|
||||
// Valide les arguments de la requête
|
||||
.encase<ValiError<typeof WCStoreCartUpdateCustomerArgsSchema>, WCStoreCartUpdateCustomerArgs>(() =>
|
||||
parse(WCStoreCartUpdateCustomerArgsSchema, argumentsFormulaire)
|
||||
)
|
||||
|
|
@ -486,13 +500,23 @@ const initialiseBoutonActions = (): void => {
|
|||
pipe(
|
||||
// Récupère la Réponse
|
||||
await reponse.json(),
|
||||
tap(a => console.debug(a)),
|
||||
// Traite tous les codes HTTPs possibles
|
||||
(corpsReponse: unknown) =>
|
||||
traiteReponseBackendWCSelonCodesHTTP<WCStoreCart, typeof WCStoreCartSchema>(
|
||||
corpsReponse,
|
||||
WCStoreCartSchema,
|
||||
),
|
||||
tap((donnees: WCStoreCart) => {
|
||||
const sousTotalLivraison = donnees.totals.total_shipping === "0"
|
||||
? "Free"
|
||||
: `${String(donnees.totals.total_shipping)} €`;
|
||||
const sousTotalPrestataire = match(donnees.shipping_rates[0]?.shipping_rates[0]?.name)
|
||||
.with("Mondial Relay - Livraison Point Relais (Gratuit)", () => "Mondial Relay - Pickup Point")
|
||||
.otherwise(() => "");
|
||||
|
||||
SOUS_TOTAL_LIVRAISON_COUT.textContent = sousTotalLivraison;
|
||||
SOUS_TOTAL_LIVRAISON_PRESTATAIRE.textContent = sousTotalPrestataire;
|
||||
}),
|
||||
);
|
||||
});
|
||||
},
|
||||
|
|
|
|||
|
|
@ -1,10 +1,35 @@
|
|||
{% extends "base.twig" %}
|
||||
|
||||
{% block head %}
|
||||
<script>
|
||||
// Injection d'états pour les Scripts de la page.
|
||||
|
||||
/**
|
||||
* @typedef {Object} Etats - États utiles pour les scripts de la page.
|
||||
* @property {string} nonce - Un nonce pour l'authentification de requêtes API.
|
||||
*/
|
||||
|
||||
/** @type {Etats} */
|
||||
const _etats = {
|
||||
nonce: "{{ nonce_wc }}",
|
||||
};
|
||||
</script>
|
||||
{% endblock head %}
|
||||
|
||||
{% block contenu %}
|
||||
{# Menu avec les catégories de produits #}
|
||||
{% include "parts/menu-categories-produits.twig" %}
|
||||
|
||||
<main>
|
||||
<main id="page-boutique">
|
||||
{% include "parts/pages/shop/grille-produits.twig" %}
|
||||
|
||||
<div class="actions">
|
||||
<button
|
||||
id="bouton-plus-de-produits"
|
||||
type="button"
|
||||
>
|
||||
Show more products
|
||||
</button>
|
||||
</div>
|
||||
</main>
|
||||
{% endblock contenu %}
|
||||
|
|
|
|||
|
|
@ -1,15 +1,17 @@
|
|||
<header id="en-tete">
|
||||
<section class="logo">
|
||||
<figure>
|
||||
<picture>
|
||||
<img
|
||||
alt="Haiku Atelier's Logo"
|
||||
height="25.6"
|
||||
src="{{ site.theme.link }}/assets/img/logos/logo-lines.svg"
|
||||
width="80"
|
||||
/>
|
||||
</picture>
|
||||
</figure>
|
||||
<a href="{{ pages.home.lien }}">
|
||||
<figure>
|
||||
<picture>
|
||||
<img
|
||||
alt="Haiku Atelier's Logo"
|
||||
height="25.6"
|
||||
src="{{ site.theme.link }}/assets/img/logos/logo-lines.svg"
|
||||
width="80"
|
||||
/>
|
||||
</picture>
|
||||
</figure>
|
||||
</a>
|
||||
</section>
|
||||
|
||||
{# TODO: Utiliser un Menu WordPress #}
|
||||
|
|
|
|||
|
|
@ -124,12 +124,25 @@
|
|||
</div>
|
||||
|
||||
<div class="panneau__sous-totaux">
|
||||
<p class="panneau__sous-totaux__ligne sous-total">
|
||||
Subtotal: <strong>{{ sous_total_panier }} €</strong>
|
||||
</p>
|
||||
<p class="panneau__sous-totaux__ligne">
|
||||
Shipping: <strong>Enter your delivery address.</strong>
|
||||
</p>
|
||||
<div
|
||||
class="panneau__sous-totaux__ligne"
|
||||
id="sous-total-produits"
|
||||
>
|
||||
<p>Subtotal:</p>
|
||||
<p><strong>{{ sous_total_panier }} €</strong></p>
|
||||
</div>
|
||||
|
||||
<div
|
||||
class="panneau__sous-totaux__ligne"
|
||||
id="sous-total-livraison"
|
||||
>
|
||||
<p>Shipping:</p>
|
||||
<p>
|
||||
<strong>Enter your delivery address</strong>
|
||||
<br />
|
||||
<span> </span>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<p class="panneau__sous-totaux__conditions-livraison">
|
||||
Belgium and France: free shipping.<br />
|
||||
|
|
|
|||
|
|
@ -1,4 +1,7 @@
|
|||
<div class="grille-produits">
|
||||
<div
|
||||
class="grille-produits"
|
||||
data-page="1"
|
||||
>
|
||||
{% if produits|length > 0 %}
|
||||
{% for produit in produits %}
|
||||
{# TODO: Trouver une meilleure arborescence et des noms de classe #}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue