{"version":3,"sources":["webpack:///./node_modules/@charlietango/use-script/lib/useScript.esm.js","webpack:///./src/modules/CookieDeclaration/CookieDeclaration.tsx"],"names":["ScriptStatus","url","options","clientHydrated","attributes","_useState","script","document","querySelector","hasAttribute","getAttribute","LOADING","IDLE","status","setStatus","createElement","src","async","setAttribute","head","appendChild","Object","keys","forEach","key","_script","onerror","ERROR","onload","READY","eventHandler","e","type","addEventListener","removeEventListener","cdUrl","CookieBotDeclaration","useScript","ready","initialReady","useRef","useEffect","current","window","CookieDeclaration","init","Placeholder","sx","maxWidth","variant","TextVariant","Paragraph","a","color","id","title","as","pt","rem","pb","H1","mb","displayName"],"mappings":"uJAGIA,E,iDASJ,SAAWA,GACTA,EAAmB,KAAI,OACvBA,EAAsB,QAAI,UAC1BA,EAAoB,MAAI,QACxBA,EAAoB,MAAI,QAJ1B,CAKGA,IAAiBA,EAAe,KA0EpB,MAxEf,SAAmBC,EAAKC,GACtB,IAAIC,EAAiB,cACjBC,EAAwB,MAAXF,OAAkB,EAASA,EAAQE,WAEhDC,EAAY,oBAAS,WACvB,GAAIF,EAAgB,CAClB,IAAIG,EAASC,SAASC,cAAc,eAAkBP,EAAM,MAE5D,GAAIK,GAAUA,EAAOG,aAAa,eAChC,OAAOH,EAAOI,aAAa,eAI/B,OAAOT,EAAMD,EAAaW,QAAUX,EAAaY,QAE/CC,EAASR,EAAU,GACnBS,EAAYT,EAAU,GAqD1B,OAnDA,qBAAU,WACR,GAAKJ,EAAL,CAKA,IAAIK,EAASC,SAASC,cAAc,eAAkBP,EAAM,MAEvDK,EAyBMA,EAAOG,aAAa,gBAC7BK,EAAUR,EAAOI,aAAa,kBAzB9BJ,EAASC,SAASQ,cAAc,WACzBC,IAAMf,EACbK,EAAOW,OAAQ,EACfX,EAAOY,aAAa,cAAelB,EAAaW,SAChDJ,SAASY,KAAKC,YAAYd,GAEtBF,GACFiB,OAAOC,KAAKlB,GAAYmB,SAAQ,SAAUC,GACxC,IAAIC,EAEkB,OAArBA,EAAUnB,IAA2BmB,EAAQP,aAAaM,EAAKpB,EAAWoB,OAK/EV,EAAUd,EAAaW,SAEvBL,EAAOoB,QAAU,WACXpB,GAAQA,EAAOY,aAAa,cAAelB,EAAa2B,QAG9DrB,EAAOsB,OAAS,WACVtB,GAAQA,EAAOY,aAAa,cAAelB,EAAa6B,SAMhE,IAAIC,EAAe,SAAsBC,GACvCjB,EAAqB,SAAXiB,EAAEC,KAAkBhC,EAAa6B,MAAQ7B,EAAa2B,QAMlE,OAFArB,EAAO2B,iBAAiB,OAAQH,GAChCxB,EAAO2B,iBAAiB,QAASH,GAC1B,WACDxB,IACFA,EAAO4B,oBAAoB,OAAQJ,GACnCxB,EAAO4B,oBAAoB,QAASJ,KA7CtChB,EAAUd,EAAaY,QAgDxB,CAACX,EAAKG,IACF,CAACS,IAAWb,EAAa6B,MAAOhB,I,wBC3EnCsB,EACJ,2EAEF,SAASC,IAAuB,MACdC,EAAUF,GAAnBG,EADuB,oBAExBC,EAAeC,iBAAOF,GAS5B,OAPAG,qBAAU,WAEJF,EAAaG,SAAWC,OAAOC,mBACjCD,OAAOC,kBAAkBC,SAE1B,IAGD,+BACIP,GAAS,YAACQ,EAAA,EAAD,MACX,mBACEC,GAAI,CACFC,SAAU,OACVC,QAAS,QAAUC,IAAYC,UAC/BC,EAAG,CAAEC,MAAO,kBAId,sBACEC,GAAG,oBACHtC,IAAKmB,EAAQ,eACbH,KAAK,iBAUR,SAASY,EAAT,GAEoB,QADzBW,aACyB,MADjB,UACiB,EACzB,OACE,YAAC,IAAD,CACEC,GAAG,UACHT,GAAI,CACFU,GAAI,CAAC,EAAGC,YAAI,IAAKA,YAAI,KACrBC,GAAI,CAACD,YAAI,IAAKA,YAAI,KAAMA,YAAI,QAG9B,YAAC,IAAD,CAASF,GAAG,KAAKP,QAASC,IAAYU,GAAIb,GAAI,CAAEc,GAAI,CAAC,EAAG,EAAG,QACxDN,GAEH,YAACnB,EAAD,OAKNQ,EAAkBkB,YAAc,oBAEjB,UAAmBlB","file":"static/scripts/cookie-declaration-7490b161e49346e2c47d.js","sourcesContent":["import { useState, useEffect } from 'react';\nimport useClientHydrated from '@charlietango/use-client-hydrated';\n\nvar ScriptStatus;\n/**\n * Hook to load an external script. Returns true once the script has finished loading.\n *\n * @param url {string} url The external script to load\n * @param options {} options for hook\n * @param options.attributes {} attributes object for Script tag attributes\n * */\n\n(function (ScriptStatus) {\n ScriptStatus[\"IDLE\"] = \"idle\";\n ScriptStatus[\"LOADING\"] = \"loading\";\n ScriptStatus[\"READY\"] = \"ready\";\n ScriptStatus[\"ERROR\"] = \"error\";\n})(ScriptStatus || (ScriptStatus = {}));\n\nfunction useScript(url, options) {\n var clientHydrated = useClientHydrated();\n var attributes = options == null ? void 0 : options.attributes;\n\n var _useState = useState(function () {\n if (clientHydrated) {\n var script = document.querySelector(\"script[src=\\\"\" + url + \"\\\"]\");\n\n if (script && script.hasAttribute('data-status')) {\n return script.getAttribute('data-status');\n }\n }\n\n return url ? ScriptStatus.LOADING : ScriptStatus.IDLE;\n }),\n status = _useState[0],\n setStatus = _useState[1];\n\n useEffect(function () {\n if (!url) {\n setStatus(ScriptStatus.IDLE);\n return;\n }\n\n var script = document.querySelector(\"script[src=\\\"\" + url + \"\\\"]\");\n\n if (!script) {\n script = document.createElement('script');\n script.src = url;\n script.async = true;\n script.setAttribute('data-status', ScriptStatus.LOADING);\n document.head.appendChild(script);\n\n if (attributes) {\n Object.keys(attributes).forEach(function (key) {\n var _script;\n\n (_script = script) == null ? void 0 : _script.setAttribute(key, attributes[key]);\n });\n } // Ensure the status is loading\n\n\n setStatus(ScriptStatus.LOADING);\n\n script.onerror = function () {\n if (script) script.setAttribute('data-status', ScriptStatus.ERROR);\n };\n\n script.onload = function () {\n if (script) script.setAttribute('data-status', ScriptStatus.READY);\n };\n } else if (script.hasAttribute('data-status')) {\n setStatus(script.getAttribute('data-status'));\n }\n\n var eventHandler = function eventHandler(e) {\n setStatus(e.type === 'load' ? ScriptStatus.READY : ScriptStatus.ERROR);\n }; // Add load event listener\n\n\n script.addEventListener('load', eventHandler);\n script.addEventListener('error', eventHandler);\n return function () {\n if (script) {\n script.removeEventListener('load', eventHandler);\n script.removeEventListener('error', eventHandler);\n }\n };\n }, [url, attributes]);\n return [status === ScriptStatus.READY, status];\n}\n\nexport default useScript;\nexport { ScriptStatus };\n","import React, { useEffect, useRef } from 'react';\nimport { hot } from 'react-hot-loader/root';\nimport { Container, Heading } from '@charlietango/ui';\nimport { rem } from 'polished';\nimport useScript from '@charlietango/use-script';\n\nimport Placeholder from '../../components/Placeholder/Placeholder';\nimport { TextVariant } from '../../styles/typography';\n\nexport type CookieDeclarationProps = {\n title?: string;\n};\n\nconst cdUrl =\n 'https://consent.cookiebot.com/c2c1002a-5fb4-4563-9749-9e8a99f3568b/cd.js';\n\nfunction CookieBotDeclaration() {\n const [ready] = useScript(cdUrl);\n const initialReady = useRef(ready);\n\n useEffect(() => {\n // If the script is already loaded, manually call init()\n if (initialReady.current && window.CookieDeclaration) {\n window.CookieDeclaration.init();\n }\n }, []);\n\n return (\n <>\n {!ready && }\n \n {/* The script #CookieDeclaration is used by Cookiebot to inject the HTML for the declaration */}\n \n \n \n );\n}\n\n/**\n * Showcase the Cookie Declaration from Cookiebot\n * */\nexport function CookieDeclaration({\n title = 'Cookies',\n}: CookieDeclarationProps) {\n return (\n \n \n {title}\n \n \n \n );\n}\n\nCookieDeclaration.displayName = 'CookieDeclaration';\n\nexport default !process.env.HOT ? CookieDeclaration : hot(CookieDeclaration);\n"],"sourceRoot":""}