react-cookienotice
Version:
A lightweight & customizable cookie banner for your React App
37 lines (34 loc) • 22.8 kB
JavaScript
/**
* react-cookienotice v7.0.1
* (c) 2020-2025 by xavierbriole
* Released under the MIT License.
*/
(function(M,f){typeof exports=="object"&&typeof module<"u"?f(exports,require("react")):typeof define=="function"&&define.amd?define(["exports","react"],f):(M=typeof globalThis<"u"?globalThis:M||self,f(M.ReactCookieNotice={},M.React))})(this,function(M,f){"use strict";var ce={exports:{}},J={};/**
* @license React
* react-jsx-runtime.production.js
*
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/var Te;function _e(){if(Te)return J;Te=1;var t=Symbol.for("react.transitional.element"),c=Symbol.for("react.fragment");function s(b,l,p){var h=null;if(p!==void 0&&(h=""+p),l.key!==void 0&&(h=""+l.key),"key"in l){p={};for(var d in l)d!=="key"&&(p[d]=l[d])}else p=l;return l=p.ref,{$$typeof:t,type:b,key:h,ref:l!==void 0?l:null,props:p}}return J.Fragment=c,J.jsx=s,J.jsxs=s,J}var F={};/**
* @license React
* react-jsx-runtime.development.js
*
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/var ze;function Pe(){return ze||(ze=1,process.env.NODE_ENV!=="production"&&function(){function t(e){if(e==null)return null;if(typeof e=="function")return e.$$typeof===Ee?null:e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case D:return"Fragment";case ge:return"Portal";case I:return"Profiler";case se:return"StrictMode";case q:return"Suspense";case ee:return"SuspenseList"}if(typeof e=="object")switch(typeof e.tag=="number"&&console.error("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),e.$$typeof){case ue:return(e.displayName||"Context")+".Provider";case le:return(e._context.displayName||"Context")+".Consumer";case $:var o=e.render;return e=e.displayName,e||(e=o.displayName||o.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case te:return o=e.displayName||null,o!==null?o:t(e.type)||"Memo";case oe:o=e._payload,e=e._init;try{return t(e(o))}catch{}}return null}function c(e){return""+e}function s(e){try{c(e);var o=!1}catch{o=!0}if(o){o=console;var n=o.error,a=typeof Symbol=="function"&&Symbol.toStringTag&&e[Symbol.toStringTag]||e.constructor.name||"Object";return n.call(o,"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",a),c(e)}}function b(){}function l(){if(B===0){ne=console.log,de=console.info,be=console.warn,me=console.error,pe=console.group,ve=console.groupCollapsed,he=console.groupEnd;var e={configurable:!0,enumerable:!0,value:b,writable:!0};Object.defineProperties(console,{info:e,log:e,warn:e,error:e,group:e,groupCollapsed:e,groupEnd:e})}B++}function p(){if(B--,B===0){var e={configurable:!0,enumerable:!0,writable:!0};Object.defineProperties(console,{log:O({},e,{value:ne}),info:O({},e,{value:de}),warn:O({},e,{value:be}),error:O({},e,{value:me}),group:O({},e,{value:pe}),groupCollapsed:O({},e,{value:ve}),groupEnd:O({},e,{value:he})})}0>B&&console.error("disabledDepth fell below zero. This is a bug in React. Please file an issue.")}function h(e){if(ie===void 0)try{throw Error()}catch(n){var o=n.stack.trim().match(/\n( *(at )?)/);ie=o&&o[1]||"",P=-1<n.stack.indexOf(`
at`)?" (<anonymous>)":-1<n.stack.indexOf("@")?"@unknown:0:0":""}return`
`+ie+e+P}function d(e,o){if(!e||je)return"";var n=Ce.get(e);if(n!==void 0)return n;je=!0,n=Error.prepareStackTrace,Error.prepareStackTrace=void 0;var a=null;a=z.H,z.H=null,l();try{var k={DetermineComponentFrameRoot:function(){try{if(o){var L=function(){throw Error()};if(Object.defineProperty(L.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(L,[])}catch(R){var ke=R}Reflect.construct(e,[],L)}else{try{L.call()}catch(R){ke=R}e.call(L.prototype)}}else{try{throw Error()}catch(R){ke=R}(L=e())&&typeof L.catch=="function"&&L.catch(function(){})}}catch(R){if(R&&ke&&typeof R.stack=="string")return[R.stack,ke.stack]}return[null,null]}};k.DetermineComponentFrameRoot.displayName="DetermineComponentFrameRoot";var u=Object.getOwnPropertyDescriptor(k.DetermineComponentFrameRoot,"name");u&&u.configurable&&Object.defineProperty(k.DetermineComponentFrameRoot,"name",{value:"DetermineComponentFrameRoot"});var r=k.DetermineComponentFrameRoot(),N=r[0],G=r[1];if(N&&G){var E=N.split(`
`),U=G.split(`
`);for(r=u=0;u<E.length&&!E[u].includes("DetermineComponentFrameRoot");)u++;for(;r<U.length&&!U[r].includes("DetermineComponentFrameRoot");)r++;if(u===E.length||r===U.length)for(u=E.length-1,r=U.length-1;1<=u&&0<=r&&E[u]!==U[r];)r--;for(;1<=u&&0<=r;u--,r--)if(E[u]!==U[r]){if(u!==1||r!==1)do if(u--,r--,0>r||E[u]!==U[r]){var re=`
`+E[u].replace(" at new "," at ");return e.displayName&&re.includes("<anonymous>")&&(re=re.replace("<anonymous>",e.displayName)),typeof e=="function"&&Ce.set(e,re),re}while(1<=u&&0<=r);break}}}finally{je=!1,z.H=a,p(),Error.prepareStackTrace=n}return E=(E=e?e.displayName||e.name:"")?h(E):"",typeof e=="function"&&Ce.set(e,E),E}function m(e){if(e==null)return"";if(typeof e=="function"){var o=e.prototype;return d(e,!(!o||!o.isReactComponent))}if(typeof e=="string")return h(e);switch(e){case q:return h("Suspense");case ee:return h("SuspenseList")}if(typeof e=="object")switch(e.$$typeof){case $:return e=d(e.render,!1),e;case te:return m(e.type);case oe:o=e._payload,e=e._init;try{return m(e(o))}catch{}}return""}function x(){var e=z.A;return e===null?null:e.getOwner()}function g(e){if(S.call(e,"key")){var o=Object.getOwnPropertyDescriptor(e,"key").get;if(o&&o.isReactWarning)return!1}return e.key!==void 0}function j(e,o){function n(){Se||(Se=!0,console.error("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",o))}n.isReactWarning=!0,Object.defineProperty(e,"key",{get:n,configurable:!0})}function Y(){var e=t(this.type);return Oe[e]||(Oe[e]=!0,console.error("Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.")),e=this.props.ref,e!==void 0?e:null}function W(e,o,n,a,k,u){return n=u.ref,e={$$typeof:K,type:e,key:o,props:u,_owner:k},(n!==void 0?n:null)!==null?Object.defineProperty(e,"ref",{enumerable:!1,get:Y}):Object.defineProperty(e,"ref",{enumerable:!1,value:null}),e._store={},Object.defineProperty(e._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(e,"_debugInfo",{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.freeze&&(Object.freeze(e.props),Object.freeze(e)),e}function H(e,o,n,a,k,u){if(typeof e=="string"||typeof e=="function"||e===D||e===I||e===se||e===q||e===ee||e===Ae||typeof e=="object"&&e!==null&&(e.$$typeof===oe||e.$$typeof===te||e.$$typeof===ue||e.$$typeof===le||e.$$typeof===$||e.$$typeof===ye||e.getModuleId!==void 0)){var r=o.children;if(r!==void 0)if(a)if(_(r)){for(a=0;a<r.length;a++)y(r[a],e);Object.freeze&&Object.freeze(r)}else console.error("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else y(r,e)}else r="",(e===void 0||typeof e=="object"&&e!==null&&Object.keys(e).length===0)&&(r+=" You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports."),e===null?a="null":_(e)?a="array":e!==void 0&&e.$$typeof===K?(a="<"+(t(e.type)||"Unknown")+" />",r=" Did you accidentally export a JSX literal instead of a component?"):a=typeof e,console.error("React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s",a,r);if(S.call(o,"key")){r=t(e);var N=Object.keys(o).filter(function(E){return E!=="key"});a=0<N.length?"{key: someKey, "+N.join(": ..., ")+": ...}":"{key: someKey}",Ne[r+a]||(N=0<N.length?"{"+N.join(": ..., ")+": ...}":"{}",console.error(`A props object containing a "key" prop is being spread into JSX:
let props = %s;
<%s {...props} />
React keys must be passed directly to JSX without using spread:
let props = %s;
<%s key={someKey} {...props} />`,a,r,N,r),Ne[r+a]=!0)}if(r=null,n!==void 0&&(s(n),r=""+n),g(o)&&(s(o.key),r=""+o.key),"key"in o){n={};for(var G in o)G!=="key"&&(n[G]=o[G])}else n=o;return r&&j(n,typeof e=="function"?e.displayName||e.name||"Unknown":e),W(e,r,u,k,x(),n)}function y(e,o){if(typeof e=="object"&&e&&e.$$typeof!==Qe){if(_(e))for(var n=0;n<e.length;n++){var a=e[n];A(a)&&w(a,o)}else if(A(e))e._store&&(e._store.validated=1);else if(e===null||typeof e!="object"?n=null:(n=fe&&e[fe]||e["@@iterator"],n=typeof n=="function"?n:null),typeof n=="function"&&n!==e.entries&&(n=n.call(e),n!==e))for(;!(e=n.next()).done;)A(e.value)&&w(e.value,o)}}function A(e){return typeof e=="object"&&e!==null&&e.$$typeof===K}function w(e,o){if(e._store&&!e._store.validated&&e.key==null&&(e._store.validated=1,o=Z(o),!Re[o])){Re[o]=!0;var n="";e&&e._owner!=null&&e._owner!==x()&&(n=null,typeof e._owner.tag=="number"?n=t(e._owner.type):typeof e._owner.name=="string"&&(n=e._owner.name),n=" It was passed a child from "+n+".");var a=z.getCurrentStack;z.getCurrentStack=function(){var k=m(e.type);return a&&(k+=a()||""),k},console.error('Each child in a list should have a unique "key" prop.%s%s See https://react.dev/link/warning-keys for more information.',o,n),z.getCurrentStack=a}}function Z(e){var o="",n=x();return n&&(n=t(n.type))&&(o=`
Check the render method of \``+n+"`."),o||(e=t(e))&&(o=`
Check the top-level render call using <`+e+">."),o}var Q=f,K=Symbol.for("react.transitional.element"),ge=Symbol.for("react.portal"),D=Symbol.for("react.fragment"),se=Symbol.for("react.strict_mode"),I=Symbol.for("react.profiler"),le=Symbol.for("react.consumer"),ue=Symbol.for("react.context"),$=Symbol.for("react.forward_ref"),q=Symbol.for("react.suspense"),ee=Symbol.for("react.suspense_list"),te=Symbol.for("react.memo"),oe=Symbol.for("react.lazy"),Ae=Symbol.for("react.offscreen"),fe=Symbol.iterator,Ee=Symbol.for("react.client.reference"),z=Q.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,S=Object.prototype.hasOwnProperty,O=Object.assign,ye=Symbol.for("react.client.reference"),_=Array.isArray,B=0,ne,de,be,me,pe,ve,he;b.__reactDisabledLog=!0;var ie,P,je=!1,Ce=new(typeof WeakMap=="function"?WeakMap:Map),Qe=Symbol.for("react.client.reference"),Se,Oe={},Ne={},Re={};F.Fragment=D,F.jsx=function(e,o,n,a,k){return H(e,o,n,!1,a,k)},F.jsxs=function(e,o,n,a,k){return H(e,o,n,!0,a,k)}}()),F}var we;function Le(){return we||(we=1,process.env.NODE_ENV==="production"?ce.exports=_e():ce.exports=Pe()),ce.exports}var i=Le();const ae=t=>{const{name:c,value:s,expires:b,secure:l,httpOnly:p,sameSite:h}=t,d=new Date;d.setTime(d.getTime()+b*24*60*60*1e3);let m=`${c}=${s};expires=${d.toUTCString()};path=/;`;l&&(m+="Secure;"),p&&(m+="HttpOnly;"),m+=`SameSite=${h};`,document.cookie=m},Me=t=>{const c=document.cookie.match(`(^|;) ?${t}=([^;]*)(;|$)`);return c?decodeURIComponent(c[2]):null},v=t=>{process.env.NODE_ENV==="development"&&console.error(`[react-cookienotice] ${t}`)},C=t=>{if(typeof t=="string")return t},Ye=t=>{if(typeof t=="number"){if(t>=0)return t;v("timeout should be a positive number")}return 1e3},We=t=>{if(Array.isArray(t)){if(t.length===0&&v("services should have at least one element"),t.every(c=>typeof c=="object"))return t;v("services should contain only objects")}},Be=t=>{if(typeof t=="string"){if(t.lastIndexOf("http://",0)===0||t.lastIndexOf("https://",0)===0)return t;v('a link should start with "http://" or "https://"')}},Ue=t=>{if(typeof t=="boolean")return t},Ve=t=>typeof t=="object"?((t.vertical!=="top"||t.vertical!=="bottom")&&v('placement.vertical parameter should be "top" or "bottom"'),(t.horizontal!=="left"||t.horizontal!=="right")&&v('placement.horizontal parameter should be "left" or "right"'),t):{vertical:"bottom",horizontal:"left"},He=t=>typeof t=="object"?(typeof t.name!="string"&&v("cookieOptions.name parameter should be a string"),typeof t.value!="string"&&v("cookieOptions.value parameter should be a string"),typeof t.expires!="number"&&v("cookieOptions.expires parameter should be a number"),typeof t.secure!="boolean"&&v("cookieOptions.secure parameter should be a boolean"),typeof t.httpOnly!="boolean"&&v("cookieOptions.httpOnly parameter should be a boolean"),(t.sameSite!=="strict"||t.sameSite!=="lax"||t.sameSite!=="none")&&v('cookieOptions.sameSite parameter should be "strict", "lax" or "none"'),/\s/.test(t.name)&&v("cookieOptions.name parameter should not contain whitespace"),t.name===""&&v("cookieOptions.name parameter should have at least one character"),/\s/.test(t.value)&&v("cookieOptions.value parameter should not contain whitespace"),t.value===""&&v("cookieOptions.value parameter should have at least one character"),t.expires<=0&&v("cookieOptions.expires parameter should be more than 0 day"),t):{name:"hide-notice",value:"true",expires:30,secure:!1,httpOnly:!1,sameSite:"lax"},xe={de:{"text.title":"Cookie-Zustimmung","text.description":"Indem Sie auf „Akzeptieren“ klicken, stimmen Sie der Verwendung von Cookies auf unserer Website zu, um Ihnen durch die Speicherung Ihrer Cookie-Einstellungen ein möglichst relevantes Erlebnis zu bieten.","text.customizeTitle":"Anpassen","button.accept":"Akzeptieren","button.acceptAll":"Akzeptiere alle","button.declineAll":"Alles ablehnen","button.customize":"Anpassen","button.back":"Zurück","button.customizeAcceptAll":"Akzeptiere alle","text.alwaysActive":"Immer aktiv"},en:{"text.title":"Cookie consent","text.description":"By clicking Accept, you consent to our website's use of cookies to provide you with the most relevant experience by remembering your cookie preferences.","text.customizeTitle":"Customize","button.accept":"Accept","button.acceptAll":"Accept all","button.declineAll":"Decline all","button.customize":"Customize","button.back":"Back","button.customizeAcceptAll":"Accept all","text.alwaysActive":"Always active"},es:{"text.title":"Consentimiento de cookies","text.description":"Al hacer clic en Aceptar, usted acepta el uso de cookies por parte de nuestro sitio web para brindarle la experiencia más relevante al recordar sus preferencias de cookies.","text.customizeTitle":"Personalizar","button.accept":"Aceptar","button.acceptAll":"Aceptar todo","button.declineAll":"Rechazar todo","button.customize":"Personalizar","button.back":"Atrás","button.customizeAcceptAll":"Aceptar todo","text.alwaysActive":"Siempre activo"},fr:{"text.title":"Consentement aux cookies","text.description":"En cliquant sur Accepter, vous consentez à l'utilisation de cookies par notre site Web pour vous offrir l'expérience la plus pertinente en mémorisant vos préférences en matière de cookies.","text.customizeTitle":"Personnaliser","button.accept":"Accepter","button.acceptAll":"Accepter tout","button.declineAll":"Refuser tout","button.customize":"Personnaliser","button.back":"Retour","button.customizeAcceptAll":"Accepter tout","text.alwaysActive":"Toujours actif"},it:{"text.title":"Consenso ai cookie","text.description":"Facendo clic su Accetta, acconsenti all'utilizzo dei cookie da parte del nostro sito Web per fornirti l'esperienza più pertinente ricordando le tue preferenze sui cookie.","text.customizeTitle":"personalizzare","button.accept":"Accettare","button.acceptAll":"Accettare tutti","button.declineAll":"Rifiuta tutto","button.customize":"personalizzare","button.back":"Indietro","button.customizeAcceptAll":"Accettare tutti","text.alwaysActive":"Sempre attivo"},ko:{"text.title":"쿠키 동의","text.description":"동의를 클릭하면 귀하의 쿠키 기본 설정을 기억함으로써 가장 관련성 높은 경험을 제공하기 위해 당사 웹사이트의 쿠키 사용에 동의하는 것입니다.","text.customizeTitle":"사용자 정의","button.accept":"수용하다","button.acceptAll":"모든것을 받아 들인다","button.declineAll":"모두 거절","button.customize":"사용자 정의","button.back":"뒤쪽에","button.customizeAcceptAll":"모든것을 받아 들인다","text.alwaysActive":"항상 활성"},oc:{"text.title":"Consentiment als cookies","text.description":"En clicant Acceptar, consentètz a l'utilizacion de cookies per nòstre site Web per vos ofrir l'experiéncia mai pertinenta en memorizant vòstras preferéncias a prepaus dels cookies.","text.customizeTitle":"Personalizat","button.accept":"Acceptar","button.acceptAll":"Acceptar tot","button.declineAll":"Declinar tot","button.customize":"Personalizat","button.back":"Precedent","button.customizeAcceptAll":"Acceptar tot","text.alwaysActive":"Totjorn actiu"},zh:{"text.title":"Cookie 同意","text.description":"单击“接受”即表示您同意我们的网站使用 cookie, 通过记住您的 cookie 偏好来为您提供最相关的体验。","text.customizeTitle":"定制","button.accept":"接受","button.acceptAll":"全都接受","button.declineAll":"全部拒绝","button.customize":"定制","button.back":"后退","button.customizeAcceptAll":"全都接受","text.alwaysActive":"始终活跃"}},Ie="en",T=(t,c)=>{if(c!==void 0)return c;const s=navigator.language.split("-")[0],l=Object.keys(xe).includes(s)?s:Ie;return xe[l][t]===void 0?(v(`no message found for id "${t}"`),t):xe[l][t]},V=({onClick:t,children:c})=>i.jsx("button",{className:"react-cookienotice-button",onClick:t,children:c}),X=({children:t})=>i.jsx("span",{className:"react-cookienotice-label",children:t}),Ge=({name:t,description:c,code:s,alwaysActive:b,alwaysActiveLabel:l,isChecked:p,onCheckboxChange:h})=>{const[d,m]=f.useState(!1),x=f.useRef(null),g=()=>{m(!d)};return f.useEffect(()=>{if(x.current instanceof HTMLDivElement){if(d){x.current.style.maxHeight=`${x.current.scrollHeight}px`;return}x.current.style.maxHeight="0"}},[d]),i.jsxs("div",{className:"react-cookienotice-service",children:[i.jsxs("div",{className:"react-cookienotice-service-checkbox",children:[i.jsx("input",{type:"checkbox",id:s,name:s,checked:b||p,onChange:h,disabled:b}),i.jsx("label",{htmlFor:s,children:s})]}),i.jsxs("div",{className:"react-cookienotice-service-info",children:[i.jsxs("button",{className:`react-cookienotice-service-info-title${d?" open":""}`,onClick:g,children:[t,b&&i.jsx("div",{className:"react-cookienotice-service-info-title-always-active",children:i.jsx(X,{children:T("text.alwaysActive",l)})})]}),i.jsx("div",{ref:x,className:"react-cookienotice-service-info-content",children:i.jsx(X,{children:c})})]})]})},Je=({customizeTitleLabel:t,services:c,onAcceptButtonClick:s,acceptButtonLabel:b,onBackButtonClick:l,backButtonLabel:p,alwaysActiveLabel:h,customizeAcceptAllButtonLabel:d,onCustomizeAcceptAllButtonClick:m,customizeAcceptAllTimeout:x})=>{const[g,j]=f.useState([]),Y=f.useCallback(y=>{const{name:A}=y.target;if(g.includes(A)){j(g.filter(w=>w!==A));return}j([...g,A])},[g]),W=f.useCallback(()=>{const y=c.filter(({alwaysActive:A})=>A).map(({code:A})=>A);s([...g,...y])},[g,s]),H=f.useCallback(()=>{j(c.map(({code:y})=>y)),setTimeout(()=>{m==null||m(c.map(({code:y})=>y))},x)},[]);return i.jsxs(i.Fragment,{children:[i.jsxs("div",{className:"react-cookienotice-body",children:[i.jsx("div",{className:"react-cookienotice-title",children:i.jsx(X,{children:T("text.customizeTitle",t)})}),i.jsx("div",{className:"react-cookienotice-services",children:c.map(({name:y,description:A,code:w,alwaysActive:Z},Q)=>i.jsx(Ge,{name:y,description:A,code:w,alwaysActive:Z,alwaysActiveLabel:h,isChecked:g.includes(w),onCheckboxChange:Y},Q))})]}),i.jsxs("div",{className:"react-cookienotice-buttons",children:[i.jsx(V,{onClick:l,children:T("button.back",p)}),i.jsx(V,{onClick:H,children:T("button.customizeAcceptAll",d)}),i.jsx(V,{onClick:W,children:T("button.accept",b)})]})]})},Fe=({to:t,newTab:c,label:s})=>i.jsx("a",{href:t,target:c?"_blank":"_self",rel:c?"noreferrer":void 0,className:"react-cookienotice-link",children:s}),Xe=({titleLabel:t,descriptionLabel:c,readMoreLink:s,readMoreInNewTab:b,readMoreLabel:l,onAcceptAllButtonClick:p,acceptAllButtonLabel:h,onCustomizeButtonClick:d,customizeButtonLabel:m,onDeclineAllButtonClick:x,declineAllButtonLabel:g,services:j})=>{const Y=f.useCallback(()=>{p(j==null?void 0:j.map(({code:W})=>W))},[]);return i.jsxs(i.Fragment,{children:[i.jsxs("div",{className:"react-cookienotice-body",children:[i.jsx("div",{className:"react-cookienotice-title",children:i.jsx(X,{children:T("text.title",t)})}),i.jsx("div",{className:"react-cookienotice-description",children:i.jsx(X,{children:T("text.description",c)})}),s&&b&&l&&i.jsx("div",{className:"react-cookienotice-read-more",children:i.jsx(Fe,{to:s,newTab:b,label:l})})]}),i.jsxs("div",{className:"react-cookienotice-buttons",children:[i.jsx(V,{onClick:x,children:T("button.declineAll",g)}),j&&j.length>0&&i.jsx(V,{onClick:d,children:T("button.customize",m)}),i.jsx(V,{onClick:Y,children:T("button.acceptAll",h)})]})]})},Ze=({acceptAllButtonLabel:t,onAcceptAllButtonClick:c,declineAllButtonLabel:s,onDeclineAllButtonClick:b,customizeButtonLabel:l,customizeTitleLabel:p,services:h,acceptButtonLabel:d,onAcceptButtonClick:m,backButtonLabel:x,alwaysActiveLabel:g,customizeAcceptAllButtonLabel:j,customizeAcceptAllTimeout:Y,titleLabel:W,descriptionLabel:H,readMoreLabel:y,readMoreLink:A,readMoreInNewTab:w,placement:Z,cookieOptions:Q})=>{const K=C(t),ge=C(s),D=C(l),se=C(p),I=We(h),le=C(d),ue=C(x),$=C(g),q=C(j),ee=Ye(Y),te=C(W),oe=C(H),Ae=C(y),fe=Be(A),Ee=Ue(w),z=Ve(Z),S=He(Q),O=f.useMemo(()=>Me(S.name)===S.value,[]),[ye,_]=f.useState(!1),[B,ne]=f.useState(!1),de=f.useCallback(P=>{_(!0),ae(S),m==null||m(P)},[]),be=f.useCallback(()=>{ne(!1)},[]),me=f.useCallback(P=>{_(!0),ae(S),c==null||c(P)},[]),pe=f.useCallback(()=>{ne(!0)},[]),ve=f.useCallback(()=>{_(!0),ae(S),b==null||b()},[]),he=f.useCallback(P=>{_(!0),ae(S),c==null||c(P)},[]),ie=()=>B&&I?i.jsx(Je,{customizeTitleLabel:se,services:I,onAcceptButtonClick:de,acceptButtonLabel:le,onBackButtonClick:be,backButtonLabel:ue,alwaysActiveLabel:$,customizeAcceptAllButtonLabel:q,onCustomizeAcceptAllButtonClick:he,customizeAcceptAllTimeout:ee}):i.jsx(Xe,{titleLabel:te,descriptionLabel:oe,readMoreLink:fe,readMoreInNewTab:Ee,readMoreLabel:Ae,onAcceptAllButtonClick:me,acceptAllButtonLabel:K,onCustomizeButtonClick:pe,customizeButtonLabel:D,onDeclineAllButtonClick:ve,declineAllButtonLabel:ge,services:I});return i.jsx("div",{className:`react-cookienotice-root${ye?" hide-with-animation":""}${O?" hidden":""} ${z.vertical} ${z.horizontal}`,children:ie()})};M.CookieNotice=Ze,Object.defineProperty(M,Symbol.toStringTag,{value:"Module"})});