@nationalarchives/frontend 0.21.0 → 0.22.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.
Files changed (50) hide show
  1. package/nationalarchives/all+analytics.js +1 -1
  2. package/nationalarchives/all+analytics.js.map +1 -1
  3. package/nationalarchives/all+analytics.mjs +2 -0
  4. package/nationalarchives/all.css +1 -1
  5. package/nationalarchives/all.css.map +1 -1
  6. package/nationalarchives/all.js +1 -1
  7. package/nationalarchives/all.js.map +1 -1
  8. package/nationalarchives/all.mjs +7 -0
  9. package/nationalarchives/analytics.js +1 -1
  10. package/nationalarchives/analytics.js.map +1 -1
  11. package/nationalarchives/analytics.mjs +4 -0
  12. package/nationalarchives/components/_forms.scss +1 -0
  13. package/nationalarchives/components/card/card.css +1 -1
  14. package/nationalarchives/components/card/card.css.map +1 -1
  15. package/nationalarchives/components/card/card.scss +1 -0
  16. package/nationalarchives/components/checkboxes/macro-options.json +1 -1
  17. package/nationalarchives/components/date-input/macro-options.json +1 -1
  18. package/nationalarchives/components/date-search/macro-options.json +1 -1
  19. package/nationalarchives/components/error-summary/analytics.js +16 -0
  20. package/nationalarchives/components/error-summary/fixtures.json +4 -1
  21. package/nationalarchives/components/error-summary/macro-options.json +1 -1
  22. package/nationalarchives/components/error-summary/template.njk +4 -0
  23. package/nationalarchives/components/file-input/_index.scss +1 -0
  24. package/nationalarchives/components/file-input/analytics.js +59 -0
  25. package/nationalarchives/components/file-input/file-input.css +1 -0
  26. package/nationalarchives/components/file-input/file-input.css.map +1 -0
  27. package/nationalarchives/components/file-input/file-input.js +2 -0
  28. package/nationalarchives/components/file-input/file-input.js.map +1 -0
  29. package/nationalarchives/components/file-input/file-input.mjs +99 -0
  30. package/nationalarchives/components/file-input/file-input.njk +8 -0
  31. package/nationalarchives/components/file-input/file-input.scss +127 -0
  32. package/nationalarchives/components/file-input/fixtures.json +131 -0
  33. package/nationalarchives/components/file-input/macro-options.json +90 -0
  34. package/nationalarchives/components/file-input/macro.njk +3 -0
  35. package/nationalarchives/components/file-input/template.njk +27 -0
  36. package/nationalarchives/components/gallery/gallery.js +1 -1
  37. package/nationalarchives/components/gallery/gallery.js.map +1 -1
  38. package/nationalarchives/components/gallery/gallery.mjs +1 -0
  39. package/nationalarchives/components/radios/macro-options.json +1 -1
  40. package/nationalarchives/components/search-field/macro-options.json +1 -1
  41. package/nationalarchives/components/secondary-navigation/secondary-navigation.css +1 -1
  42. package/nationalarchives/components/secondary-navigation/secondary-navigation.css.map +1 -1
  43. package/nationalarchives/components/secondary-navigation/secondary-navigation.scss +5 -0
  44. package/nationalarchives/components/select/macro-options.json +1 -1
  45. package/nationalarchives/components/text-input/analytics.js +1 -2
  46. package/nationalarchives/components/text-input/macro-options.json +1 -1
  47. package/nationalarchives/components/textarea/macro-options.json +1 -1
  48. package/nationalarchives/prototype-kit.css +1 -1
  49. package/nationalarchives/prototype-kit.css.map +1 -1
  50. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"all+analytics.js","mappings":"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","sources":["webpack://TNAFrontend/webpack/universalModuleDefinition","webpack://TNAFrontend/./src/nationalarchives/components/cookie-banner/cookie-banner.mjs","webpack://TNAFrontend/./src/nationalarchives/components/tabs/tabs.mjs","webpack://TNAFrontend/./src/nationalarchives/lib/cookies.mjs","webpack://TNAFrontend/./src/nationalarchives/all.mjs","webpack://TNAFrontend/./src/nationalarchives/lib/uuid.mjs","webpack://TNAFrontend/./src/nationalarchives/components/skip-link/skip-link.mjs","webpack://TNAFrontend/./src/nationalarchives/components/gallery/gallery.mjs","webpack://TNAFrontend/./src/nationalarchives/components/picture/picture.mjs","webpack://TNAFrontend/./src/nationalarchives/components/header/header.mjs","webpack://TNAFrontend/./src/nationalarchives/components/error-summary/error-summary.mjs","webpack://TNAFrontend/./src/nationalarchives/components/global-header/global-header.mjs","webpack://TNAFrontend/./src/nationalarchives/components/breadcrumbs/breadcrumbs.mjs","webpack://TNAFrontend/./src/nationalarchives/lib/analytics-helpers.mjs","webpack://TNAFrontend/./src/nationalarchives/components/accordion/analytics.js","webpack://TNAFrontend/./src/nationalarchives/components/breadcrumbs/analytics.js","webpack://TNAFrontend/./src/nationalarchives/components/checkboxes/analytics.js","webpack://TNAFrontend/./src/nationalarchives/components/details/analytics.js","webpack://TNAFrontend/./src/nationalarchives/components/footer/analytics.js","webpack://TNAFrontend/./src/nationalarchives/components/gallery/analytics.js","webpack://TNAFrontend/./src/nationalarchives/components/global-header/analytics.js","webpack://TNAFrontend/./src/nationalarchives/components/header/analytics.js","webpack://TNAFrontend/./src/nationalarchives/components/picture/analytics.js","webpack://TNAFrontend/./src/nationalarchives/components/radios/analytics.js","webpack://TNAFrontend/./src/nationalarchives/components/search-field/analytics.js","webpack://TNAFrontend/./src/nationalarchives/components/sidebar/analytics.js","webpack://TNAFrontend/./src/nationalarchives/components/text-input/analytics.js","webpack://TNAFrontend/./src/nationalarchives/components/textarea/analytics.js","webpack://TNAFrontend/./src/nationalarchives/analytics.mjs","webpack://TNAFrontend/./src/nationalarchives/components/hero/analytics.js","webpack://TNAFrontend/./src/nationalarchives/components/date-input/date-input.mjs","webpack://TNAFrontend/./src/nationalarchives/components/text-input/text-input.mjs","webpack://TNAFrontend/./src/nationalarchives/components/footer/footer.mjs","webpack://TNAFrontend/./src/nationalarchives/components/accordion/accordion.mjs","webpack://TNAFrontend/webpack/bootstrap","webpack://TNAFrontend/webpack/runtime/define property getters","webpack://TNAFrontend/webpack/runtime/hasOwnProperty shorthand","webpack://TNAFrontend/webpack/runtime/make namespace object"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"TNAFrontend\"] = factory();\n\telse\n\t\troot[\"TNAFrontend\"] = factory();\n})(self, () => {\nreturn ","import Cookies from \"../../lib/cookies.mjs\";\n\nexport { Cookies };\n\nexport class CookieBanner {\n constructor($module) {\n this.$module = $module;\n this.$acceptButton = $module && $module.querySelector('[value=\"accept\"]');\n this.$rejectButton = $module && $module.querySelector('[value=\"reject\"]');\n this.$prompt =\n $module && $module.querySelector(\".tna-cookie-banner__message--prompt\");\n this.$acceptedMessage =\n $module && $module.querySelector(\".tna-cookie-banner__message--accepted\");\n this.$rejectedMessage =\n $module && $module.querySelector(\".tna-cookie-banner__message--rejected\");\n this.$closeButtons = $module && $module.querySelectorAll('[value=\"close\"]');\n\n if (\n !this.$module ||\n !this.$acceptButton ||\n !this.$rejectButton ||\n !this.$prompt ||\n !this.$acceptedMessage ||\n !this.$rejectedMessage ||\n !this.$closeButtons\n ) {\n return;\n }\n\n this.cookies = new Cookies({ newInstance: true });\n\n this.cookiePreferencesSetKey =\n this.$module.dataset.preferencesKey || \"cookie_preferences_set\";\n\n if (!this.cookies.completePoliciesOnInit) {\n this.cookies.delete(this.cookiePreferencesSetKey);\n }\n\n if (\n !this.cookies.exists(this.cookiePreferencesSetKey) ||\n !this.cookies.hasValue(this.cookiePreferencesSetKey, \"true\")\n ) {\n this.$module.removeAttribute(\"hidden\");\n\n this.$acceptButton.addEventListener(\"click\", () => this.accept());\n this.$rejectButton.addEventListener(\"click\", () => this.reject());\n }\n }\n\n accept() {\n this.$prompt.setAttribute(\"hidden\", \"\");\n this.complete();\n this.$acceptedMessage.removeAttribute(\"hidden\");\n this.$acceptedMessage.focus();\n this.$acceptedMessage.setAttribute(\"tabindex\", \"-1\");\n this.cookies.acceptAllPolicies();\n }\n\n reject() {\n this.$prompt.setAttribute(\"hidden\", \"\");\n this.complete();\n this.$rejectedMessage.removeAttribute(\"hidden\");\n this.$rejectedMessage.focus();\n this.$rejectedMessage.setAttribute(\"tabindex\", \"-1\");\n this.cookies.rejectAllPolicies();\n }\n\n complete() {\n this.cookies.set(this.cookiePreferencesSetKey, true);\n this.$closeButtons.forEach(($closeButton) => {\n $closeButton.addEventListener(\"click\", () => this.close());\n });\n }\n\n close() {\n this.$module.setAttribute(\"hidden\", \"\");\n }\n}\n","export class Tabs {\n constructor($module) {\n this.$module = $module;\n this.$tabList = $module && $module.querySelector(\".tna-tabs__list\");\n this.$tabListItemLinks =\n $module &&\n this.$tabList &&\n this.$tabList.querySelectorAll(\".tna-tabs__button\");\n this.$tabItems = $module && $module.querySelectorAll(\".tna-tabs__item\");\n\n if (\n !this.$module ||\n !this.$tabList ||\n !this.$tabListItemLinks ||\n !this.$tabItems ||\n this.$tabListItemLinks.length !== this.$tabItems.length\n ) {\n return;\n }\n\n this.currentTabIndex = 0;\n this.init();\n }\n\n init() {\n this.$module.classList.add(\"tna-tabs--interactive\");\n this.$tabList.removeAttribute(\"hidden\");\n this.$tabListItemLinks.forEach(($tabListItemLink) => {\n const tabPanelID = $tabListItemLink.getAttribute(\"aria-controls\");\n $tabListItemLink.setAttribute(\"aria-selected\", false);\n const $tabPanel = document.getElementById(tabPanelID);\n $tabPanel.setAttribute(\"aria-labelledby\", $tabListItemLink.id);\n $tabPanel.setAttribute(\"role\", \"tabpanel\");\n $tabListItemLink.addEventListener(\n \"click\",\n (e) => this.handleItemLinkClick(e),\n true,\n );\n });\n this.switchTabByIndex(this.currentTabIndex);\n this.$module.addEventListener(\"keydown\", (e) =>\n this.handleItemLinkKeyDown(e),\n );\n }\n\n handleItemLinkClick(itemLinkClickEvent) {\n itemLinkClickEvent.preventDefault();\n const targetItem =\n itemLinkClickEvent.currentTarget.getAttribute(\"aria-controls\");\n this.switchTabByID(targetItem);\n }\n\n handleItemLinkKeyDown(itemLinkKeyDownEvent) {\n let preventDefaultKeyAction = false;\n switch (itemLinkKeyDownEvent.key) {\n case \"ArrowLeft\":\n case \"ArrowUp\":\n this.previousTab();\n preventDefaultKeyAction = true;\n break;\n case \"ArrowRight\":\n case \"ArrowDown\":\n this.nextTab();\n preventDefaultKeyAction = true;\n break;\n case \"Home\":\n this.switchTabByIndex(0, true);\n preventDefaultKeyAction = true;\n break;\n case \"End\":\n this.switchTabByIndex(this.$tabListItemLinks.length - 1, true);\n preventDefaultKeyAction = true;\n break;\n default:\n break;\n }\n if (preventDefaultKeyAction) {\n itemLinkKeyDownEvent.stopPropagation();\n itemLinkKeyDownEvent.preventDefault();\n }\n }\n\n nextTab() {\n if (this.currentTabIndex < this.$tabListItemLinks.length - 1) {\n this.switchTabByIndex(this.currentTabIndex + 1, true);\n } else {\n this.switchTabByIndex(0, true);\n }\n }\n\n previousTab() {\n if (this.currentTabIndex >= 1) {\n this.switchTabByIndex(this.currentTabIndex - 1, true);\n } else {\n this.switchTabByIndex(this.$tabListItemLinks.length - 1, true);\n }\n }\n\n switchTabByIndex(newIndex, switchFocus = false) {\n this.currentTabIndex = newIndex;\n this.$tabListItemLinks.forEach(($tabListItemLink, index) => {\n if (index === this.currentTabIndex) {\n $tabListItemLink.setAttribute(\"aria-selected\", true);\n $tabListItemLink.setAttribute(\"tabindex\", \"0\");\n if (switchFocus) {\n $tabListItemLink.focus();\n }\n } else {\n $tabListItemLink.setAttribute(\"aria-selected\", false);\n $tabListItemLink.setAttribute(\"tabindex\", \"-1\");\n }\n });\n this.$tabItems.forEach(($tabItem, index) => {\n if (index === this.currentTabIndex) {\n $tabItem.removeAttribute(\"hidden\");\n $tabItem.setAttribute(\"tabindex\", \"0\");\n } else {\n $tabItem.setAttribute(\"hidden\", \"\");\n $tabItem.setAttribute(\"tabindex\", \"-1\");\n }\n });\n }\n\n switchTabByID(targetId) {\n const index = Array.from(this.$tabItems).findIndex(\n ($tabItem) => $tabItem.getAttribute(\"id\") === targetId,\n );\n this.switchTabByIndex(index);\n }\n}\n","window.TNAFrontendCookies = window.TNAFrontendCookies || null;\nwindow.TNAFrontendCookieEvents = window.TNAFrontendCookieEvents || null;\n\nexport class CookieEventHandler {\n events = {};\n oneTimeEvents = {};\n\n constructor() {\n if (window.TNAFrontendCookieEvents) {\n return window.TNAFrontendCookieEvents;\n }\n window.TNAFrontendCookieEvents = this;\n }\n\n /**\n * Add an event listener.\n * @param {String} event - The event to add a listener for.\n * @param {Function} callback - The callback function to call when the event is triggered.\n */\n on(event, callback) {\n if (!Object.hasOwn(this.events, event)) {\n this.events[event] = [];\n }\n this.events[event] = [...this.events[event], callback];\n }\n\n once(event, callback) {\n if (!Object.hasOwn(this.oneTimeEvents, event)) {\n this.oneTimeEvents[event] = [];\n }\n this.oneTimeEvents[event] = [...this.oneTimeEvents[event], callback];\n }\n\n /** @protected */\n trigger(event, data = {}) {\n if (Object.hasOwn(this.events, event)) {\n this.events[event].forEach((eventToTrigger) =>\n eventToTrigger.call(this, data),\n );\n }\n if (Object.hasOwn(this.oneTimeEvents, event)) {\n for (let i = this.oneTimeEvents[event].length - 1; i >= 0; i--) {\n const eventToTrigger = this.oneTimeEvents[event][i];\n eventToTrigger.call(this, data);\n this.oneTimeEvents[event].splice(i, 1);\n }\n }\n }\n}\n\nconst tnaCookiePolicies = [\"usage\", \"settings\", \"marketing\", \"essential\"];\n\n/**\n * Class to handle cookies.\n * @class Cookies\n * @constructor\n * @public\n */\nexport default class Cookies {\n /** @protected */\n defaultDomain = \"\";\n /** @protected */\n defaultPath = \"\";\n /** @protected */\n secure = true;\n /** @protected */\n policiesKey = \"\";\n /** @protected */\n events = null;\n /** @protected */\n defaultAge = null;\n /** @protected */\n completePoliciesOnInit = false;\n\n /**\n * Create a cookie handler.\n * @param {String} [options.defaultDomain] - The domain to register the cookie with.\n * @param {String} [options.path] - The domain to register the cookie with.\n * @param {Boolean} [options.secure] - Only set cookie in HTTPS environments.\n * @param {String} [options.policiesKey] - The name of the cookie.\n * @param {String} [options.newInstance=false] - Create a fresh instance of the cookie class.\n * @param {Number} [options.defaultAge] - The default age of non-session cookies.\n * @param {Boolean} [options.noInit=false] - Don't initialise a blank cookie policy.\n */\n constructor(options = {}) {\n const {\n defaultDomain,\n defaultPath,\n secure,\n policiesKey,\n newInstance = false,\n defaultAge,\n noInit = false,\n } = options;\n if (!newInstance && window.TNAFrontendCookies) {\n return window.TNAFrontendCookies;\n }\n if (defaultDomain === undefined) {\n this.defaultDomain =\n document.documentElement.dataset.tnaCookiesDomain || \"\";\n } else {\n this.defaultDomain = defaultDomain;\n }\n if (defaultPath === undefined) {\n this.defaultPath = document.documentElement.dataset.tnaCookiesPath || \"/\";\n } else {\n this.defaultPath = defaultPath;\n }\n if (secure === undefined) {\n this.secure =\n document.documentElement.dataset.tnaCookiesInsecure !== \"true\";\n } else {\n this.secure = secure;\n }\n if (policiesKey === undefined) {\n this.policiesKey =\n document.documentElement.dataset.tnaCookiesPoliciesKey ||\n \"cookies_policy\";\n } else {\n this.policiesKey = policiesKey;\n }\n if (defaultAge === undefined) {\n this.defaultAge =\n parseInt(document.documentElement.dataset.tnaCookiesDefaultAge) ||\n 31536000; // 365 days;\n } else {\n this.defaultAge = defaultAge;\n }\n this.events = new CookieEventHandler();\n this.completePoliciesOnInit =\n Object.keys(this.policies).length === tnaCookiePolicies.length &&\n tnaCookiePolicies.every(\n (policy) =>\n Object.keys(this.policies).includes(policy) &&\n typeof this.policies[policy] === \"boolean\",\n );\n if (!this.completePoliciesOnInit && !noInit) {\n this.init();\n }\n window.TNAFrontendCookies = this;\n }\n\n /** @protected */\n init() {\n const existingPolicies = this.policies;\n const filteredExistingPolicies = Object.fromEntries(\n Object.keys(existingPolicies)\n .filter((policy) => tnaCookiePolicies.includes(policy))\n .map((policy) => [policy, existingPolicies[policy]]),\n );\n this.savePolicies({\n usage: false,\n settings: false,\n marketing: false,\n ...filteredExistingPolicies,\n essential: true,\n });\n }\n\n destroyInstance() {\n window.TNAFrontendCookies = null;\n }\n\n /** @protected */\n get all() {\n const deserialised = {};\n document.cookie\n .split(\"; \")\n .filter((x) => x)\n .forEach((cookie) => {\n const parts = cookie.trim().split(\"=\");\n if (parts[0]) {\n deserialised[parts[0]] = parts[1];\n }\n });\n return deserialised;\n }\n\n /** @protected */\n get policies() {\n try {\n return JSON.parse(this.get(this.policiesKey) || \"{}\");\n } catch (e) {\n return {};\n }\n }\n\n /**\n * Check to see whether a cookie exists or not.\n * @param {String} key - The cookie name.\n * @returns {Boolean}\n */\n exists(key) {\n return Object.hasOwn(this.all, key);\n }\n\n /**\n * Check to see whether a cookie has a particular value.\n * @param {String} key - The cookie name.\n * @param {String|Number|Boolean} value - The value to check against.\n * @returns\n */\n hasValue(key, value) {\n return this.get(key) == value;\n }\n\n /**\n * Get a cookie.\n * @param {String} key - The cookie name.\n * @returns {String|Number|Boolean}\n */\n get(key) {\n return this.exists(key) ? decodeURIComponent(this.all[key]) : null;\n }\n\n /**\n * Set a cookie.\n * @param {String} key - The cookie name.\n * @param {String|Number|Boolean} value - The cookie value.\n * @param {Object} options\n * @param {Number} [options.maxAge=this.defaultAge] - The maximum age of the cookie in seconds.\n * @param {String} [options.path=/] - The path to register the cookie for.\n * @param {String} [options.sameSite=Lax] - The sameSite attribute.\n * @param {String} [options.domain=this.defaultDomain] - The domain to register the cookie with.\n * @param {String} [options.path=this.defaultPath] - The path to register the cookie with.\n * @param {String} [options.secure=this.secure] - Only set cookie in HTTPS environments.\n * @param {String} [options.session=false] - Set a session cookie.\n */\n set(key, value, options = {}) {\n const {\n maxAge = this.defaultAge,\n sameSite = \"Lax\",\n domain = this.defaultDomain,\n path = this.defaultPath,\n secure = this.secure,\n session = false,\n } = options;\n if (!key) {\n return;\n }\n const cookie = `${encodeURIComponent(key)}=${encodeURIComponent(value)};${\n domain ? ` domain=${domain}; ` : \"\"\n } samesite=${sameSite}; path=${path}${!session ? `; max-age=${maxAge}` : \"\"}${\n secure ? \"; secure\" : \"\"\n }`;\n document.cookie = cookie;\n this.events.trigger(\"setCookie\", {\n key,\n value,\n maxAge,\n path,\n sameSite,\n domain,\n secure,\n session,\n cookie,\n });\n }\n\n /**\n * Delete a cookie.\n * @param {String} key - The cookie name.\n * @param {String} [path=/] - The path to the cookie is registered on.\n */\n delete(key, path = \"/\", domain = null) {\n const options = { maxAge: -1, path, domain: domain || undefined };\n this.set(key, \"\", options);\n this.events.trigger(\"deleteCookie\", { key, ...options });\n }\n\n /**\n * Delete all cookies.\n */\n deleteAll(path = \"/\", domain = null) {\n Object.keys(this.all).forEach((cookie) => {\n this.delete(cookie, path, domain);\n });\n this.events.trigger(\"deleteAllCookies\", { path, domain });\n }\n\n /**\n * Accept a policy.\n * @param {String} policy - The name of the policy.\n */\n acceptPolicy(policy) {\n this.setPolicy(policy, true);\n this.events.trigger(\"acceptPolicy\", policy);\n this.events.trigger(\"changePolicy\", { [policy]: true });\n }\n\n /**\n * Reject a policy.\n * @param {String} policy - The name of the policy.\n */\n rejectPolicy(policy) {\n this.setPolicy(policy, false);\n this.events.trigger(\"rejectPolicy\", policy);\n this.events.trigger(\"changePolicy\", { [policy]: false });\n }\n\n /**\n * Set a policy.\n * @param {String} policy - The name of the policy.\n * @param {Boolean} accepted - Whether the policy is accepted or not.\n */\n setPolicy(policy, accepted) {\n if (policy === \"essential\") {\n return;\n }\n this.savePolicies({\n ...this.policies,\n [policy]: accepted,\n essential: true,\n });\n this.events.trigger(\"changePolicy\", { [policy]: accepted });\n }\n\n /**\n * Accept all the cookie policies.\n */\n acceptAllPolicies() {\n const allPolicies = Object.fromEntries(\n Object.keys(this.policies).map((k) => [k.toLowerCase(), true]),\n );\n this.savePolicies(allPolicies);\n this.events.trigger(\"acceptAllPolicies\");\n this.events.trigger(\"changePolicy\", allPolicies);\n }\n\n /**\n * Reject all the cookie policies.\n */\n rejectAllPolicies() {\n const allPolicies = {\n ...Object.fromEntries(\n Object.keys(this.policies).map((k) => [k.toLowerCase(), false]),\n ),\n essential: true,\n };\n this.savePolicies(allPolicies);\n this.events.trigger(\"rejectAllPolicies\");\n this.events.trigger(\"changePolicy\", allPolicies);\n }\n\n /**\n * Commit policy preferences to the browser.\n * @param {object} policies - The policies to commit.\n */\n savePolicies(policies) {\n this.set(this.policiesKey, JSON.stringify(policies));\n }\n\n /**\n * Get the acceptance status of a policy.\n * @param {String} policy - The name of the policy.\n * @returns {Boolean}\n */\n isPolicyAccepted(policy) {\n return Object.hasOwn(this.policies, policy)\n ? this.policies[policy] === true\n : null;\n }\n\n /**\n * Add an event listener.\n * @param {String} event - The event to add a listener for.\n * @param {Function} callback - The callback function to call when the event is triggered.\n */\n on(event, callback) {\n this.events.on(event, callback);\n }\n\n /**\n * Add a one-time event listener.\n * @param {String} event - The event to add a listener for.\n * @param {Function} callback - The callback function to call when the event is triggered.\n */\n once(event, callback) {\n this.events.once(event, callback);\n }\n}\n","import { Accordion } from \"./components/accordion/accordion.mjs\";\nimport { Breadcrumbs } from \"./components/breadcrumbs/breadcrumbs.mjs\";\nimport { CookieBanner } from \"./components/cookie-banner/cookie-banner.mjs\";\nimport { DateInputProgressive } from \"./components/date-input/date-input.mjs\";\nimport { ErrorSummary } from \"./components/error-summary/error-summary.mjs\";\nimport { Footer } from \"./components/footer/footer.mjs\";\nimport { Gallery } from \"./components/gallery/gallery.mjs\";\nimport { GlobalHeader } from \"./components/global-header/global-header.mjs\";\nimport { Header } from \"./components/header/header.mjs\";\nimport { Picture } from \"./components/picture/picture.mjs\";\nimport { SkipLink } from \"./components/skip-link/skip-link.mjs\";\nimport { Tabs } from \"./components/tabs/tabs.mjs\";\nimport { TextInput } from \"./components/text-input/text-input.mjs\";\nimport Cookies from \"./lib/cookies.mjs\";\n\nconst initAll = (options) => {\n options = typeof options !== \"undefined\" ? options : {};\n const $scope =\n options.scope instanceof HTMLElement ? options.scope : document;\n\n const $body = document.documentElement;\n $body.classList.add(\"tna-template--js-enabled\");\n\n const onFirstTouch = () => {\n window.removeEventListener(\"touchstart\", onFirstTouch);\n $body.classList.add(\"tna-template--touched\");\n };\n\n const onKeyDown = (e) => {\n if (e.key === \"Tab\") {\n $body.classList.add(\"tna-template--tabbed\");\n $body.classList.remove(\"tna-template--clicked\");\n }\n };\n\n const onMouseDown = () => {\n $body.classList.add(\"tna-template--clicked\");\n $body.classList.remove(\"tna-template--tabbed\");\n };\n\n window.addEventListener(\"touchstart\", onFirstTouch);\n window.addEventListener(\"keydown\", onKeyDown);\n window.addEventListener(\"mousedown\", onMouseDown);\n\n const $accordions = $scope.querySelectorAll('[data-module=\"tna-accordion\"]');\n $accordions.forEach(($accordion) => {\n new Accordion($accordion);\n });\n\n const $breadcrumbs = $scope.querySelector('[data-module=\"tna-breadcrumbs\"]');\n if ($breadcrumbs) {\n new Breadcrumbs($breadcrumbs);\n }\n\n const $cookieBanner = $scope.querySelector(\n '[data-module=\"tna-cookie-banner\"]',\n );\n if ($cookieBanner) {\n new CookieBanner($cookieBanner);\n }\n\n const $progressiveDateInputs = $scope.querySelectorAll(\n '[data-module=\"date-input-progressive\"]',\n );\n $progressiveDateInputs.forEach(($dateInput) => {\n new DateInputProgressive($dateInput);\n });\n\n const $errorSummary = $scope.querySelector(\n '[data-module=\"tna-error-summary\"]',\n );\n if ($errorSummary) {\n new ErrorSummary($errorSummary).init();\n }\n\n const $footer = $scope.querySelector('[data-module=\"tna-footer\"]');\n if ($footer) {\n new Footer($footer);\n }\n\n const $galleries = $scope.querySelectorAll('[data-module=\"tna-gallery\"]');\n $galleries.forEach(($gallery) => {\n new Gallery($gallery);\n });\n\n const $globalHeader = $scope.querySelector(\n '[data-module=\"tna-global-header\"]',\n );\n if ($globalHeader) {\n new GlobalHeader($globalHeader);\n }\n\n const $header = $scope.querySelector('[data-module=\"tna-header\"]');\n if ($header) {\n new Header($header);\n }\n\n const $pictures = $scope.querySelectorAll('[data-module=\"tna-picture\"]');\n $pictures.forEach(($picture) => {\n new Picture($picture);\n });\n\n const $skipLinks = $scope.querySelectorAll('[data-module=\"tna-skip-link\"]');\n $skipLinks.forEach(($skipLink) => {\n new SkipLink($skipLink);\n });\n\n const $tabs = $scope.querySelectorAll('[data-module=\"tna-tabs\"]');\n $tabs.forEach(($tabModule) => {\n new Tabs($tabModule);\n });\n\n const $textInputs = $scope.querySelectorAll('[data-module=\"tna-text-input\"]');\n $textInputs.forEach(($textInput) => {\n new TextInput($textInput);\n });\n\n const checkTableForScroll = ($tableWrapper) => {\n const scrollable = $tableWrapper.scrollWidth > $tableWrapper.clientWidth;\n const $tableCaption = $tableWrapper.querySelector(\".tna-table__caption\");\n if (scrollable) {\n $tableWrapper.setAttribute(\"tabindex\", \"0\");\n $tableCaption?.classList.add(\"tna-table__caption--scroll\");\n } else {\n $tableWrapper.removeAttribute(\"tabindex\");\n $tableCaption?.classList.remove(\"tna-table__caption--scroll\");\n }\n };\n\n const $tableWrappers = document.querySelectorAll(\n \".tna-table-wrapper:has(.tna-table__caption)\",\n );\n $tableWrappers.forEach(($tableWrapper) => checkTableForScroll($tableWrapper));\n window.addEventListener(\"resize\", () => {\n $tableWrappers.forEach(($tableWrapper) =>\n checkTableForScroll($tableWrapper),\n );\n });\n\n window.matchMedia(\"print\").addEventListener(\"change\", (evt) => {\n if (evt.matches) {\n document\n .querySelectorAll(\".tna-details__details:not([open])\")\n .forEach((e) => {\n e.setAttribute(\"open\", \"\");\n e.dataset.wasClosed = \"\";\n });\n document\n .querySelectorAll(\n \".tna-accordion__content[hidden], .tna-picture__transcript[hidden]\",\n )\n .forEach((e) => {\n e.removeAttribute(\"hidden\");\n e.dataset.wasClosed = \"\";\n });\n } else {\n document\n .querySelectorAll(\".tna-details__details[data-was-closed]\")\n .forEach((e) => {\n e.removeAttribute(\"open\");\n delete e.dataset.wasClosed;\n });\n document\n .querySelectorAll(\n \".tna-accordion__content[data-was-closed], .tna-picture__transcript[data-was-closed]\",\n )\n .forEach((e) => {\n e.setAttribute(\"hidden\", \"\");\n e.dataset.wasClosed = \"\";\n });\n }\n });\n};\n\nexport {\n initAll,\n Cookies,\n Accordion,\n Breadcrumbs,\n CookieBanner,\n DateInputProgressive,\n ErrorSummary,\n Footer,\n Gallery,\n GlobalHeader,\n Header,\n Picture,\n SkipLink,\n Tabs,\n TextInput,\n};\n","const uuidv4 = () =>\n ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, (c) =>\n (\n c ^\n (crypto.getRandomValues(new Uint8Array(1))[0] & (15 >> (c / 4)))\n ).toString(16),\n );\n\nexport default uuidv4;\n","export class SkipLink {\n linkedElementListener = false;\n\n constructor($module) {\n this.$module = $module;\n this.linkedElementId = $module.getAttribute(\"href\").split(\"#\").pop();\n this.$linkedElement =\n $module &&\n this.linkedElementId &&\n document.getElementById(this.linkedElementId);\n\n if (!this.$module || !this.$linkedElement) {\n return;\n }\n this.$module.addEventListener(\"click\", () => this.focusLinkedElement());\n }\n\n focusLinkedElement() {\n if (!this.$linkedElement.getAttribute(\"tabindex\")) {\n this.$linkedElement.setAttribute(\"tabindex\", \"-1\");\n this.$linkedElement.classList.add(\"tna-!--no-focus-style\");\n\n if (!this.linkedElementListener) {\n this.$linkedElement.addEventListener(\"blur\", () =>\n this.removeFocusProperties(),\n );\n this.linkedElementListener = true;\n }\n }\n\n this.$linkedElement.focus();\n }\n\n removeFocusProperties() {\n this.$linkedElement.removeAttribute(\"tabindex\");\n this.$linkedElement.classList.remove(\"tna-!--no-focus-style\");\n }\n}\n","export class Gallery {\n constructor($module) {\n this.$module = $module;\n this.$itemsContainer =\n $module && $module.querySelector(\".tna-gallery__items\");\n this.$items =\n this.$itemsContainer &&\n this.$itemsContainer.querySelectorAll(\".tna-gallery__item\");\n this.$navigation =\n $module && $module.querySelector(\".tna-gallery__navigation\");\n this.$navigationItems =\n this.$navigation &&\n $module.querySelectorAll(\".tna-gallery__navigation-item\");\n this.$options = $module && $module.querySelector(\".tna-gallery__options\");\n this.$navigationButtons =\n $module && $module.querySelector(\".tna-gallery__navigation-buttons\");\n\n if (\n !this.$module ||\n !this.$itemsContainer ||\n !this.$items ||\n !this.$navigation ||\n !this.$navigationItems ||\n !this.$options ||\n !this.$navigationButtons\n ) {\n return;\n }\n\n this.$module.classList.add(\"tna-gallery--interactive\");\n\n this.$showIndex = this.$options.querySelector('button[value=\"show-index\"]');\n this.$enterFullscreen = this.$options.querySelector(\n 'button[value=\"enter-fullscreen\"]',\n );\n this.$exitFullscreen = this.$options.querySelector(\n 'button[value=\"exit-fullscreen\"]',\n );\n\n this.$navigationButtonPrev = this.$navigationButtons.querySelector(\n \".tna-gallery__navigation-prev\",\n );\n this.$navigationButtonNext = this.$navigationButtons.querySelector(\n \".tna-gallery__navigation-next\",\n );\n\n this.$module.addEventListener(\"fullscreenchange\", () =>\n this.syncFullScreen(),\n );\n\n this.setup();\n this.allowGridIndex = this.$module.dataset[\"showgrid\"] || false;\n if (this.allowGridIndex) {\n this.showIndex();\n } else {\n this.currentId = this.$items[0].id;\n this.showItem(this.currentId);\n }\n }\n\n setup() {\n this.$items.forEach(($item) => {\n $item.setAttribute(\"hidden\", \"\");\n $item.setAttribute(\"aria-hidden\", \"true\");\n $item\n .querySelector(\".tna-gallery__item-header\")\n ?.setAttribute(\"aria-hidden\", \"true\");\n });\n this.$navigation.removeAttribute(\"hidden\");\n this.$navigationItems.forEach(($item) => {\n $item.addEventListener(\"click\", () => {\n this.showItem($item.getAttribute(\"aria-controls\"));\n this.$itemsContainer.setAttribute(\"tabindex\", \"0\");\n this.$itemsContainer.focus();\n });\n });\n this.$module.addEventListener(\"keydown\", (e) => {\n let preventDefaultKeyAction = false;\n switch (e.key) {\n case \"ArrowLeft\":\n case \"ArrowUp\":\n this.showPreviousItem();\n preventDefaultKeyAction = true;\n break;\n case \"ArrowRight\":\n case \"ArrowDown\":\n this.showNextItem();\n preventDefaultKeyAction = true;\n break;\n case \"Home\":\n this.showFirstItem();\n preventDefaultKeyAction = true;\n break;\n case \"End\":\n this.showLastItem();\n preventDefaultKeyAction = true;\n break;\n }\n if (preventDefaultKeyAction) {\n e.stopPropagation();\n e.preventDefault();\n }\n });\n this.$options.removeAttribute(\"hidden\");\n if (\n document.fullscreenEnabled &&\n this.$enterFullscreen &&\n this.$exitFullscreen\n ) {\n this.$enterFullscreen?.addEventListener(\"click\", () =>\n this.enterFullScreen(),\n );\n this.$exitFullscreen?.addEventListener(\"click\", () =>\n this.exitFullScreen(),\n );\n this.$enterFullscreen?.removeAttribute(\"hidden\");\n }\n this.$showIndex?.addEventListener(\"click\", () => this.showIndex());\n this.$navigationButtons?.removeAttribute(\"hidden\");\n this.$navigationButtonPrev?.addEventListener(\"click\", () => {\n this.showPreviousItem();\n });\n this.$navigationButtonNext?.addEventListener(\"click\", () => {\n this.showNextItem();\n });\n\n this.$liveRegion = document.createElement(\"div\");\n this.$liveRegion.setAttribute(\"aria-live\", \"polite\");\n this.$liveRegion.setAttribute(\"aria-atomic\", \"true\");\n this.$liveRegion.setAttribute(\"class\", \"tna-gallery__item-header\");\n this.$itemsContainer.prepend(this.$liveRegion);\n this.$itemsContainer.classList.add(\"tna-gallery__items--hide-item-titles\");\n this.$itemsContainer.addEventListener(\"blur\", () =>\n this.$itemsContainer.removeAttribute(\"tabindex\"),\n );\n }\n\n showIndex() {\n this.showItem(\"\");\n this.$itemsContainer.classList.add(\"tna-gallery__items--hide-items\");\n this.$showIndex?.setAttribute(\"hidden\", \"\");\n }\n\n showItem(id) {\n this.$items.forEach(($item) => {\n if (id && $item.id === id) {\n $item.removeAttribute(\"hidden\");\n $item.removeAttribute(\"aria-hidden\");\n } else {\n $item.setAttribute(\"hidden\", \"\");\n $item.setAttribute(\"aria-hidden\", \"true\");\n }\n });\n this.$navigationItems.forEach(($item) => {\n if (id) {\n if ($item.getAttribute(\"aria-controls\") === id) {\n $item.setAttribute(\"aria-current\", \"true\");\n if (this.isFullScreen()) {\n $item.scrollIntoView({ block: \"nearest\" });\n }\n } else {\n $item.setAttribute(\"aria-current\", \"false\");\n }\n } else {\n $item.setAttribute(\"aria-current\", \"false\");\n }\n });\n if (this.allowGridIndex) {\n this.$showIndex?.removeAttribute(\"hidden\");\n }\n this.$itemsContainer.classList.remove(\"tna-gallery__items--hide-items\");\n this.currentId = id;\n this.$liveRegion.textContent = `Image ${this.getCurrentItemIndex() + 1} of ${this.$items.length}`;\n }\n\n getCurrentItemIndex() {\n return Array.from(this.$items).findIndex(\n ($item) => $item.id === this.currentId,\n );\n }\n\n showPreviousItem() {\n let nextIndexToShow = this.getCurrentItemIndex() - 1;\n if (nextIndexToShow < 0) {\n nextIndexToShow = this.$items.length - 1;\n }\n this.showItem(this.$items[nextIndexToShow].id);\n }\n\n showNextItem() {\n let nextIndexToShow = this.getCurrentItemIndex() + 1;\n if (nextIndexToShow >= this.$items.length) {\n nextIndexToShow = 0;\n }\n this.showItem(this.$items[nextIndexToShow].id);\n }\n\n showFirstItem() {\n this.showItem(this.$items[0].id);\n }\n\n showLastItem() {\n this.showItem(this.$items[this.$items.length - 1].id);\n }\n\n isFullScreen() {\n return document.fullscreenElement;\n }\n\n enterFullScreen() {\n this.$module.requestFullscreen();\n this.syncFullScreen();\n this.$module.focus();\n }\n\n exitFullScreen() {\n document.exitFullscreen();\n this.syncFullScreen();\n }\n\n syncFullScreen() {\n if (this.isFullScreen()) {\n this.$enterFullscreen.setAttribute(\"hidden\", \"\");\n this.$exitFullscreen.removeAttribute(\"hidden\");\n } else {\n this.$exitFullscreen.setAttribute(\"hidden\", \"\");\n this.$enterFullscreen.removeAttribute(\"hidden\");\n }\n }\n}\n","import uuidv4 from \"../../lib/uuid.mjs\";\n\nexport class Picture {\n constructor($module) {\n this.$module = $module;\n this.$imageWrapper =\n $module && $module.querySelector(\".tna-picture__image-wrapper\");\n\n this.$transcriptToggle =\n this.$imageWrapper &&\n this.$imageWrapper.querySelector(\".tna-picture__toggle-transcript\");\n\n this.$transcript =\n $module && $module.querySelector(\".tna-picture__transcript\");\n this.transcriptOpened = false;\n\n if (\n !this.$module ||\n !this.$imageWrapper ||\n !this.$transcriptToggle ||\n !this.$transcript\n ) {\n return;\n }\n\n this.openLabel =\n this.$module.dataset.informationLabelOpen || \"Open transcript\";\n this.closeLabel =\n this.$module.dataset.informationLabelClose || \"Close transcript\";\n\n this.init();\n }\n\n init() {\n const uniqueId = `tna-picture-${uuidv4()}`;\n\n this.$transcriptToggle.removeAttribute(\"hidden\");\n this.$transcriptToggle.setAttribute(\"aria-controls\", uniqueId);\n this.$transcriptToggle.innerText = this.openLabel;\n this.$transcriptToggle.addEventListener(\"click\", () =>\n this.toggleTranscript(),\n );\n\n this.$transcript.setAttribute(\"id\", uniqueId);\n this.$transcript.setAttribute(\"hidden\", \"\");\n\n this.$transcript.addEventListener(\"keydown\", (e) => {\n switch (e.key) {\n case \"Escape\":\n this.toggleTranscript();\n this.$transcriptToggle.focus();\n break;\n }\n });\n }\n\n toggleTranscript() {\n this.transcriptOpened = !this.transcriptOpened;\n if (this.transcriptOpened) {\n this.$transcriptToggle.setAttribute(\"aria-expanded\", true);\n this.$transcriptToggle.innerText = this.closeLabel;\n this.$transcript.removeAttribute(\"hidden\");\n } else {\n this.$transcriptToggle.setAttribute(\"aria-expanded\", false);\n this.$transcriptToggle.innerText = this.openLabel;\n this.$transcript.setAttribute(\"hidden\", \"\");\n }\n }\n}\n","export class Header {\n constructor($module) {\n this.$module = $module;\n this.$toggleButton =\n $module && $module.querySelector(\".tna-header__navigation-button\");\n this.$navigation =\n $module && $module.querySelector(\".tna-header__navigation\");\n this.$links =\n $module &&\n this.$navigation &&\n this.$navigation.querySelectorAll(\"[tabindex='0']\");\n this.menuOpened = false;\n this.mql = window.matchMedia(\"(max-width: 48em)\");\n\n if (!this.$module || !this.$toggleButton || !this.$navigation) {\n return;\n }\n\n this.$toggleButton.removeAttribute(\"hidden\");\n this.syncState();\n this.$toggleButton.addEventListener(\"click\", () =>\n this.handleToggleNavigation(),\n );\n if (\"addEventListener\" in this.mql) {\n this.mql.addEventListener(\"change\", () => this.syncState());\n } else {\n this.mql.addListener(() => this.syncState());\n }\n\n this.$module.addEventListener(\"keyup\", (e) => {\n if (e.code === \"Escape\") {\n if (this.menuOpened && this.mql.matches) {\n this.menuOpened = false;\n this.syncState();\n this.$toggleButton.focus();\n }\n }\n });\n }\n\n handleToggleNavigation() {\n this.menuOpened = !this.menuOpened;\n this.syncState();\n }\n\n syncState() {\n if (this.mql.matches) {\n if (this.menuOpened) {\n this.show();\n } else {\n this.hide();\n }\n } else {\n this.show();\n }\n }\n\n show() {\n this.$navigation.classList.add(\"tna-header__navigation--open\");\n this.$navigation.removeAttribute(\"hidden\");\n this.$navigation.setAttribute(\"aria-hidden\", \"false\");\n this.$toggleButton.setAttribute(\"aria-expanded\", \"true\");\n this.$toggleButton.setAttribute(\"title\", \"Close menu\");\n this.$toggleButton.classList.add(\"tna-header__navigation-button--opened\");\n\n for (let i = 0; i < this.$links.length; i++) {\n this.$links[i].setAttribute(\"tabindex\", \"0\");\n }\n }\n\n hide() {\n this.$navigation.classList.remove(\"tna-header__navigation--open\");\n this.$navigation.hidden = true;\n this.$navigation.setAttribute(\"aria-hidden\", \"true\");\n this.$toggleButton.setAttribute(\"aria-expanded\", \"false\");\n this.$toggleButton.setAttribute(\"title\", \"Open menu\");\n this.$toggleButton.classList.remove(\n \"tna-header__navigation-button--opened\",\n );\n\n for (let i = 0; i < this.$links.length; i++) {\n this.$links[i].setAttribute(\"tabindex\", \"-1\");\n }\n }\n}\n","export class ErrorSummary {\n constructor($module) {\n this.$module = $module;\n }\n\n init() {\n if (!this.$module) {\n return;\n }\n\n const disableAutoFocus =\n this.$module.dataset.disableAutofocus === \"true\" || false;\n\n if (!disableAutoFocus) {\n this.setFocus(this.$module);\n }\n\n this.$module.addEventListener(\"click\", (event) => this.handleClick(event));\n }\n\n setFocus($element, options = {}) {\n const isFocusable = $element.getAttribute(\"tabindex\");\n\n if (!isFocusable) {\n $element.setAttribute(\"tabindex\", \"-1\");\n }\n\n /**\n * Handle element focus\n */\n function onFocus() {\n $element.addEventListener(\"blur\", onBlur, { once: true });\n }\n\n /**\n * Handle element blur\n */\n function onBlur() {\n options.onBlur?.call($element);\n\n if (!isFocusable) {\n $element.removeAttribute(\"tabindex\");\n }\n }\n\n // Add listener to reset element on blur, after focus\n $element.addEventListener(\"focus\", onFocus, { once: true });\n\n // Focus element\n options.onBeforeFocus?.call($element);\n $element.focus();\n }\n\n handleClick(event) {\n const $target = event.target;\n if ($target && this.focusTarget($target)) {\n event.preventDefault();\n }\n }\n\n getFragmentFromUrl(url) {\n if (!url.includes(\"#\")) {\n return undefined;\n }\n\n return url.split(\"#\").pop();\n }\n\n focusTarget($target) {\n // If the element that was clicked was not a link, return early\n if (!($target instanceof HTMLAnchorElement)) {\n return false;\n }\n\n const inputId = this.getFragmentFromUrl($target.href);\n if (!inputId) {\n return false;\n }\n\n const $input = document.getElementById(inputId);\n if (!$input) {\n return false;\n }\n\n const $legendOrLabel = this.getAssociatedLegendOrLabel($input);\n if (!$legendOrLabel) {\n return false;\n }\n\n // Scroll the legend or label into view *before* calling focus on the input\n // to avoid extra scrolling in browsers that don't support `preventScroll`\n // (which at time of writing is most of them...)\n $legendOrLabel.scrollIntoView();\n $input.focus({ preventScroll: true });\n\n return true;\n }\n\n /**\n * Get associated legend or label\n *\n * Returns the first element that exists from this list:\n *\n * - The `<legend>` associated with the closest `<fieldset>` ancestor, as long\n * as the top of it is no more than half a viewport height away from the\n * bottom of the input\n * - The first `<label>` that is associated with the input using for=\"inputId\"\n * - The closest parent `<label>`\n *\n * @private\n * @param {Element} $input - The input\n * @returns {Element | null} Associated legend or label, or null if no\n * associated legend or label can be found\n */\n getAssociatedLegendOrLabel($input) {\n const $fieldset = $input.closest(\"fieldset\");\n\n if ($fieldset) {\n const $legends = $fieldset.getElementsByTagName(\"legend\");\n\n if ($legends.length) {\n const $candidateLegend = $legends[0];\n\n // If the input type is radio or checkbox, always use the legend if\n // there is one.\n if (\n $input instanceof HTMLInputElement &&\n ($input.type === \"checkbox\" || $input.type === \"radio\")\n ) {\n return $candidateLegend;\n }\n\n // For other input types, only scroll to the fieldset’s legend (instead\n // of the label associated with the input) if the input would end up in\n // the top half of the screen.\n //\n // This should avoid situations where the input either ends up off the\n // screen, or obscured by a software keyboard.\n const legendTop = $candidateLegend.getBoundingClientRect().top;\n const inputRect = $input.getBoundingClientRect();\n\n // If the browser doesn't support Element.getBoundingClientRect().height\n // or window.innerHeight (like IE8), bail and just link to the label.\n if (inputRect.height && window.innerHeight) {\n const inputBottom = inputRect.top + inputRect.height;\n\n if (inputBottom - legendTop < window.innerHeight / 2) {\n return $candidateLegend;\n }\n }\n }\n }\n\n return (\n document.querySelector(`label[for='${$input.getAttribute(\"id\")}']`) ??\n $input.closest(\"label\")\n );\n }\n}\n","export class GlobalHeader {\n constructor($module) {\n this.$module = $module;\n this.$toggleButton =\n $module && $module.querySelector(\".tna-global-header__navigation-button\");\n this.$navigation =\n $module &&\n $module.querySelector(\".tna-global-header__navigation-wrapper\");\n this.$topNavigation =\n $module &&\n $module.querySelector(\".tna-global-header__top-navigation-wrapper\");\n this.$links =\n $module &&\n ((this.$navigation &&\n this.$navigation.querySelectorAll(\"[tabindex='0']\")) ||\n (this.$topNavigation &&\n this.$topNavigation.querySelectorAll(\"[tabindex='0']\")));\n this.menuOpened = false;\n this.mql = window.matchMedia(\"(max-width: 48em)\");\n\n if (\n !this.$module ||\n !this.$toggleButton ||\n (!this.$navigation && !this.$topNavigation)\n ) {\n return;\n }\n\n this.$toggleButton.removeAttribute(\"hidden\");\n this.syncState();\n this.$toggleButton.addEventListener(\"click\", () =>\n this.handleToggleNavigation(),\n );\n if (\"addEventListener\" in this.mql) {\n this.mql.addEventListener(\"change\", () => this.syncState());\n } else {\n this.mql.addListener(() => this.syncState());\n }\n\n this.$module.addEventListener(\"keyup\", (e) => {\n if (e.code === \"Escape\" && this.mql.matches) {\n if (this.menuOpened) {\n this.menuOpened = false;\n this.syncState();\n this.$toggleButton.focus();\n }\n }\n });\n }\n\n handleToggleNavigation() {\n this.menuOpened = !this.menuOpened;\n this.syncState();\n }\n\n syncState() {\n if (this.mql.matches) {\n if (this.menuOpened) {\n this.show();\n } else {\n this.hide();\n }\n } else {\n this.show();\n }\n }\n\n hide() {\n if (this.$navigation) {\n this.$navigation.hidden = true;\n this.$navigation.setAttribute(\"aria-hidden\", \"true\");\n }\n if (this.$topNavigation) {\n this.$topNavigation.hidden = true;\n this.$topNavigation.setAttribute(\"aria-hidden\", \"true\");\n }\n this.$toggleButton.setAttribute(\"aria-expanded\", \"false\");\n this.$toggleButton.setAttribute(\"title\", \"Open menu\");\n this.$toggleButton.classList.remove(\n \"tna-global-header__navigation-button--opened\",\n );\n for (let i = 0; i < this.$links.length; i++) {\n this.$links[i].setAttribute(\"tabindex\", \"-1\");\n }\n }\n\n show() {\n if (this.$navigation) {\n this.$navigation.hidden = false;\n this.$navigation.setAttribute(\"aria-hidden\", \"false\");\n }\n if (this.$topNavigation) {\n this.$topNavigation.hidden = false;\n this.$topNavigation.setAttribute(\"aria-hidden\", \"false\");\n }\n this.$toggleButton.setAttribute(\"aria-expanded\", \"true\");\n this.$toggleButton.setAttribute(\"title\", \"Close menu\");\n this.$toggleButton.classList.add(\n \"tna-global-header__navigation-button--opened\",\n );\n for (let i = 0; i < this.$links.length; i++) {\n this.$links[i].setAttribute(\"tabindex\", \"0\");\n }\n }\n}\n","import uuidv4 from \"../../lib/uuid.mjs\";\n\nexport class Breadcrumbs {\n constructor($module) {\n this.$module = $module;\n this.$breadcrumbsList =\n $module && $module.querySelector(\".tna-breadcrumbs__list\");\n this.$breadcrumbs =\n $module &&\n this.$breadcrumbsList &&\n $module.querySelectorAll(\".tna-breadcrumbs__item\");\n\n if (!this.$module || !this.$breadcrumbsList || !this.$breadcrumbs) {\n return;\n }\n\n if (\n this.$breadcrumbs.length > 2 &&\n !this.$module.classList.contains(\"tna-breadcrumbs--no-collapse\")\n ) {\n const uniqueId = `tna-breadcrumbs-${uuidv4()}`;\n\n const $expandable = document.createElement(\"li\");\n $expandable.classList.add(\n \"tna-breadcrumbs__item\",\n \"tna-breadcrumbs__item--expandable\",\n );\n $expandable.style.display = \"none\";\n\n const $expandButton = document.createElement(\"button\");\n $expandButton.classList.add(\"tna-breadcrumbs__link\");\n $expandButton.innerHTML =\n \"<span class='tna-!--visually-hidden'>Expand breadcrumbs</span>&hellip;\";\n $expandButton.setAttribute(\"type\", \"button\");\n $expandButton.setAttribute(\"aria-expanded\", \"false\");\n $expandButton.setAttribute(\"aria-controls\", uniqueId);\n $expandButton.addEventListener(\"click\", () => {\n this.$module.classList.remove(\"tna-breadcrumbs--collapsed\");\n $expandable.remove();\n this.$module.setAttribute(\"tabindex\", \"0\");\n this.$module.focus();\n this.$module.setAttribute(\"tabindex\", \"-1\");\n });\n\n $expandable.appendChild($expandButton);\n\n this.$breadcrumbsList.setAttribute(\"id\", uniqueId);\n this.$breadcrumbsList.insertBefore(\n $expandable,\n this.$breadcrumbs[this.$breadcrumbs.length - 2].nextSibling,\n );\n\n this.$module.classList.add(\"tna-breadcrumbs--collapsed\");\n }\n }\n}\n","const getXPathTo = ($element) => {\n if ($element.id !== \"\") {\n return 'id(\"' + $element.id + '\")';\n }\n if ($element === document.body) {\n return $element.tagName;\n }\n let ix = 0;\n if ($element.parentNode) {\n const siblings = $element.parentNode.childNodes;\n for (let i = 0; i < siblings.length; i++) {\n const sibling = siblings[i];\n if (sibling === $element)\n return (\n getXPathTo($element.parentNode) +\n \"/\" +\n $element.tagName +\n \"[\" +\n (ix + 1) +\n \"]\"\n );\n if (sibling.nodeType === 1 && sibling.tagName === $element.tagName) ix++;\n }\n } else {\n return $element.tagName;\n }\n};\n\nconst includesAny = (arr, values) => values.some((v) => arr.includes(v));\n\nconst getClosestHeading = ($element) => {\n let heading = \"\";\n let $search = $element;\n do {\n while ($search.previousElementSibling) {\n $search = $search.previousElementSibling;\n if (\n [\"h1\", \"h2\", \"h3\", \"h4\", \"h5\", \"h6\"].includes($search.tagName) ||\n ($search.classList.length &&\n includesAny(Array.from($search.classList), [\n \"tna-heading-xl\",\n \"tna-heading-l\",\n \"tna-heading-m\",\n \"tna-heading-s\",\n ]))\n ) {\n heading = $search.innerText;\n break;\n }\n }\n $search = $search.parentElement;\n } while ($search.parentElement && !heading);\n return heading;\n};\n\nconst valueGetters = {\n text: ($el) => $el.innerText.replace(/\\n/g, \" \"),\n html: ($el) => $el.innerHTML,\n value: ($el) => $el.value,\n index: ($el, $scope, event, index) => index,\n instance: ($el, $scope, event, index, instance) => instance,\n checked: ($el) => ($el.checked ? \"checked\" : \"unchecked\"),\n expanded: ($el) => {\n const expanded = $el.getAttribute(\"aria-expanded\");\n if (expanded === null) {\n return null;\n }\n return expanded.toString() === \"true\" ? \"opened\" : \"closed\";\n },\n closestHeading: ($el) => getClosestHeading($el),\n xpath: ($el) => getXPathTo($el.target),\n};\n\nexport { getXPathTo, getClosestHeading, valueGetters };\n","import { valueGetters } from \"../../lib/analytics-helpers.mjs\";\n\nexport default [\n {\n scope: \".tna-accordion\",\n areaName: \"accordion\",\n rootEventName: \"select_feature\",\n rootData: {\n data_component_name: \"accordion\",\n },\n events: [\n {\n eventName: \"click\",\n targetElement: \".tna-accordion__summary\",\n on: \"click\",\n data: { state: valueGetters.expanded, value: valueGetters.text },\n rootData: {\n data_link_type: valueGetters.expanded,\n data_link: valueGetters.text,\n data_position: valueGetters.index,\n },\n },\n ],\n },\n];\n","import { valueGetters } from \"../../lib/analytics-helpers.mjs\";\n\nexport default [\n {\n scope: \".tna-breadcrumbs\",\n areaName: \"breadcrumbs\",\n rootEventName: \"select_navigation\",\n rootData: {\n data_component_name: \"breadcrumbs\",\n },\n events: [\n {\n eventName: \"click\",\n targetElement: \"a.tna-breadcrumbs__link\",\n on: \"click\",\n data: { state: \"expand\", value: valueGetters.html },\n rootData: {\n data_link_type: \"breadcrumb_link\",\n data_link: valueGetters.text,\n },\n },\n {\n eventName: \"click\",\n targetElement:\n \".tna-breadcrumbs__item--expandable button.tna-breadcrumbs__link\",\n on: \"click\",\n data: { state: \"expand\", value: valueGetters.html },\n rootData: {\n data_link_type: \"breadcrumb_expand\",\n data_link: valueGetters.text,\n },\n },\n ],\n },\n];\n","import { valueGetters } from \"../../lib/analytics-helpers.mjs\";\n\nexport default [\n {\n scope: \".tna-checkboxes\",\n areaName: \"checkboxes\",\n events: [\n {\n eventName: \"toggle\",\n targetElement: \".tna-checkboxes__item input\",\n on: \"change\",\n data: {\n state: valueGetters.checked,\n // eslint-disable-next-line no-unused-vars\n value: ($el, $scope, event) => $el.parentNode.innerText.trim(),\n // eslint-disable-next-line no-unused-vars\n group: ($el, $scope, event) =>\n $scope\n .closest(\".tna-form__group\")\n ?.querySelector(\".tna-form__heading\")\n ?.innerText?.trim(),\n },\n },\n ],\n },\n];\n","import { valueGetters } from \"../../lib/analytics-helpers.mjs\";\n\nexport default [\n {\n scope: \".tna-details\",\n areaName: \"details\",\n events: [\n {\n eventName: \"click\",\n targetElement: \".tna-details__summary\",\n on: \"click\",\n data: {\n // eslint-disable-next-line no-unused-vars\n state: ($el, $scope, event) => {\n const wasExpanded =\n $scope\n .querySelector(\".tna-details__details\")\n ?.hasAttribute(\"open\") ?? false;\n return wasExpanded ? \"closed\" : \"opened\";\n },\n // eslint-disable-next-line no-unused-vars\n value: valueGetters.text,\n },\n },\n ],\n },\n];\n","import { valueGetters } from \"../../lib/analytics-helpers.mjs\";\n\nexport default [\n {\n scope: \".tna-footer\",\n areaName: \"footer\",\n rootEventName: \"global_navigation\",\n rootData: {\n data_component_name: \"footer\",\n },\n events: [\n {\n eventName: \"link.click\",\n targetElement: \".tna-footer__navigation-block-item-link\",\n on: \"click\",\n data: {\n value: valueGetters.text,\n },\n rootData: {\n data_link_type: \"link\",\n data_section: valueGetters.closestHeading,\n data_link: valueGetters.text,\n },\n },\n {\n eventName: \"social_link.click\",\n targetElement: \".tna-footer__social-item-link\",\n on: \"click\",\n data: {\n value: valueGetters.text,\n },\n rootData: {\n data_link_type: \"icon\",\n data_section: \"Social media\",\n data_link: ($el) => $el.dataset.name,\n },\n },\n {\n eventName: \"legal_link.click\",\n targetElement: \".tna-footer__legal-item-link\",\n on: \"click\",\n data: {\n value: valueGetters.text,\n },\n rootData: {\n data_link_type: \"link\",\n data_section: \"Legal information\",\n data_link: valueGetters.text,\n },\n },\n {\n eventName: \"mailing_list.click\",\n targetElement: \".tna-footer__mailing-list a.tna-button\",\n on: \"click\",\n data: {\n value: valueGetters.text,\n },\n rootData: {\n data_link_type: \"button\",\n data_section: \"Mailing list\",\n data_link: valueGetters.text,\n },\n },\n {\n eventName: \"ogl.click\",\n targetElement: \".tna-footer__licence p a.tna-footer__link\",\n on: \"click\",\n data: {\n value: valueGetters.text,\n },\n rootData: {\n data_link_type: \"link\",\n data_section: \"OGL\",\n data_link: valueGetters.text,\n },\n },\n {\n eventName: \"govuk.click\",\n targetElement: \".tna-footer__govuk-link\",\n on: \"click\",\n data: {\n value: valueGetters.text,\n },\n rootData: {\n data_link_type: \"Logo\",\n data_section: \"GOV.UK\",\n data_link: valueGetters.text,\n },\n },\n {\n eventName: \"theme.change\",\n targetElement: \".tna-footer__theme-selector-button\",\n on: \"click\",\n data: {\n value: valueGetters.value,\n },\n },\n ],\n },\n];\n","import { valueGetters } from \"../../lib/analytics-helpers.mjs\";\n\nexport default [\n {\n scope: \".tna-gallery\",\n areaName: \"gallery\",\n rootEventName: \"select_media\",\n rootData: {\n media_type: \"gallery\",\n media_duration: ($el, $scope) =>\n $scope.querySelectorAll(\".tna-gallery__navigation-item\").length,\n media_provider: \"tna\",\n media_title: ($el, $scope, event, index, instance) =>\n $scope.querySelector(\".tna-gallery__header-inner\")?.innerText?.trim() ||\n `gallery_${instance}`,\n media_progress: ($el, $scope) =>\n (Array.from(\n $scope.querySelectorAll(\".tna-gallery__navigation-item\"),\n ).findIndex(\n ($itemButton) => $itemButton.getAttribute(\"aria-current\") === \"true\",\n ) || -1) + 1,\n },\n events: [\n {\n eventName: \"click\",\n targetElement: \".tna-gallery__navigation-item\",\n on: \"click\",\n data: {\n value: valueGetters.text,\n },\n rootData: {\n data_link: \"image\",\n media_action: \"progress\",\n media_progress: valueGetters.index,\n },\n },\n {\n eventName: \"click\",\n targetElement: \".tna-gallery__navigation-prev\",\n on: \"click\",\n data: {\n value: ($el, $scope) =>\n $scope\n .querySelector(\n \".tna-gallery__item:not([hidden]) .tna-gallery__item-header\",\n )\n ?.innerText?.trim(),\n },\n rootData: {\n data_link: \"previous\",\n media_action: \"progress\",\n },\n },\n {\n eventName: \"click\",\n targetElement: \".tna-gallery__navigation-next\",\n on: \"click\",\n data: {\n value: ($el, $scope) =>\n $scope\n .querySelector(\n \".tna-gallery__item:not([hidden]) .tna-gallery__item-header\",\n )\n ?.innerText?.trim(),\n },\n rootData: {\n data_link: \"next\",\n media_action: \"progress\",\n },\n },\n {\n eventName: \"keypress\",\n on: \"keydown\",\n onCondition: ($el, $scope, event) =>\n [\n \"ArrowLeft\",\n \"ArrowRight\",\n \"ArrowUp\",\n \"ArrowDown\",\n \"End\",\n \"Home\",\n // \"Escape\",\n ].includes(event.key),\n data: {\n value: ($el, $scope, event) => event.key,\n },\n rootData: {\n data_link: \"keypress\",\n media_action: \"progress\",\n },\n },\n {\n eventName: \"enter-fullscreen\",\n targetElement: '.tna-gallery__options button[value=\"enter-fullscreen\"]',\n on: \"click\",\n rootData: {\n data_link: \"enter_full_screen_button\",\n },\n },\n {\n eventName: \"exit-fullscreen\",\n targetElement: '.tna-gallery__options button[value=\"exit-fullscreen\"]',\n on: \"click\",\n rootData: {\n data_link: \"exit_full_screen_button\",\n },\n },\n {\n eventName: \"index\",\n targetElement: '.tna-gallery__options button[value=\"show-index\"]',\n on: \"click\",\n },\n ],\n },\n];\n","import { valueGetters } from \"../../lib/analytics-helpers.mjs\";\n\nexport default [\n {\n scope: \".tna-global-header\",\n areaName: \"header\",\n rootEventName: \"global_navigation\",\n rootData: {\n data_component_name: \"header\",\n },\n events: [\n {\n eventName: \"toggle\",\n targetElement: \".tna-global-header__navigation-button\",\n on: \"click\",\n data: {\n state: valueGetters.expanded,\n },\n rootData: {\n data_link_type: \"mobile_menu\",\n data_link: ($el) => {\n const expanded = $el.getAttribute(\"aria-expanded\");\n if (expanded === null) {\n return null;\n }\n return expanded.toString() === \"true\" ? \"Open menu\" : \"Close menu\";\n },\n data_section: \"Burger menu\",\n },\n },\n {\n eventName: \"logo.click\",\n targetElement: \".tna-global-header__logo\",\n on: \"click\",\n rootData: {\n data_link_type: \"logo\",\n data_link: \"The National Archives\",\n data_section: \"Top navigation and logo\",\n },\n },\n {\n eventName: \"primary_link.click\",\n targetElement: \".tna-global-header__navigation-item-link\",\n on: \"click\",\n data: {\n value: valueGetters.text,\n },\n rootData: {\n data_link_type: \"menu\",\n data_section: valueGetters.text,\n data_position: 1,\n data_link: valueGetters.text,\n },\n },\n {\n eventName: \"secondary_link.click\",\n targetElement: \".tna-global-header__top-navigation-link\",\n on: \"click\",\n data: {\n value: valueGetters.text,\n },\n rootData: {\n data_link_type: \"icon\",\n data_link: valueGetters.text,\n data_section: \"Top navigation and logo\",\n },\n },\n ],\n },\n];\n","import { valueGetters } from \"../../lib/analytics-helpers.mjs\";\n\nexport default [\n {\n scope: \".tna-header\",\n areaName: \"header\",\n events: [\n {\n eventName: \"toggle\",\n targetElement: \".tna-header__navigation-button\",\n on: \"click\",\n data: {\n state: valueGetters.expanded,\n },\n },\n ],\n },\n];\n","import {\n getClosestHeading,\n valueGetters,\n} from \"../../lib/analytics-helpers.mjs\";\n\nexport default [\n {\n scope: \".tna-picture\",\n areaName: \"picture\",\n events: [\n {\n eventName: \"toggle_transcript\",\n targetElement: \".tna-picture__toggle-transcript\",\n on: \"click\",\n data: {\n state: valueGetters.expanded,\n // eslint-disable-next-line no-unused-vars\n value: ($el, $scope, event) => {\n const heading = getClosestHeading($scope);\n const image = $scope.querySelector(\".tna-picture__image\");\n const imageSrc = image.getAttribute(\"src\");\n const imageAlt = image.getAttribute(\"alt\");\n const value = `${imageAlt} (${imageSrc})`;\n return heading ? `${heading} > ${value}` : value;\n },\n },\n },\n ],\n },\n];\n","import { valueGetters } from \"../../lib/analytics-helpers.mjs\";\n\nexport default [\n {\n scope: \".tna-radios\",\n areaName: \"radios\",\n events: [\n {\n eventName: \"toggle\",\n targetElement: \".tna-radios__item input\",\n on: \"change\",\n data: {\n state: valueGetters.checked,\n // eslint-disable-next-line no-unused-vars\n value: ($el, $scope, event) => $el.parentNode.innerText,\n // eslint-disable-next-line no-unused-vars\n group: ($el, $scope, event) =>\n $scope\n .closest(\".tna-form__group\")\n ?.querySelector(\".tna-form__heading\")\n ?.innerText?.trim(),\n },\n },\n ],\n },\n];\n","import { valueGetters } from \"../../lib/analytics-helpers.mjs\";\n\nexport default [\n {\n scope: \".tna-search-field\",\n areaName: \"search-field\",\n events: [\n {\n eventName: \"blurred\",\n targetElement: \".tna-search-field__input\",\n on: \"blur\",\n data: {\n // eslint-disable-next-line no-unused-vars\n value: valueGetters.value,\n // eslint-disable-next-line no-unused-vars\n group: ($el, $scope, event) =>\n $scope.querySelector(\".tna-form__heading\")?.innerText?.trim(),\n },\n },\n ],\n },\n];\n","import { valueGetters } from \"../../lib/analytics-helpers.mjs\";\n\nexport default [\n {\n scope: \".tna-sidebar\",\n areaName: \"sidebar\",\n rootEventName: \"select_navigation\",\n rootData: {\n data_component_name: \"sidebar\",\n data_section: ($el, $scope) =>\n $scope.querySelector(\".tna-sidebar__heading\")?.innerText?.trim(),\n },\n events: [\n {\n eventName: \"click\",\n targetElement: \"a.tna-sidebar__link\",\n on: \"click\",\n rootData: {\n data_link_type: \"sidebar_link\",\n data_link: valueGetters.text,\n data_position: valueGetters.index,\n },\n },\n ],\n },\n];\n","import { valueGetters } from \"../../lib/analytics-helpers.mjs\";\n\nexport default [\n {\n scope: \".tna-text-input\",\n areaName: \"text-input\",\n events: [\n {\n eventName: \"blurred\",\n on: \"blur\",\n data: {\n // eslint-disable-next-line no-unused-vars\n value: valueGetters.value,\n // eslint-disable-next-line no-unused-vars\n group: ($el, $scope, event) =>\n $scope\n .closest(\".tna-form__group\")\n ?.querySelector(\".tna-form__heading\")\n ?.innerText?.trim(),\n },\n },\n ],\n },\n];\n","import { valueGetters } from \"../../lib/analytics-helpers.mjs\";\n\nexport default [\n {\n scope: \".tna-textarea\",\n areaName: \"textarea\",\n events: [\n {\n eventName: \"blurred\",\n on: \"blur\",\n data: {\n // eslint-disable-next-line no-unused-vars\n value: valueGetters.value,\n // eslint-disable-next-line no-unused-vars\n group: ($el, $scope, event) =>\n $scope\n .closest(\".tna-form__group\")\n ?.querySelector(\".tna-form__heading\")\n ?.innerText?.trim(),\n },\n },\n ],\n },\n];\n","import Cookies from \"./lib/cookies.mjs\";\nimport {\n getXPathTo,\n getClosestHeading,\n valueGetters,\n} from \"./lib/analytics-helpers.mjs\";\nimport AccordionAnalytics from \"./components/accordion/analytics.js\";\nimport BreadcrumbAnalytics from \"./components/breadcrumbs/analytics.js\";\nimport CheckboxesAnalytics from \"./components/checkboxes/analytics.js\";\nimport DetailsAnalytics from \"./components/details/analytics.js\";\nimport FooterAnalytics from \"./components/footer/analytics.js\";\nimport GalleryAnalytics from \"./components/gallery/analytics.js\";\nimport GlobalHeaderAnalytics from \"./components/global-header/analytics.js\";\nimport HeaderAnalytics from \"./components/header/analytics.js\";\nimport HeroAnalytics from \"./components/hero/analytics.js\";\nimport PictureAnalytics from \"./components/picture/analytics.js\";\nimport RadiosAnalytics from \"./components/radios/analytics.js\";\nimport SearchFieldAnalytics from \"./components/search-field/analytics.js\";\nimport SidebarAnalytics from \"./components/sidebar/analytics.js\";\nimport TextInputAnalytics from \"./components/text-input/analytics.js\";\nimport TextareaAnalytics from \"./components/textarea/analytics.js\";\n\nconst componentAnalytics = [\n ...AccordionAnalytics,\n ...BreadcrumbAnalytics,\n ...CheckboxesAnalytics,\n ...DetailsAnalytics,\n ...FooterAnalytics,\n ...GalleryAnalytics,\n ...GlobalHeaderAnalytics,\n ...HeaderAnalytics,\n ...HeroAnalytics,\n ...PictureAnalytics,\n ...RadiosAnalytics,\n ...SearchFieldAnalytics,\n ...SidebarAnalytics,\n ...TextInputAnalytics,\n ...TextareaAnalytics,\n];\n\nclass EventTracker {\n /** @protected */\n cookies = new Cookies();\n\n /** @protected */\n events = [];\n\n /** @protected */\n startTime = new Date();\n\n /** @protected */\n prefix = \"tna\";\n\n /** @protected */\n document = document;\n\n constructor(options = {}) {\n const { prefix = null, documentScope = document } = options;\n if (prefix) {\n this.prefix = prefix;\n }\n if (documentScope) {\n this.document = documentScope;\n }\n }\n\n start(initAll) {\n if (!navigator.doNotTrack || navigator.doNotTrack !== 1) {\n if (this.cookies.isPolicyAccepted(\"usage\")) {\n this.enableTracking();\n }\n this.cookies.on(\"changePolicy\", (policies) => {\n if (Object.hasOwn(policies, \"usage\")) {\n if (policies[\"usage\"]) {\n this.enableTracking();\n } else {\n this.disableTracking();\n }\n }\n });\n if (initAll) {\n this.initAll();\n }\n }\n }\n\n enableTracking() {}\n\n disableTracking() {}\n\n /**\n * Initialise all TNA Frontend component analytics.\n */\n initAll() {\n componentAnalytics.forEach((componentConfig) => {\n this.addListeners(\n componentConfig.scope,\n componentConfig.areaName,\n componentConfig.events,\n componentConfig.rootEventName || \"\",\n componentConfig.rootData || {},\n );\n });\n }\n\n /**\n * Add an event listener.\n * @param {String|HTMLElement} scope - The element to which the listener is scoped.\n * @param {String} areaName - The name of the component to pass on to the tracker.\n * @param {{eventName: String, targetElement: String|undefined, on: String, data: {value: Function|String|undefined, state: Function|String|undefined, group: Function|String|undefined, [String]: String|Integer}, rootData:{[String]: Function|String}}[]} events - The configuration of events to track along with their optional value and state which can be computed.\n * @param {String} rootEventName - The event name to use if specified (prefix).\n * @param {{[String]:String}} rootDefaultData - The default root data to use if specified.\n */\n addListeners(\n scope,\n areaName,\n events,\n rootEventName = \"\",\n rootDefaultData = {},\n ) {\n let scopeArray;\n if (typeof scope === \"string\") {\n scopeArray = Array.from(this.document.querySelectorAll(scope));\n } else if (typeof scope === \"object\") {\n scopeArray = [scope];\n }\n if (!scopeArray) {\n return;\n }\n scopeArray.forEach(($scope, scopeIndex) => {\n events.forEach((eventConfig) => {\n if (!eventConfig.on) {\n return;\n }\n if (eventConfig.targetElement) {\n Array.from(\n $scope.querySelectorAll(eventConfig.targetElement),\n ).forEach(($el, index) =>\n this.attachListener(\n $el,\n $scope,\n rootEventName,\n rootDefaultData,\n eventConfig,\n scope,\n areaName,\n index + 1,\n scopeIndex + 1,\n ),\n );\n } else {\n this.attachListener(\n $scope,\n $scope,\n rootEventName,\n rootDefaultData,\n eventConfig,\n scope,\n areaName,\n 1,\n scopeIndex + 1,\n );\n }\n });\n });\n }\n\n /** @protected */\n generateEventName(areaName, eventConfig) {\n return `${this.prefix}.${areaName}.${eventConfig.eventName || eventConfig.on}`;\n }\n\n /** @protected */\n attachListener(\n $el,\n $scope,\n rootEventName,\n rootDefaultData,\n eventConfig,\n scope,\n areaName,\n index,\n instance,\n ) {\n const {\n on,\n data,\n targetElement,\n rootData = {},\n onCondition = null,\n } = eventConfig;\n $el.addEventListener(on, (event) => {\n const computedValueParameters = [$el, $scope, event, index, instance];\n if (\n onCondition === null ||\n this.computedValue(onCondition, ...computedValueParameters)\n ) {\n this.recordEvent(\n rootEventName\n ? `${this.prefix}.${rootEventName}`\n : this.generateEventName(areaName, eventConfig),\n {\n ...data,\n name: this.generateEventName(areaName, eventConfig),\n value: data?.value\n ? this.computedValue(data.value, ...computedValueParameters)\n : null,\n state: data?.state\n ? this.computedValue(data.state, ...computedValueParameters)\n : null,\n group: data?.group\n ? this.computedValue(data.group, ...computedValueParameters)\n : null,\n xPath: getXPathTo($el),\n targetElement: targetElement,\n timeSincePageLoad: new Date() - this.startTime,\n index,\n instance,\n scope,\n areaName,\n },\n Object.fromEntries(\n Object.entries({ ...rootDefaultData, ...rootData }).map(\n ([key, value]) => [\n key,\n this.computedValue(value, ...computedValueParameters),\n ],\n ),\n ),\n );\n }\n });\n }\n\n /** @protected */\n computedValue(valueOrFunction, $el, $scope, event, index, instance) {\n return typeof valueOrFunction === \"function\"\n ? valueOrFunction.call(this, $el, $scope, event, index, instance)\n : (valueOrFunction ?? null);\n }\n\n /** @protected */\n recordEvent(eventName, data, rootData = {}) {\n this.events.push({\n event: eventName,\n ...data,\n ...rootData,\n });\n }\n\n /** @protected */\n getTnaMetaTags() {\n return Object.fromEntries([\n ...Array.from(\n document.head.querySelectorAll(\n `meta[name^=\"${this.prefix}_root:\"][content]`,\n ),\n ).map(($metaEl) => [\n $metaEl\n .getAttribute(\"name\")\n .replace(new RegExp(`^${this.prefix}_root:`), \"\"),\n $metaEl.getAttribute(\"content\"),\n ]),\n ...Array.from(\n document.head.querySelectorAll(\n `meta[name^=\"${this.prefix}.\"][content]`,\n ),\n ).map(($metaEl) => [\n $metaEl.getAttribute(\"name\"),\n $metaEl.getAttribute(\"content\"),\n ]),\n ]);\n }\n\n /** @protected */\n getUserPreferences() {\n const userPreferences = {};\n userPreferences[`${this.prefix}.pref.prefers-color-scheme`] =\n window.matchMedia?.(\"(prefers-color-scheme: dark)\").matches\n ? \"dark\"\n : \"light\";\n userPreferences[`${this.prefix}.pref.forced-colors`] = window.matchMedia?.(\n \"(forced-colors: active)\",\n ).matches;\n userPreferences[`${this.prefix}.pref.prefers-contrast`] =\n window.matchMedia?.(\"(prefers-contrast: more)\").matches\n ? \"more\"\n : window.matchMedia?.(\"(prefers-contrast: less)\").matches\n ? \"less\"\n : \"normal\";\n userPreferences[`${this.prefix}.pref.prefers-reduced-motion`] =\n window.matchMedia?.(\"(prefers-reduced-motion: reduce)\").matches;\n userPreferences[`${this.prefix}.pref.prefers-reduced-transparency`] =\n window.matchMedia?.(\"(prefers-reduced-transparency: reduce)\").matches;\n return userPreferences;\n }\n}\n\n/**\n * Class to handle Google Analytics 4 reporting.\n * @class GA4\n * @extends EventTracker\n * @constructor\n * @public\n */\nclass GA4 extends EventTracker {\n /** @protected */\n addTrackingCode = true;\n\n /** @protected */\n trackingCodeAdded = false;\n\n /** @protected */\n trackingEnabled = false;\n\n /** @protected */\n gTagId;\n\n constructor(options = {}) {\n if (window.TNAFrontendAnalyticsGA4) {\n return window.TNAFrontendAnalyticsGA4;\n }\n const {\n id = \"\",\n prefix = null,\n initAll = true,\n addTrackingCode = true,\n } = options;\n super({ prefix });\n window.TNAFrontendAnalyticsGA4 = this;\n this.addTrackingCode = addTrackingCode;\n window.dataLayer = window.dataLayer || [];\n if (id) {\n this.gTagId = id;\n this.ga4Disable = `ga-disable-${this.gTagId}`;\n if (!this.cookies.isPolicyAccepted(\"usage\")) {\n window[this.ga4Disable] = true;\n this.cookies.set(this.ga4Disable, \"true\");\n }\n }\n this.start(initAll);\n }\n\n destroy() {\n window.TNAFrontendAnalyticsGA4 = null;\n }\n\n /** @protected */\n recordEvent(eventName, data, rootData = {}) {\n const ga4Data = {\n event: eventName,\n ...Object.fromEntries(\n Object.entries(data).map(([key, value]) => [\n `${this.prefix}.event.${key}`,\n value,\n ]),\n ),\n ...rootData,\n };\n this.pushToDataLayer(ga4Data);\n }\n\n /** @protected */\n gtag() {\n this.pushToDataLayer(arguments);\n }\n\n /** @protected */\n pushToDataLayer(data) {\n window.dataLayer.push(data);\n }\n\n /** @protected */\n enableTracking() {\n if (!this.trackingEnabled) {\n window[this.ga4Disable] = false;\n this.cookies.set(this.ga4Disable, \"false\");\n if (!this.trackingCodeAdded && this.addTrackingCode) {\n if (!this.gTagId) {\n throw Error(\"ID was not specified\");\n }\n this.pushToDataLayer({\n ...this.getTnaMetaTags(),\n ...this.getUserPreferences(),\n \"gtm.start\": new Date().getTime(),\n event: \"gtm.js\",\n });\n const firstScript = document.getElementsByTagName(\"script\")[0];\n const script = document.createElement(\"script\");\n script.async = true;\n script.src = `https://www.googletagmanager.com/gtm.js?id=${this.gTagId}&l=dataLayer`;\n if (firstScript) {\n firstScript.parentNode.insertBefore(script, firstScript);\n } else {\n document.head.appendChild(script);\n }\n this.trackingCodeAdded = true;\n }\n this.trackingEnabled = true;\n }\n }\n\n /** @protected */\n disableTracking() {\n if (this.trackingEnabled) {\n window[this.ga4Disable] = true;\n this.cookies.set(this.ga4Disable, \"true\");\n Object.keys(this.cookies.all).forEach((key) => {\n if (key.startsWith(\"_ga\")) {\n this.cookies.delete(key);\n }\n });\n this.trackingEnabled = false;\n }\n }\n}\n\nconst ga4Id = document.documentElement.dataset.ga4;\nif (ga4Id) {\n new GA4({ id: ga4Id });\n}\n\nconst helpers = { getXPathTo, getClosestHeading, valueGetters };\n\nexport { EventTracker, GA4, helpers };\n","export default [\n {\n scope: \".tna-hero\",\n areaName: \"hero\",\n events: [\n {\n eventName: \"toggle_caption\",\n targetElement: \".tna-hero__details-summary\",\n on: \"click\",\n data: {\n // eslint-disable-next-line no-unused-vars\n state: ($el, $scope, event) => {\n const wasExpanded =\n $scope\n .querySelector(\".tna-hero__details\")\n ?.hasAttribute(\"open\") ?? false;\n return wasExpanded ? \"closed\" : \"opened\";\n },\n // eslint-disable-next-line no-unused-vars\n value: ($el, $scope, event) =>\n $scope.querySelector(\"img[alt]\")?.getAttribute(\"alt\"),\n },\n },\n ],\n },\n];\n","import Cookies from \"../../lib/cookies.mjs\";\n\nexport { Cookies };\n\nexport class DateInputProgressive {\n constructor($module) {\n this.$module = $module;\n this.$yearWrapper =\n $module && $module.querySelector(\".tna-date-input__item--year\");\n this.$yearInput =\n this.$yearWrapper && this.$yearWrapper.querySelector(\"input\");\n this.$monthWrapper =\n $module && $module.querySelector(\".tna-date-input__item--month\");\n this.$monthInput =\n this.$monthWrapper && this.$monthWrapper.querySelector(\"input\");\n this.$dayWrapper =\n $module && $module.querySelector(\".tna-date-input__item--day\");\n this.$dayInput =\n this.$dayWrapper && this.$dayWrapper.querySelector(\"input\");\n\n if (!this.$module) {\n return;\n }\n\n this.update();\n window.addEventListener(\"pageshow\", () => this.update());\n\n if (this.$yearInput) {\n this.$yearInput.addEventListener(\"keyup\", () => this.update());\n this.$yearInput.addEventListener(\"change\", () => this.update());\n }\n if (this.$monthInput) {\n this.$monthInput.addEventListener(\"keyup\", () => this.update());\n this.$monthInput.addEventListener(\"change\", () => this.update());\n }\n if (this.$dayInput) {\n this.$dayInput.addEventListener(\"keyup\", () => this.update());\n this.$dayInput.addEventListener(\"change\", () => this.update());\n }\n }\n\n update() {\n if (this.isValidYear()) {\n this.showMonth();\n if (this.isValidMonth()) {\n this.showDay();\n } else {\n this.hideDay();\n }\n } else {\n this.hideMonth();\n this.hideDay();\n }\n }\n\n isValidYear() {\n if (!this.$yearInput) {\n return true;\n }\n const yearValue = parseInt(this.$yearInput.value.trim());\n return !isNaN(this.$yearInput.value) && !isNaN(yearValue) && yearValue > 0;\n }\n\n isValidMonth() {\n if (!this.$monthInput) {\n return true;\n }\n const monthRawValue = this.$monthInput.value.trim();\n const monthIntValue = parseInt(monthRawValue);\n const validMonthStrings = [\n \"january\",\n \"february\",\n \"march\",\n \"april\",\n \"may\",\n \"june\",\n \"july\",\n \"august\",\n \"september\",\n \"october\",\n \"november\",\n \"december\",\n \"jan\",\n \"feb\",\n \"mar\",\n \"apr\",\n \"jun\",\n \"jul\",\n \"aug\",\n \"sep\",\n \"oct\",\n \"nov\",\n \"dec\",\n ];\n return (\n (!isNaN(this.$monthInput.value) &&\n !isNaN(monthIntValue) &&\n monthIntValue > 0 &&\n monthIntValue <= 12) ||\n validMonthStrings.includes(monthRawValue.toLowerCase())\n );\n }\n\n showMonth() {\n if (this.$monthWrapper) {\n this.$monthWrapper.removeAttribute(\"hidden\");\n }\n }\n\n hideMonth() {\n if (this.$monthWrapper) {\n this.$monthWrapper.setAttribute(\"hidden\", \"\");\n }\n }\n\n showDay() {\n if (this.$dayWrapper) {\n this.$dayWrapper.removeAttribute(\"hidden\");\n }\n }\n\n hideDay() {\n if (this.$dayWrapper) {\n this.$dayWrapper.setAttribute(\"hidden\", \"\");\n }\n }\n}\n","export class TextInput {\n constructor($module) {\n this.$module = $module;\n this.$input = $module && $module.querySelector(\".tna-text-input\");\n\n if (!this.$module || !this.$input) {\n return;\n }\n\n if (this.$input.getAttribute(\"type\") === \"password\") {\n this.$textInputWrapper = document.createElement(\"div\");\n this.$textInputWrapper.classList.add(\"tna-text-input-wrapper\");\n\n this.$textInputPasswordToggle = document.createElement(\"button\");\n this.$textInputPasswordToggle.setAttribute(\"type\", \"button\");\n this.$textInputPasswordToggle.classList.add(\n \"tna-button\",\n \"tna-button--small\",\n \"tna-button--icon-only\",\n );\n this.$textInputPasswordToggle.setAttribute(\n \"aria-controls\",\n this.$input.id,\n );\n this.updateTogglePasswordButtonText();\n\n this.$textInputWrapper.appendChild(this.$input);\n this.$textInputWrapper.appendChild(this.$textInputPasswordToggle);\n this.$module.appendChild(this.$textInputWrapper);\n\n this.$textInputPasswordToggle.addEventListener(\"click\", () => {\n this.togglePasswordType();\n this.$input.focus();\n });\n }\n }\n\n togglePasswordType() {\n if (this.$input.getAttribute(\"type\") === \"password\") {\n this.$input.setAttribute(\"type\", \"text\");\n } else {\n this.$input.setAttribute(\"type\", \"password\");\n }\n this.updateTogglePasswordButtonText();\n }\n\n updateTogglePasswordButtonText() {\n if (this.$input.getAttribute(\"type\") === \"password\") {\n this.$textInputPasswordToggle.innerHTML = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\" height=\"16\" aria-hidden=\"true\" focusable=\"false\"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d=\"M288 32c-80.8 0-145.5 36.8-192.6 80.6C48.6 156 17.3 208 2.5 243.7c-3.3 7.9-3.3 16.7 0 24.6C17.3 304 48.6 356 95.4 399.4C142.5 443.2 207.2 480 288 480s145.5-36.8 192.6-80.6c46.8-43.5 78.1-95.4 93-131.1c3.3-7.9 3.3-16.7 0-24.6c-14.9-35.7-46.2-87.7-93-131.1C433.5 68.8 368.8 32 288 32zM144 256a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm144-64c0 35.3-28.7 64-64 64c-7.1 0-13.9-1.2-20.3-3.3c-5.5-1.8-11.9 1.6-11.7 7.4c.3 6.9 1.3 13.8 3.2 20.7c13.7 51.2 66.4 81.6 117.6 67.9s81.6-66.4 67.9-117.6c-11.1-41.5-47.8-69.4-88.6-71.1c-5.8-.2-9.2 6.1-7.4 11.7c2.1 6.4 3.3 13.2 3.3 20.3z\"/></svg>Show password`;\n this.$textInputPasswordToggle.setAttribute(\"title\", \"Show password\");\n this.$textInputPasswordToggle.setAttribute(\"aria-label\", \"Show password\");\n } else {\n this.$textInputPasswordToggle.innerHTML = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\" height=\"16\" aria-hidden=\"true\" focusable=\"false\"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d=\"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L525.6 386.7c39.6-40.6 66.4-86.1 79.9-118.4c3.3-7.9 3.3-16.7 0-24.6c-14.9-35.7-46.2-87.7-93-131.1C465.5 68.8 400.8 32 320 32c-68.2 0-125 26.3-169.3 60.8L38.8 5.1zM223.1 149.5C248.6 126.2 282.7 112 320 112c79.5 0 144 64.5 144 144c0 24.9-6.3 48.3-17.4 68.7L408 294.5c8.4-19.3 10.6-41.4 4.8-63.3c-11.1-41.5-47.8-69.4-88.6-71.1c-5.8-.2-9.2 6.1-7.4 11.7c2.1 6.4 3.3 13.2 3.3 20.3c0 10.2-2.4 19.8-6.6 28.3l-90.3-70.8zM373 389.9c-16.4 6.5-34.3 10.1-53 10.1c-79.5 0-144-64.5-144-144c0-6.9 .5-13.6 1.4-20.2L83.1 161.5C60.3 191.2 44 220.8 34.5 243.7c-3.3 7.9-3.3 16.7 0 24.6c14.9 35.7 46.2 87.7 93 131.1C174.5 443.2 239.2 480 320 480c47.8 0 89.9-12.9 126.2-32.5L373 389.9z\"/></svg></i>Hide password`;\n this.$textInputPasswordToggle.setAttribute(\"title\", \"Hide password\");\n this.$textInputPasswordToggle.setAttribute(\"aria-label\", \"Hide password\");\n }\n }\n}\n","import Cookies from \"../../lib/cookies.mjs\";\n\nexport class Footer {\n constructor($module) {\n this.$module = $module;\n this.$themeSelector =\n $module && $module.querySelector(\".tna-footer__theme-selector\");\n this.$tnaTemplate = document.querySelector(\".tna-template\");\n\n if (!this.$module || !this.$themeSelector || !this.$tnaTemplate) {\n return;\n }\n\n this.$themeSelectorButtons = this.$themeSelector.querySelectorAll(\n \"button.tna-footer__theme-selector-button[value]\",\n );\n\n Array.from(this.$themeSelectorButtons).forEach(($themeSelectorButton) => {\n $themeSelectorButton.addEventListener(\"click\", (e) => {\n const $button = e.target;\n this.setTheme($button.value);\n this.selectThemeSelectorButton($button);\n });\n });\n\n this.cookies = new Cookies();\n if (this.cookies.isPolicyAccepted(\"settings\")) {\n this.showThemeSelector();\n }\n this.cookies.on(\"changePolicy\", (data) => {\n if (Object.hasOwn(data, \"settings\")) {\n if (data.settings === true) {\n this.showThemeSelector();\n } else {\n this.cookies.delete(\"theme\");\n this.hideThemeSelector();\n }\n }\n });\n }\n\n showThemeSelector() {\n this.$themeSelector.removeAttribute(\"hidden\");\n if (this.cookies.exists(\"theme\")) {\n const $currentThemeButton = Array.from(this.$themeSelectorButtons).find(\n ($button) => $button.value === this.cookies.get(\"theme\"),\n );\n if ($currentThemeButton) {\n this.selectThemeSelectorButton($currentThemeButton);\n }\n }\n }\n\n hideThemeSelector() {\n this.$themeSelector.setAttribute(\"hidden\", \"\");\n }\n\n setTheme(theme) {\n if (theme === \"light\") {\n this.$tnaTemplate.classList.remove(\n \"tna-template--system-theme\",\n \"tna-template--dark-theme\",\n );\n } else if (theme === \"dark\") {\n this.$tnaTemplate.classList.remove(\"tna-template--system-theme\");\n this.$tnaTemplate.classList.add(`tna-template--dark-theme`);\n } else if (theme === \"system\") {\n this.$tnaTemplate.classList.remove(\"tna-template--dark-theme\");\n this.$tnaTemplate.classList.add(`tna-template--system-theme`);\n } else {\n return;\n }\n this.cookies.set(\"theme\", theme);\n }\n\n selectThemeSelectorButton($selectedButton) {\n Array.from(this.$themeSelectorButtons).forEach(($button) => {\n if ($button.value === $selectedButton.value) {\n $button.classList.remove(\"tna-button--plain\");\n $button.setAttribute(\"aria-current\", true);\n } else {\n $button.classList.add(\"tna-button--plain\");\n $button.removeAttribute(\"aria-current\");\n }\n });\n }\n}\n","export class Accordion {\n constructor($module) {\n this.$module = $module;\n this.$items = $module && $module.querySelectorAll(\".tna-accordion__item\");\n if (!this.$module || !this.$items) {\n return;\n }\n\n this.allowMultipleItemsOpen =\n this.$module.dataset[\"multiselectable\"] === \"true\";\n\n this.$items.forEach(($item) => this.initItem($item));\n this.initState();\n }\n\n initItem($item) {\n const $heading = $item.querySelector(\".tna-accordion__heading\");\n const $content = $item.querySelector(\".tna-accordion__body\");\n\n if (!$heading || !$content) {\n return;\n }\n\n $item.classList.add(\"tna-accordion__details\");\n $item.classList.remove(\"tna-accordion__item\");\n\n $heading.removeAttribute(\"class\");\n\n $content.classList.add(\"tna-accordion__content\");\n $content.classList.remove(\"tna-accordion__body\");\n $content.setAttribute(\"hidden\", \"\");\n\n const $headingButton = document.createElement(\"button\");\n $headingButton.classList.add(\"tna-accordion__summary\");\n $headingButton.setAttribute(\"type\", \"button\");\n $headingButton.setAttribute(\"aria-controls\", $content.id);\n $headingButton.innerText = $heading.innerText;\n $heading.innerText = \"\";\n $heading.appendChild($headingButton);\n\n $headingButton.addEventListener(\"click\", () => {\n const isOpen = $headingButton.getAttribute(\"aria-expanded\") === \"true\";\n if (isOpen) {\n this.closeItem($item);\n } else {\n this.openItem($item);\n }\n });\n }\n\n initState() {\n this.$items.forEach(($item) => {\n if ($item.dataset[\"isopen\"] === \"true\") {\n this.openItem($item);\n } else {\n this.closeItem($item);\n }\n $item.removeAttribute(\"data-isopen\");\n });\n }\n\n openItem($item) {\n if (!this.allowMultipleItemsOpen) {\n this.closeAllItemsExcept($item);\n }\n const $headingButton = $item.querySelector(\".tna-accordion__summary\");\n const $content = $item.querySelector(\".tna-accordion__content\");\n $headingButton.setAttribute(\"aria-expanded\", \"true\");\n $headingButton.setAttribute(\n \"aria-label\",\n `${$headingButton.innerText.trim()}, Hide this section`,\n );\n $content.removeAttribute(\"hidden\");\n // $content.setAttribute(\"tabindex\", \"0\");\n }\n\n closeItem($item) {\n const $headingButton = $item.querySelector(\".tna-accordion__summary\");\n const $content = $item.querySelector(\".tna-accordion__content\");\n $headingButton.setAttribute(\"aria-expanded\", \"false\");\n $headingButton.setAttribute(\n \"aria-label\",\n `${$headingButton.innerText.trim()}, Show this section`,\n );\n $content.setAttribute(\"hidden\", \"\");\n // $content.setAttribute(\"tabindex\", \"-1\");\n }\n\n closeAllItemsExcept($excludeItem) {\n Array.from(this.$items)\n .filter(\n ($item) =>\n $item.querySelector(\".tna-accordion__summary\") !== $excludeItem &&\n $item\n .querySelector(\".tna-accordion__summary\")\n .getAttribute(\"aria-expanded\") === \"true\",\n )\n .forEach(($item) => this.closeItem($item));\n }\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};"],"names":["root","factory","exports","module","define","amd","self","CookieBanner","$module","_this","_classCallCheck","this","$acceptButton","querySelector","$rejectButton","$prompt","$acceptedMessage","$rejectedMessage","$closeButtons","querySelectorAll","cookies","Cookies","newInstance","cookiePreferencesSetKey","dataset","preferencesKey","completePoliciesOnInit","exists","hasValue","removeAttribute","addEventListener","accept","reject","key","value","setAttribute","complete","focus","acceptAllPolicies","rejectAllPolicies","_this2","set","forEach","$closeButton","close","Tabs","$tabList","$tabListItemLinks","$tabItems","length","currentTabIndex","init","classList","add","$tabListItemLink","tabPanelID","getAttribute","$tabPanel","document","getElementById","id","e","handleItemLinkClick","switchTabByIndex","handleItemLinkKeyDown","itemLinkClickEvent","preventDefault","targetItem","currentTarget","switchTabByID","itemLinkKeyDownEvent","preventDefaultKeyAction","previousTab","nextTab","stopPropagation","newIndex","switchFocus","arguments","undefined","index","$tabItem","targetId","Array","from","findIndex","window","TNAFrontendCookies","TNAFrontendCookieEvents","CookieEventHandler","_createClass","_defineProperty","event","callback","Object","hasOwn","events","concat","_toConsumableArray","oneTimeEvents","data","eventToTrigger","call","i","splice","tnaCookiePolicies","options","defaultDomain","defaultPath","secure","policiesKey","_options$newInstance","defaultAge","_options$noInit","noInit","documentElement","tnaCookiesDomain","tnaCookiesPath","tnaCookiesInsecure","tnaCookiesPoliciesKey","parseInt","tnaCookiesDefaultAge","keys","policies","every","policy","includes","existingPolicies","filteredExistingPolicies","fromEntries","filter","map","savePolicies","_objectSpread","usage","settings","marketing","essential","get","deserialised","cookie","split","x","parts","trim","JSON","parse","all","decodeURIComponent","_options$maxAge","maxAge","_options$sameSite","sameSite","_options$domain","domain","_options$path","path","_options$secure","_options$session","session","encodeURIComponent","trigger","_this3","setPolicy","accepted","allPolicies","k","toLowerCase","stringify","on","once","initAll","$scope","scope","HTMLElement","$body","onFirstTouch","removeEventListener","remove","$accordion","Accordion","$breadcrumbs","Breadcrumbs","$cookieBanner","$dateInput","DateInputProgressive","$errorSummary","ErrorSummary","$footer","Footer","$gallery","Gallery","$globalHeader","GlobalHeader","$header","Header","$picture","Picture","$skipLink","SkipLink","$tabModule","$textInput","TextInput","checkTableForScroll","$tableWrapper","scrollable","scrollWidth","clientWidth","$tableCaption","$tableWrappers","matchMedia","evt","matches","wasClosed","replace","c","crypto","getRandomValues","Uint8Array","toString","linkedElementId","pop","$linkedElement","focusLinkedElement","linkedElementListener","removeFocusProperties","$itemsContainer","$items","$navigation","$navigationItems","$options","$navigationButtons","$showIndex","$enterFullscreen","$exitFullscreen","$navigationButtonPrev","$navigationButtonNext","syncFullScreen","setup","allowGridIndex","showIndex","currentId","showItem","_this$$showIndex","_this$$navigationButt","_this$$navigationButt2","_this$$navigationButt3","_this$$enterFullscree","_this$$exitFullscreen","_this$$enterFullscree2","$item","_$item$querySelector","showPreviousItem","showNextItem","showFirstItem","showLastItem","fullscreenEnabled","enterFullScreen","exitFullScreen","$liveRegion","createElement","prepend","_this$$showIndex2","_this$$showIndex3","isFullScreen","scrollIntoView","block","textContent","getCurrentItemIndex","_this4","nextIndexToShow","fullscreenElement","requestFullscreen","exitFullscreen","$imageWrapper","$transcriptToggle","$transcript","transcriptOpened","openLabel","informationLabelOpen","closeLabel","informationLabelClose","uniqueId","uuidv4","innerText","toggleTranscript","$toggleButton","$links","menuOpened","mql","syncState","handleToggleNavigation","addListener","code","show","hide","hidden","disableAutofocus","setFocus","handleClick","$element","_options$onBeforeFocu","isFocusable","onBlur","_options$onBlur","onBeforeFocus","$target","target","focusTarget","url","HTMLAnchorElement","inputId","getFragmentFromUrl","href","$input","$legendOrLabel","getAssociatedLegendOrLabel","preventScroll","_document$querySelect","$fieldset","closest","$legends","getElementsByTagName","$candidateLegend","HTMLInputElement","type","legendTop","getBoundingClientRect","top","inputRect","height","innerHeight","$topNavigation","$breadcrumbsList","contains","$expandable","style","display","$expandButton","innerHTML","appendChild","insertBefore","nextSibling","getXPathTo","body","tagName","ix","parentNode","siblings","childNodes","sibling","nodeType","includesAny","arr","values","some","v","getClosestHeading","heading","$search","previousElementSibling","parentElement","valueGetters","text","$el","html","instance","checked","expanded","closestHeading","xpath","areaName","rootEventName","rootData","data_component_name","eventName","targetElement","state","data_link_type","data_link","group","_$scope$closest","_$scope$querySelector","_$scope$querySelector2","hasAttribute","data_section","name","media_type","media_duration","media_provider","media_title","media_progress","$itemButton","media_action","_$scope$querySelector3","onCondition","data_position","image","imageSrc","imageAlt","componentAnalytics","BreadcrumbAnalytics","CheckboxesAnalytics","DetailsAnalytics","FooterAnalytics","GalleryAnalytics","GlobalHeaderAnalytics","HeaderAnalytics","PictureAnalytics","RadiosAnalytics","SearchFieldAnalytics","SidebarAnalytics","TextInputAnalytics","TextareaAnalytics","EventTracker","Date","_options$prefix","prefix","_options$documentScop","documentScope","navigator","doNotTrack","isPolicyAccepted","enableTracking","disableTracking","componentConfig","addListeners","scopeArray","rootDefaultData","_typeof","scopeIndex","eventConfig","attachListener","_eventConfig$rootData","_eventConfig$onCondit","computedValueParameters","computedValue","apply","recordEvent","generateEventName","xPath","timeSincePageLoad","startTime","entries","_ref","_ref2","_slicedToArray","valueOrFunction","push","_this5","head","$metaEl","RegExp","_window$matchMedia","_window","_window$matchMedia2","_window2","_window$matchMedia3","_window3","_window$matchMedia4","_window4","_window$matchMedia5","_window5","_window$matchMedia6","_window6","userPreferences","GA4","_EventTracker2","_this6","TNAFrontendAnalyticsGA4","_possibleConstructorReturn","_options$id","_options$prefix2","_options$initAll","_options$addTrackingC","addTrackingCode","dataLayer","gTagId","ga4Disable","start","_inherits","_this7","ga4Data","_ref3","_ref4","pushToDataLayer","trackingEnabled","trackingCodeAdded","Error","getTnaMetaTags","getUserPreferences","getTime","firstScript","script","async","src","_this8","startsWith","ga4Id","ga4","helpers","$yearWrapper","$yearInput","$monthWrapper","$monthInput","$dayWrapper","$dayInput","update","isValidYear","showMonth","isValidMonth","showDay","hideDay","hideMonth","yearValue","isNaN","monthRawValue","monthIntValue","$textInputWrapper","$textInputPasswordToggle","updateTogglePasswordButtonText","togglePasswordType","$themeSelector","$tnaTemplate","$themeSelectorButtons","$themeSelectorButton","$button","setTheme","selectThemeSelectorButton","showThemeSelector","hideThemeSelector","$currentThemeButton","find","theme","$selectedButton","allowMultipleItemsOpen","initItem","initState","$heading","$content","$headingButton","closeItem","openItem","closeAllItemsExcept","$excludeItem","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","d","definition","o","defineProperty","enumerable","obj","prop","prototype","hasOwnProperty","r","Symbol","toStringTag"],"sourceRoot":""}
1
+ {"version":3,"file":"all+analytics.js","mappings":"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","sources":["webpack://TNAFrontend/webpack/universalModuleDefinition","webpack://TNAFrontend/./src/nationalarchives/components/cookie-banner/cookie-banner.mjs","webpack://TNAFrontend/./src/nationalarchives/components/tabs/tabs.mjs","webpack://TNAFrontend/./src/nationalarchives/components/file-input/file-input.mjs","webpack://TNAFrontend/./src/nationalarchives/lib/cookies.mjs","webpack://TNAFrontend/./src/nationalarchives/all.mjs","webpack://TNAFrontend/./src/nationalarchives/lib/uuid.mjs","webpack://TNAFrontend/./src/nationalarchives/components/skip-link/skip-link.mjs","webpack://TNAFrontend/./src/nationalarchives/components/gallery/gallery.mjs","webpack://TNAFrontend/./src/nationalarchives/components/picture/picture.mjs","webpack://TNAFrontend/./src/nationalarchives/components/header/header.mjs","webpack://TNAFrontend/./src/nationalarchives/components/error-summary/error-summary.mjs","webpack://TNAFrontend/./src/nationalarchives/components/global-header/global-header.mjs","webpack://TNAFrontend/./src/nationalarchives/components/breadcrumbs/breadcrumbs.mjs","webpack://TNAFrontend/./src/nationalarchives/components/date-input/date-input.mjs","webpack://TNAFrontend/./src/nationalarchives/lib/analytics-helpers.mjs","webpack://TNAFrontend/./src/nationalarchives/components/accordion/analytics.js","webpack://TNAFrontend/./src/nationalarchives/components/breadcrumbs/analytics.js","webpack://TNAFrontend/./src/nationalarchives/components/checkboxes/analytics.js","webpack://TNAFrontend/./src/nationalarchives/components/details/analytics.js","webpack://TNAFrontend/./src/nationalarchives/components/error-summary/analytics.js","webpack://TNAFrontend/./src/nationalarchives/components/file-input/analytics.js","webpack://TNAFrontend/./src/nationalarchives/components/footer/analytics.js","webpack://TNAFrontend/./src/nationalarchives/components/gallery/analytics.js","webpack://TNAFrontend/./src/nationalarchives/components/global-header/analytics.js","webpack://TNAFrontend/./src/nationalarchives/components/header/analytics.js","webpack://TNAFrontend/./src/nationalarchives/components/picture/analytics.js","webpack://TNAFrontend/./src/nationalarchives/components/radios/analytics.js","webpack://TNAFrontend/./src/nationalarchives/components/search-field/analytics.js","webpack://TNAFrontend/./src/nationalarchives/components/sidebar/analytics.js","webpack://TNAFrontend/./src/nationalarchives/components/text-input/analytics.js","webpack://TNAFrontend/./src/nationalarchives/components/textarea/analytics.js","webpack://TNAFrontend/./src/nationalarchives/analytics.mjs","webpack://TNAFrontend/./src/nationalarchives/components/hero/analytics.js","webpack://TNAFrontend/./src/nationalarchives/components/text-input/text-input.mjs","webpack://TNAFrontend/./src/nationalarchives/components/footer/footer.mjs","webpack://TNAFrontend/./src/nationalarchives/components/accordion/accordion.mjs","webpack://TNAFrontend/webpack/bootstrap","webpack://TNAFrontend/webpack/runtime/define property getters","webpack://TNAFrontend/webpack/runtime/hasOwnProperty shorthand","webpack://TNAFrontend/webpack/runtime/make namespace object"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"TNAFrontend\"] = factory();\n\telse\n\t\troot[\"TNAFrontend\"] = factory();\n})(self, () => {\nreturn ","import Cookies from \"../../lib/cookies.mjs\";\n\nexport { Cookies };\n\nexport class CookieBanner {\n constructor($module) {\n this.$module = $module;\n this.$acceptButton = $module && $module.querySelector('[value=\"accept\"]');\n this.$rejectButton = $module && $module.querySelector('[value=\"reject\"]');\n this.$prompt =\n $module && $module.querySelector(\".tna-cookie-banner__message--prompt\");\n this.$acceptedMessage =\n $module && $module.querySelector(\".tna-cookie-banner__message--accepted\");\n this.$rejectedMessage =\n $module && $module.querySelector(\".tna-cookie-banner__message--rejected\");\n this.$closeButtons = $module && $module.querySelectorAll('[value=\"close\"]');\n\n if (\n !this.$module ||\n !this.$acceptButton ||\n !this.$rejectButton ||\n !this.$prompt ||\n !this.$acceptedMessage ||\n !this.$rejectedMessage ||\n !this.$closeButtons\n ) {\n return;\n }\n\n this.cookies = new Cookies({ newInstance: true });\n\n this.cookiePreferencesSetKey =\n this.$module.dataset.preferencesKey || \"cookie_preferences_set\";\n\n if (!this.cookies.completePoliciesOnInit) {\n this.cookies.delete(this.cookiePreferencesSetKey);\n }\n\n if (\n !this.cookies.exists(this.cookiePreferencesSetKey) ||\n !this.cookies.hasValue(this.cookiePreferencesSetKey, \"true\")\n ) {\n this.$module.removeAttribute(\"hidden\");\n\n this.$acceptButton.addEventListener(\"click\", () => this.accept());\n this.$rejectButton.addEventListener(\"click\", () => this.reject());\n }\n }\n\n accept() {\n this.$prompt.setAttribute(\"hidden\", \"\");\n this.complete();\n this.$acceptedMessage.removeAttribute(\"hidden\");\n this.$acceptedMessage.focus();\n this.$acceptedMessage.setAttribute(\"tabindex\", \"-1\");\n this.cookies.acceptAllPolicies();\n }\n\n reject() {\n this.$prompt.setAttribute(\"hidden\", \"\");\n this.complete();\n this.$rejectedMessage.removeAttribute(\"hidden\");\n this.$rejectedMessage.focus();\n this.$rejectedMessage.setAttribute(\"tabindex\", \"-1\");\n this.cookies.rejectAllPolicies();\n }\n\n complete() {\n this.cookies.set(this.cookiePreferencesSetKey, true);\n this.$closeButtons.forEach(($closeButton) => {\n $closeButton.addEventListener(\"click\", () => this.close());\n });\n }\n\n close() {\n this.$module.setAttribute(\"hidden\", \"\");\n }\n}\n","export class Tabs {\n constructor($module) {\n this.$module = $module;\n this.$tabList = $module && $module.querySelector(\".tna-tabs__list\");\n this.$tabListItemLinks =\n $module &&\n this.$tabList &&\n this.$tabList.querySelectorAll(\".tna-tabs__button\");\n this.$tabItems = $module && $module.querySelectorAll(\".tna-tabs__item\");\n\n if (\n !this.$module ||\n !this.$tabList ||\n !this.$tabListItemLinks ||\n !this.$tabItems ||\n this.$tabListItemLinks.length !== this.$tabItems.length\n ) {\n return;\n }\n\n this.currentTabIndex = 0;\n this.init();\n }\n\n init() {\n this.$module.classList.add(\"tna-tabs--interactive\");\n this.$tabList.removeAttribute(\"hidden\");\n this.$tabListItemLinks.forEach(($tabListItemLink) => {\n const tabPanelID = $tabListItemLink.getAttribute(\"aria-controls\");\n $tabListItemLink.setAttribute(\"aria-selected\", false);\n const $tabPanel = document.getElementById(tabPanelID);\n $tabPanel.setAttribute(\"aria-labelledby\", $tabListItemLink.id);\n $tabPanel.setAttribute(\"role\", \"tabpanel\");\n $tabListItemLink.addEventListener(\n \"click\",\n (e) => this.handleItemLinkClick(e),\n true,\n );\n });\n this.switchTabByIndex(this.currentTabIndex);\n this.$module.addEventListener(\"keydown\", (e) =>\n this.handleItemLinkKeyDown(e),\n );\n }\n\n handleItemLinkClick(itemLinkClickEvent) {\n itemLinkClickEvent.preventDefault();\n const targetItem =\n itemLinkClickEvent.currentTarget.getAttribute(\"aria-controls\");\n this.switchTabByID(targetItem);\n }\n\n handleItemLinkKeyDown(itemLinkKeyDownEvent) {\n let preventDefaultKeyAction = false;\n switch (itemLinkKeyDownEvent.key) {\n case \"ArrowLeft\":\n case \"ArrowUp\":\n this.previousTab();\n preventDefaultKeyAction = true;\n break;\n case \"ArrowRight\":\n case \"ArrowDown\":\n this.nextTab();\n preventDefaultKeyAction = true;\n break;\n case \"Home\":\n this.switchTabByIndex(0, true);\n preventDefaultKeyAction = true;\n break;\n case \"End\":\n this.switchTabByIndex(this.$tabListItemLinks.length - 1, true);\n preventDefaultKeyAction = true;\n break;\n default:\n break;\n }\n if (preventDefaultKeyAction) {\n itemLinkKeyDownEvent.stopPropagation();\n itemLinkKeyDownEvent.preventDefault();\n }\n }\n\n nextTab() {\n if (this.currentTabIndex < this.$tabListItemLinks.length - 1) {\n this.switchTabByIndex(this.currentTabIndex + 1, true);\n } else {\n this.switchTabByIndex(0, true);\n }\n }\n\n previousTab() {\n if (this.currentTabIndex >= 1) {\n this.switchTabByIndex(this.currentTabIndex - 1, true);\n } else {\n this.switchTabByIndex(this.$tabListItemLinks.length - 1, true);\n }\n }\n\n switchTabByIndex(newIndex, switchFocus = false) {\n this.currentTabIndex = newIndex;\n this.$tabListItemLinks.forEach(($tabListItemLink, index) => {\n if (index === this.currentTabIndex) {\n $tabListItemLink.setAttribute(\"aria-selected\", true);\n $tabListItemLink.setAttribute(\"tabindex\", \"0\");\n if (switchFocus) {\n $tabListItemLink.focus();\n }\n } else {\n $tabListItemLink.setAttribute(\"aria-selected\", false);\n $tabListItemLink.setAttribute(\"tabindex\", \"-1\");\n }\n });\n this.$tabItems.forEach(($tabItem, index) => {\n if (index === this.currentTabIndex) {\n $tabItem.removeAttribute(\"hidden\");\n $tabItem.setAttribute(\"tabindex\", \"0\");\n } else {\n $tabItem.setAttribute(\"hidden\", \"\");\n $tabItem.setAttribute(\"tabindex\", \"-1\");\n }\n });\n }\n\n switchTabByID(targetId) {\n const index = Array.from(this.$tabItems).findIndex(\n ($tabItem) => $tabItem.getAttribute(\"id\") === targetId,\n );\n this.switchTabByIndex(index);\n }\n}\n","export class FileInputDroppable {\n constructor($module) {\n this.$module = $module;\n this.$input = $module && $module.querySelector(\".tna-file-input\");\n\n if (!this.$module || !this.$input) {\n return;\n }\n\n this.acceptMutltipleFiles = this.$input.hasAttribute(\"multiple\");\n\n this.$droppableArea = document.createElement(\"div\");\n this.$droppableArea.classList.add(\"tna-file-input__droppable\");\n this.$module.insertBefore(this.$droppableArea, this.$input);\n this.$droppableArea.appendChild(this.$input);\n\n this.$pseudoSelectFileText = document.createElement(\"span\");\n this.$pseudoSelectFileText.setAttribute(\"aria-live\", \"polite\");\n this.$pseudoSelectFileText.classList.add(\n \"tna-file-input__droppable-status\",\n );\n this.$pseudoSelectFileText.textContent = `No file${this.acceptMutltipleFiles ? \"s\" : \"\"} chosen`;\n this.$droppableArea.appendChild(this.$pseudoSelectFileText);\n\n const $droppableButtons = document.createElement(\"div\");\n $droppableButtons.classList.add(\n \"tna-button-group\",\n \"tna-button-group--small\",\n \"tna-!--margin-top-xs\",\n \"tna-file-input__droppable-buttons\",\n );\n this.$droppableArea.appendChild($droppableButtons);\n\n const $pseudoSelectFileButton = document.createElement(\"span\");\n $pseudoSelectFileButton.classList.add(\"tna-button\");\n $pseudoSelectFileButton.textContent = `Choose file${this.acceptMutltipleFiles ? \"s\" : \"\"}`;\n $droppableButtons.appendChild($pseudoSelectFileButton);\n\n const $pseudoDropFileButton = document.createElement(\"span\");\n $pseudoDropFileButton.textContent = `or drop file${this.acceptMutltipleFiles ? \"s\" : \"\"}`;\n $droppableButtons.appendChild($pseudoDropFileButton);\n\n this.$droppableAreaAriaLabel = document.createElement(\"span\");\n this.$droppableAreaAriaLabel.classList.add(\"tna-visually-hidden\");\n this.$droppableAreaAriaLabel.setAttribute(\"aria-live\", \"assertive\");\n this.$droppableArea.appendChild(this.$droppableAreaAriaLabel);\n\n this.$input.addEventListener(\"dragenter\", (e) => this.showDropTarget(e));\n this.$input.addEventListener(\"dragleave\", () => this.hideDropTarget());\n this.$input.addEventListener(\"dragend\", () => this.hideDropTarget());\n this.$input.addEventListener(\"change\", () => this.onChange());\n this.$input.addEventListener(\"drop\", () => this.onChange());\n }\n\n isContainingFiles(dataTransfer) {\n const hasNoTypesInfo = dataTransfer.types.length === 0;\n const isDraggingFiles = dataTransfer.types.some((type) => type === \"Files\");\n return hasNoTypesInfo || isDraggingFiles;\n }\n\n showDropTarget(event, updateAriaLabel = true) {\n if (event.dataTransfer && this.isContainingFiles(event.dataTransfer)) {\n this.$droppableArea.classList.add(\n event.dataTransfer.items.length > 1\n ? \"tna-file-input__droppable--over-multiple\"\n : \"tna-file-input__droppable--over\",\n );\n\n if (updateAriaLabel) {\n this.$droppableAreaAriaLabel.textContent = \"Entered drop zone\";\n }\n }\n }\n\n hideDropTarget(updateAriaLabel = true) {\n this.$droppableArea.classList.remove(\n \"tna-file-input__droppable--over\",\n \"tna-file-input__droppable--over-multiple\",\n );\n if (updateAriaLabel) {\n this.$droppableAreaAriaLabel.textContent = \"Left drop zone\";\n }\n }\n\n onChange() {\n const files = this.$input.files;\n if (this.acceptMutltipleFiles) {\n if (files.length === 0) {\n this.$pseudoSelectFileText.textContent = `No files chosen`;\n } else {\n this.$pseudoSelectFileText.textContent = `${files.length} file${files.length > 1 ? \"s\" : \"\"} chosen`;\n }\n } else {\n this.$pseudoSelectFileText.textContent =\n files[0]?.name || `No file chosen`;\n }\n this.hideDropTarget(false);\n }\n}\n","window.TNAFrontendCookies = window.TNAFrontendCookies || null;\nwindow.TNAFrontendCookieEvents = window.TNAFrontendCookieEvents || null;\n\nexport class CookieEventHandler {\n events = {};\n oneTimeEvents = {};\n\n constructor() {\n if (window.TNAFrontendCookieEvents) {\n return window.TNAFrontendCookieEvents;\n }\n window.TNAFrontendCookieEvents = this;\n }\n\n /**\n * Add an event listener.\n * @param {String} event - The event to add a listener for.\n * @param {Function} callback - The callback function to call when the event is triggered.\n */\n on(event, callback) {\n if (!Object.hasOwn(this.events, event)) {\n this.events[event] = [];\n }\n this.events[event] = [...this.events[event], callback];\n }\n\n once(event, callback) {\n if (!Object.hasOwn(this.oneTimeEvents, event)) {\n this.oneTimeEvents[event] = [];\n }\n this.oneTimeEvents[event] = [...this.oneTimeEvents[event], callback];\n }\n\n /** @protected */\n trigger(event, data = {}) {\n if (Object.hasOwn(this.events, event)) {\n this.events[event].forEach((eventToTrigger) =>\n eventToTrigger.call(this, data),\n );\n }\n if (Object.hasOwn(this.oneTimeEvents, event)) {\n for (let i = this.oneTimeEvents[event].length - 1; i >= 0; i--) {\n const eventToTrigger = this.oneTimeEvents[event][i];\n eventToTrigger.call(this, data);\n this.oneTimeEvents[event].splice(i, 1);\n }\n }\n }\n}\n\nconst tnaCookiePolicies = [\"usage\", \"settings\", \"marketing\", \"essential\"];\n\n/**\n * Class to handle cookies.\n * @class Cookies\n * @constructor\n * @public\n */\nexport default class Cookies {\n /** @protected */\n defaultDomain = \"\";\n /** @protected */\n defaultPath = \"\";\n /** @protected */\n secure = true;\n /** @protected */\n policiesKey = \"\";\n /** @protected */\n events = null;\n /** @protected */\n defaultAge = null;\n /** @protected */\n completePoliciesOnInit = false;\n\n /**\n * Create a cookie handler.\n * @param {String} [options.defaultDomain] - The domain to register the cookie with.\n * @param {String} [options.path] - The domain to register the cookie with.\n * @param {Boolean} [options.secure] - Only set cookie in HTTPS environments.\n * @param {String} [options.policiesKey] - The name of the cookie.\n * @param {String} [options.newInstance=false] - Create a fresh instance of the cookie class.\n * @param {Number} [options.defaultAge] - The default age of non-session cookies.\n * @param {Boolean} [options.noInit=false] - Don't initialise a blank cookie policy.\n */\n constructor(options = {}) {\n const {\n defaultDomain,\n defaultPath,\n secure,\n policiesKey,\n newInstance = false,\n defaultAge,\n noInit = false,\n } = options;\n if (!newInstance && window.TNAFrontendCookies) {\n return window.TNAFrontendCookies;\n }\n if (defaultDomain === undefined) {\n this.defaultDomain =\n document.documentElement.dataset.tnaCookiesDomain || \"\";\n } else {\n this.defaultDomain = defaultDomain;\n }\n if (defaultPath === undefined) {\n this.defaultPath = document.documentElement.dataset.tnaCookiesPath || \"/\";\n } else {\n this.defaultPath = defaultPath;\n }\n if (secure === undefined) {\n this.secure =\n document.documentElement.dataset.tnaCookiesInsecure !== \"true\";\n } else {\n this.secure = secure;\n }\n if (policiesKey === undefined) {\n this.policiesKey =\n document.documentElement.dataset.tnaCookiesPoliciesKey ||\n \"cookies_policy\";\n } else {\n this.policiesKey = policiesKey;\n }\n if (defaultAge === undefined) {\n this.defaultAge =\n parseInt(document.documentElement.dataset.tnaCookiesDefaultAge) ||\n 31536000; // 365 days;\n } else {\n this.defaultAge = defaultAge;\n }\n this.events = new CookieEventHandler();\n this.completePoliciesOnInit =\n Object.keys(this.policies).length === tnaCookiePolicies.length &&\n tnaCookiePolicies.every(\n (policy) =>\n Object.keys(this.policies).includes(policy) &&\n typeof this.policies[policy] === \"boolean\",\n );\n if (!this.completePoliciesOnInit && !noInit) {\n this.init();\n }\n window.TNAFrontendCookies = this;\n }\n\n /** @protected */\n init() {\n const existingPolicies = this.policies;\n const filteredExistingPolicies = Object.fromEntries(\n Object.keys(existingPolicies)\n .filter((policy) => tnaCookiePolicies.includes(policy))\n .map((policy) => [policy, existingPolicies[policy]]),\n );\n this.savePolicies({\n usage: false,\n settings: false,\n marketing: false,\n ...filteredExistingPolicies,\n essential: true,\n });\n }\n\n destroyInstance() {\n window.TNAFrontendCookies = null;\n }\n\n /** @protected */\n get all() {\n const deserialised = {};\n document.cookie\n .split(\"; \")\n .filter((x) => x)\n .forEach((cookie) => {\n const parts = cookie.trim().split(\"=\");\n if (parts[0]) {\n deserialised[parts[0]] = parts[1];\n }\n });\n return deserialised;\n }\n\n /** @protected */\n get policies() {\n try {\n return JSON.parse(this.get(this.policiesKey) || \"{}\");\n } catch (e) {\n return {};\n }\n }\n\n /**\n * Check to see whether a cookie exists or not.\n * @param {String} key - The cookie name.\n * @returns {Boolean}\n */\n exists(key) {\n return Object.hasOwn(this.all, key);\n }\n\n /**\n * Check to see whether a cookie has a particular value.\n * @param {String} key - The cookie name.\n * @param {String|Number|Boolean} value - The value to check against.\n * @returns\n */\n hasValue(key, value) {\n return this.get(key) == value;\n }\n\n /**\n * Get a cookie.\n * @param {String} key - The cookie name.\n * @returns {String|Number|Boolean}\n */\n get(key) {\n return this.exists(key) ? decodeURIComponent(this.all[key]) : null;\n }\n\n /**\n * Set a cookie.\n * @param {String} key - The cookie name.\n * @param {String|Number|Boolean} value - The cookie value.\n * @param {Object} options\n * @param {Number} [options.maxAge=this.defaultAge] - The maximum age of the cookie in seconds.\n * @param {String} [options.path=/] - The path to register the cookie for.\n * @param {String} [options.sameSite=Lax] - The sameSite attribute.\n * @param {String} [options.domain=this.defaultDomain] - The domain to register the cookie with.\n * @param {String} [options.path=this.defaultPath] - The path to register the cookie with.\n * @param {String} [options.secure=this.secure] - Only set cookie in HTTPS environments.\n * @param {String} [options.session=false] - Set a session cookie.\n */\n set(key, value, options = {}) {\n const {\n maxAge = this.defaultAge,\n sameSite = \"Lax\",\n domain = this.defaultDomain,\n path = this.defaultPath,\n secure = this.secure,\n session = false,\n } = options;\n if (!key) {\n return;\n }\n const cookie = `${encodeURIComponent(key)}=${encodeURIComponent(value)};${\n domain ? ` domain=${domain}; ` : \"\"\n } samesite=${sameSite}; path=${path}${!session ? `; max-age=${maxAge}` : \"\"}${\n secure ? \"; secure\" : \"\"\n }`;\n document.cookie = cookie;\n this.events.trigger(\"setCookie\", {\n key,\n value,\n maxAge,\n path,\n sameSite,\n domain,\n secure,\n session,\n cookie,\n });\n }\n\n /**\n * Delete a cookie.\n * @param {String} key - The cookie name.\n * @param {String} [path=/] - The path to the cookie is registered on.\n */\n delete(key, path = \"/\", domain = null) {\n const options = { maxAge: -1, path, domain: domain || undefined };\n this.set(key, \"\", options);\n this.events.trigger(\"deleteCookie\", { key, ...options });\n }\n\n /**\n * Delete all cookies.\n */\n deleteAll(path = \"/\", domain = null) {\n Object.keys(this.all).forEach((cookie) => {\n this.delete(cookie, path, domain);\n });\n this.events.trigger(\"deleteAllCookies\", { path, domain });\n }\n\n /**\n * Accept a policy.\n * @param {String} policy - The name of the policy.\n */\n acceptPolicy(policy) {\n this.setPolicy(policy, true);\n this.events.trigger(\"acceptPolicy\", policy);\n this.events.trigger(\"changePolicy\", { [policy]: true });\n }\n\n /**\n * Reject a policy.\n * @param {String} policy - The name of the policy.\n */\n rejectPolicy(policy) {\n this.setPolicy(policy, false);\n this.events.trigger(\"rejectPolicy\", policy);\n this.events.trigger(\"changePolicy\", { [policy]: false });\n }\n\n /**\n * Set a policy.\n * @param {String} policy - The name of the policy.\n * @param {Boolean} accepted - Whether the policy is accepted or not.\n */\n setPolicy(policy, accepted) {\n if (policy === \"essential\") {\n return;\n }\n this.savePolicies({\n ...this.policies,\n [policy]: accepted,\n essential: true,\n });\n this.events.trigger(\"changePolicy\", { [policy]: accepted });\n }\n\n /**\n * Accept all the cookie policies.\n */\n acceptAllPolicies() {\n const allPolicies = Object.fromEntries(\n Object.keys(this.policies).map((k) => [k.toLowerCase(), true]),\n );\n this.savePolicies(allPolicies);\n this.events.trigger(\"acceptAllPolicies\");\n this.events.trigger(\"changePolicy\", allPolicies);\n }\n\n /**\n * Reject all the cookie policies.\n */\n rejectAllPolicies() {\n const allPolicies = {\n ...Object.fromEntries(\n Object.keys(this.policies).map((k) => [k.toLowerCase(), false]),\n ),\n essential: true,\n };\n this.savePolicies(allPolicies);\n this.events.trigger(\"rejectAllPolicies\");\n this.events.trigger(\"changePolicy\", allPolicies);\n }\n\n /**\n * Commit policy preferences to the browser.\n * @param {object} policies - The policies to commit.\n */\n savePolicies(policies) {\n this.set(this.policiesKey, JSON.stringify(policies));\n }\n\n /**\n * Get the acceptance status of a policy.\n * @param {String} policy - The name of the policy.\n * @returns {Boolean}\n */\n isPolicyAccepted(policy) {\n return Object.hasOwn(this.policies, policy)\n ? this.policies[policy] === true\n : null;\n }\n\n /**\n * Add an event listener.\n * @param {String} event - The event to add a listener for.\n * @param {Function} callback - The callback function to call when the event is triggered.\n */\n on(event, callback) {\n this.events.on(event, callback);\n }\n\n /**\n * Add a one-time event listener.\n * @param {String} event - The event to add a listener for.\n * @param {Function} callback - The callback function to call when the event is triggered.\n */\n once(event, callback) {\n this.events.once(event, callback);\n }\n}\n","import { Accordion } from \"./components/accordion/accordion.mjs\";\nimport { Breadcrumbs } from \"./components/breadcrumbs/breadcrumbs.mjs\";\nimport { CookieBanner } from \"./components/cookie-banner/cookie-banner.mjs\";\nimport { DateInputProgressive } from \"./components/date-input/date-input.mjs\";\nimport { ErrorSummary } from \"./components/error-summary/error-summary.mjs\";\nimport { FileInputDroppable } from \"./components/file-input/file-input.mjs\";\nimport { Footer } from \"./components/footer/footer.mjs\";\nimport { Gallery } from \"./components/gallery/gallery.mjs\";\nimport { GlobalHeader } from \"./components/global-header/global-header.mjs\";\nimport { Header } from \"./components/header/header.mjs\";\nimport { Picture } from \"./components/picture/picture.mjs\";\nimport { SkipLink } from \"./components/skip-link/skip-link.mjs\";\nimport { Tabs } from \"./components/tabs/tabs.mjs\";\nimport { TextInput } from \"./components/text-input/text-input.mjs\";\nimport Cookies from \"./lib/cookies.mjs\";\n\nconst initAll = (options) => {\n options = typeof options !== \"undefined\" ? options : {};\n const $scope =\n options.scope instanceof HTMLElement ? options.scope : document;\n\n const $body = document.documentElement;\n $body.classList.add(\"tna-template--js-enabled\");\n\n const onFirstTouch = () => {\n window.removeEventListener(\"touchstart\", onFirstTouch);\n $body.classList.add(\"tna-template--touched\");\n };\n\n const onKeyDown = (e) => {\n if (e.key === \"Tab\") {\n $body.classList.add(\"tna-template--tabbed\");\n $body.classList.remove(\"tna-template--clicked\");\n }\n };\n\n const onMouseDown = () => {\n $body.classList.add(\"tna-template--clicked\");\n $body.classList.remove(\"tna-template--tabbed\");\n };\n\n window.addEventListener(\"touchstart\", onFirstTouch);\n window.addEventListener(\"keydown\", onKeyDown);\n window.addEventListener(\"mousedown\", onMouseDown);\n\n const $accordions = $scope.querySelectorAll('[data-module=\"tna-accordion\"]');\n $accordions.forEach(($accordion) => {\n new Accordion($accordion);\n });\n\n const $breadcrumbs = $scope.querySelector('[data-module=\"tna-breadcrumbs\"]');\n if ($breadcrumbs) {\n new Breadcrumbs($breadcrumbs);\n }\n\n const $cookieBanner = $scope.querySelector(\n '[data-module=\"tna-cookie-banner\"]',\n );\n if ($cookieBanner) {\n new CookieBanner($cookieBanner);\n }\n\n const $progressiveDateInputs = $scope.querySelectorAll(\n '[data-module=\"date-input-progressive\"]',\n );\n $progressiveDateInputs.forEach(($dateInput) => {\n new DateInputProgressive($dateInput);\n });\n\n const $errorSummary = $scope.querySelector(\n '[data-module=\"tna-error-summary\"]',\n );\n if ($errorSummary) {\n new ErrorSummary($errorSummary).init();\n }\n\n const $fileInputs = $scope.querySelectorAll('[data-module=\"tna-file-input\"]');\n $fileInputs.forEach(($fileInput) => {\n new FileInputDroppable($fileInput);\n });\n\n const $footer = $scope.querySelector('[data-module=\"tna-footer\"]');\n if ($footer) {\n new Footer($footer);\n }\n\n const $galleries = $scope.querySelectorAll('[data-module=\"tna-gallery\"]');\n $galleries.forEach(($gallery) => {\n new Gallery($gallery);\n });\n\n const $globalHeader = $scope.querySelector(\n '[data-module=\"tna-global-header\"]',\n );\n if ($globalHeader) {\n new GlobalHeader($globalHeader);\n }\n\n const $header = $scope.querySelector('[data-module=\"tna-header\"]');\n if ($header) {\n new Header($header);\n }\n\n const $pictures = $scope.querySelectorAll('[data-module=\"tna-picture\"]');\n $pictures.forEach(($picture) => {\n new Picture($picture);\n });\n\n const $skipLinks = $scope.querySelectorAll('[data-module=\"tna-skip-link\"]');\n $skipLinks.forEach(($skipLink) => {\n new SkipLink($skipLink);\n });\n\n const $tabs = $scope.querySelectorAll('[data-module=\"tna-tabs\"]');\n $tabs.forEach(($tabModule) => {\n new Tabs($tabModule);\n });\n\n const $textInputs = $scope.querySelectorAll('[data-module=\"tna-text-input\"]');\n $textInputs.forEach(($textInput) => {\n new TextInput($textInput);\n });\n\n const checkTableForScroll = ($tableWrapper) => {\n const scrollable = $tableWrapper.scrollWidth > $tableWrapper.clientWidth;\n const $tableCaption = $tableWrapper.querySelector(\".tna-table__caption\");\n if (scrollable) {\n $tableWrapper.setAttribute(\"tabindex\", \"0\");\n $tableCaption?.classList.add(\"tna-table__caption--scroll\");\n } else {\n $tableWrapper.removeAttribute(\"tabindex\");\n $tableCaption?.classList.remove(\"tna-table__caption--scroll\");\n }\n };\n\n const $tableWrappers = document.querySelectorAll(\n \".tna-table-wrapper:has(.tna-table__caption)\",\n );\n $tableWrappers.forEach(($tableWrapper) => checkTableForScroll($tableWrapper));\n window.addEventListener(\"resize\", () => {\n $tableWrappers.forEach(($tableWrapper) =>\n checkTableForScroll($tableWrapper),\n );\n });\n\n window.matchMedia(\"print\").addEventListener(\"change\", (evt) => {\n if (evt.matches) {\n document\n .querySelectorAll(\".tna-details__details:not([open])\")\n .forEach((e) => {\n e.setAttribute(\"open\", \"\");\n e.dataset.wasClosed = \"\";\n });\n document\n .querySelectorAll(\n \".tna-accordion__content[hidden], .tna-picture__transcript[hidden]\",\n )\n .forEach((e) => {\n e.removeAttribute(\"hidden\");\n e.dataset.wasClosed = \"\";\n });\n } else {\n document\n .querySelectorAll(\".tna-details__details[data-was-closed]\")\n .forEach((e) => {\n e.removeAttribute(\"open\");\n delete e.dataset.wasClosed;\n });\n document\n .querySelectorAll(\n \".tna-accordion__content[data-was-closed], .tna-picture__transcript[data-was-closed]\",\n )\n .forEach((e) => {\n e.setAttribute(\"hidden\", \"\");\n e.dataset.wasClosed = \"\";\n });\n }\n });\n};\n\nexport {\n initAll,\n Cookies,\n Accordion,\n Breadcrumbs,\n CookieBanner,\n DateInputProgressive,\n ErrorSummary,\n FileInputDroppable,\n Footer,\n Gallery,\n GlobalHeader,\n Header,\n Picture,\n SkipLink,\n Tabs,\n TextInput,\n};\n","const uuidv4 = () =>\n ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, (c) =>\n (\n c ^\n (crypto.getRandomValues(new Uint8Array(1))[0] & (15 >> (c / 4)))\n ).toString(16),\n );\n\nexport default uuidv4;\n","export class SkipLink {\n linkedElementListener = false;\n\n constructor($module) {\n this.$module = $module;\n this.linkedElementId = $module.getAttribute(\"href\").split(\"#\").pop();\n this.$linkedElement =\n $module &&\n this.linkedElementId &&\n document.getElementById(this.linkedElementId);\n\n if (!this.$module || !this.$linkedElement) {\n return;\n }\n this.$module.addEventListener(\"click\", () => this.focusLinkedElement());\n }\n\n focusLinkedElement() {\n if (!this.$linkedElement.getAttribute(\"tabindex\")) {\n this.$linkedElement.setAttribute(\"tabindex\", \"-1\");\n this.$linkedElement.classList.add(\"tna-!--no-focus-style\");\n\n if (!this.linkedElementListener) {\n this.$linkedElement.addEventListener(\"blur\", () =>\n this.removeFocusProperties(),\n );\n this.linkedElementListener = true;\n }\n }\n\n this.$linkedElement.focus();\n }\n\n removeFocusProperties() {\n this.$linkedElement.removeAttribute(\"tabindex\");\n this.$linkedElement.classList.remove(\"tna-!--no-focus-style\");\n }\n}\n","export class Gallery {\n constructor($module) {\n this.$module = $module;\n this.$itemsContainer =\n $module && $module.querySelector(\".tna-gallery__items\");\n this.$items =\n this.$itemsContainer &&\n this.$itemsContainer.querySelectorAll(\".tna-gallery__item\");\n this.$navigation =\n $module && $module.querySelector(\".tna-gallery__navigation\");\n this.$navigationItems =\n this.$navigation &&\n $module.querySelectorAll(\".tna-gallery__navigation-item\");\n this.$options = $module && $module.querySelector(\".tna-gallery__options\");\n this.$navigationButtons =\n $module && $module.querySelector(\".tna-gallery__navigation-buttons\");\n\n if (\n !this.$module ||\n !this.$itemsContainer ||\n !this.$items ||\n this.$items.length < 2 ||\n !this.$navigation ||\n !this.$navigationItems ||\n !this.$options ||\n !this.$navigationButtons\n ) {\n return;\n }\n\n this.$module.classList.add(\"tna-gallery--interactive\");\n\n this.$showIndex = this.$options.querySelector('button[value=\"show-index\"]');\n this.$enterFullscreen = this.$options.querySelector(\n 'button[value=\"enter-fullscreen\"]',\n );\n this.$exitFullscreen = this.$options.querySelector(\n 'button[value=\"exit-fullscreen\"]',\n );\n\n this.$navigationButtonPrev = this.$navigationButtons.querySelector(\n \".tna-gallery__navigation-prev\",\n );\n this.$navigationButtonNext = this.$navigationButtons.querySelector(\n \".tna-gallery__navigation-next\",\n );\n\n this.$module.addEventListener(\"fullscreenchange\", () =>\n this.syncFullScreen(),\n );\n\n this.setup();\n this.allowGridIndex = this.$module.dataset[\"showgrid\"] || false;\n if (this.allowGridIndex) {\n this.showIndex();\n } else {\n this.currentId = this.$items[0].id;\n this.showItem(this.currentId);\n }\n }\n\n setup() {\n this.$items.forEach(($item) => {\n $item.setAttribute(\"hidden\", \"\");\n $item.setAttribute(\"aria-hidden\", \"true\");\n $item\n .querySelector(\".tna-gallery__item-header\")\n ?.setAttribute(\"aria-hidden\", \"true\");\n });\n this.$navigation.removeAttribute(\"hidden\");\n this.$navigationItems.forEach(($item) => {\n $item.addEventListener(\"click\", () => {\n this.showItem($item.getAttribute(\"aria-controls\"));\n this.$itemsContainer.setAttribute(\"tabindex\", \"0\");\n this.$itemsContainer.focus();\n });\n });\n this.$module.addEventListener(\"keydown\", (e) => {\n let preventDefaultKeyAction = false;\n switch (e.key) {\n case \"ArrowLeft\":\n case \"ArrowUp\":\n this.showPreviousItem();\n preventDefaultKeyAction = true;\n break;\n case \"ArrowRight\":\n case \"ArrowDown\":\n this.showNextItem();\n preventDefaultKeyAction = true;\n break;\n case \"Home\":\n this.showFirstItem();\n preventDefaultKeyAction = true;\n break;\n case \"End\":\n this.showLastItem();\n preventDefaultKeyAction = true;\n break;\n }\n if (preventDefaultKeyAction) {\n e.stopPropagation();\n e.preventDefault();\n }\n });\n this.$options.removeAttribute(\"hidden\");\n if (\n document.fullscreenEnabled &&\n this.$enterFullscreen &&\n this.$exitFullscreen\n ) {\n this.$enterFullscreen?.addEventListener(\"click\", () =>\n this.enterFullScreen(),\n );\n this.$exitFullscreen?.addEventListener(\"click\", () =>\n this.exitFullScreen(),\n );\n this.$enterFullscreen?.removeAttribute(\"hidden\");\n }\n this.$showIndex?.addEventListener(\"click\", () => this.showIndex());\n this.$navigationButtons?.removeAttribute(\"hidden\");\n this.$navigationButtonPrev?.addEventListener(\"click\", () => {\n this.showPreviousItem();\n });\n this.$navigationButtonNext?.addEventListener(\"click\", () => {\n this.showNextItem();\n });\n\n this.$liveRegion = document.createElement(\"div\");\n this.$liveRegion.setAttribute(\"aria-live\", \"polite\");\n this.$liveRegion.setAttribute(\"aria-atomic\", \"true\");\n this.$liveRegion.setAttribute(\"class\", \"tna-gallery__item-header\");\n this.$itemsContainer.prepend(this.$liveRegion);\n this.$itemsContainer.classList.add(\"tna-gallery__items--hide-item-titles\");\n this.$itemsContainer.addEventListener(\"blur\", () =>\n this.$itemsContainer.removeAttribute(\"tabindex\"),\n );\n }\n\n showIndex() {\n this.showItem(\"\");\n this.$itemsContainer.classList.add(\"tna-gallery__items--hide-items\");\n this.$showIndex?.setAttribute(\"hidden\", \"\");\n }\n\n showItem(id) {\n this.$items.forEach(($item) => {\n if (id && $item.id === id) {\n $item.removeAttribute(\"hidden\");\n $item.removeAttribute(\"aria-hidden\");\n } else {\n $item.setAttribute(\"hidden\", \"\");\n $item.setAttribute(\"aria-hidden\", \"true\");\n }\n });\n this.$navigationItems.forEach(($item) => {\n if (id) {\n if ($item.getAttribute(\"aria-controls\") === id) {\n $item.setAttribute(\"aria-current\", \"true\");\n if (this.isFullScreen()) {\n $item.scrollIntoView({ block: \"nearest\" });\n }\n } else {\n $item.setAttribute(\"aria-current\", \"false\");\n }\n } else {\n $item.setAttribute(\"aria-current\", \"false\");\n }\n });\n if (this.allowGridIndex) {\n this.$showIndex?.removeAttribute(\"hidden\");\n }\n this.$itemsContainer.classList.remove(\"tna-gallery__items--hide-items\");\n this.currentId = id;\n this.$liveRegion.textContent = `Image ${this.getCurrentItemIndex() + 1} of ${this.$items.length}`;\n }\n\n getCurrentItemIndex() {\n return Array.from(this.$items).findIndex(\n ($item) => $item.id === this.currentId,\n );\n }\n\n showPreviousItem() {\n let nextIndexToShow = this.getCurrentItemIndex() - 1;\n if (nextIndexToShow < 0) {\n nextIndexToShow = this.$items.length - 1;\n }\n this.showItem(this.$items[nextIndexToShow].id);\n }\n\n showNextItem() {\n let nextIndexToShow = this.getCurrentItemIndex() + 1;\n if (nextIndexToShow >= this.$items.length) {\n nextIndexToShow = 0;\n }\n this.showItem(this.$items[nextIndexToShow].id);\n }\n\n showFirstItem() {\n this.showItem(this.$items[0].id);\n }\n\n showLastItem() {\n this.showItem(this.$items[this.$items.length - 1].id);\n }\n\n isFullScreen() {\n return document.fullscreenElement;\n }\n\n enterFullScreen() {\n this.$module.requestFullscreen();\n this.syncFullScreen();\n this.$module.focus();\n }\n\n exitFullScreen() {\n document.exitFullscreen();\n this.syncFullScreen();\n }\n\n syncFullScreen() {\n if (this.isFullScreen()) {\n this.$enterFullscreen.setAttribute(\"hidden\", \"\");\n this.$exitFullscreen.removeAttribute(\"hidden\");\n } else {\n this.$exitFullscreen.setAttribute(\"hidden\", \"\");\n this.$enterFullscreen.removeAttribute(\"hidden\");\n }\n }\n}\n","import uuidv4 from \"../../lib/uuid.mjs\";\n\nexport class Picture {\n constructor($module) {\n this.$module = $module;\n this.$imageWrapper =\n $module && $module.querySelector(\".tna-picture__image-wrapper\");\n\n this.$transcriptToggle =\n this.$imageWrapper &&\n this.$imageWrapper.querySelector(\".tna-picture__toggle-transcript\");\n\n this.$transcript =\n $module && $module.querySelector(\".tna-picture__transcript\");\n this.transcriptOpened = false;\n\n if (\n !this.$module ||\n !this.$imageWrapper ||\n !this.$transcriptToggle ||\n !this.$transcript\n ) {\n return;\n }\n\n this.openLabel =\n this.$module.dataset.informationLabelOpen || \"Open transcript\";\n this.closeLabel =\n this.$module.dataset.informationLabelClose || \"Close transcript\";\n\n this.init();\n }\n\n init() {\n const uniqueId = `tna-picture-${uuidv4()}`;\n\n this.$transcriptToggle.removeAttribute(\"hidden\");\n this.$transcriptToggle.setAttribute(\"aria-controls\", uniqueId);\n this.$transcriptToggle.innerText = this.openLabel;\n this.$transcriptToggle.addEventListener(\"click\", () =>\n this.toggleTranscript(),\n );\n\n this.$transcript.setAttribute(\"id\", uniqueId);\n this.$transcript.setAttribute(\"hidden\", \"\");\n\n this.$transcript.addEventListener(\"keydown\", (e) => {\n switch (e.key) {\n case \"Escape\":\n this.toggleTranscript();\n this.$transcriptToggle.focus();\n break;\n }\n });\n }\n\n toggleTranscript() {\n this.transcriptOpened = !this.transcriptOpened;\n if (this.transcriptOpened) {\n this.$transcriptToggle.setAttribute(\"aria-expanded\", true);\n this.$transcriptToggle.innerText = this.closeLabel;\n this.$transcript.removeAttribute(\"hidden\");\n } else {\n this.$transcriptToggle.setAttribute(\"aria-expanded\", false);\n this.$transcriptToggle.innerText = this.openLabel;\n this.$transcript.setAttribute(\"hidden\", \"\");\n }\n }\n}\n","export class Header {\n constructor($module) {\n this.$module = $module;\n this.$toggleButton =\n $module && $module.querySelector(\".tna-header__navigation-button\");\n this.$navigation =\n $module && $module.querySelector(\".tna-header__navigation\");\n this.$links =\n $module &&\n this.$navigation &&\n this.$navigation.querySelectorAll(\"[tabindex='0']\");\n this.menuOpened = false;\n this.mql = window.matchMedia(\"(max-width: 48em)\");\n\n if (!this.$module || !this.$toggleButton || !this.$navigation) {\n return;\n }\n\n this.$toggleButton.removeAttribute(\"hidden\");\n this.syncState();\n this.$toggleButton.addEventListener(\"click\", () =>\n this.handleToggleNavigation(),\n );\n if (\"addEventListener\" in this.mql) {\n this.mql.addEventListener(\"change\", () => this.syncState());\n } else {\n this.mql.addListener(() => this.syncState());\n }\n\n this.$module.addEventListener(\"keyup\", (e) => {\n if (e.code === \"Escape\") {\n if (this.menuOpened && this.mql.matches) {\n this.menuOpened = false;\n this.syncState();\n this.$toggleButton.focus();\n }\n }\n });\n }\n\n handleToggleNavigation() {\n this.menuOpened = !this.menuOpened;\n this.syncState();\n }\n\n syncState() {\n if (this.mql.matches) {\n if (this.menuOpened) {\n this.show();\n } else {\n this.hide();\n }\n } else {\n this.show();\n }\n }\n\n show() {\n this.$navigation.classList.add(\"tna-header__navigation--open\");\n this.$navigation.removeAttribute(\"hidden\");\n this.$navigation.setAttribute(\"aria-hidden\", \"false\");\n this.$toggleButton.setAttribute(\"aria-expanded\", \"true\");\n this.$toggleButton.setAttribute(\"title\", \"Close menu\");\n this.$toggleButton.classList.add(\"tna-header__navigation-button--opened\");\n\n for (let i = 0; i < this.$links.length; i++) {\n this.$links[i].setAttribute(\"tabindex\", \"0\");\n }\n }\n\n hide() {\n this.$navigation.classList.remove(\"tna-header__navigation--open\");\n this.$navigation.hidden = true;\n this.$navigation.setAttribute(\"aria-hidden\", \"true\");\n this.$toggleButton.setAttribute(\"aria-expanded\", \"false\");\n this.$toggleButton.setAttribute(\"title\", \"Open menu\");\n this.$toggleButton.classList.remove(\n \"tna-header__navigation-button--opened\",\n );\n\n for (let i = 0; i < this.$links.length; i++) {\n this.$links[i].setAttribute(\"tabindex\", \"-1\");\n }\n }\n}\n","export class ErrorSummary {\n constructor($module) {\n this.$module = $module;\n }\n\n init() {\n if (!this.$module) {\n return;\n }\n\n const disableAutoFocus =\n this.$module.dataset.disableAutofocus === \"true\" || false;\n\n if (!disableAutoFocus) {\n this.setFocus(this.$module);\n }\n\n this.$module.addEventListener(\"click\", (event) => this.handleClick(event));\n }\n\n setFocus($element, options = {}) {\n const isFocusable = $element.getAttribute(\"tabindex\");\n\n if (!isFocusable) {\n $element.setAttribute(\"tabindex\", \"-1\");\n }\n\n /**\n * Handle element focus\n */\n function onFocus() {\n $element.addEventListener(\"blur\", onBlur, { once: true });\n }\n\n /**\n * Handle element blur\n */\n function onBlur() {\n options.onBlur?.call($element);\n\n if (!isFocusable) {\n $element.removeAttribute(\"tabindex\");\n }\n }\n\n // Add listener to reset element on blur, after focus\n $element.addEventListener(\"focus\", onFocus, { once: true });\n\n // Focus element\n options.onBeforeFocus?.call($element);\n $element.focus();\n }\n\n handleClick(event) {\n const $target = event.target;\n if ($target && this.focusTarget($target)) {\n event.preventDefault();\n }\n }\n\n getFragmentFromUrl(url) {\n if (!url.includes(\"#\")) {\n return undefined;\n }\n\n return url.split(\"#\").pop();\n }\n\n focusTarget($target) {\n // If the element that was clicked was not a link, return early\n if (!($target instanceof HTMLAnchorElement)) {\n return false;\n }\n\n const inputId = this.getFragmentFromUrl($target.href);\n if (!inputId) {\n return false;\n }\n\n const $input = document.getElementById(inputId);\n if (!$input) {\n return false;\n }\n\n const $legendOrLabel = this.getAssociatedLegendOrLabel($input);\n if (!$legendOrLabel) {\n return false;\n }\n\n // Scroll the legend or label into view *before* calling focus on the input\n // to avoid extra scrolling in browsers that don't support `preventScroll`\n // (which at time of writing is most of them...)\n $legendOrLabel.scrollIntoView();\n $input.focus({ preventScroll: true });\n\n return true;\n }\n\n /**\n * Get associated legend or label\n *\n * Returns the first element that exists from this list:\n *\n * - The `<legend>` associated with the closest `<fieldset>` ancestor, as long\n * as the top of it is no more than half a viewport height away from the\n * bottom of the input\n * - The first `<label>` that is associated with the input using for=\"inputId\"\n * - The closest parent `<label>`\n *\n * @private\n * @param {Element} $input - The input\n * @returns {Element | null} Associated legend or label, or null if no\n * associated legend or label can be found\n */\n getAssociatedLegendOrLabel($input) {\n const $fieldset = $input.closest(\"fieldset\");\n\n if ($fieldset) {\n const $legends = $fieldset.getElementsByTagName(\"legend\");\n\n if ($legends.length) {\n const $candidateLegend = $legends[0];\n\n // If the input type is radio or checkbox, always use the legend if\n // there is one.\n if (\n $input instanceof HTMLInputElement &&\n ($input.type === \"checkbox\" || $input.type === \"radio\")\n ) {\n return $candidateLegend;\n }\n\n // For other input types, only scroll to the fieldset’s legend (instead\n // of the label associated with the input) if the input would end up in\n // the top half of the screen.\n //\n // This should avoid situations where the input either ends up off the\n // screen, or obscured by a software keyboard.\n const legendTop = $candidateLegend.getBoundingClientRect().top;\n const inputRect = $input.getBoundingClientRect();\n\n // If the browser doesn't support Element.getBoundingClientRect().height\n // or window.innerHeight (like IE8), bail and just link to the label.\n if (inputRect.height && window.innerHeight) {\n const inputBottom = inputRect.top + inputRect.height;\n\n if (inputBottom - legendTop < window.innerHeight / 2) {\n return $candidateLegend;\n }\n }\n }\n }\n\n return (\n document.querySelector(`label[for='${$input.getAttribute(\"id\")}']`) ??\n $input.closest(\"label\")\n );\n }\n}\n","export class GlobalHeader {\n constructor($module) {\n this.$module = $module;\n this.$toggleButton =\n $module && $module.querySelector(\".tna-global-header__navigation-button\");\n this.$navigation =\n $module &&\n $module.querySelector(\".tna-global-header__navigation-wrapper\");\n this.$topNavigation =\n $module &&\n $module.querySelector(\".tna-global-header__top-navigation-wrapper\");\n this.$links =\n $module &&\n ((this.$navigation &&\n this.$navigation.querySelectorAll(\"[tabindex='0']\")) ||\n (this.$topNavigation &&\n this.$topNavigation.querySelectorAll(\"[tabindex='0']\")));\n this.menuOpened = false;\n this.mql = window.matchMedia(\"(max-width: 48em)\");\n\n if (\n !this.$module ||\n !this.$toggleButton ||\n (!this.$navigation && !this.$topNavigation)\n ) {\n return;\n }\n\n this.$toggleButton.removeAttribute(\"hidden\");\n this.syncState();\n this.$toggleButton.addEventListener(\"click\", () =>\n this.handleToggleNavigation(),\n );\n if (\"addEventListener\" in this.mql) {\n this.mql.addEventListener(\"change\", () => this.syncState());\n } else {\n this.mql.addListener(() => this.syncState());\n }\n\n this.$module.addEventListener(\"keyup\", (e) => {\n if (e.code === \"Escape\" && this.mql.matches) {\n if (this.menuOpened) {\n this.menuOpened = false;\n this.syncState();\n this.$toggleButton.focus();\n }\n }\n });\n }\n\n handleToggleNavigation() {\n this.menuOpened = !this.menuOpened;\n this.syncState();\n }\n\n syncState() {\n if (this.mql.matches) {\n if (this.menuOpened) {\n this.show();\n } else {\n this.hide();\n }\n } else {\n this.show();\n }\n }\n\n hide() {\n if (this.$navigation) {\n this.$navigation.hidden = true;\n this.$navigation.setAttribute(\"aria-hidden\", \"true\");\n }\n if (this.$topNavigation) {\n this.$topNavigation.hidden = true;\n this.$topNavigation.setAttribute(\"aria-hidden\", \"true\");\n }\n this.$toggleButton.setAttribute(\"aria-expanded\", \"false\");\n this.$toggleButton.setAttribute(\"title\", \"Open menu\");\n this.$toggleButton.classList.remove(\n \"tna-global-header__navigation-button--opened\",\n );\n for (let i = 0; i < this.$links.length; i++) {\n this.$links[i].setAttribute(\"tabindex\", \"-1\");\n }\n }\n\n show() {\n if (this.$navigation) {\n this.$navigation.hidden = false;\n this.$navigation.setAttribute(\"aria-hidden\", \"false\");\n }\n if (this.$topNavigation) {\n this.$topNavigation.hidden = false;\n this.$topNavigation.setAttribute(\"aria-hidden\", \"false\");\n }\n this.$toggleButton.setAttribute(\"aria-expanded\", \"true\");\n this.$toggleButton.setAttribute(\"title\", \"Close menu\");\n this.$toggleButton.classList.add(\n \"tna-global-header__navigation-button--opened\",\n );\n for (let i = 0; i < this.$links.length; i++) {\n this.$links[i].setAttribute(\"tabindex\", \"0\");\n }\n }\n}\n","import uuidv4 from \"../../lib/uuid.mjs\";\n\nexport class Breadcrumbs {\n constructor($module) {\n this.$module = $module;\n this.$breadcrumbsList =\n $module && $module.querySelector(\".tna-breadcrumbs__list\");\n this.$breadcrumbs =\n $module &&\n this.$breadcrumbsList &&\n $module.querySelectorAll(\".tna-breadcrumbs__item\");\n\n if (!this.$module || !this.$breadcrumbsList || !this.$breadcrumbs) {\n return;\n }\n\n if (\n this.$breadcrumbs.length > 2 &&\n !this.$module.classList.contains(\"tna-breadcrumbs--no-collapse\")\n ) {\n const uniqueId = `tna-breadcrumbs-${uuidv4()}`;\n\n const $expandable = document.createElement(\"li\");\n $expandable.classList.add(\n \"tna-breadcrumbs__item\",\n \"tna-breadcrumbs__item--expandable\",\n );\n $expandable.style.display = \"none\";\n\n const $expandButton = document.createElement(\"button\");\n $expandButton.classList.add(\"tna-breadcrumbs__link\");\n $expandButton.innerHTML =\n \"<span class='tna-!--visually-hidden'>Expand breadcrumbs</span>&hellip;\";\n $expandButton.setAttribute(\"type\", \"button\");\n $expandButton.setAttribute(\"aria-expanded\", \"false\");\n $expandButton.setAttribute(\"aria-controls\", uniqueId);\n $expandButton.addEventListener(\"click\", () => {\n this.$module.classList.remove(\"tna-breadcrumbs--collapsed\");\n $expandable.remove();\n this.$module.setAttribute(\"tabindex\", \"0\");\n this.$module.focus();\n this.$module.setAttribute(\"tabindex\", \"-1\");\n });\n\n $expandable.appendChild($expandButton);\n\n this.$breadcrumbsList.setAttribute(\"id\", uniqueId);\n this.$breadcrumbsList.insertBefore(\n $expandable,\n this.$breadcrumbs[this.$breadcrumbs.length - 2].nextSibling,\n );\n\n this.$module.classList.add(\"tna-breadcrumbs--collapsed\");\n }\n }\n}\n","import Cookies from \"../../lib/cookies.mjs\";\n\nexport { Cookies };\n\nexport class DateInputProgressive {\n constructor($module) {\n this.$module = $module;\n this.$yearWrapper =\n $module && $module.querySelector(\".tna-date-input__item--year\");\n this.$yearInput =\n this.$yearWrapper && this.$yearWrapper.querySelector(\"input\");\n this.$monthWrapper =\n $module && $module.querySelector(\".tna-date-input__item--month\");\n this.$monthInput =\n this.$monthWrapper && this.$monthWrapper.querySelector(\"input\");\n this.$dayWrapper =\n $module && $module.querySelector(\".tna-date-input__item--day\");\n this.$dayInput =\n this.$dayWrapper && this.$dayWrapper.querySelector(\"input\");\n\n if (!this.$module) {\n return;\n }\n\n this.update();\n window.addEventListener(\"pageshow\", () => this.update());\n\n if (this.$yearInput) {\n this.$yearInput.addEventListener(\"keyup\", () => this.update());\n this.$yearInput.addEventListener(\"change\", () => this.update());\n }\n if (this.$monthInput) {\n this.$monthInput.addEventListener(\"keyup\", () => this.update());\n this.$monthInput.addEventListener(\"change\", () => this.update());\n }\n if (this.$dayInput) {\n this.$dayInput.addEventListener(\"keyup\", () => this.update());\n this.$dayInput.addEventListener(\"change\", () => this.update());\n }\n }\n\n update() {\n if (this.isValidYear()) {\n this.showMonth();\n if (this.isValidMonth()) {\n this.showDay();\n } else {\n this.hideDay();\n }\n } else {\n this.hideMonth();\n this.hideDay();\n }\n }\n\n isValidYear() {\n if (!this.$yearInput) {\n return true;\n }\n const yearValue = parseInt(this.$yearInput.value.trim());\n return !isNaN(this.$yearInput.value) && !isNaN(yearValue) && yearValue > 0;\n }\n\n isValidMonth() {\n if (!this.$monthInput) {\n return true;\n }\n const monthRawValue = this.$monthInput.value.trim();\n const monthIntValue = parseInt(monthRawValue);\n const validMonthStrings = [\n \"january\",\n \"february\",\n \"march\",\n \"april\",\n \"may\",\n \"june\",\n \"july\",\n \"august\",\n \"september\",\n \"october\",\n \"november\",\n \"december\",\n \"jan\",\n \"feb\",\n \"mar\",\n \"apr\",\n \"jun\",\n \"jul\",\n \"aug\",\n \"sep\",\n \"oct\",\n \"nov\",\n \"dec\",\n ];\n return (\n (!isNaN(this.$monthInput.value) &&\n !isNaN(monthIntValue) &&\n monthIntValue > 0 &&\n monthIntValue <= 12) ||\n validMonthStrings.includes(monthRawValue.toLowerCase())\n );\n }\n\n showMonth() {\n if (this.$monthWrapper) {\n this.$monthWrapper.removeAttribute(\"hidden\");\n }\n }\n\n hideMonth() {\n if (this.$monthWrapper) {\n this.$monthWrapper.setAttribute(\"hidden\", \"\");\n }\n }\n\n showDay() {\n if (this.$dayWrapper) {\n this.$dayWrapper.removeAttribute(\"hidden\");\n }\n }\n\n hideDay() {\n if (this.$dayWrapper) {\n this.$dayWrapper.setAttribute(\"hidden\", \"\");\n }\n }\n}\n","const getXPathTo = ($element) => {\n if ($element.id !== \"\") {\n return 'id(\"' + $element.id + '\")';\n }\n if ($element === document.body) {\n return $element.tagName;\n }\n let ix = 0;\n if ($element.parentNode) {\n const siblings = $element.parentNode.childNodes;\n for (let i = 0; i < siblings.length; i++) {\n const sibling = siblings[i];\n if (sibling === $element)\n return (\n getXPathTo($element.parentNode) +\n \"/\" +\n $element.tagName +\n \"[\" +\n (ix + 1) +\n \"]\"\n );\n if (sibling.nodeType === 1 && sibling.tagName === $element.tagName) ix++;\n }\n } else {\n return $element.tagName;\n }\n};\n\nconst includesAny = (arr, values) => values.some((v) => arr.includes(v));\n\nconst getClosestHeading = ($element) => {\n let heading = \"\";\n let $search = $element;\n do {\n while ($search.previousElementSibling) {\n $search = $search.previousElementSibling;\n if (\n [\"h1\", \"h2\", \"h3\", \"h4\", \"h5\", \"h6\"].includes($search.tagName) ||\n ($search.classList.length &&\n includesAny(Array.from($search.classList), [\n \"tna-heading-xl\",\n \"tna-heading-l\",\n \"tna-heading-m\",\n \"tna-heading-s\",\n ]))\n ) {\n heading = $search.innerText;\n break;\n }\n }\n $search = $search.parentElement;\n } while ($search.parentElement && !heading);\n return heading;\n};\n\nconst valueGetters = {\n text: ($el) => $el.innerText.replace(/\\n/g, \" \"),\n html: ($el) => $el.innerHTML,\n value: ($el) => $el.value,\n index: ($el, $scope, event, index) => index,\n instance: ($el, $scope, event, index, instance) => instance,\n checked: ($el) => ($el.checked ? \"checked\" : \"unchecked\"),\n expanded: ($el) => {\n const expanded = $el.getAttribute(\"aria-expanded\");\n if (expanded === null) {\n return null;\n }\n return expanded.toString() === \"true\" ? \"opened\" : \"closed\";\n },\n closestHeading: ($el) => getClosestHeading($el),\n xpath: ($el) => getXPathTo($el.target),\n};\n\nexport { getXPathTo, getClosestHeading, valueGetters };\n","import { valueGetters } from \"../../lib/analytics-helpers.mjs\";\n\nexport default [\n {\n scope: \".tna-accordion\",\n areaName: \"accordion\",\n rootEventName: \"select_feature\",\n rootData: {\n data_component_name: \"accordion\",\n },\n events: [\n {\n eventName: \"click\",\n targetElement: \".tna-accordion__summary\",\n on: \"click\",\n data: { state: valueGetters.expanded, value: valueGetters.text },\n rootData: {\n data_link_type: valueGetters.expanded,\n data_link: valueGetters.text,\n data_position: valueGetters.index,\n },\n },\n ],\n },\n];\n","import { valueGetters } from \"../../lib/analytics-helpers.mjs\";\n\nexport default [\n {\n scope: \".tna-breadcrumbs\",\n areaName: \"breadcrumbs\",\n rootEventName: \"select_navigation\",\n rootData: {\n data_component_name: \"breadcrumbs\",\n },\n events: [\n {\n eventName: \"click\",\n targetElement: \"a.tna-breadcrumbs__link\",\n on: \"click\",\n data: { state: \"expand\", value: valueGetters.html },\n rootData: {\n data_link_type: \"breadcrumb_link\",\n data_link: valueGetters.text,\n },\n },\n {\n eventName: \"click\",\n targetElement:\n \".tna-breadcrumbs__item--expandable button.tna-breadcrumbs__link\",\n on: \"click\",\n data: { state: \"expand\", value: valueGetters.html },\n rootData: {\n data_link_type: \"breadcrumb_expand\",\n data_link: valueGetters.text,\n },\n },\n ],\n },\n];\n","import { valueGetters } from \"../../lib/analytics-helpers.mjs\";\n\nexport default [\n {\n scope: \".tna-checkboxes\",\n areaName: \"checkboxes\",\n events: [\n {\n eventName: \"toggle\",\n targetElement: \".tna-checkboxes__item input\",\n on: \"change\",\n data: {\n state: valueGetters.checked,\n // eslint-disable-next-line no-unused-vars\n value: ($el, $scope, event) => $el.parentNode.innerText.trim(),\n // eslint-disable-next-line no-unused-vars\n group: ($el, $scope, event) =>\n $scope\n .closest(\".tna-form__group\")\n ?.querySelector(\".tna-form__heading\")\n ?.innerText?.trim(),\n },\n },\n ],\n },\n];\n","import { valueGetters } from \"../../lib/analytics-helpers.mjs\";\n\nexport default [\n {\n scope: \".tna-details\",\n areaName: \"details\",\n events: [\n {\n eventName: \"click\",\n targetElement: \".tna-details__summary\",\n on: \"click\",\n data: {\n // eslint-disable-next-line no-unused-vars\n state: ($el, $scope, event) => {\n const wasExpanded =\n $scope\n .querySelector(\".tna-details__details\")\n ?.hasAttribute(\"open\") ?? false;\n return wasExpanded ? \"closed\" : \"opened\";\n },\n // eslint-disable-next-line no-unused-vars\n value: valueGetters.text,\n },\n },\n ],\n },\n];\n","import { valueGetters } from \"../../lib/analytics-helpers.mjs\";\n\nexport default [\n {\n scope: \".tna-error-summary\",\n areaName: \"error-summary\",\n events: [\n {\n eventName: \"jump\",\n targetElement: \"a.tna-error-summary__link\",\n on: \"click\",\n data: { value: valueGetters.text },\n },\n ],\n },\n];\n","const getFileDetails = ($el) =>\n JSON.stringify(\n Array.from($el.files).map((file) => ({\n name: file.name,\n size: file.size,\n type: file.type,\n })),\n );\n\nexport default [\n {\n scope: \".tna-file-input\",\n areaName: \"file-input\",\n events: [\n {\n eventName: \"blurred\",\n on: \"blur\",\n data: {\n value: getFileDetails,\n state: ($el) => $el.files.length,\n // eslint-disable-next-line no-unused-vars\n group: ($el, $scope) =>\n $scope\n .closest(\".tna-form__group\")\n ?.querySelector(\".tna-form__heading\")\n ?.innerText?.trim(),\n },\n },\n {\n eventName: \"cancelled\",\n on: \"cancel\",\n data: {\n value: getFileDetails,\n state: ($el) => $el.files.length,\n // eslint-disable-next-line no-unused-vars\n group: ($el, $scope) =>\n $scope\n .closest(\".tna-form__group\")\n ?.querySelector(\".tna-form__heading\")\n ?.innerText?.trim(),\n },\n },\n {\n eventName: \"changed\",\n on: \"change\",\n data: {\n value: getFileDetails,\n state: ($el) => $el.files.length,\n // eslint-disable-next-line no-unused-vars\n group: ($el, $scope) =>\n $scope\n .closest(\".tna-form__group\")\n ?.querySelector(\".tna-form__heading\")\n ?.innerText?.trim(),\n },\n },\n ],\n },\n];\n","import { valueGetters } from \"../../lib/analytics-helpers.mjs\";\n\nexport default [\n {\n scope: \".tna-footer\",\n areaName: \"footer\",\n rootEventName: \"global_navigation\",\n rootData: {\n data_component_name: \"footer\",\n },\n events: [\n {\n eventName: \"link.click\",\n targetElement: \".tna-footer__navigation-block-item-link\",\n on: \"click\",\n data: {\n value: valueGetters.text,\n },\n rootData: {\n data_link_type: \"link\",\n data_section: valueGetters.closestHeading,\n data_link: valueGetters.text,\n },\n },\n {\n eventName: \"social_link.click\",\n targetElement: \".tna-footer__social-item-link\",\n on: \"click\",\n data: {\n value: valueGetters.text,\n },\n rootData: {\n data_link_type: \"icon\",\n data_section: \"Social media\",\n data_link: ($el) => $el.dataset.name,\n },\n },\n {\n eventName: \"legal_link.click\",\n targetElement: \".tna-footer__legal-item-link\",\n on: \"click\",\n data: {\n value: valueGetters.text,\n },\n rootData: {\n data_link_type: \"link\",\n data_section: \"Legal information\",\n data_link: valueGetters.text,\n },\n },\n {\n eventName: \"mailing_list.click\",\n targetElement: \".tna-footer__mailing-list a.tna-button\",\n on: \"click\",\n data: {\n value: valueGetters.text,\n },\n rootData: {\n data_link_type: \"button\",\n data_section: \"Mailing list\",\n data_link: valueGetters.text,\n },\n },\n {\n eventName: \"ogl.click\",\n targetElement: \".tna-footer__licence p a.tna-footer__link\",\n on: \"click\",\n data: {\n value: valueGetters.text,\n },\n rootData: {\n data_link_type: \"link\",\n data_section: \"OGL\",\n data_link: valueGetters.text,\n },\n },\n {\n eventName: \"govuk.click\",\n targetElement: \".tna-footer__govuk-link\",\n on: \"click\",\n data: {\n value: valueGetters.text,\n },\n rootData: {\n data_link_type: \"Logo\",\n data_section: \"GOV.UK\",\n data_link: valueGetters.text,\n },\n },\n {\n eventName: \"theme.change\",\n targetElement: \".tna-footer__theme-selector-button\",\n on: \"click\",\n data: {\n value: valueGetters.value,\n },\n },\n ],\n },\n];\n","import { valueGetters } from \"../../lib/analytics-helpers.mjs\";\n\nexport default [\n {\n scope: \".tna-gallery\",\n areaName: \"gallery\",\n rootEventName: \"select_media\",\n rootData: {\n media_type: \"gallery\",\n media_duration: ($el, $scope) =>\n $scope.querySelectorAll(\".tna-gallery__navigation-item\").length,\n media_provider: \"tna\",\n media_title: ($el, $scope, event, index, instance) =>\n $scope.querySelector(\".tna-gallery__header-inner\")?.innerText?.trim() ||\n `gallery_${instance}`,\n media_progress: ($el, $scope) =>\n (Array.from(\n $scope.querySelectorAll(\".tna-gallery__navigation-item\"),\n ).findIndex(\n ($itemButton) => $itemButton.getAttribute(\"aria-current\") === \"true\",\n ) || -1) + 1,\n },\n events: [\n {\n eventName: \"click\",\n targetElement: \".tna-gallery__navigation-item\",\n on: \"click\",\n data: {\n value: valueGetters.text,\n },\n rootData: {\n data_link: \"image\",\n media_action: \"progress\",\n media_progress: valueGetters.index,\n },\n },\n {\n eventName: \"click\",\n targetElement: \".tna-gallery__navigation-prev\",\n on: \"click\",\n data: {\n value: ($el, $scope) =>\n $scope\n .querySelector(\n \".tna-gallery__item:not([hidden]) .tna-gallery__item-header\",\n )\n ?.innerText?.trim(),\n },\n rootData: {\n data_link: \"previous\",\n media_action: \"progress\",\n },\n },\n {\n eventName: \"click\",\n targetElement: \".tna-gallery__navigation-next\",\n on: \"click\",\n data: {\n value: ($el, $scope) =>\n $scope\n .querySelector(\n \".tna-gallery__item:not([hidden]) .tna-gallery__item-header\",\n )\n ?.innerText?.trim(),\n },\n rootData: {\n data_link: \"next\",\n media_action: \"progress\",\n },\n },\n {\n eventName: \"keypress\",\n on: \"keydown\",\n onCondition: ($el, $scope, event) =>\n [\n \"ArrowLeft\",\n \"ArrowRight\",\n \"ArrowUp\",\n \"ArrowDown\",\n \"End\",\n \"Home\",\n // \"Escape\",\n ].includes(event.key),\n data: {\n value: ($el, $scope, event) => event.key,\n },\n rootData: {\n data_link: \"keypress\",\n media_action: \"progress\",\n },\n },\n {\n eventName: \"enter-fullscreen\",\n targetElement: '.tna-gallery__options button[value=\"enter-fullscreen\"]',\n on: \"click\",\n rootData: {\n data_link: \"enter_full_screen_button\",\n },\n },\n {\n eventName: \"exit-fullscreen\",\n targetElement: '.tna-gallery__options button[value=\"exit-fullscreen\"]',\n on: \"click\",\n rootData: {\n data_link: \"exit_full_screen_button\",\n },\n },\n {\n eventName: \"index\",\n targetElement: '.tna-gallery__options button[value=\"show-index\"]',\n on: \"click\",\n },\n ],\n },\n];\n","import { valueGetters } from \"../../lib/analytics-helpers.mjs\";\n\nexport default [\n {\n scope: \".tna-global-header\",\n areaName: \"header\",\n rootEventName: \"global_navigation\",\n rootData: {\n data_component_name: \"header\",\n },\n events: [\n {\n eventName: \"toggle\",\n targetElement: \".tna-global-header__navigation-button\",\n on: \"click\",\n data: {\n state: valueGetters.expanded,\n },\n rootData: {\n data_link_type: \"mobile_menu\",\n data_link: ($el) => {\n const expanded = $el.getAttribute(\"aria-expanded\");\n if (expanded === null) {\n return null;\n }\n return expanded.toString() === \"true\" ? \"Open menu\" : \"Close menu\";\n },\n data_section: \"Burger menu\",\n },\n },\n {\n eventName: \"logo.click\",\n targetElement: \".tna-global-header__logo\",\n on: \"click\",\n rootData: {\n data_link_type: \"logo\",\n data_link: \"The National Archives\",\n data_section: \"Top navigation and logo\",\n },\n },\n {\n eventName: \"primary_link.click\",\n targetElement: \".tna-global-header__navigation-item-link\",\n on: \"click\",\n data: {\n value: valueGetters.text,\n },\n rootData: {\n data_link_type: \"menu\",\n data_section: valueGetters.text,\n data_position: 1,\n data_link: valueGetters.text,\n },\n },\n {\n eventName: \"secondary_link.click\",\n targetElement: \".tna-global-header__top-navigation-link\",\n on: \"click\",\n data: {\n value: valueGetters.text,\n },\n rootData: {\n data_link_type: \"icon\",\n data_link: valueGetters.text,\n data_section: \"Top navigation and logo\",\n },\n },\n ],\n },\n];\n","import { valueGetters } from \"../../lib/analytics-helpers.mjs\";\n\nexport default [\n {\n scope: \".tna-header\",\n areaName: \"header\",\n events: [\n {\n eventName: \"toggle\",\n targetElement: \".tna-header__navigation-button\",\n on: \"click\",\n data: {\n state: valueGetters.expanded,\n },\n },\n ],\n },\n];\n","import {\n getClosestHeading,\n valueGetters,\n} from \"../../lib/analytics-helpers.mjs\";\n\nexport default [\n {\n scope: \".tna-picture\",\n areaName: \"picture\",\n events: [\n {\n eventName: \"toggle_transcript\",\n targetElement: \".tna-picture__toggle-transcript\",\n on: \"click\",\n data: {\n state: valueGetters.expanded,\n // eslint-disable-next-line no-unused-vars\n value: ($el, $scope, event) => {\n const heading = getClosestHeading($scope);\n const image = $scope.querySelector(\".tna-picture__image\");\n const imageSrc = image.getAttribute(\"src\");\n const imageAlt = image.getAttribute(\"alt\");\n const value = `${imageAlt} (${imageSrc})`;\n return heading ? `${heading} > ${value}` : value;\n },\n },\n },\n ],\n },\n];\n","import { valueGetters } from \"../../lib/analytics-helpers.mjs\";\n\nexport default [\n {\n scope: \".tna-radios\",\n areaName: \"radios\",\n events: [\n {\n eventName: \"toggle\",\n targetElement: \".tna-radios__item input\",\n on: \"change\",\n data: {\n state: valueGetters.checked,\n // eslint-disable-next-line no-unused-vars\n value: ($el, $scope, event) => $el.parentNode.innerText,\n // eslint-disable-next-line no-unused-vars\n group: ($el, $scope, event) =>\n $scope\n .closest(\".tna-form__group\")\n ?.querySelector(\".tna-form__heading\")\n ?.innerText?.trim(),\n },\n },\n ],\n },\n];\n","import { valueGetters } from \"../../lib/analytics-helpers.mjs\";\n\nexport default [\n {\n scope: \".tna-search-field\",\n areaName: \"search-field\",\n events: [\n {\n eventName: \"blurred\",\n targetElement: \".tna-search-field__input\",\n on: \"blur\",\n data: {\n // eslint-disable-next-line no-unused-vars\n value: valueGetters.value,\n // eslint-disable-next-line no-unused-vars\n group: ($el, $scope, event) =>\n $scope.querySelector(\".tna-form__heading\")?.innerText?.trim(),\n },\n },\n ],\n },\n];\n","import { valueGetters } from \"../../lib/analytics-helpers.mjs\";\n\nexport default [\n {\n scope: \".tna-sidebar\",\n areaName: \"sidebar\",\n rootEventName: \"select_navigation\",\n rootData: {\n data_component_name: \"sidebar\",\n data_section: ($el, $scope) =>\n $scope.querySelector(\".tna-sidebar__heading\")?.innerText?.trim(),\n },\n events: [\n {\n eventName: \"click\",\n targetElement: \"a.tna-sidebar__link\",\n on: \"click\",\n rootData: {\n data_link_type: \"sidebar_link\",\n data_link: valueGetters.text,\n data_position: valueGetters.index,\n },\n },\n ],\n },\n];\n","import { valueGetters } from \"../../lib/analytics-helpers.mjs\";\n\nexport default [\n {\n scope: \".tna-text-input\",\n areaName: \"text-input\",\n events: [\n {\n eventName: \"blurred\",\n on: \"blur\",\n data: {\n value: valueGetters.value,\n // eslint-disable-next-line no-unused-vars\n group: ($el, $scope) =>\n $scope\n .closest(\".tna-form__group\")\n ?.querySelector(\".tna-form__heading\")\n ?.innerText?.trim(),\n },\n },\n ],\n },\n];\n","import { valueGetters } from \"../../lib/analytics-helpers.mjs\";\n\nexport default [\n {\n scope: \".tna-textarea\",\n areaName: \"textarea\",\n events: [\n {\n eventName: \"blurred\",\n on: \"blur\",\n data: {\n // eslint-disable-next-line no-unused-vars\n value: valueGetters.value,\n // eslint-disable-next-line no-unused-vars\n group: ($el, $scope, event) =>\n $scope\n .closest(\".tna-form__group\")\n ?.querySelector(\".tna-form__heading\")\n ?.innerText?.trim(),\n },\n },\n ],\n },\n];\n","import Cookies from \"./lib/cookies.mjs\";\nimport {\n getXPathTo,\n getClosestHeading,\n valueGetters,\n} from \"./lib/analytics-helpers.mjs\";\nimport AccordionAnalytics from \"./components/accordion/analytics.js\";\nimport BreadcrumbAnalytics from \"./components/breadcrumbs/analytics.js\";\nimport CheckboxesAnalytics from \"./components/checkboxes/analytics.js\";\nimport DetailsAnalytics from \"./components/details/analytics.js\";\nimport ErrorSummary from \"./components/error-summary/analytics.js\";\nimport FileInputDroppable from \"./components/file-input/analytics.js\";\nimport FooterAnalytics from \"./components/footer/analytics.js\";\nimport GalleryAnalytics from \"./components/gallery/analytics.js\";\nimport GlobalHeaderAnalytics from \"./components/global-header/analytics.js\";\nimport HeaderAnalytics from \"./components/header/analytics.js\";\nimport HeroAnalytics from \"./components/hero/analytics.js\";\nimport PictureAnalytics from \"./components/picture/analytics.js\";\nimport RadiosAnalytics from \"./components/radios/analytics.js\";\nimport SearchFieldAnalytics from \"./components/search-field/analytics.js\";\nimport SidebarAnalytics from \"./components/sidebar/analytics.js\";\nimport TextInputAnalytics from \"./components/text-input/analytics.js\";\nimport TextareaAnalytics from \"./components/textarea/analytics.js\";\n\nconst componentAnalytics = [\n ...AccordionAnalytics,\n ...BreadcrumbAnalytics,\n ...CheckboxesAnalytics,\n ...DetailsAnalytics,\n ...ErrorSummary,\n ...FileInputDroppable,\n ...FooterAnalytics,\n ...GalleryAnalytics,\n ...GlobalHeaderAnalytics,\n ...HeaderAnalytics,\n ...HeroAnalytics,\n ...PictureAnalytics,\n ...RadiosAnalytics,\n ...SearchFieldAnalytics,\n ...SidebarAnalytics,\n ...TextInputAnalytics,\n ...TextareaAnalytics,\n];\n\nclass EventTracker {\n /** @protected */\n cookies = new Cookies();\n\n /** @protected */\n events = [];\n\n /** @protected */\n startTime = new Date();\n\n /** @protected */\n prefix = \"tna\";\n\n /** @protected */\n document = document;\n\n constructor(options = {}) {\n const { prefix = null, documentScope = document } = options;\n if (prefix) {\n this.prefix = prefix;\n }\n if (documentScope) {\n this.document = documentScope;\n }\n }\n\n start(initAll) {\n if (!navigator.doNotTrack || navigator.doNotTrack !== 1) {\n if (this.cookies.isPolicyAccepted(\"usage\")) {\n this.enableTracking();\n }\n this.cookies.on(\"changePolicy\", (policies) => {\n if (Object.hasOwn(policies, \"usage\")) {\n if (policies[\"usage\"]) {\n this.enableTracking();\n } else {\n this.disableTracking();\n }\n }\n });\n if (initAll) {\n this.initAll();\n }\n }\n }\n\n enableTracking() {}\n\n disableTracking() {}\n\n /**\n * Initialise all TNA Frontend component analytics.\n */\n initAll() {\n componentAnalytics.forEach((componentConfig) => {\n this.addListeners(\n componentConfig.scope,\n componentConfig.areaName,\n componentConfig.events,\n componentConfig.rootEventName || \"\",\n componentConfig.rootData || {},\n );\n });\n }\n\n /**\n * Add an event listener.\n * @param {String|HTMLElement} scope - The element to which the listener is scoped.\n * @param {String} areaName - The name of the component to pass on to the tracker.\n * @param {{eventName: String, targetElement: String|undefined, on: String, data: {value: Function|String|undefined, state: Function|String|undefined, group: Function|String|undefined, [String]: String|Integer}, rootData:{[String]: Function|String}}[]} events - The configuration of events to track along with their optional value and state which can be computed.\n * @param {String} rootEventName - The event name to use if specified (prefix).\n * @param {{[String]:String}} rootDefaultData - The default root data to use if specified.\n */\n addListeners(\n scope,\n areaName,\n events,\n rootEventName = \"\",\n rootDefaultData = {},\n ) {\n let scopeArray;\n if (typeof scope === \"string\") {\n scopeArray = Array.from(this.document.querySelectorAll(scope));\n } else if (typeof scope === \"object\") {\n scopeArray = [scope];\n }\n if (!scopeArray) {\n return;\n }\n scopeArray.forEach(($scope, scopeIndex) => {\n events.forEach((eventConfig) => {\n if (!eventConfig.on) {\n return;\n }\n if (eventConfig.targetElement) {\n Array.from(\n $scope.querySelectorAll(eventConfig.targetElement),\n ).forEach(($el, index) =>\n this.attachListener(\n $el,\n $scope,\n rootEventName,\n rootDefaultData,\n eventConfig,\n scope,\n areaName,\n index + 1,\n scopeIndex + 1,\n ),\n );\n } else {\n this.attachListener(\n $scope,\n $scope,\n rootEventName,\n rootDefaultData,\n eventConfig,\n scope,\n areaName,\n 1,\n scopeIndex + 1,\n );\n }\n });\n });\n }\n\n /** @protected */\n generateEventName(areaName, eventConfig) {\n return `${this.prefix}.${areaName}.${eventConfig.eventName || eventConfig.on}`;\n }\n\n /** @protected */\n attachListener(\n $el,\n $scope,\n rootEventName,\n rootDefaultData,\n eventConfig,\n scope,\n areaName,\n index,\n instance,\n ) {\n const {\n on,\n data,\n targetElement,\n rootData = {},\n onCondition = null,\n } = eventConfig;\n $el.addEventListener(on, (event) => {\n const computedValueParameters = [$el, $scope, event, index, instance];\n if (\n onCondition === null ||\n this.computedValue(onCondition, ...computedValueParameters)\n ) {\n this.recordEvent(\n rootEventName\n ? `${this.prefix}.${rootEventName}`\n : this.generateEventName(areaName, eventConfig),\n {\n ...data,\n name: this.generateEventName(areaName, eventConfig),\n value: data?.value\n ? this.computedValue(data.value, ...computedValueParameters)\n : null,\n state: data?.state\n ? this.computedValue(data.state, ...computedValueParameters)\n : null,\n group: data?.group\n ? this.computedValue(data.group, ...computedValueParameters)\n : null,\n xPath: getXPathTo($el),\n targetElement: targetElement,\n timeSincePageLoad: new Date() - this.startTime,\n index,\n instance,\n scope,\n areaName,\n },\n Object.fromEntries(\n Object.entries({ ...rootDefaultData, ...rootData }).map(\n ([key, value]) => [\n key,\n this.computedValue(value, ...computedValueParameters),\n ],\n ),\n ),\n );\n }\n });\n }\n\n /** @protected */\n computedValue(valueOrFunction, $el, $scope, event, index, instance) {\n return typeof valueOrFunction === \"function\"\n ? valueOrFunction.call(this, $el, $scope, event, index, instance)\n : (valueOrFunction ?? null);\n }\n\n /** @protected */\n recordEvent(eventName, data, rootData = {}) {\n this.events.push({\n event: eventName,\n ...data,\n ...rootData,\n });\n }\n\n /** @protected */\n getTnaMetaTags() {\n return Object.fromEntries([\n ...Array.from(\n document.head.querySelectorAll(\n `meta[name^=\"${this.prefix}_root:\"][content]`,\n ),\n ).map(($metaEl) => [\n $metaEl\n .getAttribute(\"name\")\n .replace(new RegExp(`^${this.prefix}_root:`), \"\"),\n $metaEl.getAttribute(\"content\"),\n ]),\n ...Array.from(\n document.head.querySelectorAll(\n `meta[name^=\"${this.prefix}.\"][content]`,\n ),\n ).map(($metaEl) => [\n $metaEl.getAttribute(\"name\"),\n $metaEl.getAttribute(\"content\"),\n ]),\n ]);\n }\n\n /** @protected */\n getUserPreferences() {\n const userPreferences = {};\n userPreferences[`${this.prefix}.pref.prefers-color-scheme`] =\n window.matchMedia?.(\"(prefers-color-scheme: dark)\").matches\n ? \"dark\"\n : \"light\";\n userPreferences[`${this.prefix}.pref.forced-colors`] = window.matchMedia?.(\n \"(forced-colors: active)\",\n ).matches;\n userPreferences[`${this.prefix}.pref.prefers-contrast`] =\n window.matchMedia?.(\"(prefers-contrast: more)\").matches\n ? \"more\"\n : window.matchMedia?.(\"(prefers-contrast: less)\").matches\n ? \"less\"\n : \"normal\";\n userPreferences[`${this.prefix}.pref.prefers-reduced-motion`] =\n window.matchMedia?.(\"(prefers-reduced-motion: reduce)\").matches;\n userPreferences[`${this.prefix}.pref.prefers-reduced-transparency`] =\n window.matchMedia?.(\"(prefers-reduced-transparency: reduce)\").matches;\n return userPreferences;\n }\n}\n\n/**\n * Class to handle Google Analytics 4 reporting.\n * @class GA4\n * @extends EventTracker\n * @constructor\n * @public\n */\nclass GA4 extends EventTracker {\n /** @protected */\n addTrackingCode = true;\n\n /** @protected */\n trackingCodeAdded = false;\n\n /** @protected */\n trackingEnabled = false;\n\n /** @protected */\n gTagId;\n\n constructor(options = {}) {\n if (window.TNAFrontendAnalyticsGA4) {\n return window.TNAFrontendAnalyticsGA4;\n }\n const {\n id = \"\",\n prefix = null,\n initAll = true,\n addTrackingCode = true,\n } = options;\n super({ prefix });\n window.TNAFrontendAnalyticsGA4 = this;\n this.addTrackingCode = addTrackingCode;\n window.dataLayer = window.dataLayer || [];\n if (id) {\n this.gTagId = id;\n this.ga4Disable = `ga-disable-${this.gTagId}`;\n if (!this.cookies.isPolicyAccepted(\"usage\")) {\n window[this.ga4Disable] = true;\n this.cookies.set(this.ga4Disable, \"true\");\n }\n }\n this.start(initAll);\n }\n\n destroy() {\n window.TNAFrontendAnalyticsGA4 = null;\n }\n\n /** @protected */\n recordEvent(eventName, data, rootData = {}) {\n const ga4Data = {\n event: eventName,\n ...Object.fromEntries(\n Object.entries(data).map(([key, value]) => [\n `${this.prefix}.event.${key}`,\n value,\n ]),\n ),\n ...rootData,\n };\n this.pushToDataLayer(ga4Data);\n }\n\n /** @protected */\n gtag() {\n this.pushToDataLayer(arguments);\n }\n\n /** @protected */\n pushToDataLayer(data) {\n window.dataLayer.push(data);\n }\n\n /** @protected */\n enableTracking() {\n if (!this.trackingEnabled) {\n window[this.ga4Disable] = false;\n this.cookies.set(this.ga4Disable, \"false\");\n if (!this.trackingCodeAdded && this.addTrackingCode) {\n if (!this.gTagId) {\n throw Error(\"ID was not specified\");\n }\n this.pushToDataLayer({\n ...this.getTnaMetaTags(),\n ...this.getUserPreferences(),\n \"gtm.start\": new Date().getTime(),\n event: \"gtm.js\",\n });\n const firstScript = document.getElementsByTagName(\"script\")[0];\n const script = document.createElement(\"script\");\n script.async = true;\n script.src = `https://www.googletagmanager.com/gtm.js?id=${this.gTagId}&l=dataLayer`;\n if (firstScript) {\n firstScript.parentNode.insertBefore(script, firstScript);\n } else {\n document.head.appendChild(script);\n }\n this.trackingCodeAdded = true;\n }\n this.trackingEnabled = true;\n }\n }\n\n /** @protected */\n disableTracking() {\n if (this.trackingEnabled) {\n window[this.ga4Disable] = true;\n this.cookies.set(this.ga4Disable, \"true\");\n Object.keys(this.cookies.all).forEach((key) => {\n if (key.startsWith(\"_ga\")) {\n this.cookies.delete(key);\n }\n });\n this.trackingEnabled = false;\n }\n }\n}\n\nconst ga4Id = document.documentElement.dataset.ga4;\nif (ga4Id) {\n new GA4({ id: ga4Id });\n}\n\nconst helpers = { getXPathTo, getClosestHeading, valueGetters };\n\nexport { EventTracker, GA4, helpers };\n","export default [\n {\n scope: \".tna-hero\",\n areaName: \"hero\",\n events: [\n {\n eventName: \"toggle_caption\",\n targetElement: \".tna-hero__details-summary\",\n on: \"click\",\n data: {\n // eslint-disable-next-line no-unused-vars\n state: ($el, $scope, event) => {\n const wasExpanded =\n $scope\n .querySelector(\".tna-hero__details\")\n ?.hasAttribute(\"open\") ?? false;\n return wasExpanded ? \"closed\" : \"opened\";\n },\n // eslint-disable-next-line no-unused-vars\n value: ($el, $scope, event) =>\n $scope.querySelector(\"img[alt]\")?.getAttribute(\"alt\"),\n },\n },\n ],\n },\n];\n","export class TextInput {\n constructor($module) {\n this.$module = $module;\n this.$input = $module && $module.querySelector(\".tna-text-input\");\n\n if (!this.$module || !this.$input) {\n return;\n }\n\n if (this.$input.getAttribute(\"type\") === \"password\") {\n this.$textInputWrapper = document.createElement(\"div\");\n this.$textInputWrapper.classList.add(\"tna-text-input-wrapper\");\n\n this.$textInputPasswordToggle = document.createElement(\"button\");\n this.$textInputPasswordToggle.setAttribute(\"type\", \"button\");\n this.$textInputPasswordToggle.classList.add(\n \"tna-button\",\n \"tna-button--small\",\n \"tna-button--icon-only\",\n );\n this.$textInputPasswordToggle.setAttribute(\n \"aria-controls\",\n this.$input.id,\n );\n this.updateTogglePasswordButtonText();\n\n this.$textInputWrapper.appendChild(this.$input);\n this.$textInputWrapper.appendChild(this.$textInputPasswordToggle);\n this.$module.appendChild(this.$textInputWrapper);\n\n this.$textInputPasswordToggle.addEventListener(\"click\", () => {\n this.togglePasswordType();\n this.$input.focus();\n });\n }\n }\n\n togglePasswordType() {\n if (this.$input.getAttribute(\"type\") === \"password\") {\n this.$input.setAttribute(\"type\", \"text\");\n } else {\n this.$input.setAttribute(\"type\", \"password\");\n }\n this.updateTogglePasswordButtonText();\n }\n\n updateTogglePasswordButtonText() {\n if (this.$input.getAttribute(\"type\") === \"password\") {\n this.$textInputPasswordToggle.innerHTML = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\" height=\"16\" aria-hidden=\"true\" focusable=\"false\"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d=\"M288 32c-80.8 0-145.5 36.8-192.6 80.6C48.6 156 17.3 208 2.5 243.7c-3.3 7.9-3.3 16.7 0 24.6C17.3 304 48.6 356 95.4 399.4C142.5 443.2 207.2 480 288 480s145.5-36.8 192.6-80.6c46.8-43.5 78.1-95.4 93-131.1c3.3-7.9 3.3-16.7 0-24.6c-14.9-35.7-46.2-87.7-93-131.1C433.5 68.8 368.8 32 288 32zM144 256a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm144-64c0 35.3-28.7 64-64 64c-7.1 0-13.9-1.2-20.3-3.3c-5.5-1.8-11.9 1.6-11.7 7.4c.3 6.9 1.3 13.8 3.2 20.7c13.7 51.2 66.4 81.6 117.6 67.9s81.6-66.4 67.9-117.6c-11.1-41.5-47.8-69.4-88.6-71.1c-5.8-.2-9.2 6.1-7.4 11.7c2.1 6.4 3.3 13.2 3.3 20.3z\"/></svg>Show password`;\n this.$textInputPasswordToggle.setAttribute(\"title\", \"Show password\");\n this.$textInputPasswordToggle.setAttribute(\"aria-label\", \"Show password\");\n } else {\n this.$textInputPasswordToggle.innerHTML = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\" height=\"16\" aria-hidden=\"true\" focusable=\"false\"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d=\"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L525.6 386.7c39.6-40.6 66.4-86.1 79.9-118.4c3.3-7.9 3.3-16.7 0-24.6c-14.9-35.7-46.2-87.7-93-131.1C465.5 68.8 400.8 32 320 32c-68.2 0-125 26.3-169.3 60.8L38.8 5.1zM223.1 149.5C248.6 126.2 282.7 112 320 112c79.5 0 144 64.5 144 144c0 24.9-6.3 48.3-17.4 68.7L408 294.5c8.4-19.3 10.6-41.4 4.8-63.3c-11.1-41.5-47.8-69.4-88.6-71.1c-5.8-.2-9.2 6.1-7.4 11.7c2.1 6.4 3.3 13.2 3.3 20.3c0 10.2-2.4 19.8-6.6 28.3l-90.3-70.8zM373 389.9c-16.4 6.5-34.3 10.1-53 10.1c-79.5 0-144-64.5-144-144c0-6.9 .5-13.6 1.4-20.2L83.1 161.5C60.3 191.2 44 220.8 34.5 243.7c-3.3 7.9-3.3 16.7 0 24.6c14.9 35.7 46.2 87.7 93 131.1C174.5 443.2 239.2 480 320 480c47.8 0 89.9-12.9 126.2-32.5L373 389.9z\"/></svg></i>Hide password`;\n this.$textInputPasswordToggle.setAttribute(\"title\", \"Hide password\");\n this.$textInputPasswordToggle.setAttribute(\"aria-label\", \"Hide password\");\n }\n }\n}\n","import Cookies from \"../../lib/cookies.mjs\";\n\nexport class Footer {\n constructor($module) {\n this.$module = $module;\n this.$themeSelector =\n $module && $module.querySelector(\".tna-footer__theme-selector\");\n this.$tnaTemplate = document.querySelector(\".tna-template\");\n\n if (!this.$module || !this.$themeSelector || !this.$tnaTemplate) {\n return;\n }\n\n this.$themeSelectorButtons = this.$themeSelector.querySelectorAll(\n \"button.tna-footer__theme-selector-button[value]\",\n );\n\n Array.from(this.$themeSelectorButtons).forEach(($themeSelectorButton) => {\n $themeSelectorButton.addEventListener(\"click\", (e) => {\n const $button = e.target;\n this.setTheme($button.value);\n this.selectThemeSelectorButton($button);\n });\n });\n\n this.cookies = new Cookies();\n if (this.cookies.isPolicyAccepted(\"settings\")) {\n this.showThemeSelector();\n }\n this.cookies.on(\"changePolicy\", (data) => {\n if (Object.hasOwn(data, \"settings\")) {\n if (data.settings === true) {\n this.showThemeSelector();\n } else {\n this.cookies.delete(\"theme\");\n this.hideThemeSelector();\n }\n }\n });\n }\n\n showThemeSelector() {\n this.$themeSelector.removeAttribute(\"hidden\");\n if (this.cookies.exists(\"theme\")) {\n const $currentThemeButton = Array.from(this.$themeSelectorButtons).find(\n ($button) => $button.value === this.cookies.get(\"theme\"),\n );\n if ($currentThemeButton) {\n this.selectThemeSelectorButton($currentThemeButton);\n }\n }\n }\n\n hideThemeSelector() {\n this.$themeSelector.setAttribute(\"hidden\", \"\");\n }\n\n setTheme(theme) {\n if (theme === \"light\") {\n this.$tnaTemplate.classList.remove(\n \"tna-template--system-theme\",\n \"tna-template--dark-theme\",\n );\n } else if (theme === \"dark\") {\n this.$tnaTemplate.classList.remove(\"tna-template--system-theme\");\n this.$tnaTemplate.classList.add(`tna-template--dark-theme`);\n } else if (theme === \"system\") {\n this.$tnaTemplate.classList.remove(\"tna-template--dark-theme\");\n this.$tnaTemplate.classList.add(`tna-template--system-theme`);\n } else {\n return;\n }\n this.cookies.set(\"theme\", theme);\n }\n\n selectThemeSelectorButton($selectedButton) {\n Array.from(this.$themeSelectorButtons).forEach(($button) => {\n if ($button.value === $selectedButton.value) {\n $button.classList.remove(\"tna-button--plain\");\n $button.setAttribute(\"aria-current\", true);\n } else {\n $button.classList.add(\"tna-button--plain\");\n $button.removeAttribute(\"aria-current\");\n }\n });\n }\n}\n","export class Accordion {\n constructor($module) {\n this.$module = $module;\n this.$items = $module && $module.querySelectorAll(\".tna-accordion__item\");\n if (!this.$module || !this.$items) {\n return;\n }\n\n this.allowMultipleItemsOpen =\n this.$module.dataset[\"multiselectable\"] === \"true\";\n\n this.$items.forEach(($item) => this.initItem($item));\n this.initState();\n }\n\n initItem($item) {\n const $heading = $item.querySelector(\".tna-accordion__heading\");\n const $content = $item.querySelector(\".tna-accordion__body\");\n\n if (!$heading || !$content) {\n return;\n }\n\n $item.classList.add(\"tna-accordion__details\");\n $item.classList.remove(\"tna-accordion__item\");\n\n $heading.removeAttribute(\"class\");\n\n $content.classList.add(\"tna-accordion__content\");\n $content.classList.remove(\"tna-accordion__body\");\n $content.setAttribute(\"hidden\", \"\");\n\n const $headingButton = document.createElement(\"button\");\n $headingButton.classList.add(\"tna-accordion__summary\");\n $headingButton.setAttribute(\"type\", \"button\");\n $headingButton.setAttribute(\"aria-controls\", $content.id);\n $headingButton.innerText = $heading.innerText;\n $heading.innerText = \"\";\n $heading.appendChild($headingButton);\n\n $headingButton.addEventListener(\"click\", () => {\n const isOpen = $headingButton.getAttribute(\"aria-expanded\") === \"true\";\n if (isOpen) {\n this.closeItem($item);\n } else {\n this.openItem($item);\n }\n });\n }\n\n initState() {\n this.$items.forEach(($item) => {\n if ($item.dataset[\"isopen\"] === \"true\") {\n this.openItem($item);\n } else {\n this.closeItem($item);\n }\n $item.removeAttribute(\"data-isopen\");\n });\n }\n\n openItem($item) {\n if (!this.allowMultipleItemsOpen) {\n this.closeAllItemsExcept($item);\n }\n const $headingButton = $item.querySelector(\".tna-accordion__summary\");\n const $content = $item.querySelector(\".tna-accordion__content\");\n $headingButton.setAttribute(\"aria-expanded\", \"true\");\n $headingButton.setAttribute(\n \"aria-label\",\n `${$headingButton.innerText.trim()}, Hide this section`,\n );\n $content.removeAttribute(\"hidden\");\n // $content.setAttribute(\"tabindex\", \"0\");\n }\n\n closeItem($item) {\n const $headingButton = $item.querySelector(\".tna-accordion__summary\");\n const $content = $item.querySelector(\".tna-accordion__content\");\n $headingButton.setAttribute(\"aria-expanded\", \"false\");\n $headingButton.setAttribute(\n \"aria-label\",\n `${$headingButton.innerText.trim()}, Show this section`,\n );\n $content.setAttribute(\"hidden\", \"\");\n // $content.setAttribute(\"tabindex\", \"-1\");\n }\n\n closeAllItemsExcept($excludeItem) {\n Array.from(this.$items)\n .filter(\n ($item) =>\n $item.querySelector(\".tna-accordion__summary\") !== $excludeItem &&\n $item\n .querySelector(\".tna-accordion__summary\")\n .getAttribute(\"aria-expanded\") === \"true\",\n )\n .forEach(($item) => this.closeItem($item));\n }\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};"],"names":["root","factory","exports","module","define","amd","self","CookieBanner","$module","_this","_classCallCheck","this","$acceptButton","querySelector","$rejectButton","$prompt","$acceptedMessage","$rejectedMessage","$closeButtons","querySelectorAll","cookies","Cookies","newInstance","cookiePreferencesSetKey","dataset","preferencesKey","completePoliciesOnInit","exists","hasValue","removeAttribute","addEventListener","accept","reject","key","value","setAttribute","complete","focus","acceptAllPolicies","rejectAllPolicies","_this2","set","forEach","$closeButton","close","Tabs","$tabList","$tabListItemLinks","$tabItems","length","currentTabIndex","init","classList","add","$tabListItemLink","tabPanelID","getAttribute","$tabPanel","document","getElementById","id","e","handleItemLinkClick","switchTabByIndex","handleItemLinkKeyDown","itemLinkClickEvent","preventDefault","targetItem","currentTarget","switchTabByID","itemLinkKeyDownEvent","preventDefaultKeyAction","previousTab","nextTab","stopPropagation","newIndex","switchFocus","arguments","undefined","index","$tabItem","targetId","Array","from","findIndex","FileInputDroppable","$input","acceptMutltipleFiles","hasAttribute","$droppableArea","createElement","insertBefore","appendChild","$pseudoSelectFileText","textContent","concat","$droppableButtons","$pseudoSelectFileButton","$pseudoDropFileButton","$droppableAreaAriaLabel","showDropTarget","hideDropTarget","onChange","dataTransfer","hasNoTypesInfo","types","isDraggingFiles","some","type","event","updateAriaLabel","isContainingFiles","items","remove","_files$","files","name","window","TNAFrontendCookies","TNAFrontendCookieEvents","CookieEventHandler","_createClass","_defineProperty","callback","Object","hasOwn","events","_toConsumableArray","oneTimeEvents","data","eventToTrigger","call","i","splice","tnaCookiePolicies","options","defaultDomain","defaultPath","secure","policiesKey","_options$newInstance","defaultAge","_options$noInit","noInit","documentElement","tnaCookiesDomain","tnaCookiesPath","tnaCookiesInsecure","tnaCookiesPoliciesKey","parseInt","tnaCookiesDefaultAge","keys","policies","every","policy","includes","existingPolicies","filteredExistingPolicies","fromEntries","filter","map","savePolicies","_objectSpread","usage","settings","marketing","essential","get","deserialised","cookie","split","x","parts","trim","JSON","parse","all","decodeURIComponent","_options$maxAge","maxAge","_options$sameSite","sameSite","_options$domain","domain","_options$path","path","_options$secure","_options$session","session","encodeURIComponent","trigger","_this3","setPolicy","accepted","allPolicies","k","toLowerCase","stringify","on","once","initAll","$scope","scope","HTMLElement","$body","onFirstTouch","removeEventListener","$accordion","Accordion","$breadcrumbs","Breadcrumbs","$cookieBanner","$dateInput","DateInputProgressive","$errorSummary","ErrorSummary","$fileInput","$footer","Footer","$gallery","Gallery","$globalHeader","GlobalHeader","$header","Header","$picture","Picture","$skipLink","SkipLink","$tabModule","$textInput","TextInput","checkTableForScroll","$tableWrapper","scrollable","scrollWidth","clientWidth","$tableCaption","$tableWrappers","matchMedia","evt","matches","wasClosed","replace","c","crypto","getRandomValues","Uint8Array","toString","linkedElementId","pop","$linkedElement","focusLinkedElement","linkedElementListener","removeFocusProperties","$itemsContainer","$items","$navigation","$navigationItems","$options","$navigationButtons","$showIndex","$enterFullscreen","$exitFullscreen","$navigationButtonPrev","$navigationButtonNext","syncFullScreen","setup","allowGridIndex","showIndex","currentId","showItem","_this$$showIndex","_this$$navigationButt","_this$$navigationButt2","_this$$navigationButt3","_this$$enterFullscree","_this$$exitFullscreen","_this$$enterFullscree2","$item","_$item$querySelector","showPreviousItem","showNextItem","showFirstItem","showLastItem","fullscreenEnabled","enterFullScreen","exitFullScreen","$liveRegion","prepend","_this$$showIndex2","_this$$showIndex3","isFullScreen","scrollIntoView","block","getCurrentItemIndex","_this4","nextIndexToShow","fullscreenElement","requestFullscreen","exitFullscreen","$imageWrapper","$transcriptToggle","$transcript","transcriptOpened","openLabel","informationLabelOpen","closeLabel","informationLabelClose","uniqueId","uuidv4","innerText","toggleTranscript","$toggleButton","$links","menuOpened","mql","syncState","handleToggleNavigation","addListener","code","show","hide","hidden","disableAutofocus","setFocus","handleClick","$element","_options$onBeforeFocu","isFocusable","onBlur","_options$onBlur","onBeforeFocus","$target","target","focusTarget","url","HTMLAnchorElement","inputId","getFragmentFromUrl","href","$legendOrLabel","getAssociatedLegendOrLabel","preventScroll","_document$querySelect","$fieldset","closest","$legends","getElementsByTagName","$candidateLegend","HTMLInputElement","legendTop","getBoundingClientRect","top","inputRect","height","innerHeight","$topNavigation","$breadcrumbsList","contains","$expandable","style","display","$expandButton","innerHTML","nextSibling","$yearWrapper","$yearInput","$monthWrapper","$monthInput","$dayWrapper","$dayInput","update","isValidYear","showMonth","isValidMonth","showDay","hideDay","hideMonth","yearValue","isNaN","monthRawValue","monthIntValue","getXPathTo","body","tagName","ix","parentNode","siblings","childNodes","sibling","nodeType","includesAny","arr","values","v","getClosestHeading","heading","$search","previousElementSibling","parentElement","valueGetters","text","$el","html","instance","checked","expanded","closestHeading","xpath","areaName","rootEventName","rootData","data_component_name","eventName","targetElement","state","data_link_type","data_link","group","_$scope$closest","_$scope$querySelector","_$scope$querySelector2","getFileDetails","file","size","_$scope$closest2","_$scope$closest3","data_section","media_type","media_duration","media_provider","media_title","media_progress","$itemButton","media_action","_$scope$querySelector3","onCondition","data_position","image","imageSrc","imageAlt","componentAnalytics","BreadcrumbAnalytics","CheckboxesAnalytics","DetailsAnalytics","FooterAnalytics","GalleryAnalytics","GlobalHeaderAnalytics","HeaderAnalytics","PictureAnalytics","RadiosAnalytics","SearchFieldAnalytics","SidebarAnalytics","TextInputAnalytics","TextareaAnalytics","EventTracker","Date","_options$prefix","prefix","_options$documentScop","documentScope","navigator","doNotTrack","isPolicyAccepted","enableTracking","disableTracking","componentConfig","addListeners","scopeArray","rootDefaultData","_typeof","scopeIndex","eventConfig","attachListener","_eventConfig$rootData","_eventConfig$onCondit","computedValueParameters","computedValue","apply","recordEvent","generateEventName","xPath","timeSincePageLoad","startTime","entries","_ref","_ref2","_slicedToArray","valueOrFunction","push","_this5","head","$metaEl","RegExp","_window$matchMedia","_window","_window$matchMedia2","_window2","_window$matchMedia3","_window3","_window$matchMedia4","_window4","_window$matchMedia5","_window5","_window$matchMedia6","_window6","userPreferences","GA4","_EventTracker2","_this6","TNAFrontendAnalyticsGA4","_possibleConstructorReturn","_options$id","_options$prefix2","_options$initAll","_options$addTrackingC","addTrackingCode","dataLayer","gTagId","ga4Disable","start","_inherits","_this7","ga4Data","_ref3","_ref4","pushToDataLayer","trackingEnabled","trackingCodeAdded","Error","getTnaMetaTags","getUserPreferences","getTime","firstScript","script","async","src","_this8","startsWith","ga4Id","ga4","helpers","$textInputWrapper","$textInputPasswordToggle","updateTogglePasswordButtonText","togglePasswordType","$themeSelector","$tnaTemplate","$themeSelectorButtons","$themeSelectorButton","$button","setTheme","selectThemeSelectorButton","showThemeSelector","hideThemeSelector","$currentThemeButton","find","theme","$selectedButton","allowMultipleItemsOpen","initItem","initState","$heading","$content","$headingButton","closeItem","openItem","closeAllItemsExcept","$excludeItem","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","d","definition","o","defineProperty","enumerable","obj","prop","prototype","hasOwnProperty","r","Symbol","toStringTag"],"sourceRoot":""}