PageSourceSearch

https://www.holzpellet.com/skin/frontend/ultimo/default/consent/Preferences.js

js holzpellet.com collected 2026-10-03 01:36:51 UTC 6,923 bytes, 157 lines download raw bytes

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.