{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/index.ts","webpack:///./src/scripts/collapser.ts","webpack:///./src/scripts/backToTopButton.ts","webpack:///./src/scripts/cookieConsent.ts","webpack:///./src/scripts/messageHub.ts","webpack:///./src/scripts/hasFocus.ts","webpack:///./src/scripts/toggleBodyScroll.ts","webpack:///./src/scripts/stickyHeader.ts","webpack:///./src/scripts/intlTelInputValidation.ts","webpack:///./src/scripts/browsePublications.ts"],"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","toggleCollapse","e","self","$","this","focusTarget","data","preventDefault","stopPropagation","toggleClass","focus","click","backToTopButton","document","getElementById","addEventListener","body","scrollTop","documentElement","window","onscroll","classList","add","remove","messageHub","setCookie","Date","setFullYear","getFullYear","cookie","toUTCString","match","addMessage","MessageType","Default","close","message","messageType","onClose","_this","element","toLowerCase","button","target","closest","slideUp","children","append","focusin","attr","focusout","nextFocus","relatedTarget","currentFocus","is","scrollTo","lastScrollTop","navbar","scroll","pageYOffset","telInput","each","index","intlTelInput","hiddenInput","utilsScript","keyup","isEmpty","val","isValid","errorMsg","find","removeClass","addClass","gridViewContainer","listViewContainer","gridButton","listButton","selectedOption","localStorage","getItem","updateView","option","setItem","console","log","show","hide","updateButtons","buttonToSelect","buttonToUnselect","src","undefined","replace","on"],"mappings":"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","file":"main.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 = 0);\n","import './styles/main.scss';\r\nimport './scripts/collapser';\r\nimport './scripts/backToTopButton';\r\nimport './scripts/cookieConsent';\r\nimport './scripts/hasFocus';\r\nimport './scripts/toggleBodyScroll';\r\nimport './scripts/stickyHeader';\r\nimport './scripts/intlTelInputValidation';\r\nimport './scripts/browsePublications';\r\n","$(() => $('[data-collapse-target]').click(toggleCollapse));\r\n\r\nfunction toggleCollapse(e: JQueryEventObject) {\r\n const self = $(this);\r\n const focusTarget = self.data('set-focus');\r\n\r\n e.preventDefault();\r\n e.stopPropagation();\r\n\r\n $(self.data('collapse-target')).toggleClass('is-active');\r\n self.toggleClass('is-active');\r\n if (focusTarget) {\r\n $(focusTarget).focus();\r\n }\r\n}\r\n","$(() => {\r\n const backToTopButton = document.getElementById('back-to-top');\r\n\r\n backToTopButton.addEventListener('click', () => {\r\n document.body.scrollTop = 0;\r\n document.documentElement.scrollTop = 0;\r\n });\r\n\r\n window.onscroll = () => {\r\n if (\r\n document.body.scrollTop > 20 ||\r\n document.documentElement.scrollTop > 20\r\n ) {\r\n backToTopButton.classList.add('is-active');\r\n } else {\r\n backToTopButton.classList.remove('is-active');\r\n }\r\n };\r\n});\r\n","import * as messageHub from './messageHub';\r\n\r\nexport interface CookieConsentMessageProps {\r\n container: HTMLElement;\r\n}\r\n\r\nfunction cookieExists() {\r\n return document.cookie.match(/CookieConsent=/);\r\n}\r\n\r\nfunction setCookie() {\r\n const d = new Date();\r\n d.setFullYear(d.getFullYear() + 10);\r\n document.cookie = `CookieConsent=;expires=${d.toUTCString()};Path=/`;\r\n}\r\n\r\n$(() => {\r\n if (cookieExists()) {\r\n return;\r\n }\r\n\r\n messageHub.addMessage(\r\n $('#message-hub').data('cookieConscentMessage'),\r\n messageHub.MessageType.Default,\r\n setCookie,\r\n );\r\n});\r\n","export enum MessageType {\r\n Default,\r\n Info,\r\n Success,\r\n Warning,\r\n Error,\r\n}\r\n\r\nlet close = 'close';\r\n\r\nexport function addMessage(\r\n message: string,\r\n messageType: MessageType = MessageType.Default,\r\n onClose?: () => void,\r\n) {\r\n const element = $(`\r\n
\r\n
\r\n
${message}
\r\n
\r\n
\r\n `);\r\n\r\n const button = $(`\r\n \r\n `);\r\n\r\n button.click((e) => {\r\n $(e.target)\r\n .closest('.message')\r\n .slideUp('100', () => {\r\n $(this).remove();\r\n });\r\n if (onClose) {\r\n onClose();\r\n }\r\n });\r\n\r\n element.children('.message-container').append(button);\r\n\r\n $('#message-hub').append(element);\r\n}\r\n\r\n$(() => {\r\n close = $('#message-hub').data('closeBtnText');\r\n});\r\n","$(() => {\r\n const element = $('[data-focus-within]');\r\n element.focusin((e) => {\r\n $(e.target.closest('[data-focus-within]')).attr(\r\n 'data-focus-within',\r\n 'true',\r\n );\r\n });\r\n element.focusout((e) => {\r\n const nextFocus = $(e.relatedTarget).closest('[data-focus-within]');\r\n const currentFocus = $(e.target).closest('[data-focus-within]');\r\n if (!nextFocus.is(currentFocus)) {\r\n currentFocus.attr('data-focus-within', 'false');\r\n }\r\n });\r\n});\r\n","$(() => {\r\n $('[data-toggle-body-scroll]').click(() => {\r\n window.scrollTo(0, 0);\r\n $('body').toggleClass('is-unscrollable');\r\n });\r\n});\r\n","$(() => {\r\n let lastScrollTop = 0;\r\n const navbar = $('#header')[0];\r\n if (navbar) {\r\n $(window).scroll(() => {\r\n const scrollTop = $(window).scrollTop();\r\n\r\n if (window.pageYOffset > 0) {\r\n navbar.classList.add('header-sticky');\r\n } else {\r\n navbar.classList.remove('header-sticky');\r\n }\r\n\r\n if (scrollTop > lastScrollTop) {\r\n $('.nav-primary-btn-search.is-active').click();\r\n }\r\n lastScrollTop = scrollTop;\r\n });\r\n }\r\n});\r\n","$(() => {\r\n const telInput = $('[data-intl-tel-input]');\r\n\r\n telInput.each((index, element) => {\r\n ($(element) as any).intlTelInput({\r\n hiddenInput: $(element).attr('name'),\r\n utilsScript: '/assets/vendor/intl-tel-input/build/js/utils.js',\r\n });\r\n });\r\n\r\n telInput.keyup(onTelInputKeyUp);\r\n\r\n function onTelInputKeyUp() {\r\n const isEmpty = !$(this).val();\r\n const isValid = ($(this) as any).intlTelInput('isValidNumber');\r\n const errorMsg = $(this)\r\n .closest('.umbraco-forms-field-wrapper')\r\n .find('[data-intl-tel-error]');\r\n\r\n $(this).removeClass('error');\r\n errorMsg.addClass('hide');\r\n\r\n if (!isEmpty && !isValid) {\r\n telInput.addClass('error');\r\n errorMsg.removeClass('hide');\r\n }\r\n }\r\n});\r\n","$(() => {\r\n const gridViewContainer = $('#publications-grid-view-container');\r\n const listViewContainer = $('#publications-list-view-container');\r\n const gridButton = $('#publications-grid-display-option-button');\r\n const listButton = $('#publications-list-display-option-button');\r\n let selectedOption = localStorage.getItem('selected-publications-option');\r\n if (selectedOption == null) {\r\n\r\n selectedOption = 'grid';\r\n }\r\n\r\n updateView(selectedOption);\r\n\r\n gridButton.on('click', function() {\r\n const value = $(this).data('display');\r\n updateView(value);\r\n });\r\n\r\n listButton.on('click', function() {\r\n const value = $(this).data('display');\r\n updateView(value);\r\n });\r\n\r\n function updateView(option) {\r\n localStorage.setItem('selected-publications-option', option);\r\n console.log(option);\r\n if (option === 'list') {\r\n\r\n listViewContainer.show();\r\n gridViewContainer.hide();\r\n updateButtons(listButton, gridButton);\r\n } else {\r\n\r\n gridViewContainer.show();\r\n listViewContainer.hide();\r\n updateButtons(gridButton, listButton);\r\n }\r\n }\r\n\r\n function updateButtons(buttonToSelect, buttonToUnselect) {\r\n let src = buttonToSelect.attr('src');\r\n if (src !== undefined) {\r\n\r\n buttonToSelect.attr('src', src.replace('-unselected', '-selected'));\r\n src = buttonToUnselect.attr('src');\r\n buttonToUnselect.attr('src', src.replace('-selected', '-unselected'));\r\n }\r\n }\r\n});\r\n"],"sourceRoot":""}