{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///external \"foundation\"","webpack:///../@valtech/utilities/src/utilities/throttle.js","webpack:///../@valtech/utilities/src/utilities/customVhProperty.js","webpack:///../@valtech/utilities/src/utilities/debounce.js","webpack:///../@valtech/utilities/src/index.js","webpack:////home/vsts/work/1/s/node_modules/headroom.js/dist/headroom.js","webpack:///./src/js/navigation.js","webpack:////home/vsts/work/1/s/node_modules/body-scroll-lock/lib/bodyScrollLock.min.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","foundation","throttle","func","limit","lastFunc","lastRan","args","context","this","clearTimeout","setTimeout","Date","now","apply","setValue","vh","window","innerHeight","document","documentElement","style","setProperty","debounce","delay","timer","customVhProperty","addEventListener","root","factory","features","classList","rAF","requestAnimationFrame","webkitRequestAnimationFrame","mozRequestAnimationFrame","Debouncer","callback","ticking","isDOMElement","obj","nodeType","Headroom","elem","options","extend","arguments","length","Error","result","replacement","lastKnownScrollY","tolerance","down","up","classes","offset","scroller","initialised","onPin","onUnpin","onTop","onNotTop","onBottom","onNotBottom","constructor","update","requestTick","rafCallback","handleEvent","init","cutsTheMustard","debouncer","add","initial","attachEvent","destroy","remove","removeEventListener","getScrollY","unpin","contains","pinned","unpinned","pin","top","notTop","bottom","notBottom","undefined","pageYOffset","scrollTop","body","parentNode","getViewportHeight","clientHeight","getElementPhysicalHeight","elm","Math","max","offsetHeight","getScrollerPhysicalHeight","getDocumentHeight","scrollHeight","getElementHeight","getScrollerHeight","isOutOfBounds","currentScrollY","pastTop","pastBottom","toleranceExceeded","direction","abs","shouldUnpin","scrollingDown","pastOffset","shouldPin","scrollingUp","scrollDirection","bodyScrollLock","require","scModus","sitecoreUtils","getSitecoreMode","idNames","collapse","menu","lang","classNames","active","open","shown","elements","rootNode","querySelector","mobMenu","trigger","langTrigger","langWrapper","bootstrap","lockScroll","request","target1","disableBodyScroll","clearAllBodyScrollLocks","mobMenuToggle","toggle","overflow","mobMenuToggleLanguages","initNavigation","console","warn","mobMenuInit","e","target","readyState","Array","isArray","from","u","some","allowTouchMove","event","touches","preventDefault","paddingRight","f","a","navigator","platform","test","maxTouchPoints","v","error","targetElement","concat","ontouchstart","targetTouches","clientY","ontouchmove","stopPropagation","passive","reserveScrollBarGap","innerWidth","clientWidth","forEach","enableBodyScroll","filter"],"mappings":"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","file":"js/navigation.min.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 = 3);\n","module.exports = foundation;","/**\n * Throttle function: ensures the function is called at most once in the given time interval.\n * @param {Function} func - Function to throttle.\n * @param {number} limit - Time in milliseconds to wait before allowing the next execution.\n * @returns {Function} - Throttled function.\n */\nexport function throttle(func, limit) {\n let lastFunc;\n let lastRan;\n \n return function (...args) {\n const context = this;\n if (!lastRan) {\n func.apply(context, args);\n lastRan = Date.now();\n } else {\n clearTimeout(lastFunc);\n lastFunc = setTimeout(() => {\n if (Date.now() - lastRan >= limit) {\n func.apply(context, args);\n lastRan = Date.now();\n }\n }, limit - (Date.now() - lastRan));\n }\n };\n}","import { throttle } from './throttle';\n\n/**\n * Get the viewport height and multiple it by 1% to get a value for a vh unit\n * Set the value in the --vh custom property to the root of the document\n * @returns {undefined}\n */\nfunction setValue() {\n const vh = window.innerHeight * 0.01;\n document.documentElement.style.setProperty('--vh', `${vh}px`);\n}\n\n/**\n * Sets a CSS Custom Property for actual vh value and updates it on resize\n * @see {https://css-tricks.com/the-trick-to-viewport-units-on-mobile} for detailled explanation\n * @returns {undefined}\n */\nexport default function customVhProperty() {\n setValue();\n\n window.addEventListener('resize', throttle(() => {\n setValue();\n }, 100));\n\n window.addEventListener('scroll', throttle(() => {\n setValue();\n }, 100));\n}\n","/**\n * Debounce function: ensures the function is only called after a delay once no calls are made in that period.\n * @param {Function} func - Function to debounce.\n * @param {number} delay - Time in milliseconds to wait before executing the function.\n * @returns {Function} - Debounced function.\n */\nexport function debounce(func, delay) {\n let timer;\n return function (...args) {\n const context = this;\n clearTimeout(timer);\n timer = setTimeout(() => func.apply(context, args), delay);\n };\n}","import customVhProperty from './utilities/customVhProperty';\nimport { throttle } from './utilities/throttle';\nimport { debounce } from './utilities/debounce';\n\nexport { throttle, debounce };\nexport default customVhProperty;\n","/*!\n * headroom.js v0.9.4 - Give your page some headroom. Hide your header until you need it\n * Copyright (c) 2017 Nick Williams - http://wicky.nillia.ms/headroom.js\n * License: MIT\n */\n\n(function(root, factory) {\n 'use strict';\n\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define([], factory);\n }\n else if (typeof exports === 'object') {\n // COMMONJS\n module.exports = factory();\n }\n else {\n // BROWSER\n root.Headroom = factory();\n }\n}(this, function() {\n 'use strict';\n\n /* exported features */\n \n var features = {\n bind : !!(function(){}.bind),\n classList : 'classList' in document.documentElement,\n rAF : !!(window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame)\n };\n window.requestAnimationFrame = window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame;\n \n /**\n * Handles debouncing of events via requestAnimationFrame\n * @see http://www.html5rocks.com/en/tutorials/speed/animations/\n * @param {Function} callback The callback to handle whichever event\n */\n function Debouncer (callback) {\n this.callback = callback;\n this.ticking = false;\n }\n Debouncer.prototype = {\n constructor : Debouncer,\n \n /**\n * dispatches the event to the supplied callback\n * @private\n */\n update : function() {\n this.callback && this.callback();\n this.ticking = false;\n },\n \n /**\n * ensures events don't get stacked\n * @private\n */\n requestTick : function() {\n if(!this.ticking) {\n requestAnimationFrame(this.rafCallback || (this.rafCallback = this.update.bind(this)));\n this.ticking = true;\n }\n },\n \n /**\n * Attach this as the event listeners\n */\n handleEvent : function() {\n this.requestTick();\n }\n };\n /**\n * Check if object is part of the DOM\n * @constructor\n * @param {Object} obj element to check\n */\n function isDOMElement(obj) {\n return obj && typeof window !== 'undefined' && (obj === window || obj.nodeType);\n }\n \n /**\n * Helper function for extending objects\n */\n function extend (object /*, objectN ... */) {\n if(arguments.length <= 0) {\n throw new Error('Missing arguments in extend function');\n }\n \n var result = object || {},\n key,\n i;\n \n for (i = 1; i < arguments.length; i++) {\n var replacement = arguments[i] || {};\n \n for (key in replacement) {\n // Recurse into object except if the object is a DOM element\n if(typeof result[key] === 'object' && ! isDOMElement(result[key])) {\n result[key] = extend(result[key], replacement[key]);\n }\n else {\n result[key] = result[key] || replacement[key];\n }\n }\n }\n \n return result;\n }\n \n /**\n * Helper function for normalizing tolerance option to object format\n */\n function normalizeTolerance (t) {\n return t === Object(t) ? t : { down : t, up : t };\n }\n \n /**\n * UI enhancement for fixed headers.\n * Hides header when scrolling down\n * Shows header when scrolling up\n * @constructor\n * @param {DOMElement} elem the header element\n * @param {Object} options options for the widget\n */\n function Headroom (elem, options) {\n options = extend(options, Headroom.options);\n \n this.lastKnownScrollY = 0;\n this.elem = elem;\n this.tolerance = normalizeTolerance(options.tolerance);\n this.classes = options.classes;\n this.offset = options.offset;\n this.scroller = options.scroller;\n this.initialised = false;\n this.onPin = options.onPin;\n this.onUnpin = options.onUnpin;\n this.onTop = options.onTop;\n this.onNotTop = options.onNotTop;\n this.onBottom = options.onBottom;\n this.onNotBottom = options.onNotBottom;\n }\n Headroom.prototype = {\n constructor : Headroom,\n \n /**\n * Initialises the widget\n */\n init : function() {\n if(!Headroom.cutsTheMustard) {\n return;\n }\n \n this.debouncer = new Debouncer(this.update.bind(this));\n this.elem.classList.add(this.classes.initial);\n \n // defer event registration to handle browser\n // potentially restoring previous scroll position\n setTimeout(this.attachEvent.bind(this), 100);\n \n return this;\n },\n \n /**\n * Unattaches events and removes any classes that were added\n */\n destroy : function() {\n var classes = this.classes;\n \n this.initialised = false;\n \n for (var key in classes) {\n if(classes.hasOwnProperty(key)) {\n this.elem.classList.remove(classes[key]);\n }\n }\n \n this.scroller.removeEventListener('scroll', this.debouncer, false);\n },\n \n /**\n * Attaches the scroll event\n * @private\n */\n attachEvent : function() {\n if(!this.initialised){\n this.lastKnownScrollY = this.getScrollY();\n this.initialised = true;\n this.scroller.addEventListener('scroll', this.debouncer, false);\n \n this.debouncer.handleEvent();\n }\n },\n \n /**\n * Unpins the header if it's currently pinned\n */\n unpin : function() {\n var classList = this.elem.classList,\n classes = this.classes;\n \n if(classList.contains(classes.pinned) || !classList.contains(classes.unpinned)) {\n classList.add(classes.unpinned);\n classList.remove(classes.pinned);\n this.onUnpin && this.onUnpin.call(this);\n }\n },\n \n /**\n * Pins the header if it's currently unpinned\n */\n pin : function() {\n var classList = this.elem.classList,\n classes = this.classes;\n \n if(classList.contains(classes.unpinned)) {\n classList.remove(classes.unpinned);\n classList.add(classes.pinned);\n this.onPin && this.onPin.call(this);\n }\n },\n \n /**\n * Handles the top states\n */\n top : function() {\n var classList = this.elem.classList,\n classes = this.classes;\n \n if(!classList.contains(classes.top)) {\n classList.add(classes.top);\n classList.remove(classes.notTop);\n this.onTop && this.onTop.call(this);\n }\n },\n \n /**\n * Handles the not top state\n */\n notTop : function() {\n var classList = this.elem.classList,\n classes = this.classes;\n \n if(!classList.contains(classes.notTop)) {\n classList.add(classes.notTop);\n classList.remove(classes.top);\n this.onNotTop && this.onNotTop.call(this);\n }\n },\n \n bottom : function() {\n var classList = this.elem.classList,\n classes = this.classes;\n \n if(!classList.contains(classes.bottom)) {\n classList.add(classes.bottom);\n classList.remove(classes.notBottom);\n this.onBottom && this.onBottom.call(this);\n }\n },\n \n /**\n * Handles the not top state\n */\n notBottom : function() {\n var classList = this.elem.classList,\n classes = this.classes;\n \n if(!classList.contains(classes.notBottom)) {\n classList.add(classes.notBottom);\n classList.remove(classes.bottom);\n this.onNotBottom && this.onNotBottom.call(this);\n }\n },\n \n /**\n * Gets the Y scroll position\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Window.scrollY\n * @return {Number} pixels the page has scrolled along the Y-axis\n */\n getScrollY : function() {\n return (this.scroller.pageYOffset !== undefined)\n ? this.scroller.pageYOffset\n : (this.scroller.scrollTop !== undefined)\n ? this.scroller.scrollTop\n : (document.documentElement || document.body.parentNode || document.body).scrollTop;\n },\n \n /**\n * Gets the height of the viewport\n * @see http://andylangton.co.uk/blog/development/get-viewport-size-width-and-height-javascript\n * @return {int} the height of the viewport in pixels\n */\n getViewportHeight : function () {\n return window.innerHeight\n || document.documentElement.clientHeight\n || document.body.clientHeight;\n },\n \n /**\n * Gets the physical height of the DOM element\n * @param {Object} elm the element to calculate the physical height of which\n * @return {int} the physical height of the element in pixels\n */\n getElementPhysicalHeight : function (elm) {\n return Math.max(\n elm.offsetHeight,\n elm.clientHeight\n );\n },\n \n /**\n * Gets the physical height of the scroller element\n * @return {int} the physical height of the scroller element in pixels\n */\n getScrollerPhysicalHeight : function () {\n return (this.scroller === window || this.scroller === document.body)\n ? this.getViewportHeight()\n : this.getElementPhysicalHeight(this.scroller);\n },\n \n /**\n * Gets the height of the document\n * @see http://james.padolsey.com/javascript/get-document-height-cross-browser/\n * @return {int} the height of the document in pixels\n */\n getDocumentHeight : function () {\n var body = document.body,\n documentElement = document.documentElement;\n \n return Math.max(\n body.scrollHeight, documentElement.scrollHeight,\n body.offsetHeight, documentElement.offsetHeight,\n body.clientHeight, documentElement.clientHeight\n );\n },\n \n /**\n * Gets the height of the DOM element\n * @param {Object} elm the element to calculate the height of which\n * @return {int} the height of the element in pixels\n */\n getElementHeight : function (elm) {\n return Math.max(\n elm.scrollHeight,\n elm.offsetHeight,\n elm.clientHeight\n );\n },\n \n /**\n * Gets the height of the scroller element\n * @return {int} the height of the scroller element in pixels\n */\n getScrollerHeight : function () {\n return (this.scroller === window || this.scroller === document.body)\n ? this.getDocumentHeight()\n : this.getElementHeight(this.scroller);\n },\n \n /**\n * determines if the scroll position is outside of document boundaries\n * @param {int} currentScrollY the current y scroll position\n * @return {bool} true if out of bounds, false otherwise\n */\n isOutOfBounds : function (currentScrollY) {\n var pastTop = currentScrollY < 0,\n pastBottom = currentScrollY + this.getScrollerPhysicalHeight() > this.getScrollerHeight();\n \n return pastTop || pastBottom;\n },\n \n /**\n * determines if the tolerance has been exceeded\n * @param {int} currentScrollY the current scroll y position\n * @return {bool} true if tolerance exceeded, false otherwise\n */\n toleranceExceeded : function (currentScrollY, direction) {\n return Math.abs(currentScrollY-this.lastKnownScrollY) >= this.tolerance[direction];\n },\n \n /**\n * determine if it is appropriate to unpin\n * @param {int} currentScrollY the current y scroll position\n * @param {bool} toleranceExceeded has the tolerance been exceeded?\n * @return {bool} true if should unpin, false otherwise\n */\n shouldUnpin : function (currentScrollY, toleranceExceeded) {\n var scrollingDown = currentScrollY > this.lastKnownScrollY,\n pastOffset = currentScrollY >= this.offset;\n \n return scrollingDown && pastOffset && toleranceExceeded;\n },\n \n /**\n * determine if it is appropriate to pin\n * @param {int} currentScrollY the current y scroll position\n * @param {bool} toleranceExceeded has the tolerance been exceeded?\n * @return {bool} true if should pin, false otherwise\n */\n shouldPin : function (currentScrollY, toleranceExceeded) {\n var scrollingUp = currentScrollY < this.lastKnownScrollY,\n pastOffset = currentScrollY <= this.offset;\n \n return (scrollingUp && toleranceExceeded) || pastOffset;\n },\n \n /**\n * Handles updating the state of the widget\n */\n update : function() {\n var currentScrollY = this.getScrollY(),\n scrollDirection = currentScrollY > this.lastKnownScrollY ? 'down' : 'up',\n toleranceExceeded = this.toleranceExceeded(currentScrollY, scrollDirection);\n \n if(this.isOutOfBounds(currentScrollY)) { // Ignore bouncy scrolling in OSX\n return;\n }\n \n if (currentScrollY <= this.offset ) {\n this.top();\n } else {\n this.notTop();\n }\n \n if(currentScrollY + this.getViewportHeight() >= this.getScrollerHeight()) {\n this.bottom();\n }\n else {\n this.notBottom();\n }\n \n if(this.shouldUnpin(currentScrollY, toleranceExceeded)) {\n this.unpin();\n }\n else if(this.shouldPin(currentScrollY, toleranceExceeded)) {\n this.pin();\n }\n \n this.lastKnownScrollY = currentScrollY;\n }\n };\n /**\n * Default options\n * @type {Object}\n */\n Headroom.options = {\n tolerance : {\n up : 0,\n down : 0\n },\n offset : 0,\n scroller: window,\n classes : {\n pinned : 'headroom--pinned',\n unpinned : 'headroom--unpinned',\n top : 'headroom--top',\n notTop : 'headroom--not-top',\n bottom : 'headroom--bottom',\n notBottom : 'headroom--not-bottom',\n initial : 'headroom'\n }\n };\n Headroom.cutsTheMustard = typeof features !== 'undefined' && features.rAF && features.bind && features.classList;\n\n return Headroom;\n}));","/**\n * Navigation show/hode scroll functionality.\n */\n\nimport Headroom from 'headroom.js';\nimport { sitecoreUtils } from 'foundation-theming';\nimport customVhProperty from '@valtech/utilities';\n\nconst bodyScrollLock = require('body-scroll-lock');\n\n// get current SiteCore modus\nconst scModus = sitecoreUtils.getSitecoreMode();\n\n// Required id's\nconst idNames = {\n bootstrap: {\n collapse: {\n menu: 'js-collapse-menu',\n lang: 'js-collapse-lang',\n },\n },\n};\n\n// Required classnames\nconst classNames = {\n mobMenuTrigger: 'main-navigation__mob-trigger',\n mobMenu: 'main-navigation__mob-wrapper',\n mobMenuLangTrigger: 'main-navigation__mob-lang-trigger',\n mobMenuLangWrapper: 'main-navigation__mob-languages-wrapper',\n modifiers: {\n active: 'is-active',\n open: 'is-open',\n shown: 'is-shown',\n },\n bootstrap: {\n show: 'show',\n collapsed: 'collapsed',\n },\n};\n\n// Required dom nodes\nconst elements = {\n rootNode: document.querySelector('header.page-header'),\n mobMenu: {\n trigger: document.querySelector(`.${classNames.mobMenuTrigger}`),\n menu: document.querySelector(`.${classNames.mobMenu}`),\n langTrigger: document.querySelector(`.${classNames.mobMenuLangTrigger}`),\n langWrapper: document.querySelector(`.${classNames.mobMenuLangWrapper}`),\n },\n bootstrap: {\n collapse: {\n menu: document.querySelector(`#${idNames.bootstrap.collapse.menu}`),\n lang: document.querySelector(`#${idNames.bootstrap.collapse.lang}`),\n },\n },\n};\n\n/**\n * Lock scroll using Body Scroll Lock\n * @param {boolean} request True to lock (default), false to unlock\n * @returns {undefined}\n * @see {@link https://github.com/willmcpo/body-scroll-lock|GitHub}\n * @todo Refactor to use as utility\n */\nfunction lockScroll(request = true) {\n const target1 = document.querySelector(`.${classNames.mobMenu}`);\n\n if (request) {\n bodyScrollLock.disableBodyScroll(target1);\n return;\n }\n\n bodyScrollLock.clearAllBodyScrollLocks();\n}\n\n/**\n * Open, closes or toggles (default) the mobile menu\n * @param {string} action Request to handle\n * @returns {undefined}\n */\nfunction mobMenuToggle(request = null) {\n const { trigger, menu } = elements.mobMenu;\n const { active, open } = classNames.modifiers;\n\n if (request === 'open') {\n trigger.classList.add(active);\n menu.classList.add(open);\n lockScroll();\n return;\n }\n\n if (request === 'close') {\n trigger.classList.remove(active);\n menu.classList.remove(open);\n lockScroll(false);\n return;\n }\n\n trigger.classList.toggle(active);\n menu.classList.toggle(open);\n\n if (menu.classList.contains(open)) lockScroll();\n else {\n lockScroll(false);\n mobMenuToggleLanguages('close');\n }\n}\n\n/**\n * Toggles the Bootstrap collapse menu and languages\n * Needs to be set up manually because the design has only one trigger\n * @returns {undefined}\n */\nfunction mobMenuToggleLanguages(request = null) {\n const { menu } = elements.mobMenu;\n\n if (request === 'open') {\n menu.style.overflow = 'hidden';\n return;\n }\n\n if (request === 'close') {\n menu.style.overflow = '';\n return;\n }\n\n if (menu.style.overflow === 'hidden') menu.style.overflow = '';\n else menu.style.overflow = 'hidden';\n}\n\n/**\n * Sets up a click event for the mobile menu trigger and mob menu languages btn\n * @returns {undefined}\n */\nfunction mobMenuInit() {\n const { trigger /* , langTrigger */ } = elements.mobMenu;\n\n trigger.addEventListener('click', mobMenuToggle, { offset: 60 });\n}\n\n/**\n * Initializes scrolling functionality of main site header.\n * @returns {undefined}\n */\nexport default function initNavigation() {\n if (!scModus) {\n if (elements.rootNode) {\n const headroom = new Headroom(elements.rootNode, {\n offset: elements.rootNode.offsetHeight,\n tolerance: { up: 0, down: 60 },\n });\n\n headroom.init();\n }\n } else {\n console.warn('Sitecore Edit, Preview or Debug modus: Prevented Navigation Scroll functionality.');\n }\n\n mobMenuInit();\n}\n\n// on document ready\ndocument.addEventListener('readystatechange', (e) => {\n if (e.target.readyState === 'complete') {\n customVhProperty();\n initNavigation();\n }\n});\n","!function(e,t){if(\"function\"==typeof define&&define.amd)define([\"exports\"],t);else if(\"undefined\"!=typeof exports)t(exports);else{var o={};t(o),e.bodyScrollLock=o}}(this,function(exports){\"use strict\";function i(e){if(Array.isArray(e)){for(var t=0,o=Array(e.length);t