1(globalThis.webpackChunkws_tagging=globalThis.webpackChunkws_tagging||[]).push([[8056],{288(e,t,a){e.exports={...a(7742)}},1452(e,t,a){"use strict";a.d(t,{A:()=>i});const n=e=>{if(null===e||"object"!=typeof e)return e;if(e instanceof Function)return e;if(e instanceof Date)return new Date(e);if(Array.isArray(e))return e.map(e=>n(e));if("object"==typeof e){const t={};return Object.keys(e).forEach(a=>{t[a]=n(e[a])}),t}},i=n},8056(e,t,a){"use strict";a.d(t,{initIfWsTaggingReady:()=>ne});var n=a(8614),i=a(4579);const r=(e,t)=>t.split(".").reduce((e,t)=>void 0!==e?e[t]:void 0,e),s=e=>Array.isArray(e)?e:[e],o=(e,t,a)=>{const n=t.split("."),i=n.pop();n.reduce((e,t)=>(e[t]=e[t]||{},e[t]),e)[i]=a},c=(e,t)=>{Object.values(e).forEach(({objectPath:e,value:a})=>{if(e&&a){const n=JSON.parse(JSON.stringify(a));o(t,e,"emptyfunc"===n?()=>{}:n)}})},l="dynamic-script-insert",d="dynamic-script-insert-wiapi",u={[l]:({src:e})=>new Promise((t,a)=>{const n=document.createElement("script");n.src=e,n.addEventListener("load",t),n.addEventListener("error",e=>a(e.error)),document.head.appendChild(n)}),[d]:async({src:e,win:t})=>{const a=t?.DDC?.APILoader;if(!a)return u[l]({src:e});return(await a.create("ws-tagging")).loadJS(e)}},p=u,g={address1:"dataLayer.dealership.address1",address2:"dataLayer.dealership.address2",bodyStyle:"vehicle.bodyStyle",certified:"vehicle.certified",city:"dataLayer.dealership.city",cityFuelEfficiency:"vehicle.cityFuelEfficiency",country:"dataLayer.dealership.country",cCode:"vehicle.cCode",chromeId:"vehicle.chromeId",dealerId:"dataLayer.site.siteInfo.dealerId",dealershipName:"dataLayer.dealership.dealershipName",driveLine:"vehicle.driveLine",engine:"vehicle.engine",exteriorColor:"vehicle.exteriorColor",fuelType:"vehicle.fuelType",highwayFuelEfficiency:"vehicle.highwayFuelEfficiency",interiorColor:"vehicle.interiorColor",internetPrice:"vehicle.internetPrice",inventoryDate:"vehicle.inventoryDate",inventoryType:"vehicle.inventoryType",layoutType:"dataLayer.page.attributes.layoutType",listingType:"vehicle.listingType",locale:"dataLayer.page.attributes.locale",make:"vehicle.make",model:"vehicle.model",msrp:"vehicle.msrp",newOrUsed:"vehicle.newOrUsed",normalBodyStyle:"vehicle.normalBodyStyle",normalFuelType:"vehicle.normalFuelType",odometer:"vehicle.odometer",pageAlias:"dataLayer.page.pageInfo.pageName",pageId:"dataLayer.page.pageInfo.pageId",pageTrackMake:"dataLayer.page.trackingTags.make",pageTrackModel:"dataLayer.page.trackingTags.model",pageTrackYear:"dataLayer.page.trackingTags.year",postalCode:"dataLayer.dealership.postalCode",prevVehicleResultCount:"dataLayer.prev.page.attributes.vehicleResultCount",priorityType:"vehicle.priorityType",queryFacets:"dataLayer.page.queryFacets",returnNull:null,stateProvince:"dataLayer.dealership.stateProvince",stockNumber:"vehicle.stockNumber",tier:"dataLayer.site.siteInfo.tier",transmission:"vehicle.transmission",trim:"vehicle.trim",userId:"userProfile.universalUserId",userPostalCode:"dataLayer.user.userPostalCode",uuid:"vehicle.uuid",variationId:"dataLayer.site.design.variationId",vehicleAccountId:"vehicle.accountId",vehicleResultCount:"dataLayer.page.attributes.vehicleResultCount",vin:"vehicle.vin",website:"dataLayer.dealership.website",year:"vehicle.modelYear",zip:"dataLayer.confirmation.zip"};var v=a(1288);const h=(e,t,a,n)=>{const i={};Object.entries(e).forEach(([e])=>{const t=g[e],a=r(n.DDC,t);a&&o(i,t.replace("dataLayer.",""),a)}),Object.keys(i).length>0?v.A.setItem(`wsTaggingPrev|${t}|${a}`,JSON.stringify(i),n):v.A.removeItem(`wsTaggingPrev|${t}|${a}`,n)},f=(e={},t,a,n,i,r)=>{const s=`wsTaggingPrevEvents${t}${a}`,o=JSON.parse(v.A.getItem(s,r))||{};let c=!1;return Object.entries(e).forEach(([e,t])=>{e===n&&t.forEach(t=>{if(i?.[t]){const a=e.replaceAll(".","");o[a]=o[a]||{},o[a][t]=i[t],c=!0}})}),c&&v.A.setItem(s,JSON.stringify(o)),o},y=({DDC:{dataLayer:{page:e={},vehicles:t=[]}={},dataLayer:a={},APILoader:i={}}={}}={},r=5e3)=>{const s={isVlp:e?.pageInfo?.isVlp,vehiclesLength:t?.length};let o;return o=s.isVlp&&!s.vehiclesLength?new Promise(e=>{let t,s,o=!1;const c=a=>{o||(o=!0,clearInterval(t),clearTimeout(s),"timeout"===a&&(0,n.U)("wsTaggingVehicleData",{wsTaggingError:"vehicleDataDidntUpdate"}),e(a))};t=setInterval(()=>{a?.vehicles?.length&&c("datalayer")},10),(async()=>{try{(await(i?.create("ws-tagging"))).subscribe("vehicle-data-updated-v1",()=>{c("api")})}catch(e){}})(),s=setTimeout(()=>{c("timeout")},r)}):Promise.resolve(s),o};var m=a(8151);const w=(e,t)=>{let a=t;return"string"!=typeof a||a?.startsWith?.("{{")||a?.endsWith?.("}}
1")||e.forEach(e=>{switch(e){case"TO_LOWER_CASE":a.includes(".htm")||(a=a.toLowerCase());break;case"TO_UPPER_CASE":a.includes(".htm")||(a=a.toUpperCase());break;case"STRIP_RETURN_CHARS":a=a.replace(/[\r\n ]+/gm," ");break;case"STRIP_Q_STRING":a=a.split("?").shift().split("com/").pop();break;case"ONLY_NUMBERS":a=a.replace(/\D/g,"");break;case"CAST_TO_NUMBER":a=+a;break;case"PIX_ARRAY_FIND_MIN":a=a.replace(/(-)/g,",").replace(/( )/g,"").split(","),a=a.reduce((e,t)=>Math.min(e,t));break;case"PIX_ARRAY_FIND_MAX":a=a.replace(/(-)/g,",").replace(/( )/g,"").split(","),a=a.reduce((e,t)=>Math.max(e,t));break;case"TAGGINGHYUNDAI_FORMAT_CLICKED_FACET_NAME":a=a?.replace("normal",""),a=a?.charAt(0)?.toLowerCase()+a.slice(1)}}),a};const E=(e,t)=>{Object.entries(e).forEach(([a,n])=>{(0,i.A)(n)?E(n,t):Array.isArray(n)?n.forEach((e,a)=>{"string"==typeof e?n[a]=t(e):E(e,t)}):"string"==typeof n&&(e[a]=t(n))})},A=(e,t)=>{const a=JSON.parse(JSON.stringify(e));return E(a,t),a},D=A,T=(e,t,a={})=>{const n=a?.[e];return n?w(n,t):t};var b=a(4199);const L=(e,t,a)=>a[e][t];var C=a(6307);const I=({str:e,eventData:t={},mapping:a,utils:n,lookups:i,flags:s={},payload:o})=>{let c,l=e;if(e.includes("lookup.")&&(l=l.replace("lookup.","")),g[l]&&g[l].startsWith("vehicle.")){const e=1===window.DDC.dataLayer?.vehicles?.length&&window.DDC.dataLayer.vehicles[0]||window.DDC.dataLayer?.confirmation?.vehicle||t?.vehicle;c=e&&Object.keys(e).length?e[g[l].replace("vehicle.","")]:""}else if("eventData"===l)c=t;else if("env"===l)c=(0,C.Ay)();else if(l.startsWith("dealerCode.")){const e=window?.DDC?.dataLayer?.dealership?.dealerCode;if(e){const t=l.replace("dealerCode.","");c=(0,b.A)(e,t)}}else if(l.startsWith("fn.")){const e=window.DDC.dataLayer?.confirmation?.vehicle?[window.DDC.dataLayer.confirmation.vehicle]:window.DDC.dataLayer.vehicles;l=l.replace("fn.","");const i=l.substring(l.indexOf("(")+1,l.lastIndexOf(")"));l=l.replace(`(${i})`,""),n[l]?c=n[l]({eventData:t,mapping:a,payload:o,vehicles:e,window}
1):(c=void 0,console.error(`The ${l} function in utils was not exported or does not exist.`))}else if(l.startsWith("flags."))l=l.replace("flags.",""),c=s[l];else if("_dl"===l||"window._dl"===l)c=window._dl;else if(l.startsWith("cookie.")){l=l.replace("cookie.","");const e=(e=>{const t=document.cookie.split(";");let a=null;return t.forEach(t=>{const[n,i]=t.split("=");n.trim()===e&&(a=i)}),a})(l);c=null===e?void 0:e}else if("userSessionId"===l)c=v.R.getItem("userSessionId");else{let e;if(g[l])e=window,c=`DDC.${g[l]}`;else if(l.startsWith("mapping."))e=a,c=l.replace("mapping.","");else if(l.startsWith("eventData."))e=t,c=l.replace("eventData.","");else if(l.startsWith("payload."))e=o,c=l.replace("payload.","");else if(l.startsWith("DDC."))e=window,c=l;else if(l.startsWith("document."))e=document,c=l.replace("document.","");else if(l.startsWith("localstorage.")){l=l.replace("localstorage.","");const t=l.split(".")[0];e=JSON.parse(v.A.getItem(t))||void 0,c=l.replace(`${t}.`,"")}else if(l.startsWith("previousEvent.")){l=l.replace("previousEvent.","");const t=l.split(".")[0];e=a?.prevEventData?.[t],c=l.replace(`${t}.`,"")}else l.startsWith("window.")&&(l=l.replace("window.",""),e=window,c=l);c=e&&c&&r(e,c)}return e.includes("lookup.")?L(l,c,i):c},k=e=>{const t=e.slice(e.lastIndexOf("[[")+2);return t.substring(0,t.indexOf("]]"))},N=e=>(e=>-1!==e.indexOf("[[")&&e.indexOf("[[")===e.lastIndexOf("[["))(e)&&0===e.indexOf("[[")&&e.indexOf("]]")===e.length-2,O=e=>e.includes("[[")&&e.includes("]]"),S=({input:e,eventData:t,mapping:a,utils:n,lookups:r,flags:s,payload:o})=>{let c=e;for(;c&&"string"==typeof c&&O(c);){const e=k(c),l=I({str:e,eventData:t,mapping:a,utils:n,lookups:r,flags:s,payload:o});N(c)&&void 0===l?c=void 0:(0,i.A)(l)||Array.isArray(l)||"boolean"==typeof l?c=l:(c=c.replace(`[[${e}]]`,l||""),c=parseInt(c,10)!==l||/[^\d]/.test(c)?c:l)}return void 0===c||"string"!=typeof c?c:c.trim()},P=({input:e,eventData:t,configuration:a={},utils:n,mapping:r,flags:s,payload:o})=>{const{lookups:c,payloadMutator:l}=a;let d;if((0,i.A)(e))d={},Object.entries(e).forEach(([e,i])=>{const u=P({input:i,eventData:t,configuration:a,utils:n,mapping:r,flags:s,payload:o}),p=S({input:e,eventData:t,mapping:r,utils:n,lookups:c,flags:s,payload:o});let g=e;e!==p&&(g=p),g&&(d[g]=T(g,u,l))});else if("string"==typeof e){if(d=S({input:e,eventData:t,mapping:r,utils:n,lookups:c,flags:s,payload:o}),e.includes(" >> ")){const i=e.split(" >> ").map(e=>P({input:e,eventData:t,configuration:a,utils:n,mapping:r,flags:s,payload:o}));d=i.find(e=>null!=e&&""!==e)}(0,i.A)(d)&&(d=P({input:d,eventData:t,configuration:a,utils:n,mapping:r,flags:s,payload:o}))}else d=Array.isArray(e)?e.map(e=>P({input:e,eventData:t,configuration:a,utils:n,mapping:r,flags:s,payload:o})):"function"!=typeof e&&void 0!==e?JSON.parse(JSON.stringify(e)):void 0;return d},R=P;var $=a(2008);const j=e=>Array.isArray(e)&&e.push===Array.prototype.push?e.map(e=>j(e)):Array.isArray(e)||"object"!=typeof e||null===e?"{{UNDEFINED}}"===e?void 0:"{{NULL}}"===e?null:e:Object.keys(e).reduce((t,a)=>(t[a]=j(e[a]),t),{}),M=e=>{const t={},a=JSON.stringify(e,(e,a)=>(Array.isArray(a)&&a.push!==Array.prototype.push&&(t[e]=a),a)),n=JSON.parse(a,(e,a)=>{let n=a;return a?.includes?.("{{REMOVEKEY}}")?n=void 0:a?.includes?.("{{EMPTYSTRING}}")?n="":a?.includes?.("{{EMPTYOBJECT}}")&&(n={}),t[e]&&(n=t[e]),n});return j(n)};var x=a(1452),F=a(7369);const G=(e,t,a)=>{const n=e?.["ws-tagging-nr-switcher"];if(!n||!Array.isArray(n))return!0;return!n.some(e=>!("allProjects"!==e.project&&e.project!==t||"allEvents"!==e.event&&e.event!==a))},_=e=>JSON.stringify(e,(e,t)=>"function"==typeof t?t.toString():t),U=e=>"function"==typeof e?.coxAutoDataLayer?.subscribe,W=e=>{const t={};try{const a=e.document.querySelector('script[src*="/pixall-consent-management/"]')?.src,n=a?.match(/\/pixall-consent-management\/([^/]+)\//)?.[1];n&&(t.consentPlatform=n)}catch(e){}try{const a=e.document.cookie.match(/(?:^|;\s*)cdlPrivacy=([^;]*)/)?.[1];a&&(t.cdlPrivacy=decodeURIComponent(a))}catch(e){}try{Object.entries(e.getConsentCa?.()||{}).forEach(([e,a])=>{t[`consent${e[0].toUpperCase()}${e.slice(1)}`]=String(a)})}catch(e){}return t},J=(e,t,{pollMs:a=100,timeoutMs:i=3e4,slowPollMs:r=1e3}={})=>
1{if(U(e))return e.coxAutoDataLayer.subscribe(t),()=>{};const s=(o=e?.coxAutoDataLayer,Array.isArray(o)?"array":null===o?"null":typeof o);var o;const c=Date.now(),l=(0,$.A)(10);let d,u=!1;const p=(e,t)=>{l&&(0,n.U)("wsTaggingCdlSubscribe",{status:e,...t,nrSamplePercent:10})},g=()=>{const a=Date.now()-c;U(e)?(clearInterval(d),e.coxAutoDataLayer.subscribe(t),p("waited",{...u&&{afterTimeout:!0},waitMs:a,initialCdlType:s,...u&&W(e)})):!u&&a>=i&&(u=!0,clearInterval(d),d=setInterval(g,r),p("timeout",{waitMs:a,initialCdlType:s,...W(e)}))};return d=setInterval(g,a),()=>clearInterval(d)};function q(e,t,a){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var a=e[Symbol.toPrimitive];if(void 0!==a){var n=a.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}const V=new Set;let B,Y=()=>{};const z=["accountId","askingPrice","autodataCaId","bodyStyle","certified","chromeId","cityFuelEconomy","classification","dealerCodes","doors","driveLine","engine","engineSize","exteriorColor","finalPrice","fuelType","highestPrice","highwayFuelEconomy","images","interiorColor","internetPrice","inventoryType","link","make","model","modelCode","msrp","odometer","optionCodes","retailValue","salePrice","startingPrice","status","stockNumber","transmission","trim","uuid","vin","year"],H=(e,t)=>{const a={address:{accountName:void 0,city:t?.city,state:t?.state,street:t?.address,postalCode:t?.zipcode,country:void 0}};return z.forEach(e=>{const n=t?.[e?.toLowerCase()];n&&"null"!==n&&(a[e]=n)}),a.dealerCodes=e?.DDC?.dataLayer?.dealership?.dealerCode,a.images=t?.images&&Array.isArray(t?.images)?t?.images:t?.images?.split(","),a};class X{constructor(e,t){q(this,"testLogic",(e,t,a)=>{if("function"==typeof e)return e({eventData:t,mapping:this.mapping,utils:this.utils,lookups:this.lookups,flags:B,element:a});const{mustEqual:n=!1,mustEqualOneOf:i=!1,mustInclude:r=!1,mustIncludeOneOf:s=!1,mustNotEqual:o=!1,mustNotInclude:c=!1}=e;let l=!0;if(n||i||r||s||o||c){const e=(e,a)=>!e||Object.entries(e).every(([e,n])=>(Array.isArray(n)?n:[n])[i||s?"some":"every"](n=>{const i=I({str:e,eventData:t,mapping:this.mapping,utils:this.utils,lookups:this.lookups,flags:B});let r=!0;const s=void 0===i,o="*"===n,c=""===n,l=c&&""===i;return"include"===a?r=!s&&(o||String(i).includes(n)):"notinclude"===a?r=!!s||!l&&(!!c||!o&&!String(i).includes(n)):"notequal"===a?r=("{{EMPTYSTRING}}"!==n||""!==i)&&(!(!s||c||l)||!o&&i!==n):"equal"===a&&(r="{{EMPTYSTRING}}"===n&&""===i||(o||i===n)),r}));l=e(n,"equal")&&e(i,"equal")&&e(c,"notinclude")&&e(o,"notequal")&&e(r,"include")&&e(s,"include")}return l}),q(this,"reduceSharedPayload",(e,t,a,n,i)=>{const r=(Array.isArray(e)?e:[e]).map(e=>{const{shared:r=[],...s}=e;return r.reduce((e,r)=>{let s;return r?.logic&&r?.payload?this.testRule(r.logic,t,i)?(s={...e,...r.payload},window.dispatchEvent(new CustomEvent("wsTaggingRuleMatch",{detail:{data:_({event:n,...a,sharedBlock:r.logic}),type:"rule"}}))):s=e:s={...r,...e},s},{...s})});return Array.isArray(e)?r:r[0]}),q(this,"resolveSharedPayload",(e,t,a,n,i)=>{const r=(Array.isArray(e)?e:[e]).map(e=>{const r=e;return Object.keys(r).forEach(e=>{"object"==typeof r[e]&&r[e]?.shared&&(r[e]=this.reduceSharedPayload(r[e],t,a,n,i))}),this.reduceSharedPayload(r,t,a,n,i)});return Array.isArray(e)?r:r[0]});const{grouping:a,configuration:{create:n=!1,lookups:i,previousData:r={},sendingLogic:s={}}=!1,event:{events:o=!1,triggerEvents:l=!1,fireGroups:d=!1}=!1,utils:u={},preview:p=!1}=e;this.mapping=e,this.event=o,this.triggerEvents=l,this.fireGroups=d,this.configuration=e.configuration,this.name=t,this.grouping=a,this.prevData=((e,t,a)=>JSON.parse(v.A.getItem(`wsTaggingPrev|${e}|${t}`,a)))(t,a,window),this.preview=p,this.scriptsLoaded=new Set,this.sendingLogic=s,this.lookups=i,this.utils=u,this.triggeredEvents=new Map,this.firedGroups=new Map;const g=`wsTaggingPrevEvents${t}${a}`,f=JSON.parse(v.A.getItem(g));this.mapping.prevEventData=f,v.A.removeItem(g),!p&&n&&c(n,window),((e={},t,a,n)=>{h(e,t,a,n),n?.DDC?.APILoader&&(async i=>{(await i.create("ws-tagging")).subscribe("vehicle-data-updated-v1",()=>{h(e,t,a,n)})})(n.DDC.APILoader)})(r?.ddcDataLayer,t,a,window)}handleGlobalPayloadMutators(e){const t=this.configuration?.globalPayloadMutators;return t?D(e,w.bind(void 0,t)):e}testRule(e,t={},a){const{mustExist:n=!1,mustEqual:i,mustInclude:r,mustNotEqual:o,mustNotInclude:c,...l}=e;return(!n||s(n).every(e=>void 0!==S({input:e,eventData:t,mapping:this.mapping,utils:this.utils,lookups:this.lookups,flags:B})))&&this.testLogic(e,t,a)&&Object.entries(l).every(([e,a])=>{const n=I({str:e,eventData:t,mapping:this.mapping,utils:this.utils,lookups:this.lookups,flags:B});if("boolean"==typeof n&&"boolean"==typeof a)return n===a;{const i=n||t[e];return"string"==typeof i?i?.includes(a):"boolean"==typeof i&&i===a}})}testFireGroup(e){let t=!0;if(e){const a=Object.keys(this?.fireGroups?.[e]);switch(a[0]){case void 0:(0,m.A)({msg:"An operation is required when using a fireGroup"});break;case"maxCount":{const a=this?.fireGroups?.[e]?.maxCount;if(0===a)(0,m.A)({msg:"maxCount can not be zero"});else{const n=this.firedGroups.get(e);n?n<a?this.firedGroups.set(e,n+1):t=!1:this.firedGroups.set(e,1)}break}case"minCount":{const a=this?.fireGroups?.[e]?.minCount;if(0===a)(0,m.A)({msg:"minCount can not be zero"});else{const n=this.firedGroups.get(e);n>=a?t=!0:n?(t=!1,this.firedGroups.set(e,n+1)):(t=!1,this.firedGroups.set(e,1))}break}}t&&a.length&&window.dispatchEvent(new CustomEvent("wsTaggingRuleMatch",{detail:{data:e,type:"fireGroup"}}))}return t}getRule(e,t,a){let n=(0,x.A)(t);if(!Array.isArray(n)){if(!n.logic)return n;n=[n]}return n.find(t=>{const{fireGroup:n=!1}=t,i=t.logic&&s(t.logic).some(t=>this.testRule(t,e,a)),r=!t.logic&&!0,o=(i||r)&&this.testFireGroup(n);return(i||r)&&o})}reportToNewRelic({clientEventName:e,event:t,eventData:a={},sender:i="",win:r={},...s}){if((0,$.A)(this?.configuration?.nrPercentage)&&G(B,this.name,e||t)){const o=r?.DDC?.dataLayer?.page?.trackingTags||{},c=Object.keys(o).toString(),l=Object.values(o).toString(),d=a?.trackingTags;(0,n.U)(`${this.name}_send_data`,{eventName:e||t,...d&&{eventTrackingTags:d},mappingGroup:this.grouping,mappingSource:"native ws-tagging",...c&&{pageTrackingTags:c},...l&&{pageTrackingTagsValues:l},...s,sourceEvent:t,wsTaggingPreview:this.preview,...i&&{sender:i},...a?.widgetName&&{widgetName:a.widgetName}})}}sendEvent(e,t,a,{addSourceToSecondArgument:n=!1,addEventToSecondArgument:i=!1,event:r=""}={}){let s=!1;try{if("function"==typeof e){const a=[t],o={};n&&(o.source="ws-tagging"),i&&(o.event=r),Object.keys(o).length&&a.push(o),e(...a),s=!0}else Array.isArray(e)?(e.push(t),s=!0):"string"==typeof e&&(o(window,e,t),s=!0)}catch(e){(0,m.A)({msg:`Error sending ${a}: ${e.message}`})}return s&&(0,m.A)({msg:`Sending payload for ${this.name} to the ${"string"==typeof e?"object":typeof e} ${a}`}),s}resolveClientEventName({clientEventName:e,eventData:t,payload:a}){return a?.[e]||R({input:e,eventData:t,configuration:this.configuration,utils:this.utils,mapping:this.mapping,flags:B,payload:a})||t.event}sendEvents(e,t,a="",n={},s){const{reporting:{clientEventName:o}=!1}=this.configuration,c=s?[{sender:s}]:this.configuration.sendData,l=Array.isArray(e)?e:[e];let d=[],u=[];l.forEach(async e=>{const l=M(e,n),p=this.resolveClientEventName({clientEventName:o,eventData:n,payload:l});if(!s&&this?.utils?.sending){const{reportsForEventViewer:e,reportsForNewRelic:a={}}=this.utils.sending({data:l,event:t,eventData:n,flags:B,...this.utils.groupingSending&&{groupingSending:this.utils.groupingSending},mapping:this.mapping,preview:this.preview,win:window});d=d.concat(e),u=u.concat(a)}
1else c.forEach(({sender:s,report:o=!0,eventViewer:c=!0,addEventToSecondArgument:g=!1,addSourceToSecondArgument:v=!1})=>{if(c&&d.push({payload:l,sender:s,clientEventName:p}),`,${a},`.includes(`,${s},`))(0,m.A)({msg:`Skipping excluded ${s} for ${this.name}`});else{o&&u.push({clientEventName:p,sender:s});const a=r(window,s);if(!this.preview){const r=[(0,i.A)(a)?s:a,M(e,n),s];(g||v)&&r.push({addEventToSecondArgument:g,addSourceToSecondArgument:v,event:t}),this.sendEvent(...r)}}})}),u.forEach(async e=>{const{clientEventName:a,linkType:i,sender:r}=await e;this.reportToNewRelic({...a&&{clientEventName:a},event:t,eventData:n,...i&&{linkType:i},sender:r,win:window})}),d.forEach(async e=>{if(e){const{payload:a,clientEventName:n,...i}=await e;a&&window?.DDC?.reportToEventViewer&&window?.DDC?.reportToEventViewer({...n&&{clientEventName:n},event:t,payload:a,project:this.name,...i})}})}async processScripts(e,t,a){const n={error:!1,message:"",messages:[]};if(this.configuration.scripts){const{when:i,trigger:r,event:s,configs:o}=this.configuration.scripts;if(e===i&&t===r&&a===s)for(let e=0;e<o.length;e++){const{name:t,src:a,srcNp:i,type:r}=o[e];if(t&&a&&r){if(!this.scriptsLoaded.has(t)){const e=i&&"prod"!==(0,C.Ay)()?i:a,n=S({input:e,eventData:void 0,mapping:this.mapping,utils:this.utils,lookups:this.lookups,flags:B});this.preview||await p[r]({flags:B,src:n,win:window}),this.scriptsLoaded.add(t),window.dispatchEvent(new Event(`ws-tagging-${this.name}-${this.grouping}-script-${t}-loaded`))}}else{if(n.error=!0,n.message=`${this.name} ${this.grouping} script not configured correctly:`,(0,m.A)({msg:n.message}),!t){const e="must have a name";n.messages.push(e),(0,m.A)({msg:e})}if(!a){const e="must have a src";n.messages.push(e),(0,m.A)({msg:e})}if(!r){const e="must have a type";n.messages.push(e),(0,m.A)({msg:e})}}}}return Promise.resolve(n)}async handleRule(e,t,a,n){const i=e;if(i&&window.dispatchEvent(new CustomEvent("wsTaggingRuleMatch",{detail:{data:_({event:t,...i}),type:"rule"}})),i&&i.payload&&(await y(window),i.payload=(0,F.A)(i.payload,{element:n,eventData:a,configuration:this.configuration,flags:B,mapping:this.mapping,utils:this.utils}),i.payload)){let e=R({input:i.payload,eventData:a,configuration:this.configuration,utils:this.utils,mapping:this.mapping,flags:B});e=this.resolveSharedPayload(e,a,i,t,n),e=this.handleGlobalPayloadMutators(e);const r=i?.sender;if(this.event["ddc.wstagging.first"]){const e=new Promise(e=>{if(this.firstFired||"ddc.wstagging.first"===t)this.firstFired=!0,e();else{let t=0;const a=setInterval(()=>{t+=1,(this.firstFired||t>=1e3)&&(clearInterval(a),e())},10)}});await e}this.sendEvents(e,t,i.excluded,a,r),await this.processScripts("after","event",t)}}getTriggeredRule(e,t,a){let n;const i=this.triggerEvents?.[e]||{};if(this.triggerEvents?.[e])if(i.payload){const r=this.getRule(t,i,a);if(r){if(i?.configuration?.count){const t=this.triggeredEvents.get(e);t?t<i.configuration.count&&(this.triggeredEvents.set(e,t+1),n=r):(this.triggeredEvents.set(e,1),n=r)}else n=r;n&&window.dispatchEvent(new CustomEvent("wsTaggingRuleMatch",{detail:{data:e,type:"trigger"}}))}}else(0,m.A)({msg:`payload must exist in the triggerEvent: ${e}`});else(0,m.A)({msg:`${e} not found in triggerEvents`,data:this.triggerEvents});return n}async listener(e){const{event:t}=e,a=["userEvent","thirdPartyUserEvent","specialsEvent"].includes(e.event)?e:e.eventData;this.mapping.prevEventData={...this.mapping.prevEventData,...f(this.configuration?.previousData?.events,this.name,this.grouping,t,a,window)};const n=this.event?.[t]||this.event?.["*"];if(n){const e={...a,...this.prevData&&{prev:this.prevData},element:"string"==typeof a.element?a.element:"",...a?.elementCTA&&{elementCTA:"string"==typeof a?.elementCTA?a.elementCTA:""}},i=this.sendingLogic?.waitFor?.script,r=this.sendingLogic?.exception?.event,o=new Promise(e=>{if(!i||this.scriptsLoaded.has(`${i}`)||r&&r===t)e();else{const t=()=>{this.scriptsLoaded.add(i),e()};window.addEventListener(`ws-tagging-${this.name}-${this.grouping}-script-${i}-loaded`,t,{once:!0})}});await o;const c=this.getRule(e,n,a.element);!this.event?.[t]&&this.event?.["*"]&&window.dispatchEvent(new CustomEvent("wsTaggingRuleMatch",{detail:{data:_({event:"*",...c}),type:"rule"}}));const l=[c];
1(c?.trigger&&s(c.trigger)||[]).forEach(t=>{const n=this.getTriggeredRule(t,e,a.element);n&&("first"===this.triggerEvents?.[t]?.configuration?.when?l.unshift(n):l.push(n))});for(let n=0;n<l.length;n++)await this.handleRule(l[n],t,e,a.element)}}}const K=[],Q=e=>(e.eventData||["userEvent","thirdPartyUserEvent","specialsEvent"].includes(e.event))&&K.forEach(t=>t.listener(e)),Z=e=>{Object.entries(e).forEach(([e,t])=>{t?.event&&t?.configuration&&K.push(new X(t,e))}),K.sort(({configuration:{priority:e=999}},{configuration:{priority:t=999}})=>e-t)},ee=async e=>{const t=({vehicle:t,vehicle:{uuid:a},timestamp:n,type:i})=>{if(a&&!V.has(a)){V.add(a);const r=e.DDC.dataLayer?.page?.generateId?.()||Math.trunc(1e9*Math.random());Q({event:"vehicle-shown",eventData:{eventId:r,timestamp:n,type:i,vehicle:t}})}},a=e?.DDC?.APILoader&&await(e?.DDC?.APILoader.create("ws-tagging"));a?.subscribe("vehicle-shown-v1",({timestamp:e,type:a,payload:n={}}={})=>{t({timestamp:e,type:a,vehicle:n})});document.querySelectorAll(".hproduct").forEach(a=>{const n=new IntersectionObserver(n=>{((a,n)=>{a.forEach(a=>{a.isIntersecting&&t({timestamp:Date.now(),type:"vehicle-shown-legacy-vlp",vehicle:H(e,n.dataset)})})})(n,a)},{threshold:1});n.observe(a)})},te=async({flags:e}={})=>{const{DDC:t}=window,a=t.WidgetData["ws-tagging"];a.browserEventNames=[];const n=a?.mapping;if(n&&(Z(n),K.length>0)){Q({event:"ddc.wstagging.first",eventData:{alias:t?.dataLayer?.page?.pageInfo?.pageName,eventId:t?.dataLayer?.generateId?.()}}),window.dataLayer=window.dataLayer||[],a.ascDataLayerHelper=new window.DataLayerHelper(window?.asc_datalayer?.events||[],(e,t)=>{Q({event:t.event,eventData:t})}),a.dataLayerHelper=new window.DataLayerHelper(window.dataLayer||[],(a,n)=>{n&&n.event&&"widgetUserEvent"!==n.event&&Q(n),((e,t,a)=>{if("string"==typeof e?.event&&(e.event.startsWith("ddc.")||["userEvent","specialsEvent","widgetUserEvent"].includes(e.event))&&/^[A-Za-z.]+$/.test(e.event)){let n="ddcEvent",i=e.event,r=e;if(e.event.startsWith("ddc.")||(n=e.event),"widgetUserEvent"===n?i=e.widgetName:"userEvent"===n?i=e.eventAction:"specialsEvent"===n&&(i=e.specialType),e?.eventData?.vehicle){const{eventData:{vehicle:{features:t,images:a,...n},...i},...s}=e;r={...s,eventData:{...i,vehicle:{images:[],...n}}}}"ddcEvent"===n&&r?.eventData&&"object"==typeof r.eventData&&(r=r.eventData);let s=0;a?.["ws-tagging-firehose"]&&0!==a?.["ws-tagging-firehose"]&&(s=a?.["ws-tagging-firehose"]),t.pushToFirehose(n,i,{...r,..."string"!=typeof r.element&&{element:""},..."string"!=typeof r.elementCTA&&{elementCTA:""}},s)}})(n,t,e)},!0),t.receiveTrackingEvent&&t.receiveTrackingEvent((e,t={},a={})=>{if((0,i.A)(t)&&t.event&&"widgetUserEvent"===t.event){const e={...t,...(0,i.A)(a)&&{...a}};Q({event:t.event,eventData:e}),window.dispatchEvent(new CustomEvent("wsTaggingWUE",{detail:e}))}}),window.DDC?.dataLayer?.page?.pageInfo?.isVlp&&((async e=>{const t=await(e?.DDC?.APILoader?.create?.("ws-tagging"));t?.subscribe?.("vehicle-data-updated-v1",({payload:{vehicleData:t}={},timestamp:a,type:n}={})=>{const i=e.DDC.dataLayer?.page?.generateId?.()||Math.trunc(1e9*Math.random());Q({event:"vehicle-data-updated",eventData:{eventId:i,timestamp:a,type:n,vehicles:t}})})})(window),await ee(window)),t.WidgetData["ws-tracking"]?.ddctrackingMessages?.forEach?t.WidgetData["ws-tracking"]?.ddctrackingMessages.forEach(e=>{Q({event:"ddc.message",eventData:e.data})}):window?.newrelic?.addPageAction?.("wsTaggingTrackingMessagesNotFound",{location:"1"}
1),window.addEventListener("ddcTrackingData",({detail:e})=>{Q({event:"ddc.message",eventData:e})}),Y(),Y=J(window,(e,t)=>{Q({event:"commonDataLayerEvent",eventData:t})});const n=()=>{window.CAIEventBus?.on("wallet:open",e=>{Q({event:"wallet:open",eventData:(0,x.A)(e)})})};if(window.CAIEventBus)n();else{let e=0;const t=setInterval(()=>{e+=1,window.CAIEventBus?(clearInterval(t),n()):e>=1e3&&clearInterval(t)},10)}}};let ae=!1;const ne=e=>{ae||(B=e,window?.DDC?.WidgetData?.["ws-tagging"]?.mapping?te({flags:e}):window.addEventListener("ws-tagging-ready",()=>{te({flags:e})}),ae=!0)}},7369(e,t,a){"use strict";a.d(t,{A:()=>i});const n=(e,...t)=>{if(null===e||"object"!=typeof e&&"function"!=typeof e)return e;if(Array.isArray(e))return e.map(e=>n(e,...t));if("function"==typeof e)return e(...t);if("object"==typeof e){const a={};return Object.keys(e).forEach(i=>{const r=e[i];a[i]="function"==typeof r?r(...t):n(r,...t)}),a}return e},i=n},4199(e,t,a){"use strict";a.d(t,{A:()=>n});const n=(e,t)=>{const a=Object.values(e).find(e=>Object.prototype.hasOwnProperty.call(e,t));return void 0===a?"":a[t].toString()}},8151(e,t,a){"use strict";a.d(t,{A:()=>c});var n=a(288),i=a.n(n);const r=(e=!1)=>e&&Object.prototype.hasOwnProperty.call(e,"test");var s=a(4579);const o=["fatal","error","warn","info","debug","trace"],c=({msg:e,data:t,level:a="info"})=>{const n=[e],c=o.includes(a)?a:"info";let l=t;return(0,s.A)(t)&&(l={...t,...t?.eventData&&{eventData:{...t.eventData}}}),l&&n.push(l),("undefined"==typeof window||!r(window))&&i()[c](...n)}},1288(e,t,a){"use strict";a.d(t,{A:()=>r,R:()=>s});const n=(e,t)=>{try{const a=void 0===t&&"undefined"!=typeof window?window:t;return a?.[e]||null}catch(e){return null}},i=e=>({getItem:(t,a)=>{try{return n(e,a)?.getItem(t)??null}catch(e){return null}},setItem:(t,a,i)=>{try{n(e,i)?.setItem(t,a)}catch(e){}},removeItem:(t,a)=>{try{n(e,a)?.removeItem(t)}catch(e){}}}),r=i("localStorage"),s=i("sessionStorage")},5606(e){var t,a,n=e.exports={};function i(){throw new Error("setTimeout has not been defined")}function r(){throw new Error("clearTimeout has not been defined")}function s(e){if(t===setTimeout)return setTimeout(e,0);if((t===i||!t)&&setTimeout)return t=setTimeout,setTimeout(e,0);try{return t(e,0)}catch(a){try{return t.call(null,e,0)}catch(a){return t.call(this,e,0)}}}!function(){try{t="function"==typeof setTimeout?setTimeout:i}catch(e){t=i}try{a="function"==typeof clearTimeout?clearTimeout:r}catch(e){a=r}}();var o,c=[],l=!1,d=-1;function u(){l&&o&&(l=!1,o.length?c=o.concat(c):d=-1,c.length&&p())}function p(){if(!l){var e=s(u);l=!0;for(var t=c.length;t;){for(o=c,c=[];++d<t;)o&&o[d].run();d=-1,t=c.length}o=null,l=!1,function(e){if(a===clearTimeout)return clearTimeout(e);if((a===r||!a)&&clearTimeout)return a=clearTimeout,clearTimeout(e);try{return a(e)}catch(t){try{return a.call(null,e)}catch(t){return a.call(this,e)}}}(e)}}function g(e,t){this.fun=e,this.array=t}function v(){}n.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var a=1;a<arguments.length;a++)t[a-1]=arguments[a];c.push(new g(e,t)),1!==c.length||l||s(p)},g.prototype.run=function(){this.fun.apply(null,this.array)},n.title="browser",n.browser=!0,n.env={},n.argv=[],n.version="",n.versions={},n.on=v,n.addListener=v,n.once=v,n.off=v,n.removeListener=v,n.removeAllListeners=v,n.emit=v,n.prependListener=v,n.prependOnceListener=v,n.listeners=function(e){return[]},n.binding=function(e){throw new Error("process.binding is not supported")},n.cwd=function(){return"/"},n.chdir=function(e){throw new Error("process.chdir is not supported")},n.umask=function(){return 0}},7742(e,t,a){const{log:n}=a(7437);e.exports={fatal:(e,t=null)=>{n("FATAL",e,t)},error:(e,t=null)=>{n("ERROR",e,t)},warn:(e,t=null)=>{n("WARN",e,t)},info:(e,t=null)=>{n("INFO",e,t)},debug:(e,t=null)=>{n("DEBUG",e,t)},trace:(e,t=null)=>{n("TRACE",e,t)}}},7437(e,t,a){const{levels:n,colors:i,logLevel:r,stderrLevels:s}=a(4812);n[r];e.exports={log:(e,t,a)=>{false}}},4812(e,t,a){const n=a(5606).env.LOG_LEVEL||"INFO",i={FATAL:0,ERROR:1,WARN:2,INFO:3,DEBUG:4,TRACE:5},r=new Set;
1Object.keys(i).forEach(e=>{i[e]<i.INFO&&r.add(e)});e.exports={levels:i,logLevel:n,stderrLevels:r,colors:{FATAL:"red bold",ERROR:"red",WARN:"yellow",INFO:"green",DEBUG:"cyan",TRACE:"blue"}}}}]); 2//# sourceMappingURL=bundle.8056.d15634fd5791dbec3de1ee1d873d3b8c.js.map
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.