{"version":3,"file":"Optanon-ZFRFHZXo.js","sources":["../../../app/javascript/entrypoints/Optanon.ts"],"sourcesContent":["export {};\n\ntype Cookie = {\n\tName: string;\n\tHost: string;\n};\n\ndeclare let Optanon: {\n\tGetDomainData: () => {\n\t\tGroups: {\n\t\t\tCustomGroupId: string;\n\t\t\tCookies: Cookie[];\n\t\t\tHosts: { Cookies: Cookie[] }[];\n\t\t}[];\n\t};\n\tOnetrustActiveGroups: string;\n};\n\ndeclare let OnetrustActiveGroups: string;\ndeclare global {\n\tinterface Window {\n\t\tOptanonWrapper: () => void;\n\t}\n}\n\nconst allGroups = ['C0001', 'C0002', 'C0003', 'C0004', 'C0005'];\nconst cookieNames = document.cookie\n\t.split(';')\n\t.map((cookie) => cookie.split('=')[0].trim());\n\nwindow.OptanonWrapper = () => {\n\tconsole.log('OptanonWrapper');\n\n\tconst activeGroups = OnetrustActiveGroups.split(',').filter(Boolean);\n\n\tconst inactiveGroups = allGroups.filter(\n\t\t(group) => !activeGroups.includes(group)\n\t);\n\tconst otDeleteCookie = () => {\n\t\tconsole.log('otDeletedGrpIds', inactiveGroups);\n\t\tOptanon.GetDomainData()\n\t\t\t.Groups.filter((grp) => inactiveGroups.includes(grp.CustomGroupId))\n\t\t\t.forEach((grp) => {\n\t\t\t\tgrp.Cookies.forEach((cookie) => {\n\t\t\t\t\terase(cookie.Name);\n\t\t\t\t});\n\n\t\t\t\tgrp.Hosts.forEach((host) => {\n\t\t\t\t\thost.Cookies.forEach((cookie) => {\n\t\t\t\t\t\terase(cookie.Name);\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t});\n\t};\n\n\t// This pattern matches strings with wildcards like \"foo_*\" or \"foo_xxx\"\n\t// and captures the name and the wildcard(s) separately.\n\t// Important: This is not a general purpose glob pattern matcher. It only\n\t// supports a single '*' (matching a variable number of characters)\n\t// or multiple 'x' wildcards (matching a fixed number of characters)\n\t// and only at the end of the string.\n\tconst globPattern = /(\\S+?)(\\*|x+)$/;\n\n\t// Erase cookie by name or glob pattern\n\tconst erase = (nameOrGlob: string) => {\n\t\tconst globMatch = nameOrGlob.match(globPattern);\n\n\t\tif (!globMatch) {\n\t\t\t// If the glob pattern doesn't match, we assume it's a cookie name\n\t\t\t// and delete it if it exists\n\t\t\tif (!cookieNames.includes(nameOrGlob)) return;\n\n\t\t\teraseCookie(nameOrGlob);\n\t\t\treturn;\n\t\t}\n\n\t\tconst name = globMatch[1];\n\t\tconst glob = globMatch[2];\n\t\tcookieNames.forEach((cookieName) => {\n\t\t\tif (cookieName.startsWith(name)) {\n\t\t\t\tif (glob === '*') {\n\t\t\t\t\teraseCookie(cookieName);\n\t\t\t\t} else if (cookieName.length === name.length + glob.length) {\n\t\t\t\t\teraseCookie(cookieName);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t};\n\n\t//Delete cookie\n\tfunction eraseCookie(name: string) {\n\t\tconsole.log('eraseCookie', name);\n\n\t\t//Delete root path cookies\n\t\tconst domainName = window.location.hostname;\n\t\tdocument.cookie =\n\t\t\tname + '=; Max-Age=-99999999; Path=/;Domain=' + domainName;\n\t\tdocument.cookie =\n\t\t\tname + '=; Max-Age=-99999999; Path=/;Domain=.bruun-rasmussen.dk';\n\t\tdocument.cookie = name + '=; Max-Age=-99999999; Path=/;';\n\t\t//Delete LSO in case LSO being used, cna be commented out.\n\t\tlocalStorage.removeItem(name);\n\t\t//Check for the current path of the page\n\t\tconst pathArray = window.location.pathname.split('/');\n\t\t//Loop through path hierarchy and delete potential cookies at each path.\n\t\tfor (let i = 0; i < pathArray.length; i++) {\n\t\t\tif (pathArray[i]) {\n\t\t\t\t//Build the path string from the Path Array e.g /site/login\n\t\t\t\tconst currentPath = pathArray.slice(0, i + 1).join('/');\n\t\t\t\tdocument.cookie =\n\t\t\t\t\tname +\n\t\t\t\t\t'=; Max-Age=-99999999; Path=' +\n\t\t\t\t\tcurrentPath +\n\t\t\t\t\t';Domain=' +\n\t\t\t\t\tdomainName;\n\t\t\t\tdocument.cookie =\n\t\t\t\t\tname + '=; Max-Age=-99999999; Path=' + currentPath + ';';\n\t\t\t\t//Maybe path has a trailing slash!\n\t\t\t\tdocument.cookie =\n\t\t\t\t\tname +\n\t\t\t\t\t'=; Max-Age=-99999999; Path=' +\n\t\t\t\t\tcurrentPath +\n\t\t\t\t\t'/;Domain=' +\n\t\t\t\t\tdomainName;\n\t\t\t\tdocument.cookie =\n\t\t\t\t\tname + '=; Max-Age=-99999999; Path=' + currentPath + '/;';\n\t\t\t}\n\t\t}\n\t}\n\n\totDeleteCookie();\n};\n"],"names":["allGroups","cookieNames","cookie","activeGroups","inactiveGroups","group","otDeleteCookie","grp","erase","host","globPattern","nameOrGlob","globMatch","eraseCookie","name","glob","cookieName","domainName","pathArray","i","currentPath"],"mappings":"AAyBA,MAAMA,EAAY,CAAC,QAAS,QAAS,QAAS,QAAS,OAAO,EACxDC,EAAc,SAAS,OAC3B,MAAM,GAAG,EACT,IAAKC,GAAWA,EAAO,MAAM,GAAG,EAAE,CAAC,EAAE,MAAM,EAE7C,OAAO,eAAiB,IAAM,CAC7B,QAAQ,IAAI,gBAAgB,EAE5B,MAAMC,EAAe,qBAAqB,MAAM,GAAG,EAAE,OAAO,OAAO,EAE7DC,EAAiBJ,EAAU,OAC/BK,GAAU,CAACF,EAAa,SAASE,CAAK,CAAA,EAElCC,EAAiB,IAAM,CACpB,QAAA,IAAI,kBAAmBF,CAAc,EAC7C,QAAQ,cAAc,EACpB,OAAO,OAAQG,GAAQH,EAAe,SAASG,EAAI,aAAa,CAAC,EACjE,QAASA,GAAQ,CACbA,EAAA,QAAQ,QAASL,GAAW,CAC/BM,EAAMN,EAAO,IAAI,CAAA,CACjB,EAEGK,EAAA,MAAM,QAASE,GAAS,CACtBA,EAAA,QAAQ,QAASP,GAAW,CAChCM,EAAMN,EAAO,IAAI,CAAA,CACjB,CAAA,CACD,CAAA,CACD,CAAA,EASGQ,EAAc,iBAGdF,EAASG,GAAuB,CAC/B,MAAAC,EAAYD,EAAW,MAAMD,CAAW,EAE9C,GAAI,CAACE,EAAW,CAGX,GAAA,CAACX,EAAY,SAASU,CAAU,EAAG,OAEvCE,EAAYF,CAAU,EACtB,MACD,CAEM,MAAAG,EAAOF,EAAU,CAAC,EAClBG,EAAOH,EAAU,CAAC,EACZX,EAAA,QAASe,GAAe,CAC/BA,EAAW,WAAWF,CAAI,IACzBC,IAAS,KAEFC,EAAW,SAAWF,EAAK,OAASC,EAAK,SACnDF,EAAYG,CAAU,CAExB,CACA,CAAA,EAIF,SAASH,EAAYC,EAAc,CAC1B,QAAA,IAAI,cAAeA,CAAI,EAGzB,MAAAG,EAAa,OAAO,SAAS,SAC1B,SAAA,OACRH,EAAO,uCAAyCG,EACjD,SAAS,OACRH,EAAO,0DACR,SAAS,OAASA,EAAO,gCAEzB,aAAa,WAAWA,CAAI,EAE5B,MAAMI,EAAY,OAAO,SAAS,SAAS,MAAM,GAAG,EAEpD,QAASC,EAAI,EAAGA,EAAID,EAAU,OAAQC,IACjC,GAAAD,EAAUC,CAAC,EAAG,CAEX,MAAAC,EAAcF,EAAU,MAAM,EAAGC,EAAI,CAAC,EAAE,KAAK,GAAG,EACtD,SAAS,OACRL,EACA,8BACAM,EACA,WACAH,EACQ,SAAA,OACRH,EAAO,8BAAgCM,EAAc,IAEtD,SAAS,OACRN,EACA,8BACAM,EACA,YACAH,EACQ,SAAA,OACRH,EAAO,8BAAgCM,EAAc,IACvD,CAEF,CAEed,GAChB"}