{"version":3,"file":"js/viabovag.2188.8493fdf1.min.js","mappings":"ktBAQO,SAASA,EAAUC,EAASC,GAC/B,MACMC,EAAe,IAAIC,SAAQ,CAACC,EAASC,KACnCJ,IACAD,EAAQM,cAAgBL,EACxBD,EAAQO,aAJK,IAMbC,YAAW,IAAMP,KANJ,MASjB,IACIQ,OAAOC,UAAUC,KAAKX,GACtBI,IACF,MAAOQ,GACLP,EAAOO,OAMf,OAFAV,EAAaW,OAAM,SAEZX,EAUJ,SAASY,EAAWC,EAAsBC,EAAoBC,EAAmBC,EAAU,IAQ9F,OAAOnB,EAAU,EAAD,KAPA,CACZoB,MAAO,UACPC,cAAeL,EACfM,YAAaL,EACbM,WAAYL,IAKTC,I,UAIXK,E,QAAAA,eAAc,eAAgB,SAASC,IAKnCV,EAJiBU,EAAKC,aAAa,cACpB,eACDD,EAAKC,aAAa","sources":["webpack://viabovag/./client/src/js/analytics.js"],"sourcesContent":["import { delegateEvent } from 'js/tools';\r\n\r\n/**\r\n *\r\n * @param {Object} payload\r\n * @param {Function} [callback]\r\n * @returns {Promise<unknown>}\r\n */\r\nexport function trackData(payload, callback) {\r\n const eventTimeout = 2000;\r\n const trackPromise = new Promise((resolve, reject) => {\r\n if (callback) {\r\n payload.eventCallback = callback;\r\n payload.eventTimeout = eventTimeout;\r\n\r\n setTimeout(() => callback(), eventTimeout);\r\n }\r\n\r\n try {\r\n window.dataLayer.push(payload);\r\n resolve();\r\n } catch (error) {\r\n reject(error);\r\n }\r\n });\r\n\r\n trackPromise.catch(() => {});\r\n\r\n return trackPromise;\r\n}\r\n\r\n/**\r\n * @param {string} [category]\r\n * @param {string} [action]\r\n * @param {string} [label]\r\n * @param {Object} options\r\n * @returns {Promise<unknown>}\r\n */\r\nexport function trackEvent(category = undefined, action = undefined, label = undefined, options = {}) {\r\n const payload = {\r\n event: 'GAEvent',\r\n eventCategory: category,\r\n eventAction: action,\r\n eventLabel: label\r\n };\r\n\r\n return trackData({\r\n ...payload,\r\n ...options\r\n });\r\n}\r\n\r\ndelegateEvent('[data-track]', 'click', node => {\r\n const category = node.getAttribute('data-track');\r\n const action = 'Custom Event';\r\n const label = node.getAttribute('data-track-label');\r\n\r\n trackEvent(category, action, label);\r\n});\r\n"],"names":["trackData","payload","callback","trackPromise","Promise","resolve","reject","eventCallback","eventTimeout","setTimeout","window","dataLayer","push","error","catch","trackEvent","category","action","label","options","event","eventCategory","eventAction","eventLabel","delegateEvent","node","getAttribute"],"sourceRoot":""}