{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/lodash/debounce.js","webpack:///./node_modules/lodash/isSymbol.js","webpack:///./node_modules/lodash/_baseGetTag.js","webpack:///./node_modules/lodash/now.js","webpack:///./node_modules/lodash/_freeGlobal.js","webpack:///./node_modules/lodash/toNumber.js","webpack:///./node_modules/lodash/_baseTrim.js","webpack:///./node_modules/lodash/_trimmedEndIndex.js","webpack:///./node_modules/lodash/_getRawTag.js","webpack:///./node_modules/lodash/_objectToString.js","webpack:///./node_modules/lodash/isObjectLike.js","webpack:///./.tmp/app_sor_eu_core/js/sizefit.js","webpack:///./.tmp/app_sor_eu_core/js/components/processInclude.js","webpack:///./.tmp/app_sor_eu_core/js/aem/tabbedContainer.js","webpack:///./.tmp/app_sor_eu_core/js/sizefit/sizefit.js","webpack:///./.tmp/app_sor_eu_core/js/components/breakpoints.js","webpack:///./node_modules/lodash/isObject.js","webpack:///./node_modules/lodash/_root.js","webpack:///./node_modules/lodash/_Symbol.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","g","this","Function","e","window","isObject","require","now","toNumber","nativeMax","Math","max","nativeMin","min","func","wait","options","lastArgs","lastThis","maxWait","result","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","TypeError","invokeFunc","time","args","thisArg","undefined","apply","leadingEdge","setTimeout","timerExpired","shouldInvoke","timeSinceLastCall","trailingEdge","timeWaiting","remainingWait","debounced","isInvoking","arguments","clearTimeout","cancel","flush","baseGetTag","isObjectLike","getRawTag","objectToString","symToStringTag","root","Date","freeGlobal","global","baseTrim","isSymbol","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","parseInt","other","valueOf","isBinary","test","slice","trimmedEndIndex","reTrimStart","string","replace","reWhitespace","index","length","charAt","objectProto","nativeObjectToString","toString","isOwn","tag","unmasked","processInclude","$","document","ready","include","keys","forEach","breakpoints","debounce","reinitializeCarousels","$clickedItem","targetContentSelector","data","attr","find","slick","init","each","$this","$hybridTabbedContainer","closest","on","isHighRes","siblings","hide","toggle","isLowRes","preventDefault","$thisItem","removeClass","addClass","$clickedTab","$contentContainer","$targetContent","$ofs","prop","slideToItem","children","show","hash","location","trigger","tabbedContainer","showUnitToggle","is","selectCategory","$element","elementIdParts","id","split","categorySuffix","dataset","subcat","genderToShow","gendershow","sectionDiv","buttonText","gender","$categorySelected","$divSelected","$activeCategory","$activeSection","menuText","html","genderCategory","toLowerCase","collapse","toggleCategorySizeFit","innerText","toggleMeasurements","useCentimeters","$toggleTable","$columnHeaders","nthIndex","$toggleCell","convertedValue","unit","indexOf","size","isNaN","parseFloat","Number","toFixed","unitConversion","text","clearTableClasses","$tableElement","applyTableElementStyle","className","createScrollButtons","$activeContent","overflow","outerWidth","remove","tableHeaderHeight","css","marginLeft","$rightScrollButton","$leftScrollButton","append","scrollButtonPosition","$container","$table","tableOverflow","offsetLeft","offset","left","initSizeFit","$sizeFitModal","fitAsset","$unitToggles","hasClass","container","outerHeight","$activeTable","$currentScrollButton","animate","scrollLeft","$tdElement","containsTdElement","elementIndex","has","iterator","rowElement","$rowElement","columnIndex","childElement","$childElement","getSizeFitGuideContent","$modalContentWrapper","url","successHandler","overflowSlider","ajax","method","dataType","success","parentElement","renderedTemplate","error","modal","isCurrentBreakpointAbbreviation","breakpointAbbreviation","Error","$breakpointIndicator","isCurrentBreakpoint","len","abbreviation","getCurrentBreakpoint","currentBP","$bpIndicator","type","freeSelf","self"],"mappings":"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","file":"sizefit.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 = 296);\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","var isObject = require('./isObject'),\n now = require('./now'),\n toNumber = require('./toNumber');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nmodule.exports = debounce;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","var root = require('./_root');\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\nmodule.exports = now;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var baseTrim = require('./_baseTrim'),\n isObject = require('./isObject'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = toNumber;\n","var trimmedEndIndex = require('./_trimmedEndIndex');\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nmodule.exports = baseTrim;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nmodule.exports = trimmedEndIndex;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var processInclude = require('./components/processInclude');\n\n$(document).ready(function () {\n processInclude(require('./sizefit/sizefit'));\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\nconst breakpoints = require('../components/breakpoints');\nconst debounce = require('lodash/debounce');\n\n/**\n * Updates the tab and content state for the item that was clicked\n * @param {selector} clickedTabSelector for example: .ofs-item\n */\nfunction updateTabbedContainerContent(clickedTabSelector) {\n var $clickedTab = $(clickedTabSelector);\n var $tabbedContainer = $clickedTab.closest('.tabbed-container');\n var $contentContainer = $tabbedContainer.children('.tabbed-container__content-container');\n var targetContentSelector = $clickedTab.data('target') || $clickedTab.attr('href');\n var $targetContent = $(targetContentSelector);\n\n // Show clicked tab's contents, hide all sibling tabs' contents.\n // This prevents white space below the footer when very long tab content is hidden\n $targetContent.show();\n\n if (breakpoints.isHighRes() || !$targetContent.closest('.responsive-tabs').length) {\n // only apply this style class when the tabbed container is being rendered as tabs (e.g. hybrid view at desktop width, or tab-only view at any width)\n $targetContent.siblings().hide();\n }\n\n // toggle active class on the content\n $contentContainer.children('.tabbed-container__content').removeClass('active');\n $targetContent.addClass('active');\n}\n\n/**\n * Reinitializes any carousels within tabbed content of any variation (e.g. tabs, accordions, hybrid)\n * @param {JQuery} $clickedItem for example: .ofs-item or .card-header\n */\nfunction reinitializeCarousels($clickedItem) {\n var targetContentSelector = $clickedItem.data('target') || $clickedItem.attr('href');\n $(targetContentSelector).find('.slick-initialized').slick('unslick').slick('reinit');\n}\n\nmodule.exports = {\n init: function () {\n // set initial height of all content containers to the size of their active content.\n $('.tabbed-container__content-container').each(function () {\n var $this = $(this);\n var $hybridTabbedContainer = $this.closest('.responsive-tabs'); // may or may not exist depending on which $('.tabbed-container__content-container') we are in\n\n // wait for window.onLoad and try setting the height again, for those instances that weren't ready the first time.\n $(window).on('load', function () {\n if (breakpoints.isHighRes() || !$hybridTabbedContainer.length) {\n // only apply this style class when the tabbed container is being rendered as tabs (e.g. hybrid view at desktop width, or tab-only view at any width)\n $this.find('.active').siblings().hide();\n }\n });\n\n // make sure that we don't lose content if someone rotates their tablet or phone back and forth and the tabbed container transitions between accordion and tab view\n $(window).on('resize', debounce(\n function () {\n if ($hybridTabbedContainer.length) {\n $this.find('.active').siblings().toggle(breakpoints.isLowRes());\n }\n }, 200));\n });\n\n $('.tabbed-container__tabs').on('click', '.ofs__item', function (e) {\n e.preventDefault();\n var $thisItem = $(this);\n\n // toggle active classes on the tabs\n $thisItem.siblings('.ofs__item').removeClass('active');\n $thisItem.addClass('active');\n\n var $ofs = $thisItem.closest('.overflow-slider');\n $ofs.prop('ofs').slideToItem($ofs, $thisItem);\n\n // reinitialize the carousels in case they got cut short on initial page load and tab content hiding\n reinitializeCarousels($thisItem);\n\n updateTabbedContainerContent($thisItem);\n });\n\n $('.accordions').on('click', '.card-header', function () {\n var $thisItem = $(this);\n\n // reinitialize the carousels in case they got cut short on initial page load and tab content hiding\n reinitializeCarousels($thisItem);\n });\n\n var hash = location.hash;\n if (hash) {\n // check if any of the ofs__items have this href or target.\n $('.tabbed-container__tabs .ofs__item').each(function () {\n var $thisItem = $(this);\n var targetContentSelector = $thisItem.data('target') || $thisItem.attr('href');\n if (targetContentSelector === hash) {\n // go to this item\n $thisItem.trigger('click'); // this will call the event handler above to make this item active.\n return false; // break out of the .each() loop.\n }\n return true;\n });\n }\n }\n};\n","'use strict';\nvar breakpoints = require('../components/breakpoints');\nvar tabbedContainer = require('../aem/tabbedContainer');\n\n/**\n * Show unit toggle control if .js-no-unit-toggle class is not present\n */\nfunction showUnitToggle() {\n if ($('.tabbed-container__tabs .js-no-unit-toggle.active').is(':visible')) {\n $('.js-unit-toggle').addClass('d-none');\n } else {\n $('.js-unit-toggle').removeClass('d-none');\n }\n}\n\n/**\n *\n * @param {string} categorySuffix - the category to be shown\n * @param {string} sectionDiv - the section to be shown\n * @param {string} buttonText - the text to be replace the top accordion\n * @param {string} gender - text containing the gender option to show on the top most accordion upon selection\n */\nfunction toggleCategorySizeFit(categorySuffix, sectionDiv, buttonText, gender) {\n if (typeof categorySuffix === 'undefined' || typeof sectionDiv === 'undefined') {\n return;\n }\n\n var $categorySelected = $('div.size-guides-' + categorySuffix);\n var $divSelected = $('div.' + sectionDiv);\n var $activeCategory = $('.category-shown');\n var $activeSection = $('.section-shown');\n\n if ($activeCategory) {\n $activeCategory.addClass('d-none').removeClass('category-shown');\n }\n\n if ($activeSection) {\n $activeSection.addClass('d-none').removeClass('section-shown');\n }\n\n $categorySelected.removeClass('d-none').addClass('category-shown');\n $divSelected.removeClass('d-none').addClass('section-shown');\n var menuText = gender + ' > ' + buttonText;\n var $menu = $('a.selectedCategory div.accordion__title__text');\n $menu.html(menuText);\n\n // Determine if unit toggle control should display\n showUnitToggle();\n\n // Click tab to ensure proper tabbed content height\n $('.ofs__item.active:visible').trigger('click');\n\n var genderCategory = gender.replace(/[^\\w ]+/g, '').toLowerCase();\n\n $('#selectionCategory-' + genderCategory).collapse('toggle');\n $('#selectionAccordion').collapse('toggle');\n}\n\n/**\n * to select a category from the list\n * @param {Object} $element category id value\n */\nfunction selectCategory($element) {\n var elementIdParts = $element.id.split('-');\n var categorySuffix = elementIdParts[0] + '-' + $element.dataset.subcat;\n var genderToShow = $element.dataset.gendershow;\n var sectionDiv = elementIdParts[1];\n var buttonText = $element.innerText;\n toggleCategorySizeFit(categorySuffix, sectionDiv, buttonText, genderToShow);\n}\n\n/**\n * convert inches-to-centimeters and vice-versa\n * @param {boolean} useCentimeters if true then convert to centimeters, else convert to inches\n * @param {string} value value to convert\n * @returns {string} converted value\n */\nfunction unitConversion(useCentimeters, value) {\n var result;\n var radix = 10;\n var unit = (useCentimeters) ? 2.54 : 0.3937;\n if (value.indexOf('-') > -1) {\n var values = value.split('-');\n values.forEach(function (size) {\n if (!isNaN(size)) {\n result = (result == null) ? parseFloat((Number(size) * unit).toFixed(1), radix) : result + '-' + parseFloat((Number(size) * unit).toFixed(1), radix);\n }\n });\n } else if (!isNaN(value)) {\n result = parseFloat((Number(value) * unit).toFixed(1), radix);\n }\n\n return result;\n}\n\n/**\n * function to read the measurement values and set respective converted value\n * @param {boolean} useCentimeters if true then convert to centimeters, else convert to inches\n */\nfunction toggleMeasurements(useCentimeters) {\n const $toggleTables = $('.size-chart-asset table');\n\n $toggleTables.each(function () {\n const $toggleTable = $(this);\n const $columnHeaders = $toggleTable.find('thead th'); // get table column headers\n\n $toggleTable.find('.js-convert-column').each(function () {\n const nthIndex = $columnHeaders.index(this) + 1; // index of .js-convert-column element relative to it's siblings\n const $toggleCells = $toggleTable.find('tbody td:nth-child(' + nthIndex + ')'); // get table cells in the same column as .js-convert-column\n\n $toggleCells.each(function () {\n const $toggleCell = $(this);\n const convertedValue = unitConversion(useCentimeters, $toggleCell.text()); // convert values on relevant table cells\n\n if (convertedValue) {\n $toggleCell.text(convertedValue);\n }\n });\n });\n });\n}\n\n/**\n * Clear table of all styling classes\n * @param {Object} $tableElement - the table that will have the styling removed from its elements\n */\nfunction clearTableClasses($tableElement) {\n $tableElement.find('th, td').removeClass('selected-table-element cross-section-header cross-section-data');\n}\n\n/** Adds the appropriate styling to the table element being passed\n * @param {Object} $tableElement - element to be styled, based of th/td tag\n */\nfunction applyTableElementStyle($tableElement) {\n var className;\n className = $tableElement.is('th') ? 'cross-section-header' : 'cross-section-data';\n $tableElement.addClass(className);\n}\n\n/** For the table in the measurement section\n * @param {Object} tableElement - table element to be focussed on for cross section\n * @returns {boolean} - false to break the loop, true to move on to the next iteration in the each loop.\n */\nfunction tableCrossSection(tableElement) {\n var $tdElement = $(tableElement);\n var $trElement = $tdElement.closest('tr');\n var containsTdElement = $trElement.has('td').length;\n var elementIndex = $tdElement.index();\n var $tableElement = $tdElement.closest('table');\n clearTableClasses($tableElement);\n $tdElement.addClass('selected-table-element');\n\n // Check if row contains td element, if not it is the header row and\n // cross section doesn't need to be calculated\n if (containsTdElement && elementIndex) {\n // Loop through each table row and apply cross section styling\n $tableElement.find('tr').each(function (iterator, rowElement) {\n var $rowElement = $(rowElement);\n\n // If table row does not contain the moused over cell,\n // apply styling to the cell in the same column\n if (!$rowElement.has('td.selected-table-element').length) {\n var $rowCell = $($rowElement.find('th, td')[elementIndex]);\n applyTableElementStyle($rowCell);\n } else {\n // Apply styling to the entire row, prior to the moused over element\n $rowElement.children().each(function (columnIndex, childElement) {\n var $childElement = $(childElement);\n if (columnIndex < elementIndex) {\n applyTableElementStyle($childElement);\n }\n });\n return false;\n }\n return true;\n });\n }\n return true;\n}\n\n/**\n * Create scroll buttons when the table is larger than the size of the screen\n * TODO: Tech Debt: https://columbia.atlassian.net/browse/GSD-18362 - Remove createScrollButtons()\n */\nfunction createScrollButtons() {\n var $activeContent = $('.js-sizefit-content:visible .tabbed-container__content.active');\n var overflow = $activeContent.find('table.size-chart-asset__table').outerWidth() - $activeContent.outerWidth();\n if (overflow > 0 && breakpoints.isLowRes()) {\n $('.js-scroll-button').remove(); // remove old instances\n var tableHeaderHeight = $activeContent.find('table.size-chart-asset__table th').css('height');\n var marginLeft = parseInt($activeContent.find('table.size-chart-asset__table th').css('width'), 10) + 1 + 'px'; // Adds extra pixel for outline\n var $rightScrollButton = ``;\n var $leftScrollButton = ``;\n $activeContent.append($leftScrollButton);\n $activeContent.append($rightScrollButton);\n }\n}\n\n/**\n * Switches position of scroll buttons\n * @param {Object} $container - jQuery element of table element\n */\nfunction scrollButtonPosition($container) {\n var $table = $container.find('table.size-chart-asset__table');\n var tableOverflow = $table.outerWidth() - $container.outerWidth();\n var $tableOffset = $table.offset();\n var offsetLeft = $tableOffset.left - 48; // remove 3rem offset\n\n if (tableOverflow + offsetLeft < 2) {\n $('.scroll-table-right').addClass('d-none');\n $('.js-scroll-button.scroll-table-left.d-none').removeClass('d-none');\n } else if (offsetLeft < 2 && offsetLeft > 0) {\n $('.scroll-table-left').addClass('d-none');\n $('.js-scroll-button.scroll-table-right.d-none').removeClass('d-none');\n }\n}\n\n/**\n * Highlights fit selection in Fit Guide content asset\n */\nfunction highlightFitSelection() {\n const $sizeFitModal = $('.sizefit-modal');\n const fitAsset = $('.js-apparel-fit').data('fit-asset');\n const selection = $sizeFitModal.find('[id*=\"' + fitAsset + '\"]');\n\n // Adds outline to content asset wrapper\n selection.addClass('outline');\n}\n\nmodule.exports = {\n initSizeFit: function () {\n const $unitToggles = $('.js-unit-toggle');\n\n createScrollButtons();\n highlightFitSelection(); // Highlight apparel fit in content asset\n\n // TODO: Add event delegation / investigate if needed.\n $('.js-sizefit-option').on('click', function () {\n selectCategory(this);\n $(window).trigger('resize'); // this fixes the height of the overflow slider tabs\n });\n\n // inches/cm toggle\n $unitToggles.on('click', function () {\n var $element = $(this);\n var useCentimeters = false;\n if ($element.hasClass('inches')) {\n $unitToggles.addClass('centi').removeClass('inches');\n useCentimeters = true;\n } else {\n $unitToggles.addClass('inches').removeClass('centi');\n }\n\n toggleMeasurements(useCentimeters);\n });\n\n $('body').on('click', '.ofs__item', function () {\n createScrollButtons();\n });\n\n $('body').on('click', '.js-no-unit-toggle', function () {\n showUnitToggle();\n });\n\n $('.js-sizefit-content').on('shown.bs.collapse', function () {\n $(window).trigger('resize'); // this fixes the height of the overflow slider tabs\n // and this fixes the height of the active content container which was hidden, so had a height of 0:\n $(this).find('.tabbed-container__content-container').each((index, container) => {\n var $container = $(container);\n return $container.css('height', $container.find('.active').outerHeight());\n });\n createScrollButtons();\n });\n\n $('body').on('click', '.js-scroll-button', function () {\n var $activeTable = $('.js-sizefit-content:visible .tabbed-container__content.active .size-chart-asset');\n var $currentScrollButton = $(this);\n $activeTable.animate({ scrollLeft: $currentScrollButton.data('overflow') }, 200, function () {\n scrollButtonPosition($activeTable);\n });\n });\n $('body').on('mouseover', '.size-chart-asset__table td, .size-chart-asset__table th', function () {\n tableCrossSection(this);\n });\n $('body').on('mouseleave', 'table', function () {\n var $tableElement = $(this);\n clearTableClasses($tableElement);\n });\n $('.size-chart-asset').on('scroll', function () {\n var $container = $(this);\n scrollButtonPosition($container);\n });\n },\n getSizeFitGuideContent: function ($modalContentWrapper, url) {\n var successHandler = (html) => {\n // append the template HTML of the interactive size/fit guide to the '.modal-body'\n $modalContentWrapper.find('.modal-body').html(html);\n\n // initialize the event handlers and interactive behavior\n $modalContentWrapper.find('.overflow-slider').overflowSlider();\n tabbedContainer.init();\n $modalContentWrapper.find('.tabbed-container__content-container .active').siblings().hide(); // full page load already happened so we need to do this explicitly\n this.initSizeFit();\n };\n\n // fetch the HTML content for the interactive size/fit guide and\n $.ajax({\n url: url,\n method: 'GET',\n dataType: 'json',\n success: (data) => {\n if (!$modalContentWrapper[0].parentElement) {\n // success was called before the modal is shown.\n $modalContentWrapper.on('shown.bs.modal', () => {\n successHandler(data.renderedTemplate);\n });\n } else {\n successHandler(data.renderedTemplate);\n }\n },\n error: () => {\n $modalContentWrapper.modal('hide');\n }\n });\n }\n};\n","'use strict';\n\n/**\n* Checks if the current bootstrap UI breakpoint matches the breakpoint abbreviation.\n* @param {string} breakpointAbbreviation Breakpoint abbreviations. Options are: xs, sm, md, lg, xl\n* @returns {boolean} True if the breakpoint abbreviation is the current breakpoint.\n*/\nfunction isCurrentBreakpointAbbreviation(breakpointAbbreviation) {\n if (\n breakpointAbbreviation !== 'xs' &&\n breakpointAbbreviation !== 'sm' &&\n breakpointAbbreviation !== 'md' &&\n breakpointAbbreviation !== 'lg' &&\n breakpointAbbreviation !== 'xl') {\n throw new Error('Invalid breakpoint abbreviation: ' + breakpointAbbreviation);\n }\n\n var selector = '.bootstrap-breakpoints-' + breakpointAbbreviation;\n var $breakpointIndicator = $(selector);\n\n if ($breakpointIndicator.length === 0) {\n throw new Error('Breakpoint indicator not found for: ' + breakpointAbbreviation);\n }\n return $breakpointIndicator.css('display') === 'block';\n}\n\n/**\n * Finds the current breakpoint from the hidden .bootstrap-breakpoints element.\n * @returns {string} The currently active breakpoint abbreviation. ('xs', 'sm', 'md', 'lg', or 'xl')\n */\nfunction getCurrentBreakpoint() {\n var $breakpointIndicators = $('.bootstrap-breakpoints > div');\n var currentBP;\n $breakpointIndicators.each(function () {\n var $bpIndicator = $(this);\n if ($bpIndicator.css('display') === 'block') {\n currentBP = $bpIndicator.data('bp');\n return false; // break out of the each loop\n }\n return true; // continue to next item in loop\n });\n return currentBP;\n}\n\nmodule.exports = {\n /**\n * This check is only for the resolution of the screen, it should\n * not be used to infer device type or user interaction (touch/click).\n * @returns {boolean} True if the screen is low resolution.\n */\n isLowRes: function () {\n return this.isCurrentBreakpoint('xs', 'sm', 'md');\n },\n /**\n * This check is only for the resolution of the screen, it should\n * not be used to infer device type or user interaction (touch/click).\n * @returns {boolean} True if the screen is high resolution.\n */\n isHighRes: function () {\n return this.isCurrentBreakpoint('lg', 'xl');\n },\n\n /**\n * Checks if the current bootstrap UI breakpoint matches a parameter.\n * @example isCurrentBreakpoint('xs', 'sm')\n * @param {arguments} breakpointAbbreviations One of more comma separated string breakpoint parameters. Options are: xs, sm, md, lg, xl\n * @returns {boolean} True if any of the breakpoint abbreviations are the current breakpoint.\n */\n isCurrentBreakpoint: function () {\n if (arguments.length === 0) {\n throw new Error('No breakpoint abbreviations specified.');\n }\n\n for (var i = 0, len = arguments.length; i < len; i++) {\n var abbreviation = arguments[i];\n\n if (isCurrentBreakpointAbbreviation(abbreviation)) {\n return true;\n }\n }\n\n /**\n * NOTE: it is explicitly intentional that this function accepts the breakpoint abbreviations and returns a boolean.\n * If the function was instead 'getCurrentBreakpoint' where it returns the breakpoint abbreviation...\n * then it might make future refactors and bootstrap updates more difficult if the abbreviations change\n * because the return value may not be consumed near the function call (difficult to track/update).\n */\n return false;\n },\n\n getCurrentBreakpoint: getCurrentBreakpoint\n};\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n"],"sourceRoot":""}