{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./cartridges/app_custom_core/cartridge/client/default/js/components/common.js","webpack:///./cartridges/app_custom_core/cartridge/client/default/js/components/templates/picturetag.js","webpack:///./cartridges/app_custom_core/cartridge/client/default/js/config/carouselConfig.js","webpack:///./cartridges/app_custom_core/cartridge/client/default/js/product/base.js","webpack:///./cartridges/app_custom_core/cartridge/client/default/js/product/detail.js","webpack:///./cartridges/app_custom_core/cartridge/client/default/js/product/pdpSummary.js","webpack:///./cartridges/app_custom_core/cartridge/client/default/js/product/quickView.js","webpack:///./cartridges/app_custom_core/cartridge/client/default/js/product/quickViewPdp.js","webpack:///./cartridges/app_custom_core/cartridge/client/default/js/product/socialNetworks.js","webpack:///./cartridges/app_custom_core/cartridge/client/default/js/productDetail.js","webpack:///./cartridges/app_custom_core/cartridge/client/default/js/thirdParty/pinchZoom/pinch-zoom.js","webpack:///./cartridges/app_custom_core/cartridge/client/default/js/utils/lazyLoad.js","webpack:///./cartridges/app_custom_core/cartridge/client/default/js/utils/utils.js","webpack:///./cartridges/app_storefront_base/cartridge/client/default/js/components/focus.js","webpack:///./cartridges/app_storefront_base/cartridge/client/default/js/util.js","webpack:///./cartridges/int_cybersource_sfra/cartridge/client/default/js/product/detail.js","webpack:///./node_modules/vanilla-lazyload/dist/lazyload.min.js"],"names":["window","PinchZoom","require","utils","config","pinchZoom","draggableUnzoomed","minZoom","maxZoom","setOffsetsOnce","selectors","carousel","modal","module","exports","slickInit","$","slick","recommendationsStart","document","on","onModalHide","e","thatModal","delegateTarget","innerCarousel","find","length","onModalShow","hasClass","productTile","setTimeout","$image","data","attr","globalEventHandlers","ajaxError","event","jqxhr","pushGAEvent","responseJSON","dataLayerViewData","dataLayerData","isTouchDevice","smartResize","each","_","item","$parent","parent","height","initPinchZoom","pinchZoomElements","querySelectorAll","forEach","parentElement","classList","contains","default","template","pdict","lazyload","lazyload_carousel","image","srcset","mobile","tablet","desktop","classname","altname","alt","titlename","title","itemprop","breakpoints","slider","slidesToShow","slidesToScroll","infinite","autoplay","autoplaySpeed","rows","fade","dots","arrows","prevArrow","nextArrow","lazyLoad","sliderdotless","contentcarousel","centerMode","responsive","breakpoint","ls","settings","md","minicartcarousel","instagramcarousel","recommendations","useTransform","speed","tricarousel","categorycarousel","productcarousel","productcarousel3","productcarousel4","focusHelper","carouselConfig","picturetag","common","getPidValue","$el","pid","closest","getQuantitySelector","quantitySelected","quantitySelectedModal","quantitySelectedPDP","val","undefined","getQuantitySelected","processSwatchValues","$productContainer","msgs","values","attrValue","$attrValue","id","value","$swatchButton","selected","addClass","siblings","text","assistiveSelectedText","removeClass","empty","url","removeAttr","selectable","processNonSwatchValues","$attr","$defaultOption","resetUrl","updateAttrs","attrs","attrsWithSwatches","indexOf","updateAvailability","response","availabilityValue","availabilityMessages","product","availability","messages","readyToOrder","resources","info_selectforstock","message","trigger","updateFabrics","materialSelected","variationAttributes","attributeId","color","material","selectedFabricButton","materialId","replace","fadeTo","getAttributesHtml","attributes","html","attributeGroup","ID","attribute","label","updateOptions","optionsHtml","createVideoTile","videoId","imageUrl","updateImages","imgs","productCarouselContainer","productCarouselNav","append","productCarousel","large","i","active","navImage","carouselImage","appendTo","grid","videoTileGrid","imageHTML","parseInt","index","updateProductSetItemImage","$productItemImageContainer","replaceWith","updateProductSetItemLink","$productItemLink","selectedProductUrl","updateProductSetDescription","$productItemSubtitle","productSetSubtitle","createSlick","imgsArray","$carouselContainer","videoTileCarousel","$this","videoStatus","JSON","stringify","desktopZoomModal","zoom","getProductType","$productQuickview","displaySelectedColorValue","productType","$selectedColorElement","handleVariantResponse","isChoiceOfBonusProducts","parents","isVaraint","primaryImageUrls","images","youtubevideoid","input","prop","show","update","$priceSelector","priceHTML","parseHTML","price","isMapPrice","priceMain","priceContainer","promotionsHtml","isFinalSale","finalSaleMessage","$selectButton","updateQuantities","quantities","map","quantity","join","attributeSelect","selectedValueUrl","container","ajax","method","success","calculateProductSetPrice","spinner","stop","error","getAddToCartUrl","getTempBasketCalculationUrl","parseHtml","$html","body","footer","children","chooseBonusProducts","start","remove","bonusUrl","bonusChoiceRuleBased","showProductsUrlRuleBased","showProductsUrlListBased","htmlString","maxBonusItems","uuid","pliUUID","addToCartUrl","pageSize","labels","selectprods","dataType","parsedHtml","renderedTemplate","enterDialogMessage","closeButtonText","handlePostCartAdd","messageType","newBonusDiscountLineItem","Object","keys","location","reload","getChildProducts","childProducts","push","getOptions","options","$elOption","urlValue","selectedValueId","optionId","toArray","miniCartReportingUrl","ltkUpdateCartData","renderSCA","ltkAppendSCAScript","script","createElement","type","defer","src","ltkScriptSrc","setAttribute","SCA","ltkDataUrl","getScript","updateCartAfterAddToCard","form","reportingURL","updateProductSetPrice","resObj","productlineItems","productPrice","productID","renderedPrice","pidsObj","setPids","allSetPids","is","qty","tempBasketCalculationUrl","methods","editBonusProducts","focusChooseBonusProductModal","focus","onClosingChooseBonusProductModal","trapChooseBonusProductModalFocus","focusParams","containerSelector","firstElementSelector","lastElementSelector","setTabNextFocus","colorAttribute","preventDefault","selectAttribute","currentTarget","selectCheckbox","hide","inputStatusArr","every","available","addToCart","selectBonusProduct","$choiceOfBonusProduct","maxPids","submittedQty","totalQty","optionID","valueId","selectedBonusProductHtml","removeBonusProduct","$selected","count","enableBonusProductSelection","showMoreBonusProducts","addBonusProductsToCart","$readyToOrderBonusProducts","queryString","pidsObject","bonusProducts","qtyOption","option","productId","errorMessage","msgSuccess","changeAttrButtons","targetUrl","initVideo","$videoPosition","insertAfter","openVideo","$videoContainer","$videoModal","openImage","imageIndex","$imageModal","one","Number","base","updateAddToCartEnableDisableOtherElements","enableOrDisable","showRatings","reviewsContainer","toggleClass","numReviews","reviewHighlights","last","pdpCarousel","slide","productAccordion","next","first","fabricAttribute","fabricButton","fabricId","displayName","showStyleMessage","fabricDisplayed","fabricDetail","colorMaterial","closeFabricDetails","compareFabrics","updateAttributesAndDetails","productURL","productUrl","history","replaceState","longDescription","shortDescription","showSpinner","startContentAPlusVideo","$blockWrapper","videoWidth","Math","ceil","width","videoHeight","updateAttribute","eq","updateAddToCart","enable","$checkTypeDiv","allAvailable","allReady","sizeChart","$prodSizeChart","content","copyProductLink","$temp","select","execCommand","bvCallback","BV","reviews","questions","$bvShowElement","displaySelectedColorValueQuickView","getModalHtmlElement","fillModalElement","quickViewFullDetailMsg","not","showQuickview","target","onModalShown","trapQuickviewFocus","nextToLastElementSelector","hideDialog","beforeUpdateAttribute","dialog","quickView","pageLink","href","pageTitle","encodeURIComponent","initEvents","open","processInclude","assign","defineProperty","varArgs","TypeError","to","arguments","nextSource","nextKey","prototype","hasOwnProperty","call","writable","configurable","Array","from","object","slice","buildElement","str","tmp","implementation","createHTMLDocument","innerHTML","triggerEvent","el","name","createEvent","initEvent","dispatchEvent","definePinchZoom","zoomFactor","lastScale","offset","x","y","initialOffset","defaults","setupMarkup","bindEvents","isImageLoaded","updateAspectRatio","setupOffsets","sum","a","b","isCloseTo","expected","tapZoomFactor","zoomOutFactor","animationDuration","lockDragAxis","use2d","zoomStartEventName","zoomUpdateEventName","zoomEndEventName","dragStartEventName","dragUpdateEventName","dragEndEventName","doubleTapEventName","verticalPadding","horizontalPadding","onZoomStart","onZoomEnd","onZoomUpdate","onDragStart","onDragEnd","onDragUpdate","onDoubleTap","handleDragStart","stopAnimation","lastDragPosition","hasInteraction","handleDrag","touch","getTouches","drag","sanitizeOffset","handleDragEnd","end","handleZoomStart","nthZoom","lastZoomCenter","handleZoom","newScale","touchCenter","getTouchCenter","scale","handleZoomEnd","handleDoubleTap","center","startZoomFactor","updateProgress","progress","scaleTo","bind","isDoubleTap","getCurrentZoomCenter","animate","swing","computeInitialOffset","abs","offsetWidth","getInitialZoomFactor","offsetHeight","resetOffset","nodeName","complete","naturalHeight","_isOffsetsSet","elWidth","elHeight","maxX","getContainerX","maxY","getContainerY","maxOffsetX","max","maxOffsetY","minOffsetX","min","minOffsetY","scaleZoomFactor","addOffset","originalZoomFactor","canDrag","lastCenter","touches","getVectorAvg","vectors","v","reduce","sanitize","zoomOutAnimation","isInsaneOffset","sanitizeOffsetAnimation","sanitizedOffset","targetOffset","startOffset","unsetContainerY","setContainerY","getAspectRatio","xZoomFactor","yZoomFactor","offsetLeft","centerX","offsetTop","centerY","rect","getBoundingClientRect","scrollTop","documentElement","scrollLeft","posTop","top","posLeft","left","pageX","pageY","duration","framefn","timefn","callback","startTime","Date","getTime","renderFrame","inAnimation","frameTime","requestAnimationFrame","p","cos","PI","style","parentNode","insertBefore","appendChild","overflow","position","webkitTransformOrigin","mozTransformOrigin","msTransformOrigin","oTransformOrigin","transformOrigin","self","detectGestures","resizeHandler","addEventListener","imgEl","updatePlanned","offsetX","offsetY","transform3d","transform2d","removeClone","clone","removeChild","is3d","webkitTransform","mozTransform","msTransform","oTransform","transform","cloneNode","pointerEvents","enabled","disable","destroy","removeEventListener","interaction","fingers","lastTouchStart","startTouches","setInteraction","newInteraction","updateInteraction","targetTouches","getDistance","sqrt","calculateScale","endTouches","startDistance","endDistance","cancelEvent","stopPropagation","detectDoubleTap","time","firstMove","passive","LazyLoad","inst","callback_error","img","$img","$pictureSources","srcsetUrls","staticFolder","mediaBreakpoints","$cache","getViewports","size","bps","viewport","console","Error","mediaBreakpointUp","mediaQuery","matchMedia","matches","getCurrentViewport","w","innerWidth","viewports","getCurrentLayout","isDesktop","isCurrentPage","timeout","clearTimeout","navigator","maxTouchPoints","msMaxTouchPoints","getBreakpoints","scrollBrowser","xLocation","scrollDuration","scrollY","stickyHeaderData","add","round","KEYCODE_TAB","isTabPressed","key","keyCode","firstFocusableEl","lastFocusableEl","linkElements","shiftKey","include","n","t","define","apply","test","userAgent","o","devicePixelRatio","r","elements_selector","threshold","thresholds","data_src","data_srcset","data_sizes","data_bg","data_bg_hidpi","data_bg_multi","data_bg_multi_hidpi","data_bg_set","data_poster","class_applied","class_loading","class_loaded","class_error","class_entered","class_exited","unobserve_completed","unobserve_entered","cancel_on_exit","callback_enter","callback_exit","callback_applied","callback_loading","callback_loaded","callback_finish","callback_cancel","use_native","restore_on_error","c","l","CustomEvent","detail","instance","initCustomEvent","u","s","d","f","g","m","h","E","I","getAttribute","k","removeAttribute","A","L","O","C","N","className","M","RegExp","z","llTempImage","T","_observer","unobserve","R","loadingCount","G","toLoadCount","j","tagName","D","H","V","F","B","J","P","S","U","q","K","Q","W","X","Y","IMG","IFRAME","VIDEO","load","OBJECT","Z","nn","tn","llEvLisnrs","en","an","rn","cn","ln","backgroundImage","concat","split","un","sn","dn","fn","_n","gn","HTMLImageElement","vn","isIntersecting","intersectionRatio","bn","mn","pn","hn","filter","En","_settings","IntersectionObserver","root","rootMargin","_onlineHandler","disconnect","observe","loadAll","restoreAll","resetStatus","lazyLoadOptions"],"mappings":"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","file":"default/js/productDetail.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 \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"./cartridges/app_custom_core/cartridge/client/default/js/productDetail.js\");\n","'use strict';\n\nwindow.PinchZoom = require('core/thirdParty/pinchZoom/pinch-zoom.js');\nvar utils = require('../utils/utils');\n\nconst config = {\n pinchZoom: {\n draggableUnzoomed: false,\n minZoom: 1,\n maxZoom: 2.5,\n setOffsetsOnce: true\n }\n};\n\nconst selectors = {\n carousel: '.js-carousel',\n modal: '.js-modal, .modal'\n};\n\n/**\n * Handles very specific small functionalities\n */\n\nmodule.exports = {\n // Global slick init, the configuration parameters are passed in the data-slick attribute in isml\n slickInit: () => { $(selectors.carousel).slick(); },\n recommendationsStart: () => {\n $(document).on('recommendations:start', () => {\n $(`${selectors.carousel}:not(.slick-initialized)`).slick();\n });\n },\n onModalHide: () => {\n $(selectors.modal).on('hidden.bs.modal', (e) => {\n const thatModal = e.delegateTarget;\n\n // Unslick slider if it has one\n const innerCarousel = $(thatModal).find(selectors.carousel);\n\n if (innerCarousel.length) {\n innerCarousel.slick('unslick');\n }\n });\n },\n\n onModalShow: () => {\n $(selectors.modal).on('shown.bs.modal', (e) => {\n const thatModal = e.delegateTarget;\n\n // Init slider if it has one\n const innerCarousel = $(thatModal).find(selectors.carousel);\n\n if (innerCarousel.length && !innerCarousel.hasClass('slick-initialized')) {\n innerCarousel.slick();\n }\n });\n },\n\n productTile: () => {\n setTimeout(function(){\n $('.main').on('mouseenter', '.js-tile-image', function () {\n let $image = $(this);\n if ($image.data('alt-src') && !$image.hasClass('error')) {\n $image.data('primary-src', $image.attr('src'));\n $image.attr('src', $image.data('alt-src'));\n }\n }).on('mouseleave', '.js-tile-image', function () {\n let $image = $(this);\n if ($image.data('primary-src') && ($image.attr('src') !== $image.data('primary-src'))) {\n $image.attr('src', $image.data('primary-src'));\n }\n });\n }, 1000);\n },\n\n globalEventHandlers: () => {\n // events that should be run only once\n\n // Trigger error event on all ajax calls.\n $(document).ajaxError(function (event, jqxhr) {\n if (window.pushGAEvent && jqxhr.responseJSON && jqxhr.responseJSON.dataLayerViewData) {\n window.pushGAEvent(\n jqxhr.responseJSON.dataLayerViewData.event,\n jqxhr.responseJSON.dataLayerViewData.dataLayerData\n );\n }\n });\n\n if (utils.isTouchDevice()) {\n utils.smartResize(() => {\n // fix resize bug\n $('.js-pinch-zoom').each((_, item) => {\n let $parent = $(item).parent();\n if ($parent.hasClass('pinch-zoom-container')) {\n $parent.height($(item).height());\n }\n });\n });\n }\n },\n\n initPinchZoom: () => {\n if (utils.isTouchDevice()) {\n const pinchZoomElements = document.querySelectorAll('.js-pinch-zoom');\n\n pinchZoomElements.forEach((item) => {\n if (!item.parentElement.classList.contains('pinch-zoom-container')) {\n // eslint-disable-next-line\n new window.PinchZoom.default(item, config.pinchZoom);\n }\n });\n }\n }\n};\n","'use strict';\n\n/**\n * Renders picturetag.isml template\n * @param {Object} pdict - data object to generate HTML\n * @returns {string} HTML markup as string\n */\nconst template = (pdict) => `\n \n \n `;\n\nmodule.exports = template;\n","/* eslint-disable */\n\n// eslint disabled for this file, since this file, potentially can be reusable both for isml and client js\n\nvar breakpoints = require('./mediaBreakpoints.json');\n\n/**\n * Returns slider carousel config (banners slider)\n * @return {Config} carousel config\n */\nfunction slider() {\n return {\n slidesToShow: 1,\n slidesToScroll: 1,\n infinite: true,\n autoplay: true,\n autoplaySpeed: 6000,\n rows: 0,\n fade: true,\n dots: true,\n arrows: true,\n prevArrow: '',\n nextArrow: '',\n lazyLoad: 'ondemand'\n };\n}\n\n/**\n * Returns dotless slider carousel config (banners slider)\n * @return {Config} carousel config\n */\nfunction sliderdotless() {\n return {\n slidesToShow: 1,\n slidesToScroll: 1,\n infinite: true,\n autoplay: true,\n autoplaySpeed: 4000,\n rows: 0,\n fade: true,\n dots: false,\n arrows: false,\n prevArrow: '',\n nextArrow: '',\n lazyLoad: 'ondemand'\n };\n}\n\n/**\n * Returns content carousel config (image with text carousel)\n * @return {Config} carousel config\n */\nfunction contentcarousel() {\n return {\n slidesToShow: 3,\n slidesToScroll: 1,\n centerMode: true,\n infinite: true,\n rows: 0,\n dots: false,\n arrows: true,\n prevArrow: '',\n nextArrow: '',\n lazyLoad: 'ondemand',\n responsive: [\n {\n breakpoint: breakpoints.ls,\n settings: {\n slidesToShow: 2\n }\n },\n {\n breakpoint: breakpoints.md,\n settings: {\n slidesToShow: 1\n }\n }\n ]\n };\n}\n\n/**\n * Returns content carousel config (image with text carousel)\n * @return {Config} carousel config\n */\n function minicartcarousel() {\n return {\n slidesToShow: 2,\n slidesToScroll: 1,\n infinite: true,\n rows: 0,\n dots: false,\n arrows: true,\n prevArrow: '',\n nextArrow: ''\n };\n}\n\n/**\n * Returns Instagram carousel config\n * @return {Config} carousel config\n */\n function instagramcarousel() {\n return {\n slidesToShow: 5,\n slidesToScroll: 1,\n infinite: true,\n rows: 0,\n dots: false,\n arrows: true,\n prevArrow: '',\n nextArrow: '',\n lazyLoad: 'ondemand',\n responsive: [\n {\n breakpoint: breakpoints.ls,\n settings: {\n slidesToShow: 3\n }\n },\n {\n breakpoint: breakpoints.md,\n settings: {\n slidesToShow: 2\n }\n }\n ]\n };\n}\n\n/**\n * Returns recommendations carousel config (product tiles carousel)\n * @return {Config} carousel config\n */\nfunction recommendations() {\n return {\n slidesToShow: 4,\n slidesToScroll: 1,\n rows: 0,\n dots: false,\n arrows: true,\n prevArrow: '',\n nextArrow: '',\n infinite: true,\n useTransform: false,\n speed: 300,\n lazyLoad: 'ondemand',\n responsive: [\n {\n breakpoint: breakpoints.ls,\n settings: {\n slidesToShow: 3\n }\n },\n {\n breakpoint: breakpoints.md,\n settings: {\n slidesToShow: 2\n }\n }\n ]\n };\n}\n\n/**\n * Returns tri carousel config\n * @return {Config} carousel config\n */\nfunction tricarousel() {\n return {\n slidesToShow: 3,\n slidesToScroll: 1,\n infinite: true,\n centerMode: true,\n rows: 0,\n dots: false,\n arrows: false,\n lazyLoad: 'ondemand',\n responsive: [\n {\n breakpoint: breakpoints.md,\n settings: {\n slidesToShow: 1,\n autoplay: false,\n autoplaySpeed: 5000\n }\n }\n ]\n };\n}\n/**\n * Returns Instagram carousel config\n * @return {Config} carousel config\n */\nfunction categorycarousel() {\n return {\n slidesToShow: 6,\n slidesToScroll: 1,\n rows: 0,\n dots: false,\n arrows: true,\n autoplay: false,\n infinite: false,\n lazyLoad: 'progressive', \n prevArrow: '',\n nextArrow: '',\n responsive: [\n {\n breakpoint: breakpoints.md,\n settings: {\n slidesToShow: 4, \n centerMode: false,\n }\n },\n ]\n };\n}\n\n/**\n * Returns product feature carousel config\n * @return {Config} carousel config\n */\nfunction productcarousel() {\n return {\n slidesToShow: 3,\n slidesToScroll: 1,\n infinite: true,\n centerMode: false,\n rows: 0,\n dots: false,\n arrows: true,\n prevArrow: '',\n nextArrow: '',\n lazyLoad: 'ondemand',\n responsive: [\n {\n breakpoint: breakpoints.ls,\n settings: {\n slidesToShow: 1.5,\n autoplay: false,\n infinite: false,\n arrows: false,\n centerMode: false,\n autoplaySpeed: 5000\n }\n }\n ]\n };\n}\n\n/**\n * Returns product feature carousel config\n * @return {Config} carousel config\n */\nfunction productcarousel3() {\n return {\n slidesToShow: 3,\n slidesToScroll: 1,\n infinite: true,\n centerMode: false,\n rows: 0,\n dots: false,\n arrows: true,\n prevArrow: '',\n nextArrow: '',\n lazyLoad: 'ondemand',\n responsive: [\n {\n breakpoint: breakpoints.ls,\n settings: {\n slidesToShow: 2.5,\n autoplay: false,\n infinite: false,\n arrows: false,\n centerMode: false,\n autoplaySpeed: 5000\n }\n },\n {\n breakpoint: breakpoints.md,\n settings: {\n slidesToShow: 2.5,\n autoplay: false,\n infinite: false,\n arrows: false,\n centerMode: false,\n autoplaySpeed: 5000\n }\n }\n ]\n };\n}\n\n/**\n * Returns product feature carousel config\n * @return {Config} carousel config\n */\nfunction productcarousel4() {\n return {\n slidesToShow: 4,\n slidesToScroll: 1,\n infinite: true,\n centerMode: false,\n rows: 0,\n dots: false,\n arrows: true,\n prevArrow: '',\n nextArrow: '',\n lazyLoad: 'ondemand',\n responsive: [\n {\n breakpoint: breakpoints.ls,\n settings: {\n slidesToShow: 2.5,\n autoplay: false,\n infinite: false,\n arrows: false,\n centerMode: false,\n autoplaySpeed: 5000\n }\n },\n {\n breakpoint: breakpoints.md,\n settings: {\n slidesToShow: 2.5,\n autoplay: false,\n infinite: false,\n arrows: false,\n centerMode: false,\n autoplaySpeed: 5000\n }\n }\n ]\n };\n}\nmodule.exports = {\n slider: slider,\n sliderdotless: sliderdotless,\n contentcarousel: contentcarousel,\n instagramcarousel: instagramcarousel,\n minicartcarousel: minicartcarousel,\n recommendations: recommendations,\n tricarousel: tricarousel,\n categorycarousel: categorycarousel,\n productcarousel: productcarousel,\n productcarousel3: productcarousel3,\n productcarousel4: productcarousel4\n};\n","'use strict';\n\nconst focusHelper = require('base/components/focus');\nconst carouselConfig = require('../config/carouselConfig.js');\nconst picturetag = require('../components/templates/picturetag');\nconst lazyLoad = require('../utils/lazyLoad');\nvar common = require('../components/common');\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 if ($('#quickViewModal').hasClass('show') && !$('.product-set').length) {\n pid = $($el).closest('.modal-content').find('.product-quickview').data('pid');\n } else if ($('.product-set-detail').length || $('.product-set').length) {\n pid = $($el).closest('.product-detail').data('pid');\n } else {\n pid = $('.product-detail:not(\".bundle-item\")').data('pid');\n }\n\n return pid;\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 var quantitySelected;\n if ($el && $('.set-items').length) {\n quantitySelected = $($el).closest('.product-detail').find('.quantity-select');\n } else if ($el && $('.product-bundle').length) {\n var quantitySelectedModal = $($el).closest('.modal-footer').find('.quantity-select');\n var quantitySelectedPDP = $($el).closest('.bundle-footer').find('.quantity-select');\n if (quantitySelectedModal.val() === undefined) {\n quantitySelected = quantitySelectedPDP;\n } else {\n quantitySelected = quantitySelectedModal;\n }\n } else if ($el && ($el.hasClass('product-quickview') || $el.closest('.product-quickview').length)) {\n quantitySelected = $('.product-quickview').find('.quantity-select');\n } else {\n quantitySelected = $('.quantity-select');\n }\n return quantitySelected;\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 * Process the attribute values for an attribute that has image swatches\n *\n * @param {Object} attr - Attribute\n * @param {string} attr.id - Attribute ID\n * @param {Object[]} attr.values - Array of attribute value objects\n * @param {string} attr.values.value - Attribute coded value\n * @param {string} attr.values.url - URL to de/select an attribute value of the product\n * @param {boolean} attr.values.isSelectable - Flag as to whether an attribute value can be\n * selected. If there is no variant that corresponds to a specific combination of attribute\n * values, an attribute may be disabled in the Product Detail Page\n * @param {jQuery} $productContainer - DOM container for a given product\n * @param {Object} msgs - object containing resource messages\n */\nfunction processSwatchValues(attr, $productContainer, msgs) {\n attr.values.forEach(function (attrValue) {\n var $attrValue = $productContainer.find('[data-attr=\"' + attr.id + '\"] [data-attr-value=\"' + attrValue.value + '\"]');\n var $swatchButton = $attrValue.parent();\n\n if (attrValue.selected) {\n $attrValue.addClass('selected');\n $swatchButton.addClass('selected active');\n $attrValue.siblings('.selected-assistive-text').text(msgs.assistiveSelectedText);\n } else {\n $attrValue.removeClass('selected');\n $swatchButton.removeClass('selected active');\n $attrValue.siblings('.selected-assistive-text').empty();\n }\n\n if (attrValue.url) {\n $swatchButton.attr('data-url', attrValue.url);\n $swatchButton.addClass('selectable');\n $swatchButton.attr('disabled', false);\n } else {\n $swatchButton.removeAttr('data-url');\n $swatchButton.attr('disabled', true);\n }\n\n // Disable if not selectable\n $attrValue.removeClass('selectable unselectable');\n\n $attrValue.addClass(attrValue.selectable ? 'selectable' : 'unselectable');\n });\n}\n\n/**\n * Process attribute values associated with an attribute that does not have image swatches\n *\n * @param {Object} attr - Attribute\n * @param {string} attr.id - Attribute ID\n * @param {Object[]} attr.values - Array of attribute value objects\n * @param {string} attr.values.value - Attribute coded value\n * @param {string} attr.values.url - URL to de/select an attribute value of the product\n * @param {boolean} attr.values.isSelectable - Flag as to whether an attribute value can be\n * selected. If there is no variant that corresponds to a specific combination of attribute\n * values, an attribute may be disabled in the Product Detail Page\n * @param {jQuery} $productContainer - DOM container for a given product\n */\nfunction processNonSwatchValues(attr, $productContainer) {\n var $attr = '[data-attr=\"' + attr.id + '\"]';\n\n // for select (1st select value)\n var $defaultOption = $productContainer.find($attr + ' .select-' + attr.id + ' option:first');\n $defaultOption.attr('value', attr.resetUrl);\n\n attr.values.forEach(function (attrValue) {\n var $attrValue = $productContainer.find($attr + ' [data-attr-value=\"' + attrValue.value + '\"]');\n\n $attrValue.attr('value', attrValue.url).removeAttr('disabled').removeClass('disabled');\n\n if (!attrValue.selectable) {\n $attrValue.attr('disabled', true);\n }\n if (!attrValue.selected) {\n $attrValue.removeClass('active');\n }\n\n $attrValue.data('selected', attrValue.selected);\n });\n}\n\n/**\n * Routes the handling of attribute processing depending on whether the attribute has image\n * swatches or not\n *\n * @param {Object} attrs - Attribute\n * @param {string} attr.id - Attribute ID\n * @param {jQuery} $productContainer - DOM element for a given product\n * @param {Object} msgs - object containing resource messages\n */\nfunction updateAttrs(attrs, $productContainer, msgs) {\n // Currently, the only attribute type that has image swatches is Color.\n var attrsWithSwatches = ['color'];\n\n attrs.forEach(function (attr) {\n if (attrsWithSwatches.indexOf(attr.id) > -1) {\n processSwatchValues(attr, $productContainer, msgs);\n } else {\n processNonSwatchValues(attr, $productContainer);\n }\n });\n}\n\n/**\n * Updates the availability status in the Product Detail Page\n *\n * @param {Object} response - Ajax response object after an\n * attribute value has been [de]selected\n * @param {jQuery} $productContainer - DOM element for a given product\n */\nfunction updateAvailability(response, $productContainer) {\n var availabilityValue = '';\n var availabilityMessages = response.product.availability.messages;\n if (!response.product.readyToOrder) {\n availabilityValue = '
  • ' + response.resources.info_selectforstock + '
  • ';\n } else {\n availabilityMessages.forEach(function (message) {\n availabilityValue += '
  • ' + message + '
  • ';\n });\n }\n\n $($productContainer).trigger('product:updateAvailability', {\n product: response.product,\n $productContainer: $productContainer,\n message: availabilityValue,\n resources: response.resources\n });\n}\n\nfunction updateFabrics(response) {\n var materialSelected;\n response.product.variationAttributes.forEach(function(attr){\n if(attr.attributeId === 'color'){\n attr.values.forEach(function(color){\n if(color.selected == true){\n materialSelected = color.material;\n }\n });\n }\n });\n\n var selectedFabricButton = $('.fabric-button.selected').attr('data-material-id');\n if(materialSelected){\n var materialId = materialSelected.replace(/\\s/g, '');\n if(materialId != selectedFabricButton){\n $('#showStyleMessage').removeClass('show');\n $('.fabricDetail').removeClass('show');\n $('.js-color-value-option').each(function(){\n var color = $(this);\n color.fadeTo(150, 1);\n });\n $('.fabric-button').addClass('disabled').removeClass('selected');\n $('#fabric-button-'+materialId).removeClass('disabled');\n } else {\n $('.fabric-button').addClass('disabled').removeClass('selected');\n $('#fabric-button-'+materialId).removeClass('disabled').addClass('selected');\n } \n }\n}\n\n/**\n * Generates html for product attributes section\n *\n * @param {array} attributes - list of attributes\n * @return {string} - Compiled HTML\n */\nfunction getAttributesHtml(attributes) {\n if (!attributes) {\n return '';\n }\n\n var html = '';\n\n attributes.forEach(function (attributeGroup) {\n if (attributeGroup.ID === 'mainAttributes') {\n attributeGroup.attributes.forEach(function (attribute) {\n html += '
    ' + attribute.label + ': '\n + attribute.value + '
    ';\n });\n }\n });\n\n return html;\n}\n\n/**\n * @typedef UpdatedOptionValue\n * @type Object\n * @property {string} id - Option value ID for look up\n * @property {string} url - Updated option value selection URL\n */\n\n/**\n * @typedef OptionSelectionResponse\n * @type Object\n * @property {string} priceHtml - Updated price HTML code\n * @property {Object} options - Updated Options\n * @property {string} options.id - Option ID\n * @property {UpdatedOptionValue[]} options.values - Option values\n */\n\n/**\n * Updates DOM using post-option selection Ajax response\n *\n * @param {OptionSelectionResponse} optionsHtml - Ajax response optionsHtml from selecting a product option\n * @param {jQuery} $productContainer - DOM element for current product\n */\nfunction updateOptions(optionsHtml, $productContainer) {\n // Update options\n $productContainer.find('.product-options').empty().html(optionsHtml);\n}\n\n/**\n * Generate video tile for grid\\slider\n * @param {string} videoId - id of youtube video\n * @return {string} - Compiled HTML\n */\nfunction createVideoTile(videoId) {\n // TODO: Crop image or use thumbnain from BM\n let imageUrl = `https://i3.ytimg.com/vi/${videoId}/maxresdefault.jpg`;\n\n return `\n \n \"\"\n \n `;\n}\n\n/**\n * Dynamically change images in grid\n * @param {Object[]} imgs - Array of large product images,along with related information\n * @param {jQuery} $productContainer - DOM element for a given product\n * @param {string} videoId - id of youtube video\n *\n */\nfunction updateImages(imgs, $productContainer, videoId) {\n //if carousel layout\n let productCarouselContainer = $productContainer.find('.js-desktop-carousel-container');\n if(productCarouselContainer.length){\n\n var productCarouselNav = $('.js-desktop-carousel-nav');\n productCarouselNav.empty();\n\n productCarouselContainer.empty().append(\"\");\n var productCarousel = $('.js-desktop-carousel');\n\n if (imgs.large.length) {\n for (var i = 0; i < imgs.large.length; i++) {\n const image = imgs.large[i];\n var active = i == 0? 'active' : '';\n var navImage = \"\";\n var carouselImage = \"\";\n $(carouselImage).appendTo(productCarousel);\n $(navImage).appendTo(productCarouselNav);\n }\n }\n\n $('.js-desktop-carousel').slick({\n arrows: true,\n prevArrow: '',\n nextArrow: '',\n lazyLoad: 'ondemand'\n });\n }\n\n //if grid layout\n let grid = $productContainer.find('.js-primary-images-grid');\n if (grid.length) {\n grid.empty();\n\n let videoTileGrid = `
    ${createVideoTile(videoId)}
    `;\n\n if (imgs.large.length) {\n for (var i = 0; i < imgs.large.length; i++) {\n const image = imgs.large[i];\n const imageHTML = picturetag({\n image,\n classname: 'img-fluid',\n alt: image.alt + ' image number ' + parseInt(image.index, 10),\n lazyload: i !== 0\n });\n\n $(`
    \n \n ${imageHTML}\n \n
    `).appendTo(grid);\n\n if (videoId) {\n // if youtube video id and youtube video thumb exist in BM for this product\n if ((imgs.large.length >= 3 && i === 1) || (imgs.large.length < 3 && i === imgs.large.length - 1)) {\n // if the images array contains >= 3 images then show the video after 2nd position\n // if the images array contains < 3 images then show the video at the last position\n $(videoTileGrid).appendTo(grid);\n }\n }\n }\n } else if (videoId) {\n $(videoTileGrid).appendTo(grid);\n }\n }\n}\n\nfunction updateProductSetItemImage(imgs, $productContainer, videoId) {\n let $productItemImageContainer = $productContainer.find('.js-productSetItemImage picture');\n if ($productItemImageContainer.length) {\n if (imgs.large.length) {\n const image = imgs.large[0];\n const imageHTML = picturetag({\n image,\n classname: '',\n alt: image.alt + ' image number ' + parseInt(image.index, 10),\n lazyload: true\n });\n $productItemImageContainer.replaceWith(imageHTML);\n }\n }\n}\n\nfunction updateProductSetItemLink(product, $productContainer) {\n let $productItemLink = $productContainer.find('.js-productSetItem-name a');\n if ($productItemLink.length) {\n $productItemLink.attr('href', product.selectedProductUrl);\n }\n}\n\nfunction updateProductSetDescription(product, $productContainer) {\n let $productItemSubtitle = $productContainer.find('.js-productSetSubtitle');\n if ($productItemSubtitle.length && product.productSetSubtitle) {\n $productItemSubtitle.text(product.productSetSubtitle);\n }\n}\n\n/**\n * Dynamically creates Slick carousel from response containing images\n * @param {Object[]} imgsArray - Array of large product images,along with related information\n * @param {jQuery} $productContainer - DOM element for a given product\n * @param {string} videoId - id of youtube video\n */\nfunction createSlick(imgsArray, $productContainer, videoId) {\n const $carouselContainer = $productContainer.find('.js-slick-carousel');\n\n let videoTileCarousel = `
    ${createVideoTile(videoId)}
    `;\n\n // there can be several carousels on a page, so we use 'each'\n $carouselContainer.each(function () {\n const $this = $(this);\n const videoStatus = $this.data('video');\n\n // Append container\n $this.empty().append(`
    `);\n\n let carousel = $this.find('.js-carousel');\n\n // Detect parent container type\n let desktopZoomModal = $this.closest('.modal-primary-images').length;\n let imgs = desktopZoomModal ? imgsArray.zoom : imgsArray.large;\n\n // Append items\n if (imgs.length) {\n for (var i = 0; i < imgs.length; i++) {\n const image = imgs[i];\n const imageHTML = picturetag({\n image,\n classname: 'slick-img',\n alt: image.alt + ' image number ' + parseInt(image.index, 10),\n lazyload: i !== 0\n });\n\n if (desktopZoomModal) {\n $(imageHTML).appendTo(carousel);\n } else $(`
    ${imageHTML}
    `).appendTo(carousel);\n\n if (videoStatus === true && videoId) {\n // if youtube video id and youtube video thumb exist in BM for this product\n if ((imgs.length >= 3 && i === 1) || (imgs.length < 3 && i === imgs.length - 1)) {\n // if the images array contains >= 3 images then show the video after 2nd position\n // if the images array contains < 3 images then show the video at the last position\n $(videoTileCarousel).appendTo(carousel);\n }\n }\n }\n } else if (videoStatus === true && videoId) {\n $(videoTileCarousel).appendTo(carousel);\n }\n $this.find('.js-carousel').slick();\n });\n common.initPinchZoom();\n}\n\nfunction getProductType() {\n var $productQuickview = $('.product-quickview');\n return $productQuickview.length ? $productQuickview.find('.js-product').data('product-type') : $('.js-product').data('product-type');\n}\n\n/**\n * Displays selected color value\n */\nfunction displaySelectedColorValue($productContainer) {\n const productType = getProductType();\n\n if ($productContainer) {\n var $selectedColorElement = $('.js-attribute-color .js-swatch-value.selected', $productContainer);\n $('.js-selected-color-value', $productContainer).text($selectedColorElement.length ? $selectedColorElement.data('attrDisplayValue') : '');\n } else if (productType === 'productSet') {\n $('.set-items')\n .find('.js-product')\n .each(function () {\n var $selectedColorElement = $('.js-attribute-color .js-swatch-value.selected', $(this));\n $('.js-selected-color-value', $(this)).text($selectedColorElement.length ? $selectedColorElement.data('attrDisplayValue') : '');\n });\n } else {\n var $selectedColorElement = $('.js-attribute-color .js-swatch-value.selected');\n $('.js-selected-color-value').text($selectedColorElement.length ? $selectedColorElement.data('attrDisplayValue') : '');\n }\n}\n\n/**\n * Parses JSON from Ajax call made whenever an attribute value is [de]selected\n * @param {Object} response - response from Ajax call\n * @param {Object} response.product - Product object\n * @param {string} response.product.id - Product ID\n * @param {Object[]} response.product.variationAttributes - Product attributes\n * @param {Object[]} response.product.images - Product images\n * @param {boolean} response.product.hasRequiredAttrsSelected - Flag as to whether all required\n * attributes have been selected. Used partially to\n * determine whether the Add to Cart button can be enabled\n * @param {jQuery} $productContainer - DOM element for a given product.\n */\nfunction handleVariantResponse(response, $productContainer) {\n const productType = getProductType();\n\n var isChoiceOfBonusProducts = $productContainer.parents('.choose-bonus-product-dialog').length > 0;\n var isVaraint;\n if (response.product.variationAttributes) {\n updateAttrs(response.product.variationAttributes, $productContainer, response.resources);\n isVaraint = response.product.productType === 'variant';\n if (isChoiceOfBonusProducts && isVaraint) {\n $productContainer.parent('.bonus-product-item').data('pid', response.product.id);\n\n $productContainer.parent('.bonus-product-item').data('ready-to-order', response.product.readyToOrder);\n }\n }\n\n // Update primary images and video\n var primaryImageUrls = response.product.images;\n let videoId = response.product.youtubevideoid;\n\n if (productType === 'productSet') {\n updateProductSetItemImage(primaryImageUrls, $productContainer); // update item image\n updateProductSetItemLink(response.product, $productContainer); // update item link\n updateProductSetDescription(response.product, $productContainer); // update item Description\n\n var input = $productContainer.find('#productItem');\n input.prop('checked', true);\n $productContainer.find('.js-checkbox-selector-checked').show();\n $productContainer.addClass('select-productSet-item');\n $productContainer.data('pid', response.product.id);\n $productContainer.attr('data-pid', response.product.id)\n $productContainer.attr('data-ready-to-order', response.product.readyToOrder);\n } else {\n updateImages(primaryImageUrls, $productContainer, videoId); // update desktop primary image grid\n createSlick(primaryImageUrls, $productContainer, videoId); // update mobile primary image Slick + desktop Zoom slick\n }\n lazyLoad.update();\n\n // Update pricing\n if (!isChoiceOfBonusProducts) {\n var $priceSelector = $('.prices .price', $productContainer).length\n ? $('.prices .price', $productContainer)\n : $('.prices .price');\n var priceHTML = $.parseHTML(response.product.price.html);\n var isMapPrice = response.product.isMapPrice;\n if(isMapPrice){\n var priceMain = $(priceHTML).find('.price__main');\n priceMain.addClass('isMapPrice');\n }\n //check if master, display \"select available size\" messaging\n if(response.product.productType == \"master\"){\n var priceContainer = $(priceHTML).find('span');\n priceContainer.html('Please select available size');\n }\n $priceSelector.replaceWith(priceHTML);\n }\n\n // Update promotions\n $productContainer.find('.promotions').empty().html(response.product.promotionsHtml);\n\n //Update Availability\n updateAvailability(response, $productContainer);\n\n //Update fabrics\n updateFabrics(response);\n\n //Update final sale\n $('.finalSaleContainer').empty();\n if (response.product.isFinalSale) {\n var finalSaleMessage = $('
    Final Sale, No Returns Accepted
    ');\n $('.finalSaleContainer').append(finalSaleMessage);\n }\n\n if (isChoiceOfBonusProducts) {\n var $selectButton = $productContainer.find('.select-bonus-product');\n $selectButton.trigger('bonusproduct:updateSelectButton', {\n product: response.product,\n $productContainer: $productContainer\n });\n } else {\n // Enable \"Add to Cart\" button if all required attributes have been selected\n $('button.add-to-cart, button.add-to-cart-global, button.update-cart-product-global')\n .trigger('product:updateAddToCart', {\n product: response.product,\n $productContainer: $productContainer\n })\n .trigger('product:statusUpdate', response.product);\n }\n\n // Update attributes\n $productContainer.find('.main-attributes').empty().html(getAttributesHtml(response.product.attributes));\n\n displaySelectedColorValue($productContainer);\n}\n\n/**\n * @typespec UpdatedQuantity\n * @type Object\n * @property {boolean} selected - Whether the quantity has been selected\n * @property {string} value - The number of products to purchase\n * @property {string} url - Compiled URL that specifies variation attributes, product ID, options,\n * etc.\n */\n\n/**\n * Updates the quantity DOM elements post Ajax call\n * @param {UpdatedQuantity[]} quantities -\n * @param {jQuery} $productContainer - DOM container for a given product\n */\nfunction updateQuantities(quantities, $productContainer) {\n if ($productContainer.parent('.bonus-product-item').length <= 0) {\n var optionsHtml = quantities.map(function (quantity) {\n var selected = quantity.selected ? ' selected ' : '';\n return '';\n }).join('');\n getQuantitySelector($productContainer).empty().html(optionsHtml);\n }\n}\n\n/**\n * updates the product view when a product attribute is selected or deselected or when\n * changing quantity\n * @param {string} selectedValueUrl - the Url for the selected variation value\n * @param {jQuery} $productContainer - DOM element for current product\n */\nfunction attributeSelect(selectedValueUrl, $productContainer) {\n if (selectedValueUrl) {\n $('body').trigger('product:beforeAttributeSelect', { url: selectedValueUrl, container: $productContainer });\n\n $.ajax({\n url: selectedValueUrl,\n method: 'GET',\n success: function (data) {\n handleVariantResponse(data, $productContainer);\n updateOptions(data.product.optionsHtml, $productContainer);\n updateQuantities(data.product.quantities, $productContainer);\n $('body').trigger('product:afterAttributeSelect', { data: data, container: $productContainer });\n calculateProductSetPrice();\n $.spinner().stop();\n },\n error: function () {\n $.spinner().stop();\n }\n });\n }\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 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 getTempBasketCalculationUrl() {\n return $('.product-set-detail').data('temp-basket-calculation-url');\n}\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 { body: body, footer: footer };\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\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 * @param {Object} event - \"event\" of the button you clicked on\n */\nfunction handlePostCartAdd(response, event) {\n $('.minicart').trigger('count:update', response);\n\n var messageType = response.error ? 'alert-danger' : 'alert-success';\n\n // show add to cart toast\n if (response.newBonusDiscountLineItem && Object.keys(response.newBonusDiscountLineItem).length !== 0) {\n chooseBonusProducts(response.newBonusDiscountLineItem);\n } else if (response.error) {\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 $('.add-to-cart').attr('disabled', true);\n\n setTimeout(function () {\n $('.add-to-basket-alert').remove();\n }, 5000);\n } else if ($('.cart-page').length) {\n // eslint-disable-next-line no-restricted-globals\n location.reload();\n } else {\n const url = $('.js-minicart').data('action-url');\n\n $('body').trigger('minicart:open', { url, event });\n\n /*\n const autoCloseModal = setTimeout(function () {\n $('#miniCartModal').modal('hide');\n }, 5000);\n\n $('#miniCartModal').one('hidden.bs.modal', function () {\n clearTimeout(autoCloseModal);\n });\n */\n }\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 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 * 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\n/**\n * Update Listrak cart data.\n *\n * @param {string} data - updated data\n */\nfunction ltkUpdateCartData(data) {\n $('script[src*=\"ltkSendSCA.js\"]').attr('ltk-data-sca', data);\n\n if (typeof renderSCA !== 'undefined') {\n renderSCA(); //eslint-disable-line\n }\n}\n\n/**\n * Add Listrak SCA script.\n *\n * @param {Object} data - updated data\n */\nfunction ltkAppendSCAScript(data) {\n var script = document.createElement('script');\n script.type = 'text/javascript';\n script.defer = true;\n script.src = data.ltkScriptSrc;\n script.setAttribute('ltk-data-sca', data.SCA);\n script.setAttribute('ltk-data-url', data.ltkDataUrl);\n $('head').append(script);\n $.getScript(data.ltkScriptSrc, function () {\n ltkUpdateCartData(data.SCA);\n });\n}\n\n/**\n * Update cart after the event of adding an item to the cart\n *\n * @param {string} addToCartUrl - URL string for ajax request from clicking the add to bag button\n * @param {Object} form - data for ajax request from clicking the add to bag button\n * @param {Object} event - \"event\" of the button you clicked on\n */\nfunction updateCartAfterAddToCard(addToCartUrl, form, event) {\n $.ajax({\n url: addToCartUrl,\n method: 'POST',\n data: form,\n success: function (data) {\n handlePostCartAdd(data, event);\n $('body').trigger('product:afterAddToCart', data);\n $.spinner().stop();\n miniCartReportingUrl(data.reportingURL);\n\n // Trigger Listrak data update.\n if (data.SCA) {\n if (!$('script[src*=\"ltkSendSCA.js\"]').length) {\n ltkAppendSCAScript(data);\n } else {\n ltkUpdateCartData(data.SCA);\n }\n }\n },\n error: function () {\n $.spinner().stop();\n }\n });\n}\n\nfunction updateProductSetPrice(resObj) {\n\n if (resObj.data) {\n resObj.data.productlineItems.forEach((productPrice) => {\n $('.set-item[data-pid=\"' + productPrice.productID + '\"] .prices')\n .html(productPrice.renderedPrice);\n });\n\n $('.product-set-detail .prices-add-to-cart-actions .prices').html(resObj.data.renderedPrice);\n }\n}\n\nfunction calculateProductSetPrice() {\n var pid;\n var pidsObj;\n var setPids;\n var allSetPids;\n if ($('.set-items').length) {\n setPids = [];\n allSetPids = [];\n\n const productType = getProductType();\n $('.product-detail').each(function () {\n if ($(this).hasClass('set-item') && productType === 'productSet' && $(this).find('#productItem').is(':checked')) {\n if ( $(this).attr('data-ready-to-order') === 'true') {\n setPids.push({\n pid: $(this).data('pid'),\n qty: $(this).find('.quantity-select').val(),\n options: getOptions($(this))\n });\n \n if ($(this).hasClass('set-item') && productType === 'productSet' && $(this).find('#productItem')) {\n allSetPids.push($(this).data('pid'));\n }\n }\n }\n });\n pidsObj = JSON.stringify(setPids);\n allSetPids = JSON.stringify(allSetPids);\n }\n\n pid = getPidValue($('.product-set-detail'));\n var tempBasketCalculationUrl = getTempBasketCalculationUrl();\n var form = {\n pid: pid,\n pidsObj: pidsObj,\n allSetPids: allSetPids,\n childProducts: getChildProducts(),\n quantity: getQuantitySelected($(this))\n };\n $.spinner().start();\n $.ajax({\n url: tempBasketCalculationUrl,\n method: 'POST',\n data: form,\n success: function (data) {\n updateProductSetPrice(data);\n $.spinner().stop();\n },\n error: function () {\n $.spinner().stop();\n }\n });\n}\n\nmodule.exports = {\n attributeSelect: attributeSelect,\n methods: {\n editBonusProducts: function (data) {\n chooseBonusProducts(data);\n }\n },\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 colorAttribute: function () {\n $(document).on('click', '[data-attr=\"color\"] button', function (e) {\n e.preventDefault();\n const $this = $(this);\n\n if ($this.attr('disabled') || $this.hasClass('selected')) {\n return;\n }\n\n var $productContainer = $this.closest('.set-item');\n if (!$productContainer.length) {\n $productContainer = $this.closest('.product-detail');\n }\n\n attributeSelect($this.attr('data-url'), $productContainer);\n });\n },\n\n selectAttribute: function () {\n $(document).on('change', 'select[class*=\"select-\"], .options-select', function (e) {\n e.preventDefault();\n\n var $productContainer = $(this).closest('.set-item');\n if (!$productContainer.length) {\n $productContainer = $(this).closest('.product-detail');\n }\n\n attributeSelect(e.currentTarget.value, $productContainer);\n });\n },\n\n availability: function () {\n $(document).on('change', '.quantity-select', function (e) {\n e.preventDefault();\n\n var $productContainer = $(this).closest('.product-detail');\n if (!$productContainer.length) {\n $productContainer = $(this).closest('.modal-content').find('.product-quickview');\n }\n\n if ($('.bundle-items', $productContainer).length === 0) {\n attributeSelect($(e.currentTarget).find('option:selected').data('url'), $productContainer);\n }\n });\n },\n\n selectCheckbox: function () {\n $(document).on('click', 'button.js-checkbox-btn', function (e) {\n var input = $(this).closest('.checkbox-container').find('#productItem');\n let readyToOrder = true;\n\n if (input.is(':checked')) {\n input.prop('checked', false);\n $(this).find('.js-checkbox-selector-checked').hide();\n $(this).closest('.product-detail').removeClass('select-productSet-item');\n // readyToOrder = false\n } else {\n input.prop('checked', true);\n $(this).find('.js-checkbox-selector-checked').show();\n $(this).closest('.product-detail').addClass('select-productSet-item');\n // readyToOrder = true\n }\n\n const inputStatusArr = [];\n $('.checkbox-productItem-input').each(function () {\n inputStatusArr.push($(this).is(':checked'));\n });\n\n if (inputStatusArr.every((item) => item === false)) {\n readyToOrder = false;\n }\n\n $('button.add-to-cart, button.add-to-cart-global, button.update-cart-product-global').trigger('product:updateAddToCart', {\n product: { readyToOrder: readyToOrder, available: true },\n $productContainer: $('.product-detail[data-product-type=\"productSet\"]')\n });\n\n calculateProductSetPrice();\n });\n },\n\n addToCart: function () {\n $(document).on('click', 'button.add-to-cart, button.add-to-cart-global', function (event) {\n var addToCartUrl;\n var pid;\n var pidsObj;\n var setPids;\n\n $('body').trigger('product:beforeAddToCart', this);\n\n if ($('.set-items').length ) {\n setPids = [];\n\n const productType = getProductType();\n $('.product-detail').each(function () {\n if (!$(this).hasClass('product-set-detail') && productType === 'productSet' && $(this).find('#productItem').is(':checked')) { \n setPids.push({\n pid: $(this).data('pid'),\n qty: $(this).find('.quantity-select').val(),\n options: getOptions($(this))\n });\n }\n });\n pidsObj = JSON.stringify(setPids);\n }\n\n pid = getPidValue($(this));\n\n var $productContainer = $(this).closest('.product-detail');\n if (!$productContainer.length) {\n $productContainer = $(this).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($(this))\n };\n\n if (!$('.bundle-item').length) {\n form.options = getOptions($productContainer);\n }\n\n $(this).trigger('updateAddToCartFormData', form);\n if (addToCartUrl) {\n updateCartAfterAddToCard(addToCartUrl, form, event);\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 = parseInt($(this).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 // eslint-disable-next-line no-restricted-globals\n location.reload();\n }\n }, 1500);\n }\n },\n error: function () {\n $.spinner().stop();\n }\n });\n });\n },\n changeAttrButtons: function () {\n $(document).on('click', '.js-btn-attribute', function (e) {\n e.preventDefault();\n\n var $productContainer = $(this).closest('.set-item');\n if (!$productContainer.length) {\n $productContainer = $(this).closest('.product-detail');\n }\n\n if (!$productContainer.length) {\n return;\n }\n\n var targetUrl = $(this).attr('value') ? $(this).attr('value') : $(this).data('url');\n\n if (!$(this).hasClass('active')) {\n $(this).parents('.js-attribute__list').find('.js-btn-attribute').removeClass('active');\n $(this).addClass('active');\n attributeSelect(targetUrl, $productContainer);\n }\n });\n },\n initVideo: function () {\n let $videoPosition = $('.js-video-init-position');\n\n if ($videoPosition.length) {\n let videoId = $videoPosition.data('id');\n\n $(createVideoTile(videoId)).insertAfter($videoPosition);\n $videoPosition.remove();\n }\n },\n openVideo: function () {\n $(document).on('click', '.js-product-video-modal-open', function (e) {\n e.preventDefault();\n\n let videoId = $(this).data('id');\n let $videoContainer = $('.js-youtube-video-container');\n let $videoModal = $('#youtubeVideoModal');\n\n $(`\n \n `).appendTo($videoContainer);\n\n $videoModal.modal('show');\n\n $videoModal.on('hidden.bs.modal', function () {\n $videoContainer.empty();\n });\n });\n },\n openImage: function () {\n $(document).on('click', '.js-primary-images-modal-open', function (e) {\n e.preventDefault();\n\n let imageIndex = $(this).data('count');\n let $imageModal = $('#primaryImagesModal');\n\n $imageModal.modal('show');\n\n $imageModal.one('shown.bs.modal', function () {\n // TODO: Some preload ?\n $imageModal.find('.js-carousel').slick('slickGoTo', Number(imageIndex), true).slick('refresh');\n });\n });\n },\n\n getPidValue: getPidValue,\n getQuantitySelected: getQuantitySelected,\n displaySelectedColorValue: displaySelectedColorValue,\n miniCartReportingUrl: miniCartReportingUrl,\n updateCartAfterAddToCard: updateCartAfterAddToCard,\n ltkUpdateCartData: ltkUpdateCartData,\n ltkAppendSCAScript: ltkAppendSCAScript\n};\n","'use strict';\n\nvar base = require('./base');\n\n/**\n * Enable/disable UI elements\n * @param {boolean} enableOrDisable - true or false\n */\nfunction updateAddToCartEnableDisableOtherElements(enableOrDisable) {\n $('button.add-to-cart-global').attr('disabled', enableOrDisable);\n}\n\nmodule.exports = {\n methods: {\n updateAddToCartEnableDisableOtherElements: updateAddToCartEnableDisableOtherElements\n },\n\n availability: base.availability,\n\n addToCart: base.addToCart,\n selectCheckbox: base.selectCheckbox,\n\n showRatings: function(){\n $('body').on('click', '.bv-review-highlights-toggle', function(){\n var reviewsContainer = $('#bv-reviews-container');\n reviewsContainer.toggleClass('hide');\n if(reviewsContainer.hasClass('hide')){\n $(this).find('.display').text('Show More');\n } else {\n $(this).find('.display').text('Hide'); \n }\n });\n\n $('body').on('click', '.bv_ratings_summary', function(){\n var reviewsContainer = $('#bv-reviews-container');\n reviewsContainer.removeClass('hide');\n $('.bv-review-highlights-toggle').find('.display').text('Hide'); \n });\n\n //update reviews display\n setTimeout(function () {\n var numReviews = $('.bv_numReviews_component_container');\n var reviewHighlights = $('.bv-review-highlights');\n if(numReviews){\n numReviews = numReviews.find('[itemprop=\"reviewCount\"]').attr('content');\n }\n \n //Has reviews, no summary\n if(numReviews >= 1 && reviewHighlights.children().length == 0){\n //Hide summary \"Show More Reviews\" link\n //Show total reviews\n $('#bv-reviews-container').removeClass('hide');\n $('#bv-review-highlights-toggle-container').remove();\n }\n\n //No reviews\n if(!numReviews){\n $('.bv-review-highlights').remove();\n $('#bv-reviews-container').remove();\n $('#bv-review-highlights-toggle-container').remove();\n $('.recommendations').last().remove();\n }\n }, 2500);\n },\n\n pdpCarousel: function() {\n $('.js-desktop-carousel').slick({\n arrows: true,\n prevArrow: '',\n nextArrow: '',\n lazyLoad: 'ondemand'\n });\n\n $('body').on('click', '.js-pdp-carousel-item', function(){\n $('.js-pdp-carousel-item').removeClass('active');\n $(this).addClass('active');\n var slide = parseInt($(this).attr('data-index'));\n $('.js-desktop-carousel').slick('slickGoTo', slide);\n });\n },\n\n productAccordion: function(){\n $('body').on('click', '.accordion-header', function() {\n $(this).toggleClass('open');\n $(this).next('.accordion-content').first().toggleClass('show');\n });\n },\n\n fabricAttribute: function() {\n $('body').on('click', '.fabric-button', function() {\n var fabricButton = $(this);\n var fabricId = fabricButton.attr('data-material-id');\n var displayName = fabricButton.text();\n var showStyleMessage = $('#showStyleMessage');\n var fabricDisplayed = $('#fabricDisplayed');\n\n //fabric details display\n showStyleMessage.addClass('show');\n fabricDisplayed.text(displayName);\n $('.fabricDetail').removeClass('show');\n var fabricDetail = $('#fabricContainer-'+fabricId);\n fabricDetail.addClass('show');\n\n //selected fabric button active state\n if(fabricButton.hasClass('selected')){\n fabricButton.removeClass('selected');\n showStyleMessage.removeClass('show');\n fabricDetail.removeClass('show');\n $('.js-color-value-option').each(function(){\n var color = $(this);\n color.fadeTo(150, 1);\n });\n } else {\n $('.fabric-button').removeClass('selected');\n fabricButton.addClass('selected');\n $('.js-color-value-option').each(function(){\n var color = $(this);\n var colorMaterial = color.attr('data-material');\n if(colorMaterial !== fabricId) {\n color.fadeTo(150, 0.10);\n } else {\n color.fadeTo(150, 1);\n }\n });\n } \n \n });\n },\n\n closeFabricDetails: function(){\n $('body').on('click', '.fabricDetailsClose', function() {\n $('.js-color-value-option').each(function(){\n var color = $(this);\n color.fadeTo(150, 1);\n });\n $('.fabric-button').removeClass('selected');\n $('#showStyleMessage').removeClass('show');\n $('.fabricDetail').removeClass('show');\n });\n },\n\n compareFabrics: function(){\n $('body').on('click', '#compareFabricsButton', function() {\n $('#compareFabricsModal').modal('show');\n });\n },\n\n updateAttributesAndDetails: function () {\n $('body').on('product:statusUpdate', function (e, data) {\n const productType = $('.js-product').data('product-type');\n if (productType !== 'productSet') {\n var productURL = data.productUrl;\n //update URL\n history.replaceState(null, null, productURL);\n $('#nav-description').empty().html(data.longDescription);\n $('#nav-features').empty().html(data.shortDescription);\n }\n });\n },\n\n showSpinner: function () {\n $('body').on('product:beforeAddToCart product:beforeAttributeSelect', function () {\n $.spinner().start();\n });\n },\n startContentAPlusVideo: function () {\n $('body').on('click', '.js-start-youtube-video', function () {\n const $blockWrapper = $(this).find('.js-start-youtube-video-wrapper');\n\n if ($blockWrapper.is(':visible')) {\n const videoWidth = Math.ceil($blockWrapper.width());\n const videoHeight = Math.ceil($blockWrapper.height());\n const videoId = $(this).data('youtube-id');\n\n $blockWrapper.hide();\n $(this).find('.js-start-youtube-video-place').html('');\n }\n });\n },\n updateAttribute: function () {\n $('body').on('product:afterAttributeSelect', function (e, response) {\n if ($('.product-detail>.bundle-items').length) {\n response.container.data('pid', response.data.product.id);\n response.container.find('.product-id').text(response.data.product.id);\n } else if ($('.product-set-detail').eq(0)) {\n response.container.attr('data-pid', response.data.product.id);\n response.container.data('pid', response.data.product.id);\n response.container.find('.product-id').text(response.data.product.id);\n $('body').trigger('wishlist:updateCount');\n } else {\n $('.product-id').text(response.data.product.id);\n $('.product-detail:not(\".bundle-item\")').data('pid', response.data.product.id);\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 var enable = $('.product-availability').toArray().every(function (item) {\n return $(item).data('available') && $(item).data('ready-to-order');\n });\n\n const productType = $('.js-product').data('product-type');\n if (productType !== 'productSet') {\n module.exports.methods.updateAddToCartEnableDisableOtherElements(!enable);\n } else {\n module.exports.methods.updateAddToCartEnableDisableOtherElements(!response.product.readyToOrder);\n }\n });\n },\n updateAvailability: function () {\n $('body').on('product:updateAvailability', function (e, response) {\n $('div.availability', response.$productContainer)\n .data('ready-to-order', response.product.readyToOrder)\n .data('available', response.product.available);\n\n $('.availability-msg', response.$productContainer)\n .empty().html(response.message);\n\n const $checkTypeDiv = $('.js-availability-type-check');\n\n if ($checkTypeDiv.length) {\n if (response.product.availability.type === 'InStock') {\n $checkTypeDiv.hide();\n } else {\n $checkTypeDiv.show();\n }\n }\n\n if ($('.global-availability').length) {\n var allAvailable = $('.product-availability').toArray()\n .every(function (item) { return $(item).data('available'); });\n\n var allReady = $('.product-availability').toArray()\n .every(function (item) { return $(item).data('ready-to-order'); });\n\n $('.global-availability')\n .data('ready-to-order', allReady)\n .data('available', allAvailable);\n\n $('.global-availability .availability-msg').empty()\n .html(allReady ? response.message : response.resources.info_selectforstock);\n }\n });\n },\n sizeChart: function () {\n $('.js-size-chart').on('click', '.js-size-chart-link', function (e) {\n e.preventDefault();\n\n var url = $(this).attr('href');\n var $prodSizeChart = $('.js-size-chart-content');\n\n // Using !$(this).hasClass('js-click-once') we prevent ajax loading due to multiple button clicks\n if (!$(this).hasClass('js-click-once') && $prodSizeChart.is(':empty')) {\n $(this).addClass('js-click-once');\n\n $.ajax({\n url: url,\n type: 'get',\n dataType: 'json',\n success: function (data) {\n $prodSizeChart.append(data.content);\n\n $('#sizeChartModal').modal('show');\n $('.js-size-chart-link').removeClass('js-click-once');\n }\n });\n } else {\n $('#sizeChartModal').modal('show');\n }\n });\n },\n copyProductLink: function () {\n $('body').on('click', '#fa-link', function () {\n // eslint-disable-next-line no-restricted-globals\n event.preventDefault();\n var $temp = $('');\n $('body').append($temp);\n $temp.val($('#shareUrl').val()).select();\n document.execCommand('copy');\n $temp.remove();\n $('.copy-link-message').attr('role', 'alert');\n $('.copy-link-message').removeClass('d-none');\n setTimeout(function () {\n $('.copy-link-message').addClass('d-none');\n }, 3000);\n });\n },\n\n initVideo: base.initVideo,\n openVideo: base.openVideo,\n openImage: base.openImage,\n displaySelectedColorValue: base.displaySelectedColorValue,\n focusChooseBonusProductModal: base.focusChooseBonusProductModal\n};\n","window.bvCallback = function (BV) {\n if (typeof BV !== 'undefined') {\n BV.reviews.on('show', function () {\n // This line assumes SFRA collapsible panels and is called when clicking on the review summary\n $('.row.reviews:not(.active)').toggleClass('active');\n });\n if (BV.questions) {\n BV.questions.on('show', function () {\n // This line assumes SFRA collapsible panels and is called when clicking on the Q&A summary\n $('.row.questions:not(.active)').toggleClass('active');\n });\n }\n }\n};\n\nsetTimeout(function () {\n var $bvShowElement = $('#data-bv-show');\n\n if ($bvShowElement.length !== 0) {\n $bvShowElement.removeClass('bv-hidden');\n }\n}, 1500);\n\n$('body').on('product:afterAttributeSelect', function (e, response) {\n const productType = $('.js-product').data('product-type');\n\n if (response.container && !$(response.container).hasClass('product-quickview') && productType !== 'productSet') {\n $('div[data-bv-product-id]').attr('data-bv-product-id', response.data.product.id);\n }\n});\n","'use strict';\n\nvar base = require('./base');\nvar focusHelper = require('base/components/focus');\nvar lazyLoad = require('../utils/lazyLoad');\n\n// TODO: Separate this file from the base. We need to make it independent to work in PDP and recomendations block.\n// FOR NOW: recommendation blocks work without quickView.\n\nfunction getProductType() {\n var $productQuickview = $('.product-quickview');\n return $productQuickview.length ? $productQuickview.find('.js-product').data('product-type') : $('.js-product').data('product-type');\n}\n\n/**\n * Displays selected color value\n */\nfunction displaySelectedColorValueQuickView() {\n\n const productType = getProductType();\n if (productType === 'productSet') {\n $('.set-items').find('.js-product').each(function () {\n var $selectedColorElement = $('.js-attribute-color .js-swatch-value.selected', $(this));\n $('.js-selected-color-value', $(this)).text($selectedColorElement.length ? $selectedColorElement.data('attrDisplayValue') : '');\n })\n } else {\n var $selectedColorElement = $('.product-quickview .js-attribute-color .js-swatch-value.selected');\n $('.product-quickview .js-selected-color-value').text($selectedColorElement.length ? $selectedColorElement.data('attrDisplayValue') : '');\n }\n}\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\n var htmlString = ''\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\n return { body: body };\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 $('#quickViewModal .modal-body').empty();\n $('#quickViewModal .modal-body').html(parsedHtml.body);\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 $('#quickViewModal .js-carousel').not('.slick-initialized').slick();\n lazyLoad.update();\n\n $.spinner().stop();\n displaySelectedColorValueQuickView();\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 onModalShown: function () {\n $('body').on('shown.bs.modal', '#quickViewModal', function () {\n $('#quickViewModal .js-carousel').slick('refresh');\n base.initVideo();\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: '.quantity-select'\n };\n focusHelper.setTabNextFocus(focusParams);\n });\n },\n availability: base.availability,\n addToCart: base.addToCart,\n selectCheckbox: base.selectCheckbox,\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 displaySelectedColorValueQuickView();\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).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 $('.add-to-cart-global', dialog).attr('disabled', !response.product.readyToOrder);\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 var dialog = $(response.$productContainer)\n .closest('.quick-view-dialog');\n\n const $checkTypeDiv = $('.js-availability-type-check');\n\n if ($checkTypeDiv.length) {\n if (response.product.availability.type === 'InStock') {\n $checkTypeDiv.hide();\n } else {\n $checkTypeDiv.show();\n }\n }\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 displaySelectedColorValueQuickView: displaySelectedColorValueQuickView\n};\n","'use strict';\n\nvar quickView = require('./quickView');\n\nmodule.exports = {\n showQuickview: quickView.showQuickview,\n trapQuickviewFocus: quickView.trapQuickviewFocus,\n hideDialog: quickView.hideDialog,\n beforeUpdateAttribute: quickView.beforeUpdateAttribute,\n updateAttribute: quickView.updateAttribute,\n updateAddToCart: quickView.updateAddToCart,\n updateAvailability: quickView.updateAvailability,\n displaySelectedColorValueQuickView: quickView.displaySelectedColorValueQuickView,\n onModalShown: quickView.onModalShown\n};\n","'use strict';\n\nconst pageLink = window.location.href;\nconst pageTitle = encodeURIComponent(document.title);\n\n/**\n * Set events on social network buttons\n *\n */\nfunction initEvents() {\n $('.js-fb-social-network').on('click', () => {\n window.open(`http://www.facebook.com/sharer.php?u=${pageLink}&text=${pageTitle}`, 'sharer', 'toolbar=0,status=0,width=626,height=436');\n return false;\n });\n $('.js-tw-social-network').on('click', () => {\n window.open(`https://twitter.com/intent/tweet?url=${pageLink}`, 'sharer', 'toolbar=0,status=0,width=626,height=436');\n return false;\n });\n $('.js-pt-social-network').on('click', () => {\n window.open(`https://www.pinterest.com/pin/create/button/?&text=${pageTitle}&url=${pageLink}&description=${pageTitle}`, 'sharer', 'toolbar=0,status=0,width=626,height=436');\n return false;\n });\n}\n\nmodule.exports = {\n initEvents: initEvents\n};\n","'use strict';\n\nvar processInclude = require('base/util');\n\n$(function () {\n processInclude(require('./product/detail'));\n processInclude(require('./product/quickViewPdp'));\n processInclude(require('./product/socialNetworks'));\n processInclude(require('cybersource/product/detail'));\n processInclude(require('./product/pdpSummary'));\n});\n","/* eslint-disable */\n/*\n\n PinchZoom.js\n Copyright (c) Manuel Stofer 2013 - today\n\n Author: Manuel Stofer (mst@rtp.ch)\n Version: 2.3.5\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n\n*/\n\n// polyfills\nif (typeof Object.assign != 'function') {\n // Must be writable: true, enumerable: false, configurable: true\n Object.defineProperty(Object, \"assign\", {\n value: function assign(target, varArgs) { // .length of function is 2\n if (target == null) { // TypeError if undefined or null\n throw new TypeError('Cannot convert undefined or null to object');\n }\n\n var to = Object(target);\n\n for (var index = 1; index < arguments.length; index++) {\n var nextSource = arguments[index];\n\n if (nextSource != null) { // Skip over if undefined or null\n for (var nextKey in nextSource) {\n // Avoid bugs when hasOwnProperty is shadowed\n if (Object.prototype.hasOwnProperty.call(nextSource, nextKey)) {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n return to;\n },\n writable: true,\n configurable: true\n });\n}\n\nif (typeof Array.from != 'function') {\n Array.from = function (object) {\n return [].slice.call(object);\n };\n}\n\n// utils\nvar buildElement = function(str) {\n // empty string as title argument required by IE and Edge\n var tmp = document.implementation.createHTMLDocument('');\n tmp.body.innerHTML = str;\n return Array.from(tmp.body.children)[0];\n};\n\nvar triggerEvent = function(el, name) {\n var event = document.createEvent('HTMLEvents');\n event.initEvent(name, true, false);\n el.dispatchEvent(event);\n};\n\nvar definePinchZoom = function () {\n\n /**\n * Pinch zoom\n * @param el\n * @param options\n * @constructor\n */\n var PinchZoom = function (el, options) {\n this.el = el;\n this.zoomFactor = 1;\n this.lastScale = 1;\n this.offset = {\n x: 0,\n y: 0\n };\n this.initialOffset = {\n x: 0,\n y: 0,\n };\n this.options = Object.assign({}, this.defaults, options);\n this.setupMarkup();\n this.bindEvents();\n this.update();\n\n // The image may already be loaded when PinchZoom is initialized,\n // and then the load event (which trigger update) will never fire.\n if (this.isImageLoaded(this.el)) {\n this.updateAspectRatio();\n this.setupOffsets();\n }\n\n this.enable();\n\n },\n sum = function (a, b) {\n return a + b;\n },\n isCloseTo = function (value, expected) {\n return value > expected - 0.01 && value < expected + 0.01;\n };\n\n PinchZoom.prototype = {\n\n defaults: {\n tapZoomFactor: 2,\n zoomOutFactor: 1.3,\n animationDuration: 300,\n maxZoom: 4,\n minZoom: 0.5,\n draggableUnzoomed: true,\n lockDragAxis: false,\n setOffsetsOnce: false,\n use2d: true,\n zoomStartEventName: 'pz_zoomstart',\n zoomUpdateEventName: 'pz_zoomupdate',\n zoomEndEventName: 'pz_zoomend',\n dragStartEventName: 'pz_dragstart',\n dragUpdateEventName: 'pz_dragupdate',\n dragEndEventName: 'pz_dragend',\n doubleTapEventName: 'pz_doubletap',\n verticalPadding: 0,\n horizontalPadding: 0,\n onZoomStart: null,\n onZoomEnd: null,\n onZoomUpdate: null,\n onDragStart: null,\n onDragEnd: null,\n onDragUpdate: null,\n onDoubleTap: null\n },\n\n /**\n * Event handler for 'dragstart'\n * @param event\n */\n handleDragStart: function (event) {\n triggerEvent(this.el, this.options.dragStartEventName);\n if(typeof this.options.onDragStart == \"function\"){\n this.options.onDragStart(this, event)\n }\n this.stopAnimation();\n this.lastDragPosition = false;\n this.hasInteraction = true;\n this.handleDrag(event);\n },\n\n /**\n * Event handler for 'drag'\n * @param event\n */\n handleDrag: function (event) {\n var touch = this.getTouches(event)[0];\n this.drag(touch, this.lastDragPosition);\n this.offset = this.sanitizeOffset(this.offset);\n this.lastDragPosition = touch;\n },\n\n handleDragEnd: function () {\n triggerEvent(this.el, this.options.dragEndEventName);\n if(typeof this.options.onDragEnd == \"function\"){\n this.options.onDragEnd(this, event)\n }\n this.end();\n },\n\n /**\n * Event handler for 'zoomstart'\n * @param event\n */\n handleZoomStart: function (event) {\n triggerEvent(this.el, this.options.zoomStartEventName);\n if(typeof this.options.onZoomStart == \"function\"){\n this.options.onZoomStart(this, event)\n }\n this.stopAnimation();\n this.lastScale = 1;\n this.nthZoom = 0;\n this.lastZoomCenter = false;\n this.hasInteraction = true;\n },\n\n /**\n * Event handler for 'zoom'\n * @param event\n */\n handleZoom: function (event, newScale) {\n // a relative scale factor is used\n var touchCenter = this.getTouchCenter(this.getTouches(event)),\n scale = newScale / this.lastScale;\n this.lastScale = newScale;\n\n // the first touch events are thrown away since they are not precise\n this.nthZoom += 1;\n if (this.nthZoom > 3) {\n\n this.scale(scale, touchCenter);\n this.drag(touchCenter, this.lastZoomCenter);\n }\n this.lastZoomCenter = touchCenter;\n },\n\n handleZoomEnd: function () {\n triggerEvent(this.el, this.options.zoomEndEventName);\n if(typeof this.options.onZoomEnd == \"function\"){\n this.options.onZoomEnd(this, event)\n }\n this.end();\n },\n\n /**\n * Event handler for 'doubletap'\n * @param event\n */\n handleDoubleTap: function (event) {\n var center = this.getTouches(event)[0],\n zoomFactor = this.zoomFactor > 1 ? 1 : this.options.tapZoomFactor,\n startZoomFactor = this.zoomFactor,\n updateProgress = (function (progress) {\n this.scaleTo(startZoomFactor + progress * (zoomFactor - startZoomFactor), center);\n }).bind(this);\n\n if (this.hasInteraction) {\n return;\n }\n\n this.isDoubleTap = true;\n\n if (startZoomFactor > zoomFactor) {\n center = this.getCurrentZoomCenter();\n }\n\n this.animate(this.options.animationDuration, updateProgress, this.swing);\n triggerEvent(this.el, this.options.doubleTapEventName);\n if(typeof this.options.onDoubleTap == \"function\"){\n this.options.onDoubleTap(this, event)\n }\n },\n\n /**\n * Compute the initial offset\n *\n * the element should be centered in the container upon initialization\n */\n computeInitialOffset: function () {\n this.initialOffset = {\n x: -Math.abs(this.el.offsetWidth * this.getInitialZoomFactor() - this.container.offsetWidth) / 2,\n y: -Math.abs(this.el.offsetHeight * this.getInitialZoomFactor() - this.container.offsetHeight) / 2,\n };\n },\n\n /**\n * Reset current image offset to that of the initial offset\n */\n resetOffset: function() {\n this.offset.x = this.initialOffset.x;\n this.offset.y = this.initialOffset.y;\n },\n\n /**\n * Determine if image is loaded\n */\n isImageLoaded: function (el) {\n if (el.nodeName === 'IMG') {\n return el.complete && el.naturalHeight !== 0;\n } else {\n return Array.from(el.querySelectorAll('img')).every(this.isImageLoaded);\n }\n },\n\n setupOffsets: function() {\n if (this.options.setOffsetsOnce && this._isOffsetsSet) {\n return;\n }\n\n this._isOffsetsSet = true;\n\n this.computeInitialOffset();\n this.resetOffset();\n },\n\n /**\n * Max / min values for the offset\n * @param offset\n * @return {Object} the sanitized offset\n */\n sanitizeOffset: function (offset) {\n var elWidth = this.el.offsetWidth * this.getInitialZoomFactor() * this.zoomFactor;\n var elHeight = this.el.offsetHeight * this.getInitialZoomFactor() * this.zoomFactor;\n var maxX = elWidth - this.getContainerX() + this.options.horizontalPadding,\n maxY = elHeight - this.getContainerY() + this.options.verticalPadding,\n maxOffsetX = Math.max(maxX, 0),\n maxOffsetY = Math.max(maxY, 0),\n minOffsetX = Math.min(maxX, 0) - this.options.horizontalPadding,\n minOffsetY = Math.min(maxY, 0) - this.options.verticalPadding;\n\n return {\n x: Math.min(Math.max(offset.x, minOffsetX), maxOffsetX),\n y: Math.min(Math.max(offset.y, minOffsetY), maxOffsetY)\n };\n },\n\n /**\n * Scale to a specific zoom factor (not relative)\n * @param zoomFactor\n * @param center\n */\n scaleTo: function (zoomFactor, center) {\n this.scale(zoomFactor / this.zoomFactor, center);\n },\n\n /**\n * Scales the element from specified center\n * @param scale\n * @param center\n */\n scale: function (scale, center) {\n scale = this.scaleZoomFactor(scale);\n this.addOffset({\n x: (scale - 1) * (center.x + this.offset.x),\n y: (scale - 1) * (center.y + this.offset.y)\n });\n triggerEvent(this.el, this.options.zoomUpdateEventName);\n if(typeof this.options.onZoomUpdate == \"function\"){\n this.options.onZoomUpdate(this, event)\n }\n },\n\n /**\n * Scales the zoom factor relative to current state\n * @param scale\n * @return the actual scale (can differ because of max min zoom factor)\n */\n scaleZoomFactor: function (scale) {\n var originalZoomFactor = this.zoomFactor;\n this.zoomFactor *= scale;\n this.zoomFactor = Math.min(this.options.maxZoom, Math.max(this.zoomFactor, this.options.minZoom));\n return this.zoomFactor / originalZoomFactor;\n },\n\n /**\n * Determine if the image is in a draggable state\n *\n * When the image can be dragged, the drag event is acted upon and cancelled.\n * When not draggable, the drag event bubbles through this component.\n *\n * @return {Boolean}\n */\n canDrag: function () {\n return this.options.draggableUnzoomed || !isCloseTo(this.zoomFactor, 1);\n },\n\n /**\n * Drags the element\n * @param center\n * @param lastCenter\n */\n drag: function (center, lastCenter) {\n if (lastCenter) {\n if(this.options.lockDragAxis) {\n // lock scroll to position that was changed the most\n if(Math.abs(center.x - lastCenter.x) > Math.abs(center.y - lastCenter.y)) {\n this.addOffset({\n x: -(center.x - lastCenter.x),\n y: 0\n });\n }\n else {\n this.addOffset({\n y: -(center.y - lastCenter.y),\n x: 0\n });\n }\n }\n else {\n this.addOffset({\n y: -(center.y - lastCenter.y),\n x: -(center.x - lastCenter.x)\n });\n }\n triggerEvent(this.el, this.options.dragUpdateEventName);\n if(typeof this.options.onDragUpdate == \"function\"){\n this.options.onDragUpdate(this, event)\n }\n }\n },\n\n /**\n * Calculates the touch center of multiple touches\n * @param touches\n * @return {Object}\n */\n getTouchCenter: function (touches) {\n return this.getVectorAvg(touches);\n },\n\n /**\n * Calculates the average of multiple vectors (x, y values)\n */\n getVectorAvg: function (vectors) {\n return {\n x: vectors.map(function (v) { return v.x; }).reduce(sum) / vectors.length,\n y: vectors.map(function (v) { return v.y; }).reduce(sum) / vectors.length\n };\n },\n\n /**\n * Adds an offset\n * @param offset the offset to add\n * @return return true when the offset change was accepted\n */\n addOffset: function (offset) {\n this.offset = {\n x: this.offset.x + offset.x,\n y: this.offset.y + offset.y\n };\n },\n\n sanitize: function () {\n if (this.zoomFactor < this.options.zoomOutFactor) {\n this.zoomOutAnimation();\n } else if (this.isInsaneOffset(this.offset)) {\n this.sanitizeOffsetAnimation();\n }\n },\n\n /**\n * Checks if the offset is ok with the current zoom factor\n * @param offset\n * @return {Boolean}\n */\n isInsaneOffset: function (offset) {\n var sanitizedOffset = this.sanitizeOffset(offset);\n return sanitizedOffset.x !== offset.x ||\n sanitizedOffset.y !== offset.y;\n },\n\n /**\n * Creates an animation moving to a sane offset\n */\n sanitizeOffsetAnimation: function () {\n var targetOffset = this.sanitizeOffset(this.offset),\n startOffset = {\n x: this.offset.x,\n y: this.offset.y\n },\n updateProgress = (function (progress) {\n this.offset.x = startOffset.x + progress * (targetOffset.x - startOffset.x);\n this.offset.y = startOffset.y + progress * (targetOffset.y - startOffset.y);\n this.update();\n }).bind(this);\n\n this.animate(\n this.options.animationDuration,\n updateProgress,\n this.swing\n );\n },\n\n /**\n * Zooms back to the original position,\n * (no offset and zoom factor 1)\n */\n zoomOutAnimation: function () {\n if (this.zoomFactor === 1) {\n return;\n }\n\n var startZoomFactor = this.zoomFactor,\n zoomFactor = 1,\n center = this.getCurrentZoomCenter(),\n updateProgress = (function (progress) {\n this.scaleTo(startZoomFactor + progress * (zoomFactor - startZoomFactor), center);\n }).bind(this);\n\n this.animate(\n this.options.animationDuration,\n updateProgress,\n this.swing\n );\n },\n\n /**\n * Updates the container aspect ratio\n *\n * Any previous container height must be cleared before re-measuring the\n * parent height, since it depends implicitly on the height of any of its children\n */\n updateAspectRatio: function () {\n this.unsetContainerY();\n this.setContainerY(this.getContainerX() / this.getAspectRatio());\n },\n\n /**\n * Calculates the initial zoom factor (for the element to fit into the container)\n * @return {number} the initial zoom factor\n */\n getInitialZoomFactor: function () {\n var xZoomFactor = this.container.offsetWidth / this.el.offsetWidth;\n var yZoomFactor = this.container.offsetHeight / this.el.offsetHeight;\n\n return Math.min(xZoomFactor, yZoomFactor);\n },\n\n /**\n * Calculates the aspect ratio of the element\n * @return the aspect ratio\n */\n getAspectRatio: function () {\n return this.el.offsetWidth / this.el.offsetHeight;\n },\n\n /**\n * Calculates the virtual zoom center for the current offset and zoom factor\n * (used for reverse zoom)\n * @return {Object} the current zoom center\n */\n getCurrentZoomCenter: function () {\n var offsetLeft = this.offset.x - this.initialOffset.x;\n var centerX = -1 * this.offset.x - offsetLeft / (1 / this.zoomFactor - 1);\n\n var offsetTop = this.offset.y - this.initialOffset.y;\n var centerY = -1 * this.offset.y - offsetTop / (1 / this.zoomFactor - 1);\n\n return {\n x: centerX,\n y: centerY\n };\n },\n\n /**\n * Returns the touches of an event relative to the container offset\n * @param event\n * @return array touches\n */\n getTouches: function (event) {\n var rect = this.container.getBoundingClientRect();\n var scrollTop = document.documentElement.scrollTop || document.body.scrollTop;\n var scrollLeft = document.documentElement.scrollLeft || document.body.scrollLeft;\n var posTop = rect.top + scrollTop;\n var posLeft = rect.left + scrollLeft;\n\n return Array.prototype.slice.call(event.touches).map(function (touch) {\n return {\n x: touch.pageX - posLeft,\n y: touch.pageY - posTop,\n };\n });\n },\n\n /**\n * Animation loop\n * does not support simultaneous animations\n * @param duration\n * @param framefn\n * @param timefn\n * @param callback\n */\n animate: function (duration, framefn, timefn, callback) {\n var startTime = new Date().getTime(),\n renderFrame = (function () {\n if (!this.inAnimation) { return; }\n var frameTime = new Date().getTime() - startTime,\n progress = frameTime / duration;\n if (frameTime >= duration) {\n framefn(1);\n if (callback) {\n callback();\n }\n this.update();\n this.stopAnimation();\n this.update();\n } else {\n if (timefn) {\n progress = timefn(progress);\n }\n framefn(progress);\n this.update();\n requestAnimationFrame(renderFrame);\n }\n }).bind(this);\n this.inAnimation = true;\n requestAnimationFrame(renderFrame);\n },\n\n /**\n * Stops the animation\n */\n stopAnimation: function () {\n this.inAnimation = false;\n },\n\n /**\n * Swing timing function for animations\n * @param p\n * @return {Number}\n */\n swing: function (p) {\n return -Math.cos(p * Math.PI) / 2 + 0.5;\n },\n\n getContainerX: function () {\n return this.container.offsetWidth;\n },\n\n getContainerY: function () {\n return this.container.offsetHeight;\n },\n\n setContainerY: function (y) {\n return this.container.style.height = y + 'px';\n },\n\n unsetContainerY: function () {\n this.container.style.height = null;\n },\n\n /**\n * Creates the expected html structure\n */\n setupMarkup: function () {\n this.container = buildElement('
    ');\n this.el.parentNode.insertBefore(this.container, this.el);\n this.container.appendChild(this.el);\n\n this.container.style.overflow = 'hidden';\n this.container.style.position = 'relative';\n\n this.el.style.webkitTransformOrigin = '0% 0%';\n this.el.style.mozTransformOrigin = '0% 0%';\n this.el.style.msTransformOrigin = '0% 0%';\n this.el.style.oTransformOrigin = '0% 0%';\n this.el.style.transformOrigin = '0% 0%';\n\n this.el.style.position = 'absolute';\n },\n\n end: function () {\n this.hasInteraction = false;\n this.sanitize();\n this.update();\n },\n\n /**\n * Binds all required event listeners\n */\n bindEvents: function () {\n var self = this;\n detectGestures(this.container, this);\n\n this.resizeHandler = this.update.bind(this)\n window.addEventListener('resize', this.resizeHandler);\n Array.from(this.el.querySelectorAll('img')).forEach(function(imgEl) {\n imgEl.addEventListener('load', self.update.bind(self));\n });\n\n if (this.el.nodeName === 'IMG') {\n this.el.addEventListener('load', this.update.bind(this));\n }\n },\n\n /**\n * Updates the css values according to the current zoom factor and offset\n */\n update: function (event) {\n if (event && event.type === 'resize') {\n this.updateAspectRatio();\n this.setupOffsets();\n }\n\n if (event && event.type === 'load') {\n this.updateAspectRatio();\n this.setupOffsets();\n }\n\n if (this.updatePlanned) {\n return;\n }\n this.updatePlanned = true;\n\n window.setTimeout((function () {\n this.updatePlanned = false;\n\n var zoomFactor = this.getInitialZoomFactor() * this.zoomFactor,\n offsetX = -this.offset.x / zoomFactor,\n offsetY = -this.offset.y / zoomFactor,\n transform3d = 'scale3d(' + zoomFactor + ', ' + zoomFactor + ',1) ' +\n 'translate3d(' + offsetX + 'px,' + offsetY + 'px,0px)',\n transform2d = 'scale(' + zoomFactor + ', ' + zoomFactor + ') ' +\n 'translate(' + offsetX + 'px,' + offsetY + 'px)',\n removeClone = (function () {\n if (this.clone) {\n this.clone.parentNode.removeChild(this.clone);\n delete this.clone;\n }\n }).bind(this);\n\n // Scale 3d and translate3d are faster (at least on ios)\n // but they also reduce the quality.\n // PinchZoom uses the 3d transformations during interactions\n // after interactions it falls back to 2d transformations\n if (!this.options.use2d || this.hasInteraction || this.inAnimation) {\n this.is3d = true;\n removeClone();\n\n this.el.style.webkitTransform = transform3d;\n this.el.style.mozTransform = transform2d;\n this.el.style.msTransform = transform2d;\n this.el.style.oTransform = transform2d;\n this.el.style.transform = transform3d;\n } else {\n // When changing from 3d to 2d transform webkit has some glitches.\n // To avoid this, a copy of the 3d transformed element is displayed in the\n // foreground while the element is converted from 3d to 2d transform\n if (this.is3d) {\n this.clone = this.el.cloneNode(true);\n this.clone.style.pointerEvents = 'none';\n this.container.appendChild(this.clone);\n window.setTimeout(removeClone, 200);\n }\n\n this.el.style.webkitTransform = transform2d;\n this.el.style.mozTransform = transform2d;\n this.el.style.msTransform = transform2d;\n this.el.style.oTransform = transform2d;\n this.el.style.transform = transform2d;\n\n this.is3d = false;\n }\n }).bind(this), 0);\n },\n\n /**\n * Enables event handling for gestures\n */\n enable: function() {\n this.enabled = true;\n },\n\n /**\n * Disables event handling for gestures\n */\n disable: function() {\n this.enabled = false;\n },\n\n /**\n * Unmounts the zooming container and global event listeners\n */\n destroy: function () {\n window.removeEventListener('resize', this.resizeHandler);\n\n if (this.container) {\n this.container.remove();\n this.container = null;\n }\n }\n\n };\n\n var detectGestures = function (el, target) {\n var interaction = null,\n fingers = 0,\n lastTouchStart = null,\n startTouches = null,\n\n setInteraction = function (newInteraction, event) {\n if (interaction !== newInteraction) {\n\n if (interaction && !newInteraction) {\n switch (interaction) {\n case \"zoom\":\n target.handleZoomEnd(event);\n break;\n case 'drag':\n target.handleDragEnd(event);\n break;\n }\n }\n\n switch (newInteraction) {\n case 'zoom':\n target.handleZoomStart(event);\n break;\n case 'drag':\n target.handleDragStart(event);\n break;\n }\n }\n interaction = newInteraction;\n },\n\n updateInteraction = function (event) {\n if (fingers === 2) {\n setInteraction('zoom');\n } else if (fingers === 1 && target.canDrag()) {\n setInteraction('drag', event);\n } else {\n setInteraction(null, event);\n }\n },\n\n targetTouches = function (touches) {\n return Array.from(touches).map(function (touch) {\n return {\n x: touch.pageX,\n y: touch.pageY\n };\n });\n },\n\n getDistance = function (a, b) {\n var x, y;\n x = a.x - b.x;\n y = a.y - b.y;\n return Math.sqrt(x * x + y * y);\n },\n\n calculateScale = function (startTouches, endTouches) {\n var startDistance = getDistance(startTouches[0], startTouches[1]),\n endDistance = getDistance(endTouches[0], endTouches[1]);\n return endDistance / startDistance;\n },\n\n cancelEvent = function (event) {\n event.stopPropagation();\n event.preventDefault();\n },\n\n detectDoubleTap = function (event) {\n var time = (new Date()).getTime();\n\n if (fingers > 1) {\n lastTouchStart = null;\n }\n\n if (time - lastTouchStart < 300) {\n cancelEvent(event);\n\n target.handleDoubleTap(event);\n switch (interaction) {\n case \"zoom\":\n target.handleZoomEnd(event);\n break;\n case 'drag':\n target.handleDragEnd(event);\n break;\n }\n } else {\n target.isDoubleTap = false;\n }\n\n if (fingers === 1) {\n lastTouchStart = time;\n }\n },\n firstMove = true;\n\n el.addEventListener('touchstart', function (event) {\n if(target.enabled) {\n firstMove = true;\n fingers = event.touches.length;\n detectDoubleTap(event);\n }\n }, { passive: false });\n\n el.addEventListener('touchmove', function (event) {\n if(target.enabled && !target.isDoubleTap) {\n if (firstMove) {\n updateInteraction(event);\n if (interaction) {\n cancelEvent(event);\n }\n startTouches = targetTouches(event.touches);\n } else {\n switch (interaction) {\n case 'zoom':\n if (startTouches.length == 2 && event.touches.length == 2) {\n target.handleZoom(event, calculateScale(startTouches, targetTouches(event.touches)));\n }\n break;\n case 'drag':\n target.handleDrag(event);\n break;\n }\n if (interaction) {\n cancelEvent(event);\n target.update();\n }\n }\n\n firstMove = false;\n }\n }, { passive: false });\n\n el.addEventListener('touchend', function (event) {\n if(target.enabled) {\n fingers = event.touches.length;\n updateInteraction(event);\n }\n });\n };\n\n return PinchZoom;\n};\n\nvar PinchZoom = definePinchZoom();\n\nexport default PinchZoom;\n","'use strict';\n\nvar LazyLoad = require('vanilla-lazyload');\n\nvar inst = new LazyLoad({\n callback_error: (img) => {\n var $img = $(img);\n var $pictureSources = $(img).siblings('source');\n var srcsetUrls = `${window.staticFolder}images/noimagemedium.png 1x, ${window.staticFolder}images/noimagelarge.png 2x`;\n // skip if element has something other than 'data-src' attribute (i.e. data-bg error will be handled via styles)\n if ($img.attr('data-srcset')) $img.attr('srcset', srcsetUrls);\n if ($img.attr('data-src')) $img.attr('src', `${window.staticFolder}images/noimagemedium.png`);\n\n if ($pictureSources.length) $pictureSources.attr('srcset', srcsetUrls);\n }\n});\n\nmodule.exports = {\n inst: inst,\n update: () => inst.update()\n};\n","'use strict';\n\nvar mediaBreakpoints = require('../config/mediaBreakpoints.json');\nvar $cache = {\n body: $('body')\n};\n\nvar utils = {\n /**\n * @desc Media breakpoints that are used throughout the Javascript\n */\n breakpoints: mediaBreakpoints,\n\n /**\n * @function\n * @description Returns either an object with all of the available breakpoints or a specific viewport based on the given size\n * @param {string=} size The viewport to return\n * @param {Object=} breakpoints A custom breakpoints object\n * @returns {Object|string} - breakpoints or specific viewport\n */\n getViewports: function (size, breakpoints) {\n var bps = breakpoints || this.breakpoints;\n\n if (size) {\n var viewport = bps[size];\n\n if (viewport) {\n return viewport;\n }\n\n window.console.error('Unexpected viewport size given in util.getViewports');\n throw new Error('Unexpected viewport size given in util.getViewports');\n } else {\n return bps;\n }\n },\n\n /**\n * @function\n * @desc Generates a min-width matchMedia media query based on the given params\n * @param {string} size - Breakpoint to use for the media query\n * @param {Object} breakpoints - Override of the util breakpoints (optional)\n * @returns {boolean} - Wether or not the given media query matches\n */\n mediaBreakpointUp: function (size, breakpoints) {\n var breakpoint = this.getViewports(size, breakpoints);\n var mediaQuery = window.matchMedia('(min-width: ' + breakpoint + 'px)');\n return mediaQuery.matches;\n },\n\n /**\n * @function\n * @description Returns the current viewport name (ex: 'medium') or 'max' if the current window is larger than any defined viewport width\n * @returns {string} - current viewport name\n */\n getCurrentViewport: function () {\n var w = window.innerWidth;\n var viewports = utils.getViewports();\n var viewport = 'max';\n // Traverse the object from small up to desktop, and return the first match\n for (let name in viewports) {\n if (w <= viewports[name]) {\n viewport = name;\n break;\n }\n }\n return viewport;\n },\n\n /**\n * @function\n * @description Returns the current viewport mode: mobile (includes tablet portrait) OR desktop (usually >=1024px)\n * @returns {string} - current viewport name\n */\n getCurrentLayout: function () {\n var isDesktop = window.innerWidth >= this.breakpoints.ls; // normally >=1024\n return isDesktop ? 'desktop' : 'mobile';\n },\n\n isCurrentPage: function (name) {\n return $cache.body.attr('data-page-id') === name;\n },\n\n /**\n * @function\n * @description Executes a callback function when the user has stopped resizing the screen.\n * @param {function} callback - Callback function for the resize event\n * @return {function} - Callback function for the resize event\n */\n smartResize: function (callback) {\n var timeout;\n\n $(window).on('resize', function () {\n clearTimeout(timeout);\n timeout = setTimeout(callback, 200);\n });\n\n return callback;\n },\n\n /**\n * @function\n * @description Checks if device has touch features.\n * @return {boolean} - result\n */\n isTouchDevice: function () {\n return (('ontouchstart' in window)\n || (navigator.maxTouchPoints > 0)\n || (navigator.msMaxTouchPoints > 0));\n },\n\n /**\n * @function\n * @desc Retrieves the util breakpoints object\n * @returns {Object} - All of the breakpoints\n */\n getBreakpoints: function () {\n return this.breakpoints;\n },\n\n scrollBrowser: function (xLocation, scrollDuration) {\n var duration = typeof scrollDuration === 'number' ? scrollDuration : 500;\n var scrollY = xLocation;\n\n if (window.stickyHeaderData && window.stickyHeaderData.enabled) {\n scrollY = xLocation - window.stickyHeaderData.height;\n }\n\n $('html, body').animate({ scrollTop: scrollY }, duration);\n },\n\n add: function (a, b) {\n return Math.round((a + b) * 100) / 100;\n }\n};\n\nmodule.exports = utils;\n","'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","'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","'use strict';\n\n//-- To display Apple Pay Button on PDP after update color, quantity etc. --\n\n// module.exports = function () {\n// $('body').on('product:updateAddToCart', function (e, response) {\n// if (response.product.readyToOrder) {\n// var applePayButton = $('.apple-pay-pdp', response.$productContainer);\n// if (applePayButton.length !== 0) {\n// applePayButton.attr('sku', response.product.id);\n// } else {\n// if ($('.apple-pay-pdp').length === 0) { // eslint-disable-line no-lonely-if\n// $('.cart-and-ipay').append('');\n// }\n// }\n// } else {\n// $('.apple-pay-pdp').remove();\n// }\n// });\n// };\n","!function(n,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(n=\"undefined\"!=typeof globalThis?globalThis:n||self).LazyLoad=t()}(this,(function(){\"use strict\";function n(){return n=Object.assign||function(n){for(var t=1;t1,r={elements_selector:\".lazy\",container:e||t?document:null,threshold:300,thresholds:null,data_src:\"src\",data_srcset:\"srcset\",data_sizes:\"sizes\",data_bg:\"bg\",data_bg_hidpi:\"bg-hidpi\",data_bg_multi:\"bg-multi\",data_bg_multi_hidpi:\"bg-multi-hidpi\",data_bg_set:\"bg-set\",data_poster:\"poster\",class_applied:\"applied\",class_loading:\"loading\",class_loaded:\"loaded\",class_error:\"error\",class_entered:\"entered\",class_exited:\"exited\",unobserve_completed:!0,unobserve_entered:!1,cancel_on_exit:!0,callback_enter:null,callback_exit:null,callback_applied:null,callback_loading:null,callback_loaded:null,callback_error:null,callback_finish:null,callback_cancel:null,use_native:!1,restore_on_error:!1},c=function(t){return n({},r,t)},l=function(n,t){var e,i=\"LazyLoad::Initialized\",o=new n(t);try{e=new CustomEvent(i,{detail:{instance:o}})}catch(n){(e=document.createEvent(\"CustomEvent\")).initCustomEvent(i,!1,!1,{instance:o})}window.dispatchEvent(e)},u=\"src\",s=\"srcset\",d=\"sizes\",f=\"poster\",_=\"llOriginalAttrs\",g=\"data\",v=\"loading\",b=\"loaded\",m=\"applied\",p=\"error\",h=\"native\",E=\"data-\",I=\"ll-status\",y=function(n,t){return n.getAttribute(E+t)},k=function(n){return y(n,I)},w=function(n,t){return function(n,t,e){var i=\"data-ll-status\";null!==e?n.setAttribute(i,e):n.removeAttribute(i)}(n,0,t)},A=function(n){return w(n,null)},L=function(n){return null===k(n)},O=function(n){return k(n)===h},x=[v,b,m,p],C=function(n,t,e,i){n&&(void 0===i?void 0===e?n(t):n(t,e):n(t,e,i))},N=function(n,t){o?n.classList.add(t):n.className+=(n.className?\" \":\"\")+t},M=function(n,t){o?n.classList.remove(t):n.className=n.className.replace(new RegExp(\"(^|\\\\s+)\"+t+\"(\\\\s+|$)\"),\" \").replace(/^\\s+/,\"\").replace(/\\s+$/,\"\")},z=function(n){return n.llTempImage},T=function(n,t){if(t){var e=t._observer;e&&e.unobserve(n)}},R=function(n,t){n&&(n.loadingCount+=t)},G=function(n,t){n&&(n.toLoadCount=t)},j=function(n){for(var t,e=[],i=0;t=n.children[i];i+=1)\"SOURCE\"===t.tagName&&e.push(t);return e},D=function(n,t){var e=n.parentNode;e&&\"PICTURE\"===e.tagName&&j(e).forEach(t)},H=function(n,t){j(n).forEach(t)},V=[u],F=[u,f],B=[u,s,d],J=[g],P=function(n){return!!n[_]},S=function(n){return n[_]},U=function(n){return delete n[_]},$=function(n,t){if(!P(n)){var e={};t.forEach((function(t){e[t]=n.getAttribute(t)})),n[_]=e}},q=function(n,t){if(P(n)){var e=S(n);t.forEach((function(t){!function(n,t,e){e?n.setAttribute(t,e):n.removeAttribute(t)}(n,t,e[t])}))}},K=function(n,t,e){N(n,t.class_applied),w(n,m),e&&(t.unobserve_completed&&T(n,t),C(t.callback_applied,n,e))},Q=function(n,t,e){N(n,t.class_loading),w(n,v),e&&(R(e,1),C(t.callback_loading,n,e))},W=function(n,t,e){e&&n.setAttribute(t,e)},X=function(n,t){W(n,d,y(n,t.data_sizes)),W(n,s,y(n,t.data_srcset)),W(n,u,y(n,t.data_src))},Y={IMG:function(n,t){D(n,(function(n){$(n,B),X(n,t)})),$(n,B),X(n,t)},IFRAME:function(n,t){$(n,V),W(n,u,y(n,t.data_src))},VIDEO:function(n,t){H(n,(function(n){$(n,V),W(n,u,y(n,t.data_src))})),$(n,F),W(n,f,y(n,t.data_poster)),W(n,u,y(n,t.data_src)),n.load()},OBJECT:function(n,t){$(n,J),W(n,g,y(n,t.data_src))}},Z=[\"IMG\",\"IFRAME\",\"VIDEO\",\"OBJECT\"],nn=function(n,t){!t||function(n){return n.loadingCount>0}(t)||function(n){return n.toLoadCount>0}(t)||C(n.callback_finish,t)},tn=function(n,t,e){n.addEventListener(t,e),n.llEvLisnrs[t]=e},en=function(n,t,e){n.removeEventListener(t,e)},on=function(n){return!!n.llEvLisnrs},an=function(n){if(on(n)){var t=n.llEvLisnrs;for(var e in t){var i=t[e];en(n,e,i)}delete n.llEvLisnrs}},rn=function(n,t,e){!function(n){delete n.llTempImage}(n),R(e,-1),function(n){n&&(n.toLoadCount-=1)}(e),M(n,t.class_loading),t.unobserve_completed&&T(n,e)},cn=function(n,t,e){var i=z(n)||n;on(i)||function(n,t,e){on(n)||(n.llEvLisnrs={});var i=\"VIDEO\"===n.tagName?\"loadeddata\":\"load\";tn(n,i,t),tn(n,\"error\",e)}(i,(function(o){!function(n,t,e,i){var o=O(t);rn(t,e,i),N(t,e.class_loaded),w(t,b),C(e.callback_loaded,t,i),o||nn(e,i)}(0,n,t,e),an(i)}),(function(o){!function(n,t,e,i){var o=O(t);rn(t,e,i),N(t,e.class_error),w(t,p),C(e.callback_error,t,i),e.restore_on_error&&q(t,B),o||nn(e,i)}(0,n,t,e),an(i)}))},ln=function(n,t,e){!function(n){return Z.indexOf(n.tagName)>-1}(n)?function(n,t,e){!function(n){n.llTempImage=document.createElement(\"IMG\")}(n),cn(n,t,e),function(n){P(n)||(n[_]={backgroundImage:n.style.backgroundImage})}(n),function(n,t,e){var i=y(n,t.data_bg),o=y(n,t.data_bg_hidpi),r=a&&o?o:i;r&&(n.style.backgroundImage='url(\"'.concat(r,'\")'),z(n).setAttribute(u,r),Q(n,t,e))}(n,t,e),function(n,t,e){var i=y(n,t.data_bg_multi),o=y(n,t.data_bg_multi_hidpi),r=a&&o?o:i;r&&(n.style.backgroundImage=r,K(n,t,e))}(n,t,e),function(n,t,e){var i=y(n,t.data_bg_set);if(i){var o=i.split(\"|\"),a=o.map((function(n){return\"image-set(\".concat(n,\")\")}));n.style.backgroundImage=a.join(),\"\"===n.style.backgroundImage&&(a=o.map((function(n){return\"-webkit-image-set(\".concat(n,\")\")})),n.style.backgroundImage=a.join()),K(n,t,e)}}(n,t,e)}(n,t,e):function(n,t,e){cn(n,t,e),function(n,t,e){var i=Y[n.tagName];i&&(i(n,t),Q(n,t,e))}(n,t,e)}(n,t,e)},un=function(n){n.removeAttribute(u),n.removeAttribute(s),n.removeAttribute(d)},sn=function(n){D(n,(function(n){q(n,B)})),q(n,B)},dn={IMG:sn,IFRAME:function(n){q(n,V)},VIDEO:function(n){H(n,(function(n){q(n,V)})),q(n,F),n.load()},OBJECT:function(n){q(n,J)}},fn=function(n,t){(function(n){var t=dn[n.tagName];t?t(n):function(n){if(P(n)){var t=S(n);n.style.backgroundImage=t.backgroundImage}}(n)})(n),function(n,t){L(n)||O(n)||(M(n,t.class_entered),M(n,t.class_exited),M(n,t.class_applied),M(n,t.class_loading),M(n,t.class_loaded),M(n,t.class_error))}(n,t),A(n),U(n)},_n=[\"IMG\",\"IFRAME\",\"VIDEO\"],gn=function(n){return n.use_native&&\"loading\"in HTMLImageElement.prototype},vn=function(n,t,e){n.forEach((function(n){return function(n){return n.isIntersecting||n.intersectionRatio>0}(n)?function(n,t,e,i){var o=function(n){return x.indexOf(k(n))>=0}(n);w(n,\"entered\"),N(n,e.class_entered),M(n,e.class_exited),function(n,t,e){t.unobserve_entered&&T(n,e)}(n,e,i),C(e.callback_enter,n,t,i),o||ln(n,e,i)}(n.target,n,t,e):function(n,t,e,i){L(n)||(N(n,e.class_exited),function(n,t,e,i){e.cancel_on_exit&&function(n){return k(n)===v}(n)&&\"IMG\"===n.tagName&&(an(n),function(n){D(n,(function(n){un(n)})),un(n)}(n),sn(n),M(n,e.class_loading),R(i,-1),A(n),C(e.callback_cancel,n,t,i))}(n,t,e,i),C(e.callback_exit,n,t,i))}(n.target,n,t,e)}))},bn=function(n){return Array.prototype.slice.call(n)},mn=function(n){return n.container.querySelectorAll(n.elements_selector)},pn=function(n){return function(n){return k(n)===p}(n)},hn=function(n,t){return function(n){return bn(n).filter(L)}(n||mn(t))},En=function(n,e){var o=c(n);this._settings=o,this.loadingCount=0,function(n,t){i&&!gn(n)&&(t._observer=new IntersectionObserver((function(e){vn(e,n,t)}),function(n){return{root:n.container===document?null:n.container,rootMargin:n.thresholds||n.threshold+\"px\"}}(n)))}(o,this),function(n,e){t&&(e._onlineHandler=function(){!function(n,t){var e;(e=mn(n),bn(e).filter(pn)).forEach((function(t){M(t,n.class_error),A(t)})),t.update()}(n,e)},window.addEventListener(\"online\",e._onlineHandler))}(o,this),this.update(e)};return En.prototype={update:function(n){var t,o,a=this._settings,r=hn(n,a);G(this,r.length),!e&&i?gn(a)?function(n,t,e){n.forEach((function(n){-1!==_n.indexOf(n.tagName)&&function(n,t,e){n.setAttribute(\"loading\",\"lazy\"),cn(n,t,e),function(n,t){var e=Y[n.tagName];e&&e(n,t)}(n,t),w(n,h)}(n,t,e)})),G(e,0)}(r,a,this):(o=r,function(n){n.disconnect()}(t=this._observer),function(n,t){t.forEach((function(t){n.observe(t)}))}(t,o)):this.loadAll(r)},destroy:function(){this._observer&&this._observer.disconnect(),t&&window.removeEventListener(\"online\",this._onlineHandler),mn(this._settings).forEach((function(n){U(n)})),delete this._observer,delete this._settings,delete this._onlineHandler,delete this.loadingCount,delete this.toLoadCount},loadAll:function(n){var t=this,e=this._settings;hn(n,e).forEach((function(n){T(n,t),ln(n,e,t)}))},restoreAll:function(){var n=this._settings;mn(n).forEach((function(t){fn(t,n)}))}},En.load=function(n,t){var e=c(t);ln(n,e)},En.resetStatus=function(n){A(n)},t&&function(n,t){if(t)if(t.length)for(var e,i=0;e=t[i];i+=1)l(n,e);else l(n,t)}(En,window.lazyLoadOptions),En}));\n"],"sourceRoot":""}