2024-11-27

This commit is contained in:
gcch 2024-11-27 13:36:49 +01:00
commit fb2f8372f2
111 changed files with 922 additions and 958 deletions

40
.env.example Normal file
View file

@ -0,0 +1,40 @@
# Base de données
DB_HOST=""
DB_NAME=""
DB_USER=""
DB_PASSWORD=""
DB_PREFIX=""
# Node (development/production)
NODE_ENV="development"
# WordPress
WP_ENV="development"
WP_HOME="${DDEV_PRIMARY_URL}"
WP_SITEURL="${DDEV_PRIMARY_URL}/wp"
# WooCommerce
WOOCOMMERCE_API_CONSUMER_KEY=""
WOOCOMMERCE_API_CONSUMER_SECRET=""
# Stripe
STRIPE_API_SECRET=""
STRIPE_API_PUBLISHABLE=""
# Email
WP_SMTP_HOST=""
WP_SMTP_USERNAME=""
WP_SMTP_PASSWORD=""
WP_SMTP_PORT=587
WP_SMTP_PROTOCOL=tls
WP_SMTP_TIMEOUT=10
WP_SMTP_FORCEFROM=""
WP_SMTP_FORCEFROMNAME=""
# Redis
WP_REDIS_HOST=""
WP_REDIS_PASSWORD=""
# GlitchTip
VITE_URL=""
VITE_GLITCHTIP_NSD=""

View file

@ -3,11 +3,10 @@
- Page Panier
- [-] Bouton « Réinitialiser » pour les Articles
- [-] Bouton « Réinitialiser » pour les Adresses
- Réinitialiser l'étape "Livraison" au changement d'adresse
- Changer le texte du bouton à « Calculate shipping »
- Réintialiser le Shipping lors de la modification du Panier
- Emails
- Gestion des erreurs sur le Panier
- Ajouter une flèche pour revenir en haut de la page
- Menu Mobile
- Reprendre pour suivre la maquette initiale
- Virer les ressources inutiles WooCommerce sur la page Panier

68
composer.lock generated
View file

@ -646,16 +646,16 @@
},
{
"name": "illuminate/collections",
"version": "v11.34.1",
"version": "v11.34.2",
"source": {
"type": "git",
"url": "https://github.com/illuminate/collections.git",
"reference": "fd8a4b0a0785155233250671ceb0e5f488b535df"
"reference": "fd2103ddc121449a7926fc34a9d220e5b88183c1"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/illuminate/collections/zipball/fd8a4b0a0785155233250671ceb0e5f488b535df",
"reference": "fd8a4b0a0785155233250671ceb0e5f488b535df",
"url": "https://api.github.com/repos/illuminate/collections/zipball/fd2103ddc121449a7926fc34a9d220e5b88183c1",
"reference": "fd2103ddc121449a7926fc34a9d220e5b88183c1",
"shasum": ""
},
"require": {
@ -697,11 +697,11 @@
"issues": "https://github.com/laravel/framework/issues",
"source": "https://github.com/laravel/framework"
},
"time": "2024-11-21T16:28:56+00:00"
"time": "2024-11-27T14:51:56+00:00"
},
{
"name": "illuminate/conditionable",
"version": "v11.34.1",
"version": "v11.34.2",
"source": {
"type": "git",
"url": "https://github.com/illuminate/conditionable.git",
@ -747,7 +747,7 @@
},
{
"name": "illuminate/contracts",
"version": "v11.34.1",
"version": "v11.34.2",
"source": {
"type": "git",
"url": "https://github.com/illuminate/contracts.git",
@ -795,7 +795,7 @@
},
{
"name": "illuminate/macroable",
"version": "v11.34.1",
"version": "v11.34.2",
"source": {
"type": "git",
"url": "https://github.com/illuminate/macroable.git",
@ -841,16 +841,16 @@
},
{
"name": "illuminate/support",
"version": "v11.34.1",
"version": "v11.34.2",
"source": {
"type": "git",
"url": "https://github.com/illuminate/support.git",
"reference": "9b6b4f0d97b6af5b9232ab4e512181917df979a4"
"reference": "2b718a86571baed50fdc5d5748a846c2e58e07eb"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/illuminate/support/zipball/9b6b4f0d97b6af5b9232ab4e512181917df979a4",
"reference": "9b6b4f0d97b6af5b9232ab4e512181917df979a4",
"url": "https://api.github.com/repos/illuminate/support/zipball/2b718a86571baed50fdc5d5748a846c2e58e07eb",
"reference": "2b718a86571baed50fdc5d5748a846c2e58e07eb",
"shasum": ""
},
"require": {
@ -913,7 +913,7 @@
"issues": "https://github.com/laravel/framework/issues",
"source": "https://github.com/laravel/framework"
},
"time": "2024-11-26T14:56:35+00:00"
"time": "2024-11-27T14:58:17+00:00"
},
{
"name": "laravel/helpers",
@ -2362,16 +2362,16 @@
},
{
"name": "symfony/deprecation-contracts",
"version": "v3.5.0",
"version": "v3.5.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/deprecation-contracts.git",
"reference": "0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1"
"reference": "74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1",
"reference": "0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1",
"url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6",
"reference": "74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6",
"shasum": ""
},
"require": {
@ -2409,7 +2409,7 @@
"description": "A generic function and convention to trigger deprecation notices",
"homepage": "https://symfony.com",
"support": {
"source": "https://github.com/symfony/deprecation-contracts/tree/v3.5.0"
"source": "https://github.com/symfony/deprecation-contracts/tree/v3.5.1"
},
"funding": [
{
@ -2425,7 +2425,7 @@
"type": "tidelift"
}
],
"time": "2024-04-18T09:32:20+00:00"
"time": "2024-09-25T14:20:29+00:00"
},
{
"name": "symfony/polyfill-ctype",
@ -2993,16 +2993,16 @@
},
{
"name": "symfony/translation-contracts",
"version": "v3.5.0",
"version": "v3.5.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/translation-contracts.git",
"reference": "b9d2189887bb6b2e0367a9fc7136c5239ab9b05a"
"reference": "4667ff3bd513750603a09c8dedbea942487fb07c"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/translation-contracts/zipball/b9d2189887bb6b2e0367a9fc7136c5239ab9b05a",
"reference": "b9d2189887bb6b2e0367a9fc7136c5239ab9b05a",
"url": "https://api.github.com/repos/symfony/translation-contracts/zipball/4667ff3bd513750603a09c8dedbea942487fb07c",
"reference": "4667ff3bd513750603a09c8dedbea942487fb07c",
"shasum": ""
},
"require": {
@ -3051,7 +3051,7 @@
"standards"
],
"support": {
"source": "https://github.com/symfony/translation-contracts/tree/v3.5.0"
"source": "https://github.com/symfony/translation-contracts/tree/v3.5.1"
},
"funding": [
{
@ -3067,7 +3067,7 @@
"type": "tidelift"
}
],
"time": "2024-04-18T09:32:20+00:00"
"time": "2024-09-25T14:20:29+00:00"
},
{
"name": "symfony/uid",
@ -3520,15 +3520,15 @@
},
{
"name": "wpackagist-plugin/query-monitor",
"version": "3.16.4",
"version": "3.17.0",
"source": {
"type": "svn",
"url": "https://plugins.svn.wordpress.org/query-monitor/",
"reference": "tags/3.16.4"
"reference": "tags/3.17.0"
},
"dist": {
"type": "zip",
"url": "https://downloads.wordpress.org/plugin/query-monitor.3.16.4.zip"
"url": "https://downloads.wordpress.org/plugin/query-monitor.3.17.0.zip"
},
"require": {
"composer/installers": "^1.0 || ^2.0"
@ -6188,16 +6188,16 @@
},
{
"name": "symfony/service-contracts",
"version": "v3.5.0",
"version": "v3.5.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/service-contracts.git",
"reference": "bd1d9e59a81d8fa4acdcea3f617c581f7475a80f"
"reference": "e53260aabf78fb3d63f8d79d69ece59f80d5eda0"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/service-contracts/zipball/bd1d9e59a81d8fa4acdcea3f617c581f7475a80f",
"reference": "bd1d9e59a81d8fa4acdcea3f617c581f7475a80f",
"url": "https://api.github.com/repos/symfony/service-contracts/zipball/e53260aabf78fb3d63f8d79d69ece59f80d5eda0",
"reference": "e53260aabf78fb3d63f8d79d69ece59f80d5eda0",
"shasum": ""
},
"require": {
@ -6251,7 +6251,7 @@
"standards"
],
"support": {
"source": "https://github.com/symfony/service-contracts/tree/v3.5.0"
"source": "https://github.com/symfony/service-contracts/tree/v3.5.1"
},
"funding": [
{
@ -6267,7 +6267,7 @@
"type": "tidelift"
}
],
"time": "2024-04-18T09:32:20+00:00"
"time": "2024-09-25T14:20:29+00:00"
},
{
"name": "symfony/string",

View file

@ -11,7 +11,7 @@
"scripts": { "knip": "knip", "test": "echo \"Error: no test specified\" && exit 1" },
"dependencies": {
"@mobily/ts-belt": "4.0.0-rc.5",
"@sentry/browser": "8.40.0",
"@sentry/browser": "8.41.0",
"@swan-io/boxed": "^3.1.2",
"a11y-dialog": "^8.1.1",
"optics-ts": "^2.4.1",
@ -24,7 +24,7 @@
"@eslint/js": "^9.15.0",
"@prettier/plugin-php": "^0.22.2",
"@prettier/plugin-xml": "^3.4.1",
"@sentry/types": "8.40.0",
"@sentry/types": "8.41.0",
"@swc/cli": "0.5.1",
"@types/eslint__js": "^8.42.3",
"@types/node": "^22.10.0",
@ -35,7 +35,7 @@
"eslint-plugin-perfectionist": "^4.1.2",
"fdir": "^6.4.2",
"globals": "^15.12.0",
"knip": "^5.38.1",
"knip": "^5.38.2",
"oxlint": "^0.13.2",
"picomatch": "^4.0.2",
"prettier": "^3.4.1",
@ -50,10 +50,10 @@
"stylelint-plugin-logical-css": "^1.2.1",
"typescript": "5.8.0-dev.20241122",
"typescript-eslint": "^8.16.0",
"vite": "^6.0.0",
"vite": "^6.0.1",
"vite-plugin-manifest-sri": "^0.2.0",
"vite-plugin-node-polyfills": "^0.22.0",
"vite-plugin-valibot-env": "^0.9.0",
"vite-plugin-valibot-env": "^0.9.1",
"vite-tsconfig-paths": "^5.1.3",
"wp-types": "^4.67.0"
},

140
pnpm-lock.yaml generated
View file

@ -12,8 +12,8 @@ importers:
specifier: 4.0.0-rc.5
version: 4.0.0-rc.5
'@sentry/browser':
specifier: 8.40.0
version: 8.40.0
specifier: 8.41.0
version: 8.41.0
'@swan-io/boxed':
specifier: ^3.1.2
version: 3.1.2(typescript@5.8.0-dev.20241122)
@ -46,8 +46,8 @@ importers:
specifier: ^3.4.1
version: 3.4.1(prettier@3.4.1)
'@sentry/types':
specifier: 8.40.0
version: 8.40.0
specifier: 8.41.0
version: 8.41.0
'@swc/cli':
specifier: 0.5.1
version: 0.5.1(@swc/core@1.9.1)
@ -79,8 +79,8 @@ importers:
specifier: ^15.12.0
version: 15.12.0
knip:
specifier: ^5.38.1
version: 5.38.1(@types/node@22.10.0)(typescript@5.8.0-dev.20241122)
specifier: ^5.38.2
version: 5.38.2(@types/node@22.10.0)(typescript@5.8.0-dev.20241122)
oxlint:
specifier: ^0.13.2
version: 0.13.2
@ -124,20 +124,20 @@ importers:
specifier: ^8.16.0
version: 8.16.0(eslint@9.15.0(jiti@2.4.0))(typescript@5.8.0-dev.20241122)
vite:
specifier: ^6.0.0
version: 6.0.0(@types/node@22.10.0)(jiti@2.4.0)(sass-embedded@1.81.0)(sass@1.80.6)
specifier: ^6.0.1
version: 6.0.1(@types/node@22.10.0)(jiti@2.4.0)(sass-embedded@1.81.0)(sass@1.80.6)
vite-plugin-manifest-sri:
specifier: ^0.2.0
version: 0.2.0
vite-plugin-node-polyfills:
specifier: ^0.22.0
version: 0.22.0(rollup@4.27.4)(vite@6.0.0(@types/node@22.10.0)(jiti@2.4.0)(sass-embedded@1.81.0)(sass@1.80.6))
version: 0.22.0(rollup@4.27.4)(vite@6.0.1(@types/node@22.10.0)(jiti@2.4.0)(sass-embedded@1.81.0)(sass@1.80.6))
vite-plugin-valibot-env:
specifier: ^0.9.0
version: 0.9.0(valibot@1.0.0-beta.8(typescript@5.8.0-dev.20241122))(vite@6.0.0(@types/node@22.10.0)(jiti@2.4.0)(sass-embedded@1.81.0)(sass@1.80.6))
specifier: ^0.9.1
version: 0.9.1(valibot@1.0.0-beta.8(typescript@5.8.0-dev.20241122))(vite@6.0.1(@types/node@22.10.0)(jiti@2.4.0)(sass-embedded@1.81.0)(sass@1.80.6))
vite-tsconfig-paths:
specifier: ^5.1.3
version: 5.1.3(typescript@5.8.0-dev.20241122)(vite@6.0.0(@types/node@22.10.0)(jiti@2.4.0)(sass-embedded@1.81.0)(sass@1.80.6))
version: 5.1.3(typescript@5.8.0-dev.20241122)(vite@6.0.1(@types/node@22.10.0)(jiti@2.4.0)(sass-embedded@1.81.0)(sass@1.80.6))
wp-types:
specifier: ^4.67.0
version: 4.67.0
@ -874,32 +874,32 @@ packages:
'@sec-ant/readable-stream@0.4.1':
resolution: {integrity: sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==}
'@sentry-internal/browser-utils@8.40.0':
resolution: {integrity: sha512-tx7gb/PWMbTEyil/XPETVeRUeS3nKHIvQY2omyebw30TbhyLnibPZsUmXJiaIysL5PcY3k9maub3W/o0Y37T7Q==}
'@sentry-internal/browser-utils@8.41.0':
resolution: {integrity: sha512-nU7Bn3jEUmf1QXRUT3j2ewUBlFJpe9vnAnjqpeVPDWTsVI52BwVNcJHuE37PrGs66OZ1ZkGMfKnQk43oCAa+oQ==}
engines: {node: '>=14.18'}
'@sentry-internal/feedback@8.40.0':
resolution: {integrity: sha512-1O9F3z80HNE0VfepKS+v+dixdatNqWlrlwgvvWl4BGzzoA+XhqvZo+HWxiOt7yx7+k1TuZNrB6Gy3u/QvpozXA==}
'@sentry-internal/feedback@8.41.0':
resolution: {integrity: sha512-bw+BrSNw8abOnu/IpD8YSbYubXkkT8jyNS7TM4e4UPZMuXcbtia7/r5d7kAiUfKv/sV5PNMlZLOk+EYJeLTANg==}
engines: {node: '>=14.18'}
'@sentry-internal/replay-canvas@8.40.0':
resolution: {integrity: sha512-Zr+m/le0SH4RowZB7rBCM0aRnvH3wZTaOFhwUk03/oGf2BRcgKuDCUMjnXKC9MyOpmey7UYXkzb8ro+81R6Q8w==}
'@sentry-internal/replay-canvas@8.41.0':
resolution: {integrity: sha512-lpgOBHWr1ZNxidD72A2pfoUMjIpwonOPYoQZWAHr86Oa3eIVQOyfklZlHW+gKPFl2/IEl9Lbtcke0JiDp3dkIQ==}
engines: {node: '>=14.18'}
'@sentry-internal/replay@8.40.0':
resolution: {integrity: sha512-0SaDsBCSWxNVgNmPKu23frrHEXzN/MKl0hIkfuO55vL5TgjLTwpgkf0Ne4rNvaZQ5omIKk9Qd63HuQP3PHAMaw==}
'@sentry-internal/replay@8.41.0':
resolution: {integrity: sha512-ByXEY7JI95y4Qr9fS3d28l9uuVU5Qa0HgL+xDmYElNx7CXz3Q9hFN6ibgUeC3h8BO5pDULxWNgAppl7FRY8N5w==}
engines: {node: '>=14.18'}
'@sentry/browser@8.40.0':
resolution: {integrity: sha512-m/Yor6IDBeDHtQochu8n6z4HXrXkrPhu6+o5Ouve0Zi3ptthSoK1FOGvJxVBat3nRq0ydQyuuPuTB6WfdWbwHQ==}
'@sentry/browser@8.41.0':
resolution: {integrity: sha512-FfAU55eYwW2lG4M3dEw2472RvHrD5YWSfHCZvuRf/4skX38kFvKghZQ+epL+CVHTzvIRHOrbj8qQK6YLTGl9ew==}
engines: {node: '>=14.18'}
'@sentry/core@8.40.0':
resolution: {integrity: sha512-u/U2CJpG/+SmTR2bPM4ZZoPYTJAOUuxzj/0IURnvI0v9+rNu939J/fzrO9huA5IJVxS5TiYykhQm7o6I3Zuo3Q==}
'@sentry/core@8.41.0':
resolution: {integrity: sha512-3v7u3t4LozCA5SpZY4yqUN2U3jSrkXNoLgz6L2SUUiydyCuSwXZIFEwpLJfgQyidpNDifeQbBI5E1O910XkPsA==}
engines: {node: '>=14.18'}
'@sentry/types@8.40.0':
resolution: {integrity: sha512-nuCf3U3deolPM9BjNnwCc33UtFl9ec15/r74ngAkNccn+A2JXdIAsDkGJMO/9mgSFykLe1QyeJ0pQFRisCGOiA==}
'@sentry/types@8.41.0':
resolution: {integrity: sha512-eqdnGr9k9H++b9CjVUoTNUVahPVWeNnMy0YGkqS5+cjWWC+x43p56202oidGFmWo6702ub/xwUNH6M5PC4kq6A==}
engines: {node: '>=14.18'}
'@sindresorhus/is@5.6.0':
@ -1938,8 +1938,8 @@ packages:
resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==}
engines: {node: '>=6'}
knip@5.38.1:
resolution: {integrity: sha512-qGQpVO9jhHDoJ/4O1paXQ8Y6XyqH3Xm6OTety/z5IouZBEvJuJoWp59iY9E82Dt0pz9BBmKLczliB4sbYMPr2g==}
knip@5.38.2:
resolution: {integrity: sha512-gVduAQa80bar/uKtQDvOCBzTApdjqiz8e9eDIdRkYFyTAQM/DriWLi2vv/2AlzMcPYeSWddLptBdgN4whGzFtg==}
engines: {node: '>=18.6.0'}
hasBin: true
peerDependencies:
@ -2864,12 +2864,12 @@ packages:
peerDependencies:
vite: ^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0
vite-plugin-valibot-env@0.9.0:
resolution: {integrity: sha512-Tl4d6+j4p742PCSGN9gJf5n347wyHnRT//Uqejzboa6p6UJuac2zHyRlfSWCRu5UuTHcOD9DOq2OdLgpOiTjXQ==}
vite-plugin-valibot-env@0.9.1:
resolution: {integrity: sha512-ajlS8IHeML49kJMS9eAyko2laIlj07sMIMwtUiFjZ6tv/CiSW71GUthATur8XWYnm+qr3sszDFnNPDMDu8doTA==}
engines: {node: '>=18.0.0'}
peerDependencies:
valibot: '>=0.30 <=0.42 || >=1.0.0-beta.0 <=1.0.0-beta.8'
vite: '>=5 <=6.0.0-beta.10'
vite: '>=5 || >=6'
vite-tsconfig-paths@5.1.3:
resolution: {integrity: sha512-0bz+PDlLpGfP2CigeSKL9NFTF1KtXkeHGZSSaGQSuPZH77GhoiQaA8IjYgOaynSuwlDTolSUEU0ErVvju3NURg==}
@ -2879,8 +2879,8 @@ packages:
vite:
optional: true
vite@6.0.0:
resolution: {integrity: sha512-Q2+5yQV79EdnpbNxjD3/QHVMCBaQ3Kpd4/uL51UGuh38bIIM+s4o3FqyCzRvTRwFb+cWIUeZvaWwS9y2LD2qeQ==}
vite@6.0.1:
resolution: {integrity: sha512-Ldn6gorLGr4mCdFnmeAOLweJxZ34HjKnDm4HGo6P66IEqTxQb36VEdFJQENKxWjupNfoIjvRUnswjn1hpYEpjQ==}
engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0}
hasBin: true
peerDependencies:
@ -2925,8 +2925,8 @@ packages:
wcwidth@1.0.1:
resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==}
which-typed-array@1.1.15:
resolution: {integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==}
which-typed-array@1.1.16:
resolution: {integrity: sha512-g+N+GAWiRj66DngFwHvISJd+ITsyphZvD1vChfVg6cEdnzy53GzB3oy0fUNlvhz7H7+MiqhYr26qxQShCpKTTQ==}
engines: {node: '>= 0.4'}
which@1.3.1:
@ -3478,42 +3478,42 @@ snapshots:
'@sec-ant/readable-stream@0.4.1': {}
'@sentry-internal/browser-utils@8.40.0':
'@sentry-internal/browser-utils@8.41.0':
dependencies:
'@sentry/core': 8.40.0
'@sentry/types': 8.40.0
'@sentry/core': 8.41.0
'@sentry/types': 8.41.0
'@sentry-internal/feedback@8.40.0':
'@sentry-internal/feedback@8.41.0':
dependencies:
'@sentry/core': 8.40.0
'@sentry/types': 8.40.0
'@sentry/core': 8.41.0
'@sentry/types': 8.41.0
'@sentry-internal/replay-canvas@8.40.0':
'@sentry-internal/replay-canvas@8.41.0':
dependencies:
'@sentry-internal/replay': 8.40.0
'@sentry/core': 8.40.0
'@sentry/types': 8.40.0
'@sentry-internal/replay': 8.41.0
'@sentry/core': 8.41.0
'@sentry/types': 8.41.0
'@sentry-internal/replay@8.40.0':
'@sentry-internal/replay@8.41.0':
dependencies:
'@sentry-internal/browser-utils': 8.40.0
'@sentry/core': 8.40.0
'@sentry/types': 8.40.0
'@sentry-internal/browser-utils': 8.41.0
'@sentry/core': 8.41.0
'@sentry/types': 8.41.0
'@sentry/browser@8.40.0':
'@sentry/browser@8.41.0':
dependencies:
'@sentry-internal/browser-utils': 8.40.0
'@sentry-internal/feedback': 8.40.0
'@sentry-internal/replay': 8.40.0
'@sentry-internal/replay-canvas': 8.40.0
'@sentry/core': 8.40.0
'@sentry/types': 8.40.0
'@sentry-internal/browser-utils': 8.41.0
'@sentry-internal/feedback': 8.41.0
'@sentry-internal/replay': 8.41.0
'@sentry-internal/replay-canvas': 8.41.0
'@sentry/core': 8.41.0
'@sentry/types': 8.41.0
'@sentry/core@8.40.0':
'@sentry/core@8.41.0':
dependencies:
'@sentry/types': 8.40.0
'@sentry/types': 8.41.0
'@sentry/types@8.40.0': {}
'@sentry/types@8.41.0': {}
'@sindresorhus/is@5.6.0': {}
@ -4619,7 +4619,7 @@ snapshots:
is-typed-array@1.1.13:
dependencies:
which-typed-array: 1.1.15
which-typed-array: 1.1.16
is-unicode-supported@2.1.0: {}
@ -4657,7 +4657,7 @@ snapshots:
kleur@4.1.5: {}
knip@5.38.1(@types/node@22.10.0)(typescript@5.8.0-dev.20241122):
knip@5.38.2(@types/node@22.10.0)(typescript@5.8.0-dev.20241122):
dependencies:
'@nodelib/fs.walk': 1.2.8
'@snyk/github-codeowners': 1.1.0
@ -5575,7 +5575,7 @@ snapshots:
is-arguments: 1.1.1
is-generator-function: 1.0.10
is-typed-array: 1.1.13
which-typed-array: 1.1.15
which-typed-array: 1.1.16
valibot@1.0.0-beta.8(typescript@5.8.0-dev.20241122):
optionalDependencies:
@ -5585,33 +5585,33 @@ snapshots:
vite-plugin-manifest-sri@0.2.0: {}
vite-plugin-node-polyfills@0.22.0(rollup@4.27.4)(vite@6.0.0(@types/node@22.10.0)(jiti@2.4.0)(sass-embedded@1.81.0)(sass@1.80.6)):
vite-plugin-node-polyfills@0.22.0(rollup@4.27.4)(vite@6.0.1(@types/node@22.10.0)(jiti@2.4.0)(sass-embedded@1.81.0)(sass@1.80.6)):
dependencies:
'@rollup/plugin-inject': 5.0.5(rollup@4.27.4)
node-stdlib-browser: 1.3.0
vite: 6.0.0(@types/node@22.10.0)(jiti@2.4.0)(sass-embedded@1.81.0)(sass@1.80.6)
vite: 6.0.1(@types/node@22.10.0)(jiti@2.4.0)(sass-embedded@1.81.0)(sass@1.80.6)
transitivePeerDependencies:
- rollup
vite-plugin-valibot-env@0.9.0(valibot@1.0.0-beta.8(typescript@5.8.0-dev.20241122))(vite@6.0.0(@types/node@22.10.0)(jiti@2.4.0)(sass-embedded@1.81.0)(sass@1.80.6)):
vite-plugin-valibot-env@0.9.1(valibot@1.0.0-beta.8(typescript@5.8.0-dev.20241122))(vite@6.0.1(@types/node@22.10.0)(jiti@2.4.0)(sass-embedded@1.81.0)(sass@1.80.6)):
dependencies:
kleur: 4.1.5
log-symbols: 7.0.0
valibot: 1.0.0-beta.8(typescript@5.8.0-dev.20241122)
vite: 6.0.0(@types/node@22.10.0)(jiti@2.4.0)(sass-embedded@1.81.0)(sass@1.80.6)
vite: 6.0.1(@types/node@22.10.0)(jiti@2.4.0)(sass-embedded@1.81.0)(sass@1.80.6)
vite-tsconfig-paths@5.1.3(typescript@5.8.0-dev.20241122)(vite@6.0.0(@types/node@22.10.0)(jiti@2.4.0)(sass-embedded@1.81.0)(sass@1.80.6)):
vite-tsconfig-paths@5.1.3(typescript@5.8.0-dev.20241122)(vite@6.0.1(@types/node@22.10.0)(jiti@2.4.0)(sass-embedded@1.81.0)(sass@1.80.6)):
dependencies:
debug: 4.3.7
globrex: 0.1.2
tsconfck: 3.1.4(typescript@5.8.0-dev.20241122)
optionalDependencies:
vite: 6.0.0(@types/node@22.10.0)(jiti@2.4.0)(sass-embedded@1.81.0)(sass@1.80.6)
vite: 6.0.1(@types/node@22.10.0)(jiti@2.4.0)(sass-embedded@1.81.0)(sass@1.80.6)
transitivePeerDependencies:
- supports-color
- typescript
vite@6.0.0(@types/node@22.10.0)(jiti@2.4.0)(sass-embedded@1.81.0)(sass@1.80.6):
vite@6.0.1(@types/node@22.10.0)(jiti@2.4.0)(sass-embedded@1.81.0)(sass@1.80.6):
dependencies:
esbuild: 0.24.0
postcss: 8.4.49
@ -5630,7 +5630,7 @@ snapshots:
defaults: 1.0.4
optional: true
which-typed-array@1.1.15:
which-typed-array@1.1.16:
dependencies:
available-typed-arrays: 1.0.7
call-bind: 1.0.7

View file

@ -438,6 +438,50 @@ ul.avec-puce-cercle a {
background: no-repeat var(--liste-puce-cercle-puce-position-horizontale) center/var(--liste-puce-cercle-puce-taille) url("/app/themes/haiku-atelier-2024/assets/img/icons/dot.svg"); /* 2 */
}
/* * Styles pour un bandeau défilant. */
.bandeau {
overflow: hidden;
display: flex;
column-gap: var(--espace-m);
width: 100%;
font-style: italic;
color: var(--couleur-noir);
text-transform: uppercase;
white-space: nowrap;
background: var(--couleur-jaune);
border-top: 1px solid var(--couleur-noir);
}
.bandeau__conteneur {
display: flex;
flex-flow: row nowrap;
column-gap: var(--espace-m);
animation: marquee linear 15s infinite both;
}
.bandeau__conteneur *::selection {
color: var(--couleur-jaune);
background: var(--couleur-noir);
}
.bandeau__conteneur p {
display: inline-block;
padding: var(--espace-s) 0;
}
.bandeau__conteneur p strong {
font-weight: 600;
}
@media (hover: hover) {
.bandeau:hover .bandeau__conteneur {
animation-play-state: paused;
}
}
@keyframes marquee {
from {
transform: translateX(0%);
}
to {
transform: translateX(-100%);
}
}
body:has(#menu-mobile:not([aria-hidden=true])) {
touch-action: none;
overflow: hidden;

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -4,14 +4,6 @@
"name": "Either",
"integrity": "sha512-k/7Wk+b5oar670iV1x2NAJ/yh+VTLPUJYVhdjoBAuNyWdc8ZcRqV+iyEaYUZRq7WCxiga+Xkz63qaApLpZ4lFw=="
},
"_MaybeAsync.BkJailCK.js": {
"file": "MaybeAsync.BkJailCK.js",
"name": "MaybeAsync",
"imports": [
"_Either.DDEPhGsy.js"
],
"integrity": "sha512-OT/kU6HBh3TGDwNAymCm9CpXREMy0Zbu8R/eFxEKGxLaTN9+uOIz/a2dFIp6Annr64thEN67HluwUtlSXPexsA=="
},
"_belt_Option-91f3b350.Dja5KR5O.js": {
"file": "belt_Option-91f3b350.Dja5KR5O.js",
"name": "belt_Option-91f3b350",
@ -20,28 +12,28 @@
],
"integrity": "sha512-GYl7KV7iH0RgwbtmdhDjQ5WrTaHX8bx/n8i980uLpmxAtJ851wQY6FSDCCy4UIRYjOmZLhphdS81pTuYHAmEdQ=="
},
"_exports.BFQs_g59.js": {
"file": "exports.BFQs_g59.js",
"_exports.jfK3lrNh.js": {
"file": "exports.jfK3lrNh.js",
"name": "exports",
"integrity": "sha512-otBS5h58Ct/3+XrQzkF3XnQLdJ65FxShahhItVr7autk++lWPwTY7B8UurnwC62gab9gyum9ETgrrk2WDZc/VQ=="
"integrity": "sha512-e+qw4ivbqqA92OB/oUAhyJ3XRN1q0OuPFTmiYUSG6IwhuTDWuQtUuZCjZzYeARwrGzRD38b5kZIcYCp55RMkzQ=="
},
"_index-0eef19ec.BYszGP4b.js": {
"file": "index-0eef19ec.BYszGP4b.js",
"_index-0eef19ec.BAWlGMMA.js": {
"file": "index-0eef19ec.BAWlGMMA.js",
"name": "index-0eef19ec",
"imports": [
"web/app/themes/haiku-atelier-2024/src/scripts/lib/dom.ts",
"_belt_Option-91f3b350.Dja5KR5O.js"
],
"integrity": "sha512-G5OG70fCFsc7kItScSVc1XVd8YGRgzZ16JILYJIvugF7iZbJhj5XJxylR4Ev2aElQtOCLUusDQ8YiLvrS4iiow=="
"integrity": "sha512-mljji0062N6mhdtqR3URitBae8Cf1PQtz7ZZ7+sDRjtsq6sc1FfFedTLzN3vs0raiZYVkzSmhWt4oNBVPDrl5g=="
},
"_index-c1cc4c86.Ce2mb7Nd.js": {
"file": "index-c1cc4c86.Ce2mb7Nd.js",
"_index-c1cc4c86.CgXEmUX3.js": {
"file": "index-c1cc4c86.CgXEmUX3.js",
"name": "index-c1cc4c86",
"imports": [
"_belt_Option-91f3b350.Dja5KR5O.js",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/dom.ts"
],
"integrity": "sha512-W7GIguYg4Q6IUzc2vUU8TNe5z8NEgn7nJy9r03ccLYtd/lTvbsNwx3r+Z6ylEEgNqpwXqYvfoajDWeTUFVTZuQ=="
"integrity": "sha512-cfzVGfb+bb3/TjdczKEfAijrLaC6cL+TA6Lh4KdBI7D35XtxPHcT/djQtoMQBlStkbSw2SiQYBaGPgtqfbf3Ow=="
},
"_index.BykRh4R4.js": {
"file": "index.BykRh4R4.js",
@ -63,28 +55,42 @@
"name": "api",
"src": "web/app/themes/haiku-atelier-2024/src/scripts/constantes/api.ts",
"isEntry": true,
"integrity": "sha512-vpyPiPgpXIVMErDcXfiG4leYzdepIIKSPahu8ScndKzVVhEveqsCGKN/BhU8AShrKa9q8yPbdQt8Mf+V9sSBbg=="
"integrity": "sha512-/AHEMEeheLRpncyxzaGeq9e1Hn/jQmfCBUojjsRbZUuM0Ff1RvESCXXDcx0KXHYzLheOapJrNcjzm8JPIKQb1g=="
},
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/cart.ts": {
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/api/cart.ts": {
"file": "cart2.js",
"name": "cart",
"src": "web/app/themes/haiku-atelier-2024/src/scripts/constantes/cart.ts",
"src": "web/app/themes/haiku-atelier-2024/src/scripts/constantes/api/cart.ts",
"isEntry": true,
"integrity": "sha512-roJIe6Iyb/xNOxK6106j4AaroobRK5AinfgpZbwJaGWgmU0pp0wHRGauEg1Jk4vp8OwVzUwcciYE0qxzKaWOcg=="
},
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/api/erreurs.ts": {
"file": "erreurs2.js",
"name": "erreurs",
"src": "web/app/themes/haiku-atelier-2024/src/scripts/constantes/api/erreurs.ts",
"isEntry": true,
"integrity": "sha512-rzWCtRigG3LH+6nuZL+ZrDeGABVHUbaroUTQQX0JQIGtzlvzagIbXCCPAzoRVeg1xcASbwnNYjE1P2yfB4Cjpw=="
},
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/api/orders.ts": {
"file": "orders3.js",
"name": "orders",
"src": "web/app/themes/haiku-atelier-2024/src/scripts/constantes/api/orders.ts",
"isEntry": true,
"integrity": "sha512-tBYOF/7yktVSvDukJNW8VdDKdVIydkp4QgcHjOKjXvjFtuFNuh9C1M6PhfP5KRcftReHnLjyxER+8PXLTwqU2A=="
},
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/api/products.ts": {
"file": "products2.js",
"name": "products",
"src": "web/app/themes/haiku-atelier-2024/src/scripts/constantes/api/products.ts",
"isEntry": true,
"integrity": "sha512-KNJWBBjVQ+jPpc5CHpcCk9fzCU2RiltcQdoz+DV8LeG8Oq7hpJkiH+Gea6zGCK3e/s/qvUOmd0hsOaFTqp47VA=="
},
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/dom.ts": {
"file": "dom.js",
"name": "dom",
"src": "web/app/themes/haiku-atelier-2024/src/scripts/constantes/dom.ts",
"isEntry": true,
"integrity": "sha512-lPaIucfexn8VIej8M6cSH7NNLpCi3VgPp/7GiUOBuIhaKaWPSkl4S7fG08n592je8M9zdQHxwJ9ZUfg8AP/HEQ=="
},
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/erreurs.ts": {
"file": "erreurs.js",
"name": "erreurs",
"src": "web/app/themes/haiku-atelier-2024/src/scripts/constantes/erreurs.ts",
"isEntry": true,
"integrity": "sha512-evOHHSLm9r2Mw758EZTy85aZaeMPT40Pfd1lN8be/nV64HYUj0UXYd72B4IGuBfR6UY3ESqvfd797j216uMWNA=="
"integrity": "sha512-tGg8DCBED+gxgHEbhZCDC9iUmUYALtI1/Dk1wlShq/xFUuFfvYw0XpGnpzN0Q7qxVYJ1lOvlYYWe9IL8Bb7hsA=="
},
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/messages-utilisateur.ts": {
"file": "messages-utilisateur.js",
@ -100,20 +106,6 @@
"isEntry": true,
"integrity": "sha512-SS+OlEe6MXCgF9mn2l/5O3q/AzWqiFxNVlLL54M49GNPYqc2LK2wiocJ1Pg7vZU4pccBCVN16KjNmI2f/rT4Bw=="
},
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/orders.ts": {
"file": "orders3.js",
"name": "orders",
"src": "web/app/themes/haiku-atelier-2024/src/scripts/constantes/orders.ts",
"isEntry": true,
"integrity": "sha512-tBYOF/7yktVSvDukJNW8VdDKdVIydkp4QgcHjOKjXvjFtuFNuh9C1M6PhfP5KRcftReHnLjyxER+8PXLTwqU2A=="
},
"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-KNJWBBjVQ+jPpc5CHpcCk9fzCU2RiltcQdoz+DV8LeG8Oq7hpJkiH+Gea6zGCK3e/s/qvUOmd0hsOaFTqp47VA=="
},
"web/app/themes/haiku-atelier-2024/src/scripts/gaffe.ts": {
"file": "gaffe.js",
"name": "gaffe",
@ -121,10 +113,10 @@
"isEntry": true,
"imports": [
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/api.ts",
"_exports.BFQs_g59.js",
"_exports.jfK3lrNh.js",
"_pipe.CtTFdEz3.js"
],
"integrity": "sha512-sVxDaDUKS0ozGrm69Izn+8/Ur4pNQXwHyQWffzC1eJo4nNtBMn+6ekcP3BtLjmJL/enn6XL+xOz5cv3807cFcw=="
"integrity": "sha512-IJ2k0dI+9VCHv0rSKtftV5ASV7itad+hbRbehctCbsbVjAoXgQUGb8S+CAJfKdd3yMl3G1SalPeQHagTRCJPSw=="
},
"web/app/themes/haiku-atelier-2024/src/scripts/lib/animations.ts": {
"file": "animations.js",
@ -145,19 +137,19 @@
"web/app/themes/haiku-atelier-2024/src/scripts/lib/erreurs.ts",
"_pipe.CtTFdEz3.js",
"_Either.DDEPhGsy.js",
"_exports.BFQs_g59.js"
"_exports.jfK3lrNh.js"
],
"integrity": "sha512-5llvGkvmq26OnmpdHeCvHFABIXRk7sxONiLvlnxBloym3Z4dT3YnFI5vvg5AD3YxPnX/lXKeXqksEoIey57wLA=="
"integrity": "sha512-E1acEqJ/BjANvuyGzb09Hfvi3XpvNX9ldhoJceStcSy9NxmkKLM4TXnFT51PY9tWrvdh8wKUaFs26tSkp9o8qg=="
},
"web/app/themes/haiku-atelier-2024/src/scripts/lib/erreurs.ts": {
"file": "erreurs2.js",
"file": "erreurs.js",
"name": "erreurs",
"src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/erreurs.ts",
"isEntry": true,
"imports": [
"_exports.BFQs_g59.js"
"_exports.jfK3lrNh.js"
],
"integrity": "sha512-FcHmyghZf4IxnQcq39H2xWcw3axta9110UO1vmMmxc5ykLXZHqJlKC6GsIjCcZudoj4DZSmUXgV6NUqQ1J94HA=="
"integrity": "sha512-rYbJ+Hsht9ZNAJChZ6SKfdGw0EIj4g1OCAzbPT4RitDwyQodtzVbKz+iZA5B7CjizlnhPGOIdNsakVJ8o44XAg=="
},
"web/app/themes/haiku-atelier-2024/src/scripts/lib/erreurs/adresses.ts": {
"file": "adresses.js",
@ -178,19 +170,7 @@
"name": "gardes",
"src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/gardes.ts",
"isEntry": true,
"integrity": "sha512-vqaGTRWcx2Y2S6rNQNWQAUaPwBGUWEGkauq3HpF2UFDLtWeYPq0fhSyD9B7iMx+YZwSsgjv4laCOu8ihsUVYzg=="
},
"web/app/themes/haiku-atelier-2024/src/scripts/lib/gestion-panier.ts": {
"file": "gestion-panier.js",
"name": "gestion-panier",
"src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/gestion-panier.ts",
"isEntry": true,
"imports": [
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/api.ts",
"_MaybeAsync.BkJailCK.js",
"_Either.DDEPhGsy.js"
],
"integrity": "sha512-a8H6pvEqUZsEbxYnE0VFh46CP9WYL2nAQ0hhLeVPZeaOeif8J16x2jtnse5rY+z11OtpYSm0QaEBrqbtXlRLqQ=="
"integrity": "sha512-vrAiWuideZoT9oVpKIYxSvHyn7ryRadjAaGa1RSriGA/Ftd30bBHqJqHFPQN4hsJ0UXKA0zC5qQtUkBHmkkVKw=="
},
"web/app/themes/haiku-atelier-2024/src/scripts/lib/messages.ts": {
"file": "messages.js",
@ -206,14 +186,14 @@
"web/app/themes/haiku-atelier-2024/src/scripts/lib/validation.ts",
"_pipe.CtTFdEz3.js",
"_Either.DDEPhGsy.js",
"_exports.BFQs_g59.js",
"_exports.jfK3lrNh.js",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/cart.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/api/cart.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/adresses.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-coupons.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/couts-livraison.ts"
],
"integrity": "sha512-s48fYB/gRuftlZlesFvjUz0LS3y31Dm03iZaJYFo7eQefRgzCJu5gmd8r3GD48t8sc978g0c+eAd2s+WvOCu5Q=="
"integrity": "sha512-yT3mpDw00lWmsHRky0/z9ybP100NWe93s0jsZvo6j/eaEqEpMEvIvVV8BJde0bXZ4R45OURkdun8QTPYzNtWMw=="
},
"web/app/themes/haiku-atelier-2024/src/scripts/lib/nombres.ts": {
"file": "nombres.js",
@ -236,12 +216,11 @@
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/api.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/erreurs.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/erreurs.ts",
"_MaybeAsync.BkJailCK.js",
"_Either.DDEPhGsy.js",
"_pipe.CtTFdEz3.js",
"_exports.BFQs_g59.js",
"_Either.DDEPhGsy.js"
"_exports.jfK3lrNh.js"
],
"integrity": "sha512-9ZxdrxWO3XvdEmC3oLVomVw9TDYnEcX6VcSb1x25aECUJ+Xwek4kbiJSK0BHEW7JZPlflwQvPD+BCZESHc8NjQ=="
"integrity": "sha512-yFOR1X1Jzl5oVu90qW2Wg3s7Rw0fKOrI/2U8JHpZLLu3etSGG3G6dhG+s6RtCI4ShOXWfDwjh68acy0xbCOAyg=="
},
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/adresses.ts": {
"file": "adresses2.js",
@ -331,7 +310,7 @@
"isEntry": true,
"imports": [
"_index.BykRh4R4.js",
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/cart.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/api/cart.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/adresses.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-coupons.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/couts-livraison.ts"
@ -357,7 +336,7 @@
"imports": [
"_index.BykRh4R4.js"
],
"integrity": "sha512-bH1NSbYWBjHL5RG92D3mvzSxcDLkROF2vyzPhO8wwiEY2ynphAsMpqaEV7odd2G/CDFHiLhDKOMvQv9YSWid5Q=="
"integrity": "sha512-tCTHFJggimnNeV4RChNKx/JrRilRNlD5rMPeWQyv5SDPDTBPW8fx+zj8rAqDVxJQ6XoGDDm9DejzwLvjb32q3w=="
},
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/products.ts": {
"file": "products3.js",
@ -366,7 +345,7 @@
"isEntry": true,
"imports": [
"_index.BykRh4R4.js",
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/products.ts"
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/api/products.ts"
],
"integrity": "sha512-Vpo3U6jcd7aL/fKrUCC/GUie4oEMFirYI2HhhrqmrfXJxiPveK6I5HgwMW04anxLTy5Fcaj89sjSl/KXXPWQUw=="
},
@ -377,7 +356,7 @@
"isEntry": true,
"imports": [
"_index.BykRh4R4.js",
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/orders.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/api/orders.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/adresses.ts"
],
"integrity": "sha512-Emn/A/0uhfAHVvrcqrtRnZIFd/8afvntycItjvKQVTQPl9KeLMNkt40g5znL+/8d4KBb651A1xL6wn5t3nehCA=="
@ -389,7 +368,7 @@
"isEntry": true,
"imports": [
"_index.BykRh4R4.js",
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/products.ts"
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/api/products.ts"
],
"integrity": "sha512-3a9RhgpVS2vEVDQMyy3wq9aAt7u4uOzOmuqmpsMMn/WL2RqTKME1wbdQlOU15rLDsUwcPTgu0Kq0spBNw7kAOQ=="
},
@ -402,7 +381,7 @@
"_index.BykRh4R4.js",
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/messages.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/cart.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/api/cart.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/adresses.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-coupons.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/couts-livraison.ts"
@ -433,9 +412,9 @@
"web/app/themes/haiku-atelier-2024/src/scripts/lib/erreurs.ts",
"_pipe.CtTFdEz3.js",
"_Either.DDEPhGsy.js",
"_exports.BFQs_g59.js"
"_exports.jfK3lrNh.js"
],
"integrity": "sha512-ratXKwCi3HWTJyBDDS2ddUpI5GygtS6U387B2S3gZ1JsSjgUpWY0IZXEuTLNGDY7dpAUEWGDKavvko7w7ID0ew=="
"integrity": "sha512-tYqvHO2uQUgPd2AMbwAHu5BrqtTKQDAJmlSJOKHFqS1xQGG8/77+Gca4R2tSwxrYoZBbxCixN1ubrDO9zNfWvg=="
},
"web/app/themes/haiku-atelier-2024/src/scripts/lib/validation.ts": {
"file": "validation.js",
@ -461,19 +440,19 @@
"web/app/themes/haiku-atelier-2024/src/scripts/lib/utils.ts",
"_pipe.CtTFdEz3.js",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/erreurs.ts",
"_exports.BFQs_g59.js",
"_exports.jfK3lrNh.js",
"_Either.DDEPhGsy.js",
"_index.BykRh4R4.js",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/erreurs.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/messages.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/cart.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/api/cart.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/adresses.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-coupons.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/couts-livraison.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/validation.ts"
],
"integrity": "sha512-IWgbMyCzAvA7Ycuusy8dybyJP6Y/2N9lxi3qrK2dYpnHeSngKORB+RhZ3YlESg/8qLe9LYoUH+W1ud/jzkQNJQ=="
"integrity": "sha512-6B8ascGKKxMf5zeT9fbvn9bsL+V3ZRJJOKiuPuzdJGRyKFyUr1C2IDzlNa7cLu9B20WCmtY1JG+z8FGEQMFslw=="
},
"web/app/themes/haiku-atelier-2024/src/scripts/scripts-menu-categories.ts": {
"file": "scripts-menu-categories.js",
@ -486,11 +465,11 @@
"web/app/themes/haiku-atelier-2024/src/scripts/lib/utils.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/dom.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/erreurs.ts",
"_exports.BFQs_g59.js",
"_exports.jfK3lrNh.js",
"_pipe.CtTFdEz3.js",
"_Either.DDEPhGsy.js"
],
"integrity": "sha512-yG34dgbZUDffyc99MFIyRwyvQ3sU4GWRkur8oH5jlfnEQc5UXLWatUdNPZXg9JlRRmgdgJfEUJjbs0+7qkIbEw=="
"integrity": "sha512-YlGyNHiDLPqNnRvSCRrQxItwafYmV6PtQfEMe+BZrHJJFvUtLAbl2BOeUSf0F5yeuX8bfYXt+dqYPBMDzx2lxw=="
},
"web/app/themes/haiku-atelier-2024/src/scripts/scripts-menu-mobile.ts": {
"file": "scripts-menu-mobile.js",
@ -501,14 +480,14 @@
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/dom.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/utils.ts",
"_pipe.CtTFdEz3.js",
"_index-c1cc4c86.Ce2mb7Nd.js",
"_index-c1cc4c86.CgXEmUX3.js",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/dom.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/erreurs.ts",
"_exports.BFQs_g59.js",
"_exports.jfK3lrNh.js",
"_Either.DDEPhGsy.js",
"_belt_Option-91f3b350.Dja5KR5O.js"
],
"integrity": "sha512-IW8QsqTfjnJZkwTLmF8kwCz+ww7P0PJTjTrr9OkSCBTVQ33VuU2CxOQZyexVDawXtaJlMtepUO5yKRsi2M6tdg=="
"integrity": "sha512-ZH7shciaTzT5ke+jGxhLKM3poLk6t+k8FcXdTm2XGN+LYNXKPvr5aZsew0ZdrA4NHz4BN2wBXnsTZkJNhfUpCA=="
},
"web/app/themes/haiku-atelier-2024/src/scripts/scripts-page-a-propos.ts": {
"file": "scripts-page-a-propos.js",
@ -520,13 +499,13 @@
"web/app/themes/haiku-atelier-2024/src/scripts/lib/utils.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/dom.ts",
"_pipe.CtTFdEz3.js",
"_index-c1cc4c86.Ce2mb7Nd.js",
"_index-c1cc4c86.CgXEmUX3.js",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/erreurs.ts",
"_exports.BFQs_g59.js",
"_exports.jfK3lrNh.js",
"_Either.DDEPhGsy.js",
"_belt_Option-91f3b350.Dja5KR5O.js"
],
"integrity": "sha512-V2HTTCRxt4rVcnWBi6RGfieWkL36mjvxImzEkvXceCoHlUUPz29pm4kuh/5ihhHA6VNqq2m7mOX/HIXXkNqM8Q=="
"integrity": "sha512-/4VPW/7LKldCQkoJVU3Bx9Ab0ke92G4gTWVStEt+M1wPJJ6aaKzAQNlLeDPH+Uyb8yraqW3rrhqPI8Z4grsTLg=="
},
"web/app/themes/haiku-atelier-2024/src/scripts/scripts-page-accueil.ts": {
"file": "scripts-page-accueil.js",
@ -538,14 +517,14 @@
"web/app/themes/haiku-atelier-2024/src/scripts/lib/nombres.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/utils.ts",
"_pipe.CtTFdEz3.js",
"_index-c1cc4c86.Ce2mb7Nd.js",
"_index-c1cc4c86.CgXEmUX3.js",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/dom.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/erreurs.ts",
"_exports.BFQs_g59.js",
"_exports.jfK3lrNh.js",
"_Either.DDEPhGsy.js",
"_belt_Option-91f3b350.Dja5KR5O.js"
],
"integrity": "sha512-MBpTAs6K3PRYar3tcs+A6aKm/nX1A4HptsovJj5pfRrNBgoJSJ3uEK8h/8Z0Jjufz/8v1xrICDXkt12aujdB+Q=="
"integrity": "sha512-+IMxk9Cj4TUAuEIz1YINcR8OkMPO1w9CyJXBUQDTEgCPq1JUNQ2Uh6cETvE4Nza7rjwfF+aYbJazk3oqy/yA/w=="
},
"web/app/themes/haiku-atelier-2024/src/scripts/scripts-page-boutique.ts": {
"file": "scripts-page-boutique.js",
@ -564,16 +543,15 @@
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/v3/products.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/utils.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/validation.ts",
"_MaybeAsync.BkJailCK.js",
"_pipe.CtTFdEz3.js",
"_index-0eef19ec.BYszGP4b.js",
"_index-0eef19ec.BAWlGMMA.js",
"_Either.DDEPhGsy.js",
"_exports.BFQs_g59.js",
"_exports.jfK3lrNh.js",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/erreurs.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/products.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/api/products.ts",
"_belt_Option-91f3b350.Dja5KR5O.js"
],
"integrity": "sha512-d5MGFTta1r0zScaNFU+1rHOUWK3AyFMg16sI8WlYeoiLQbf1gmSiK2BT2v8WlEKJTPJ36KIsKVOo0a/iV9uasg=="
"integrity": "sha512-OuECXbix1otc3ECDBWsl7XT7A0QmYSmiLBrRrCzc5AUjaewZJ6OJvfqAv5vt2SdA5R7MVLHO3HZ0Ef2e5XuQGg=="
},
"web/app/themes/haiku-atelier-2024/src/scripts/scripts-page-panier-adresses.ts": {
"file": "scripts-page-panier-adresses.js",
@ -602,18 +580,17 @@
"web/app/themes/haiku-atelier-2024/src/scripts/lib/utils.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/validation.ts",
"_pipe.CtTFdEz3.js",
"_MaybeAsync.BkJailCK.js",
"_index-c1cc4c86.Ce2mb7Nd.js",
"_index-c1cc4c86.CgXEmUX3.js",
"_Either.DDEPhGsy.js",
"_exports.BFQs_g59.js",
"_exports.jfK3lrNh.js",
"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/api/cart.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/adresses.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-coupons.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/orders.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/api/orders.ts",
"_belt_Option-91f3b350.Dja5KR5O.js"
],
"integrity": "sha512-WKpiA8or3yRyCVeCQAezpWRy2hDtF1/U1BVRSmKDVQ9Dn2M/91jsfo/NkDH0W8p+yFGmagE32lvqFKEdwkHvcA=="
"integrity": "sha512-tb5Cu94trYCDPypVP9Ame3T+5aIX0I0bp9gKE7SYwY8fwfpZ/QmeSAJs00NYiTOWOJrskgtfZXcILtTPz4/M0w=="
},
"web/app/themes/haiku-atelier-2024/src/scripts/scripts-page-panier-code-promo.ts": {
"file": "scripts-page-panier-code-promo.js",
@ -624,8 +601,8 @@
"_index.CuMLbxmh.js",
"_index.BykRh4R4.js",
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/api.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/api/erreurs.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/dom.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/erreurs.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/messages.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/animations.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/dom.ts",
@ -640,18 +617,50 @@
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-remove-coupon.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/utils.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/validation.ts",
"_MaybeAsync.BkJailCK.js",
"_pipe.CtTFdEz3.js",
"_Either.DDEPhGsy.js",
"_exports.BFQs_g59.js",
"_exports.jfK3lrNh.js",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/erreurs.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/messages.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/cart.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/api/cart.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/adresses.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-coupons.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/couts-livraison.ts"
],
"integrity": "sha512-/c9xqzEp6BoDcje2+GbOzFesQomidzcHZEN+aIM1mGY6u05H0oAAEyBzT/tVNMypb5Zl/Hv/U42y28NGv4TaAg=="
"integrity": "sha512-4XZKmJRrayn1zan+nySWZsT1SzxnBD8BK2WVLWAS35E3P0I6nGc1sk00xhESfzBXc+8q7sHftnhHF6I4TSXcJQ=="
},
"web/app/themes/haiku-atelier-2024/src/scripts/scripts-page-panier-panneau-produits.ts": {
"file": "scripts-page-panier-panneau-produits.js",
"name": "scripts-page-panier-panneau-produits",
"src": "web/app/themes/haiku-atelier-2024/src/scripts/scripts-page-panier-panneau-produits.ts",
"isEntry": true,
"imports": [
"_index.CuMLbxmh.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",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/dom.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/erreurs.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/messages.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/nombres.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/reseau.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-remove-item.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-update-item.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/utils.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/validation.ts",
"_pipe.CtTFdEz3.js",
"_Either.DDEPhGsy.js",
"_exports.jfK3lrNh.js",
"_index.BykRh4R4.js",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/erreurs.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/messages.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/api/cart.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/adresses.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-coupons.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/couts-livraison.ts"
],
"integrity": "sha512-3Jfs0QcFp0dLKWCN10SMWj2LkcKu8j5rCZwH0xlNcKyzde9G9rY3jdBgPHDQKJCf0pWeJo4EfIKigFEYrta/mA=="
},
"web/app/themes/haiku-atelier-2024/src/scripts/scripts-page-panier.ts": {
"file": "scripts-page-panier.js",
@ -659,49 +668,48 @@
"src": "web/app/themes/haiku-atelier-2024/src/scripts/scripts-page-panier.ts",
"isEntry": true,
"imports": [
"_index.BykRh4R4.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",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/dom.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/erreurs.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/gardes.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/messages.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/nombres.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/reseau.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-remove-item.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-update-item.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/utils.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/scripts-page-panier-adresses.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/scripts-page-panier-code-promo.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/scripts-page-panier-panneau-produits.ts",
"_pipe.CtTFdEz3.js",
"_index-0eef19ec.BYszGP4b.js",
"_Either.DDEPhGsy.js",
"_exports.BFQs_g59.js",
"_exports.jfK3lrNh.js",
"_index.BykRh4R4.js",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/erreurs.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/messages.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/validation.ts",
"_index.CuMLbxmh.js",
"_MaybeAsync.BkJailCK.js",
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/cart.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/api/cart.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/adresses.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-coupons.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/couts-livraison.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/validation.ts",
"_index.CuMLbxmh.js",
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/api.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/messages-utilisateur.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/animations.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/erreurs/adresses.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/reseau.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-update-customer.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/v3/orders.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/orders.ts",
"_index-c1cc4c86.Ce2mb7Nd.js",
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/api/orders.ts",
"_index-c1cc4c86.CgXEmUX3.js",
"_belt_Option-91f3b350.Dja5KR5O.js",
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/erreurs.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/api/erreurs.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/erreurs/codes-promo.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/gardes.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-apply-coupon.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-remove-coupon.ts"
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-remove-coupon.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-remove-item.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-update-item.ts"
],
"integrity": "sha512-dw8o2avVeepo/Ar+lbRm4Px77xpZFH5hP75w+w480Ejf9DDVeAwAtxEpEZwJl7QkUsYxFOsjtMsvkzZ/Z4ixpA=="
"integrity": "sha512-yPvv1GaNMIBfGxH6ll6jQyeLRS2zTJZ+wfdx2Bx2xPBkUqW3R8Y+opE5Jc//IUkbtXtjV5q9RdI3Vbl1za+ujg=="
},
"web/app/themes/haiku-atelier-2024/src/scripts/scripts-page-produit.ts": {
"file": "scripts-page-produit.js",
@ -722,20 +730,19 @@
"web/app/themes/haiku-atelier-2024/src/scripts/lib/utils.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/validation.ts",
"_pipe.CtTFdEz3.js",
"_index-0eef19ec.BYszGP4b.js",
"_index-0eef19ec.BAWlGMMA.js",
"_Either.DDEPhGsy.js",
"_exports.BFQs_g59.js",
"_exports.jfK3lrNh.js",
"_index.BykRh4R4.js",
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/messages.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/erreurs.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/messages.ts",
"_MaybeAsync.BkJailCK.js",
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/cart.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/api/cart.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/adresses.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-coupons.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/couts-livraison.ts",
"_belt_Option-91f3b350.Dja5KR5O.js"
],
"integrity": "sha512-MFvp0X7Je0gFNrn2UNlksAdiHNWh+flbZMS44NEPLS/cxwCDqbHhDy6D+uf7kGd5aAXt+JgRfK0hFK5zfd8nlQ=="
"integrity": "sha512-tRWai0GHl5z1xHc4V/hU90ejNZ+LzxGPDpv9Xnw0QWLPSNKuHCwvrurFX6MwjRX2H8z3Oh2tDQKU/r6NzMTSZQ=="
}
}

View file

@ -1,2 +0,0 @@
import{E as o,r as h,l as P,M,n as u,j as c}from"./Either.DDEPhGsy.js";var f;const l={liftEither(i){if(i.isRight())return Promise.resolve(i.extract());throw i.extract()},fromPromise(i){return i.then(l.liftEither)},throwE(i){throw i}};class y{constructor(t){this.runPromise=t,this[f]="EitherAsync",this["fantasy-land/chain"]=this.chain,this["fantasy-land/alt"]=this.alt,this.then=(r,e)=>this.run().then(r,e)}leftOrDefault(t){return this.run().then(r=>r.leftOrDefault(t))}orDefault(t){return this.run().then(r=>r.orDefault(t))}join(){return n(async t=>{const r=await this;if(r.isRight()){const e=await r.extract();return t.liftEither(e)}return t.liftEither(r)})}ap(t){return n(async r=>{const e=await t;if(e.isRight()){const a=await this.run();return a.isRight()?e.extract()(a.extract()):r.liftEither(a)}return r.liftEither(e)})}alt(t){return n(async r=>{const e=await this.run();if(e.isRight())return e.extract();{const a=await t;return r.liftEither(a)}})}extend(t){return n(async r=>{const e=await this.run();if(e.isRight()){const a=n.liftEither(e);return r.liftEither(h(t(a)))}return r.liftEither(e)})}async run(){try{return h(await this.runPromise(l))}catch(t){return P(t)}}bimap(t,r){return n(async e=>{const a=await this.run();try{return await e.liftEither(a.bimap(t,r))}catch(E){throw await E}})}map(t){return n(r=>this.runPromise(r).then(t))}mapLeft(t){return n(async r=>{try{return await this.runPromise(r)}catch(e){throw await t(e)}})}chain(t){return n(async r=>{const e=await this.runPromise(r);return r.fromPromise(t(e))})}chainLeft(t){return n(async r=>{try{return await this.runPromise(r)}catch(e){return r.fromPromise(t(e))}})}toMaybeAsync(){return s(async({liftMaybe:t})=>{const r=await this.run();return t(r.toMaybe())})}swap(){return n(async t=>{const r=await this.run();return r.isRight()&&t.throwE(r.extract()),t.liftEither(h(r.extract()))})}ifLeft(t){return n(async r=>{const e=await this.run();return e.ifLeft(t),r.liftEither(e)})}ifRight(t){return n(async r=>{const e=await this.run();return e.ifRight(t),r.liftEither(e)})}void(){return this.map(t=>{})}caseOf(t){return this.run().then(r=>r.caseOf(t))}finally(t){return n(({fromPromise:r})=>r(this.run().finally(t)))}}f=Symbol.toStringTag;const n=Object.assign(i=>new y(i),{fromPromise:i=>n(({fromPromise:t})=>t(i())),liftEither:i=>n(({liftEither:t})=>t(i)),lefts:i=>Promise.all(i.map(t=>t.run())).then(o.lefts),rights:i=>Promise.all(i.map(t=>t.run())).then(o.rights),sequence:i=>n(async t=>{let r=[];for await(const e of i){if(e.isLeft())return t.liftEither(e);r.push(e.extract())}return t.liftEither(h(r))}),all:i=>n.fromPromise(async()=>Promise.all(i).then(o.sequence))});y.prototype.constructor=n;var m;const w={liftMaybe(i){if(i.isJust())return Promise.resolve(i.extract());throw u},fromPromise(i){return i.then(w.liftMaybe)}};class b{constructor(t){this.runPromise=t,this[m]="MaybeAsync",this["fantasy-land/chain"]=this.chain,this["fantasy-land/filter"]=this.filter,this["fantasy-land/alt"]=this.alt}orDefault(t){return this.run().then(r=>r.orDefault(t))}join(){return s(async t=>{const r=await this.run();if(r.isJust()){const e=await r.extract();return t.liftMaybe(e)}return t.liftMaybe(u)})}ap(t){return s(async r=>{const e=await t;if(e.isJust()){const a=await this.run();return a.isJust()?e.extract()(a.extract()):r.liftMaybe(u)}return r.liftMaybe(u)})}alt(t){return s(async r=>{const e=await this.run();if(e.isJust())return e.extract();{const a=await t;return r.liftMaybe(a)}})}extend(t){return s(async r=>{const e=await this.run();if(e.isJust()){const a=s.liftMaybe(e);return r.liftMaybe(c(t(a)))}return r.liftMaybe(u)})}filter(t){return s(async r=>{const e=await this.run();return r.liftMaybe(e.filter(t))})}async run(){try{return c(await this.runPromise(w))}catch{return u}}map(t){return s(r=>this.runPromise(r).then(t))}chain(t){return s(async r=>{const e=await this.runPromise(r);return r.fromPromise(t(e))})}toEitherAsync(t){return n(async({liftEither:r})=>{const e=await this.run();return r(e.toEither(t))})}ifJust(t){return s(async r=>{const e=await this.run();return e.ifJust(t),r.liftMaybe(e)})}ifNothing(t){return s(async r=>{const e=await this.run();return e.ifNothing(t),r.liftMaybe(e)})}void(){return this.map(t=>{})}caseOf(t){return this.run().then(r=>r.caseOf(t))}finally(t){return s(({fromPromise:r})=>r(this.run().finally(t)))}then(t,r){return this.run().then(t,r)}}m=Symbol.toStringTag;const s=Object.assign(i=>new b(i),{catMaybes:i=>Promise.all(i).then(M.catMaybes),fromPromise:i=>s(({fromPromise:t})=>t(i())),liftMaybe:i=>s(({liftMaybe:t})=>t(i))});b.prototype.constructor=s;export{n as E};
//# sourceMappingURL=MaybeAsync.BkJailCK.js.map

File diff suppressed because one or more lines are too long

View file

@ -1 +1 @@
{"version":3,"file":"adresses.js","sources":["../../src/scripts/lib/erreurs/adresses.ts"],"sourcesContent":["/** Types d'Erreurs liées aux adresses. */\n\nexport class ErreurAdresseInvalide extends Error {\n problemes: Record<string, string>;\n\n constructor(problemes: Record<string, string>) {\n super(\"Le ou les adresses fournies sont invalides.\");\n this.name = \"ErreurAdresseInvalide\";\n this.problemes = problemes;\n }\n}\n"],"names":["ErreurAdresseInvalide","problemes","__publicField"],"mappings":"oKAEO,MAAMA,UAA8B,KAAM,CAG/C,YAAYC,EAAmC,CAC7C,MAAM,6CAA6C,EAHrDC,EAAA,kBAIE,KAAK,KAAO,wBACZ,KAAK,UAAYD,CAAA,CAErB"}
{"version":3,"file":"adresses.js","sources":["../../src/scripts/lib/erreurs/adresses.ts"],"sourcesContent":["/** Types d'Erreurs liées aux adresses WooCommerce. */\n\nexport class ErreurAdresseInvalide extends Error {\n problemes: Record<string, string>;\n\n constructor(problemes: Record<string, string>) {\n super(\"Le ou les adresses fournies sont invalides.\");\n this.name = \"ErreurAdresseInvalide\";\n this.problemes = problemes;\n }\n}\n"],"names":["ErreurAdresseInvalide","problemes","__publicField"],"mappings":"oKAEO,MAAMA,UAA8B,KAAM,CAG/C,YAAYC,EAAmC,CAC7C,MAAM,6CAA6C,EAHrDC,EAAA,kBAIE,KAAK,KAAO,wBACZ,KAAK,UAAYD,CAAA,CAErB"}

View file

@ -1,2 +1,2 @@
const E="wp-json",t=`/${E}/wc/store/cart`,_=`/${E}/wc/store/cart/add-item`,s=`/${E}/wc/store/cart/apply-coupon`,c=`/${E}/wc/store/cart/remove-coupon`,o=`/${E}/wc/store/cart/remove-item`,T=`/${E}/wc/store/cart/update-item`,I=`/${E}/wc/store/cart/update-customer`,R=`/${E}/wc/v3/products`,a=`/${E}/wc/v3/orders`,r="Nonce",e="retry-after",A="x-sentry-rate-limits";export{r as E,R,o as a,T as b,s as c,c as d,_ as e,t as f,I as g,a as h,A as i,e as j};
const E="wp-json",t=`/${E}/wc/store/cart/add-item`,_=`/${E}/wc/store/cart/apply-coupon`,s=`/${E}/wc/store/cart/update-item`,c=`/${E}/wc/store/cart/update-customer`,T=`/${E}/wc/v3/orders`,o=`/${E}/wc/v3/products`,I=`/${E}/wc/store/cart/remove-item`,R=`/${E}/wc/store/cart/remove-coupon`,a="Nonce",e="retry-after",r="x-sentry-rate-limits";export{a as E,o as R,_ as a,R as b,s as c,I as d,t as e,c as f,T as g,r as h,e as i};
//# sourceMappingURL=api.js.map

View file

@ -1 +1 @@
{"version":3,"file":"api.js","sources":["../../src/scripts/constantes/api.ts"],"sourcesContent":["// Chemins et Routes pour l'API WordPress\nexport const CHEMIN_API_REST = \"wp-json\";\nexport const ROUTE_API_PANIER = `/${CHEMIN_API_REST}/wc/store/cart`;\nexport const ROUTE_API_AJOUTE_ARTICLE_PANIER = `/${CHEMIN_API_REST}/wc/store/cart/add-item`;\nexport const ROUTE_API_APPLIQUE_COUPON = `/${CHEMIN_API_REST}/wc/store/cart/apply-coupon`;\nexport const ROUTE_API_RETIRE_COUPON = `/${CHEMIN_API_REST}/wc/store/cart/remove-coupon`;\nexport const ROUTE_API_COUPONS = `/${CHEMIN_API_REST}/wc/store/cart/coupons`;\nexport const ROUTE_API_RETIRE_ARTICLE_PANIER = `/${CHEMIN_API_REST}/wc/store/cart/remove-item`;\nexport const ROUTE_API_MAJ_ARTICLE_PANIER = `/${CHEMIN_API_REST}/wc/store/cart/update-item`;\nexport const ROUTE_API_MAJ_CLIENT = `/${CHEMIN_API_REST}/wc/store/cart/update-customer`;\nexport const ROUTE_API_PRODUITS = `/${CHEMIN_API_REST}/wc/store/products`;\nexport const ROUTE_API_NOUVELLE_PRODUCTS = `/${CHEMIN_API_REST}/wc/v3/products`;\nexport const ROUTE_API_NOUVELLE_COMMANDES = `/${CHEMIN_API_REST}/wc/v3/orders`;\n\n// En-têtes\nexport const ENTETE_WC_NONCE = \"Nonce\";\nexport const ENTETE_GLITCHTIP_RETRY_AFTER = \"retry-after\";\nexport const ENTETE_GLITCHTIP_RATE_LIMITS = \"x-sentry-rate-limits\";\n"],"names":["CHEMIN_API_REST","ROUTE_API_PANIER","ROUTE_API_AJOUTE_ARTICLE_PANIER","ROUTE_API_APPLIQUE_COUPON","ROUTE_API_RETIRE_COUPON","ROUTE_API_RETIRE_ARTICLE_PANIER","ROUTE_API_MAJ_ARTICLE_PANIER","ROUTE_API_MAJ_CLIENT","ROUTE_API_NOUVELLE_PRODUCTS","ROUTE_API_NOUVELLE_COMMANDES","ENTETE_WC_NONCE","ENTETE_GLITCHTIP_RETRY_AFTER","ENTETE_GLITCHTIP_RATE_LIMITS"],"mappings":"AACO,MAAMA,EAAkB,UAClBC,EAAmB,IAAID,CAAe,iBACtCE,EAAkC,IAAIF,CAAe,0BACrDG,EAA4B,IAAIH,CAAe,8BAC/CI,EAA0B,IAAIJ,CAAe,+BAE7CK,EAAkC,IAAIL,CAAe,6BACrDM,EAA+B,IAAIN,CAAe,6BAClDO,EAAuB,IAAIP,CAAe,iCAE1CQ,EAA8B,IAAIR,CAAe,kBACjDS,EAA+B,IAAIT,CAAe,gBAGlDU,EAAkB,QAClBC,EAA+B,cAC/BC,EAA+B"}
{"version":3,"file":"api.js","sources":["../../src/scripts/constantes/api.ts"],"sourcesContent":["/** Chemins et Routes pour l'API WordPress/ */\n\nexport const CHEMIN_API_REST = \"wp-json\";\nexport const ROUTE_API_AJOUTE_ARTICLE_PANIER = `/${CHEMIN_API_REST}/wc/store/cart/add-item`;\nexport const ROUTE_API_APPLIQUE_COUPON = `/${CHEMIN_API_REST}/wc/store/cart/apply-coupon`;\nexport const ROUTE_API_COUPONS = `/${CHEMIN_API_REST}/wc/store/cart/coupons`;\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_NOUVELLE_COMMANDES = `/${CHEMIN_API_REST}/wc/v3/orders`;\nexport const ROUTE_API_NOUVELLE_PRODUCTS = `/${CHEMIN_API_REST}/wc/v3/products`;\nexport const ROUTE_API_PANIER = `/${CHEMIN_API_REST}/wc/store/cart`;\nexport const ROUTE_API_PRODUITS = `/${CHEMIN_API_REST}/wc/store/products`;\nexport const ROUTE_API_RETIRE_ARTICLE_PANIER = `/${CHEMIN_API_REST}/wc/store/cart/remove-item`;\nexport const ROUTE_API_RETIRE_COUPON = `/${CHEMIN_API_REST}/wc/store/cart/remove-coupon`;\n\n// En-têtes\nexport const ENTETE_WC_NONCE = \"Nonce\";\nexport const ENTETE_GLITCHTIP_RETRY_AFTER = \"retry-after\";\nexport const ENTETE_GLITCHTIP_RATE_LIMITS = \"x-sentry-rate-limits\";\n"],"names":["CHEMIN_API_REST","ROUTE_API_AJOUTE_ARTICLE_PANIER","ROUTE_API_APPLIQUE_COUPON","ROUTE_API_MAJ_ARTICLE_PANIER","ROUTE_API_MAJ_CLIENT","ROUTE_API_NOUVELLE_COMMANDES","ROUTE_API_NOUVELLE_PRODUCTS","ROUTE_API_RETIRE_ARTICLE_PANIER","ROUTE_API_RETIRE_COUPON","ENTETE_WC_NONCE","ENTETE_GLITCHTIP_RETRY_AFTER","ENTETE_GLITCHTIP_RATE_LIMITS"],"mappings":"AAEO,MAAMA,EAAkB,UAClBC,EAAkC,IAAID,CAAe,0BACrDE,EAA4B,IAAIF,CAAe,8BAE/CG,EAA+B,IAAIH,CAAe,6BAClDI,EAAuB,IAAIJ,CAAe,iCAC1CK,EAA+B,IAAIL,CAAe,gBAClDM,EAA8B,IAAIN,CAAe,kBAGjDO,EAAkC,IAAIP,CAAe,6BACrDQ,EAA0B,IAAIR,CAAe,+BAG7CS,EAAkB,QAClBC,EAA+B,cAC/BC,EAA+B"}

View file

@ -1 +1 @@
{"version":3,"file":"cart.js","sources":["../../src/scripts/lib/schemas/api/cart.ts"],"sourcesContent":["import * as v from \"valibot\";\n\nimport { CATALOG_VISIBILITIES } from \"../../../constantes/cart.ts\";\nimport { WCStoreBillingAddressSchema, WCStoreShippingAddressSchema } from \"./adresses.ts\";\nimport { WCStoreCartCouponsSchema } from \"./cart-coupons.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.pipe(\n v.union([v.string(), v.null()]),\n v.transform(Number),\n ),\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 /** List of applied basket coupons. */\n coupons: v.array(WCStoreCartCouponsSchema),\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":["WCStoreCartItemTotalsSchema","v.object","v.string","v.number","WCStoreCartItemSchema","v.boolean","v.enum","CATALOG_VISIBILITIES","v.unknown","v.array","v.union","v.null","v.pipe","v.url","WCStoreCartTotalsSchema","v.transform","WCStoreCartSchema","WCStoreBillingAddressSchema","WCStoreCartCouponsSchema","v.integer","WCStoreShippingAddressSchema","WCStoreShippingRateSchema"],"mappings":"oRAOa,MAAAA,EAA8BC,EAAS,CAClD,cAAeC,EAAS,EACxB,2BAA4BA,EAAS,EACrC,oBAAqBC,EAAS,EAC9B,gBAAiBD,EAAS,EAC1B,gBAAiBA,EAAS,EAC1B,gBAAiBA,EAAS,EAC1B,4BAA6BA,EAAS,EACtC,cAAeA,EAAS,EACxB,kBAAmBA,EAAS,EAC5B,WAAYA,EAAS,EACrB,eAAgBA,EAAS,CAC3B,CAAC,EAEYE,EAAwBH,EAAS,CAC5C,mBAAoBI,EAAU,EAC9B,mBAAoBC,EAAOC,CAAoB,EAC/C,YAAaL,EAAS,EACtB,WAAYM,EAAU,EACtB,GAAIL,EAAS,EACb,OAAQM,EAAQD,GAAW,EAC3B,UAAWC,EAAQD,GAAW,EAC9B,IAAKN,EAAS,EACd,oBAAqBQ,EAAQ,CAACC,EAAE,CAAM,CAAC,EACvC,KAAMT,EAAS,EACf,UAAWU,EAAOV,EAAY,EAAAW,GAAO,EACrC,OAAQL,EAAU,EAClB,SAAUL,EAAS,EACnB,gBAAiBK,EAAU,EAC3B,kBAAmBN,EAAS,EAC5B,qBAAsBG,EAAU,EAChC,IAAKH,EAAS,EACd,kBAAmBG,EAAU,EAC7B,OAAQL,EACR,KAAME,EAAS,EACf,UAAWO,EAAQD,EAAW,CAAA,CAChC,CAAC,EAEYM,EAA0Bb,EAAS,CAC9C,cAAeC,EAAS,EACxB,2BAA4BA,EAAS,EACrC,oBAAqBC,EAAS,EAC9B,gBAAiBD,EAAS,EAC1B,gBAAiBA,EAAS,EAC1B,gBAAiBA,EAAS,EAC1B,4BAA6BA,EAAS,EACtC,UAAWO,EAAQD,GAAW,EAC9B,eAAgBN,EAAS,EACzB,mBAAoBA,EAAS,EAC7B,WAAYA,EAAS,EACrB,eAAgBA,EAAS,EACzB,YAAaA,EAAS,EACtB,gBAAiBA,EAAS,EAC1B,YAAaA,EAAS,EACtB,eAAgBU,EACdF,EAAQ,CAACR,IAAYS,EAAQ,CAAA,CAAC,EAC9BI,EAAY,MAAM,CACpB,EACA,mBAAoBL,EAAQ,CAACR,IAAYS,EAAQ,CAAA,CAAC,EAClD,UAAWT,EAAS,CACtB,CAAC,EAEYc,EAAoBf,EAAS,CACxC,gBAAiBgB,EAEjB,QAASR,EAAQS,CAAwB,EACzC,YAAaV,EAAU,EACvB,OAAQA,EAAU,EAClB,WAAYA,EAAU,EACtB,KAAMA,EAAU,EAChB,wBAAyBH,EAAU,EACnC,MAAOI,EAAQL,CAAqB,EACpC,YAAaQ,EAAOT,EAAY,EAAAgB,GAAW,EAC3C,aAAcP,EAAOT,EAAY,EAAAgB,GAAW,EAC5C,cAAed,EAAU,EACzB,eAAgBA,EAAU,EAC1B,gBAAiBG,EAAU,EAC3B,qBAAsBA,EAAU,EAChC,iBAAkBY,EAClB,eAAgBX,EAAQY,CAAyB,EACjD,OAAQP,CACV,CAAC"}
{"version":3,"file":"cart.js","sources":["../../src/scripts/lib/schemas/api/cart.ts"],"sourcesContent":["import * as v from \"valibot\";\n\nimport { CATALOG_VISIBILITIES } from \"../../../constantes/api/cart.ts\";\nimport { WCStoreBillingAddressSchema, WCStoreShippingAddressSchema } from \"./adresses.ts\";\nimport { WCStoreCartCouponsSchema } from \"./cart-coupons.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.pipe(\n v.union([v.string(), v.null()]),\n v.transform(Number),\n ),\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 /** List of applied basket coupons. */\n coupons: v.array(WCStoreCartCouponsSchema),\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":["WCStoreCartItemTotalsSchema","v.object","v.string","v.number","WCStoreCartItemSchema","v.boolean","v.enum","CATALOG_VISIBILITIES","v.unknown","v.array","v.union","v.null","v.pipe","v.url","WCStoreCartTotalsSchema","v.transform","WCStoreCartSchema","WCStoreBillingAddressSchema","WCStoreCartCouponsSchema","v.integer","WCStoreShippingAddressSchema","WCStoreShippingRateSchema"],"mappings":"oRAOa,MAAAA,EAA8BC,EAAS,CAClD,cAAeC,EAAS,EACxB,2BAA4BA,EAAS,EACrC,oBAAqBC,EAAS,EAC9B,gBAAiBD,EAAS,EAC1B,gBAAiBA,EAAS,EAC1B,gBAAiBA,EAAS,EAC1B,4BAA6BA,EAAS,EACtC,cAAeA,EAAS,EACxB,kBAAmBA,EAAS,EAC5B,WAAYA,EAAS,EACrB,eAAgBA,EAAS,CAC3B,CAAC,EAEYE,EAAwBH,EAAS,CAC5C,mBAAoBI,EAAU,EAC9B,mBAAoBC,EAAOC,CAAoB,EAC/C,YAAaL,EAAS,EACtB,WAAYM,EAAU,EACtB,GAAIL,EAAS,EACb,OAAQM,EAAQD,GAAW,EAC3B,UAAWC,EAAQD,GAAW,EAC9B,IAAKN,EAAS,EACd,oBAAqBQ,EAAQ,CAACC,EAAE,CAAM,CAAC,EACvC,KAAMT,EAAS,EACf,UAAWU,EAAOV,EAAY,EAAAW,GAAO,EACrC,OAAQL,EAAU,EAClB,SAAUL,EAAS,EACnB,gBAAiBK,EAAU,EAC3B,kBAAmBN,EAAS,EAC5B,qBAAsBG,EAAU,EAChC,IAAKH,EAAS,EACd,kBAAmBG,EAAU,EAC7B,OAAQL,EACR,KAAME,EAAS,EACf,UAAWO,EAAQD,EAAW,CAAA,CAChC,CAAC,EAEYM,EAA0Bb,EAAS,CAC9C,cAAeC,EAAS,EACxB,2BAA4BA,EAAS,EACrC,oBAAqBC,EAAS,EAC9B,gBAAiBD,EAAS,EAC1B,gBAAiBA,EAAS,EAC1B,gBAAiBA,EAAS,EAC1B,4BAA6BA,EAAS,EACtC,UAAWO,EAAQD,GAAW,EAC9B,eAAgBN,EAAS,EACzB,mBAAoBA,EAAS,EAC7B,WAAYA,EAAS,EACrB,eAAgBA,EAAS,EACzB,YAAaA,EAAS,EACtB,gBAAiBA,EAAS,EAC1B,YAAaA,EAAS,EACtB,eAAgBU,EACdF,EAAQ,CAACR,IAAYS,EAAQ,CAAA,CAAC,EAC9BI,EAAY,MAAM,CACpB,EACA,mBAAoBL,EAAQ,CAACR,IAAYS,EAAQ,CAAA,CAAC,EAClD,UAAWT,EAAS,CACtB,CAAC,EAEYc,EAAoBf,EAAS,CACxC,gBAAiBgB,EAEjB,QAASR,EAAQS,CAAwB,EACzC,YAAaV,EAAU,EACvB,OAAQA,EAAU,EAClB,WAAYA,EAAU,EACtB,KAAMA,EAAU,EAChB,wBAAyBH,EAAU,EACnC,MAAOI,EAAQL,CAAqB,EACpC,YAAaQ,EAAOT,EAAY,EAAAgB,GAAW,EAC3C,aAAcP,EAAOT,EAAY,EAAAgB,GAAW,EAC5C,cAAed,EAAU,EACzB,eAAgBA,EAAU,EAC1B,gBAAiBG,EAAU,EAC3B,qBAAsBA,EAAU,EAChC,iBAAkBY,EAClB,eAAgBX,EAAQY,CAAyB,EACjD,OAAQP,CACV,CAAC"}

View file

@ -1 +1 @@
{"version":3,"file":"cart2.js","sources":["../../src/scripts/constantes/cart.ts"],"sourcesContent":["export const CATALOG_VISIBILITIES = {\n INVISIBLE: \"invisible\",\n VISIBLE: \"visible\",\n} as const;\n"],"names":["CATALOG_VISIBILITIES"],"mappings":"AAAO,MAAMA,EAAuB,CAClC,UAAW,YACX,QAAS,SACX"}
{"version":3,"file":"cart2.js","sources":["../../src/scripts/constantes/api/cart.ts"],"sourcesContent":["/** Constantes liées aux Paniers WooCommerce. */\n\nexport const CATALOG_VISIBILITIES = {\n INVISIBLE: \"invisible\",\n VISIBLE: \"visible\",\n} as const;\n"],"names":["CATALOG_VISIBILITIES"],"mappings":"AAEO,MAAMA,EAAuB,CAClC,UAAW,YACX,QAAS,SACX"}

View file

@ -1 +1 @@
{"version":3,"file":"codes-promo.js","sources":["../../src/scripts/lib/erreurs/codes-promo.ts"],"sourcesContent":["/** Types d'Erreurs liés aux codes promos. */\n\nexport class ErreurCodePromoInvalide extends Error {\n constructor(message: string) {\n super(`Code promo « ${message} » invalide.`);\n this.name = \"ErreurCodePromoInvalide\";\n }\n}\n"],"names":["ErreurCodePromoInvalide","message"],"mappings":"AAEO,MAAMA,UAAgC,KAAM,CACjD,YAAYC,EAAiB,CACrB,MAAA,gBAAgBA,CAAO,cAAc,EAC3C,KAAK,KAAO,yBAAA,CAEhB"}
{"version":3,"file":"codes-promo.js","sources":["../../src/scripts/lib/erreurs/codes-promo.ts"],"sourcesContent":["/** Types d'Erreurs liés aux codes promos WooCommerce. */\n\nexport class ErreurCodePromoInvalide extends Error {\n constructor(message: string) {\n super(`Code promo « ${message} » invalide.`);\n this.name = \"ErreurCodePromoInvalide\";\n }\n}\n"],"names":["ErreurCodePromoInvalide","message"],"mappings":"AAEO,MAAMA,UAAgC,KAAM,CACjD,YAAYC,EAAiB,CACrB,MAAA,gBAAgBA,CAAO,cAAc,EAC3C,KAAK,KAAO,yBAAA,CAEhB"}

View file

@ -1,2 +1,2 @@
const s="aria-hidden",_="aria-selected",n="data-cache",T="data-chargement",t="data-cle-panier",o="data-code-promo-present",e="data-contient-articles",R="disabled",i="data-ensemble-epingle-boite-actif",U="hidden",c="data-id-categorie-produits",S="data-id-ensemble-epingle-boite",I="data-index-image-active",O="data-livraison-validee",L="data-menu-mobile-active",C="data-page",r="data-prix",A="#bouton-menu-mobile",N=".compte-panier a[rel='cart']",p="#menu-categories-produits ul li a",u="#menu-categories-produits",d="#menu-mobile",l="#bouton-ajout-panier",P="#page-panier",B="a[role='tab']",m="section[role='tabpanel']",D="#selecteur-variation",M="#panneau-informations-client .panneau__pied-de-page button",g="button.detail-produit__actions__addition",b="#panneau-panier #bouton-code-promo",G="#separation-adresses",f="button.detail-produit__actions__soustraction",F="button.detail-produit__actions__suppression",H="#panneau-panier #champ-code-promo",h="input",V="#panneau-panier #ensemble-code-promo",v="article",x="#panneau-informations-client .panneau__formulaires__facturation",X="#panneau-informations-client form",y="#panneau-panier #instructions-client",Q="#panneau-panier .panneau__instructions-code-promo__code-promo__message",Y="#panneau-informations-client #message-formulaire-adresses",q=".detail-produit__nom-prix span",$="#panneau-panier #sous-total-livraison strong",j="#panneau-panier #sous-total-livraison span",J="#panneau-panier #sous-total-produits strong",k="#panneau-panier .panneau__pied-de-page p span",w="#panneau-panier #sous-total-reduction",z="#panneau-panier #sous-total-reduction strong",K=".storytelling",W=".storytelling__image",Z="#page-boutique #bouton-plus-de-produits",EE="#page-boutique .grille-produits",E="boite-texte",aE="boite-texte__bouton-fermeture",a="epingle",sE=`.${E}`,_E=".storytelling__conteneur",nE=`.${a}`,TE=".fleches-defilement",tE=".fleches-defilement__bouton:last-of-type",oE=".fleches-defilement__bouton:first-of-type",eE=".colonne-droite img",RE=".colonne-gauche img",iE=".photos-produit",UE=".selecteur-produit__prix";export{_ as $,e as A,t as B,aE as C,f as D,h as E,g as F,F as G,q as H,b as I,H as J,V as K,Q as L,w as M,o as N,l as O,D as P,B as Q,m as R,N as S,UE as T,TE as U,oE as V,tE as W,iE as X,RE as Y,eE as Z,I as _,u as a,r as a0,A as a1,d as a2,L as a3,M as a4,X as a5,y as a6,Y as a7,$ as a8,j as a9,O as aa,p as b,S as c,i as d,a as e,_E as f,nE as g,sE as h,W as i,K as j,n as k,s as l,Z as m,EE as n,c as o,C as p,R as q,T as r,U as s,v as t,P as u,J as v,z as w,k as x,G as y,x as z};
const s="aria-hidden",_="aria-selected",n="data-cache",T="data-chargement",t="data-cle-panier",o="data-code-promo-present",e="data-contient-articles",R="disabled",i="data-ensemble-epingle-boite-actif",U="hidden",c="data-id-categorie-produits",S="data-id-ensemble-epingle-boite",I="data-index-image-active",O="data-livraison-validee",L="data-menu-mobile-active",C="data-page",r="data-prix",A="#bouton-menu-mobile",N=".compte-panier a[rel='cart']",p="#menu-categories-produits ul li a",u="#menu-categories-produits",d="#menu-mobile",l="#bouton-ajout-panier",P="#page-panier",B="a[role='tab']",m="section[role='tabpanel']",D="#selecteur-variation",M="#panneau-informations-client .panneau__pied-de-page button",g="button.detail-produit__actions__addition",b="#panneau-panier #bouton-code-promo",G="#separation-adresses",f="button.detail-produit__actions__soustraction",F="button.detail-produit__actions__suppression",H="#panneau-panier #champ-code-promo",h="input",V="#panneau-panier #ensemble-code-promo",v="article",x="#panneau-informations-client .panneau__formulaires__facturation",X="#panneau-informations-client form",y="#panneau-panier #instructions-client",Q="#panneau-panier .panneau__instructions-code-promo__code-promo__message",Y="#panneau-informations-client #message-formulaire-adresses",q=".detail-produit__nom-prix span",$="#panneau-panier #sous-total-livraison strong",j="#panneau-panier #sous-total-livraison span",J="#panneau-panier #sous-total-produits strong",k="#panneau-panier .panneau__pied-de-page p span",w="#panneau-panier #sous-total-reduction",z="#panneau-panier #sous-total-reduction strong",K=".storytelling",W=".storytelling__image",Z="#page-boutique #bouton-plus-de-produits",EE="#page-boutique .grille-produits",E="boite-texte",aE="boite-texte__bouton-fermeture",a="epingle",sE=`.${E}`,_E=".storytelling__conteneur",nE=`.${a}`,TE=".fleches-defilement",tE=".fleches-defilement__bouton:last-of-type",oE=".fleches-defilement__bouton:first-of-type",eE=".colonne-droite img",RE=".colonne-gauche img",iE=".photos-produit",UE=".selecteur-produit__prix";export{_ as $,e as A,t as B,aE as C,q as D,h as E,g as F,f as G,F as H,b as I,H as J,V as K,Q as L,w as M,o as N,l as O,D as P,B as Q,m as R,N as S,UE as T,TE as U,oE as V,tE as W,iE as X,RE as Y,eE as Z,I as _,u as a,r as a0,A as a1,d as a2,L as a3,M as a4,X as a5,y as a6,Y as a7,$ as a8,j as a9,O as aa,p as b,S as c,i as d,a as e,_E as f,nE as g,sE as h,W as i,K as j,n as k,s as l,Z as m,EE as n,c as o,C as p,R as q,T as r,U as s,v as t,P as u,J as v,z as w,k as x,G as y,x as z};
//# sourceMappingURL=dom.js.map

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -1,2 +1,2 @@
const o="woocommerce_rest_cart_coupon_error";export{o as E};
import{c as o}from"./exports.jfK3lrNh.js";const d=r=>`Le selecteur "${r}" est invalide`,l=r=>`La requête "${r}" n'a retourné aucun Élément.`,h=r=>new SyntaxError(r);class s extends Error{constructor(e="400 BadRequestError"){super(e),this.name="BadRequestError"}}class N extends Error{constructor(e){super(JSON.stringify(e)),this.name="CleNonTrouveError"}}class t extends Error{constructor(e){super(JSON.stringify(e)),this.name="NonExistingKeyError"}}class n extends Error{constructor(e="404 NotFoundError"){super(e),this.name="NotFoundError"}}class E extends Error{constructor(e="500 ServerError"){super(e),this.name="ServerError"}}class a extends Error{constructor(e="401 UnauthorizedError"){super(e),this.name="UnauthorizedError"}}class c extends Error{constructor(e){super(JSON.stringify(e)),this.name="UnknownError"}}const w=r=>new c(r),x=r=>new t(r),m=r=>{throw r},p=r=>{throw new s(`(${r.code}) ${r.message}`)},v=r=>{throw new a(`(${r.code}) ${r.message}`)},S=r=>{throw new n(`(${r.code}) ${r.message}`)},R=r=>{throw new E(r)},u=r=>(console.error(r),o(r)),g=r=>{throw u(r),r};export{s as B,N as C,w as E,t as N,E as S,m as a,p as b,v as c,S as d,h as e,g as f,x as g,d as h,l as i,R as l,u as r};
//# sourceMappingURL=erreurs.js.map

File diff suppressed because one or more lines are too long

View file

@ -1,2 +1,2 @@
import{c as o}from"./exports.BFQs_g59.js";const d=r=>`Le selecteur "${r}" est invalide`,l=r=>`La requête "${r}" n'a retourné aucun Élément.`,h=r=>new SyntaxError(r);class s extends Error{constructor(e="400 BadRequestError"){super(e),this.name="BadRequestError"}}class N extends Error{constructor(e){super(JSON.stringify(e)),this.name="CleNonTrouveError"}}class t extends Error{constructor(e){super(JSON.stringify(e)),this.name="NonExistingKeyError"}}class n extends Error{constructor(e="404 NotFoundError"){super(e),this.name="NotFoundError"}}class E extends Error{constructor(e="500 ServerError"){super(e),this.name="ServerError"}}class a extends Error{constructor(e="401 UnauthorizedError"){super(e),this.name="UnauthorizedError"}}class c extends Error{constructor(e){super(JSON.stringify(e)),this.name="UnknownError"}}const w=r=>new c(r),x=r=>new t(r),m=r=>{throw r},p=r=>{throw new s(`(${r.code}) ${r.message}`)},v=r=>{throw new a(`(${r.code}) ${r.message}`)},S=r=>{throw new n(`(${r.code}) ${r.message}`)},R=r=>{throw new E(r)},u=r=>(console.error(r),o(r)),g=r=>{throw u(r),r};export{s as B,N as C,w as E,t as N,E as S,p as a,v as b,S as c,m as d,h as e,g as f,x as g,d as h,l as i,R as l,u as r};
const o="woocommerce_rest_cart_coupon_error";export{o as E};
//# sourceMappingURL=erreurs2.js.map

File diff suppressed because one or more lines are too long

View file

@ -1,2 +1,2 @@
import{o as a,l as d,c as e,s,u as t,a as l,d as o,i,f as n,n as c}from"./index.BykRh4R4.js";const m=a({code:s(),data:a({status:c()}),message:s()}),p=a({body:m,status:c()}),_=r=>n(p,r),g=a({code:d("rest_invalid_param"),data:a({details:a({billing_address:e(a({code:s(),data:t([o(),s()]),message:s()})),shipping_address:e(a({code:s(),data:t([o(),s()]),message:s()}))}),params:a({billing_address:e(s()),shipping_address:e(s())}),status:d(400)}),message:l(s(),i("Invalid parameter(s):"),i("_address"))}),W=r=>n(g,r);export{p as W,W as a,_ as e};
import{o as a,l as d,c as e,s,u as t,a as l,d as o,i,f as n,n as c}from"./index.BykRh4R4.js";const m=a({code:s(),data:a({status:c()}),message:s()}),p=a({body:m,status:c()}),_=r=>n(p,r),g=a({code:d("rest_invalid_param"),data:a({details:a({billing_address:e(a({code:s(),data:t([o(),s()]),message:s()})),shipping_address:e(a({code:s(),data:t([o(),s()]),message:s()}))}),params:a({billing_address:e(s()),shipping_address:e(s())}),status:d(400)}),message:l(s(),i("Invalid parameter(s):"),i("_address"))}),W=r=>n(g,r);export{p as W,_ as a,W as e};
//# sourceMappingURL=erreurs3.js.map

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -1,2 +1,2 @@
const s=e=>t=>t instanceof e,n=s(HTMLSelectElement),o=e=>e instanceof Error,c=e=>e.status===500;export{o as a,n as b,c as e};
const s=e=>t=>t instanceof e,n=s(HTMLSelectElement),o=e=>e instanceof Error,c=e=>e.status===500;export{n as a,o as b,c as e};
//# sourceMappingURL=gardes.js.map

View file

@ -1,2 +0,0 @@
import{f as o,E as t}from"./api.js";import{E as r}from"./MaybeAsync.BkJailCK.js";import{r as i,l as n}from"./Either.DDEPhGsy.js";const a=_etats,s=()=>fetch(o,{credentials:"same-origin",headers:{Accept:"application/json","Content-Type":"application/json",[t]:a.nonce},method:"GET",mode:"same-origin",signal:AbortSignal.timeout(5e3)}).then(i).catch(n);r.fromPromise(s).map(e=>e.json()).ifLeft(e=>{console.error(e)});
//# sourceMappingURL=gestion-panier.js.map

View file

@ -1 +0,0 @@
{"version":3,"file":"gestion-panier.js","sources":["../../src/scripts/lib/gestion-panier.ts"],"sourcesContent":["/**\n * Fonctions liées à la gestion du Panier.\n */\n\nimport { type Either, EitherAsync, Left, Right } from \"purify-ts\";\n\nimport { ENTETE_WC_NONCE, ROUTE_API_PANIER } from \"../constantes/api.ts\";\n\n/** États utiles pour les scripts. */\ninterface Etats {\n /** Un nonce pour l'authentification de requêtes API */\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: Etats = _etats;\n\nconst requeteRecuperePanier = (): Promise<Either<Error, Response>> =>\n fetch(\n ROUTE_API_PANIER,\n {\n credentials: \"same-origin\",\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n [ENTETE_WC_NONCE]: ETATS.nonce,\n },\n method: \"GET\",\n mode: \"same-origin\",\n signal: AbortSignal.timeout(5000),\n },\n )\n .then(Right)\n .catch(Left);\n\nexport const recuperePanier = EitherAsync\n .fromPromise(requeteRecuperePanier)\n .map(a => a.json())\n .ifLeft(e => {\n console.error(e);\n });\n"],"names":["ETATS","requeteRecuperePanier","ROUTE_API_PANIER","ENTETE_WC_NONCE","Right","Left","EitherAsync","a"],"mappings":"iIAgBA,MAAMA,EAAe,OAEfC,EAAwB,IAC5B,MACEC,EACA,CACE,YAAa,cACb,QAAS,CACP,OAAQ,mBACR,eAAgB,mBAChB,CAACC,CAAe,EAAGH,EAAM,KAC3B,EACA,OAAQ,MACR,KAAM,cACN,OAAQ,YAAY,QAAQ,GAAI,CAAA,CAEpC,EACG,KAAKI,CAAK,EACV,MAAMC,CAAI,EAEeC,EAC3B,YAAYL,CAAqB,EACjC,IAASM,GAAAA,EAAE,KAAM,CAAA,EACjB,OAAY,GAAA,CACX,QAAQ,MAAM,CAAC,CACjB,CAAC"}

View file

@ -1,2 +1,2 @@
import{_ as W,i as x,c as z,g as D,a as i,b as U,d as S,f as $,m as k,e as o,h as E}from"./belt_Option-91f3b350.Dja5KR5O.js";import{s as u,k as M,n as R,v as e,l as y,m as A}from"./dom2.js";var F=z("Promise.JsError");function G(n,r){return n.catch(function(t){return W(r,x(t)?t:{RE_EXN_ID:F,_1:t})})}function T(n){}function q(n){return u(n)}function I(n){}function J(n){if(n!=null)return u(n)}function O(n){if(n)return n}function a(n,r){return $(n==null?void 0:u(n),function(t){if(r(t))return u(t)})}function X(){if(arguments.length===1){const n=arguments;return function(t){return a(t,n[0])}}return a(arguments[0],arguments[1])}function j(n){try{return u(n(void 0))}catch{return}}function w(n){return G(n.then(function(r){return u(r)}),function(r){return Promise.resolve(void 0)})}var f=k;function B(){if(arguments.length===1){const n=arguments;return function(t){return f(t,n[0])}}return f(arguments[0],arguments[1])}var s=o;function C(){if(arguments.length===1){const n=arguments;return function(t){return s(t,n[0])}}return s(arguments[0],arguments[1])}var c=E;function H(){if(arguments.length===2){const n=arguments;return function(t){return c(t,n[0],n[1])}}return c(arguments[0],arguments[1],arguments[2])}function m(n,r){if(n!==void 0)return R(r(e(n)))}function K(){if(arguments.length===1){const n=arguments;return function(t){return m(t,n[0])}}return m(arguments[0],arguments[1])}function g(n,r){return o(n,function(t){if(r(t))return u(t)})}function L(){if(arguments.length===1){const n=arguments;return function(t){return g(t,n[0])}}return g(arguments[0],arguments[1])}var l=i;function Q(){if(arguments.length===1){const n=arguments;return function(t){return l(t,n[0])}}return l(arguments[0],arguments[1])}var V=D;function Y(n){return i(n,null)}function Z(n){return i(n,void 0)}function h(n,r){return n!==void 0?{TAG:0,_0:e(n)}:{TAG:1,_0:r}}function nn(){if(arguments.length===1){const n=arguments;return function(t){return h(t,n[0])}}return h(arguments[0],arguments[1])}function v(n,r,t){return n!==void 0?r(e(n)):t(void 0)}function tn(){if(arguments.length===2){const n=arguments;return function(t){return v(t,n[0],n[1])}}return v(arguments[0],arguments[1],arguments[2])}var rn=U,en=S;function d(n,r){return n!==void 0&&r(e(n)),n}function un(){if(arguments.length===1){const n=arguments;return function(t){return d(t,n[0])}}return d(arguments[0],arguments[1])}function _(n,r){return E(n,!1,function(t){return y(t,r)})}function on(){if(arguments.length===1){const n=arguments;return function(t){return _(t,n[0])}}return _(arguments[0],arguments[1])}function p(n,r){if(n!==void 0&&r!==void 0)return[e(n),e(r)]}function an(){if(arguments.length===1){const n=arguments;return function(t){return p(t,n[0])}}return p(arguments[0],arguments[1])}function N(n,r,t){if(n!==void 0&&r!==void 0)return u(t(e(n),e(r)))}function fn(){if(arguments.length===2){const n=arguments;return function(t){return N(t,n[0],n[1])}}return N(arguments[0],arguments[1],arguments[2])}function b(n,r,t){return n!==void 0?r(e(n)):t(void 0)}function sn(){if(arguments.length===2){const n=arguments;return function(t){return b(t,n[0],n[1])}}return b(arguments[0],arguments[1],arguments[2])}function cn(n){return M(n,[],function(r,t){return o(r,function(P){if(t!==void 0)return A(P,[e(t)])})})}const mn=n=>n;var hn={__proto__:null,Some:mn,None:void 0,placeholder:T,makeSome:q,makeNone:I,fromNullable:J,fromFalsy:O,fromPredicate:X,fromExecution:j,fromPromise:w,map:B,flatMap:C,mapWithDefault:H,mapNullable:K,filter:L,getWithDefault:Q,getExn:V,toNullable:Y,toUndefined:Z,toResult:nn,match:tn,isNone:rn,isSome:en,tap:un,contains:on,zip:an,zipWith:fn,fold:sn,all:cn};export{hn as P,C as f,Q as g};
//# sourceMappingURL=index-c1cc4c86.Ce2mb7Nd.js.map
import{_ as W,i as x,c as z,g as D,a as o,b as U,d as S,f as $,m as M,e as i,h as E}from"./belt_Option-91f3b350.Dja5KR5O.js";import{s as u,l as R,n as k,v as e,o as y,p as A}from"./dom2.js";var F=z("Promise.JsError");function G(n,r){return n.catch(function(t){return W(r,x(t)?t:{RE_EXN_ID:F,_1:t})})}function T(n){}function q(n){return u(n)}function I(n){}function J(n){if(n!=null)return u(n)}function O(n){if(n)return n}function a(n,r){return $(n==null?void 0:u(n),function(t){if(r(t))return u(t)})}function X(){if(arguments.length===1){const n=arguments;return function(t){return a(t,n[0])}}return a(arguments[0],arguments[1])}function j(n){try{return u(n(void 0))}catch{return}}function w(n){return G(n.then(function(r){return u(r)}),function(r){return Promise.resolve(void 0)})}var f=M;function B(){if(arguments.length===1){const n=arguments;return function(t){return f(t,n[0])}}return f(arguments[0],arguments[1])}var s=i;function C(){if(arguments.length===1){const n=arguments;return function(t){return s(t,n[0])}}return s(arguments[0],arguments[1])}var c=E;function H(){if(arguments.length===2){const n=arguments;return function(t){return c(t,n[0],n[1])}}return c(arguments[0],arguments[1],arguments[2])}function m(n,r){if(n!==void 0)return k(r(e(n)))}function K(){if(arguments.length===1){const n=arguments;return function(t){return m(t,n[0])}}return m(arguments[0],arguments[1])}function g(n,r){return i(n,function(t){if(r(t))return u(t)})}function L(){if(arguments.length===1){const n=arguments;return function(t){return g(t,n[0])}}return g(arguments[0],arguments[1])}var l=o;function Q(){if(arguments.length===1){const n=arguments;return function(t){return l(t,n[0])}}return l(arguments[0],arguments[1])}var V=D;function Y(n){return o(n,null)}function Z(n){return o(n,void 0)}function h(n,r){return n!==void 0?{TAG:0,_0:e(n)}:{TAG:1,_0:r}}function nn(){if(arguments.length===1){const n=arguments;return function(t){return h(t,n[0])}}return h(arguments[0],arguments[1])}function v(n,r,t){return n!==void 0?r(e(n)):t(void 0)}function tn(){if(arguments.length===2){const n=arguments;return function(t){return v(t,n[0],n[1])}}return v(arguments[0],arguments[1],arguments[2])}var rn=U,en=S;function d(n,r){return n!==void 0&&r(e(n)),n}function un(){if(arguments.length===1){const n=arguments;return function(t){return d(t,n[0])}}return d(arguments[0],arguments[1])}function _(n,r){return E(n,!1,function(t){return y(t,r)})}function on(){if(arguments.length===1){const n=arguments;return function(t){return _(t,n[0])}}return _(arguments[0],arguments[1])}function p(n,r){if(n!==void 0&&r!==void 0)return[e(n),e(r)]}function an(){if(arguments.length===1){const n=arguments;return function(t){return p(t,n[0])}}return p(arguments[0],arguments[1])}function N(n,r,t){if(n!==void 0&&r!==void 0)return u(t(e(n),e(r)))}function fn(){if(arguments.length===2){const n=arguments;return function(t){return N(t,n[0],n[1])}}return N(arguments[0],arguments[1],arguments[2])}function b(n,r,t){return n!==void 0?r(e(n)):t(void 0)}function sn(){if(arguments.length===2){const n=arguments;return function(t){return b(t,n[0],n[1])}}return b(arguments[0],arguments[1],arguments[2])}function cn(n){return R(n,[],function(r,t){return i(r,function(P){if(t!==void 0)return A(P,[e(t)])})})}const mn=n=>n;var hn={__proto__:null,Some:mn,None:void 0,placeholder:T,makeSome:q,makeNone:I,fromNullable:J,fromFalsy:O,fromPredicate:X,fromExecution:j,fromPromise:w,map:B,flatMap:C,mapWithDefault:H,mapNullable:K,filter:L,getWithDefault:Q,getExn:V,toNullable:Y,toUndefined:Z,toResult:nn,match:tn,isNone:rn,isSome:en,tap:un,contains:on,zip:an,zipWith:fn,fold:sn,all:cn};export{hn as P,C as f,Q as g};
//# sourceMappingURL=index-c1cc4c86.CgXEmUX3.js.map

View file

@ -1 +1 @@
{"version":3,"file":"messages-utilisateur.js","sources":["../../src/scripts/constantes/messages-utilisateur.ts"],"sourcesContent":["/** Constantes des Messages affichés aux Utilisateurs. */\n\nexport const ERREUR_GENERIQUE_RESEAU =\n \"Something seems to be wrong with your network. Please verify your connection, refresh and try again?\";\nexport const ERREUR_GENERIQUE_SOUMISSION_ADRESSES =\n \"Something went wrong while submitting the addresses. Please refresh your page and try again?\";\nexport const ERREUR_GENERIQUE_CREATION_COMMANDE =\n \"Something went wrong while creating your order. Please refresh your page and try again?\";\nexport const ERREUR_ADRESSE_GENERIQUE = \"Something is wrong in the information you filled. Please check and try again?\";\nexport const ERREUR_ADRESSE_MAUVAIS_CODE_POSTAL =\n \"Please verify your postcode: it should not contain region/state indicators.\";\n"],"names":["ERREUR_GENERIQUE_RESEAU","ERREUR_GENERIQUE_SOUMISSION_ADRESSES","ERREUR_GENERIQUE_CREATION_COMMANDE","ERREUR_ADRESSE_MAUVAIS_CODE_POSTAL"],"mappings":"AAEO,MAAMA,EACX,uGACWC,EACX,+FACWC,EACX,0FAEWC,EACX"}
{"version":3,"file":"messages-utilisateur.js","sources":["../../src/scripts/constantes/messages-utilisateur.ts"],"sourcesContent":["/** Constantes des Messages affichés aux Utilisateurs. */\n\n// Générique\nexport const ERREUR_GENERIQUE_RESEAU =\n \"Something seems to be wrong with your network. Please verify your connection, refresh and try again?\";\nexport const ERREUR_GENERIQUE_SOUMISSION_ADRESSES =\n \"Something went wrong while submitting the addresses. Please refresh your page and try again?\";\nexport const ERREUR_GENERIQUE_CREATION_COMMANDE =\n \"Something went wrong while creating your order. Please refresh your page and try again?\";\n\n// Adresses\nexport const ERREUR_ADRESSE_GENERIQUE = \"Something is wrong in the information you filled. Please check and try again?\";\nexport const ERREUR_ADRESSE_MAUVAIS_CODE_POSTAL =\n \"Please verify your postcode: it should not contain region/state indicators.\";\n"],"names":["ERREUR_GENERIQUE_RESEAU","ERREUR_GENERIQUE_SOUMISSION_ADRESSES","ERREUR_GENERIQUE_CREATION_COMMANDE","ERREUR_ADRESSE_MAUVAIS_CODE_POSTAL"],"mappings":"AAGO,MAAMA,EACX,uGACWC,EACX,+FACWC,EACX,0FAIWC,EACX"}

View file

@ -1,2 +1,2 @@
import{p as s}from"./index.BykRh4R4.js";import{N as i,T as t,a as p}from"./messages3.js";import{r}from"./erreurs2.js";import{W as m}from"./erreurs3.js";import{M as u,a as c}from"./messages2.js";import{e as M}from"./validation.js";import{p as d}from"./pipe.CtTFdEz3.js";import{E as n}from"./Either.DDEPhGsy.js";import"./exports.BFQs_g59.js";import"./cart.js";import"./cart2.js";import"./adresses2.js";import"./cart-coupons.js";import"./couts-livraison.js";const l=(e,a)=>(e.postMessage(a),e),L=e=>{const a=new BroadcastChannel(i);a.postMessage({donnees:{quantiteProduits:e.quantiteProduits},type:t.MajBoutonPanier}),a.close()},R=e=>{const a=new BroadcastChannel(p);a.postMessage({donnees:{produits:e.produits,sousTotalProduits:e.sousTotalProduits,sousTotalReduction:e.sousTotalReduction,totalPanier:e.totalPanier},type:t.MajContenuPanier}),a.close()},q=(e,a)=>d(new BroadcastChannel(e),o=>l(o,a),o=>o.close()),v=e=>n.of(s(u,e.data)).ifLeft(a=>r(a)),w=e=>n.of(s(c,e.data)).ifLeft(a=>r(a)),y=(e,a)=>M(e,m).map(o=>o.body.code===a).orDefault(!1);export{R as a,q as b,w as c,L as e,y as r,v};
import{p as s}from"./index.BykRh4R4.js";import{N as i,T as t,a as p}from"./messages3.js";import{r}from"./erreurs.js";import{W as m}from"./erreurs3.js";import{M as u,a as c}from"./messages2.js";import{e as M}from"./validation.js";import{p as d}from"./pipe.CtTFdEz3.js";import{E as n}from"./Either.DDEPhGsy.js";import"./exports.jfK3lrNh.js";import"./cart.js";import"./cart2.js";import"./adresses2.js";import"./cart-coupons.js";import"./couts-livraison.js";const l=(e,a)=>(e.postMessage(a),e),L=e=>{const a=new BroadcastChannel(i);a.postMessage({donnees:{quantiteProduits:e.quantiteProduits},type:t.MajBoutonPanier}),a.close()},R=e=>{const a=new BroadcastChannel(p);a.postMessage({donnees:{produits:e.produits,sousTotalProduits:e.sousTotalProduits,sousTotalReduction:e.sousTotalReduction,totalPanier:e.totalPanier},type:t.MajContenuPanier}),a.close()},q=(e,a)=>d(new BroadcastChannel(e),o=>l(o,a),o=>o.close()),v=e=>n.of(s(u,e.data)).ifLeft(a=>r(a)),w=e=>n.of(s(c,e.data)).ifLeft(a=>r(a)),y=(e,a)=>M(e,m).map(o=>o.body.code===a).orDefault(!1);export{w as a,L as b,R as c,q as e,y as r,v};
//# sourceMappingURL=messages.js.map

View file

@ -1 +1 @@
{"version":3,"file":"messages.js","sources":["../../src/scripts/lib/messages.ts"],"sourcesContent":["import { pipe } from \"@mobily/ts-belt\";\nimport { Either } from \"purify-ts\";\nimport { parse, type ValiError } from \"valibot\";\n\nimport type {\n MessageMajBoutonPanier,\n MessageMajBoutonPanierDonnees,\n MessageMajContenuPanier,\n MessageMajContenuPanierDonnees,\n} from \"./types/messages\";\nimport type { ReponseSimplifiee } from \"./types/reseau\";\n\nimport { NOM_CANAL_BOUTON_PANIER, NOM_CANAL_CONTENU_PANIER, TYPES_MESSAGES } from \"../constantes/messages.ts\";\nimport { reporteErreur } from \"./erreurs.ts\";\nimport { WCErrorSchema } from \"./schemas/api/erreurs.ts\";\nimport { MessageMajBoutonPanierSchema, MessageMajContenuPanierSchema } from \"./schemas/messages.ts\";\nimport { eitherParse } from \"./validation.ts\";\n\nexport const canalPostMessage = (canal: BroadcastChannel, message: any): BroadcastChannel => {\n canal.postMessage(message);\n return canal;\n};\n\n// Émissions\nexport const emetMessageMajBoutonPanier = (args: MessageMajBoutonPanierDonnees): void => {\n const canal = new BroadcastChannel(NOM_CANAL_BOUTON_PANIER);\n canal.postMessage({\n donnees: {\n quantiteProduits: args.quantiteProduits,\n },\n type: TYPES_MESSAGES.MajBoutonPanier,\n } as MessageMajBoutonPanier);\n canal.close();\n};\n\nexport const emetMessageMajContenuPanier = (args: MessageMajContenuPanierDonnees): void => {\n const canal = new BroadcastChannel(NOM_CANAL_CONTENU_PANIER);\n canal.postMessage({\n donnees: {\n produits: args.produits,\n sousTotalProduits: args.sousTotalProduits,\n sousTotalReduction: args.sousTotalReduction,\n totalPanier: args.totalPanier,\n },\n type: TYPES_MESSAGES.MajContenuPanier,\n } as MessageMajContenuPanier);\n canal.close();\n};\n\n/**\n * Émet un unique message vers un BroadcastChannel (canal) généré sur le moment puis le ferme.\n *\n * @param nomCanal Le nom du BroadcastChannel pour lequel le message est émis.\n * @param message Le message émis.\n * @return void\n */\nexport const emetUniqueMessageCanal = <M>(nomCanal: string, message: M): void =>\n pipe(new BroadcastChannel(nomCanal), canal => canalPostMessage(canal, message), canal => canal.close());\n\n// Validations\nexport const valideMessageMajBoutonPanier = (\n evenementMessage: MessageEvent<unknown>,\n): Either<ValiError<typeof MessageMajBoutonPanierSchema>, MessageMajBoutonPanier> =>\n Either\n .of<ValiError<typeof MessageMajBoutonPanierSchema>, MessageMajBoutonPanier>(\n parse(MessageMajBoutonPanierSchema, evenementMessage.data),\n )\n .ifLeft(erreur => reporteErreur(erreur));\n\nexport const valideMessageMajContenuPanier = (\n evenementMessage: MessageEvent<unknown>,\n): Either<ValiError<typeof MessageMajContenuPanierSchema>, MessageMajContenuPanier> =>\n Either\n .of<ValiError<typeof MessageMajContenuPanierSchema>, MessageMajContenuPanier>(\n parse(MessageMajContenuPanierSchema, evenementMessage.data),\n )\n .ifLeft(erreur => reporteErreur(erreur));\n\n// Correspondances\nexport const reponseEstCodeErreurWC = (reponse: ReponseSimplifiee, codeErreurWC: string): boolean =>\n eitherParse(reponse, WCErrorSchema)\n .map(v => v.body.code === codeErreurWC)\n .orDefault(false);\n"],"names":["parse","NOM_CANAL_BOUTON_PANIER","TYPES_MESSAGES","NOM_CANAL_CONTENU_PANIER","WCErrorSchema","MessageMajBoutonPanierSchema","MessageMajContenuPanierSchema","eitherParse","pipe","Either","canalPostMessage","canal","message","emetMessageMajBoutonPanier","args","emetMessageMajContenuPanier","emetUniqueMessageCanal","nomCanal","valideMessageMajBoutonPanier","evenementMessage","erreur","reporteErreur","valideMessageMajContenuPanier","reponseEstCodeErreurWC","reponse","codeErreurWC","v"],"mappings":"AAkBa,OAAA,KAAAA,MAAA,sBAAA,OAAA,KAAAC,EAAA,KAAAC,EAAA,KAAAC,MAAA,iBAAA,OAAA,MAAA,gBAAA,OAAA,KAAAC,MAAA,gBAAA,OAAA,KAAAC,EAAA,KAAAC,MAAA,iBAAA,OAAA,KAAAC,MAAA,kBAAA,OAAA,KAAAC,MAAA,qBAAA,OAAA,KAAAC,MAAA,uBAAA,MAAA,wBAAA,MAAA,YAAA,MAAA,aAAA,MAAA,iBAAA,MAAA,oBAAA,MAAA,uBAAA,MAAAC,EAAmB,CAACC,EAAyBC,KACxDD,EAAM,YAAYC,CAAO,EAClBD,GAIIE,EAA8BC,GAA8C,CACjF,MAAAH,EAAQ,IAAI,iBAAiBV,CAAuB,EAC1DU,EAAM,YAAY,CAChB,QAAS,CACP,iBAAkBG,EAAK,gBACzB,EACA,KAAMZ,EAAe,eAAA,CACI,EAC3BS,EAAM,MAAM,CACd,EAEaI,EAA+BD,GAA+C,CACnF,MAAAH,EAAQ,IAAI,iBAAiBR,CAAwB,EAC3DQ,EAAM,YAAY,CAChB,QAAS,CACP,SAAUG,EAAK,SACf,kBAAmBA,EAAK,kBACxB,mBAAoBA,EAAK,mBACzB,YAAaA,EAAK,WACpB,EACA,KAAMZ,EAAe,gBAAA,CACK,EAC5BS,EAAM,MAAM,CACd,EASaK,EAAyB,CAAIC,EAAkBL,IAC1DJ,EAAK,IAAI,iBAAiBS,CAAQ,EAAGN,GAASD,EAAiBC,EAAOC,CAAO,EAAYD,GAAAA,EAAM,MAAO,CAAA,EAG3FO,EACXC,GAEAV,EACG,GACCT,EAAMK,EAA8Bc,EAAiB,IAAI,CAC3D,EACC,OAAOC,GAAUC,EAAcD,CAAM,CAAC,EAE9BE,EACXH,GAEAV,EACG,GACCT,EAAMM,EAA+Ba,EAAiB,IAAI,CAC5D,EACC,OAAOC,GAAUC,EAAcD,CAAM,CAAC,EAG9BG,EAAyB,CAACC,EAA4BC,IACjElB,EAAYiB,EAASpB,CAAa,EAC/B,IAAIsB,GAAKA,EAAE,KAAK,OAASD,CAAY,EACrC,UAAU,EAAK"}
{"version":3,"file":"messages.js","sources":["../../src/scripts/lib/messages.ts"],"sourcesContent":["import { pipe } from \"@mobily/ts-belt\";\nimport { Either } from \"purify-ts\";\nimport { parse, type ValiError } from \"valibot\";\n\nimport type {\n MessageMajBoutonPanier,\n MessageMajBoutonPanierDonnees,\n MessageMajContenuPanier,\n MessageMajContenuPanierDonnees,\n} from \"./types/messages\";\nimport type { ReponseSimplifiee } from \"./types/reseau\";\n\nimport { NOM_CANAL_BOUTON_PANIER, NOM_CANAL_CONTENU_PANIER, TYPES_MESSAGES } from \"../constantes/messages.ts\";\nimport { reporteErreur } from \"./erreurs.ts\";\nimport { WCErrorSchema } from \"./schemas/api/erreurs.ts\";\nimport { MessageMajBoutonPanierSchema, MessageMajContenuPanierSchema } from \"./schemas/messages.ts\";\nimport { eitherParse } from \"./validation.ts\";\n\nexport const canalPostMessage = (canal: BroadcastChannel, message: any): BroadcastChannel => {\n canal.postMessage(message);\n return canal;\n};\n\n// Émissions\nexport const emetMessageMajBoutonPanier = (args: MessageMajBoutonPanierDonnees): void => {\n const canal = new BroadcastChannel(NOM_CANAL_BOUTON_PANIER);\n canal.postMessage({\n donnees: {\n quantiteProduits: args.quantiteProduits,\n },\n type: TYPES_MESSAGES.MajBoutonPanier,\n } as MessageMajBoutonPanier);\n canal.close();\n};\n\nexport const emetMessageMajContenuPanier = (args: MessageMajContenuPanierDonnees): void => {\n const canal = new BroadcastChannel(NOM_CANAL_CONTENU_PANIER);\n canal.postMessage({\n donnees: {\n produits: args.produits,\n sousTotalProduits: args.sousTotalProduits,\n sousTotalReduction: args.sousTotalReduction,\n totalPanier: args.totalPanier,\n },\n type: TYPES_MESSAGES.MajContenuPanier,\n } as MessageMajContenuPanier);\n canal.close();\n};\n\n/**\n * Émet un unique message vers un BroadcastChannel (canal) généré sur le moment puis le ferme.\n *\n * @param nomCanal Le nom du BroadcastChannel pour lequel le message est émis.\n * @param message Le message émis.\n * @return void\n */\nexport const emetUniqueMessageCanal = <M>(nomCanal: string, message: M): void =>\n pipe(new BroadcastChannel(nomCanal), canal => canalPostMessage(canal, message), canal => canal.close());\n\n// Validations\nexport const valideMessageMajBoutonPanier = (\n evenementMessage: MessageEvent<unknown>,\n): Either<ValiError<typeof MessageMajBoutonPanierSchema>, MessageMajBoutonPanier> =>\n Either\n .of<ValiError<typeof MessageMajBoutonPanierSchema>, MessageMajBoutonPanier>(\n parse(MessageMajBoutonPanierSchema, evenementMessage.data),\n )\n .ifLeft(erreur => reporteErreur(erreur));\n\nexport const valideMessageMajContenuPanier = (\n evenementMessage: MessageEvent<unknown>,\n): Either<ValiError<typeof MessageMajContenuPanierSchema>, MessageMajContenuPanier> =>\n Either\n .of<ValiError<typeof MessageMajContenuPanierSchema>, MessageMajContenuPanier>(\n parse(MessageMajContenuPanierSchema, evenementMessage.data),\n )\n .ifLeft(erreur => reporteErreur(erreur));\n\n// Correspondances\nexport const reponseEstCodeErreurWC = (reponse: ReponseSimplifiee, codeErreurWC: string): boolean =>\n eitherParse(reponse, WCErrorSchema)\n .map(v => v.body.code === codeErreurWC)\n .orDefault(false);\n"],"names":["parse","NOM_CANAL_BOUTON_PANIER","TYPES_MESSAGES","NOM_CANAL_CONTENU_PANIER","WCErrorSchema","MessageMajBoutonPanierSchema","MessageMajContenuPanierSchema","eitherParse","pipe","Either","canalPostMessage","canal","message","emetMessageMajBoutonPanier","args","emetMessageMajContenuPanier","emetUniqueMessageCanal","nomCanal","valideMessageMajBoutonPanier","evenementMessage","erreur","reporteErreur","valideMessageMajContenuPanier","reponseEstCodeErreurWC","reponse","codeErreurWC","v"],"mappings":"AAkBa,OAAA,KAAAA,MAAA,sBAAA,OAAA,KAAAC,EAAA,KAAAC,EAAA,KAAAC,MAAA,iBAAA,OAAA,MAAA,eAAA,OAAA,KAAAC,MAAA,gBAAA,OAAA,KAAAC,EAAA,KAAAC,MAAA,iBAAA,OAAA,KAAAC,MAAA,kBAAA,OAAA,KAAAC,MAAA,qBAAA,OAAA,KAAAC,MAAA,uBAAA,MAAA,wBAAA,MAAA,YAAA,MAAA,aAAA,MAAA,iBAAA,MAAA,oBAAA,MAAA,uBAAA,MAAAC,EAAmB,CAACC,EAAyBC,KACxDD,EAAM,YAAYC,CAAO,EAClBD,GAIIE,EAA8BC,GAA8C,CACjF,MAAAH,EAAQ,IAAI,iBAAiBV,CAAuB,EAC1DU,EAAM,YAAY,CAChB,QAAS,CACP,iBAAkBG,EAAK,gBACzB,EACA,KAAMZ,EAAe,eAAA,CACI,EAC3BS,EAAM,MAAM,CACd,EAEaI,EAA+BD,GAA+C,CACnF,MAAAH,EAAQ,IAAI,iBAAiBR,CAAwB,EAC3DQ,EAAM,YAAY,CAChB,QAAS,CACP,SAAUG,EAAK,SACf,kBAAmBA,EAAK,kBACxB,mBAAoBA,EAAK,mBACzB,YAAaA,EAAK,WACpB,EACA,KAAMZ,EAAe,gBAAA,CACK,EAC5BS,EAAM,MAAM,CACd,EASaK,EAAyB,CAAIC,EAAkBL,IAC1DJ,EAAK,IAAI,iBAAiBS,CAAQ,EAAGN,GAASD,EAAiBC,EAAOC,CAAO,EAAYD,GAAAA,EAAM,MAAO,CAAA,EAG3FO,EACXC,GAEAV,EACG,GACCT,EAAMK,EAA8Bc,EAAiB,IAAI,CAC3D,EACC,OAAOC,GAAUC,EAAcD,CAAM,CAAC,EAE9BE,EACXH,GAEAV,EACG,GACCT,EAAMM,EAA+Ba,EAAiB,IAAI,CAC5D,EACC,OAAOC,GAAUC,EAAcD,CAAM,CAAC,EAG9BG,EAAyB,CAACC,EAA4BC,IACjElB,EAAYiB,EAASpB,CAAa,EAC/B,IAAIsB,GAAKA,EAAE,KAAK,OAASD,CAAY,EACrC,UAAU,EAAK"}

View file

@ -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 \"./api/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 sousTotalProduits: v.number(),\n sousTotalReduction: 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","TYPES_MESSAGES","MessageMajBoutonPanierDonneesSchema","v.object","v.number","MessageMajBoutonPanierSchema","v.pipe","v.string","v.value","MessageMajContenuPanierDonneesSchema","v.array","WCStoreCartItemSchema","MessageMajContenuPanierSchema"],"mappings":"AASmCA,OAAAA,KAAAA,EAAAA,KAAAA,EAAAA,KAAAA,EAAAA,KAAAA,EAAAA,KAAAA,EAAAA,KAAAA,EAAAA,KAAAA,MAAAA,sBAAAA,OAAAA,KAAAA,MAAAA,iBAAAA,OAAAA,KAAAA,MAAAA,YAAAA,MAAAA,aAAAA,MAAAA,iBAAAA,MAAAA,oBAAAA,MAAAA,uBAAAA,EAAOC,CAAc,EAE3C,MAAAC,EAAsCC,EAAS,CAC1D,iBAAkBC,EAAS,CAC7B,CAAC,EAEYC,EAA+BF,EAAS,CACnD,QAASD,EACT,KAAMI,EAAOC,EAAE,EAAUC,EAAQP,EAAe,eAAe,CAAC,CAClE,CAAC,EAEYQ,EAAuCN,EAAS,CAC3D,SAAUO,EAAQC,CAAqB,EACvC,kBAAmBP,EAAS,EAC5B,mBAAoBA,EAAS,EAC7B,YAAaA,EAAS,CACxB,CAAC,EAEYQ,EAAgCT,EAAS,CACpD,QAASM,EACT,KAAMH,EAAOC,EAAE,EAAUC,EAAQP,EAAe,gBAAgB,CAAC,CACnE,CAAC"}
{"version":3,"file":"messages2.js","sources":["../../src/scripts/lib/schemas/messages.ts"],"sourcesContent":["/** Schémas des Messages passés avec BroadcastChannel. */\n\nimport * as v from \"valibot\";\n\nimport { TYPES_MESSAGES } from \"../../constantes/messages.ts\";\nimport { WCStoreCartItemSchema } from \"./api/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 sousTotalProduits: v.number(),\n sousTotalReduction: 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","TYPES_MESSAGES","MessageMajBoutonPanierDonneesSchema","v.object","v.number","MessageMajBoutonPanierSchema","v.pipe","v.string","v.value","MessageMajContenuPanierDonneesSchema","v.array","WCStoreCartItemSchema","MessageMajContenuPanierSchema"],"mappings":"AAOmCA,OAAAA,KAAAA,EAAAA,KAAAA,EAAAA,KAAAA,EAAAA,KAAAA,EAAAA,KAAAA,EAAAA,KAAAA,EAAAA,KAAAA,MAAAA,sBAAAA,OAAAA,KAAAA,MAAAA,iBAAAA,OAAAA,KAAAA,MAAAA,YAAAA,MAAAA,aAAAA,MAAAA,iBAAAA,MAAAA,oBAAAA,MAAAA,uBAAAA,EAAOC,CAAc,EAE3C,MAAAC,EAAsCC,EAAS,CAC1D,iBAAkBC,EAAS,CAC7B,CAAC,EAEYC,EAA+BF,EAAS,CACnD,QAASD,EACT,KAAMI,EAAOC,EAAE,EAAUC,EAAQP,EAAe,eAAe,CAAC,CAClE,CAAC,EAEYQ,EAAuCN,EAAS,CAC3D,SAAUO,EAAQC,CAAqB,EACvC,kBAAmBP,EAAS,EAC5B,mBAAoBA,EAAS,EAC7B,YAAaA,EAAS,CACxB,CAAC,EAEYQ,EAAgCT,EAAS,CACpD,QAASM,EACT,KAAMH,EAAOC,EAAE,EAAUC,EAAQP,EAAe,gBAAgB,CAAC,CACnE,CAAC"}

View file

@ -1 +1 @@
{"version":3,"file":"messages3.js","sources":["../../src/scripts/constantes/messages.ts"],"sourcesContent":["/**\n * Constantes liées aux Messages passés par BroadcastChannel.\n */\n\nexport const NOM_CANAL_BOUTON_PANIER = \"bouton_panier\";\nexport const NOM_CANAL_CONTENU_PANIER = \"contenu_panier\";\nexport const NOM_CANAL_REVALIDATION_LIVRAISON = \"revalidation_livraison\";\n\nexport const TYPES_MESSAGES = {\n MajBoutonPanier: \"maj_bouton_panier\",\n MajContenuPanier: \"maj_contenu_panier\",\n RevalidationLivraison: \"revalidation_livraison\",\n} as const;\n"],"names":["NOM_CANAL_BOUTON_PANIER","NOM_CANAL_CONTENU_PANIER","NOM_CANAL_REVALIDATION_LIVRAISON","TYPES_MESSAGES"],"mappings":"AAIO,MAAMA,EAA0B,gBAC1BC,EAA2B,iBAC3BC,EAAmC,yBAEnCC,EAAiB,CAC5B,gBAAiB,oBACjB,iBAAkB,qBAClB,sBAAuB,wBACzB"}
{"version":3,"file":"messages3.js","sources":["../../src/scripts/constantes/messages.ts"],"sourcesContent":["/** Constantes liées aux Messages passés par BroadcastChannel. */\n\nexport const NOM_CANAL_BOUTON_PANIER = \"bouton_panier\";\nexport const NOM_CANAL_CONTENU_PANIER = \"contenu_panier\";\nexport const NOM_CANAL_REVALIDATION_LIVRAISON = \"revalidation_livraison\";\n\nexport const TYPES_MESSAGES = {\n MajBoutonPanier: \"maj_bouton_panier\",\n MajContenuPanier: \"maj_contenu_panier\",\n RevalidationLivraison: \"revalidation_livraison\",\n} as const;\n"],"names":["NOM_CANAL_BOUTON_PANIER","NOM_CANAL_CONTENU_PANIER","NOM_CANAL_REVALIDATION_LIVRAISON","TYPES_MESSAGES"],"mappings":"AAEO,MAAMA,EAA0B,gBAC1BC,EAA2B,iBAC3BC,EAAmC,yBAEnCC,EAAiB,CAC5B,gBAAiB,oBACjB,iBAAkB,qBAClB,sBAAuB,wBACzB"}

File diff suppressed because one or more lines are too long

View file

@ -1 +1 @@
{"version":3,"file":"orders3.js","sources":["../../src/scripts/constantes/orders.ts"],"sourcesContent":["export const ORDER_STATUSES = {\n AUTO_DRAFT: \"auto-draft\",\n CANCELLED: \"cancelled\",\n CHECKOUT_DRAFT: \"checkout-draft\",\n COMPLETED: \"completed\",\n FAILED: \"failed\",\n ON_HOLD: \"on-hold\",\n PENDING: \"pending\",\n PROCESSING: \"processing\",\n REFUNDED: \"refuneded\",\n} as const;\n\nexport const TAX_STATUSES = {\n NONE: \"none\",\n TAXABLE: \"taxable\",\n};\n"],"names":["ORDER_STATUSES","TAX_STATUSES"],"mappings":"AAAO,MAAMA,EAAiB,CAC5B,WAAY,aACZ,UAAW,YACX,eAAgB,iBAChB,UAAW,YACX,OAAQ,SACR,QAAS,UACT,QAAS,UACT,WAAY,aACZ,SAAU,WACZ,EAEaC,EAAe,CAC1B,KAAM,OACN,QAAS,SACX"}
{"version":3,"file":"orders3.js","sources":["../../src/scripts/constantes/api/orders.ts"],"sourcesContent":["/** Constantes liées aux Commandes WooCommerce. */\n\nexport const ORDER_STATUSES = {\n AUTO_DRAFT: \"auto-draft\",\n CANCELLED: \"cancelled\",\n CHECKOUT_DRAFT: \"checkout-draft\",\n COMPLETED: \"completed\",\n FAILED: \"failed\",\n ON_HOLD: \"on-hold\",\n PENDING: \"pending\",\n PROCESSING: \"processing\",\n REFUNDED: \"refuneded\",\n} as const;\n\nexport const TAX_STATUSES = {\n NONE: \"none\",\n TAXABLE: \"taxable\",\n};\n"],"names":["ORDER_STATUSES","TAX_STATUSES"],"mappings":"AAEO,MAAMA,EAAiB,CAC5B,WAAY,aACZ,UAAW,YACX,eAAgB,iBAChB,UAAW,YACX,OAAQ,SACR,QAAS,UACT,QAAS,UACT,WAAY,aACZ,SAAU,WACZ,EAEaC,EAAe,CAC1B,KAAM,OACN,QAAS,SACX"}

File diff suppressed because one or more lines are too long

View file

@ -1 +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} 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\nexport const PRODUCT_STATUTES = {\n ANY: \"any\",\n DRAFT: \"draft\",\n FUTURE: \"future\",\n PENDING: \"pending\",\n PRIVATE: \"private\",\n PUBLISH: \"publish\",\n TRASH: \"trash\",\n} as const;\n\nexport const TAX_STATUTES = {\n NONE: \"none\",\n SHIPPING: \"shipping\",\n TAXABLE: \"taxable\",\n} as const;\n\nexport const BACKORDERS_SETTINGS = {\n NO: \"no\",\n NOTIFY: \"notify\",\n YES: \"yes\",\n} as const;\n"],"names":["PRODUCTS_CONTEXTES","DATE_COLUMN_VALUES","ORDER_VALUES","ORDERBY_VALUES","PRODUCT_TYPES","CATEGORY_OPERATORS","TAG_OPERATORS","STOCK_STATUSES","ATTRIBUTES_RELATIONS","CATALOG_VISIBILITIES","RATINGS","PRODUCT_STATUTES","TAX_STATUTES","BACKORDERS_SETTINGS"],"mappings":"AAAO,MAAMA,EAAqB,CAChC,KAAM,OACN,KAAM,MACR,EAEaC,EAAqB,CAChC,KAAM,OACN,SAAU,WACV,SAAU,WACV,aAAc,cAChB,EAEaC,EAAe,CAC1B,IAAK,MACL,KAAM,MACR,EAEaC,EAAiB,CAC5B,cAAe,gBACf,KAAM,OACN,GAAI,KACJ,QAAS,UACT,WAAY,aACZ,SAAU,WACV,WAAY,aACZ,MAAO,QACP,OAAQ,SACR,KAAM,OACN,MAAO,OACT,EAEaC,EAAgB,CAC3B,SAAU,WACV,QAAS,UACT,OAAQ,SACR,SAAU,UACZ,EAEaC,EAAqB,CAChC,IAAK,MACL,GAAI,KACJ,OAAQ,QACV,EAEaC,EAAgB,CAC3B,IAAK,MACL,GAAI,KACJ,OAAQ,QACV,EAEaC,EAAiB,CAC5B,SAAU,UACV,cAAe,cACf,aAAc,YAChB,EAEaC,EAAuB,CAClC,IAAK,MACL,GAAI,IACN,EAEaC,EAAuB,CAClC,IAAK,MACL,QAAS,UACT,OAAQ,SACR,OAAQ,SACR,QAAS,SACX,EAEaC,EAAU,CACrB,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,CACL,EAEaC,EAAmB,CAC9B,IAAK,MACL,MAAO,QACP,OAAQ,SACR,QAAS,UACT,QAAS,UACT,QAAS,UACT,MAAO,OACT,EAEaC,EAAe,CAC1B,KAAM,OACN,SAAU,WACV,QAAS,SACX,EAEaC,EAAsB,CACjC,GAAI,KACJ,OAAQ,SACR,IAAK,KACP"}
{"version":3,"file":"products2.js","sources":["../../src/scripts/constantes/api/products.ts"],"sourcesContent":["/** Constantes liées aux Produits WooCommerce. */\n\nexport 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} 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\nexport const PRODUCT_STATUTES = {\n ANY: \"any\",\n DRAFT: \"draft\",\n FUTURE: \"future\",\n PENDING: \"pending\",\n PRIVATE: \"private\",\n PUBLISH: \"publish\",\n TRASH: \"trash\",\n} as const;\n\nexport const TAX_STATUTES = {\n NONE: \"none\",\n SHIPPING: \"shipping\",\n TAXABLE: \"taxable\",\n} as const;\n\nexport const BACKORDERS_SETTINGS = {\n NO: \"no\",\n NOTIFY: \"notify\",\n YES: \"yes\",\n} as const;\n"],"names":["PRODUCTS_CONTEXTES","DATE_COLUMN_VALUES","ORDER_VALUES","ORDERBY_VALUES","PRODUCT_TYPES","CATEGORY_OPERATORS","TAG_OPERATORS","STOCK_STATUSES","ATTRIBUTES_RELATIONS","CATALOG_VISIBILITIES","RATINGS","PRODUCT_STATUTES","TAX_STATUTES","BACKORDERS_SETTINGS"],"mappings":"AAEO,MAAMA,EAAqB,CAChC,KAAM,OACN,KAAM,MACR,EAEaC,EAAqB,CAChC,KAAM,OACN,SAAU,WACV,SAAU,WACV,aAAc,cAChB,EAEaC,EAAe,CAC1B,IAAK,MACL,KAAM,MACR,EAEaC,EAAiB,CAC5B,cAAe,gBACf,KAAM,OACN,GAAI,KACJ,QAAS,UACT,WAAY,aACZ,SAAU,WACV,WAAY,aACZ,MAAO,QACP,OAAQ,SACR,KAAM,OACN,MAAO,OACT,EAEaC,EAAgB,CAC3B,SAAU,WACV,QAAS,UACT,OAAQ,SACR,SAAU,UACZ,EAEaC,EAAqB,CAChC,IAAK,MACL,GAAI,KACJ,OAAQ,QACV,EAEaC,EAAgB,CAC3B,IAAK,MACL,GAAI,KACJ,OAAQ,QACV,EAEaC,EAAiB,CAC5B,SAAU,UACV,cAAe,cACf,aAAc,YAChB,EAEaC,EAAuB,CAClC,IAAK,MACL,GAAI,IACN,EAEaC,EAAuB,CAClC,IAAK,MACL,QAAS,UACT,OAAQ,SACR,OAAQ,SACR,QAAS,SACX,EAEaC,EAAU,CACrB,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,CACL,EAEaC,EAAmB,CAC9B,IAAK,MACL,MAAO,QACP,OAAQ,SACR,QAAS,UACT,QAAS,UACT,QAAS,UACT,MAAO,OACT,EAEaC,EAAe,CAC1B,KAAM,OACN,SAAU,WACV,QAAS,SACX,EAEaC,EAAsB,CACjC,GAAI,KACJ,OAAQ,SACR,IAAK,KACP"}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -1,2 +1,2 @@
import{S as r,A as n}from"./dom.js";import{N as m}from"./messages3.js";import{r as a}from"./dom2.js";import{v as p}from"./messages.js";import{r as s}from"./utils.js";import{p as d}from"./pipe.CtTFdEz3.js";import"./erreurs2.js";import"./exports.BFQs_g59.js";import"./Either.DDEPhGsy.js";import"./index.BykRh4R4.js";import"./erreurs3.js";import"./messages2.js";import"./cart.js";import"./cart2.js";import"./adresses2.js";import"./cart-coupons.js";import"./couts-livraison.js";import"./validation.js";const E=()=>{const t=d(s(r),a),e=new BroadcastChannel(m);e.onmessage=i=>{p(i).ifRight(o=>{t.textContent=`cart (${String(o.donnees.quantiteProduits)})`,t.setAttribute(n,String(o.donnees.quantiteProduits>0))})},document.addEventListener("visibilitychange",()=>{e.close()})};document.addEventListener("DOMContentLoaded",()=>{E()});
import{S as r,A as n}from"./dom.js";import{N as m}from"./messages3.js";import{r as a}from"./dom2.js";import{v as p}from"./messages.js";import{r as s}from"./utils.js";import{p as d}from"./pipe.CtTFdEz3.js";import"./erreurs.js";import"./exports.jfK3lrNh.js";import"./Either.DDEPhGsy.js";import"./index.BykRh4R4.js";import"./erreurs3.js";import"./messages2.js";import"./cart.js";import"./cart2.js";import"./adresses2.js";import"./cart-coupons.js";import"./couts-livraison.js";import"./validation.js";const E=()=>{const t=d(s(r),a),e=new BroadcastChannel(m);e.onmessage=i=>{p(i).ifRight(o=>{t.textContent=`cart (${String(o.donnees.quantiteProduits)})`,t.setAttribute(n,String(o.donnees.quantiteProduits>0))})},document.addEventListener("visibilitychange",()=>{e.close()})};document.addEventListener("DOMContentLoaded",()=>{E()});
//# sourceMappingURL=scripts-bouton-panier.js.map

View file

@ -1 +1 @@
{"version":3,"file":"scripts-bouton-panier.js","sources":["../../src/scripts/scripts-bouton-panier.ts"],"sourcesContent":["/**\n * Scripts pour la mise à jour trans-fenêtres/trans-onglets du Bouton du Panier.\n */\n\nimport { pipe } from \"@mobily/ts-belt\";\n\nimport type { MessageMajBoutonPanier } from \"./lib/types/messages\";\n\nimport { ATTRIBUT_CONTIENT_ARTICLES, SELECTEUR_BOUTON_PANIER } from \"./constantes/dom.ts\";\nimport { NOM_CANAL_BOUTON_PANIER } from \"./constantes/messages.ts\";\nimport { recupereElementOuLeve } from \"./lib/dom.ts\";\nimport { valideMessageMajBoutonPanier } from \"./lib/messages.ts\";\nimport { recupereElementDocumentEither } from \"./lib/utils.ts\";\n\nconst initialiseBoutonPanier = (): void => {\n /** Le « Bouton » vers le Panier dont le texte est un indicateur du nombre de Produits dedans. */\n const BOUTON_PANIER: HTMLAnchorElement = pipe(\n recupereElementDocumentEither<HTMLAnchorElement>(SELECTEUR_BOUTON_PANIER),\n recupereElementOuLeve,\n );\n const CANAL_BOUTON_PANIER: BroadcastChannel = new BroadcastChannel(NOM_CANAL_BOUTON_PANIER);\n\n CANAL_BOUTON_PANIER.onmessage = (evenementMessage: MessageEvent<unknown>): void => {\n valideMessageMajBoutonPanier(evenementMessage)\n // Met à jour le Bouton du Panier\n .ifRight((message: MessageMajBoutonPanier) => {\n BOUTON_PANIER.textContent = `cart (${String(message.donnees.quantiteProduits)})`;\n BOUTON_PANIER.setAttribute(ATTRIBUT_CONTIENT_ARTICLES, String(message.donnees.quantiteProduits > 0));\n });\n };\n\n // Ferme le BroadcastChannel à la fermeture de la page\n document.addEventListener(\"visibilitychange\", (): void => {\n CANAL_BOUTON_PANIER.close();\n });\n};\n\ndocument.addEventListener(\"DOMContentLoaded\", () => {\n initialiseBoutonPanier();\n});\n"],"names":["initialiseBoutonPanier","BOUTON_PANIER","pipe","recupereElementDocumentEither","SELECTEUR_BOUTON_PANIER","recupereElementOuLeve","CANAL_BOUTON_PANIER","NOM_CANAL_BOUTON_PANIER","evenementMessage","valideMessageMajBoutonPanier","message","ATTRIBUT_CONTIENT_ARTICLES"],"mappings":"kfAcA,MAAMA,EAAyB,IAAY,CAEzC,MAAMC,EAAmCC,EACvCC,EAAiDC,CAAuB,EACxEC,CACF,EACMC,EAAwC,IAAI,iBAAiBC,CAAuB,EAEtED,EAAA,UAAaE,GAAkD,CACjFC,EAA6BD,CAAgB,EAE1C,QAASE,GAAoC,CAC5CT,EAAc,YAAc,SAAS,OAAOS,EAAQ,QAAQ,gBAAgB,CAAC,IAC7ET,EAAc,aAAaU,EAA4B,OAAOD,EAAQ,QAAQ,iBAAmB,CAAC,CAAC,CAAA,CACpG,CACL,EAGS,SAAA,iBAAiB,mBAAoB,IAAY,CACxDJ,EAAoB,MAAM,CAAA,CAC3B,CACH,EAEA,SAAS,iBAAiB,mBAAoB,IAAM,CAC3BN,EAAA,CACzB,CAAC"}
{"version":3,"file":"scripts-bouton-panier.js","sources":["../../src/scripts/scripts-bouton-panier.ts"],"sourcesContent":["/**\n * Scripts pour la mise à jour trans-fenêtres/trans-onglets du Bouton du Panier.\n */\n\nimport { pipe } from \"@mobily/ts-belt\";\n\nimport type { MessageMajBoutonPanier } from \"./lib/types/messages\";\n\nimport { ATTRIBUT_CONTIENT_ARTICLES, SELECTEUR_BOUTON_PANIER } from \"./constantes/dom.ts\";\nimport { NOM_CANAL_BOUTON_PANIER } from \"./constantes/messages.ts\";\nimport { recupereElementOuLeve } from \"./lib/dom.ts\";\nimport { valideMessageMajBoutonPanier } from \"./lib/messages.ts\";\nimport { recupereElementDocumentEither } from \"./lib/utils.ts\";\n\nconst initialiseBoutonPanier = (): void => {\n /** Le « Bouton » vers le Panier dont le texte est un indicateur du nombre de Produits dedans. */\n const BOUTON_PANIER: HTMLAnchorElement = pipe(\n recupereElementDocumentEither<HTMLAnchorElement>(SELECTEUR_BOUTON_PANIER),\n recupereElementOuLeve,\n );\n const CANAL_BOUTON_PANIER: BroadcastChannel = new BroadcastChannel(NOM_CANAL_BOUTON_PANIER);\n\n CANAL_BOUTON_PANIER.onmessage = (evenementMessage: MessageEvent<unknown>): void => {\n valideMessageMajBoutonPanier(evenementMessage)\n // Met à jour le Bouton du Panier\n .ifRight((message: MessageMajBoutonPanier) => {\n BOUTON_PANIER.textContent = `cart (${String(message.donnees.quantiteProduits)})`;\n BOUTON_PANIER.setAttribute(ATTRIBUT_CONTIENT_ARTICLES, String(message.donnees.quantiteProduits > 0));\n });\n };\n\n // Ferme le BroadcastChannel à la fermeture de la page\n document.addEventListener(\"visibilitychange\", (): void => {\n CANAL_BOUTON_PANIER.close();\n });\n};\n\ndocument.addEventListener(\"DOMContentLoaded\", () => {\n initialiseBoutonPanier();\n});\n"],"names":["initialiseBoutonPanier","BOUTON_PANIER","pipe","recupereElementDocumentEither","SELECTEUR_BOUTON_PANIER","recupereElementOuLeve","CANAL_BOUTON_PANIER","NOM_CANAL_BOUTON_PANIER","evenementMessage","valideMessageMajBoutonPanier","message","ATTRIBUT_CONTIENT_ARTICLES"],"mappings":"ifAcA,MAAMA,EAAyB,IAAY,CAEzC,MAAMC,EAAmCC,EACvCC,EAAiDC,CAAuB,EACxEC,CACF,EACMC,EAAwC,IAAI,iBAAiBC,CAAuB,EAEtED,EAAA,UAAaE,GAAkD,CACjFC,EAA6BD,CAAgB,EAE1C,QAASE,GAAoC,CAC5CT,EAAc,YAAc,SAAS,OAAOS,EAAQ,QAAQ,gBAAgB,CAAC,IAC7ET,EAAc,aAAaU,EAA4B,OAAOD,EAAQ,QAAQ,iBAAmB,CAAC,CAAC,CAAA,CACpG,CACL,EAGS,SAAA,iBAAiB,mBAAoB,IAAY,CACxDJ,EAAoB,MAAM,CAAA,CAC3B,CACH,EAEA,SAAS,iBAAiB,mBAAoB,IAAM,CAC3BN,EAAA,CACzB,CAAC"}

View file

@ -1,2 +1,2 @@
import{z as i}from"./index.CuMLbxmh.js";import{a as n,b as a}from"./dom.js";import{a as u,b as m}from"./utils.js";import{R as E}from"./dom2.js";import"./erreurs2.js";import"./exports.BFQs_g59.js";import"./pipe.CtTFdEz3.js";import"./Either.DDEPhGsy.js";document.addEventListener("DOMContentLoaded",()=>{const e=u(n),t=m(a);E.forEachWithIndex([t.at(0),t.at(-1)],(o,r)=>{r&&new IntersectionObserver(E.forEach(s=>{s.boundingClientRect.top<=0||i([s.isIntersecting,o]).with([!0,0],()=>e.removeAttribute("data-entrees-presentes-debut")).with([!0,1],()=>e.removeAttribute("data-entrees-presentes-fin")).with([!1,0],()=>e.setAttribute("data-entrees-presentes-debut","")).with([!1,1],()=>e.setAttribute("data-entrees-presentes-fin","")).run()}),{root:null,threshold:.9}).observe(r)})});
import{z as i}from"./index.CuMLbxmh.js";import{a as n,b as a}from"./dom.js";import{a as u,b as m}from"./utils.js";import{R as E}from"./dom2.js";import"./erreurs.js";import"./exports.jfK3lrNh.js";import"./pipe.CtTFdEz3.js";import"./Either.DDEPhGsy.js";document.addEventListener("DOMContentLoaded",()=>{const e=u(n),t=m(a);E.forEachWithIndex([t.at(0),t.at(-1)],(o,r)=>{r&&new IntersectionObserver(E.forEach(s=>{s.boundingClientRect.top<=0||i([s.isIntersecting,o]).with([!0,0],()=>e.removeAttribute("data-entrees-presentes-debut")).with([!0,1],()=>e.removeAttribute("data-entrees-presentes-fin")).with([!1,0],()=>e.setAttribute("data-entrees-presentes-debut","")).with([!1,1],()=>e.setAttribute("data-entrees-presentes-fin","")).run()}),{root:null,threshold:.9}).observe(r)})});
//# sourceMappingURL=scripts-menu-categories.js.map

View file

@ -1 +1 @@
{"version":3,"file":"scripts-menu-categories.js","sources":["../../src/scripts/scripts-menu-categories.ts"],"sourcesContent":["/** Scripts pour le Menu des Catégories de Produits */\n\nimport { A } from \"@mobily/ts-belt\";\nimport { match } from \"ts-pattern\";\n\nimport { SELECTEUR_ENTREE_MENU_CATEGORIES_PRODUITS, SELECTEUR_MENU_CATEGORIES_PRODUITS } from \"./constantes/dom.ts\";\nimport { recupereEleOuLeve, recupereElesOuLeve } from \"./lib/utils.ts\";\n\ndocument.addEventListener(\"DOMContentLoaded\", (): void => {\n const MENU_CATEGORIES_PRODUITS: HTMLElement = recupereEleOuLeve(SELECTEUR_MENU_CATEGORIES_PRODUITS);\n const ENTREES_MENU_CATEGORIES_PRODUITS: Array<HTMLAnchorElement> = recupereElesOuLeve(\n SELECTEUR_ENTREE_MENU_CATEGORIES_PRODUITS,\n );\n\n A.forEachWithIndex(\n [ENTREES_MENU_CATEGORIES_PRODUITS.at(0), ENTREES_MENU_CATEGORIES_PRODUITS.at(-1)],\n (index, entreeMenu) => {\n if (!entreeMenu) return;\n\n new IntersectionObserver(\n A.forEach(entree => {\n // Ne déclenche rien si le scroll n'est pas horizontal\n if (entree.boundingClientRect.top <= 0) return;\n match([entree.isIntersecting, index])\n .with([true, 0], () => MENU_CATEGORIES_PRODUITS.removeAttribute(\"data-entrees-presentes-debut\"))\n .with([true, 1], () => MENU_CATEGORIES_PRODUITS.removeAttribute(\"data-entrees-presentes-fin\"))\n .with([false, 0], () => MENU_CATEGORIES_PRODUITS.setAttribute(\"data-entrees-presentes-debut\", \"\"))\n .with([false, 1], () => MENU_CATEGORIES_PRODUITS.setAttribute(\"data-entrees-presentes-fin\", \"\"))\n .run();\n }),\n { root: null, threshold: 0.9 },\n ).observe(entreeMenu);\n },\n );\n});\n"],"names":["z","SELECTEUR_MENU_CATEGORIES_PRODUITS","SELECTEUR_ENTREE_MENU_CATEGORIES_PRODUITS","recupereEleOuLeve","recupereElesOuLeve","Ra","MENU_CATEGORIES_PRODUITS","ENTREES_MENU_CATEGORIES_PRODUITS","A","index","entreeMenu","entree","match"],"mappings":"AAQA,OAAA,KAAAA,MAAA,sBAAA,OAAA,KAAAC,EAAA,KAAAC,MAAA,WAAA,OAAA,KAAAC,EAAA,KAAAC,MAAA,aAAA,OAAA,KAAAC,MAAA,YAAA,MAAA,gBAAA,MAAA,wBAAA,MAAA,qBAAA,MAAA,uBAAA,SAAS,iBAAiB,mBAAoB,IAAY,CAClD,MAAAC,EAAwCH,EAAkBF,CAAkC,EAC5FM,EAA6DH,EACjEF,CACF,EAEEM,EAAA,iBACA,CAACD,EAAiC,GAAG,CAAC,EAAGA,EAAiC,GAAG,EAAE,CAAC,EAChF,CAACE,EAAOC,IAAe,CAChBA,GAED,IAAA,qBACFF,EAAE,QAAkBG,GAAA,CAEdA,EAAO,mBAAmB,KAAO,GAC/BC,EAAA,CAACD,EAAO,eAAgBF,CAAK,CAAC,EACjC,KAAK,CAAC,GAAM,CAAC,EAAG,IAAMH,EAAyB,gBAAgB,8BAA8B,CAAC,EAC9F,KAAK,CAAC,GAAM,CAAC,EAAG,IAAMA,EAAyB,gBAAgB,4BAA4B,CAAC,EAC5F,KAAK,CAAC,GAAO,CAAC,EAAG,IAAMA,EAAyB,aAAa,+BAAgC,EAAE,CAAC,EAChG,KAAK,CAAC,GAAO,CAAC,EAAG,IAAMA,EAAyB,aAAa,6BAA8B,EAAE,CAAC,EAC9F,IAAI,CAAA,CACR,EACD,CAAE,KAAM,KAAM,UAAW,EAAI,CAAA,EAC7B,QAAQI,CAAU,CAAA,CAExB,CACF,CAAC"}
{"version":3,"file":"scripts-menu-categories.js","sources":["../../src/scripts/scripts-menu-categories.ts"],"sourcesContent":["/** Scripts pour le Menu des Catégories de Produits */\n\nimport { A } from \"@mobily/ts-belt\";\nimport { match } from \"ts-pattern\";\n\nimport { SELECTEUR_ENTREE_MENU_CATEGORIES_PRODUITS, SELECTEUR_MENU_CATEGORIES_PRODUITS } from \"./constantes/dom.ts\";\nimport { recupereEleOuLeve, recupereElesOuLeve } from \"./lib/utils.ts\";\n\ndocument.addEventListener(\"DOMContentLoaded\", (): void => {\n const MENU_CATEGORIES_PRODUITS: HTMLElement = recupereEleOuLeve(SELECTEUR_MENU_CATEGORIES_PRODUITS);\n const ENTREES_MENU_CATEGORIES_PRODUITS: Array<HTMLAnchorElement> = recupereElesOuLeve(\n SELECTEUR_ENTREE_MENU_CATEGORIES_PRODUITS,\n );\n\n A.forEachWithIndex(\n [ENTREES_MENU_CATEGORIES_PRODUITS.at(0), ENTREES_MENU_CATEGORIES_PRODUITS.at(-1)],\n (index, entreeMenu) => {\n if (!entreeMenu) return;\n\n new IntersectionObserver(\n A.forEach(entree => {\n // Ne déclenche rien si le scroll n'est pas horizontal\n if (entree.boundingClientRect.top <= 0) return;\n match([entree.isIntersecting, index])\n .with([true, 0], () => MENU_CATEGORIES_PRODUITS.removeAttribute(\"data-entrees-presentes-debut\"))\n .with([true, 1], () => MENU_CATEGORIES_PRODUITS.removeAttribute(\"data-entrees-presentes-fin\"))\n .with([false, 0], () => MENU_CATEGORIES_PRODUITS.setAttribute(\"data-entrees-presentes-debut\", \"\"))\n .with([false, 1], () => MENU_CATEGORIES_PRODUITS.setAttribute(\"data-entrees-presentes-fin\", \"\"))\n .run();\n }),\n { root: null, threshold: 0.9 },\n ).observe(entreeMenu);\n },\n );\n});\n"],"names":["z","SELECTEUR_MENU_CATEGORIES_PRODUITS","SELECTEUR_ENTREE_MENU_CATEGORIES_PRODUITS","recupereEleOuLeve","recupereElesOuLeve","Ra","MENU_CATEGORIES_PRODUITS","ENTREES_MENU_CATEGORIES_PRODUITS","A","index","entreeMenu","entree","match"],"mappings":"AAQA,OAAA,KAAAA,MAAA,sBAAA,OAAA,KAAAC,EAAA,KAAAC,MAAA,WAAA,OAAA,KAAAC,EAAA,KAAAC,MAAA,aAAA,OAAA,KAAAC,MAAA,YAAA,MAAA,eAAA,MAAA,wBAAA,MAAA,qBAAA,MAAA,uBAAA,SAAS,iBAAiB,mBAAoB,IAAY,CAClD,MAAAC,EAAwCH,EAAkBF,CAAkC,EAC5FM,EAA6DH,EACjEF,CACF,EAEEM,EAAA,iBACA,CAACD,EAAiC,GAAG,CAAC,EAAGA,EAAiC,GAAG,EAAE,CAAC,EAChF,CAACE,EAAOC,IAAe,CAChBA,GAED,IAAA,qBACFF,EAAE,QAAkBG,GAAA,CAEdA,EAAO,mBAAmB,KAAO,GAC/BC,EAAA,CAACD,EAAO,eAAgBF,CAAK,CAAC,EACjC,KAAK,CAAC,GAAM,CAAC,EAAG,IAAMH,EAAyB,gBAAgB,8BAA8B,CAAC,EAC9F,KAAK,CAAC,GAAM,CAAC,EAAG,IAAMA,EAAyB,gBAAgB,4BAA4B,CAAC,EAC5F,KAAK,CAAC,GAAO,CAAC,EAAG,IAAMA,EAAyB,aAAa,+BAAgC,EAAE,CAAC,EAChG,KAAK,CAAC,GAAO,CAAC,EAAG,IAAMA,EAAyB,aAAa,6BAA8B,EAAE,CAAC,EAC9F,IAAI,CAAA,CACR,EACD,CAAE,KAAM,KAAM,UAAW,EAAI,CAAA,EAC7B,QAAQI,CAAU,CAAA,CAExB,CACF,CAAC"}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -1,2 +1,2 @@
import{c as p,d as T,C as i,e as l,f as L,g as f,h as N}from"./dom.js";import{a as c,b as _}from"./utils.js";import{R as o}from"./dom2.js";import{p as a}from"./pipe.CtTFdEz3.js";import{P as E}from"./index-c1cc4c86.Ce2mb7Nd.js";import"./erreurs2.js";import"./exports.BFQs_g59.js";import"./Either.DDEPhGsy.js";import"./belt_Option-91f3b350.Dja5KR5O.js";const u=c(L),I=_(f),S=_(N),m=new Map;o.forEachWithIndex(I,(s,r)=>{a(r,E.flatMap(t=>t.getAttribute(p)),E.tap(t=>{m.set(t,[r,S[s]])}))});document.addEventListener("DOMContentLoaded",()=>{u.addEventListener("click",s=>{const r=s.target;a(r,E.fromPredicate(t=>t.className===i),E.mapNullable(t=>t.parentElement),E.flatMap(t=>t.getAttribute(p)),E.tap(t=>{a(E.fromNullable(m.get(t)),E.tap(o.forEach(e=>e.removeAttribute(T))))})),a(r,E.fromPredicate(t=>t.className===l),E.flatMap(t=>t.getAttribute(p)),E.tap(t=>{if(r.hasAttribute(T)){a(E.fromNullable(m.get(t)),E.tap(o.forEach(e=>e.removeAttribute(T))));return}a(Array.from(m.values()),o.flat,o.forEach(e=>e.removeAttribute(T))),a(E.fromNullable(m.get(t)),E.tap(o.forEach(e=>e.toggleAttribute(T))))}))})});
import{c as p,d as T,C as i,e as l,f as L,g as f,h as N}from"./dom.js";import{a as c,b as _}from"./utils.js";import{R as o}from"./dom2.js";import{p as a}from"./pipe.CtTFdEz3.js";import{P as E}from"./index-c1cc4c86.CgXEmUX3.js";import"./erreurs.js";import"./exports.jfK3lrNh.js";import"./Either.DDEPhGsy.js";import"./belt_Option-91f3b350.Dja5KR5O.js";const u=c(L),I=_(f),S=_(N),m=new Map;o.forEachWithIndex(I,(s,r)=>{a(r,E.flatMap(t=>t.getAttribute(p)),E.tap(t=>{m.set(t,[r,S[s]])}))});document.addEventListener("DOMContentLoaded",()=>{u.addEventListener("click",s=>{const r=s.target;a(r,E.fromPredicate(t=>t.className===i),E.mapNullable(t=>t.parentElement),E.flatMap(t=>t.getAttribute(p)),E.tap(t=>{a(E.fromNullable(m.get(t)),E.tap(o.forEach(e=>e.removeAttribute(T))))})),a(r,E.fromPredicate(t=>t.className===l),E.flatMap(t=>t.getAttribute(p)),E.tap(t=>{if(r.hasAttribute(T)){a(E.fromNullable(m.get(t)),E.tap(o.forEach(e=>e.removeAttribute(T))));return}a(Array.from(m.values()),o.flat,o.forEach(e=>e.removeAttribute(T))),a(E.fromNullable(m.get(t)),E.tap(o.forEach(e=>e.toggleAttribute(T))))}))})});
//# sourceMappingURL=scripts-page-a-propos.js.map

File diff suppressed because one or more lines are too long

View file

@ -1,2 +1,2 @@
import{i as R,j as l,k as n,l as S}from"./dom.js";import{e as g}from"./nombres.js";import{a as r,b as N}from"./utils.js";import{p as O}from"./pipe.CtTFdEz3.js";import{P as s}from"./index-c1cc4c86.Ce2mb7Nd.js";import{R as G}from"./dom2.js";import"./erreurs2.js";import"./exports.BFQs_g59.js";import"./Either.DDEPhGsy.js";import"./belt_Option-91f3b350.Dja5KR5O.js";const c=()=>{const e={CONTENEUR_STORYTELLING:r(".storytelling__conteneur"),IMAGES_STORYTELLING:N(R),STORYTELLING:r(l)};let o=e.IMAGES_STORYTELLING.at(0)?.getBoundingClientRect().height??0,i=0;const L=(t,E)=>{t.toggleAttribute(n,E),t.toggleAttribute(S,E)},m=()=>{console.time(),o=O(G.getBy(e.IMAGES_STORYTELLING,t=>!t.hasAttribute(n)),s.map(t=>t.getBoundingClientRect().height),s.getWithDefault(0)),e.CONTENEUR_STORYTELLING.style.minHeight=`${String(o*e.IMAGES_STORYTELLING.length+61)}px`,e.CONTENEUR_STORYTELLING.style.maxHeight=`${String(o*e.IMAGES_STORYTELLING.length+61)}px`,console.timeEnd()},T=()=>{i=e.STORYTELLING.scrollTop,e.IMAGES_STORYTELLING.forEach((t,E)=>{const I=o*E,a=o*(E+1);L(t,!g(i,I,a))})};new ResizeObserver(()=>{m(),T()}).observe(e.STORYTELLING),e.STORYTELLING.addEventListener("scroll",()=>T())};document.addEventListener("DOMContentLoaded",()=>{c()});
import{i as R,j as l,k as n,l as S}from"./dom.js";import{e as g}from"./nombres.js";import{a as r,b as N}from"./utils.js";import{p as O}from"./pipe.CtTFdEz3.js";import{P as s}from"./index-c1cc4c86.CgXEmUX3.js";import{R as G}from"./dom2.js";import"./erreurs.js";import"./exports.jfK3lrNh.js";import"./Either.DDEPhGsy.js";import"./belt_Option-91f3b350.Dja5KR5O.js";const c=()=>{const e={CONTENEUR_STORYTELLING:r(".storytelling__conteneur"),IMAGES_STORYTELLING:N(R),STORYTELLING:r(l)};let o=e.IMAGES_STORYTELLING.at(0)?.getBoundingClientRect().height??0,i=0;const L=(t,E)=>{t.toggleAttribute(n,E),t.toggleAttribute(S,E)},m=()=>{console.time(),o=O(G.getBy(e.IMAGES_STORYTELLING,t=>!t.hasAttribute(n)),s.map(t=>t.getBoundingClientRect().height),s.getWithDefault(0)),e.CONTENEUR_STORYTELLING.style.minHeight=`${String(o*e.IMAGES_STORYTELLING.length+61)}px`,e.CONTENEUR_STORYTELLING.style.maxHeight=`${String(o*e.IMAGES_STORYTELLING.length+61)}px`,console.timeEnd()},T=()=>{i=e.STORYTELLING.scrollTop,e.IMAGES_STORYTELLING.forEach((t,E)=>{const I=o*E,a=o*(E+1);L(t,!g(i,I,a))})};new ResizeObserver(()=>{m(),T()}).observe(e.STORYTELLING),e.STORYTELLING.addEventListener("scroll",()=>T())};document.addEventListener("DOMContentLoaded",()=>{c()});
//# sourceMappingURL=scripts-page-accueil.js.map

View file

@ -1 +1 @@
{"version":3,"file":"scripts-page-accueil.js","sources":["../../src/scripts/scripts-page-accueil.ts"],"sourcesContent":["// Scripts pour la Page d'accueil\n\nimport { A, O, pipe } from \"@mobily/ts-belt\";\n\nimport {\n ATTRIBUT_ARIA_HIDDEN,\n ATTRIBUT_CACHE,\n SELECTEUR_CONTENEUR_STORYTELLING,\n SELECTEUR_IMAGES_STORYTELLING,\n} from \"./constantes/dom.ts\";\nimport { estEntreDeuxNombres } from \"./lib/nombres.ts\";\nimport { recupereEleOuLeve, recupereElesOuLeve } from \"./lib/utils.ts\";\n\nconst initialiseScrollStorytelling = (): void => {\n const E = {\n /** Le conteneur des images du storytelling. */\n CONTENEUR_STORYTELLING: recupereEleOuLeve<HTMLElement>(\".storytelling__conteneur\"),\n /** Les images du storytelling. */\n IMAGES_STORYTELLING: recupereElesOuLeve<HTMLDivElement>(SELECTEUR_IMAGES_STORYTELLING),\n /** Le bloc contenant le storytelling. */\n STORYTELLING: recupereEleOuLeve<HTMLElement>(SELECTEUR_CONTENEUR_STORYTELLING),\n };\n\n /** La hauteur d'une image du storytelling. */\n let hauteurImage = E.IMAGES_STORYTELLING.at(0)?.getBoundingClientRect().height ?? 0;\n /** La position du défilement (en pixels) du Conteneur des images du storytelling. */\n let positionDefilementConteneur = 0;\n\n /**\n * TODO\n * @param image\n * @param visible\n */\n const changeVisibiliteImage = (image: HTMLDivElement, visible: boolean) => {\n image.toggleAttribute(ATTRIBUT_CACHE, visible);\n image.toggleAttribute(ATTRIBUT_ARIA_HIDDEN, visible);\n };\n\n /**\n * TODO\n */\n const majDimensions = (): void => {\n console.time();\n hauteurImage = pipe(\n A.getBy(E.IMAGES_STORYTELLING, (i: HTMLDivElement) => !i.hasAttribute(ATTRIBUT_CACHE)),\n O.map((i: HTMLDivElement) => i.getBoundingClientRect().height),\n O.getWithDefault(0),\n );\n E.CONTENEUR_STORYTELLING.style.minHeight = `${String(hauteurImage * E.IMAGES_STORYTELLING.length + 61)}px`;\n E.CONTENEUR_STORYTELLING.style.maxHeight = `${String(hauteurImage * E.IMAGES_STORYTELLING.length + 61)}px`;\n console.timeEnd();\n };\n\n /**\n * TODO\n */\n const majImages = (): void => {\n // Met à jour la position du défilement dans le Conteneur\n positionDefilementConteneur = E.STORYTELLING.scrollTop;\n\n // Met à jour l'attribut de visibilité des images en fonction du défilement\n E.IMAGES_STORYTELLING.forEach((image: HTMLDivElement, index: number): void => {\n const debutYImage = hauteurImage * index;\n const finYImage = hauteurImage * (index + 1);\n\n changeVisibiliteImage(image, !estEntreDeuxNombres(positionDefilementConteneur, debutYImage, finYImage));\n });\n };\n\n // Initialise l'Observateur de Redimensionnement (ResizeObserver)\n new ResizeObserver((): void => {\n majDimensions();\n majImages();\n }).observe(E.STORYTELLING);\n\n // Initialise la mise à jour des images au défilement sur le Conteneur\n E.STORYTELLING.addEventListener(\"scroll\", (): void => majImages());\n};\n\ndocument.addEventListener(\"DOMContentLoaded\", (): void => {\n initialiseScrollStorytelling();\n});\n"],"names":["initialiseScrollStorytelling","E","recupereEleOuLeve","recupereElesOuLeve","SELECTEUR_IMAGES_STORYTELLING","SELECTEUR_CONTENEUR_STORYTELLING","hauteurImage","positionDefilementConteneur","changeVisibiliteImage","image","visible","ATTRIBUT_CACHE","ATTRIBUT_ARIA_HIDDEN","majDimensions","pipe","A","i","O","majImages","index","debutYImage","finYImage","estEntreDeuxNombres"],"mappings":"2WAaA,MAAMA,EAA+B,IAAY,CAC/C,MAAMC,EAAI,CAER,uBAAwBC,EAA+B,0BAA0B,EAEjF,oBAAqBC,EAAmCC,CAA6B,EAErF,aAAcF,EAA+BG,CAAgC,CAC/E,EAGI,IAAAC,EAAeL,EAAE,oBAAoB,GAAG,CAAC,GAAG,wBAAwB,QAAU,EAE9EM,EAA8B,EAO5B,MAAAC,EAAwB,CAACC,EAAuBC,IAAqB,CACnED,EAAA,gBAAgBE,EAAgBD,CAAO,EACvCD,EAAA,gBAAgBG,EAAsBF,CAAO,CACrD,EAKMG,EAAgB,IAAY,CAChC,QAAQ,KAAK,EACEP,EAAAQ,EACbC,EAAE,MAAMd,EAAE,oBAAsBe,GAAsB,CAACA,EAAE,aAAaL,CAAc,CAAC,EACrFM,EAAE,IAAKD,GAAsBA,EAAE,wBAAwB,MAAM,EAC7DC,EAAE,eAAe,CAAC,CACpB,EACEhB,EAAA,uBAAuB,MAAM,UAAY,GAAG,OAAOK,EAAeL,EAAE,oBAAoB,OAAS,EAAE,CAAC,KACpGA,EAAA,uBAAuB,MAAM,UAAY,GAAG,OAAOK,EAAeL,EAAE,oBAAoB,OAAS,EAAE,CAAC,KACtG,QAAQ,QAAQ,CAClB,EAKMiB,EAAY,IAAY,CAE5BX,EAA8BN,EAAE,aAAa,UAG7CA,EAAE,oBAAoB,QAAQ,CAACQ,EAAuBU,IAAwB,CAC5E,MAAMC,EAAcd,EAAea,EAC7BE,EAAYf,GAAgBa,EAAQ,GAE1CX,EAAsBC,EAAO,CAACa,EAAoBf,EAA6Ba,EAAaC,CAAS,CAAC,CAAA,CACvG,CACH,EAGA,IAAI,eAAe,IAAY,CACfR,EAAA,EACJK,EAAA,CAAA,CACX,EAAE,QAAQjB,EAAE,YAAY,EAGzBA,EAAE,aAAa,iBAAiB,SAAU,IAAYiB,GAAW,CACnE,EAEA,SAAS,iBAAiB,mBAAoB,IAAY,CAC3BlB,EAAA,CAC/B,CAAC"}
{"version":3,"file":"scripts-page-accueil.js","sources":["../../src/scripts/scripts-page-accueil.ts"],"sourcesContent":["// Scripts pour la Page d'accueil\n\nimport { A, O, pipe } from \"@mobily/ts-belt\";\n\nimport {\n ATTRIBUT_ARIA_HIDDEN,\n ATTRIBUT_CACHE,\n SELECTEUR_CONTENEUR_STORYTELLING,\n SELECTEUR_IMAGES_STORYTELLING,\n} from \"./constantes/dom.ts\";\nimport { estEntreDeuxNombres } from \"./lib/nombres.ts\";\nimport { recupereEleOuLeve, recupereElesOuLeve } from \"./lib/utils.ts\";\n\nconst initialiseScrollStorytelling = (): void => {\n const E = {\n /** Le conteneur des images du storytelling. */\n CONTENEUR_STORYTELLING: recupereEleOuLeve<HTMLElement>(\".storytelling__conteneur\"),\n /** Les images du storytelling. */\n IMAGES_STORYTELLING: recupereElesOuLeve<HTMLDivElement>(SELECTEUR_IMAGES_STORYTELLING),\n /** Le bloc contenant le storytelling. */\n STORYTELLING: recupereEleOuLeve<HTMLElement>(SELECTEUR_CONTENEUR_STORYTELLING),\n };\n\n /** La hauteur d'une image du storytelling. */\n let hauteurImage = E.IMAGES_STORYTELLING.at(0)?.getBoundingClientRect().height ?? 0;\n /** La position du défilement (en pixels) du Conteneur des images du storytelling. */\n let positionDefilementConteneur = 0;\n\n /**\n * TODO\n * @param image\n * @param visible\n */\n const changeVisibiliteImage = (image: HTMLDivElement, visible: boolean) => {\n image.toggleAttribute(ATTRIBUT_CACHE, visible);\n image.toggleAttribute(ATTRIBUT_ARIA_HIDDEN, visible);\n };\n\n /**\n * TODO\n */\n const majDimensions = (): void => {\n console.time();\n hauteurImage = pipe(\n A.getBy(E.IMAGES_STORYTELLING, (i: HTMLDivElement) => !i.hasAttribute(ATTRIBUT_CACHE)),\n O.map((i: HTMLDivElement) => i.getBoundingClientRect().height),\n O.getWithDefault(0),\n );\n E.CONTENEUR_STORYTELLING.style.minHeight = `${String(hauteurImage * E.IMAGES_STORYTELLING.length + 61)}px`;\n E.CONTENEUR_STORYTELLING.style.maxHeight = `${String(hauteurImage * E.IMAGES_STORYTELLING.length + 61)}px`;\n console.timeEnd();\n };\n\n /**\n * TODO\n */\n const majImages = (): void => {\n // Met à jour la position du défilement dans le Conteneur\n positionDefilementConteneur = E.STORYTELLING.scrollTop;\n\n // Met à jour l'attribut de visibilité des images en fonction du défilement\n E.IMAGES_STORYTELLING.forEach((image: HTMLDivElement, index: number): void => {\n const debutYImage = hauteurImage * index;\n const finYImage = hauteurImage * (index + 1);\n\n changeVisibiliteImage(image, !estEntreDeuxNombres(positionDefilementConteneur, debutYImage, finYImage));\n });\n };\n\n // Initialise l'Observateur de Redimensionnement (ResizeObserver)\n new ResizeObserver((): void => {\n majDimensions();\n majImages();\n }).observe(E.STORYTELLING);\n\n // Initialise la mise à jour des images au défilement sur le Conteneur\n E.STORYTELLING.addEventListener(\"scroll\", (): void => majImages());\n};\n\ndocument.addEventListener(\"DOMContentLoaded\", (): void => {\n initialiseScrollStorytelling();\n});\n"],"names":["initialiseScrollStorytelling","E","recupereEleOuLeve","recupereElesOuLeve","SELECTEUR_IMAGES_STORYTELLING","SELECTEUR_CONTENEUR_STORYTELLING","hauteurImage","positionDefilementConteneur","changeVisibiliteImage","image","visible","ATTRIBUT_CACHE","ATTRIBUT_ARIA_HIDDEN","majDimensions","pipe","A","i","O","majImages","index","debutYImage","finYImage","estEntreDeuxNombres"],"mappings":"0WAaA,MAAMA,EAA+B,IAAY,CAC/C,MAAMC,EAAI,CAER,uBAAwBC,EAA+B,0BAA0B,EAEjF,oBAAqBC,EAAmCC,CAA6B,EAErF,aAAcF,EAA+BG,CAAgC,CAC/E,EAGI,IAAAC,EAAeL,EAAE,oBAAoB,GAAG,CAAC,GAAG,wBAAwB,QAAU,EAE9EM,EAA8B,EAO5B,MAAAC,EAAwB,CAACC,EAAuBC,IAAqB,CACnED,EAAA,gBAAgBE,EAAgBD,CAAO,EACvCD,EAAA,gBAAgBG,EAAsBF,CAAO,CACrD,EAKMG,EAAgB,IAAY,CAChC,QAAQ,KAAK,EACEP,EAAAQ,EACbC,EAAE,MAAMd,EAAE,oBAAsBe,GAAsB,CAACA,EAAE,aAAaL,CAAc,CAAC,EACrFM,EAAE,IAAKD,GAAsBA,EAAE,wBAAwB,MAAM,EAC7DC,EAAE,eAAe,CAAC,CACpB,EACEhB,EAAA,uBAAuB,MAAM,UAAY,GAAG,OAAOK,EAAeL,EAAE,oBAAoB,OAAS,EAAE,CAAC,KACpGA,EAAA,uBAAuB,MAAM,UAAY,GAAG,OAAOK,EAAeL,EAAE,oBAAoB,OAAS,EAAE,CAAC,KACtG,QAAQ,QAAQ,CAClB,EAKMiB,EAAY,IAAY,CAE5BX,EAA8BN,EAAE,aAAa,UAG7CA,EAAE,oBAAoB,QAAQ,CAACQ,EAAuBU,IAAwB,CAC5E,MAAMC,EAAcd,EAAea,EAC7BE,EAAYf,GAAgBa,EAAQ,GAE1CX,EAAsBC,EAAO,CAACa,EAAoBf,EAA6Ba,EAAaC,CAAS,CAAC,CAAA,CACvG,CACH,EAGA,IAAI,eAAe,IAAY,CACfR,EAAA,EACJK,EAAA,CAAA,CACX,EAAE,QAAQjB,EAAE,YAAY,EAGzBA,EAAE,aAAa,iBAAiB,SAAU,IAAYiB,GAAW,CACnE,EAEA,SAAS,iBAAiB,mBAAoB,IAAY,CAC3BlB,EAAA,CAC/B,CAAC"}

View file

@ -1,4 +1,4 @@
import{z as _,N as l}from"./index.CuMLbxmh.js";import{V as O}from"./index.BykRh4R4.js";import{R as S}from"./api.js";import{m as P,n as R,o as D,p as n,q as u,r as m,s as I}from"./dom.js";import{l as L}from"./animations.js";import{h as f}from"./dom2.js";import{S as g,B as d}from"./erreurs2.js";import{g as h,c as A}from"./reseau.js";import{W as B,a as N}from"./products.js";import{a as p}from"./utils.js";import{e as c}from"./validation.js";import{E as o}from"./MaybeAsync.BkJailCK.js";import{p as C}from"./pipe.CtTFdEz3.js";import{t as v}from"./index-0eef19ec.BYszGP4b.js";import"./Either.DDEPhGsy.js";import"./exports.BFQs_g59.js";import"./erreurs3.js";import"./products2.js";import"./belt_Option-91f3b350.Dja5KR5O.js";const T=_etats,t={BOUTON_PLUS_DE_PRODUITS:p(P),GRILLE_PRODUITS:p(R)},b=()=>{const a=t.GRILLE_PRODUITS.getAttribute(D);t.BOUTON_PLUS_DE_PRODUITS.addEventListener("click",()=>{const s=Number(t.GRILLE_PRODUITS.getAttribute(n))+1,U={page:s,per_page:12,...a&&{category:a}};o.liftEither(c(U,B)).ifRight(()=>{t.BOUTON_PLUS_DE_PRODUITS.setAttribute(u,""),t.BOUTON_PLUS_DE_PRODUITS.setAttribute(m,""),L(t.BOUTON_PLUS_DE_PRODUITS,500)}).chain(r=>o(()=>h({authString:T.authString,nonce:T.nonce,route:S,searchParams:new URLSearchParams(r).toString()}))).chain(r=>o(async({throwE:e})=>_(await A(r)).with({status:500},()=>e(new g("500 Server Error"))).with({status:400},()=>e(new d("400 Server Error"))).with({status:200},i=>i.body).run())).chain(r=>o.liftEither(c(r,N))).ifRight(r=>{r.length<12&&t.BOUTON_PLUS_DE_PRODUITS.toggleAttribute(I);const e=document.createDocumentFragment();for(const i of r.slice(0,12))C(f`
import{z as _,N as l}from"./index.CuMLbxmh.js";import{V as O}from"./index.BykRh4R4.js";import{R as S}from"./api.js";import{m as P,n as R,o as D,p as n,q as u,r as p,s as I}from"./dom.js";import{l as L}from"./animations.js";import{h as f}from"./dom2.js";import{S as g,B as d}from"./erreurs.js";import{E as o,g as h,c as A}from"./reseau.js";import{W as B,a as N}from"./products.js";import{a as m}from"./utils.js";import{e as c}from"./validation.js";import{p as C}from"./pipe.CtTFdEz3.js";import{t as v}from"./index-0eef19ec.BAWlGMMA.js";import"./Either.DDEPhGsy.js";import"./exports.jfK3lrNh.js";import"./erreurs3.js";import"./products2.js";import"./belt_Option-91f3b350.Dja5KR5O.js";const T=_etats,t={BOUTON_PLUS_DE_PRODUITS:m(P),GRILLE_PRODUITS:m(R)},b=()=>{const a=t.GRILLE_PRODUITS.getAttribute(D);t.BOUTON_PLUS_DE_PRODUITS.addEventListener("click",()=>{const s=Number(t.GRILLE_PRODUITS.getAttribute(n))+1,U={page:s,per_page:12,...a&&{category:a}};o.liftEither(c(U,B)).ifRight(()=>{t.BOUTON_PLUS_DE_PRODUITS.setAttribute(u,""),t.BOUTON_PLUS_DE_PRODUITS.setAttribute(p,""),L(t.BOUTON_PLUS_DE_PRODUITS,500)}).chain(r=>o(()=>h({authString:T.authString,nonce:T.nonce,route:S,searchParams:new URLSearchParams(r).toString()}))).chain(r=>o(async({throwE:e})=>_(await A(r)).with({status:500},()=>e(new g("500 Server Error"))).with({status:400},()=>e(new d("400 Server Error"))).with({status:200},i=>i.body).run())).chain(r=>o.liftEither(c(r,N))).ifRight(r=>{r.length<12&&t.BOUTON_PLUS_DE_PRODUITS.toggleAttribute(I);const e=document.createDocumentFragment();for(const i of r.slice(0,12))C(f`
<article class="produit">
<figure>
<a href="/product/${i.slug}">
@ -21,5 +21,5 @@ import{z as _,N as l}from"./index.CuMLbxmh.js";import{V as O}from"./index.BykRh4
</figcaption>
</figure>
</article>
`,v(E=>e.appendChild(E)));t.GRILLE_PRODUITS.appendChild(e),t.GRILLE_PRODUITS.setAttribute(n,String(s)),t.BOUTON_PLUS_DE_PRODUITS.textContent="Show more"}).ifLeft(r=>{_(r).with(l.instanceOf(O),e=>console.error("ValiError",e.issues)).otherwise(e=>console.error("Erreur",e)),t.BOUTON_PLUS_DE_PRODUITS.textContent="Error, try again?"}).finally(()=>{t.BOUTON_PLUS_DE_PRODUITS.removeAttribute(m),t.BOUTON_PLUS_DE_PRODUITS.removeAttribute(u)}).run()})};document.addEventListener("DOMContentLoaded",()=>{b()});
`,v(E=>e.appendChild(E)));t.GRILLE_PRODUITS.appendChild(e),t.GRILLE_PRODUITS.setAttribute(n,String(s)),t.BOUTON_PLUS_DE_PRODUITS.textContent="Show more"}).ifLeft(r=>{_(r).with(l.instanceOf(O),e=>console.error("ValiError",e.issues)).otherwise(e=>console.error("Erreur",e)),t.BOUTON_PLUS_DE_PRODUITS.textContent="Error, try again?"}).finally(()=>{t.BOUTON_PLUS_DE_PRODUITS.removeAttribute(p),t.BOUTON_PLUS_DE_PRODUITS.removeAttribute(u)}).run()})};document.addEventListener("DOMContentLoaded",()=>{b()});
//# sourceMappingURL=scripts-page-boutique.js.map

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -1,2 +1,2 @@
import{z as a,N as o}from"./index.CuMLbxmh.js";import{V as p}from"./index.BykRh4R4.js";import{c as b,d as B}from"./api.js";import{I as M,J as w,K as v,L as y,x,M as V,w as G,q as i,r as n,N as R,s as u}from"./dom.js";import{E as H}from"./erreurs.js";import{b as f}from"./messages3.js";import{l as N}from"./animations.js";import{c as D,i as W}from"./dom2.js";import{S as _}from"./erreurs2.js";import{E as S}from"./codes-promo.js";import{e as j}from"./gardes.js";import{r as J,b as U}from"./messages.js";import{d as T,a as A,f as P,i as k}from"./nombres.js";import{p as L}from"./reseau.js";import{W as h}from"./cart.js";import{W as q}from"./cart-apply-coupon.js";import{W as z}from"./cart-remove-coupon.js";import{a as E}from"./utils.js";import{e as C}from"./validation.js";import{E as s}from"./MaybeAsync.BkJailCK.js";import{p as c}from"./pipe.CtTFdEz3.js";import{M as F}from"./Either.DDEPhGsy.js";import"./exports.BFQs_g59.js";import"./erreurs3.js";import"./messages2.js";import"./cart2.js";import"./adresses2.js";import"./cart-coupons.js";import"./couts-livraison.js";const d=_etats,t={BOUTON_CODE_PROMO:E(M),CHAMP_CODE_PROMO:E(w),ENSEMBLE_CODE_PROMO:E(v),MESSAGE_CODE_PROMO:E(y),TOTAL_PANIER:E(x),TOTAL_REDUCTION_LIGNE:E(V),TOTAL_REDUCTION_VALEUR:E(G)},Nt=()=>{const l=()=>F.fromFalsy(t.CHAMP_CODE_PROMO.value.trim()).extractNullable(),g=()=>t.ENSEMBLE_CODE_PROMO.hasAttribute(R);t.ENSEMBLE_CODE_PROMO.addEventListener("click",I=>a({cible:I.target,codePromoPresent:g(),valeurCodePromo:l()}).with({cible:o.when(O=>D(O,M)),codePromoPresent:!1,valeurCodePromo:o.string},({valeurCodePromo:O})=>void s.liftEither(C({code:O},q)).ifRight(()=>{t.BOUTON_CODE_PROMO.setAttribute(i,""),t.BOUTON_CODE_PROMO.setAttribute(n,""),t.MESSAGE_CODE_PROMO.textContent="",N(t.BOUTON_CODE_PROMO,500)}).map(e=>L({corps:JSON.stringify(e),nonce:d.nonce,route:b})).chain(e=>s(async({throwE:r})=>{const m={body:await e.json(),status:e.status};return a(m).with({status:500},()=>r(new _("500 Server Error"))).with({body:o.when(()=>J(m,H)),status:400},()=>r(new S(l()??""))).with({status:200},()=>m.body).run()})).chain(e=>s.liftEither(C(e,h))).ifRight(e=>{t.ENSEMBLE_CODE_PROMO.toggleAttribute(R),t.CHAMP_CODE_PROMO.toggleAttribute(i),t.CHAMP_CODE_PROMO.value=e.coupons[0]?.code??"",t.BOUTON_CODE_PROMO.textContent="Remove",t.TOTAL_PANIER.textContent=c(T(e.totals.total_price),A,P),t.TOTAL_REDUCTION_LIGNE.toggleAttribute(u),t.TOTAL_REDUCTION_VALEUR.textContent=c(T(e.totals.total_discount),k,A,P),U(f,!0)}).ifLeft(e=>{t.BOUTON_CODE_PROMO.textContent="Apply",a(e).with(o.instanceOf(p),r=>console.error("ValiError",r.issues)).with(o.instanceOf(S),r=>{t.MESSAGE_CODE_PROMO.textContent="This promo code does not exist.",console.error(r)}).with(o.instanceOf(_),r=>{t.MESSAGE_CODE_PROMO.textContent="Sorry, something went wrong! Please refresh the page and try again.",console.error(r)}).with(o.instanceOf(TypeError),r=>{t.MESSAGE_CODE_PROMO.textContent="Sorry, something went wrong! Please refresh the page and try again.",console.error(r)}).exhaustive()}).finally(()=>{t.BOUTON_CODE_PROMO.removeAttribute(n),t.BOUTON_CODE_PROMO.removeAttribute(i)}).run()).with({cible:o.when(O=>D(O,M)),codePromoPresent:!0,valeurCodePromo:o.string},({valeurCodePromo:O})=>void s.liftEither(C({code:O},z)).ifRight(()=>{t.BOUTON_CODE_PROMO.setAttribute(i,""),t.BOUTON_CODE_PROMO.setAttribute(n,""),N(t.BOUTON_CODE_PROMO,500)}).map(e=>L({corps:JSON.stringify(e),nonce:d.nonce,route:B})).chain(e=>s(async({throwE:r})=>(j(e)&&r(new _("500 server Error")),await e.json()))).chain(e=>s.liftEither(C(e,h))).ifRight(e=>{t.ENSEMBLE_CODE_PROMO.toggleAttribute(R),t.ENSEMBLE_CODE_PROMO.reset(),t.CHAMP_CODE_PROMO.toggleAttribute(i),t.CHAMP_CODE_PROMO.textContent="",t.BOUTON_CODE_PROMO.textContent="Apply",t.TOTAL_PANIER.textContent=c(T(e.totals.total_price),A,P),t.TOTAL_REDUCTION_LIGNE.toggleAttribute(u),t.TOTAL_REDUCTION_VALEUR.textContent="-0€",U(f,!0)}).ifLeft(e=>a(e).with(o.instanceOf(p),r=>console.error("retour ajout code promo",r.issues)).with(o.instanceOf(_),r=>console.error("retour ajout code promo",r)).with(o.instanceOf(TypeError),r=>console.error("retour ajout code promo",r)).exhaustive()).finally(()=>{t.BOUTON_CODE_PROMO.removeAttribute(n),t.BOUTON_CODE_PROMO.removeAttribute(i)}).run()).with(o._,W))};export{Nt as i};
import{z as a,N as o}from"./index.CuMLbxmh.js";import{V as u}from"./index.BykRh4R4.js";import{a as b,b as B}from"./api.js";import{E as w}from"./erreurs2.js";import{I as M,J as v,K as y,L as x,x as V,M as G,w as H,q as i,r as n,N as R,s as p}from"./dom.js";import{b as N}from"./messages3.js";import{l as f}from"./animations.js";import{c as D,i as W}from"./dom2.js";import{S as _}from"./erreurs.js";import{E as S}from"./codes-promo.js";import{e as j}from"./gardes.js";import{r as J,e as U}from"./messages.js";import{d as T,a as A,f as P,i as k}from"./nombres.js";import{E as s,p as L}from"./reseau.js";import{W as h}from"./cart.js";import{W as q}from"./cart-apply-coupon.js";import{W as z}from"./cart-remove-coupon.js";import{a as E}from"./utils.js";import{e as C}from"./validation.js";import{p as c}from"./pipe.CtTFdEz3.js";import{M as F}from"./Either.DDEPhGsy.js";import"./exports.jfK3lrNh.js";import"./erreurs3.js";import"./messages2.js";import"./cart2.js";import"./adresses2.js";import"./cart-coupons.js";import"./couts-livraison.js";const d=_etats,t={BOUTON_CODE_PROMO:E(M),CHAMP_CODE_PROMO:E(v),ENSEMBLE_CODE_PROMO:E(y),MESSAGE_CODE_PROMO:E(x),TOTAL_PANIER:E(V),TOTAL_REDUCTION_LIGNE:E(G),TOTAL_REDUCTION_VALEUR:E(H)},Nt=()=>{const l=()=>F.fromFalsy(t.CHAMP_CODE_PROMO.value.trim()).extractNullable(),g=()=>t.ENSEMBLE_CODE_PROMO.hasAttribute(R);t.ENSEMBLE_CODE_PROMO.addEventListener("click",I=>a({cible:I.target,codePromoPresent:g(),valeurCodePromo:l()}).with({cible:o.when(O=>D(O,M)),codePromoPresent:!1,valeurCodePromo:o.string},({valeurCodePromo:O})=>void s.liftEither(C({code:O},q)).ifRight(()=>{t.BOUTON_CODE_PROMO.setAttribute(i,""),t.BOUTON_CODE_PROMO.setAttribute(n,""),t.MESSAGE_CODE_PROMO.textContent="",f(t.BOUTON_CODE_PROMO,500)}).map(e=>L({corps:JSON.stringify(e),nonce:d.nonce,route:b})).chain(e=>s(async({throwE:r})=>{const m={body:await e.json(),status:e.status};return a(m).with({status:500},()=>r(new _("500 Server Error"))).with({body:o.when(()=>J(m,w)),status:400},()=>r(new S(l()??""))).with({status:200},()=>m.body).run()})).chain(e=>s.liftEither(C(e,h))).ifRight(e=>{t.ENSEMBLE_CODE_PROMO.toggleAttribute(R),t.CHAMP_CODE_PROMO.toggleAttribute(i),t.CHAMP_CODE_PROMO.value=e.coupons[0]?.code??"",t.BOUTON_CODE_PROMO.textContent="Remove",t.TOTAL_PANIER.textContent=c(T(e.totals.total_price),A,P),t.TOTAL_REDUCTION_LIGNE.toggleAttribute(p),t.TOTAL_REDUCTION_VALEUR.textContent=c(T(e.totals.total_discount),k,A,P),U(N,!0)}).ifLeft(e=>{t.BOUTON_CODE_PROMO.textContent="Apply",a(e).with(o.instanceOf(u),r=>console.error("ValiError",r.issues)).with(o.instanceOf(S),r=>{t.MESSAGE_CODE_PROMO.textContent="This promo code does not exist.",console.error(r)}).with(o.instanceOf(_),r=>{t.MESSAGE_CODE_PROMO.textContent="Sorry, something went wrong! Please refresh the page and try again.",console.error(r)}).with(o.instanceOf(TypeError),r=>{t.MESSAGE_CODE_PROMO.textContent="Sorry, something went wrong! Please refresh the page and try again.",console.error(r)}).exhaustive()}).finally(()=>{t.BOUTON_CODE_PROMO.removeAttribute(n),t.BOUTON_CODE_PROMO.removeAttribute(i)}).run()).with({cible:o.when(O=>D(O,M)),codePromoPresent:!0,valeurCodePromo:o.string},({valeurCodePromo:O})=>void s.liftEither(C({code:O},z)).ifRight(()=>{t.BOUTON_CODE_PROMO.setAttribute(i,""),t.BOUTON_CODE_PROMO.setAttribute(n,""),f(t.BOUTON_CODE_PROMO,500)}).map(e=>L({corps:JSON.stringify(e),nonce:d.nonce,route:B})).chain(e=>s(async({throwE:r})=>(j(e)&&r(new _("500 server Error")),await e.json()))).chain(e=>s.liftEither(C(e,h))).ifRight(e=>{t.ENSEMBLE_CODE_PROMO.toggleAttribute(R),t.ENSEMBLE_CODE_PROMO.reset(),t.CHAMP_CODE_PROMO.toggleAttribute(i),t.CHAMP_CODE_PROMO.textContent="",t.BOUTON_CODE_PROMO.textContent="Apply",t.TOTAL_PANIER.textContent=c(T(e.totals.total_price),A,P),t.TOTAL_REDUCTION_LIGNE.toggleAttribute(p),t.TOTAL_REDUCTION_VALEUR.textContent="-0€",U(N,!0)}).ifLeft(e=>a(e).with(o.instanceOf(u),r=>console.error("retour ajout code promo",r.issues)).with(o.instanceOf(_),r=>console.error("retour ajout code promo",r)).with(o.instanceOf(TypeError),r=>console.error("retour ajout code promo",r)).exhaustive()).finally(()=>{t.BOUTON_CODE_PROMO.removeAttribute(n),t.BOUTON_CODE_PROMO.removeAttribute(i)}).run()).with(o._,W))};export{Nt as i};
//# sourceMappingURL=scripts-page-panier-code-promo.js.map

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,2 @@
import{z as c,N as M}from"./index.CuMLbxmh.js";import{c as v,d as D}from"./api.js";import{t as J,B as Q,F as y,G as L,H as B,E as W,q as A}from"./dom.js";import{b as _}from"./messages3.js";import{f as q,m as f,b as k,r as j}from"./dom2.js";import{S as R,B as T}from"./erreurs.js";import{b as S,c as N,e as d}from"./messages.js";import{d as s}from"./nombres.js";import{E as a,e as I,p as P,c as b}from"./reseau.js";import{W as g}from"./cart.js";import{W as G}from"./cart-remove-item.js";import{W as U}from"./cart-update-item.js";import{c as V}from"./utils.js";import{e as E}from"./validation.js";import{p as h}from"./pipe.CtTFdEz3.js";import{M as m}from"./Either.DDEPhGsy.js";import"./exports.jfK3lrNh.js";import"./index.BykRh4R4.js";import"./erreurs3.js";import"./messages2.js";import"./cart2.js";import"./adresses2.js";import"./cart-coupons.js";import"./couts-livraison.js";const C=_etats,$={ENTREES_PANIER:V(J)},x=i=>o=>h(k(i)(o),j),l=i=>{const o=x(i);return{boutonAddition:o(y),boutonSoustraction:o(L),boutonSuppression:o(B),champQuantite:o(W)}},w=i=>o=>q(o,n=>{n.boutonSoustraction.setAttribute(A,""),n.boutonAddition.setAttribute(A,""),n.boutonSuppression.setAttribute(A,""),n.boutonSuppression.textContent="Loading"}),ft=()=>{$.ENTREES_PANIER.ifRight(i=>q(i,o=>{const n=m.fromNullable(o.getAttribute(Q)).ifNothing(()=>{o.remove()}).orDefault("CLE_PANIER_INEXISTANTE"),p=l(o);o.addEventListener("click",O=>{c(O.target).with(M.nullish,()=>console.error(O.target)).when(e=>e.matches(y),()=>{m.fromNullable(p.champQuantite.valueAsNumber).ifJust(e=>{a.liftEither(E({key:n,quantity:e+1},U)).ifRight(()=>h(i,f(l),w())).chain(t=>I(P({corps:JSON.stringify(t),nonce:C.nonce,route:v}))).chain(t=>a(async({throwE:r})=>c(await b(t)).with({status:500},()=>r(new R("500 Server Error"))).with({status:400},()=>r(new T("400 Bad Request Error"))).with({status:200},u=>u.body).otherwise(u=>r(new Error(`Erreur inconnue ${String(u.status)}`))))).chain(t=>a.liftEither(E(t,g))).ifRight(t=>{S({quantiteProduits:t.items_count}),N({produits:t.items,sousTotalProduits:s(t.totals.total_items),sousTotalReduction:s(t.totals.total_discount),totalPanier:s(t.totals.total_price)}),d(_,!0)}).run()})}).when(e=>e.matches(L),()=>{m.fromNullable(p.champQuantite.valueAsNumber).filter(e=>e>1).ifJust(e=>{a.liftEither(E({key:n,quantity:e-1},U)).ifRight(()=>h(i,f(l),w())).chain(t=>I(P({corps:JSON.stringify(t),nonce:C.nonce,route:v}))).chain(t=>a(async({throwE:r})=>c(await b(t)).with({status:500},()=>r(new R("500 Server Error"))).with({status:400},()=>r(new T("400 Bad Request Error"))).with({status:200},u=>u.body).otherwise(u=>r(new Error(`Erreur inconnue ${String(u.status)}`))))).chain(t=>a.liftEither(E(t,g))).ifRight(t=>{S({quantiteProduits:t.items_count}),N({produits:t.items,sousTotalProduits:s(t.totals.total_items),sousTotalReduction:s(t.totals.total_discount),totalPanier:s(t.totals.total_price)}),d(_,!0)}).run()})}).when(e=>e.matches(B),()=>{m.fromNullable(p.champQuantite.valueAsNumber).ifJust(()=>{a.liftEither(E({key:n},G)).ifRight(()=>h(i,f(l),w())).chain(e=>I(P({corps:JSON.stringify(e),nonce:C.nonce,route:D}))).chain(e=>a(async({throwE:t})=>c(await b(e)).with({status:500},()=>t(new R("500 Server Error"))).with({status:400},()=>t(new T("400 Bad Request Error"))).with({status:200},r=>r.body).otherwise(r=>t(new Error(`Erreur inconnue ${String(r.status)}`))))).chain(e=>a.liftEither(E(e,g))).ifRight(e=>{S({quantiteProduits:e.items_count}),N({produits:e.items,sousTotalProduits:s(e.totals.total_items),sousTotalReduction:s(e.totals.total_discount),totalPanier:s(e.totals.total_price)}),d(_,!0),o.remove()}).run()})}).run()})}))};export{ft as i};
//# sourceMappingURL=scripts-page-panier-panneau-produits.js.map

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -1,2 +1,2 @@
import{z as N}from"./index.CuMLbxmh.js";import{e as h,E as U}from"./api.js";import{O as g,P as b,Q as v,R as D,T as P,U as M,V as w,W as H,X as F,Y as B,Z as G,_,$ as l,s as A,q as f,a0 as y}from"./dom.js";import{r as W,d as C,R as c}from"./dom2.js";import{l as x,r as k}from"./erreurs2.js";import{b as J,e as V,a as j}from"./gardes.js";import{e as X}from"./messages.js";import{t as q}from"./reseau.js";import{W as Q}from"./cart-add-item.js";import{W as $}from"./cart.js";import{r as L,a as E,c as S,b as z,y as Y}from"./utils.js";import{e as Z}from"./validation.js";import{p as n}from"./pipe.CtTFdEz3.js";import{l as K}from"./index-0eef19ec.BYszGP4b.js";import{M as u}from"./Either.DDEPhGsy.js";import"./exports.BFQs_g59.js";import"./index.BykRh4R4.js";import"./messages3.js";import"./erreurs3.js";import"./messages2.js";import"./MaybeAsync.BkJailCK.js";import"./cart2.js";import"./adresses2.js";import"./cart-coupons.js";import"./couts-livraison.js";import"./belt_Option-91f3b350.Dja5KR5O.js";const I=_etats,ee=s=>{s.forEach(o=>{o[0].setAttribute(l,"false"),o[1].setAttribute(A,"true")})},a=n(L(g),W),d=L(b),te=E(P),re=n(S(v),C),oe=n(S(D),C),se=()=>{const s=E(M),o=E(w),i=E(H),r=E(F),e=c.flat([E(B),z(G)]),t=()=>Number(r.getAttribute(_));c.forEachWithIndex([e.at(0),e.at(-1)],(m,p)=>{p&&(new IntersectionObserver(c.forEach(T=>N([T.isIntersecting,m]).with([!0,0],()=>s.removeAttribute("data-images-presentes-debut")).with([!0,1],()=>s.removeAttribute("data-images-presentes-fin")).with([!1,0],()=>s.setAttribute("data-images-presentes-debut","")).with([!1,1],()=>s.setAttribute("data-images-presentes-fin","")).otherwise(()=>{})),{root:null,rootMargin:"100% 0% 100% 0%",threshold:.5}).observe(p),c.forEachWithIndex(e,(T,O)=>new IntersectionObserver(c.forEach(R=>{R.isIntersecting&&r.setAttribute(_,String(T))}),{root:null,rootMargin:"100% 0% 100% 0%",threshold:.5}).observe(O)),o.addEventListener("click",()=>e[t()-1]?.scrollIntoView({behavior:"smooth",block:"nearest",inline:"center"})),i.addEventListener("click",()=>e[t()+1]?.scrollIntoView({behavior:"smooth",block:"nearest",inline:"center"})))})},ie=()=>{const s=new Map;re.forEach((o,i)=>{const r=o.getAttribute("id"),e=oe[i];if(!r)throw new Error("Le lien ne dispose pas d'ID !");if(!e)throw new Error("Le lien ne dispose pas de section correspondante !");s.set(r,[o,e]),o.addEventListener("click",t=>{t.preventDefault();const m=o.getAttribute(l)==="true";ee(n(s.values(),Array.from)),!m&&(o.setAttribute(l,"true"),e.removeAttribute(A))})}),d.ifRight(o=>o.addEventListener("change",i=>{const r=n(u.fromNullable(i.target),e=>e.filter(J));n(r,e=>e.map(t=>t.validity.valid),e=>e.ifJust(t=>a.toggleAttribute(f,!t))),n(r,e=>e.chain(t=>u.fromNullable(t.selectedOptions[0])),e=>e.chain(t=>u.fromNullable(t.getAttribute(y))),e=>e.ifJust(t=>{te.textContent=`${t}`}))})),a.addEventListener("click",o=>ne())},ne=()=>{a.textContent="Adding...";const s=d.map(i=>i.value).orDefault(String(I.idProduit)),o={id:Number(s),quantity:1};Z(o,Q).map(i=>{fetch(h,{body:JSON.stringify(i),credentials:"same-origin",headers:{Accept:"application/json","Content-Type":"application/json",[U]:I.nonce},method:"POST",mode:"same-origin",signal:AbortSignal.timeout(5e3)}).then(async r=>{V(r)&&x("500 Server Error"),n(await r.json(),e=>q(e,$),Y.getUnsafe("items_count"),K.tap(e=>{a.textContent="Added to cart!",X({quantiteProduits:e}),setTimeout(()=>{d.ifRight(t=>{t.value=t.options.item(0)?.value??"--"}),a.toggleAttribute(f,!0),a.textContent="Add to cart"},3e3)}))}).catch(r=>{j(r)?(k(r),console.error(r)):console.error("e n'est pas une Erreur ?!",r),a.textContent="Add to cart"})}).ifLeft(i=>console.error(i.issues))};document.addEventListener("DOMContentLoaded",()=>{ie(),se()});
import{z as R}from"./index.CuMLbxmh.js";import{e as N,E as h}from"./api.js";import{O as U,P as b,Q as g,R as v,T as D,U as P,V as M,W as w,X as H,Y as F,Z as B,_ as p,$ as l,s as I,q as G,a0 as y}from"./dom.js";import{r as W,d as A,R as a}from"./dom2.js";import{l as k,r as x}from"./erreurs.js";import{a as J,e as V,b as j}from"./gardes.js";import{b as X}from"./messages.js";import{t as q}from"./reseau.js";import{W as Q}from"./cart-add-item.js";import{W as $}from"./cart.js";import{r as f,a as E,c as C,b as z,y as Y}from"./utils.js";import{e as Z}from"./validation.js";import{p as n}from"./pipe.CtTFdEz3.js";import{l as K}from"./index-0eef19ec.BAWlGMMA.js";import{M as u}from"./Either.DDEPhGsy.js";import"./exports.jfK3lrNh.js";import"./index.BykRh4R4.js";import"./messages3.js";import"./erreurs3.js";import"./messages2.js";import"./cart2.js";import"./adresses2.js";import"./cart-coupons.js";import"./couts-livraison.js";import"./belt_Option-91f3b350.Dja5KR5O.js";const _=_etats,ee=s=>{s.forEach(r=>{r[0].setAttribute(l,"false"),r[1].setAttribute(I,"true")})},c=n(f(U),W),L=f(b),te=E(D),re=n(C(g),A),oe=n(C(v),A),se=()=>{const s=E(P),r=E(M),i=E(w),t=E(H),e=a.flat([E(F),z(B)]),o=()=>Number(t.getAttribute(p));a.forEachWithIndex([e.at(0),e.at(-1)],(m,d)=>{d&&(new IntersectionObserver(a.forEach(T=>R([T.isIntersecting,m]).with([!0,0],()=>s.removeAttribute("data-images-presentes-debut")).with([!0,1],()=>s.removeAttribute("data-images-presentes-fin")).with([!1,0],()=>s.setAttribute("data-images-presentes-debut","")).with([!1,1],()=>s.setAttribute("data-images-presentes-fin","")).otherwise(()=>{})),{root:null,rootMargin:"100% 0% 100% 0%",threshold:.5}).observe(d),a.forEachWithIndex(e,(T,S)=>new IntersectionObserver(a.forEach(O=>{O.isIntersecting&&t.setAttribute(p,String(T))}),{root:null,rootMargin:"100% 0% 100% 0%",threshold:.5}).observe(S)),r.addEventListener("click",()=>e[o()-1]?.scrollIntoView({behavior:"smooth",block:"nearest",inline:"center"})),i.addEventListener("click",()=>e[o()+1]?.scrollIntoView({behavior:"smooth",block:"nearest",inline:"center"})))})},ie=()=>{const s=new Map;re.forEach((r,i)=>{const t=r.getAttribute("id"),e=oe[i];if(!t)throw new Error("Le lien ne dispose pas d'ID !");if(!e)throw new Error("Le lien ne dispose pas de section correspondante !");s.set(t,[r,e]),r.addEventListener("click",o=>{o.preventDefault();const m=r.getAttribute(l)==="true";ee(n(s.values(),Array.from)),!m&&(r.setAttribute(l,"true"),e.removeAttribute(I))})}),L.ifRight(r=>r.addEventListener("change",i=>{const t=n(u.fromNullable(i.target),e=>e.filter(J));n(t,e=>e.map(o=>o.validity.valid),e=>e.ifJust(o=>c.toggleAttribute(G,!o))),n(t,e=>e.chain(o=>u.fromNullable(o.selectedOptions[0])),e=>e.chain(o=>u.fromNullable(o.getAttribute(y))),e=>e.ifJust(o=>{te.textContent=`${o}`}))})),c.addEventListener("click",r=>ne())},ne=()=>{c.textContent="Adding...";const s=L.map(i=>i.value).orDefault(String(_.idProduit)),r={id:Number(s),quantity:1};Z(r,Q).map(i=>{fetch(N,{body:JSON.stringify(i),credentials:"same-origin",headers:{Accept:"application/json","Content-Type":"application/json",[h]:_.nonce},method:"POST",mode:"same-origin",signal:AbortSignal.timeout(5e3)}).then(async t=>{V(t)&&k("500 Server Error"),n(await t.json(),e=>q(e,$),Y.getUnsafe("items_count"),K.tap(e=>{c.textContent="Added to cart!",X({quantiteProduits:e})}))}).catch(t=>{j(t)?(x(t),console.error(t)):console.error("e n'est pas une Erreur ?!",t),c.textContent="Add to cart"})}).ifLeft(i=>console.error(i.issues))};document.addEventListener("DOMContentLoaded",()=>{ie(),se()});
//# sourceMappingURL=scripts-page-produit.js.map

File diff suppressed because one or more lines are too long

View file

@ -1,2 +1,2 @@
import{q as x,t as s,u as k,l as U,w as W,x as L,y as C,k as A,z as D,a as M,b as P,r as $,d as z}from"./dom2.js";import{C as T}from"./erreurs2.js";import{p as N}from"./pipe.CtTFdEz3.js";import{M as B}from"./Either.DDEPhGsy.js";import"./exports.BFQs_g59.js";function F(n){}function G(n){return{}}function f(n,t){return n[t]}function H(){if(arguments.length===1){const n=arguments;return function(e){return f(e,n[0])}}return f(arguments[0],arguments[1])}var i=W;function I(){if(arguments.length===1){const n=arguments;return function(e){return i(e,n[0])}}return i(arguments[0],arguments[1])}function m(n,t){return n[t]}function J(){if(arguments.length===1){const n=arguments;return function(e){return m(e,n[0])}}return m(arguments[0],arguments[1])}function Q(n){return Object.entries(n)}var R=x;function V(n){return Object.keys(n)}var X=s;function g(n,t){return Object.assign({},n,t)}function a(){if(arguments.length===1){const n=arguments;return function(e){return g(e,n[0])}}return g(arguments[0],arguments[1])}function l(n,t,e){var r=a({},n);return r[t]=e,r}function c(){if(arguments.length===2){const n=arguments;return function(e){return l(e,n[0],n[1])}}return l(arguments[0],arguments[1],arguments[2])}function p(n,t,e){return c(n,t,e(W(n,t)))}function Y(){if(arguments.length===2){const n=arguments;return function(e){return p(e,n[0],n[1])}}return p(arguments[0],arguments[1],arguments[2])}function h(n,t,e){return c(n,t,e(n[t]))}function Z(){if(arguments.length===2){const n=arguments;return function(e){return h(e,n[0],n[1])}}return h(arguments[0],arguments[1],arguments[2])}function y(n,t){var e=a({},n);return L(e,t),e}function nn(){if(arguments.length===1){const n=arguments;return function(e){return y(e,n[0])}}return y(arguments[0],arguments[1])}function v(n,t){var e=a({},n);return C(t,function(r){L(e,r)}),e}function en(){if(arguments.length===1){const n=arguments;return function(e){return v(e,n[0])}}return v(arguments[0],arguments[1])}function _(n,t){return s(k(Object.keys(n),function(e){return[e,t(n[e])]}))}function tn(){if(arguments.length===1){const n=arguments;return function(e){return _(e,n[0])}}return _(arguments[0],arguments[1])}function d(n,t){return s(k(Object.keys(n),function(e){return[e,t(e,n[e])]}))}function rn(){if(arguments.length===1){const n=arguments;return function(e){return d(e,n[0])}}return d(arguments[0],arguments[1])}function E(n,t){return s(A(Object.keys(n),[],function(e,r){var u=n[r];return t(u)?D(e,[r,u]):e}))}function S(){if(arguments.length===1){const n=arguments;return function(e){return E(e,n[0])}}return E(arguments[0],arguments[1])}function K(n,t){return s(A(Object.keys(n),[],function(e,r){var u=n[r];return t(r,u)?D(e,[r,u]):e}))}function o(){if(arguments.length===1){const n=arguments;return function(e){return K(e,n[0])}}return K(arguments[0],arguments[1])}function b(n,t){return S(n,function(e){return!t(e)})}function un(){if(arguments.length===1){const n=arguments;return function(e){return b(e,n[0])}}return b(arguments[0],arguments[1])}function j(n,t){return o(n,function(e,r){return!t(e,r)})}function sn(){if(arguments.length===1){const n=arguments;return function(e){return j(e,n[0])}}return j(arguments[0],arguments[1])}function O(n,t){return o(n,function(e,r){return function(q,w){return w.includes(q)}(e,t)})}function an(){if(arguments.length===1){const n=arguments;return function(e){return O(e,n[0])}}return O(arguments[0],arguments[1])}function cn(n){return U(n,{})}function on(n){return!U(n,{})}var fn={__proto__:null,placeholder:F,makeEmpty:G,getUnsafe:H,get:I,prop:J,toPairs:Q,values:R,keys:V,fromPairs:X,merge:a,set:c,update:Y,updateUnsafe:Z,deleteKey:nn,deleteKeys:en,map:tn,mapWithKey:rn,filter:S,filterWithKey:o,reject:un,rejectWithKey:sn,selectKeys:an,isEmpty:cn,isNotEmpty:on};const mn=M(document),gn=P(document),_n=n=>t=>B.fromNullable(fn.getUnsafe(t,n)).toEither(new T(`La clé « ${String(n)} » n'a pas été trouvé dans l'objet.`)),dn=n=>N(gn(n),$),En=n=>N(mn(n),z);export{dn as a,En as b,mn as c,R as d,I as g,tn as m,_n as p,gn as r,fn as y};
import{u as C,w as s,x as U,o as k,y as W,z as L,A as M,l as A,B as D,a as P,b as $,r as q,d as z}from"./dom2.js";import{C as B}from"./erreurs.js";import{p as N}from"./pipe.CtTFdEz3.js";import{M as T}from"./Either.DDEPhGsy.js";import"./exports.jfK3lrNh.js";function F(n){}function G(n){return{}}function f(n,t){return n[t]}function H(){if(arguments.length===1){const n=arguments;return function(e){return f(e,n[0])}}return f(arguments[0],arguments[1])}var i=W;function I(){if(arguments.length===1){const n=arguments;return function(e){return i(e,n[0])}}return i(arguments[0],arguments[1])}function m(n,t){return n[t]}function J(){if(arguments.length===1){const n=arguments;return function(e){return m(e,n[0])}}return m(arguments[0],arguments[1])}function Q(n){return Object.entries(n)}var R=C;function V(n){return Object.keys(n)}var X=s;function g(n,t){return Object.assign({},n,t)}function a(){if(arguments.length===1){const n=arguments;return function(e){return g(e,n[0])}}return g(arguments[0],arguments[1])}function l(n,t,e){var r=a({},n);return r[t]=e,r}function c(){if(arguments.length===2){const n=arguments;return function(e){return l(e,n[0],n[1])}}return l(arguments[0],arguments[1],arguments[2])}function p(n,t,e){return c(n,t,e(W(n,t)))}function Y(){if(arguments.length===2){const n=arguments;return function(e){return p(e,n[0],n[1])}}return p(arguments[0],arguments[1],arguments[2])}function h(n,t,e){return c(n,t,e(n[t]))}function Z(){if(arguments.length===2){const n=arguments;return function(e){return h(e,n[0],n[1])}}return h(arguments[0],arguments[1],arguments[2])}function y(n,t){var e=a({},n);return L(e,t),e}function nn(){if(arguments.length===1){const n=arguments;return function(e){return y(e,n[0])}}return y(arguments[0],arguments[1])}function v(n,t){var e=a({},n);return M(t,function(r){L(e,r)}),e}function en(){if(arguments.length===1){const n=arguments;return function(e){return v(e,n[0])}}return v(arguments[0],arguments[1])}function _(n,t){return s(U(Object.keys(n),function(e){return[e,t(n[e])]}))}function tn(){if(arguments.length===1){const n=arguments;return function(e){return _(e,n[0])}}return _(arguments[0],arguments[1])}function d(n,t){return s(U(Object.keys(n),function(e){return[e,t(e,n[e])]}))}function rn(){if(arguments.length===1){const n=arguments;return function(e){return d(e,n[0])}}return d(arguments[0],arguments[1])}function E(n,t){return s(A(Object.keys(n),[],function(e,r){var u=n[r];return t(u)?D(e,[r,u]):e}))}function S(){if(arguments.length===1){const n=arguments;return function(e){return E(e,n[0])}}return E(arguments[0],arguments[1])}function K(n,t){return s(A(Object.keys(n),[],function(e,r){var u=n[r];return t(r,u)?D(e,[r,u]):e}))}function o(){if(arguments.length===1){const n=arguments;return function(e){return K(e,n[0])}}return K(arguments[0],arguments[1])}function b(n,t){return S(n,function(e){return!t(e)})}function un(){if(arguments.length===1){const n=arguments;return function(e){return b(e,n[0])}}return b(arguments[0],arguments[1])}function j(n,t){return o(n,function(e,r){return!t(e,r)})}function sn(){if(arguments.length===1){const n=arguments;return function(e){return j(e,n[0])}}return j(arguments[0],arguments[1])}function O(n,t){return o(n,function(e,r){return function(w,x){return x.includes(w)}(e,t)})}function an(){if(arguments.length===1){const n=arguments;return function(e){return O(e,n[0])}}return O(arguments[0],arguments[1])}function cn(n){return k(n,{})}function on(n){return!k(n,{})}var fn={__proto__:null,placeholder:F,makeEmpty:G,getUnsafe:H,get:I,prop:J,toPairs:Q,values:R,keys:V,fromPairs:X,merge:a,set:c,update:Y,updateUnsafe:Z,deleteKey:nn,deleteKeys:en,map:tn,mapWithKey:rn,filter:S,filterWithKey:o,reject:un,rejectWithKey:sn,selectKeys:an,isEmpty:cn,isNotEmpty:on};const mn=P(document),gn=$(document),_n=n=>t=>T.fromNullable(fn.getUnsafe(t,n)).toEither(new B(`La clé « ${String(n)} » n'a pas été trouvé dans l'objet.`)),dn=n=>N(gn(n),q),En=n=>N(mn(n),z);export{dn as a,En as b,mn as c,R as d,I as g,tn as m,_n as p,gn as r,fn as y};
//# sourceMappingURL=utils.js.map

File diff suppressed because one or more lines are too long

View file

@ -5,6 +5,7 @@ declare(strict_types=1);
use Carbon_Fields\Carbon_Fields;
use HaikuAtelier\StarterSite;
use Timber\Timber;
use function Env\env;
// Récupère les dépendances Composer
require_once __DIR__ . "../../../../../vendor/autoload.php";
@ -24,12 +25,14 @@ Timber::$dirname = ["views"];
// Charge les Scripts du thème (report d'erreurs)
function charge_scripts_haiku_atelier_2024(): void {
if (env("WP_ENV") == "production") {
wp_enqueue_script_module(
id: "haiku-atelier-2024-gaffe",
deps: [],
src: get_template_directory_uri() . "/assets/js/gaffe.js",
version: filemtime(get_template_directory() . "/assets/js/gaffe.js"),
);
}
wp_enqueue_script_module(
id: "haiku-atelier-2024-bouton-panier",
deps: [],
@ -169,6 +172,12 @@ add_filter("big_image_size_threshold", "__return_false");
add_filter("async_update_translation", "__return_false");
add_filter("auto_update_translation", "__return_false");
// Block Patterns
add_action("after_setup_theme", function () {
remove_theme_support("core-block-patterns");
});
add_filter("should_load_remote_block_patterns", "__return_false");
/**
* WooCommerce
*/

View file

@ -122,10 +122,10 @@ $adresse_facturation = WC()->customer->get_billing();
$pays_livraison = collect(WC()->countries->get_countries())->only($pays_acceptes)->toArray();
$total_livraison = Number::format(floatval(WC()->cart->get_totals()["shipping_total"]), precision: 0);
echo "<pre>";
// echo "<pre>";
// print_r(WC()->countries->get_countries());
// print_r($adresse_livraison);
echo "</pre>";
// echo "</pre>";
$contexte["email"] = $email;
$contexte["adresse_livraison"] = $adresse_livraison;

View file

@ -8,6 +8,7 @@ use Roots\WPConfig\Config;
use Timber\Site;
use Timber\URLHelper;
use function Crell\fp\pipe;
use function Env\env;
class StarterSite extends Site {
public function __construct() {
@ -27,6 +28,8 @@ class StarterSite extends Site {
public function ajoute_au_contexte_twig(array $context): array {
$context["site"] = $this;
$context["environnement"] = env("WP_ENV");
// Récupère les liens des réseaux sociaux définis dans la personnalisation du thème
$personnalisations_theme = get_theme_mods();
$liens_reseaux_sociaux = [

View file

@ -56,7 +56,6 @@ function dequeue_woocommerce_styles_scripts(): void {
wp_dequeue_script("flexslider");
wp_dequeue_script("jquery-blockui");
wp_dequeue_script("jquery-placeholder");
wp_dequeue_script("jqueryui");
wp_dequeue_script("photoswipe-ui-default");
wp_dequeue_script("prettyPhoto-init");
wp_dequeue_script("prettyPhoto");
@ -112,6 +111,18 @@ function retire_script_galerie(): void {
remove_action("wp_head", "wc_gallery_noscript");
}
function retire_merdes_wc() {
// remove WC generator tag
remove_filter("get_the_generator_html", "wc_generator_tag", 10, 2);
remove_filter("get_the_generator_xhtml", "wc_generator_tag", 10, 2);
// unload WC scripts
remove_action("wp_enqueue_scripts", [WC_Frontend_Scripts::class, "load_scripts"]);
remove_action("wp_print_scripts", [WC_Frontend_Scripts::class, "localize_printed_scripts"], 5);
remove_action("wp_print_footer_scripts", [WC_Frontend_Scripts::class, "localize_printed_scripts"], 5);
// remove "Show the gallery if JS is disabled"
remove_action("wp_head", "wc_gallery_noscript");
}
/**
* Modifie la réponse REST pour un Produit en y ajoutant des balises <img> pour chaque image d'intérêt.
*
@ -199,4 +210,6 @@ add_action("after_setup_theme", "desactive_images_produit_woocommerce");
add_action("enqueue_block_assets", "desactive_blocs_gutenberg_woocommerce");
add_action("init", "desactive_attribution_commande_woocommerce");
add_action("init", "retire_script_galerie");
add_action("template_redirect", "retire_merdes_wc");
add_action("wp_enqueue_scripts", "dequeue_woocommerce_styles_scripts");
add_filter("woocommerce_enqueue_styles", "__return_empty_array");

View file

@ -0,0 +1,53 @@
/* * Styles pour un bandeau défilant. */
.bandeau {
overflow: hidden;
display: flex;
column-gap: var(--espace-m);
width: 100%;
font-style: italic;
color: var(--couleur-noir);
text-transform: uppercase;
white-space: nowrap;
background: var(--couleur-jaune);
border-top: 1px solid var(--couleur-noir);
&__conteneur {
display: flex;
flex-flow: row nowrap;
column-gap: var(--espace-m);
animation: marquee linear 15s infinite both;
*::selection {
color: var(--couleur-jaune);
background: var(--couleur-noir);
}
p {
display: inline-block;
padding: var(--espace-s) 0;
strong {
font-weight: 600;
}
}
}
@media (hover: hover) {
&:hover {
.bandeau__conteneur {
animation-play-state: paused;
}
}
}
}
@keyframes marquee {
from {
transform: translateX(0%);
}
to {
transform: translateX(-100%);
}
}

View file

@ -14,6 +14,7 @@
@use "base/elements/listes" as listes;
// 3. Régions
@use "layouts/bandeau" as bandeau;
@use "layouts/en-tete" as en-tete;
@use "layouts/menu-categories-produits" as menu-categories-produits;
@use "layouts/colonnes-photos" as colonnes-photos;

View file

@ -1,16 +1,17 @@
// Chemins et Routes pour l'API WordPress
/** Chemins et Routes pour l'API WordPress/ */
export const CHEMIN_API_REST = "wp-json";
export const ROUTE_API_PANIER = `/${CHEMIN_API_REST}/wc/store/cart`;
export const ROUTE_API_AJOUTE_ARTICLE_PANIER = `/${CHEMIN_API_REST}/wc/store/cart/add-item`;
export const ROUTE_API_APPLIQUE_COUPON = `/${CHEMIN_API_REST}/wc/store/cart/apply-coupon`;
export const ROUTE_API_RETIRE_COUPON = `/${CHEMIN_API_REST}/wc/store/cart/remove-coupon`;
export const ROUTE_API_COUPONS = `/${CHEMIN_API_REST}/wc/store/cart/coupons`;
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`;
export const ROUTE_API_NOUVELLE_PRODUCTS = `/${CHEMIN_API_REST}/wc/v3/products`;
export const ROUTE_API_NOUVELLE_COMMANDES = `/${CHEMIN_API_REST}/wc/v3/orders`;
export const ROUTE_API_NOUVELLE_PRODUCTS = `/${CHEMIN_API_REST}/wc/v3/products`;
export const ROUTE_API_PANIER = `/${CHEMIN_API_REST}/wc/store/cart`;
export const ROUTE_API_PRODUITS = `/${CHEMIN_API_REST}/wc/store/products`;
export const ROUTE_API_RETIRE_ARTICLE_PANIER = `/${CHEMIN_API_REST}/wc/store/cart/remove-item`;
export const ROUTE_API_RETIRE_COUPON = `/${CHEMIN_API_REST}/wc/store/cart/remove-coupon`;
// En-têtes
export const ENTETE_WC_NONCE = "Nonce";

View file

@ -1,3 +1,5 @@
/** Constantes liées aux Paniers WooCommerce. */
export const CATALOG_VISIBILITIES = {
INVISIBLE: "invisible",
VISIBLE: "visible",

View file

@ -1 +1,4 @@
/** Constantes liées aux Erreurs WooCommerce. */
/** Code promo invalide. */
export const ERREUR_CODE_PROMO_INVALIDE = "woocommerce_rest_cart_coupon_error";

View file

@ -1,3 +1,5 @@
/** Constantes liées aux Commandes WooCommerce. */
export const ORDER_STATUSES = {
AUTO_DRAFT: "auto-draft",
CANCELLED: "cancelled",

View file

@ -1,3 +1,5 @@
/** Constantes liées aux Produits WooCommerce. */
export const PRODUCTS_CONTEXTES = {
EDIT: "edit",
VIEW: "view",

View file

@ -1,11 +1,14 @@
/** Constantes des Messages affichés aux Utilisateurs. */
// Générique
export const ERREUR_GENERIQUE_RESEAU =
"Something seems to be wrong with your network. Please verify your connection, refresh and try again?";
export const ERREUR_GENERIQUE_SOUMISSION_ADRESSES =
"Something went wrong while submitting the addresses. Please refresh your page and try again?";
export const ERREUR_GENERIQUE_CREATION_COMMANDE =
"Something went wrong while creating your order. Please refresh your page and try again?";
// Adresses
export const ERREUR_ADRESSE_GENERIQUE = "Something is wrong in the information you filled. Please check and try again?";
export const ERREUR_ADRESSE_MAUVAIS_CODE_POSTAL =
"Please verify your postcode: it should not contain region/state indicators.";

View file

@ -1,6 +1,4 @@
/**
* Constantes liées aux Messages passés par BroadcastChannel.
*/
/** Constantes liées aux Messages passés par BroadcastChannel. */
export const NOM_CANAL_BOUTON_PANIER = "bouton_panier";
export const NOM_CANAL_CONTENU_PANIER = "contenu_panier";

View file

@ -12,36 +12,6 @@ import {
reporteEtLeveErreur,
} from "./erreurs";
/**
* @param parent L'Élément parent dans lequel l'Élément souhaité sera recherché.
* @param selecteur Le sélecteur de l'Élément recherché.
*
* @throws Une Erreur si aucun Élément n'a é trouvé.
* @returns Un Élément.
*/
export const safeQuerySelector: (parent: ElementParent) => (selecteur: string) => Element = parent => selecteur => {
const element: Element | null = parent.querySelector(selecteur);
if (!element) throw new DOMException(ERREUR_SELECTEUR_INEXISTANT(selecteur));
return element;
};
/**
* @param parent L'Élément parent dans lequel l'Élément souhaité sera recherché.
* @param selecteur Le sélecteur de l'Élément recherché.
*
* @returns Un tableau pouvant être vide d'Éléments.
*/
export const safeQuerySelectorAll: (parent: ElementParent) => (selecteur: string) => Array<Element> =
parent => selecteur => {
const elements: Array<Element> = Array.from(parent.querySelectorAll(selecteur));
if (A.isEmpty(elements)) {
throw new DOMException(ERREUR_SELECTEUR_INEXISTANT(selecteur));
}
return elements;
};
export const recupereElementAvecSelecteur =
(parent: ElementParent) => <E extends Element = Element>(selecteur: string): Either<SyntaxError, E> =>
Either
@ -64,21 +34,6 @@ export const recupereElementsAvecSelecteur =
// Retourne une SyntaxError si le tableau est vide
.chain((e: Array<E>) => A.isEmpty(e) ? Left(creeSyntaxError(ERREUR_SELECTEUR_INEXISTANT(selecteur))) : Right(e));
/**
* @param element
* @returns Un booléen
*/
export const estDansLaVue: (element: Element) => boolean = element => {
const rect: DOMRect = element.getBoundingClientRect();
return (
rect.top >= 0
&& rect.left >= 0
&& rect.top <= (window.innerHeight || document.documentElement.clientHeight)
&& rect.right <= (window.innerWidth || document.documentElement.clientWidth)
);
};
export const recupereElementOuLeve = <E extends Element = Element>(elementOuErreur: Either<SyntaxError, E>): E =>
elementOuErreur.caseOf({
Left: reporteEtLeveErreur<SyntaxError>,

View file

@ -1,4 +1,4 @@
/** Types d'Erreurs liées aux adresses. */
/** Types d'Erreurs liées aux adresses WooCommerce. */
export class ErreurAdresseInvalide extends Error {
problemes: Record<string, string>;

View file

@ -1,4 +1,4 @@
/** Types d'Erreurs liés aux codes promos. */
/** Types d'Erreurs liés aux codes promos WooCommerce. */
export class ErreurCodePromoInvalide extends Error {
constructor(message: string) {

View file

@ -1,42 +0,0 @@
/**
* Fonctions liées à la gestion du Panier.
*/
import { type Either, EitherAsync, Left, Right } from "purify-ts";
import { ENTETE_WC_NONCE, ROUTE_API_PANIER } from "../constantes/api.ts";
/** États utiles pour les scripts. */
interface Etats {
/** Un nonce pour l'authentification de requêtes API */
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: Etats = _etats;
const requeteRecuperePanier = (): Promise<Either<Error, Response>> =>
fetch(
ROUTE_API_PANIER,
{
credentials: "same-origin",
headers: {
Accept: "application/json",
"Content-Type": "application/json",
[ENTETE_WC_NONCE]: ETATS.nonce,
},
method: "GET",
mode: "same-origin",
signal: AbortSignal.timeout(5000),
},
)
.then(Right)
.catch(Left);
export const recuperePanier = EitherAsync
.fromPromise(requeteRecuperePanier)
.map(a => a.json())
.ifLeft(e => {
console.error(e);
});

View file

@ -1,6 +1,6 @@
import * as v from "valibot";
import { CATALOG_VISIBILITIES } from "../../../constantes/cart.ts";
import { CATALOG_VISIBILITIES } from "../../../constantes/api/cart.ts";
import { WCStoreBillingAddressSchema, WCStoreShippingAddressSchema } from "./adresses.ts";
import { WCStoreCartCouponsSchema } from "./cart-coupons.ts";
import { WCStoreShippingRateSchema } from "./couts-livraison.ts";

View file

@ -12,7 +12,7 @@ import {
RATINGS,
STOCK_STATUSES,
TAG_OPERATORS,
} from "../../../constantes/products.ts";
} from "../../../constantes/api/products.ts";
export const WCProductsArgsSchema = v.object({
// Date ISO8601

View file

@ -1,6 +1,6 @@
import * as v from "valibot";
import { ORDER_STATUSES, TAX_STATUSES } from "../../../../constantes/orders";
import { ORDER_STATUSES, TAX_STATUSES } from "../../../../constantes/api/orders";
import { WCStoreBillingAddressSchema, WCStoreShippingAddressSchema } from "../adresses";
export const WCV3OrdersCouponLineMetaDataSchema = v.object({

View file

@ -15,7 +15,7 @@ import {
STOCK_STATUSES,
TAG_OPERATORS,
TAX_STATUTES,
} from "../../../../constantes/products.ts";
} from "../../../../constantes/api/products.ts";
export const WCV3ProductsArgsSchema = v.object({
// Date ISO8601

View file

@ -1,6 +1,4 @@
/**
* Schémas des Messages passés avec BroadcastChannel.
*/
/** Schémas des Messages passés avec BroadcastChannel. */
import * as v from "valibot";

View file

@ -1,180 +0,0 @@
import type { Errors, Type } from "io-ts";
import { type Either, Left, Right } from "fp-ts/lib/Either";
import { reporter } from "io-ts-reporters";
export async function fetchJson<T, O, I>(
url: string,
validator: Type<T, O, I>,
init?: RequestInit,
): Promise<Either<Error, T>> {
try {
const response = await fetch(url, init);
const json: I = await response.json();
const result = validator.decode(json);
return result.fold<Either<Error, T>>(
(errors: Errors) => {
const messages = reporter(result);
return new Left<Error, T>(new Error(messages.join("\n")));
},
(value: T) => {
return new Right<Error, T>(value);
},
);
} catch (err) {
return Promise.resolve(new Left<Error, T>(err));
}
}
// the promise is never rejected
// we handle the error with Either
const readMailFromCli = async (): Promise<
Either<{ errorReason: string }, string>
> => {
const rl = readline.createInterface({ input, output });
return rl
.question("Please enter your email \n")
.then(Right)
.catch(error => Left({ errorReason: error.message }))
.finally(() => {
rl.close();
});
};
const validateEmail = (
email: string,
): Either<{ errorReason: string }, Email> => {
if (!email.includes("@")) {
return Left({ errorReason: "The email does not contain an @ character" });
}
if (email.length < 3) {
return Left({ errorReason: "The email be at least 3 characters long" });
}
return Right(email);
};
const getSessionIdFromEmail = (
email: Email,
): Promise<Either<{ errorReason: string }, SessionId>> => {
// lets simulate an API call
return Promise.resolve(Right("12345"));
};
const printInformations = ({
email,
sessionId,
}: {
email: Email;
sessionId: SessionId;
}): void => {
console.log(`Email: ${email}; SessionId: ${sessionId}`);
};
const main = async (): Promise<void> => {
const eitherEmailFromInput = await readMailFromCli(); // Returns an Either type
const eitherEmail = eitherEmailFromInput.map(validateEmail); // map over the either to validate the email
eitherEmail.caseOf({
Left: error => {
console.log(error.errorReason);
}, // email is invalid
Right: async email => {
const eitherSessionId = await getSessionIdFromEmail(email);
eitherSessionId.caseOf({
Left: error => {
console.log(error.errorReason);
}, // getting the sessionId failed
Right: sessionId => {
printInformations({ email, sessionId });
},
});
},
});
};
const flow = EitherAsync<{ errorReason: string }, void>(
async ({ fromPromise, liftEither }) => {
const emailFromInput = await fromPromise(readMailFromCli());
const email = await liftEither(validateEmail(emailFromInput));
const sessionId = await fromPromise(getSessionIdFromEmail(email));
printInformations({ email, sessionId });
},
);
const main2 = async () => {
const result = await flow.run();
result.ifLeft(error => {
console.log(error.errorReason);
});
};
main();
/* setTimeout(() => {
console.debug("Suppression du Panier");
fetch(
"/wp-json/wc/store/cart/items",
{
credentials: "same-origin",
headers: {
"Accept": "application/json",
"Content-Type": "application/json",
"X-WC-Store-API-Nonce": ETATS.nonce,
},
method: "DELETE",
mode: "same-origin",
signal: AbortSignal.timeout(5000),
},
)
.then(a => a.json())
.then(a => console.debug(a))
.catch(b => console.error(b));
}, 5000);
setTimeout(() => {
console.debug("Nouveau Panier");
fetch(
"/wp-json/wc/store/cart",
{
credentials: "same-origin",
headers: {
"Accept": "application/json",
"Content-Type": "application/json",
"X-WC-Store-API-Nonce": ETATS.nonce,
},
method: "GET",
mode: "same-origin",
signal: AbortSignal.timeout(5000),
},
)
.then(a => a.json())
.then(a => console.debug(a))
.catch(b => console.error(b));
}, 7000); */
/* Fonctions utilitaires */
// const creeObservateurIntersection = (element: Element, options: IntersectionObserverInit, classe = "anime") => {
// const observateur = new IntersectionObserver(entrees => {
// for (const entree of entrees) {
// const cible = entree.target;
// /* Enclenchement de l'animation */
// if (entree.isIntersecting || estDansLaVue(cible)) {
// cible.classList.add(classe);
// return;
// }
// /* Empêche que le cycle ne se répète */
// if (cible.classList.contains(classe)) {
// observateur.unobserve(cible);
// }
// }
// }, options || {});
// observateur.observe(element);
// return observateur;
// };

View file

@ -73,7 +73,6 @@ const E = {
export const mepCanalRevalidationLivraison = (): void => {
new BroadcastChannel(NOM_CANAL_REVALIDATION_LIVRAISON).addEventListener("message", () => {
console.debug("wow");
E.BOUTON_ACTIONS_FORMULAIRE.removeAttribute(ATTRIBUT_LIVRAISON_VALIDEE);
E.BOUTON_ACTIONS_FORMULAIRE.textContent = "Submit the addresses";
});

View file

@ -13,6 +13,7 @@ import type { WCStoreCartRemoveCouponArgs } from "./lib/types/api/cart-remove-co
import type { ReponseSimplifiee } from "./lib/types/reseau";
import { ROUTE_API_APPLIQUE_COUPON, ROUTE_API_RETIRE_COUPON } from "./constantes/api";
import { ERREUR_CODE_PROMO_INVALIDE } from "./constantes/api/erreurs";
import {
ATTRIBUT_CHARGEMENT,
ATTRIBUT_CODE_PROMO_PRESENT,
@ -26,7 +27,6 @@ import {
SELECTEUR_TOTAL_REDUCTION,
SELECTEUR_TOTAL_REDUCTION_VALEUR,
} from "./constantes/dom";
import { ERREUR_CODE_PROMO_INVALIDE } from "./constantes/erreurs";
import { NOM_CANAL_REVALIDATION_LIVRAISON } from "./constantes/messages";
import { lanceAnimationCycleLoading } from "./lib/animations";
import { accorderCibleASelecteur } from "./lib/dom";

View file

@ -0,0 +1,270 @@
/** Scripts pour les Produits de la Page Panier. */
import { pipe } from "@mobily/ts-belt";
import { forEach as arrayForEach, map as arrayMap } from "@mobily/ts-belt/Array";
import { EitherAsync, Maybe } from "purify-ts";
import { match, P } from "ts-pattern";
import type { WCStoreCart } from "./lib/types/api/cart";
import type { WCStoreCartRemoveItemArgs } from "./lib/types/api/cart-remove-item";
import type { WCStoreCartUpdateItemArgs } from "./lib/types/api/cart-update-item";
import type { ElementParent } from "./lib/types/dom";
import { ROUTE_API_MAJ_ARTICLE_PANIER, ROUTE_API_RETIRE_ARTICLE_PANIER } from "./constantes/api";
import {
ATTRIBUT_CLE_PANIER,
ATTRIBUT_DESACTIVE,
SELECTEUR_BOUTON_ADDITION_QUANTITE,
SELECTEUR_BOUTON_SOUSTRACTION_QUANTITE,
SELECTEUR_BOUTON_SUPPRESSION_PANIER,
SELECTEUR_CHAMP_QUANTITE_LIGNE_PANIER,
SELECTEUR_ENTREES_PANIER,
} from "./constantes/dom";
import { NOM_CANAL_REVALIDATION_LIVRAISON } from "./constantes/messages";
import { recupereElementAvecSelecteur, recupereElementOuLeve } from "./lib/dom";
import { BadRequestError, ServerError } from "./lib/erreurs";
import { emetMessageMajBoutonPanier, emetMessageMajContenuPanier, emetUniqueMessageCanal } from "./lib/messages";
import { diviseParCent } from "./lib/nombres";
import { creeReponseSimplifiee, eitherAsyncFetch, postBackend } from "./lib/reseau";
import { WCStoreCartSchema } from "./lib/schemas/api/cart";
import { WCStoreCartRemoveItemArgsSchema } from "./lib/schemas/api/cart-remove-item";
import { WCStoreCartUpdateItemArgsSchema } from "./lib/schemas/api/cart-update-item";
import { recupereElementsDocumentEither } from "./lib/utils";
import { eitherParse } from "./lib/validation";
/** États utiles pour les scripts de la page. */
type EtatsPage = {
authString: string;
/** 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;
type ElementsEntreePanier = {
boutonAddition: HTMLButtonElement;
boutonSoustraction: HTMLButtonElement;
boutonSuppression: HTMLButtonElement;
champQuantite: HTMLInputElement;
};
const E = {
ENTREES_PANIER: recupereElementsDocumentEither<HTMLElement>(SELECTEUR_ENTREES_PANIER),
};
// TODO: Tout ça est bien compliqué
const recupereEleDansEntreeOuLeve = (entree: ElementParent) => <E extends HTMLElement>(selecteur: string) =>
pipe(recupereElementAvecSelecteur(entree)<E>(selecteur), recupereElementOuLeve);
const recupereElementsEntreePanier = (entree: HTMLElement): ElementsEntreePanier => {
const recupereElementDansEntree = recupereEleDansEntreeOuLeve(entree);
return {
boutonAddition: recupereElementDansEntree<HTMLButtonElement>(SELECTEUR_BOUTON_ADDITION_QUANTITE),
boutonSoustraction: recupereElementDansEntree<HTMLButtonElement>(SELECTEUR_BOUTON_SOUSTRACTION_QUANTITE),
boutonSuppression: recupereElementDansEntree<HTMLButtonElement>(SELECTEUR_BOUTON_SUPPRESSION_PANIER),
champQuantite: recupereElementDansEntree<HTMLInputElement>(SELECTEUR_CHAMP_QUANTITE_LIGNE_PANIER),
};
};
export const majActivationBoutons = (activation: boolean) => (entrees: ReadonlyArray<ElementsEntreePanier>): void =>
arrayForEach(entrees, entree => {
if (activation) {
// Active les Boutons
Number(entree.champQuantite.value) === 1
? entree.boutonSoustraction.setAttribute(ATTRIBUT_DESACTIVE, "")
: entree.boutonSoustraction.removeAttribute(ATTRIBUT_DESACTIVE);
entree.boutonAddition.removeAttribute(ATTRIBUT_DESACTIVE);
entree.boutonSuppression.removeAttribute(ATTRIBUT_DESACTIVE);
entree.boutonSuppression.textContent = "Remove";
} else {
// Désactive les Boutons
entree.boutonSoustraction.setAttribute(ATTRIBUT_DESACTIVE, "");
entree.boutonAddition.setAttribute(ATTRIBUT_DESACTIVE, "");
entree.boutonSuppression.setAttribute(ATTRIBUT_DESACTIVE, "");
entree.boutonSuppression.textContent = "Loading";
}
});
export const initialiseActionsEntreesPanier = (): void => {
E.ENTREES_PANIER.ifRight((entrees: Array<HTMLElement>) =>
arrayForEach(entrees, (entree: HTMLElement): void => {
/** Retire l'entrée du DOM si la clé Panier n'existe pas et arrête précocement */
const clePanier: string = Maybe
.fromNullable(entree.getAttribute(ATTRIBUT_CLE_PANIER))
.ifNothing(() => {
entree.remove();
})
.orDefault("CLE_PANIER_INEXISTANTE");
/** */
const E: ElementsEntreePanier = recupereElementsEntreePanier(entree);
entree.addEventListener("click", (evenement: Event) => {
// Délégation d'Événements
match(evenement.target)
.with(P.nullish, () => console.error(evenement.target))
// Bouton d'addition
.when((cible: EventTarget) => (cible as HTMLElement).matches(SELECTEUR_BOUTON_ADDITION_QUANTITE), () => {
Maybe
// Nécessaire pour que l'on ait une valeur à incrémenter
.fromNullable(E.champQuantite.valueAsNumber)
.ifJust((valeur: number) => {
// Réalise la requête et traite sa réponse
void EitherAsync
// 1. Valide les Arguments de la Requête
.liftEither(eitherParse({ key: clePanier, quantity: valeur + 1 }, WCStoreCartUpdateItemArgsSchema))
// 2. Exécute un Effet pour empêcher les requêtes concurrentes
.ifRight(() => pipe(entrees, arrayMap(recupereElementsEntreePanier), majActivationBoutons(false)))
// 3. Exécute la requête via fetch sous forme d'EitherAsync
.chain((args: WCStoreCartUpdateItemArgs) =>
eitherAsyncFetch(postBackend({
corps: JSON.stringify(args),
nonce: ETATS_PAGE.nonce,
route: ROUTE_API_MAJ_ARTICLE_PANIER,
}))
)
// 4. Traite les cas d'Erreurs et récupère le Corps de la Réponse
.chain((reponse: Response) =>
EitherAsync<BadRequestError | Error | ServerError, unknown>(async ({ throwE }) =>
// Simplifie les données à matcher
match(await creeReponseSimplifiee(reponse))
.with({ status: 500 }, () => throwE(new ServerError("500 Server Error")))
.with({ status: 400 }, () => throwE(new BadRequestError("400 Bad Request Error")))
.with({ status: 200 }, r => r.body)
.otherwise(erreur => throwE(new Error(`Erreur inconnue ${String(erreur.status)}`)))
)
)
// 5. Vérifie le Schéma de la Réponse
.chain((corps: unknown) => EitherAsync.liftEither(eitherParse(corps, WCStoreCartSchema)))
.ifRight((panier: WCStoreCart) => {
// Émet un Message avec le nouveau nombre de Produits dans le Panier
emetMessageMajBoutonPanier({ quantiteProduits: panier.items_count });
// Émet un Message avec le nouveau contenu du Panier
emetMessageMajContenuPanier({
produits: panier.items,
sousTotalProduits: diviseParCent(panier.totals.total_items),
sousTotalReduction: diviseParCent(panier.totals.total_discount),
totalPanier: diviseParCent(panier.totals.total_price),
});
// Émet un Message pour réinitialiser la validation de la livraison
emetUniqueMessageCanal(NOM_CANAL_REVALIDATION_LIVRAISON, true);
// Réactive les Boutons
// pipe(entrees, arrayMap(recupereElementsEntreePanier), majActivationBoutons(true));
})
.run();
});
})
// Bouton de soustraction
.when((cible: EventTarget) => (cible as HTMLElement).matches(SELECTEUR_BOUTON_SOUSTRACTION_QUANTITE), () => {
Maybe
// Nécessaire pour que l'on ait une valeur à incrémenter
.fromNullable(E.champQuantite.valueAsNumber)
.filter(valeur => valeur > 1)
.ifJust((valeur: number) => {
// Réalise la requête et traite sa réponse
void EitherAsync
// 1. Valide les Arguments de la Requête
.liftEither(eitherParse({ key: clePanier, quantity: valeur - 1 }, WCStoreCartUpdateItemArgsSchema))
// 2. Exécute un Effet pour empêcher les requêtes concurrentes
.ifRight(() => pipe(entrees, arrayMap(recupereElementsEntreePanier), majActivationBoutons(false)))
// 3. Exécute la requête via fetch sous forme d'EitherAsync
.chain((args: WCStoreCartUpdateItemArgs) =>
eitherAsyncFetch(postBackend({
corps: JSON.stringify(args),
nonce: ETATS_PAGE.nonce,
route: ROUTE_API_MAJ_ARTICLE_PANIER,
}))
)
// 4. Traite les cas d'Erreurs et récupère le Corps de la Réponse
.chain((reponse: Response) =>
EitherAsync<BadRequestError | Error | ServerError, unknown>(async ({ throwE }) =>
// Simplifie les données à matcher
match(await creeReponseSimplifiee(reponse))
.with({ status: 500 }, () => throwE(new ServerError("500 Server Error")))
.with({ status: 400 }, () => throwE(new BadRequestError("400 Bad Request Error")))
.with({ status: 200 }, r => r.body)
.otherwise(erreur => throwE(new Error(`Erreur inconnue ${String(erreur.status)}`)))
)
)
// 5. Vérifie le Schéma de la Réponse
.chain((corps: unknown) => EitherAsync.liftEither(eitherParse(corps, WCStoreCartSchema)))
.ifRight((panier: WCStoreCart) => {
// Émet un Message avec le nouveau nombre de Produits dans le Panier
emetMessageMajBoutonPanier({ quantiteProduits: panier.items_count });
// Émet un Message avec le nouveau contenu du Panier
emetMessageMajContenuPanier({
produits: panier.items,
sousTotalProduits: diviseParCent(panier.totals.total_items),
sousTotalReduction: diviseParCent(panier.totals.total_discount),
totalPanier: diviseParCent(panier.totals.total_price),
});
// Émet un Message pour réinitialiser la validation de la livraison
emetUniqueMessageCanal(NOM_CANAL_REVALIDATION_LIVRAISON, true);
// Réactive les Boutons
// pipe(entrees, arrayMap(recupereElementsEntreePanier), majActivationBoutons(true));
})
.run();
});
})
// Bouton de suppression
.when((cible: EventTarget) => (cible as HTMLElement).matches(SELECTEUR_BOUTON_SUPPRESSION_PANIER), () => {
Maybe
// TODO: Pourquoi ?
.fromNullable(E.champQuantite.valueAsNumber)
.ifJust(() => {
// Réalise la requête et traite sa réponse
void EitherAsync
// 1. Valide les Arguments de la Requête
.liftEither(eitherParse({ key: clePanier }, WCStoreCartRemoveItemArgsSchema))
// 2. Exécute un Effet pour empêcher les requêtes concurrentes
.ifRight(() => pipe(entrees, arrayMap(recupereElementsEntreePanier), majActivationBoutons(false)))
// 3. Exécute la requête via fetch sous forme d'EitherAsync
.chain((args: WCStoreCartRemoveItemArgs) =>
eitherAsyncFetch(postBackend({
corps: JSON.stringify(args),
nonce: ETATS_PAGE.nonce,
route: ROUTE_API_RETIRE_ARTICLE_PANIER,
}))
)
// 4. Traite les cas d'Erreurs et récupère le Corps de la Réponse
.chain((reponse: Response) =>
EitherAsync<BadRequestError | Error | ServerError, unknown>(async ({ throwE }) =>
// Simplifie les données à matcher
match(await creeReponseSimplifiee(reponse))
.with({ status: 500 }, () => throwE(new ServerError("500 Server Error")))
.with({ status: 400 }, () => throwE(new BadRequestError("400 Bad Request Error")))
.with({ status: 200 }, r => r.body)
.otherwise(erreur => throwE(new Error(`Erreur inconnue ${String(erreur.status)}`)))
)
)
// 5. Vérifie le Schéma de la Réponse
.chain((corps: unknown) => EitherAsync.liftEither(eitherParse(corps, WCStoreCartSchema)))
.ifRight((panier: WCStoreCart) => {
// Émet un Message avec le nouveau nombre de Produits dans le Panier
emetMessageMajBoutonPanier({ quantiteProduits: panier.items_count });
// Émet un Message avec le nouveau contenu du Panier
emetMessageMajContenuPanier({
produits: panier.items,
sousTotalProduits: diviseParCent(panier.totals.total_items),
sousTotalReduction: diviseParCent(panier.totals.total_discount),
totalPanier: diviseParCent(panier.totals.total_price),
});
// Émet un Message pour réinitialiser la validation de la livraison
emetUniqueMessageCanal(NOM_CANAL_REVALIDATION_LIVRAISON, true);
// Retire l'entrée du Panier du DOM
entree.remove();
// Réactive les Boutons
// pipe(entrees, arrayMap(recupereElementsEntreePanier), majActivationBoutons(true));
})
.run();
});
})
.run();
});
})
);
};

Some files were not shown because too many files have changed in this diff Show more