{"version":3,"sources":["StullerEvents.js","StullerEventTracking.js"],"names":["STULLER_EVENT_PREFIX","stullerEvents","ping","react-mount","form-builder-submission","track-event","track-universal-event","live-chat-open","cms-content-recommendations","add-a-head-modal-scrolltop","add-a-head-react-remount","cms-preview-tmc","accent-stones-toggle-change","digital-goldsmith-modal-launch","stullerEventsQueue","dispatchStullerEvent","eventName","detail","Error","event","CustomEvent","cancelable","push","window","dispatchEvent","addStullerEventListener","eventHandler","data","__stullerEventListeners","stullerEventName","removeEventListener","addEventListener","length","forEach","_gaq","rr","dataLayer","StullerTrackEvent","category","action","label","value","nonInteraction","fieldsObject","eventCategory","eventAction","eventLabel","eventValue","removeSurroundingQuotesRegex","__gaTracker","RegExp","strippedValues","map","replace","details","log_click","url","Image","src"],"mappings":"AAGA,MAAMA,qBAAuB,WAK7B,IAAIC,cAAgB,CAClBC,MAAM,EACNC,eAAe,EACfC,2BAA2B,EAC3BC,eAAe,EACfC,yBAAyB,EACzBC,kBAAkB,EAClBC,+BAA+B,EAC/BC,8BAA8B,EAC9BC,4BAA4B,EAC5BC,mBAAmB,EACnBC,+BAA+B,EAC/BC,kCAAkC,GAEhCC,mBAAqB,CACvBZ,KAAM,GACNC,cAAe,GACfC,0BAA2B,GAC3BC,cAAe,GACfC,wBAAyB,GACzBC,iBAAkB,GAClBC,8BAA+B,GAC/BC,6BAA8B,GAC9BC,2BAA4B,GAC5BC,kBAAmB,GACnBC,8BAA+B,GAC/BC,iCAAkC,IAMpC,SAASE,qBAAsBC,EAAWC,GACxC,GAAgC,MAA5BhB,cAAce,GAChB,MAAM,IAAIE,MAAM,uDAAyDF,GAErEG,EAAQ,IAAIC,YAAYpB,qBAAuBgB,EAAW,CAAEK,YAAY,EAAMJ,OAAAA,IAGpF,OAAiC,IAA7BhB,cAAce,IAChBF,mBAAmBE,GAAWM,KAAKH,IAC5B,GAGFI,OAAOC,cAAcL,GAM9B,SAASM,wBAAwBT,EAAWU,GAC1C,GAAgC,MAA5BzB,cAAce,GAChB,MAAM,IAAIE,MAAM,0DAA4DF,GAE9E,MAAMW,EAAOJ,OAAOK,yBAA2B,GAC/CL,OAAOK,wBAA0BD,EAEjC,IAAME,EAAmB7B,qBAAuBgB,EACzB,MAAnBW,EAAKX,IACPO,OAAOO,oBAAoBD,EAAkBF,EAAKX,IAGpDW,EAAKX,GAAaU,EAClBH,OAAOQ,iBAAiBF,EAAkBH,GAG1CzB,cAAce,IAAa,EACgB,EAAvCF,mBAAmBE,GAAWgB,SAChClB,mBAAmBE,GAAWiB,QAAQd,GAASI,OAAOC,cAAcL,IACpEL,mBAAmBE,GAAa;AC7EpC,IAAIkB,KAAOA,MAAQ,GAGfC,IAFJZ,OAAOa,UAAYb,OAAOa,WAAa,GAE9BD,IAAM,IAMf,SAASE,kBAAkBC,EAAUC,EAAQC,EAAOC,EAAOC,GAEvD,IAAIC,EAAe,CACfC,cAAeN,EACfO,YAAaN,EACbO,WAAYN,EACZO,WAAYN,GAedO,GAZEN,IACAC,EAAaD,eAAiBA,GAGlCO,YAAY,OAAQ,QAASN,GAQI,IAAIO,wBAAyB,OAE5DC,EAAiB,CAACb,EAAUC,EAAQC,GAAOY,IAAI,SAAUX,GAC3D,OAAa,MAATA,EACKA,EAGFA,EAAMY,QAAQL,EAA8B,QAGrDzB,OAAOa,UAAUd,KAAK,CAAEgC,QAAS,OACjC/B,OAAOa,UAAUd,KAAK,CACpBH,MAAO,YACPmC,QAAS,CACPhB,SAAUa,EAAe,GACzBZ,OAAQY,EAAe,GACvBX,MAAOW,EAAe,GACtBV,MAAAA,KA3CNN,GAAGoB,UAAY,SAAUC,IACX,IAAIC,OACVC,IAAMF,GA+Cd/B,wBAAwB,cAAe,SAAUN,GAC/CI,OAAOa,UAAUd,KAAK,CAAEgC,QAAS,OACjC/B,OAAOa,UAAUd,KAAK,CACpBH,MAAOA,EAAMF,OAAOE,MACpBmC,QAASnC,EAAMF,OAAOqC,YAI1B7B,wBAAwB,wBAAyB,SAAUN,GACrDmC,EAAUnC,EAAMF,OACpBoB,kBAAkBiB,EAAQhB,SAAUgB,EAAQf,OAAQe,EAAQd,MAAOc,EAAQb","file":"benchJeweler_tracking.js","sourcesContent":["/**\n * Prefix used for Stuller events\n */\nconst STULLER_EVENT_PREFIX = 'stuller-'\n\n/**\n * Stuller event names\n */\nvar stullerEvents = {\n ping: false,\n 'react-mount': false,\n 'form-builder-submission': false,\n 'track-event': false,\n 'track-universal-event': false,\n 'live-chat-open': false,\n 'cms-content-recommendations': false,\n 'add-a-head-modal-scrolltop': false,\n 'add-a-head-react-remount': false,\n 'cms-preview-tmc': false,\n 'accent-stones-toggle-change': false,\n 'digital-goldsmith-modal-launch': false\n}\nvar stullerEventsQueue = {\n ping: [],\n 'react-mount': [],\n 'form-builder-submission': [],\n 'track-event': [],\n 'track-universal-event': [],\n 'live-chat-open': [],\n 'cms-content-recommendations': [],\n 'add-a-head-modal-scrolltop': [],\n 'add-a-head-react-remount': [],\n 'cms-preview-tmc': [],\n 'accent-stones-toggle-change': [],\n 'digital-goldsmith-modal-launch': []\n}\n\n/**\n * Helper function to dispatch Stuller events\n */\nfunction dispatchStullerEvent (eventName, detail) {\n if (stullerEvents[eventName] == null) {\n throw new Error('dispatchStullerEvent received an invalid eventName: ' + eventName)\n }\n const event = new CustomEvent(STULLER_EVENT_PREFIX + eventName, { cancelable: true, detail })\n\n // If the event listener is not ready, queue the event\n if (stullerEvents[eventName] === false) {\n stullerEventsQueue[eventName].push(event)\n return true\n }\n\n return window.dispatchEvent(event)\n}\n\n/**\n * Helper function to create/replace Stuller event listeners\n */\nfunction addStullerEventListener(eventName, eventHandler) {\n if (stullerEvents[eventName] == null) {\n throw new Error('addStullerEventListener received an invalid eventName: ' + eventName)\n }\n const data = window.__stullerEventListeners || {}\n window.__stullerEventListeners = data\n\n const stullerEventName = STULLER_EVENT_PREFIX + eventName\n if (data[eventName] != null) {\n window.removeEventListener(stullerEventName, data[eventName])\n }\n\n data[eventName] = eventHandler\n window.addEventListener(stullerEventName, eventHandler)\n\n // Dispatch any queued events\n stullerEvents[eventName] = true\n if (stullerEventsQueue[eventName].length > 0) {\n stullerEventsQueue[eventName].forEach(event => window.dispatchEvent(event))\n stullerEventsQueue[eventName] = []\n }\n\n // window.stullerEvents = stullerEvents\n}\n","var _gaq = _gaq || [];\nwindow.dataLayer = window.dataLayer || []\n\nvar rr = rr || {};\nrr.log_click = function (url) {\n var img = new Image();\n img.src = url;\n};\n\nfunction StullerTrackEvent(category, action, label, value, nonInteraction) {\n // Begin Universal Analytics\n var fieldsObject = {\n eventCategory: category,\n eventAction: action,\n eventLabel: label,\n eventValue: value\n };\n\n if (nonInteraction) {\n fieldsObject.nonInteraction = nonInteraction;\n }\n\n __gaTracker('send', 'event', fieldsObject);\n // End Universal Analytics\n\n // Begin Google Tag Manager / Google Analytics 4\n\n // remove surrounding ticks and quotes, they were mistakenly added to the event tracking we had for universal/classic analytics\n // hunter didn't want to change the behavior for universal/classic so that he could preserve yoy reporting but did want it fixed for ga4\n // once universal tracking is ended, we should go about fixing these at the source\n var removeSurroundingQuotesRegex = new RegExp(`^('|\")(.*)\\\\1$`, 'gs')\n\n var strippedValues = [category, action, label].map(function (value) {\n if (value == null) {\n return value\n }\n\n return value.replace(removeSurroundingQuotesRegex, '$2')\n })\n\n window.dataLayer.push({ details: null })\n window.dataLayer.push({\n event: 'universal',\n details: {\n category: strippedValues[0],\n action: strippedValues[1],\n label: strippedValues[2],\n value\n }\n })\n // End Google Tag Manager / Google Analytics 4\n};\n\naddStullerEventListener('track-event', function (event) {\n window.dataLayer.push({ details: null })\n window.dataLayer.push({\n event: event.detail.event,\n details: event.detail.details\n })\n})\n\naddStullerEventListener('track-universal-event', function (event) {\n var details = event.detail\n StullerTrackEvent(details.category, details.action, details.label, details.value)\n})\n"]}