{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/lodash/_baseGetTag.js","webpack:///./node_modules/lodash/isObjectLike.js","webpack:///./node_modules/lodash/isObject.js","webpack:///./node_modules/lodash/_root.js","webpack:///./node_modules/lodash/foreach.js","webpack:///./node_modules/lodash/_Symbol.js","webpack:///./node_modules/lodash/_freeGlobal.js","webpack:///./node_modules/lodash/isArray.js","webpack:///(webpack)/buildin/module.js","webpack:///./node_modules/lodash/isLength.js","webpack:///./node_modules/lodash/isArrayLike.js","webpack:///./node_modules/lodash/throttle.js","webpack:///./src/scripts/main.js","webpack:///./src/scripts/architecture/componentRepository.js","webpack:///./node_modules/lodash/_arrayEach.js","webpack:///./node_modules/lodash/_baseEach.js","webpack:///./node_modules/lodash/_baseForOwn.js","webpack:///./node_modules/lodash/_baseFor.js","webpack:///./node_modules/lodash/_createBaseFor.js","webpack:///./node_modules/lodash/keys.js","webpack:///./node_modules/lodash/_arrayLikeKeys.js","webpack:///./node_modules/lodash/_baseTimes.js","webpack:///./node_modules/lodash/isArguments.js","webpack:///./node_modules/lodash/_baseIsArguments.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/lodash/_getRawTag.js","webpack:///./node_modules/lodash/_objectToString.js","webpack:///./node_modules/lodash/isBuffer.js","webpack:///./node_modules/lodash/stubFalse.js","webpack:///./node_modules/lodash/_isIndex.js","webpack:///./node_modules/lodash/isTypedArray.js","webpack:///./node_modules/lodash/_baseIsTypedArray.js","webpack:///./node_modules/lodash/_baseUnary.js","webpack:///./node_modules/lodash/_nodeUtil.js","webpack:///./node_modules/lodash/_baseKeys.js","webpack:///./node_modules/lodash/_isPrototype.js","webpack:///./node_modules/lodash/_nativeKeys.js","webpack:///./node_modules/lodash/_overArg.js","webpack:///./node_modules/lodash/isFunction.js","webpack:///./node_modules/lodash/_createBaseEach.js","webpack:///./node_modules/lodash/_castFunction.js","webpack:///./node_modules/lodash/identity.js","webpack:///./src/scripts/components/global-navigation-component.js","webpack:///./src/scripts/components/case-menu-component.js","webpack:///./node_modules/lodash/debounce.js","webpack:///./node_modules/lodash/now.js","webpack:///./node_modules/lodash/toNumber.js","webpack:///./node_modules/lodash/isSymbol.js","webpack:///./src/scripts/components/custom-dropdown.js","webpack:///./src/scripts/helpers/scrollTo.js","webpack:///./src/scripts/components/lightbox-component.js","webpack:///./src/scripts/components/scrolled-animate-in.js","webpack:///./src/scripts/vendor/SVG4Everybody.js","webpack:///./node_modules/blazy/blazy.js","webpack:///./node_modules/objectFitPolyfill/dist/objectFitPolyfill.min.js","webpack:///./node_modules/object-fit-images/dist/ofi.common-js.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","getRawTag","objectToString","nullTag","undefinedTag","symToStringTag","undefined","type","freeGlobal","freeSelf","self","root","Function","arrayEach","baseEach","castFunction","isArray","collection","iteratee","global","Array","webpackPolyfill","deprecate","paths","children","MAX_SAFE_INTEGER","isFunction","isLength","length","debounce","isObject","FUNC_ERROR_TEXT","func","wait","options","leading","trailing","TypeError","maxWait","_SVG4Everybody2","default","_objectFitImages2","window","blazy","Blazy","isMobile","mq","matchMedia","WidthChange","matches","addListener","addEventListener","document","cr","ComponentRepository","load","querySelector","onscroll","documentElement","offsetHeight","innerHeight","scrollY","pageYOffset","body","scrollTop","classList","add","remove","getElementById","e","_classCallCheck","this","components","global-navigation-component","GlobalNavigationComponent","case-menu-component","CaseMenuComponent","lightbox-component","LightboxComponent","scrolled-animate-in","ScrolledAnimateIn","loadedComponents","globalInstances","_foreach2","querySelectorAll","componentKey","getAttribute","componentId","Component","newComponentInstance","push","console","warn","instanceId","array","index","baseForOwn","createBaseEach","baseFor","keys","createBaseFor","fromRight","keysFunc","iterable","props","arrayLikeKeys","baseKeys","isArrayLike","baseTimes","isArguments","isBuffer","isIndex","isTypedArray","inherited","isArr","isArg","isBuff","isType","skipIndexes","result","String","baseIsArguments","isObjectLike","objectProto","propertyIsEnumerable","arguments","baseGetTag","argsTag","g","eval","nativeObjectToString","toString","isOwn","tag","unmasked","stubFalse","freeExports","nodeType","freeModule","Buffer","reIsUint","test","baseIsTypedArray","baseUnary","nodeUtil","nodeIsTypedArray","typedArrayTags","freeProcess","process","types","require","binding","isPrototype","nativeKeys","Ctor","constructor","overArg","transform","arg","asyncTag","funcTag","genTag","proxyTag","eachFunc","identity","elem","main","mainMenuClick","contains","navItem","headerHeight","offsetTop","dropdown","content","dropdownContent","dropdownLabel","sectionIntroes","sectionIntroesY","anchor","innerText","replace","innerHTML","currentArea","updateSelected","links","throttledOnScroll","_throttle2","anchorLinks","log","j","preventDefault","destination","target","hash","getBoundingClientRect","top","_scrollTo2","location","Dropdown","onSelect","now","toNumber","nativeMax","Math","max","nativeMin","min","lastArgs","lastThis","timerId","lastCallTime","lastInvokeTime","maxing","invokeFunc","time","args","thisArg","apply","shouldInvoke","timeSinceLastCall","timerExpired","trailingEdge","setTimeout","timeWaiting","remainingWait","debounced","isInvoking","leadingEdge","cancel","clearTimeout","flush","Date","isSymbol","NAN","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","parseInt","other","valueOf","isBinary","slice","symbolTag","_this","contentElem","innerElem","labelElem","currentSelectionElem","isOpen","toggle","listItems","_loop","selectOption","style","height","onOpen","close","open","option","scroll","element","to","duration","start","change","animateScroll","elapsedTime","position","currentTime","easeInOut","lightbox","lightboxImage","images","removeEventListener","setAttribute","srcElement","src","split","threshold","isAnimatedIn","animateIn","__WEBPACK_AMD_DEFINE_RESULT__","define","embed","parent","svg","fragment","createDocumentFragment","viewBox","hasAttribute","clone","cloneNode","childNodes","appendChild","firstChild","loadreadystatechange","xhr","onreadystatechange","readyState","cachedDocument","_cachedDocument","implementation","createHTMLDocument","responseText","_cachedTarget","_embeds","splice","map","item","id","getSVGAncestor","node","nodeName","toLowerCase","parentNode","rawopts","polyfill","opts","inIframe","navigator","userAgent","match","requests","requestAnimationFrame","uses","getElementsByTagName","numberOfSvgUseElementsToBypass","oninterval","use","attributeName","validate","removeChild","srcSplit","url","shift","join","XMLHttpRequest","send","__WEBPACK_AMD_DEFINE_FACTORY__","_source","_viewport","_isRetina","_supportClosest","_attrSrc","_attrSrcset","createStyleSheet","a","all","addRule","currentStyle","k","removeRule","scope","util","_util","elements","destroyed","error","offset","success","selector","separator","containerClass","container","errorClass","breakpoints","loadInvisible","successClass","validateDelay","saveViewportOffsetDelay","srcset","Element","closest","devicePixelRatio","left","revalidate","initialize","force","opt","loadElement","each","destroy","unbindEvent","validateT","saveViewportOffsetT","count","throttle","saveViewportOffset","width","screen","nodelist","unshift","toArray","bindEvent","elementInView","hasClass","ele","rect","elementContainer","containerRect","inView","right","bottom","containerRectWithOffset","viewport","offsetWidth","dataSrc","getAttr","dataSrcSplitted","isImage","equal","isPicture","img","Image","onErrorHandler","addClass","onLoadHandler","handleSources","backgroundImage","itemLoaded","source","handleSource","removeAttr","attr","dataAttr","setAttr","removeAttribute","str","className","indexOf","clientHeight","innerWidth","clientWidth","fn","attachEvent","capture","passive","detachEvent","minDelay","lastCall","dataset","objectFit","objectPosition","getComputedStyle","getPropertyValue","overflow","display","max-width","max-height","min-width","min-height","margin-top","margin-right","margin-bottom","margin-left","marginTop","marginLeft","Event","complete","objectFitPolyfill","OFI","propRegex","testImg","object-position","supportsObjectFit","supportsObjectPosition","supportsOFI","supportsCurrentSrc","currentSrc","nativeGetAttribute","nativeSetAttribute","autoModeEnabled","setPlaceholder","placeholder","w","h","createPlaceholder","onImageReady","callback","naturalWidth","fixOne","el","parsed","fontFamily","exec","getStyle","ofi","skipTest","naturalHeight","descriptors","prop","set","ss","keepSrcUsable","err","picturefill","pf","_","evaled","fillImg","reselect","curSrc","supported","polyfillCurrentSrc","backgroundPosition","backgroundRepeat","backgroundOrigin","backgroundSize","fix","imgs","startAutoMode","tagName","watchMQ","getOfiImageMaybe","HTMLImageElement","hijackAttributes"],"mappings":"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","file":"./main.bundle.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 = 12);\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","/**\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","/**\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 arrayEach = require('./_arrayEach'),\n baseEach = require('./_baseEach'),\n castFunction = require('./_castFunction'),\n isArray = require('./isArray');\n\n/**\n * Iterates over elements of `collection` and invokes `iteratee` for each element.\n * The iteratee is invoked with three arguments: (value, index|key, collection).\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * **Note:** As with other \"Collections\" methods, objects with a \"length\"\n * property are iterated like arrays. To avoid this behavior use `_.forIn`\n * or `_.forOwn` for object iteration.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @alias each\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n * @see _.forEachRight\n * @example\n *\n * _.forEach([1, 2], function(value) {\n * console.log(value);\n * });\n * // => Logs `1` then `2`.\n *\n * _.forEach({ 'a': 1, 'b': 2 }, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a' then 'b' (iteration order is not guaranteed).\n */\nfunction forEach(collection, iteratee) {\n var func = isArray(collection) ? arrayEach : baseEach;\n return func(collection, castFunction(iteratee));\n}\n\nmodule.exports = forEach;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","/**\n * Checks if `value` is classified as an `Array` object.\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 array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","module.exports = function(module) {\r\n\tif (!module.webpackPolyfill) {\r\n\t\tmodule.deprecate = function() {};\r\n\t\tmodule.paths = [];\r\n\t\t// module.parent = undefined by default\r\n\t\tif (!module.children) module.children = [];\r\n\t\tObject.defineProperty(module, \"loaded\", {\r\n\t\t\tenumerable: true,\r\n\t\t\tget: function() {\r\n\t\t\t\treturn module.l;\r\n\t\t\t}\r\n\t\t});\r\n\t\tObject.defineProperty(module, \"id\", {\r\n\t\t\tenumerable: true,\r\n\t\t\tget: function() {\r\n\t\t\t\treturn module.i;\r\n\t\t\t}\r\n\t\t});\r\n\t\tmodule.webpackPolyfill = 1;\r\n\t}\r\n\treturn module;\r\n};\r\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\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 valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n","var isFunction = require('./isFunction'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\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 array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n","var debounce = require('./debounce'),\n isObject = require('./isObject');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` 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 throttled 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 `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n}\n\nmodule.exports = throttle;\n","// Main javascript entry point\r\n// Should handle bootstrapping/starting application\r\n\r\n'use strict';\r\n\r\nimport ComponentRepository from './architecture/componentRepository';\r\nimport svg4Everybody from './vendor/SVG4Everybody.js';\r\nimport Blazy from 'blazy';\r\nimport 'objectFitPolyfill';\r\nimport objectFitImages from 'object-fit-images';\r\n\r\nsvg4Everybody();\r\nobjectFitImages();\r\n\r\nwindow.blazy = new Blazy();\r\n\r\n\r\nvar matchMedia = true;\r\nvar isMobile = false;\r\nconst mq = window.matchMedia(\"(max-width: 767px)\");\r\n\r\n// media query event handler\r\nif (matchMedia) {\r\n mq.addListener(WidthChange);\r\n WidthChange(mq);\r\n}\r\n\r\n// media query change\r\nfunction WidthChange(mq) {\r\n if (mq.matches) {\r\n isMobile = true;\r\n }\r\n}\r\n\r\nwindow.addEventListener(\"resize\", function () {\r\n WidthChange(mq);\r\n});\r\n\r\ndocument.addEventListener(\"DOMContentLoaded\", function () {\r\n window.cr = new ComponentRepository();\r\n window.cr.load();\r\n\r\n \r\n\r\n});\r\n\r\nvar casePage = document.querySelector('.case-page');\r\n\r\n\r\nif (casePage) {\r\n\r\n //if (isMobile) {\r\n // //move factbox to different location on mobile\r\n // var factBox = document.querySelector('.case-page__factbox');\r\n // var factBoxContent = factBox.innerHTML;\r\n // var factsMobile = document.querySelector(\".facts-mobile\");\r\n // factsMobile.classList = \"text-module module-padding\";\r\n // var factboxMobile = document.querySelector(\".factbox-mobile\");\r\n // factboxMobile.innerHTML = factBoxContent;\r\n // factBox.remove();\r\n //}\r\n\r\n window.onscroll = function () {\r\n var pageHeight = document.documentElement.offsetHeight,\r\n windowHeight = window.innerHeight,\r\n scrollPosition = window.scrollY || window.pageYOffset || document.body.scrollTop + (document.documentElement && document.documentElement.scrollTop || 0);\r\n\r\n if (pageHeight - 150 <= windowHeight + scrollPosition && !isMobile) {\r\n document.querySelector('.global-navigation').classList.add('global-navigation--open');\r\n }\r\n else {\r\n document.querySelector('.global-navigation').classList.remove('global-navigation--open');\r\n }\r\n };\r\n}\r\n\r\n\r\nvar blackLayer = document.getElementById('blackLayer');\r\n\r\nblackLayer.addEventListener('click', function (e) {\r\n document.querySelector('.global-navigation').classList.remove('global-navigation--open');\r\n});\r\n\r\n","'use strict';\n\nimport foreach from 'lodash/foreach';\nimport GlobalNavigationComponent from '../components/global-navigation-component.js';\nimport CaseMenuComponent from '../components/case-menu-component.js';\nimport LightboxComponent from '../components/lightbox-component.js';\nimport ScrolledAnimateIn from '../components/scrolled-animate-in.js';\n\nexport default class ComponentRepository {\n\n constructor() {\n this.components = {\n 'global-navigation-component': GlobalNavigationComponent,\n 'case-menu-component': CaseMenuComponent,\n 'lightbox-component': LightboxComponent,\n 'scrolled-animate-in': ScrolledAnimateIn\n };\n\n this.loadedComponents = [];\n\n this.globalInstances = {}; // This will hold components with a data-component-id, that can be queried globally\n }\n\n // Loads all controllers\n load() {\n foreach(document.querySelectorAll('[data-component]'), function (c) {\n var componentKey = c.getAttribute('data-component');\n var componentId = c.getAttribute('data-component-id');\n var Component = this.components[componentKey];\n if (Component) {\n let newComponentInstance = new Component(c)\n this.loadedComponents.push(newComponentInstance);\n\n // If the component has a component ID, add it to globalInstances\n if (componentId) {\n this.globalInstances[componentId] = newComponentInstance;\n }\n } else {\n console.warn('unable to find component: ', componentKey);\n }\n }.bind(this));\n }\n\n /**\n * Gets a specific instance of a component, based on its ID.\n */\n getInstance(instanceId) {\n if (instanceId) {\n return this.globalInstances[instanceId];\n }\n }\n}\n","/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\nmodule.exports = arrayEach;\n","var baseForOwn = require('./_baseForOwn'),\n createBaseEach = require('./_createBaseEach');\n\n/**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\nvar baseEach = createBaseEach(baseForOwn);\n\nmodule.exports = baseEach;\n","var baseFor = require('./_baseFor'),\n keys = require('./keys');\n\n/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n}\n\nmodule.exports = baseForOwn;\n","var createBaseFor = require('./_createBaseFor');\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nmodule.exports = baseFor;\n","/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\nmodule.exports = createBaseFor;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeys = require('./_baseKeys'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;\n","var baseTimes = require('./_baseTimes'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isIndex = require('./_isIndex'),\n isTypedArray = require('./isTypedArray');\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 * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = arrayLikeKeys;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nmodule.exports = baseTimes;\n","var baseIsArguments = require('./_baseIsArguments'),\n isObjectLike = require('./isObjectLike');\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/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\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 `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;\n","var g;\r\n\r\n// This works in non-strict mode\r\ng = (function() {\r\n\treturn this;\r\n})();\r\n\r\ntry {\r\n\t// This works if eval is allowed (see CSP)\r\n\tg = g || Function(\"return this\")() || (1, eval)(\"this\");\r\n} catch (e) {\r\n\t// This works if the window reference is available\r\n\tif (typeof window === \"object\") g = window;\r\n}\r\n\r\n// g can still be undefined, but nothing to do about it...\r\n// We return undefined, instead of nothing here, so it's\r\n// easier to handle this case. if(!global) { ...}\r\n\r\nmodule.exports = g;\r\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","var root = require('./_root'),\n stubFalse = require('./stubFalse');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = stubFalse;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n","var baseIsTypedArray = require('./_baseIsTypedArray'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nmodule.exports = isTypedArray;\n","var baseGetTag = require('./_baseGetTag'),\n isLength = require('./isLength'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nmodule.exports = baseUnary;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nmodule.exports = nodeUtil;\n","var isPrototype = require('./_isPrototype'),\n nativeKeys = require('./_nativeKeys');\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 * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeys;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nmodule.exports = isPrototype;\n","var overArg = require('./_overArg');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nmodule.exports = nativeKeys;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nmodule.exports = overArg;\n","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\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 a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n","var isArrayLike = require('./isArrayLike');\n\n/**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseEach(eachFunc, fromRight) {\n return function(collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(collection);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (iteratee(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n}\n\nmodule.exports = createBaseEach;\n","var identity = require('./identity');\n\n/**\n * Casts `value` to `identity` if it's not a function.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Function} Returns cast function.\n */\nfunction castFunction(value) {\n return typeof value == 'function' ? value : identity;\n}\n\nmodule.exports = castFunction;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n","'use strict';\r\n\r\nexport default class GlobalNavigationComponent {\r\n constructor(elem) {\r\n var main = document.querySelector('main');\r\n var mainMenuClick = document.querySelector('.global-navigation__fixed');\r\n\r\n \r\n\r\n var toggleButton = elem.querySelector('[data-js=\"toggle-button\"]');\r\n toggleButton.addEventListener('click', function () {\r\n if (elem.classList.contains('global-navigation--open')) {\r\n elem.classList.remove('global-navigation--open');\r\n mainMenuClick.classList.remove('navWidth');\r\n } else {\r\n elem.classList.add('global-navigation--open');\r\n mainMenuClick.classList.add('navWidth');\r\n }\r\n });\r\n\r\n mainMenuClick.addEventListener('click', function () {\r\n var navItem = document.querySelector('.global-navigation');\r\n\r\n if (navItem.classList.contains('global-navigation--open')) {\r\n navItem.classList.remove('global-navigation--open');\r\n mainMenuClick.classList.remove('navWidth');\r\n } else {\r\n navItem.classList.add('global-navigation--open');\r\n mainMenuClick.classList.add('navWidth');\r\n }\r\n });\r\n\r\n main.addEventListener('click', function () {\r\n elem.classList.remove('global-navigation--open');\r\n mainMenuClick.classList.remove('navWidth');\r\n });\r\n }\r\n}\r\n","import Throttle from \"lodash/throttle\";\nimport Dropdown from \"../components/custom-dropdown\";\n\nimport ScrollTo from '../helpers/scrollTo';\n\n'use strict';\n\nexport default class CaseMenuComponent {\n constructor(elem) {\n var headerHeight = elem.offsetTop;\n var dropdown = elem.querySelector('[data-js=\"case-menu-dropdown\"]');\n var caseMenuContainer = document.querySelector('[data-js=\"case-menu-container\"]');\n var content = elem.querySelector('[data-js=\"case-menu-content\"]');\n var dropdownContent = elem.querySelector('[data-js=\"dropdown-content\"]');\n var dropdownLabel = elem.querySelector('[data-js=\"dropdown-label\"]');\n var sectionIntroes = document.querySelectorAll('[data-js=\"section-title\"]');\n var sectionIntroesY = [];\n for (var i = 0; i < sectionIntroes.length; i++) {\n sectionIntroesY[i] = sectionIntroes[i].offsetTop;\n }\n\n for (var i = 0; i < sectionIntroes.length; i++) {\n var anchor = sectionIntroes[i].innerText.replace(/\\s/g, \"-\");\n content.innerHTML += '' + sectionIntroes[i].innerText + '';\n dropdownContent.innerHTML +=\n '
  • ' +\n '' +\n sectionIntroes[i].innerText +\n '' +\n '
  • ';\n \n }\n\n var currentArea = 100;\n\n var updateSelected = function () {\n if (sectionIntroes.length > currentArea) {\n dropdownLabel.innerHTML = sectionIntroes[currentArea].innerText;\n }\n\n var links = content.querySelectorAll('a');\n for (var i = 0; i < links.length; i++) {\n links[i].classList.remove('selected');\n }\n if (links.length > currentArea) {\n links[currentArea].classList.add('selected');\n }\n };\n\n updateSelected();\n\n var onScroll = function () {\n var scrollTop = window.scrollY || window.pageYOffset;\n if (scrollTop > headerHeight) {\n if (!elem.classList.contains('case-menu--sticky')) {\n elem.classList.add('case-menu--sticky');\n }\n } else {\n if (elem.classList.contains('case-menu--sticky')) {\n elem.classList.remove('case-menu--sticky');\n }\n }\n\n for (var i = 0; i < sectionIntroesY.length; i++) {\n if (scrollTop + window.innerHeight / 2.0 > sectionIntroesY[i] && (i == sectionIntroesY.length - 1 || scrollTop + window.innerHeight / 2.0 < sectionIntroesY[i + 1])) {\n if (currentArea != i) {\n currentArea = i;\n updateSelected();\n }\n }\n }\n\n\n };\n\n let throttledOnScroll = Throttle(onScroll, 50, { leading: false });\n window.addEventListener('scroll', throttledOnScroll);\n\n // capture click events on all links in the menu and scroll to their destination\n var anchorLinks = elem.querySelectorAll('a');\n console.log('All anchor links', anchorLinks);\n \n for (var j = 0; j < anchorLinks.length; j++) {\n anchorLinks[j].addEventListener('click', function (e) {\n console.log('anchor clicked', e);\n e.preventDefault();\n var destinationElem = document.querySelector(e.target.hash);\n var destination = destinationElem.getBoundingClientRect().top + window.pageYOffset;\n ScrollTo(destination, 500);\n\n window.location.hash = e.target.hash;\n });\n }\n\n var dropdownInstance = new Dropdown(dropdown, {\n onSelect: function (value) {\n console.log('Dropdown clicked', value);\n }\n });\n\n }\n}\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 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 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","var isObject = require('./isObject'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\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/**\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 = toNumber;\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","'use strict';\n\nexport default class Dropdown {\n constructor(elem, options) {\n this.elem = elem;\n this.options = options;\n this.contentElem = elem.querySelector('.custom-select__content');\n this.innerElem = elem.querySelector('.custom-select__inner');\n this.labelElem = elem.querySelector('.custom-select__label');\n this.currentSelectionElem = this.labelElem.querySelector('.current-selection');\n this.isOpen = false;\n\n this.labelElem.addEventListener('click', this.toggle.bind(this));\n\n let listItems = this.innerElem.querySelectorAll('li');\n for (let i = 0; i < listItems.length; i++) {\n listItems[i].addEventListener('click', function () {\n this.selectOption(listItems[i]);\n }.bind(this));\n }\n }\n\n open() {\n\n this.elem.classList.add('custom-select--open');\n this.contentElem.style.height = this.innerElem.getBoundingClientRect().height + 'px';\n this.isOpen = true;\n\n if (this.options && this.options.onOpen) {\n this.options.onOpen();\n }\n }\n\n close() {\n this.elem.classList.remove('custom-select--open');\n this.contentElem.style.height = 0;\n this.isOpen = false;\n }\n\n toggle() {\n this.isOpen ? this.close() : this.open();\n }\n\n selectOption(option) {\n this.currentSelectionElem.querySelector('.label').innerText = option.innerText;\n this.close();\n this.elem.classList.remove('custom-select--error');\n this.labelElem.classList.add('custom-select__label--selected')\n\n if (this.options && this.options.onSelect) {\n this.options.onSelect(option.innerText);\n }\n }\n\n displayError() {\n this.elem.classList.add('custom-select--error');\n }\n}","'use strict';\n\nfunction scroll(element, to, duration) {\n var start = element.scrollTop,\n change = to - start,\n increment = 20;\n\n var animateScroll = function (elapsedTime) {\n elapsedTime += increment;\n var position = easeInOut(elapsedTime, start, change, duration);\n element.scrollTop = position;\n if (elapsedTime < duration) {\n setTimeout(function () {\n animateScroll(elapsedTime);\n }, increment);\n }\n };\n\n animateScroll(0);\n}\n\n/*\n * This is the exported Scroll function, that encapsulates calling \"scroll\" with both the element and body.\n */\nfunction scrollTo(to, duration) {\n scroll(document.querySelector('body'), to, duration);\n scroll(document.documentElement, to, duration);\n}\n\nfunction easeInOut(currentTime, start, change, duration) {\n currentTime /= duration / 2;\n if (currentTime < 1) {\n return change / 2 * currentTime * currentTime + start;\n }\n currentTime -= 1;\n return -change / 2 * (currentTime * (currentTime - 2) - 1) + start;\n}\n\nexport default scrollTo;\n","'use strict';\r\n\r\nexport default class LightboxComponent {\r\n constructor(elem) {\r\n\r\n\r\n var matchMedia = true;\r\n var isMobile = false;\r\n const mq = window.matchMedia(\"(max-width: 767px)\");\r\n\r\n // media query event handler\r\n if (matchMedia) {\r\n mq.addListener(WidthChange);\r\n WidthChange(mq);\r\n }\r\n\r\n // media query change\r\n function WidthChange(mq) {\r\n if (mq.matches) {\r\n isMobile = true;\r\n }\r\n }\r\n\r\n window.addEventListener(\"resize\", function () {\r\n WidthChange(mq);\r\n });\r\n\r\n\r\n var lightbox = document.querySelector('[data-js=\"lightbox\"]');\r\n var lightboxImage = lightbox.querySelector('img');\r\n var images = document.querySelectorAll('img');\r\n\r\n console.log(isMobile);\r\n if (!isMobile) {\r\n\r\n\r\n\r\n for (var i = 0; i < images.length; i++) {\r\n images[i].addEventListener('click', function (elem) {\r\n lightbox.classList.add('lightbox--open');\r\n\r\n setTimeout(function () {\r\n lightbox.classList.add('lightbox--animate');\r\n }, 20);\r\n\r\n\r\n lightboxImage.setAttribute('src', elem.srcElement.src.split(\"?\")[0]);\r\n });\r\n }\r\n\r\n lightbox.addEventListener('click', function () {\r\n lightbox.classList.remove('lightbox--animate');\r\n\r\n setTimeout(function () {\r\n lightbox.classList.remove('lightbox--open');\r\n }, 20);\r\n });\r\n\r\n window.addEventListener('scroll', function () {\r\n lightbox.classList.remove('lightbox--animate');\r\n\r\n setTimeout(function () {\r\n lightbox.classList.remove('lightbox--open');\r\n }, 20);\r\n });\r\n }\r\n else {\r\n\r\n //lightbox.classList.remove('lightbox--open');\r\n //lightbox.classList.remove('lightbox--animate');\r\n //images.removeEventListener('click', function () { });\r\n lightbox.removeEventListener('click', function () { }); \r\n }\r\n }\r\n}","'use strict';\n\nimport foreach from 'lodash/foreach';\nimport throttle from 'lodash/throttle';\n\nexport default class ScrolledAnimateIn {\n constructor(elem) {\n this.elem = elem;\n this.threshold = 0; // how many pixels the element must be above the bottom of the screen before it animates in\n this.isAnimatedIn = false;\n\n // Set up scroll events to determine color\n const throttledOnScroll = throttle(this.animateIn.bind(this), 50, { leading: false }).bind(this);\n window.addEventListener('scroll', throttledOnScroll);\n\n this.animateIn();\n }\n\n animateIn () {\n if (this.isAnimatedIn) {\n return;\n }\n\n if (this.elem.getBoundingClientRect().top < (window.innerHeight - this.threshold)) {\n this.elem.classList.add('scrolled-animate-in--animated-in');\n this.isAnimatedIn = true;\n }\n }\n}\n","!function(root, factory) {\n /*\"function\" == typeof define && define.amd ? // AMD. Register as an anonymous module unless amdModuleId is set\n define([], function() {\n return root.svg4everybody = factory();\n }) : \"object\" == typeof module && module.exports ? // Node. Does not work with strict CommonJS, but\n // only CommonJS-like environments that support module.exports,\n // like Node.\n module.exports = factory() : root.svg4everybody = factory();*/\n\n if (typeof define === 'function' && define.amd) {\n // AMD. Register fadePager as an anonymous module\n define(factory);\n } else if (typeof exports === 'object') {\n // Node. Does not work with strict CommonJS, but\n // only CommonJS-like environments that support module.exports,\n // like Node.\n module.exports = factory();\n } else {\n // Browser globals. Register fadePager on window\n root.svg4everybody = factory();\n }\n\n}(this, function() {\n /*! svg4everybody v2.1.9 | github.com/jonathantneal/svg4everybody */\n function embed(parent, svg, target) {\n // if the target exists\n if (target) {\n // create a document fragment to hold the contents of the target\n var fragment = document.createDocumentFragment(), viewBox = !svg.hasAttribute(\"viewBox\") && target.getAttribute(\"viewBox\");\n // conditionally set the viewBox on the svg\n viewBox && svg.setAttribute(\"viewBox\", viewBox);\n // copy the contents of the clone into the fragment\n for (// clone the target\n var clone = target.cloneNode(!0); clone.childNodes.length; ) {\n fragment.appendChild(clone.firstChild);\n }\n // append the fragment into the svg\n parent.appendChild(fragment);\n }\n }\n function loadreadystatechange(xhr) {\n // listen to changes in the request\n xhr.onreadystatechange = function() {\n // if the request is ready\n if (4 === xhr.readyState) {\n // get the cached html document\n var cachedDocument = xhr._cachedDocument;\n // ensure the cached html document based on the xhr response\n cachedDocument || (cachedDocument = xhr._cachedDocument = document.implementation.createHTMLDocument(\"\"), \n cachedDocument.body.innerHTML = xhr.responseText, xhr._cachedTarget = {}), // clear the xhr embeds list and embed each item\n xhr._embeds.splice(0).map(function(item) {\n // get the cached target\n var target = xhr._cachedTarget[item.id];\n // ensure the cached target\n target || (target = xhr._cachedTarget[item.id] = cachedDocument.getElementById(item.id)), \n // embed the target into the svg\n embed(item.parent, item.svg, target);\n });\n }\n }, // test the ready state change immediately\n xhr.onreadystatechange();\n }\n function svg4everybody(rawopts) {\n function oninterval() {\n // while the index exists in the live collection\n for (// get the cached index\n var index = 0; index < uses.length; ) {\n // get the current \n var use = uses[index], parent = use.parentNode, svg = getSVGAncestor(parent), src = use.getAttribute(\"xlink:href\") || use.getAttribute(\"href\");\n if (!src && opts.attributeName && (src = use.getAttribute(opts.attributeName)), \n svg && src) {\n if (polyfill) {\n if (!opts.validate || opts.validate(src, svg, use)) {\n // remove the element\n parent.removeChild(use);\n // parse the src and get the url and id\n var srcSplit = src.split(\"#\"), url = srcSplit.shift(), id = srcSplit.join(\"#\");\n // if the link is external\n if (url.length) {\n // get the cached xhr request\n var xhr = requests[url];\n // ensure the xhr request exists\n xhr || (xhr = requests[url] = new XMLHttpRequest(), xhr.open(\"GET\", url), xhr.send(), \n xhr._embeds = []), // add the svg and id as an item to the xhr embeds list\n xhr._embeds.push({\n parent: parent,\n svg: svg,\n id: id\n }), // prepare the xhr ready state change event\n loadreadystatechange(xhr);\n } else {\n // embed the local id into the svg\n embed(parent, svg, document.getElementById(id));\n }\n } else {\n // increase the index when the previous value was not \"valid\"\n ++index, ++numberOfSvgUseElementsToBypass;\n }\n }\n } else {\n // increase the index when the previous value was not \"valid\"\n ++index;\n }\n }\n // continue the interval\n (!uses.length || uses.length - numberOfSvgUseElementsToBypass > 0) && requestAnimationFrame(oninterval, 67);\n }\n var polyfill, opts = Object(rawopts), newerIEUA = /\\bTrident\\/[567]\\b|\\bMSIE (?:9|10)\\.0\\b/, webkitUA = /\\bAppleWebKit\\/(\\d+)\\b/, olderEdgeUA = /\\bEdge\\/12\\.(\\d+)\\b/, edgeUA = /\\bEdge\\/.(\\d+)\\b/, inIframe = window.top !== window.self;\n polyfill = \"polyfill\" in opts ? opts.polyfill : newerIEUA.test(navigator.userAgent) || (navigator.userAgent.match(olderEdgeUA) || [])[1] < 10547 || (navigator.userAgent.match(webkitUA) || [])[1] < 537 || edgeUA.test(navigator.userAgent) && inIframe;\n // create xhr requests object\n var requests = {}, requestAnimationFrame = window.requestAnimationFrame || setTimeout, uses = document.getElementsByTagName(\"use\"), numberOfSvgUseElementsToBypass = 0;\n // conditionally start the interval if the polyfill is active\n polyfill && oninterval();\n }\n function getSVGAncestor(node) {\n for (var svg = node; \"svg\" !== svg.nodeName.toLowerCase() && (svg = svg.parentNode); ) {}\n return svg;\n }\n return svg4everybody;\n});","/*!\n hey, [be]Lazy.js - v1.8.2 - 2016.10.25\n A fast, small and dependency free lazy load script (https://github.com/dinbror/blazy)\n (c) Bjoern Klinggaard - @bklinggaard - http://dinbror.dk/blazy\n*/\n;\n(function(root, blazy) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register bLazy as an anonymous module\n define(blazy);\n } else if (typeof exports === 'object') {\n // Node. Does not work with strict CommonJS, but\n // only CommonJS-like environments that support module.exports,\n // like Node.\n module.exports = blazy();\n } else {\n // Browser globals. Register bLazy on window\n root.Blazy = blazy();\n }\n})(this, function() {\n 'use strict';\n\n //private vars\n var _source, _viewport, _isRetina, _supportClosest, _attrSrc = 'src', _attrSrcset = 'srcset';\n\n // constructor\n return function Blazy(options) {\n //IE7- fallback for missing querySelectorAll support\n if (!document.querySelectorAll) {\n var s = document.createStyleSheet();\n document.querySelectorAll = function(r, c, i, j, a) {\n a = document.all, c = [], r = r.replace(/\\[for\\b/gi, '[htmlFor').split(',');\n for (i = r.length; i--;) {\n s.addRule(r[i], 'k:v');\n for (j = a.length; j--;) a[j].currentStyle.k && c.push(a[j]);\n s.removeRule(0);\n }\n return c;\n };\n }\n\n //options and helper vars\n var scope = this;\n var util = scope._util = {};\n util.elements = [];\n util.destroyed = true;\n scope.options = options || {};\n scope.options.error = scope.options.error || false;\n scope.options.offset = scope.options.offset || 100;\n scope.options.root = scope.options.root || document;\n scope.options.success = scope.options.success || false;\n scope.options.selector = scope.options.selector || '.b-lazy';\n scope.options.separator = scope.options.separator || '|';\n scope.options.containerClass = scope.options.container;\n scope.options.container = scope.options.containerClass ? document.querySelectorAll(scope.options.containerClass) : false;\n scope.options.errorClass = scope.options.errorClass || 'b-error';\n scope.options.breakpoints = scope.options.breakpoints || false;\n scope.options.loadInvisible = scope.options.loadInvisible || false;\n scope.options.successClass = scope.options.successClass || 'b-loaded';\n scope.options.validateDelay = scope.options.validateDelay || 25;\n scope.options.saveViewportOffsetDelay = scope.options.saveViewportOffsetDelay || 50;\n scope.options.srcset = scope.options.srcset || 'data-srcset';\n scope.options.src = _source = scope.options.src || 'data-src';\n _supportClosest = Element.prototype.closest;\n _isRetina = window.devicePixelRatio > 1;\n _viewport = {};\n _viewport.top = 0 - scope.options.offset;\n _viewport.left = 0 - scope.options.offset;\n\n\n /* public functions\n ************************************/\n scope.revalidate = function() {\n initialize(scope);\n };\n scope.load = function(elements, force) {\n var opt = this.options;\n if (elements && elements.length === undefined) {\n loadElement(elements, force, opt);\n } else {\n each(elements, function(element) {\n loadElement(element, force, opt);\n });\n }\n };\n scope.destroy = function() { \n var util = scope._util;\n if (scope.options.container) {\n each(scope.options.container, function(object) {\n unbindEvent(object, 'scroll', util.validateT);\n });\n }\n unbindEvent(window, 'scroll', util.validateT);\n unbindEvent(window, 'resize', util.validateT);\n unbindEvent(window, 'resize', util.saveViewportOffsetT);\n util.count = 0;\n util.elements.length = 0;\n util.destroyed = true;\n };\n\n //throttle, ensures that we don't call the functions too often\n util.validateT = throttle(function() {\n validate(scope);\n }, scope.options.validateDelay, scope);\n util.saveViewportOffsetT = throttle(function() {\n saveViewportOffset(scope.options.offset);\n }, scope.options.saveViewportOffsetDelay, scope);\n saveViewportOffset(scope.options.offset);\n\n //handle multi-served image src (obsolete)\n each(scope.options.breakpoints, function(object) {\n if (object.width >= window.screen.width) {\n _source = object.src;\n return false;\n }\n });\n\n // start lazy load\n setTimeout(function() {\n initialize(scope);\n }); // \"dom ready\" fix\n\n };\n\n\n /* Private helper functions\n ************************************/\n function initialize(self) {\n var util = self._util;\n // First we create an array of elements to lazy load\n util.elements = toArray(self.options);\n util.count = util.elements.length;\n // Then we bind resize and scroll events if not already binded\n if (util.destroyed) {\n util.destroyed = false;\n if (self.options.container) {\n each(self.options.container, function(object) {\n bindEvent(object, 'scroll', util.validateT);\n });\n }\n bindEvent(window, 'resize', util.saveViewportOffsetT);\n bindEvent(window, 'resize', util.validateT);\n bindEvent(window, 'scroll', util.validateT);\n }\n // And finally, we start to lazy load.\n validate(self);\n }\n\n function validate(self) {\n var util = self._util;\n for (var i = 0; i < util.count; i++) {\n var element = util.elements[i];\n if (elementInView(element, self.options) || hasClass(element, self.options.successClass)) {\n self.load(element);\n util.elements.splice(i, 1);\n util.count--;\n i--;\n }\n }\n if (util.count === 0) {\n self.destroy();\n }\n }\n\n function elementInView(ele, options) {\n var rect = ele.getBoundingClientRect();\n\n if(options.container && _supportClosest){\n // Is element inside a container?\n var elementContainer = ele.closest(options.containerClass);\n if(elementContainer){\n var containerRect = elementContainer.getBoundingClientRect();\n // Is container in view?\n if(inView(containerRect, _viewport)){\n var top = containerRect.top - options.offset;\n var right = containerRect.right + options.offset;\n var bottom = containerRect.bottom + options.offset;\n var left = containerRect.left - options.offset;\n var containerRectWithOffset = {\n top: top > _viewport.top ? top : _viewport.top,\n right: right < _viewport.right ? right : _viewport.right,\n bottom: bottom < _viewport.bottom ? bottom : _viewport.bottom,\n left: left > _viewport.left ? left : _viewport.left\n };\n // Is element in view of container?\n return inView(rect, containerRectWithOffset);\n } else {\n return false;\n }\n }\n } \n return inView(rect, _viewport);\n }\n\n function inView(rect, viewport){\n // Intersection\n return rect.right >= viewport.left &&\n rect.bottom >= viewport.top && \n rect.left <= viewport.right && \n rect.top <= viewport.bottom;\n }\n\n function loadElement(ele, force, options) {\n // if element is visible, not loaded or forced\n if (!hasClass(ele, options.successClass) && (force || options.loadInvisible || (ele.offsetWidth > 0 && ele.offsetHeight > 0))) {\n var dataSrc = getAttr(ele, _source) || getAttr(ele, options.src); // fallback to default 'data-src'\n if (dataSrc) {\n var dataSrcSplitted = dataSrc.split(options.separator);\n var src = dataSrcSplitted[_isRetina && dataSrcSplitted.length > 1 ? 1 : 0];\n var srcset = getAttr(ele, options.srcset);\n var isImage = equal(ele, 'img');\n var parent = ele.parentNode;\n var isPicture = parent && equal(parent, 'picture');\n // Image or background image\n if (isImage || ele.src === undefined) {\n var img = new Image();\n // using EventListener instead of onerror and onload\n // due to bug introduced in chrome v50 \n // (https://productforums.google.com/forum/#!topic/chrome/p51Lk7vnP2o)\n var onErrorHandler = function() {\n if (options.error) options.error(ele, \"invalid\");\n addClass(ele, options.errorClass);\n unbindEvent(img, 'error', onErrorHandler);\n unbindEvent(img, 'load', onLoadHandler);\n };\n var onLoadHandler = function() {\n // Is element an image\n if (isImage) {\n if(!isPicture) {\n handleSources(ele, src, srcset);\n }\n // or background-image\n } else {\n ele.style.backgroundImage = 'url(\"' + src + '\")';\n }\n itemLoaded(ele, options);\n unbindEvent(img, 'load', onLoadHandler);\n unbindEvent(img, 'error', onErrorHandler);\n };\n \n // Picture element\n if (isPicture) {\n img = ele; // Image tag inside picture element wont get preloaded\n each(parent.getElementsByTagName('source'), function(source) {\n handleSource(source, _attrSrcset, options.srcset);\n });\n }\n bindEvent(img, 'error', onErrorHandler);\n bindEvent(img, 'load', onLoadHandler);\n handleSources(img, src, srcset); // Preload\n\n } else { // An item with src like iframe, unity games, simpel video etc\n ele.src = src;\n itemLoaded(ele, options);\n }\n } else {\n // video with child source\n if (equal(ele, 'video')) {\n each(ele.getElementsByTagName('source'), function(source) {\n handleSource(source, _attrSrc, options.src);\n });\n ele.load();\n itemLoaded(ele, options);\n } else {\n if (options.error) options.error(ele, \"missing\");\n addClass(ele, options.errorClass);\n }\n }\n }\n }\n\n function itemLoaded(ele, options) {\n addClass(ele, options.successClass);\n if (options.success) options.success(ele);\n // cleanup markup, remove data source attributes\n removeAttr(ele, options.src);\n removeAttr(ele, options.srcset);\n each(options.breakpoints, function(object) {\n removeAttr(ele, object.src);\n });\n }\n\n function handleSource(ele, attr, dataAttr) {\n var dataSrc = getAttr(ele, dataAttr);\n if (dataSrc) {\n setAttr(ele, attr, dataSrc);\n removeAttr(ele, dataAttr);\n }\n }\n\n function handleSources(ele, src, srcset){\n if(srcset) {\n setAttr(ele, _attrSrcset, srcset); //srcset\n }\n ele.src = src; //src \n }\n\n function setAttr(ele, attr, value){\n ele.setAttribute(attr, value);\n }\n\n function getAttr(ele, attr) {\n return ele.getAttribute(attr);\n }\n\n function removeAttr(ele, attr){\n ele.removeAttribute(attr); \n }\n\n function equal(ele, str) {\n return ele.nodeName.toLowerCase() === str;\n }\n\n function hasClass(ele, className) {\n return (' ' + ele.className + ' ').indexOf(' ' + className + ' ') !== -1;\n }\n\n function addClass(ele, className) {\n if (!hasClass(ele, className)) {\n ele.className += ' ' + className;\n }\n }\n\n function toArray(options) {\n var array = [];\n var nodelist = (options.root).querySelectorAll(options.selector);\n for (var i = nodelist.length; i--; array.unshift(nodelist[i])) {}\n return array;\n }\n\n function saveViewportOffset(offset) {\n _viewport.bottom = (window.innerHeight || document.documentElement.clientHeight) + offset;\n _viewport.right = (window.innerWidth || document.documentElement.clientWidth) + offset;\n }\n\n function bindEvent(ele, type, fn) {\n if (ele.attachEvent) {\n ele.attachEvent && ele.attachEvent('on' + type, fn);\n } else {\n ele.addEventListener(type, fn, { capture: false, passive: true });\n }\n }\n\n function unbindEvent(ele, type, fn) {\n if (ele.detachEvent) {\n ele.detachEvent && ele.detachEvent('on' + type, fn);\n } else {\n ele.removeEventListener(type, fn, { capture: false, passive: true });\n }\n }\n\n function each(object, fn) {\n if (object && fn) {\n var l = object.length;\n for (var i = 0; i < l && fn(object[i], i) !== false; i++) {}\n }\n }\n\n function throttle(fn, minDelay, scope) {\n var lastCall = 0;\n return function() {\n var now = +new Date();\n if (now - lastCall < minDelay) {\n return;\n }\n lastCall = now;\n fn.apply(scope, arguments);\n };\n }\n});\n","!function(){\"use strict\";if(\"undefined\"!=typeof window){var t=window.navigator.userAgent.match(/Edge\\/(\\d{2})\\./),n=!!t&&16<=parseInt(t[1],10);if(!(\"objectFit\"in document.documentElement.style!=!1)||n){var o=function(t,e,i){var n,o,l,a,d;if((i=i.split(\" \")).length<2&&(i[1]=i[0]),\"x\"===t)n=i[0],o=i[1],l=\"left\",a=\"right\",d=e.clientWidth;else{if(\"y\"!==t)return;n=i[1],o=i[0],l=\"top\",a=\"bottom\",d=e.clientHeight}if(n!==l&&o!==l){if(n!==a&&o!==a)return\"center\"===n||\"50%\"===n?(e.style[l]=\"50%\",void(e.style[\"margin-\"+l]=d/-2+\"px\")):void(0<=n.indexOf(\"%\")?(n=parseInt(n))<50?(e.style[l]=n+\"%\",e.style[\"margin-\"+l]=d*(n/-100)+\"px\"):(n=100-n,e.style[a]=n+\"%\",e.style[\"margin-\"+a]=d*(n/-100)+\"px\"):e.style[l]=n);e.style[a]=\"0\"}else e.style[l]=\"0\"},l=function(t){var e=t.dataset?t.dataset.objectFit:t.getAttribute(\"data-object-fit\"),i=t.dataset?t.dataset.objectPosition:t.getAttribute(\"data-object-position\");e=e||\"cover\",i=i||\"50% 50%\";var n=t.parentNode;return function(t){var e=window.getComputedStyle(t,null),i=e.getPropertyValue(\"position\"),n=e.getPropertyValue(\"overflow\"),o=e.getPropertyValue(\"display\");i&&\"static\"!==i||(t.style.position=\"relative\"),\"hidden\"!==n&&(t.style.overflow=\"hidden\"),o&&\"inline\"!==o||(t.style.display=\"block\"),0===t.clientHeight&&(t.style.height=\"100%\"),-1===t.className.indexOf(\"object-fit-polyfill\")&&(t.className=t.className+\" object-fit-polyfill\")}(n),function(t){var e=window.getComputedStyle(t,null),i={\"max-width\":\"none\",\"max-height\":\"none\",\"min-width\":\"0px\",\"min-height\":\"0px\",top:\"auto\",right:\"auto\",bottom:\"auto\",left:\"auto\",\"margin-top\":\"0px\",\"margin-right\":\"0px\",\"margin-bottom\":\"0px\",\"margin-left\":\"0px\"};for(var n in i)e.getPropertyValue(n)!==i[n]&&(t.style[n]=i[n])}(t),t.style.position=\"absolute\",t.style.width=\"auto\",t.style.height=\"auto\",\"scale-down\"===e&&(e=t.clientWidthn.clientWidth||\"contain\"===e&&t.clientWidth el.width || ofi.img.naturalHeight > el.height) {\n\t\t\t\tel.style.backgroundSize = 'contain';\n\t\t\t} else {\n\t\t\t\tel.style.backgroundSize = 'auto';\n\t\t\t}\n\t\t});\n\t} else {\n\t\tel.style.backgroundSize = style['object-fit'].replace('none', 'auto').replace('fill', '100% 100%');\n\t}\n\n\tonImageReady(ofi.img, function (img) {\n\t\tsetPlaceholder(el, img.naturalWidth, img.naturalHeight);\n\t});\n}\n\nfunction keepSrcUsable(el) {\n\tvar descriptors = {\n\t\tget: function get(prop) {\n\t\t\treturn el[OFI].img[prop ? prop : 'src'];\n\t\t},\n\t\tset: function set(value, prop) {\n\t\t\tel[OFI].img[prop ? prop : 'src'] = value;\n\t\t\tnativeSetAttribute.call(el, (\"data-ofi-\" + prop), value); // preserve for any future cloneNode\n\t\t\tfixOne(el);\n\t\t\treturn value;\n\t\t}\n\t};\n\tObject.defineProperty(el, 'src', descriptors);\n\tObject.defineProperty(el, 'currentSrc', {\n\t\tget: function () { return descriptors.get('currentSrc'); }\n\t});\n\tObject.defineProperty(el, 'srcset', {\n\t\tget: function () { return descriptors.get('srcset'); },\n\t\tset: function (ss) { return descriptors.set(ss, 'srcset'); }\n\t});\n}\n\nfunction hijackAttributes() {\n\tfunction getOfiImageMaybe(el, name) {\n\t\treturn el[OFI] && el[OFI].img && (name === 'src' || name === 'srcset') ? el[OFI].img : el;\n\t}\n\tif (!supportsObjectPosition) {\n\t\tHTMLImageElement.prototype.getAttribute = function (name) {\n\t\t\treturn nativeGetAttribute.call(getOfiImageMaybe(this, name), name);\n\t\t};\n\n\t\tHTMLImageElement.prototype.setAttribute = function (name, value) {\n\t\t\treturn nativeSetAttribute.call(getOfiImageMaybe(this, name), name, String(value));\n\t\t};\n\t}\n}\n\nfunction fix(imgs, opts) {\n\tvar startAutoMode = !autoModeEnabled && !imgs;\n\topts = opts || {};\n\timgs = imgs || 'img';\n\n\tif ((supportsObjectPosition && !opts.skipTest) || !supportsOFI) {\n\t\treturn false;\n\t}\n\n\t// use imgs as a selector or just select all images\n\tif (imgs === 'img') {\n\t\timgs = document.getElementsByTagName('img');\n\t} else if (typeof imgs === 'string') {\n\t\timgs = document.querySelectorAll(imgs);\n\t} else if (!('length' in imgs)) {\n\t\timgs = [imgs];\n\t}\n\n\t// apply fix to all\n\tfor (var i = 0; i < imgs.length; i++) {\n\t\timgs[i][OFI] = imgs[i][OFI] || {\n\t\t\tskipTest: opts.skipTest\n\t\t};\n\t\tfixOne(imgs[i]);\n\t}\n\n\tif (startAutoMode) {\n\t\tdocument.body.addEventListener('load', function (e) {\n\t\t\tif (e.target.tagName === 'IMG') {\n\t\t\t\tfix(e.target, {\n\t\t\t\t\tskipTest: opts.skipTest\n\t\t\t\t});\n\t\t\t}\n\t\t}, true);\n\t\tautoModeEnabled = true;\n\t\timgs = 'img'; // reset to a generic selector for watchMQ\n\t}\n\n\t// if requested, watch media queries for object-fit change\n\tif (opts.watchMQ) {\n\t\twindow.addEventListener('resize', fix.bind(null, imgs, {\n\t\t\tskipTest: opts.skipTest\n\t\t}));\n\t}\n}\n\nfix.supportsObjectFit = supportsObjectFit;\nfix.supportsObjectPosition = supportsObjectPosition;\n\nhijackAttributes();\n\nmodule.exports = fix;\n"],"sourceRoot":""}