2024-10-02

This commit is contained in:
gcch 2024-10-02 23:54:52 +02:00
commit 93a452ec4a
42 changed files with 895 additions and 207 deletions

View file

@ -0,0 +1,13 @@
name: ddev-vite-sidecar
repository: s2b/ddev-vite-sidecar
version: 1.1.0
install_date: "2024-10-02T19:02:43+02:00"
project_files:
- commands/web/vite
- apache/vite.conf
- nginx_full/vite.conf
- vite/vite-server-not-running.html
- config.vite.yaml
- web-build/Dockerfile.vite
global_files: []
removal_actions: []

30
.ddev/apache/vite.conf Normal file
View file

@ -0,0 +1,30 @@
#ddev-generated
<VirtualHost *:80>
ServerName vite.haikuatelier.fr.ddev.site
DocumentRoot /mnt/ddev_config/vite/
ErrorDocument 503 "/vite-server-not-running.html"
# Proxy development server
ProxyPass / http://localhost:5173/
ProxyPassReverse / http://localhost:5173/
# Proxy websockets
RewriteEngine On
RewriteCond %{HTTP:Upgrade} websocket [NC]
RewriteCond %{HTTP:Connection} upgrade [NC]
RewriteRule ^/?(.*) "ws://localhost:5173/$1" [P,L]
# Do not proxy files in /vite to display the static 503 error message
<Location "/vite-server-not-running.html">
ProxyPass !
</Location>
<Directory "/mnt/ddev_config/vite/">
Require all granted
</Directory>
ErrorLog /dev/stdout
CustomLog ${APACHE_LOG_DIR}/access.log combined
Alias "/phpstatus" "/var/www/phpstatus.php"
</VirtualHost>

49
.ddev/commands/web/vite Executable file
View file

@ -0,0 +1,49 @@
#!/bin/bash
#ddev-generated
## Description: Run vite inside the web container. Servers started by vite (dev, preview) are proxied and made available at https://vite.$PROJECTNAME.ddev.site
## Usage: vite dev|serve|build|optimize|preview [flags] [args]
## Example: "ddev vite" or "ddev vite build" or "ddev vite build --outDir path/to/output/"
## ExecRaw: true
## HostWorkingDir: true
## AutocompleteTerms: ["dev","serve","build","optimize","preview"]
# Preferred package manager can be specified via VITE_PACKAGE_MANAGER environment variable in config.vite.yaml
PACKAGE_MANAGER="${VITE_PACKAGE_MANAGER:-npm}"
COMMAND="${1:-dev}"
OPTIONS=$@
case $PACKAGE_MANAGER in
npm | npx)
PACKAGE_MANAGER_COMMAND="npx vite"
;;
yarn)
PACKAGE_MANAGER_COMMAND="yarn exec vite --"
;;
pnpm)
PACKAGE_MANAGER_COMMAND="pnpm exec vite"
;;
bun)
PACKAGE_MANAGER_COMMAND="bun vite"
;;
*)
echo "Invalid node package manager specified: $PACKAGE_MANAGER"
exit 1
;;
esac
if [[ "${COMMAND:0:1}" == "-" ]]; then
COMMAND="dev"
else
OPTIONS="${@:2}"
fi
echo "Using $PACKAGE_MANAGER to run vite..."
if [[ $COMMAND == "dev" ]] || [[ $COMMAND == "serve" ]] || [[ $COMMAND == "preview" ]]; then
$PACKAGE_MANAGER_COMMAND $COMMAND --host --port 5173 --strictPort $OPTIONS
else
$PACKAGE_MANAGER_COMMAND $COMMAND $OPTIONS
fi

16
.ddev/config.vite.yaml Normal file
View file

@ -0,0 +1,16 @@
#ddev-generated
additional_hostnames:
- vite.haikuatelier.fr
web_environment:
- VITE_SERVER_URI=https://vite.haikuatelier.fr.ddev.site
- VITE_PACKAGE_MANAGER=pnpm
# Enable these lines if you want to expose the vite port to the host system
# Note that this means that only one ddev project with vite can be run at a time
# as the different processes might interfere with each other
#
# web_extra_exposed_ports:
# - name: vite
# container_port: 5173
# http_port: 5172
# https_port: 5173

View file

@ -12,7 +12,7 @@ database:
use_dns_when_possible: true use_dns_when_possible: true
composer_version: "2" composer_version: "2"
web_environment: [] web_environment: []
corepack_enable: false corepack_enable: true
# Key features of DDEV's config.yaml: # Key features of DDEV's config.yaml:

View file

@ -0,0 +1,33 @@
#ddev-generated
server {
server_name vite.haikuatelier.fr.ddev.site;
listen 80;
listen 443 ssl;
ssl_certificate /etc/ssl/certs/master.crt;
ssl_certificate_key /etc/ssl/certs/master.key;
include /etc/nginx/monitoring.conf;
# Disable sendfile as per https://docs.vagrantup.com/v2/synced-folders/virtualbox.html
sendfile off;
error_log /dev/stdout info;
access_log off;
location /vite-server-not-running.html {
root /mnt/ddev_config/vite/;
}
location / {
proxy_pass http://localhost:5173;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $http_x_forwarded_proto;
proxy_set_header X-Forwarded-Host $http_x_forwarded_host;
error_page 502 /vite-server-not-running.html;
}
}

View file

@ -0,0 +1,49 @@
<!DOCTYPE html>
<html lang="en">
<head>
<!-- #ddev-generated -->
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>vite not running</title>
<style>
html, body {
height: 100%;
margin: 0;
font-family: -apple-system, BlinkMacSystemFont, avenir next, avenir, segoe ui, helvetica neue, helvetica, Cantarell, Ubuntu, roboto, noto, arial, sans-serif;
}
body {
background: #DDD;
display: grid;
align-items: center;
justify-items: center;
}
h1 {
margin-top: 0;
}
main {
max-width: 36rem;
background: #FFF;
padding: 1.5rem;
border: 1px #999 solid;
}
code {
font-family: Menlo, Consolas, Monaco, Liberation Mono, Lucida Console, monospace;
font-size: 180%;
color: #9499ff;
font-weight: bold;
}
</style>
</head>
<body>
<main>
<h1>vite not running</h1>
<p>Apparently, you tried to access resources from the vite development server. However, the server is currently not running.</p>
<p>You can start the server by running the following command in your terminal:</p>
<code>ddev vite</code>
</main>
</body>
</html>

View file

@ -0,0 +1,2 @@
#ddev-generated
RUN a2enmod proxy_http

View file

@ -43,6 +43,7 @@
"composer/installers": "^2.2", "composer/installers": "^2.2",
"crell/fp": "^1.0", "crell/fp": "^1.0",
"htmlburger/carbon-fields": "^3.6", "htmlburger/carbon-fields": "^3.6",
"idleberg/wordpress-vite-assets": "^1.2",
"lstrojny/functional-php": "^1.17", "lstrojny/functional-php": "^1.17",
"mnsami/composer-custom-directory-installer": "^2.0", "mnsami/composer-custom-directory-installer": "^2.0",
"oscarotero/env": "^2.1", "oscarotero/env": "^2.1",

413
composer.lock generated
View file

@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically" "This file is @generated automatically"
], ],
"content-hash": "880c2b87f8157527e37d8d8b87344c62", "content-hash": "dd0d53b220401d17c050770b6f4abd12",
"packages": [ "packages": [
{ {
"name": "composer/installers", "name": "composer/installers",
@ -424,6 +424,309 @@
}, },
"time": "2024-07-31T08:17:38+00:00" "time": "2024-07-31T08:17:38+00:00"
}, },
{
"name": "idleberg/vite-manifest",
"version": "v1.1.0",
"source": {
"type": "git",
"url": "https://github.com/idleberg/php-vite-manifest.git",
"reference": "0bd4c59ffadf5d44a46e8205017b15c456dea6f4"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/idleberg/php-vite-manifest/zipball/0bd4c59ffadf5d44a46e8205017b15c456dea6f4",
"reference": "0bd4c59ffadf5d44a46e8205017b15c456dea6f4",
"shasum": ""
},
"require": {
"league/uri": "^7.4.1",
"php": ">=8.1"
},
"require-dev": {
"brainmaestro/composer-git-hooks": "^3.0@alpha",
"codeception/codeception": "^5.0.4",
"codeception/module-asserts": "^3.0.0",
"friendsofphp/php-cs-fixer": "^3.8",
"icanhazstring/composer-unused": "^0.8.10",
"phpstan/phpstan": "^1.9"
},
"type": "library",
"extra": {
"hooks": {
"pre-commit": [
"composer run format",
"composer run lint",
"composer run unused"
]
}
},
"autoload": {
"psr-4": {
"Idleberg\\ViteManifest\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Jan T. Sott",
"email": "idleberg@users.noreply.github.com"
}
],
"description": "A parser for Vite v2 manifest files",
"keywords": [
"vite",
"vite manifest",
"vitejs"
],
"support": {
"issues": "https://github.com/idleberg/php-vite-manifest/issues",
"source": "https://github.com/idleberg/php-vite-manifest/tree/v1.1.0"
},
"time": "2024-06-09T06:54:18+00:00"
},
{
"name": "idleberg/wordpress-vite-assets",
"version": "v1.2.0",
"source": {
"type": "git",
"url": "https://github.com/idleberg/php-wordpress-vite-assets.git",
"reference": "612bb0dea602ea590f25a85b521aacdaea644807"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/idleberg/php-wordpress-vite-assets/zipball/612bb0dea602ea590f25a85b521aacdaea644807",
"reference": "612bb0dea602ea590f25a85b521aacdaea644807",
"shasum": ""
},
"require": {
"idleberg/vite-manifest": "^1.1.0",
"php": ">=8.1"
},
"require-dev": {
"brainmaestro/composer-git-hooks": "^3.0@alpha",
"codeception/codeception": "^5.0.4",
"codeception/module-asserts": "^3.0.0",
"friendsofphp/php-cs-fixer": "^3.11",
"icanhazstring/composer-unused": "^0.8.10",
"phpstan/extension-installer": "^1.2",
"phpstan/phpstan": "^1.9",
"szepeviktor/phpstan-wordpress": "^1.1"
},
"type": "library",
"extra": {
"hooks": {
"pre-commit": [
"composer run format",
"composer run lint",
"composer run unused"
]
}
},
"autoload": {
"psr-4": {
"Idleberg\\WordPress\\ViteAssets\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Jan T. Sott",
"email": "idleberg@users.noreply.github.com"
}
],
"description": "Injects assets from a Vite manifest to the Wordpress head, supports themes and plugins",
"keywords": [
"vite",
"vite manifest",
"vitejs",
"wordpress"
],
"support": {
"issues": "https://github.com/idleberg/php-wordpress-vite-assets/issues",
"source": "https://github.com/idleberg/php-wordpress-vite-assets/tree/v1.2.0"
},
"time": "2024-06-09T22:47:52+00:00"
},
{
"name": "league/uri",
"version": "7.4.1",
"source": {
"type": "git",
"url": "https://github.com/thephpleague/uri.git",
"reference": "bedb6e55eff0c933668addaa7efa1e1f2c417cc4"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/thephpleague/uri/zipball/bedb6e55eff0c933668addaa7efa1e1f2c417cc4",
"reference": "bedb6e55eff0c933668addaa7efa1e1f2c417cc4",
"shasum": ""
},
"require": {
"league/uri-interfaces": "^7.3",
"php": "^8.1"
},
"conflict": {
"league/uri-schemes": "^1.0"
},
"suggest": {
"ext-bcmath": "to improve IPV4 host parsing",
"ext-fileinfo": "to create Data URI from file contennts",
"ext-gmp": "to improve IPV4 host parsing",
"ext-intl": "to handle IDN host with the best performance",
"jeremykendall/php-domain-parser": "to resolve Public Suffix and Top Level Domain",
"league/uri-components": "Needed to easily manipulate URI objects components",
"php-64bit": "to improve IPV4 host parsing",
"symfony/polyfill-intl-idn": "to handle IDN host via the Symfony polyfill if ext-intl is not present"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "7.x-dev"
}
},
"autoload": {
"psr-4": {
"League\\Uri\\": ""
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Ignace Nyamagana Butera",
"email": "nyamsprod@gmail.com",
"homepage": "https://nyamsprod.com"
}
],
"description": "URI manipulation library",
"homepage": "https://uri.thephpleague.com",
"keywords": [
"data-uri",
"file-uri",
"ftp",
"hostname",
"http",
"https",
"middleware",
"parse_str",
"parse_url",
"psr-7",
"query-string",
"querystring",
"rfc3986",
"rfc3987",
"rfc6570",
"uri",
"uri-template",
"url",
"ws"
],
"support": {
"docs": "https://uri.thephpleague.com",
"forum": "https://thephpleague.slack.com",
"issues": "https://github.com/thephpleague/uri-src/issues",
"source": "https://github.com/thephpleague/uri/tree/7.4.1"
},
"funding": [
{
"url": "https://github.com/sponsors/nyamsprod",
"type": "github"
}
],
"time": "2024-03-23T07:42:40+00:00"
},
{
"name": "league/uri-interfaces",
"version": "7.4.1",
"source": {
"type": "git",
"url": "https://github.com/thephpleague/uri-interfaces.git",
"reference": "8d43ef5c841032c87e2de015972c06f3865ef718"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/thephpleague/uri-interfaces/zipball/8d43ef5c841032c87e2de015972c06f3865ef718",
"reference": "8d43ef5c841032c87e2de015972c06f3865ef718",
"shasum": ""
},
"require": {
"ext-filter": "*",
"php": "^8.1",
"psr/http-factory": "^1",
"psr/http-message": "^1.1 || ^2.0"
},
"suggest": {
"ext-bcmath": "to improve IPV4 host parsing",
"ext-gmp": "to improve IPV4 host parsing",
"ext-intl": "to handle IDN host with the best performance",
"php-64bit": "to improve IPV4 host parsing",
"symfony/polyfill-intl-idn": "to handle IDN host via the Symfony polyfill if ext-intl is not present"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "7.x-dev"
}
},
"autoload": {
"psr-4": {
"League\\Uri\\": ""
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Ignace Nyamagana Butera",
"email": "nyamsprod@gmail.com",
"homepage": "https://nyamsprod.com"
}
],
"description": "Common interfaces and classes for URI representation and interaction",
"homepage": "https://uri.thephpleague.com",
"keywords": [
"data-uri",
"file-uri",
"ftp",
"hostname",
"http",
"https",
"parse_str",
"parse_url",
"psr-7",
"query-string",
"querystring",
"rfc3986",
"rfc3987",
"rfc6570",
"uri",
"url",
"ws"
],
"support": {
"docs": "https://uri.thephpleague.com",
"forum": "https://thephpleague.slack.com",
"issues": "https://github.com/thephpleague/uri-src/issues",
"source": "https://github.com/thephpleague/uri-interfaces/tree/7.4.1"
},
"funding": [
{
"url": "https://github.com/sponsors/nyamsprod",
"type": "github"
}
],
"time": "2024-03-23T07:42:40+00:00"
},
{ {
"name": "lstrojny/functional-php", "name": "lstrojny/functional-php",
"version": "1.17.0", "version": "1.17.0",
@ -764,6 +1067,114 @@
], ],
"time": "2024-07-20T21:41:07+00:00" "time": "2024-07-20T21:41:07+00:00"
}, },
{
"name": "psr/http-factory",
"version": "1.1.0",
"source": {
"type": "git",
"url": "https://github.com/php-fig/http-factory.git",
"reference": "2b4765fddfe3b508ac62f829e852b1501d3f6e8a"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/php-fig/http-factory/zipball/2b4765fddfe3b508ac62f829e852b1501d3f6e8a",
"reference": "2b4765fddfe3b508ac62f829e852b1501d3f6e8a",
"shasum": ""
},
"require": {
"php": ">=7.1",
"psr/http-message": "^1.0 || ^2.0"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.0.x-dev"
}
},
"autoload": {
"psr-4": {
"Psr\\Http\\Message\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "PHP-FIG",
"homepage": "https://www.php-fig.org/"
}
],
"description": "PSR-17: Common interfaces for PSR-7 HTTP message factories",
"keywords": [
"factory",
"http",
"message",
"psr",
"psr-17",
"psr-7",
"request",
"response"
],
"support": {
"source": "https://github.com/php-fig/http-factory"
},
"time": "2024-04-15T12:06:14+00:00"
},
{
"name": "psr/http-message",
"version": "2.0",
"source": {
"type": "git",
"url": "https://github.com/php-fig/http-message.git",
"reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/php-fig/http-message/zipball/402d35bcb92c70c026d1a6a9883f06b2ead23d71",
"reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71",
"shasum": ""
},
"require": {
"php": "^7.2 || ^8.0"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.0.x-dev"
}
},
"autoload": {
"psr-4": {
"Psr\\Http\\Message\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "PHP-FIG",
"homepage": "https://www.php-fig.org/"
}
],
"description": "Common interface for HTTP messages",
"homepage": "https://github.com/php-fig/http-message",
"keywords": [
"http",
"http-message",
"psr",
"psr-7",
"request",
"response"
],
"support": {
"source": "https://github.com/php-fig/http-message/tree/2.0"
},
"time": "2023-04-04T09:54:51+00:00"
},
{ {
"name": "roots/bedrock-autoloader", "name": "roots/bedrock-autoloader",
"version": "1.0.4", "version": "1.0.4",

View file

@ -5,13 +5,14 @@
"description": "", "description": "",
"author": "", "author": "",
"license": "ISC", "license": "ISC",
"packageManager": "pnpm@9.12.0+sha512.4abf725084d7bcbafbd728bfc7bee61f2f791f977fd87542b3579dcb23504d170d46337945e4c66485cd12d588a0c0e570ed9c477e7ccdd8507cf05f3f92eaca",
"main": "index.js", "main": "index.js",
"keywords": [], "keywords": [],
"scripts": { "scripts": {
"test": "echo \"Error: no test specified\" && exit 1" "test": "echo \"Error: no test specified\" && exit 1"
}, },
"dependencies": { "dependencies": {
"@sentry/browser": "^8.32.0", "@sentry/browser": "^8.33.0",
"purify-ts": "^2.1.0", "purify-ts": "^2.1.0",
"remeda": "^2.14.0", "remeda": "^2.14.0",
"ts-pattern": "^5.4.0", "ts-pattern": "^5.4.0",
@ -23,7 +24,7 @@
"@eslint/js": "^9.11.1", "@eslint/js": "^9.11.1",
"@prettier/plugin-php": "^0.22.2", "@prettier/plugin-php": "^0.22.2",
"@prettier/plugin-xml": "^3.4.1", "@prettier/plugin-xml": "^3.4.1",
"@sentry/types": "^8.32.0", "@sentry/types": "^8.33.0",
"@swc/cli": "0.4.1-nightly.20240914", "@swc/cli": "0.4.1-nightly.20240914",
"@types/eslint__js": "^8.42.3", "@types/eslint__js": "^8.42.3",
"better-typescript-lib": "^2.9.0", "better-typescript-lib": "^2.9.0",
@ -49,6 +50,7 @@
"typescript": "^5.6.2", "typescript": "^5.6.2",
"typescript-eslint": "^8.8.0", "typescript-eslint": "^8.8.0",
"vite": "^5.4.8", "vite": "^5.4.8",
"vite-plugin-manifest-sri": "^0.2.0",
"vite-plugin-valibot-env": "^0.6.12", "vite-plugin-valibot-env": "^0.6.12",
"vite-tsconfig-paths": "^5.0.1", "vite-tsconfig-paths": "^5.0.1",
"wp-types": "^4.66.1" "wp-types": "^4.66.1"

272
pnpm-lock.yaml generated
View file

@ -9,8 +9,8 @@ importers:
.: .:
dependencies: dependencies:
'@sentry/browser': '@sentry/browser':
specifier: ^8.32.0 specifier: ^8.33.0
version: 8.32.0 version: 8.33.0
purify-ts: purify-ts:
specifier: ^2.1.0 specifier: ^2.1.0
version: 2.1.0 version: 2.1.0
@ -40,8 +40,8 @@ importers:
specifier: ^3.4.1 specifier: ^3.4.1
version: 3.4.1(prettier@3.3.3) version: 3.4.1(prettier@3.3.3)
'@sentry/types': '@sentry/types':
specifier: ^8.32.0 specifier: ^8.33.0
version: 8.32.0 version: 8.33.0
'@swc/cli': '@swc/cli':
specifier: 0.4.1-nightly.20240914 specifier: 0.4.1-nightly.20240914
version: 0.4.1-nightly.20240914(@swc/core@1.7.28) version: 0.4.1-nightly.20240914(@swc/core@1.7.28)
@ -117,6 +117,9 @@ importers:
vite: vite:
specifier: ^5.4.8 specifier: ^5.4.8
version: 5.4.8(@types/node@22.7.4)(sass@1.79.4) version: 5.4.8(@types/node@22.7.4)(sass@1.79.4)
vite-plugin-manifest-sri:
specifier: ^0.2.0
version: 0.2.0
vite-plugin-valibot-env: vite-plugin-valibot-env:
specifier: ^0.6.12 specifier: ^0.6.12
version: 0.6.12(valibot@1.0.0-beta.0(typescript@5.6.2))(vite@5.4.8(@types/node@22.7.4)(sass@1.79.4)) version: 0.6.12(valibot@1.0.0-beta.0(typescript@5.6.2))(vite@5.4.8(@types/node@22.7.4)(sass@1.79.4))
@ -129,16 +132,16 @@ importers:
packages: packages:
'@babel/code-frame@7.24.7': '@babel/code-frame@7.25.7':
resolution: {integrity: sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==} resolution: {integrity: sha512-0xZJFNE5XMpENsgfHYTw8FbX4kv53mFLn2i3XPoq69LyhYSCBJtitaHx9QnsVTrsogI4Z3+HtEfZ2/GFPOtf5g==}
engines: {node: '>=6.9.0'} engines: {node: '>=6.9.0'}
'@babel/helper-validator-identifier@7.24.7': '@babel/helper-validator-identifier@7.25.7':
resolution: {integrity: sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==} resolution: {integrity: sha512-AM6TzwYqGChO45oiuPqwL2t20/HdMC1rTPAesnBCgPCSF1x3oN9MVUwQV2iyz4xqWrctwK5RNC8LV22kaQCNYg==}
engines: {node: '>=6.9.0'} engines: {node: '>=6.9.0'}
'@babel/highlight@7.24.7': '@babel/highlight@7.25.7':
resolution: {integrity: sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==} resolution: {integrity: sha512-iYyACpW3iW8Fw+ZybQK+drQre+ns/tKpXbNESfrhNnPLIklLbXr7MYJ6gPEd0iETGLOK+SxMjVvKb/ffmk+FEw==}
engines: {node: '>=6.9.0'} engines: {node: '>=6.9.0'}
'@better-typescript-lib/decorators@2.9.0': '@better-typescript-lib/decorators@2.9.0':
@ -646,116 +649,116 @@ packages:
peerDependencies: peerDependencies:
prettier: ^3.0.0 prettier: ^3.0.0
'@rollup/rollup-android-arm-eabi@4.23.0': '@rollup/rollup-android-arm-eabi@4.24.0':
resolution: {integrity: sha512-8OR+Ok3SGEMsAZispLx8jruuXw0HVF16k+ub2eNXKHDmdxL4cf9NlNpAzhlOhNyXzKDEJuFeq0nZm+XlNb1IFw==} resolution: {integrity: sha512-Q6HJd7Y6xdB48x8ZNVDOqsbh2uByBhgK8PiQgPhwkIw/HC/YX5Ghq2mQY5sRMZWHb3VsFkWooUVOZHKr7DmDIA==}
cpu: [arm] cpu: [arm]
os: [android] os: [android]
'@rollup/rollup-android-arm64@4.23.0': '@rollup/rollup-android-arm64@4.24.0':
resolution: {integrity: sha512-rEFtX1nP8gqmLmPZsXRMoLVNB5JBwOzIAk/XAcEPuKrPa2nPJ+DuGGpfQUR0XjRm8KjHfTZLpWbKXkA5BoFL3w==} resolution: {integrity: sha512-ijLnS1qFId8xhKjT81uBHuuJp2lU4x2yxa4ctFPtG+MqEE6+C5f/+X/bStmxapgmwLwiL3ih122xv8kVARNAZA==}
cpu: [arm64] cpu: [arm64]
os: [android] os: [android]
'@rollup/rollup-darwin-arm64@4.23.0': '@rollup/rollup-darwin-arm64@4.24.0':
resolution: {integrity: sha512-ZbqlMkJRMMPeapfaU4drYHns7Q5MIxjM/QeOO62qQZGPh9XWziap+NF9fsqPHT0KzEL6HaPspC7sOwpgyA3J9g==} resolution: {integrity: sha512-bIv+X9xeSs1XCk6DVvkO+S/z8/2AMt/2lMqdQbMrmVpgFvXlmde9mLcbQpztXm1tajC3raFDqegsH18HQPMYtA==}
cpu: [arm64] cpu: [arm64]
os: [darwin] os: [darwin]
'@rollup/rollup-darwin-x64@4.23.0': '@rollup/rollup-darwin-x64@4.24.0':
resolution: {integrity: sha512-PfmgQp78xx5rBCgn2oYPQ1rQTtOaQCna0kRaBlc5w7RlA3TDGGo7m3XaptgitUZ54US9915i7KeVPHoy3/W8tA==} resolution: {integrity: sha512-X6/nOwoFN7RT2svEQWUsW/5C/fYMBe4fnLK9DQk4SX4mgVBiTA9h64kjUYPvGQ0F/9xwJ5U5UfTbl6BEjaQdBQ==}
cpu: [x64] cpu: [x64]
os: [darwin] os: [darwin]
'@rollup/rollup-linux-arm-gnueabihf@4.23.0': '@rollup/rollup-linux-arm-gnueabihf@4.24.0':
resolution: {integrity: sha512-WAeZfAAPus56eQgBioezXRRzArAjWJGjNo/M+BHZygUcs9EePIuGI1Wfc6U/Ki+tMW17FFGvhCfYnfcKPh18SA==} resolution: {integrity: sha512-0KXvIJQMOImLCVCz9uvvdPgfyWo93aHHp8ui3FrtOP57svqrF/roSSR5pjqL2hcMp0ljeGlU4q9o/rQaAQ3AYA==}
cpu: [arm] cpu: [arm]
os: [linux] os: [linux]
'@rollup/rollup-linux-arm-musleabihf@4.23.0': '@rollup/rollup-linux-arm-musleabihf@4.24.0':
resolution: {integrity: sha512-v7PGcp1O5XKZxKX8phTXtmJDVpE20Ub1eF6w9iMmI3qrrPak6yR9/5eeq7ziLMrMTjppkkskXyxnmm00HdtXjA==} resolution: {integrity: sha512-it2BW6kKFVh8xk/BnHfakEeoLPv8STIISekpoF+nBgWM4d55CZKc7T4Dx1pEbTnYm/xEKMgy1MNtYuoA8RFIWw==}
cpu: [arm] cpu: [arm]
os: [linux] os: [linux]
'@rollup/rollup-linux-arm64-gnu@4.23.0': '@rollup/rollup-linux-arm64-gnu@4.24.0':
resolution: {integrity: sha512-nAbWsDZ9UkU6xQiXEyXBNHAKbzSAi95H3gTStJq9UGiS1v+YVXwRHcQOQEF/3CHuhX5BVhShKoeOf6Q/1M+Zhg==} resolution: {integrity: sha512-i0xTLXjqap2eRfulFVlSnM5dEbTVque/3Pi4g2y7cxrs7+a9De42z4XxKLYJ7+OhE3IgxvfQM7vQc43bwTgPwA==}
cpu: [arm64] cpu: [arm64]
os: [linux] os: [linux]
'@rollup/rollup-linux-arm64-musl@4.23.0': '@rollup/rollup-linux-arm64-musl@4.24.0':
resolution: {integrity: sha512-5QT/Di5FbGNPaVw8hHO1wETunwkPuZBIu6W+5GNArlKHD9fkMHy7vS8zGHJk38oObXfWdsuLMogD4sBySLJ54g==} resolution: {integrity: sha512-9E6MKUJhDuDh604Qco5yP/3qn3y7SLXYuiC0Rpr89aMScS2UAmK1wHP2b7KAa1nSjWJc/f/Lc0Wl1L47qjiyQw==}
cpu: [arm64] cpu: [arm64]
os: [linux] os: [linux]
'@rollup/rollup-linux-powerpc64le-gnu@4.23.0': '@rollup/rollup-linux-powerpc64le-gnu@4.24.0':
resolution: {integrity: sha512-Sefl6vPyn5axzCsO13r1sHLcmPuiSOrKIImnq34CBurntcJ+lkQgAaTt/9JkgGmaZJ+OkaHmAJl4Bfd0DmdtOQ==} resolution: {integrity: sha512-2XFFPJ2XMEiF5Zi2EBf4h73oR1V/lycirxZxHZNc93SqDN/IWhYYSYj8I9381ikUFXZrz2v7r2tOVk2NBwxrWw==}
cpu: [ppc64] cpu: [ppc64]
os: [linux] os: [linux]
'@rollup/rollup-linux-riscv64-gnu@4.23.0': '@rollup/rollup-linux-riscv64-gnu@4.24.0':
resolution: {integrity: sha512-o4QI2KU/QbP7ZExMse6ULotdV3oJUYMrdx3rBZCgUF3ur3gJPfe8Fuasn6tia16c5kZBBw0aTmaUygad6VB/hQ==} resolution: {integrity: sha512-M3Dg4hlwuntUCdzU7KjYqbbd+BLq3JMAOhCKdBE3TcMGMZbKkDdJ5ivNdehOssMCIokNHFOsv7DO4rlEOfyKpg==}
cpu: [riscv64] cpu: [riscv64]
os: [linux] os: [linux]
'@rollup/rollup-linux-s390x-gnu@4.23.0': '@rollup/rollup-linux-s390x-gnu@4.24.0':
resolution: {integrity: sha512-+bxqx+V/D4FGrpXzPGKp/SEZIZ8cIW3K7wOtcJAoCrmXvzRtmdUhYNbgd+RztLzfDEfA2WtKj5F4tcbNPuqgeg==} resolution: {integrity: sha512-mjBaoo4ocxJppTorZVKWFpy1bfFj9FeCMJqzlMQGjpNPY9JwQi7OuS1axzNIk0nMX6jSgy6ZURDZ2w0QW6D56g==}
cpu: [s390x] cpu: [s390x]
os: [linux] os: [linux]
'@rollup/rollup-linux-x64-gnu@4.23.0': '@rollup/rollup-linux-x64-gnu@4.24.0':
resolution: {integrity: sha512-I/eXsdVoCKtSgK9OwyQKPAfricWKUMNCwJKtatRYMmDo5N859tbO3UsBw5kT3dU1n6ZcM1JDzPRSGhAUkxfLxw==} resolution: {integrity: sha512-ZXFk7M72R0YYFN5q13niV0B7G8/5dcQ9JDp8keJSfr3GoZeXEoMHP/HlvqROA3OMbMdfr19IjCeNAnPUG93b6A==}
cpu: [x64] cpu: [x64]
os: [linux] os: [linux]
'@rollup/rollup-linux-x64-musl@4.23.0': '@rollup/rollup-linux-x64-musl@4.24.0':
resolution: {integrity: sha512-4ZoDZy5ShLbbe1KPSafbFh1vbl0asTVfkABC7eWqIs01+66ncM82YJxV2VtV3YVJTqq2P8HMx3DCoRSWB/N3rw==} resolution: {integrity: sha512-w1i+L7kAXZNdYl+vFvzSZy8Y1arS7vMgIy8wusXJzRrPyof5LAb02KGr1PD2EkRcl73kHulIID0M501lN+vobQ==}
cpu: [x64] cpu: [x64]
os: [linux] os: [linux]
'@rollup/rollup-win32-arm64-msvc@4.23.0': '@rollup/rollup-win32-arm64-msvc@4.24.0':
resolution: {integrity: sha512-+5Ky8dhft4STaOEbZu3/NU4QIyYssKO+r1cD3FzuusA0vO5gso15on7qGzKdNXnc1gOrsgCqZjRw1w+zL4y4hQ==} resolution: {integrity: sha512-VXBrnPWgBpVDCVY6XF3LEW0pOU51KbaHhccHw6AS6vBWIC60eqsH19DAeeObl+g8nKAz04QFdl/Cefta0xQtUQ==}
cpu: [arm64] cpu: [arm64]
os: [win32] os: [win32]
'@rollup/rollup-win32-ia32-msvc@4.23.0': '@rollup/rollup-win32-ia32-msvc@4.24.0':
resolution: {integrity: sha512-0SPJk4cPZQhq9qA1UhIRumSE3+JJIBBjtlGl5PNC///BoaByckNZd53rOYD0glpTkYFBQSt7AkMeLVPfx65+BQ==} resolution: {integrity: sha512-xrNcGDU0OxVcPTH/8n/ShH4UevZxKIO6HJFK0e15XItZP2UcaiLFd5kiX7hJnqCbSztUF8Qot+JWBC/QXRPYWQ==}
cpu: [ia32] cpu: [ia32]
os: [win32] os: [win32]
'@rollup/rollup-win32-x64-msvc@4.23.0': '@rollup/rollup-win32-x64-msvc@4.24.0':
resolution: {integrity: sha512-lqCK5GQC8fNo0+JvTSxcG7YB1UKYp8yrNLhsArlvPWN+16ovSZgoehlVHg6X0sSWPUkpjRBR5TuR12ZugowZ4g==} resolution: {integrity: sha512-fbMkAF7fufku0N2dE5TBXcNlg0pt0cJue4xBRE2Qc5Vqikxr4VCgKj/ht6SMdFcOacVA9rqF70APJ8RN/4vMJw==}
cpu: [x64] cpu: [x64]
os: [win32] os: [win32]
'@sentry-internal/browser-utils@8.32.0': '@sentry-internal/browser-utils@8.33.0':
resolution: {integrity: sha512-DpUGhk5O1OVjT0fo9wsbEdO1R/S9gGBRDtn9+FFVeRtieJHwXpeZiLK+tZhTOvaILmtSoTPUEY3L5sK4j5Xq9g==} resolution: {integrity: sha512-zwjmD+XI3pgxxiqKGLXYDGSd+zfO7az9zzbLn1le8Vv9cRL2lZyMLcwiwEaTpwz3B0pPONeDZMT8+bzMGRs8zw==}
engines: {node: '>=14.18'} engines: {node: '>=14.18'}
'@sentry-internal/feedback@8.32.0': '@sentry-internal/feedback@8.33.0':
resolution: {integrity: sha512-XB7hiVJQW1tNzpoXIHbvm3rjipIt7PZiJJtFg2vxaqu/FzdgOcYqQiwIKivJVAKuRZ9rIeJtK1jdXQFOc/TRJA==} resolution: {integrity: sha512-KSW/aiNgmJc8PDl2NsM+ONvGure4tPaluj7O1Nw+947Dh8W6CJnQ9srB7xPyoYYWyQW8Hyl1vzxY9W0J+fjlhA==}
engines: {node: '>=14.18'} engines: {node: '>=14.18'}
'@sentry-internal/replay-canvas@8.32.0': '@sentry-internal/replay-canvas@8.33.0':
resolution: {integrity: sha512-oBbhtDBkD+5z/T0NVJ5VenBWAid/S9QdVrod/UqxVqU7F8N+E9/INFQI48zCWr4iVlUMcszJPDElvJEsMDvvBQ==} resolution: {integrity: sha512-9fEhMP+gQYQrtn/SQd1Vd7U7emTSGBpLKc5h5f0iV0yDmjYAhNVbq4RgPTYAgnBEcdVo3qgboL6UIz9Dv+dYRQ==}
engines: {node: '>=14.18'} engines: {node: '>=14.18'}
'@sentry-internal/replay@8.32.0': '@sentry-internal/replay@8.33.0':
resolution: {integrity: sha512-yiEUnn2yyo1AIQIFNeRX3tdK8fmyKIkxdFS1WiVQmeYI/hFwYBTZPly0FcO/g3xnRMSA2tvrS+hZEaaXfK4WhA==} resolution: {integrity: sha512-GFBaDA4yhlEf3wTXOVXnJVG/diuKxeqZuXcuhsAwJb+YcFR0NhgsRn3wIGuYOZZF8GBXzx9PFnb9yIuFgx5Nbw==}
engines: {node: '>=14.18'} engines: {node: '>=14.18'}
'@sentry/browser@8.32.0': '@sentry/browser@8.33.0':
resolution: {integrity: sha512-AEKFj64g4iYwEMRvVcxiY0FswmClRXCP1IEvCqujn8OBS8AjMOr1z/RwYieEs0D90yNNB3YEqF8adrKENblJmw==} resolution: {integrity: sha512-qu/g20ZskywEU8BWc4Fts1kXFFBtw1vS+XvPq7Ta9zCeRG5dlXhhYDVQ4/v4nAL/cs0o6aLCq73m109CFF0Kig==}
engines: {node: '>=14.18'} engines: {node: '>=14.18'}
'@sentry/core@8.32.0': '@sentry/core@8.33.0':
resolution: {integrity: sha512-+xidTr0lZ0c755tq4k75dXPEb8PA+qvIefW3U9+dQMORLokBrYoKYMf5zZTG2k/OfSJS6OSxatUj36NFuCs3aA==} resolution: {integrity: sha512-618PQGHQLBVCpAq1s+e/rpIUaLUnj19IPUgn97rUGXLLna8ETIAoyQoG70wz4q9niw4Z4GlS5kZNrael2O3+2w==}
engines: {node: '>=14.18'} engines: {node: '>=14.18'}
'@sentry/types@8.32.0': '@sentry/types@8.33.0':
resolution: {integrity: sha512-hxckvN2MzS5SgGDgVQ0/QpZXk13Vrq4BtZLwXhPhyeTmZtUiUfWvcL5TFQqLinfKdTKPe9q2MxeAJ0D4LalhMg==} resolution: {integrity: sha512-V/A+72ZdnfGtXeXIpz1kUo3LRdq3WKEYYFUR2RKpCdPh9yeOrHq6u/rmzTWx49+om0yhZN+JhVoxDzt75UoFRg==}
engines: {node: '>=14.18'} engines: {node: '>=14.18'}
'@sentry/utils@8.32.0': '@sentry/utils@8.33.0':
resolution: {integrity: sha512-t1WVERhgmYURxbBj9J4/H2P2X+VKqm7B3ce9iQyrZbdf5NekhcU4jHIecPUWCPHjQkFIqkVTorqeBmDTlg/UmQ==} resolution: {integrity: sha512-TdwtGdevJij2wq2x/hDUr+x5TXt47ZhWxZ8zluai/lnIDTUB3Xs/L9yHtj1J+H9hr8obkMASE9IanUrWXzrP6Q==}
engines: {node: '>=14.18'} engines: {node: '>=14.18'}
'@sindresorhus/is@4.6.0': '@sindresorhus/is@4.6.0':
@ -1842,8 +1845,8 @@ packages:
resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
engines: {iojs: '>=1.0.0', node: '>=0.10.0'} engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
rollup@4.23.0: rollup@4.24.0:
resolution: {integrity: sha512-vXB4IT9/KLDrS2WRXmY22sVB2wTsTwkpxjB8Q3mnakTENcYw3FRmfdYDy/acNmls+lHmDazgrRjK/yQ6hQAtwA==} resolution: {integrity: sha512-DOmrlGSXNk1DM0ljiQA+i+o0rSLhtii1je5wgk60j49d1jHT5YYttBv1iWOnYSTG+fZZESUOSNiAl89SIet+Cg==}
engines: {node: '>=18.0.0', npm: '>=8.0.0'} engines: {node: '>=18.0.0', npm: '>=8.0.0'}
hasBin: true hasBin: true
@ -2136,6 +2139,9 @@ packages:
typescript: typescript:
optional: true optional: true
vite-plugin-manifest-sri@0.2.0:
resolution: {integrity: sha512-Zt5jt19xTIJ91LOuQTCtNG7rTFc5OziAjBz2H5NdCGqaOD1nxrWExLhcKW+W4/q8/jOPCg/n5ncYEQmqCxiGQQ==}
vite-plugin-valibot-env@0.6.12: vite-plugin-valibot-env@0.6.12:
resolution: {integrity: sha512-91IrDFO5sMq8D9W2qNUj2rwKcl3SXIam55sTJCYV9cwXGWxDoOnocFVEaZzkNAKor3VyjNHWMWYgQyAtrIDMyw==} resolution: {integrity: sha512-91IrDFO5sMq8D9W2qNUj2rwKcl3SXIam55sTJCYV9cwXGWxDoOnocFVEaZzkNAKor3VyjNHWMWYgQyAtrIDMyw==}
engines: {node: '>=18.0.0'} engines: {node: '>=18.0.0'}
@ -2222,16 +2228,16 @@ packages:
snapshots: snapshots:
'@babel/code-frame@7.24.7': '@babel/code-frame@7.25.7':
dependencies: dependencies:
'@babel/highlight': 7.24.7 '@babel/highlight': 7.25.7
picocolors: 1.1.0 picocolors: 1.1.0
'@babel/helper-validator-identifier@7.24.7': {} '@babel/helper-validator-identifier@7.25.7': {}
'@babel/highlight@7.24.7': '@babel/highlight@7.25.7':
dependencies: dependencies:
'@babel/helper-validator-identifier': 7.24.7 '@babel/helper-validator-identifier': 7.25.7
chalk: 2.4.2 chalk: 2.4.2
js-tokens: 4.0.0 js-tokens: 4.0.0
picocolors: 1.1.0 picocolors: 1.1.0
@ -2590,100 +2596,100 @@ snapshots:
'@xml-tools/parser': 1.0.11 '@xml-tools/parser': 1.0.11
prettier: 3.3.3 prettier: 3.3.3
'@rollup/rollup-android-arm-eabi@4.23.0': '@rollup/rollup-android-arm-eabi@4.24.0':
optional: true optional: true
'@rollup/rollup-android-arm64@4.23.0': '@rollup/rollup-android-arm64@4.24.0':
optional: true optional: true
'@rollup/rollup-darwin-arm64@4.23.0': '@rollup/rollup-darwin-arm64@4.24.0':
optional: true optional: true
'@rollup/rollup-darwin-x64@4.23.0': '@rollup/rollup-darwin-x64@4.24.0':
optional: true optional: true
'@rollup/rollup-linux-arm-gnueabihf@4.23.0': '@rollup/rollup-linux-arm-gnueabihf@4.24.0':
optional: true optional: true
'@rollup/rollup-linux-arm-musleabihf@4.23.0': '@rollup/rollup-linux-arm-musleabihf@4.24.0':
optional: true optional: true
'@rollup/rollup-linux-arm64-gnu@4.23.0': '@rollup/rollup-linux-arm64-gnu@4.24.0':
optional: true optional: true
'@rollup/rollup-linux-arm64-musl@4.23.0': '@rollup/rollup-linux-arm64-musl@4.24.0':
optional: true optional: true
'@rollup/rollup-linux-powerpc64le-gnu@4.23.0': '@rollup/rollup-linux-powerpc64le-gnu@4.24.0':
optional: true optional: true
'@rollup/rollup-linux-riscv64-gnu@4.23.0': '@rollup/rollup-linux-riscv64-gnu@4.24.0':
optional: true optional: true
'@rollup/rollup-linux-s390x-gnu@4.23.0': '@rollup/rollup-linux-s390x-gnu@4.24.0':
optional: true optional: true
'@rollup/rollup-linux-x64-gnu@4.23.0': '@rollup/rollup-linux-x64-gnu@4.24.0':
optional: true optional: true
'@rollup/rollup-linux-x64-musl@4.23.0': '@rollup/rollup-linux-x64-musl@4.24.0':
optional: true optional: true
'@rollup/rollup-win32-arm64-msvc@4.23.0': '@rollup/rollup-win32-arm64-msvc@4.24.0':
optional: true optional: true
'@rollup/rollup-win32-ia32-msvc@4.23.0': '@rollup/rollup-win32-ia32-msvc@4.24.0':
optional: true optional: true
'@rollup/rollup-win32-x64-msvc@4.23.0': '@rollup/rollup-win32-x64-msvc@4.24.0':
optional: true optional: true
'@sentry-internal/browser-utils@8.32.0': '@sentry-internal/browser-utils@8.33.0':
dependencies: dependencies:
'@sentry/core': 8.32.0 '@sentry/core': 8.33.0
'@sentry/types': 8.32.0 '@sentry/types': 8.33.0
'@sentry/utils': 8.32.0 '@sentry/utils': 8.33.0
'@sentry-internal/feedback@8.32.0': '@sentry-internal/feedback@8.33.0':
dependencies: dependencies:
'@sentry/core': 8.32.0 '@sentry/core': 8.33.0
'@sentry/types': 8.32.0 '@sentry/types': 8.33.0
'@sentry/utils': 8.32.0 '@sentry/utils': 8.33.0
'@sentry-internal/replay-canvas@8.32.0': '@sentry-internal/replay-canvas@8.33.0':
dependencies: dependencies:
'@sentry-internal/replay': 8.32.0 '@sentry-internal/replay': 8.33.0
'@sentry/core': 8.32.0 '@sentry/core': 8.33.0
'@sentry/types': 8.32.0 '@sentry/types': 8.33.0
'@sentry/utils': 8.32.0 '@sentry/utils': 8.33.0
'@sentry-internal/replay@8.32.0': '@sentry-internal/replay@8.33.0':
dependencies: dependencies:
'@sentry-internal/browser-utils': 8.32.0 '@sentry-internal/browser-utils': 8.33.0
'@sentry/core': 8.32.0 '@sentry/core': 8.33.0
'@sentry/types': 8.32.0 '@sentry/types': 8.33.0
'@sentry/utils': 8.32.0 '@sentry/utils': 8.33.0
'@sentry/browser@8.32.0': '@sentry/browser@8.33.0':
dependencies: dependencies:
'@sentry-internal/browser-utils': 8.32.0 '@sentry-internal/browser-utils': 8.33.0
'@sentry-internal/feedback': 8.32.0 '@sentry-internal/feedback': 8.33.0
'@sentry-internal/replay': 8.32.0 '@sentry-internal/replay': 8.33.0
'@sentry-internal/replay-canvas': 8.32.0 '@sentry-internal/replay-canvas': 8.33.0
'@sentry/core': 8.32.0 '@sentry/core': 8.33.0
'@sentry/types': 8.32.0 '@sentry/types': 8.33.0
'@sentry/utils': 8.32.0 '@sentry/utils': 8.33.0
'@sentry/core@8.32.0': '@sentry/core@8.33.0':
dependencies: dependencies:
'@sentry/types': 8.32.0 '@sentry/types': 8.33.0
'@sentry/utils': 8.32.0 '@sentry/utils': 8.33.0
'@sentry/types@8.32.0': {} '@sentry/types@8.33.0': {}
'@sentry/utils@8.32.0': '@sentry/utils@8.33.0':
dependencies: dependencies:
'@sentry/types': 8.32.0 '@sentry/types': 8.33.0
'@sindresorhus/is@4.6.0': {} '@sindresorhus/is@4.6.0': {}
@ -3617,7 +3623,7 @@ snapshots:
parse-json@5.2.0: parse-json@5.2.0:
dependencies: dependencies:
'@babel/code-frame': 7.24.7 '@babel/code-frame': 7.25.7
error-ex: 1.3.2 error-ex: 1.3.2
json-parse-even-better-errors: 2.3.1 json-parse-even-better-errors: 2.3.1
lines-and-columns: 1.2.4 lines-and-columns: 1.2.4
@ -3738,26 +3744,26 @@ snapshots:
reusify@1.0.4: {} reusify@1.0.4: {}
rollup@4.23.0: rollup@4.24.0:
dependencies: dependencies:
'@types/estree': 1.0.6 '@types/estree': 1.0.6
optionalDependencies: optionalDependencies:
'@rollup/rollup-android-arm-eabi': 4.23.0 '@rollup/rollup-android-arm-eabi': 4.24.0
'@rollup/rollup-android-arm64': 4.23.0 '@rollup/rollup-android-arm64': 4.24.0
'@rollup/rollup-darwin-arm64': 4.23.0 '@rollup/rollup-darwin-arm64': 4.24.0
'@rollup/rollup-darwin-x64': 4.23.0 '@rollup/rollup-darwin-x64': 4.24.0
'@rollup/rollup-linux-arm-gnueabihf': 4.23.0 '@rollup/rollup-linux-arm-gnueabihf': 4.24.0
'@rollup/rollup-linux-arm-musleabihf': 4.23.0 '@rollup/rollup-linux-arm-musleabihf': 4.24.0
'@rollup/rollup-linux-arm64-gnu': 4.23.0 '@rollup/rollup-linux-arm64-gnu': 4.24.0
'@rollup/rollup-linux-arm64-musl': 4.23.0 '@rollup/rollup-linux-arm64-musl': 4.24.0
'@rollup/rollup-linux-powerpc64le-gnu': 4.23.0 '@rollup/rollup-linux-powerpc64le-gnu': 4.24.0
'@rollup/rollup-linux-riscv64-gnu': 4.23.0 '@rollup/rollup-linux-riscv64-gnu': 4.24.0
'@rollup/rollup-linux-s390x-gnu': 4.23.0 '@rollup/rollup-linux-s390x-gnu': 4.24.0
'@rollup/rollup-linux-x64-gnu': 4.23.0 '@rollup/rollup-linux-x64-gnu': 4.24.0
'@rollup/rollup-linux-x64-musl': 4.23.0 '@rollup/rollup-linux-x64-musl': 4.24.0
'@rollup/rollup-win32-arm64-msvc': 4.23.0 '@rollup/rollup-win32-arm64-msvc': 4.24.0
'@rollup/rollup-win32-ia32-msvc': 4.23.0 '@rollup/rollup-win32-ia32-msvc': 4.24.0
'@rollup/rollup-win32-x64-msvc': 4.23.0 '@rollup/rollup-win32-x64-msvc': 4.24.0
fsevents: 2.3.3 fsevents: 2.3.3
run-parallel@1.2.0: run-parallel@1.2.0:
@ -4051,6 +4057,8 @@ snapshots:
optionalDependencies: optionalDependencies:
typescript: 5.6.2 typescript: 5.6.2
vite-plugin-manifest-sri@0.2.0: {}
vite-plugin-valibot-env@0.6.12(valibot@1.0.0-beta.0(typescript@5.6.2))(vite@5.4.8(@types/node@22.7.4)(sass@1.79.4)): vite-plugin-valibot-env@0.6.12(valibot@1.0.0-beta.0(typescript@5.6.2))(vite@5.4.8(@types/node@22.7.4)(sass@1.79.4)):
dependencies: dependencies:
kleur: 4.1.5 kleur: 4.1.5
@ -4073,7 +4081,7 @@ snapshots:
dependencies: dependencies:
esbuild: 0.21.5 esbuild: 0.21.5
postcss: 8.4.47 postcss: 8.4.47
rollup: 4.23.0 rollup: 4.24.0
optionalDependencies: optionalDependencies:
'@types/node': 22.7.4 '@types/node': 22.7.4
fsevents: 2.3.3 fsevents: 2.3.3

View file

@ -2,6 +2,7 @@ import { fdir } from "fdir";
import { resolve } from "node:path"; import { resolve } from "node:path";
import * as v from "valibot"; import * as v from "valibot";
import { defineConfig } from "vite"; import { defineConfig } from "vite";
import manifestSRI from "vite-plugin-manifest-sri";
import valibot from "vite-plugin-valibot-env"; import valibot from "vite-plugin-valibot-env";
const SLUG_THEME = "haiku-atelier-2024"; const SLUG_THEME = "haiku-atelier-2024";
@ -20,7 +21,7 @@ const SCHEMA_ENVIRONNEMENT = v.object({
}); });
export default defineConfig({ export default defineConfig({
base: "", base: "/",
build: { build: {
assetsDir: ".", assetsDir: ".",
emptyOutDir: true, emptyOutDir: true,
@ -42,11 +43,12 @@ export default defineConfig({
}, },
sourcemap: true, sourcemap: true,
target: "es2020", target: "es2020",
watch: { clearScreen: false }, watch: { clearScreen: true },
write: true, write: true,
}, },
plugins: [ plugins: [
/* Permet de valider les variables d'environnements définies à partir d'un schéma Valibot */ /* Permet de valider les variables d'environnements définies à partir d'un schéma Valibot */
valibot(SCHEMA_ENVIRONNEMENT), valibot(SCHEMA_ENVIRONNEMENT),
manifestSRI({ algorithms: ["sha512"] }),
], ],
}); });

View file

@ -186,6 +186,7 @@ button.bouton-case-pleine {
} }
button[disabled] { button[disabled] {
cursor: not-allowed; cursor: not-allowed;
background: repeating-conic-gradient(var(--couleur-noir) 0% 25%, transparent 0% 100%) 1px 0.5px/2px 2px;
} }
/** /**

View file

@ -1 +1 @@
{"version":3,"sourceRoot":"","sources":["../../src/sass/base/polices/_lato.scss","../../src/sass/base/polices/_myriad.scss","../../src/sass/abstracts/_variables.scss","../../src/sass/base/_base.scss","../../src/sass/base/_typographie.scss","../../src/sass/base/elements/_boutons.scss","../../src/sass/base/elements/_images.scss","../../src/sass/base/elements/_liens.scss","../../src/sass/base/elements/_listes.scss","../../src/sass/layouts/_en-tete.scss","../../src/sass/layouts/_menu-categories-produits.scss","../../src/sass/layouts/_colonnes-photos.scss","../../src/sass/layouts/_grille-produits.scss","../../src/sass/layouts/_informations-produit.scss","../../src/sass/layouts/_produits-similaires.scss","../../src/sass/layouts/_pied-de-page.scss"],"names":[],"mappings":";AAAA;EACE;EACA;EACA;EACA;EACA,KACE;;AAIJ;EACE;EACA;EACA;EACA;EACA,KACE;;AAIJ;EACE;EACA;EACA;EACA;EACA,KACE;;AAIJ;EACE;EACA;EACA;EACA;EACA,KACE;;AAIJ;EACE;EACA;EACA;EACA;EACA,KACE;;AAIJ;EACE;EACA;EACA;EACA;EACA,KACE;;AAIJ;EACE;EACA;EACA;EACA;EACA,KACE;;AAIJ;EACE;EACA;EACA;EACA;EACA,KACE;;AAIJ;EACE;EACA;EACA;EACA;EACA,KACE;;AAIJ;EACE;EACA;EACA;EACA;EACA,KACE;;AChGJ;EACE;EACA;EACA;EACA;EACA;EACA,KACE;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA,KACE;;AChBJ;AACE;EACA;EACA;EACA;EACA;EACA;AAEA;EACA;EACA;AAEA;EACA;EACA;AAEA;EACA;EACA;EACA;EACA;EACA;;;ACnBF;AAAA;AAAA;AAAA;AAAA;AAKA;EACE;EACA;EACA;EACA;;;AAGF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA;AAAA;AAAA;EAGE;EACA;EACA;EACA;EACA;;;AAGF;AAAA;AAAA;AAGA;EACE;;;AAGF;AAAA;AAAA;AAAA;AAIA;AAAA;AAAA;AAAA;EAIE;EACA;;;AAGF;AAAA;AAAA;AAGA;EACE;;;ACtDF;EACE;EACA;EACA;;;AAGF;EACE;;;ACPF;AAAA;AAAA;AAGA;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAGF;EACE;;;ACfJ;AAAA;AAAA;AAAA;AAAA;AAKA;AAAA;EAEE;EACA;;;AAGF;EACE;EACA;;;ACbF;AAAA;AAAA;AAAA;AAAA;AAKA;AACE;EACA;EAEA;EACA;EACA;EACA;EACA;EACA,YACE,kHAK4B;EAE9B;AAEA;AAMA;AAAA;AAAA;;AALA;EAEE;;AAMF;AACE;EACA;EACA;AAEA;EACA;EAEA;EACA;AAEA;AAMA;AAKA;;AAVA;EAEE;;AAIF;EACE;;AAIF;EACE;IACE;;;AAMJ;EACE;IACE;;;;AClER;AAAA;AAAA;AAAA;AAAA;AAKA;EACE;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAMA;AACE;EACA;AAEA;EACA;AAEA;EACA;;AAEA;EACE;EACA,qLAEkE;;;AC5BxE;AACE;EACA;EACA;AAEA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AAWA;;AATA;EACE;;AAEA;AAAA;EAEE;;AAKJ;EACE;EACA;EACA;EACA;EACA;AAUA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AARA;EACE;EACA;EACA;EACA;EACA;;AAYF;AACE;EACA;EACA;EACA;AAEA;EACA;;AAEA;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;IACE;;;AAMR;EACE;EACA;EACA;EACA;EACA;AAEA;AAAA;AAAA;;AAGA;EACE;EACA;;AAEA;EACE;;AAGF;EACE;;;ACvGR;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA;AACE;EACA;EACA;AAEA;EACA;EACA;EAEA;EACA;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAOA;EACE;EACA;EACA;AAEA;AAAA;AAAA;;AAGA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AAYA;AAAA;AAAA;AAAA;AAAA;;AATE;EACE;;AAIJ;EACE;;AAQF;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EAEE;EACA;;AAGF;EACE;IACE;IACA;;;AAKN;EACE;;AAGF;EACE;;;ACrFR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA;AACE;EACA;AAEA;EACA;EACA;AAAA;AAAA;AAIA;EACA;EAEA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAGA;EACE;;AAMF;EACE;EACA;;;AC7CR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAYA;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAEA;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAEA;EAEI;IACE;IACA;IACA;;;AAMR;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAGF;EACE;EACA;;AAMR;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;;;AC3FN;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA;AACE;EAEA;EAGA;EACA;EAGA;EAEA;EACA;EACA;EACA;EACA;AAuGA;AAyGA;;AA9MA;EACE;EACA;EACA;EACA;EACA;AAEA;AAAA;AAAA;;AAGA;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAKN;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;;AAGF;EACE;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAEA;EACE;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;AAEA;;AACA;EACE;;AAGF;EACE;;AASN;EACE;;AAMN;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;EACA;EACA;AAEA;AAMA;AAwCA;AAqBA;;AAlEA;EACE;EACA;;AAIF;EACE;AAEA;;AACA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EAEI;IACE;IACA;;;AAKN;EAEI;IACE;IACA;;;AAOR;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;IACE;;;AAKN;EACE;;AAeJ;EACE;;AAKJ;EACE;EACA;EACA;AAEA;;AACA;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;AAEA;;AAEE;EACE;IACE;;;;AAQZ;EACE;IACE;;EAGF;IACE;;;AC3QJ;EACE;EACA;EACA;EACA,qBACE;EAEF;EACA;AAEA;;AACA;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAEA;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAEA;EAEI;IACE;IACA;IACA;;;AAMR;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAGF;EACE;EACA;;;AC7FZ;AAAA;AAAA;AAGA;AACE;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA","file":"main.css"} {"version":3,"sourceRoot":"","sources":["../../src/sass/base/polices/_lato.scss","../../src/sass/base/polices/_myriad.scss","../../src/sass/abstracts/_variables.scss","../../src/sass/base/_base.scss","../../src/sass/base/_typographie.scss","../../src/sass/base/elements/_boutons.scss","../../src/sass/base/elements/_images.scss","../../src/sass/base/elements/_liens.scss","../../src/sass/base/elements/_listes.scss","../../src/sass/layouts/_en-tete.scss","../../src/sass/layouts/_menu-categories-produits.scss","../../src/sass/layouts/_colonnes-photos.scss","../../src/sass/layouts/_grille-produits.scss","../../src/sass/layouts/_informations-produit.scss","../../src/sass/layouts/_produits-similaires.scss","../../src/sass/layouts/_pied-de-page.scss"],"names":[],"mappings":";AAAA;EACE;EACA;EACA;EACA;EACA,KACE;;AAIJ;EACE;EACA;EACA;EACA;EACA,KACE;;AAIJ;EACE;EACA;EACA;EACA;EACA,KACE;;AAIJ;EACE;EACA;EACA;EACA;EACA,KACE;;AAIJ;EACE;EACA;EACA;EACA;EACA,KACE;;AAIJ;EACE;EACA;EACA;EACA;EACA,KACE;;AAIJ;EACE;EACA;EACA;EACA;EACA,KACE;;AAIJ;EACE;EACA;EACA;EACA;EACA,KACE;;AAIJ;EACE;EACA;EACA;EACA;EACA,KACE;;AAIJ;EACE;EACA;EACA;EACA;EACA,KACE;;AChGJ;EACE;EACA;EACA;EACA;EACA;EACA,KACE;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA,KACE;;AChBJ;AACE;EACA;EACA;EACA;EACA;EACA;AAEA;EACA;EACA;AAEA;EACA;EACA;AAEA;EACA;EACA;EACA;EACA;EACA;;;ACnBF;AAAA;AAAA;AAAA;AAAA;AAKA;EACE;EACA;EACA;EACA;;;AAGF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA;AAAA;AAAA;EAGE;EACA;EACA;EACA;EACA;;;AAGF;AAAA;AAAA;AAGA;EACE;;;AAGF;AAAA;AAAA;AAAA;AAIA;AAAA;AAAA;AAAA;EAIE;EACA;;;AAGF;AAAA;AAAA;AAGA;EACE;;;ACtDF;EACE;EACA;EACA;;;AAGF;EACE;;;ACPF;AAAA;AAAA;AAGA;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAGF;EACE;EAGA;;;AClBJ;AAAA;AAAA;AAAA;AAAA;AAKA;AAAA;EAEE;EACA;;;AAGF;EACE;EACA;;;ACbF;AAAA;AAAA;AAAA;AAAA;AAKA;AACE;EACA;EAEA;EACA;EACA;EACA;EACA;EACA,YACE,kHAK4B;EAE9B;AAEA;AAMA;AAAA;AAAA;;AALA;EAEE;;AAMF;AACE;EACA;EACA;AAEA;EACA;EAEA;EACA;AAEA;AAMA;AAKA;;AAVA;EAEE;;AAIF;EACE;;AAIF;EACE;IACE;;;AAMJ;EACE;IACE;;;;AClER;AAAA;AAAA;AAAA;AAAA;AAKA;EACE;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAMA;AACE;EACA;AAEA;EACA;AAEA;EACA;;AAEA;EACE;EACA,qLAEkE;;;AC5BxE;AACE;EACA;EACA;AAEA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AAWA;;AATA;EACE;;AAEA;AAAA;EAEE;;AAKJ;EACE;EACA;EACA;EACA;EACA;AAUA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AARA;EACE;EACA;EACA;EACA;EACA;;AAYF;AACE;EACA;EACA;EACA;AAEA;EACA;;AAEA;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;IACE;;;AAMR;EACE;EACA;EACA;EACA;EACA;AAEA;AAAA;AAAA;;AAGA;EACE;EACA;;AAEA;EACE;;AAGF;EACE;;;ACvGR;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA;AACE;EACA;EACA;AAEA;EACA;EACA;EAEA;EACA;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAOA;EACE;EACA;EACA;AAEA;AAAA;AAAA;;AAGA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AAYA;AAAA;AAAA;AAAA;AAAA;;AATE;EACE;;AAIJ;EACE;;AAQF;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EAEE;EACA;;AAGF;EACE;IACE;IACA;;;AAKN;EACE;;AAGF;EACE;;;ACrFR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA;AACE;EACA;AAEA;EACA;EACA;AAAA;AAAA;AAIA;EACA;EAEA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAGA;EACE;;AAMF;EACE;EACA;;;AC7CR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAYA;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAEA;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAEA;EAEI;IACE;IACA;IACA;;;AAMR;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAGF;EACE;EACA;;AAMR;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;;;AC3FN;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA;AACE;EAEA;EAGA;EACA;EAGA;EAEA;EACA;EACA;EACA;EACA;AAuGA;AAyGA;;AA9MA;EACE;EACA;EACA;EACA;EACA;AAEA;AAAA;AAAA;;AAGA;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAKN;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;;AAGF;EACE;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAEA;EACE;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;AAEA;;AACA;EACE;;AAGF;EACE;;AASN;EACE;;AAMN;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;EACA;EACA;AAEA;AAMA;AAwCA;AAqBA;;AAlEA;EACE;EACA;;AAIF;EACE;AAEA;;AACA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EAEI;IACE;IACA;;;AAKN;EAEI;IACE;IACA;;;AAOR;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;IACE;;;AAKN;EACE;;AAeJ;EACE;;AAKJ;EACE;EACA;EACA;AAEA;;AACA;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;AAEA;;AAEE;EACE;IACE;;;;AAQZ;EACE;IACE;;EAGF;IACE;;;AC3QJ;EACE;EACA;EACA;EACA,qBACE;EAEF;EACA;AAEA;;AACA;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAEA;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAEA;EAEI;IACE;IACA;IACA;;;AAMR;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAGF;EACE;EACA;;;AC7FZ;AAAA;AAAA;AAGA;AACE;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA","file":"main.css"}

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,41 +1,49 @@
{ {
"_Either.DDEPhGsy.js": { "_Either.DDEPhGsy.js": {
"file": "Either.DDEPhGsy.js", "file": "Either.DDEPhGsy.js",
"name": "Either" "name": "Either",
"integrity": "sha512-k/7Wk+b5oar670iV1x2NAJ/yh+VTLPUJYVhdjoBAuNyWdc8ZcRqV+iyEaYUZRq7WCxiga+Xkz63qaApLpZ4lFw=="
}, },
"_chunk-7BKSRZNG.F4GWJRq9.js": { "_chunk-7BKSRZNG.F4GWJRq9.js": {
"file": "chunk-7BKSRZNG.F4GWJRq9.js", "file": "chunk-7BKSRZNG.F4GWJRq9.js",
"name": "chunk-7BKSRZNG" "name": "chunk-7BKSRZNG",
"integrity": "sha512-CM4zAemmzkH8eePsFpJsdTc4IE2wJMlJwIfivLBSAbYuwQjWAmOH28ZFnpki3QBlU1XqR3G7q+ph5etbxY47XA=="
}, },
"_exports.dP04ITJc.js": { "_exports.BNibT8R5.js": {
"file": "exports.dP04ITJc.js", "file": "exports.BNibT8R5.js",
"name": "exports" "name": "exports",
"integrity": "sha512-cnJ9asFTTBn16nlJir9fEVx89P0ONlgU81/G7E/WOy1e/FGT5P7dOdJuw3XGK1+r0cMQZqs2d5N6HqUOGgUBVA=="
}, },
"_index.C9ScFdVV.js": { "_index.C9ScFdVV.js": {
"file": "index.C9ScFdVV.js", "file": "index.C9ScFdVV.js",
"name": "index" "name": "index",
"integrity": "sha512-6+iQXPHL5BUtZ6P2Qn4BQ2HuADyCmrRqhaCjODdUrT9RsyUsEYdXKVGdr4vK4lULTx2TRGuxN6wi5m+HaKihog=="
}, },
"_index.Dxgx1GXj.js": { "_index.Dxgx1GXj.js": {
"file": "index.Dxgx1GXj.js", "file": "index.Dxgx1GXj.js",
"name": "index" "name": "index",
"integrity": "sha512-GGfzSZw92exTZSoSvThNg+1I+xjW6xmPxRfVzkflEtiHUE2p7t4dviPe6gUT+QJr7VVWIxOcs1ZiL9/Jq7uf5g=="
}, },
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/api.ts": { "web/app/themes/haiku-atelier-2024/src/scripts/constantes/api.ts": {
"file": "api2.js", "file": "api2.js",
"name": "api", "name": "api",
"src": "web/app/themes/haiku-atelier-2024/src/scripts/constantes/api.ts", "src": "web/app/themes/haiku-atelier-2024/src/scripts/constantes/api.ts",
"isEntry": true "isEntry": true,
"integrity": "sha512-ld0nEHk+UTouQa2rIsEGfWTdBegMl3fKv8S6MHRG7xkLDwXLk8687de2nZ1/2Fk6pLoKMa07zJc7qF2AayoQNQ=="
}, },
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/dom.ts": { "web/app/themes/haiku-atelier-2024/src/scripts/constantes/dom.ts": {
"file": "dom.js", "file": "dom.js",
"name": "dom", "name": "dom",
"src": "web/app/themes/haiku-atelier-2024/src/scripts/constantes/dom.ts", "src": "web/app/themes/haiku-atelier-2024/src/scripts/constantes/dom.ts",
"isEntry": true "isEntry": true,
"integrity": "sha512-YR8sQCH9oywG8bKZXi1E4mwI15m9IsC5yMwIO41beqOuQGuD7nZU1dZ2qrApcPtH/nh1uMPhNU7R/MB3BFZICA=="
}, },
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/messages.ts": { "web/app/themes/haiku-atelier-2024/src/scripts/constantes/messages.ts": {
"file": "messages3.js", "file": "messages3.js",
"name": "messages", "name": "messages",
"src": "web/app/themes/haiku-atelier-2024/src/scripts/constantes/messages.ts", "src": "web/app/themes/haiku-atelier-2024/src/scripts/constantes/messages.ts",
"isEntry": true "isEntry": true,
"integrity": "sha512-QCu+ssDbDBnkSH60hxK6bA8Uc6GMPEZt1OTFNr9IdL1ZTUkj/5dIrvALlI/ZpAd63Rx4V6upFgkRpYizBYvEJg=="
}, },
"web/app/themes/haiku-atelier-2024/src/scripts/gaffe.ts": { "web/app/themes/haiku-atelier-2024/src/scripts/gaffe.ts": {
"file": "gaffe.js", "file": "gaffe.js",
@ -45,8 +53,9 @@
"imports": [ "imports": [
"_chunk-7BKSRZNG.F4GWJRq9.js", "_chunk-7BKSRZNG.F4GWJRq9.js",
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/api.ts", "web/app/themes/haiku-atelier-2024/src/scripts/constantes/api.ts",
"_exports.dP04ITJc.js" "_exports.BNibT8R5.js"
] ],
"integrity": "sha512-XTh6W0Xs7w3dLOvTEsH34ngi8skKFWV/yMSp9iPnswMi+gju/mwerleCuqE93Mu6F++H7x3wt7snw4z8A732vQ=="
}, },
"web/app/themes/haiku-atelier-2024/src/scripts/lib/api.ts": { "web/app/themes/haiku-atelier-2024/src/scripts/lib/api.ts": {
"file": "api.js", "file": "api.js",
@ -56,7 +65,8 @@
"imports": [ "imports": [
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/api.ts", "web/app/themes/haiku-atelier-2024/src/scripts/constantes/api.ts",
"_Either.DDEPhGsy.js" "_Either.DDEPhGsy.js"
] ],
"integrity": "sha512-SqB8dgsNWcDfK+us02BHRxw+Ok3QkAMqt9Lo4G71Fy8mGhotbXfDpvPObdMvxaYEiDY4H+UXxzwSDKFlrQBXJg=="
}, },
"web/app/themes/haiku-atelier-2024/src/scripts/lib/dom.ts": { "web/app/themes/haiku-atelier-2024/src/scripts/lib/dom.ts": {
"file": "dom2.js", "file": "dom2.js",
@ -67,8 +77,9 @@
"_chunk-7BKSRZNG.F4GWJRq9.js", "_chunk-7BKSRZNG.F4GWJRq9.js",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/erreurs.ts", "web/app/themes/haiku-atelier-2024/src/scripts/lib/erreurs.ts",
"_Either.DDEPhGsy.js", "_Either.DDEPhGsy.js",
"_exports.dP04ITJc.js" "_exports.BNibT8R5.js"
] ],
"integrity": "sha512-qrZ+WIkbmKsNYTJ2//onxS1HzLggo4qK7sRTk/Hst5izujybuIJpe+e7gPWa3yI8OCmt+g7hipt78oWL3Pf6+A=="
}, },
"web/app/themes/haiku-atelier-2024/src/scripts/lib/erreurs.ts": { "web/app/themes/haiku-atelier-2024/src/scripts/lib/erreurs.ts": {
"file": "erreurs.js", "file": "erreurs.js",
@ -76,14 +87,16 @@
"src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/erreurs.ts", "src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/erreurs.ts",
"isEntry": true, "isEntry": true,
"imports": [ "imports": [
"_exports.dP04ITJc.js" "_exports.BNibT8R5.js"
] ],
"integrity": "sha512-JylcVjXlYn3U3P34joLUS3SnsE0BP4nuM7DtiJHIPCREaYSmqQpWV7Nd6+aOr9Bv5NEDRUphwHLF5DeffwW2Vw=="
}, },
"web/app/themes/haiku-atelier-2024/src/scripts/lib/gardes.ts": { "web/app/themes/haiku-atelier-2024/src/scripts/lib/gardes.ts": {
"file": "gardes.js", "file": "gardes.js",
"name": "gardes", "name": "gardes",
"src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/gardes.ts", "src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/gardes.ts",
"isEntry": true "isEntry": true,
"integrity": "sha512-vqaGTRWcx2Y2S6rNQNWQAUaPwBGUWEGkauq3HpF2UFDLtWeYPq0fhSyD9B7iMx+YZwSsgjv4laCOu8ihsUVYzg=="
}, },
"web/app/themes/haiku-atelier-2024/src/scripts/lib/gestion-panier.ts": { "web/app/themes/haiku-atelier-2024/src/scripts/lib/gestion-panier.ts": {
"file": "gestion-panier.js", "file": "gestion-panier.js",
@ -93,7 +106,8 @@
"imports": [ "imports": [
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/api.ts", "web/app/themes/haiku-atelier-2024/src/scripts/constantes/api.ts",
"_Either.DDEPhGsy.js" "_Either.DDEPhGsy.js"
] ],
"integrity": "sha512-44H494vXGGg9FqI+hSj2UXzFd8TFAmpUIcQDCKXmcJ/0UaCj59/dWW/9wyJe1xzuoc9PQ3dLEcgN/hE04Y4cKg=="
}, },
"web/app/themes/haiku-atelier-2024/src/scripts/lib/messages.ts": { "web/app/themes/haiku-atelier-2024/src/scripts/lib/messages.ts": {
"file": "messages.js", "file": "messages.js",
@ -105,9 +119,10 @@
"web/app/themes/haiku-atelier-2024/src/scripts/lib/erreurs.ts", "web/app/themes/haiku-atelier-2024/src/scripts/lib/erreurs.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/messages.ts", "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/messages.ts",
"_Either.DDEPhGsy.js", "_Either.DDEPhGsy.js",
"_exports.dP04ITJc.js", "_exports.BNibT8R5.js",
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/messages.ts" "web/app/themes/haiku-atelier-2024/src/scripts/constantes/messages.ts"
] ],
"integrity": "sha512-b9pltMriGAcDypqE6hQDZ67XSFtZLp2GhS64H/7PCraBqpD3KKqxErPWvVlsy0u5JoT7tAh233kSnFNWZ7BcBg=="
}, },
"web/app/themes/haiku-atelier-2024/src/scripts/lib/reseau.ts": { "web/app/themes/haiku-atelier-2024/src/scripts/lib/reseau.ts": {
"file": "reseau.js", "file": "reseau.js",
@ -116,7 +131,8 @@
"isEntry": true, "isEntry": true,
"imports": [ "imports": [
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/api.ts" "web/app/themes/haiku-atelier-2024/src/scripts/constantes/api.ts"
] ],
"integrity": "sha512-Nt9jnR9hXjtYxufmQp1G6MOoNnuWh4HtgiSt8LHlF8rOF+XZ89of+KUQvvfksxcgJ7W8tKYxDs68B7ebaGTCtw=="
}, },
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/cart-add-item.ts": { "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/cart-add-item.ts": {
"file": "cart-add-item.js", "file": "cart-add-item.js",
@ -125,7 +141,8 @@
"isEntry": true, "isEntry": true,
"imports": [ "imports": [
"_index.C9ScFdVV.js" "_index.C9ScFdVV.js"
] ],
"integrity": "sha512-aj77TJ3YhBCfWuPdIrU4cP5/jjOGUskdCvUjdF1z9UgKnCKfKjQcV9829AfPDlJj43pd8hmZBvBa6RIcRDGuVg=="
}, },
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/cart-remove-item.ts": { "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/cart-remove-item.ts": {
"file": "cart-remove-item.js", "file": "cart-remove-item.js",
@ -134,7 +151,8 @@
"isEntry": true, "isEntry": true,
"imports": [ "imports": [
"_index.C9ScFdVV.js" "_index.C9ScFdVV.js"
] ],
"integrity": "sha512-ksb8zxVH1SqC+HlC+Y5LUNYI2CZTpLyc1K8akl8dpH8IlVeGcmtVAL+oJyuZ3I6wOzxpTicKj0LmzP5YT2KiwQ=="
}, },
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/cart.ts": { "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/cart.ts": {
"file": "cart.js", "file": "cart.js",
@ -143,7 +161,8 @@
"isEntry": true, "isEntry": true,
"imports": [ "imports": [
"_index.C9ScFdVV.js" "_index.C9ScFdVV.js"
] ],
"integrity": "sha512-2CHat7wLZuNa2589dZpLckXxQhNo8YzMFBBbiBpRqaDgDyps8Y8hnwOwlo/gf2blPV8lhkQMaVzn3RM14TIeoA=="
}, },
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/erreurs.ts": { "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/erreurs.ts": {
"file": "erreurs2.js", "file": "erreurs2.js",
@ -152,7 +171,8 @@
"isEntry": true, "isEntry": true,
"imports": [ "imports": [
"_index.C9ScFdVV.js" "_index.C9ScFdVV.js"
] ],
"integrity": "sha512-eI8yOqOBdmtFY3SAR+IWBaj7FhNuKDpbrAg1K8OKl5QlrU+m78xejcTpDt8+FqTdXTDS2LY2EySpDuBT8kBfng=="
}, },
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/messages.ts": { "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/messages.ts": {
"file": "messages2.js", "file": "messages2.js",
@ -162,7 +182,8 @@
"imports": [ "imports": [
"_index.C9ScFdVV.js", "_index.C9ScFdVV.js",
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/messages.ts" "web/app/themes/haiku-atelier-2024/src/scripts/constantes/messages.ts"
] ],
"integrity": "sha512-xXCa4oCcnuvDew93KLXCOvVh1JN4vgCS5AeP1fhgbu97RH98rWl1/MQF8+c5YedTtvKQNfeId5LfQM4uCCcHew=="
}, },
"web/app/themes/haiku-atelier-2024/src/scripts/lib/utils.ts": { "web/app/themes/haiku-atelier-2024/src/scripts/lib/utils.ts": {
"file": "utils.js", "file": "utils.js",
@ -173,9 +194,10 @@
"web/app/themes/haiku-atelier-2024/src/scripts/lib/dom.ts", "web/app/themes/haiku-atelier-2024/src/scripts/lib/dom.ts",
"_chunk-7BKSRZNG.F4GWJRq9.js", "_chunk-7BKSRZNG.F4GWJRq9.js",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/erreurs.ts", "web/app/themes/haiku-atelier-2024/src/scripts/lib/erreurs.ts",
"_exports.dP04ITJc.js", "_exports.BNibT8R5.js",
"_Either.DDEPhGsy.js" "_Either.DDEPhGsy.js"
] ],
"integrity": "sha512-yN0a8PmVmEmLg4ULsJDr9zEzH9JnozImw4wnopOueDzl5yN6xrm+GBcT/dgYH8jdpmQ1GYtTKvCrsIcB0zHyLA=="
}, },
"web/app/themes/haiku-atelier-2024/src/scripts/scripts-bouton-panier.ts": { "web/app/themes/haiku-atelier-2024/src/scripts/scripts-bouton-panier.ts": {
"file": "scripts-bouton-panier.js", "file": "scripts-bouton-panier.js",
@ -190,11 +212,12 @@
"web/app/themes/haiku-atelier-2024/src/scripts/lib/messages.ts", "web/app/themes/haiku-atelier-2024/src/scripts/lib/messages.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/utils.ts", "web/app/themes/haiku-atelier-2024/src/scripts/lib/utils.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/erreurs.ts", "web/app/themes/haiku-atelier-2024/src/scripts/lib/erreurs.ts",
"_exports.dP04ITJc.js", "_exports.BNibT8R5.js",
"_Either.DDEPhGsy.js", "_Either.DDEPhGsy.js",
"_index.C9ScFdVV.js", "_index.C9ScFdVV.js",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/messages.ts" "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/messages.ts"
] ],
"integrity": "sha512-oL/TP1nUTL2L0Cd8s+1q8U47Xyx4J2x2HpvlNx9l5155QpKD/ppBrXhngffiXe+GjC6iv+Rytfa+kMCMaauzPw=="
}, },
"web/app/themes/haiku-atelier-2024/src/scripts/scripts-page-panier.ts": { "web/app/themes/haiku-atelier-2024/src/scripts/scripts-page-panier.ts": {
"file": "scripts-page-panier.js", "file": "scripts-page-panier.js",
@ -218,9 +241,10 @@
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/erreurs.ts", "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/erreurs.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/utils.ts", "web/app/themes/haiku-atelier-2024/src/scripts/lib/utils.ts",
"_Either.DDEPhGsy.js", "_Either.DDEPhGsy.js",
"_exports.dP04ITJc.js", "_exports.BNibT8R5.js",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/messages.ts" "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/messages.ts"
] ],
"integrity": "sha512-21LRx7In3xsKuO6+J+UAlwL/NphWXhHdwa+J3rA0te4UJIi2MSleiFiqHk/fXytM6+dfalEzwuBuASeF1glbRQ=="
}, },
"web/app/themes/haiku-atelier-2024/src/scripts/scripts-page-produit.ts": { "web/app/themes/haiku-atelier-2024/src/scripts/scripts-page-produit.ts": {
"file": "scripts-page-produit.js", "file": "scripts-page-produit.js",
@ -242,7 +266,8 @@
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/erreurs.ts", "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/erreurs.ts",
"web/app/themes/haiku-atelier-2024/src/scripts/lib/utils.ts", "web/app/themes/haiku-atelier-2024/src/scripts/lib/utils.ts",
"_Either.DDEPhGsy.js", "_Either.DDEPhGsy.js",
"_exports.dP04ITJc.js" "_exports.BNibT8R5.js"
] ],
"integrity": "sha512-a87nfnaiYWWa/g6YZEHRbQ8vx0xM1EhhiOoIkZTUcl3CEyJtRM5hsIA2FkxgsVcRO2w3FrSKHRuZF4jOmx01EQ=="
} }
} }

View file

@ -1,2 +1,2 @@
const E="aria-selected",T="hidden",a="data-contient-articles",s="disabled",t="data-cle-panier",_="#page-panier",e=".compte-panier a[rel='cart']",n="#selecteur-variation",o="#bouton-ajout-panier",R="a[role='tab']",c="section[role='tabpanel']",N="article",S="button.detail-produit__actions__suppression";export{a as A,e as S,N as a,_ as b,t as c,S as d,o as e,n as f,R as g,c as h,E as i,T as j,s as k}; const E="aria-selected",T="hidden",t="data-contient-articles",a="disabled",s="data-cle-panier",_="#page-panier",o=".compte-panier a[rel='cart']",n="#selecteur-variation",c="#bouton-ajout-panier",e="a[role='tab']",R="section[role='tabpanel']",U="article",N="button.detail-produit__actions__suppression",S="button.detail-produit__actions__soustraction",i="input";export{t as A,o as S,U as a,_ as b,s as c,N as d,S as e,i as f,c as g,n as h,e as i,R as j,E as k,T as l,a as m};
//# sourceMappingURL=dom.js.map //# sourceMappingURL=dom.js.map

View file

@ -1 +1 @@
{"version":3,"file":"dom.js","sources":["../../src/scripts/constantes/dom.ts"],"sourcesContent":["/** Constantes de valeurs pour la manipulation du DOM : sélecteurs et attributs. */\n\nexport const ATTRIBUT_ARIA_SELECTED = \"aria-selected\";\nexport const ATTRIBUT_ARIA_HIDDEN = \"aria-hidden\";\nexport const ATTRIBUT_HIDDEN = \"hidden\";\nexport const ATTRIBUT_CONTIENT_ARTICLES = \"data-contient-articles\";\nexport const ATTRIBUT_DESACTIVE = \"disabled\";\nexport const ATTRIBUT_CLE_PANIER = \"data-cle-panier\";\n\nexport const SELECTEUR_CONTENEUR_PANIER = \"#page-panier\";\nexport const SELECTEUR_BOUTON_PANIER = \".compte-panier a[rel='cart']\";\nexport const SELECTEUR_SELECTEUR_QUANTITE = \"#selecteur-variation\";\nexport const SELECTEUR_BOUTON_AJOUT_PANIER = \"#bouton-ajout-panier\";\nexport const SELECTEUR_LIENS_ONGLETS = \"a[role='tab']\";\nexport const SELECTEUR_SECTIONS_CONTENUS = \"section[role='tabpanel']\";\n\n// Panier\nexport const SELECTEUR_ENTREES_PANIER = \"article\";\nexport const SELECTEUR_BOUTON_SUPPRESSION_PANIER = \"button.detail-produit__actions__suppression\";\n"],"names":["ATTRIBUT_ARIA_SELECTED","ATTRIBUT_HIDDEN","ATTRIBUT_CONTIENT_ARTICLES","ATTRIBUT_DESACTIVE","ATTRIBUT_CLE_PANIER","SELECTEUR_CONTENEUR_PANIER","SELECTEUR_BOUTON_PANIER","SELECTEUR_SELECTEUR_QUANTITE","SELECTEUR_BOUTON_AJOUT_PANIER","SELECTEUR_LIENS_ONGLETS","SELECTEUR_SECTIONS_CONTENUS","SELECTEUR_ENTREES_PANIER","SELECTEUR_BOUTON_SUPPRESSION_PANIER"],"mappings":"AAEO,MAAMA,EAAyB,gBAEzBC,EAAkB,SAClBC,EAA6B,yBAC7BC,EAAqB,WACrBC,EAAsB,kBAEtBC,EAA6B,eAC7BC,EAA0B,+BAC1BC,EAA+B,uBAC/BC,EAAgC,uBAChCC,EAA0B,gBAC1BC,EAA8B,2BAG9BC,EAA2B,UAC3BC,EAAsC"} {"version":3,"file":"dom.js","sources":["../../src/scripts/constantes/dom.ts"],"sourcesContent":["/** Constantes de valeurs pour la manipulation du DOM : sélecteurs et attributs. */\n\nexport const ATTRIBUT_ARIA_SELECTED = \"aria-selected\";\nexport const ATTRIBUT_ARIA_HIDDEN = \"aria-hidden\";\nexport const ATTRIBUT_HIDDEN = \"hidden\";\nexport const ATTRIBUT_CONTIENT_ARTICLES = \"data-contient-articles\";\nexport const ATTRIBUT_DESACTIVE = \"disabled\";\nexport const ATTRIBUT_CLE_PANIER = \"data-cle-panier\";\n\nexport const SELECTEUR_CONTENEUR_PANIER = \"#page-panier\";\nexport const SELECTEUR_BOUTON_PANIER = \".compte-panier a[rel='cart']\";\nexport const SELECTEUR_SELECTEUR_QUANTITE = \"#selecteur-variation\";\nexport const SELECTEUR_BOUTON_AJOUT_PANIER = \"#bouton-ajout-panier\";\nexport const SELECTEUR_LIENS_ONGLETS = \"a[role='tab']\";\nexport const SELECTEUR_SECTIONS_CONTENUS = \"section[role='tabpanel']\";\n\n// Panier\nexport const SELECTEUR_ENTREES_PANIER = \"article\";\nexport const SELECTEUR_BOUTON_SUPPRESSION_PANIER = \"button.detail-produit__actions__suppression\";\nexport const SELECTEUR_BOUTON_SOUSTRACTION_QUANTITE = \"button.detail-produit__actions__soustraction\";\nexport const SELECTEUR_BOUTON_ADDITION_QUANTITE = \"button.detail-produit__actions__addition\";\nexport const SELECTEUR_CHAMP_QUANTITE = \"input\";\n"],"names":["ATTRIBUT_ARIA_SELECTED","ATTRIBUT_HIDDEN","ATTRIBUT_CONTIENT_ARTICLES","ATTRIBUT_DESACTIVE","ATTRIBUT_CLE_PANIER","SELECTEUR_CONTENEUR_PANIER","SELECTEUR_BOUTON_PANIER","SELECTEUR_SELECTEUR_QUANTITE","SELECTEUR_BOUTON_AJOUT_PANIER","SELECTEUR_LIENS_ONGLETS","SELECTEUR_SECTIONS_CONTENUS","SELECTEUR_ENTREES_PANIER","SELECTEUR_BOUTON_SUPPRESSION_PANIER","SELECTEUR_BOUTON_SOUSTRACTION_QUANTITE","SELECTEUR_CHAMP_QUANTITE"],"mappings":"AAEO,MAAMA,EAAyB,gBAEzBC,EAAkB,SAClBC,EAA6B,yBAC7BC,EAAqB,WACrBC,EAAsB,kBAEtBC,EAA6B,eAC7BC,EAA0B,+BAC1BC,EAA+B,uBAC/BC,EAAgC,uBAChCC,EAA0B,gBAC1BC,EAA8B,2BAG9BC,EAA2B,UAC3BC,EAAsC,8CACtCC,EAAyC,+CAEzCC,EAA2B"}

View file

@ -1,2 +1,2 @@
import{x as m}from"./chunk-7BKSRZNG.F4GWJRq9.js";import{e as n,f as a,g as c,h as o}from"./erreurs.js";import{E as s,r as E,l as i}from"./Either.DDEPhGsy.js";import"./exports.dP04ITJc.js";function p(e){return e!==null}function l(e){return e===void 0?!0:typeof e=="string"||Array.isArray(e)?e.length===0:Object.keys(e).length===0}const f=e=>e,L=e=>r=>s.encase(()=>e.querySelector(r)).mapLeft(t=>n(c(r))).chain(t=>p(t)?E(t):i(n(o(r)))),R=e=>r=>s.encase(()=>m(e.querySelectorAll(r),Array.from)).mapLeft(t=>n(c(r))).chain(t=>l(t)?i(n(o(r))):E(t)),S=e=>e.caseOf({Left:a,Right:f}),g=e=>e.caseOf({Left:a,Right:f});export{g as a,L as b,R as c,S as r}; import{x as m}from"./chunk-7BKSRZNG.F4GWJRq9.js";import{e as n,f as a,g as c,h as o}from"./erreurs.js";import{E as s,r as E,l as i}from"./Either.DDEPhGsy.js";import"./exports.BNibT8R5.js";function p(e){return e!==null}function l(e){return e===void 0?!0:typeof e=="string"||Array.isArray(e)?e.length===0:Object.keys(e).length===0}const f=e=>e,L=e=>r=>s.encase(()=>e.querySelector(r)).mapLeft(t=>n(c(r))).chain(t=>p(t)?E(t):i(n(o(r)))),R=e=>r=>s.encase(()=>m(e.querySelectorAll(r),Array.from)).mapLeft(t=>n(c(r))).chain(t=>l(t)?i(n(o(r))):E(t)),S=e=>e.caseOf({Left:a,Right:f}),g=e=>e.caseOf({Left:a,Right:f});export{g as a,L as b,R as c,S as r};
//# sourceMappingURL=dom2.js.map //# sourceMappingURL=dom2.js.map

View file

@ -1,2 +1,2 @@
import{$ as o}from"./exports.dP04ITJc.js";const u=r=>`Le selecteur "${r}" est invalide`,d=r=>`La requête "${r}" n'a retourné aucun Élément.`,i=r=>new SyntaxError(r);class s extends Error{constructor(e="400 BadRequestError"){super(e),this.name="BadRequestError"}}class t extends Error{constructor(e="401 UnauthorizedError"){super(e),this.name="UnauthorizedError"}}class n extends Error{constructor(e="404 NotFoundError"){super(e),this.name="NotFoundError"}}class E extends Error{constructor(e="500 ServerError"){super(e),this.name="ServerError"}}class a extends Error{constructor(e){super(JSON.stringify(e)),this.name="UnknownError"}}class l extends Error{constructor(e){super(JSON.stringify(e)),this.name="DOMElementAbsentError"}}const h=r=>new a(r),m=r=>{throw r},w=r=>{throw new s(`(${r.code}) ${r.message}`)},p=r=>{throw new t(`(${r.code}) ${r.message}`)},v=r=>{throw new n(`(${r.code}) ${r.message}`)},R=r=>{throw new E(r)},S=r=>(console.error(r),o(r)),x=r=>{throw o(r),r};export{l as D,h as E,w as a,p as b,v as c,m as d,i as e,x as f,u as g,d as h,R as l,S as r}; import{$ as o}from"./exports.BNibT8R5.js";const u=r=>`Le selecteur "${r}" est invalide`,d=r=>`La requête "${r}" n'a retourné aucun Élément.`,i=r=>new SyntaxError(r);class s extends Error{constructor(e="400 BadRequestError"){super(e),this.name="BadRequestError"}}class t extends Error{constructor(e="401 UnauthorizedError"){super(e),this.name="UnauthorizedError"}}class n extends Error{constructor(e="404 NotFoundError"){super(e),this.name="NotFoundError"}}class E extends Error{constructor(e="500 ServerError"){super(e),this.name="ServerError"}}class a extends Error{constructor(e){super(JSON.stringify(e)),this.name="UnknownError"}}class l extends Error{constructor(e){super(JSON.stringify(e)),this.name="DOMElementAbsentError"}}const h=r=>new a(r),m=r=>{throw r},w=r=>{throw new s(`(${r.code}) ${r.message}`)},p=r=>{throw new t(`(${r.code}) ${r.message}`)},v=r=>{throw new n(`(${r.code}) ${r.message}`)},R=r=>{throw new E(r)},S=r=>(console.error(r),o(r)),x=r=>{throw o(r),r};export{l as D,h as E,w as a,p as b,v as c,m as d,i as e,x as f,u as g,d as h,R as l,S as r};
//# sourceMappingURL=erreurs.js.map //# sourceMappingURL=erreurs.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,4 +1,4 @@
import{x as _t}from"./chunk-7BKSRZNG.F4GWJRq9.js";import{E as me,a as ge}from"./api2.js";import{i as J,t as yt,c as Ge,D as ae,l as f,g as Et,G as h,C as vt,f as O,o as _e,a as C,b as We,d as V,r as Ye,S as Ke,e as k,h as ce,n as St,j as Xe,k as g,u as bt,m as B,p as ye,q as ue,s as Ee,v as kt,w as It,x as ze,y as Tt,z as Z,A as Je,B as ve,E as y,F as wt,H as Se,I as q,J as Ve,K as be,L as Rt,M as ke,N as le,O as Nt,P as Ct,Q as P,R as Ot,U as $,T as $t,V as Pt,W as Ie,X as Dt,Y as G,Z as Ft,_ as xt}from"./exports.dP04ITJc.js";function Ht(t,e,n=250,r,s,o,i){if(!o.exception||!o.exception.values||!i||!J(i.originalException,Error))return;const a=o.exception.values.length>0?o.exception.values[o.exception.values.length-1]:void 0;a&&(o.exception.values=Lt(Q(t,e,s,i.originalException,r,o.exception.values,a,0),n))}function Q(t,e,n,r,s,o,i,a){if(o.length>=n+1)return o;let c=[...o];if(J(r[s],Error)){Te(i,a);const u=t(e,r[s]),d=c.length;we(u,s,d,a),c=Q(t,e,n,r[s],s,[u,...c],u,d)}return Array.isArray(r.errors)&&r.errors.forEach((u,d)=>{if(J(u,Error)){Te(i,a);const l=t(e,u),m=c.length;we(l,`errors[${d}]`,m,a),c=Q(t,e,n,u,s,[l,...c],l,m)}}),c}function Te(t,e){t.mechanism=t.mechanism||{type:"generic",handled:!0},t.mechanism={...t.mechanism,...t.type==="AggregateError"&&{is_exception_group:!0},exception_id:e}}function we(t,e,n,r){t.mechanism=t.mechanism||{type:"generic",handled:!0},t.mechanism={...t.mechanism,type:"chained",source:e,exception_id:n,parent_id:r}}function Lt(t,e){return t.map(n=>(n.value&&(n.value=yt(n.value,e)),n))}function Ze(t){if(t!==void 0)return t>=400&&t<500?"warning":t>=500?"error":void 0}const Mt=/^(?:(\w+):)\/\/(?:(\w+)(?::(\w+)?)?@)([\w.-]+)(?::(\d+))?\/(.+)/;function Ut(t){return t==="http"||t==="https"}function W(t,e=!1){const{host:n,path:r,pass:s,port:o,projectId:i,protocol:a,publicKey:c}=t;return`${a}://${c}${e&&s?`:${s}`:""}@${n}${o?`:${o}`:""}/${r&&`${r}/`}${i}`}function jt(t){const e=Mt.exec(t);if(!e){Ge(()=>{console.error(`Invalid Sentry Dsn: ${t}`)});return}const[n,r,s="",o="",i="",a=""]=e.slice(1);let c="",u=a;const d=u.split("/");if(d.length>1&&(c=d.slice(0,-1).join("/"),u=d.pop()),u){const l=u.match(/^\d+/);l&&(u=l[0])}return Qe({host:o,pass:s,path:c,projectId:u,port:i,protocol:n,publicKey:r})}function Qe(t){return{protocol:t.protocol,publicKey:t.publicKey||"",pass:t.pass||"",host:t.host,port:t.port||"",path:t.path||"",projectId:t.projectId}}function Bt(t){if(!ae)return!0;const{port:e,projectId:n,protocol:r}=t;return["protocol","publicKey","host","projectId"].find(i=>t[i]?!1:(f.error(`Invalid Sentry Dsn: ${i} missing`),!0))?!1:n.match(/^\d+$/)?Ut(r)?e&&isNaN(parseInt(e,10))?(f.error(`Invalid Sentry Dsn: Invalid port ${e}`),!1):!0:(f.error(`Invalid Sentry Dsn: Invalid protocol ${r}`),!1):(f.error(`Invalid Sentry Dsn: Invalid projectId ${n}`),!1)}function At(t){const e=typeof t=="string"?jt(t):Qe(t);if(!(!e||!Bt(e)))return e}class b extends Error{constructor(e,n="warn"){super(e),this.message=e,this.name=new.target.prototype.constructor.name,Object.setPrototypeOf(this,new.target.prototype),this.logLevel=n}}const A={},Re={};function w(t,e){A[t]=A[t]||[],A[t].push(e)}function R(t,e){Re[t]||(e(),Re[t]=!0)}function S(t,e){const n=t&&A[t];if(n)for(const r of n)try{r(e)}catch(s){ae&&f.error(`Error while triggering instrumentation handler. import{x as _t}from"./chunk-7BKSRZNG.F4GWJRq9.js";import{E as me,a as ge}from"./api2.js";import{i as J,t as yt,c as Ge,D as ae,l as f,g as Et,G as h,C as vt,f as O,o as _e,a as C,b as We,d as V,r as Ye,S as Ke,e as k,h as ce,n as St,j as Xe,k as g,u as bt,m as B,p as ye,q as ue,s as Ee,v as kt,w as It,x as ze,y as Tt,z as Z,A as Je,B as ve,E as y,F as wt,H as Se,I as q,J as Ve,K as be,L as Rt,M as ke,N as le,O as Nt,P as Ct,Q as P,R as Ot,U as $,T as $t,V as Pt,W as Ie,X as Dt,Y as G,Z as Ft,_ as xt}from"./exports.BNibT8R5.js";function Ht(t,e,n=250,r,s,o,i){if(!o.exception||!o.exception.values||!i||!J(i.originalException,Error))return;const a=o.exception.values.length>0?o.exception.values[o.exception.values.length-1]:void 0;a&&(o.exception.values=Lt(Q(t,e,s,i.originalException,r,o.exception.values,a,0),n))}function Q(t,e,n,r,s,o,i,a){if(o.length>=n+1)return o;let c=[...o];if(J(r[s],Error)){Te(i,a);const u=t(e,r[s]),d=c.length;we(u,s,d,a),c=Q(t,e,n,r[s],s,[u,...c],u,d)}return Array.isArray(r.errors)&&r.errors.forEach((u,d)=>{if(J(u,Error)){Te(i,a);const l=t(e,u),m=c.length;we(l,`errors[${d}]`,m,a),c=Q(t,e,n,u,s,[l,...c],l,m)}}),c}function Te(t,e){t.mechanism=t.mechanism||{type:"generic",handled:!0},t.mechanism={...t.mechanism,...t.type==="AggregateError"&&{is_exception_group:!0},exception_id:e}}function we(t,e,n,r){t.mechanism=t.mechanism||{type:"generic",handled:!0},t.mechanism={...t.mechanism,type:"chained",source:e,exception_id:n,parent_id:r}}function Lt(t,e){return t.map(n=>(n.value&&(n.value=yt(n.value,e)),n))}function Ze(t){if(t!==void 0)return t>=400&&t<500?"warning":t>=500?"error":void 0}const Mt=/^(?:(\w+):)\/\/(?:(\w+)(?::(\w+)?)?@)([\w.-]+)(?::(\d+))?\/(.+)/;function Ut(t){return t==="http"||t==="https"}function W(t,e=!1){const{host:n,path:r,pass:s,port:o,projectId:i,protocol:a,publicKey:c}=t;return`${a}://${c}${e&&s?`:${s}`:""}@${n}${o?`:${o}`:""}/${r&&`${r}/`}${i}`}function jt(t){const e=Mt.exec(t);if(!e){Ge(()=>{console.error(`Invalid Sentry Dsn: ${t}`)});return}const[n,r,s="",o="",i="",a=""]=e.slice(1);let c="",u=a;const d=u.split("/");if(d.length>1&&(c=d.slice(0,-1).join("/"),u=d.pop()),u){const l=u.match(/^\d+/);l&&(u=l[0])}return Qe({host:o,pass:s,path:c,projectId:u,port:i,protocol:n,publicKey:r})}function Qe(t){return{protocol:t.protocol,publicKey:t.publicKey||"",pass:t.pass||"",host:t.host,port:t.port||"",path:t.path||"",projectId:t.projectId}}function Bt(t){if(!ae)return!0;const{port:e,projectId:n,protocol:r}=t;return["protocol","publicKey","host","projectId"].find(i=>t[i]?!1:(f.error(`Invalid Sentry Dsn: ${i} missing`),!0))?!1:n.match(/^\d+$/)?Ut(r)?e&&isNaN(parseInt(e,10))?(f.error(`Invalid Sentry Dsn: Invalid port ${e}`),!1):!0:(f.error(`Invalid Sentry Dsn: Invalid protocol ${r}`),!1):(f.error(`Invalid Sentry Dsn: Invalid projectId ${n}`),!1)}function At(t){const e=typeof t=="string"?jt(t):Qe(t);if(!(!e||!Bt(e)))return e}class b extends Error{constructor(e,n="warn"){super(e),this.message=e,this.name=new.target.prototype.constructor.name,Object.setPrototypeOf(this,new.target.prototype),this.logLevel=n}}const A={},Re={};function w(t,e){A[t]=A[t]||[],A[t].push(e)}function R(t,e){Re[t]||(e(),Re[t]=!0)}function S(t,e){const n=t&&A[t];if(n)for(const r of n)try{r(e)}catch(s){ae&&f.error(`Error while triggering instrumentation handler.
Type: ${t} Type: ${t}
Name: ${Et(r)} Name: ${Et(r)}
Error:`,s)}}function qt(t){const e="console";w(e,t),R(e,Gt)}function Gt(){"console"in h&&vt.forEach(function(t){t in h.console&&O(h.console,t,function(e){return _e[t]=e,function(...n){S("console",{args:n,level:t});const s=_e[t];s&&s.apply(h.console,n)}})})}const ee=h;function Wt(){if(!("fetch"in ee))return!1;try{return new Headers,new Request("http://www.example.com"),new Response,!0}catch{return!1}}function Ne(t){return t&&/^function\s+\w+\(\)\s+\{\s+\[native code\]\s+\}$/.test(t.toString())}function et(){if(typeof EdgeRuntime=="string")return!0;if(!Wt())return!1;if(Ne(ee.fetch))return!0;let t=!1;const e=ee.document;if(e&&typeof e.createElement=="function")try{const n=e.createElement("iframe");n.hidden=!0,e.head.appendChild(n),n.contentWindow&&n.contentWindow.fetch&&(t=Ne(n.contentWindow.fetch)),e.head.removeChild(n)}catch(n){ae&&f.warn("Could not create sandbox iframe for pure fetch check, bailing to window.fetch: ",n)}return t}function tt(t,e){const n="fetch";w(n,t),R(n,()=>Yt(void 0,e))}function Yt(t,e=!1){e&&!et()||O(h,"fetch",function(n){return function(...r){const{method:s,url:o}=Kt(r),i={args:r,fetchData:{method:s,url:o},startTimestamp:C()*1e3};S("fetch",{...i});const a=new Error().stack;return n.apply(h,r).then(async c=>(S("fetch",{...i,endTimestamp:C()*1e3,response:c}),c),c=>{throw S("fetch",{...i,endTimestamp:C()*1e3,error:c}),We(c)&&c.stack===void 0&&(c.stack=a,V(c,"framesToPop",1)),c})}})}function te(t,e){return!!t&&typeof t=="object"&&!!t[e]}function Ce(t){return typeof t=="string"?t:t?te(t,"url")?t.url:t.toString?t.toString():"":""}function Kt(t){if(t.length===0)return{method:"GET",url:""};if(t.length===2){const[n,r]=t;return{url:Ce(n),method:te(r,"method")?String(r.method).toUpperCase():"GET"}}const e=t[0];return{url:Ce(e),method:te(e,"method")?String(e.method).toUpperCase():"GET"}}let H=null;function Xt(t){const e="error";w(e,t),R(e,zt)}function zt(){H=h.onerror,h.onerror=function(t,e,n,r,s){return S("error",{column:r,error:s,line:n,msg:t,url:e}),H&&!H.__SENTRY_LOADER__?H.apply(this,arguments):!1},h.onerror.__SENTRY_INSTRUMENTED__=!0}let L=null;function Jt(t){const e="unhandledrejection";w(e,t),R(e,Vt)}function Vt(){L=h.onunhandledrejection,h.onunhandledrejection=function(t){return S("unhandledrejection",t),L&&!L.__SENTRY_LOADER__?L.apply(this,arguments):!0},h.onunhandledrejection.__SENTRY_INSTRUMENTED__=!0}function Zt(){return"npm"}function Qt(t){const e=[];function n(){return t===void 0||e.length<t}function r(i){return e.splice(e.indexOf(i),1)[0]||Promise.resolve(void 0)}function s(i){if(!n())return Ye(new b("Not adding Promise because buffer limit was reached."));const a=i();return e.indexOf(a)===-1&&e.push(a),a.then(()=>r(a)).then(null,()=>r(a).then(null,()=>{})),a}function o(i){return new Ke((a,c)=>{let u=e.length;if(!u)return a(!0);const d=setTimeout(()=>{i&&i>0&&a(!1)},i);e.forEach(l=>{k(l).then(()=>{--u||(clearTimeout(d),a(!0))},c)})})}return{$:e,add:s,drain:o}}function X(t){if(!t)return{};const e=t.match(/^(([^:/?#]+):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?$/);if(!e)return{};const n=e[6]||"",r=e[8]||"";return{host:e[4],path:e[5],protocol:e[2],search:n,hash:r,relative:e[5]+n+r}}const en=["fatal","error","warning","log","info","debug"];function tn(t){return t==="warn"?"warning":en.includes(t)?t:"log"}function D(t,e=[]){return[t,e]}function nn(t,e){const[n,r]=t;return[n,[...r,e]]}function Oe(t,e){const n=t[1];for(const r of n){const s=r[0].type;if(e(r,s))return!0}return!1}function ne(t){return h.__SENTRY__&&h.__SENTRY__.encodePolyfill?h.__SENTRY__.encodePolyfill(t):new TextEncoder().encode(t)}function rn(t){const[e,n]=t;let r=JSON.stringify(e);function s(o){typeof r=="string"?r=typeof o=="string"?r+o:[ne(r),o]:r.push(typeof o=="string"?ne(o):o)}for(const o of n){const[i,a]=o;if(s(` Error:`,s)}}function qt(t){const e="console";w(e,t),R(e,Gt)}function Gt(){"console"in h&&vt.forEach(function(t){t in h.console&&O(h.console,t,function(e){return _e[t]=e,function(...n){S("console",{args:n,level:t});const s=_e[t];s&&s.apply(h.console,n)}})})}const ee=h;function Wt(){if(!("fetch"in ee))return!1;try{return new Headers,new Request("http://www.example.com"),new Response,!0}catch{return!1}}function Ne(t){return t&&/^function\s+\w+\(\)\s+\{\s+\[native code\]\s+\}$/.test(t.toString())}function et(){if(typeof EdgeRuntime=="string")return!0;if(!Wt())return!1;if(Ne(ee.fetch))return!0;let t=!1;const e=ee.document;if(e&&typeof e.createElement=="function")try{const n=e.createElement("iframe");n.hidden=!0,e.head.appendChild(n),n.contentWindow&&n.contentWindow.fetch&&(t=Ne(n.contentWindow.fetch)),e.head.removeChild(n)}catch(n){ae&&f.warn("Could not create sandbox iframe for pure fetch check, bailing to window.fetch: ",n)}return t}function tt(t,e){const n="fetch";w(n,t),R(n,()=>Yt(void 0,e))}function Yt(t,e=!1){e&&!et()||O(h,"fetch",function(n){return function(...r){const{method:s,url:o}=Kt(r),i={args:r,fetchData:{method:s,url:o},startTimestamp:C()*1e3};S("fetch",{...i});const a=new Error().stack;return n.apply(h,r).then(async c=>(S("fetch",{...i,endTimestamp:C()*1e3,response:c}),c),c=>{throw S("fetch",{...i,endTimestamp:C()*1e3,error:c}),We(c)&&c.stack===void 0&&(c.stack=a,V(c,"framesToPop",1)),c})}})}function te(t,e){return!!t&&typeof t=="object"&&!!t[e]}function Ce(t){return typeof t=="string"?t:t?te(t,"url")?t.url:t.toString?t.toString():"":""}function Kt(t){if(t.length===0)return{method:"GET",url:""};if(t.length===2){const[n,r]=t;return{url:Ce(n),method:te(r,"method")?String(r.method).toUpperCase():"GET"}}const e=t[0];return{url:Ce(e),method:te(e,"method")?String(e.method).toUpperCase():"GET"}}let H=null;function Xt(t){const e="error";w(e,t),R(e,zt)}function zt(){H=h.onerror,h.onerror=function(t,e,n,r,s){return S("error",{column:r,error:s,line:n,msg:t,url:e}),H&&!H.__SENTRY_LOADER__?H.apply(this,arguments):!1},h.onerror.__SENTRY_INSTRUMENTED__=!0}let L=null;function Jt(t){const e="unhandledrejection";w(e,t),R(e,Vt)}function Vt(){L=h.onunhandledrejection,h.onunhandledrejection=function(t){return S("unhandledrejection",t),L&&!L.__SENTRY_LOADER__?L.apply(this,arguments):!0},h.onunhandledrejection.__SENTRY_INSTRUMENTED__=!0}function Zt(){return"npm"}function Qt(t){const e=[];function n(){return t===void 0||e.length<t}function r(i){return e.splice(e.indexOf(i),1)[0]||Promise.resolve(void 0)}function s(i){if(!n())return Ye(new b("Not adding Promise because buffer limit was reached."));const a=i();return e.indexOf(a)===-1&&e.push(a),a.then(()=>r(a)).then(null,()=>r(a).then(null,()=>{})),a}function o(i){return new Ke((a,c)=>{let u=e.length;if(!u)return a(!0);const d=setTimeout(()=>{i&&i>0&&a(!1)},i);e.forEach(l=>{k(l).then(()=>{--u||(clearTimeout(d),a(!0))},c)})})}return{$:e,add:s,drain:o}}function X(t){if(!t)return{};const e=t.match(/^(([^:/?#]+):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?$/);if(!e)return{};const n=e[6]||"",r=e[8]||"";return{host:e[4],path:e[5],protocol:e[2],search:n,hash:r,relative:e[5]+n+r}}const en=["fatal","error","warning","log","info","debug"];function tn(t){return t==="warn"?"warning":en.includes(t)?t:"log"}function D(t,e=[]){return[t,e]}function nn(t,e){const[n,r]=t;return[n,[...r,e]]}function Oe(t,e){const n=t[1];for(const r of n){const s=r[0].type;if(e(r,s))return!0}return!1}function ne(t){return h.__SENTRY__&&h.__SENTRY__.encodePolyfill?h.__SENTRY__.encodePolyfill(t):new TextEncoder().encode(t)}function rn(t){const[e,n]=t;let r=JSON.stringify(e);function s(o){typeof r=="string"?r=typeof o=="string"?r+o:[ne(r),o]:r.push(typeof o=="string"?ne(o):o)}for(const o of n){const[i,a]=o;if(s(`

File diff suppressed because one or more lines are too long

View file

@ -1,2 +1,2 @@
import{p as a}from"./index.C9ScFdVV.js";import{r as o}from"./erreurs.js";import{M as i}from"./messages2.js";import{E as s}from"./Either.DDEPhGsy.js";import"./exports.dP04ITJc.js";import"./messages3.js";const E=r=>s.of(a(i,r.data)).ifLeft(e=>{o(e)});export{E as v}; import{p as a}from"./index.C9ScFdVV.js";import{r as o}from"./erreurs.js";import{M as i}from"./messages2.js";import{E as s}from"./Either.DDEPhGsy.js";import"./exports.BNibT8R5.js";import"./messages3.js";const E=r=>s.of(a(i,r.data)).ifLeft(e=>{o(e)});export{E as v};
//# sourceMappingURL=messages.js.map //# sourceMappingURL=messages.js.map

View file

@ -1,2 +1,2 @@
import{x as n}from"./chunk-7BKSRZNG.F4GWJRq9.js";import{S as i,A as m}from"./dom.js";import{N as a}from"./messages3.js";import{r as s}from"./dom2.js";import{v as N}from"./messages.js";import{r as p}from"./utils.js";import"./erreurs.js";import"./exports.dP04ITJc.js";import"./Either.DDEPhGsy.js";import"./index.C9ScFdVV.js";import"./messages2.js";const E=()=>{const t=n(p(i),s),r=new BroadcastChannel(a);r.onmessage=o=>{N(o).ifRight(e=>{t.textContent=`cart (${String(e.donnees)})`,t.setAttribute(m,String(e.donnees>0))})}};document.addEventListener("DOMContentLoaded",()=>{E()}); import{x as n}from"./chunk-7BKSRZNG.F4GWJRq9.js";import{S as i,A as m}from"./dom.js";import{N as a}from"./messages3.js";import{r as s}from"./dom2.js";import{v as N}from"./messages.js";import{r as p}from"./utils.js";import"./erreurs.js";import"./exports.BNibT8R5.js";import"./Either.DDEPhGsy.js";import"./index.C9ScFdVV.js";import"./messages2.js";console.debug("mdr");const E=()=>{const e=n(p(i),s),o=new BroadcastChannel(a);o.onmessage=r=>{N(r).ifRight(t=>{e.textContent=`cart (${String(t.donnees)})`,e.setAttribute(m,String(t.donnees>0))})}};document.addEventListener("DOMContentLoaded",()=>{E()});
//# sourceMappingURL=scripts-bouton-panier.js.map //# 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 \"remeda\";\n\nimport type { MiseAJourPanierMessage } from \"./lib/types/messages\";\n\nimport { ATTRIBUT_CONTIENT_ARTICLES, SELECTEUR_BOUTON_PANIER } from \"./constantes/dom.ts\";\nimport { NOM_CANAL_BOUTON_PANIER } from \"./constantes/messages.ts\";\nimport { recupereElementOuLeve } from \"./lib/dom.ts\";\nimport { valideMessageMajPanier } from \"./lib/messages.ts\";\nimport { recupereElementDocumentEither } from \"./lib/utils.ts\";\n\nconst initialiseBoutonPanier = (): void => {\n /** Le « Bouton » vers le Panier dont le texte est un indicateur du nombre de Produits dedans. */\n const BOUTON_PANIER: HTMLAnchorElement = pipe(\n recupereElementDocumentEither<HTMLAnchorElement>(SELECTEUR_BOUTON_PANIER),\n recupereElementOuLeve,\n );\n const CANAL_BOUTON_PANIER: BroadcastChannel = new BroadcastChannel(NOM_CANAL_BOUTON_PANIER);\n\n CANAL_BOUTON_PANIER.onmessage = (evenementMessage: MessageEvent<unknown>): void => {\n valideMessageMajPanier(evenementMessage)\n // Met à jour le Bouton du Panier\n .ifRight((message: MiseAJourPanierMessage) => {\n BOUTON_PANIER.textContent = `cart (${String(message.donnees)})`;\n BOUTON_PANIER.setAttribute(ATTRIBUT_CONTIENT_ARTICLES, String(message.donnees > 0));\n });\n };\n};\n\ndocument.addEventListener(\"DOMContentLoaded\", () => {\n initialiseBoutonPanier();\n});\n"],"names":["initialiseBoutonPanier","BOUTON_PANIER","pipe","recupereElementDocumentEither","SELECTEUR_BOUTON_PANIER","recupereElementOuLeve","CANAL_BOUTON_PANIER","NOM_CANAL_BOUTON_PANIER","evenementMessage","valideMessageMajPanier","message","ATTRIBUT_CONTIENT_ARTICLES"],"mappings":"0VAcA,MAAMA,EAAyB,IAAY,CAEzC,MAAMC,EAAmCC,EACvCC,EAAiDC,CAAuB,EACxEC,CAAA,EAEIC,EAAwC,IAAI,iBAAiBC,CAAuB,EAEtED,EAAA,UAAaE,GAAkD,CACjFC,EAAuBD,CAAgB,EAEpC,QAASE,GAAoC,CAC5CT,EAAc,YAAc,SAAS,OAAOS,EAAQ,OAAO,CAAC,IAC5DT,EAAc,aAAaU,EAA4B,OAAOD,EAAQ,QAAU,CAAC,CAAC,CAAA,CACnF,CAAA,CAEP,EAEA,SAAS,iBAAiB,mBAAoB,IAAM,CAC3BV,GACzB,CAAC"} {"version":3,"file":"scripts-bouton-panier.js","sources":["../../src/scripts/scripts-bouton-panier.ts"],"sourcesContent":["/**\n * Scripts pour la mise à jour trans-fenêtres/trans-onglets du Bouton du Panier.\n */\n\nimport { pipe } from \"remeda\";\n\nimport type { MiseAJourPanierMessage } from \"./lib/types/messages\";\n\nimport { ATTRIBUT_CONTIENT_ARTICLES, SELECTEUR_BOUTON_PANIER } from \"./constantes/dom.ts\";\nimport { NOM_CANAL_BOUTON_PANIER } from \"./constantes/messages.ts\";\nimport { recupereElementOuLeve } from \"./lib/dom.ts\";\nimport { valideMessageMajPanier } from \"./lib/messages.ts\";\nimport { recupereElementDocumentEither } from \"./lib/utils.ts\";\n\nconsole.debug(\"mdr\");\n\nconst initialiseBoutonPanier = (): void => {\n /** Le « Bouton » vers le Panier dont le texte est un indicateur du nombre de Produits dedans. */\n const BOUTON_PANIER: HTMLAnchorElement = pipe(\n recupereElementDocumentEither<HTMLAnchorElement>(SELECTEUR_BOUTON_PANIER),\n recupereElementOuLeve,\n );\n const CANAL_BOUTON_PANIER: BroadcastChannel = new BroadcastChannel(NOM_CANAL_BOUTON_PANIER);\n\n CANAL_BOUTON_PANIER.onmessage = (evenementMessage: MessageEvent<unknown>): void => {\n valideMessageMajPanier(evenementMessage)\n // Met à jour le Bouton du Panier\n .ifRight((message: MiseAJourPanierMessage) => {\n BOUTON_PANIER.textContent = `cart (${String(message.donnees)})`;\n BOUTON_PANIER.setAttribute(ATTRIBUT_CONTIENT_ARTICLES, String(message.donnees > 0));\n });\n };\n};\n\ndocument.addEventListener(\"DOMContentLoaded\", () => {\n initialiseBoutonPanier();\n});\n"],"names":["x","SELECTEUR_BOUTON_PANIER","ATTRIBUT_CONTIENT_ARTICLES","NOM_CANAL_BOUTON_PANIER","recupereElementOuLeve","valideMessageMajPanier","recupereElementDocumentEither","initialiseBoutonPanier","BOUTON_PANIER","pipe","CANAL_BOUTON_PANIER","evenementMessage","message"],"mappings":"AAcA,OAAA,KAAAA,MAAA,+BAAA,OAAA,KAAAC,EAAA,KAAAC,MAAA,WAAA,OAAA,KAAAC,MAAA,iBAAA,OAAA,KAAAC,MAAA,YAAA,OAAA,KAAAC,MAAA,gBAAA,OAAA,KAAAC,MAAA,aAAA,MAAA,eAAA,MAAA,wBAAA,MAAA,uBAAA,MAAA,sBAAA,MAAA,iBAAA,QAAQ,MAAM,KAAK,EAEnB,MAAMC,EAAyB,IAAY,CAEzC,MAAMC,EAAmCC,EACvCH,EAAiDL,CAAuB,EACxEG,CAAA,EAEIM,EAAwC,IAAI,iBAAiBP,CAAuB,EAEtEO,EAAA,UAAaC,GAAkD,CACjFN,EAAuBM,CAAgB,EAEpC,QAASC,GAAoC,CAC5CJ,EAAc,YAAc,SAAS,OAAOI,EAAQ,OAAO,CAAC,IAC5DJ,EAAc,aAAaN,EAA4B,OAAOU,EAAQ,QAAU,CAAC,CAAC,CAAA,CACnF,CAAA,CAEP,EAEA,SAAS,iBAAiB,mBAAoB,IAAM,CAC3BL,GACzB,CAAC"}

View file

@ -1,2 +1,2 @@
import{r as _,p as R,z as u,N as E}from"./index.Dxgx1GXj.js";import{x as t}from"./chunk-7BKSRZNG.F4GWJRq9.js";import{p as m}from"./index.C9ScFdVV.js";import{R as l}from"./api2.js";import{a as T,b as C,c as f,d as I,A as S}from"./dom.js";import{N,T as P}from"./messages3.js";import{a as d,r as O,b as h}from"./dom2.js";import{r as c,D as L,l as v,a as U,b as g,c as B,E as b,d as M}from"./erreurs.js";import{e as w,a as y}from"./gardes.js";import{v as D}from"./messages.js";import{p as W}from"./reseau.js";import{W as k}from"./cart-remove-item.js";import{W as j}from"./cart.js";import{i}from"./erreurs2.js";import{a as x,r as z}from"./utils.js";import{M as G,E as J}from"./Either.DDEPhGsy.js";import"./exports.dP04ITJc.js";import"./messages2.js";const X=_etats,q=t(x(T),d),F=t(z(C),O),Y=()=>{q.forEach(r=>{const o=G.fromNullable(r.getAttribute(f));h(r)(I).ifLeft(()=>t(new L(`L'entrée « ${o.orDefault("CLE_PANIER_INEXISTANTE")} » n'a pas de Bouton de suppression.`),c)).ifRight(s=>{s.addEventListener("click",()=>{const p=o.ifNothing(()=>{r.remove()}).orDefault("CLE_PANIER_INEXISTANTE");s.textContent="C= C= C= C= C=┌(;・ω・)┘",J.encase(()=>m(k,{key:p})).map(A=>{W({corps:JSON.stringify(A),nonce:X.nonce,route:l}).then(async e=>{w(e)&&v("500 Server Error"),t(await e.json(),n=>u(n).with({body:E.select(),status:400},i,U).with({body:E.select(),status:401},i,g).with({body:E.select(),status:404},i,B).with(E._,a=>m(j,a)).otherwise(a=>t(a,b,M)),R("items_count"),_(n=>{new BroadcastChannel(N).postMessage({donnees:n,type:P.MiseAJourPanier}),r.remove()}))}).catch(e=>{y(e)?(c(e),console.error(e)):console.error("e n'est pas une Erreur ?!",e)})})})})})},$=()=>{const r=new BroadcastChannel(N);r.onmessage=o=>{D(o).ifRight(s=>{F.setAttribute(S,String(s.donnees!==0))})}};document.addEventListener("DOMContentLoaded",()=>{Y(),$()}); import{r as u,p as C,z as l,N as E}from"./index.Dxgx1GXj.js";import{x as t}from"./chunk-7BKSRZNG.F4GWJRq9.js";import{p as c}from"./index.C9ScFdVV.js";import{R as f}from"./api2.js";import{a as I,b as S,c as d,d as P,e as L,f as O,A as U}from"./dom.js";import{N as T,T as h}from"./messages3.js";import{a as v,r as _,b as i}from"./dom2.js";import{r as m,D as A,l as B,a as g,b as M,c as b,E as w,d as y}from"./erreurs.js";import{e as D,a as W}from"./gardes.js";import{v as k}from"./messages.js";import{p as j}from"./reseau.js";import{W as X}from"./cart-remove-item.js";import{W as x}from"./cart.js";import{i as N}from"./erreurs2.js";import{a as z,r as G}from"./utils.js";import{M as J,E as Q}from"./Either.DDEPhGsy.js";import"./exports.BNibT8R5.js";import"./messages2.js";const $=_etats,q=t(z(I),v),F=t(G(S),_),H=()=>{q.forEach(e=>{const s=J.fromNullable(e.getAttribute(d));i(e)(P).ifLeft(()=>t(new A(`L'entrée « ${s.orDefault("CLE_PANIER_INEXISTANTE")} » n'a pas de Bouton de suppression.`),m)).ifRight(o=>{o.addEventListener("click",()=>{const p=s.ifNothing(()=>{e.remove()}).orDefault("CLE_PANIER_INEXISTANTE");o.textContent="C= C= C= C= C=┌(;・ω・)┘",Q.encase(()=>c(X,{key:p})).map(R=>{j({corps:JSON.stringify(R),nonce:$.nonce,route:f}).then(async r=>{D(r)&&B("500 Server Error"),t(await r.json(),n=>l(n).with({body:E.select(),status:400},N,g).with({body:E.select(),status:401},N,M).with({body:E.select(),status:404},N,b).with(E._,a=>c(x,a)).otherwise(a=>t(a,w,y)),C("items_count"),u(n=>{new BroadcastChannel(T).postMessage({donnees:n,type:h.MiseAJourPanier}),e.remove()}))}).catch(r=>{W(r)?(m(r),console.error(r)):console.error("e n'est pas une Erreur ?!",r)})})})}),i(e)(L).ifLeft(()=>t(new A(`L'entrée « ${s.orDefault("CLE_PANIER_INEXISTANTE")} » n'a pas de Bouton de soustraction.`),m)).ifRight(o=>{o.addEventListener("click",()=>{t(i(e)(O),_)})})})},Y=()=>{const e=new BroadcastChannel(T);e.onmessage=s=>{k(s).ifRight(o=>{F.setAttribute(U,String(o.donnees!==0))})}};document.addEventListener("DOMContentLoaded",()=>{H(),Y()});
//# sourceMappingURL=scripts-page-panier.js.map //# sourceMappingURL=scripts-page-panier.js.map

File diff suppressed because one or more lines are too long

View file

@ -1,2 +1,2 @@
import{r as A,p as C,z as O,N as n}from"./index.Dxgx1GXj.js";import{x as o}from"./chunk-7BKSRZNG.F4GWJRq9.js";import{p as f}from"./index.C9ScFdVV.js";import{b as I,c as L}from"./api2.js";import{S as U,e as R,f as g,g as h,h as v,i as u,j as T,k as p}from"./dom.js";import{N as b,T as P}from"./messages3.js";import{r as m,a as l}from"./dom2.js";import{l as w,a as y,b as B,c as D,E as M,d as J,r as j}from"./erreurs.js";import{b as x,e as W,a as G}from"./gardes.js";import{p as k}from"./cart-add-item.js";import{W as q}from"./cart.js";import{i as c}from"./erreurs2.js";import{r as d,a as N}from"./utils.js";import{M as z,E as H}from"./Either.DDEPhGsy.js";import"./exports.dP04ITJc.js";const V=_etats,F=a=>{a.forEach(e=>{e[0].setAttribute(u,"false"),e[1].setAttribute(T,"true")})};o(d(U),m);const s=o(d(R),m),i=o(d(g),m),Q=o(N(h),l),Y=o(N(v),l),K=()=>{const a=new Map;Q.forEach((e,t)=>{const r=e.getAttribute("id"),E=Y[t];if(!r)throw new Error("Le lien ne dispose pas d'ID !");if(!E)throw new Error("Le lien ne dispose pas de section correspondante !");a.set(r,[e,E]),e.addEventListener("click",_=>{_.preventDefault();const S=e.getAttribute(u)==="true";F(o(a.values(),Array.from)),!S&&(e.setAttribute(u,"true"),E.removeAttribute(T))})}),i.addEventListener("change",e=>{o(e.target,z.fromNullable,t=>t.filter(x),t=>t.map(r=>r.validity.valid),t=>t.ifJust(r=>s.toggleAttribute(p,!r)))}),s.addEventListener("click",e=>X())},X=()=>{s.textContent="Adding...",H.encase(()=>k({id:Number(i.value),quantity:1})).map(a=>{fetch(I,{body:JSON.stringify(a),credentials:"same-origin",headers:{Accept:"application/json","Content-Type":"application/json",[L]:V.nonce},method:"POST",mode:"same-origin",signal:AbortSignal.timeout(5e3)}).then(async e=>{W(e)&&w("500 Server Error"),o(await e.json(),t=>O(t).with({body:n.select(),status:400},c,y).with({body:n.select(),status:401},c,B).with({body:n.select(),status:404},c,D).with(n._,r=>f(q,r)).otherwise(r=>o(r,M,J)),A(t=>console.debug("Panier",t)),C("items_count"),A(t=>{s.textContent="Added to cart!",new BroadcastChannel(b).postMessage({donnees:t,type:P.MiseAJourPanier}),setTimeout(()=>{i.value=i.options.item(0)?.value??"--",s.toggleAttribute(p,!0),s.textContent="Add to cart"},3e3)}))}).catch(e=>{G(e)?(j(e),console.error(e)):console.error("e n'est pas une Erreur ?!",e),s.textContent="Add to cart"})})};document.addEventListener("DOMContentLoaded",()=>{K()}); import{r as u,p as C,z as f,N as n}from"./index.Dxgx1GXj.js";import{x as o}from"./chunk-7BKSRZNG.F4GWJRq9.js";import{p as O}from"./index.C9ScFdVV.js";import{b as I,c as L}from"./api2.js";import{g,h,i as U,j as v,k as m,l as d,m as A}from"./dom.js";import{N as R,T as b}from"./messages3.js";import{r as T,a as p}from"./dom2.js";import{l as P,a as w,b as y,c as B,E as D,d as M,r as J}from"./erreurs.js";import{b as j,e as x,a as W}from"./gardes.js";import{p as G}from"./cart-add-item.js";import{W as k}from"./cart.js";import{i as c}from"./erreurs2.js";import{r as l,a as N}from"./utils.js";import{M as q,E as z}from"./Either.DDEPhGsy.js";import"./exports.BNibT8R5.js";const H=_etats,V=a=>{a.forEach(e=>{e[0].setAttribute(m,"false"),e[1].setAttribute(d,"true")})},s=o(l(g),T),i=o(l(h),T),F=o(N(U),p),Q=o(N(v),p),Y=()=>{const a=new Map;F.forEach((e,t)=>{const r=e.getAttribute("id"),E=Q[t];if(!r)throw new Error("Le lien ne dispose pas d'ID !");if(!E)throw new Error("Le lien ne dispose pas de section correspondante !");a.set(r,[e,E]),e.addEventListener("click",_=>{_.preventDefault();const S=e.getAttribute(m)==="true";V(o(a.values(),Array.from)),!S&&(e.setAttribute(m,"true"),E.removeAttribute(d))})}),i.addEventListener("change",e=>{o(e.target,q.fromNullable,t=>t.filter(j),t=>t.map(r=>r.validity.valid),t=>t.ifJust(r=>s.toggleAttribute(A,!r)))}),s.addEventListener("click",e=>K())},K=()=>{s.textContent="Adding...",z.encase(()=>G({id:Number(i.value),quantity:1})).map(a=>{fetch(I,{body:JSON.stringify(a),credentials:"same-origin",headers:{Accept:"application/json","Content-Type":"application/json",[L]:H.nonce},method:"POST",mode:"same-origin",signal:AbortSignal.timeout(5e3)}).then(async e=>{x(e)&&P("500 Server Error"),o(await e.json(),t=>f(t).with({body:n.select(),status:400},c,w).with({body:n.select(),status:401},c,y).with({body:n.select(),status:404},c,B).with(n._,r=>O(k,r)).otherwise(r=>o(r,D,M)),u(t=>console.debug("Panier",t)),C("items_count"),u(t=>{s.textContent="Added to cart!",new BroadcastChannel(R).postMessage({donnees:t,type:b.MiseAJourPanier}),setTimeout(()=>{i.value=i.options.item(0)?.value??"--",s.toggleAttribute(A,!0),s.textContent="Add to cart"},3e3)}))}).catch(e=>{W(e)?(J(e),console.error(e)):console.error("e n'est pas une Erreur ?!",e),s.textContent="Add to cart"})})};document.addEventListener("DOMContentLoaded",()=>{Y()});
//# sourceMappingURL=scripts-page-produit.js.map //# sourceMappingURL=scripts-page-produit.js.map

File diff suppressed because one or more lines are too long

View file

@ -1,2 +1,2 @@
import{c as e,b as r}from"./dom2.js";import"./chunk-7BKSRZNG.F4GWJRq9.js";import"./erreurs.js";import"./exports.dP04ITJc.js";import"./Either.DDEPhGsy.js";const p=e(document),u=r(document);export{p as a,u as r}; import{c as e,b as r}from"./dom2.js";import"./chunk-7BKSRZNG.F4GWJRq9.js";import"./erreurs.js";import"./exports.BNibT8R5.js";import"./Either.DDEPhGsy.js";const p=e(document),u=r(document);export{p as a,u as r};
//# sourceMappingURL=utils.js.map //# sourceMappingURL=utils.js.map

View file

@ -4,6 +4,7 @@ declare(strict_types=1);
use Carbon_Fields\Carbon_Fields; use Carbon_Fields\Carbon_Fields;
use HaikuAtelier\StarterSite; use HaikuAtelier\StarterSite;
use Idleberg\WordPress\ViteAssets\Assets;
use Timber\Timber; use Timber\Timber;
// Récupère les dépendances Composer // Récupère les dépendances Composer
@ -156,3 +157,12 @@ function charge_carbon_fields(): void {
Carbon_Fields::boot(); Carbon_Fields::boot();
} }
add_action("after_setup_theme", "charge_carbon_fields"); add_action("after_setup_theme", "charge_carbon_fields");
/**
* Vite
*/
$baseUrl = get_stylesheet_directory_uri();
$manifest = get_template_directory() . "/assets/js/.vite/manifest.json";
$viteAssets = new Assets(manifestFile: $manifest, basePath: $baseUrl, algorithm: "sha512");
// print_r($viteAssets);
// $viteAssets->inject($entryPoint);

View file

@ -31,6 +31,7 @@ foreach (WC()->cart->get_cart() as $cart_item_key => $cart_item) {
), ),
"prix" => $cart_item["data"]?->get_price(), "prix" => $cart_item["data"]?->get_price(),
"quantite" => $cart_item["quantity"], "quantite" => $cart_item["quantity"],
"url" => $cart_item["data"]?->get_permalink(),
"titre" => $cart_item["data"]?->get_title(), "titre" => $cart_item["data"]?->get_title(),
]; ];
} }

View file

@ -16,5 +16,6 @@ button {
&[disabled] { &[disabled] {
cursor: not-allowed; cursor: not-allowed;
background: repeating-conic-gradient(var(--couleur-noir) 0% 25%, transparent 0% 100%) 1px 0.5px / 2px 2px;
} }
} }

View file

@ -17,3 +17,6 @@ export const SELECTEUR_SECTIONS_CONTENUS = "section[role='tabpanel']";
// Panier // Panier
export const SELECTEUR_ENTREES_PANIER = "article"; export const SELECTEUR_ENTREES_PANIER = "article";
export const SELECTEUR_BOUTON_SUPPRESSION_PANIER = "button.detail-produit__actions__suppression"; export const SELECTEUR_BOUTON_SUPPRESSION_PANIER = "button.detail-produit__actions__suppression";
export const SELECTEUR_BOUTON_SOUSTRACTION_QUANTITE = "button.detail-produit__actions__soustraction";
export const SELECTEUR_BOUTON_ADDITION_QUANTITE = "button.detail-produit__actions__addition";
export const SELECTEUR_CHAMP_QUANTITE = "input";

View file

@ -10,12 +10,19 @@ import { ROUTE_API_RETIRE_ARTICLE_PANIER } from "./constantes/api.ts";
import { import {
ATTRIBUT_CLE_PANIER, ATTRIBUT_CLE_PANIER,
ATTRIBUT_CONTIENT_ARTICLES, ATTRIBUT_CONTIENT_ARTICLES,
SELECTEUR_BOUTON_SOUSTRACTION_QUANTITE,
SELECTEUR_BOUTON_SUPPRESSION_PANIER, SELECTEUR_BOUTON_SUPPRESSION_PANIER,
SELECTEUR_CHAMP_QUANTITE,
SELECTEUR_CONTENEUR_PANIER, SELECTEUR_CONTENEUR_PANIER,
SELECTEUR_ENTREES_PANIER, SELECTEUR_ENTREES_PANIER,
} from "./constantes/dom.ts"; } from "./constantes/dom.ts";
import { NOM_CANAL_BOUTON_PANIER, TYPES_MESSAGES } from "./constantes/messages.ts"; import { NOM_CANAL_BOUTON_PANIER, TYPES_MESSAGES } from "./constantes/messages.ts";
import { recupereElementAvecSelecteur, recupereElementOuLeve, recupereElementsOuLeve } from "./lib/dom.ts"; import {
recupereElementAvecSelecteur,
recupereElementOuLeve,
recupereElementsAvecSelecteur,
recupereElementsOuLeve,
} from "./lib/dom.ts";
import { import {
DOMElementAbsentError, DOMElementAbsentError,
ErreurInconnue, ErreurInconnue,
@ -154,10 +161,30 @@ const initialiseScriptsPagePanier = (): void => {
); );
}); });
}); });
recupereElementAvecSelecteur(entree)<HTMLButtonElement>(SELECTEUR_BOUTON_SOUSTRACTION_QUANTITE)
// Remplace la SyntaxError par une Erreur plus détaillée et parlante
.ifLeft(() =>
pipe(
new DOMElementAbsentError(
`L'entrée « ${maybeClePanier.orDefault("CLE_PANIER_INEXISTANTE")} » n'a pas de Bouton de soustraction.`,
),
reporteErreur,
)
)
.ifRight((bouton: HTMLButtonElement) => {
bouton.addEventListener("click", () => {
const champQuantite: HTMLInputElement = pipe(
recupereElementAvecSelecteur(entree)<HTMLInputElement>(SELECTEUR_CHAMP_QUANTITE),
recupereElementOuLeve,
);
const valeur: number = champQuantite.valueAsNumber;
});
});
}); });
}; };
const initialisePagePanier = (): void => { const initialiseMajConteneurPanier = (): void => {
const CANAL_BOUTON_PANIER: BroadcastChannel = new BroadcastChannel(NOM_CANAL_BOUTON_PANIER); const CANAL_BOUTON_PANIER: BroadcastChannel = new BroadcastChannel(NOM_CANAL_BOUTON_PANIER);
CANAL_BOUTON_PANIER.onmessage = (evenementMessage: MessageEvent<unknown>): void => { CANAL_BOUTON_PANIER.onmessage = (evenementMessage: MessageEvent<unknown>): void => {
valideMessageMajPanier(evenementMessage) valideMessageMajPanier(evenementMessage)
@ -170,5 +197,5 @@ const initialisePagePanier = (): void => {
document.addEventListener("DOMContentLoaded", () => { document.addEventListener("DOMContentLoaded", () => {
initialiseScriptsPagePanier(); initialiseScriptsPagePanier();
initialisePagePanier(); initialiseMajConteneurPanier();
}); });

View file

@ -62,11 +62,6 @@ const deplieToutesSections = (ensembleLiensContenus: Array<EnsembleLienContenu>)
}; };
// Éléments d'intérêt // Éléments d'intérêt
/** Le « Bouton » vers le Panier dont le texte est un indicateur du nombre de Produits dedans. */
const BOUTON_PANIER: HTMLAnchorElement = pipe(
recupereElementDocumentEither<HTMLAnchorElement>(SELECTEUR_BOUTON_PANIER),
recupereElementOuLeve,
);
/** Le Bouton permettant l'ajout d'un Produit dans le Panier. */ /** Le Bouton permettant l'ajout d'un Produit dans le Panier. */
const BOUTON_AJOUT_PANIER: HTMLButtonElement = pipe( const BOUTON_AJOUT_PANIER: HTMLButtonElement = pipe(
recupereElementDocumentEither<HTMLButtonElement>(SELECTEUR_BOUTON_AJOUT_PANIER), recupereElementDocumentEither<HTMLButtonElement>(SELECTEUR_BOUTON_AJOUT_PANIER),

View file

@ -27,11 +27,14 @@
{% for produit in produits_panier %} {% for produit in produits_panier %}
<article class="panneau__grille-produits__produit" data-cle-panier="{{ produit.cle }}"> <article class="panneau__grille-produits__produit" data-cle-panier="{{ produit.cle }}">
<div class="panneau__grille-produits__produit__illustratif"> <div class="panneau__grille-produits__produit__illustratif">
{{ produit.image }} <a href="{{ produit.url }}">{{ produit.image }}</a>
</div> </div>
<div class="panneau__grille-produits__produit__textuel detail-produit"> <div class="panneau__grille-produits__produit__textuel detail-produit">
<h3 class="detail-produit__nom-prix">{{ produit.titre }}. <span>{{ produit.prix }} €</span></h3> <h3 class="detail-produit__nom-prix">
<a href="{{ produit.url }}">{{ produit.titre }}.</a>
<span>{{ produit.prix }} €</span>
</h3>
<p class="detail-produit__description"> <p class="detail-produit__description">
{# Affiche tous les attributs relevants pour la variation choisie #} {# Affiche tous les attributs relevants pour la variation choisie #}
{% for attribut in produit.attributs %} {% for attribut in produit.attributs %}
@ -42,9 +45,15 @@
</p> </p>
<div class="detail-produit__actions"> <div class="detail-produit__actions">
<button type="button">-</button> <button
<input min="0" type="number" value="{{ produit.quantite }}" /> class="detail-produit__actions__soustraction"
<button type="button">+</button> {{ produit.quantite > 1 ? "" : "disabled" }}
type="button"
>
-
</button>
<input min="1" type="number" value="{{ produit.quantite }}" />
<button class="detail-produit__actions__addition" type="button">+</button>
<button class="detail-produit__actions__suppression" type="button">Remove</button> <button class="detail-produit__actions__suppression" type="button">Remove</button>
</div> </div>