diff --git a/.gitignore b/.gitignore index a2c0f5c..e63d1f7 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ node_modules dist/* !dist/cookies.min.js +!dist/cookies-gtm.min.js diff --git a/README.md b/README.md index 857bcfa..62e3625 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ ![Size](https://img.shields.io/github/size/danielsitek/dgp-cookie-consent/dist/cookies.min.js) [![Stable version](https://img.shields.io/github/v/release/danielsitek/dgp-cookie-consent)](https://github.com/danielsitek/dgp-cookie-consent/releases) -[![CDN](https://img.shields.io/badge/CDN-orange?style=flat&logo=jsdelivr&logoColor=white)](https://cdn.jsdelivr.net/gh/danielsitek/dgp-cookie-consent@1.4.0/dist/cookies.min.js) +[![CDN](https://img.shields.io/badge/CDN-orange?style=flat&logo=jsdelivr&logoColor=white)](https://cdn.jsdelivr.net/gh/danielsitek/dgp-cookie-consent@1.4.1/dist/cookies.min.js) [![Maintainability](https://api.codeclimate.com/v1/badges/27b5b5b749d18039f303/maintainability)](https://codeclimate.com/github/danielsitek/dgp-cookie-consent/maintainability) [![Codacy Badge](https://app.codacy.com/project/badge/Grade/65b56152a2a84981b10576ad7081411d)](https://www.codacy.com/gh/danielsitek/dgp-cookie-consent/dashboard) @@ -53,7 +53,7 @@ Awesome one-of-a-kind Cookie Consent panel. 1. Download the latest release or use CDN. ``` - https://cdn.jsdelivr.net/gh/danielsitek/dgp-cookie-consent@1.4.0/dist/cookies.min.js + https://cdn.jsdelivr.net/gh/danielsitek/dgp-cookie-consent@1.4.1/dist/cookies.min.js ``` 1. Insert this code on the bottom of the page, or [inject it via GTM](#gtm-implementation). @@ -556,7 +556,7 @@ window.addEventListener('consent-ready', () => { (function cookiesInit() { var scriptEl = document.createElement('script'); - scriptEl.src = 'https://cdn.jsdelivr.net/gh/danielsitek/dgp-cookie-consent@1.4.0/dist/cookies.min.js'; + scriptEl.src = 'https://cdn.jsdelivr.net/gh/danielsitek/dgp-cookie-consent@1.4.1/dist/cookies.min.js'; scriptEl.type = 'text/javascript'; scriptEl.id = 'cookie-consent'; diff --git a/dist/cookies-gtm.min.js b/dist/cookies-gtm.min.js new file mode 100644 index 0000000..19d3687 --- /dev/null +++ b/dist/cookies-gtm.min.js @@ -0,0 +1 @@ +!function(){"use strict";const e="denied",o="granted";function n(...e){window.dataLayer=window.dataLayer||[],1!==e.length?window.dataLayer.push(e):window.dataLayer.push(e[0])}function t(e){const o=function(){const e={};return document.cookie.split(";").forEach((o=>{const n=o.trim(),t=n.split("=")[0],i=n.replace(`${t}=`,"");e[t]=i})),e}();if(Object.keys(o).includes(e))return o[e]}const i=function(){try{return JSON.parse(t("CookieConsent")||"")}catch(e){return{necessary:!0,marketing:!1,preferences:!1,statistics:!1}}}();n("consent","default",{ad_storage:i.marketing?o:e,analytics_storage:i.statistics?o:e,personalization_storage:i.preferences?o:e,functionality_storage:o,security_storage:o}),n({event:"cookie_consent_default"}),window.addEventListener("consent-ready",(function(){n({event:"cookie_consent_ready"})})),window.addEventListener("consent-updated",(function(){n("consent","update",{ad_storage:window.CookieConsent.marketing?o:e,analytics_storage:window.CookieConsent.statistics?o:e,personalization_storage:window.CookieConsent.preferences?o:e,functionality_storage:o,security_storage:o}),n({event:"cookie_consent_update",type:window.CookieConsent.type,personalization_storage:window.CookieConsent.preferences?o:e,ad_storage:window.CookieConsent.marketing?o:e,analytics_storage:window.CookieConsent.statistics?o:e})})),window.addEventListener("consent-show",(function(){n({event:"cookie_consent_bar_show"})})),window.addEventListener("consent-hide",(function(){n({event:"cookie_consent_bar_hide"})})),window.CookieConsentTheme=Object.assign({"base-color":"#3c3c3c","border-radius":"0","color-primary":"#000000","button-default__bg-color":"#f3f3f2","button-default__color":"#676767","button-default__border":"0 none","button-default--hover__bg-color":"#f3f3f2","button-default--hover__color":"#676767","button-default--hover__border":"0 none","button-default--hover__box-shadow":"none","button-primary__bg-color":"#000000","button-primary__color":"#fff","button-primary--hover__bg-color":"#f3f3f2","button-primary--hover__color":"#000"},window.CookieConsentTheme),window.CookieConsentTranslations=window.CookieConsentTranslations||{},window.CookieConsentSettings=window.CookieConsentSettings||{};const s=document.createElement("script");s.src="https://cdn.jsdelivr.net/gh/danielsitek/dgp-cookie-consent@latest/dist/cookies.min.js",s.type="text/javascript",s.id="cookie-consent",s.defer=!0,document.body.appendChild(s)}(); \ No newline at end of file diff --git a/dist/cookies.min.js b/dist/cookies.min.js index b478b8f..1b6eab6 100644 --- a/dist/cookies.min.js +++ b/dist/cookies.min.js @@ -1 +1 @@ -!function(){"use strict";const t="CookieConsent",e="click",n="change",i="consent-dialog";function o(t){const e=function(){const t={};return document.cookie.split(";").forEach((e=>{const n=e.trim(),i=n.split("=")[0],o=n.replace(`${i}=`,"");t[i]=o})),t}();if(Object.keys(e).includes(t))return e[t]}function a(t,e,n){const i=[`${t}=${e}`,"path=/",`domain=${window.location.hostname}`];if(n){const t=function(t){const e=new Date;return e.setTime(e.getTime()+24*t*60*60*1e3),e.toUTCString()}(n);i.push(`expires=${t}`)}const o=i.join("; ");return document.cookie=o,o}const s=t=>{const e=2+t;return`${Math.random().toFixed(e).slice(2,e)}.${(new Date).getTime().toString().slice(0,10)}`},r={necessary:!0,preferences:!1,statistics:!1,marketing:!1,updated:"",id:"",type:""};function l(t){return encodeURIComponent(JSON.stringify(t))}function c(e){return a(t,l(Object.assign(Object.assign({},e),{id:s(10)})),365),d()}function d(){if(!o(t))return c(r);const e=o(t);let n=r;return e&&(n=function(t){try{return JSON.parse(decodeURIComponent(t))}catch(e){return JSON.parse(decodeURIComponent(atob(t)))}}(e)),n.id&&n.id.length?n:c(n)}const b=(t,e)=>{let n=null;return(...i)=>{null!==n&&(clearTimeout(n),n=null),n=setTimeout((()=>t(...i)),e)}},p=new Event("consent-updated"),u=new Event("consent-show"),h=new Event("consent-hide"),m=new Event("consent-ready"),f=b((()=>{window.dispatchEvent(p)}),300),w=b((()=>{window.dispatchEvent(u)}),50),k=b((()=>{window.dispatchEvent(h)}),50),v=b((()=>{window.dispatchEvent(m)}),50),y={necessary:!0,preferences:!1,statistics:!1,marketing:!1,updated:"",id:"",type:""};class ConsentService{constructor(){this.getConsentData(),v()}get necessary(){return this.getConsentData(),y.necessary}set necessary(t){y.necessary=Boolean(t),this.updateConsentData()}get preferences(){return this.getConsentData(),y.preferences}set preferences(t){y.preferences=Boolean(t),this.updateConsentData()}get statistics(){return this.getConsentData(),y.statistics}set statistics(t){y.statistics=Boolean(t),this.updateConsentData()}get marketing(){return this.getConsentData(),y.marketing}set marketing(t){y.marketing=Boolean(t),this.updateConsentData()}get updated(){return this.getConsentData(),y.updated}get id(){return this.getConsentData(),y.id}get type(){return this.getConsentData(),y.type}set type(t){y.type=t,this.updateConsentData()}getConsentData(){const t=d();Object.keys(t).forEach((e=>{y[e]=t[e]}))}updateConsentData(){!function(e,n){const{id:i}=d(),o=Object.assign(Object.assign(Object.assign({},r),e),{updated:(s?new Date(s):new Date).toJSON(),id:i});var s;a(t,l(o),365);const c=d();n&&"function"==typeof n&&n.call(null,c)}(y,(()=>{f()}))}}function g(t,e,n,i){return new(n||(n=Promise))((function(o,a){function s(t){try{l(i.next(t))}catch(t){a(t)}}function r(t){try{l(i.throw(t))}catch(t){a(t)}}function l(t){var e;t.done?o(t.value):(e=t.value,e instanceof n?e:new n((function(t){t(e)}))).then(s,r)}l((i=i.apply(t,e||[])).next())}))}const _={showButtonRejectAll:!1},x={showButtonRejectAll:!1},C={},j={locale:"cs-CZ",tabAgree:{title:"Souhlas",body:"\n

Tato webová stránka používá cookies

\n

K personalizaci obsahu a reklam, poskytování funkcí sociálních médií a analýze naší návštěvnosti využíváme soubory cookie. Informace o tom, jak náš web používáte, sdílíme se svými partnery pro sociální média, inzerci a analýzy. Partneři tyto údaje mohou zkombinovat s dalšími informacemi, které jste jim poskytli nebo které získali v důsledku toho, že používáte jejich služby.

\n "},tabAbout:{title:"O aplikaci",body:"\n

Cookies jsou malé textové soubory, které mohou být používány webovými stránkami, aby učinily uživatelský zážitek více efektivní.

\n

Zákon uvádí, že můžeme ukládat cookies na vašem zařízení, pokud jsou nezbytně nutné pro provoz této stránky. Pro všechny ostatní typy cookies potřebujeme vaše povolení.

\n

Tato stránka používá různé typy cookies. Některé cookies jsou umístěny službami třetích stran, které se objevují na našich stránkách.

\n

Kdykoliv můžete změnit nebo zrušit svůj souhlas prostřednictvím Vyjádření o souborech cookie na našich webových stránkách.

\n "},tabDetail:{title:"Detail",necessary:{title:"Nutné",perex:"Nutné cookies pomáhají, aby byla webová stránka použitelná tak, že umožní základní funkce jako navigace stránky a přístup k zabezpečeným sekcím webové stránky. Webová stránka nemůže správně fungovat bez těchto cookies."},preferences:{title:"Preferenční",perex:"Preferenční cookies umožňují, aby si webová stránka zapamatovala informace, které mění, jak se webová stránka chová nebo jak vypadá. Je to například preferovaný jazyk nebo region, kde se nacházíte."},statistics:{title:"Statistické",perex:"Statistické cookies pomáhají majitelům webových stránek, aby porozuměli, jak návštěvníci používají webové stránky. Anonymně sbírají a sdělují informace."},marketing:{title:"Marketingové",perex:"Marketingové cookies jsou používány pro sledování návštěvníků na webových stránkách. Záměrem je zobrazit reklamu, která je relevantní a zajímavá pro jednotlivého uživatele a tímto hodnotnější pro vydavatele a inzerenty třetích stran."}},buttonEdit:{label:"Nastavit"},buttonAllowAll:{label:"Povolit vše"},buttonRejectAll:{label:"Odmítnout vše"},buttonConfirm:{label:"Potvrdit"},lastUpdated:"Prohlášení o cookies bylo naposledy aktualizováno %date."},A=()=>{var t,e,n,i,o;const a=null===window||void 0===window?void 0:window.CookieConsentTranslations;return{locale:(null==a?void 0:a.locale)||j.locale,tabAgree:Object.assign(Object.assign({},j.tabAgree),null==a?void 0:a.tabAgree),tabAbout:Object.assign(Object.assign({},j.tabAbout),null==a?void 0:a.tabAbout),tabDetail:{title:(null===(t=null==a?void 0:a.tabDetail)||void 0===t?void 0:t.title)||j.tabDetail.title,necessary:Object.assign(Object.assign({},j.tabDetail.necessary),null===(e=null==a?void 0:a.tabDetail)||void 0===e?void 0:e.necessary),preferences:Object.assign(Object.assign({},j.tabDetail.preferences),null===(n=null==a?void 0:a.tabDetail)||void 0===n?void 0:n.preferences),statistics:Object.assign(Object.assign({},j.tabDetail.statistics),null===(i=null==a?void 0:a.tabDetail)||void 0===i?void 0:i.statistics),marketing:Object.assign(Object.assign({},j.tabDetail.marketing),null===(o=null==a?void 0:a.tabDetail)||void 0===o?void 0:o.marketing)},buttonEdit:Object.assign(Object.assign({},j.buttonEdit),null==a?void 0:a.buttonEdit),buttonAllowAll:Object.assign(Object.assign({},j.buttonAllowAll),null==a?void 0:a.buttonAllowAll),buttonRejectAll:Object.assign(Object.assign({},j.buttonRejectAll),null==a?void 0:a.buttonRejectAll),buttonConfirm:Object.assign(Object.assign({},j.buttonConfirm),null==a?void 0:a.buttonConfirm),lastUpdated:(null==a?void 0:a.lastUpdated)||j.lastUpdated}},O=(t,e)=>{const n=document.createElement(t);return"button"===t&&n.setAttribute("type",t),e&&n.classList.add(...e.filter((t=>t))),n},D=t=>O("div",t),E=(t,e)=>e?[...t,...e.split(" ")]:t,B=t=>{const e=O("button",E(["c-b",t.variant?`c-b--${t.variant}`:""],t.modifier));return e.innerHTML=`${t.label}`,e};class z{constructor(t,e){if(this.props=t,this.element=O("button",["c-t"]),this.element.setAttribute("role","tab"),this.activeCallBack=e,this.element.innerHTML=`\n ${t.label}\n
\n `,this.props.modifier){const t=this.props.modifier.split(" ");this.element.classList.add(...t)}this.props.active&&(this.active=this.props.active),this.initListeners()}set active(t){var e,n;null===(e=this.element.parentElement)||void 0===e||e.querySelectorAll("button").forEach((t=>{t.classList.remove("c-t--a"),t.setAttribute("aria-selected","false")})),t?(this.element.classList.add("c-t--a"),this.element.setAttribute("aria-selected","true")):(this.element.classList.remove("c-t--a"),this.element.setAttribute("aria-selected","false")),this.active&&(null===(n=this.activeCallBack)||void 0===n||n.apply(null))}get active(){return this.element.classList.contains("c-t--a")}initListeners(){this.element.addEventListener(e,(()=>{this.active=!this.active}))}render(){return this.element}}const T=t=>{const e=D(),i=O("label",["s-b"]),o=O("input",["s-b__i"]),a=D(["s-b__b"]);return o.type="checkbox",o.checked=!!(null==t?void 0:t.checked),o.disabled=!!(null==t?void 0:t.disabled),a.innerHTML='
',o.addEventListener(n,(t=>{t.preventDefault(),i.setAttribute("aria-checked",`${t.target.checked}`),e.dispatchEvent(new Event(n))})),i.appendChild(o),i.appendChild(a),i.setAttribute("role","switch"),e.appendChild(i),e.isChecked=()=>o.checked,e.setChecked=t=>{o.checked=t,i.setAttribute("aria-checked",`${t}`)},e},L=t=>{const e=D(E(["c-d__f"],t.modifier));return t.buttons.filter((t=>t)).forEach((t=>{"boolean"!=typeof t&&e.appendChild(t)})),e},S=t=>{const e=D(["c-t-c"]),n=D(["c-d__b"]);return n.innerHTML=t.body||"props.body",e.setAttribute("role","tabpanel"),e.appendChild(n),e.appendChild(L({buttons:t.buttons||[]})),e},M=A(),$=t=>{const e=D(["c-d__b"]);return Object.keys(t.sections).forEach((n=>{e.appendChild((t=>{const e=D(["c-s"]),n=D(["c-s__i"]),i=D(["c-s__a-h"]),o=D(["c-s__a-p"]),a=D(["c-s__a-s"]);return i.innerHTML=`${t.title}`,o.innerHTML=t.perex,a.appendChild(t.switch),n.appendChild(i),n.appendChild(o),n.appendChild(a),e.appendChild(n),e})(t.sections[n]))})),e},R=t=>{const e=D(["c-d__u"]),n=(()=>{if(!window.CookieConsent.updated.length)return"";const t=new Date(window.CookieConsent.updated);return new Intl.DateTimeFormat(M.locale).format(t)})();if(n.length&&t.lastUpdated)return e.innerHTML=t.lastUpdated.replace("%date",n),e},P=A(),U=(()=>{const t=null===window||void 0===window?void 0:window.CookieConsentSettings;return{tabAgree:Object.assign(Object.assign({},_),null==t?void 0:t.tabAgree),tabAbout:Object.assign(Object.assign({},x),null==t?void 0:t.tabAbout)}})();class N extends HTMLElement{constructor(){super(),this.shadow=this.attachShadow({mode:"closed"}),this.componentStyle=O("style"),this.componentThemeStyle=O("style"),this.mainElement=D(["c-d","t"]),this.mainElement.setAttribute("role","dialog"),this.mainElement.setAttribute("aria-modal","true"),this.mainElement.setAttribute("aria-hidden","false"),this.innerElement=D(["c-d__i"]),this.tabButtonAgree=new z({label:P.tabAgree.title,active:!0}),this.tabButtonDetails=new z({label:P.tabDetail.title}),this.tabButtonAbout=new z({label:P.tabAbout.title}),this.switchButtonNecessary=T({checked:!0,disabled:!0}),this.switchButtonPreferences=T(),this.switchButtonStatistics=T(),this.switchButtonMarketing=T(),this.main()}initStyles(){this.componentStyle.textContent='*,:after,:before{-webkit-box-sizing:inherit;box-sizing:inherit}::-webkit-scrollbar{display:none}p{margin-bottom:30px;margin-top:30px}@-webkit-keyframes animate-in{0%{opacity:0;-webkit-transform:translate(-50%,-20%);transform:translate(-50%,-20%);visibility:hidden}to{opacity:1;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);visibility:visible}}@keyframes animate-in{0%{opacity:0;-webkit-transform:translate(-50%,-20%);transform:translate(-50%,-20%);visibility:hidden}to{opacity:1;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);visibility:visible}}@-webkit-keyframes animate-out{0%{opacity:1;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);visibility:visible}to{opacity:0;-webkit-transform:translate(-50%,-20%);transform:translate(-50%,-20%);visibility:hidden}}@keyframes animate-out{0%{opacity:1;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);visibility:visible}to{opacity:0;-webkit-transform:translate(-50%,-20%);transform:translate(-50%,-20%);visibility:hidden}}.a.in{-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-animation-name:animate-in;animation-name:animate-in}.a.in,.a.out{-webkit-animation-duration:.3s;animation-duration:.3s}.a.out{-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-animation-name:animate-out;animation-name:animate-out}.c-d__f,.c-d__h{-webkit-box-shadow:0 0 40px var(--color-white,#fff),0 0 30px var(--color-white,#fff),0 0 20px var(--color-white,#fff),0 0 10px var(--color-white,#fff),0 0 5px var(--color-white,#fff);box-shadow:0 0 40px var(--color-white,#fff),0 0 30px var(--color-white,#fff),0 0 20px var(--color-white,#fff),0 0 10px var(--color-white,#fff),0 0 5px var(--color-white,#fff)}.c-d{background-color:var(--color-white,#fff);border-radius:var(--border-radius,6px);-webkit-box-shadow:0 32px 68px rgba(0,0,0,.3);box-shadow:0 32px 68px rgba(0,0,0,.3);-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--base-color,#393939);display:block;font-family:var(--base-font-family,inherit);font-size:var(--base-font-size,15px);left:50%;letter-spacing:.1px;line-height:1.4;max-height:calc(100% - 20px);max-width:900px;overflow:hidden;position:fixed;text-align:initial;top:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);-webkit-transition:.2s linear;-o-transition:.2s linear;transition:.2s linear;-webkit-transition-property:width,max-width,top,bottom,left,opacity;-o-transition-property:width,max-width,top,bottom,left,opacity;transition-property:width,max-width,top,bottom,left,opacity;width:calc(100% - 20px);z-index:2147483631}.c-d__h{z-index:1}.c-d__h,.c-d__i{position:relative}.c-d__b,.c-d__i{display:block}.c-d__b{overflow:hidden;overflow-y:auto;padding:0 20px}.c-d__u{color:var(--color-text-light,#757575);display:block;font-size:85%}.c-d__f,.c-d__u{border-top:var(--base-line,1px solid #d0d0d0);padding:20px}.c-d__f{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-webkit-box-pack:end;-ms-flex-pack:end;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-direction:column-reverse;flex-direction:column-reverse;justify-content:flex-end;margin:0;position:relative;z-index:1}.c-d__f-b+.c-d__f-b{margin:0 0 10px}@media (min-width:600px){.c-d__b{padding:0 50px}.c-d__u{padding:20px 50px}.c-d__f{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.c-d__f-b+.c-d__f-b{margin:0 0 0 20px}}.c-b{-webkit-box-flex:0;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-appearance:button;-moz-appearance:button;appearance:button;border-radius:var(--button-border-radius,6px);cursor:pointer;-ms-flex:0 0 auto;flex:0 0 auto;font-family:inherit;font-size:100%;font-weight:600;justify-content:center;line-height:1.4;margin:0;min-height:60px;padding:5px 10px;text-decoration:none;-webkit-transition:.2s linear;-o-transition:.2s linear;transition:.2s linear;-webkit-transition-property:background-color,color,border,-webkit-box-shadow;transition-property:background-color,color,border,-webkit-box-shadow;-o-transition-property:background-color,color,border,box-shadow;transition-property:background-color,color,border,box-shadow;transition-property:background-color,color,border,box-shadow,-webkit-box-shadow;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.c-b,.c-b__i{display:-webkit-box;display:-ms-flexbox;display:flex}.c-b--d{background-color:var(--button-default__bg-color,#f4f4f4);border:var(--button-default__border,1px solid #f4f4f4);-webkit-box-shadow:var(--button-default__box-shadow,none);box-shadow:var(--button-default__box-shadow,none);color:var(--button-default__color,#242424);text-transform:var(--button-default__text-transform,none)}.c-b--d:hover{background-color:var(--button-default--hover__bg-color,#fff);border:var(--button-default--hover__border,1px solid #d1d1d1);-webkit-box-shadow:var(--button-default--hover__box-shadow,0 0 17px 0 rgba(0,0,0,.1));box-shadow:var(--button-default--hover__box-shadow,0 0 17px 0 rgba(0,0,0,.1));color:var(--button-default--hover__color,#242424)}.c-b--p{background-color:var(--button-primary__bg-color,#f8c132);border:var(--button-primary__border,0 none);-webkit-box-shadow:var(--button-primary__box-shadow,none);box-shadow:var(--button-primary__box-shadow,none);color:var(--button-primary__color,#242424);text-transform:var(--button-primary__text-transform,uppercase)}.c-b--p:hover{background-color:var(--button-primary--hover__bg-color,#efaf08);border:var(--button-primary--hover__border,0 none);-webkit-box-shadow:var(--button-primary--hover__box-shadow,none);box-shadow:var(--button-primary--hover__box-shadow,none);color:var(--button-primary--hover__color,#242424)}@media (min-width:600px){.c-b{min-width:200px;padding:10px 20px}}.c-ts{border-bottom:var(--base-line,1px solid #d0d0d0);display:grid;gap:10px;grid-template-columns:repeat(3,1fr);padding:0 20px}@media (min-width:600px){.c-ts{gap:30px;padding:0 50px}}.c-t{-webkit-box-pack:center;-ms-flex-pack:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-appearance:button;-moz-appearance:button;appearance:button;background-color:transparent;border:0;color:var(--color-text,#242424);cursor:pointer;display:-webkit-box;display:-ms-flexbox;display:flex;font-family:inherit;font-size:110%;justify-content:center;line-height:1.3;margin:0;min-height:60px;padding:0;position:relative;-webkit-transition:.2s linear;-o-transition:.2s linear;transition:.2s linear;-webkit-transition-property:background-color;-o-transition-property:background-color;transition-property:background-color;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.c-t__i,.c-t__l{display:block}.c-t__l{background-color:var(--color-primary,#f8c132);border-radius:var(--border-radius,6px);bottom:-1px;height:3px;left:50%;opacity:0;position:absolute;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%);-webkit-transition:.2s linear;-o-transition:.2s linear;transition:.2s linear;-webkit-transition-property:opacity,width;-o-transition-property:opacity,width;transition-property:opacity,width;width:0}.c-t--a{display:-webkit-box;display:-ms-flexbox;display:flex}.c-t--a .c-t__l{opacity:1;width:100%}@media (min-width:600px){.c-t{font-size:120%;min-height:70px;padding:0 20px}}.c-t-c{-webkit-box-orient:vertical;-webkit-box-direction:normal;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;max-height:calc(100vh - 110px)}.c-s{display:block;padding:30px 0}.c-s+.c-s{border-top:var(--base-line,1px solid #d0d0d0)}.c-s__i{display:grid;gap:20px 30px;grid-template-areas:"header switch" "perex perex";grid-template-columns:1fr auto}.c-s__a-h{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;grid-area:header}.c-s__a-p{grid-area:perex}.c-s__a-s{grid-area:switch}@media (min-width:600px){.c-s__i{grid-template-areas:"header header" "perex switch"}}.s-b__b,.s-b__b:before,.s-b__p{-webkit-transition:.2s linear;-o-transition:.2s linear;transition:.2s linear;-webkit-transition-property:background-color,opacity,-webkit-transform;transition-property:background-color,opacity,-webkit-transform;-o-transition-property:transform,background-color,opacity;transition-property:transform,background-color,opacity;transition-property:transform,background-color,opacity,-webkit-transform}.s-b__b,.s-b__b:before,.s-b__p,.s-b__p:before{border-radius:1000px}.s-b{cursor:pointer;display:grid;height:30px;position:relative;width:60px}.s-b__i{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;display:block;height:100%;left:0;margin:0;padding:0;position:absolute;top:0;width:100%;z-index:-1000}.s-b__b{display:block;overflow:hidden;position:relative}.s-b__b:before{background-color:var(--color-grey,#d6d6d6);content:"";height:100%;position:absolute;width:100%}.s-b__p{padding:3px;position:relative;-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0);width:50%}.s-b__p,.s-b__p:before{display:block;height:100%}.s-b__p:before{background-color:var(--color-white,#fff);content:"";width:100%}.s-b__i:checked~.s-b__b:before{background-color:var(--color-primary,#f8c132)}.s-b__i:checked~.s-b__b .s-b__p{-webkit-transform:translateX(100%);-ms-transform:translateX(100%);transform:translateX(100%)}.s-b__i:disabled~.s-b__b{cursor:default;opacity:.25}.s-b__i:disabled~.s-b__b:before{background-color:var(--color-grey,#d6d6d6)}.s-b__i:disabled:checked~.s-b__b:before{background-color:var(--color-primary,#f8c132)}',this.componentThemeStyle.textContent=(()=>{const t=Object.assign(Object.assign({},C),null===window||void 0===window?void 0:window.CookieConsentTheme);return{themeTextContent:`.t { ${Object.keys(t).map((e=>`--${e}: ${t[e]};`)).join(" ")} }`}})().themeTextContent;const t=this.tabButtonAgree.render(),n=this.tabButtonDetails.render(),i=this.tabButtonAbout.render();this.mainElement.style.display="none",this.mainElement.appendChild((t=>{const e=D(E(["c-ts"],t.modifier));return e.setAttribute("role","tablist"),t.tabs.forEach((t=>{e.appendChild(t)})),e})({tabs:[t,n,i],modifier:"c-d__h"})),this.mainElement.appendChild(this.innerElement),t.addEventListener(e,(()=>{this.setTabContentAgree()})),n.addEventListener(e,(()=>{this.setTabContentDetails()})),i.addEventListener(e,(()=>{this.setTabContentAbout()}))}setTabContent(t){this.innerElement.innerHTML="",this.innerElement.appendChild(t)}setTabContentAgree(){this.setTabContent(S({body:P.tabAgree.body,buttons:[!!U.tabAgree.showButtonRejectAll&&this.createButtonRejectAll(),this.createButtonEdit(),this.createButtonAllowAll()]})),this.tabButtonAgree.active=!0}setTabContentDetails(){this.setTabContent(this.tabContentDetails()),this.tabButtonDetails.active=!0}setTabContentAbout(){this.setTabContent(S({body:P.tabAbout.body,buttons:[!!U.tabAbout.showButtonRejectAll&&this.createButtonRejectAll(),this.createButtonEdit(),this.createButtonAllowAll()]})),this.tabButtonAbout.active=!0}tabContentDetails(){return this.switchButtonPreferences.setChecked(window.CookieConsent.preferences),this.switchButtonStatistics.setChecked(window.CookieConsent.statistics),this.switchButtonMarketing.setChecked(window.CookieConsent.marketing),(t=>{const e=D(["c-t-c"]),n=R(t);return e.appendChild($(t)),e.setAttribute("role","tabpanel"),n&&e.appendChild(n),e.appendChild(L({buttons:t.buttons||[]})),e})({buttons:[this.createButtonRejectAll(),this.createButtonConfirm()],lastUpdated:P.lastUpdated,sections:{necessary:Object.assign(Object.assign({},P.tabDetail.necessary),{switch:this.switchButtonNecessary}),preferences:Object.assign(Object.assign({},P.tabDetail.preferences),{switch:this.switchButtonPreferences}),statistics:Object.assign(Object.assign({},P.tabDetail.statistics),{switch:this.switchButtonStatistics}),marketing:Object.assign(Object.assign({},P.tabDetail.marketing),{switch:this.switchButtonMarketing})}})}updateConsentOnClick(t,e,n,i){window.CookieConsent.type=i,window.CookieConsent.preferences=t,window.CookieConsent.statistics=e,window.CookieConsent.marketing=n,this.closeModal()}createButtonEdit(){const t=B({label:P.buttonEdit.label,variant:"d",modifier:"c-d__f-b"});return t.addEventListener(e,(()=>{this.setTabContentDetails()})),t}createButtonAllowAll(){const t=B({label:P.buttonAllowAll.label,variant:"p",modifier:"c-d__f-b"});return t.addEventListener(e,(()=>{this.updateConsentOnClick(!0,!0,!0,"full")})),t}createButtonRejectAll(){const t=B({label:P.buttonRejectAll.label,variant:"d",modifier:"c-d__f-b"});return t.addEventListener(e,(()=>{this.switchButtonPreferences.setChecked(!1),this.switchButtonStatistics.setChecked(!1),this.switchButtonMarketing.setChecked(!1),this.updateConsentOnClick(!1,!1,!1,"rejected")})),t}createButtonConfirm(){const t=B({label:P.buttonConfirm.label,variant:"p",modifier:"c-d__f-b"});return t.addEventListener(e,(()=>{this.updateConsentOnClick(this.switchButtonPreferences.isChecked(),this.switchButtonStatistics.isChecked(),this.switchButtonMarketing.isChecked(),"advanced")})),t}appendCode(){this.shadow.appendChild(this.componentStyle),this.shadow.appendChild(this.componentThemeStyle),this.shadow.appendChild(this.mainElement)}closeModal(){setTimeout((()=>g(this,void 0,void 0,(function*(){yield((t,e)=>{let n;return new Promise((i=>{clearTimeout(n),t.style.animationDuration=`${e}ms`,t.classList.add("a"),t.classList.add("out"),n=setTimeout((()=>{t.style.display="none",t.classList.remove("out"),t.classList.remove("a"),t.style.animationDuration="",i()}),e)}))})(this.mainElement,300);const t=document.querySelector(i);null==t||t.remove()}))),500)}main(){return g(this,void 0,void 0,(function*(){this.initStyles(),this.appendCode(),this.setTabContentAgree(),yield((t,e)=>{let n;return new Promise((i=>{clearTimeout(n),t.style.display="block",t.style.animationDuration=`${e}ms`,t.classList.add("a"),t.classList.add("in"),n=setTimeout((()=>{t.classList.remove("in"),t.classList.remove("a"),t.style.animationDuration="",i()}),e)}))})(this.mainElement,300)}))}connectedCallback(){w()}disconnectedCallback(){k()}}customElements.define(i,N);const H=()=>{const t=O(i);document.body.appendChild(t)};window.CookieConsent=(()=>{const t=new ConsentService;return t.updated.length&&t.type.length||H(),t})(),window.CookieConsentModalOpen=()=>{H()}}(); \ No newline at end of file +!function(){"use strict";const t="CookieConsent",e="click",n="change",i="consent-dialog";function o(t){const e=function(){const t={};return document.cookie.split(";").forEach((e=>{const n=e.trim(),i=n.split("=")[0],o=n.replace(`${i}=`,"");t[i]=o})),t}();if(Object.keys(e).includes(t))return e[t]}function a(t,e,n){const i=[`${t}=${e}`,"path=/",`domain=${window.location.hostname.replace("www.","")}`,"Secure","SameSite=Lax"];if(n){const t=function(t){const e=new Date;return e.setTime(e.getTime()+24*t*60*60*1e3),e.toUTCString()}(n);i.push(`expires=${t}`)}const o=i.join("; ");return document.cookie=o,o}const s=t=>{const e=2+t;return`${Math.random().toFixed(e).slice(2,e)}.${(new Date).getTime().toString().slice(0,10)}`},r={necessary:!0,preferences:!1,statistics:!1,marketing:!1,updated:"",id:"",type:""};function l(t){return encodeURIComponent(JSON.stringify(t))}function c(e){return a(t,l(Object.assign(Object.assign({},e),{id:s(10)})),365),d()}function d(){if(!o(t))return c(r);const e=o(t);let n=r;return e&&(n=function(t){try{return JSON.parse(decodeURIComponent(t))}catch(e){return JSON.parse(decodeURIComponent(atob(t)))}}(e)),n.id&&n.id.length?n:c(n)}const b=(t,e)=>{let n=null;return(...i)=>{null!==n&&(clearTimeout(n),n=null),n=setTimeout((()=>t(...i)),e)}},p=new Event("consent-updated"),u=new Event("consent-show"),h=new Event("consent-hide"),m=new Event("consent-ready"),f=b((()=>{window.dispatchEvent(p)}),300),w=b((()=>{window.dispatchEvent(u)}),50),k=b((()=>{window.dispatchEvent(h)}),50),v=b((()=>{window.dispatchEvent(m)}),50),g={necessary:!0,preferences:!1,statistics:!1,marketing:!1,updated:"",id:"",type:""};class ConsentService{constructor(){this.getConsentData(),v()}get necessary(){return this.getConsentData(),g.necessary}set necessary(t){g.necessary=Boolean(t),this.updateConsentData()}get preferences(){return this.getConsentData(),g.preferences}set preferences(t){g.preferences=Boolean(t),this.updateConsentData()}get statistics(){return this.getConsentData(),g.statistics}set statistics(t){g.statistics=Boolean(t),this.updateConsentData()}get marketing(){return this.getConsentData(),g.marketing}set marketing(t){g.marketing=Boolean(t),this.updateConsentData()}get updated(){return this.getConsentData(),g.updated}get id(){return this.getConsentData(),g.id}get type(){return this.getConsentData(),g.type}set type(t){g.type=t,this.updateConsentData()}getConsentData(){const t=d();Object.keys(t).forEach((e=>{g[e]=t[e]}))}updateConsentData(){!function(e,n){const{id:i}=d(),o=Object.assign(Object.assign(Object.assign({},r),e),{updated:(s?new Date(s):new Date).toJSON(),id:i});var s;a(t,l(o),365);const c=d();n&&"function"==typeof n&&n.call(null,c)}(g,(()=>{f()}))}}function y(t,e,n,i){return new(n||(n=Promise))((function(o,a){function s(t){try{l(i.next(t))}catch(t){a(t)}}function r(t){try{l(i.throw(t))}catch(t){a(t)}}function l(t){var e;t.done?o(t.value):(e=t.value,e instanceof n?e:new n((function(t){t(e)}))).then(s,r)}l((i=i.apply(t,e||[])).next())}))}const x={showButtonRejectAll:!1},_={showButtonRejectAll:!1},C={},j={locale:"cs-CZ",tabAgree:{title:"Souhlas",body:"\n

Tato webová stránka používá cookies

\n

K personalizaci obsahu a reklam, poskytování funkcí sociálních médií a analýze naší návštěvnosti využíváme soubory cookie. Informace o tom, jak náš web používáte, sdílíme se svými partnery pro sociální média, inzerci a analýzy. Partneři tyto údaje mohou zkombinovat s dalšími informacemi, které jste jim poskytli nebo které získali v důsledku toho, že používáte jejich služby.

\n "},tabAbout:{title:"O aplikaci",body:"\n

Cookies jsou malé textové soubory, které mohou být používány webovými stránkami, aby učinily uživatelský zážitek více efektivní.

\n

Zákon uvádí, že můžeme ukládat cookies na vašem zařízení, pokud jsou nezbytně nutné pro provoz této stránky. Pro všechny ostatní typy cookies potřebujeme vaše povolení.

\n

Tato stránka používá různé typy cookies. Některé cookies jsou umístěny službami třetích stran, které se objevují na našich stránkách.

\n

Kdykoliv můžete změnit nebo zrušit svůj souhlas prostřednictvím Vyjádření o souborech cookie na našich webových stránkách.

\n "},tabDetail:{title:"Detail",necessary:{title:"Nutné",perex:"Nutné cookies pomáhají, aby byla webová stránka použitelná tak, že umožní základní funkce jako navigace stránky a přístup k zabezpečeným sekcím webové stránky. Webová stránka nemůže správně fungovat bez těchto cookies."},preferences:{title:"Preferenční",perex:"Preferenční cookies umožňují, aby si webová stránka zapamatovala informace, které mění, jak se webová stránka chová nebo jak vypadá. Je to například preferovaný jazyk nebo region, kde se nacházíte."},statistics:{title:"Statistické",perex:"Statistické cookies pomáhají majitelům webových stránek, aby porozuměli, jak návštěvníci používají webové stránky. Anonymně sbírají a sdělují informace."},marketing:{title:"Marketingové",perex:"Marketingové cookies jsou používány pro sledování návštěvníků na webových stránkách. Záměrem je zobrazit reklamu, která je relevantní a zajímavá pro jednotlivého uživatele a tímto hodnotnější pro vydavatele a inzerenty třetích stran."}},buttonEdit:{label:"Nastavit"},buttonAllowAll:{label:"Povolit vše"},buttonRejectAll:{label:"Odmítnout vše"},buttonConfirm:{label:"Potvrdit"},lastUpdated:"Prohlášení o cookies bylo naposledy aktualizováno %date."},A=()=>{var t,e,n,i,o;const a=null===window||void 0===window?void 0:window.CookieConsentTranslations;return{locale:(null==a?void 0:a.locale)||j.locale,tabAgree:Object.assign(Object.assign({},j.tabAgree),null==a?void 0:a.tabAgree),tabAbout:Object.assign(Object.assign({},j.tabAbout),null==a?void 0:a.tabAbout),tabDetail:{title:(null===(t=null==a?void 0:a.tabDetail)||void 0===t?void 0:t.title)||j.tabDetail.title,necessary:Object.assign(Object.assign({},j.tabDetail.necessary),null===(e=null==a?void 0:a.tabDetail)||void 0===e?void 0:e.necessary),preferences:Object.assign(Object.assign({},j.tabDetail.preferences),null===(n=null==a?void 0:a.tabDetail)||void 0===n?void 0:n.preferences),statistics:Object.assign(Object.assign({},j.tabDetail.statistics),null===(i=null==a?void 0:a.tabDetail)||void 0===i?void 0:i.statistics),marketing:Object.assign(Object.assign({},j.tabDetail.marketing),null===(o=null==a?void 0:a.tabDetail)||void 0===o?void 0:o.marketing)},buttonEdit:Object.assign(Object.assign({},j.buttonEdit),null==a?void 0:a.buttonEdit),buttonAllowAll:Object.assign(Object.assign({},j.buttonAllowAll),null==a?void 0:a.buttonAllowAll),buttonRejectAll:Object.assign(Object.assign({},j.buttonRejectAll),null==a?void 0:a.buttonRejectAll),buttonConfirm:Object.assign(Object.assign({},j.buttonConfirm),null==a?void 0:a.buttonConfirm),lastUpdated:(null==a?void 0:a.lastUpdated)||j.lastUpdated}},O=(t,e)=>{const n=document.createElement(t);return"button"===t&&n.setAttribute("type",t),e&&n.classList.add(...e.filter((t=>t))),n},D=t=>O("div",t),E=(t,e)=>e?[...t,...e.split(" ")]:t,B=t=>{const e=O("button",E(["c-b",t.variant?`c-b--${t.variant}`:""],t.modifier));return e.innerHTML=`${t.label}`,e};class z{constructor(t,e){if(this.props=t,this.element=O("button",["c-t"]),this.element.setAttribute("role","tab"),this.activeCallBack=e,this.element.innerHTML=`\n ${t.label}\n
\n `,this.props.modifier){const t=this.props.modifier.split(" ");this.element.classList.add(...t)}this.props.active&&(this.active=this.props.active),this.initListeners()}set active(t){var e,n;null===(e=this.element.parentElement)||void 0===e||e.querySelectorAll("button").forEach((t=>{t.classList.remove("c-t--a"),t.setAttribute("aria-selected","false")})),t?(this.element.classList.add("c-t--a"),this.element.setAttribute("aria-selected","true")):(this.element.classList.remove("c-t--a"),this.element.setAttribute("aria-selected","false")),this.active&&(null===(n=this.activeCallBack)||void 0===n||n.apply(null))}get active(){return this.element.classList.contains("c-t--a")}initListeners(){this.element.addEventListener(e,(()=>{this.active=!this.active}))}render(){return this.element}}const T=t=>{const e=D(),i=O("label",["s-b"]),o=O("input",["s-b__i"]),a=D(["s-b__b"]);return o.type="checkbox",o.checked=!!(null==t?void 0:t.checked),o.disabled=!!(null==t?void 0:t.disabled),a.innerHTML='
',o.addEventListener(n,(t=>{t.preventDefault(),i.setAttribute("aria-checked",`${t.target.checked}`),e.dispatchEvent(new Event(n))})),i.appendChild(o),i.appendChild(a),i.setAttribute("role","switch"),e.appendChild(i),e.isChecked=()=>o.checked,e.setChecked=t=>{o.checked=t,i.setAttribute("aria-checked",`${t}`)},e},L=t=>{const e=D(E(["c-d__f"],t.modifier));return t.buttons.filter((t=>t)).forEach((t=>{"boolean"!=typeof t&&e.appendChild(t)})),e},S=t=>{const e=D(["c-t-c"]),n=D(["c-d__b"]);return n.innerHTML=t.body||"props.body",e.setAttribute("role","tabpanel"),e.appendChild(n),e.appendChild(L({buttons:t.buttons||[]})),e},M=A(),$=t=>{const e=D(["c-d__b"]);return Object.keys(t.sections).forEach((n=>{e.appendChild((t=>{const e=D(["c-s"]),n=D(["c-s__i"]),i=D(["c-s__a-h"]),o=D(["c-s__a-p"]),a=D(["c-s__a-s"]);return i.innerHTML=`${t.title}`,o.innerHTML=t.perex,a.appendChild(t.switch),n.appendChild(i),n.appendChild(o),n.appendChild(a),e.appendChild(n),e})(t.sections[n]))})),e},R=t=>{const e=D(["c-d__u"]),n=(()=>{if(!window.CookieConsent.updated.length)return"";const t=new Date(window.CookieConsent.updated);return new Intl.DateTimeFormat(M.locale).format(t)})();if(n.length&&t.lastUpdated)return e.innerHTML=t.lastUpdated.replace("%date",n),e},P=A(),U=(()=>{const t=null===window||void 0===window?void 0:window.CookieConsentSettings;return{tabAgree:Object.assign(Object.assign({},x),null==t?void 0:t.tabAgree),tabAbout:Object.assign(Object.assign({},_),null==t?void 0:t.tabAbout)}})();class N extends HTMLElement{constructor(){super(),this.shadow=this.attachShadow({mode:"closed"}),this.componentStyle=O("style"),this.componentThemeStyle=O("style"),this.mainElement=D(["c-d","t"]),this.mainElement.setAttribute("role","dialog"),this.mainElement.setAttribute("aria-modal","true"),this.mainElement.setAttribute("aria-hidden","false"),this.innerElement=D(["c-d__i"]),this.tabButtonAgree=new z({label:P.tabAgree.title,active:!0}),this.tabButtonDetails=new z({label:P.tabDetail.title}),this.tabButtonAbout=new z({label:P.tabAbout.title}),this.switchButtonNecessary=T({checked:!0,disabled:!0}),this.switchButtonPreferences=T(),this.switchButtonStatistics=T(),this.switchButtonMarketing=T(),this.main()}initStyles(){this.componentStyle.textContent='*,:after,:before{-webkit-box-sizing:inherit;box-sizing:inherit}::-webkit-scrollbar{display:none}p{margin-bottom:30px;margin-top:30px}@-webkit-keyframes animate-in{0%{opacity:0;-webkit-transform:translate(-50%,-20%);transform:translate(-50%,-20%);visibility:hidden}to{opacity:1;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);visibility:visible}}@keyframes animate-in{0%{opacity:0;-webkit-transform:translate(-50%,-20%);transform:translate(-50%,-20%);visibility:hidden}to{opacity:1;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);visibility:visible}}@-webkit-keyframes animate-out{0%{opacity:1;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);visibility:visible}to{opacity:0;-webkit-transform:translate(-50%,-20%);transform:translate(-50%,-20%);visibility:hidden}}@keyframes animate-out{0%{opacity:1;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);visibility:visible}to{opacity:0;-webkit-transform:translate(-50%,-20%);transform:translate(-50%,-20%);visibility:hidden}}.a.in{-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-animation-name:animate-in;animation-name:animate-in}.a.in,.a.out{-webkit-animation-duration:.3s;animation-duration:.3s}.a.out{-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-animation-name:animate-out;animation-name:animate-out}.c-d__f,.c-d__h{-webkit-box-shadow:0 0 40px var(--color-white,#fff),0 0 30px var(--color-white,#fff),0 0 20px var(--color-white,#fff),0 0 10px var(--color-white,#fff),0 0 5px var(--color-white,#fff);box-shadow:0 0 40px var(--color-white,#fff),0 0 30px var(--color-white,#fff),0 0 20px var(--color-white,#fff),0 0 10px var(--color-white,#fff),0 0 5px var(--color-white,#fff)}.c-d{background-color:var(--color-white,#fff);border-radius:var(--border-radius,6px);-webkit-box-shadow:0 1px 6px rgba(5,27,44,.06),0 2px 32px rgba(5,27,44,.16);box-shadow:0 1px 6px rgba(5,27,44,.06),0 2px 32px rgba(5,27,44,.16);-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--base-color,#393939);display:block;font-family:var(--base-font-family,inherit);font-size:var(--base-font-size,15px);left:50%;letter-spacing:.1px;line-height:1.4;max-height:calc(100% - 20px);max-width:900px;overflow:hidden;position:fixed;text-align:initial;top:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);-webkit-transition:.2s linear;-o-transition:.2s linear;transition:.2s linear;-webkit-transition-property:width,max-width,top,bottom,left,opacity;-o-transition-property:width,max-width,top,bottom,left,opacity;transition-property:width,max-width,top,bottom,left,opacity;width:calc(100% - 20px);z-index:2147483631}.c-d__h{z-index:1}.c-d__h,.c-d__i{position:relative}.c-d__b,.c-d__i{display:block}.c-d__b{overflow:hidden;overflow-y:auto;padding:0 20px}.c-d__u{color:var(--color-text-light,#757575);display:block;font-size:85%}.c-d__f,.c-d__u{border-top:var(--base-line,1px solid #d0d0d0);padding:20px}.c-d__f{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-webkit-box-pack:end;-ms-flex-pack:end;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-direction:column-reverse;flex-direction:column-reverse;justify-content:flex-end;margin:0;position:relative;z-index:1}.c-d__f-b+.c-d__f-b{margin:0 0 10px}@media (min-width:600px){.c-d__b{padding:0 50px}.c-d__u{padding:20px 50px}.c-d__f{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.c-d__f-b+.c-d__f-b{margin:0 0 0 20px}}.c-b{-webkit-box-flex:0;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-appearance:button;-moz-appearance:button;appearance:button;border-radius:var(--button-border-radius,6px);cursor:pointer;-ms-flex:0 0 auto;flex:0 0 auto;font-family:inherit;font-size:100%;font-weight:600;justify-content:center;line-height:1.4;margin:0;min-height:60px;padding:5px 10px;text-decoration:none;-webkit-transition:.2s linear;-o-transition:.2s linear;transition:.2s linear;-webkit-transition-property:background-color,color,border,-webkit-box-shadow;transition-property:background-color,color,border,-webkit-box-shadow;-o-transition-property:background-color,color,border,box-shadow;transition-property:background-color,color,border,box-shadow;transition-property:background-color,color,border,box-shadow,-webkit-box-shadow;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.c-b,.c-b__i{display:-webkit-box;display:-ms-flexbox;display:flex}.c-b--d{background-color:var(--button-default__bg-color,#f4f4f4);border:var(--button-default__border,1px solid #f4f4f4);-webkit-box-shadow:var(--button-default__box-shadow,none);box-shadow:var(--button-default__box-shadow,none);color:var(--button-default__color,#242424);text-transform:var(--button-default__text-transform,none)}.c-b--d:hover{background-color:var(--button-default--hover__bg-color,#fff);border:var(--button-default--hover__border,1px solid #d1d1d1);-webkit-box-shadow:var(--button-default--hover__box-shadow,0 0 17px 0 rgba(0,0,0,.1));box-shadow:var(--button-default--hover__box-shadow,0 0 17px 0 rgba(0,0,0,.1));color:var(--button-default--hover__color,#242424)}.c-b--p{background-color:var(--button-primary__bg-color,#f8c132);border:var(--button-primary__border,0 none);-webkit-box-shadow:var(--button-primary__box-shadow,none);box-shadow:var(--button-primary__box-shadow,none);color:var(--button-primary__color,#242424);text-transform:var(--button-primary__text-transform,uppercase)}.c-b--p:hover{background-color:var(--button-primary--hover__bg-color,#efaf08);border:var(--button-primary--hover__border,0 none);-webkit-box-shadow:var(--button-primary--hover__box-shadow,none);box-shadow:var(--button-primary--hover__box-shadow,none);color:var(--button-primary--hover__color,#242424)}@media (min-width:600px){.c-b{min-width:200px;padding:10px 20px}}.c-ts{border-bottom:var(--base-line,1px solid #d0d0d0);display:grid;gap:10px;grid-template-columns:repeat(3,1fr);padding:0 20px}@media (min-width:600px){.c-ts{gap:30px;padding:0 50px}}.c-t{-webkit-box-pack:center;-ms-flex-pack:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-appearance:button;-moz-appearance:button;appearance:button;background-color:transparent;border:0;color:var(--color-text,#242424);cursor:pointer;display:-webkit-box;display:-ms-flexbox;display:flex;font-family:inherit;font-size:110%;justify-content:center;line-height:1.3;margin:0;min-height:60px;padding:0;position:relative;-webkit-transition:.2s linear;-o-transition:.2s linear;transition:.2s linear;-webkit-transition-property:background-color;-o-transition-property:background-color;transition-property:background-color;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.c-t__i,.c-t__l{display:block}.c-t__l{background-color:var(--color-primary,#f8c132);border-radius:var(--border-radius,6px);bottom:-1px;height:3px;left:50%;opacity:0;position:absolute;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%);-webkit-transition:.2s linear;-o-transition:.2s linear;transition:.2s linear;-webkit-transition-property:opacity,width;-o-transition-property:opacity,width;transition-property:opacity,width;width:0}.c-t--a{display:-webkit-box;display:-ms-flexbox;display:flex}.c-t--a .c-t__l{opacity:1;width:100%}@media (min-width:600px){.c-t{font-size:120%;min-height:70px;padding:0 20px}}.c-t-c{-webkit-box-orient:vertical;-webkit-box-direction:normal;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;max-height:calc(100vh - 110px)}.c-s{display:block;padding:30px 0}.c-s+.c-s{border-top:var(--base-line,1px solid #d0d0d0)}.c-s__i{display:grid;gap:20px 30px;grid-template-areas:"header switch" "perex perex";grid-template-columns:1fr auto}.c-s__a-h{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;grid-area:header}.c-s__a-p{grid-area:perex}.c-s__a-s{grid-area:switch}@media (min-width:600px){.c-s__i{grid-template-areas:"header header" "perex switch"}}.s-b__b,.s-b__b:before,.s-b__p{-webkit-transition:.2s linear;-o-transition:.2s linear;transition:.2s linear;-webkit-transition-property:background-color,opacity,-webkit-transform;transition-property:background-color,opacity,-webkit-transform;-o-transition-property:transform,background-color,opacity;transition-property:transform,background-color,opacity;transition-property:transform,background-color,opacity,-webkit-transform}.s-b__b,.s-b__b:before,.s-b__i,.s-b__p,.s-b__p:before{border-radius:1000px}.s-b{cursor:pointer;display:grid;height:30px;position:relative;width:60px}.s-b__i{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:0;display:block;height:100%;left:0;margin:0;padding:0;position:absolute;top:0;width:100%;z-index:-1000}.s-b__b{display:block;overflow:hidden;position:relative}.s-b__b:before{background-color:var(--color-grey,#d6d6d6);content:"";height:100%;position:absolute;width:100%}.s-b__p{padding:3px;position:relative;-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0);width:50%}.s-b__p,.s-b__p:before{display:block;height:100%}.s-b__p:before{background-color:var(--color-white,#fff);content:"";width:100%}.s-b__i:checked~.s-b__b:before{background-color:var(--color-primary,#f8c132)}.s-b__i:checked~.s-b__b .s-b__p{-webkit-transform:translateX(100%);-ms-transform:translateX(100%);transform:translateX(100%)}.s-b__i:disabled~.s-b__b{cursor:default;opacity:.25}.s-b__i:disabled~.s-b__b:before{background-color:var(--color-grey,#d6d6d6)}.s-b__i:disabled:checked~.s-b__b:before{background-color:var(--color-primary,#f8c132)}',this.componentThemeStyle.textContent=(()=>{const t=Object.assign(Object.assign({},C),null===window||void 0===window?void 0:window.CookieConsentTheme);return{themeTextContent:`.t { ${Object.keys(t).map((e=>`--${e}: ${t[e]};`)).join(" ")} }`}})().themeTextContent;const t=this.tabButtonAgree.render(),n=this.tabButtonDetails.render(),i=this.tabButtonAbout.render();this.mainElement.style.display="none",this.mainElement.appendChild((t=>{const e=D(E(["c-ts"],t.modifier));return e.setAttribute("role","tablist"),t.tabs.forEach((t=>{e.appendChild(t)})),e})({tabs:[t,n,i],modifier:"c-d__h"})),this.mainElement.appendChild(this.innerElement),t.addEventListener(e,(()=>{this.setTabContentAgree()})),n.addEventListener(e,(()=>{this.setTabContentDetails()})),i.addEventListener(e,(()=>{this.setTabContentAbout()}))}setTabContent(t){this.innerElement.innerHTML="",this.innerElement.appendChild(t)}setTabContentAgree(){this.setTabContent(S({body:P.tabAgree.body,buttons:[!!U.tabAgree.showButtonRejectAll&&this.createButtonRejectAll(),this.createButtonEdit(),this.createButtonAllowAll()]})),this.tabButtonAgree.active=!0}setTabContentDetails(){this.setTabContent(this.tabContentDetails()),this.tabButtonDetails.active=!0}setTabContentAbout(){this.setTabContent(S({body:P.tabAbout.body,buttons:[!!U.tabAbout.showButtonRejectAll&&this.createButtonRejectAll(),this.createButtonEdit(),this.createButtonAllowAll()]})),this.tabButtonAbout.active=!0}tabContentDetails(){return this.switchButtonPreferences.setChecked(window.CookieConsent.preferences),this.switchButtonStatistics.setChecked(window.CookieConsent.statistics),this.switchButtonMarketing.setChecked(window.CookieConsent.marketing),(t=>{const e=D(["c-t-c"]),n=R(t);return e.appendChild($(t)),e.setAttribute("role","tabpanel"),n&&e.appendChild(n),e.appendChild(L({buttons:t.buttons||[]})),e})({buttons:[this.createButtonRejectAll(),this.createButtonConfirm()],lastUpdated:P.lastUpdated,sections:{necessary:Object.assign(Object.assign({},P.tabDetail.necessary),{switch:this.switchButtonNecessary}),preferences:Object.assign(Object.assign({},P.tabDetail.preferences),{switch:this.switchButtonPreferences}),statistics:Object.assign(Object.assign({},P.tabDetail.statistics),{switch:this.switchButtonStatistics}),marketing:Object.assign(Object.assign({},P.tabDetail.marketing),{switch:this.switchButtonMarketing})}})}updateConsentOnClick(t,e,n,i){window.CookieConsent.type=i,window.CookieConsent.preferences=t,window.CookieConsent.statistics=e,window.CookieConsent.marketing=n,this.closeModal()}createButtonEdit(){const t=B({label:P.buttonEdit.label,variant:"d",modifier:"c-d__f-b"});return t.addEventListener(e,(()=>{this.setTabContentDetails()})),t}createButtonAllowAll(){const t=B({label:P.buttonAllowAll.label,variant:"p",modifier:"c-d__f-b"});return t.addEventListener(e,(()=>{this.updateConsentOnClick(!0,!0,!0,"full")})),t}createButtonRejectAll(){const t=B({label:P.buttonRejectAll.label,variant:"d",modifier:"c-d__f-b"});return t.addEventListener(e,(()=>{this.switchButtonPreferences.setChecked(!1),this.switchButtonStatistics.setChecked(!1),this.switchButtonMarketing.setChecked(!1),this.updateConsentOnClick(!1,!1,!1,"rejected")})),t}createButtonConfirm(){const t=B({label:P.buttonConfirm.label,variant:"p",modifier:"c-d__f-b"});return t.addEventListener(e,(()=>{this.updateConsentOnClick(this.switchButtonPreferences.isChecked(),this.switchButtonStatistics.isChecked(),this.switchButtonMarketing.isChecked(),"advanced")})),t}appendCode(){this.shadow.appendChild(this.componentStyle),this.shadow.appendChild(this.componentThemeStyle),this.shadow.appendChild(this.mainElement)}closeModal(){setTimeout((()=>y(this,void 0,void 0,(function*(){yield((t,e)=>{let n;return new Promise((i=>{clearTimeout(n),t.style.animationDuration=`${e}ms`,t.classList.add("a"),t.classList.add("out"),n=setTimeout((()=>{t.style.display="none",t.classList.remove("out"),t.classList.remove("a"),t.style.animationDuration="",i()}),e)}))})(this.mainElement,300);const t=document.querySelector(i);null==t||t.remove()}))),500)}main(){return y(this,void 0,void 0,(function*(){this.initStyles(),this.appendCode(),this.setTabContentAgree(),yield((t,e)=>{let n;return new Promise((i=>{clearTimeout(n),t.style.display="block",t.style.animationDuration=`${e}ms`,t.classList.add("a"),t.classList.add("in"),n=setTimeout((()=>{t.classList.remove("in"),t.classList.remove("a"),t.style.animationDuration="",i()}),e)}))})(this.mainElement,300)}))}connectedCallback(){w()}disconnectedCallback(){k()}}customElements.define(i,N);const H=()=>{if(document.querySelectorAll(i).length)return;const t=O(i);document.body.appendChild(t)};window.CookieConsent=(()=>{const t=new ConsentService;return t.updated.length&&t.type.length||H(),t})(),window.CookieConsentModalOpen=()=>{H()}}(); \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 12c9e4c..a781b79 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@zoot/cookie-consent", - "version": "1.4.0", + "version": "1.4.1", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@zoot/cookie-consent", - "version": "1.4.0", + "version": "1.4.1", "license": "MIT", "devDependencies": { "@rollup/plugin-node-resolve": "^13.1.1", @@ -44,7 +44,7 @@ "typescript": "^4.5.4" }, "engines": { - "node": ">=12" + "node": ">=14" } }, "node_modules/@babel/code-frame": { diff --git a/package.json b/package.json index aa05557..56dd064 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@zoot/cookie-consent", - "version": "1.4.0", + "version": "1.4.1", "description": "ZOOT cookie consent", "main": "dist/cookies.js", "files": [ diff --git a/public/example.html b/public/example.html index f52b3c4..a82690f 100644 --- a/public/example.html +++ b/public/example.html @@ -73,7 +73,7 @@ (function cookiesInit() { var scriptEl = document.createElement('script'); - scriptEl.src = 'https://cdn.jsdelivr.net/gh/danielsitek/dgp-cookie-consent@1.4.0/dist/cookies.min.js'; + scriptEl.src = 'https://cdn.jsdelivr.net/gh/danielsitek/dgp-cookie-consent@1.4.1/dist/cookies.min.js'; scriptEl.type = 'text/javascript'; scriptEl.id = 'cookie-consent-main'; @@ -184,7 +184,7 @@ (function cookiesInit() { var scriptEl = document.createElement('script'); - scriptEl.src = 'https://cdn.jsdelivr.net/gh/danielsitek/dgp-cookie-consent@1.4.0/dist/cookies.min.js'; + scriptEl.src = 'https://cdn.jsdelivr.net/gh/danielsitek/dgp-cookie-consent@1.4.1/dist/cookies.min.js'; scriptEl.type = 'text/javascript'; scriptEl.id = 'cookie-consent-main'; @@ -289,7 +289,7 @@ (function cookiesInit() { var scriptEl = document.createElement('script'); - scriptEl.src = 'https://cdn.jsdelivr.net/gh/danielsitek/dgp-cookie-consent@1.4.0/dist/cookies.min.js'; + scriptEl.src = 'https://cdn.jsdelivr.net/gh/danielsitek/dgp-cookie-consent@1.4.1/dist/cookies.min.js'; scriptEl.type = 'text/javascript'; scriptEl.id = 'cookie-consent';