From 30621705bfc40245927e5724fda962f03d3b178a Mon Sep 17 00:00:00 2001 From: Orest Bida Date: Fri, 21 Apr 2023 17:36:21 +0200 Subject: [PATCH] Ignore script tags whose category is not defined (fix #506) --- dist/cookieconsent.esm.js | 2 +- dist/cookieconsent.umd.js | 2 +- dist/core/cookieconsent-core.esm.js | 2 +- dist/core/cookieconsent-core.umd.js | 2 +- src/core/global.js | 2 +- src/utils/general.js | 10 +++++++--- 6 files changed, 12 insertions(+), 8 deletions(-) diff --git a/dist/cookieconsent.esm.js b/dist/cookieconsent.esm.js index c90080fb..a22ab607 100644 --- a/dist/cookieconsent.esm.js +++ b/dist/cookieconsent.esm.js @@ -4,4 +4,4 @@ * Author Orest Bida * Released under the MIT License */ -const e='opt-in',t='opt-out',o='show--consent',n='show--preferences',a='disable--interaction',s='data-category',c='div',r='button',i='aria-hidden',l='btn-group',d='click',f='data-role',_='consentModal',u='preferencesModal';class p{constructor(){this.t={mode:e,revision:0,autoShow:!0,lazyHtmlGeneration:!0,autoClearCookies:!0,manageScriptTags:!0,hideFromBots:!0,cookie:{name:'cc_cookie',expiresAfterDays:182,domain:'',path:'/',sameSite:'Lax'}},this.o={i:{},l:'',_:{},u:{},p:{},m:[],g:!1,v:null,h:null,C:null,S:'',M:!0,T:!1,D:!1,A:!1,k:!1,N:[],H:!1,F:!0,V:[],I:!1,P:'',j:!1,O:[],R:[],B:[],G:[],J:!1,L:!1,U:!1,$:[],q:[],K:null,W:[],X:[],Y:{},Z:{},ee:{},te:{},oe:{},ne:[],ae:[]},this.se={ce:{},re:{}},this.ie={},this.le={de:'cc:onFirstConsent',fe:'cc:onConsent',_e:'cc:onChange',ue:'cc:onModalShow',pe:'cc:onModalHide',me:'cc:onModalReady'}}}const m=new p,g=(e,t)=>e.indexOf(t),b=(e,t)=>-1!==g(e,t),v=e=>Array.isArray(e),y=e=>'string'==typeof e,h=e=>!!e&&'object'==typeof e&&!v(e),C=e=>'function'==typeof e,w=e=>Object.keys(e),S=e=>Array.from(new Set(e)),x=()=>document.activeElement,M=e=>e.preventDefault(),T=(e,t)=>e.querySelectorAll(t),D=e=>e.dispatchEvent(new Event('change')),E=e=>{const t=document.createElement(e);return e===r&&(t.type=e),t},A=(e,t,o)=>e.setAttribute(t,o),k=(e,t,o)=>{e.removeAttribute(o?'data-'+t:t)},N=(e,t,o)=>e.getAttribute(o?'data-'+t:t),H=(e,t)=>e.appendChild(t),F=(e,t)=>e.classList.add(t),V=(e,t)=>F(e,'cm__'+t),I=(e,t)=>F(e,'pm__'+t),P=(e,t)=>e.classList.remove(t),j=e=>{if('object'!=typeof e)return e;if(e instanceof Date)return new Date(e.getTime());let t=Array.isArray(e)?[]:{};for(let o in e){let n=e[o];t[o]=j(n)}return t},O=()=>{const e={},{O:t,Y:o,Z:n}=m.o;for(const a of t)e[a]=J(n[a],w(o[a]));return e},R=(e,t)=>dispatchEvent(new CustomEvent(e,{detail:t})),B=(e,t,o,n)=>{e.addEventListener(t,o),n&&m.o.m.push({ge:e,be:t,ve:o})},G=()=>{const e=m.t.cookie.expiresAfterDays;return C(e)?e(m.o.P):e},J=(e,t)=>{const o=e||[],n=t||[];return o.filter((e=>!b(n,e))).concat(n.filter((e=>!b(o,e))))},L=e=>{m.o.R=S(e),m.o.P=(()=>{let e='custom';const{R:t,O:o,B:n}=m.o,a=t.length;return a===o.length?e='all':a===n.length&&(e='necessary'),e})()},U=(e,t,o,n)=>{const a='accept-',{show:s,showPreferences:c,hide:r,hidePreferences:i,acceptCategory:l}=t,f=e||document,_=e=>T(f,`[data-cc="${e}"]`),u=(e,t)=>{M(e),l(t),i(),r()},p=_('show-preferencesModal'),g=_('show-consentModal'),b=_(a+'all'),v=_(a+'necessary'),y=_(a+'custom'),h=m.t.lazyHtmlGeneration;for(const e of p)A(e,'aria-haspopup','dialog'),B(e,d,(e=>{M(e),c()})),h&&B(e,'mouseenter',(e=>{M(e),m.o.k||o(t,n)}),!0);for(let e of g)A(e,'aria-haspopup','dialog'),B(e,d,(e=>{M(e),s(!0)}),!0);for(let e of b)B(e,d,(e=>{u(e,'all')}),!0);for(let e of y)B(e,d,(e=>{u(e)}),!0);for(let e of v)B(e,d,(e=>{u(e,[])}),!0)},z=(e,t)=>{e?.focus(),t&&(m.o.K=1===t?m.se.ye:m.se.he,m.o.W=1===t?m.o.$:m.o.q)};let $;const q=e=>{clearTimeout($),e?F(m.se.Ce,a):$=setTimeout((()=>{P(m.se.Ce,a)}),500)},K=['[href]',r,'input','details','[tabindex]'].map((e=>e+':not([tabindex="-1"])')).join(','),Q=e=>{const{o:t,se:o}=m,n=(e,t)=>{const o=T(e,K);t[0]=o[0],t[1]=o[o.length-1]};1===e&&t.T&&n(o.we,t.$),2===e&&t.k&&n(o.Se,t.q)},W=(e,t,o)=>{const{_e:n,fe:a,de:s,pe:c,me:r,ue:i}=m.ie,l=m.le,d={cookie:m.o.p};if(t){const n={modalName:t};return e===l.ue?C(i)&&i(n):e===l.pe?C(c)&&c(n):(n.modal=o,C(r)&&r(n)),R(e,n)}e===l.de?C(s)&&s(j(d)):e===l.fe?C(a)&&a(j(d)):(d.changedCategories=m.o.V,d.changedServices=m.o.te,C(n)&&n(j(d))),R(e,j(d))},X=e=>{const{Z:t,te:o,O:n,Y:a,ne:c,ae:r,p:i,V:l}=m.o;for(const e of n){const n=o[e]||t[e]||[];for(const o of n){const n=a[e][o];if(!n)continue;const{onAccept:s,onReject:c}=n;!n.xe&&b(t[e],o)&&C(s)?(n.xe=!0,s()):n.xe&&!b(t[e],o)&&C(c)&&(n.xe=!1,c())}}if(!m.t.manageScriptTags)return;const d=c,f=e||i.categories||[],_=(e,n)=>{if(n{_(e,++n)}),a.replaceWith(r),o)return}}_(e,++n)}};_(d,0)},Y='bottom',Z='left',ee='center',te='right',oe='inline',ne='wide',ae='pm--',se=['middle','top',Y],ce=[Z,ee,te],re={box:{Ae:[ne,oe],ke:se,Ne:ce,He:Y,Fe:te},cloud:{Ae:[oe],ke:se,Ne:ce,He:Y,Fe:ee},bar:{Ae:[oe],ke:se.slice(1),Ne:[],He:Y,Fe:''}},ie={box:{Ae:[],ke:[],Ne:[],He:'',Fe:''},bar:{Ae:[ne],ke:[],Ne:[Z,te],He:'',Fe:Z}},le=e=>{const t=m.o.i.guiOptions,o=t?.consentModal,n=t?.preferencesModal;0===e&&de(m.se.we,re,o,'cm--','box','cm'),1===e&&de(m.se.Se,ie,n,ae,'box','pm')},de=(e,t,o,n,a,s)=>{e.className=s;const c=o?.layout,r=o?.position,i=o?.flipButtons,l=!1!==o?.equalWeightButtons,d=c?.split(' ')||[],f=d[0],_=d[1],u=f in t?f:a,p=t[u],g=b(p.Ae,_)&&_,v=r?.split(' ')||[],y=v[0],h=n===ae?v[0]:v[1],C=b(p.ke,y)?y:p.He,w=b(p.Ne,h)?h:p.Fe,S=t=>F(e,n+t);S(u),S(g),S(C),S(w),i&&S('flip');const x=s+'__btn--secondary';if('cm'===s){const{Ve:e,Ie:t}=m.se;e&&(l?P(e,x):F(e,x)),t&&(l?P(t,x):F(t,x))}else{const{Pe:e}=m.se;e&&(l?P(e,x):F(e,x))}},fe=(e,t)=>{const o=m.o,n=m.se,{hide:a,hidePreferences:s,acceptCategory:_}=e,p=e=>{_(e),s(),a()},g=o.u&&o.u.preferencesModal;if(!g)return;const b=g.title,v=g.closeIconLabel,C=g.acceptAllBtn,S=g.acceptNecessaryBtn,x=g.savePreferencesBtn,M=g.sections,T=C||S||x;if(n.he)n.je=E(c),I(n.je,'body');else{n.he=E(c),F(n.he,'pm-wrapper'),n.he.tabIndex=-1;const e=E('div');F(e,'pm-overlay'),H(n.he,e),B(e,d,s),n.Se=E(c),n.Se.style.visibility='hidden',F(n.Se,'pm'),A(n.Se,'role','dialog'),A(n.Se,i,!0),A(n.Se,'aria-modal',!0),A(n.Se,'aria-labelledby','pm__title'),B(n.Ce,'keydown',(e=>{27===e.keyCode&&s()}),!0),n.Oe=E(c),I(n.Oe,'header'),n.Re=E(c),I(n.Re,'title'),n.Re.id='pm__title',A(n.Re,'role','heading'),A(n.Re,'aria-level','2'),n.Be=E(r),I(n.Be,'close-btn'),A(n.Be,'aria-label',g.closeIconLabel||''),B(n.Be,d,s),n.Ge=E('span'),n.Ge.tabIndex=-1,H(n.Be,n.Ge),n.Je=E(c),I(n.Je,'body'),n.Le=E(c),I(n.Le,'footer');var D=E(c);F(D,'btns');var k=E(c),N=E(c);I(k,l),I(N,l),H(n.Le,k),H(n.Le,N),H(n.Oe,n.Re),H(n.Oe,n.Be),H(n.Se,n.Oe),H(n.Se,n.Je),T&&H(n.Se,n.Le),H(n.he,n.Se)}let V;b&&(n.Re.innerHTML=b,v&&A(n.Be,'aria-label',v)),M?.forEach(((e,t)=>{const a=e.title,s=e.description,l=e.linkedCategory,f=l&&o.j[l],_=e.cookieTable,u=_?.body,p=_?.caption,m=u?.length>0,b=!!f,v=b&&o.Y[l],C=h(v)&&w(v)||[],S=b&&(!!s||!!m||w(v).length>0);var x=E(c);if(I(x,'section'),S||s){var M=E(c);I(M,'section-desc-wrapper')}let T=C.length;if(S&&T>0){const e=E(c);I(e,'section-services');for(const t of C){const o=v[t],n=o?.label||t,a=E(c),s=E(c),r=E(c),i=E(c);I(a,'service'),I(i,'service-title'),I(s,'service-header'),I(r,'service-icon');const d=_e(n,t,f,!0,l);i.innerHTML=n,H(s,r),H(s,i),H(a,s),H(a,d),H(e,a)}H(M,e)}if(a){var D=E(c),k=E(b?r:c);if(I(D,'section-title-wrapper'),I(k,'section-title'),k.innerHTML=a,H(D,k),b){const e=E('span');I(e,'section-arrow'),H(D,e),x.className+='--toggle';const t=_e(a,l,f);let o=g.serviceCounterLabel;if(T>0&&y(o)){let e=E('span');I(e,'badge'),I(e,'service-counter'),A(e,i,!0),A(e,'data-servicecounter',T),o&&(o=o.split('|'),o=o.length>1&&T>1?o[1]:o[0],A(e,'data-counterlabel',o)),e.innerHTML=T+(o?' '+o:''),H(k,e)}if(S){I(x,'section--expandable');var N=l+'-desc';A(k,'aria-expanded',!1),A(k,'aria-controls',N)}H(D,t)}else A(k,'role','heading'),A(k,'aria-level','3');H(x,D)}if(s){var j=E(c);I(j,'section-desc'),j.innerHTML=s,H(M,j)}if(S&&(A(M,i,'true'),M.id=N,((e,t,o)=>{B(k,d,(()=>{t.classList.contains('is-expanded')?(P(t,'is-expanded'),A(o,'aria-expanded','false'),A(e,i,'true')):(F(t,'is-expanded'),A(o,'aria-expanded','true'),A(e,i,'false'))}))})(M,x,k),m)){const e=E('table'),o=E('thead'),a=E('tbody');if(p){const t=E('caption');I(t,'table-caption'),t.innerHTML=p,e.appendChild(t)}I(e,'section-table'),I(o,'table-head'),I(a,'table-body');const s=_.headers,r=w(s),i=n.Ue.createDocumentFragment(),l=E('tr');A(l,'role','row');for(const e of r){const o=s[e],n=E('th');n.id='cc__row-'+o+t,A(n,'scope','col'),I(n,'table-th'),n.innerHTML=o,H(i,n)}H(l,i),H(o,l);const d=n.Ue.createDocumentFragment();for(const e of u){const o=E('tr');A(o,'role','row'),I(o,'table-tr');for(const n of r){const a=s[n],r=e[n],i=E('td'),l=E(c);I(i,'table-td'),A(i,'data-column',a),A(i,'headers','cc__row-'+a+t),l.insertAdjacentHTML('beforeend',r),H(i,l),H(o,i)}H(d,o)}H(a,d),H(e,o),H(e,a),H(M,e)}(S||s)&&H(x,M);const O=n.je||n.Je;b?(V||(V=E(c),I(V,'section-toggles')),V.appendChild(x)):V=null,H(O,V||x)})),(C||S)&&(S&&(n.Pe||(n.Pe=E(r),I(n.Pe,'btn'),A(n.Pe,f,'necessary'),H(k,n.Pe),B(n.Pe,d,(()=>p([])))),n.Pe.innerHTML=S),C&&(n.ze||(n.ze=E(r),I(n.ze,'btn'),A(n.ze,f,'all'),H(k,n.ze),B(n.ze,d,(()=>p('all')))),n.ze.innerHTML=C)),x&&(n.$e||(n.$e=E(r),I(n.$e,'btn'),I(n.$e,'btn--secondary'),A(n.$e,f,'save'),H(N,n.$e),B(n.$e,d,(()=>p()))),n.$e.innerHTML=x),n.je&&(n.Se.replaceChild(n.je,n.Je),n.Je=n.je),le(1),o.k||(o.k=!0,W(m.le.me,u,n.Se),t(e),Q(2),H(n.qe,n.he),setTimeout((()=>F(n.he,'cc--anim')),100))};function _e(e,o,n,a,c){const r=m.o,l=m.se,f=E('label'),_=E('input'),u=E('span'),p=E('span'),g=E('span'),v=E('span');if(_.type='checkbox',F(f,'section__toggle-wrapper'),F(_,'section__toggle'),F(g,'toggle__icon-on'),F(v,'toggle__icon-off'),F(u,'toggle__icon'),F(p,'toggle__label'),A(u,i,'true'),a?(F(f,'toggle-service'),A(_,s,c),l.re[c][o]=_):l.ce[o]=_,a?(e=>{B(_,'change',(()=>{const t=l.re[e],o=l.ce[e];r.ee[e]=[];for(let o in t){const n=t[o];n.checked&&r.ee[e].push(n.value)}o.checked=r.ee[e].length>0}))})(c):(e=>{B(_,d,(()=>{const t=l.re[e],o=_.checked;r.ee[e]=[];for(let n in t)t[n].checked=o,o&&r.ee[e].push(n)}))})(o),_.value=o,p.textContent=e.replace(/<.*>.*<\/.*>/gm,''),H(u,v),H(u,g),r.M)(n.readOnly||r.i.mode===t&&n.enabled)&&(_.checked=!0);else if(a){const e=r.Z[c];_.checked=n.readOnly||b(e,o)}else b(r.R,o)&&(_.checked=!0);return n.readOnly&&(_.disabled=!0),H(f,_),H(f,u),H(f,p),f}const ue=()=>{const e=E('span');return e.tabIndex=-1,m.se.Ke||(m.se.Ke=e),e},pe=(e,t)=>{const o=m.o,n=m.se,{hide:a,showPreferences:s,acceptCategory:u}=e,p=o.u&&o.u.consentModal;if(!p)return;const g=p.acceptAllBtn,b=p.acceptNecessaryBtn,v=p.showPreferencesBtn,y=p.closeIconLabel,h=p.footer,C=p.label,w=p.title,S=e=>{a(),u(e)};if(!n.ye){n.ye=E(c),n.we=E(c),n.Qe=E(c),n.We=E(c),n.Xe=E(c),F(n.ye,'cm-wrapper'),F(n.we,'cm'),V(n.Qe,'body'),V(n.We,'texts'),V(n.Xe,'btns'),n.ye.tabIndex=-1,A(n.we,'role','dialog'),A(n.we,'aria-modal','true'),A(n.we,i,'false'),A(n.we,'aria-describedby','cm__desc'),C?A(n.we,'aria-label',C):w&&A(n.we,'aria-labelledby','cm__title'),n.we.style.visibility='hidden';const e='box',t=o.i.guiOptions,a=t?.consentModal,s=(a?.layout||e).split(' ')[0]===e;w&&y&&s&&(n.Ie||(n.Ie=E(r),V(n.Ie,'btn'),V(n.Ie,'btn--close'),B(n.Ie,d,(()=>{S([])})),H(n.Qe,n.Ie)),A(n.Ie,'aria-label',y)),H(n.Qe,n.We),(g||b||v)&&H(n.Qe,n.Xe),H(n.we,n.Qe),H(n.ye,n.we)}w&&(n.Ye||(n.Ye=E(c),n.Ye.className=n.Ye.id='cm__title',A(n.Ye,'role','heading'),A(n.Ye,'aria-level','2'),H(n.We,n.Ye)),n.Ye.innerHTML=w);let x=p.description;if(x&&(o.H&&(x=x.replace('{{revisionMessage}}',o.F?'':p.revisionMessage||'')),n.Ze||(n.Ze=E(c),n.Ze.className=n.Ze.id='cm__desc',H(n.We,n.Ze)),n.Ze.innerHTML=x),g&&(n.et||(n.et=E(r),H(n.et,ue()),V(n.et,'btn'),A(n.et,f,'all'),B(n.et,d,(()=>{S('all')}))),n.et.firstElementChild.innerHTML=g),b&&(n.Ve||(n.Ve=E(r),H(n.Ve,ue()),V(n.Ve,'btn'),A(n.Ve,f,'necessary'),B(n.Ve,d,(()=>{S([])}))),n.Ve.firstElementChild.innerHTML=b),v&&(n.tt||(n.tt=E(r),H(n.tt,ue()),V(n.tt,'btn'),V(n.tt,'btn--secondary'),A(n.tt,f,'show'),B(n.tt,'mouseenter',(()=>{o.k||fe(e,t)})),B(n.tt,d,s)),n.tt.firstElementChild.innerHTML=v),n.ot||(n.ot=E(c),V(n.ot,l),b&&H(n.ot,n.Ve),g&&H(n.ot,n.et),(g||b)&&H(n.Qe,n.ot),H(n.Xe,n.ot)),n.tt&&!n.nt&&(n.nt=E(c),n.Ve&&n.et?(V(n.nt,l),H(n.nt,n.tt),H(n.Xe,n.nt)):(H(n.ot,n.tt),V(n.ot,l+'--uneven'))),h){if(!n.st){let e=E(c),t=E(c);n.st=E(c),V(e,'footer'),V(t,'links'),V(n.st,'link-group'),H(t,n.st),H(e,t),H(n.we,e)}n.st.innerHTML=h}le(0),o.T||(o.T=!0,W(m.le.me,_,n.we),t(e),Q(1),H(n.qe,n.ye),setTimeout((()=>F(n.ye,'cc--anim')),100)),U(n.Qe,e,fe,t)},me=e=>y(e)&&e in m.o._,ge=()=>m.o.l||m.o.i.language.default,be=e=>{e&&(m.o.l=e)},ve=async e=>{const t=m.o;let o;o=e&&me(e)?e:ge();let n=t._[o];if(!n)return!1;if(y(n)){const e=await(async e=>{try{const t=await fetch(e,{method:'GET'});return!!t.ok&&await t.json()}catch(e){return!1}})(n);if(!e)return!1;n=e}return t.u=n,be(o),!0},ye=()=>{let e=m.o.i.language.rtl,t=m.se.qe;e&&t&&(v(e)||(e=[e]),b(e,m.o.l)?F(t,'cc--rtl'):P(t,'cc--rtl'))},he=()=>{const e=m.se;if(!e.qe){e.qe=E(c),e.qe.id='cc-main',ye();let t=m.o.i.root;t&&y(t)&&(t=document.querySelector(t)),(t||e.Ue.body).appendChild(e.qe)}},Ce=e=>{const{hostname:t,protocol:o}=location,{name:n,path:a,domain:s,sameSite:c}=m.t.cookie,r=encodeURIComponent(JSON.stringify(m.o.p)),i=e?(()=>{const e=m.o.C,t=e?new Date-e:0;return 864e5*G()-t})():864e5*G(),l=new Date;l.setTime(l.getTime()+i);let d=n+'='+r+(0!==i?'; expires='+l.toUTCString():'')+'; Path='+a+'; SameSite='+c;b(t,'.')&&(d+='; Domain='+s),'https:'===o&&(d+='; Secure'),document.cookie=d,m.o.p},we=(e,t,o)=>{const n=o||m.t.cookie.domain,a=t||m.t.cookie.path,s='www.'===n.slice(0,4),c=s&&n.substring(4),r=(e,t)=>{document.cookie=e+'=; path='+a+(t?'; domain=.'+t:'')+'; expires=Thu, 01 Jan 1970 00:00:01 GMT;'};for(const t of e)r(t),r(t,n),s&&r(t,c)},Se=e=>(e=>{let t;try{t=JSON.parse(decodeURIComponent(e))}catch(e){t={}}return t})(xe(e||m.t.cookie.name,!0)),xe=(e,t)=>{const o=document.cookie.match('(^|;)\\s*'+e+'\\s*=\\s*([^;]+)');return o?t?o.pop():e:''},Me=e=>{const t=document.cookie.split(/;\s*/),o=[];for(const n of t){let t=n.split('=')[0];if(e)try{e.test(t)&&o.push(t)}catch(e){}else o.push(t)}return o},Te=(o,n=[])=>{((e,t)=>{const{O:o,R:n,B:a,k:s,ee:c,Y:r}=m.o;let i=[];if(e){v(e)?i.push(...e):y(e)&&(i='all'===e?o:[e]);for(const e of o)c[e]=b(i,e)?w(r[e]):[]}else i=s?(()=>{const e=m.se.ce;if(!e)return[];let t=[];for(let o in e)e[o].checked&&t.push(o);return t})():n;i=i.filter((e=>!b(o,e)||!b(t,e))),i.push(...a),L(i)})(o,n),(e=>{const t=m.o,{ee:o,B:n,Z:a,Y:s,O:c}=t,r=c;t.oe=j(a);for(const e of r){const t=s[e],c=w(t),r=o[e]?.length>0,i=b(n,e);if(0!==c.length){if(a[e]=[],i)a[e].push(...c);else if(r){const t=o[e];a[e].push(...t)}else a[e]=[];a[e]=S(a[e])}}})(),(()=>{const o=m.o;m.t.mode===t&&o.M?o.V=J(o.G,o.R):o.V=J(o.R,o.p.categories);let n=o.V.length>0,a=!1;for(const e of o.O)o.te[e]=J(o.Z[e],o.oe[e]),o.te[e].length>0&&(a=!0);const s=m.se.ce;for(let e in s)s[e].checked=b(o.R,e);for(const e of o.O){const t=m.se.re[e],n=o.Z[e];for(const e in t)t[e].checked=b(n,e)}o.h||(o.h=new Date),o.S||(o.S=([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g,(e=>(e^crypto.getRandomValues(new Uint8Array(1))[0]&15>>e/4).toString(16)))),o.p={categories:j(o.R),revision:m.t.revision,data:o.v,consentTimestamp:o.h.toISOString(),consentId:o.S,services:j(o.Z)};let c=!1;(o.M||n||a)&&(o.M&&(o.M=!1,c=!0),o.C?o.C=new Date:o.C=o.h,o.p.lastConsentTimestamp=o.C.toISOString(),Ce(),m.t.autoClearCookies&&(c||!o.M&&n)&&(e=>{const t=m.o,o=Me();t.I=!1;let n=e?t.O:t.V;n=n.filter((e=>{let o=t.j[e];return!!o&&!o.readOnly&&!!o.autoClear}));for(const a of n){const n=t.j[a].autoClear,s=n?.cookies||[],c=b(t.V,a),r=!b(t.R,a),i=c&&r;if(e&&r||!e&&i){!0===n.reloadPage&&i&&(t.I=!0);for(const e of s){let t=[];const n=e.name,a=e.domain,s=e.path;if(n instanceof RegExp)for(let e of o)n.test(e)&&t.push(e);else{let e=g(o,n);e>-1&&t.push(o[e])}t.length>0&&we(t,s,a)}}}})(c),X()),c&&(W(m.le.de),W(m.le.fe),m.t.mode===e)||((n||a)&&W(m.le._e),o.I&&location.reload())})()},De=e=>{const t=m.o.M?[]:m.o.R;return b(t,e)},Ee=(e,t)=>{const{O:o,Y:n}=m.o;if(!(e&&t&&y(t)&&b(o,t)&&0!==w(n[t]).length))return!1;((e,t)=>{const o=m.o,{Y:n,ee:a,k:s}=o,c=m.se.re[t]||{},r=m.se.ce[t]||{},i=w(n[t]);if(a[t]=[],y(e)){if('all'===e){if(a[t].push(...i),s)for(let e in c)c[e].checked=!0,D(c[e])}else if(b(i,e)&&a[t].push(e),s)for(let t in c)c[t].checked=e===t,D(c[t])}else if(v(e))for(let o of i){const n=b(e,o);n&&a[t].push(o),s&&(c[o].checked=n,D(c[o]))}const l=0===a[t].length;o.R=l?o.R.filter((e=>e!==t)):S([...o.R,t]),s&&(r.checked=!l,D(r))})(e,t),Te()},Ae=(e,t)=>{const o=m.o.M?[]:m.o.Z[t];return b(o,e)},ke=e=>''!==xe(e,!0),Ne=(e,t,o)=>{let n=[];const a=e=>{if(y(e)){let t=xe(e);''!==t&&n.push(t)}else n.push(...Me(e))};if(v(e))for(let t of e)a(t);else a(e);we(n,t,o)},He=e=>{const{se:t,o:n}=m;if(!n.D){if(!n.T){if(!e)return;pe(Pe,he)}n.D=!0,n.L=x(),n.g&&q(!0),F(t.Ce,o),A(t.we,i,'false'),z(t.ye,1),W(m.le.ue,_)}},Fe=()=>{const{se:e,o:t,le:n}=m;t.D&&(t.D=!1,t.g&&q(),z(e.Ke),P(e.Ce,o),A(e.we,i,'true'),z(t.L),t.L=null,W(n.pe,_))},Ve=()=>{const e=m.o;e.A||(e.k||fe(Pe,he),e.A=!0,F(m.se.Ce,n),A(m.se.Se,i,'false'),e.D?e.U=x():e.L=x(),z(m.se.he,2),W(m.le.ue,u))},Ie=()=>{const e=m.o;e.A&&(e.A=!1,z(m.se.Ge),P(m.se.Ce,n),A(m.se.Se,i,'true'),e.D?(z(e.U,1),e.U=null):(z(e.L),e.L=null),W(m.le.pe,u))};var Pe={show:He,hide:Fe,showPreferences:Ve,hidePreferences:Ie,acceptCategory:Te};const je=async(e,t)=>{if(!me(e))return!1;const o=m.o;return!(e===ge()&&!0!==t||!await ve(e)||(be(e),o.T&&pe(Pe,he),o.k&&fe(Pe,he),ye(),0))},Oe=()=>{const{P:e,Z:t}=m.o,{accepted:o,rejected:n}=(()=>{const{M:e,R:t,O:o}=m.o;return{accepted:t,rejected:e?[]:o.filter((e=>!b(t,e)))}})();return j({acceptType:e,acceptedCategories:o,rejectedCategories:n,acceptedServices:t,rejectedServices:O()})},Re=(e,t)=>{let o=document.querySelector('script[src="'+e+'"]');return new Promise((n=>{if(o)return n(!0);if(o=E('script'),h(t))for(const e in t)A(o,e,t[e]);o.onload=()=>n(!0),o.onerror=()=>{o.remove(),n(!1)},o.src=e,H(document.head,o)}))},Be=e=>{let t,o=e.value,n=e.mode,a=!1;const s=m.o;if('update'===n){s.v=t=Ge('data');const e=typeof t==typeof o;if(e&&'object'==typeof t){!t&&(t={});for(let e in o)t[e]!==o[e]&&(t[e]=o[e],a=!0)}else!e&&t||t===o||(t=o,a=!0)}else t=o,a=!0;return a&&(s.v=t,s.p.data=t,Ce(!0)),a},Ge=(e,t)=>{const o=Se(t);return e?o[e]:o},Je=e=>{const t=m.t,o=m.o.i;return e?t[e]||o[e]:{...t,...o,cookie:{...t.cookie}}},Le=()=>!m.o.M,Ue=async e=>{const{o:o,t:n,le:a}=m,c=window;if(!c._ccRun){if(c._ccRun=!0,(e=>{const{se:o,t:n,o:a}=m,c=n,r=a,{cookie:i}=c,l=m.ie,d=e.cookie,f=e.categories,_=w(f)||[],u=navigator,p=document;o.Ue=p,o.Ce=p.documentElement,i.domain=location.hostname,r.i=e,r.j=f,r.O=_,r._=e.language.translations,r.g=!!e.disablePageInteraction,l.de=e.onFirstConsent,l.fe=e.onConsent,l._e=e.onChange,l.pe=e.onModalHide,l.ue=e.onModalShow,l.me=e.onModalReady;const{mode:g,autoShow:v,lazyHtmlGeneration:y,autoClearCookies:C,revision:S,manageScriptTags:x,hideFromBots:M}=e;g===t&&(c.mode=g),'boolean'==typeof C&&(c.autoClearCookies=C),'boolean'==typeof x&&(c.manageScriptTags=x),'number'==typeof S&&S>=0&&(c.revision=S,r.H=!0),'boolean'==typeof v&&(c.autoShow=v),'boolean'==typeof y&&(c.lazyHtmlGeneration=y),!1===M&&(c.hideFromBots=!1),!0===c.hideFromBots&&u&&(r.J=u.userAgent&&/bot|crawl|spider|slurp|teoma/i.test(u.userAgent)||u.webdriver),h(d)&&(c.cookie={...i,...d}),c.autoClearCookies,r.H,c.manageScriptTags,(e=>{const{j:t,Y:o,Z:n,ee:a,B:s}=m.o;for(let c of e){const e=t[c],r=e.services||{},i=h(r)&&w(r)||[];o[c]={},n[c]=[],a[c]=[],e.readOnly&&(s.push(c),n[c]=i),m.se.re[c]={};for(let e of i){const t=r[e];t.xe=!1,o[c][e]=t}}})(_),(()=>{if(!m.t.manageScriptTags)return;const e=m.o;e.ne=T(m.se.Ue,'script['+s+']'),e.ae=[];for(const t of e.ne){let o=N(t,s),n=t.dataset.service||'',a=!1;if(o&&'!'===o.charAt(0)&&(o=o.slice(1),a=!0),'!'===n.charAt(0)&&(n=n.slice(1),a=!0),b(e.O,o)&&(e.ae.push({De:!1,Ee:a,Me:o,Te:n}),n)){const t=e.Y[o];t[n]||(t[n]={xe:!1})}}})(),be((()=>{const e=m.o.i.language.autoDetect;if(e){let t;if('browser'===e?t=navigator.language.slice(0,2).toLowerCase():'document'===e&&(t=document.documentElement.lang),me(t))return t}return ge()})())})(e),o.J)return;(()=>{const e=m.o,o=m.t,n=Se(),{categories:a,services:s,consentId:c,consentTimestamp:r,lastConsentTimestamp:i,data:l,revision:d}=n,f=v(a);e.p=n,e.S=c;const _=!!c&&y(c);e.h=r,e.h&&(e.h=new Date(r)),e.C=i,e.C&&(e.C=new Date(i)),e.v=void 0!==l?l:null,e.H&&_&&d!==o.revision&&(e.F=!1),e.M=!(_&&e.F&&e.h&&e.C&&f),e.M,e.M?o.mode===t&&((()=>{const e=m.o;for(const t of e.O){const o=e.j[t];if(o.enabled||o.readOnly){e.G.push(t);const o=e.Y[t]||{};for(let n in o)e.Z[t].push(n)}}})(),e.R=[...e.G]):(e.Z={...e.Z,...s},L([...e.B,...a])),e.ee={...e.Z}})();const r=Le();if(!await ve())return!1;if(await(async e=>{U(null,e,fe,he),m.o.M&&pe(e,he),m.t.lazyHtmlGeneration||fe(e,he),(()=>{const e=m.se,t=m.o;B(e.Ce,'keydown',(e=>{if('Tab'!==e.key)return;if(!t.A&&!t.D)return;const o=t.W,n=t.K;if(o.length>0){const t=x();e.shiftKey?t!==o[0]&&n.contains(t)||(M(e),z(o[1])):t!==o[1]&&n.contains(t)||(M(e),z(o[0]))}}),!0)})()})(Pe),n.autoShow&&!r&&He(!0),r)return X(),W(a.fe);n.mode===t&&X(o.G)}},ze=e=>{const{qe:t,Ce:s}=m.se,{name:c,path:r,domain:i}=m.t.cookie;e&&Ne(c,r,i);for(const{ge:e,be:t,ve:o}of m.o.m)e.removeEventListener(t,o);t?.remove(),s?.classList.remove(a,n,o);const l=new p;for(const e in m)m[e]=l[e];window._ccRun=!1};export{Te as acceptCategory,Ee as acceptService,De as acceptedCategory,Ae as acceptedService,Ne as eraseCookies,Je as getConfig,Ge as getCookie,Oe as getUserPreferences,Fe as hide,Ie as hidePreferences,Re as loadScript,ze as reset,Ue as run,Be as setCookieData,je as setLanguage,He as show,Ve as showPreferences,Le as validConsent,ke as validCookie}; +const e='opt-in',t='opt-out',o='show--consent',n='show--preferences',a='disable--interaction',s='data-category',c='div',r='button',i='aria-hidden',l='btn-group',d='click',f='data-role',_='consentModal',u='preferencesModal';class p{constructor(){this.t={mode:e,revision:0,autoShow:!0,lazyHtmlGeneration:!0,autoClearCookies:!0,manageScriptTags:!0,hideFromBots:!0,cookie:{name:'cc_cookie',expiresAfterDays:182,domain:'',path:'/',sameSite:'Lax'}},this.o={i:{},l:'',_:{},u:{},p:{},m:[],g:!1,v:null,h:null,C:null,S:'',M:!0,T:!1,D:!1,A:!1,k:!1,N:[],H:!1,F:!0,V:[],I:!1,P:'',j:!1,O:[],R:[],B:[],G:[],J:!1,L:!1,U:!1,$:[],q:[],K:null,W:[],X:[],Y:{},Z:{},ee:{},te:{},oe:{},ne:[],ae:[]},this.se={ce:{},re:{}},this.ie={},this.le={de:'cc:onFirstConsent',fe:'cc:onConsent',_e:'cc:onChange',ue:'cc:onModalShow',pe:'cc:onModalHide',me:'cc:onModalReady'}}}const m=new p,g=(e,t)=>e.indexOf(t),b=(e,t)=>-1!==g(e,t),v=e=>Array.isArray(e),y=e=>'string'==typeof e,h=e=>!!e&&'object'==typeof e&&!v(e),C=e=>'function'==typeof e,w=e=>Object.keys(e),S=e=>Array.from(new Set(e)),x=()=>document.activeElement,M=e=>e.preventDefault(),T=(e,t)=>e.querySelectorAll(t),D=e=>e.dispatchEvent(new Event('change')),E=e=>{const t=document.createElement(e);return e===r&&(t.type=e),t},A=(e,t,o)=>e.setAttribute(t,o),k=(e,t,o)=>{e.removeAttribute(o?'data-'+t:t)},N=(e,t,o)=>e.getAttribute(o?'data-'+t:t),H=(e,t)=>e.appendChild(t),F=(e,t)=>e.classList.add(t),V=(e,t)=>F(e,'cm__'+t),I=(e,t)=>F(e,'pm__'+t),P=(e,t)=>e.classList.remove(t),j=e=>{if('object'!=typeof e)return e;if(e instanceof Date)return new Date(e.getTime());let t=Array.isArray(e)?[]:{};for(let o in e){let n=e[o];t[o]=j(n)}return t},O=()=>{const e={},{O:t,Y:o,Z:n}=m.o;for(const a of t)e[a]=J(n[a],w(o[a]));return e},R=(e,t)=>dispatchEvent(new CustomEvent(e,{detail:t})),B=(e,t,o,n)=>{e.addEventListener(t,o),n&&m.o.m.push({ge:e,be:t,ve:o})},G=()=>{const e=m.t.cookie.expiresAfterDays;return C(e)?e(m.o.P):e},J=(e,t)=>{const o=e||[],n=t||[];return o.filter((e=>!b(n,e))).concat(n.filter((e=>!b(o,e))))},L=e=>{m.o.R=S(e),m.o.P=(()=>{let e='custom';const{R:t,O:o,B:n}=m.o,a=t.length;return a===o.length?e='all':a===n.length&&(e='necessary'),e})()},U=(e,t,o,n)=>{const a='accept-',{show:s,showPreferences:c,hide:r,hidePreferences:i,acceptCategory:l}=t,f=e||document,_=e=>T(f,`[data-cc="${e}"]`),u=(e,t)=>{M(e),l(t),i(),r()},p=_('show-preferencesModal'),g=_('show-consentModal'),b=_(a+'all'),v=_(a+'necessary'),y=_(a+'custom'),h=m.t.lazyHtmlGeneration;for(const e of p)A(e,'aria-haspopup','dialog'),B(e,d,(e=>{M(e),c()})),h&&B(e,'mouseenter',(e=>{M(e),m.o.k||o(t,n)}),!0);for(let e of g)A(e,'aria-haspopup','dialog'),B(e,d,(e=>{M(e),s(!0)}),!0);for(let e of b)B(e,d,(e=>{u(e,'all')}),!0);for(let e of y)B(e,d,(e=>{u(e)}),!0);for(let e of v)B(e,d,(e=>{u(e,[])}),!0)},z=(e,t)=>{e?.focus(),t&&(m.o.K=1===t?m.se.ye:m.se.he,m.o.W=1===t?m.o.$:m.o.q)};let $;const q=e=>{clearTimeout($),e?F(m.se.Ce,a):$=setTimeout((()=>{P(m.se.Ce,a)}),500)},K=['[href]',r,'input','details','[tabindex]'].map((e=>e+':not([tabindex="-1"])')).join(','),Q=e=>{const{o:t,se:o}=m,n=(e,t)=>{const o=T(e,K);t[0]=o[0],t[1]=o[o.length-1]};1===e&&t.T&&n(o.we,t.$),2===e&&t.k&&n(o.Se,t.q)},W=(e,t,o)=>{const{_e:n,fe:a,de:s,pe:c,me:r,ue:i}=m.ie,l=m.le,d={cookie:m.o.p};if(t){const n={modalName:t};return e===l.ue?C(i)&&i(n):e===l.pe?C(c)&&c(n):(n.modal=o,C(r)&&r(n)),R(e,n)}e===l.de?C(s)&&s(j(d)):e===l.fe?C(a)&&a(j(d)):(d.changedCategories=m.o.V,d.changedServices=m.o.te,C(n)&&n(j(d))),R(e,j(d))},X=e=>{const{Z:t,te:o,O:n,Y:a,ne:c,ae:r,p:i,V:l}=m.o;for(const e of n){const n=o[e]||t[e]||[];for(const o of n){const n=a[e][o];if(!n)continue;const{onAccept:s,onReject:c}=n;!n.xe&&b(t[e],o)&&C(s)?(n.xe=!0,s()):n.xe&&!b(t[e],o)&&C(c)&&(n.xe=!1,c())}}if(!m.t.manageScriptTags)return;const d=c,f=e||i.categories||[],_=(e,n)=>{if(n{_(e,++n)}),a.replaceWith(r),o)return}}_(e,++n)}};_(d,0)},Y='bottom',Z='left',ee='center',te='right',oe='inline',ne='wide',ae='pm--',se=['middle','top',Y],ce=[Z,ee,te],re={box:{Ae:[ne,oe],ke:se,Ne:ce,He:Y,Fe:te},cloud:{Ae:[oe],ke:se,Ne:ce,He:Y,Fe:ee},bar:{Ae:[oe],ke:se.slice(1),Ne:[],He:Y,Fe:''}},ie={box:{Ae:[],ke:[],Ne:[],He:'',Fe:''},bar:{Ae:[ne],ke:[],Ne:[Z,te],He:'',Fe:Z}},le=e=>{const t=m.o.i.guiOptions,o=t?.consentModal,n=t?.preferencesModal;0===e&&de(m.se.we,re,o,'cm--','box','cm'),1===e&&de(m.se.Se,ie,n,ae,'box','pm')},de=(e,t,o,n,a,s)=>{e.className=s;const c=o?.layout,r=o?.position,i=o?.flipButtons,l=!1!==o?.equalWeightButtons,d=c?.split(' ')||[],f=d[0],_=d[1],u=f in t?f:a,p=t[u],g=b(p.Ae,_)&&_,v=r?.split(' ')||[],y=v[0],h=n===ae?v[0]:v[1],C=b(p.ke,y)?y:p.He,w=b(p.Ne,h)?h:p.Fe,S=t=>F(e,n+t);S(u),S(g),S(C),S(w),i&&S('flip');const x=s+'__btn--secondary';if('cm'===s){const{Ve:e,Ie:t}=m.se;e&&(l?P(e,x):F(e,x)),t&&(l?P(t,x):F(t,x))}else{const{Pe:e}=m.se;e&&(l?P(e,x):F(e,x))}},fe=(e,t)=>{const o=m.o,n=m.se,{hide:a,hidePreferences:s,acceptCategory:_}=e,p=e=>{_(e),s(),a()},g=o.u&&o.u.preferencesModal;if(!g)return;const b=g.title,v=g.closeIconLabel,C=g.acceptAllBtn,S=g.acceptNecessaryBtn,x=g.savePreferencesBtn,M=g.sections,T=C||S||x;if(n.he)n.je=E(c),I(n.je,'body');else{n.he=E(c),F(n.he,'pm-wrapper'),n.he.tabIndex=-1;const e=E('div');F(e,'pm-overlay'),H(n.he,e),B(e,d,s),n.Se=E(c),n.Se.style.visibility='hidden',F(n.Se,'pm'),A(n.Se,'role','dialog'),A(n.Se,i,!0),A(n.Se,'aria-modal',!0),A(n.Se,'aria-labelledby','pm__title'),B(n.Ce,'keydown',(e=>{27===e.keyCode&&s()}),!0),n.Oe=E(c),I(n.Oe,'header'),n.Re=E(c),I(n.Re,'title'),n.Re.id='pm__title',A(n.Re,'role','heading'),A(n.Re,'aria-level','2'),n.Be=E(r),I(n.Be,'close-btn'),A(n.Be,'aria-label',g.closeIconLabel||''),B(n.Be,d,s),n.Ge=E('span'),n.Ge.tabIndex=-1,H(n.Be,n.Ge),n.Je=E(c),I(n.Je,'body'),n.Le=E(c),I(n.Le,'footer');var D=E(c);F(D,'btns');var k=E(c),N=E(c);I(k,l),I(N,l),H(n.Le,k),H(n.Le,N),H(n.Oe,n.Re),H(n.Oe,n.Be),H(n.Se,n.Oe),H(n.Se,n.Je),T&&H(n.Se,n.Le),H(n.he,n.Se)}let V;b&&(n.Re.innerHTML=b,v&&A(n.Be,'aria-label',v)),M?.forEach(((e,t)=>{const a=e.title,s=e.description,l=e.linkedCategory,f=l&&o.j[l],_=e.cookieTable,u=_?.body,p=_?.caption,m=u?.length>0,b=!!f,v=b&&o.Y[l],C=h(v)&&w(v)||[],S=b&&(!!s||!!m||w(v).length>0);var x=E(c);if(I(x,'section'),S||s){var M=E(c);I(M,'section-desc-wrapper')}let T=C.length;if(S&&T>0){const e=E(c);I(e,'section-services');for(const t of C){const o=v[t],n=o?.label||t,a=E(c),s=E(c),r=E(c),i=E(c);I(a,'service'),I(i,'service-title'),I(s,'service-header'),I(r,'service-icon');const d=_e(n,t,f,!0,l);i.innerHTML=n,H(s,r),H(s,i),H(a,s),H(a,d),H(e,a)}H(M,e)}if(a){var D=E(c),k=E(b?r:c);if(I(D,'section-title-wrapper'),I(k,'section-title'),k.innerHTML=a,H(D,k),b){const e=E('span');I(e,'section-arrow'),H(D,e),x.className+='--toggle';const t=_e(a,l,f);let o=g.serviceCounterLabel;if(T>0&&y(o)){let e=E('span');I(e,'badge'),I(e,'service-counter'),A(e,i,!0),A(e,'data-servicecounter',T),o&&(o=o.split('|'),o=o.length>1&&T>1?o[1]:o[0],A(e,'data-counterlabel',o)),e.innerHTML=T+(o?' '+o:''),H(k,e)}if(S){I(x,'section--expandable');var N=l+'-desc';A(k,'aria-expanded',!1),A(k,'aria-controls',N)}H(D,t)}else A(k,'role','heading'),A(k,'aria-level','3');H(x,D)}if(s){var j=E(c);I(j,'section-desc'),j.innerHTML=s,H(M,j)}if(S&&(A(M,i,'true'),M.id=N,((e,t,o)=>{B(k,d,(()=>{t.classList.contains('is-expanded')?(P(t,'is-expanded'),A(o,'aria-expanded','false'),A(e,i,'true')):(F(t,'is-expanded'),A(o,'aria-expanded','true'),A(e,i,'false'))}))})(M,x,k),m)){const e=E('table'),o=E('thead'),a=E('tbody');if(p){const t=E('caption');I(t,'table-caption'),t.innerHTML=p,e.appendChild(t)}I(e,'section-table'),I(o,'table-head'),I(a,'table-body');const s=_.headers,r=w(s),i=n.Ue.createDocumentFragment(),l=E('tr');A(l,'role','row');for(const e of r){const o=s[e],n=E('th');n.id='cc__row-'+o+t,A(n,'scope','col'),I(n,'table-th'),n.innerHTML=o,H(i,n)}H(l,i),H(o,l);const d=n.Ue.createDocumentFragment();for(const e of u){const o=E('tr');A(o,'role','row'),I(o,'table-tr');for(const n of r){const a=s[n],r=e[n],i=E('td'),l=E(c);I(i,'table-td'),A(i,'data-column',a),A(i,'headers','cc__row-'+a+t),l.insertAdjacentHTML('beforeend',r),H(i,l),H(o,i)}H(d,o)}H(a,d),H(e,o),H(e,a),H(M,e)}(S||s)&&H(x,M);const O=n.je||n.Je;b?(V||(V=E(c),I(V,'section-toggles')),V.appendChild(x)):V=null,H(O,V||x)})),(C||S)&&(S&&(n.Pe||(n.Pe=E(r),I(n.Pe,'btn'),A(n.Pe,f,'necessary'),H(k,n.Pe),B(n.Pe,d,(()=>p([])))),n.Pe.innerHTML=S),C&&(n.ze||(n.ze=E(r),I(n.ze,'btn'),A(n.ze,f,'all'),H(k,n.ze),B(n.ze,d,(()=>p('all')))),n.ze.innerHTML=C)),x&&(n.$e||(n.$e=E(r),I(n.$e,'btn'),I(n.$e,'btn--secondary'),A(n.$e,f,'save'),H(N,n.$e),B(n.$e,d,(()=>p()))),n.$e.innerHTML=x),n.je&&(n.Se.replaceChild(n.je,n.Je),n.Je=n.je),le(1),o.k||(o.k=!0,W(m.le.me,u,n.Se),t(e),Q(2),H(n.qe,n.he),setTimeout((()=>F(n.he,'cc--anim')),100))};function _e(e,o,n,a,c){const r=m.o,l=m.se,f=E('label'),_=E('input'),u=E('span'),p=E('span'),g=E('span'),v=E('span');if(_.type='checkbox',F(f,'section__toggle-wrapper'),F(_,'section__toggle'),F(g,'toggle__icon-on'),F(v,'toggle__icon-off'),F(u,'toggle__icon'),F(p,'toggle__label'),A(u,i,'true'),a?(F(f,'toggle-service'),A(_,s,c),l.re[c][o]=_):l.ce[o]=_,a?(e=>{B(_,'change',(()=>{const t=l.re[e],o=l.ce[e];r.ee[e]=[];for(let o in t){const n=t[o];n.checked&&r.ee[e].push(n.value)}o.checked=r.ee[e].length>0}))})(c):(e=>{B(_,d,(()=>{const t=l.re[e],o=_.checked;r.ee[e]=[];for(let n in t)t[n].checked=o,o&&r.ee[e].push(n)}))})(o),_.value=o,p.textContent=e.replace(/<.*>.*<\/.*>/gm,''),H(u,v),H(u,g),r.M)(n.readOnly||r.i.mode===t&&n.enabled)&&(_.checked=!0);else if(a){const e=r.Z[c];_.checked=n.readOnly||b(e,o)}else b(r.R,o)&&(_.checked=!0);return n.readOnly&&(_.disabled=!0),H(f,_),H(f,u),H(f,p),f}const ue=()=>{const e=E('span');return e.tabIndex=-1,m.se.Ke||(m.se.Ke=e),e},pe=(e,t)=>{const o=m.o,n=m.se,{hide:a,showPreferences:s,acceptCategory:u}=e,p=o.u&&o.u.consentModal;if(!p)return;const g=p.acceptAllBtn,b=p.acceptNecessaryBtn,v=p.showPreferencesBtn,y=p.closeIconLabel,h=p.footer,C=p.label,w=p.title,S=e=>{a(),u(e)};if(!n.ye){n.ye=E(c),n.we=E(c),n.Qe=E(c),n.We=E(c),n.Xe=E(c),F(n.ye,'cm-wrapper'),F(n.we,'cm'),V(n.Qe,'body'),V(n.We,'texts'),V(n.Xe,'btns'),n.ye.tabIndex=-1,A(n.we,'role','dialog'),A(n.we,'aria-modal','true'),A(n.we,i,'false'),A(n.we,'aria-describedby','cm__desc'),C?A(n.we,'aria-label',C):w&&A(n.we,'aria-labelledby','cm__title'),n.we.style.visibility='hidden';const e='box',t=o.i.guiOptions,a=t?.consentModal,s=(a?.layout||e).split(' ')[0]===e;w&&y&&s&&(n.Ie||(n.Ie=E(r),V(n.Ie,'btn'),V(n.Ie,'btn--close'),B(n.Ie,d,(()=>{S([])})),H(n.Qe,n.Ie)),A(n.Ie,'aria-label',y)),H(n.Qe,n.We),(g||b||v)&&H(n.Qe,n.Xe),H(n.we,n.Qe),H(n.ye,n.we)}w&&(n.Ye||(n.Ye=E(c),n.Ye.className=n.Ye.id='cm__title',A(n.Ye,'role','heading'),A(n.Ye,'aria-level','2'),H(n.We,n.Ye)),n.Ye.innerHTML=w);let x=p.description;if(x&&(o.H&&(x=x.replace('{{revisionMessage}}',o.F?'':p.revisionMessage||'')),n.Ze||(n.Ze=E(c),n.Ze.className=n.Ze.id='cm__desc',H(n.We,n.Ze)),n.Ze.innerHTML=x),g&&(n.et||(n.et=E(r),H(n.et,ue()),V(n.et,'btn'),A(n.et,f,'all'),B(n.et,d,(()=>{S('all')}))),n.et.firstElementChild.innerHTML=g),b&&(n.Ve||(n.Ve=E(r),H(n.Ve,ue()),V(n.Ve,'btn'),A(n.Ve,f,'necessary'),B(n.Ve,d,(()=>{S([])}))),n.Ve.firstElementChild.innerHTML=b),v&&(n.tt||(n.tt=E(r),H(n.tt,ue()),V(n.tt,'btn'),V(n.tt,'btn--secondary'),A(n.tt,f,'show'),B(n.tt,'mouseenter',(()=>{o.k||fe(e,t)})),B(n.tt,d,s)),n.tt.firstElementChild.innerHTML=v),n.ot||(n.ot=E(c),V(n.ot,l),b&&H(n.ot,n.Ve),g&&H(n.ot,n.et),(g||b)&&H(n.Qe,n.ot),H(n.Xe,n.ot)),n.tt&&!n.nt&&(n.nt=E(c),n.Ve&&n.et?(V(n.nt,l),H(n.nt,n.tt),H(n.Xe,n.nt)):(H(n.ot,n.tt),V(n.ot,l+'--uneven'))),h){if(!n.st){let e=E(c),t=E(c);n.st=E(c),V(e,'footer'),V(t,'links'),V(n.st,'link-group'),H(t,n.st),H(e,t),H(n.we,e)}n.st.innerHTML=h}le(0),o.T||(o.T=!0,W(m.le.me,_,n.we),t(e),Q(1),H(n.qe,n.ye),setTimeout((()=>F(n.ye,'cc--anim')),100)),U(n.Qe,e,fe,t)},me=e=>y(e)&&e in m.o._,ge=()=>m.o.l||m.o.i.language.default,be=e=>{e&&(m.o.l=e)},ve=async e=>{const t=m.o;let o;o=e&&me(e)?e:ge();let n=t._[o];if(!n)return!1;if(y(n)){const e=await(async e=>{try{const t=await fetch(e,{method:'GET'});return!!t.ok&&await t.json()}catch(e){return!1}})(n);if(!e)return!1;n=e}return t.u=n,be(o),!0},ye=()=>{let e=m.o.i.language.rtl,t=m.se.qe;e&&t&&(v(e)||(e=[e]),b(e,m.o.l)?F(t,'cc--rtl'):P(t,'cc--rtl'))},he=()=>{const e=m.se;if(!e.qe){e.qe=E(c),e.qe.id='cc-main',ye();let t=m.o.i.root;t&&y(t)&&(t=document.querySelector(t)),(t||e.Ue.body).appendChild(e.qe)}},Ce=e=>{const{hostname:t,protocol:o}=location,{name:n,path:a,domain:s,sameSite:c}=m.t.cookie,r=encodeURIComponent(JSON.stringify(m.o.p)),i=e?(()=>{const e=m.o.C,t=e?new Date-e:0;return 864e5*G()-t})():864e5*G(),l=new Date;l.setTime(l.getTime()+i);let d=n+'='+r+(0!==i?'; expires='+l.toUTCString():'')+'; Path='+a+'; SameSite='+c;b(t,'.')&&(d+='; Domain='+s),'https:'===o&&(d+='; Secure'),document.cookie=d,m.o.p},we=(e,t,o)=>{const n=o||m.t.cookie.domain,a=t||m.t.cookie.path,s='www.'===n.slice(0,4),c=s&&n.substring(4),r=(e,t)=>{document.cookie=e+'=; path='+a+(t?'; domain=.'+t:'')+'; expires=Thu, 01 Jan 1970 00:00:01 GMT;'};for(const t of e)r(t),r(t,n),s&&r(t,c)},Se=e=>(e=>{let t;try{t=JSON.parse(decodeURIComponent(e))}catch(e){t={}}return t})(xe(e||m.t.cookie.name,!0)),xe=(e,t)=>{const o=document.cookie.match('(^|;)\\s*'+e+'\\s*=\\s*([^;]+)');return o?t?o.pop():e:''},Me=e=>{const t=document.cookie.split(/;\s*/),o=[];for(const n of t){let t=n.split('=')[0];if(e)try{e.test(t)&&o.push(t)}catch(e){}else o.push(t)}return o},Te=(o,n=[])=>{((e,t)=>{const{O:o,R:n,B:a,k:s,ee:c,Y:r}=m.o;let i=[];if(e){v(e)?i.push(...e):y(e)&&(i='all'===e?o:[e]);for(const e of o)c[e]=b(i,e)?w(r[e]):[]}else i=s?(()=>{const e=m.se.ce;if(!e)return[];let t=[];for(let o in e)e[o].checked&&t.push(o);return t})():n;i=i.filter((e=>!b(o,e)||!b(t,e))),i.push(...a),L(i)})(o,n),(e=>{const t=m.o,{ee:o,B:n,Z:a,Y:s,O:c}=t,r=c;t.oe=j(a);for(const e of r){const t=s[e],c=w(t),r=o[e]?.length>0,i=b(n,e);if(0!==c.length){if(a[e]=[],i)a[e].push(...c);else if(r){const t=o[e];a[e].push(...t)}else a[e]=[];a[e]=S(a[e])}}})(),(()=>{const o=m.o;m.t.mode===t&&o.M?o.V=J(o.G,o.R):o.V=J(o.R,o.p.categories);let n=o.V.length>0,a=!1;for(const e of o.O)o.te[e]=J(o.Z[e],o.oe[e]),o.te[e].length>0&&(a=!0);const s=m.se.ce;for(let e in s)s[e].checked=b(o.R,e);for(const e of o.O){const t=m.se.re[e],n=o.Z[e];for(const e in t)t[e].checked=b(n,e)}o.h||(o.h=new Date),o.S||(o.S=([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g,(e=>(e^crypto.getRandomValues(new Uint8Array(1))[0]&15>>e/4).toString(16)))),o.p={categories:j(o.R),revision:m.t.revision,data:o.v,consentTimestamp:o.h.toISOString(),consentId:o.S,services:j(o.Z)};let c=!1;(o.M||n||a)&&(o.M&&(o.M=!1,c=!0),o.C?o.C=new Date:o.C=o.h,o.p.lastConsentTimestamp=o.C.toISOString(),Ce(),m.t.autoClearCookies&&(c||!o.M&&n)&&(e=>{const t=m.o,o=Me();t.I=!1;let n=e?t.O:t.V;n=n.filter((e=>{let o=t.j[e];return!!o&&!o.readOnly&&!!o.autoClear}));for(const a of n){const n=t.j[a].autoClear,s=n?.cookies||[],c=b(t.V,a),r=!b(t.R,a),i=c&&r;if(e&&r||!e&&i){!0===n.reloadPage&&i&&(t.I=!0);for(const e of s){let t=[];const n=e.name,a=e.domain,s=e.path;if(n instanceof RegExp)for(let e of o)n.test(e)&&t.push(e);else{let e=g(o,n);e>-1&&t.push(o[e])}t.length>0&&we(t,s,a)}}}})(c),X()),c&&(W(m.le.de),W(m.le.fe),m.t.mode===e)||((n||a)&&W(m.le._e),o.I&&location.reload())})()},De=e=>{const t=m.o.M?[]:m.o.R;return b(t,e)},Ee=(e,t)=>{const{O:o,Y:n}=m.o;if(!(e&&t&&y(t)&&b(o,t)&&0!==w(n[t]).length))return!1;((e,t)=>{const o=m.o,{Y:n,ee:a,k:s}=o,c=m.se.re[t]||{},r=m.se.ce[t]||{},i=w(n[t]);if(a[t]=[],y(e)){if('all'===e){if(a[t].push(...i),s)for(let e in c)c[e].checked=!0,D(c[e])}else if(b(i,e)&&a[t].push(e),s)for(let t in c)c[t].checked=e===t,D(c[t])}else if(v(e))for(let o of i){const n=b(e,o);n&&a[t].push(o),s&&(c[o].checked=n,D(c[o]))}const l=0===a[t].length;o.R=l?o.R.filter((e=>e!==t)):S([...o.R,t]),s&&(r.checked=!l,D(r))})(e,t),Te()},Ae=(e,t)=>{const o=m.o.M?[]:m.o.Z[t];return b(o,e)},ke=e=>''!==xe(e,!0),Ne=(e,t,o)=>{let n=[];const a=e=>{if(y(e)){let t=xe(e);''!==t&&n.push(t)}else n.push(...Me(e))};if(v(e))for(let t of e)a(t);else a(e);we(n,t,o)},He=e=>{const{se:t,o:n}=m;if(!n.D){if(!n.T){if(!e)return;pe(Pe,he)}n.D=!0,n.L=x(),n.g&&q(!0),F(t.Ce,o),A(t.we,i,'false'),z(t.ye,1),W(m.le.ue,_)}},Fe=()=>{const{se:e,o:t,le:n}=m;t.D&&(t.D=!1,t.g&&q(),z(e.Ke),P(e.Ce,o),A(e.we,i,'true'),z(t.L),t.L=null,W(n.pe,_))},Ve=()=>{const e=m.o;e.A||(e.k||fe(Pe,he),e.A=!0,F(m.se.Ce,n),A(m.se.Se,i,'false'),e.D?e.U=x():e.L=x(),z(m.se.he,2),W(m.le.ue,u))},Ie=()=>{const e=m.o;e.A&&(e.A=!1,z(m.se.Ge),P(m.se.Ce,n),A(m.se.Se,i,'true'),e.D?(z(e.U,1),e.U=null):(z(e.L),e.L=null),W(m.le.pe,u))};var Pe={show:He,hide:Fe,showPreferences:Ve,hidePreferences:Ie,acceptCategory:Te};const je=async(e,t)=>{if(!me(e))return!1;const o=m.o;return!(e===ge()&&!0!==t||!await ve(e)||(be(e),o.T&&pe(Pe,he),o.k&&fe(Pe,he),ye(),0))},Oe=()=>{const{P:e,Z:t}=m.o,{accepted:o,rejected:n}=(()=>{const{M:e,R:t,O:o}=m.o;return{accepted:t,rejected:e?[]:o.filter((e=>!b(t,e)))}})();return j({acceptType:e,acceptedCategories:o,rejectedCategories:n,acceptedServices:t,rejectedServices:O()})},Re=(e,t)=>{let o=document.querySelector('script[src="'+e+'"]');return new Promise((n=>{if(o)return n(!0);if(o=E('script'),h(t))for(const e in t)A(o,e,t[e]);o.onload=()=>n(!0),o.onerror=()=>{o.remove(),n(!1)},o.src=e,H(document.head,o)}))},Be=e=>{let t,o=e.value,n=e.mode,a=!1;const s=m.o;if('update'===n){s.v=t=Ge('data');const e=typeof t==typeof o;if(e&&'object'==typeof t){!t&&(t={});for(let e in o)t[e]!==o[e]&&(t[e]=o[e],a=!0)}else!e&&t||t===o||(t=o,a=!0)}else t=o,a=!0;return a&&(s.v=t,s.p.data=t,Ce(!0)),a},Ge=(e,t)=>{const o=Se(t);return e?o[e]:o},Je=e=>{const t=m.t,o=m.o.i;return e?t[e]||o[e]:{...t,...o,cookie:{...t.cookie}}},Le=()=>!m.o.M,Ue=async e=>{const{o:o,t:n,le:a}=m,c=window;if(!c._ccRun){if(c._ccRun=!0,(e=>{const{se:o,t:n,o:a}=m,c=n,r=a,{cookie:i}=c,l=m.ie,d=e.cookie,f=e.categories,_=w(f)||[],u=navigator,p=document;o.Ue=p,o.Ce=p.documentElement,i.domain=location.hostname,r.i=e,r.j=f,r.O=_,r._=e.language.translations,r.g=!!e.disablePageInteraction,l.de=e.onFirstConsent,l.fe=e.onConsent,l._e=e.onChange,l.pe=e.onModalHide,l.ue=e.onModalShow,l.me=e.onModalReady;const{mode:g,autoShow:v,lazyHtmlGeneration:y,autoClearCookies:C,revision:S,manageScriptTags:x,hideFromBots:M}=e;g===t&&(c.mode=g),'boolean'==typeof C&&(c.autoClearCookies=C),'boolean'==typeof x&&(c.manageScriptTags=x),'number'==typeof S&&S>=0&&(c.revision=S,r.H=!0),'boolean'==typeof v&&(c.autoShow=v),'boolean'==typeof y&&(c.lazyHtmlGeneration=y),!1===M&&(c.hideFromBots=!1),!0===c.hideFromBots&&u&&(r.J=u.userAgent&&/bot|crawl|spider|slurp|teoma/i.test(u.userAgent)||u.webdriver),h(d)&&(c.cookie={...i,...d}),c.autoClearCookies,r.H,c.manageScriptTags,(e=>{const{j:t,Y:o,Z:n,ee:a,B:s}=m.o;for(let c of e){const e=t[c],r=e.services||{},i=h(r)&&w(r)||[];o[c]={},n[c]=[],a[c]=[],e.readOnly&&(s.push(c),n[c]=i),m.se.re[c]={};for(let e of i){const t=r[e];t.xe=!1,o[c][e]=t}}})(_),(()=>{if(!m.t.manageScriptTags)return;const e=m.o,t=T(document,'script['+s+']');for(const o of t){let t=N(o,s),n=o.dataset.service||'',a=!1;if(t&&'!'===t.charAt(0)&&(t=t.slice(1),a=!0),'!'===n.charAt(0)&&(n=n.slice(1),a=!0),b(e.O,t)&&(e.ne.push(o),e.ae.push({De:!1,Ee:a,Me:t,Te:n}),n)){const o=e.Y[t];o[n]||(o[n]={xe:!1})}}})(),be((()=>{const e=m.o.i.language.autoDetect;if(e){let t;if('browser'===e?t=navigator.language.slice(0,2).toLowerCase():'document'===e&&(t=document.documentElement.lang),me(t))return t}return ge()})())})(e),o.J)return;(()=>{const e=m.o,o=m.t,n=Se(),{categories:a,services:s,consentId:c,consentTimestamp:r,lastConsentTimestamp:i,data:l,revision:d}=n,f=v(a);e.p=n,e.S=c;const _=!!c&&y(c);e.h=r,e.h&&(e.h=new Date(r)),e.C=i,e.C&&(e.C=new Date(i)),e.v=void 0!==l?l:null,e.H&&_&&d!==o.revision&&(e.F=!1),e.M=!(_&&e.F&&e.h&&e.C&&f),e.M,e.M?o.mode===t&&((()=>{const e=m.o;for(const t of e.O){const o=e.j[t];if(o.enabled||o.readOnly){e.G.push(t);const o=e.Y[t]||{};for(let n in o)e.Z[t].push(n)}}})(),e.R=[...e.G]):(e.Z={...e.Z,...s},L([...e.B,...a])),e.ee={...e.Z}})();const r=Le();if(!await ve())return!1;if(await(async e=>{U(null,e,fe,he),m.o.M&&pe(e,he),m.t.lazyHtmlGeneration||fe(e,he),(()=>{const e=m.se,t=m.o;B(e.Ce,'keydown',(e=>{if('Tab'!==e.key)return;if(!t.A&&!t.D)return;const o=t.W,n=t.K;if(o.length>0){const t=x();e.shiftKey?t!==o[0]&&n.contains(t)||(M(e),z(o[1])):t!==o[1]&&n.contains(t)||(M(e),z(o[0]))}}),!0)})()})(Pe),n.autoShow&&!r&&He(!0),r)return X(),W(a.fe);n.mode===t&&X(o.G)}},ze=e=>{const{qe:t,Ce:s}=m.se,{name:c,path:r,domain:i}=m.t.cookie;e&&Ne(c,r,i);for(const{ge:e,be:t,ve:o}of m.o.m)e.removeEventListener(t,o);t?.remove(),s?.classList.remove(a,n,o);const l=new p;for(const e in m)m[e]=l[e];window._ccRun=!1};export{Te as acceptCategory,Ee as acceptService,De as acceptedCategory,Ae as acceptedService,Ne as eraseCookies,Je as getConfig,Ge as getCookie,Oe as getUserPreferences,Fe as hide,Ie as hidePreferences,Re as loadScript,ze as reset,Ue as run,Be as setCookieData,je as setLanguage,He as show,Ve as showPreferences,Le as validConsent,ke as validCookie}; diff --git a/dist/cookieconsent.umd.js b/dist/cookieconsent.umd.js index 895abff1..cdc62cc3 100644 --- a/dist/cookieconsent.umd.js +++ b/dist/cookieconsent.umd.js @@ -4,4 +4,4 @@ * Author Orest Bida * Released under the MIT License */ -var e,t;e=this,t=function(e){'use strict';const t='opt-in',o='opt-out',n='show--consent',a='show--preferences',s='disable--interaction',c='data-category',r='div',i='button',l='aria-hidden',d='btn-group',f='click',_='data-role',u='consentModal',p='preferencesModal';class m{constructor(){this.t={mode:t,revision:0,autoShow:!0,lazyHtmlGeneration:!0,autoClearCookies:!0,manageScriptTags:!0,hideFromBots:!0,cookie:{name:'cc_cookie',expiresAfterDays:182,domain:'',path:'/',sameSite:'Lax'}},this.o={i:{},l:'',_:{},u:{},p:{},m:[],g:!1,v:null,h:null,C:null,S:'',T:!0,M:!1,D:!1,A:!1,k:!1,N:[],H:!1,F:!0,V:[],I:!1,j:'',P:!1,O:[],R:[],B:[],G:[],J:!1,L:!1,U:!1,$:[],q:[],K:null,W:[],X:[],Y:{},Z:{},ee:{},te:{},oe:{},ne:[],ae:[]},this.se={ce:{},re:{}},this.ie={},this.le={de:'cc:onFirstConsent',fe:'cc:onConsent',_e:'cc:onChange',ue:'cc:onModalShow',pe:'cc:onModalHide',me:'cc:onModalReady'}}}const g=new m,b=(e,t)=>e.indexOf(t),y=(e,t)=>-1!==b(e,t),v=e=>Array.isArray(e),h=e=>'string'==typeof e,C=e=>!!e&&'object'==typeof e&&!v(e),w=e=>'function'==typeof e,S=e=>Object.keys(e),x=e=>Array.from(new Set(e)),T=()=>document.activeElement,M=e=>e.preventDefault(),D=(e,t)=>e.querySelectorAll(t),E=e=>e.dispatchEvent(new Event('change')),A=e=>{const t=document.createElement(e);return e===i&&(t.type=e),t},k=(e,t,o)=>e.setAttribute(t,o),N=(e,t,o)=>{e.removeAttribute(o?'data-'+t:t)},H=(e,t,o)=>e.getAttribute(o?'data-'+t:t),F=(e,t)=>e.appendChild(t),V=(e,t)=>e.classList.add(t),I=(e,t)=>V(e,'cm__'+t),j=(e,t)=>V(e,'pm__'+t),P=(e,t)=>e.classList.remove(t),O=e=>{if('object'!=typeof e)return e;if(e instanceof Date)return new Date(e.getTime());let t=Array.isArray(e)?[]:{};for(let o in e){let n=e[o];t[o]=O(n)}return t},R=()=>{const e={},{O:t,Y:o,Z:n}=g.o;for(const a of t)e[a]=L(n[a],S(o[a]));return e},B=(e,t)=>dispatchEvent(new CustomEvent(e,{detail:t})),G=(e,t,o,n)=>{e.addEventListener(t,o),n&&g.o.m.push({ge:e,be:t,ye:o})},J=()=>{const e=g.t.cookie.expiresAfterDays;return w(e)?e(g.o.j):e},L=(e,t)=>{const o=e||[],n=t||[];return o.filter((e=>!y(n,e))).concat(n.filter((e=>!y(o,e))))},U=e=>{g.o.R=x(e),g.o.j=(()=>{let e='custom';const{R:t,O:o,B:n}=g.o,a=t.length;return a===o.length?e='all':a===n.length&&(e='necessary'),e})()},z=(e,t,o,n)=>{const a='accept-',{show:s,showPreferences:c,hide:r,hidePreferences:i,acceptCategory:l}=t,d=e||document,_=e=>D(d,`[data-cc="${e}"]`),u=(e,t)=>{M(e),l(t),i(),r()},p=_('show-preferencesModal'),m=_('show-consentModal'),b=_(a+'all'),y=_(a+'necessary'),v=_(a+'custom'),h=g.t.lazyHtmlGeneration;for(const e of p)k(e,'aria-haspopup','dialog'),G(e,f,(e=>{M(e),c()})),h&&G(e,'mouseenter',(e=>{M(e),g.o.k||o(t,n)}),!0);for(let e of m)k(e,'aria-haspopup','dialog'),G(e,f,(e=>{M(e),s(!0)}),!0);for(let e of b)G(e,f,(e=>{u(e,'all')}),!0);for(let e of v)G(e,f,(e=>{u(e)}),!0);for(let e of y)G(e,f,(e=>{u(e,[])}),!0)},$=(e,t)=>{e?.focus(),t&&(g.o.K=1===t?g.se.ve:g.se.he,g.o.W=1===t?g.o.$:g.o.q)};let q;const K=e=>{clearTimeout(q),e?V(g.se.Ce,s):q=setTimeout((()=>{P(g.se.Ce,s)}),500)},Q=['[href]',i,'input','details','[tabindex]'].map((e=>e+':not([tabindex="-1"])')).join(','),W=e=>{const{o:t,se:o}=g,n=(e,t)=>{const o=D(e,Q);t[0]=o[0],t[1]=o[o.length-1]};1===e&&t.M&&n(o.we,t.$),2===e&&t.k&&n(o.Se,t.q)},X=(e,t,o)=>{const{_e:n,fe:a,de:s,pe:c,me:r,ue:i}=g.ie,l=g.le,d={cookie:g.o.p};if(t){const n={modalName:t};return e===l.ue?w(i)&&i(n):e===l.pe?w(c)&&c(n):(n.modal=o,w(r)&&r(n)),B(e,n)}e===l.de?w(s)&&s(O(d)):e===l.fe?w(a)&&a(O(d)):(d.changedCategories=g.o.V,d.changedServices=g.o.te,w(n)&&n(O(d))),B(e,O(d))},Y=e=>{const{Z:t,te:o,O:n,Y:a,ne:s,ae:r,p:i,V:l}=g.o;for(const e of n){const n=o[e]||t[e]||[];for(const o of n){const n=a[e][o];if(!n)continue;const{onAccept:s,onReject:c}=n;!n.xe&&y(t[e],o)&&w(s)?(n.xe=!0,s()):n.xe&&!y(t[e],o)&&w(c)&&(n.xe=!1,c())}}if(!g.t.manageScriptTags)return;const d=s,f=e||i.categories||[],_=(e,n)=>{if(n{_(e,++n)}),a.replaceWith(r),o)return}}_(e,++n)}};_(d,0)},Z='bottom',ee='left',te='center',oe='right',ne='inline',ae='wide',se='pm--',ce=['middle','top',Z],re=[ee,te,oe],ie={box:{Ae:[ae,ne],ke:ce,Ne:re,He:Z,Fe:oe},cloud:{Ae:[ne],ke:ce,Ne:re,He:Z,Fe:te},bar:{Ae:[ne],ke:ce.slice(1),Ne:[],He:Z,Fe:''}},le={box:{Ae:[],ke:[],Ne:[],He:'',Fe:''},bar:{Ae:[ae],ke:[],Ne:[ee,oe],He:'',Fe:ee}},de=e=>{const t=g.o.i.guiOptions,o=t?.consentModal,n=t?.preferencesModal;0===e&&fe(g.se.we,ie,o,'cm--','box','cm'),1===e&&fe(g.se.Se,le,n,se,'box','pm')},fe=(e,t,o,n,a,s)=>{e.className=s;const c=o?.layout,r=o?.position,i=o?.flipButtons,l=!1!==o?.equalWeightButtons,d=c?.split(' ')||[],f=d[0],_=d[1],u=f in t?f:a,p=t[u],m=y(p.Ae,_)&&_,b=r?.split(' ')||[],v=b[0],h=n===se?b[0]:b[1],C=y(p.ke,v)?v:p.He,w=y(p.Ne,h)?h:p.Fe,S=t=>V(e,n+t);S(u),S(m),S(C),S(w),i&&S('flip');const x=s+'__btn--secondary';if('cm'===s){const{Ve:e,Ie:t}=g.se;e&&(l?P(e,x):V(e,x)),t&&(l?P(t,x):V(t,x))}else{const{je:e}=g.se;e&&(l?P(e,x):V(e,x))}},_e=(e,t)=>{const o=g.o,n=g.se,{hide:a,hidePreferences:s,acceptCategory:c}=e,u=e=>{c(e),s(),a()},m=o.u&&o.u.preferencesModal;if(!m)return;const b=m.title,y=m.closeIconLabel,v=m.acceptAllBtn,w=m.acceptNecessaryBtn,x=m.savePreferencesBtn,T=m.sections,M=v||w||x;if(n.he)n.Pe=A(r),j(n.Pe,'body');else{n.he=A(r),V(n.he,'pm-wrapper'),n.he.tabIndex=-1;const e=A('div');V(e,'pm-overlay'),F(n.he,e),G(e,f,s),n.Se=A(r),n.Se.style.visibility='hidden',V(n.Se,'pm'),k(n.Se,'role','dialog'),k(n.Se,l,!0),k(n.Se,'aria-modal',!0),k(n.Se,'aria-labelledby','pm__title'),G(n.Ce,'keydown',(e=>{27===e.keyCode&&s()}),!0),n.Oe=A(r),j(n.Oe,'header'),n.Re=A(r),j(n.Re,'title'),n.Re.id='pm__title',k(n.Re,'role','heading'),k(n.Re,'aria-level','2'),n.Be=A(i),j(n.Be,'close-btn'),k(n.Be,'aria-label',m.closeIconLabel||''),G(n.Be,f,s),n.Ge=A('span'),n.Ge.tabIndex=-1,F(n.Be,n.Ge),n.Je=A(r),j(n.Je,'body'),n.Le=A(r),j(n.Le,'footer');var D=A(r);V(D,'btns');var E=A(r),N=A(r);j(E,d),j(N,d),F(n.Le,E),F(n.Le,N),F(n.Oe,n.Re),F(n.Oe,n.Be),F(n.Se,n.Oe),F(n.Se,n.Je),M&&F(n.Se,n.Le),F(n.he,n.Se)}let H;b&&(n.Re.innerHTML=b,y&&k(n.Be,'aria-label',y)),T?.forEach(((e,t)=>{const a=e.title,s=e.description,c=e.linkedCategory,d=c&&o.P[c],_=e.cookieTable,u=_?.body,p=_?.caption,g=u?.length>0,b=!!d,y=b&&o.Y[c],v=C(y)&&S(y)||[],w=b&&(!!s||!!g||S(y).length>0);var x=A(r);if(j(x,'section'),w||s){var T=A(r);j(T,'section-desc-wrapper')}let M=v.length;if(w&&M>0){const e=A(r);j(e,'section-services');for(const t of v){const o=y[t],n=o?.label||t,a=A(r),s=A(r),i=A(r),l=A(r);j(a,'service'),j(l,'service-title'),j(s,'service-header'),j(i,'service-icon');const f=ue(n,t,d,!0,c);l.innerHTML=n,F(s,i),F(s,l),F(a,s),F(a,f),F(e,a)}F(T,e)}if(a){var D=A(r),E=A(b?i:r);if(j(D,'section-title-wrapper'),j(E,'section-title'),E.innerHTML=a,F(D,E),b){const e=A('span');j(e,'section-arrow'),F(D,e),x.className+='--toggle';const t=ue(a,c,d);let o=m.serviceCounterLabel;if(M>0&&h(o)){let e=A('span');j(e,'badge'),j(e,'service-counter'),k(e,l,!0),k(e,'data-servicecounter',M),o&&(o=o.split('|'),o=o.length>1&&M>1?o[1]:o[0],k(e,'data-counterlabel',o)),e.innerHTML=M+(o?' '+o:''),F(E,e)}if(w){j(x,'section--expandable');var N=c+'-desc';k(E,'aria-expanded',!1),k(E,'aria-controls',N)}F(D,t)}else k(E,'role','heading'),k(E,'aria-level','3');F(x,D)}if(s){var I=A(r);j(I,'section-desc'),I.innerHTML=s,F(T,I)}if(w&&(k(T,l,'true'),T.id=N,((e,t,o)=>{G(E,f,(()=>{t.classList.contains('is-expanded')?(P(t,'is-expanded'),k(o,'aria-expanded','false'),k(e,l,'true')):(V(t,'is-expanded'),k(o,'aria-expanded','true'),k(e,l,'false'))}))})(T,x,E),g)){const e=A('table'),o=A('thead'),a=A('tbody');if(p){const t=A('caption');j(t,'table-caption'),t.innerHTML=p,e.appendChild(t)}j(e,'section-table'),j(o,'table-head'),j(a,'table-body');const s=_.headers,c=S(s),i=n.Ue.createDocumentFragment(),l=A('tr');k(l,'role','row');for(const e of c){const o=s[e],n=A('th');n.id='cc__row-'+o+t,k(n,'scope','col'),j(n,'table-th'),n.innerHTML=o,F(i,n)}F(l,i),F(o,l);const d=n.Ue.createDocumentFragment();for(const e of u){const o=A('tr');k(o,'role','row'),j(o,'table-tr');for(const n of c){const a=s[n],c=e[n],i=A('td'),l=A(r);j(i,'table-td'),k(i,'data-column',a),k(i,'headers','cc__row-'+a+t),l.insertAdjacentHTML('beforeend',c),F(i,l),F(o,i)}F(d,o)}F(a,d),F(e,o),F(e,a),F(T,e)}(w||s)&&F(x,T);const O=n.Pe||n.Je;b?(H||(H=A(r),j(H,'section-toggles')),H.appendChild(x)):H=null,F(O,H||x)})),(v||w)&&(w&&(n.je||(n.je=A(i),j(n.je,'btn'),k(n.je,_,'necessary'),F(E,n.je),G(n.je,f,(()=>u([])))),n.je.innerHTML=w),v&&(n.ze||(n.ze=A(i),j(n.ze,'btn'),k(n.ze,_,'all'),F(E,n.ze),G(n.ze,f,(()=>u('all')))),n.ze.innerHTML=v)),x&&(n.$e||(n.$e=A(i),j(n.$e,'btn'),j(n.$e,'btn--secondary'),k(n.$e,_,'save'),F(N,n.$e),G(n.$e,f,(()=>u()))),n.$e.innerHTML=x),n.Pe&&(n.Se.replaceChild(n.Pe,n.Je),n.Je=n.Pe),de(1),o.k||(o.k=!0,X(g.le.me,p,n.Se),t(e),W(2),F(n.qe,n.he),setTimeout((()=>V(n.he,'cc--anim')),100))};function ue(e,t,n,a,s){const r=g.o,i=g.se,d=A('label'),_=A('input'),u=A('span'),p=A('span'),m=A('span'),b=A('span');if(_.type='checkbox',V(d,'section__toggle-wrapper'),V(_,'section__toggle'),V(m,'toggle__icon-on'),V(b,'toggle__icon-off'),V(u,'toggle__icon'),V(p,'toggle__label'),k(u,l,'true'),a?(V(d,'toggle-service'),k(_,c,s),i.re[s][t]=_):i.ce[t]=_,a?(e=>{G(_,'change',(()=>{const t=i.re[e],o=i.ce[e];r.ee[e]=[];for(let o in t){const n=t[o];n.checked&&r.ee[e].push(n.value)}o.checked=r.ee[e].length>0}))})(s):(e=>{G(_,f,(()=>{const t=i.re[e],o=_.checked;r.ee[e]=[];for(let n in t)t[n].checked=o,o&&r.ee[e].push(n)}))})(t),_.value=t,p.textContent=e.replace(/<.*>.*<\/.*>/gm,''),F(u,b),F(u,m),r.T)(n.readOnly||r.i.mode===o&&n.enabled)&&(_.checked=!0);else if(a){const e=r.Z[s];_.checked=n.readOnly||y(e,t)}else y(r.R,t)&&(_.checked=!0);return n.readOnly&&(_.disabled=!0),F(d,_),F(d,u),F(d,p),d}const pe=()=>{const e=A('span');return e.tabIndex=-1,g.se.Ke||(g.se.Ke=e),e},me=(e,t)=>{const o=g.o,n=g.se,{hide:a,showPreferences:s,acceptCategory:c}=e,p=o.u&&o.u.consentModal;if(!p)return;const m=p.acceptAllBtn,b=p.acceptNecessaryBtn,y=p.showPreferencesBtn,v=p.closeIconLabel,h=p.footer,C=p.label,w=p.title,S=e=>{a(),c(e)};if(!n.ve){n.ve=A(r),n.we=A(r),n.Qe=A(r),n.We=A(r),n.Xe=A(r),V(n.ve,'cm-wrapper'),V(n.we,'cm'),I(n.Qe,'body'),I(n.We,'texts'),I(n.Xe,'btns'),n.ve.tabIndex=-1,k(n.we,'role','dialog'),k(n.we,'aria-modal','true'),k(n.we,l,'false'),k(n.we,'aria-describedby','cm__desc'),C?k(n.we,'aria-label',C):w&&k(n.we,'aria-labelledby','cm__title'),n.we.style.visibility='hidden';const e='box',t=o.i.guiOptions,a=t?.consentModal,s=(a?.layout||e).split(' ')[0]===e;w&&v&&s&&(n.Ie||(n.Ie=A(i),I(n.Ie,'btn'),I(n.Ie,'btn--close'),G(n.Ie,f,(()=>{S([])})),F(n.Qe,n.Ie)),k(n.Ie,'aria-label',v)),F(n.Qe,n.We),(m||b||y)&&F(n.Qe,n.Xe),F(n.we,n.Qe),F(n.ve,n.we)}w&&(n.Ye||(n.Ye=A(r),n.Ye.className=n.Ye.id='cm__title',k(n.Ye,'role','heading'),k(n.Ye,'aria-level','2'),F(n.We,n.Ye)),n.Ye.innerHTML=w);let x=p.description;if(x&&(o.H&&(x=x.replace('{{revisionMessage}}',o.F?'':p.revisionMessage||'')),n.Ze||(n.Ze=A(r),n.Ze.className=n.Ze.id='cm__desc',F(n.We,n.Ze)),n.Ze.innerHTML=x),m&&(n.et||(n.et=A(i),F(n.et,pe()),I(n.et,'btn'),k(n.et,_,'all'),G(n.et,f,(()=>{S('all')}))),n.et.firstElementChild.innerHTML=m),b&&(n.Ve||(n.Ve=A(i),F(n.Ve,pe()),I(n.Ve,'btn'),k(n.Ve,_,'necessary'),G(n.Ve,f,(()=>{S([])}))),n.Ve.firstElementChild.innerHTML=b),y&&(n.tt||(n.tt=A(i),F(n.tt,pe()),I(n.tt,'btn'),I(n.tt,'btn--secondary'),k(n.tt,_,'show'),G(n.tt,'mouseenter',(()=>{o.k||_e(e,t)})),G(n.tt,f,s)),n.tt.firstElementChild.innerHTML=y),n.ot||(n.ot=A(r),I(n.ot,d),b&&F(n.ot,n.Ve),m&&F(n.ot,n.et),(m||b)&&F(n.Qe,n.ot),F(n.Xe,n.ot)),n.tt&&!n.nt&&(n.nt=A(r),n.Ve&&n.et?(I(n.nt,d),F(n.nt,n.tt),F(n.Xe,n.nt)):(F(n.ot,n.tt),I(n.ot,d+'--uneven'))),h){if(!n.st){let e=A(r),t=A(r);n.st=A(r),I(e,'footer'),I(t,'links'),I(n.st,'link-group'),F(t,n.st),F(e,t),F(n.we,e)}n.st.innerHTML=h}de(0),o.M||(o.M=!0,X(g.le.me,u,n.we),t(e),W(1),F(n.qe,n.ve),setTimeout((()=>V(n.ve,'cc--anim')),100)),z(n.Qe,e,_e,t)},ge=e=>h(e)&&e in g.o._,be=()=>g.o.l||g.o.i.language.default,ye=e=>{e&&(g.o.l=e)},ve=async e=>{const t=g.o;let o;o=e&&ge(e)?e:be();let n=t._[o];if(!n)return!1;if(h(n)){const e=await(async e=>{try{const t=await fetch(e,{method:'GET'});return!!t.ok&&await t.json()}catch(e){return!1}})(n);if(!e)return!1;n=e}return t.u=n,ye(o),!0},he=()=>{let e=g.o.i.language.rtl,t=g.se.qe;e&&t&&(v(e)||(e=[e]),y(e,g.o.l)?V(t,'cc--rtl'):P(t,'cc--rtl'))},Ce=()=>{const e=g.se;if(!e.qe){e.qe=A(r),e.qe.id='cc-main',he();let t=g.o.i.root;t&&h(t)&&(t=document.querySelector(t)),(t||e.Ue.body).appendChild(e.qe)}},we=e=>{const{hostname:t,protocol:o}=location,{name:n,path:a,domain:s,sameSite:c}=g.t.cookie,r=encodeURIComponent(JSON.stringify(g.o.p)),i=e?(()=>{const e=g.o.C,t=e?new Date-e:0;return 864e5*J()-t})():864e5*J(),l=new Date;l.setTime(l.getTime()+i);let d=n+'='+r+(0!==i?'; expires='+l.toUTCString():'')+'; Path='+a+'; SameSite='+c;y(t,'.')&&(d+='; Domain='+s),'https:'===o&&(d+='; Secure'),document.cookie=d,g.o.p},Se=(e,t,o)=>{const n=o||g.t.cookie.domain,a=t||g.t.cookie.path,s='www.'===n.slice(0,4),c=s&&n.substring(4),r=(e,t)=>{document.cookie=e+'=; path='+a+(t?'; domain=.'+t:'')+'; expires=Thu, 01 Jan 1970 00:00:01 GMT;'};for(const t of e)r(t),r(t,n),s&&r(t,c)},xe=e=>(e=>{let t;try{t=JSON.parse(decodeURIComponent(e))}catch(e){t={}}return t})(Te(e||g.t.cookie.name,!0)),Te=(e,t)=>{const o=document.cookie.match('(^|;)\\s*'+e+'\\s*=\\s*([^;]+)');return o?t?o.pop():e:''},Me=e=>{const t=document.cookie.split(/;\s*/),o=[];for(const n of t){let t=n.split('=')[0];if(e)try{e.test(t)&&o.push(t)}catch(e){}else o.push(t)}return o},De=(e,n=[])=>{((e,t)=>{const{O:o,R:n,B:a,k:s,ee:c,Y:r}=g.o;let i=[];if(e){v(e)?i.push(...e):h(e)&&(i='all'===e?o:[e]);for(const e of o)c[e]=y(i,e)?S(r[e]):[]}else i=s?(()=>{const e=g.se.ce;if(!e)return[];let t=[];for(let o in e)e[o].checked&&t.push(o);return t})():n;i=i.filter((e=>!y(o,e)||!y(t,e))),i.push(...a),U(i)})(e,n),(e=>{const t=g.o,{ee:o,B:n,Z:a,Y:s,O:c}=t,r=c;t.oe=O(a);for(const e of r){const t=s[e],c=S(t),r=o[e]?.length>0,i=y(n,e);if(0!==c.length){if(a[e]=[],i)a[e].push(...c);else if(r){const t=o[e];a[e].push(...t)}else a[e]=[];a[e]=x(a[e])}}})(),(()=>{const e=g.o;g.t.mode===o&&e.T?e.V=L(e.G,e.R):e.V=L(e.R,e.p.categories);let n=e.V.length>0,a=!1;for(const t of e.O)e.te[t]=L(e.Z[t],e.oe[t]),e.te[t].length>0&&(a=!0);const s=g.se.ce;for(let t in s)s[t].checked=y(e.R,t);for(const t of e.O){const o=g.se.re[t],n=e.Z[t];for(const e in o)o[e].checked=y(n,e)}e.h||(e.h=new Date),e.S||(e.S=([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g,(e=>(e^crypto.getRandomValues(new Uint8Array(1))[0]&15>>e/4).toString(16)))),e.p={categories:O(e.R),revision:g.t.revision,data:e.v,consentTimestamp:e.h.toISOString(),consentId:e.S,services:O(e.Z)};let c=!1;(e.T||n||a)&&(e.T&&(e.T=!1,c=!0),e.C?e.C=new Date:e.C=e.h,e.p.lastConsentTimestamp=e.C.toISOString(),we(),g.t.autoClearCookies&&(c||!e.T&&n)&&(e=>{const t=g.o,o=Me();t.I=!1;let n=e?t.O:t.V;n=n.filter((e=>{let o=t.P[e];return!!o&&!o.readOnly&&!!o.autoClear}));for(const a of n){const n=t.P[a].autoClear,s=n?.cookies||[],c=y(t.V,a),r=!y(t.R,a),i=c&&r;if(e&&r||!e&&i){!0===n.reloadPage&&i&&(t.I=!0);for(const e of s){let t=[];const n=e.name,a=e.domain,s=e.path;if(n instanceof RegExp)for(let e of o)n.test(e)&&t.push(e);else{let e=b(o,n);e>-1&&t.push(o[e])}t.length>0&&Se(t,s,a)}}}})(c),Y()),c&&(X(g.le.de),X(g.le.fe),g.t.mode===t)||((n||a)&&X(g.le._e),e.I&&location.reload())})()},Ee=(e,t,o)=>{let n=[];const a=e=>{if(h(e)){let t=Te(e);''!==t&&n.push(t)}else n.push(...Me(e))};if(v(e))for(let t of e)a(t);else a(e);Se(n,t,o)},Ae=e=>{const{se:t,o:o}=g;if(!o.D){if(!o.M){if(!e)return;me(Fe,Ce)}o.D=!0,o.L=T(),o.g&&K(!0),V(t.Ce,n),k(t.we,l,'false'),$(t.ve,1),X(g.le.ue,u)}},ke=()=>{const{se:e,o:t,le:o}=g;t.D&&(t.D=!1,t.g&&K(),$(e.Ke),P(e.Ce,n),k(e.we,l,'true'),$(t.L),t.L=null,X(o.pe,u))},Ne=()=>{const e=g.o;e.A||(e.k||_e(Fe,Ce),e.A=!0,V(g.se.Ce,a),k(g.se.Se,l,'false'),e.D?e.U=T():e.L=T(),$(g.se.he,2),X(g.le.ue,p))},He=()=>{const e=g.o;e.A&&(e.A=!1,$(g.se.Ge),P(g.se.Ce,a),k(g.se.Se,l,'true'),e.D?($(e.U,1),e.U=null):($(e.L),e.L=null),X(g.le.pe,p))};var Fe={show:Ae,hide:ke,showPreferences:Ne,hidePreferences:He,acceptCategory:De};const Ve=(e,t)=>{const o=xe(t);return e?o[e]:o},Ie=()=>!g.o.T;e.acceptCategory=De,e.acceptService=(e,t)=>{const{O:o,Y:n}=g.o;if(!(e&&t&&h(t)&&y(o,t)&&0!==S(n[t]).length))return!1;((e,t)=>{const o=g.o,{Y:n,ee:a,k:s}=o,c=g.se.re[t]||{},r=g.se.ce[t]||{},i=S(n[t]);if(a[t]=[],h(e)){if('all'===e){if(a[t].push(...i),s)for(let e in c)c[e].checked=!0,E(c[e])}else if(y(i,e)&&a[t].push(e),s)for(let t in c)c[t].checked=e===t,E(c[t])}else if(v(e))for(let o of i){const n=y(e,o);n&&a[t].push(o),s&&(c[o].checked=n,E(c[o]))}const l=0===a[t].length;o.R=l?o.R.filter((e=>e!==t)):x([...o.R,t]),s&&(r.checked=!l,E(r))})(e,t),De()},e.acceptedCategory=e=>{const t=g.o.T?[]:g.o.R;return y(t,e)},e.acceptedService=(e,t)=>{const o=g.o.T?[]:g.o.Z[t];return y(o,e)},e.eraseCookies=Ee,e.getConfig=e=>{const t=g.t,o=g.o.i;return e?t[e]||o[e]:{...t,...o,cookie:{...t.cookie}}},e.getCookie=Ve,e.getUserPreferences=()=>{const{j:e,Z:t}=g.o,{accepted:o,rejected:n}=(()=>{const{T:e,R:t,O:o}=g.o;return{accepted:t,rejected:e?[]:o.filter((e=>!y(t,e)))}})();return O({acceptType:e,acceptedCategories:o,rejectedCategories:n,acceptedServices:t,rejectedServices:R()})},e.hide=ke,e.hidePreferences=He,e.loadScript=(e,t)=>{let o=document.querySelector('script[src="'+e+'"]');return new Promise((n=>{if(o)return n(!0);if(o=A('script'),C(t))for(const e in t)k(o,e,t[e]);o.onload=()=>n(!0),o.onerror=()=>{o.remove(),n(!1)},o.src=e,F(document.head,o)}))},e.reset=e=>{const{qe:t,Ce:o}=g.se,{name:c,path:r,domain:i}=g.t.cookie;e&&Ee(c,r,i);for(const{ge:e,be:t,ye:o}of g.o.m)e.removeEventListener(t,o);t?.remove(),o?.classList.remove(s,a,n);const l=new m;for(const e in g)g[e]=l[e];window._ccRun=!1},e.run=async e=>{const{o:t,t:n,le:a}=g,s=window;if(!s._ccRun){if(s._ccRun=!0,(e=>{const{se:t,t:n,o:a}=g,s=n,r=a,{cookie:i}=s,l=g.ie,d=e.cookie,f=e.categories,_=S(f)||[],u=navigator,p=document;t.Ue=p,t.Ce=p.documentElement,i.domain=location.hostname,r.i=e,r.P=f,r.O=_,r._=e.language.translations,r.g=!!e.disablePageInteraction,l.de=e.onFirstConsent,l.fe=e.onConsent,l._e=e.onChange,l.pe=e.onModalHide,l.ue=e.onModalShow,l.me=e.onModalReady;const{mode:m,autoShow:b,lazyHtmlGeneration:v,autoClearCookies:h,revision:w,manageScriptTags:x,hideFromBots:T}=e;m===o&&(s.mode=m),'boolean'==typeof h&&(s.autoClearCookies=h),'boolean'==typeof x&&(s.manageScriptTags=x),'number'==typeof w&&w>=0&&(s.revision=w,r.H=!0),'boolean'==typeof b&&(s.autoShow=b),'boolean'==typeof v&&(s.lazyHtmlGeneration=v),!1===T&&(s.hideFromBots=!1),!0===s.hideFromBots&&u&&(r.J=u.userAgent&&/bot|crawl|spider|slurp|teoma/i.test(u.userAgent)||u.webdriver),C(d)&&(s.cookie={...i,...d}),s.autoClearCookies,r.H,s.manageScriptTags,(e=>{const{P:t,Y:o,Z:n,ee:a,B:s}=g.o;for(let c of e){const e=t[c],r=e.services||{},i=C(r)&&S(r)||[];o[c]={},n[c]=[],a[c]=[],e.readOnly&&(s.push(c),n[c]=i),g.se.re[c]={};for(let e of i){const t=r[e];t.xe=!1,o[c][e]=t}}})(_),(()=>{if(!g.t.manageScriptTags)return;const e=g.o;e.ne=D(g.se.Ue,'script['+c+']'),e.ae=[];for(const t of e.ne){let o=H(t,c),n=t.dataset.service||'',a=!1;if(o&&'!'===o.charAt(0)&&(o=o.slice(1),a=!0),'!'===n.charAt(0)&&(n=n.slice(1),a=!0),y(e.O,o)&&(e.ae.push({De:!1,Ee:a,Te:o,Me:n}),n)){const t=e.Y[o];t[n]||(t[n]={xe:!1})}}})(),ye((()=>{const e=g.o.i.language.autoDetect;if(e){let t;if('browser'===e?t=navigator.language.slice(0,2).toLowerCase():'document'===e&&(t=document.documentElement.lang),ge(t))return t}return be()})())})(e),t.J)return;(()=>{const e=g.o,t=g.t,n=xe(),{categories:a,services:s,consentId:c,consentTimestamp:r,lastConsentTimestamp:i,data:l,revision:d}=n,f=v(a);e.p=n,e.S=c;const _=!!c&&h(c);e.h=r,e.h&&(e.h=new Date(r)),e.C=i,e.C&&(e.C=new Date(i)),e.v=void 0!==l?l:null,e.H&&_&&d!==t.revision&&(e.F=!1),e.T=!(_&&e.F&&e.h&&e.C&&f),e.T,e.T?t.mode===o&&((()=>{const e=g.o;for(const t of e.O){const o=e.P[t];if(o.enabled||o.readOnly){e.G.push(t);const o=e.Y[t]||{};for(let n in o)e.Z[t].push(n)}}})(),e.R=[...e.G]):(e.Z={...e.Z,...s},U([...e.B,...a])),e.ee={...e.Z}})();const r=Ie();if(!await ve())return!1;if(await(async e=>{z(null,e,_e,Ce),g.o.T&&me(e,Ce),g.t.lazyHtmlGeneration||_e(e,Ce),(()=>{const e=g.se,t=g.o;G(e.Ce,'keydown',(e=>{if('Tab'!==e.key)return;if(!t.A&&!t.D)return;const o=t.W,n=t.K;if(o.length>0){const t=T();e.shiftKey?t!==o[0]&&n.contains(t)||(M(e),$(o[1])):t!==o[1]&&n.contains(t)||(M(e),$(o[0]))}}),!0)})()})(Fe),n.autoShow&&!r&&Ae(!0),r)return Y(),X(a.fe);n.mode===o&&Y(t.G)}},e.setCookieData=e=>{let t,o=e.value,n=e.mode,a=!1;const s=g.o;if('update'===n){s.v=t=Ve('data');const e=typeof t==typeof o;if(e&&'object'==typeof t){!t&&(t={});for(let e in o)t[e]!==o[e]&&(t[e]=o[e],a=!0)}else!e&&t||t===o||(t=o,a=!0)}else t=o,a=!0;return a&&(s.v=t,s.p.data=t,we(!0)),a},e.setLanguage=async(e,t)=>{if(!ge(e))return!1;const o=g.o;return!(e===be()&&!0!==t||!await ve(e)||(ye(e),o.M&&me(Fe,Ce),o.k&&_e(Fe,Ce),he(),0))},e.show=Ae,e.showPreferences=Ne,e.validConsent=Ie,e.validCookie=e=>''!==Te(e,!0)},'object'==typeof exports&&'undefined'!=typeof module?t(exports):'function'==typeof define&&define.amd?define(['exports'],t):t((e='undefined'!=typeof globalThis?globalThis:e||self).CookieConsent={}); +var e,t;e=this,t=function(e){'use strict';const t='opt-in',o='opt-out',n='show--consent',a='show--preferences',s='disable--interaction',c='data-category',r='div',i='button',l='aria-hidden',d='btn-group',f='click',_='data-role',u='consentModal',p='preferencesModal';class m{constructor(){this.t={mode:t,revision:0,autoShow:!0,lazyHtmlGeneration:!0,autoClearCookies:!0,manageScriptTags:!0,hideFromBots:!0,cookie:{name:'cc_cookie',expiresAfterDays:182,domain:'',path:'/',sameSite:'Lax'}},this.o={i:{},l:'',_:{},u:{},p:{},m:[],g:!1,v:null,h:null,C:null,S:'',T:!0,M:!1,D:!1,A:!1,k:!1,N:[],H:!1,F:!0,V:[],I:!1,j:'',P:!1,O:[],R:[],B:[],G:[],J:!1,L:!1,U:!1,$:[],q:[],K:null,W:[],X:[],Y:{},Z:{},ee:{},te:{},oe:{},ne:[],ae:[]},this.se={ce:{},re:{}},this.ie={},this.le={de:'cc:onFirstConsent',fe:'cc:onConsent',_e:'cc:onChange',ue:'cc:onModalShow',pe:'cc:onModalHide',me:'cc:onModalReady'}}}const g=new m,b=(e,t)=>e.indexOf(t),y=(e,t)=>-1!==b(e,t),v=e=>Array.isArray(e),h=e=>'string'==typeof e,C=e=>!!e&&'object'==typeof e&&!v(e),w=e=>'function'==typeof e,S=e=>Object.keys(e),x=e=>Array.from(new Set(e)),T=()=>document.activeElement,M=e=>e.preventDefault(),D=(e,t)=>e.querySelectorAll(t),E=e=>e.dispatchEvent(new Event('change')),A=e=>{const t=document.createElement(e);return e===i&&(t.type=e),t},k=(e,t,o)=>e.setAttribute(t,o),N=(e,t,o)=>{e.removeAttribute(o?'data-'+t:t)},H=(e,t,o)=>e.getAttribute(o?'data-'+t:t),F=(e,t)=>e.appendChild(t),V=(e,t)=>e.classList.add(t),I=(e,t)=>V(e,'cm__'+t),j=(e,t)=>V(e,'pm__'+t),P=(e,t)=>e.classList.remove(t),O=e=>{if('object'!=typeof e)return e;if(e instanceof Date)return new Date(e.getTime());let t=Array.isArray(e)?[]:{};for(let o in e){let n=e[o];t[o]=O(n)}return t},R=()=>{const e={},{O:t,Y:o,Z:n}=g.o;for(const a of t)e[a]=L(n[a],S(o[a]));return e},B=(e,t)=>dispatchEvent(new CustomEvent(e,{detail:t})),G=(e,t,o,n)=>{e.addEventListener(t,o),n&&g.o.m.push({ge:e,be:t,ye:o})},J=()=>{const e=g.t.cookie.expiresAfterDays;return w(e)?e(g.o.j):e},L=(e,t)=>{const o=e||[],n=t||[];return o.filter((e=>!y(n,e))).concat(n.filter((e=>!y(o,e))))},U=e=>{g.o.R=x(e),g.o.j=(()=>{let e='custom';const{R:t,O:o,B:n}=g.o,a=t.length;return a===o.length?e='all':a===n.length&&(e='necessary'),e})()},z=(e,t,o,n)=>{const a='accept-',{show:s,showPreferences:c,hide:r,hidePreferences:i,acceptCategory:l}=t,d=e||document,_=e=>D(d,`[data-cc="${e}"]`),u=(e,t)=>{M(e),l(t),i(),r()},p=_('show-preferencesModal'),m=_('show-consentModal'),b=_(a+'all'),y=_(a+'necessary'),v=_(a+'custom'),h=g.t.lazyHtmlGeneration;for(const e of p)k(e,'aria-haspopup','dialog'),G(e,f,(e=>{M(e),c()})),h&&G(e,'mouseenter',(e=>{M(e),g.o.k||o(t,n)}),!0);for(let e of m)k(e,'aria-haspopup','dialog'),G(e,f,(e=>{M(e),s(!0)}),!0);for(let e of b)G(e,f,(e=>{u(e,'all')}),!0);for(let e of v)G(e,f,(e=>{u(e)}),!0);for(let e of y)G(e,f,(e=>{u(e,[])}),!0)},$=(e,t)=>{e?.focus(),t&&(g.o.K=1===t?g.se.ve:g.se.he,g.o.W=1===t?g.o.$:g.o.q)};let q;const K=e=>{clearTimeout(q),e?V(g.se.Ce,s):q=setTimeout((()=>{P(g.se.Ce,s)}),500)},Q=['[href]',i,'input','details','[tabindex]'].map((e=>e+':not([tabindex="-1"])')).join(','),W=e=>{const{o:t,se:o}=g,n=(e,t)=>{const o=D(e,Q);t[0]=o[0],t[1]=o[o.length-1]};1===e&&t.M&&n(o.we,t.$),2===e&&t.k&&n(o.Se,t.q)},X=(e,t,o)=>{const{_e:n,fe:a,de:s,pe:c,me:r,ue:i}=g.ie,l=g.le,d={cookie:g.o.p};if(t){const n={modalName:t};return e===l.ue?w(i)&&i(n):e===l.pe?w(c)&&c(n):(n.modal=o,w(r)&&r(n)),B(e,n)}e===l.de?w(s)&&s(O(d)):e===l.fe?w(a)&&a(O(d)):(d.changedCategories=g.o.V,d.changedServices=g.o.te,w(n)&&n(O(d))),B(e,O(d))},Y=e=>{const{Z:t,te:o,O:n,Y:a,ne:s,ae:r,p:i,V:l}=g.o;for(const e of n){const n=o[e]||t[e]||[];for(const o of n){const n=a[e][o];if(!n)continue;const{onAccept:s,onReject:c}=n;!n.xe&&y(t[e],o)&&w(s)?(n.xe=!0,s()):n.xe&&!y(t[e],o)&&w(c)&&(n.xe=!1,c())}}if(!g.t.manageScriptTags)return;const d=s,f=e||i.categories||[],_=(e,n)=>{if(n{_(e,++n)}),a.replaceWith(r),o)return}}_(e,++n)}};_(d,0)},Z='bottom',ee='left',te='center',oe='right',ne='inline',ae='wide',se='pm--',ce=['middle','top',Z],re=[ee,te,oe],ie={box:{Ae:[ae,ne],ke:ce,Ne:re,He:Z,Fe:oe},cloud:{Ae:[ne],ke:ce,Ne:re,He:Z,Fe:te},bar:{Ae:[ne],ke:ce.slice(1),Ne:[],He:Z,Fe:''}},le={box:{Ae:[],ke:[],Ne:[],He:'',Fe:''},bar:{Ae:[ae],ke:[],Ne:[ee,oe],He:'',Fe:ee}},de=e=>{const t=g.o.i.guiOptions,o=t?.consentModal,n=t?.preferencesModal;0===e&&fe(g.se.we,ie,o,'cm--','box','cm'),1===e&&fe(g.se.Se,le,n,se,'box','pm')},fe=(e,t,o,n,a,s)=>{e.className=s;const c=o?.layout,r=o?.position,i=o?.flipButtons,l=!1!==o?.equalWeightButtons,d=c?.split(' ')||[],f=d[0],_=d[1],u=f in t?f:a,p=t[u],m=y(p.Ae,_)&&_,b=r?.split(' ')||[],v=b[0],h=n===se?b[0]:b[1],C=y(p.ke,v)?v:p.He,w=y(p.Ne,h)?h:p.Fe,S=t=>V(e,n+t);S(u),S(m),S(C),S(w),i&&S('flip');const x=s+'__btn--secondary';if('cm'===s){const{Ve:e,Ie:t}=g.se;e&&(l?P(e,x):V(e,x)),t&&(l?P(t,x):V(t,x))}else{const{je:e}=g.se;e&&(l?P(e,x):V(e,x))}},_e=(e,t)=>{const o=g.o,n=g.se,{hide:a,hidePreferences:s,acceptCategory:c}=e,u=e=>{c(e),s(),a()},m=o.u&&o.u.preferencesModal;if(!m)return;const b=m.title,y=m.closeIconLabel,v=m.acceptAllBtn,w=m.acceptNecessaryBtn,x=m.savePreferencesBtn,T=m.sections,M=v||w||x;if(n.he)n.Pe=A(r),j(n.Pe,'body');else{n.he=A(r),V(n.he,'pm-wrapper'),n.he.tabIndex=-1;const e=A('div');V(e,'pm-overlay'),F(n.he,e),G(e,f,s),n.Se=A(r),n.Se.style.visibility='hidden',V(n.Se,'pm'),k(n.Se,'role','dialog'),k(n.Se,l,!0),k(n.Se,'aria-modal',!0),k(n.Se,'aria-labelledby','pm__title'),G(n.Ce,'keydown',(e=>{27===e.keyCode&&s()}),!0),n.Oe=A(r),j(n.Oe,'header'),n.Re=A(r),j(n.Re,'title'),n.Re.id='pm__title',k(n.Re,'role','heading'),k(n.Re,'aria-level','2'),n.Be=A(i),j(n.Be,'close-btn'),k(n.Be,'aria-label',m.closeIconLabel||''),G(n.Be,f,s),n.Ge=A('span'),n.Ge.tabIndex=-1,F(n.Be,n.Ge),n.Je=A(r),j(n.Je,'body'),n.Le=A(r),j(n.Le,'footer');var D=A(r);V(D,'btns');var E=A(r),N=A(r);j(E,d),j(N,d),F(n.Le,E),F(n.Le,N),F(n.Oe,n.Re),F(n.Oe,n.Be),F(n.Se,n.Oe),F(n.Se,n.Je),M&&F(n.Se,n.Le),F(n.he,n.Se)}let H;b&&(n.Re.innerHTML=b,y&&k(n.Be,'aria-label',y)),T?.forEach(((e,t)=>{const a=e.title,s=e.description,c=e.linkedCategory,d=c&&o.P[c],_=e.cookieTable,u=_?.body,p=_?.caption,g=u?.length>0,b=!!d,y=b&&o.Y[c],v=C(y)&&S(y)||[],w=b&&(!!s||!!g||S(y).length>0);var x=A(r);if(j(x,'section'),w||s){var T=A(r);j(T,'section-desc-wrapper')}let M=v.length;if(w&&M>0){const e=A(r);j(e,'section-services');for(const t of v){const o=y[t],n=o?.label||t,a=A(r),s=A(r),i=A(r),l=A(r);j(a,'service'),j(l,'service-title'),j(s,'service-header'),j(i,'service-icon');const f=ue(n,t,d,!0,c);l.innerHTML=n,F(s,i),F(s,l),F(a,s),F(a,f),F(e,a)}F(T,e)}if(a){var D=A(r),E=A(b?i:r);if(j(D,'section-title-wrapper'),j(E,'section-title'),E.innerHTML=a,F(D,E),b){const e=A('span');j(e,'section-arrow'),F(D,e),x.className+='--toggle';const t=ue(a,c,d);let o=m.serviceCounterLabel;if(M>0&&h(o)){let e=A('span');j(e,'badge'),j(e,'service-counter'),k(e,l,!0),k(e,'data-servicecounter',M),o&&(o=o.split('|'),o=o.length>1&&M>1?o[1]:o[0],k(e,'data-counterlabel',o)),e.innerHTML=M+(o?' '+o:''),F(E,e)}if(w){j(x,'section--expandable');var N=c+'-desc';k(E,'aria-expanded',!1),k(E,'aria-controls',N)}F(D,t)}else k(E,'role','heading'),k(E,'aria-level','3');F(x,D)}if(s){var I=A(r);j(I,'section-desc'),I.innerHTML=s,F(T,I)}if(w&&(k(T,l,'true'),T.id=N,((e,t,o)=>{G(E,f,(()=>{t.classList.contains('is-expanded')?(P(t,'is-expanded'),k(o,'aria-expanded','false'),k(e,l,'true')):(V(t,'is-expanded'),k(o,'aria-expanded','true'),k(e,l,'false'))}))})(T,x,E),g)){const e=A('table'),o=A('thead'),a=A('tbody');if(p){const t=A('caption');j(t,'table-caption'),t.innerHTML=p,e.appendChild(t)}j(e,'section-table'),j(o,'table-head'),j(a,'table-body');const s=_.headers,c=S(s),i=n.Ue.createDocumentFragment(),l=A('tr');k(l,'role','row');for(const e of c){const o=s[e],n=A('th');n.id='cc__row-'+o+t,k(n,'scope','col'),j(n,'table-th'),n.innerHTML=o,F(i,n)}F(l,i),F(o,l);const d=n.Ue.createDocumentFragment();for(const e of u){const o=A('tr');k(o,'role','row'),j(o,'table-tr');for(const n of c){const a=s[n],c=e[n],i=A('td'),l=A(r);j(i,'table-td'),k(i,'data-column',a),k(i,'headers','cc__row-'+a+t),l.insertAdjacentHTML('beforeend',c),F(i,l),F(o,i)}F(d,o)}F(a,d),F(e,o),F(e,a),F(T,e)}(w||s)&&F(x,T);const O=n.Pe||n.Je;b?(H||(H=A(r),j(H,'section-toggles')),H.appendChild(x)):H=null,F(O,H||x)})),(v||w)&&(w&&(n.je||(n.je=A(i),j(n.je,'btn'),k(n.je,_,'necessary'),F(E,n.je),G(n.je,f,(()=>u([])))),n.je.innerHTML=w),v&&(n.ze||(n.ze=A(i),j(n.ze,'btn'),k(n.ze,_,'all'),F(E,n.ze),G(n.ze,f,(()=>u('all')))),n.ze.innerHTML=v)),x&&(n.$e||(n.$e=A(i),j(n.$e,'btn'),j(n.$e,'btn--secondary'),k(n.$e,_,'save'),F(N,n.$e),G(n.$e,f,(()=>u()))),n.$e.innerHTML=x),n.Pe&&(n.Se.replaceChild(n.Pe,n.Je),n.Je=n.Pe),de(1),o.k||(o.k=!0,X(g.le.me,p,n.Se),t(e),W(2),F(n.qe,n.he),setTimeout((()=>V(n.he,'cc--anim')),100))};function ue(e,t,n,a,s){const r=g.o,i=g.se,d=A('label'),_=A('input'),u=A('span'),p=A('span'),m=A('span'),b=A('span');if(_.type='checkbox',V(d,'section__toggle-wrapper'),V(_,'section__toggle'),V(m,'toggle__icon-on'),V(b,'toggle__icon-off'),V(u,'toggle__icon'),V(p,'toggle__label'),k(u,l,'true'),a?(V(d,'toggle-service'),k(_,c,s),i.re[s][t]=_):i.ce[t]=_,a?(e=>{G(_,'change',(()=>{const t=i.re[e],o=i.ce[e];r.ee[e]=[];for(let o in t){const n=t[o];n.checked&&r.ee[e].push(n.value)}o.checked=r.ee[e].length>0}))})(s):(e=>{G(_,f,(()=>{const t=i.re[e],o=_.checked;r.ee[e]=[];for(let n in t)t[n].checked=o,o&&r.ee[e].push(n)}))})(t),_.value=t,p.textContent=e.replace(/<.*>.*<\/.*>/gm,''),F(u,b),F(u,m),r.T)(n.readOnly||r.i.mode===o&&n.enabled)&&(_.checked=!0);else if(a){const e=r.Z[s];_.checked=n.readOnly||y(e,t)}else y(r.R,t)&&(_.checked=!0);return n.readOnly&&(_.disabled=!0),F(d,_),F(d,u),F(d,p),d}const pe=()=>{const e=A('span');return e.tabIndex=-1,g.se.Ke||(g.se.Ke=e),e},me=(e,t)=>{const o=g.o,n=g.se,{hide:a,showPreferences:s,acceptCategory:c}=e,p=o.u&&o.u.consentModal;if(!p)return;const m=p.acceptAllBtn,b=p.acceptNecessaryBtn,y=p.showPreferencesBtn,v=p.closeIconLabel,h=p.footer,C=p.label,w=p.title,S=e=>{a(),c(e)};if(!n.ve){n.ve=A(r),n.we=A(r),n.Qe=A(r),n.We=A(r),n.Xe=A(r),V(n.ve,'cm-wrapper'),V(n.we,'cm'),I(n.Qe,'body'),I(n.We,'texts'),I(n.Xe,'btns'),n.ve.tabIndex=-1,k(n.we,'role','dialog'),k(n.we,'aria-modal','true'),k(n.we,l,'false'),k(n.we,'aria-describedby','cm__desc'),C?k(n.we,'aria-label',C):w&&k(n.we,'aria-labelledby','cm__title'),n.we.style.visibility='hidden';const e='box',t=o.i.guiOptions,a=t?.consentModal,s=(a?.layout||e).split(' ')[0]===e;w&&v&&s&&(n.Ie||(n.Ie=A(i),I(n.Ie,'btn'),I(n.Ie,'btn--close'),G(n.Ie,f,(()=>{S([])})),F(n.Qe,n.Ie)),k(n.Ie,'aria-label',v)),F(n.Qe,n.We),(m||b||y)&&F(n.Qe,n.Xe),F(n.we,n.Qe),F(n.ve,n.we)}w&&(n.Ye||(n.Ye=A(r),n.Ye.className=n.Ye.id='cm__title',k(n.Ye,'role','heading'),k(n.Ye,'aria-level','2'),F(n.We,n.Ye)),n.Ye.innerHTML=w);let x=p.description;if(x&&(o.H&&(x=x.replace('{{revisionMessage}}',o.F?'':p.revisionMessage||'')),n.Ze||(n.Ze=A(r),n.Ze.className=n.Ze.id='cm__desc',F(n.We,n.Ze)),n.Ze.innerHTML=x),m&&(n.et||(n.et=A(i),F(n.et,pe()),I(n.et,'btn'),k(n.et,_,'all'),G(n.et,f,(()=>{S('all')}))),n.et.firstElementChild.innerHTML=m),b&&(n.Ve||(n.Ve=A(i),F(n.Ve,pe()),I(n.Ve,'btn'),k(n.Ve,_,'necessary'),G(n.Ve,f,(()=>{S([])}))),n.Ve.firstElementChild.innerHTML=b),y&&(n.tt||(n.tt=A(i),F(n.tt,pe()),I(n.tt,'btn'),I(n.tt,'btn--secondary'),k(n.tt,_,'show'),G(n.tt,'mouseenter',(()=>{o.k||_e(e,t)})),G(n.tt,f,s)),n.tt.firstElementChild.innerHTML=y),n.ot||(n.ot=A(r),I(n.ot,d),b&&F(n.ot,n.Ve),m&&F(n.ot,n.et),(m||b)&&F(n.Qe,n.ot),F(n.Xe,n.ot)),n.tt&&!n.nt&&(n.nt=A(r),n.Ve&&n.et?(I(n.nt,d),F(n.nt,n.tt),F(n.Xe,n.nt)):(F(n.ot,n.tt),I(n.ot,d+'--uneven'))),h){if(!n.st){let e=A(r),t=A(r);n.st=A(r),I(e,'footer'),I(t,'links'),I(n.st,'link-group'),F(t,n.st),F(e,t),F(n.we,e)}n.st.innerHTML=h}de(0),o.M||(o.M=!0,X(g.le.me,u,n.we),t(e),W(1),F(n.qe,n.ve),setTimeout((()=>V(n.ve,'cc--anim')),100)),z(n.Qe,e,_e,t)},ge=e=>h(e)&&e in g.o._,be=()=>g.o.l||g.o.i.language.default,ye=e=>{e&&(g.o.l=e)},ve=async e=>{const t=g.o;let o;o=e&&ge(e)?e:be();let n=t._[o];if(!n)return!1;if(h(n)){const e=await(async e=>{try{const t=await fetch(e,{method:'GET'});return!!t.ok&&await t.json()}catch(e){return!1}})(n);if(!e)return!1;n=e}return t.u=n,ye(o),!0},he=()=>{let e=g.o.i.language.rtl,t=g.se.qe;e&&t&&(v(e)||(e=[e]),y(e,g.o.l)?V(t,'cc--rtl'):P(t,'cc--rtl'))},Ce=()=>{const e=g.se;if(!e.qe){e.qe=A(r),e.qe.id='cc-main',he();let t=g.o.i.root;t&&h(t)&&(t=document.querySelector(t)),(t||e.Ue.body).appendChild(e.qe)}},we=e=>{const{hostname:t,protocol:o}=location,{name:n,path:a,domain:s,sameSite:c}=g.t.cookie,r=encodeURIComponent(JSON.stringify(g.o.p)),i=e?(()=>{const e=g.o.C,t=e?new Date-e:0;return 864e5*J()-t})():864e5*J(),l=new Date;l.setTime(l.getTime()+i);let d=n+'='+r+(0!==i?'; expires='+l.toUTCString():'')+'; Path='+a+'; SameSite='+c;y(t,'.')&&(d+='; Domain='+s),'https:'===o&&(d+='; Secure'),document.cookie=d,g.o.p},Se=(e,t,o)=>{const n=o||g.t.cookie.domain,a=t||g.t.cookie.path,s='www.'===n.slice(0,4),c=s&&n.substring(4),r=(e,t)=>{document.cookie=e+'=; path='+a+(t?'; domain=.'+t:'')+'; expires=Thu, 01 Jan 1970 00:00:01 GMT;'};for(const t of e)r(t),r(t,n),s&&r(t,c)},xe=e=>(e=>{let t;try{t=JSON.parse(decodeURIComponent(e))}catch(e){t={}}return t})(Te(e||g.t.cookie.name,!0)),Te=(e,t)=>{const o=document.cookie.match('(^|;)\\s*'+e+'\\s*=\\s*([^;]+)');return o?t?o.pop():e:''},Me=e=>{const t=document.cookie.split(/;\s*/),o=[];for(const n of t){let t=n.split('=')[0];if(e)try{e.test(t)&&o.push(t)}catch(e){}else o.push(t)}return o},De=(e,n=[])=>{((e,t)=>{const{O:o,R:n,B:a,k:s,ee:c,Y:r}=g.o;let i=[];if(e){v(e)?i.push(...e):h(e)&&(i='all'===e?o:[e]);for(const e of o)c[e]=y(i,e)?S(r[e]):[]}else i=s?(()=>{const e=g.se.ce;if(!e)return[];let t=[];for(let o in e)e[o].checked&&t.push(o);return t})():n;i=i.filter((e=>!y(o,e)||!y(t,e))),i.push(...a),U(i)})(e,n),(e=>{const t=g.o,{ee:o,B:n,Z:a,Y:s,O:c}=t,r=c;t.oe=O(a);for(const e of r){const t=s[e],c=S(t),r=o[e]?.length>0,i=y(n,e);if(0!==c.length){if(a[e]=[],i)a[e].push(...c);else if(r){const t=o[e];a[e].push(...t)}else a[e]=[];a[e]=x(a[e])}}})(),(()=>{const e=g.o;g.t.mode===o&&e.T?e.V=L(e.G,e.R):e.V=L(e.R,e.p.categories);let n=e.V.length>0,a=!1;for(const t of e.O)e.te[t]=L(e.Z[t],e.oe[t]),e.te[t].length>0&&(a=!0);const s=g.se.ce;for(let t in s)s[t].checked=y(e.R,t);for(const t of e.O){const o=g.se.re[t],n=e.Z[t];for(const e in o)o[e].checked=y(n,e)}e.h||(e.h=new Date),e.S||(e.S=([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g,(e=>(e^crypto.getRandomValues(new Uint8Array(1))[0]&15>>e/4).toString(16)))),e.p={categories:O(e.R),revision:g.t.revision,data:e.v,consentTimestamp:e.h.toISOString(),consentId:e.S,services:O(e.Z)};let c=!1;(e.T||n||a)&&(e.T&&(e.T=!1,c=!0),e.C?e.C=new Date:e.C=e.h,e.p.lastConsentTimestamp=e.C.toISOString(),we(),g.t.autoClearCookies&&(c||!e.T&&n)&&(e=>{const t=g.o,o=Me();t.I=!1;let n=e?t.O:t.V;n=n.filter((e=>{let o=t.P[e];return!!o&&!o.readOnly&&!!o.autoClear}));for(const a of n){const n=t.P[a].autoClear,s=n?.cookies||[],c=y(t.V,a),r=!y(t.R,a),i=c&&r;if(e&&r||!e&&i){!0===n.reloadPage&&i&&(t.I=!0);for(const e of s){let t=[];const n=e.name,a=e.domain,s=e.path;if(n instanceof RegExp)for(let e of o)n.test(e)&&t.push(e);else{let e=b(o,n);e>-1&&t.push(o[e])}t.length>0&&Se(t,s,a)}}}})(c),Y()),c&&(X(g.le.de),X(g.le.fe),g.t.mode===t)||((n||a)&&X(g.le._e),e.I&&location.reload())})()},Ee=(e,t,o)=>{let n=[];const a=e=>{if(h(e)){let t=Te(e);''!==t&&n.push(t)}else n.push(...Me(e))};if(v(e))for(let t of e)a(t);else a(e);Se(n,t,o)},Ae=e=>{const{se:t,o:o}=g;if(!o.D){if(!o.M){if(!e)return;me(Fe,Ce)}o.D=!0,o.L=T(),o.g&&K(!0),V(t.Ce,n),k(t.we,l,'false'),$(t.ve,1),X(g.le.ue,u)}},ke=()=>{const{se:e,o:t,le:o}=g;t.D&&(t.D=!1,t.g&&K(),$(e.Ke),P(e.Ce,n),k(e.we,l,'true'),$(t.L),t.L=null,X(o.pe,u))},Ne=()=>{const e=g.o;e.A||(e.k||_e(Fe,Ce),e.A=!0,V(g.se.Ce,a),k(g.se.Se,l,'false'),e.D?e.U=T():e.L=T(),$(g.se.he,2),X(g.le.ue,p))},He=()=>{const e=g.o;e.A&&(e.A=!1,$(g.se.Ge),P(g.se.Ce,a),k(g.se.Se,l,'true'),e.D?($(e.U,1),e.U=null):($(e.L),e.L=null),X(g.le.pe,p))};var Fe={show:Ae,hide:ke,showPreferences:Ne,hidePreferences:He,acceptCategory:De};const Ve=(e,t)=>{const o=xe(t);return e?o[e]:o},Ie=()=>!g.o.T;e.acceptCategory=De,e.acceptService=(e,t)=>{const{O:o,Y:n}=g.o;if(!(e&&t&&h(t)&&y(o,t)&&0!==S(n[t]).length))return!1;((e,t)=>{const o=g.o,{Y:n,ee:a,k:s}=o,c=g.se.re[t]||{},r=g.se.ce[t]||{},i=S(n[t]);if(a[t]=[],h(e)){if('all'===e){if(a[t].push(...i),s)for(let e in c)c[e].checked=!0,E(c[e])}else if(y(i,e)&&a[t].push(e),s)for(let t in c)c[t].checked=e===t,E(c[t])}else if(v(e))for(let o of i){const n=y(e,o);n&&a[t].push(o),s&&(c[o].checked=n,E(c[o]))}const l=0===a[t].length;o.R=l?o.R.filter((e=>e!==t)):x([...o.R,t]),s&&(r.checked=!l,E(r))})(e,t),De()},e.acceptedCategory=e=>{const t=g.o.T?[]:g.o.R;return y(t,e)},e.acceptedService=(e,t)=>{const o=g.o.T?[]:g.o.Z[t];return y(o,e)},e.eraseCookies=Ee,e.getConfig=e=>{const t=g.t,o=g.o.i;return e?t[e]||o[e]:{...t,...o,cookie:{...t.cookie}}},e.getCookie=Ve,e.getUserPreferences=()=>{const{j:e,Z:t}=g.o,{accepted:o,rejected:n}=(()=>{const{T:e,R:t,O:o}=g.o;return{accepted:t,rejected:e?[]:o.filter((e=>!y(t,e)))}})();return O({acceptType:e,acceptedCategories:o,rejectedCategories:n,acceptedServices:t,rejectedServices:R()})},e.hide=ke,e.hidePreferences=He,e.loadScript=(e,t)=>{let o=document.querySelector('script[src="'+e+'"]');return new Promise((n=>{if(o)return n(!0);if(o=A('script'),C(t))for(const e in t)k(o,e,t[e]);o.onload=()=>n(!0),o.onerror=()=>{o.remove(),n(!1)},o.src=e,F(document.head,o)}))},e.reset=e=>{const{qe:t,Ce:o}=g.se,{name:c,path:r,domain:i}=g.t.cookie;e&&Ee(c,r,i);for(const{ge:e,be:t,ye:o}of g.o.m)e.removeEventListener(t,o);t?.remove(),o?.classList.remove(s,a,n);const l=new m;for(const e in g)g[e]=l[e];window._ccRun=!1},e.run=async e=>{const{o:t,t:n,le:a}=g,s=window;if(!s._ccRun){if(s._ccRun=!0,(e=>{const{se:t,t:n,o:a}=g,s=n,r=a,{cookie:i}=s,l=g.ie,d=e.cookie,f=e.categories,_=S(f)||[],u=navigator,p=document;t.Ue=p,t.Ce=p.documentElement,i.domain=location.hostname,r.i=e,r.P=f,r.O=_,r._=e.language.translations,r.g=!!e.disablePageInteraction,l.de=e.onFirstConsent,l.fe=e.onConsent,l._e=e.onChange,l.pe=e.onModalHide,l.ue=e.onModalShow,l.me=e.onModalReady;const{mode:m,autoShow:b,lazyHtmlGeneration:v,autoClearCookies:h,revision:w,manageScriptTags:x,hideFromBots:T}=e;m===o&&(s.mode=m),'boolean'==typeof h&&(s.autoClearCookies=h),'boolean'==typeof x&&(s.manageScriptTags=x),'number'==typeof w&&w>=0&&(s.revision=w,r.H=!0),'boolean'==typeof b&&(s.autoShow=b),'boolean'==typeof v&&(s.lazyHtmlGeneration=v),!1===T&&(s.hideFromBots=!1),!0===s.hideFromBots&&u&&(r.J=u.userAgent&&/bot|crawl|spider|slurp|teoma/i.test(u.userAgent)||u.webdriver),C(d)&&(s.cookie={...i,...d}),s.autoClearCookies,r.H,s.manageScriptTags,(e=>{const{P:t,Y:o,Z:n,ee:a,B:s}=g.o;for(let c of e){const e=t[c],r=e.services||{},i=C(r)&&S(r)||[];o[c]={},n[c]=[],a[c]=[],e.readOnly&&(s.push(c),n[c]=i),g.se.re[c]={};for(let e of i){const t=r[e];t.xe=!1,o[c][e]=t}}})(_),(()=>{if(!g.t.manageScriptTags)return;const e=g.o,t=D(document,'script['+c+']');for(const o of t){let t=H(o,c),n=o.dataset.service||'',a=!1;if(t&&'!'===t.charAt(0)&&(t=t.slice(1),a=!0),'!'===n.charAt(0)&&(n=n.slice(1),a=!0),y(e.O,t)&&(e.ne.push(o),e.ae.push({De:!1,Ee:a,Te:t,Me:n}),n)){const o=e.Y[t];o[n]||(o[n]={xe:!1})}}})(),ye((()=>{const e=g.o.i.language.autoDetect;if(e){let t;if('browser'===e?t=navigator.language.slice(0,2).toLowerCase():'document'===e&&(t=document.documentElement.lang),ge(t))return t}return be()})())})(e),t.J)return;(()=>{const e=g.o,t=g.t,n=xe(),{categories:a,services:s,consentId:c,consentTimestamp:r,lastConsentTimestamp:i,data:l,revision:d}=n,f=v(a);e.p=n,e.S=c;const _=!!c&&h(c);e.h=r,e.h&&(e.h=new Date(r)),e.C=i,e.C&&(e.C=new Date(i)),e.v=void 0!==l?l:null,e.H&&_&&d!==t.revision&&(e.F=!1),e.T=!(_&&e.F&&e.h&&e.C&&f),e.T,e.T?t.mode===o&&((()=>{const e=g.o;for(const t of e.O){const o=e.P[t];if(o.enabled||o.readOnly){e.G.push(t);const o=e.Y[t]||{};for(let n in o)e.Z[t].push(n)}}})(),e.R=[...e.G]):(e.Z={...e.Z,...s},U([...e.B,...a])),e.ee={...e.Z}})();const r=Ie();if(!await ve())return!1;if(await(async e=>{z(null,e,_e,Ce),g.o.T&&me(e,Ce),g.t.lazyHtmlGeneration||_e(e,Ce),(()=>{const e=g.se,t=g.o;G(e.Ce,'keydown',(e=>{if('Tab'!==e.key)return;if(!t.A&&!t.D)return;const o=t.W,n=t.K;if(o.length>0){const t=T();e.shiftKey?t!==o[0]&&n.contains(t)||(M(e),$(o[1])):t!==o[1]&&n.contains(t)||(M(e),$(o[0]))}}),!0)})()})(Fe),n.autoShow&&!r&&Ae(!0),r)return Y(),X(a.fe);n.mode===o&&Y(t.G)}},e.setCookieData=e=>{let t,o=e.value,n=e.mode,a=!1;const s=g.o;if('update'===n){s.v=t=Ve('data');const e=typeof t==typeof o;if(e&&'object'==typeof t){!t&&(t={});for(let e in o)t[e]!==o[e]&&(t[e]=o[e],a=!0)}else!e&&t||t===o||(t=o,a=!0)}else t=o,a=!0;return a&&(s.v=t,s.p.data=t,we(!0)),a},e.setLanguage=async(e,t)=>{if(!ge(e))return!1;const o=g.o;return!(e===be()&&!0!==t||!await ve(e)||(ye(e),o.M&&me(Fe,Ce),o.k&&_e(Fe,Ce),he(),0))},e.show=Ae,e.showPreferences=Ne,e.validConsent=Ie,e.validCookie=e=>''!==Te(e,!0)},'object'==typeof exports&&'undefined'!=typeof module?t(exports):'function'==typeof define&&define.amd?define(['exports'],t):t((e='undefined'!=typeof globalThis?globalThis:e||self).CookieConsent={}); diff --git a/dist/core/cookieconsent-core.esm.js b/dist/core/cookieconsent-core.esm.js index bf057d1d..82c36d5b 100644 --- a/dist/core/cookieconsent-core.esm.js +++ b/dist/core/cookieconsent-core.esm.js @@ -4,4 +4,4 @@ * Author Orest Bida * Released under the MIT License */ -const e='opt-in',t='opt-out',o='data-category';class n{constructor(){this.t={mode:e,revision:0,autoClearCookies:!0,manageScriptTags:!0,hideFromBots:!0,cookie:{name:'cc_cookie',expiresAfterDays:182,domain:'',path:'/',sameSite:'Lax'}},this.o={i:{},l:'',_:{},u:{},p:{},m:[],g:!1,C:null,v:null,S:null,h:'',D:!0,T:!1,N:!0,k:[],F:!1,I:'',j:!1,M:[],O:[],A:[],R:[],P:!1,B:!1,J:!1,L:[],U:[],G:null,H:[],q:[],K:{},V:{},W:{},X:{},Y:{},Z:[],$:[]},this.ee={te:{},oe:{}},this.ne={},this.se={ce:'cc:onFirstConsent',ae:'cc:onConsent',re:'cc:onChange'}}}const s=new n,c=(e,t)=>e.indexOf(t),a=(e,t)=>-1!==c(e,t),r=e=>Array.isArray(e),i=e=>'string'==typeof e,l=e=>!!e&&'object'==typeof e&&!r(e),f=e=>'function'==typeof e,d=e=>Object.keys(e),_=e=>Array.from(new Set(e)),u=e=>e.dispatchEvent(new Event('change')),p=e=>{const t=document.createElement(e);return'button'===e&&(t.type=e),t},m=(e,t,o)=>e.setAttribute(t,o),g=(e,t,o)=>{e.removeAttribute(o?'data-'+t:t)},C=(e,t,o)=>e.getAttribute(o?'data-'+t:t),v=e=>{if('object'!=typeof e)return e;if(e instanceof Date)return new Date(e.getTime());let t=Array.isArray(e)?[]:{};for(let o in e){let n=e[o];t[o]=v(n)}return t},y=()=>{const e={},{M:t,K:o,V:n}=s.o;for(const s of t)e[s]=h(n[s],d(o[s]));return e},S=()=>{const e=s.t.cookie.expiresAfterDays;return f(e)?e(s.o.I):e},h=(e,t)=>{const o=e||[],n=t||[];return o.filter((e=>!a(n,e))).concat(n.filter((e=>!a(o,e))))},b=e=>{s.o.O=_(e),s.o.I=(()=>{let e='custom';const{O:t,M:o,A:n}=s.o,c=t.length;return c===o.length?e='all':c===n.length&&(e='necessary'),e})()},w=(e,t,o)=>{const{re:n,ae:c,ce:a,ie:r,le:i,fe:l}=s.ne,d=s.se,_={cookie:s.o.p};e===d.ce?f(a)&&a(v(_)):e===d.ae?f(c)&&c(v(_)):(_.changedCategories=s.o.k,_.changedServices=s.o.X,f(n)&&n(v(_))),((e,t)=>{dispatchEvent(new CustomEvent(e,{detail:t}))})(e,v(_))},D=e=>{const{V:t,X:n,M:c,K:r,Z:i,$:l,p:d,k:_}=s.o;for(const e of c){const o=n[e]||t[e]||[];for(const n of o){const o=r[e][n];if(!o)continue;const{onAccept:s,onReject:c}=o;!o.de&&a(t[e],n)&&f(s)?(o.de=!0,s()):o.de&&!a(t[e],n)&&f(c)&&(o.de=!1,c())}}if(!s.t.manageScriptTags)return;const u=i,v=e||d.categories||[],y=(e,s)=>{if(s{y(e,++s)}),c.replaceWith(a),n)return}}y(e,++s)}};y(u,0)},T=e=>{const{hostname:t,protocol:o}=location,{name:n,path:c,domain:r,sameSite:i}=s.t.cookie,l=encodeURIComponent(JSON.stringify(s.o.p)),f=e?(()=>{const e=s.o.S,t=e?new Date-e:0;return 864e5*S()-t})():864e5*S(),d=new Date;d.setTime(d.getTime()+f);let _=n+'='+l+(0!==f?'; expires='+d.toUTCString():'')+'; Path='+c+'; SameSite='+i;a(t,'.')&&(_+='; Domain='+r),'https:'===o&&(_+='; Secure'),document.cookie=_,s.o.p},E=(e,t,o)=>{const n=o||s.t.cookie.domain,c=t||s.t.cookie.path,a='www.'===n.slice(0,4),r=a&&n.substring(4),i=(e,t)=>{document.cookie=e+'=; path='+c+(t?'; domain=.'+t:'')+'; expires=Thu, 01 Jan 1970 00:00:01 GMT;'};for(const t of e)i(t),i(t,n),a&&i(t,r)},N=e=>(e=>{let t;try{t=JSON.parse(decodeURIComponent(e))}catch(e){t={}}return t})(k(e||s.t.cookie.name,!0)),k=(e,t)=>{const o=document.cookie.match('(^|;)\\s*'+e+'\\s*=\\s*([^;]+)');return o?t?o.pop():e:''},x=e=>{const t=document.cookie.split(/;\s*/),o=[];for(const n of t){let t=n.split('=')[0];if(e)try{e.test(t)&&o.push(t)}catch(e){}else o.push(t)}return o},F=(o,n=[])=>{((e,t)=>{const{M:o,O:n,A:c,ge:l,W:f,K:_}=s.o;let u=[];if(e){r(e)?u.push(...e):i(e)&&(u='all'===e?o:[e]);for(const e of o)f[e]=a(u,e)?d(_[e]):[]}else u=l?(()=>{const e=s.ee.te;if(!e)return[];let t=[];for(let o in e)e[o].checked&&t.push(o);return t})():n;u=u.filter((e=>!a(o,e)||!a(t,e))),u.push(...c),b(u)})(o,n),(e=>{const t=s.o,{W:o,A:n,V:c,K:r,M:i}=t,l=i;t.Y=v(c);for(const e of l){const t=r[e],s=d(t),i=o[e]?.length>0,l=a(n,e);if(0!==s.length){if(c[e]=[],l)c[e].push(...s);else if(i){const t=o[e];c[e].push(...t)}else c[e]=[];c[e]=_(c[e])}}})(),(()=>{const o=s.o;s.t.mode===t&&o.D?o.k=h(o.R,o.O):o.k=h(o.O,o.p.categories);let n=o.k.length>0,r=!1;for(const e of o.M)o.X[e]=h(o.V[e],o.Y[e]),o.X[e].length>0&&(r=!0);const i=s.ee.te;for(let e in i)i[e].checked=a(o.O,e);for(const e of o.M){const t=s.ee.oe[e],n=o.V[e];for(const e in t)t[e].checked=a(n,e)}o.v||(o.v=new Date),o.h||(o.h=([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g,(e=>(e^crypto.getRandomValues(new Uint8Array(1))[0]&15>>e/4).toString(16)))),o.p={categories:v(o.O),revision:s.t.revision,data:o.C,consentTimestamp:o.v.toISOString(),consentId:o.h,services:v(o.V)};let l=!1;(o.D||n||r)&&(o.D&&(o.D=!1,l=!0),o.S?o.S=new Date:o.S=o.v,o.p.lastConsentTimestamp=o.S.toISOString(),T(),s.t.autoClearCookies&&(l||!o.D&&n)&&(e=>{const t=s.o,o=x();t.F=!1;let n=e?t.M:t.k;n=n.filter((e=>{let o=t.j[e];return!!o&&!o.readOnly&&!!o.autoClear}));for(const s of n){const n=t.j[s].autoClear,r=n?.cookies||[],i=a(t.k,s),l=!a(t.O,s),f=i&&l;if(e&&l||!e&&f){!0===n.reloadPage&&f&&(t.F=!0);for(const e of r){let t=[];const n=e.name,s=e.domain,a=e.path;if(n instanceof RegExp)for(let e of o)n.test(e)&&t.push(e);else{let e=c(o,n);e>-1&&t.push(o[e])}t.length>0&&E(t,a,s)}}}})(l),D()),l&&(w(s.se.ce),w(s.se.ae),s.t.mode===e)||((n||r)&&w(s.se.re),o.F&&location.reload())})()},I=e=>{const t=s.o.D?[]:s.o.O;return a(t,e)},j=(e,t)=>{const{M:o,K:n}=s.o;if(!(e&&t&&i(t)&&a(o,t)&&0!==d(n[t]).length))return!1;((e,t)=>{const o=s.o,{K:n,W:c,ge:l}=o,f=s.ee.oe[t]||{},p=s.ee.te[t]||{},m=d(n[t]);if(c[t]=[],i(e)){if('all'===e){if(c[t].push(...m),l)for(let e in f)f[e].checked=!0,u(f[e])}else if(a(m,e)&&c[t].push(e),l)for(let t in f)f[t].checked=e===t,u(f[t])}else if(r(e))for(let o of m){const n=a(e,o);n&&c[t].push(o),l&&(f[o].checked=n,u(f[o]))}const g=0===c[t].length;o.O=g?o.O.filter((e=>e!==t)):_([...o.O,t]),l&&(p.checked=!g,u(p))})(e,t),F()},M=(e,t)=>{const o=s.o.D?[]:s.o.V[t];return a(o,e)},O=e=>''!==k(e,!0),A=(e,t,o)=>{let n=[];const s=e=>{if(i(e)){let t=k(e);''!==t&&n.push(t)}else n.push(...x(e))};if(r(e))for(let t of e)s(t);else s(e);E(n,t,o)},R=()=>{const{I:e,V:t}=s.o,{accepted:o,rejected:n}=(()=>{const{D:e,O:t,M:o}=s.o;return{accepted:t,rejected:e?[]:o.filter((e=>!a(t,e)))}})();return v({acceptType:e,acceptedCategories:o,rejectedCategories:n,acceptedServices:t,rejectedServices:y()})},P=(e,t)=>{let o=document.querySelector('script[src="'+e+'"]');return new Promise((n=>{if(o)return n(!0);if(o=p('script'),l(t))for(const e in t)m(o,e,t[e]);var s,c;o.onload=()=>n(!0),o.onerror=()=>{o.remove(),n(!1)},o.src=e,s=document.head,c=o,s.appendChild(c)}))},B=e=>{let t,o=e.value,n=e.mode,c=!1;const a=s.o;if('update'===n){a.C=t=J('data');const e=typeof t==typeof o;if(e&&'object'==typeof t){!t&&(t={});for(let e in o)t[e]!==o[e]&&(t[e]=o[e],c=!0)}else!e&&t||t===o||(t=o,c=!0)}else t=o,c=!0;return c&&(a.C=t,a.p.data=t,T(!0)),c},J=(e,t)=>{const o=N(t);return e?o[e]:o},L=e=>{const t=s.t,o=s.o.i;return e?t[e]||o[e]:{...t,...o,cookie:{...t.cookie}}},U=()=>!s.o.D,G=async e=>{const{o:n,t:c,se:f}=s,_=window;if(!_._ccRun){if(_._ccRun=!0,(e=>{const{ee:n,t:c,o:r}=s,i=c,f=r,{cookie:_}=i,u=s.ne,p=e.cookie,m=e.categories,g=d(m)||[],v=navigator,y=document;n.Ce=y,n.ve=y.documentElement,_.domain=location.hostname,f.i=e,f.j=m,f.M=g,u.ce=e.onFirstConsent,u.ae=e.onConsent,u.re=e.onChange;const{mode:S,autoClearCookies:h,revision:b,manageScriptTags:w,hideFromBots:D}=e;S===t&&(i.mode=S),'boolean'==typeof h&&(i.autoClearCookies=h),'boolean'==typeof w&&(i.manageScriptTags=w),'number'==typeof b&&b>=0&&(i.revision=b,f.T=!0),!1===D&&(i.hideFromBots=!1),!0===i.hideFromBots&&v&&(f.P=v.userAgent&&/bot|crawl|spider|slurp|teoma/i.test(v.userAgent)||v.webdriver),l(p)&&(i.cookie={..._,...p}),i.autoClearCookies,f.T,i.manageScriptTags,(e=>{const{j:t,K:o,V:n,W:c,A:a}=s.o;for(let r of e){const e=t[r],i=e.services||{},f=l(i)&&d(i)||[];o[r]={},n[r]=[],c[r]=[],e.readOnly&&(a.push(r),n[r]=f),s.ee.oe[r]={};for(let e of f){const t=i[e];t.de=!1,o[r][e]=t}}})(g),(()=>{if(!s.t.manageScriptTags)return;const e=s.o;var t,n;e.Z=(t=s.ee.Ce,n='script['+o+']',t.querySelectorAll(n)),e.$=[];for(const t of e.Z){let n=C(t,o),s=t.dataset.service||'',c=!1;if(n&&'!'===n.charAt(0)&&(n=n.slice(1),c=!0),'!'===s.charAt(0)&&(s=s.slice(1),c=!0),a(e.M,n)&&(e.$.push({pe:!1,me:c,_e:n,ue:s}),s)){const t=e.K[n];t[s]||(t[s]={de:!1})}}})()})(e),n.P)return;if((()=>{const e=s.o,o=s.t,n=N(),{categories:c,services:a,consentId:l,consentTimestamp:f,lastConsentTimestamp:d,data:_,revision:u}=n,p=r(c);e.p=n,e.h=l;const m=!!l&&i(l);e.v=f,e.v&&(e.v=new Date(f)),e.S=d,e.S&&(e.S=new Date(d)),e.C=void 0!==_?_:null,e.T&&m&&u!==o.revision&&(e.N=!1),e.D=!(m&&e.N&&e.v&&e.S&&p),e.D,e.D?o.mode===t&&((()=>{const e=s.o;for(const t of e.M){const o=e.j[t];if(o.enabled||o.readOnly){e.R.push(t);const o=e.K[t]||{};for(let n in o)e.V[t].push(n)}}})(),e.O=[...e.R]):(e.V={...e.V,...a},b([...e.A,...c])),e.W={...e.V}})(),U())return D(),w(f.ae);c.mode===t&&D(n.R)}},H=e=>{const{name:t,path:o,domain:c}=s.t.cookie;e&&A(t,o,c);for(const{ye:e,Se:t,he:o}of s.o.m)e.removeEventListener(t,o);const a=new n;for(const e in s)s[e]=a[e];window._ccRun=!1};export{F as acceptCategory,j as acceptService,I as acceptedCategory,M as acceptedService,A as eraseCookies,L as getConfig,J as getCookie,R as getUserPreferences,P as loadScript,H as reset,G as run,B as setCookieData,U as validConsent,O as validCookie}; +const e='opt-in',t='opt-out',o='data-category';class n{constructor(){this.t={mode:e,revision:0,autoClearCookies:!0,manageScriptTags:!0,hideFromBots:!0,cookie:{name:'cc_cookie',expiresAfterDays:182,domain:'',path:'/',sameSite:'Lax'}},this.o={i:{},l:'',_:{},u:{},p:{},m:[],g:!1,C:null,v:null,S:null,h:'',D:!0,T:!1,N:!0,k:[],F:!1,I:'',j:!1,M:[],O:[],A:[],R:[],P:!1,B:!1,J:!1,L:[],U:[],G:null,H:[],q:[],K:{},V:{},W:{},X:{},Y:{},Z:[],$:[]},this.ee={te:{},oe:{}},this.ne={},this.se={ce:'cc:onFirstConsent',ae:'cc:onConsent',re:'cc:onChange'}}}const s=new n,c=(e,t)=>e.indexOf(t),a=(e,t)=>-1!==c(e,t),r=e=>Array.isArray(e),i=e=>'string'==typeof e,l=e=>!!e&&'object'==typeof e&&!r(e),f=e=>'function'==typeof e,d=e=>Object.keys(e),_=e=>Array.from(new Set(e)),u=e=>e.dispatchEvent(new Event('change')),p=e=>{const t=document.createElement(e);return'button'===e&&(t.type=e),t},m=(e,t,o)=>e.setAttribute(t,o),g=(e,t,o)=>{e.removeAttribute(o?'data-'+t:t)},C=(e,t,o)=>e.getAttribute(o?'data-'+t:t),v=e=>{if('object'!=typeof e)return e;if(e instanceof Date)return new Date(e.getTime());let t=Array.isArray(e)?[]:{};for(let o in e){let n=e[o];t[o]=v(n)}return t},y=()=>{const e={},{M:t,K:o,V:n}=s.o;for(const s of t)e[s]=h(n[s],d(o[s]));return e},S=()=>{const e=s.t.cookie.expiresAfterDays;return f(e)?e(s.o.I):e},h=(e,t)=>{const o=e||[],n=t||[];return o.filter((e=>!a(n,e))).concat(n.filter((e=>!a(o,e))))},b=e=>{s.o.O=_(e),s.o.I=(()=>{let e='custom';const{O:t,M:o,A:n}=s.o,c=t.length;return c===o.length?e='all':c===n.length&&(e='necessary'),e})()},w=(e,t,o)=>{const{re:n,ae:c,ce:a,ie:r,le:i,fe:l}=s.ne,d=s.se,_={cookie:s.o.p};e===d.ce?f(a)&&a(v(_)):e===d.ae?f(c)&&c(v(_)):(_.changedCategories=s.o.k,_.changedServices=s.o.X,f(n)&&n(v(_))),((e,t)=>{dispatchEvent(new CustomEvent(e,{detail:t}))})(e,v(_))},D=e=>{const{V:t,X:n,M:c,K:r,Z:i,$:l,p:d,k:_}=s.o;for(const e of c){const o=n[e]||t[e]||[];for(const n of o){const o=r[e][n];if(!o)continue;const{onAccept:s,onReject:c}=o;!o.de&&a(t[e],n)&&f(s)?(o.de=!0,s()):o.de&&!a(t[e],n)&&f(c)&&(o.de=!1,c())}}if(!s.t.manageScriptTags)return;const u=i,v=e||d.categories||[],y=(e,s)=>{if(s{y(e,++s)}),c.replaceWith(a),n)return}}y(e,++s)}};y(u,0)},T=e=>{const{hostname:t,protocol:o}=location,{name:n,path:c,domain:r,sameSite:i}=s.t.cookie,l=encodeURIComponent(JSON.stringify(s.o.p)),f=e?(()=>{const e=s.o.S,t=e?new Date-e:0;return 864e5*S()-t})():864e5*S(),d=new Date;d.setTime(d.getTime()+f);let _=n+'='+l+(0!==f?'; expires='+d.toUTCString():'')+'; Path='+c+'; SameSite='+i;a(t,'.')&&(_+='; Domain='+r),'https:'===o&&(_+='; Secure'),document.cookie=_,s.o.p},E=(e,t,o)=>{const n=o||s.t.cookie.domain,c=t||s.t.cookie.path,a='www.'===n.slice(0,4),r=a&&n.substring(4),i=(e,t)=>{document.cookie=e+'=; path='+c+(t?'; domain=.'+t:'')+'; expires=Thu, 01 Jan 1970 00:00:01 GMT;'};for(const t of e)i(t),i(t,n),a&&i(t,r)},N=e=>(e=>{let t;try{t=JSON.parse(decodeURIComponent(e))}catch(e){t={}}return t})(k(e||s.t.cookie.name,!0)),k=(e,t)=>{const o=document.cookie.match('(^|;)\\s*'+e+'\\s*=\\s*([^;]+)');return o?t?o.pop():e:''},x=e=>{const t=document.cookie.split(/;\s*/),o=[];for(const n of t){let t=n.split('=')[0];if(e)try{e.test(t)&&o.push(t)}catch(e){}else o.push(t)}return o},F=(o,n=[])=>{((e,t)=>{const{M:o,O:n,A:c,ge:l,W:f,K:_}=s.o;let u=[];if(e){r(e)?u.push(...e):i(e)&&(u='all'===e?o:[e]);for(const e of o)f[e]=a(u,e)?d(_[e]):[]}else u=l?(()=>{const e=s.ee.te;if(!e)return[];let t=[];for(let o in e)e[o].checked&&t.push(o);return t})():n;u=u.filter((e=>!a(o,e)||!a(t,e))),u.push(...c),b(u)})(o,n),(e=>{const t=s.o,{W:o,A:n,V:c,K:r,M:i}=t,l=i;t.Y=v(c);for(const e of l){const t=r[e],s=d(t),i=o[e]?.length>0,l=a(n,e);if(0!==s.length){if(c[e]=[],l)c[e].push(...s);else if(i){const t=o[e];c[e].push(...t)}else c[e]=[];c[e]=_(c[e])}}})(),(()=>{const o=s.o;s.t.mode===t&&o.D?o.k=h(o.R,o.O):o.k=h(o.O,o.p.categories);let n=o.k.length>0,r=!1;for(const e of o.M)o.X[e]=h(o.V[e],o.Y[e]),o.X[e].length>0&&(r=!0);const i=s.ee.te;for(let e in i)i[e].checked=a(o.O,e);for(const e of o.M){const t=s.ee.oe[e],n=o.V[e];for(const e in t)t[e].checked=a(n,e)}o.v||(o.v=new Date),o.h||(o.h=([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g,(e=>(e^crypto.getRandomValues(new Uint8Array(1))[0]&15>>e/4).toString(16)))),o.p={categories:v(o.O),revision:s.t.revision,data:o.C,consentTimestamp:o.v.toISOString(),consentId:o.h,services:v(o.V)};let l=!1;(o.D||n||r)&&(o.D&&(o.D=!1,l=!0),o.S?o.S=new Date:o.S=o.v,o.p.lastConsentTimestamp=o.S.toISOString(),T(),s.t.autoClearCookies&&(l||!o.D&&n)&&(e=>{const t=s.o,o=x();t.F=!1;let n=e?t.M:t.k;n=n.filter((e=>{let o=t.j[e];return!!o&&!o.readOnly&&!!o.autoClear}));for(const s of n){const n=t.j[s].autoClear,r=n?.cookies||[],i=a(t.k,s),l=!a(t.O,s),f=i&&l;if(e&&l||!e&&f){!0===n.reloadPage&&f&&(t.F=!0);for(const e of r){let t=[];const n=e.name,s=e.domain,a=e.path;if(n instanceof RegExp)for(let e of o)n.test(e)&&t.push(e);else{let e=c(o,n);e>-1&&t.push(o[e])}t.length>0&&E(t,a,s)}}}})(l),D()),l&&(w(s.se.ce),w(s.se.ae),s.t.mode===e)||((n||r)&&w(s.se.re),o.F&&location.reload())})()},I=e=>{const t=s.o.D?[]:s.o.O;return a(t,e)},j=(e,t)=>{const{M:o,K:n}=s.o;if(!(e&&t&&i(t)&&a(o,t)&&0!==d(n[t]).length))return!1;((e,t)=>{const o=s.o,{K:n,W:c,ge:l}=o,f=s.ee.oe[t]||{},p=s.ee.te[t]||{},m=d(n[t]);if(c[t]=[],i(e)){if('all'===e){if(c[t].push(...m),l)for(let e in f)f[e].checked=!0,u(f[e])}else if(a(m,e)&&c[t].push(e),l)for(let t in f)f[t].checked=e===t,u(f[t])}else if(r(e))for(let o of m){const n=a(e,o);n&&c[t].push(o),l&&(f[o].checked=n,u(f[o]))}const g=0===c[t].length;o.O=g?o.O.filter((e=>e!==t)):_([...o.O,t]),l&&(p.checked=!g,u(p))})(e,t),F()},M=(e,t)=>{const o=s.o.D?[]:s.o.V[t];return a(o,e)},O=e=>''!==k(e,!0),A=(e,t,o)=>{let n=[];const s=e=>{if(i(e)){let t=k(e);''!==t&&n.push(t)}else n.push(...x(e))};if(r(e))for(let t of e)s(t);else s(e);E(n,t,o)},R=()=>{const{I:e,V:t}=s.o,{accepted:o,rejected:n}=(()=>{const{D:e,O:t,M:o}=s.o;return{accepted:t,rejected:e?[]:o.filter((e=>!a(t,e)))}})();return v({acceptType:e,acceptedCategories:o,rejectedCategories:n,acceptedServices:t,rejectedServices:y()})},P=(e,t)=>{let o=document.querySelector('script[src="'+e+'"]');return new Promise((n=>{if(o)return n(!0);if(o=p('script'),l(t))for(const e in t)m(o,e,t[e]);var s,c;o.onload=()=>n(!0),o.onerror=()=>{o.remove(),n(!1)},o.src=e,s=document.head,c=o,s.appendChild(c)}))},B=e=>{let t,o=e.value,n=e.mode,c=!1;const a=s.o;if('update'===n){a.C=t=J('data');const e=typeof t==typeof o;if(e&&'object'==typeof t){!t&&(t={});for(let e in o)t[e]!==o[e]&&(t[e]=o[e],c=!0)}else!e&&t||t===o||(t=o,c=!0)}else t=o,c=!0;return c&&(a.C=t,a.p.data=t,T(!0)),c},J=(e,t)=>{const o=N(t);return e?o[e]:o},L=e=>{const t=s.t,o=s.o.i;return e?t[e]||o[e]:{...t,...o,cookie:{...t.cookie}}},U=()=>!s.o.D,G=async e=>{const{o:n,t:c,se:f}=s,_=window;if(!_._ccRun){if(_._ccRun=!0,(e=>{const{ee:n,t:c,o:r}=s,i=c,f=r,{cookie:_}=i,u=s.ne,p=e.cookie,m=e.categories,g=d(m)||[],v=navigator,y=document;n.Ce=y,n.ve=y.documentElement,_.domain=location.hostname,f.i=e,f.j=m,f.M=g,u.ce=e.onFirstConsent,u.ae=e.onConsent,u.re=e.onChange;const{mode:S,autoClearCookies:h,revision:b,manageScriptTags:w,hideFromBots:D}=e;S===t&&(i.mode=S),'boolean'==typeof h&&(i.autoClearCookies=h),'boolean'==typeof w&&(i.manageScriptTags=w),'number'==typeof b&&b>=0&&(i.revision=b,f.T=!0),!1===D&&(i.hideFromBots=!1),!0===i.hideFromBots&&v&&(f.P=v.userAgent&&/bot|crawl|spider|slurp|teoma/i.test(v.userAgent)||v.webdriver),l(p)&&(i.cookie={..._,...p}),i.autoClearCookies,f.T,i.manageScriptTags,(e=>{const{j:t,K:o,V:n,W:c,A:a}=s.o;for(let r of e){const e=t[r],i=e.services||{},f=l(i)&&d(i)||[];o[r]={},n[r]=[],c[r]=[],e.readOnly&&(a.push(r),n[r]=f),s.ee.oe[r]={};for(let e of f){const t=i[e];t.de=!1,o[r][e]=t}}})(g),(()=>{if(!s.t.manageScriptTags)return;const e=s.o,t=(n=document,c='script['+o+']',n.querySelectorAll(c));var n,c;for(const n of t){let t=C(n,o),s=n.dataset.service||'',c=!1;if(t&&'!'===t.charAt(0)&&(t=t.slice(1),c=!0),'!'===s.charAt(0)&&(s=s.slice(1),c=!0),a(e.M,t)&&(e.Z.push(n),e.$.push({pe:!1,me:c,_e:t,ue:s}),s)){const o=e.K[t];o[s]||(o[s]={de:!1})}}})()})(e),n.P)return;if((()=>{const e=s.o,o=s.t,n=N(),{categories:c,services:a,consentId:l,consentTimestamp:f,lastConsentTimestamp:d,data:_,revision:u}=n,p=r(c);e.p=n,e.h=l;const m=!!l&&i(l);e.v=f,e.v&&(e.v=new Date(f)),e.S=d,e.S&&(e.S=new Date(d)),e.C=void 0!==_?_:null,e.T&&m&&u!==o.revision&&(e.N=!1),e.D=!(m&&e.N&&e.v&&e.S&&p),e.D,e.D?o.mode===t&&((()=>{const e=s.o;for(const t of e.M){const o=e.j[t];if(o.enabled||o.readOnly){e.R.push(t);const o=e.K[t]||{};for(let n in o)e.V[t].push(n)}}})(),e.O=[...e.R]):(e.V={...e.V,...a},b([...e.A,...c])),e.W={...e.V}})(),U())return D(),w(f.ae);c.mode===t&&D(n.R)}},H=e=>{const{name:t,path:o,domain:c}=s.t.cookie;e&&A(t,o,c);for(const{ye:e,Se:t,he:o}of s.o.m)e.removeEventListener(t,o);const a=new n;for(const e in s)s[e]=a[e];window._ccRun=!1};export{F as acceptCategory,j as acceptService,I as acceptedCategory,M as acceptedService,A as eraseCookies,L as getConfig,J as getCookie,R as getUserPreferences,P as loadScript,H as reset,G as run,B as setCookieData,U as validConsent,O as validCookie}; diff --git a/dist/core/cookieconsent-core.umd.js b/dist/core/cookieconsent-core.umd.js index 0bd1030d..1b653ca7 100644 --- a/dist/core/cookieconsent-core.umd.js +++ b/dist/core/cookieconsent-core.umd.js @@ -4,4 +4,4 @@ * Author Orest Bida * Released under the MIT License */ -var e,t;e=this,t=function(e){'use strict';const t='opt-in',o='opt-out',n='data-category';class s{constructor(){this.t={mode:t,revision:0,autoClearCookies:!0,manageScriptTags:!0,hideFromBots:!0,cookie:{name:'cc_cookie',expiresAfterDays:182,domain:'',path:'/',sameSite:'Lax'}},this.o={i:{},l:'',_:{},u:{},p:{},m:[],g:!1,C:null,v:null,S:null,h:'',D:!0,T:!1,N:!0,k:[],F:!1,j:'',I:!1,M:[],O:[],A:[],R:[],P:!1,B:!1,J:!1,L:[],U:[],G:null,H:[],q:[],K:{},V:{},W:{},X:{},Y:{},Z:[],$:[]},this.ee={te:{},oe:{}},this.ne={},this.se={ce:'cc:onFirstConsent',ae:'cc:onConsent',re:'cc:onChange'}}}const c=new s,a=(e,t)=>e.indexOf(t),r=(e,t)=>-1!==a(e,t),i=e=>Array.isArray(e),l=e=>'string'==typeof e,f=e=>!!e&&'object'==typeof e&&!i(e),d=e=>'function'==typeof e,_=e=>Object.keys(e),u=e=>Array.from(new Set(e)),p=e=>e.dispatchEvent(new Event('change')),m=e=>{const t=document.createElement(e);return'button'===e&&(t.type=e),t},g=(e,t,o)=>e.setAttribute(t,o),C=(e,t,o)=>{e.removeAttribute(o?'data-'+t:t)},v=(e,t,o)=>e.getAttribute(o?'data-'+t:t),y=e=>{if('object'!=typeof e)return e;if(e instanceof Date)return new Date(e.getTime());let t=Array.isArray(e)?[]:{};for(let o in e){let n=e[o];t[o]=y(n)}return t},S=()=>{const e={},{M:t,K:o,V:n}=c.o;for(const s of t)e[s]=b(n[s],_(o[s]));return e},h=()=>{const e=c.t.cookie.expiresAfterDays;return d(e)?e(c.o.j):e},b=(e,t)=>{const o=e||[],n=t||[];return o.filter((e=>!r(n,e))).concat(n.filter((e=>!r(o,e))))},w=e=>{c.o.O=u(e),c.o.j=(()=>{let e='custom';const{O:t,M:o,A:n}=c.o,s=t.length;return s===o.length?e='all':s===n.length&&(e='necessary'),e})()},D=(e,t,o)=>{const{re:n,ae:s,ce:a,ie:r,le:i,fe:l}=c.ne,f=c.se,_={cookie:c.o.p};e===f.ce?d(a)&&a(y(_)):e===f.ae?d(s)&&s(y(_)):(_.changedCategories=c.o.k,_.changedServices=c.o.X,d(n)&&n(y(_))),((e,t)=>{dispatchEvent(new CustomEvent(e,{detail:t}))})(e,y(_))},T=e=>{const{V:t,X:o,M:s,K:a,Z:i,$:l,p:f,k:_}=c.o;for(const e of s){const n=o[e]||t[e]||[];for(const o of n){const n=a[e][o];if(!n)continue;const{onAccept:s,onReject:c}=n;!n.de&&r(t[e],o)&&d(s)?(n.de=!0,s()):n.de&&!r(t[e],o)&&d(c)&&(n.de=!1,c())}}if(!c.t.manageScriptTags)return;const u=i,p=e||f.categories||[],y=(e,s)=>{if(s{y(e,++s)}),c.replaceWith(r),o)return}}y(e,++s)}};y(u,0)},E=e=>{const{hostname:t,protocol:o}=location,{name:n,path:s,domain:a,sameSite:i}=c.t.cookie,l=encodeURIComponent(JSON.stringify(c.o.p)),f=e?(()=>{const e=c.o.S,t=e?new Date-e:0;return 864e5*h()-t})():864e5*h(),d=new Date;d.setTime(d.getTime()+f);let _=n+'='+l+(0!==f?'; expires='+d.toUTCString():'')+'; Path='+s+'; SameSite='+i;r(t,'.')&&(_+='; Domain='+a),'https:'===o&&(_+='; Secure'),document.cookie=_,c.o.p},N=(e,t,o)=>{const n=o||c.t.cookie.domain,s=t||c.t.cookie.path,a='www.'===n.slice(0,4),r=a&&n.substring(4),i=(e,t)=>{document.cookie=e+'=; path='+s+(t?'; domain=.'+t:'')+'; expires=Thu, 01 Jan 1970 00:00:01 GMT;'};for(const t of e)i(t),i(t,n),a&&i(t,r)},x=e=>(e=>{let t;try{t=JSON.parse(decodeURIComponent(e))}catch(e){t={}}return t})(k(e||c.t.cookie.name,!0)),k=(e,t)=>{const o=document.cookie.match('(^|;)\\s*'+e+'\\s*=\\s*([^;]+)');return o?t?o.pop():e:''},F=e=>{const t=document.cookie.split(/;\s*/),o=[];for(const n of t){let t=n.split('=')[0];if(e)try{e.test(t)&&o.push(t)}catch(e){}else o.push(t)}return o},j=(e,n=[])=>{((e,t)=>{const{M:o,O:n,A:s,ge:a,W:f,K:d}=c.o;let u=[];if(e){i(e)?u.push(...e):l(e)&&(u='all'===e?o:[e]);for(const e of o)f[e]=r(u,e)?_(d[e]):[]}else u=a?(()=>{const e=c.ee.te;if(!e)return[];let t=[];for(let o in e)e[o].checked&&t.push(o);return t})():n;u=u.filter((e=>!r(o,e)||!r(t,e))),u.push(...s),w(u)})(e,n),(e=>{const t=c.o,{W:o,A:n,V:s,K:a,M:i}=t,l=i;t.Y=y(s);for(const e of l){const t=a[e],c=_(t),i=o[e]?.length>0,l=r(n,e);if(0!==c.length){if(s[e]=[],l)s[e].push(...c);else if(i){const t=o[e];s[e].push(...t)}else s[e]=[];s[e]=u(s[e])}}})(),(()=>{const e=c.o;c.t.mode===o&&e.D?e.k=b(e.R,e.O):e.k=b(e.O,e.p.categories);let n=e.k.length>0,s=!1;for(const t of e.M)e.X[t]=b(e.V[t],e.Y[t]),e.X[t].length>0&&(s=!0);const i=c.ee.te;for(let t in i)i[t].checked=r(e.O,t);for(const t of e.M){const o=c.ee.oe[t],n=e.V[t];for(const e in o)o[e].checked=r(n,e)}e.v||(e.v=new Date),e.h||(e.h=([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g,(e=>(e^crypto.getRandomValues(new Uint8Array(1))[0]&15>>e/4).toString(16)))),e.p={categories:y(e.O),revision:c.t.revision,data:e.C,consentTimestamp:e.v.toISOString(),consentId:e.h,services:y(e.V)};let l=!1;(e.D||n||s)&&(e.D&&(e.D=!1,l=!0),e.S?e.S=new Date:e.S=e.v,e.p.lastConsentTimestamp=e.S.toISOString(),E(),c.t.autoClearCookies&&(l||!e.D&&n)&&(e=>{const t=c.o,o=F();t.F=!1;let n=e?t.M:t.k;n=n.filter((e=>{let o=t.I[e];return!!o&&!o.readOnly&&!!o.autoClear}));for(const s of n){const n=t.I[s].autoClear,c=n?.cookies||[],i=r(t.k,s),l=!r(t.O,s),f=i&&l;if(e&&l||!e&&f){!0===n.reloadPage&&f&&(t.F=!0);for(const e of c){let t=[];const n=e.name,s=e.domain,c=e.path;if(n instanceof RegExp)for(let e of o)n.test(e)&&t.push(e);else{let e=a(o,n);e>-1&&t.push(o[e])}t.length>0&&N(t,c,s)}}}})(l),T()),l&&(D(c.se.ce),D(c.se.ae),c.t.mode===t)||((n||s)&&D(c.se.re),e.F&&location.reload())})()},I=(e,t,o)=>{let n=[];const s=e=>{if(l(e)){let t=k(e);''!==t&&n.push(t)}else n.push(...F(e))};if(i(e))for(let t of e)s(t);else s(e);N(n,t,o)},M=(e,t)=>{const o=x(t);return e?o[e]:o},O=()=>!c.o.D;e.acceptCategory=j,e.acceptService=(e,t)=>{const{M:o,K:n}=c.o;if(!(e&&t&&l(t)&&r(o,t)&&0!==_(n[t]).length))return!1;((e,t)=>{const o=c.o,{K:n,W:s,ge:a}=o,f=c.ee.oe[t]||{},d=c.ee.te[t]||{},m=_(n[t]);if(s[t]=[],l(e)){if('all'===e){if(s[t].push(...m),a)for(let e in f)f[e].checked=!0,p(f[e])}else if(r(m,e)&&s[t].push(e),a)for(let t in f)f[t].checked=e===t,p(f[t])}else if(i(e))for(let o of m){const n=r(e,o);n&&s[t].push(o),a&&(f[o].checked=n,p(f[o]))}const g=0===s[t].length;o.O=g?o.O.filter((e=>e!==t)):u([...o.O,t]),a&&(d.checked=!g,p(d))})(e,t),j()},e.acceptedCategory=e=>{const t=c.o.D?[]:c.o.O;return r(t,e)},e.acceptedService=(e,t)=>{const o=c.o.D?[]:c.o.V[t];return r(o,e)},e.eraseCookies=I,e.getConfig=e=>{const t=c.t,o=c.o.i;return e?t[e]||o[e]:{...t,...o,cookie:{...t.cookie}}},e.getCookie=M,e.getUserPreferences=()=>{const{j:e,V:t}=c.o,{accepted:o,rejected:n}=(()=>{const{D:e,O:t,M:o}=c.o;return{accepted:t,rejected:e?[]:o.filter((e=>!r(t,e)))}})();return y({acceptType:e,acceptedCategories:o,rejectedCategories:n,acceptedServices:t,rejectedServices:S()})},e.loadScript=(e,t)=>{let o=document.querySelector('script[src="'+e+'"]');return new Promise((n=>{if(o)return n(!0);if(o=m('script'),f(t))for(const e in t)g(o,e,t[e]);var s,c;o.onload=()=>n(!0),o.onerror=()=>{o.remove(),n(!1)},o.src=e,s=document.head,c=o,s.appendChild(c)}))},e.reset=e=>{const{name:t,path:o,domain:n}=c.t.cookie;e&&I(t,o,n);for(const{Ce:e,ve:t,ye:o}of c.o.m)e.removeEventListener(t,o);const a=new s;for(const e in c)c[e]=a[e];window._ccRun=!1},e.run=async e=>{const{o:t,t:s,se:a}=c,d=window;if(!d._ccRun){if(d._ccRun=!0,(e=>{const{ee:t,t:s,o:a}=c,i=s,l=a,{cookie:d}=i,u=c.ne,p=e.cookie,m=e.categories,g=_(m)||[],C=navigator,y=document;t.Se=y,t.he=y.documentElement,d.domain=location.hostname,l.i=e,l.I=m,l.M=g,u.ce=e.onFirstConsent,u.ae=e.onConsent,u.re=e.onChange;const{mode:S,autoClearCookies:h,revision:b,manageScriptTags:w,hideFromBots:D}=e;S===o&&(i.mode=S),'boolean'==typeof h&&(i.autoClearCookies=h),'boolean'==typeof w&&(i.manageScriptTags=w),'number'==typeof b&&b>=0&&(i.revision=b,l.T=!0),!1===D&&(i.hideFromBots=!1),!0===i.hideFromBots&&C&&(l.P=C.userAgent&&/bot|crawl|spider|slurp|teoma/i.test(C.userAgent)||C.webdriver),f(p)&&(i.cookie={...d,...p}),i.autoClearCookies,l.T,i.manageScriptTags,(e=>{const{I:t,K:o,V:n,W:s,A:a}=c.o;for(let r of e){const e=t[r],i=e.services||{},l=f(i)&&_(i)||[];o[r]={},n[r]=[],s[r]=[],e.readOnly&&(a.push(r),n[r]=l),c.ee.oe[r]={};for(let e of l){const t=i[e];t.de=!1,o[r][e]=t}}})(g),(()=>{if(!c.t.manageScriptTags)return;const e=c.o;var t,o;e.Z=(t=c.ee.Se,o='script['+n+']',t.querySelectorAll(o)),e.$=[];for(const t of e.Z){let o=v(t,n),s=t.dataset.service||'',c=!1;if(o&&'!'===o.charAt(0)&&(o=o.slice(1),c=!0),'!'===s.charAt(0)&&(s=s.slice(1),c=!0),r(e.M,o)&&(e.$.push({pe:!1,me:c,_e:o,ue:s}),s)){const t=e.K[o];t[s]||(t[s]={de:!1})}}})()})(e),t.P)return;if((()=>{const e=c.o,t=c.t,n=x(),{categories:s,services:a,consentId:r,consentTimestamp:f,lastConsentTimestamp:d,data:_,revision:u}=n,p=i(s);e.p=n,e.h=r;const m=!!r&&l(r);e.v=f,e.v&&(e.v=new Date(f)),e.S=d,e.S&&(e.S=new Date(d)),e.C=void 0!==_?_:null,e.T&&m&&u!==t.revision&&(e.N=!1),e.D=!(m&&e.N&&e.v&&e.S&&p),e.D,e.D?t.mode===o&&((()=>{const e=c.o;for(const t of e.M){const o=e.I[t];if(o.enabled||o.readOnly){e.R.push(t);const o=e.K[t]||{};for(let n in o)e.V[t].push(n)}}})(),e.O=[...e.R]):(e.V={...e.V,...a},w([...e.A,...s])),e.W={...e.V}})(),O())return T(),D(a.ae);s.mode===o&&T(t.R)}},e.setCookieData=e=>{let t,o=e.value,n=e.mode,s=!1;const a=c.o;if('update'===n){a.C=t=M('data');const e=typeof t==typeof o;if(e&&'object'==typeof t){!t&&(t={});for(let e in o)t[e]!==o[e]&&(t[e]=o[e],s=!0)}else!e&&t||t===o||(t=o,s=!0)}else t=o,s=!0;return s&&(a.C=t,a.p.data=t,E(!0)),s},e.validConsent=O,e.validCookie=e=>''!==k(e,!0)},'object'==typeof exports&&'undefined'!=typeof module?t(exports):'function'==typeof define&&define.amd?define(['exports'],t):t((e='undefined'!=typeof globalThis?globalThis:e||self).CookieConsent={}); +var e,t;e=this,t=function(e){'use strict';const t='opt-in',o='opt-out',n='data-category';class s{constructor(){this.t={mode:t,revision:0,autoClearCookies:!0,manageScriptTags:!0,hideFromBots:!0,cookie:{name:'cc_cookie',expiresAfterDays:182,domain:'',path:'/',sameSite:'Lax'}},this.o={i:{},l:'',_:{},u:{},p:{},m:[],g:!1,C:null,v:null,S:null,h:'',D:!0,T:!1,N:!0,k:[],F:!1,j:'',I:!1,M:[],O:[],A:[],R:[],P:!1,B:!1,J:!1,L:[],U:[],G:null,H:[],q:[],K:{},V:{},W:{},X:{},Y:{},Z:[],$:[]},this.ee={te:{},oe:{}},this.ne={},this.se={ce:'cc:onFirstConsent',ae:'cc:onConsent',re:'cc:onChange'}}}const c=new s,a=(e,t)=>e.indexOf(t),r=(e,t)=>-1!==a(e,t),i=e=>Array.isArray(e),l=e=>'string'==typeof e,f=e=>!!e&&'object'==typeof e&&!i(e),d=e=>'function'==typeof e,_=e=>Object.keys(e),u=e=>Array.from(new Set(e)),p=e=>e.dispatchEvent(new Event('change')),m=e=>{const t=document.createElement(e);return'button'===e&&(t.type=e),t},g=(e,t,o)=>e.setAttribute(t,o),C=(e,t,o)=>{e.removeAttribute(o?'data-'+t:t)},v=(e,t,o)=>e.getAttribute(o?'data-'+t:t),y=e=>{if('object'!=typeof e)return e;if(e instanceof Date)return new Date(e.getTime());let t=Array.isArray(e)?[]:{};for(let o in e){let n=e[o];t[o]=y(n)}return t},S=()=>{const e={},{M:t,K:o,V:n}=c.o;for(const s of t)e[s]=b(n[s],_(o[s]));return e},h=()=>{const e=c.t.cookie.expiresAfterDays;return d(e)?e(c.o.j):e},b=(e,t)=>{const o=e||[],n=t||[];return o.filter((e=>!r(n,e))).concat(n.filter((e=>!r(o,e))))},w=e=>{c.o.O=u(e),c.o.j=(()=>{let e='custom';const{O:t,M:o,A:n}=c.o,s=t.length;return s===o.length?e='all':s===n.length&&(e='necessary'),e})()},D=(e,t,o)=>{const{re:n,ae:s,ce:a,ie:r,le:i,fe:l}=c.ne,f=c.se,_={cookie:c.o.p};e===f.ce?d(a)&&a(y(_)):e===f.ae?d(s)&&s(y(_)):(_.changedCategories=c.o.k,_.changedServices=c.o.X,d(n)&&n(y(_))),((e,t)=>{dispatchEvent(new CustomEvent(e,{detail:t}))})(e,y(_))},T=e=>{const{V:t,X:o,M:s,K:a,Z:i,$:l,p:f,k:_}=c.o;for(const e of s){const n=o[e]||t[e]||[];for(const o of n){const n=a[e][o];if(!n)continue;const{onAccept:s,onReject:c}=n;!n.de&&r(t[e],o)&&d(s)?(n.de=!0,s()):n.de&&!r(t[e],o)&&d(c)&&(n.de=!1,c())}}if(!c.t.manageScriptTags)return;const u=i,p=e||f.categories||[],y=(e,s)=>{if(s{y(e,++s)}),c.replaceWith(r),o)return}}y(e,++s)}};y(u,0)},E=e=>{const{hostname:t,protocol:o}=location,{name:n,path:s,domain:a,sameSite:i}=c.t.cookie,l=encodeURIComponent(JSON.stringify(c.o.p)),f=e?(()=>{const e=c.o.S,t=e?new Date-e:0;return 864e5*h()-t})():864e5*h(),d=new Date;d.setTime(d.getTime()+f);let _=n+'='+l+(0!==f?'; expires='+d.toUTCString():'')+'; Path='+s+'; SameSite='+i;r(t,'.')&&(_+='; Domain='+a),'https:'===o&&(_+='; Secure'),document.cookie=_,c.o.p},N=(e,t,o)=>{const n=o||c.t.cookie.domain,s=t||c.t.cookie.path,a='www.'===n.slice(0,4),r=a&&n.substring(4),i=(e,t)=>{document.cookie=e+'=; path='+s+(t?'; domain=.'+t:'')+'; expires=Thu, 01 Jan 1970 00:00:01 GMT;'};for(const t of e)i(t),i(t,n),a&&i(t,r)},x=e=>(e=>{let t;try{t=JSON.parse(decodeURIComponent(e))}catch(e){t={}}return t})(k(e||c.t.cookie.name,!0)),k=(e,t)=>{const o=document.cookie.match('(^|;)\\s*'+e+'\\s*=\\s*([^;]+)');return o?t?o.pop():e:''},F=e=>{const t=document.cookie.split(/;\s*/),o=[];for(const n of t){let t=n.split('=')[0];if(e)try{e.test(t)&&o.push(t)}catch(e){}else o.push(t)}return o},j=(e,n=[])=>{((e,t)=>{const{M:o,O:n,A:s,ge:a,W:f,K:d}=c.o;let u=[];if(e){i(e)?u.push(...e):l(e)&&(u='all'===e?o:[e]);for(const e of o)f[e]=r(u,e)?_(d[e]):[]}else u=a?(()=>{const e=c.ee.te;if(!e)return[];let t=[];for(let o in e)e[o].checked&&t.push(o);return t})():n;u=u.filter((e=>!r(o,e)||!r(t,e))),u.push(...s),w(u)})(e,n),(e=>{const t=c.o,{W:o,A:n,V:s,K:a,M:i}=t,l=i;t.Y=y(s);for(const e of l){const t=a[e],c=_(t),i=o[e]?.length>0,l=r(n,e);if(0!==c.length){if(s[e]=[],l)s[e].push(...c);else if(i){const t=o[e];s[e].push(...t)}else s[e]=[];s[e]=u(s[e])}}})(),(()=>{const e=c.o;c.t.mode===o&&e.D?e.k=b(e.R,e.O):e.k=b(e.O,e.p.categories);let n=e.k.length>0,s=!1;for(const t of e.M)e.X[t]=b(e.V[t],e.Y[t]),e.X[t].length>0&&(s=!0);const i=c.ee.te;for(let t in i)i[t].checked=r(e.O,t);for(const t of e.M){const o=c.ee.oe[t],n=e.V[t];for(const e in o)o[e].checked=r(n,e)}e.v||(e.v=new Date),e.h||(e.h=([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g,(e=>(e^crypto.getRandomValues(new Uint8Array(1))[0]&15>>e/4).toString(16)))),e.p={categories:y(e.O),revision:c.t.revision,data:e.C,consentTimestamp:e.v.toISOString(),consentId:e.h,services:y(e.V)};let l=!1;(e.D||n||s)&&(e.D&&(e.D=!1,l=!0),e.S?e.S=new Date:e.S=e.v,e.p.lastConsentTimestamp=e.S.toISOString(),E(),c.t.autoClearCookies&&(l||!e.D&&n)&&(e=>{const t=c.o,o=F();t.F=!1;let n=e?t.M:t.k;n=n.filter((e=>{let o=t.I[e];return!!o&&!o.readOnly&&!!o.autoClear}));for(const s of n){const n=t.I[s].autoClear,c=n?.cookies||[],i=r(t.k,s),l=!r(t.O,s),f=i&&l;if(e&&l||!e&&f){!0===n.reloadPage&&f&&(t.F=!0);for(const e of c){let t=[];const n=e.name,s=e.domain,c=e.path;if(n instanceof RegExp)for(let e of o)n.test(e)&&t.push(e);else{let e=a(o,n);e>-1&&t.push(o[e])}t.length>0&&N(t,c,s)}}}})(l),T()),l&&(D(c.se.ce),D(c.se.ae),c.t.mode===t)||((n||s)&&D(c.se.re),e.F&&location.reload())})()},I=(e,t,o)=>{let n=[];const s=e=>{if(l(e)){let t=k(e);''!==t&&n.push(t)}else n.push(...F(e))};if(i(e))for(let t of e)s(t);else s(e);N(n,t,o)},M=(e,t)=>{const o=x(t);return e?o[e]:o},O=()=>!c.o.D;e.acceptCategory=j,e.acceptService=(e,t)=>{const{M:o,K:n}=c.o;if(!(e&&t&&l(t)&&r(o,t)&&0!==_(n[t]).length))return!1;((e,t)=>{const o=c.o,{K:n,W:s,ge:a}=o,f=c.ee.oe[t]||{},d=c.ee.te[t]||{},m=_(n[t]);if(s[t]=[],l(e)){if('all'===e){if(s[t].push(...m),a)for(let e in f)f[e].checked=!0,p(f[e])}else if(r(m,e)&&s[t].push(e),a)for(let t in f)f[t].checked=e===t,p(f[t])}else if(i(e))for(let o of m){const n=r(e,o);n&&s[t].push(o),a&&(f[o].checked=n,p(f[o]))}const g=0===s[t].length;o.O=g?o.O.filter((e=>e!==t)):u([...o.O,t]),a&&(d.checked=!g,p(d))})(e,t),j()},e.acceptedCategory=e=>{const t=c.o.D?[]:c.o.O;return r(t,e)},e.acceptedService=(e,t)=>{const o=c.o.D?[]:c.o.V[t];return r(o,e)},e.eraseCookies=I,e.getConfig=e=>{const t=c.t,o=c.o.i;return e?t[e]||o[e]:{...t,...o,cookie:{...t.cookie}}},e.getCookie=M,e.getUserPreferences=()=>{const{j:e,V:t}=c.o,{accepted:o,rejected:n}=(()=>{const{D:e,O:t,M:o}=c.o;return{accepted:t,rejected:e?[]:o.filter((e=>!r(t,e)))}})();return y({acceptType:e,acceptedCategories:o,rejectedCategories:n,acceptedServices:t,rejectedServices:S()})},e.loadScript=(e,t)=>{let o=document.querySelector('script[src="'+e+'"]');return new Promise((n=>{if(o)return n(!0);if(o=m('script'),f(t))for(const e in t)g(o,e,t[e]);var s,c;o.onload=()=>n(!0),o.onerror=()=>{o.remove(),n(!1)},o.src=e,s=document.head,c=o,s.appendChild(c)}))},e.reset=e=>{const{name:t,path:o,domain:n}=c.t.cookie;e&&I(t,o,n);for(const{Ce:e,ve:t,ye:o}of c.o.m)e.removeEventListener(t,o);const a=new s;for(const e in c)c[e]=a[e];window._ccRun=!1},e.run=async e=>{const{o:t,t:s,se:a}=c,d=window;if(!d._ccRun){if(d._ccRun=!0,(e=>{const{ee:t,t:s,o:a}=c,i=s,l=a,{cookie:d}=i,u=c.ne,p=e.cookie,m=e.categories,g=_(m)||[],C=navigator,y=document;t.Se=y,t.he=y.documentElement,d.domain=location.hostname,l.i=e,l.I=m,l.M=g,u.ce=e.onFirstConsent,u.ae=e.onConsent,u.re=e.onChange;const{mode:S,autoClearCookies:h,revision:b,manageScriptTags:w,hideFromBots:D}=e;S===o&&(i.mode=S),'boolean'==typeof h&&(i.autoClearCookies=h),'boolean'==typeof w&&(i.manageScriptTags=w),'number'==typeof b&&b>=0&&(i.revision=b,l.T=!0),!1===D&&(i.hideFromBots=!1),!0===i.hideFromBots&&C&&(l.P=C.userAgent&&/bot|crawl|spider|slurp|teoma/i.test(C.userAgent)||C.webdriver),f(p)&&(i.cookie={...d,...p}),i.autoClearCookies,l.T,i.manageScriptTags,(e=>{const{I:t,K:o,V:n,W:s,A:a}=c.o;for(let r of e){const e=t[r],i=e.services||{},l=f(i)&&_(i)||[];o[r]={},n[r]=[],s[r]=[],e.readOnly&&(a.push(r),n[r]=l),c.ee.oe[r]={};for(let e of l){const t=i[e];t.de=!1,o[r][e]=t}}})(g),(()=>{if(!c.t.manageScriptTags)return;const e=c.o,t=(o=document,s='script['+n+']',o.querySelectorAll(s));var o,s;for(const o of t){let t=v(o,n),s=o.dataset.service||'',c=!1;if(t&&'!'===t.charAt(0)&&(t=t.slice(1),c=!0),'!'===s.charAt(0)&&(s=s.slice(1),c=!0),r(e.M,t)&&(e.Z.push(o),e.$.push({pe:!1,me:c,_e:t,ue:s}),s)){const o=e.K[t];o[s]||(o[s]={de:!1})}}})()})(e),t.P)return;if((()=>{const e=c.o,t=c.t,n=x(),{categories:s,services:a,consentId:r,consentTimestamp:f,lastConsentTimestamp:d,data:_,revision:u}=n,p=i(s);e.p=n,e.h=r;const m=!!r&&l(r);e.v=f,e.v&&(e.v=new Date(f)),e.S=d,e.S&&(e.S=new Date(d)),e.C=void 0!==_?_:null,e.T&&m&&u!==t.revision&&(e.N=!1),e.D=!(m&&e.N&&e.v&&e.S&&p),e.D,e.D?t.mode===o&&((()=>{const e=c.o;for(const t of e.M){const o=e.I[t];if(o.enabled||o.readOnly){e.R.push(t);const o=e.K[t]||{};for(let n in o)e.V[t].push(n)}}})(),e.O=[...e.R]):(e.V={...e.V,...a},w([...e.A,...s])),e.W={...e.V}})(),O())return T(),D(a.ae);s.mode===o&&T(t.R)}},e.setCookieData=e=>{let t,o=e.value,n=e.mode,s=!1;const a=c.o;if('update'===n){a.C=t=M('data');const e=typeof t==typeof o;if(e&&'object'==typeof t){!t&&(t={});for(let e in o)t[e]!==o[e]&&(t[e]=o[e],s=!0)}else!e&&t||t===o||(t=o,s=!0)}else t=o,s=!0;return s&&(a.C=t,a.p.data=t,E(!0)),s},e.validConsent=O,e.validCookie=e=>''!==k(e,!0)},'object'==typeof exports&&'undefined'!=typeof module?t(exports):'function'==typeof define&&define.amd?define(['exports'],t):t((e='undefined'!=typeof globalThis?globalThis:e||self).CookieConsent={}); diff --git a/src/core/global.js b/src/core/global.js index 7c12afd8..2066c77d 100644 --- a/src/core/global.js +++ b/src/core/global.js @@ -298,7 +298,7 @@ export class GlobalState { _lastEnabledServices: {}, /** - * @type {NodeListOf} + * @type {HTMLScriptElement[]} */ _allScriptTags: [], diff --git a/src/utils/general.js b/src/utils/general.js index 99e01d27..9c8fd258 100644 --- a/src/utils/general.js +++ b/src/utils/general.js @@ -216,10 +216,12 @@ export const retrieveScriptElements = () => { const state = globalObj._state; - state._allScriptTags = querySelectorAll(globalObj._dom._document, 'script[' + SCRIPT_TAG_SELECTOR +']'); - state._allScriptTagsInfo = []; + /** + * @type {NodeListOf} + */ + const scripts = querySelectorAll(document, 'script[' + SCRIPT_TAG_SELECTOR +']'); - for(const scriptTag of state._allScriptTags){ + for(const scriptTag of scripts){ let scriptCategoryName = getAttribute(scriptTag, SCRIPT_TAG_SELECTOR); let scriptServiceName = scriptTag.dataset.service || ''; @@ -240,6 +242,8 @@ export const retrieveScriptElements = () => { if(elContains(state._allCategoryNames, scriptCategoryName)){ + state._allScriptTags.push(scriptTag); + state._allScriptTagsInfo.push({ _executed: false, _runOnDisable: runOnDisable,