1import{html,useState,}from "/skin/frontend/ultimo/default/consent/standalone.module.js";import{LangData}from "./newLangData.js";import{ButtonData}from "./ButtonData.js";const Preferences=({openClosePref,params,fromId,changeLanguage,currentLang,})=>{const[consents,setConsents]=useState({...window.popupsmart_current_consents,});let AllLanguages=Object.keys(LangData);const[currLangPref,setCurrLangPref]=useState(params["language"]);let changeCurrentLanguage;if(currentLang){changeCurrentLanguage=(e)=>{let value=e.target.value;changeLanguage(value);};}else{currentLang=currLangPref;changeCurrentLanguage=(e)=>{let value=e.target.value;setCurrLangPref(value);};} 2const data=ButtonData(LangData,currentLang);const theme=params["palette"];const AllButtonNames=data.map((x)=>x.name);const ButtonsObj={};for(let i=0;i<AllButtonNames.length;i++){let button=AllButtonNames[i];ButtonsObj[button]=false;} 3const[buttonStates,setButtonStates]=useState(ButtonsObj);const mainStyle=params["notice_banner_type"];const openCloseLink=(e)=>{const name=e.currentTarget.name;let newState={...buttonStates};let value=newState[name];newState[name]=!value;setButtonStates(newState);};const saveNewConsents=()=>{window.popupsmart_current_consents={...consents};openClosePref();};const applyChanges=()=>{saveNewConsents();window.popupsmart_change_script_types();const popup=document.getElementById("popupsmart_cookie_consent_gdpr_root");if(popup){popup.remove();}};const handlePreferences=(e)=>{e.stopPropagation();const name=e.currentTarget.getAttribute("name");if(name!=="strictly-necessary"){let newState={...consents};newState[name]=!consents[name];setConsents(newState);}};const siteName=params["siteName"];const companyLogoURL=params["companyLogoURL"];return html` 4 <div class="consent__preferences" 5 style=" 6 background-color:${theme==="dark"?"black":"white"}; 7 color:${theme==="dark"?"white":"#777777"}; 8 box-shadow:${ 9theme==="dark"?"0 10px 20px rgba(255,255,255,.2);":" 0 10px 20px rgba(0,0,0,.2);" 10}; 11 " 12 > 13 <div class="preferences__overflow"> 14 <div class="preferences__top" 15 style=" 16 background-color:"inherit"; 17 color:${theme==="dark"?"white":"black"}; 18 " 19 > 20 <button 21 class="closePrefCross" 22 onClick=${saveNewConsents}> 23 <img 24 class="crossImg" 25 src="/skin/frontend/ultimo/default/consent/Assets/cross.svg" /> 26 </button> 27 28 <img 29 class="preferences__logo" 30 src="${ 31companyLogoURL?companyLogoURL:"/skin/frontend/ultimo/default/consent/Assets/defaultLogo.svg" 32}" 33 /> 34 <div class="site_name"> 35 ${siteName} 36 </div> 37 <div 38 class="title" 39 > 40 ${LangData[currentLang]["cookie_preferences_title"]} 41 </div> 42 <select 43 class="pref__select" 44 onChange=${changeCurrentLanguage} 45 style="border:${theme==="dark"&&"none"}" 46 > 47 ${AllLanguages.map((lang,index)=>html` 48 <option 49 key=${index} 50 value=${lang} 51 selected=${lang===currentLang} 52 > 53 ${lang} 54 </option> 55 `)} 56 </select> 57 58 </div> 59 60 <div class="links"> 61 ${data.map((currentData,index)=>html` 62 <div class="buttonMainWrapper"> 63 <button 64 onClick=${openCloseLink} 65 key=${index} 66 name=${currentData.name} 67 style=" 68 color:${buttonStates[currentData.name]?theme==="dark"?"white":"black":"inherit"}; 69 background-color:${buttonStates[currentData.name]?theme==="dark"?"#333333":"#f2f2f2":"inherit"}; 70 border-top:${theme==="dark"?"1px solid #666666":"1px solid #00000033"}; 71 " 72 > 73 <div 74 class="title" 75 style=" 76 color:${buttonStates[currentData.name]?theme==="dark"?"white":"black":"inherit"}; 77 " 78 > 79 <div class="button__title__left"> 80 <img 81 class="button__image" 82 src=${buttonStates[currentData.name]?theme==="dark"?"/skin/frontend/ultimo/default/consent/Assets/up-arrow-light.svg":"/skin/frontend/ultimo/default/consent/Assets/up-arrow-dark.svg":"/skin/frontend/ultimo/default/consent/Assets/down-arrow.svg"} 83 />
84 <span>${currentData.buttonText}</span> 85 </div> 86 87 ${currentData.explanation.toggle?html` 88 <div 89 name=${currentData.name} 90 onClick=${handlePreferences} 91 class="checkboxDiv__wrapper ${currentData.name==="strictly-necessary"&&"checkboxDiv__wrapper__disabled"}" 92 > 93 <div 94 class="checkboxDiv ${consents[currentData.name]?"checkboxDiv-active":"checkboxDiv-passive"}" 95 name=${currentData.name} 96 ></div> 97 98 </div> 99 `:null} 100 </div> 101 102 </button> 103 <div 104 class="explanation" 105 style="display:${buttonStates[currentData.name]?"flex":"none"}; 106 background-color:inherit; 107 width:100%; 108 flex-flow:column nowrap; 109 color:inherit; 110 background-color:${buttonStates[currentData.name]?theme==="dark"?"#333333":"#f2f2f2":"inherit"}; 111 112 " 113 > 114 ${currentData.explanation.paragraphs.map((p,index)=>html` 115 ${p==="privacy_policy_link"?params["privacy_policy_url"]!=="#"&&html`<a 116 style=" 117 color:${theme==="dark"?"white":"black"} 118 " 119 href=${params["privacy_policy_url"]} 120 >Privacy Policy</a 121 >`:html` 122 <p key=${index} class="explanation__text">${p}</p> 123 `} 124 `)} 125 126 </div> 127 </div> 128 `)} 129 </div> 130 </div> 131 132 <div class="preferences__bottom" 133 style=" 134 background-color:${theme==="dark"?"#484848":"inherit"}; 135 color:${theme==="dark"?"white":"black"}; 136 box-shadow:0px -5px 10px rgba(0, 0,0, 0.15); 137 " 138 > 139 <button 140 style=" 141 background-color:${theme==="dark"?"white":"black"}; 142 color:${theme==="dark"?"black":"white"} 143 " 144 onClick=${applyChanges}> 145 ${LangData[currentLang]["save_preferences"]} 146 </button> 147 <div class="text" 148 style="color:${theme==="dark"?'white':''}" 149 > 150 <p> 151 Cookie Consent by <a target="_blank" href="https://popupsmart.com">Popupsmart</a> 152 </p> 153 </div> 154 155</div> 156</div> 157 `;};export default Preferences;
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.