{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./Static/javascript/modules/shop-google-analytics.ts"],"names":[],"mappings":";QAAA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA;QACA,QAAQ,oBAAoB;QAC5B;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA,iBAAiB,4BAA4B;QAC7C;QACA;QACA,kBAAkB,2BAA2B;QAC7C;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;;QAEA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;;;QAGA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA,0CAA0C,gCAAgC;QAC1E;QACA;;QAEA;QACA;QACA;QACA,wDAAwD,kBAAkB;QAC1E;QACA,iDAAiD,cAAc;QAC/D;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,yCAAyC,iCAAiC;QAC1E,gHAAgH,mBAAmB,EAAE;QACrI;QACA;;QAEA;QACA;QACA;QACA,2BAA2B,0BAA0B,EAAE;QACvD,iCAAiC,eAAe;QAChD;QACA;QACA;;QAEA;QACA,sDAAsD,+DAA+D;;QAErH;QACA;;QAEA;QACA;QACA;QACA;QACA,gBAAgB,uBAAuB;QACvC;;;QAGA;QACA;QACA;QACA;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtJA,gIAA6D;AAY7D,MAAM,CAAC,kCAAkC,GAAG,UAAU,OAAY,EAAE,OAAe,EAAE,SAAiB,EAAE,SAAiB,EAAE,YAAoB,EAAE,MAAc,EAAE,QAAgB;IAC5K,MAAc,CAAC,SAAS,GAAI,MAAc,CAAC,SAAS,IAAI,EAAE,CAAC;IAC3D,MAAc,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAE,uCAAuC;IAE7F,IAAI,GAAG,GAAG;QACN,OAAO,EAAE,aAAa;QACtB,WAAW,EACX;YACI,cAAc,EAAE,MAAM;YACtB,gBAAgB,EAAE,QAAQ;YAC1B,OAAO,EAAE;gBACL;oBACI,SAAS,EAAE,OAAO;oBAClB,WAAW,EAAE,SAAS;oBACtB,OAAO,EAAE,SAAS;oBAClB,eAAe,EAAE,YAAY;iBAChC;aACJ;SACJ;KACJ,CAAC;IAEF,OAAO,CAAC,GAAG,CAAC,qCAA8B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAE,CAAC,CAAC;IAChE,MAAc,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACxC,CAAC;AAED,SAAS,gCAAgC,CAAC,YAA4B,EAAE,MAAc,EAAE,QAAgB;IACnG,MAAc,CAAC,SAAS,GAAI,MAAc,CAAC,SAAS,IAAI,EAAE,CAAC;IAC3D,MAAc,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAE,uCAAuC;IAE7F,IAAI,KAAK,GAAG,YAAY,CAAC,YAAY,CAAC,CAAC;IACvC,IAAI,GAAG,GAAG;QACN,OAAO,EAAE,gBAAgB;QACzB,WAAW,EACX;YACI,cAAc,EAAE,MAAM;YACtB,gBAAgB,EAAE,QAAQ;YAC1B,OAAO,EAAE,KAAK;SACjB;KACJ,CAAC;IAEF,OAAO,CAAC,GAAG,CAAC,qCAA8B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAE,CAAC,CAAC;IAChE,MAAc,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACxC,CAAC;AAED,SAAS,YAAY,CAAC,KAAqB;IACvC,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;QAC3B,IAAI,WAAS,GAAG,EAAE,CAAC;QACnB,KAAK,CAAC,OAAO,CAAC,UAAC,IAAI,EAAE,KAAK;YAEtB,sDAAsD;YACtD,IAAI,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,kCAAkC,CAAC,CAAC;YAClE,IAAI,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,+BAA+B,CAAC,CAAC;YAChE,IAAI,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,kCAAkC,CAAC,CAAC;YACtE,IAAI,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,qCAAqC,CAAC,CAAC;YAE5E,2CAA2C;YAC3C,IAAI,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YACtC,CAAC,CAAC,SAAS,GAAG,KAAK,CAAC;YACpB,KAAK,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAEpD,IAAI,QAAQ,GAAG,WAAW,CAAC,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;YACnE,WAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC7B,CAAC,CACA;QACD,OAAO,WAAS,CAAC;KACpB;IACD,OAAO,EAAE,CAAC;AACd,CAAC;AAED,SAAS,WAAW,CAAC,OAAe,EAAE,SAAiB,EAAE,SAAiB,EAAE,YAAoB;IAC5F,IAAI,QAAQ,GAAG;QACX,SAAS,EAAE,OAAO;QAClB,WAAW,EAAE,SAAS;QACtB,OAAO,EAAE,SAAS;QAClB,eAAe,EAAE,YAAY;KAChC;IACD,OAAO,QAAQ,CAAC;AACpB,CAAC;AAED,SAAgB,uCAAuC,CAAC,eAAwB;IAC5E,IAAI,oBAAoB,GAAG,uBAAuB,CAAC,eAAe,CAAC,CAAC;IACpE,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,IAAI,QAAQ,GAAG,EAAE,CAAC;IAElB,IAAI,eAAe,EAAE;QACjB,MAAM,GAAG,eAAe,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC;QACxD,IAAM,aAAa,GAAG,eAAe,CAAC,aAAa,CAAC,+BAA+B,CAAC,CAAC;QACrF,IAAI,aAAa,EAAE;YACf,QAAQ,GAAI,aAA6B,CAAC,SAAS,CAAC;SACvD;KACJ;IAED,gCAAgC,CAAC,oBAAoB,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;AAC7E,CAAC;AAdD,0FAcC;AAED,SAAS,uBAAuB,CAAC,eAAwB;IACrD,IAAI,oBAAoB,GAAG,eAAe,CAAC,sBAAsB,CAAC,sBAAsB,CAAC,CAAC;IAC1F,IAAI,GAAG,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IAC3D,OAAO,GAAG,CAAC;AACf,CAAC;AAED,SAAS,uCAAuC,CAAC,wBAAiC;IAC9E,uCAAuC;IACvC,IAAM,YAAY,GAAG,qCAAe,EAAC,wBAAwB,CAAC,gBAAgB,CAAC,0CAA0C,CAAC,CAAC,CAAC;IAC5H,IAAI,MAAM,GAAG,wBAAwB,CAAC,YAAY,CAAC,sCAAsC,CAAC,CAAC;IAC3F,IAAI,QAAQ,GAAG,wBAAwB,CAAC,YAAY,CAAC,yCAAyC,CAAC,CAAC;IAChG,gCAAgC,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;AACrE,CAAC;AAED,SAAgB,wCAAwC;IACpD,+FAA+F;IAC/F,IAAM,yBAAyB,GAAG,qCAAe,EAAC,QAAQ,CAAC,gBAAgB,CAAC,qCAAqC,CAAC,CAAC,CAAC;IACpH,yBAAyB,CAAC,OAAO,CAAC,UAAC,OAAO,EAAE,KAAK;QAC7C,uCAAuC,CAAC,OAAO,CAAC;IACpD,CAAC,CAAC,CAAC;AACP,CAAC;AAND,4FAMC;AAED,SAAgB,qCAAqC;IACjD,IAAM,yBAAyB,GAAG,QAAQ,CAAC,aAAa,CAAC,6BAA6B,CAAC,CAAC;IACxF,IAAI,yBAAyB,EAAE;QAC3B,IAAM,YAAY,GAAG,qCAAe,EAAC,yBAAyB,CAAC,gBAAgB,CAAC,kCAAkC,CAAC,CAAC,CAAC;QACrH,IAAI,MAAM,GAAG,yBAAyB,CAAC,YAAY,CAAC,mCAAmC,CAAC,CAAC;QACzF,IAAI,QAAQ,GAAG,yBAAyB,CAAC,YAAY,CAAC,qCAAqC,CAAC,CAAC;QAC7F,gCAAgC,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;KACpE;AACL,CAAC;AARD,sFAQC;AAED,SAAgB,mCAAmC;IAC/C,IAAM,oBAAoB,GAAG,QAAQ,CAAC,aAAa,CAAC,uBAAuB,CAAC,CAAC;IAC7E,IAAI,oBAAoB,KAAK,IAAI;QAAE,OAAO;IAC1C,uCAAuC;IACvC,IAAI,SAAS,GAAG,oBAAoB,CAAC,gBAAgB,CAAC,2BAA2B,CAAC,CAAC;IACnF,IAAI,SAAS,KAAK,IAAI;QAAE,OAAO;IAC/B,IAAM,YAAY,GAAG,qCAAe,EAAC,oBAAoB,CAAC,gBAAgB,CAAC,2BAA2B,CAAC,CAAC,CAAC;IACzG,IAAI,YAAY,KAAK,IAAI,IAAI,YAAY,CAAC,MAAM,IAAI,CAAC;QAAE,OAAO;IAE9D,IAAI,MAAM,GAAG,aAAa,CAAC;IAC3B,IAAI,QAAQ,GAAG,aAAa,CAAC;IAC7B,gCAAgC,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;AACrE,CAAC;AAZD,kFAYC;AAED,MAAM,CAAC,wBAAwB,GAAG,UAAU,OAAY;IACpD,wBAAwB,CAAC,OAAO,CAAC,CAAC;AACtC,CAAC;AACD,SAAgB,wBAAwB,CAAC,OAAgB;IACpD,MAAc,CAAC,SAAS,GAAI,MAAc,CAAC,SAAS,IAAI,EAAE,CAAC;IAC3D,MAAc,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAE,uCAAuC;IAE7F,sDAAsD;IACtD,IAAI,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC,wBAAwB,CAAC,CAAC;IAC/D,IAAI,OAAO,GAAG,OAAO,CAAC,YAAY,CAAC,sBAAsB,CAAC,CAAC;IAC3D,IAAI,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC,wBAAwB,CAAC,CAAC;IAC/D,IAAI,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,2BAA2B,CAAC,CAAC;IACrE,IAAI,IAAI,GAAQ,WAAW,CAAC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,CAAC;IACxE,IAAI,UAAU,GAAG,SAAS,CAAC;IAC3B,IAAI,aAAa,GAAG,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAqB,CAAC;IAC1E,IAAI,aAAa,EAAE;QACf,IAAI,yBAAQ,IAAI,KAAE,UAAU,EAAE,aAAa,CAAC,KAAK,GAAE;QACnD,IAAI,KAAK,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC;QAClC,IAAI,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC7C,IAAI,KAAK,IAAI,QAAQ,EAAE;YACnB,UAAU,GAAG,CAAC,KAAK,GAAG,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;SAC9C;KACJ;IACD,IAAI,GAAG,GAAG;QACN,OAAO,EAAE,aAAa;QACtB,WAAW,EACX;YACI,UAAU,EAAE,KAAK;YACjB,OAAO,EAAE,UAAU;YACnB,OAAO,EAAE,CAAE,IAAI,CAAE;SACpB;KACJ,CAAC;IAEF,OAAO,CAAC,GAAG,CAAC,qCAA8B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAE,CAAC,CAAC;IAChE,MAAc,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACxC,CAAC;AAhCD,4DAgCC","file":"shop-google-analytics-bundle.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"shop-google-analytics\": 0\n \t};\n\n \tvar deferredModules = [];\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 \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([49,\"common\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","import { object } from \"prop-types\";\r\nimport { nodeListToArray } from \"../helpers/nodeListToArray\";\r\n\r\nexport { }\r\n\r\n\r\ndeclare global {\r\n interface Window {\r\n sendSelectItemAnalyticsScriptToGTM: (element: any, itemKey: string, itemTitle: string, itemPrice: string, itemCategory: string, listId: string, listName: string) => void;\r\n sendAddToCartScriptToGTM: (element: any) => void;\r\n }\r\n}\r\n\r\nwindow.sendSelectItemAnalyticsScriptToGTM = function (element: any, itemKey: string, itemTitle: string, itemPrice: string, itemCategory: string, listId: string, listName: string) {\r\n (window as any).dataLayer = (window as any).dataLayer || [];\r\n (window as any).dataLayer.push({ ecommerce: null }); // Clear the previous ecommerce object.\r\n\r\n var tag = {\r\n 'event': 'select_item',\r\n 'ecommerce':\r\n {\r\n 'item_list_id': listId,\r\n 'item_list_name': listName,\r\n 'items': [\r\n {\r\n 'item_id': itemKey,\r\n 'item_name': itemTitle,\r\n 'price': itemPrice,\r\n 'item_category': itemCategory\r\n }\r\n ]\r\n }\r\n };\r\n\r\n console.log(`Sending tag to data layer: ${JSON.stringify(tag)}`);\r\n (window as any).dataLayer.push(tag);\r\n}\r\n\r\nfunction sendViewListAnalyticsScriptToGTM(itemElements: Array, listId: string, listName: string) {\r\n (window as any).dataLayer = (window as any).dataLayer || [];\r\n (window as any).dataLayer.push({ ecommerce: null }); // Clear the previous ecommerce object.\r\n\r\n let items = getListItems(itemElements); \r\n let tag = {\r\n 'event': 'view_item_list',\r\n 'ecommerce':\r\n {\r\n 'item_list_id': listId,\r\n 'item_list_name': listName,\r\n 'items': items\r\n }\r\n };\r\n\r\n console.log(`Sending tag to data layer: ${JSON.stringify(tag)}`);\r\n (window as any).dataLayer.push(tag);\r\n}\r\n\r\nfunction getListItems(items: Array) {\r\n if (items && items.length > 0) {\r\n let listItems = [];\r\n items.forEach((item, index) =>\r\n {\r\n //get info about each product item via data attributes\r\n var title = item.getAttribute('data-product-carousel-item-title');\r\n var itemId = item.getAttribute('data-product-carousel-item-id');\r\n var itemPrice = item.getAttribute('data-product-carousel-item-price');\r\n var itemCategory = item.getAttribute('data-product-carousel-item-category');\r\n\r\n //Parse out additional HTML from the title.\r\n var e = document.createElement('div');\r\n e.innerHTML = title;\r\n title = e.textContent ? e.textContent : e.innerText;\r\n\r\n let listItem = getListItem(itemId, title, itemPrice, itemCategory);\r\n listItems.push(listItem);\r\n }\r\n )\r\n return listItems;\r\n }\r\n return [];\r\n}\r\n\r\nfunction getListItem(itemKey: string, itemTitle: string, itemPrice: string, itemCategory: string) {\r\n let listItem = {\r\n 'item_id': itemKey,\r\n 'item_name': itemTitle,\r\n 'price': itemPrice,\r\n 'item_category': itemCategory\r\n }\r\n return listItem;\r\n}\r\n\r\nexport function sendVisibleCarouselItemsListScriptToGTM(carouselElement: Element) {\r\n let visibleCarouselItems = getVisibleCarouselItems(carouselElement);\r\n let listId = \"\";\r\n let listName = \"\";\r\n\r\n if (carouselElement) {\r\n listId = carouselElement.getAttribute('data-unique-id');\r\n const carouselTitle = carouselElement.querySelector('[data-product-carousel-title]');\r\n if (carouselTitle) {\r\n listName = (carouselTitle as HTMLElement).innerText;\r\n }\r\n }\r\n\r\n sendViewListAnalyticsScriptToGTM(visibleCarouselItems, listId, listName);\r\n}\r\n\r\nfunction getVisibleCarouselItems(carouselElement: Element) : Array {\r\n let visibleCarouselItems = carouselElement.getElementsByClassName(\"swiper-slide-visible\");\r\n let arr = Array.prototype.slice.call(visibleCarouselItems);\r\n return arr;\r\n}\r\n\r\nfunction sendProductGroupBlockListingScriptToGTM(productGroupBlockElement: Element) {\r\n //Get all product elements in the list.\r\n const itemElements = nodeListToArray(productGroupBlockElement.querySelectorAll('[data-product-group-block-vertical-item]'));\r\n let listId = productGroupBlockElement.getAttribute('data-product-group-block-vertical-id');\r\n let listName = productGroupBlockElement.getAttribute('data-product-group-block-vertical-title');\r\n sendViewListAnalyticsScriptToGTM(itemElements, listId, listName);\r\n}\r\n\r\nexport function sendProductGroupBlockListingScriptsToGTM() {\r\n //Send 'view item list' event to GTM for each vertical product group block listing on the page.\r\n const productGroupBlockElements = nodeListToArray(document.querySelectorAll('[data-product-group-block-vertical]'));\r\n productGroupBlockElements.forEach((element, index) => {\r\n sendProductGroupBlockListingScriptToGTM(element)\r\n });\r\n}\r\n\r\nexport function sendOnlineCourseSeriesListScriptToGTM() {\r\n const onlineCourseSeriesElement = document.querySelector('[data-online-course-series]');\r\n if (onlineCourseSeriesElement) {\r\n const itemElements = nodeListToArray(onlineCourseSeriesElement.querySelectorAll('[data-online-course-series-item]'));\r\n let listId = onlineCourseSeriesElement.getAttribute('data-online-course-series-list-id');\r\n let listName = onlineCourseSeriesElement.getAttribute('data-online-course-series-list-name');\r\n sendViewListAnalyticsScriptToGTM(itemElements, listId, listName);\r\n }\r\n}\r\n\r\nexport function sendShopSearchResultListScriptToGTM() {\r\n const searchResultsElement = document.querySelector('[data-search-results]');\r\n if (searchResultsElement === null) return;\r\n //Get all product elements in the list.\r\n var shopItems = searchResultsElement.querySelectorAll('[data-shop-search-result]');\r\n if (shopItems === null) return;\r\n const itemElements = nodeListToArray(searchResultsElement.querySelectorAll('[data-shop-search-result]'));\r\n if (itemElements === null || itemElements.length == 0) return;\r\n\r\n let listId = \"Search Page\";\r\n let listName = \"Search Page\";\r\n sendViewListAnalyticsScriptToGTM(itemElements, listId, listName);\r\n}\r\n\r\nwindow.sendAddToCartScriptToGTM = function (element: any) {\r\n sendAddToCartScriptToGTM(element);\r\n}\r\nexport function sendAddToCartScriptToGTM(element: Element) {\r\n (window as any).dataLayer = (window as any).dataLayer || [];\r\n (window as any).dataLayer.push({ ecommerce: null }); // Clear the previous ecommerce object.\r\n\r\n //get info about each product item via data attributes\r\n var itemTitle = element.getAttribute('data-add-to-cart-title');\r\n var itemKey = element.getAttribute('data-add-to-cart-key');\r\n var itemPrice = element.getAttribute('data-add-to-cart-price');\r\n var itemCategory = element.getAttribute('data-add-to-cart-category');\r\n var item: any = getListItem(itemKey, itemTitle, itemPrice, itemCategory)\r\n var totalPrice = itemPrice;\r\n var quantityInput = document.getElementById('amount') as HTMLInputElement;\r\n if (quantityInput) {\r\n item = { ...item, 'quantity': quantityInput.value }\r\n let price = parseFloat(itemPrice);\r\n let quantity = parseInt(quantityInput.value);\r\n if (price && quantity) {\r\n totalPrice = (price * quantity).toFixed(2);\r\n }\r\n }\r\n let tag = {\r\n 'event': 'add_to_cart',\r\n 'ecommerce':\r\n {\r\n 'currency': 'USD',\r\n 'value': totalPrice,\r\n 'items': [ item ]\r\n }\r\n };\r\n\r\n console.log(`Sending tag to data layer: ${JSON.stringify(tag)}`);\r\n (window as any).dataLayer.push(tag);\r\n}"],"sourceRoot":""}