From 0dd09dd464ff9ca39be67e9e3baff72bc05a0f35 Mon Sep 17 00:00:00 2001 From: gcch Date: Sun, 17 Nov 2024 09:59:01 +0100 Subject: [PATCH] 2024-11-17 --- LICENSE.md | 7 - PANIER.md | 12 - composer.lock | 30 +-- package.json | 6 +- pnpm-lock.yaml | 24 +- script.js | 224 ------------------ .../haiku-atelier-2024/assets/css/main.css | 2 +- .../assets/css/main.css.map | 2 +- .../assets/css/main.min.css | 2 +- .../assets/css/pages/page-a-propos.css | 35 ++- .../assets/css/pages/page-accueil.css | 9 +- .../assets/css/pages/page-boutique.css | 3 +- .../assets/css/pages/page-contact.css | 9 +- .../assets/css/pages/page-panier.css | 93 ++++++-- .../assets/css/pages/page-panier.css.map | 2 +- .../assets/css/pages/page-panier.min.css | 2 +- .../assets/css/pages/page-succes-commande.css | 34 ++- .../css/pages/page-succes-commande.css.map | 2 +- .../css/pages/page-succes-commande.min.css | 2 +- .../assets/js/.vite/manifest.json | 96 ++++---- .../haiku-atelier-2024/assets/js/adresses.js | 2 +- .../assets/js/cart-add-item.js | 2 +- .../assets/js/cart-remove-item.js | 2 +- .../assets/js/cart-update-customer.js | 2 +- .../assets/js/cart-update-item.js | 2 +- .../haiku-atelier-2024/assets/js/cart.js | 2 +- .../assets/js/couts-livraison.js | 2 +- .../haiku-atelier-2024/assets/js/dom.js | 74 +++--- .../haiku-atelier-2024/assets/js/dom.js.map | 2 +- .../haiku-atelier-2024/assets/js/erreurs2.js | 2 +- .../{index.vOxCZRxB.js => index.CXGAS3st.js} | 13 +- .../assets/js/index.CXGAS3st.js.map | 1 + .../assets/js/index.vOxCZRxB.js.map | 1 - .../haiku-atelier-2024/assets/js/messages.js | 2 +- .../haiku-atelier-2024/assets/js/messages2.js | 2 +- .../haiku-atelier-2024/assets/js/orders2.js | 6 +- .../assets/js/orders2.js.map | 2 +- .../haiku-atelier-2024/assets/js/products.js | 2 +- .../haiku-atelier-2024/assets/js/products3.js | 2 +- .../haiku-atelier-2024/assets/js/reseau.js | 2 +- .../assets/js/scripts-bouton-panier.js | 2 +- .../assets/js/scripts-menu-mobile.js | 2 +- .../assets/js/scripts-page-a-propos.js | 2 +- .../assets/js/scripts-page-boutique.js | 2 +- .../assets/js/scripts-page-panier.js | 30 ++- .../assets/js/scripts-page-panier.js.map | 2 +- .../assets/js/scripts-page-produit.js | 4 +- .../assets/js/validation.js | 2 +- .../themes/haiku-atelier-2024/page-cart.php | 4 + .../haiku-atelier-2024/page-checkout.php | 2 + .../page-successful-order.php | 48 ++-- .../src/inc/FonctionnalitesWooCommerce.php | 10 +- .../src/sass/layouts/_colonnes-photos.scss | 2 +- .../src/sass/layouts/_grille-produits.scss | 1 - .../layouts/_menu-categories-produits.scss | 1 - .../layouts/_panneau-informations-client.scss | 7 +- .../src/sass/layouts/_panneau-panier.scss | 9 - .../src/sass/pages/page-succes-commande.scss | 18 +- .../src/scripts/constantes/dom.ts | 1 + .../src/scripts/lib/schemas/api/v3/orders.ts | 4 +- .../src/scripts/lib/types/api/v3/orders.ts | 3 +- .../src/scripts/scripts-page-panier.ts | 36 +-- .../panier/panneau-informations-client.twig | 8 +- .../parts/pages/panier/panneau-panier.twig | 2 +- .../views/succes-commande.twig | 4 +- web/app/uploads/wc-logs/index.html | 1 - .../wpmc-trash/2024/09/HADOU-B-opti.jpg | Bin 235960 -> 0 bytes 67 files changed, 389 insertions(+), 539 deletions(-) delete mode 100644 LICENSE.md delete mode 100644 PANIER.md delete mode 100644 script.js rename web/app/themes/haiku-atelier-2024/assets/js/{index.vOxCZRxB.js => index.CXGAS3st.js} (98%) create mode 100644 web/app/themes/haiku-atelier-2024/assets/js/index.CXGAS3st.js.map delete mode 100644 web/app/themes/haiku-atelier-2024/assets/js/index.vOxCZRxB.js.map delete mode 100644 web/app/uploads/wc-logs/index.html delete mode 100644 web/app/uploads/wpmc-trash/2024/09/HADOU-B-opti.jpg diff --git a/LICENSE.md b/LICENSE.md deleted file mode 100644 index 37ba04a1..00000000 --- a/LICENSE.md +++ /dev/null @@ -1,7 +0,0 @@ -Copyright (c) Roots Software Foundation LLC - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/PANIER.md b/PANIER.md deleted file mode 100644 index fb3a125e..00000000 --- a/PANIER.md +++ /dev/null @@ -1,12 +0,0 @@ -- Cheminement de la création d'une commande - - **OK** Choix de la séparation entre livraison et facturation - - **OK** Renseignement du formulaire de livraison - - **OK** (Renseignement du formulaire de facturation) - - Clic sur le bouton "Submit" - - Le backend envoie la méthode de livraison et son coût en fonction du pays choisi et des produits dans le Panier - - Affichage du choix de la méthode de paiement (caché jusque là) - - Change le texte du bouton d'action du formulaire - - Rend obligatoire les champs du formulaire de paiement - - Choix de la méthode de paiement - - (Stripe) Chargement du formulaire - - (PayPal) Chargement du formulaire diff --git a/composer.lock b/composer.lock index 59886015..a957a476 100644 --- a/composer.lock +++ b/composer.lock @@ -3210,16 +3210,16 @@ }, { "name": "twig/twig", - "version": "v3.14.2", + "version": "v3.15.0", "source": { "type": "git", "url": "https://github.com/twigphp/Twig.git", - "reference": "0b6f9d8370bb3b7f1ce5313ed8feb0fafd6e399a" + "reference": "2d5b3964cc21d0188633d7ddce732dc8e874db02" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/Twig/zipball/0b6f9d8370bb3b7f1ce5313ed8feb0fafd6e399a", - "reference": "0b6f9d8370bb3b7f1ce5313ed8feb0fafd6e399a", + "url": "https://api.github.com/repos/twigphp/Twig/zipball/2d5b3964cc21d0188633d7ddce732dc8e874db02", + "reference": "2d5b3964cc21d0188633d7ddce732dc8e874db02", "shasum": "" }, "require": { @@ -3273,7 +3273,7 @@ ], "support": { "issues": "https://github.com/twigphp/Twig/issues", - "source": "https://github.com/twigphp/Twig/tree/v3.14.2" + "source": "https://github.com/twigphp/Twig/tree/v3.15.0" }, "funding": [ { @@ -3285,7 +3285,7 @@ "type": "tidelift" } ], - "time": "2024-11-07T12:36:22+00:00" + "time": "2024-11-17T15:59:19+00:00" }, { "name": "vlucas/phpdotenv", @@ -4650,16 +4650,16 @@ }, { "name": "phpstan/phpstan", - "version": "2.0.1", + "version": "2.0.2", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan.git", - "reference": "ab4e9b4415a5fc9e4d27f7fe16c8bc9d067dcd6d" + "reference": "6c98c7600fc717b2c78c11ef60040d5b1e359c82" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/ab4e9b4415a5fc9e4d27f7fe16c8bc9d067dcd6d", - "reference": "ab4e9b4415a5fc9e4d27f7fe16c8bc9d067dcd6d", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/6c98c7600fc717b2c78c11ef60040d5b1e359c82", + "reference": "6c98c7600fc717b2c78c11ef60040d5b1e359c82", "shasum": "" }, "require": { @@ -4704,7 +4704,7 @@ "type": "github" } ], - "time": "2024-11-11T15:43:04+00:00" + "time": "2024-11-17T14:17:00+00:00" }, { "name": "psr/log", @@ -6307,12 +6307,12 @@ "source": { "type": "git", "url": "https://github.com/szepeviktor/phpstan-wordpress.git", - "reference": "8c7f1b391334001ab8bc2e1cbd57e9e849d8979d" + "reference": "fab61ad0e3ba963877eea48d29248eb1ae2a3eda" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/szepeviktor/phpstan-wordpress/zipball/8c7f1b391334001ab8bc2e1cbd57e9e849d8979d", - "reference": "8c7f1b391334001ab8bc2e1cbd57e9e849d8979d", + "url": "https://api.github.com/repos/szepeviktor/phpstan-wordpress/zipball/fab61ad0e3ba963877eea48d29248eb1ae2a3eda", + "reference": "fab61ad0e3ba963877eea48d29248eb1ae2a3eda", "shasum": "" }, "require": { @@ -6361,7 +6361,7 @@ "issues": "https://github.com/szepeviktor/phpstan-wordpress/issues", "source": "https://github.com/szepeviktor/phpstan-wordpress/tree/2.x" }, - "time": "2024-11-16T06:28:10+00:00" + "time": "2024-11-17T13:12:31+00:00" }, { "name": "vimeo/psalm", diff --git a/package.json b/package.json index 89fbc186..17232f47 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,7 @@ "description": "", "author": "", "license": "ISC", - "packageManager": "pnpm@9.13.0", + "packageManager": "pnpm@9.13.2", "main": "index.js", "keywords": [], "scripts": { "knip": "knip", "test": "echo \"Error: no test specified\" && exit 1" }, @@ -16,7 +16,7 @@ "a11y-dialog": "^8.1.1", "purify-ts": "^2.1.0", "ts-pattern": "^5.5.0", - "valibot": "1.0.0-beta.6" + "valibot": "1.0.0-beta.7" }, "devDependencies": { "@biomejs/biome": "^1.9.4", @@ -52,7 +52,7 @@ "vite": "^5.4.11", "vite-plugin-manifest-sri": "^0.2.0", "vite-plugin-node-polyfills": "^0.22.0", - "vite-plugin-valibot-env": "^0.8.6", + "vite-plugin-valibot-env": "^0.8.7", "vite-tsconfig-paths": "^5.1.2", "wp-types": "^4.67.0" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3e8ce655..53d705a4 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -27,8 +27,8 @@ importers: specifier: ^5.5.0 version: 5.5.0 valibot: - specifier: 1.0.0-beta.6 - version: 1.0.0-beta.6(typescript@5.7.0-dev.20241105) + specifier: 1.0.0-beta.7 + version: 1.0.0-beta.7(typescript@5.7.0-dev.20241105) devDependencies: '@biomejs/biome': specifier: ^1.9.4 @@ -130,8 +130,8 @@ importers: specifier: ^0.22.0 version: 0.22.0(rollup@4.27.2)(vite@5.4.11(@types/node@22.9.0)(sass-embedded@1.81.0)(sass@1.80.6)) vite-plugin-valibot-env: - specifier: ^0.8.6 - version: 0.8.6(valibot@1.0.0-beta.6(typescript@5.7.0-dev.20241105))(vite@5.4.11(@types/node@22.9.0)(sass-embedded@1.81.0)(sass@1.80.6)) + specifier: ^0.8.7 + version: 0.8.7(valibot@1.0.0-beta.7(typescript@5.7.0-dev.20241105))(vite@5.4.11(@types/node@22.9.0)(sass-embedded@1.81.0)(sass@1.80.6)) vite-tsconfig-paths: specifier: ^5.1.2 version: 5.1.2(typescript@5.7.0-dev.20241105)(vite@5.4.11(@types/node@22.9.0)(sass-embedded@1.81.0)(sass@1.80.6)) @@ -2829,8 +2829,8 @@ packages: util@0.12.5: resolution: {integrity: sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==} - valibot@1.0.0-beta.6: - resolution: {integrity: sha512-x9ObzhqDCWFaWOa6Zri1mbFcc8OIIKP7cQtD9JauKt5pJFhpJkvAXT+49bFKjoVikiKVk7m33mXgUJb/Wfknmw==} + valibot@1.0.0-beta.7: + resolution: {integrity: sha512-8CsDu3tqyg7quEHMzCOYdQ/d9NlmVQKtd4AlFje6oJpvqo70EIZjSakKIeWltJyNAiUtdtLe0LAk4625gavoeQ==} peerDependencies: typescript: '>=5' peerDependenciesMeta: @@ -2848,11 +2848,11 @@ packages: peerDependencies: vite: ^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0 - vite-plugin-valibot-env@0.8.6: - resolution: {integrity: sha512-gvMQN+5TEnHP2sfnU7fnlaLoVbUofKP4HpobDZotKuph4/LZlwsRJN5jkSqpao2JFpN8qoz4A0SNDeZUETVifg==} + vite-plugin-valibot-env@0.8.7: + resolution: {integrity: sha512-kaj72uQiCBpUaTiMT8mNxOqEt4+8j8aSfwndZax+bj49VdNwyU1tRzmc/CXcyzns4E8bj5rt3kZE4qLXUMFW2g==} engines: {node: '>=18.0.0'} peerDependencies: - valibot: '>=0.30 <=0.42 || >=1.0.0-beta.0 <=1.0.0-beta.6' + valibot: '>=0.30 <=0.42 || >=1.0.0-beta.0 <=1.0.0-beta.7' vite: '>=2 <=6.0.0-beta.10' vite-tsconfig-paths@5.1.2: @@ -5533,7 +5533,7 @@ snapshots: is-typed-array: 1.1.13 which-typed-array: 1.1.15 - valibot@1.0.0-beta.6(typescript@5.7.0-dev.20241105): + valibot@1.0.0-beta.7(typescript@5.7.0-dev.20241105): optionalDependencies: typescript: 5.7.0-dev.20241105 @@ -5549,11 +5549,11 @@ snapshots: transitivePeerDependencies: - rollup - vite-plugin-valibot-env@0.8.6(valibot@1.0.0-beta.6(typescript@5.7.0-dev.20241105))(vite@5.4.11(@types/node@22.9.0)(sass-embedded@1.81.0)(sass@1.80.6)): + vite-plugin-valibot-env@0.8.7(valibot@1.0.0-beta.7(typescript@5.7.0-dev.20241105))(vite@5.4.11(@types/node@22.9.0)(sass-embedded@1.81.0)(sass@1.80.6)): dependencies: kleur: 4.1.5 log-symbols: 7.0.0 - valibot: 1.0.0-beta.6(typescript@5.7.0-dev.20241105) + valibot: 1.0.0-beta.7(typescript@5.7.0-dev.20241105) vite: 5.4.11(@types/node@22.9.0)(sass-embedded@1.81.0)(sass@1.80.6) vite-tsconfig-paths@5.1.2(typescript@5.7.0-dev.20241105)(vite@5.4.11(@types/node@22.9.0)(sass-embedded@1.81.0)(sass@1.80.6)): diff --git a/script.js b/script.js deleted file mode 100644 index 1e964110..00000000 --- a/script.js +++ /dev/null @@ -1,224 +0,0 @@ -function setupBrand() { - window.onbeforeunload = function() { - window.scrollTo(0, 0); - }; - let mediaQuery = window.matchMedia("(max-width: 768px)"); - manifesteDescSlider = new KeenSlider(".manifeste-slider-desc", { - created: s => { - document.querySelector(".manifeste-slider-desc").style.display = "block"; - }, - defaultAnimation: { - duration: 0, - }, - detailsChanged: s => { - s.slides.forEach((element, idx) => { - element.style.display = s.track.details.slides[idx].portion > 0 ? "block" : "none"; - }); - }, - loop: true, - renderMode: "custom", - selector: ".manifeste-desc-slides", - vertical: true, - }); - - manifesteSlider = new KeenSlider(".manifeste-slider", { - created: s => {}, - defaultAnimation: { - duration: 0, - }, - detailsChanged: s => { - manifesteDescSlider.moveToIdx(s.track.details.rel); - - s.slides.forEach((element, idx) => { - element.style.display = s.track.details.slides[idx].portion > 0 ? "block" : "none"; - }); - }, - renderMode: "custom", - selector: ".manifeste-slides", - vertical: true, - }); - - const isMobile = window.innerWidth <= 768; // Ajustez selon vos besoins - - let lastScrollTop = 0; - let scrollProgress = 0; - let scrollThreshold = isMobile ? 300 : 600; - console.log(scrollThreshold); - - const sliderElement = document.querySelector(".manifeste-slider"); - const aboutContainer = document.querySelector(".about-container"); - function isElementInViewport(el) { - const rect = el.getBoundingClientRect(); - return ( - rect.top >= 0 - && rect.left >= 0 - && rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) - && rect.right <= (window.innerWidth || document.documentElement.clientWidth) - ); - } - - const brandContainer = document.querySelector(".brand-container"); - - brandContainer.addEventListener("click", function() { - manifesteSlider.next(); - }); - - window.addEventListener( - "scroll", - () => { - if (!isElementInViewport(aboutContainer)) { - console.log("if"); - - // console.log(sliderElement); - document.querySelector("#link-about").style.opacity = 0.3; - document.querySelector("#link-legals").style.opacity = 0.3; - document.querySelector(".manifeste-slider-desc").style.opacity = 1; - - // document - // .querySelector("#link-brand") - // .style.setProperty("opacity", "0.3", "important"); - - // return; - } else if (isElementInViewport(aboutContainer)) { - // console.log(sliderElement); - - console.log("else"); - document.querySelector(".manifeste-slider-desc").style.opacity = 0; - document.querySelector("#link-brand").style.opacity = 1; - document.querySelector("#link-about").style.opacity = 1; - } - - document.querySelector(".instruction").style.opacity = 0; - const st = window.scrollY || document.documentElement.scrollTop; - const scrollDelta = Math.abs(st - lastScrollTop); - scrollProgress += scrollDelta; - - if (scrollProgress >= scrollThreshold) { - if (st > lastScrollTop) { - manifesteSlider.next(); - console.log("next"); - } else { - manifesteSlider.prev(); - console.log("prev"); - } - scrollProgress = 0; - } - - lastScrollTop = st <= 0 ? 0 : st; - }, - false, - ); - - const numberOfSlides = document.querySelectorAll(".manifeste-slider .manifeste-slides").length; - const heightPerSlideVH = 100; - const totalHeightInVH = numberOfSlides * heightPerSlideVH - - (numberOfSlides - 1) * ((scrollThreshold / window.innerHeight) * 50); - brandContainer.style.height = `${totalHeightInVH}vh`; - - const links = document.querySelectorAll(".menu-brand a"); - - links.forEach(link => { - link.addEventListener("click", () => { - links.forEach(l => (l.style.opacity = 0.3)); - link.style.opacity = 1; - }); - }); - - const brandLink = document.getElementById("link-brand"); - - brandLink.addEventListener("click", e => { - e.preventDefault(); - if (brandContainer) { - brandContainer.scrollIntoView({ behavior: "smooth" }); - } - }); - - const linkLegals = document.querySelector("#link-legals"); - const linkPersonal = document.querySelector("#link-personal"); - const linkAbout = document.querySelector("#link-about"); - - const legalsInfo = document.querySelector(".legals-info"); - const personalInfo = document.querySelector(".personal-info"); - const aboutInfo = document.querySelector(".brand-info"); - - linkLegals.addEventListener("click", e => { - e.preventDefault(); - if (brandContainer) { - legalsInfo.scrollIntoView({ behavior: "smooth" }); - } - }); - linkPersonal.addEventListener("click", e => { - e.preventDefault(); - if (brandContainer) { - legalsInfo.scrollIntoView({ behavior: "smooth" }); - } - }); - linkAbout.addEventListener("click", e => { - e.preventDefault(); - if (brandContainer) { - legalsInfo.scrollIntoView({ behavior: "smooth" }); - } - }); - - function resetZIndex() { - legalsInfo.style.zIndex = "0"; - personalInfo.style.zIndex = "0"; - aboutInfo.style.zIndex = "0"; - } - - linkLegals.addEventListener("click", e => { - e.preventDefault(); - console.log("hey"); - resetZIndex(); - legalsInfo.style.zIndex = "10"; - }); - - linkPersonal.addEventListener("click", e => { - e.preventDefault(); - resetZIndex(); - personalInfo.style.zIndex = "10"; - }); - - linkAbout.addEventListener("click", e => { - e.preventDefault(); - resetZIndex(); - aboutInfo.style.zIndex = "10"; - }); - if (mediaQuery.matches) { - const divToObserve = document.querySelector(".about-container"); - - const observer = new IntersectionObserver( - entries => { - entries.forEach(entry => { - if (entry.isIntersecting) { - console.log("La div est visible dans le viewport"); - document.querySelector(".manifeste-slider-desc").style.opacity = 0; - entry.target.classList.add("visible"); - } else { - console.log("La div a quitté le viewport"); - document.querySelector(".manifeste-slider-desc").style.opacity = 1; - entry.target.classList.remove("visible"); - } - }); - }, - { - root: null, - rootMargin: "0px", // Marge autour de la root. Valeurs similaires à celles de CSS (top, right, bottom, left ou juste un seul pour tous) - threshold: 0.1, // Un pourcentage de l'élément qui doit être visible pour déclencher l'observer. 0.1 signifie 10% de l'élément - }, - ); - - observer.observe(divToObserve); - - // setTimeout(() => { - // let element = document.querySelector( - // ".shopify-buy-frame--toggle.is-sticky" - // ); - // element.style.setProperty("opacity", "1"); - // }, 1000); - } - // sideSlider = new KeenSlider(".carousel-side-p", { - // vertical: false, - // selector: ".slide-p", - // }); -} diff --git a/web/app/themes/haiku-atelier-2024/assets/css/main.css b/web/app/themes/haiku-atelier-2024/assets/css/main.css index e1cd90e8..139b9f65 100644 --- a/web/app/themes/haiku-atelier-2024/assets/css/main.css +++ b/web/app/themes/haiku-atelier-2024/assets/css/main.css @@ -748,12 +748,12 @@ body:has(#menu-mobile:not([aria-hidden=true])) { bottom: calc(var(--position-y-fleches) / 2 - var(--espace-l) / 2); width: 3rem; height: 3rem; + padding: var(--espace-s); visibility: hidden; opacity: 0; border-radius: 100%; mix-blend-mode: difference; shape-rendering: geometricprecision; - padding: var(--espace-s); transition: 0.2s opacity, 0.2s visibility; } .fleches-defilement__bouton:first-of-type { diff --git a/web/app/themes/haiku-atelier-2024/assets/css/main.css.map b/web/app/themes/haiku-atelier-2024/assets/css/main.css.map index 16d9a6d3..1905504e 100644 --- a/web/app/themes/haiku-atelier-2024/assets/css/main.css.map +++ b/web/app/themes/haiku-atelier-2024/assets/css/main.css.map @@ -1 +1 @@ -{"version":3,"sourceRoot":"","sources":["../../src/sass/base/polices/_lato.scss","../../src/sass/base/polices/_myriad.scss","../../src/sass/abstracts/_variables.scss","../../src/sass/base/_base.scss","../../src/sass/base/_typographie.scss","../../src/sass/base/elements/_boutons.scss","../../src/sass/base/elements/_formulaires.scss","../../src/sass/base/elements/_images.scss","../../src/sass/base/elements/_liens.scss","../../src/sass/base/elements/_listes.scss","../../src/sass/layouts/_menu-mobile.scss","../../src/sass/layouts/_en-tete.scss","../../src/sass/layouts/_menu-categories-produits.scss","../../src/sass/layouts/_colonnes-photos.scss","../../src/sass/layouts/_grille-produits.scss","../../src/sass/layouts/_informations-produit.scss","../../src/sass/layouts/_produits-similaires.scss","../../src/sass/layouts/_pied-de-page.scss"],"names":[],"mappings":";AAAA;EACE;EACA;EACA;EACA;EACA,KACE;EAQF,eACE;;AAmBJ;EACE;EACA;EACA;EACA;EACA,KACE;EAQF,eACE;;ACjDJ;EACE;EACA;EACA;EACA;EACA;EACA,KACE;;AAKJ;EACE;EACA;EACA;EACA;EACA;EACA,KACE;;ACjBJ;AACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AAEA;EACA;EACA;AAEA;EACA;EACA;EACA;EACA;AAEA;EACA;EACA;EACA;EACA;EACA;AAEA;EACA;EACA;EACA;EACA;AAAA;AAAA;EAGA;AAAA;AAAA;AAAA;AAKA;EACA;EACA;EACA;EACA;EACA;;;AC9CF;AAAA;AAAA;AAGA;EACE;;;AAGF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA;EACE;EACA;EACA;EACA;EACA;;;AAGF;AAAA;AAAA;AAAA;AAIA;EACE;EACA;;;AAGF;AAAA;AAAA;AAGA;EACE;;;AAGF;AAAA;AAAA;AAGA;EACE;;;AAGF;AACA;EACE;;;AAGF;AACA;EACE;;;AAGF;AAAA;AAAA;AAGA;EACE;IACE;IACA;IACA;;;AChEJ;AAAA;AAAA;AAAA;AAIA;EACE;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;AC1BA;AAAA;AAAA;AAGA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGE;EACE;EACA;;AAGF;EACE;EACA;;AAGF;EACE;IACE;IACA;;;AAKN;EACE;EAEA;;AAIF;EACE;EACA;;AAEA;EACE;EACA;EACA;;AAEA;EACE;EACA;;AAKN;EACE;EACA;;AAIA;EADF;IAEI;;;;AC9DN;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAGF;EACE;EAEA;;;AAKF;EACE;EACA;;AAGF;EACE;EACA;;AAGF;EACE;;AAGF;EACE;;;AAQJ;EACE;;;AAIF;EACE;EACA;EACA;EACA;EACA;EACA;AAwBA;AAAA;AAAA;;AAtBA;EACE;;AAGA;EACE;EACA;EACA;EACA;;AAGF;EACE;IACE;;;AAKN;EACE;;AAMF;EACE;EACA;;AAGF;EACE;IACE;;;;AAMJ;EACE;;AAGF;EACE;IACE;;;;ACpGN;AAAA;AAAA;AAAA;AAAA;AAKA;EACE;EACA;;;AAGF;EACE;EACA;;;ACZF;AAAA;AAAA;AAAA;AAAA;AAKA;AACE;EACA;EAEA;EACA;EACA;EACA;EACA;EACA,YACE,uIAM4B;EAE9B;AAEA;AAKA;AA8BA;AAiBA;;AAnDA;EACE;;AAIF;AACE;EACA;EACA;AAEA;EACA;EAEA;EACA;AAEA;AAKA;AAKA;;AATA;EACE;;AAIF;EACE;;AAIF;EACE;IACE;;;AAMN;EACE;;AAEA;EACE;EACA;;AAGF;EACE;IACE;IACA;;;AAOJ;EACE;IACE;;;;ACjFR;AAAA;AAAA;AAAA;AAAA;AAKA;EACE;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAMA;AACE;EACA;AAEA;EACA;AAEA;EACA;;AAEA;EACE;EACA,qLAEkE;;;AC3BxE;EACE;EACA;;;AAGF;EAEE;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAEA;EACE;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAEA;EACE;EACA;EACA;;AAEA;EACE;;AAEA;EACE;EACA;;AAOV;EArEF;IAsEI;;;;AAIJ;EACE;IACE;;;AAIJ;EACE;IACE;;;AAIJ;EACE;IACE;;;AC5FJ;EAEE;EACA;EAGA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AAeA;;AAbA;EACE;;AAEA;EACE;;AAGF;EACE;EACA;;AAKJ;EACE;EACA;EACA;EACA;EACA;EACA;AAUA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AARA;EACE;EACA;EACA;EACA;EACA;;AAYF;AACE;EACA;EACA;EACA;AAEA;EACA;;AAEA;EACE;EACA,yFAC2C;EAE3C;;AAGF;EACE;;AAIF;EACE;IACE;;;AAOJ;EADF;IAEI;;;AAKN;EACE;EACA;EACA;EACA;EACA;AAaA;AAAA;AAAA;;AAXA;EACE;;AAGA;EACE;EACA;EACA;;AAOJ;EACE;EACA;EACA;;AAEA;EACE;;AAGF;EACE;;;ACpIR;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA;AACE;EACA;EAGA;EACA;EAIA;EACA;AAuCA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AApCE;EACE;;AAKF;EACE;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;;AAIF;EApBF;IAqBI;;;AAWJ;EACE;EACA,uBACE;EAEF;EACA;AAEA;AAAA;AAAA;;AAGA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AAgBA;AAAA;AAAA;AAAA;AAAA;;AAbE;EACE;EACA;EACA;;AAEA;EACE;IACE;;;AAWR;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAGF;EACE;IACE;IACA;;;AAMR;EA7DF;IA8DI;IAEA;IACA;IACA;;EAEA;IACE;IACA;;EAEA;IACE;IACA;;;AAMN;EAhFF;IAiFI;IACA;IACA;;EAEA;IACE;IACA;;;;ACpJR;EAEE;EAEA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;;AAKF;EACE;EACA;;AAKF;EACE;EACA;;AAIJ;EACE;IACE;;;;AAKN;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA;EAEE;EAGA;EACA;AAAA;AAAA;EAGA;EAGA;EAEA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAGA;EACE;;AAKF;EACE;EACA;;AAIF;EACE;EACA;;AAMN;EApDF;IAqDI;IACA;IACA;IACA;IACA;IACA;IACA;;EAEA;IACE;;EAGF;IACE;IACA;IACA;;EAEA;IACE;;EAGF;IACE;IACA;;EAEA;IACE;;EAIJ;IACE;;EAEA;IACE;IACA;;EAEA;IACE;;;;AC1JZ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAYA;EAEE;EACA;EACA;EACA;EAEA;EACA;EACA,uBACE;EAEF;EACA;;AAEA;EACE;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAEA;EAEI;IACE;IACA;IACA;;;AAMR;EACE;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAIJ;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAGF;EACE;EACA;;AAMR;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAIJ;EACE;IACE;;EAEA;IACE;;;;AAMR;EACE;IACE;;;AClJJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA;EAEE;EACA;EAGA;EACA;EAEA;EACA;EACA;EACA;EACA;AA8HA;;AA5HA;EACE;EACA;EACA;EACA;EACA;AAIA;AAAA;AAAA;;AAGA;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAKN;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAGF;EACE;EACA;;AAGF;EACE;;AAGF;EACE;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAEA;EACE;;AAGF;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AAEA;;AACA;EACE;EACA;;AAGF;EACE;EACA;;AAGF;EACE;IACE;;;AAQR;EACE;;AAMN;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAMA;EACE;EACA;EACA;EACA;AAEA;AA2BA;;AA1BA;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;IACE;;;AAKN;EACE;;AAIF;EACE;AAEA;;AACA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EAEI;IACE;IACA;;;AAKN;EAEI;IACE;IACA;;;AAOV;EACE;;AAKJ;EACE;EACA;EACA;EACA;EACA;EACA;;AAGA;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAIE;EACE;IACE;;;AAQV;EA5QF;IA6QI;;EAEA;IACE;IACA;IACA;IACA;IACA;;;AAKJ;EAzRF;IA0RI;IACA;IAEA;IACA;IACA;IACA;IACA;;EAEA;IACE;;;;AC3SN;EAEE;EACA;EAEA;EACA;EACA,qBACE;EAEF;EACA;EACA;EACA;AAEA;;AACA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAEA;EAEI;IACE;IACA;IACA;;;AAMR;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAGF;EACE;EACA;;AAMR;EACE;IACE;;EAEA;IACE;;;;ACjHV;AACE;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGA;EACE;EACA;EACA;EACA;;AAIF;EACE;EACA;EACA;EACA","file":"main.css"} \ No newline at end of file +{"version":3,"sourceRoot":"","sources":["../../src/sass/base/polices/_lato.scss","../../src/sass/base/polices/_myriad.scss","../../src/sass/abstracts/_variables.scss","../../src/sass/base/_base.scss","../../src/sass/base/_typographie.scss","../../src/sass/base/elements/_boutons.scss","../../src/sass/base/elements/_formulaires.scss","../../src/sass/base/elements/_images.scss","../../src/sass/base/elements/_liens.scss","../../src/sass/base/elements/_listes.scss","../../src/sass/layouts/_menu-mobile.scss","../../src/sass/layouts/_en-tete.scss","../../src/sass/layouts/_menu-categories-produits.scss","../../src/sass/layouts/_colonnes-photos.scss","../../src/sass/layouts/_grille-produits.scss","../../src/sass/layouts/_informations-produit.scss","../../src/sass/layouts/_produits-similaires.scss","../../src/sass/layouts/_pied-de-page.scss"],"names":[],"mappings":";AAAA;EACE;EACA;EACA;EACA;EACA,KACE;EAQF,eACE;;AAmBJ;EACE;EACA;EACA;EACA;EACA,KACE;EAQF,eACE;;ACjDJ;EACE;EACA;EACA;EACA;EACA;EACA,KACE;;AAKJ;EACE;EACA;EACA;EACA;EACA;EACA,KACE;;ACjBJ;AACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AAEA;EACA;EACA;AAEA;EACA;EACA;EACA;EACA;AAEA;EACA;EACA;EACA;EACA;EACA;AAEA;EACA;EACA;EACA;EACA;AAAA;AAAA;EAGA;AAAA;AAAA;AAAA;AAKA;EACA;EACA;EACA;EACA;EACA;;;AC9CF;AAAA;AAAA;AAGA;EACE;;;AAGF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA;EACE;EACA;EACA;EACA;EACA;;;AAGF;AAAA;AAAA;AAAA;AAIA;EACE;EACA;;;AAGF;AAAA;AAAA;AAGA;EACE;;;AAGF;AAAA;AAAA;AAGA;EACE;;;AAGF;AACA;EACE;;;AAGF;AACA;EACE;;;AAGF;AAAA;AAAA;AAGA;EACE;IACE;IACA;IACA;;;AChEJ;AAAA;AAAA;AAAA;AAIA;EACE;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;AC1BA;AAAA;AAAA;AAGA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGE;EACE;EACA;;AAGF;EACE;EACA;;AAGF;EACE;IACE;IACA;;;AAKN;EACE;EAEA;;AAIF;EACE;EACA;;AAEA;EACE;EACA;EACA;;AAEA;EACE;EACA;;AAKN;EACE;EACA;;AAIA;EADF;IAEI;;;;AC9DN;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAGF;EACE;EAEA;;;AAKF;EACE;EACA;;AAGF;EACE;EACA;;AAGF;EACE;;AAGF;EACE;;;AAQJ;EACE;;;AAIF;EACE;EACA;EACA;EACA;EACA;EACA;AAwBA;AAAA;AAAA;;AAtBA;EACE;;AAGA;EACE;EACA;EACA;EACA;;AAGF;EACE;IACE;;;AAKN;EACE;;AAMF;EACE;EACA;;AAGF;EACE;IACE;;;;AAMJ;EACE;;AAGF;EACE;IACE;;;;ACpGN;AAAA;AAAA;AAAA;AAAA;AAKA;EACE;EACA;;;AAGF;EACE;EACA;;;ACZF;AAAA;AAAA;AAAA;AAAA;AAKA;AACE;EACA;EAEA;EACA;EACA;EACA;EACA;EACA,YACE,uIAM4B;EAE9B;AAEA;AAKA;AA8BA;AAiBA;;AAnDA;EACE;;AAIF;AACE;EACA;EACA;AAEA;EACA;EAEA;EACA;AAEA;AAKA;AAKA;;AATA;EACE;;AAIF;EACE;;AAIF;EACE;IACE;;;AAMN;EACE;;AAEA;EACE;EACA;;AAGF;EACE;IACE;IACA;;;AAOJ;EACE;IACE;;;;ACjFR;AAAA;AAAA;AAAA;AAAA;AAKA;EACE;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAMA;AACE;EACA;AAEA;EACA;AAEA;EACA;;AAEA;EACE;EACA,qLAEkE;;;AC3BxE;EACE;EACA;;;AAGF;EAEE;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAEA;EACE;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAEA;EACE;EACA;EACA;;AAEA;EACE;;AAEA;EACE;EACA;;AAOV;EArEF;IAsEI;;;;AAIJ;EACE;IACE;;;AAIJ;EACE;IACE;;;AAIJ;EACE;IACE;;;AC5FJ;EAEE;EACA;EAGA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AAeA;;AAbA;EACE;;AAEA;EACE;;AAGF;EACE;EACA;;AAKJ;EACE;EACA;EACA;EACA;EACA;EACA;AAUA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AARA;EACE;EACA;EACA;EACA;EACA;;AAYF;AACE;EACA;EACA;EACA;AAEA;EACA;;AAEA;EACE;EACA,yFAC2C;EAE3C;;AAGF;EACE;;AAIF;EACE;IACE;;;AAOJ;EADF;IAEI;;;AAKN;EACE;EACA;EACA;EACA;EACA;AAaA;AAAA;AAAA;;AAXA;EACE;;AAGA;EACE;EACA;EACA;;AAOJ;EACE;EACA;EACA;;AAEA;EACE;;AAGF;EACE;;;ACpIR;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA;AACE;EACA;EAGA;EACA;EAIA;EACA;AAuCA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AApCE;EACE;;AAKF;EACE;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;;AAIF;EApBF;IAqBI;;;AAWJ;EACE;EACA,uBACE;EACF;EACA;AAEA;AAAA;AAAA;;AAGA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AAgBA;AAAA;AAAA;AAAA;AAAA;;AAbE;EACE;EACA;EACA;;AAEA;EACE;IACE;;;AAWR;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAGF;EACE;IACE;IACA;;;AAMR;EA5DF;IA6DI;IAEA;IACA;IACA;;EAEA;IACE;IACA;;EAEA;IACE;IACA;;;AAMN;EA/EF;IAgFI;IACA;IACA;;EAEA;IACE;IACA;;;;ACnJR;EAEE;EAEA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;;AAKF;EACE;EACA;;AAKF;EACE;EACA;;AAIJ;EACE;IACE;;;;AAKN;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA;EAEE;EAGA;EACA;AAAA;AAAA;EAGA;EAGA;EAEA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAGA;EACE;;AAKF;EACE;EACA;;AAIF;EACE;EACA;;AAMN;EApDF;IAqDI;IACA;IACA;IACA;IACA;IACA;IACA;;EAEA;IACE;;EAGF;IACE;IACA;IACA;;EAEA;IACE;;EAGF;IACE;IACA;;EAEA;IACE;;EAIJ;IACE;;EAEA;IACE;IACA;;EAEA;IACE;;;;AC1JZ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAYA;EAEE;EACA;EACA;EACA;EAEA;EACA;EACA,uBACE;EACF;EACA;;AAEA;EACE;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAEA;EAEI;IACE;IACA;IACA;;;AAMR;EACE;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAIJ;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAGF;EACE;EACA;;AAMR;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAIJ;EACE;IACE;;EAEA;IACE;;;;AAMR;EACE;IACE;;;ACjJJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA;EAEE;EACA;EAGA;EACA;EAEA;EACA;EACA;EACA;EACA;AA8HA;;AA5HA;EACE;EACA;EACA;EACA;EACA;AAIA;AAAA;AAAA;;AAGA;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAKN;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAGF;EACE;EACA;;AAGF;EACE;;AAGF;EACE;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAEA;EACE;;AAGF;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AAEA;;AACA;EACE;EACA;;AAGF;EACE;EACA;;AAGF;EACE;IACE;;;AAQR;EACE;;AAMN;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAMA;EACE;EACA;EACA;EACA;AAEA;AA2BA;;AA1BA;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;IACE;;;AAKN;EACE;;AAIF;EACE;AAEA;;AACA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EAEI;IACE;IACA;;;AAKN;EAEI;IACE;IACA;;;AAOV;EACE;;AAKJ;EACE;EACA;EACA;EACA;EACA;EACA;;AAGA;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAIE;EACE;IACE;;;AAQV;EA5QF;IA6QI;;EAEA;IACE;IACA;IACA;IACA;IACA;;;AAKJ;EAzRF;IA0RI;IACA;IAEA;IACA;IACA;IACA;IACA;;EAEA;IACE;;;;AC3SN;EAEE;EACA;EAEA;EACA;EACA,qBACE;EAEF;EACA;EACA;EACA;AAEA;;AACA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAEA;EAEI;IACE;IACA;IACA;;;AAMR;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAGF;EACE;EACA;;AAMR;EACE;IACE;;EAEA;IACE;;;;ACjHV;AACE;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGA;EACE;EACA;EACA;EACA;;AAIF;EACE;EACA;EACA;EACA","file":"main.css"} \ No newline at end of file diff --git a/web/app/themes/haiku-atelier-2024/assets/css/main.min.css b/web/app/themes/haiku-atelier-2024/assets/css/main.min.css index 3616f51f..619403ca 100644 --- a/web/app/themes/haiku-atelier-2024/assets/css/main.min.css +++ b/web/app/themes/haiku-atelier-2024/assets/css/main.min.css @@ -1 +1 @@ -@font-face{font-family:Lato;font-weight:100 900;font-style:normal;font-display:swap;src:url(/app/themes/haiku-atelier-2024/assets/fonts/lato/lato-variable-webfont.woff2)format("woff2")tech(variations),url(/app/themes/haiku-atelier-2024/assets/fonts/lato/lato-variable-webfont.woff2)format("woff2-variations"),url(/app/themes/haiku-atelier-2024/assets/fonts/lato/lato-variable-webfont.woff2)format("woff2"),url(/app/themes/haiku-atelier-2024/assets/fonts/lato/lato-variable-webfont.ttf)format("truetype");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Lato;font-weight:100 900;font-style:italic;font-display:swap;src:url(/app/themes/haiku-atelier-2024/assets/fonts/lato/lato-variable-italic-webfont.woff2)format("woff2")tech(variations),url(/app/themes/haiku-atelier-2024/assets/fonts/lato/lato-variable-italic-webfont.woff2)format("woff2-variations"),url(/app/themes/haiku-atelier-2024/assets/fonts/lato/lato-variable-italic-webfont.woff2)format("woff2"),url(/app/themes/haiku-atelier-2024/assets/fonts/lato/lato-variable-italic-webfont.ttf)format("truetype");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Myriad;font-weight:300 900;font-style:normal;font-display:swap;font-stretch:70% 110%;src:url(/app/themes/haiku-atelier-2024/assets/fonts/myriad/myriad-variable.woff2)format("woff2"),url(/app/themes/haiku-atelier-2024/assets/fonts/myriad/myriad-variable.ttf)format("truetype")}@font-face{font-family:Myriad;font-weight:300 900;font-style:italic;font-display:swap;font-stretch:70% 110%;src:url(/app/themes/haiku-atelier-2024/assets/fonts/myriad/myriad-variable-italic.woff2)format("woff2"),url(/app/themes/haiku-atelier-2024/assets/fonts/myriad/myriad-variable-italic.ttf)format("truetype")}:root{--couleur-blanc:#fff;--couleur-blanc-fond:#ffffffe6;--couleur-gris:#eceaeb;--couleur-gris-fonce:gray;--couleur-gris-fonce-fond:#808080cc;--couleur-bordeaux:#490918;--couleur-bordeaux-fond:#490918cc;--couleur-jaune:#ebffb8;--couleur-jaune-fond:#ebffb8cc;--couleur-noir:#202020;--couleur-fond:#eceaebcc;--police-lato:"Lato",sans-serif;--police-myriad:"Myriad",sans-serif;--hauteur-ligne-classique:1.5;--hauteur-ligne-moitie:1.2;--hauteur-ligne-compacte:1.1;--hauteur-ligne-rapprochee:1;--espacement-inter-lettres-rapproche-s:-.5px;--espacement-inter-lettres-etendu-s:.5px;--espacement-inter-lettres-etendu-m:1px;--espacement-inter-lettres-etendu-l:1.5px;--espacement-inter-lettres-etendu-xl:2px;--en-tete-hauteur:61px;--menu-categories-produits-hauteur:54.39px;--pied-de-page-hauteur:calc(var(--espace-m)*2 + 3lh);--contenu-page-hauteur-minimale-sans-categories:calc(100svh - var(--en-tete-hauteur) - var(--pied-de-page-hauteur));--contenu-page-hauteur-minimale-avec-categories:calc(100svh - var(--en-tete-hauteur) - var(--pied-de-page-hauteur) - var(--menu-categories-produits-hauteur));--espace-xs:.25rem;--espace-s:.5rem;--espace-m:1rem;--espace-l:1.25rem;--espace-xl:2rem}html{box-sizing:border-box}*,:before,:after{box-sizing:inherit;font:inherit;color:inherit;margin:0;padding:0}body{accent-color:var(--couleur-jaune);background:var(--couleur-gris)}button,input,select,textarea{font:inherit}::selection{background:var(--couleur-jaune)}[hidden]{display:none!important}[disabled]{cursor:not-allowed}@media (prefers-reduced-motion){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation-duration:0s!important}}html{font:1rem/var(--hauteur-ligne-classique)Lato;font-optical-sizing:auto;font-kerning:normal;font-variant-ligatures:common-ligatures no-discretionary-ligatures no-historical-ligatures contextual;-webkit-font-smoothing:antialiased;color:var(--couleur-noir);text-decoration-skip-ink:auto;text-size-adjust:none;text-rendering:geometricprecision;letter-spacing:var(--espacement-inter-lettres-etendu-s)}strong{font-weight:600}em{font-style:italic}button{all:initial;cursor:pointer;box-sizing:border-box;text-align:center;letter-spacing:inherit;outline:2px solid #0000;font-family:Lato;transition:background .2s,color .2s}button:not[disabled]:focus-visible{z-index:5;outline:2px solid var(--couleur-noir)}button:not[disabled]:active{color:var(--couleur-blanc)!important;background:var(--couleur-noir)!important}@media (hover:hover){button:not[disabled]:hover{color:var(--couleur-noir);background:var(--couleur-jaune)}}button:disabled,button[disabled]{background:repeating-conic-gradient(var(--couleur-noir)0% 25%,transparent 0% 100%)1px .5px/2px 2px;outline-color:#0000}button.bouton-case-pleine{width:100%;height:100%}button.bouton-case-pleine.bouton-blanc-sur-noir{text-transform:uppercase;letter-spacing:var(--espacement-inter-lettres-etendu-m);font-style:italic}button.bouton-case-pleine.bouton-blanc-sur-noir:focus-visible{color:var(--couleur-noir);background:var(--couleur-jaune)}button.bouton-blanc-sur-noir{color:var(--couleur-blanc);background:var(--couleur-noir)}@media (hover:hover){button.bouton-fleche{background:initial}}input,select,textarea{padding:var(--espace-xs);background:var(--couleur-gris);border:1px solid var(--couleur-noir);outline:2px solid #0000;transition:background .2s,outline .2s}input:focus-visible,input:focus-within,input:active,select:focus-visible,select:focus-within,select:active,textarea:focus-visible,textarea:focus-within,textarea:active{z-index:10;outline:2px solid var(--couleur-noir)}input:disabled,input[disabled],select:disabled,select[disabled],textarea:disabled,textarea[disabled]{background:repeating-conic-gradient(var(--couleur-noir)0% 25%,transparent 0% 100%)1px .5px/2px 2px;outline-color:#0000}input:is([type=email],[type=text],[type=tel])::placeholder,textarea::placeholder{text-transform:lowercase;letter-spacing:var(--espacement-inter-lettres-etendu-s)}input:is([type=email],[type=text],[type=tel])::selection,textarea::selection{color:var(--couleur-blanc);background:var(--couleur-noir)}input:is([type=email],[type=text],[type=tel]):user-valid,textarea:user-valid{background:var(--couleur-jaune)}input:is([type=email],[type=text],[type=tel]):user-invalid,textarea:user-invalid{background:var(--couleur-gris)}input,label,select,textarea{cursor:pointer}input[type=checkbox],input[type=radio]{width:var(--espace-l);height:var(--espace-l);padding:initial;appearance:none;border:1px solid var(--couleur-noir);transition:background .2s}input[type=checkbox]:checked,input[type=radio]:checked{background:var(--couleur-jaune)}input[type=checkbox]:checked:before,input[type=radio]:checked:before{content:"x";position:relative;bottom:.1rem;left:.35rem}@media (hover:hover){input[type=checkbox]:checked:hover,input[type=radio]:checked:hover{color:var(--couleur-noir)}}input[type=checkbox]:not(:checked):user-valid,input[type=radio]:not(:checked):user-valid{background:initial}label:has(~input[type=checkbox],~input[type=radio]),input[type=checkbox]+label,input[type=radio]+label{padding-top:1px;font-size:.9rem}@media (hover:hover){input[type=checkbox]:hover,input[type=radio]:hover{background:var(--couleur-jaune)}}textarea:focus-visible,textarea:focus-within{outline:1px solid var(--couleur-noir)}@media (hover:hover){textarea:hover{color:var(--couleur-noir)}}img,picture{max-width:100%;display:block}img{object-fit:cover;background:var(--couleur-jaune)}a{--lien-contour-couleur-focus:var(--couleur-noir);text-decoration-skip-ink:auto;outline-offset:initial;text-decoration-skip:edges;outline:1px solid #0000;text-decoration:underline #0000;transition:background .2s,border-color .2s,color .2s,font-weight .2s,outline-color .2s,letter-spacing .2s,text-decoration-color .2s}a:focus-visible{outline-color:var(--lien-contour-couleur-focus)}a.lien-bouton{--lien-bouton-marges-internes-bloc:var(--espace-xs);--lien-bouton-marges-internes-ligne:var(--espace-m);--lien-bouton-arriere-plan-couleur-survol:var(--couleur-jaune);padding:var(--lien-bouton-marges-internes-bloc)var(--lien-bouton-marges-internes-ligne);border:1px solid var(--couleur-noir)}a.lien-bouton:focus-visible{background:var(--lien-bouton-arriere-plan-couleur-survol)}a.lien-bouton:active{border-color:var(--lien-bouton-arriere-plan-couleur-survol)}@media (hover:hover){a.lien-bouton:hover{background:var(--lien-bouton-arriere-plan-couleur-survol)}}a.lien-lien{text-decoration:underline}a.lien-lien:active{text-decoration-color:var(--couleur-jaune);background:var(--couleur-jaune)}@media (hover:hover){a.lien-lien:hover{text-decoration-color:var(--couleur-jaune);background:var(--couleur-jaune)}a:not([class]):hover{text-decoration-color:var(--couleur-noir)}}ul{list-style:none}ul.avec-puce-cercle{--liste-puce-cercle-lien-marges-internes-ligne-debut:2ch;--liste-puce-cercle-puce-position-horizontale:1ch;--liste-puce-cercle-puce-taille:1.25ex}ul.avec-puce-cercle a{padding-left:var(--liste-puce-cercle-lien-marges-internes-ligne-debut);background:no-repeat var(--liste-puce-cercle-puce-position-horizontale)center/var(--liste-puce-cercle-puce-taille)url(/app/themes/haiku-atelier-2024/assets/img/icons/dot.svg)}body:has(#menu-mobile:not([aria-hidden=true])){touch-action:none;overflow:hidden}#menu-mobile{--menu-mobile-hauteur:calc(100svh - var(--en-tete-hauteur));z-index:997;inset:var(--en-tete-hauteur)0 0 0;overscroll-behavior:contain;width:100vw;height:var(--menu-mobile-hauteur);transition:display .4s;transition:display .4s allow-discrete;-webkit-overflow-scrolling:none;display:flex;position:fixed;overflow:hidden}#menu-mobile[aria-hidden=true]{animation:.4s both fade-out;display:none}#menu-mobile[aria-hidden=true] .menu-modale__fond{animation:.4s both fade-out}#menu-mobile .menu-modale__fond{z-index:998;inset:var(--en-tete-hauteur)0 0 0;height:var(--menu-mobile-hauteur);opacity:0;background-color:var(--couleur-fond);animation:.4s both fade-in;position:fixed}#menu-mobile .menu-modale__conteneur{z-index:999;width:100%;height:fit-content;padding:var(--espace-xl);opacity:0;background-color:var(--couleur-gris);border-bottom:1px solid var(--couleur-noir);flex-flow:column;animation:.4s .2s both fade-in;display:flex;position:relative}#menu-mobile .menu-modale__conteneur .menu-navigation{grid-template-columns:1fr}#menu-mobile .menu-modale__conteneur .menu-navigation ul{grid-column:initial;flex-flow:column;place-items:center}#menu-mobile .menu-modale__conteneur .menu-navigation ul>span{width:fit-content}#menu-mobile .menu-modale__conteneur .menu-navigation ul>span li a{padding-top:var(--espace-m);padding-bottom:var(--espace-m)}@media (width>=1000px){#menu-mobile{display:none}}@keyframes fade-in{to{opacity:1}}@keyframes fade-out{to{opacity:0}}@keyframes slide-in{to{transform:translateY(0)}}#en-tete{--en-tete-marges-internes-ligne:var(--espace-xl);--en-tete-marges-internes-bloc:var(--espace-m);--en-tete-section-hauteur:var(--en-tete-hauteur);--en-tete-logo-longueur:80px;z-index:60;min-width:100vw;max-width:100vw;height:var(--en-tete-hauteur);padding:var(--en-tete-marges-internes-bloc)var(--en-tete-marges-internes-ligne);background:var(--couleur-gris);border-bottom:1px solid var(--couleur-noir);flex-flow:row;justify-content:space-between;place-items:center;display:flex;position:fixed;top:0}#en-tete .logo{width:var(--en-tete-logo-longueur)}#en-tete .logo picture,#en-tete .logo img{background:0 0}#en-tete .logo button{align-content:center;display:block}#en-tete .menu-navigation{text-align:center;text-transform:lowercase;flex:1;grid-template-columns:1fr auto 1fr;font-size:1.1rem;display:grid}#en-tete .menu-navigation ul{gap:var(--espace-m);flex-flow:row;grid-column:2;justify-content:space-between;display:flex}#en-tete .menu-navigation__entree{--nav-entree-marges-internes-bloc:var(--espace-xs);--nav-entree-marges-internes-ligne:3rem;--liste-puce-cercle-lien-marges-internes-ligne-debut:calc(var(--espace-m) + 1.5ch);--liste-puce-cercle-puce-position-horizontale:3.5ch}#en-tete .menu-navigation__entree a{padding:var(--nav-entree-marges-internes-bloc)var(--nav-entree-marges-internes-ligne);text-align:center;display:inline-block}#en-tete .menu-navigation__entree--courante{background:url(/app/themes/haiku-atelier-2024/assets/img/icons/cloud.svg) 50%/auto 90% no-repeat}@media (hover:hover){#en-tete .menu-navigation__entree:hover{background:url(/app/themes/haiku-atelier-2024/assets/img/icons/cloud.svg) 50%/auto 90% no-repeat}}@media (width<=1000px){#en-tete .menu-navigation#menu-navigation-en-tete{display:none}}#en-tete .compte-panier{text-align:center;flex-flow:row;place-items:center;gap:1rem;display:flex}#en-tete .compte-panier[disabled]{background:repeating-conic-gradient(var(--couleur-noir)0% 25%,transparent 0% 100%)1px .5px/2px 2px}#en-tete .compte-panier[disabled] a:hover,#en-tete .compte-panier[disabled] a:active,#en-tete .compte-panier[disabled] a:focus-within{background:initial;border:1px solid var(--couleur-noir);outline:1px solid #0000}#en-tete .compte-panier a{text-transform:lowercase;min-width:10ch;font-size:1.1rem}#en-tete .compte-panier a.lien-compte{border-color:#0000}#en-tete .compte-panier a[data-contient-articles=true]{background:var(--couleur-jaune)}#menu-categories-produits{--menu-entree-longueur-minimale:13ch;--menu-section-marges-bloc-debut:var(--en-tete-hauteur);--menu-entree-marges-internes-ligne:var(--espace-m);margin-top:var(--menu-section-marges-bloc-debut);position:relative}#menu-categories-produits[data-entrees-presentes-debut] svg:first-of-type,#menu-categories-produits[data-entrees-presentes-fin] svg:last-of-type{opacity:1}#menu-categories-produits svg{pointer-events:none;opacity:0;mix-blend-mode:exclusion;width:.8rem;height:.8rem;shape-rendering:geometricprecision;transition:opacity .2s;position:absolute;bottom:calc(17.59px - .35rem)}#menu-categories-produits svg:first-of-type{left:var(--espace-xs)}#menu-categories-produits svg:last-of-type{right:var(--espace-xs)}@media (width>600px){#menu-categories-produits svg{visibility:hidden}}#menu-categories-produits ul{grid-template-columns:repeat(auto-fit,minmax(var(--menu-entree-longueur-minimale),1fr));place-items:center;gap:1px;display:grid}#menu-categories-produits ul li{width:100%;color:var(--couleur-gris);text-align:center;text-transform:uppercase;letter-spacing:var(--espacement-inter-lettres-etendu-m);background:var(--couleur-noir);font-style:italic;font-weight:450}#menu-categories-produits ul li.categorie-courante a{color:var(--couleur-noir);background:var(--couleur-jaune);font-weight:600}@media (hover:hover){#menu-categories-produits ul li.categorie-courante a:hover{color:var(--couleur-noir)}}#menu-categories-produits ul li a{width:inherit;padding:var(--menu-entree-marges-internes-ligne)0;outline:initial;text-decoration:none;display:inline-block}#menu-categories-produits ul li a:focus-visible{color:var(--couleur-jaune);outline:initial}@media (hover:hover){#menu-categories-produits ul li a:hover{color:var(--couleur-noir);background:var(--couleur-jaune)}}@media (width<=1000px){#menu-categories-produits ul{--menu-entree-marges-internes-ligne:var(--espace-s);flex-flow:wrap;font-size:.8rem;display:flex}#menu-categories-produits ul li{flex-grow:1;width:min(140px,100%)}#menu-categories-produits ul li a{border:initial;width:100%}}@media (width<=600px){#menu-categories-produits ul{scrollbar-width:none;flex-flow:row;overflow-x:scroll}#menu-categories-produits ul li{width:initial;min-width:140px}}.fleches-defilement{--position-y-fleches:calc(100svh - var(--menu-categories-produits-hauteur));pointer-events:none;width:100%;height:calc(100svh - var(--en-tete-hauteur) - 63px);position:absolute}.fleches-defilement__bouton{cursor:initial;z-index:5;bottom:calc(var(--position-y-fleches)/2 - var(--espace-l)/2);visibility:hidden;opacity:0;mix-blend-mode:difference;width:3rem;height:3rem;shape-rendering:geometricprecision;padding:var(--espace-s);border-radius:100%;transition:opacity .2s,visibility .2s;position:absolute}.fleches-defilement__bouton:first-of-type{left:var(--espace-l)}.fleches-defilement__bouton:last-of-type{right:var(--espace-l)}.fleches-defilement[data-images-presentes-debut] .fleches-defilement__bouton:first-of-type,.fleches-defilement[data-images-presentes-fin] .fleches-defilement__bouton:last-of-type{cursor:pointer;opacity:1}@media (width<=60rem){.fleches-defilement button{visibility:visible}}.photos-produit{--colonne-gauche-position-haut:var(--menu-categories-produits-hauteur);--colonne-gauche-photo-hauteur:calc(100svh - var(--menu-categories-produits-hauteur));--colonne-droite-photo-hauteur-minimale:calc(100svh + var(--en-tete-hauteur) + var(--menu-categories-produits-hauteur));--colonne-photo-longueur-minimale:30rem;--section-marges-externes-bloc-fin:1rem;flex-flow:row;max-width:100%;display:flex;position:relative}.photos-produit .colonne{width:min(var(--colonne-photo-longueur-minimale),100%);flex-flow:column;flex-grow:1;display:flex;position:relative}.photos-produit .colonne.colonne-gauche{top:var(--colonne-gauche-position-haut);height:var(--colonne-gauche-photo-hauteur);position:sticky}.photos-produit .colonne.colonne-gauche figure,.photos-produit .colonne.colonne-gauche picture,.photos-produit .colonne.colonne-gauche img{height:100%}.photos-produit .colonne.colonne-droite img{width:100%;max-height:var(--colonne-droite-photo-hauteur-minimale)}.photos-produit .colonne.colonne-droite figure picture img:only-child{min-height:var(--colonne-droite-photo-hauteur-minimale);max-height:var(--colonne-droite-photo-hauteur-minimale)}@media (width<=60rem){.photos-produit{scroll-behavior:smooth;scrollbar-width:none;scroll-snap-type:x mandatory;width:fit-content;max-width:initial;flex-flow:row;overflow-x:scroll}.photos-produit::-webkit-scrollbar{display:none}.photos-produit .colonne{scroll-snap-type:x mandatory;width:100%;min-width:100%}.photos-produit .colonne figure{scroll-snap-align:none center}.photos-produit .colonne.colonne-gauche{position:initial;height:initial}.photos-produit .colonne.colonne-gauche img{max-height:calc(100svh - var(--en-tete-hauteur) - 63px)}.photos-produit .colonne.colonne-droite{flex-flow:row}.photos-produit .colonne.colonne-droite figure{flex-grow:1;min-width:100%}.photos-produit .colonne.colonne-droite figure img{max-height:calc(100svh - var(--en-tete-hauteur) - 63px)}}.grille-produits{--grille-produits-hauteur-minimale:var(--contenu-page-hauteur-minimale-avec-categories);--aucun-produit-hauteur:var(--contenu-page-hauteur-minimale-avec-categories);--carte-produit-longueur-minimale:448px;--carte-produit-longueur-maximale:1000px;grid-auto-rows:1fr;grid-template-columns:repeat(auto-fit,minmax(var(--carte-produit-longueur-minimale),1fr));min-height:var(--grille-produits-hauteur-minimale);gap:1px;display:grid}.grille-produits article{max-width:var(--carte-produit-longueur-maximale);box-shadow:0 0 0 1px var(--couleur-noir)}.grille-produits article figure{row-gap:var(--espace-xl);padding:var(--espace-m);flex-flow:column;display:flex}.grille-produits article figure a{position:relative}@media (hover:hover){.grille-produits article figure a:hover .produit__illustration__survol{visibility:visible;opacity:1;transition:opacity .3s,visibility .3s}}.grille-produits article figure img{position:inherit;aspect-ratio:9/16;object-fit:cover;background:0 0;width:100%;max-height:70vh}.grille-produits article figure .produit__illustration__principale{display:block}.grille-produits article figure .produit__illustration__principale:before{content:"";z-index:-1;opacity:0;filter:opacity(20%);background-image:url(/app/themes/haiku-atelier-2024/assets/img/icons/cloud-gris.svg);background-position:50%;background-repeat:no-repeat;background-size:50%;width:100%;height:100%;animation:1.5s linear .5s infinite alternate both test;position:absolute;top:0;left:0}.grille-produits article figure .produit__illustration__principale img{opacity:0;transition:opacity 1s}.grille-produits article figure .produit__illustration__survol{visibility:hidden;opacity:0;width:100%;height:100%;transition:opacity .15s,visibility .15s;display:block;position:absolute;top:0;left:0}.grille-produits article figure .produit__illustration__survol img{background:var(--couleur-fond)}.grille-produits article figure figcaption{margin-bottom:var(--espace-xl);flex-flow:row;justify-content:space-between;display:flex}.grille-produits article figure figcaption h3{letter-spacing:var(--espacement-inter-lettres-etendu-m);font-style:italic}.grille-produits article figure figcaption p{letter-spacing:var(--espacement-inter-lettres-rapproche-s);font-weight:500}.grille-produits__aucun-produit{min-height:var(--aucun-produit-hauteur);text-align:center;grid-column:span 3;align-content:center}.grille-produits__aucun-produit p+p{margin-top:var(--espace-l);font-size:1.25rem}@media (width<=700px){.grille-produits{grid-template-columns:100%}.grille-produits article figure img{max-height:50svh}}@keyframes test{to{opacity:1}}.informations-produit{--boite-position-basse:var(--espace-m);--boite-longueur:70ch;--section-marges-internes:var(--espace-m);--onglet-marges-internes:var(--espace-xl);bottom:var(--boite-position-basse);width:0;height:0;position:sticky;overflow:visible}.informations-produit__conteneur{transform:translate(calc(50vw - var(--boite-longueur)/2),-100%);width:var(--boite-longueur);max-width:var(--boite-longueur);display:grid;position:relative}.informations-produit__conteneur>section{height:100%;padding:var(--section-marges-internes);background:var(--couleur-blanc-fond);flex-flow:row;display:flex}.informations-produit__conteneur>section+section{border-top:1px solid var(--couleur-noir)}.informations-produit .onglets-details-produit{padding:initial;grid-template-rows:auto min-content;grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.informations-produit .onglets-details-produit>section{width:100%;padding:var(--onglet-marges-internes);visibility:visible;opacity:1;background:inherit;border-color:var(--couleur-noir);border-style:solid;border-width:1px 1px 0;grid-column:span 3;transition:opacity .2s,visibility .2s;position:absolute;top:0;left:0;overflow-y:auto;transform:translateY(-100%)}.informations-produit .onglets-details-produit>section[hidden]{visibility:hidden;opacity:0;display:initial!important}.informations-produit .onglets-details-produit>section ul{list-style:inside}.informations-produit .onglets-details-produit>section a{text-decoration-color:var(--couleur-noir)}.informations-produit .onglets-details-produit>section>*+*{margin-top:1rem}.informations-produit .onglets-details-produit>ul{text-align:center;text-transform:lowercase;grid-area:2/span 3;grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.informations-produit .onglets-details-produit>ul li{width:100%}.informations-produit .onglets-details-produit>ul li:first-of-type a{border-right-color:#0000}.informations-produit .onglets-details-produit>ul li:last-of-type a{border-left-color:#0000}.informations-produit .onglets-details-produit>ul li a{width:100%;height:100%;padding:var(--espace-xs)0;text-decoration:initial;border-top:1px solid var(--couleur-noir);border-right:1px solid var(--couleur-noir);border-left:1px solid var(--couleur-noir);display:inline-block}.informations-produit .onglets-details-produit>ul li a[aria-selected=true]{border-top-color:#0000;font-weight:600}.informations-produit .onglets-details-produit>ul li a:focus-visible{outline:2px solid var(--couleur-noir);outline-offset:-2px}@media (hover:hover){.informations-produit .onglets-details-produit>ul li a:hover{font-weight:600}}.informations-produit .onglets-details-produit:has(section:not([hidden]))>ul li a:not([aria-selected=true]){border-top-color:var(--couleur-noir)}.informations-produit .selecteur-produit{column-gap:var(--espace-xl);font-size:1.25rem;font-style:italic;font-weight:500;line-height:var(--hauteur-ligne-compacte);border:1px solid var(--couleur-noir);flex-flow:row;justify-content:space-between;place-items:center;display:flex}.informations-produit .selecteur-produit__selection-variation{text-transform:lowercase;place-items:center;font-weight:400;display:flex}.informations-produit .selecteur-produit__selection-variation label{height:100%;margin-right:var(--espace-s);font-size:1rem}.informations-produit .selecteur-produit__selection-variation select{padding:var(--espace-xs)var(--espace-l);text-align:center;letter-spacing:initial;appearance:none;background:var(--couleur-fond);border:1px solid var(--couleur-noir);position:relative}@supports selector(:user-valid){.informations-produit .selecteur-produit__selection-variation select:user-valid{background:var(--couleur-jaune-fond)}}.informations-produit .selecteur-produit__selection-variation option{background:var(--couleur-fond)}.informations-produit .selecteur-produit__selection-variation__selecteurs{position:relative}.informations-produit .selecteur-produit__selection-variation__selecteurs:after{pointer-events:none;content:" ";text-align:center;visibility:visible;opacity:1;background:url(/app/themes/haiku-atelier-2024/assets/img/icons/arrow.svg) no-repeat;width:.9rem;height:.9rem;transition:opacity .2s,visibility .2s;display:inline-block;position:absolute;top:10px;right:.4rem}@supports not selector(:user-valid){.informations-produit .selecteur-produit__selection-variation__selecteurs:has(select:valid):after{visibility:hidden;opacity:0}}@supports selector(:user-valid){.informations-produit .selecteur-produit__selection-variation__selecteurs:has(select:user-valid):after{visibility:hidden;opacity:0}}.informations-produit .selecteur-produit__prix{font-style:initial}.informations-produit .actions-produit{padding:initial;background:var(--couleur-jaune);border:1px solid var(--couleur-noir);border-top:initial;transition:background .2s;overflow:hidden}.informations-produit .actions-produit:has(button[disabled]){background:var(--couleur-fond)}.informations-produit .actions-produit button{height:initial;padding:var(--section-marges-internes);text-transform:uppercase;font-style:italic;transition:background .2s,font-weight .2s}@media (hover:hover){.informations-produit .actions-produit button:not([disabled]):hover{font-weight:600}}@media (width<=800px){.informations-produit{width:100%}.informations-produit__conteneur{width:inherit;max-width:initial;border-right:initial;border-left:initial;transform:translateY(-100%)}}@media (width<=700px){.informations-produit{--section-marges-internes:var(--espace-l);--onglet-marges-internes:var(--espace-l);bottom:var(--espace-xl);width:min(var(--boite-longueur),100%);height:initial;margin:auto;position:relative}.informations-produit__conteneur{transform:initial}}.produits-similaires{--carte-produit-longueur-minimale:448px;--carte-produit-longueur-maximale:1000px;margin-top:var(--espace-m);grid-template-rows:1fr auto;grid-template-columns:repeat(3,1fr);grid-template-areas:"en-tete en-tete en-tete""produits produits produits";place-items:center;display:grid;position:relative}.produits-similaires header{z-index:10;top:calc(1lh + var(--espace-l) + var(--espace-m));width:100%;padding:var(--espace-l)0 var(--espace-m);color:var(--couleur-blanc);text-align:center;background:var(--couleur-noir);grid-area:en-tete;position:sticky}.produits-similaires header h2{font-style:italic;line-height:var(--hauteur-ligne-rapprochee);text-transform:uppercase;letter-spacing:var(--espacement-inter-lettres-etendu-m)}.produits-similaires .grille-produits-similaires{grid-area:produits;grid-auto-rows:1fr;grid-template-columns:repeat(auto-fit,minmax(var(--carte-produit-longueur-minimale),1fr));gap:1px;width:100%;display:grid}.produits-similaires .grille-produits-similaires article{max-width:var(--carte-produit-longueur-maximale);box-shadow:0 0 0 1px var(--couleur-noir)}.produits-similaires .grille-produits-similaires article figure{row-gap:var(--espace-xl);padding:var(--espace-m);flex-flow:column;display:flex}.produits-similaires .grille-produits-similaires article figure a{position:relative}@media (hover:hover){.produits-similaires .grille-produits-similaires article figure a:hover .produit__illustration__survol{visibility:visible;opacity:1;transition:opacity .3s,visibility .3s}}.produits-similaires .grille-produits-similaires article figure .produit__illustration__principale{display:block}.produits-similaires .grille-produits-similaires article figure .produit__illustration__survol{visibility:hidden;opacity:0;width:100%;height:100%;transition:opacity .15s,visibility .15s;display:block;position:absolute;top:0;left:0}.produits-similaires .grille-produits-similaires article figure img{aspect-ratio:9/16;object-fit:cover;width:100%;max-height:70svh}.produits-similaires .grille-produits-similaires article figure figcaption{margin-bottom:var(--espace-xl);flex-flow:row;justify-content:space-between;display:flex}.produits-similaires .grille-produits-similaires article figure figcaption h3{letter-spacing:var(--espacement-inter-lettres-etendu-m);font-style:italic}.produits-similaires .grille-produits-similaires article figure figcaption p{letter-spacing:var(--espacement-inter-lettres-rapproche-s);font-weight:500}@media (width<=700px){.produits-similaires .grille-produits-similaires{grid-template-columns:100%}.produits-similaires .grille-produits-similaires article figure img{max-height:50svh}}#pied-de-page{--pied-de-page-marges-internes-bloc:var(--espace-m);--pied-de-page-marges-internes-ligne:var(--espace-xl);max-width:100vw;height:var(--pied-de-page-hauteur);padding:var(--pied-de-page-marges-internes-bloc)var(--pied-de-page-marges-internes-ligne);background:var(--couleur-jaune);border-top:1px solid var(--couleur-noir);grid-template-columns:1fr 1fr;place-items:center;display:grid}#pied-de-page .zone-menu-navigation-secondaire{text-transform:lowercase;justify-self:start;width:100%;height:100%}#pied-de-page .zone-liens-reseaux-sociaux{text-align:right;justify-items:end;width:100%;height:100%} \ No newline at end of file +@font-face{font-family:Lato;font-weight:100 900;font-style:normal;font-display:swap;src:url(/app/themes/haiku-atelier-2024/assets/fonts/lato/lato-variable-webfont.woff2)format("woff2")tech(variations),url(/app/themes/haiku-atelier-2024/assets/fonts/lato/lato-variable-webfont.woff2)format("woff2-variations"),url(/app/themes/haiku-atelier-2024/assets/fonts/lato/lato-variable-webfont.woff2)format("woff2"),url(/app/themes/haiku-atelier-2024/assets/fonts/lato/lato-variable-webfont.ttf)format("truetype");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Lato;font-weight:100 900;font-style:italic;font-display:swap;src:url(/app/themes/haiku-atelier-2024/assets/fonts/lato/lato-variable-italic-webfont.woff2)format("woff2")tech(variations),url(/app/themes/haiku-atelier-2024/assets/fonts/lato/lato-variable-italic-webfont.woff2)format("woff2-variations"),url(/app/themes/haiku-atelier-2024/assets/fonts/lato/lato-variable-italic-webfont.woff2)format("woff2"),url(/app/themes/haiku-atelier-2024/assets/fonts/lato/lato-variable-italic-webfont.ttf)format("truetype");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Myriad;font-weight:300 900;font-style:normal;font-display:swap;font-stretch:70% 110%;src:url(/app/themes/haiku-atelier-2024/assets/fonts/myriad/myriad-variable.woff2)format("woff2"),url(/app/themes/haiku-atelier-2024/assets/fonts/myriad/myriad-variable.ttf)format("truetype")}@font-face{font-family:Myriad;font-weight:300 900;font-style:italic;font-display:swap;font-stretch:70% 110%;src:url(/app/themes/haiku-atelier-2024/assets/fonts/myriad/myriad-variable-italic.woff2)format("woff2"),url(/app/themes/haiku-atelier-2024/assets/fonts/myriad/myriad-variable-italic.ttf)format("truetype")}:root{--couleur-blanc:#fff;--couleur-blanc-fond:#ffffffe6;--couleur-gris:#eceaeb;--couleur-gris-fonce:gray;--couleur-gris-fonce-fond:#808080cc;--couleur-bordeaux:#490918;--couleur-bordeaux-fond:#490918cc;--couleur-jaune:#ebffb8;--couleur-jaune-fond:#ebffb8cc;--couleur-noir:#202020;--couleur-fond:#eceaebcc;--police-lato:"Lato",sans-serif;--police-myriad:"Myriad",sans-serif;--hauteur-ligne-classique:1.5;--hauteur-ligne-moitie:1.2;--hauteur-ligne-compacte:1.1;--hauteur-ligne-rapprochee:1;--espacement-inter-lettres-rapproche-s:-.5px;--espacement-inter-lettres-etendu-s:.5px;--espacement-inter-lettres-etendu-m:1px;--espacement-inter-lettres-etendu-l:1.5px;--espacement-inter-lettres-etendu-xl:2px;--en-tete-hauteur:61px;--menu-categories-produits-hauteur:54.39px;--pied-de-page-hauteur:calc(var(--espace-m)*2 + 3lh);--contenu-page-hauteur-minimale-sans-categories:calc(100svh - var(--en-tete-hauteur) - var(--pied-de-page-hauteur));--contenu-page-hauteur-minimale-avec-categories:calc(100svh - var(--en-tete-hauteur) - var(--pied-de-page-hauteur) - var(--menu-categories-produits-hauteur));--espace-xs:.25rem;--espace-s:.5rem;--espace-m:1rem;--espace-l:1.25rem;--espace-xl:2rem}html{box-sizing:border-box}*,:before,:after{box-sizing:inherit;font:inherit;color:inherit;margin:0;padding:0}body{accent-color:var(--couleur-jaune);background:var(--couleur-gris)}button,input,select,textarea{font:inherit}::selection{background:var(--couleur-jaune)}[hidden]{display:none!important}[disabled]{cursor:not-allowed}@media (prefers-reduced-motion){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation-duration:0s!important}}html{font:1rem/var(--hauteur-ligne-classique)Lato;font-optical-sizing:auto;font-kerning:normal;font-variant-ligatures:common-ligatures no-discretionary-ligatures no-historical-ligatures contextual;-webkit-font-smoothing:antialiased;color:var(--couleur-noir);text-decoration-skip-ink:auto;text-size-adjust:none;text-rendering:geometricprecision;letter-spacing:var(--espacement-inter-lettres-etendu-s)}strong{font-weight:600}em{font-style:italic}button{all:initial;cursor:pointer;box-sizing:border-box;text-align:center;letter-spacing:inherit;outline:2px solid #0000;font-family:Lato;transition:background .2s,color .2s}button:not[disabled]:focus-visible{z-index:5;outline:2px solid var(--couleur-noir)}button:not[disabled]:active{color:var(--couleur-blanc)!important;background:var(--couleur-noir)!important}@media (hover:hover){button:not[disabled]:hover{color:var(--couleur-noir);background:var(--couleur-jaune)}}button:disabled,button[disabled]{background:repeating-conic-gradient(var(--couleur-noir)0% 25%,transparent 0% 100%)1px .5px/2px 2px;outline-color:#0000}button.bouton-case-pleine{width:100%;height:100%}button.bouton-case-pleine.bouton-blanc-sur-noir{text-transform:uppercase;letter-spacing:var(--espacement-inter-lettres-etendu-m);font-style:italic}button.bouton-case-pleine.bouton-blanc-sur-noir:focus-visible{color:var(--couleur-noir);background:var(--couleur-jaune)}button.bouton-blanc-sur-noir{color:var(--couleur-blanc);background:var(--couleur-noir)}@media (hover:hover){button.bouton-fleche{background:initial}}input,select,textarea{padding:var(--espace-xs);background:var(--couleur-gris);border:1px solid var(--couleur-noir);outline:2px solid #0000;transition:background .2s,outline .2s}input:focus-visible,input:focus-within,input:active,select:focus-visible,select:focus-within,select:active,textarea:focus-visible,textarea:focus-within,textarea:active{z-index:10;outline:2px solid var(--couleur-noir)}input:disabled,input[disabled],select:disabled,select[disabled],textarea:disabled,textarea[disabled]{background:repeating-conic-gradient(var(--couleur-noir)0% 25%,transparent 0% 100%)1px .5px/2px 2px;outline-color:#0000}input:is([type=email],[type=text],[type=tel])::placeholder,textarea::placeholder{text-transform:lowercase;letter-spacing:var(--espacement-inter-lettres-etendu-s)}input:is([type=email],[type=text],[type=tel])::selection,textarea::selection{color:var(--couleur-blanc);background:var(--couleur-noir)}input:is([type=email],[type=text],[type=tel]):user-valid,textarea:user-valid{background:var(--couleur-jaune)}input:is([type=email],[type=text],[type=tel]):user-invalid,textarea:user-invalid{background:var(--couleur-gris)}input,label,select,textarea{cursor:pointer}input[type=checkbox],input[type=radio]{width:var(--espace-l);height:var(--espace-l);padding:initial;appearance:none;border:1px solid var(--couleur-noir);transition:background .2s}input[type=checkbox]:checked,input[type=radio]:checked{background:var(--couleur-jaune)}input[type=checkbox]:checked:before,input[type=radio]:checked:before{content:"x";position:relative;bottom:.1rem;left:.35rem}@media (hover:hover){input[type=checkbox]:checked:hover,input[type=radio]:checked:hover{color:var(--couleur-noir)}}input[type=checkbox]:not(:checked):user-valid,input[type=radio]:not(:checked):user-valid{background:initial}label:has(~input[type=checkbox],~input[type=radio]),input[type=checkbox]+label,input[type=radio]+label{padding-top:1px;font-size:.9rem}@media (hover:hover){input[type=checkbox]:hover,input[type=radio]:hover{background:var(--couleur-jaune)}}textarea:focus-visible,textarea:focus-within{outline:1px solid var(--couleur-noir)}@media (hover:hover){textarea:hover{color:var(--couleur-noir)}}img,picture{max-width:100%;display:block}img{object-fit:cover;background:var(--couleur-jaune)}a{--lien-contour-couleur-focus:var(--couleur-noir);text-decoration-skip-ink:auto;outline-offset:initial;text-decoration-skip:edges;outline:1px solid #0000;text-decoration:underline #0000;transition:background .2s,border-color .2s,color .2s,font-weight .2s,outline-color .2s,letter-spacing .2s,text-decoration-color .2s}a:focus-visible{outline-color:var(--lien-contour-couleur-focus)}a.lien-bouton{--lien-bouton-marges-internes-bloc:var(--espace-xs);--lien-bouton-marges-internes-ligne:var(--espace-m);--lien-bouton-arriere-plan-couleur-survol:var(--couleur-jaune);padding:var(--lien-bouton-marges-internes-bloc)var(--lien-bouton-marges-internes-ligne);border:1px solid var(--couleur-noir)}a.lien-bouton:focus-visible{background:var(--lien-bouton-arriere-plan-couleur-survol)}a.lien-bouton:active{border-color:var(--lien-bouton-arriere-plan-couleur-survol)}@media (hover:hover){a.lien-bouton:hover{background:var(--lien-bouton-arriere-plan-couleur-survol)}}a.lien-lien{text-decoration:underline}a.lien-lien:active{text-decoration-color:var(--couleur-jaune);background:var(--couleur-jaune)}@media (hover:hover){a.lien-lien:hover{text-decoration-color:var(--couleur-jaune);background:var(--couleur-jaune)}a:not([class]):hover{text-decoration-color:var(--couleur-noir)}}ul{list-style:none}ul.avec-puce-cercle{--liste-puce-cercle-lien-marges-internes-ligne-debut:2ch;--liste-puce-cercle-puce-position-horizontale:1ch;--liste-puce-cercle-puce-taille:1.25ex}ul.avec-puce-cercle a{padding-left:var(--liste-puce-cercle-lien-marges-internes-ligne-debut);background:no-repeat var(--liste-puce-cercle-puce-position-horizontale)center/var(--liste-puce-cercle-puce-taille)url(/app/themes/haiku-atelier-2024/assets/img/icons/dot.svg)}body:has(#menu-mobile:not([aria-hidden=true])){touch-action:none;overflow:hidden}#menu-mobile{--menu-mobile-hauteur:calc(100svh - var(--en-tete-hauteur));z-index:997;inset:var(--en-tete-hauteur)0 0 0;overscroll-behavior:contain;width:100vw;height:var(--menu-mobile-hauteur);transition:display .4s;transition:display .4s allow-discrete;-webkit-overflow-scrolling:none;display:flex;position:fixed;overflow:hidden}#menu-mobile[aria-hidden=true]{animation:.4s both fade-out;display:none}#menu-mobile[aria-hidden=true] .menu-modale__fond{animation:.4s both fade-out}#menu-mobile .menu-modale__fond{z-index:998;inset:var(--en-tete-hauteur)0 0 0;height:var(--menu-mobile-hauteur);opacity:0;background-color:var(--couleur-fond);animation:.4s both fade-in;position:fixed}#menu-mobile .menu-modale__conteneur{z-index:999;width:100%;height:fit-content;padding:var(--espace-xl);opacity:0;background-color:var(--couleur-gris);border-bottom:1px solid var(--couleur-noir);flex-flow:column;animation:.4s .2s both fade-in;display:flex;position:relative}#menu-mobile .menu-modale__conteneur .menu-navigation{grid-template-columns:1fr}#menu-mobile .menu-modale__conteneur .menu-navigation ul{grid-column:initial;flex-flow:column;place-items:center}#menu-mobile .menu-modale__conteneur .menu-navigation ul>span{width:fit-content}#menu-mobile .menu-modale__conteneur .menu-navigation ul>span li a{padding-top:var(--espace-m);padding-bottom:var(--espace-m)}@media (width>=1000px){#menu-mobile{display:none}}@keyframes fade-in{to{opacity:1}}@keyframes fade-out{to{opacity:0}}@keyframes slide-in{to{transform:translateY(0)}}#en-tete{--en-tete-marges-internes-ligne:var(--espace-xl);--en-tete-marges-internes-bloc:var(--espace-m);--en-tete-section-hauteur:var(--en-tete-hauteur);--en-tete-logo-longueur:80px;z-index:60;min-width:100vw;max-width:100vw;height:var(--en-tete-hauteur);padding:var(--en-tete-marges-internes-bloc)var(--en-tete-marges-internes-ligne);background:var(--couleur-gris);border-bottom:1px solid var(--couleur-noir);flex-flow:row;justify-content:space-between;place-items:center;display:flex;position:fixed;top:0}#en-tete .logo{width:var(--en-tete-logo-longueur)}#en-tete .logo picture,#en-tete .logo img{background:0 0}#en-tete .logo button{align-content:center;display:block}#en-tete .menu-navigation{text-align:center;text-transform:lowercase;flex:1;grid-template-columns:1fr auto 1fr;font-size:1.1rem;display:grid}#en-tete .menu-navigation ul{gap:var(--espace-m);flex-flow:row;grid-column:2;justify-content:space-between;display:flex}#en-tete .menu-navigation__entree{--nav-entree-marges-internes-bloc:var(--espace-xs);--nav-entree-marges-internes-ligne:3rem;--liste-puce-cercle-lien-marges-internes-ligne-debut:calc(var(--espace-m) + 1.5ch);--liste-puce-cercle-puce-position-horizontale:3.5ch}#en-tete .menu-navigation__entree a{padding:var(--nav-entree-marges-internes-bloc)var(--nav-entree-marges-internes-ligne);text-align:center;display:inline-block}#en-tete .menu-navigation__entree--courante{background:url(/app/themes/haiku-atelier-2024/assets/img/icons/cloud.svg) 50%/auto 90% no-repeat}@media (hover:hover){#en-tete .menu-navigation__entree:hover{background:url(/app/themes/haiku-atelier-2024/assets/img/icons/cloud.svg) 50%/auto 90% no-repeat}}@media (width<=1000px){#en-tete .menu-navigation#menu-navigation-en-tete{display:none}}#en-tete .compte-panier{text-align:center;flex-flow:row;place-items:center;gap:1rem;display:flex}#en-tete .compte-panier[disabled]{background:repeating-conic-gradient(var(--couleur-noir)0% 25%,transparent 0% 100%)1px .5px/2px 2px}#en-tete .compte-panier[disabled] a:hover,#en-tete .compte-panier[disabled] a:active,#en-tete .compte-panier[disabled] a:focus-within{background:initial;border:1px solid var(--couleur-noir);outline:1px solid #0000}#en-tete .compte-panier a{text-transform:lowercase;min-width:10ch;font-size:1.1rem}#en-tete .compte-panier a.lien-compte{border-color:#0000}#en-tete .compte-panier a[data-contient-articles=true]{background:var(--couleur-jaune)}#menu-categories-produits{--menu-entree-longueur-minimale:13ch;--menu-section-marges-bloc-debut:var(--en-tete-hauteur);--menu-entree-marges-internes-ligne:var(--espace-m);margin-top:var(--menu-section-marges-bloc-debut);position:relative}#menu-categories-produits[data-entrees-presentes-debut] svg:first-of-type,#menu-categories-produits[data-entrees-presentes-fin] svg:last-of-type{opacity:1}#menu-categories-produits svg{pointer-events:none;opacity:0;mix-blend-mode:exclusion;width:.8rem;height:.8rem;shape-rendering:geometricprecision;transition:opacity .2s;position:absolute;bottom:calc(17.59px - .35rem)}#menu-categories-produits svg:first-of-type{left:var(--espace-xs)}#menu-categories-produits svg:last-of-type{right:var(--espace-xs)}@media (width>600px){#menu-categories-produits svg{visibility:hidden}}#menu-categories-produits ul{grid-template-columns:repeat(auto-fit,minmax(var(--menu-entree-longueur-minimale),1fr));place-items:center;gap:1px;display:grid}#menu-categories-produits ul li{width:100%;color:var(--couleur-gris);text-align:center;text-transform:uppercase;letter-spacing:var(--espacement-inter-lettres-etendu-m);background:var(--couleur-noir);font-style:italic;font-weight:450}#menu-categories-produits ul li.categorie-courante a{color:var(--couleur-noir);background:var(--couleur-jaune);font-weight:600}@media (hover:hover){#menu-categories-produits ul li.categorie-courante a:hover{color:var(--couleur-noir)}}#menu-categories-produits ul li a{width:inherit;padding:var(--menu-entree-marges-internes-ligne)0;outline:initial;text-decoration:none;display:inline-block}#menu-categories-produits ul li a:focus-visible{color:var(--couleur-jaune);outline:initial}@media (hover:hover){#menu-categories-produits ul li a:hover{color:var(--couleur-noir);background:var(--couleur-jaune)}}@media (width<=1000px){#menu-categories-produits ul{--menu-entree-marges-internes-ligne:var(--espace-s);flex-flow:wrap;font-size:.8rem;display:flex}#menu-categories-produits ul li{flex-grow:1;width:min(140px,100%)}#menu-categories-produits ul li a{border:initial;width:100%}}@media (width<=600px){#menu-categories-produits ul{scrollbar-width:none;flex-flow:row;overflow-x:scroll}#menu-categories-produits ul li{width:initial;min-width:140px}}.fleches-defilement{--position-y-fleches:calc(100svh - var(--menu-categories-produits-hauteur));pointer-events:none;width:100%;height:calc(100svh - var(--en-tete-hauteur) - 63px);position:absolute}.fleches-defilement__bouton{cursor:initial;z-index:5;bottom:calc(var(--position-y-fleches)/2 - var(--espace-l)/2);width:3rem;height:3rem;padding:var(--espace-s);visibility:hidden;opacity:0;mix-blend-mode:difference;shape-rendering:geometricprecision;border-radius:100%;transition:opacity .2s,visibility .2s;position:absolute}.fleches-defilement__bouton:first-of-type{left:var(--espace-l)}.fleches-defilement__bouton:last-of-type{right:var(--espace-l)}.fleches-defilement[data-images-presentes-debut] .fleches-defilement__bouton:first-of-type,.fleches-defilement[data-images-presentes-fin] .fleches-defilement__bouton:last-of-type{cursor:pointer;opacity:1}@media (width<=60rem){.fleches-defilement button{visibility:visible}}.photos-produit{--colonne-gauche-position-haut:var(--menu-categories-produits-hauteur);--colonne-gauche-photo-hauteur:calc(100svh - var(--menu-categories-produits-hauteur));--colonne-droite-photo-hauteur-minimale:calc(100svh + var(--en-tete-hauteur) + var(--menu-categories-produits-hauteur));--colonne-photo-longueur-minimale:30rem;--section-marges-externes-bloc-fin:1rem;flex-flow:row;max-width:100%;display:flex;position:relative}.photos-produit .colonne{width:min(var(--colonne-photo-longueur-minimale),100%);flex-flow:column;flex-grow:1;display:flex;position:relative}.photos-produit .colonne.colonne-gauche{top:var(--colonne-gauche-position-haut);height:var(--colonne-gauche-photo-hauteur);position:sticky}.photos-produit .colonne.colonne-gauche figure,.photos-produit .colonne.colonne-gauche picture,.photos-produit .colonne.colonne-gauche img{height:100%}.photos-produit .colonne.colonne-droite img{width:100%;max-height:var(--colonne-droite-photo-hauteur-minimale)}.photos-produit .colonne.colonne-droite figure picture img:only-child{min-height:var(--colonne-droite-photo-hauteur-minimale);max-height:var(--colonne-droite-photo-hauteur-minimale)}@media (width<=60rem){.photos-produit{scroll-behavior:smooth;scrollbar-width:none;scroll-snap-type:x mandatory;width:fit-content;max-width:initial;flex-flow:row;overflow-x:scroll}.photos-produit::-webkit-scrollbar{display:none}.photos-produit .colonne{scroll-snap-type:x mandatory;width:100%;min-width:100%}.photos-produit .colonne figure{scroll-snap-align:none center}.photos-produit .colonne.colonne-gauche{position:initial;height:initial}.photos-produit .colonne.colonne-gauche img{max-height:calc(100svh - var(--en-tete-hauteur) - 63px)}.photos-produit .colonne.colonne-droite{flex-flow:row}.photos-produit .colonne.colonne-droite figure{flex-grow:1;min-width:100%}.photos-produit .colonne.colonne-droite figure img{max-height:calc(100svh - var(--en-tete-hauteur) - 63px)}}.grille-produits{--grille-produits-hauteur-minimale:var(--contenu-page-hauteur-minimale-avec-categories);--aucun-produit-hauteur:var(--contenu-page-hauteur-minimale-avec-categories);--carte-produit-longueur-minimale:448px;--carte-produit-longueur-maximale:1000px;grid-auto-rows:1fr;grid-template-columns:repeat(auto-fit,minmax(var(--carte-produit-longueur-minimale),1fr));min-height:var(--grille-produits-hauteur-minimale);gap:1px;display:grid}.grille-produits article{max-width:var(--carte-produit-longueur-maximale);box-shadow:0 0 0 1px var(--couleur-noir)}.grille-produits article figure{row-gap:var(--espace-xl);padding:var(--espace-m);flex-flow:column;display:flex}.grille-produits article figure a{position:relative}@media (hover:hover){.grille-produits article figure a:hover .produit__illustration__survol{visibility:visible;opacity:1;transition:opacity .3s,visibility .3s}}.grille-produits article figure img{position:inherit;aspect-ratio:9/16;object-fit:cover;background:0 0;width:100%;max-height:70vh}.grille-produits article figure .produit__illustration__principale{display:block}.grille-produits article figure .produit__illustration__principale:before{content:"";z-index:-1;opacity:0;filter:opacity(20%);background-image:url(/app/themes/haiku-atelier-2024/assets/img/icons/cloud-gris.svg);background-position:50%;background-repeat:no-repeat;background-size:50%;width:100%;height:100%;animation:1.5s linear .5s infinite alternate both test;position:absolute;top:0;left:0}.grille-produits article figure .produit__illustration__principale img{opacity:0;transition:opacity 1s}.grille-produits article figure .produit__illustration__survol{visibility:hidden;opacity:0;width:100%;height:100%;transition:opacity .15s,visibility .15s;display:block;position:absolute;top:0;left:0}.grille-produits article figure .produit__illustration__survol img{background:var(--couleur-fond)}.grille-produits article figure figcaption{margin-bottom:var(--espace-xl);flex-flow:row;justify-content:space-between;display:flex}.grille-produits article figure figcaption h3{letter-spacing:var(--espacement-inter-lettres-etendu-m);font-style:italic}.grille-produits article figure figcaption p{letter-spacing:var(--espacement-inter-lettres-rapproche-s);font-weight:500}.grille-produits__aucun-produit{min-height:var(--aucun-produit-hauteur);text-align:center;grid-column:span 3;align-content:center}.grille-produits__aucun-produit p+p{margin-top:var(--espace-l);font-size:1.25rem}@media (width<=700px){.grille-produits{grid-template-columns:100%}.grille-produits article figure img{max-height:50svh}}@keyframes test{to{opacity:1}}.informations-produit{--boite-position-basse:var(--espace-m);--boite-longueur:70ch;--section-marges-internes:var(--espace-m);--onglet-marges-internes:var(--espace-xl);bottom:var(--boite-position-basse);width:0;height:0;position:sticky;overflow:visible}.informations-produit__conteneur{transform:translate(calc(50vw - var(--boite-longueur)/2),-100%);width:var(--boite-longueur);max-width:var(--boite-longueur);display:grid;position:relative}.informations-produit__conteneur>section{height:100%;padding:var(--section-marges-internes);background:var(--couleur-blanc-fond);flex-flow:row;display:flex}.informations-produit__conteneur>section+section{border-top:1px solid var(--couleur-noir)}.informations-produit .onglets-details-produit{padding:initial;grid-template-rows:auto min-content;grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.informations-produit .onglets-details-produit>section{width:100%;padding:var(--onglet-marges-internes);visibility:visible;opacity:1;background:inherit;border-color:var(--couleur-noir);border-style:solid;border-width:1px 1px 0;grid-column:span 3;transition:opacity .2s,visibility .2s;position:absolute;top:0;left:0;overflow-y:auto;transform:translateY(-100%)}.informations-produit .onglets-details-produit>section[hidden]{visibility:hidden;opacity:0;display:initial!important}.informations-produit .onglets-details-produit>section ul{list-style:inside}.informations-produit .onglets-details-produit>section a{text-decoration-color:var(--couleur-noir)}.informations-produit .onglets-details-produit>section>*+*{margin-top:1rem}.informations-produit .onglets-details-produit>ul{text-align:center;text-transform:lowercase;grid-area:2/span 3;grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.informations-produit .onglets-details-produit>ul li{width:100%}.informations-produit .onglets-details-produit>ul li:first-of-type a{border-right-color:#0000}.informations-produit .onglets-details-produit>ul li:last-of-type a{border-left-color:#0000}.informations-produit .onglets-details-produit>ul li a{width:100%;height:100%;padding:var(--espace-xs)0;text-decoration:initial;border-top:1px solid var(--couleur-noir);border-right:1px solid var(--couleur-noir);border-left:1px solid var(--couleur-noir);display:inline-block}.informations-produit .onglets-details-produit>ul li a[aria-selected=true]{border-top-color:#0000;font-weight:600}.informations-produit .onglets-details-produit>ul li a:focus-visible{outline:2px solid var(--couleur-noir);outline-offset:-2px}@media (hover:hover){.informations-produit .onglets-details-produit>ul li a:hover{font-weight:600}}.informations-produit .onglets-details-produit:has(section:not([hidden]))>ul li a:not([aria-selected=true]){border-top-color:var(--couleur-noir)}.informations-produit .selecteur-produit{column-gap:var(--espace-xl);font-size:1.25rem;font-style:italic;font-weight:500;line-height:var(--hauteur-ligne-compacte);border:1px solid var(--couleur-noir);flex-flow:row;justify-content:space-between;place-items:center;display:flex}.informations-produit .selecteur-produit__selection-variation{text-transform:lowercase;place-items:center;font-weight:400;display:flex}.informations-produit .selecteur-produit__selection-variation label{height:100%;margin-right:var(--espace-s);font-size:1rem}.informations-produit .selecteur-produit__selection-variation select{padding:var(--espace-xs)var(--espace-l);text-align:center;letter-spacing:initial;appearance:none;background:var(--couleur-fond);border:1px solid var(--couleur-noir);position:relative}@supports selector(:user-valid){.informations-produit .selecteur-produit__selection-variation select:user-valid{background:var(--couleur-jaune-fond)}}.informations-produit .selecteur-produit__selection-variation option{background:var(--couleur-fond)}.informations-produit .selecteur-produit__selection-variation__selecteurs{position:relative}.informations-produit .selecteur-produit__selection-variation__selecteurs:after{pointer-events:none;content:" ";text-align:center;visibility:visible;opacity:1;background:url(/app/themes/haiku-atelier-2024/assets/img/icons/arrow.svg) no-repeat;width:.9rem;height:.9rem;transition:opacity .2s,visibility .2s;display:inline-block;position:absolute;top:10px;right:.4rem}@supports not selector(:user-valid){.informations-produit .selecteur-produit__selection-variation__selecteurs:has(select:valid):after{visibility:hidden;opacity:0}}@supports selector(:user-valid){.informations-produit .selecteur-produit__selection-variation__selecteurs:has(select:user-valid):after{visibility:hidden;opacity:0}}.informations-produit .selecteur-produit__prix{font-style:initial}.informations-produit .actions-produit{padding:initial;background:var(--couleur-jaune);border:1px solid var(--couleur-noir);border-top:initial;transition:background .2s;overflow:hidden}.informations-produit .actions-produit:has(button[disabled]){background:var(--couleur-fond)}.informations-produit .actions-produit button{height:initial;padding:var(--section-marges-internes);text-transform:uppercase;font-style:italic;transition:background .2s,font-weight .2s}@media (hover:hover){.informations-produit .actions-produit button:not([disabled]):hover{font-weight:600}}@media (width<=800px){.informations-produit{width:100%}.informations-produit__conteneur{width:inherit;max-width:initial;border-right:initial;border-left:initial;transform:translateY(-100%)}}@media (width<=700px){.informations-produit{--section-marges-internes:var(--espace-l);--onglet-marges-internes:var(--espace-l);bottom:var(--espace-xl);width:min(var(--boite-longueur),100%);height:initial;margin:auto;position:relative}.informations-produit__conteneur{transform:initial}}.produits-similaires{--carte-produit-longueur-minimale:448px;--carte-produit-longueur-maximale:1000px;margin-top:var(--espace-m);grid-template-rows:1fr auto;grid-template-columns:repeat(3,1fr);grid-template-areas:"en-tete en-tete en-tete""produits produits produits";place-items:center;display:grid;position:relative}.produits-similaires header{z-index:10;top:calc(1lh + var(--espace-l) + var(--espace-m));width:100%;padding:var(--espace-l)0 var(--espace-m);color:var(--couleur-blanc);text-align:center;background:var(--couleur-noir);grid-area:en-tete;position:sticky}.produits-similaires header h2{font-style:italic;line-height:var(--hauteur-ligne-rapprochee);text-transform:uppercase;letter-spacing:var(--espacement-inter-lettres-etendu-m)}.produits-similaires .grille-produits-similaires{grid-area:produits;grid-auto-rows:1fr;grid-template-columns:repeat(auto-fit,minmax(var(--carte-produit-longueur-minimale),1fr));gap:1px;width:100%;display:grid}.produits-similaires .grille-produits-similaires article{max-width:var(--carte-produit-longueur-maximale);box-shadow:0 0 0 1px var(--couleur-noir)}.produits-similaires .grille-produits-similaires article figure{row-gap:var(--espace-xl);padding:var(--espace-m);flex-flow:column;display:flex}.produits-similaires .grille-produits-similaires article figure a{position:relative}@media (hover:hover){.produits-similaires .grille-produits-similaires article figure a:hover .produit__illustration__survol{visibility:visible;opacity:1;transition:opacity .3s,visibility .3s}}.produits-similaires .grille-produits-similaires article figure .produit__illustration__principale{display:block}.produits-similaires .grille-produits-similaires article figure .produit__illustration__survol{visibility:hidden;opacity:0;width:100%;height:100%;transition:opacity .15s,visibility .15s;display:block;position:absolute;top:0;left:0}.produits-similaires .grille-produits-similaires article figure img{aspect-ratio:9/16;object-fit:cover;width:100%;max-height:70svh}.produits-similaires .grille-produits-similaires article figure figcaption{margin-bottom:var(--espace-xl);flex-flow:row;justify-content:space-between;display:flex}.produits-similaires .grille-produits-similaires article figure figcaption h3{letter-spacing:var(--espacement-inter-lettres-etendu-m);font-style:italic}.produits-similaires .grille-produits-similaires article figure figcaption p{letter-spacing:var(--espacement-inter-lettres-rapproche-s);font-weight:500}@media (width<=700px){.produits-similaires .grille-produits-similaires{grid-template-columns:100%}.produits-similaires .grille-produits-similaires article figure img{max-height:50svh}}#pied-de-page{--pied-de-page-marges-internes-bloc:var(--espace-m);--pied-de-page-marges-internes-ligne:var(--espace-xl);max-width:100vw;height:var(--pied-de-page-hauteur);padding:var(--pied-de-page-marges-internes-bloc)var(--pied-de-page-marges-internes-ligne);background:var(--couleur-jaune);border-top:1px solid var(--couleur-noir);grid-template-columns:1fr 1fr;place-items:center;display:grid}#pied-de-page .zone-menu-navigation-secondaire{text-transform:lowercase;justify-self:start;width:100%;height:100%}#pied-de-page .zone-liens-reseaux-sociaux{text-align:right;justify-items:end;width:100%;height:100%} \ No newline at end of file diff --git a/web/app/themes/haiku-atelier-2024/assets/css/pages/page-a-propos.css b/web/app/themes/haiku-atelier-2024/assets/css/pages/page-a-propos.css index ccae6a93..bc825c0e 100644 --- a/web/app/themes/haiku-atelier-2024/assets/css/pages/page-a-propos.css +++ b/web/app/themes/haiku-atelier-2024/assets/css/pages/page-a-propos.css @@ -2,22 +2,27 @@ --images-longueur-maximale: 1300px; --page-marges-bloc-debut: var(--en-tete-hauteur); --images-marges-ligne: var(--espace-xl) * 2; + display: flex; flex-flow: column nowrap; margin-top: var(--page-marges-bloc-debut); } + #page-a-propos .storytelling { padding: var(--espace-xl) 0; color: var(--couleur-gris-fonce); } + #page-a-propos .storytelling__conteneur { position: relative; width: min(var(--images-longueur-maximale), 100% - var(--images-marges-ligne)); margin: auto; } + #page-a-propos .storytelling picture { position: relative; } + #page-a-propos .storytelling picture::before { content: ""; position: absolute; @@ -32,6 +37,7 @@ filter: opacity(0%); animation: 1s clignotement infinite alternate both linear; } + #page-a-propos .storytelling img { position: relative; width: max-content; @@ -39,10 +45,12 @@ object-fit: contain; background: transparent; } + #page-a-propos .storytelling .epingle { position: absolute; right: 46.5%; } + #page-a-propos .storytelling .epingle img { pointer-events: none; display: block; @@ -50,27 +58,35 @@ filter: drop-shadow(1px 1px 3px var(--couleur-gris-fonce)); transition: 0.2s filter; } + #page-a-propos .storytelling .epingle[data-id-ensemble-epingle-boite="1"] { top: 2%; } + #page-a-propos .storytelling .epingle[data-id-ensemble-epingle-boite="2"] { top: 23%; } + #page-a-propos .storytelling .epingle[data-id-ensemble-epingle-boite="3"] { top: 35%; } + #page-a-propos .storytelling .epingle[data-id-ensemble-epingle-boite="4"] { top: 58%; } + #page-a-propos .storytelling .epingle[data-id-ensemble-epingle-boite="5"] { top: 76%; } + #page-a-propos .storytelling .epingle[data-id-ensemble-epingle-boite="6"] { top: 95.5%; } + #page-a-propos .storytelling .epingle[data-ensemble-epingle-boite-actif] img { filter: drop-shadow(1px 1px 5px var(--couleur-gris-fonce)); } + #page-a-propos .storytelling .boite-texte { position: absolute; top: 0; @@ -87,6 +103,7 @@ border: 1px solid var(--couleur-noir); transition: 0.2s opacity, 0.2s visibility; } + #page-a-propos .storytelling .boite-texte button { position: absolute; top: 0; @@ -94,44 +111,60 @@ align-self: end; padding: var(--espace-xs); } + #page-a-propos .storytelling .boite-texte button img { pointer-events: none; aspect-ratio: 1; width: 1.5rem; } + #page-a-propos .storytelling .boite-texte button:active { background: var(--couleur-jaune); } + #page-a-propos .storytelling .boite-texte p { max-width: 15rem; } + #page-a-propos .storytelling .boite-texte p + p { margin-top: var(--espace-m); } + #page-a-propos .storytelling .boite-texte[data-ensemble-epingle-boite-actif] { visibility: visible; opacity: 1; } + #page-a-propos .storytelling .boite-texte[data-id-ensemble-epingle-boite="2"] { --hauteur-boite: calc(7lh + 1rem + var(--espace-l) * 2); + top: calc(23% - var(--hauteur-boite) / 2); } + #page-a-propos .storytelling .boite-texte[data-id-ensemble-epingle-boite="3"] { --hauteur-boite: calc(7lh + 1rem + var(--espace-l) * 2); + top: calc(35% - var(--hauteur-boite) / 2); } + #page-a-propos .storytelling .boite-texte[data-id-ensemble-epingle-boite="4"] { --hauteur-boite: calc(8lh + 2rem + var(--espace-l) * 2); + top: calc(58% - var(--hauteur-boite) / 2); } + #page-a-propos .storytelling .boite-texte[data-id-ensemble-epingle-boite="5"] { --hauteur-boite: calc(12lh + 2rem + var(--espace-l) * 2); + top: calc(76% - var(--hauteur-boite) / 2); } + #page-a-propos .storytelling .boite-texte[data-id-ensemble-epingle-boite="6"] { --hauteur-boite: calc(7lh + 1rem + var(--espace-l) * 2); + top: calc(95.5% - var(--hauteur-boite) / 2); } + @media (width <= 700px) { #page-a-propos { --images-marges-ligne: var(--espace-m); @@ -143,5 +176,3 @@ filter: opacity(30%); } } - -/*# sourceMappingURL=page-a-propos.css.map */ diff --git a/web/app/themes/haiku-atelier-2024/assets/css/pages/page-accueil.css b/web/app/themes/haiku-atelier-2024/assets/css/pages/page-accueil.css index b3810eb3..0edec695 100644 --- a/web/app/themes/haiku-atelier-2024/assets/css/pages/page-accueil.css +++ b/web/app/themes/haiku-atelier-2024/assets/css/pages/page-accueil.css @@ -1,6 +1,7 @@ #page-accueil { --hauteur-conteneur: var(--contenu-page-hauteur-minimale-sans-categories); --page-marges-bloc-debut: var(--en-tete-hauteur); + overflow: hidden; display: flex; flex-flow: column nowrap; @@ -8,18 +9,21 @@ max-height: var(--hauteur-conteneur); margin-top: var(--page-marges-bloc-debut); } + #page-accueil .storytelling { 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) * 13); padding: 0 var(--espace-xl); } + #page-accueil .storytelling__image { position: sticky; top: 0; @@ -28,12 +32,15 @@ min-height: var(--hauteur-conteneur); max-height: var(--hauteur-conteneur); } + #page-accueil .storytelling__image[data-cache] { display: none; } + #page-accueil .storytelling__image picture { max-height: inherit; } + #page-accueil .storytelling__image img { scale: 0.9; max-height: inherit; @@ -41,5 +48,3 @@ object-fit: contain; background: transparent; } - -/*# sourceMappingURL=page-accueil.css.map */ diff --git a/web/app/themes/haiku-atelier-2024/assets/css/pages/page-boutique.css b/web/app/themes/haiku-atelier-2024/assets/css/pages/page-boutique.css index 3bba4f4f..7dbb0f4f 100644 --- a/web/app/themes/haiku-atelier-2024/assets/css/pages/page-boutique.css +++ b/web/app/themes/haiku-atelier-2024/assets/css/pages/page-boutique.css @@ -3,10 +3,9 @@ width: 100%; text-align: center; } + #page-boutique .actions button { height: initial; margin: auto; padding: var(--espace-xl) 0; } - -/*# sourceMappingURL=page-boutique.css.map */ diff --git a/web/app/themes/haiku-atelier-2024/assets/css/pages/page-contact.css b/web/app/themes/haiku-atelier-2024/assets/css/pages/page-contact.css index 3c67e645..e528bb83 100644 --- a/web/app/themes/haiku-atelier-2024/assets/css/pages/page-contact.css +++ b/web/app/themes/haiku-atelier-2024/assets/css/pages/page-contact.css @@ -3,12 +3,14 @@ 100svh - var(--en-tete-hauteur) - var(--pied-de-page-hauteur) - var(--espace-xl) - 1px ); --page-marges-bloc-debut: var(--en-tete-hauteur); + display: flex; flex-flow: column nowrap; margin-top: var(--page-marges-bloc-debut); margin-bottom: var(--espace-xl); border-bottom: 1px solid var(--couleur-noir); } + #page-contact .contenu { display: flex; flex-flow: column nowrap; @@ -21,18 +23,21 @@ border: 1px solid var(--couleur-noir); border-bottom: initial; } + #page-contact .contenu__en-tete { width: 100%; padding: var(--espace-m) var(--espace-xl); color: var(--couleur-blanc); background: var(--couleur-noir); } + #page-contact .contenu__en-tete h2 { width: fit-content; margin: auto; text-transform: uppercase; letter-spacing: var(--espacement-inter-lettres-etendu-l); } + #page-contact .contenu__textuel { display: flex; flex: 1; @@ -43,14 +48,14 @@ padding: 0 var(--espace-xl); text-wrap: pretty; } + #page-contact .contenu__textuel p + p { margin-top: var(--espace-m); } + @media (width <= 50rem) { #page-contact .contenu { border-right: initial; border-left: initial; } } - -/*# sourceMappingURL=page-contact.css.map */ diff --git a/web/app/themes/haiku-atelier-2024/assets/css/pages/page-panier.css b/web/app/themes/haiku-atelier-2024/assets/css/pages/page-panier.css index f0a274d3..4d3484fa 100644 --- a/web/app/themes/haiku-atelier-2024/assets/css/pages/page-panier.css +++ b/web/app/themes/haiku-atelier-2024/assets/css/pages/page-panier.css @@ -1,37 +1,38 @@ @charset "UTF-8"; + #panneau-panier { border-right: 1px solid var(--couleur-noir); } + #panneau-panier > div { place-content: center; } + #panneau-panier .panneau__grille-produits { display: flex; flex-flow: column nowrap; } + #panneau-panier .panneau__grille-produits__produit { display: grid; grid-template-columns: 1fr 1fr; grid-template-rows: 1fr; border-bottom: 1px solid var(--couleur-noir); } + #panneau-panier .panneau__grille-produits__produit__illustratif { - padding: var(--espace-l); border-right: 1px solid var(--couleur-noir); } + #panneau-panier .panneau__grille-produits__produit__illustratif picture { overflow: hidden; } + #panneau-panier .panneau__grille-produits__produit__illustratif img { aspect-ratio: 1; height: auto; - transition: 0.2s scale; -} -@media (hover: hover) { - #panneau-panier .panneau__grille-produits__produit__illustratif img:hover { - scale: 1.1; - } } + #panneau-panier .panneau__grille-produits .detail-produit { display: flex; flex-flow: column nowrap; @@ -41,6 +42,7 @@ padding: 0 var(--espace-xl); font-style: italic; } + #panneau-panier .panneau__grille-produits .detail-produit__nom-prix { display: flex; flex-flow: row nowrap; @@ -49,29 +51,37 @@ font-size: var(--espace-l); line-height: var(--hauteur-ligne-moitie); } + #panneau-panier .panneau__grille-produits .detail-produit__nom-prix span { min-width: 4rem; font-weight: 600; font-style: initial; } + #panneau-panier .panneau__grille-produits .detail-produit__description { margin-bottom: var(--espace-l); text-transform: lowercase; } + #panneau-panier .panneau__grille-produits .detail-produit__actions { display: grid; grid-template-columns: 0.25fr auto 0.25fr; grid-template-rows: 1fr 1fr; font-weight: 500; font-style: initial; + /* Bouton d'addition de quantité */ + /* * 1. Cache les flèches d'augmentation/diminution sur Firefox. * 2. Cache les flèches d'augmentation/diminution sur Chrome/Edge/Safari. */ + /* Bouton de suppression de quantité */ + /* Bouton de suppression du Produit du Panier */ } + #panneau-panier .panneau__grille-produits .detail-produit__actions button:first-of-type { grid-column: 1; min-width: 3rem; @@ -79,7 +89,8 @@ border: 1px solid var(--couleur-noir); border-bottom: initial; } -#panneau-panier .panneau__grille-produits .detail-produit__actions input[type=number] { + +#panneau-panier .panneau__grille-produits .detail-produit__actions input[type="number"] { grid-column: 2; width: 100%; text-align: center; @@ -87,10 +98,12 @@ border: initial; border-top: 1px solid var(--couleur-noir); } -#panneau-panier .panneau__grille-produits .detail-produit__actions input[type=number]::-webkit-outer-spin-button, #panneau-panier .panneau__grille-produits .detail-produit__actions input[type=number]::-webkit-inner-spin-button { + +#panneau-panier .panneau__grille-produits .detail-produit__actions input[type="number"]::-webkit-outer-spin-button, #panneau-panier .panneau__grille-produits .detail-produit__actions input[type="number"]::-webkit-inner-spin-button { margin: 0; /* 2 */ appearance: none; /* 2 */ } + #panneau-panier .panneau__grille-produits .detail-produit__actions button:nth-of-type(2) { grid-column: 3; min-width: 3rem; @@ -98,6 +111,7 @@ border: 1px solid var(--couleur-noir); border-bottom: initial; } + #panneau-panier .panneau__grille-produits .detail-produit__actions button:last-of-type { grid-column: span 3; grid-row: 2; @@ -105,16 +119,19 @@ text-transform: lowercase; border: 1px solid var(--couleur-noir); } + #panneau-panier .panneau__instructions-code-promo { width: 100%; padding: var(--espace-l) var(--espace-xl); text-align: center; border-bottom: 1px solid var(--couleur-noir); + /* * 1. Nécessaire pour ne pas qu'un espace vertical non souhaité apparaisse. * 2. Applique une marge entre les instructions et le code promo de notre choix. */ } + #panneau-panier .panneau__instructions-code-promo__instructions { resize: vertical; display: block; /* 1 */ @@ -127,43 +144,52 @@ background: initial; border: 1px solid transparent; } + #panneau-panier .panneau__instructions-code-promo__code-promo { display: flex; flex-flow: row nowrap; width: fit-content; margin: auto; } + #panneau-panier .panneau__instructions-code-promo__code-promo input { width: 20rem; } + #panneau-panier .panneau__instructions-code-promo__code-promo button { padding: var(--espace-xs) var(--espace-xl); text-transform: lowercase; border: 1px solid var(--couleur-noir); border-left: initial; } + #panneau-panier .panneau__sous-totaux { width: min(30rem, 100%); margin: auto; padding: var(--espace-l) var(--espace-xl); text-align: center; } + #panneau-panier .panneau__sous-totaux__ligne { display: flex; flex-flow: row nowrap; justify-content: space-between; font-style: italic; } + #panneau-panier .panneau__sous-totaux__ligne strong { text-align: right; text-transform: lowercase; } + #panneau-panier .panneau__sous-totaux__ligne#sous-total-livraison p:last-of-type { text-align: right; } + #panneau-panier .panneau__sous-totaux__ligne#sous-total-livraison p:last-of-type span { color: grey; } + #panneau-panier .panneau__sous-totaux__conditions-livraison { margin-top: var(--espace-l); font-size: 0.8rem; @@ -171,6 +197,7 @@ color: grey; letter-spacing: var(--espacement-inter-lettres-etendu-s); } + #panneau-panier .panneau__pied-de-page { align-content: center; padding: var(--espace-l) 0; @@ -182,6 +209,7 @@ letter-spacing: 2px; background: var(--couleur-noir); } + #panneau-panier .panneau__pied-de-page span { margin-left: var(--espace-l); font-style: initial; @@ -193,22 +221,27 @@ right: 0; height: fit-content; } + #panneau-informations-client > * { align-content: center; text-align: center; } + #panneau-informations-client .panneau__paypal-express { --hauteur-images-bouton: 18px; --hauteur-bouton: calc(var(--hauteur-images-bouton) * 2); --longueur-bouton: 250px; --espacement-inter-images: var(--espace-xs); + padding: var(--espace-xl); border-bottom: 1px solid var(--couleur-noir); } + #panneau-informations-client .panneau__paypal-express p { margin-bottom: var(--espace-s); font-style: italic; } + #panneau-informations-client .panneau__paypal-express button { display: flex; column-gap: var(--espacement-inter-images); @@ -219,16 +252,20 @@ margin: auto; background: var(--couleur-noir); } + #panneau-informations-client .panneau__paypal-express button img { height: var(--hauteur-images-bouton); background: inherit; } + #panneau-informations-client .panneau__paypal-express button img:first-of-type { margin-top: -1px; } + #panneau-informations-client .panneau__formulaires { padding: var(--espace-xl) 0; } + #panneau-informations-client .panneau__formulaires .panneau__formulaires__separation-adresses { position: relative; display: flex; @@ -241,28 +278,34 @@ font-size: 0.8rem; font-style: italic; } + #panneau-informations-client .panneau__formulaires .panneau__formulaires__separation-adresses label { text-transform: lowercase; } + #panneau-informations-client .panneau__formulaires .panneau__formulaires__paiement .formulaire__paiement__attente-renseignement-formulaires { align-content: center; width: 100%; padding: 0; + font-size: 0.8rem; + font-weight: 450; + color: grey; text-align: center; } -#panneau-informations-client .panneau__formulaires .panneau__formulaires__paiement .formulaire__paiement__attente-renseignement-formulaires p { - font-style: italic; -} + #panneau-informations-client .panneau__formulaires .panneau__formulaires__paiement .formulaire__paiement__attente-renseignement-formulaires p + p { - margin-top: var(--espace-l); + margin-top: 1lh; } + #panneau-informations-client .formulaire { margin: auto; padding: 0 var(--espace-xl); } + #panneau-informations-client .formulaire + .formulaire { margin-top: var(--espace-xl); } + #panneau-informations-client .formulaire .formulaire__titre { margin-bottom: var(--espace-m); font-size: 1.25rem; @@ -270,11 +313,13 @@ font-style: italic; letter-spacing: 1px; } + #panneau-informations-client .formulaire .formulaire__champs { width: fit-content; margin: auto; text-align: left; } + #panneau-informations-client .formulaire .formulaire__champs .formulaire__champs__champ { display: flex; flex-flow: row nowrap; @@ -282,20 +327,25 @@ place-items: center; justify-content: space-between; } + #panneau-informations-client .formulaire .formulaire__champs .formulaire__champs__champ + .formulaire__champs__champ { margin-top: var(--espace-l); } + #panneau-informations-client .formulaire label { width: 7rem; font-weight: 400; text-transform: lowercase; } + #panneau-informations-client .formulaire label:has(+ :is(input:required, select:required)) { font-weight: 600; } + #panneau-informations-client .formulaire input { width: 15rem; } + #panneau-informations-client .panneau__pied-de-page { align-content: center; padding: var(--espace-l) 0; @@ -307,6 +357,7 @@ letter-spacing: 2px; background: var(--couleur-noir); } + #panneau-informations-client .panneau__pied-de-page button { font: inherit; color: inherit; @@ -320,20 +371,24 @@ #page-panier { /* Dimensions */ --menu-section-hauteur: var(--menu-categories-produits-hauteur); + /* Marges */ --menu-section-marges-bloc-debut: var(--en-tete-hauteur); /* 1 */ + position: relative; display: flex; flex-flow: row wrap; min-height: calc(100svh - var(--en-tete-hauteur) - var(--pied-de-page-hauteur)); margin-top: var(--menu-section-marges-bloc-debut); } + #page-panier .panneau { flex: 1 1 30rem; min-width: 30rem; border-top: 1px solid var(--couleur-noir); border-bottom: 1px solid var(--couleur-noir); } + #page-panier .panneau__en-tete { position: sticky; z-index: 2; @@ -346,6 +401,7 @@ text-align: center; background: var(--couleur-noir); } + #page-panier .panneau__en-tete h2 { font-weight: 450; font-style: italic; @@ -354,6 +410,7 @@ letter-spacing: 1px; background: var(--couleur-noir); } + #page-panier .panier-vide { display: none; flex-basis: 100%; @@ -361,19 +418,21 @@ min-height: calc(100svh - var(--en-tete-hauteur) - var(--pied-de-page-hauteur)); text-align: center; } + #page-panier .panier-vide p { font-size: 1.25rem; } + #page-panier .panier-vide a { display: inline-block; margin-top: var(--espace-m); font-size: initial; } -#page-panier[data-contient-articles=false] .panneau { + +#page-panier[data-contient-articles="false"] .panneau { display: none; } -#page-panier[data-contient-articles=false] .panier-vide { + +#page-panier[data-contient-articles="false"] .panier-vide { display: block; } - -/*# sourceMappingURL=page-panier.css.map */ diff --git a/web/app/themes/haiku-atelier-2024/assets/css/pages/page-panier.css.map b/web/app/themes/haiku-atelier-2024/assets/css/pages/page-panier.css.map index 93a467da..27a11a8c 100644 --- a/web/app/themes/haiku-atelier-2024/assets/css/pages/page-panier.css.map +++ b/web/app/themes/haiku-atelier-2024/assets/css/pages/page-panier.css.map @@ -1 +1 @@ -{"version":3,"sourceRoot":"","sources":["../../../src/sass/layouts/_panneau-panier.scss","../../../src/sass/layouts/_panneau-informations-client.scss","../../../src/sass/pages/page-panier.scss"],"names":[],"mappings":";AAEA;EACE;;AAEA;EACE;;AAIF;EACE;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAGA;EACE;EACA;;AAEA;EACE;;AAGF;EACE;EACA;EACA;;AAGA;EACE;IACE;;;AAQV;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAIJ;EACE;EACA;;AAIF;EACE;EACA;EACA;EACA;EACA;AAEA;AASA;AAAA;AAAA;AAAA;AAkBA;AASA;;AAnCA;EACE;EACA;EACA;EACA;EACA;;AAOF;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAKJ;EACE;EACA;EACA;EACA;EACA;;AAIF;EACE;EACA;EACA;EACA;EACA;;AAOR;EACE;EACA;EACA;EACA;AAEA;AAAA;AAAA;AAAA;;AAIA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;EACA;EACA;;AAKN;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAKA;EACE;;AAEA;EACE;;AAMR;EACE;EACA;EACA;EACA;EACA;;AAKJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;;AC/NN;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAIF;EAEE;EACA;EACA;EAGA;EAEA;EACA;;AAEA;EACE;EACA;;AAIF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAGF;EACE;;AAMN;EACE;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAKF;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAEA;EACE;;AAOV;EACE;EACA;;AAEA;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;;AAIA;EACE;;AAKN;EACE;EACA;EACA;;AAEA;EACE;;AAIJ;EACE;;AAKJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;;;ACzJN;AAAA;AAAA;AAAA;AAIA;AACE;EACA;AAEA;EACA;EAEA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAGA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;;AAKN;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;EACA;;AAKF;EACE;;AAGF;EACE","file":"page-panier.css"} \ No newline at end of file +{"version":3,"sourceRoot":"","sources":["../../../src/sass/layouts/_panneau-panier.scss","../../../src/sass/layouts/_panneau-informations-client.scss","../../../src/sass/pages/page-panier.scss"],"names":[],"mappings":";AAEA;EACE;;AAEA;EACE;;AAIF;EACE;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAGA;EACE;;AAEA;EACE;;AAGF;EACE;EACA;;AAMN;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAIJ;EACE;EACA;;AAIF;EACE;EACA;EACA;EACA;EACA;AAEA;AASA;AAAA;AAAA;AAAA;AAkBA;AASA;;AAnCA;EACE;EACA;EACA;EACA;EACA;;AAOF;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAKJ;EACE;EACA;EACA;EACA;EACA;;AAIF;EACE;EACA;EACA;EACA;EACA;;AAOR;EACE;EACA;EACA;EACA;AAEA;AAAA;AAAA;AAAA;;AAIA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;EACA;EACA;;AAKN;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAKA;EACE;;AAEA;EACE;;AAMR;EACE;EACA;EACA;EACA;EACA;;AAKJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;;ACtNN;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAIF;EAEE;EACA;EACA;EAGA;EAEA;EACA;;AAEA;EACE;EACA;;AAIF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAGF;EACE;;AAMN;EACE;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAKF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAGE;EACE;;AAOV;EACE;EACA;;AAEA;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;;AAIA;EACE;;AAKN;EACE;EACA;EACA;;AAEA;EACE;;AAIJ;EACE;;AAKJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;;;AC1JN;AAAA;AAAA;AAAA;AAIA;AACE;EACA;AAEA;EACA;EAEA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAGA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;;AAKN;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;EACA;;AAKF;EACE;;AAGF;EACE","file":"page-panier.css"} \ No newline at end of file diff --git a/web/app/themes/haiku-atelier-2024/assets/css/pages/page-panier.min.css b/web/app/themes/haiku-atelier-2024/assets/css/pages/page-panier.min.css index d39c9005..5f6e5c21 100644 --- a/web/app/themes/haiku-atelier-2024/assets/css/pages/page-panier.min.css +++ b/web/app/themes/haiku-atelier-2024/assets/css/pages/page-panier.min.css @@ -1 +1 @@ -#panneau-panier{border-right:1px solid var(--couleur-noir)}#panneau-panier>div{place-content:center}#panneau-panier .panneau__grille-produits{flex-flow:column;display:flex}#panneau-panier .panneau__grille-produits__produit{border-bottom:1px solid var(--couleur-noir);grid-template-rows:1fr;grid-template-columns:1fr 1fr;display:grid}#panneau-panier .panneau__grille-produits__produit__illustratif{padding:var(--espace-l);border-right:1px solid var(--couleur-noir)}#panneau-panier .panneau__grille-produits__produit__illustratif picture{overflow:hidden}#panneau-panier .panneau__grille-produits__produit__illustratif img{aspect-ratio:1;height:auto;transition:scale .2s}@media (hover:hover){#panneau-panier .panneau__grille-produits__produit__illustratif img:hover{scale:1.1}}#panneau-panier .panneau__grille-produits .detail-produit{width:fit-content;padding:0 var(--espace-xl);flex-flow:column;place-content:center;margin:auto;font-style:italic;display:flex}#panneau-panier .panneau__grille-produits .detail-produit__nom-prix{column-gap:var(--espace-xl);font-size:var(--espace-l);line-height:var(--hauteur-ligne-moitie);flex-flow:row;justify-content:space-between;display:flex}#panneau-panier .panneau__grille-produits .detail-produit__nom-prix span{min-width:4rem;font-weight:600;font-style:initial}#panneau-panier .panneau__grille-produits .detail-produit__description{margin-bottom:var(--espace-l);text-transform:lowercase}#panneau-panier .panneau__grille-produits .detail-produit__actions{font-weight:500;font-style:initial;grid-template-rows:1fr 1fr;grid-template-columns:.25fr auto .25fr;display:grid}#panneau-panier .panneau__grille-produits .detail-produit__actions button:first-of-type{border:1px solid var(--couleur-noir);border-bottom:initial;grid-column:1;min-width:3rem;max-width:3rem}#panneau-panier .panneau__grille-produits .detail-produit__actions input[type=number]{text-align:center;appearance:textfield;border:initial;border-top:1px solid var(--couleur-noir);grid-column:2;width:100%}#panneau-panier .panneau__grille-produits .detail-produit__actions input[type=number]::-webkit-outer-spin-button,#panneau-panier .panneau__grille-produits .detail-produit__actions input[type=number]::-webkit-inner-spin-button{appearance:none;margin:0}#panneau-panier .panneau__grille-produits .detail-produit__actions button:nth-of-type(2){border:1px solid var(--couleur-noir);border-bottom:initial;grid-column:3;min-width:3rem;max-width:3rem}#panneau-panier .panneau__grille-produits .detail-produit__actions button:last-of-type{padding:var(--espace-xs);text-transform:lowercase;border:1px solid var(--couleur-noir);grid-area:2/span 3}#panneau-panier .panneau__instructions-code-promo{width:100%;padding:var(--espace-l)var(--espace-xl);text-align:center;border-bottom:1px solid var(--couleur-noir)}#panneau-panier .panneau__instructions-code-promo__instructions{resize:vertical;width:100%;margin:auto;margin-bottom:var(--espace-s);padding:var(--espace-s);background:initial;border:1px solid #0000;font-size:.8rem;font-weight:450;display:block}#panneau-panier .panneau__instructions-code-promo__code-promo{flex-flow:row;width:fit-content;margin:auto;display:flex}#panneau-panier .panneau__instructions-code-promo__code-promo input{width:20rem}#panneau-panier .panneau__instructions-code-promo__code-promo button{padding:var(--espace-xs)var(--espace-xl);text-transform:lowercase;border:1px solid var(--couleur-noir);border-left:initial}#panneau-panier .panneau__sous-totaux{width:min(30rem,100%);padding:var(--espace-l)var(--espace-xl);text-align:center;margin:auto}#panneau-panier .panneau__sous-totaux__ligne{flex-flow:row;justify-content:space-between;font-style:italic;display:flex}#panneau-panier .panneau__sous-totaux__ligne strong{text-align:right;text-transform:lowercase}#panneau-panier .panneau__sous-totaux__ligne#sous-total-livraison p:last-of-type{text-align:right}#panneau-panier .panneau__sous-totaux__ligne#sous-total-livraison p:last-of-type span{color:gray}#panneau-panier .panneau__sous-totaux__conditions-livraison{margin-top:var(--espace-l);color:gray;letter-spacing:var(--espacement-inter-lettres-etendu-s);font-size:.8rem;font-weight:450}#panneau-panier .panneau__pied-de-page{padding:var(--espace-l)0;color:var(--couleur-blanc);text-align:center;text-transform:uppercase;letter-spacing:2px;background:var(--couleur-noir);align-content:center;font-size:1.25rem;font-style:italic}#panneau-panier .panneau__pied-de-page span{margin-left:var(--espace-l);font-style:initial}#panneau-informations-client{top:var(--en-tete-hauteur);height:fit-content;position:sticky;right:0}#panneau-informations-client>*{text-align:center;align-content:center}#panneau-informations-client .panneau__paypal-express{--hauteur-images-bouton:18px;--hauteur-bouton:calc(var(--hauteur-images-bouton)*2);--longueur-bouton:250px;--espacement-inter-images:var(--espace-xs);padding:var(--espace-xl);border-bottom:1px solid var(--couleur-noir)}#panneau-informations-client .panneau__paypal-express p{margin-bottom:var(--espace-s);font-style:italic}#panneau-informations-client .panneau__paypal-express button{column-gap:var(--espacement-inter-images);width:var(--longueur-bouton);height:var(--hauteur-bouton);background:var(--couleur-noir);place-content:center;place-items:center;margin:auto;display:flex}#panneau-informations-client .panneau__paypal-express button img{height:var(--hauteur-images-bouton);background:inherit}#panneau-informations-client .panneau__paypal-express button img:first-of-type{margin-top:-1px}#panneau-informations-client .panneau__formulaires{padding:var(--espace-xl)0}#panneau-informations-client .panneau__formulaires .panneau__formulaires__separation-adresses{width:fit-content;margin:auto;margin-bottom:var(--espace-m);flex-flow:row;place-items:center;column-gap:1ch;font-size:.8rem;font-style:italic;display:flex;position:relative}#panneau-informations-client .panneau__formulaires .panneau__formulaires__separation-adresses label{text-transform:lowercase}#panneau-informations-client .panneau__formulaires .panneau__formulaires__paiement .formulaire__paiement__attente-renseignement-formulaires{text-align:center;align-content:center;width:100%;padding:0}#panneau-informations-client .panneau__formulaires .panneau__formulaires__paiement .formulaire__paiement__attente-renseignement-formulaires p{font-style:italic}#panneau-informations-client .panneau__formulaires .panneau__formulaires__paiement .formulaire__paiement__attente-renseignement-formulaires p+p{margin-top:var(--espace-l)}#panneau-informations-client .formulaire{padding:0 var(--espace-xl);margin:auto}#panneau-informations-client .formulaire+.formulaire{margin-top:var(--espace-xl)}#panneau-informations-client .formulaire .formulaire__titre{margin-bottom:var(--espace-m);letter-spacing:1px;font-size:1.25rem;font-style:italic;font-weight:600}#panneau-informations-client .formulaire .formulaire__champs{text-align:left;width:fit-content;margin:auto}#panneau-informations-client .formulaire .formulaire__champs .formulaire__champs__champ{column-gap:var(--espace-xl);flex-flow:row;justify-content:space-between;place-items:center;display:flex}#panneau-informations-client .formulaire .formulaire__champs .formulaire__champs__champ+.formulaire__champs__champ{margin-top:var(--espace-l)}#panneau-informations-client .formulaire label{text-transform:lowercase;width:7rem;font-weight:400}#panneau-informations-client .formulaire label:has(+:is(input:required,select:required)){font-weight:600}#panneau-informations-client .formulaire input{width:15rem}#panneau-informations-client .panneau__pied-de-page{padding:var(--espace-l)0;color:var(--couleur-blanc);text-align:center;text-transform:uppercase;letter-spacing:2px;background:var(--couleur-noir);align-content:center;font-size:1.25rem;font-style:italic}#panneau-informations-client .panneau__pied-de-page button{font:inherit;color:inherit;text-transform:inherit}#page-panier{--menu-section-hauteur:var(--menu-categories-produits-hauteur);--menu-section-marges-bloc-debut:var(--en-tete-hauteur);min-height:calc(100svh - var(--en-tete-hauteur) - var(--pied-de-page-hauteur));margin-top:var(--menu-section-marges-bloc-debut);flex-flow:wrap;display:flex;position:relative}#page-panier .panneau{border-top:1px solid var(--couleur-noir);border-bottom:1px solid var(--couleur-noir);flex:30rem;min-width:30rem}#page-panier .panneau__en-tete{z-index:2;top:var(--menu-section-marges-bloc-debut);min-height:var(--menu-categories-produits-hauteur);max-height:var(--menu-categories-produits-hauteur);color:var(--couleur-gris);text-align:center;background:var(--couleur-noir);align-content:center;display:block;position:sticky}#page-panier .panneau__en-tete h2{color:var(--couleur-gris);text-transform:uppercase;letter-spacing:1px;background:var(--couleur-noir);font-style:italic;font-weight:450}#page-panier .panier-vide{min-height:calc(100svh - var(--en-tete-hauteur) - var(--pied-de-page-hauteur));text-align:center;flex-basis:100%;align-content:center;display:none}#page-panier .panier-vide p{font-size:1.25rem}#page-panier .panier-vide a{margin-top:var(--espace-m);font-size:initial;display:inline-block}#page-panier[data-contient-articles=false] .panneau{display:none}#page-panier[data-contient-articles=false] .panier-vide{display:block} \ No newline at end of file +#panneau-panier{border-right:1px solid var(--couleur-noir)}#panneau-panier>div{place-content:center}#panneau-panier .panneau__grille-produits{flex-flow:column;display:flex}#panneau-panier .panneau__grille-produits__produit{border-bottom:1px solid var(--couleur-noir);grid-template-rows:1fr;grid-template-columns:1fr 1fr;display:grid}#panneau-panier .panneau__grille-produits__produit__illustratif{border-right:1px solid var(--couleur-noir)}#panneau-panier .panneau__grille-produits__produit__illustratif picture{overflow:hidden}#panneau-panier .panneau__grille-produits__produit__illustratif img{aspect-ratio:1;height:auto}#panneau-panier .panneau__grille-produits .detail-produit{width:fit-content;padding:0 var(--espace-xl);flex-flow:column;place-content:center;margin:auto;font-style:italic;display:flex}#panneau-panier .panneau__grille-produits .detail-produit__nom-prix{column-gap:var(--espace-xl);font-size:var(--espace-l);line-height:var(--hauteur-ligne-moitie);flex-flow:row;justify-content:space-between;display:flex}#panneau-panier .panneau__grille-produits .detail-produit__nom-prix span{min-width:4rem;font-weight:600;font-style:initial}#panneau-panier .panneau__grille-produits .detail-produit__description{margin-bottom:var(--espace-l);text-transform:lowercase}#panneau-panier .panneau__grille-produits .detail-produit__actions{font-weight:500;font-style:initial;grid-template-rows:1fr 1fr;grid-template-columns:.25fr auto .25fr;display:grid}#panneau-panier .panneau__grille-produits .detail-produit__actions button:first-of-type{border:1px solid var(--couleur-noir);border-bottom:initial;grid-column:1;min-width:3rem;max-width:3rem}#panneau-panier .panneau__grille-produits .detail-produit__actions input[type=number]{text-align:center;appearance:textfield;border:initial;border-top:1px solid var(--couleur-noir);grid-column:2;width:100%}#panneau-panier .panneau__grille-produits .detail-produit__actions input[type=number]::-webkit-outer-spin-button,#panneau-panier .panneau__grille-produits .detail-produit__actions input[type=number]::-webkit-inner-spin-button{appearance:none;margin:0}#panneau-panier .panneau__grille-produits .detail-produit__actions button:nth-of-type(2){border:1px solid var(--couleur-noir);border-bottom:initial;grid-column:3;min-width:3rem;max-width:3rem}#panneau-panier .panneau__grille-produits .detail-produit__actions button:last-of-type{padding:var(--espace-xs);text-transform:lowercase;border:1px solid var(--couleur-noir);grid-area:2/span 3}#panneau-panier .panneau__instructions-code-promo{width:100%;padding:var(--espace-l)var(--espace-xl);text-align:center;border-bottom:1px solid var(--couleur-noir)}#panneau-panier .panneau__instructions-code-promo__instructions{resize:vertical;width:100%;margin:auto;margin-bottom:var(--espace-s);padding:var(--espace-s);background:initial;border:1px solid #0000;font-size:.8rem;font-weight:450;display:block}#panneau-panier .panneau__instructions-code-promo__code-promo{flex-flow:row;width:fit-content;margin:auto;display:flex}#panneau-panier .panneau__instructions-code-promo__code-promo input{width:20rem}#panneau-panier .panneau__instructions-code-promo__code-promo button{padding:var(--espace-xs)var(--espace-xl);text-transform:lowercase;border:1px solid var(--couleur-noir);border-left:initial}#panneau-panier .panneau__sous-totaux{width:min(30rem,100%);padding:var(--espace-l)var(--espace-xl);text-align:center;margin:auto}#panneau-panier .panneau__sous-totaux__ligne{flex-flow:row;justify-content:space-between;font-style:italic;display:flex}#panneau-panier .panneau__sous-totaux__ligne strong{text-align:right;text-transform:lowercase}#panneau-panier .panneau__sous-totaux__ligne#sous-total-livraison p:last-of-type{text-align:right}#panneau-panier .panneau__sous-totaux__ligne#sous-total-livraison p:last-of-type span{color:gray}#panneau-panier .panneau__sous-totaux__conditions-livraison{margin-top:var(--espace-l);color:gray;letter-spacing:var(--espacement-inter-lettres-etendu-s);font-size:.8rem;font-weight:450}#panneau-panier .panneau__pied-de-page{padding:var(--espace-l)0;color:var(--couleur-blanc);text-align:center;text-transform:uppercase;letter-spacing:2px;background:var(--couleur-noir);align-content:center;font-size:1.25rem;font-style:italic}#panneau-panier .panneau__pied-de-page span{margin-left:var(--espace-l);font-style:initial}#panneau-informations-client{top:var(--en-tete-hauteur);height:fit-content;position:sticky;right:0}#panneau-informations-client>*{text-align:center;align-content:center}#panneau-informations-client .panneau__paypal-express{--hauteur-images-bouton:18px;--hauteur-bouton:calc(var(--hauteur-images-bouton)*2);--longueur-bouton:250px;--espacement-inter-images:var(--espace-xs);padding:var(--espace-xl);border-bottom:1px solid var(--couleur-noir)}#panneau-informations-client .panneau__paypal-express p{margin-bottom:var(--espace-s);font-style:italic}#panneau-informations-client .panneau__paypal-express button{column-gap:var(--espacement-inter-images);width:var(--longueur-bouton);height:var(--hauteur-bouton);background:var(--couleur-noir);place-content:center;place-items:center;margin:auto;display:flex}#panneau-informations-client .panneau__paypal-express button img{height:var(--hauteur-images-bouton);background:inherit}#panneau-informations-client .panneau__paypal-express button img:first-of-type{margin-top:-1px}#panneau-informations-client .panneau__formulaires{padding:var(--espace-xl)0}#panneau-informations-client .panneau__formulaires .panneau__formulaires__separation-adresses{width:fit-content;margin:auto;margin-bottom:var(--espace-m);flex-flow:row;place-items:center;column-gap:1ch;font-size:.8rem;font-style:italic;display:flex;position:relative}#panneau-informations-client .panneau__formulaires .panneau__formulaires__separation-adresses label{text-transform:lowercase}#panneau-informations-client .panneau__formulaires .panneau__formulaires__paiement .formulaire__paiement__attente-renseignement-formulaires{color:gray;text-align:center;align-content:center;width:100%;padding:0;font-size:.8rem;font-weight:450}#panneau-informations-client .panneau__formulaires .panneau__formulaires__paiement .formulaire__paiement__attente-renseignement-formulaires p+p{margin-top:1lh}#panneau-informations-client .formulaire{padding:0 var(--espace-xl);margin:auto}#panneau-informations-client .formulaire+.formulaire{margin-top:var(--espace-xl)}#panneau-informations-client .formulaire .formulaire__titre{margin-bottom:var(--espace-m);letter-spacing:1px;font-size:1.25rem;font-style:italic;font-weight:600}#panneau-informations-client .formulaire .formulaire__champs{text-align:left;width:fit-content;margin:auto}#panneau-informations-client .formulaire .formulaire__champs .formulaire__champs__champ{column-gap:var(--espace-xl);flex-flow:row;justify-content:space-between;place-items:center;display:flex}#panneau-informations-client .formulaire .formulaire__champs .formulaire__champs__champ+.formulaire__champs__champ{margin-top:var(--espace-l)}#panneau-informations-client .formulaire label{text-transform:lowercase;width:7rem;font-weight:400}#panneau-informations-client .formulaire label:has(+:is(input:required,select:required)){font-weight:600}#panneau-informations-client .formulaire input{width:15rem}#panneau-informations-client .panneau__pied-de-page{padding:var(--espace-l)0;color:var(--couleur-blanc);text-align:center;text-transform:uppercase;letter-spacing:2px;background:var(--couleur-noir);align-content:center;font-size:1.25rem;font-style:italic}#panneau-informations-client .panneau__pied-de-page button{font:inherit;color:inherit;text-transform:inherit}#page-panier{--menu-section-hauteur:var(--menu-categories-produits-hauteur);--menu-section-marges-bloc-debut:var(--en-tete-hauteur);min-height:calc(100svh - var(--en-tete-hauteur) - var(--pied-de-page-hauteur));margin-top:var(--menu-section-marges-bloc-debut);flex-flow:wrap;display:flex;position:relative}#page-panier .panneau{border-top:1px solid var(--couleur-noir);border-bottom:1px solid var(--couleur-noir);flex:30rem;min-width:30rem}#page-panier .panneau__en-tete{z-index:2;top:var(--menu-section-marges-bloc-debut);min-height:var(--menu-categories-produits-hauteur);max-height:var(--menu-categories-produits-hauteur);color:var(--couleur-gris);text-align:center;background:var(--couleur-noir);align-content:center;display:block;position:sticky}#page-panier .panneau__en-tete h2{color:var(--couleur-gris);text-transform:uppercase;letter-spacing:1px;background:var(--couleur-noir);font-style:italic;font-weight:450}#page-panier .panier-vide{min-height:calc(100svh - var(--en-tete-hauteur) - var(--pied-de-page-hauteur));text-align:center;flex-basis:100%;align-content:center;display:none}#page-panier .panier-vide p{font-size:1.25rem}#page-panier .panier-vide a{margin-top:var(--espace-m);font-size:initial;display:inline-block}#page-panier[data-contient-articles=false] .panneau{display:none}#page-panier[data-contient-articles=false] .panier-vide{display:block} \ No newline at end of file diff --git a/web/app/themes/haiku-atelier-2024/assets/css/pages/page-succes-commande.css b/web/app/themes/haiku-atelier-2024/assets/css/pages/page-succes-commande.css index 2d0eca1f..4c170f27 100644 --- a/web/app/themes/haiku-atelier-2024/assets/css/pages/page-succes-commande.css +++ b/web/app/themes/haiku-atelier-2024/assets/css/pages/page-succes-commande.css @@ -3,12 +3,14 @@ 100svh - var(--en-tete-hauteur) - var(--pied-de-page-hauteur) - var(--espace-xl) - 1px ); --page-marges-bloc-debut: var(--en-tete-hauteur); + display: flex; flex-flow: column nowrap; margin-top: var(--page-marges-bloc-debut); margin-bottom: var(--espace-xl); border-bottom: 1px solid var(--couleur-noir); } + #page-succes-commande .contenu { display: flex; flex-flow: column nowrap; @@ -21,18 +23,21 @@ border: 1px solid var(--couleur-noir); border-bottom: initial; } + #page-succes-commande .contenu__en-tete { width: 100%; padding: var(--espace-m) var(--espace-xl); color: var(--couleur-blanc); background: var(--couleur-noir); } + #page-succes-commande .contenu__en-tete h2 { width: fit-content; margin: auto; text-transform: uppercase; letter-spacing: var(--espacement-inter-lettres-etendu-l); } + #page-succes-commande .contenu__textuel { display: flex; flex: 1; @@ -43,40 +48,41 @@ padding: var(--espace-xl); font-style: normal; } + #page-succes-commande .contenu__textuel p + p { margin-top: var(--espace-m); } + #page-succes-commande .contenu__rappel-commande { display: flex; - border-top: 1px solid var(--couleur-noir); flex-flow: column nowrap; + border-top: 1px solid var(--couleur-noir); } + #page-succes-commande .contenu__rappel-commande__produit { display: grid; grid-template-columns: 1fr 1fr; grid-template-rows: 1fr; border-bottom: 1px solid var(--couleur-noir); } + #page-succes-commande .contenu__rappel-commande__produit:only-child, #page-succes-commande .contenu__rappel-commande__produit:last-of-type { border-bottom: initial; } + #page-succes-commande .contenu__rappel-commande__produit__illustratif { - padding: var(--espace-l); border-right: 1px solid var(--couleur-noir); } + #page-succes-commande .contenu__rappel-commande__produit__illustratif picture { overflow: hidden; } + #page-succes-commande .contenu__rappel-commande__produit__illustratif img { aspect-ratio: 1; height: auto; - transition: 0.2s scale; -} -@media (hover: hover) { - #page-succes-commande .contenu__rappel-commande__produit__illustratif img:hover { - scale: 1.1; - } } + #page-succes-commande .contenu__rappel-commande .detail-produit { display: flex; flex-flow: column nowrap; @@ -85,31 +91,33 @@ padding: 0 var(--espace-xl); font-style: italic; } + #page-succes-commande .contenu__rappel-commande .detail-produit__nom-prix { display: flex; flex-flow: row nowrap; column-gap: var(--espace-xl); justify-content: space-between; + margin-bottom: var(--espace-xs); font-size: var(--espace-l); line-height: var(--hauteur-ligne-moitie); - margin-bottom: var(--espace-xs); } + #page-succes-commande .contenu__rappel-commande .detail-produit__nom-prix span { min-width: 4rem; font-weight: 600; - text-align: right; font-style: initial; + text-align: right; } + #page-succes-commande .contenu__rappel-commande .detail-produit__description { margin-bottom: var(--espace-l); - text-transform: lowercase; line-height: var(--hauteur-ligne-moitie); + text-transform: lowercase; } + @media (width <= 50rem) { #page-succes-commande .contenu { border-right: initial; border-left: initial; } } - -/*# sourceMappingURL=page-succes-commande.css.map */ diff --git a/web/app/themes/haiku-atelier-2024/assets/css/pages/page-succes-commande.css.map b/web/app/themes/haiku-atelier-2024/assets/css/pages/page-succes-commande.css.map index 024424b5..4e7bafc3 100644 --- a/web/app/themes/haiku-atelier-2024/assets/css/pages/page-succes-commande.css.map +++ b/web/app/themes/haiku-atelier-2024/assets/css/pages/page-succes-commande.css.map @@ -1 +1 @@ -{"version":3,"sourceRoot":"","sources":["../../../src/sass/pages/page-succes-commande.scss"],"names":[],"mappings":"AAEA;EAEE;AAAA;AAAA;EAKA;EAEA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAIJ;EACE;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAIF;EACE;EACA;;AAEA;EACE;;AAGF;EACE;EACA;EACA;;AAGA;EACE;IACE;;;AAQV;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAIJ;EACE;EACA;EACA;;AAOR;EACE;IACE;IACA","file":"page-succes-commande.css"} \ No newline at end of file +{"version":3,"sourceRoot":"","sources":["../../../src/sass/pages/page-succes-commande.scss"],"names":[],"mappings":"AAEA;EAEE;AAAA;AAAA;EAKA;EAEA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAIJ;EACE;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAIF;EACE;;AAEA;EACE;;AAGF;EACE;EACA;;AAMN;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAIJ;EACE;EACA;EACA;;AAMR;EACE;IACE;IACA","file":"page-succes-commande.css"} \ No newline at end of file diff --git a/web/app/themes/haiku-atelier-2024/assets/css/pages/page-succes-commande.min.css b/web/app/themes/haiku-atelier-2024/assets/css/pages/page-succes-commande.min.css index 789c84de..5edc1980 100644 --- a/web/app/themes/haiku-atelier-2024/assets/css/pages/page-succes-commande.min.css +++ b/web/app/themes/haiku-atelier-2024/assets/css/pages/page-succes-commande.min.css @@ -1 +1 @@ -#page-succes-commande{--page-hauteur-minimale:calc(100svh - var(--en-tete-hauteur) - var(--pied-de-page-hauteur) - var(--espace-xl) - 1px);--page-marges-bloc-debut:var(--en-tete-hauteur);margin-top:var(--page-marges-bloc-debut);margin-bottom:var(--espace-xl);border-bottom:1px solid var(--couleur-noir);flex-flow:column;display:flex}#page-succes-commande .contenu{width:min(50rem,100%);min-height:var(--page-hauteur-minimale);border:1px solid var(--couleur-noir);border-bottom:initial;flex-flow:column;place-items:center;margin:auto;font-style:italic;font-weight:500;display:flex}#page-succes-commande .contenu__en-tete{width:100%;padding:var(--espace-m)var(--espace-xl);color:var(--couleur-blanc);background:var(--couleur-noir)}#page-succes-commande .contenu__en-tete h2{text-transform:uppercase;width:fit-content;letter-spacing:var(--espacement-inter-lettres-etendu-l);margin:auto}#page-succes-commande .contenu__textuel{max-width:34rem;height:100%;padding:var(--espace-xl);flex-flow:column;flex:1;place-content:center;font-style:normal;display:flex}#page-succes-commande .contenu__textuel p+p{margin-top:var(--espace-m)}#page-succes-commande .contenu__rappel-commande{border-top:1px solid var(--couleur-noir);flex-flow:column;display:flex}#page-succes-commande .contenu__rappel-commande__produit{border-bottom:1px solid var(--couleur-noir);grid-template-rows:1fr;grid-template-columns:1fr 1fr;display:grid}#page-succes-commande .contenu__rappel-commande__produit:only-child,#page-succes-commande .contenu__rappel-commande__produit:last-of-type{border-bottom:initial}#page-succes-commande .contenu__rappel-commande__produit__illustratif{padding:var(--espace-l);border-right:1px solid var(--couleur-noir)}#page-succes-commande .contenu__rappel-commande__produit__illustratif picture{overflow:hidden}#page-succes-commande .contenu__rappel-commande__produit__illustratif img{aspect-ratio:1;height:auto;transition:scale .2s}@media (hover:hover){#page-succes-commande .contenu__rappel-commande__produit__illustratif img:hover{scale:1.1}}#page-succes-commande .contenu__rappel-commande .detail-produit{width:100%;padding:0 var(--espace-xl);flex-flow:column;place-content:center;font-style:italic;display:flex}#page-succes-commande .contenu__rappel-commande .detail-produit__nom-prix{column-gap:var(--espace-xl);font-size:var(--espace-l);line-height:var(--hauteur-ligne-moitie);margin-bottom:var(--espace-xs);flex-flow:row;justify-content:space-between;display:flex}#page-succes-commande .contenu__rappel-commande .detail-produit__nom-prix span{text-align:right;min-width:4rem;font-weight:600;font-style:initial}#page-succes-commande .contenu__rappel-commande .detail-produit__description{margin-bottom:var(--espace-l);text-transform:lowercase;line-height:var(--hauteur-ligne-moitie)}@media (width<=50rem){#page-succes-commande .contenu{border-right:initial;border-left:initial}} \ No newline at end of file +#page-succes-commande{--page-hauteur-minimale:calc(100svh - var(--en-tete-hauteur) - var(--pied-de-page-hauteur) - var(--espace-xl) - 1px);--page-marges-bloc-debut:var(--en-tete-hauteur);margin-top:var(--page-marges-bloc-debut);margin-bottom:var(--espace-xl);border-bottom:1px solid var(--couleur-noir);flex-flow:column;display:flex}#page-succes-commande .contenu{width:min(50rem,100%);min-height:var(--page-hauteur-minimale);border:1px solid var(--couleur-noir);border-bottom:initial;flex-flow:column;place-items:center;margin:auto;font-style:italic;font-weight:500;display:flex}#page-succes-commande .contenu__en-tete{width:100%;padding:var(--espace-m)var(--espace-xl);color:var(--couleur-blanc);background:var(--couleur-noir)}#page-succes-commande .contenu__en-tete h2{text-transform:uppercase;width:fit-content;letter-spacing:var(--espacement-inter-lettres-etendu-l);margin:auto}#page-succes-commande .contenu__textuel{max-width:34rem;height:100%;padding:var(--espace-xl);flex-flow:column;flex:1;place-content:center;font-style:normal;display:flex}#page-succes-commande .contenu__textuel p+p{margin-top:var(--espace-m)}#page-succes-commande .contenu__rappel-commande{border-top:1px solid var(--couleur-noir);flex-flow:column;display:flex}#page-succes-commande .contenu__rappel-commande__produit{border-bottom:1px solid var(--couleur-noir);grid-template-rows:1fr;grid-template-columns:1fr 1fr;display:grid}#page-succes-commande .contenu__rappel-commande__produit:only-child,#page-succes-commande .contenu__rappel-commande__produit:last-of-type{border-bottom:initial}#page-succes-commande .contenu__rappel-commande__produit__illustratif{border-right:1px solid var(--couleur-noir)}#page-succes-commande .contenu__rappel-commande__produit__illustratif picture{overflow:hidden}#page-succes-commande .contenu__rappel-commande__produit__illustratif img{aspect-ratio:1;height:auto}#page-succes-commande .contenu__rappel-commande .detail-produit{width:100%;padding:0 var(--espace-xl);flex-flow:column;place-content:center;font-style:italic;display:flex}#page-succes-commande .contenu__rappel-commande .detail-produit__nom-prix{column-gap:var(--espace-xl);margin-bottom:var(--espace-xs);font-size:var(--espace-l);line-height:var(--hauteur-ligne-moitie);flex-flow:row;justify-content:space-between;display:flex}#page-succes-commande .contenu__rappel-commande .detail-produit__nom-prix span{min-width:4rem;font-weight:600;font-style:initial;text-align:right}#page-succes-commande .contenu__rappel-commande .detail-produit__description{margin-bottom:var(--espace-l);line-height:var(--hauteur-ligne-moitie);text-transform:lowercase}@media (width<=50rem){#page-succes-commande .contenu{border-right:initial;border-left:initial}} \ No newline at end of file diff --git a/web/app/themes/haiku-atelier-2024/assets/js/.vite/manifest.json b/web/app/themes/haiku-atelier-2024/assets/js/.vite/manifest.json index a6592dec..847a9826 100644 --- a/web/app/themes/haiku-atelier-2024/assets/js/.vite/manifest.json +++ b/web/app/themes/haiku-atelier-2024/assets/js/.vite/manifest.json @@ -34,16 +34,16 @@ ], "integrity": "sha512-wORZ0WkOfNuzAUKhf7XA8LXG4geR64dUCIHwukqdLnUhkEFdeLpLtmDfuYMl5Aff09c7XjJxUQIVGwRb8uTbcA==" }, + "_index.CXGAS3st.js": { + "file": "index.CXGAS3st.js", + "name": "index", + "integrity": "sha512-eDANGhRhGm64JXPMqSK3b9l2B9IgUl4mo9ssnLZo8wcn8nWgv+R8JklbZ5xKI8JXxuLCYthYHsAuPG0ylMgKgg==" + }, "_index.CeK6pfoJ.js": { "file": "index.CeK6pfoJ.js", "name": "index", "integrity": "sha512-cxTw0sKKut2H95JwMgiKgEVLyZ0QswK/HydKTapcqcs3w6xHIHNUpYBLdRzEYdeRfHKUsA0kvPNBXBk/QeazjQ==" }, - "_index.vOxCZRxB.js": { - "file": "index.vOxCZRxB.js", - "name": "index", - "integrity": "sha512-Lux2XD7sQMuHJ9D8UAyRrkvpTiI+5S4Fj0z4ybzKChia8TcBum+HiZdEFyX0AIU5palFJZilsf8WzTrLLxCYaw==" - }, "_pipe.XPB0wEfw.js": { "file": "pipe.XPB0wEfw.js", "name": "pipe", @@ -68,7 +68,7 @@ "name": "dom", "src": "web/app/themes/haiku-atelier-2024/src/scripts/constantes/dom.ts", "isEntry": true, - "integrity": "sha512-AUdY+bNzLgbYp948Md+Ja5sr822XkYFXSUlfPjF+YTiFxiN9hzYRQAUsTRtsk9z17FBRSOvwOWTS50pwApnMBA==" + "integrity": "sha512-vXHO4Jy2lfm9PCvsOvkMcjB4+vGiuyqyugcDomkqWd1W4z7ugvBl7C000uKJAw3vPLlng2TqbqlIMx9eqplQMA==" }, "web/app/themes/haiku-atelier-2024/src/scripts/constantes/messages.ts": { "file": "messages3.js", @@ -151,7 +151,7 @@ "src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/messages.ts", "isEntry": true, "imports": [ - "_index.vOxCZRxB.js", + "_index.CXGAS3st.js", "web/app/themes/haiku-atelier-2024/src/scripts/constantes/messages.ts", "web/app/themes/haiku-atelier-2024/src/scripts/lib/erreurs.ts", "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/messages.ts", @@ -162,7 +162,7 @@ "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/adresses.ts", "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/couts-livraison.ts" ], - "integrity": "sha512-QtGHwwLAUMLn3d5PMPRBnRvCjGVzSEeJLATdkWoWXa2RSgsIVe02+sE005Sc/iGhSD1CQtCzy/qwSVYODhhDIA==" + "integrity": "sha512-fmTMGQ1CAm5f/E+VaFBldk3mzb47nIyaNZjs7WSrAOefIVDPqtpRAHFcyHuTYFZeq7QX5ApeEgUtvWyYHP2PHQ==" }, "web/app/themes/haiku-atelier-2024/src/scripts/lib/nombres.ts": { "file": "nombres.js", @@ -178,14 +178,14 @@ "isEntry": true, "imports": [ "_index.CeK6pfoJ.js", - "_index.vOxCZRxB.js", + "_index.CXGAS3st.js", "web/app/themes/haiku-atelier-2024/src/scripts/constantes/api.ts", "web/app/themes/haiku-atelier-2024/src/scripts/lib/erreurs.ts", "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/erreurs.ts", "_pipe.XPB0wEfw.js", "_exports.DT-46nyp.js" ], - "integrity": "sha512-NF7XsDZgkHTp3/pxL2+0aE1lwFRqNptSpywY06msZIRGcKGtffliQ6cX6dpkHLvI+xsGlUMkPS9u4f7sXXNnsA==" + "integrity": "sha512-3DwXfy4COJ8iEKuipI7/CJkgB2RALGz+sXzZL9nRKnQoYVSHDTS2a3mxaasRZkV8MxRaUtbq6GBtciF9uhDZOA==" }, "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/adresses.ts": { "file": "adresses.js", @@ -193,9 +193,9 @@ "src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/adresses.ts", "isEntry": true, "imports": [ - "_index.vOxCZRxB.js" + "_index.CXGAS3st.js" ], - "integrity": "sha512-ZozzERJ/+3ez2qN+3PzXf9qXAu3ScxG5L+qxYBxFYSc1x0rQxEjqnB8QTFInKq3J3+sIKrEdi4iQwcsncMKhsQ==" + "integrity": "sha512-wxZc24uay8AJp/9gR77xSxP/1jxPqE0dwEIjJOSUSZ5iaZ0E+u98NkVDVnJjvf+k+vaBaDdyEUPJg/gJpWTFcw==" }, "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-add-item.ts": { "file": "cart-add-item.js", @@ -203,9 +203,9 @@ "src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-add-item.ts", "isEntry": true, "imports": [ - "_index.vOxCZRxB.js" + "_index.CXGAS3st.js" ], - "integrity": "sha512-wh9+pUSi4EGGbWn+dhEIPT98ASrwJb4aFoCzFUxOUlJtETqDxAGm3pyBwsvn3xcNrms6ZKBq60CHkiA0qRU9rg==" + "integrity": "sha512-7nxF9KlbqvnjKgJRHy9gp6KYR9x6HIeYbekYRme7uD9zYI7ijvOworgbikKhh/VpyU0DMsxipMkIbN5aTywvVg==" }, "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-remove-item.ts": { "file": "cart-remove-item.js", @@ -213,9 +213,9 @@ "src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-remove-item.ts", "isEntry": true, "imports": [ - "_index.vOxCZRxB.js" + "_index.CXGAS3st.js" ], - "integrity": "sha512-oXQuwf7xJvRaELaA7Zep2rD0YkbpRikxz06+K/11fNDbifJ+Rs7aDzJnaXL+lae2W7qJ7QLcLFhzRsEqW1ndcw==" + "integrity": "sha512-Y9EkBSzy3+A3xo0eKBp6BMxerG5/WKC6KI8U/NcI5rqsTP3L/o70pj6YfhtjRT+KesOfNPdsTAy0mFVsLgWwrg==" }, "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-update-customer.ts": { "file": "cart-update-customer.js", @@ -223,10 +223,10 @@ "src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-update-customer.ts", "isEntry": true, "imports": [ - "_index.vOxCZRxB.js", + "_index.CXGAS3st.js", "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/adresses.ts" ], - "integrity": "sha512-ooa/m7RsZkRnIfSAQ0NIAWGG/iPxgUV0k40aEyDoEEWhW9F3hVyjROsM4IF2YrFtmysMUR6SIPlhmHtBZEfCpA==" + "integrity": "sha512-PivxAS9NMdYD9NUHNPvHA5e3DB7RByKN+Cg5tX4HDzSrMg2XNC7oCATNgFMn/hSpr5Eh0A84giqIJV+vt3d5zw==" }, "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-update-item.ts": { "file": "cart-update-item.js", @@ -234,9 +234,9 @@ "src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-update-item.ts", "isEntry": true, "imports": [ - "_index.vOxCZRxB.js" + "_index.CXGAS3st.js" ], - "integrity": "sha512-HR6ZipNiVyUUe4khKkmIwhFvvVhq08QIGzRBe4A0niGkG24TmPXLKb8McMniCAlwlS5f6UYpoNDYE/ld00EUHA==" + "integrity": "sha512-Jkl0iSGOukBIjOv+zEVDcUX/sUtfdyl6mJd+gXyjx7WbTy4KYYLv68BhZigLzOJptrWoCF08ajWAQ8BODiM19g==" }, "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart.ts": { "file": "cart.js", @@ -244,12 +244,12 @@ "src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart.ts", "isEntry": true, "imports": [ - "_index.vOxCZRxB.js", + "_index.CXGAS3st.js", "web/app/themes/haiku-atelier-2024/src/scripts/constantes/cart.ts", "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/adresses.ts", "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/couts-livraison.ts" ], - "integrity": "sha512-5uQeT0cNp93usdnr3qSLytMU2D+O7U+LGfZDtdNuyEULYdF6AXzVVfE7a7no+gmL9a6t/AJ4X10Ps4yG1djRMQ==" + "integrity": "sha512-fwzj5jqgK8lTM+j1f1NkFdwhJVErJtKWyW9zJMV/1m9efxo0XHxY+OO+3Xkn0/ycHSni1bI1tCzVCMuTg6vpKQ==" }, "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/couts-livraison.ts": { "file": "couts-livraison.js", @@ -257,10 +257,10 @@ "src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/couts-livraison.ts", "isEntry": true, "imports": [ - "_index.vOxCZRxB.js", + "_index.CXGAS3st.js", "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/adresses.ts" ], - "integrity": "sha512-0AmHHM6NVjtGyoO0Lzdv1TebJqblQIuzudEsW/n7ISi9dXHxZC2nONxkz3nCHx7FApEmjodvD21tOONhnSQePQ==" + "integrity": "sha512-EJLCLruWUYLwW+gIaOvchNjq46HFs1f3Xq7OacFEHvM23fYen4EMZbuN0LWhAxnIhQwIu2W4TPYU7IwXHu5Xng==" }, "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/erreurs.ts": { "file": "erreurs2.js", @@ -268,9 +268,9 @@ "src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/erreurs.ts", "isEntry": true, "imports": [ - "_index.vOxCZRxB.js" + "_index.CXGAS3st.js" ], - "integrity": "sha512-5+wiQwo5033g4G/4Gz6a1x6rzPwmSZpiXrZ8RtOZU8BPnDHOKVXCbpWc32Mnsxz9ClfYwHwLuUk+Q2RF12zMsg==" + "integrity": "sha512-dowi5DfOrRfPTkwCskhvYFC81FPuTs+aGWQJ5S/jC37V9nT20vUfGgmT81arvPn6wpnNaHf9aVcEE+1+bctgdQ==" }, "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/products.ts": { "file": "products3.js", @@ -278,10 +278,10 @@ "src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/products.ts", "isEntry": true, "imports": [ - "_index.vOxCZRxB.js", + "_index.CXGAS3st.js", "web/app/themes/haiku-atelier-2024/src/scripts/constantes/products.ts" ], - "integrity": "sha512-B2JOxUeUPbvVsZB9rA+t3QEtWKlvqaOlBxFtmo4s8kJ28anuMp7AAMfql8tK6y3Hf7FNMJ2RO+s9hPKh/tgqlA==" + "integrity": "sha512-EoP6Wq6Pv9atR1Rq38hxNLiwwjVeA87qZivbidmtMNlEQ3lc5Xv1GHGIhVKoiZp9YFo7r82ZSnI7UeyS3YOkSA==" }, "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/v3/orders.ts": { "file": "orders2.js", @@ -289,11 +289,11 @@ "src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/v3/orders.ts", "isEntry": true, "imports": [ - "_index.vOxCZRxB.js", + "_index.CXGAS3st.js", "web/app/themes/haiku-atelier-2024/src/scripts/constantes/orders.ts", "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/adresses.ts" ], - "integrity": "sha512-24PlxUQrz6ejqPwzFwRUGmxDOosMOuZ/HgAzedIYAUSamj7lF2/FzAqrOWap+M1hhWbua0EjJok4pFhsr+EQBQ==" + "integrity": "sha512-snLY2wshCn9hIGTa8fooyNqFsGIQBfQhsMTypG0HOfTlmUV2ib+ranc0q4lsEoHixrpSB2sD0qXNdHSt2kgFoA==" }, "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/v3/products.ts": { "file": "products.js", @@ -301,10 +301,10 @@ "src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/v3/products.ts", "isEntry": true, "imports": [ - "_index.vOxCZRxB.js", + "_index.CXGAS3st.js", "web/app/themes/haiku-atelier-2024/src/scripts/constantes/products.ts" ], - "integrity": "sha512-1VQEloNbhA+54llRyt3owm4pXzU9+SuJkkozMoP4JiY6JhPBH21ufeCkNsalxwg1SH4jPJdYQtUJc/OG2R94sg==" + "integrity": "sha512-rmvhLGUPYFJleUJIqCvt8xg4hHR74+yiQ0QPtleozfSgGOkZiV+WN/oRYd6MCHEGXXeKC2z5rA83EM7PdDLLBA==" }, "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/messages.ts": { "file": "messages2.js", @@ -312,14 +312,14 @@ "src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/messages.ts", "isEntry": true, "imports": [ - "_index.vOxCZRxB.js", + "_index.CXGAS3st.js", "web/app/themes/haiku-atelier-2024/src/scripts/constantes/messages.ts", "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart.ts", "web/app/themes/haiku-atelier-2024/src/scripts/constantes/cart.ts", "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/adresses.ts", "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/couts-livraison.ts" ], - "integrity": "sha512-mC6JBhQI3fThxOXUeU/vQTcuT37fiJM2o7mkksZoThNU0Od2dQCAPnST1TULVYAwv8Uvzx4IqkZPw75IGF0SKA==" + "integrity": "sha512-rqsyrxdcmlk/Xwmam1mSpoWzBRKQz6Eb9hUTxD0qOsW7gaC/BDS009V0/9icF0lP+GTddWNfNIAiWPStLCTQww==" }, "web/app/themes/haiku-atelier-2024/src/scripts/lib/types/api/v3/orders.ts": { "file": "orders.js", @@ -355,10 +355,10 @@ "src": "web/app/themes/haiku-atelier-2024/src/scripts/lib/validation.ts", "isEntry": true, "imports": [ - "_index.vOxCZRxB.js", + "_index.CXGAS3st.js", "_Either.wHNxn7Os.js" ], - "integrity": "sha512-+dSbgJRPO7l2MBVJpX0eHJIDZptdyXEAiWKXR3cgW6gWKVXTXFLk3h42gTinXL9NmnsI1jxJGlKWWoTHs4Nhcw==" + "integrity": "sha512-Wr3Pn/SgzL55B/UiVKszE14pueIbR2UK5ZQ+zQHUrv+QViOSm+Bk5RyNxEqZNdKX2P/lbWs9/QwGgj7AieVq5g==" }, "web/app/themes/haiku-atelier-2024/src/scripts/scripts-bouton-panier.ts": { "file": "scripts-bouton-panier.js", @@ -375,14 +375,14 @@ "web/app/themes/haiku-atelier-2024/src/scripts/lib/erreurs.ts", "_exports.DT-46nyp.js", "_Either.wHNxn7Os.js", - "_index.vOxCZRxB.js", + "_index.CXGAS3st.js", "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/messages.ts", "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart.ts", "web/app/themes/haiku-atelier-2024/src/scripts/constantes/cart.ts", "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/adresses.ts", "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/couts-livraison.ts" ], - "integrity": "sha512-WXJlr8wJQQ6hGAQD1XYFS1KHsAGLfSaFuZnKCBLjNkomxcHpNnirhqzToNb40qB2rpztaUdFJXdYGPaOZtUOJA==" + "integrity": "sha512-CEgEh4Ysj8RFg6s3vYPH7p2w9Xfrpjx+Fk46y7Mx1L2ZuMnCYq8Lbo73cnIneA4afMZdaR2F+DXKduDNMV88mw==" }, "web/app/themes/haiku-atelier-2024/src/scripts/scripts-menu-categories.ts": { "file": "scripts-menu-categories.js", @@ -415,7 +415,7 @@ "_Either.wHNxn7Os.js", "_pipe.XPB0wEfw.js" ], - "integrity": "sha512-uyzeoXWRG05f3lSoXisLuii8AFAHjvj9t0YziQU+tGkpZYPo6ReS6rr62zFMqTerYTa8XHpmEEt7lKeRFD4qrw==" + "integrity": "sha512-S32/7dQE0D49gv3wprzFmUiQOC8GW67Xoemaa68wGE61zS0EYHTRmcCTagkTg+0uJw/knSv8if1Ms4XaytnClA==" }, "web/app/themes/haiku-atelier-2024/src/scripts/scripts-page-a-propos.ts": { "file": "scripts-page-a-propos.js", @@ -432,7 +432,7 @@ "_exports.DT-46nyp.js", "_Either.wHNxn7Os.js" ], - "integrity": "sha512-qpXsDfaYPZjzKYKEJrzasSO1utgzizcR9KWVJO6XVjSgJ99R5niOSe+3zkPzSTNXRLDc9AXoiPahP2QCOfSOgA==" + "integrity": "sha512-WUcoEKVDXWekPdSMzpJepPYynA1j1zIK/QzETBesaXkFjNN0AG7sdSkFEtlhf4kcXh4GaSBZvPtuzBwPNbCx2Q==" }, "web/app/themes/haiku-atelier-2024/src/scripts/scripts-page-accueil.ts": { "file": "scripts-page-accueil.js", @@ -458,7 +458,7 @@ "isEntry": true, "imports": [ "_index.CeK6pfoJ.js", - "_index.vOxCZRxB.js", + "_index.CXGAS3st.js", "web/app/themes/haiku-atelier-2024/src/scripts/constantes/api.ts", "web/app/themes/haiku-atelier-2024/src/scripts/constantes/dom.ts", "web/app/themes/haiku-atelier-2024/src/scripts/lib/dom.ts", @@ -476,7 +476,7 @@ "web/app/themes/haiku-atelier-2024/src/scripts/constantes/products.ts", "_belt_Option-91f3b350.BKMoZFhU.js" ], - "integrity": "sha512-P9QdmUWmdjkYxlrHmMDx/ejjHgsFUDJX/2JoGO2HB4CbTMPELjeECkxaTUdmA4Z0SgL4rNXIjNLyZl6DtaFacA==" + "integrity": "sha512-F/ScBzgbN07v1YNg/j/T8BPeLoAP7aS3qA1C1wLQ/V7IVQjqV7GVWUqqDQczcg0Sh2xWgE1tBIkgzJMb8VZ1lA==" }, "web/app/themes/haiku-atelier-2024/src/scripts/scripts-page-panier.ts": { "file": "scripts-page-panier.js", @@ -485,7 +485,7 @@ "isEntry": true, "imports": [ "_index.CeK6pfoJ.js", - "_index.vOxCZRxB.js", + "_index.CXGAS3st.js", "web/app/themes/haiku-atelier-2024/src/scripts/constantes/api.ts", "web/app/themes/haiku-atelier-2024/src/scripts/constantes/dom.ts", "web/app/themes/haiku-atelier-2024/src/scripts/constantes/messages.ts", @@ -494,10 +494,10 @@ "web/app/themes/haiku-atelier-2024/src/scripts/lib/gardes.ts", "web/app/themes/haiku-atelier-2024/src/scripts/lib/messages.ts", "web/app/themes/haiku-atelier-2024/src/scripts/lib/reseau.ts", - "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart.ts", "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-remove-item.ts", "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-update-customer.ts", "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart-update-item.ts", + "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/cart.ts", "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/couts-livraison.ts", "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/v3/orders.ts", "web/app/themes/haiku-atelier-2024/src/scripts/lib/utils.ts", @@ -508,12 +508,12 @@ "_exports.DT-46nyp.js", "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/messages.ts", "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/erreurs.ts", - "web/app/themes/haiku-atelier-2024/src/scripts/constantes/cart.ts", "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/adresses.ts", + "web/app/themes/haiku-atelier-2024/src/scripts/constantes/cart.ts", "web/app/themes/haiku-atelier-2024/src/scripts/constantes/orders.ts", "_belt_Option-91f3b350.BKMoZFhU.js" ], - "integrity": "sha512-8+eYxf2c6PIUILniQ5nr+L5W1yiWXTU1NziY6DZXYI+aNU6HGQ+IU5kfBgMGx3ck2+0lqf2TMKl37TP8U7vfng==" + "integrity": "sha512-43e9x7ZGQl7cv+OHv91Gk55D7yWLIT+OimqniA+E+Ol3+yddsj8ez3xcDOIv0vZZVu0kZTby+LZ0mgnoed3wlQ==" }, "web/app/themes/haiku-atelier-2024/src/scripts/scripts-page-produit.ts": { "file": "scripts-page-produit.js", @@ -537,7 +537,7 @@ "_index-0eef19ec.CFsloYN6.js", "_Either.wHNxn7Os.js", "_exports.DT-46nyp.js", - "_index.vOxCZRxB.js", + "_index.CXGAS3st.js", "web/app/themes/haiku-atelier-2024/src/scripts/constantes/messages.ts", "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/messages.ts", "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/erreurs.ts", @@ -546,6 +546,6 @@ "web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/couts-livraison.ts", "_belt_Option-91f3b350.BKMoZFhU.js" ], - "integrity": "sha512-OFjdP0UAF1P5JPw9BGpyvfWrP/bVtMFZ4P5MYFi4cVDcxYI8vlOonNwH/dhvekHcihGwFzWPkiNsqfPSM9o/OA==" + "integrity": "sha512-eEzW7ukzpYsVTOkmJPO6vEnOefXhetRPh4+bkjdbf6nNL651Ms7o5zwip+6ZwtXpMxQeqDSRIV+M2LxGzxaDiQ==" } } \ No newline at end of file diff --git a/web/app/themes/haiku-atelier-2024/assets/js/adresses.js b/web/app/themes/haiku-atelier-2024/assets/js/adresses.js index e54cce93..e26408c1 100644 --- a/web/app/themes/haiku-atelier-2024/assets/js/adresses.js +++ b/web/app/themes/haiku-atelier-2024/assets/js/adresses.js @@ -1,4 +1,4 @@ -import { o as object, s as string } from "./index.vOxCZRxB.js"; +import { o as object, s as string } from "./index.CXGAS3st.js"; const WCStoreBillingAddressSchema = object({ address_1: string(), address_2: string(), diff --git a/web/app/themes/haiku-atelier-2024/assets/js/cart-add-item.js b/web/app/themes/haiku-atelier-2024/assets/js/cart-add-item.js index fc20d36a..4b062895 100644 --- a/web/app/themes/haiku-atelier-2024/assets/js/cart-add-item.js +++ b/web/app/themes/haiku-atelier-2024/assets/js/cart-add-item.js @@ -1,4 +1,4 @@ -import { o as object, c as optional, b as array, s as string, n as number } from "./index.vOxCZRxB.js"; +import { o as object, c as optional, b as array, s as string, n as number } from "./index.CXGAS3st.js"; const WCStoreCartAddItemArgsItemsSchema = object({ /** Variation attribute name. */ attribute: string(), diff --git a/web/app/themes/haiku-atelier-2024/assets/js/cart-remove-item.js b/web/app/themes/haiku-atelier-2024/assets/js/cart-remove-item.js index 4f099566..c5a0a731 100644 --- a/web/app/themes/haiku-atelier-2024/assets/js/cart-remove-item.js +++ b/web/app/themes/haiku-atelier-2024/assets/js/cart-remove-item.js @@ -1,4 +1,4 @@ -import { o as object, s as string } from "./index.vOxCZRxB.js"; +import { o as object, s as string } from "./index.CXGAS3st.js"; const WCStoreCartRemoveItemArgsSchema = object({ /** Unique identifier (key) for the basket item. */ key: string() diff --git a/web/app/themes/haiku-atelier-2024/assets/js/cart-update-customer.js b/web/app/themes/haiku-atelier-2024/assets/js/cart-update-customer.js index 91575389..3b51b2e4 100644 --- a/web/app/themes/haiku-atelier-2024/assets/js/cart-update-customer.js +++ b/web/app/themes/haiku-atelier-2024/assets/js/cart-update-customer.js @@ -1,4 +1,4 @@ -import { o as object, c as optional } from "./index.vOxCZRxB.js"; +import { o as object, c as optional } from "./index.CXGAS3st.js"; import { W as WCStoreShippingAddressSchema, a as WCStoreBillingAddressSchema } from "./adresses.js"; const WCStoreCartUpdateCustomerArgsSchema = object({ billing_address: optional(WCStoreBillingAddressSchema), diff --git a/web/app/themes/haiku-atelier-2024/assets/js/cart-update-item.js b/web/app/themes/haiku-atelier-2024/assets/js/cart-update-item.js index e1299c78..f1b0b68e 100644 --- a/web/app/themes/haiku-atelier-2024/assets/js/cart-update-item.js +++ b/web/app/themes/haiku-atelier-2024/assets/js/cart-update-item.js @@ -1,4 +1,4 @@ -import { o as object, a as pipe, m as minValue, n as number, s as string } from "./index.vOxCZRxB.js"; +import { o as object, a as pipe, m as minValue, n as number, s as string } from "./index.CXGAS3st.js"; const WCStoreCartUpdateItemArgsSchema = object({ /** Unique identifier (key) for the basket item to update. */ key: string(), diff --git a/web/app/themes/haiku-atelier-2024/assets/js/cart.js b/web/app/themes/haiku-atelier-2024/assets/js/cart.js index cc4db554..4235e0b8 100644 --- a/web/app/themes/haiku-atelier-2024/assets/js/cart.js +++ b/web/app/themes/haiku-atelier-2024/assets/js/cart.js @@ -1,4 +1,4 @@ -import { o as object, b as array, u as unknown, s as string, n as number, d as boolean, a as pipe, f as url, g as union, h as null_, e as enum_, i as integer } from "./index.vOxCZRxB.js"; +import { o as object, b as array, u as unknown, s as string, n as number, d as boolean, a as pipe, f as url, g as union, h as null_, e as enum_, i as integer } from "./index.CXGAS3st.js"; import { C as CATALOG_VISIBILITIES } from "./cart2.js"; import { W as WCStoreShippingAddressSchema, a as WCStoreBillingAddressSchema } from "./adresses.js"; import { a as WCStoreShippingRateSchema } from "./couts-livraison.js"; diff --git a/web/app/themes/haiku-atelier-2024/assets/js/couts-livraison.js b/web/app/themes/haiku-atelier-2024/assets/js/couts-livraison.js index f0e743c0..93d610d8 100644 --- a/web/app/themes/haiku-atelier-2024/assets/js/couts-livraison.js +++ b/web/app/themes/haiku-atelier-2024/assets/js/couts-livraison.js @@ -1,4 +1,4 @@ -import { o as object, b as array, s as string, d as boolean, u as unknown, n as number, j as omit } from "./index.vOxCZRxB.js"; +import { o as object, b as array, s as string, d as boolean, u as unknown, n as number, j as omit } from "./index.CXGAS3st.js"; import { W as WCStoreShippingAddressSchema } from "./adresses.js"; const WCStoreShippingRateItemSchema = object({ key: string(), diff --git a/web/app/themes/haiku-atelier-2024/assets/js/dom.js b/web/app/themes/haiku-atelier-2024/assets/js/dom.js index 9df46ba5..26e6dabe 100644 --- a/web/app/themes/haiku-atelier-2024/assets/js/dom.js +++ b/web/app/themes/haiku-atelier-2024/assets/js/dom.js @@ -36,6 +36,7 @@ const SELECTEUR_BOUTON_SEPARATION_ADRESSES = "#separation-adresses"; const SELECTEUR_FORMULAIRE_PANIER = "#panneau-informations-client form"; 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_INSTRUCTIONS_CLIENT = "#panneau-panier #instructions-client"; const SELECTEUR_CONTENEUR_STORYTELLING = ".storytelling"; const SELECTEUR_IMAGES_STORYTELLING = ".storytelling__image"; const SELECTEUR_GRILLE_PRODUITS = "#page-boutique .grille-produits"; @@ -54,35 +55,36 @@ const SELECTEUR_IMAGE_COLONNE_GAUCHE = ".colonne-gauche img"; const SELECTEUR_IMAGES_COLONNE_DROITE = ".colonne-droite img"; const SELECTEUR_PRIX_PRODUIT = ".selecteur-produit__prix"; export { - CLASS_EPINGLE as $, + CLASS_BOUTON_FERMETURE_BOITE_TEXTE as $, ATTRIBUT_CONTIENT_ARTICLES as A, - ATTRIBUT_DESACTIVE as B, - SELECTEUR_PRIX_LIGNE_PANIER as C, - SELECTEUR_BOUTON_AJOUT_PANIER as D, - SELECTEUR_SELECTEUR_QUANTITE as E, - SELECTEUR_PRIX_PRODUIT as F, - SELECTEUR_LIENS_ONGLETS as G, - SELECTEUR_SECTIONS_CONTENUS as H, - ATTRIBUT_ARIA_SELECTED as I, - ATTRIBUT_PRIX as J, - SELECTEUR_CONTENEUR_FLECHES_DEFILEMENT as K, - SELECTEUR_FLECHE_DEFILEMENT_GAUCHE as L, - SELECTEUR_FLECHE_DEFILEMENT_DROITE as M, - SELECTEUR_PHOTOS_PRODUIT as N, - SELECTEUR_IMAGE_COLONNE_GAUCHE as O, - SELECTEUR_IMAGES_COLONNE_DROITE as P, - ATTRIBUT_INDEX_IMAGE_ACTIVE as Q, - SELECTEUR_BOUTON_MENU_MOBILE as R, + SELECTEUR_BOUTON_SUPPRESSION_PANIER as B, + ATTRIBUT_DESACTIVE as C, + SELECTEUR_PRIX_LIGNE_PANIER as D, + SELECTEUR_BOUTON_AJOUT_PANIER as E, + SELECTEUR_SELECTEUR_QUANTITE as F, + SELECTEUR_PRIX_PRODUIT as G, + SELECTEUR_LIENS_ONGLETS as H, + SELECTEUR_SECTIONS_CONTENUS as I, + ATTRIBUT_ARIA_SELECTED as J, + ATTRIBUT_PRIX as K, + SELECTEUR_CONTENEUR_FLECHES_DEFILEMENT as L, + SELECTEUR_FLECHE_DEFILEMENT_GAUCHE as M, + SELECTEUR_FLECHE_DEFILEMENT_DROITE as N, + SELECTEUR_PHOTOS_PRODUIT as O, + SELECTEUR_IMAGE_COLONNE_GAUCHE as P, + SELECTEUR_IMAGES_COLONNE_DROITE as Q, + ATTRIBUT_INDEX_IMAGE_ACTIVE as R, SELECTEUR_BOUTON_PANIER as S, - SELECTEUR_MENU_MOBILE as T, - ATTRIBUT_MENU_MOBILE_ACTIVE as U, - SELECTEUR_CONTENEUR_STORYTELLING_A_PROPOS as V, - SELECTEUR_EPINGLE as W, - SELECTEUR_BOITE_TEXTE as X, - ATTRIBUT_ID_ENSEMBLE_EPINGLE_BOITE as Y, - ATTRIBUT_ENSEMBLE_EPINGLE_BOITE_ACTIF as Z, - CLASS_BOUTON_FERMETURE_BOITE_TEXTE as _, + SELECTEUR_BOUTON_MENU_MOBILE as T, + SELECTEUR_MENU_MOBILE as U, + ATTRIBUT_MENU_MOBILE_ACTIVE as V, + SELECTEUR_CONTENEUR_STORYTELLING_A_PROPOS as W, + SELECTEUR_EPINGLE as X, + SELECTEUR_BOITE_TEXTE as Y, + ATTRIBUT_ID_ENSEMBLE_EPINGLE_BOITE as Z, + ATTRIBUT_ENSEMBLE_EPINGLE_BOITE_ACTIF as _, SELECTEUR_MENU_CATEGORIES_PRODUITS as a, + CLASS_EPINGLE as a0, SELECTEUR_ENTREE_MENU_CATEGORIES_PRODUITS as b, SELECTEUR_CONTENEUR_STORYTELLING as c, SELECTEUR_IMAGES_STORYTELLING as d, @@ -98,15 +100,15 @@ export { SELECTEUR_SOUS_TOTAL_PRODUITS as n, SELECTEUR_SOUS_TOTAL_LIVRAISON_COUT as o, SELECTEUR_SOUS_TOTAL_LIVRAISON_PRESTATAIRE as p, - SELECTEUR_TOTAL_PANIER as q, - SELECTEUR_BOUTON_SEPARATION_ADRESSES as r, - SELECTEUR_FORMULAIRE_PANIER as s, - SELECTEUR_FORMULAIRE_FACTURATION as t, - SELECTEUR_BOUTON_ACTIONS_FORMULAIRE as u, - ATTRIBUT_CLE_PANIER as v, - SELECTEUR_BOUTON_SOUSTRACTION_QUANTITE as w, - SELECTEUR_CHAMP_QUANTITE_LIGNE_PANIER as x, - SELECTEUR_BOUTON_ADDITION_QUANTITE as y, - SELECTEUR_BOUTON_SUPPRESSION_PANIER as z + SELECTEUR_INSTRUCTIONS_CLIENT as q, + SELECTEUR_TOTAL_PANIER as r, + SELECTEUR_BOUTON_SEPARATION_ADRESSES as s, + SELECTEUR_FORMULAIRE_PANIER as t, + SELECTEUR_FORMULAIRE_FACTURATION as u, + SELECTEUR_BOUTON_ACTIONS_FORMULAIRE as v, + ATTRIBUT_CLE_PANIER as w, + SELECTEUR_BOUTON_SOUSTRACTION_QUANTITE as x, + SELECTEUR_CHAMP_QUANTITE_LIGNE_PANIER as y, + SELECTEUR_BOUTON_ADDITION_QUANTITE as z }; //# sourceMappingURL=dom.js.map diff --git a/web/app/themes/haiku-atelier-2024/assets/js/dom.js.map b/web/app/themes/haiku-atelier-2024/assets/js/dom.js.map index efa97c96..a0ba9c6c 100644 --- a/web/app/themes/haiku-atelier-2024/assets/js/dom.js.map +++ b/web/app/themes/haiku-atelier-2024/assets/js/dom.js.map @@ -1 +1 @@ -{"version":3,"file":"dom.js","sources":["../../src/scripts/constantes/dom.ts"],"sourcesContent":["/** Constantes de valeurs pour la manipulation du DOM : sélecteurs et attributs. */\n\nexport const ATTRIBUT_ARIA_HIDDEN = \"aria-hidden\";\nexport const ATTRIBUT_ARIA_SELECTED = \"aria-selected\";\nexport const ATTRIBUT_CACHE = \"data-cache\";\nexport const ATTRIBUT_CLE_PANIER = \"data-cle-panier\";\nexport const ATTRIBUT_CONTIENT_ARTICLES = \"data-contient-articles\";\nexport const ATTRIBUT_DESACTIVE = \"disabled\";\nexport const ATTRIBUT_HIDDEN = \"hidden\";\nexport const ATTRIBUT_INDEX = \"data-index\";\nexport const ATTRIBUT_MENU_MOBILE_ACTIVE = \"data-menu-mobile-active\";\nexport const ATTRIBUT_PAGE = \"data-page\";\nexport const ATTRIBUT_ID_CATEGORIE_PRODUITS = \"data-id-categorie-produits\";\nexport const ATTRIBUT_ID_ENSEMBLE_EPINGLE_BOITE = \"data-id-ensemble-epingle-boite\";\nexport const ATTRIBUT_ENSEMBLE_EPINGLE_BOITE_ACTIF = \"data-ensemble-epingle-boite-actif\";\nexport const ATTRIBUT_INDEX_IMAGE_ACTIVE = \"data-index-image-active\";\nexport const ATTRIBUT_PRIX = \"data-prix\";\n\n// En-tête\nexport const SELECTEUR_BOUTON_MENU_MOBILE = \"#bouton-menu-mobile\";\nexport const SELECTEUR_BOUTON_PANIER = \".compte-panier a[rel='cart']\";\nexport const SELECTEUR_MENU_MOBILE = \"#menu-mobile\";\nexport const SELECTEUR_MENU_CATEGORIES_PRODUITS = \"#menu-categories-produits\";\nexport const SELECTEUR_ENTREE_MENU_CATEGORIES_PRODUITS = \"#menu-categories-produits ul li a\";\nexport const SELECTEUR_FLECHE_GAUCHE_CATEGORIES_PRODUITS = \"#fleche-defilement-categories-produits-gauche\";\nexport const SELECTEUR_FLECHE_DROITE_CATEGORIES_PRODUITS = \"#fleche-defilement-categories-produits-droite\";\n\n// ???\nexport const SELECTEUR_CONTENEUR_PANIER = \"#page-panier\";\nexport const SELECTEUR_SELECTEUR_QUANTITE = \"#selecteur-variation\";\nexport const SELECTEUR_BOUTON_AJOUT_PANIER = \"#bouton-ajout-panier\";\nexport const SELECTEUR_LIENS_ONGLETS = \"a[role='tab']\";\nexport const SELECTEUR_SECTIONS_CONTENUS = \"section[role='tabpanel']\";\n\n// Panier\nexport const SELECTEUR_ENTREES_PANIER = \"article\";\nexport const SELECTEUR_BOUTON_SUPPRESSION_PANIER = \"button.detail-produit__actions__suppression\";\nexport const SELECTEUR_BOUTON_SOUSTRACTION_QUANTITE = \"button.detail-produit__actions__soustraction\";\nexport const SELECTEUR_BOUTON_ADDITION_QUANTITE = \"button.detail-produit__actions__addition\";\nexport const SELECTEUR_CHAMP_QUANTITE_LIGNE_PANIER = \"input\";\nexport const SELECTEUR_PRIX_LIGNE_PANIER = \".detail-produit__nom-prix span\";\nexport const SELECTEUR_SOUS_TOTAL_PRODUITS = \"#panneau-panier #sous-total-produits strong\";\nexport const SELECTEUR_SOUS_TOTAL_LIVRAISON_COUT = \"#panneau-panier #sous-total-livraison strong\";\nexport const SELECTEUR_SOUS_TOTAL_LIVRAISON_PRESTATAIRE = \"#panneau-panier #sous-total-livraison span\";\nexport const SELECTEUR_TOTAL_PANIER = \"#panneau-panier .panneau__pied-de-page p span\";\nexport const SELECTEUR_BOUTON_SEPARATION_ADRESSES = \"#separation-adresses\";\nexport const SELECTEUR_FORMULAIRE_PANIER = \"#panneau-informations-client form\";\nexport const SELECTEUR_FORMULAIRE_LIVRAISON = \"#panneau-informations-client .panneau__formulaires__livraison\";\nexport const SELECTEUR_FORMULAIRE_FACTURATION = \"#panneau-informations-client .panneau__formulaires__facturation\";\nexport const SELECTEUR_BOUTON_ACTIONS_FORMULAIRE = \"#panneau-informations-client .panneau__pied-de-page button\";\n\n// Accueil\nexport const SELECTEUR_CONTENEUR_STORYTELLING = \".storytelling\";\nexport const SELECTEUR_IMAGES_STORYTELLING = \".storytelling__image\";\n\n// Boutique\nexport const SELECTEUR_GRILLE_PRODUITS = \"#page-boutique .grille-produits\";\nexport const SELECTEUR_BOUTON_PLUS_PRODUITS = \"#page-boutique #bouton-plus-de-produits\";\n\n// À propos\nexport const SELECTEUR_CONTENEUR_STORYTELLING_A_PROPOS = \".storytelling__conteneur\";\nexport const CLASS_EPINGLE = \"epingle\";\nexport const SELECTEUR_EPINGLE = `.${CLASS_EPINGLE}`;\nexport const CLASS_BOITE_TEXTE = \"boite-texte\";\nexport const SELECTEUR_BOITE_TEXTE = `.${CLASS_BOITE_TEXTE}`;\nexport const CLASS_BOUTON_FERMETURE_BOITE_TEXTE = \"boite-texte__bouton-fermeture\";\nexport const SELECTEUR_BOUTON_FERMETURE_BOITE_TEXTE = `.${CLASS_BOUTON_FERMETURE_BOITE_TEXTE}`;\n\n// Produit\nexport const SELECTEUR_PHOTOS_PRODUIT = \".photos-produit\";\nexport const SELECTEUR_CONTENEUR_FLECHES_DEFILEMENT = \".fleches-defilement\";\nexport const SELECTEUR_FLECHE_DEFILEMENT_GAUCHE = \".fleches-defilement__bouton:first-of-type\";\nexport const SELECTEUR_FLECHE_DEFILEMENT_DROITE = \".fleches-defilement__bouton:last-of-type\";\nexport const SELECTEUR_IMAGE_COLONNE_GAUCHE = \".colonne-gauche img\";\nexport const SELECTEUR_IMAGES_COLONNE_DROITE = \".colonne-droite img\";\nexport const SELECTEUR_PRIX_PRODUIT = \".selecteur-produit__prix\";\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;AAExB,MAAM,8BAA8B;AACpC,MAAM,gBAAgB;AACtB,MAAM,iCAAiC;AACvC,MAAM,qCAAqC;AAC3C,MAAM,wCAAwC;AAC9C,MAAM,8BAA8B;AACpC,MAAM,gBAAgB;AAGtB,MAAM,+BAA+B;AACrC,MAAM,0BAA0B;AAChC,MAAM,wBAAwB;AAC9B,MAAM,qCAAqC;AAC3C,MAAM,4CAA4C;AAKlD,MAAM,6BAA6B;AACnC,MAAM,+BAA+B;AACrC,MAAM,gCAAgC;AACtC,MAAM,0BAA0B;AAChC,MAAM,8BAA8B;AAGpC,MAAM,2BAA2B;AACjC,MAAM,sCAAsC;AAC5C,MAAM,yCAAyC;AAC/C,MAAM,qCAAqC;AAC3C,MAAM,wCAAwC;AAC9C,MAAM,8BAA8B;AACpC,MAAM,gCAAgC;AACtC,MAAM,sCAAsC;AAC5C,MAAM,6CAA6C;AACnD,MAAM,yBAAyB;AAC/B,MAAM,uCAAuC;AAC7C,MAAM,8BAA8B;AAEpC,MAAM,mCAAmC;AACzC,MAAM,sCAAsC;AAG5C,MAAM,mCAAmC;AACzC,MAAM,gCAAgC;AAGtC,MAAM,4BAA4B;AAClC,MAAM,iCAAiC;AAGvC,MAAM,4CAA4C;AAClD,MAAM,gBAAgB;AAChB,MAAA,oBAAoB,IAAI,aAAa;AAC3C,MAAM,oBAAoB;AACpB,MAAA,wBAAwB,IAAI,iBAAiB;AACnD,MAAM,qCAAqC;AAI3C,MAAM,2BAA2B;AACjC,MAAM,yCAAyC;AAC/C,MAAM,qCAAqC;AAC3C,MAAM,qCAAqC;AAC3C,MAAM,iCAAiC;AACvC,MAAM,kCAAkC;AACxC,MAAM,yBAAyB;"} \ No newline at end of file +{"version":3,"file":"dom.js","sources":["../../src/scripts/constantes/dom.ts"],"sourcesContent":["/** Constantes de valeurs pour la manipulation du DOM : sélecteurs et attributs. */\n\nexport const ATTRIBUT_ARIA_HIDDEN = \"aria-hidden\";\nexport const ATTRIBUT_ARIA_SELECTED = \"aria-selected\";\nexport const ATTRIBUT_CACHE = \"data-cache\";\nexport const ATTRIBUT_CLE_PANIER = \"data-cle-panier\";\nexport const ATTRIBUT_CONTIENT_ARTICLES = \"data-contient-articles\";\nexport const ATTRIBUT_DESACTIVE = \"disabled\";\nexport const ATTRIBUT_HIDDEN = \"hidden\";\nexport const ATTRIBUT_INDEX = \"data-index\";\nexport const ATTRIBUT_MENU_MOBILE_ACTIVE = \"data-menu-mobile-active\";\nexport const ATTRIBUT_PAGE = \"data-page\";\nexport const ATTRIBUT_ID_CATEGORIE_PRODUITS = \"data-id-categorie-produits\";\nexport const ATTRIBUT_ID_ENSEMBLE_EPINGLE_BOITE = \"data-id-ensemble-epingle-boite\";\nexport const ATTRIBUT_ENSEMBLE_EPINGLE_BOITE_ACTIF = \"data-ensemble-epingle-boite-actif\";\nexport const ATTRIBUT_INDEX_IMAGE_ACTIVE = \"data-index-image-active\";\nexport const ATTRIBUT_PRIX = \"data-prix\";\n\n// En-tête\nexport const SELECTEUR_BOUTON_MENU_MOBILE = \"#bouton-menu-mobile\";\nexport const SELECTEUR_BOUTON_PANIER = \".compte-panier a[rel='cart']\";\nexport const SELECTEUR_MENU_MOBILE = \"#menu-mobile\";\nexport const SELECTEUR_MENU_CATEGORIES_PRODUITS = \"#menu-categories-produits\";\nexport const SELECTEUR_ENTREE_MENU_CATEGORIES_PRODUITS = \"#menu-categories-produits ul li a\";\nexport const SELECTEUR_FLECHE_GAUCHE_CATEGORIES_PRODUITS = \"#fleche-defilement-categories-produits-gauche\";\nexport const SELECTEUR_FLECHE_DROITE_CATEGORIES_PRODUITS = \"#fleche-defilement-categories-produits-droite\";\n\n// ???\nexport const SELECTEUR_CONTENEUR_PANIER = \"#page-panier\";\nexport const SELECTEUR_SELECTEUR_QUANTITE = \"#selecteur-variation\";\nexport const SELECTEUR_BOUTON_AJOUT_PANIER = \"#bouton-ajout-panier\";\nexport const SELECTEUR_LIENS_ONGLETS = \"a[role='tab']\";\nexport const SELECTEUR_SECTIONS_CONTENUS = \"section[role='tabpanel']\";\n\n// Panier\nexport const SELECTEUR_ENTREES_PANIER = \"article\";\nexport const SELECTEUR_BOUTON_SUPPRESSION_PANIER = \"button.detail-produit__actions__suppression\";\nexport const SELECTEUR_BOUTON_SOUSTRACTION_QUANTITE = \"button.detail-produit__actions__soustraction\";\nexport const SELECTEUR_BOUTON_ADDITION_QUANTITE = \"button.detail-produit__actions__addition\";\nexport const SELECTEUR_CHAMP_QUANTITE_LIGNE_PANIER = \"input\";\nexport const SELECTEUR_PRIX_LIGNE_PANIER = \".detail-produit__nom-prix span\";\nexport const SELECTEUR_SOUS_TOTAL_PRODUITS = \"#panneau-panier #sous-total-produits strong\";\nexport const SELECTEUR_SOUS_TOTAL_LIVRAISON_COUT = \"#panneau-panier #sous-total-livraison strong\";\nexport const SELECTEUR_SOUS_TOTAL_LIVRAISON_PRESTATAIRE = \"#panneau-panier #sous-total-livraison span\";\nexport const SELECTEUR_TOTAL_PANIER = \"#panneau-panier .panneau__pied-de-page p span\";\nexport const SELECTEUR_BOUTON_SEPARATION_ADRESSES = \"#separation-adresses\";\nexport const SELECTEUR_FORMULAIRE_PANIER = \"#panneau-informations-client form\";\nexport const SELECTEUR_FORMULAIRE_LIVRAISON = \"#panneau-informations-client .panneau__formulaires__livraison\";\nexport const SELECTEUR_FORMULAIRE_FACTURATION = \"#panneau-informations-client .panneau__formulaires__facturation\";\nexport const SELECTEUR_BOUTON_ACTIONS_FORMULAIRE = \"#panneau-informations-client .panneau__pied-de-page button\";\nexport const SELECTEUR_INSTRUCTIONS_CLIENT = \"#panneau-panier #instructions-client\";\n\n// Accueil\nexport const SELECTEUR_CONTENEUR_STORYTELLING = \".storytelling\";\nexport const SELECTEUR_IMAGES_STORYTELLING = \".storytelling__image\";\n\n// Boutique\nexport const SELECTEUR_GRILLE_PRODUITS = \"#page-boutique .grille-produits\";\nexport const SELECTEUR_BOUTON_PLUS_PRODUITS = \"#page-boutique #bouton-plus-de-produits\";\n\n// À propos\nexport const SELECTEUR_CONTENEUR_STORYTELLING_A_PROPOS = \".storytelling__conteneur\";\nexport const CLASS_EPINGLE = \"epingle\";\nexport const SELECTEUR_EPINGLE = `.${CLASS_EPINGLE}`;\nexport const CLASS_BOITE_TEXTE = \"boite-texte\";\nexport const SELECTEUR_BOITE_TEXTE = `.${CLASS_BOITE_TEXTE}`;\nexport const CLASS_BOUTON_FERMETURE_BOITE_TEXTE = \"boite-texte__bouton-fermeture\";\nexport const SELECTEUR_BOUTON_FERMETURE_BOITE_TEXTE = `.${CLASS_BOUTON_FERMETURE_BOITE_TEXTE}`;\n\n// Produit\nexport const SELECTEUR_PHOTOS_PRODUIT = \".photos-produit\";\nexport const SELECTEUR_CONTENEUR_FLECHES_DEFILEMENT = \".fleches-defilement\";\nexport const SELECTEUR_FLECHE_DEFILEMENT_GAUCHE = \".fleches-defilement__bouton:first-of-type\";\nexport const SELECTEUR_FLECHE_DEFILEMENT_DROITE = \".fleches-defilement__bouton:last-of-type\";\nexport const SELECTEUR_IMAGE_COLONNE_GAUCHE = \".colonne-gauche img\";\nexport const SELECTEUR_IMAGES_COLONNE_DROITE = \".colonne-droite img\";\nexport const SELECTEUR_PRIX_PRODUIT = \".selecteur-produit__prix\";\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;AAExB,MAAM,8BAA8B;AACpC,MAAM,gBAAgB;AACtB,MAAM,iCAAiC;AACvC,MAAM,qCAAqC;AAC3C,MAAM,wCAAwC;AAC9C,MAAM,8BAA8B;AACpC,MAAM,gBAAgB;AAGtB,MAAM,+BAA+B;AACrC,MAAM,0BAA0B;AAChC,MAAM,wBAAwB;AAC9B,MAAM,qCAAqC;AAC3C,MAAM,4CAA4C;AAKlD,MAAM,6BAA6B;AACnC,MAAM,+BAA+B;AACrC,MAAM,gCAAgC;AACtC,MAAM,0BAA0B;AAChC,MAAM,8BAA8B;AAGpC,MAAM,2BAA2B;AACjC,MAAM,sCAAsC;AAC5C,MAAM,yCAAyC;AAC/C,MAAM,qCAAqC;AAC3C,MAAM,wCAAwC;AAC9C,MAAM,8BAA8B;AACpC,MAAM,gCAAgC;AACtC,MAAM,sCAAsC;AAC5C,MAAM,6CAA6C;AACnD,MAAM,yBAAyB;AAC/B,MAAM,uCAAuC;AAC7C,MAAM,8BAA8B;AAEpC,MAAM,mCAAmC;AACzC,MAAM,sCAAsC;AAC5C,MAAM,gCAAgC;AAGtC,MAAM,mCAAmC;AACzC,MAAM,gCAAgC;AAGtC,MAAM,4BAA4B;AAClC,MAAM,iCAAiC;AAGvC,MAAM,4CAA4C;AAClD,MAAM,gBAAgB;AAChB,MAAA,oBAAoB,IAAI,aAAa;AAC3C,MAAM,oBAAoB;AACpB,MAAA,wBAAwB,IAAI,iBAAiB;AACnD,MAAM,qCAAqC;AAI3C,MAAM,2BAA2B;AACjC,MAAM,yCAAyC;AAC/C,MAAM,qCAAqC;AAC3C,MAAM,qCAAqC;AAC3C,MAAM,iCAAiC;AACvC,MAAM,kCAAkC;AACxC,MAAM,yBAAyB;"} \ No newline at end of file diff --git a/web/app/themes/haiku-atelier-2024/assets/js/erreurs2.js b/web/app/themes/haiku-atelier-2024/assets/js/erreurs2.js index 8876d643..e35f5460 100644 --- a/web/app/themes/haiku-atelier-2024/assets/js/erreurs2.js +++ b/web/app/themes/haiku-atelier-2024/assets/js/erreurs2.js @@ -1,4 +1,4 @@ -import { l as is, o as object, n as number, s as string } from "./index.vOxCZRxB.js"; +import { l as is, o as object, n as number, s as string } from "./index.CXGAS3st.js"; const WCErrorBodySchema = object({ code: string(), data: object({ diff --git a/web/app/themes/haiku-atelier-2024/assets/js/index.vOxCZRxB.js b/web/app/themes/haiku-atelier-2024/assets/js/index.CXGAS3st.js similarity index 98% rename from web/app/themes/haiku-atelier-2024/assets/js/index.vOxCZRxB.js rename to web/app/themes/haiku-atelier-2024/assets/js/index.CXGAS3st.js index 9900ee68..bf5d6761 100644 --- a/web/app/themes/haiku-atelier-2024/assets/js/index.vOxCZRxB.js +++ b/web/app/themes/haiku-atelier-2024/assets/js/index.CXGAS3st.js @@ -558,7 +558,13 @@ function omit(schema, keys) { for (const key of keys) { delete entries[key]; } - return { ...schema, entries }; + return { + ...schema, + entries, + get "~standard"() { + return _getStandardProps(this); + } + }; } function parse(schema, input, config2) { const dataset = schema["~run"]({ value: input }, getGlobalConfig(config2)); @@ -571,6 +577,9 @@ function pipe(...pipe2) { return { ...pipe2[0], pipe: pipe2, + get "~standard"() { + return _getStandardProps(this); + }, "~run"(dataset, config2) { for (const item of pipe2) { if (item.kind !== "metadata") { @@ -609,4 +618,4 @@ export { unknown as u, value as v }; -//# sourceMappingURL=index.vOxCZRxB.js.map +//# sourceMappingURL=index.CXGAS3st.js.map diff --git a/web/app/themes/haiku-atelier-2024/assets/js/index.CXGAS3st.js.map b/web/app/themes/haiku-atelier-2024/assets/js/index.CXGAS3st.js.map new file mode 100644 index 00000000..24d41d04 --- /dev/null +++ b/web/app/themes/haiku-atelier-2024/assets/js/index.CXGAS3st.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.CXGAS3st.js","sources":["../../../../../../node_modules/.pnpm/valibot@1.0.0-beta.7_typescript@5.7.0-dev.20241105/node_modules/valibot/dist/index.js"],"sourcesContent":["// src/storages/globalConfig/globalConfig.ts\nvar store;\nfunction setGlobalConfig(config2) {\n store = { ...store, ...config2 };\n}\nfunction getGlobalConfig(config2) {\n return {\n lang: config2?.lang ?? store?.lang,\n message: config2?.message,\n abortEarly: config2?.abortEarly ?? store?.abortEarly,\n abortPipeEarly: config2?.abortPipeEarly ?? store?.abortPipeEarly\n };\n}\nfunction deleteGlobalConfig() {\n store = void 0;\n}\n\n// src/storages/globalMessage/globalMessage.ts\nvar store2;\nfunction setGlobalMessage(message, lang) {\n if (!store2) store2 = /* @__PURE__ */ new Map();\n store2.set(lang, message);\n}\nfunction getGlobalMessage(lang) {\n return store2?.get(lang);\n}\nfunction deleteGlobalMessage(lang) {\n store2?.delete(lang);\n}\n\n// src/storages/schemaMessage/schemaMessage.ts\nvar store3;\nfunction setSchemaMessage(message, lang) {\n if (!store3) store3 = /* @__PURE__ */ new Map();\n store3.set(lang, message);\n}\nfunction getSchemaMessage(lang) {\n return store3?.get(lang);\n}\nfunction deleteSchemaMessage(lang) {\n store3?.delete(lang);\n}\n\n// src/storages/specificMessage/specificMessage.ts\nvar store4;\nfunction setSpecificMessage(reference, message, lang) {\n if (!store4) store4 = /* @__PURE__ */ new Map();\n if (!store4.get(reference)) store4.set(reference, /* @__PURE__ */ new Map());\n store4.get(reference).set(lang, message);\n}\nfunction getSpecificMessage(reference, lang) {\n return store4?.get(reference)?.get(lang);\n}\nfunction deleteSpecificMessage(reference, lang) {\n store4?.get(reference)?.delete(lang);\n}\n\n// src/utils/_stringify/_stringify.ts\nfunction _stringify(input) {\n const type = typeof input;\n if (type === \"string\") {\n return `\"${input}\"`;\n }\n if (type === \"number\" || type === \"bigint\" || type === \"boolean\") {\n return `${input}`;\n }\n if (type === \"object\" || type === \"function\") {\n return (input && Object.getPrototypeOf(input)?.constructor?.name) ?? \"null\";\n }\n return type;\n}\n\n// src/utils/_addIssue/_addIssue.ts\nfunction _addIssue(context, label, dataset, config2, other) {\n const input = other && \"input\" in other ? other.input : dataset.value;\n const expected = other?.expected ?? context.expects ?? null;\n const received = other?.received ?? _stringify(input);\n const issue = {\n kind: context.kind,\n type: context.type,\n input,\n expected,\n received,\n message: `Invalid ${label}: ${expected ? `Expected ${expected} but r` : \"R\"}eceived ${received}`,\n requirement: context.requirement,\n path: other?.path,\n issues: other?.issues,\n lang: config2.lang,\n abortEarly: config2.abortEarly,\n abortPipeEarly: config2.abortPipeEarly\n };\n const isSchema = context.kind === \"schema\";\n const message = other?.message ?? context.message ?? getSpecificMessage(context.reference, issue.lang) ?? (isSchema ? getSchemaMessage(issue.lang) : null) ?? config2.message ?? getGlobalMessage(issue.lang);\n if (message) {\n issue.message = typeof message === \"function\" ? (\n // @ts-expect-error\n message(issue)\n ) : message;\n }\n if (isSchema) {\n dataset.typed = false;\n }\n if (dataset.issues) {\n dataset.issues.push(issue);\n } else {\n dataset.issues = [issue];\n }\n}\n\n// src/utils/_getByteCount/_getByteCount.ts\nvar textEncoder;\nfunction _getByteCount(input) {\n if (!textEncoder) {\n textEncoder = new TextEncoder();\n }\n return textEncoder.encode(input).length;\n}\n\n// src/utils/_getGraphemeCount/_getGraphemeCount.ts\nvar segmenter;\nfunction _getGraphemeCount(input) {\n if (!segmenter) {\n segmenter = new Intl.Segmenter();\n }\n const segments = segmenter.segment(input);\n let count = 0;\n for (const _ of segments) {\n count++;\n }\n return count;\n}\n\n// src/utils/_getStandardProps/_getStandardProps.ts\nfunction _getStandardProps(context) {\n return {\n version: 1,\n vendor: \"valibot\",\n validate(value2) {\n return context[\"~run\"]({ value: value2 }, getGlobalConfig());\n }\n };\n}\n\n// src/utils/_getWordCount/_getWordCount.ts\nvar store5;\nfunction _getWordCount(locales, input) {\n if (!store5) {\n store5 = /* @__PURE__ */ new Map();\n }\n if (!store5.get(locales)) {\n store5.set(locales, new Intl.Segmenter(locales, { granularity: \"word\" }));\n }\n const segments = store5.get(locales).segment(input);\n let count = 0;\n for (const segment of segments) {\n if (segment.isWordLike) {\n count++;\n }\n }\n return count;\n}\n\n// src/utils/_isLuhnAlgo/_isLuhnAlgo.ts\nvar NON_DIGIT_REGEX = /\\D/gu;\nfunction _isLuhnAlgo(input) {\n const number2 = input.replace(NON_DIGIT_REGEX, \"\");\n let length2 = number2.length;\n let bit = 1;\n let sum = 0;\n while (length2) {\n const value2 = +number2[--length2];\n bit ^= 1;\n sum += bit ? [0, 2, 4, 6, 8, 1, 3, 5, 7, 9][value2] : value2;\n }\n return sum % 10 === 0;\n}\n\n// src/utils/_isValidObjectKey/_isValidObjectKey.ts\nfunction _isValidObjectKey(object2, key) {\n return Object.hasOwn(object2, key) && key !== \"__proto__\" && key !== \"prototype\" && key !== \"constructor\";\n}\n\n// src/utils/_joinExpects/_joinExpects.ts\nfunction _joinExpects(values, separator) {\n const list = [...new Set(values)];\n if (list.length > 1) {\n return `(${list.join(` ${separator} `)})`;\n }\n return list[0] ?? \"never\";\n}\n\n// src/utils/entriesFromList/entriesFromList.ts\nfunction entriesFromList(list, schema) {\n const entries = {};\n for (const key of list) {\n entries[key] = schema;\n }\n return entries;\n}\n\n// src/utils/getDotPath/getDotPath.ts\nfunction getDotPath(issue) {\n if (issue.path) {\n let key = \"\";\n for (const item of issue.path) {\n if (typeof item.key === \"string\" || typeof item.key === \"number\") {\n if (key) {\n key += `.${item.key}`;\n } else {\n key += item.key;\n }\n } else {\n return null;\n }\n }\n return key;\n }\n return null;\n}\n\n// src/utils/isOfKind/isOfKind.ts\nfunction isOfKind(kind, object2) {\n return object2.kind === kind;\n}\n\n// src/utils/isOfType/isOfType.ts\nfunction isOfType(type, object2) {\n return object2.type === type;\n}\n\n// src/utils/isValiError/isValiError.ts\nfunction isValiError(error) {\n return error instanceof ValiError;\n}\n\n// src/utils/ValiError/ValiError.ts\nvar ValiError = class extends Error {\n /**\n * The error issues.\n */\n issues;\n /**\n * Creates a Valibot error with useful information.\n *\n * @param issues The error issues.\n */\n constructor(issues) {\n super(issues[0].message);\n this.name = \"ValiError\";\n this.issues = issues;\n }\n};\n\n// src/actions/args/args.ts\nfunction args(schema) {\n return {\n kind: \"transformation\",\n type: \"args\",\n reference: args,\n async: false,\n schema,\n \"~run\"(dataset, config2) {\n const func = dataset.value;\n dataset.value = (...args_) => {\n const argsDataset = this.schema[\"~run\"]({ value: args_ }, config2);\n if (argsDataset.issues) {\n throw new ValiError(argsDataset.issues);\n }\n return func(...argsDataset.value);\n };\n return dataset;\n }\n };\n}\n\n// src/actions/args/argsAsync.ts\nfunction argsAsync(schema) {\n return {\n kind: \"transformation\",\n type: \"args\",\n reference: argsAsync,\n async: false,\n schema,\n \"~run\"(dataset, config2) {\n const func = dataset.value;\n dataset.value = async (...args2) => {\n const argsDataset = await schema[\"~run\"]({ value: args2 }, config2);\n if (argsDataset.issues) {\n throw new ValiError(argsDataset.issues);\n }\n return func(...argsDataset.value);\n };\n return dataset;\n }\n };\n}\n\n// src/actions/await/awaitAsync.ts\nfunction awaitAsync() {\n return {\n kind: \"transformation\",\n type: \"await\",\n reference: awaitAsync,\n async: true,\n async \"~run\"(dataset) {\n dataset.value = await dataset.value;\n return dataset;\n }\n };\n}\n\n// src/regex.ts\nvar BASE64_REGEX = /^(?:[\\da-z+/]{4})*(?:[\\da-z+/]{2}==|[\\da-z+/]{3}=)?$/iu;\nvar BIC_REGEX = /^[A-Z]{6}(?!00)[\\dA-Z]{2}(?:[\\dA-Z]{3})?$/u;\nvar CUID2_REGEX = /^[a-z][\\da-z]*$/u;\nvar DECIMAL_REGEX = /^[+-]?\\d+(?:\\.\\d+)?$/u;\nvar DIGITS_REGEX = /^\\d+$/u;\nvar EMAIL_REGEX = /^[\\w+-]+(?:\\.[\\w+-]+)*@[\\da-z]+(?:[.-][\\da-z]+)*\\.[a-z]{2,}$/iu;\nvar EMOJI_REGEX = (\n // eslint-disable-next-line redos-detector/no-unsafe-regex, regexp/no-dupe-disjunctions -- false positives\n /^(?:[\\u{1F1E6}-\\u{1F1FF}]{2}|\\u{1F3F4}[\\u{E0061}-\\u{E007A}]{2}[\\u{E0030}-\\u{E0039}\\u{E0061}-\\u{E007A}]{1,3}\\u{E007F}|(?:\\p{Emoji}\\uFE0F\\u20E3?|\\p{Emoji_Modifier_Base}\\p{Emoji_Modifier}?|\\p{Emoji_Presentation})(?:\\u200D(?:\\p{Emoji}\\uFE0F\\u20E3?|\\p{Emoji_Modifier_Base}\\p{Emoji_Modifier}?|\\p{Emoji_Presentation}))*)+$/u\n);\nvar HEXADECIMAL_REGEX = /^(?:0[hx])?[\\da-f]+$/iu;\nvar HEX_COLOR_REGEX = /^#(?:[\\da-f]{3,4}|[\\da-f]{6}|[\\da-f]{8})$/iu;\nvar IMEI_REGEX = /^\\d{15}$|^\\d{2}-\\d{6}-\\d{6}-\\d$/u;\nvar IPV4_REGEX = (\n // eslint-disable-next-line redos-detector/no-unsafe-regex -- false positive\n /^(?:(?:[1-9]|1\\d|2[0-4])?\\d|25[0-5])(?:\\.(?:(?:[1-9]|1\\d|2[0-4])?\\d|25[0-5])){3}$/u\n);\nvar IPV6_REGEX = /^(?:(?:[\\da-f]{1,4}:){7}[\\da-f]{1,4}|(?:[\\da-f]{1,4}:){1,7}:|(?:[\\da-f]{1,4}:){1,6}:[\\da-f]{1,4}|(?:[\\da-f]{1,4}:){1,5}(?::[\\da-f]{1,4}){1,2}|(?:[\\da-f]{1,4}:){1,4}(?::[\\da-f]{1,4}){1,3}|(?:[\\da-f]{1,4}:){1,3}(?::[\\da-f]{1,4}){1,4}|(?:[\\da-f]{1,4}:){1,2}(?::[\\da-f]{1,4}){1,5}|[\\da-f]{1,4}:(?::[\\da-f]{1,4}){1,6}|:(?:(?::[\\da-f]{1,4}){1,7}|:)|fe80:(?::[\\da-f]{0,4}){0,4}%[\\da-z]+|::(?:f{4}(?::0{1,4})?:)?(?:(?:25[0-5]|(?:2[0-4]|1?\\d)?\\d)\\.){3}(?:25[0-5]|(?:2[0-4]|1?\\d)?\\d)|(?:[\\da-f]{1,4}:){1,4}:(?:(?:25[0-5]|(?:2[0-4]|1?\\d)?\\d)\\.){3}(?:25[0-5]|(?:2[0-4]|1?\\d)?\\d))$/iu;\nvar IP_REGEX = /^(?:(?:[1-9]|1\\d|2[0-4])?\\d|25[0-5])(?:\\.(?:(?:[1-9]|1\\d|2[0-4])?\\d|25[0-5])){3}$|^(?:(?:[\\da-f]{1,4}:){7}[\\da-f]{1,4}|(?:[\\da-f]{1,4}:){1,7}:|(?:[\\da-f]{1,4}:){1,6}:[\\da-f]{1,4}|(?:[\\da-f]{1,4}:){1,5}(?::[\\da-f]{1,4}){1,2}|(?:[\\da-f]{1,4}:){1,4}(?::[\\da-f]{1,4}){1,3}|(?:[\\da-f]{1,4}:){1,3}(?::[\\da-f]{1,4}){1,4}|(?:[\\da-f]{1,4}:){1,2}(?::[\\da-f]{1,4}){1,5}|[\\da-f]{1,4}:(?::[\\da-f]{1,4}){1,6}|:(?:(?::[\\da-f]{1,4}){1,7}|:)|fe80:(?::[\\da-f]{0,4}){0,4}%[\\da-z]+|::(?:f{4}(?::0{1,4})?:)?(?:(?:25[0-5]|(?:2[0-4]|1?\\d)?\\d)\\.){3}(?:25[0-5]|(?:2[0-4]|1?\\d)?\\d)|(?:[\\da-f]{1,4}:){1,4}:(?:(?:25[0-5]|(?:2[0-4]|1?\\d)?\\d)\\.){3}(?:25[0-5]|(?:2[0-4]|1?\\d)?\\d))$/iu;\nvar ISO_DATE_REGEX = /^\\d{4}-(?:0[1-9]|1[0-2])-(?:[12]\\d|0[1-9]|3[01])$/u;\nvar ISO_DATE_TIME_REGEX = /^\\d{4}-(?:0[1-9]|1[0-2])-(?:[12]\\d|0[1-9]|3[01])T(?:0\\d|1\\d|2[0-3]):[0-5]\\d$/u;\nvar ISO_TIME_REGEX = /^(?:0\\d|1\\d|2[0-3]):[0-5]\\d$/u;\nvar ISO_TIME_SECOND_REGEX = /^(?:0\\d|1\\d|2[0-3])(?::[0-5]\\d){2}$/u;\nvar ISO_TIMESTAMP_REGEX = /^\\d{4}-(?:0[1-9]|1[0-2])-(?:[12]\\d|0[1-9]|3[01])T(?:0\\d|1\\d|2[0-3])(?::[0-5]\\d){2}(?:\\.\\d{1,9})?(?:Z|[+-](?:0\\d|1\\d|2[0-3])(?::?[0-5]\\d)?)$/u;\nvar ISO_WEEK_REGEX = /^\\d{4}-W(?:0[1-9]|[1-4]\\d|5[0-3])$/u;\nvar MAC48_REGEX = /^(?:[\\da-f]{2}:){5}[\\da-f]{2}$|^(?:[\\da-f]{2}-){5}[\\da-f]{2}$|^(?:[\\da-f]{4}\\.){2}[\\da-f]{4}$/iu;\nvar MAC64_REGEX = /^(?:[\\da-f]{2}:){7}[\\da-f]{2}$|^(?:[\\da-f]{2}-){7}[\\da-f]{2}$|^(?:[\\da-f]{4}\\.){3}[\\da-f]{4}$|^(?:[\\da-f]{4}:){3}[\\da-f]{4}$/iu;\nvar MAC_REGEX = /^(?:[\\da-f]{2}:){5}[\\da-f]{2}$|^(?:[\\da-f]{2}-){5}[\\da-f]{2}$|^(?:[\\da-f]{4}\\.){2}[\\da-f]{4}$|^(?:[\\da-f]{2}:){7}[\\da-f]{2}$|^(?:[\\da-f]{2}-){7}[\\da-f]{2}$|^(?:[\\da-f]{4}\\.){3}[\\da-f]{4}$|^(?:[\\da-f]{4}:){3}[\\da-f]{4}$/iu;\nvar NANO_ID_REGEX = /^[\\w-]+$/u;\nvar OCTAL_REGEX = /^(?:0o)?[0-7]+$/iu;\nvar ULID_REGEX = /^[\\da-hjkmnp-tv-z]{26}$/iu;\nvar UUID_REGEX = /^[\\da-f]{8}(?:-[\\da-f]{4}){3}-[\\da-f]{12}$/iu;\n\n// src/actions/base64/base64.ts\nfunction base64(message) {\n return {\n kind: \"validation\",\n type: \"base64\",\n reference: base64,\n async: false,\n expects: null,\n requirement: BASE64_REGEX,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed && !this.requirement.test(dataset.value)) {\n _addIssue(this, \"Base64\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/bic/bic.ts\nfunction bic(message) {\n return {\n kind: \"validation\",\n type: \"bic\",\n reference: bic,\n async: false,\n expects: null,\n requirement: BIC_REGEX,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed && !this.requirement.test(dataset.value)) {\n _addIssue(this, \"BIC\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/brand/brand.ts\nfunction brand(name) {\n return {\n kind: \"transformation\",\n type: \"brand\",\n reference: brand,\n async: false,\n name,\n \"~run\"(dataset) {\n return dataset;\n }\n };\n}\n\n// src/actions/bytes/bytes.ts\nfunction bytes(requirement, message) {\n return {\n kind: \"validation\",\n type: \"bytes\",\n reference: bytes,\n async: false,\n expects: `${requirement}`,\n requirement,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed) {\n const length2 = _getByteCount(dataset.value);\n if (length2 !== this.requirement) {\n _addIssue(this, \"bytes\", dataset, config2, {\n received: `${length2}`\n });\n }\n }\n return dataset;\n }\n };\n}\n\n// src/actions/check/check.ts\nfunction check(requirement, message) {\n return {\n kind: \"validation\",\n type: \"check\",\n reference: check,\n async: false,\n expects: null,\n requirement,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed && !this.requirement(dataset.value)) {\n _addIssue(this, \"input\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/check/checkAsync.ts\nfunction checkAsync(requirement, message) {\n return {\n kind: \"validation\",\n type: \"check\",\n reference: checkAsync,\n async: true,\n expects: null,\n requirement,\n message,\n async \"~run\"(dataset, config2) {\n if (dataset.typed && !await this.requirement(dataset.value)) {\n _addIssue(this, \"input\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/checkItems/checkItems.ts\nfunction checkItems(requirement, message) {\n return {\n kind: \"validation\",\n type: \"check_items\",\n reference: checkItems,\n async: false,\n expects: null,\n requirement,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed) {\n for (let index = 0; index < dataset.value.length; index++) {\n const item = dataset.value[index];\n if (!this.requirement(item, index, dataset.value)) {\n _addIssue(this, \"item\", dataset, config2, {\n input: item,\n path: [\n {\n type: \"array\",\n origin: \"value\",\n input: dataset.value,\n key: index,\n value: item\n }\n ]\n });\n }\n }\n }\n return dataset;\n }\n };\n}\n\n// src/actions/checkItems/checkItemsAsync.ts\nfunction checkItemsAsync(requirement, message) {\n return {\n kind: \"validation\",\n type: \"check_items\",\n reference: checkItemsAsync,\n async: true,\n expects: null,\n requirement,\n message,\n async \"~run\"(dataset, config2) {\n if (dataset.typed) {\n const requirementResults = await Promise.all(\n dataset.value.map(this.requirement)\n );\n for (let index = 0; index < dataset.value.length; index++) {\n if (!requirementResults[index]) {\n const item = dataset.value[index];\n _addIssue(this, \"item\", dataset, config2, {\n input: item,\n path: [\n {\n type: \"array\",\n origin: \"value\",\n input: dataset.value,\n key: index,\n value: item\n }\n ]\n });\n }\n }\n }\n return dataset;\n }\n };\n}\n\n// src/actions/creditCard/creditCard.ts\nvar CREDIT_CARD_REGEX = /^(?:\\d{14,19}|\\d{4}(?: \\d{3,6}){2,4}|\\d{4}(?:-\\d{3,6}){2,4})$/u;\nvar SANITIZE_REGEX = /[- ]/gu;\nvar PROVIDER_REGEX_LIST = [\n // American Express\n /^3[47]\\d{13}$/u,\n // Diners Club\n /^3(?:0[0-5]|[68]\\d)\\d{11,13}$/u,\n // Discover\n /^6(?:011|5\\d{2})\\d{12,15}$/u,\n // JCB\n /^(?:2131|1800|35\\d{3})\\d{11}$/u,\n // Mastercard\n /^5[1-5]\\d{2}|(?:222\\d|22[3-9]\\d|2[3-6]\\d{2}|27[01]\\d|2720)\\d{12}$/u,\n // UnionPay\n /^(?:6[27]\\d{14,17}|81\\d{14,17})$/u,\n // Visa\n /^4\\d{12}(?:\\d{3,6})?$/u\n];\nfunction creditCard(message) {\n return {\n kind: \"validation\",\n type: \"credit_card\",\n reference: creditCard,\n async: false,\n expects: null,\n requirement(input) {\n let sanitized;\n return CREDIT_CARD_REGEX.test(input) && // Remove any hyphens and blanks\n (sanitized = input.replace(SANITIZE_REGEX, \"\")) && // Check if it matches a provider\n PROVIDER_REGEX_LIST.some((regex2) => regex2.test(sanitized)) && // Check if passes luhn algorithm\n _isLuhnAlgo(sanitized);\n },\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed && !this.requirement(dataset.value)) {\n _addIssue(this, \"credit card\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/cuid2/cuid2.ts\nfunction cuid2(message) {\n return {\n kind: \"validation\",\n type: \"cuid2\",\n reference: cuid2,\n async: false,\n expects: null,\n requirement: CUID2_REGEX,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed && !this.requirement.test(dataset.value)) {\n _addIssue(this, \"Cuid2\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/decimal/decimal.ts\nfunction decimal(message) {\n return {\n kind: \"validation\",\n type: \"decimal\",\n reference: decimal,\n async: false,\n expects: null,\n requirement: DECIMAL_REGEX,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed && !this.requirement.test(dataset.value)) {\n _addIssue(this, \"decimal\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/description/description.ts\nfunction description(description_) {\n return {\n kind: \"metadata\",\n type: \"description\",\n reference: description,\n description: description_\n };\n}\n\n// src/actions/digits/digits.ts\nfunction digits(message) {\n return {\n kind: \"validation\",\n type: \"digits\",\n reference: digits,\n async: false,\n expects: null,\n requirement: DIGITS_REGEX,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed && !this.requirement.test(dataset.value)) {\n _addIssue(this, \"digits\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/email/email.ts\nfunction email(message) {\n return {\n kind: \"validation\",\n type: \"email\",\n reference: email,\n expects: null,\n async: false,\n requirement: EMAIL_REGEX,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed && !this.requirement.test(dataset.value)) {\n _addIssue(this, \"email\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/emoji/emoji.ts\nfunction emoji(message) {\n return {\n kind: \"validation\",\n type: \"emoji\",\n reference: emoji,\n async: false,\n expects: null,\n requirement: EMOJI_REGEX,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed && !this.requirement.test(dataset.value)) {\n _addIssue(this, \"emoji\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/empty/empty.ts\nfunction empty(message) {\n return {\n kind: \"validation\",\n type: \"empty\",\n reference: empty,\n async: false,\n expects: \"0\",\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed && dataset.value.length > 0) {\n _addIssue(this, \"length\", dataset, config2, {\n received: `${dataset.value.length}`\n });\n }\n return dataset;\n }\n };\n}\n\n// src/actions/endsWith/endsWith.ts\nfunction endsWith(requirement, message) {\n return {\n kind: \"validation\",\n type: \"ends_with\",\n reference: endsWith,\n async: false,\n expects: `\"${requirement}\"`,\n requirement,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed && !dataset.value.endsWith(this.requirement)) {\n _addIssue(this, \"end\", dataset, config2, {\n received: `\"${dataset.value.slice(-this.requirement.length)}\"`\n });\n }\n return dataset;\n }\n };\n}\n\n// src/actions/everyItem/everyItem.ts\nfunction everyItem(requirement, message) {\n return {\n kind: \"validation\",\n type: \"every_item\",\n reference: everyItem,\n async: false,\n expects: null,\n requirement,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed && !dataset.value.every(this.requirement)) {\n _addIssue(this, \"item\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/excludes/excludes.ts\nfunction excludes(requirement, message) {\n const received = _stringify(requirement);\n return {\n kind: \"validation\",\n type: \"excludes\",\n reference: excludes,\n async: false,\n expects: `!${received}`,\n requirement,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed && dataset.value.includes(this.requirement)) {\n _addIssue(this, \"content\", dataset, config2, { received });\n }\n return dataset;\n }\n };\n}\n\n// src/actions/filterItems/filterItems.ts\nfunction filterItems(operation) {\n return {\n kind: \"transformation\",\n type: \"filter_items\",\n reference: filterItems,\n async: false,\n operation,\n \"~run\"(dataset) {\n dataset.value = dataset.value.filter(this.operation);\n return dataset;\n }\n };\n}\n\n// src/actions/findItem/findItem.ts\nfunction findItem(operation) {\n return {\n kind: \"transformation\",\n type: \"find_item\",\n reference: findItem,\n async: false,\n operation,\n \"~run\"(dataset) {\n dataset.value = dataset.value.find(this.operation);\n return dataset;\n }\n };\n}\n\n// src/actions/finite/finite.ts\nfunction finite(message) {\n return {\n kind: \"validation\",\n type: \"finite\",\n reference: finite,\n async: false,\n expects: null,\n requirement: Number.isFinite,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed && !this.requirement(dataset.value)) {\n _addIssue(this, \"finite\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/graphemes/graphemes.ts\nfunction graphemes(requirement, message) {\n return {\n kind: \"validation\",\n type: \"graphemes\",\n reference: graphemes,\n async: false,\n expects: `${requirement}`,\n requirement,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed) {\n const count = _getGraphemeCount(dataset.value);\n if (count !== this.requirement) {\n _addIssue(this, \"graphemes\", dataset, config2, {\n received: `${count}`\n });\n }\n }\n return dataset;\n }\n };\n}\n\n// src/actions/hash/hash.ts\nvar HASH_LENGTHS = {\n md4: 32,\n md5: 32,\n sha1: 40,\n sha256: 64,\n sha384: 96,\n sha512: 128,\n ripemd128: 32,\n ripemd160: 40,\n tiger128: 32,\n tiger160: 40,\n tiger192: 48,\n crc32: 8,\n crc32b: 8,\n adler32: 8\n};\nfunction hash(types, message) {\n return {\n kind: \"validation\",\n type: \"hash\",\n reference: hash,\n expects: null,\n async: false,\n requirement: RegExp(\n types.map((type) => `^[a-f0-9]{${HASH_LENGTHS[type]}}$`).join(\"|\"),\n \"iu\"\n ),\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed && !this.requirement.test(dataset.value)) {\n _addIssue(this, \"hash\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/hexadecimal/hexadecimal.ts\nfunction hexadecimal(message) {\n return {\n kind: \"validation\",\n type: \"hexadecimal\",\n reference: hexadecimal,\n async: false,\n expects: null,\n requirement: HEXADECIMAL_REGEX,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed && !this.requirement.test(dataset.value)) {\n _addIssue(this, \"hexadecimal\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/hexColor/hexColor.ts\nfunction hexColor(message) {\n return {\n kind: \"validation\",\n type: \"hex_color\",\n reference: hexColor,\n async: false,\n expects: null,\n requirement: HEX_COLOR_REGEX,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed && !this.requirement.test(dataset.value)) {\n _addIssue(this, \"hex color\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/imei/imei.ts\nfunction imei(message) {\n return {\n kind: \"validation\",\n type: \"imei\",\n reference: imei,\n async: false,\n expects: null,\n requirement(input) {\n return IMEI_REGEX.test(input) && _isLuhnAlgo(input);\n },\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed && !this.requirement(dataset.value)) {\n _addIssue(this, \"IMEI\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/includes/includes.ts\nfunction includes(requirement, message) {\n const expects = _stringify(requirement);\n return {\n kind: \"validation\",\n type: \"includes\",\n reference: includes,\n async: false,\n expects,\n requirement,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed && !dataset.value.includes(this.requirement)) {\n _addIssue(this, \"content\", dataset, config2, {\n received: `!${expects}`\n });\n }\n return dataset;\n }\n };\n}\n\n// src/actions/integer/integer.ts\nfunction integer(message) {\n return {\n kind: \"validation\",\n type: \"integer\",\n reference: integer,\n async: false,\n expects: null,\n requirement: Number.isInteger,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed && !this.requirement(dataset.value)) {\n _addIssue(this, \"integer\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/ip/ip.ts\nfunction ip(message) {\n return {\n kind: \"validation\",\n type: \"ip\",\n reference: ip,\n async: false,\n expects: null,\n requirement: IP_REGEX,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed && !this.requirement.test(dataset.value)) {\n _addIssue(this, \"IP\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/ipv4/ipv4.ts\nfunction ipv4(message) {\n return {\n kind: \"validation\",\n type: \"ipv4\",\n reference: ipv4,\n async: false,\n expects: null,\n requirement: IPV4_REGEX,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed && !this.requirement.test(dataset.value)) {\n _addIssue(this, \"IPv4\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/ipv6/ipv6.ts\nfunction ipv6(message) {\n return {\n kind: \"validation\",\n type: \"ipv6\",\n reference: ipv6,\n async: false,\n expects: null,\n requirement: IPV6_REGEX,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed && !this.requirement.test(dataset.value)) {\n _addIssue(this, \"IPv6\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/isoDate/isoDate.ts\nfunction isoDate(message) {\n return {\n kind: \"validation\",\n type: \"iso_date\",\n reference: isoDate,\n async: false,\n expects: null,\n requirement: ISO_DATE_REGEX,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed && !this.requirement.test(dataset.value)) {\n _addIssue(this, \"date\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/isoDateTime/isoDateTime.ts\nfunction isoDateTime(message) {\n return {\n kind: \"validation\",\n type: \"iso_date_time\",\n reference: isoDateTime,\n async: false,\n expects: null,\n requirement: ISO_DATE_TIME_REGEX,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed && !this.requirement.test(dataset.value)) {\n _addIssue(this, \"date-time\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/isoTime/isoTime.ts\nfunction isoTime(message) {\n return {\n kind: \"validation\",\n type: \"iso_time\",\n reference: isoTime,\n async: false,\n expects: null,\n requirement: ISO_TIME_REGEX,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed && !this.requirement.test(dataset.value)) {\n _addIssue(this, \"time\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/isoTimeSecond/isoTimeSecond.ts\nfunction isoTimeSecond(message) {\n return {\n kind: \"validation\",\n type: \"iso_time_second\",\n reference: isoTimeSecond,\n async: false,\n expects: null,\n requirement: ISO_TIME_SECOND_REGEX,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed && !this.requirement.test(dataset.value)) {\n _addIssue(this, \"time-second\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/isoTimestamp/isoTimestamp.ts\nfunction isoTimestamp(message) {\n return {\n kind: \"validation\",\n type: \"iso_timestamp\",\n reference: isoTimestamp,\n async: false,\n expects: null,\n requirement: ISO_TIMESTAMP_REGEX,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed && !this.requirement.test(dataset.value)) {\n _addIssue(this, \"timestamp\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/isoWeek/isoWeek.ts\nfunction isoWeek(message) {\n return {\n kind: \"validation\",\n type: \"iso_week\",\n reference: isoWeek,\n async: false,\n expects: null,\n requirement: ISO_WEEK_REGEX,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed && !this.requirement.test(dataset.value)) {\n _addIssue(this, \"week\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/length/length.ts\nfunction length(requirement, message) {\n return {\n kind: \"validation\",\n type: \"length\",\n reference: length,\n async: false,\n expects: `${requirement}`,\n requirement,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed && dataset.value.length !== this.requirement) {\n _addIssue(this, \"length\", dataset, config2, {\n received: `${dataset.value.length}`\n });\n }\n return dataset;\n }\n };\n}\n\n// src/actions/mac/mac.ts\nfunction mac(message) {\n return {\n kind: \"validation\",\n type: \"mac\",\n reference: mac,\n async: false,\n expects: null,\n requirement: MAC_REGEX,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed && !this.requirement.test(dataset.value)) {\n _addIssue(this, \"MAC\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/mac48/mac48.ts\nfunction mac48(message) {\n return {\n kind: \"validation\",\n type: \"mac48\",\n reference: mac48,\n async: false,\n expects: null,\n requirement: MAC48_REGEX,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed && !this.requirement.test(dataset.value)) {\n _addIssue(this, \"48-bit MAC\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/mac64/mac64.ts\nfunction mac64(message) {\n return {\n kind: \"validation\",\n type: \"mac64\",\n reference: mac64,\n async: false,\n expects: null,\n requirement: MAC64_REGEX,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed && !this.requirement.test(dataset.value)) {\n _addIssue(this, \"64-bit MAC\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/mapItems/mapItems.ts\nfunction mapItems(operation) {\n return {\n kind: \"transformation\",\n type: \"map_items\",\n reference: mapItems,\n async: false,\n operation,\n \"~run\"(dataset) {\n dataset.value = dataset.value.map(this.operation);\n return dataset;\n }\n };\n}\n\n// src/actions/maxBytes/maxBytes.ts\nfunction maxBytes(requirement, message) {\n return {\n kind: \"validation\",\n type: \"max_bytes\",\n reference: maxBytes,\n async: false,\n expects: `<=${requirement}`,\n requirement,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed) {\n const length2 = _getByteCount(dataset.value);\n if (length2 > this.requirement) {\n _addIssue(this, \"bytes\", dataset, config2, {\n received: `${length2}`\n });\n }\n }\n return dataset;\n }\n };\n}\n\n// src/actions/maxGraphemes/maxGraphemes.ts\nfunction maxGraphemes(requirement, message) {\n return {\n kind: \"validation\",\n type: \"max_graphemes\",\n reference: maxGraphemes,\n async: false,\n expects: `<=${requirement}`,\n requirement,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed) {\n const count = _getGraphemeCount(dataset.value);\n if (count > this.requirement) {\n _addIssue(this, \"graphemes\", dataset, config2, {\n received: `${count}`\n });\n }\n }\n return dataset;\n }\n };\n}\n\n// src/actions/maxLength/maxLength.ts\nfunction maxLength(requirement, message) {\n return {\n kind: \"validation\",\n type: \"max_length\",\n reference: maxLength,\n async: false,\n expects: `<=${requirement}`,\n requirement,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed && dataset.value.length > this.requirement) {\n _addIssue(this, \"length\", dataset, config2, {\n received: `${dataset.value.length}`\n });\n }\n return dataset;\n }\n };\n}\n\n// src/actions/maxSize/maxSize.ts\nfunction maxSize(requirement, message) {\n return {\n kind: \"validation\",\n type: \"max_size\",\n reference: maxSize,\n async: false,\n expects: `<=${requirement}`,\n requirement,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed && dataset.value.size > this.requirement) {\n _addIssue(this, \"size\", dataset, config2, {\n received: `${dataset.value.size}`\n });\n }\n return dataset;\n }\n };\n}\n\n// src/actions/maxValue/maxValue.ts\nfunction maxValue(requirement, message) {\n return {\n kind: \"validation\",\n type: \"max_value\",\n reference: maxValue,\n async: false,\n expects: `<=${requirement instanceof Date ? requirement.toJSON() : _stringify(requirement)}`,\n requirement,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed && !(dataset.value <= this.requirement)) {\n _addIssue(this, \"value\", dataset, config2, {\n received: dataset.value instanceof Date ? dataset.value.toJSON() : _stringify(dataset.value)\n });\n }\n return dataset;\n }\n };\n}\n\n// src/actions/maxWords/maxWords.ts\nfunction maxWords(locales, requirement, message) {\n return {\n kind: \"validation\",\n type: \"max_words\",\n reference: maxWords,\n async: false,\n expects: `<=${requirement}`,\n locales,\n requirement,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed) {\n const count = _getWordCount(this.locales, dataset.value);\n if (count > this.requirement) {\n _addIssue(this, \"words\", dataset, config2, {\n received: `${count}`\n });\n }\n }\n return dataset;\n }\n };\n}\n\n// src/actions/metadata/metadata.ts\nfunction metadata(metadata_) {\n return {\n kind: \"metadata\",\n type: \"metadata\",\n reference: metadata,\n metadata: metadata_\n };\n}\n\n// src/actions/mimeType/mimeType.ts\nfunction mimeType(requirement, message) {\n return {\n kind: \"validation\",\n type: \"mime_type\",\n reference: mimeType,\n async: false,\n expects: _joinExpects(\n requirement.map((option) => `\"${option}\"`),\n \"|\"\n ),\n requirement,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed && !this.requirement.includes(dataset.value.type)) {\n _addIssue(this, \"MIME type\", dataset, config2, {\n received: `\"${dataset.value.type}\"`\n });\n }\n return dataset;\n }\n };\n}\n\n// src/actions/minBytes/minBytes.ts\nfunction minBytes(requirement, message) {\n return {\n kind: \"validation\",\n type: \"min_bytes\",\n reference: minBytes,\n async: false,\n expects: `>=${requirement}`,\n requirement,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed) {\n const length2 = _getByteCount(dataset.value);\n if (length2 < this.requirement) {\n _addIssue(this, \"bytes\", dataset, config2, {\n received: `${length2}`\n });\n }\n }\n return dataset;\n }\n };\n}\n\n// src/actions/minGraphemes/minGraphemes.ts\nfunction minGraphemes(requirement, message) {\n return {\n kind: \"validation\",\n type: \"min_graphemes\",\n reference: minGraphemes,\n async: false,\n expects: `>=${requirement}`,\n requirement,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed) {\n const count = _getGraphemeCount(dataset.value);\n if (count < this.requirement) {\n _addIssue(this, \"graphemes\", dataset, config2, {\n received: `${count}`\n });\n }\n }\n return dataset;\n }\n };\n}\n\n// src/actions/minLength/minLength.ts\nfunction minLength(requirement, message) {\n return {\n kind: \"validation\",\n type: \"min_length\",\n reference: minLength,\n async: false,\n expects: `>=${requirement}`,\n requirement,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed && dataset.value.length < this.requirement) {\n _addIssue(this, \"length\", dataset, config2, {\n received: `${dataset.value.length}`\n });\n }\n return dataset;\n }\n };\n}\n\n// src/actions/minSize/minSize.ts\nfunction minSize(requirement, message) {\n return {\n kind: \"validation\",\n type: \"min_size\",\n reference: minSize,\n async: false,\n expects: `>=${requirement}`,\n requirement,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed && dataset.value.size < this.requirement) {\n _addIssue(this, \"size\", dataset, config2, {\n received: `${dataset.value.size}`\n });\n }\n return dataset;\n }\n };\n}\n\n// src/actions/minValue/minValue.ts\nfunction minValue(requirement, message) {\n return {\n kind: \"validation\",\n type: \"min_value\",\n reference: minValue,\n async: false,\n expects: `>=${requirement instanceof Date ? requirement.toJSON() : _stringify(requirement)}`,\n requirement,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed && !(dataset.value >= this.requirement)) {\n _addIssue(this, \"value\", dataset, config2, {\n received: dataset.value instanceof Date ? dataset.value.toJSON() : _stringify(dataset.value)\n });\n }\n return dataset;\n }\n };\n}\n\n// src/actions/minWords/minWords.ts\nfunction minWords(locales, requirement, message) {\n return {\n kind: \"validation\",\n type: \"min_words\",\n reference: minWords,\n async: false,\n expects: `>=${requirement}`,\n locales,\n requirement,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed) {\n const count = _getWordCount(this.locales, dataset.value);\n if (count < this.requirement) {\n _addIssue(this, \"words\", dataset, config2, {\n received: `${count}`\n });\n }\n }\n return dataset;\n }\n };\n}\n\n// src/actions/multipleOf/multipleOf.ts\nfunction multipleOf(requirement, message) {\n return {\n kind: \"validation\",\n type: \"multiple_of\",\n reference: multipleOf,\n async: false,\n expects: `%${requirement}`,\n requirement,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed && dataset.value % this.requirement !== 0) {\n _addIssue(this, \"multiple\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/nanoid/nanoid.ts\nfunction nanoid(message) {\n return {\n kind: \"validation\",\n type: \"nanoid\",\n reference: nanoid,\n async: false,\n expects: null,\n requirement: NANO_ID_REGEX,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed && !this.requirement.test(dataset.value)) {\n _addIssue(this, \"Nano ID\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/nonEmpty/nonEmpty.ts\nfunction nonEmpty(message) {\n return {\n kind: \"validation\",\n type: \"non_empty\",\n reference: nonEmpty,\n async: false,\n expects: \"!0\",\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed && dataset.value.length === 0) {\n _addIssue(this, \"length\", dataset, config2, {\n received: \"0\"\n });\n }\n return dataset;\n }\n };\n}\n\n// src/actions/normalize/normalize.ts\nfunction normalize(form) {\n return {\n kind: \"transformation\",\n type: \"normalize\",\n reference: normalize,\n async: false,\n form,\n \"~run\"(dataset) {\n dataset.value = dataset.value.normalize(this.form);\n return dataset;\n }\n };\n}\n\n// src/actions/notBytes/notBytes.ts\nfunction notBytes(requirement, message) {\n return {\n kind: \"validation\",\n type: \"not_bytes\",\n reference: notBytes,\n async: false,\n expects: `!${requirement}`,\n requirement,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed) {\n const length2 = _getByteCount(dataset.value);\n if (length2 === this.requirement) {\n _addIssue(this, \"bytes\", dataset, config2, {\n received: `${length2}`\n });\n }\n }\n return dataset;\n }\n };\n}\n\n// src/actions/notGraphemes/notGraphemes.ts\nfunction notGraphemes(requirement, message) {\n return {\n kind: \"validation\",\n type: \"not_graphemes\",\n reference: notGraphemes,\n async: false,\n expects: `!${requirement}`,\n requirement,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed) {\n const count = _getGraphemeCount(dataset.value);\n if (count === this.requirement) {\n _addIssue(this, \"graphemes\", dataset, config2, {\n received: `${count}`\n });\n }\n }\n return dataset;\n }\n };\n}\n\n// src/actions/notLength/notLength.ts\nfunction notLength(requirement, message) {\n return {\n kind: \"validation\",\n type: \"not_length\",\n reference: notLength,\n async: false,\n expects: `!${requirement}`,\n requirement,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed && dataset.value.length === this.requirement) {\n _addIssue(this, \"length\", dataset, config2, {\n received: `${dataset.value.length}`\n });\n }\n return dataset;\n }\n };\n}\n\n// src/actions/notSize/notSize.ts\nfunction notSize(requirement, message) {\n return {\n kind: \"validation\",\n type: \"not_size\",\n reference: notSize,\n async: false,\n expects: `!${requirement}`,\n requirement,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed && dataset.value.size === this.requirement) {\n _addIssue(this, \"size\", dataset, config2, {\n received: `${dataset.value.size}`\n });\n }\n return dataset;\n }\n };\n}\n\n// src/actions/notValue/notValue.ts\nfunction notValue(requirement, message) {\n return {\n kind: \"validation\",\n type: \"not_value\",\n reference: notValue,\n async: false,\n expects: requirement instanceof Date ? `!${requirement.toJSON()}` : `!${_stringify(requirement)}`,\n requirement,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed && this.requirement <= dataset.value && this.requirement >= dataset.value) {\n _addIssue(this, \"value\", dataset, config2, {\n received: dataset.value instanceof Date ? dataset.value.toJSON() : _stringify(dataset.value)\n });\n }\n return dataset;\n }\n };\n}\n\n// src/actions/notWords/notWords.ts\nfunction notWords(locales, requirement, message) {\n return {\n kind: \"validation\",\n type: \"not_words\",\n reference: notWords,\n async: false,\n expects: `!${requirement}`,\n locales,\n requirement,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed) {\n const count = _getWordCount(this.locales, dataset.value);\n if (count === this.requirement) {\n _addIssue(this, \"words\", dataset, config2, {\n received: `${count}`\n });\n }\n }\n return dataset;\n }\n };\n}\n\n// src/actions/octal/octal.ts\nfunction octal(message) {\n return {\n kind: \"validation\",\n type: \"octal\",\n reference: octal,\n async: false,\n expects: null,\n requirement: OCTAL_REGEX,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed && !this.requirement.test(dataset.value)) {\n _addIssue(this, \"octal\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/partialCheck/utils/_isPartiallyTyped/_isPartiallyTyped.ts\nfunction _isPartiallyTyped(dataset, pathList) {\n if (dataset.issues) {\n for (const path of pathList) {\n for (const issue of dataset.issues) {\n let typed = false;\n const bound = Math.min(path.length, issue.path?.length ?? 0);\n for (let index = 0; index < bound; index++) {\n if (path[index] !== issue.path[index].key) {\n typed = true;\n break;\n }\n }\n if (!typed) {\n return false;\n }\n }\n }\n }\n return true;\n}\n\n// src/actions/partialCheck/partialCheck.ts\nfunction partialCheck(pathList, requirement, message) {\n return {\n kind: \"validation\",\n type: \"partial_check\",\n reference: partialCheck,\n async: false,\n expects: null,\n pathList,\n requirement,\n message,\n \"~run\"(dataset, config2) {\n if (_isPartiallyTyped(dataset, pathList) && // @ts-expect-error\n !this.requirement(dataset.value)) {\n _addIssue(this, \"input\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/partialCheck/partialCheckAsync.ts\nfunction partialCheckAsync(pathList, requirement, message) {\n return {\n kind: \"validation\",\n type: \"partial_check\",\n reference: partialCheckAsync,\n async: true,\n expects: null,\n pathList,\n requirement,\n message,\n async \"~run\"(dataset, config2) {\n if (_isPartiallyTyped(dataset, pathList) && // @ts-expect-error\n !await this.requirement(dataset.value)) {\n _addIssue(this, \"input\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/rawCheck/rawCheck.ts\nfunction rawCheck(action) {\n return {\n kind: \"validation\",\n type: \"raw_check\",\n reference: rawCheck,\n async: false,\n expects: null,\n \"~run\"(dataset, config2) {\n action({\n dataset,\n config: config2,\n addIssue: (info) => _addIssue(this, info?.label ?? \"input\", dataset, config2, info)\n });\n return dataset;\n }\n };\n}\n\n// src/actions/rawCheck/rawCheckAsync.ts\nfunction rawCheckAsync(action) {\n return {\n kind: \"validation\",\n type: \"raw_check\",\n reference: rawCheckAsync,\n async: true,\n expects: null,\n async \"~run\"(dataset, config2) {\n await action({\n dataset,\n config: config2,\n addIssue: (info) => _addIssue(this, info?.label ?? \"input\", dataset, config2, info)\n });\n return dataset;\n }\n };\n}\n\n// src/actions/rawTransform/rawTransform.ts\nfunction rawTransform(action) {\n return {\n kind: \"transformation\",\n type: \"raw_transform\",\n reference: rawTransform,\n async: false,\n \"~run\"(dataset, config2) {\n const output = action({\n dataset,\n config: config2,\n addIssue: (info) => _addIssue(this, info?.label ?? \"input\", dataset, config2, info),\n NEVER: null\n });\n if (dataset.issues) {\n dataset.typed = false;\n } else {\n dataset.value = output;\n }\n return dataset;\n }\n };\n}\n\n// src/actions/rawTransform/rawTransformAsync.ts\nfunction rawTransformAsync(action) {\n return {\n kind: \"transformation\",\n type: \"raw_transform\",\n reference: rawTransformAsync,\n async: true,\n async \"~run\"(dataset, config2) {\n const output = await action({\n dataset,\n config: config2,\n addIssue: (info) => _addIssue(this, info?.label ?? \"input\", dataset, config2, info),\n NEVER: null\n });\n if (dataset.issues) {\n dataset.typed = false;\n } else {\n dataset.value = output;\n }\n return dataset;\n }\n };\n}\n\n// src/actions/readonly/readonly.ts\nfunction readonly() {\n return {\n kind: \"transformation\",\n type: \"readonly\",\n reference: readonly,\n async: false,\n \"~run\"(dataset) {\n return dataset;\n }\n };\n}\n\n// src/actions/reduceItems/reduceItems.ts\nfunction reduceItems(operation, initial) {\n return {\n kind: \"transformation\",\n type: \"reduce_items\",\n reference: reduceItems,\n async: false,\n operation,\n initial,\n \"~run\"(dataset) {\n dataset.value = dataset.value.reduce(this.operation, this.initial);\n return dataset;\n }\n };\n}\n\n// src/actions/regex/regex.ts\nfunction regex(requirement, message) {\n return {\n kind: \"validation\",\n type: \"regex\",\n reference: regex,\n async: false,\n expects: `${requirement}`,\n requirement,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed && !this.requirement.test(dataset.value)) {\n _addIssue(this, \"format\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/returns/returns.ts\nfunction returns(schema) {\n return {\n kind: \"transformation\",\n type: \"returns\",\n reference: returns,\n async: false,\n schema,\n \"~run\"(dataset, config2) {\n const func = dataset.value;\n dataset.value = (...args_) => {\n const returnsDataset = this.schema[\"~run\"](\n { value: func(...args_) },\n config2\n );\n if (returnsDataset.issues) {\n throw new ValiError(returnsDataset.issues);\n }\n return returnsDataset.value;\n };\n return dataset;\n }\n };\n}\n\n// src/actions/returns/returnsAsync.ts\nfunction returnsAsync(schema) {\n return {\n kind: \"transformation\",\n type: \"returns\",\n reference: returnsAsync,\n async: false,\n schema,\n \"~run\"(dataset, config2) {\n const func = dataset.value;\n dataset.value = async (...args_) => {\n const returnsDataset = await this.schema[\"~run\"](\n { value: await func(...args_) },\n config2\n );\n if (returnsDataset.issues) {\n throw new ValiError(returnsDataset.issues);\n }\n return returnsDataset.value;\n };\n return dataset;\n }\n };\n}\n\n// src/actions/safeInteger/safeInteger.ts\nfunction safeInteger(message) {\n return {\n kind: \"validation\",\n type: \"safe_integer\",\n reference: safeInteger,\n async: false,\n expects: null,\n requirement: Number.isSafeInteger,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed && !this.requirement(dataset.value)) {\n _addIssue(this, \"safe integer\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/size/size.ts\nfunction size(requirement, message) {\n return {\n kind: \"validation\",\n type: \"size\",\n reference: size,\n async: false,\n expects: `${requirement}`,\n requirement,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed && dataset.value.size !== this.requirement) {\n _addIssue(this, \"size\", dataset, config2, {\n received: `${dataset.value.size}`\n });\n }\n return dataset;\n }\n };\n}\n\n// src/actions/someItem/someItem.ts\nfunction someItem(requirement, message) {\n return {\n kind: \"validation\",\n type: \"some_item\",\n reference: someItem,\n async: false,\n expects: null,\n requirement,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed && !dataset.value.some(this.requirement)) {\n _addIssue(this, \"item\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/sortItems/sortItems.ts\nfunction sortItems(operation) {\n return {\n kind: \"transformation\",\n type: \"sort_items\",\n reference: sortItems,\n async: false,\n operation,\n \"~run\"(dataset) {\n dataset.value = dataset.value.sort(this.operation);\n return dataset;\n }\n };\n}\n\n// src/actions/startsWith/startsWith.ts\nfunction startsWith(requirement, message) {\n return {\n kind: \"validation\",\n type: \"starts_with\",\n reference: startsWith,\n async: false,\n expects: `\"${requirement}\"`,\n requirement,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed && !dataset.value.startsWith(this.requirement)) {\n _addIssue(this, \"start\", dataset, config2, {\n received: `\"${dataset.value.slice(0, this.requirement.length)}\"`\n });\n }\n return dataset;\n }\n };\n}\n\n// src/actions/title/title.ts\nfunction title(title_) {\n return {\n kind: \"metadata\",\n type: \"title\",\n reference: title,\n title: title_\n };\n}\n\n// src/actions/toLowerCase/toLowerCase.ts\nfunction toLowerCase() {\n return {\n kind: \"transformation\",\n type: \"to_lower_case\",\n reference: toLowerCase,\n async: false,\n \"~run\"(dataset) {\n dataset.value = dataset.value.toLowerCase();\n return dataset;\n }\n };\n}\n\n// src/actions/toMaxValue/toMaxValue.ts\nfunction toMaxValue(requirement) {\n return {\n kind: \"transformation\",\n type: \"to_max_value\",\n reference: toMaxValue,\n async: false,\n requirement,\n \"~run\"(dataset) {\n dataset.value = dataset.value > this.requirement ? this.requirement : dataset.value;\n return dataset;\n }\n };\n}\n\n// src/actions/toMinValue/toMinValue.ts\nfunction toMinValue(requirement) {\n return {\n kind: \"transformation\",\n type: \"to_min_value\",\n reference: toMinValue,\n async: false,\n requirement,\n \"~run\"(dataset) {\n dataset.value = dataset.value < this.requirement ? this.requirement : dataset.value;\n return dataset;\n }\n };\n}\n\n// src/actions/toUpperCase/toUpperCase.ts\nfunction toUpperCase() {\n return {\n kind: \"transformation\",\n type: \"to_upper_case\",\n reference: toUpperCase,\n async: false,\n \"~run\"(dataset) {\n dataset.value = dataset.value.toUpperCase();\n return dataset;\n }\n };\n}\n\n// src/actions/transform/transform.ts\nfunction transform(operation) {\n return {\n kind: \"transformation\",\n type: \"transform\",\n reference: transform,\n async: false,\n operation,\n \"~run\"(dataset) {\n dataset.value = this.operation(dataset.value);\n return dataset;\n }\n };\n}\n\n// src/actions/transform/transformAsync.ts\nfunction transformAsync(operation) {\n return {\n kind: \"transformation\",\n type: \"transform\",\n reference: transformAsync,\n async: true,\n operation,\n async \"~run\"(dataset) {\n dataset.value = await this.operation(dataset.value);\n return dataset;\n }\n };\n}\n\n// src/actions/trim/trim.ts\nfunction trim() {\n return {\n kind: \"transformation\",\n type: \"trim\",\n reference: trim,\n async: false,\n \"~run\"(dataset) {\n dataset.value = dataset.value.trim();\n return dataset;\n }\n };\n}\n\n// src/actions/trimEnd/trimEnd.ts\nfunction trimEnd() {\n return {\n kind: \"transformation\",\n type: \"trim_end\",\n reference: trimEnd,\n async: false,\n \"~run\"(dataset) {\n dataset.value = dataset.value.trimEnd();\n return dataset;\n }\n };\n}\n\n// src/actions/trimStart/trimStart.ts\nfunction trimStart() {\n return {\n kind: \"transformation\",\n type: \"trim_start\",\n reference: trimStart,\n async: false,\n \"~run\"(dataset) {\n dataset.value = dataset.value.trimStart();\n return dataset;\n }\n };\n}\n\n// src/actions/ulid/ulid.ts\nfunction ulid(message) {\n return {\n kind: \"validation\",\n type: \"ulid\",\n reference: ulid,\n async: false,\n expects: null,\n requirement: ULID_REGEX,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed && !this.requirement.test(dataset.value)) {\n _addIssue(this, \"ULID\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/url/url.ts\nfunction url(message) {\n return {\n kind: \"validation\",\n type: \"url\",\n reference: url,\n async: false,\n expects: null,\n requirement(input) {\n try {\n new URL(input);\n return true;\n } catch {\n return false;\n }\n },\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed && !this.requirement(dataset.value)) {\n _addIssue(this, \"URL\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/uuid/uuid.ts\nfunction uuid(message) {\n return {\n kind: \"validation\",\n type: \"uuid\",\n reference: uuid,\n async: false,\n expects: null,\n requirement: UUID_REGEX,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed && !this.requirement.test(dataset.value)) {\n _addIssue(this, \"UUID\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/value/value.ts\nfunction value(requirement, message) {\n return {\n kind: \"validation\",\n type: \"value\",\n reference: value,\n async: false,\n expects: requirement instanceof Date ? requirement.toJSON() : _stringify(requirement),\n requirement,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed && !(this.requirement <= dataset.value && this.requirement >= dataset.value)) {\n _addIssue(this, \"value\", dataset, config2, {\n received: dataset.value instanceof Date ? dataset.value.toJSON() : _stringify(dataset.value)\n });\n }\n return dataset;\n }\n };\n}\n\n// src/actions/words/words.ts\nfunction words(locales, requirement, message) {\n return {\n kind: \"validation\",\n type: \"words\",\n reference: words,\n async: false,\n expects: `${requirement}`,\n locales,\n requirement,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed) {\n const count = _getWordCount(this.locales, dataset.value);\n if (count !== this.requirement) {\n _addIssue(this, \"words\", dataset, config2, {\n received: `${count}`\n });\n }\n }\n return dataset;\n }\n };\n}\n\n// src/methods/assert/assert.ts\nfunction assert(schema, input) {\n const issues = schema[\"~run\"]({ value: input }, { abortEarly: true }).issues;\n if (issues) {\n throw new ValiError(issues);\n }\n}\n\n// src/methods/config/config.ts\nfunction config(schema, config2) {\n return {\n ...schema,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n \"~run\"(dataset, config_) {\n return schema[\"~run\"](dataset, { ...config_, ...config2 });\n }\n };\n}\n\n// src/methods/getFallback/getFallback.ts\nfunction getFallback(schema, dataset, config2) {\n return typeof schema.fallback === \"function\" ? (\n // @ts-expect-error\n schema.fallback(dataset, config2)\n ) : (\n // @ts-expect-error\n schema.fallback\n );\n}\n\n// src/methods/fallback/fallback.ts\nfunction fallback(schema, fallback2) {\n return {\n ...schema,\n fallback: fallback2,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n \"~run\"(dataset, config2) {\n const outputDataset = schema[\"~run\"](dataset, config2);\n return outputDataset.issues ? { typed: true, value: getFallback(this, outputDataset, config2) } : outputDataset;\n }\n };\n}\n\n// src/methods/fallback/fallbackAsync.ts\nfunction fallbackAsync(schema, fallback2) {\n return {\n ...schema,\n fallback: fallback2,\n async: true,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n async \"~run\"(dataset, config2) {\n const outputDataset = await schema[\"~run\"](dataset, config2);\n return outputDataset.issues ? {\n typed: true,\n value: await getFallback(this, outputDataset, config2)\n } : outputDataset;\n }\n };\n}\n\n// src/methods/flatten/flatten.ts\nfunction flatten(issues) {\n const flatErrors = {};\n for (const issue of issues) {\n if (issue.path) {\n const dotPath = getDotPath(issue);\n if (dotPath) {\n if (!flatErrors.nested) {\n flatErrors.nested = {};\n }\n if (flatErrors.nested[dotPath]) {\n flatErrors.nested[dotPath].push(issue.message);\n } else {\n flatErrors.nested[dotPath] = [issue.message];\n }\n } else {\n if (flatErrors.other) {\n flatErrors.other.push(issue.message);\n } else {\n flatErrors.other = [issue.message];\n }\n }\n } else {\n if (flatErrors.root) {\n flatErrors.root.push(issue.message);\n } else {\n flatErrors.root = [issue.message];\n }\n }\n }\n return flatErrors;\n}\n\n// src/methods/forward/forward.ts\nfunction forward(action, pathKeys) {\n return {\n ...action,\n \"~run\"(dataset, config2) {\n const prevIssues = dataset.issues && [...dataset.issues];\n dataset = action[\"~run\"](dataset, config2);\n if (dataset.issues) {\n for (const issue of dataset.issues) {\n if (!prevIssues?.includes(issue)) {\n let pathInput = dataset.value;\n for (const key of pathKeys) {\n const pathValue = pathInput[key];\n const pathItem = {\n type: \"unknown\",\n origin: \"value\",\n input: pathInput,\n key,\n value: pathValue\n };\n if (issue.path) {\n issue.path.push(pathItem);\n } else {\n issue.path = [pathItem];\n }\n if (!pathValue) {\n break;\n }\n pathInput = pathValue;\n }\n }\n }\n }\n return dataset;\n }\n };\n}\n\n// src/methods/forward/forwardAsync.ts\nfunction forwardAsync(action, pathKeys) {\n return {\n ...action,\n async: true,\n async \"~run\"(dataset, config2) {\n const prevIssues = dataset.issues && [...dataset.issues];\n dataset = await action[\"~run\"](dataset, config2);\n if (dataset.issues) {\n for (const issue of dataset.issues) {\n if (!prevIssues?.includes(issue)) {\n let pathInput = dataset.value;\n for (const key of pathKeys) {\n const pathValue = pathInput[key];\n const pathItem = {\n type: \"unknown\",\n origin: \"value\",\n input: pathInput,\n key,\n value: pathValue\n };\n if (issue.path) {\n issue.path.push(pathItem);\n } else {\n issue.path = [pathItem];\n }\n if (!pathValue) {\n break;\n }\n pathInput = pathValue;\n }\n }\n }\n }\n return dataset;\n }\n };\n}\n\n// src/methods/getDefault/getDefault.ts\nfunction getDefault(schema, dataset, config2) {\n return typeof schema.default === \"function\" ? (\n // @ts-expect-error\n schema.default(dataset, config2)\n ) : (\n // @ts-expect-error\n schema.default\n );\n}\n\n// src/methods/getDefaults/getDefaults.ts\nfunction getDefaults(schema) {\n if (\"entries\" in schema) {\n const object2 = {};\n for (const key in schema.entries) {\n object2[key] = getDefaults(schema.entries[key]);\n }\n return object2;\n }\n if (\"items\" in schema) {\n return schema.items.map(getDefaults);\n }\n return getDefault(schema);\n}\n\n// src/methods/getDefaults/getDefaultsAsync.ts\nasync function getDefaultsAsync(schema) {\n if (\"entries\" in schema) {\n return Object.fromEntries(\n await Promise.all(\n Object.entries(schema.entries).map(async ([key, value2]) => [\n key,\n await getDefaultsAsync(value2)\n ])\n )\n );\n }\n if (\"items\" in schema) {\n return Promise.all(schema.items.map(getDefaultsAsync));\n }\n return getDefault(schema);\n}\n\n// src/methods/getFallbacks/getFallbacks.ts\nfunction getFallbacks(schema) {\n if (\"entries\" in schema) {\n const object2 = {};\n for (const key in schema.entries) {\n object2[key] = getFallbacks(schema.entries[key]);\n }\n return object2;\n }\n if (\"items\" in schema) {\n return schema.items.map(getFallbacks);\n }\n return getFallback(schema);\n}\n\n// src/methods/getFallbacks/getFallbacksAsync.ts\nasync function getFallbacksAsync(schema) {\n if (\"entries\" in schema) {\n return Object.fromEntries(\n await Promise.all(\n Object.entries(schema.entries).map(async ([key, value2]) => [\n key,\n await getFallbacksAsync(value2)\n ])\n )\n );\n }\n if (\"items\" in schema) {\n return Promise.all(schema.items.map(getFallbacksAsync));\n }\n return getFallback(schema);\n}\n\n// src/methods/is/is.ts\nfunction is(schema, input) {\n return !schema[\"~run\"]({ value: input }, { abortEarly: true }).issues;\n}\n\n// src/schemas/any/any.ts\nfunction any() {\n return {\n kind: \"schema\",\n type: \"any\",\n reference: any,\n expects: \"any\",\n async: false,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n \"~run\"(dataset) {\n dataset.typed = true;\n return dataset;\n }\n };\n}\n\n// src/schemas/array/array.ts\nfunction array(item, message) {\n return {\n kind: \"schema\",\n type: \"array\",\n reference: array,\n expects: \"Array\",\n async: false,\n item,\n message,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n \"~run\"(dataset, config2) {\n const input = dataset.value;\n if (Array.isArray(input)) {\n dataset.typed = true;\n dataset.value = [];\n for (let key = 0; key < input.length; key++) {\n const value2 = input[key];\n const itemDataset = this.item[\"~run\"]({ value: value2 }, config2);\n if (itemDataset.issues) {\n const pathItem = {\n type: \"array\",\n origin: \"value\",\n input,\n key,\n value: value2\n };\n for (const issue of itemDataset.issues) {\n if (issue.path) {\n issue.path.unshift(pathItem);\n } else {\n issue.path = [pathItem];\n }\n dataset.issues?.push(issue);\n }\n if (!dataset.issues) {\n dataset.issues = itemDataset.issues;\n }\n if (config2.abortEarly) {\n dataset.typed = false;\n break;\n }\n }\n if (!itemDataset.typed) {\n dataset.typed = false;\n }\n dataset.value.push(itemDataset.value);\n }\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/array/arrayAsync.ts\nfunction arrayAsync(item, message) {\n return {\n kind: \"schema\",\n type: \"array\",\n reference: arrayAsync,\n expects: \"Array\",\n async: true,\n item,\n message,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n async \"~run\"(dataset, config2) {\n const input = dataset.value;\n if (Array.isArray(input)) {\n dataset.typed = true;\n dataset.value = [];\n const itemDatasets = await Promise.all(\n input.map((value2) => this.item[\"~run\"]({ value: value2 }, config2))\n );\n for (let key = 0; key < itemDatasets.length; key++) {\n const itemDataset = itemDatasets[key];\n if (itemDataset.issues) {\n const pathItem = {\n type: \"array\",\n origin: \"value\",\n input,\n key,\n value: input[key]\n };\n for (const issue of itemDataset.issues) {\n if (issue.path) {\n issue.path.unshift(pathItem);\n } else {\n issue.path = [pathItem];\n }\n dataset.issues?.push(issue);\n }\n if (!dataset.issues) {\n dataset.issues = itemDataset.issues;\n }\n if (config2.abortEarly) {\n dataset.typed = false;\n break;\n }\n }\n if (!itemDataset.typed) {\n dataset.typed = false;\n }\n dataset.value.push(itemDataset.value);\n }\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/bigint/bigint.ts\nfunction bigint(message) {\n return {\n kind: \"schema\",\n type: \"bigint\",\n reference: bigint,\n expects: \"bigint\",\n async: false,\n message,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n \"~run\"(dataset, config2) {\n if (typeof dataset.value === \"bigint\") {\n dataset.typed = true;\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/blob/blob.ts\nfunction blob(message) {\n return {\n kind: \"schema\",\n type: \"blob\",\n reference: blob,\n expects: \"Blob\",\n async: false,\n message,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n \"~run\"(dataset, config2) {\n if (dataset.value instanceof Blob) {\n dataset.typed = true;\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/boolean/boolean.ts\nfunction boolean(message) {\n return {\n kind: \"schema\",\n type: \"boolean\",\n reference: boolean,\n expects: \"boolean\",\n async: false,\n message,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n \"~run\"(dataset, config2) {\n if (typeof dataset.value === \"boolean\") {\n dataset.typed = true;\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/custom/custom.ts\nfunction custom(check2, message) {\n return {\n kind: \"schema\",\n type: \"custom\",\n reference: custom,\n expects: \"unknown\",\n async: false,\n check: check2,\n message,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n \"~run\"(dataset, config2) {\n if (this.check(dataset.value)) {\n dataset.typed = true;\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/custom/customAsync.ts\nfunction customAsync(check2, message) {\n return {\n kind: \"schema\",\n type: \"custom\",\n reference: customAsync,\n expects: \"unknown\",\n async: true,\n check: check2,\n message,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n async \"~run\"(dataset, config2) {\n if (await this.check(dataset.value)) {\n dataset.typed = true;\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/date/date.ts\nfunction date(message) {\n return {\n kind: \"schema\",\n type: \"date\",\n reference: date,\n expects: \"Date\",\n async: false,\n message,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n \"~run\"(dataset, config2) {\n if (dataset.value instanceof Date) {\n if (!isNaN(dataset.value)) {\n dataset.typed = true;\n } else {\n _addIssue(this, \"type\", dataset, config2, {\n received: '\"Invalid Date\"'\n });\n }\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/enum/enum.ts\nfunction enum_(enum__, message) {\n const options = Object.entries(enum__).filter(([key]) => isNaN(+key)).map(([, value2]) => value2);\n return {\n kind: \"schema\",\n type: \"enum\",\n reference: enum_,\n expects: _joinExpects(options.map(_stringify), \"|\"),\n async: false,\n enum: enum__,\n options,\n message,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n \"~run\"(dataset, config2) {\n if (this.options.includes(dataset.value)) {\n dataset.typed = true;\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/file/file.ts\nfunction file(message) {\n return {\n kind: \"schema\",\n type: \"file\",\n reference: file,\n expects: \"File\",\n async: false,\n message,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n \"~run\"(dataset, config2) {\n if (dataset.value instanceof File) {\n dataset.typed = true;\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/function/function.ts\nfunction function_(message) {\n return {\n kind: \"schema\",\n type: \"function\",\n reference: function_,\n expects: \"Function\",\n async: false,\n message,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n \"~run\"(dataset, config2) {\n if (typeof dataset.value === \"function\") {\n dataset.typed = true;\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/instance/instance.ts\nfunction instance(class_, message) {\n return {\n kind: \"schema\",\n type: \"instance\",\n reference: instance,\n expects: class_.name,\n async: false,\n class: class_,\n message,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n \"~run\"(dataset, config2) {\n if (dataset.value instanceof this.class) {\n dataset.typed = true;\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/intersect/utils/_merge/_merge.ts\nfunction _merge(value1, value2) {\n if (typeof value1 === typeof value2) {\n if (value1 === value2 || value1 instanceof Date && value2 instanceof Date && +value1 === +value2) {\n return { value: value1 };\n }\n if (value1 && value2 && value1.constructor === Object && value2.constructor === Object) {\n for (const key in value2) {\n if (key in value1) {\n const dataset = _merge(value1[key], value2[key]);\n if (dataset.issue) {\n return dataset;\n }\n value1[key] = dataset.value;\n } else {\n value1[key] = value2[key];\n }\n }\n return { value: value1 };\n }\n if (Array.isArray(value1) && Array.isArray(value2)) {\n if (value1.length === value2.length) {\n for (let index = 0; index < value1.length; index++) {\n const dataset = _merge(value1[index], value2[index]);\n if (dataset.issue) {\n return dataset;\n }\n value1[index] = dataset.value;\n }\n return { value: value1 };\n }\n }\n }\n return { issue: true };\n}\n\n// src/schemas/intersect/intersect.ts\nfunction intersect(options, message) {\n return {\n kind: \"schema\",\n type: \"intersect\",\n reference: intersect,\n expects: _joinExpects(\n options.map((option) => option.expects),\n \"&\"\n ),\n async: false,\n options,\n message,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n \"~run\"(dataset, config2) {\n if (this.options.length) {\n const input = dataset.value;\n let outputs;\n dataset.typed = true;\n for (const schema of this.options) {\n const optionDataset = schema[\"~run\"]({ value: input }, config2);\n if (optionDataset.issues) {\n if (dataset.issues) {\n dataset.issues.push(...optionDataset.issues);\n } else {\n dataset.issues = optionDataset.issues;\n }\n if (config2.abortEarly) {\n dataset.typed = false;\n break;\n }\n }\n if (!optionDataset.typed) {\n dataset.typed = false;\n }\n if (dataset.typed) {\n if (outputs) {\n outputs.push(optionDataset.value);\n } else {\n outputs = [optionDataset.value];\n }\n }\n }\n if (dataset.typed) {\n dataset.value = outputs[0];\n for (let index = 1; index < outputs.length; index++) {\n const mergeDataset = _merge(dataset.value, outputs[index]);\n if (mergeDataset.issue) {\n _addIssue(this, \"type\", dataset, config2, {\n received: \"unknown\"\n });\n break;\n }\n dataset.value = mergeDataset.value;\n }\n }\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/intersect/intersectAsync.ts\nfunction intersectAsync(options, message) {\n return {\n kind: \"schema\",\n type: \"intersect\",\n reference: intersectAsync,\n expects: _joinExpects(\n options.map((option) => option.expects),\n \"&\"\n ),\n async: true,\n options,\n message,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n async \"~run\"(dataset, config2) {\n if (this.options.length) {\n const input = dataset.value;\n let outputs;\n dataset.typed = true;\n const optionDatasets = await Promise.all(\n this.options.map((schema) => schema[\"~run\"]({ value: input }, config2))\n );\n for (const optionDataset of optionDatasets) {\n if (optionDataset.issues) {\n if (dataset.issues) {\n dataset.issues.push(...optionDataset.issues);\n } else {\n dataset.issues = optionDataset.issues;\n }\n if (config2.abortEarly) {\n dataset.typed = false;\n break;\n }\n }\n if (!optionDataset.typed) {\n dataset.typed = false;\n }\n if (dataset.typed) {\n if (outputs) {\n outputs.push(optionDataset.value);\n } else {\n outputs = [optionDataset.value];\n }\n }\n }\n if (dataset.typed) {\n dataset.value = outputs[0];\n for (let index = 1; index < outputs.length; index++) {\n const mergeDataset = _merge(dataset.value, outputs[index]);\n if (mergeDataset.issue) {\n _addIssue(this, \"type\", dataset, config2, {\n received: \"unknown\"\n });\n break;\n }\n dataset.value = mergeDataset.value;\n }\n }\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/lazy/lazy.ts\nfunction lazy(getter) {\n return {\n kind: \"schema\",\n type: \"lazy\",\n reference: lazy,\n expects: \"unknown\",\n async: false,\n getter,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n \"~run\"(dataset, config2) {\n return this.getter(dataset.value)[\"~run\"](dataset, config2);\n }\n };\n}\n\n// src/schemas/lazy/lazyAsync.ts\nfunction lazyAsync(getter) {\n return {\n kind: \"schema\",\n type: \"lazy\",\n reference: lazyAsync,\n expects: \"unknown\",\n async: true,\n getter,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n async \"~run\"(dataset, config2) {\n return (await this.getter(dataset.value))[\"~run\"](dataset, config2);\n }\n };\n}\n\n// src/schemas/literal/literal.ts\nfunction literal(literal_, message) {\n return {\n kind: \"schema\",\n type: \"literal\",\n reference: literal,\n expects: _stringify(literal_),\n async: false,\n literal: literal_,\n message,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n \"~run\"(dataset, config2) {\n if (dataset.value === this.literal) {\n dataset.typed = true;\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/looseObject/looseObject.ts\nfunction looseObject(entries, message) {\n return {\n kind: \"schema\",\n type: \"loose_object\",\n reference: looseObject,\n expects: \"Object\",\n async: false,\n entries,\n message,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n \"~run\"(dataset, config2) {\n const input = dataset.value;\n if (input && typeof input === \"object\") {\n dataset.typed = true;\n dataset.value = {};\n for (const key in this.entries) {\n const value2 = input[key];\n const valueDataset = this.entries[key][\"~run\"]({ value: value2 }, config2);\n if (valueDataset.issues) {\n const pathItem = {\n type: \"object\",\n origin: \"value\",\n input,\n key,\n value: value2\n };\n for (const issue of valueDataset.issues) {\n if (issue.path) {\n issue.path.unshift(pathItem);\n } else {\n issue.path = [pathItem];\n }\n dataset.issues?.push(issue);\n }\n if (!dataset.issues) {\n dataset.issues = valueDataset.issues;\n }\n if (config2.abortEarly) {\n dataset.typed = false;\n break;\n }\n }\n if (!valueDataset.typed) {\n dataset.typed = false;\n }\n if (valueDataset.value !== void 0 || key in input) {\n dataset.value[key] = valueDataset.value;\n }\n }\n if (!dataset.issues || !config2.abortEarly) {\n for (const key in input) {\n if (_isValidObjectKey(input, key) && !(key in this.entries)) {\n dataset.value[key] = input[key];\n }\n }\n }\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/looseObject/looseObjectAsync.ts\nfunction looseObjectAsync(entries, message) {\n return {\n kind: \"schema\",\n type: \"loose_object\",\n reference: looseObjectAsync,\n expects: \"Object\",\n async: true,\n entries,\n message,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n async \"~run\"(dataset, config2) {\n const input = dataset.value;\n if (input && typeof input === \"object\") {\n dataset.typed = true;\n dataset.value = {};\n const valueDatasets = await Promise.all(\n Object.entries(this.entries).map(async ([key, schema]) => {\n const value2 = input[key];\n return [\n key,\n value2,\n await schema[\"~run\"]({ value: value2 }, config2)\n ];\n })\n );\n for (const [key, value2, valueDataset] of valueDatasets) {\n if (valueDataset.issues) {\n const pathItem = {\n type: \"object\",\n origin: \"value\",\n input,\n key,\n value: value2\n };\n for (const issue of valueDataset.issues) {\n if (issue.path) {\n issue.path.unshift(pathItem);\n } else {\n issue.path = [pathItem];\n }\n dataset.issues?.push(issue);\n }\n if (!dataset.issues) {\n dataset.issues = valueDataset.issues;\n }\n if (config2.abortEarly) {\n dataset.typed = false;\n break;\n }\n }\n if (!valueDataset.typed) {\n dataset.typed = false;\n }\n if (valueDataset.value !== void 0 || key in input) {\n dataset.value[key] = valueDataset.value;\n }\n }\n if (!dataset.issues || !config2.abortEarly) {\n for (const key in input) {\n if (_isValidObjectKey(input, key) && !(key in this.entries)) {\n dataset.value[key] = input[key];\n }\n }\n }\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/looseTuple/looseTuple.ts\nfunction looseTuple(items, message) {\n return {\n kind: \"schema\",\n type: \"loose_tuple\",\n reference: looseTuple,\n expects: \"Array\",\n async: false,\n items,\n message,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n \"~run\"(dataset, config2) {\n const input = dataset.value;\n if (Array.isArray(input)) {\n dataset.typed = true;\n dataset.value = [];\n for (let key = 0; key < this.items.length; key++) {\n const value2 = input[key];\n const itemDataset = this.items[key][\"~run\"]({ value: value2 }, config2);\n if (itemDataset.issues) {\n const pathItem = {\n type: \"array\",\n origin: \"value\",\n input,\n key,\n value: value2\n };\n for (const issue of itemDataset.issues) {\n if (issue.path) {\n issue.path.unshift(pathItem);\n } else {\n issue.path = [pathItem];\n }\n dataset.issues?.push(issue);\n }\n if (!dataset.issues) {\n dataset.issues = itemDataset.issues;\n }\n if (config2.abortEarly) {\n dataset.typed = false;\n break;\n }\n }\n if (!itemDataset.typed) {\n dataset.typed = false;\n }\n dataset.value.push(itemDataset.value);\n }\n if (!dataset.issues || !config2.abortEarly) {\n for (let key = this.items.length; key < input.length; key++) {\n dataset.value.push(input[key]);\n }\n }\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/looseTuple/looseTupleAsync.ts\nfunction looseTupleAsync(items, message) {\n return {\n kind: \"schema\",\n type: \"loose_tuple\",\n reference: looseTupleAsync,\n expects: \"Array\",\n async: true,\n items,\n message,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n async \"~run\"(dataset, config2) {\n const input = dataset.value;\n if (Array.isArray(input)) {\n dataset.typed = true;\n dataset.value = [];\n const itemDatasets = await Promise.all(\n this.items.map(async (item, key) => {\n const value2 = input[key];\n return [key, value2, await item[\"~run\"]({ value: value2 }, config2)];\n })\n );\n for (const [key, value2, itemDataset] of itemDatasets) {\n if (itemDataset.issues) {\n const pathItem = {\n type: \"array\",\n origin: \"value\",\n input,\n key,\n value: value2\n };\n for (const issue of itemDataset.issues) {\n if (issue.path) {\n issue.path.unshift(pathItem);\n } else {\n issue.path = [pathItem];\n }\n dataset.issues?.push(issue);\n }\n if (!dataset.issues) {\n dataset.issues = itemDataset.issues;\n }\n if (config2.abortEarly) {\n dataset.typed = false;\n break;\n }\n }\n if (!itemDataset.typed) {\n dataset.typed = false;\n }\n dataset.value.push(itemDataset.value);\n }\n if (!dataset.issues || !config2.abortEarly) {\n for (let key = this.items.length; key < input.length; key++) {\n dataset.value.push(input[key]);\n }\n }\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/map/map.ts\nfunction map(key, value2, message) {\n return {\n kind: \"schema\",\n type: \"map\",\n reference: map,\n expects: \"Map\",\n async: false,\n key,\n value: value2,\n message,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n \"~run\"(dataset, config2) {\n const input = dataset.value;\n if (input instanceof Map) {\n dataset.typed = true;\n dataset.value = /* @__PURE__ */ new Map();\n for (const [inputKey, inputValue] of input) {\n const keyDataset = this.key[\"~run\"]({ value: inputKey }, config2);\n if (keyDataset.issues) {\n const pathItem = {\n type: \"map\",\n origin: \"key\",\n input,\n key: inputKey,\n value: inputValue\n };\n for (const issue of keyDataset.issues) {\n if (issue.path) {\n issue.path.unshift(pathItem);\n } else {\n issue.path = [pathItem];\n }\n dataset.issues?.push(issue);\n }\n if (!dataset.issues) {\n dataset.issues = keyDataset.issues;\n }\n if (config2.abortEarly) {\n dataset.typed = false;\n break;\n }\n }\n const valueDataset = this.value[\"~run\"](\n { value: inputValue },\n config2\n );\n if (valueDataset.issues) {\n const pathItem = {\n type: \"map\",\n origin: \"value\",\n input,\n key: inputKey,\n value: inputValue\n };\n for (const issue of valueDataset.issues) {\n if (issue.path) {\n issue.path.unshift(pathItem);\n } else {\n issue.path = [pathItem];\n }\n dataset.issues?.push(issue);\n }\n if (!dataset.issues) {\n dataset.issues = valueDataset.issues;\n }\n if (config2.abortEarly) {\n dataset.typed = false;\n break;\n }\n }\n if (!keyDataset.typed || !valueDataset.typed) {\n dataset.typed = false;\n }\n dataset.value.set(keyDataset.value, valueDataset.value);\n }\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/map/mapAsync.ts\nfunction mapAsync(key, value2, message) {\n return {\n kind: \"schema\",\n type: \"map\",\n reference: mapAsync,\n expects: \"Map\",\n async: true,\n key,\n value: value2,\n message,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n async \"~run\"(dataset, config2) {\n const input = dataset.value;\n if (input instanceof Map) {\n dataset.typed = true;\n dataset.value = /* @__PURE__ */ new Map();\n const datasets = await Promise.all(\n [...input].map(\n ([inputKey, inputValue]) => Promise.all([\n inputKey,\n inputValue,\n this.key[\"~run\"]({ value: inputKey }, config2),\n this.value[\"~run\"]({ value: inputValue }, config2)\n ])\n )\n );\n for (const [\n inputKey,\n inputValue,\n keyDataset,\n valueDataset\n ] of datasets) {\n if (keyDataset.issues) {\n const pathItem = {\n type: \"map\",\n origin: \"key\",\n input,\n key: inputKey,\n value: inputValue\n };\n for (const issue of keyDataset.issues) {\n if (issue.path) {\n issue.path.unshift(pathItem);\n } else {\n issue.path = [pathItem];\n }\n dataset.issues?.push(issue);\n }\n if (!dataset.issues) {\n dataset.issues = keyDataset.issues;\n }\n if (config2.abortEarly) {\n dataset.typed = false;\n break;\n }\n }\n if (valueDataset.issues) {\n const pathItem = {\n type: \"map\",\n origin: \"value\",\n input,\n key: inputKey,\n value: inputValue\n };\n for (const issue of valueDataset.issues) {\n if (issue.path) {\n issue.path.unshift(pathItem);\n } else {\n issue.path = [pathItem];\n }\n dataset.issues?.push(issue);\n }\n if (!dataset.issues) {\n dataset.issues = valueDataset.issues;\n }\n if (config2.abortEarly) {\n dataset.typed = false;\n break;\n }\n }\n if (!keyDataset.typed || !valueDataset.typed) {\n dataset.typed = false;\n }\n dataset.value.set(keyDataset.value, valueDataset.value);\n }\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/nan/nan.ts\nfunction nan(message) {\n return {\n kind: \"schema\",\n type: \"nan\",\n reference: nan,\n expects: \"NaN\",\n async: false,\n message,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n \"~run\"(dataset, config2) {\n if (Number.isNaN(dataset.value)) {\n dataset.typed = true;\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/never/never.ts\nfunction never(message) {\n return {\n kind: \"schema\",\n type: \"never\",\n reference: never,\n expects: \"never\",\n async: false,\n message,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n \"~run\"(dataset, config2) {\n _addIssue(this, \"type\", dataset, config2);\n return dataset;\n }\n };\n}\n\n// src/schemas/nonNullable/nonNullable.ts\nfunction nonNullable(wrapped, message) {\n return {\n kind: \"schema\",\n type: \"non_nullable\",\n reference: nonNullable,\n expects: \"!null\",\n async: false,\n wrapped,\n message,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n \"~run\"(dataset, config2) {\n if (dataset.value !== null) {\n dataset = this.wrapped[\"~run\"](dataset, config2);\n }\n if (dataset.value === null) {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/nonNullable/nonNullableAsync.ts\nfunction nonNullableAsync(wrapped, message) {\n return {\n kind: \"schema\",\n type: \"non_nullable\",\n reference: nonNullableAsync,\n expects: \"!null\",\n async: true,\n wrapped,\n message,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n async \"~run\"(dataset, config2) {\n if (dataset.value !== null) {\n dataset = await this.wrapped[\"~run\"](dataset, config2);\n }\n if (dataset.value === null) {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/nonNullish/nonNullish.ts\nfunction nonNullish(wrapped, message) {\n return {\n kind: \"schema\",\n type: \"non_nullish\",\n reference: nonNullish,\n expects: \"(!null & !undefined)\",\n async: false,\n wrapped,\n message,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n \"~run\"(dataset, config2) {\n if (!(dataset.value === null || dataset.value === void 0)) {\n dataset = this.wrapped[\"~run\"](dataset, config2);\n }\n if (dataset.value === null || dataset.value === void 0) {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/nonNullish/nonNullishAsync.ts\nfunction nonNullishAsync(wrapped, message) {\n return {\n kind: \"schema\",\n type: \"non_nullish\",\n reference: nonNullishAsync,\n expects: \"(!null & !undefined)\",\n async: true,\n wrapped,\n message,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n async \"~run\"(dataset, config2) {\n if (!(dataset.value === null || dataset.value === void 0)) {\n dataset = await this.wrapped[\"~run\"](dataset, config2);\n }\n if (dataset.value === null || dataset.value === void 0) {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/nonOptional/nonOptional.ts\nfunction nonOptional(wrapped, message) {\n return {\n kind: \"schema\",\n type: \"non_optional\",\n reference: nonOptional,\n expects: \"!undefined\",\n async: false,\n wrapped,\n message,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n \"~run\"(dataset, config2) {\n if (dataset.value !== void 0) {\n dataset = this.wrapped[\"~run\"](dataset, config2);\n }\n if (dataset.value === void 0) {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/nonOptional/nonOptionalAsync.ts\nfunction nonOptionalAsync(wrapped, message) {\n return {\n kind: \"schema\",\n type: \"non_optional\",\n reference: nonOptionalAsync,\n expects: \"!undefined\",\n async: true,\n wrapped,\n message,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n async \"~run\"(dataset, config2) {\n if (dataset.value !== void 0) {\n dataset = await this.wrapped[\"~run\"](dataset, config2);\n }\n if (dataset.value === void 0) {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/null/null.ts\nfunction null_(message) {\n return {\n kind: \"schema\",\n type: \"null\",\n reference: null_,\n expects: \"null\",\n async: false,\n message,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n \"~run\"(dataset, config2) {\n if (dataset.value === null) {\n dataset.typed = true;\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/nullable/nullable.ts\nfunction nullable(wrapped, default_) {\n return {\n kind: \"schema\",\n type: \"nullable\",\n reference: nullable,\n expects: `(${wrapped.expects} | null)`,\n async: false,\n wrapped,\n default: default_,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n \"~run\"(dataset, config2) {\n if (dataset.value === null) {\n if (this.default !== void 0) {\n dataset.value = getDefault(this, dataset, config2);\n }\n if (dataset.value === null) {\n dataset.typed = true;\n return dataset;\n }\n }\n return this.wrapped[\"~run\"](dataset, config2);\n }\n };\n}\n\n// src/schemas/nullable/nullableAsync.ts\nfunction nullableAsync(wrapped, default_) {\n return {\n kind: \"schema\",\n type: \"nullable\",\n reference: nullableAsync,\n expects: `(${wrapped.expects} | null)`,\n async: true,\n wrapped,\n default: default_,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n async \"~run\"(dataset, config2) {\n if (dataset.value === null) {\n if (this.default !== void 0) {\n dataset.value = await getDefault(this, dataset, config2);\n }\n if (dataset.value === null) {\n dataset.typed = true;\n return dataset;\n }\n }\n return this.wrapped[\"~run\"](dataset, config2);\n }\n };\n}\n\n// src/schemas/nullish/nullish.ts\nfunction nullish(wrapped, default_) {\n return {\n kind: \"schema\",\n type: \"nullish\",\n reference: nullish,\n expects: `(${wrapped.expects} | null | undefined)`,\n async: false,\n wrapped,\n default: default_,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n \"~run\"(dataset, config2) {\n if (dataset.value === null || dataset.value === void 0) {\n if (this.default !== void 0) {\n dataset.value = getDefault(this, dataset, config2);\n }\n if (dataset.value === null || dataset.value === void 0) {\n dataset.typed = true;\n return dataset;\n }\n }\n return this.wrapped[\"~run\"](dataset, config2);\n }\n };\n}\n\n// src/schemas/nullish/nullishAsync.ts\nfunction nullishAsync(wrapped, default_) {\n return {\n kind: \"schema\",\n type: \"nullish\",\n reference: nullishAsync,\n expects: `(${wrapped.expects} | null | undefined)`,\n async: true,\n wrapped,\n default: default_,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n async \"~run\"(dataset, config2) {\n if (dataset.value === null || dataset.value === void 0) {\n if (this.default !== void 0) {\n dataset.value = await getDefault(this, dataset, config2);\n }\n if (dataset.value === null || dataset.value === void 0) {\n dataset.typed = true;\n return dataset;\n }\n }\n return this.wrapped[\"~run\"](dataset, config2);\n }\n };\n}\n\n// src/schemas/number/number.ts\nfunction number(message) {\n return {\n kind: \"schema\",\n type: \"number\",\n reference: number,\n expects: \"number\",\n async: false,\n message,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n \"~run\"(dataset, config2) {\n if (typeof dataset.value === \"number\" && !isNaN(dataset.value)) {\n dataset.typed = true;\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/object/object.ts\nfunction object(entries, message) {\n return {\n kind: \"schema\",\n type: \"object\",\n reference: object,\n expects: \"Object\",\n async: false,\n entries,\n message,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n \"~run\"(dataset, config2) {\n const input = dataset.value;\n if (input && typeof input === \"object\") {\n dataset.typed = true;\n dataset.value = {};\n for (const key in this.entries) {\n const value2 = input[key];\n const valueDataset = this.entries[key][\"~run\"]({ value: value2 }, config2);\n if (valueDataset.issues) {\n const pathItem = {\n type: \"object\",\n origin: \"value\",\n input,\n key,\n value: value2\n };\n for (const issue of valueDataset.issues) {\n if (issue.path) {\n issue.path.unshift(pathItem);\n } else {\n issue.path = [pathItem];\n }\n dataset.issues?.push(issue);\n }\n if (!dataset.issues) {\n dataset.issues = valueDataset.issues;\n }\n if (config2.abortEarly) {\n dataset.typed = false;\n break;\n }\n }\n if (!valueDataset.typed) {\n dataset.typed = false;\n }\n if (valueDataset.value !== void 0 || key in input) {\n dataset.value[key] = valueDataset.value;\n }\n }\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/object/objectAsync.ts\nfunction objectAsync(entries, message) {\n return {\n kind: \"schema\",\n type: \"object\",\n reference: objectAsync,\n expects: \"Object\",\n async: true,\n entries,\n message,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n async \"~run\"(dataset, config2) {\n const input = dataset.value;\n if (input && typeof input === \"object\") {\n dataset.typed = true;\n dataset.value = {};\n const valueDatasets = await Promise.all(\n Object.entries(this.entries).map(async ([key, schema]) => {\n const value2 = input[key];\n return [\n key,\n value2,\n await schema[\"~run\"]({ value: value2 }, config2)\n ];\n })\n );\n for (const [key, value2, valueDataset] of valueDatasets) {\n if (valueDataset.issues) {\n const pathItem = {\n type: \"object\",\n origin: \"value\",\n input,\n key,\n value: value2\n };\n for (const issue of valueDataset.issues) {\n if (issue.path) {\n issue.path.unshift(pathItem);\n } else {\n issue.path = [pathItem];\n }\n dataset.issues?.push(issue);\n }\n if (!dataset.issues) {\n dataset.issues = valueDataset.issues;\n }\n if (config2.abortEarly) {\n dataset.typed = false;\n break;\n }\n }\n if (!valueDataset.typed) {\n dataset.typed = false;\n }\n if (valueDataset.value !== void 0 || key in input) {\n dataset.value[key] = valueDataset.value;\n }\n }\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/objectWithRest/objectWithRest.ts\nfunction objectWithRest(entries, rest, message) {\n return {\n kind: \"schema\",\n type: \"object_with_rest\",\n reference: objectWithRest,\n expects: \"Object\",\n async: false,\n entries,\n rest,\n message,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n \"~run\"(dataset, config2) {\n const input = dataset.value;\n if (input && typeof input === \"object\") {\n dataset.typed = true;\n dataset.value = {};\n for (const key in this.entries) {\n const value2 = input[key];\n const valueDataset = this.entries[key][\"~run\"]({ value: value2 }, config2);\n if (valueDataset.issues) {\n const pathItem = {\n type: \"object\",\n origin: \"value\",\n input,\n key,\n value: value2\n };\n for (const issue of valueDataset.issues) {\n if (issue.path) {\n issue.path.unshift(pathItem);\n } else {\n issue.path = [pathItem];\n }\n dataset.issues?.push(issue);\n }\n if (!dataset.issues) {\n dataset.issues = valueDataset.issues;\n }\n if (config2.abortEarly) {\n dataset.typed = false;\n break;\n }\n }\n if (!valueDataset.typed) {\n dataset.typed = false;\n }\n if (valueDataset.value !== void 0 || key in input) {\n dataset.value[key] = valueDataset.value;\n }\n }\n if (!dataset.issues || !config2.abortEarly) {\n for (const key in input) {\n if (_isValidObjectKey(input, key) && !(key in this.entries)) {\n const value2 = input[key];\n const valueDataset = this.rest[\"~run\"]({ value: value2 }, config2);\n if (valueDataset.issues) {\n const pathItem = {\n type: \"object\",\n origin: \"value\",\n input,\n key,\n value: value2\n };\n for (const issue of valueDataset.issues) {\n if (issue.path) {\n issue.path.unshift(pathItem);\n } else {\n issue.path = [pathItem];\n }\n dataset.issues?.push(issue);\n }\n if (!dataset.issues) {\n dataset.issues = valueDataset.issues;\n }\n if (config2.abortEarly) {\n dataset.typed = false;\n break;\n }\n }\n if (!valueDataset.typed) {\n dataset.typed = false;\n }\n dataset.value[key] = valueDataset.value;\n }\n }\n }\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/objectWithRest/objectWithRestAsync.ts\nfunction objectWithRestAsync(entries, rest, message) {\n return {\n kind: \"schema\",\n type: \"object_with_rest\",\n reference: objectWithRestAsync,\n expects: \"Object\",\n async: true,\n entries,\n rest,\n message,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n async \"~run\"(dataset, config2) {\n const input = dataset.value;\n if (input && typeof input === \"object\") {\n dataset.typed = true;\n dataset.value = {};\n const [normalDatasets, restDatasets] = await Promise.all([\n // Parse schema of each normal entry\n // Hint: We do not distinguish between missing and `undefined` entries.\n // The reason for this decision is that it reduces the bundle size, and\n // we also expect that most users will expect this behavior.\n Promise.all(\n Object.entries(this.entries).map(async ([key, schema]) => {\n const value2 = input[key];\n return [\n key,\n value2,\n await schema[\"~run\"]({ value: value2 }, config2)\n ];\n })\n ),\n // Parse other entries with rest schema\n // Hint: We exclude specific keys for security reasons\n Promise.all(\n Object.entries(input).filter(\n ([key]) => _isValidObjectKey(input, key) && !(key in this.entries)\n ).map(\n async ([key, value2]) => [\n key,\n value2,\n await this.rest[\"~run\"]({ value: value2 }, config2)\n ]\n )\n )\n ]);\n for (const [key, value2, valueDataset] of normalDatasets) {\n if (valueDataset.issues) {\n const pathItem = {\n type: \"object\",\n origin: \"value\",\n input,\n key,\n value: value2\n };\n for (const issue of valueDataset.issues) {\n if (issue.path) {\n issue.path.unshift(pathItem);\n } else {\n issue.path = [pathItem];\n }\n dataset.issues?.push(issue);\n }\n if (!dataset.issues) {\n dataset.issues = valueDataset.issues;\n }\n if (config2.abortEarly) {\n dataset.typed = false;\n break;\n }\n }\n if (!valueDataset.typed) {\n dataset.typed = false;\n }\n if (valueDataset.value !== void 0 || key in input) {\n dataset.value[key] = valueDataset.value;\n }\n }\n if (!dataset.issues || !config2.abortEarly) {\n for (const [key, value2, valueDataset] of restDatasets) {\n if (valueDataset.issues) {\n const pathItem = {\n type: \"object\",\n origin: \"value\",\n input,\n key,\n value: value2\n };\n for (const issue of valueDataset.issues) {\n if (issue.path) {\n issue.path.unshift(pathItem);\n } else {\n issue.path = [pathItem];\n }\n dataset.issues?.push(issue);\n }\n if (!dataset.issues) {\n dataset.issues = valueDataset.issues;\n }\n if (config2.abortEarly) {\n dataset.typed = false;\n break;\n }\n }\n if (!valueDataset.typed) {\n dataset.typed = false;\n }\n dataset.value[key] = valueDataset.value;\n }\n }\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/optional/optional.ts\nfunction optional(wrapped, default_) {\n return {\n kind: \"schema\",\n type: \"optional\",\n reference: optional,\n expects: `(${wrapped.expects} | undefined)`,\n async: false,\n wrapped,\n default: default_,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n \"~run\"(dataset, config2) {\n if (dataset.value === void 0) {\n if (this.default !== void 0) {\n dataset.value = getDefault(this, dataset, config2);\n }\n if (dataset.value === void 0) {\n dataset.typed = true;\n return dataset;\n }\n }\n return this.wrapped[\"~run\"](dataset, config2);\n }\n };\n}\n\n// src/schemas/optional/optionalAsync.ts\nfunction optionalAsync(wrapped, default_) {\n return {\n kind: \"schema\",\n type: \"optional\",\n reference: optionalAsync,\n expects: `(${wrapped.expects} | undefined)`,\n async: true,\n wrapped,\n default: default_,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n async \"~run\"(dataset, config2) {\n if (dataset.value === void 0) {\n if (this.default !== void 0) {\n dataset.value = await getDefault(this, dataset, config2);\n }\n if (dataset.value === void 0) {\n dataset.typed = true;\n return dataset;\n }\n }\n return this.wrapped[\"~run\"](dataset, config2);\n }\n };\n}\n\n// src/schemas/picklist/picklist.ts\nfunction picklist(options, message) {\n return {\n kind: \"schema\",\n type: \"picklist\",\n reference: picklist,\n expects: _joinExpects(options.map(_stringify), \"|\"),\n async: false,\n options,\n message,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n \"~run\"(dataset, config2) {\n if (this.options.includes(dataset.value)) {\n dataset.typed = true;\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/promise/promise.ts\nfunction promise(message) {\n return {\n kind: \"schema\",\n type: \"promise\",\n reference: promise,\n expects: \"Promise\",\n async: false,\n message,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n \"~run\"(dataset, config2) {\n if (dataset.value instanceof Promise) {\n dataset.typed = true;\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/record/record.ts\nfunction record(key, value2, message) {\n return {\n kind: \"schema\",\n type: \"record\",\n reference: record,\n expects: \"Object\",\n async: false,\n key,\n value: value2,\n message,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n \"~run\"(dataset, config2) {\n const input = dataset.value;\n if (input && typeof input === \"object\") {\n dataset.typed = true;\n dataset.value = {};\n for (const entryKey in input) {\n if (_isValidObjectKey(input, entryKey)) {\n const entryValue = input[entryKey];\n const keyDataset = this.key[\"~run\"]({ value: entryKey }, config2);\n if (keyDataset.issues) {\n const pathItem = {\n type: \"object\",\n origin: \"key\",\n input,\n key: entryKey,\n value: entryValue\n };\n for (const issue of keyDataset.issues) {\n issue.path = [pathItem];\n dataset.issues?.push(issue);\n }\n if (!dataset.issues) {\n dataset.issues = keyDataset.issues;\n }\n if (config2.abortEarly) {\n dataset.typed = false;\n break;\n }\n }\n const valueDataset = this.value[\"~run\"](\n { value: entryValue },\n config2\n );\n if (valueDataset.issues) {\n const pathItem = {\n type: \"object\",\n origin: \"value\",\n input,\n key: entryKey,\n value: entryValue\n };\n for (const issue of valueDataset.issues) {\n if (issue.path) {\n issue.path.unshift(pathItem);\n } else {\n issue.path = [pathItem];\n }\n dataset.issues?.push(issue);\n }\n if (!dataset.issues) {\n dataset.issues = valueDataset.issues;\n }\n if (config2.abortEarly) {\n dataset.typed = false;\n break;\n }\n }\n if (!keyDataset.typed || !valueDataset.typed) {\n dataset.typed = false;\n }\n if (keyDataset.typed) {\n dataset.value[keyDataset.value] = valueDataset.value;\n }\n }\n }\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/record/recordAsync.ts\nfunction recordAsync(key, value2, message) {\n return {\n kind: \"schema\",\n type: \"record\",\n reference: recordAsync,\n expects: \"Object\",\n async: true,\n key,\n value: value2,\n message,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n async \"~run\"(dataset, config2) {\n const input = dataset.value;\n if (input && typeof input === \"object\") {\n dataset.typed = true;\n dataset.value = {};\n const datasets = await Promise.all(\n Object.entries(input).filter(([key2]) => _isValidObjectKey(input, key2)).map(\n ([entryKey, entryValue]) => Promise.all([\n entryKey,\n entryValue,\n this.key[\"~run\"]({ value: entryKey }, config2),\n this.value[\"~run\"]({ value: entryValue }, config2)\n ])\n )\n );\n for (const [\n entryKey,\n entryValue,\n keyDataset,\n valueDataset\n ] of datasets) {\n if (keyDataset.issues) {\n const pathItem = {\n type: \"object\",\n origin: \"key\",\n input,\n key: entryKey,\n value: entryValue\n };\n for (const issue of keyDataset.issues) {\n issue.path = [pathItem];\n dataset.issues?.push(issue);\n }\n if (!dataset.issues) {\n dataset.issues = keyDataset.issues;\n }\n if (config2.abortEarly) {\n dataset.typed = false;\n break;\n }\n }\n if (valueDataset.issues) {\n const pathItem = {\n type: \"object\",\n origin: \"value\",\n input,\n key: entryKey,\n value: entryValue\n };\n for (const issue of valueDataset.issues) {\n if (issue.path) {\n issue.path.unshift(pathItem);\n } else {\n issue.path = [pathItem];\n }\n dataset.issues?.push(issue);\n }\n if (!dataset.issues) {\n dataset.issues = valueDataset.issues;\n }\n if (config2.abortEarly) {\n dataset.typed = false;\n break;\n }\n }\n if (!keyDataset.typed || !valueDataset.typed) {\n dataset.typed = false;\n }\n if (keyDataset.typed) {\n dataset.value[keyDataset.value] = valueDataset.value;\n }\n }\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/set/set.ts\nfunction set(value2, message) {\n return {\n kind: \"schema\",\n type: \"set\",\n reference: set,\n expects: \"Set\",\n async: false,\n value: value2,\n message,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n \"~run\"(dataset, config2) {\n const input = dataset.value;\n if (input instanceof Set) {\n dataset.typed = true;\n dataset.value = /* @__PURE__ */ new Set();\n for (const inputValue of input) {\n const valueDataset = this.value[\"~run\"](\n { value: inputValue },\n config2\n );\n if (valueDataset.issues) {\n const pathItem = {\n type: \"set\",\n origin: \"value\",\n input,\n key: null,\n value: inputValue\n };\n for (const issue of valueDataset.issues) {\n if (issue.path) {\n issue.path.unshift(pathItem);\n } else {\n issue.path = [pathItem];\n }\n dataset.issues?.push(issue);\n }\n if (!dataset.issues) {\n dataset.issues = valueDataset.issues;\n }\n if (config2.abortEarly) {\n dataset.typed = false;\n break;\n }\n }\n if (!valueDataset.typed) {\n dataset.typed = false;\n }\n dataset.value.add(valueDataset.value);\n }\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/set/setAsync.ts\nfunction setAsync(value2, message) {\n return {\n kind: \"schema\",\n type: \"set\",\n reference: setAsync,\n expects: \"Set\",\n async: true,\n value: value2,\n message,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n async \"~run\"(dataset, config2) {\n const input = dataset.value;\n if (input instanceof Set) {\n dataset.typed = true;\n dataset.value = /* @__PURE__ */ new Set();\n const valueDatasets = await Promise.all(\n [...input].map(\n async (inputValue) => [\n inputValue,\n await this.value[\"~run\"]({ value: inputValue }, config2)\n ]\n )\n );\n for (const [inputValue, valueDataset] of valueDatasets) {\n if (valueDataset.issues) {\n const pathItem = {\n type: \"set\",\n origin: \"value\",\n input,\n key: null,\n value: inputValue\n };\n for (const issue of valueDataset.issues) {\n if (issue.path) {\n issue.path.unshift(pathItem);\n } else {\n issue.path = [pathItem];\n }\n dataset.issues?.push(issue);\n }\n if (!dataset.issues) {\n dataset.issues = valueDataset.issues;\n }\n if (config2.abortEarly) {\n dataset.typed = false;\n break;\n }\n }\n if (!valueDataset.typed) {\n dataset.typed = false;\n }\n dataset.value.add(valueDataset.value);\n }\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/strictObject/strictObject.ts\nfunction strictObject(entries, message) {\n return {\n kind: \"schema\",\n type: \"strict_object\",\n reference: strictObject,\n expects: \"Object\",\n async: false,\n entries,\n message,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n \"~run\"(dataset, config2) {\n const input = dataset.value;\n if (input && typeof input === \"object\") {\n dataset.typed = true;\n dataset.value = {};\n for (const key in this.entries) {\n const value2 = input[key];\n const valueDataset = this.entries[key][\"~run\"]({ value: value2 }, config2);\n if (valueDataset.issues) {\n const pathItem = {\n type: \"object\",\n origin: \"value\",\n input,\n key,\n value: value2\n };\n for (const issue of valueDataset.issues) {\n if (issue.path) {\n issue.path.unshift(pathItem);\n } else {\n issue.path = [pathItem];\n }\n dataset.issues?.push(issue);\n }\n if (!dataset.issues) {\n dataset.issues = valueDataset.issues;\n }\n if (config2.abortEarly) {\n dataset.typed = false;\n break;\n }\n }\n if (!valueDataset.typed) {\n dataset.typed = false;\n }\n if (valueDataset.value !== void 0 || key in input) {\n dataset.value[key] = valueDataset.value;\n }\n }\n if (!dataset.issues || !config2.abortEarly) {\n for (const key in input) {\n if (!(key in this.entries)) {\n const value2 = input[key];\n _addIssue(this, \"type\", dataset, config2, {\n input: value2,\n expected: \"never\",\n path: [\n {\n type: \"object\",\n origin: \"value\",\n input,\n key,\n value: value2\n }\n ]\n });\n break;\n }\n }\n }\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/strictObject/strictObjectAsync.ts\nfunction strictObjectAsync(entries, message) {\n return {\n kind: \"schema\",\n type: \"strict_object\",\n reference: strictObjectAsync,\n expects: \"Object\",\n async: true,\n entries,\n message,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n async \"~run\"(dataset, config2) {\n const input = dataset.value;\n if (input && typeof input === \"object\") {\n dataset.typed = true;\n dataset.value = {};\n const valueDatasets = await Promise.all(\n Object.entries(this.entries).map(async ([key, schema]) => {\n const value2 = input[key];\n return [\n key,\n value2,\n await schema[\"~run\"]({ value: value2 }, config2)\n ];\n })\n );\n for (const [key, value2, valueDataset] of valueDatasets) {\n if (valueDataset.issues) {\n const pathItem = {\n type: \"object\",\n origin: \"value\",\n input,\n key,\n value: value2\n };\n for (const issue of valueDataset.issues) {\n if (issue.path) {\n issue.path.unshift(pathItem);\n } else {\n issue.path = [pathItem];\n }\n dataset.issues?.push(issue);\n }\n if (!dataset.issues) {\n dataset.issues = valueDataset.issues;\n }\n if (config2.abortEarly) {\n dataset.typed = false;\n break;\n }\n }\n if (!valueDataset.typed) {\n dataset.typed = false;\n }\n if (valueDataset.value !== void 0 || key in input) {\n dataset.value[key] = valueDataset.value;\n }\n }\n if (!dataset.issues || !config2.abortEarly) {\n for (const key in input) {\n if (!(key in this.entries)) {\n const value2 = input[key];\n _addIssue(this, \"type\", dataset, config2, {\n input: value2,\n expected: \"never\",\n path: [\n {\n type: \"object\",\n origin: \"value\",\n input,\n key,\n value: value2\n }\n ]\n });\n break;\n }\n }\n }\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/strictTuple/strictTuple.ts\nfunction strictTuple(items, message) {\n return {\n kind: \"schema\",\n type: \"strict_tuple\",\n reference: strictTuple,\n expects: \"Array\",\n async: false,\n items,\n message,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n \"~run\"(dataset, config2) {\n const input = dataset.value;\n if (Array.isArray(input)) {\n dataset.typed = true;\n dataset.value = [];\n for (let key = 0; key < this.items.length; key++) {\n const value2 = input[key];\n const itemDataset = this.items[key][\"~run\"]({ value: value2 }, config2);\n if (itemDataset.issues) {\n const pathItem = {\n type: \"array\",\n origin: \"value\",\n input,\n key,\n value: value2\n };\n for (const issue of itemDataset.issues) {\n if (issue.path) {\n issue.path.unshift(pathItem);\n } else {\n issue.path = [pathItem];\n }\n dataset.issues?.push(issue);\n }\n if (!dataset.issues) {\n dataset.issues = itemDataset.issues;\n }\n if (config2.abortEarly) {\n dataset.typed = false;\n break;\n }\n }\n if (!itemDataset.typed) {\n dataset.typed = false;\n }\n dataset.value.push(itemDataset.value);\n }\n if (!(dataset.issues && config2.abortEarly) && this.items.length < input.length) {\n const value2 = input[items.length];\n _addIssue(this, \"type\", dataset, config2, {\n input: value2,\n expected: \"never\",\n path: [\n {\n type: \"array\",\n origin: \"value\",\n input,\n key: this.items.length,\n value: value2\n }\n ]\n });\n }\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/strictTuple/strictTupleAsync.ts\nfunction strictTupleAsync(items, message) {\n return {\n kind: \"schema\",\n type: \"strict_tuple\",\n reference: strictTupleAsync,\n expects: \"Array\",\n async: true,\n items,\n message,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n async \"~run\"(dataset, config2) {\n const input = dataset.value;\n if (Array.isArray(input)) {\n dataset.typed = true;\n dataset.value = [];\n const itemDatasets = await Promise.all(\n this.items.map(async (item, key) => {\n const value2 = input[key];\n return [key, value2, await item[\"~run\"]({ value: value2 }, config2)];\n })\n );\n for (const [key, value2, itemDataset] of itemDatasets) {\n if (itemDataset.issues) {\n const pathItem = {\n type: \"array\",\n origin: \"value\",\n input,\n key,\n value: value2\n };\n for (const issue of itemDataset.issues) {\n if (issue.path) {\n issue.path.unshift(pathItem);\n } else {\n issue.path = [pathItem];\n }\n dataset.issues?.push(issue);\n }\n if (!dataset.issues) {\n dataset.issues = itemDataset.issues;\n }\n if (config2.abortEarly) {\n dataset.typed = false;\n break;\n }\n }\n if (!itemDataset.typed) {\n dataset.typed = false;\n }\n dataset.value.push(itemDataset.value);\n }\n if (!(dataset.issues && config2.abortEarly) && this.items.length < input.length) {\n const value2 = input[items.length];\n _addIssue(this, \"type\", dataset, config2, {\n input: value2,\n expected: \"never\",\n path: [\n {\n type: \"array\",\n origin: \"value\",\n input,\n key: this.items.length,\n value: value2\n }\n ]\n });\n }\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/string/string.ts\nfunction string(message) {\n return {\n kind: \"schema\",\n type: \"string\",\n reference: string,\n expects: \"string\",\n async: false,\n message,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n \"~run\"(dataset, config2) {\n if (typeof dataset.value === \"string\") {\n dataset.typed = true;\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/symbol/symbol.ts\nfunction symbol(message) {\n return {\n kind: \"schema\",\n type: \"symbol\",\n reference: symbol,\n expects: \"symbol\",\n async: false,\n message,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n \"~run\"(dataset, config2) {\n if (typeof dataset.value === \"symbol\") {\n dataset.typed = true;\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/tuple/tuple.ts\nfunction tuple(items, message) {\n return {\n kind: \"schema\",\n type: \"tuple\",\n reference: tuple,\n expects: \"Array\",\n async: false,\n items,\n message,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n \"~run\"(dataset, config2) {\n const input = dataset.value;\n if (Array.isArray(input)) {\n dataset.typed = true;\n dataset.value = [];\n for (let key = 0; key < this.items.length; key++) {\n const value2 = input[key];\n const itemDataset = this.items[key][\"~run\"]({ value: value2 }, config2);\n if (itemDataset.issues) {\n const pathItem = {\n type: \"array\",\n origin: \"value\",\n input,\n key,\n value: value2\n };\n for (const issue of itemDataset.issues) {\n if (issue.path) {\n issue.path.unshift(pathItem);\n } else {\n issue.path = [pathItem];\n }\n dataset.issues?.push(issue);\n }\n if (!dataset.issues) {\n dataset.issues = itemDataset.issues;\n }\n if (config2.abortEarly) {\n dataset.typed = false;\n break;\n }\n }\n if (!itemDataset.typed) {\n dataset.typed = false;\n }\n dataset.value.push(itemDataset.value);\n }\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/tuple/tupleAsync.ts\nfunction tupleAsync(items, message) {\n return {\n kind: \"schema\",\n type: \"tuple\",\n reference: tupleAsync,\n expects: \"Array\",\n async: true,\n items,\n message,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n async \"~run\"(dataset, config2) {\n const input = dataset.value;\n if (Array.isArray(input)) {\n dataset.typed = true;\n dataset.value = [];\n const itemDatasets = await Promise.all(\n this.items.map(async (item, key) => {\n const value2 = input[key];\n return [key, value2, await item[\"~run\"]({ value: value2 }, config2)];\n })\n );\n for (const [key, value2, itemDataset] of itemDatasets) {\n if (itemDataset.issues) {\n const pathItem = {\n type: \"array\",\n origin: \"value\",\n input,\n key,\n value: value2\n };\n for (const issue of itemDataset.issues) {\n if (issue.path) {\n issue.path.unshift(pathItem);\n } else {\n issue.path = [pathItem];\n }\n dataset.issues?.push(issue);\n }\n if (!dataset.issues) {\n dataset.issues = itemDataset.issues;\n }\n if (config2.abortEarly) {\n dataset.typed = false;\n break;\n }\n }\n if (!itemDataset.typed) {\n dataset.typed = false;\n }\n dataset.value.push(itemDataset.value);\n }\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/tupleWithRest/tupleWithRest.ts\nfunction tupleWithRest(items, rest, message) {\n return {\n kind: \"schema\",\n type: \"tuple_with_rest\",\n reference: tupleWithRest,\n expects: \"Array\",\n async: false,\n items,\n rest,\n message,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n \"~run\"(dataset, config2) {\n const input = dataset.value;\n if (Array.isArray(input)) {\n dataset.typed = true;\n dataset.value = [];\n for (let key = 0; key < this.items.length; key++) {\n const value2 = input[key];\n const itemDataset = this.items[key][\"~run\"]({ value: value2 }, config2);\n if (itemDataset.issues) {\n const pathItem = {\n type: \"array\",\n origin: \"value\",\n input,\n key,\n value: value2\n };\n for (const issue of itemDataset.issues) {\n if (issue.path) {\n issue.path.unshift(pathItem);\n } else {\n issue.path = [pathItem];\n }\n dataset.issues?.push(issue);\n }\n if (!dataset.issues) {\n dataset.issues = itemDataset.issues;\n }\n if (config2.abortEarly) {\n dataset.typed = false;\n break;\n }\n }\n if (!itemDataset.typed) {\n dataset.typed = false;\n }\n dataset.value.push(itemDataset.value);\n }\n if (!dataset.issues || !config2.abortEarly) {\n for (let key = this.items.length; key < input.length; key++) {\n const value2 = input[key];\n const itemDataset = this.rest[\"~run\"]({ value: value2 }, config2);\n if (itemDataset.issues) {\n const pathItem = {\n type: \"array\",\n origin: \"value\",\n input,\n key,\n value: value2\n };\n for (const issue of itemDataset.issues) {\n if (issue.path) {\n issue.path.unshift(pathItem);\n } else {\n issue.path = [pathItem];\n }\n dataset.issues?.push(issue);\n }\n if (!dataset.issues) {\n dataset.issues = itemDataset.issues;\n }\n if (config2.abortEarly) {\n dataset.typed = false;\n break;\n }\n }\n if (!itemDataset.typed) {\n dataset.typed = false;\n }\n dataset.value.push(itemDataset.value);\n }\n }\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/tupleWithRest/tupleWithRestAsync.ts\nfunction tupleWithRestAsync(items, rest, message) {\n return {\n kind: \"schema\",\n type: \"tuple_with_rest\",\n reference: tupleWithRestAsync,\n expects: \"Array\",\n async: true,\n items,\n rest,\n message,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n async \"~run\"(dataset, config2) {\n const input = dataset.value;\n if (Array.isArray(input)) {\n dataset.typed = true;\n dataset.value = [];\n const [normalDatasets, restDatasets] = await Promise.all([\n // Parse schema of each normal item\n Promise.all(\n this.items.map(async (item, key) => {\n const value2 = input[key];\n return [\n key,\n value2,\n await item[\"~run\"]({ value: value2 }, config2)\n ];\n })\n ),\n // Parse other items with rest schema\n Promise.all(\n input.slice(this.items.length).map(async (value2, key) => {\n return [\n key + this.items.length,\n value2,\n await this.rest[\"~run\"]({ value: value2 }, config2)\n ];\n })\n )\n ]);\n for (const [key, value2, itemDataset] of normalDatasets) {\n if (itemDataset.issues) {\n const pathItem = {\n type: \"array\",\n origin: \"value\",\n input,\n key,\n value: value2\n };\n for (const issue of itemDataset.issues) {\n if (issue.path) {\n issue.path.unshift(pathItem);\n } else {\n issue.path = [pathItem];\n }\n dataset.issues?.push(issue);\n }\n if (!dataset.issues) {\n dataset.issues = itemDataset.issues;\n }\n if (config2.abortEarly) {\n dataset.typed = false;\n break;\n }\n }\n if (!itemDataset.typed) {\n dataset.typed = false;\n }\n dataset.value.push(itemDataset.value);\n }\n if (!dataset.issues || !config2.abortEarly) {\n for (const [key, value2, itemDataset] of restDatasets) {\n if (itemDataset.issues) {\n const pathItem = {\n type: \"array\",\n origin: \"value\",\n input,\n key,\n value: value2\n };\n for (const issue of itemDataset.issues) {\n if (issue.path) {\n issue.path.unshift(pathItem);\n } else {\n issue.path = [pathItem];\n }\n dataset.issues?.push(issue);\n }\n if (!dataset.issues) {\n dataset.issues = itemDataset.issues;\n }\n if (config2.abortEarly) {\n dataset.typed = false;\n break;\n }\n }\n if (!itemDataset.typed) {\n dataset.typed = false;\n }\n dataset.value.push(itemDataset.value);\n }\n }\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/undefined/undefined.ts\nfunction undefined_(message) {\n return {\n kind: \"schema\",\n type: \"undefined\",\n reference: undefined_,\n expects: \"undefined\",\n async: false,\n message,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n \"~run\"(dataset, config2) {\n if (dataset.value === void 0) {\n dataset.typed = true;\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/undefinedable/undefinedable.ts\nfunction undefinedable(wrapped, default_) {\n return {\n kind: \"schema\",\n type: \"undefinedable\",\n reference: undefinedable,\n expects: `(${wrapped.expects} | undefined)`,\n async: false,\n wrapped,\n default: default_,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n \"~run\"(dataset, config2) {\n if (dataset.value === void 0) {\n if (this.default !== void 0) {\n dataset.value = getDefault(this, dataset, config2);\n }\n if (dataset.value === void 0) {\n dataset.typed = true;\n return dataset;\n }\n }\n return this.wrapped[\"~run\"](dataset, config2);\n }\n };\n}\n\n// src/schemas/undefinedable/undefinedableAsync.ts\nfunction undefinedableAsync(wrapped, default_) {\n return {\n kind: \"schema\",\n type: \"undefinedable\",\n reference: undefinedableAsync,\n expects: `(${wrapped.expects} | undefined)`,\n async: true,\n wrapped,\n default: default_,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n async \"~run\"(dataset, config2) {\n if (dataset.value === void 0) {\n if (this.default !== void 0) {\n dataset.value = await getDefault(this, dataset, config2);\n }\n if (dataset.value === void 0) {\n dataset.typed = true;\n return dataset;\n }\n }\n return this.wrapped[\"~run\"](dataset, config2);\n }\n };\n}\n\n// src/schemas/union/utils/_subIssues/_subIssues.ts\nfunction _subIssues(datasets) {\n let issues;\n if (datasets) {\n for (const dataset of datasets) {\n if (issues) {\n issues.push(...dataset.issues);\n } else {\n issues = dataset.issues;\n }\n }\n }\n return issues;\n}\n\n// src/schemas/union/union.ts\nfunction union(options, message) {\n return {\n kind: \"schema\",\n type: \"union\",\n reference: union,\n expects: _joinExpects(\n options.map((option) => option.expects),\n \"|\"\n ),\n async: false,\n options,\n message,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n \"~run\"(dataset, config2) {\n let validDataset;\n let typedDatasets;\n let untypedDatasets;\n for (const schema of this.options) {\n const optionDataset = schema[\"~run\"]({ value: dataset.value }, config2);\n if (optionDataset.typed) {\n if (optionDataset.issues) {\n if (typedDatasets) {\n typedDatasets.push(optionDataset);\n } else {\n typedDatasets = [optionDataset];\n }\n } else {\n validDataset = optionDataset;\n break;\n }\n } else {\n if (untypedDatasets) {\n untypedDatasets.push(optionDataset);\n } else {\n untypedDatasets = [optionDataset];\n }\n }\n }\n if (validDataset) {\n return validDataset;\n }\n if (typedDatasets) {\n if (typedDatasets.length === 1) {\n return typedDatasets[0];\n }\n _addIssue(this, \"type\", dataset, config2, {\n issues: _subIssues(typedDatasets)\n });\n dataset.typed = true;\n } else if (untypedDatasets?.length === 1) {\n return untypedDatasets[0];\n } else {\n _addIssue(this, \"type\", dataset, config2, {\n issues: _subIssues(untypedDatasets)\n });\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/union/unionAsync.ts\nfunction unionAsync(options, message) {\n return {\n kind: \"schema\",\n type: \"union\",\n reference: unionAsync,\n expects: _joinExpects(\n options.map((option) => option.expects),\n \"|\"\n ),\n async: true,\n options,\n message,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n async \"~run\"(dataset, config2) {\n let validDataset;\n let typedDatasets;\n let untypedDatasets;\n for (const schema of this.options) {\n const optionDataset = await schema[\"~run\"](\n { value: dataset.value },\n config2\n );\n if (optionDataset.typed) {\n if (optionDataset.issues) {\n if (typedDatasets) {\n typedDatasets.push(optionDataset);\n } else {\n typedDatasets = [optionDataset];\n }\n } else {\n validDataset = optionDataset;\n break;\n }\n } else {\n if (untypedDatasets) {\n untypedDatasets.push(optionDataset);\n } else {\n untypedDatasets = [optionDataset];\n }\n }\n }\n if (validDataset) {\n return validDataset;\n }\n if (typedDatasets) {\n if (typedDatasets.length === 1) {\n return typedDatasets[0];\n }\n _addIssue(this, \"type\", dataset, config2, {\n issues: _subIssues(typedDatasets)\n });\n dataset.typed = true;\n } else if (untypedDatasets?.length === 1) {\n return untypedDatasets[0];\n } else {\n _addIssue(this, \"type\", dataset, config2, {\n issues: _subIssues(untypedDatasets)\n });\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/unknown/unknown.ts\nfunction unknown() {\n return {\n kind: \"schema\",\n type: \"unknown\",\n reference: unknown,\n expects: \"unknown\",\n async: false,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n \"~run\"(dataset) {\n dataset.typed = true;\n return dataset;\n }\n };\n}\n\n// src/schemas/variant/variant.ts\nfunction variant(key, options, message) {\n return {\n kind: \"schema\",\n type: \"variant\",\n reference: variant,\n expects: \"Object\",\n async: false,\n key,\n options,\n message,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n \"~run\"(dataset, config2) {\n const input = dataset.value;\n if (input && typeof input === \"object\") {\n let outputDataset;\n let maxDiscriminatorPriority = 0;\n let invalidDiscriminatorKey = this.key;\n let expectedDiscriminators = [];\n const parseOptions = (variant2, allKeys) => {\n for (const schema of variant2.options) {\n if (schema.type === \"variant\") {\n parseOptions(schema, new Set(allKeys).add(schema.key));\n } else {\n let keysAreValid = true;\n let currentPriority = 0;\n for (const currentKey of allKeys) {\n if (schema.entries[currentKey][\"~run\"](\n // @ts-expect-error\n { typed: false, value: input[currentKey] },\n config2\n ).issues) {\n keysAreValid = false;\n if (invalidDiscriminatorKey !== currentKey && (maxDiscriminatorPriority < currentPriority || maxDiscriminatorPriority === currentPriority && currentKey in input && !(invalidDiscriminatorKey in input))) {\n maxDiscriminatorPriority = currentPriority;\n invalidDiscriminatorKey = currentKey;\n expectedDiscriminators = [];\n }\n if (invalidDiscriminatorKey === currentKey) {\n expectedDiscriminators.push(\n schema.entries[currentKey].expects\n );\n }\n break;\n }\n currentPriority++;\n }\n if (keysAreValid) {\n const optionDataset = schema[\"~run\"]({ value: input }, config2);\n if (!outputDataset || !outputDataset.typed && optionDataset.typed) {\n outputDataset = optionDataset;\n }\n }\n }\n if (outputDataset && !outputDataset.issues) {\n break;\n }\n }\n };\n parseOptions(this, /* @__PURE__ */ new Set([this.key]));\n if (outputDataset) {\n return outputDataset;\n }\n _addIssue(this, \"type\", dataset, config2, {\n // @ts-expect-error\n input: input[invalidDiscriminatorKey],\n expected: _joinExpects(expectedDiscriminators, \"|\"),\n path: [\n {\n type: \"object\",\n origin: \"value\",\n input,\n key: invalidDiscriminatorKey,\n // @ts-expect-error\n value: input[invalidDiscriminatorKey]\n }\n ]\n });\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/variant/variantAsync.ts\nfunction variantAsync(key, options, message) {\n return {\n kind: \"schema\",\n type: \"variant\",\n reference: variantAsync,\n expects: \"Object\",\n async: true,\n key,\n options,\n message,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n async \"~run\"(dataset, config2) {\n const input = dataset.value;\n if (input && typeof input === \"object\") {\n let outputDataset;\n let maxDiscriminatorPriority = 0;\n let invalidDiscriminatorKey = this.key;\n let expectedDiscriminators = [];\n const parseOptions = async (variant2, allKeys) => {\n for (const schema of variant2.options) {\n if (schema.type === \"variant\") {\n await parseOptions(schema, new Set(allKeys).add(schema.key));\n } else {\n let keysAreValid = true;\n let currentPriority = 0;\n for (const currentKey of allKeys) {\n if ((await schema.entries[currentKey][\"~run\"](\n // @ts-expect-error\n { typed: false, value: input[currentKey] },\n config2\n )).issues) {\n keysAreValid = false;\n if (invalidDiscriminatorKey !== currentKey && (maxDiscriminatorPriority < currentPriority || maxDiscriminatorPriority === currentPriority && currentKey in input && !(invalidDiscriminatorKey in input))) {\n maxDiscriminatorPriority = currentPriority;\n invalidDiscriminatorKey = currentKey;\n expectedDiscriminators = [];\n }\n if (invalidDiscriminatorKey === currentKey) {\n expectedDiscriminators.push(\n schema.entries[currentKey].expects\n );\n }\n break;\n }\n currentPriority++;\n }\n if (keysAreValid) {\n const optionDataset = await schema[\"~run\"](\n { value: input },\n config2\n );\n if (!outputDataset || !outputDataset.typed && optionDataset.typed) {\n outputDataset = optionDataset;\n }\n }\n }\n if (outputDataset && !outputDataset.issues) {\n break;\n }\n }\n };\n await parseOptions(this, /* @__PURE__ */ new Set([this.key]));\n if (outputDataset) {\n return outputDataset;\n }\n _addIssue(this, \"type\", dataset, config2, {\n // @ts-expect-error\n input: input[invalidDiscriminatorKey],\n expected: _joinExpects(expectedDiscriminators, \"|\"),\n path: [\n {\n type: \"object\",\n origin: \"value\",\n input,\n key: invalidDiscriminatorKey,\n // @ts-expect-error\n value: input[invalidDiscriminatorKey]\n }\n ]\n });\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/void/void.ts\nfunction void_(message) {\n return {\n kind: \"schema\",\n type: \"void\",\n reference: void_,\n expects: \"void\",\n async: false,\n message,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n \"~run\"(dataset, config2) {\n if (dataset.value === void 0) {\n dataset.typed = true;\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/methods/keyof/keyof.ts\nfunction keyof(schema, message) {\n return picklist(Object.keys(schema.entries), message);\n}\n\n// src/methods/omit/omit.ts\nfunction omit(schema, keys) {\n const entries = {\n ...schema.entries\n };\n for (const key of keys) {\n delete entries[key];\n }\n return {\n ...schema,\n entries,\n get \"~standard\"() {\n return _getStandardProps(this);\n }\n };\n}\n\n// src/methods/parse/parse.ts\nfunction parse(schema, input, config2) {\n const dataset = schema[\"~run\"]({ value: input }, getGlobalConfig(config2));\n if (dataset.issues) {\n throw new ValiError(dataset.issues);\n }\n return dataset.value;\n}\n\n// src/methods/parse/parseAsync.ts\nasync function parseAsync(schema, input, config2) {\n const dataset = await schema[\"~run\"](\n { value: input },\n getGlobalConfig(config2)\n );\n if (dataset.issues) {\n throw new ValiError(dataset.issues);\n }\n return dataset.value;\n}\n\n// src/methods/parser/parser.ts\nfunction parser(schema, config2) {\n const func = (input) => parse(schema, input, config2);\n func.schema = schema;\n func.config = config2;\n return func;\n}\n\n// src/methods/parser/parserAsync.ts\nfunction parserAsync(schema, config2) {\n const func = (input) => parseAsync(schema, input, config2);\n func.schema = schema;\n func.config = config2;\n return func;\n}\n\n// src/methods/partial/partial.ts\nfunction partial(schema, keys) {\n const entries = {};\n for (const key in schema.entries) {\n entries[key] = !keys || keys.includes(key) ? optional(schema.entries[key]) : schema.entries[key];\n }\n return {\n ...schema,\n entries,\n get \"~standard\"() {\n return _getStandardProps(this);\n }\n };\n}\n\n// src/methods/partial/partialAsync.ts\nfunction partialAsync(schema, keys) {\n const entries = {};\n for (const key in schema.entries) {\n entries[key] = !keys || keys.includes(key) ? optionalAsync(schema.entries[key]) : schema.entries[key];\n }\n return {\n ...schema,\n entries,\n get \"~standard\"() {\n return _getStandardProps(this);\n }\n };\n}\n\n// src/methods/pick/pick.ts\nfunction pick(schema, keys) {\n const entries = {};\n for (const key of keys) {\n entries[key] = schema.entries[key];\n }\n return {\n ...schema,\n entries,\n get \"~standard\"() {\n return _getStandardProps(this);\n }\n };\n}\n\n// src/methods/pipe/pipe.ts\nfunction pipe(...pipe2) {\n return {\n ...pipe2[0],\n pipe: pipe2,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n \"~run\"(dataset, config2) {\n for (const item of pipe2) {\n if (item.kind !== \"metadata\") {\n if (dataset.issues && (item.kind === \"schema\" || item.kind === \"transformation\")) {\n dataset.typed = false;\n break;\n }\n if (!dataset.issues || !config2.abortEarly && !config2.abortPipeEarly) {\n dataset = item[\"~run\"](dataset, config2);\n }\n }\n }\n return dataset;\n }\n };\n}\n\n// src/methods/pipe/pipeAsync.ts\nfunction pipeAsync(...pipe2) {\n return {\n ...pipe2[0],\n pipe: pipe2,\n async: true,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n async \"~run\"(dataset, config2) {\n for (const item of pipe2) {\n if (item.kind !== \"metadata\") {\n if (dataset.issues && (item.kind === \"schema\" || item.kind === \"transformation\")) {\n dataset.typed = false;\n break;\n }\n if (!dataset.issues || !config2.abortEarly && !config2.abortPipeEarly) {\n dataset = await item[\"~run\"](dataset, config2);\n }\n }\n }\n return dataset;\n }\n };\n}\n\n// src/methods/required/required.ts\nfunction required(schema, arg2, arg3) {\n const keys = Array.isArray(arg2) ? arg2 : void 0;\n const message = Array.isArray(arg2) ? arg3 : arg2;\n const entries = {};\n for (const key in schema.entries) {\n entries[key] = !keys || keys.includes(key) ? nonOptional(schema.entries[key], message) : schema.entries[key];\n }\n return {\n ...schema,\n entries,\n get \"~standard\"() {\n return _getStandardProps(this);\n }\n };\n}\n\n// src/methods/required/requiredAsync.ts\nfunction requiredAsync(schema, arg2, arg3) {\n const keys = Array.isArray(arg2) ? arg2 : void 0;\n const message = Array.isArray(arg2) ? arg3 : arg2;\n const entries = {};\n for (const key in schema.entries) {\n entries[key] = !keys || keys.includes(key) ? nonOptionalAsync(schema.entries[key], message) : schema.entries[key];\n }\n return {\n ...schema,\n entries,\n get \"~standard\"() {\n return _getStandardProps(this);\n }\n };\n}\n\n// src/methods/safeParse/safeParse.ts\nfunction safeParse(schema, input, config2) {\n const dataset = schema[\"~run\"]({ value: input }, getGlobalConfig(config2));\n return {\n typed: dataset.typed,\n success: !dataset.issues,\n output: dataset.value,\n issues: dataset.issues\n };\n}\n\n// src/methods/safeParse/safeParseAsync.ts\nasync function safeParseAsync(schema, input, config2) {\n const dataset = await schema[\"~run\"](\n { value: input },\n getGlobalConfig(config2)\n );\n return {\n typed: dataset.typed,\n success: !dataset.issues,\n output: dataset.value,\n issues: dataset.issues\n };\n}\n\n// src/methods/safeParser/safeParser.ts\nfunction safeParser(schema, config2) {\n const func = (input) => safeParse(schema, input, config2);\n func.schema = schema;\n func.config = config2;\n return func;\n}\n\n// src/methods/safeParser/safeParserAsync.ts\nfunction safeParserAsync(schema, config2) {\n const func = (input) => safeParseAsync(schema, input, config2);\n func.schema = schema;\n func.config = config2;\n return func;\n}\n\n// src/methods/unwrap/unwrap.ts\nfunction unwrap(schema) {\n return schema.wrapped;\n}\nexport {\n BASE64_REGEX,\n BIC_REGEX,\n CUID2_REGEX,\n DECIMAL_REGEX,\n DIGITS_REGEX,\n EMAIL_REGEX,\n EMOJI_REGEX,\n HEXADECIMAL_REGEX,\n HEX_COLOR_REGEX,\n IMEI_REGEX,\n IPV4_REGEX,\n IPV6_REGEX,\n IP_REGEX,\n ISO_DATE_REGEX,\n ISO_DATE_TIME_REGEX,\n ISO_TIMESTAMP_REGEX,\n ISO_TIME_REGEX,\n ISO_TIME_SECOND_REGEX,\n ISO_WEEK_REGEX,\n MAC48_REGEX,\n MAC64_REGEX,\n MAC_REGEX,\n NANO_ID_REGEX,\n OCTAL_REGEX,\n ULID_REGEX,\n UUID_REGEX,\n ValiError,\n _addIssue,\n _getByteCount,\n _getGraphemeCount,\n _getStandardProps,\n _getWordCount,\n _isLuhnAlgo,\n _isValidObjectKey,\n _joinExpects,\n _stringify,\n any,\n args,\n argsAsync,\n array,\n arrayAsync,\n assert,\n awaitAsync,\n base64,\n bic,\n bigint,\n blob,\n boolean,\n brand,\n bytes,\n check,\n checkAsync,\n checkItems,\n checkItemsAsync,\n config,\n creditCard,\n cuid2,\n custom,\n customAsync,\n date,\n decimal,\n deleteGlobalConfig,\n deleteGlobalMessage,\n deleteSchemaMessage,\n deleteSpecificMessage,\n description,\n digits,\n email,\n emoji,\n empty,\n endsWith,\n entriesFromList,\n enum_ as enum,\n enum_,\n everyItem,\n excludes,\n fallback,\n fallbackAsync,\n file,\n filterItems,\n findItem,\n finite,\n flatten,\n forward,\n forwardAsync,\n function_ as function,\n function_,\n getDefault,\n getDefaults,\n getDefaultsAsync,\n getDotPath,\n getFallback,\n getFallbacks,\n getFallbacksAsync,\n getGlobalConfig,\n getGlobalMessage,\n getSchemaMessage,\n getSpecificMessage,\n graphemes,\n hash,\n hexColor,\n hexadecimal,\n imei,\n includes,\n instance,\n integer,\n intersect,\n intersectAsync,\n ip,\n ipv4,\n ipv6,\n is,\n isOfKind,\n isOfType,\n isValiError,\n isoDate,\n isoDateTime,\n isoTime,\n isoTimeSecond,\n isoTimestamp,\n isoWeek,\n keyof,\n lazy,\n lazyAsync,\n length,\n literal,\n looseObject,\n looseObjectAsync,\n looseTuple,\n looseTupleAsync,\n mac,\n mac48,\n mac64,\n map,\n mapAsync,\n mapItems,\n maxBytes,\n maxGraphemes,\n maxLength,\n maxSize,\n maxValue,\n maxWords,\n metadata,\n mimeType,\n minBytes,\n minGraphemes,\n minLength,\n minSize,\n minValue,\n minWords,\n multipleOf,\n nan,\n nanoid,\n never,\n nonEmpty,\n nonNullable,\n nonNullableAsync,\n nonNullish,\n nonNullishAsync,\n nonOptional,\n nonOptionalAsync,\n normalize,\n notBytes,\n notGraphemes,\n notLength,\n notSize,\n notValue,\n notWords,\n null_ as null,\n null_,\n nullable,\n nullableAsync,\n nullish,\n nullishAsync,\n number,\n object,\n objectAsync,\n objectWithRest,\n objectWithRestAsync,\n octal,\n omit,\n optional,\n optionalAsync,\n parse,\n parseAsync,\n parser,\n parserAsync,\n partial,\n partialAsync,\n partialCheck,\n partialCheckAsync,\n pick,\n picklist,\n pipe,\n pipeAsync,\n promise,\n rawCheck,\n rawCheckAsync,\n rawTransform,\n rawTransformAsync,\n readonly,\n record,\n recordAsync,\n reduceItems,\n regex,\n required,\n requiredAsync,\n returns,\n returnsAsync,\n safeInteger,\n safeParse,\n safeParseAsync,\n safeParser,\n safeParserAsync,\n set,\n setAsync,\n setGlobalConfig,\n setGlobalMessage,\n setSchemaMessage,\n setSpecificMessage,\n size,\n someItem,\n sortItems,\n startsWith,\n strictObject,\n strictObjectAsync,\n strictTuple,\n strictTupleAsync,\n string,\n symbol,\n title,\n toLowerCase,\n toMaxValue,\n toMinValue,\n toUpperCase,\n transform,\n transformAsync,\n trim,\n trimEnd,\n trimStart,\n tuple,\n tupleAsync,\n tupleWithRest,\n tupleWithRestAsync,\n ulid,\n undefined_ as undefined,\n undefined_,\n undefinedable,\n undefinedableAsync,\n union,\n unionAsync,\n unknown,\n unwrap,\n url,\n uuid,\n value,\n variant,\n variantAsync,\n void_ as void,\n void_,\n words\n};\n"],"names":[],"mappings":"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","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/web/app/themes/haiku-atelier-2024/assets/js/index.vOxCZRxB.js.map b/web/app/themes/haiku-atelier-2024/assets/js/index.vOxCZRxB.js.map deleted file mode 100644 index 0ad9c9e5..00000000 --- a/web/app/themes/haiku-atelier-2024/assets/js/index.vOxCZRxB.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.vOxCZRxB.js","sources":["../../../../../../node_modules/.pnpm/valibot@1.0.0-beta.6_typescript@5.7.0-dev.20241105/node_modules/valibot/dist/index.js"],"sourcesContent":["// src/storages/globalConfig/globalConfig.ts\nvar store;\nfunction setGlobalConfig(config2) {\n store = { ...store, ...config2 };\n}\nfunction getGlobalConfig(config2) {\n return {\n lang: config2?.lang ?? store?.lang,\n message: config2?.message,\n abortEarly: config2?.abortEarly ?? store?.abortEarly,\n abortPipeEarly: config2?.abortPipeEarly ?? store?.abortPipeEarly\n };\n}\nfunction deleteGlobalConfig() {\n store = void 0;\n}\n\n// src/storages/globalMessage/globalMessage.ts\nvar store2;\nfunction setGlobalMessage(message, lang) {\n if (!store2) store2 = /* @__PURE__ */ new Map();\n store2.set(lang, message);\n}\nfunction getGlobalMessage(lang) {\n return store2?.get(lang);\n}\nfunction deleteGlobalMessage(lang) {\n store2?.delete(lang);\n}\n\n// src/storages/schemaMessage/schemaMessage.ts\nvar store3;\nfunction setSchemaMessage(message, lang) {\n if (!store3) store3 = /* @__PURE__ */ new Map();\n store3.set(lang, message);\n}\nfunction getSchemaMessage(lang) {\n return store3?.get(lang);\n}\nfunction deleteSchemaMessage(lang) {\n store3?.delete(lang);\n}\n\n// src/storages/specificMessage/specificMessage.ts\nvar store4;\nfunction setSpecificMessage(reference, message, lang) {\n if (!store4) store4 = /* @__PURE__ */ new Map();\n if (!store4.get(reference)) store4.set(reference, /* @__PURE__ */ new Map());\n store4.get(reference).set(lang, message);\n}\nfunction getSpecificMessage(reference, lang) {\n return store4?.get(reference)?.get(lang);\n}\nfunction deleteSpecificMessage(reference, lang) {\n store4?.get(reference)?.delete(lang);\n}\n\n// src/utils/_stringify/_stringify.ts\nfunction _stringify(input) {\n const type = typeof input;\n if (type === \"string\") {\n return `\"${input}\"`;\n }\n if (type === \"number\" || type === \"bigint\" || type === \"boolean\") {\n return `${input}`;\n }\n if (type === \"object\" || type === \"function\") {\n return (input && Object.getPrototypeOf(input)?.constructor?.name) ?? \"null\";\n }\n return type;\n}\n\n// src/utils/_addIssue/_addIssue.ts\nfunction _addIssue(context, label, dataset, config2, other) {\n const input = other && \"input\" in other ? other.input : dataset.value;\n const expected = other?.expected ?? context.expects ?? null;\n const received = other?.received ?? _stringify(input);\n const issue = {\n kind: context.kind,\n type: context.type,\n input,\n expected,\n received,\n message: `Invalid ${label}: ${expected ? `Expected ${expected} but r` : \"R\"}eceived ${received}`,\n requirement: context.requirement,\n path: other?.path,\n issues: other?.issues,\n lang: config2.lang,\n abortEarly: config2.abortEarly,\n abortPipeEarly: config2.abortPipeEarly\n };\n const isSchema = context.kind === \"schema\";\n const message = other?.message ?? context.message ?? getSpecificMessage(context.reference, issue.lang) ?? (isSchema ? getSchemaMessage(issue.lang) : null) ?? config2.message ?? getGlobalMessage(issue.lang);\n if (message) {\n issue.message = typeof message === \"function\" ? (\n // @ts-expect-error\n message(issue)\n ) : message;\n }\n if (isSchema) {\n dataset.typed = false;\n }\n if (dataset.issues) {\n dataset.issues.push(issue);\n } else {\n dataset.issues = [issue];\n }\n}\n\n// src/utils/_getByteCount/_getByteCount.ts\nvar textEncoder;\nfunction _getByteCount(input) {\n if (!textEncoder) {\n textEncoder = new TextEncoder();\n }\n return textEncoder.encode(input).length;\n}\n\n// src/utils/_getGraphemeCount/_getGraphemeCount.ts\nvar segmenter;\nfunction _getGraphemeCount(input) {\n if (!segmenter) {\n segmenter = new Intl.Segmenter();\n }\n const segments = segmenter.segment(input);\n let count = 0;\n for (const _ of segments) {\n count++;\n }\n return count;\n}\n\n// src/utils/_getStandardProps/_getStandardProps.ts\nfunction _getStandardProps(context) {\n return {\n version: 1,\n vendor: \"valibot\",\n validate(value2) {\n return context[\"~run\"]({ value: value2 }, getGlobalConfig());\n }\n };\n}\n\n// src/utils/_getWordCount/_getWordCount.ts\nvar store5;\nfunction _getWordCount(locales, input) {\n if (!store5) {\n store5 = /* @__PURE__ */ new Map();\n }\n if (!store5.get(locales)) {\n store5.set(locales, new Intl.Segmenter(locales, { granularity: \"word\" }));\n }\n const segments = store5.get(locales).segment(input);\n let count = 0;\n for (const segment of segments) {\n if (segment.isWordLike) {\n count++;\n }\n }\n return count;\n}\n\n// src/utils/_isLuhnAlgo/_isLuhnAlgo.ts\nvar NON_DIGIT_REGEX = /\\D/gu;\nfunction _isLuhnAlgo(input) {\n const number2 = input.replace(NON_DIGIT_REGEX, \"\");\n let length2 = number2.length;\n let bit = 1;\n let sum = 0;\n while (length2) {\n const value2 = +number2[--length2];\n bit ^= 1;\n sum += bit ? [0, 2, 4, 6, 8, 1, 3, 5, 7, 9][value2] : value2;\n }\n return sum % 10 === 0;\n}\n\n// src/utils/_isValidObjectKey/_isValidObjectKey.ts\nfunction _isValidObjectKey(object2, key) {\n return Object.hasOwn(object2, key) && key !== \"__proto__\" && key !== \"prototype\" && key !== \"constructor\";\n}\n\n// src/utils/_joinExpects/_joinExpects.ts\nfunction _joinExpects(values, separator) {\n const list = [...new Set(values)];\n if (list.length > 1) {\n return `(${list.join(` ${separator} `)})`;\n }\n return list[0] ?? \"never\";\n}\n\n// src/utils/entriesFromList/entriesFromList.ts\nfunction entriesFromList(list, schema) {\n const entries = {};\n for (const key of list) {\n entries[key] = schema;\n }\n return entries;\n}\n\n// src/utils/getDotPath/getDotPath.ts\nfunction getDotPath(issue) {\n if (issue.path) {\n let key = \"\";\n for (const item of issue.path) {\n if (typeof item.key === \"string\" || typeof item.key === \"number\") {\n if (key) {\n key += `.${item.key}`;\n } else {\n key += item.key;\n }\n } else {\n return null;\n }\n }\n return key;\n }\n return null;\n}\n\n// src/utils/isOfKind/isOfKind.ts\nfunction isOfKind(kind, object2) {\n return object2.kind === kind;\n}\n\n// src/utils/isOfType/isOfType.ts\nfunction isOfType(type, object2) {\n return object2.type === type;\n}\n\n// src/utils/isValiError/isValiError.ts\nfunction isValiError(error) {\n return error instanceof ValiError;\n}\n\n// src/utils/ValiError/ValiError.ts\nvar ValiError = class extends Error {\n /**\n * The error issues.\n */\n issues;\n /**\n * Creates a Valibot error with useful information.\n *\n * @param issues The error issues.\n */\n constructor(issues) {\n super(issues[0].message);\n this.name = \"ValiError\";\n this.issues = issues;\n }\n};\n\n// src/actions/args/args.ts\nfunction args(schema) {\n return {\n kind: \"transformation\",\n type: \"args\",\n reference: args,\n async: false,\n schema,\n \"~run\"(dataset, config2) {\n const func = dataset.value;\n dataset.value = (...args_) => {\n const argsDataset = this.schema[\"~run\"]({ value: args_ }, config2);\n if (argsDataset.issues) {\n throw new ValiError(argsDataset.issues);\n }\n return func(...argsDataset.value);\n };\n return dataset;\n }\n };\n}\n\n// src/actions/args/argsAsync.ts\nfunction argsAsync(schema) {\n return {\n kind: \"transformation\",\n type: \"args\",\n reference: argsAsync,\n async: false,\n schema,\n \"~run\"(dataset, config2) {\n const func = dataset.value;\n dataset.value = async (...args2) => {\n const argsDataset = await schema[\"~run\"]({ value: args2 }, config2);\n if (argsDataset.issues) {\n throw new ValiError(argsDataset.issues);\n }\n return func(...argsDataset.value);\n };\n return dataset;\n }\n };\n}\n\n// src/actions/await/awaitAsync.ts\nfunction awaitAsync() {\n return {\n kind: \"transformation\",\n type: \"await\",\n reference: awaitAsync,\n async: true,\n async \"~run\"(dataset) {\n dataset.value = await dataset.value;\n return dataset;\n }\n };\n}\n\n// src/regex.ts\nvar BASE64_REGEX = /^(?:[\\da-z+/]{4})*(?:[\\da-z+/]{2}==|[\\da-z+/]{3}=)?$/iu;\nvar BIC_REGEX = /^[A-Z]{6}(?!00)[\\dA-Z]{2}(?:[\\dA-Z]{3})?$/u;\nvar CUID2_REGEX = /^[a-z][\\da-z]*$/u;\nvar DECIMAL_REGEX = /^[+-]?\\d+(?:\\.\\d+)?$/u;\nvar DIGITS_REGEX = /^\\d+$/u;\nvar EMAIL_REGEX = /^[\\w+-]+(?:\\.[\\w+-]+)*@[\\da-z]+(?:[.-][\\da-z]+)*\\.[a-z]{2,}$/iu;\nvar EMOJI_REGEX = (\n // eslint-disable-next-line redos-detector/no-unsafe-regex, regexp/no-dupe-disjunctions -- false positives\n /^(?:[\\u{1F1E6}-\\u{1F1FF}]{2}|\\u{1F3F4}[\\u{E0061}-\\u{E007A}]{2}[\\u{E0030}-\\u{E0039}\\u{E0061}-\\u{E007A}]{1,3}\\u{E007F}|(?:\\p{Emoji}\\uFE0F\\u20E3?|\\p{Emoji_Modifier_Base}\\p{Emoji_Modifier}?|\\p{Emoji_Presentation})(?:\\u200D(?:\\p{Emoji}\\uFE0F\\u20E3?|\\p{Emoji_Modifier_Base}\\p{Emoji_Modifier}?|\\p{Emoji_Presentation}))*)+$/u\n);\nvar HEXADECIMAL_REGEX = /^(?:0[hx])?[\\da-f]+$/iu;\nvar HEX_COLOR_REGEX = /^#(?:[\\da-f]{3,4}|[\\da-f]{6}|[\\da-f]{8})$/iu;\nvar IMEI_REGEX = /^\\d{15}$|^\\d{2}-\\d{6}-\\d{6}-\\d$/u;\nvar IPV4_REGEX = (\n // eslint-disable-next-line redos-detector/no-unsafe-regex -- false positive\n /^(?:(?:[1-9]|1\\d|2[0-4])?\\d|25[0-5])(?:\\.(?:(?:[1-9]|1\\d|2[0-4])?\\d|25[0-5])){3}$/u\n);\nvar IPV6_REGEX = /^(?:(?:[\\da-f]{1,4}:){7}[\\da-f]{1,4}|(?:[\\da-f]{1,4}:){1,7}:|(?:[\\da-f]{1,4}:){1,6}:[\\da-f]{1,4}|(?:[\\da-f]{1,4}:){1,5}(?::[\\da-f]{1,4}){1,2}|(?:[\\da-f]{1,4}:){1,4}(?::[\\da-f]{1,4}){1,3}|(?:[\\da-f]{1,4}:){1,3}(?::[\\da-f]{1,4}){1,4}|(?:[\\da-f]{1,4}:){1,2}(?::[\\da-f]{1,4}){1,5}|[\\da-f]{1,4}:(?::[\\da-f]{1,4}){1,6}|:(?:(?::[\\da-f]{1,4}){1,7}|:)|fe80:(?::[\\da-f]{0,4}){0,4}%[\\da-z]+|::(?:f{4}(?::0{1,4})?:)?(?:(?:25[0-5]|(?:2[0-4]|1?\\d)?\\d)\\.){3}(?:25[0-5]|(?:2[0-4]|1?\\d)?\\d)|(?:[\\da-f]{1,4}:){1,4}:(?:(?:25[0-5]|(?:2[0-4]|1?\\d)?\\d)\\.){3}(?:25[0-5]|(?:2[0-4]|1?\\d)?\\d))$/iu;\nvar IP_REGEX = /^(?:(?:[1-9]|1\\d|2[0-4])?\\d|25[0-5])(?:\\.(?:(?:[1-9]|1\\d|2[0-4])?\\d|25[0-5])){3}$|^(?:(?:[\\da-f]{1,4}:){7}[\\da-f]{1,4}|(?:[\\da-f]{1,4}:){1,7}:|(?:[\\da-f]{1,4}:){1,6}:[\\da-f]{1,4}|(?:[\\da-f]{1,4}:){1,5}(?::[\\da-f]{1,4}){1,2}|(?:[\\da-f]{1,4}:){1,4}(?::[\\da-f]{1,4}){1,3}|(?:[\\da-f]{1,4}:){1,3}(?::[\\da-f]{1,4}){1,4}|(?:[\\da-f]{1,4}:){1,2}(?::[\\da-f]{1,4}){1,5}|[\\da-f]{1,4}:(?::[\\da-f]{1,4}){1,6}|:(?:(?::[\\da-f]{1,4}){1,7}|:)|fe80:(?::[\\da-f]{0,4}){0,4}%[\\da-z]+|::(?:f{4}(?::0{1,4})?:)?(?:(?:25[0-5]|(?:2[0-4]|1?\\d)?\\d)\\.){3}(?:25[0-5]|(?:2[0-4]|1?\\d)?\\d)|(?:[\\da-f]{1,4}:){1,4}:(?:(?:25[0-5]|(?:2[0-4]|1?\\d)?\\d)\\.){3}(?:25[0-5]|(?:2[0-4]|1?\\d)?\\d))$/iu;\nvar ISO_DATE_REGEX = /^\\d{4}-(?:0[1-9]|1[0-2])-(?:[12]\\d|0[1-9]|3[01])$/u;\nvar ISO_DATE_TIME_REGEX = /^\\d{4}-(?:0[1-9]|1[0-2])-(?:[12]\\d|0[1-9]|3[01])T(?:0\\d|1\\d|2[0-3]):[0-5]\\d$/u;\nvar ISO_TIME_REGEX = /^(?:0\\d|1\\d|2[0-3]):[0-5]\\d$/u;\nvar ISO_TIME_SECOND_REGEX = /^(?:0\\d|1\\d|2[0-3])(?::[0-5]\\d){2}$/u;\nvar ISO_TIMESTAMP_REGEX = /^\\d{4}-(?:0[1-9]|1[0-2])-(?:[12]\\d|0[1-9]|3[01])T(?:0\\d|1\\d|2[0-3])(?::[0-5]\\d){2}(?:\\.\\d{1,9})?(?:Z|[+-](?:0\\d|1\\d|2[0-3])(?::?[0-5]\\d)?)$/u;\nvar ISO_WEEK_REGEX = /^\\d{4}-W(?:0[1-9]|[1-4]\\d|5[0-3])$/u;\nvar MAC48_REGEX = /^(?:[\\da-f]{2}:){5}[\\da-f]{2}$|^(?:[\\da-f]{2}-){5}[\\da-f]{2}$|^(?:[\\da-f]{4}\\.){2}[\\da-f]{4}$/iu;\nvar MAC64_REGEX = /^(?:[\\da-f]{2}:){7}[\\da-f]{2}$|^(?:[\\da-f]{2}-){7}[\\da-f]{2}$|^(?:[\\da-f]{4}\\.){3}[\\da-f]{4}$|^(?:[\\da-f]{4}:){3}[\\da-f]{4}$/iu;\nvar MAC_REGEX = /^(?:[\\da-f]{2}:){5}[\\da-f]{2}$|^(?:[\\da-f]{2}-){5}[\\da-f]{2}$|^(?:[\\da-f]{4}\\.){2}[\\da-f]{4}$|^(?:[\\da-f]{2}:){7}[\\da-f]{2}$|^(?:[\\da-f]{2}-){7}[\\da-f]{2}$|^(?:[\\da-f]{4}\\.){3}[\\da-f]{4}$|^(?:[\\da-f]{4}:){3}[\\da-f]{4}$/iu;\nvar NANO_ID_REGEX = /^[\\w-]+$/u;\nvar OCTAL_REGEX = /^(?:0o)?[0-7]+$/iu;\nvar ULID_REGEX = /^[\\da-hjkmnp-tv-z]{26}$/iu;\nvar UUID_REGEX = /^[\\da-f]{8}(?:-[\\da-f]{4}){3}-[\\da-f]{12}$/iu;\n\n// src/actions/base64/base64.ts\nfunction base64(message) {\n return {\n kind: \"validation\",\n type: \"base64\",\n reference: base64,\n async: false,\n expects: null,\n requirement: BASE64_REGEX,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed && !this.requirement.test(dataset.value)) {\n _addIssue(this, \"Base64\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/bic/bic.ts\nfunction bic(message) {\n return {\n kind: \"validation\",\n type: \"bic\",\n reference: bic,\n async: false,\n expects: null,\n requirement: BIC_REGEX,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed && !this.requirement.test(dataset.value)) {\n _addIssue(this, \"BIC\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/brand/brand.ts\nfunction brand(name) {\n return {\n kind: \"transformation\",\n type: \"brand\",\n reference: brand,\n async: false,\n name,\n \"~run\"(dataset) {\n return dataset;\n }\n };\n}\n\n// src/actions/bytes/bytes.ts\nfunction bytes(requirement, message) {\n return {\n kind: \"validation\",\n type: \"bytes\",\n reference: bytes,\n async: false,\n expects: `${requirement}`,\n requirement,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed) {\n const length2 = _getByteCount(dataset.value);\n if (length2 !== this.requirement) {\n _addIssue(this, \"bytes\", dataset, config2, {\n received: `${length2}`\n });\n }\n }\n return dataset;\n }\n };\n}\n\n// src/actions/check/check.ts\nfunction check(requirement, message) {\n return {\n kind: \"validation\",\n type: \"check\",\n reference: check,\n async: false,\n expects: null,\n requirement,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed && !this.requirement(dataset.value)) {\n _addIssue(this, \"input\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/check/checkAsync.ts\nfunction checkAsync(requirement, message) {\n return {\n kind: \"validation\",\n type: \"check\",\n reference: checkAsync,\n async: true,\n expects: null,\n requirement,\n message,\n async \"~run\"(dataset, config2) {\n if (dataset.typed && !await this.requirement(dataset.value)) {\n _addIssue(this, \"input\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/checkItems/checkItems.ts\nfunction checkItems(requirement, message) {\n return {\n kind: \"validation\",\n type: \"check_items\",\n reference: checkItems,\n async: false,\n expects: null,\n requirement,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed) {\n for (let index = 0; index < dataset.value.length; index++) {\n const item = dataset.value[index];\n if (!this.requirement(item, index, dataset.value)) {\n _addIssue(this, \"item\", dataset, config2, {\n input: item,\n path: [\n {\n type: \"array\",\n origin: \"value\",\n input: dataset.value,\n key: index,\n value: item\n }\n ]\n });\n }\n }\n }\n return dataset;\n }\n };\n}\n\n// src/actions/checkItems/checkItemsAsync.ts\nfunction checkItemsAsync(requirement, message) {\n return {\n kind: \"validation\",\n type: \"check_items\",\n reference: checkItemsAsync,\n async: true,\n expects: null,\n requirement,\n message,\n async \"~run\"(dataset, config2) {\n if (dataset.typed) {\n const requirementResults = await Promise.all(\n dataset.value.map(this.requirement)\n );\n for (let index = 0; index < dataset.value.length; index++) {\n if (!requirementResults[index]) {\n const item = dataset.value[index];\n _addIssue(this, \"item\", dataset, config2, {\n input: item,\n path: [\n {\n type: \"array\",\n origin: \"value\",\n input: dataset.value,\n key: index,\n value: item\n }\n ]\n });\n }\n }\n }\n return dataset;\n }\n };\n}\n\n// src/actions/creditCard/creditCard.ts\nvar CREDIT_CARD_REGEX = /^(?:\\d{14,19}|\\d{4}(?: \\d{3,6}){2,4}|\\d{4}(?:-\\d{3,6}){2,4})$/u;\nvar SANITIZE_REGEX = /[- ]/gu;\nvar PROVIDER_REGEX_LIST = [\n // American Express\n /^3[47]\\d{13}$/u,\n // Diners Club\n /^3(?:0[0-5]|[68]\\d)\\d{11,13}$/u,\n // Discover\n /^6(?:011|5\\d{2})\\d{12,15}$/u,\n // JCB\n /^(?:2131|1800|35\\d{3})\\d{11}$/u,\n // Mastercard\n /^5[1-5]\\d{2}|(?:222\\d|22[3-9]\\d|2[3-6]\\d{2}|27[01]\\d|2720)\\d{12}$/u,\n // UnionPay\n /^(?:6[27]\\d{14,17}|81\\d{14,17})$/u,\n // Visa\n /^4\\d{12}(?:\\d{3,6})?$/u\n];\nfunction creditCard(message) {\n return {\n kind: \"validation\",\n type: \"credit_card\",\n reference: creditCard,\n async: false,\n expects: null,\n requirement(input) {\n let sanitized;\n return CREDIT_CARD_REGEX.test(input) && // Remove any hyphens and blanks\n (sanitized = input.replace(SANITIZE_REGEX, \"\")) && // Check if it matches a provider\n PROVIDER_REGEX_LIST.some((regex2) => regex2.test(sanitized)) && // Check if passes luhn algorithm\n _isLuhnAlgo(sanitized);\n },\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed && !this.requirement(dataset.value)) {\n _addIssue(this, \"credit card\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/cuid2/cuid2.ts\nfunction cuid2(message) {\n return {\n kind: \"validation\",\n type: \"cuid2\",\n reference: cuid2,\n async: false,\n expects: null,\n requirement: CUID2_REGEX,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed && !this.requirement.test(dataset.value)) {\n _addIssue(this, \"Cuid2\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/decimal/decimal.ts\nfunction decimal(message) {\n return {\n kind: \"validation\",\n type: \"decimal\",\n reference: decimal,\n async: false,\n expects: null,\n requirement: DECIMAL_REGEX,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed && !this.requirement.test(dataset.value)) {\n _addIssue(this, \"decimal\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/description/description.ts\nfunction description(description_) {\n return {\n kind: \"metadata\",\n type: \"description\",\n reference: description,\n description: description_\n };\n}\n\n// src/actions/digits/digits.ts\nfunction digits(message) {\n return {\n kind: \"validation\",\n type: \"digits\",\n reference: digits,\n async: false,\n expects: null,\n requirement: DIGITS_REGEX,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed && !this.requirement.test(dataset.value)) {\n _addIssue(this, \"digits\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/email/email.ts\nfunction email(message) {\n return {\n kind: \"validation\",\n type: \"email\",\n reference: email,\n expects: null,\n async: false,\n requirement: EMAIL_REGEX,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed && !this.requirement.test(dataset.value)) {\n _addIssue(this, \"email\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/emoji/emoji.ts\nfunction emoji(message) {\n return {\n kind: \"validation\",\n type: \"emoji\",\n reference: emoji,\n async: false,\n expects: null,\n requirement: EMOJI_REGEX,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed && !this.requirement.test(dataset.value)) {\n _addIssue(this, \"emoji\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/empty/empty.ts\nfunction empty(message) {\n return {\n kind: \"validation\",\n type: \"empty\",\n reference: empty,\n async: false,\n expects: \"0\",\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed && dataset.value.length > 0) {\n _addIssue(this, \"length\", dataset, config2, {\n received: `${dataset.value.length}`\n });\n }\n return dataset;\n }\n };\n}\n\n// src/actions/endsWith/endsWith.ts\nfunction endsWith(requirement, message) {\n return {\n kind: \"validation\",\n type: \"ends_with\",\n reference: endsWith,\n async: false,\n expects: `\"${requirement}\"`,\n requirement,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed && !dataset.value.endsWith(this.requirement)) {\n _addIssue(this, \"end\", dataset, config2, {\n received: `\"${dataset.value.slice(-this.requirement.length)}\"`\n });\n }\n return dataset;\n }\n };\n}\n\n// src/actions/everyItem/everyItem.ts\nfunction everyItem(requirement, message) {\n return {\n kind: \"validation\",\n type: \"every_item\",\n reference: everyItem,\n async: false,\n expects: null,\n requirement,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed && !dataset.value.every(this.requirement)) {\n _addIssue(this, \"item\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/excludes/excludes.ts\nfunction excludes(requirement, message) {\n const received = _stringify(requirement);\n return {\n kind: \"validation\",\n type: \"excludes\",\n reference: excludes,\n async: false,\n expects: `!${received}`,\n requirement,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed && dataset.value.includes(this.requirement)) {\n _addIssue(this, \"content\", dataset, config2, { received });\n }\n return dataset;\n }\n };\n}\n\n// src/actions/filterItems/filterItems.ts\nfunction filterItems(operation) {\n return {\n kind: \"transformation\",\n type: \"filter_items\",\n reference: filterItems,\n async: false,\n operation,\n \"~run\"(dataset) {\n dataset.value = dataset.value.filter(this.operation);\n return dataset;\n }\n };\n}\n\n// src/actions/findItem/findItem.ts\nfunction findItem(operation) {\n return {\n kind: \"transformation\",\n type: \"find_item\",\n reference: findItem,\n async: false,\n operation,\n \"~run\"(dataset) {\n dataset.value = dataset.value.find(this.operation);\n return dataset;\n }\n };\n}\n\n// src/actions/finite/finite.ts\nfunction finite(message) {\n return {\n kind: \"validation\",\n type: \"finite\",\n reference: finite,\n async: false,\n expects: null,\n requirement: Number.isFinite,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed && !this.requirement(dataset.value)) {\n _addIssue(this, \"finite\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/graphemes/graphemes.ts\nfunction graphemes(requirement, message) {\n return {\n kind: \"validation\",\n type: \"graphemes\",\n reference: graphemes,\n async: false,\n expects: `${requirement}`,\n requirement,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed) {\n const count = _getGraphemeCount(dataset.value);\n if (count !== this.requirement) {\n _addIssue(this, \"graphemes\", dataset, config2, {\n received: `${count}`\n });\n }\n }\n return dataset;\n }\n };\n}\n\n// src/actions/hash/hash.ts\nvar HASH_LENGTHS = {\n md4: 32,\n md5: 32,\n sha1: 40,\n sha256: 64,\n sha384: 96,\n sha512: 128,\n ripemd128: 32,\n ripemd160: 40,\n tiger128: 32,\n tiger160: 40,\n tiger192: 48,\n crc32: 8,\n crc32b: 8,\n adler32: 8\n};\nfunction hash(types, message) {\n return {\n kind: \"validation\",\n type: \"hash\",\n reference: hash,\n expects: null,\n async: false,\n requirement: RegExp(\n types.map((type) => `^[a-f0-9]{${HASH_LENGTHS[type]}}$`).join(\"|\"),\n \"iu\"\n ),\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed && !this.requirement.test(dataset.value)) {\n _addIssue(this, \"hash\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/hexadecimal/hexadecimal.ts\nfunction hexadecimal(message) {\n return {\n kind: \"validation\",\n type: \"hexadecimal\",\n reference: hexadecimal,\n async: false,\n expects: null,\n requirement: HEXADECIMAL_REGEX,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed && !this.requirement.test(dataset.value)) {\n _addIssue(this, \"hexadecimal\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/hexColor/hexColor.ts\nfunction hexColor(message) {\n return {\n kind: \"validation\",\n type: \"hex_color\",\n reference: hexColor,\n async: false,\n expects: null,\n requirement: HEX_COLOR_REGEX,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed && !this.requirement.test(dataset.value)) {\n _addIssue(this, \"hex color\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/imei/imei.ts\nfunction imei(message) {\n return {\n kind: \"validation\",\n type: \"imei\",\n reference: imei,\n async: false,\n expects: null,\n requirement(input) {\n return IMEI_REGEX.test(input) && _isLuhnAlgo(input);\n },\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed && !this.requirement(dataset.value)) {\n _addIssue(this, \"IMEI\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/includes/includes.ts\nfunction includes(requirement, message) {\n const expects = _stringify(requirement);\n return {\n kind: \"validation\",\n type: \"includes\",\n reference: includes,\n async: false,\n expects,\n requirement,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed && !dataset.value.includes(this.requirement)) {\n _addIssue(this, \"content\", dataset, config2, {\n received: `!${expects}`\n });\n }\n return dataset;\n }\n };\n}\n\n// src/actions/integer/integer.ts\nfunction integer(message) {\n return {\n kind: \"validation\",\n type: \"integer\",\n reference: integer,\n async: false,\n expects: null,\n requirement: Number.isInteger,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed && !this.requirement(dataset.value)) {\n _addIssue(this, \"integer\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/ip/ip.ts\nfunction ip(message) {\n return {\n kind: \"validation\",\n type: \"ip\",\n reference: ip,\n async: false,\n expects: null,\n requirement: IP_REGEX,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed && !this.requirement.test(dataset.value)) {\n _addIssue(this, \"IP\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/ipv4/ipv4.ts\nfunction ipv4(message) {\n return {\n kind: \"validation\",\n type: \"ipv4\",\n reference: ipv4,\n async: false,\n expects: null,\n requirement: IPV4_REGEX,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed && !this.requirement.test(dataset.value)) {\n _addIssue(this, \"IPv4\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/ipv6/ipv6.ts\nfunction ipv6(message) {\n return {\n kind: \"validation\",\n type: \"ipv6\",\n reference: ipv6,\n async: false,\n expects: null,\n requirement: IPV6_REGEX,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed && !this.requirement.test(dataset.value)) {\n _addIssue(this, \"IPv6\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/isoDate/isoDate.ts\nfunction isoDate(message) {\n return {\n kind: \"validation\",\n type: \"iso_date\",\n reference: isoDate,\n async: false,\n expects: null,\n requirement: ISO_DATE_REGEX,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed && !this.requirement.test(dataset.value)) {\n _addIssue(this, \"date\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/isoDateTime/isoDateTime.ts\nfunction isoDateTime(message) {\n return {\n kind: \"validation\",\n type: \"iso_date_time\",\n reference: isoDateTime,\n async: false,\n expects: null,\n requirement: ISO_DATE_TIME_REGEX,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed && !this.requirement.test(dataset.value)) {\n _addIssue(this, \"date-time\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/isoTime/isoTime.ts\nfunction isoTime(message) {\n return {\n kind: \"validation\",\n type: \"iso_time\",\n reference: isoTime,\n async: false,\n expects: null,\n requirement: ISO_TIME_REGEX,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed && !this.requirement.test(dataset.value)) {\n _addIssue(this, \"time\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/isoTimeSecond/isoTimeSecond.ts\nfunction isoTimeSecond(message) {\n return {\n kind: \"validation\",\n type: \"iso_time_second\",\n reference: isoTimeSecond,\n async: false,\n expects: null,\n requirement: ISO_TIME_SECOND_REGEX,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed && !this.requirement.test(dataset.value)) {\n _addIssue(this, \"time-second\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/isoTimestamp/isoTimestamp.ts\nfunction isoTimestamp(message) {\n return {\n kind: \"validation\",\n type: \"iso_timestamp\",\n reference: isoTimestamp,\n async: false,\n expects: null,\n requirement: ISO_TIMESTAMP_REGEX,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed && !this.requirement.test(dataset.value)) {\n _addIssue(this, \"timestamp\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/isoWeek/isoWeek.ts\nfunction isoWeek(message) {\n return {\n kind: \"validation\",\n type: \"iso_week\",\n reference: isoWeek,\n async: false,\n expects: null,\n requirement: ISO_WEEK_REGEX,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed && !this.requirement.test(dataset.value)) {\n _addIssue(this, \"week\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/length/length.ts\nfunction length(requirement, message) {\n return {\n kind: \"validation\",\n type: \"length\",\n reference: length,\n async: false,\n expects: `${requirement}`,\n requirement,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed && dataset.value.length !== this.requirement) {\n _addIssue(this, \"length\", dataset, config2, {\n received: `${dataset.value.length}`\n });\n }\n return dataset;\n }\n };\n}\n\n// src/actions/mac/mac.ts\nfunction mac(message) {\n return {\n kind: \"validation\",\n type: \"mac\",\n reference: mac,\n async: false,\n expects: null,\n requirement: MAC_REGEX,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed && !this.requirement.test(dataset.value)) {\n _addIssue(this, \"MAC\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/mac48/mac48.ts\nfunction mac48(message) {\n return {\n kind: \"validation\",\n type: \"mac48\",\n reference: mac48,\n async: false,\n expects: null,\n requirement: MAC48_REGEX,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed && !this.requirement.test(dataset.value)) {\n _addIssue(this, \"48-bit MAC\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/mac64/mac64.ts\nfunction mac64(message) {\n return {\n kind: \"validation\",\n type: \"mac64\",\n reference: mac64,\n async: false,\n expects: null,\n requirement: MAC64_REGEX,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed && !this.requirement.test(dataset.value)) {\n _addIssue(this, \"64-bit MAC\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/mapItems/mapItems.ts\nfunction mapItems(operation) {\n return {\n kind: \"transformation\",\n type: \"map_items\",\n reference: mapItems,\n async: false,\n operation,\n \"~run\"(dataset) {\n dataset.value = dataset.value.map(this.operation);\n return dataset;\n }\n };\n}\n\n// src/actions/maxBytes/maxBytes.ts\nfunction maxBytes(requirement, message) {\n return {\n kind: \"validation\",\n type: \"max_bytes\",\n reference: maxBytes,\n async: false,\n expects: `<=${requirement}`,\n requirement,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed) {\n const length2 = _getByteCount(dataset.value);\n if (length2 > this.requirement) {\n _addIssue(this, \"bytes\", dataset, config2, {\n received: `${length2}`\n });\n }\n }\n return dataset;\n }\n };\n}\n\n// src/actions/maxGraphemes/maxGraphemes.ts\nfunction maxGraphemes(requirement, message) {\n return {\n kind: \"validation\",\n type: \"max_graphemes\",\n reference: maxGraphemes,\n async: false,\n expects: `<=${requirement}`,\n requirement,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed) {\n const count = _getGraphemeCount(dataset.value);\n if (count > this.requirement) {\n _addIssue(this, \"graphemes\", dataset, config2, {\n received: `${count}`\n });\n }\n }\n return dataset;\n }\n };\n}\n\n// src/actions/maxLength/maxLength.ts\nfunction maxLength(requirement, message) {\n return {\n kind: \"validation\",\n type: \"max_length\",\n reference: maxLength,\n async: false,\n expects: `<=${requirement}`,\n requirement,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed && dataset.value.length > this.requirement) {\n _addIssue(this, \"length\", dataset, config2, {\n received: `${dataset.value.length}`\n });\n }\n return dataset;\n }\n };\n}\n\n// src/actions/maxSize/maxSize.ts\nfunction maxSize(requirement, message) {\n return {\n kind: \"validation\",\n type: \"max_size\",\n reference: maxSize,\n async: false,\n expects: `<=${requirement}`,\n requirement,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed && dataset.value.size > this.requirement) {\n _addIssue(this, \"size\", dataset, config2, {\n received: `${dataset.value.size}`\n });\n }\n return dataset;\n }\n };\n}\n\n// src/actions/maxValue/maxValue.ts\nfunction maxValue(requirement, message) {\n return {\n kind: \"validation\",\n type: \"max_value\",\n reference: maxValue,\n async: false,\n expects: `<=${requirement instanceof Date ? requirement.toJSON() : _stringify(requirement)}`,\n requirement,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed && !(dataset.value <= this.requirement)) {\n _addIssue(this, \"value\", dataset, config2, {\n received: dataset.value instanceof Date ? dataset.value.toJSON() : _stringify(dataset.value)\n });\n }\n return dataset;\n }\n };\n}\n\n// src/actions/maxWords/maxWords.ts\nfunction maxWords(locales, requirement, message) {\n return {\n kind: \"validation\",\n type: \"max_words\",\n reference: maxWords,\n async: false,\n expects: `<=${requirement}`,\n locales,\n requirement,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed) {\n const count = _getWordCount(this.locales, dataset.value);\n if (count > this.requirement) {\n _addIssue(this, \"words\", dataset, config2, {\n received: `${count}`\n });\n }\n }\n return dataset;\n }\n };\n}\n\n// src/actions/metadata/metadata.ts\nfunction metadata(metadata_) {\n return {\n kind: \"metadata\",\n type: \"metadata\",\n reference: metadata,\n metadata: metadata_\n };\n}\n\n// src/actions/mimeType/mimeType.ts\nfunction mimeType(requirement, message) {\n return {\n kind: \"validation\",\n type: \"mime_type\",\n reference: mimeType,\n async: false,\n expects: _joinExpects(\n requirement.map((option) => `\"${option}\"`),\n \"|\"\n ),\n requirement,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed && !this.requirement.includes(dataset.value.type)) {\n _addIssue(this, \"MIME type\", dataset, config2, {\n received: `\"${dataset.value.type}\"`\n });\n }\n return dataset;\n }\n };\n}\n\n// src/actions/minBytes/minBytes.ts\nfunction minBytes(requirement, message) {\n return {\n kind: \"validation\",\n type: \"min_bytes\",\n reference: minBytes,\n async: false,\n expects: `>=${requirement}`,\n requirement,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed) {\n const length2 = _getByteCount(dataset.value);\n if (length2 < this.requirement) {\n _addIssue(this, \"bytes\", dataset, config2, {\n received: `${length2}`\n });\n }\n }\n return dataset;\n }\n };\n}\n\n// src/actions/minGraphemes/minGraphemes.ts\nfunction minGraphemes(requirement, message) {\n return {\n kind: \"validation\",\n type: \"min_graphemes\",\n reference: minGraphemes,\n async: false,\n expects: `>=${requirement}`,\n requirement,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed) {\n const count = _getGraphemeCount(dataset.value);\n if (count < this.requirement) {\n _addIssue(this, \"graphemes\", dataset, config2, {\n received: `${count}`\n });\n }\n }\n return dataset;\n }\n };\n}\n\n// src/actions/minLength/minLength.ts\nfunction minLength(requirement, message) {\n return {\n kind: \"validation\",\n type: \"min_length\",\n reference: minLength,\n async: false,\n expects: `>=${requirement}`,\n requirement,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed && dataset.value.length < this.requirement) {\n _addIssue(this, \"length\", dataset, config2, {\n received: `${dataset.value.length}`\n });\n }\n return dataset;\n }\n };\n}\n\n// src/actions/minSize/minSize.ts\nfunction minSize(requirement, message) {\n return {\n kind: \"validation\",\n type: \"min_size\",\n reference: minSize,\n async: false,\n expects: `>=${requirement}`,\n requirement,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed && dataset.value.size < this.requirement) {\n _addIssue(this, \"size\", dataset, config2, {\n received: `${dataset.value.size}`\n });\n }\n return dataset;\n }\n };\n}\n\n// src/actions/minValue/minValue.ts\nfunction minValue(requirement, message) {\n return {\n kind: \"validation\",\n type: \"min_value\",\n reference: minValue,\n async: false,\n expects: `>=${requirement instanceof Date ? requirement.toJSON() : _stringify(requirement)}`,\n requirement,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed && !(dataset.value >= this.requirement)) {\n _addIssue(this, \"value\", dataset, config2, {\n received: dataset.value instanceof Date ? dataset.value.toJSON() : _stringify(dataset.value)\n });\n }\n return dataset;\n }\n };\n}\n\n// src/actions/minWords/minWords.ts\nfunction minWords(locales, requirement, message) {\n return {\n kind: \"validation\",\n type: \"min_words\",\n reference: minWords,\n async: false,\n expects: `>=${requirement}`,\n locales,\n requirement,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed) {\n const count = _getWordCount(this.locales, dataset.value);\n if (count < this.requirement) {\n _addIssue(this, \"words\", dataset, config2, {\n received: `${count}`\n });\n }\n }\n return dataset;\n }\n };\n}\n\n// src/actions/multipleOf/multipleOf.ts\nfunction multipleOf(requirement, message) {\n return {\n kind: \"validation\",\n type: \"multiple_of\",\n reference: multipleOf,\n async: false,\n expects: `%${requirement}`,\n requirement,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed && dataset.value % this.requirement !== 0) {\n _addIssue(this, \"multiple\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/nanoid/nanoid.ts\nfunction nanoid(message) {\n return {\n kind: \"validation\",\n type: \"nanoid\",\n reference: nanoid,\n async: false,\n expects: null,\n requirement: NANO_ID_REGEX,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed && !this.requirement.test(dataset.value)) {\n _addIssue(this, \"Nano ID\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/nonEmpty/nonEmpty.ts\nfunction nonEmpty(message) {\n return {\n kind: \"validation\",\n type: \"non_empty\",\n reference: nonEmpty,\n async: false,\n expects: \"!0\",\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed && dataset.value.length === 0) {\n _addIssue(this, \"length\", dataset, config2, {\n received: \"0\"\n });\n }\n return dataset;\n }\n };\n}\n\n// src/actions/normalize/normalize.ts\nfunction normalize(form) {\n return {\n kind: \"transformation\",\n type: \"normalize\",\n reference: normalize,\n async: false,\n form,\n \"~run\"(dataset) {\n dataset.value = dataset.value.normalize(this.form);\n return dataset;\n }\n };\n}\n\n// src/actions/notBytes/notBytes.ts\nfunction notBytes(requirement, message) {\n return {\n kind: \"validation\",\n type: \"not_bytes\",\n reference: notBytes,\n async: false,\n expects: `!${requirement}`,\n requirement,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed) {\n const length2 = _getByteCount(dataset.value);\n if (length2 === this.requirement) {\n _addIssue(this, \"bytes\", dataset, config2, {\n received: `${length2}`\n });\n }\n }\n return dataset;\n }\n };\n}\n\n// src/actions/notGraphemes/notGraphemes.ts\nfunction notGraphemes(requirement, message) {\n return {\n kind: \"validation\",\n type: \"not_graphemes\",\n reference: notGraphemes,\n async: false,\n expects: `!${requirement}`,\n requirement,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed) {\n const count = _getGraphemeCount(dataset.value);\n if (count === this.requirement) {\n _addIssue(this, \"graphemes\", dataset, config2, {\n received: `${count}`\n });\n }\n }\n return dataset;\n }\n };\n}\n\n// src/actions/notLength/notLength.ts\nfunction notLength(requirement, message) {\n return {\n kind: \"validation\",\n type: \"not_length\",\n reference: notLength,\n async: false,\n expects: `!${requirement}`,\n requirement,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed && dataset.value.length === this.requirement) {\n _addIssue(this, \"length\", dataset, config2, {\n received: `${dataset.value.length}`\n });\n }\n return dataset;\n }\n };\n}\n\n// src/actions/notSize/notSize.ts\nfunction notSize(requirement, message) {\n return {\n kind: \"validation\",\n type: \"not_size\",\n reference: notSize,\n async: false,\n expects: `!${requirement}`,\n requirement,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed && dataset.value.size === this.requirement) {\n _addIssue(this, \"size\", dataset, config2, {\n received: `${dataset.value.size}`\n });\n }\n return dataset;\n }\n };\n}\n\n// src/actions/notValue/notValue.ts\nfunction notValue(requirement, message) {\n return {\n kind: \"validation\",\n type: \"not_value\",\n reference: notValue,\n async: false,\n expects: requirement instanceof Date ? `!${requirement.toJSON()}` : `!${_stringify(requirement)}`,\n requirement,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed && this.requirement <= dataset.value && this.requirement >= dataset.value) {\n _addIssue(this, \"value\", dataset, config2, {\n received: dataset.value instanceof Date ? dataset.value.toJSON() : _stringify(dataset.value)\n });\n }\n return dataset;\n }\n };\n}\n\n// src/actions/notWords/notWords.ts\nfunction notWords(locales, requirement, message) {\n return {\n kind: \"validation\",\n type: \"not_words\",\n reference: notWords,\n async: false,\n expects: `!${requirement}`,\n locales,\n requirement,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed) {\n const count = _getWordCount(this.locales, dataset.value);\n if (count === this.requirement) {\n _addIssue(this, \"words\", dataset, config2, {\n received: `${count}`\n });\n }\n }\n return dataset;\n }\n };\n}\n\n// src/actions/octal/octal.ts\nfunction octal(message) {\n return {\n kind: \"validation\",\n type: \"octal\",\n reference: octal,\n async: false,\n expects: null,\n requirement: OCTAL_REGEX,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed && !this.requirement.test(dataset.value)) {\n _addIssue(this, \"octal\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/partialCheck/utils/_isPartiallyTyped/_isPartiallyTyped.ts\nfunction _isPartiallyTyped(dataset, pathList) {\n if (dataset.issues) {\n for (const path of pathList) {\n for (const issue of dataset.issues) {\n let typed = false;\n const bound = Math.min(path.length, issue.path?.length ?? 0);\n for (let index = 0; index < bound; index++) {\n if (path[index] !== issue.path[index].key) {\n typed = true;\n break;\n }\n }\n if (!typed) {\n return false;\n }\n }\n }\n }\n return true;\n}\n\n// src/actions/partialCheck/partialCheck.ts\nfunction partialCheck(pathList, requirement, message) {\n return {\n kind: \"validation\",\n type: \"partial_check\",\n reference: partialCheck,\n async: false,\n expects: null,\n pathList,\n requirement,\n message,\n \"~run\"(dataset, config2) {\n if (_isPartiallyTyped(dataset, pathList) && // @ts-expect-error\n !this.requirement(dataset.value)) {\n _addIssue(this, \"input\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/partialCheck/partialCheckAsync.ts\nfunction partialCheckAsync(pathList, requirement, message) {\n return {\n kind: \"validation\",\n type: \"partial_check\",\n reference: partialCheckAsync,\n async: true,\n expects: null,\n pathList,\n requirement,\n message,\n async \"~run\"(dataset, config2) {\n if (_isPartiallyTyped(dataset, pathList) && // @ts-expect-error\n !await this.requirement(dataset.value)) {\n _addIssue(this, \"input\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/rawCheck/rawCheck.ts\nfunction rawCheck(action) {\n return {\n kind: \"validation\",\n type: \"raw_check\",\n reference: rawCheck,\n async: false,\n expects: null,\n \"~run\"(dataset, config2) {\n action({\n dataset,\n config: config2,\n addIssue: (info) => _addIssue(this, info?.label ?? \"input\", dataset, config2, info)\n });\n return dataset;\n }\n };\n}\n\n// src/actions/rawCheck/rawCheckAsync.ts\nfunction rawCheckAsync(action) {\n return {\n kind: \"validation\",\n type: \"raw_check\",\n reference: rawCheckAsync,\n async: true,\n expects: null,\n async \"~run\"(dataset, config2) {\n await action({\n dataset,\n config: config2,\n addIssue: (info) => _addIssue(this, info?.label ?? \"input\", dataset, config2, info)\n });\n return dataset;\n }\n };\n}\n\n// src/actions/rawTransform/rawTransform.ts\nfunction rawTransform(action) {\n return {\n kind: \"transformation\",\n type: \"raw_transform\",\n reference: rawTransform,\n async: false,\n \"~run\"(dataset, config2) {\n const output = action({\n dataset,\n config: config2,\n addIssue: (info) => _addIssue(this, info?.label ?? \"input\", dataset, config2, info),\n NEVER: null\n });\n if (dataset.issues) {\n dataset.typed = false;\n } else {\n dataset.value = output;\n }\n return dataset;\n }\n };\n}\n\n// src/actions/rawTransform/rawTransformAsync.ts\nfunction rawTransformAsync(action) {\n return {\n kind: \"transformation\",\n type: \"raw_transform\",\n reference: rawTransformAsync,\n async: true,\n async \"~run\"(dataset, config2) {\n const output = await action({\n dataset,\n config: config2,\n addIssue: (info) => _addIssue(this, info?.label ?? \"input\", dataset, config2, info),\n NEVER: null\n });\n if (dataset.issues) {\n dataset.typed = false;\n } else {\n dataset.value = output;\n }\n return dataset;\n }\n };\n}\n\n// src/actions/readonly/readonly.ts\nfunction readonly() {\n return {\n kind: \"transformation\",\n type: \"readonly\",\n reference: readonly,\n async: false,\n \"~run\"(dataset) {\n return dataset;\n }\n };\n}\n\n// src/actions/reduceItems/reduceItems.ts\nfunction reduceItems(operation, initial) {\n return {\n kind: \"transformation\",\n type: \"reduce_items\",\n reference: reduceItems,\n async: false,\n operation,\n initial,\n \"~run\"(dataset) {\n dataset.value = dataset.value.reduce(this.operation, this.initial);\n return dataset;\n }\n };\n}\n\n// src/actions/regex/regex.ts\nfunction regex(requirement, message) {\n return {\n kind: \"validation\",\n type: \"regex\",\n reference: regex,\n async: false,\n expects: `${requirement}`,\n requirement,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed && !this.requirement.test(dataset.value)) {\n _addIssue(this, \"format\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/returns/returns.ts\nfunction returns(schema) {\n return {\n kind: \"transformation\",\n type: \"returns\",\n reference: returns,\n async: false,\n schema,\n \"~run\"(dataset, config2) {\n const func = dataset.value;\n dataset.value = (...args_) => {\n const returnsDataset = this.schema[\"~run\"](\n { value: func(...args_) },\n config2\n );\n if (returnsDataset.issues) {\n throw new ValiError(returnsDataset.issues);\n }\n return returnsDataset.value;\n };\n return dataset;\n }\n };\n}\n\n// src/actions/returns/returnsAsync.ts\nfunction returnsAsync(schema) {\n return {\n kind: \"transformation\",\n type: \"returns\",\n reference: returnsAsync,\n async: false,\n schema,\n \"~run\"(dataset, config2) {\n const func = dataset.value;\n dataset.value = async (...args_) => {\n const returnsDataset = await this.schema[\"~run\"](\n { value: await func(...args_) },\n config2\n );\n if (returnsDataset.issues) {\n throw new ValiError(returnsDataset.issues);\n }\n return returnsDataset.value;\n };\n return dataset;\n }\n };\n}\n\n// src/actions/safeInteger/safeInteger.ts\nfunction safeInteger(message) {\n return {\n kind: \"validation\",\n type: \"safe_integer\",\n reference: safeInteger,\n async: false,\n expects: null,\n requirement: Number.isSafeInteger,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed && !this.requirement(dataset.value)) {\n _addIssue(this, \"safe integer\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/size/size.ts\nfunction size(requirement, message) {\n return {\n kind: \"validation\",\n type: \"size\",\n reference: size,\n async: false,\n expects: `${requirement}`,\n requirement,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed && dataset.value.size !== this.requirement) {\n _addIssue(this, \"size\", dataset, config2, {\n received: `${dataset.value.size}`\n });\n }\n return dataset;\n }\n };\n}\n\n// src/actions/someItem/someItem.ts\nfunction someItem(requirement, message) {\n return {\n kind: \"validation\",\n type: \"some_item\",\n reference: someItem,\n async: false,\n expects: null,\n requirement,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed && !dataset.value.some(this.requirement)) {\n _addIssue(this, \"item\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/sortItems/sortItems.ts\nfunction sortItems(operation) {\n return {\n kind: \"transformation\",\n type: \"sort_items\",\n reference: sortItems,\n async: false,\n operation,\n \"~run\"(dataset) {\n dataset.value = dataset.value.sort(this.operation);\n return dataset;\n }\n };\n}\n\n// src/actions/startsWith/startsWith.ts\nfunction startsWith(requirement, message) {\n return {\n kind: \"validation\",\n type: \"starts_with\",\n reference: startsWith,\n async: false,\n expects: `\"${requirement}\"`,\n requirement,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed && !dataset.value.startsWith(this.requirement)) {\n _addIssue(this, \"start\", dataset, config2, {\n received: `\"${dataset.value.slice(0, this.requirement.length)}\"`\n });\n }\n return dataset;\n }\n };\n}\n\n// src/actions/title/title.ts\nfunction title(title_) {\n return {\n kind: \"metadata\",\n type: \"title\",\n reference: title,\n title: title_\n };\n}\n\n// src/actions/toLowerCase/toLowerCase.ts\nfunction toLowerCase() {\n return {\n kind: \"transformation\",\n type: \"to_lower_case\",\n reference: toLowerCase,\n async: false,\n \"~run\"(dataset) {\n dataset.value = dataset.value.toLowerCase();\n return dataset;\n }\n };\n}\n\n// src/actions/toMaxValue/toMaxValue.ts\nfunction toMaxValue(requirement) {\n return {\n kind: \"transformation\",\n type: \"to_max_value\",\n reference: toMaxValue,\n async: false,\n requirement,\n \"~run\"(dataset) {\n dataset.value = dataset.value > this.requirement ? this.requirement : dataset.value;\n return dataset;\n }\n };\n}\n\n// src/actions/toMinValue/toMinValue.ts\nfunction toMinValue(requirement) {\n return {\n kind: \"transformation\",\n type: \"to_min_value\",\n reference: toMinValue,\n async: false,\n requirement,\n \"~run\"(dataset) {\n dataset.value = dataset.value < this.requirement ? this.requirement : dataset.value;\n return dataset;\n }\n };\n}\n\n// src/actions/toUpperCase/toUpperCase.ts\nfunction toUpperCase() {\n return {\n kind: \"transformation\",\n type: \"to_upper_case\",\n reference: toUpperCase,\n async: false,\n \"~run\"(dataset) {\n dataset.value = dataset.value.toUpperCase();\n return dataset;\n }\n };\n}\n\n// src/actions/transform/transform.ts\nfunction transform(operation) {\n return {\n kind: \"transformation\",\n type: \"transform\",\n reference: transform,\n async: false,\n operation,\n \"~run\"(dataset) {\n dataset.value = this.operation(dataset.value);\n return dataset;\n }\n };\n}\n\n// src/actions/transform/transformAsync.ts\nfunction transformAsync(operation) {\n return {\n kind: \"transformation\",\n type: \"transform\",\n reference: transformAsync,\n async: true,\n operation,\n async \"~run\"(dataset) {\n dataset.value = await this.operation(dataset.value);\n return dataset;\n }\n };\n}\n\n// src/actions/trim/trim.ts\nfunction trim() {\n return {\n kind: \"transformation\",\n type: \"trim\",\n reference: trim,\n async: false,\n \"~run\"(dataset) {\n dataset.value = dataset.value.trim();\n return dataset;\n }\n };\n}\n\n// src/actions/trimEnd/trimEnd.ts\nfunction trimEnd() {\n return {\n kind: \"transformation\",\n type: \"trim_end\",\n reference: trimEnd,\n async: false,\n \"~run\"(dataset) {\n dataset.value = dataset.value.trimEnd();\n return dataset;\n }\n };\n}\n\n// src/actions/trimStart/trimStart.ts\nfunction trimStart() {\n return {\n kind: \"transformation\",\n type: \"trim_start\",\n reference: trimStart,\n async: false,\n \"~run\"(dataset) {\n dataset.value = dataset.value.trimStart();\n return dataset;\n }\n };\n}\n\n// src/actions/ulid/ulid.ts\nfunction ulid(message) {\n return {\n kind: \"validation\",\n type: \"ulid\",\n reference: ulid,\n async: false,\n expects: null,\n requirement: ULID_REGEX,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed && !this.requirement.test(dataset.value)) {\n _addIssue(this, \"ULID\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/url/url.ts\nfunction url(message) {\n return {\n kind: \"validation\",\n type: \"url\",\n reference: url,\n async: false,\n expects: null,\n requirement(input) {\n try {\n new URL(input);\n return true;\n } catch {\n return false;\n }\n },\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed && !this.requirement(dataset.value)) {\n _addIssue(this, \"URL\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/uuid/uuid.ts\nfunction uuid(message) {\n return {\n kind: \"validation\",\n type: \"uuid\",\n reference: uuid,\n async: false,\n expects: null,\n requirement: UUID_REGEX,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed && !this.requirement.test(dataset.value)) {\n _addIssue(this, \"UUID\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/actions/value/value.ts\nfunction value(requirement, message) {\n return {\n kind: \"validation\",\n type: \"value\",\n reference: value,\n async: false,\n expects: requirement instanceof Date ? requirement.toJSON() : _stringify(requirement),\n requirement,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed && !(this.requirement <= dataset.value && this.requirement >= dataset.value)) {\n _addIssue(this, \"value\", dataset, config2, {\n received: dataset.value instanceof Date ? dataset.value.toJSON() : _stringify(dataset.value)\n });\n }\n return dataset;\n }\n };\n}\n\n// src/actions/words/words.ts\nfunction words(locales, requirement, message) {\n return {\n kind: \"validation\",\n type: \"words\",\n reference: words,\n async: false,\n expects: `${requirement}`,\n locales,\n requirement,\n message,\n \"~run\"(dataset, config2) {\n if (dataset.typed) {\n const count = _getWordCount(this.locales, dataset.value);\n if (count !== this.requirement) {\n _addIssue(this, \"words\", dataset, config2, {\n received: `${count}`\n });\n }\n }\n return dataset;\n }\n };\n}\n\n// src/methods/assert/assert.ts\nfunction assert(schema, input) {\n const issues = schema[\"~run\"]({ value: input }, { abortEarly: true }).issues;\n if (issues) {\n throw new ValiError(issues);\n }\n}\n\n// src/methods/config/config.ts\nfunction config(schema, config2) {\n return {\n ...schema,\n \"~run\"(dataset, config_) {\n return schema[\"~run\"](dataset, { ...config_, ...config2 });\n }\n };\n}\n\n// src/methods/getFallback/getFallback.ts\nfunction getFallback(schema, dataset, config2) {\n return typeof schema.fallback === \"function\" ? (\n // @ts-expect-error\n schema.fallback(dataset, config2)\n ) : (\n // @ts-expect-error\n schema.fallback\n );\n}\n\n// src/methods/fallback/fallback.ts\nfunction fallback(schema, fallback2) {\n return {\n ...schema,\n fallback: fallback2,\n \"~run\"(dataset, config2) {\n const outputDataset = schema[\"~run\"](dataset, config2);\n return outputDataset.issues ? { typed: true, value: getFallback(this, outputDataset, config2) } : outputDataset;\n }\n };\n}\n\n// src/methods/fallback/fallbackAsync.ts\nfunction fallbackAsync(schema, fallback2) {\n return {\n ...schema,\n fallback: fallback2,\n async: true,\n async \"~run\"(dataset, config2) {\n const outputDataset = await schema[\"~run\"](dataset, config2);\n return outputDataset.issues ? {\n typed: true,\n value: await getFallback(this, outputDataset, config2)\n } : outputDataset;\n }\n };\n}\n\n// src/methods/flatten/flatten.ts\nfunction flatten(issues) {\n const flatErrors = {};\n for (const issue of issues) {\n if (issue.path) {\n const dotPath = getDotPath(issue);\n if (dotPath) {\n if (!flatErrors.nested) {\n flatErrors.nested = {};\n }\n if (flatErrors.nested[dotPath]) {\n flatErrors.nested[dotPath].push(issue.message);\n } else {\n flatErrors.nested[dotPath] = [issue.message];\n }\n } else {\n if (flatErrors.other) {\n flatErrors.other.push(issue.message);\n } else {\n flatErrors.other = [issue.message];\n }\n }\n } else {\n if (flatErrors.root) {\n flatErrors.root.push(issue.message);\n } else {\n flatErrors.root = [issue.message];\n }\n }\n }\n return flatErrors;\n}\n\n// src/methods/forward/forward.ts\nfunction forward(action, pathKeys) {\n return {\n ...action,\n \"~run\"(dataset, config2) {\n const prevIssues = dataset.issues && [...dataset.issues];\n dataset = action[\"~run\"](dataset, config2);\n if (dataset.issues) {\n for (const issue of dataset.issues) {\n if (!prevIssues?.includes(issue)) {\n let pathInput = dataset.value;\n for (const key of pathKeys) {\n const pathValue = pathInput[key];\n const pathItem = {\n type: \"unknown\",\n origin: \"value\",\n input: pathInput,\n key,\n value: pathValue\n };\n if (issue.path) {\n issue.path.push(pathItem);\n } else {\n issue.path = [pathItem];\n }\n if (!pathValue) {\n break;\n }\n pathInput = pathValue;\n }\n }\n }\n }\n return dataset;\n }\n };\n}\n\n// src/methods/forward/forwardAsync.ts\nfunction forwardAsync(action, pathKeys) {\n return {\n ...action,\n async: true,\n async \"~run\"(dataset, config2) {\n const prevIssues = dataset.issues && [...dataset.issues];\n dataset = await action[\"~run\"](dataset, config2);\n if (dataset.issues) {\n for (const issue of dataset.issues) {\n if (!prevIssues?.includes(issue)) {\n let pathInput = dataset.value;\n for (const key of pathKeys) {\n const pathValue = pathInput[key];\n const pathItem = {\n type: \"unknown\",\n origin: \"value\",\n input: pathInput,\n key,\n value: pathValue\n };\n if (issue.path) {\n issue.path.push(pathItem);\n } else {\n issue.path = [pathItem];\n }\n if (!pathValue) {\n break;\n }\n pathInput = pathValue;\n }\n }\n }\n }\n return dataset;\n }\n };\n}\n\n// src/methods/getDefault/getDefault.ts\nfunction getDefault(schema, dataset, config2) {\n return typeof schema.default === \"function\" ? (\n // @ts-expect-error\n schema.default(dataset, config2)\n ) : (\n // @ts-expect-error\n schema.default\n );\n}\n\n// src/methods/getDefaults/getDefaults.ts\nfunction getDefaults(schema) {\n if (\"entries\" in schema) {\n const object2 = {};\n for (const key in schema.entries) {\n object2[key] = getDefaults(schema.entries[key]);\n }\n return object2;\n }\n if (\"items\" in schema) {\n return schema.items.map(getDefaults);\n }\n return getDefault(schema);\n}\n\n// src/methods/getDefaults/getDefaultsAsync.ts\nasync function getDefaultsAsync(schema) {\n if (\"entries\" in schema) {\n return Object.fromEntries(\n await Promise.all(\n Object.entries(schema.entries).map(async ([key, value2]) => [\n key,\n await getDefaultsAsync(value2)\n ])\n )\n );\n }\n if (\"items\" in schema) {\n return Promise.all(schema.items.map(getDefaultsAsync));\n }\n return getDefault(schema);\n}\n\n// src/methods/getFallbacks/getFallbacks.ts\nfunction getFallbacks(schema) {\n if (\"entries\" in schema) {\n const object2 = {};\n for (const key in schema.entries) {\n object2[key] = getFallbacks(schema.entries[key]);\n }\n return object2;\n }\n if (\"items\" in schema) {\n return schema.items.map(getFallbacks);\n }\n return getFallback(schema);\n}\n\n// src/methods/getFallbacks/getFallbacksAsync.ts\nasync function getFallbacksAsync(schema) {\n if (\"entries\" in schema) {\n return Object.fromEntries(\n await Promise.all(\n Object.entries(schema.entries).map(async ([key, value2]) => [\n key,\n await getFallbacksAsync(value2)\n ])\n )\n );\n }\n if (\"items\" in schema) {\n return Promise.all(schema.items.map(getFallbacksAsync));\n }\n return getFallback(schema);\n}\n\n// src/methods/is/is.ts\nfunction is(schema, input) {\n return !schema[\"~run\"]({ value: input }, { abortEarly: true }).issues;\n}\n\n// src/schemas/any/any.ts\nfunction any() {\n return {\n kind: \"schema\",\n type: \"any\",\n reference: any,\n expects: \"any\",\n async: false,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n \"~run\"(dataset) {\n dataset.typed = true;\n return dataset;\n }\n };\n}\n\n// src/schemas/array/array.ts\nfunction array(item, message) {\n return {\n kind: \"schema\",\n type: \"array\",\n reference: array,\n expects: \"Array\",\n async: false,\n item,\n message,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n \"~run\"(dataset, config2) {\n const input = dataset.value;\n if (Array.isArray(input)) {\n dataset.typed = true;\n dataset.value = [];\n for (let key = 0; key < input.length; key++) {\n const value2 = input[key];\n const itemDataset = this.item[\"~run\"]({ value: value2 }, config2);\n if (itemDataset.issues) {\n const pathItem = {\n type: \"array\",\n origin: \"value\",\n input,\n key,\n value: value2\n };\n for (const issue of itemDataset.issues) {\n if (issue.path) {\n issue.path.unshift(pathItem);\n } else {\n issue.path = [pathItem];\n }\n dataset.issues?.push(issue);\n }\n if (!dataset.issues) {\n dataset.issues = itemDataset.issues;\n }\n if (config2.abortEarly) {\n dataset.typed = false;\n break;\n }\n }\n if (!itemDataset.typed) {\n dataset.typed = false;\n }\n dataset.value.push(itemDataset.value);\n }\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/array/arrayAsync.ts\nfunction arrayAsync(item, message) {\n return {\n kind: \"schema\",\n type: \"array\",\n reference: arrayAsync,\n expects: \"Array\",\n async: true,\n item,\n message,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n async \"~run\"(dataset, config2) {\n const input = dataset.value;\n if (Array.isArray(input)) {\n dataset.typed = true;\n dataset.value = [];\n const itemDatasets = await Promise.all(\n input.map((value2) => this.item[\"~run\"]({ value: value2 }, config2))\n );\n for (let key = 0; key < itemDatasets.length; key++) {\n const itemDataset = itemDatasets[key];\n if (itemDataset.issues) {\n const pathItem = {\n type: \"array\",\n origin: \"value\",\n input,\n key,\n value: input[key]\n };\n for (const issue of itemDataset.issues) {\n if (issue.path) {\n issue.path.unshift(pathItem);\n } else {\n issue.path = [pathItem];\n }\n dataset.issues?.push(issue);\n }\n if (!dataset.issues) {\n dataset.issues = itemDataset.issues;\n }\n if (config2.abortEarly) {\n dataset.typed = false;\n break;\n }\n }\n if (!itemDataset.typed) {\n dataset.typed = false;\n }\n dataset.value.push(itemDataset.value);\n }\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/bigint/bigint.ts\nfunction bigint(message) {\n return {\n kind: \"schema\",\n type: \"bigint\",\n reference: bigint,\n expects: \"bigint\",\n async: false,\n message,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n \"~run\"(dataset, config2) {\n if (typeof dataset.value === \"bigint\") {\n dataset.typed = true;\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/blob/blob.ts\nfunction blob(message) {\n return {\n kind: \"schema\",\n type: \"blob\",\n reference: blob,\n expects: \"Blob\",\n async: false,\n message,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n \"~run\"(dataset, config2) {\n if (dataset.value instanceof Blob) {\n dataset.typed = true;\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/boolean/boolean.ts\nfunction boolean(message) {\n return {\n kind: \"schema\",\n type: \"boolean\",\n reference: boolean,\n expects: \"boolean\",\n async: false,\n message,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n \"~run\"(dataset, config2) {\n if (typeof dataset.value === \"boolean\") {\n dataset.typed = true;\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/custom/custom.ts\nfunction custom(check2, message) {\n return {\n kind: \"schema\",\n type: \"custom\",\n reference: custom,\n expects: \"unknown\",\n async: false,\n check: check2,\n message,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n \"~run\"(dataset, config2) {\n if (this.check(dataset.value)) {\n dataset.typed = true;\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/custom/customAsync.ts\nfunction customAsync(check2, message) {\n return {\n kind: \"schema\",\n type: \"custom\",\n reference: customAsync,\n expects: \"unknown\",\n async: true,\n check: check2,\n message,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n async \"~run\"(dataset, config2) {\n if (await this.check(dataset.value)) {\n dataset.typed = true;\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/date/date.ts\nfunction date(message) {\n return {\n kind: \"schema\",\n type: \"date\",\n reference: date,\n expects: \"Date\",\n async: false,\n message,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n \"~run\"(dataset, config2) {\n if (dataset.value instanceof Date) {\n if (!isNaN(dataset.value)) {\n dataset.typed = true;\n } else {\n _addIssue(this, \"type\", dataset, config2, {\n received: '\"Invalid Date\"'\n });\n }\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/enum/enum.ts\nfunction enum_(enum__, message) {\n const options = Object.entries(enum__).filter(([key]) => isNaN(+key)).map(([, value2]) => value2);\n return {\n kind: \"schema\",\n type: \"enum\",\n reference: enum_,\n expects: _joinExpects(options.map(_stringify), \"|\"),\n async: false,\n enum: enum__,\n options,\n message,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n \"~run\"(dataset, config2) {\n if (this.options.includes(dataset.value)) {\n dataset.typed = true;\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/file/file.ts\nfunction file(message) {\n return {\n kind: \"schema\",\n type: \"file\",\n reference: file,\n expects: \"File\",\n async: false,\n message,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n \"~run\"(dataset, config2) {\n if (dataset.value instanceof File) {\n dataset.typed = true;\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/function/function.ts\nfunction function_(message) {\n return {\n kind: \"schema\",\n type: \"function\",\n reference: function_,\n expects: \"Function\",\n async: false,\n message,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n \"~run\"(dataset, config2) {\n if (typeof dataset.value === \"function\") {\n dataset.typed = true;\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/instance/instance.ts\nfunction instance(class_, message) {\n return {\n kind: \"schema\",\n type: \"instance\",\n reference: instance,\n expects: class_.name,\n async: false,\n class: class_,\n message,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n \"~run\"(dataset, config2) {\n if (dataset.value instanceof this.class) {\n dataset.typed = true;\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/intersect/utils/_merge/_merge.ts\nfunction _merge(value1, value2) {\n if (typeof value1 === typeof value2) {\n if (value1 === value2 || value1 instanceof Date && value2 instanceof Date && +value1 === +value2) {\n return { value: value1 };\n }\n if (value1 && value2 && value1.constructor === Object && value2.constructor === Object) {\n for (const key in value2) {\n if (key in value1) {\n const dataset = _merge(value1[key], value2[key]);\n if (dataset.issue) {\n return dataset;\n }\n value1[key] = dataset.value;\n } else {\n value1[key] = value2[key];\n }\n }\n return { value: value1 };\n }\n if (Array.isArray(value1) && Array.isArray(value2)) {\n if (value1.length === value2.length) {\n for (let index = 0; index < value1.length; index++) {\n const dataset = _merge(value1[index], value2[index]);\n if (dataset.issue) {\n return dataset;\n }\n value1[index] = dataset.value;\n }\n return { value: value1 };\n }\n }\n }\n return { issue: true };\n}\n\n// src/schemas/intersect/intersect.ts\nfunction intersect(options, message) {\n return {\n kind: \"schema\",\n type: \"intersect\",\n reference: intersect,\n expects: _joinExpects(\n options.map((option) => option.expects),\n \"&\"\n ),\n async: false,\n options,\n message,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n \"~run\"(dataset, config2) {\n if (this.options.length) {\n const input = dataset.value;\n let outputs;\n dataset.typed = true;\n for (const schema of this.options) {\n const optionDataset = schema[\"~run\"]({ value: input }, config2);\n if (optionDataset.issues) {\n if (dataset.issues) {\n dataset.issues.push(...optionDataset.issues);\n } else {\n dataset.issues = optionDataset.issues;\n }\n if (config2.abortEarly) {\n dataset.typed = false;\n break;\n }\n }\n if (!optionDataset.typed) {\n dataset.typed = false;\n }\n if (dataset.typed) {\n if (outputs) {\n outputs.push(optionDataset.value);\n } else {\n outputs = [optionDataset.value];\n }\n }\n }\n if (dataset.typed) {\n dataset.value = outputs[0];\n for (let index = 1; index < outputs.length; index++) {\n const mergeDataset = _merge(dataset.value, outputs[index]);\n if (mergeDataset.issue) {\n _addIssue(this, \"type\", dataset, config2, {\n received: \"unknown\"\n });\n break;\n }\n dataset.value = mergeDataset.value;\n }\n }\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/intersect/intersectAsync.ts\nfunction intersectAsync(options, message) {\n return {\n kind: \"schema\",\n type: \"intersect\",\n reference: intersectAsync,\n expects: _joinExpects(\n options.map((option) => option.expects),\n \"&\"\n ),\n async: true,\n options,\n message,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n async \"~run\"(dataset, config2) {\n if (this.options.length) {\n const input = dataset.value;\n let outputs;\n dataset.typed = true;\n const optionDatasets = await Promise.all(\n this.options.map((schema) => schema[\"~run\"]({ value: input }, config2))\n );\n for (const optionDataset of optionDatasets) {\n if (optionDataset.issues) {\n if (dataset.issues) {\n dataset.issues.push(...optionDataset.issues);\n } else {\n dataset.issues = optionDataset.issues;\n }\n if (config2.abortEarly) {\n dataset.typed = false;\n break;\n }\n }\n if (!optionDataset.typed) {\n dataset.typed = false;\n }\n if (dataset.typed) {\n if (outputs) {\n outputs.push(optionDataset.value);\n } else {\n outputs = [optionDataset.value];\n }\n }\n }\n if (dataset.typed) {\n dataset.value = outputs[0];\n for (let index = 1; index < outputs.length; index++) {\n const mergeDataset = _merge(dataset.value, outputs[index]);\n if (mergeDataset.issue) {\n _addIssue(this, \"type\", dataset, config2, {\n received: \"unknown\"\n });\n break;\n }\n dataset.value = mergeDataset.value;\n }\n }\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/lazy/lazy.ts\nfunction lazy(getter) {\n return {\n kind: \"schema\",\n type: \"lazy\",\n reference: lazy,\n expects: \"unknown\",\n async: false,\n getter,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n \"~run\"(dataset, config2) {\n return this.getter(dataset.value)[\"~run\"](dataset, config2);\n }\n };\n}\n\n// src/schemas/lazy/lazyAsync.ts\nfunction lazyAsync(getter) {\n return {\n kind: \"schema\",\n type: \"lazy\",\n reference: lazyAsync,\n expects: \"unknown\",\n async: true,\n getter,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n async \"~run\"(dataset, config2) {\n return (await this.getter(dataset.value))[\"~run\"](dataset, config2);\n }\n };\n}\n\n// src/schemas/literal/literal.ts\nfunction literal(literal_, message) {\n return {\n kind: \"schema\",\n type: \"literal\",\n reference: literal,\n expects: _stringify(literal_),\n async: false,\n literal: literal_,\n message,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n \"~run\"(dataset, config2) {\n if (dataset.value === this.literal) {\n dataset.typed = true;\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/looseObject/looseObject.ts\nfunction looseObject(entries, message) {\n return {\n kind: \"schema\",\n type: \"loose_object\",\n reference: looseObject,\n expects: \"Object\",\n async: false,\n entries,\n message,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n \"~run\"(dataset, config2) {\n const input = dataset.value;\n if (input && typeof input === \"object\") {\n dataset.typed = true;\n dataset.value = {};\n for (const key in this.entries) {\n const value2 = input[key];\n const valueDataset = this.entries[key][\"~run\"]({ value: value2 }, config2);\n if (valueDataset.issues) {\n const pathItem = {\n type: \"object\",\n origin: \"value\",\n input,\n key,\n value: value2\n };\n for (const issue of valueDataset.issues) {\n if (issue.path) {\n issue.path.unshift(pathItem);\n } else {\n issue.path = [pathItem];\n }\n dataset.issues?.push(issue);\n }\n if (!dataset.issues) {\n dataset.issues = valueDataset.issues;\n }\n if (config2.abortEarly) {\n dataset.typed = false;\n break;\n }\n }\n if (!valueDataset.typed) {\n dataset.typed = false;\n }\n if (valueDataset.value !== void 0 || key in input) {\n dataset.value[key] = valueDataset.value;\n }\n }\n if (!dataset.issues || !config2.abortEarly) {\n for (const key in input) {\n if (_isValidObjectKey(input, key) && !(key in this.entries)) {\n dataset.value[key] = input[key];\n }\n }\n }\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/looseObject/looseObjectAsync.ts\nfunction looseObjectAsync(entries, message) {\n return {\n kind: \"schema\",\n type: \"loose_object\",\n reference: looseObjectAsync,\n expects: \"Object\",\n async: true,\n entries,\n message,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n async \"~run\"(dataset, config2) {\n const input = dataset.value;\n if (input && typeof input === \"object\") {\n dataset.typed = true;\n dataset.value = {};\n const valueDatasets = await Promise.all(\n Object.entries(this.entries).map(async ([key, schema]) => {\n const value2 = input[key];\n return [\n key,\n value2,\n await schema[\"~run\"]({ value: value2 }, config2)\n ];\n })\n );\n for (const [key, value2, valueDataset] of valueDatasets) {\n if (valueDataset.issues) {\n const pathItem = {\n type: \"object\",\n origin: \"value\",\n input,\n key,\n value: value2\n };\n for (const issue of valueDataset.issues) {\n if (issue.path) {\n issue.path.unshift(pathItem);\n } else {\n issue.path = [pathItem];\n }\n dataset.issues?.push(issue);\n }\n if (!dataset.issues) {\n dataset.issues = valueDataset.issues;\n }\n if (config2.abortEarly) {\n dataset.typed = false;\n break;\n }\n }\n if (!valueDataset.typed) {\n dataset.typed = false;\n }\n if (valueDataset.value !== void 0 || key in input) {\n dataset.value[key] = valueDataset.value;\n }\n }\n if (!dataset.issues || !config2.abortEarly) {\n for (const key in input) {\n if (_isValidObjectKey(input, key) && !(key in this.entries)) {\n dataset.value[key] = input[key];\n }\n }\n }\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/looseTuple/looseTuple.ts\nfunction looseTuple(items, message) {\n return {\n kind: \"schema\",\n type: \"loose_tuple\",\n reference: looseTuple,\n expects: \"Array\",\n async: false,\n items,\n message,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n \"~run\"(dataset, config2) {\n const input = dataset.value;\n if (Array.isArray(input)) {\n dataset.typed = true;\n dataset.value = [];\n for (let key = 0; key < this.items.length; key++) {\n const value2 = input[key];\n const itemDataset = this.items[key][\"~run\"]({ value: value2 }, config2);\n if (itemDataset.issues) {\n const pathItem = {\n type: \"array\",\n origin: \"value\",\n input,\n key,\n value: value2\n };\n for (const issue of itemDataset.issues) {\n if (issue.path) {\n issue.path.unshift(pathItem);\n } else {\n issue.path = [pathItem];\n }\n dataset.issues?.push(issue);\n }\n if (!dataset.issues) {\n dataset.issues = itemDataset.issues;\n }\n if (config2.abortEarly) {\n dataset.typed = false;\n break;\n }\n }\n if (!itemDataset.typed) {\n dataset.typed = false;\n }\n dataset.value.push(itemDataset.value);\n }\n if (!dataset.issues || !config2.abortEarly) {\n for (let key = this.items.length; key < input.length; key++) {\n dataset.value.push(input[key]);\n }\n }\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/looseTuple/looseTupleAsync.ts\nfunction looseTupleAsync(items, message) {\n return {\n kind: \"schema\",\n type: \"loose_tuple\",\n reference: looseTupleAsync,\n expects: \"Array\",\n async: true,\n items,\n message,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n async \"~run\"(dataset, config2) {\n const input = dataset.value;\n if (Array.isArray(input)) {\n dataset.typed = true;\n dataset.value = [];\n const itemDatasets = await Promise.all(\n this.items.map(async (item, key) => {\n const value2 = input[key];\n return [key, value2, await item[\"~run\"]({ value: value2 }, config2)];\n })\n );\n for (const [key, value2, itemDataset] of itemDatasets) {\n if (itemDataset.issues) {\n const pathItem = {\n type: \"array\",\n origin: \"value\",\n input,\n key,\n value: value2\n };\n for (const issue of itemDataset.issues) {\n if (issue.path) {\n issue.path.unshift(pathItem);\n } else {\n issue.path = [pathItem];\n }\n dataset.issues?.push(issue);\n }\n if (!dataset.issues) {\n dataset.issues = itemDataset.issues;\n }\n if (config2.abortEarly) {\n dataset.typed = false;\n break;\n }\n }\n if (!itemDataset.typed) {\n dataset.typed = false;\n }\n dataset.value.push(itemDataset.value);\n }\n if (!dataset.issues || !config2.abortEarly) {\n for (let key = this.items.length; key < input.length; key++) {\n dataset.value.push(input[key]);\n }\n }\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/map/map.ts\nfunction map(key, value2, message) {\n return {\n kind: \"schema\",\n type: \"map\",\n reference: map,\n expects: \"Map\",\n async: false,\n key,\n value: value2,\n message,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n \"~run\"(dataset, config2) {\n const input = dataset.value;\n if (input instanceof Map) {\n dataset.typed = true;\n dataset.value = /* @__PURE__ */ new Map();\n for (const [inputKey, inputValue] of input) {\n const keyDataset = this.key[\"~run\"]({ value: inputKey }, config2);\n if (keyDataset.issues) {\n const pathItem = {\n type: \"map\",\n origin: \"key\",\n input,\n key: inputKey,\n value: inputValue\n };\n for (const issue of keyDataset.issues) {\n if (issue.path) {\n issue.path.unshift(pathItem);\n } else {\n issue.path = [pathItem];\n }\n dataset.issues?.push(issue);\n }\n if (!dataset.issues) {\n dataset.issues = keyDataset.issues;\n }\n if (config2.abortEarly) {\n dataset.typed = false;\n break;\n }\n }\n const valueDataset = this.value[\"~run\"](\n { value: inputValue },\n config2\n );\n if (valueDataset.issues) {\n const pathItem = {\n type: \"map\",\n origin: \"value\",\n input,\n key: inputKey,\n value: inputValue\n };\n for (const issue of valueDataset.issues) {\n if (issue.path) {\n issue.path.unshift(pathItem);\n } else {\n issue.path = [pathItem];\n }\n dataset.issues?.push(issue);\n }\n if (!dataset.issues) {\n dataset.issues = valueDataset.issues;\n }\n if (config2.abortEarly) {\n dataset.typed = false;\n break;\n }\n }\n if (!keyDataset.typed || !valueDataset.typed) {\n dataset.typed = false;\n }\n dataset.value.set(keyDataset.value, valueDataset.value);\n }\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/map/mapAsync.ts\nfunction mapAsync(key, value2, message) {\n return {\n kind: \"schema\",\n type: \"map\",\n reference: mapAsync,\n expects: \"Map\",\n async: true,\n key,\n value: value2,\n message,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n async \"~run\"(dataset, config2) {\n const input = dataset.value;\n if (input instanceof Map) {\n dataset.typed = true;\n dataset.value = /* @__PURE__ */ new Map();\n const datasets = await Promise.all(\n [...input].map(\n ([inputKey, inputValue]) => Promise.all([\n inputKey,\n inputValue,\n this.key[\"~run\"]({ value: inputKey }, config2),\n this.value[\"~run\"]({ value: inputValue }, config2)\n ])\n )\n );\n for (const [\n inputKey,\n inputValue,\n keyDataset,\n valueDataset\n ] of datasets) {\n if (keyDataset.issues) {\n const pathItem = {\n type: \"map\",\n origin: \"key\",\n input,\n key: inputKey,\n value: inputValue\n };\n for (const issue of keyDataset.issues) {\n if (issue.path) {\n issue.path.unshift(pathItem);\n } else {\n issue.path = [pathItem];\n }\n dataset.issues?.push(issue);\n }\n if (!dataset.issues) {\n dataset.issues = keyDataset.issues;\n }\n if (config2.abortEarly) {\n dataset.typed = false;\n break;\n }\n }\n if (valueDataset.issues) {\n const pathItem = {\n type: \"map\",\n origin: \"value\",\n input,\n key: inputKey,\n value: inputValue\n };\n for (const issue of valueDataset.issues) {\n if (issue.path) {\n issue.path.unshift(pathItem);\n } else {\n issue.path = [pathItem];\n }\n dataset.issues?.push(issue);\n }\n if (!dataset.issues) {\n dataset.issues = valueDataset.issues;\n }\n if (config2.abortEarly) {\n dataset.typed = false;\n break;\n }\n }\n if (!keyDataset.typed || !valueDataset.typed) {\n dataset.typed = false;\n }\n dataset.value.set(keyDataset.value, valueDataset.value);\n }\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/nan/nan.ts\nfunction nan(message) {\n return {\n kind: \"schema\",\n type: \"nan\",\n reference: nan,\n expects: \"NaN\",\n async: false,\n message,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n \"~run\"(dataset, config2) {\n if (Number.isNaN(dataset.value)) {\n dataset.typed = true;\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/never/never.ts\nfunction never(message) {\n return {\n kind: \"schema\",\n type: \"never\",\n reference: never,\n expects: \"never\",\n async: false,\n message,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n \"~run\"(dataset, config2) {\n _addIssue(this, \"type\", dataset, config2);\n return dataset;\n }\n };\n}\n\n// src/schemas/nonNullable/nonNullable.ts\nfunction nonNullable(wrapped, message) {\n return {\n kind: \"schema\",\n type: \"non_nullable\",\n reference: nonNullable,\n expects: \"!null\",\n async: false,\n wrapped,\n message,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n \"~run\"(dataset, config2) {\n if (dataset.value !== null) {\n dataset = this.wrapped[\"~run\"](dataset, config2);\n }\n if (dataset.value === null) {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/nonNullable/nonNullableAsync.ts\nfunction nonNullableAsync(wrapped, message) {\n return {\n kind: \"schema\",\n type: \"non_nullable\",\n reference: nonNullableAsync,\n expects: \"!null\",\n async: true,\n wrapped,\n message,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n async \"~run\"(dataset, config2) {\n if (dataset.value !== null) {\n dataset = await this.wrapped[\"~run\"](dataset, config2);\n }\n if (dataset.value === null) {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/nonNullish/nonNullish.ts\nfunction nonNullish(wrapped, message) {\n return {\n kind: \"schema\",\n type: \"non_nullish\",\n reference: nonNullish,\n expects: \"(!null & !undefined)\",\n async: false,\n wrapped,\n message,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n \"~run\"(dataset, config2) {\n if (!(dataset.value === null || dataset.value === void 0)) {\n dataset = this.wrapped[\"~run\"](dataset, config2);\n }\n if (dataset.value === null || dataset.value === void 0) {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/nonNullish/nonNullishAsync.ts\nfunction nonNullishAsync(wrapped, message) {\n return {\n kind: \"schema\",\n type: \"non_nullish\",\n reference: nonNullishAsync,\n expects: \"(!null & !undefined)\",\n async: true,\n wrapped,\n message,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n async \"~run\"(dataset, config2) {\n if (!(dataset.value === null || dataset.value === void 0)) {\n dataset = await this.wrapped[\"~run\"](dataset, config2);\n }\n if (dataset.value === null || dataset.value === void 0) {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/nonOptional/nonOptional.ts\nfunction nonOptional(wrapped, message) {\n return {\n kind: \"schema\",\n type: \"non_optional\",\n reference: nonOptional,\n expects: \"!undefined\",\n async: false,\n wrapped,\n message,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n \"~run\"(dataset, config2) {\n if (dataset.value !== void 0) {\n dataset = this.wrapped[\"~run\"](dataset, config2);\n }\n if (dataset.value === void 0) {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/nonOptional/nonOptionalAsync.ts\nfunction nonOptionalAsync(wrapped, message) {\n return {\n kind: \"schema\",\n type: \"non_optional\",\n reference: nonOptionalAsync,\n expects: \"!undefined\",\n async: true,\n wrapped,\n message,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n async \"~run\"(dataset, config2) {\n if (dataset.value !== void 0) {\n dataset = await this.wrapped[\"~run\"](dataset, config2);\n }\n if (dataset.value === void 0) {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/null/null.ts\nfunction null_(message) {\n return {\n kind: \"schema\",\n type: \"null\",\n reference: null_,\n expects: \"null\",\n async: false,\n message,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n \"~run\"(dataset, config2) {\n if (dataset.value === null) {\n dataset.typed = true;\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/nullable/nullable.ts\nfunction nullable(wrapped, default_) {\n return {\n kind: \"schema\",\n type: \"nullable\",\n reference: nullable,\n expects: `(${wrapped.expects} | null)`,\n async: false,\n wrapped,\n default: default_,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n \"~run\"(dataset, config2) {\n if (dataset.value === null) {\n if (this.default !== void 0) {\n dataset.value = getDefault(this, dataset, config2);\n }\n if (dataset.value === null) {\n dataset.typed = true;\n return dataset;\n }\n }\n return this.wrapped[\"~run\"](dataset, config2);\n }\n };\n}\n\n// src/schemas/nullable/nullableAsync.ts\nfunction nullableAsync(wrapped, default_) {\n return {\n kind: \"schema\",\n type: \"nullable\",\n reference: nullableAsync,\n expects: `(${wrapped.expects} | null)`,\n async: true,\n wrapped,\n default: default_,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n async \"~run\"(dataset, config2) {\n if (dataset.value === null) {\n if (this.default !== void 0) {\n dataset.value = await getDefault(this, dataset, config2);\n }\n if (dataset.value === null) {\n dataset.typed = true;\n return dataset;\n }\n }\n return this.wrapped[\"~run\"](dataset, config2);\n }\n };\n}\n\n// src/schemas/nullish/nullish.ts\nfunction nullish(wrapped, default_) {\n return {\n kind: \"schema\",\n type: \"nullish\",\n reference: nullish,\n expects: `(${wrapped.expects} | null | undefined)`,\n async: false,\n wrapped,\n default: default_,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n \"~run\"(dataset, config2) {\n if (dataset.value === null || dataset.value === void 0) {\n if (this.default !== void 0) {\n dataset.value = getDefault(this, dataset, config2);\n }\n if (dataset.value === null || dataset.value === void 0) {\n dataset.typed = true;\n return dataset;\n }\n }\n return this.wrapped[\"~run\"](dataset, config2);\n }\n };\n}\n\n// src/schemas/nullish/nullishAsync.ts\nfunction nullishAsync(wrapped, default_) {\n return {\n kind: \"schema\",\n type: \"nullish\",\n reference: nullishAsync,\n expects: `(${wrapped.expects} | null | undefined)`,\n async: true,\n wrapped,\n default: default_,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n async \"~run\"(dataset, config2) {\n if (dataset.value === null || dataset.value === void 0) {\n if (this.default !== void 0) {\n dataset.value = await getDefault(this, dataset, config2);\n }\n if (dataset.value === null || dataset.value === void 0) {\n dataset.typed = true;\n return dataset;\n }\n }\n return this.wrapped[\"~run\"](dataset, config2);\n }\n };\n}\n\n// src/schemas/number/number.ts\nfunction number(message) {\n return {\n kind: \"schema\",\n type: \"number\",\n reference: number,\n expects: \"number\",\n async: false,\n message,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n \"~run\"(dataset, config2) {\n if (typeof dataset.value === \"number\" && !isNaN(dataset.value)) {\n dataset.typed = true;\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/object/object.ts\nfunction object(entries, message) {\n return {\n kind: \"schema\",\n type: \"object\",\n reference: object,\n expects: \"Object\",\n async: false,\n entries,\n message,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n \"~run\"(dataset, config2) {\n const input = dataset.value;\n if (input && typeof input === \"object\") {\n dataset.typed = true;\n dataset.value = {};\n for (const key in this.entries) {\n const value2 = input[key];\n const valueDataset = this.entries[key][\"~run\"]({ value: value2 }, config2);\n if (valueDataset.issues) {\n const pathItem = {\n type: \"object\",\n origin: \"value\",\n input,\n key,\n value: value2\n };\n for (const issue of valueDataset.issues) {\n if (issue.path) {\n issue.path.unshift(pathItem);\n } else {\n issue.path = [pathItem];\n }\n dataset.issues?.push(issue);\n }\n if (!dataset.issues) {\n dataset.issues = valueDataset.issues;\n }\n if (config2.abortEarly) {\n dataset.typed = false;\n break;\n }\n }\n if (!valueDataset.typed) {\n dataset.typed = false;\n }\n if (valueDataset.value !== void 0 || key in input) {\n dataset.value[key] = valueDataset.value;\n }\n }\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/object/objectAsync.ts\nfunction objectAsync(entries, message) {\n return {\n kind: \"schema\",\n type: \"object\",\n reference: objectAsync,\n expects: \"Object\",\n async: true,\n entries,\n message,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n async \"~run\"(dataset, config2) {\n const input = dataset.value;\n if (input && typeof input === \"object\") {\n dataset.typed = true;\n dataset.value = {};\n const valueDatasets = await Promise.all(\n Object.entries(this.entries).map(async ([key, schema]) => {\n const value2 = input[key];\n return [\n key,\n value2,\n await schema[\"~run\"]({ value: value2 }, config2)\n ];\n })\n );\n for (const [key, value2, valueDataset] of valueDatasets) {\n if (valueDataset.issues) {\n const pathItem = {\n type: \"object\",\n origin: \"value\",\n input,\n key,\n value: value2\n };\n for (const issue of valueDataset.issues) {\n if (issue.path) {\n issue.path.unshift(pathItem);\n } else {\n issue.path = [pathItem];\n }\n dataset.issues?.push(issue);\n }\n if (!dataset.issues) {\n dataset.issues = valueDataset.issues;\n }\n if (config2.abortEarly) {\n dataset.typed = false;\n break;\n }\n }\n if (!valueDataset.typed) {\n dataset.typed = false;\n }\n if (valueDataset.value !== void 0 || key in input) {\n dataset.value[key] = valueDataset.value;\n }\n }\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/objectWithRest/objectWithRest.ts\nfunction objectWithRest(entries, rest, message) {\n return {\n kind: \"schema\",\n type: \"object_with_rest\",\n reference: objectWithRest,\n expects: \"Object\",\n async: false,\n entries,\n rest,\n message,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n \"~run\"(dataset, config2) {\n const input = dataset.value;\n if (input && typeof input === \"object\") {\n dataset.typed = true;\n dataset.value = {};\n for (const key in this.entries) {\n const value2 = input[key];\n const valueDataset = this.entries[key][\"~run\"]({ value: value2 }, config2);\n if (valueDataset.issues) {\n const pathItem = {\n type: \"object\",\n origin: \"value\",\n input,\n key,\n value: value2\n };\n for (const issue of valueDataset.issues) {\n if (issue.path) {\n issue.path.unshift(pathItem);\n } else {\n issue.path = [pathItem];\n }\n dataset.issues?.push(issue);\n }\n if (!dataset.issues) {\n dataset.issues = valueDataset.issues;\n }\n if (config2.abortEarly) {\n dataset.typed = false;\n break;\n }\n }\n if (!valueDataset.typed) {\n dataset.typed = false;\n }\n if (valueDataset.value !== void 0 || key in input) {\n dataset.value[key] = valueDataset.value;\n }\n }\n if (!dataset.issues || !config2.abortEarly) {\n for (const key in input) {\n if (_isValidObjectKey(input, key) && !(key in this.entries)) {\n const value2 = input[key];\n const valueDataset = this.rest[\"~run\"]({ value: value2 }, config2);\n if (valueDataset.issues) {\n const pathItem = {\n type: \"object\",\n origin: \"value\",\n input,\n key,\n value: value2\n };\n for (const issue of valueDataset.issues) {\n if (issue.path) {\n issue.path.unshift(pathItem);\n } else {\n issue.path = [pathItem];\n }\n dataset.issues?.push(issue);\n }\n if (!dataset.issues) {\n dataset.issues = valueDataset.issues;\n }\n if (config2.abortEarly) {\n dataset.typed = false;\n break;\n }\n }\n if (!valueDataset.typed) {\n dataset.typed = false;\n }\n dataset.value[key] = valueDataset.value;\n }\n }\n }\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/objectWithRest/objectWithRestAsync.ts\nfunction objectWithRestAsync(entries, rest, message) {\n return {\n kind: \"schema\",\n type: \"object_with_rest\",\n reference: objectWithRestAsync,\n expects: \"Object\",\n async: true,\n entries,\n rest,\n message,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n async \"~run\"(dataset, config2) {\n const input = dataset.value;\n if (input && typeof input === \"object\") {\n dataset.typed = true;\n dataset.value = {};\n const [normalDatasets, restDatasets] = await Promise.all([\n // Parse schema of each normal entry\n // Hint: We do not distinguish between missing and `undefined` entries.\n // The reason for this decision is that it reduces the bundle size, and\n // we also expect that most users will expect this behavior.\n Promise.all(\n Object.entries(this.entries).map(async ([key, schema]) => {\n const value2 = input[key];\n return [\n key,\n value2,\n await schema[\"~run\"]({ value: value2 }, config2)\n ];\n })\n ),\n // Parse other entries with rest schema\n // Hint: We exclude specific keys for security reasons\n Promise.all(\n Object.entries(input).filter(\n ([key]) => _isValidObjectKey(input, key) && !(key in this.entries)\n ).map(\n async ([key, value2]) => [\n key,\n value2,\n await this.rest[\"~run\"]({ value: value2 }, config2)\n ]\n )\n )\n ]);\n for (const [key, value2, valueDataset] of normalDatasets) {\n if (valueDataset.issues) {\n const pathItem = {\n type: \"object\",\n origin: \"value\",\n input,\n key,\n value: value2\n };\n for (const issue of valueDataset.issues) {\n if (issue.path) {\n issue.path.unshift(pathItem);\n } else {\n issue.path = [pathItem];\n }\n dataset.issues?.push(issue);\n }\n if (!dataset.issues) {\n dataset.issues = valueDataset.issues;\n }\n if (config2.abortEarly) {\n dataset.typed = false;\n break;\n }\n }\n if (!valueDataset.typed) {\n dataset.typed = false;\n }\n if (valueDataset.value !== void 0 || key in input) {\n dataset.value[key] = valueDataset.value;\n }\n }\n if (!dataset.issues || !config2.abortEarly) {\n for (const [key, value2, valueDataset] of restDatasets) {\n if (valueDataset.issues) {\n const pathItem = {\n type: \"object\",\n origin: \"value\",\n input,\n key,\n value: value2\n };\n for (const issue of valueDataset.issues) {\n if (issue.path) {\n issue.path.unshift(pathItem);\n } else {\n issue.path = [pathItem];\n }\n dataset.issues?.push(issue);\n }\n if (!dataset.issues) {\n dataset.issues = valueDataset.issues;\n }\n if (config2.abortEarly) {\n dataset.typed = false;\n break;\n }\n }\n if (!valueDataset.typed) {\n dataset.typed = false;\n }\n dataset.value[key] = valueDataset.value;\n }\n }\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/optional/optional.ts\nfunction optional(wrapped, default_) {\n return {\n kind: \"schema\",\n type: \"optional\",\n reference: optional,\n expects: `(${wrapped.expects} | undefined)`,\n async: false,\n wrapped,\n default: default_,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n \"~run\"(dataset, config2) {\n if (dataset.value === void 0) {\n if (this.default !== void 0) {\n dataset.value = getDefault(this, dataset, config2);\n }\n if (dataset.value === void 0) {\n dataset.typed = true;\n return dataset;\n }\n }\n return this.wrapped[\"~run\"](dataset, config2);\n }\n };\n}\n\n// src/schemas/optional/optionalAsync.ts\nfunction optionalAsync(wrapped, default_) {\n return {\n kind: \"schema\",\n type: \"optional\",\n reference: optionalAsync,\n expects: `(${wrapped.expects} | undefined)`,\n async: true,\n wrapped,\n default: default_,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n async \"~run\"(dataset, config2) {\n if (dataset.value === void 0) {\n if (this.default !== void 0) {\n dataset.value = await getDefault(this, dataset, config2);\n }\n if (dataset.value === void 0) {\n dataset.typed = true;\n return dataset;\n }\n }\n return this.wrapped[\"~run\"](dataset, config2);\n }\n };\n}\n\n// src/schemas/picklist/picklist.ts\nfunction picklist(options, message) {\n return {\n kind: \"schema\",\n type: \"picklist\",\n reference: picklist,\n expects: _joinExpects(options.map(_stringify), \"|\"),\n async: false,\n options,\n message,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n \"~run\"(dataset, config2) {\n if (this.options.includes(dataset.value)) {\n dataset.typed = true;\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/promise/promise.ts\nfunction promise(message) {\n return {\n kind: \"schema\",\n type: \"promise\",\n reference: promise,\n expects: \"Promise\",\n async: false,\n message,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n \"~run\"(dataset, config2) {\n if (dataset.value instanceof Promise) {\n dataset.typed = true;\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/record/record.ts\nfunction record(key, value2, message) {\n return {\n kind: \"schema\",\n type: \"record\",\n reference: record,\n expects: \"Object\",\n async: false,\n key,\n value: value2,\n message,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n \"~run\"(dataset, config2) {\n const input = dataset.value;\n if (input && typeof input === \"object\") {\n dataset.typed = true;\n dataset.value = {};\n for (const entryKey in input) {\n if (_isValidObjectKey(input, entryKey)) {\n const entryValue = input[entryKey];\n const keyDataset = this.key[\"~run\"]({ value: entryKey }, config2);\n if (keyDataset.issues) {\n const pathItem = {\n type: \"object\",\n origin: \"key\",\n input,\n key: entryKey,\n value: entryValue\n };\n for (const issue of keyDataset.issues) {\n issue.path = [pathItem];\n dataset.issues?.push(issue);\n }\n if (!dataset.issues) {\n dataset.issues = keyDataset.issues;\n }\n if (config2.abortEarly) {\n dataset.typed = false;\n break;\n }\n }\n const valueDataset = this.value[\"~run\"](\n { value: entryValue },\n config2\n );\n if (valueDataset.issues) {\n const pathItem = {\n type: \"object\",\n origin: \"value\",\n input,\n key: entryKey,\n value: entryValue\n };\n for (const issue of valueDataset.issues) {\n if (issue.path) {\n issue.path.unshift(pathItem);\n } else {\n issue.path = [pathItem];\n }\n dataset.issues?.push(issue);\n }\n if (!dataset.issues) {\n dataset.issues = valueDataset.issues;\n }\n if (config2.abortEarly) {\n dataset.typed = false;\n break;\n }\n }\n if (!keyDataset.typed || !valueDataset.typed) {\n dataset.typed = false;\n }\n if (keyDataset.typed) {\n dataset.value[keyDataset.value] = valueDataset.value;\n }\n }\n }\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/record/recordAsync.ts\nfunction recordAsync(key, value2, message) {\n return {\n kind: \"schema\",\n type: \"record\",\n reference: recordAsync,\n expects: \"Object\",\n async: true,\n key,\n value: value2,\n message,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n async \"~run\"(dataset, config2) {\n const input = dataset.value;\n if (input && typeof input === \"object\") {\n dataset.typed = true;\n dataset.value = {};\n const datasets = await Promise.all(\n Object.entries(input).filter(([key2]) => _isValidObjectKey(input, key2)).map(\n ([entryKey, entryValue]) => Promise.all([\n entryKey,\n entryValue,\n this.key[\"~run\"]({ value: entryKey }, config2),\n this.value[\"~run\"]({ value: entryValue }, config2)\n ])\n )\n );\n for (const [\n entryKey,\n entryValue,\n keyDataset,\n valueDataset\n ] of datasets) {\n if (keyDataset.issues) {\n const pathItem = {\n type: \"object\",\n origin: \"key\",\n input,\n key: entryKey,\n value: entryValue\n };\n for (const issue of keyDataset.issues) {\n issue.path = [pathItem];\n dataset.issues?.push(issue);\n }\n if (!dataset.issues) {\n dataset.issues = keyDataset.issues;\n }\n if (config2.abortEarly) {\n dataset.typed = false;\n break;\n }\n }\n if (valueDataset.issues) {\n const pathItem = {\n type: \"object\",\n origin: \"value\",\n input,\n key: entryKey,\n value: entryValue\n };\n for (const issue of valueDataset.issues) {\n if (issue.path) {\n issue.path.unshift(pathItem);\n } else {\n issue.path = [pathItem];\n }\n dataset.issues?.push(issue);\n }\n if (!dataset.issues) {\n dataset.issues = valueDataset.issues;\n }\n if (config2.abortEarly) {\n dataset.typed = false;\n break;\n }\n }\n if (!keyDataset.typed || !valueDataset.typed) {\n dataset.typed = false;\n }\n if (keyDataset.typed) {\n dataset.value[keyDataset.value] = valueDataset.value;\n }\n }\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/set/set.ts\nfunction set(value2, message) {\n return {\n kind: \"schema\",\n type: \"set\",\n reference: set,\n expects: \"Set\",\n async: false,\n value: value2,\n message,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n \"~run\"(dataset, config2) {\n const input = dataset.value;\n if (input instanceof Set) {\n dataset.typed = true;\n dataset.value = /* @__PURE__ */ new Set();\n for (const inputValue of input) {\n const valueDataset = this.value[\"~run\"](\n { value: inputValue },\n config2\n );\n if (valueDataset.issues) {\n const pathItem = {\n type: \"set\",\n origin: \"value\",\n input,\n key: null,\n value: inputValue\n };\n for (const issue of valueDataset.issues) {\n if (issue.path) {\n issue.path.unshift(pathItem);\n } else {\n issue.path = [pathItem];\n }\n dataset.issues?.push(issue);\n }\n if (!dataset.issues) {\n dataset.issues = valueDataset.issues;\n }\n if (config2.abortEarly) {\n dataset.typed = false;\n break;\n }\n }\n if (!valueDataset.typed) {\n dataset.typed = false;\n }\n dataset.value.add(valueDataset.value);\n }\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/set/setAsync.ts\nfunction setAsync(value2, message) {\n return {\n kind: \"schema\",\n type: \"set\",\n reference: setAsync,\n expects: \"Set\",\n async: true,\n value: value2,\n message,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n async \"~run\"(dataset, config2) {\n const input = dataset.value;\n if (input instanceof Set) {\n dataset.typed = true;\n dataset.value = /* @__PURE__ */ new Set();\n const valueDatasets = await Promise.all(\n [...input].map(\n async (inputValue) => [\n inputValue,\n await this.value[\"~run\"]({ value: inputValue }, config2)\n ]\n )\n );\n for (const [inputValue, valueDataset] of valueDatasets) {\n if (valueDataset.issues) {\n const pathItem = {\n type: \"set\",\n origin: \"value\",\n input,\n key: null,\n value: inputValue\n };\n for (const issue of valueDataset.issues) {\n if (issue.path) {\n issue.path.unshift(pathItem);\n } else {\n issue.path = [pathItem];\n }\n dataset.issues?.push(issue);\n }\n if (!dataset.issues) {\n dataset.issues = valueDataset.issues;\n }\n if (config2.abortEarly) {\n dataset.typed = false;\n break;\n }\n }\n if (!valueDataset.typed) {\n dataset.typed = false;\n }\n dataset.value.add(valueDataset.value);\n }\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/strictObject/strictObject.ts\nfunction strictObject(entries, message) {\n return {\n kind: \"schema\",\n type: \"strict_object\",\n reference: strictObject,\n expects: \"Object\",\n async: false,\n entries,\n message,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n \"~run\"(dataset, config2) {\n const input = dataset.value;\n if (input && typeof input === \"object\") {\n dataset.typed = true;\n dataset.value = {};\n for (const key in this.entries) {\n const value2 = input[key];\n const valueDataset = this.entries[key][\"~run\"]({ value: value2 }, config2);\n if (valueDataset.issues) {\n const pathItem = {\n type: \"object\",\n origin: \"value\",\n input,\n key,\n value: value2\n };\n for (const issue of valueDataset.issues) {\n if (issue.path) {\n issue.path.unshift(pathItem);\n } else {\n issue.path = [pathItem];\n }\n dataset.issues?.push(issue);\n }\n if (!dataset.issues) {\n dataset.issues = valueDataset.issues;\n }\n if (config2.abortEarly) {\n dataset.typed = false;\n break;\n }\n }\n if (!valueDataset.typed) {\n dataset.typed = false;\n }\n if (valueDataset.value !== void 0 || key in input) {\n dataset.value[key] = valueDataset.value;\n }\n }\n if (!dataset.issues || !config2.abortEarly) {\n for (const key in input) {\n if (!(key in this.entries)) {\n const value2 = input[key];\n _addIssue(this, \"type\", dataset, config2, {\n input: value2,\n expected: \"never\",\n path: [\n {\n type: \"object\",\n origin: \"value\",\n input,\n key,\n value: value2\n }\n ]\n });\n break;\n }\n }\n }\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/strictObject/strictObjectAsync.ts\nfunction strictObjectAsync(entries, message) {\n return {\n kind: \"schema\",\n type: \"strict_object\",\n reference: strictObjectAsync,\n expects: \"Object\",\n async: true,\n entries,\n message,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n async \"~run\"(dataset, config2) {\n const input = dataset.value;\n if (input && typeof input === \"object\") {\n dataset.typed = true;\n dataset.value = {};\n const valueDatasets = await Promise.all(\n Object.entries(this.entries).map(async ([key, schema]) => {\n const value2 = input[key];\n return [\n key,\n value2,\n await schema[\"~run\"]({ value: value2 }, config2)\n ];\n })\n );\n for (const [key, value2, valueDataset] of valueDatasets) {\n if (valueDataset.issues) {\n const pathItem = {\n type: \"object\",\n origin: \"value\",\n input,\n key,\n value: value2\n };\n for (const issue of valueDataset.issues) {\n if (issue.path) {\n issue.path.unshift(pathItem);\n } else {\n issue.path = [pathItem];\n }\n dataset.issues?.push(issue);\n }\n if (!dataset.issues) {\n dataset.issues = valueDataset.issues;\n }\n if (config2.abortEarly) {\n dataset.typed = false;\n break;\n }\n }\n if (!valueDataset.typed) {\n dataset.typed = false;\n }\n if (valueDataset.value !== void 0 || key in input) {\n dataset.value[key] = valueDataset.value;\n }\n }\n if (!dataset.issues || !config2.abortEarly) {\n for (const key in input) {\n if (!(key in this.entries)) {\n const value2 = input[key];\n _addIssue(this, \"type\", dataset, config2, {\n input: value2,\n expected: \"never\",\n path: [\n {\n type: \"object\",\n origin: \"value\",\n input,\n key,\n value: value2\n }\n ]\n });\n break;\n }\n }\n }\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/strictTuple/strictTuple.ts\nfunction strictTuple(items, message) {\n return {\n kind: \"schema\",\n type: \"strict_tuple\",\n reference: strictTuple,\n expects: \"Array\",\n async: false,\n items,\n message,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n \"~run\"(dataset, config2) {\n const input = dataset.value;\n if (Array.isArray(input)) {\n dataset.typed = true;\n dataset.value = [];\n for (let key = 0; key < this.items.length; key++) {\n const value2 = input[key];\n const itemDataset = this.items[key][\"~run\"]({ value: value2 }, config2);\n if (itemDataset.issues) {\n const pathItem = {\n type: \"array\",\n origin: \"value\",\n input,\n key,\n value: value2\n };\n for (const issue of itemDataset.issues) {\n if (issue.path) {\n issue.path.unshift(pathItem);\n } else {\n issue.path = [pathItem];\n }\n dataset.issues?.push(issue);\n }\n if (!dataset.issues) {\n dataset.issues = itemDataset.issues;\n }\n if (config2.abortEarly) {\n dataset.typed = false;\n break;\n }\n }\n if (!itemDataset.typed) {\n dataset.typed = false;\n }\n dataset.value.push(itemDataset.value);\n }\n if (!(dataset.issues && config2.abortEarly) && this.items.length < input.length) {\n const value2 = input[items.length];\n _addIssue(this, \"type\", dataset, config2, {\n input: value2,\n expected: \"never\",\n path: [\n {\n type: \"array\",\n origin: \"value\",\n input,\n key: this.items.length,\n value: value2\n }\n ]\n });\n }\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/strictTuple/strictTupleAsync.ts\nfunction strictTupleAsync(items, message) {\n return {\n kind: \"schema\",\n type: \"strict_tuple\",\n reference: strictTupleAsync,\n expects: \"Array\",\n async: true,\n items,\n message,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n async \"~run\"(dataset, config2) {\n const input = dataset.value;\n if (Array.isArray(input)) {\n dataset.typed = true;\n dataset.value = [];\n const itemDatasets = await Promise.all(\n this.items.map(async (item, key) => {\n const value2 = input[key];\n return [key, value2, await item[\"~run\"]({ value: value2 }, config2)];\n })\n );\n for (const [key, value2, itemDataset] of itemDatasets) {\n if (itemDataset.issues) {\n const pathItem = {\n type: \"array\",\n origin: \"value\",\n input,\n key,\n value: value2\n };\n for (const issue of itemDataset.issues) {\n if (issue.path) {\n issue.path.unshift(pathItem);\n } else {\n issue.path = [pathItem];\n }\n dataset.issues?.push(issue);\n }\n if (!dataset.issues) {\n dataset.issues = itemDataset.issues;\n }\n if (config2.abortEarly) {\n dataset.typed = false;\n break;\n }\n }\n if (!itemDataset.typed) {\n dataset.typed = false;\n }\n dataset.value.push(itemDataset.value);\n }\n if (!(dataset.issues && config2.abortEarly) && this.items.length < input.length) {\n const value2 = input[items.length];\n _addIssue(this, \"type\", dataset, config2, {\n input: value2,\n expected: \"never\",\n path: [\n {\n type: \"array\",\n origin: \"value\",\n input,\n key: this.items.length,\n value: value2\n }\n ]\n });\n }\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/string/string.ts\nfunction string(message) {\n return {\n kind: \"schema\",\n type: \"string\",\n reference: string,\n expects: \"string\",\n async: false,\n message,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n \"~run\"(dataset, config2) {\n if (typeof dataset.value === \"string\") {\n dataset.typed = true;\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/symbol/symbol.ts\nfunction symbol(message) {\n return {\n kind: \"schema\",\n type: \"symbol\",\n reference: symbol,\n expects: \"symbol\",\n async: false,\n message,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n \"~run\"(dataset, config2) {\n if (typeof dataset.value === \"symbol\") {\n dataset.typed = true;\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/tuple/tuple.ts\nfunction tuple(items, message) {\n return {\n kind: \"schema\",\n type: \"tuple\",\n reference: tuple,\n expects: \"Array\",\n async: false,\n items,\n message,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n \"~run\"(dataset, config2) {\n const input = dataset.value;\n if (Array.isArray(input)) {\n dataset.typed = true;\n dataset.value = [];\n for (let key = 0; key < this.items.length; key++) {\n const value2 = input[key];\n const itemDataset = this.items[key][\"~run\"]({ value: value2 }, config2);\n if (itemDataset.issues) {\n const pathItem = {\n type: \"array\",\n origin: \"value\",\n input,\n key,\n value: value2\n };\n for (const issue of itemDataset.issues) {\n if (issue.path) {\n issue.path.unshift(pathItem);\n } else {\n issue.path = [pathItem];\n }\n dataset.issues?.push(issue);\n }\n if (!dataset.issues) {\n dataset.issues = itemDataset.issues;\n }\n if (config2.abortEarly) {\n dataset.typed = false;\n break;\n }\n }\n if (!itemDataset.typed) {\n dataset.typed = false;\n }\n dataset.value.push(itemDataset.value);\n }\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/tuple/tupleAsync.ts\nfunction tupleAsync(items, message) {\n return {\n kind: \"schema\",\n type: \"tuple\",\n reference: tupleAsync,\n expects: \"Array\",\n async: true,\n items,\n message,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n async \"~run\"(dataset, config2) {\n const input = dataset.value;\n if (Array.isArray(input)) {\n dataset.typed = true;\n dataset.value = [];\n const itemDatasets = await Promise.all(\n this.items.map(async (item, key) => {\n const value2 = input[key];\n return [key, value2, await item[\"~run\"]({ value: value2 }, config2)];\n })\n );\n for (const [key, value2, itemDataset] of itemDatasets) {\n if (itemDataset.issues) {\n const pathItem = {\n type: \"array\",\n origin: \"value\",\n input,\n key,\n value: value2\n };\n for (const issue of itemDataset.issues) {\n if (issue.path) {\n issue.path.unshift(pathItem);\n } else {\n issue.path = [pathItem];\n }\n dataset.issues?.push(issue);\n }\n if (!dataset.issues) {\n dataset.issues = itemDataset.issues;\n }\n if (config2.abortEarly) {\n dataset.typed = false;\n break;\n }\n }\n if (!itemDataset.typed) {\n dataset.typed = false;\n }\n dataset.value.push(itemDataset.value);\n }\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/tupleWithRest/tupleWithRest.ts\nfunction tupleWithRest(items, rest, message) {\n return {\n kind: \"schema\",\n type: \"tuple_with_rest\",\n reference: tupleWithRest,\n expects: \"Array\",\n async: false,\n items,\n rest,\n message,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n \"~run\"(dataset, config2) {\n const input = dataset.value;\n if (Array.isArray(input)) {\n dataset.typed = true;\n dataset.value = [];\n for (let key = 0; key < this.items.length; key++) {\n const value2 = input[key];\n const itemDataset = this.items[key][\"~run\"]({ value: value2 }, config2);\n if (itemDataset.issues) {\n const pathItem = {\n type: \"array\",\n origin: \"value\",\n input,\n key,\n value: value2\n };\n for (const issue of itemDataset.issues) {\n if (issue.path) {\n issue.path.unshift(pathItem);\n } else {\n issue.path = [pathItem];\n }\n dataset.issues?.push(issue);\n }\n if (!dataset.issues) {\n dataset.issues = itemDataset.issues;\n }\n if (config2.abortEarly) {\n dataset.typed = false;\n break;\n }\n }\n if (!itemDataset.typed) {\n dataset.typed = false;\n }\n dataset.value.push(itemDataset.value);\n }\n if (!dataset.issues || !config2.abortEarly) {\n for (let key = this.items.length; key < input.length; key++) {\n const value2 = input[key];\n const itemDataset = this.rest[\"~run\"]({ value: value2 }, config2);\n if (itemDataset.issues) {\n const pathItem = {\n type: \"array\",\n origin: \"value\",\n input,\n key,\n value: value2\n };\n for (const issue of itemDataset.issues) {\n if (issue.path) {\n issue.path.unshift(pathItem);\n } else {\n issue.path = [pathItem];\n }\n dataset.issues?.push(issue);\n }\n if (!dataset.issues) {\n dataset.issues = itemDataset.issues;\n }\n if (config2.abortEarly) {\n dataset.typed = false;\n break;\n }\n }\n if (!itemDataset.typed) {\n dataset.typed = false;\n }\n dataset.value.push(itemDataset.value);\n }\n }\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/tupleWithRest/tupleWithRestAsync.ts\nfunction tupleWithRestAsync(items, rest, message) {\n return {\n kind: \"schema\",\n type: \"tuple_with_rest\",\n reference: tupleWithRestAsync,\n expects: \"Array\",\n async: true,\n items,\n rest,\n message,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n async \"~run\"(dataset, config2) {\n const input = dataset.value;\n if (Array.isArray(input)) {\n dataset.typed = true;\n dataset.value = [];\n const [normalDatasets, restDatasets] = await Promise.all([\n // Parse schema of each normal item\n Promise.all(\n this.items.map(async (item, key) => {\n const value2 = input[key];\n return [\n key,\n value2,\n await item[\"~run\"]({ value: value2 }, config2)\n ];\n })\n ),\n // Parse other items with rest schema\n Promise.all(\n input.slice(this.items.length).map(async (value2, key) => {\n return [\n key + this.items.length,\n value2,\n await this.rest[\"~run\"]({ value: value2 }, config2)\n ];\n })\n )\n ]);\n for (const [key, value2, itemDataset] of normalDatasets) {\n if (itemDataset.issues) {\n const pathItem = {\n type: \"array\",\n origin: \"value\",\n input,\n key,\n value: value2\n };\n for (const issue of itemDataset.issues) {\n if (issue.path) {\n issue.path.unshift(pathItem);\n } else {\n issue.path = [pathItem];\n }\n dataset.issues?.push(issue);\n }\n if (!dataset.issues) {\n dataset.issues = itemDataset.issues;\n }\n if (config2.abortEarly) {\n dataset.typed = false;\n break;\n }\n }\n if (!itemDataset.typed) {\n dataset.typed = false;\n }\n dataset.value.push(itemDataset.value);\n }\n if (!dataset.issues || !config2.abortEarly) {\n for (const [key, value2, itemDataset] of restDatasets) {\n if (itemDataset.issues) {\n const pathItem = {\n type: \"array\",\n origin: \"value\",\n input,\n key,\n value: value2\n };\n for (const issue of itemDataset.issues) {\n if (issue.path) {\n issue.path.unshift(pathItem);\n } else {\n issue.path = [pathItem];\n }\n dataset.issues?.push(issue);\n }\n if (!dataset.issues) {\n dataset.issues = itemDataset.issues;\n }\n if (config2.abortEarly) {\n dataset.typed = false;\n break;\n }\n }\n if (!itemDataset.typed) {\n dataset.typed = false;\n }\n dataset.value.push(itemDataset.value);\n }\n }\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/undefined/undefined.ts\nfunction undefined_(message) {\n return {\n kind: \"schema\",\n type: \"undefined\",\n reference: undefined_,\n expects: \"undefined\",\n async: false,\n message,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n \"~run\"(dataset, config2) {\n if (dataset.value === void 0) {\n dataset.typed = true;\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/undefinedable/undefinedable.ts\nfunction undefinedable(wrapped, default_) {\n return {\n kind: \"schema\",\n type: \"undefinedable\",\n reference: undefinedable,\n expects: `(${wrapped.expects} | undefined)`,\n async: false,\n wrapped,\n default: default_,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n \"~run\"(dataset, config2) {\n if (dataset.value === void 0) {\n if (this.default !== void 0) {\n dataset.value = getDefault(this, dataset, config2);\n }\n if (dataset.value === void 0) {\n dataset.typed = true;\n return dataset;\n }\n }\n return this.wrapped[\"~run\"](dataset, config2);\n }\n };\n}\n\n// src/schemas/undefinedable/undefinedableAsync.ts\nfunction undefinedableAsync(wrapped, default_) {\n return {\n kind: \"schema\",\n type: \"undefinedable\",\n reference: undefinedableAsync,\n expects: `(${wrapped.expects} | undefined)`,\n async: true,\n wrapped,\n default: default_,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n async \"~run\"(dataset, config2) {\n if (dataset.value === void 0) {\n if (this.default !== void 0) {\n dataset.value = await getDefault(this, dataset, config2);\n }\n if (dataset.value === void 0) {\n dataset.typed = true;\n return dataset;\n }\n }\n return this.wrapped[\"~run\"](dataset, config2);\n }\n };\n}\n\n// src/schemas/union/utils/_subIssues/_subIssues.ts\nfunction _subIssues(datasets) {\n let issues;\n if (datasets) {\n for (const dataset of datasets) {\n if (issues) {\n issues.push(...dataset.issues);\n } else {\n issues = dataset.issues;\n }\n }\n }\n return issues;\n}\n\n// src/schemas/union/union.ts\nfunction union(options, message) {\n return {\n kind: \"schema\",\n type: \"union\",\n reference: union,\n expects: _joinExpects(\n options.map((option) => option.expects),\n \"|\"\n ),\n async: false,\n options,\n message,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n \"~run\"(dataset, config2) {\n let validDataset;\n let typedDatasets;\n let untypedDatasets;\n for (const schema of this.options) {\n const optionDataset = schema[\"~run\"]({ value: dataset.value }, config2);\n if (optionDataset.typed) {\n if (optionDataset.issues) {\n if (typedDatasets) {\n typedDatasets.push(optionDataset);\n } else {\n typedDatasets = [optionDataset];\n }\n } else {\n validDataset = optionDataset;\n break;\n }\n } else {\n if (untypedDatasets) {\n untypedDatasets.push(optionDataset);\n } else {\n untypedDatasets = [optionDataset];\n }\n }\n }\n if (validDataset) {\n return validDataset;\n }\n if (typedDatasets) {\n if (typedDatasets.length === 1) {\n return typedDatasets[0];\n }\n _addIssue(this, \"type\", dataset, config2, {\n issues: _subIssues(typedDatasets)\n });\n dataset.typed = true;\n } else if (untypedDatasets?.length === 1) {\n return untypedDatasets[0];\n } else {\n _addIssue(this, \"type\", dataset, config2, {\n issues: _subIssues(untypedDatasets)\n });\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/union/unionAsync.ts\nfunction unionAsync(options, message) {\n return {\n kind: \"schema\",\n type: \"union\",\n reference: unionAsync,\n expects: _joinExpects(\n options.map((option) => option.expects),\n \"|\"\n ),\n async: true,\n options,\n message,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n async \"~run\"(dataset, config2) {\n let validDataset;\n let typedDatasets;\n let untypedDatasets;\n for (const schema of this.options) {\n const optionDataset = await schema[\"~run\"](\n { value: dataset.value },\n config2\n );\n if (optionDataset.typed) {\n if (optionDataset.issues) {\n if (typedDatasets) {\n typedDatasets.push(optionDataset);\n } else {\n typedDatasets = [optionDataset];\n }\n } else {\n validDataset = optionDataset;\n break;\n }\n } else {\n if (untypedDatasets) {\n untypedDatasets.push(optionDataset);\n } else {\n untypedDatasets = [optionDataset];\n }\n }\n }\n if (validDataset) {\n return validDataset;\n }\n if (typedDatasets) {\n if (typedDatasets.length === 1) {\n return typedDatasets[0];\n }\n _addIssue(this, \"type\", dataset, config2, {\n issues: _subIssues(typedDatasets)\n });\n dataset.typed = true;\n } else if (untypedDatasets?.length === 1) {\n return untypedDatasets[0];\n } else {\n _addIssue(this, \"type\", dataset, config2, {\n issues: _subIssues(untypedDatasets)\n });\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/unknown/unknown.ts\nfunction unknown() {\n return {\n kind: \"schema\",\n type: \"unknown\",\n reference: unknown,\n expects: \"unknown\",\n async: false,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n \"~run\"(dataset) {\n dataset.typed = true;\n return dataset;\n }\n };\n}\n\n// src/schemas/variant/variant.ts\nfunction variant(key, options, message) {\n return {\n kind: \"schema\",\n type: \"variant\",\n reference: variant,\n expects: \"Object\",\n async: false,\n key,\n options,\n message,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n \"~run\"(dataset, config2) {\n const input = dataset.value;\n if (input && typeof input === \"object\") {\n let outputDataset;\n let maxDiscriminatorPriority = 0;\n let invalidDiscriminatorKey = this.key;\n let expectedDiscriminators = [];\n const parseOptions = (variant2, allKeys) => {\n for (const schema of variant2.options) {\n if (schema.type === \"variant\") {\n parseOptions(schema, new Set(allKeys).add(schema.key));\n } else {\n let keysAreValid = true;\n let currentPriority = 0;\n for (const currentKey of allKeys) {\n if (schema.entries[currentKey][\"~run\"](\n // @ts-expect-error\n { typed: false, value: input[currentKey] },\n config2\n ).issues) {\n keysAreValid = false;\n if (invalidDiscriminatorKey !== currentKey && (maxDiscriminatorPriority < currentPriority || maxDiscriminatorPriority === currentPriority && currentKey in input && !(invalidDiscriminatorKey in input))) {\n maxDiscriminatorPriority = currentPriority;\n invalidDiscriminatorKey = currentKey;\n expectedDiscriminators = [];\n }\n if (invalidDiscriminatorKey === currentKey) {\n expectedDiscriminators.push(\n schema.entries[currentKey].expects\n );\n }\n break;\n }\n currentPriority++;\n }\n if (keysAreValid) {\n const optionDataset = schema[\"~run\"]({ value: input }, config2);\n if (!outputDataset || !outputDataset.typed && optionDataset.typed) {\n outputDataset = optionDataset;\n }\n }\n }\n if (outputDataset && !outputDataset.issues) {\n break;\n }\n }\n };\n parseOptions(this, /* @__PURE__ */ new Set([this.key]));\n if (outputDataset) {\n return outputDataset;\n }\n _addIssue(this, \"type\", dataset, config2, {\n // @ts-expect-error\n input: input[invalidDiscriminatorKey],\n expected: _joinExpects(expectedDiscriminators, \"|\"),\n path: [\n {\n type: \"object\",\n origin: \"value\",\n input,\n key: invalidDiscriminatorKey,\n // @ts-expect-error\n value: input[invalidDiscriminatorKey]\n }\n ]\n });\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/variant/variantAsync.ts\nfunction variantAsync(key, options, message) {\n return {\n kind: \"schema\",\n type: \"variant\",\n reference: variantAsync,\n expects: \"Object\",\n async: true,\n key,\n options,\n message,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n async \"~run\"(dataset, config2) {\n const input = dataset.value;\n if (input && typeof input === \"object\") {\n let outputDataset;\n let maxDiscriminatorPriority = 0;\n let invalidDiscriminatorKey = this.key;\n let expectedDiscriminators = [];\n const parseOptions = async (variant2, allKeys) => {\n for (const schema of variant2.options) {\n if (schema.type === \"variant\") {\n await parseOptions(schema, new Set(allKeys).add(schema.key));\n } else {\n let keysAreValid = true;\n let currentPriority = 0;\n for (const currentKey of allKeys) {\n if ((await schema.entries[currentKey][\"~run\"](\n // @ts-expect-error\n { typed: false, value: input[currentKey] },\n config2\n )).issues) {\n keysAreValid = false;\n if (invalidDiscriminatorKey !== currentKey && (maxDiscriminatorPriority < currentPriority || maxDiscriminatorPriority === currentPriority && currentKey in input && !(invalidDiscriminatorKey in input))) {\n maxDiscriminatorPriority = currentPriority;\n invalidDiscriminatorKey = currentKey;\n expectedDiscriminators = [];\n }\n if (invalidDiscriminatorKey === currentKey) {\n expectedDiscriminators.push(\n schema.entries[currentKey].expects\n );\n }\n break;\n }\n currentPriority++;\n }\n if (keysAreValid) {\n const optionDataset = await schema[\"~run\"](\n { value: input },\n config2\n );\n if (!outputDataset || !outputDataset.typed && optionDataset.typed) {\n outputDataset = optionDataset;\n }\n }\n }\n if (outputDataset && !outputDataset.issues) {\n break;\n }\n }\n };\n await parseOptions(this, /* @__PURE__ */ new Set([this.key]));\n if (outputDataset) {\n return outputDataset;\n }\n _addIssue(this, \"type\", dataset, config2, {\n // @ts-expect-error\n input: input[invalidDiscriminatorKey],\n expected: _joinExpects(expectedDiscriminators, \"|\"),\n path: [\n {\n type: \"object\",\n origin: \"value\",\n input,\n key: invalidDiscriminatorKey,\n // @ts-expect-error\n value: input[invalidDiscriminatorKey]\n }\n ]\n });\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/schemas/void/void.ts\nfunction void_(message) {\n return {\n kind: \"schema\",\n type: \"void\",\n reference: void_,\n expects: \"void\",\n async: false,\n message,\n get \"~standard\"() {\n return _getStandardProps(this);\n },\n \"~run\"(dataset, config2) {\n if (dataset.value === void 0) {\n dataset.typed = true;\n } else {\n _addIssue(this, \"type\", dataset, config2);\n }\n return dataset;\n }\n };\n}\n\n// src/methods/keyof/keyof.ts\nfunction keyof(schema, message) {\n return picklist(Object.keys(schema.entries), message);\n}\n\n// src/methods/omit/omit.ts\nfunction omit(schema, keys) {\n const entries = {\n ...schema.entries\n };\n for (const key of keys) {\n delete entries[key];\n }\n return { ...schema, entries };\n}\n\n// src/methods/parse/parse.ts\nfunction parse(schema, input, config2) {\n const dataset = schema[\"~run\"]({ value: input }, getGlobalConfig(config2));\n if (dataset.issues) {\n throw new ValiError(dataset.issues);\n }\n return dataset.value;\n}\n\n// src/methods/parse/parseAsync.ts\nasync function parseAsync(schema, input, config2) {\n const dataset = await schema[\"~run\"](\n { value: input },\n getGlobalConfig(config2)\n );\n if (dataset.issues) {\n throw new ValiError(dataset.issues);\n }\n return dataset.value;\n}\n\n// src/methods/parser/parser.ts\nfunction parser(schema, config2) {\n const func = (input) => parse(schema, input, config2);\n func.schema = schema;\n func.config = config2;\n return func;\n}\n\n// src/methods/parser/parserAsync.ts\nfunction parserAsync(schema, config2) {\n const func = (input) => parseAsync(schema, input, config2);\n func.schema = schema;\n func.config = config2;\n return func;\n}\n\n// src/methods/partial/partial.ts\nfunction partial(schema, keys) {\n const entries = {};\n for (const key in schema.entries) {\n entries[key] = !keys || keys.includes(key) ? optional(schema.entries[key]) : schema.entries[key];\n }\n return { ...schema, entries };\n}\n\n// src/methods/partial/partialAsync.ts\nfunction partialAsync(schema, keys) {\n const entries = {};\n for (const key in schema.entries) {\n entries[key] = !keys || keys.includes(key) ? optionalAsync(schema.entries[key]) : schema.entries[key];\n }\n return { ...schema, entries };\n}\n\n// src/methods/pick/pick.ts\nfunction pick(schema, keys) {\n const entries = {};\n for (const key of keys) {\n entries[key] = schema.entries[key];\n }\n return { ...schema, entries };\n}\n\n// src/methods/pipe/pipe.ts\nfunction pipe(...pipe2) {\n return {\n ...pipe2[0],\n pipe: pipe2,\n \"~run\"(dataset, config2) {\n for (const item of pipe2) {\n if (item.kind !== \"metadata\") {\n if (dataset.issues && (item.kind === \"schema\" || item.kind === \"transformation\")) {\n dataset.typed = false;\n break;\n }\n if (!dataset.issues || !config2.abortEarly && !config2.abortPipeEarly) {\n dataset = item[\"~run\"](dataset, config2);\n }\n }\n }\n return dataset;\n }\n };\n}\n\n// src/methods/pipe/pipeAsync.ts\nfunction pipeAsync(...pipe2) {\n return {\n ...pipe2[0],\n pipe: pipe2,\n async: true,\n async \"~run\"(dataset, config2) {\n for (const item of pipe2) {\n if (item.kind !== \"metadata\") {\n if (dataset.issues && (item.kind === \"schema\" || item.kind === \"transformation\")) {\n dataset.typed = false;\n break;\n }\n if (!dataset.issues || !config2.abortEarly && !config2.abortPipeEarly) {\n dataset = await item[\"~run\"](dataset, config2);\n }\n }\n }\n return dataset;\n }\n };\n}\n\n// src/methods/required/required.ts\nfunction required(schema, arg2, arg3) {\n const keys = Array.isArray(arg2) ? arg2 : void 0;\n const message = Array.isArray(arg2) ? arg3 : arg2;\n const entries = {};\n for (const key in schema.entries) {\n entries[key] = !keys || keys.includes(key) ? nonOptional(schema.entries[key], message) : schema.entries[key];\n }\n return { ...schema, entries };\n}\n\n// src/methods/required/requiredAsync.ts\nfunction requiredAsync(schema, arg2, arg3) {\n const keys = Array.isArray(arg2) ? arg2 : void 0;\n const message = Array.isArray(arg2) ? arg3 : arg2;\n const entries = {};\n for (const key in schema.entries) {\n entries[key] = !keys || keys.includes(key) ? nonOptionalAsync(schema.entries[key], message) : schema.entries[key];\n }\n return { ...schema, entries };\n}\n\n// src/methods/safeParse/safeParse.ts\nfunction safeParse(schema, input, config2) {\n const dataset = schema[\"~run\"]({ value: input }, getGlobalConfig(config2));\n return {\n typed: dataset.typed,\n success: !dataset.issues,\n output: dataset.value,\n issues: dataset.issues\n };\n}\n\n// src/methods/safeParse/safeParseAsync.ts\nasync function safeParseAsync(schema, input, config2) {\n const dataset = await schema[\"~run\"](\n { value: input },\n getGlobalConfig(config2)\n );\n return {\n typed: dataset.typed,\n success: !dataset.issues,\n output: dataset.value,\n issues: dataset.issues\n };\n}\n\n// src/methods/safeParser/safeParser.ts\nfunction safeParser(schema, config2) {\n const func = (input) => safeParse(schema, input, config2);\n func.schema = schema;\n func.config = config2;\n return func;\n}\n\n// src/methods/safeParser/safeParserAsync.ts\nfunction safeParserAsync(schema, config2) {\n const func = (input) => safeParseAsync(schema, input, config2);\n func.schema = schema;\n func.config = config2;\n return func;\n}\n\n// src/methods/unwrap/unwrap.ts\nfunction unwrap(schema) {\n return schema.wrapped;\n}\nexport {\n BASE64_REGEX,\n BIC_REGEX,\n CUID2_REGEX,\n DECIMAL_REGEX,\n DIGITS_REGEX,\n EMAIL_REGEX,\n EMOJI_REGEX,\n HEXADECIMAL_REGEX,\n HEX_COLOR_REGEX,\n IMEI_REGEX,\n IPV4_REGEX,\n IPV6_REGEX,\n IP_REGEX,\n ISO_DATE_REGEX,\n ISO_DATE_TIME_REGEX,\n ISO_TIMESTAMP_REGEX,\n ISO_TIME_REGEX,\n ISO_TIME_SECOND_REGEX,\n ISO_WEEK_REGEX,\n MAC48_REGEX,\n MAC64_REGEX,\n MAC_REGEX,\n NANO_ID_REGEX,\n OCTAL_REGEX,\n ULID_REGEX,\n UUID_REGEX,\n ValiError,\n _addIssue,\n _getByteCount,\n _getGraphemeCount,\n _getStandardProps,\n _getWordCount,\n _isLuhnAlgo,\n _isValidObjectKey,\n _joinExpects,\n _stringify,\n any,\n args,\n argsAsync,\n array,\n arrayAsync,\n assert,\n awaitAsync,\n base64,\n bic,\n bigint,\n blob,\n boolean,\n brand,\n bytes,\n check,\n checkAsync,\n checkItems,\n checkItemsAsync,\n config,\n creditCard,\n cuid2,\n custom,\n customAsync,\n date,\n decimal,\n deleteGlobalConfig,\n deleteGlobalMessage,\n deleteSchemaMessage,\n deleteSpecificMessage,\n description,\n digits,\n email,\n emoji,\n empty,\n endsWith,\n entriesFromList,\n enum_ as enum,\n enum_,\n everyItem,\n excludes,\n fallback,\n fallbackAsync,\n file,\n filterItems,\n findItem,\n finite,\n flatten,\n forward,\n forwardAsync,\n function_ as function,\n function_,\n getDefault,\n getDefaults,\n getDefaultsAsync,\n getDotPath,\n getFallback,\n getFallbacks,\n getFallbacksAsync,\n getGlobalConfig,\n getGlobalMessage,\n getSchemaMessage,\n getSpecificMessage,\n graphemes,\n hash,\n hexColor,\n hexadecimal,\n imei,\n includes,\n instance,\n integer,\n intersect,\n intersectAsync,\n ip,\n ipv4,\n ipv6,\n is,\n isOfKind,\n isOfType,\n isValiError,\n isoDate,\n isoDateTime,\n isoTime,\n isoTimeSecond,\n isoTimestamp,\n isoWeek,\n keyof,\n lazy,\n lazyAsync,\n length,\n literal,\n looseObject,\n looseObjectAsync,\n looseTuple,\n looseTupleAsync,\n mac,\n mac48,\n mac64,\n map,\n mapAsync,\n mapItems,\n maxBytes,\n maxGraphemes,\n maxLength,\n maxSize,\n maxValue,\n maxWords,\n metadata,\n mimeType,\n minBytes,\n minGraphemes,\n minLength,\n minSize,\n minValue,\n minWords,\n multipleOf,\n nan,\n nanoid,\n never,\n nonEmpty,\n nonNullable,\n nonNullableAsync,\n nonNullish,\n nonNullishAsync,\n nonOptional,\n nonOptionalAsync,\n normalize,\n notBytes,\n notGraphemes,\n notLength,\n notSize,\n notValue,\n notWords,\n null_ as null,\n null_,\n nullable,\n nullableAsync,\n nullish,\n nullishAsync,\n number,\n object,\n objectAsync,\n objectWithRest,\n objectWithRestAsync,\n octal,\n omit,\n optional,\n optionalAsync,\n parse,\n parseAsync,\n parser,\n parserAsync,\n partial,\n partialAsync,\n partialCheck,\n partialCheckAsync,\n pick,\n picklist,\n pipe,\n pipeAsync,\n promise,\n rawCheck,\n rawCheckAsync,\n rawTransform,\n rawTransformAsync,\n readonly,\n record,\n recordAsync,\n reduceItems,\n regex,\n required,\n requiredAsync,\n returns,\n returnsAsync,\n safeInteger,\n safeParse,\n safeParseAsync,\n safeParser,\n safeParserAsync,\n set,\n setAsync,\n setGlobalConfig,\n setGlobalMessage,\n setSchemaMessage,\n setSpecificMessage,\n size,\n someItem,\n sortItems,\n startsWith,\n strictObject,\n strictObjectAsync,\n strictTuple,\n strictTupleAsync,\n string,\n symbol,\n title,\n toLowerCase,\n toMaxValue,\n toMinValue,\n toUpperCase,\n transform,\n transformAsync,\n trim,\n trimEnd,\n trimStart,\n tuple,\n tupleAsync,\n tupleWithRest,\n tupleWithRestAsync,\n ulid,\n undefined_ as undefined,\n undefined_,\n undefinedable,\n undefinedableAsync,\n union,\n unionAsync,\n unknown,\n unwrap,\n url,\n uuid,\n value,\n variant,\n variantAsync,\n void_ as void,\n void_,\n words\n};\n"],"names":[],"mappings":"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","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/web/app/themes/haiku-atelier-2024/assets/js/messages.js b/web/app/themes/haiku-atelier-2024/assets/js/messages.js index 8e2d372c..b74c1779 100644 --- a/web/app/themes/haiku-atelier-2024/assets/js/messages.js +++ b/web/app/themes/haiku-atelier-2024/assets/js/messages.js @@ -1,4 +1,4 @@ -import { p as parse } from "./index.vOxCZRxB.js"; +import { p as parse } from "./index.CXGAS3st.js"; import { N as NOM_CANAL_BOUTON_PANIER, T as TYPES_MESSAGES, a as NOM_CANAL_CONTENU_PANIER } from "./messages3.js"; import { r as reporteErreur } from "./erreurs.js"; import { M as MessageMajBoutonPanierSchema, a as MessageMajContenuPanierSchema } from "./messages2.js"; diff --git a/web/app/themes/haiku-atelier-2024/assets/js/messages2.js b/web/app/themes/haiku-atelier-2024/assets/js/messages2.js index 051ace24..26d3dbea 100644 --- a/web/app/themes/haiku-atelier-2024/assets/js/messages2.js +++ b/web/app/themes/haiku-atelier-2024/assets/js/messages2.js @@ -1,4 +1,4 @@ -import { e as enum_, o as object, a as pipe, v as value, s as string, n as number, b as array } from "./index.vOxCZRxB.js"; +import { e as enum_, o as object, a as pipe, v as value, s as string, n as number, b as array } from "./index.CXGAS3st.js"; import { T as TYPES_MESSAGES } from "./messages3.js"; import { a as WCStoreCartItemSchema } from "./cart.js"; import "./cart2.js"; diff --git a/web/app/themes/haiku-atelier-2024/assets/js/orders2.js b/web/app/themes/haiku-atelier-2024/assets/js/orders2.js index dec72f46..82b3c6f4 100644 --- a/web/app/themes/haiku-atelier-2024/assets/js/orders2.js +++ b/web/app/themes/haiku-atelier-2024/assets/js/orders2.js @@ -1,4 +1,4 @@ -import { o as object, s as string, b as array, a as pipe, i as integer, n as number, e as enum_, u as unknown, c as optional, d as boolean, g as union, h as null_ } from "./index.vOxCZRxB.js"; +import { o as object, s as string, b as array, a as pipe, i as integer, n as number, e as enum_, u as unknown, g as union, c as optional, h as null_, d as boolean } from "./index.CXGAS3st.js"; import { T as TAX_STATUSES, O as ORDER_STATUSES } from "./orders3.js"; import { W as WCStoreShippingAddressSchema, a as WCStoreBillingAddressSchema } from "./adresses.js"; const WCV3OrdersCouponLineMetaDataSchema = object({ @@ -55,7 +55,7 @@ const WCV3OrdersShippingLineSchema = object({ total_tax: optional(string()) }); const WCV3OrdersLineItemImageSchema = object({ - id: pipe(number(), integer()), + id: union([string(), pipe(number(), integer())]), src: string() }); const WCV3OrdersLineItemMetaDataSchema = object({ @@ -75,7 +75,7 @@ const WCV3OrdersLineItemSchema = object({ image: optional(WCV3OrdersLineItemImageSchema), meta_data: optional(array(WCV3OrdersLineItemMetaDataSchema)), name: optional(string()), - parent_name: optional(string()), + parent_name: optional(union([string(), null_()])), price: optional(number()), product_id: optional(pipe(number(), integer())), quantity: optional(pipe(number(), integer())), diff --git a/web/app/themes/haiku-atelier-2024/assets/js/orders2.js.map b/web/app/themes/haiku-atelier-2024/assets/js/orders2.js.map index 6bbe8def..a0a2cb9d 100644 --- a/web/app/themes/haiku-atelier-2024/assets/js/orders2.js.map +++ b/web/app/themes/haiku-atelier-2024/assets/js/orders2.js.map @@ -1 +1 @@ -{"version":3,"file":"orders2.js","sources":["../../src/scripts/lib/schemas/api/v3/orders.ts"],"sourcesContent":["import * as v from \"valibot\";\n\nimport { ORDER_STATUSES, TAX_STATUSES } from \"../../../../constantes/orders\";\nimport { WCStoreBillingAddressSchema, WCStoreShippingAddressSchema } from \"../adresses\";\n\nexport const WCV3OrdersCouponLineMetaDataSchema = v.object({\n id: v.pipe(v.number(), v.integer()),\n key: v.string(),\n value: v.unknown(),\n});\n\nexport const WCV3OrdersCouponLineSchema = v.object({\n code: v.string(),\n discount: v.string(),\n discount_tax: v.string(),\n discount_type: v.string(),\n free_shipping: v.boolean(),\n id: v.pipe(v.number(), v.integer()),\n meta_data: v.array(WCV3OrdersCouponLineMetaDataSchema),\n nominal_amount: v.number(),\n});\n\nexport const WCV3OrdersFeeLineMetaDataSchema = v.object({\n id: v.pipe(v.number(), v.integer()),\n key: v.string(),\n value: v.unknown(),\n});\n\nexport const WCV3OrdersFeeLineTaxSchema = v.object({\n id: v.pipe(v.number(), v.integer()),\n subtotal: v.string(),\n total: v.string(),\n});\n\nexport const WCV3OrdersFeeLineSchema = v.object({\n id: v.pipe(v.number(), v.integer()),\n meta_data: v.array(WCV3OrdersFeeLineMetaDataSchema),\n name: v.string(),\n tax_class: v.string(),\n tax_status: v.enum(TAX_STATUSES),\n taxes: v.array(WCV3OrdersFeeLineTaxSchema),\n total: v.string(),\n total_tax: v.string(),\n});\n\nexport const WCV3OrdersShippingLineMetaDataSchema = v.object({\n id: v.pipe(v.number(), v.integer()),\n key: v.string(),\n value: v.unknown(),\n});\n\nexport const WCV3OrdersShippingLineTaxSchema = v.object({\n id: v.pipe(v.number(), v.integer()),\n total: v.string(),\n});\n\nexport const WCV3OrdersShippingLineSchema = v.object({\n id: v.optional(v.pipe(v.number(), v.integer())),\n meta_data: v.optional(v.array(WCV3OrdersShippingLineMetaDataSchema)),\n method_id: v.optional(v.string()),\n method_title: v.optional(v.string()),\n taxes: v.optional(v.array(WCV3OrdersShippingLineTaxSchema)),\n total: v.optional(v.string()),\n total_tax: v.optional(v.string()),\n});\n\nexport const WCV3OrdersLineItemImageSchema = v.object({\n id: v.pipe(v.number(), v.integer()),\n src: v.string(),\n});\n\nexport const WCV3OrdersLineItemMetaDataSchema = v.object({\n display_key: v.string(),\n display_value: v.string(),\n id: v.pipe(v.number(), v.integer()),\n key: v.string(),\n value: v.unknown(),\n});\n\nexport const WCV3OrdersLineItemTaxSchema = v.object({\n id: v.pipe(v.number(), v.integer()),\n subtotal: v.string(),\n total: v.string(),\n});\n\nexport const WCV3OrdersLineItemSchema = v.object({\n id: v.optional(v.pipe(v.number(), v.integer())),\n image: v.optional(WCV3OrdersLineItemImageSchema),\n meta_data: v.optional(v.array(WCV3OrdersLineItemMetaDataSchema)),\n name: v.optional(v.string()),\n parent_name: v.optional(v.string()),\n price: v.optional(v.number()),\n product_id: v.optional(v.pipe(v.number(), v.integer())),\n quantity: v.optional(v.pipe(v.number(), v.integer())),\n sku: v.optional(v.string()),\n subtotal: v.optional(v.string()),\n subtotal_tax: v.optional(v.string()),\n tax_class: v.optional(v.string()),\n taxes: v.optional(v.array(WCV3OrdersLineItemTaxSchema)),\n total: v.optional(v.string()),\n total_tax: v.optional(v.string()),\n variation_id: v.optional(v.pipe(v.number(), v.integer())),\n});\n\nexport const WCV3OrdersMetaDataSchema = v.object({\n id: v.pipe(v.number(), v.integer()),\n key: v.string(),\n value: v.unknown(),\n});\n\nexport const WCV3OrdersArgsSchema = v.object({\n billing: v.optional(WCStoreBillingAddressSchema),\n coupon_lines: v.optional(v.array(WCV3OrdersCouponLineSchema)),\n currency: v.optional(v.string()),\n customer_id: v.optional(v.pipe(v.number(), v.integer())),\n customer_note: v.optional(v.string()),\n fee_lines: v.optional(v.array(WCV3OrdersFeeLineSchema)),\n line_items: v.optional(v.array(WCV3OrdersLineItemSchema)),\n manual_update: v.optional(v.boolean()),\n parent_id: v.optional(v.pipe(v.number(), v.integer())),\n payment_method: v.optional(v.string()),\n payment_method_title: v.optional(v.string()),\n set_paid: v.optional(v.boolean()),\n shipping: v.optional(WCStoreShippingAddressSchema),\n shipping_lines: v.optional(v.array(WCV3OrdersShippingLineSchema)),\n status: v.optional(v.enum(ORDER_STATUSES)),\n transaction_id: v.optional(v.string()),\n});\n\nexport const WCV3OrderSchema = v.object({\n billing: WCStoreBillingAddressSchema,\n cart_hash: v.string(),\n cart_tax: v.string(),\n coupon_lines: v.array(WCV3OrdersCouponLineSchema),\n created_via: v.string(),\n currency: v.string(),\n currency_symbol: v.string(),\n customer_id: v.pipe(v.number(), v.integer()),\n customer_ip_address: v.string(),\n customer_note: v.string(),\n customer_user_agent: v.string(),\n date_completed: v.union([v.string(), v.null()]),\n date_completed_gmt: v.union([v.string(), v.null()]),\n // Date\n date_created: v.string(),\n date_created_gmt: v.string(),\n date_modified: v.string(),\n date_modified_gmt: v.string(),\n date_paid: v.union([v.string(), v.null()]),\n date_paid_gmt: v.union([v.string(), v.null()]),\n discount_tax: v.string(),\n discount_total: v.string(),\n fee_lines: v.array(WCV3OrdersFeeLineSchema),\n id: v.pipe(v.number(), v.integer()),\n is_editable: v.boolean(),\n line_items: v.array(WCV3OrdersLineItemSchema),\n meta_data: v.unknown(),\n needs_payment: v.boolean(),\n needs_processing: v.boolean(),\n number: v.string(),\n order_key: v.string(),\n parent_id: v.pipe(v.number(), v.integer()),\n payment_method: v.string(),\n payment_method_title: v.string(),\n payment_url: v.string(),\n prices_include_tax: v.boolean(),\n refunds: v.array(v.unknown()),\n shipping: WCStoreShippingAddressSchema,\n shipping_lines: v.array(WCV3OrdersShippingLineSchema),\n shipping_tax: v.string(),\n shipping_total: v.string(),\n status: v.enum(ORDER_STATUSES),\n tax_lines: v.array(v.unknown()),\n total: v.string(),\n total_tax: v.string(),\n transaction_id: v.string(),\n version: v.string(),\n});\n"],"names":["v.object","v.pipe","v.number","v.integer","v.string","v.unknown","v.boolean","v.array","v.enum","v.optional","v.union","v.null"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"orders2.js","sources":["../../src/scripts/lib/schemas/api/v3/orders.ts"],"sourcesContent":["import * as v from \"valibot\";\n\nimport { ORDER_STATUSES, TAX_STATUSES } from \"../../../../constantes/orders\";\nimport { WCStoreBillingAddressSchema, WCStoreShippingAddressSchema } from \"../adresses\";\n\nexport const WCV3OrdersCouponLineMetaDataSchema = v.object({\n id: v.pipe(v.number(), v.integer()),\n key: v.string(),\n value: v.unknown(),\n});\n\nexport const WCV3OrdersCouponLineSchema = v.object({\n code: v.string(),\n discount: v.string(),\n discount_tax: v.string(),\n discount_type: v.string(),\n free_shipping: v.boolean(),\n id: v.pipe(v.number(), v.integer()),\n meta_data: v.array(WCV3OrdersCouponLineMetaDataSchema),\n nominal_amount: v.number(),\n});\n\nexport const WCV3OrdersFeeLineMetaDataSchema = v.object({\n id: v.pipe(v.number(), v.integer()),\n key: v.string(),\n value: v.unknown(),\n});\n\nexport const WCV3OrdersFeeLineTaxSchema = v.object({\n id: v.pipe(v.number(), v.integer()),\n subtotal: v.string(),\n total: v.string(),\n});\n\nexport const WCV3OrdersFeeLineSchema = v.object({\n id: v.pipe(v.number(), v.integer()),\n meta_data: v.array(WCV3OrdersFeeLineMetaDataSchema),\n name: v.string(),\n tax_class: v.string(),\n tax_status: v.enum(TAX_STATUSES),\n taxes: v.array(WCV3OrdersFeeLineTaxSchema),\n total: v.string(),\n total_tax: v.string(),\n});\n\nexport const WCV3OrdersShippingLineMetaDataSchema = v.object({\n id: v.pipe(v.number(), v.integer()),\n key: v.string(),\n value: v.unknown(),\n});\n\nexport const WCV3OrdersShippingLineTaxSchema = v.object({\n id: v.pipe(v.number(), v.integer()),\n total: v.string(),\n});\n\nexport const WCV3OrdersShippingLineSchema = v.object({\n id: v.optional(v.pipe(v.number(), v.integer())),\n meta_data: v.optional(v.array(WCV3OrdersShippingLineMetaDataSchema)),\n method_id: v.optional(v.string()),\n method_title: v.optional(v.string()),\n taxes: v.optional(v.array(WCV3OrdersShippingLineTaxSchema)),\n total: v.optional(v.string()),\n total_tax: v.optional(v.string()),\n});\n\nexport const WCV3OrdersLineItemImageSchema = v.object({\n id: v.union([v.string(), v.pipe(v.number(), v.integer())]),\n src: v.string(),\n});\n\nexport const WCV3OrdersLineItemMetaDataSchema = v.object({\n display_key: v.string(),\n display_value: v.string(),\n id: v.pipe(v.number(), v.integer()),\n key: v.string(),\n value: v.unknown(),\n});\n\nexport const WCV3OrdersLineItemTaxSchema = v.object({\n id: v.pipe(v.number(), v.integer()),\n subtotal: v.string(),\n total: v.string(),\n});\n\nexport const WCV3OrdersLineItemSchema = v.object({\n id: v.optional(v.pipe(v.number(), v.integer())),\n image: v.optional(WCV3OrdersLineItemImageSchema),\n meta_data: v.optional(v.array(WCV3OrdersLineItemMetaDataSchema)),\n name: v.optional(v.string()),\n parent_name: v.optional(v.union([v.string(), v.null()])),\n price: v.optional(v.number()),\n product_id: v.optional(v.pipe(v.number(), v.integer())),\n quantity: v.optional(v.pipe(v.number(), v.integer())),\n sku: v.optional(v.string()),\n subtotal: v.optional(v.string()),\n subtotal_tax: v.optional(v.string()),\n tax_class: v.optional(v.string()),\n taxes: v.optional(v.array(WCV3OrdersLineItemTaxSchema)),\n total: v.optional(v.string()),\n total_tax: v.optional(v.string()),\n variation_id: v.optional(v.pipe(v.number(), v.integer())),\n});\n\nexport const WCV3OrdersMetaDataSchema = v.object({\n id: v.pipe(v.number(), v.integer()),\n key: v.string(),\n value: v.unknown(),\n});\n\nexport const WCV3OrdersArgsSchema = v.object({\n billing: v.optional(WCStoreBillingAddressSchema),\n coupon_lines: v.optional(v.array(WCV3OrdersCouponLineSchema)),\n currency: v.optional(v.string()),\n customer_id: v.optional(v.pipe(v.number(), v.integer())),\n customer_note: v.optional(v.string()),\n fee_lines: v.optional(v.array(WCV3OrdersFeeLineSchema)),\n line_items: v.optional(v.array(WCV3OrdersLineItemSchema)),\n manual_update: v.optional(v.boolean()),\n parent_id: v.optional(v.pipe(v.number(), v.integer())),\n payment_method: v.optional(v.string()),\n payment_method_title: v.optional(v.string()),\n set_paid: v.optional(v.boolean()),\n shipping: v.optional(WCStoreShippingAddressSchema),\n shipping_lines: v.optional(v.array(WCV3OrdersShippingLineSchema)),\n status: v.optional(v.enum(ORDER_STATUSES)),\n transaction_id: v.optional(v.string()),\n});\n\nexport const WCV3OrderSchema = v.object({\n billing: WCStoreBillingAddressSchema,\n cart_hash: v.string(),\n cart_tax: v.string(),\n coupon_lines: v.array(WCV3OrdersCouponLineSchema),\n created_via: v.string(),\n currency: v.string(),\n currency_symbol: v.string(),\n customer_id: v.pipe(v.number(), v.integer()),\n customer_ip_address: v.string(),\n customer_note: v.string(),\n customer_user_agent: v.string(),\n date_completed: v.union([v.string(), v.null()]),\n date_completed_gmt: v.union([v.string(), v.null()]),\n // Date\n date_created: v.string(),\n date_created_gmt: v.string(),\n date_modified: v.string(),\n date_modified_gmt: v.string(),\n date_paid: v.union([v.string(), v.null()]),\n date_paid_gmt: v.union([v.string(), v.null()]),\n discount_tax: v.string(),\n discount_total: v.string(),\n fee_lines: v.array(WCV3OrdersFeeLineSchema),\n id: v.pipe(v.number(), v.integer()),\n is_editable: v.boolean(),\n line_items: v.array(WCV3OrdersLineItemSchema),\n meta_data: v.unknown(),\n needs_payment: v.boolean(),\n needs_processing: v.boolean(),\n number: v.string(),\n order_key: v.string(),\n parent_id: v.pipe(v.number(), v.integer()),\n payment_method: v.string(),\n payment_method_title: v.string(),\n payment_url: v.string(),\n prices_include_tax: v.boolean(),\n refunds: v.array(v.unknown()),\n shipping: WCStoreShippingAddressSchema,\n shipping_lines: v.array(WCV3OrdersShippingLineSchema),\n shipping_tax: v.string(),\n shipping_total: v.string(),\n status: v.enum(ORDER_STATUSES),\n tax_lines: v.array(v.unknown()),\n total: v.string(),\n total_tax: v.string(),\n transaction_id: v.string(),\n version: v.string(),\n});\n"],"names":["v.object","v.pipe","v.number","v.integer","v.string","v.unknown","v.boolean","v.array","v.enum","v.optional","v.union","v.null"],"mappings":"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"} \ No newline at end of file diff --git a/web/app/themes/haiku-atelier-2024/assets/js/products.js b/web/app/themes/haiku-atelier-2024/assets/js/products.js index ac3da86b..f2032465 100644 --- a/web/app/themes/haiku-atelier-2024/assets/js/products.js +++ b/web/app/themes/haiku-atelier-2024/assets/js/products.js @@ -1,4 +1,4 @@ -import { o as object, c as optional, e as enum_, s as string, b as array, a as pipe, k as maxValue, m as minValue, n as number, i as integer, d as boolean, u as unknown, g as union, h as null_, f as url } from "./index.vOxCZRxB.js"; +import { o as object, c as optional, e as enum_, s as string, b as array, a as pipe, k as maxValue, m as minValue, n as number, i as integer, d as boolean, u as unknown, g as union, h as null_, f as url } from "./index.CXGAS3st.js"; import { P as PRODUCT_TYPES, T as TAG_OPERATORS, S as STOCK_STATUSES, a as PRODUCT_STATUTES, R as RATINGS, O as ORDERBY_VALUES, b as ORDER_VALUES, D as DATE_COLUMN_VALUES, c as PRODUCTS_CONTEXTES, C as CATEGORY_OPERATORS, d as CATALOG_VISIBILITIES, A as ATTRIBUTES_RELATIONS, e as TAX_STATUTES, B as BACKORDERS_SETTINGS } from "./products2.js"; const WCV3ProductsArgsSchema = object({ // Date ISO8601 diff --git a/web/app/themes/haiku-atelier-2024/assets/js/products3.js b/web/app/themes/haiku-atelier-2024/assets/js/products3.js index 15df2a32..dcddca01 100644 --- a/web/app/themes/haiku-atelier-2024/assets/js/products3.js +++ b/web/app/themes/haiku-atelier-2024/assets/js/products3.js @@ -1,4 +1,4 @@ -import { o as object, c as optional, e as enum_, s as string, b as array, a as pipe, k as maxValue, m as minValue, n as number, i as integer, d as boolean, u as unknown, g as union, h as null_ } from "./index.vOxCZRxB.js"; +import { o as object, c as optional, e as enum_, s as string, b as array, a as pipe, k as maxValue, m as minValue, n as number, i as integer, d as boolean, u as unknown, g as union, h as null_ } from "./index.CXGAS3st.js"; import { P as PRODUCT_TYPES, T as TAG_OPERATORS, S as STOCK_STATUSES, R as RATINGS, O as ORDERBY_VALUES, b as ORDER_VALUES, D as DATE_COLUMN_VALUES, c as PRODUCTS_CONTEXTES, C as CATEGORY_OPERATORS, d as CATALOG_VISIBILITIES, A as ATTRIBUTES_RELATIONS } from "./products2.js"; object({ // Date ISO8601 diff --git a/web/app/themes/haiku-atelier-2024/assets/js/reseau.js b/web/app/themes/haiku-atelier-2024/assets/js/reseau.js index ece72609..1ac0a69b 100644 --- a/web/app/themes/haiku-atelier-2024/assets/js/reseau.js +++ b/web/app/themes/haiku-atelier-2024/assets/js/reseau.js @@ -1,5 +1,5 @@ import { z, N } from "./index.CeK6pfoJ.js"; -import { p as parse } from "./index.vOxCZRxB.js"; +import { p as parse } from "./index.CXGAS3st.js"; import { E as ENTETE_WC_NONCE } from "./api.js"; import { b as leveBadRequestError, c as leveUnauthorizedError, d as leveNotFoundError, E as ErreurInconnue, a as leveErreur } from "./erreurs.js"; import { e as estWCError } from "./erreurs2.js"; diff --git a/web/app/themes/haiku-atelier-2024/assets/js/scripts-bouton-panier.js b/web/app/themes/haiku-atelier-2024/assets/js/scripts-bouton-panier.js index cba291ff..ef83c235 100644 --- a/web/app/themes/haiku-atelier-2024/assets/js/scripts-bouton-panier.js +++ b/web/app/themes/haiku-atelier-2024/assets/js/scripts-bouton-panier.js @@ -7,7 +7,7 @@ import { p as pipe } from "./pipe.XPB0wEfw.js"; import "./erreurs.js"; import "./exports.DT-46nyp.js"; import "./Either.wHNxn7Os.js"; -import "./index.vOxCZRxB.js"; +import "./index.CXGAS3st.js"; import "./messages2.js"; import "./cart.js"; import "./cart2.js"; diff --git a/web/app/themes/haiku-atelier-2024/assets/js/scripts-menu-mobile.js b/web/app/themes/haiku-atelier-2024/assets/js/scripts-menu-mobile.js index 3ff6ee07..96f704ba 100644 --- a/web/app/themes/haiku-atelier-2024/assets/js/scripts-menu-mobile.js +++ b/web/app/themes/haiku-atelier-2024/assets/js/scripts-menu-mobile.js @@ -1,7 +1,7 @@ var __defProp = Object.defineProperty; var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value); -import { R as SELECTEUR_BOUTON_MENU_MOBILE, T as SELECTEUR_MENU_MOBILE, U as ATTRIBUT_MENU_MOBILE_ACTIVE } from "./dom.js"; +import { T as SELECTEUR_BOUTON_MENU_MOBILE, U as SELECTEUR_MENU_MOBILE, V as ATTRIBUT_MENU_MOBILE_ACTIVE } from "./dom.js"; import { a as recupereElementDansDocumentOuLeve } from "./utils.js"; import "./dom2.js"; import "./erreurs.js"; diff --git a/web/app/themes/haiku-atelier-2024/assets/js/scripts-page-a-propos.js b/web/app/themes/haiku-atelier-2024/assets/js/scripts-page-a-propos.js index 4ab19bca..1986edd7 100644 --- a/web/app/themes/haiku-atelier-2024/assets/js/scripts-page-a-propos.js +++ b/web/app/themes/haiku-atelier-2024/assets/js/scripts-page-a-propos.js @@ -1,4 +1,4 @@ -import { V as SELECTEUR_CONTENEUR_STORYTELLING_A_PROPOS, W as SELECTEUR_EPINGLE, X as SELECTEUR_BOITE_TEXTE, Y as ATTRIBUT_ID_ENSEMBLE_EPINGLE_BOITE, Z as ATTRIBUT_ENSEMBLE_EPINGLE_BOITE_ACTIF, _ as CLASS_BOUTON_FERMETURE_BOITE_TEXTE, $ as CLASS_EPINGLE } from "./dom.js"; +import { W as SELECTEUR_CONTENEUR_STORYTELLING_A_PROPOS, X as SELECTEUR_EPINGLE, Y as SELECTEUR_BOITE_TEXTE, Z as ATTRIBUT_ID_ENSEMBLE_EPINGLE_BOITE, _ as ATTRIBUT_ENSEMBLE_EPINGLE_BOITE_ACTIF, $ as CLASS_BOUTON_FERMETURE_BOITE_TEXTE, a0 as CLASS_EPINGLE } from "./dom.js"; import { a as recupereElementDansDocumentOuLeve, b as recupereElementsDansDocumentOuLeve } from "./utils.js"; import { k as reduceU, q as concat, v as valFromOption, s as some, i as equal, t as nullable_to_opt, R as Ra } from "./dom2.js"; import { p as pipe } from "./pipe.XPB0wEfw.js"; diff --git a/web/app/themes/haiku-atelier-2024/assets/js/scripts-page-boutique.js b/web/app/themes/haiku-atelier-2024/assets/js/scripts-page-boutique.js index 08725737..7026c268 100644 --- a/web/app/themes/haiku-atelier-2024/assets/js/scripts-page-boutique.js +++ b/web/app/themes/haiku-atelier-2024/assets/js/scripts-page-boutique.js @@ -1,5 +1,5 @@ import { z, N } from "./index.CeK6pfoJ.js"; -import { p as parse } from "./index.vOxCZRxB.js"; +import { p as parse } from "./index.CXGAS3st.js"; import { R as ROUTE_API_NOUVELLE_PRODUCTS } from "./api.js"; import { g as SELECTEUR_GRILLE_PRODUITS, h as SELECTEUR_BOUTON_PLUS_PRODUITS, i as ATTRIBUT_ID_CATEGORIE_PRODUITS, j as ATTRIBUT_PAGE, k as ATTRIBUT_HIDDEN } from "./dom.js"; import { h as html } from "./dom2.js"; diff --git a/web/app/themes/haiku-atelier-2024/assets/js/scripts-page-panier.js b/web/app/themes/haiku-atelier-2024/assets/js/scripts-page-panier.js index 8adf69ab..41775e54 100644 --- a/web/app/themes/haiku-atelier-2024/assets/js/scripts-page-panier.js +++ b/web/app/themes/haiku-atelier-2024/assets/js/scripts-page-panier.js @@ -1,20 +1,20 @@ import { z } from "./index.CeK6pfoJ.js"; -import { p as parse, V as ValiError } from "./index.vOxCZRxB.js"; +import { p as parse, V as ValiError } from "./index.CXGAS3st.js"; import { a as ROUTE_API_RETIRE_ARTICLE_PANIER, b as ROUTE_API_MAJ_ARTICLE_PANIER, c as ROUTE_API_MAJ_CLIENT, d as ROUTE_API_NOUVELLE_COMMANDES } from "./api.js"; -import { l as SELECTEUR_ENTREES_PANIER, m as SELECTEUR_CONTENEUR_PANIER, n as SELECTEUR_SOUS_TOTAL_PRODUITS, o as SELECTEUR_SOUS_TOTAL_LIVRAISON_COUT, p as SELECTEUR_SOUS_TOTAL_LIVRAISON_PRESTATAIRE, q as SELECTEUR_TOTAL_PANIER, r as SELECTEUR_BOUTON_SEPARATION_ADRESSES, s as SELECTEUR_FORMULAIRE_PANIER, t as SELECTEUR_FORMULAIRE_FACTURATION, u as SELECTEUR_BOUTON_ACTIONS_FORMULAIRE, v as ATTRIBUT_CLE_PANIER, w as SELECTEUR_BOUTON_SOUSTRACTION_QUANTITE, x as SELECTEUR_CHAMP_QUANTITE_LIGNE_PANIER, y as SELECTEUR_BOUTON_ADDITION_QUANTITE, z as SELECTEUR_BOUTON_SUPPRESSION_PANIER, B as ATTRIBUT_DESACTIVE, A as ATTRIBUT_CONTIENT_ARTICLES, C as SELECTEUR_PRIX_LIGNE_PANIER, k as ATTRIBUT_HIDDEN } from "./dom.js"; +import { l as SELECTEUR_ENTREES_PANIER, m as SELECTEUR_CONTENEUR_PANIER, n as SELECTEUR_SOUS_TOTAL_PRODUITS, o as SELECTEUR_SOUS_TOTAL_LIVRAISON_COUT, p as SELECTEUR_SOUS_TOTAL_LIVRAISON_PRESTATAIRE, q as SELECTEUR_INSTRUCTIONS_CLIENT, r as SELECTEUR_TOTAL_PANIER, s as SELECTEUR_BOUTON_SEPARATION_ADRESSES, t as SELECTEUR_FORMULAIRE_PANIER, u as SELECTEUR_FORMULAIRE_FACTURATION, v as SELECTEUR_BOUTON_ACTIONS_FORMULAIRE, w as ATTRIBUT_CLE_PANIER, x as SELECTEUR_BOUTON_SOUSTRACTION_QUANTITE, y as SELECTEUR_CHAMP_QUANTITE_LIGNE_PANIER, z as SELECTEUR_BOUTON_ADDITION_QUANTITE, B as SELECTEUR_BOUTON_SUPPRESSION_PANIER, C as ATTRIBUT_DESACTIVE, A as ATTRIBUT_CONTIENT_ARTICLES, D as SELECTEUR_PRIX_LIGNE_PANIER, k as ATTRIBUT_HIDDEN } from "./dom.js"; import { N as NOM_CANAL_BOUTON_PANIER, a as NOM_CANAL_CONTENU_PANIER } from "./messages3.js"; import { r as recupereElementOuLeve, a as recupereElementAvecSelecteur, b as recupereElementsAvecSelecteur, e as eitherSessionStorageGet, c as eitherJsonParse } from "./dom2.js"; import { l as leveServerError, r as reporteErreur, a as leveErreur } from "./erreurs.js"; import { e as estReponse500, a as estError } from "./gardes.js"; import { e as emetMessageMajBoutonPanier, a as emetMessageMajContenuPanier, v as valideMessageMajBoutonPanier, b as valideMessageMajContenuPanier } from "./messages.js"; import { p as postBackend, t as traiteReponseBackendWCSelonCodesHTTP } from "./reseau.js"; -import { W as WCStoreCartSchema } from "./cart.js"; import { W as WCStoreCartRemoveItemArgsSchema } from "./cart-remove-item.js"; import { W as WCStoreCartUpdateCustomerArgsSchema } from "./cart-update-customer.js"; import { W as WCStoreCartUpdateItemArgsSchema } from "./cart-update-item.js"; +import { W as WCStoreCartSchema } from "./cart.js"; import { W as WCStoreShippingRateShippingRateSchema } from "./couts-livraison.js"; import { W as WCV3OrdersArgsSchema, a as WCV3OrderSchema } from "./orders2.js"; -import { c as recupereElementsDocumentEither, r as recupereElementDocumentEither, y, p as propEither, a as recupereElementDansDocumentOuLeve } from "./utils.js"; +import { c as recupereElementsDocumentEither, r as recupereElementDocumentEither, a as recupereElementDansDocumentOuLeve, y, p as propEither } from "./utils.js"; import { e as eitherParse } from "./validation.js"; import { p as pipe } from "./pipe.XPB0wEfw.js"; import { l } from "./index-0eef19ec.CFsloYN6.js"; @@ -22,8 +22,8 @@ import { M as Maybe, E as Either } from "./Either.wHNxn7Os.js"; import "./exports.DT-46nyp.js"; import "./messages2.js"; import "./erreurs2.js"; -import "./cart2.js"; import "./adresses.js"; +import "./cart2.js"; import "./orders3.js"; import "./belt_Option-91f3b350.BKMoZFhU.js"; const ETATS_PAGE = _etats; @@ -46,6 +46,9 @@ const SOUS_TOTAL_LIVRAISON_PRESTATAIRE = pipe( recupereElementDocumentEither(SELECTEUR_SOUS_TOTAL_LIVRAISON_PRESTATAIRE), recupereElementOuLeve ); +const INSTRUCTIONS_CLIENT = recupereElementDansDocumentOuLeve( + SELECTEUR_INSTRUCTIONS_CLIENT +); const TOTAL_PANIER = pipe( recupereElementDocumentEither(SELECTEUR_TOTAL_PANIER), recupereElementOuLeve @@ -397,6 +400,7 @@ const initialiseBoutonCreationCommande = () => { postcode: donneesFormulaire["facturation-code-postal"] ?? donneesFormulaire["livraison-code-postal"] ?? "", state: donneesFormulaire["facturation-region-etat"] ?? donneesFormulaire["livraison-region-etat"] ?? "" }, + customer_note: INSTRUCTIONS_CLIENT.value, currency: methodeLivraison.currency_code, line_items: articlesPanier, shipping: { @@ -430,18 +434,12 @@ const initialiseBoutonCreationCommande = () => { pipe( // Récupère la Réponse await reponse.json(), - // Traite tous les codes HTTP possibles - (corpsReponse) => { - console.debug(corpsReponse); - return eitherParse(corpsReponse, WCV3OrderSchema); - }, - (reponse2) => reponse2.ifRight((r) => { + (corpsReponse) => eitherParse(corpsReponse, WCV3OrderSchema).ifRight((reponse2) => { const url = new URL(`https://${window.location.host}/checkout`); - url.searchParams.append("order_key", r.order_key); - url.searchParams.append("order_id", String(r.id)); - window.location = url; - }), - (reponse2) => reponse2.ifLeft((a) => console.error(a.issues)) + url.searchParams.append("order_key", reponse2.order_key); + url.searchParams.append("order_id", String(reponse2.id)); + location.assign(url); + }).ifLeft((e) => console.error(e.issues)) ); }); }).ifLeft((a) => console.error(a.issues)); diff --git a/web/app/themes/haiku-atelier-2024/assets/js/scripts-page-panier.js.map b/web/app/themes/haiku-atelier-2024/assets/js/scripts-page-panier.js.map index cff8c1a7..c7a50087 100644 --- a/web/app/themes/haiku-atelier-2024/assets/js/scripts-page-panier.js.map +++ b/web/app/themes/haiku-atelier-2024/assets/js/scripts-page-panier.js.map @@ -1 +1 @@ -{"version":3,"file":"scripts-page-panier.js","sources":["../../src/scripts/scripts-page-panier.ts"],"sourcesContent":["import { D, F, pipe } from \"@mobily/ts-belt\";\nimport { Either, Maybe } from \"purify-ts\";\nimport { match } from \"ts-pattern\";\nimport { parse, ValiError } from \"valibot\";\n\nimport type { MessageMajContenuPanierSchema } from \"./lib/schemas/messages.ts\";\nimport type { WCStoreCart, WCStoreCartItem, WCStoreShippingRateShippingRate } from \"./lib/types/api/cart\";\nimport type { WCStoreCartRemoveItemArgs } from \"./lib/types/api/cart-remove-item\";\nimport type { WCStoreCartUpdateCustomerArgs } from \"./lib/types/api/cart-update-customer\";\nimport type { WCStoreCartUpdateItemArgs } from \"./lib/types/api/cart-update-item\";\nimport type { WCV3OrdersArgs } from \"./lib/types/api/v3/orders.ts\";\nimport type { MessageMajBoutonPanierDonnees, MessageMajContenuPanierDonnees } from \"./lib/types/messages\";\n\nimport {\n ROUTE_API_MAJ_ARTICLE_PANIER,\n ROUTE_API_MAJ_CLIENT,\n ROUTE_API_NOUVELLE_COMMANDES,\n ROUTE_API_RETIRE_ARTICLE_PANIER,\n} from \"./constantes/api.ts\";\nimport {\n ATTRIBUT_CLE_PANIER,\n ATTRIBUT_CONTIENT_ARTICLES,\n ATTRIBUT_DESACTIVE,\n ATTRIBUT_HIDDEN,\n SELECTEUR_BOUTON_ACTIONS_FORMULAIRE,\n SELECTEUR_BOUTON_ADDITION_QUANTITE,\n SELECTEUR_BOUTON_SEPARATION_ADRESSES,\n SELECTEUR_BOUTON_SOUSTRACTION_QUANTITE,\n SELECTEUR_BOUTON_SUPPRESSION_PANIER,\n SELECTEUR_CHAMP_QUANTITE_LIGNE_PANIER,\n SELECTEUR_CONTENEUR_PANIER,\n SELECTEUR_ENTREES_PANIER,\n SELECTEUR_FORMULAIRE_FACTURATION,\n SELECTEUR_FORMULAIRE_PANIER,\n SELECTEUR_PRIX_LIGNE_PANIER,\n SELECTEUR_SOUS_TOTAL_LIVRAISON_COUT,\n SELECTEUR_SOUS_TOTAL_LIVRAISON_PRESTATAIRE,\n SELECTEUR_SOUS_TOTAL_PRODUITS,\n SELECTEUR_TOTAL_PANIER,\n} from \"./constantes/dom.ts\";\nimport { NOM_CANAL_BOUTON_PANIER, NOM_CANAL_CONTENU_PANIER } from \"./constantes/messages.ts\";\nimport {\n eitherJsonParse,\n eitherSessionStorageGet,\n recupereElementAvecSelecteur,\n recupereElementOuLeve,\n recupereElementsAvecSelecteur,\n} from \"./lib/dom.ts\";\nimport { type CleNonTrouveError, leveErreur, leveServerError, reporteErreur } from \"./lib/erreurs.ts\";\nimport { estError, estReponse500 } from \"./lib/gardes.ts\";\nimport {\n emetMessageMajBoutonPanier,\n emetMessageMajContenuPanier,\n valideMessageMajBoutonPanier,\n valideMessageMajContenuPanier,\n} from \"./lib/messages.ts\";\nimport { postBackend, traiteReponseBackendWCSelonCodesHTTP } from \"./lib/reseau.ts\";\nimport { WCStoreCartSchema } from \"./lib/schemas/api/cart.ts\";\nimport { WCStoreCartRemoveItemArgsSchema } from \"./lib/schemas/api/cart-remove-item.ts\";\nimport { WCStoreCartUpdateCustomerArgsSchema } from \"./lib/schemas/api/cart-update-customer.ts\";\nimport { WCStoreCartUpdateItemArgsSchema } from \"./lib/schemas/api/cart-update-item.ts\";\nimport { WCStoreShippingRateShippingRateSchema } from \"./lib/schemas/api/couts-livraison.ts\";\nimport { WCV3OrdersArgsSchema, WCV3OrderSchema } from \"./lib/schemas/api/v3/orders.ts\";\nimport {\n propEither,\n recupereElementDansDocumentOuLeve,\n recupereElementDocumentEither,\n recupereElementsDocumentEither,\n} from \"./lib/utils.ts\";\nimport { eitherParse } from \"./lib/validation.ts\";\n\n/** États utiles pour les scripts de la page. */\ntype EtatsPage = {\n authString: string;\n /** Un nonce pour l'authentification de requêtes API vers le backend WooCommerce. */\n nonce: string;\n};\n\ntype ElementsEntreePanier = {\n boutonAddition: HTMLButtonElement;\n boutonSoustraction: HTMLButtonElement;\n boutonSuppression: HTMLButtonElement;\n champQuantite?: HTMLInputElement;\n};\n\n// @ts-expect-error -- États injectés par le modèle PHP\n// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- États injectés par le modèle PHP\nconst ETATS_PAGE: EtatsPage = _etats;\n\n// Éléments d'intérêt\nconst ENTREES_PANIER_EITHER: Either> = recupereElementsDocumentEither(\n SELECTEUR_ENTREES_PANIER,\n);\nconst CONTENEUR_PANIER: HTMLElement = pipe(\n recupereElementDocumentEither(SELECTEUR_CONTENEUR_PANIER),\n recupereElementOuLeve,\n);\nconst SOUS_TOTAL_PRODUITS: HTMLElement = pipe(\n recupereElementDocumentEither(SELECTEUR_SOUS_TOTAL_PRODUITS),\n recupereElementOuLeve,\n);\nconst SOUS_TOTAL_LIVRAISON_COUT: HTMLElement = pipe(\n recupereElementDocumentEither(SELECTEUR_SOUS_TOTAL_LIVRAISON_COUT),\n recupereElementOuLeve,\n);\nconst SOUS_TOTAL_LIVRAISON_PRESTATAIRE: HTMLSpanElement = pipe(\n recupereElementDocumentEither(SELECTEUR_SOUS_TOTAL_LIVRAISON_PRESTATAIRE),\n recupereElementOuLeve,\n);\nconst TOTAL_PANIER: HTMLParagraphElement = pipe(\n recupereElementDocumentEither(SELECTEUR_TOTAL_PANIER),\n recupereElementOuLeve,\n);\nconst BOUTON_SEPARATION_ADRESSES: HTMLInputElement = pipe(\n recupereElementDocumentEither(SELECTEUR_BOUTON_SEPARATION_ADRESSES),\n recupereElementOuLeve,\n);\nconst FORMULAIRE_PANIER: HTMLFormElement = pipe(\n recupereElementDocumentEither(SELECTEUR_FORMULAIRE_PANIER),\n recupereElementOuLeve,\n);\n// const FORMULAIRE_LIVRAISON: HTMLDivElement = pipe(\n// recupereElementDocumentEither(SELECTEUR_FORMULAIRE_LIVRAISON),\n// recupereElementOuLeve,\n// );\nconst FORMULAIRE_FACTURATION: HTMLDivElement = pipe(\n recupereElementDocumentEither(SELECTEUR_FORMULAIRE_FACTURATION),\n recupereElementOuLeve,\n);\nlet BOUTON_ACTIONS_FORMULAIRE: HTMLButtonElement = pipe(\n recupereElementDocumentEither(SELECTEUR_BOUTON_ACTIONS_FORMULAIRE),\n recupereElementOuLeve,\n);\n\n/**\n * Fonction utilitaire pour récupérer un Élément dans une ligne (entrée) du Panier, en levant une\n * Erreur s'il n'existe pas.\n *\n * @param entree L'entrée du Panier sous forme d'Élément dans le DOM.\n * @returns L'Élément demandé.\n * @throws Une SyntaxError si l'Élément n'est pas trouvé.\n */\nconst recupereElementDansEntreePanierOuLeve =\n (entree: HTMLElement) => (selecteur: string) =>\n pipe(recupereElementAvecSelecteur(entree)(selecteur), recupereElementOuLeve);\n\nconst desactiveBoutonsEntreesPanier = (entrees: Array): void =>\n entrees.forEach((entree: HTMLElement) => {\n // Fonction utilitaire\n const recupereElementDansEntree = recupereElementDansEntreePanierOuLeve(entree);\n\n const elements: ElementsEntreePanier = {\n boutonAddition: recupereElementDansEntree(SELECTEUR_BOUTON_ADDITION_QUANTITE),\n boutonSoustraction: recupereElementDansEntree(SELECTEUR_BOUTON_SOUSTRACTION_QUANTITE),\n boutonSuppression: recupereElementDansEntree(SELECTEUR_BOUTON_SUPPRESSION_PANIER),\n };\n\n elements.boutonSoustraction.setAttribute(ATTRIBUT_DESACTIVE, \"\");\n elements.boutonAddition.setAttribute(ATTRIBUT_DESACTIVE, \"\");\n elements.boutonSuppression.setAttribute(ATTRIBUT_DESACTIVE, \"\");\n elements.boutonSuppression.textContent = \"C= C= C= C= C=┌(;・ω・)┘\";\n });\n\nconst majEtatsActivationBoutons = (entrees: Array): void =>\n entrees.forEach((entree: HTMLElement) => {\n // Fonction utilitaire\n const recupereElementDansEntree = recupereElementDansEntreePanierOuLeve(entree);\n\n const elements: ElementsEntreePanier = {\n boutonAddition: recupereElementDansEntree(SELECTEUR_BOUTON_ADDITION_QUANTITE),\n boutonSoustraction: recupereElementDansEntree(SELECTEUR_BOUTON_SOUSTRACTION_QUANTITE),\n boutonSuppression: recupereElementDansEntree(SELECTEUR_BOUTON_SUPPRESSION_PANIER),\n champQuantite: recupereElementDansEntree(SELECTEUR_CHAMP_QUANTITE_LIGNE_PANIER),\n };\n\n Number(elements.champQuantite?.value) === 1\n ? elements.boutonSoustraction.setAttribute(ATTRIBUT_DESACTIVE, \"\")\n : elements.boutonSoustraction.removeAttribute(ATTRIBUT_DESACTIVE);\n elements.boutonAddition.removeAttribute(ATTRIBUT_DESACTIVE);\n elements.boutonSuppression.removeAttribute(ATTRIBUT_DESACTIVE);\n elements.boutonSuppression.textContent = \"Remove\";\n });\n\nconst initialiseMajEntreesPanier = (): void => {\n ENTREES_PANIER_EITHER.ifRight((entrees: Array) => {\n entrees.forEach((entree: HTMLElement) => {\n const recupereElementDansEntree = recupereElementDansEntreePanierOuLeve(entree);\n\n // Retire l'entrée du DOM si la clé Panier n'existe pas et arrête précocement\n const clePanier: string = Maybe.fromNullable(entree.getAttribute(ATTRIBUT_CLE_PANIER))\n .ifNothing(() => {\n entree.remove();\n return;\n })\n .orDefault(\"CLE_PANIER_INEXISTANTE\");\n\n // Récupère les attributs et éléments utilisés dans le script\n const boutonSoustraction = recupereElementDansEntree(SELECTEUR_BOUTON_SOUSTRACTION_QUANTITE);\n const champQuantite = recupereElementDansEntree(SELECTEUR_CHAMP_QUANTITE_LIGNE_PANIER);\n const boutonAddition = recupereElementDansEntree(SELECTEUR_BOUTON_ADDITION_QUANTITE);\n const boutonSuppression = recupereElementDansEntree(SELECTEUR_BOUTON_SUPPRESSION_PANIER);\n\n // Supprime la ligne du Panier au clic sur le bouton de suppression\n boutonSuppression.addEventListener(\"click\", (): void => {\n Either\n // Valide un corps de requête\n .encase, WCStoreCartRemoveItemArgs>(() =>\n parse(WCStoreCartRemoveItemArgsSchema, { key: clePanier })\n )\n .map(async (args: WCStoreCartRemoveItemArgs) => {\n // Modifie des éléments du DOM pour signaler la requête et empêcher des doubles exécutions\n desactiveBoutonsEntreesPanier(entrees);\n\n // Réalise la requête auprès du backend\n await postBackend({\n corps: JSON.stringify(args),\n nonce: ETATS_PAGE.nonce,\n route: ROUTE_API_RETIRE_ARTICLE_PANIER,\n })\n .then(async (reponse: Response) => {\n // Traite le cas d'erreur 500\n if (estReponse500(reponse)) leveServerError(\"500 Server Error\");\n\n pipe(\n // Récupère la Réponse\n await reponse.json(),\n // Traite tous les codes HTTPs possibles\n (corpsReponse: unknown) =>\n traiteReponseBackendWCSelonCodesHTTP(\n corpsReponse,\n WCStoreCartSchema,\n ),\n // Émets des Messages via BroadcastChannels pour la mise à jour de la page\n F.tap((panier: WCStoreCart) => {\n // Émet un Message avec le nouveau nombre de Produits dans le Panier\n emetMessageMajBoutonPanier({ quantiteProduits: panier.items_count });\n // Émet un Message avec le nouveau contenu du Panier\n emetMessageMajContenuPanier({\n produits: panier.items,\n sousTotalPanier: Number(panier.totals.total_price) / 100,\n totalPanier: Number(panier.totals.total_items) / 100,\n });\n // Retire l'entrée du Panier du DOM\n entree.remove();\n }),\n );\n })\n .catch((e: unknown) => {\n if (estError(e)) {\n reporteErreur(e);\n } else {\n console.error(\"e n'est pas une Erreur ?!\", e);\n }\n majEtatsActivationBoutons(entrees);\n });\n })\n .ifLeft((erreur: ValiError) => reporteErreur(erreur));\n });\n\n // Retire une unité à une ligne du Panier au clic sur le bouton de soustraction\n boutonSoustraction.addEventListener(\"click\", (evenement: Event): void => {\n Maybe.fromNullable(champQuantite.valueAsNumber)\n .filter(valeur => valeur > 1)\n .ifJust(valeur => {\n Either\n // Valide les arguments de la requête\n .encase(() =>\n parse(WCStoreCartUpdateItemArgsSchema, { key: clePanier, quantity: valeur - 1 })\n )\n .map(async (args: WCStoreCartUpdateItemArgs) => {\n // Modifie des éléments du DOM pour signaler la requête et empêcher des doubles exécutions\n desactiveBoutonsEntreesPanier(entrees);\n\n // Réalise la requête\n await postBackend({\n corps: JSON.stringify(args),\n nonce: ETATS_PAGE.nonce,\n route: ROUTE_API_MAJ_ARTICLE_PANIER,\n })\n .then(async (reponse: Response) => {\n // Traite le cas d'erreur 500\n if (estReponse500(reponse)) leveServerError(\"500 Server Error\");\n\n pipe(\n // Récupère la Réponse\n await reponse.json(),\n // Traite tous les codes HTTPs possibles\n (corpsReponse: unknown) =>\n traiteReponseBackendWCSelonCodesHTTP(\n corpsReponse,\n WCStoreCartSchema,\n ),\n F.tap((panier: WCStoreCart) => {\n // Émet un Message avec le nouveau nombre de Produits dans le Panier\n emetMessageMajBoutonPanier({ quantiteProduits: panier.items_count });\n // Émet un Message avec le nouveau contenu du Panier\n emetMessageMajContenuPanier({\n produits: panier.items,\n sousTotalPanier: Number(panier.totals.total_price) / 100,\n totalPanier: Number(panier.totals.total_items) / 100,\n });\n }),\n );\n })\n .catch((e: unknown) => {\n if (estError(e)) {\n reporteErreur(e);\n } else {\n console.error(\"e n'est pas une Erreur ?!\", e);\n }\n\n majEtatsActivationBoutons(entrees);\n });\n });\n });\n });\n\n // Ajoute une unité à une ligne du Panier au clic sur le bouton d'addition\n boutonAddition.addEventListener(\"click\", (): void => {\n Maybe.fromNullable(champQuantite.valueAsNumber).ifJust(valeur => {\n // Modifie des éléments du DOM pour signaler la requête et empêcher des doubles exécutions\n desactiveBoutonsEntreesPanier(entrees);\n\n Either\n // Valide les arguments de la requête\n .encase(() =>\n parse(WCStoreCartUpdateItemArgsSchema, { key: clePanier, quantity: valeur + 1 })\n )\n .map(async (args: WCStoreCartUpdateItemArgs) => {\n // Réalise la requête\n await postBackend({\n corps: JSON.stringify(args),\n nonce: ETATS_PAGE.nonce,\n route: ROUTE_API_MAJ_ARTICLE_PANIER,\n })\n .then(async (reponse: Response) => {\n // Traite le cas d'erreur 500\n if (estReponse500(reponse)) leveServerError(\"500 Server Error\");\n\n pipe(\n // Récupère la Réponse\n await reponse.json(),\n // Traite tous les codes HTTPs possibles\n (corpsReponse: unknown) =>\n traiteReponseBackendWCSelonCodesHTTP(\n corpsReponse,\n WCStoreCartSchema,\n ),\n F.tap((panier: WCStoreCart) => {\n // Émet un Message avec le nouveau nombre de Produits dans le Panier\n emetMessageMajBoutonPanier({ quantiteProduits: panier.items_count });\n // Émet un Message avec le nouveau contenu du Panier\n emetMessageMajContenuPanier({\n produits: panier.items,\n sousTotalPanier: Number(panier.totals.total_price) / 100,\n totalPanier: Number(panier.totals.total_items) / 100,\n });\n }),\n );\n })\n .catch((e: unknown) => {\n if (estError(e)) {\n reporteErreur(e);\n } else {\n console.error(\"e n'est pas une Erreur ?!\", e);\n }\n\n majEtatsActivationBoutons(entrees);\n });\n });\n });\n });\n });\n });\n};\n\nconst initialiseMajConteneurPanier = (): void => {\n new BroadcastChannel(NOM_CANAL_BOUTON_PANIER).onmessage = (evenementMessage: MessageEvent): void => {\n valideMessageMajBoutonPanier(evenementMessage)\n .map(D.getUnsafe(\"donnees\"))\n // Met à jour l'Attribut de présence de Produits dans le Panier\n .ifRight((donnees: MessageMajBoutonPanierDonnees) => {\n CONTENEUR_PANIER.setAttribute(ATTRIBUT_CONTIENT_ARTICLES, String(donnees.quantiteProduits !== 0));\n });\n };\n};\n\nconst initialiseMajContenuPanier = (): void => {\n new BroadcastChannel(NOM_CANAL_CONTENU_PANIER).onmessage = (message: MessageEvent): void => {\n valideMessageMajContenuPanier(message)\n // Récupère les données sous forme d'Either\n .chain(propEither(\"donnees\"))\n // Met à jour le contenu du Panier si des données sont présentes\n .ifRight((donnees: MessageMajContenuPanierDonnees) => {\n donnees.produits.forEach((ligne: WCStoreCartItem) => {\n // Met à jour les entrées du Panier\n ENTREES_PANIER_EITHER.ifRight((entrees: Array) => {\n Maybe.fromNullable(entrees.find(entree => entree.getAttribute(ATTRIBUT_CLE_PANIER) === ligne.key)).ifJust(\n (entree: HTMLElement) => {\n // Fonction utilitaire\n const recupereElementDansEntree = recupereElementDansEntreePanierOuLeve(entree);\n\n // Récupère les Éléments à mettre à jour\n const prixLigne = recupereElementDansEntree(SELECTEUR_PRIX_LIGNE_PANIER);\n const champQuantite = recupereElementDansEntree(\n SELECTEUR_CHAMP_QUANTITE_LIGNE_PANIER,\n );\n\n // Met à jour les valeurs\n entree.setAttribute(\"data-quantite\", String(ligne.quantity));\n prixLigne.textContent = `${String(Number(ligne.totals.line_total) / 100)}€`;\n champQuantite.setAttribute(\"value\", String(ligne.quantity));\n\n // Réactive les Boutons\n majEtatsActivationBoutons(entrees);\n },\n );\n\n // Met à jour les totaux du Panier\n SOUS_TOTAL_PRODUITS.textContent = `${String(donnees.totalPanier)}€`;\n TOTAL_PANIER.textContent = `${String(donnees.totalPanier)}€`;\n });\n });\n })\n // Reporte tout Erreur et réactive les Boutons\n .ifLeft((erreur: CleNonTrouveError | ValiError) => {\n reporteErreur(erreur);\n ENTREES_PANIER_EITHER.ifRight(entrees => majEtatsActivationBoutons(entrees));\n });\n };\n};\n\nconst initialiseMajFormulairesPanier = (): void => {\n BOUTON_SEPARATION_ADRESSES.addEventListener(\"click\", () => {\n Maybe.fromFalsy(BOUTON_SEPARATION_ADRESSES.checked)\n .ifJust((): void => {\n // Rend visible le formulaire de facturation\n FORMULAIRE_FACTURATION.removeAttribute(ATTRIBUT_HIDDEN);\n recupereElementsAvecSelecteur(FORMULAIRE_FACTURATION)(\"input, select\").ifRight(champs =>\n champs.forEach(champ => champ.removeAttribute(ATTRIBUT_DESACTIVE))\n );\n })\n .ifNothing((): void => {\n FORMULAIRE_FACTURATION.setAttribute(ATTRIBUT_HIDDEN, \"\");\n recupereElementsAvecSelecteur(FORMULAIRE_FACTURATION)(\n \"input, select\",\n ).ifRight(champs =>\n champs.forEach(champ => {\n champ.setAttribute(ATTRIBUT_DESACTIVE, \"\");\n champ.value = \"\";\n })\n );\n });\n });\n};\n\nconst initialiseBoutonActions = (): void => {\n // Déclenche une requête\n BOUTON_ACTIONS_FORMULAIRE.addEventListener(\"click\", evenement => {\n Maybe\n // Ne fais rien si le Formulaire n'est pas valide\n .fromFalsy(FORMULAIRE_PANIER.checkValidity())\n .ifJust(() => {\n evenement.preventDefault();\n FORMULAIRE_PANIER.removeAttribute(ATTRIBUT_HIDDEN);\n BOUTON_ACTIONS_FORMULAIRE.textContent = \"Check-out\";\n })\n .ifJust(() => {\n // Récupère les données du Formulaire\n // @ts-expect-error -- Problème de typage de la librairie DOM\n const donneesFormulaire: Record = pipe(\n new FormData(FORMULAIRE_PANIER),\n formData => formData.entries(),\n entrees => Array.from(entrees),\n tuple => D.fromPairs(tuple),\n );\n\n // Transforme les données brutes en arguments de requête auprès du backend\n const argumentsFormulaire: WCStoreCartUpdateCustomerArgs = {\n billing_address: {\n address_1: donneesFormulaire[\"facturation-adresse\"] ?? donneesFormulaire[\"livraison-adresse\"] ?? \"\",\n address_2: \"\",\n city: donneesFormulaire[\"facturation-ville\"] ?? donneesFormulaire[\"livraison-ville\"] ?? \"\",\n company: \"\",\n country: \"FR\",\n email: donneesFormulaire[\"facturation-email\"] ?? donneesFormulaire[\"livraison-email\"] ?? \"\",\n first_name: donneesFormulaire[\"facturation-prenom\"] ?? donneesFormulaire[\"livraison-prenom\"] ?? \"\",\n last_name: donneesFormulaire[\"facturation-nom\"] ?? donneesFormulaire[\"livraison-nom\"] ?? \"\",\n phone: donneesFormulaire[\"facturation-telephone\"] ?? donneesFormulaire[\"livraison-telephone\"] ?? \"\",\n postcode: donneesFormulaire[\"facturation-code-postal\"] ?? donneesFormulaire[\"livraison-code-postal\"] ?? \"\",\n state: donneesFormulaire[\"facturation-region-etat\"] ?? donneesFormulaire[\"livraison-region-etat\"] ?? \"\",\n },\n shipping_address: {\n address_1: donneesFormulaire[\"livraison-adresse\"] ?? \"\",\n address_2: \"\",\n city: donneesFormulaire[\"livraison-ville\"] ?? \"\",\n company: \"\",\n country: \"FR\",\n first_name: donneesFormulaire[\"livraison-prenom\"] ?? \"\",\n last_name: donneesFormulaire[\"livraison-nom\"] ?? \"\",\n phone: donneesFormulaire[\"livraison-telephone\"] ?? \"\",\n postcode: donneesFormulaire[\"livraison-code-postal\"] ?? \"\",\n state: donneesFormulaire[\"livraison-region-etat\"] ?? \"\",\n },\n };\n\n // Réalise la requête et traite sa réponse\n Either\n // Valide les arguments de la requête\n .encase, WCStoreCartUpdateCustomerArgs>(() =>\n parse(WCStoreCartUpdateCustomerArgsSchema, argumentsFormulaire)\n )\n .map(async (args: WCStoreCartUpdateCustomerArgs) => {\n await postBackend({\n corps: JSON.stringify(args),\n nonce: ETATS_PAGE.nonce,\n route: ROUTE_API_MAJ_CLIENT,\n }).then(async (reponse: Response) => {\n // Traite le cas d'erreur 500\n if (estReponse500(reponse)) leveServerError(\"500 Server Error\");\n\n pipe(\n // Récupère la Réponse\n await reponse.json(),\n // Traite tous les codes HTTPs possibles\n (corpsReponse: unknown) =>\n traiteReponseBackendWCSelonCodesHTTP(\n corpsReponse,\n WCStoreCartSchema,\n ),\n F.tap((donnees: WCStoreCart) => {\n // Récupère et adapte les informations de Livraison\n const sousTotalLivraison = donnees.totals.total_shipping === \"0\"\n ? \"Free\"\n : `${String(donnees.totals.total_shipping)} €`;\n const sousTotalPrestataire = match(donnees.shipping_rates[0]?.shipping_rates[0]?.name)\n .with(\"Mondial Relay - Livraison Point Relais (Gratuit)\", () => \"Mondial Relay - Pickup Point\")\n .with(\"Free shipping\", () => \"Free Shipping\")\n .otherwise(() => \"\");\n\n // Met à jour les informations de Livraison affichés à l'Utilisateur\n SOUS_TOTAL_LIVRAISON_COUT.textContent = sousTotalLivraison;\n SOUS_TOTAL_LIVRAISON_PRESTATAIRE.textContent = sousTotalPrestataire;\n\n // Sauvegarde la Méthode de Livraison dans le Stockage de Session\n sessionStorage.setItem(\n \"shipping_rates\",\n JSON.stringify(donnees.shipping_rates[0]?.shipping_rates[0] ?? \"\"),\n );\n }),\n );\n\n // Active le Bouton pour la création de la Commande\n initialiseBoutonCreationCommande();\n });\n })\n .ifLeft(a => console.error(a.issues));\n });\n });\n};\n\nconst initialiseBoutonCreationCommande = (): void => {\n // Permet de supprimer tout Écouteur d'Évènement assigné au Bouton\n BOUTON_ACTIONS_FORMULAIRE.outerHTML = BOUTON_ACTIONS_FORMULAIRE.outerHTML;\n // Réassigne le Bouton\n BOUTON_ACTIONS_FORMULAIRE = recupereElementDansDocumentOuLeve(SELECTEUR_BOUTON_ACTIONS_FORMULAIRE);\n // Créé la Commande au clic sur le Bouton\n BOUTON_ACTIONS_FORMULAIRE.addEventListener(\"click\", (evenement: Event) => {\n Maybe\n // Ne fais rien si le Formulaire n'est pas valide\n .fromFalsy(FORMULAIRE_PANIER.checkValidity())\n .ifJust(() => {\n evenement.preventDefault();\n BOUTON_ACTIONS_FORMULAIRE.textContent = \"Submitting...\";\n })\n .ifJust(() => {\n // Récupère les données du Formulaire sous forme d'Objet\n const donneesFormulaire = Object.fromEntries(new FormData(FORMULAIRE_PANIER)) as Record;\n\n const methodeLivraison: WCStoreShippingRateShippingRate = eitherSessionStorageGet(\"shipping_rates\")\n .chain(eitherJsonParse)\n .chain((json: JSONValue) =>\n eitherParse(\n json,\n WCStoreShippingRateShippingRateSchema,\n )\n )\n .ifLeft(e => {\n if (e instanceof ValiError) console.error(e.issues);\n console.error(\"methodeLivraison\", e);\n BOUTON_ACTIONS_FORMULAIRE.textContent = \"Check-out\";\n leveErreur(e);\n })\n .unsafeCoerce();\n\n const articlesPanier = ENTREES_PANIER_EITHER\n .orDefault([])\n .map((entree: HTMLElement) => ({\n product_id: Number(entree.getAttribute(\"data-id-produit\")),\n quantity: Number(entree.getAttribute(\"data-quantite\")),\n ...(entree.getAttribute(\"data-id-variation\") && {\n variation_id: Number(entree.getAttribute(\"data-id-variation\")),\n }),\n }));\n\n const argumentsFormulaire: WCV3OrdersArgs = {\n billing: {\n address_1: donneesFormulaire[\"facturation-adresse\"] ?? donneesFormulaire[\"livraison-adresse\"] ?? \"\",\n address_2: \"\",\n city: donneesFormulaire[\"facturation-ville\"] ?? donneesFormulaire[\"livraison-ville\"] ?? \"\",\n company: \"\",\n country: \"FR\",\n email: donneesFormulaire[\"facturation-email\"] ?? donneesFormulaire[\"livraison-email\"] ?? \"\",\n first_name: donneesFormulaire[\"facturation-prenom\"] ?? donneesFormulaire[\"livraison-prenom\"] ?? \"\",\n last_name: donneesFormulaire[\"facturation-nom\"] ?? donneesFormulaire[\"livraison-nom\"] ?? \"\",\n phone: donneesFormulaire[\"facturation-telephone\"] ?? donneesFormulaire[\"livraison-telephone\"] ?? \"\",\n postcode: donneesFormulaire[\"facturation-code-postal\"] ?? donneesFormulaire[\"livraison-code-postal\"] ?? \"\",\n state: donneesFormulaire[\"facturation-region-etat\"] ?? donneesFormulaire[\"livraison-region-etat\"] ?? \"\",\n },\n currency: methodeLivraison.currency_code,\n line_items: articlesPanier,\n shipping: {\n address_1: donneesFormulaire[\"livraison-adresse\"] ?? \"\",\n address_2: \"\",\n city: donneesFormulaire[\"livraison-ville\"] ?? \"\",\n company: \"\",\n country: \"FR\",\n first_name: donneesFormulaire[\"livraison-prenom\"] ?? \"\",\n last_name: donneesFormulaire[\"livraison-nom\"] ?? \"\",\n phone: donneesFormulaire[\"livraison-telephone\"] ?? \"\",\n postcode: donneesFormulaire[\"livraison-code-postal\"] ?? \"\",\n state: donneesFormulaire[\"livraison-region-etat\"] ?? \"\",\n },\n shipping_lines: [\n {\n method_id: methodeLivraison.method_id,\n method_title: methodeLivraison.name,\n total: methodeLivraison.price,\n },\n ],\n };\n\n eitherParse(argumentsFormulaire, WCV3OrdersArgsSchema)\n .map(async (args: WCV3OrdersArgs) => {\n await postBackend({\n authString: ETATS_PAGE.authString,\n corps: JSON.stringify(args),\n nonce: ETATS_PAGE.nonce,\n route: ROUTE_API_NOUVELLE_COMMANDES,\n }).then(async (reponse: Response) => {\n if (estReponse500(reponse)) leveServerError(\"500 Server Error\");\n\n pipe(\n // Récupère la Réponse\n await reponse.json(),\n // Traite tous les codes HTTP possibles\n (corpsReponse: unknown) => {\n console.debug(corpsReponse);\n return eitherParse(corpsReponse, WCV3OrderSchema);\n },\n reponse =>\n reponse.ifRight(r => {\n const url = new URL(`https://${window.location.host}/checkout`);\n url.searchParams.append(\"order_key\", r.order_key);\n url.searchParams.append(\"order_id\", String(r.id));\n window.location = url;\n }),\n reponse => reponse.ifLeft(a => console.error(a.issues)),\n );\n });\n })\n .ifLeft(a => console.error(a.issues));\n });\n });\n};\n\ndocument.addEventListener(\"DOMContentLoaded\", (): void => {\n initialiseMajEntreesPanier();\n initialiseMajConteneurPanier();\n initialiseMajContenuPanier();\n initialiseMajFormulairesPanier();\n initialiseBoutonActions();\n});\n"],"names":["F","D","match","reponse"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"scripts-page-panier.js","sources":["../../src/scripts/scripts-page-panier.ts"],"sourcesContent":["import { D, F, pipe } from \"@mobily/ts-belt\";\nimport { Either, Maybe } from \"purify-ts\";\nimport { match } from \"ts-pattern\";\nimport { parse, ValiError } from \"valibot\";\n\nimport type { MessageMajContenuPanierSchema } from \"./lib/schemas/messages.ts\";\nimport type { WCStoreCart, WCStoreCartItem, WCStoreShippingRateShippingRate } from \"./lib/types/api/cart\";\nimport type { WCStoreCartRemoveItemArgs } from \"./lib/types/api/cart-remove-item\";\nimport type { WCStoreCartUpdateCustomerArgs } from \"./lib/types/api/cart-update-customer\";\nimport type { WCStoreCartUpdateItemArgs } from \"./lib/types/api/cart-update-item\";\nimport type { WCV3Order, WCV3OrdersArgs } from \"./lib/types/api/v3/orders.ts\";\nimport type { MessageMajBoutonPanierDonnees, MessageMajContenuPanierDonnees } from \"./lib/types/messages\";\n\nimport {\n ROUTE_API_MAJ_ARTICLE_PANIER,\n ROUTE_API_MAJ_CLIENT,\n ROUTE_API_NOUVELLE_COMMANDES,\n ROUTE_API_RETIRE_ARTICLE_PANIER,\n} from \"./constantes/api.ts\";\nimport {\n ATTRIBUT_CLE_PANIER,\n ATTRIBUT_CONTIENT_ARTICLES,\n ATTRIBUT_DESACTIVE,\n ATTRIBUT_HIDDEN,\n SELECTEUR_BOUTON_ACTIONS_FORMULAIRE,\n SELECTEUR_BOUTON_ADDITION_QUANTITE,\n SELECTEUR_BOUTON_SEPARATION_ADRESSES,\n SELECTEUR_BOUTON_SOUSTRACTION_QUANTITE,\n SELECTEUR_BOUTON_SUPPRESSION_PANIER,\n SELECTEUR_CHAMP_QUANTITE_LIGNE_PANIER,\n SELECTEUR_CONTENEUR_PANIER,\n SELECTEUR_ENTREES_PANIER,\n SELECTEUR_FORMULAIRE_FACTURATION,\n SELECTEUR_FORMULAIRE_PANIER,\n SELECTEUR_INSTRUCTIONS_CLIENT,\n SELECTEUR_PRIX_LIGNE_PANIER,\n SELECTEUR_SOUS_TOTAL_LIVRAISON_COUT,\n SELECTEUR_SOUS_TOTAL_LIVRAISON_PRESTATAIRE,\n SELECTEUR_SOUS_TOTAL_PRODUITS,\n SELECTEUR_TOTAL_PANIER,\n} from \"./constantes/dom.ts\";\nimport { NOM_CANAL_BOUTON_PANIER, NOM_CANAL_CONTENU_PANIER } from \"./constantes/messages.ts\";\nimport {\n eitherJsonParse,\n eitherSessionStorageGet,\n recupereElementAvecSelecteur,\n recupereElementOuLeve,\n recupereElementsAvecSelecteur,\n} from \"./lib/dom.ts\";\nimport { type CleNonTrouveError, leveErreur, leveServerError, reporteErreur } from \"./lib/erreurs.ts\";\nimport { estError, estReponse500 } from \"./lib/gardes.ts\";\nimport {\n emetMessageMajBoutonPanier,\n emetMessageMajContenuPanier,\n valideMessageMajBoutonPanier,\n valideMessageMajContenuPanier,\n} from \"./lib/messages.ts\";\nimport { postBackend, traiteReponseBackendWCSelonCodesHTTP } from \"./lib/reseau.ts\";\nimport { WCStoreCartRemoveItemArgsSchema } from \"./lib/schemas/api/cart-remove-item.ts\";\nimport { WCStoreCartUpdateCustomerArgsSchema } from \"./lib/schemas/api/cart-update-customer.ts\";\nimport { WCStoreCartUpdateItemArgsSchema } from \"./lib/schemas/api/cart-update-item.ts\";\nimport { WCStoreCartSchema } from \"./lib/schemas/api/cart.ts\";\nimport { WCStoreShippingRateShippingRateSchema } from \"./lib/schemas/api/couts-livraison.ts\";\nimport { WCV3OrdersArgsSchema, WCV3OrderSchema } from \"./lib/schemas/api/v3/orders.ts\";\nimport {\n propEither,\n recupereElementDansDocumentOuLeve,\n recupereElementDocumentEither,\n recupereElementsDocumentEither,\n} from \"./lib/utils.ts\";\nimport { eitherParse } from \"./lib/validation.ts\";\n\n/** États utiles pour les scripts de la page. */\ntype EtatsPage = {\n authString: string;\n /** Un nonce pour l'authentification de requêtes API vers le backend WooCommerce. */\n nonce: string;\n};\n\ntype ElementsEntreePanier = {\n boutonAddition: HTMLButtonElement;\n boutonSoustraction: HTMLButtonElement;\n boutonSuppression: HTMLButtonElement;\n champQuantite?: HTMLInputElement;\n};\n\n// @ts-expect-error -- États injectés par le modèle PHP\n// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- États injectés par le modèle PHP\nconst ETATS_PAGE: EtatsPage = _etats;\n\n// Éléments d'intérêt\nconst ENTREES_PANIER_EITHER: Either> = recupereElementsDocumentEither(\n SELECTEUR_ENTREES_PANIER,\n);\nconst CONTENEUR_PANIER: HTMLElement = pipe(\n recupereElementDocumentEither(SELECTEUR_CONTENEUR_PANIER),\n recupereElementOuLeve,\n);\nconst SOUS_TOTAL_PRODUITS: HTMLElement = pipe(\n recupereElementDocumentEither(SELECTEUR_SOUS_TOTAL_PRODUITS),\n recupereElementOuLeve,\n);\nconst SOUS_TOTAL_LIVRAISON_COUT: HTMLElement = pipe(\n recupereElementDocumentEither(SELECTEUR_SOUS_TOTAL_LIVRAISON_COUT),\n recupereElementOuLeve,\n);\nconst SOUS_TOTAL_LIVRAISON_PRESTATAIRE: HTMLSpanElement = pipe(\n recupereElementDocumentEither(SELECTEUR_SOUS_TOTAL_LIVRAISON_PRESTATAIRE),\n recupereElementOuLeve,\n);\nconst INSTRUCTIONS_CLIENT: HTMLTextAreaElement = recupereElementDansDocumentOuLeve(\n SELECTEUR_INSTRUCTIONS_CLIENT,\n);\nconst TOTAL_PANIER: HTMLParagraphElement = pipe(\n recupereElementDocumentEither(SELECTEUR_TOTAL_PANIER),\n recupereElementOuLeve,\n);\nconst BOUTON_SEPARATION_ADRESSES: HTMLInputElement = pipe(\n recupereElementDocumentEither(SELECTEUR_BOUTON_SEPARATION_ADRESSES),\n recupereElementOuLeve,\n);\nconst FORMULAIRE_PANIER: HTMLFormElement = pipe(\n recupereElementDocumentEither(SELECTEUR_FORMULAIRE_PANIER),\n recupereElementOuLeve,\n);\n// const FORMULAIRE_LIVRAISON: HTMLDivElement = pipe(\n// recupereElementDocumentEither(SELECTEUR_FORMULAIRE_LIVRAISON),\n// recupereElementOuLeve,\n// );\nconst FORMULAIRE_FACTURATION: HTMLDivElement = pipe(\n recupereElementDocumentEither(SELECTEUR_FORMULAIRE_FACTURATION),\n recupereElementOuLeve,\n);\nlet BOUTON_ACTIONS_FORMULAIRE: HTMLButtonElement = pipe(\n recupereElementDocumentEither(SELECTEUR_BOUTON_ACTIONS_FORMULAIRE),\n recupereElementOuLeve,\n);\n\n/**\n * Fonction utilitaire pour récupérer un Élément dans une ligne (entrée) du Panier, en levant une\n * Erreur s'il n'existe pas.\n *\n * @param entree L'entrée du Panier sous forme d'Élément dans le DOM.\n * @returns L'Élément demandé.\n * @throws Une SyntaxError si l'Élément n'est pas trouvé.\n */\nconst recupereElementDansEntreePanierOuLeve =\n (entree: HTMLElement) => (selecteur: string) =>\n pipe(recupereElementAvecSelecteur(entree)(selecteur), recupereElementOuLeve);\n\nconst desactiveBoutonsEntreesPanier = (entrees: Array): void =>\n entrees.forEach((entree: HTMLElement) => {\n // Fonction utilitaire\n const recupereElementDansEntree = recupereElementDansEntreePanierOuLeve(entree);\n\n const elements: ElementsEntreePanier = {\n boutonAddition: recupereElementDansEntree(SELECTEUR_BOUTON_ADDITION_QUANTITE),\n boutonSoustraction: recupereElementDansEntree(SELECTEUR_BOUTON_SOUSTRACTION_QUANTITE),\n boutonSuppression: recupereElementDansEntree(SELECTEUR_BOUTON_SUPPRESSION_PANIER),\n };\n\n elements.boutonSoustraction.setAttribute(ATTRIBUT_DESACTIVE, \"\");\n elements.boutonAddition.setAttribute(ATTRIBUT_DESACTIVE, \"\");\n elements.boutonSuppression.setAttribute(ATTRIBUT_DESACTIVE, \"\");\n elements.boutonSuppression.textContent = \"C= C= C= C= C=┌(;・ω・)┘\";\n });\n\nconst majEtatsActivationBoutons = (entrees: Array): void =>\n entrees.forEach((entree: HTMLElement) => {\n // Fonction utilitaire\n const recupereElementDansEntree = recupereElementDansEntreePanierOuLeve(entree);\n\n const elements: ElementsEntreePanier = {\n boutonAddition: recupereElementDansEntree(SELECTEUR_BOUTON_ADDITION_QUANTITE),\n boutonSoustraction: recupereElementDansEntree(SELECTEUR_BOUTON_SOUSTRACTION_QUANTITE),\n boutonSuppression: recupereElementDansEntree(SELECTEUR_BOUTON_SUPPRESSION_PANIER),\n champQuantite: recupereElementDansEntree(SELECTEUR_CHAMP_QUANTITE_LIGNE_PANIER),\n };\n\n Number(elements.champQuantite?.value) === 1\n ? elements.boutonSoustraction.setAttribute(ATTRIBUT_DESACTIVE, \"\")\n : elements.boutonSoustraction.removeAttribute(ATTRIBUT_DESACTIVE);\n elements.boutonAddition.removeAttribute(ATTRIBUT_DESACTIVE);\n elements.boutonSuppression.removeAttribute(ATTRIBUT_DESACTIVE);\n elements.boutonSuppression.textContent = \"Remove\";\n });\n\nconst initialiseMajEntreesPanier = (): void => {\n ENTREES_PANIER_EITHER.ifRight((entrees: Array) => {\n entrees.forEach((entree: HTMLElement) => {\n const recupereElementDansEntree = recupereElementDansEntreePanierOuLeve(entree);\n\n // Retire l'entrée du DOM si la clé Panier n'existe pas et arrête précocement\n const clePanier: string = Maybe.fromNullable(entree.getAttribute(ATTRIBUT_CLE_PANIER))\n .ifNothing(() => {\n entree.remove();\n return;\n })\n .orDefault(\"CLE_PANIER_INEXISTANTE\");\n\n // Récupère les attributs et éléments utilisés dans le script\n const boutonSoustraction = recupereElementDansEntree(SELECTEUR_BOUTON_SOUSTRACTION_QUANTITE);\n const champQuantite = recupereElementDansEntree(SELECTEUR_CHAMP_QUANTITE_LIGNE_PANIER);\n const boutonAddition = recupereElementDansEntree(SELECTEUR_BOUTON_ADDITION_QUANTITE);\n const boutonSuppression = recupereElementDansEntree(SELECTEUR_BOUTON_SUPPRESSION_PANIER);\n\n // Supprime la ligne du Panier au clic sur le bouton de suppression\n boutonSuppression.addEventListener(\"click\", (): void => {\n Either\n // Valide un corps de requête\n .encase, WCStoreCartRemoveItemArgs>(() =>\n parse(WCStoreCartRemoveItemArgsSchema, { key: clePanier })\n )\n .map(async (args: WCStoreCartRemoveItemArgs) => {\n // Modifie des éléments du DOM pour signaler la requête et empêcher des doubles exécutions\n desactiveBoutonsEntreesPanier(entrees);\n\n // Réalise la requête auprès du backend\n await postBackend({\n corps: JSON.stringify(args),\n nonce: ETATS_PAGE.nonce,\n route: ROUTE_API_RETIRE_ARTICLE_PANIER,\n })\n .then(async (reponse: Response) => {\n // Traite le cas d'erreur 500\n if (estReponse500(reponse)) leveServerError(\"500 Server Error\");\n\n pipe(\n // Récupère la Réponse\n await reponse.json(),\n // Traite tous les codes HTTPs possibles\n (corpsReponse: unknown) =>\n traiteReponseBackendWCSelonCodesHTTP(\n corpsReponse,\n WCStoreCartSchema,\n ),\n // Émets des Messages via BroadcastChannels pour la mise à jour de la page\n F.tap((panier: WCStoreCart) => {\n // Émet un Message avec le nouveau nombre de Produits dans le Panier\n emetMessageMajBoutonPanier({ quantiteProduits: panier.items_count });\n // Émet un Message avec le nouveau contenu du Panier\n emetMessageMajContenuPanier({\n produits: panier.items,\n sousTotalPanier: Number(panier.totals.total_price) / 100,\n totalPanier: Number(panier.totals.total_items) / 100,\n });\n // Retire l'entrée du Panier du DOM\n entree.remove();\n }),\n );\n })\n .catch((e: unknown) => {\n if (estError(e)) {\n reporteErreur(e);\n } else {\n console.error(\"e n'est pas une Erreur ?!\", e);\n }\n majEtatsActivationBoutons(entrees);\n });\n })\n .ifLeft((erreur: ValiError) => reporteErreur(erreur));\n });\n\n // Retire une unité à une ligne du Panier au clic sur le bouton de soustraction\n boutonSoustraction.addEventListener(\"click\", (evenement: Event): void => {\n Maybe.fromNullable(champQuantite.valueAsNumber)\n .filter(valeur => valeur > 1)\n .ifJust(valeur => {\n Either\n // Valide les arguments de la requête\n .encase(() =>\n parse(WCStoreCartUpdateItemArgsSchema, { key: clePanier, quantity: valeur - 1 })\n )\n .map(async (args: WCStoreCartUpdateItemArgs) => {\n // Modifie des éléments du DOM pour signaler la requête et empêcher des doubles exécutions\n desactiveBoutonsEntreesPanier(entrees);\n\n // Réalise la requête\n await postBackend({\n corps: JSON.stringify(args),\n nonce: ETATS_PAGE.nonce,\n route: ROUTE_API_MAJ_ARTICLE_PANIER,\n })\n .then(async (reponse: Response) => {\n // Traite le cas d'erreur 500\n if (estReponse500(reponse)) leveServerError(\"500 Server Error\");\n\n pipe(\n // Récupère la Réponse\n await reponse.json(),\n // Traite tous les codes HTTPs possibles\n (corpsReponse: unknown) =>\n traiteReponseBackendWCSelonCodesHTTP(\n corpsReponse,\n WCStoreCartSchema,\n ),\n F.tap((panier: WCStoreCart) => {\n // Émet un Message avec le nouveau nombre de Produits dans le Panier\n emetMessageMajBoutonPanier({ quantiteProduits: panier.items_count });\n // Émet un Message avec le nouveau contenu du Panier\n emetMessageMajContenuPanier({\n produits: panier.items,\n sousTotalPanier: Number(panier.totals.total_price) / 100,\n totalPanier: Number(panier.totals.total_items) / 100,\n });\n }),\n );\n })\n .catch((e: unknown) => {\n if (estError(e)) {\n reporteErreur(e);\n } else {\n console.error(\"e n'est pas une Erreur ?!\", e);\n }\n\n majEtatsActivationBoutons(entrees);\n });\n });\n });\n });\n\n // Ajoute une unité à une ligne du Panier au clic sur le bouton d'addition\n boutonAddition.addEventListener(\"click\", (): void => {\n Maybe.fromNullable(champQuantite.valueAsNumber).ifJust(valeur => {\n // Modifie des éléments du DOM pour signaler la requête et empêcher des doubles exécutions\n desactiveBoutonsEntreesPanier(entrees);\n\n Either\n // Valide les arguments de la requête\n .encase(() =>\n parse(WCStoreCartUpdateItemArgsSchema, { key: clePanier, quantity: valeur + 1 })\n )\n .map(async (args: WCStoreCartUpdateItemArgs) => {\n // Réalise la requête\n await postBackend({\n corps: JSON.stringify(args),\n nonce: ETATS_PAGE.nonce,\n route: ROUTE_API_MAJ_ARTICLE_PANIER,\n })\n .then(async (reponse: Response) => {\n // Traite le cas d'erreur 500\n if (estReponse500(reponse)) leveServerError(\"500 Server Error\");\n\n pipe(\n // Récupère la Réponse\n await reponse.json(),\n // Traite tous les codes HTTPs possibles\n (corpsReponse: unknown) =>\n traiteReponseBackendWCSelonCodesHTTP(\n corpsReponse,\n WCStoreCartSchema,\n ),\n F.tap((panier: WCStoreCart) => {\n // Émet un Message avec le nouveau nombre de Produits dans le Panier\n emetMessageMajBoutonPanier({ quantiteProduits: panier.items_count });\n // Émet un Message avec le nouveau contenu du Panier\n emetMessageMajContenuPanier({\n produits: panier.items,\n sousTotalPanier: Number(panier.totals.total_price) / 100,\n totalPanier: Number(panier.totals.total_items) / 100,\n });\n }),\n );\n })\n .catch((e: unknown) => {\n if (estError(e)) {\n reporteErreur(e);\n } else {\n console.error(\"e n'est pas une Erreur ?!\", e);\n }\n\n majEtatsActivationBoutons(entrees);\n });\n });\n });\n });\n });\n });\n};\n\nconst initialiseMajConteneurPanier = (): void => {\n new BroadcastChannel(NOM_CANAL_BOUTON_PANIER).onmessage = (evenementMessage: MessageEvent): void => {\n valideMessageMajBoutonPanier(evenementMessage)\n .map(D.getUnsafe(\"donnees\"))\n // Met à jour l'Attribut de présence de Produits dans le Panier\n .ifRight((donnees: MessageMajBoutonPanierDonnees) => {\n CONTENEUR_PANIER.setAttribute(ATTRIBUT_CONTIENT_ARTICLES, String(donnees.quantiteProduits !== 0));\n });\n };\n};\n\nconst initialiseMajContenuPanier = (): void => {\n new BroadcastChannel(NOM_CANAL_CONTENU_PANIER).onmessage = (message: MessageEvent): void => {\n valideMessageMajContenuPanier(message)\n // Récupère les données sous forme d'Either\n .chain(propEither(\"donnees\"))\n // Met à jour le contenu du Panier si des données sont présentes\n .ifRight((donnees: MessageMajContenuPanierDonnees) => {\n donnees.produits.forEach((ligne: WCStoreCartItem) => {\n // Met à jour les entrées du Panier\n ENTREES_PANIER_EITHER.ifRight((entrees: Array) => {\n Maybe.fromNullable(entrees.find(entree => entree.getAttribute(ATTRIBUT_CLE_PANIER) === ligne.key)).ifJust(\n (entree: HTMLElement) => {\n // Fonction utilitaire\n const recupereElementDansEntree = recupereElementDansEntreePanierOuLeve(entree);\n\n // Récupère les Éléments à mettre à jour\n const prixLigne = recupereElementDansEntree(SELECTEUR_PRIX_LIGNE_PANIER);\n const champQuantite = recupereElementDansEntree(\n SELECTEUR_CHAMP_QUANTITE_LIGNE_PANIER,\n );\n\n // Met à jour les valeurs\n entree.setAttribute(\"data-quantite\", String(ligne.quantity));\n prixLigne.textContent = `${String(Number(ligne.totals.line_total) / 100)}€`;\n champQuantite.setAttribute(\"value\", String(ligne.quantity));\n\n // Réactive les Boutons\n majEtatsActivationBoutons(entrees);\n },\n );\n\n // Met à jour les totaux du Panier\n SOUS_TOTAL_PRODUITS.textContent = `${String(donnees.totalPanier)}€`;\n TOTAL_PANIER.textContent = `${String(donnees.totalPanier)}€`;\n });\n });\n })\n // Reporte tout Erreur et réactive les Boutons\n .ifLeft((erreur: CleNonTrouveError | ValiError) => {\n reporteErreur(erreur);\n ENTREES_PANIER_EITHER.ifRight(entrees => majEtatsActivationBoutons(entrees));\n });\n };\n};\n\nconst initialiseMajFormulairesPanier = (): void => {\n BOUTON_SEPARATION_ADRESSES.addEventListener(\"click\", () => {\n Maybe.fromFalsy(BOUTON_SEPARATION_ADRESSES.checked)\n .ifJust((): void => {\n // Rend visible le formulaire de facturation\n FORMULAIRE_FACTURATION.removeAttribute(ATTRIBUT_HIDDEN);\n recupereElementsAvecSelecteur(FORMULAIRE_FACTURATION)(\"input, select\").ifRight(champs =>\n champs.forEach(champ => champ.removeAttribute(ATTRIBUT_DESACTIVE))\n );\n })\n .ifNothing((): void => {\n FORMULAIRE_FACTURATION.setAttribute(ATTRIBUT_HIDDEN, \"\");\n recupereElementsAvecSelecteur(FORMULAIRE_FACTURATION)(\n \"input, select\",\n ).ifRight(champs =>\n champs.forEach(champ => {\n champ.setAttribute(ATTRIBUT_DESACTIVE, \"\");\n champ.value = \"\";\n })\n );\n });\n });\n};\n\nconst initialiseBoutonActions = (): void => {\n // Déclenche une requête\n BOUTON_ACTIONS_FORMULAIRE.addEventListener(\"click\", evenement => {\n Maybe\n // Ne fais rien si le Formulaire n'est pas valide\n .fromFalsy(FORMULAIRE_PANIER.checkValidity())\n .ifJust(() => {\n evenement.preventDefault();\n FORMULAIRE_PANIER.removeAttribute(ATTRIBUT_HIDDEN);\n BOUTON_ACTIONS_FORMULAIRE.textContent = \"Check-out\";\n })\n .ifJust(() => {\n // Récupère les données du Formulaire\n // @ts-expect-error -- Problème de typage de la librairie DOM\n const donneesFormulaire: Record = pipe(\n new FormData(FORMULAIRE_PANIER),\n formData => formData.entries(),\n entrees => Array.from(entrees),\n tuple => D.fromPairs(tuple),\n );\n\n // Transforme les données brutes en arguments de requête auprès du backend\n const argumentsFormulaire: WCStoreCartUpdateCustomerArgs = {\n billing_address: {\n address_1: donneesFormulaire[\"facturation-adresse\"] ?? donneesFormulaire[\"livraison-adresse\"] ?? \"\",\n address_2: \"\",\n city: donneesFormulaire[\"facturation-ville\"] ?? donneesFormulaire[\"livraison-ville\"] ?? \"\",\n company: \"\",\n country: \"FR\",\n email: donneesFormulaire[\"facturation-email\"] ?? donneesFormulaire[\"livraison-email\"] ?? \"\",\n first_name: donneesFormulaire[\"facturation-prenom\"] ?? donneesFormulaire[\"livraison-prenom\"] ?? \"\",\n last_name: donneesFormulaire[\"facturation-nom\"] ?? donneesFormulaire[\"livraison-nom\"] ?? \"\",\n phone: donneesFormulaire[\"facturation-telephone\"] ?? donneesFormulaire[\"livraison-telephone\"] ?? \"\",\n postcode: donneesFormulaire[\"facturation-code-postal\"] ?? donneesFormulaire[\"livraison-code-postal\"] ?? \"\",\n state: donneesFormulaire[\"facturation-region-etat\"] ?? donneesFormulaire[\"livraison-region-etat\"] ?? \"\",\n },\n shipping_address: {\n address_1: donneesFormulaire[\"livraison-adresse\"] ?? \"\",\n address_2: \"\",\n city: donneesFormulaire[\"livraison-ville\"] ?? \"\",\n company: \"\",\n country: \"FR\",\n first_name: donneesFormulaire[\"livraison-prenom\"] ?? \"\",\n last_name: donneesFormulaire[\"livraison-nom\"] ?? \"\",\n phone: donneesFormulaire[\"livraison-telephone\"] ?? \"\",\n postcode: donneesFormulaire[\"livraison-code-postal\"] ?? \"\",\n state: donneesFormulaire[\"livraison-region-etat\"] ?? \"\",\n },\n };\n\n // Réalise la requête et traite sa réponse\n Either\n // Valide les arguments de la requête\n .encase, WCStoreCartUpdateCustomerArgs>(() =>\n parse(WCStoreCartUpdateCustomerArgsSchema, argumentsFormulaire)\n )\n .map(async (args: WCStoreCartUpdateCustomerArgs) => {\n await postBackend({\n corps: JSON.stringify(args),\n nonce: ETATS_PAGE.nonce,\n route: ROUTE_API_MAJ_CLIENT,\n }).then(async (reponse: Response) => {\n // Traite le cas d'erreur 500\n if (estReponse500(reponse)) leveServerError(\"500 Server Error\");\n\n pipe(\n // Récupère la Réponse\n await reponse.json(),\n // Traite tous les codes HTTPs possibles\n (corpsReponse: unknown) =>\n traiteReponseBackendWCSelonCodesHTTP(\n corpsReponse,\n WCStoreCartSchema,\n ),\n F.tap((donnees: WCStoreCart) => {\n // Récupère et adapte les informations de Livraison\n const sousTotalLivraison = donnees.totals.total_shipping === \"0\"\n ? \"Free\"\n : `${String(donnees.totals.total_shipping)} €`;\n const sousTotalPrestataire = match(donnees.shipping_rates[0]?.shipping_rates[0]?.name)\n .with(\"Mondial Relay - Livraison Point Relais (Gratuit)\", () => \"Mondial Relay - Pickup Point\")\n .with(\"Free shipping\", () => \"Free Shipping\")\n .otherwise(() => \"\");\n\n // Met à jour les informations de Livraison affichés à l'Utilisateur\n SOUS_TOTAL_LIVRAISON_COUT.textContent = sousTotalLivraison;\n SOUS_TOTAL_LIVRAISON_PRESTATAIRE.textContent = sousTotalPrestataire;\n\n // Sauvegarde la Méthode de Livraison dans le Stockage de Session\n sessionStorage.setItem(\n \"shipping_rates\",\n JSON.stringify(donnees.shipping_rates[0]?.shipping_rates[0] ?? \"\"),\n );\n }),\n );\n\n // Active le Bouton pour la création de la Commande\n initialiseBoutonCreationCommande();\n });\n })\n .ifLeft(a => console.error(a.issues));\n });\n });\n};\n\nconst initialiseBoutonCreationCommande = (): void => {\n // Permet de supprimer tout Écouteur d'Évènement assigné au Bouton\n BOUTON_ACTIONS_FORMULAIRE.outerHTML = BOUTON_ACTIONS_FORMULAIRE.outerHTML;\n // Réassigne le Bouton\n BOUTON_ACTIONS_FORMULAIRE = recupereElementDansDocumentOuLeve(SELECTEUR_BOUTON_ACTIONS_FORMULAIRE);\n // Créé la Commande au clic sur le Bouton\n BOUTON_ACTIONS_FORMULAIRE.addEventListener(\"click\", (evenement: Event) => {\n Maybe\n // Ne fais rien si le Formulaire n'est pas valide\n .fromFalsy(FORMULAIRE_PANIER.checkValidity())\n // Active l'état de chargement\n .ifJust(() => {\n evenement.preventDefault();\n BOUTON_ACTIONS_FORMULAIRE.textContent = \"Submitting...\";\n })\n .ifJust(() => {\n // Récupère les données du Formulaire sous forme d'Objet\n const donneesFormulaire = Object.fromEntries(new FormData(FORMULAIRE_PANIER)) as Record;\n\n const methodeLivraison: WCStoreShippingRateShippingRate = eitherSessionStorageGet(\"shipping_rates\")\n // Récupère la méthode de livraison depuis le stockage de session sous forme d'objet\n .chain(eitherJsonParse)\n // Vérifie la forme de l'objet récupéré\n .chain((json: JSONValue) =>\n eitherParse(\n json,\n WCStoreShippingRateShippingRateSchema,\n )\n )\n .ifLeft(e => {\n if (e instanceof ValiError) console.error(e.issues);\n console.error(\"methodeLivraison\", e);\n BOUTON_ACTIONS_FORMULAIRE.textContent = \"Check-out\";\n leveErreur(e);\n })\n .unsafeCoerce();\n\n const articlesPanier = ENTREES_PANIER_EITHER\n .orDefault([])\n .map((entree: HTMLElement) => ({\n product_id: Number(entree.getAttribute(\"data-id-produit\")),\n quantity: Number(entree.getAttribute(\"data-quantite\")),\n ...(entree.getAttribute(\"data-id-variation\") && {\n variation_id: Number(entree.getAttribute(\"data-id-variation\")),\n }),\n }));\n\n const argumentsFormulaire: WCV3OrdersArgs = {\n billing: {\n address_1: donneesFormulaire[\"facturation-adresse\"] ?? donneesFormulaire[\"livraison-adresse\"] ?? \"\",\n address_2: \"\",\n city: donneesFormulaire[\"facturation-ville\"] ?? donneesFormulaire[\"livraison-ville\"] ?? \"\",\n company: \"\",\n country: \"FR\",\n email: donneesFormulaire[\"facturation-email\"] ?? donneesFormulaire[\"livraison-email\"] ?? \"\",\n first_name: donneesFormulaire[\"facturation-prenom\"] ?? donneesFormulaire[\"livraison-prenom\"] ?? \"\",\n last_name: donneesFormulaire[\"facturation-nom\"] ?? donneesFormulaire[\"livraison-nom\"] ?? \"\",\n phone: donneesFormulaire[\"facturation-telephone\"] ?? donneesFormulaire[\"livraison-telephone\"] ?? \"\",\n postcode: donneesFormulaire[\"facturation-code-postal\"] ?? donneesFormulaire[\"livraison-code-postal\"] ?? \"\",\n state: donneesFormulaire[\"facturation-region-etat\"] ?? donneesFormulaire[\"livraison-region-etat\"] ?? \"\",\n },\n customer_note: INSTRUCTIONS_CLIENT.value,\n currency: methodeLivraison.currency_code,\n line_items: articlesPanier,\n shipping: {\n address_1: donneesFormulaire[\"livraison-adresse\"] ?? \"\",\n address_2: \"\",\n city: donneesFormulaire[\"livraison-ville\"] ?? \"\",\n company: \"\",\n country: \"FR\",\n first_name: donneesFormulaire[\"livraison-prenom\"] ?? \"\",\n last_name: donneesFormulaire[\"livraison-nom\"] ?? \"\",\n phone: donneesFormulaire[\"livraison-telephone\"] ?? \"\",\n postcode: donneesFormulaire[\"livraison-code-postal\"] ?? \"\",\n state: donneesFormulaire[\"livraison-region-etat\"] ?? \"\",\n },\n shipping_lines: [\n {\n method_id: methodeLivraison.method_id,\n method_title: methodeLivraison.name,\n total: methodeLivraison.price,\n },\n ],\n };\n\n // Vérifie que la forme de l'objet des arguments est correcte\n eitherParse(argumentsFormulaire, WCV3OrdersArgsSchema)\n .map(async (args: WCV3OrdersArgs) => {\n // Réalise la requête\n await postBackend({\n authString: ETATS_PAGE.authString,\n corps: JSON.stringify(args),\n nonce: ETATS_PAGE.nonce,\n route: ROUTE_API_NOUVELLE_COMMANDES,\n }).then(async (reponse: Response) => {\n if (estReponse500(reponse)) leveServerError(\"500 Server Error\");\n\n pipe(\n // Récupère la Réponse\n await reponse.json(),\n (corpsReponse: unknown) =>\n eitherParse(corpsReponse, WCV3OrderSchema)\n .ifRight((reponse: WCV3Order) => {\n const url = new URL(`https://${window.location.host}/checkout`);\n url.searchParams.append(\"order_key\", reponse.order_key);\n url.searchParams.append(\"order_id\", String(reponse.id));\n location.assign(url);\n })\n .ifLeft(e => console.error(e.issues)),\n );\n });\n })\n .ifLeft(a => console.error(a.issues));\n });\n });\n};\n\ndocument.addEventListener(\"DOMContentLoaded\", (): void => {\n initialiseMajEntreesPanier();\n initialiseMajConteneurPanier();\n initialiseMajContenuPanier();\n initialiseMajFormulairesPanier();\n initialiseBoutonActions();\n});\n"],"names":["F","D","match","reponse"],"mappings":"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"} \ No newline at end of file diff --git a/web/app/themes/haiku-atelier-2024/assets/js/scripts-page-produit.js b/web/app/themes/haiku-atelier-2024/assets/js/scripts-page-produit.js index 8259c82d..fd537439 100644 --- a/web/app/themes/haiku-atelier-2024/assets/js/scripts-page-produit.js +++ b/web/app/themes/haiku-atelier-2024/assets/js/scripts-page-produit.js @@ -1,6 +1,6 @@ import { z } from "./index.CeK6pfoJ.js"; import { e as ROUTE_API_AJOUTE_ARTICLE_PANIER, E as ENTETE_WC_NONCE } from "./api.js"; -import { D as SELECTEUR_BOUTON_AJOUT_PANIER, E as SELECTEUR_SELECTEUR_QUANTITE, F as SELECTEUR_PRIX_PRODUIT, G as SELECTEUR_LIENS_ONGLETS, H as SELECTEUR_SECTIONS_CONTENUS, I as ATTRIBUT_ARIA_SELECTED, k as ATTRIBUT_HIDDEN, B as ATTRIBUT_DESACTIVE, J as ATTRIBUT_PRIX, K as SELECTEUR_CONTENEUR_FLECHES_DEFILEMENT, L as SELECTEUR_FLECHE_DEFILEMENT_GAUCHE, M as SELECTEUR_FLECHE_DEFILEMENT_DROITE, N as SELECTEUR_PHOTOS_PRODUIT, O as SELECTEUR_IMAGE_COLONNE_GAUCHE, P as SELECTEUR_IMAGES_COLONNE_DROITE, Q as ATTRIBUT_INDEX_IMAGE_ACTIVE } from "./dom.js"; +import { E as SELECTEUR_BOUTON_AJOUT_PANIER, F as SELECTEUR_SELECTEUR_QUANTITE, G as SELECTEUR_PRIX_PRODUIT, H as SELECTEUR_LIENS_ONGLETS, I as SELECTEUR_SECTIONS_CONTENUS, J as ATTRIBUT_ARIA_SELECTED, k as ATTRIBUT_HIDDEN, C as ATTRIBUT_DESACTIVE, K as ATTRIBUT_PRIX, L as SELECTEUR_CONTENEUR_FLECHES_DEFILEMENT, M as SELECTEUR_FLECHE_DEFILEMENT_GAUCHE, N as SELECTEUR_FLECHE_DEFILEMENT_DROITE, O as SELECTEUR_PHOTOS_PRODUIT, P as SELECTEUR_IMAGE_COLONNE_GAUCHE, Q as SELECTEUR_IMAGES_COLONNE_DROITE, R as ATTRIBUT_INDEX_IMAGE_ACTIVE } from "./dom.js"; import { r as recupereElementOuLeve, d as recupereElementsOuLeve, R as Ra } from "./dom2.js"; import { l as leveServerError, r as reporteErreur } from "./erreurs.js"; import { b as estHTMLSelectElement, e as estReponse500, a as estError } from "./gardes.js"; @@ -14,7 +14,7 @@ import { p as pipe } from "./pipe.XPB0wEfw.js"; import { l } from "./index-0eef19ec.CFsloYN6.js"; import { M as Maybe } from "./Either.wHNxn7Os.js"; import "./exports.DT-46nyp.js"; -import "./index.vOxCZRxB.js"; +import "./index.CXGAS3st.js"; import "./messages3.js"; import "./messages2.js"; import "./erreurs2.js"; diff --git a/web/app/themes/haiku-atelier-2024/assets/js/validation.js b/web/app/themes/haiku-atelier-2024/assets/js/validation.js index cc8b68cb..e7218a90 100644 --- a/web/app/themes/haiku-atelier-2024/assets/js/validation.js +++ b/web/app/themes/haiku-atelier-2024/assets/js/validation.js @@ -1,4 +1,4 @@ -import { p as parse } from "./index.vOxCZRxB.js"; +import { p as parse } from "./index.CXGAS3st.js"; import { E as Either } from "./Either.wHNxn7Os.js"; const eitherParse = (valeur, schema) => Either.encase(() => parse(schema, valeur)); export { diff --git a/web/app/themes/haiku-atelier-2024/page-cart.php b/web/app/themes/haiku-atelier-2024/page-cart.php index 82fc5c1b..7b377668 100644 --- a/web/app/themes/haiku-atelier-2024/page-cart.php +++ b/web/app/themes/haiku-atelier-2024/page-cart.php @@ -39,6 +39,10 @@ foreach (WC()->cart->get_cart() as $cle_panier => $article_panier) { ]; } +echo "


";
+print_r($panier);
+echo "
"; + // Récupère les Adresses de l'Utilisateur $email = WC()->customer->get_billing_email(); $adresse_livraison = WC()->customer->get_shipping(); diff --git a/web/app/themes/haiku-atelier-2024/page-checkout.php b/web/app/themes/haiku-atelier-2024/page-checkout.php index 64125a58..824da3f4 100644 --- a/web/app/themes/haiku-atelier-2024/page-checkout.php +++ b/web/app/themes/haiku-atelier-2024/page-checkout.php @@ -48,6 +48,8 @@ $email_client = WC()->session->get("customer")["email"]; /** @var mixed $articles */ $articles = []; +// TODO: Cas des Produits Simples : Pas de Attribute Summary ! + foreach ($panier->get_cart() as $cle_panier => $article_panier) { $titre_produit = $article_panier["data"]?->get_title(); $est_variation = $article_panier["variation_id"] !== null; diff --git a/web/app/themes/haiku-atelier-2024/page-successful-order.php b/web/app/themes/haiku-atelier-2024/page-successful-order.php index 828e3dba..b0c372ec 100644 --- a/web/app/themes/haiku-atelier-2024/page-successful-order.php +++ b/web/app/themes/haiku-atelier-2024/page-successful-order.php @@ -30,22 +30,27 @@ if (!$session_id) { $client_stripe = new StripeClient(Config::get("STRIPE_API_SECRET")); try { - /** @var Session $session La Session Stripe pour la Commande. */ - $session = $client_stripe->checkout->sessions->retrieve($session_id); + /** @var Session $session_stripe La Session Stripe pour la Commande. */ + $session_stripe = $client_stripe->checkout->sessions->retrieve($session_id); /** @var string $order_id L'ID de la Commande WooCommerce passée en métadonnée à la Session. */ - $order_id = $session->metadata["order_id"]; + $order_id = $session_stripe->metadata["order_id"]; + /** @var WC_Order|WC_Order_Refund|bool $commande La Commande WooCommerce liée à la Session Stripe, `false` si inexistante. */ $commande = wc_get_order("$order_id"); + /** @var WC_Cart $panier **/ + $panier = WC()->cart; if ($commande == false) { throw new Error("La commande $order_id n'existe pas."); } - // Passe la Commande en état "Payé" + // Passe la Commande en état "Payé" et réinitialise le Panier if ($commande->get_status() === "pending") { $commande->payment_complete($session_id); - $commande->set_payment_method_title("Stripe - Carte bancaire"); + // $commande->set_payment_method_title("Stripe - Carte bancaire"); $commande->set_transaction_id($session_id); + + $panier->empty_cart(); } // Contexte et modèles @@ -54,32 +59,7 @@ try { // Récupère les données des Produits /** @var mixed $produits Les Produits de la Commande sous forme de tableau contenant uniquement les données affichées nécessaires pour le Page. */ - $produits = pipe( - $commande->get_items(), - fn($a) => Arr::map( - array: $a, - callback: function (WC_Order_Item $produit_commande) { - /** @var string $id_produit L'ID du Produit, différent selon qu'il soit un Produit Simple ou Variable. */ - $id_produit = - $produit_commande["variation_id"] !== null - ? $produit_commande["variation_id"] - : $produit_commande["product_id"]; - /** @var WC_Product|false $produit Les informations du Produit. */ - $produit = wc_get_product($id_produit); - - return [ - "attributs" => recupere_et_formate_attributs_produit($produit->get_attributes()), - "id_produit" => $id_produit, - "image" => pipe($produit->get_image_id(), fn($id) => genere_balise_img_multiformats(id: $id, lazy: true)), - "permalien" => $produit->get_permalink(), - "prix" => $produit_commande->get_data()["total"], - "quantite" => $produit_commande->get_quantity(), - "titre" => $produit->get_title(), - ]; - }, - ), - ); - $produits_l = collect($commande->get_items())->map(function (WC_Order_Item $produit_commande) { + $produits = collect($commande->get_items())->map(function (WC_Order_Item $produit_commande) { /** @var string $id_produit L'ID du Produit. */ $id_produit = $produit_commande["product_id"]; /** @var WC_Product|false $produit Les informations du Produit. */ @@ -98,9 +78,9 @@ try { $contexte["produits"] = $produits; - // echo "
";
-  // print_r($articles_formates);
-  // echo "
"; + echo "
";
+  print_r($produits);
+  echo "
"; // Charge les scripts et styles de la page function charge_scripts_styles_page_succes_commande(): void { diff --git a/web/app/themes/haiku-atelier-2024/src/inc/FonctionnalitesWooCommerce.php b/web/app/themes/haiku-atelier-2024/src/inc/FonctionnalitesWooCommerce.php index d14c7d8b..31eac784 100644 --- a/web/app/themes/haiku-atelier-2024/src/inc/FonctionnalitesWooCommerce.php +++ b/web/app/themes/haiku-atelier-2024/src/inc/FonctionnalitesWooCommerce.php @@ -186,9 +186,17 @@ function genere_prix_maximal_produit_variable_dans_reponse_rest($reponse, $produ } add_filter("woocommerce_rest_prepare_product_object", "genere_prix_maximal_produit_variable_dans_reponse_rest", 10, 2); +/** + * Retire la propagande commerciale de WooCommerce du menu. + */ +function retire_onglet_paiement_admin_woocommerce(): void { + remove_menu_page("admin.php?page=wc-admin&task=woocommerce-payments"); +} + add_action("add_meta_boxes", "desactive_champs_admin_images_produit_woocommerce", 40); +add_action("admin_menu", "retire_onglet_paiement_admin_woocommerce", 999); add_action("after_setup_theme", "desactive_images_produit_woocommerce"); add_action("enqueue_block_assets", "desactive_blocs_gutenberg_woocommerce"); -add_action("wp_enqueue_scripts", "dequeue_woocommerce_styles_scripts"); add_action("init", "desactive_attribution_commande_woocommerce"); add_action("init", "retire_script_galerie"); +add_action("wp_enqueue_scripts", "dequeue_woocommerce_styles_scripts"); diff --git a/web/app/themes/haiku-atelier-2024/src/sass/layouts/_colonnes-photos.scss b/web/app/themes/haiku-atelier-2024/src/sass/layouts/_colonnes-photos.scss index 92596d95..6064c337 100644 --- a/web/app/themes/haiku-atelier-2024/src/sass/layouts/_colonnes-photos.scss +++ b/web/app/themes/haiku-atelier-2024/src/sass/layouts/_colonnes-photos.scss @@ -18,12 +18,12 @@ bottom: calc(var(--position-y-fleches) / 2 - var(--espace-l) / 2); width: 3rem; height: 3rem; + padding: var(--espace-s); visibility: hidden; opacity: 0; border-radius: 100%; mix-blend-mode: difference; shape-rendering: geometricprecision; - padding: var(--espace-s); transition: 0.2s opacity, 0.2s visibility; &:first-of-type { diff --git a/web/app/themes/haiku-atelier-2024/src/sass/layouts/_grille-produits.scss b/web/app/themes/haiku-atelier-2024/src/sass/layouts/_grille-produits.scss index a2374d96..668b8e7b 100644 --- a/web/app/themes/haiku-atelier-2024/src/sass/layouts/_grille-produits.scss +++ b/web/app/themes/haiku-atelier-2024/src/sass/layouts/_grille-produits.scss @@ -23,7 +23,6 @@ grid-auto-rows: 1fr; grid-template-columns: repeat(auto-fit, minmax(var(--carte-produit-longueur-minimale), 1fr)); /* 1 */ - gap: 1px; /* 2 */ min-height: var(--grille-produits-hauteur-minimale); diff --git a/web/app/themes/haiku-atelier-2024/src/sass/layouts/_menu-categories-produits.scss b/web/app/themes/haiku-atelier-2024/src/sass/layouts/_menu-categories-produits.scss index a1a57de5..95d2cae6 100644 --- a/web/app/themes/haiku-atelier-2024/src/sass/layouts/_menu-categories-produits.scss +++ b/web/app/themes/haiku-atelier-2024/src/sass/layouts/_menu-categories-produits.scss @@ -67,7 +67,6 @@ display: grid; grid-template-columns: repeat(auto-fit, minmax(var(--menu-entree-longueur-minimale), 1fr)); /* 1 */ - gap: 1px; place-items: center; diff --git a/web/app/themes/haiku-atelier-2024/src/sass/layouts/_panneau-informations-client.scss b/web/app/themes/haiku-atelier-2024/src/sass/layouts/_panneau-informations-client.scss index ac4ee517..aefd2d27 100644 --- a/web/app/themes/haiku-atelier-2024/src/sass/layouts/_panneau-informations-client.scss +++ b/web/app/themes/haiku-atelier-2024/src/sass/layouts/_panneau-informations-client.scss @@ -77,13 +77,14 @@ align-content: center; width: 100%; padding: 0; + font-size: 0.8rem; + font-weight: 450; + color: grey; text-align: center; p { - font-style: italic; - + p { - margin-top: var(--espace-l); + margin-top: 1lh; } } } diff --git a/web/app/themes/haiku-atelier-2024/src/sass/layouts/_panneau-panier.scss b/web/app/themes/haiku-atelier-2024/src/sass/layouts/_panneau-panier.scss index dda77398..030fffba 100644 --- a/web/app/themes/haiku-atelier-2024/src/sass/layouts/_panneau-panier.scss +++ b/web/app/themes/haiku-atelier-2024/src/sass/layouts/_panneau-panier.scss @@ -20,7 +20,6 @@ // Illustration du Produit &__illustratif { - padding: var(--espace-l); border-right: 1px solid var(--couleur-noir); picture { @@ -30,14 +29,6 @@ img { aspect-ratio: 1; height: auto; - transition: 0.2s scale; - - // Effet de zoom au survol - @media (hover: hover) { - &:hover { - scale: 1.1; - } - } } } } diff --git a/web/app/themes/haiku-atelier-2024/src/sass/pages/page-succes-commande.scss b/web/app/themes/haiku-atelier-2024/src/sass/pages/page-succes-commande.scss index 96deee77..0c5cc2ae 100644 --- a/web/app/themes/haiku-atelier-2024/src/sass/pages/page-succes-commande.scss +++ b/web/app/themes/haiku-atelier-2024/src/sass/pages/page-succes-commande.scss @@ -58,8 +58,8 @@ &__rappel-commande { display: flex; - border-top: 1px solid var(--couleur-noir); flex-flow: column nowrap; + border-top: 1px solid var(--couleur-noir); &__produit { display: grid; @@ -73,7 +73,6 @@ // Illustration du Produit &__illustratif { - padding: var(--espace-l); border-right: 1px solid var(--couleur-noir); picture { @@ -83,14 +82,6 @@ img { aspect-ratio: 1; height: auto; - transition: 0.2s scale; - - // Effet de zoom au survol - @media (hover: hover) { - &:hover { - scale: 1.1; - } - } } } } @@ -109,26 +100,25 @@ flex-flow: row nowrap; column-gap: var(--espace-xl); justify-content: space-between; + margin-bottom: var(--espace-xs); font-size: var(--espace-l); line-height: var(--hauteur-ligne-moitie); - margin-bottom: var(--espace-xs); span { min-width: 4rem; font-weight: 600; - text-align: right; font-style: initial; + text-align: right; } } &__description { margin-bottom: var(--espace-l); - text-transform: lowercase; line-height: var(--hauteur-ligne-moitie); + text-transform: lowercase; } } } - } @media (width <= 50rem) { diff --git a/web/app/themes/haiku-atelier-2024/src/scripts/constantes/dom.ts b/web/app/themes/haiku-atelier-2024/src/scripts/constantes/dom.ts index bc0c3f4d..64057c50 100644 --- a/web/app/themes/haiku-atelier-2024/src/scripts/constantes/dom.ts +++ b/web/app/themes/haiku-atelier-2024/src/scripts/constantes/dom.ts @@ -48,6 +48,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_FACTURATION = "#panneau-informations-client .panneau__formulaires__facturation"; export const SELECTEUR_BOUTON_ACTIONS_FORMULAIRE = "#panneau-informations-client .panneau__pied-de-page button"; +export const SELECTEUR_INSTRUCTIONS_CLIENT = "#panneau-panier #instructions-client"; // Accueil export const SELECTEUR_CONTENEUR_STORYTELLING = ".storytelling"; diff --git a/web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/v3/orders.ts b/web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/v3/orders.ts index a15c1811..2005bce0 100644 --- a/web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/v3/orders.ts +++ b/web/app/themes/haiku-atelier-2024/src/scripts/lib/schemas/api/v3/orders.ts @@ -65,7 +65,7 @@ export const WCV3OrdersShippingLineSchema = v.object({ }); export const WCV3OrdersLineItemImageSchema = v.object({ - id: v.pipe(v.number(), v.integer()), + id: v.union([v.string(), v.pipe(v.number(), v.integer())]), src: v.string(), }); @@ -88,7 +88,7 @@ export const WCV3OrdersLineItemSchema = v.object({ image: v.optional(WCV3OrdersLineItemImageSchema), meta_data: v.optional(v.array(WCV3OrdersLineItemMetaDataSchema)), name: v.optional(v.string()), - parent_name: v.optional(v.string()), + parent_name: v.optional(v.union([v.string(), v.null()])), price: v.optional(v.number()), product_id: v.optional(v.pipe(v.number(), v.integer())), quantity: v.optional(v.pipe(v.number(), v.integer())), diff --git a/web/app/themes/haiku-atelier-2024/src/scripts/lib/types/api/v3/orders.ts b/web/app/themes/haiku-atelier-2024/src/scripts/lib/types/api/v3/orders.ts index 31aa9c53..5bf55a97 100644 --- a/web/app/themes/haiku-atelier-2024/src/scripts/lib/types/api/v3/orders.ts +++ b/web/app/themes/haiku-atelier-2024/src/scripts/lib/types/api/v3/orders.ts @@ -1,5 +1,6 @@ import type { InferOutput } from "valibot"; -import type { WCV3OrdersArgsSchema } from "../../../schemas/api/v3/orders.ts"; +import type { WCV3OrdersArgsSchema, WCV3OrderSchema } from "../../../schemas/api/v3/orders.ts"; +export type WCV3Order = InferOutput; export type WCV3OrdersArgs = InferOutput; diff --git a/web/app/themes/haiku-atelier-2024/src/scripts/scripts-page-panier.ts b/web/app/themes/haiku-atelier-2024/src/scripts/scripts-page-panier.ts index caaa4ab5..652c1a82 100644 --- a/web/app/themes/haiku-atelier-2024/src/scripts/scripts-page-panier.ts +++ b/web/app/themes/haiku-atelier-2024/src/scripts/scripts-page-panier.ts @@ -8,7 +8,7 @@ import type { WCStoreCart, WCStoreCartItem, WCStoreShippingRateShippingRate } fr import type { WCStoreCartRemoveItemArgs } from "./lib/types/api/cart-remove-item"; import type { WCStoreCartUpdateCustomerArgs } from "./lib/types/api/cart-update-customer"; import type { WCStoreCartUpdateItemArgs } from "./lib/types/api/cart-update-item"; -import type { WCV3OrdersArgs } from "./lib/types/api/v3/orders.ts"; +import type { WCV3Order, WCV3OrdersArgs } from "./lib/types/api/v3/orders.ts"; import type { MessageMajBoutonPanierDonnees, MessageMajContenuPanierDonnees } from "./lib/types/messages"; import { @@ -32,6 +32,7 @@ import { SELECTEUR_ENTREES_PANIER, SELECTEUR_FORMULAIRE_FACTURATION, SELECTEUR_FORMULAIRE_PANIER, + SELECTEUR_INSTRUCTIONS_CLIENT, SELECTEUR_PRIX_LIGNE_PANIER, SELECTEUR_SOUS_TOTAL_LIVRAISON_COUT, SELECTEUR_SOUS_TOTAL_LIVRAISON_PRESTATAIRE, @@ -55,10 +56,10 @@ import { valideMessageMajContenuPanier, } from "./lib/messages.ts"; import { postBackend, traiteReponseBackendWCSelonCodesHTTP } from "./lib/reseau.ts"; -import { WCStoreCartSchema } from "./lib/schemas/api/cart.ts"; import { WCStoreCartRemoveItemArgsSchema } from "./lib/schemas/api/cart-remove-item.ts"; import { WCStoreCartUpdateCustomerArgsSchema } from "./lib/schemas/api/cart-update-customer.ts"; import { WCStoreCartUpdateItemArgsSchema } from "./lib/schemas/api/cart-update-item.ts"; +import { WCStoreCartSchema } from "./lib/schemas/api/cart.ts"; import { WCStoreShippingRateShippingRateSchema } from "./lib/schemas/api/couts-livraison.ts"; import { WCV3OrdersArgsSchema, WCV3OrderSchema } from "./lib/schemas/api/v3/orders.ts"; import { @@ -107,6 +108,9 @@ const SOUS_TOTAL_LIVRAISON_PRESTATAIRE: HTMLSpanElement = pipe( recupereElementDocumentEither(SELECTEUR_SOUS_TOTAL_LIVRAISON_PRESTATAIRE), recupereElementOuLeve, ); +const INSTRUCTIONS_CLIENT: HTMLTextAreaElement = recupereElementDansDocumentOuLeve( + SELECTEUR_INSTRUCTIONS_CLIENT, +); const TOTAL_PANIER: HTMLParagraphElement = pipe( recupereElementDocumentEither(SELECTEUR_TOTAL_PANIER), recupereElementOuLeve, @@ -569,6 +573,7 @@ const initialiseBoutonCreationCommande = (): void => { Maybe // Ne fais rien si le Formulaire n'est pas valide .fromFalsy(FORMULAIRE_PANIER.checkValidity()) + // Active l'état de chargement .ifJust(() => { evenement.preventDefault(); BOUTON_ACTIONS_FORMULAIRE.textContent = "Submitting..."; @@ -578,7 +583,9 @@ const initialiseBoutonCreationCommande = (): void => { const donneesFormulaire = Object.fromEntries(new FormData(FORMULAIRE_PANIER)) as Record; const methodeLivraison: WCStoreShippingRateShippingRate = eitherSessionStorageGet("shipping_rates") + // Récupère la méthode de livraison depuis le stockage de session sous forme d'objet .chain(eitherJsonParse) + // Vérifie la forme de l'objet récupéré .chain((json: JSONValue) => eitherParse( json, @@ -617,6 +624,7 @@ const initialiseBoutonCreationCommande = (): void => { postcode: donneesFormulaire["facturation-code-postal"] ?? donneesFormulaire["livraison-code-postal"] ?? "", state: donneesFormulaire["facturation-region-etat"] ?? donneesFormulaire["livraison-region-etat"] ?? "", }, + customer_note: INSTRUCTIONS_CLIENT.value, currency: methodeLivraison.currency_code, line_items: articlesPanier, shipping: { @@ -640,8 +648,10 @@ const initialiseBoutonCreationCommande = (): void => { ], }; + // Vérifie que la forme de l'objet des arguments est correcte eitherParse(argumentsFormulaire, WCV3OrdersArgsSchema) .map(async (args: WCV3OrdersArgs) => { + // Réalise la requête await postBackend({ authString: ETATS_PAGE.authString, corps: JSON.stringify(args), @@ -653,19 +663,15 @@ const initialiseBoutonCreationCommande = (): void => { pipe( // Récupère la Réponse await reponse.json(), - // Traite tous les codes HTTP possibles - (corpsReponse: unknown) => { - console.debug(corpsReponse); - return eitherParse(corpsReponse, WCV3OrderSchema); - }, - reponse => - reponse.ifRight(r => { - const url = new URL(`https://${window.location.host}/checkout`); - url.searchParams.append("order_key", r.order_key); - url.searchParams.append("order_id", String(r.id)); - window.location = url; - }), - reponse => reponse.ifLeft(a => console.error(a.issues)), + (corpsReponse: unknown) => + eitherParse(corpsReponse, WCV3OrderSchema) + .ifRight((reponse: WCV3Order) => { + const url = new URL(`https://${window.location.host}/checkout`); + url.searchParams.append("order_key", reponse.order_key); + url.searchParams.append("order_id", String(reponse.id)); + location.assign(url); + }) + .ifLeft(e => console.error(e.issues)), ); }); }) diff --git a/web/app/themes/haiku-atelier-2024/views/parts/pages/panier/panneau-informations-client.twig b/web/app/themes/haiku-atelier-2024/views/parts/pages/panier/panneau-informations-client.twig index 9c395430..97a872ba 100644 --- a/web/app/themes/haiku-atelier-2024/views/parts/pages/panier/panneau-informations-client.twig +++ b/web/app/themes/haiku-atelier-2024/views/parts/pages/panier/panneau-informations-client.twig @@ -294,16 +294,12 @@

Payment:

- {# Carte de crédit via Stripe #} - {#
 
#} - - {# PayPal #}

Please fill out and submit the above form to make payment available.

- Payments are handled via Stripe: you will be taken to a dedicated Stripe-hosted payment - page then redirected back here after the payment. + Payments are handled via Stripe: you will be taken to a dedicated Stripe + payment page then redirected back here after the payment.

diff --git a/web/app/themes/haiku-atelier-2024/views/parts/pages/panier/panneau-panier.twig b/web/app/themes/haiku-atelier-2024/views/parts/pages/panier/panneau-panier.twig index 3634c207..406aed8b 100644 --- a/web/app/themes/haiku-atelier-2024/views/parts/pages/panier/panneau-panier.twig +++ b/web/app/themes/haiku-atelier-2024/views/parts/pages/panier/panneau-panier.twig @@ -72,7 +72,7 @@