{"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":""}