{"version":3,"sources":["wwwroot/scripts/framework/gtm-promotions.js"],"names":["$","containers","fn","trackPromos","promos","this","find","map","$this","data","containerName","parent","closest","location","pathname","container","length","push","p","name","promo","id","creative","attr","split","pop","text","position","on","dataLayerManager","pushPromoClick","get","pushPromoViews","window","requestIdleCallback","jQuery"],"mappings":"CAAA,SAAAA,GACA,IAAAC,EAAA,GAEAD,EAAAE,GAAAC,YAAA,WACA,IAAAC,EAAAJ,EAAAK,MAAAC,KAAA,0DAAAC,KAAA,WACA,IAAAC,EAAAR,EAAAK,MACA,GAAAG,EAAAC,KAAA,gBACA,OAAA,KACAD,EAAAC,KAAA,gBAAA,GAGA,IAAAC,EAAAF,EAAAC,KAAA,SACAD,EAAAG,SAAAC,QAAA,wBAAAH,KAAA,kBACAD,EAAAI,QAAA,YAAAH,KAAA,QACAD,EAAAI,QAAA,oBAAA,kBACAJ,EAAAI,QAAA,sBAAAH,KAAA,gBACAD,EAAAI,QAAA,sBAAAH,KAAA,gBACAI,SAAAC,SAAA,QAEAC,EAAAd,EAAAS,GACAK,IACAd,EAAAS,GAAAK,EAAA,KAGAP,EAAAF,KAAA,OAAAU,QAAAR,EAAAI,QAAA,WAAAI,QACAD,EAAAE,KAAAT,GAMA,IAkBAU,EAlBAC,EAAAX,EAAAC,KAAA,eAAAD,EAAAG,SAAAC,QAAA,wBAAAH,KAAA,iBAUAW,EAAA,CACAC,GATAb,EAAAC,KAAA,SAUAU,KAAAA,EACAG,SATAd,EAAAC,KAAA,cACAD,EAAAF,KAAA,OAAAG,KAAA,QAAAD,EAAAF,KAAA,OAAAiB,KAAA,QAAA,IAAAC,MAAA,KAAAC,OACAjB,EAAAF,KAAA,OAAAiB,KAAA,QACAf,EAAAe,KAAA,QACAf,EAAAkB,OAMAC,SALAnB,EAAAC,KAAA,SAAAC,EAAA,IAAAK,EAAAC,QAeA,OANAE,EAIAE,EAAAZ,EAHAoB,GAAA,SAAA,WACAC,iBAAAC,eAAAZ,MAIAE,KACAW,MAEA3B,GAAAA,EAAAY,QACAa,iBAAAG,eAAA5B,IAGAJ,GAAA,WACAA,EAAA,iBAAA4B,GAAA,mBAAA,WACA3B,EAAA,GACAD,EAAAK,MAAAF,iBAGA8B,OAAAC,qBAAA,WACAlC,EAAA,YAAAG,oBArEA,CAwEAgC","file":"pixels.min.js","sourcesContent":["(function ($) {\n var containers = {};\n\n $.fn.trackPromos = function () {\n var promos = $(this).find('a[data-promo],[data-promo-name],[data-promo-section] a').map(function () {\n var $this = $(this);\n if ($this.data('promo-viewed'))\n return null;\n $this.data('promo-viewed', true);\n\n // Determine exact location by finding closest container and counting total global instances inside this container\n var containerName = $this.data('slot')\n || $this.parent().closest('[data-promo-section]').data('promo-section')\n || $this.closest('.smidgen').data('key')\n || ($this.closest('.results-header') && 'results-header')\n || $this.closest('[data-cms-content]').data('cms-content')\n || $this.closest('[data-cms-section]').data('cms-section')\n || location.pathname + '-slot';\n\n var container = containers[containerName];\n if (!container) {\n containers[containerName] = container = [];\n }\n\n if ($this.find('img').length || !$this.closest('.slides').length) {\n container.push($this);\n }\n\n // Name is generic section name, i.e. \"Coop-Home-Brands\"\n // this will be pulled from a container div's 'data-promo-section',\n // or can be overridden using 'data-promo-name' on the a tag\n var name = $this.data('promo-name') || $this.parent().closest('[data-promo-section]').data('promo-section'),\n // id is the specific promotion, i.e. 'coop-brand-Burton'\n id = $this.data('promo'),\n // creative is the content displayed to the user, typically an image filename or link text\n creative = $this.data('creative')\n || ($this.find('img').data('src') || $this.find('img').attr('src') || '').split('/').pop()\n || $this.find('img').attr('alt')\n || $this.attr('alt')\n || $this.text(),\n position = $this.data('slot') || (containerName + '-' + container.length),\n promo = {\n id: id,\n name: name,\n creative: creative,\n position: position\n };\n\n // Bind click event to push ecommerce promotionClick event to UGA\n (function ($el, p) {\n $el.on('click', function () {\n dataLayerManager.pushPromoClick(p);\n });\n })($this, promo);\n\n return promo;\n }).get();\n\n if (promos && promos.length)\n dataLayerManager.pushPromoViews(promos);\n };\n\n $(function () {\n $('#results-page').on('refresh.results', function () {\n containers = {};\n $(this).trackPromos();\n });\t\t\n\t\t\n window.requestIdleCallback(function() {\n $('#wrapper').trackPromos();\n });\n });\n})(jQuery);"]}