2024-10-12
|
|
@ -3,7 +3,10 @@
|
||||||
<head>
|
<head>
|
||||||
<!-- #ddev-generated -->
|
<!-- #ddev-generated -->
|
||||||
<meta charset="UTF-8" />
|
<meta charset="UTF-8" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
<meta
|
||||||
|
name="viewport"
|
||||||
|
content="width=device-width, initial-scale=1.0"
|
||||||
|
/>
|
||||||
<title>vite not running</title>
|
<title>vite not running</title>
|
||||||
<style>
|
<style>
|
||||||
html, body {
|
html, body {
|
||||||
|
|
|
||||||
10
.gitignore
vendored
|
|
@ -31,3 +31,13 @@ node_modules
|
||||||
# Cache
|
# Cache
|
||||||
.cache
|
.cache
|
||||||
cache
|
cache
|
||||||
|
|
||||||
|
# Devenv
|
||||||
|
.devenv*
|
||||||
|
devenv.local.nix
|
||||||
|
|
||||||
|
# direnv
|
||||||
|
.direnv
|
||||||
|
|
||||||
|
# pre-commit
|
||||||
|
.pre-commit-config.yaml
|
||||||
|
|
|
||||||
7
.vscode/settings.json
vendored
|
|
@ -4,6 +4,7 @@
|
||||||
"backorders",
|
"backorders",
|
||||||
"controle",
|
"controle",
|
||||||
"controles",
|
"controles",
|
||||||
|
"coordonnee",
|
||||||
"Crell",
|
"Crell",
|
||||||
"defini",
|
"defini",
|
||||||
"deplie",
|
"deplie",
|
||||||
|
|
@ -21,9 +22,11 @@
|
||||||
"GLITCHTIP",
|
"GLITCHTIP",
|
||||||
"haikuatelier",
|
"haikuatelier",
|
||||||
"leve",
|
"leve",
|
||||||
|
"mobily",
|
||||||
"paypal",
|
"paypal",
|
||||||
"phpstan",
|
"phpstan",
|
||||||
"Proprietes",
|
"Proprietes",
|
||||||
|
"rafraichissement",
|
||||||
"rapprochee",
|
"rapprochee",
|
||||||
"reponse",
|
"reponse",
|
||||||
"requete",
|
"requete",
|
||||||
|
|
@ -33,11 +36,13 @@
|
||||||
"Selectionne",
|
"Selectionne",
|
||||||
"Simplifiee",
|
"Simplifiee",
|
||||||
"souleve",
|
"souleve",
|
||||||
|
"specifiques",
|
||||||
"tabpanel",
|
"tabpanel",
|
||||||
"tete",
|
"tete",
|
||||||
"tseslint",
|
"tseslint",
|
||||||
"Vali",
|
"Vali",
|
||||||
"validite"
|
"validite",
|
||||||
|
"Visibilite"
|
||||||
],
|
],
|
||||||
"djlint.pythonPath": "/home/gcch/.local/share/pipxu/venvs/8/bin/python",
|
"djlint.pythonPath": "/home/gcch/.local/share/pipxu/venvs/8/bin/python",
|
||||||
"djlint.useVenv": false,
|
"djlint.useVenv": false,
|
||||||
|
|
|
||||||
18
composer.lock
generated
|
|
@ -2349,15 +2349,15 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "wpackagist-plugin/wp-openapi",
|
"name": "wpackagist-plugin/wp-openapi",
|
||||||
"version": "1.0.13",
|
"version": "1.0.15",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "svn",
|
"type": "svn",
|
||||||
"url": "https://plugins.svn.wordpress.org/wp-openapi/",
|
"url": "https://plugins.svn.wordpress.org/wp-openapi/",
|
||||||
"reference": "tags/1.0.13"
|
"reference": "tags/1.0.15"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://downloads.wordpress.org/plugin/wp-openapi.1.0.13.zip"
|
"url": "https://downloads.wordpress.org/plugin/wp-openapi.1.0.15.zip"
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"composer/installers": "^1.0 || ^2.0"
|
"composer/installers": "^1.0 || ^2.0"
|
||||||
|
|
@ -3513,12 +3513,12 @@
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/Roave/SecurityAdvisories.git",
|
"url": "https://github.com/Roave/SecurityAdvisories.git",
|
||||||
"reference": "6fc16d8c05a872bf86eb0a1684d89b9bcb93d636"
|
"reference": "c3c55a0f6643119fa8699577cc83ca6256d98ab5"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/6fc16d8c05a872bf86eb0a1684d89b9bcb93d636",
|
"url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/c3c55a0f6643119fa8699577cc83ca6256d98ab5",
|
||||||
"reference": "6fc16d8c05a872bf86eb0a1684d89b9bcb93d636",
|
"reference": "c3c55a0f6643119fa8699577cc83ca6256d98ab5",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"conflict": {
|
"conflict": {
|
||||||
|
|
@ -3855,7 +3855,7 @@
|
||||||
"lms/routes": "<2.1.1",
|
"lms/routes": "<2.1.1",
|
||||||
"localizationteam/l10nmgr": "<7.4|>=8,<8.7|>=9,<9.2",
|
"localizationteam/l10nmgr": "<7.4|>=8,<8.7|>=9,<9.2",
|
||||||
"luyadev/yii-helpers": "<1.2.1",
|
"luyadev/yii-helpers": "<1.2.1",
|
||||||
"magento/community-edition": "<2.4.5|==2.4.5|>=2.4.5.0-patch1,<2.4.5.0-patch9|==2.4.6|>=2.4.6.0-patch1,<2.4.6.0-patch7|==2.4.7|>=2.4.7.0-patch1,<2.4.7.0-patch2",
|
"magento/community-edition": "<2.4.5|==2.4.5|>=2.4.5.0-patch1,<2.4.5.0-patch10|==2.4.6|>=2.4.6.0-patch1,<2.4.6.0-patch8|>=2.4.7.0-beta1,<2.4.7.0-patch3",
|
||||||
"magento/core": "<=1.9.4.5",
|
"magento/core": "<=1.9.4.5",
|
||||||
"magento/magento1ce": "<1.9.4.3-dev",
|
"magento/magento1ce": "<1.9.4.3-dev",
|
||||||
"magento/magento1ee": ">=1,<1.14.4.3-dev",
|
"magento/magento1ee": ">=1,<1.14.4.3-dev",
|
||||||
|
|
@ -4088,7 +4088,7 @@
|
||||||
"slim/slim": "<2.6",
|
"slim/slim": "<2.6",
|
||||||
"slub/slub-events": "<3.0.3",
|
"slub/slub-events": "<3.0.3",
|
||||||
"smarty/smarty": "<4.5.3|>=5,<5.1.1",
|
"smarty/smarty": "<4.5.3|>=5,<5.1.1",
|
||||||
"snipe/snipe-it": "<6.4.2",
|
"snipe/snipe-it": "<7.0.10",
|
||||||
"socalnick/scn-social-auth": "<1.15.2",
|
"socalnick/scn-social-auth": "<1.15.2",
|
||||||
"socialiteproviders/steam": "<1.1",
|
"socialiteproviders/steam": "<1.1",
|
||||||
"spatie/browsershot": "<3.57.4",
|
"spatie/browsershot": "<3.57.4",
|
||||||
|
|
@ -4337,7 +4337,7 @@
|
||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2024-10-10T00:18:21+00:00"
|
"time": "2024-10-11T18:06:00+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "sebastian/diff",
|
"name": "sebastian/diff",
|
||||||
|
|
|
||||||
|
|
@ -59,14 +59,14 @@
|
||||||
"component.selfClosing": true,
|
"component.selfClosing": true,
|
||||||
"doctypeKeywordCase": "lower",
|
"doctypeKeywordCase": "lower",
|
||||||
"formatComments": true,
|
"formatComments": true,
|
||||||
"html.normal.selfClosing": true,
|
"html.normal.selfClosing": false,
|
||||||
"html.scriptIndent": false,
|
"html.scriptIndent": false,
|
||||||
"html.styleIndent": false,
|
"html.styleIndent": false,
|
||||||
"html.void.selfClosing": true,
|
"html.void.selfClosing": true,
|
||||||
"indentWidth": 2,
|
"indentWidth": 2,
|
||||||
"lineBreak": "lf",
|
"lineBreak": "lf",
|
||||||
"maxAttrsPerLine": 3,
|
"maxAttrsPerLine": 1,
|
||||||
"preferAttrsSingleLine": false,
|
"preferAttrsSingleLine": true,
|
||||||
"printWidth": 120,
|
"printWidth": 120,
|
||||||
"quotes": "double",
|
"quotes": "double",
|
||||||
"scriptIndent": true,
|
"scriptIndent": true,
|
||||||
|
|
@ -118,6 +118,6 @@
|
||||||
"quotes": "preferDouble",
|
"quotes": "preferDouble",
|
||||||
"trailingComma": true,
|
"trailingComma": true,
|
||||||
"trimTrailingWhitespaces": true,
|
"trimTrailingWhitespaces": true,
|
||||||
"trimTrailingZero": true
|
"trimTrailingZero": false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
5
justfile
|
|
@ -48,6 +48,11 @@ build-css:
|
||||||
--sourcemap \
|
--sourcemap \
|
||||||
--output-file "web/app/themes/haiku-atelier-2024/assets/css/pages/page-panier.min.css" \
|
--output-file "web/app/themes/haiku-atelier-2024/assets/css/pages/page-panier.min.css" \
|
||||||
-- "web/app/themes/haiku-atelier-2024/assets/css/pages/page-panier.css"
|
-- "web/app/themes/haiku-atelier-2024/assets/css/pages/page-panier.css"
|
||||||
|
pnpm lightningcss \
|
||||||
|
--bundle \
|
||||||
|
--sourcemap \
|
||||||
|
--output-file "web/app/themes/haiku-atelier-2024/assets/css/pages/page-accueil.min.css" \
|
||||||
|
-- "web/app/themes/haiku-atelier-2024/assets/css/pages/page-accueil.css"
|
||||||
|
|
||||||
# Compile le CSS à chaque changement de fichier
|
# Compile le CSS à chaque changement de fichier
|
||||||
watch-css:
|
watch-css:
|
||||||
|
|
|
||||||
12
package.json
|
|
@ -10,19 +10,19 @@
|
||||||
"keywords": [],
|
"keywords": [],
|
||||||
"scripts": { "test": "echo \"Error: no test specified\" && exit 1" },
|
"scripts": { "test": "echo \"Error: no test specified\" && exit 1" },
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@sentry/browser": "8.34.0-internal.0",
|
"@mobily/ts-belt": "^3.13.1",
|
||||||
|
"@sentry/browser": "8.34.0",
|
||||||
"purify-ts": "^2.1.0",
|
"purify-ts": "^2.1.0",
|
||||||
"remeda": "^2.15.0",
|
"remeda": "^2.15.0",
|
||||||
"ts-pattern": "^5.4.0",
|
"ts-pattern": "^5.4.0",
|
||||||
"valibot": "1.0.0-beta.0",
|
"valibot": "1.0.0-beta.0"
|
||||||
"wretch": "^2.10.0"
|
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@biomejs/biome": "^1.9.3",
|
"@biomejs/biome": "^1.9.3",
|
||||||
"@eslint/js": "^9.12.0",
|
"@eslint/js": "^9.12.0",
|
||||||
"@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.34.0-internal.0",
|
"@sentry/types": "8.34.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",
|
||||||
|
|
@ -38,8 +38,8 @@
|
||||||
"prettier": "^3.3.3",
|
"prettier": "^3.3.3",
|
||||||
"prettier-plugin-pkg": "^0.18.1",
|
"prettier-plugin-pkg": "^0.18.1",
|
||||||
"prettier-plugin-sh": "^0.14.0",
|
"prettier-plugin-sh": "^0.14.0",
|
||||||
"sass": "^1.79.4",
|
"sass": "^1.79.5",
|
||||||
"stylelint": "^16.9.0",
|
"stylelint": "^16.10.0",
|
||||||
"stylelint-config-clean-order": "^6.1.0",
|
"stylelint-config-clean-order": "^6.1.0",
|
||||||
"stylelint-config-sass-guidelines": "^12.1.0",
|
"stylelint-config-sass-guidelines": "^12.1.0",
|
||||||
"stylelint-config-standard-scss": "^13.1.0",
|
"stylelint-config-standard-scss": "^13.1.0",
|
||||||
|
|
|
||||||
4265
pnpm-lock.yaml
generated
|
|
@ -106,6 +106,7 @@
|
||||||
/* Dimensions */
|
/* Dimensions */
|
||||||
--en-tete-hauteur: 60px;
|
--en-tete-hauteur: 60px;
|
||||||
--menu-categories-produits-hauteur: 54.39px;
|
--menu-categories-produits-hauteur: 54.39px;
|
||||||
|
--pied-de-page-hauteur: calc(var(--espace-m) * 2 + 3lh);
|
||||||
/* Espacements */
|
/* Espacements */
|
||||||
--espace-xs: 0.25rem;
|
--espace-xs: 0.25rem;
|
||||||
--espace-s: 0.5rem;
|
--espace-s: 0.5rem;
|
||||||
|
|
@ -159,7 +160,7 @@ button, input, select, textarea {
|
||||||
background: var(--couleur-jaune);
|
background: var(--couleur-jaune);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Désaffiche tout élément avec l'attribut hidden */
|
/* Cache tout élément avec l'attribut hidden */
|
||||||
[hidden] {
|
[hidden] {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
@ -394,6 +395,7 @@ ul.avec-puce-cercle a {
|
||||||
padding: var(--en-tete-marges-internes-bloc) var(--en-tete-marges-internes-ligne);
|
padding: var(--en-tete-marges-internes-bloc) var(--en-tete-marges-internes-ligne);
|
||||||
font-size: 1.1rem;
|
font-size: 1.1rem;
|
||||||
background: var(--couleur-gris);
|
background: var(--couleur-gris);
|
||||||
|
border-bottom: 1px solid var(--couleur-noir);
|
||||||
/* TODO: Déplacer au sein d'un Composant ? */
|
/* TODO: Déplacer au sein d'un Composant ? */
|
||||||
}
|
}
|
||||||
#en-tete .logo {
|
#en-tete .logo {
|
||||||
|
|
@ -658,7 +660,7 @@ ul.avec-puce-cercle a {
|
||||||
.grille-produits__aucun-produit {
|
.grille-produits__aucun-produit {
|
||||||
grid-column: span 3;
|
grid-column: span 3;
|
||||||
align-content: center;
|
align-content: center;
|
||||||
min-height: calc(100vh - var(--menu-categories-produits-hauteur) - var(--en-tete-hauteur) - 105px);
|
min-height: calc(100vh - var(--menu-categories-produits-hauteur) - var(--en-tete-hauteur) - var(--pied-de-page-hauteur));
|
||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
.grille-produits__aucun-produit p + p {
|
.grille-produits__aucun-produit p + p {
|
||||||
|
|
@ -958,9 +960,6 @@ ul.avec-puce-cercle a {
|
||||||
letter-spacing: -0.5px;
|
letter-spacing: -0.5px;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* *
|
|
||||||
* Le pied de page du site.
|
|
||||||
*/
|
|
||||||
#pied-de-page {
|
#pied-de-page {
|
||||||
/* Marges */
|
/* Marges */
|
||||||
--pied-de-page-marges-internes-bloc: var(--espace-m);
|
--pied-de-page-marges-internes-bloc: var(--espace-m);
|
||||||
|
|
@ -969,8 +968,8 @@ ul.avec-puce-cercle a {
|
||||||
grid-template-columns: 1fr 1fr;
|
grid-template-columns: 1fr 1fr;
|
||||||
place-items: center;
|
place-items: center;
|
||||||
max-width: 100vw;
|
max-width: 100vw;
|
||||||
|
height: var(--pied-de-page-hauteur);
|
||||||
padding: var(--pied-de-page-marges-internes-bloc) var(--pied-de-page-marges-internes-ligne);
|
padding: var(--pied-de-page-marges-internes-bloc) var(--pied-de-page-marges-internes-ligne);
|
||||||
line-height: var(--hauteur-ligne-classique);
|
|
||||||
background: var(--couleur-jaune);
|
background: var(--couleur-jaune);
|
||||||
border-top: 1px solid var(--couleur-noir);
|
border-top: 1px solid var(--couleur-noir);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -112,6 +112,7 @@
|
||||||
--espacement-inter-lettres-etendu-xl: 2px;
|
--espacement-inter-lettres-etendu-xl: 2px;
|
||||||
--en-tete-hauteur: 60px;
|
--en-tete-hauteur: 60px;
|
||||||
--menu-categories-produits-hauteur: 54.39px;
|
--menu-categories-produits-hauteur: 54.39px;
|
||||||
|
--pied-de-page-hauteur: calc(var(--espace-m) * 2 + 3lh);
|
||||||
--espace-xs: .25rem;
|
--espace-xs: .25rem;
|
||||||
--espace-s: .5rem;
|
--espace-s: .5rem;
|
||||||
--espace-m: 1rem;
|
--espace-m: 1rem;
|
||||||
|
|
@ -335,6 +336,7 @@ ul.avec-puce-cercle a {
|
||||||
height: var(--en-tete-hauteur);
|
height: var(--en-tete-hauteur);
|
||||||
padding: var(--en-tete-marges-internes-bloc) var(--en-tete-marges-internes-ligne);
|
padding: var(--en-tete-marges-internes-bloc) var(--en-tete-marges-internes-ligne);
|
||||||
background: var(--couleur-gris);
|
background: var(--couleur-gris);
|
||||||
|
border-bottom: 1px solid var(--couleur-noir);
|
||||||
flex-flow: row;
|
flex-flow: row;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
place-items: center;
|
place-items: center;
|
||||||
|
|
@ -580,7 +582,7 @@ ul.avec-puce-cercle a {
|
||||||
}
|
}
|
||||||
|
|
||||||
.grille-produits__aucun-produit {
|
.grille-produits__aucun-produit {
|
||||||
min-height: calc(100vh - var(--menu-categories-produits-hauteur) - var(--en-tete-hauteur) - 105px);
|
min-height: calc(100vh - var(--menu-categories-produits-hauteur) - var(--en-tete-hauteur) - var(--pied-de-page-hauteur));
|
||||||
text-align: center;
|
text-align: center;
|
||||||
grid-column: span 3;
|
grid-column: span 3;
|
||||||
align-content: center;
|
align-content: center;
|
||||||
|
|
@ -902,8 +904,8 @@ ul.avec-puce-cercle a {
|
||||||
#pied-de-page {
|
#pied-de-page {
|
||||||
--pied-de-page-marges-internes-bloc: var(--espace-m);
|
--pied-de-page-marges-internes-bloc: var(--espace-m);
|
||||||
--pied-de-page-marges-internes-ligne: var(--espace-xl);
|
--pied-de-page-marges-internes-ligne: var(--espace-xl);
|
||||||
|
height: var(--pied-de-page-hauteur);
|
||||||
padding: var(--pied-de-page-marges-internes-bloc) var(--pied-de-page-marges-internes-ligne);
|
padding: var(--pied-de-page-marges-internes-bloc) var(--pied-de-page-marges-internes-ligne);
|
||||||
line-height: var(--hauteur-ligne-classique);
|
|
||||||
background: var(--couleur-jaune);
|
background: var(--couleur-jaune);
|
||||||
border-top: 1px solid var(--couleur-noir);
|
border-top: 1px solid var(--couleur-noir);
|
||||||
grid-template-columns: 1fr 1fr;
|
grid-template-columns: 1fr 1fr;
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,46 @@
|
||||||
|
#page-accueil {
|
||||||
|
/* Dimensions */
|
||||||
|
--hauteur-conteneur: calc(100vh - var(--en-tete-hauteur) - var(--pied-de-page-hauteur));
|
||||||
|
/* Marges */
|
||||||
|
--page-marges-bloc-debut: var(--en-tete-hauteur);
|
||||||
|
overflow: hidden;
|
||||||
|
display: flex;
|
||||||
|
flex-flow: column nowrap;
|
||||||
|
min-height: var(--hauteur-conteneur);
|
||||||
|
max-height: var(--hauteur-conteneur);
|
||||||
|
margin-top: var(--page-marges-bloc-debut);
|
||||||
|
}
|
||||||
|
#page-accueil .storytelling {
|
||||||
|
scrollbar-width: none;
|
||||||
|
overflow-y: scroll;
|
||||||
|
place-items: center;
|
||||||
|
min-height: inherit;
|
||||||
|
max-height: inherit;
|
||||||
|
}
|
||||||
|
#page-accueil .storytelling__conteneur {
|
||||||
|
display: flex;
|
||||||
|
flex-flow: column nowrap;
|
||||||
|
min-height: calc(var(--hauteur-conteneur) * 10);
|
||||||
|
padding: 0 var(--espace-xl);
|
||||||
|
}
|
||||||
|
#page-accueil .storytelling__image {
|
||||||
|
position: sticky;
|
||||||
|
top: 0;
|
||||||
|
align-content: center;
|
||||||
|
width: 100%;
|
||||||
|
min-height: var(--hauteur-conteneur);
|
||||||
|
max-height: var(--hauteur-conteneur);
|
||||||
|
}
|
||||||
|
#page-accueil .storytelling__image[data-cache] {
|
||||||
|
visibility: hidden;
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
#page-accueil .storytelling__image img {
|
||||||
|
scale: 0.9;
|
||||||
|
max-height: inherit;
|
||||||
|
margin: auto;
|
||||||
|
object-fit: contain;
|
||||||
|
background: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*# sourceMappingURL=page-accueil.css.map */
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
{"version":3,"sourceRoot":"","sources":["../../../src/sass/pages/page-accueil.scss"],"names":[],"mappings":"AAEA;AACE;EACA;AAEA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA","file":"page-accueil.css"}
|
||||||
49
web/app/themes/haiku-atelier-2024/assets/css/pages/page-accueil.min.css
vendored
Normal file
|
|
@ -0,0 +1,49 @@
|
||||||
|
#page-accueil {
|
||||||
|
--hauteur-conteneur: calc(100vh - var(--en-tete-hauteur) - var(--pied-de-page-hauteur));
|
||||||
|
--page-marges-bloc-debut: var(--en-tete-hauteur);
|
||||||
|
min-height: var(--hauteur-conteneur);
|
||||||
|
max-height: var(--hauteur-conteneur);
|
||||||
|
margin-top: var(--page-marges-bloc-debut);
|
||||||
|
flex-flow: column;
|
||||||
|
display: flex;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
#page-accueil .storytelling {
|
||||||
|
scrollbar-width: none;
|
||||||
|
min-height: inherit;
|
||||||
|
max-height: inherit;
|
||||||
|
place-items: center;
|
||||||
|
overflow-y: scroll;
|
||||||
|
}
|
||||||
|
|
||||||
|
#page-accueil .storytelling__conteneur {
|
||||||
|
min-height: calc(var(--hauteur-conteneur) * 10);
|
||||||
|
padding: 0 var(--espace-xl);
|
||||||
|
flex-flow: column;
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
|
||||||
|
#page-accueil .storytelling__image {
|
||||||
|
min-height: var(--hauteur-conteneur);
|
||||||
|
max-height: var(--hauteur-conteneur);
|
||||||
|
align-content: center;
|
||||||
|
width: 100%;
|
||||||
|
position: sticky;
|
||||||
|
top: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#page-accueil .storytelling__image[data-cache] {
|
||||||
|
visibility: hidden;
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#page-accueil .storytelling__image img {
|
||||||
|
max-height: inherit;
|
||||||
|
object-fit: contain;
|
||||||
|
background: none;
|
||||||
|
margin: auto;
|
||||||
|
scale: .9;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*# sourceMappingURL=web/app/themes/haiku-atelier-2024/assets/css/pages/page-accueil.min.css.map */
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
{"version":3,"mappings":"AAAA;;;;;;;;;;;AAYA;;;;;;;;AAOA;;;;;;;AAMA;;;;;;;;;AAQA;;;;;AAIA","sources":["web/app/themes/haiku-atelier-2024/assets/css/pages/page-accueil.css"],"sourcesContent":["#page-accueil {\n /* Dimensions */\n --hauteur-conteneur: calc(100vh - var(--en-tete-hauteur) - var(--pied-de-page-hauteur));\n /* Marges */\n --page-marges-bloc-debut: var(--en-tete-hauteur);\n overflow: hidden;\n display: flex;\n flex-flow: column nowrap;\n min-height: var(--hauteur-conteneur);\n max-height: var(--hauteur-conteneur);\n margin-top: var(--page-marges-bloc-debut);\n}\n#page-accueil .storytelling {\n scrollbar-width: none;\n overflow-y: scroll;\n place-items: center;\n min-height: inherit;\n max-height: inherit;\n}\n#page-accueil .storytelling__conteneur {\n display: flex;\n flex-flow: column nowrap;\n min-height: calc(var(--hauteur-conteneur) * 10);\n padding: 0 var(--espace-xl);\n}\n#page-accueil .storytelling__image {\n position: sticky;\n top: 0;\n align-content: center;\n width: 100%;\n min-height: var(--hauteur-conteneur);\n max-height: var(--hauteur-conteneur);\n}\n#page-accueil .storytelling__image[data-cache] {\n visibility: hidden;\n opacity: 0;\n}\n#page-accueil .storytelling__image img {\n scale: 0.9;\n max-height: inherit;\n margin: auto;\n object-fit: contain;\n background: transparent;\n}\n\n/*# sourceMappingURL=page-accueil.css.map */\n"],"names":[]}
|
||||||
|
|
@ -344,7 +344,7 @@
|
||||||
--menu-section-marges-bloc-debut: var(--en-tete-hauteur); /* 1 */
|
--menu-section-marges-bloc-debut: var(--en-tete-hauteur); /* 1 */
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-flow: row wrap;
|
flex-flow: row wrap;
|
||||||
min-height: calc(100vh - var(--en-tete-hauteur) - 105px);
|
min-height: calc(100vh - var(--en-tete-hauteur) - var(--pied-de-page-hauteur));
|
||||||
margin-top: var(--menu-section-marges-bloc-debut);
|
margin-top: var(--menu-section-marges-bloc-debut);
|
||||||
}
|
}
|
||||||
#page-panier[data-contient-articles=false] .panneau {
|
#page-panier[data-contient-articles=false] .panneau {
|
||||||
|
|
@ -382,7 +382,7 @@
|
||||||
display: none;
|
display: none;
|
||||||
flex-basis: 100%;
|
flex-basis: 100%;
|
||||||
align-content: center;
|
align-content: center;
|
||||||
min-height: calc(100vh - var(--en-tete-hauteur) - 105px);
|
min-height: calc(100vh - var(--en-tete-hauteur) - var(--pied-de-page-hauteur));
|
||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
#page-panier .panier-vide p {
|
#page-panier .panier-vide p {
|
||||||
|
|
|
||||||
|
|
@ -380,7 +380,7 @@
|
||||||
#page-panier {
|
#page-panier {
|
||||||
--menu-section-hauteur: var(--menu-categories-produits-hauteur);
|
--menu-section-hauteur: var(--menu-categories-produits-hauteur);
|
||||||
--menu-section-marges-bloc-debut: var(--en-tete-hauteur);
|
--menu-section-marges-bloc-debut: var(--en-tete-hauteur);
|
||||||
min-height: calc(100vh - var(--en-tete-hauteur) - 105px);
|
min-height: calc(100vh - var(--en-tete-hauteur) - var(--pied-de-page-hauteur));
|
||||||
margin-top: var(--menu-section-marges-bloc-debut);
|
margin-top: var(--menu-section-marges-bloc-debut);
|
||||||
flex-flow: wrap;
|
flex-flow: wrap;
|
||||||
display: flex;
|
display: flex;
|
||||||
|
|
@ -423,7 +423,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
#page-panier .panier-vide {
|
#page-panier .panier-vide {
|
||||||
min-height: calc(100vh - var(--en-tete-hauteur) - 105px);
|
min-height: calc(100vh - var(--en-tete-hauteur) - var(--pied-de-page-hauteur));
|
||||||
text-align: center;
|
text-align: center;
|
||||||
flex-basis: 100%;
|
flex-basis: 100%;
|
||||||
align-content: center;
|
align-content: center;
|
||||||
|
|
|
||||||
|
After Width: | Height: | Size: 296 KiB |
|
After Width: | Height: | Size: 585 KiB |
|
After Width: | Height: | Size: 627 KiB |
|
After Width: | Height: | Size: 635 KiB |
|
After Width: | Height: | Size: 635 KiB |
|
After Width: | Height: | Size: 353 KiB |
|
After Width: | Height: | Size: 379 KiB |
|
After Width: | Height: | Size: 444 KiB |
|
After Width: | Height: | Size: 462 KiB |
|
After Width: | Height: | Size: 491 KiB |
|
After Width: | Height: | Size: 486 KiB |
|
After Width: | Height: | Size: 554 KiB |
|
After Width: | Height: | Size: 605 KiB |
|
|
@ -17,10 +17,10 @@
|
||||||
],
|
],
|
||||||
"integrity": "sha512-BrOGLIo6Hd2bL9MbCd5YcISzpVZjfEBeq9PVKcKIWza4ycU1qmwPIyE2D/z4wLgps5iNAtHsGUI0JE0FzkdqCw=="
|
"integrity": "sha512-BrOGLIo6Hd2bL9MbCd5YcISzpVZjfEBeq9PVKcKIWza4ycU1qmwPIyE2D/z4wLgps5iNAtHsGUI0JE0FzkdqCw=="
|
||||||
},
|
},
|
||||||
"_exports.D-K_zMCo.js": {
|
"_exports.DMCTjIlP.js": {
|
||||||
"file": "exports.D-K_zMCo.js",
|
"file": "exports.DMCTjIlP.js",
|
||||||
"name": "exports",
|
"name": "exports",
|
||||||
"integrity": "sha512-Ni3hTtCfn0bMn2baSlaQd67X7zSMi5qPb8spnFBQcAh9YmAYVsM91gS6tU0VTsBDLgX+rgPCPKWpd2KX35NjNw=="
|
"integrity": "sha512-4L1NzKs7XuOMvUiv40ZQLFZJItYzg2xO1M1/o+W9uoqJCevPc0wu43ims0AqUOnFutsTK+5kwQMlOUa82vCTdA=="
|
||||||
},
|
},
|
||||||
"_index.CCa5Y_L9.js": {
|
"_index.CCa5Y_L9.js": {
|
||||||
"file": "index.CCa5Y_L9.js",
|
"file": "index.CCa5Y_L9.js",
|
||||||
|
|
@ -51,7 +51,7 @@
|
||||||
"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-l9s8C0IttUY6bsApERfqCuEoZzF9AIHa/D2fMPjvBXOSdChM5oYqLsLyRadUeif51CR6OwNYivTjvw6TN1VRJA=="
|
"integrity": "sha512-TRKlKpx3Dv5K4Vh0v/dJ+coW8iGh7cI/HVHStw2Un0CaL9qAEGEulyM8wNSQU+j8F4YEjFDkvIe+xdl0zhqK+g=="
|
||||||
},
|
},
|
||||||
"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",
|
||||||
|
|
@ -68,9 +68,9 @@
|
||||||
"imports": [
|
"imports": [
|
||||||
"_chunk-7BKSRZNG.C39W3Wne.js",
|
"_chunk-7BKSRZNG.C39W3Wne.js",
|
||||||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/api.ts",
|
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/api.ts",
|
||||||
"_exports.D-K_zMCo.js"
|
"_exports.DMCTjIlP.js"
|
||||||
],
|
],
|
||||||
"integrity": "sha512-ds59FiRHCNygXUzWjGmbLzhMtYxqEv35F3htG4iYyg/67sZPvPG/Iu2itE/s0JUbnhC5XRUnTJHIe0AkchBGLA=="
|
"integrity": "sha512-XpGDOLUY4PLP0p/yxZmZCyhkVUtzngnYaxFWRmnOBPxiBhktC2FykJrj8DcMpKOyP9Tl7yBXo57iDJOE1vdg2g=="
|
||||||
},
|
},
|
||||||
"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",
|
||||||
|
|
@ -81,9 +81,9 @@
|
||||||
"_chunk-7BKSRZNG.C39W3Wne.js",
|
"_chunk-7BKSRZNG.C39W3Wne.js",
|
||||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/erreurs.ts",
|
"web/app/themes/haiku-atelier-2024/src/scripts/lib/erreurs.ts",
|
||||||
"_Either.wHNxn7Os.js",
|
"_Either.wHNxn7Os.js",
|
||||||
"_exports.D-K_zMCo.js"
|
"_exports.DMCTjIlP.js"
|
||||||
],
|
],
|
||||||
"integrity": "sha512-zesUzaLaAzT1XJDxIRrX16Xhfz0jnKRri6HBUt7fopcaV/u1oyD4gkwlvwQ00SBGE8o8x9zb5zfbiSrG+56KAQ=="
|
"integrity": "sha512-JU7RsVTWPHg2I0WExRth2ruOJ6in7aZjxOXqlfRqnjyoEFqNrLk/+JKVkQw9Vz4CP72h4iLvOu87Ui5e3ENWGg=="
|
||||||
},
|
},
|
||||||
"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",
|
||||||
|
|
@ -91,9 +91,9 @@
|
||||||
"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.D-K_zMCo.js"
|
"_exports.DMCTjIlP.js"
|
||||||
],
|
],
|
||||||
"integrity": "sha512-8jx0w9HHaZKMDXlVdNotzMQgSRiEz7kqlBgPNyc350Hj9qNBw+HN59E6S6aE8Cwfavx7bzOlKvjIzw44C/y0Tg=="
|
"integrity": "sha512-26oIC4zwdy0uZX84KHlJTXu3AXGoKS9rmUjil6crdd7Jxusl6eLnNUbG4uQnK5tB20Yi7y7uiuixytoDBSxZ+g=="
|
||||||
},
|
},
|
||||||
"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",
|
||||||
|
|
@ -124,11 +124,18 @@
|
||||||
"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.wHNxn7Os.js",
|
"_Either.wHNxn7Os.js",
|
||||||
"_exports.D-K_zMCo.js",
|
"_exports.DMCTjIlP.js",
|
||||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/cart.ts",
|
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/cart.ts",
|
||||||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/cart.ts"
|
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/cart.ts"
|
||||||
],
|
],
|
||||||
"integrity": "sha512-ueOLzf6AclHDqUTAn6d2bKp/rlI6vfXPcH2iz8QoSPhDsh5XgMsHAkyb1RcUJFlbhNMMBz/2IN67UFrjZl3KHQ=="
|
"integrity": "sha512-txyIVexRgXbPLkSwTFO9si1mvKV1dO2v04q8wozhdn1YHfnCojwbJBciVP6MyGat6TQqNI/hBdpeOnvFcOGc8A=="
|
||||||
|
},
|
||||||
|
"web/app/themes/haiku-atelier-2024/src/scripts/lib/nombres.ts": {
|
||||||
|
"file": "nombres.js",
|
||||||
|
"name": "nombres",
|
||||||
|
"src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/nombres.ts",
|
||||||
|
"isEntry": true,
|
||||||
|
"integrity": "sha512-XPtMZFCIRf/3zJ6euavv0QyRSKRTSGJfLkC5k2AwiAsDBU/GAhtz2ymHe6y6Ouj494EiO5Mh/vAaAuD1D8i9kg=="
|
||||||
},
|
},
|
||||||
"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",
|
||||||
|
|
@ -142,9 +149,9 @@
|
||||||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/api.ts",
|
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/api.ts",
|
||||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/erreurs.ts",
|
"web/app/themes/haiku-atelier-2024/src/scripts/lib/erreurs.ts",
|
||||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/erreurs.ts",
|
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/erreurs.ts",
|
||||||
"_exports.D-K_zMCo.js"
|
"_exports.DMCTjIlP.js"
|
||||||
],
|
],
|
||||||
"integrity": "sha512-OLtCV6IaAkXA3zvwQ3mIh/92DSm3bhEpo+c9UG7Z53+JrSJIPw+qHQYgDh3ev7kfEMGrtdBJsmjbDGc35veeFA=="
|
"integrity": "sha512-NvN86x4tFNVdlV/fniGzu20tlqfPTk2VaElCMfu+DofDgvceQOh9c6smO+KrrT9G7tXm7Lz6FGUjdSoIoasY2A=="
|
||||||
},
|
},
|
||||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/adresses.ts": {
|
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/adresses.ts": {
|
||||||
"file": "adresses.js",
|
"file": "adresses.js",
|
||||||
|
|
@ -237,13 +244,13 @@
|
||||||
"src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/utils.ts",
|
"src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/utils.ts",
|
||||||
"isEntry": true,
|
"isEntry": true,
|
||||||
"imports": [
|
"imports": [
|
||||||
|
"_chunk-7BKSRZNG.C39W3Wne.js",
|
||||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/dom.ts",
|
"web/app/themes/haiku-atelier-2024/src/scripts/lib/dom.ts",
|
||||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/erreurs.ts",
|
"web/app/themes/haiku-atelier-2024/src/scripts/lib/erreurs.ts",
|
||||||
"_Either.wHNxn7Os.js",
|
"_Either.wHNxn7Os.js",
|
||||||
"_chunk-7BKSRZNG.C39W3Wne.js",
|
"_exports.DMCTjIlP.js"
|
||||||
"_exports.D-K_zMCo.js"
|
|
||||||
],
|
],
|
||||||
"integrity": "sha512-GbY58x/EIklbx4niIHz9o362sp1OXllGe7k7OEUfPzszYehf81x8haRqwB2TexTLfn81UjowgcIk2GFusmXaiA=="
|
"integrity": "sha512-b3ureP5fNxOPCzsVZuPzqkEXubSm59zqn4U6WNglZXvaWYGrIWDliBgHwDzR9RwqSqNQU5bmpkZ3JNICJRYRMw=="
|
||||||
},
|
},
|
||||||
"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",
|
||||||
|
|
@ -258,14 +265,31 @@
|
||||||
"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.D-K_zMCo.js",
|
"_exports.DMCTjIlP.js",
|
||||||
"_Either.wHNxn7Os.js",
|
"_Either.wHNxn7Os.js",
|
||||||
"_index.CCa5Y_L9.js",
|
"_index.CCa5Y_L9.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",
|
||||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/cart.ts",
|
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/cart.ts",
|
||||||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/cart.ts"
|
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/cart.ts"
|
||||||
],
|
],
|
||||||
"integrity": "sha512-lanrZj5Z0DqxP6rozyO78F5Wk2pcA6JCgAd6LiVCR3O/+QsdrfGm18QChaA+XMQU9kvb0NCRdJZxuIe3Ha/OKQ=="
|
"integrity": "sha512-5kXYj+AE5jMTevcUBOZGPCwHBU4dhilcFP9NQe3SvI2VvJIiGzlr/aVh1OLJ6w/X/iNYvf3cl0f+p+lo2BKwoA=="
|
||||||
|
},
|
||||||
|
"web/app/themes/haiku-atelier-2024/src/scripts/scripts-page-accueil.ts": {
|
||||||
|
"file": "scripts-page-accueil.js",
|
||||||
|
"name": "scripts-page-accueil",
|
||||||
|
"src": "web/app/themes/haiku-atelier-2024/src/scripts/scripts-page-accueil.ts",
|
||||||
|
"isEntry": true,
|
||||||
|
"imports": [
|
||||||
|
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/dom.ts",
|
||||||
|
"web/app/themes/haiku-atelier-2024/src/scripts/lib/nombres.ts",
|
||||||
|
"web/app/themes/haiku-atelier-2024/src/scripts/lib/utils.ts",
|
||||||
|
"_chunk-7BKSRZNG.C39W3Wne.js",
|
||||||
|
"web/app/themes/haiku-atelier-2024/src/scripts/lib/dom.ts",
|
||||||
|
"web/app/themes/haiku-atelier-2024/src/scripts/lib/erreurs.ts",
|
||||||
|
"_exports.DMCTjIlP.js",
|
||||||
|
"_Either.wHNxn7Os.js"
|
||||||
|
],
|
||||||
|
"integrity": "sha512-FPEzyKVN5yR1bFurSMzgKI+mnFQqWe/VJVWv7ZakzzqicbKDak6yGjbuxV+Em/pffaDttGmNhO7bW83t3dB08A=="
|
||||||
},
|
},
|
||||||
"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",
|
||||||
|
|
@ -290,14 +314,14 @@
|
||||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/cart-update-customer.ts",
|
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/cart-update-customer.ts",
|
||||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/cart-update-item.ts",
|
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/cart-update-item.ts",
|
||||||
"_Either.wHNxn7Os.js",
|
"_Either.wHNxn7Os.js",
|
||||||
"_exports.D-K_zMCo.js",
|
"_exports.DMCTjIlP.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",
|
||||||
"_index.CeK6pfoJ.js",
|
"_index.CeK6pfoJ.js",
|
||||||
"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/constantes/cart.ts",
|
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/cart.ts",
|
||||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/adresses.ts"
|
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/adresses.ts"
|
||||||
],
|
],
|
||||||
"integrity": "sha512-YNbhd8qcZTJ/5yIhr6FbJJRb44VdCQlxaEuA2Hbb6UG6dYsh1QwUO4MFvmJj6r+qFGN0p/yftAbEJIptrNbiBQ=="
|
"integrity": "sha512-8GSJr7ShZETNpEpcyGSYv4uohHCOibRIbWct+4Qppcc5g8W9YmBMxQ6zOFD3mUHWpq/MHcqfeyA00hAAb6+8TQ=="
|
||||||
},
|
},
|
||||||
"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",
|
||||||
|
|
@ -320,11 +344,11 @@
|
||||||
"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",
|
||||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/erreurs.ts",
|
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/erreurs.ts",
|
||||||
"_Either.wHNxn7Os.js",
|
"_Either.wHNxn7Os.js",
|
||||||
"_exports.D-K_zMCo.js",
|
"_exports.DMCTjIlP.js",
|
||||||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/messages.ts",
|
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/messages.ts",
|
||||||
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/messages.ts",
|
"web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/messages.ts",
|
||||||
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/cart.ts"
|
"web/app/themes/haiku-atelier-2024/src/scripts/constantes/cart.ts"
|
||||||
],
|
],
|
||||||
"integrity": "sha512-wmjIbZCeICj0EF00ozg1W3Iso/Mc3kILlndDYLIFu9/t2E4aS9xnD3gdbIXAUyAgokZW1a5P0jShEaNvyd2MAw=="
|
"integrity": "sha512-nCQjnWYyJKCD6nxZIQHC2S20lpQH3u5DHf4mXHaT+K0/NeltuwhIWs3REhHsFo4XVhp3uInBv9KQMhkTi1nwFQ=="
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1,8 +1,11 @@
|
||||||
|
const ATTRIBUT_ARIA_HIDDEN = "aria-hidden";
|
||||||
const ATTRIBUT_ARIA_SELECTED = "aria-selected";
|
const ATTRIBUT_ARIA_SELECTED = "aria-selected";
|
||||||
const ATTRIBUT_HIDDEN = "hidden";
|
const ATTRIBUT_CACHE = "data-cache";
|
||||||
|
const ATTRIBUT_CLE_PANIER = "data-cle-panier";
|
||||||
const ATTRIBUT_CONTIENT_ARTICLES = "data-contient-articles";
|
const ATTRIBUT_CONTIENT_ARTICLES = "data-contient-articles";
|
||||||
const ATTRIBUT_DESACTIVE = "disabled";
|
const ATTRIBUT_DESACTIVE = "disabled";
|
||||||
const ATTRIBUT_CLE_PANIER = "data-cle-panier";
|
const ATTRIBUT_HIDDEN = "hidden";
|
||||||
|
const ATTRIBUT_INDEX = "data-index";
|
||||||
const SELECTEUR_CONTENEUR_PANIER = "#page-panier";
|
const SELECTEUR_CONTENEUR_PANIER = "#page-panier";
|
||||||
const SELECTEUR_BOUTON_PANIER = ".compte-panier a[rel='cart']";
|
const SELECTEUR_BOUTON_PANIER = ".compte-panier a[rel='cart']";
|
||||||
const SELECTEUR_SELECTEUR_QUANTITE = "#selecteur-variation";
|
const SELECTEUR_SELECTEUR_QUANTITE = "#selecteur-variation";
|
||||||
|
|
@ -22,30 +25,37 @@ const SELECTEUR_FORMULAIRE_PANIER = "#panneau-informations-client form";
|
||||||
const SELECTEUR_FORMULAIRE_LIVRAISON = "#panneau-informations-client .panneau__formulaires__livraison";
|
const SELECTEUR_FORMULAIRE_LIVRAISON = "#panneau-informations-client .panneau__formulaires__livraison";
|
||||||
const SELECTEUR_FORMULAIRE_FACTURATION = "#panneau-informations-client .panneau__formulaires__facturation";
|
const SELECTEUR_FORMULAIRE_FACTURATION = "#panneau-informations-client .panneau__formulaires__facturation";
|
||||||
const SELECTEUR_BOUTON_ACTIONS_FORMULAIRE = "#panneau-informations-client .panneau__pied-de-page button";
|
const SELECTEUR_BOUTON_ACTIONS_FORMULAIRE = "#panneau-informations-client .panneau__pied-de-page button";
|
||||||
|
const SELECTEUR_CONTENEUR_STORYTELLING = ".storytelling";
|
||||||
|
const SELECTEUR_IMAGES_STORYTELLING = ".storytelling__image";
|
||||||
export {
|
export {
|
||||||
ATTRIBUT_CONTIENT_ARTICLES as A,
|
ATTRIBUT_CONTIENT_ARTICLES as A,
|
||||||
|
ATTRIBUT_ARIA_SELECTED as B,
|
||||||
SELECTEUR_BOUTON_PANIER as S,
|
SELECTEUR_BOUTON_PANIER as S,
|
||||||
SELECTEUR_ENTREES_PANIER as a,
|
SELECTEUR_CONTENEUR_STORYTELLING as a,
|
||||||
SELECTEUR_CONTENEUR_PANIER as b,
|
SELECTEUR_IMAGES_STORYTELLING as b,
|
||||||
SELECTEUR_SOUS_TOTAL_PANIER as c,
|
ATTRIBUT_INDEX as c,
|
||||||
SELECTEUR_TOTAL_PANIER as d,
|
ATTRIBUT_CACHE as d,
|
||||||
SELECTEUR_BOUTON_SEPARATION_ADRESSES as e,
|
ATTRIBUT_ARIA_HIDDEN as e,
|
||||||
SELECTEUR_FORMULAIRE_PANIER as f,
|
SELECTEUR_ENTREES_PANIER as f,
|
||||||
SELECTEUR_FORMULAIRE_LIVRAISON as g,
|
SELECTEUR_CONTENEUR_PANIER as g,
|
||||||
SELECTEUR_FORMULAIRE_FACTURATION as h,
|
SELECTEUR_SOUS_TOTAL_PANIER as h,
|
||||||
SELECTEUR_BOUTON_ACTIONS_FORMULAIRE as i,
|
SELECTEUR_TOTAL_PANIER as i,
|
||||||
ATTRIBUT_CLE_PANIER as j,
|
SELECTEUR_BOUTON_SEPARATION_ADRESSES as j,
|
||||||
SELECTEUR_BOUTON_SOUSTRACTION_QUANTITE as k,
|
SELECTEUR_FORMULAIRE_PANIER as k,
|
||||||
SELECTEUR_CHAMP_QUANTITE_LIGNE_PANIER as l,
|
SELECTEUR_FORMULAIRE_LIVRAISON as l,
|
||||||
SELECTEUR_BOUTON_ADDITION_QUANTITE as m,
|
SELECTEUR_FORMULAIRE_FACTURATION as m,
|
||||||
SELECTEUR_BOUTON_SUPPRESSION_PANIER as n,
|
SELECTEUR_BOUTON_ACTIONS_FORMULAIRE as n,
|
||||||
SELECTEUR_PRIX_LIGNE_PANIER as o,
|
ATTRIBUT_CLE_PANIER as o,
|
||||||
ATTRIBUT_HIDDEN as p,
|
SELECTEUR_BOUTON_SOUSTRACTION_QUANTITE as p,
|
||||||
ATTRIBUT_DESACTIVE as q,
|
SELECTEUR_CHAMP_QUANTITE_LIGNE_PANIER as q,
|
||||||
SELECTEUR_BOUTON_AJOUT_PANIER as r,
|
SELECTEUR_BOUTON_ADDITION_QUANTITE as r,
|
||||||
SELECTEUR_SELECTEUR_QUANTITE as s,
|
SELECTEUR_BOUTON_SUPPRESSION_PANIER as s,
|
||||||
SELECTEUR_LIENS_ONGLETS as t,
|
SELECTEUR_PRIX_LIGNE_PANIER as t,
|
||||||
SELECTEUR_SECTIONS_CONTENUS as u,
|
ATTRIBUT_HIDDEN as u,
|
||||||
ATTRIBUT_ARIA_SELECTED as v
|
ATTRIBUT_DESACTIVE as v,
|
||||||
|
SELECTEUR_BOUTON_AJOUT_PANIER as w,
|
||||||
|
SELECTEUR_SELECTEUR_QUANTITE as x,
|
||||||
|
SELECTEUR_LIENS_ONGLETS as y,
|
||||||
|
SELECTEUR_SECTIONS_CONTENUS as z
|
||||||
};
|
};
|
||||||
//# sourceMappingURL=dom.js.map
|
//# sourceMappingURL=dom.js.map
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
{"version":3,"file":"dom.js","sources":["../../src/scripts/constantes/dom.ts"],"sourcesContent":["/** Constantes de valeurs pour la manipulation du DOM : sélecteurs et attributs. */\n\nexport const ATTRIBUT_ARIA_SELECTED = \"aria-selected\";\nexport const ATTRIBUT_ARIA_HIDDEN = \"aria-hidden\";\nexport const ATTRIBUT_HIDDEN = \"hidden\";\nexport const ATTRIBUT_CONTIENT_ARTICLES = \"data-contient-articles\";\nexport const ATTRIBUT_DESACTIVE = \"disabled\";\nexport const ATTRIBUT_CLE_PANIER = \"data-cle-panier\";\n\nexport const SELECTEUR_CONTENEUR_PANIER = \"#page-panier\";\nexport const SELECTEUR_BOUTON_PANIER = \".compte-panier a[rel='cart']\";\nexport const SELECTEUR_SELECTEUR_QUANTITE = \"#selecteur-variation\";\nexport const SELECTEUR_BOUTON_AJOUT_PANIER = \"#bouton-ajout-panier\";\nexport const SELECTEUR_LIENS_ONGLETS = \"a[role='tab']\";\nexport const SELECTEUR_SECTIONS_CONTENUS = \"section[role='tabpanel']\";\n\n// Panier\nexport const SELECTEUR_ENTREES_PANIER = \"article\";\nexport const SELECTEUR_BOUTON_SUPPRESSION_PANIER = \"button.detail-produit__actions__suppression\";\nexport const SELECTEUR_BOUTON_SOUSTRACTION_QUANTITE = \"button.detail-produit__actions__soustraction\";\nexport const SELECTEUR_BOUTON_ADDITION_QUANTITE = \"button.detail-produit__actions__addition\";\nexport const SELECTEUR_CHAMP_QUANTITE_LIGNE_PANIER = \"input\";\nexport const SELECTEUR_PRIX_LIGNE_PANIER = \".detail-produit__nom-prix span\";\nexport const SELECTEUR_SOUS_TOTAL_PANIER = \"#panneau-panier .panneau__sous-totaux__ligne strong\";\nexport const SELECTEUR_TOTAL_PANIER = \"#panneau-panier .panneau__pied-de-page p span\";\nexport const SELECTEUR_BOUTON_SEPARATION_ADRESSES = \"#separation-adresses\";\nexport const SELECTEUR_FORMULAIRE_PANIER = \"#panneau-informations-client form\";\nexport const SELECTEUR_FORMULAIRE_LIVRAISON = \"#panneau-informations-client .panneau__formulaires__livraison\";\nexport const SELECTEUR_FORMULAIRE_FACTURATION = \"#panneau-informations-client .panneau__formulaires__facturation\";\nexport const SELECTEUR_BOUTON_ACTIONS_FORMULAIRE = \"#panneau-informations-client .panneau__pied-de-page button\";\n"],"names":[],"mappings":"AAEO,MAAM,yBAAyB;AAE/B,MAAM,kBAAkB;AACxB,MAAM,6BAA6B;AACnC,MAAM,qBAAqB;AAC3B,MAAM,sBAAsB;AAE5B,MAAM,6BAA6B;AACnC,MAAM,0BAA0B;AAChC,MAAM,+BAA+B;AACrC,MAAM,gCAAgC;AACtC,MAAM,0BAA0B;AAChC,MAAM,8BAA8B;AAGpC,MAAM,2BAA2B;AACjC,MAAM,sCAAsC;AAC5C,MAAM,yCAAyC;AAC/C,MAAM,qCAAqC;AAC3C,MAAM,wCAAwC;AAC9C,MAAM,8BAA8B;AACpC,MAAM,8BAA8B;AACpC,MAAM,yBAAyB;AAC/B,MAAM,uCAAuC;AAC7C,MAAM,8BAA8B;AACpC,MAAM,iCAAiC;AACvC,MAAM,mCAAmC;AACzC,MAAM,sCAAsC;"}
|
{"version":3,"file":"dom.js","sources":["../../src/scripts/constantes/dom.ts"],"sourcesContent":["/** Constantes de valeurs pour la manipulation du DOM : sélecteurs et attributs. */\n\nexport const ATTRIBUT_ARIA_HIDDEN = \"aria-hidden\";\nexport const ATTRIBUT_ARIA_SELECTED = \"aria-selected\";\nexport const ATTRIBUT_CACHE = \"data-cache\";\nexport const ATTRIBUT_CLE_PANIER = \"data-cle-panier\";\nexport const ATTRIBUT_CONTIENT_ARTICLES = \"data-contient-articles\";\nexport const ATTRIBUT_DESACTIVE = \"disabled\";\nexport const ATTRIBUT_HIDDEN = \"hidden\";\nexport const ATTRIBUT_INDEX = \"data-index\";\n\nexport const SELECTEUR_CONTENEUR_PANIER = \"#page-panier\";\nexport const SELECTEUR_BOUTON_PANIER = \".compte-panier a[rel='cart']\";\nexport const SELECTEUR_SELECTEUR_QUANTITE = \"#selecteur-variation\";\nexport const SELECTEUR_BOUTON_AJOUT_PANIER = \"#bouton-ajout-panier\";\nexport const SELECTEUR_LIENS_ONGLETS = \"a[role='tab']\";\nexport const SELECTEUR_SECTIONS_CONTENUS = \"section[role='tabpanel']\";\n\n// Panier\nexport const SELECTEUR_ENTREES_PANIER = \"article\";\nexport const SELECTEUR_BOUTON_SUPPRESSION_PANIER = \"button.detail-produit__actions__suppression\";\nexport const SELECTEUR_BOUTON_SOUSTRACTION_QUANTITE = \"button.detail-produit__actions__soustraction\";\nexport const SELECTEUR_BOUTON_ADDITION_QUANTITE = \"button.detail-produit__actions__addition\";\nexport const SELECTEUR_CHAMP_QUANTITE_LIGNE_PANIER = \"input\";\nexport const SELECTEUR_PRIX_LIGNE_PANIER = \".detail-produit__nom-prix span\";\nexport const SELECTEUR_SOUS_TOTAL_PANIER = \"#panneau-panier .panneau__sous-totaux__ligne strong\";\nexport const SELECTEUR_TOTAL_PANIER = \"#panneau-panier .panneau__pied-de-page p span\";\nexport const SELECTEUR_BOUTON_SEPARATION_ADRESSES = \"#separation-adresses\";\nexport const SELECTEUR_FORMULAIRE_PANIER = \"#panneau-informations-client form\";\nexport const SELECTEUR_FORMULAIRE_LIVRAISON = \"#panneau-informations-client .panneau__formulaires__livraison\";\nexport const SELECTEUR_FORMULAIRE_FACTURATION = \"#panneau-informations-client .panneau__formulaires__facturation\";\nexport const SELECTEUR_BOUTON_ACTIONS_FORMULAIRE = \"#panneau-informations-client .panneau__pied-de-page button\";\n\n// Accueil\nexport const SELECTEUR_CONTENEUR_STORYTELLING = \".storytelling\";\nexport const SELECTEUR_IMAGES_STORYTELLING = \".storytelling__image\";\n"],"names":[],"mappings":"AAEO,MAAM,uBAAuB;AAC7B,MAAM,yBAAyB;AAC/B,MAAM,iBAAiB;AACvB,MAAM,sBAAsB;AAC5B,MAAM,6BAA6B;AACnC,MAAM,qBAAqB;AAC3B,MAAM,kBAAkB;AACxB,MAAM,iBAAiB;AAEvB,MAAM,6BAA6B;AACnC,MAAM,0BAA0B;AAChC,MAAM,+BAA+B;AACrC,MAAM,gCAAgC;AACtC,MAAM,0BAA0B;AAChC,MAAM,8BAA8B;AAGpC,MAAM,2BAA2B;AACjC,MAAM,sCAAsC;AAC5C,MAAM,yCAAyC;AAC/C,MAAM,qCAAqC;AAC3C,MAAM,wCAAwC;AAC9C,MAAM,8BAA8B;AACpC,MAAM,8BAA8B;AACpC,MAAM,yBAAyB;AAC/B,MAAM,uCAAuC;AAC7C,MAAM,8BAA8B;AACpC,MAAM,iCAAiC;AACvC,MAAM,mCAAmC;AACzC,MAAM,sCAAsC;AAG5C,MAAM,mCAAmC;AACzC,MAAM,gCAAgC;"}
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
import { x } from "./chunk-7BKSRZNG.C39W3Wne.js";
|
import { x } from "./chunk-7BKSRZNG.C39W3Wne.js";
|
||||||
import { e as creeSyntaxError, f as reporteEtLeveErreur, g as ERREUR_SYNTAXE_INVALIDE, h as ERREUR_SELECTEUR_INEXISTANT } from "./erreurs.js";
|
import { e as creeSyntaxError, f as reporteEtLeveErreur, g as ERREUR_SYNTAXE_INVALIDE, h as ERREUR_SELECTEUR_INEXISTANT } from "./erreurs.js";
|
||||||
import { E as Either, r as right, l as left } from "./Either.wHNxn7Os.js";
|
import { E as Either, r as right, l as left } from "./Either.wHNxn7Os.js";
|
||||||
import "./exports.D-K_zMCo.js";
|
import "./exports.DMCTjIlP.js";
|
||||||
function n$1(l) {
|
function n$1(l) {
|
||||||
return l !== null;
|
return l !== null;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import { $ as captureException } from "./exports.D-K_zMCo.js";
|
import { $ as captureException } from "./exports.DMCTjIlP.js";
|
||||||
const ERREUR_SYNTAXE_INVALIDE = (selecteur) => `Le selecteur "${selecteur}" est invalide`;
|
const ERREUR_SYNTAXE_INVALIDE = (selecteur) => `Le selecteur "${selecteur}" est invalide`;
|
||||||
const ERREUR_SELECTEUR_INEXISTANT = (selecteur) => `La requête "${selecteur}" n'a retourné aucun Élément.`;
|
const ERREUR_SELECTEUR_INEXISTANT = (selecteur) => `La requête "${selecteur}" n'a retourné aucun Élément.`;
|
||||||
const creeSyntaxError = (message) => new SyntaxError(message);
|
const creeSyntaxError = (message) => new SyntaxError(message);
|
||||||
|
|
|
||||||
|
|
@ -81,7 +81,7 @@ function safeJoin(input, delimiter) {
|
||||||
}
|
}
|
||||||
return output.join(delimiter);
|
return output.join(delimiter);
|
||||||
}
|
}
|
||||||
const SDK_VERSION = "8.34.0-internal.0";
|
const SDK_VERSION = "8.34.0";
|
||||||
const GLOBAL_OBJ = globalThis;
|
const GLOBAL_OBJ = globalThis;
|
||||||
function getGlobalSingleton(name, creator, obj) {
|
function getGlobalSingleton(name, creator, obj) {
|
||||||
const gbl = GLOBAL_OBJ;
|
const gbl = GLOBAL_OBJ;
|
||||||
|
|
@ -2169,4 +2169,4 @@ export {
|
||||||
isThenable as y,
|
isThenable as y,
|
||||||
isPlainObject as z
|
isPlainObject as z
|
||||||
};
|
};
|
||||||
//# sourceMappingURL=exports.D-K_zMCo.js.map
|
//# sourceMappingURL=exports.DMCTjIlP.js.map
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
import { x } from "./chunk-7BKSRZNG.C39W3Wne.js";
|
import { x } from "./chunk-7BKSRZNG.C39W3Wne.js";
|
||||||
import { E as ENTETE_GLITCHTIP_RATE_LIMITS, a as ENTETE_GLITCHTIP_RETRY_AFTER } from "./api.js";
|
import { E as ENTETE_GLITCHTIP_RATE_LIMITS, a as ENTETE_GLITCHTIP_RETRY_AFTER } from "./api.js";
|
||||||
import { i as isInstanceOf, t as truncate, c as consoleSandbox, D as DEBUG_BUILD$1, l as logger, g as getFunctionName, G as GLOBAL_OBJ, C as CONSOLE_LEVELS, f as fill, o as originalConsoleMethods, a as timestampInSeconds, b as isError, d as addNonEnumerableProperty, r as rejectedSyncPromise, S as SyncPromise, e as resolvedSyncPromise, h as dropUndefinedKeys, n as normalize, j as dateTimestampInSeconds, k as DEBUG_BUILD$2, u as urlEncode, m as uuid4, p as checkOrSetAlreadyCaught, q as isPrimitive, s as updateSession, v as prepareEvent, w as getDynamicSamplingContextFromClient, x as getIsolationScope, y as isThenable, z as isPlainObject, A as isParameterizedString, B as SDK_VERSION, E as getClient, F as getOriginalFunction, H as getFramesFromEvent, I as addExceptionMechanism, J as isErrorEvent$1, K as isDOMError, L as isDOMException, M as addExceptionTypeValue, N as isEvent, O as normalizeToSize, P as extractExceptionKeysForMessage, Q as isString, R as createStackParser, U as UNKNOWN_FUNCTION, T as getEventDescription, V as htmlTreeAsString, W as safeJoin, X as getComponentName, Y as captureEvent, Z as getLocationHref, _ as getCurrentScope } from "./exports.D-K_zMCo.js";
|
import { i as isInstanceOf, t as truncate, c as consoleSandbox, D as DEBUG_BUILD$1, l as logger, g as getFunctionName, G as GLOBAL_OBJ, C as CONSOLE_LEVELS, f as fill, o as originalConsoleMethods, a as timestampInSeconds, b as isError, d as addNonEnumerableProperty, r as rejectedSyncPromise, S as SyncPromise, e as resolvedSyncPromise, h as dropUndefinedKeys, n as normalize, j as dateTimestampInSeconds, k as DEBUG_BUILD$2, u as urlEncode, m as uuid4, p as checkOrSetAlreadyCaught, q as isPrimitive, s as updateSession, v as prepareEvent, w as getDynamicSamplingContextFromClient, x as getIsolationScope, y as isThenable, z as isPlainObject, A as isParameterizedString, B as SDK_VERSION, E as getClient, F as getOriginalFunction, H as getFramesFromEvent, I as addExceptionMechanism, J as isErrorEvent$1, K as isDOMError, L as isDOMException, M as addExceptionTypeValue, N as isEvent, O as normalizeToSize, P as extractExceptionKeysForMessage, Q as isString, R as createStackParser, U as UNKNOWN_FUNCTION, T as getEventDescription, V as htmlTreeAsString, W as safeJoin, X as getComponentName, Y as captureEvent, Z as getLocationHref, _ as getCurrentScope } from "./exports.DMCTjIlP.js";
|
||||||
function applyAggregateErrorsToEvent(exceptionFromErrorImplementation, parser, maxValueLimit = 250, key, limit, event, hint) {
|
function applyAggregateErrorsToEvent(exceptionFromErrorImplementation, parser, maxValueLimit = 250, key, limit, event, hint) {
|
||||||
if (!event.exception || !event.exception.values || !hint || !isInstanceOf(hint.originalException, Error)) {
|
if (!event.exception || !event.exception.values || !hint || !isInstanceOf(hint.originalException, Error)) {
|
||||||
return;
|
return;
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ import { N as NOM_CANAL_BOUTON_PANIER, T as TYPES_MESSAGES, a as NOM_CANAL_CONTE
|
||||||
import { r as reporteErreur } from "./erreurs.js";
|
import { r as reporteErreur } from "./erreurs.js";
|
||||||
import { M as MessageMajBoutonPanierSchema, a as MessageMajContenuPanierSchema } from "./messages2.js";
|
import { M as MessageMajBoutonPanierSchema, a as MessageMajContenuPanierSchema } from "./messages2.js";
|
||||||
import { E as Either } from "./Either.wHNxn7Os.js";
|
import { E as Either } from "./Either.wHNxn7Os.js";
|
||||||
import "./exports.D-K_zMCo.js";
|
import "./exports.DMCTjIlP.js";
|
||||||
import "./cart.js";
|
import "./cart.js";
|
||||||
import "./cart2.js";
|
import "./cart2.js";
|
||||||
const emetMessageMajBoutonPanier = (args) => {
|
const emetMessageMajBoutonPanier = (args) => {
|
||||||
|
|
|
||||||
29
web/app/themes/haiku-atelier-2024/assets/js/nombres.js
Normal file
|
|
@ -0,0 +1,29 @@
|
||||||
|
function _gte(a, b) {
|
||||||
|
return a >= b;
|
||||||
|
}
|
||||||
|
function gte() {
|
||||||
|
if (arguments.length === 1) {
|
||||||
|
const args = arguments;
|
||||||
|
return function fn(data) {
|
||||||
|
return _gte(data, args[0]);
|
||||||
|
};
|
||||||
|
}
|
||||||
|
return _gte(arguments[0], arguments[1]);
|
||||||
|
}
|
||||||
|
function _lt(a, b) {
|
||||||
|
return a < b;
|
||||||
|
}
|
||||||
|
function lt() {
|
||||||
|
if (arguments.length === 1) {
|
||||||
|
const args = arguments;
|
||||||
|
return function fn(data) {
|
||||||
|
return _lt(data, args[0]);
|
||||||
|
};
|
||||||
|
}
|
||||||
|
return _lt(arguments[0], arguments[1]);
|
||||||
|
}
|
||||||
|
const estEntreDeuxNombres = (nombre, min, max) => gte(nombre, min) && lt(nombre, max);
|
||||||
|
export {
|
||||||
|
estEntreDeuxNombres as e
|
||||||
|
};
|
||||||
|
//# sourceMappingURL=nombres.js.map
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
{"version":3,"file":"nombres.js","sources":["../../../../../../node_modules/.pnpm/@mobily+ts-belt@3.13.1/node_modules/@mobily/ts-belt/dist/esm/Number/index.js","../../src/scripts/lib/nombres.ts"],"sourcesContent":["// node_modules/rescript/lib/es6/caml_int32.js\nfunction mod_(x, y) {\n if (y === 0) {\n throw {\n RE_EXN_ID: \"Division_by_zero\",\n Error: new Error()\n };\n }\n return x % y;\n}\n\n// src/Number/Number.bs.js\nfunction placeholder(param) {\n}\nfunction pred(n) {\n return n - 1 | 0;\n}\nfunction succ(n) {\n return n + 1 | 0;\n}\nfunction _add(a, b) {\n return a + b;\n}\nfunction add() {\n if (arguments.length === 1) {\n const args = arguments;\n return function fn(data) {\n return _add(data, args[0]);\n };\n }\n return _add(arguments[0], arguments[1]);\n}\nfunction _subtract(a, b) {\n return a - b;\n}\nfunction subtract() {\n if (arguments.length === 1) {\n const args = arguments;\n return function fn(data) {\n return _subtract(data, args[0]);\n };\n }\n return _subtract(arguments[0], arguments[1]);\n}\nfunction _multiply(a, b) {\n return a * b;\n}\nfunction multiply() {\n if (arguments.length === 1) {\n const args = arguments;\n return function fn(data) {\n return _multiply(data, args[0]);\n };\n }\n return _multiply(arguments[0], arguments[1]);\n}\nfunction _divide(a, b) {\n return a / b;\n}\nfunction divide() {\n if (arguments.length === 1) {\n const args = arguments;\n return function fn(data) {\n return _divide(data, args[0]);\n };\n }\n return _divide(arguments[0], arguments[1]);\n}\nvar _modulo = mod_;\nfunction modulo() {\n if (arguments.length === 1) {\n const args = arguments;\n return function fn(data) {\n return _modulo(data, args[0]);\n };\n }\n return _modulo(arguments[0], arguments[1]);\n}\nfunction _divideWithModulo(a, b) {\n return [\n a / b,\n mod_(a | 0, b | 0)\n ];\n}\nfunction divideWithModulo() {\n if (arguments.length === 1) {\n const args = arguments;\n return function fn(data) {\n return _divideWithModulo(data, args[0]);\n };\n }\n return _divideWithModulo(arguments[0], arguments[1]);\n}\nfunction _gt(a, b) {\n return a > b;\n}\nfunction gt() {\n if (arguments.length === 1) {\n const args = arguments;\n return function fn(data) {\n return _gt(data, args[0]);\n };\n }\n return _gt(arguments[0], arguments[1]);\n}\nfunction _gte(a, b) {\n return a >= b;\n}\nfunction gte() {\n if (arguments.length === 1) {\n const args = arguments;\n return function fn(data) {\n return _gte(data, args[0]);\n };\n }\n return _gte(arguments[0], arguments[1]);\n}\nfunction _lt(a, b) {\n return a < b;\n}\nfunction lt() {\n if (arguments.length === 1) {\n const args = arguments;\n return function fn(data) {\n return _lt(data, args[0]);\n };\n }\n return _lt(arguments[0], arguments[1]);\n}\nfunction _lte(a, b) {\n return a <= b;\n}\nfunction lte() {\n if (arguments.length === 1) {\n const args = arguments;\n return function fn(data) {\n return _lte(data, args[0]);\n };\n }\n return _lte(arguments[0], arguments[1]);\n}\nfunction _clamp(num, min, max) {\n return Math.min(Math.max(num, min), max);\n}\nfunction clamp() {\n if (arguments.length === 2) {\n const args = arguments;\n return function fn(data) {\n return _clamp(data, args[0], args[1]);\n };\n }\n return _clamp(arguments[0], arguments[1], arguments[2]);\n}\nexport {\n add,\n clamp,\n divide,\n divideWithModulo,\n gt,\n gte,\n lt,\n lte,\n modulo,\n multiply,\n placeholder,\n pred,\n subtract,\n succ\n};\n","import { N } from \"@mobily/ts-belt\";\n\nexport const estEntreDeuxNombres = (nombre: number, min: number, max: number): boolean =>\n N.gte(nombre, min) && N.lt(nombre, max);\n"],"names":["N.gte","N.lt"],"mappings":"AAyGA,SAAS,KAAK,GAAG,GAAG;AAClB,SAAO,KAAK;AACd;AACA,SAAS,MAAM;AACb,MAAI,UAAU,WAAW,GAAG;AAC1B,UAAM,OAAO;AACb,WAAO,SAAS,GAAG,MAAM;AACvB,aAAO,KAAK,MAAM,KAAK,CAAC,CAAC;AAAA,IAC/B;AAAA,EACG;AACD,SAAO,KAAK,UAAU,CAAC,GAAG,UAAU,CAAC,CAAC;AACxC;AACA,SAAS,IAAI,GAAG,GAAG;AACjB,SAAO,IAAI;AACb;AACA,SAAS,KAAK;AACZ,MAAI,UAAU,WAAW,GAAG;AAC1B,UAAM,OAAO;AACb,WAAO,SAAS,GAAG,MAAM;AACvB,aAAO,IAAI,MAAM,KAAK,CAAC,CAAC;AAAA,IAC9B;AAAA,EACG;AACD,SAAO,IAAI,UAAU,CAAC,GAAG,UAAU,CAAC,CAAC;AACvC;AC9HO,MAAM,sBAAsB,CAAC,QAAgB,KAAa,QAC/DA,IAAM,QAAQ,GAAG,KAAKC,GAAK,QAAQ,GAAG;","x_google_ignoreList":[0]}
|
||||||
|
|
@ -4,7 +4,7 @@ import { p as parse } from "./index.CCa5Y_L9.js";
|
||||||
import { e as ENTETE_WC_NONCE } from "./api.js";
|
import { e as ENTETE_WC_NONCE } from "./api.js";
|
||||||
import { a as leveBadRequestError, b as leveUnauthorizedError, c as leveNotFoundError, d as leveErreur, E as ErreurInconnue } from "./erreurs.js";
|
import { a as leveBadRequestError, b as leveUnauthorizedError, c as leveNotFoundError, d as leveErreur, E as ErreurInconnue } from "./erreurs.js";
|
||||||
import { e as estWCError } from "./erreurs2.js";
|
import { e as estWCError } from "./erreurs2.js";
|
||||||
import "./exports.D-K_zMCo.js";
|
import "./exports.DMCTjIlP.js";
|
||||||
const postBackend = (args) => fetch(
|
const postBackend = (args) => fetch(
|
||||||
args.route,
|
args.route,
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@ import { r as recupereElementOuLeve } from "./dom2.js";
|
||||||
import { v as valideMessageMajBoutonPanier } from "./messages.js";
|
import { v as valideMessageMajBoutonPanier } from "./messages.js";
|
||||||
import { r as recupereElementDocumentEither } from "./utils.js";
|
import { r as recupereElementDocumentEither } from "./utils.js";
|
||||||
import "./erreurs.js";
|
import "./erreurs.js";
|
||||||
import "./exports.D-K_zMCo.js";
|
import "./exports.DMCTjIlP.js";
|
||||||
import "./Either.wHNxn7Os.js";
|
import "./Either.wHNxn7Os.js";
|
||||||
import "./index.CCa5Y_L9.js";
|
import "./index.CCa5Y_L9.js";
|
||||||
import "./messages2.js";
|
import "./messages2.js";
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,40 @@
|
||||||
|
import { a as SELECTEUR_CONTENEUR_STORYTELLING, b as SELECTEUR_IMAGES_STORYTELLING, c as ATTRIBUT_INDEX, d as ATTRIBUT_CACHE, e as ATTRIBUT_ARIA_HIDDEN } from "./dom.js";
|
||||||
|
import { e as estEntreDeuxNombres } from "./nombres.js";
|
||||||
|
import { a as recupereElementDansDocumentOuLeve, b as recupereElementsDansDocumentOuLeve } from "./utils.js";
|
||||||
|
import "./chunk-7BKSRZNG.C39W3Wne.js";
|
||||||
|
import "./dom2.js";
|
||||||
|
import "./erreurs.js";
|
||||||
|
import "./exports.DMCTjIlP.js";
|
||||||
|
import "./Either.wHNxn7Os.js";
|
||||||
|
const initialiseScrollStorytelling = () => {
|
||||||
|
const CONTENEUR_STORYTELLING = recupereElementDansDocumentOuLeve(SELECTEUR_CONTENEUR_STORYTELLING);
|
||||||
|
const IMAGES_STORYTELLING = recupereElementsDansDocumentOuLeve(SELECTEUR_IMAGES_STORYTELLING);
|
||||||
|
let positionDefilementConteneur = 0;
|
||||||
|
let aucunRafraichissement = false;
|
||||||
|
const majImages = () => {
|
||||||
|
if (!aucunRafraichissement) {
|
||||||
|
window.requestAnimationFrame(() => {
|
||||||
|
const changeVisibiliteImage = (image, visible) => {
|
||||||
|
image.toggleAttribute(ATTRIBUT_CACHE, visible);
|
||||||
|
image.toggleAttribute(ATTRIBUT_ARIA_HIDDEN, visible);
|
||||||
|
};
|
||||||
|
positionDefilementConteneur = CONTENEUR_STORYTELLING.scrollTop;
|
||||||
|
IMAGES_STORYTELLING.forEach((image) => {
|
||||||
|
const indexImage = Number(image.getAttribute(ATTRIBUT_INDEX));
|
||||||
|
const hauteurImage = image.getBoundingClientRect().height;
|
||||||
|
const debutYImage = hauteurImage * (indexImage - 1);
|
||||||
|
const finYImage = hauteurImage * indexImage;
|
||||||
|
estEntreDeuxNombres(positionDefilementConteneur, debutYImage, finYImage) ? changeVisibiliteImage(image, false) : changeVisibiliteImage(image, true);
|
||||||
|
});
|
||||||
|
aucunRafraichissement = false;
|
||||||
|
});
|
||||||
|
aucunRafraichissement = true;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
new ResizeObserver(() => majImages()).observe(CONTENEUR_STORYTELLING);
|
||||||
|
CONTENEUR_STORYTELLING.addEventListener("scroll", () => majImages());
|
||||||
|
};
|
||||||
|
document.addEventListener("DOMContentLoaded", () => {
|
||||||
|
initialiseScrollStorytelling();
|
||||||
|
});
|
||||||
|
//# sourceMappingURL=scripts-page-accueil.js.map
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
{"version":3,"file":"scripts-page-accueil.js","sources":["../../src/scripts/scripts-page-accueil.ts"],"sourcesContent":["// Scripts pour la Page d'accueil\n\nimport {\n ATTRIBUT_ARIA_HIDDEN,\n ATTRIBUT_CACHE,\n ATTRIBUT_INDEX,\n SELECTEUR_CONTENEUR_STORYTELLING,\n SELECTEUR_IMAGES_STORYTELLING,\n} from \"./constantes/dom.ts\";\nimport { estEntreDeuxNombres } from \"./lib/nombres.ts\";\nimport { recupereElementDansDocumentOuLeve, recupereElementsDansDocumentOuLeve } from \"./lib/utils.ts\";\n\nconst initialiseScrollStorytelling = (): void => {\n /** Le Conteneur des images du storytelling. */\n const CONTENEUR_STORYTELLING = recupereElementDansDocumentOuLeve<HTMLElement>(SELECTEUR_CONTENEUR_STORYTELLING);\n /** Les Images du storytelling. */\n const IMAGES_STORYTELLING = recupereElementsDansDocumentOuLeve<HTMLDivElement>(SELECTEUR_IMAGES_STORYTELLING);\n\n // Variables mutables\n /** La position du défilement (en pixels) du Conteneur des images du storytelling. */\n let positionDefilementConteneur = 0;\n /** Booléen permettant de limiter le rafraîchissement des images du storytelling. */\n let aucunRafraichissement = false;\n\n const majImages = (): void => {\n // Limite le rafraîchissement des images\n if (!aucunRafraichissement) {\n window.requestAnimationFrame((): void => {\n const changeVisibiliteImage = (image: HTMLDivElement, visible: boolean) => {\n image.toggleAttribute(ATTRIBUT_CACHE, visible);\n image.toggleAttribute(ATTRIBUT_ARIA_HIDDEN, visible);\n };\n\n // Met à jour la position du défilement dans le Conteneur\n positionDefilementConteneur = CONTENEUR_STORYTELLING.scrollTop;\n\n // Met à jour l'attribut de visibilité des images en fonction du défilement\n IMAGES_STORYTELLING.forEach((image: HTMLDivElement): void => {\n const indexImage = Number(image.getAttribute(ATTRIBUT_INDEX));\n const hauteurImage = image.getBoundingClientRect().height;\n const debutYImage = hauteurImage * (indexImage - 1);\n const finYImage = hauteurImage * indexImage;\n\n estEntreDeuxNombres(positionDefilementConteneur, debutYImage, finYImage)\n ? changeVisibiliteImage(image, false)\n : changeVisibiliteImage(image, true);\n });\n\n aucunRafraichissement = false;\n });\n aucunRafraichissement = true;\n }\n };\n\n // Initialise l'Observateur de Redimensionnement (ResizeObserver)\n new ResizeObserver((): void => majImages()).observe(CONTENEUR_STORYTELLING);\n // Initialise la mise à jour des images au défilement sur le Conteneur\n CONTENEUR_STORYTELLING.addEventListener(\"scroll\", (): void => majImages());\n};\n\ndocument.addEventListener(\"DOMContentLoaded\", (): void => {\n initialiseScrollStorytelling();\n});\n"],"names":[],"mappings":";;;;;;;;AAYA,MAAM,+BAA+B,MAAY;AAEzC,QAAA,yBAAyB,kCAA+C,gCAAgC;AAExG,QAAA,sBAAsB,mCAAmD,6BAA6B;AAI5G,MAAI,8BAA8B;AAElC,MAAI,wBAAwB;AAE5B,QAAM,YAAY,MAAY;AAE5B,QAAI,CAAC,uBAAuB;AAC1B,aAAO,sBAAsB,MAAY;AACjC,cAAA,wBAAwB,CAAC,OAAuB,YAAqB;AACnE,gBAAA,gBAAgB,gBAAgB,OAAO;AACvC,gBAAA,gBAAgB,sBAAsB,OAAO;AAAA,QAAA;AAIrD,sCAA8B,uBAAuB;AAGjC,4BAAA,QAAQ,CAAC,UAAgC;AAC3D,gBAAM,aAAa,OAAO,MAAM,aAAa,cAAc,CAAC;AACtD,gBAAA,eAAe,MAAM,sBAAA,EAAwB;AAC7C,gBAAA,cAAc,gBAAgB,aAAa;AACjD,gBAAM,YAAY,eAAe;AAEb,8BAAA,6BAA6B,aAAa,SAAS,IACnE,sBAAsB,OAAO,KAAK,IAClC,sBAAsB,OAAO,IAAI;AAAA,QAAA,CACtC;AAEuB,gCAAA;AAAA,MAAA,CACzB;AACuB,8BAAA;AAAA,IAC1B;AAAA,EAAA;AAIF,MAAI,eAAe,MAAY,UAAA,CAAW,EAAE,QAAQ,sBAAsB;AAE1E,yBAAuB,iBAAiB,UAAU,MAAY,UAAW,CAAA;AAC3E;AAEA,SAAS,iBAAiB,oBAAoB,MAAY;AAC3B;AAC/B,CAAC;"}
|
||||||
|
|
@ -1,9 +1,9 @@
|
||||||
import { r } from "./chunk-RU7WR4KH.D5j7HXCF.js";
|
import { r } from "./chunk-RU7WR4KH.D5j7HXCF.js";
|
||||||
import { u, a as recupereElementsDocumentEither, r as recupereElementDocumentEither, p, b as propEither } from "./utils.js";
|
import { u, c as recupereElementsDocumentEither, r as recupereElementDocumentEither, p, d as propEither } from "./utils.js";
|
||||||
import { x } from "./chunk-7BKSRZNG.C39W3Wne.js";
|
import { x } from "./chunk-7BKSRZNG.C39W3Wne.js";
|
||||||
import { p as parse } from "./index.CCa5Y_L9.js";
|
import { p as parse } from "./index.CCa5Y_L9.js";
|
||||||
import { R as ROUTE_API_RETIRE_ARTICLE_PANIER, b as ROUTE_API_MAJ_ARTICLE_PANIER, c as ROUTE_API_MAJ_CLIENT } from "./api.js";
|
import { R as ROUTE_API_RETIRE_ARTICLE_PANIER, b as ROUTE_API_MAJ_ARTICLE_PANIER, c as ROUTE_API_MAJ_CLIENT } from "./api.js";
|
||||||
import { a as SELECTEUR_ENTREES_PANIER, b as SELECTEUR_CONTENEUR_PANIER, c as SELECTEUR_SOUS_TOTAL_PANIER, d as SELECTEUR_TOTAL_PANIER, e as SELECTEUR_BOUTON_SEPARATION_ADRESSES, f as SELECTEUR_FORMULAIRE_PANIER, g as SELECTEUR_FORMULAIRE_LIVRAISON, h as SELECTEUR_FORMULAIRE_FACTURATION, i as SELECTEUR_BOUTON_ACTIONS_FORMULAIRE, j as ATTRIBUT_CLE_PANIER, k as SELECTEUR_BOUTON_SOUSTRACTION_QUANTITE, l as SELECTEUR_CHAMP_QUANTITE_LIGNE_PANIER, m as SELECTEUR_BOUTON_ADDITION_QUANTITE, n as SELECTEUR_BOUTON_SUPPRESSION_PANIER, A as ATTRIBUT_CONTIENT_ARTICLES, o as SELECTEUR_PRIX_LIGNE_PANIER, p as ATTRIBUT_HIDDEN, q as ATTRIBUT_DESACTIVE } from "./dom.js";
|
import { f as SELECTEUR_ENTREES_PANIER, g as SELECTEUR_CONTENEUR_PANIER, h as SELECTEUR_SOUS_TOTAL_PANIER, i as SELECTEUR_TOTAL_PANIER, j as SELECTEUR_BOUTON_SEPARATION_ADRESSES, k as SELECTEUR_FORMULAIRE_PANIER, l as SELECTEUR_FORMULAIRE_LIVRAISON, m as SELECTEUR_FORMULAIRE_FACTURATION, n as SELECTEUR_BOUTON_ACTIONS_FORMULAIRE, o as ATTRIBUT_CLE_PANIER, p as SELECTEUR_BOUTON_SOUSTRACTION_QUANTITE, q as SELECTEUR_CHAMP_QUANTITE_LIGNE_PANIER, r as SELECTEUR_BOUTON_ADDITION_QUANTITE, s as SELECTEUR_BOUTON_SUPPRESSION_PANIER, A as ATTRIBUT_CONTIENT_ARTICLES, t as SELECTEUR_PRIX_LIGNE_PANIER, u as ATTRIBUT_HIDDEN, v as ATTRIBUT_DESACTIVE } from "./dom.js";
|
||||||
import { N as NOM_CANAL_BOUTON_PANIER, a as NOM_CANAL_CONTENU_PANIER } from "./messages3.js";
|
import { N as NOM_CANAL_BOUTON_PANIER, a as NOM_CANAL_CONTENU_PANIER } from "./messages3.js";
|
||||||
import { r as recupereElementOuLeve, a as recupereElementsAvecSelecteur, b as recupereElementAvecSelecteur } from "./dom2.js";
|
import { r as recupereElementOuLeve, a as recupereElementsAvecSelecteur, b as recupereElementAvecSelecteur } from "./dom2.js";
|
||||||
import { l as leveServerError, r as reporteErreur } from "./erreurs.js";
|
import { l as leveServerError, r as reporteErreur } from "./erreurs.js";
|
||||||
|
|
@ -15,7 +15,7 @@ import { W as WCStoreCartRemoveItemArgsSchema } from "./cart-remove-item.js";
|
||||||
import { W as WCStoreCartUpdateCustomerArgsSchema } from "./cart-update-customer.js";
|
import { W as WCStoreCartUpdateCustomerArgsSchema } from "./cart-update-customer.js";
|
||||||
import { W as WCStoreCartUpdateItemArgsSchema } from "./cart-update-item.js";
|
import { W as WCStoreCartUpdateItemArgsSchema } from "./cart-update-item.js";
|
||||||
import { M as Maybe, E as Either } from "./Either.wHNxn7Os.js";
|
import { M as Maybe, E as Either } from "./Either.wHNxn7Os.js";
|
||||||
import "./exports.D-K_zMCo.js";
|
import "./exports.DMCTjIlP.js";
|
||||||
import "./messages2.js";
|
import "./messages2.js";
|
||||||
import "./index.CeK6pfoJ.js";
|
import "./index.CeK6pfoJ.js";
|
||||||
import "./erreurs2.js";
|
import "./erreurs2.js";
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
import { r } from "./chunk-RU7WR4KH.D5j7HXCF.js";
|
import { r } from "./chunk-RU7WR4KH.D5j7HXCF.js";
|
||||||
import { r as recupereElementDocumentEither, a as recupereElementsDocumentEither, p } from "./utils.js";
|
import { r as recupereElementDocumentEither, c as recupereElementsDocumentEither, p } from "./utils.js";
|
||||||
import { x } from "./chunk-7BKSRZNG.C39W3Wne.js";
|
import { x } from "./chunk-7BKSRZNG.C39W3Wne.js";
|
||||||
import { z, N } from "./index.CeK6pfoJ.js";
|
import { z, N } from "./index.CeK6pfoJ.js";
|
||||||
import { p as parse } from "./index.CCa5Y_L9.js";
|
import { p as parse } from "./index.CCa5Y_L9.js";
|
||||||
import { d as ROUTE_API_AJOUTE_ARTICLE_PANIER, e as ENTETE_WC_NONCE } from "./api.js";
|
import { d as ROUTE_API_AJOUTE_ARTICLE_PANIER, e as ENTETE_WC_NONCE } from "./api.js";
|
||||||
import { r as SELECTEUR_BOUTON_AJOUT_PANIER, s as SELECTEUR_SELECTEUR_QUANTITE, t as SELECTEUR_LIENS_ONGLETS, u as SELECTEUR_SECTIONS_CONTENUS, v as ATTRIBUT_ARIA_SELECTED, p as ATTRIBUT_HIDDEN, q as ATTRIBUT_DESACTIVE } from "./dom.js";
|
import { w as SELECTEUR_BOUTON_AJOUT_PANIER, x as SELECTEUR_SELECTEUR_QUANTITE, y as SELECTEUR_LIENS_ONGLETS, z as SELECTEUR_SECTIONS_CONTENUS, B as ATTRIBUT_ARIA_SELECTED, u as ATTRIBUT_HIDDEN, v as ATTRIBUT_DESACTIVE } from "./dom.js";
|
||||||
import { r as recupereElementOuLeve, c as recupereElementsOuLeve } from "./dom2.js";
|
import { r as recupereElementOuLeve, c as recupereElementsOuLeve } from "./dom2.js";
|
||||||
import { l as leveServerError, a as leveBadRequestError, b as leveUnauthorizedError, c as leveNotFoundError, E as ErreurInconnue, d as leveErreur, r as reporteErreur } from "./erreurs.js";
|
import { l as leveServerError, a as leveBadRequestError, b as leveUnauthorizedError, c as leveNotFoundError, E as ErreurInconnue, d as leveErreur, r as reporteErreur } from "./erreurs.js";
|
||||||
import { b as estHTMLSelectElement, e as estReponse500, a as estError } from "./gardes.js";
|
import { b as estHTMLSelectElement, e as estReponse500, a as estError } from "./gardes.js";
|
||||||
|
|
@ -13,7 +13,7 @@ import { W as WCStoreCartSchema } from "./cart.js";
|
||||||
import { p as parseWCStoreCartAddItemArgs } from "./cart-add-item.js";
|
import { p as parseWCStoreCartAddItemArgs } from "./cart-add-item.js";
|
||||||
import { e as estWCError } from "./erreurs2.js";
|
import { e as estWCError } from "./erreurs2.js";
|
||||||
import { M as Maybe, E as Either } from "./Either.wHNxn7Os.js";
|
import { M as Maybe, E as Either } from "./Either.wHNxn7Os.js";
|
||||||
import "./exports.D-K_zMCo.js";
|
import "./exports.DMCTjIlP.js";
|
||||||
import "./messages3.js";
|
import "./messages3.js";
|
||||||
import "./messages2.js";
|
import "./messages2.js";
|
||||||
import "./cart2.js";
|
import "./cart2.js";
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
import { a as recupereElementsAvecSelecteur, b as recupereElementAvecSelecteur } from "./dom2.js";
|
import { x } from "./chunk-7BKSRZNG.C39W3Wne.js";
|
||||||
|
import { a as recupereElementsAvecSelecteur, b as recupereElementAvecSelecteur, r as recupereElementOuLeve, c as recupereElementsOuLeve } from "./dom2.js";
|
||||||
import { C as CleNonTrouveError } from "./erreurs.js";
|
import { C as CleNonTrouveError } from "./erreurs.js";
|
||||||
import { M as Maybe } from "./Either.wHNxn7Os.js";
|
import { M as Maybe } from "./Either.wHNxn7Os.js";
|
||||||
import "./chunk-7BKSRZNG.C39W3Wne.js";
|
import "./exports.DMCTjIlP.js";
|
||||||
import "./exports.D-K_zMCo.js";
|
|
||||||
function u$1(t2, n, a) {
|
function u$1(t2, n, a) {
|
||||||
let o = (r) => t2(r, ...n);
|
let o = (r) => t2(r, ...n);
|
||||||
return a === void 0 ? o : Object.assign(o, { lazy: a, lazyArgs: n });
|
return a === void 0 ? o : Object.assign(o, { lazy: a, lazyArgs: n });
|
||||||
|
|
@ -20,11 +20,21 @@ var t = (o, e) => o[e];
|
||||||
const recupereElementsDocumentEither = recupereElementsAvecSelecteur(document);
|
const recupereElementsDocumentEither = recupereElementsAvecSelecteur(document);
|
||||||
const recupereElementDocumentEither = recupereElementAvecSelecteur(document);
|
const recupereElementDocumentEither = recupereElementAvecSelecteur(document);
|
||||||
const propEither = (cle) => (donnees) => Maybe.fromNullable(p(donnees, cle)).toEither(
|
const propEither = (cle) => (donnees) => Maybe.fromNullable(p(donnees, cle)).toEither(
|
||||||
new CleNonTrouveError(`La clé « ${String(cle)} » n'a pas été trouvé dans l'objet.`, { objet: donnees })
|
new CleNonTrouveError(`La clé « ${String(cle)} » n'a pas été trouvé dans l'objet.`)
|
||||||
|
);
|
||||||
|
const recupereElementDansDocumentOuLeve = (selecteur) => x(
|
||||||
|
recupereElementDocumentEither(selecteur),
|
||||||
|
recupereElementOuLeve
|
||||||
|
);
|
||||||
|
const recupereElementsDansDocumentOuLeve = (selecteur) => x(
|
||||||
|
recupereElementsDocumentEither(selecteur),
|
||||||
|
recupereElementsOuLeve
|
||||||
);
|
);
|
||||||
export {
|
export {
|
||||||
recupereElementsDocumentEither as a,
|
recupereElementDansDocumentOuLeve as a,
|
||||||
propEither as b,
|
recupereElementsDansDocumentOuLeve as b,
|
||||||
|
recupereElementsDocumentEither as c,
|
||||||
|
propEither as d,
|
||||||
p,
|
p,
|
||||||
recupereElementDocumentEither as r,
|
recupereElementDocumentEither as r,
|
||||||
u
|
u
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
{"version":3,"file":"utils.js","sources":["../../../../../../node_modules/.pnpm/remeda@2.15.0/node_modules/remeda/dist/chunk-K26VP6CL.js","../../../../../../node_modules/.pnpm/remeda@2.15.0/node_modules/remeda/dist/chunk-RAAYCPUM.js","../../../../../../node_modules/.pnpm/remeda@2.15.0/node_modules/remeda/dist/chunk-VROY5Y5B.js","../../src/scripts/lib/utils.ts"],"sourcesContent":["function u(t,n,a){let o=r=>t(r,...n);return a===void 0?o:Object.assign(o,{lazy:a,lazyArgs:n})}export{u as a};\n","import{a as t}from\"./chunk-K26VP6CL.js\";function u(r,n,a){let o=r.length-n.length;if(o===0)return r(...n);if(o===1)return t(r,n,a);throw new Error(\"Wrong number of arguments\")}export{u as a};\n","import{a as n}from\"./chunk-RAAYCPUM.js\";function p(...o){return n(t,o)}var t=(o,e)=>o[e];export{p as a,t as b};\n","import { type Either, Maybe } from \"purify-ts\";\nimport { prop } from \"remeda\";\n\nimport { recupereElementAvecSelecteur, recupereElementsAvecSelecteur } from \"./dom.ts\";\nimport { CleNonTrouveError } from \"./erreurs.ts\";\n\nexport const recupereElementsDocumentEither: <E extends Element = Element>(\n selecteur: string,\n) => Either<SyntaxError, Array<E>> = recupereElementsAvecSelecteur(document);\n\nexport const recupereElementDocumentEither: <E extends Element = Element>(\n selecteur: string,\n) => Either<SyntaxError, E> = recupereElementAvecSelecteur(document);\n\nexport const propEither = <T, K extends keyof T>(cle: K) => (donnees: T): Either<CleNonTrouveError, T[K]> =>\n Maybe\n .fromNullable(prop(donnees, cle))\n .toEither(\n new CleNonTrouveError(`La clé « ${String(cle)} » n'a pas été trouvé dans l'objet.`, { objet: donnees }),\n );\n"],"names":["u","t","n","prop"],"mappings":";;;;;AAAA,SAASA,IAAEC,IAAE,GAAE,GAAE;AAAC,MAAI,IAAE,OAAGA,GAAE,GAAE,GAAG,CAAC;AAAE,SAAO,MAAI,SAAO,IAAE,OAAO,OAAO,GAAE,EAAC,MAAK,GAAE,UAAS,EAAC,CAAC;AAAC;ACArD,SAAS,EAAE,GAAE,GAAE,GAAE;AAAC,MAAI,IAAE,EAAE,SAAO,EAAE;AAAO,MAAG,MAAI,EAAE,QAAO,EAAE,GAAG,CAAC;AAAE,MAAG,MAAI,EAAE,QAAOA,IAAE,GAAE,GAAE,CAAC;AAAE,QAAM,IAAI,MAAM,2BAA2B;AAAC;ACAvI,SAAS,KAAK,GAAE;AAAC,SAAOC,EAAE,GAAE,CAAC;AAAC;AAAC,IAAI,IAAE,CAAC,GAAE,MAAI,EAAE,CAAC;ACM1E,MAAA,iCAEwB,8BAA8B,QAAQ;AAE9D,MAAA,gCAEiB,6BAA6B,QAAQ;AAEtD,MAAA,aAAa,CAAuB,QAAW,CAAC,YAC3D,MACG,aAAaC,EAAK,SAAS,GAAG,CAAC,EAC/B;AAAA,EACC,IAAI,kBAAkB,YAAY,OAAO,GAAG,CAAC,uCAAuC,EAAE,OAAO,SAAS;AACxG;","x_google_ignoreList":[0,1,2]}
|
{"version":3,"file":"utils.js","sources":["../../../../../../node_modules/.pnpm/remeda@2.15.0/node_modules/remeda/dist/chunk-K26VP6CL.js","../../../../../../node_modules/.pnpm/remeda@2.15.0/node_modules/remeda/dist/chunk-RAAYCPUM.js","../../../../../../node_modules/.pnpm/remeda@2.15.0/node_modules/remeda/dist/chunk-VROY5Y5B.js","../../src/scripts/lib/utils.ts"],"sourcesContent":["function u(t,n,a){let o=r=>t(r,...n);return a===void 0?o:Object.assign(o,{lazy:a,lazyArgs:n})}export{u as a};\n","import{a as t}from\"./chunk-K26VP6CL.js\";function u(r,n,a){let o=r.length-n.length;if(o===0)return r(...n);if(o===1)return t(r,n,a);throw new Error(\"Wrong number of arguments\")}export{u as a};\n","import{a as n}from\"./chunk-RAAYCPUM.js\";function p(...o){return n(t,o)}var t=(o,e)=>o[e];export{p as a,t as b};\n","import { type Either, Maybe } from \"purify-ts\";\nimport { pipe, prop } from \"remeda\";\n\nimport {\n recupereElementAvecSelecteur,\n recupereElementOuLeve,\n recupereElementsAvecSelecteur,\n recupereElementsOuLeve,\n} from \"./dom.ts\";\nimport { CleNonTrouveError } from \"./erreurs.ts\";\n\nexport const recupereElementsDocumentEither: <E extends Element = Element>(\n selecteur: string,\n) => Either<SyntaxError, Array<E>> = recupereElementsAvecSelecteur(document);\n\nexport const recupereElementDocumentEither: <E extends Element = Element>(\n selecteur: string,\n) => Either<SyntaxError, E> = recupereElementAvecSelecteur(document);\n\nexport const propEither = <T, K extends keyof T>(cle: K) => (donnees: T): Either<CleNonTrouveError, T[K]> =>\n Maybe\n .fromNullable(prop(donnees, cle))\n .toEither(\n new CleNonTrouveError(`La clé « ${String(cle)} » n'a pas été trouvé dans l'objet.`),\n );\n\n/**\n * Fonction utilitaire pour récupérer un Élément selon un sélecteur au sein du Document.\n *\n * @param selecteur Le sélecteur de l'Élément recherché.\n * @throws Une SyntaxError si l'Élément n'est pas trouvé.\n * @returns Un Élément.\n */\nexport const recupereElementDansDocumentOuLeve = <E extends Element = Element>(selecteur: string): E =>\n pipe(\n recupereElementDocumentEither<E>(selecteur),\n recupereElementOuLeve,\n );\n\n/**\n * Fonction utilitaire pour récupérer des Éléments selon un sélecteur au sein du Document.\n *\n * @param selecteur Le sélecteur des Éléments recherchés.\n * @throws Une SyntaxError si aucun Élément n'est trouvé.\n * @returns Un tableau d'Éléments.\n */\nexport const recupereElementsDansDocumentOuLeve = <E extends Element = Element>(selecteur: string): Array<E> =>\n pipe(\n recupereElementsDocumentEither<E>(selecteur),\n recupereElementsOuLeve,\n );\n"],"names":["u","t","n","prop","pipe"],"mappings":";;;;;AAAA,SAASA,IAAEC,IAAE,GAAE,GAAE;AAAC,MAAI,IAAE,OAAGA,GAAE,GAAE,GAAG,CAAC;AAAE,SAAO,MAAI,SAAO,IAAE,OAAO,OAAO,GAAE,EAAC,MAAK,GAAE,UAAS,EAAC,CAAC;AAAC;ACArD,SAAS,EAAE,GAAE,GAAE,GAAE;AAAC,MAAI,IAAE,EAAE,SAAO,EAAE;AAAO,MAAG,MAAI,EAAE,QAAO,EAAE,GAAG,CAAC;AAAE,MAAG,MAAI,EAAE,QAAOA,IAAE,GAAE,GAAE,CAAC;AAAE,QAAM,IAAI,MAAM,2BAA2B;AAAC;ACAvI,SAAS,KAAK,GAAE;AAAC,SAAOC,EAAE,GAAE,CAAC;AAAC;AAAC,IAAI,IAAE,CAAC,GAAE,MAAI,EAAE,CAAC;ACW1E,MAAA,iCAEwB,8BAA8B,QAAQ;AAE9D,MAAA,gCAEiB,6BAA6B,QAAQ;AAEtD,MAAA,aAAa,CAAuB,QAAW,CAAC,YAC3D,MACG,aAAaC,EAAK,SAAS,GAAG,CAAC,EAC/B;AAAA,EACC,IAAI,kBAAkB,YAAY,OAAO,GAAG,CAAC,qCAAqC;AACpF;AASS,MAAA,oCAAoC,CAA8B,cAC7EC;AAAAA,EACE,8BAAiC,SAAS;AAAA,EAC1C;AACF;AASW,MAAA,qCAAqC,CAA8B,cAC9EA;AAAAA,EACE,+BAAkC,SAAS;AAAA,EAC3C;AACF;","x_google_ignoreList":[0,1,2]}
|
||||||
|
|
@ -11,5 +11,23 @@ use Timber\Timber;
|
||||||
$contexte = Timber::context();
|
$contexte = Timber::context();
|
||||||
$modeles = ["accueil.twig"];
|
$modeles = ["accueil.twig"];
|
||||||
|
|
||||||
|
// Charge les scripts et styles de la page
|
||||||
|
function charge_scripts_styles_page_accueil(): void {
|
||||||
|
wp_enqueue_style(
|
||||||
|
handle: "haiku-atelier-2024-styles-page-accueil",
|
||||||
|
src: get_template_directory_uri() . "/assets/css/pages/page-accueil.css",
|
||||||
|
deps: [],
|
||||||
|
ver: filemtime(get_template_directory() . "/assets/css/pages/page-accueil.css"),
|
||||||
|
media: "all",
|
||||||
|
);
|
||||||
|
wp_enqueue_script_module(
|
||||||
|
id: "haiku-atelier-2024-scripts-page-accueil",
|
||||||
|
src: get_template_directory_uri() . "/assets/js/scripts-page-accueil.js",
|
||||||
|
deps: [],
|
||||||
|
version: filemtime(get_template_directory() . "/assets/js/scripts-page-accueil.js"),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
add_action("wp_enqueue_scripts", "charge_scripts_styles_page_accueil");
|
||||||
|
|
||||||
/* Rendu */
|
/* Rendu */
|
||||||
Timber::render($filenames = $modeles, $data = $contexte);
|
Timber::render(filenames: $modeles, data: $contexte);
|
||||||
|
|
|
||||||
|
|
@ -25,6 +25,7 @@
|
||||||
/* Dimensions */
|
/* Dimensions */
|
||||||
--en-tete-hauteur: 60px;
|
--en-tete-hauteur: 60px;
|
||||||
--menu-categories-produits-hauteur: 54.39px;
|
--menu-categories-produits-hauteur: 54.39px;
|
||||||
|
--pied-de-page-hauteur: calc(var(--espace-m) * 2 + 3lh);
|
||||||
|
|
||||||
/* Espacements */
|
/* Espacements */
|
||||||
--espace-xs: 0.25rem; // 4px;
|
--espace-xs: 0.25rem; // 4px;
|
||||||
|
|
|
||||||
|
|
@ -47,7 +47,7 @@ button, input, select, textarea {
|
||||||
background: var(--couleur-jaune);
|
background: var(--couleur-jaune);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Désaffiche tout élément avec l'attribut hidden */
|
/* Cache tout élément avec l'attribut hidden */
|
||||||
[hidden] {
|
[hidden] {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -22,6 +22,7 @@
|
||||||
padding: var(--en-tete-marges-internes-bloc) var(--en-tete-marges-internes-ligne);
|
padding: var(--en-tete-marges-internes-bloc) var(--en-tete-marges-internes-ligne);
|
||||||
font-size: 1.1rem;
|
font-size: 1.1rem;
|
||||||
background: var(--couleur-gris);
|
background: var(--couleur-gris);
|
||||||
|
border-bottom: 1px solid var(--couleur-noir);
|
||||||
|
|
||||||
.logo {
|
.logo {
|
||||||
width: var(--en-tete-logo-longueur);
|
width: var(--en-tete-logo-longueur);
|
||||||
|
|
@ -69,6 +70,7 @@
|
||||||
display: inline-block; /* 1 */
|
display: inline-block; /* 1 */
|
||||||
padding: var(--nav-entree-marges-internes-bloc)
|
padding: var(--nav-entree-marges-internes-bloc)
|
||||||
var(--nav-entree-marges-internes-ligne); /* 2 */
|
var(--nav-entree-marges-internes-ligne); /* 2 */
|
||||||
|
|
||||||
text-align: center; /* 4 */
|
text-align: center; /* 4 */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -87,7 +87,8 @@
|
||||||
grid-column: span 3;
|
grid-column: span 3;
|
||||||
align-content: center;
|
align-content: center;
|
||||||
min-height: calc(
|
min-height: calc(
|
||||||
100vh - var(--menu-categories-produits-hauteur) - var(--en-tete-hauteur) - 105px
|
100vh - var(--menu-categories-produits-hauteur) - var(--en-tete-hauteur)
|
||||||
|
- var(--pied-de-page-hauteur)
|
||||||
);
|
);
|
||||||
text-align: center;
|
text-align: center;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,6 @@
|
||||||
// Styles pour le pied de page du site
|
// Styles pour le pied de page du site
|
||||||
|
|
||||||
/* *
|
// Le pied de page du site
|
||||||
* Le pied de page du site.
|
|
||||||
*/
|
|
||||||
#pied-de-page {
|
#pied-de-page {
|
||||||
/* Marges */
|
/* Marges */
|
||||||
--pied-de-page-marges-internes-bloc: var(--espace-m);
|
--pied-de-page-marges-internes-bloc: var(--espace-m);
|
||||||
|
|
@ -12,11 +10,12 @@
|
||||||
grid-template-columns: 1fr 1fr;
|
grid-template-columns: 1fr 1fr;
|
||||||
place-items: center;
|
place-items: center;
|
||||||
max-width: 100vw;
|
max-width: 100vw;
|
||||||
|
height: var(--pied-de-page-hauteur);
|
||||||
padding: var(--pied-de-page-marges-internes-bloc) var(--pied-de-page-marges-internes-ligne);
|
padding: var(--pied-de-page-marges-internes-bloc) var(--pied-de-page-marges-internes-ligne);
|
||||||
line-height: var(--hauteur-ligne-classique);
|
|
||||||
background: var(--couleur-jaune);
|
background: var(--couleur-jaune);
|
||||||
border-top: 1px solid var(--couleur-noir);
|
border-top: 1px solid var(--couleur-noir);
|
||||||
|
|
||||||
|
// Liens vers les pages du site
|
||||||
.zone-menu-navigation-secondaire {
|
.zone-menu-navigation-secondaire {
|
||||||
justify-self: start;
|
justify-self: start;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
|
@ -24,6 +23,7 @@
|
||||||
text-transform: lowercase;
|
text-transform: lowercase;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Liens vers les réseaux sociaux
|
||||||
.zone-liens-reseaux-sociaux {
|
.zone-liens-reseaux-sociaux {
|
||||||
justify-items: end;
|
justify-items: end;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,53 @@
|
||||||
|
// Styles pour la page d'accueil
|
||||||
|
|
||||||
|
#page-accueil {
|
||||||
|
/* Dimensions */
|
||||||
|
--hauteur-conteneur: calc(100vh - var(--en-tete-hauteur) - var(--pied-de-page-hauteur));
|
||||||
|
|
||||||
|
/* Marges */
|
||||||
|
--page-marges-bloc-debut: var(--en-tete-hauteur);
|
||||||
|
|
||||||
|
overflow: hidden;
|
||||||
|
display: flex;
|
||||||
|
flex-flow: column nowrap;
|
||||||
|
min-height: var(--hauteur-conteneur);
|
||||||
|
max-height: var(--hauteur-conteneur);
|
||||||
|
margin-top: var(--page-marges-bloc-debut);
|
||||||
|
|
||||||
|
.storytelling {
|
||||||
|
scrollbar-width: none;
|
||||||
|
overflow-y: scroll;
|
||||||
|
place-items: center;
|
||||||
|
min-height: inherit;
|
||||||
|
max-height: inherit;
|
||||||
|
|
||||||
|
&__conteneur {
|
||||||
|
display: flex;
|
||||||
|
flex-flow: column nowrap;
|
||||||
|
min-height: calc(var(--hauteur-conteneur) * 10);
|
||||||
|
padding: 0 var(--espace-xl);
|
||||||
|
}
|
||||||
|
|
||||||
|
&__image {
|
||||||
|
position: sticky;
|
||||||
|
top: 0;
|
||||||
|
align-content: center;
|
||||||
|
width: 100%;
|
||||||
|
min-height: var(--hauteur-conteneur);
|
||||||
|
max-height: var(--hauteur-conteneur);
|
||||||
|
|
||||||
|
&[data-cache] {
|
||||||
|
visibility: hidden;
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
img {
|
||||||
|
scale: 0.9;
|
||||||
|
max-height: inherit;
|
||||||
|
margin: auto;
|
||||||
|
object-fit: contain;
|
||||||
|
background: transparent;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -16,7 +16,7 @@
|
||||||
|
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-flow: row wrap;
|
flex-flow: row wrap;
|
||||||
min-height: calc(100vh - var(--en-tete-hauteur) - 105px);
|
min-height: calc(100vh - var(--en-tete-hauteur) - var(--pied-de-page-hauteur));
|
||||||
margin-top: var(--menu-section-marges-bloc-debut);
|
margin-top: var(--menu-section-marges-bloc-debut);
|
||||||
|
|
||||||
&[data-contient-articles="false"] {
|
&[data-contient-articles="false"] {
|
||||||
|
|
@ -64,7 +64,7 @@
|
||||||
display: none;
|
display: none;
|
||||||
flex-basis: 100%;
|
flex-basis: 100%;
|
||||||
align-content: center;
|
align-content: center;
|
||||||
min-height: calc(100vh - var(--en-tete-hauteur) - 105px);
|
min-height: calc(100vh - var(--en-tete-hauteur) - var(--pied-de-page-hauteur));
|
||||||
text-align: center;
|
text-align: center;
|
||||||
|
|
||||||
p {
|
p {
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,13 @@
|
||||||
/** Constantes de valeurs pour la manipulation du DOM : sélecteurs et attributs. */
|
/** Constantes de valeurs pour la manipulation du DOM : sélecteurs et attributs. */
|
||||||
|
|
||||||
export const ATTRIBUT_ARIA_SELECTED = "aria-selected";
|
|
||||||
export const ATTRIBUT_ARIA_HIDDEN = "aria-hidden";
|
export const ATTRIBUT_ARIA_HIDDEN = "aria-hidden";
|
||||||
export const ATTRIBUT_HIDDEN = "hidden";
|
export const ATTRIBUT_ARIA_SELECTED = "aria-selected";
|
||||||
|
export const ATTRIBUT_CACHE = "data-cache";
|
||||||
|
export const ATTRIBUT_CLE_PANIER = "data-cle-panier";
|
||||||
export const ATTRIBUT_CONTIENT_ARTICLES = "data-contient-articles";
|
export const ATTRIBUT_CONTIENT_ARTICLES = "data-contient-articles";
|
||||||
export const ATTRIBUT_DESACTIVE = "disabled";
|
export const ATTRIBUT_DESACTIVE = "disabled";
|
||||||
export const ATTRIBUT_CLE_PANIER = "data-cle-panier";
|
export const ATTRIBUT_HIDDEN = "hidden";
|
||||||
|
export const ATTRIBUT_INDEX = "data-index";
|
||||||
|
|
||||||
export const SELECTEUR_CONTENEUR_PANIER = "#page-panier";
|
export const SELECTEUR_CONTENEUR_PANIER = "#page-panier";
|
||||||
export const SELECTEUR_BOUTON_PANIER = ".compte-panier a[rel='cart']";
|
export const SELECTEUR_BOUTON_PANIER = ".compte-panier a[rel='cart']";
|
||||||
|
|
@ -28,3 +30,7 @@ export const SELECTEUR_FORMULAIRE_PANIER = "#panneau-informations-client form";
|
||||||
export const SELECTEUR_FORMULAIRE_LIVRAISON = "#panneau-informations-client .panneau__formulaires__livraison";
|
export const SELECTEUR_FORMULAIRE_LIVRAISON = "#panneau-informations-client .panneau__formulaires__livraison";
|
||||||
export const SELECTEUR_FORMULAIRE_FACTURATION = "#panneau-informations-client .panneau__formulaires__facturation";
|
export const SELECTEUR_FORMULAIRE_FACTURATION = "#panneau-informations-client .panneau__formulaires__facturation";
|
||||||
export const SELECTEUR_BOUTON_ACTIONS_FORMULAIRE = "#panneau-informations-client .panneau__pied-de-page button";
|
export const SELECTEUR_BOUTON_ACTIONS_FORMULAIRE = "#panneau-informations-client .panneau__pied-de-page button";
|
||||||
|
|
||||||
|
// Accueil
|
||||||
|
export const SELECTEUR_CONTENEUR_STORYTELLING = ".storytelling";
|
||||||
|
export const SELECTEUR_IMAGES_STORYTELLING = ".storytelling__image";
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,4 @@
|
||||||
|
import { N } from "@mobily/ts-belt";
|
||||||
|
|
||||||
|
export const estEntreDeuxNombres = (nombre: number, min: number, max: number): boolean =>
|
||||||
|
N.gte(nombre, min) && N.lt(nombre, max);
|
||||||
|
|
@ -1,7 +1,12 @@
|
||||||
import { type Either, Maybe } from "purify-ts";
|
import { type Either, Maybe } from "purify-ts";
|
||||||
import { prop } from "remeda";
|
import { pipe, prop } from "remeda";
|
||||||
|
|
||||||
import { recupereElementAvecSelecteur, recupereElementsAvecSelecteur } from "./dom.ts";
|
import {
|
||||||
|
recupereElementAvecSelecteur,
|
||||||
|
recupereElementOuLeve,
|
||||||
|
recupereElementsAvecSelecteur,
|
||||||
|
recupereElementsOuLeve,
|
||||||
|
} from "./dom.ts";
|
||||||
import { CleNonTrouveError } from "./erreurs.ts";
|
import { CleNonTrouveError } from "./erreurs.ts";
|
||||||
|
|
||||||
export const recupereElementsDocumentEither: <E extends Element = Element>(
|
export const recupereElementsDocumentEither: <E extends Element = Element>(
|
||||||
|
|
@ -16,5 +21,31 @@ export const propEither = <T, K extends keyof T>(cle: K) => (donnees: T): Either
|
||||||
Maybe
|
Maybe
|
||||||
.fromNullable(prop(donnees, cle))
|
.fromNullable(prop(donnees, cle))
|
||||||
.toEither(
|
.toEither(
|
||||||
new CleNonTrouveError(`La clé « ${String(cle)} » n'a pas été trouvé dans l'objet.`, { objet: donnees }),
|
new CleNonTrouveError(`La clé « ${String(cle)} » n'a pas été trouvé dans l'objet.`),
|
||||||
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Fonction utilitaire pour récupérer un Élément selon un sélecteur au sein du Document.
|
||||||
|
*
|
||||||
|
* @param selecteur Le sélecteur de l'Élément recherché.
|
||||||
|
* @throws Une SyntaxError si l'Élément n'est pas trouvé.
|
||||||
|
* @returns Un Élément.
|
||||||
|
*/
|
||||||
|
export const recupereElementDansDocumentOuLeve = <E extends Element = Element>(selecteur: string): E =>
|
||||||
|
pipe(
|
||||||
|
recupereElementDocumentEither<E>(selecteur),
|
||||||
|
recupereElementOuLeve,
|
||||||
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Fonction utilitaire pour récupérer des Éléments selon un sélecteur au sein du Document.
|
||||||
|
*
|
||||||
|
* @param selecteur Le sélecteur des Éléments recherchés.
|
||||||
|
* @throws Une SyntaxError si aucun Élément n'est trouvé.
|
||||||
|
* @returns Un tableau d'Éléments.
|
||||||
|
*/
|
||||||
|
export const recupereElementsDansDocumentOuLeve = <E extends Element = Element>(selecteur: string): Array<E> =>
|
||||||
|
pipe(
|
||||||
|
recupereElementsDocumentEither<E>(selecteur),
|
||||||
|
recupereElementsOuLeve,
|
||||||
);
|
);
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,63 @@
|
||||||
|
// Scripts pour la Page d'accueil
|
||||||
|
|
||||||
|
import {
|
||||||
|
ATTRIBUT_ARIA_HIDDEN,
|
||||||
|
ATTRIBUT_CACHE,
|
||||||
|
ATTRIBUT_INDEX,
|
||||||
|
SELECTEUR_CONTENEUR_STORYTELLING,
|
||||||
|
SELECTEUR_IMAGES_STORYTELLING,
|
||||||
|
} from "./constantes/dom.ts";
|
||||||
|
import { estEntreDeuxNombres } from "./lib/nombres.ts";
|
||||||
|
import { recupereElementDansDocumentOuLeve, recupereElementsDansDocumentOuLeve } from "./lib/utils.ts";
|
||||||
|
|
||||||
|
const initialiseScrollStorytelling = (): void => {
|
||||||
|
/** Le Conteneur des images du storytelling. */
|
||||||
|
const CONTENEUR_STORYTELLING = recupereElementDansDocumentOuLeve<HTMLElement>(SELECTEUR_CONTENEUR_STORYTELLING);
|
||||||
|
/** Les Images du storytelling. */
|
||||||
|
const IMAGES_STORYTELLING = recupereElementsDansDocumentOuLeve<HTMLDivElement>(SELECTEUR_IMAGES_STORYTELLING);
|
||||||
|
|
||||||
|
// Variables mutables
|
||||||
|
/** La position du défilement (en pixels) du Conteneur des images du storytelling. */
|
||||||
|
let positionDefilementConteneur = 0;
|
||||||
|
/** Booléen permettant de limiter le rafraîchissement des images du storytelling. */
|
||||||
|
let aucunRafraichissement = false;
|
||||||
|
|
||||||
|
const majImages = (): void => {
|
||||||
|
// Limite le rafraîchissement des images
|
||||||
|
if (!aucunRafraichissement) {
|
||||||
|
window.requestAnimationFrame((): void => {
|
||||||
|
const changeVisibiliteImage = (image: HTMLDivElement, visible: boolean) => {
|
||||||
|
image.toggleAttribute(ATTRIBUT_CACHE, visible);
|
||||||
|
image.toggleAttribute(ATTRIBUT_ARIA_HIDDEN, visible);
|
||||||
|
};
|
||||||
|
|
||||||
|
// Met à jour la position du défilement dans le Conteneur
|
||||||
|
positionDefilementConteneur = CONTENEUR_STORYTELLING.scrollTop;
|
||||||
|
|
||||||
|
// Met à jour l'attribut de visibilité des images en fonction du défilement
|
||||||
|
IMAGES_STORYTELLING.forEach((image: HTMLDivElement): void => {
|
||||||
|
const indexImage = Number(image.getAttribute(ATTRIBUT_INDEX));
|
||||||
|
const hauteurImage = image.getBoundingClientRect().height;
|
||||||
|
const debutYImage = hauteurImage * (indexImage - 1);
|
||||||
|
const finYImage = hauteurImage * indexImage;
|
||||||
|
|
||||||
|
estEntreDeuxNombres(positionDefilementConteneur, debutYImage, finYImage)
|
||||||
|
? changeVisibiliteImage(image, false)
|
||||||
|
: changeVisibiliteImage(image, true);
|
||||||
|
});
|
||||||
|
|
||||||
|
aucunRafraichissement = false;
|
||||||
|
});
|
||||||
|
aucunRafraichissement = true;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
// Initialise l'Observateur de Redimensionnement (ResizeObserver)
|
||||||
|
new ResizeObserver((): void => majImages()).observe(CONTENEUR_STORYTELLING);
|
||||||
|
// Initialise la mise à jour des images au défilement sur le Conteneur
|
||||||
|
CONTENEUR_STORYTELLING.addEventListener("scroll", (): void => majImages());
|
||||||
|
};
|
||||||
|
|
||||||
|
document.addEventListener("DOMContentLoaded", (): void => {
|
||||||
|
initialiseScrollStorytelling();
|
||||||
|
});
|
||||||
|
|
@ -1,4 +1,203 @@
|
||||||
{% extends "base.twig" %}
|
{% extends "base.twig" %}
|
||||||
|
|
||||||
{% block contenu %}
|
{% block contenu %}
|
||||||
|
<main id="page-accueil">
|
||||||
|
<div class="storytelling">
|
||||||
|
<div class="storytelling__conteneur">
|
||||||
|
<div
|
||||||
|
class="storytelling__image"
|
||||||
|
data-index="1"
|
||||||
|
>
|
||||||
|
<img
|
||||||
|
alt=""
|
||||||
|
decoding="sync"
|
||||||
|
height="1080"
|
||||||
|
loading="lazy"
|
||||||
|
src="{{ site.theme.link }}/assets/img/storytelling/scroll1.jpg"
|
||||||
|
width="903"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
aria-hidden
|
||||||
|
class="storytelling__image"
|
||||||
|
data-cache
|
||||||
|
data-index="2"
|
||||||
|
>
|
||||||
|
<img
|
||||||
|
alt=""
|
||||||
|
decoding="sync"
|
||||||
|
height="1080"
|
||||||
|
loading="lazy"
|
||||||
|
src="{{ site.theme.link }}/assets/img/storytelling/scroll2.jpg"
|
||||||
|
width="903"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
aria-hidden
|
||||||
|
class="storytelling__image"
|
||||||
|
data-cache
|
||||||
|
data-index="3"
|
||||||
|
>
|
||||||
|
<img
|
||||||
|
alt=""
|
||||||
|
decoding="sync"
|
||||||
|
height="1080"
|
||||||
|
loading="lazy"
|
||||||
|
src="{{ site.theme.link }}/assets/img/storytelling/scroll3.jpg"
|
||||||
|
width="903"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
aria-hidden
|
||||||
|
class="storytelling__image"
|
||||||
|
data-cache
|
||||||
|
data-index="4"
|
||||||
|
>
|
||||||
|
<img
|
||||||
|
alt=""
|
||||||
|
decoding="sync"
|
||||||
|
height="1080"
|
||||||
|
loading="lazy"
|
||||||
|
src="{{ site.theme.link }}/assets/img/storytelling/scroll4.jpg"
|
||||||
|
width="903"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
aria-hidden
|
||||||
|
class="storytelling__image"
|
||||||
|
data-cache
|
||||||
|
data-index="5"
|
||||||
|
>
|
||||||
|
<img
|
||||||
|
alt=""
|
||||||
|
decoding="sync"
|
||||||
|
height="1080"
|
||||||
|
loading="lazy"
|
||||||
|
src="{{ site.theme.link }}/assets/img/storytelling/scroll5.jpg"
|
||||||
|
width="903"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
aria-hidden
|
||||||
|
class="storytelling__image"
|
||||||
|
data-cache
|
||||||
|
data-index="6"
|
||||||
|
>
|
||||||
|
<img
|
||||||
|
alt=""
|
||||||
|
decoding="sync"
|
||||||
|
height="1080"
|
||||||
|
loading="lazy"
|
||||||
|
src="{{ site.theme.link }}/assets/img/storytelling/scroll6.jpg"
|
||||||
|
width="903"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
aria-hidden
|
||||||
|
class="storytelling__image"
|
||||||
|
data-cache
|
||||||
|
data-index="7"
|
||||||
|
>
|
||||||
|
<img
|
||||||
|
alt=""
|
||||||
|
decoding="sync"
|
||||||
|
height="1080"
|
||||||
|
loading="lazy"
|
||||||
|
src="{{ site.theme.link }}/assets/img/storytelling/scroll7.jpg"
|
||||||
|
width="903"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
aria-hidden
|
||||||
|
class="storytelling__image"
|
||||||
|
data-cache
|
||||||
|
data-index="8"
|
||||||
|
>
|
||||||
|
<img
|
||||||
|
alt=""
|
||||||
|
decoding="sync"
|
||||||
|
height="1080"
|
||||||
|
loading="lazy"
|
||||||
|
src="{{ site.theme.link }}/assets/img/storytelling/scroll8.jpg"
|
||||||
|
width="903"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
aria-hidden
|
||||||
|
class="storytelling__image"
|
||||||
|
data-cache
|
||||||
|
data-index="9"
|
||||||
|
>
|
||||||
|
<img
|
||||||
|
alt=""
|
||||||
|
decoding="sync"
|
||||||
|
height="1080"
|
||||||
|
loading="lazy"
|
||||||
|
src="{{ site.theme.link }}/assets/img/storytelling/scroll9.jpg"
|
||||||
|
width="903"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
aria-hidden
|
||||||
|
class="storytelling__image"
|
||||||
|
data-cache
|
||||||
|
data-index="10"
|
||||||
|
>
|
||||||
|
<img
|
||||||
|
alt=""
|
||||||
|
decoding="sync"
|
||||||
|
height="1080"
|
||||||
|
loading="lazy"
|
||||||
|
src="{{ site.theme.link }}/assets/img/storytelling/scroll10.jpg"
|
||||||
|
width="903"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
aria-hidden
|
||||||
|
class="storytelling__image"
|
||||||
|
data-cache
|
||||||
|
data-index="11"
|
||||||
|
>
|
||||||
|
<img
|
||||||
|
alt=""
|
||||||
|
decoding="sync"
|
||||||
|
height="1080"
|
||||||
|
loading="lazy"
|
||||||
|
src="{{ site.theme.link }}/assets/img/storytelling/scroll11.jpg"
|
||||||
|
width="903"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
aria-hidden
|
||||||
|
class="storytelling__image"
|
||||||
|
data-cache
|
||||||
|
data-index="12"
|
||||||
|
>
|
||||||
|
<img
|
||||||
|
alt=""
|
||||||
|
decoding="sync"
|
||||||
|
height="1080"
|
||||||
|
loading="lazy"
|
||||||
|
src="{{ site.theme.link }}/assets/img/storytelling/scroll12.jpg"
|
||||||
|
width="903"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
aria-hidden
|
||||||
|
class="storytelling__image"
|
||||||
|
data-cache
|
||||||
|
data-index="13"
|
||||||
|
>
|
||||||
|
<img
|
||||||
|
alt=""
|
||||||
|
decoding="sync"
|
||||||
|
height="1080"
|
||||||
|
loading="lazy"
|
||||||
|
src="{{ site.theme.link }}/assets/img/storytelling/scroll13.jpg"
|
||||||
|
width="903"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</main>
|
||||||
{% endblock contenu %}
|
{% endblock contenu %}
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,10 @@
|
||||||
{% endblock head %}
|
{% endblock head %}
|
||||||
{% endblock conteneur_html_head %}
|
{% endblock conteneur_html_head %}
|
||||||
|
|
||||||
<body class="{{ body_class }}" data-langue="{{ langue_courante }}">
|
<body
|
||||||
|
class="{{ body_class }}"
|
||||||
|
data-langue="{{ langue_courante }}"
|
||||||
|
>
|
||||||
{# En-tête #}
|
{# En-tête #}
|
||||||
{% include "parts/en-tete.twig" %}
|
{% include "parts/en-tete.twig" %}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -17,7 +17,10 @@
|
||||||
{% endblock head %}
|
{% endblock head %}
|
||||||
|
|
||||||
{% block contenu %}
|
{% block contenu %}
|
||||||
<main id="page-panier" data-contient-articles="{{ articles_presents }}">
|
<main
|
||||||
|
id="page-panier"
|
||||||
|
data-contient-articles="{{ articles_presents }}"
|
||||||
|
>
|
||||||
{# « Your Cart » #}
|
{# « Your Cart » #}
|
||||||
{% include "parts/pages/panier/panneau-panier.twig" %}
|
{% include "parts/pages/panier/panneau-panier.twig" %}
|
||||||
{# Your Info #}
|
{# Your Info #}
|
||||||
|
|
@ -25,7 +28,12 @@
|
||||||
|
|
||||||
<div class="panier-vide">
|
<div class="panier-vide">
|
||||||
<p>Sorry! Your cart is empty.</p>
|
<p>Sorry! Your cart is empty.</p>
|
||||||
<a class="lien-bouton" href="{{ pages.shop.lien }}">Go back to the Shop</a>
|
<a
|
||||||
|
class="lien-bouton"
|
||||||
|
href="{{ pages.shop.lien }}"
|
||||||
|
>
|
||||||
|
Go back to the Shop
|
||||||
|
</a>
|
||||||
</div>
|
</div>
|
||||||
</main>
|
</main>
|
||||||
{% endblock contenu %}
|
{% endblock contenu %}
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,9 @@
|
||||||
<figure>
|
<figure>
|
||||||
<picture>
|
<picture>
|
||||||
<img
|
<img
|
||||||
alt="Haiku Atelier's Logo" height="25.6" src="{{ site.theme.link }}/assets/img/logos/logo-lines.svg"
|
alt="Haiku Atelier's Logo"
|
||||||
|
height="25.6"
|
||||||
|
src="{{ site.theme.link }}/assets/img/logos/logo-lines.svg"
|
||||||
width="80"
|
width="80"
|
||||||
/>
|
/>
|
||||||
</picture>
|
</picture>
|
||||||
|
|
@ -11,34 +13,57 @@
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
{# TODO: Utiliser un Menu WordPress #}
|
{# TODO: Utiliser un Menu WordPress #}
|
||||||
<nav class="menu-navigation" id="menu-navigation-en-tete">
|
<nav
|
||||||
|
class="menu-navigation"
|
||||||
|
id="menu-navigation-en-tete"
|
||||||
|
>
|
||||||
<ul>
|
<ul>
|
||||||
<span
|
<span
|
||||||
class="{{ page_courante == pages.home.lien ? 'menu-navigation__entree menu-navigation__entree--courante' : "menu-navigation__entree" }}"
|
class="{{ page_courante == pages.home.lien ? 'menu-navigation__entree menu-navigation__entree--courante' : "menu-navigation__entree" }}"
|
||||||
>
|
>
|
||||||
<li>
|
<li>
|
||||||
<a class="lien-menu" href="{{ pages.home.lien }}">{{ pages.home.nom }}</a>
|
<a
|
||||||
|
class="lien-menu"
|
||||||
|
href="{{ pages.home.lien }}"
|
||||||
|
>
|
||||||
|
{{ pages.home.nom }}
|
||||||
|
</a>
|
||||||
</li>
|
</li>
|
||||||
</span>
|
</span>
|
||||||
<span
|
<span
|
||||||
class="{{ page_courante == pages.about.lien ? 'menu-navigation__entree menu-navigation__entree--courante' : "menu-navigation__entree" }}"
|
class="{{ page_courante == pages.about.lien ? 'menu-navigation__entree menu-navigation__entree--courante' : "menu-navigation__entree" }}"
|
||||||
>
|
>
|
||||||
<li>
|
<li>
|
||||||
<a class="lien-menu" href="{{ pages.about.lien }}">{{ pages.about.nom }}</a>
|
<a
|
||||||
|
class="lien-menu"
|
||||||
|
href="{{ pages.about.lien }}"
|
||||||
|
>
|
||||||
|
{{ pages.about.nom }}
|
||||||
|
</a>
|
||||||
</li>
|
</li>
|
||||||
</span>
|
</span>
|
||||||
<span
|
<span
|
||||||
class="{{ est_page_boutique ? 'menu-navigation__entree menu-navigation__entree--courante' : "menu-navigation__entree" }}"
|
class="{{ est_page_boutique ? 'menu-navigation__entree menu-navigation__entree--courante' : "menu-navigation__entree" }}"
|
||||||
>
|
>
|
||||||
<li>
|
<li>
|
||||||
<a class="lien-menu" href="{{ pages.shop.lien }}">{{ pages.shop.nom }}</a>
|
<a
|
||||||
|
class="lien-menu"
|
||||||
|
href="{{ pages.shop.lien }}"
|
||||||
|
>
|
||||||
|
{{ pages.shop.nom }}
|
||||||
|
</a>
|
||||||
</li>
|
</li>
|
||||||
</span>
|
</span>
|
||||||
<span
|
<span
|
||||||
class="{{ page_courante == pages.contact.lien ? 'menu-navigation__entree menu-navigation__entree--courante' : "menu-navigation__entree" }}"
|
class="{{ page_courante == pages.contact.lien ? 'menu-navigation__entree menu-navigation__entree--courante' : "menu-navigation__entree" }}"
|
||||||
>
|
>
|
||||||
<li>
|
<li>
|
||||||
<a class="lien-menu" href="{{ pages.contact.lien }}">{{ pages.contact.nom }}</a>
|
<a
|
||||||
|
class="lien-menu"
|
||||||
|
href="{{ pages.contact.lien }}"
|
||||||
|
>
|
||||||
|
{{ pages.contact.nom }}
|
||||||
|
</a>
|
||||||
</li>
|
</li>
|
||||||
</span>
|
</span>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
@ -47,7 +72,9 @@
|
||||||
<section class="compte-panier">
|
<section class="compte-panier">
|
||||||
{# Bouton « Panier » avec l'indicateur de quantité de Produits #}
|
{# Bouton « Panier » avec l'indicateur de quantité de Produits #}
|
||||||
<a
|
<a
|
||||||
class="lien-bouton" data-contient-articles="{{ articles_presents }}" href="{{ pages.cart.lien }}"
|
class="lien-bouton"
|
||||||
|
data-contient-articles="{{ articles_presents }}"
|
||||||
|
href="{{ pages.cart.lien }}"
|
||||||
rel="cart"
|
rel="cart"
|
||||||
>
|
>
|
||||||
cart ({{ quantite_articles }})
|
cart ({{ quantite_articles }})
|
||||||
|
|
|
||||||
|
|
@ -1,14 +1,37 @@
|
||||||
<!doctype html>
|
<!doctype html>
|
||||||
<head>
|
<head>
|
||||||
<meta charset="{{ site.charset }}" />
|
<meta charset="{{ site.charset }}" />
|
||||||
<meta name="description" content="{{ site.description }}" />
|
<meta
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
name="description"
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
content="{{ site.description }}"
|
||||||
|
/>
|
||||||
|
<meta
|
||||||
|
http-equiv="Content-Type"
|
||||||
|
content="text/html; charset=UTF-8"
|
||||||
|
/>
|
||||||
|
<meta
|
||||||
|
name="viewport"
|
||||||
|
content="width=device-width, initial-scale=1"
|
||||||
|
/>
|
||||||
|
|
||||||
<link rel="apple-touch-icon" href="{{site.theme.link}}/assets/img/apple-touch-icon.png" />
|
<link
|
||||||
<link rel="icon" href="{{site.theme.link}}/assets/img/favicon.ico" sizes="48x48" />
|
rel="apple-touch-icon"
|
||||||
<link rel="icon" href="{{site.theme.link}}/assets/img/favicon.svg" type="image/svg+xml" />
|
href="{{site.theme.link}}/assets/img/apple-touch-icon.png"
|
||||||
<link rel="manifest" href="{{site.theme.link}}/assets/site.webmanifest" />
|
/>
|
||||||
|
<link
|
||||||
|
rel="icon"
|
||||||
|
href="{{site.theme.link}}/assets/img/favicon.ico"
|
||||||
|
sizes="48x48"
|
||||||
|
/>
|
||||||
|
<link
|
||||||
|
rel="icon"
|
||||||
|
href="{{site.theme.link}}/assets/img/favicon.svg"
|
||||||
|
type="image/svg+xml"
|
||||||
|
/>
|
||||||
|
<link
|
||||||
|
rel="manifest"
|
||||||
|
href="{{site.theme.link}}/assets/site.webmanifest"
|
||||||
|
/>
|
||||||
|
|
||||||
{#
|
{#
|
||||||
<link
|
<link
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,15 @@
|
||||||
<nav id="menu-categories-produits" class="menu-categories-produits">
|
<nav
|
||||||
|
id="menu-categories-produits"
|
||||||
|
class="menu-categories-produits"
|
||||||
|
>
|
||||||
<ul>
|
<ul>
|
||||||
<li {{ est_page_tous_produits ? "class='categorie-courante'" : '' }}><a href="{{ pages.shop.lien }}">All</a></li>
|
<li {{ est_page_tous_produits ? "class='categorie-courante'" : '' }}><a href="{{ pages.shop.lien }}">All</a></li>
|
||||||
{% for categorie in categories_produits %}
|
{% for categorie in categories_produits %}
|
||||||
{# TODO: Factoriser l'injection de classe d'une manière plus propre #}
|
{# TODO: Factoriser l'injection de classe d'une manière plus propre #}
|
||||||
<li {{ categorie.courante ? "class='categorie-courante'" : '' }} id="categorie-{{ categorie.slug|e }}">
|
<li
|
||||||
|
{{ categorie.courante ? "class='categorie-courante'" : '' }}
|
||||||
|
id="categorie-{{ categorie.slug|e }}"
|
||||||
|
>
|
||||||
<a href="/{{ base_categorie_produit }}/{{ categorie.slug|e }}">{{ categorie.nom|e }}</a>
|
<a href="/{{ base_categorie_produit }}/{{ categorie.slug|e }}">{{ categorie.nom|e }}</a>
|
||||||
</li>
|
</li>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,7 @@
|
||||||
<section class="panneau" id="panneau-informations-client">
|
<section
|
||||||
|
class="panneau"
|
||||||
|
id="panneau-informations-client"
|
||||||
|
>
|
||||||
<header class="panneau__en-tete">
|
<header class="panneau__en-tete">
|
||||||
<h2>Your info</h2>
|
<h2>Your info</h2>
|
||||||
</header>
|
</header>
|
||||||
|
|
@ -10,20 +13,32 @@
|
||||||
{# Bouton PayPal #}
|
{# Bouton PayPal #}
|
||||||
<button type="button">
|
<button type="button">
|
||||||
<img
|
<img
|
||||||
alt="PayPal's Logo" height="18" src="{{ site.theme.link }}/assets/img/paypal/logo-paypal.svg"
|
alt="PayPal's Logo"
|
||||||
|
height="18"
|
||||||
|
src="{{ site.theme.link }}/assets/img/paypal/logo-paypal.svg"
|
||||||
width="13.48"
|
width="13.48"
|
||||||
/>
|
/>
|
||||||
<img
|
<img
|
||||||
alt="PayPal" height="18" src="{{ site.theme.link }}/assets/img/paypal/titre-paypal.svg"
|
alt="PayPal"
|
||||||
|
height="18"
|
||||||
|
src="{{ site.theme.link }}/assets/img/paypal/titre-paypal.svg"
|
||||||
width="67.69"
|
width="67.69"
|
||||||
/>
|
/>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<form id="formulaire-commande" class="panneau__formulaires" method="post">
|
<form
|
||||||
|
id="formulaire-commande"
|
||||||
|
class="panneau__formulaires"
|
||||||
|
method="post"
|
||||||
|
>
|
||||||
{# Formulaires pour la livraison et facturation #}
|
{# Formulaires pour la livraison et facturation #}
|
||||||
<div class="panneau__formulaires__separation-adresses">
|
<div class="panneau__formulaires__separation-adresses">
|
||||||
<input id="separation-adresses" name="separation-adresses" type="checkbox" />
|
<input
|
||||||
|
id="separation-adresses"
|
||||||
|
name="separation-adresses"
|
||||||
|
type="checkbox"
|
||||||
|
/>
|
||||||
<label for="separation-adresses">Use a separate billing address</label>
|
<label for="separation-adresses">Use a separate billing address</label>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
@ -34,8 +49,12 @@
|
||||||
<div class="formulaire__champs__champ">
|
<div class="formulaire__champs__champ">
|
||||||
<label for="livraison-prenom">First name</label>
|
<label for="livraison-prenom">First name</label>
|
||||||
<input
|
<input
|
||||||
autocomplete="given-name" id="livraison-prenom" minlength="2"
|
autocomplete="given-name"
|
||||||
name="livraison-prenom" required type="text"
|
id="livraison-prenom"
|
||||||
|
minlength="2"
|
||||||
|
name="livraison-prenom"
|
||||||
|
required
|
||||||
|
type="text"
|
||||||
value="Gauthier"
|
value="Gauthier"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -43,8 +62,12 @@
|
||||||
<div class="formulaire__champs__champ">
|
<div class="formulaire__champs__champ">
|
||||||
<label for="livraison-nom">Last name</label>
|
<label for="livraison-nom">Last name</label>
|
||||||
<input
|
<input
|
||||||
autocomplete="family-name" id="livraison-nom" name="livraison-nom"
|
autocomplete="family-name"
|
||||||
minlength="2" required type="text"
|
id="livraison-nom"
|
||||||
|
name="livraison-nom"
|
||||||
|
minlength="2"
|
||||||
|
required
|
||||||
|
type="text"
|
||||||
value="COLIN"
|
value="COLIN"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -52,16 +75,24 @@
|
||||||
<div class="formulaire__champs__champ">
|
<div class="formulaire__champs__champ">
|
||||||
<label for="livraison-adresse">Address</label>
|
<label for="livraison-adresse">Address</label>
|
||||||
<input
|
<input
|
||||||
autocomplete="street-address" id="livraison-adresse" name="livraison-adresse"
|
autocomplete="street-address"
|
||||||
required type="text" value="5 rue de la Ville"
|
id="livraison-adresse"
|
||||||
|
name="livraison-adresse"
|
||||||
|
required
|
||||||
|
type="text"
|
||||||
|
value="5 rue de la Ville"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="formulaire__champs__champ">
|
<div class="formulaire__champs__champ">
|
||||||
<label for="livraison-code-postal">Postcode</label>
|
<label for="livraison-code-postal">Postcode</label>
|
||||||
<input
|
<input
|
||||||
autocomplete="postal-code" id="livraison-code-postal" minlength="3"
|
autocomplete="postal-code"
|
||||||
name="livraison-code-postal" required type="text"
|
id="livraison-code-postal"
|
||||||
|
minlength="3"
|
||||||
|
name="livraison-code-postal"
|
||||||
|
required
|
||||||
|
type="text"
|
||||||
value="57000"
|
value="57000"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -69,8 +100,12 @@
|
||||||
<div class="formulaire__champs__champ">
|
<div class="formulaire__champs__champ">
|
||||||
<label for="livraison-ville">City</label>
|
<label for="livraison-ville">City</label>
|
||||||
<input
|
<input
|
||||||
autocomplete="address-level2" id="livraison-ville" minlength="2"
|
autocomplete="address-level2"
|
||||||
name="livraison-ville" required type="text"
|
id="livraison-ville"
|
||||||
|
minlength="2"
|
||||||
|
name="livraison-ville"
|
||||||
|
required
|
||||||
|
type="text"
|
||||||
value="Metz"
|
value="Metz"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -78,44 +113,68 @@
|
||||||
<div class="formulaire__champs__champ">
|
<div class="formulaire__champs__champ">
|
||||||
<label for="livraison-region-etat">Region/State</label>
|
<label for="livraison-region-etat">Region/State</label>
|
||||||
<input
|
<input
|
||||||
autocomplete="address-level1" id="livraison-region-etat" name="livraison-region-etat"
|
autocomplete="address-level1"
|
||||||
placeholder="If applicable" type="text"
|
id="livraison-region-etat"
|
||||||
|
name="livraison-region-etat"
|
||||||
|
placeholder="If applicable"
|
||||||
|
type="text"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="formulaire__champs__champ">
|
<div class="formulaire__champs__champ">
|
||||||
<label for="livraison-pays">Country</label> <select id="livraison-pays" name="livraison-pays" />
|
<label for="livraison-pays">Country</label>
|
||||||
|
<select
|
||||||
|
id="livraison-pays"
|
||||||
|
name="livraison-pays"
|
||||||
|
></select>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="formulaire__champs__champ">
|
<div class="formulaire__champs__champ">
|
||||||
<label for="livraison-telephone">Phone</label>
|
<label for="livraison-telephone">Phone</label>
|
||||||
<input
|
<input
|
||||||
autocomplete="tel" id="livraison-telephone" minlength="6"
|
autocomplete="tel"
|
||||||
name="livraison-telephone" placeholder="+33 6 03 03 03 03" required
|
id="livraison-telephone"
|
||||||
type="tel" value="+33 6 03 03 03 03"
|
minlength="6"
|
||||||
|
name="livraison-telephone"
|
||||||
|
placeholder="+33 6 03 03 03 03"
|
||||||
|
required
|
||||||
|
type="tel"
|
||||||
|
value="+33 6 03 03 03 03"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="formulaire__champs__champ">
|
<div class="formulaire__champs__champ">
|
||||||
<label for="livraison-email">Email Address</label>
|
<label for="livraison-email">Email Address</label>
|
||||||
<input
|
<input
|
||||||
autocomplete="email" id="livraison-email" minlength="4"
|
autocomplete="email"
|
||||||
name="livraison-email" placeholder="moshimoshi@email.com" required
|
id="livraison-email"
|
||||||
type="email" value="moshimoshi@email.com"
|
minlength="4"
|
||||||
|
name="livraison-email"
|
||||||
|
placeholder="moshimoshi@email.com"
|
||||||
|
required
|
||||||
|
type="email"
|
||||||
|
value="moshimoshi@email.com"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="panneau__formulaires__facturation formulaire" hidden>
|
<div
|
||||||
|
class="panneau__formulaires__facturation formulaire"
|
||||||
|
hidden
|
||||||
|
>
|
||||||
<h3 class="formulaire__titre">Billing:</h3>
|
<h3 class="formulaire__titre">Billing:</h3>
|
||||||
|
|
||||||
<div class="formulaire__champs">
|
<div class="formulaire__champs">
|
||||||
<div class="formulaire__champs__champ">
|
<div class="formulaire__champs__champ">
|
||||||
<label for="facturation-prenom">First name</label>
|
<label for="facturation-prenom">First name</label>
|
||||||
<input
|
<input
|
||||||
autocomplete="given-name" disabled id="facturation-prenom"
|
autocomplete="given-name"
|
||||||
name="facturation-prenom" minlength="2" required
|
disabled
|
||||||
|
id="facturation-prenom"
|
||||||
|
name="facturation-prenom"
|
||||||
|
minlength="2"
|
||||||
|
required
|
||||||
type="text"
|
type="text"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -123,8 +182,12 @@
|
||||||
<div class="formulaire__champs__champ">
|
<div class="formulaire__champs__champ">
|
||||||
<label for="facturation-nom">Last name</label>
|
<label for="facturation-nom">Last name</label>
|
||||||
<input
|
<input
|
||||||
autocomplete="family-name" disabled id="facturation-nom"
|
autocomplete="family-name"
|
||||||
name="facturation-nom" minlength="2" required
|
disabled
|
||||||
|
id="facturation-nom"
|
||||||
|
name="facturation-nom"
|
||||||
|
minlength="2"
|
||||||
|
required
|
||||||
type="text"
|
type="text"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -132,16 +195,24 @@
|
||||||
<div class="formulaire__champs__champ">
|
<div class="formulaire__champs__champ">
|
||||||
<label for="facturation-adresse">Address</label>
|
<label for="facturation-adresse">Address</label>
|
||||||
<input
|
<input
|
||||||
autocomplete="street-address" disabled id="facturation-adresse"
|
autocomplete="street-address"
|
||||||
name="facturation-adresse" required type="text"
|
disabled
|
||||||
|
id="facturation-adresse"
|
||||||
|
name="facturation-adresse"
|
||||||
|
required
|
||||||
|
type="text"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="formulaire__champs__champ">
|
<div class="formulaire__champs__champ">
|
||||||
<label for="facturation-code-postal">Postcode</label>
|
<label for="facturation-code-postal">Postcode</label>
|
||||||
<input
|
<input
|
||||||
autocomplete="postal-code" disabled id="facturation-code-postal"
|
autocomplete="postal-code"
|
||||||
minlength="3" name="facturation-code-postal" required
|
disabled
|
||||||
|
id="facturation-code-postal"
|
||||||
|
minlength="3"
|
||||||
|
name="facturation-code-postal"
|
||||||
|
required
|
||||||
type="text"
|
type="text"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -149,8 +220,12 @@
|
||||||
<div class="formulaire__champs__champ">
|
<div class="formulaire__champs__champ">
|
||||||
<label for="facturation-ville">City</label>
|
<label for="facturation-ville">City</label>
|
||||||
<input
|
<input
|
||||||
autocomplete="address-level2" disabled id="facturation-ville"
|
autocomplete="address-level2"
|
||||||
minlength="2" name="facturation-ville" required
|
disabled
|
||||||
|
id="facturation-ville"
|
||||||
|
minlength="2"
|
||||||
|
name="facturation-ville"
|
||||||
|
required
|
||||||
type="text"
|
type="text"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -158,31 +233,49 @@
|
||||||
<div class="formulaire__champs__champ">
|
<div class="formulaire__champs__champ">
|
||||||
<label for="facturation-region-etat">Region/State</label>
|
<label for="facturation-region-etat">Region/State</label>
|
||||||
<input
|
<input
|
||||||
autocomplete="address-level1" disabled id="facturation-region-etat"
|
autocomplete="address-level1"
|
||||||
name="facturation-region-etat" placeholder="If applicable" type="text"
|
disabled
|
||||||
|
id="facturation-region-etat"
|
||||||
|
name="facturation-region-etat"
|
||||||
|
placeholder="If applicable"
|
||||||
|
type="text"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="formulaire__champs__champ">
|
<div class="formulaire__champs__champ">
|
||||||
<label for="facturation-pays">Country</label>
|
<label for="facturation-pays">Country</label>
|
||||||
<select id="facturation-pays" disabled name="facturation-pays" />
|
<select
|
||||||
|
id="facturation-pays"
|
||||||
|
disabled
|
||||||
|
name="facturation-pays"
|
||||||
|
></select>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="formulaire__champs__champ">
|
<div class="formulaire__champs__champ">
|
||||||
<label for="facturation-telephone">Phone</label>
|
<label for="facturation-telephone">Phone</label>
|
||||||
<input
|
<input
|
||||||
autocomplete="tel" disabled id="facturation-telephone"
|
autocomplete="tel"
|
||||||
minlength="6" name="facturation-telephone" placeholder="+33 6 03 43 60 16"
|
disabled
|
||||||
required type="tel"
|
id="facturation-telephone"
|
||||||
|
minlength="6"
|
||||||
|
name="facturation-telephone"
|
||||||
|
placeholder="+33 6 03 43 60 16"
|
||||||
|
required
|
||||||
|
type="tel"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="formulaire__champs__champ">
|
<div class="formulaire__champs__champ">
|
||||||
<label for="facturation-email">Email Address</label>
|
<label for="facturation-email">Email Address</label>
|
||||||
<input
|
<input
|
||||||
autocomplete="email" disabled id="facturation-email"
|
autocomplete="email"
|
||||||
minlength="4" name="facturation-email" placeholder="moshimoshi@email.com"
|
disabled
|
||||||
required type="email"
|
id="facturation-email"
|
||||||
|
minlength="4"
|
||||||
|
name="facturation-email"
|
||||||
|
placeholder="moshimoshi@email.com"
|
||||||
|
required
|
||||||
|
type="email"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -192,7 +285,7 @@
|
||||||
<h3 class="formulaire__titre">Payment:</h3>
|
<h3 class="formulaire__titre">Payment:</h3>
|
||||||
|
|
||||||
{# Carte de crédit via Stripe #}
|
{# Carte de crédit via Stripe #}
|
||||||
<div class="formulaire__paiement" />
|
{# <div class="formulaire__paiement"> </div> #}
|
||||||
|
|
||||||
{# PayPal #}
|
{# PayPal #}
|
||||||
<div class="formulaire__paiement">
|
<div class="formulaire__paiement">
|
||||||
|
|
@ -200,15 +293,27 @@
|
||||||
<p>Please fill out and submit the above form to make payment available.</p>
|
<p>Please fill out and submit the above form to make payment available.</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="formulaire__paiement__choix" hidden>
|
<div
|
||||||
|
class="formulaire__paiement__choix"
|
||||||
|
hidden
|
||||||
|
>
|
||||||
<label for="paiement-stripe">Credit card</label>
|
<label for="paiement-stripe">Credit card</label>
|
||||||
<input id="paiement-stripe" name="type-paiement" type="radio" />
|
<input
|
||||||
|
id="paiement-stripe"
|
||||||
|
name="type-paiement"
|
||||||
|
type="radio"
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
<footer class="panneau__pied-de-page">
|
<footer class="panneau__pied-de-page">
|
||||||
<button form="formulaire-commande" type="submit">Submit</button>
|
<button
|
||||||
|
form="formulaire-commande"
|
||||||
|
type="submit"
|
||||||
|
>
|
||||||
|
Submit
|
||||||
|
</button>
|
||||||
</footer>
|
</footer>
|
||||||
</section>
|
</section>
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,17 @@
|
||||||
<section class="panneau" id="panneau-panier">
|
<section
|
||||||
|
class="panneau"
|
||||||
|
id="panneau-panier"
|
||||||
|
>
|
||||||
<header class="panneau__en-tete">
|
<header class="panneau__en-tete">
|
||||||
<h2>Your cart</h2>
|
<h2>Your cart</h2>
|
||||||
</header>
|
</header>
|
||||||
|
|
||||||
<div class="panneau__grille-produits">
|
<div class="panneau__grille-produits">
|
||||||
{% 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">
|
||||||
<a href="{{ produit.url }}">{{ produit.image }}</a>
|
<a href="{{ produit.url }}">{{ produit.image }}</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -26,14 +32,30 @@
|
||||||
|
|
||||||
<div class="detail-produit__actions">
|
<div class="detail-produit__actions">
|
||||||
<button
|
<button
|
||||||
class="detail-produit__actions__soustraction" {{ produit.quantite > 1 ? "" : "disabled" }} type="button"
|
class="detail-produit__actions__soustraction"
|
||||||
|
{{ produit.quantite > 1 ? "" : "disabled" }}
|
||||||
|
type="button"
|
||||||
>
|
>
|
||||||
-
|
-
|
||||||
</button>
|
</button>
|
||||||
<input min="1" type="number" value="{{ produit.quantite }}" />
|
<input
|
||||||
<button class="detail-produit__actions__addition" type="button">+</button>
|
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>
|
||||||
</div>
|
</div>
|
||||||
</article>
|
</article>
|
||||||
|
|
@ -50,7 +72,9 @@
|
||||||
<div class="panneau__emballages__choix__ligne">
|
<div class="panneau__emballages__choix__ligne">
|
||||||
<label for="emballages-tous-produits">To all products</label>
|
<label for="emballages-tous-produits">To all products</label>
|
||||||
<input
|
<input
|
||||||
id="emballages-tous-produits" name="emballages" type="radio"
|
id="emballages-tous-produits"
|
||||||
|
name="emballages"
|
||||||
|
type="radio"
|
||||||
value="emballages-tous-produits"
|
value="emballages-tous-produits"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -58,7 +82,9 @@
|
||||||
<div class="panneau__emballages__choix__ligne">
|
<div class="panneau__emballages__choix__ligne">
|
||||||
<label for="emballages-produits-specifiques">To specific products</label>
|
<label for="emballages-produits-specifiques">To specific products</label>
|
||||||
<input
|
<input
|
||||||
id="emballages-produits-specifiques" name="emballages" type="radio"
|
id="emballages-produits-specifiques"
|
||||||
|
name="emballages"
|
||||||
|
type="radio"
|
||||||
value="emballages-produits-specifiques"
|
value="emballages-produits-specifiques"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -68,19 +94,32 @@
|
||||||
|
|
||||||
<div class="panneau__instructions-code-promo">
|
<div class="panneau__instructions-code-promo">
|
||||||
<textarea
|
<textarea
|
||||||
class="panneau__instructions-code-promo__instructions" id="instructions" maxlength="2000"
|
class="panneau__instructions-code-promo__instructions"
|
||||||
|
id="instructions"
|
||||||
|
maxlength="2000"
|
||||||
minlength="10"
|
minlength="10"
|
||||||
name="instructions"
|
name="instructions"
|
||||||
placeholder="Add special instructions for your order: specify the products you want wrapped and how (i.e. all in one bag or separated), a gift message, etc."
|
placeholder="Add special instructions for your order: specify the products you want wrapped and how (i.e. all in one bag or separated), a gift message, etc."
|
||||||
resizable="false" rows="3" spellcheck="true"
|
resizable="false"
|
||||||
/>
|
rows="3"
|
||||||
|
spellcheck="true"
|
||||||
|
></textarea>
|
||||||
|
|
||||||
<div class="panneau__instructions-code-promo__code-promo">
|
<div class="panneau__instructions-code-promo__code-promo">
|
||||||
<input
|
<input
|
||||||
id="code-promo" name="code-promo" placeholder="Discount code or gift card"
|
id="code-promo"
|
||||||
type="text" maxlength="20" minlength="3"
|
name="code-promo"
|
||||||
|
placeholder="Discount code or gift card"
|
||||||
|
type="text"
|
||||||
|
maxlength="20"
|
||||||
|
minlength="3"
|
||||||
/>
|
/>
|
||||||
<button for="code-promo" type="button">Apply</button>
|
<button
|
||||||
|
for="code-promo"
|
||||||
|
type="button"
|
||||||
|
>
|
||||||
|
Apply
|
||||||
|
</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,26 +2,35 @@
|
||||||
Boîte flottante contenant les informations sur le Produit, en détails, et le sélecteur de quantité/taille pour l'ajout au Panier
|
Boîte flottante contenant les informations sur le Produit, en détails, et le sélecteur de quantité/taille pour l'ajout au Panier
|
||||||
#}
|
#}
|
||||||
|
|
||||||
<aside aria-label="Product's details, size and quantity selection" class="informations-produit">
|
<aside
|
||||||
|
aria-label="Product's details, size and quantity selection"
|
||||||
|
class="informations-produit"
|
||||||
|
>
|
||||||
<div class="informations-produit__conteneur">
|
<div class="informations-produit__conteneur">
|
||||||
<section class="onglets-details-produit">
|
<section class="onglets-details-produit">
|
||||||
{# Contenus #}
|
{# Contenus #}
|
||||||
<section
|
<section
|
||||||
role="tabpanel" id="details-produit" aria-labelledby="label-details-produit"
|
role="tabpanel"
|
||||||
|
id="details-produit"
|
||||||
|
aria-labelledby="label-details-produit"
|
||||||
hidden
|
hidden
|
||||||
>
|
>
|
||||||
{{ produit.details }}
|
{{ produit.details }}
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section
|
<section
|
||||||
role="tabpanel" id="conditions-livraison" aria-labelledby="label-conditions-livraison"
|
role="tabpanel"
|
||||||
|
id="conditions-livraison"
|
||||||
|
aria-labelledby="label-conditions-livraison"
|
||||||
hidden
|
hidden
|
||||||
>
|
>
|
||||||
{{ descriptions_produits.texte_conditions_livraison }}
|
{{ descriptions_produits.texte_conditions_livraison }}
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section
|
<section
|
||||||
role="tabpanel" id="entretien-produit" aria-labelledby="label-entretien-produit"
|
role="tabpanel"
|
||||||
|
id="entretien-produit"
|
||||||
|
aria-labelledby="label-entretien-produit"
|
||||||
hidden
|
hidden
|
||||||
>
|
>
|
||||||
{{ descriptions_produits.texte_entretien_produit }}
|
{{ descriptions_produits.texte_entretien_produit }}
|
||||||
|
|
@ -31,7 +40,9 @@
|
||||||
<ul role="tablist">
|
<ul role="tablist">
|
||||||
<li role="presentation">
|
<li role="presentation">
|
||||||
<a
|
<a
|
||||||
role="tab" href="#details-produit" id="label-details-produit"
|
role="tab"
|
||||||
|
href="#details-produit"
|
||||||
|
id="label-details-produit"
|
||||||
aria-selected="false"
|
aria-selected="false"
|
||||||
>
|
>
|
||||||
Details
|
Details
|
||||||
|
|
@ -40,7 +51,9 @@
|
||||||
|
|
||||||
<li role="presentation">
|
<li role="presentation">
|
||||||
<a
|
<a
|
||||||
role="tab" href="#conditions-livraison" id="label-conditions-livraison"
|
role="tab"
|
||||||
|
href="#conditions-livraison"
|
||||||
|
id="label-conditions-livraison"
|
||||||
aria-selected="false"
|
aria-selected="false"
|
||||||
>
|
>
|
||||||
Shipping
|
Shipping
|
||||||
|
|
@ -49,7 +62,9 @@
|
||||||
|
|
||||||
<li role="presentation">
|
<li role="presentation">
|
||||||
<a
|
<a
|
||||||
role="tab" href="#entretien-produit" id="label-entretien-produit"
|
role="tab"
|
||||||
|
href="#entretien-produit"
|
||||||
|
id="label-entretien-produit"
|
||||||
aria-selected="false"
|
aria-selected="false"
|
||||||
>
|
>
|
||||||
Care
|
Care
|
||||||
|
|
@ -62,13 +77,26 @@
|
||||||
<h3 class="selecteur-produit__nom">{{ produit.nom }}</h3>
|
<h3 class="selecteur-produit__nom">{{ produit.nom }}</h3>
|
||||||
|
|
||||||
<div class="selecteur-produit__selection-variation">
|
<div class="selecteur-produit__selection-variation">
|
||||||
<label id="label-selecteur-variation" for="selecteur-variation">Select size:</label>
|
<label
|
||||||
|
id="label-selecteur-variation"
|
||||||
|
for="selecteur-variation"
|
||||||
|
>
|
||||||
|
Select size:
|
||||||
|
</label>
|
||||||
<div class="selecteur-produit__selection-variation__selecteurs">
|
<div class="selecteur-produit__selection-variation__selecteurs">
|
||||||
<select
|
<select
|
||||||
aria-labelledby="label-selecteur-variation" class="selecteur-natif" id="selecteur-variation"
|
aria-labelledby="label-selecteur-variation"
|
||||||
|
class="selecteur-natif"
|
||||||
|
id="selecteur-variation"
|
||||||
name="variations"
|
name="variations"
|
||||||
>
|
>
|
||||||
<option disabled selected value="">--</option>
|
<option
|
||||||
|
disabled
|
||||||
|
selected
|
||||||
|
value=""
|
||||||
|
>
|
||||||
|
--
|
||||||
|
</option>
|
||||||
{% for taille in tailles_produit %}
|
{% for taille in tailles_produit %}
|
||||||
<option value="{{ produit.variations_ids[loop.index0] }}">{{ taille }}</option>
|
<option value="{{ produit.variations_ids[loop.index0] }}">{{ taille }}</option>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|
@ -89,7 +117,9 @@
|
||||||
|
|
||||||
<section class="actions-produit">
|
<section class="actions-produit">
|
||||||
<button
|
<button
|
||||||
class="bouton-case-pleine" disabled id="bouton-ajout-panier"
|
class="bouton-case-pleine"
|
||||||
|
disabled
|
||||||
|
id="bouton-ajout-panier"
|
||||||
type="button"
|
type="button"
|
||||||
>
|
>
|
||||||
Add to cart
|
Add to cart
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,8 @@
|
||||||
<main class="photos-produit">
|
<main class="photos-produit">
|
||||||
<section aria-label="Photo of the Product alone" class="colonne-gauche">
|
<section
|
||||||
|
aria-label="Photo of the Product alone"
|
||||||
|
class="colonne-gauche"
|
||||||
|
>
|
||||||
{% for photo in produit.photos_colonne_gauche %}
|
{% for photo in produit.photos_colonne_gauche %}
|
||||||
<figure>
|
<figure>
|
||||||
<picture>
|
<picture>
|
||||||
|
|
@ -9,7 +12,10 @@
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section aria-label="Photos of the Product worn" class="colonne-droite">
|
<section
|
||||||
|
aria-label="Photos of the Product worn"
|
||||||
|
class="colonne-droite"
|
||||||
|
>
|
||||||
{% for photo in produit.photos_colonne_droite %}
|
{% for photo in produit.photos_colonne_droite %}
|
||||||
<figure>
|
<figure>
|
||||||
<picture>
|
<picture>
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,7 @@
|
||||||
<section aria-label="Products in the same Collection" class="produits-similaires">
|
<section
|
||||||
|
aria-label="Products in the same Collection"
|
||||||
|
class="produits-similaires"
|
||||||
|
>
|
||||||
<header><h2>From the same Collection</h2></header>
|
<header><h2>From the same Collection</h2></header>
|
||||||
|
|
||||||
{% include "parts/pages/produit/grille-produits-similaires.twig" %}
|
{% include "parts/pages/produit/grille-produits-similaires.twig" %}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,9 @@
|
||||||
<footer id="pied-de-page">
|
<footer id="pied-de-page">
|
||||||
<section class="zone-menu-navigation-secondaire">
|
<section class="zone-menu-navigation-secondaire">
|
||||||
<nav class="menu-navigation" id="menu-navigation-secondaire">
|
<nav
|
||||||
|
class="menu-navigation"
|
||||||
|
id="menu-navigation-secondaire"
|
||||||
|
>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="/contact">Contact</a></li>
|
<li><a href="/contact">Contact</a></li>
|
||||||
<li><a href="">Terms & Legals</a></li>
|
<li><a href="">Terms & Legals</a></li>
|
||||||
|
|
@ -10,7 +13,10 @@
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section class="zone-liens-reseaux-sociaux">
|
<section class="zone-liens-reseaux-sociaux">
|
||||||
<nav class="menu-navigation" id="liens-reseaux-sociaux">
|
<nav
|
||||||
|
class="menu-navigation"
|
||||||
|
id="liens-reseaux-sociaux"
|
||||||
|
>
|
||||||
<ul>
|
<ul>
|
||||||
{% for lien in liens_reseaux_sociaux %}
|
{% for lien in liens_reseaux_sociaux %}
|
||||||
{% if lien.url %}
|
{% if lien.url %}
|
||||||
|
|
|
||||||