{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/components/02-components/_navigation/mando-ui.navigation.js","webpack:///./src/components/02-components/_recite-me/mando-ui.recite-me.js","webpack:///./src/components/02-components/_rte-table/mando-ui.rte-table.js","webpack:///./src/components/02-components/_searchbar/mando-ui.searchbar.js","webpack:///./src/components/02-components/accordion-time-banner/mando-ui.accordion-time-banner.js","webpack:///./src/components/02-components/accordion/mando-ui.accordion.js","webpack:///./src/components/02-components/header/mando-ui.header.js","webpack:///./src/components/02-components/megahero-video/mando-ui.megahero-video.js","webpack:///./src/components/02-components/notices/cookie-preferences/mando-ui.cookie-preferences.js","webpack:///./src/components/02-components/notices/cookie/mando-ui.cookie.js","webpack:///./src/components/02-components/notices/notify/mando-ui.notify.js","webpack:///./src/components/02-components/postcode-checker-quality/postcode-checker-quality.js","webpack:///./src/scripts/app.js","webpack:///./src/scripts/mando-lib.analytics.js","webpack:///./src/scripts/polyfill.js"],"names":["elements","navigation","document","body","querySelector","wrapper","trigger","buttons","querySelectorAll","dropdowns","currentWindowSize","desktopWidth","active","getSiblings","elem","siblings","sibling","parentNode","firstChild","nextSibling","nodeType","push","toggleVisibility","targetDiv","getElementById","getAttribute","buttonIcon","buttonState","buttonStateLabel","parent","closest","prop","window","innerWidth","forEach","classList","remove","toggle","setAttribute","innerHTML","contains","resetNavigation","activeDivs","ariaExpanded","buttonStateLabels","el","windowResize","removeAttribute","init","addEventListener","length","event","target","reciteMe","loadService","tables","getTableHeadings","table","tableHeadings","headerCells","rows","cells","i","addHeadingLabels","labels","r","n","c","m","dataset","label","headings","toggles","close","searchbar","closeSearch","headerButtonStateLabel","innerText","e","targetFocus","closeSearchBtn","isMobile","searchbarInner","focus","accordionTimeBanner","currentTime","DateTime","utc","toLocal","toFormat","accordion","accordionTrigger","calcIndex","index","keyCode","calc","keyHandler","parseInt","count","preventDefault","panelDiv","parentSiblings","parentSibling","siblingTrigger","triggerTarget","largishWidth","fixedHeader","header","headerHeight","getComputedStyle","height","split","scrollValue","pageYOffset","fixedClass","add","updateCurrentSize","video","videoTrigger","togglePlay","targetVideo","buttonLabel","paused","play","textContent","setAttributeNS","pause","cookieBanner","cookieContent","allCookiesButton","saveButton","toggleContentButtons","optionValues","scrollableContent","getElementsByClassName","toggleCookieContainer","cookieOpen","cookieName","visbleClass","isOpen","defaultCookie","Cookies","set","expires","path","customCookie","option","attrValue","attrName","cookieButtonCallback","value","selectedCookies","checked","toggleContent","scrollTop","toggleCookiePreferences","checkRadio","cookieData","get","item","cookieNotice","cookieButton","notify","closeHandler","self","parsedExpiry","isNaN","cookies","cookie","val","bindClose","checkForCookie","zoneSelect","zoneCta","zoneVal","optionVal","options","selectedIndex","text","initMap","map","google","maps","Map","zoom","center","lat","lng","bounds","LatLngBounds","infowindow","InfoWindow","content","data","loadGeoJson","feature","geo","getGeometry","forEachLatLng","LatLng","extend","fitBounds","setStyle","fillColor","fillOpacity","strokeColor","strokeWeight","addListener","revertStyle","overrideStyle","name","getProperty","html","setContent","setPosition","latLng","open","updateUrl","history","replaceState","location","pathname","replace","href","results","setTimeout","jump","duration","offset","polyfillClosest","cookiePreferences","megaheroVideo","resultsScroll","analytics","trackers","popup","trackEvent","category","action","targetAttr","firstWord","actionText","labelText","dataLayer","trackPage","vpUrl","toLowerCase","vpvLabel","virtualPageURL","virtualPageTitle","processTracking","ga","gaFunction","gaCategory","gaAction","gaLabel","gaVpvlabel","Element","prototype","matches","msMatchesSelector","webkitMatchesSelector","s","documentElement","parentElement","ownerDocument","NodeList","Array"],"mappings":"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","file":"main.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"main\": 0\n \t};\n\n \tvar deferredModules = [];\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 \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"vendor\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","const elements = {\r\n navigation: document.body.querySelector('.js-navigation'),\r\n wrapper: document.body.querySelector('.js-navigation__wrapper'),\r\n trigger: document.body.querySelector('.js-navigation-trigger'),\r\n buttons: [...document.body.querySelectorAll('.js-navigation__button')],\r\n dropdowns: [...document.body.querySelectorAll('.js-navigation__dropdown')],\r\n};\r\n\r\nlet currentWindowSize;\r\nconst desktopWidth = 1024;\r\nconst active = 'is-active';\r\n\r\nfunction getSiblings(elem) {\r\n const siblings = [];\r\n let sibling = elem.parentNode.firstChild;\r\n for (; sibling; sibling = sibling.nextSibling) {\r\n if (sibling.nodeType === 1 && sibling !== elem) {\r\n siblings.push(sibling);\r\n }\r\n }\r\n return siblings;\r\n}\r\n\r\nfunction toggleVisibility() {\r\n const targetDiv = document.getElementById(this.getAttribute('aria-controls'));\r\n const buttonIcon = this.querySelector('.c-navigation__button-icon');\r\n const buttonState = this.getAttribute('aria-expanded');\r\n const buttonStateLabel = this.querySelector('.js-navigation__button-state');\r\n const parent = this.closest('li');\r\n const active = 'is-active';\r\n const prop = 'hidden';\r\n\r\n currentWindowSize = window.innerWidth;\r\n\r\n // De-activate siblings (needed for keyboard nav on desktop)\r\n if (parent && currentWindowSize > desktopWidth) {\r\n const siblings = [...getSiblings(parent)];\r\n siblings.forEach(sibling => sibling.classList.remove(active));\r\n }\r\n\r\n if (parent) {\r\n // If there's a parent li activate it\r\n parent.classList.toggle(active);\r\n }\r\n this.classList.toggle(active); // Set the toggle to active\r\n targetDiv.classList.toggle(active); // Set the target active\r\n\r\n // If mobile then toggle visibility\r\n if (currentWindowSize < desktopWidth) {\r\n targetDiv[prop] = !targetDiv[prop];\r\n }\r\n\r\n // Toggle the aria-expanded state\r\n if (buttonState === 'false') {\r\n this.setAttribute('aria-expanded', 'true');\r\n } else {\r\n this.setAttribute('aria-expanded', 'false');\r\n }\r\n\r\n // Toggle the button text\r\n if (buttonIcon) {\r\n buttonStateLabel.innerHTML = this.classList.contains(active) ? 'Close' : 'Open';\r\n }\r\n}\r\n\r\nfunction resetNavigation() {\r\n currentWindowSize = window.innerWidth;\r\n\r\n const activeDivs = [...elements.navigation.querySelectorAll('.is-active')];\r\n const ariaExpanded = [...elements.navigation.querySelectorAll('[aria-expanded=\"true\"]')];\r\n const buttonStateLabels = [\r\n ...elements.navigation.querySelectorAll('.js-navigation__button-state'),\r\n ];\r\n const active = 'is-active';\r\n\r\n // Reset icons and labels\r\n buttonStateLabels.forEach(buttonStateLabel => buttonStateLabel.innerHTML = 'Open'); // eslint-disable-line\r\n\r\n // Remove active classes\r\n activeDivs.forEach(el => el.classList.remove(active));\r\n\r\n // Set aria expanded to false\r\n ariaExpanded.forEach(el => el.setAttribute('aria-expanded', 'false'));\r\n\r\n // Hide dropdowns if mobile\r\n if (currentWindowSize < desktopWidth) {\r\n elements.dropdowns.forEach(el => {\r\n el.setAttribute('hidden', '');\r\n });\r\n }\r\n}\r\n\r\nfunction windowResize() {\r\n if (currentWindowSize === window.innerWidth) {\r\n return;\r\n }\r\n // Remove active states and decorate aria\r\n currentWindowSize = window.innerWidth;\r\n resetNavigation();\r\n\r\n if (currentWindowSize < desktopWidth) {\r\n elements.wrapper.setAttribute('hidden', '');\r\n elements.dropdowns.forEach(el => el.setAttribute('hidden', ''));\r\n } else {\r\n elements.wrapper.removeAttribute('hidden');\r\n elements.dropdowns.forEach(el => el.removeAttribute('hidden'));\r\n }\r\n}\r\n\r\nfunction init() {\r\n currentWindowSize = window.innerWidth;\r\n\r\n // Don't bother if there's no navigation...\r\n if (!elements.navigation) {\r\n return;\r\n }\r\n\r\n // If mobile...\r\n if (currentWindowSize < desktopWidth) {\r\n elements.wrapper.setAttribute('hidden', '');\r\n\r\n // Hide dropdown\r\n elements.dropdowns.forEach(el => el.setAttribute('hidden', ''));\r\n }\r\n\r\n // Add navigation toggle\r\n if (elements.navigation && elements.trigger) {\r\n elements.trigger.addEventListener('click', toggleVisibility);\r\n window.addEventListener('resize', windowResize);\r\n }\r\n\r\n // Setup dropdown button event handlers\r\n if (elements.buttons.length) {\r\n elements.buttons.forEach(el => el.addEventListener('click', toggleVisibility));\r\n }\r\n\r\n /* Catching Clicks\r\n / Stopping propogation isn't a good idea so we do this to detect\r\n / page clicks and close the menu, see the link below for details.\r\n / https://css-tricks.com/dangers-stopping-event-propagation/\r\n */\r\n\r\n document.addEventListener('click', event => {\r\n const target = event.target.closest('.js-navigation, .js-navigation-trigger');\r\n if (!target) {\r\n resetNavigation();\r\n }\r\n });\r\n}\r\n\r\nexport default init;\r\n","const elements = {\r\n reciteMe: [...document.body.querySelectorAll('.js-recite-me')],\r\n};\r\n\r\nfunction init() {\r\n if (elements.reciteMe.length) {\r\n elements.reciteMe[0].addEventListener('click', window.loadService);\r\n }\r\n}\r\n\r\nexport default init;","const elements = {\r\n tables: document.body.querySelectorAll('.c-rte table'),\r\n};\r\n\r\nfunction getTableHeadings(table) {\r\n const tableHeadings = [];\r\n const headerCells = table.rows[0].cells;\r\n\r\n for (let i = 0; i < headerCells.length; i += 1) {\r\n tableHeadings.push(headerCells[i].innerHTML);\r\n }\r\n\r\n return tableHeadings;\r\n}\r\n\r\nfunction addHeadingLabels(table, labels) {\r\n for (let r = 1, n = table.rows.length; r < n; r += 1) {\r\n for (let c = 0, m = table.rows[r].cells.length; c < m; c += 1) {\r\n table.rows[r].cells[c].dataset.label = labels[c];\r\n }\r\n }\r\n}\r\n\r\nfunction init() {\r\n if (!elements.tables.length) {\r\n return;\r\n }\r\n\r\n elements.tables.forEach(table => {\r\n const headings = getTableHeadings(table);\r\n addHeadingLabels(table, headings);\r\n });\r\n}\r\n\r\nexport default init;\r\n","const elements = {\r\n toggles: document.body.querySelectorAll('.js-search-toggle'),\r\n close: document.body.querySelector('.js-search-close'),\r\n searchbar: document.getElementById('searchbar'),\r\n};\r\n\r\nconst desktopWidth = 1024;\r\n\r\nfunction closeSearch() {\r\n const active = 'is-active';\r\n\r\n // Set own states\r\n elements.close.setAttribute('aria-expanded', 'false');\r\n\r\n // Set triggers\r\n elements.toggles.forEach(el => {\r\n const headerButtonStateLabel = el.querySelector('.js-search-toggle-label');\r\n el.setAttribute('aria-expanded', 'false');\r\n el.classList.remove(active);\r\n headerButtonStateLabel.innerText = 'Open';\r\n });\r\n\r\n // Set target states\r\n elements.searchbar.setAttribute('aria-hidden', 'true');\r\n elements.searchbar.classList.remove(active);\r\n}\r\n\r\nfunction toggleVisibility(e) {\r\n const trigger = e.target;\r\n const targetFocus = document.getElementById('siteSearch');\r\n const buttonState = trigger.getAttribute('aria-expanded');\r\n const buttonStateLabel = trigger.querySelector('.js-search-toggle-label');\r\n const closeSearchBtn = elements.searchbar.querySelector('.js-search-close');\r\n const active = 'is-active';\r\n const prop = 'hidden';\r\n const isMobile = window.innerWidth < desktopWidth ? true : false;\r\n const searchbarInner = elements.searchbar.querySelector('.c-searchbar__inner');\r\n\r\n // Toggle the aria-expanded state\r\n if (buttonState === 'false') {\r\n trigger.setAttribute('aria-expanded', 'true');\r\n closeSearchBtn.setAttribute('aria-expanded', 'true');\r\n } else {\r\n trigger.setAttribute('aria-expanded', 'false');\r\n closeSearchBtn.setAttribute('aria-expanded', 'false');\r\n }\r\n\r\n // Toggle the target aria-hidden state\r\n searchbarInner[prop] = !searchbarInner[prop];\r\n\r\n buttonStateLabel.innerText = trigger.classList.contains(active) ? 'Open ' : 'Close '; // Toggle the button text\r\n trigger.classList.toggle(active); // Set the toggle to active\r\n elements.searchbar.classList.toggle(active); // Set the target active\r\n\r\n //Move focus to search\r\n if (buttonState === 'false' && !isMobile) {\r\n targetFocus.focus();\r\n }\r\n}\r\n\r\nfunction init() {\r\n if (elements.toggles.length) {\r\n elements.toggles.forEach(el => el.addEventListener('click', toggleVisibility));\r\n }\r\n\r\n if (elements.close) {\r\n elements.close.addEventListener('click', closeSearch);\r\n }\r\n}\r\n\r\nexport default init;\r\n","import { DateTime } from 'luxon';\r\n\r\nconst elements = {\r\n accordionTimeBanner: document.querySelector('.js-time-banner'),\r\n currentTime: document.querySelector('.js-time-banner-current'),\r\n};\r\n\r\nfunction init() {\r\n if (!elements.accordionTimeBanner) {\r\n return;\r\n }\r\n\r\n elements.currentTime.innerText = DateTime.utc()\r\n .toLocal()\r\n .toFormat(\"h':'mma\");\r\n\r\n elements.currentTime.setAttribute(\r\n 'datetime',\r\n DateTime.utc()\r\n .toLocal()\r\n .toFormat(\"HH':'mm\"),\r\n );\r\n}\r\n\r\nexport default init;\r\n","const elements = {\r\n accordion: document.body.querySelectorAll('.js-accordion'),\r\n accordionTrigger: document.body.querySelectorAll('.js-accordion-trigger'),\r\n};\r\n\r\nfunction calcIndex(index, keyCode) {\r\n const calc = {\r\n 38: index - 1,\r\n 40: index + 1,\r\n };\r\n\r\n return calc[keyCode];\r\n}\r\n\r\nfunction keyHandler(e) {\r\n const accordion = this.closest('.js-accordion');\r\n\r\n if (accordion !== null) {\r\n const index = parseInt(this.dataset.index, 10);\r\n\r\n if (\r\n (e.keyCode === 38 && index > 0) ||\r\n (e.keyCode === 40 && index < parseInt(accordion.dataset.count - 1, 10))\r\n ) {\r\n e.preventDefault();\r\n accordion.querySelectorAll('.js-accordion-trigger')[calcIndex(index, e.keyCode)].focus();\r\n }\r\n }\r\n}\r\n\r\nfunction getSiblings(elem) {\r\n const siblings = [];\r\n let sibling = elem.parentNode.firstChild;\r\n for (; sibling; sibling = sibling.nextSibling) {\r\n if (sibling.nodeType === 1 && sibling !== elem) {\r\n siblings.push(sibling);\r\n }\r\n }\r\n return siblings;\r\n}\r\n\r\nfunction toggleVisibility() {\r\n const panelDiv = document.getElementById(this.getAttribute('aria-controls'));\r\n const prop = 'hidden';\r\n const active = 'is-active';\r\n\r\n const parent = this.closest('.c-accordion__item');\r\n const parentSiblings = getSiblings(parent);\r\n\r\n parentSiblings.forEach(parentSibling => {\r\n const siblingTrigger = parentSibling.querySelector('.is-active');\r\n if (!siblingTrigger) {\r\n return;\r\n }\r\n\r\n const triggerTarget = document.getElementById(siblingTrigger.getAttribute('aria-controls'));\r\n triggerTarget[prop] = !triggerTarget[prop];\r\n siblingTrigger.classList.remove(active);\r\n siblingTrigger.setAttribute('aria-expanded', 'false');\r\n });\r\n\r\n this.classList.toggle(active);\r\n panelDiv[prop] = !panelDiv[prop];\r\n\r\n if (this.getAttribute('aria-expanded') === 'false') {\r\n this.setAttribute('aria-expanded', 'true');\r\n this.setAttribute('data-ga-action', 'Click - open');\r\n } else {\r\n this.setAttribute('aria-expanded', 'false');\r\n this.setAttribute('data-ga-action', 'Click - close');\r\n }\r\n}\r\n\r\nfunction init() {\r\n if (elements.accordion.length && elements.accordionTrigger.length) {\r\n for (let i = 0; i < elements.accordionTrigger.length; i += 1) {\r\n elements.accordionTrigger[i].removeAttribute('disabled');\r\n elements.accordionTrigger[i].removeAttribute('title');\r\n elements.accordionTrigger[i].addEventListener('click', toggleVisibility);\r\n elements.accordionTrigger[i].addEventListener('keydown', keyHandler);\r\n }\r\n }\r\n}\r\n\r\nexport default init;\r\n","let currentWindowSize;\r\nconst largishWidth = 1024;\r\n\r\nfunction fixedHeader() {\r\n const body = document.querySelector('body');\r\n const header = document.querySelector('.c-header');\r\n const headerHeight = getComputedStyle(header).height.split('px')[0];\r\n const scrollValue = window.pageYOffset;\r\n const fixedClass = 'js-fixed';\r\n\r\n if (scrollValue / headerHeight) {\r\n body.classList.add(fixedClass);\r\n header.classList.add(fixedClass);\r\n } else if (scrollValue < headerHeight) {\r\n body.classList.remove(fixedClass);\r\n header.classList.remove(fixedClass);\r\n }\r\n}\r\n\r\nfunction updateCurrentSize() {\r\n currentWindowSize = window.innerWidth;\r\n return currentWindowSize;\r\n}\r\n\r\nfunction init() {\r\n updateCurrentSize();\r\n window.addEventListener('resize', updateCurrentSize);\r\n\r\n if (currentWindowSize >= largishWidth) {\r\n window.addEventListener('scroll', fixedHeader);\r\n }\r\n}\r\n\r\nexport default init;\r\n","const elements = {\r\n video: [...document.body.querySelectorAll('.js-megahero-video')],\r\n videoTrigger: [...document.body.querySelectorAll('.js-megahero-video-trigger')],\r\n};\r\n\r\nfunction togglePlay() {\r\n const videoTrigger = this;\r\n const targetVideo = document.getElementById(videoTrigger.getAttribute('aria-controls'));\r\n const buttonLabel = videoTrigger.querySelector('.c-megahero-video__play-label');\r\n const buttonIcon = videoTrigger.querySelector('.c-megahero-video__play-icon use');\r\n\r\n if (targetVideo.paused) {\r\n targetVideo.play();\r\n buttonLabel.textContent = 'Pause';\r\n buttonIcon.setAttributeNS('http://www.w3.org/1999/xlink', 'href', '#megahero-pause');\r\n } else {\r\n targetVideo.pause();\r\n buttonLabel.textContent = 'Play';\r\n buttonIcon.setAttributeNS('http://www.w3.org/1999/xlink', 'href', '#megahero-play');\r\n }\r\n}\r\n\r\nfunction init() {\r\n if (elements.video.length && elements.videoTrigger.length) {\r\n elements.videoTrigger.forEach(el => el.addEventListener('click', togglePlay));\r\n }\r\n}\r\n\r\nexport default init;\r\n","import Cookies from 'js-cookie';\r\n\r\nconst elements = {\r\n cookieBanner: document.querySelector('.js-cookie-banner'),\r\n cookieContent: document.querySelector('.js-content'),\r\n allCookiesButton: document.querySelector('.js-accept-all'),\r\n saveButton: document.querySelector('.js-save'),\r\n toggleContentButtons: document.querySelectorAll('.js-toggle-content'),\r\n optionValues: document.querySelectorAll('.js-radio-option'),\r\n scrollableContent: document.getElementsByClassName('js-content-scroll'),\r\n toggleCookieContainer: document.querySelector('.js-toggle-cookies'),\r\n};\r\n\r\nconst cookieOpen = 'cookie-open';\r\nconst cookieName = 'cookie';\r\nconst visbleClass = 'is-visible';\r\nconst isOpen = 'is-open';\r\n\r\nfunction defaultCookie() {\r\n elements.cookieBanner.classList.remove(visbleClass);\r\n document.body.classList.remove(cookieOpen);\r\n\r\n Cookies.set(cookieName, 'true', {\r\n expires: 365,\r\n path: '/',\r\n });\r\n}\r\n\r\nfunction customCookie(option) {\r\n const attrValue = option.getAttribute('value');\r\n const attrName = option.getAttribute('name');\r\n\r\n Cookies.set(attrName, attrValue, {\r\n expires: 365,\r\n path: '/',\r\n });\r\n}\r\n\r\nfunction cookieButtonCallback(e) {\r\n e.preventDefault();\r\n\r\n if (elements.cookieBanner) {\r\n defaultCookie();\r\n\r\n elements.optionValues.forEach(option => {\r\n if (option.value !== '') {\r\n const attrName = option.getAttribute('name');\r\n\r\n Cookies.set(attrName, 'true', {\r\n expires: 365,\r\n path: '/',\r\n });\r\n }\r\n });\r\n\r\n elements.cookieBanner.classList.remove(isOpen);\r\n elements.cookieContent.classList.remove(visbleClass);\r\n }\r\n}\r\n\r\nfunction selectedCookies(e) {\r\n e.preventDefault();\r\n\r\n defaultCookie();\r\n\r\n elements.optionValues.forEach(option => {\r\n if (option.value !== '' && option.checked) {\r\n customCookie(option);\r\n }\r\n });\r\n\r\n elements.cookieBanner.classList.remove(isOpen);\r\n elements.cookieContent.classList.remove(visbleClass);\r\n}\r\n\r\nfunction toggleContent(e) {\r\n e.preventDefault();\r\n\r\n if (elements.cookieContent.classList.contains(visbleClass)) {\r\n elements.cookieContent.classList.remove(visbleClass);\r\n elements.cookieBanner.classList.remove(isOpen);\r\n elements.allCookiesButton.innerHTML = 'Accept cookies';\r\n } else {\r\n elements.cookieContent.classList.add(visbleClass);\r\n elements.cookieBanner.classList.add(isOpen);\r\n elements.allCookiesButton.innerHTML = 'Accept all cookies';\r\n elements.scrollableContent[0].scrollTop = 0;\r\n }\r\n}\r\n\r\nfunction toggleCookiePreferences() {\r\n if (elements.cookieBanner && !elements.cookieBanner.classList.contains(visbleClass)) {\r\n document.body.classList.add(cookieOpen);\r\n elements.cookieBanner.classList.add(visbleClass);\r\n }\r\n}\r\n\r\nfunction checkRadio() {\r\n elements.optionValues.forEach(option => {\r\n const attrValue = option.getAttribute('name');\r\n const cookieData = Cookies.get(attrValue);\r\n\r\n if (cookieData && cookieData === 'true' && option.value === cookieData) {\r\n option.checked = true;\r\n }\r\n });\r\n}\r\n\r\nfunction init() {\r\n if (elements.cookieBanner && !Cookies.get(cookieName)) {\r\n elements.cookieBanner.classList.add(visbleClass);\r\n document.body.classList.add(cookieOpen);\r\n }\r\n\r\n if (elements.cookieBanner) {\r\n elements.allCookiesButton.addEventListener('click', cookieButtonCallback);\r\n elements.toggleContentButtons.forEach(item => {\r\n item.addEventListener('click', toggleContent);\r\n });\r\n\r\n elements.saveButton.addEventListener('click', selectedCookies);\r\n\r\n checkRadio();\r\n }\r\n\r\n if (elements.cookieBanner && elements.toggleCookieContainer) {\r\n elements.toggleCookieContainer.addEventListener('click', toggleCookiePreferences);\r\n }\r\n}\r\n\r\nexport default init;\r\n","import Cookies from 'js-cookie';\r\n\r\nconst elements = {\r\n cookieNotice: document.getElementById('cookie'),\r\n cookieButton: document.getElementById('cookie-button'),\r\n};\r\n\r\nconst cookieName = 'msCookie';\r\nconst visbleClass = 'is-visible';\r\n\r\nfunction cookieButtonCallback() {\r\n if (elements.cookieNotice) {\r\n elements.cookieNotice.classList.remove(visbleClass);\r\n\r\n Cookies.set(cookieName, 'true', {\r\n expires: 365,\r\n path: '/',\r\n });\r\n }\r\n}\r\n\r\nfunction init() {\r\n if (elements.cookieNotice) {\r\n if (!Cookies.get(cookieName)) {\r\n elements.cookieNotice.classList.add(visbleClass);\r\n }\r\n\r\n elements.cookieButton.addEventListener('click', cookieButtonCallback);\r\n }\r\n}\r\n\r\nexport default init;\r\n","import cookies from 'js-cookie';\r\nimport isNaN from 'lodash.isnan';\r\n\r\nconst elements = {\r\n notify: [...document.querySelectorAll('.js-notify')],\r\n};\r\n\r\nfunction closeHandler(e) {\r\n if (e.target.classList.contains('js-notify-close')) {\r\n const self = this;\r\n const parsedExpiry = parseInt(self.dataset.expires, 10);\r\n const expires =\r\n parsedExpiry && isNaN(parsedExpiry) === false\r\n ? {\r\n expires: parsedExpiry,\r\n }\r\n : {};\r\n\r\n self.setAttribute('hidden', '');\r\n cookies.set(self.dataset.cookie + '-' + self.dataset.val, true, expires);\r\n }\r\n}\r\n\r\nfunction bindClose(el) {\r\n el.removeAttribute('hidden');\r\n el.addEventListener('click', closeHandler);\r\n}\r\n\r\nfunction checkForCookie(el) {\r\n if (el.dataset.cookie && el.dataset.val) {\r\n if (!cookies.get(el.dataset.cookie + '-' + el.dataset.val)) {\r\n bindClose(el);\r\n }\r\n } else {\r\n bindClose(el);\r\n }\r\n}\r\n\r\nfunction init() {\r\n if (elements.notify.length > 0) {\r\n elements.notify.forEach(checkForCookie);\r\n }\r\n}\r\n\r\nexport default init;\r\n","import jump from 'jump.js';\r\n\r\nconst zoneSelect = document.getElementById('Zone');\r\nconst zoneCta = document.querySelector('.js-zone');\r\n\r\nfunction zoneVal() {\r\n const optionVal = this.options[this.selectedIndex].text;\r\n\r\n zoneCta.setAttribute('data-ga-label', optionVal);\r\n}\r\n\r\nfunction initMap() {\r\n const map = new google.maps.Map(document.getElementById('quality-map'), {\r\n zoom: 10,\r\n center: {\r\n lat: 0,\r\n lng: 0,\r\n },\r\n });\r\n\r\n // create empty bounds object\r\n const bounds = new google.maps.LatLngBounds();\r\n\r\n const infowindow = new google.maps.InfoWindow({\r\n content: '',\r\n });\r\n\r\n //Load in json data\r\n map.data.loadGeoJson('/assets/geojson/zones.json', null, () => {\r\n // loop through features\r\n map.data.forEach(feature => {\r\n const geo = feature.getGeometry();\r\n\r\n geo.forEachLatLng(LatLng => {\r\n bounds.extend(LatLng);\r\n });\r\n });\r\n\r\n // fit data to bounds\r\n map.fitBounds(bounds);\r\n });\r\n\r\n //Set default styling for zones\r\n map.data.setStyle(() => {\r\n return {\r\n fillColor: '#003F84',\r\n fillOpacity: 0.6,\r\n strokeColor: '#FFFFFF',\r\n strokeWeight: 0.5,\r\n };\r\n });\r\n\r\n //Hover effect\r\n map.data.addListener('mouseover', event => {\r\n map.data.revertStyle();\r\n map.data.overrideStyle(event.feature, {\r\n fillColor: '#00818A',\r\n fillOpacity: 0.8,\r\n strokeColor: '#FFFFFF',\r\n strokeWeight: 1,\r\n });\r\n });\r\n\r\n //Click event to select zone\r\n map.data.addListener('click', event => {\r\n const name = event.feature.getProperty('Name');\r\n const html = `
${name}
`;\r\n\r\n infowindow.setContent(html);\r\n infowindow.setPosition(event.latLng);\r\n\r\n infowindow.open(map);\r\n });\r\n}\r\n\r\nfunction updateUrl(e) {\r\n const name = e.target.getAttribute('data-name');\r\n\r\n //Replace query\r\n window.history.replaceState(\r\n null,\r\n null,\r\n `${window.location.pathname}?${'zone='}${name.replace(/ .*/, '')}`,\r\n );\r\n\r\n //reload page with new query in URL\r\n location = location.href;\r\n}\r\n\r\nfunction init() {\r\n const results = document.querySelector(\r\n '.c-postcode-checker-quality__results, .c-postcode-checker-supply__message',\r\n );\r\n\r\n window.updateUrl = updateUrl;\r\n\r\n if (results !== null) {\r\n setTimeout(function () {\r\n jump(results, {\r\n duration: 500,\r\n offset: -280,\r\n });\r\n }, 500);\r\n }\r\n\r\n if (zoneSelect != null && zoneSelect.length) {\r\n zoneSelect.addEventListener('input', zoneVal);\r\n }\r\n\r\n if (document.getElementById('quality-map')) {\r\n initMap();\r\n }\r\n}\r\n\r\nexport default init;","/**\r\n * Mando UI initialisation\r\n */\r\nimport '@babel/polyfill';\r\n\r\nimport polyfillClosest from './polyfill';\r\n\r\nimport analytics from './mando-lib.analytics';\r\n\r\nimport header from 'Components/header/mando-ui.header';\r\nimport accordion from 'Components/accordion/mando-ui.accordion';\r\nimport cookieBanner from 'Components/notices/cookie/mando-ui.cookie';\r\nimport cookiePreferences from 'Components/notices/cookie-preferences/mando-ui.cookie-preferences';\r\nimport searchbar from 'Components/_searchbar/mando-ui.searchbar';\r\nimport navigation from 'Components/_navigation/mando-ui.navigation';\r\nimport megaheroVideo from 'Components/megahero-video/mando-ui.megahero-video';\r\nimport notify from 'Components/notices/notify/mando-ui.notify';\r\nimport table from 'Components/_rte-table/mando-ui.rte-table';\r\nimport resultsScroll from 'Components/postcode-checker-quality/postcode-checker-quality';\r\nimport reciteMe from 'Components/_recite-me/mando-ui.recite-me';\r\nimport accordionTimeBanner from 'Components/accordion-time-banner/mando-ui.accordion-time-banner';\r\n\r\n// Modules with jQuery dependencies\r\n\r\n// Modules with Vue dependencies\r\n\r\ndocument.addEventListener(\r\n 'DOMContentLoaded',\r\n () => {\r\n // Polyfill\r\n polyfillClosest();\r\n\r\n // Components\r\n header();\r\n accordion();\r\n cookieBanner();\r\n cookiePreferences();\r\n navigation();\r\n searchbar();\r\n megaheroVideo();\r\n notify();\r\n table();\r\n resultsScroll();\r\n analytics();\r\n reciteMe();\r\n accordionTimeBanner();\r\n },\r\n false,\r\n);","const trackers = [...document.body.querySelectorAll('.js-analytics')];\r\nconst popup = [...document.body.querySelectorAll('.js-popup')];\r\n\r\nfunction trackEvent(event, category, action, label) {\r\n if (!category || !action || !label) {\r\n return;\r\n }\r\n\r\n const target = event.target;\r\n\r\n const targetAttr = target.getAttribute('data-ga-category');\r\n const firstWord = targetAttr.split('_')[0];\r\n\r\n const actionText = firstWord + '_action';\r\n const labelText = firstWord + '_label';\r\n\r\n dataLayer.push({\r\n event: category,\r\n [actionText]: action,\r\n [labelText]: label,\r\n });\r\n}\r\n\r\nfunction trackPage(label) {\r\n const vpUrl = `/virtual/${label.toLowerCase().replace(/ - /g, '/')}`;\r\n const vpvLabel = `Virtual - ${label}`;\r\n\r\n dataLayer.push({\r\n event: 'virtualPageView',\r\n virtualPageURL: vpUrl,\r\n virtualPageTitle: vpvLabel,\r\n });\r\n}\r\n\r\nfunction processTracking(event) {\r\n if (!window.ga) {\r\n return;\r\n }\r\n const { gaFunction, gaCategory, gaAction, gaLabel, gaVpvlabel } = event.target.dataset;\r\n\r\n if (gaFunction === 'multi') {\r\n trackEvent(event, gaCategory, gaAction, gaLabel);\r\n trackPage(gaVpvlabel);\r\n } else if (gaFunction === 'event') {\r\n trackEvent(event, gaCategory, gaAction, gaLabel);\r\n } else if (gaFunction === 'virtual') {\r\n trackPage(gaVpvlabel);\r\n }\r\n}\r\n\r\nfunction init() {\r\n if (!trackers.length) {\r\n return;\r\n } else {\r\n trackers.forEach(item => {\r\n item.addEventListener('click', processTracking);\r\n });\r\n }\r\n\r\n if (!popup.length) {\r\n return;\r\n } else {\r\n popup.forEach(item => trackPage(item.dataset.gaVpvlabel));\r\n }\r\n}\r\n\r\nexport default init;\r\n","/* eslint-disable */\r\nfunction polyfillClosest() {\r\n if (!Element.prototype.matches)\r\n Element.prototype.matches =\r\n Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector;\r\n\r\n if (!Element.prototype.closest)\r\n Element.prototype.closest = function(s) {\r\n var el = this;\r\n if (!document.documentElement.contains(el)) return null;\r\n do {\r\n if (el.matches(s)) return el;\r\n el = el.parentElement || el.parentNode;\r\n } while (el !== null);\r\n return null;\r\n };\r\n}\r\n\r\nif (window.Element && !Element.prototype.closest) {\r\n Element.prototype.closest = function(s) {\r\n var matches = (this.document || this.ownerDocument).querySelectorAll(s),\r\n i,\r\n el = this;\r\n do {\r\n i = matches.length;\r\n while (--i >= 0 && matches.item(i) !== el) {}\r\n } while (i < 0 && (el = el.parentElement));\r\n return el;\r\n };\r\n}\r\n\r\n/*\r\n https://developer.mozilla.org/en-US/docs/Web/API/NodeList/forEach\r\n*/\r\nif (window.NodeList && !NodeList.prototype.forEach) {\r\n NodeList.prototype.forEach = Array.prototype.forEach;\r\n}\r\n\r\n/* eslint-enable */\r\n\r\nexport default polyfillClosest;\r\n"],"sourceRoot":""}