@nationalarchives/frontend 0.32.0 → 0.33.1
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.
- package/nationalarchives/all+analytics.js +1 -1
- package/nationalarchives/all+analytics.js.map +1 -1
- package/nationalarchives/all.css +1 -1
- package/nationalarchives/all.css.map +1 -1
- package/nationalarchives/all.js +1 -1
- package/nationalarchives/all.js.map +1 -1
- package/nationalarchives/analytics.js.map +1 -1
- package/nationalarchives/components/accordion/accordion.css +1 -1
- package/nationalarchives/components/accordion/accordion.css.map +1 -1
- package/nationalarchives/components/accordion/accordion.js +1 -1
- package/nationalarchives/components/accordion/accordion.js.map +1 -1
- package/nationalarchives/components/back-link/back-link.css +1 -1
- package/nationalarchives/components/back-link/back-link.css.map +1 -1
- package/nationalarchives/components/breadcrumbs/breadcrumbs.css +1 -1
- package/nationalarchives/components/breadcrumbs/breadcrumbs.css.map +1 -1
- package/nationalarchives/components/breadcrumbs/breadcrumbs.js.map +1 -1
- package/nationalarchives/components/button/button.css +1 -1
- package/nationalarchives/components/button/button.css.map +1 -1
- package/nationalarchives/components/card/card.css +1 -1
- package/nationalarchives/components/card/card.css.map +1 -1
- package/nationalarchives/components/checkboxes/checkboxes.css +1 -1
- package/nationalarchives/components/checkboxes/checkboxes.css.map +1 -1
- package/nationalarchives/components/compound-filters/compound-filters.css +1 -1
- package/nationalarchives/components/compound-filters/compound-filters.css.map +1 -1
- package/nationalarchives/components/cookie-banner/cookie-banner.css +1 -1
- package/nationalarchives/components/cookie-banner/cookie-banner.js.map +1 -1
- package/nationalarchives/components/cookie-banner/macro-options.json +2 -1
- package/nationalarchives/components/date-input/date-input.css +1 -1
- package/nationalarchives/components/date-input/date-input.css.map +1 -1
- package/nationalarchives/components/date-input/date-input.js.map +1 -1
- package/nationalarchives/components/date-search/date-search.css +1 -1
- package/nationalarchives/components/date-search/date-search.css.map +1 -1
- package/nationalarchives/components/details/details.css +1 -1
- package/nationalarchives/components/details/details.css.map +1 -1
- package/nationalarchives/components/error-summary/error-summary.css +1 -1
- package/nationalarchives/components/error-summary/error-summary.css.map +1 -1
- package/nationalarchives/components/error-summary/error-summary.js.map +1 -1
- package/nationalarchives/components/fieldset/fieldset.css +1 -1
- package/nationalarchives/components/fieldset/fieldset.css.map +1 -1
- package/nationalarchives/components/file-input/file-input.css +1 -1
- package/nationalarchives/components/file-input/file-input.css.map +1 -1
- package/nationalarchives/components/file-input/file-input.js.map +1 -1
- package/nationalarchives/components/files-list/files-list.css +1 -1
- package/nationalarchives/components/files-list/files-list.css.map +1 -1
- package/nationalarchives/components/footer/fixtures.json +20 -2
- package/nationalarchives/components/footer/footer.css +1 -1
- package/nationalarchives/components/footer/footer.css.map +1 -1
- package/nationalarchives/components/footer/footer.js +1 -1
- package/nationalarchives/components/footer/footer.js.map +1 -1
- package/nationalarchives/components/footer/footer.mjs +44 -16
- package/nationalarchives/components/footer/footer.scss +34 -0
- package/nationalarchives/components/footer/macro-options.json +6 -0
- package/nationalarchives/components/footer/template.njk +13 -1
- package/nationalarchives/components/gallery/gallery.css +1 -1
- package/nationalarchives/components/gallery/gallery.css.map +1 -1
- package/nationalarchives/components/gallery/gallery.js.map +1 -1
- package/nationalarchives/components/global-header/global-header.css +1 -1
- package/nationalarchives/components/global-header/global-header.css.map +1 -1
- package/nationalarchives/components/global-header/global-header.js.map +1 -1
- package/nationalarchives/components/header/header.css +1 -1
- package/nationalarchives/components/header/header.css.map +1 -1
- package/nationalarchives/components/header/header.js.map +1 -1
- package/nationalarchives/components/hero/hero.css +1 -1
- package/nationalarchives/components/hero/hero.css.map +1 -1
- package/nationalarchives/components/index-grid/index-grid.css +1 -1
- package/nationalarchives/components/index-grid/index-grid.css.map +1 -1
- package/nationalarchives/components/pagination/fixtures.json +27 -13
- package/nationalarchives/components/pagination/macro-options.json +12 -18
- package/nationalarchives/components/pagination/pagination.css +1 -1
- package/nationalarchives/components/pagination/pagination.css.map +1 -1
- package/nationalarchives/components/pagination/pagination.scss +79 -37
- package/nationalarchives/components/pagination/template.njk +9 -12
- package/nationalarchives/components/panel/panel.css +1 -1
- package/nationalarchives/components/panel/panel.css.map +1 -1
- package/nationalarchives/components/phase-banner/phase-banner.css +1 -1
- package/nationalarchives/components/phase-banner/phase-banner.css.map +1 -1
- package/nationalarchives/components/picture/picture.css +1 -1
- package/nationalarchives/components/picture/picture.css.map +1 -1
- package/nationalarchives/components/picture/picture.js.map +1 -1
- package/nationalarchives/components/quick-filters/quick-filters.css +1 -1
- package/nationalarchives/components/quick-filters/quick-filters.css.map +1 -1
- package/nationalarchives/components/radios/radios.css +1 -1
- package/nationalarchives/components/radios/radios.css.map +1 -1
- package/nationalarchives/components/search-field/search-field.css +1 -1
- package/nationalarchives/components/search-field/search-field.css.map +1 -1
- package/nationalarchives/components/secondary-navigation/secondary-navigation.css +1 -1
- package/nationalarchives/components/secondary-navigation/secondary-navigation.css.map +1 -1
- package/nationalarchives/components/select/select.css +1 -1
- package/nationalarchives/components/select/select.css.map +1 -1
- package/nationalarchives/components/sidebar/fixtures.json +1 -1
- package/nationalarchives/components/sidebar/sidebar.css +1 -1
- package/nationalarchives/components/sidebar/sidebar.css.map +1 -1
- package/nationalarchives/components/sidebar/template.njk +1 -1
- package/nationalarchives/components/skip-link/skip-link.css +1 -1
- package/nationalarchives/components/skip-link/skip-link.css.map +1 -1
- package/nationalarchives/components/skip-link/skip-link.js +1 -1
- package/nationalarchives/components/skip-link/skip-link.js.map +1 -1
- package/nationalarchives/components/skip-link/skip-link.mjs +1 -1
- package/nationalarchives/components/tabs/tabs.css +1 -1
- package/nationalarchives/components/tabs/tabs.css.map +1 -1
- package/nationalarchives/components/tabs/tabs.js.map +1 -1
- package/nationalarchives/components/text-input/text-input.css +1 -1
- package/nationalarchives/components/text-input/text-input.css.map +1 -1
- package/nationalarchives/components/text-input/text-input.js.map +1 -1
- package/nationalarchives/components/textarea/textarea.css +1 -1
- package/nationalarchives/components/textarea/textarea.css.map +1 -1
- package/nationalarchives/components/warning/warning.css +1 -1
- package/nationalarchives/components/warning/warning.css.map +1 -1
- package/nationalarchives/error-page.css +1 -1
- package/nationalarchives/error-page.css.map +1 -1
- package/nationalarchives/ie.css +1 -1
- package/nationalarchives/prototype-kit.css +1 -1
- package/nationalarchives/prototype-kit.css.map +1 -1
- package/nationalarchives/tools/_spacing.scss +21 -5
- package/nationalarchives/utilities/_reset.scss +5 -16
- package/nationalarchives/utilities/lists/_index.scss +106 -162
- package/nationalarchives/utilities/tables/_index.scss +5 -4
- 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/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/tables.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.policiesCorrectOnInit) {\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.cookies.acceptAllPolicies();\n this.$acceptedMessage.removeAttribute(\"hidden\");\n this.$acceptedMessage.setAttribute(\"tabindex\", \"0\");\n this.$acceptedMessage.focus();\n this.$acceptedMessage.addEventListener(\"blur\", () => {\n this.$acceptedMessage.removeAttribute(\"tabindex\");\n });\n }\n\n reject() {\n this.$prompt.setAttribute(\"hidden\", \"\");\n this.complete();\n this.cookies.rejectAllPolicies();\n this.$rejectedMessage.removeAttribute(\"hidden\");\n this.$rejectedMessage.setAttribute(\"tabindex\", \"0\");\n this.$rejectedMessage.focus();\n this.$rejectedMessage.addEventListener(\"blur\", () => {\n this.$rejectedMessage.removeAttribute(\"tabindex\");\n });\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.$body = $module && $module.querySelector(\".tna-form-item__body\");\n this.$input = this.$body && this.$body.querySelector(\".tna-file-input\");\n\n if (!this.$module || !this.$body || !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.$body.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 debug = false;\n\n constructor(debug = false) {\n this.debug = debug;\n if (window.TNAFrontendCookieEvents) {\n this.log(\"Using existing TNAFrontendCookieEvents instance\");\n return window.TNAFrontendCookieEvents;\n }\n window.TNAFrontendCookieEvents = this;\n }\n\n log(...args) {\n if (this.debug) {\n console.log(\"[TNA Frontend Cookie Events]\", ...args);\n }\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.log(`Triggering event: ${event}`, data);\n this.events[event].forEach((eventToTrigger) =>\n eventToTrigger.call(this, data),\n );\n }\n if (Object.hasOwn(this.oneTimeEvents, event)) {\n this.log(`Triggering one-time event: ${event}`, data);\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 policiesCorrectOnInit = false;\n /** @protected */\n debug = document.documentElement.dataset.tnaFrontendDebug === \"true\";\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 {Number} [options.defaultAge] - The default age of non-session cookies.\n * @param {String} [options.newInstance=false] - Create a fresh instance of the cookie class.\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 defaultAge,\n newInstance = false,\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 window.location.hostname;\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(this.debug);\n this.policiesCorrectOnInit =\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.policiesCorrectOnInit && !noInit) {\n this.init();\n }\n this.log({\n defaultDomain: this.defaultDomain,\n defaultPath: this.defaultPath,\n secure: this.secure,\n policiesKey: this.policiesKey,\n defaultAge: this.defaultAge,\n policiesCorrectOnInit: this.policiesCorrectOnInit,\n });\n if (!newInstance && !window.TNAFrontendCookies) {\n window.TNAFrontendCookies = this;\n }\n }\n\n /** @protected */\n init() {\n const existingPolicies = this.policies;\n this.log(\"Existing policies on init:\", existingPolicies);\n const filteredExistingPolicies = Object.fromEntries(\n Object.keys(existingPolicies)\n .filter((policy) => tnaCookiePolicies.includes(policy))\n .map((policy) => [policy, existingPolicies[policy]]),\n );\n if (Object.keys(filteredExistingPolicies).length > 0) {\n this.log(\"Filtered existing policies:\", filteredExistingPolicies);\n }\n this.savePolicies({\n usage: false,\n settings: false,\n marketing: false,\n ...filteredExistingPolicies,\n essential: true,\n });\n }\n\n log(...args) {\n if (this.debug) {\n console.log(\"[TNA Frontend Cookies]\", ...args, this.all);\n }\n }\n\n destroyInstance() {\n this.log(\"Destroying TNAFrontendCookies instance\");\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)}; domain=${domain}; samesite=${sameSite}; path=${path}${!session ? `; max-age=${maxAge}` : \"\"}${\n secure ? \"; secure\" : \"\"\n }`;\n document.cookie = cookie;\n this.log(\"Set cookie:\", {\n key,\n value,\n maxAge,\n path,\n sameSite,\n domain,\n secure,\n session,\n cookie,\n });\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 = this.defaultDomain) {\n const options = { maxAge: -1, path, domain: domain || undefined };\n this.set(key, \"\", options);\n this.log(\"Deleted cookie:\", { key, path, domain, ...options });\n this.events.trigger(\"deleteCookie\", { key, ...options });\n }\n\n /**\n * Delete all cookies.\n */\n deleteAll(path = \"/\", domain = this.defaultDomain) {\n Object.keys(this.all).forEach((cookie) => {\n this.delete(cookie, path, domain);\n });\n this.log(\"Deleted all cookies\", { path, domain });\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.log(\"Accepting policy:\", 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.log(\"Rejecting policy:\", 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 this.log(\"Cannot change essential policy, it is always accepted.\");\n return;\n }\n this.log(`Setting policy ${policy} to ${accepted}`);\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 this.log(\"Accepting all policies\");\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 this.log(\"Rejecting all policies\");\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.log(\"Saving policies:\", 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.log(`Adding event listener for: ${event}`);\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.log(`Adding one-time event listener for: ${event}`);\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\";\nimport { checkTableForScroll } from \"./lib/tables.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 window.addEventListener(\"touchstart\", onFirstTouch);\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 window.addEventListener(\"keydown\", onKeyDown);\n\n const onMouseDown = () => {\n $body.classList.add(\"tna-template--clicked\");\n $body.classList.remove(\"tna-template--tabbed\");\n };\n window.addEventListener(\"mousedown\", onMouseDown);\n\n const $tableWrappers = $scope.querySelectorAll(\".tna-table-wrapper\");\n $tableWrappers.forEach(($tableWrapper) => checkTableForScroll($tableWrapper));\n window.addEventListener(\"resize\", () => {\n $tableWrappers.forEach(($tableWrapper) =>\n checkTableForScroll($tableWrapper),\n );\n });\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=\"tna-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 window.matchMedia(\"print\").addEventListener(\"change\", (evt) => {\n if (evt.matches) {\n $scope\n .querySelectorAll(\".tna-details__details:not([open])\")\n .forEach((e) => {\n e.setAttribute(\"open\", \"\");\n e.dataset.wasClosed = \"\";\n });\n $scope\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 $scope\n .querySelectorAll(\".tna-details__details[data-was-closed]\")\n .forEach((e) => {\n e.removeAttribute(\"open\");\n delete e.dataset.wasClosed;\n });\n $scope\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 this.$module.addEventListener(\"click\", () => this.focusLinkedElement());\n }\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.$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.$navigationButtons\n ) {\n return;\n }\n\n this.$module.classList.add(\"tna-gallery--interactive\");\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.setup();\n this.currentId = this.$items[0].id;\n this.showItem(this.currentId);\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\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 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 } else {\n $item.setAttribute(\"aria-current\", \"false\");\n }\n } else {\n $item.setAttribute(\"aria-current\", \"false\");\n }\n });\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","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 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>…\";\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.addEventListener(\n \"blur\",\n () => {\n this.$module.removeAttribute(\"tabindex\");\n },\n { once: true },\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}\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","import uuidv4 from \"./uuid.mjs\";\n\nexport const checkTableForScroll = ($tableWrapper) => {\n const isUninitialised = !(\n $tableWrapper.dataset.tableScrollInitialised === \"true\"\n );\n const $caption = $tableWrapper.querySelector(\"caption\");\n if (isUninitialised) {\n if (!$caption) {\n console.warn(\"Missing <caption> element on table\", $tableWrapper);\n } else if (!$caption.id) {\n $caption.id = `table-caption-${uuidv4()}`;\n }\n $tableWrapper.dataset.tableScrollInitialised = \"true\";\n }\n if ($tableWrapper.scrollWidth > $tableWrapper.clientWidth) {\n $tableWrapper.setAttribute(\"tabindex\", \"0\");\n $tableWrapper.setAttribute(\"role\", \"region\");\n $tableWrapper.setAttribute(\"aria-labelledby\", $caption?.id || \"\");\n $tableWrapper.classList.add(\"tna-table-wrapper--scroll\");\n } else {\n $tableWrapper.removeAttribute(\"tabindex\");\n $tableWrapper.removeAttribute(\"role\");\n $tableWrapper.removeAttribute(\"aria-labelledby\");\n $tableWrapper.classList.remove(\"tna-table-wrapper--scroll\");\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 getClosestElement = ($startingElement, matchingElementSelectors) => {\n let heading = \"\";\n let $search = $startingElement;\n do {\n while ($search.previousElementSibling) {\n $search = $search.previousElementSibling;\n if (\n matchingElementSelectors.some((matchingElementSelector) =>\n $search.matches(matchingElementSelector),\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 getClosestHeading = ($element) =>\n getClosestElement($element, [\"h1\", \"h2\", \"h3\", \"h4\", \"h5\", \"h6\"]);\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, getClosestElement, 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-item\")\n ?.querySelector(\".tna-form-item__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-item\")\n ?.querySelector(\".tna-form-item__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-item\")\n ?.querySelector(\".tna-form-item__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-item\")\n ?.querySelector(\".tna-form-item__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 },\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-item\")\n ?.querySelector(\".tna-form-item__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-item__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-item\")\n ?.querySelector(\".tna-form-item__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-item\")\n ?.querySelector(\".tna-form-item__heading\")\n ?.innerText?.trim(),\n },\n },\n ],\n },\n];\n","import Cookies from \"./lib/cookies.mjs\";\nimport {\n getXPathTo,\n getClosestHeading,\n getClosestElement,\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.length === 0) {\n return;\n }\n scopeArray.forEach(($scope, scopeIndex) => {\n events.forEach((eventConfig) => {\n if (eventConfig.on) {\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\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 eventConfig.rootEventName\n ? `${this.prefix}.${eventConfig.rootEventName}`\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 = {\n getXPathTo,\n getClosestHeading,\n getClosestElement,\n valueGetters,\n};\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 640 640\" height=\"24\" aria-hidden=\"true\" focusable=\"false\"><!--!Font Awesome Free v7.0.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d=\"M320 96C239.2 96 174.5 132.8 127.4 176.6C80.6 220.1 49.3 272 34.4 307.7C31.1 315.6 31.1 324.4 34.4 332.3C49.3 368 80.6 420 127.4 463.4C174.5 507.1 239.2 544 320 544C400.8 544 465.5 507.2 512.6 463.4C559.4 419.9 590.7 368 605.6 332.3C608.9 324.4 608.9 315.6 605.6 307.7C590.7 272 559.4 220 512.6 176.6C465.5 132.9 400.8 96 320 96zM176 320C176 240.5 240.5 176 320 176C399.5 176 464 240.5 464 320C464 399.5 399.5 464 320 464C240.5 464 176 399.5 176 320zM320 256C320 291.3 291.3 320 256 320C244.5 320 233.7 317 224.3 311.6C223.3 322.5 224.2 333.7 227.2 344.8C240.9 396 293.6 426.4 344.8 412.7C396 399 426.4 346.3 412.7 295.1C400.5 249.4 357.2 220.3 311.6 224.3C316.9 233.6 320 244.4 320 256z\"/></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 640\" height=\"24\" aria-hidden=\"true\" focusable=\"false\"><!--!Font Awesome Free v7.0.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d=\"M73 39.1C63.6 29.7 48.4 29.7 39.1 39.1C29.8 48.5 29.7 63.7 39 73.1L567 601.1C576.4 610.5 591.6 610.5 600.9 601.1C610.2 591.7 610.3 576.5 600.9 567.2L504.5 470.8C507.2 468.4 509.9 466 512.5 463.6C559.3 420.1 590.6 368.2 605.5 332.5C608.8 324.6 608.8 315.8 605.5 307.9C590.6 272.2 559.3 220.2 512.5 176.8C465.4 133.1 400.7 96.2 319.9 96.2C263.1 96.2 214.3 114.4 173.9 140.4L73 39.1zM236.5 202.7C260 185.9 288.9 176 320 176C399.5 176 464 240.5 464 320C464 351.1 454.1 379.9 437.3 403.5L402.6 368.8C415.3 347.4 419.6 321.1 412.7 295.1C399 243.9 346.3 213.5 295.1 227.2C286.5 229.5 278.4 232.9 271.1 237.2L236.4 202.5zM357.3 459.1C345.4 462.3 332.9 464 320 464C240.5 464 176 399.5 176 320C176 307.1 177.7 294.6 180.9 282.7L101.4 203.2C68.8 240 46.4 279 34.5 307.7C31.2 315.6 31.2 324.4 34.5 332.3C49.4 368 80.7 420 127.5 463.4C174.6 507.1 239.3 544 320.1 544C357.4 544 391.3 536.1 421.6 523.4L357.4 459.2z\"/></svg>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","import { checkTableForScroll } from \"../../lib/tables.mjs\";\n\nexport 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.singleOpenItem !== \"true\";\n\n this.$items.forEach(($item) => this.initItem($item));\n this.initState();\n\n this.$toggleAllButton = this.$module.querySelector(\n \".tna-accordion__toggle-all\",\n );\n if (this.$toggleAllButton) {\n this.syncToggleAllButton();\n this.$toggleAllButton.removeAttribute(\"hidden\");\n this.$toggleAllButton.addEventListener(\"click\", () => {\n if (this.isAllOpen()) {\n this.$items.forEach(($item) => this.closeItem($item));\n } else {\n this.$items.forEach(($item) => this.openItem($item));\n }\n this.syncToggleAllButton();\n });\n }\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 this.syncToggleAllButton();\n\n const $tableWrapper = $content.querySelectorAll(\".tna-table-wrapper\");\n if ($tableWrapper) {\n $tableWrapper.forEach(($wrapper) => {\n checkTableForScroll($wrapper);\n });\n }\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 this.syncToggleAllButton();\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 isAllOpen() {\n return Array.from(this.$items).every(\n ($item) =>\n $item\n .querySelector(\".tna-accordion__summary\")\n .getAttribute(\"aria-expanded\") === \"true\",\n );\n }\n\n syncToggleAllButton() {\n if (this.$toggleAllButton) {\n if (this.isAllOpen()) {\n this.$toggleAllButton.innerText =\n this.$toggleAllButton.dataset.closeAllLabel || \"Hide all sections\";\n } else {\n this.$toggleAllButton.innerText =\n this.$toggleAllButton.dataset.openAllLabel || \"Show all sections\";\n }\n }\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","policiesCorrectOnInit","exists","hasValue","removeAttribute","addEventListener","accept","reject","key","value","_this2","setAttribute","complete","acceptAllPolicies","focus","_this3","rejectAllPolicies","_this4","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","$body","$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","debug","_defineProperty","log","_console","_len","args","_key","console","apply","callback","Object","hasOwn","events","_toConsumableArray","oneTimeEvents","data","eventToTrigger","call","i","splice","tnaCookiePolicies","options","documentElement","tnaFrontendDebug","defaultDomain","defaultPath","secure","policiesKey","defaultAge","_options$newInstance","_options$noInit","noInit","tnaCookiesDomain","location","hostname","tnaCookiesPath","tnaCookiesInsecure","tnaCookiesPoliciesKey","parseInt","tnaCookiesDefaultAge","keys","policies","every","policy","includes","existingPolicies","filteredExistingPolicies","fromEntries","filter","map","savePolicies","_objectSpread","usage","settings","marketing","essential","_console2","_len2","_key2","all","get","deserialised","cookie","split","x","parts","trim","JSON","parse","decodeURIComponent","_options$maxAge","maxAge","_options$sameSite","sameSite","_options$domain","domain","_options$path","path","_options$secure","_options$session","session","encodeURIComponent","trigger","setPolicy","accepted","allPolicies","k","toLowerCase","stringify","on","once","initAll","$scope","scope","HTMLElement","onFirstTouch","removeEventListener","$tableWrappers","$tableWrapper","checkTableForScroll","$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","matchMedia","evt","matches","wasClosed","replace","c","crypto","getRandomValues","Uint8Array","toString","linkedElementId","pop","$linkedElement","focusLinkedElement","linkedElementListener","removeFocusProperties","$itemsContainer","$items","$navigation","$navigationItems","$navigationButtons","$navigationButtonPrev","$navigationButtonNext","setup","currentId","showItem","_this$$navigationButt","_this$$navigationButt2","_this$$navigationButt3","$item","_$item$querySelector","showPreviousItem","showNextItem","showFirstItem","showLastItem","$liveRegion","prepend","getCurrentItemIndex","nextIndexToShow","$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","scrollIntoView","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","isUninitialised","tableScrollInitialised","$caption","warn","scrollWidth","clientWidth","getXPathTo","body","tagName","ix","parentNode","siblings","childNodes","sibling","nodeType","getClosestElement","$startingElement","matchingElementSelectors","heading","$search","previousElementSibling","matchingElementSelector","parentElement","getClosestHeading","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","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","_callSuper","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","singleOpenItem","initItem","initState","$toggleAllButton","syncToggleAllButton","isAllOpen","closeItem","openItem","$heading","$content","$headingButton","closeAllItemsExcept","$wrapper","$excludeItem","closeAllLabel","openAllLabel","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","d","definition","o","defineProperty","enumerable","obj","prop","prototype","hasOwnProperty","r","Symbol","toStringTag"],"ignoreList":[],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"all+analytics.js","mappings":"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","sources":["webpack://TNAFrontend/webpack/universalModuleDefinition","webpack://TNAFrontend/./src/nationalarchives/all.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/accordion/accordion.mjs","webpack://TNAFrontend/./src/nationalarchives/components/breadcrumbs/breadcrumbs.mjs","webpack://TNAFrontend/./src/nationalarchives/components/cookie-banner/cookie-banner.mjs","webpack://TNAFrontend/./src/nationalarchives/components/date-input/date-input.mjs","webpack://TNAFrontend/./src/nationalarchives/components/error-summary/error-summary.mjs","webpack://TNAFrontend/./src/nationalarchives/components/file-input/file-input.mjs","webpack://TNAFrontend/./src/nationalarchives/components/footer/footer.mjs","webpack://TNAFrontend/./src/nationalarchives/components/gallery/gallery.mjs","webpack://TNAFrontend/./src/nationalarchives/components/global-header/global-header.mjs","webpack://TNAFrontend/./src/nationalarchives/components/header/header.mjs","webpack://TNAFrontend/./src/nationalarchives/components/picture/picture.mjs","webpack://TNAFrontend/./src/nationalarchives/components/skip-link/skip-link.mjs","webpack://TNAFrontend/./src/nationalarchives/components/tabs/tabs.mjs","webpack://TNAFrontend/./src/nationalarchives/components/text-input/text-input.mjs","webpack://TNAFrontend/./src/nationalarchives/lib/cookies.mjs","webpack://TNAFrontend/./src/nationalarchives/lib/tables.mjs","webpack://TNAFrontend/./src/nationalarchives/lib/uuid.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 { 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\";\nimport { checkTableForScroll } from \"./lib/tables.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 window.addEventListener(\"touchstart\", onFirstTouch);\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 window.addEventListener(\"keydown\", onKeyDown);\n\n const onMouseDown = () => {\n $body.classList.add(\"tna-template--clicked\");\n $body.classList.remove(\"tna-template--tabbed\");\n };\n window.addEventListener(\"mousedown\", onMouseDown);\n\n const $tableWrappers = $scope.querySelectorAll(\".tna-table-wrapper\");\n $tableWrappers.forEach(($tableWrapper) => checkTableForScroll($tableWrapper));\n window.addEventListener(\"resize\", () => {\n $tableWrappers.forEach(($tableWrapper) =>\n checkTableForScroll($tableWrapper),\n );\n });\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=\"tna-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 window.matchMedia(\"print\").addEventListener(\"change\", (evt) => {\n if (evt.matches) {\n $scope\n .querySelectorAll(\".tna-details__details:not([open])\")\n .forEach((e) => {\n e.setAttribute(\"open\", \"\");\n e.dataset.wasClosed = \"\";\n });\n $scope\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 $scope\n .querySelectorAll(\".tna-details__details[data-was-closed]\")\n .forEach((e) => {\n e.removeAttribute(\"open\");\n delete e.dataset.wasClosed;\n });\n $scope\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 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 getClosestElement = ($startingElement, matchingElementSelectors) => {\n let heading = \"\";\n let $search = $startingElement;\n do {\n while ($search.previousElementSibling) {\n $search = $search.previousElementSibling;\n if (\n matchingElementSelectors.some((matchingElementSelector) =>\n $search.matches(matchingElementSelector),\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 getClosestHeading = ($element) =>\n getClosestElement($element, [\"h1\", \"h2\", \"h3\", \"h4\", \"h5\", \"h6\"]);\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, getClosestElement, 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-item\")\n ?.querySelector(\".tna-form-item__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-item\")\n ?.querySelector(\".tna-form-item__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-item\")\n ?.querySelector(\".tna-form-item__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-item\")\n ?.querySelector(\".tna-form-item__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 },\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-item\")\n ?.querySelector(\".tna-form-item__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-item__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-item\")\n ?.querySelector(\".tna-form-item__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-item\")\n ?.querySelector(\".tna-form-item__heading\")\n ?.innerText?.trim(),\n },\n },\n ],\n },\n];\n","import Cookies from \"./lib/cookies.mjs\";\nimport {\n getXPathTo,\n getClosestHeading,\n getClosestElement,\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.length === 0) {\n return;\n }\n scopeArray.forEach(($scope, scopeIndex) => {\n events.forEach((eventConfig) => {\n if (eventConfig.on) {\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\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 eventConfig.rootEventName\n ? `${this.prefix}.${eventConfig.rootEventName}`\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 = {\n getXPathTo,\n getClosestHeading,\n getClosestElement,\n valueGetters,\n};\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 { checkTableForScroll } from \"../../lib/tables.mjs\";\n\nexport 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.singleOpenItem !== \"true\";\n\n this.$items.forEach(($item) => this.initItem($item));\n this.initState();\n\n this.$toggleAllButton = this.$module.querySelector(\n \".tna-accordion__toggle-all\",\n );\n if (this.$toggleAllButton) {\n this.syncToggleAllButton();\n this.$toggleAllButton.removeAttribute(\"hidden\");\n this.$toggleAllButton.addEventListener(\"click\", () => {\n if (this.isAllOpen()) {\n this.$items.forEach(($item) => this.closeItem($item));\n } else {\n this.$items.forEach(($item) => this.openItem($item));\n }\n this.syncToggleAllButton();\n });\n }\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 this.syncToggleAllButton();\n\n const $tableWrapper = $content.querySelectorAll(\".tna-table-wrapper\");\n if ($tableWrapper) {\n $tableWrapper.forEach(($wrapper) => {\n checkTableForScroll($wrapper);\n });\n }\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 this.syncToggleAllButton();\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 isAllOpen() {\n return Array.from(this.$items).every(\n ($item) =>\n $item\n .querySelector(\".tna-accordion__summary\")\n .getAttribute(\"aria-expanded\") === \"true\",\n );\n }\n\n syncToggleAllButton() {\n if (this.$toggleAllButton) {\n if (this.isAllOpen()) {\n this.$toggleAllButton.innerText =\n this.$toggleAllButton.dataset.closeAllLabel || \"Hide all sections\";\n } else {\n this.$toggleAllButton.innerText =\n this.$toggleAllButton.dataset.openAllLabel || \"Show all sections\";\n }\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 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>…\";\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.addEventListener(\n \"blur\",\n () => {\n this.$module.removeAttribute(\"tabindex\");\n },\n { once: true },\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}\n","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.policiesCorrectOnInit) {\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.cookies.acceptAllPolicies();\n this.$acceptedMessage.removeAttribute(\"hidden\");\n this.$acceptedMessage.setAttribute(\"tabindex\", \"0\");\n this.$acceptedMessage.focus();\n this.$acceptedMessage.addEventListener(\"blur\", () => {\n this.$acceptedMessage.removeAttribute(\"tabindex\");\n });\n }\n\n reject() {\n this.$prompt.setAttribute(\"hidden\", \"\");\n this.complete();\n this.cookies.rejectAllPolicies();\n this.$rejectedMessage.removeAttribute(\"hidden\");\n this.$rejectedMessage.setAttribute(\"tabindex\", \"0\");\n this.$rejectedMessage.focus();\n this.$rejectedMessage.addEventListener(\"blur\", () => {\n this.$rejectedMessage.removeAttribute(\"tabindex\");\n });\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","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 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 FileInputDroppable {\n constructor($module) {\n this.$module = $module;\n this.$body = $module && $module.querySelector(\".tna-form-item__body\");\n this.$input = this.$body && this.$body.querySelector(\".tna-file-input\");\n\n if (!this.$module || !this.$body || !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.$body.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","import Cookies from \"../../lib/cookies.mjs\";\n\nexport class Footer {\n constructor($module, themeCookieName = \"theme\") {\n this.$module = $module;\n this.$themeSelector =\n $module && $module.querySelector(\".tna-footer__theme-selector\");\n this.$themeSelectorNotice =\n $module && $module.querySelector(\".tna-footer__theme-selector-notice\");\n this.$themeSelectorEnableSettingsCookiesButton =\n this.$themeSelectorNotice &&\n this.$themeSelectorNotice.querySelector(\n \".tna-footer__theme-selector-enable-settings-cookies\",\n );\n this.$tnaTemplate = document.querySelector(\".tna-template\");\n\n if (\n !this.$module ||\n !this.$themeSelector ||\n !this.$themeSelectorNotice ||\n !this.$themeSelectorEnableSettingsCookiesButton ||\n !this.$tnaTemplate\n ) {\n return;\n }\n\n this.currentTheme = this.$themeSelector.dataset.themeOnLoad;\n\n this.themeCookieName = themeCookieName;\n\n this.cookies = new Cookies();\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.$themeSelectorEnableSettingsCookiesButton.addEventListener(\n \"click\",\n () => {\n this.cookies.acceptPolicy(\"settings\");\n },\n );\n\n this.showThemeSelector();\n this.cookies.on(\"changePolicy\", (data) => {\n if (Object.hasOwn(data, \"settings\")) {\n if (data.settings === true) {\n this.cookies.set(this.themeCookieName, this.currentTheme);\n this.$themeSelectorNotice.setAttribute(\"hidden\", \"\");\n } else {\n this.cookies.delete(this.themeCookieName);\n this.$themeSelectorNotice.removeAttribute(\"hidden\");\n }\n }\n });\n }\n\n showThemeSelector() {\n this.$themeSelector.removeAttribute(\"hidden\");\n if (this.cookies.exists(this.themeCookieName)) {\n const $currentThemeButton = Array.from(this.$themeSelectorButtons).find(\n ($button) => $button.value === this.cookies.get(this.themeCookieName),\n );\n if ($currentThemeButton) {\n this.selectThemeSelectorButton($currentThemeButton);\n }\n }\n if (!this.cookies.isPolicyAccepted(\"settings\")) {\n this.$themeSelectorNotice.removeAttribute(\"hidden\");\n }\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.currentTheme = theme;\n if (this.cookies.isPolicyAccepted(\"settings\")) {\n this.cookies.set(this.themeCookieName, this.currentTheme);\n } else {\n this.$themeSelectorNotice.removeAttribute(\"hidden\");\n }\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 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.$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.$navigationButtons\n ) {\n return;\n }\n\n this.$module.classList.add(\"tna-gallery--interactive\");\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.setup();\n this.currentId = this.$items[0].id;\n this.showItem(this.currentId);\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\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 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 } else {\n $item.setAttribute(\"aria-current\", \"false\");\n }\n } else {\n $item.setAttribute(\"aria-current\", \"false\");\n }\n });\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","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","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","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 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 this.$module.addEventListener(\"click\", () => this.focusLinkedElement());\n }\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 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 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 640 640\" height=\"24\" aria-hidden=\"true\" focusable=\"false\"><!--!Font Awesome Free v7.0.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d=\"M320 96C239.2 96 174.5 132.8 127.4 176.6C80.6 220.1 49.3 272 34.4 307.7C31.1 315.6 31.1 324.4 34.4 332.3C49.3 368 80.6 420 127.4 463.4C174.5 507.1 239.2 544 320 544C400.8 544 465.5 507.2 512.6 463.4C559.4 419.9 590.7 368 605.6 332.3C608.9 324.4 608.9 315.6 605.6 307.7C590.7 272 559.4 220 512.6 176.6C465.5 132.9 400.8 96 320 96zM176 320C176 240.5 240.5 176 320 176C399.5 176 464 240.5 464 320C464 399.5 399.5 464 320 464C240.5 464 176 399.5 176 320zM320 256C320 291.3 291.3 320 256 320C244.5 320 233.7 317 224.3 311.6C223.3 322.5 224.2 333.7 227.2 344.8C240.9 396 293.6 426.4 344.8 412.7C396 399 426.4 346.3 412.7 295.1C400.5 249.4 357.2 220.3 311.6 224.3C316.9 233.6 320 244.4 320 256z\"/></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 640\" height=\"24\" aria-hidden=\"true\" focusable=\"false\"><!--!Font Awesome Free v7.0.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d=\"M73 39.1C63.6 29.7 48.4 29.7 39.1 39.1C29.8 48.5 29.7 63.7 39 73.1L567 601.1C576.4 610.5 591.6 610.5 600.9 601.1C610.2 591.7 610.3 576.5 600.9 567.2L504.5 470.8C507.2 468.4 509.9 466 512.5 463.6C559.3 420.1 590.6 368.2 605.5 332.5C608.8 324.6 608.8 315.8 605.5 307.9C590.6 272.2 559.3 220.2 512.5 176.8C465.4 133.1 400.7 96.2 319.9 96.2C263.1 96.2 214.3 114.4 173.9 140.4L73 39.1zM236.5 202.7C260 185.9 288.9 176 320 176C399.5 176 464 240.5 464 320C464 351.1 454.1 379.9 437.3 403.5L402.6 368.8C415.3 347.4 419.6 321.1 412.7 295.1C399 243.9 346.3 213.5 295.1 227.2C286.5 229.5 278.4 232.9 271.1 237.2L236.4 202.5zM357.3 459.1C345.4 462.3 332.9 464 320 464C240.5 464 176 399.5 176 320C176 307.1 177.7 294.6 180.9 282.7L101.4 203.2C68.8 240 46.4 279 34.5 307.7C31.2 315.6 31.2 324.4 34.5 332.3C49.4 368 80.7 420 127.5 463.4C174.6 507.1 239.3 544 320.1 544C357.4 544 391.3 536.1 421.6 523.4L357.4 459.2z\"/></svg>Hide password`;\n this.$textInputPasswordToggle.setAttribute(\"title\", \"Hide password\");\n this.$textInputPasswordToggle.setAttribute(\"aria-label\", \"Hide password\");\n }\n }\n}\n","window.TNAFrontendCookies = window.TNAFrontendCookies || null;\nwindow.TNAFrontendCookieEvents = window.TNAFrontendCookieEvents || null;\n\nexport class CookieEventHandler {\n events = {};\n oneTimeEvents = {};\n debug = false;\n\n constructor(debug = false) {\n this.debug = debug;\n if (window.TNAFrontendCookieEvents) {\n this.log(\"Using existing TNAFrontendCookieEvents instance\");\n return window.TNAFrontendCookieEvents;\n }\n window.TNAFrontendCookieEvents = this;\n }\n\n log(...args) {\n if (this.debug) {\n console.log(\"[TNA Frontend Cookie Events]\", ...args);\n }\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.log(`Triggering event: ${event}`, data);\n this.events[event].forEach((eventToTrigger) =>\n eventToTrigger.call(this, data),\n );\n }\n if (Object.hasOwn(this.oneTimeEvents, event)) {\n this.log(`Triggering one-time event: ${event}`, data);\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 policiesCorrectOnInit = false;\n /** @protected */\n debug = document.documentElement.dataset.tnaFrontendDebug === \"true\";\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 {Number} [options.defaultAge] - The default age of non-session cookies.\n * @param {String} [options.newInstance=false] - Create a fresh instance of the cookie class.\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 defaultAge,\n newInstance = false,\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 window.location.hostname;\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(this.debug);\n this.policiesCorrectOnInit =\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.policiesCorrectOnInit && !noInit) {\n this.init();\n }\n this.log({\n defaultDomain: this.defaultDomain,\n defaultPath: this.defaultPath,\n secure: this.secure,\n policiesKey: this.policiesKey,\n defaultAge: this.defaultAge,\n policiesCorrectOnInit: this.policiesCorrectOnInit,\n });\n if (!newInstance && !window.TNAFrontendCookies) {\n window.TNAFrontendCookies = this;\n }\n }\n\n /** @protected */\n init() {\n const existingPolicies = this.policies;\n this.log(\"Existing policies on init:\", existingPolicies);\n const filteredExistingPolicies = Object.fromEntries(\n Object.keys(existingPolicies)\n .filter((policy) => tnaCookiePolicies.includes(policy))\n .map((policy) => [policy, existingPolicies[policy]]),\n );\n if (Object.keys(filteredExistingPolicies).length > 0) {\n this.log(\"Filtered existing policies:\", filteredExistingPolicies);\n }\n this.savePolicies({\n usage: false,\n settings: false,\n marketing: false,\n ...filteredExistingPolicies,\n essential: true,\n });\n }\n\n log(...args) {\n if (this.debug) {\n console.log(\"[TNA Frontend Cookies]\", ...args, this.all);\n }\n }\n\n destroyInstance() {\n this.log(\"Destroying TNAFrontendCookies instance\");\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)}; domain=${domain}; samesite=${sameSite}; path=${path}${!session ? `; max-age=${maxAge}` : \"\"}${\n secure ? \"; secure\" : \"\"\n }`;\n document.cookie = cookie;\n this.log(\"Set cookie:\", {\n key,\n value,\n maxAge,\n path,\n sameSite,\n domain,\n secure,\n session,\n cookie,\n });\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 = this.defaultDomain) {\n const options = { maxAge: -1, path, domain: domain || undefined };\n this.set(key, \"\", options);\n this.log(\"Deleted cookie:\", { key, path, domain, ...options });\n this.events.trigger(\"deleteCookie\", { key, ...options });\n }\n\n /**\n * Delete all cookies.\n */\n deleteAll(path = \"/\", domain = this.defaultDomain) {\n Object.keys(this.all).forEach((cookie) => {\n this.delete(cookie, path, domain);\n });\n this.log(\"Deleted all cookies\", { path, domain });\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.log(\"Accepting policy:\", 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.log(\"Rejecting policy:\", 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 this.log(\"Cannot change essential policy, it is always accepted.\");\n return;\n }\n this.log(`Setting policy ${policy} to ${accepted}`);\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 this.log(\"Accepting all policies\");\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 this.log(\"Rejecting all policies\");\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.log(\"Saving policies:\", 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.log(`Adding event listener for: ${event}`);\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.log(`Adding one-time event listener for: ${event}`);\n this.events.once(event, callback);\n }\n}\n","import uuidv4 from \"./uuid.mjs\";\n\nexport const checkTableForScroll = ($tableWrapper) => {\n const isUninitialised = !(\n $tableWrapper.dataset.tableScrollInitialised === \"true\"\n );\n const $caption = $tableWrapper.querySelector(\"caption\");\n if (isUninitialised) {\n if (!$caption) {\n console.warn(\"Missing <caption> element on table\", $tableWrapper);\n } else if (!$caption.id) {\n $caption.id = `table-caption-${uuidv4()}`;\n }\n $tableWrapper.dataset.tableScrollInitialised = \"true\";\n }\n if ($tableWrapper.scrollWidth > $tableWrapper.clientWidth) {\n $tableWrapper.setAttribute(\"tabindex\", \"0\");\n $tableWrapper.setAttribute(\"role\", \"region\");\n $tableWrapper.setAttribute(\"aria-labelledby\", $caption?.id || \"\");\n $tableWrapper.classList.add(\"tna-table-wrapper--scroll\");\n } else {\n $tableWrapper.removeAttribute(\"tabindex\");\n $tableWrapper.removeAttribute(\"role\");\n $tableWrapper.removeAttribute(\"aria-labelledby\");\n $tableWrapper.classList.remove(\"tna-table-wrapper--scroll\");\n }\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","// 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","initAll","options","$scope","scope","HTMLElement","document","$body","documentElement","classList","add","onFirstTouch","window","removeEventListener","addEventListener","e","key","remove","$tableWrappers","querySelectorAll","forEach","$tableWrapper","checkTableForScroll","$accordion","Accordion","$breadcrumbs","querySelector","Breadcrumbs","$cookieBanner","CookieBanner","$dateInput","DateInputProgressive","$errorSummary","ErrorSummary","init","$fileInput","FileInputDroppable","$footer","Footer","$gallery","Gallery","$globalHeader","GlobalHeader","$header","Header","$picture","Picture","$skipLink","SkipLink","$tabModule","Tabs","$textInput","TextInput","matchMedia","evt","matches","setAttribute","dataset","wasClosed","removeAttribute","getXPathTo","$element","id","body","tagName","ix","parentNode","siblings","childNodes","i","length","sibling","nodeType","getClosestElement","$startingElement","matchingElementSelectors","heading","$search","previousElementSibling","some","matchingElementSelector","innerText","parentElement","getClosestHeading","valueGetters","text","$el","replace","html","innerHTML","value","index","event","instance","checked","expanded","getAttribute","toString","closestHeading","xpath","target","areaName","rootEventName","rootData","data_component_name","events","eventName","targetElement","on","data","state","data_link_type","data_link","trim","group","_$scope$closest","closest","_$scope$querySelector","_$scope$querySelector2","hasAttribute","getFileDetails","JSON","stringify","Array","from","files","map","file","name","size","type","_$scope$closest2","_$scope$closest3","data_section","media_type","media_duration","media_provider","media_title","concat","media_progress","findIndex","$itemButton","media_action","_$scope$querySelector3","onCondition","includes","data_position","image","imageSrc","imageAlt","componentAnalytics","_toConsumableArray","BreadcrumbAnalytics","CheckboxesAnalytics","DetailsAnalytics","FooterAnalytics","GalleryAnalytics","GlobalHeaderAnalytics","HeaderAnalytics","PictureAnalytics","RadiosAnalytics","SearchFieldAnalytics","SidebarAnalytics","TextInputAnalytics","TextareaAnalytics","EventTracker","_createClass","arguments","undefined","_classCallCheck","_defineProperty","Cookies","Date","_options$prefix","prefix","_options$documentScop","documentScope","this","_this","navigator","doNotTrack","cookies","isPolicyAccepted","enableTracking","policies","Object","hasOwn","disableTracking","_this2","componentConfig","addListeners","scopeArray","_this3","rootDefaultData","_typeof","scopeIndex","eventConfig","attachListener","_this4","_eventConfig$rootData","_eventConfig$onCondit","computedValueParameters","computedValue","apply","recordEvent","generateEventName","_objectSpread","xPath","timeSincePageLoad","startTime","fromEntries","entries","_ref","_ref2","_slicedToArray","valueOrFunction","call","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","_callSuper","dataLayer","gTagId","ga4Disable","set","start","_inherits","_this7","ga4Data","_ref3","_ref4","pushToDataLayer","trackingEnabled","trackingCodeAdded","Error","getTnaMetaTags","getUserPreferences","getTime","firstScript","getElementsByTagName","script","createElement","async","src","insertBefore","appendChild","_this8","keys","all","startsWith","ga4Id","ga4","helpers","$module","$items","allowMultipleItemsOpen","singleOpenItem","$item","initItem","initState","$toggleAllButton","syncToggleAllButton","isAllOpen","closeItem","openItem","$heading","$content","$headingButton","closeAllItemsExcept","$wrapper","$excludeItem","filter","every","closeAllLabel","openAllLabel","$breadcrumbsList","contains","uniqueId","uuidv4","$expandable","style","display","$expandButton","focus","once","nextSibling","$acceptButton","$rejectButton","$prompt","$acceptedMessage","$rejectedMessage","$closeButtons","newInstance","cookiePreferencesSetKey","preferencesKey","policiesCorrectOnInit","exists","hasValue","accept","reject","complete","acceptAllPolicies","rejectAllPolicies","$closeButton","close","$yearWrapper","$yearInput","$monthWrapper","$monthInput","$dayWrapper","$dayInput","update","isValidYear","showMonth","isValidMonth","showDay","hideDay","hideMonth","yearValue","parseInt","isNaN","monthRawValue","monthIntValue","toLowerCase","disableAutofocus","setFocus","handleClick","_options$onBeforeFocu","isFocusable","onBlur","_options$onBlur","onBeforeFocus","$target","focusTarget","preventDefault","url","split","pop","HTMLAnchorElement","inputId","getFragmentFromUrl","href","$input","getElementById","$legendOrLabel","getAssociatedLegendOrLabel","scrollIntoView","preventScroll","_document$querySelect","$fieldset","$legends","$candidateLegend","HTMLInputElement","legendTop","getBoundingClientRect","top","inputRect","height","innerHeight","acceptMutltipleFiles","$droppableArea","$pseudoSelectFileText","textContent","$droppableButtons","$pseudoSelectFileButton","$pseudoDropFileButton","$droppableAreaAriaLabel","showDropTarget","hideDropTarget","onChange","dataTransfer","hasNoTypesInfo","types","isDraggingFiles","updateAriaLabel","isContainingFiles","items","_files$","themeCookieName","$themeSelector","$themeSelectorNotice","$themeSelectorEnableSettingsCookiesButton","$tnaTemplate","currentTheme","themeOnLoad","$themeSelectorButtons","$themeSelectorButton","$button","setTheme","selectThemeSelectorButton","acceptPolicy","showThemeSelector","settings","$currentThemeButton","find","get","theme","$selectedButton","$itemsContainer","$navigation","$navigationItems","$navigationButtons","$navigationButtonPrev","$navigationButtonNext","setup","currentId","showItem","_this$$navigationButt","_this$$navigationButt2","_this$$navigationButt3","_$item$querySelector","preventDefaultKeyAction","showPreviousItem","showNextItem","showFirstItem","showLastItem","stopPropagation","$liveRegion","prepend","getCurrentItemIndex","nextIndexToShow","$toggleButton","$topNavigation","$links","menuOpened","mql","syncState","handleToggleNavigation","addListener","code","show","hide","hidden","$imageWrapper","$transcriptToggle","$transcript","transcriptOpened","openLabel","informationLabelOpen","closeLabel","informationLabelClose","toggleTranscript","_$module$getAttribute","linkedElementId","$linkedElement","focusLinkedElement","linkedElementListener","removeFocusProperties","$tabList","$tabListItemLinks","$tabItems","currentTabIndex","$tabListItemLink","tabPanelID","$tabPanel","handleItemLinkClick","switchTabByIndex","handleItemLinkKeyDown","itemLinkClickEvent","targetItem","currentTarget","switchTabByID","itemLinkKeyDownEvent","previousTab","nextTab","newIndex","switchFocus","$tabItem","targetId","$textInputWrapper","$textInputPasswordToggle","updateTogglePasswordButtonText","togglePasswordType","TNAFrontendCookies","TNAFrontendCookieEvents","CookieEventHandler","debug","log","_console","_len","args","_key","console","callback","oneTimeEvents","eventToTrigger","splice","tnaCookiePolicies","tnaFrontendDebug","defaultDomain","defaultPath","secure","policiesKey","defaultAge","_options$newInstance","_options$noInit","noInit","tnaCookiesDomain","location","hostname","tnaCookiesPath","tnaCookiesInsecure","tnaCookiesPoliciesKey","tnaCookiesDefaultAge","policy","existingPolicies","filteredExistingPolicies","savePolicies","usage","marketing","essential","_console2","_len2","_key2","deserialised","cookie","x","parts","parse","decodeURIComponent","_options$maxAge","maxAge","_options$sameSite","sameSite","_options$domain","domain","_options$path","path","_options$secure","_options$session","session","encodeURIComponent","trigger","setPolicy","accepted","allPolicies","k","isUninitialised","tableScrollInitialised","$caption","warn","scrollWidth","clientWidth","c","crypto","getRandomValues","Uint8Array","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","d","definition","o","defineProperty","enumerable","obj","prop","prototype","hasOwnProperty","r","Symbol","toStringTag"],"sourceRoot":""}
|