{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/lodash/throttle.js","webpack:///./node_modules/core-js/modules/_global.js","webpack:///./node_modules/core-js/modules/_descriptors.js","webpack:///./node_modules/core-js/modules/_wks.js","webpack:///./node_modules/core-js/modules/_hide.js","webpack:///./node_modules/core-js/modules/_is-object.js","webpack:///./node_modules/core-js/modules/_fails.js","webpack:///./node_modules/core-js/modules/_object-dp.js","webpack:///./node_modules/core-js/modules/_an-object.js","webpack:///./node_modules/core-js/modules/_redefine.js","webpack:///./node_modules/core-js/modules/_has.js","webpack:///./node_modules/core-js/modules/_uid.js","webpack:///./node_modules/core-js/modules/_core.js","webpack:///./node_modules/core-js/modules/_defined.js","webpack:///./node_modules/core-js/modules/_property-desc.js","webpack:///./node_modules/focus-trap/index.js","webpack:///./node_modules/core-js/modules/_fix-re-wks.js","webpack:///./node_modules/core-js/modules/_ie8-dom-define.js","webpack:///./node_modules/core-js/modules/_dom-create.js","webpack:///./node_modules/core-js/modules/_to-primitive.js","webpack:///./node_modules/core-js/modules/_shared.js","webpack:///./node_modules/core-js/modules/_library.js","webpack:///./node_modules/core-js/modules/_to-iobject.js","webpack:///./node_modules/lodash/isObject.js","webpack:///./node_modules/core-js/modules/_flags.js","webpack:///./node_modules/core-js/modules/_iterators.js","webpack:///./node_modules/core-js/modules/_shared-key.js","webpack:///./node_modules/core-js/modules/_enum-bug-keys.js","webpack:///./node_modules/core-js/modules/es6.regexp.replace.js","webpack:///./node_modules/lodash/_root.js","webpack:///./node_modules/lodash/_Symbol.js","webpack:///./node_modules/core-js/modules/es6.string.link.js","webpack:///./node_modules/core-js/modules/_export.js","webpack:///./node_modules/core-js/modules/_ctx.js","webpack:///./node_modules/core-js/modules/web.dom.iterable.js","webpack:///./node_modules/core-js/modules/_cof.js","webpack:///./node_modules/core-js/modules/_object-keys.js","webpack:///./node_modules/core-js/modules/_object-keys-internal.js","webpack:///./node_modules/core-js/modules/_to-integer.js","webpack:///./node_modules/core-js/modules/_set-to-string-tag.js","webpack:///./node_modules/core-js/modules/_is-regexp.js","webpack:///./node_modules/lodash/debounce.js","webpack:///./node_modules/lodash/now.js","webpack:///./node_modules/lodash/_freeGlobal.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/lodash/toNumber.js","webpack:///./node_modules/lodash/isSymbol.js","webpack:///./node_modules/lodash/_baseGetTag.js","webpack:///./node_modules/lodash/_getRawTag.js","webpack:///./node_modules/lodash/_objectToString.js","webpack:///./node_modules/lodash/isObjectLike.js","webpack:///./node_modules/core-js/modules/es6.regexp.to-string.js","webpack:///./node_modules/core-js/modules/es6.regexp.flags.js","webpack:///./node_modules/core-js/modules/_string-html.js","webpack:///./node_modules/core-js/modules/_a-function.js","webpack:///./node_modules/core-js/modules/es6.array.iterator.js","webpack:///./node_modules/core-js/modules/_add-to-unscopables.js","webpack:///./node_modules/core-js/modules/_iter-step.js","webpack:///./node_modules/core-js/modules/_iobject.js","webpack:///./node_modules/core-js/modules/_iter-define.js","webpack:///./node_modules/core-js/modules/_iter-create.js","webpack:///./node_modules/core-js/modules/_object-create.js","webpack:///./node_modules/core-js/modules/_object-dps.js","webpack:///./node_modules/core-js/modules/_array-includes.js","webpack:///./node_modules/core-js/modules/_to-length.js","webpack:///./node_modules/core-js/modules/_to-absolute-index.js","webpack:///./node_modules/core-js/modules/_html.js","webpack:///./node_modules/core-js/modules/_object-gpo.js","webpack:///./node_modules/core-js/modules/_to-object.js","webpack:///./node_modules/tabbable/index.js","webpack:///./node_modules/xtend/immutable.js","webpack:///./node_modules/core-js/modules/es6.regexp.split.js","webpack:///./node_modules/core-js/modules/es6.regexp.constructor.js","webpack:///./node_modules/core-js/modules/_inherit-if-required.js","webpack:///./node_modules/core-js/modules/_set-proto.js","webpack:///./node_modules/core-js/modules/_object-gopd.js","webpack:///./node_modules/core-js/modules/_object-pie.js","webpack:///./node_modules/core-js/modules/_object-gopn.js","webpack:///./node_modules/core-js/modules/_set-species.js","webpack:///./website/vendor/scripts/fabrique/modules/required.js","webpack:///./website/assets/scripts/modules/component.js","webpack:///./website/components/atoms/background-image/background-image.js","webpack:///./website/components/atoms/button/button.js","webpack:///./website/components/atoms/picture/picture.js","webpack:///./website/components/atoms/share-button/share-button.js","webpack:///./website/vendor/scripts/fabrique/modules/supports-passive-listener.js","webpack:///./website/components/atoms/tooltip/tooltip.js","webpack:///./website/vendor/scripts/fabrique/modules/insert-script.js","webpack:///./website/components/atoms/video-embed/video-embed.js","webpack:///./website/vendor/scripts/fabrique/modules/random-hash.js","webpack:///./website/components/atoms/video/video.js","webpack:///./website/components/molecules/back-to-top/back-to-top.js","webpack:///./website/components/molecules/form/form.js","webpack:///./website/components/organisms/gallery-composition/gallery-composition.js","webpack:///./website/components/organisms/grid-advanced/grid-advanced.js","webpack:///./website/components/organisms/grid-basic/grid-basic.js","webpack:///./website/components/organisms/header-advanced/header-advanced.js","webpack:///./website/components/organisms/home-panels/home-panels.js","webpack:///./website/components/organisms/story-slide/story-slide.js","webpack:///./website/components/structures/menu-bar/menu-bar.js","webpack:///./website/components/structures/skip-to-main/skip-to-main.js","webpack:///./website/components/structures/ticker-bar/ticker-bar.js","webpack:///./website/vendor/scripts/fabrique/modules/fire-custom-event.js","webpack:///./website/vendor/scripts/fabrique/modules/console-hello.js","webpack:///./website/assets/scripts/main.js","webpack:///./website/vendor/scripts/fabrique/modules/external-links-target-blank.js","webpack:///./website/vendor/scripts/fabrique/modules/prevent-transitions-on-resize.js","webpack:///./website/vendor/scripts/fabrique/modules/browser-update.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","debounce","isObject","func","wait","options","leading","trailing","TypeError","global","window","Math","self","Function","__g","a","store","uid","USE_SYMBOL","dP","createDesc","f","it","exec","e","anObject","IE8_DOM_DEFINE","toPrimitive","O","P","Attributes","hide","has","SRC","$toString","TPL","split","inspectSource","val","safe","isFunction","join","String","this","id","px","random","concat","undefined","toString","core","version","__e","bitmap","configurable","writable","activeFocusDelay","trapQueue","tabbable","xtend","activeFocusTraps","activateTrap","trap","length","activeTrap","pause","trapIndex","indexOf","splice","push","deactivateTrap","unpause","delay","fn","setTimeout","element","userOptions","doc","document","container","querySelector","config","returnFocusOnDeactivate","escapeDeactivates","state","firstTabbableNode","lastTabbableNode","nodeFocusedBeforeActivation","mostRecentlyFocusedNode","active","paused","activate","activateOptions","updateTabbableNodes","activeElement","onActivate","addListeners","deactivate","removeListeners","deactivateOptions","clearTimeout","onDeactivate","returnFocus","previousActiveElement","tryFocus","getNodeForOption","getInitialFocusNode","addEventListener","checkFocusIn","checkPointerDown","capture","passive","checkClick","checkKey","removeEventListener","optionName","optionValue","node","Error","contains","target","clickOutsideDeactivates","isFocusable","allowOutsideClick","preventDefault","Document","stopImmediatePropagation","keyCode","isEscapeEvent","isTabEvent","shiftKey","checkTab","tabbableNodes","focus","tagName","toLowerCase","select","isSelectableInput","redefine","fails","defined","wks","KEY","SYMBOL","fns","strfn","rxfn","RegExp","string","arg","is","createElement","S","valueOf","copyright","IObject","type","that","result","ignoreCase","multiline","unicode","sticky","shared","REPLACE","$replace","searchValue","replaceValue","freeGlobal","freeSelf","root","createHTML","url","ctx","$export","source","own","out","exp","IS_FORCED","F","IS_GLOBAL","G","IS_STATIC","IS_PROTO","IS_BIND","B","expProto","U","W","R","aFunction","b","apply","arguments","$iterators","getKeys","Iterators","ITERATOR","TO_STRING_TAG","ArrayValues","Array","DOMIterables","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","collections","NAME","explicit","Collection","proto","slice","$keys","enumBugKeys","keys","toIObject","arrayIndexOf","IE_PROTO","names","ceil","floor","isNaN","def","TAG","tag","stat","cof","MATCH","isRegExp","now","toNumber","nativeMax","max","nativeMin","min","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","maxing","invokeFunc","time","args","thisArg","leadingEdge","timerExpired","shouldInvoke","timeSinceLastCall","trailingEdge","timeWaiting","remainingWait","debounced","isInvoking","cancel","flush","Date","g","isSymbol","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","parseInt","other","replace","isBinary","test","baseGetTag","isObjectLike","getRawTag","objectToString","symToStringTag","objectProto","nativeObjectToString","isOwn","unmasked","$flags","DESCRIPTORS","define","flags","quot","attribute","p1","addToUnscopables","step","iterated","kind","_t","_i","_k","index","Arguments","UNSCOPABLES","ArrayProto","done","propertyIsEnumerable","LIBRARY","$iterCreate","setToStringTag","getPrototypeOf","BUGGY","returnThis","Base","Constructor","next","DEFAULT","IS_SET","FORCED","methods","IteratorPrototype","getMethod","DEF_VALUES","VALUES_BUG","$native","$default","$entries","$anyNative","entries","values","descriptor","dPs","Empty","createDict","iframeDocument","iframe","style","display","appendChild","src","contentWindow","open","write","lt","close","Properties","defineProperties","toLength","toAbsoluteIndex","IS_INCLUDES","$this","el","fromIndex","toInteger","documentElement","toObject","ObjectProto","constructor","candidateSelectors","candidateSelector","matches","Element","msMatchesSelector","webkitMatchesSelector","candidate","candidateTabindex","regularTabbables","orderedTabbables","candidates","querySelectorAll","includeContainer","unshift","isNodeMatchingSelectorTabbable","getTabindex","documentOrder","tabIndex","sort","sortOrderedTabbables","map","isNodeMatchingSelectorFocusable","isInput","isRadio","checked","nodes","getCheckedRadio","ownerDocument","isTabbableRadio","isNonTabbableRadio","disabled","isHiddenInput","offsetParent","getComputedStyle","visibility","isHidden","isTabbable","focusableCandidateSelector","tabindexAttr","getAttribute","contentEditable","isContentEditable","SPLIT","$split","_split","$push","LENGTH","NPCG","separator","limit","separator2","match","lastIndex","lastLength","output","lastLastIndex","splitLimit","separatorCopy","inheritIfRequired","gOPN","$RegExp","re1","re2","CORRECT_NEW","tiRE","piRE","fiU","proxy","set","setPrototypeOf","C","check","buggy","__proto__","pIE","gOPD","getOwnPropertyDescriptor","hiddenKeys","getOwnPropertyNames","SPECIES","required","Component","init","BackgroundImageComponent","observer","parentNode","removeAttribute","documentMode","forceLoad","requestAnimationFrame","attachObserver","destroy","disconnectObserver","IntersectionObserver","onIntersect","rootMargin","innerHeight","observe","unobserve","disconnect","changes","change","intersectionRatio","loadImage","classList","add","parseStyle","remove","text","innerText","innerHTML","instance","ButtonComponent","initIllumination","fromColor","toColor","textColor","enableIllumination","disableIllumination","mouseX","mouseY","listener","event","box","getBoundingClientRect","clientX","left","width","clientY","top","height","applyIllumination","removeIllumination","background","color","PictureComponent","picture","img","sources","replaceSources","replaceImg","newSource","setAttribute","newImg","ShareButtonComponent","href","textSpan","title","openSharePopup","innerWidth","outerHeight","outerWidth","supportsPassiveListener","supportsPassive","TooltipComponent","closeButton","initTooltip","popupMove","popupLeave","popupFocus","popupBlur","popupClick","popupClose","stopPropagation","throttledScroll","throttle","scrollHandler","throttledResize","processHorizontalPopupAlignment","repositionPopupVertically","isClick","isHover","isFocus","rect","offsetHeight","getRectHorizontalScreenPosition","rectHorizontalScreenPosition","insertScript","callback","getElementById","script","timestamp","body","onload","VideoEmbedComponent","hitTarget","autoplay","videoId","videoType","iframeId","player","initVideo","onHitTargetClick","click","insertVimeoContainer","insertYouTubeContainer","Vimeo","vimeoOptions","autopause","byline","loop","muted","playsinline","portrait","speed","transparent","Player","removeChild","div","className","replaceChild","afterLoad","YT","playerVars","hd","showinfo","modestbranding","rel","origin","location","protocol","host","events","onReady","setPlaybackQuality","playVideo","youtubeLoaded","onYouTubeIframeAPIReady","VideoComponent","video","currentTime","ended","play","BackToTopComponent","link","onLinkClick","scroll","pageXOffset","behavior","FormComponent","submitButton","preventMultipleSubmits","GalleryCompositionComponent","initOverlay","overlay","wrapper","thumbnailItems","thumbnails","itemsContainer","items","buttonClose","buttonDetails","buttonPrevious","buttonNext","buttonDownload","counter","initAccessibility","initThumbnails","initItems","initButtons","initKeys","initDetails","activeItem","thumbnail","toggleOverlay","item","toggleDetails","navigate","throttled","onKeyDown","toggle","closing","setAriaHiddenOnOtherElements","hideOverlayTabbableElements","overlayFocusTrap","expanded","direct","updateCounter","updateDownloadButton","focusTrap","hidden","nonModalDialogVisibleElements","modalDialogVisibleElements","forEach","GridAdvancedComponent","initScrollMovement","updateScrollMovement","start","distance","offset","TRANSFORM_DISTANCE","finalOffset","transform","GridBasicComponent","HeaderAdvancedComponent","expandButton","region","regionExpanded","toggleCaption","onResize","HomePanelsComponent","variant","transformDistance","percentage","StorySlideComponent","gridContainer","image","arrow","content","wrapperOuter","wrapperInner","initVHFix","initSticky","initArrow","resizeHandlerVHFix","clientHeight","minHeight","resizeHandlerSticky","stick","throttledClick","scrollDown","updateArrow","scrollTo","pageYOffset","opacity","round","MenuBarComponent","toggleOverlayButtons","toggleSearchButtons","menuItems","overlayItems","overlayItemsContainer","bar","buttonSearch","searchForm","searchInput","searchTip","overlayBackground","initSearch","initOverlayBackground","initOverlayMenu","toggleSearch","checkSearchValue","hideSearchTabbableElements","forceClose","searchFormFocusTrap","throttledToggle","toggleOverlayMenuItem","tab","panel","updateSticky","updateStickyFadeOut","updateStickyTransparent","pointerEvents","backgroundColor","white","black","SkipToMainComponent","clickHandler","update","y","blur","TickerBarComponent","buttonPause","buttonPlay","fireCustomEvent","evt","detail","bubbles","cancelable","CustomEvent","createEvent","initCustomEvent","dispatchEvent","message","heartColor","heartBackgroundColor","navigator","userAgent","console","log","displayHelloConsoleMessage","elements","substring","trim","setAllExternalLinksToTargetBlank","timeout","preventTransitionsOnResize","vs","api","insecure","unsupported","showDelay","insertStyles","initNotice","$buoop","attachEvent","showBrowserUpdateMessage","ios","cookie"],"mappings":"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","file":"main-module.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 = 42);\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","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n","var store = require('./_shared')('wks');\nvar uid = require('./_uid');\nvar Symbol = require('./_global').Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n","var dP = require('./_object-dp');\nvar createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n","var anObject = require('./_an-object');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar toPrimitive = require('./_to-primitive');\nvar dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var isObject = require('./_is-object');\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n","var global = require('./_global');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar SRC = require('./_uid')('src');\nvar TO_STRING = 'toString';\nvar $toString = Function[TO_STRING];\nvar TPL = ('' + $toString).split(TO_STRING);\n\nrequire('./_core').inspectSource = function (it) {\n return $toString.call(it);\n};\n\n(module.exports = function (O, key, val, safe) {\n var isFunction = typeof val == 'function';\n if (isFunction) has(val, 'name') || hide(val, 'name', key);\n if (O[key] === val) return;\n if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));\n if (O === global) {\n O[key] = val;\n } else if (!safe) {\n delete O[key];\n hide(O, key, val);\n } else if (O[key]) {\n O[key] = val;\n } else {\n hide(O, key, val);\n }\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, TO_STRING, function toString() {\n return typeof this == 'function' && this[SRC] || $toString.call(this);\n});\n","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n","var core = module.exports = { version: '2.5.7' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var tabbable = require('tabbable');\nvar xtend = require('xtend');\n\nvar activeFocusDelay;\n\nvar activeFocusTraps = (function() {\n var trapQueue = [];\n return {\n activateTrap: function(trap) {\n if (trapQueue.length > 0) {\n var activeTrap = trapQueue[trapQueue.length - 1];\n if (activeTrap !== trap) {\n activeTrap.pause();\n }\n }\n\n var trapIndex = trapQueue.indexOf(trap);\n if (trapIndex === -1) {\n trapQueue.push(trap);\n } else {\n // move this existing trap to the front of the queue\n trapQueue.splice(trapIndex, 1);\n trapQueue.push(trap);\n }\n },\n\n deactivateTrap: function(trap) {\n var trapIndex = trapQueue.indexOf(trap);\n if (trapIndex !== -1) {\n trapQueue.splice(trapIndex, 1);\n }\n\n if (trapQueue.length > 0) {\n trapQueue[trapQueue.length - 1].unpause();\n }\n }\n };\n})();\n\nfunction focusTrap(element, userOptions) {\n var doc = document;\n var container =\n typeof element === 'string' ? doc.querySelector(element) : element;\n\n var config = xtend(\n {\n returnFocusOnDeactivate: true,\n escapeDeactivates: true\n },\n userOptions\n );\n\n var state = {\n firstTabbableNode: null,\n lastTabbableNode: null,\n nodeFocusedBeforeActivation: null,\n mostRecentlyFocusedNode: null,\n active: false,\n paused: false\n };\n\n var trap = {\n activate: activate,\n deactivate: deactivate,\n pause: pause,\n unpause: unpause\n };\n\n return trap;\n\n function activate(activateOptions) {\n if (state.active) return;\n\n updateTabbableNodes();\n\n state.active = true;\n state.paused = false;\n state.nodeFocusedBeforeActivation = doc.activeElement;\n\n var onActivate =\n activateOptions && activateOptions.onActivate\n ? activateOptions.onActivate\n : config.onActivate;\n if (onActivate) {\n onActivate();\n }\n\n addListeners();\n return trap;\n }\n\n function deactivate(deactivateOptions) {\n if (!state.active) return;\n\n clearTimeout(activeFocusDelay);\n\n removeListeners();\n state.active = false;\n state.paused = false;\n\n activeFocusTraps.deactivateTrap(trap);\n\n var onDeactivate =\n deactivateOptions && deactivateOptions.onDeactivate !== undefined\n ? deactivateOptions.onDeactivate\n : config.onDeactivate;\n if (onDeactivate) {\n onDeactivate();\n }\n\n var returnFocus =\n deactivateOptions && deactivateOptions.returnFocus !== undefined\n ? deactivateOptions.returnFocus\n : config.returnFocusOnDeactivate;\n if (returnFocus) {\n delay(function() {\n tryFocus(getReturnFocusNode(state.nodeFocusedBeforeActivation));\n });\n }\n\n return trap;\n }\n\n function pause() {\n if (state.paused || !state.active) return;\n state.paused = true;\n removeListeners();\n }\n\n function unpause() {\n if (!state.paused || !state.active) return;\n state.paused = false;\n updateTabbableNodes();\n addListeners();\n }\n\n function addListeners() {\n if (!state.active) return;\n\n // There can be only one listening focus trap at a time\n activeFocusTraps.activateTrap(trap);\n\n // Delay ensures that the focused element doesn't capture the event\n // that caused the focus trap activation.\n activeFocusDelay = delay(function() {\n tryFocus(getInitialFocusNode());\n });\n\n doc.addEventListener('focusin', checkFocusIn, true);\n doc.addEventListener('mousedown', checkPointerDown, {\n capture: true,\n passive: false\n });\n doc.addEventListener('touchstart', checkPointerDown, {\n capture: true,\n passive: false\n });\n doc.addEventListener('click', checkClick, {\n capture: true,\n passive: false\n });\n doc.addEventListener('keydown', checkKey, {\n capture: true,\n passive: false\n });\n\n return trap;\n }\n\n function removeListeners() {\n if (!state.active) return;\n\n doc.removeEventListener('focusin', checkFocusIn, true);\n doc.removeEventListener('mousedown', checkPointerDown, true);\n doc.removeEventListener('touchstart', checkPointerDown, true);\n doc.removeEventListener('click', checkClick, true);\n doc.removeEventListener('keydown', checkKey, true);\n\n return trap;\n }\n\n function getNodeForOption(optionName) {\n var optionValue = config[optionName];\n var node = optionValue;\n if (!optionValue) {\n return null;\n }\n if (typeof optionValue === 'string') {\n node = doc.querySelector(optionValue);\n if (!node) {\n throw new Error('`' + optionName + '` refers to no known node');\n }\n }\n if (typeof optionValue === 'function') {\n node = optionValue();\n if (!node) {\n throw new Error('`' + optionName + '` did not return a node');\n }\n }\n return node;\n }\n\n function getInitialFocusNode() {\n var node;\n if (getNodeForOption('initialFocus') !== null) {\n node = getNodeForOption('initialFocus');\n } else if (container.contains(doc.activeElement)) {\n node = doc.activeElement;\n } else {\n node = state.firstTabbableNode || getNodeForOption('fallbackFocus');\n }\n\n if (!node) {\n throw new Error(\n 'Your focus-trap needs to have at least one focusable element'\n );\n }\n\n return node;\n }\n\n function getReturnFocusNode(previousActiveElement) {\n var node = getNodeForOption('setReturnFocus');\n return node ? node : previousActiveElement;\n }\n\n // This needs to be done on mousedown and touchstart instead of click\n // so that it precedes the focus event.\n function checkPointerDown(e) {\n if (container.contains(e.target)) return;\n if (config.clickOutsideDeactivates) {\n deactivate({\n returnFocus: !tabbable.isFocusable(e.target)\n });\n return;\n }\n // This is needed for mobile devices.\n // (If we'll only let `click` events through,\n // then on mobile they will be blocked anyways if `touchstart` is blocked.)\n if (config.allowOutsideClick && config.allowOutsideClick(e)) {\n return;\n }\n e.preventDefault();\n }\n\n // In case focus escapes the trap for some strange reason, pull it back in.\n function checkFocusIn(e) {\n // In Firefox when you Tab out of an iframe the Document is briefly focused.\n if (container.contains(e.target) || e.target instanceof Document) {\n return;\n }\n e.stopImmediatePropagation();\n tryFocus(state.mostRecentlyFocusedNode || getInitialFocusNode());\n }\n\n function checkKey(e) {\n if (config.escapeDeactivates !== false && isEscapeEvent(e)) {\n e.preventDefault();\n deactivate();\n return;\n }\n if (isTabEvent(e)) {\n checkTab(e);\n return;\n }\n }\n\n // Hijack Tab events on the first and last focusable nodes of the trap,\n // in order to prevent focus from escaping. If it escapes for even a\n // moment it can end up scrolling the page and causing confusion so we\n // kind of need to capture the action at the keydown phase.\n function checkTab(e) {\n updateTabbableNodes();\n if (e.shiftKey && e.target === state.firstTabbableNode) {\n e.preventDefault();\n tryFocus(state.lastTabbableNode);\n return;\n }\n if (!e.shiftKey && e.target === state.lastTabbableNode) {\n e.preventDefault();\n tryFocus(state.firstTabbableNode);\n return;\n }\n }\n\n function checkClick(e) {\n if (config.clickOutsideDeactivates) return;\n if (container.contains(e.target)) return;\n if (config.allowOutsideClick && config.allowOutsideClick(e)) {\n return;\n }\n e.preventDefault();\n e.stopImmediatePropagation();\n }\n\n function updateTabbableNodes() {\n var tabbableNodes = tabbable(container);\n state.firstTabbableNode = tabbableNodes[0] || getInitialFocusNode();\n state.lastTabbableNode =\n tabbableNodes[tabbableNodes.length - 1] || getInitialFocusNode();\n }\n\n function tryFocus(node) {\n if (node === doc.activeElement) return;\n if (!node || !node.focus) {\n tryFocus(getInitialFocusNode());\n return;\n }\n node.focus();\n state.mostRecentlyFocusedNode = node;\n if (isSelectableInput(node)) {\n node.select();\n }\n }\n}\n\nfunction isSelectableInput(node) {\n return (\n node.tagName &&\n node.tagName.toLowerCase() === 'input' &&\n typeof node.select === 'function'\n );\n}\n\nfunction isEscapeEvent(e) {\n return e.key === 'Escape' || e.key === 'Esc' || e.keyCode === 27;\n}\n\nfunction isTabEvent(e) {\n return e.key === 'Tab' || e.keyCode === 9;\n}\n\nfunction delay(fn) {\n return setTimeout(fn, 0);\n}\n\nmodule.exports = focusTrap;\n","'use strict';\nvar hide = require('./_hide');\nvar redefine = require('./_redefine');\nvar fails = require('./_fails');\nvar defined = require('./_defined');\nvar wks = require('./_wks');\n\nmodule.exports = function (KEY, length, exec) {\n var SYMBOL = wks(KEY);\n var fns = exec(defined, SYMBOL, ''[KEY]);\n var strfn = fns[0];\n var rxfn = fns[1];\n if (fails(function () {\n var O = {};\n O[SYMBOL] = function () { return 7; };\n return ''[KEY](O) != 7;\n })) {\n redefine(String.prototype, KEY, strfn);\n hide(RegExp.prototype, SYMBOL, length == 2\n // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)\n // 21.2.5.11 RegExp.prototype[@@split](string, limit)\n ? function (string, arg) { return rxfn.call(string, this, arg); }\n // 21.2.5.6 RegExp.prototype[@@match](string)\n // 21.2.5.9 RegExp.prototype[@@search](string)\n : function (string) { return rxfn.call(string, this); }\n );\n }\n};\n","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n","var isObject = require('./_is-object');\nvar document = require('./_global').document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var core = require('./_core');\nvar global = require('./_global');\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: require('./_library') ? 'pure' : 'global',\n copyright: '© 2018 Denis Pushkarev (zloirock.ru)'\n});\n","module.exports = false;\n","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject');\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","'use strict';\n// 21.2.5.3 get RegExp.prototype.flags\nvar anObject = require('./_an-object');\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.unicode) result += 'u';\n if (that.sticky) result += 'y';\n return result;\n};\n","module.exports = {};\n","var shared = require('./_shared')('keys');\nvar uid = require('./_uid');\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n","// @@replace logic\nrequire('./_fix-re-wks')('replace', 2, function (defined, REPLACE, $replace) {\n // 21.1.3.14 String.prototype.replace(searchValue, replaceValue)\n return [function replace(searchValue, replaceValue) {\n 'use strict';\n var O = defined(this);\n var fn = searchValue == undefined ? undefined : searchValue[REPLACE];\n return fn !== undefined\n ? fn.call(searchValue, O, replaceValue)\n : $replace.call(String(O), searchValue, replaceValue);\n }, $replace];\n});\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","'use strict';\n// B.2.3.10 String.prototype.link(url)\nrequire('./_string-html')('link', function (createHTML) {\n return function link(url) {\n return createHTML(this, 'a', 'href', url);\n };\n});\n","var global = require('./_global');\nvar core = require('./_core');\nvar hide = require('./_hide');\nvar redefine = require('./_redefine');\nvar ctx = require('./_ctx');\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE];\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {});\n var key, own, out, exp;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n // export native or passed\n out = (own ? target : source)[key];\n // bind timers to global for call from export context\n exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // extend global\n if (target) redefine(target, key, out, type & $export.U);\n // export\n if (exports[key] != out) hide(exports, key, exp);\n if (IS_PROTO && expProto[key] != out) expProto[key] = out;\n }\n};\nglobal.core = core;\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","var $iterators = require('./es6.array.iterator');\nvar getKeys = require('./_object-keys');\nvar redefine = require('./_redefine');\nvar global = require('./_global');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar wks = require('./_wks');\nvar ITERATOR = wks('iterator');\nvar TO_STRING_TAG = wks('toStringTag');\nvar ArrayValues = Iterators.Array;\n\nvar DOMIterables = {\n CSSRuleList: true, // TODO: Not spec compliant, should be false.\n CSSStyleDeclaration: false,\n CSSValueList: false,\n ClientRectList: false,\n DOMRectList: false,\n DOMStringList: false,\n DOMTokenList: true,\n DataTransferItemList: false,\n FileList: false,\n HTMLAllCollection: false,\n HTMLCollection: false,\n HTMLFormElement: false,\n HTMLSelectElement: false,\n MediaList: true, // TODO: Not spec compliant, should be false.\n MimeTypeArray: false,\n NamedNodeMap: false,\n NodeList: true,\n PaintRequestList: false,\n Plugin: false,\n PluginArray: false,\n SVGLengthList: false,\n SVGNumberList: false,\n SVGPathSegList: false,\n SVGPointList: false,\n SVGStringList: false,\n SVGTransformList: false,\n SourceBufferList: false,\n StyleSheetList: true, // TODO: Not spec compliant, should be false.\n TextTrackCueList: false,\n TextTrackList: false,\n TouchList: false\n};\n\nfor (var collections = getKeys(DOMIterables), i = 0; i < collections.length; i++) {\n var NAME = collections[i];\n var explicit = DOMIterables[NAME];\n var Collection = global[NAME];\n var proto = Collection && Collection.prototype;\n var key;\n if (proto) {\n if (!proto[ITERATOR]) hide(proto, ITERATOR, ArrayValues);\n if (!proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = ArrayValues;\n if (explicit) for (key in $iterators) if (!proto[key]) redefine(proto, key, $iterators[key], true);\n }\n}\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal');\nvar enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n","var has = require('./_has');\nvar toIObject = require('./_to-iobject');\nvar arrayIndexOf = require('./_array-includes')(false);\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n","// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n","var def = require('./_object-dp').f;\nvar has = require('./_has');\nvar TAG = require('./_wks')('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n","// 7.2.8 IsRegExp(argument)\nvar isObject = require('./_is-object');\nvar cof = require('./_cof');\nvar MATCH = require('./_wks')('match');\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : cof(it) == 'RegExp');\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 clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nmodule.exports = debounce;\n","var root = require('./_root');\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\nmodule.exports = now;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","var isObject = require('./isObject'),\n 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","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","'use strict';\nrequire('./es6.regexp.flags');\nvar anObject = require('./_an-object');\nvar $flags = require('./_flags');\nvar DESCRIPTORS = require('./_descriptors');\nvar TO_STRING = 'toString';\nvar $toString = /./[TO_STRING];\n\nvar define = function (fn) {\n require('./_redefine')(RegExp.prototype, TO_STRING, fn, true);\n};\n\n// 21.2.5.14 RegExp.prototype.toString()\nif (require('./_fails')(function () { return $toString.call({ source: 'a', flags: 'b' }) != '/a/b'; })) {\n define(function toString() {\n var R = anObject(this);\n return '/'.concat(R.source, '/',\n 'flags' in R ? R.flags : !DESCRIPTORS && R instanceof RegExp ? $flags.call(R) : undefined);\n });\n// FF44- RegExp#toString has a wrong name\n} else if ($toString.name != TO_STRING) {\n define(function toString() {\n return $toString.call(this);\n });\n}\n","// 21.2.5.3 get RegExp.prototype.flags()\nif (require('./_descriptors') && /./g.flags != 'g') require('./_object-dp').f(RegExp.prototype, 'flags', {\n configurable: true,\n get: require('./_flags')\n});\n","var $export = require('./_export');\nvar fails = require('./_fails');\nvar defined = require('./_defined');\nvar quot = /\"/g;\n// B.2.3.2.1 CreateHTML(string, tag, attribute, value)\nvar createHTML = function (string, tag, attribute, value) {\n var S = String(defined(string));\n var p1 = '<' + tag;\n if (attribute !== '') p1 += ' ' + attribute + '=\"' + String(value).replace(quot, '"') + '\"';\n return p1 + '>' + S + '</' + tag + '>';\n};\nmodule.exports = function (NAME, exec) {\n var O = {};\n O[NAME] = exec(createHTML);\n $export($export.P + $export.F * fails(function () {\n var test = ''[NAME]('\"');\n return test !== test.toLowerCase() || test.split('\"').length > 3;\n }), 'String', O);\n};\n","module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n","'use strict';\nvar addToUnscopables = require('./_add-to-unscopables');\nvar step = require('./_iter-step');\nvar Iterators = require('./_iterators');\nvar toIObject = require('./_to-iobject');\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = require('./_iter-define')(Array, 'Array', function (iterated, kind) {\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var kind = this._k;\n var index = this._i++;\n if (!O || index >= O.length) {\n this._t = undefined;\n return step(1);\n }\n if (kind == 'keys') return step(0, index);\n if (kind == 'values') return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","// 22.1.3.31 Array.prototype[@@unscopables]\nvar UNSCOPABLES = require('./_wks')('unscopables');\nvar ArrayProto = Array.prototype;\nif (ArrayProto[UNSCOPABLES] == undefined) require('./_hide')(ArrayProto, UNSCOPABLES, {});\nmodule.exports = function (key) {\n ArrayProto[UNSCOPABLES][key] = true;\n};\n","module.exports = function (done, value) {\n return { value: value, done: !!done };\n};\n","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n","'use strict';\nvar LIBRARY = require('./_library');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar $iterCreate = require('./_iter-create');\nvar setToStringTag = require('./_set-to-string-tag');\nvar getPrototypeOf = require('./_object-gpo');\nvar ITERATOR = require('./_wks')('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n","'use strict';\nvar create = require('./_object-create');\nvar descriptor = require('./_property-desc');\nvar setToStringTag = require('./_set-to-string-tag');\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n","// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = require('./_an-object');\nvar dPs = require('./_object-dps');\nvar enumBugKeys = require('./_enum-bug-keys');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = require('./_dom-create')('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n require('./_html').appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n","var dP = require('./_object-dp');\nvar anObject = require('./_an-object');\nvar getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer');\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n","var toInteger = require('./_to-integer');\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n","var document = require('./_global').document;\nmodule.exports = document && document.documentElement;\n","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = require('./_has');\nvar toObject = require('./_to-object');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n","var candidateSelectors = [\n 'input',\n 'select',\n 'textarea',\n 'a[href]',\n 'button',\n '[tabindex]',\n 'audio[controls]',\n 'video[controls]',\n '[contenteditable]:not([contenteditable=\"false\"])',\n];\nvar candidateSelector = candidateSelectors.join(',');\n\nvar matches = typeof Element === 'undefined'\n ? function () {}\n : Element.prototype.matches || Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector;\n\nfunction tabbable(el, options) {\n options = options || {};\n\n var regularTabbables = [];\n var orderedTabbables = [];\n\n var candidates = el.querySelectorAll(candidateSelector);\n\n if (options.includeContainer) {\n if (matches.call(el, candidateSelector)) {\n candidates = Array.prototype.slice.apply(candidates);\n candidates.unshift(el);\n }\n }\n\n var i, candidate, candidateTabindex;\n for (i = 0; i < candidates.length; i++) {\n candidate = candidates[i];\n\n if (!isNodeMatchingSelectorTabbable(candidate)) continue;\n\n candidateTabindex = getTabindex(candidate);\n if (candidateTabindex === 0) {\n regularTabbables.push(candidate);\n } else {\n orderedTabbables.push({\n documentOrder: i,\n tabIndex: candidateTabindex,\n node: candidate,\n });\n }\n }\n\n var tabbableNodes = orderedTabbables\n .sort(sortOrderedTabbables)\n .map(function(a) { return a.node })\n .concat(regularTabbables);\n\n return tabbableNodes;\n}\n\ntabbable.isTabbable = isTabbable;\ntabbable.isFocusable = isFocusable;\n\nfunction isNodeMatchingSelectorTabbable(node) {\n if (\n !isNodeMatchingSelectorFocusable(node)\n || isNonTabbableRadio(node)\n || getTabindex(node) < 0\n ) {\n return false;\n }\n return true;\n}\n\nfunction isTabbable(node) {\n if (!node) throw new Error('No node provided');\n if (matches.call(node, candidateSelector) === false) return false;\n return isNodeMatchingSelectorTabbable(node);\n}\n\nfunction isNodeMatchingSelectorFocusable(node) {\n if (\n node.disabled\n || isHiddenInput(node)\n || isHidden(node)\n ) {\n return false;\n }\n return true;\n}\n\nvar focusableCandidateSelector = candidateSelectors.concat('iframe').join(',');\nfunction isFocusable(node) {\n if (!node) throw new Error('No node provided');\n if (matches.call(node, focusableCandidateSelector) === false) return false;\n return isNodeMatchingSelectorFocusable(node);\n}\n\nfunction getTabindex(node) {\n var tabindexAttr = parseInt(node.getAttribute('tabindex'), 10);\n if (!isNaN(tabindexAttr)) return tabindexAttr;\n // Browsers do not return `tabIndex` correctly for contentEditable nodes;\n // so if they don't have a tabindex attribute specifically set, assume it's 0.\n if (isContentEditable(node)) return 0;\n return node.tabIndex;\n}\n\nfunction sortOrderedTabbables(a, b) {\n return a.tabIndex === b.tabIndex ? a.documentOrder - b.documentOrder : a.tabIndex - b.tabIndex;\n}\n\nfunction isContentEditable(node) {\n return node.contentEditable === 'true';\n}\n\nfunction isInput(node) {\n return node.tagName === 'INPUT';\n}\n\nfunction isHiddenInput(node) {\n return isInput(node) && node.type === 'hidden';\n}\n\nfunction isRadio(node) {\n return isInput(node) && node.type === 'radio';\n}\n\nfunction isNonTabbableRadio(node) {\n return isRadio(node) && !isTabbableRadio(node);\n}\n\nfunction getCheckedRadio(nodes) {\n for (var i = 0; i < nodes.length; i++) {\n if (nodes[i].checked) {\n return nodes[i];\n }\n }\n}\n\nfunction isTabbableRadio(node) {\n if (!node.name) return true;\n // This won't account for the edge case where you have radio groups with the same\n // in separate forms on the same page.\n var radioSet = node.ownerDocument.querySelectorAll('input[type=\"radio\"][name=\"' + node.name + '\"]');\n var checked = getCheckedRadio(radioSet);\n return !checked || checked === node;\n}\n\nfunction isHidden(node) {\n // offsetParent being null will allow detecting cases where an element is invisible or inside an invisible element,\n // as long as the element does not use position: fixed. For them, their visibility has to be checked directly as well.\n return node.offsetParent === null || getComputedStyle(node).visibility === 'hidden';\n}\n\nmodule.exports = tabbable;\n","module.exports = extend\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nfunction extend() {\n var target = {}\n\n for (var i = 0; i < arguments.length; i++) {\n var source = arguments[i]\n\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n target[key] = source[key]\n }\n }\n }\n\n return target\n}\n","// @@split logic\nrequire('./_fix-re-wks')('split', 2, function (defined, SPLIT, $split) {\n 'use strict';\n var isRegExp = require('./_is-regexp');\n var _split = $split;\n var $push = [].push;\n var $SPLIT = 'split';\n var LENGTH = 'length';\n var LAST_INDEX = 'lastIndex';\n if (\n 'abbc'[$SPLIT](/(b)*/)[1] == 'c' ||\n 'test'[$SPLIT](/(?:)/, -1)[LENGTH] != 4 ||\n 'ab'[$SPLIT](/(?:ab)*/)[LENGTH] != 2 ||\n '.'[$SPLIT](/(.?)(.?)/)[LENGTH] != 4 ||\n '.'[$SPLIT](/()()/)[LENGTH] > 1 ||\n ''[$SPLIT](/.?/)[LENGTH]\n ) {\n var NPCG = /()??/.exec('')[1] === undefined; // nonparticipating capturing group\n // based on es5-shim implementation, need to rework it\n $split = function (separator, limit) {\n var string = String(this);\n if (separator === undefined && limit === 0) return [];\n // If `separator` is not a regex, use native split\n if (!isRegExp(separator)) return _split.call(string, separator, limit);\n var output = [];\n var flags = (separator.ignoreCase ? 'i' : '') +\n (separator.multiline ? 'm' : '') +\n (separator.unicode ? 'u' : '') +\n (separator.sticky ? 'y' : '');\n var lastLastIndex = 0;\n var splitLimit = limit === undefined ? 4294967295 : limit >>> 0;\n // Make `global` and avoid `lastIndex` issues by working with a copy\n var separatorCopy = new RegExp(separator.source, flags + 'g');\n var separator2, match, lastIndex, lastLength, i;\n // Doesn't need flags gy, but they don't hurt\n if (!NPCG) separator2 = new RegExp('^' + separatorCopy.source + '$(?!\\\\s)', flags);\n while (match = separatorCopy.exec(string)) {\n // `separatorCopy.lastIndex` is not reliable cross-browser\n lastIndex = match.index + match[0][LENGTH];\n if (lastIndex > lastLastIndex) {\n output.push(string.slice(lastLastIndex, match.index));\n // Fix browsers whose `exec` methods don't consistently return `undefined` for NPCG\n // eslint-disable-next-line no-loop-func\n if (!NPCG && match[LENGTH] > 1) match[0].replace(separator2, function () {\n for (i = 1; i < arguments[LENGTH] - 2; i++) if (arguments[i] === undefined) match[i] = undefined;\n });\n if (match[LENGTH] > 1 && match.index < string[LENGTH]) $push.apply(output, match.slice(1));\n lastLength = match[0][LENGTH];\n lastLastIndex = lastIndex;\n if (output[LENGTH] >= splitLimit) break;\n }\n if (separatorCopy[LAST_INDEX] === match.index) separatorCopy[LAST_INDEX]++; // Avoid an infinite loop\n }\n if (lastLastIndex === string[LENGTH]) {\n if (lastLength || !separatorCopy.test('')) output.push('');\n } else output.push(string.slice(lastLastIndex));\n return output[LENGTH] > splitLimit ? output.slice(0, splitLimit) : output;\n };\n // Chakra, V8\n } else if ('0'[$SPLIT](undefined, 0)[LENGTH]) {\n $split = function (separator, limit) {\n return separator === undefined && limit === 0 ? [] : _split.call(this, separator, limit);\n };\n }\n // 21.1.3.17 String.prototype.split(separator, limit)\n return [function split(separator, limit) {\n var O = defined(this);\n var fn = separator == undefined ? undefined : separator[SPLIT];\n return fn !== undefined ? fn.call(separator, O, limit) : $split.call(String(O), separator, limit);\n }, $split];\n});\n","var global = require('./_global');\nvar inheritIfRequired = require('./_inherit-if-required');\nvar dP = require('./_object-dp').f;\nvar gOPN = require('./_object-gopn').f;\nvar isRegExp = require('./_is-regexp');\nvar $flags = require('./_flags');\nvar $RegExp = global.RegExp;\nvar Base = $RegExp;\nvar proto = $RegExp.prototype;\nvar re1 = /a/g;\nvar re2 = /a/g;\n// \"new\" creates a new object, old webkit buggy here\nvar CORRECT_NEW = new $RegExp(re1) !== re1;\n\nif (require('./_descriptors') && (!CORRECT_NEW || require('./_fails')(function () {\n re2[require('./_wks')('match')] = false;\n // RegExp constructor can alter flags and IsRegExp works correct with @@match\n return $RegExp(re1) != re1 || $RegExp(re2) == re2 || $RegExp(re1, 'i') != '/a/i';\n}))) {\n $RegExp = function RegExp(p, f) {\n var tiRE = this instanceof $RegExp;\n var piRE = isRegExp(p);\n var fiU = f === undefined;\n return !tiRE && piRE && p.constructor === $RegExp && fiU ? p\n : inheritIfRequired(CORRECT_NEW\n ? new Base(piRE && !fiU ? p.source : p, f)\n : Base((piRE = p instanceof $RegExp) ? p.source : p, piRE && fiU ? $flags.call(p) : f)\n , tiRE ? this : proto, $RegExp);\n };\n var proxy = function (key) {\n key in $RegExp || dP($RegExp, key, {\n configurable: true,\n get: function () { return Base[key]; },\n set: function (it) { Base[key] = it; }\n });\n };\n for (var keys = gOPN(Base), i = 0; keys.length > i;) proxy(keys[i++]);\n proto.constructor = $RegExp;\n $RegExp.prototype = proto;\n require('./_redefine')(global, 'RegExp', $RegExp);\n}\n\nrequire('./_set-species')('RegExp');\n","var isObject = require('./_is-object');\nvar setPrototypeOf = require('./_set-proto').set;\nmodule.exports = function (that, target, C) {\n var S = target.constructor;\n var P;\n if (S !== C && typeof S == 'function' && (P = S.prototype) !== C.prototype && isObject(P) && setPrototypeOf) {\n setPrototypeOf(that, P);\n } return that;\n};\n","// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar isObject = require('./_is-object');\nvar anObject = require('./_an-object');\nvar check = function (O, proto) {\n anObject(O);\n if (!isObject(proto) && proto !== null) throw TypeError(proto + \": can't set as prototype!\");\n};\nmodule.exports = {\n set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n function (test, buggy, set) {\n try {\n set = require('./_ctx')(Function.call, require('./_object-gopd').f(Object.prototype, '__proto__').set, 2);\n set(test, []);\n buggy = !(test instanceof Array);\n } catch (e) { buggy = true; }\n return function setPrototypeOf(O, proto) {\n check(O, proto);\n if (buggy) O.__proto__ = proto;\n else set(O, proto);\n return O;\n };\n }({}, false) : undefined),\n check: check\n};\n","var pIE = require('./_object-pie');\nvar createDesc = require('./_property-desc');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar has = require('./_has');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nexports.f = require('./_descriptors') ? gOPD : function getOwnPropertyDescriptor(O, P) {\n O = toIObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return gOPD(O, P);\n } catch (e) { /* empty */ }\n if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);\n};\n","exports.f = {}.propertyIsEnumerable;\n","// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)\nvar $keys = require('./_object-keys-internal');\nvar hiddenKeys = require('./_enum-bug-keys').concat('length', 'prototype');\n\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return $keys(O, hiddenKeys);\n};\n","'use strict';\nvar global = require('./_global');\nvar dP = require('./_object-dp');\nvar DESCRIPTORS = require('./_descriptors');\nvar SPECIES = require('./_wks')('species');\n\nmodule.exports = function (KEY) {\n var C = global[KEY];\n if (DESCRIPTORS && C && !C[SPECIES]) dP.f(C, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n};\n","\n// Faux decorator for required arguments\nexport default function required() {\n throw new Error('Missing parameter');\n}\n","\nimport required from '../../../vendor/scripts/fabrique/modules/required';\n\nexport default class Component {\n\n constructor(element = required()) {\n\n this.element = element;\n this.init();\n\n // We return this object to bind the instance.\n return this;\n }\n\n static init() {\n // Override this method\n }\n\n}\n","\nimport Component from '../../../assets/scripts/modules/component';\nimport required from '../../../vendor/scripts/fabrique/modules/required';\n\nclass BackgroundImageComponent extends Component {\n\n init() {\n\n this.observer = null;\n this.style = this.element.parentNode.querySelector('style');\n\n if (this.element.getAttribute('data-lazyload') === null || !this.style) {\n return;\n }\n\n this.element.removeAttribute('data-lazyload');\n\n if (document.documentMode) { // IE; quick hack because lazyloading is sloooow\n this.forceLoad();\n return;\n }\n\n // Set observers on next paint (otherwise it'll cause a forced layout reflow)\n window.requestAnimationFrame(() => this.attachObserver());\n\n this.element.forceLoad = this.forceLoad;\n\n }\n\n destroy() {\n\n this.style = null;\n this.observer = null;\n\n }\n\n attachObserver() {\n\n if (this.observer) {\n this.disconnectObserver();\n }\n\n // Start halfway outside the viewport\n this.observer = new window.IntersectionObserver(this.onIntersect.bind(this), {\n rootMargin: `${window.innerHeight * 2}px 0px`,\n });\n\n this.observer.observe(this.element);\n\n }\n\n disconnectObserver() {\n\n if (!this.observer) {\n return;\n }\n\n this.observer.unobserve(this.element);\n this.observer.disconnect();\n this.observer = null;\n\n }\n\n onIntersect(changes = required()) {\n\n for (const change of changes) {\n if (change.intersectionRatio) {\n this.loadImage();\n this.disconnectObserver();\n this.destroy();\n\n break;\n }\n }\n\n }\n\n loadImage() {\n\n this.element.classList.add('x-background-image--loading');\n\n this.parseStyle();\n\n // Possible leak? requestAnimationFrame doesn't put it in the queue\n window.setTimeout(() => {\n this.element.classList.remove('x-background-image--loading');\n }, 0);\n\n }\n\n parseStyle() {\n const text = this.style.innerText.replace(/font-family: '(.*?)'/gi, 'background-image: url($1)');\n\n if (document.documentMode) { // IE\n const style = document.createElement('style');\n style.type = 'text/css';\n style.innerHTML = text;\n document.documentElement.appendChild(style);\n } else {\n this.style.innerText = this.style.innerText.replace(/font-family: '(.*?)'/gi, 'background-image: url($1)');\n }\n\n }\n\n forceLoad() {\n\n this.loadImage();\n this.disconnectObserver();\n this.destroy();\n\n }\n\n}\n\nwindow.addEventListener('init-load', () => {\n for (const element of document.querySelectorAll('.x-background-image')) {\n element.instance = element.instance || new BackgroundImageComponent(element);\n }\n});\n","\nimport Component from '../../../assets/scripts/modules/component';\n\nclass ButtonComponent extends Component {\n\n init() {\n\n if (this.element.classList.contains('x-button--illuminated')) {\n this.initIllumination();\n }\n\n }\n\n initIllumination() {\n\n this.fromColor = '#fff';\n this.toColor = '#c9ced1';\n this.textColor = '#000';\n\n this.element.addEventListener('mouseenter', this.enableIllumination.bind(this));\n this.element.addEventListener('mouseleave', this.disableIllumination.bind(this));\n\n this.mouseX = 20;\n this.mouseY = 20;\n\n this.listener = (event) => {\n const box = this.element.getBoundingClientRect();\n\n this.mouseX = Math.floor(100 * (event.clientX - box.left) / box.width);\n this.mouseY = Math.floor(100 * (event.clientY - box.top) / box.height);\n\n this.applyIllumination();\n\n };\n\n }\n\n enableIllumination() {\n\n this.element.addEventListener('mousemove', this.listener);\n\n }\n\n disableIllumination() {\n\n this.element.removeEventListener('mousemove', this.listener);\n this.removeIllumination();\n\n }\n\n applyIllumination() {\n\n this.element.style.background = `radial-gradient(circle at ${this.mouseX}% ${this.mouseY}%, ${this.fromColor} 0%, ${this.toColor} 100%)`;\n this.element.style.color = this.textColor;\n\n }\n\n removeIllumination() {\n\n this.element.style.background = null;\n this.element.style.color = null;\n }\n\n}\n\nwindow.addEventListener('init-load', () => {\n for (const element of document.querySelectorAll('.x-button')) {\n element.instance = element.instance || new ButtonComponent(element);\n }\n});\n","\nimport Component from '../../../assets/scripts/modules/component';\nimport required from '../../../vendor/scripts/fabrique/modules/required';\n\nclass PictureComponent extends Component {\n\n init() {\n\n this.observer = null;\n this.picture = this.element.querySelector('.x-picture__picture');\n this.img = this.element.querySelector('.x-picture__img');\n this.sources = [...this.element.querySelectorAll('source')];\n\n if (this.element.getAttribute('data-lazyload') === null || !this.picture || !this.img || !this.sources) {\n return;\n }\n\n this.element.removeAttribute('data-lazyload');\n\n if (document.documentMode) { // IE; quick hack because lazyloading is sloooow\n this.forceLoad();\n return;\n }\n\n // Set observers on next paint (otherwise it'll cause a forced layout reflow)\n window.requestAnimationFrame(() => this.attachObserver());\n\n }\n\n destroy() {\n\n this.sources = null;\n this.img = null;\n this.picture = null;\n this.observer = null;\n\n }\n\n attachObserver() {\n\n if (this.observer) {\n this.disconnectObserver();\n }\n\n // Start halfway outside the viewport\n this.observer = new window.IntersectionObserver(this.onIntersect.bind(this), {\n rootMargin: `${window.innerHeight * 2}px 0px`,\n });\n\n this.observer.observe(this.img);\n\n }\n\n disconnectObserver() {\n\n if (!this.observer) {\n return;\n }\n\n this.observer.unobserve(this.img);\n this.observer.disconnect();\n this.observer = null;\n\n }\n\n onIntersect(changes = required()) {\n\n for (const change of changes) {\n if (change.intersectionRatio) {\n this.loadImage();\n this.disconnectObserver();\n this.destroy();\n\n break;\n }\n }\n\n }\n\n loadImage() {\n\n this.element.classList.add('x-picture--loading');\n\n // Dirty, but guaranteed to work. Changing <source> props is a bit fiddly\n this.picture.innerHTML = ' ';\n\n this.replaceSources();\n this.replaceImg();\n\n // Possible leak? requestAnimationFrame doesn't put it in the queue\n window.setTimeout(() => {\n this.element.classList.remove('x-picture--loading');\n }, 0);\n\n this.element.forceLoad = this.forceLoad;\n\n }\n\n replaceSources() {\n\n if (document.documentMode) {\n return; // Not for IE11\n }\n\n for (const source of this.sources) {\n const newSource = document.createElement('source');\n\n newSource.setAttribute('srcset', source.getAttribute('data-srcset'));\n\n if (source.getAttribute('media') !== null) {\n newSource.setAttribute('media', source.getAttribute('media'));\n }\n\n this.picture.appendChild(newSource);\n }\n\n }\n\n replaceImg() {\n const newImg = document.createElement('img');\n\n newImg.setAttribute('class', this.img.getAttribute('class'));\n newImg.src = (document.documentMode) ? this.img.getAttribute('data-src'): ' '; // Src cannot be empty\n\n // Add to DOM and reset reference\n this.img = this.picture.appendChild(newImg);\n\n }\n\n forceLoad() {\n\n this.loadImage();\n this.disconnectObserver();\n this.destroy();\n\n }\n\n}\n\nwindow.addEventListener('init-load', () => {\n for (const element of document.querySelectorAll('.x-picture')) {\n element.instance = element.instance || new PictureComponent(element);\n }\n});\n","\nimport Component from '../../../assets/scripts/modules/component';\n\nconst POPUP_WIDTH = 800;\nconst POPUP_HEIGHT = 480;\nconst CENTER_POPUP = true;\n\nclass ShareButtonComponent extends Component {\n\n init() {\n\n this.href = this.element.getAttribute('href');\n this.textSpan = this.element.querySelector('.x-button__span, .x-link__span');\n this.title = this.textSpan.innerText || '';\n\n this.element.addEventListener('click', event => {\n\n if (this.classList.contains('x-share-button--email')) {\n return;\n }\n\n if (this.openSharePopup()) {\n event.preventDefault();\n }\n\n });\n\n }\n\n openSharePopup() {\n const width = Math.max(window.innerWidth / 2, POPUP_WIDTH);\n const height = Math.max(window.innerHeight / 2, POPUP_HEIGHT);\n const top = (window.outerHeight / 2) - (height / 2);\n const left = (window.outerWidth / 2) - (width / 2);\n\n return window.open(\n this.href,\n this.title,\n (CENTER_POPUP ? `top=${top}, left=${left}, ` : '') +\n `height=${height}, width=${width}, outerWidth=${width}, outerHeight=${height}, menubar=0, toolbar=0, location=0, personalbar=0, status=0, minimizable=1, resizable=1, scrollbar=1`\n );\n }\n\n}\n\nwindow.addEventListener('init-load', () => {\n for (const element of document.querySelectorAll('.x-share-button')) {\n element.instance = element.instance || new ShareButtonComponent(element);\n }\n});\n","\n// Tests if passive event listeners are supported.\nexport default function supportsPassiveListener () {\n let supportsPassive = false;\n\n try {\n window.addEventListener('test', null, Object.defineProperty({}, 'passive', { get: function() { supportsPassive = true; } }));\n } catch (e) {\n //\n }\n\n return supportsPassive;\n}\n","\nimport Component from '../../../assets/scripts/modules/component';\nimport throttle from 'lodash/throttle';\nimport supportsPassiveListener from '../../../vendor/scripts/fabrique/modules/supports-passive-listener';\n\nconst breakpointMobile = 530;\nconst breakpointPortrait = 800;\nconst breakpointLandscape = 1180;\nconst breakpointDesktop = 1480;\n\nconst factorMobile = 0.05;\nconst factorPortrait = 0.2;\nconst factorLandscape = 0.3;\nconst factorNotebook = 0.4;\nconst factorDesktop = 0.4;\n\nclass TooltipComponent extends Component {\n\n init() {\n\n this.closeButton = this.element.querySelector('.x-tooltip__close');\n this.text = this.element.querySelector('.x-tooltip__text');\n\n this.initTooltip();\n\n }\n\n initTooltip() {\n\n if (document.documentElement.classList.contains('no-touch')) {\n this.element.addEventListener('mousemove', this.popupMove.bind(this));\n this.element.addEventListener('mouseleave', this.popupLeave.bind(this));\n this.element.addEventListener('focus', this.popupFocus.bind(this));\n this.element.addEventListener('blur', this.popupBlur.bind(this));\n } else {\n this.element.addEventListener('click', this.popupClick.bind(this));\n this.element.addEventListener('tap', this.popupClick.bind(this));\n\n if (this.closeButton) {\n this.closeButton.addEventListener('click', this.popupClose.bind(this));\n this.closeButton.addEventListener('tap', this.popupClose.bind(this));\n }\n }\n\n if (this.text) {\n this.text.addEventListener('click', event => event.stopPropagation());\n this.text.addEventListener('tap', event => event.stopPropagation());\n }\n\n const throttledScroll = throttle(() => window.requestAnimationFrame(() => this.scrollHandler()), 50, { leading: true, trailing: true });\n const throttledResize = throttle(() => window.requestAnimationFrame(() => this.processHorizontalPopupAlignment()), 500, { leading: false, trailing: true });\n\n window.addEventListener('scroll', () => throttledScroll(), supportsPassiveListener ? { passive: true } : null);\n window.addEventListener('resize', () => throttledResize(), supportsPassiveListener ? { passive: true } : null);\n\n this.throttledScroll();\n this.throttledResize();\n\n }\n\n popupMove() {\n\n if (this.element.classList.contains('x-tooltip--click') || this.element.classList.contains('x-tooltip--focus')) {\n return;\n }\n\n this.repositionPopupVertically();\n this.element.classList.add('x-tooltip--hover');\n\n }\n\n popupLeave() {\n\n if (!this.element.classList.contains('x-tooltip--hover')) {\n return;\n }\n\n this.element.classList.remove('x-tooltip--hover');\n this.repositionPopupVertically();\n\n }\n\n popupFocus() {\n\n this.repositionPopupVertically();\n this.element.classList.remove('x-tooltip--click');\n this.element.classList.add('x-tooltip--focus');\n\n }\n\n popupBlur() {\n\n if (!this.element.classList.contains('x-tooltip--focus')) {\n return;\n }\n\n this.element.classList.remove('x-tooltip--focus');\n this.repositionPopupVertically();\n\n }\n\n popupClick() {\n\n this.element.classList.remove('x-tooltip--hover');\n\n if (this.element.classList.contains('x-tooltip--click')) {\n this.element.classList.remove('x-tooltip--click');\n this.repositionPopupVertically();\n } else {\n this.repositionPopupVertically();\n this.element.classList.add('x-tooltip--click');\n }\n\n }\n\n popupClose() {\n\n this.element.classList.remove('x-tooltip--hover');\n this.element.classList.remove('x-tooltip--click');\n this.repositionPopupVertically();\n\n }\n\n scrollHandler() {\n const isClick = this.element.classList.contains('x-tooltip--click');\n const isHover = this.element.classList.contains('x-tooltip--hover');\n const isFocus = this.element.classList.contains('x-tooltip--focus');\n\n if (!isClick && !isHover && !isFocus) {\n return;\n }\n\n this.repositionPopupVertically();\n\n }\n\n repositionPopupVertically() {\n\n if (!this.text) {\n return;\n }\n\n const rect = this.text.getBoundingClientRect();\n\n if (!this.element.classList.contains('x-tooltip--below') && rect.top <= 0) {\n this.element.classList.add('x-tooltip--below');\n } else if (!this.element.classList.contains('x-tooltip--above') && rect.top >= (window.innerHeight - this.text.offsetHeight)) {\n this.element.classList.remove('x-tooltip--below');\n }\n\n }\n\n getRectHorizontalScreenPosition(rect) {\n\n if (\n (window.innerWidth < breakpointMobile && rect.left <= window.innerWidth * factorMobile) ||\n (window.innerWidth >= breakpointMobile && window.innerWidth < breakpointPortrait && rect.left <= window.innerWidth * factorPortrait) ||\n (window.innerWidth >= breakpointPortrait && window.innerWidth < breakpointLandscape && rect.left <= window.innerWidth * factorLandscape) ||\n (window.innerWidth >= breakpointLandscape && window.innerWidth < breakpointDesktop && rect.left <= window.innerWidth * factorNotebook) ||\n (window.innerWidth >= breakpointDesktop && rect.left <= window.innerWidth * factorDesktop)\n ) {\n return 'left';\n } else if (\n (window.innerWidth < breakpointMobile && rect.left + rect.width >= window.innerWidth * (1 - factorMobile)) ||\n (window.innerWidth >= breakpointMobile && window.innerWidth < breakpointPortrait && rect.left + rect.width >= window.innerWidth * (1 - factorPortrait)) ||\n (window.innerWidth >= breakpointPortrait && window.innerWidth < breakpointLandscape && rect.left + rect.width >= window.innerWidth * (1 - factorLandscape)) ||\n (window.innerWidth >= breakpointLandscape && window.innerWidth < breakpointDesktop && rect.left + rect.width >= window.innerWidth * (1 - factorNotebook)) ||\n (window.innerWidth >= breakpointDesktop && rect.left + rect.width >= window.innerWidth * (1 - factorDesktop))\n ) {\n return 'right';\n }\n\n return 'center';\n }\n\n processHorizontalPopupAlignment() {\n\n if (!this.text || this.element.classList.contains('x-tooltip--forced-align')) {\n return;\n }\n\n const rect = this.text.getBoundingClientRect();\n\n // Also check for rect.width -- rect can be 0 in IE10, default to center in that case\n if (!rect.width) {\n this.element.classList.remove('x-tooltip--align-left');\n this.element.classList.remove('x-tooltip--align-right');\n\n return;\n }\n\n const rectHorizontalScreenPosition = this.getRectHorizontalScreenPosition(rect);\n\n if (rectHorizontalScreenPosition === 'left') {\n this.element.classList.add('x-tooltip--align-left');\n this.element.classList.remove('x-tooltip--align-right');\n } else if (rectHorizontalScreenPosition === 'right') {\n this.element.classList.remove('x-tooltip--align-left');\n this.element.classList.add('x-tooltip--align-right');\n } else {\n this.element.classList.remove('x-tooltip--align-left');\n this.element.classList.remove('x-tooltip--align-right');\n }\n\n }\n\n}\n\nwindow.addEventListener('init-load', () => {\n for (const element of document.querySelectorAll('.x-tooltip')) {\n element.instance = element.instance || new TooltipComponent(element);\n }\n});\n","\n// Insert external script with a delay\nexport default function insertScript (id = '', src = '', callback = () => {}) {\n\n if (!id || !src || document.getElementById(id)) {\n callback();\n\n return;\n }\n\n const script = document.createElement('script');\n const timestamp = Math.floor(Date.now() / 1000);\n\n document.body.appendChild(script);\n\n script.onload = callback;\n script.id = id;\n script.setAttribute('data-timestamp', timestamp);\n script.src = src;\n\n}\n","\nimport Component from '../../../assets/scripts/modules/component';\nimport insertScript from './../../../vendor/scripts/fabrique/modules/insert-script';\nimport randomHash from './../../../vendor/scripts/fabrique/modules/random-hash';\n\nclass VideoEmbedComponent extends Component {\n\n init() {\n\n this.container = this.element.querySelector('.x-video-embed__container');\n this.hitTarget = this.element.querySelector('.x-video-embed__hit-target');\n this.autoplay = (this.element.getAttribute('data-autoplay') !== null);\n\n if (!this.container || !this.hitTarget) {\n return;\n }\n\n this.videoId = this.hitTarget.getAttribute('data-id');\n this.videoType = this.hitTarget.getAttribute('data-type');\n\n if (!this.videoId || !this.videoType) {\n return;\n }\n\n this.iframeId = `player-${randomHash()}`;\n this.player = null;\n\n this.initVideo();\n\n }\n\n initVideo() {\n\n this.hitTarget.addEventListener('click', this.onHitTargetClick.bind(this));\n\n if (this.autoplay) {\n window.setTimeout(() => this.hitTarget.click(), 150); // Arbitrary timeout to make sure the wrapper styling is painted first.\n }\n\n }\n\n onHitTargetClick(event) {\n\n event.preventDefault();\n\n if (this.videoType === 'vimeo') {\n insertScript('vimeo-api-script', 'https://player.vimeo.com/api/player.js', this.insertVimeoContainer.bind(this));\n } else if (this.videoType === 'youtube') {\n insertScript('youtube-api-script', 'https://youtube.com/iframe_api', this.insertYouTubeContainer.bind(this));\n } else {\n throw `VideoEmbed #${this.videoId}: Video type \"${this.videoType}\" not supported`;\n }\n\n }\n\n /* jshint ignore:start */\n async insertVimeoContainer() {\n\n if (!window.Vimeo) {\n throw 'Vimeo API not loaded correctly.';\n }\n\n this.vimeoOptions = {\n id: this.videoId, // can be either the ID or URL to the video\n autopause: true,\n autoplay: true,\n background: false, // Hide controls and autoplay\n byline: false, // Show byline\n color: 'ffffff',\n loop: false,\n muted: false,\n playsinline: false, // Set to true to play inline on some mobile devices\n portrait: false, // Show the video portrait\n speed: false, // Show speed controls\n title: false, // Show title\n transparent: true,\n };\n\n this.player = await new window.Vimeo.Player(this.container, this.vimeoOptions);\n this.container.removeChild(this.hitTarget);\n\n }\n /* jshint ignore:end */\n\n insertYouTubeContainer() {\n const div = document.createElement('div');\n\n div.id = this.iframeId;\n div.className = 'x-video-embed__iframe';\n\n this.hitTarget.parentNode.replaceChild(div, this.hitTarget);\n this.hitTarget = null;\n\n const afterLoad = () => {\n this.player = new window.YT.Player(this.iframeId, {\n width: 640,\n height: 360,\n videoId: this.videoId,\n playerVars: { autoplay: 1, hd: 1, showinfo: 0, modestbranding: 1, 'iv_load_policy': 3, rel: 0, playlist: '', origin: `${window.location.protocol}//${window.location.host}` },\n events: {\n onReady: () => {\n this.player.setPlaybackQuality('hd1080');\n\n if (this.element.getAttribute('data-autoplay') !== null) {\n this.player.playVideo();\n }\n },\n },\n });\n\n window.youtubeLoaded = true;\n };\n\n if (!window.youtubeLoaded) {\n window.onYouTubeIframeAPIReady = afterLoad;\n } else {\n afterLoad();\n }\n\n }\n\n}\n\nwindow.addEventListener('init-load', () => {\n for (const element of document.querySelectorAll('.x-video-embed')) {\n element.instance = element.instance || new VideoEmbedComponent(element);\n }\n});\n","\n// Generate random hash\nexport default function randomHash() {\n return Math.random().toString(36).slice(2, -2);\n}\n","\nimport Component from '../../../assets/scripts/modules/component';\n\nclass VideoComponent extends Component {\n\n init() {\n\n this.container = this.element.querySelector('.x-video__container');\n this.hitTarget = this.element.querySelector('.x-video__hit-target');\n this.video = this.element.querySelector('.x-video__video');\n this.autoplay = (this.element.getAttribute('data-autoplay') !== null);\n\n if (!this.container || !this.hitTarget || !this.video) {\n return;\n }\n\n this.initVideo();\n\n }\n\n initVideo() {\n\n this.hitTarget.addEventListener('click', this.onHitTargetClick.bind(this));\n this.video.addEventListener('click', this.onHitTargetClick.bind(this));\n\n if (this.autoplay) {\n this.element.classList.remove('x-video--paused');\n this.element.classList.add('x-video--playing');\n }\n\n }\n\n onHitTargetClick(event) {\n\n event.preventDefault();\n\n if (this.video.currentTime === 0 || this.video.paused || this.video.ended) {\n this.element.classList.remove('x-video--paused');\n this.element.classList.add('x-video--playing');\n this.video.play();\n } else {\n this.element.classList.remove('x-video--playing');\n this.element.classList.add('x-video--paused');\n this.video.pause();\n }\n\n }\n\n}\n\nwindow.addEventListener('init-load', () => {\n for (const element of document.querySelectorAll('.x-video')) {\n element.instance = element.instance || new VideoComponent(element);\n }\n});\n","\nimport Component from '../../../assets/scripts/modules/component';\n\nclass BackToTopComponent extends Component {\n\n init() {\n\n this.link = this.element.querySelector('.x-back-to-top__link');\n\n if (!this.link) {\n return;\n }\n\n this.link.addEventListener('click', this.onLinkClick.bind(this));\n\n }\n\n onLinkClick(event) {\n\n event.preventDefault();\n\n window.scroll({ left: window.pageXOffset, top: 0, behavior: 'smooth' });\n\n }\n\n}\n\nwindow.addEventListener('init-load', () => {\n for (const element of document.querySelectorAll('.x-back-to-top')) {\n element.instance = element.instance || new BackToTopComponent(element);\n }\n});\n","\nimport Component from '../../../assets/scripts/modules/component';\n\nclass FormComponent extends Component {\n\n init() {\n\n this.submitButton = this.element.querySelector('button[type=\"submit\"], input[type=\"submit\"]');\n this.element.addEventListener('submit', this.preventMultipleSubmits.bind(this));\n\n }\n\n preventMultipleSubmits() {\n\n this.submitButton.disabled = true;\n\n }\n\n}\n\nwindow.addEventListener('init-load', () => {\n for (const element of document.querySelectorAll('.x-form')) {\n element.instance = element.instance || new FormComponent(element);\n }\n});\n","\nimport Component from '../../../assets/scripts/modules/component';\nimport focusTrap from 'focus-trap';\nimport throttle from 'lodash/throttle';\n\nclass GalleryCompositionComponent extends Component {\n\n init() {\n\n this.initOverlay();\n\n }\n\n initOverlay() {\n\n this.overlay = this.element.querySelector('.x-gallery-composition__overlay');\n\n if (!this.overlay) {\n return;\n }\n\n this.wrapper = this.overlay.querySelector('.x-gallery-composition__overlay-wrapper');\n this.thumbnailItems = [...this.element.querySelectorAll('.x-gallery-composition__picture')];\n this.thumbnails = [...this.element.querySelectorAll('.x-gallery-composition__item-container')];\n this.itemsContainer = this.overlay.querySelector('.x-gallery-composition__overlay-items');\n this.items = [...this.overlay.querySelectorAll('.x-gallery-composition__overlay-item')];\n this.buttonClose = this.overlay.querySelector('.x-gallery-composition__overlay-button--close');\n this.buttonDetails = this.overlay.querySelector('.x-gallery-composition__overlay-button--details');\n this.buttonPrevious = this.overlay.querySelector('.x-gallery-composition__overlay-button--previous');\n this.buttonNext = this.overlay.querySelector('.x-gallery-composition__overlay-button--next');\n this.buttonDownload = this.overlay.querySelector('.x-gallery-composition__overlay-button--download');\n this.counter = this.overlay.querySelector('.x-gallery-composition__overlay-counter');\n\n if (!this.thumbnailItems.length || !this.items.length) {\n return;\n }\n\n this.initAccessibility();\n this.initThumbnails();\n this.initItems();\n this.initButtons();\n this.initKeys();\n this.initDetails();\n\n this.activeItem = null;\n this.activeElement = null;\n\n }\n\n initThumbnails() {\n\n for (const thumbnail of this.thumbnailItems) {\n thumbnail.addEventListener('click', event => {\n event.preventDefault();\n this.toggleOverlay(thumbnail);\n });\n }\n\n }\n\n initItems() {\n\n for (const item of this.items) {\n item.querySelector('.x-gallery-composition__background-image')?.addEventListener('click', () => this.toggleOverlay());\n }\n\n }\n\n initButtons() {\n\n this.buttonClose?.addEventListener('click', () => this.toggleOverlay());\n this.buttonDetails?.addEventListener('click', () => this.toggleDetails());\n this.buttonPrevious?.addEventListener('click', () => this.navigate(-1));\n this.buttonNext?.addEventListener('click', () => this.navigate(1));\n\n }\n\n initKeys() {\n const throttled = throttle(event => this.onKeyDown(event), 250, { leading: true, trailing: false });\n\n document.addEventListener('keydown', event => throttled(event));\n\n }\n\n onKeyDown(event) {\n\n if (!this.overlay.classList.contains('x-gallery-composition__overlay--visible')) {\n return;\n }\n\n if (event.key === 'Escape') {\n this.toggleOverlay();\n event.preventDefault();\n } else if (event.key === 'Space') {\n this.toggleDetails();\n event.preventDefault();\n } else if (event.key === 'ArrowRight') {\n this.navigate(1);\n event.preventDefault();\n } else if (event.key === 'ArrowLeft') {\n this.navigate(-1);\n event.preventDefault();\n }\n\n }\n\n toggleOverlay(thumbnail = false) {\n\n if (thumbnail) {\n this.activeElement = document.activeElement;\n this.navigate(this.thumbnailItems.indexOf(thumbnail), true);\n }\n\n this.overlay.classList.toggle('x-gallery-composition__overlay--visible');\n document.querySelector('.x-menu-bar')?.classList.toggle('x-menu-bar--hidden');\n\n const closing = !!thumbnail;\n\n this.setAriaHiddenOnOtherElements(closing);\n this.hideOverlayTabbableElements(!closing);\n\n if (!closing) {\n this.overlayFocusTrap.deactivate();\n //this.activeElement?.focus();\n } else {\n //document.activeElement?.blur();\n //this.buttonClose.focus();\n this.overlayFocusTrap.activate();\n }\n\n }\n\n initDetails() {\n\n this.buttonDetails?.classList.toggle('x-button--selected', true);\n this.buttonDetails?.setAttribute('aria-pressed', true);\n\n }\n\n toggleDetails() {\n\n const expanded = this.itemsContainer.classList.contains('x-gallery-composition__overlay-items--details');\n\n this.itemsContainer?.classList.toggle('x-gallery-composition__overlay-items--details', !expanded);\n this.buttonDetails?.classList.toggle('x-button--selected', expanded);\n this.buttonDetails?.setAttribute('aria-pressed', expanded);\n\n }\n\n navigate(i = 0, direct = false) {\n\n this.activeItem?.classList.toggle('x-gallery-composition__overlay-item--active');\n\n if (direct && this.items.indexOf(i)) {\n this.activeItem = this.items[i];\n } else if (i === 0 && this.activeItem === null) {\n this.activeItem = this.items[0];\n } else if (i === 1) {\n this.activeItem = this.items[this.items.indexOf(this.activeItem) + 1] || this.items[0];\n } else if (i === -1) {\n this.activeItem = this.items[this.items.indexOf(this.activeItem) - 1] || this.items[this.items.length - 1];\n }\n\n this.activeItem.classList.toggle('x-gallery-composition__overlay-item--active');\n\n this.updateCounter();\n this.updateDownloadButton();\n\n }\n\n updateCounter() {\n\n if (this.counter) {\n this.counter.innerText = `${this.items.indexOf(this.activeItem) + 1}/${this.items.length}`;\n }\n\n }\n\n updateDownloadButton() {\n const href = this.activeItem.getAttribute('data-href') || '';\n\n this.buttonDownload?.setAttribute('href', href);\n this.buttonDownload?.classList.toggle('x-gallery-composition__overlay-button--visible', href);\n\n }\n\n initAccessibility() {\n\n this.setAriaHiddenOnOtherElements(false);\n this.hideOverlayTabbableElements(false);\n\n this.overlayFocusTrap = focusTrap(this.overlay, {\n onActivate: () => {},\n onDeactivate: () => {},\n escapeDeactivates: true,\n clickOutsideDeactivates: true,\n returnFocusOnDeactivate: true,\n });\n\n }\n\n setAriaHiddenOnOtherElements(hidden = true) {\n const nonModalDialogVisibleElements = [...document.querySelectorAll('.x-menu-bar__bar, .x-content--top, .x-content--bottom, .x-content--middle > *:not(.x-gallery-composition), .x-gallery-composition__outer-constrainer, .x-footer, .x-footer-bar')];\n const modalDialogVisibleElements = [...document.querySelectorAll('.x-gallery-composition__overlay')];\n\n nonModalDialogVisibleElements.forEach(element => element.setAttribute('aria-hidden', hidden));\n modalDialogVisibleElements.forEach(element => element.setAttribute('aria-hidden', !hidden));\n\n }\n\n hideOverlayTabbableElements(hidden = true) {\n const modalDialogTabbableElements = [...document.querySelectorAll('.x-gallery-composition__overlay a[href], .x-gallery-composition__overlay button')];\n\n modalDialogTabbableElements.forEach(element => element.classList.toggle('is-hidden', hidden));\n }\n\n}\n\nwindow.addEventListener('init-load', () => {\n for (const element of document.querySelectorAll('.x-gallery-composition')) {\n element.instance = element.instance || new GalleryCompositionComponent(element);\n }\n});\n","\nimport Component from '../../../assets/scripts/modules/component';\nimport throttle from 'lodash/throttle';\nimport supportsPassiveListener from '../../../vendor/scripts/fabrique/modules/supports-passive-listener';\n\nconst TRANSFORM_DISTANCE = 64;\n\nclass GridAdvancedComponent extends Component {\n\n init() {\n\n this.items = [...this.element.querySelectorAll('.x-grid-advanced__grid-block-container')];\n\n if (!document.documentElement.classList.contains('is-ie') && !document.documentElement.classList.contains('is-edge')) {\n this.initScrollMovement();\n }\n\n }\n\n initScrollMovement() {\n const throttledScroll = throttle(() => window.requestAnimationFrame(() => this.updateScrollMovement()), 10, { leading: true, trailing: true });\n\n window.addEventListener('scroll', () => throttledScroll(), supportsPassiveListener ? { passive: true } : null);\n window.setTimeout(() => this.updateScrollMovement(), 150);\n\n }\n\n updateScrollMovement() {\n\n for (const item of this.items) {\n const rect = item.getBoundingClientRect();\n const start = window.innerHeight * .2;\n const distance = window.innerHeight * .3;\n const top = start + rect.top;\n const position = Math.min(Math.max(top, -start), 0);\n const percentage = position / distance * 100;\n const offset = (TRANSFORM_DISTANCE / 2) - (TRANSFORM_DISTANCE / 100 * percentage);\n const wrapper = item.querySelector('.x-grid-block');\n const finalOffset = (TRANSFORM_DISTANCE / 2) + -offset;\n\n if (wrapper) {\n wrapper.style.transform = `translate3d(0, ${finalOffset}px, 0)`;\n }\n }\n\n }\n\n}\n\nwindow.addEventListener('init-load', () => {\n for (const element of document.querySelectorAll('.x-grid-advanced')) {\n element.instance = element.instance || new GridAdvancedComponent(element);\n }\n});\n","\nimport Component from '../../../assets/scripts/modules/component';\nimport throttle from 'lodash/throttle';\nimport supportsPassiveListener from '../../../vendor/scripts/fabrique/modules/supports-passive-listener';\n\nconst TRANSFORM_DISTANCE = 32;\n\nclass GridBasicComponent extends Component {\n\n init() {\n\n this.items = [...this.element.querySelectorAll('.x-grid-basic__grid-block-container')];\n\n //if (!document.documentElement.classList.contains('is-ie') && !document.documentElement.classList.contains('is-edge')) {\n // this.initScrollMovement();\n //}\n\n }\n\n initScrollMovement() {\n const throttledScroll = throttle(() => window.requestAnimationFrame(() => this.updateScrollMovement()), 10, { leading: true, trailing: true });\n\n window.addEventListener('scroll', () => throttledScroll(), supportsPassiveListener ? { passive: true } : null);\n window.setTimeout(() => this.updateScrollMovement(), 150);\n\n }\n\n updateScrollMovement() {\n\n for (const item of this.items) {\n const rect = item.getBoundingClientRect();\n const position = Math.min(Math.max(rect.top, -window.innerHeight), window.innerHeight);\n const percentage = position / window.innerHeight * 100;\n const offset = -(TRANSFORM_DISTANCE / 100 * percentage);\n const wrapper = item.querySelector('.x-picture-fit');\n\n if (wrapper) {\n wrapper.style.transform = `translate3d(0, ${offset}px, 0)`;\n }\n }\n\n }\n\n}\n\nwindow.addEventListener('init-load', () => {\n for (const element of document.querySelectorAll('.x-grid-basic')) {\n element.instance = element.instance || new GridBasicComponent(element);\n }\n});\n","\nimport Component from '../../../assets/scripts/modules/component';\n\nconst BREAKPOINT = 800;\n\nclass HeaderAdvancedComponent extends Component {\n\n init() {\n this.expandButton = this.element.querySelector('.x-header-advanced__image-caption')\n this.region = this.element.querySelector('.x-header-advanced__caption-short')\n this.regionExpanded = this.element.querySelector('.x-header-advanced__caption-expanded')\n\n if (!this.expandButton || !this.region || !this.regionExpanded) {\n return\n }\n\n this.expandButton.addEventListener('click', () => this.toggleCaption())\n window.addEventListener('resize', () => this.onResize())\n this.onResize()\n }\n\n toggleCaption() {\n if (this.expandButton.getAttribute('aria-expanded') === 'true') {\n this.region.setAttribute('aria-hidden', false)\n this.regionExpanded.setAttribute('aria-hidden', true)\n this.expandButton.setAttribute('aria-expanded', false)\n } else {\n this.region.setAttribute('aria-hidden', true)\n this.expandButton.setAttribute('aria-expanded', true)\n this.regionExpanded.setAttribute('aria-hidden', false)\n }\n }\n\n onResize() {\n if (window.innerWidth < BREAKPOINT) {\n this.expandButton.setAttribute('tabindex', 0);\n } else {\n this.expandButton.setAttribute('tabindex', -1);\n }\n }\n}\n\nwindow.addEventListener('init-load', () => {\n for (const element of document.querySelectorAll('.x-header-advanced')) {\n element.instance = element.instance || new HeaderAdvancedComponent(element);\n }\n});\n","\nimport Component from '../../../assets/scripts/modules/component';\nimport throttle from 'lodash/throttle';\nimport supportsPassiveListener from '../../../vendor/scripts/fabrique/modules/supports-passive-listener';\n\nclass HomePanelsComponent extends Component {\n\n init() {\n\n this.variant = this.element.classList.contains('x-home-panels--small') ? 'small' : 'default';\n this.transformDistance = this.variant === 'small' ? 32 : 64;\n this.items = [...this.element.querySelectorAll('.x-home-panels__item')];\n\n if (!document.documentElement.classList.contains('is-ie') && !document.documentElement.classList.contains('is-edge')) {\n this.initScrollMovement();\n }\n\n }\n\n initScrollMovement() {\n const throttledScroll = throttle(() => window.requestAnimationFrame(() => this.updateScrollMovement()), 10, { leading: true, trailing: true });\n\n window.addEventListener('scroll', () => throttledScroll(), supportsPassiveListener ? { passive: true } : null);\n window.setTimeout(() => this.updateScrollMovement(), 150);\n\n }\n\n updateScrollMovement() {\n for (const item of this.items) {\n const rect = item.getBoundingClientRect();\n const position = Math.min(Math.max(rect.top, -window.innerHeight), window.innerHeight);\n const percentage = position / window.innerHeight * 100;\n const offset = this.transformDistance / 100 * percentage;\n const wrapper = item.querySelector('.x-home-panels__content');\n\n wrapper.style.transform = `translate3d(0, ${offset}px, 0)`;\n }\n\n }\n\n}\n\nwindow.addEventListener('init-load', () => {\n for (const element of document.querySelectorAll('.x-home-panels')) {\n element.instance = element.instance || new HomePanelsComponent(element);\n }\n});\n","\nimport Component from '../../../assets/scripts/modules/component';\nimport throttle from 'lodash/throttle';\nimport supportsPassiveListener from '../../../vendor/scripts/fabrique/modules/supports-passive-listener';\n\nconst FADE_OUT_DISTANCE = 320;\nconst TRANSFORM_DISTANCE = 160;\n\nclass StorySlideComponent extends Component {\n\n init() {\n\n this.container = this.element.querySelector('.x-story-slide__container');\n this.gridContainer = this.element.querySelector('.x-story-slide__grid-container');\n this.image = this.element.querySelector('.x-story-slide__image');\n this.arrow = this.element.querySelector('.x-story-slide__arrow');\n this.content = this.element.querySelector('.x-story-slide__content');\n this.wrapperOuter = this.element.querySelector('.x-story-slide__wrapper-outer');\n this.wrapperInner = this.element.querySelector('.x-story-slide__wrapper-inner');\n\n this.initVHFix();\n\n if (!document.documentElement.classList.contains('is-ie') && !document.documentElement.classList.contains('is-edge')) {\n // No sticky on edge or IE. The first is buggy, the last doesn't work at all.\n if (this.element.classList.contains('x-story-slide--sticky')) {\n this.initSticky();\n }\n\n if (this.content && this.wrapperOuter && this.wrapperInner) {\n this.initScrollMovement();\n }\n }\n\n if (this.arrow) {\n this.initArrow();\n }\n\n }\n\n initVHFix() {\n\n // Don't resize on mobile / tablet due to addressbar\n if (document.documentElement.classList.contains('no-touch')) {\n const throttledResize = throttle(() => window.requestAnimationFrame(() => this.resizeHandlerVHFix()), 500, { leading: true, trailing: true });\n\n window.addEventListener('resize', () => throttledResize(), supportsPassiveListener ? { passive: true } : null);\n }\n\n this.resizeHandlerVHFix();\n\n }\n\n resizeHandlerVHFix() {\n // Make the slide height a bit bigger on touch devices, otherwise scrolling down will show an empty space\n const height = `${Math.max(640, document.documentElement.classList.contains('no-touch') ? window.innerHeight : document.documentElement.clientHeight + 320)}px`;\n\n // These sizes are documented in SCSS.\n // .x-story-slide, .x-story-slide__container, .x-story-slide__grid-container { min-height: 100vh; }\n // .x-story-slide__image { height: 100vh; }\n // .x-story-slide--stick { .x-story-slide__container { min-height: calc(100vh + 320px); }}\n\n this.element.style.minHeight = height;\n\n if (this.gridContainer) {\n this.gridContainer.style.minHeight = height;\n }\n\n if (this.container) {\n if (this.element.classList.contains('x-story-slide--stick')) {\n this.container.style.minHeight = `${window.innerHeight + 320}px`;\n } else {\n this.container.style.minHeight = height;\n }\n }\n\n if (this.image) {\n this.image.style.height = height;\n }\n\n }\n\n initSticky() {\n const throttledResize = throttle(() => window.requestAnimationFrame(() => this.resizeHandlerSticky()), 500, { leading: true, trailing: true });\n\n window.addEventListener('resize', () => throttledResize(), supportsPassiveListener ? { passive: true } : null);\n this.resizeHandlerSticky();\n\n }\n\n resizeHandlerSticky() {\n let stick = false;\n\n if (this.element.parentNode.querySelector('.x-story-slide') === this.element) { // First slide\n stick = true;\n } else if (!this.gridContainer && this.image && this.image.offsetHeight <= window.innerHeight) {\n stick = true;\n } else if (this.gridContainer && this.gridContainer.offsetHeight <= window.innerHeight) {\n stick = true;\n }\n\n this.element.classList.toggle('x-story-slide--stick', stick);\n\n }\n\n initArrow() {\n const throttledClick = throttle(() => window.requestAnimationFrame(() => this.scrollDown()), 250, { leading: true, trailing: true });\n const throttledScroll = throttle(() => window.requestAnimationFrame(() => this.updateArrow()), 50, { leading: true, trailing: true });\n\n this.arrow.addEventListener('click', () => throttledClick(), supportsPassiveListener ? { passive: true } : null);\n window.addEventListener('scroll', () => throttledScroll(), supportsPassiveListener ? { passive: true } : null);\n this.updateArrow();\n\n }\n\n scrollDown() {\n\n window.scrollTo({ left: window.pageXOffset, top: window.innerHeight + 320, behavior: 'smooth' });\n\n }\n\n updateArrow() {\n\n if (window.pageYOffset === 0) {\n this.arrow.style.opacity = 1;\n this.arrow.style.display = 'block';\n } else if (window.pageYOffset > FADE_OUT_DISTANCE) {\n this.arrow.style.opacity = 0;\n this.arrow.style.display = 'none';\n } else {\n const percentage = Math.round((100 / FADE_OUT_DISTANCE) * window.pageYOffset);\n const opacity = 1 - (percentage / 100);\n\n this.arrow.style.opacity = opacity;\n this.arrow.style.display = 'block';\n }\n\n }\n\n initScrollMovement() {\n const throttledScroll = throttle(() => window.requestAnimationFrame(() => this.updateScrollMovement()), 10, { leading: true, trailing: true });\n\n window.addEventListener('scroll', () => throttledScroll(), supportsPassiveListener ? { passive: true } : null);\n window.setTimeout(() => this.updateScrollMovement(), 150);\n\n }\n\n updateScrollMovement() {\n const rect = this.content.getBoundingClientRect();\n const position = Math.min(Math.max(rect.top, -window.innerHeight), window.innerHeight);\n const percentage = position / window.innerHeight * 100;\n const offset = TRANSFORM_DISTANCE / 100 * percentage;\n\n this.wrapperInner.style.transform = `translate3d(0, ${offset}px, 0)`;\n\n }\n\n}\n\nwindow.addEventListener('init-load', () => {\n for (const element of document.querySelectorAll('.x-story-slide')) {\n element.instance = element.instance || new StorySlideComponent(element);\n }\n});\n","\nimport Component from '../../../assets/scripts/modules/component';\nimport focusTrap from 'focus-trap';\nimport supportsPassiveListener from '../../../vendor/scripts/fabrique/modules/supports-passive-listener';\nimport throttle from 'lodash/throttle';\n\nconst FADE_OUT_DISTANCE = 320;\n\nclass MenuBarComponent extends Component {\n\n init() {\n\n this.toggleOverlayButtons = [...this.element.querySelectorAll('.x-menu-bar__button--menu, .x-menu-bar__button--close')];\n this.toggleSearchButtons = [...this.element.querySelectorAll('.x-menu-bar__button--search, .x-form-field__button--search')];\n this.overlay = this.element.querySelector('.x-menu-bar__overlay');\n this.menuItems = [...this.element.querySelectorAll('.x-menu-bar__overlay-menu-item')];\n this.overlayItems = [...this.element.querySelectorAll('.x-menu-bar__overlay-item')];\n this.overlayItemsContainer = this.element.querySelector('.x-menu-bar__overlay-menu-items')\n this.bar = this.element.querySelector('.x-menu-bar__bar');\n this.buttonSearch = this.element.querySelector('.x-menu-bar__button--search');\n this.searchForm = this.element.querySelector('.x-menu-bar__form--search');\n this.searchInput = this.element.querySelector('.x-menu-bar__form-field.x-form-field--search input');\n this.submitButton = this.element.querySelector('.x-form-field__button--search-submit');\n this.searchTip = this.element.querySelector('.x-menu-bar__search-tip');\n this.overlayBackground = this.element.querySelector('.x-menu-bar__overlay-background');\n\n this.initAccessibility();\n this.initSearch();\n this.initOverlay();\n this.initOverlayBackground();\n this.initOverlayMenu();\n this.initSticky();\n\n }\n\n initSearch() {\n\n this.toggleSearchButtons.forEach(element => element.addEventListener('click', () => this.toggleSearch()));\n\n for (const event of [ 'keyup', 'change', 'focus' ]) {\n this.searchInput.addEventListener(event, () => this.checkSearchValue());\n }\n\n this.checkSearchValue();\n this.hideSearchTabbableElements(true);\n\n }\n\n toggleSearch(forceClose = false) {\n const closing = forceClose || this.searchForm?.classList.contains('x-menu-bar__form--visible');\n\n this.buttonSearch.classList.toggle('x-menu-bar__button--hidden', !closing);\n this.searchForm.classList.toggle('x-menu-bar__form--visible', !closing);\n\n if (this.searchTip) {\n this.searchTip.classList.toggle('x-menu-bar__search-tip--visible', !closing);\n this.searchTip.classList.toggle('x-menu-bar__search-tip--hidden', closing);\n }\n\n this.hideSearchTabbableElements(closing);\n\n if (closing) {\n this.searchInput.value = '';\n this.searchFormFocusTrap.deactivate();\n } else {\n this.searchInput.focus();\n this.searchFormFocusTrap.activate();\n }\n\n if (!forceClose) {\n this.toggleOverlay(true);\n }\n\n }\n\n checkSearchValue() {\n\n if (this.searchInput.value === '') {\n this.submitButton.setAttribute('disabled', 'disabled');\n } else {\n this.submitButton.removeAttribute('disabled');\n }\n\n }\n\n initOverlay() {\n const throttledToggle = throttle(() => window.requestAnimationFrame(() => this.toggleOverlay()), 250, { leading: true, trailing: true });\n\n this.toggleOverlayButtons.forEach(element => element.addEventListener('click', () => throttledToggle()));\n\n }\n\n toggleOverlay(forceClose = false) {\n const closing = forceClose || document.documentElement.classList.contains('overlay-visible');\n\n if (document.documentElement.classList.contains('overlay-closing') || document.documentElement.classList.contains('overlay-opening')) {\n return;\n }\n\n if (!closing) {\n this.setAriaHiddenOnOtherElements(true);\n this.hideOverlayTabbableElements(false);\n this.overlayFocusTrap.activate();\n this.toggleOverlayButtons[1].setAttribute('aria-expanded', true);\n } else {\n this.overlayFocusTrap.deactivate();\n this.toggleOverlayButtons[1].setAttribute('aria-expanded', false);\n }\n\n document.documentElement.classList.toggle('overlay-visible', !closing);\n document.documentElement.classList.toggle('overlay-hidden', closing);\n document.documentElement.classList.toggle('prevent-scrolling', !closing);\n\n if (!forceClose) {\n this.toggleSearch(true);\n }\n\n if (closing) {\n this.toggleOverlayMenuItem(null, this.menuItems[0]);\n\n document.documentElement.classList.add('overlay-closing');\n window.setTimeout(() => {\n document.documentElement.classList.remove('overlay-closing');\n this.setAriaHiddenOnOtherElements(false);\n this.hideOverlayTabbableElements(true);\n }, 350);\n } else {\n document.documentElement.classList.add('overlay-opening');\n window.setTimeout(() => {\n document.documentElement.classList.remove('overlay-opening');\n })\n }\n\n }\n\n initOverlayBackground() {\n\n this.overlayBackground.addEventListener('click', () => this.toggleOverlayButtons[0].click());\n\n }\n\n initOverlayMenu() {\n\n this.setAriaHiddenOnOtherElements(false);\n this.hideOverlayTabbableElements(true);\n\n this.menuItems.forEach(element => element.addEventListener('click', event => this.toggleOverlayMenuItem(event)));\n this.toggleOverlayMenuItem(null, this.menuItems[0]);\n\n }\n\n toggleOverlayMenuItem(event = null, element = null) {\n const tab = event ? event.target : element;\n const panel = document.getElementById(tab.getAttribute('aria-controls'));\n\n this.menuItems.forEach(element => {\n const activate = element.getAttribute('aria-controls') === tab.getAttribute('aria-controls');\n element.setAttribute('aria-expanded', activate);\n });\n\n this.overlayItems.forEach(element => {\n const activate = element.getAttribute('aria-labelledby') === panel.getAttribute('aria-labelledby');\n element.setAttribute('aria-expanded', activate);\n });\n\n if (event) {\n event.preventDefault();\n }\n\n }\n\n initSticky() {\n const throttledScroll = throttle(() => window.requestAnimationFrame(() => this.updateSticky()), 50, { leading: true, trailing: true });\n const throttledResize = throttle(() => window.requestAnimationFrame(() => this.updateSticky()), 500, { leading: false, trailing: true });\n\n window.addEventListener('scroll', () => throttledScroll(), supportsPassiveListener ? { passive: true } : null);\n window.addEventListener('resize', () => throttledResize(), supportsPassiveListener ? { passive: true } : null);\n\n this.updateSticky();\n\n }\n\n updateSticky() {\n\n if (this.element.classList.contains('x-menu-bar--fade-out')) {\n this.updateStickyFadeOut();\n } else if (this.element.classList.contains('x-menu-bar--transparent')) {\n this.updateStickyTransparent();\n }\n\n }\n\n updateStickyFadeOut() {\n\n if (window.pageYOffset === 0) {\n this.bar.style.opacity = 1;\n this.bar.style.pointerEvents = 'initial';\n this.bar.style.backgroundColor = null;\n this.bar.style.color = null;\n } else if (window.pageYOffset > document.documentElement.offsetHeight - (window.innerHeight * 2)) {\n const offset = -((document.documentElement.offsetHeight - (window.innerHeight * 2)) - window.pageYOffset);\n const percentage = Math.min(Math.max(offset, 0), 100);\n const opacity = percentage / 100;\n\n this.bar.style.opacity = opacity;\n this.bar.style.pointerEvents = 'initial';\n this.bar.style.backgroundColor = '#fff';\n this.bar.style.color = '#000';\n } else if (window.pageYOffset > FADE_OUT_DISTANCE) {\n this.bar.style.opacity = 0;\n this.bar.style.pointerEvents = 'none';\n this.bar.style.backgroundColor = null;\n this.bar.style.color = null;\n } else {\n const percentage = Math.round((100 / FADE_OUT_DISTANCE) * window.pageYOffset);\n const opacity = 1 - (percentage / 100);\n\n this.bar.style.opacity = opacity;\n this.bar.style.pointerEvents = 'initial';\n this.bar.style.backgroundColor = null;\n this.bar.style.color = null;\n }\n\n }\n\n updateStickyTransparent() {\n\n if (window.pageYOffset === 0) {\n this.bar.style.backgroundColor = null;\n this.bar.style.color = null;\n } else if (window.pageYOffset > FADE_OUT_DISTANCE) {\n this.bar.style.backgroundColor = '#fff';\n this.bar.style.color = '#000';\n } else {\n const percentage = Math.round((100 / FADE_OUT_DISTANCE) * window.pageYOffset);\n const white = Math.round((255 / 100) * percentage);\n const black = 255 - white;\n const opacity = percentage / 100;\n\n this.bar.style.backgroundColor = `rgba(${white}, ${white}, ${white}, ${opacity})`;\n this.bar.style.color = `rgb(${black}, ${black}, ${black})`;\n }\n\n }\n\n initAccessibility() {\n\n this.setAriaHiddenOnOtherElements(false);\n this.hideOverlayTabbableElements(false);\n\n this.overlayFocusTrap = focusTrap(this.overlay, {\n onActivate: () => {},\n onDeactivate: () => {\n this.toggleOverlay(true);\n this.element.querySelector('.x-menu-bar__button--menu').focus();\n },\n escapeDeactivates: true,\n clickOutsideDeactivates: true,\n returnFocusOnDeactivate: false,\n });\n\n this.searchFormFocusTrap = focusTrap(this.searchForm, {\n onActivate: () => {},\n onDeactivate: () => {\n this.toggleSearch(true);\n this.element.querySelector('.x-menu-bar__button--search').focus();\n },\n escapeDeactivates: true,\n clickOutsideDeactivates: true,\n returnFocusOnDeactivate: false,\n });\n\n const onResize = () => {\n\n if (window.innerWidth < 1180) {\n this.overlayItemsContainer.removeAttribute('role')\n this.overlayItems.forEach(element => element.setAttribute('role', 'region'))\n } else {\n this.overlayItemsContainer.setAttribute('role', 'tablist')\n this.overlayItems.forEach(element => element.setAttribute('role', 'tab'))\n }\n\n }\n\n window.addEventListener('resize', () => onResize());\n onResize();\n\n }\n\n setAriaHiddenOnOtherElements(hidden = true) {\n const nonModalDialogVisibleElements = [...document.querySelectorAll('.x-content, .x-footer, .x-footer-bar')];\n const modalDialogVisibleElements = [...document.querySelectorAll('.x-menu-bar__overlay')];\n\n nonModalDialogVisibleElements.forEach(element => element.setAttribute('aria-hidden', hidden));\n modalDialogVisibleElements.forEach(element => element.setAttribute('aria-hidden', !hidden));\n\n }\n\n hideOverlayTabbableElements(hidden = true) {\n const modalDialogTabbableElements = [...document.querySelectorAll('.x-menu-bar__overlay a[href], .x-menu-bar__overlay button, .x-menu-bar__overlay-item--mobile, .x-menu-bar__overlay')];\n\n modalDialogTabbableElements.forEach(element => element.classList.toggle('is-hidden', hidden));\n }\n\n hideSearchTabbableElements(hidden = true) {\n const searchOverlayTabbableElements = [...document.querySelectorAll('.x-menu-bar__form input, .x-menu-bar__search-tip .x-link-list__link')];\n\n searchOverlayTabbableElements.forEach(element => element.classList.toggle('is-hidden', hidden));\n }\n\n}\n\nwindow.addEventListener('init-load', () => {\n for (const element of document.querySelectorAll('.x-menu-bar')) {\n element.instance = element.instance || new MenuBarComponent(element);\n }\n});\n","\nimport Component from '../../../assets/scripts/modules/component';\n\nexport default class SkipToMainComponent extends Component {\n\n init() {\n\n this.link = this.element.querySelector('.x-link');\n\n if (!this.link) {\n return;\n }\n\n this.link.addEventListener('click', event => this.clickHandler(event));\n\n }\n\n update() {\n //\n }\n\n destroy() {\n //\n }\n\n clickHandler(event) {\n const href = (this.link.getAttribute('href') || '#').split('#')[1];\n\n if (!href) {\n return;\n }\n\n const target = document.getElementById(href);\n\n if (!target) {\n return;\n }\n\n const rect = target.getBoundingClientRect();\n\n window.scrollTo(0, rect.y);\n\n if (event) {\n event.preventDefault();\n event.stopPropagation();\n }\n\n window.requestAnimationFrame(() => this.link.blur());\n\n }\n\n}\n\nwindow.addEventListener('init-load', () => {\n for (const element of document.querySelectorAll('.x-skip-to-main')) {\n element.instance = element.instance || new SkipToMainComponent(element);\n }\n});\n","\nimport Component from '../../../assets/scripts/modules/component';\n\nclass TickerBarComponent extends Component {\n\n init() {\n\n this.buttonPause = this.element.querySelector('.x-ticker-bar__button--pause');\n if (!this.buttonPause) {\n return;\n }\n this.buttonPause.addEventListener('click', () => {\n this.element.classList.add('x-ticker-bar--pause');\n })\n\n this.buttonPlay = this.element.querySelector('.x-ticker-bar__button--play');\n if (!this.buttonPlay) {\n return;\n }\n this.buttonPlay.addEventListener('click', () => {\n this.element.classList.remove('x-ticker-bar--pause');\n })\n\n }\n}\n\nwindow.addEventListener('init-load', () => {\n for (const element of document.querySelectorAll('.x-ticker-bar')) {\n element.instance = element.instance || new TickerBarComponent(element);\n }\n});\n","\n// Fire custom event cross-browser\nexport default function fireCustomEvent (name = '', detail = {}, bubbles = false, cancelable = false) {\n\n if (!name) {\n return;\n }\n\n let evt;\n\n try {\n evt = new CustomEvent(name, { bubbles: bubbles, cancelable: cancelable, detail: detail });\n } catch(e) { // IE11\n evt = document.createEvent('CustomEvent');\n evt.initCustomEvent(name, bubbles, cancelable, detail);\n }\n\n window.dispatchEvent(evt);\n\n}\n","\n// Gives a nice Fabrique message in the console\n// You can leave the message, color or background empty for the defaults.\nexport default function displayHelloConsoleMessage (message = 'Made with ♥ by Fabrique', color = '#000', backgroundColor = '#fff', heartColor = '#f00', heartBackgroundColor = '#fff') {\n\n if (window.navigator.userAgent.toLowerCase().indexOf('chrome') > -1 || window.navigator.userAgent.toLowerCase().indexOf('firefox') > -1) {\n const args = [\n `\\n %c` + message.replace(`♥`, `%c♥%c`) + ` \\n`,\n `font: 16px/1.5em serif; background-color: ${backgroundColor}; color: ${color};`,\n `font: 13px/1.5em serif; background-color: ${heartBackgroundColor}; color: ${heartColor};`,\n `font: 16px/1.5em serif; background-color: ${backgroundColor}; color: ${color};`,\n ];\n\n window.console.log.apply(console, args);\n } else {\n //window.console.log(message);\n }\n\n}\n","\nimport './../../components/atoms/background-image/background-image.js';\nimport './../../components/atoms/button/button.js';\nimport './../../components/atoms/picture/picture.js';\nimport './../../components/atoms/share-button/share-button.js';\nimport './../../components/atoms/tooltip/tooltip.js';\nimport './../../components/atoms/video-embed/video-embed.js';\nimport './../../components/atoms/video/video.js';\nimport './../../components/molecules/back-to-top/back-to-top.js';\nimport './../../components/molecules/form/form.js';\nimport './../../components/organisms/gallery-composition/gallery-composition.js';\nimport './../../components/organisms/grid-advanced/grid-advanced.js';\nimport './../../components/organisms/grid-basic/grid-basic.js';\nimport './../../components/organisms/header-advanced/header-advanced.js';\nimport './../../components/organisms/home-panels/home-panels.js';\nimport './../../components/organisms/story-slide/story-slide.js';\nimport './../../components/structures/menu-bar/menu-bar.js';\nimport './../../components/structures/skip-to-main/skip-to-main.js';\nimport './../../components/structures/ticker-bar/ticker-bar.js';\n\nimport displayHelloConsoleMessage from './../../vendor/scripts/fabrique/modules/console-hello';\nimport fireCustomEvent from './../../vendor/scripts/fabrique/modules/fire-custom-event';\n//import konamiCode from './../../vendor/scripts/fabrique/modules/konami-code';\nimport preventTransitionsOnResize from './../../vendor/scripts/fabrique/modules/prevent-transitions-on-resize';\nimport setAllExternalLinksToTargetBlank from './../../vendor/scripts/fabrique/modules/external-links-target-blank';\nimport showBrowserUpdateMessage from './../../vendor/scripts/fabrique/modules/browser-update';\n\ndisplayHelloConsoleMessage();\nsetAllExternalLinksToTargetBlank();\npreventTransitionsOnResize();\n\n// TODO: Update this to current browser scope!\nshowBrowserUpdateMessage({\n vs: {\n //i: 10, // Visible up to IE10\n i: '11.125.16299.0', // Visible up to latest IE10 on Windows 10 as of moment of building\n f: -3, // Visible up to Firefox 3 versions earlier then current\n o: -1, // Visible up to Opera 1 version earlier then current\n s: 9, // Visible up to Safari 9\n c: -5, // Visible up to Chrome 5 versions earlier then current,\n ios: 9, // Visible up to iOS 9\n },\n api: 4,\n test: false, // Turn this on to test\n insecure: true, // Visible on insecure browsers\n unsupported: true, // Visible on browsers unsupported by vendor\n});\n\n// There are 4 load events:\n// - 'init-immediate': (compiles when the script is loaded; blocks rendering)\n// - 'init-load': (on DOMContentLoaded event; does not block rendering)\n// - 'init-after-load': (on Load event, slightly after DOMContentLoaded)\n// - 'init-delayed-load': (after Load event, with a slight delay, for iframes and such)\n// Usually, the 'init-load' event will suffice.\nfireCustomEvent('init-immediate');\ndocument.addEventListener('DOMContentLoaded', () => fireCustomEvent('init-load'));\nwindow.addEventListener('load', () => fireCustomEvent('init-after-load'));\nwindow.addEventListener('load', () => window.setTimeout(() => fireCustomEvent('init-delayed-load', 500)));\n\n// Focus stuff\ndocument.addEventListener('keydown', () => document.documentElement.classList.add('key-pressed'));\ndocument.addEventListener('mousedown', () => document.documentElement.classList.remove('key-pressed'));\ndocument.addEventListener('touchstart', () => document.documentElement.classList.remove('key-pressed'));\n\n// Show Neat debug grid on L hotkey and grid on G hotkey when document is focussed.\nif (WEBPACK_ENV.ENV === 'development') {\n document.addEventListener('keydown', event => {\n if (event.target !== document.body) {\n return;\n }\n\n if (event.key === 'l') {\n document.documentElement.classList.toggle('debug-layout');\n } else if (event.key === 'g') {\n document.documentElement.classList.toggle('debug-grid');\n }\n\n document.cookie = `debug-layout=${document.documentElement.classList.contains('debug-layout')}; path=/;`;\n document.cookie = `debug-grid=${document.documentElement.classList.contains('debug-grid')}; path=/;`;\n });\n\n document.documentElement.classList.toggle('debug-layout', document.cookie.indexOf('debug-layout=true') !== -1);\n document.documentElement.classList.toggle('debug-grid', document.cookie.indexOf('debug-grid=true') !== -1);\n}\n","\n// Automatically set the target to '_blank' for external links.\nexport default function setAllExternalLinksToTargetBlank() {\n const elements = document.querySelectorAll('a');\n\n for (let element of elements) {\n if (element.href.substring(0, 4) === 'http' && !new RegExp('/' + window.location.host + '/').test(element.href)) {\n if (!element.target) {\n element.target = '_blank';\n }\n\n element.className = (element.className + ' is-external').trim();\n\n // Prevent TabNabbing; see: https://medium.com/@jitbit/target-blank-the-most-underestimated-vulnerability-ever-96e328301f4c\n //element.rel = (element.rel + ' noopener noreferrer').trim();\n }\n }\n\n}\n","\n// Prevents transitions on resize\n// Changing transition properties between breakpoints otherwise 'resets' the animation, so that a transition flash is visible.\n// Needs the following css: html.prevent-transitions * { transition: none !important; }\nconst DELAY = 10;\n\nexport default function preventTransitionsOnResize() {\n let timeout;\n\n window.addEventListener('resize', event => {\n document.documentElement.classList.add('prevent-transitions');\n\n timeout = window.clearTimeout(timeout);\n timeout = window.setTimeout(event => {\n document.documentElement.classList.remove('prevent-transitions');\n }, DELAY);\n });\n\n}\n","\n// Browser update message. Choose the list of browsers via the selection tool at: https://browser-update.org/\n// For customization options, see: https://browser-update.org/customize.html\nexport default function showBrowserUpdateMessage (options = { vs: { i: 10, f: -2, o: -2, s: 9, c: -2 }, api: 4, test: true, insecure: true, unsupported: true }) {\n const showDelay = 5000;\n\n window.$buoop = options;\n\n function insertStyles() {\n let e;\n let style = '';\n\n style += 'html { margin-top: 0 !important; }';\n style += '#buorg { width: 60%; top: 0; left: 20%; background: #fff; text-align: center; color: #000; line-height: 155%; border: 0; box-shadow: 0 0 3px rgba(0, 0, 0, .25); }';\n style += '#buorg > div { padding: 10px 20px; }';\n style += '#buorg > div > a:before { content: \"\"; display: table; }';\n style += '#buorgclose { top: 10px; right: 10px; }';\n style += '#buorg a { color: initial; }';\n\n e = document.createElement('style');\n e.id = 'browser-update-styles';\n e.innerText = style;\n document.body.appendChild(e);\n\n }\n\n function insertScript() {\n let e;\n\n e = document.createElement('script');\n e.id = 'browser-update-script';\n e.src = '//browser-update.org/update.min.js';\n document.body.appendChild(e);\n\n }\n\n function initNotice() {\n\n window.setTimeout(() => {\n insertStyles();\n insertScript();\n }, showDelay);\n\n }\n\n try {\n document.addEventListener('DOMContentLoaded', initNotice, false);\n } catch(e) {\n window.attachEvent('onload', initNotice);\n }\n\n}\n"],"sourceRoot":""}