{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./cartridges/plugin_gtm/cartridge/client/default/js/tagmanager.js","webpack:///./cartridges/plugin_gtm/cartridge/client/default/js/tagmanager/tagmanager.js","webpack:///./cartridges/storefront-reference-architecture/cartridges/app_storefront_base/cartridge/client/default/js/util.js"],"names":["processInclude","require","tagmanager","$","document","ready","events","homeshow","productshow","productshowincategory","searchshow","window","gtmEnabled","on","$ele","closest","gtmdata","data","parseJSON","attr","productClick","cartshow","checkoutbegin","e","preventDefault","formValid","checkValidity","url","city","val","state","addressTwo","zipCode","ajax","type","dataType","success","obj","locale","queryString","action","__gtmEvents","dataLayer","push","orderconfirm","all","hasClass","gtmData","gtmGA4Data","qty","find","addToCart","gtmGA4Enabled","addToCartGA4","removeFromCart","removeFromCartGA4","response","$productContainer","JSON","stringify","product","productObject","ecommerce","click","products","quantity","quantObj","add","extend","cartInfo","newProductObjects","map","item","cart_id","date_created_cart","date_update_cart","total_quantity_cart","total_price_cart","itemInfo","currencyCode","Number","price","toFixed","currency","remove","pushEvent","event","eventCategory","eventAction","eventLabel","pageAction","gtmEventLoader","ajaxSuccess","request","settings","dataTypes","indexOf","Array","isArray","forEach","gtmEvent","removeEventListener","console","error","readyState","addEventListener","customData","querySelector","querySelectorAll","getAttribute","pageGtmData","location","href","prodGtmData","dataset","parse","prodTileGtmData","prodTileDataList","gtmdatatile","trackButtons","button","buttonGtmData","target","innerText","trackLinks","link","linkGtmData","parentElement","productName","module","exports","include","Object","keys","key"],"mappings":"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","file":"default/js/tagmanager.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"./cartridges/plugin_gtm/cartridge/client/default/js/tagmanager.js\");\n","'use strict'\n\nconst processInclude = require(\"base/js/util\");\nconst tagmanager = require(\"./tagmanager/tagmanager\");\n\n$(document).ready(() => {\n processInclude(tagmanager);\n});","'use strict';\n\n/**\n * Events are divided up by name space so only the\n * events that are needed are initialized.\n */\nvar events = {\n homeshow: function () { },\n productshow: function () { },\n productshowincategory: function () { },\n searchshow: function () {\n if (window.gtmEnabled) {\n $('body').on('click', '.product .image-container a:not(.quickview), .product .pdp-link a', function () {\n var $ele = $(this).closest('.product');\n var gtmdata = $ele.data('gtmdata') || $.parseJSON($ele.attr('data-gtmdata'));\n productClick(gtmdata);\n });\n }\n },\n cartshow: function () { },\n checkoutbegin: function () { \n if($('.submit_shipping_url')){\n $('.submit-shipping').on('click', function (e) {\n e.preventDefault();\n var formValid = $(\"form.shipping-form\")[0].checkValidity();\n \n if(formValid){\n var url = $('.submit_shipping_url').data('url');\n var city = $(\".shippingAddressCity\").val();\n var state = $(\".shippingState\").val();\n var addressTwo = $(\".shippingAddressTwo\").val();\n var zipCode = $(\".shippingZipCode\").val();\n\n\n $.ajax({\n type: 'GET',\n url: url,\n data: {city: city, state: state, addressTwo: addressTwo, zipCode: zipCode},\n dataType: 'json',\n success: function(data) {\n var obj = data;\n delete obj.locale;\n delete obj.queryString;\n delete obj.action;\n delete obj.formValid;\n delete obj.__gtmEvents;\n dataLayer.push(obj);\n }\n });\n }\n });\n }\n },\n orderconfirm: function () { },\n // events that should happen on every page\n all: function () {\n // Add to Cart\n $('body').on('click', '.add-to-cart, .add-to-cart-global', function () {\n if (!$(this).hasClass('isDisabled') && !$(this).hasClass('disabled')) {\n var $ele = $(this);\n var gtmData = $ele.data('gtmdata') || $.parseJSON($ele.attr('data-gtmdata'));\n var gtmGA4Data = $ele.data('gtmga4data') || $.parseJSON($ele.attr('data-gtmga4data'));\n var qty = $ele.closest('.product-wrapper').find('.quantity-select').val();\n qty = qty ? qty : 1;\n\n if (window.gtmEnabled) {\n addToCart(gtmData, qty);\n }\n\n if (window.gtmGA4Enabled) {\n addToCartGA4(gtmGA4Data, qty);\n }\n }\n });\n\n // Remove from Cart\n $('body').on('click', '.remove-product', function () {\n var $ele = $(this);\n var gtmData = $ele.data('gtmdata') || $.parseJSON($ele.attr('data-gtmdata'));\n var gtmGA4Data = $ele.data('gtmga4data') || $.parseJSON($ele.attr('data-gtmga4data'));\n var qty = $ele.closest('.card').find('select.quantity').val();\n qty = qty ? qty : 1;\n\n $('body').on('click', '#removeProductModal .cart-delete-confirmation-btn', function () {\n if (window.gtmEnabled) {\n removeFromCart(gtmData, qty);\n }\n\n if (window.gtmGA4Enabled) {\n removeFromCartGA4(gtmGA4Data, qty);\n }\n });\n });\n\n // Update GTM data attribute\n $('body').on('product:updateAddToCart', function (e, response) {\n $('button.add-to-cart, button.add-to-cart-global', response.$productContainer)\n .attr('data-gtmdata', JSON.stringify(response.product.gtmData))\n .attr('data-gtmga4data', JSON.stringify(response.product.gtmGA4Data));\n });\n }\n};\n\n/**\n * @param {String} productId The product ID\n * @description gets the data for a product click\n */\nfunction productClick(productObject) {\n var obj = {\n 'event': 'productClick',\n 'ecommerce': {\n 'click': {\n 'actionField': { 'list': 'Search Results' },\n 'products': []\n }\n }\n };\n obj.ecommerce.click.products.push(productObject);\n dataLayer.push(obj);\n}\n\n/**\n * @param productId\n * @description Click event for add product to cart\n */\nfunction addToCart(productObject, quantity) {\n var quantObj = { 'quantity': quantity },\n obj = {\n 'event': 'addToCart',\n 'ecommerce': {\n 'add': {\n 'products': []\n }\n }\n };\n obj.ecommerce.add.products.push($.extend(productObject, quantObj));\n\n // dataLayer.push({ ecommerce: null }); // Clear previous ecommerce object to prevent events affecting one another\n dataLayer.push(obj);\n}\n\n/**\n * @param productId\n * @description Click event for add product to cart\n */\nfunction addToCartGA4(productObject, quantity) {\n var quantObj = { quantity: quantity };\n let cartInfo;\n const newProductObjects = [$.extend(productObject, quantObj)].map(item => {\n cartInfo = {\n cart_id: item.cart_id,\n date_created_cart: item.date_created_cart,\n date_update_cart: item.date_update_cart,\n total_quantity_cart: item.total_quantity_cart,\n total_price_cart: item.total_price_cart,\n };\n const itemInfo = item;\n delete itemInfo.cart_id;\n delete itemInfo.currencyCode;\n delete itemInfo.date_created_cart;\n delete itemInfo.date_update_cart;\n delete itemInfo.total_price_cart;\n delete itemInfo.total_quantity_cart;\n return itemInfo;\n });\n var obj = {\n 'event': 'add_to_cart',\n 'ecommerce': {\n ...cartInfo,\n 'items': newProductObjects,\n 'value': (Number(productObject.price) * Number(quantity)).toFixed(2),\n 'currency': productObject.currency\n }\n };\n\n // dataLayer.push({ ecommerce: null }); // Clear previous ecommerce object to prevent events affecting one another\n dataLayer.push(obj);\n}\n\n/**\n * @function removeFromCart\n * @description Click event for remove product from cart\n */\nfunction removeFromCart(productObject, quantity) {\n var quantObj = { 'quantity': quantity };\n var obj = {\n 'event': 'removeFromCart',\n 'ecommerce': {\n 'remove': {\n 'products': []\n }\n }\n };\n obj.ecommerce.remove.products.push($.extend(productObject, quantObj));\n\n // dataLayer.push({ ecommerce: null }); // Clear previous ecommerce object to prevent events affecting one another\n dataLayer.push(obj);\n}\n\n/**\n * @function removeFromCartGA4\n * @description Click event for remove product from cart\n */\nfunction removeFromCartGA4(productObject, quantity) {\n var quantObj = { quantity: quantity };\n let cartInfo;\n const newProductObjects = [$.extend(productObject, quantObj)].map(item => {\n cartInfo = {\n cart_id: item.cart_id,\n date_created_cart: item.date_created_cart,\n date_update_cart: item.date_update_cart,\n total_quantity_cart: item.total_quantity_cart,\n total_price_cart: item.total_price_cart,\n currencyCode: item.currencyCode,\n };\n const itemInfo = item;\n delete itemInfo.currencyCode;\n delete itemInfo.cart_id;\n delete itemInfo.date_created_cart;\n delete itemInfo.date_update_cart;\n delete itemInfo.total_quantity_cart;\n delete itemInfo.total_price_cart;\n return itemInfo;\n });\n var obj = {\n 'event': 'remove_from_cart',\n 'ecommerce': {\n ...cartInfo,\n 'currency': productObject.currency,\n 'items': newProductObjects,\n 'value': (Number(productObject.price) * Number(quantity)).toFixed(2),\n }\n };\n\n // dataLayer.push({ ecommerce: null }); // Clear previous ecommerce object to prevent events affecting one another\n dataLayer.push(obj);\n}\n\n/**\n * @function pushEvent\n * @description Convenience method for creating a click event.\n * @param {String} event\n * @param {String} eventCategory\n * @param {String} eventAction\n * @param {String} eventlabel\n */\nfunction pushEvent(event, eventCategory, eventAction, eventLabel) {\n dataLayer.push({\n 'event': event,\n 'eventCategory': eventCategory,\n 'eventAction': eventAction,\n 'eventLabel': eventLabel\n });\n}\n\n/**\n * @function init\n * @description Initialize the tag manager functionality\n * @param {String} nameSpace The current name space\n */\n$(document).ready(function () {\n if (pageAction && events[pageAction]) {\n events[pageAction]();\n }\n events.all();\n});\n\n/**\n * listener for ajax events\n */\nfunction gtmEventLoader() {\n try {\n $(document).ajaxSuccess(function (event, request, settings, data) {\n if (settings.dataTypes.indexOf('json') > -1) {\n if (data && '__gtmEvents' in data && Array.isArray(data.__gtmEvents)) {\n data.__gtmEvents.forEach(function gtmEvent(gtmEvent) {\n if (gtmEvent) {\n // dataLayer.push({ ecommerce: null }); // Clear previous ecommerce object to prevent events affecting one another\n dataLayer.push(gtmEvent);\n }\n });\n }\n }\n });\n document.removeEventListener('DOMContentLoaded', gtmEventLoader);\n } catch (e) {\n console.error(e);\n }\n}\n\n/**\n * setup ajax event listener\n */\nif (document.readyState === 'complete') {\n gtmEventLoader();\n} else {\n document.addEventListener('DOMContentLoaded', gtmEventLoader);\n}\n\n/*\n* Check for custom data attributes and add them to the dataLayer\n*/\nwindow.dataLayer = window.dataLayer || [];\n// Page view event\nlet customData = document.querySelector('[data-gtmpageview]') ? document.querySelectorAll('[data-gtmpageview]') : null;\nif (customData) {\n customData.forEach(function (data) {\n if (data.getAttribute('data-gtmpageview') !== 'null') {\n let pageGtmData = {\n 'event': 'gtm.pageView',\n 'pageURL': window.location.href,\n 'pageName': data.getAttribute('data-gtmpageview'),\n };\n window.dataLayer.push(pageGtmData);\n }\n });\n}\n\n// PDP VIEW event\nlet prodGtmData = document.querySelector('[data-gtmdata]');\nif (prodGtmData) {\n prodGtmData = prodGtmData ? prodGtmData.dataset.gtmdata : null;\n prodGtmData = JSON.parse(prodGtmData)\n prodGtmData.event = 'gtm.productView';\n window.dataLayer.push(prodGtmData);\n}\n\n// Product Tile View\nlet prodTileGtmData = document.querySelectorAll('[data-gtmdatatile]');\nlet prodTileDataList = [];\nif (prodTileGtmData) {\n prodTileGtmData.forEach(function (item) {\n item = item.dataset.gtmdatatile;\n item = JSON.parse(item)\n prodTileDataList.push(item);\n prodTileDataList.event = 'gtm.productTileView';\n });\n window.dataLayer.push(prodTileDataList);\n};\n\n// Buttons Click event\nlet trackButtons = document.querySelectorAll('button');\ntrackButtons.forEach(function (button) {\n button.addEventListener('click', function (e) {\n let buttonGtmData = {\n 'event': 'gtm.click',\n 'buttonText': e.target.innerText\n };\n window.dataLayer.push(buttonGtmData);\n }\n );\n})\n\n// Links Click event\nlet trackLinks = document.querySelectorAll('a');\ntrackLinks.forEach(function (link) {\n link.addEventListener('click', function (e) {\n let linkGtmData = {\n 'event': 'gtm.click',\n 'linkText': e.target.innerText,\n 'linkURL': e.target.href ? e.target.href : e.target.parentElement.href,\n };\n if (e.target.getAttribute('title')) {\n linkGtmData.productName = e.target.getAttribute('title');\n }\n window.dataLayer.push(linkGtmData);\n }\n );\n});\n","'use strict';\n\nmodule.exports = function (include) {\n if (typeof include === 'function') {\n include();\n } else if (typeof include === 'object') {\n Object.keys(include).forEach(function (key) {\n if (typeof include[key] === 'function') {\n include[key]();\n }\n });\n }\n};\n"],"sourceRoot":""}