{"version":3,"file":"checkout-google-analytics-e5d3582b.js","sources":["../../../client/src/javascripts/customer_pages/_libs/analytics/events/begin-checkout.js","../../../client/src/javascripts/customer_pages/_libs/analytics/checkout-google-analytics.js"],"sourcesContent":["import { GoogleAnalytics } from '../google-analytics';\nimport Store from '../../../_utils/tools/store';\nimport { CartItemsAnalyticsEvents } from '../../../_cart/cart-items-change-events';\n\nexport class GoogleAnalyticsBeginCheckoutEvent extends GoogleAnalytics {\n  items() {\n    return (this.dataLayer.items || []).map(item =>\n      this.mapToItemEventKeys(item)\n    );\n  }\n\n  beginCheckoutParams() {\n    const defaultParams = {\n      currency: this.currency(),\n      transaction_id: this.transactionId(),\n    };\n\n    if (this.modifiedCart()) {\n      return {\n        ...defaultParams,\n        ...this.updatedCartContents(),\n      };\n    }\n\n    return {\n      ...defaultParams,\n      value: this.orderValue(),\n      items: this.items(),\n    };\n  }\n\n  sendEvent() {\n    if (this.analyticsEnabled() && this.dataLayerEnabled()) {\n      if (Store.isWalmart()) {\n        // Capture cart as a purchase event for analytics before redirect to Walmart\n        super.sendEvent('purchase', this.beginCheckoutParams());\n        return;\n      }\n\n      super.sendEvent('begin_checkout', this.beginCheckoutParams());\n    }\n  }\n\n  updatedCartContents() {\n    const cartUpdates = window.dataLayer\n      .filter(layer => layer.event === CartItemsAnalyticsEvents.UPDATED)\n      .pop();\n\n    return {\n      items: cartUpdates.items.map(item => this.mapToItemEventKeys(item)),\n      value: Number(this.stripCurrencySymbol(cartUpdates.cart_value)),\n    };\n  }\n\n  modifiedCart() {\n    return window.dataLayer.some(\n      layer =>\n        layer.event === CartItemsAnalyticsEvents.UPDATED && layer.cart_value\n    );\n  }\n\n  mapToItemEventKeys(item) {\n    const {\n      catalog_item_id,\n      id,\n      category,\n      product_title,\n      quantity,\n      price,\n      total_price,\n      delivery_option,\n    } = item;\n\n    return {\n      item_id: id,\n      item_name: product_title,\n      affiliation: window.location.host,\n      catalog_item_id: catalog_item_id,\n      item_category: category?.title || category,\n      price: Number(this.stripCurrencySymbol(price)),\n      quantity: Number(quantity),\n      total_price: Number(this.stripCurrencySymbol(total_price)),\n      delivery_option: delivery_option,\n    };\n  }\n}\n","import { builderDispatch, WebUI } from '../../_utils/ui';\nimport { GoogleAnalyticsBeginCheckoutEvent } from './events/begin-checkout';\nimport { GoogleAnalytics } from './google-analytics';\n\n\nconst AnalyticsHandler = {\n  handleAnalyticsEvent(payload) {\n    switch (payload.type) {\n      case WebUI.Analytics.SEND:\n        this.handleSendEvent(payload);\n        break;\n\n      case WebUI.Analytics.BEGIN_CHECKOUT_EVENT:\n        this.handleBeginCheckoutEvent();\n        break;\n    }\n  },\n\n  handleSendEvent({ eventCategory, eventAction, eventLabel, eventValue }) {\n    new GoogleAnalytics().sendEvent(eventAction, {\n      eventCategory,\n      eventAction,\n      eventLabel,\n      eventValue: eventValue || 0,\n    });\n  },\n\n  handleBeginCheckoutEvent() {\n    new GoogleAnalyticsBeginCheckoutEvent().sendEvent();\n  }\n};\n\nexport default AnalyticsHandler;\n"],"names":["GoogleAnalyticsBeginCheckoutEvent","GoogleAnalytics","item","defaultParams","Store","cartUpdates","layer","CartItemsAnalyticsEvents","catalog_item_id","id","category","product_title","quantity","price","total_price","delivery_option","AnalyticsHandler","payload","WebUI","eventCategory","eventAction","eventLabel","eventValue"],"mappings":"2LAIO,MAAMA,UAA0CC,CAAgB,CACrE,OAAQ,CACN,OAAQ,KAAK,UAAU,OAAS,CAAE,GAAE,IAAIC,GACtC,KAAK,mBAAmBA,CAAI,CAClC,CACG,CAED,qBAAsB,CACpB,MAAMC,EAAgB,CACpB,SAAU,KAAK,SAAU,EACzB,eAAgB,KAAK,cAAe,CAC1C,EAEI,OAAI,KAAK,eACA,CACL,GAAGA,EACH,GAAG,KAAK,oBAAqB,CACrC,EAGW,CACL,GAAGA,EACH,MAAO,KAAK,WAAY,EACxB,MAAO,KAAK,MAAO,CACzB,CACG,CAED,WAAY,CACV,GAAI,KAAK,iBAAgB,GAAM,KAAK,iBAAgB,EAAI,CACtD,GAAIC,EAAM,YAAa,CAErB,MAAM,UAAU,WAAY,KAAK,oBAAqB,CAAA,EACtD,MACD,CAED,MAAM,UAAU,iBAAkB,KAAK,oBAAqB,CAAA,CAC7D,CACF,CAED,qBAAsB,CACpB,MAAMC,EAAc,OAAO,UACxB,OAAOC,GAASA,EAAM,QAAUC,EAAyB,OAAO,EAChE,MAEH,MAAO,CACL,MAAOF,EAAY,MAAM,IAAIH,GAAQ,KAAK,mBAAmBA,CAAI,CAAC,EAClE,MAAO,OAAO,KAAK,oBAAoBG,EAAY,UAAU,CAAC,CACpE,CACG,CAED,cAAe,CACb,OAAO,OAAO,UAAU,KACtBC,GACEA,EAAM,QAAUC,EAAyB,SAAWD,EAAM,UAClE,CACG,CAED,mBAAmBJ,EAAM,CACvB,KAAM,CACJ,gBAAAM,EACA,GAAAC,EACA,SAAAC,EACA,cAAAC,EACA,SAAAC,EACA,MAAAC,EACA,YAAAC,EACA,gBAAAC,CACD,EAAGb,EAEJ,MAAO,CACL,QAASO,EACT,UAAWE,EACX,YAAa,OAAO,SAAS,KAC7B,gBAAiBH,EACjB,eAAeE,GAAA,YAAAA,EAAU,QAASA,EAClC,MAAO,OAAO,KAAK,oBAAoBG,CAAK,CAAC,EAC7C,SAAU,OAAOD,CAAQ,EACzB,YAAa,OAAO,KAAK,oBAAoBE,CAAW,CAAC,EACzD,gBAAiBC,CACvB,CACG,CACH,CChFK,MAACC,EAAmB,CACvB,qBAAqBC,EAAS,CAC5B,OAAQA,EAAQ,KAAI,CAClB,KAAKC,EAAM,UAAU,KACnB,KAAK,gBAAgBD,CAAO,EAC5B,MAEF,KAAKC,EAAM,UAAU,qBACnB,KAAK,yBAAwB,EAC7B,KACH,CACF,EAED,gBAAgB,CAAE,cAAAC,EAAe,YAAAC,EAAa,WAAAC,EAAY,WAAAC,CAAU,EAAI,CACtE,IAAIrB,EAAe,EAAG,UAAUmB,EAAa,CAC3C,cAAAD,EACA,YAAAC,EACA,WAAAC,EACA,WAAYC,GAAc,CAChC,CAAK,CACF,EAED,0BAA2B,CACzB,IAAItB,EAAiC,EAAG,WACzC,CACH"}