{
  "version": 3,
  "sources": ["ssg:https://framerusercontent.com/modules/SoMZlNYjHxKnvxJeTd3O/3XS9cPsCxyhxiO8vrYsj/CookiesBanner.js"],
  "sourcesContent": ["import{jsx as _jsx}from\"react/jsx-runtime\";import{useState,useEffect}from\"react\";import{addPropertyControls,ControlType}from\"framer\";const domainsToDecorate=[\"smile2impress.com\",\"drsmile.es\",\"dr-smile.it\",\"drsmile.fr\"],queryParams=[\"utm_term\",\"utm_campaign\",\"utm_source\",\"utm_medium\",\"utm_content\",\"hsa_acc\",\"hsa_cam\",\"hsa_grp\",\"hsa_ad\",\"hsa_src\",\"hsa_tgt\",\"hsa_kw\",\"hsa_mt\",\"hsa_net\",\"hsa_ver\",\"gclid\",\"ttclid\",\"fbclid\"];export default function CookiesBanner({id,locale,hideCookiesPolicyBanner,hasQueryInit}){// We can't really do anything without a formId\nif(!id){return /*#__PURE__*/_jsx(\"div\",{children:\"Cookies banner will be here!\"});}// We use the Framer node id for a stable id\nconst elementId=`container_${id}`;const[cookiesBanner,setCookiesBanner]=useState();useEffect(()=>{const script=document.createElement(\"script\");const scriptUrl=\"https://mf.smile2impress.com/cookies-banner-widget/index.js\";script.src=scriptUrl;script.async=true;const handleScriptLoad=()=>{// The remote script has loaded successfully\nconsole.log(`Script loaded: ${scriptUrl}`);setCookiesBanner(new window.CookiesBannerWidget);};const handleScriptError=()=>{// There was an error loading the script\nconsole.error(`Error loading script: ${scriptUrl}`);};script.addEventListener(\"load\",handleScriptLoad);script.addEventListener(\"error\",handleScriptError);// Append the script to the document body\ndocument.body.appendChild(script);// Clean up event listeners when the component unmounts\nreturn()=>{script.removeEventListener(\"load\",handleScriptLoad);script.removeEventListener(\"error\",handleScriptError);};},[id]);useEffect(()=>{if(!hasQueryInit){return;}// We get all the links on the page\nconst links=document.querySelectorAll(\"a\");// We check and add parameters only if they are missing\nfor(let linkIndex=0;linkIndex<links.length;linkIndex++){for(let domainIndex=0;domainIndex<domainsToDecorate.length;domainIndex++){if(links[linkIndex].href.indexOf(domainsToDecorate[domainIndex])>-1&&links[linkIndex].href.indexOf(\"#\")===-1){if(!hasRequiredQueryParams(links[linkIndex].href)){// We check if the necessary parameters already exist\nlinks[linkIndex].href=decorateUrl(links[linkIndex].href);}}}}// Function for adding query parameters to URL\nfunction decorateUrl(urlToDecorate){urlToDecorate=urlToDecorate.indexOf(\"?\")===-1?urlToDecorate+\"?\":urlToDecorate+\"&\";let collectedQueryParams=[];for(let queryIndex=0;queryIndex<queryParams.length;queryIndex++){if(getQueryParam(queryParams[queryIndex])){collectedQueryParams.push(queryParams[queryIndex]+\"=\"+getQueryParam(queryParams[queryIndex]));}}return urlToDecorate+collectedQueryParams.join(\"&\");}// Checking for the presence of mandatory query parameters in the link\nfunction hasRequiredQueryParams(url){for(let queryIndex=0;queryIndex<queryParams.length;queryIndex++){if(url.indexOf(queryParams[queryIndex]+\"=\")>-1){return true// If at least one parameter already exists, return true\n;}}return false// If there are no parameters, return false\n;}// Getting the value of a query parameter from the current URL\nfunction getQueryParam(name){if(name=new RegExp(\"[?&]\"+encodeURIComponent(name)+\"=([^&]*)\").exec(window.location.search)){return decodeURIComponent(name[1]);}}},[id,hasQueryInit]);useEffect(()=>{if(cookiesBanner){cookiesBanner.mount({id,elementId,locale,hideCookiesPolicyBanner});}},[cookiesBanner,locale,hideCookiesPolicyBanner]);return /*#__PURE__*/_jsx(\"div\",{style:{width:\"100%\",height:\"100%\"},id:elementId});}addPropertyControls(CookiesBanner,{locale:{type:ControlType.Enum,title:\"Locale\",options:[\"es-ES\",\"it-IT\",\"pt-PT\",\"fr-FR\",\"de-DE\",\"uk-UA\",\"en-GB\",\"en-US\"],optionTitles:[\"Spain\",\"Italy\",\"Portugal\",\"France\",\"Germany\",\"Ukraine\",\"UK\",\"USA\"],defaultValue:\"es-ES\"},hideCookiesPolicyBanner:{type:ControlType.Boolean,title:\"Hide cookies policy banner\",enabledTitle:\"True\",disabledTitle:\"False\",defaultValue:false},hasQueryInit:{type:ControlType.Boolean,title:\"Has query init\",enabledTitle:\"True\",disabledTitle:\"False\",defaultValue:false}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"CookiesBanner\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./CookiesBanner.map"],
  "mappings": "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",
  "names": ["domainsToDecorate", "queryParams", "CookiesBanner", "id", "locale", "hideCookiesPolicyBanner", "hasQueryInit", "p", "elementId", "cookiesBanner", "setCookiesBanner", "ye", "ue", "script", "scriptUrl", "handleScriptLoad", "window", "handleScriptError", "links", "linkIndex", "domainIndex", "hasRequiredQueryParams", "decorateUrl", "urlToDecorate", "collectedQueryParams", "queryIndex", "getQueryParam", "url", "name", "addPropertyControls", "ControlType"]
}
