{"version":3,"file":"siteMetadata.GN7IbvmP.mjs","names":[],"sources":["https:/framerusercontent.com/modules/3vih5ZkKVRkkuScxXl91/QIHbzyfW0S41OXC1FNYx/siteMetadata.js"],"sourcesContent":["// Generated by Framer (c2a8602)\nexport default function metadata(params,activeLocale){return{customHTMLHeadEnd:'<script>\\n  window.dataLayer = window.dataLayer || [];\\n  function gtag(){ dataLayer.push(arguments); }\\n\\n  // Par d\\xe9faut (CH/UE) : refus jusqu\\'au choix utilisateur\\n  gtag(\\'consent\\', \\'default\\', {\\n    \\'ad_storage\\': \\'denied\\',\\n    \\'analytics_storage\\': \\'denied\\',\\n    \\'ad_user_data\\': \\'denied\\',\\n    \\'ad_personalization\\': \\'denied\\',\\n    \\'wait_for_update\\': 500\\n  });\\n</script>\\n\\n<script id=\"Cookiebot\" src=\"https://consent.cookiebot.com/uc.js\" data-cbid=\"be13c8eb-7951-461d-a14a-b27111dc8aa4\" data-blockingmode=\"auto\" type=\"text/javascript\"></script>\\n\\n<!-- Google tag (gtag.js) - 1 seul loader -->\\n<script async=\"\" src=\"https://www.googletagmanager.com/gtag/js?id=G-V3VWC31QP0\"></script>\\n<script>\\n  gtag(\\'js\\', new Date());\\n\\n  // GA4\\n  gtag(\\'config\\', \\'G-V3VWC31QP0\\');\\n\\n  // Google Ads (m\\xeame gtag)\\n  gtag(\\'config\\', \\'AW-489287379\\');\\n</script>\\n\\n<script>\\n  function updateConsentFromCookiebot() {\\n    if (!window.Cookiebot || !Cookiebot.consent) return;\\n    const c = Cookiebot.consent;\\n    gtag(\\'consent\\', \\'update\\', {\\n      analytics_storage:   c.statistics ? \\'granted\\' : \\'denied\\',\\n      ad_storage:          c.marketing  ? \\'granted\\' : \\'denied\\',\\n      ad_user_data:        c.marketing  ? \\'granted\\' : \\'denied\\',\\n      ad_personalization:  c.marketing  ? \\'granted\\' : \\'denied\\'\\n    });\\n  }\\n  window.addEventListener(\\'CookiebotOnAccept\\',  updateConsentFromCookiebot);\\n  window.addEventListener(\\'CookiebotOnDecline\\', updateConsentFromCookiebot);\\n  window.addEventListener(\\'CookiebotOnServiceReady\\', updateConsentFromCookiebot);\\n</script>\\n\\n<script type=\"module\">\\n  import {\\n    initializeApp,\\n    getApps\\n  } from \"https://www.gstatic.com/firebasejs/11.9.1/firebase-app.js\";\\n  import { getAnalytics } from \"https://www.gstatic.com/firebasejs/11.9.1/firebase-analytics.js\";\\n  import {\\n    getAuth,\\n    onAuthStateChanged,\\n    signInWithEmailAndPassword,\\n    createUserWithEmailAndPassword,\\n    GoogleAuthProvider,\\n    signInWithPopup,\\n    updateProfile,\\n    updateEmail,\\n    sendPasswordResetEmail,\\n    signOut\\n  } from \"https://www.gstatic.com/firebasejs/11.9.1/firebase-auth.js\";\\n  import {\\n    getFirestore,\\n    doc,\\n    getDoc,\\n    setDoc,\\n    collection,\\n    addDoc\\n  } from \"https://www.gstatic.com/firebasejs/11.9.1/firebase-firestore.js\";\\n  import {\\n    getFunctions,\\n    httpsCallable\\n  } from \"https://www.gstatic.com/firebasejs/11.9.1/firebase-functions.js\";\\n\\n  // Firebase config\\n  const firebaseConfig = {\\n    apiKey: \"AIzaSyDzMuhx0ewunylgESH7IWGCCa7Ibi40XeI\",\\n    authDomain: \"savure-5371c.firebaseapp.com\",\\n    projectId: \"savure-5371c\",\\n    storageBucket: \"savure-5371c.appspot.com\",\\n    messagingSenderId: \"91162024652\",\\n    appId: \"1:91162024652:web:a5ab35276172d1a04b4069\",\\n    measurementId: \"G-V3VWC31QP0\",\\n  };\\n\\n  // Initialize Firebase only once\\n  let app;\\n  if (getApps().length === 0) {\\n    app = initializeApp(firebaseConfig);\\n  } else {\\n    app = getApps()[0];\\n  }\\n\\n  // Analytics (optional)\\n  //getAnalytics(app);\\n\\n  // Initialize Auth, Firestore, and Functions\\n  const auth = getAuth(app);\\n  const firestore = getFirestore(app);\\n  const functions = getFunctions(app);\\n\\n  // Attach everything neatly under window.firebase\\n  window.firebase = {\\n    app,\\n    auth,\\n    firestore,\\n    functions,\\n    // Auth methods\\n    signInWithEmailAndPassword,\\n    createUserWithEmailAndPassword,\\n    GoogleAuthProvider,\\n    signInWithPopup,\\n    updateProfile,\\n    updateEmail,\\n    sendPasswordResetEmail,\\n    signOut,\\n    onAuthStateChanged,\\n    // Firestore helpers\\n    doc,\\n    getDoc,\\n    setDoc,\\n    collection,\\n    addDoc,\\n    // Functions helper\\n    httpsCallable\\n  };\\n\\n  // Optional dynamic header logic\\n  function waitForElement(selector, timeout = 5000) {\\n    return new Promise((resolve, reject) => {\\n      const intervalTime = 100;\\n      let timeElapsed = 0;\\n      const interval = setInterval(() => {\\n        const el = document.querySelector(selector);\\n        if (el) {\\n          clearInterval(interval);\\n          resolve(el);\\n        }\\n        timeElapsed += intervalTime;\\n        if (timeElapsed >= timeout) {\\n          clearInterval(interval);\\n          reject(`Timeout: Element \\'${selector}\\' not found.`);\\n        }\\n      }, intervalTime);\\n    });\\n  }\\n\\n  waitForElement(\\'[data-framer-name=\"Header Button\"]\\')\\n    .then((wrapper) => {\\n      const link = wrapper.querySelector(\"a\");\\n      if (!link) {\\n        console.error(\"❌ Aucun <a> trouv\\xe9 dans \\'Header Button\\'.\");\\n        return;\\n      }\\n\\n      window.firebase.onAuthStateChanged(auth, (user) => {\\n        if (user) {\\n          console.log(\"✅ User authenticated:\", user.uid);\\n          link.href = \"/dashboard\";\\n          link.title = \"Mon compte\";\\n        } else {\\n          console.log(\"ℹ️ No user authenticated\");\\n          link.href = \"/login\";\\n          link.title = \"Se connecter\";\\n        }\\n      });\\n    })\\n    .catch((err) => {\\n      console.error(err);\\n    });\\n</script>\\n\\n\\n<!-- Meta Pixel (charg\\xe9 SEULEMENT apr\\xe8s consentement Marketing) -->\\n<script type=\"text/plain\" data-cookieconsent=\"marketing\">\\n!function(f,b,e,v,n,t,s)\\n{if(f.fbq)return;n=f.fbq=function(){n.callMethod?\\nn.callMethod.apply(n,arguments):n.queue.push(arguments)};\\nif(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version=\\'2.0\\';\\nn.queue=[];t=b.createElement(e);t.async=!0;t.src=v;\\ns=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}\\n(window, document,\\'script\\',\\'https://connect.facebook.net/en_US/fbevents.js\\');\\nfbq(\\'init\\',\\'729189003086971\\'); fbq(\\'track\\',\\'PageView\\');\\n</script>\\n\\n<!-- TikTok Pixel (charg\\xe9 SEULEMENT apr\\xe8s consentement Marketing) -->\\n<script type=\"text/plain\" data-cookieconsent=\"marketing\">\\n!function (w, d, t) {\\n  w.TiktokAnalyticsObject=t;var ttq=w[t]=w[t]||[];\\n  ttq.methods=[\"page\",\"track\",\"identify\",\"instances\",\"debug\",\"on\",\"off\",\"once\",\"ready\",\"alias\",\"group\",\"enableCookie\",\"disableCookie\",\"holdConsent\",\"revokeConsent\",\"grantConsent\"];\\n  ttq.setAndDefer=function(t,e){t[e]=function(){t.push([e].concat([].slice.call(arguments,0)))}};\\n  for(var i=0;i<ttq.methods.length;i++)ttq.setAndDefer(ttq,ttq.methods[i]);\\n  ttq.load=function(e,n){var r=\"https://analytics.tiktok.com/i18n/pixel/events.js\";\\n    n=document.createElement(\"script\");n.type=\"text/javascript\";n.async=!0;n.src=r+\"?sdkid=\"+e+\"&lib=\"+t;\\n    e=document.getElementsByTagName(\"script\")[0];e.parentNode.insertBefore(n,e)};\\n  ttq._i=ttq._i||{}; ttq._i[\\'D25098JC77UCI3DBNQRG\\']=[]; ttq._t=ttq._t||{};\\n  ttq.load(\\'D25098JC77UCI3DBNQRG\\'); ttq.page();\\n}(window, document, \\'ttq\\');\\n</script>\\n\\n<script>\\n// Envoi de lead (si page /merci)\\nif (location.pathname === \\'/merci\\') {\\n  gtag(\\'event\\',\\'generate_lead\\',{ value:1, currency:\\'CHF\\', lead_type:\\'form\\' });\\n}\\n\\n// Clic t\\xe9l\\xe9phone\\ndocument.addEventListener(\\'click\\', e => {\\n  const a = e.target.closest(\\'a[href^=\"tel:\"]\\');\\n  if (a) gtag(\\'event\\',\\'call_click\\',{ value:1, currency:\\'CHF\\' });\\n});\\n\\n// Clic WhatsApp\\ndocument.addEventListener(\\'click\\', e => {\\n  const a = e.target.closest(\\'a[href*=\"wa.me\"],a[href*=\"api.whatsapp.com\"]\\');\\n  if (a) gtag(\\'event\\',\\'whatsapp_click\\',{ value:1, currency:\\'CHF\\' });\\n});\\n</script>\\n\\n\\n',description:\"Savure livre \\xe0 Gen\\xe8ve des plats faits maison, cuisin\\xe9s chaque semaine avec des produits frais. Commandez en ligne et savourez !\\n\",favicon:\"https://framerusercontent.com/assets/r998L3bsjPtSXPnL9DxvvikOrU.svg\",robots:\"max-image-preview:large\",socialImage:\"https://framerusercontent.com/assets/qnOervtIaGEaOCRta9ehCS8Faps.svg\",title:\"Livraison de plats frais \\xe0 Gen\\xe8ve | Savure\"};}export const metadataVersion=1;\nexport const __FramerMetadata__ = {\"exports\":{\"metadataVersion\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}"],"mappings":"2DACA,SAAwB,EAAS,EAAO,EAAa,CAAC,MAAM,CAAC,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAA0qO,YAAY;EAA6I,QAAQ,sEAAsE,OAAO,0BAA0B,YAAY,uEAAuE,MAAM,6CAAmD"}