{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///../autobahn_client_core/cartridges/autobahn_client_core/cartridge/client/default/js/product/detail.js","webpack:///../autobahn_client_core/cartridges/autobahn_client_core/cartridge/client/default/js/productDetail.js","webpack:///../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/components/recaptcha.js","webpack:///../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/integrations/siteIntegrationsUtils.js","webpack:///../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/product/addToCartStickyBar.js","webpack:///../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/product/detail.js","webpack:///../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/productDetail.js","webpack:///../rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/scripts/constants/SiteConstants.js","webpack:///../rvw_integrations_core/cartridges/rvw_integrations_core/cartridge/client/default/js/integrations/applepay.js","webpack:///../rvw_integrations_core/cartridges/rvw_integrations_core/cartridge/client/default/js/integrations/bopis/productDetail.js","webpack:///../rvw_integrations_core/cartridges/rvw_integrations_core/cartridge/client/default/js/integrations/commercepayments/product/detail.js","webpack:///../rvw_integrations_core/cartridges/rvw_integrations_core/cartridge/client/default/js/integrations/commercepayments/product/payments.js","webpack:///../rvw_integrations_core/cartridges/rvw_integrations_core/cartridge/client/default/js/integrations/siteIntegrationsUtils.js","webpack:///../rvw_integrations_core/cartridges/rvw_integrations_core/cartridge/client/default/js/integrations/subpro/subscriptionOptions.js","webpack:///../rvw_integrations_core/cartridges/rvw_integrations_core/cartridge/client/default/js/productDetail.js","webpack:///../storefront-reference-architecture/cartridges/app_storefront_base/cartridge/client/default/js/components/focus.js","webpack:///../storefront-reference-architecture/cartridges/app_storefront_base/cartridge/client/default/js/product/base.js","webpack:///../storefront-reference-architecture/cartridges/app_storefront_base/cartridge/client/default/js/product/detail.js","webpack:///../storefront-reference-architecture/cartridges/app_storefront_base/cartridge/client/default/js/util.js"],"names":["exports","$","extend","require","displayMessage","data","spinner","stop","status","success","length","append","msg","setTimeout","remove","setInitialStore","$storeElement","searchPID","attr","$storeName","find","empty","text","storeName","storeID","closest","removeClass","$changeStoreButton","searchPostalCode","searchRadius","addClass","trigger","container","parents","initBarCode","document","ready","code","JsBarcode","format","lineColor","displayValue","width","height","margin","font","fontSize","fontOptions","textAlign","setMyStoreForProduct","$myStore","myStoreId","myStoreName","on","e","$this","productid","userEmail","url","ajax","type","dataType","error","err","showVariantSku","$productContainer","product","id","show","updateAvailabilityMessageClass","$mList","options","childList","observer","MutationObserver","mCallback","mutations","mutation","addedNodes","customClass","toLowerCase","replace","children","observe","module","productDetail","baseFiles","detail","check","next","captcha","formData","split","x","key","value","join","getIntegrationSettings","window","CachedData","siteIntegrations","stickyBarJumpLinks","preventDefault","animate","scrollTop","offset","top","addToCartStickyBar","SiteConstants","getElementById","addToCartContainer","$body","topHeader","classList","contains","topHeaderHeight","offsetHeight","addEventListener","pageYOffset","offsetTop","setAttribute","hasClass","removeAttribute","TransitionSpeed","updateAddToCart","updateAttributes","html","attributesHtml","updateAddAllToCart","enable","toArray","every","item","copyProductLink","event","$temp","val","select","execCommand","showSpinner","start","setCollapsibleContentState","$collapsibleContentGroup","each","expandCollapsibleContentGroup","processInclude","Object","keys","forEach","BreakpointSizes","ComponentAnimationDelay","Spacer","placeholderImagePaths","defaultMapMarker","defaultStoreType","methods","afterApplePayTagReplacement","checkoutPaymentTab","removeAttr","target","response","appleButton","name","readyToOrder","available","detectIsApplePayTagReplacement","applePayTag","addNode","className","disconnect","onStoreSelected","onStoreAfterRemoveStoreSelection","sfcpUpdateAddToCart","$button","recaptcha","getCartQuantity","delay","Promise","resolve","reject","timeoutMillis","contentType","quantityTotal","then","updateBuyNowRequest","sfpp","errorElement","querySelector","buynow","get","getCartUrl","placeOrderUrl","updateBasketData","basketData","updatePaymentRequest","message","method","errorMessage","redirect","appendTo","body","action","continueUrl","orderID","orderToken","submit","core","toggleDeliveryIntervalDropdown","$deliveryInterval","hideDropdown","currentTarget","serializeURLParams","obj","prefix","str","p","hasOwnProperty","k","v","push","serialize","encodeURIComponent","showMinimumFrequencyWarning","context","siblings","enteredVal","parseInt","minAllowed","plural","subscriptionOptions","cartInit","off","page","hasScheduledDelivery","regularDeliveries","regularDelivery","checked","variantInit","i","option","parent","getOptionsState","pliUUID","subscriptionMode","deliveryInteval","deliveryNumPeriods","discount","isDiscountPercentage","handleAddToCartSubOptions","subOptions","ajaxUpdateOptions","queryString","cache","location","reload","toggleObject","productExtensions","cybersourceCartridgeEnabled","adyenCartridgeEnabled","applepay","subproEnabled","sfcommercepaymentsCartridgeEnabled","payments","bopisCartridgeEnabled","bopis","library","setTabNextFocus","focusParams","KEYCODE_TAB","isTabPressed","keyCode","firstFocusableEl","containerSelector","firstElementSelector","lastFocusableEl","lastElementSelector","is","nextToLastElementSelector","linkElements","shiftKey","focus","focusHelper","getPidValue","$el","pid","getQuantitySelector","quantitySelected","quantitySelectedModal","quantitySelectedPDP","undefined","getQuantitySelected","processSwatchValues","msgs","values","attrValue","$attrValue","$swatchButton","selected","assistiveSelectedText","selectable","processNonSwatchValues","$attr","$defaultOption","resetUrl","updateAttrs","attrs","attrsWithSwatches","indexOf","updateAvailability","availabilityValue","availabilityMessages","availability","messages","resources","info_selectforstock","getAttributesHtml","attributes","attributeGroup","ID","attribute","label","updateOptions","optionsHtml","createCarousel","imgs","carousel","carouselId","alt","index","title","first","detach","handleVariantResponse","isChoiceOfBonusProducts","isVaraint","variationAttributes","productType","primaryImageUrls","images","large","$priceSelector","replaceWith","price","promotionsHtml","$selectButton","updateQuantities","quantities","map","quantity","attributeSelect","selectedValueUrl","getAddToCartUrl","parseHtml","$html","parseHTML","footer","chooseBonusProducts","bonusUrl","bonusChoiceRuleBased","showProductsUrlRuleBased","showProductsUrlListBased","htmlString","maxBonusItems","uuid","addToCartUrl","pageSize","labels","selectprods","parsedHtml","renderedTemplate","enterDialogMessage","closeButtonText","modal","handlePostCartAdd","messageType","newBonusDiscountLineItem","getChildProducts","childProducts","JSON","stringify","getOptions","$elOption","urlValue","selectedValueId","optionId","miniCartReportingUrl","editBonusProducts","focusChooseBonusProductModal","onClosingChooseBonusProductModal","trapChooseBonusProductModalFocus","colorAttribute","selectAttribute","addToCart","pidsObj","setPids","qty","form","reportingURL","selectBonusProduct","$choiceOfBonusProduct","maxPids","submittedQty","totalQty","optionID","valueId","selectedBonusProductHtml","removeBonusProduct","$selected","count","enableBonusProductSelection","showMoreBonusProducts","addBonusProductsToCart","$readyToOrderBonusProducts","pidsObject","bonusProducts","qtyOption","productId","msgSuccess","base","updateAddToCartEnableDisableOtherElements","enableOrDisable","updateAttributesAndDetails","shortDescription","longDescription","updateAttribute","eq","allAvailable","allReady","sizeChart","$prodSizeChart","content","toggleClass","$sizeChart","has","include","call"],"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 = \"../autobahn_client_core/cartridges/autobahn_client_core/cartridge/client/default/js/productDetail.js\");\n","'use strict';\n\nvar exports = $.extend({}, require('core/product/detail'));\n\n/**\n * shows toast message\n * @param {string} data - data returned from the server's ajax call\n */\n function displayMessage(data) {\n $.spinner().stop();\n var status = data.success ? 'alert-success' : 'alert-danger';\n\n if ($('.add-to-wishlist-messages').length === 0) {\n $('body').append('
');\n }\n\n $('.add-to-wishlist-messages').append('
' + data.msg + '
');\n\n setTimeout(function () {\n $('.add-to-wishlist-messages').remove();\n }, 5000);\n}\n\nfunction setInitialStore(data) {\n var $storeElement = $('.product-detail[data-pid]');\n var searchPID = $storeElement.attr('data-pid');\n var $storeName = $storeElement.find('.selected-store-with-inventory .card-body .store-name');\n $storeName.empty();\n $storeName.text(data.storeName);\n $storeName.attr('data-store-id', data.storeID);\n $storeElement.find('.selected-store-with-inventory').closest('.row').removeClass('d-none');\n\n var $changeStoreButton = $storeElement.find('.change-store');\n $changeStoreButton.attr('data-postal', data.searchPostalCode);\n $changeStoreButton.attr('data-radius', data.searchRadius);\n\n $storeElement.find('.btn-get-in-store-inventory').closest('.row').addClass('d-none');\n $('body').trigger('product:afterAttributeSelect', { data: data, container: $('.onevariantsku').parents('.product-detail.container') });\n}\n\nexports.initBarCode = function () {\n $(document).ready(function () {\n var code = $(\"#barcode\").data(\"code\");\n JsBarcode(\"#barcode\", code, {\n format: \"CODE39\",\n lineColor: \"#000\",\n displayValue: true,\n width: 1,\n height: 50,\n margin: 0,\n font: \"sans-serif\",\n fontSize: 14,\n fontOptions: \"bold\",\n textAlign: \"left\"\n });\n });\n};\n\nexports.setMyStoreForProduct = function() {\n $(document).ready(function () {\n const $myStore = $('.header .my-store');\n const myStoreId = $myStore.data('store-id');\n const myStoreName = $myStore.data('store-name');\n var data = {\n storeID: myStoreId,\n storeName: myStoreName,\n searchRadius: '300'\n };\n setInitialStore(data);\n });\n};\n\n$('body').on('click', '.email-notify-sign-up', function (e) {\n var $this = $(this);\n var productid = $this.data('productid');\n var userEmail = $this.data('useremail');\n var url = $this.data('actionurl');\n $.ajax({\n url: url,\n type: 'get',\n dataType: 'json',\n data: {\n productid: productid,\n userEmail: userEmail\n },\n success: function (data) {\n displayMessage(data);\n },\n error: function (err) {\n displayMessage(err);\n }\n });\n});\n// if a product has one size variant, run the ATS store lookup for the selected or default store\n// checks for 'onevariantsku' class found in availablity.isml\nexports.showVariantSku = function() {\n $(document).ready(function () {\n if ($('.onevariantsku')) {\n var $productContainer = $('.onevariantsku').parents('.product-detail.container');\n var data = {\n product: {\n id: $productContainer.attr('data-pid')\n }\n };\n $productContainer.find('button.change-store').show();\n $('body').trigger('product:afterAttributeSelect',\n { data: data, container: $productContainer });\n }\n });\n};\n\nexports.updateAvailabilityMessageClass = function() {\n $(document).ready(function () {\n let $mList = $('.availability-msg'),\n options = {\n childList: true\n },\n observer = new MutationObserver(mCallback);\n\n function mCallback(mutations) {\n for (let mutation of mutations) {\n if (mutation.addedNodes.length > 0) {\n const customClass = ($mList.find('div').text()).toLowerCase().replace(/\\s/g, '');\n $mList.children('li').addClass(customClass);\n }\n }\n }\n\n if ($mList.length > 0 ) {\n observer.observe($mList[0], options);\n }\n });\n};\n\nmodule.exports = exports;\n","var productDetail = require('integrations/productDetail');\n\nproductDetail.baseFiles.detail = require('./product/detail');\n\nmodule.exports = productDetail;\n","\n'use strict';\n\nfunction check(e, next) {\n\n let captcha = $('[name=g-recaptcha-response]');\n\n if (next.data) {\n var formData = next.data.split('&');\n\n for(var x=0; x 0) {\r\n var jumplinkObject = {\r\n jumplink: $jumplink,\r\n jumplinkElementTop: jumplinkContentElement.offset().top,\r\n jumplinkElementBottom: jumplinkContentElement.outerHeight() + jumplinkContentElement.offset().top \r\n }\r\n jumplinkArray.push(jumplinkObject);\r\n }\r\n });\r\n */\r\n\t\t\r\n //main add to cart sticky vars\r\n var SiteConstants = require('constants/SiteConstants');\r\n var addToCartStickyBar = document.getElementById('addtocart-sticky-bar');\r\n var addToCartContainer = document.getElementById('qty-cart-container');\r\n var $body = $('body');\r\n var topHeader = document.getElementById('top-header');\r\n\t\t\r\n //if header is fixed, use just the nav bar to measure top of page, else use the entire header (may contain promo bar)\r\n if (topHeader.classList.contains('fixed-header')) {\r\n var topHeaderHeight = document.getElementById('header-nav').offsetHeight;\r\n } else {\r\n var topHeaderHeight = 0;\r\n }\r\n\t\r\n if (addToCartStickyBar && addToCartContainer) {\r\n window.addEventListener(\"scrollUpdate\", function() {\r\n //main sticky add to cart functionality - only show when scrolled past in-page add to cart section\t\r\n if (window.pageYOffset > (addToCartContainer.offsetTop + addToCartContainer.offsetHeight + topHeaderHeight)) {\r\n $body.addClass('showstickybar');\t\r\n addToCartStickyBar.setAttribute(\"style\", 'top:' + topHeaderHeight + 'px;');\r\n } else if ($body.hasClass('showstickybar')){\r\n $body.removeClass('showstickybar');\r\n setTimeout(() => {\r\n addToCartStickyBar.removeAttribute(\"style\");\r\n }, SiteConstants.TransitionSpeed);\r\n }\r\n \r\n // ** Jumplinks are Currently Deactivated **\r\n /*\r\n var bottomOfTopWindow = window.scrollY + topHeaderHeight + addToCartStickyBar.offsetHeight;\r\n jumplinkArray.forEach(function(jumplinkObject) {\r\n if (bottomOfTopWindow > jumplinkObject.jumplinkElementTop && bottomOfTopWindow < jumplinkObject.jumplinkElementBottom ) {\r\n jumplinkObject.jumplink.addClass('selected');\r\n } else {\r\n jumplinkObject.jumplink.removeClass('selected');\r\n }\r\n });\r\n */\r\n });\r\n }\r\n }\r\n}","'use strict';\n\nconst { updateAddToCart } = require('base/product/detail');\n\nmodule.exports = {\n updateAttributes: function() {\n $('body').on('product:statusUpdate', function (e, data) {\n var $productContainer = $('.product-detail[data-pid=\"' + data.id + '\"]');\n\n $productContainer.find('.main-content-group .product-attributes')\n .empty()\n .html(data.attributesHtml);\n\n $('body').trigger('tooltip:init');\n updateAddToCart();\n });\n },\n updateAddAllToCart: function () {\n // if default variants are selected, enable the add all to cart btn on load\n var enable = $('.product-availability').toArray().every(function (item) {\n return $(item).data('available') && $(item).data('ready-to-order');\n });\n $('button.add-to-cart-global').attr('disabled', !enable);\n },\n copyProductLink: function () {\n $('body').on('click', '#fa-link', function () {\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 showSpinner: function() {\n $('body').on('product:beforeAddToCart, product:beforeAttributeSelect', function () {\n $.spinner().start();\n });\n },\n setCollapsibleContentState: function() {\n var $collapsibleContentGroup = $('.collapsible-content-group');\n\n $collapsibleContentGroup.each(function () {\n var expandCollapsibleContentGroup = $(this).data('expand');\n if (expandCollapsibleContentGroup == true) {\n $(this).addClass('active');\n }\n });\n }\n};\n","'use strict';\n\nvar processInclude = require('base/util');\n\nvar baseFiles = {\n detail: require('./product/detail'),\n addToCartStickyBar: require('./product/addToCartStickyBar')\n};\n\n$(document).ready(function () {\n Object.keys(baseFiles).forEach(function (key) {\n processInclude(baseFiles[key]);\n });\n});\n\nmodule.exports = {\n baseFiles\n};\n","'use strict';\n\n// These values should always match the variables set in _variables.scss and the contentImageBreakpoints site pref\nmodule.exports.BreakpointSizes = {\n 'sm': 544,\n 'md': 769,\n 'lg': 1024,\n 'xl': 1440\n};\n\nmodule.exports.TransitionSpeed = 200;\n\nmodule.exports.ComponentAnimationDelay = 0;\n\nmodule.exports.Spacer = 16;\n\nmodule.exports.placeholderImagePaths = {\n 'thumbnail': '/gray.png',\n 'imageMissing': '/placeholder 410x410.png'\n}\n\nmodule.exports.defaultMapMarker = {\n 'color': 'white',\n 'backgroundImage': '/images/icons/map-marker-default.svg'\n}\n\nmodule.exports.defaultStoreType = {\n 'id': 0,\n 'displayValue': 'Retail',\n 'value': 'retail'\n}\n","'use strict';\n\nmodule.exports = {\n methods: {\n afterApplePayTagReplacement: function(data) {\n var checkoutPaymentTab = $('.nav-item.applepay-tab-wrapper');\n if (checkoutPaymentTab.length === 1) {\n checkoutPaymentTab.removeAttr('hidden');\n }\n var container;\n if (data && data.target) {\n container = $(data.target).find('.js-paymentmethodwarning-msgcontainer');\n } else {\n container = $('#applepay-content .js-paymentmethodwarning-msgcontainer');\n }\n if (container) {\n container.attr('data-iframepresent', true);\n container.data('iframepresent', true);\n $('body').trigger('PaymentMethodObserver:iframePresent');\n }\n }\n },\n updateAddToCart: function () {\n $('body').on('product:updateAddToCart', function (e, response) {\n var $productContainer = response.$productContainer;\n var appleButton = $productContainer.find('button.dw-apple-pay-button');\n\n if (appleButton && appleButton.length) {\n $('body').trigger('PaymentMethodObserver:Show', { name: 'available', show: (!response.product.readyToOrder || !response.product.available) })\n appleButton.attr('sku', response.product.id);\n }\n });\n },\n detectIsApplePayTagReplacement: function () {\n //can handle running before or after replacement by internal demandware applepay script\n var applePayTag = $('isapplepay');\n if (applePayTag.length === 0) {\n module.exports.methods.afterApplePayTagReplacement();\n } else {\n $('body').on('PaymentMethodObserver:AddNode', function (e, data) {\n if (data && data.addNode && data.addNode.classList){\n for (var className of data.addNode.classList) {\n if (className === 'dw-apple-pay-button') {\n module.exports.methods.afterApplePayTagReplacement(data);\n\n data.observer.disconnect();\n return;\n }\n }\n }\n })\n }\n }\n}\n","'use strict';\n\nfunction onStoreSelected() {\n $('body').on('store:selected', function (e, data) {\n $('body').trigger('PaymentMethodObserver:Show', { name: 'bopis', show: true })\n })\n}\n\nfunction onStoreAfterRemoveStoreSelection() {\n $(document).on('store:afterRemoveStoreSelection', function (e, data) {\n $('body').trigger('PaymentMethodObserver:Show', { name: 'bopis', show: false })\n })\n}\n\nmodule.exports = {\n onStoreSelected: onStoreSelected,\n onStoreAfterRemoveStoreSelection: onStoreAfterRemoveStoreSelection\n};\n","'use strict';\n\nmodule.exports = {\n sfcpUpdateAddToCart: function () {\n $('body').on('product:updateAddToCart', function (e, response) {\n var $productContainer = response.$productContainer;\n var $button = $productContainer.find('.salesforce-buynow-element');\n\n if ($button && $button.length) {\n $button.attr('disabled',\n (!response.product.readyToOrder || !response.product.available));\n }\n });\n },\n};\n","'use strict';\n\nvar recaptcha = require('core/components/recaptcha');\n\n/**\n * Get the cart quantity.\n * @param {string} url - URL of the controller to get the cart model\n * @param {number=} delay - milliseconds to wait before getting the cart (default is 1000)\n * @returns {Promise} - promise to resolve the cart model and its quantity\n */\nfunction getCartQuantity(url, delay) {\n return new Promise(function (resolve, reject) {\n // Default delay to 1 second\n var timeoutMillis = delay || 1000;\n\n setTimeout(function () {\n $.ajax({\n url: url,\n contentType: 'application/json; charset=UTF-8',\n success: function (response) {\n if (response.quantityTotal) {\n // Resolve response for mini cart update\n resolve(response);\n } else {\n // Get the cart again after a longer delay\n getCartQuantity(url, timeoutMillis * 2).then(resolve, reject);\n }\n },\n error: reject\n });\n }, timeoutMillis);\n });\n}\n\nmodule.exports = {\n updateBuyNowRequest: function () {\n if (window.sfpp) {\n sfpp.ready(function () { // eslint-disable-line\n var errorElement = $(document.querySelector('.salesforce-buynow-element-errors'));\n var buynow = sfpp.get('buynow'); // eslint-disable-line\n\n var getCartUrl = $('.salesforce-buynow-element').data('getcart');\n var placeOrderUrl = $('.salesforce-buynow-element').data('placeorder');\n\n $('body').on('product:updateAddToCart', function (e, response) {\n buynow.updateBasketData(response.product.buynow.basketData);\n buynow.updatePaymentRequest(response.product.buynow.options);\n });\n\n // Update mini cart count once basket is prepared\n buynow.on('click', function () {\n getCartQuantity(getCartUrl).then(function (response) {\n $('.minicart').trigger('count:update', response);\n $('body').trigger('product:afterAddToCart', response);\n });\n });\n\n // Update error message on change\n buynow.on('change', function (event) {\n if (event.error) {\n // Inform the customer that there is an error.\n errorElement.empty().text(event.error.message);\n } else {\n // Clear out error message\n errorElement.empty();\n }\n });\n\n buynow.on('payment', function (event) {\n recaptcha.check(event, {\n url: placeOrderUrl,\n method: 'POST',\n success: function (data) {\n if (data.error) {\n // Inform the customer that there is an error.\n errorElement.empty().text(data.errorMessage);\n } else {\n var redirect = $('
')\n .appendTo(document.body)\n .attr({\n method: 'POST',\n action: data.continueUrl\n });\n\n $('')\n .appendTo(redirect)\n .attr({\n name: 'orderID',\n value: data.orderID\n });\n\n $('')\n .appendTo(redirect)\n .attr({\n name: 'orderToken',\n value: data.orderToken\n });\n\n redirect.submit();\n }\n },\n error: function (err) {\n // Inform the customer that there is an error.\n errorElement.empty().text(err.message);\n }\n });\n });\n });\n }\n }\n};\n","'use strict';\n/*\n * Just have a simple pass through so we can use the site preference integration toggles\n * in rvw_integrations_core as well as rvw_autobahn_core\n */\nvar core = require('core/integrations/siteIntegrationsUtils');\n\nmodule.exports = core;\n\n","'use strict';\n\n/**\n * Toggle the dropdown list of delivery intervals\n * @param {Event} event The event data\n * @param {string} $deliveryInterval The delivery interval element\n */\nfunction toggleDeliveryIntervalDropdown(event, $deliveryInterval) {\n var hideDropdown = $(event.currentTarget).val() !== 'regular';\n $deliveryInterval.attr('hidden', hideDropdown);\n}\n\n/**\n * Serialize the URL parameters\n * @param {Object} obj URL object\n * @param {string} prefix Prefix\n * @return {string} The serialized parameters\n */\nfunction serializeURLParams(obj, prefix) {\n var str = [];\n var p;\n for (p in obj) {\n if (obj.hasOwnProperty(p)) {\n var k = prefix ? prefix + '[' + p + ']' : p;\n var v = obj[p];\n str.push((v !== null && typeof v === 'object')\n ? serialize(v, k)\n : encodeURIComponent(k) + '=' + encodeURIComponent(v));\n }\n }\n return str.join('&');\n}\n\n/**\n * @param {DOMElement} context DOM context to use\n */\nfunction showMinimumFrequencyWarning(context) {\n $(context).siblings('.error').empty();\n var enteredVal = parseInt($(context).val());\n var minAllowed = parseInt($(context).attr('min'));\n if (enteredVal < minAllowed) {\n var plural = enteredVal !== 1;\n $(context).siblings('.error').append('

You have selected to receive this product every ' + enteredVal + ' day' + (plural ? 's' : '') + '. If this is not correct, please update your Auto-Ship frequency.

');\n }\n}\n\nvar subscriptionOptions = {\n cartInit: function () {\n if (!$('body').find('.subpro-options.cart').length) {\n return;\n }\n\n $('.subpro-options.cart input[name^=subproSubscriptionOptionMode]')\n .off('change')\n .on('change', function (event) {\n $(event.currentTarget).parents('.card').spinner().start();\n toggleDeliveryIntervalDropdown(event, $('.subpro-options.cart .delivery-interval-group'));\n $('body').trigger('cartOptionsUpdate', { event: event, page: 'cart' });\n // page is reloaded upon success in AJAX ajaxUpdateOptions\n });\n\n $('.subpro-options.cart #delivery-interval')\n .off('change')\n .on('change', function (event) {\n $(event.currentTarget).parents('.card').spinner().start();\n $('body').trigger('cartOptionsUpdate', { event: event, page: 'cart' });\n // page is reloaded upon success in AJAX ajaxUpdateOptions\n });\n\n $('.subpro-options.cart #delivery-periods')\n .off('change')\n .on('change', function (event) {\n showMinimumFrequencyWarning(this);\n $('body').trigger('cartOptionsUpdate', { event: event, page: 'cart' });\n });\n\n showMinimumFrequencyWarning($('.subpro-options.cart #delivery-periods'));\n\n var hasScheduledDelivery = false;\n var regularDeliveries = $('input[id=\"regular-delivery\"]');\n if (regularDeliveries && regularDeliveries.length) {\n for (var regularDelivery of regularDeliveries) {\n hasScheduledDelivery = hasScheduledDelivery || regularDelivery.checked;\n }\n }\n $('body').trigger('PaymentMethodObserver:Show', { name: 'subpro', show: hasScheduledDelivery });\n },\n\n variantInit: function () {\n if (!$('body').find('.subpro-options.pdp').length) {\n return;\n }\n var options = $('.subpro-options.pdp input[name^=subproSubscriptionOptionMode]:checked');\n for (var i = 0; i < options.length; i++) {\n if (options[i].checked) {\n $('body').trigger('PaymentMethodObserver:Show', { name: 'subpro', show: options[i].value !== 'onetime' });\n }\n var option = $(options[i]);\n option.parent().parent().find('.delivery-interval-group').attr('hidden', option.val() !== 'regular');\n }\n\n $('.subpro-options.pdp input[name^=subproSubscriptionOptionMode]')\n .off('change')\n .on('change', function (event) {\n toggleDeliveryIntervalDropdown(event, $(event.currentTarget).parent().parent().find('.delivery-interval-group'));\n $('body').trigger('pdpOptionsUpdate', { event: event, page: 'pdp' });\n });\n\n $('.subpro-options.pdp #delivery-interval')\n .off('change')\n .on('change', function (event) {\n $('body').trigger('pdpOptionsUpdate', { event: event, page: 'pdp' });\n });\n $('.subpro-options.pdp #delivery-periods')\n .off('change')\n .on('change', function (event) {\n showMinimumFrequencyWarning(this);\n $('body').trigger('pdpOptionsUpdate', { event: event, page: 'pdp' });\n });\n },\n\n getOptionsState: function (target, page) {\n var parent;\n var pliUUID;\n\n if (page !== 'pdp' && page !== 'cart') {\n return;\n }\n parent = target.closest('.subpro-options.' + page);\n\n if (page === 'pdp') {\n pliUUID = parent.siblings('input[name=subproSubscriptionProductId]').val();\n } else {\n pliUUID = parent.closest('.product-info').find('button.remove-product').data('pid');\n }\n\n return {\n pliUUID: pliUUID,\n subscriptionMode: parent.find('input[name^=subproSubscriptionOptionMode]:checked').val(),\n deliveryInteval: parent.find('#delivery-interval').val(),\n deliveryNumPeriods: parent.find('#delivery-periods').val(),\n discount: parent.siblings('input[name=subproSubscriptionDiscount]').val(),\n isDiscountPercentage: parent.siblings('input[name=subproSubscriptionIsDiscountPercentage]').val()\n };\n },\n\n handleAddToCartSubOptions: function () {\n $(document).on('updateAddToCartFormData', function (e, data) {\n var subOptions = subscriptionOptions.getOptionsState($(document).find('div.subpro-options.pdp'), 'pdp');\n data.pliUUID = subOptions.pliUUID;\n data.subscriptionMode = subOptions.subscriptionMode;\n data.deliveryInteval = subOptions.deliveryInteval;\n data.deliveryNumPeriods = subOptions.deliveryNumPeriods;\n data.discount = subOptions.discount;\n data.isDiscountPercentage = subOptions.isDiscountPercentage;\n });\n },\n\n ajaxUpdateOptions: function () {\n $('body').on('product:afterAttributeSelect', function (e, response) {\n $('input[name=subproSubscriptionProductId]').val(response.data.product.id);\n });\n\n $(document).on('pdpOptionsUpdate cartOptionsUpdate', function (e, p) {\n ajaxUpdateOptions($(p.event.currentTarget), p.page); // eslint-disable-line\n });\n\n $(document).on('product:afterAddToCart', function (e, data) {\n ajaxUpdateOptions($(document).find('div.subpro-options.pdp'), 'pdp'); // eslint-disable-line\n });\n }\n};\n\n/**\n * Update subscription options via AJAX when they are changed\n * @param {string} target DOM target we can use for getting the option state\n * @param {string} page The current page (pdp or cart)\n */\nfunction ajaxUpdateOptions(target, page) {\n var data = subscriptionOptions.getOptionsState(target, page);\n if (page === 'pdp' || (data && data.subscriptionMode && data.subscriptionMode !== 'onetime')) {\n // Run on pdp always and on cart page when subscription is changing to something other than onetime to prevent user quickly clicking applepay button while ajax is in transit\n $('body').trigger('PaymentMethodObserver:Show', { name: 'subpro', show: data && data.subscriptionMode && data.subscriptionMode !== 'onetime' });\n }\n\n var queryString = serializeURLParams(data);\n $.ajax({\n type: 'POST',\n cache: false,\n contentType: 'application/json',\n url: $('input[name=subproSubscriptionOptionsUrl]').val() + '?' + queryString,\n success: function () {\n if (page == 'cart') {\n window.location.reload(true);\n }\n }\n });\n}\n\nmodule.exports = subscriptionOptions;\n","'use strict';\n\nvar core = require('core/productDetail');\n\nvar siteIntegrations = require('./integrations/siteIntegrationsUtils');\nvar toggleObject = siteIntegrations.getIntegrationSettings();\nvar productExtensions = [];\n\nif (toggleObject.cybersourceCartridgeEnabled || toggleObject.adyenCartridgeEnabled) {\n productExtensions.push({\n applepay: require('./integrations/applepay')\n });\n}\nif (toggleObject.subproEnabled) {\n productExtensions.push({\n subscriptionOptions: require('./integrations/subpro/subscriptionOptions')\n });\n}\nif (toggleObject.sfcommercepaymentsCartridgeEnabled) {\n productExtensions.push({\n detail: require('./integrations/commercepayments/product/detail'),\n payments: require('./integrations/commercepayments/product/payments')\n });\n}\n\nif (toggleObject.bopisCartridgeEnabled) {\n productExtensions.push({\n bopis: require ('./integrations/bopis/productDetail')\n })\n}\n\nproductExtensions.forEach(function (library) {\n Object.keys(library).forEach(function (item) {\n if (typeof library[item] === 'object') {\n core.baseFiles[item] = $.extend({}, core.baseFiles[item], library[item]);\n } else {\n core.baseFiles[item] = library[item];\n }\n });\n});\n\nmodule.exports = core;\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';\nvar focusHelper = require('../components/focus');\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').find('.product-id').text();\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 {\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=\"' +\n attrValue.value + '\"]');\n var $swatchButton = $attrValue.parent();\n\n if (attrValue.selected) {\n $attrValue.addClass('selected');\n $attrValue.siblings('.selected-assistive-text').text(msgs.assistiveSelectedText);\n } else {\n $attrValue.removeClass('selected');\n $attrValue.siblings('.selected-assistive-text').empty();\n }\n\n if (attrValue.url) {\n $swatchButton.attr('data-url', attrValue.url);\n } else {\n $swatchButton.removeAttr('data-url');\n }\n\n // Disable if not selectable\n $attrValue.removeClass('selectable unselectable');\n\n $attrValue.addClass(attrValue.selectable ? 'selectable' : 'selectable');\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 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\n .find($attr + ' [data-attr-value=\"' + attrValue.value + '\"]');\n $attrValue.attr('value', attrValue.url)\n .removeAttr('disabled');\n\n if (!attrValue.selectable) {\n $attrValue.attr('disabled', true);\n }\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\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\t// Update options\n $productContainer.find('.product-options').empty().html(optionsHtml);\n}\n\n/**\n * Dynamically creates Bootstrap carousel from response containing images\n * @param {Object[]} imgs - Array of large product images,along with related information\n * @param {jQuery} $productContainer - DOM element for a given product\n */\nfunction createCarousel(imgs, $productContainer) {\n var carousel = $productContainer.find('.carousel');\n $(carousel).carousel('dispose');\n var carouselId = $(carousel).attr('id');\n $(carousel).empty().append('
      ' + $(carousel).data('prev') + '' + $(carousel).data('next') + '');\n for (var i = 0; i < imgs.length; i++) {\n $('
      \"'
      ').appendTo($(carousel).find('.carousel-inner'));\n $('
    1. ').appendTo($(carousel).find('.carousel-indicators'));\n }\n $($(carousel).find('.carousel-item')).first().addClass('active');\n $($(carousel).find('.carousel-indicators > li')).first().addClass('active');\n if (imgs.length === 1) {\n $($(carousel).find('.carousel-indicators, a[class^=\"carousel-control-\"]')).detach();\n }\n $(carousel).carousel();\n $($(carousel).find('.carousel-indicators')).attr('aria-hidden', true);\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 var isChoiceOfBonusProducts =\n $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')\n .data('pid', response.product.id);\n\n $productContainer.parent('.bonus-product-item')\n .data('ready-to-order', response.product.readyToOrder);\n }\n }\n\n // Update primary images\n var primaryImageUrls = response.product.images.large;\n createCarousel(primaryImageUrls, $productContainer);\n\n // Update pricing\n if (!isChoiceOfBonusProducts) {\n var $priceSelector = $('.prices .price', $productContainer).length\n ? $('.prices .price', $productContainer)\n : $('.prices .price');\n $priceSelector.replaceWith(response.product.price.html);\n }\n\n // Update promotions\n $productContainer.find('.promotions').empty().html(response.product.promotionsHtml);\n\n updateAvailability(response, $productContainer);\n\n if (isChoiceOfBonusProducts) {\n var $selectButton = $productContainer.find('.select-bonus-product');\n $selectButton.trigger('bonusproduct:updateSelectButton', {\n product: response.product, $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').trigger('product:updateAddToCart', {\n product: response.product, $productContainer: $productContainer\n }).trigger('product:statusUpdate', response.product);\n }\n\n // Update attributes\n $productContainer.find('.main-attributes').empty()\n .html(getAttributesHtml(response.product.attributes));\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',\n { 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',\n { data: data, container: $productContainer });\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 * 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 */\nfunction handlePostCartAdd(response) {\n $('.minicart').trigger('count:update', response);\n var messageType = response.error ? 'alert-danger' : 'alert-success';\n // show add to cart toast\n if (response.newBonusDiscountLineItem\n && Object.keys(response.newBonusDiscountLineItem).length !== 0) {\n chooseBonusProducts(response.newBonusDiscountLineItem);\n } else {\n if ($('.add-to-cart-messages').length === 0) {\n $('body').append(\n '
      '\n );\n }\n\n $('.add-to-cart-messages').append(\n '
      '\n + response.message\n + '
      '\n );\n\n setTimeout(function () {\n $('.add-to-basket-alert').remove();\n }, 5000);\n }\n}\n\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\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\n if ($(this).attr('disabled')) {\n return;\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 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'),\n $productContainer);\n }\n });\n },\n\n addToCart: function () {\n $(document).on('click', 'button.add-to-cart, button.add-to-cart-global', function () {\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 && $(this).hasClass('add-to-cart-global')) {\n setPids = [];\n\n $('.product-detail').each(function () {\n if (!$(this).hasClass('product-set-detail')) {\n setPids.push({\n pid: $(this).find('.product-id').text(),\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 $.ajax({\n url: addToCartUrl,\n method: 'POST',\n data: form,\n success: function (data) {\n handlePostCartAdd(data);\n $('body').trigger('product:afterAddToCart', data);\n $.spinner().stop();\n miniCartReportingUrl(data.reportingURL);\n },\n error: function () {\n $.spinner().stop();\n }\n });\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 ;\n $('#chooseBonusProductModal .selected-bonus-products').append(selectedBonusProductHtml);\n $('.pre-cart-products').html(totalQty);\n $('.selected-bonus-products .bonus-summary').removeClass('alert-danger');\n } else {\n $('.selected-bonus-products .bonus-summary').addClass('alert-danger');\n }\n });\n },\n removeBonusProduct: function () {\n $(document).on('click', '.selected-pid', function () {\n $(this).remove();\n var $selected = $('#chooseBonusProductModal .selected-bonus-products .selected-pid');\n var count = 0;\n if ($selected.length) {\n $selected.each(function () {\n count += parseInt($(this).data('qty'), 10);\n });\n }\n\n $('.pre-cart-products').html(count);\n $('.selected-bonus-products .bonus-summary').removeClass('alert-danger');\n });\n },\n enableBonusProductSelection: function () {\n $('body').on('bonusproduct:updateSelectButton', function (e, response) {\n $('button.select-bonus-product', response.$productContainer).attr('disabled',\n (!response.product.readyToOrder || !response.product.available));\n var pid = response.product.id;\n $('button.select-bonus-product', response.$productContainer).data('pid', pid);\n });\n },\n showMoreBonusProducts: function () {\n $(document).on('click', '.show-more-bonus-products', function () {\n var url = $(this).data('url');\n $('.modal-content').spinner().start();\n $.ajax({\n url: url,\n method: 'GET',\n success: function (html) {\n var parsedHtml = parseHtml(html);\n $('.modal-body').append(parsedHtml.body);\n $('.show-more-bonus-products:first').remove();\n $('.modal-content').spinner().stop();\n },\n error: function () {\n $('.modal-content').spinner().stop();\n }\n });\n });\n },\n addBonusProductsToCart: function () {\n $(document).on('click', '.add-bonus-products', function () {\n var $readyToOrderBonusProducts = $('.choose-bonus-product-dialog .selected-pid');\n var queryString = '?pids=';\n var url = $('.choose-bonus-product-dialog').data('addtocarturl');\n var pidsObject = {\n bonusProducts: []\n };\n\n $.each($readyToOrderBonusProducts, function () {\n var qtyOption =\n parseInt($(this)\n .data('qty'), 10);\n\n var option = null;\n if (qtyOption > 0) {\n if ($(this).data('optionid') && $(this).data('option-selected-value')) {\n option = {};\n option.optionId = $(this).data('optionid');\n option.productId = $(this).data('pid');\n option.selectedValueId = $(this).data('option-selected-value');\n }\n pidsObject.bonusProducts.push({\n pid: $(this).data('pid'),\n qty: qtyOption,\n options: [option]\n });\n pidsObject.totalQty = parseInt($('.pre-cart-products').html(), 10);\n }\n });\n queryString += JSON.stringify(pidsObject);\n queryString = queryString + '&uuid=' + $('.choose-bonus-product-dialog').data('uuid');\n queryString = queryString + '&pliuuid=' + $('.choose-bonus-product-dialog').data('pliuuid');\n $.spinner().start();\n $.ajax({\n url: url + queryString,\n method: 'POST',\n success: function (data) {\n $.spinner().stop();\n if (data.error) {\n $('#chooseBonusProductModal').modal('hide');\n if ($('.add-to-cart-messages').length === 0) {\n $('body').append('
      ');\n }\n $('.add-to-cart-messages').append(\n '
      '\n + data.errorMessage + '
      '\n );\n setTimeout(function () {\n $('.add-to-basket-alert').remove();\n }, 3000);\n } else {\n $('.configure-bonus-product-attributes').html(data);\n $('.bonus-products-step2').removeClass('hidden-xl-down');\n $('#chooseBonusProductModal').modal('hide');\n\n if ($('.add-to-cart-messages').length === 0) {\n $('body').append('
      ');\n }\n $('.minicart-quantity').html(data.totalQty);\n $('.add-to-cart-messages').append(\n '
      '\n + data.msgSuccess + '
      '\n );\n setTimeout(function () {\n $('.add-to-basket-alert').remove();\n if ($('.cart-page').length) {\n location.reload();\n }\n }, 1500);\n }\n },\n error: function () {\n $.spinner().stop();\n }\n });\n });\n },\n\n getPidValue: getPidValue,\n getQuantitySelected: getQuantitySelected,\n miniCartReportingUrl: miniCartReportingUrl\n};\n","'use strict';\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\n updateAttributesAndDetails: function () {\n $('body').on('product:statusUpdate', function (e, data) {\n var $productContainer = $('.product-detail[data-pid=\"' + data.id + '\"]');\n\n $productContainer.find('.description-and-detail .product-attributes')\n .empty()\n .html(data.attributesHtml);\n\n if (data.shortDescription) {\n $productContainer.find('.description-and-detail .description')\n .removeClass('hidden-xl-down');\n $productContainer.find('.description-and-detail .description .content')\n .empty()\n .html(data.shortDescription);\n } else {\n $productContainer.find('.description-and-detail .description')\n .addClass('hidden-xl-down');\n }\n\n if (data.longDescription) {\n $productContainer.find('.description-and-detail .details')\n .removeClass('hidden-xl-down');\n $productContainer.find('.description-and-detail .details .content')\n .empty()\n .html(data.longDescription);\n } else {\n $productContainer.find('.description-and-detail .details')\n .addClass('hidden-xl-down');\n }\n });\n },\n\n showSpinner: function () {\n $('body').on('product:beforeAddToCart product:beforeAttributeSelect', function () {\n $.spinner().start();\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.data('pid', response.data.product.id);\n response.container.find('.product-id').text(response.data.product.id);\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 module.exports.methods.updateAddToCartEnableDisableOtherElements(!enable);\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 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 $('.size-chart a').on('click', function (e) {\n e.preventDefault();\n var url = $(this).attr('href');\n var $prodSizeChart = $(this).closest('.size-chart').find('.size-chart-collapsible');\n if ($prodSizeChart.is(':empty')) {\n $.ajax({\n url: url,\n type: 'get',\n dataType: 'json',\n success: function (data) {\n $prodSizeChart.append(data.content);\n }\n });\n }\n $prodSizeChart.toggleClass('active');\n });\n\n var $sizeChart = $('.size-chart-collapsible');\n $('body').on('click touchstart', function (e) {\n if ($('.size-chart').has(e.target).length <= 0) {\n $sizeChart.removeClass('active');\n }\n });\n },\n copyProductLink: function () {\n $('body').on('click', '#fa-link', function () {\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 focusChooseBonusProductModal: base.focusChooseBonusProductModal()\n};\n","'use strict';\n\nmodule.exports = function (include) {\n if (typeof include === 'function') {\n include.call(this);\n } else if (typeof include === 'object') {\n Object.keys(include).forEach(function (key) {\n if (typeof include[key] === 'function') {\n include[key].call(include);\n }\n });\n }\n};\n"],"sourceRoot":""}