{"version":3,"sources":["wwwroot/scripts/libs/resize-sensor.js","wwwroot/scripts/libs/jquery.sticky-kit.min.js","wwwroot/scripts/components/product-thumb.js","wwwroot/scripts/components/sticky-extras.js","wwwroot/scripts/components/fixed-hero.js","wwwroot/scripts/components/grow-fade.js","wwwroot/scripts/components/mobile-sticky-navigation.js","wwwroot/scripts/templates/results/navigation.js","wwwroot/scripts/components/mobile-accordion.js","wwwroot/scripts/templates/results/mobile-navigation.js","wwwroot/scripts/templates/results/common.js","wwwroot/scripts/events/results-events.js","wwwroot/scripts/components/recently-viewed.js"],"names":["this","ResizeSensor","element","callback","EventQueue","i","j","q","add","ev","push","call","length","attachResizeEvent","resized","resizedAttached","resizeSensor","document","createElement","className","style","styleChild","cssText","innerHTML","appendChild","fixed","absolute","prop","currentStyle","window","getComputedStyle","getPropertyValue","position","lastWidth","lastHeight","expand","childNodes","expandChild","shrink","reset","width","offsetWidth","height","offsetHeight","scrollLeft","scrollWidth","scrollTop","scrollHeight","changed","addEvent","el","name","cb","attachEvent","addEventListener","Object","prototype","toString","jQuery","Elements","k","e","fn","stick_in_parent","d","v","y","n","p","h","C","s","G","H","sticky_class","inner_scrolling","recalc_every","parent","offset_top","spacer","bottoming","a","z","D","t","r","E","u","F","m","A","c","f","B","w","x","g","b","data","closest","css","l","parseInt","offset","top","insertAfter","detach","bottom","removeClass","outerHeight","outerWidth","display","vertical-align","float","trigger","Math","max","min","addClass","after","append","off","body","removeData","remove","on","setTimeout","$","selectors","evo","$swatch","find","attr","$this","imgPath","imagePathMatch","match","loadSticky","resizeTimer","$stickyElement","isSticky","detectSticky","mq","screenSmMin","each","stickyOffset","clearTimeout","Modernizr","touch","$window","fixedHero","args","options","isFixed","$heroImg","headerHeight","growFade","$heroImage","heroHeight","opacityDivisor","scaleDivisor","extend","thisScrollTop","opacity","transform","mobileStickyNav","stickyNav","isOffCanvas","navOffset","navStickyPoint","winWidth","prevScrollPosition","currentScrollPosition","storedURL","location","href","getCurrentUrl","substr","origin","scrollManager","that","scrollInfo","recordScrollPosition","$link","$scrollCapture","id","currentUrl","restoreScrollForAction","$newScrollCapture","size","scrollTopDiff","isMobile","scrollBy","get","page","scrollTo","restoreScrollForHistoryChange","url","indexOfPipes","lastIndexOf","indexOfExclamation","indexOf","rawScrollValue","substring","isNaN","navigationManager","resultsLinkStart","exec","currentRequest","isResultsUrl","navigate","abort","done","response","$response","$newPage","addBack","html","text","$resources","children","always","openAccordions","openViewMoreLinks","sessionStorage","getItem","next","show","updateSortLabel","dataLayerManager","event","title","sanitizeUrl","is","preventDefault","history","pushState","$sortBtnLabel","$sortSelect","blur","val","toggleClass","openedFacets","map","join","setItem","mobileAccordion","selector","contentSelector","desktopAccordion","slideToggle","stopImmediatePropagation","clickEvent","$resultsPage","bindShopLandingAccordion","oldResultsCount","$resultsCount","newCount","hasClass","animate","Counter","duration","easing","step","now","ceil","brandLinksViewMore","scrollToID","speed","$productPageId","pushProductClick","tracking","setCategory","setActions","o","bindTracking","STORAGE_KEY","recentlyViewedProductPages","storage","$container","productPageId","dataLoadUrl","isResultsPage","productPagesToShow","slice","unshift","splice","ajax","cache","param","ProductPageIds","method","isCanadaMode","includes","minis","recentlyViewedProduct","RelativePath","ImageUrl","Name","ProductId","impressions","brand","Brand","isOutlet","IsOutlet","marketingPrice","MarketingPrice","price","Price","Minimum","category","CoreTaxonomyNodePath","_uniqueId","pushImpressions","fail","console","warn"],"mappings":"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","file":"results.min.js","sourcesContent":["/**\n * Copyright Marc J. Schmidt. See the LICENSE file at the top-level\n * directory of this distribution and at\n * https://github.com/marcj/css-element-queries/blob/master/LICENSE.\n */\n;\n(function () {\n /**\n * Class for dimension change detection.\n *\n * @param {Element|Element[]|Elements|jQuery} element\n * @param {Function} callback\n *\n * @constructor\n */\n this.ResizeSensor = function (element, callback) {\n /**\n *\n * @constructor\n */\n function EventQueue() {\n this.q = [];\n this.add = function (ev) {\n this.q.push(ev);\n };\n\n var i, j;\n this.call = function () {\n for (i = 0, j = this.q.length; i < j; i++) {\n this.q[i].call();\n }\n };\n }\n\n /**\n * @param {HTMLElement} element\n * @param {String} prop\n * @returns {String|Number}\n */\n function getComputedStyle(element, prop) {\n if (element.currentStyle) {\n return element.currentStyle[prop];\n } else if (window.getComputedStyle) {\n return window.getComputedStyle(element, null).getPropertyValue(prop);\n } else {\n return element.style[prop];\n }\n }\n\n /**\n *\n * @param {HTMLElement} element\n * @param {Function} resized\n */\n function attachResizeEvent(element, resized) {\n if (!element.resizedAttached) {\n element.resizedAttached = new EventQueue();\n element.resizedAttached.add(resized);\n } else if (element.resizedAttached) {\n element.resizedAttached.add(resized);\n return;\n }\n\n element.resizeSensor = document.createElement('div');\n element.resizeSensor.className = 'resize-sensor';\n var style = 'position: absolute; left: 0; top: 0; right: 0; bottom: 0; overflow: scroll; z-index: -1; visibility: hidden;';\n var styleChild = 'position: absolute; left: 0; top: 0;';\n\n element.resizeSensor.style.cssText = style;\n element.resizeSensor.innerHTML =\n '
' +\n '
' +\n '
' +\n '
' +\n '
' +\n '
';\n element.appendChild(element.resizeSensor);\n\n if (!{ fixed: 1, absolute: 1 }[getComputedStyle(element, 'position')]) {\n element.style.position = 'relative';\n }\n\n var expand = element.resizeSensor.childNodes[0];\n var expandChild = expand.childNodes[0];\n var shrink = element.resizeSensor.childNodes[1];\n var shrinkChild = shrink.childNodes[0];\n\n var lastWidth, lastHeight;\n\n var reset = function () {\n expandChild.style.width = expand.offsetWidth + 10 + 'px';\n expandChild.style.height = expand.offsetHeight + 10 + 'px';\n expand.scrollLeft = expand.scrollWidth;\n expand.scrollTop = expand.scrollHeight;\n shrink.scrollLeft = shrink.scrollWidth;\n shrink.scrollTop = shrink.scrollHeight;\n lastWidth = element.offsetWidth;\n lastHeight = element.offsetHeight;\n };\n\n reset();\n\n var changed = function () {\n element.resizedAttached.call();\n };\n\n var addEvent = function (el, name, cb) {\n if (el.attachEvent) {\n el.attachEvent('on' + name, cb);\n } else {\n el.addEventListener(name, cb);\n }\n };\n\n addEvent(expand, 'scroll', function () {\n if (element.offsetWidth > lastWidth || element.offsetHeight > lastHeight) {\n changed();\n }\n reset();\n });\n\n addEvent(shrink, 'scroll', function () {\n if (element.offsetWidth < lastWidth || element.offsetHeight < lastHeight) {\n changed();\n }\n reset();\n });\n }\n\n if (\"[object Array]\" === Object.prototype.toString.call(element)\n || ('undefined' !== typeof jQuery && element instanceof jQuery) //jquery\n || ('undefined' !== typeof Elements && element instanceof Elements) //mootools\n ) {\n var i = 0, j = element.length;\n for (; i < j; i++) {\n attachResizeEvent(element[i], callback);\n }\n } else {\n attachResizeEvent(element, callback);\n }\n }\n})();","/*\n Sticky-kit v1.1.1 | WTFPL | Leaf Corcoran 2014 | http://leafo.net\n*/\n(function(){var k,e;k=this.jQuery||window.jQuery;e=k(window);k.fn.stick_in_parent=function(d){var v,y,n,p,h,C,s,G,q,H;null==d&&(d={});s=d.sticky_class;y=d.inner_scrolling;C=d.recalc_every;h=d.parent;p=d.offset_top;n=d.spacer;v=d.bottoming;null==p&&(p=0);null==h&&(h=void 0);null==y&&(y=!0);null==s&&(s=\"is_stuck\");null==v&&(v=!0);G=function(a,d,q,z,D,t,r,E){var u,F,m,A,c,f,B,w,x,g,b;if(!a.data(\"sticky_kit\")){a.data(\"sticky_kit\",!0);f=a.parent();null!=h&&(f=f.closest(h));if(!f.length)throw\"failed to find stick parent\";\nu=m=!1;(g=null!=n?n&&a.closest(n):k(\"
\"))&&g.css(\"position\",a.css(\"position\"));B=function(){var c,e,l;if(!E&&(c=parseInt(f.css(\"border-top-width\"),10),e=parseInt(f.css(\"padding-top\"),10),d=parseInt(f.css(\"padding-bottom\"),10),q=f.offset().top+c+e,z=f.height(),m&&(u=m=!1,null==n&&(a.insertAfter(g),g.detach()),a.css({position:\"\",top:\"\",width:\"\",bottom:\"\"}).removeClass(s),l=!0),D=a.offset().top-parseInt(a.css(\"margin-top\"),10)-p,t=a.outerHeight(!0),r=a.css(\"float\"),g&&g.css({width:a.outerWidth(!0),\nheight:t,display:a.css(\"display\"),\"vertical-align\":a.css(\"vertical-align\"),\"float\":r}),l))return b()};B();if(t!==z)return A=void 0,c=p,x=C,b=function(){var b,k,l,h;if(!E&&(null!=x&&(--x,0>=x&&(x=C,B())),l=e.scrollTop(),null!=A&&(k=l-A),A=l,m?(v&&(h=l+t+c>z+q,u&&!h&&(u=!1,a.css({position:\"fixed\",bottom:\"\",top:c}).trigger(\"sticky_kit:unbottom\"))),lb&&!u&&(c-=k,c=Math.max(b-t,c),c=Math.min(p,c),m&&a.css({top:c+\"px\"})))):l>D&&(m=!0,b={position:\"fixed\",top:c},b.width=\"border-box\"===a.css(\"box-sizing\")?a.outerWidth()+\"px\":a.width()+\"px\",a.css(b).addClass(s),null==n&&(a.after(g),\"left\"!==r&&\"right\"!==r||g.append(a)),a.trigger(\"sticky_kit:stick\")),m&&v&&(null==h&&(h=l+t+c>z+q),!u&&h)))return u=!0,\"static\"===f.css(\"position\")&&f.css({position:\"relative\"}),a.css({position:\"absolute\",bottom:d,top:\"auto\"}).trigger(\"sticky_kit:bottom\")},\nw=function(){B();return b()},F=function(){E=!0;e.off(\"touchmove\",b);e.off(\"scroll\",b);e.off(\"resize\",w);k(document.body).off(\"sticky_kit:recalc\",w);a.off(\"sticky_kit:detach\",F);a.removeData(\"sticky_kit\");a.css({position:\"\",bottom:\"\",top:\"\",width:\"\"});f.position(\"position\",\"\");if(m)return null==n&&(\"left\"!==r&&\"right\"!==r||a.insertAfter(g),g.remove()),a.removeClass(s)},e.on(\"touchmove\",b),e.on(\"scroll\",b),e.on(\"resize\",w),k(document.body).on(\"sticky_kit:recalc\",w),a.on(\"sticky_kit:detach\",F),setTimeout(b,\n0)}};q=0;for(H=this.length;q= evo.mq.screenSmMin) {\n if (isSticky === false) {\n $stickyElement.each(function () {\n var $this = $(this),\n stickyOffset = parseInt($this.attr('data-offset-top'));\n\n if (stickyOffset) {\n $this.stick_in_parent({\n offset_top: stickyOffset\n });\n } else {\n $this.stick_in_parent();\n }\n });\n isSticky = true;\n }\n }\n else {\n //remove it for mobile\n if (isSticky === true) {\n $stickyElement.trigger('sticky_kit:detach');\n isSticky = false;\n }\n }\n };\n\n detectSticky();\n //throttle the resize event\n var resizeTimer;\n evo.$.window.on('resize', function (e) {\n clearTimeout(resizeTimer);\n resizeTimer = setTimeout(detectSticky, 250);\n });\n };\n\n //dom ready\n $(function () {\n //detect loading of Power Reviews and recalculate stickyness\n new ResizeSensor($('#wrapper'), function () {\n evo.$.body.trigger(\"sticky_kit:recalc\");\n });\n loadSticky();\n });\n\n // reattach sticky on results-page refresh\n if (!Modernizr.touch) {\n $('#results-page').on('refresh.results', loadSticky);\n }\n})(jQuery);","/*\n$.fixedHero();\nspecify a #hero-image id and then it will calculate the height of the masthead and transition to\nposition fixed. This may not work well if the hero is in the html of the page for touch devices\nin that case we may want to turn it off if touch = true\n*/\n\n(function ($) {\n var $window = $(window);\n\n $.fn.fixedHero = function (args) {\n var options = {\n minWidth: 1030\n };\n\n return this.each(function () {\n var isFixed = false,\n $heroImg = $(this),\n headerHeight = $heroImg.offset().top,\n winWidth = $window.width();\n\n if (winWidth > options.minWidth) {\n $window.trigger('scroll.fixedHero'); //just making sure we have it in the right position\n\n $window.on('scroll.fixedHero', function () {\n var $this = $(this);\n\n if ($this.scrollTop() > headerHeight && isFixed === false) {\n $heroImg.addClass('fixed');\n isFixed = true;\n } else\n if ($this.scrollTop() < headerHeight && isFixed === true) {\n $heroImg.removeClass('fixed');\n isFixed = false;\n }\n });\n }\n });\n };\n})(jQuery);","/*\n$.growFade();\nreduces opacity and scales an image up as you scroll. typically used with the fixed-hero plugin.\n*/\n(function ($) {\n $.fn.growFade = function (args) {\n if (this.length) {\n var $heroImage = $(this),\n heroHeight = $heroImage.outerHeight() + $heroImage.offset().top;\n\n var options = {\n opacityDivisor: 2,\n scaleDivisor: 6\n };\n\n $.extend(options, args);\n\n evo.$.window.on('scroll.scrollfade', function () {\n var $this = $(this),\n thisScrollTop = $this.scrollTop();\n\n if (thisScrollTop < heroHeight) {\n $heroImage.css({\n opacity: 1 - ((thisScrollTop / heroHeight) / options.opacityDivisor),\n transform: 'scale(' + (((thisScrollTop / heroHeight) / options.scaleDivisor) + 1) + ')'\n });\n }\n });\n }\n };\n})(jQuery);","/*\n$.mobileStickyNav();\ntakes a navigation bar (#mobile-sticky-nav) and once it scrolls out of view it moves to\nfixed and off canvas. scrolling up brings it on the canvas scrolling\ndown hides it from the canvas.\n*/\n\n(function ($) {\n function mobileStickyNav() {\n var maxWidth = 767;\n\n evo.$.stickyNav = $('#mobile-sticky-nav');\n\n if (evo.$.stickyNav.length === 0) {\n return false;\n }\n\n var isFixed = false,\n isOffCanvas = false,\n navOffset = evo.$.stickyNav.offset().top,\n navStickyPoint = navOffset + (evo.$.stickyNav.height() * 2), //give it a little space to kick in.\n winWidth = evo.$.window.width(),\n prevScrollPosition = 0,\n currentScrollPosition = 0;\n\n if (winWidth <= maxWidth) {\n evo.$.window.on('scroll.stickyNav', function () {\n currentScrollPosition = $(this).scrollTop();\n if (currentScrollPosition > navStickyPoint) {\n if (!isFixed) {\n var t = setTimeout(function () {\n evo.$.body.addClass('sticky-navigation');\n isFixed = true;\n }, 280); //do it with a little time out so we don't get a flicker\n }\n\n if (currentScrollPosition > prevScrollPosition) {\n if (!isOffCanvas) {\n evo.$.body.addClass('sticky-off-canvas');\n isOffCanvas = true;\n }\n }\n else if (currentScrollPosition < prevScrollPosition) {\n if (isOffCanvas) {\n evo.$.body.removeClass('sticky-off-canvas');\n isOffCanvas = false;\n }\n }\n }\n else if (currentScrollPosition <= navOffset) {\n evo.$.body.removeClass('sticky-off-canvas');\n if (isFixed) {\n evo.$.body.removeClass('sticky-navigation');\n isFixed = false;\n }\n }\n\n else {\n //do nothing\n }\n prevScrollPosition = currentScrollPosition;\n });\n }\n };\n\n $(function () {\n mobileStickyNav();\n evo.$.body.on('refresh.results', mobileStickyNav);\n });\n})(jQuery);","/*\n * Handles for all navigation on the results page including handling hashed urls\n * as well as links on the page getting clicked\n */\n(function($) {\n var selectors = {\n linksToIgnore: '.js-results-link-full-refresh',\n navigationList: '#results-navigation-list',\n page: '#results-page',\n resources: '#results-resources',\n scrollCapture: '.js-scroll-capture',\n srResultsStatus: '#sr-results-status',\n resultsSortSelect: '.results-sort-select',\n resultsSortBtnLabel: '#results-sort-btn-label'\n };\n\n var storedURL = location.href;\n\n //helper method that retrieves the current relative url\n function getCurrentUrl() {\n return location.href.substr(location.origin.length);\n }\n\n //gets called after the $.get and looks up open facet nav\n function restoreFacetNav() {\n var openAccordions = evo.sessionStorage.getItem('openAccordions'),\n openViewMoreLinks = evo.sessionStorage.getItem('openViewMoreLinks');\n\n if (openAccordions && openAccordions.length > 0) {\n $(openAccordions).addClass('active').next('.js-mobile-accordion-content').show();\n }\n\n if (openViewMoreLinks && openViewMoreLinks.length > 0) {\n $(openViewMoreLinks).addClass('facet-open');\n }\n };\n\n //#region Scroll Management\n //helper that manages the scroll position of the page\n var scrollManager = (function scrollManager() {\n var that = this,\n scrollInfo = null;\n\n //if the link is a inside a scroll capture, we need to\n //save the scroll information before the ajax call\n //so that we can restore the user's position on the page\n that.recordScrollPosition = function($link) {\n var $scrollCapture = $link ? $link.closest(selectors.scrollCapture) : null;\n if ($scrollCapture && $scrollCapture.attr('id')) {\n scrollInfo = {\n id: $scrollCapture.attr('id'),\n top: $scrollCapture.offset().top\n };\n } else {\n scrollInfo = null;\n }\n\n //save the overall scroll position so that it can later be used with history restoration\n window.name += '||' + currentUrl + '_' + evo.$.window.scrollTop() + '!';\n };\n\n //fixes the user's scroll based on an action (click)\n //if scrollInfo has a value, we scroll to that same new element\n //otherwise, we scroll to the top of the page\n that.restoreScrollForAction = function() {\n if (scrollInfo !== null) {\n var $newScrollCapture = $('#' + scrollInfo.id);\n if ($newScrollCapture.size()) {\n var scrollTopDiff = $newScrollCapture.offset().top - scrollInfo.top;\n\n //reset our stored info so that it doesn't trigger again\n scrollInfo = null;\n\n //if we're in mobile we need to scroll the navigation and not the whole window\n if (evo.isMobile) {\n $(selectors.navigationList).get(0).scrollTop += scrollTopDiff;\n } else {\n window.scrollBy(0, scrollTopDiff);\n return;\n }\n }\n }\n\n var scrollTop = page.offset().top;\n if (evo.$.window.scrollTop() > scrollTop) {\n window.scrollTo(0, scrollTop);\n }\n };\n\n //restores the user's scroll position to that which was saved for the current url\n that.restoreScrollForHistoryChange = function() {\n //try using the stored value in the window.name value\n var name = window.name,\n scrollTop = null,\n url = currentUrl,\n indexOfPipes = name.lastIndexOf('||' + url + '_'),\n indexOfExclamation = name.indexOf('!', indexOfPipes);\n\n if (indexOfPipes >= 0 && indexOfExclamation > indexOfPipes) {\n var rawScrollValue = name.substring(indexOfPipes + url.length + 3, indexOfExclamation);\n scrollTop = parseInt(rawScrollValue, 10);\n }\n\n if (!isNaN(scrollTop)) {\n window.scrollTo(0, scrollTop);\n }\n };\n\n return that;\n })();\n //#endregion\n\n //#region Navigation Management\n //helper that manages the ajax navigation of the page\n var navigationManager = (function() {\n var that = this,\n resultsLinkStart = /((\\/\\w*)?\\/(outlet-)?shop)/.exec(location.href)[0],\n currentRequest = null;\n\n //returns true if the value is a valid results url\n that.isResultsUrl = function(url) {\n return url && url.indexOf(resultsLinkStart) >= 0;\n };\n\n //navigates the user to the given url using an ajax refresh\n that.navigate = function (url) {\n if (currentRequest !== null) {\n currentRequest.abort();\n }\n currentUrl = url;\n \n page.addClass('loading');\n \n currentRequest = $.get(url).done(function(response) {\n \n var $response = $(response);\n var $newPage = $response.find(selectors.page).addBack(selectors.page);\n if (!$newPage.size()) {\n return;\n }\n\n page.html($newPage.html());\n\n // updates a div with `aria-live` to indicate that the product results are updated to screen readers\n // setTimeout is included because reading of this field in a SR is buggy unless it happens a chunk of time after the results refresh.\n setTimeout(function() {\n $(selectors.srResultsStatus).text('Product Results Updated');\n },\n 100);\n\n var $resources = $response.find(selectors.resources).addBack(selectors.resources);\n if (!$resources.size()) {\n return;\n }\n $('head').append($resources.children());\n }).always(function() {\n page.removeClass('loading');\n restoreFacetNav();\n currentRequest = null;\n\n updateSortLabel();\n\n dataLayerManager.push({\n event: \"virtual-page-view\",\n title: document.title,\n url: url\n });\n\n\n page.trigger('refresh.results');\n });\n\n return currentRequest;\n };\n\n //helper method that cleans results urls\n that.sanitizeUrl = function (url) {\n //trim off any leading hash sign if there is one\n if (url[0] === '#') {\n url = url.substring(1);\n }\n\n return url;\n }\n\n return that;\n })();\n //#endregion\n\n var page = $(selectors.page),\n currentUrl = getCurrentUrl();\n\n page.on('click',\n 'a',\n function(e) {\n var $link = $(this),\n href = $link.attr('href');\n\n //make sure this is a valid results link that allows ajax handling\n if (!navigationManager.isResultsUrl(href) || $link.is(selectors.linksToIgnore)) {\n return;\n }\n\n e.preventDefault();\n\n //record scroll position before the ajax call\n scrollManager.recordScrollPosition($link);\n\n //navigate the user\n href = navigationManager.sanitizeUrl(href);\n history.pushState(null, null, href);\n\n //\"Did you mean?\" links require full page load\n if ($link.data(\"did-you-mean\")) {\n window.location.href = href;\n return;\n }\n navigationManager.navigate(href, $link).always(function () {\n \n //now that the html is updated, restore the user's scroll\n scrollManager.restoreScrollForAction();\n });\n });\n\n //Handle click on facet values so they act checked before ajax request\n page.on('click',\n '.facet-value-li a, .view-only-list a',\n function() {\n $(this).addClass('facet-loading');\n });\n\n var updateSortLabel = function() {\n var $sortBtnLabel = page.find(selectors.resultsSortBtnLabel),\n $sortSelect = $('.results-sort-select-mobile');\n\n $sortBtnLabel.text($sortSelect.find('option:selected').text());\n $sortSelect.blur();\n };\n updateSortLabel();\n\n page.on('change',\n selectors.resultsSortSelect,\n function() {\n var $this = $(this),\n href = $this.val();\n\n //make sure this is a valid results link that allows ajax handling\n if (!navigationManager.isResultsUrl(href)) {\n return;\n }\n\n updateSortLabel();\n\n //record scroll position before the ajax call\n scrollManager.recordScrollPosition($this);\n\n //navigate the user\n href = navigationManager.sanitizeUrl(href);\n history.pushState(null, null, href);\n navigationManager.navigate(href, $this).always(function() {\n //now that the html is updated, restore the user's scroll\n scrollManager.restoreScrollForAction();\n });\n });\n\n page.on('refresh.results',\n function() {\n //update the storedURL for back navigation\n storedURL = location.href;\n });\n\n //handler for history state changes (i.e. back/forward button for ajax calls)\n\n evo.$.window.on('popstate',\n function(e) {\n //browsers don't implement the initial history state\n //the same, so this code ensures we're only executing update\n //code when we need to\n\n if (location.href === storedURL) {\n return;\n }\n\n //record scroll position before the ajax call\n scrollManager.recordScrollPosition();\n\n navigationManager.navigate(getCurrentUrl()).done(function() {\n //now that the html is updated, restore the user's scroll\n scrollManager.restoreScrollForHistoryChange();\n });;\n });\n\n //Hides and shows the individutal facet items and sets a sessionStorage Value for what is open\n page.on('click',\n '.js-facet-collapse-toggle',\n function(e) {\n e.preventDefault();\n $(this).closest('.facet').toggleClass('facet-open');\n page.trigger(\"sticky_kit:recalc\");\n\n var openedFacets = $('#results-sidebar .facet-open').map(function() {\n return '#' + this.id;\n }).get().join(',');\n\n evo.sessionStorage.setItem('openViewMoreLinks', openedFacets);\n });\n\n //Hides and shows the category list\n page.on('click',\n '.js-category-collapse-toggle',\n function() {\n $(this).closest('.category-list').toggleClass('category-open');\n });\n})(jQuery);","//mobileAccordion\n// Mobile Accordion expand/collaspe toggle and trigger active class to update UI icons\n// Can pass in options to get specific selectors, and optional callback function\n(function ($) {\n $.fn.mobileAccordion = function (args) {\n var options = {\n selector: '.js-mobile-accordion-header',\n contentSelector: '.js-mobile-accordion-content',\n desktopAccordion: false,\n callback: function () { }\n };\n\n $.extend(options, args);\n\n $(this).find('.active').each(function () {\n $(this).next(options.contentSelector).slideToggle(250);\n })\n\n return this.each(function () {\n var $parentSelector = $(this);\n\n $parentSelector.on('click', options.selector, function (e) {\n if (evo.$.window.width() < evo.mq.screenSmMin || options.desktopAccordion) {\n e.stopImmediatePropagation();\n e.preventDefault();\n $(this).toggleClass('active').next(options.contentSelector).slideToggle(250, function () {\n options.callback.call(this);\n });\n }\n });\n });\n };\n})(jQuery);","/*\n * support for the slide out results navigation at mobile\n */\n(function ($) {\n var clickEvent = Modernizr.touch === true ? 'touchend.results' : 'click.results';\n var $resultsPage = $('#results-page');\n\n //trigger mobile accordions for the shop lading pages.\n function bindShopLandingAccordion() {\n $resultsPage.find('.js-shop-landing-mobile-nav').mobileAccordion();\n }\n bindShopLandingAccordion();\n //on ajax refresh rebind the accordion for shop landing page nav\n $('#results-page').on('refresh.results', bindShopLandingAccordion);\n\n //trigger mobile accordions for the facets and set the sessions storage values.\n $resultsPage.mobileAccordion({\n selector: '.sidebar-inner .js-mobile-accordion-header',\n callback: function () {\n //this sets up the values to recover on refresh to keep accordions open\n var openAccordions = $('#results-sidebar').find('.js-mobile-accordion-header.active').map(function () {\n return '#' + this.id;\n })\n .get()\n .join(',');\n\n evo.sessionStorage.setItem('openAccordions', openAccordions);\n }\n });\n\n //need to hide the results sidebar when nav is open\n evo.$.body.on('mobileNavigation.close', function () {\n $('#results-sidebar').removeClass('hide-sidebar');\n });\n\n evo.$.body.on('mobileNavigation.open', function () {\n $('#results-sidebar').addClass('hide-sidebar');\n });\n\n evo.$.body.on('click.results', '#results-filter-button', function (e) {\n e.stopImmediatePropagation();\n e.preventDefault();\n evo.$.html.addClass('filters-active');\n });\n\n evo.$.body.on(clickEvent, '.js-results-sidebar-close', function (e) {\n e.stopImmediatePropagation();\n e.preventDefault();\n evo.$.html.removeClass('filters-active');\n });\n\n //--------------- Animate Number of Products Showing ---------\n var oldResultsCount = parseInt($(\"#results-count\").data(\"count\"));\n\n function resetCounter() {\n var $resultsCount = $(\"#results-count\"),\n newCount = parseInt($resultsCount.data(\"count\"));\n\n if (newCount && evo.$.html.hasClass('filters-active')) {\n // set prop 'counter' to current value\n $resultsCount.prop('Counter', oldResultsCount).animate({\n Counter: newCount\n }, {\n duration: 667, // TODO duration as a function of difference\n easing: 'swing', // TODO custom easing easeOutCirc is prefered\n step: function (now) {\n $(this).text(Math.ceil(now));\n }\n });\n }\n oldResultsCount = newCount;\n }\n $('#results-page').on('refresh.results', resetCounter);\n})(jQuery);","(function ($) {\n function brandLinksViewMore() {\n evo.$.body.on(\"click\", \"#brands-links-toggle\", function (e) {\n e.stopImmediatePropagation();\n e.preventDefault();\n $(this).parent().toggleClass(\"brand-links-open\");\n $(\".brand-links-open #brands-links-toggle\").scrollToID({ speed: 250 });\n });\n }\n\n function photoCaption() {\n evo.$.body.on(\"click\", \".js-caption-toggle\", function () {\n $(this).toggleClass(\"js-active\");\n });\n }\n\n $(function () {\n $(\".js-fixed-hero\").fixedHero().growFade();\n $(\".js-scrolltoid\").scrollToID({ speed: 667, offset: -20 });\n $(brandLinksViewMore);\n // init for mobile\n if (evo.isMobile) {\n photoCaption();\n }\n });\n\n // Bind the product thumb click events to push to the Google dataLayer.\n evo.$.body.on(\n \"click\",\n \".js-product-thumb-link, .js-product-thumb-details-link\",\n function () {\n var $productPageId = $(this).data(\"unique-id\");\n\n window.dataLayerManager.pushProductClick($productPageId, \"Results\");\n },\n );\n})(jQuery);\n","/// \n/// \n/// Google tracking events for the PDP page\n/// \n(function ($) {\n evo.tracking.setCategory('Results Product Click');\n evo.tracking.setActions({\n 'h': 'Home',\n 'o': 'Opposite'\n });\n\n $(function () {\n evo.$.body.on('refresh.results', function () {\n evo.tracking.bindTracking(evo.$.body);\n });\n });\n})(jQuery);","/// \n/// \n/*\n * PDP component that manages the interactions of the recently viewed products\n */\n(function ($) {\n $(function () {\n const STORAGE_KEY = \"RecentlyViewed\",\n MAX_PRODUCTS_TO_SHOW_ON_PDP = 6, // need to add one because we slice the array of items from index 0 later on\n MAX_PRODUCTS_TO_SHOW_ON_RESULTS = 5,\n MAX_PRODUCTS_TO_STORE = 40, // max number of products kept in storage and number shown on standalone page\n selectors = {\n outerContainer: \"#results-recently-viewed-container\",\n container: \"#breadcrumb-recent-mini-container\",\n miniList: \"#recent-minis\",\n recentText: \"#recent-text\",\n },\n recentlyViewedProductPages = evo.storage.getItem(STORAGE_KEY) || [],\n $container = $(selectors.container),\n productPageId = $container.attr(\"data-product-page-id\"),\n dataLoadUrl = $container.attr(\"data-load-url\");\n\n // if there's no data load URL then we can't do anything\n if (typeof dataLoadUrl === \"undefined\") {\n return;\n }\n\n const isResultsPage = typeof productPageId === \"undefined\";\n let productPagesToShow;\n\n if (isResultsPage) {\n // include last-seen product on results pages\n recentlyViewedProductPages.length = Math.min(\n recentlyViewedProductPages.length,\n MAX_PRODUCTS_TO_SHOW_ON_RESULTS,\n );\n productPagesToShow = recentlyViewedProductPages.slice(\n 0,\n recentlyViewedProductPages.length,\n );\n } else {\n // add current page id to storage and remove any duplicates, only unshift if the product page ID isn't undefined\n recentlyViewedProductPages.unshift(productPageId);\n for (var i = 1; i < recentlyViewedProductPages.length; i++) {\n if (recentlyViewedProductPages[i] === productPageId) {\n recentlyViewedProductPages.splice(i, 1);\n break;\n }\n }\n // ensure the list of ids doesn't get too big\n recentlyViewedProductPages.length = Math.min(\n recentlyViewedProductPages.length,\n MAX_PRODUCTS_TO_STORE,\n );\n evo.storage.setItem(STORAGE_KEY, recentlyViewedProductPages);\n\n // Trim pages array to number of items shown on PDP\n recentlyViewedProductPages.length = Math.min(\n recentlyViewedProductPages.length,\n MAX_PRODUCTS_TO_SHOW_ON_PDP,\n );\n\n productPagesToShow = recentlyViewedProductPages.slice(\n 1,\n recentlyViewedProductPages.length,\n );\n }\n\n if (productPagesToShow.length === 0) {\n return;\n }\n\n $.ajax({\n cache: false,\n data: $.param({ProductPageIds: productPagesToShow}, true),\n method: \"GET\",\n url: dataLoadUrl,\n })\n .done(function (response) {\n const isCanadaMode = dataLoadUrl.includes(\"/en-ca\");\n const minis = response.map((recentlyViewedProduct) => {\n const href = isCanadaMode\n ? `/en-ca${recentlyViewedProduct.RelativePath}`\n : recentlyViewedProduct.RelativePath;\n const $link = $(\n `` +\n `\"${recentlyViewedProduct.Name}\"/` +\n ``,\n );\n\n $link.on('click', function (e) {\n window.dataLayerManager.pushProductClick(recentlyViewedProduct.ProductId);\n });\n\n return $link;\n });\n\n // show the container if there are recently viewed items\n if (minis.length) {\n $(selectors.miniList).append(minis).css(\"visibility\", \"visible\");\n $(selectors.container).css(\"visibility\", \"visible\");\n $(selectors.outerContainer).css(\"display\", \"flex\");\n $(selectors.recentText).css(\"visibility\", \"visible\");\n const impressions = response.map((recentlyViewedProduct) => {\n return {\n brand: recentlyViewedProduct.Brand,\n isOutlet: recentlyViewedProduct.IsOutlet,\n marketingPrice: recentlyViewedProduct.MarketingPrice,\n name: recentlyViewedProduct.Name,\n price: recentlyViewedProduct.Price.Minimum,\n category: recentlyViewedProduct.CoreTaxonomyNodePath,\n id: recentlyViewedProduct.ProductId,\n _uniqueId: recentlyViewedProduct.ProductId,\n }\n });\n window.dataLayerManager.pushImpressions(impressions, 'Recently Viewed - ' + (isResultsPage ? 'results' : 'PDP'), true);\n }\n })\n .fail(function () {\n console.warn(\n \"There was an error loading the recently viewed component\",\n );\n });\n });\n})(jQuery);\n"]}