{"version":3,"file":"hp-hero.894.011f4.js","mappings":"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","sources":["webpack://umms-html/./node_modules/@babel/runtime/helpers/defineProperty.js","webpack://umms-html/./FrontEndSrc/js/imports/media.js","webpack://umms-html/./FrontEndSrc/modules/macro/hp-hero/hp-hero.js","webpack://umms-html/./node_modules/lodash.debounce/index.js"],"sourcesContent":["function _defineProperty(obj, key, value) {\n  if (key in obj) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n  } else {\n    obj[key] = value;\n  }\n\n  return obj;\n}\n\nmodule.exports = _defineProperty, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","'use strict';\r\n\r\n// Media.js\r\n// functions to check and get the media query that the window size\r\n// does or does not match\r\n\r\nexport default function() {\r\n\r\n    var _self,\r\n        breakpoints;\r\n\r\n    return {\r\n        init: function(context) {\r\n            _self = this;\r\n\r\n            breakpoints = {\r\n                xsmall: 370,\r\n                small: 625,\r\n                medium: 850,\r\n                large: 1050,\r\n                xlarge: 1215\r\n            };\r\n\r\n            if (context) {\r\n                return this.meetsContext(context);\r\n            }\r\n        },\r\n\r\n        getCurrentQuery: function() {\r\n            var mq = 'mq-small', // TODO Decide small image size - 675px?\r\n                winWidth = document.body.clientWidth;\r\n            if (winWidth > breakpoints.large) {\r\n                mq = 'mq-large'; // TODO Decide large image size - 1440px?\r\n            } else if (winWidth > breakpoints.small) {\r\n                mq = 'mq-medium'; // TODO Decide medium image size - 1050px?\r\n            }\r\n\r\n            return mq;\r\n        },\r\n\r\n        meetsContext: function(context) {\r\n            var meets = false,\r\n                mq = this.getCurrentQuery();\r\n\r\n            if (context === mq || context === '') {\r\n                meets = true;\r\n            }\r\n\r\n            return meets;\r\n        }\r\n    };\r\n\r\n}\r\n","'use strict';\r\n\r\nimport Media from '../../../js/imports/media.js';\r\nimport debounce from 'lodash.debounce';\r\n\r\nclass HpHero {\r\n    internal;\r\n    ui;\r\n    wrap;\r\n\r\n    constructor(options) {\r\n        if (options.wrap) {\r\n            this.wrap = options.wrap;\r\n        }\r\n\r\n        if (this.wrap) {\r\n            this.ui = {\r\n                imgLgEl: document.querySelector('.js-hero-image-lg'),\r\n                imgMdEl: document.querySelector('.js-hero-image-md'),\r\n                imgSmEl: document.querySelector('.js-hero-image-sm'),\r\n                heroLinkEl: document.querySelector('.js-hero-link'),\r\n                headingEl: this.wrap.querySelector('.js-hero-heading-wrap'),\r\n                h1El: document.querySelector('.js-hero-h1'),\r\n                h2El: document.querySelector('.js-hero-h2'),\r\n                imageContainerEl: document.querySelector('.js-hero-image-container')\r\n            };\r\n\r\n            this.internal = {\r\n                data: this.wrap.querySelector('.js-hero-data'),\r\n                imgLg: false,\r\n                imgMd: false,\r\n                imgSm: false,\r\n                heroLink: false,\r\n                heroTarget: false,\r\n                h1: false,\r\n                h2: false,\r\n                imgSmLoaded: false,\r\n                imgMdLoaded: false,\r\n                imgLgLoaded: false,\r\n                resizeTimeout: 0\r\n            };\r\n\r\n            if (this.internal.data) {\r\n                this.setHeroData();\r\n            }\r\n\r\n            this.onLoad();\r\n        }\r\n    }\r\n\r\n    onLoad() {\r\n        window.addEventListener('load', () => this.windowLoad());\r\n    }\r\n\r\n    onResize() {\r\n        window.addEventListener('resize', () => this.windowResize());\r\n    }\r\n\r\n    windowLoad() {\r\n        this.showHeading();\r\n    }\r\n\r\n    windowResize() {\r\n        this.loadImages();\r\n    }\r\n\r\n    showHeading() {\r\n        // console.log('inside show heading');\r\n        if (this.ui.headingEl) {\r\n            this.ui.headingEl.classList.add('is-visible');\r\n        }\r\n    }\r\n\r\n    setHeroData() {\r\n        const rnd = Math.floor(Math.random() * this.internal.data.childElementCount),\r\n            selectedHero = this.internal.data.children[rnd],\r\n            replaceParens = function (uri) {\r\n                return uri.replace(/\\(/g, '%28').replace(/\\)/g, '%29');\r\n            };\r\n\r\n        this.internal.imgLg = encodeURI(selectedHero.getAttribute('data-hero-image-lg'));\r\n        this.internal.imgLg = replaceParens(this.internal.imgLg);\r\n        this.internal.imgMd = encodeURI(selectedHero.getAttribute('data-hero-image-md'));\r\n        this.internal.imgMd = replaceParens(this.internal.imgMd);\r\n        this.internal.imgSm = encodeURI(selectedHero.getAttribute('data-hero-image-sm'));\r\n        this.internal.imgSm = replaceParens(this.internal.imgSm);\r\n\r\n        this.internal.h1 = selectedHero.getAttribute('data-hero-h1');\r\n        this.internal.h2 = selectedHero.getAttribute('data-hero-h2');\r\n        this.internal.heroLink = encodeURI(selectedHero.getAttribute('data-hero-link'));\r\n        this.internal.heroTarget = selectedHero.getAttribute('data-hero-target');\r\n\r\n        this.setHeroEl();\r\n    }\r\n\r\n    setHeroEl() {\r\n        if (this.ui.h1El) {\r\n            this.ui.h1El.innerHTML = this.internal.h1;\r\n        }\r\n\r\n        if (this.ui.h2El) {\r\n            this.ui.h2El.innerHTML = this.internal.h2;\r\n        }\r\n\r\n        if (this.ui.heroLinkEl) {\r\n            this.ui.heroLinkEl.href = this.internal.heroLink;\r\n\r\n            if (this.internal.heroTarget) {\r\n                this.ui.heroLinkEl.setAttribute('target', this.internal.heroTarget);\r\n            }\r\n        }\r\n\r\n        if (this.internal.imgMd && this.internal.imgLg) {\r\n            if (this.ui.imgMdEl && this.ui.imgLgEl) {\r\n                this.loadImages();\r\n                this.onResize();\r\n            }\r\n        }\r\n\r\n        // Show link icon on correct heading\r\n        if (this.internal.heroLink) {\r\n            if (this.internal.h1 && this.internal.h2) {\r\n                this.ui.h2El.classList.add('show-link-icon');\r\n            } else if (this.internal.h1 && !this.internal.h2) {\r\n                this.ui.h1El.classList.add('show-link-icon');\r\n            } else if (!this.internal.h1 && this.internal.h2) {\r\n                this.ui.h2El.classList.add('show-link-icon');\r\n            }\r\n        }\r\n    }\r\n\r\n    createImageLink(imagePath) {\r\n        const link = document.createElement('link');\r\n        link.type = 'text/css';\r\n        link.rel = 'preload';\r\n        link.fetchPriority = 'high';\r\n        document.head.appendChild(link);\r\n        link.href = imagePath;\r\n    }\r\n\r\n    loadImages() {\r\n        if (!this.internal.imgSmLoaded || !this.internal.imgMedLoaded || !this.internal.imgLgLoaded) {\r\n            var img = new Image();\r\n\r\n            if (!this.internal.imgSm && !this.internal.imgSmLoaded && Media().init('mq-small')) {\r\n                this.internal.imgSmLoaded = true;\r\n                this.createImageLink(img.src);\r\n            } else if (this.internal.imgSm && !this.internal.imgSmLoaded && Media().init('mq-small')) {\r\n                // Load small image\r\n                img.src = this.internal.imgSm;\r\n                this.internal.imgSmLoaded = true;\r\n                this.createImageLink(img.src);\r\n\r\n            } else if (!this.internal.imgMdLoaded && Media().init('mq-medium')) {\r\n                // Load medium image\r\n                img.src = this.internal.imgMd;\r\n                this.internal.imgMdLoaded = true;\r\n                this.createImageLink(img.src);\r\n            } else if (!this.internal.imgLgLoaded && Media().init('mq-large')) {\r\n                // Load large image\r\n                img.src = this.internal.imgLg;\r\n                this.internal.imgLgLoaded = true;\r\n                this.createImageLink(img.src);\r\n            }\r\n\r\n            img.onload = () => {\r\n                this.ui.imageContainerEl.classList.add('is-loaded');\r\n            };\r\n        }\r\n    }\r\n}\r\n\r\nexport default HpHero;\r\n","/**\n * lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\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/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\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\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 objectToString = objectProto.toString;\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 * 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\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        result = wait - timeSinceLastCall;\n\n    return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\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        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\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 && (type == 'object' || type == 'function');\n}\n\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 && typeof value == 'object';\n}\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) && objectToString.call(value) == symbolTag);\n}\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 = value.replace(reTrim, '');\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 = debounce;\n"],"names":["module","exports","obj","key","value","Object","defineProperty","enumerable","configurable","writable","__esModule","breakpoints","init","context","xsmall","small","medium","large","xlarge","this","meetsContext","getCurrentQuery","mq","winWidth","document","body","clientWidth","meets","HpHero","options","wrap","ui","imgLgEl","querySelector","imgMdEl","imgSmEl","heroLinkEl","headingEl","h1El","h2El","imageContainerEl","internal","data","imgLg","imgMd","imgSm","heroLink","heroTarget","h1","h2","imgSmLoaded","imgMdLoaded","imgLgLoaded","resizeTimeout","setHeroData","onLoad","window","addEventListener","windowLoad","windowResize","showHeading","loadImages","classList","add","rnd","Math","floor","random","childElementCount","selectedHero","children","replaceParens","uri","replace","encodeURI","getAttribute","setHeroEl","innerHTML","href","setAttribute","onResize","imagePath","link","createElement","type","rel","fetchPriority","head","appendChild","imgMedLoaded","img","Image","src","createImageLink","onload","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","parseInt","freeGlobal","g","freeSelf","self","root","Function","objectToString","prototype","toString","nativeMax","max","nativeMin","min","now","Date","isObject","toNumber","isObjectLike","call","isSymbol","other","valueOf","isBinary","test","slice","func","wait","lastArgs","lastThis","maxWait","result","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","TypeError","invokeFunc","time","args","thisArg","undefined","apply","leadingEdge","setTimeout","timerExpired","shouldInvoke","timeSinceLastCall","trailingEdge","remainingWait","debounced","isInvoking","arguments","cancel","clearTimeout","flush"],"sourceRoot":""}