{"version":3,"sources":["PageDependentComponents/GoogleTagManager/GtmDatalayer.js"],"names":["window","dataLayer","base64js","revLookup","Arr","Uint8Array","Array","code","i","len","length","charCodeAt","toByteArray","b64","tmp","lens","Error","validLen","indexOf","getLens","placeHoldersLen","arr","_byteLength","curByte","decoder","TextDecoder","TextDecoderLite","decodeUtf8Char","str","decodeURIComponent","err","String","fromCharCode","prototype","decode","bytes","buf","start","end","res","Math","min","Infinity","toString","utf8Slice","async","hashString","message","msgUint8","TextEncoder","encode","hashBuffer","crypto","subtle","digest","from","map","b","padStart","join","customerGroup","cookieData","cookieName","a","cookie","document","match","pop","base64","split","replace","JSON","parse","b64DecodeUnicode","rightPad","getJwtTokenAsObject","customerType","pageData","find","x","environment","paths","location","pathname","push","event","page_type","customer_type","cmg","undefined","customer_category","user_id","kid","komplett_id","customer_guid","cg","profile_email","usn","loyalty_member","kc","credit_member","insurance_member","freight_service_member","gtmId","gtmHost","gtm.start","Date","getTime","siblingTag","getElementsByTagName","scriptTag","createElement","src","parentNode","insertBefore","loadGtmScript","GTM","GoogleTagManagerId","GoogleTagManagerHost","init"],"mappings":"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","file":"gtmdataLayer-bundle.js","sourcesContent":["(function () {\r\n\twindow.dataLayer = window.dataLayer || [];\r\n\r\n\tvar AtobUtf8 = function () {\r\n\t\tvar revLookup = [];\r\n\t\tvar Arr = typeof Uint8Array !== \"undefined\" ? Uint8Array : Array;\r\n\r\n\t\tvar code =\r\n\t\t\t\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\r\n\t\tfor (var i = 0, len = code.length; i < len; ++i) {\r\n\t\t\trevLookup[code.charCodeAt(i)] = i;\r\n\t\t}\r\n\r\n\t\t// Support decoding URL-safe base64 strings, as Node.js does.\r\n\t\t// See: https://en.wikipedia.org/wiki/Base64#URL_applications\r\n\t\trevLookup[\"-\".charCodeAt(0)] = 62;\r\n\t\trevLookup[\"_\".charCodeAt(0)] = 63;\r\n\r\n\t\tfunction getLens(b64) {\r\n\t\t\tvar len = b64.length;\r\n\r\n\t\t\tif (len % 4 > 0) {\r\n\t\t\t\tthrow new Error(\"Invalid string. Length must be a multiple of 4\");\r\n\t\t\t}\r\n\r\n\t\t\t// Trim off extra bytes after placeholder bytes are found\r\n\t\t\t// See: https://github.com/beatgammit/base64-js/issues/42\r\n\t\t\tvar validLen = b64.indexOf(\"=\");\r\n\t\t\tif (validLen === -1) {\r\n\t\t\t\tvalidLen = len;\r\n\t\t\t}\r\n\r\n\t\t\tvar placeHoldersLen = validLen === len ? 0 : 4 - (validLen % 4);\r\n\r\n\t\t\treturn [validLen, placeHoldersLen];\r\n\t\t}\r\n\r\n\t\tfunction _byteLength(b64, validLen, placeHoldersLen) {\r\n\t\t\treturn ((validLen + placeHoldersLen) * 3) / 4 - placeHoldersLen;\r\n\t\t}\r\n\r\n\t\tfunction toByteArray(b64) {\r\n\t\t\tvar tmp;\r\n\t\t\tvar lens = getLens(b64);\r\n\t\t\tvar validLen = lens[0];\r\n\t\t\tvar placeHoldersLen = lens[1];\r\n\r\n\t\t\tvar arr = new Arr(_byteLength(b64, validLen, placeHoldersLen));\r\n\r\n\t\t\tvar curByte = 0;\r\n\r\n\t\t\t// if there are placeholders, only get up to the last complete 4 chars\r\n\t\t\tvar len = placeHoldersLen > 0 ? validLen - 4 : validLen;\r\n\r\n\t\t\tfor (var i = 0; i < len; i += 4) {\r\n\t\t\t\ttmp =\r\n\t\t\t\t\t(revLookup[b64.charCodeAt(i)] << 18) |\r\n\t\t\t\t\t(revLookup[b64.charCodeAt(i + 1)] << 12) |\r\n\t\t\t\t\t(revLookup[b64.charCodeAt(i + 2)] << 6) |\r\n\t\t\t\t\trevLookup[b64.charCodeAt(i + 3)];\r\n\t\t\t\tarr[curByte++] = (tmp >> 16) & 0xff;\r\n\t\t\t\tarr[curByte++] = (tmp >> 8) & 0xff;\r\n\t\t\t\tarr[curByte++] = tmp & 0xff;\r\n\t\t\t}\r\n\r\n\t\t\tif (placeHoldersLen === 2) {\r\n\t\t\t\ttmp =\r\n\t\t\t\t\t(revLookup[b64.charCodeAt(i)] << 2) |\r\n\t\t\t\t\t(revLookup[b64.charCodeAt(i + 1)] >> 4);\r\n\t\t\t\tarr[curByte++] = tmp & 0xff;\r\n\t\t\t}\r\n\r\n\t\t\tif (placeHoldersLen === 1) {\r\n\t\t\t\ttmp =\r\n\t\t\t\t\t(revLookup[b64.charCodeAt(i)] << 10) |\r\n\t\t\t\t\t(revLookup[b64.charCodeAt(i + 1)] << 4) |\r\n\t\t\t\t\t(revLookup[b64.charCodeAt(i + 2)] >> 2);\r\n\t\t\t\tarr[curByte++] = (tmp >> 8) & 0xff;\r\n\t\t\t\tarr[curByte++] = tmp & 0xff;\r\n\t\t\t}\r\n\r\n\t\t\treturn arr;\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\ttoByteArray: toByteArray,\r\n\t\t};\r\n\t};\r\n\tvar base64js = new AtobUtf8();\r\n\r\n\tvar TextDecoderLite = function () {\r\n\t\tfunction TextDecoderLite() {}\r\n\r\n\t\tTextDecoderLite.prototype.decode = function (bytes) {\r\n\t\t\treturn utf8Slice(bytes, 0, bytes.length);\r\n\t\t};\r\n\r\n\t\tfunction utf8Slice(buf, start, end) {\r\n\t\t\tvar res = \"\";\r\n\t\t\tvar tmp = \"\";\r\n\t\t\tend = Math.min(buf.length, end || Infinity);\r\n\t\t\tstart = start || 0;\r\n\r\n\t\t\tfor (var i = start; i < end; i++) {\r\n\t\t\t\tif (buf[i] <= 0x7f) {\r\n\t\t\t\t\tres += decodeUtf8Char(tmp) + String.fromCharCode(buf[i]);\r\n\t\t\t\t\ttmp = \"\";\r\n\t\t\t\t} else {\r\n\t\t\t\t\ttmp += \"%\" + buf[i].toString(16);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn res + decodeUtf8Char(tmp);\r\n\t\t}\r\n\r\n\t\tfunction decodeUtf8Char(str) {\r\n\t\t\ttry {\r\n\t\t\t\treturn decodeURIComponent(str);\r\n\t\t\t} catch (err) {\r\n\t\t\t\treturn String.fromCharCode(0xfffd); // UTF 8 invalid char\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn TextDecoderLite;\r\n\t};\r\n\tvar decoder = new (window.TextDecoder || TextDecoderLite)(\"utf-8\");\r\n\r\n\tfunction getJwtTokenAsObject(cookieName) {\r\n\t\tfunction b64DecodeUnicode(str) {\r\n\t\t\tvar bytes = base64js.toByteArray(str);\r\n\t\t\treturn decoder.decode(bytes);\r\n\t\t}\r\n\r\n\t\tfunction rightPad(str) {\r\n\t\t\tswitch (str.length % 4) {\r\n\t\t\t\tcase 1:\r\n\t\t\t\t\treturn str + \"===\";\r\n\t\t\t\tcase 2:\r\n\t\t\t\t\treturn str + \"==\";\r\n\t\t\t\tcase 3:\r\n\t\t\t\t\treturn str + \"=\";\r\n\t\t\t\tdefault:\r\n\t\t\t\t\treturn str;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction getCookieValue(a) {\r\n\t\t\tvar b = document.cookie.match(\"(^|;)\\\\s*\" + a + \"\\\\s*=\\\\s*([^;]+)\");\r\n\t\t\treturn b ? b.pop() : \"\";\r\n\t\t}\r\n\r\n\t\tvar cookie = getCookieValue(cookieName);\r\n\t\tif (cookie === \"\") {\r\n\t\t\treturn {};\r\n\t\t}\r\n\r\n\t\ttry {\r\n\t\t\tvar base64Url = cookie.split(\".\")[1];\r\n\t\t\tvar base64 = base64Url.replace(\"-\", \"+\").replace(\"_\", \"/\");\r\n\t\t\treturn JSON.parse(b64DecodeUnicode(rightPad(base64)));\r\n\t\t} catch (err) {\r\n\t\t\treturn {};\r\n\t\t}\r\n\t}\r\n\r\n\tfunction getCustomerType(customerGroup) {\r\n\t\tvar customerGroupPrivate = 40;\r\n\t\tvar customerGroupEmployee = 50;\r\n\t\tvar isBusinessCustomer =\r\n\t\t\tcustomerGroup !== undefined &&\r\n\t\t\tcustomerGroup != customerGroupPrivate &&\r\n\t\t\tcustomerGroup != customerGroupEmployee;\r\n\r\n\t\treturn isBusinessCustomer ? \"Commercial\" : \"Private\";\r\n\t}\r\n\r\n\tasync function hashString(message) {\r\n\t\tif (message) {\r\n\t\t\tconst msgUint8 = new TextEncoder().encode(message);\r\n\t\t\tconst hashBuffer = await crypto.subtle.digest(\"SHA-256\", msgUint8);\r\n\t\t\tconst hashArray = Array.from(new Uint8Array(hashBuffer));\r\n\t\t\tconst hashHex = hashArray\r\n\t\t\t\t.map((b) => b.toString(16).padStart(2, \"0\"))\r\n\t\t\t\t.join(\"\");\r\n\r\n\t\t\treturn hashHex;\r\n\t\t}\r\n\t}\r\n\r\n\tasync function init() {\r\n\t\tvar cookieData = getJwtTokenAsObject(\"Komplett.Caas.Session\");\r\n\r\n\t\tvar akamaiCachingOn = !(window.dataLayer[0] || {}).customerType;\r\n\t\tif (akamaiCachingOn) {\r\n\t\t\tvar pageData = window.dataLayer.find((x) => x.environment);\r\n\t\t\tvar paths = location.pathname.split(\"/\");\r\n\r\n\t\t\twindow.dataLayer.push({\r\n\t\t\t\tevent: \"page_data\",\r\n\t\t\t\tpage_type: ((paths.length > 1 && paths[1]) || \"front\") + \" page\",\r\n\t\t\t\tcustomer_type: getCustomerType(cookieData.cmg),\r\n\t\t\t\tcustomer_category: undefined,\r\n\t\t\t\tuser_id: await hashString(cookieData.kid || undefined),\r\n\t\t\t\tkomplett_id: cookieData.kid,\r\n\t\t\t\tcustomer_guid: cookieData.cg,\r\n\t\t\t\tprofile_email: cookieData.usn ? cookieData.usn : undefined,\r\n\t\t\t\tenvironment: pageData && pageData.environment,\r\n\t\t\t\tloyalty_member: cookieData.kc ? true : false,\r\n\t\t\t\tcredit_member: false,\r\n\t\t\t\tinsurance_member: false,\r\n\t\t\t\tfreight_service_member: false,\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tloadGtmScript(\r\n\t\t\twindow.GTM.GoogleTagManagerId,\r\n\t\t\twindow.GTM.GoogleTagManagerHost,\r\n\t\t);\r\n\t}\r\n\r\n\tfunction loadGtmScript(gtmId, gtmHost) {\r\n\t\twindow.dataLayer = window.dataLayer || [];\r\n\t\twindow.dataLayer.push({\r\n\t\t\t\"gtm.start\": new Date().getTime(),\r\n\t\t\tevent: \"gtm.js\",\r\n\t\t});\r\n\t\tvar siblingTag = document.getElementsByTagName(\"script\")[0],\r\n\t\t\tscriptTag = document.createElement(\"script\");\r\n\r\n\t\tscriptTag.async = true;\r\n\t\tscriptTag.src = `https://${gtmHost}/gtm.js?id=${gtmId}`;\r\n\r\n\t\tsiblingTag.parentNode.insertBefore(scriptTag, siblingTag);\r\n\t}\r\n\r\n\tinit();\r\n})();\r\n"],"sourceRoot":"/"}