{"version":3,"file":"default/js/productDetail.js","mappings":"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","sources":["webpack://autobahn-build/./autobahn_client_core/cartridges/autobahn_client_core/cartridge/client/default/js/product/detail.js","webpack://autobahn-build/./autobahn_client_core/cartridges/autobahn_client_core/cartridge/client/default/js/productDetail.js","webpack://autobahn-build/./rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/product/addToCartStickyBar.js","webpack://autobahn-build/./rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/product/detail.js","webpack://autobahn-build/./rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/client/default/js/utilities/headerUtils.js","webpack://autobahn-build/./rvw_autobahn_core/cartridges/rvw_autobahn_core/cartridge/scripts/constants/SiteConstants.js","webpack://autobahn-build/./storefront-reference-architecture/cartridges/app_storefront_base/cartridge/client/default/js/util.js","webpack://autobahn-build/webpack/bootstrap","webpack://autobahn-build/webpack/startup"],"sourcesContent":["'use strict';\n\nvar coreProductDetail = require('core/product/detail');\n\ncoreProductDetail.accessibility = function() {\n $('.st-custom-button').keypress(function(event){\n var keycode = (event.keyCode ? event.keyCode : event.which);\n if(keycode == '13'){\n $(this).trigger('click');\n }\n });\n}\n\nmodule.exports = coreProductDetail;\n","'use strict';\n\nvar processInclude = require('base/util');\n\nvar baseFiles = {\n detail: require('./product/detail'),\n addToCartStickyBar: require('core/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';\r\n\r\nmodule.exports = {\r\n\r\n stickyBarJumpLinks: function () {\r\n $('a.jumplink').on('click', function(e) {\r\n e.preventDefault();\r\n //scrolling indicator may or may not be useful\r\n $('.addtocart-sticky-bar').addClass('scrolling');\r\n\r\n $('html, body').animate({ scrollTop: $($(this).attr('href')).offset().top }, 500, function() {\r\n $('.addtocart-sticky-bar').removeClass('scrolling');\r\n });\r\n });\r\n },\r\n\r\n addToCartStickyBar: function (){\r\n\r\n //jumplinks - ** Currently deactivated ** : add all jumplinks and related anchor content that exists in an array that contains jumplink object and content area\r\n /*\r\n var allJumplinks = $('.addtocart-sticky-bar .jumplink');\r\n var jumplinkArray = [];\r\n allJumplinks.each(function(index) {\r\n var $jumplink = $(allJumplinks[index]);\r\n var jumplinkContentElement = $($jumplink.attr('href')).parent();\r\n\r\n if (jumplinkContentElement && jumplinkContentElement.length > 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\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 var headerUtils = require('../utilities/headerUtils');\r\n\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 var topHeaderHeight = 0;\r\n if (topHeader.classList.contains('fixed-header')) {\r\n topHeaderHeight = headerUtils.getHeaderHeightNavOnly(); // WGACA MODIFICATION cleanup definition vs setting\r\n // } else {\r\n // var topHeaderHeight = 0;\r\n }\r\n\r\n // WGACA MODIFICATION - Update the value whenever the window is resized\r\n window.addEventListener('resize', ()=>{\r\n if (topHeader.classList.contains('fixed-header')) {\r\n topHeaderHeight = document.getElementById('header-nav').offsetHeight;\r\n }\r\n if(addToCartStickyBar){\r\n addToCartStickyBar.style.top = `${topHeaderHeight}px`;\r\n }\r\n });\r\n // END MODIFICATION\r\n\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\r\n if (window.pageYOffset > (addToCartContainer.offsetTop + addToCartContainer.offsetHeight + topHeaderHeight)) {\r\n $body.addClass('showstickybar');\r\n // WGACA MODIFICATION - reset header height\r\n if (topHeader.classList.contains('fixed-header')) {\r\n topHeaderHeight = document.getElementById('header-nav').offsetHeight;\r\n }\r\n // END MODIFICATION\r\n addToCartStickyBar?.setAttribute('style', 'top:' + topHeaderHeight + 'px;'); // WGACA MODIFICATION - optional chaining\r\n } else if ($body.hasClass('showstickybar')){\r\n $body.removeClass('showstickybar');\r\n setTimeout(() => {\r\n addToCartStickyBar?.removeAttribute('style'); // WGACA MODIFICATION - optional chaining\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}\r\n","'use strict';\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 if ($('button.add-to-cart-global').length) {\n module.exports.updateAddAllToCart();\n }\n });\n },\n updateHeadlinesAndTabs: function() {\n $('body').on('product:afterAttributeSelect', function (e, data) {\n if (data && data.data && data.data.product && data.container) {\n var $productContainer = data.container;\n var product = data.data.product;\n\n if (product.headline) {\n $productContainer.find('.product-headline')\n .show()\n .html(product.headline);\n } else {\n $productContainer.find('.product-headline')\n .hide();\n }\n\n if (product.headlineDescription) {\n $productContainer.find('.product-headlinedescription')\n .show()\n .html(product.headlineDescription);\n } else {\n $productContainer.find('.product-headlinedescription')\n .hide();\n }\n }\n });\n },\n updateCollapsibleContent: function() {\n $('body').on('product:afterAttributeContentSwap', function (e, data) {\n module.exports.setCollapsibleContentState((data && data.container) ? data.container : '');\n });\n },\n updateAddAllToCart: function () {\n // if default variants are selected, enable the add all to cart btn on load\n if ($('button.add-to-cart-global').length) {\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 },\n copyProductLink: function () {\n $('body').on('click', '#fa-link', function () {\n event.preventDefault();\n var $temp = $('<input>');\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').addClass('toast-messages');\n setTimeout(function () {\n $('.copy-link-message').addClass('d-none').removeClass('toast-messages');\n }, 3000);\n });\n },\n showSpinner: function() {\n $('body').on('product:beforeAddToCart product:beforeAttributeSelect', function () {\n $.spinner().start();\n });\n },\n setCollapsibleContentState: function ($container) {\n var $collapsibleContentGroup;\n\n if ($container) {\n $collapsibleContentGroup = $container.find('.collapsible-content-group');\n } else {\n $collapsibleContentGroup = $('.collapsible-content-group');\n }\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\n/**\n * Creating a global getHeaderHeight function since its used more than once\n * @param {excludedClasses} string of class names, comma separated — OPTIONAL\n * used in: search.js, menu.js\n */\nfunction getHeaderHeight(excludedClasses) {\n var excludedConstants = '.skip, .d-none'\n var excludedClasses = excludedClasses ? excludedClasses + ', ' + excludedConstants : excludedConstants;\n var calculatedHeaderHeight = 0;\n $(\"#top-header > *:not(\" + excludedClasses + \")\").each(function () {\n calculatedHeaderHeight += $(this).outerHeight();\n })\n return calculatedHeaderHeight;\n}\n\n/**\n * getHeaderHeightNavOnly\n * sometimes there are 2 header-navs if secondary-nav is enabled\n */\nfunction getHeaderHeightNavOnly() {\n var calculatedHeaderHeight = 0;\n //logo-centers secondary-nav is within the original header-nav so don't calculate the height again\n if ($('.logo-center').length) {\n calculatedHeaderHeight = $('.header-nav').outerHeight();\n } else {\n $('.header-nav').each(function () {\n calculatedHeaderHeight += $(this).outerHeight();\n if ($(this).hasClass('secondary-nav')) {\n //helps offset rounding of pixels\n calculatedHeaderHeight --;\n }\n })\n }\n return calculatedHeaderHeight;\n}\n\nmodule.exports = {\n getHeaderHeight: getHeaderHeight,\n getHeaderHeightNavOnly: getHeaderHeightNavOnly\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': '/images/gray.png',\n 'imageMissing': '/images/placeholder.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\n// These are used in cartridge/client/default/js/components/search.js\nmodule.exports.UP_KEY = 38;\nmodule.exports.DOWN_KEY = 40;\nmodule.exports.DIRECTION_DOWN = 1;\nmodule.exports.DIRECTION_UP = -1;\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","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(8694);\n"],"names":["coreProductDetail","require","accessibility","$","keypress","event","keyCode","which","this","trigger","module","exports","processInclude","baseFiles","detail","addToCartStickyBar","document","ready","Object","keys","forEach","key","stickyBarJumpLinks","on","e","preventDefault","addClass","animate","scrollTop","attr","offset","top","removeClass","SiteConstants","getElementById","addToCartContainer","$body","topHeader","headerUtils","topHeaderHeight","classList","contains","getHeaderHeightNavOnly","window","addEventListener","offsetHeight","style","concat","pageYOffset","offsetTop","setAttribute","hasClass","setTimeout","removeAttribute","TransitionSpeed","updateAttributes","data","id","find","empty","html","attributesHtml","length","updateAddAllToCart","updateHeadlinesAndTabs","product","container","$productContainer","headline","show","hide","headlineDescription","updateCollapsibleContent","setCollapsibleContentState","enable","toArray","every","item","copyProductLink","$temp","append","val","select","execCommand","remove","showSpinner","spinner","start","$container","each","getHeaderHeight","excludedClasses","excludedConstants","calculatedHeaderHeight","outerHeight","BreakpointSizes","ComponentAnimationDelay","Spacer","placeholderImagePaths","defaultMapMarker","defaultStoreType","UP_KEY","DOWN_KEY","DIRECTION_DOWN","DIRECTION_UP","_typeof","obj","Symbol","iterator","constructor","prototype","include","call","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__"],"sourceRoot":""}