{"version":3,"sources":["../src/constants.ts","../src/lib/get-elements.ts","../src/lib/generate-uuid.ts","../src/state.ts","../src/lib/get-cookie-state.ts"],"names":["constants_default","getElements","get_elements_default","generateUUID","c","generate_uuid_default","S","state_default","getCookieState","defaultCategories","i","key","value","cookie"],"mappings":"AAAA,qrBAAOA,CAAAA,CAAQ,CACd,GAAA,CAAK,kBAAA,CACL,GAAA,CAAK,CACJ,OAAA,CAAS,gBAAA,CACT,KAAA,CAAO,cACR,CAAA,CACA,UAAA,CAAY,CACX,OAAA,CAAS,qBAAA,CACT,KAAA,CAAO,mBAAA,CACP,cAAA,CAAgB,sBAAA,CAChB,MAAA,CAAQ,CACP,SAAA,CAAW,oBAAA,CACX,KAAA,CAAO,CACN,OAAA,CAAS,SAAA,CACT,MAAA,CAAQ,QAAA,CACR,MAAA,CAAQ,QAAA,CACR,OAAA,CAAS,SAAA,CACT,IAAA,CAAM,MACP,CACD,CACD,CACD,CAAA,CChBA,IAAMC,CAAAA,CAAc,CAAA,CAAA,EAAA,CAAO,CAC1B,OAAA,CAAS,QAAA,CAAS,aAAA,CAAc,CAAA,CAAA,EAAID,CAAAA,CAAE,UAAA,CAAW,OAAO,CAAA,CAAA,CAAG,CAAA,CAC3D,KAAA,CAAO,QAAA,CAAS,aAAA,CAAc,CAAA,CAAA,EAAIA,CAAAA,CAAE,UAAA,CAAW,KAAK,CAAA,CAAA,CAAG,CAAA,CACvD,kBAAA,CAAoB,QAAA,CAAS,gBAAA,CAC5B,CAAA,uBAAA,EAA0BA,CAAAA,CAAE,UAAA,CAAW,cAAc,CAAA,CAAA,CACtD,CAAA,CACA,aAAA,CAAe,QAAA,CAAS,gBAAA,CACvB,CAAA,CAAA,EAAIA,CAAAA,CAAE,UAAA,CAAW,MAAA,CAAO,SAAS,CAAA,EAAA,EAAKA,CAAAA,CAAE,UAAA,CAAW,MAAA,CAAO,KAAA,CAAM,OAAO,CAAA,EAAA,CACxE,CAAA,CACA,YAAA,CAAc,QAAA,CAAS,gBAAA,CACtB,CAAA,CAAA,EAAIA,CAAAA,CAAE,UAAA,CAAW,MAAA,CAAO,SAAS,CAAA,EAAA,EAAKA,CAAAA,CAAE,UAAA,CAAW,MAAA,CAAO,KAAA,CAAM,MAAM,CAAA,EAAA,CACvE,CAAA,CACA,YAAA,CAAc,QAAA,CAAS,gBAAA,CACtB,CAAA,CAAA,EAAIA,CAAAA,CAAE,UAAA,CAAW,MAAA,CAAO,SAAS,CAAA,EAAA,EAAKA,CAAAA,CAAE,UAAA,CAAW,MAAA,CAAO,KAAA,CAAM,MAAM,CAAA,EAAA,CACvE,CAAA,CACA,aAAA,CAAe,QAAA,CAAS,gBAAA,CACvB,CAAA,CAAA,EAAIA,CAAAA,CAAE,UAAA,CAAW,MAAA,CAAO,SAAS,CAAA,EAAA,EAAKA,CAAAA,CAAE,UAAA,CAAW,MAAA,CAAO,KAAA,CAAM,OAAO,CAAA,EAAA,CACxE,CAAA,CACA,UAAA,CAAY,QAAA,CAAS,gBAAA,CACpB,CAAA,CAAA,EAAIA,CAAAA,CAAE,UAAA,CAAW,MAAA,CAAO,SAAS,CAAA,EAAA,EAAKA,CAAAA,CAAE,UAAA,CAAW,MAAA,CAAO,KAAA,CAAM,IAAI,CAAA,EAAA,CACrE,CACD,CAAA,CAAA,CAEOE,CAAAA,CAAQD,CAAAA,CCzBf,IAAME,CAAAA,CAAe,CAAA,CAAA,EAChB,OAAO,MAAA,CAAW,GAAA,EAAe,MAAA,CAAO,UAAA,CACpC,MAAA,CAAO,UAAA,CAAW,CAAA,CAGnB,sCAAA,CAAuC,OAAA,CAAQ,OAAA,CAAUC,CAAAA,EAAM,CACrE,IAAM,CAAA,CAAK,IAAA,CAAK,MAAA,CAAO,CAAA,CAAI,EAAA,CAAM,CAAA,CAEjC,MAAA,CADUA,CAAAA,GAAM,GAAA,CAAM,CAAA,CAAK,CAAA,CAAI,CAAA,CAAO,CAAA,CAAA,CAC7B,QAAA,CAAS,EAAE,CACrB,CAAC,CAAA,CAGKC,CAAAA,CAAQF,CAAAA,CCbf,IAAMG,CAAAA,CAKF,CACH,KAAA,CAAO,CACN,IAAA,CAAM,EAAA,CACN,UAAA,CAAY,CAAA,CAAA,CACZ,UAAA,CAAY,CAAC,CACd,CAAA,CACA,OAAA,CAAS,CACR,gBAAA,CAAkB,CAAA,CAAA,CAClB,eAAA,CAAiB,CAAC,CAAA,CAClB,eAAA,CAAiB,IAAA,CACjB,OAAA,CAAS,IAAA,CACT,OAAA,CAAS,CACR,IAAA,CAAM,GAAA,CACN,QAAA,CAAU,QAAA,CACV,MAAA,CAAQ,MAAA,CAAO,QAAA,CAAS,QAAA,GAAa,QACtC,CACD,CAAA,CACA,eAAA,CAAiB,IAAI,eAAA,CACrB,QAAA,CAAU,IACX,CAAA,CAEOC,CAAAA,CAAQD,CAAAA,CCrBf,IAAME,CAAAA,CAAiB,CAAA,CAAA,EAAM,CAC5B,IAAMC,CAAAA,CAA6C,CAAC,CAAA,CACpD,EAAA,iBAAIF,CAAAA,qBAAE,QAAA,6BAAU,oBAAA,CACf,GAAA,CAAA,IAASG,CAAAA,CAAI,CAAA,CAAGA,CAAAA,CAAIH,CAAAA,CAAE,QAAA,CAAS,kBAAA,CAAmB,MAAA,CAAQG,CAAAA,EAAAA,CAAK,CAE9D,IAAMC,CAAAA,iBADUJ,CAAAA,qBAAE,QAAA,qBAAS,kBAAA,qBAAmBG,CAAC,CAAA,6BAC1B,YAAA,mBAAaV,CAAAA,CAAE,UAAA,CAAW,cAAc,GAAA,CAC7DS,CAAAA,CAAkBE,CAAG,CAAA,CAAI,CAAA,CAC1B,CAGD,GAAI,CAIH,IAAMC,CAAAA,iBAHS,QAAA,qBAAS,MAAA,uBACtB,KAAA,qBAAM,GAAG,CAAA,uBACT,IAAA,qBAAMC,CAAAA,EAAWA,CAAAA,CAAO,IAAA,CAAK,CAAA,CAAE,UAAA,CAAW,CAAA,EAAA","file":"/Users/williamyallop/Documents/projects/protodigital/internal/lucid-client/packages/cookie-controller/dist/index.cjs","sourcesContent":["export default {\n\tkey: \"CookieController\",\n\tids: {\n\t\tdetails: \"cookie-details\",\n\t\talert: \"cookie-alert\",\n\t},\n\tattributes: {\n\t\tdetails: \"data-cookie-details\",\n\t\talert: \"data-cookie-alert\",\n\t\tcookieCategory: \"data-cookie-category\",\n\t\taction: {\n\t\t\tattribute: \"data-cookie-action\",\n\t\t\tvalue: {\n\t\t\t\tdismiss: \"dismiss\",\n\t\t\t\taccept: \"accept\",\n\t\t\t\treject: \"reject\",\n\t\t\t\tdetails: \"details\",\n\t\t\t\tsave: \"save\",\n\t\t\t},\n\t\t},\n\t},\n};\n","import C from \"../constants.js\";\n\n/**\n * Get the required elements for the library\n */\nconst getElements = () => ({\n\tdetails: document.querySelector(`[${C.attributes.details}]`),\n\talert: document.querySelector(`[${C.attributes.alert}]`),\n\tcategoryCheckboxes: document.querySelectorAll(\n\t\t`input[type=\"checkbox\"][${C.attributes.cookieCategory}]`,\n\t) as NodeListOf<HTMLInputElement>,\n\tactionDismiss: document.querySelectorAll(\n\t\t`[${C.attributes.action.attribute}=\"${C.attributes.action.value.dismiss}\"]`,\n\t),\n\tactionAccept: document.querySelectorAll(\n\t\t`[${C.attributes.action.attribute}=\"${C.attributes.action.value.accept}\"]`,\n\t),\n\tactionReject: document.querySelectorAll(\n\t\t`[${C.attributes.action.attribute}=\"${C.attributes.action.value.reject}\"]`,\n\t),\n\tactionDetails: document.querySelectorAll(\n\t\t`[${C.attributes.action.attribute}=\"${C.attributes.action.value.details}\"]`,\n\t),\n\tactionSave: document.querySelectorAll(\n\t\t`[${C.attributes.action.attribute}=\"${C.attributes.action.value.save}\"]`,\n\t),\n});\n\nexport default getElements;\n","/**\n * Generate a UUID\n */\nconst generateUUID = () => {\n\tif (typeof crypto !== \"undefined\" && crypto.randomUUID) {\n\t\treturn crypto.randomUUID();\n\t}\n\n\treturn \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(/[xy]/g, (c) => {\n\t\tconst r = (Math.random() * 16) | 0;\n\t\tconst v = c === \"x\" ? r : (r & 0x3) | 0x8;\n\t\treturn v.toString(16);\n\t});\n};\n\nexport default generateUUID;\n","import type { Options, CookieState, Elements } from \"./types.js\";\n\nconst S: {\n\tstate: CookieState;\n\toptions: Options;\n\tabortController: AbortController;\n\telements: Elements | null;\n} = {\n\tstate: {\n\t\tuuid: \"\",\n\t\tinteracted: false,\n\t\tcategories: {},\n\t},\n\toptions: {\n\t\tessentialCookies: false,\n\t\tcategoryCookies: {},\n\t\tonConsentChange: null,\n\t\tversion: null,\n\t\tstorage: {\n\t\t\tpath: \"/\",\n\t\t\tsameSite: \"Strict\",\n\t\t\tsecure: window.location.protocol === \"https:\",\n\t\t},\n\t},\n\tabortController: new AbortController(),\n\telements: null,\n};\n\nexport default S;\n","import S from \"../state.js\";\nimport C from \"../constants.js\";\nimport type { CookieState } from \"../types.js\";\n\n/**\n * Get the state via the user's cookie\n */\nconst getCookieState = () => {\n\tconst defaultCategories: Record<string, boolean> = {};\n\tif (S.elements?.categoryCheckboxes) {\n\t\tfor (let i = 0; i < S.elements.categoryCheckboxes.length; i++) {\n\t\t\tconst element = S.elements.categoryCheckboxes[i];\n\t\t\tconst key = element?.getAttribute(C.attributes.cookieCategory) as string;\n\t\t\tdefaultCategories[key] = false;\n\t\t}\n\t}\n\n\ttry {\n\t\tconst cookie = document.cookie\n\t\t\t.split(\";\")\n\t\t\t.find((cookie) => cookie.trim().startsWith(`${C.key}=`));\n\t\tconst value = cookie?.split(\"=\")[1];\n\n\t\tif (value) {\n\t\t\treturn JSON.parse(value) as CookieState;\n\t\t}\n\n\t\treturn {\n\t\t\tuuid: \"\",\n\t\t\tversion: S.options.version?.current || undefined,\n\t\t\tinteracted: false,\n\t\t\tcategories: defaultCategories,\n\t\t};\n\t} catch (error) {\n\t\treturn {\n\t\t\tuuid: \"\",\n\t\t\tversion: S.options.version?.current || undefined,\n\t\t\tinteracted: false,\n\t\t\tcategories: defaultCategories,\n\t\t};\n\t}\n};\n\nexport default getCookieState;\n"]}