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