{"version":3,"file":"webpack-chunks/chunk.scripts_components_analytics_js.de264bc59b49a54a031b.js","mappings":"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","sources":["webpack://detroit/./scripts/components/analytics.js"],"sourcesContent":["export default async footer => { // 'body > footer'\r\n\tif(!window.dataLayer) return;\r\n\r\n\tconst {default: _} = await import('lodash');\r\n\r\n\tlet minHeight = 0,\r\n\t\t\tcache = [],\r\n\t\t\telements = [],\r\n\t\t\tscrollEventBound = false,\r\n\t\t\tfooterHeight = footer.offsetHeight,\r\n\t\t\tstartTime = Date.now();\r\n\r\n\r\n\t/*\r\n\t* Scroll Event\r\n\t*/\r\n\tlet scrollDepth = _.throttle(() => {\r\n\t\tconst \tdocHeight = document.body.offsetHeight,\r\n\t\t\t\twinHeight = window.innerHeight,\r\n\t\t\t\tscrollDistance = window.scrollY + winHeight,\r\n\t\t\t\t// Recalculate percentage marks\r\n\t\t\t\tmarks = calculateMarks(docHeight),\r\n\r\n\t\t\t\t// Timing\r\n\t\t\t\ttiming = Date.now() - startTime;\r\n\t\t\r\n\t\t// If all marks already hit, unbind scroll event\r\n\t\tif (cache.length >= elements.length + 4) {\r\n\t\t\tdocument.removeEventListener('scroll',scrollDepth);\r\n\t\t\tscrollEventBound = false;\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// Check standard marks\r\n\t\tcheckMarks(marks, scrollDistance, timing, docHeight);\r\n\t},500);\r\n\r\n\r\n\t// Track User ID\r\n\tif (window._tbpe !== undefined) {\r\n\t\t_tbpe('get')('uuid')(function (uuid) {\r\n\t\t\tdataLayer.push({\r\n\t\t\t\t'userID': uuid\r\n\t\t\t});\r\n\t\t\tdataLayer.push({\r\n\t\t\t\t'event': 'UserIDLoaded'\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n\r\n\tif ( document.body.offsetHeight >= minHeight ){\r\n\t\tdocument.addEventListener('scroll',scrollDepth);\r\n\t\tscrollEventBound = true;\r\n\t}\r\n\r\n\tfunction sendEvent(action, label, scrollDistance, timing, docHeight) {\r\n\r\n\t\tdataLayer.push({\r\n\t\t\t'event' : 'GAEvent',\r\n\t\t\t'eventCategory' : 'Page Scroll',\r\n\t\t\t'eventAction' : 'Scroll',\r\n\t\t\t'eventLabel' : window.location.pathname + ' - ' + rounded(scrollDistance).toString() + '/' + docHeight.toString(),\r\n\t\t\t'eventValue' : parseInt(label) //broken down by 25%, 50%, 75%, 100% with 100% being more lenient due to the fat footer.\r\n\t\t});\r\n\t}\r\n\r\n\tfunction calculateMarks(docHeight) {\r\n\t\treturn {\r\n\t\t\t'25%' : parseInt(docHeight * 0.25, 10),\r\n\t\t\t'50%' : parseInt(docHeight * 0.50, 10),\r\n\t\t\t'75%' : parseInt(docHeight * 0.75, 10),\r\n\t\t\t// Cushion to trigger 100% event in iOS\r\n\t\t\t'100%': docHeight - footerHeight\r\n\t\t};\r\n\t}\r\n\r\n\tfunction checkMarks(marks, scrollDistance, timing, docHeight) {\r\n\t\t// Check each active mark\r\n\t\tObject.keys(marks).forEach( key => {\r\n\t\t\tlet val = marks[key];\r\n\t\t\tif(cache.indexOf(key) === -1 && scrollDistance >= val){\r\n\t\t\t\tsendEvent('Percentage', key, scrollDistance, timing, docHeight);\r\n\t\t\t\tcache.push(key);\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tfunction rounded(scrollDistance) {\r\n\t\t// Returns String\r\n\t\treturn (Math.floor(scrollDistance/250) * 250).toString();\r\n\t}\r\n};"],"names":["footer","window","dataLayer","default","_","minHeight","cache","elements","scrollEventBound","footerHeight","offsetHeight","startTime","Date","now","scrollDepth","throttle","docHeight","document","body","winHeight","innerHeight","scrollDistance","scrollY","marks","calculateMarks","timing","length","removeEventListener","checkMarks","_tbpe","undefined","uuid","push","addEventListener","sendEvent","action","label","location","pathname","rounded","toString","parseInt","Object","keys","forEach","key","val","indexOf","Math","floor"],"sourceRoot":""}