@nationalarchives/frontend 0.43.0 → 0.44.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (31) hide show
  1. package/nationalarchives/all+analytics.js +1 -1
  2. package/nationalarchives/all+analytics.js.map +1 -1
  3. package/nationalarchives/all.css +1 -1
  4. package/nationalarchives/all.css.map +1 -1
  5. package/nationalarchives/all.js +1 -1
  6. package/nationalarchives/all.js.map +1 -1
  7. package/nationalarchives/components/breadcrumbs/breadcrumbs.js +1 -1
  8. package/nationalarchives/components/breadcrumbs/breadcrumbs.js.map +1 -1
  9. package/nationalarchives/components/breadcrumbs/breadcrumbs.mjs +49 -43
  10. package/nationalarchives/components/file-input/file-input.js +1 -1
  11. package/nationalarchives/components/file-input/file-input.js.map +1 -1
  12. package/nationalarchives/components/file-input/file-input.mjs +4 -0
  13. package/nationalarchives/components/footer/footer.js +1 -1
  14. package/nationalarchives/components/footer/footer.js.map +1 -1
  15. package/nationalarchives/components/footer/footer.mjs +6 -2
  16. package/nationalarchives/components/hero/fixtures.json +42 -0
  17. package/nationalarchives/components/hero/hero.css +1 -1
  18. package/nationalarchives/components/hero/hero.css.map +1 -1
  19. package/nationalarchives/components/hero/hero.scss +7 -1
  20. package/nationalarchives/components/sidebar/sidebar.css +1 -1
  21. package/nationalarchives/components/sidebar/sidebar.css.map +1 -1
  22. package/nationalarchives/components/sidebar/sidebar.js +1 -1
  23. package/nationalarchives/components/sidebar/sidebar.js.map +1 -1
  24. package/nationalarchives/components/sidebar/sidebar.mjs +13 -13
  25. package/nationalarchives/components/sidebar/sidebar.scss +18 -18
  26. package/nationalarchives/components/textarea/textarea.js +1 -1
  27. package/nationalarchives/components/textarea/textarea.js.map +1 -1
  28. package/nationalarchives/components/textarea/textarea.mjs +6 -2
  29. package/nationalarchives/prototype-kit.css +1 -1
  30. package/nationalarchives/prototype-kit.css.map +1 -1
  31. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"all.js","mappings":"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","sources":["webpack://TNAFrontend/webpack/universalModuleDefinition","webpack://TNAFrontend/./src/nationalarchives/components/accordion/accordion.mjs","webpack://TNAFrontend/./src/nationalarchives/components/breadcrumbs/breadcrumbs.mjs","webpack://TNAFrontend/./src/nationalarchives/components/code-block/code-block.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/sidebar/sidebar.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/components/textarea/textarea.mjs","webpack://TNAFrontend/./src/nationalarchives/lib/cookie-events.mjs","webpack://TNAFrontend/./src/nationalarchives/lib/cookies.mjs","webpack://TNAFrontend/./src/nationalarchives/lib/helpers.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","webpack://TNAFrontend/./src/nationalarchives/all.mjs"],"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 { checkTableForScroll } from \"../../lib/helpers.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 /* eslint-disable-next-line no-magic-numbers */\n this.$breadcrumbs.length > 2 &&\n !this.$module.classList.contains(\"tna-breadcrumbs--no-collapse\")\n ) {\n const uniqueId = `tna-breadcrumbs-${uuidv4()}`;\n const $expandable = document.createElement(\"li\");\n $expandable.classList.add(\n \"tna-breadcrumbs__item\",\n \"tna-breadcrumbs__item--expandable\",\n );\n $expandable.style.display = \"none\";\n\n const $expandButton = document.createElement(\"button\");\n $expandButton.classList.add(\"tna-breadcrumbs__link\");\n $expandButton.innerHTML =\n \"<span class='tna-!--visually-hidden'>Expand breadcrumbs</span>&hellip;\";\n $expandButton.setAttribute(\"type\", \"button\");\n $expandButton.setAttribute(\"aria-expanded\", \"false\");\n $expandButton.setAttribute(\"aria-controls\", uniqueId);\n $expandButton.addEventListener(\"click\", () => {\n this.$module.classList.remove(\"tna-breadcrumbs--collapsed\");\n $expandable.remove();\n this.$module.setAttribute(\"tabindex\", \"0\");\n this.$module.focus();\n this.$module.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 /* eslint-disable-next-line no-magic-numbers */\n this.$breadcrumbs[this.$breadcrumbs.length - 2].nextSibling,\n );\n\n this.$module.classList.add(\"tna-breadcrumbs--collapsed\");\n }\n }\n }\n}\n","export class CodeBlock {\n constructor($module) {\n this.$module = $module;\n this.$code = this.$module.querySelector(\"pre code\");\n this.$copyButton = this.$module.querySelector(\".tna-code-block__copy\");\n\n if (\n !this.$module ||\n !this.$code ||\n !this.$copyButton ||\n !navigator.clipboard\n ) {\n return;\n }\n\n this.$copyButton.removeAttribute(\"hidden\");\n this.$module.classList.add(\"tna-code-block__copyable\");\n\n this.$copyButton.addEventListener(\"click\", async () => {\n try {\n await navigator.clipboard.writeText(this.$code.innerText);\n this.$copyButton.innerText = \"Code copied\";\n } catch {\n // Continue regardless of error\n }\n });\n\n this.$copyButton.addEventListener(\"blur\", () => {\n this.$copyButton.innerText = \"Copy code\";\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(), 10);\n /* eslint-disable-next-line no-magic-numbers */\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, 10);\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 /* eslint-disable-next-line no-magic-numbers */\n monthIntValue > 0 &&\n /* eslint-disable-next-line no-magic-numbers */\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 /* eslint-disable-next-line class-methods-use-this */\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 blur\n */\n function onBlur() {\n options.onBlur?.call($element);\n\n if (!isFocusable) {\n $element.removeAttribute(\"tabindex\");\n }\n }\n\n /**\n * Handle element focus\n */\n function onFocus() {\n $element.addEventListener(\"blur\", onBlur, { once: true });\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 /* eslint-disable-next-line class-methods-use-this */\n getFragmentFromUrl(url) {\n if (!url.includes(\"#\")) {\n return null;\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 /* eslint-disable-next-line class-methods-use-this */\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;\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 /* eslint-disable no-magic-numbers */\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(\n \"tna-file-input__droppable\",\n \"tna-file-input__droppable--empty\",\n );\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\n let fileText = \"file\";\n if (this.acceptMutltipleFiles) {\n fileText += \"s\";\n }\n\n this.$pseudoSelectFileText.textContent = `No ${fileText} selected`;\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-s\",\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 ${fileText}`;\n $droppableButtons.appendChild($pseudoSelectFileButton);\n\n const $pseudoDropFileButton = document.createElement(\"span\");\n $pseudoDropFileButton.textContent = `or drop ${fileText}`;\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\", (event) =>\n this.showDropTarget(event),\n );\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 /* eslint-disable-next-line class-methods-use-this */\n isContainingFiles(dataTransfer) {\n const hasNoTypesInfo = !dataTransfer.types.length;\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 let classToAdd = \"tna-file-input__droppable--over\";\n if (event.dataTransfer.items.length) {\n classToAdd = \"tna-file-input__droppable--over-multiple\";\n }\n this.$droppableArea.classList.add(classToAdd);\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;\n if (this.acceptMutltipleFiles) {\n if (files.length) {\n let fileText = \"file\";\n /* eslint-disable-next-line no-magic-numbers */\n if (files.length > 1) {\n fileText += \"s\";\n }\n const textContent = `${files.length} ${fileText} selected`;\n this.$pseudoSelectFileText.textContent = textContent;\n } else {\n this.$pseudoSelectFileText.textContent = `No files selected`;\n }\n } else {\n this.$pseudoSelectFileText.textContent =\n /* eslint-disable-next-line no-magic-numbers */\n files[0]?.name || `No file selected`;\n }\n if (files.length) {\n this.$droppableArea.classList.remove(\"tna-file-input__droppable--empty\");\n } else {\n this.$droppableArea.classList.add(\"tna-file-input__droppable--empty\");\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\", (event) => {\n const $button = event.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 /* eslint-disable-next-line no-magic-numbers */\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 /* eslint-disable-next-line no-magic-numbers */\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\", (event) => {\n let preventDefaultKeyAction = false;\n switch (event.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 default:\n break;\n }\n if (preventDefaultKeyAction) {\n event.stopPropagation();\n event.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 /* eslint-disable-next-line no-magic-numbers */\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 /* eslint-disable-next-line no-magic-numbers */\n let nextIndexToShow = this.getCurrentItemIndex() - 1;\n /* eslint-disable-next-line no-magic-numbers */\n if (nextIndexToShow < 0) {\n /* eslint-disable-next-line no-magic-numbers */\n nextIndexToShow = this.$items.length - 1;\n }\n this.showItem(this.$items[nextIndexToShow].id);\n }\n\n showNextItem() {\n /* eslint-disable-next-line no-magic-numbers */\n let nextIndexToShow = this.getCurrentItemIndex() + 1;\n if (nextIndexToShow >= this.$items.length) {\n /* eslint-disable-next-line no-magic-numbers */\n nextIndexToShow = 0;\n }\n this.showItem(this.$items[nextIndexToShow].id);\n }\n\n showFirstItem() {\n /* eslint-disable-next-line no-magic-numbers */\n this.showItem(this.$items[0].id);\n }\n\n showLastItem() {\n /* eslint-disable-next-line no-magic-numbers */\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\", (event) => {\n if (event.code === \"Escape\" && this.mql.matches && this.menuOpened) {\n this.menuOpened = false;\n this.syncState();\n this.$toggleButton.focus();\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 /* eslint-disable-next-line no-magic-numbers */\n for (let index = 0; index < this.$links.length; index += 1) {\n this.$links[index].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 /* eslint-disable-next-line no-magic-numbers */\n for (let index = 0; index < this.$links.length; index += 1) {\n this.$links[index].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\", (event) => {\n if (event.code === \"Escape\" && this.menuOpened && this.mql.matches) {\n this.menuOpened = false;\n this.syncState();\n this.$toggleButton.focus();\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 /* eslint-disable-next-line no-magic-numbers */\n for (let index = 0; index < this.$links.length; index += 1) {\n this.$links[index].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 /* eslint-disable-next-line no-magic-numbers */\n for (let index = 0; index < this.$links.length; index += 1) {\n this.$links[index].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\", (event) => {\n switch (event.key) {\n case \"Escape\":\n this.toggleTranscript();\n this.$transcriptToggle.focus();\n break;\n default:\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 Sidebar {\n constructor($module, options = {}) {\n this.$module = $module;\n this.items =\n $module &&\n Array.from($module.querySelectorAll(\".tna-sidebar__item\"))\n .map(($item) => {\n const id = $item\n .querySelector(\".tna-sidebar__link[href^='#']\")\n .getAttribute(\"href\")\n /* eslint-disable-next-line no-magic-numbers */\n .substring(1);\n const target = document.getElementById(id);\n return {\n $item,\n id,\n target,\n };\n })\n .filter((item) => item.target);\n\n if (!this.$module || !this.items) {\n return;\n }\n\n this.breakpoints = {\n tiny:\n getComputedStyle(document.documentElement).getPropertyValue(\n \"--media-breakpoint-tiny\",\n ) || \"480px\",\n small:\n getComputedStyle(document.documentElement).getPropertyValue(\n \"--media-breakpoint-small\",\n ) || \"768px\",\n medium:\n getComputedStyle(document.documentElement).getPropertyValue(\n \"--media-breakpoint-medium\",\n ) || \"1024px\",\n };\n\n /* eslint-disable-next-line no-magic-numbers */\n const { scrollTopThreshold = 0, disableHighlightSize = \"small\" } = options;\n\n if (disableHighlightSize) {\n if (!Object.keys(this.breakpoints).includes(disableHighlightSize)) {\n throw new Error(\n `Invalid value for disableHighlightSize: ${disableHighlightSize}. Expected one of: ${Object.keys(this.breakpoints).join(\", \")}`,\n );\n }\n this.hideOnDevice = window.matchMedia(\n `(max-width: ${this.breakpoints[disableHighlightSize]})`,\n );\n } else {\n this.hideOnDevice = null;\n }\n\n this.scrollTopThreshold = scrollTopThreshold;\n\n this.init();\n }\n\n init() {\n this.currentItem = null;\n\n window.addEventListener(\"scroll\", () => this.highlightCurrentSection());\n window.addEventListener(\"resize\", () => this.highlightCurrentSection());\n this.highlightCurrentSection();\n }\n\n highlightCurrentSection() {\n if (this.hideOnDevice && this.hideOnDevice.matches) {\n this.items.forEach((item) => {\n item.$item.classList.remove(\"tna-sidebar__item--current\");\n });\n this.currentItem = null;\n return;\n }\n\n const $topItem = this.items.findLast(\n (item) =>\n Math.floor(item.target.getBoundingClientRect().top) <=\n this.scrollTopThreshold,\n );\n\n if ($topItem !== this.currentItem) {\n this.items.forEach((item) => {\n if ($topItem && item === $topItem) {\n this.currentItem = item;\n this.currentItem.$item.classList.add(\"tna-sidebar__item--current\");\n } else {\n item.$item.classList.remove(\"tna-sidebar__item--current\");\n }\n });\n }\n this.currentItem = $topItem || null;\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 (event) => this.handleItemLinkClick(event),\n true,\n );\n });\n this.switchTabByIndex(this.currentTabIndex);\n this.$module.addEventListener(\"keydown\", (event) =>\n this.handleItemLinkKeyDown(event),\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 /* eslint-disable-next-line no-magic-numbers */\n this.switchTabByIndex(0, true);\n preventDefaultKeyAction = true;\n break;\n case \"End\":\n /* eslint-disable-next-line no-magic-numbers */\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 /* eslint-disable-next-line no-magic-numbers */\n if (this.currentTabIndex < this.$tabListItemLinks.length - 1) {\n /* eslint-disable-next-line no-magic-numbers */\n this.switchTabByIndex(this.currentTabIndex + 1, true);\n } else {\n /* eslint-disable-next-line no-magic-numbers */\n this.switchTabByIndex(0, true);\n }\n }\n\n previousTab() {\n /* eslint-disable-next-line no-magic-numbers */\n if (this.currentTabIndex >= 1) {\n /* eslint-disable-next-line no-magic-numbers */\n this.switchTabByIndex(this.currentTabIndex - 1, true);\n } else {\n /* eslint-disable-next-line no-magic-numbers */\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 TextInputPassword {\n constructor($module) {\n this.$module = $module;\n this.$input = $module && $module.querySelector(\".tna-text-input\");\n\n if (\n !this.$module ||\n !this.$input ||\n this.$input.getAttribute(\"type\") !== \"password\"\n ) {\n return;\n }\n\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(\"aria-controls\", this.$input.id);\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 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","export class TextAreaItemisedRows {\n constructor($module, options = {}) {\n this.$module = $module;\n this.$formFieldInput =\n this.$module && this.$module.querySelector(\".tna-textarea\");\n this.$formFieldInputHint =\n this.$module && this.$module.querySelector(\".tna-form-item__hint\");\n this.$formFieldBody =\n this.$module && this.$module.querySelector(\".tna-form-item__body\");\n\n if (\n !this.$module ||\n !this.$formFieldInput ||\n !this.$formFieldBody ||\n this.$formFieldInput.getAttribute(\"hidden\") !== null\n ) {\n return;\n }\n\n const { enhancedHint } = options;\n\n this.values = this.$formFieldInput.value\n .split(\"\\n\")\n .map((value) => value.trim())\n .filter((value) => value);\n\n this.id = this.$formFieldInput.id;\n\n this.$formFieldNewInput = document.createElement(\"input\");\n this.$formFieldNewInput.classList.add(\"tna-text-input\");\n [\"id\", \"aria-describedby\"].forEach((attribute) => {\n this.$formFieldNewInput.setAttribute(\n attribute,\n this.$formFieldInput.getAttribute(attribute),\n );\n this.$formFieldInput.removeAttribute(attribute);\n });\n this.$formFieldBody.appendChild(this.$formFieldNewInput);\n this.$formFieldInput.setAttribute(\"hidden\", \"\");\n this.$formFieldInput.addEventListener(\"keyup\", () => this.updateList());\n this.$formFieldNewInput.addEventListener(\"keypress\", (event) => {\n if (event.key === \"Enter\") {\n this.appendValue(event.target.value);\n }\n });\n\n this.$formFieldNewInputAddButton = document.createElement(\"button\");\n this.$formFieldNewInputAddButton.setAttribute(\"type\", \"button\");\n this.$formFieldNewInputAddButton.classList.add(\n \"tna-button\",\n \"tna-button--small\",\n );\n this.$formFieldNewInputAddButtonInner = document.createElement(\"span\");\n this.$formFieldNewInputAddButtonInner.innerText = \"Add\";\n this.$formFieldNewInputAddButtonInnerExtra = document.createElement(\"span\");\n this.$formFieldNewInputAddButtonInnerExtra.classList.add(\n \"tna-visually-hidden\",\n );\n this.$formFieldNewInputAddButtonInnerExtra.innerText = \" to list\";\n this.$formFieldNewInputAddButtonInner.appendChild(\n this.$formFieldNewInputAddButtonInnerExtra,\n );\n this.$formFieldNewInputAddButton.appendChild(\n this.$formFieldNewInputAddButtonInner,\n );\n this.$formFieldBody.appendChild(this.$formFieldNewInputAddButton);\n this.$formFieldNewInputAddButton.addEventListener(\"click\", () => {\n this.appendValue(this.$formFieldNewInput.value);\n });\n\n this.$formFieldLiveAria = document.createElement(\"div\");\n this.$formFieldLiveAria.setAttribute(\"aria-live\", \"assertive\");\n this.$formFieldLiveAria.classList.add(\"tna-visually-hidden\");\n this.$module.appendChild(this.$formFieldLiveAria);\n\n this.$formFieldCounter = document.createElement(\"p\");\n this.$formFieldCounter.id = `${this.id}-list-helper`;\n this.$formFieldCounter.classList.add(\"tna-!--margin-top-xs\");\n this.$module.appendChild(this.$formFieldCounter);\n\n this.$formFieldNewInput.setAttribute(\n \"aria-describedby\",\n `${this.$formFieldNewInput.getAttribute(\"aria-describedby\")} ${\n this.$formFieldCounter.id\n }`,\n );\n\n this.$valuesList = document.createElement(\"ul\");\n this.$valuesList.classList.add(\n \"tna-compound-filters\",\n \"tna-!--margin-top-xs\",\n );\n this.$valuesList.addEventListener(\"blur\", () => {\n this.$valuesList.removeAttribute(\"tabindex\");\n this.updateAriaText(\"\");\n });\n this.$module.appendChild(this.$valuesList);\n\n if (!this.$formFieldInputHint) {\n this.$formFieldInputHint = document.createElement(\"p\");\n this.$formFieldInputHint.classList.add(\"tna-form-item__hint\");\n this.$formFieldBody.parentNode.insertBefore(\n this.$formFieldInputHint,\n this.$formFieldBody,\n );\n }\n this.$formFieldInputHint.innerText =\n enhancedHint || \"Enter an item and press enter\";\n\n this.updateList();\n }\n\n updateAriaText(content) {\n this.$formFieldLiveAria.innerText = content;\n }\n\n /* eslint-disable-next-line class-methods-use-this */\n normaliseValue(value) {\n return value.replace(/\\s{2,}/u, \" \").trim();\n }\n\n isValueInList(value) {\n return this.values\n .map((eachValue) => this.normaliseValue(eachValue).toLowerCase())\n .includes(value.toLowerCase().trim());\n }\n\n appendValue(value) {\n const newValue = this.normaliseValue(value);\n if (newValue) {\n if (this.isValueInList(newValue)) {\n this.updateAriaText(`'${newValue}' already added`);\n } else {\n this.values.push(newValue);\n this.$formFieldInput.value = this.values.join(\"\\n\");\n this.updateList();\n this.updateAriaText(`'${newValue}' added`);\n }\n } else {\n this.updateAriaText(\"Enter an item to add\");\n }\n this.$formFieldNewInput.value = \"\";\n this.$formFieldNewInput.focus();\n }\n\n removeValue(value) {\n const removeValue = this.normaliseValue(value);\n if (removeValue && this.isValueInList(removeValue)) {\n this.values = this.values.filter(\n (existingValue) => existingValue !== removeValue,\n );\n this.$formFieldInput.value = this.values.join(\"\\n\");\n this.updateList();\n this.updateAriaText(`'${removeValue}' removed`);\n }\n if (this.values.length) {\n this.$valuesList.setAttribute(\"tabindex\", \"0\");\n this.$valuesList.focus();\n } else {\n this.$formFieldNewInput.focus();\n }\n }\n\n updateList() {\n this.$valuesList.innerHTML = \"\";\n this.values\n .map((value) => {\n const $item = document.createElement(\"li\");\n $item.classList.add(\"tna-compound-filters__item\");\n const $itemLabel = document.createElement(\"span\");\n $itemLabel.innerText = value;\n $item.appendChild($itemLabel);\n\n const $removeItemButton = document.createElement(\"button\");\n $removeItemButton.innerText = `Remove '${value}'`;\n $removeItemButton.setAttribute(\"type\", \"button\");\n $removeItemButton.classList.add(\"tna-compound-filters__link\");\n $removeItemButton.addEventListener(\"click\", () => {\n this.removeValue(value);\n });\n $item.appendChild($removeItemButton);\n return $item;\n })\n .forEach(($item) => this.$valuesList.appendChild($item));\n\n let innerTextItemValue = \"item\";\n /* eslint-disable-next-line no-magic-numbers */\n if (this.values.length !== 1) {\n innerTextItemValue += \"s\";\n }\n const innerTextValue = `${this.values.length} ${innerTextItemValue} added`;\n this.$formFieldCounter.innerText = innerTextValue;\n }\n}\n","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 /* eslint-disable-next-line no-constructor-return */\n return window.TNAFrontendCookieEvents;\n }\n window.TNAFrontendCookieEvents = this;\n }\n\n log(...args) {\n if (this.debug) {\n /* eslint-disable-next-line no-console */\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\n for (\n /* eslint-disable-next-line no-magic-numbers */\n let eventIndex = this.oneTimeEvents[event].length - 1;\n /* eslint-disable-next-line no-magic-numbers */\n eventIndex >= 0;\n /* eslint-disable-next-line no-magic-numbers */\n eventIndex -= 1\n ) {\n const eventToTrigger = this.oneTimeEvents[event][eventIndex];\n eventToTrigger.call(this, data);\n /* eslint-disable-next-line no-magic-numbers */\n this.oneTimeEvents[event].splice(eventIndex, 1);\n }\n }\n }\n}\n","/* eslint-disable max-lines */\n/* eslint-disable no-console */\n\nimport { CookieEventHandler } from \"./cookie-events.mjs\";\n\nwindow.TNAFrontendCookies ||= null;\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 /* eslint-disable-next-line no-constructor-return */\n return window.TNAFrontendCookies;\n }\n if (defaultDomain) {\n this.defaultDomain = defaultDomain;\n } else {\n this.defaultDomain =\n document.documentElement.dataset.tnaCookiesDomain ||\n window.location.hostname;\n }\n if (defaultPath) {\n this.defaultPath = defaultPath;\n } else {\n this.defaultPath = document.documentElement.dataset.tnaCookiesPath || \"/\";\n }\n if (secure) {\n this.secure = secure;\n } else {\n this.secure =\n document.documentElement.dataset.tnaCookiesInsecure !== \"true\";\n }\n if (policiesKey) {\n this.policiesKey = policiesKey;\n } else {\n this.policiesKey =\n document.documentElement.dataset.tnaCookiesPoliciesKey ||\n \"cookies_policy\";\n }\n if (defaultAge) {\n this.defaultAge = defaultAge;\n } else {\n /* eslint-disable-next-line no-magic-numbers */\n const secondsInAYear = 365 * 24 * 60 * 60;\n this.defaultAge =\n parseInt(document.documentElement.dataset.tnaCookiesDefaultAge, 10) ||\n secondsInAYear;\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) {\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 /* eslint-disable-next-line class-methods-use-this */\n get all() {\n const deserialised = {};\n document.cookie\n .split(\"; \")\n .filter((cookie) => cookie.trim() !== \"\")\n .forEach((cookie) => {\n const parts = cookie.trim().split(\"=\");\n const [key, value] = parts;\n if (key) {\n deserialised[key] = decodeURIComponent(value || \"\");\n }\n });\n return deserialised;\n }\n\n /** @protected */\n get policies() {\n try {\n return JSON.parse(this.get(this.policiesKey) || \"{}\");\n // eslint-disable-next-line no-unused-vars\n } catch (error) {\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|null}\n */\n get(key) {\n if (this.exists(key)) {\n return decodeURIComponent(this.all[key]);\n }\n return 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 let secureString = \"\";\n if (secure) {\n secureString = \"; secure\";\n }\n let sessionString = \"\";\n if (!session) {\n sessionString = `; max-age=${maxAge}`;\n }\n const cookie = `${encodeURIComponent(key)}=${encodeURIComponent(value)}; domain=${domain}; samesite=${sameSite}; path=${path}${sessionString}${secureString}`;\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 || this.defaultDomain };\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((key) => [key.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((key) => [key.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 if (Object.hasOwn(this.policies, policy)) {\n return this.policies[policy] === true;\n }\n return 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 iso8601ToPrettyDatetime = (dateStr) => {\n const datetime = dateStr;\n\n if (!datetime) {\n throw new Error(\"No datetime provided\");\n }\n const isDateTime =\n /^\\d{4}(?:-\\d{2}){2}(?:T| )\\d{2}(?::\\d{2}){1,2}(?:\\.\\d+)?(?:Z|(?:[+-]\\d{2}:\\d{2}))?$/u.test(\n datetime,\n );\n const isDate = /^\\d{4}(?:-\\d{2}){2}$/u.test(datetime);\n if (!isDateTime && !isDate) {\n throw new Error(\"Invalid datetime provided\");\n }\n\n const date = new Date(datetime);\n if (!(date instanceof Date) || isNaN(date)) {\n throw new Error(\"Invalid datetime provided\");\n }\n\n const dayString = date.toLocaleDateString(\"en-GB\", {\n weekday: \"long\",\n });\n const dateString = date.toLocaleDateString(\"en-GB\", {\n day: \"numeric\",\n month: \"long\",\n year: \"numeric\",\n });\n\n if (isDateTime && (date.getHours() || date.getMinutes())) {\n let timeString = date.toLocaleTimeString(\"en-GB\", {\n hour: \"2-digit\",\n minute: \"2-digit\",\n });\n if (date.getSeconds()) {\n timeString = date.toLocaleTimeString(\"en-GB\", {\n hour: \"2-digit\",\n minute: \"2-digit\",\n second: \"2-digit\",\n });\n }\n return `${dayString} ${dateString}, ${timeString}`;\n }\n return `${dayString} ${dateString}`;\n};\n\n/*\n * ==========================================\n * Transform any <time> element into a pretty\n * and human readable format that is based on\n * the valid ISO 8601 datetime attribute. The\n * replaced value will be localised according\n * to user's system settings, repurposing the\n * original text content as a title attribute\n * to allow users to see the value. A null or\n * invalid datetime format will result in the\n * element not being modified. If the updated\n * value is similar to the starting value for\n * the element text content, then the element\n * will not be updated to avoid redundancy.\n * ------------------------------------------\n * For example if the user's system has a UTC\n * timezone set then the element:\n *\n * <time\n * datetime=\"2026-03-05T13:48:00-05:00\"\n * >\n * 5 March 2026, 13:48 (UTC -5)\n * </time>\n *\n * would become:\n *\n * <time\n * datetime=\"2026-03-05T13:48:00-05:00\"\n * title=\"5 March 2026, 13:48 (UTC -5)\"\n * >\n * Thursday 5 March 2026, 09:48\n * </time>\n * ==========================================\n */\nexport const updateTimeElement = ($el) => {\n const datetime = $el.getAttribute(\"datetime\");\n\n try {\n const prettyDatetime = iso8601ToPrettyDatetime(datetime);\n if (!prettyDatetime.includes($el.textContent)) {\n $el.setAttribute(\"title\", $el.textContent);\n $el.textContent = prettyDatetime;\n }\n // eslint-disable-next-line no-unused-vars\n } catch (error) {\n // Do nothing if the datetime is invalid or not provided\n }\n};\n\nexport const checkTableForScroll = ($tableWrapper) => {\n const $caption = $tableWrapper.querySelector(\"caption\");\n if (!($tableWrapper.dataset.tableScrollInitialised === \"true\")) {\n if ($caption && !$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","/* eslint-disable no-magic-numbers */\n/* eslint-disable no-bitwise */\nconst uuidv4 = () =>\n ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/gu, (char) =>\n (\n char ^\n (crypto.getRandomValues(new Uint8Array(1))[0] & (15 >> (char / 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};","/* eslint-disable no-new */\nimport { Accordion } from \"./components/accordion/accordion.mjs\";\nimport { Breadcrumbs } from \"./components/breadcrumbs/breadcrumbs.mjs\";\nimport { CodeBlock } from \"./components/code-block/code-block.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 { Sidebar } from \"./components/sidebar/sidebar.mjs\";\nimport { SkipLink } from \"./components/skip-link/skip-link.mjs\";\nimport { Tabs } from \"./components/tabs/tabs.mjs\";\nimport { TextInputPassword } from \"./components/text-input/text-input.mjs\";\nimport { TextAreaItemisedRows } from \"./components/textarea/textarea.mjs\";\nimport Cookies from \"./lib/cookies.mjs\";\nimport { checkTableForScroll, updateTimeElement } from \"./lib/helpers.mjs\";\n\nconst initAll = (options = {}) => {\n const { scope } = options;\n let $scope = document;\n if (scope) {\n if (scope instanceof HTMLElement) {\n $scope = scope;\n } else {\n throw new Error(\"Scope must be an HTMLElement\");\n }\n }\n const $html = document.documentElement;\n $html.classList.add(\"tna-template--js-enabled\");\n\n const onFirstTouch = () => {\n window.removeEventListener(\"touchstart\", onFirstTouch);\n $html.classList.add(\"tna-template--touched\");\n };\n window.addEventListener(\"touchstart\", onFirstTouch);\n\n const onKeyDown = (event) => {\n if (event.key === \"Tab\") {\n $html.classList.add(\"tna-template--tabbed\");\n $html.classList.remove(\"tna-template--clicked\");\n }\n };\n window.addEventListener(\"keydown\", onKeyDown);\n\n const onMouseDown = () => {\n $html.classList.add(\"tna-template--clicked\");\n $html.classList.remove(\"tna-template--tabbed\");\n };\n window.addEventListener(\"mousedown\", onMouseDown);\n\n /*\n * ==========================================\n * Checks if widths of all tables on the page\n * are wider than their parent container, and\n * allowing horizontal scrolling if they are.\n * This is done both on load and on resize.\n * ==========================================\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 // Remove this opt-in class in a later release\n if ($html.classList.contains(\"tna-template--enhance-time-elements\")) {\n document.querySelectorAll(\"time[datetime]\").forEach(updateTimeElement);\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 $codeBlocks = $scope.querySelectorAll('[data-module=\"tna-code-block\"]');\n $codeBlocks.forEach(($codeBlock) => {\n new CodeBlock($codeBlock);\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 $sidebar = $scope.querySelector('[data-module=\"tna-sidebar-sections\"]');\n if ($sidebar) {\n const { scrollTopThreshold, disableHighlightSize } = $sidebar.dataset;\n new Sidebar($sidebar, { scrollTopThreshold, disableHighlightSize });\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 $textAreaItemisedRows = $scope.querySelectorAll(\n '[data-module=\"tna-textarea-itemised-rows\"]',\n );\n $textAreaItemisedRows.forEach(($textAreaWithItemisedRows) => {\n const { enhancedHint } = $textAreaWithItemisedRows.dataset;\n new TextAreaItemisedRows($textAreaWithItemisedRows, { enhancedHint });\n });\n\n const $textInputPasswords = $scope.querySelectorAll(\n '[data-module=\"tna-text-input-password\"]',\n );\n $textInputPasswords.forEach(($textInputPassword) => {\n new TextInputPassword($textInputPassword);\n });\n\n window.matchMedia(\"print\").addEventListener(\"change\", (evt) => {\n if (evt.matches) {\n $scope\n .querySelectorAll(\".tna-details__details:not([open])\")\n .forEach(($element) => {\n $element.setAttribute(\"open\", \"\");\n $element.dataset.wasClosed = \"\";\n });\n $scope\n .querySelectorAll(\n \".tna-accordion__content[hidden], .tna-picture__transcript[hidden]\",\n )\n .forEach(($element) => {\n $element.removeAttribute(\"hidden\");\n $element.dataset.wasClosed = \"\";\n });\n } else {\n $scope\n .querySelectorAll(\".tna-details__details[data-was-closed]\")\n .forEach(($element) => {\n $element.removeAttribute(\"open\");\n delete $element.dataset.wasClosed;\n });\n $scope\n .querySelectorAll(\n \".tna-accordion__content[data-was-closed], .tna-picture__transcript[data-was-closed]\",\n )\n .forEach(($element) => {\n $element.setAttribute(\"hidden\", \"\");\n $element.dataset.wasClosed = \"\";\n });\n }\n });\n};\n\nexport {\n initAll,\n Cookies,\n Accordion,\n Breadcrumbs,\n CodeBlock,\n CookieBanner,\n DateInputProgressive,\n ErrorSummary,\n FileInputDroppable,\n Footer,\n Gallery,\n GlobalHeader,\n Header,\n Picture,\n Sidebar,\n SkipLink,\n Tabs,\n TextInputPassword,\n TextAreaItemisedRows,\n checkTableForScroll,\n updateTimeElement,\n};\n"],"names":["root","factory","exports","module","define","amd","self","Accordion","$module","_this","this","_classCallCheck","$items","querySelectorAll","allowMultipleItemsOpen","dataset","singleOpenItem","forEach","$item","initItem","initState","$toggleAllButton","querySelector","syncToggleAllButton","removeAttribute","addEventListener","isAllOpen","closeItem","openItem","key","value","_this2","$heading","$content","classList","add","remove","setAttribute","$headingButton","document","createElement","id","innerText","appendChild","getAttribute","_this3","isopen","closeAllItemsExcept","concat","trim","$tableWrapper","$wrapper","checkTableForScroll","$excludeItem","_this4","Array","from","filter","every","closeAllLabel","openAllLabel","Breadcrumbs","_createClass","$breadcrumbsList","$breadcrumbs","length","contains","uniqueId","uuidv4","$expandable","style","display","$expandButton","innerHTML","focus","once","insertBefore","nextSibling","e","t","r","Symbol","n","iterator","o","toStringTag","i","c","prototype","Generator","u","Object","create","_regeneratorDefine2","f","p","y","G","v","a","d","bind","l","TypeError","call","done","GeneratorFunction","GeneratorFunctionPrototype","getPrototypeOf","setPrototypeOf","__proto__","displayName","_regenerator","w","m","defineProperty","_invoke","enumerable","configurable","writable","asyncGeneratorStep","Promise","resolve","then","_asyncToGenerator","arguments","apply","_next","_throw","_defineProperties","_toPropertyKey","_typeof","toPrimitive","String","_toPrimitive","CodeBlock","$code","$copyButton","navigator","clipboard","_callee","_context","writeText","CookieBanner","$acceptButton","$rejectButton","$prompt","$acceptedMessage","$rejectedMessage","$closeButtons","cookies","Cookies","newInstance","cookiePreferencesSetKey","preferencesKey","policiesCorrectOnInit","exists","hasValue","accept","reject","complete","acceptAllPolicies","rejectAllPolicies","set","$closeButton","close","DateInputProgressive","$yearWrapper","$yearInput","$monthWrapper","$monthInput","$dayWrapper","$dayInput","update","window","isValidYear","showMonth","isValidMonth","showDay","hideDay","hideMonth","yearValue","parseInt","isNaN","monthRawValue","monthIntValue","includes","toLowerCase","ErrorSummary","disableAutofocus","setFocus","event","handleClick","$element","_options$onBeforeFocu","options","undefined","isFocusable","onBlur","_options$onBlur","onBeforeFocus","$target","target","focusTarget","preventDefault","url","split","pop","HTMLAnchorElement","inputId","getFragmentFromUrl","href","$input","getElementById","$legendOrLabel","getAssociatedLegendOrLabel","scrollIntoView","preventScroll","_document$querySelect","$fieldset","closest","$legends","getElementsByTagName","$candidateLegend","_slicedToArray","HTMLInputElement","type","legendTop","getBoundingClientRect","top","inputRect","height","innerHeight","FileInputDroppable","$body","acceptMutltipleFiles","hasAttribute","$droppableArea","$pseudoSelectFileText","fileText","textContent","$droppableButtons","$pseudoSelectFileButton","$pseudoDropFileButton","$droppableAreaAriaLabel","showDropTarget","hideDropTarget","onChange","dataTransfer","hasNoTypesInfo","types","isDraggingFiles","some","updateAriaLabel","isContainingFiles","classToAdd","items","_files$","files","name","Footer","themeCookieName","$themeSelector","$themeSelectorNotice","$themeSelectorEnableSettingsCookiesButton","$tnaTemplate","currentTheme","themeOnLoad","$themeSelectorButtons","$themeSelectorButton","$button","setTheme","selectThemeSelectorButton","acceptPolicy","showThemeSelector","on","data","hasOwn","settings","$currentThemeButton","find","get","isPolicyAccepted","theme","$selectedButton","Gallery","$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","findIndex","nextIndexToShow","GlobalHeader","$toggleButton","$topNavigation","$links","menuOpened","mql","matchMedia","syncState","handleToggleNavigation","addListener","code","matches","show","hide","hidden","index","Header","Picture","$imageWrapper","$transcriptToggle","$transcript","transcriptOpened","openLabel","informationLabelOpen","closeLabel","informationLabelClose","init","toggleTranscript","Sidebar","map","substring","item","breakpoints","tiny","getComputedStyle","documentElement","getPropertyValue","small","medium","_options$scrollTopThr","scrollTopThreshold","_options$disableHighl","disableHighlightSize","keys","Error","join","hideOnDevice","currentItem","highlightCurrentSection","$topItem","findLast","Math","floor","SkipLink","_$module$getAttribute","linkedElementId","$linkedElement","focusLinkedElement","linkedElementListener","removeFocusProperties","Tabs","$tabList","$tabListItemLinks","$tabItems","currentTabIndex","$tabListItemLink","tabPanelID","$tabPanel","handleItemLinkClick","switchTabByIndex","handleItemLinkKeyDown","itemLinkClickEvent","targetItem","currentTarget","switchTabByID","itemLinkKeyDownEvent","previousTab","nextTab","newIndex","switchFocus","$tabItem","targetId","TextInputPassword","$textInputWrapper","$textInputPasswordToggle","updateTogglePasswordButtonText","togglePasswordType","TextAreaItemisedRows","$formFieldInput","$formFieldInputHint","$formFieldBody","enhancedHint","values","$formFieldNewInput","attribute","updateList","appendValue","$formFieldNewInputAddButton","$formFieldNewInputAddButtonInner","$formFieldNewInputAddButtonInnerExtra","$formFieldLiveAria","$formFieldCounter","$valuesList","updateAriaText","parentNode","content","replace","eachValue","normaliseValue","newValue","isValueInList","push","removeValue","existingValue","$itemLabel","$removeItemButton","innerTextItemValue","innerTextValue","_window","TNAFrontendCookieEvents","CookieEventHandler","debug","_defineProperty","log","_console","_len","args","_key","console","callback","events","_toConsumableArray","oneTimeEvents","eventToTrigger","eventIndex","splice","TNAFrontendCookies","tnaCookiePolicies","tnaFrontendDebug","defaultDomain","defaultPath","secure","policiesKey","defaultAge","_options$newInstance","_options$noInit","noInit","tnaCookiesDomain","location","hostname","tnaCookiesPath","tnaCookiesInsecure","tnaCookiesPoliciesKey","tnaCookiesDefaultAge","policies","policy","existingPolicies","filteredExistingPolicies","fromEntries","savePolicies","_objectSpread","usage","marketing","essential","all","deserialised","cookie","_parts","decodeURIComponent","JSON","parse","error","_options$maxAge","maxAge","_options$sameSite","sameSite","_options$domain","domain","_options$path","path","_options$secure","_options$session","session","secureString","sessionString","encodeURIComponent","trigger","setPolicy","accepted","allPolicies","stringify","updateTimeElement","$el","datetime","prettyDatetime","dateStr","isDateTime","test","isDate","date","Date","dayString","toLocaleDateString","weekday","dateString","day","month","year","getHours","getMinutes","timeString","toLocaleTimeString","hour","minute","getSeconds","second","iso8601ToPrettyDatetime","$caption","tableScrollInitialised","scrollWidth","clientWidth","__WEBPACK_DEFAULT_EXPORT__","char","crypto","getRandomValues","Uint8Array","toString","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","definition","obj","prop","hasOwnProperty","initAll","scope","$scope","HTMLElement","$html","onFirstTouch","removeEventListener","$tableWrappers","$accordion","$codeBlock","$cookieBanner","$dateInput","$errorSummary","$fileInput","$footer","$gallery","$globalHeader","$header","$picture","$sidebar","_$sidebar$dataset","$skipLink","$tabModule","$textAreaWithItemisedRows","$textInputPassword","evt","wasClosed"],"sourceRoot":""}
1
+ {"version":3,"file":"all.js","mappings":"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","sources":["webpack://TNAFrontend/webpack/universalModuleDefinition","webpack://TNAFrontend/./src/nationalarchives/components/accordion/accordion.mjs","webpack://TNAFrontend/./src/nationalarchives/components/breadcrumbs/breadcrumbs.mjs","webpack://TNAFrontend/./src/nationalarchives/components/code-block/code-block.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/sidebar/sidebar.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/components/textarea/textarea.mjs","webpack://TNAFrontend/./src/nationalarchives/lib/cookie-events.mjs","webpack://TNAFrontend/./src/nationalarchives/lib/cookies.mjs","webpack://TNAFrontend/./src/nationalarchives/lib/helpers.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","webpack://TNAFrontend/./src/nationalarchives/all.mjs"],"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 { checkTableForScroll } from \"../../lib/helpers.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 return;\n }\n\n if (\n /* eslint-disable-next-line no-magic-numbers */\n this.$breadcrumbs.length > 2 &&\n !this.$module.classList.contains(\"tna-breadcrumbs--no-collapse\")\n ) {\n this.init();\n }\n }\n\n init() {\n const uniqueId = `tna-breadcrumbs-${uuidv4()}`;\n const $expandable = document.createElement(\"li\");\n $expandable.classList.add(\n \"tna-breadcrumbs__item\",\n \"tna-breadcrumbs__item--expandable\",\n );\n $expandable.style.display = \"none\";\n\n const $expandButton = document.createElement(\"button\");\n $expandButton.classList.add(\"tna-breadcrumbs__link\");\n $expandButton.innerHTML =\n \"<span class='tna-!--visually-hidden'>Expand breadcrumbs</span>&hellip;\";\n $expandButton.setAttribute(\"type\", \"button\");\n $expandButton.setAttribute(\"aria-expanded\", \"false\");\n $expandButton.setAttribute(\"aria-controls\", uniqueId);\n $expandButton.addEventListener(\"click\", () => {\n this.$module.classList.remove(\"tna-breadcrumbs--collapsed\");\n $expandable.remove();\n this.$module.setAttribute(\"tabindex\", \"0\");\n this.$module.focus();\n this.$module.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 /* eslint-disable-next-line no-magic-numbers */\n this.$breadcrumbs[this.$breadcrumbs.length - 2].nextSibling,\n );\n\n this.$module.classList.add(\"tna-breadcrumbs--collapsed\");\n }\n}\n","export class CodeBlock {\n constructor($module) {\n this.$module = $module;\n this.$code = this.$module.querySelector(\"pre code\");\n this.$copyButton = this.$module.querySelector(\".tna-code-block__copy\");\n\n if (\n !this.$module ||\n !this.$code ||\n !this.$copyButton ||\n !navigator.clipboard\n ) {\n return;\n }\n\n this.$copyButton.removeAttribute(\"hidden\");\n this.$module.classList.add(\"tna-code-block__copyable\");\n\n this.$copyButton.addEventListener(\"click\", async () => {\n try {\n await navigator.clipboard.writeText(this.$code.innerText);\n this.$copyButton.innerText = \"Code copied\";\n } catch {\n // Continue regardless of error\n }\n });\n\n this.$copyButton.addEventListener(\"blur\", () => {\n this.$copyButton.innerText = \"Copy code\";\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(), 10);\n /* eslint-disable-next-line no-magic-numbers */\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, 10);\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 /* eslint-disable-next-line no-magic-numbers */\n monthIntValue > 0 &&\n /* eslint-disable-next-line no-magic-numbers */\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 /* eslint-disable-next-line class-methods-use-this */\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 blur\n */\n function onBlur() {\n options.onBlur?.call($element);\n\n if (!isFocusable) {\n $element.removeAttribute(\"tabindex\");\n }\n }\n\n /**\n * Handle element focus\n */\n function onFocus() {\n $element.addEventListener(\"blur\", onBlur, { once: true });\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 /* eslint-disable-next-line class-methods-use-this */\n getFragmentFromUrl(url) {\n if (!url.includes(\"#\")) {\n return null;\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 /* eslint-disable-next-line class-methods-use-this */\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;\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 /* eslint-disable no-magic-numbers */\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.init();\n }\n\n init() {\n this.acceptMutltipleFiles = this.$input.hasAttribute(\"multiple\");\n\n this.$droppableArea = document.createElement(\"div\");\n this.$droppableArea.classList.add(\n \"tna-file-input__droppable\",\n \"tna-file-input__droppable--empty\",\n );\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\n let fileText = \"file\";\n if (this.acceptMutltipleFiles) {\n fileText += \"s\";\n }\n\n this.$pseudoSelectFileText.textContent = `No ${fileText} selected`;\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-s\",\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 ${fileText}`;\n $droppableButtons.appendChild($pseudoSelectFileButton);\n\n const $pseudoDropFileButton = document.createElement(\"span\");\n $pseudoDropFileButton.textContent = `or drop ${fileText}`;\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\", (event) =>\n this.showDropTarget(event),\n );\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 /* eslint-disable-next-line class-methods-use-this */\n isContainingFiles(dataTransfer) {\n const hasNoTypesInfo = !dataTransfer.types.length;\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 let classToAdd = \"tna-file-input__droppable--over\";\n if (event.dataTransfer.items.length) {\n classToAdd = \"tna-file-input__droppable--over-multiple\";\n }\n this.$droppableArea.classList.add(classToAdd);\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;\n if (this.acceptMutltipleFiles) {\n if (files.length) {\n let fileText = \"file\";\n /* eslint-disable-next-line no-magic-numbers */\n if (files.length > 1) {\n fileText += \"s\";\n }\n const textContent = `${files.length} ${fileText} selected`;\n this.$pseudoSelectFileText.textContent = textContent;\n } else {\n this.$pseudoSelectFileText.textContent = `No files selected`;\n }\n } else {\n this.$pseudoSelectFileText.textContent =\n /* eslint-disable-next-line no-magic-numbers */\n files[0]?.name || `No file selected`;\n }\n if (files.length) {\n this.$droppableArea.classList.remove(\"tna-file-input__droppable--empty\");\n } else {\n this.$droppableArea.classList.add(\"tna-file-input__droppable--empty\");\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.themeCookieName = themeCookieName;\n\n this.init();\n }\n\n init() {\n this.currentTheme = this.$themeSelector.dataset.themeOnLoad;\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\", (event) => {\n const $button = event.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 /* eslint-disable-next-line no-magic-numbers */\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 /* eslint-disable-next-line no-magic-numbers */\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\", (event) => {\n let preventDefaultKeyAction = false;\n switch (event.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 default:\n break;\n }\n if (preventDefaultKeyAction) {\n event.stopPropagation();\n event.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 /* eslint-disable-next-line no-magic-numbers */\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 /* eslint-disable-next-line no-magic-numbers */\n let nextIndexToShow = this.getCurrentItemIndex() - 1;\n /* eslint-disable-next-line no-magic-numbers */\n if (nextIndexToShow < 0) {\n /* eslint-disable-next-line no-magic-numbers */\n nextIndexToShow = this.$items.length - 1;\n }\n this.showItem(this.$items[nextIndexToShow].id);\n }\n\n showNextItem() {\n /* eslint-disable-next-line no-magic-numbers */\n let nextIndexToShow = this.getCurrentItemIndex() + 1;\n if (nextIndexToShow >= this.$items.length) {\n /* eslint-disable-next-line no-magic-numbers */\n nextIndexToShow = 0;\n }\n this.showItem(this.$items[nextIndexToShow].id);\n }\n\n showFirstItem() {\n /* eslint-disable-next-line no-magic-numbers */\n this.showItem(this.$items[0].id);\n }\n\n showLastItem() {\n /* eslint-disable-next-line no-magic-numbers */\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\", (event) => {\n if (event.code === \"Escape\" && this.mql.matches && this.menuOpened) {\n this.menuOpened = false;\n this.syncState();\n this.$toggleButton.focus();\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 /* eslint-disable-next-line no-magic-numbers */\n for (let index = 0; index < this.$links.length; index += 1) {\n this.$links[index].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 /* eslint-disable-next-line no-magic-numbers */\n for (let index = 0; index < this.$links.length; index += 1) {\n this.$links[index].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\", (event) => {\n if (event.code === \"Escape\" && this.menuOpened && this.mql.matches) {\n this.menuOpened = false;\n this.syncState();\n this.$toggleButton.focus();\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 /* eslint-disable-next-line no-magic-numbers */\n for (let index = 0; index < this.$links.length; index += 1) {\n this.$links[index].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 /* eslint-disable-next-line no-magic-numbers */\n for (let index = 0; index < this.$links.length; index += 1) {\n this.$links[index].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\", (event) => {\n switch (event.key) {\n case \"Escape\":\n this.toggleTranscript();\n this.$transcriptToggle.focus();\n break;\n default:\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 Sidebar {\n constructor($module, options = {}) {\n this.$module = $module;\n this.items =\n $module &&\n Array.from($module.querySelectorAll(\".tna-sidebar__item\"))\n .map(($item) => {\n const id = $item\n .querySelector(\".tna-sidebar__link[href^='#']\")\n .getAttribute(\"href\")\n /* eslint-disable-next-line no-magic-numbers */\n .substring(1);\n const target = document.getElementById(id);\n return {\n $item,\n id,\n target,\n };\n })\n .filter((item) => item.target);\n\n if (!this.$module || !this.items) {\n return;\n }\n\n /* eslint-disable-next-line no-magic-numbers */\n const { scrollTopThreshold = 0, disableHighlightSize = \"small\" } = options;\n this.scrollTopThreshold = scrollTopThreshold;\n this.disableHighlightSize = disableHighlightSize;\n\n this.init();\n }\n\n init() {\n this.breakpoints = {\n tiny:\n getComputedStyle(document.documentElement).getPropertyValue(\n \"--media-breakpoint-tiny\",\n ) || \"480px\",\n small:\n getComputedStyle(document.documentElement).getPropertyValue(\n \"--media-breakpoint-small\",\n ) || \"768px\",\n medium:\n getComputedStyle(document.documentElement).getPropertyValue(\n \"--media-breakpoint-medium\",\n ) || \"1024px\",\n };\n\n if (this.disableHighlightSize) {\n if (!Object.keys(this.breakpoints).includes(this.disableHighlightSize)) {\n throw new Error(\n `Invalid value for disableHighlightSize: ${this.disableHighlightSize}. Expected one of: ${Object.keys(this.breakpoints).join(\", \")}`,\n );\n }\n this.hideOnDevice = window.matchMedia(\n `(max-width: ${this.breakpoints[this.disableHighlightSize]})`,\n );\n } else {\n this.hideOnDevice = null;\n }\n\n this.currentItem = null;\n\n window.addEventListener(\"scroll\", () => this.highlightCurrentSection());\n window.addEventListener(\"resize\", () => this.highlightCurrentSection());\n this.highlightCurrentSection();\n }\n\n highlightCurrentSection() {\n if (this.hideOnDevice && this.hideOnDevice.matches) {\n this.items.forEach((item) => {\n item.$item.classList.remove(\"tna-sidebar__item--current\");\n });\n this.currentItem = null;\n return;\n }\n\n const $topItem = this.items.findLast(\n (item) =>\n Math.floor(item.target.getBoundingClientRect().top) <=\n this.scrollTopThreshold,\n );\n\n if ($topItem !== this.currentItem) {\n this.items.forEach((item) => {\n if ($topItem && item === $topItem) {\n this.currentItem = item;\n this.currentItem.$item.classList.add(\"tna-sidebar__item--current\");\n } else {\n item.$item.classList.remove(\"tna-sidebar__item--current\");\n }\n });\n }\n this.currentItem = $topItem || null;\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 (event) => this.handleItemLinkClick(event),\n true,\n );\n });\n this.switchTabByIndex(this.currentTabIndex);\n this.$module.addEventListener(\"keydown\", (event) =>\n this.handleItemLinkKeyDown(event),\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 /* eslint-disable-next-line no-magic-numbers */\n this.switchTabByIndex(0, true);\n preventDefaultKeyAction = true;\n break;\n case \"End\":\n /* eslint-disable-next-line no-magic-numbers */\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 /* eslint-disable-next-line no-magic-numbers */\n if (this.currentTabIndex < this.$tabListItemLinks.length - 1) {\n /* eslint-disable-next-line no-magic-numbers */\n this.switchTabByIndex(this.currentTabIndex + 1, true);\n } else {\n /* eslint-disable-next-line no-magic-numbers */\n this.switchTabByIndex(0, true);\n }\n }\n\n previousTab() {\n /* eslint-disable-next-line no-magic-numbers */\n if (this.currentTabIndex >= 1) {\n /* eslint-disable-next-line no-magic-numbers */\n this.switchTabByIndex(this.currentTabIndex - 1, true);\n } else {\n /* eslint-disable-next-line no-magic-numbers */\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 TextInputPassword {\n constructor($module) {\n this.$module = $module;\n this.$input = $module && $module.querySelector(\".tna-text-input\");\n\n if (\n !this.$module ||\n !this.$input ||\n this.$input.getAttribute(\"type\") !== \"password\"\n ) {\n return;\n }\n\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(\"aria-controls\", this.$input.id);\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 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","export class TextAreaItemisedRows {\n constructor($module, options = {}) {\n this.$module = $module;\n this.$formFieldInput =\n this.$module && this.$module.querySelector(\".tna-textarea\");\n this.$formFieldInputHint =\n this.$module && this.$module.querySelector(\".tna-form-item__hint\");\n this.$formFieldBody =\n this.$module && this.$module.querySelector(\".tna-form-item__body\");\n\n if (\n !this.$module ||\n !this.$formFieldInput ||\n !this.$formFieldBody ||\n this.$formFieldInput.getAttribute(\"hidden\") !== null\n ) {\n return;\n }\n\n const { enhancedHint } = options;\n this.enhancedHint = enhancedHint || \"Enter an item and press enter\";\n\n this.init();\n }\n\n init() {\n this.values = this.$formFieldInput.value\n .split(\"\\n\")\n .map((value) => value.trim())\n .filter((value) => value);\n\n this.id = this.$formFieldInput.id;\n\n this.$formFieldNewInput = document.createElement(\"input\");\n this.$formFieldNewInput.classList.add(\"tna-text-input\");\n [\"id\", \"aria-describedby\"].forEach((attribute) => {\n this.$formFieldNewInput.setAttribute(\n attribute,\n this.$formFieldInput.getAttribute(attribute),\n );\n this.$formFieldInput.removeAttribute(attribute);\n });\n this.$formFieldBody.appendChild(this.$formFieldNewInput);\n this.$formFieldInput.setAttribute(\"hidden\", \"\");\n this.$formFieldInput.addEventListener(\"keyup\", () => this.updateList());\n this.$formFieldNewInput.addEventListener(\"keypress\", (event) => {\n if (event.key === \"Enter\") {\n this.appendValue(event.target.value);\n }\n });\n\n this.$formFieldNewInputAddButton = document.createElement(\"button\");\n this.$formFieldNewInputAddButton.setAttribute(\"type\", \"button\");\n this.$formFieldNewInputAddButton.classList.add(\n \"tna-button\",\n \"tna-button--small\",\n );\n this.$formFieldNewInputAddButtonInner = document.createElement(\"span\");\n this.$formFieldNewInputAddButtonInner.innerText = \"Add\";\n this.$formFieldNewInputAddButtonInnerExtra = document.createElement(\"span\");\n this.$formFieldNewInputAddButtonInnerExtra.classList.add(\n \"tna-visually-hidden\",\n );\n this.$formFieldNewInputAddButtonInnerExtra.innerText = \" to list\";\n this.$formFieldNewInputAddButtonInner.appendChild(\n this.$formFieldNewInputAddButtonInnerExtra,\n );\n this.$formFieldNewInputAddButton.appendChild(\n this.$formFieldNewInputAddButtonInner,\n );\n this.$formFieldBody.appendChild(this.$formFieldNewInputAddButton);\n this.$formFieldNewInputAddButton.addEventListener(\"click\", () => {\n this.appendValue(this.$formFieldNewInput.value);\n });\n\n this.$formFieldLiveAria = document.createElement(\"div\");\n this.$formFieldLiveAria.setAttribute(\"aria-live\", \"assertive\");\n this.$formFieldLiveAria.classList.add(\"tna-visually-hidden\");\n this.$module.appendChild(this.$formFieldLiveAria);\n\n this.$formFieldCounter = document.createElement(\"p\");\n this.$formFieldCounter.id = `${this.id}-list-helper`;\n this.$formFieldCounter.classList.add(\"tna-!--margin-top-xs\");\n this.$module.appendChild(this.$formFieldCounter);\n\n this.$formFieldNewInput.setAttribute(\n \"aria-describedby\",\n `${this.$formFieldNewInput.getAttribute(\"aria-describedby\")} ${\n this.$formFieldCounter.id\n }`,\n );\n\n this.$valuesList = document.createElement(\"ul\");\n this.$valuesList.classList.add(\n \"tna-compound-filters\",\n \"tna-!--margin-top-xs\",\n );\n this.$valuesList.addEventListener(\"blur\", () => {\n this.$valuesList.removeAttribute(\"tabindex\");\n this.updateAriaText(\"\");\n });\n this.$module.appendChild(this.$valuesList);\n\n if (!this.$formFieldInputHint) {\n this.$formFieldInputHint = document.createElement(\"p\");\n this.$formFieldInputHint.classList.add(\"tna-form-item__hint\");\n this.$formFieldBody.parentNode.insertBefore(\n this.$formFieldInputHint,\n this.$formFieldBody,\n );\n }\n this.$formFieldInputHint.innerText = this.enhancedHint;\n\n this.updateList();\n }\n\n updateAriaText(content) {\n this.$formFieldLiveAria.innerText = content;\n }\n\n /* eslint-disable-next-line class-methods-use-this */\n normaliseValue(value) {\n return value.replace(/\\s{2,}/u, \" \").trim();\n }\n\n isValueInList(value) {\n return this.values\n .map((eachValue) => this.normaliseValue(eachValue).toLowerCase())\n .includes(value.toLowerCase().trim());\n }\n\n appendValue(value) {\n const newValue = this.normaliseValue(value);\n if (newValue) {\n if (this.isValueInList(newValue)) {\n this.updateAriaText(`'${newValue}' already added`);\n } else {\n this.values.push(newValue);\n this.$formFieldInput.value = this.values.join(\"\\n\");\n this.updateList();\n this.updateAriaText(`'${newValue}' added`);\n }\n } else {\n this.updateAriaText(\"Enter an item to add\");\n }\n this.$formFieldNewInput.value = \"\";\n this.$formFieldNewInput.focus();\n }\n\n removeValue(value) {\n const removeValue = this.normaliseValue(value);\n if (removeValue && this.isValueInList(removeValue)) {\n this.values = this.values.filter(\n (existingValue) => existingValue !== removeValue,\n );\n this.$formFieldInput.value = this.values.join(\"\\n\");\n this.updateList();\n this.updateAriaText(`'${removeValue}' removed`);\n }\n if (this.values.length) {\n this.$valuesList.setAttribute(\"tabindex\", \"0\");\n this.$valuesList.focus();\n } else {\n this.$formFieldNewInput.focus();\n }\n }\n\n updateList() {\n this.$valuesList.innerHTML = \"\";\n this.values\n .map((value) => {\n const $item = document.createElement(\"li\");\n $item.classList.add(\"tna-compound-filters__item\");\n const $itemLabel = document.createElement(\"span\");\n $itemLabel.innerText = value;\n $item.appendChild($itemLabel);\n\n const $removeItemButton = document.createElement(\"button\");\n $removeItemButton.innerText = `Remove '${value}'`;\n $removeItemButton.setAttribute(\"type\", \"button\");\n $removeItemButton.classList.add(\"tna-compound-filters__link\");\n $removeItemButton.addEventListener(\"click\", () => {\n this.removeValue(value);\n });\n $item.appendChild($removeItemButton);\n return $item;\n })\n .forEach(($item) => this.$valuesList.appendChild($item));\n\n let innerTextItemValue = \"item\";\n /* eslint-disable-next-line no-magic-numbers */\n if (this.values.length !== 1) {\n innerTextItemValue += \"s\";\n }\n const innerTextValue = `${this.values.length} ${innerTextItemValue} added`;\n this.$formFieldCounter.innerText = innerTextValue;\n }\n}\n","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 /* eslint-disable-next-line no-constructor-return */\n return window.TNAFrontendCookieEvents;\n }\n window.TNAFrontendCookieEvents = this;\n }\n\n log(...args) {\n if (this.debug) {\n /* eslint-disable-next-line no-console */\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\n for (\n /* eslint-disable-next-line no-magic-numbers */\n let eventIndex = this.oneTimeEvents[event].length - 1;\n /* eslint-disable-next-line no-magic-numbers */\n eventIndex >= 0;\n /* eslint-disable-next-line no-magic-numbers */\n eventIndex -= 1\n ) {\n const eventToTrigger = this.oneTimeEvents[event][eventIndex];\n eventToTrigger.call(this, data);\n /* eslint-disable-next-line no-magic-numbers */\n this.oneTimeEvents[event].splice(eventIndex, 1);\n }\n }\n }\n}\n","/* eslint-disable max-lines */\n/* eslint-disable no-console */\n\nimport { CookieEventHandler } from \"./cookie-events.mjs\";\n\nwindow.TNAFrontendCookies ||= null;\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 /* eslint-disable-next-line no-constructor-return */\n return window.TNAFrontendCookies;\n }\n if (defaultDomain) {\n this.defaultDomain = defaultDomain;\n } else {\n this.defaultDomain =\n document.documentElement.dataset.tnaCookiesDomain ||\n window.location.hostname;\n }\n if (defaultPath) {\n this.defaultPath = defaultPath;\n } else {\n this.defaultPath = document.documentElement.dataset.tnaCookiesPath || \"/\";\n }\n if (secure) {\n this.secure = secure;\n } else {\n this.secure =\n document.documentElement.dataset.tnaCookiesInsecure !== \"true\";\n }\n if (policiesKey) {\n this.policiesKey = policiesKey;\n } else {\n this.policiesKey =\n document.documentElement.dataset.tnaCookiesPoliciesKey ||\n \"cookies_policy\";\n }\n if (defaultAge) {\n this.defaultAge = defaultAge;\n } else {\n /* eslint-disable-next-line no-magic-numbers */\n const secondsInAYear = 365 * 24 * 60 * 60;\n this.defaultAge =\n parseInt(document.documentElement.dataset.tnaCookiesDefaultAge, 10) ||\n secondsInAYear;\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) {\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 /* eslint-disable-next-line class-methods-use-this */\n get all() {\n const deserialised = {};\n document.cookie\n .split(\"; \")\n .filter((cookie) => cookie.trim() !== \"\")\n .forEach((cookie) => {\n const parts = cookie.trim().split(\"=\");\n const [key, value] = parts;\n if (key) {\n deserialised[key] = decodeURIComponent(value || \"\");\n }\n });\n return deserialised;\n }\n\n /** @protected */\n get policies() {\n try {\n return JSON.parse(this.get(this.policiesKey) || \"{}\");\n // eslint-disable-next-line no-unused-vars\n } catch (error) {\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|null}\n */\n get(key) {\n if (this.exists(key)) {\n return decodeURIComponent(this.all[key]);\n }\n return 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 let secureString = \"\";\n if (secure) {\n secureString = \"; secure\";\n }\n let sessionString = \"\";\n if (!session) {\n sessionString = `; max-age=${maxAge}`;\n }\n const cookie = `${encodeURIComponent(key)}=${encodeURIComponent(value)}; domain=${domain}; samesite=${sameSite}; path=${path}${sessionString}${secureString}`;\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 || this.defaultDomain };\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((key) => [key.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((key) => [key.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 if (Object.hasOwn(this.policies, policy)) {\n return this.policies[policy] === true;\n }\n return 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 iso8601ToPrettyDatetime = (dateStr) => {\n const datetime = dateStr;\n\n if (!datetime) {\n throw new Error(\"No datetime provided\");\n }\n const isDateTime =\n /^\\d{4}(?:-\\d{2}){2}(?:T| )\\d{2}(?::\\d{2}){1,2}(?:\\.\\d+)?(?:Z|(?:[+-]\\d{2}:\\d{2}))?$/u.test(\n datetime,\n );\n const isDate = /^\\d{4}(?:-\\d{2}){2}$/u.test(datetime);\n if (!isDateTime && !isDate) {\n throw new Error(\"Invalid datetime provided\");\n }\n\n const date = new Date(datetime);\n if (!(date instanceof Date) || isNaN(date)) {\n throw new Error(\"Invalid datetime provided\");\n }\n\n const dayString = date.toLocaleDateString(\"en-GB\", {\n weekday: \"long\",\n });\n const dateString = date.toLocaleDateString(\"en-GB\", {\n day: \"numeric\",\n month: \"long\",\n year: \"numeric\",\n });\n\n if (isDateTime && (date.getHours() || date.getMinutes())) {\n let timeString = date.toLocaleTimeString(\"en-GB\", {\n hour: \"2-digit\",\n minute: \"2-digit\",\n });\n if (date.getSeconds()) {\n timeString = date.toLocaleTimeString(\"en-GB\", {\n hour: \"2-digit\",\n minute: \"2-digit\",\n second: \"2-digit\",\n });\n }\n return `${dayString} ${dateString}, ${timeString}`;\n }\n return `${dayString} ${dateString}`;\n};\n\n/*\n * ==========================================\n * Transform any <time> element into a pretty\n * and human readable format that is based on\n * the valid ISO 8601 datetime attribute. The\n * replaced value will be localised according\n * to user's system settings, repurposing the\n * original text content as a title attribute\n * to allow users to see the value. A null or\n * invalid datetime format will result in the\n * element not being modified. If the updated\n * value is similar to the starting value for\n * the element text content, then the element\n * will not be updated to avoid redundancy.\n * ------------------------------------------\n * For example if the user's system has a UTC\n * timezone set then the element:\n *\n * <time\n * datetime=\"2026-03-05T13:48:00-05:00\"\n * >\n * 5 March 2026, 13:48 (UTC -5)\n * </time>\n *\n * would become:\n *\n * <time\n * datetime=\"2026-03-05T13:48:00-05:00\"\n * title=\"5 March 2026, 13:48 (UTC -5)\"\n * >\n * Thursday 5 March 2026, 09:48\n * </time>\n * ==========================================\n */\nexport const updateTimeElement = ($el) => {\n const datetime = $el.getAttribute(\"datetime\");\n\n try {\n const prettyDatetime = iso8601ToPrettyDatetime(datetime);\n if (!prettyDatetime.includes($el.textContent)) {\n $el.setAttribute(\"title\", $el.textContent);\n $el.textContent = prettyDatetime;\n }\n // eslint-disable-next-line no-unused-vars\n } catch (error) {\n // Do nothing if the datetime is invalid or not provided\n }\n};\n\nexport const checkTableForScroll = ($tableWrapper) => {\n const $caption = $tableWrapper.querySelector(\"caption\");\n if (!($tableWrapper.dataset.tableScrollInitialised === \"true\")) {\n if ($caption && !$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","/* eslint-disable no-magic-numbers */\n/* eslint-disable no-bitwise */\nconst uuidv4 = () =>\n ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/gu, (char) =>\n (\n char ^\n (crypto.getRandomValues(new Uint8Array(1))[0] & (15 >> (char / 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};","/* eslint-disable no-new */\nimport { Accordion } from \"./components/accordion/accordion.mjs\";\nimport { Breadcrumbs } from \"./components/breadcrumbs/breadcrumbs.mjs\";\nimport { CodeBlock } from \"./components/code-block/code-block.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 { Sidebar } from \"./components/sidebar/sidebar.mjs\";\nimport { SkipLink } from \"./components/skip-link/skip-link.mjs\";\nimport { Tabs } from \"./components/tabs/tabs.mjs\";\nimport { TextInputPassword } from \"./components/text-input/text-input.mjs\";\nimport { TextAreaItemisedRows } from \"./components/textarea/textarea.mjs\";\nimport Cookies from \"./lib/cookies.mjs\";\nimport { checkTableForScroll, updateTimeElement } from \"./lib/helpers.mjs\";\n\nconst initAll = (options = {}) => {\n const { scope } = options;\n let $scope = document;\n if (scope) {\n if (scope instanceof HTMLElement) {\n $scope = scope;\n } else {\n throw new Error(\"Scope must be an HTMLElement\");\n }\n }\n const $html = document.documentElement;\n $html.classList.add(\"tna-template--js-enabled\");\n\n const onFirstTouch = () => {\n window.removeEventListener(\"touchstart\", onFirstTouch);\n $html.classList.add(\"tna-template--touched\");\n };\n window.addEventListener(\"touchstart\", onFirstTouch);\n\n const onKeyDown = (event) => {\n if (event.key === \"Tab\") {\n $html.classList.add(\"tna-template--tabbed\");\n $html.classList.remove(\"tna-template--clicked\");\n }\n };\n window.addEventListener(\"keydown\", onKeyDown);\n\n const onMouseDown = () => {\n $html.classList.add(\"tna-template--clicked\");\n $html.classList.remove(\"tna-template--tabbed\");\n };\n window.addEventListener(\"mousedown\", onMouseDown);\n\n /*\n * ==========================================\n * Checks if widths of all tables on the page\n * are wider than their parent container, and\n * allowing horizontal scrolling if they are.\n * This is done both on load and on resize.\n * ==========================================\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 // Remove this opt-in class in a later release\n if ($html.classList.contains(\"tna-template--enhance-time-elements\")) {\n document.querySelectorAll(\"time[datetime]\").forEach(updateTimeElement);\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 $codeBlocks = $scope.querySelectorAll('[data-module=\"tna-code-block\"]');\n $codeBlocks.forEach(($codeBlock) => {\n new CodeBlock($codeBlock);\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 $sidebar = $scope.querySelector('[data-module=\"tna-sidebar-sections\"]');\n if ($sidebar) {\n const { scrollTopThreshold, disableHighlightSize } = $sidebar.dataset;\n new Sidebar($sidebar, { scrollTopThreshold, disableHighlightSize });\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 $textAreaItemisedRows = $scope.querySelectorAll(\n '[data-module=\"tna-textarea-itemised-rows\"]',\n );\n $textAreaItemisedRows.forEach(($textAreaWithItemisedRows) => {\n const { enhancedHint } = $textAreaWithItemisedRows.dataset;\n new TextAreaItemisedRows($textAreaWithItemisedRows, { enhancedHint });\n });\n\n const $textInputPasswords = $scope.querySelectorAll(\n '[data-module=\"tna-text-input-password\"]',\n );\n $textInputPasswords.forEach(($textInputPassword) => {\n new TextInputPassword($textInputPassword);\n });\n\n window.matchMedia(\"print\").addEventListener(\"change\", (evt) => {\n if (evt.matches) {\n $scope\n .querySelectorAll(\".tna-details__details:not([open])\")\n .forEach(($element) => {\n $element.setAttribute(\"open\", \"\");\n $element.dataset.wasClosed = \"\";\n });\n $scope\n .querySelectorAll(\n \".tna-accordion__content[hidden], .tna-picture__transcript[hidden]\",\n )\n .forEach(($element) => {\n $element.removeAttribute(\"hidden\");\n $element.dataset.wasClosed = \"\";\n });\n } else {\n $scope\n .querySelectorAll(\".tna-details__details[data-was-closed]\")\n .forEach(($element) => {\n $element.removeAttribute(\"open\");\n delete $element.dataset.wasClosed;\n });\n $scope\n .querySelectorAll(\n \".tna-accordion__content[data-was-closed], .tna-picture__transcript[data-was-closed]\",\n )\n .forEach(($element) => {\n $element.setAttribute(\"hidden\", \"\");\n $element.dataset.wasClosed = \"\";\n });\n }\n });\n};\n\nexport {\n initAll,\n Cookies,\n Accordion,\n Breadcrumbs,\n CodeBlock,\n CookieBanner,\n DateInputProgressive,\n ErrorSummary,\n FileInputDroppable,\n Footer,\n Gallery,\n GlobalHeader,\n Header,\n Picture,\n Sidebar,\n SkipLink,\n Tabs,\n TextInputPassword,\n TextAreaItemisedRows,\n checkTableForScroll,\n updateTimeElement,\n};\n"],"names":["root","factory","exports","module","define","amd","self","Accordion","$module","_this","this","_classCallCheck","$items","querySelectorAll","allowMultipleItemsOpen","dataset","singleOpenItem","forEach","$item","initItem","initState","$toggleAllButton","querySelector","syncToggleAllButton","removeAttribute","addEventListener","isAllOpen","closeItem","openItem","key","value","_this2","$heading","$content","classList","add","remove","setAttribute","$headingButton","document","createElement","id","innerText","appendChild","getAttribute","_this3","isopen","closeAllItemsExcept","concat","trim","$tableWrapper","$wrapper","checkTableForScroll","$excludeItem","_this4","Array","from","filter","every","closeAllLabel","openAllLabel","Breadcrumbs","$breadcrumbsList","$breadcrumbs","length","contains","init","uniqueId","uuidv4","$expandable","style","display","$expandButton","innerHTML","focus","once","insertBefore","nextSibling","e","t","r","Symbol","n","iterator","o","toStringTag","i","c","prototype","Generator","u","Object","create","_regeneratorDefine2","f","p","y","G","v","a","d","bind","l","TypeError","call","done","GeneratorFunction","GeneratorFunctionPrototype","getPrototypeOf","setPrototypeOf","__proto__","displayName","_regenerator","w","m","defineProperty","_invoke","enumerable","configurable","writable","asyncGeneratorStep","Promise","resolve","then","_asyncToGenerator","arguments","apply","_next","_throw","_defineProperties","_toPropertyKey","_createClass","_typeof","toPrimitive","String","_toPrimitive","CodeBlock","$code","$copyButton","navigator","clipboard","_callee","_context","writeText","CookieBanner","$acceptButton","$rejectButton","$prompt","$acceptedMessage","$rejectedMessage","$closeButtons","cookies","Cookies","newInstance","cookiePreferencesSetKey","preferencesKey","policiesCorrectOnInit","exists","hasValue","accept","reject","complete","acceptAllPolicies","rejectAllPolicies","set","$closeButton","close","DateInputProgressive","$yearWrapper","$yearInput","$monthWrapper","$monthInput","$dayWrapper","$dayInput","update","window","isValidYear","showMonth","isValidMonth","showDay","hideDay","hideMonth","yearValue","parseInt","isNaN","monthRawValue","monthIntValue","includes","toLowerCase","ErrorSummary","disableAutofocus","setFocus","event","handleClick","$element","_options$onBeforeFocu","options","undefined","isFocusable","onBlur","_options$onBlur","onBeforeFocus","$target","target","focusTarget","preventDefault","url","split","pop","HTMLAnchorElement","inputId","getFragmentFromUrl","href","$input","getElementById","$legendOrLabel","getAssociatedLegendOrLabel","scrollIntoView","preventScroll","_document$querySelect","$fieldset","closest","$legends","getElementsByTagName","$candidateLegend","_slicedToArray","HTMLInputElement","type","legendTop","getBoundingClientRect","top","inputRect","height","innerHeight","FileInputDroppable","$body","acceptMutltipleFiles","hasAttribute","$droppableArea","$pseudoSelectFileText","fileText","textContent","$droppableButtons","$pseudoSelectFileButton","$pseudoDropFileButton","$droppableAreaAriaLabel","showDropTarget","hideDropTarget","onChange","dataTransfer","hasNoTypesInfo","types","isDraggingFiles","some","updateAriaLabel","isContainingFiles","classToAdd","items","_files$","files","name","Footer","themeCookieName","$themeSelector","$themeSelectorNotice","$themeSelectorEnableSettingsCookiesButton","$tnaTemplate","currentTheme","themeOnLoad","$themeSelectorButtons","$themeSelectorButton","$button","setTheme","selectThemeSelectorButton","acceptPolicy","showThemeSelector","on","data","hasOwn","settings","$currentThemeButton","find","get","isPolicyAccepted","theme","$selectedButton","Gallery","$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","findIndex","nextIndexToShow","GlobalHeader","$toggleButton","$topNavigation","$links","menuOpened","mql","matchMedia","syncState","handleToggleNavigation","addListener","code","matches","show","hide","hidden","index","Header","Picture","$imageWrapper","$transcriptToggle","$transcript","transcriptOpened","openLabel","informationLabelOpen","closeLabel","informationLabelClose","toggleTranscript","Sidebar","map","substring","item","_options$scrollTopThr","scrollTopThreshold","_options$disableHighl","disableHighlightSize","breakpoints","tiny","getComputedStyle","documentElement","getPropertyValue","small","medium","keys","Error","join","hideOnDevice","currentItem","highlightCurrentSection","$topItem","findLast","Math","floor","SkipLink","_$module$getAttribute","linkedElementId","$linkedElement","focusLinkedElement","linkedElementListener","removeFocusProperties","Tabs","$tabList","$tabListItemLinks","$tabItems","currentTabIndex","$tabListItemLink","tabPanelID","$tabPanel","handleItemLinkClick","switchTabByIndex","handleItemLinkKeyDown","itemLinkClickEvent","targetItem","currentTarget","switchTabByID","itemLinkKeyDownEvent","previousTab","nextTab","newIndex","switchFocus","$tabItem","targetId","TextInputPassword","$textInputWrapper","$textInputPasswordToggle","updateTogglePasswordButtonText","togglePasswordType","TextAreaItemisedRows","$formFieldInput","$formFieldInputHint","$formFieldBody","enhancedHint","values","$formFieldNewInput","attribute","updateList","appendValue","$formFieldNewInputAddButton","$formFieldNewInputAddButtonInner","$formFieldNewInputAddButtonInnerExtra","$formFieldLiveAria","$formFieldCounter","$valuesList","updateAriaText","parentNode","content","replace","eachValue","normaliseValue","newValue","isValueInList","push","removeValue","existingValue","$itemLabel","$removeItemButton","innerTextItemValue","innerTextValue","_window","TNAFrontendCookieEvents","CookieEventHandler","debug","_defineProperty","log","_console","_len","args","_key","console","callback","events","_toConsumableArray","oneTimeEvents","eventToTrigger","eventIndex","splice","TNAFrontendCookies","tnaCookiePolicies","tnaFrontendDebug","defaultDomain","defaultPath","secure","policiesKey","defaultAge","_options$newInstance","_options$noInit","noInit","tnaCookiesDomain","location","hostname","tnaCookiesPath","tnaCookiesInsecure","tnaCookiesPoliciesKey","tnaCookiesDefaultAge","policies","policy","existingPolicies","filteredExistingPolicies","fromEntries","savePolicies","_objectSpread","usage","marketing","essential","all","deserialised","cookie","_parts","decodeURIComponent","JSON","parse","error","_options$maxAge","maxAge","_options$sameSite","sameSite","_options$domain","domain","_options$path","path","_options$secure","_options$session","session","secureString","sessionString","encodeURIComponent","trigger","setPolicy","accepted","allPolicies","stringify","updateTimeElement","$el","datetime","prettyDatetime","dateStr","isDateTime","test","isDate","date","Date","dayString","toLocaleDateString","weekday","dateString","day","month","year","getHours","getMinutes","timeString","toLocaleTimeString","hour","minute","getSeconds","second","iso8601ToPrettyDatetime","$caption","tableScrollInitialised","scrollWidth","clientWidth","__WEBPACK_DEFAULT_EXPORT__","char","crypto","getRandomValues","Uint8Array","toString","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","definition","obj","prop","hasOwnProperty","initAll","scope","$scope","HTMLElement","$html","onFirstTouch","removeEventListener","$tableWrappers","$accordion","$codeBlock","$cookieBanner","$dateInput","$errorSummary","$fileInput","$footer","$gallery","$globalHeader","$header","$picture","$sidebar","_$sidebar$dataset","$skipLink","$tabModule","$textAreaWithItemisedRows","$textInputPassword","evt","wasClosed"],"sourceRoot":""}