{"version":3,"file":"recommendationsCarousel.min.js","sources":["recommendationsCarousel.min.js"],"sourcesContent":["/******/ (function(modules) { // webpackBootstrap\n/******/ \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\n/***/ 0:\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\n\tvar processInclude = __webpack_require__(3);\n\n\t$(document).ready(function () {\n\t processInclude(__webpack_require__(179));\n\t});\n\n\tfunction initSlickCarousel($carouselCointainer) {\n\t var hideArrows = $carouselCointainer.parents('.recommendations.cc-recommendations-lh').data('hide-arrows');\n\t var carouselSettings = {\n\t infinite: true,\n\t lazyLoad: 'ondemand',\n\t slidesToScroll: 1,\n\t slidesToShow: 4,\n\t dots: false,\n\t prevArrow: '',\n\t nextArrow: '',\n\t responsive: [{\n\t breakpoint: 1200,\n\t settings: {\n\t slidesToScroll: 1,\n\t slidesToShow: 3\n\t }\n\t }, {\n\t breakpoint: 768,\n\t settings: {\n\t infinite: false,\n\t slidesToScroll: 1,\n\t slidesToShow: 2.32\n\t }\n\t }, {\n\t breakpoint: 767,\n\t settings: 'unslick'\n\t }]\n\t };\n\n\t if (hideArrows) {\n\t carouselSettings.responsive[1].settings.prevArrow = '';\n\t carouselSettings.responsive[1].settings.nextArrow = '';\n\t }\n\n\t // trigger analytics event to track product views\n\t $carouselCointainer.on('init', function (event, slick) {\n\t $('body').trigger('analytics:recommendationsLoaded', slick.$slider.closest('.recommendations'));\n\t });\n\n\t // add .unslicked css class when carousel is unslicked (for example on mobile phones by its settings)\n\t $carouselCointainer.on('destroy', function (event, slick) {\n\t if (slick && slick.unslicked) {\n\t slick.$slider.addClass('unslicked');\n\t }\n\t });\n\n\t $carouselCointainer.slick(carouselSettings);\n\t}\n\n\t$('body').on('einsteinCarousel:setup', function (e, $carouselCointainer) {\n\t if ($carouselCointainer) {\n\t //Einstein page designer\n\t var $carousel = $($carouselCointainer).find('.multiple-items');\n\t if (!$carousel.hasClass('slick-initialized')) {\n\t initSlickCarousel($carousel);\n\t }\n\t } else {\n\t //Einstien content slots\n\t initSlickCarousel($('.multiple-items.js-einstein-slot').not('.slick-initialized'));\n\t }\n\t});\n\n\t$(function () {\n\t //check if is the page designer's manual carousel\n\t var $slides = $('.experience-slides');\n\t var $experience = $('.experience-component.experience-commerce_carousel_product-carouselProductTile');\n\n\t if ($experience.length > 0) {\n\t $experience.each(function () {\n\t if ($(this).children().length === 0) {\n\t $(this).remove();\n\t }\n\t });\n\t }\n\n\t if ($slides.length > 0) {\n\t $slides.each(function () {\n\t $(this).addClass(\"multiple-items\");\n\t });\n\t }\n\t //select all the carousels that are not Einstein's ones\n\t var $carousel = $('.multiple-items:not(.js-einstein-inner)').not('.slick-initialized');\n\t $carousel.each(function () {\n\t initSlickCarousel($(this));\n\t });\n\t});\n\n/***/ }),\n\n/***/ 3:\n/***/ (function(module, exports) {\n\n\t'use strict';\n\n\tvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n\tmodule.exports = function (include) {\n\t if (typeof include === 'function') {\n\t include();\n\t } else if ((typeof include === 'undefined' ? 'undefined' : _typeof(include)) === 'object') {\n\t Object.keys(include).forEach(function (key) {\n\t if (typeof include[key] === 'function') {\n\t include[key]();\n\t }\n\t });\n\t }\n\t};\n\n/***/ }),\n\n/***/ 98:\n/***/ (function(module, exports) {\n\n\t\"use strict\";\n\n\tmodule.exports = function (module) {\n\t\tif (!module.webpackPolyfill) {\n\t\t\tmodule.deprecate = function () {};\n\t\t\tmodule.paths = [];\n\t\t\t// module.parent = undefined by default\n\t\t\tmodule.children = [];\n\t\t\tmodule.webpackPolyfill = 1;\n\t\t}\n\t\treturn module;\n\t};\n\n/***/ }),\n\n/***/ 111:\n/***/ (function(module, exports) {\n\n\t\"use strict\";\n\n\t/**\n\t * A function that detects user's device.\n\t * @returns {Boolean} Returns `true` if user's device is mobile/tablet.\n\t */\n\tfunction detectMobile() {\n\t var toMatch = [/Android/i, /webOS/i, /iPhone/i, /iPad/i, /iPod/i, /BlackBerry/i, /Windows Phone/i];\n\n\t return toMatch.some(function (toMatchItem) {\n\t return navigator.userAgent.match(toMatchItem);\n\t });\n\t}\n\n\tmodule.exports = {\n\t detectMobile: detectMobile\n\t};\n\n/***/ }),\n\n/***/ 113:\n/***/ (function(module, exports) {\n\n\t'use strict';\n\n\tmodule.exports = {\n\t setTabNextFocus: function setTabNextFocus(focusParams) {\n\t var KEYCODE_TAB = 9;\n\t var isTabPressed = focusParams.event.key === 'Tab' || focusParams.event.keyCode === KEYCODE_TAB;\n\n\t if (!isTabPressed) {\n\t return;\n\t }\n\n\t var firstFocusableEl = $(focusParams.containerSelector + ' ' + focusParams.firstElementSelector);\n\t var lastFocusableEl = $(focusParams.containerSelector + ' ' + focusParams.lastElementSelector);\n\n\t if ($(focusParams.containerSelector + ' ' + focusParams.lastElementSelector).is(':disabled')) {\n\t lastFocusableEl = $(focusParams.containerSelector + ' ' + focusParams.nextToLastElementSelector);\n\t if ($('.product-quickview.product-set').length > 0) {\n\t var linkElements = $(focusParams.containerSelector + ' a#fa-link.share-icons');\n\t lastFocusableEl = linkElements[linkElements.length - 1];\n\t }\n\t }\n\n\t if (focusParams.event.shiftKey) /* shift + tab */{\n\t if ($(':focus').is(firstFocusableEl)) {\n\t lastFocusableEl.focus();\n\t focusParams.event.preventDefault();\n\t }\n\t } else /* tab */{\n\t if ($(':focus').is(lastFocusableEl)) {\n\t // eslint-disable-line\n\t firstFocusableEl.focus();\n\t focusParams.event.preventDefault();\n\t }\n\t }\n\t }\n\t};\n\n/***/ }),\n\n/***/ 118:\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\n\t//enables lazyload in pdp\n\n\tvar picture_lazy_load = __webpack_require__(119);\n\tpicture_lazy_load.init();\n\n\tfunction hideAddToWishlistButtonInPDP() {\n\t $('.product-detail .prices-add-to-cart-actions .add-to-wish-list').hide();\n\t}\n\thideAddToWishlistButtonInPDP();\n\n\tfunction selectASizeHintWishList() {\n\t $('.container').on('click', '.add-to-wish-list', function () {\n\t var $self = $(this);\n\t if (!$self.hasClass('to-add to-remove')) {\n\n\t var $overlay = $self.parents('.product-tile').find('.js-tile-open-overlay');\n\t if ($overlay.hasClass('js-noSize')) {\n\t return;\n\t } else {\n\t $self.closest('.cc-col-tile').addClass('js-addWishlist');\n\t $overlay.trigger('click');\n\t }\n\t }\n\t });\n\t}\n\n\tselectASizeHintWishList();\n\n\t//this function is to use only if variationGroups have different type of size\n\t// function modifyUrlColorSwatchesToSingleVariant($sizeTile) {\n\t// var urlVariantValue = $sizeTile.attr('value');\n\t// var sizeValue = $sizeTile.attr('data-attr-value');\n\t// var $colorSwatches = $('.attributes .swatches-container .color-attribute');\n\t// var urlToReplace;\n\t// $colorSwatches.each(function () {\n\t// var element = $(this).find('.color-value');\n\t// var colorValue = element.attr('data-attr-value');\n\t// urlToReplace = urlVariantValue;\n\t// urlToReplace = urlToReplace.replace(/(?<=size=)(.*?)((?=&)|(?=$))/, sizeValue);\n\t// urlToReplace = urlToReplace.replace(/(?<=color=)(.*?)((?=&)|(?=$))/, colorValue);\n\t// $(this).attr('data-url', urlToReplace);\n\t// })\n\t// }\n\n\t/**\n\t * Retrieves the relevant pid value\n\t * @param {jquery} $el - DOM container for a given add to cart button\n\t * @return {string} - value to be used when adding product to cart\n\t */\n\tfunction getPidValue($el) {\n\t var pid;\n\n\t if ($('#quickViewModal').hasClass('show') && !$('.product-set').length > 0) {\n\t pid = $($el).closest('.modal-content').find('.product-quickview').data('pid');\n\t } else if ($($el).closest('.product-tile').length > 0) {\n\t pid = $($el).data('pid');\n\t } else if ($($el).closest('.product-set').length > 0 || $('.product-set').length > 0) {\n\t pid = $($el).closest('.product-detail').find('.product-id').text();\n\t } else {\n\t pid = $('.product-detail:not(\".bundle-item\")').data('pid');\n\t }\n\n\t return pid;\n\t}\n\n\t/**\n\t * Makes a call to the server to report the event of adding an item to the cart\n\t *\n\t * @param {string | boolean} url - a string representing the end point to hit so that the event can be recorded, or false\n\t */\n\tfunction miniCartReportingUrl(url) {\n\t if (url) {\n\t $.ajax({\n\t url: url,\n\t method: 'GET',\n\t success: function success() {\n\t // reporting urls hit on the server\n\t },\n\t error: function error() {\n\t // no reporting urls hit on the server\n\t }\n\t });\n\t }\n\t}\n\n\tmodule.exports = {\n\t getPidValue: getPidValue,\n\t miniCartReportingUrl: miniCartReportingUrl\n\t};\n\n/***/ }),\n\n/***/ 119:\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\n\tmodule.exports = {\n\t init: function init() {\n\t //var featureDetect = require('./featureDetect');\n\n\t var lazySizesConfig = window.lazySizesConfig = window.lazySizesConfig || {};\n\t lazySizesConfig.init = false;\n\t lazySizesConfig.loadMode = 2;\n\t lazySizesConfig.preloadAfterLoad = false;\n\t lazySizesConfig.ricTimeout = 250;\n\t lazySizesConfig.expand = 700;\n\t lazySizesConfig.loadHidden = false;\n\t lazySizesConfig.srcAttr = 'data-lazy';\n\t lazySizesConfig.srcsetAttr = 'data-srcset';\n\t lazySizesConfig.sizesAttr = 'data-sizes';\n\t lazySizesConfig.lazyClass = 'b-lazyload';\n\t lazySizesConfig.loadingClass = 'b-lazyload_loading';\n\t lazySizesConfig.loadedClass = 'b-lazyload_loaded';\n\n\t var lazysizes = __webpack_require__(120);\n\n\t document.addEventListener('lazybeforeunveil', function (e) {\n\t var bg = e.target.getAttribute('data-bg');\n\t if (bg) {\n\t e.target.style.backgroundImage = 'url(' + bg + ')';\n\t }\n\t });\n\n\t lazysizes.init();\n\t // if (!featureDetect.hasPicture) {\n\t // import( /* webpackChunkName: \"picturefill\" */ 'picturefill').then((loadedModule) => {\n\t // loadedModule.default();\n\t // lazysizes.init();\n\t // });\n\t // } else {\n\t // lazysizes.init();\n\t // }\n\n\t }\n\t};\n\n/***/ }),\n\n/***/ 120:\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(module) {'use strict';\n\n\tvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n\t(function (window, factory) {\n\t\tvar lazySizes = factory(window, window.document);\n\t\twindow.lazySizes = lazySizes;\n\t\tif (( false ? 'undefined' : _typeof(module)) == 'object' && module.exports) {\n\t\t\tmodule.exports = lazySizes;\n\t\t}\n\t})(window, function l(window, document) {\n\t\t'use strict';\n\t\t/*jshint eqnull:true */\n\n\t\tif (!document.getElementsByClassName) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar lazysizes, lazySizesConfig;\n\n\t\tvar docElem = document.documentElement;\n\n\t\tvar Date = window.Date;\n\n\t\tvar supportPicture = window.HTMLPictureElement;\n\n\t\tvar _addEventListener = 'addEventListener';\n\n\t\tvar _getAttribute = 'getAttribute';\n\n\t\tvar addEventListener = window[_addEventListener];\n\n\t\tvar setTimeout = window.setTimeout;\n\n\t\tvar requestAnimationFrame = window.requestAnimationFrame || setTimeout;\n\n\t\tvar requestIdleCallback = window.requestIdleCallback;\n\n\t\tvar regPicture = /^picture$/i;\n\n\t\tvar loadEvents = ['load', 'error', 'lazyincluded', '_lazyloaded'];\n\n\t\tvar regClassCache = {};\n\n\t\tvar forEach = Array.prototype.forEach;\n\n\t\tvar hasClass = function hasClass(ele, cls) {\n\t\t\tif (!regClassCache[cls]) {\n\t\t\t\tregClassCache[cls] = new RegExp('(\\\\s|^)' + cls + '(\\\\s|$)');\n\t\t\t}\n\t\t\treturn regClassCache[cls].test(ele[_getAttribute]('class') || '') && regClassCache[cls];\n\t\t};\n\n\t\tvar addClass = function addClass(ele, cls) {\n\t\t\tif (!hasClass(ele, cls)) {\n\t\t\t\tele.setAttribute('class', (ele[_getAttribute]('class') || '').trim() + ' ' + cls);\n\t\t\t}\n\t\t};\n\n\t\tvar removeClass = function removeClass(ele, cls) {\n\t\t\tvar reg;\n\t\t\tif (reg = hasClass(ele, cls)) {\n\t\t\t\tele.setAttribute('class', (ele[_getAttribute]('class') || '').replace(reg, ' '));\n\t\t\t}\n\t\t};\n\n\t\tvar addRemoveLoadEvents = function addRemoveLoadEvents(dom, fn, add) {\n\t\t\tvar action = add ? _addEventListener : 'removeEventListener';\n\t\t\tif (add) {\n\t\t\t\taddRemoveLoadEvents(dom, fn);\n\t\t\t}\n\t\t\tloadEvents.forEach(function (evt) {\n\t\t\t\tdom[action](evt, fn);\n\t\t\t});\n\t\t};\n\n\t\tvar triggerEvent = function triggerEvent(elem, name, detail, noBubbles, noCancelable) {\n\t\t\tvar event = document.createEvent('Event');\n\n\t\t\tif (!detail) {\n\t\t\t\tdetail = {};\n\t\t\t}\n\n\t\t\tdetail.instance = lazysizes;\n\n\t\t\tevent.initEvent(name, !noBubbles, !noCancelable);\n\n\t\t\tevent.detail = detail;\n\n\t\t\telem.dispatchEvent(event);\n\t\t\treturn event;\n\t\t};\n\n\t\tvar updatePolyfill = function updatePolyfill(el, full) {\n\t\t\tvar polyfill;\n\t\t\tif (!supportPicture && (polyfill = window.picturefill || lazySizesConfig.pf)) {\n\t\t\t\tif (full && full.src && !el[_getAttribute]('srcset')) {\n\t\t\t\t\tel.setAttribute('srcset', full.src);\n\t\t\t\t}\n\t\t\t\tpolyfill({ reevaluate: true, elements: [el] });\n\t\t\t} else if (full && full.src) {\n\t\t\t\tel.src = full.src;\n\t\t\t}\n\t\t};\n\n\t\tvar getCSS = function getCSS(elem, style) {\n\t\t\treturn (getComputedStyle(elem, null) || {})[style];\n\t\t};\n\n\t\tvar getWidth = function getWidth(elem, parent, width) {\n\t\t\twidth = width || elem.offsetWidth;\n\n\t\t\twhile (width < lazySizesConfig.minSize && parent && !elem._lazysizesWidth) {\n\t\t\t\twidth = parent.offsetWidth;\n\t\t\t\tparent = parent.parentNode;\n\t\t\t}\n\n\t\t\treturn width;\n\t\t};\n\n\t\tvar rAF = function () {\n\t\t\tvar running, waiting;\n\t\t\tvar firstFns = [];\n\t\t\tvar secondFns = [];\n\t\t\tvar fns = firstFns;\n\n\t\t\tvar run = function run() {\n\t\t\t\tvar runFns = fns;\n\n\t\t\t\tfns = firstFns.length ? secondFns : firstFns;\n\n\t\t\t\trunning = true;\n\t\t\t\twaiting = false;\n\n\t\t\t\twhile (runFns.length) {\n\t\t\t\t\trunFns.shift()();\n\t\t\t\t}\n\n\t\t\t\trunning = false;\n\t\t\t};\n\n\t\t\tvar rafBatch = function rafBatch(fn, queue) {\n\t\t\t\tif (running && !queue) {\n\t\t\t\t\tfn.apply(this, arguments);\n\t\t\t\t} else {\n\t\t\t\t\tfns.push(fn);\n\n\t\t\t\t\tif (!waiting) {\n\t\t\t\t\t\twaiting = true;\n\t\t\t\t\t\t(document.hidden ? setTimeout : requestAnimationFrame)(run);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t};\n\n\t\t\trafBatch._lsFlush = run;\n\n\t\t\treturn rafBatch;\n\t\t}();\n\n\t\tvar rAFIt = function rAFIt(fn, simple) {\n\t\t\treturn simple ? function () {\n\t\t\t\trAF(fn);\n\t\t\t} : function () {\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\n\t\tvar throttle = function throttle(fn) {\n\t\t\tvar running;\n\t\t\tvar lastTime = 0;\n\t\t\tvar gDelay = lazySizesConfig.throttleDelay;\n\t\t\tvar rICTimeout = lazySizesConfig.ricTimeout;\n\t\t\tvar run = function run() {\n\t\t\t\trunning = false;\n\t\t\t\tlastTime = Date.now();\n\t\t\t\tfn();\n\t\t\t};\n\t\t\tvar idleCallback = requestIdleCallback && rICTimeout > 49 ? function () {\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} : rAFIt(function () {\n\t\t\t\tsetTimeout(run);\n\t\t\t}, true);\n\n\t\t\treturn function (isPriority) {\n\t\t\t\tvar delay;\n\n\t\t\t\tif (isPriority = isPriority === true) {\n\t\t\t\t\trICTimeout = 33;\n\t\t\t\t}\n\n\t\t\t\tif (running) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\trunning = true;\n\n\t\t\t\tdelay = gDelay - (Date.now() - lastTime);\n\n\t\t\t\tif (delay < 0) {\n\t\t\t\t\tdelay = 0;\n\t\t\t\t}\n\n\t\t\t\tif (isPriority || delay < 9) {\n\t\t\t\t\tidleCallback();\n\t\t\t\t} else {\n\t\t\t\t\tsetTimeout(idleCallback, delay);\n\t\t\t\t}\n\t\t\t};\n\t\t};\n\n\t\t//based on http://modernjavascript.blogspot.de/2013/08/building-better-debounce.html\n\t\tvar debounce = function debounce(func) {\n\t\t\tvar timeout, timestamp;\n\t\t\tvar wait = 99;\n\t\t\tvar run = function run() {\n\t\t\t\ttimeout = null;\n\t\t\t\tfunc();\n\t\t\t};\n\t\t\tvar later = function later() {\n\t\t\t\tvar last = Date.now() - timestamp;\n\n\t\t\t\tif (last < wait) {\n\t\t\t\t\tsetTimeout(later, wait - last);\n\t\t\t\t} else {\n\t\t\t\t\t(requestIdleCallback || run)(run);\n\t\t\t\t}\n\t\t\t};\n\n\t\t\treturn function () {\n\t\t\t\ttimestamp = Date.now();\n\n\t\t\t\tif (!timeout) {\n\t\t\t\t\ttimeout = setTimeout(later, wait);\n\t\t\t\t}\n\t\t\t};\n\t\t};\n\n\t\t(function () {\n\t\t\tvar prop;\n\n\t\t\tvar lazySizesDefaults = {\n\t\t\t\tlazyClass: 'lazyload',\n\t\t\t\tloadedClass: 'lazyloaded',\n\t\t\t\tloadingClass: 'lazyloading',\n\t\t\t\tpreloadClass: 'lazypreload',\n\t\t\t\terrorClass: 'lazyerror',\n\t\t\t\t//strictClass: 'lazystrict',\n\t\t\t\tautosizesClass: 'lazyautosizes',\n\t\t\t\tsrcAttr: 'data-src',\n\t\t\t\tsrcsetAttr: 'data-srcset',\n\t\t\t\tsizesAttr: 'data-sizes',\n\t\t\t\t//preloadAfterLoad: false,\n\t\t\t\tminSize: 40,\n\t\t\t\tcustomMedia: {},\n\t\t\t\tinit: true,\n\t\t\t\texpFactor: 1.5,\n\t\t\t\thFac: 0.8,\n\t\t\t\tloadMode: 2,\n\t\t\t\tloadHidden: true,\n\t\t\t\tricTimeout: 0,\n\t\t\t\tthrottleDelay: 125\n\t\t\t};\n\n\t\t\tlazySizesConfig = window.lazySizesConfig || window.lazysizesConfig || {};\n\n\t\t\tfor (prop in lazySizesDefaults) {\n\t\t\t\tif (!(prop in lazySizesConfig)) {\n\t\t\t\t\tlazySizesConfig[prop] = lazySizesDefaults[prop];\n\t\t\t\t}\n\t\t\t}\n\n\t\t\twindow.lazySizesConfig = lazySizesConfig;\n\n\t\t\tsetTimeout(function () {\n\t\t\t\tif (lazySizesConfig.init) {\n\t\t\t\t\tinit();\n\t\t\t\t}\n\t\t\t});\n\t\t})();\n\n\t\tvar loader = function () {\n\t\t\tvar preloadElems, isCompleted, resetPreloadingTimer, loadMode, started;\n\n\t\t\tvar eLvW, elvH, eLtop, eLleft, eLright, eLbottom, isBodyHidden;\n\n\t\t\tvar regImg = /^img$/i;\n\t\t\tvar regIframe = /^iframe$/i;\n\n\t\t\tvar supportScroll = 'onscroll' in window && !/(gle|ing)bot/.test(navigator.userAgent);\n\n\t\t\tvar shrinkExpand = 0;\n\t\t\tvar currentExpand = 0;\n\n\t\t\tvar isLoading = 0;\n\t\t\tvar lowRuns = -1;\n\n\t\t\tvar resetPreloading = function resetPreloading(e) {\n\t\t\t\tisLoading--;\n\t\t\t\tif (!e || isLoading < 0 || !e.target) {\n\t\t\t\t\tisLoading = 0;\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tvar isVisible = function isVisible(elem) {\n\t\t\t\tif (isBodyHidden == null) {\n\t\t\t\t\tisBodyHidden = getCSS(document.body, 'visibility') == 'hidden';\n\t\t\t\t}\n\n\t\t\t\treturn isBodyHidden || getCSS(elem.parentNode, 'visibility') != 'hidden' && getCSS(elem, 'visibility') != 'hidden';\n\t\t\t};\n\n\t\t\tvar isNestedVisible = function isNestedVisible(elem, elemExpand) {\n\t\t\t\tvar outerRect;\n\t\t\t\tvar parent = elem;\n\t\t\t\tvar visible = isVisible(elem);\n\n\t\t\t\teLtop -= elemExpand;\n\t\t\t\teLbottom += elemExpand;\n\t\t\t\teLleft -= elemExpand;\n\t\t\t\teLright += elemExpand;\n\n\t\t\t\twhile (visible && (parent = parent.offsetParent) && parent != document.body && parent != docElem) {\n\t\t\t\t\tvisible = (getCSS(parent, 'opacity') || 1) > 0;\n\n\t\t\t\t\tif (visible && getCSS(parent, 'overflow') != 'visible') {\n\t\t\t\t\t\touterRect = parent.getBoundingClientRect();\n\t\t\t\t\t\tvisible = eLright > outerRect.left && eLleft < outerRect.right && eLbottom > outerRect.top - 1 && eLtop < outerRect.bottom + 1;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn visible;\n\t\t\t};\n\n\t\t\tvar checkElements = function checkElements() {\n\t\t\t\tvar eLlen, i, rect, autoLoadElem, loadedSomething, elemExpand, elemNegativeExpand, elemExpandVal, beforeExpandVal, defaultExpand, preloadExpand, hFac;\n\t\t\t\tvar lazyloadElems = lazysizes.elements;\n\n\t\t\t\tif ((loadMode = lazySizesConfig.loadMode) && isLoading < 8 && (eLlen = lazyloadElems.length)) {\n\n\t\t\t\t\ti = 0;\n\n\t\t\t\t\tlowRuns++;\n\n\t\t\t\t\tdefaultExpand = !lazySizesConfig.expand || lazySizesConfig.expand < 1 ? docElem.clientHeight > 500 && docElem.clientWidth > 500 ? 500 : 370 : lazySizesConfig.expand;\n\n\t\t\t\t\tlazysizes._defEx = defaultExpand;\n\n\t\t\t\t\tpreloadExpand = defaultExpand * lazySizesConfig.expFactor;\n\t\t\t\t\thFac = lazySizesConfig.hFac;\n\t\t\t\t\tisBodyHidden = null;\n\n\t\t\t\t\tif (currentExpand < preloadExpand && isLoading < 1 && lowRuns > 2 && loadMode > 2 && !document.hidden) {\n\t\t\t\t\t\tcurrentExpand = preloadExpand;\n\t\t\t\t\t\tlowRuns = 0;\n\t\t\t\t\t} else if (loadMode > 1 && lowRuns > 1 && isLoading < 6) {\n\t\t\t\t\t\tcurrentExpand = defaultExpand;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcurrentExpand = shrinkExpand;\n\t\t\t\t\t}\n\n\t\t\t\t\tfor (; i < eLlen; i++) {\n\n\t\t\t\t\t\tif (!lazyloadElems[i] || lazyloadElems[i]._lazyRace) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (!supportScroll) {\n\t\t\t\t\t\t\tunveilElement(lazyloadElems[i]);continue;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (!(elemExpandVal = lazyloadElems[i][_getAttribute]('data-expand')) || !(elemExpand = elemExpandVal * 1)) {\n\t\t\t\t\t\t\telemExpand = currentExpand;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (beforeExpandVal !== elemExpand) {\n\t\t\t\t\t\t\teLvW = innerWidth + elemExpand * hFac;\n\t\t\t\t\t\t\telvH = innerHeight + elemExpand;\n\t\t\t\t\t\t\telemNegativeExpand = elemExpand * -1;\n\t\t\t\t\t\t\tbeforeExpandVal = elemExpand;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\trect = lazyloadElems[i].getBoundingClientRect();\n\n\t\t\t\t\t\tif ((eLbottom = rect.bottom) >= elemNegativeExpand && (eLtop = rect.top) <= elvH && (eLright = rect.right) >= elemNegativeExpand * hFac && (eLleft = rect.left) <= eLvW && (eLbottom || eLright || eLleft || eLtop) && (lazySizesConfig.loadHidden || isVisible(lazyloadElems[i])) && (isCompleted && isLoading < 3 && !elemExpandVal && (loadMode < 3 || lowRuns < 4) || isNestedVisible(lazyloadElems[i], elemExpand))) {\n\t\t\t\t\t\t\tunveilElement(lazyloadElems[i]);\n\t\t\t\t\t\t\tloadedSomething = true;\n\t\t\t\t\t\t\tif (isLoading > 9) {\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else if (!loadedSomething && isCompleted && !autoLoadElem && isLoading < 4 && lowRuns < 4 && loadMode > 2 && (preloadElems[0] || lazySizesConfig.preloadAfterLoad) && (preloadElems[0] || !elemExpandVal && (eLbottom || eLright || eLleft || eLtop || lazyloadElems[i][_getAttribute](lazySizesConfig.sizesAttr) != 'auto'))) {\n\t\t\t\t\t\t\tautoLoadElem = preloadElems[0] || lazyloadElems[i];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (autoLoadElem && !loadedSomething) {\n\t\t\t\t\t\tunveilElement(autoLoadElem);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tvar throttledCheckElements = throttle(checkElements);\n\n\t\t\tvar switchLoadingClass = function switchLoadingClass(e) {\n\t\t\t\tvar elem = e.target;\n\n\t\t\t\tif (elem._lazyCache) {\n\t\t\t\t\tdelete elem._lazyCache;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresetPreloading(e);\n\t\t\t\taddClass(elem, lazySizesConfig.loadedClass);\n\t\t\t\tremoveClass(elem, lazySizesConfig.loadingClass);\n\t\t\t\taddRemoveLoadEvents(elem, rafSwitchLoadingClass);\n\t\t\t\ttriggerEvent(elem, 'lazyloaded');\n\t\t\t};\n\t\t\tvar rafedSwitchLoadingClass = rAFIt(switchLoadingClass);\n\t\t\tvar rafSwitchLoadingClass = function rafSwitchLoadingClass(e) {\n\t\t\t\trafedSwitchLoadingClass({ target: e.target });\n\t\t\t};\n\n\t\t\tvar changeIframeSrc = function changeIframeSrc(elem, src) {\n\t\t\t\ttry {\n\t\t\t\t\telem.contentWindow.location.replace(src);\n\t\t\t\t} catch (e) {\n\t\t\t\t\telem.src = src;\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tvar handleSources = function handleSources(source) {\n\t\t\t\tvar customMedia;\n\n\t\t\t\tvar sourceSrcset = source[_getAttribute](lazySizesConfig.srcsetAttr);\n\n\t\t\t\tif (customMedia = lazySizesConfig.customMedia[source[_getAttribute]('data-media') || source[_getAttribute]('media')]) {\n\t\t\t\t\tsource.setAttribute('media', customMedia);\n\t\t\t\t}\n\n\t\t\t\tif (sourceSrcset) {\n\t\t\t\t\tsource.setAttribute('srcset', sourceSrcset);\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tvar lazyUnveil = rAFIt(function (elem, detail, isAuto, sizes, isImg) {\n\t\t\t\tvar src, srcset, parent, isPicture, event, firesLoad;\n\n\t\t\t\tif (!(event = triggerEvent(elem, 'lazybeforeunveil', detail)).defaultPrevented) {\n\n\t\t\t\t\tif (sizes) {\n\t\t\t\t\t\tif (isAuto) {\n\t\t\t\t\t\t\taddClass(elem, lazySizesConfig.autosizesClass);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\telem.setAttribute('sizes', sizes);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tsrcset = elem[_getAttribute](lazySizesConfig.srcsetAttr);\n\t\t\t\t\tsrc = elem[_getAttribute](lazySizesConfig.srcAttr);\n\n\t\t\t\t\tif (isImg) {\n\t\t\t\t\t\tparent = elem.parentNode;\n\t\t\t\t\t\tisPicture = parent && regPicture.test(parent.nodeName || '');\n\t\t\t\t\t}\n\n\t\t\t\t\tfiresLoad = detail.firesLoad || 'src' in elem && (srcset || src || isPicture);\n\n\t\t\t\t\tevent = { target: elem };\n\n\t\t\t\t\taddClass(elem, lazySizesConfig.loadingClass);\n\n\t\t\t\t\tif (firesLoad) {\n\t\t\t\t\t\tclearTimeout(resetPreloadingTimer);\n\t\t\t\t\t\tresetPreloadingTimer = setTimeout(resetPreloading, 2500);\n\t\t\t\t\t\taddRemoveLoadEvents(elem, rafSwitchLoadingClass, true);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (isPicture) {\n\t\t\t\t\t\tforEach.call(parent.getElementsByTagName('source'), handleSources);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (srcset) {\n\t\t\t\t\t\telem.setAttribute('srcset', srcset);\n\t\t\t\t\t} else if (src && !isPicture) {\n\t\t\t\t\t\tif (regIframe.test(elem.nodeName)) {\n\t\t\t\t\t\t\tchangeIframeSrc(elem, src);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\telem.src = src;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (isImg && (srcset || isPicture)) {\n\t\t\t\t\t\tupdatePolyfill(elem, { src: src });\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (elem._lazyRace) {\n\t\t\t\t\tdelete elem._lazyRace;\n\t\t\t\t}\n\t\t\t\tremoveClass(elem, lazySizesConfig.lazyClass);\n\n\t\t\t\trAF(function () {\n\t\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\t\tvar isLoaded = elem.complete && elem.naturalWidth > 1;\n\n\t\t\t\t\tif (!firesLoad || isLoaded) {\n\t\t\t\t\t\tif (isLoaded) {\n\t\t\t\t\t\t\taddClass(elem, 'ls-is-cached');\n\t\t\t\t\t\t}\n\t\t\t\t\t\tswitchLoadingClass(event);\n\t\t\t\t\t\telem._lazyCache = true;\n\t\t\t\t\t\tsetTimeout(function () {\n\t\t\t\t\t\t\tif ('_lazyCache' in elem) {\n\t\t\t\t\t\t\t\tdelete elem._lazyCache;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}, 9);\n\t\t\t\t\t}\n\t\t\t\t}, true);\n\t\t\t});\n\n\t\t\tvar unveilElement = function unveilElement(elem) {\n\t\t\t\tvar detail;\n\n\t\t\t\tvar isImg = regImg.test(elem.nodeName);\n\n\t\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\t\tvar sizes = isImg && (elem[_getAttribute](lazySizesConfig.sizesAttr) || elem[_getAttribute]('sizes'));\n\t\t\t\tvar isAuto = sizes == 'auto';\n\n\t\t\t\tif ((isAuto || !isCompleted) && isImg && (elem[_getAttribute]('src') || elem.srcset) && !elem.complete && !hasClass(elem, lazySizesConfig.errorClass) && hasClass(elem, lazySizesConfig.lazyClass)) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tdetail = triggerEvent(elem, 'lazyunveilread').detail;\n\n\t\t\t\tif (isAuto) {\n\t\t\t\t\tautoSizer.updateElem(elem, true, elem.offsetWidth);\n\t\t\t\t}\n\n\t\t\t\telem._lazyRace = true;\n\t\t\t\tisLoading++;\n\n\t\t\t\tlazyUnveil(elem, detail, isAuto, sizes, isImg);\n\t\t\t};\n\n\t\t\tvar onload = function onload() {\n\t\t\t\tif (isCompleted) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (Date.now() - started < 999) {\n\t\t\t\t\tsetTimeout(onload, 999);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tvar afterScroll = debounce(function () {\n\t\t\t\t\tlazySizesConfig.loadMode = 3;\n\t\t\t\t\tthrottledCheckElements();\n\t\t\t\t});\n\n\t\t\t\tisCompleted = true;\n\n\t\t\t\tlazySizesConfig.loadMode = 3;\n\n\t\t\t\tthrottledCheckElements();\n\n\t\t\t\taddEventListener('scroll', function () {\n\t\t\t\t\tif (lazySizesConfig.loadMode == 3) {\n\t\t\t\t\t\tlazySizesConfig.loadMode = 2;\n\t\t\t\t\t}\n\t\t\t\t\tafterScroll();\n\t\t\t\t}, true);\n\t\t\t};\n\n\t\t\treturn {\n\t\t\t\t_: function _() {\n\t\t\t\t\tstarted = Date.now();\n\n\t\t\t\t\tlazysizes.elements = document.getElementsByClassName(lazySizesConfig.lazyClass);\n\t\t\t\t\tpreloadElems = document.getElementsByClassName(lazySizesConfig.lazyClass + ' ' + lazySizesConfig.preloadClass);\n\n\t\t\t\t\taddEventListener('scroll', throttledCheckElements, true);\n\n\t\t\t\t\taddEventListener('resize', throttledCheckElements, true);\n\n\t\t\t\t\tif (window.MutationObserver) {\n\t\t\t\t\t\tnew MutationObserver(throttledCheckElements).observe(docElem, { childList: true, subtree: true, attributes: true });\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdocElem[_addEventListener]('DOMNodeInserted', throttledCheckElements, true);\n\t\t\t\t\t\tdocElem[_addEventListener]('DOMAttrModified', throttledCheckElements, true);\n\t\t\t\t\t\tsetInterval(throttledCheckElements, 999);\n\t\t\t\t\t}\n\n\t\t\t\t\taddEventListener('hashchange', throttledCheckElements, true);\n\n\t\t\t\t\t//, 'fullscreenchange'\n\t\t\t\t\t['focus', 'mouseover', 'click', 'load', 'transitionend', 'animationend', 'webkitAnimationEnd'].forEach(function (name) {\n\t\t\t\t\t\tdocument[_addEventListener](name, throttledCheckElements, true);\n\t\t\t\t\t});\n\n\t\t\t\t\tif (/d$|^c/.test(document.readyState)) {\n\t\t\t\t\t\tonload();\n\t\t\t\t\t} else {\n\t\t\t\t\t\taddEventListener('load', onload);\n\t\t\t\t\t\tdocument[_addEventListener]('DOMContentLoaded', throttledCheckElements);\n\t\t\t\t\t\tsetTimeout(onload, 20000);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (lazysizes.elements.length) {\n\t\t\t\t\t\tcheckElements();\n\t\t\t\t\t\trAF._lsFlush();\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthrottledCheckElements();\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tcheckElems: throttledCheckElements,\n\t\t\t\tunveil: unveilElement\n\t\t\t};\n\t\t}();\n\n\t\tvar autoSizer = function () {\n\t\t\tvar autosizesElems;\n\n\t\t\tvar sizeElement = rAFIt(function (elem, parent, event, width) {\n\t\t\t\tvar sources, i, len;\n\t\t\t\telem._lazysizesWidth = width;\n\t\t\t\twidth += 'px';\n\n\t\t\t\telem.setAttribute('sizes', width);\n\n\t\t\t\tif (regPicture.test(parent.nodeName || '')) {\n\t\t\t\t\tsources = parent.getElementsByTagName('source');\n\t\t\t\t\tfor (i = 0, len = sources.length; i < len; i++) {\n\t\t\t\t\t\tsources[i].setAttribute('sizes', width);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (!event.detail.dataAttr) {\n\t\t\t\t\tupdatePolyfill(elem, event.detail);\n\t\t\t\t}\n\t\t\t});\n\t\t\tvar getSizeElement = function getSizeElement(elem, dataAttr, width) {\n\t\t\t\tvar event;\n\t\t\t\tvar parent = elem.parentNode;\n\n\t\t\t\tif (parent) {\n\t\t\t\t\twidth = getWidth(elem, parent, width);\n\t\t\t\t\tevent = triggerEvent(elem, 'lazybeforesizes', { width: width, dataAttr: !!dataAttr });\n\n\t\t\t\t\tif (!event.defaultPrevented) {\n\t\t\t\t\t\twidth = event.detail.width;\n\n\t\t\t\t\t\tif (width && width !== elem._lazysizesWidth) {\n\t\t\t\t\t\t\tsizeElement(elem, parent, event, width);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tvar updateElementsSizes = function updateElementsSizes() {\n\t\t\t\tvar i;\n\t\t\t\tvar len = autosizesElems.length;\n\t\t\t\tif (len) {\n\t\t\t\t\ti = 0;\n\n\t\t\t\t\tfor (; i < len; i++) {\n\t\t\t\t\t\tgetSizeElement(autosizesElems[i]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tvar debouncedUpdateElementsSizes = debounce(updateElementsSizes);\n\n\t\t\treturn {\n\t\t\t\t_: function _() {\n\t\t\t\t\tautosizesElems = document.getElementsByClassName(lazySizesConfig.autosizesClass);\n\t\t\t\t\taddEventListener('resize', debouncedUpdateElementsSizes);\n\t\t\t\t},\n\t\t\t\tcheckElems: debouncedUpdateElementsSizes,\n\t\t\t\tupdateElem: getSizeElement\n\t\t\t};\n\t\t}();\n\n\t\tvar init = function init() {\n\t\t\tif (!init.i) {\n\t\t\t\tinit.i = true;\n\t\t\t\tautoSizer._();\n\t\t\t\tloader._();\n\t\t\t}\n\t\t};\n\n\t\tlazysizes = {\n\t\t\tcfg: lazySizesConfig,\n\t\t\tautoSizer: autoSizer,\n\t\t\tloader: loader,\n\t\t\tinit: init,\n\t\t\tuP: updatePolyfill,\n\t\t\taC: addClass,\n\t\t\trC: removeClass,\n\t\t\thC: hasClass,\n\t\t\tfire: triggerEvent,\n\t\t\tgW: getWidth,\n\t\t\trAF: rAF\n\t\t};\n\n\t\treturn lazysizes;\n\t});\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(98)(module)))\n\n/***/ }),\n\n/***/ 135:\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\n\tvar focusHelper = __webpack_require__(113);\n\n\t/**\n\t * Parses the html for a modal window\n\t * @param {string} html - representing the body and footer of the modal window\n\t *\n\t * @return {Object} - Object with properties body and footer.\n\t */\n\tfunction parseHtml(html) {\n\t var $html = $('