{"version":3,"sources":["webpack:///webpack/bootstrap 18ae76087b773c166ed0?35be******************************************************","webpack:///./cartridges/app_bata_sfra/cartridge/client/default/js/search.js","webpack:///./cartridges/app_bata_sfra/cartridge/client/default/js/util.js?0ce9**********************","webpack:///(webpack)/buildin/module.js?c3c2*********","webpack:///./cartridges/app_bata_sfra/cartridge/client/default/js/utils/detectDevice.js?ca2c****","webpack:///./cartridges/app_bata_sfra/cartridge/client/default/js/components/focus.js?f057*****","webpack:///./cartridges/app_bata_sfra/cartridge/client/default/js/product/base.js?5a87****","webpack:///./cartridges/app_bata_sfra/cartridge/client/default/js/modules/picture-lazy-load.js?262d****","webpack:///./~/lazysizes/lazysizes.js?6096****","webpack:///./cartridges/app_bata_sfra/cartridge/client/default/js/product/bonusProductHelpers.js?d6e7****","webpack:///./cartridges/app_bata_sfra/cartridge/client/default/js/product/addToCartHelper.js?977c**","webpack:///./cartridges/app_bata_sfra/cartridge/client/default/js/product/wishlistHeart.js?cb80*","webpack:///./cartridges/app_bata_sfra/cartridge/client/default/js/product/quickView.js?6962*","webpack:///./cartridges/app_bata_sfra/cartridge/client/default/js/search/tileHelper.js?35f9","webpack:///./cartridges/app_bata_sfra/cartridge/client/default/js/search/search.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","id","loaded","modules","call","m","c","p","processInclude","$","document","ready","include","_typeof","Object","keys","forEach","key","webpackPolyfill","deprecate","paths","children","detectMobile","some","toMatchItem","navigator","userAgent","match","setTabNextFocus","focusParams","event","keyCode","firstFocusableEl","containerSelector","firstElementSelector","lastFocusableEl","lastElementSelector","is","nextToLastElementSelector","length","linkElements","shiftKey","focus","preventDefault","init","hide","on","$self","this","hasClass","$overlay","parents","find","closest","addClass","trigger","getPidValue","$el","data","text","miniCartReportingUrl","url","ajax","method","success","error","lazySizesConfig","window","loadMode","preloadAfterLoad","ricTimeout","expand","loadHidden","srcAttr","srcsetAttr","sizesAttr","lazyClass","loadingClass","loadedClass","lazysizes","addEventListener","e","bg","target","getAttribute","style","backgroundImage","factory","lazySizes","getElementsByClassName","docElem","documentElement","Date","supportPicture","HTMLPictureElement","setTimeout","requestAnimationFrame","requestIdleCallback","regPicture","loadEvents","regClassCache","Array","prototype","ele","cls","RegExp","test","setAttribute","trim","removeClass","reg","replace","addRemoveLoadEvents","dom","fn","add","action","evt","triggerEvent","elem","name","detail","noBubbles","noCancelable","createEvent","instance","initEvent","dispatchEvent","updatePolyfill","el","full","polyfill","picturefill","pf","src","reevaluate","elements","getCSS","getComputedStyle","getWidth","parent","width","offsetWidth","minSize","_lazysizesWidth","parentNode","rAF","running","waiting","firstFns","secondFns","fns","run","runFns","shift","rafBatch","queue","apply","arguments","push","hidden","_lsFlush","rAFIt","simple","that","args","debounce","func","timeout","timestamp","later","last","now","prop","lazySizesDefaults","preloadClass","errorClass","autosizesClass","customMedia","expFactor","hFac","throttleDelay","lazysizesConfig","loader","preloadElems","isCompleted","resetPreloadingTimer","started","eLvW","elvH","eLtop","eLleft","eLright","eLbottom","isBodyHidden","regImg","regIframe","supportScroll","currentExpand","isLoading","lowRuns","resetPreloading","isVisible","body","isNestedVisible","elemExpand","outerRect","visible","offsetParent","getBoundingClientRect","left","right","top","bottom","checkElements","eLlen","i","rect","autoLoadElem","loadedSomething","elemNegativeExpand","elemExpandVal","beforeExpandVal","defaultExpand","preloadExpand","lazyloadElems","clientHeight","clientWidth","_defEx","_lazyRace","innerWidth","innerHeight","unveilElement","throttledCheckElements","lastTime","gDelay","rICTimeout","idleCallback","isPriority","delay","throttle","switchLoadingClass","_lazyCache","rafSwitchLoadingClass","rafedSwitchLoadingClass","handleSources","source","sourceSrcset","lazyUnveil","isAuto","sizes","isImg","srcset","isPicture","firesLoad","defaultPrevented","nodeName","clearTimeout","getElementsByTagName","contentWindow","location","changeIframeSrc","isLoaded","complete","naturalWidth","autoSizer","updateElem","onload","afterScroll","_","MutationObserver","observe","childList","subtree","attributes","setInterval","readyState","checkElems","unveil","autosizesElems","sizeElement","sources","len","dataAttr","getSizeElement","debouncedUpdateElementsSizes","cfg","uP","aC","rC","hC","fire","gW","focusHelper","parseHtml","html","$html","append","parseHTML","footer","chooseBonusProducts","bonusUrl","spinner","start","remove","bonusChoiceRuleBased","showProductsUrlRuleBased","showProductsUrlListBased","htmlString","maxBonusItems","uuid","pliUUID","addToCartUrl","pageSize","labels","selectprods","dataType","response","parsedHtml","renderedTemplate","empty","enterDialogMessage","closeButtonText","modal","stop","methods","editBonusProducts","focusChooseBonusProductModal","siblings","attr","onClosingChooseBonusProductModal","trapChooseBonusProductModalFocus","selectBonusProduct","$choiceOfBonusProduct","pid","maxPids","submittedQty","parseInt","val","totalQty","each","optionID","valueId","selectedBonusProductHtml","removeBonusProduct","$selected","count","enableBonusProductSelection","$productContainer","product","readyToOrder","available","showMoreBonusProducts","addBonusProductsToCart","$readyToOrderBonusProducts","queryString","pidsObject","bonusProducts","qtyOption","option","optionId","productId","selectedValueId","qty","options","JSON","stringify","errorMessage","msgSuccess","reload","base","bonusProductHelpers","detectDevice","getOptions","map","$elOption","urlValue","toArray","getQuantitySelected","getQuantitySelector","addToCart","pidsObj","setPids","stopPropagation","stopImmediatePropagation","$elem","isDisabled","isOneSizePLP","prev","isOneSizePDP","sizeIsSelectedFunc","form","childProducts","quantity","getChildProducts","checkOutPage","tryOnButton","dataEvent","tryOnDesktopClick","tryOnMobileRedirect","limitMessage","unavailableItemAdded","messageType","newBonusDiscountLineItem","message","handlePostCartAdd","cart","totals","subTotal","grandTotalDecimal","couponNamesString","productID","reportingURL","isCartPage","Deferred","deferred","minicartTimeout","click","resolve","promise","showMiniCart","then","addAndRemoveToWishlist","loggedin","href","addUrl","removeUrl","button","buttonContentAdd","buttonContentRemove","optionVal","isRedirectToLogin","params","newUrl","indexOf","encodeURIComponent","join","appendToUrl","rurl","oid","oval","type","redirectUrl","isFull","maxProductsMessage","ProductsInWishlist","productsArr","counter","wishlistSize","err","responseJSON","fillModalElement","selectedValueUrl","quickViewFullDetailMsg","productUrl","showQuickview","focusQuickview","trapQuickviewFocus","showSpinner","hideDialog","beforeUpdateAttribute","updateAttribute","container","selectedProductUrl","updateAddToCart","dialog","updateAvailability","allAvailable","every","item","allReady","resources","info_selectforstock","addToCartHelper","handleWishlistButtonInTile","$element","isInWishlist","$button","isSizeSelected","$spanAdd","$spanRemove","productsInWishlistOnDOMready","productArrString","productArr","parse","result","isDesktop","$sizeModal","refreshPLPTile","classToRefresh","isSize","attrColor","selectedUrl","isAjax","position","newPid","checkInWishlist","analyticsData","productData","$objTile","$btnAddToCart","$wishlistBtn","actionAfterSelectSize","tileHelper","updateDom","$results","selector","nameDropdownOpened","mobileMenuOpened","$updates","bata_com_ns","analytics","productsDisplayed","css","z-index","$parent","handleRefinements","activeDiv","className","scrollWidth","parseResults","specialHandlers",".refinements","filter","updateHeadDom","BLOCK_TO_UPDATE","blockCounter","selectpicker","getContent","$target","showMoreUrl","loadContentShowMore","$loadMoreButton","nextURL","sz","urlShowMore","sizeResult","urlResult","urlParams","URL","searchParams","get","locationHref","set","toString","urlFinal","nextTitle","title","nextState","history","replaceState","modifyUrlAfterShowMore","scrollPosition","scrollTop","replaceWith","updateSortOptions","isInWishlistAfterLoadMore","itemsVisible","updateContainerShowAjax","element","urlDataHref","pathname","finalUrl","destinationUrl","page","animate","lastScroll","$header","$body","$categoryWrapper","$filterWrapper","currentScroll","headerHeigth","height","documentHeight","querySelector","display","popstate","state","originalEvent","console","log","selectedCategoryId","urlRefinement","urlRedirectRefinement","updateCategoryElementsAfterClickSideCategory","refineUrl","breadcrumbContainer","origin","idValue","pushState","categoryTitle","cgid","status","$refinement","urlRedirect","pushFilterUrlState","show","closeRefinements","sort","$sortSeleceted","sortId","sortName","sorting","sortSelected","currUrl","includes","delete","updateUrlWithSortOption","showMore","applyFilter","$category","backInStock","submit","buttonData","serialize","receivedMsgBody","buttonText","reset","showContentTab","$categoryFilterBar","appendTo","accordionName","isMobile","removeAttr","$categoryModal","$filterModal","toggleClass","toggle","scrollLeft","currentLeftPos","offset","catScrollWidth"],"mappings":"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","file":"search.min.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\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\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.loaded = 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// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 18ae76087b773c166ed0","'use strict';\n\nvar processInclude = require('./util');\n\n$(document).ready(function () {\n processInclude(require('./search/search'));\n processInclude(require('./product/quickView'));\n processInclude(require('./product/wishlistHeart'));\n});\n\n\n\n// WEBPACK FOOTER //\n// ./cartridges/app_bata_sfra/cartridge/client/default/js/search.js","'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\n\n\n// WEBPACK FOOTER //\n// ./cartridges/app_bata_sfra/cartridge/client/default/js/util.js","module.exports = function(module) {\r\n\tif(!module.webpackPolyfill) {\r\n\t\tmodule.deprecate = function() {};\r\n\t\tmodule.paths = [];\r\n\t\t// module.parent = undefined by default\r\n\t\tmodule.children = [];\r\n\t\tmodule.webpackPolyfill = 1;\r\n\t}\r\n\treturn module;\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// (webpack)/buildin/module.js","/**\n * A function that detects user's device.\n * @returns {Boolean} Returns `true` if user's device is mobile/tablet.\n */\nfunction detectMobile() {\n const toMatch = [\n /Android/i,\n /webOS/i,\n /iPhone/i,\n /iPad/i,\n /iPod/i,\n /BlackBerry/i,\n /Windows Phone/i\n ];\n\n return toMatch.some((toMatchItem) => {\n return navigator.userAgent.match(toMatchItem);\n });\n}\n\nmodule.exports = {\n detectMobile: detectMobile\n};\n\n\n// WEBPACK FOOTER //\n// ./cartridges/app_bata_sfra/cartridge/client/default/js/utils/detectDevice.js","'use strict';\n\nmodule.exports = {\n setTabNextFocus: function (focusParams) {\n var KEYCODE_TAB = 9;\n var isTabPressed = (focusParams.event.key === 'Tab' || focusParams.event.keyCode === KEYCODE_TAB);\n\n if (!isTabPressed) {\n return;\n }\n\n var firstFocusableEl = $(focusParams.containerSelector + ' ' + focusParams.firstElementSelector);\n var lastFocusableEl = $(focusParams.containerSelector + ' ' + focusParams.lastElementSelector);\n\n if ($(focusParams.containerSelector + ' ' + focusParams.lastElementSelector).is(':disabled')) {\n lastFocusableEl = $(focusParams.containerSelector + ' ' + focusParams.nextToLastElementSelector);\n if ($('.product-quickview.product-set').length > 0) {\n var linkElements = $(focusParams.containerSelector + ' a#fa-link.share-icons');\n lastFocusableEl = linkElements[linkElements.length - 1];\n }\n }\n\n if (focusParams.event.shiftKey) /* shift + tab */ {\n if ($(':focus').is(firstFocusableEl)) {\n lastFocusableEl.focus();\n focusParams.event.preventDefault();\n }\n } else /* tab */ {\n if ($(':focus').is(lastFocusableEl)) { // eslint-disable-line\n firstFocusableEl.focus();\n focusParams.event.preventDefault();\n }\n }\n }\n};\n\n\n\n// WEBPACK FOOTER //\n// ./cartridges/app_bata_sfra/cartridge/client/default/js/components/focus.js","'use strict';\n\n//enables lazyload in pdp\nvar picture_lazy_load = require('../modules/picture-lazy-load');\npicture_lazy_load.init();\n\nfunction hideAddToWishlistButtonInPDP() {\n $('.product-detail .prices-add-to-cart-actions .add-to-wish-list').hide();\n}\nhideAddToWishlistButtonInPDP();\n\nfunction selectASizeHintWishList() {\n $('.container').on('click', '.add-to-wish-list', function() {\n const $self = $(this);\n if (!$self.hasClass('to-add to-remove')) {\n\n const $overlay = $self.parents('.product-tile').find('.js-tile-open-overlay');\n if ($overlay.hasClass('js-noSize')) {\n return;\n } else {\n $self.closest('.cc-col-tile').addClass('js-addWishlist');\n $overlay.trigger('click');\n }\n }\n });\n}\n\nselectASizeHintWishList();\n\n//this function is to use only if variationGroups have different type of size\n// function modifyUrlColorSwatchesToSingleVariant($sizeTile) {\n// var urlVariantValue = $sizeTile.attr('value');\n// var sizeValue = $sizeTile.attr('data-attr-value');\n// var $colorSwatches = $('.attributes .swatches-container .color-attribute');\n// var urlToReplace;\n// $colorSwatches.each(function () {\n// var element = $(this).find('.color-value');\n// var colorValue = element.attr('data-attr-value');\n// urlToReplace = urlVariantValue;\n// urlToReplace = urlToReplace.replace(/(?<=size=)(.*?)((?=&)|(?=$))/, sizeValue);\n// urlToReplace = urlToReplace.replace(/(?<=color=)(.*?)((?=&)|(?=$))/, colorValue);\n// $(this).attr('data-url', urlToReplace);\n// })\n// }\n\n/**\n * Retrieves the relevant pid value\n * @param {jquery} $el - DOM container for a given add to cart button\n * @return {string} - value to be used when adding product to cart\n */\nfunction getPidValue($el) {\n var pid;\n\n\n if ($('#quickViewModal').hasClass('show') && !$('.product-set').length > 0) {\n pid = $($el).closest('.modal-content').find('.product-quickview').data('pid');\n } else if ($($el).closest('.product-tile').length > 0) {\n pid = $($el).data('pid');\n } else if ($($el).closest('.product-set').length > 0 || $('.product-set').length > 0) {\n pid = $($el).closest('.product-detail').find('.product-id').text();\n } else {\n pid = $('.product-detail:not(\".bundle-item\")').data('pid');\n }\n\n return pid;\n}\n\n\n/**\n * Makes a call to the server to report the event of adding an item to the cart\n *\n * @param {string | boolean} url - a string representing the end point to hit so that the event can be recorded, or false\n */\nfunction miniCartReportingUrl(url) {\n if (url) {\n $.ajax({\n url: url,\n method: 'GET',\n success: function() {\n // reporting urls hit on the server\n },\n error: function() {\n // no reporting urls hit on the server\n }\n });\n }\n}\n\nmodule.exports = {\n getPidValue: getPidValue,\n miniCartReportingUrl: miniCartReportingUrl\n};\n\n\n\n// WEBPACK FOOTER //\n// ./cartridges/app_bata_sfra/cartridge/client/default/js/product/base.js","'use strict';\n\nmodule.exports = {\n init: function () {\n //var featureDetect = require('./featureDetect');\n\n var lazySizesConfig = window.lazySizesConfig = window.lazySizesConfig || {};\n lazySizesConfig.init = false;\n lazySizesConfig.loadMode = 2;\n lazySizesConfig.preloadAfterLoad = false;\n lazySizesConfig.ricTimeout = 250;\n lazySizesConfig.expand = 700;\n lazySizesConfig.loadHidden = false;\n lazySizesConfig.srcAttr = 'data-lazy';\n lazySizesConfig.srcsetAttr = 'data-srcset';\n lazySizesConfig.sizesAttr = 'data-sizes';\n lazySizesConfig.lazyClass = 'b-lazyload';\n lazySizesConfig.loadingClass = 'b-lazyload_loading';\n lazySizesConfig.loadedClass = 'b-lazyload_loaded';\n\n const lazysizes = require('lazysizes');\n\n document.addEventListener('lazybeforeunveil', (e) => {\n var bg = e.target.getAttribute('data-bg');\n if (bg) {\n e.target.style.backgroundImage = 'url(' + bg + ')';\n }\n });\n\n lazysizes.init();\n // if (!featureDetect.hasPicture) {\n // import( /* webpackChunkName: \"picturefill\" */ 'picturefill').then((loadedModule) => {\n // loadedModule.default();\n // lazysizes.init();\n // });\n // } else {\n // lazysizes.init();\n // }\n\n\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./cartridges/app_bata_sfra/cartridge/client/default/js/modules/picture-lazy-load.js","(function(window, factory) {\n\tvar lazySizes = factory(window, window.document);\n\twindow.lazySizes = lazySizes;\n\tif(typeof module == 'object' && module.exports){\n\t\tmodule.exports = lazySizes;\n\t}\n}(window, function l(window, document) {\n\t'use strict';\n\t/*jshint eqnull:true */\n\tif(!document.getElementsByClassName){return;}\n\n\tvar lazysizes, lazySizesConfig;\n\n\tvar docElem = document.documentElement;\n\n\tvar Date = window.Date;\n\n\tvar supportPicture = window.HTMLPictureElement;\n\n\tvar _addEventListener = 'addEventListener';\n\n\tvar _getAttribute = 'getAttribute';\n\n\tvar addEventListener = window[_addEventListener];\n\n\tvar setTimeout = window.setTimeout;\n\n\tvar requestAnimationFrame = window.requestAnimationFrame || setTimeout;\n\n\tvar requestIdleCallback = window.requestIdleCallback;\n\n\tvar regPicture = /^picture$/i;\n\n\tvar loadEvents = ['load', 'error', 'lazyincluded', '_lazyloaded'];\n\n\tvar regClassCache = {};\n\n\tvar forEach = Array.prototype.forEach;\n\n\tvar hasClass = function(ele, cls) {\n\t\tif(!regClassCache[cls]){\n\t\t\tregClassCache[cls] = new RegExp('(\\\\s|^)'+cls+'(\\\\s|$)');\n\t\t}\n\t\treturn regClassCache[cls].test(ele[_getAttribute]('class') || '') && regClassCache[cls];\n\t};\n\n\tvar addClass = function(ele, cls) {\n\t\tif (!hasClass(ele, cls)){\n\t\t\tele.setAttribute('class', (ele[_getAttribute]('class') || '').trim() + ' ' + cls);\n\t\t}\n\t};\n\n\tvar removeClass = function(ele, cls) {\n\t\tvar reg;\n\t\tif ((reg = hasClass(ele,cls))) {\n\t\t\tele.setAttribute('class', (ele[_getAttribute]('class') || '').replace(reg, ' '));\n\t\t}\n\t};\n\n\tvar addRemoveLoadEvents = function(dom, fn, add){\n\t\tvar action = add ? _addEventListener : 'removeEventListener';\n\t\tif(add){\n\t\t\taddRemoveLoadEvents(dom, fn);\n\t\t}\n\t\tloadEvents.forEach(function(evt){\n\t\t\tdom[action](evt, fn);\n\t\t});\n\t};\n\n\tvar triggerEvent = function(elem, name, detail, noBubbles, noCancelable){\n\t\tvar event = document.createEvent('Event');\n\n\t\tif(!detail){\n\t\t\tdetail = {};\n\t\t}\n\n\t\tdetail.instance = lazysizes;\n\n\t\tevent.initEvent(name, !noBubbles, !noCancelable);\n\n\t\tevent.detail = detail;\n\n\t\telem.dispatchEvent(event);\n\t\treturn event;\n\t};\n\n\tvar updatePolyfill = function (el, full){\n\t\tvar polyfill;\n\t\tif( !supportPicture && ( polyfill = (window.picturefill || lazySizesConfig.pf) ) ){\n\t\t\tif(full && full.src && !el[_getAttribute]('srcset')){\n\t\t\t\tel.setAttribute('srcset', full.src);\n\t\t\t}\n\t\t\tpolyfill({reevaluate: true, elements: [el]});\n\t\t} else if(full && full.src){\n\t\t\tel.src = full.src;\n\t\t}\n\t};\n\n\tvar getCSS = function (elem, style){\n\t\treturn (getComputedStyle(elem, null) || {})[style];\n\t};\n\n\tvar getWidth = function(elem, parent, width){\n\t\twidth = width || elem.offsetWidth;\n\n\t\twhile(width < lazySizesConfig.minSize && parent && !elem._lazysizesWidth){\n\t\t\twidth = parent.offsetWidth;\n\t\t\tparent = parent.parentNode;\n\t\t}\n\n\t\treturn width;\n\t};\n\n\tvar rAF = (function(){\n\t\tvar running, waiting;\n\t\tvar firstFns = [];\n\t\tvar secondFns = [];\n\t\tvar fns = firstFns;\n\n\t\tvar run = function(){\n\t\t\tvar runFns = fns;\n\n\t\t\tfns = firstFns.length ? secondFns : firstFns;\n\n\t\t\trunning = true;\n\t\t\twaiting = false;\n\n\t\t\twhile(runFns.length){\n\t\t\t\trunFns.shift()();\n\t\t\t}\n\n\t\t\trunning = false;\n\t\t};\n\n\t\tvar rafBatch = function(fn, queue){\n\t\t\tif(running && !queue){\n\t\t\t\tfn.apply(this, arguments);\n\t\t\t} else {\n\t\t\t\tfns.push(fn);\n\n\t\t\t\tif(!waiting){\n\t\t\t\t\twaiting = true;\n\t\t\t\t\t(document.hidden ? setTimeout : requestAnimationFrame)(run);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\trafBatch._lsFlush = run;\n\n\t\treturn rafBatch;\n\t})();\n\n\tvar rAFIt = function(fn, simple){\n\t\treturn simple ?\n\t\t\tfunction() {\n\t\t\t\trAF(fn);\n\t\t\t} :\n\t\t\tfunction(){\n\t\t\t\tvar that = this;\n\t\t\t\tvar args = arguments;\n\t\t\t\trAF(function(){\n\t\t\t\t\tfn.apply(that, args);\n\t\t\t\t});\n\t\t\t}\n\t\t;\n\t};\n\n\tvar throttle = function(fn){\n\t\tvar running;\n\t\tvar lastTime = 0;\n\t\tvar gDelay = lazySizesConfig.throttleDelay;\n\t\tvar rICTimeout = lazySizesConfig.ricTimeout;\n\t\tvar run = function(){\n\t\t\trunning = false;\n\t\t\tlastTime = Date.now();\n\t\t\tfn();\n\t\t};\n\t\tvar idleCallback = requestIdleCallback && rICTimeout > 49 ?\n\t\t\tfunction(){\n\t\t\t\trequestIdleCallback(run, {timeout: rICTimeout});\n\n\t\t\t\tif(rICTimeout !== lazySizesConfig.ricTimeout){\n\t\t\t\t\trICTimeout = lazySizesConfig.ricTimeout;\n\t\t\t\t}\n\t\t\t} :\n\t\t\trAFIt(function(){\n\t\t\t\tsetTimeout(run);\n\t\t\t}, true)\n\t\t;\n\n\t\treturn function(isPriority){\n\t\t\tvar delay;\n\n\t\t\tif((isPriority = isPriority === true)){\n\t\t\t\trICTimeout = 33;\n\t\t\t}\n\n\t\t\tif(running){\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\trunning = true;\n\n\t\t\tdelay = gDelay - (Date.now() - lastTime);\n\n\t\t\tif(delay < 0){\n\t\t\t\tdelay = 0;\n\t\t\t}\n\n\t\t\tif(isPriority || delay < 9){\n\t\t\t\tidleCallback();\n\t\t\t} else {\n\t\t\t\tsetTimeout(idleCallback, delay);\n\t\t\t}\n\t\t};\n\t};\n\n\t//based on http://modernjavascript.blogspot.de/2013/08/building-better-debounce.html\n\tvar debounce = function(func) {\n\t\tvar timeout, timestamp;\n\t\tvar wait = 99;\n\t\tvar run = function(){\n\t\t\ttimeout = null;\n\t\t\tfunc();\n\t\t};\n\t\tvar later = function() {\n\t\t\tvar last = Date.now() - timestamp;\n\n\t\t\tif (last < wait) {\n\t\t\t\tsetTimeout(later, wait - last);\n\t\t\t} else {\n\t\t\t\t(requestIdleCallback || run)(run);\n\t\t\t}\n\t\t};\n\n\t\treturn function() {\n\t\t\ttimestamp = Date.now();\n\n\t\t\tif (!timeout) {\n\t\t\t\ttimeout = setTimeout(later, wait);\n\t\t\t}\n\t\t};\n\t};\n\n\t(function(){\n\t\tvar prop;\n\n\t\tvar lazySizesDefaults = {\n\t\t\tlazyClass: 'lazyload',\n\t\t\tloadedClass: 'lazyloaded',\n\t\t\tloadingClass: 'lazyloading',\n\t\t\tpreloadClass: 'lazypreload',\n\t\t\terrorClass: 'lazyerror',\n\t\t\t//strictClass: 'lazystrict',\n\t\t\tautosizesClass: 'lazyautosizes',\n\t\t\tsrcAttr: 'data-src',\n\t\t\tsrcsetAttr: 'data-srcset',\n\t\t\tsizesAttr: 'data-sizes',\n\t\t\t//preloadAfterLoad: false,\n\t\t\tminSize: 40,\n\t\t\tcustomMedia: {},\n\t\t\tinit: true,\n\t\t\texpFactor: 1.5,\n\t\t\thFac: 0.8,\n\t\t\tloadMode: 2,\n\t\t\tloadHidden: true,\n\t\t\tricTimeout: 0,\n\t\t\tthrottleDelay: 125,\n\t\t};\n\n\t\tlazySizesConfig = window.lazySizesConfig || window.lazysizesConfig || {};\n\n\t\tfor(prop in lazySizesDefaults){\n\t\t\tif(!(prop in lazySizesConfig)){\n\t\t\t\tlazySizesConfig[prop] = lazySizesDefaults[prop];\n\t\t\t}\n\t\t}\n\n\t\twindow.lazySizesConfig = lazySizesConfig;\n\n\t\tsetTimeout(function(){\n\t\t\tif(lazySizesConfig.init){\n\t\t\t\tinit();\n\t\t\t}\n\t\t});\n\t})();\n\n\tvar loader = (function(){\n\t\tvar preloadElems, isCompleted, resetPreloadingTimer, loadMode, started;\n\n\t\tvar eLvW, elvH, eLtop, eLleft, eLright, eLbottom, isBodyHidden;\n\n\t\tvar regImg = /^img$/i;\n\t\tvar regIframe = /^iframe$/i;\n\n\t\tvar supportScroll = ('onscroll' in window) && !(/(gle|ing)bot/.test(navigator.userAgent));\n\n\t\tvar shrinkExpand = 0;\n\t\tvar currentExpand = 0;\n\n\t\tvar isLoading = 0;\n\t\tvar lowRuns = -1;\n\n\t\tvar resetPreloading = function(e){\n\t\t\tisLoading--;\n\t\t\tif(!e || isLoading < 0 || !e.target){\n\t\t\t\tisLoading = 0;\n\t\t\t}\n\t\t};\n\n\t\tvar isVisible = function (elem) {\n\t\t\tif (isBodyHidden == null) {\n\t\t\t\tisBodyHidden = getCSS(document.body, 'visibility') == 'hidden';\n\t\t\t}\n\n\t\t\treturn isBodyHidden || (getCSS(elem.parentNode, 'visibility') != 'hidden' && getCSS(elem, 'visibility') != 'hidden');\n\t\t};\n\n\t\tvar isNestedVisible = function(elem, elemExpand){\n\t\t\tvar outerRect;\n\t\t\tvar parent = elem;\n\t\t\tvar visible = isVisible(elem);\n\n\t\t\teLtop -= elemExpand;\n\t\t\teLbottom += elemExpand;\n\t\t\teLleft -= elemExpand;\n\t\t\teLright += elemExpand;\n\n\t\t\twhile(visible && (parent = parent.offsetParent) && parent != document.body && parent != docElem){\n\t\t\t\tvisible = ((getCSS(parent, 'opacity') || 1) > 0);\n\n\t\t\t\tif(visible && getCSS(parent, 'overflow') != 'visible'){\n\t\t\t\t\touterRect = parent.getBoundingClientRect();\n\t\t\t\t\tvisible = eLright > outerRect.left &&\n\t\t\t\t\t\teLleft < outerRect.right &&\n\t\t\t\t\t\teLbottom > outerRect.top - 1 &&\n\t\t\t\t\t\teLtop < outerRect.bottom + 1\n\t\t\t\t\t;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn visible;\n\t\t};\n\n\t\tvar checkElements = function() {\n\t\t\tvar eLlen, i, rect, autoLoadElem, loadedSomething, elemExpand, elemNegativeExpand, elemExpandVal,\n\t\t\t\tbeforeExpandVal, defaultExpand, preloadExpand, hFac;\n\t\t\tvar lazyloadElems = lazysizes.elements;\n\n\t\t\tif((loadMode = lazySizesConfig.loadMode) && isLoading < 8 && (eLlen = lazyloadElems.length)){\n\n\t\t\t\ti = 0;\n\n\t\t\t\tlowRuns++;\n\n\t\t\t\tdefaultExpand = (!lazySizesConfig.expand || lazySizesConfig.expand < 1) ?\n\t\t\t\t\tdocElem.clientHeight > 500 && docElem.clientWidth > 500 ? 500 : 370 :\n\t\t\t\t\tlazySizesConfig.expand;\n\n\t\t\t\tlazysizes._defEx = defaultExpand;\n\n\t\t\t\tpreloadExpand = defaultExpand * lazySizesConfig.expFactor;\n\t\t\t\thFac = lazySizesConfig.hFac;\n\t\t\t\tisBodyHidden = null;\n\n\t\t\t\tif(currentExpand < preloadExpand && isLoading < 1 && lowRuns > 2 && loadMode > 2 && !document.hidden){\n\t\t\t\t\tcurrentExpand = preloadExpand;\n\t\t\t\t\tlowRuns = 0;\n\t\t\t\t} else if(loadMode > 1 && lowRuns > 1 && isLoading < 6){\n\t\t\t\t\tcurrentExpand = defaultExpand;\n\t\t\t\t} else {\n\t\t\t\t\tcurrentExpand = shrinkExpand;\n\t\t\t\t}\n\n\t\t\t\tfor(; i < eLlen; i++){\n\n\t\t\t\t\tif(!lazyloadElems[i] || lazyloadElems[i]._lazyRace){continue;}\n\n\t\t\t\t\tif(!supportScroll){unveilElement(lazyloadElems[i]);continue;}\n\n\t\t\t\t\tif(!(elemExpandVal = lazyloadElems[i][_getAttribute]('data-expand')) || !(elemExpand = elemExpandVal * 1)){\n\t\t\t\t\t\telemExpand = currentExpand;\n\t\t\t\t\t}\n\n\t\t\t\t\tif(beforeExpandVal !== elemExpand){\n\t\t\t\t\t\teLvW = innerWidth + (elemExpand * hFac);\n\t\t\t\t\t\telvH = innerHeight + elemExpand;\n\t\t\t\t\t\telemNegativeExpand = elemExpand * -1;\n\t\t\t\t\t\tbeforeExpandVal = elemExpand;\n\t\t\t\t\t}\n\n\t\t\t\t\trect = lazyloadElems[i].getBoundingClientRect();\n\n\t\t\t\t\tif ((eLbottom = rect.bottom) >= elemNegativeExpand &&\n\t\t\t\t\t\t(eLtop = rect.top) <= elvH &&\n\t\t\t\t\t\t(eLright = rect.right) >= elemNegativeExpand * hFac &&\n\t\t\t\t\t\t(eLleft = rect.left) <= eLvW &&\n\t\t\t\t\t\t(eLbottom || eLright || eLleft || eLtop) &&\n\t\t\t\t\t\t(lazySizesConfig.loadHidden || isVisible(lazyloadElems[i])) &&\n\t\t\t\t\t\t((isCompleted && isLoading < 3 && !elemExpandVal && (loadMode < 3 || lowRuns < 4)) || isNestedVisible(lazyloadElems[i], elemExpand))){\n\t\t\t\t\t\tunveilElement(lazyloadElems[i]);\n\t\t\t\t\t\tloadedSomething = true;\n\t\t\t\t\t\tif(isLoading > 9){break;}\n\t\t\t\t\t} else if(!loadedSomething && isCompleted && !autoLoadElem &&\n\t\t\t\t\t\tisLoading < 4 && lowRuns < 4 && loadMode > 2 &&\n\t\t\t\t\t\t(preloadElems[0] || lazySizesConfig.preloadAfterLoad) &&\n\t\t\t\t\t\t(preloadElems[0] || (!elemExpandVal && ((eLbottom || eLright || eLleft || eLtop) || lazyloadElems[i][_getAttribute](lazySizesConfig.sizesAttr) != 'auto')))){\n\t\t\t\t\t\tautoLoadElem = preloadElems[0] || lazyloadElems[i];\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif(autoLoadElem && !loadedSomething){\n\t\t\t\t\tunveilElement(autoLoadElem);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tvar throttledCheckElements = throttle(checkElements);\n\n\t\tvar switchLoadingClass = function(e){\n\t\t\tvar elem = e.target;\n\n\t\t\tif (elem._lazyCache) {\n\t\t\t\tdelete elem._lazyCache;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tresetPreloading(e);\n\t\t\taddClass(elem, lazySizesConfig.loadedClass);\n\t\t\tremoveClass(elem, lazySizesConfig.loadingClass);\n\t\t\taddRemoveLoadEvents(elem, rafSwitchLoadingClass);\n\t\t\ttriggerEvent(elem, 'lazyloaded');\n\t\t};\n\t\tvar rafedSwitchLoadingClass = rAFIt(switchLoadingClass);\n\t\tvar rafSwitchLoadingClass = function(e){\n\t\t\trafedSwitchLoadingClass({target: e.target});\n\t\t};\n\n\t\tvar changeIframeSrc = function(elem, src){\n\t\t\ttry {\n\t\t\t\telem.contentWindow.location.replace(src);\n\t\t\t} catch(e){\n\t\t\t\telem.src = src;\n\t\t\t}\n\t\t};\n\n\t\tvar handleSources = function(source){\n\t\t\tvar customMedia;\n\n\t\t\tvar sourceSrcset = source[_getAttribute](lazySizesConfig.srcsetAttr);\n\n\t\t\tif( (customMedia = lazySizesConfig.customMedia[source[_getAttribute]('data-media') || source[_getAttribute]('media')]) ){\n\t\t\t\tsource.setAttribute('media', customMedia);\n\t\t\t}\n\n\t\t\tif(sourceSrcset){\n\t\t\t\tsource.setAttribute('srcset', sourceSrcset);\n\t\t\t}\n\t\t};\n\n\t\tvar lazyUnveil = rAFIt(function (elem, detail, isAuto, sizes, isImg){\n\t\t\tvar src, srcset, parent, isPicture, event, firesLoad;\n\n\t\t\tif(!(event = triggerEvent(elem, 'lazybeforeunveil', detail)).defaultPrevented){\n\n\t\t\t\tif(sizes){\n\t\t\t\t\tif(isAuto){\n\t\t\t\t\t\taddClass(elem, lazySizesConfig.autosizesClass);\n\t\t\t\t\t} else {\n\t\t\t\t\t\telem.setAttribute('sizes', sizes);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tsrcset = elem[_getAttribute](lazySizesConfig.srcsetAttr);\n\t\t\t\tsrc = elem[_getAttribute](lazySizesConfig.srcAttr);\n\n\t\t\t\tif(isImg) {\n\t\t\t\t\tparent = elem.parentNode;\n\t\t\t\t\tisPicture = parent && regPicture.test(parent.nodeName || '');\n\t\t\t\t}\n\n\t\t\t\tfiresLoad = detail.firesLoad || (('src' in elem) && (srcset || src || isPicture));\n\n\t\t\t\tevent = {target: elem};\n\n\t\t\t\taddClass(elem, lazySizesConfig.loadingClass);\n\n\t\t\t\tif(firesLoad){\n\t\t\t\t\tclearTimeout(resetPreloadingTimer);\n\t\t\t\t\tresetPreloadingTimer = setTimeout(resetPreloading, 2500);\n\t\t\t\t\taddRemoveLoadEvents(elem, rafSwitchLoadingClass, true);\n\t\t\t\t}\n\n\t\t\t\tif(isPicture){\n\t\t\t\t\tforEach.call(parent.getElementsByTagName('source'), handleSources);\n\t\t\t\t}\n\n\t\t\t\tif(srcset){\n\t\t\t\t\telem.setAttribute('srcset', srcset);\n\t\t\t\t} else if(src && !isPicture){\n\t\t\t\t\tif(regIframe.test(elem.nodeName)){\n\t\t\t\t\t\tchangeIframeSrc(elem, src);\n\t\t\t\t\t} else {\n\t\t\t\t\t\telem.src = src;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif(isImg && (srcset || isPicture)){\n\t\t\t\t\tupdatePolyfill(elem, {src: src});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif(elem._lazyRace){\n\t\t\t\tdelete elem._lazyRace;\n\t\t\t}\n\t\t\tremoveClass(elem, lazySizesConfig.lazyClass);\n\n\t\t\trAF(function(){\n\t\t\t\t// Part of this can be removed as soon as this fix is older: https://bugs.chromium.org/p/chromium/issues/detail?id=7731 (2015)\n\t\t\t\tvar isLoaded = elem.complete && elem.naturalWidth > 1;\n\n\t\t\t\tif( !firesLoad || isLoaded){\n\t\t\t\t\tif (isLoaded) {\n\t\t\t\t\t\taddClass(elem, 'ls-is-cached');\n\t\t\t\t\t}\n\t\t\t\t\tswitchLoadingClass(event);\n\t\t\t\t\telem._lazyCache = true;\n\t\t\t\t\tsetTimeout(function(){\n\t\t\t\t\t\tif ('_lazyCache' in elem) {\n\t\t\t\t\t\t\tdelete elem._lazyCache;\n\t\t\t\t\t\t}\n\t\t\t\t\t}, 9);\n\t\t\t\t}\n\t\t\t}, true);\n\t\t});\n\n\t\tvar unveilElement = function (elem){\n\t\t\tvar detail;\n\n\t\t\tvar isImg = regImg.test(elem.nodeName);\n\n\t\t\t//allow using sizes=\"auto\", but don't use. it's invalid. Use data-sizes=\"auto\" or a valid value for sizes instead (i.e.: sizes=\"80vw\")\n\t\t\tvar sizes = isImg && (elem[_getAttribute](lazySizesConfig.sizesAttr) || elem[_getAttribute]('sizes'));\n\t\t\tvar isAuto = sizes == 'auto';\n\n\t\t\tif( (isAuto || !isCompleted) && isImg && (elem[_getAttribute]('src') || elem.srcset) && !elem.complete && !hasClass(elem, lazySizesConfig.errorClass) && hasClass(elem, lazySizesConfig.lazyClass)){return;}\n\n\t\t\tdetail = triggerEvent(elem, 'lazyunveilread').detail;\n\n\t\t\tif(isAuto){\n\t\t\t\t autoSizer.updateElem(elem, true, elem.offsetWidth);\n\t\t\t}\n\n\t\t\telem._lazyRace = true;\n\t\t\tisLoading++;\n\n\t\t\tlazyUnveil(elem, detail, isAuto, sizes, isImg);\n\t\t};\n\n\t\tvar onload = function(){\n\t\t\tif(isCompleted){return;}\n\t\t\tif(Date.now() - started < 999){\n\t\t\t\tsetTimeout(onload, 999);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar afterScroll = debounce(function(){\n\t\t\t\tlazySizesConfig.loadMode = 3;\n\t\t\t\tthrottledCheckElements();\n\t\t\t});\n\n\t\t\tisCompleted = true;\n\n\t\t\tlazySizesConfig.loadMode = 3;\n\n\t\t\tthrottledCheckElements();\n\n\t\t\taddEventListener('scroll', function(){\n\t\t\t\tif(lazySizesConfig.loadMode == 3){\n\t\t\t\t\tlazySizesConfig.loadMode = 2;\n\t\t\t\t}\n\t\t\t\tafterScroll();\n\t\t\t}, true);\n\t\t};\n\n\t\treturn {\n\t\t\t_: function(){\n\t\t\t\tstarted = Date.now();\n\n\t\t\t\tlazysizes.elements = document.getElementsByClassName(lazySizesConfig.lazyClass);\n\t\t\t\tpreloadElems = document.getElementsByClassName(lazySizesConfig.lazyClass + ' ' + lazySizesConfig.preloadClass);\n\n\t\t\t\taddEventListener('scroll', throttledCheckElements, true);\n\n\t\t\t\taddEventListener('resize', throttledCheckElements, true);\n\n\t\t\t\tif(window.MutationObserver){\n\t\t\t\t\tnew MutationObserver( throttledCheckElements ).observe( docElem, {childList: true, subtree: true, attributes: true} );\n\t\t\t\t} else {\n\t\t\t\t\tdocElem[_addEventListener]('DOMNodeInserted', throttledCheckElements, true);\n\t\t\t\t\tdocElem[_addEventListener]('DOMAttrModified', throttledCheckElements, true);\n\t\t\t\t\tsetInterval(throttledCheckElements, 999);\n\t\t\t\t}\n\n\t\t\t\taddEventListener('hashchange', throttledCheckElements, true);\n\n\t\t\t\t//, 'fullscreenchange'\n\t\t\t\t['focus', 'mouseover', 'click', 'load', 'transitionend', 'animationend', 'webkitAnimationEnd'].forEach(function(name){\n\t\t\t\t\tdocument[_addEventListener](name, throttledCheckElements, true);\n\t\t\t\t});\n\n\t\t\t\tif((/d$|^c/.test(document.readyState))){\n\t\t\t\t\tonload();\n\t\t\t\t} else {\n\t\t\t\t\taddEventListener('load', onload);\n\t\t\t\t\tdocument[_addEventListener]('DOMContentLoaded', throttledCheckElements);\n\t\t\t\t\tsetTimeout(onload, 20000);\n\t\t\t\t}\n\n\t\t\t\tif(lazysizes.elements.length){\n\t\t\t\t\tcheckElements();\n\t\t\t\t\trAF._lsFlush();\n\t\t\t\t} else {\n\t\t\t\t\tthrottledCheckElements();\n\t\t\t\t}\n\t\t\t},\n\t\t\tcheckElems: throttledCheckElements,\n\t\t\tunveil: unveilElement\n\t\t};\n\t})();\n\n\n\tvar autoSizer = (function(){\n\t\tvar autosizesElems;\n\n\t\tvar sizeElement = rAFIt(function(elem, parent, event, width){\n\t\t\tvar sources, i, len;\n\t\t\telem._lazysizesWidth = width;\n\t\t\twidth += 'px';\n\n\t\t\telem.setAttribute('sizes', width);\n\n\t\t\tif(regPicture.test(parent.nodeName || '')){\n\t\t\t\tsources = parent.getElementsByTagName('source');\n\t\t\t\tfor(i = 0, len = sources.length; i < len; i++){\n\t\t\t\t\tsources[i].setAttribute('sizes', width);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif(!event.detail.dataAttr){\n\t\t\t\tupdatePolyfill(elem, event.detail);\n\t\t\t}\n\t\t});\n\t\tvar getSizeElement = function (elem, dataAttr, width){\n\t\t\tvar event;\n\t\t\tvar parent = elem.parentNode;\n\n\t\t\tif(parent){\n\t\t\t\twidth = getWidth(elem, parent, width);\n\t\t\t\tevent = triggerEvent(elem, 'lazybeforesizes', {width: width, dataAttr: !!dataAttr});\n\n\t\t\t\tif(!event.defaultPrevented){\n\t\t\t\t\twidth = event.detail.width;\n\n\t\t\t\t\tif(width && width !== elem._lazysizesWidth){\n\t\t\t\t\t\tsizeElement(elem, parent, event, width);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tvar updateElementsSizes = function(){\n\t\t\tvar i;\n\t\t\tvar len = autosizesElems.length;\n\t\t\tif(len){\n\t\t\t\ti = 0;\n\n\t\t\t\tfor(; i < len; i++){\n\t\t\t\t\tgetSizeElement(autosizesElems[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tvar debouncedUpdateElementsSizes = debounce(updateElementsSizes);\n\n\t\treturn {\n\t\t\t_: function(){\n\t\t\t\tautosizesElems = document.getElementsByClassName(lazySizesConfig.autosizesClass);\n\t\t\t\taddEventListener('resize', debouncedUpdateElementsSizes);\n\t\t\t},\n\t\t\tcheckElems: debouncedUpdateElementsSizes,\n\t\t\tupdateElem: getSizeElement\n\t\t};\n\t})();\n\n\tvar init = function(){\n\t\tif(!init.i){\n\t\t\tinit.i = true;\n\t\t\tautoSizer._();\n\t\t\tloader._();\n\t\t}\n\t};\n\n\tlazysizes = {\n\t\tcfg: lazySizesConfig,\n\t\tautoSizer: autoSizer,\n\t\tloader: loader,\n\t\tinit: init,\n\t\tuP: updatePolyfill,\n\t\taC: addClass,\n\t\trC: removeClass,\n\t\thC: hasClass,\n\t\tfire: triggerEvent,\n\t\tgW: getWidth,\n\t\trAF: rAF,\n\t};\n\n\treturn lazysizes;\n}\n));\n\n\n\n// WEBPACK FOOTER //\n// ./~/lazysizes/lazysizes.js","'use strict';\n\nvar focusHelper = require('../components/focus');\n\n/**\n * Parses the html for a modal window\n * @param {string} html - representing the body and footer of the modal window\n *\n * @return {Object} - Object with properties body and footer.\n */\nfunction parseHtml(html) {\n var $html = $('
').append($.parseHTML(html));\n\n var body = $html.find('.choice-of-bonus-product');\n var footer = $html.find('.modal-footer').children();\n\n return {\n body: body,\n footer: footer\n };\n}\n\n/**\n * Retrieves url to use when adding a product to the cart\n *\n * @param {Object} data - data object used to fill in dynamic portions of the html\n */\nfunction chooseBonusProducts(data) {\n $('.modal-body').spinner().start();\n\n if ($('#chooseBonusProductModal').length !== 0) {\n $('#chooseBonusProductModal').remove();\n }\n var bonusUrl;\n if (data.bonusChoiceRuleBased) {\n bonusUrl = data.showProductsUrlRuleBased;\n } else {\n bonusUrl = data.showProductsUrlListBased;\n }\n\n var htmlString = '' +\n '
' +\n '' +\n '
' +\n '' +\n '
' +\n '
' +\n ' ' + data.labels.selectprods + '' +\n ' ' +\n '
' +\n '
' +\n '
' +\n '
' +\n '
' +\n '
';\n $('body').append(htmlString);\n $('.modal-body').spinner().start();\n\n $.ajax({\n url: bonusUrl,\n method: 'GET',\n dataType: 'json',\n success: function(response) {\n var parsedHtml = parseHtml(response.renderedTemplate);\n $('#chooseBonusProductModal .modal-body').empty();\n $('#chooseBonusProductModal .enter-message').text(response.enterDialogMessage);\n $('#chooseBonusProductModal .modal-header .close .sr-only').text(response.closeButtonText);\n $('#chooseBonusProductModal .modal-body').html(parsedHtml.body);\n $('#chooseBonusProductModal .modal-footer').html(parsedHtml.footer);\n $('#chooseBonusProductModal').modal('show');\n $.spinner().stop();\n },\n error: function() {\n $.spinner().stop();\n }\n });\n}\n\nmodule.exports = {\n\n methods: {\n editBonusProducts: function(data) {\n chooseBonusProducts(data);\n }\n },\n\n chooseBonusProducts: chooseBonusProducts,\n\n focusChooseBonusProductModal: function() {\n $('body').on('shown.bs.modal', '#chooseBonusProductModal', function() {\n $('#chooseBonusProductModal').siblings().attr('aria-hidden', 'true');\n $('#chooseBonusProductModal .close').focus();\n });\n },\n\n onClosingChooseBonusProductModal: function() {\n $('body').on('hidden.bs.modal', '#chooseBonusProductModal', function() {\n $('#chooseBonusProductModal').siblings().attr('aria-hidden', 'false');\n });\n },\n\n trapChooseBonusProductModalFocus: function() {\n $('body').on('keydown', '#chooseBonusProductModal', function(e) {\n var focusParams = {\n event: e,\n containerSelector: '#chooseBonusProductModal',\n firstElementSelector: '.close',\n lastElementSelector: '.add-bonus-products'\n };\n focusHelper.setTabNextFocus(focusParams);\n });\n },\n\n selectBonusProduct: function() {\n $(document).on('click', '.select-bonus-product', function() {\n var $choiceOfBonusProduct = $(this).parents('.choice-of-bonus-product');\n var pid = $(this).data('pid');\n var maxPids = $('.choose-bonus-product-dialog').data('total-qty');\n var submittedQty = parseInt($choiceOfBonusProduct.find('.bonus-quantity-select').val(), 10);\n var totalQty = 0;\n $.each($('#chooseBonusProductModal .selected-bonus-products .selected-pid'), function() {\n totalQty += $(this).data('qty');\n });\n totalQty += submittedQty;\n var optionID = $choiceOfBonusProduct.find('.product-option').data('option-id');\n var valueId = $choiceOfBonusProduct.find('.options-select option:selected').data('valueId');\n if (totalQty <= maxPids) {\n var selectedBonusProductHtml = '' +\n '
' +\n '
' +\n $choiceOfBonusProduct.find('.product-name').html() +\n '
' +\n '
' +\n '
';\n $('#chooseBonusProductModal .selected-bonus-products').append(selectedBonusProductHtml);\n $('.pre-cart-products').html(totalQty);\n $('.selected-bonus-products .bonus-summary').removeClass('alert-danger');\n } else {\n $('.selected-bonus-products .bonus-summary').addClass('alert-danger');\n }\n });\n },\n removeBonusProduct: function() {\n $(document).on('click', '.selected-pid', function() {\n $(this).remove();\n var $selected = $('#chooseBonusProductModal .selected-bonus-products .selected-pid');\n var count = 0;\n if ($selected.length) {\n $selected.each(function() {\n count += parseInt($(this).data('qty'), 10);\n });\n }\n\n $('.pre-cart-products').html(count);\n $('.selected-bonus-products .bonus-summary').removeClass('alert-danger');\n });\n },\n enableBonusProductSelection: function() {\n $('body').on('bonusproduct:updateSelectButton', function(e, response) {\n $('button.select-bonus-product', response.$productContainer).attr('disabled',\n (!response.product.readyToOrder || !response.product.available));\n var pid = response.product.id;\n $('button.select-bonus-product', response.$productContainer).data('pid', pid);\n });\n },\n showMoreBonusProducts: function() {\n $(document).on('click', '.show-more-bonus-products', function() {\n var url = $(this).data('url');\n $('.modal-content').spinner().start();\n $.ajax({\n url: url,\n method: 'GET',\n success: function(html) {\n var parsedHtml = parseHtml(html);\n $('.modal-body').append(parsedHtml.body);\n $('.show-more-bonus-products:first').remove();\n $('.modal-content').spinner().stop();\n },\n error: function() {\n $('.modal-content').spinner().stop();\n }\n });\n });\n },\n addBonusProductsToCart: function() {\n $(document).on('click', '.add-bonus-products', function() {\n var $readyToOrderBonusProducts = $('.choose-bonus-product-dialog .selected-pid');\n var queryString = '?pids=';\n var url = $('.choose-bonus-product-dialog').data('addtocarturl');\n var pidsObject = {\n bonusProducts: []\n };\n\n $.each($readyToOrderBonusProducts, function() {\n var qtyOption =\n parseInt($(this)\n .data('qty'), 10);\n\n var option = null;\n if (qtyOption > 0) {\n if ($(this).data('optionid') && $(this).data('option-selected-value')) {\n option = {};\n option.optionId = $(this).data('optionid');\n option.productId = $(this).data('pid');\n option.selectedValueId = $(this).data('option-selected-value');\n }\n pidsObject.bonusProducts.push({\n pid: $(this).data('pid'),\n qty: qtyOption,\n options: [option]\n });\n pidsObject.totalQty = parseInt($('.pre-cart-products').html(), 10);\n }\n });\n queryString += JSON.stringify(pidsObject);\n queryString = queryString + '&uuid=' + $('.choose-bonus-product-dialog').data('uuid');\n queryString = queryString + '&pliuuid=' + $('.choose-bonus-product-dialog').data('pliuuid');\n $.spinner().start();\n $.ajax({\n url: url + queryString,\n method: 'POST',\n success: function(data) {\n $.spinner().stop();\n if (data.error) {\n $('#chooseBonusProductModal').modal('hide');\n if ($('.add-to-cart-messages').length === 0) {\n $('body').append('
');\n }\n $('.add-to-cart-messages').append(\n '
' +\n data.errorMessage + '
'\n );\n setTimeout(function() {\n $('.add-to-basket-alert').remove();\n }, 3000);\n } else {\n $('.configure-bonus-product-attributes').html(data);\n $('.bonus-products-step2').removeClass('hidden-xl-down');\n $('#chooseBonusProductModal').modal('hide');\n\n if ($('.add-to-cart-messages').length === 0) {\n $('body').append('
');\n }\n $('.minicart-quantity').html(data.totalQty);\n $('.add-to-cart-messages').append(\n '
' +\n data.msgSuccess + '
'\n );\n setTimeout(function() {\n $('.add-to-basket-alert').remove();\n if ($('.cart-page').length) {\n location.reload();\n }\n }, 1500);\n }\n },\n error: function() {\n $.spinner().stop();\n }\n });\n });\n }\n};\n\n\n\n// WEBPACK FOOTER //\n// ./cartridges/app_bata_sfra/cartridge/client/default/js/product/bonusProductHelpers.js","'use strict';\n\nvar base = require('./base'),\n bonusProductHelpers = require('./bonusProductHelpers'),\n detectDevice = require('../utils/detectDevice');\n\nfunction sizeIsSelectedFunc($elem) {\n var isDisabled = $elem.data('is-disabled');\n var isOneSizePLP = $elem.parents('.cc-content-button').prev('.color-swatches').find('.select-size').length <= 0;\n var isOneSizePDP = $elem.parents('.pdp-col-description').find('.container-size-list').length <= 0;\n\n if ((isDisabled === true || isDisabled === 'true') &&\n (!isOneSizePLP || !isOneSizePDP)) { // if button is disabled and prod is not a oneSize prod, no msg hint'll be shown\n $elem.parents('.product-detail').find('.availability-msg .availability-msg-hint').removeClass('d-none'); // pdp size hint logic\n $elem.parents('.container-tile-hover').find('.availability-msg .availability-msg-hint').removeClass('d-none'); // plp size hint logic\n return false;\n } else {\n return true;\n }\n}\n\n/**\n * Retrieve product options\n *\n * @param {jQuery} $productContainer - DOM element for current product\n * @return {string} - Product options and their selected values\n */\nfunction getOptions($productContainer) {\n var options = $productContainer\n .find('.product-option')\n .map(function() {\n var $elOption = $(this).find('.options-select');\n var urlValue = $elOption.val();\n var selectedValueId = $elOption.find('option[value=\"' + urlValue + '\"]')\n .data('value-id');\n return {\n optionId: $(this).data('option-id'),\n selectedValueId: selectedValueId\n };\n }).toArray();\n\n return JSON.stringify(options);\n}\n\n/**\n * Retrieves url to use when adding a product to the cart\n *\n * @return {string} - The provided URL to use when adding a product to the cart\n */\nfunction getAddToCartUrl() {\n return $('.add-to-cart-url').val();\n}\n\n/**\n * Retrieves the bundle product item ID's for the Controller to replace bundle master product\n * items with their selected variants\n *\n * @return {string[]} - List of selected bundle product item ID's\n */\nfunction getChildProducts() {\n var childProducts = [];\n $('.bundle-item').each(function() {\n childProducts.push({\n pid: $(this).find('.product-id').text(),\n quantity: parseInt($(this).find('label.quantity').data('quantity'), 10)\n });\n });\n\n return childProducts.length ? JSON.stringify(childProducts) : [];\n}\n\n/**\n * Retrieve contextual quantity selector\n * @param {jquery} $el - DOM container for the relevant quantity\n * @return {jquery} - quantity selector DOM container\n */\nfunction getQuantitySelector($el) {\n return $el && $('.set-items').length\n ? $($el).closest('.product-detail').find('.quantity-select')\n : $('.quantity-select');\n}\n\n/**\n * Retrieves the value associated with the Quantity pull-down menu\n * @param {jquery} $el - DOM container for the relevant quantity\n * @return {string} - value found in the quantity input\n */\nfunction getQuantitySelected($el) {\n return getQuantitySelector($el).val();\n}\n\n/**\n * Updates the Mini-Cart quantity value after the customer has pressed the \"Add to Cart\" button\n * @param {string} response - ajax response from clicking the add to cart button\n */\nfunction handlePostCartAdd(response) {\n $('.minicart').trigger('count:update', response);\n var messageType = response.error ? 'alert-danger' : 'alert-success';\n // show add to cart toast\n if (response.newBonusDiscountLineItem &&\n Object.keys(response.newBonusDiscountLineItem).length !== 0) {\n bonusProductHelpers.chooseBonusProducts(response.newBonusDiscountLineItem);\n } else {\n if ($('.add-to-cart-messages').length === 0) {\n $('body').append(\n '
'\n );\n }\n\n $('.add-to-cart-messages').append(\n '
' +\n response.message +\n '
'\n );\n\n setTimeout(function() {\n $('.add-to-basket-alert').remove();\n }, 5000);\n }\n}\n\nfunction showMiniCart(reportingURL) {\n return new $.Deferred(function(deferred) {\n base.miniCartReportingUrl(reportingURL);\n $('.cc-minicart-overlay').addClass('opened-by-add-to-bag');\n var minicartTimeout = parseInt($('#minicartIcon').data('timeout'));\n\n if (minicartTimeout > 0) {\n setTimeout(function() {\n if ($('.cc-minicart-overlay').hasClass('opened-by-add-to-bag')) {\n $('#closeMiniCartButton').click();\n $('.cc-minicart-overlay').removeClass('opened-by-add-to-bag');\n deferred.resolve();\n }\n }, minicartTimeout);\n }\n }).promise();\n}\n\nmodule.exports = {\n addToCart: function() {\n $('.container').on('click', 'button.add-to-cart, button.add-to-cart-global', function(e) {\n e.preventDefault();\n e.stopPropagation();\n e.stopImmediatePropagation();\n\n var addToCartUrl;\n var pid;\n var pidsObj;\n var setPids;\n\n const $self = $(this);\n\n var sizeIsSelected = sizeIsSelectedFunc($self);\n if (!sizeIsSelected) {\n return;\n }\n\n $('body').trigger('product:beforeAddToCart', this);\n\n if ($('.set-items').length && $self.hasClass('add-to-cart-global')) {\n setPids = [];\n\n $('.product-detail').each(function() {\n if (!$self.hasClass('product-set-detail')) {\n setPids.push({\n pid: $self.find('.product-id').text(),\n qty: $self.find('.quantity-select').val(),\n options: getOptions($self)\n });\n }\n });\n pidsObj = JSON.stringify(setPids);\n }\n\n pid = base.getPidValue($self);\n\n var $productContainer = $self.closest('.product-detail');\n if (!$productContainer.length) {\n $productContainer = $self.closest('.quick-view-dialog').find('.product-detail');\n }\n\n addToCartUrl = getAddToCartUrl();\n\n var form = {\n pid: pid,\n pidsObj: pidsObj,\n childProducts: getChildProducts(),\n quantity: getQuantitySelected($self) || 1\n };\n\n if ($('body').hasClass('checkOutPage')) {\n form.checkOutPage = true;\n }\n\n if (!$('.bundle-item').length) {\n form.options = getOptions($productContainer);\n }\n\n //IN-AR TRY ON\n var tryOnButton = $('.js-tryOn-button'),\n dataEvent = {};\n\n if (tryOnButton && tryOnButton.length > 0) {\n var tryOnDesktopClick = 'false',\n tryOnMobileRedirect = 'false';\n //If the device is Mobile/Tablet we will have the info of the Try-on usage in a specific div\n if (detectDevice.detectMobile()) {\n tryOnMobileRedirect = $('.try-on-redirected').attr('data-used-try-on');\n }\n //If the device is Desktop we will have the info of the Try-on button clicked in the button itself\n else {\n if (tryOnButton.length > 0) {\n tryOnDesktopClick = $('.js-tryOn-button').attr('data-ga-cliked');\n }\n }\n\n form.tryOnDesktopClick = tryOnDesktopClick;\n form.tryOnMobileRedirect = tryOnMobileRedirect;\n }\n\n // Analytics data\n $('body').trigger('analytics:addToCartSubmitting', form);\n\n $(this).trigger('updateAddToCartFormData', form);\n if (addToCartUrl) {\n $.ajax({\n url: addToCartUrl,\n method: 'POST',\n data: form,\n success: function(data) {\n if (data.limitMessage || data.unavailableItemAdded) {\n $('#cartLimit-modal-body').text(data.limitMessage || '');\n $('#cartLimit-modal').modal('show');\n $.spinner().stop();\n } else {\n //normal behavior\n handlePostCartAdd(data);\n //update the minicart price total\n $('.js-header').removeClass('cc-header__tag__scrollDown');\n if ($('.minicartIconPrice').length > 0) {\n $('.minicartIconPrice').html(data.cart.totals.subTotal);\n }\n $('#analytics-cartInfo').data('value', data.cart && data.cart.totals && data.cart.totals.grandTotalDecimal);\n $('#analytics-cartInfo').data('couponsName', data.cart && data.cart.couponNamesString);\n $('body').trigger('product:afterAddToCart', data);\n\n //analytics event\n dataEvent.productID = pid;\n if (tryOnButton && tryOnButton.length > 0) {\n dataEvent.tryOnDesktopClick = tryOnDesktopClick;\n dataEvent.tryOnMobileRedirect = tryOnMobileRedirect;\n }\n\n $('body').trigger('analytics:addToCart', dataEvent);\n\n $.spinner().stop();\n base.miniCartReportingUrl(data.reportingURL);\n $('.cc-minicart-overlay').addClass('opened-by-add-to-bag');\n var minicartTimeout = parseInt($('#minicartIcon').data('timeout'));\n\n // if (minicartTimeout > 0) {\n // setTimeout(function() {\n // if ($('.cc-minicart-overlay').hasClass('opened-by-add-to-bag')) {\n // //close minicart only of is opened automatically from pdp or plp or wishlist\n // $('#closeMiniCartButton').click();\n // $('.cc-minicart-overlay').removeClass('opened-by-add-to-bag');\n // }\n // }, minicartTimeout);\n // }\n\n var isCartPage = $('.cc-cart-container');\n\n showMiniCart(data.reportingURL).then(function() {\n if(isCartPage.length > 0) {\n window.location.reload();\n }\n });\n }\n },\n error: function() {\n $.spinner().stop();\n }\n });\n }\n });\n }\n};\n\n\n\n// WEBPACK FOOTER //\n// ./cartridges/app_bata_sfra/cartridge/client/default/js/product/addToCartHelper.js","'use strict';\n\n/**\n * appends params to a url\n * @param {string} url - Original url\n * @param {Object} params - Parameters to append\n * @returns {string} result url with appended parameters\n */\nfunction appendToUrl(url, params) {\n var newUrl = url;\n newUrl += (newUrl.indexOf('?') !== -1 ? '&' : '?') + Object.keys(params).map(function(key) {\n return key + '=' + encodeURIComponent(params[key]);\n }).join('&');\n\n return newUrl;\n}\n\nmodule.exports = {\n\n addAndRemoveToWishlist: function() {\n\n $('.container').on(\n 'click',\n '.add-to-wish-list',\n function(e) {\n e.stopPropagation();\n e.preventDefault();\n e.stopImmediatePropagation();\n var loggedin = $('.js-userIcon').length > 0 ? true : false;\n\n if ((!$(this).closest('.product-tile').find('.js-tile-open-overlay').hasClass('js-noSize')) && ($(this).closest('.cc-col-tile').find('.js-sizeBtn.active').length === 0)) {\n $(this).closest('.product-tile').addClass('js-addWishlist');\n $(this).closest('.product-tile').find('.js-tile-open-overlay').trigger('click');\n return;\n }\n\n if (($(this).closest('.product-tile').find('.js-tile-open-overlay').hasClass('js-noSize')) && loggedin == false) {\n window.location.href = $('.loginLink').attr('href');\n\n return;\n }\n\n var addUrl = $(this).data('add-href');\n var removeUrl = $(this).data('remove-href');\n var button = $(this);\n var buttonContentAdd = $(this).find('.wishlist-content-add');\n var buttonContentRemove = $(this).find('.wishlist-content-remove');\n var pid = $(this).closest('.product-tile').find('.add-to-cart').attr('data-pid');\n var optionId = $(this).closest('.product-detail').find('.product-option').attr('data-option-id');\n var optionVal = $(this).closest('.product-detail').find('.options-select option:selected').attr('data-value-id');\n\n optionId = optionId || null;\n optionVal = optionVal || null;\n removeUrl = removeUrl + '?pid=' + pid;\n\n if (!addUrl || !removeUrl || !pid) {\n return;\n }\n\n var isRedirectToLogin = false;\n if (loggedin == false) {\n\n var urlParams = {\n rurl: 4,\n pid: pid,\n oid: optionId,\n oval: optionVal\n };\n\n addUrl = appendToUrl(addUrl, urlParams);\n isRedirectToLogin = true;\n }\n\n if (button.hasClass(\"to-add\")) {\n\n //analytics add to wishlist event\n $('body').trigger('analytics:addToWishlist', pid);\n\n $.spinner().start();\n $.ajax({\n url: addUrl,\n type: 'post',\n dataType: 'json',\n data: {\n pid: pid,\n optionId: optionId,\n optionVal: optionVal\n },\n success: function(data) {\n //see Wishlist-AddProduct\n if (isRedirectToLogin) {\n isRedirectToLogin = false;\n if (data.redirectUrl) {\n window.location.href = data.redirectUrl;\n }\n return;\n }\n if (data.success) {\n buttonContentAdd.addClass('d-none');\n buttonContentRemove.removeClass('d-none');\n button.removeClass('to-add').addClass('to-remove');\n $('.js-tileWrapper').removeClass('js-tileWrapperHover');\n $('.cc-tile-sizes.cc-active').removeClass('cc-active');\n } else {\n if (data.isFull) {\n $('#wishlist-modal-body').text(data.maxProductsMessage);\n $('#wishlist-modal').modal('show');\n }\n }\n if (!data.isFull) {\n window.ProductsInWishlist = data.productsArr;\n var counter = parseInt(data.wishlistSize);\n if (counter > 0) {\n $('.js-wishlistNumber').removeClass('d-none');\n }\n $('.cc-headerBar-link.wishlistLink .js-wishlistNumber').html(counter);\n }\n\n if ($('[data-action=\"Search-Show\"]').length > 0) {\n $('.js-header').removeClass('cc-header__tag__scrollDown');\n }\n $.spinner().stop();\n },\n error: function(err) {\n if (err.responseJSON.redirectUrl) {\n window.location.href = err.responseJSON.redirectUrl;\n }\n }\n });\n } else if (button.hasClass('to-remove') && loggedin == true) {\n\n //analytics remove from wishlist event\n $('body').trigger('analytics:removeFromWishlist', pid);\n\n $.spinner().start();\n $.ajax({\n url: removeUrl,\n type: 'get',\n dataType: 'json',\n data: {},\n success: function(data) {\n //see Wishlist-RemoveProduct\n $.spinner().stop();\n buttonContentAdd.removeClass('d-none');\n buttonContentRemove.addClass('d-none');\n button.removeClass('to-remove').addClass('to-add');\n //------------------------------\n window.ProductsInWishlist = data.productsArr;\n var counter = parseInt(data.wishlistSize);\n if (counter > 0) {\n $('.js-wishlistNumber').removeClass('d-none');\n }\n $('.cc-headerBar-link.wishlistLink .js-wishlistNumber').html(counter);\n },\n error: function() {\n $.spinner().stop();\n }\n });\n }\n });\n }\n};\n\n\n\n// WEBPACK FOOTER //\n// ./cartridges/app_bata_sfra/cartridge/client/default/js/product/wishlistHeart.js","'use strict';\n// var base = require('./base');\nvar focusHelper = require('../components/focus');\n\n/**\n * Generates the modal window on the first call.\n *\n */\nfunction getModalHtmlElement() {\n if ($('#quickViewModal').length !== 0) {\n $('#quickViewModal').remove();\n }\n var htmlString = '' +\n '
' +\n '' +\n '
' +\n '' +\n '
' +\n '
' +\n '' +\n '' +\n '
' +\n '
' +\n '
' +\n '
' +\n '
' +\n '
';\n $('body').append(htmlString);\n}\n\n/**\n * @typedef {Object} QuickViewHtml\n * @property {string} body - Main Quick View body\n * @property {string} footer - Quick View footer content\n */\n\n/**\n * Parse HTML code in Ajax response\n *\n * @param {string} html - Rendered HTML from quickview template\n * @return {QuickViewHtml} - QuickView content components\n */\nfunction parseHtml(html) {\n var $html = $('
').append($.parseHTML(html));\n\n var body = $html.find('.product-quickview');\n var footer = $html.find('.modal-footer').children();\n\n return { body: body, footer: footer };\n}\n\n/**\n * replaces the content in the modal window on for the selected product variation.\n * @param {string} selectedValueUrl - url to be used to retrieve a new product model\n */\nfunction fillModalElement(selectedValueUrl) {\n $('.modal-body').spinner().start();\n $.ajax({\n url: selectedValueUrl,\n method: 'GET',\n dataType: 'json',\n success: function (data) {\n var parsedHtml = parseHtml(data.renderedTemplate);\n\n $('.modal-body').empty();\n $('.modal-body').html(parsedHtml.body);\n $('.modal-footer').html(parsedHtml.footer);\n $('.full-pdp-link').text(data.quickViewFullDetailMsg);\n $('#quickViewModal .full-pdp-link').attr('href', data.productUrl);\n $('#quickViewModal .size-chart').attr('href', data.productUrl);\n $('#quickViewModal .modal-header .close .sr-only').text(data.closeButtonText);\n $('#quickViewModal .enter-message').text(data.enterDialogMessage);\n $('#quickViewModal').modal('show');\n $('body').trigger('quickview:ready');\n\n $.spinner().stop();\n },\n error: function () {\n $.spinner().stop();\n }\n });\n}\n\nmodule.exports = {\n showQuickview: function () {\n $('body').on('click', '.quickview', function (e) {\n e.preventDefault();\n var selectedValueUrl = $(this).closest('a.quickview').attr('href');\n $(e.target).trigger('quickview:show');\n getModalHtmlElement();\n fillModalElement(selectedValueUrl);\n });\n },\n focusQuickview: function () {\n $('body').on('shown.bs.modal', '#quickViewModal', function () {\n $('#quickViewModal .close').focus();\n });\n },\n trapQuickviewFocus: function () {\n $('body').on('keydown', '#quickViewModal', function (e) {\n var focusParams = {\n event: e,\n containerSelector: '#quickViewModal',\n firstElementSelector: '.full-pdp-link',\n lastElementSelector: '.add-to-cart-global',\n nextToLastElementSelector: '.modal-footer .quantity-select'\n };\n focusHelper.setTabNextFocus(focusParams);\n });\n },\n // availability: base.availability,\n // addToCart: base.addToCart,\n showSpinner: function () {\n $('body').on('product:beforeAddToCart', function (e, data) {\n $(data).closest('.modal-content').spinner().start();\n });\n },\n hideDialog: function () {\n $('body').on('product:afterAddToCart', function () {\n $('#quickViewModal').modal('hide');\n });\n },\n beforeUpdateAttribute: function () {\n $('body').on('product:beforeAttributeSelect', function () {\n $('.modal.show .modal-content').spinner().start();\n });\n },\n updateAttribute: function () {\n $('body').on('product:afterAttributeSelect', function (e, response) {\n if ($('.modal.show .product-quickview>.bundle-items').length) {\n $('.modal.show').find(response.container).data('pid', response.data.product.id);\n $('.modal.show').find(response.container)\n .find('.product-id').text(response.data.product.id);\n } else if ($('.set-items').length) {\n response.container.find('.product-id').text(response.data.product.id);\n } else {\n $('.modal.show .product-quickview').data('pid', response.data.product.id);\n $('.modal.show .full-pdp-link')\n .attr('href', response.data.product.selectedProductUrl);\n }\n });\n },\n updateAddToCart: function () {\n $('body').on('product:updateAddToCart', function (e, response) {\n // update local add to cart (for sets)\n $('button.add-to-cart', response.$productContainer).attr('disabled',\n (!response.product.readyToOrder || !response.product.available));\n\n // update global add to cart (single products, bundles)\n var dialog = $(response.$productContainer)\n .closest('.quick-view-dialog');\n\n $('.add-to-cart-global', dialog).attr('disabled',\n !$('.global-availability', dialog).data('ready-to-order') ||\n !$('.global-availability', dialog).data('available')\n );\n });\n },\n updateAvailability: function () {\n $('body').on('product:updateAvailability', function (e, response) {\n // bundle individual products\n $('.product-availability', response.$productContainer)\n .data('ready-to-order', response.product.readyToOrder)\n .data('available', response.product.available)\n .find('.availability-msg')\n .empty()\n .html(response.message);\n\n\n var dialog = $(response.$productContainer)\n .closest('.quick-view-dialog');\n\n if ($('.product-availability', dialog).length) {\n // bundle all products\n var allAvailable = $('.product-availability', dialog).toArray()\n .every(function (item) { return $(item).data('available'); });\n\n var allReady = $('.product-availability', dialog).toArray()\n .every(function (item) { return $(item).data('ready-to-order'); });\n\n $('.global-availability', dialog)\n .data('ready-to-order', allReady)\n .data('available', allAvailable);\n\n $('.global-availability .availability-msg', dialog).empty()\n .html(allReady ? response.message : response.resources.info_selectforstock);\n } else {\n // single product\n $('.global-availability', dialog)\n .data('ready-to-order', response.product.readyToOrder)\n .data('available', response.product.available)\n .find('.availability-msg')\n .empty()\n .html(response.message);\n }\n });\n }\n};\n\n\n\n// WEBPACK FOOTER //\n// ./cartridges/app_bata_sfra/cartridge/client/default/js/product/quickView.js","'use strict';\n\nvar addToCartHelper = require('../product/addToCartHelper');\n\n// Modify the wishlist-add button like normal behavior, if the product can be added or not\nfunction handleWishlistButtonInTile($element, isInWishlist) {\n\n var $button = $element.find('button.add-to-wish-list');\n var isSizeSelected = !!$button.data('is-size-selected');\n var $spanAdd = $button.find('span.wishlist-content-add');\n var $spanRemove = $button.find('span.wishlist-content-remove');\n\n if (isSizeSelected) {\n if (isInWishlist) {\n $button.addClass('to-remove');\n $button.removeClass('to-add');\n\n $spanAdd.addClass('d-none');\n $spanRemove.removeClass('d-none');\n } else {\n $button.addClass('to-add');\n $button.removeClass('to-remove');\n\n $spanRemove.addClass('d-none');\n $spanAdd.removeClass('d-none');\n }\n }\n}\n\n// This function check if the pid in argument is included in the array of products' PID in wishlist\nfunction checkInWishlist(classToRefresh) {\n var productArr = window.ProductsInWishlist;\n\n if (!productArr) {\n return false;\n }\n\n var $element = $('.' + classToRefresh).find('.product.product-tile');\n var newPid = $element.data('pid');\n if (productArr.indexOf(newPid) > -1) {\n handleWishlistButtonInTile($element, true);\n } else {\n handleWishlistButtonInTile($element, false);\n }\n\n}\n\n// Create in window object an array of PID of the wishlist products\nfunction productsInWishlistOnDOMready() {\n window.ProductsInWishlist = [];\n\n var productArrString = $('.wishlist-list.products-in-wishlist').attr('data-products-in-wishlist');\n\n if (!productArrString) {\n return;\n }\n\n var productObj = JSON.parse(productArrString);\n var productArr = productObj.result;\n\n if (!productArr) {\n return;\n }\n\n window.ProductsInWishlist = productArr;\n\n $('.product-grid .column-tile .product.product-tile').each(function() {\n var pid = $(this).data('pid');\n if (productArr.indexOf(pid) > -1) {\n handleWishlistButtonInTile($(this), true);\n } else {\n handleWishlistButtonInTile($(this), false);\n }\n });\n\n}\n\n// Handles click actions based on whether the product should be added to the wishlist or cart,\n// then resets size buttons and closes modal.\nfunction actionAfterSelectSize(classToRefresh) {\n var $objTile = $(`.${classToRefresh}`);\n var $btnAddToCart = $objTile.find('.add-to-cart');\n var $wishlistBtn = $objTile.find('.add-to-wish-list');\n\n if ($objTile.hasClass('js-addWishlist')) {\n $wishlistBtn.trigger('click');\n $objTile.removeClass('js-addWishlist');\n\n } else {\n $btnAddToCart.trigger('click');\n }\n\n $('.js-sizeBtn').removeClass('active');\n $('body').removeClass('modal-open');\n}\n\n// Function for initializing event listeners\nfunction initializeEventListeners() {\n // Tile sizes\n $(document).on('click', '.js-tile-open-overlay', function(e) {\n e.stopPropagation();\n e.stopImmediatePropagation();\n e.preventDefault();\n\n const $self = $(this);\n if ($self.hasClass('js-noSize')) {\n $self.closest('.cc-col-tile').find('.add-to-cart').trigger('click');\n } else {\n $('.js-tileWrapper').removeClass('js-tileWrapperHover');\n $('.cc-tile-sizes.cc-active').removeClass('cc-active');\n $self.closest('.cc-tile-body').find('.cc-tile-sizes').addClass('cc-active');\n $self.closest('.js-tileWrapper').addClass('js-tileWrapperHover');\n\n if (!window.isDesktop) {\n $('body').addClass('modal-open');\n }\n }\n });\n\n $('.container').on('mouseleave', '.js-tileWrapperHover', function() {\n if (window.isDesktop) {\n const $self = $(this);\n\n $self.removeClass('js-tileWrapperHover');\n $self.find('.cc-tile-sizes').removeClass('cc-active');\n }\n });\n\n $(document).on('click', '.js-close-size', function(e) {\n e.stopPropagation();\n e.preventDefault();\n $(this).closest('.cc-tile-sizes').removeClass('cc-active');\n });\n\n $(document).on('click', function(e) {\n e.stopPropagation();\n\n const $sizeModal = $('.cc-tile-sizes');\n\n if (!$sizeModal.length > 0 || !($sizeModal.length > 0 && $sizeModal.hasClass('cc-active')) || $(e.target).prop('class') === 'cc-tile-sizes__wrp' || $(e.target).closest('.cc-tile-sizes__wrp').length > 0) {\n return;\n }\n\n $sizeModal.removeClass('cc-active');\n\n if (!window.isDesktop) {\n $('body').removeClass('modal-open');\n }\n });\n}\n\n$(function() {\n productsInWishlistOnDOMready();\n initializeEventListeners();\n\n});\n\nmodule.exports = {\n productsInWishlistOnDOMready: productsInWishlistOnDOMready,\n refreshPLPTile: function() {\n // Handle click on product tile color or size. This function refreshes this section\n $('.container').on(\n 'click',\n '.changeTileSelection a',\n function(e) {\n e.preventDefault();\n e.stopPropagation();\n\n $(this).addClass('active');\n var classToRefresh = $(this).data('classtorefresh');\n\n var isSize = true;\n var attrColor = $(this).attr('data-color');\n if (typeof attrColor !== 'undefined' && attrColor !== false) {\n isSize = false;\n }\n\n $.ajax({\n url: $(this).data('refreshtileurl'),\n data: {\n selectedUrl: $(this).data('refreshtileurl'),\n classToRefresh: $(this).data('classtorefresh'),\n isAjax: true,\n isSize: isSize\n },\n method: 'GET',\n success: function(response) {\n //Refresh single tile \"tile_${product.productID}\"\"\n // analytics - get current product position in the list\n if ($('.' + classToRefresh).length === 0) {\n if ($('.' + classToRefresh + '__null').length > 0) {\n classToRefresh = classToRefresh + '__null';\n }\n }\n\n var position = $('.' + classToRefresh).find('.analytics-product').data('position');\n\n $('.' + classToRefresh).empty().html(response);\n checkInWishlist(classToRefresh);\n // Add manual club price product badge icon\n $('.cc-label-clubprice').addClass('icon-bata-club-price-cz');\n // analytics - set current product position in the list\n $('.' + classToRefresh).find('.analytics-product').data('position', position);\n var analyticsData = $('.' + classToRefresh).find('.analytics-product').data();\n\n if (analyticsData) {\n $('body').trigger('analytics:variantSelectionPLP', {\n productData: analyticsData\n });\n }\n\n if (isSize) {\n actionAfterSelectSize(classToRefresh);\n }\n\n },\n error: function() {\n $.spinner().stop();\n }\n });\n });\n },\n addToCart: addToCartHelper.addToCart\n};\n\n\n\n// WEBPACK FOOTER //\n// ./cartridges/app_bata_sfra/cartridge/client/default/js/search/tileHelper.js","'use strict';\n\nvar tileHelper = require('./tileHelper');\nvar IS_LOADING_SHOW_MORE = false;\nvar filterSelected = false;\n\n/**\n * Update the browser's history (the price refinement is automatically calculated in this function)\n *\n * @param {string} url - the url which will be used for next state\n * @param {string} urlRedirect - the url's search params\n */\nfunction pushFilterUrlState(url, urlRedirect) {\n var params = urlRedirect;\n var nextURL = window.origin + params;\n url = window.origin + url;\n // Current URL + params size page and total count\n const nextTitle = document.title;\n const nextState = {\n urlRefinement: url,\n urlRedirectRefinement: url\n };\n history.pushState(nextState, nextTitle, nextURL);\n}\n\n/**\n * Update DOM elements with Ajax results\n *\n * @param {Object} $results - jQuery DOM element\n * @param {string} selector - DOM element to look up in the $results\n * @return {undefined}\n */\nfunction updateDom($results, selector) {\n let nameDropdownOpened;\n let mobileMenuOpened = $('.cc-plp--filterModal.show').length > 0 ? true : false;\n var $updates = $results.find(selector);\n //if a third/fourth category is selected, remove the \"show all\" link\n if ($('.cc-plp--filterDropdown.show').length > 0) {\n nameDropdownOpened = $('.cc-plp--filterDropdown.show').attr('name');\n }\n if ($('.cc-plp--filterDropdown.cc-plp--filterDropdown--open').length > 0) {\n nameDropdownOpened = $('.cc-plp--filterDropdown.cc-plp--filterDropdown--open').attr('name');\n }\n $(selector).empty().html($updates.html());\n if (selector === '.product-grid') {\n window.bata_com_ns.analytics.productsDisplayed = 0;\n //register the impressions of the new products loaded\n $('body').trigger('analytics:productsLoaded');\n }\n\n if (selector === '.cc-plp--filterWrapper' && typeof nameDropdownOpened !== 'undefined') {\n $(`.cc-plp--filterDropdown[name=\"${nameDropdownOpened}\"`).addClass('show');\n $(`.cc-plp--filterDropdown[name=\"${nameDropdownOpened}\"`).closest('.cc-submenu-voice').find('.js-dropdownFilter').attr('aria-expanded', 'true');\n }\n\n if (selector === '.cc-plp--filterWrapper' && mobileMenuOpened && typeof nameDropdownOpened !== 'undefined') {\n $('body').addClass('modal-open');\n $('.cc-plp--filters--sticky').css({'position': 'relative', 'z-index': 'unset'});\n $('.cc-plp--filterModal').addClass('show').css('display', 'block');\n $('.cc-submenu-voice.position-relative').addClass('d-none');\n $(`.cc-plp--filterDropdown[name=\"${nameDropdownOpened}\"`).addClass('cc-plp--filterDropdown--open').closest('.cc-submenu-voice.position-relative').removeClass('d-none');\n $(`.js-dropdownFilterMobile[data-refinement-trigger=\"${nameDropdownOpened}\"]`).addClass('cc-plp--filterRow--item--active');\n\n if (nameDropdownOpened !== 'sorting') {\n $('.cc-plp--filterDropdown--sortingLabel').addClass('d-none');\n }\n }\n\n if (selector === '.refreshableCategoryRefinements' || selector === '.js-categoryfilterbar' || selector === '.js-activeFilter') {\n if ($('.cc-plp--categoryItem--selected').closest('.js-categoryItemWithChild').length > 0) {\n setTimeout(() => {\n const $parent = $('.cc-plp--categoryItem--selected').closest('.js-categoryItemWithChild');\n\n if ($parent.hasClass('cc-plp--categoryItem--selected')) {\n return;\n }\n\n $parent.find('.d-none.d-lg-flex .cc-hitCount__wrapper').html($('.cc-plp--categoryItem--selected').html());\n $parent.addClass('cc-plp--categoryItem--selected');\n }, 0);\n }\n\n if (window.isDesktop) {\n $('.js-activeCategoryFilter').html($('.cc-plp--categoryItem--selected').html());\n } else {\n $('.cc-plp--categories--mobileBtn').html($('.cc-plp--categoryItem--selected').html());\n }\n }\n}\n\nfunction updateHeadDom($results, selector) {\n var $updates = $results.filter(selector);\n $(selector).empty().html($updates.html());\n}\n\n/**\n * Keep refinement panes expanded/collapsed after Ajax refresh\n *\n * @param {Object} $results - jQuery DOM element\n * @return {undefined}\n */\nfunction handleRefinements($results) {\n $('.refinement.active').each(function() {\n $(this).removeClass('active');\n var activeDiv = $results.find('.' + $(this)[0].className.replace(/ /g, '.'));\n activeDiv.addClass('active');\n activeDiv.find('button.title').attr('aria-expanded', 'true');\n });\n\n updateDom($results, '.refinements');\n\n //category filter bar for mobile\n var categoryFilterBarSelector = '.js-categoryfilterbar';\n updateDom($results, categoryFilterBarSelector);\n\n if ($('.cc-plp--scrollCategories').length > 0) {\n const catScrollWidth = document.getElementsByClassName(\"cc-plp--scrollCategories\")[0].scrollWidth;\n const catOffsetWidth = document.getElementsByClassName(\"cc-plp--scrollCategories\")[0].offsetWidth;\n\n if (catScrollWidth > catOffsetWidth) {\n $('.js-scrollRightWrapper').removeClass('cc-plp--hideBtn');\n }\n }\n\n}\n\n/**\n * Update the URL with the sortoption and replace the current history state\n *\n * @param {string} sortSelected - id of the current sort option selected\n * @return {undefined}\n */\nfunction updateUrlWithSortOption(sortSelected) {\n var currUrl = new URL(location.href);\n if (sortSelected !== 'bs-title-option') {\n if ((location.href).includes('srule')) {\n currUrl.searchParams.delete('srule');\n currUrl.searchParams.append('srule', sortSelected);\n } else {\n currUrl.searchParams.append('srule', sortSelected);\n }\n }\n // New URL informations + params size page and total count\n const nextURL = currUrl;\n const nextTitle = document.title;\n const nextState = {\n id: sortSelected\n };\n // This will replace the current entry in the browser's history, without reloading\n history.replaceState(nextState, nextTitle, nextURL);\n}\n\n/**\n * Parse the result retrieved from the backend'ajax call, also reinitiate the category carousel\n *\n * @param {string} response - the entire plp refreshed, with the new DOM use to update\n */\nfunction parseResults(response) {\n //globalThis.PREV_CONDITION;\n var $results = $(response);\n var specialHandlers = {\n '.refinements': handleRefinements\n };\n\n // Update DOM elements in head\n ['title'].forEach(function(selector) {\n updateHeadDom($results, selector);\n });\n // Update DOM elements that do not require special handling\n const BLOCK_TO_UPDATE = [\n '.refreshableSEOCategoryDesc',\n '.refreshableCategoryRefinements',\n '.refreshableHeader',\n '.product-grid',\n '.show-more',\n '.cc-container-result-count',\n '.js-activeFilter',\n '.cc-search-result-count__title',\n '.cc-plp--filterWrapper',\n '.js-editorialSpace-top',\n '.js-editorialSpace-bottom',\n '.refreshableSEOCategoryDesc',\n '.js-categoryTitleSection'\n ];\n let blockCounter = BLOCK_TO_UPDATE.length;\n //new logic to let open the sub filter opened\n BLOCK_TO_UPDATE.forEach(function(selector) {\n updateDom($results, selector);\n blockCounter--;\n });\n $('.selectpicker').selectpicker('refresh');\n Object.keys(specialHandlers).forEach(function(selector) {\n specialHandlers[selector]($results);\n });\n\n if ($('.cc-plp--scrollCategories').length > 0) {\n const catScrollWidth = document.getElementsByClassName(\"cc-plp--scrollCategories\")[0].scrollWidth;\n const catOffsetWidth = document.getElementsByClassName(\"cc-plp--scrollCategories\")[0].offsetWidth;\n\n if (catScrollWidth > catOffsetWidth) {\n $('.js-scrollRightWrapper').removeClass('cc-plp--hideBtn');\n }\n }\n}\n\n/**\n * This function retrieves another page of content to display in the content search grid\n * @param {JQuery} $element - the jquery element that has the click event attached\n * @param {JQuery} $target - the jquery element that will receive the response\n * @return {undefined}\n */\nfunction getContent($element, $target) {\n var showMoreUrl = $element.data('url');\n $.spinner().start();\n $.ajax({\n url: showMoreUrl,\n method: 'GET',\n success: function(response) {\n $target.append(response);\n $('.cc-label-clubprice').addClass('icon-bata-club-price-cz');\n $.spinner().stop();\n },\n error: function() {\n $.spinner().stop();\n }\n });\n}\n\n/**\n * Update sort option URLs from Ajax response\n *\n * @param {string} response - Ajax response HTML code\n * @return {undefined}\n */\nfunction updateSortOptions(response) {\n var $tempDom = $('
').append($(response));\n var sortOptions = $tempDom.find('.grid-footer').data('sort-options').options;\n sortOptions.forEach(function(option) {\n $('option.' + option.id).val(option.url);\n });\n}\n\nfunction modifyUrlAfterShowMore() {\n var $loadMoreButton = $('.show-more button');\n\n var urlFinal = function() {\n var urlShowMore = $loadMoreButton.data('url');\n var sizeResult = '',\n urlResult = '',\n start,\n sz;\n\n try {\n var urlParams = new URL(urlShowMore);\n start = urlParams.searchParams.get('start');\n sz = urlParams.searchParams.get('sz');\n } catch (e) {\n start = null;\n sz = null;\n }\n\n if (start && sz) {\n sizeResult = parseInt(start) + parseInt(sz);\n }\n\n try {\n var locationHref = new URL(window.location.href);\n locationHref.searchParams.set('start', 0);\n locationHref.searchParams.set('sz', sizeResult);\n urlResult = locationHref.toString();\n } catch (e) {\n start = null;\n sz = null;\n }\n\n return urlResult;\n };\n\n // Current URL + params size page and total count\n const nextURL = urlFinal();\n const nextTitle = document.title;\n var idValue = $('.refreshableCategoryRefinements .values div a.cc-current-category').attr('id');\n const nextState = {\n id: idValue\n };\n\n // This will replace the current entry in the browser's history, without reloading\n history.replaceState(nextState, nextTitle, nextURL);\n}\n\n\n\n\n\n//This function checks after load more button in PLP if there are variant to handle\nfunction isInWishlistAfterLoadMore() {\n var productArr = window.ProductsInWishlist;\n if (!productArr) {\n return;\n }\n\n $('.product-grid .column-tile .product.product-tile').each(function() {\n var pid = $(this).data('pid');\n if (productArr.length > 0 && productArr.indexOf(pid) > -1) {\n tileHelper.handleWishlistButtonInTile($(this), true);\n } else {\n tileHelper.handleWishlistButtonInTile($(this), false);\n }\n });\n}\n\nfunction loadContentShowMore(e) {\n IS_LOADING_SHOW_MORE = true;\n var $loadMoreButton = $('.show-more button');\n\n if (!$loadMoreButton.length) {\n return;\n }\n var showMoreUrl = $loadMoreButton.data('url');\n $.spinner().start();\n $loadMoreButton.trigger('search:showMore', e);\n $.ajax({\n url: showMoreUrl,\n data: {\n selectedUrl: showMoreUrl\n },\n method: 'GET',\n success: function(response) {\n $loadMoreButton.removeClass('d-none');\n modifyUrlAfterShowMore();\n var scrollPosition = $(window).scrollTop();\n $('.grid-footer').replaceWith(response);\n $(window).scrollTop(scrollPosition);\n updateSortOptions(response);\n isInWishlistAfterLoadMore();\n $.spinner().stop();\n IS_LOADING_SHOW_MORE = false;\n if ($('.cc-more-col').hasClass('active')) {\n $('.cc-column-tile').addClass('cc-col-tile-more');\n } else {\n $('.cc-column-tile').removeClass('cc-col-tile-more');\n }\n\n $('.cc-label-clubprice').addClass('icon-bata-club-price-cz');\n\n //register the impressions of the new products loaded\n $('body').trigger('analytics:productsLoaded');\n\n // const numberItemPerPage = $('.cc-load-more-container-mobile').data('items-per-page');\n // const numberItemVisibleNow = $('.js-numberOfItems').text();\n // const totalOfItems = $('.cc-load-more-container-mobile').data('total-products');\n // const totalItemVisible = parseInt(numberItemPerPage) + parseInt(numberItemVisibleNow);\n // const itemsVisible = (totalItemVisible > totalOfItems) ? totalOfItems : totalItemVisible;\n const itemsVisible = $('.js-numberOfItems').data('product-in-page');\n $('.js-numberOfItems').text(itemsVisible);\n },\n error: function() {\n $loadMoreButton.removeClass('d-none');\n IS_LOADING_SHOW_MORE = false;\n $.spinner().stop();\n }\n });\n}\n\n\n\n\n\nfunction updateContainerShowAjax(element, e, urlDataHref) {\n $.spinner().start();\n if (element) {\n $(element).trigger('search:filter', e);\n } else if (urlDataHref) {\n $('[data-href=\"' + urlDataHref + '\"]').trigger('search:filter', e);\n }\n // Acquire the pathname of the category that needs to be accessed and update the attribute, in order to\n // use it into the destinationUrl variable below.\n $('.js-parentCategoryPathName').attr('data-href', window.location.pathname);\n var destinationUrl = $(element).data('href') || urlDataHref;\n // If the targeting element is recognized as null, use the target href.\n var finalUrl;\n if (element === null) {\n finalUrl = e.target.location.href;\n } else {\n // In all other cases of recognition, do the default functionality.\n finalUrl = destinationUrl;\n }\n\n if (!finalUrl) {\n return;\n }\n\n $.ajax({\n url: finalUrl,\n data: {\n page: $('.grid-footer').data('page-number'),\n selectedUrl: finalUrl\n },\n method: 'GET',\n success: function(response) {\n parseResults(response);\n\n if ($('.cc-plp--filterDropdown--sortingLabel [aria-expanded=\"true\"]').length > 0) {\n $('.cc-plp--filterDropdown--sortingLabel .js-dropdownFilter').trigger('click');\n }\n\n $([document.documentElement, document.body]).animate({\n scrollTop: 0\n }, 300);\n\n $.spinner().stop();\n },\n error: function() {\n $.spinner().stop();\n }\n });\n}\n\n/* ON SCROLL ANIMATION */\nlet lastScroll = 0;\n$(window).on('scroll', function () {\n if ($('.cc-minicart-overlay').hasClass('show') || $('[data-action=\"Search-Show\"]').length === 0) {\n return;\n }\n\n const $header = $('.js-header');\n const $body = $('body');\n const $categoryWrapper = $('.cc-plp--categories--sticky');\n const $filterWrapper = $('.cc-plp--filters--sticky');\n const currentScroll = $(this).scrollTop();\n const headerHeigth = $('.js-header').height();\n const documentHeight = $(document).height();\n const windowHeight = $(window).height();\n const bottomOffset = 30; // Tolleranza per il controllo della fine della pagina\n\n // Controllo se siamo vicini alla fine della pagina\n if (currentScroll + windowHeight >= documentHeight - bottomOffset) {\n return;\n }\n\n if (currentScroll > lastScroll && currentScroll > 10) {\n $header.addClass('cc-header__tag__scrollDown');\n $body.addClass('cc-header__hide');\n $categoryWrapper.css('top', 0);\n if ($categoryWrapper.length > 0) {\n $filterWrapper.css('top', 47);\n } else {\n $filterWrapper.css('top', -6);\n }\n\n } else {\n $header.removeClass('cc-header__tag__scrollDown');\n $body.removeClass('cc-header__hide');\n $categoryWrapper.css('top', headerHeigth);\n if ($categoryWrapper.length > 0) {\n $filterWrapper.css('top', headerHeigth + 47);\n } else {\n $filterWrapper.css('top', headerHeigth - 6);\n }\n }\n\n lastScroll = currentScroll;\n\n if (currentScroll > 20) {\n $header.addClass('cc-header__tag__notOnTop');\n } else {\n $header.removeClass('cc-header__tag__notOnTop');\n }\n});\n\n$('#backInStockModal').on('show.bs.modal', function () {\n document.querySelector('.backinstock-body').style.display = 'block';\n document.querySelector('.serviceMessage').style.display = 'none';\n});\n\nmodule.exports = {\n popstate: function() {\n //this is triggered when is used the back button of the browser\n //to show in ajax the category content or refinemect applied\n $(window).on('popstate', function(e) {\n var state = e.originalEvent.state || {};\n console.log(state);\n var selectedCategoryId = state.id;\n var urlRefinement = state.urlRefinement;\n var urlRedirectRefinement = state.urlRedirectRefinement;\n if (selectedCategoryId) {\n var target = $(`[data-category-id=\"${selectedCategoryId}\"]`);\n if (target.length) {\n updateContainerShowAjax(target, e);\n }\n } else if (urlRefinement && urlRedirectRefinement) {\n updateContainerShowAjax(null, e, urlRefinement);\n } else {\n updateContainerShowAjax(null, e, urlRefinement);\n }\n });\n },\n updateCategoryElementsAfterClickSideCategory: function() {\n $('.container').on(\n 'click',\n '.js-categoryItem',\n function(e) {\n e.preventDefault();\n e.stopPropagation();\n var url = $(this).attr('href');\n var refineUrl = $(\".cc-plp--categories\").attr('data-url');\n var breadcrumbContainer = $(\".js-cc-breadcrumb--container\");\n var params = url;\n var nextURL = window.location.origin + params;\n // Current URL + params size page and total count\n const nextTitle = document.title;\n var idValue = $(this).attr('data-category-id');\n const nextState = {\n id: idValue\n };\n history.pushState(nextState, nextTitle, nextURL);\n\n $('.js-categoryItem').removeClass('cc-plp--categoryItem--selected');\n $('.js-categoryItemWithChild').removeClass('cc-plp--categoryItems--viewChild');\n $(this).removeClass('cc-plp--categoryItems--viewChild').addClass('cc-plp--categoryItem--selected');\n $('.cc-plp--categories--mobileBtn').html($(this).html());\n\n var categoryTitle = $('.js-categoryItem.cc-plp--categoryItem--selected').attr('data-category-title');\n\n $.ajax({\n url: refineUrl,\n method: 'GET',\n data: {\n cgid: idValue\n },\n success: function(response) {\n breadcrumbContainer.html(response);\n $('.js-categoryName').html(categoryTitle);\n },\n error: function(status, error) {\n console.error('Errore nell\\'aggiornamento delle breadcrumb:', error);\n }\n });\n // This will replace the current entry in the browser's history, without reloading\n //history.replaceState(nextState, nextTitle, nextURL);\n });\n\n // Handle refinements updates (not the price one) on url side\n $('.container').on(\n 'click',\n '.js-applyFilter, .js-resetRefinement',\n function(e) {\n e.preventDefault();\n e.stopPropagation();\n var $refinement = $(this);\n var url = $refinement.data('href'),\n urlRedirect = $refinement.attr('href');\n pushFilterUrlState(url, urlRedirect);\n });\n },\n refreshPLPTile: tileHelper.refreshPLPTile,\n filter: function() {\n // Display refinements bar when Menu icon clicked\n $('.container').on('click', 'button.filter-results', function() {\n $('.refinement-bar, .modal-background').show();\n $('.refinement-bar').siblings().attr('aria-hidden', true);\n $('.refinement-bar').closest('.row').siblings().attr('aria-hidden', true);\n $('.refinement-bar').closest('.tab-pane.active').siblings().attr('aria-hidden', true);\n $('.refinement-bar').closest('.container.search-results').siblings().attr('aria-hidden', true);\n $('.refinement-bar .close').focus();\n });\n },\n closeRefinements: function() {\n // Refinements close button\n $('.container').on('click', '.refinement-bar button.close, .modal-background', function() {\n $('.refinement-bar, .modal-background').hide();\n $('.refinement-bar').siblings().attr('aria-hidden', false);\n $('.refinement-bar').closest('.row').siblings().attr('aria-hidden', false);\n $('.refinement-bar').closest('.tab-pane.active').siblings().attr('aria-hidden', false);\n $('.refinement-bar').closest('.container.search-results').siblings().attr('aria-hidden', false);\n $('.btn.filter-results').focus();\n });\n },\n sort: function() {\n // Handle sort order menu selection\n $(document).on('click', 'li.js-sorting-sub-option .js-sorting-link', function(e) {\n e.stopPropagation();\n e.preventDefault();\n var $sortSeleceted = $(this).closest('.js-sorting-sub-option');\n $.spinner().start();\n var sortId = $sortSeleceted.data('id'),\n sortName = $sortSeleceted.data('name');\n\n //display the \"selected\" icon only for this sorting rule\n $('.js-sorting-sub-option .js-sorting-link').removeClass('active-filter');\n $(this).addClass('active-filter');\n $(this).closest('.cc-plp--sortingItem').find('input').prop('checked', 'checked');\n\n $('.js-sorting-menu-selected').text($(this).text());\n $('.js-sorting-menu-selected').attr('data-value', $(this).text());\n\n //trigger the updateProductSorting event\n $('body').trigger('analytics:updateProductSorting', {\n sorting: sortName\n });\n\n if (sortId) {\n updateUrlWithSortOption(sortId);\n updateContainerShowAjax(this, e);\n }\n });\n },\n showMore: function() {\n // Show more products\n $('.container').on('click', '.show-more button', function(e) {\n e.stopPropagation();\n e.preventDefault();\n\n loadContentShowMore(e);\n });\n },\n //this handles all the refinements (category, sorting and filters)\n applyFilter: function() {\n $('.container').on(\n 'click',\n '.js-categoryItem, .js-resetRefinement, .js-applyFilter, .js-removeFilter',\n function(e) {\n e.preventDefault();\n e.stopPropagation();\n if ($(this).hasClass('js-filter-link')) {\n // if it is a filter, save the filter's id, to keep the filter menu opened after the Ajax call\n filterSelected = $(this).attr('name');\n }\n updateContainerShowAjax(this, e, null);\n });\n\n // category filters in search page (they have to behave with XOR logic)\n $('.container').on(\n 'click',\n '.js-searchCategoryList .values div a',\n function(e) {\n e.preventDefault();\n e.stopPropagation();\n var $category = $(this);\n var $container = $category.closest('.js-searchCategoryList');\n var $elements = $container.find('.values div.cc-filter-category');\n $elements.removeClass('cc-current-category');\n updateContainerShowAjax(this, e, null);\n $category.closest('div.cc-filter-category').addClass('cc-current-category');\n });\n },\n backInStock: function () {\n $('.backinstock-form').submit(function (e) {\n var form = $(this);\n e.preventDefault();\n var url = form.attr('action');\n form.spinner().start();\n const button = $('#submitEmailButton');\n\n if (button.length && button.data('id') && button.data('message')) {\n const buttonData = {\n id: button.data('id'),\n message: button.data('message'),\n };\n $('body').trigger('analytics:clickBackInStock', buttonData);\n }\n\n $.ajax({\n url: url,\n type: 'post',\n dataType: 'json',\n data: form.serialize(),\n success: function (data) {\n form.spinner().stop();\n if (data.success) {\n document.querySelector('.backinstock-body').style.display = 'none';\n $('.serviceMessage').empty().append('

' + data.receivedMsgBody + '

');\n document.querySelector('.serviceMessage').style.display = 'block';\n form[0].reset();\n } else if (!data.success) {\n document.querySelector('.backinstock-body').style.display = 'none';\n $('.serviceMessage').empty().append('

' + data.receivedMsgBody + '

');\n document.querySelector('.serviceMessage').style.display = 'block';\n form[0].reset();\n }\n },\n error: function () {\n form.spinner().stop();\n }\n });\n });\n },\n // Manage the show more products functionality\n showContentTab: function() {\n // Display content results from the search\n $('.container').on('click', '.content-search', function() {\n if ($('#content-search-results').html() === '') {\n getContent($(this), $('#content-search-results'));\n }\n });\n\n // Display the next page of content results from the search\n $('.container').on('click', '.show-more-content button', function() {\n getContent($(this), $('#content-search-results'));\n $('.show-more-content').remove();\n });\n },\n addToCart: tileHelper.addToCart\n};\n\n//Move the mobile category filter in the correct position and initialize the category carousel\n$(function() {\n tileHelper.productsInWishlistOnDOMready();\n //this function sets the state for the browser back button logic content loaded in Ajax\n //(see function updateCategoryElementsAfterClickSideCategory() )\n var idValue = $('.refreshableCategoryRefinements .values a.cc-plp--categoryItem--selected').attr('data-category-id'); // Try to find the attribute of the category shown on page refresh\n var nextState = {\n id: idValue\n };\n history.replaceState(nextState, null, null);\n\n var $categoryFilterBar = $('.js-categoryfilterbar');\n $categoryFilterBar.appendTo(\".js-categoryFiltersContainer\");\n //if a third/fourth category is selected, remove the \"show all\" link\n if ($categoryFilterBar.find('.js-categorySelected').length) {\n $categoryFilterBar.find('.js-mainCategory').remove();\n }\n\n if ($('.cc-plp--scrollCategories').length > 0) {\n const catScrollWidth = document.getElementsByClassName(\"cc-plp--scrollCategories\")[0].scrollWidth;\n const catOffsetWidth = document.getElementsByClassName(\"cc-plp--scrollCategories\")[0].offsetWidth;\n\n if (catScrollWidth > catOffsetWidth) {\n $('.js-scrollRightWrapper').removeClass('cc-plp--hideBtn');\n }\n }\n});\n\n$(document).on('click', '.js-dropdownFilter', function(e) {\n e.preventDefault();\n e.stopPropagation();\n\n const $self = $(this);\n if ($self.attr('aria-expanded') === 'false') {\n $('.js-dropdownFilter').attr('aria-expanded', 'false');\n $('.js-dropdownFilter').closest('.cc-submenu-voice').find('.cc-plp--filterDropdown').removeClass('show');\n $self.attr('aria-expanded', 'true');\n $self.closest('.cc-submenu-voice').find('.cc-plp--filterDropdown').addClass('show');\n } else {\n $self.attr('aria-expanded', 'false');\n $self.closest('.cc-submenu-voice').find('.cc-plp--filterDropdown').removeClass('show');\n }\n});\n\n$(document).on('click', '.cc-plp', function() {\n if ($('.js-dropdownFilter').attr('aria-expanded') === 'false') {\n $('.js-dropdownFilter').attr('aria-expanded', 'false');\n $('.js-dropdownFilter').closest('.dropdown').find('.dropdown-menu').removeClass('show');\n }\n});\n\n$('.container').on('click', '.js-openAccordion', function() {\n const $self = $(this);\n const accordionName = $self.data('open-accordion');\n\n if (accordionName === 'sorting') {\n $('.cc-plp--filterRow--list').addClass('d-none');\n $('.cc-plp--filterDropdown--sortingLabel').removeClass('d-none');\n } else {\n $('.cc-plp--filterRow--list').removeClass('d-none');\n $('.cc-plp--filterDropdown--sortingLabel').addClass('d-none');\n }\n\n $('.cc-plp--filterDropdown').removeClass('cc-plp--filterDropdown--open');\n $('.cc-plp--filterDropdown').closest('.cc-submenu-voice').addClass('d-none');\n $(`.cc-plp--filterDropdown[name=\"${accordionName}\"]`).addClass('cc-plp--filterDropdown--open').closest('.cc-submenu-voice').removeClass('d-none');\n $('.cc-plp--filterRow--item').removeClass('cc-plp--filterRow--item--active');\n $(`.cc-plp--filterRow--item[data-refinement-trigger=\"${accordionName}\"]`).addClass('cc-plp--filterRow--item--active');\n});\n\n$('.container').on('click', '.js-dropdownFilterMobile', function() {\n const $self = $(this);\n const accordionName = $self.data('refinement-trigger');\n\n if (accordionName === 'sorting') {\n $('.cc-plp--filterRow--list').addClass('d-none');\n $('.cc-plp--filterDropdown--sortingLabel').removeClass('d-none');\n } else {\n $('.cc-plp--filterRow--list').removeClass('d-none');\n $('.cc-plp--filterDropdown--sortingLabel').addClass('d-none');\n }\n\n $('.cc-plp--filterDropdown').removeClass('cc-plp--filterDropdown--open');\n $('.cc-plp--filterDropdown').closest('.cc-submenu-voice').addClass('d-none');\n $(`.cc-plp--filterDropdown[name=\"${accordionName}\"]`).addClass('cc-plp--filterDropdown--open').closest('.cc-submenu-voice').removeClass('d-none');\n $('.cc-plp--filterRow--item').removeClass('cc-plp--filterRow--item--active');\n $(`.cc-plp--filterRow--item[data-refinement-trigger=\"${accordionName}\"]`).addClass('cc-plp--filterRow--item--active');\n});\n\n$(window).on('resize', function () {\n if (!window.isMobile) {\n $('.modal-backdrop').remove();\n $('body').removeClass('modal-open');\n $('.cc-plp--filterModal').css('display', 'flex');\n $('.cc-plp--categories--sticky').removeAttr('style');\n $('.cc-plp--filters--sticky').removeAttr('style');\n $('.cc-submenu-voice').removeClass('d-none');\n\n if ($('.cc-plp--filterModal').hasClass('show')) {\n $('.cc-plp--filterDropdown--sortingLabel').removeClass('d-none');\n $('.cc-plp--filterModal').removeClass('show');\n }\n\n if ($('.cc-plp--scrollCategories').length > 0) {\n const catScrollWidth = document.getElementsByClassName(\"cc-plp--scrollCategories\")[0].scrollWidth;\n const catOffsetWidth = document.getElementsByClassName(\"cc-plp--scrollCategories\")[0].offsetWidth;\n\n if (catScrollWidth > catOffsetWidth) {\n $('.js-scrollRightWrapper').removeClass('cc-plp--hideBtn');\n }\n }\n }\n});\n\n\n$('.container').on('hidden.bs.modal', '#filterModal', function () {\n $('.cc-plp--filters--sticky').css({'position': 'sticky', 'z-index': '3'});\n});\n\n$('.container').on('shown.bs.modal', '#filterModal', function () {\n $('.cc-plp--filters--sticky').css({'position': 'relative', 'z-index': 'unset'});\n});\n\n$(document).on('click', function(e) {\n e.stopPropagation();\n\n const $categoryModal = $('.cc-plp--categories--dropdown');\n\n if (!$categoryModal.length > 0 || !($categoryModal.length > 0 && $categoryModal.hasClass('cc-plp--categories--dropdown--open')) || $(e.target).prop('class') === 'cc-plp--categoryItem' || $(e.target).closest('.cc-plp--categories--dropdown--open').length > 0) {\n return;\n }\n\n $categoryModal.removeClass('cc-plp--categories--dropdown--open');\n});\n\n$(document).on('click', function(e) {\n e.stopPropagation();\n\n const $filterModal = $('.cc-plp--filterDropdown');\n\n if (!$filterModal.length > 0 || !($filterModal.length > 0 && $filterModal.hasClass('show')) || $(e.target).prop('class') === 'filterModal' || $(e.target).closest('.filterModal').length > 0) {\n return;\n }\n\n $filterModal.removeClass('show').closest('.cc-submenu-voice').find('.cc-plp--filterRow--item').attr('aria-expanded', 'false');\n});\n\n$('.container').on('click', '.js-categoryBtn', function() {\n $(this).closest('.cc-plp--categories--dropdown').toggleClass('cc-plp--categories--dropdown--open');\n});\n\n$('.container').on('click', '.js-categoryItemWithChild', function() {\n $(this).toggleClass('cc-plp--categoryItems--viewChild');\n});\n\n$('.container').on('click', '.js-closeDropdownFilter', function() {\n const $self = $(this);\n\n if (window.isDesktop) {\n $self.closest('.cc-submenu-voice').find('.cc-plp--filterRow--item').attr('aria-expanded', 'false');\n $self.closest('.cc-plp--filterDropdown').removeClass('show');\n } else {\n $('.cc-plp--filterModal').toggle('modal');\n $('.cc-plp--filterModal').removeClass('show');\n $('body').removeClass('modal-open');\n $('.modal-backdrop').remove();\n $('.cc-plp--filters--sticky').css({'position': 'sticky', 'z-index': '3'});\n }\n\n});\n\n$('.container').on('click', '.cc-plp--filterModal', function(e) {\n if (!window.isMobile || ($(e.target).prop('class') === 'cc-plp--filterModal--content' || $(e.target).closest('.cc-plp--filterModal--content').length > 0)) {\n return;\n }\n\n $('.cc-plp--filterModal').toggle('modal');\n $('body').removeClass('modal-open');\n $('.cc-plp--filterModal').removeClass('show');\n $('.modal-backdrop').remove();\n $('.cc-plp--filters--sticky').css({'position': 'sticky', 'z-index': '3'});\n});\n\n$('.container').on('click', '.js-scrollLeft', function() {\n $('.cc-plp--scrollCategories').animate({\n scrollLeft: $('.cc-plp--scrollCategories').scrollLeft() - 100\n }, 300);\n\n const currentLeftPos = $('.cc-plp--categoryItem:first-child').offset().left;\n\n if (($('.cc-plp--filters--brandLogo').length > 0 && currentLeftPos > 94) || ($('.cc-plp--filters--brandLogo').length === 0 && currentLeftPos > 0)) {\n $('.js-scrollLeftWrapper').addClass('cc-plp--hideBtn');\n } else {\n $('.js-scrollLeftWrapper').removeClass('cc-plp--hideBtn');\n }\n\n $('.js-scrollRightWrapper').removeClass('cc-plp--hideBtn');\n});\n\n$('.container').on('click', '.js-scrollRight', function() {\n $('.cc-plp--scrollCategories').animate({\n scrollLeft: $('.cc-plp--scrollCategories').scrollLeft() + 100\n }, 300);\n\n $('.js-scrollLeftWrapper').removeClass('cc-plp--hideBtn');\n\n const currentLeftPos = $('.cc-plp--categoryItem:first-child').offset().left;\n\n const catScrollWidth = document.getElementsByClassName(\"cc-plp--scrollCategories\")[0].scrollWidth;\n const catOffsetWidth = document.getElementsByClassName(\"cc-plp--scrollCategories\")[0].offsetWidth;\n\n if (catOffsetWidth - currentLeftPos + 30 >= catScrollWidth) {\n $('.js-scrollRightWrapper').addClass('cc-plp--hideBtn');\n } else {\n $('.js-scrollRightWrapper').removeClass('cc-plp--hideBtn');\n }\n});\n\n$('.cc-plp--scrollCategories').on('scroll', function() {\n const currentLeftPos = $('.cc-plp--categoryItem:first-child').offset().left;\n const catScrollWidth = document.getElementsByClassName(\"cc-plp--scrollCategories\")[0].scrollWidth;\n const catOffsetWidth = document.getElementsByClassName(\"cc-plp--scrollCategories\")[0].offsetWidth;\n\n if (catOffsetWidth - currentLeftPos + 30 >= catScrollWidth) {\n $('.js-scrollRightWrapper').addClass('cc-plp--hideBtn');\n } else {\n $('.js-scrollRightWrapper').removeClass('cc-plp--hideBtn');\n }\n\n if (($('.cc-plp--filters--brandLogo').length > 0 && currentLeftPos > 94) || ($('.cc-plp--filters--brandLogo').length === 0 && currentLeftPos > 0)) {\n $('.js-scrollLeftWrapper').addClass('cc-plp--hideBtn');\n } else {\n $('.js-scrollLeftWrapper').removeClass('cc-plp--hideBtn');\n }\n});\n\n\n\n// WEBPACK FOOTER //\n// ./cartridges/app_bata_sfra/cartridge/client/default/js/search/search.js"],"sourceRoot":""}