hmrc-frontend 6.93.0 → 6.95.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["src/utils/breakpoints.js","src/components/account-menu/account-menu.js","src/components/back-link-helper/back-link-helper.js","src/utils/debounce.js","src/components/timeout-dialog/utils.js","src/components/timeout-dialog/dialog.js","src/components/timeout-dialog/validate-input.js","src/components/timeout-dialog/redirectHelper.js","src/components/timeout-dialog/timeout-dialog.js","src/components/user-research-banner/user-research-banner.js","src/utils/cookies.js","src/components/timeout-dialog/session-activity-service.js","src/components/hmrc-print-link/hmrc-print-link.js","src/all.js","src/all-govuk-and-hmrc.js"],"names":["breakpoints","xs","mobile","tablet","desktop","getCurrentBreakpoint","windowWidth","Object","keys","reduce","acc","curr","window","innerWidth","isSmall","element","AccountMenu","$module","this","document","querySelector","$moduleBottomMargin","style","marginBottom","$mainNav","$showNavLinkMobile","$currentBreakpoint","BackLinkHelper","prototype","init","setup","addEventListener","eventHandlers","showNavLinkMobileClick","bind","func","wait","immediate","timeout","_this","_len","arguments","length","theParams","Array","_key","context","clearTimeout","setTimeout","apply","debounce","reinstantiate","resizeEvent","newBreakpoint","target","event","preventDefault","classList","contains","hideMainNavMobile","currentTarget","showMainNavMobile","add","setAttribute","removeAttribute","remove","history","replaceState","location","href","back","warn","console","utils","generateDomElementFromString","str","abc","createElement","innerHTML","firstChild","generateDomElementFromStringAndAppendText","text","$tmp","innerText","hasClass","selector","className","addClass","querySelectorAll","forEach","i","removeClass","removeElement","$elem","parent","parentNode","removeChild","ajaxGet","url","success","xhr","XMLHttpRequest","open","onreadystatechange","readyState","status","responseText","setRequestHeader","send","dialog","displayDialog","$elementToDisplay","$dialog","$overlay","$preparedElementToDisplay","resetElementsFunctionList","closeCallbacks","appendChild","push","body","handleTouch","elements","join","close","shift","fn","value","getAttribute","keepFocus","modalFocus","getElementById","stopPropagation","focus","elemToFocusOnReset","activeElement","removeEventListener","setupFocusHandlerAndFocusDialog","keydownListener","e","keyCode","setupKeydownHandler","touches","changedTouches","closeDialog","setAriaLabelledBy","addCloseHandler","closeHandler","ValidateInput","RedirectHelper","TimeoutDialog","$sessionActivityService","currentTimer","options","settings","cleanupFunctions","sessionActivityService","listenForSessionActivityAndResetDialogTimer","synchroniseTabs","onActivity","timeOfActivity","timestamp","cleanup","setupDialogTimer","validateInput","config","missingRequiredConfig","item","concat","replace","toLowerCase","Error","mergeOptionsWithDefaults","theOptions","localisedDefaults","clone","_objectSpread","key","_typeof","undefined","timeOfLastActivity","getDateNow","signoutTime","delta","secondsUntilTimeoutDialog","countdown","setupDialog","$element","title","$countdownElement","$audibleMessage","$visualMessge","message","createTextNode","messageSuffix","$staySignedInButton","keepAliveButtonText","$wrapper","keepAliveAndClose","hideSignOutButton","$signOutButton","signOutButtonText","signOut","signOutUrl","dialogControl","getMillisecondsRemaining","getHumanText","counter","minutes","visibleMessage","properties","Math","ceil","roundSecondsUp","updateTextIfChanged","updateCountdown","audibleHumanText","humanText","messageParts","getAudibleHumanText","runUpdate","remaining","roundedRemaining","max","round","floor","keepAliveUrl","logActivity","Date","now","redirectToUrl","timeoutUrl","validate","lookupData","attributes","getNamedItem","string","minute","seconds","second","stringToValidate","parsedInt","parseInt","Number","isNaN","String","redirectHelper","UserResearchBanner","$closeLink","cookieName","cookieExpiryDays","name","nameEQ","cookies","cookie","split","len","charAt","substring","indexOf","decodeURIComponent","getCookie","noThanksClick","cookieString","days","date","setTime","getTime","toGMTString","protocol","setCookie","SessionActivityService","BrowserBroadcastChannel","_classCallCheck","activityChannel","_createClass","postMessage","callback","onmessage","data","HmrcPrintLink","print","HMRCFrontend","initAll","logAndIgnoreErrors","error","$AccountMenuSelector","$HmrcPrintLink","BroadcastChannel","$TimeoutDialog","$UserResearchBanner","$BackLink"],"mappings":"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","file":"../hmrc-frontend-6.95.0.min.js","sourcesContent":["// TODO\n// Retrieve breakpoints from Sass vars?\nexport const breakpoints = {\n xs: 0,\n mobile: 320,\n tablet: 641,\n desktop: 769,\n};\n\nexport function getCurrentBreakpoint(windowWidth) {\n const reducer = (acc, curr) => {\n const windowInsideBreakpoint = (windowWidth || window.innerWidth) >= breakpoints[curr];\n return windowInsideBreakpoint ? curr : acc;\n };\n return Object.keys(breakpoints).reduce(reducer);\n}\n","import { debounce } from '../../utils/debounce';\nimport { getCurrentBreakpoint } from '../../utils/breakpoints';\n\nconst isSmall = (element) => element.innerWidth <= 768;\n\nfunction AccountMenu($module) {\n this.$module = document.querySelector($module);\n this.$moduleBottomMargin = this.$module.style.marginBottom;\n this.$mainNav = this.$module.querySelector('.hmrc-account-menu__main');\n this.$showNavLinkMobile = this.$module.querySelector('.hmrc-account-menu__link--menu');\n this.$currentBreakpoint = getCurrentBreakpoint();\n}\n\nAccountMenu.prototype.init = function init() {\n this.setup();\n\n this.$showNavLinkMobile.addEventListener('click', this.eventHandlers.showNavLinkMobileClick.bind(this));\n\n window.addEventListener('resize', debounce(this.reinstantiate.bind(this)));\n};\n\nAccountMenu.prototype.reinstantiate = function reinstantiate(resizeEvent) {\n const newBreakpoint = getCurrentBreakpoint(resizeEvent.target.innerWidth);\n const hasCrossedBreakpoint = this.$currentBreakpoint !== newBreakpoint;\n if (hasCrossedBreakpoint) {\n this.$currentBreakpoint = newBreakpoint;\n this.setup();\n }\n};\n\nAccountMenu.prototype.eventHandlers = {\n showNavLinkMobileClick(event) {\n event.preventDefault();\n\n if (isSmall(window)) {\n if (this.$mainNav.classList.contains('main-nav-is-open')) {\n this.hideMainNavMobile(event.currentTarget);\n } else {\n this.showMainNavMobile();\n }\n }\n },\n};\n\nAccountMenu.prototype.setup = function setup() {\n if (isSmall(window)) {\n this.$module.classList.add('is-smaller');\n this.$showNavLinkMobile.setAttribute('aria-hidden', 'false');\n this.$showNavLinkMobile.removeAttribute('tabindex');\n this.$showNavLinkMobile.classList.remove('js-hidden');\n\n this.hideMainNavMobile(this.$showNavLinkMobile);\n } else {\n this.$module.classList.remove('is-smaller');\n this.$mainNav.classList.remove('main-nav-is-open', 'js-hidden');\n this.$showNavLinkMobile.setAttribute('aria-hidden', 'true');\n this.$showNavLinkMobile.setAttribute('tabindex', '-1');\n this.$showNavLinkMobile.classList.add('js-hidden');\n }\n};\n\nAccountMenu.prototype.showMainNavMobile = function showMainNavMobile() {\n // TODO: shall we add main-nav-is-open to `nav`????\n this.$mainNav.classList.remove('js-hidden');\n this.$mainNav.classList.add('main-nav-is-open');\n this.$mainNav.setAttribute('aria-expanded', 'true');\n\n this.$showNavLinkMobile.setAttribute('aria-expanded', 'true');\n this.$showNavLinkMobile.classList.add('hmrc-account-home--account--is-open');\n};\n\nAccountMenu.prototype.hideMainNavMobile = function hideMainNavMobile(element) {\n this.$mainNav.classList.remove('main-nav-is-open');\n this.$mainNav.setAttribute('aria-expanded', 'false');\n\n if (element.classList.contains('hmrc-account-menu__link--menu')) {\n this.$mainNav.classList.add('js-hidden');\n\n this.$showNavLinkMobile.setAttribute('aria-expanded', 'false');\n this.$showNavLinkMobile.classList.remove('hmrc-account-home--account--is-open');\n }\n};\n\nexport default AccountMenu;\n","function BackLinkHelper($module, window, document) {\n this.$module = $module;\n this.window = window;\n this.document = document;\n}\n\nBackLinkHelper.prototype.init = function init() {\n // do nothing if History API is absent\n if (this.window.history) {\n // prevent resubmit warning\n if (this.window.history.replaceState && typeof this.window.history.replaceState === 'function') {\n this.window.history.replaceState(null, null, this.window.location.href);\n }\n\n this.$module.addEventListener('click', (event) => {\n event.preventDefault();\n if (this.window.history.back && typeof this.window.history.back === 'function') {\n this.window.history.back();\n }\n });\n }\n};\n\nexport default BackLinkHelper;\n","// Returns a function, that, as long as it continues to be invoked, will not\n// be triggered. The function will be called after it stops being called for\n// N milliseconds. If `immediate` is passed, trigger the function on the\n// leading edge, instead of the trailing.\n\n// eslint-disable-next-line import/prefer-default-export\nexport function debounce(func, wait, immediate) {\n let timeout;\n\n return (...theParams) => {\n const context = this;\n\n const later = () => {\n timeout = null;\n if (!immediate) func.apply(context, theParams);\n };\n\n const callNow = immediate && !timeout;\n\n clearTimeout(timeout);\n\n timeout = setTimeout(later, wait);\n\n if (callNow) func.apply(context, theParams);\n };\n}\n","const { warn } = console;\n\nconst utils = {\n generateDomElementFromString(str) {\n const abc = document.createElement('div');\n abc.innerHTML = str;\n return abc.firstChild;\n },\n\n generateDomElementFromStringAndAppendText(str, text) {\n const $tmp = utils.generateDomElementFromString(str);\n $tmp.innerText = text;\n return $tmp;\n },\n\n hasClass(selector, className) {\n return document.querySelector(selector).classList.contains(className);\n },\n\n addClass(selector, className) {\n const elements = document.querySelectorAll(selector);\n elements.forEach((i) => { i.classList.add(className); });\n },\n\n removeClass(selector, className) {\n const elements = document.querySelectorAll(selector);\n elements.forEach((i) => { i.classList.remove(className); });\n },\n\n removeElement($elem) {\n const parent = $elem.parentNode;\n if (parent) {\n parent.removeChild($elem);\n } else {\n warn(\"couldn't find parent for elem\", $elem);\n }\n },\n\n ajaxGet(url, success) {\n const xhr = new XMLHttpRequest();\n xhr.open('GET', url);\n xhr.onreadystatechange = () => {\n if (xhr.readyState > 3 && xhr.status === 200) success(xhr.responseText);\n };\n xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');\n xhr.send();\n return xhr;\n },\n};\n\nexport default utils;\n","import utils from './utils';\n\nfunction displayDialog($elementToDisplay) {\n const $dialog = utils.generateDomElementFromString('<div id=\"hmrc-timeout-dialog\" tabindex=\"-1\" role=\"dialog\" aria-modal=\"true\" class=\"hmrc-timeout-dialog\">');\n const $overlay = utils.generateDomElementFromString('<div id=\"hmrc-timeout-overlay\" class=\"hmrc-timeout-overlay\">');\n const $preparedElementToDisplay = typeof $elementToDisplay === 'string' ? utils.generateDomElementFromString($elementToDisplay) : $elementToDisplay;\n const resetElementsFunctionList = [];\n const closeCallbacks = [];\n\n $dialog.appendChild($preparedElementToDisplay);\n\n if (!utils.hasClass('html', 'noScroll')) {\n utils.addClass('html', 'noScroll');\n resetElementsFunctionList.push(() => {\n utils.removeClass('html', 'noScroll');\n });\n }\n document.body.appendChild($dialog);\n document.body.appendChild($overlay);\n\n resetElementsFunctionList.push(() => {\n utils.removeElement($dialog);\n utils.removeElement($overlay);\n });\n\n const setupFocusHandlerAndFocusDialog = () => {\n function keepFocus(event) {\n const modalFocus = document.getElementById('hmrc-timeout-dialog');\n if (modalFocus) {\n if (event.target !== modalFocus && !modalFocus.contains(event.target)) {\n event.stopPropagation();\n modalFocus.focus();\n }\n }\n }\n\n const elemToFocusOnReset = document.activeElement;\n $dialog.focus();\n\n document.addEventListener('focus', keepFocus, true);\n\n resetElementsFunctionList.push(() => {\n document.removeEventListener('focus', keepFocus);\n elemToFocusOnReset.focus();\n });\n };\n\n // disable the non-dialog page to prevent confusion for VoiceOver users\n const selectors = [\n '#skiplink-container',\n 'body > header',\n '#global-cookie-message',\n 'main',\n 'body > footer',\n 'body > .govuk-skip-link',\n '.cbanner-govuk-cookie-banner',\n 'body > .govuk-width-container',\n ];\n const elements = document.querySelectorAll(selectors.join(', '));\n const close = () => {\n while (resetElementsFunctionList.length > 0) {\n const fn = resetElementsFunctionList.shift();\n fn();\n }\n };\n const closeAndInform = () => {\n closeCallbacks.forEach((fn) => { fn(); });\n close();\n };\n const setupKeydownHandler = () => {\n function keydownListener(e) {\n if (e.keyCode === 27) {\n closeAndInform();\n }\n }\n\n document.addEventListener('keydown', keydownListener);\n\n resetElementsFunctionList.push(() => {\n document.removeEventListener('keydown', keydownListener);\n });\n };\n const preventMobileScrollWhileAllowingPinchZoom = () => {\n const handleTouch = (e) => {\n const touches = e.touches || e.changedTouches || [];\n\n if (touches.length === 1) {\n e.preventDefault();\n }\n };\n\n document.addEventListener('touchmove', handleTouch, true);\n\n resetElementsFunctionList.push(() => {\n document.removeEventListener('touchmove', handleTouch, true);\n });\n };\n\n elements.forEach(($elem) => {\n const value = $elem.getAttribute('aria-hidden');\n $elem.setAttribute('aria-hidden', 'true');\n resetElementsFunctionList.push(() => {\n if (value) {\n $elem.setAttribute('aria-hidden', value);\n } else {\n $elem.removeAttribute('aria-hidden');\n }\n });\n });\n\n //\n setupFocusHandlerAndFocusDialog();\n\n setupKeydownHandler();\n\n preventMobileScrollWhileAllowingPinchZoom();\n\n return {\n closeDialog() {\n close();\n },\n setAriaLabelledBy(value) {\n if (value) {\n $dialog.setAttribute('aria-labelledby', value);\n } else {\n $dialog.removeAttribute('aria-labelledby');\n }\n },\n addCloseHandler(closeHandler) {\n closeCallbacks.push(closeHandler);\n },\n };\n}\n\nexport default { displayDialog };\n","function ValidateInput() {\n}\n\nValidateInput.int = (stringToValidate) => {\n const parsedInt = parseInt(stringToValidate, 10);\n return Number.isNaN(parsedInt) ? undefined : parsedInt;\n};\n\nValidateInput.string = (stringToValidate) => (typeof stringToValidate === 'string' ? stringToValidate : undefined);\n\nValidateInput.boolean = (stringToValidate) => String(stringToValidate).toLowerCase() === 'true';\n\nexport default ValidateInput;\n","function RedirectHelper() {}\n\nRedirectHelper.redirectToUrl = (url) => {\n // This exists to make redirects more testable\n window.location.href = url;\n};\n\nexport default RedirectHelper;\n","import dialog from './dialog';\nimport ValidateInput from './validate-input';\nimport RedirectHelper from './redirectHelper';\nimport utils from './utils';\n\n// TODO: rewrite this to follow govuk-frontend prototype module pattern\n\nfunction TimeoutDialog($module, $sessionActivityService) {\n let options = {};\n let settings = {};\n const cleanupFunctions = [];\n let currentTimer;\n const sessionActivityService = $sessionActivityService;\n\n function init() {\n const validate = ValidateInput;\n\n function lookupData(key) {\n return ($module.attributes.getNamedItem(key) || {}).value;\n }\n\n const localisedDefaults = validate.string(lookupData('data-language')) === 'cy' ? {\n title: 'Rydych ar fin cael eich allgofnodi',\n message: 'Er eich diogelwch, byddwn yn eich allgofnodi cyn pen',\n keepAliveButtonText: 'Parhau i fod wedi’ch mewngofnodi',\n signOutButtonText: 'Allgofnodi',\n properties: {\n minutes: 'funud',\n minute: 'funud',\n seconds: 'eiliad',\n second: 'eiliad',\n },\n } : {\n title: 'You’re about to be signed out',\n message: 'For your security, we will sign you out in',\n keepAliveButtonText: 'Stay signed in',\n signOutButtonText: 'Sign out',\n properties: {\n minutes: 'minutes',\n minute: 'minute',\n seconds: 'seconds',\n second: 'second',\n },\n };\n\n options = {\n timeout: validate.int(lookupData('data-timeout')),\n countdown: validate.int(lookupData('data-countdown')),\n keepAliveUrl: validate.string(lookupData('data-keep-alive-url')),\n signOutUrl: validate.string(lookupData('data-sign-out-url')),\n timeoutUrl: validate.string(lookupData('data-timeout-url')),\n title: validate.string(lookupData('data-title')),\n message: validate.string(lookupData('data-message')),\n messageSuffix: validate.string(lookupData('data-message-suffix')),\n keepAliveButtonText: validate.string(\n lookupData('data-keep-alive-button-text'),\n ),\n signOutButtonText: validate.string(\n lookupData('data-sign-out-button-text'),\n ),\n synchroniseTabs: validate.boolean(\n lookupData('data-synchronise-tabs') || false,\n ),\n hideSignOutButton: validate.boolean(\n lookupData('data-hide-sign-out-button') || false,\n ),\n };\n\n // Default timeoutUrl to signOutUrl if not set\n options.timeoutUrl = options.timeoutUrl || options.signOutUrl;\n\n validateInput(options);\n settings = mergeOptionsWithDefaults(options, localisedDefaults);\n setupDialogTimer();\n listenForSessionActivityAndResetDialogTimer();\n }\n\n const broadcastSessionActivity = () => {\n sessionActivityService.logActivity();\n };\n\n const listenForSessionActivityAndResetDialogTimer = () => {\n if (settings.synchroniseTabs) {\n sessionActivityService.onActivity((event) => {\n const timeOfActivity = event.timestamp;\n cleanup();\n setupDialogTimer(timeOfActivity);\n });\n }\n };\n\n const validateInput = (config) => {\n const requiredConfig = ['timeout', 'countdown', 'keepAliveUrl', 'signOutUrl'];\n const missingRequiredConfig = [];\n\n requiredConfig.forEach((item) => {\n if (!config[item]) {\n missingRequiredConfig.push(`data-${item.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase()}`);\n }\n });\n\n if (missingRequiredConfig.length > 0) {\n throw new Error(\n `Missing config item(s): [${missingRequiredConfig.join(', ')}]`,\n );\n }\n };\n\n const mergeOptionsWithDefaults = (theOptions, localisedDefaults) => {\n const clone = { ...theOptions };\n\n Object.keys(localisedDefaults).forEach((key) => {\n if (typeof clone[key] === 'object') {\n clone[key] = mergeOptionsWithDefaults(\n theOptions[key],\n localisedDefaults[key],\n );\n }\n if (clone[key] === undefined || clone[key] === '') {\n clone[key] = localisedDefaults[key];\n }\n });\n\n return clone;\n };\n\n const setupDialogTimer = (timeOfLastActivity = getDateNow()) => {\n const signoutTime = timeOfLastActivity + settings.timeout * 1000;\n\n const delta = getDateNow() - timeOfLastActivity;\n const secondsUntilTimeoutDialog = settings.timeout - settings.countdown;\n const timeout = window.setTimeout(() => {\n setupDialog(signoutTime);\n }, (secondsUntilTimeoutDialog * 1000) - delta);\n\n cleanupFunctions.push(() => {\n window.clearTimeout(timeout);\n if (currentTimer) {\n window.clearTimeout(currentTimer);\n }\n });\n };\n\n const setupDialog = (signoutTime) => {\n const $element = utils.generateDomElementFromString('<div>');\n\n if (settings.title) {\n const $tmp = utils.generateDomElementFromStringAndAppendText(\n '<h1 id=\"hmrc-timeout-heading\" class=\"govuk-heading-m push--top\">',\n settings.title,\n );\n $element.appendChild($tmp);\n }\n\n const $countdownElement = utils.generateDomElementFromString(\n '<span id=\"hmrc-timeout-countdown\" class=\"hmrc-timeout-dialog__countdown\">',\n );\n\n const $audibleMessage = utils.generateDomElementFromString('<p id=\"hmrc-timeout-message\" class=\"govuk-visually-hidden screenreader-content\" aria-live=\"assertive\">');\n const $visualMessge = utils.generateDomElementFromStringAndAppendText(\n '<p class=\"govuk-body hmrc-timeout-dialog__message\" aria-hidden=\"true\">',\n settings.message,\n );\n $visualMessge.appendChild(document.createTextNode(' '));\n $visualMessge.appendChild($countdownElement);\n if (settings.messageSuffix) {\n $visualMessge.appendChild(document.createTextNode(` ${settings.messageSuffix}`));\n }\n\n const $staySignedInButton = utils.generateDomElementFromStringAndAppendText(\n '<button id=\"hmrc-timeout-keep-signin-btn\" class=\"govuk-button\">',\n settings.keepAliveButtonText,\n );\n\n const $wrapper = document.createElement('div');\n $wrapper.classList.add('govuk-button-group');\n $wrapper.appendChild($staySignedInButton);\n\n $element.appendChild($visualMessge);\n $element.appendChild($audibleMessage);\n $staySignedInButton.addEventListener('click', keepAliveAndClose);\n $element.appendChild(document.createTextNode(' '));\n\n if (!settings.hideSignOutButton) {\n const $signOutButton = utils.generateDomElementFromStringAndAppendText(\n '<a id=\"hmrc-timeout-sign-out-link\" class=\"govuk-link hmrc-timeout-dialog__link\">',\n settings.signOutButtonText,\n );\n $signOutButton.addEventListener('click', signOut);\n $signOutButton.setAttribute('href', settings.signOutUrl);\n\n $wrapper.appendChild($signOutButton);\n }\n\n $element.appendChild($wrapper);\n\n const dialogControl = dialog.displayDialog($element);\n\n cleanupFunctions.push(() => {\n dialogControl.closeDialog();\n });\n\n dialogControl.addCloseHandler(keepAliveAndClose);\n\n dialogControl.setAriaLabelledBy('hmrc-timeout-heading hmrc-timeout-message');\n\n const getMillisecondsRemaining = () => signoutTime - getDateNow();\n const getSecondsRemaining = () => Math.round(getMillisecondsRemaining() / 1000);\n\n const getHumanText = (counter) => {\n let minutes; let\n visibleMessage;\n if (counter < 60) {\n visibleMessage = `${counter} ${settings.properties[counter !== 1 ? 'seconds' : 'second']}.`;\n } else {\n minutes = Math.ceil(counter / 60);\n visibleMessage = `${minutes} ${settings.properties[minutes === 1 ? 'minute' : 'minutes']}.`;\n }\n return visibleMessage;\n };\n\n const getAudibleHumanText = (counter) => {\n const humanText = getHumanText(roundSecondsUp(counter));\n const messageParts = [settings.message, ' ', humanText];\n if (settings.messageSuffix) {\n messageParts.push(' ');\n messageParts.push(settings.messageSuffix);\n }\n return messageParts.join('');\n };\n\n const roundSecondsUp = (counter) => {\n if (counter > 60) {\n return counter;\n } if (counter < 20) {\n return 20;\n }\n return Math.ceil(counter / 20) * 20;\n };\n\n const updateTextIfChanged = ($elem, text) => {\n if ($elem.innerText !== text) {\n // eslint-disable-next-line no-param-reassign\n $elem.innerText = text;\n }\n };\n\n const updateCountdown = (counter) => {\n const visibleMessage = getHumanText(counter);\n const audibleHumanText = getAudibleHumanText(counter);\n\n updateTextIfChanged($countdownElement, visibleMessage);\n updateTextIfChanged($audibleMessage, audibleHumanText);\n };\n\n const getNextTimeout = () => {\n const remaining = getMillisecondsRemaining();\n const roundedRemaining = Math.floor(getMillisecondsRemaining() / 1000) * 1000;\n if (roundedRemaining <= 60000) {\n return (remaining - roundedRemaining) || 1000;\n }\n return remaining - (roundedRemaining - (roundedRemaining % 60000 || 60000));\n };\n\n const runUpdate = () => {\n const counter = Math.max(getSecondsRemaining(), 0);\n updateCountdown(counter);\n if (counter === 0) {\n timeout();\n } else {\n currentTimer = window.setTimeout(runUpdate, getNextTimeout());\n }\n };\n\n runUpdate();\n };\n\n const keepAliveAndClose = () => {\n cleanup();\n setupDialogTimer();\n utils.ajaxGet(settings.keepAliveUrl, () => {});\n broadcastSessionActivity();\n };\n\n const getDateNow = () => Date.now();\n\n const signOut = () => {\n RedirectHelper.redirectToUrl(settings.signOutUrl);\n };\n\n const timeout = () => {\n RedirectHelper.redirectToUrl(settings.timeoutUrl);\n };\n\n const cleanup = () => {\n while (cleanupFunctions.length > 0) {\n const fn = cleanupFunctions.shift();\n fn();\n }\n };\n\n return { init, cleanup };\n}\n\nTimeoutDialog.dialog = dialog;\nTimeoutDialog.redirectHelper = RedirectHelper;\nTimeoutDialog.utils = utils;\n\nexport default TimeoutDialog;\n","import { getCookie, setCookie } from '../../utils/cookies';\n\nfunction UserResearchBanner($module) {\n this.$module = $module;\n this.$closeLink = this.$module.querySelector('.hmrc-user-research-banner__close');\n this.cookieName = 'mdtpurr';\n this.cookieExpiryDays = 28;\n}\n\nUserResearchBanner.prototype.init = function init() {\n const cookieData = getCookie(this.cookieName);\n\n if (cookieData == null) {\n this.$module.classList.add('hmrc-user-research-banner--show');\n if (this.$closeLink) {\n this.$closeLink.addEventListener('click', this.eventHandlers.noThanksClick.bind(this));\n }\n }\n};\n\nUserResearchBanner.prototype.eventHandlers = {\n noThanksClick(event) {\n event.preventDefault();\n\n setCookie(this.cookieName, 'suppress_for_all_services', { days: this.cookieExpiryDays });\n this.$module.classList.remove('hmrc-user-research-banner--show');\n },\n};\n\nexport default UserResearchBanner;\n","// Based on https://github.com/alphagov/govuk_template_jinja\nexport const setCookie = (name, value, options = {}) => {\n let cookieString = `${name}=${value}; path=/`;\n if (options.days) {\n const date = new Date();\n date.setTime(date.getTime() + (options.days * 24 * 60 * 60 * 1000));\n cookieString = `${cookieString}; expires=${date.toGMTString()}`;\n }\n if (window.location.protocol === 'https:') {\n cookieString += '; Secure';\n }\n document.cookie = cookieString;\n\n return cookieString;\n};\n\nexport const getCookie = (name) => {\n const nameEQ = `${name}=`;\n const cookies = document.cookie.split(';');\n for (let i = 0, len = cookies.length; i < len; i += 1) {\n let cookie = cookies[i];\n while (cookie.charAt(0) === ' ') {\n cookie = cookie.substring(1, cookie.length);\n }\n if (cookie.indexOf(nameEQ) === 0) {\n return decodeURIComponent(cookie.substring(nameEQ.length));\n }\n }\n return null;\n};\n","export default class SessionActivityService {\n constructor(BrowserBroadcastChannel) {\n this.activityChannel = BrowserBroadcastChannel && new BrowserBroadcastChannel('session-activity');\n }\n\n logActivity() {\n if (this.activityChannel) {\n const event = { timestamp: Date.now() };\n this.activityChannel.postMessage(event);\n }\n }\n\n onActivity(callback) {\n if (this.activityChannel) {\n this.activityChannel.onmessage = (event) => {\n callback(event.data);\n };\n }\n }\n}\n","function HmrcPrintLink($module, window) {\n this.$module = $module;\n this.window = window;\n}\n\nHmrcPrintLink.prototype.init = function init() {\n this.$module.addEventListener('click', (event) => {\n event.preventDefault();\n this.window.print();\n });\n};\n\nexport default HmrcPrintLink;\n","import AccountMenu from './components/account-menu/account-menu';\nimport BackLinkHelper from './components/back-link-helper/back-link-helper';\nimport TimeoutDialog from './components/timeout-dialog/timeout-dialog';\nimport UserResearchBanner from './components/user-research-banner/user-research-banner';\nimport SessionActivityService from './components/timeout-dialog/session-activity-service';\nimport HmrcPrintLink from './components/hmrc-print-link/hmrc-print-link';\n\nfunction initAll() {\n function logAndIgnoreErrors(init) {\n try {\n init();\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error('hmrc-frontend component initialisation failed', error);\n }\n }\n\n const $AccountMenuSelector = '[data-module=\"hmrc-account-menu\"]';\n if (document.querySelector($AccountMenuSelector)) {\n logAndIgnoreErrors(() => {\n new AccountMenu($AccountMenuSelector).init();\n });\n }\n\n const $HmrcPrintLinks = document.querySelectorAll('a[data-module=\"hmrc-print-link\"]');\n $HmrcPrintLinks.forEach(($HmrcPrintLink) => {\n logAndIgnoreErrors(() => {\n new HmrcPrintLink($HmrcPrintLink, window).init();\n });\n });\n\n const sessionActivityService = new SessionActivityService(window.BroadcastChannel);\n sessionActivityService.logActivity();\n\n const $TimeoutDialog = document.querySelector('meta[name=\"hmrc-timeout-dialog\"]');\n if ($TimeoutDialog) {\n logAndIgnoreErrors(() => {\n new TimeoutDialog($TimeoutDialog, sessionActivityService).init();\n });\n }\n\n const $UserResearchBanner = document.querySelector('[data-module=\"hmrc-user-research-banner\"]');\n if ($UserResearchBanner) {\n logAndIgnoreErrors(() => {\n new UserResearchBanner($UserResearchBanner).init();\n });\n }\n\n const $BackLinks = document.querySelectorAll('[data-module=\"hmrc-back-link\"]');\n $BackLinks.forEach(($BackLink) => {\n logAndIgnoreErrors(() => {\n new BackLinkHelper($BackLink, window, document).init();\n });\n });\n}\n\nexport default {\n initAll,\n AccountMenu,\n TimeoutDialog,\n UserResearchBanner,\n BackLinkHelper,\n\n};\n","import { initAll } from 'govuk-frontend/dist/govuk/govuk-frontend.min.js';\nimport HMRCFrontend from './all';\n\ninitAll();\nHMRCFrontend.initAll();\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hmrc-frontend",
3
- "version": "6.93.0",
3
+ "version": "6.95.0",
4
4
  "description": "Design patterns for HMRC frontends",
5
5
  "scripts": {
6
6
  "postinstall": "node check-compatibility-with-govuk-frontend-version.js"
@@ -25,6 +25,6 @@
25
25
  "homepage": "https://github.com/hmrc/hmrc-frontend#readme",
26
26
  "dependencies": {
27
27
  "accessible-autocomplete": "^3.0.1",
28
- "govuk-frontend": "^5.11.2"
28
+ "govuk-frontend": "^5.12.0"
29
29
  }
30
30
  }
@@ -1,3 +0,0 @@
1
- !function(){"use strict";function t(t){const e=`--govuk-breakpoint-${t}`;return{property:e,value:window.getComputedStyle(document.documentElement).getPropertyValue(e)||void 0}}function e(t,e={}){var n;const i=t.getAttribute("tabindex");function s(){var n;null==(n=e.onBlur)||n.call(t),i||t.removeAttribute("tabindex")}i||t.setAttribute("tabindex","-1"),t.addEventListener("focus",(function(){t.addEventListener("blur",s,{once:!0})}),{once:!0}),null==(n=e.onBeforeFocus)||n.call(t),t.focus()}function n(t=document.body){return!!t&&t.classList.contains("govuk-frontend-supported")}function i(t){return!!t&&"object"==typeof t&&!function(t){return Array.isArray(t)}(t)}function s(t){return!!t&&(t instanceof Element||t instanceof Document)}function o(t,e){return`${t.moduleName}: ${e}`}class r extends Error{constructor(...t){super(...t),this.name="GOVUKFrontendError"}}class a extends r{constructor(t=document.body){const e="noModule"in HTMLScriptElement.prototype?'GOV.UK Frontend initialised without `<body class="govuk-frontend-supported">` from template `<script>` snippet':"GOV.UK Frontend is not supported in this browser";super(t?e:'GOV.UK Frontend initialised without `<script type="module">`'),this.name="SupportError"}}class c extends r{constructor(...t){super(...t),this.name="ConfigError"}}class u extends r{constructor(t){let e="string"==typeof t?t:"";if(i(t)){const{component:n,identifier:i,element:s,expectedType:r}=t;e=i,e+=s?` is not of type ${null!=r?r:"HTMLElement"}`:" not found",n&&(e=o(n,e))}super(e),this.name="ElementError"}}class l extends r{constructor(t){super("string"==typeof t?t:o(t,"Root element (`$root`) already initialised")),this.name="InitError"}}class d{get $root(){return this._$root}constructor(t){this._$root=void 0;const e=this.constructor;if("string"!=typeof e.moduleName)throw new l("`moduleName` not defined in component");if(!(t instanceof e.elementType))throw new u({element:t,component:e,identifier:"Root element (`$root`)",expectedType:e.elementType.name});this._$root=t,e.checkSupport(),this.checkInitialised();const n=e.moduleName;this.$root.setAttribute(`data-${n}-init`,"")}checkInitialised(){const t=this.constructor,e=t.moduleName;if(e&&function(t,e){return t instanceof HTMLElement&&t.hasAttribute(`data-${e}-init`)}(this.$root,e))throw new l(t)}static checkSupport(){if(!n())throw new a}}d.elementType=HTMLElement;const h=Symbol.for("configOverride");class m extends d{[h](t){return{}}get config(){return this._config}constructor(t,e){super(t),this._config=void 0;const n=this.constructor;if(!i(n.defaults))throw new c(o(n,"Config passed as parameter into constructor but no defaults defined"));const s=function(t,e){if(!i(t.schema))throw new c(o(t,"Config passed as parameter into constructor but no schema defined"));const n={},s=Object.entries(t.schema.properties);for(const i of s){const[s,o]=i,r=s.toString();r in e&&(n[r]=p(e[r],o)),"object"===(null==o?void 0:o.type)&&(n[r]=v(t.schema,e,s))}return n}(n,this._$root.dataset);this._config=f(n.defaults,null!=e?e:{},this[h](s),s)}}function p(t,e){const n=t?t.trim():"";let i,s=null==e?void 0:e.type;switch(s||(["true","false"].includes(n)&&(s="boolean"),n.length>0&&isFinite(Number(n))&&(s="number")),s){case"boolean":i="true"===n;break;case"number":i=Number(n);break;default:i=t}return i}function g(t){let e,n=document;if(i(t)){const i=t;(s(i.scope)||null===i.scope)&&(n=i.scope),"function"==typeof i.onError&&(e=i.onError)}return s(t)?n=t:null===t?n=null:"function"==typeof t&&(e=t),{scope:n,onError:e}}function f(...t){const e={};for(const n of t)for(const t of Object.keys(n)){const s=e[t],o=n[t];i(s)&&i(o)?e[t]=f(s,o):e[t]=o}return e}function v(t,e,n){const s=t.properties[n];if("object"!==(null==s?void 0:s.type))return;const o={[n]:{}};for(const[t,s]of Object.entries(e)){let e=o;const r=t.split(".");for(const[o,a]of r.entries())i(e)&&(o<r.length-1?(i(e[a])||(e[a]={}),e=e[a]):t!==n&&(e[a]=p(s)))}return o[n]}class b{constructor(t={},e={}){var n;this.translations=void 0,this.locale=void 0,this.translations=t,this.locale=null!=(n=e.locale)?n:document.documentElement.lang||"en"}t(t,e){if(!t)throw new Error("i18n: lookup key missing");let n=this.translations[t];if("number"==typeof(null==e?void 0:e.count)&&i(n)){const i=n[this.getPluralSuffix(t,e.count)];i&&(n=i)}if("string"==typeof n){if(n.match(/%{(.\S+)}/)){if(!e)throw new Error("i18n: cannot replace placeholders in string if no option data provided");return this.replacePlaceholders(n,e)}return n}return t}replacePlaceholders(t,e){const n=Intl.NumberFormat.supportedLocalesOf(this.locale).length?new Intl.NumberFormat(this.locale):void 0;return t.replace(/%{(.\S+)}/g,(function(t,i){if(Object.prototype.hasOwnProperty.call(e,i)){const t=e[i];return!1===t||"number"!=typeof t&&"string"!=typeof t?"":"number"==typeof t?n?n.format(t):`${t}`:t}throw new Error(`i18n: no data found to replace ${t} placeholder in string`)}))}hasIntlPluralRulesSupport(){return Boolean("PluralRules"in window.Intl&&Intl.PluralRules.supportedLocalesOf(this.locale).length)}getPluralSuffix(t,e){if(e=Number(e),!isFinite(e))return"other";const n=this.translations[t],s=this.hasIntlPluralRulesSupport()?new Intl.PluralRules(this.locale).select(e):this.selectPluralFormUsingFallbackRules(e);if(i(n)){if(s in n)return s;if("other"in n)return console.warn(`i18n: Missing plural form ".${s}" for "${this.locale}" locale. Falling back to ".other".`),"other"}throw new Error(`i18n: Plural form ".other" is required for "${this.locale}" locale`)}selectPluralFormUsingFallbackRules(t){t=Math.abs(Math.floor(t));const e=this.getPluralRulesForLocale();return e?b.pluralRules[e](t):"other"}getPluralRulesForLocale(){const t=this.locale.split("-")[0];for(const e in b.pluralRulesMap){const n=b.pluralRulesMap[e];if(n.includes(this.locale)||n.includes(t))return e}}}b.pluralRulesMap={arabic:["ar"],chinese:["my","zh","id","ja","jv","ko","ms","th","vi"],french:["hy","bn","fr","gu","hi","fa","pa","zu"],german:["af","sq","az","eu","bg","ca","da","nl","en","et","fi","ka","de","el","hu","lb","no","so","sw","sv","ta","te","tr","ur"],irish:["ga"],russian:["ru","uk"],scottish:["gd"],spanish:["pt-PT","it","es"],welsh:["cy"]},b.pluralRules={arabic:t=>0===t?"zero":1===t?"one":2===t?"two":t%100>=3&&t%100<=10?"few":t%100>=11&&t%100<=99?"many":"other",chinese:()=>"other",french:t=>0===t||1===t?"one":"other",german:t=>1===t?"one":"other",irish:t=>1===t?"one":2===t?"two":t>=3&&t<=6?"few":t>=7&&t<=10?"many":"other",russian(t){const e=t%100,n=e%10;return 1===n&&11!==e?"one":n>=2&&n<=4&&!(e>=12&&e<=14)?"few":0===n||n>=5&&n<=9||e>=11&&e<=14?"many":"other"},scottish:t=>1===t||11===t?"one":2===t||12===t?"two":t>=3&&t<=10||t>=13&&t<=19?"few":"other",spanish:t=>1===t?"one":t%1e6==0&&0!==t?"many":"other",welsh:t=>0===t?"zero":1===t?"one":2===t?"two":3===t?"few":6===t?"many":"other"};class w extends m{constructor(t,e={}){super(t,e),this.i18n=void 0,this.controlsClass="govuk-accordion__controls",this.showAllClass="govuk-accordion__show-all",this.showAllTextClass="govuk-accordion__show-all-text",this.sectionClass="govuk-accordion__section",this.sectionExpandedClass="govuk-accordion__section--expanded",this.sectionButtonClass="govuk-accordion__section-button",this.sectionHeaderClass="govuk-accordion__section-header",this.sectionHeadingClass="govuk-accordion__section-heading",this.sectionHeadingDividerClass="govuk-accordion__section-heading-divider",this.sectionHeadingTextClass="govuk-accordion__section-heading-text",this.sectionHeadingTextFocusClass="govuk-accordion__section-heading-text-focus",this.sectionShowHideToggleClass="govuk-accordion__section-toggle",this.sectionShowHideToggleFocusClass="govuk-accordion__section-toggle-focus",this.sectionShowHideTextClass="govuk-accordion__section-toggle-text",this.upChevronIconClass="govuk-accordion-nav__chevron",this.downChevronIconClass="govuk-accordion-nav__chevron--down",this.sectionSummaryClass="govuk-accordion__section-summary",this.sectionSummaryFocusClass="govuk-accordion__section-summary-focus",this.sectionContentClass="govuk-accordion__section-content",this.$sections=void 0,this.$showAllButton=null,this.$showAllIcon=null,this.$showAllText=null,this.i18n=new b(this.config.i18n);const n=this.$root.querySelectorAll(`.${this.sectionClass}`);if(!n.length)throw new u({component:w,identifier:`Sections (\`<div class="${this.sectionClass}">\`)`});this.$sections=n,this.initControls(),this.initSectionHeaders(),this.updateShowAllButton(this.areAllSectionsOpen())}initControls(){this.$showAllButton=document.createElement("button"),this.$showAllButton.setAttribute("type","button"),this.$showAllButton.setAttribute("class",this.showAllClass),this.$showAllButton.setAttribute("aria-expanded","false"),this.$showAllIcon=document.createElement("span"),this.$showAllIcon.classList.add(this.upChevronIconClass),this.$showAllButton.appendChild(this.$showAllIcon);const t=document.createElement("div");t.setAttribute("class",this.controlsClass),t.appendChild(this.$showAllButton),this.$root.insertBefore(t,this.$root.firstChild),this.$showAllText=document.createElement("span"),this.$showAllText.classList.add(this.showAllTextClass),this.$showAllButton.appendChild(this.$showAllText),this.$showAllButton.addEventListener("click",(()=>this.onShowOrHideAllToggle())),"onbeforematch"in document&&document.addEventListener("beforematch",(t=>this.onBeforeMatch(t)))}initSectionHeaders(){this.$sections.forEach(((t,e)=>{const n=t.querySelector(`.${this.sectionHeaderClass}`);if(!n)throw new u({component:w,identifier:`Section headers (\`<div class="${this.sectionHeaderClass}">\`)`});this.constructHeaderMarkup(n,e),this.setExpanded(this.isExpanded(t),t),n.addEventListener("click",(()=>this.onSectionToggle(t))),this.setInitialState(t)}))}constructHeaderMarkup(t,e){const n=t.querySelector(`.${this.sectionButtonClass}`),i=t.querySelector(`.${this.sectionHeadingClass}`),s=t.querySelector(`.${this.sectionSummaryClass}`);if(!i)throw new u({component:w,identifier:`Section heading (\`.${this.sectionHeadingClass}\`)`});if(!n)throw new u({component:w,identifier:`Section button placeholder (\`<span class="${this.sectionButtonClass}">\`)`});const o=document.createElement("button");o.setAttribute("type","button"),o.setAttribute("aria-controls",`${this.$root.id}-content-${e+1}`);for(const t of Array.from(n.attributes))"id"!==t.name&&o.setAttribute(t.name,t.value);const r=document.createElement("span");r.classList.add(this.sectionHeadingTextClass),r.id=n.id;const a=document.createElement("span");a.classList.add(this.sectionHeadingTextFocusClass),r.appendChild(a),Array.from(n.childNodes).forEach((t=>a.appendChild(t)));const c=document.createElement("span");c.classList.add(this.sectionShowHideToggleClass),c.setAttribute("data-nosnippet","");const l=document.createElement("span");l.classList.add(this.sectionShowHideToggleFocusClass),c.appendChild(l);const d=document.createElement("span"),h=document.createElement("span");if(h.classList.add(this.upChevronIconClass),l.appendChild(h),d.classList.add(this.sectionShowHideTextClass),l.appendChild(d),o.appendChild(r),o.appendChild(this.getButtonPunctuationEl()),s){const t=document.createElement("span"),e=document.createElement("span");e.classList.add(this.sectionSummaryFocusClass),t.appendChild(e);for(const e of Array.from(s.attributes))t.setAttribute(e.name,e.value);Array.from(s.childNodes).forEach((t=>e.appendChild(t))),s.remove(),o.appendChild(t),o.appendChild(this.getButtonPunctuationEl())}o.appendChild(c),i.removeChild(n),i.appendChild(o)}onBeforeMatch(t){const e=t.target;if(!(e instanceof Element))return;const n=e.closest(`.${this.sectionClass}`);n&&this.setExpanded(!0,n)}onSectionToggle(t){const e=!this.isExpanded(t);this.setExpanded(e,t),this.storeState(t,e)}onShowOrHideAllToggle(){const t=!this.areAllSectionsOpen();this.$sections.forEach((e=>{this.setExpanded(t,e),this.storeState(e,t)})),this.updateShowAllButton(t)}setExpanded(t,e){const n=e.querySelector(`.${this.upChevronIconClass}`),i=e.querySelector(`.${this.sectionShowHideTextClass}`),s=e.querySelector(`.${this.sectionButtonClass}`),o=e.querySelector(`.${this.sectionContentClass}`);if(!o)throw new u({component:w,identifier:`Section content (\`<div class="${this.sectionContentClass}">\`)`});if(!n||!i||!s)return;const r=t?this.i18n.t("hideSection"):this.i18n.t("showSection");i.textContent=r,s.setAttribute("aria-expanded",`${t}`);const a=[],c=e.querySelector(`.${this.sectionHeadingTextClass}`);c&&a.push(c.textContent.trim());const l=e.querySelector(`.${this.sectionSummaryClass}`);l&&a.push(l.textContent.trim());const d=t?this.i18n.t("hideSectionAriaLabel"):this.i18n.t("showSectionAriaLabel");a.push(d),s.setAttribute("aria-label",a.join(" , ")),t?(o.removeAttribute("hidden"),e.classList.add(this.sectionExpandedClass),n.classList.remove(this.downChevronIconClass)):(o.setAttribute("hidden","until-found"),e.classList.remove(this.sectionExpandedClass),n.classList.add(this.downChevronIconClass)),this.updateShowAllButton(this.areAllSectionsOpen())}isExpanded(t){return t.classList.contains(this.sectionExpandedClass)}areAllSectionsOpen(){return Array.from(this.$sections).every((t=>this.isExpanded(t)))}updateShowAllButton(t){this.$showAllButton&&this.$showAllText&&this.$showAllIcon&&(this.$showAllButton.setAttribute("aria-expanded",t.toString()),this.$showAllText.textContent=t?this.i18n.t("hideAllSections"):this.i18n.t("showAllSections"),this.$showAllIcon.classList.toggle(this.downChevronIconClass,!t))}getIdentifier(t){const e=t.querySelector(`.${this.sectionButtonClass}`);return null==e?void 0:e.getAttribute("aria-controls")}storeState(t,e){if(!this.config.rememberExpanded)return;const n=this.getIdentifier(t);if(n)try{window.sessionStorage.setItem(n,e.toString())}catch(t){}}setInitialState(t){if(!this.config.rememberExpanded)return;const e=this.getIdentifier(t);if(e)try{const n=window.sessionStorage.getItem(e);null!==n&&this.setExpanded("true"===n,t)}catch(t){}}getButtonPunctuationEl(){const t=document.createElement("span");return t.classList.add("govuk-visually-hidden",this.sectionHeadingDividerClass),t.textContent=", ",t}}w.moduleName="govuk-accordion",w.defaults=Object.freeze({i18n:{hideAllSections:"Hide all sections",hideSection:"Hide",hideSectionAriaLabel:"Hide this section",showAllSections:"Show all sections",showSection:"Show",showSectionAriaLabel:"Show this section"},rememberExpanded:!0}),w.schema=Object.freeze({properties:{i18n:{type:"object"},rememberExpanded:{type:"boolean"}}});class y extends m{constructor(t,e={}){super(t,e),this.debounceFormSubmitTimer=null,this.$root.addEventListener("keydown",(t=>this.handleKeyDown(t))),this.$root.addEventListener("click",(t=>this.debounce(t)))}handleKeyDown(t){const e=t.target;" "===t.key&&e instanceof HTMLElement&&"button"===e.getAttribute("role")&&(t.preventDefault(),e.click())}debounce(t){if(this.config.preventDoubleClick)return this.debounceFormSubmitTimer?(t.preventDefault(),!1):void(this.debounceFormSubmitTimer=window.setTimeout((()=>{this.debounceFormSubmitTimer=null}),1e3))}}function $(t,e){const n=t.closest(`[${e}]`);return n?n.getAttribute(e):null}y.moduleName="govuk-button",y.defaults=Object.freeze({preventDoubleClick:!1}),y.schema=Object.freeze({properties:{preventDoubleClick:{type:"boolean"}}});class k extends m{[h](t){let e={};return("maxwords"in t||"maxlength"in t)&&(e={maxlength:void 0,maxwords:void 0}),e}constructor(t,e={}){var n,i;super(t,e),this.$textarea=void 0,this.$visibleCountMessage=void 0,this.$screenReaderCountMessage=void 0,this.lastInputTimestamp=null,this.lastInputValue="",this.valueChecker=null,this.i18n=void 0,this.maxLength=void 0;const s=this.$root.querySelector(".govuk-js-character-count");if(!(s instanceof HTMLTextAreaElement||s instanceof HTMLInputElement))throw new u({component:k,element:s,expectedType:"HTMLTextareaElement or HTMLInputElement",identifier:"Form field (`.govuk-js-character-count`)"});const r=function(t,e){const n=[];for(const[i,s]of Object.entries(t)){const t=[];if(Array.isArray(s)){for(const{required:n,errorMessage:i}of s)n.every((t=>!!e[t]))||t.push(i);"anyOf"!==i||s.length-t.length>=1||n.push(...t)}}return n}(k.schema,this.config);if(r[0])throw new c(o(k,r[0]));this.i18n=new b(this.config.i18n,{locale:$(this.$root,"lang")}),this.maxLength=null!=(n=null!=(i=this.config.maxwords)?i:this.config.maxlength)?n:1/0,this.$textarea=s;const a=`${this.$textarea.id}-info`,l=document.getElementById(a);if(!l)throw new u({component:k,element:l,identifier:`Count message (\`id="${a}"\`)`});this.$errorMessage=this.$root.querySelector(".govuk-error-message"),l.textContent.match(/^\s*$/)&&(l.textContent=this.i18n.t("textareaDescription",{count:this.maxLength})),this.$textarea.insertAdjacentElement("afterend",l);const d=document.createElement("div");d.className="govuk-character-count__sr-status govuk-visually-hidden",d.setAttribute("aria-live","polite"),this.$screenReaderCountMessage=d,l.insertAdjacentElement("afterend",d);const h=document.createElement("div");h.className=l.className,h.classList.add("govuk-character-count__status"),h.setAttribute("aria-hidden","true"),this.$visibleCountMessage=h,l.insertAdjacentElement("afterend",h),l.classList.add("govuk-visually-hidden"),this.$textarea.removeAttribute("maxlength"),this.bindChangeEvents(),window.addEventListener("pageshow",(()=>this.updateCountMessage())),this.updateCountMessage()}bindChangeEvents(){this.$textarea.addEventListener("keyup",(()=>this.handleKeyUp())),this.$textarea.addEventListener("focus",(()=>this.handleFocus())),this.$textarea.addEventListener("blur",(()=>this.handleBlur()))}handleKeyUp(){this.updateVisibleCountMessage(),this.lastInputTimestamp=Date.now()}handleFocus(){this.valueChecker=window.setInterval((()=>{(!this.lastInputTimestamp||Date.now()-500>=this.lastInputTimestamp)&&this.updateIfValueChanged()}),1e3)}handleBlur(){this.valueChecker&&window.clearInterval(this.valueChecker)}updateIfValueChanged(){this.$textarea.value!==this.lastInputValue&&(this.lastInputValue=this.$textarea.value,this.updateCountMessage())}updateCountMessage(){this.updateVisibleCountMessage(),this.updateScreenReaderCountMessage()}updateVisibleCountMessage(){const t=this.maxLength-this.count(this.$textarea.value)<0;this.$visibleCountMessage.classList.toggle("govuk-character-count__message--disabled",!this.isOverThreshold()),this.$errorMessage||this.$textarea.classList.toggle("govuk-textarea--error",t),this.$visibleCountMessage.classList.toggle("govuk-error-message",t),this.$visibleCountMessage.classList.toggle("govuk-hint",!t),this.$visibleCountMessage.textContent=this.getCountMessage()}updateScreenReaderCountMessage(){this.isOverThreshold()?this.$screenReaderCountMessage.removeAttribute("aria-hidden"):this.$screenReaderCountMessage.setAttribute("aria-hidden","true"),this.$screenReaderCountMessage.textContent=this.getCountMessage()}count(t){var e;return this.config.maxwords?(null!=(e=t.match(/\S+/g))?e:[]).length:t.length}getCountMessage(){const t=this.maxLength-this.count(this.$textarea.value),e=this.config.maxwords?"words":"characters";return this.formatCountMessage(t,e)}formatCountMessage(t,e){if(0===t)return this.i18n.t(`${e}AtLimit`);const n=t<0?"OverLimit":"UnderLimit";return this.i18n.t(`${e}${n}`,{count:Math.abs(t)})}isOverThreshold(){if(!this.config.threshold)return!0;const t=this.count(this.$textarea.value);return this.maxLength*this.config.threshold/100<=t}}k.moduleName="govuk-character-count",k.defaults=Object.freeze({threshold:0,i18n:{charactersUnderLimit:{one:"You have %{count} character remaining",other:"You have %{count} characters remaining"},charactersAtLimit:"You have 0 characters remaining",charactersOverLimit:{one:"You have %{count} character too many",other:"You have %{count} characters too many"},wordsUnderLimit:{one:"You have %{count} word remaining",other:"You have %{count} words remaining"},wordsAtLimit:"You have 0 words remaining",wordsOverLimit:{one:"You have %{count} word too many",other:"You have %{count} words too many"},textareaDescription:{other:""}}}),k.schema=Object.freeze({properties:{i18n:{type:"object"},maxwords:{type:"number"},maxlength:{type:"number"},threshold:{type:"number"}},anyOf:[{required:["maxwords"],errorMessage:'Either "maxlength" or "maxwords" must be provided'},{required:["maxlength"],errorMessage:'Either "maxlength" or "maxwords" must be provided'}]});class C extends d{constructor(t){super(t),this.$inputs=void 0;const e=this.$root.querySelectorAll('input[type="checkbox"]');if(!e.length)throw new u({component:C,identifier:'Form inputs (`<input type="checkbox">`)'});this.$inputs=e,this.$inputs.forEach((t=>{const e=t.getAttribute("data-aria-controls");if(e){if(!document.getElementById(e))throw new u({component:C,identifier:`Conditional reveal (\`id="${e}"\`)`});t.setAttribute("aria-controls",e),t.removeAttribute("data-aria-controls")}})),window.addEventListener("pageshow",(()=>this.syncAllConditionalReveals())),this.syncAllConditionalReveals(),this.$root.addEventListener("click",(t=>this.handleClick(t)))}syncAllConditionalReveals(){this.$inputs.forEach((t=>this.syncConditionalRevealWithInputState(t)))}syncConditionalRevealWithInputState(t){const e=t.getAttribute("aria-controls");if(!e)return;const n=document.getElementById(e);if(null!=n&&n.classList.contains("govuk-checkboxes__conditional")){const e=t.checked;t.setAttribute("aria-expanded",e.toString()),n.classList.toggle("govuk-checkboxes__conditional--hidden",!e)}}unCheckAllInputsExcept(t){document.querySelectorAll(`input[type="checkbox"][name="${t.name}"]`).forEach((e=>{t.form===e.form&&e!==t&&(e.checked=!1,this.syncConditionalRevealWithInputState(e))}))}unCheckExclusiveInputs(t){document.querySelectorAll(`input[data-behaviour="exclusive"][type="checkbox"][name="${t.name}"]`).forEach((e=>{t.form===e.form&&(e.checked=!1,this.syncConditionalRevealWithInputState(e))}))}handleClick(t){const e=t.target;e instanceof HTMLInputElement&&"checkbox"===e.type&&(e.getAttribute("aria-controls")&&this.syncConditionalRevealWithInputState(e),e.checked&&("exclusive"===e.getAttribute("data-behaviour")?this.unCheckAllInputsExcept(e):this.unCheckExclusiveInputs(e)))}}C.moduleName="govuk-checkboxes";class A extends m{constructor(t,n={}){super(t,n),this.config.disableAutoFocus||e(this.$root),this.$root.addEventListener("click",(t=>this.handleClick(t)))}handleClick(t){const e=t.target;e&&this.focusTarget(e)&&t.preventDefault()}focusTarget(t){if(!(t instanceof HTMLAnchorElement))return!1;const e=t.hash.replace("#","");if(!e)return!1;const n=document.getElementById(e);if(!n)return!1;const i=this.getAssociatedLegendOrLabel(n);return!!i&&(i.scrollIntoView(),n.focus({preventScroll:!0}),!0)}getAssociatedLegendOrLabel(t){var e;const n=t.closest("fieldset");if(n){const e=n.getElementsByTagName("legend");if(e.length){const n=e[0];if(t instanceof HTMLInputElement&&("checkbox"===t.type||"radio"===t.type))return n;const i=n.getBoundingClientRect().top,s=t.getBoundingClientRect();if(s.height&&window.innerHeight&&s.top+s.height-i<window.innerHeight/2)return n}}return null!=(e=document.querySelector(`label[for='${t.getAttribute("id")}']`))?e:t.closest("label")}}A.moduleName="govuk-error-summary",A.defaults=Object.freeze({disableAutoFocus:!1}),A.schema=Object.freeze({properties:{disableAutoFocus:{type:"boolean"}}});class E extends m{constructor(t,e={}){super(t,e),this.i18n=void 0,this.$button=void 0,this.$skiplinkButton=null,this.$updateSpan=null,this.$indicatorContainer=null,this.$overlay=null,this.keypressCounter=0,this.lastKeyWasModified=!1,this.timeoutTime=5e3,this.keypressTimeoutId=null,this.timeoutMessageId=null;const n=this.$root.querySelector(".govuk-exit-this-page__button");if(!(n instanceof HTMLAnchorElement))throw new u({component:E,element:n,expectedType:"HTMLAnchorElement",identifier:"Button (`.govuk-exit-this-page__button`)"});this.i18n=new b(this.config.i18n),this.$button=n;const i=document.querySelector(".govuk-js-exit-this-page-skiplink");i instanceof HTMLAnchorElement&&(this.$skiplinkButton=i),this.buildIndicator(),this.initUpdateSpan(),this.initButtonClickHandler(),"govukFrontendExitThisPageKeypress"in document.body.dataset||(document.addEventListener("keyup",this.handleKeypress.bind(this),!0),document.body.dataset.govukFrontendExitThisPageKeypress="true"),window.addEventListener("pageshow",this.resetPage.bind(this))}initUpdateSpan(){this.$updateSpan=document.createElement("span"),this.$updateSpan.setAttribute("role","status"),this.$updateSpan.className="govuk-visually-hidden",this.$root.appendChild(this.$updateSpan)}initButtonClickHandler(){this.$button.addEventListener("click",this.handleClick.bind(this)),this.$skiplinkButton&&this.$skiplinkButton.addEventListener("click",this.handleClick.bind(this))}buildIndicator(){this.$indicatorContainer=document.createElement("div"),this.$indicatorContainer.className="govuk-exit-this-page__indicator",this.$indicatorContainer.setAttribute("aria-hidden","true");for(let t=0;t<3;t++){const t=document.createElement("div");t.className="govuk-exit-this-page__indicator-light",this.$indicatorContainer.appendChild(t)}this.$button.appendChild(this.$indicatorContainer)}updateIndicator(){this.$indicatorContainer&&(this.$indicatorContainer.classList.toggle("govuk-exit-this-page__indicator--visible",this.keypressCounter>0),this.$indicatorContainer.querySelectorAll(".govuk-exit-this-page__indicator-light").forEach(((t,e)=>{t.classList.toggle("govuk-exit-this-page__indicator-light--on",e<this.keypressCounter)})))}exitPage(){this.$updateSpan&&(this.$updateSpan.textContent="",document.body.classList.add("govuk-exit-this-page-hide-content"),this.$overlay=document.createElement("div"),this.$overlay.className="govuk-exit-this-page-overlay",this.$overlay.setAttribute("role","alert"),document.body.appendChild(this.$overlay),this.$overlay.textContent=this.i18n.t("activated"),window.location.href=this.$button.href)}handleClick(t){t.preventDefault(),this.exitPage()}handleKeypress(t){this.$updateSpan&&("Shift"!==t.key||this.lastKeyWasModified?this.keypressTimeoutId&&this.resetKeypressTimer():(this.keypressCounter+=1,this.updateIndicator(),this.timeoutMessageId&&(window.clearTimeout(this.timeoutMessageId),this.timeoutMessageId=null),this.keypressCounter>=3?(this.keypressCounter=0,this.keypressTimeoutId&&(window.clearTimeout(this.keypressTimeoutId),this.keypressTimeoutId=null),this.exitPage()):1===this.keypressCounter?this.$updateSpan.textContent=this.i18n.t("pressTwoMoreTimes"):this.$updateSpan.textContent=this.i18n.t("pressOneMoreTime"),this.setKeypressTimer()),this.lastKeyWasModified=t.shiftKey)}setKeypressTimer(){this.keypressTimeoutId&&window.clearTimeout(this.keypressTimeoutId),this.keypressTimeoutId=window.setTimeout(this.resetKeypressTimer.bind(this),this.timeoutTime)}resetKeypressTimer(){if(!this.$updateSpan)return;this.keypressTimeoutId&&(window.clearTimeout(this.keypressTimeoutId),this.keypressTimeoutId=null);const t=this.$updateSpan;this.keypressCounter=0,t.textContent=this.i18n.t("timedOut"),this.timeoutMessageId=window.setTimeout((()=>{t.textContent=""}),this.timeoutTime),this.updateIndicator()}resetPage(){document.body.classList.remove("govuk-exit-this-page-hide-content"),this.$overlay&&(this.$overlay.remove(),this.$overlay=null),this.$updateSpan&&(this.$updateSpan.setAttribute("role","status"),this.$updateSpan.textContent=""),this.updateIndicator(),this.keypressTimeoutId&&window.clearTimeout(this.keypressTimeoutId),this.timeoutMessageId&&window.clearTimeout(this.timeoutMessageId)}}E.moduleName="govuk-exit-this-page",E.defaults=Object.freeze({i18n:{activated:"Loading.",timedOut:"Exit this page expired.",pressTwoMoreTimes:"Shift, press 2 more times to exit.",pressOneMoreTime:"Shift, press 1 more time to exit."}}),E.schema=Object.freeze({properties:{i18n:{type:"object"}}});class x extends m{constructor(t,e={}){super(t,e),this.$input=void 0,this.$button=void 0,this.$status=void 0,this.i18n=void 0,this.id=void 0,this.$announcements=void 0,this.enteredAnotherElement=void 0;const n=this.$root.querySelector("input");if(null===n)throw new u({component:x,identifier:'File inputs (`<input type="file">`)'});if("file"!==n.type)throw new u(o(x,'File input (`<input type="file">`) attribute (`type`) is not `file`'));if(this.$input=n,!this.$input.id)throw new u({component:x,identifier:'File input (`<input type="file">`) attribute (`id`)'});this.id=this.$input.id,this.i18n=new b(this.config.i18n,{locale:$(this.$root,"lang")});const i=this.findLabel();i.id||(i.id=`${this.id}-label`),this.$input.id=`${this.id}-input`,this.$input.setAttribute("hidden","true");const s=document.createElement("button");s.classList.add("govuk-file-upload-button"),s.type="button",s.id=this.id,s.classList.add("govuk-file-upload-button--empty");const r=this.$input.getAttribute("aria-describedby");r&&s.setAttribute("aria-describedby",r);const a=document.createElement("span");a.className="govuk-body govuk-file-upload-button__status",a.setAttribute("aria-live","polite"),a.innerText=this.i18n.t("noFileChosen"),s.appendChild(a);const c=document.createElement("span");c.className="govuk-visually-hidden",c.innerText=", ",c.id=`${this.id}-comma`,s.appendChild(c);const l=document.createElement("span");l.className="govuk-file-upload-button__pseudo-button-container";const d=document.createElement("span");d.className="govuk-button govuk-button--secondary govuk-file-upload-button__pseudo-button",d.innerText=this.i18n.t("chooseFilesButton"),l.appendChild(d),l.insertAdjacentText("beforeend"," ");const h=document.createElement("span");h.className="govuk-body govuk-file-upload-button__instruction",h.innerText=this.i18n.t("dropInstruction"),l.appendChild(h),s.appendChild(l),s.setAttribute("aria-labelledby",`${i.id} ${c.id} ${s.id}`),s.addEventListener("click",this.onClick.bind(this)),s.addEventListener("dragover",(t=>{t.preventDefault()})),this.$root.insertAdjacentElement("afterbegin",s),this.$input.setAttribute("tabindex","-1"),this.$input.setAttribute("aria-hidden","true"),this.$button=s,this.$status=a,this.$input.addEventListener("change",this.onChange.bind(this)),this.updateDisabledState(),this.observeDisabledState(),this.$announcements=document.createElement("span"),this.$announcements.classList.add("govuk-file-upload-announcements"),this.$announcements.classList.add("govuk-visually-hidden"),this.$announcements.setAttribute("aria-live","assertive"),this.$root.insertAdjacentElement("afterend",this.$announcements),this.$button.addEventListener("drop",this.onDrop.bind(this)),document.addEventListener("dragenter",this.updateDropzoneVisibility.bind(this)),document.addEventListener("dragenter",(()=>{this.enteredAnotherElement=!0})),document.addEventListener("dragleave",(()=>{this.enteredAnotherElement||this.$button.disabled||(this.hideDraggingState(),this.$announcements.innerText=this.i18n.t("leftDropZone")),this.enteredAnotherElement=!1}))}updateDropzoneVisibility(t){this.$button.disabled||t.target instanceof Node&&(this.$root.contains(t.target)?t.dataTransfer&&S(t.dataTransfer)&&(this.$button.classList.contains("govuk-file-upload-button--dragging")||(this.showDraggingState(),this.$announcements.innerText=this.i18n.t("enteredDropZone"))):this.$button.classList.contains("govuk-file-upload-button--dragging")&&(this.hideDraggingState(),this.$announcements.innerText=this.i18n.t("leftDropZone")))}showDraggingState(){this.$button.classList.add("govuk-file-upload-button--dragging")}hideDraggingState(){this.$button.classList.remove("govuk-file-upload-button--dragging")}onDrop(t){t.preventDefault(),t.dataTransfer&&S(t.dataTransfer)&&(this.$input.files=t.dataTransfer.files,this.$input.dispatchEvent(new CustomEvent("change")),this.hideDraggingState())}onChange(){const t=this.$input.files.length;0===t?(this.$status.innerText=this.i18n.t("noFileChosen"),this.$button.classList.add("govuk-file-upload-button--empty")):(this.$status.innerText=1===t?this.$input.files[0].name:this.i18n.t("multipleFilesChosen",{count:t}),this.$button.classList.remove("govuk-file-upload-button--empty"))}findLabel(){const t=document.querySelector(`label[for="${this.$input.id}"]`);if(!t)throw new u({component:x,identifier:`Field label (\`<label for=${this.$input.id}>\`)`});return t}onClick(){this.$input.click()}observeDisabledState(){new MutationObserver((t=>{for(const e of t)"attributes"===e.type&&"disabled"===e.attributeName&&this.updateDisabledState()})).observe(this.$input,{attributes:!0})}updateDisabledState(){this.$button.disabled=this.$input.disabled,this.$root.classList.toggle("govuk-drop-zone--disabled",this.$button.disabled)}}function S(t){const e=0===t.types.length,n=t.types.some((t=>"Files"===t));return e||n}x.moduleName="govuk-file-upload",x.defaults=Object.freeze({i18n:{chooseFilesButton:"Choose file",dropInstruction:"or drop file",noFileChosen:"No file chosen",multipleFilesChosen:{one:"%{count} file chosen",other:"%{count} files chosen"},enteredDropZone:"Entered drop zone",leftDropZone:"Left drop zone"}}),x.schema=Object.freeze({properties:{i18n:{type:"object"}}});class L extends d{constructor(t){super(t),this.$menuButton=void 0,this.$menu=void 0,this.menuIsOpen=!1,this.mql=null;const e=this.$root.querySelector(".govuk-js-header-toggle");if(!e)return this;this.$root.classList.add("govuk-header--with-js-navigation");const n=e.getAttribute("aria-controls");if(!n)throw new u({component:L,identifier:'Navigation button (`<button class="govuk-js-header-toggle">`) attribute (`aria-controls`)'});const i=document.getElementById(n);if(!i)throw new u({component:L,element:i,identifier:`Navigation (\`<ul id="${n}">\`)`});this.$menu=i,this.$menuButton=e,this.setupResponsiveChecks(),this.$menuButton.addEventListener("click",(()=>this.handleMenuButtonClick()))}setupResponsiveChecks(){const e=t("desktop");if(!e.value)throw new u({component:L,identifier:`CSS custom property (\`${e.property}\`) on pseudo-class \`:root\``});this.mql=window.matchMedia(`(min-width: ${e.value})`),"addEventListener"in this.mql?this.mql.addEventListener("change",(()=>this.checkMode())):this.mql.addListener((()=>this.checkMode())),this.checkMode()}checkMode(){this.mql&&this.$menu&&this.$menuButton&&(this.mql.matches?(this.$menu.removeAttribute("hidden"),this.$menuButton.setAttribute("hidden","")):(this.$menuButton.removeAttribute("hidden"),this.$menuButton.setAttribute("aria-expanded",this.menuIsOpen.toString()),this.menuIsOpen?this.$menu.removeAttribute("hidden"):this.$menu.setAttribute("hidden","")))}handleMenuButtonClick(){this.menuIsOpen=!this.menuIsOpen,this.checkMode()}}L.moduleName="govuk-header";class T extends m{constructor(t,n={}){super(t,n),"alert"!==this.$root.getAttribute("role")||this.config.disableAutoFocus||e(this.$root)}}T.moduleName="govuk-notification-banner",T.defaults=Object.freeze({disableAutoFocus:!1}),T.schema=Object.freeze({properties:{disableAutoFocus:{type:"boolean"}}});class M extends m{constructor(t,e={}){super(t,e),this.i18n=void 0,this.$input=void 0,this.$showHideButton=void 0,this.$screenReaderStatusMessage=void 0;const n=this.$root.querySelector(".govuk-js-password-input-input");if(!(n instanceof HTMLInputElement))throw new u({component:M,element:n,expectedType:"HTMLInputElement",identifier:"Form field (`.govuk-js-password-input-input`)"});if("password"!==n.type)throw new u("Password input: Form field (`.govuk-js-password-input-input`) must be of type `password`.");const i=this.$root.querySelector(".govuk-js-password-input-toggle");if(!(i instanceof HTMLButtonElement))throw new u({component:M,element:i,expectedType:"HTMLButtonElement",identifier:"Button (`.govuk-js-password-input-toggle`)"});if("button"!==i.type)throw new u("Password input: Button (`.govuk-js-password-input-toggle`) must be of type `button`.");this.$input=n,this.$showHideButton=i,this.i18n=new b(this.config.i18n,{locale:$(this.$root,"lang")}),this.$showHideButton.removeAttribute("hidden");const s=document.createElement("div");s.className="govuk-password-input__sr-status govuk-visually-hidden",s.setAttribute("aria-live","polite"),this.$screenReaderStatusMessage=s,this.$input.insertAdjacentElement("afterend",s),this.$showHideButton.addEventListener("click",this.toggle.bind(this)),this.$input.form&&this.$input.form.addEventListener("submit",(()=>this.hide())),window.addEventListener("pageshow",(t=>{t.persisted&&"password"!==this.$input.type&&this.hide()})),this.hide()}toggle(t){t.preventDefault(),"password"!==this.$input.type?this.hide():this.show()}show(){this.setType("text")}hide(){this.setType("password")}setType(t){if(t===this.$input.type)return;this.$input.setAttribute("type",t);const e="password"===t,n=e?"show":"hide",i=e?"passwordHidden":"passwordShown";this.$showHideButton.innerText=this.i18n.t(`${n}Password`),this.$showHideButton.setAttribute("aria-label",this.i18n.t(`${n}PasswordAriaLabel`)),this.$screenReaderStatusMessage.innerText=this.i18n.t(`${i}Announcement`)}}M.moduleName="govuk-password-input",M.defaults=Object.freeze({i18n:{showPassword:"Show",hidePassword:"Hide",showPasswordAriaLabel:"Show password",hidePasswordAriaLabel:"Hide password",passwordShownAnnouncement:"Your password is visible",passwordHiddenAnnouncement:"Your password is hidden"}}),M.schema=Object.freeze({properties:{i18n:{type:"object"}}});class _ extends d{constructor(t){super(t),this.$inputs=void 0;const e=this.$root.querySelectorAll('input[type="radio"]');if(!e.length)throw new u({component:_,identifier:'Form inputs (`<input type="radio">`)'});this.$inputs=e,this.$inputs.forEach((t=>{const e=t.getAttribute("data-aria-controls");if(e){if(!document.getElementById(e))throw new u({component:_,identifier:`Conditional reveal (\`id="${e}"\`)`});t.setAttribute("aria-controls",e),t.removeAttribute("data-aria-controls")}})),window.addEventListener("pageshow",(()=>this.syncAllConditionalReveals())),this.syncAllConditionalReveals(),this.$root.addEventListener("click",(t=>this.handleClick(t)))}syncAllConditionalReveals(){this.$inputs.forEach((t=>this.syncConditionalRevealWithInputState(t)))}syncConditionalRevealWithInputState(t){const e=t.getAttribute("aria-controls");if(!e)return;const n=document.getElementById(e);if(null!=n&&n.classList.contains("govuk-radios__conditional")){const e=t.checked;t.setAttribute("aria-expanded",e.toString()),n.classList.toggle("govuk-radios__conditional--hidden",!e)}}handleClick(t){const e=t.target;if(!(e instanceof HTMLInputElement)||"radio"!==e.type)return;const n=document.querySelectorAll('input[type="radio"][aria-controls]'),i=e.form,s=e.name;n.forEach((t=>{const e=t.form===i;t.name===s&&e&&this.syncConditionalRevealWithInputState(t)}))}}_.moduleName="govuk-radios";class I extends d{constructor(t){super(t),this.$menuButton=void 0,this.$menu=void 0,this.menuIsOpen=!1,this.mql=null;const e=this.$root.querySelector(".govuk-js-service-navigation-toggle");if(!e)return this;const n=e.getAttribute("aria-controls");if(!n)throw new u({component:I,identifier:'Navigation button (`<button class="govuk-js-service-navigation-toggle">`) attribute (`aria-controls`)'});const i=document.getElementById(n);if(!i)throw new u({component:I,element:i,identifier:`Navigation (\`<ul id="${n}">\`)`});this.$menu=i,this.$menuButton=e,this.setupResponsiveChecks(),this.$menuButton.addEventListener("click",(()=>this.handleMenuButtonClick()))}setupResponsiveChecks(){const e=t("tablet");if(!e.value)throw new u({component:I,identifier:`CSS custom property (\`${e.property}\`) on pseudo-class \`:root\``});this.mql=window.matchMedia(`(min-width: ${e.value})`),"addEventListener"in this.mql?this.mql.addEventListener("change",(()=>this.checkMode())):this.mql.addListener((()=>this.checkMode())),this.checkMode()}checkMode(){this.mql&&this.$menu&&this.$menuButton&&(this.mql.matches?(this.$menu.removeAttribute("hidden"),this.$menuButton.setAttribute("hidden","")):(this.$menuButton.removeAttribute("hidden"),this.$menuButton.setAttribute("aria-expanded",this.menuIsOpen.toString()),this.menuIsOpen?this.$menu.removeAttribute("hidden"):this.$menu.setAttribute("hidden","")))}handleMenuButtonClick(){this.menuIsOpen=!this.menuIsOpen,this.checkMode()}}I.moduleName="govuk-service-navigation";class B extends d{constructor(t){var n;super(t);const i=this.$root.hash,s=null!=(n=this.$root.getAttribute("href"))?n:"";if(this.$root.origin!==window.location.origin||this.$root.pathname!==window.location.pathname)return;const o=i.replace("#","");if(!o)throw new u(`Skip link: Target link (\`href="${s}"\`) has no hash fragment`);const r=document.getElementById(o);if(!r)throw new u({component:B,element:r,identifier:`Target content (\`id="${o}"\`)`});this.$root.addEventListener("click",(()=>e(r,{onBeforeFocus(){r.classList.add("govuk-skip-link-focused-element")},onBlur(){r.classList.remove("govuk-skip-link-focused-element")}})))}}B.elementType=HTMLAnchorElement,B.moduleName="govuk-skip-link";class O extends d{constructor(t){super(t),this.$tabs=void 0,this.$tabList=void 0,this.$tabListItems=void 0,this.jsHiddenClass="govuk-tabs__panel--hidden",this.changingHash=!1,this.boundTabClick=void 0,this.boundTabKeydown=void 0,this.boundOnHashChange=void 0,this.mql=null;const e=this.$root.querySelectorAll("a.govuk-tabs__tab");if(!e.length)throw new u({component:O,identifier:'Links (`<a class="govuk-tabs__tab">`)'});this.$tabs=e,this.boundTabClick=this.onTabClick.bind(this),this.boundTabKeydown=this.onTabKeydown.bind(this),this.boundOnHashChange=this.onHashChange.bind(this);const n=this.$root.querySelector(".govuk-tabs__list"),i=this.$root.querySelectorAll("li.govuk-tabs__list-item");if(!n)throw new u({component:O,identifier:'List (`<ul class="govuk-tabs__list">`)'});if(!i.length)throw new u({component:O,identifier:'List items (`<li class="govuk-tabs__list-item">`)'});this.$tabList=n,this.$tabListItems=i,this.setupResponsiveChecks()}setupResponsiveChecks(){const e=t("tablet");if(!e.value)throw new u({component:O,identifier:`CSS custom property (\`${e.property}\`) on pseudo-class \`:root\``});this.mql=window.matchMedia(`(min-width: ${e.value})`),"addEventListener"in this.mql?this.mql.addEventListener("change",(()=>this.checkMode())):this.mql.addListener((()=>this.checkMode())),this.checkMode()}checkMode(){var t;null!=(t=this.mql)&&t.matches?this.setup():this.teardown()}setup(){var t;this.$tabList.setAttribute("role","tablist"),this.$tabListItems.forEach((t=>{t.setAttribute("role","presentation")})),this.$tabs.forEach((t=>{this.setAttributes(t),t.addEventListener("click",this.boundTabClick,!0),t.addEventListener("keydown",this.boundTabKeydown,!0),this.hideTab(t)}));const e=null!=(t=this.getTab(window.location.hash))?t:this.$tabs[0];this.showTab(e),window.addEventListener("hashchange",this.boundOnHashChange,!0)}teardown(){this.$tabList.removeAttribute("role"),this.$tabListItems.forEach((t=>{t.removeAttribute("role")})),this.$tabs.forEach((t=>{t.removeEventListener("click",this.boundTabClick,!0),t.removeEventListener("keydown",this.boundTabKeydown,!0),this.unsetAttributes(t)})),window.removeEventListener("hashchange",this.boundOnHashChange,!0)}onHashChange(){const t=window.location.hash,e=this.getTab(t);if(!e)return;if(this.changingHash)return void(this.changingHash=!1);const n=this.getCurrentTab();n&&(this.hideTab(n),this.showTab(e),e.focus())}hideTab(t){this.unhighlightTab(t),this.hidePanel(t)}showTab(t){this.highlightTab(t),this.showPanel(t)}getTab(t){return this.$root.querySelector(`a.govuk-tabs__tab[href="${t}"]`)}setAttributes(t){const e=t.hash.replace("#","");if(!e)return;t.setAttribute("id",`tab_${e}`),t.setAttribute("role","tab"),t.setAttribute("aria-controls",e),t.setAttribute("aria-selected","false"),t.setAttribute("tabindex","-1");const n=this.getPanel(t);n&&(n.setAttribute("role","tabpanel"),n.setAttribute("aria-labelledby",t.id),n.classList.add(this.jsHiddenClass))}unsetAttributes(t){t.removeAttribute("id"),t.removeAttribute("role"),t.removeAttribute("aria-controls"),t.removeAttribute("aria-selected"),t.removeAttribute("tabindex");const e=this.getPanel(t);e&&(e.removeAttribute("role"),e.removeAttribute("aria-labelledby"),e.classList.remove(this.jsHiddenClass))}onTabClick(t){const e=this.getCurrentTab(),n=t.currentTarget;e&&n instanceof HTMLAnchorElement&&(t.preventDefault(),this.hideTab(e),this.showTab(n),this.createHistoryEntry(n))}createHistoryEntry(t){const e=this.getPanel(t);if(!e)return;const n=e.id;e.id="",this.changingHash=!0,window.location.hash=n,e.id=n}onTabKeydown(t){switch(t.key){case"ArrowLeft":case"Left":this.activatePreviousTab(),t.preventDefault();break;case"ArrowRight":case"Right":this.activateNextTab(),t.preventDefault()}}activateNextTab(){const t=this.getCurrentTab();if(null==t||!t.parentElement)return;const e=t.parentElement.nextElementSibling;if(!e)return;const n=e.querySelector("a.govuk-tabs__tab");n&&(this.hideTab(t),this.showTab(n),n.focus(),this.createHistoryEntry(n))}activatePreviousTab(){const t=this.getCurrentTab();if(null==t||!t.parentElement)return;const e=t.parentElement.previousElementSibling;if(!e)return;const n=e.querySelector("a.govuk-tabs__tab");n&&(this.hideTab(t),this.showTab(n),n.focus(),this.createHistoryEntry(n))}getPanel(t){const e=t.hash.replace("#","");return e?this.$root.querySelector(`#${e}`):null}showPanel(t){const e=this.getPanel(t);e&&e.classList.remove(this.jsHiddenClass)}hidePanel(t){const e=this.getPanel(t);e&&e.classList.add(this.jsHiddenClass)}unhighlightTab(t){t.parentElement&&(t.setAttribute("aria-selected","false"),t.parentElement.classList.remove("govuk-tabs__list-item--selected"),t.setAttribute("tabindex","-1"))}highlightTab(t){t.parentElement&&(t.setAttribute("aria-selected","true"),t.parentElement.classList.add("govuk-tabs__list-item--selected"),t.setAttribute("tabindex","0"))}getCurrentTab(){return this.$root.querySelector(".govuk-tabs__list-item--selected a.govuk-tabs__tab")}}O.moduleName="govuk-tabs";var H={xs:0,mobile:320,tablet:641,desktop:769};function N(t){return Object.keys(H).reduce((function(e,n){return(t||window.innerWidth)>=H[n]?n:e}))}var j=function(t){return t.innerWidth<=768};function q(t){this.$module=document.querySelector(t),this.$moduleBottomMargin=this.$module.style.marginBottom,this.$mainNav=this.$module.querySelector(".hmrc-account-menu__main"),this.$showNavLinkMobile=this.$module.querySelector(".hmrc-account-menu__link--menu"),this.$currentBreakpoint=N()}function D(t,e,n){this.$module=t,this.window=e,this.document=n}function F(t,e,n){return e&&function(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,U(i.key),i)}}(t.prototype,e),Object.defineProperty(t,"prototype",{writable:!1}),t}function P(t,e,n){return(e=U(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function R(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,i)}return n}function U(t){var e=function(t,e){if("object"!=typeof t||!t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var i=n.call(t,e);if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t,"string");return"symbol"==typeof e?e:e+""}function z(t){return z="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},z(t)}q.prototype.init=function(){this.setup(),this.$showNavLinkMobile.addEventListener("click",this.eventHandlers.showNavLinkMobileClick.bind(this)),window.addEventListener("resize",function(t,e,n){var i,s=this;return function(){for(var n=arguments.length,o=new Array(n),r=0;r<n;r++)o[r]=arguments[r];var a=s;clearTimeout(i),i=setTimeout((function(){i=null,t.apply(a,o)}),e)}}(this.reinstantiate.bind(this)))},q.prototype.reinstantiate=function(t){var e=N(t.target.innerWidth);this.$currentBreakpoint!==e&&(this.$currentBreakpoint=e,this.setup())},q.prototype.eventHandlers={showNavLinkMobileClick:function(t){t.preventDefault(),j(window)&&(this.$mainNav.classList.contains("main-nav-is-open")?this.hideMainNavMobile(t.currentTarget):this.showMainNavMobile())}},q.prototype.setup=function(){j(window)?(this.$module.classList.add("is-smaller"),this.$showNavLinkMobile.setAttribute("aria-hidden","false"),this.$showNavLinkMobile.removeAttribute("tabindex"),this.$showNavLinkMobile.classList.remove("js-hidden"),this.hideMainNavMobile(this.$showNavLinkMobile)):(this.$module.classList.remove("is-smaller"),this.$mainNav.classList.remove("main-nav-is-open","js-hidden"),this.$showNavLinkMobile.setAttribute("aria-hidden","true"),this.$showNavLinkMobile.setAttribute("tabindex","-1"),this.$showNavLinkMobile.classList.add("js-hidden"))},q.prototype.showMainNavMobile=function(){this.$mainNav.classList.remove("js-hidden"),this.$mainNav.classList.add("main-nav-is-open"),this.$mainNav.setAttribute("aria-expanded","true"),this.$showNavLinkMobile.setAttribute("aria-expanded","true"),this.$showNavLinkMobile.classList.add("hmrc-account-home--account--is-open")},q.prototype.hideMainNavMobile=function(t){this.$mainNav.classList.remove("main-nav-is-open"),this.$mainNav.setAttribute("aria-expanded","false"),t.classList.contains("hmrc-account-menu__link--menu")&&(this.$mainNav.classList.add("js-hidden"),this.$showNavLinkMobile.setAttribute("aria-expanded","false"),this.$showNavLinkMobile.classList.remove("hmrc-account-home--account--is-open"))},D.prototype.init=function(){var t=this;this.window.history&&(this.window.history.replaceState&&"function"==typeof this.window.history.replaceState&&this.window.history.replaceState(null,null,this.window.location.href),this.$module.addEventListener("click",(function(e){e.preventDefault(),t.window.history.back&&"function"==typeof t.window.history.back&&t.window.history.back()})))};var K=console.warn,V={generateDomElementFromString:function(t){var e=document.createElement("div");return e.innerHTML=t,e.firstChild},generateDomElementFromStringAndAppendText:function(t,e){var n=V.generateDomElementFromString(t);return n.innerText=e,n},hasClass:function(t,e){return document.querySelector(t).classList.contains(e)},addClass:function(t,e){document.querySelectorAll(t).forEach((function(t){t.classList.add(e)}))},removeClass:function(t,e){document.querySelectorAll(t).forEach((function(t){t.classList.remove(e)}))},removeElement:function(t){var e=t.parentNode;e?e.removeChild(t):K("couldn't find parent for elem",t)},ajaxGet:function(t,e){var n=new XMLHttpRequest;return n.open("GET",t),n.onreadystatechange=function(){n.readyState>3&&200===n.status&&e(n.responseText)},n.setRequestHeader("X-Requested-With","XMLHttpRequest"),n.send(),n}};var W={displayDialog:function(t){var e=V.generateDomElementFromString('<div id="hmrc-timeout-dialog" tabindex="-1" role="dialog" aria-modal="true" class="hmrc-timeout-dialog">'),n=V.generateDomElementFromString('<div id="hmrc-timeout-overlay" class="hmrc-timeout-overlay">'),i="string"==typeof t?V.generateDomElementFromString(t):t,s=[],o=[];e.appendChild(i),V.hasClass("html","noScroll")||(V.addClass("html","noScroll"),s.push((function(){V.removeClass("html","noScroll")}))),document.body.appendChild(e),document.body.appendChild(n),s.push((function(){V.removeElement(e),V.removeElement(n)}));var r,a=document.querySelectorAll(["#skiplink-container","body > header","#global-cookie-message","main","body > footer","body > .govuk-skip-link",".cbanner-govuk-cookie-banner","body > .govuk-width-container"].join(", ")),c=function(){for(;s.length>0;){s.shift()()}};return a.forEach((function(t){var e=t.getAttribute("aria-hidden");t.setAttribute("aria-hidden","true"),s.push((function(){e?t.setAttribute("aria-hidden",e):t.removeAttribute("aria-hidden")}))})),function(){function t(t){var e=document.getElementById("hmrc-timeout-dialog");e&&(t.target===e||e.contains(t.target)||(t.stopPropagation(),e.focus()))}var n=document.activeElement;e.focus(),document.addEventListener("focus",t,!0),s.push((function(){document.removeEventListener("focus",t),n.focus()}))}(),function(){function t(t){27===t.keyCode&&(o.forEach((function(t){t()})),c())}document.addEventListener("keydown",t),s.push((function(){document.removeEventListener("keydown",t)}))}(),r=function(t){1===(t.touches||t.changedTouches||[]).length&&t.preventDefault()},document.addEventListener("touchmove",r,!0),s.push((function(){document.removeEventListener("touchmove",r,!0)})),{closeDialog:function(){c()},setAriaLabelledBy:function(t){t?e.setAttribute("aria-labelledby",t):e.removeAttribute("aria-labelledby")},addCloseHandler:function(t){o.push(t)}}}};function Y(){}function G(){}function Z(t,e){var n,i={},s={},o=[],r=e;var a=function(){s.synchroniseTabs&&r.onActivity((function(t){var e=t.timestamp;f(),l(e)}))},c=function(t){var e=[];if(["timeout","countdown","keepAliveUrl","signOutUrl"].forEach((function(n){t[n]||e.push("data-".concat(n.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase()))})),e.length>0)throw new Error("Missing config item(s): [".concat(e.join(", "),"]"))},u=function t(e,n){var i=function(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?R(Object(n),!0).forEach((function(e){P(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):R(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}({},e);return Object.keys(n).forEach((function(s){"object"===z(i[s])&&(i[s]=t(e[s],n[s])),void 0!==i[s]&&""!==i[s]||(i[s]=n[s])})),i},l=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:m(),e=t+1e3*s.timeout,i=m()-t,r=s.timeout-s.countdown,a=window.setTimeout((function(){d(e)}),1e3*r-i);o.push((function(){window.clearTimeout(a),n&&window.clearTimeout(n)}))},d=function(t){var e=V.generateDomElementFromString("<div>");if(s.title){var i=V.generateDomElementFromStringAndAppendText('<h1 id="hmrc-timeout-heading" class="govuk-heading-m push--top">',s.title);e.appendChild(i)}var r=V.generateDomElementFromString('<span id="hmrc-timeout-countdown" class="hmrc-timeout-dialog__countdown">'),a=V.generateDomElementFromString('<p id="hmrc-timeout-message" class="govuk-visually-hidden screenreader-content" aria-live="assertive">'),c=V.generateDomElementFromStringAndAppendText('<p class="govuk-body hmrc-timeout-dialog__message" aria-hidden="true">',s.message);c.appendChild(document.createTextNode(" ")),c.appendChild(r),s.messageSuffix&&c.appendChild(document.createTextNode(" ".concat(s.messageSuffix)));var u=V.generateDomElementFromStringAndAppendText('<button id="hmrc-timeout-keep-signin-btn" class="govuk-button">',s.keepAliveButtonText),l=document.createElement("div");if(l.classList.add("govuk-button-group"),l.appendChild(u),e.appendChild(c),e.appendChild(a),u.addEventListener("click",h),e.appendChild(document.createTextNode(" ")),!s.hideSignOutButton){var d=V.generateDomElementFromStringAndAppendText('<a id="hmrc-timeout-sign-out-link" class="govuk-link hmrc-timeout-dialog__link">',s.signOutButtonText);d.addEventListener("click",p),d.setAttribute("href",s.signOutUrl),l.appendChild(d)}e.appendChild(l);var f=W.displayDialog(e);o.push((function(){f.closeDialog()})),f.addCloseHandler(h),f.setAriaLabelledBy("hmrc-timeout-heading hmrc-timeout-message");var v=function(){return t-m()},b=function(t){var e,n;return t<60?n="".concat(t," ").concat(s.properties[1!==t?"seconds":"second"],"."):(e=Math.ceil(t/60),n="".concat(e," ").concat(s.properties[1===e?"minute":"minutes"],".")),n},w=function(t){return t>60?t:t<20?20:20*Math.ceil(t/20)},y=function(t,e){t.innerText!==e&&(t.innerText=e)},$=function(t){var e=b(t),n=function(t){var e=b(w(t)),n=[s.message," ",e];return s.messageSuffix&&(n.push(" "),n.push(s.messageSuffix)),n.join("")}(t);y(r,e),y(a,n)};!function t(){var e,i,s=Math.max(Math.round(v()/1e3),0);$(s),0===s?g():n=window.setTimeout(t,(e=v(),(i=1e3*Math.floor(v()/1e3))<=6e4?e-i||1e3:e-(i-(i%6e4||6e4))))}()},h=function(){f(),l(),V.ajaxGet(s.keepAliveUrl,(function(){})),r.logActivity()},m=function(){return Date.now()},p=function(){G.redirectToUrl(s.signOutUrl)},g=function(){G.redirectToUrl(s.timeoutUrl)},f=function(){for(;o.length>0;){o.shift()()}};return{init:function(){var e=Y;function n(e){return(t.attributes.getNamedItem(e)||{}).value}var o="cy"===e.string(n("data-language"))?{title:"Rydych ar fin cael eich allgofnodi",message:"Er eich diogelwch, byddwn yn eich allgofnodi cyn pen",keepAliveButtonText:"Parhau i fod wedi’ch mewngofnodi",signOutButtonText:"Allgofnodi",properties:{minutes:"funud",minute:"funud",seconds:"eiliad",second:"eiliad"}}:{title:"You’re about to be signed out",message:"For your security, we will sign you out in",keepAliveButtonText:"Stay signed in",signOutButtonText:"Sign out",properties:{minutes:"minutes",minute:"minute",seconds:"seconds",second:"second"}};(i={timeout:e.int(n("data-timeout")),countdown:e.int(n("data-countdown")),keepAliveUrl:e.string(n("data-keep-alive-url")),signOutUrl:e.string(n("data-sign-out-url")),timeoutUrl:e.string(n("data-timeout-url")),title:e.string(n("data-title")),message:e.string(n("data-message")),messageSuffix:e.string(n("data-message-suffix")),keepAliveButtonText:e.string(n("data-keep-alive-button-text")),signOutButtonText:e.string(n("data-sign-out-button-text")),synchroniseTabs:e.boolean(n("data-synchronise-tabs")||!1),hideSignOutButton:e.boolean(n("data-hide-sign-out-button")||!1)}).timeoutUrl=i.timeoutUrl||i.signOutUrl,c(i),s=u(i,o),l(),a()},cleanup:f}}Y.int=function(t){var e=parseInt(t,10);return Number.isNaN(e)?void 0:e},Y.string=function(t){return"string"==typeof t?t:void 0},Y.boolean=function(t){return"true"===String(t).toLowerCase()},G.redirectToUrl=function(t){window.location.href=t},Z.dialog=W,Z.redirectHelper=G,Z.utils=V;function X(t){this.$module=t,this.$closeLink=this.$module.querySelector(".hmrc-user-research-banner__close"),this.cookieName="mdtpurr",this.cookieExpiryDays=28}X.prototype.init=function(){null==function(t){for(var e="".concat(t,"="),n=document.cookie.split(";"),i=0,s=n.length;i<s;i+=1){for(var o=n[i];" "===o.charAt(0);)o=o.substring(1,o.length);if(0===o.indexOf(e))return decodeURIComponent(o.substring(e.length))}return null}(this.cookieName)&&(this.$module.classList.add("hmrc-user-research-banner--show"),this.$closeLink.addEventListener("click",this.eventHandlers.noThanksClick.bind(this)))},X.prototype.eventHandlers={noThanksClick:function(t){t.preventDefault(),function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i="".concat(t,"=").concat(e,"; path=/");if(n.days){var s=new Date;s.setTime(s.getTime()+24*n.days*60*60*1e3),i="".concat(i,"; expires=").concat(s.toGMTString())}"https:"===window.location.protocol&&(i+="; Secure"),document.cookie=i}(this.cookieName,"suppress_for_all_services",{days:this.cookieExpiryDays}),this.$module.classList.remove("hmrc-user-research-banner--show")}};var J=function(){function t(e){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.activityChannel=e&&new e("session-activity")}return F(t,[{key:"logActivity",value:function(){if(this.activityChannel){var t={timestamp:Date.now()};this.activityChannel.postMessage(t)}}},{key:"onActivity",value:function(t){this.activityChannel&&(this.activityChannel.onmessage=function(e){t(e.data)})}}]),t}();function Q(t,e){this.$module=t,this.window=e}Q.prototype.init=function(){var t=this;this.$module.addEventListener("click",(function(e){e.preventDefault(),t.window.print()}))};var tt={initAll:function(){function t(t){try{t()}catch(t){console.error("hmrc-frontend component initialisation failed",t)}}var e='[data-module="hmrc-account-menu"]';document.querySelector(e)&&t((function(){new q(e).init()})),document.querySelectorAll('a[data-module="hmrc-print-link"]').forEach((function(e){t((function(){new Q(e,window).init()}))}));var n=new J(window.BroadcastChannel);n.logActivity();var i=document.querySelector('meta[name="hmrc-timeout-dialog"]');i&&t((function(){new Z(i,n).init()}));var s=document.querySelector('[data-module="hmrc-user-research-banner"]');s&&t((function(){new X(s).init()})),document.querySelectorAll('[data-module="hmrc-back-link"]').forEach((function(e){t((function(){new D(e,window,document).init()}))}))},AccountMenu:q,TimeoutDialog:Z,UserResearchBanner:X,BackLinkHelper:D};!function(t={}){const e=i(t)?t:{},s=g(t);try{if(!n())throw new a;if(null===s.scope)throw new u({element:s.scope,identifier:"GOV.UK Frontend scope element (`$scope`)"})}catch(t){return void(s.onError?s.onError(t,{config:e}):console.log(t))}[[w,e.accordion],[y,e.button],[k,e.characterCount],[C],[A,e.errorSummary],[E,e.exitThisPage],[x,e.fileUpload],[L],[T,e.notificationBanner],[M,e.passwordInput],[_],[I],[B],[O]].forEach((([t,e])=>{!function(t,e,i){let s;const o=g(i);try{var r;if(!n())throw new a;if(null===o.scope)throw new u({element:o.scope,component:t,identifier:"Scope element (`$scope`)"});s=null==(r=o.scope)?void 0:r.querySelectorAll(`[data-module="${t.moduleName}"]`)}catch(n){return o.onError?o.onError(n,{component:t,config:e}):console.log(n),[]}Array.from(null!=s?s:[]).map((n=>{try{return void 0!==e?new t(n,e):new t(n)}catch(i){return o.onError?o.onError(i,{element:n,component:t,config:e}):console.log(i),null}})).filter(Boolean)}(t,e,s)}))}(),tt.initAll()}();
2
-
3
- //# sourceMappingURL=maps/hmrc-frontend-6.93.0.min.js.map