@nationalarchives/frontend 0.1.65 → 0.2.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 (205) hide show
  1. package/config/.eslintrc.js +1 -1
  2. package/config/.htmlvalidate.json +12 -5
  3. package/config/stylelint.config.js +1 -0
  4. package/nationalarchives/all.css +1 -1
  5. package/nationalarchives/all.css.map +1 -1
  6. package/nationalarchives/all.js +1 -1
  7. package/nationalarchives/all.js.map +1 -1
  8. package/nationalarchives/all.mjs +0 -18
  9. package/nationalarchives/components/_forms.scss +9 -0
  10. package/nationalarchives/components/_index.scss +2 -35
  11. package/nationalarchives/components/_presentation.scss +23 -0
  12. package/nationalarchives/components/accordion/accordion.css.map +1 -1
  13. package/nationalarchives/components/breadcrumbs/breadcrumbs.css.map +1 -1
  14. package/nationalarchives/components/button/button.css +1 -1
  15. package/nationalarchives/components/button/button.css.map +1 -1
  16. package/nationalarchives/components/button/button.scss +9 -9
  17. package/nationalarchives/components/card/card.css +1 -1
  18. package/nationalarchives/components/card/card.css.map +1 -1
  19. package/nationalarchives/components/checkboxes/checkboxes.css +1 -1
  20. package/nationalarchives/components/checkboxes/checkboxes.css.map +1 -1
  21. package/nationalarchives/components/checkboxes/checkboxes.njk +1 -1
  22. package/nationalarchives/components/checkboxes/checkboxes.scss +1 -1
  23. package/nationalarchives/components/checkboxes/macro-options.json +6 -0
  24. package/nationalarchives/components/compound-filters/compound-filters.css.map +1 -1
  25. package/nationalarchives/components/date-input/date-input.css +1 -1
  26. package/nationalarchives/components/date-input/date-input.css.map +1 -1
  27. package/nationalarchives/components/date-input/date-input.scss +2 -2
  28. package/nationalarchives/components/date-input/fixtures.json +5 -5
  29. package/nationalarchives/components/date-input/template.njk +1 -1
  30. package/nationalarchives/components/date-search/date-search.css +1 -1
  31. package/nationalarchives/components/date-search/date-search.css.map +1 -1
  32. package/nationalarchives/components/date-search/date-search.scss +2 -2
  33. package/nationalarchives/components/details/details.css.map +1 -1
  34. package/nationalarchives/components/error-summary/error-summary.css +1 -1
  35. package/nationalarchives/components/error-summary/error-summary.css.map +1 -1
  36. package/nationalarchives/components/error-summary/error-summary.js +1 -1
  37. package/nationalarchives/components/error-summary/error-summary.js.map +1 -1
  38. package/nationalarchives/components/error-summary/error-summary.mjs +1 -1
  39. package/nationalarchives/components/error-summary/error-summary.scss +3 -4
  40. package/nationalarchives/components/files-list/_index.scss +1 -0
  41. package/nationalarchives/components/files-list/files-list.css +1 -0
  42. package/nationalarchives/components/files-list/files-list.css.map +1 -0
  43. package/nationalarchives/components/{files/files.scss → files-list/files-list.scss} +2 -1
  44. package/nationalarchives/components/files-list/fixtures.json +71 -0
  45. package/nationalarchives/components/files-list/macro.njk +3 -0
  46. package/nationalarchives/components/files-list/template.njk +33 -0
  47. package/nationalarchives/components/footer/footer.css.map +1 -1
  48. package/nationalarchives/components/gallery/fixtures.json +1 -1
  49. package/nationalarchives/components/gallery/gallery.css +1 -1
  50. package/nationalarchives/components/gallery/gallery.css.map +1 -1
  51. package/nationalarchives/components/gallery/gallery.scss +5 -6
  52. package/nationalarchives/components/gallery/template.njk +11 -7
  53. package/nationalarchives/components/global-header/global-header.css.map +1 -1
  54. package/nationalarchives/components/header/header.css.map +1 -1
  55. package/nationalarchives/components/hero/hero.css +1 -1
  56. package/nationalarchives/components/hero/hero.css.map +1 -1
  57. package/nationalarchives/components/hero/hero.scss +0 -24
  58. package/nationalarchives/components/index-grid/index-grid.css +1 -1
  59. package/nationalarchives/components/index-grid/index-grid.css.map +1 -1
  60. package/nationalarchives/components/index-grid/index-grid.scss +1 -1
  61. package/nationalarchives/components/phase-banner/phase-banner.css.map +1 -1
  62. package/nationalarchives/components/picture/picture.css.map +1 -1
  63. package/nationalarchives/components/quick-filters/quick-filters.css +1 -1
  64. package/nationalarchives/components/quick-filters/quick-filters.css.map +1 -1
  65. package/nationalarchives/components/radios/radios.css +1 -1
  66. package/nationalarchives/components/radios/radios.css.map +1 -1
  67. package/nationalarchives/components/radios/radios.scss +1 -1
  68. package/nationalarchives/components/records-list/_index.scss +1 -0
  69. package/nationalarchives/components/records-list/fixtures.json +42 -0
  70. package/nationalarchives/components/records-list/macro.njk +3 -0
  71. package/nationalarchives/components/records-list/records-list.css +1 -0
  72. package/nationalarchives/components/records-list/records-list.css.map +1 -0
  73. package/nationalarchives/components/{featured-records/featured-records.scss → records-list/records-list.scss} +1 -1
  74. package/nationalarchives/components/records-list/template.njk +21 -0
  75. package/nationalarchives/components/search-field/search-field.css +1 -1
  76. package/nationalarchives/components/search-field/search-field.css.map +1 -1
  77. package/nationalarchives/components/search-field/search-field.scss +1 -1
  78. package/nationalarchives/components/select/select.css +1 -1
  79. package/nationalarchives/components/select/select.css.map +1 -1
  80. package/nationalarchives/components/select/select.scss +2 -2
  81. package/nationalarchives/components/sidebar/fixtures.json +12 -2
  82. package/nationalarchives/components/sidebar/sidebar.css +1 -1
  83. package/nationalarchives/components/sidebar/sidebar.css.map +1 -1
  84. package/nationalarchives/components/sidebar/template.njk +9 -0
  85. package/nationalarchives/components/skip-link/skip-link.css.map +1 -1
  86. package/nationalarchives/components/tabs/tabs.css.map +1 -1
  87. package/nationalarchives/components/text-input/text-input.css +1 -1
  88. package/nationalarchives/components/text-input/text-input.css.map +1 -1
  89. package/nationalarchives/components/text-input/text-input.scss +2 -2
  90. package/nationalarchives/components/textarea/textarea.css +1 -1
  91. package/nationalarchives/components/textarea/textarea.css.map +1 -1
  92. package/nationalarchives/components/textarea/textarea.scss +2 -2
  93. package/nationalarchives/components/warning/warning.css +1 -1
  94. package/nationalarchives/components/warning/warning.css.map +1 -1
  95. package/nationalarchives/components/warning/warning.scss +1 -0
  96. package/nationalarchives/global-header-package.css +1 -1
  97. package/nationalarchives/global-header-package.css.map +1 -1
  98. package/nationalarchives/global-header-package.scss +1 -1
  99. package/nationalarchives/print.css +1 -1
  100. package/nationalarchives/print.css.map +1 -1
  101. package/nationalarchives/prototype-kit.css +1 -1
  102. package/nationalarchives/prototype-kit.css.map +1 -1
  103. package/nationalarchives/tools/_colour.scss +25 -50
  104. package/nationalarchives/utilities/_columns.scss +1 -1
  105. package/nationalarchives/utilities/_index.scss +1 -0
  106. package/nationalarchives/utilities/_reset.scss +2 -8
  107. package/nationalarchives/utilities/{_colour.scss → colour/_index.scss} +2 -2
  108. package/nationalarchives/utilities/{_forms.scss → forms/_index.scss} +6 -6
  109. package/nationalarchives/utilities/grid/macro.njk +3 -0
  110. package/nationalarchives/utilities/{_lists.scss → lists/_index.scss} +16 -7
  111. package/nationalarchives/utilities/{_overrides.scss → overrides/_index.scss} +2 -2
  112. package/nationalarchives/utilities/{_tables.scss → tables/_index.scss} +5 -5
  113. package/nationalarchives/utilities/{_typography.scss → typography/_index.scss} +5 -5
  114. package/nationalarchives/variables/_colour.scss +12 -5
  115. package/package.json +1 -1
  116. package/nationalarchives/components/accordion/accordion.stories.js +0 -432
  117. package/nationalarchives/components/breadcrumbs/breadcrumbs.stories.js +0 -128
  118. package/nationalarchives/components/button/button-group.stories.js +0 -114
  119. package/nationalarchives/components/button/button.stories.js +0 -207
  120. package/nationalarchives/components/card/card.stories.js +0 -402
  121. package/nationalarchives/components/checkboxes/checkboxes.stories.js +0 -241
  122. package/nationalarchives/components/compound-filters/compound-filters.stories.js +0 -61
  123. package/nationalarchives/components/cookie-banner/cookie-banner.stories.js +0 -250
  124. package/nationalarchives/components/date-input/date-input.stories.js +0 -119
  125. package/nationalarchives/components/date-search/date-search.stories.js +0 -124
  126. package/nationalarchives/components/details/details.stories.js +0 -33
  127. package/nationalarchives/components/error-summary/error-summary.stories.js +0 -59
  128. package/nationalarchives/components/featured-records/_index.scss +0 -1
  129. package/nationalarchives/components/featured-records/featured-records.css +0 -1
  130. package/nationalarchives/components/featured-records/featured-records.css.map +0 -1
  131. package/nationalarchives/components/featured-records/featured-records.stories.js +0 -50
  132. package/nationalarchives/components/featured-records/fixtures.json +0 -42
  133. package/nationalarchives/components/featured-records/macro.njk +0 -3
  134. package/nationalarchives/components/featured-records/template.njk +0 -21
  135. package/nationalarchives/components/files/_index.scss +0 -1
  136. package/nationalarchives/components/files/files.css +0 -1
  137. package/nationalarchives/components/files/files.css.map +0 -1
  138. package/nationalarchives/components/files/files.stories.js +0 -59
  139. package/nationalarchives/components/files/fixtures.json +0 -71
  140. package/nationalarchives/components/files/macro.njk +0 -3
  141. package/nationalarchives/components/files/template.njk +0 -33
  142. package/nationalarchives/components/footer/footer.stories.js +0 -241
  143. package/nationalarchives/components/gallery/gallery.stories.js +0 -87
  144. package/nationalarchives/components/global-header/global-header.stories.js +0 -364
  145. package/nationalarchives/components/grid/_index.scss +0 -1
  146. package/nationalarchives/components/grid/grid.css +0 -1
  147. package/nationalarchives/components/grid/grid.css.map +0 -1
  148. package/nationalarchives/components/grid/grid.stories.js +0 -279
  149. package/nationalarchives/components/grid/macro.njk +0 -3
  150. package/nationalarchives/components/header/header.stories.js +0 -239
  151. package/nationalarchives/components/hero/hero.stories.js +0 -326
  152. package/nationalarchives/components/index-grid/index-grid.stories.js +0 -128
  153. package/nationalarchives/components/pagination/pagination.stories.js +0 -532
  154. package/nationalarchives/components/phase-banner/phase-banner.stories.js +0 -39
  155. package/nationalarchives/components/picture/picture.stories.js +0 -75
  156. package/nationalarchives/components/quick-filters/quick-filters.stories.js +0 -76
  157. package/nationalarchives/components/radios/radios.stories.js +0 -244
  158. package/nationalarchives/components/search-field/search-field.stories.js +0 -88
  159. package/nationalarchives/components/search-filters/_index.scss +0 -1
  160. package/nationalarchives/components/search-filters/fixtures.json +0 -16
  161. package/nationalarchives/components/search-filters/macro-options.json +0 -39
  162. package/nationalarchives/components/search-filters/macro.njk +0 -3
  163. package/nationalarchives/components/search-filters/search-filters.css +0 -1
  164. package/nationalarchives/components/search-filters/search-filters.css.map +0 -1
  165. package/nationalarchives/components/search-filters/search-filters.js +0 -2
  166. package/nationalarchives/components/search-filters/search-filters.js.map +0 -1
  167. package/nationalarchives/components/search-filters/search-filters.mjs +0 -67
  168. package/nationalarchives/components/search-filters/search-filters.scss +0 -198
  169. package/nationalarchives/components/search-filters/search-filters.stories.js +0 -207
  170. package/nationalarchives/components/search-filters/template.njk +0 -108
  171. package/nationalarchives/components/select/select.stories.js +0 -197
  172. package/nationalarchives/components/sensitive-image/_index.scss +0 -1
  173. package/nationalarchives/components/sensitive-image/fixtures.json +0 -51
  174. package/nationalarchives/components/sensitive-image/macro-options.json +0 -58
  175. package/nationalarchives/components/sensitive-image/macro.njk +0 -3
  176. package/nationalarchives/components/sensitive-image/sensitive-image.css +0 -1
  177. package/nationalarchives/components/sensitive-image/sensitive-image.css.map +0 -1
  178. package/nationalarchives/components/sensitive-image/sensitive-image.js +0 -2
  179. package/nationalarchives/components/sensitive-image/sensitive-image.js.map +0 -1
  180. package/nationalarchives/components/sensitive-image/sensitive-image.mjs +0 -23
  181. package/nationalarchives/components/sensitive-image/sensitive-image.scss +0 -85
  182. package/nationalarchives/components/sensitive-image/sensitive-image.stories.js +0 -86
  183. package/nationalarchives/components/sensitive-image/template.njk +0 -11
  184. package/nationalarchives/components/sidebar/sidebar.stories.js +0 -227
  185. package/nationalarchives/components/skip-link/skip-link.stories.js +0 -76
  186. package/nationalarchives/components/tabs/tabs.stories.js +0 -300
  187. package/nationalarchives/components/text-input/text-input.stories.js +0 -188
  188. package/nationalarchives/components/textarea/textarea.stories.js +0 -130
  189. package/nationalarchives/components/warning/warning.stories.js +0 -39
  190. package/nationalarchives/stories/intro.mdx +0 -13
  191. package/nationalarchives/stories/utilities/colour-schemes/colour-combinations.stories.js +0 -293
  192. package/nationalarchives/stories/utilities/colour-schemes/colour-themes.stories.js +0 -1513
  193. package/nationalarchives/stories/utilities/forms/forms.mdx +0 -117
  194. package/nationalarchives/stories/utilities/lists/lists.stories.js +0 -212
  195. package/nationalarchives/stories/utilities/overrides/overrides.stories.js +0 -42
  196. package/nationalarchives/stories/utilities/tables/tables.stories.js +0 -47
  197. package/nationalarchives/stories/utilities/typography/heading-groups.stories.js +0 -94
  198. package/nationalarchives/stories/utilities/typography/headings.stories.js +0 -33
  199. package/nationalarchives/stories/utilities/typography/typography.stories.js +0 -91
  200. package/nationalarchives/components/{files → files-list}/macro-options.json +0 -0
  201. package/nationalarchives/components/{featured-records → records-list}/macro-options.json +0 -0
  202. package/nationalarchives/{components/grid/grid.scss → utilities/grid/_index.scss} +1 -1
  203. /package/nationalarchives/{components → utilities}/grid/fixtures.json +0 -0
  204. /package/nationalarchives/{components → utilities}/grid/macro-options.json +0 -0
  205. /package/nationalarchives/{components → utilities}/grid/template.njk +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"all.js","mappings":"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","sources":["webpack://TNAFrontend/webpack/universalModuleDefinition","webpack://TNAFrontend/./src/nationalarchives/components/accordion/accordion.mjs","webpack://TNAFrontend/./src/nationalarchives/components/breadcrumbs/breadcrumbs.mjs","webpack://TNAFrontend/./src/nationalarchives/components/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/search-filters/search-filters.mjs","webpack://TNAFrontend/./src/nationalarchives/components/sensitive-image/sensitive-image.mjs","webpack://TNAFrontend/./src/nationalarchives/components/skip-link/skip-link.mjs","webpack://TNAFrontend/./src/nationalarchives/components/tabs/tabs.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","webpack://TNAFrontend/./src/nationalarchives/all.mjs"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"TNAFrontend\"] = factory();\n\telse\n\t\troot[\"TNAFrontend\"] = factory();\n})(self, () => {\nreturn ","export class Accordion {\n polyfillRequired = null;\n\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[\"multipleitems\"] === \"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\", \"until-found\");\n $content.addEventListener(\"blur\", () => {\n $content.removeAttribute(\"tabindex\");\n });\n\n const $headingButton = document.createElement(\"button\");\n $headingButton.classList.add(\"tna-accordion__summary\");\n $headingButton.setAttribute(\"aria-controls\", $content.id);\n $heading.parentNode.insertBefore($headingButton, $heading.nextSibling);\n $headingButton.appendChild($heading);\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}, Hide this section`,\n );\n $content.removeAttribute(\"hidden\");\n $content.setAttribute(\"tabindex\", \"0\");\n $content.focus();\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}, Show this section`,\n );\n $content.setAttribute(\"hidden\", \"until-found\");\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(\"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 const policies = this.$module.getAttribute(\"data-policies\") || \"\";\n const extraPolicies = policies\n .split(\",\")\n .filter((x) => x)\n .map((policy) => policy.trim());\n const domain = this.$module.getAttribute(\"data-domain\") || undefined;\n const path = this.$module.getAttribute(\"data-path\") || undefined;\n const secure = this.$module.getAttribute(\"data-secure\") || undefined;\n const policiesKey =\n this.$module.getAttribute(\"data-policieskey\") || undefined;\n\n this.cookies = new Cookies({\n extraPolicies,\n domain,\n path,\n secure,\n policiesKey,\n newInstance: true,\n });\n\n this.cookiePreferencesSet =\n this.$module.getAttribute(\"data-preferenceskey\") ||\n \"cookie_preferences_set\";\n const cookiePreferencesSet = this.cookies.hasValue(\n this.cookiePreferencesSet,\n \"true\",\n );\n\n if (!cookiePreferencesSet) {\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\", true);\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\", true);\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.cookiePreferencesSet, true);\n this.$closeButtons.forEach(($closeButton) => {\n $closeButton.addEventListener(\"click\", () => this.close());\n });\n }\n\n close() {\n this.$module.setAttribute(\"hidden\", true);\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.getAttribute(\"data-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\", true);\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--js\");\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.allowIndex = false;\n if (this.allowIndex) {\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\", \"until-found\");\n $item.setAttribute(\"role\", \"tabpanel\");\n });\n this.$navigation.removeAttribute(\"hidden\");\n this.$navigationItems.forEach(($item) => {\n $item.addEventListener(\"click\", () =>\n this.showItem($item.getAttribute(\"aria-controls\"), true),\n );\n });\n this.$module.setAttribute(\"tabindex\", \"0\");\n this.$module.addEventListener(\"keydown\", (e) => {\n switch (e.key) {\n case \"ArrowLeft\":\n case \"ArrowUp\":\n this.showPreviousItem();\n break;\n case \"ArrowRight\":\n case \"ArrowDown\":\n this.showNextItem();\n break;\n case \"Home\":\n this.showFirstItem();\n break;\n case \"End\":\n this.showLastItem();\n break;\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\n showIndex() {\n this.showItem(\"\");\n this.$itemsContainer.setAttribute(\"tabindex\", \"-1\");\n this.$showIndex?.setAttribute(\"hidden\", true);\n }\n\n showItem(id, focusItem = false) {\n this.$items.forEach(($item) => {\n if (id && $item.id === id) {\n $item.removeAttribute(\"hidden\");\n $item.removeAttribute(\"tabindex\");\n } else {\n $item.setAttribute(\"hidden\", \"until-found\");\n $item.setAttribute(\"tabindex\", \"-1\");\n }\n });\n this.$navigationItems.forEach(($item, index) => {\n if (id) {\n if ($item.getAttribute(\"aria-controls\") === id) {\n $item.setAttribute(\"aria-selected\", \"true\");\n $item.setAttribute(\"tabindex\", \"0\");\n // if (focusItem) {\n // $item.focus();\n // }\n } else {\n $item.setAttribute(\"aria-selected\", \"false\");\n $item.setAttribute(\"tabindex\", \"-1\");\n }\n } else {\n $item.setAttribute(\"aria-selected\", \"false\");\n $item.setAttribute(\"tabindex\", index === 0 ? \"0\" : \"-1\");\n }\n });\n if (this.allowIndex) {\n this.$showIndex?.removeAttribute(\"hidden\");\n }\n this.currentId = id;\n this.$itemsContainer.setAttribute(\"tabindex\", \"0\");\n if (focusItem) {\n this.$itemsContainer.focus();\n }\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, true);\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, true);\n }\n\n showFirstItem() {\n this.showItem(this.$items[0].id, true);\n }\n\n showLastItem() {\n this.showItem(this.$items[this.$items.length - 1].id, true);\n }\n\n toggleFullScreen() {\n if (!document.fullscreenElement) {\n this.enterFullScreen();\n } else if (document.exitFullscreen) {\n this.exitFullScreen();\n }\n }\n\n enterFullScreen() {\n this.$module.requestFullscreen();\n this.syncFullScreen();\n }\n\n exitFullScreen() {\n document.exitFullscreen();\n this.syncFullScreen();\n }\n\n syncFullScreen() {\n if (document.fullscreenElement) {\n this.$enterFullscreen.setAttribute(\"hidden\", true);\n this.$exitFullscreen.removeAttribute(\"hidden\");\n this.$module.classList.add(\"tna-gallery--fullscreen\");\n } else {\n this.$exitFullscreen.setAttribute(\"hidden\", true);\n this.$enterFullscreen.removeAttribute(\"hidden\");\n this.$module.classList.remove(\"tna-gallery--fullscreen\");\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.$navigation.addEventListener(\"keyup\", (e) => {\n if (e.code === \"Escape\") {\n this.menuOpened = false;\n this.syncState();\n this.$toggleButton.focus();\n }\n });\n this.$topNavigation.addEventListener(\"keyup\", (e) => {\n if (e.code === \"Escape\") {\n this.menuOpened = false;\n this.syncState();\n this.$toggleButton.focus();\n }\n });\n }\n\n handleToggleNavigation() {\n this.menuOpened = !this.menuOpened;\n this.syncState();\n }\n\n syncState() {\n if (this.mql.matches) {\n if (this.menuOpened) {\n this.show();\n } else {\n this.hide();\n }\n } else {\n this.show();\n }\n }\n\n hide() {\n if (this.$navigation) {\n this.$navigation.hidden = true;\n this.$navigation.setAttribute(\"aria-hidden\", \"true\");\n }\n if (this.$topNavigation) {\n this.$topNavigation.hidden = true;\n this.$topNavigation.setAttribute(\"aria-hidden\", \"true\");\n }\n this.$toggleButton.setAttribute(\"aria-expanded\", \"false\");\n this.$toggleButton.setAttribute(\"title\", \"Open menu\");\n this.$toggleButton.classList.remove(\n \"tna-global-header__navigation-button--opened\",\n );\n 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-toggle-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.$navigation.addEventListener(\"keyup\", (e) => {\n if (e.code === \"Escape\") {\n this.menuOpened = false;\n this.syncState();\n this.$toggleButton.focus();\n }\n });\n }\n\n handleToggleNavigation() {\n this.menuOpened = !this.menuOpened;\n this.syncState();\n }\n\n syncState() {\n if (this.mql.matches) {\n if (this.menuOpened) {\n this.show();\n } else {\n this.hide();\n }\n } else {\n this.show();\n }\n }\n\n show() {\n this.$navigation.classList.add(\"tna-header__navigation--open\");\n this.$navigation.hidden = false;\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(\n \"tna-header__navigation-toggle-button--opened\",\n );\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-toggle-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 this.$transcript =\n $module && $module.querySelector(\".tna-picture__transcript\");\n this.transcriptOpened = false;\n\n if (!this.$module || !this.$imageWrapper || !this.$transcript) {\n return;\n }\n\n this.openLabel =\n this.$module.getAttribute(\"data-informationlabelopen\") ||\n \"Open transcript\";\n this.closeLabel =\n this.$module.getAttribute(\"data-informationlabelclose\") ||\n \"Close transcript\";\n\n const uniqueId = `tna-picture-${uuidv4()}`;\n\n this.$transcriptToggle = document.createElement(\"button\");\n this.$transcriptToggle.classList.add(\n \"tna-picture__toggle-transcript\",\n \"tna-button\",\n \"tna-button--small\",\n \"tna-button--solid-hover\",\n );\n this.$transcriptToggle.setAttribute(\"aria-controls\", uniqueId);\n this.$transcriptToggle.setAttribute(\"aria-expanded\", false);\n this.$transcriptToggle.innerText = this.openLabel;\n this.$transcriptToggle.addEventListener(\"click\", () =>\n this.handleToggleTranscript(),\n );\n this.$imageWrapper.appendChild(this.$transcriptToggle);\n\n this.$transcript.setAttribute(\"id\", uniqueId);\n this.$transcript.setAttribute(\"hidden\", \"until-found\");\n }\n\n handleToggleTranscript() {\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\", \"until-found\");\n }\n }\n}\n","export class SearchFilters {\n constructor($module) {\n this.$module = $module;\n\n if (!this.$module) {\n return;\n }\n\n this.$module.classList.add(\"tna-search-filters--js-enabled\");\n\n Array.from(\n this.$module.querySelectorAll(\".tna-search-filters__fieldset\"),\n ).forEach(($fieldset) => {\n // const type = $fieldset.dataset.type;\n const $toggle = $fieldset.querySelector(\n \".tna-search-filters__item-toggle\",\n );\n const $headingInner = $fieldset.querySelector(\n \".tna-search-filters__heading-inner\",\n );\n const $item = $fieldset.querySelector(\".tna-search-filters__item\");\n\n if (!$toggle || !$headingInner || !$item) {\n return;\n }\n\n $toggle.removeAttribute(\"hidden\");\n $headingInner.remove();\n\n this.syncItem($toggle, $item);\n\n $toggle.addEventListener(\"click\", () => {\n this.toggleItem($toggle, $item);\n });\n\n // if (type === \"multiple\") {\n // const $count = $toggle.querySelector(\n // \".tna-search-filters__item-toggle-info\",\n // );\n // if ($count) {\n // $item.addEventListener(\"change\", () => {\n // const selected = Array.from(\n // $item.querySelectorAll('input[type=\"checkbox\"]:checked'),\n // ).length;\n // $count.innerText = selected ? `(${selected} selected)` : \"\";\n // });\n // }\n // }\n });\n }\n\n toggleItem($toggle, $item) {\n $toggle.setAttribute(\n \"aria-expanded\",\n $toggle.getAttribute(\"aria-expanded\") == \"false\",\n );\n this.syncItem($toggle, $item);\n }\n\n syncItem($toggle, $item) {\n if ($toggle.getAttribute(\"aria-expanded\") == \"true\") {\n $item.removeAttribute(\"hidden\");\n } else {\n $item.setAttribute(\"hidden\", true);\n }\n }\n}\n","export class SensitiveImage {\n constructor($module) {\n this.$module = $module;\n this.$imageDetails =\n $module && $module.querySelector(\".tna-sensitive-image__details\");\n this.$image =\n $module && $module.querySelector(\".tna-sensitive-image__image\");\n this.imageIsVisible = false;\n\n if (!this.$module || !this.$imageDetails || !this.$image) {\n return;\n }\n this.$imageDetails.addEventListener(\"toggle\", () =>\n this.handleImageDetailsToggle(),\n );\n }\n\n handleImageDetailsToggle() {\n if (this.$imageDetails.hasAttribute(\"open\")) {\n this.$image.focus({ preventScroll: true, focusVisible: true });\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 $module.querySelectorAll(\".tna-tabs__list-item-link\");\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.sticky = this.$module.classList.contains(\"tna-tabs--sticky\");\n\n const startingTarget = window.location.hash.replace(/^#/, \"\");\n const doesStartingTargetExist = [...this.$tabItems].some(\n ($tabItem) => $tabItem.getAttribute(\"id\") === startingTarget,\n );\n\n this.$newTabList = document.createElement(\"div\");\n this.$newTabList.setAttribute(\"role\", \"tablist\");\n this.$newTabList.setAttribute(\"class\", this.$tabList.getAttribute(\"class\"));\n\n this.$tabItems.forEach(($tabItem, index) => {\n $tabItem.setAttribute(\"role\", \"tabpanel\");\n $tabItem.setAttribute(\n \"aria-labelledby\",\n `${$tabItem.getAttribute(\"id\")}-tab`,\n );\n $tabItem.setAttribute(\"tabindex\", \"0\");\n if (\n (doesStartingTargetExist &&\n $tabItem.getAttribute(\"id\") !== startingTarget) ||\n (!doesStartingTargetExist && index > 0)\n ) {\n $tabItem.setAttribute(\"hidden\", true);\n }\n });\n\n this.$tabListItemLinks.forEach(($tabListItemLink) => {\n const $replacementButton = document.createElement(\"button\");\n $replacementButton.innerText = $tabListItemLink.innerText;\n $replacementButton.setAttribute(\n \"class\",\n $tabListItemLink.getAttribute(\"class\"),\n );\n $replacementButton.setAttribute(\"role\", \"tab\");\n $replacementButton.setAttribute(\n \"id\",\n $tabListItemLink.getAttribute(\"id\"),\n );\n $replacementButton.setAttribute(\n \"aria-controls\",\n $tabListItemLink.getAttribute(\"href\")?.replace(/^#/, \"\"),\n );\n $replacementButton.setAttribute(\"tabindex\", \"-1\");\n this.$newTabList.appendChild($replacementButton);\n });\n\n this.$tabList.replaceWith(this.$newTabList);\n\n this.$tabListItemLinks = this.$module.querySelectorAll(\n \".tna-tabs__list-item-link\",\n );\n\n this.$tabListItemLinks.forEach(($tabListItemLink, index) => {\n if (\n (startingTarget &&\n $tabListItemLink.getAttribute(\"aria-controls\") ===\n `${startingTarget}`) ||\n (!startingTarget && index === 0)\n ) {\n $tabListItemLink.classList.add(\"tna-tabs__list-item-link--selected\");\n $tabListItemLink.setAttribute(\"aria-selected\", true);\n $tabListItemLink.setAttribute(\"tabindex\", \"0\");\n } else {\n $tabListItemLink.setAttribute(\"aria-selected\", false);\n }\n\n $tabListItemLink.addEventListener(\n \"keydown\",\n (e) => this.handleItemLinkKeyDown(e),\n true,\n );\n $tabListItemLink.addEventListener(\n \"click\",\n (e) => this.handleItemLinkClick(e),\n true,\n );\n });\n }\n\n handleItemLinkClick(itemLinkClickEvent) {\n itemLinkClickEvent.preventDefault();\n const targetItem =\n itemLinkClickEvent.currentTarget.getAttribute(\"aria-controls\");\n\n this.switchTab(targetItem);\n }\n\n handleItemLinkKeyDown(itemLinkKeyDownEvent) {\n const targetItem = itemLinkKeyDownEvent.currentTarget;\n let overwriteKeyAction = false;\n\n switch (itemLinkKeyDownEvent.key) {\n case \"ArrowLeft\":\n case \"ArrowUp\":\n this.setSelectedToPreviousTab(targetItem);\n overwriteKeyAction = true;\n break;\n\n case \"ArrowRight\":\n case \"ArrowDown\":\n this.setSelectedToNextTab(targetItem);\n overwriteKeyAction = true;\n break;\n\n case \"Home\":\n this.switchTab(this.$tabListItemLinks[0].getAttribute(\"aria-controls\"));\n overwriteKeyAction = true;\n break;\n\n case \"End\":\n this.switchTab(\n this.$tabListItemLinks[\n this.$tabListItemLinks.length - 1\n ].getAttribute(\"aria-controls\"),\n );\n overwriteKeyAction = true;\n break;\n\n default:\n break;\n }\n\n if (overwriteKeyAction) {\n itemLinkKeyDownEvent.stopPropagation();\n itemLinkKeyDownEvent.preventDefault();\n }\n }\n\n setSelectedToNextTab(targetItem) {\n const currentIndex = [...this.$tabListItemLinks].findIndex(\n ($tabListItemLink) =>\n $tabListItemLink.getAttribute(\"id\") === targetItem.getAttribute(\"id\"),\n );\n let newIndex;\n if (currentIndex < this.$tabListItemLinks.length - 1) {\n newIndex = currentIndex + 1;\n } else {\n newIndex = 0;\n }\n this.switchTab(\n this.$tabListItemLinks[newIndex].getAttribute(\"aria-controls\"),\n );\n }\n\n setSelectedToPreviousTab(targetItem) {\n const currentIndex = [...this.$tabListItemLinks].findIndex(\n ($tabListItemLink) =>\n $tabListItemLink.getAttribute(\"id\") === targetItem.getAttribute(\"id\"),\n );\n let newIndex;\n if (currentIndex >= 1) {\n newIndex = currentIndex - 1;\n } else {\n newIndex = this.$tabListItemLinks.length - 1;\n }\n this.switchTab(\n this.$tabListItemLinks[newIndex].getAttribute(\"aria-controls\"),\n );\n }\n\n switchTab(targetId) {\n this.$tabListItemLinks.forEach(($tabListItemLink) => {\n if ($tabListItemLink.getAttribute(\"aria-controls\") === targetId) {\n $tabListItemLink.classList.add(\"tna-tabs__list-item-link--selected\");\n $tabListItemLink.setAttribute(\"aria-selected\", true);\n $tabListItemLink.setAttribute(\"tabindex\", \"0\");\n $tabListItemLink.focus();\n } else {\n $tabListItemLink.classList.remove(\"tna-tabs__list-item-link--selected\");\n $tabListItemLink.setAttribute(\"aria-selected\", false);\n $tabListItemLink.setAttribute(\"tabindex\", \"-1\");\n }\n });\n\n this.$tabItems.forEach(($tabItem) => {\n if ($tabItem.getAttribute(\"id\") === targetId) {\n $tabItem.removeAttribute(\"hidden\");\n $tabItem.setAttribute(\"tabindex\", \"0\");\n } else {\n $tabItem.setAttribute(\"hidden\", true);\n $tabItem.setAttribute(\"tabindex\", \"-1\");\n }\n });\n\n if (this.sticky) {\n if (history.replaceState) {\n history.replaceState(null, null, `#${targetId}`);\n } else {\n location.hash = `#${targetId}`;\n }\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\n/**\n * Class to handle cookies.\n * @class Cookies\n * @constructor\n * @public\n */\nexport default class Cookies {\n /** @protected */\n extraPolicies = [];\n /** @protected */\n domain = \"\";\n /** @protected */\n path = \"\";\n /** @protected */\n secure = true;\n /** @protected */\n policiesKey = \"\";\n /** @protected */\n events = null;\n\n /**\n * Create a cookie handler.\n * @param {String} [options.extraPolicies=[]] - The extra cookie policies to manage in addition to essential, settings and usage.\n * @param {String} [options.domain=\"\"] - The domain to register the cookie with.\n * @param {String} [options.path=\"\"] - The domain to register the cookie with.\n * @param {String} [options.secure=true] - Only set cookie in HTTPS environments.\n * @param {String} [options.policiesKey=\"cookies_policy\"] - The name of the cookie.\n * @param {String} [options.newInstance=false] - Create a fresh instance of the cookie class.\n */\n constructor(options = {}) {\n const {\n extraPolicies = [],\n domain = \"\",\n path = \"/\",\n secure = true,\n policiesKey = \"cookies_policy\",\n newInstance = false,\n } = options;\n if (newInstance) {\n this.destroyInstance();\n } else if (window.TNAFrontendCookies) {\n return window.TNAFrontendCookies;\n }\n this.extraPolicies = extraPolicies;\n this.domain = domain;\n this.path = path;\n this.secure = secure;\n this.policiesKey = policiesKey;\n this.events = new CookieEventHandler();\n this.init();\n window.TNAFrontendCookies = this;\n }\n\n /** @protected */\n init() {\n this.savePolicies({\n ...Object.fromEntries(\n this.extraPolicies.map((k) => [k.toLowerCase(), false]),\n ),\n usage: false,\n settings: false,\n ...this.policies,\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=31536000] - 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.domain] - The domain to register the cookie with.\n * @param {String} [options.path=this.path] - The path to register the cookie with.\n * @param {String} [options.secure=this.secure] - Only set cookie in HTTPS environments.\n */\n set(key, value, options = {}) {\n const {\n maxAge = 60 * 60 * 24 * 365,\n sameSite = \"Lax\",\n domain = this.domain,\n path = this.path,\n secure = this.secure,\n } = options;\n if (!key) {\n return;\n }\n const cookie = `${encodeURIComponent(key)}=${encodeURIComponent(value)};${\n domain ? ` domain=${domain}; ` : \"\"\n } samesite=${sameSite}; path=${path}; 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 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};","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 { SearchFilters } from \"./components/search-filters/search-filters.mjs\";\nimport { SensitiveImage } from \"./components/sensitive-image/sensitive-image.mjs\";\nimport { SkipLink } from \"./components/skip-link/skip-link.mjs\";\nimport { Tabs } from \"./components/tabs/tabs.mjs\";\nimport Cookies from \"./lib/cookies.mjs\";\n\nconst $body = document.documentElement;\n$body.classList.add(\"tna-template--js-enabled\");\n\nconst onFirstTouch = () => {\n window.removeEventListener(\"touchstart\", onFirstTouch);\n $body.classList.add(\"tna-template--touched\");\n};\n\nconst onKeyDown = (e) => {\n if (e.key === \"Tab\") {\n $body.classList.add(\"tna-template--tabbed\");\n $body.classList.remove(\"tna-template--clicked\");\n }\n};\n\nconst onMouseDown = () => {\n $body.classList.add(\"tna-template--clicked\");\n $body.classList.remove(\"tna-template--tabbed\");\n};\n\nwindow.addEventListener(\"touchstart\", onFirstTouch);\nwindow.addEventListener(\"keydown\", onKeyDown);\nwindow.addEventListener(\"mousedown\", onMouseDown);\n\nconst initAll = (options) => {\n options = typeof options !== \"undefined\" ? options : {};\n const $scope =\n options.scope instanceof HTMLElement ? options.scope : document;\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 $searchFilters = $scope.querySelectorAll(\n '[data-module=\"tna-search-filters\"]',\n );\n $searchFilters.forEach(($searchFilter) => {\n new SearchFilters($searchFilter);\n });\n\n const $sensitiveImages = $scope.querySelectorAll(\n '[data-module=\"tna-sensitive-image\"]',\n );\n $sensitiveImages.forEach(($sensitiveImage) => {\n new SensitiveImage($sensitiveImage);\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\nwindow.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=\"until-found\"], .tna-picture__transcript[hidden=\"until-found\"]',\n )\n .forEach((e) => {\n e.removeAttribute(\"hidden\");\n e.dataset.wasclosed = \"\";\n });\n } else {\n document\n .querySelectorAll(\".tna-details__details[data-wasclosed]\")\n .forEach((e) => {\n e.removeAttribute(\"open\");\n delete e.dataset.wasclosed;\n });\n document\n .querySelectorAll(\n \".tna-accordion__content[data-wasclosed], .tna-picture__transcript[data-wasclosed]\",\n )\n .forEach((e) => {\n e.setAttribute(\"hidden\", \"until-closed\");\n e.dataset.wasclosed = \"\";\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 SearchFilters,\n SensitiveImage,\n SkipLink,\n Tabs,\n};\n"],"names":["root","factory","exports","module","define","amd","self","Accordion","$module","_this","_classCallCheck","this","$items","querySelectorAll","allowMultipleItemsOpen","dataset","forEach","$item","initItem","initState","key","value","_this2","$heading","querySelector","$content","classList","add","remove","removeAttribute","setAttribute","addEventListener","$headingButton","document","createElement","id","parentNode","insertBefore","nextSibling","appendChild","getAttribute","closeItem","openItem","_this3","closeAllItemsExcept","concat","innerText","focus","$excludeItem","_this4","Array","from","filter","Breadcrumbs","_createClass","$breadcrumbsList","$breadcrumbs","length","contains","uniqueId","uuidv4","$expandable","style","display","$expandButton","innerHTML","CookieBanner","$acceptButton","$rejectButton","$prompt","$acceptedMessage","$rejectedMessage","$closeButtons","extraPolicies","split","x","map","policy","trim","domain","undefined","path","secure","policiesKey","cookies","Cookies","newInstance","cookiePreferencesSet","hasValue","accept","reject","complete","acceptAllPolicies","rejectAllPolicies","set","$closeButton","close","ErrorSummary","_ref","setFocus","$element","_options$onBeforeFocu","options","arguments","isFocusable","onBlur","_options$onBlur","call","once","onBeforeFocus","Footer","$themeSelector","$tnaTemplate","$themeSelectorButtons","$themeSelectorButton","e","$button","target","setTheme","selectThemeSelectorButton","isPolicyAccepted","showThemeSelector","on","data","Object","hasOwn","settings","hideThemeSelector","exists","$currentThemeButton","find","get","theme","$selectedButton","Gallery","$itemsContainer","$navigation","$navigationItems","$options","$navigationButtons","$showIndex","$enterFullscreen","$exitFullscreen","$navigationButtonPrev","$navigationButtonNext","syncFullScreen","setup","allowIndex","showIndex","currentId","showItem","_this$$showIndex","_this$$navigationButt","_this$$navigationButt2","_this$$navigationButt3","_this$$enterFullscree","_this$$exitFullscreen","_this$$enterFullscree2","showPreviousItem","showNextItem","showFirstItem","showLastItem","fullscreenEnabled","enterFullScreen","exitFullScreen","_this$$showIndex2","_this$$showIndex3","focusItem","index","findIndex","nextIndexToShow","getCurrentItemIndex","fullscreenElement","exitFullscreen","requestFullscreen","GlobalHeader","$toggleButton","$topNavigation","$links","menuOpened","mql","window","matchMedia","syncState","handleToggleNavigation","addListener","code","matches","show","hide","hidden","i","Header","Picture","$imageWrapper","$transcript","transcriptOpened","openLabel","closeLabel","$transcriptToggle","handleToggleTranscript","SearchFilters","$fieldset","$toggle","$headingInner","syncItem","toggleItem","SensitiveImage","$imageDetails","$image","imageIsVisible","handleImageDetailsToggle","hasAttribute","preventScroll","focusVisible","SkipLink","linkedElementId","pop","$linkedElement","getElementById","focusLinkedElement","linkedElementListener","removeFocusProperties","Tabs","$tabList","$tabListItemLinks","$tabItems","sticky","startingTarget","location","hash","replace","doesStartingTargetExist","_toConsumableArray","some","$tabItem","$newTabList","$tabListItemLink","_$tabListItemLink$get","$replacementButton","replaceWith","handleItemLinkKeyDown","handleItemLinkClick","itemLinkClickEvent","preventDefault","targetItem","currentTarget","switchTab","itemLinkKeyDownEvent","overwriteKeyAction","setSelectedToPreviousTab","setSelectedToNextTab","stopPropagation","newIndex","currentIndex","targetId","history","replaceState","TNAFrontendCookies","TNAFrontendCookieEvents","CookieEventHandler","_defineProperty","event","callback","events","oneTimeEvents","eventToTrigger","splice","_options$extraPolicie","_options$domain","_options$path","_options$secure","_options$policiesKey","_options$newInstance","destroyInstance","init","savePolicies","_objectSpread","fromEntries","k","toLowerCase","usage","policies","essential","deserialised","cookie","parts","JSON","parse","all","decodeURIComponent","_options$maxAge","maxAge","_options$sameSite","sameSite","_options$domain2","_options$path2","_options$secure2","encodeURIComponent","trigger","keys","setPolicy","accepted","allPolicies","stringify","c","crypto","getRandomValues","Uint8Array","toString","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","d","definition","o","defineProperty","enumerable","obj","prop","prototype","hasOwnProperty","r","Symbol","toStringTag","$body","documentElement","onFirstTouch","removeEventListener","initAll","$scope","scope","HTMLElement","$accordion","$cookieBanner","$errorSummary","$footer","$gallery","$globalHeader","$header","$picture","$searchFilter","$sensitiveImage","$skipLink","$tabModule","evt","wasclosed"],"sourceRoot":""}
1
+ {"version":3,"file":"all.js","mappings":"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","sources":["webpack://TNAFrontend/webpack/universalModuleDefinition","webpack://TNAFrontend/./src/nationalarchives/components/accordion/accordion.mjs","webpack://TNAFrontend/./src/nationalarchives/components/breadcrumbs/breadcrumbs.mjs","webpack://TNAFrontend/./src/nationalarchives/components/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/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","webpack://TNAFrontend/./src/nationalarchives/all.mjs"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"TNAFrontend\"] = factory();\n\telse\n\t\troot[\"TNAFrontend\"] = factory();\n})(self, () => {\nreturn ","export class Accordion {\n polyfillRequired = null;\n\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[\"multipleitems\"] === \"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\", \"until-found\");\n $content.addEventListener(\"blur\", () => {\n $content.removeAttribute(\"tabindex\");\n });\n\n const $headingButton = document.createElement(\"button\");\n $headingButton.classList.add(\"tna-accordion__summary\");\n $headingButton.setAttribute(\"aria-controls\", $content.id);\n $heading.parentNode.insertBefore($headingButton, $heading.nextSibling);\n $headingButton.appendChild($heading);\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}, Hide this section`,\n );\n $content.removeAttribute(\"hidden\");\n $content.setAttribute(\"tabindex\", \"0\");\n $content.focus();\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}, Show this section`,\n );\n $content.setAttribute(\"hidden\", \"until-found\");\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(\"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 const policies = this.$module.getAttribute(\"data-policies\") || \"\";\n const extraPolicies = policies\n .split(\",\")\n .filter((x) => x)\n .map((policy) => policy.trim());\n const domain = this.$module.getAttribute(\"data-domain\") || undefined;\n const path = this.$module.getAttribute(\"data-path\") || undefined;\n const secure = this.$module.getAttribute(\"data-secure\") || undefined;\n const policiesKey =\n this.$module.getAttribute(\"data-policieskey\") || undefined;\n\n this.cookies = new Cookies({\n extraPolicies,\n domain,\n path,\n secure,\n policiesKey,\n newInstance: true,\n });\n\n this.cookiePreferencesSet =\n this.$module.getAttribute(\"data-preferenceskey\") ||\n \"cookie_preferences_set\";\n const cookiePreferencesSet = this.cookies.hasValue(\n this.cookiePreferencesSet,\n \"true\",\n );\n\n if (!cookiePreferencesSet) {\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\", true);\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\", true);\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.cookiePreferencesSet, true);\n this.$closeButtons.forEach(($closeButton) => {\n $closeButton.addEventListener(\"click\", () => this.close());\n });\n }\n\n close() {\n this.$module.setAttribute(\"hidden\", true);\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.getAttribute(\"data-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\", true);\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--js\");\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.allowIndex = false;\n if (this.allowIndex) {\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\", \"until-found\");\n $item.setAttribute(\"role\", \"tabpanel\");\n });\n this.$navigation.removeAttribute(\"hidden\");\n this.$navigationItems.forEach(($item) => {\n $item.addEventListener(\"click\", () =>\n this.showItem($item.getAttribute(\"aria-controls\"), true),\n );\n });\n this.$module.setAttribute(\"tabindex\", \"0\");\n this.$module.addEventListener(\"keydown\", (e) => {\n switch (e.key) {\n case \"ArrowLeft\":\n case \"ArrowUp\":\n this.showPreviousItem();\n break;\n case \"ArrowRight\":\n case \"ArrowDown\":\n this.showNextItem();\n break;\n case \"Home\":\n this.showFirstItem();\n break;\n case \"End\":\n this.showLastItem();\n break;\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\n showIndex() {\n this.showItem(\"\");\n this.$itemsContainer.setAttribute(\"tabindex\", \"-1\");\n this.$showIndex?.setAttribute(\"hidden\", true);\n }\n\n showItem(id, focusItem = false) {\n this.$items.forEach(($item) => {\n if (id && $item.id === id) {\n $item.removeAttribute(\"hidden\");\n $item.removeAttribute(\"tabindex\");\n } else {\n $item.setAttribute(\"hidden\", \"until-found\");\n $item.setAttribute(\"tabindex\", \"-1\");\n }\n });\n this.$navigationItems.forEach(($item, index) => {\n if (id) {\n if ($item.getAttribute(\"aria-controls\") === id) {\n $item.setAttribute(\"aria-selected\", \"true\");\n $item.setAttribute(\"tabindex\", \"0\");\n // if (focusItem) {\n // $item.focus();\n // }\n } else {\n $item.setAttribute(\"aria-selected\", \"false\");\n $item.setAttribute(\"tabindex\", \"-1\");\n }\n } else {\n $item.setAttribute(\"aria-selected\", \"false\");\n $item.setAttribute(\"tabindex\", index === 0 ? \"0\" : \"-1\");\n }\n });\n if (this.allowIndex) {\n this.$showIndex?.removeAttribute(\"hidden\");\n }\n this.currentId = id;\n this.$itemsContainer.setAttribute(\"tabindex\", \"0\");\n if (focusItem) {\n this.$itemsContainer.focus();\n }\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, true);\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, true);\n }\n\n showFirstItem() {\n this.showItem(this.$items[0].id, true);\n }\n\n showLastItem() {\n this.showItem(this.$items[this.$items.length - 1].id, true);\n }\n\n toggleFullScreen() {\n if (!document.fullscreenElement) {\n this.enterFullScreen();\n } else if (document.exitFullscreen) {\n this.exitFullScreen();\n }\n }\n\n enterFullScreen() {\n this.$module.requestFullscreen();\n this.syncFullScreen();\n }\n\n exitFullScreen() {\n document.exitFullscreen();\n this.syncFullScreen();\n }\n\n syncFullScreen() {\n if (document.fullscreenElement) {\n this.$enterFullscreen.setAttribute(\"hidden\", true);\n this.$exitFullscreen.removeAttribute(\"hidden\");\n this.$module.classList.add(\"tna-gallery--fullscreen\");\n } else {\n this.$exitFullscreen.setAttribute(\"hidden\", true);\n this.$enterFullscreen.removeAttribute(\"hidden\");\n this.$module.classList.remove(\"tna-gallery--fullscreen\");\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.$navigation.addEventListener(\"keyup\", (e) => {\n if (e.code === \"Escape\") {\n this.menuOpened = false;\n this.syncState();\n this.$toggleButton.focus();\n }\n });\n this.$topNavigation.addEventListener(\"keyup\", (e) => {\n if (e.code === \"Escape\") {\n this.menuOpened = false;\n this.syncState();\n this.$toggleButton.focus();\n }\n });\n }\n\n handleToggleNavigation() {\n this.menuOpened = !this.menuOpened;\n this.syncState();\n }\n\n syncState() {\n if (this.mql.matches) {\n if (this.menuOpened) {\n this.show();\n } else {\n this.hide();\n }\n } else {\n this.show();\n }\n }\n\n hide() {\n if (this.$navigation) {\n this.$navigation.hidden = true;\n this.$navigation.setAttribute(\"aria-hidden\", \"true\");\n }\n if (this.$topNavigation) {\n this.$topNavigation.hidden = true;\n this.$topNavigation.setAttribute(\"aria-hidden\", \"true\");\n }\n this.$toggleButton.setAttribute(\"aria-expanded\", \"false\");\n this.$toggleButton.setAttribute(\"title\", \"Open menu\");\n this.$toggleButton.classList.remove(\n \"tna-global-header__navigation-button--opened\",\n );\n 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-toggle-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.$navigation.addEventListener(\"keyup\", (e) => {\n if (e.code === \"Escape\") {\n this.menuOpened = false;\n this.syncState();\n this.$toggleButton.focus();\n }\n });\n }\n\n handleToggleNavigation() {\n this.menuOpened = !this.menuOpened;\n this.syncState();\n }\n\n syncState() {\n if (this.mql.matches) {\n if (this.menuOpened) {\n this.show();\n } else {\n this.hide();\n }\n } else {\n this.show();\n }\n }\n\n show() {\n this.$navigation.classList.add(\"tna-header__navigation--open\");\n this.$navigation.hidden = false;\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(\n \"tna-header__navigation-toggle-button--opened\",\n );\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-toggle-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 this.$transcript =\n $module && $module.querySelector(\".tna-picture__transcript\");\n this.transcriptOpened = false;\n\n if (!this.$module || !this.$imageWrapper || !this.$transcript) {\n return;\n }\n\n this.openLabel =\n this.$module.getAttribute(\"data-informationlabelopen\") ||\n \"Open transcript\";\n this.closeLabel =\n this.$module.getAttribute(\"data-informationlabelclose\") ||\n \"Close transcript\";\n\n const uniqueId = `tna-picture-${uuidv4()}`;\n\n this.$transcriptToggle = document.createElement(\"button\");\n this.$transcriptToggle.classList.add(\n \"tna-picture__toggle-transcript\",\n \"tna-button\",\n \"tna-button--small\",\n \"tna-button--solid-hover\",\n );\n this.$transcriptToggle.setAttribute(\"aria-controls\", uniqueId);\n this.$transcriptToggle.setAttribute(\"aria-expanded\", false);\n this.$transcriptToggle.innerText = this.openLabel;\n this.$transcriptToggle.addEventListener(\"click\", () =>\n this.handleToggleTranscript(),\n );\n this.$imageWrapper.appendChild(this.$transcriptToggle);\n\n this.$transcript.setAttribute(\"id\", uniqueId);\n this.$transcript.setAttribute(\"hidden\", \"until-found\");\n }\n\n handleToggleTranscript() {\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\", \"until-found\");\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 $module.querySelectorAll(\".tna-tabs__list-item-link\");\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.sticky = this.$module.classList.contains(\"tna-tabs--sticky\");\n\n const startingTarget = window.location.hash.replace(/^#/, \"\");\n const doesStartingTargetExist = [...this.$tabItems].some(\n ($tabItem) => $tabItem.getAttribute(\"id\") === startingTarget,\n );\n\n this.$newTabList = document.createElement(\"div\");\n this.$newTabList.setAttribute(\"role\", \"tablist\");\n this.$newTabList.setAttribute(\"class\", this.$tabList.getAttribute(\"class\"));\n\n this.$tabItems.forEach(($tabItem, index) => {\n $tabItem.setAttribute(\"role\", \"tabpanel\");\n $tabItem.setAttribute(\n \"aria-labelledby\",\n `${$tabItem.getAttribute(\"id\")}-tab`,\n );\n $tabItem.setAttribute(\"tabindex\", \"0\");\n if (\n (doesStartingTargetExist &&\n $tabItem.getAttribute(\"id\") !== startingTarget) ||\n (!doesStartingTargetExist && index > 0)\n ) {\n $tabItem.setAttribute(\"hidden\", true);\n }\n });\n\n this.$tabListItemLinks.forEach(($tabListItemLink) => {\n const $replacementButton = document.createElement(\"button\");\n $replacementButton.innerText = $tabListItemLink.innerText;\n $replacementButton.setAttribute(\n \"class\",\n $tabListItemLink.getAttribute(\"class\"),\n );\n $replacementButton.setAttribute(\"role\", \"tab\");\n $replacementButton.setAttribute(\n \"id\",\n $tabListItemLink.getAttribute(\"id\"),\n );\n $replacementButton.setAttribute(\n \"aria-controls\",\n $tabListItemLink.getAttribute(\"href\")?.replace(/^#/, \"\"),\n );\n $replacementButton.setAttribute(\"tabindex\", \"-1\");\n this.$newTabList.appendChild($replacementButton);\n });\n\n this.$tabList.replaceWith(this.$newTabList);\n\n this.$tabListItemLinks = this.$module.querySelectorAll(\n \".tna-tabs__list-item-link\",\n );\n\n this.$tabListItemLinks.forEach(($tabListItemLink, index) => {\n if (\n (startingTarget &&\n $tabListItemLink.getAttribute(\"aria-controls\") ===\n `${startingTarget}`) ||\n (!startingTarget && index === 0)\n ) {\n $tabListItemLink.classList.add(\"tna-tabs__list-item-link--selected\");\n $tabListItemLink.setAttribute(\"aria-selected\", true);\n $tabListItemLink.setAttribute(\"tabindex\", \"0\");\n } else {\n $tabListItemLink.setAttribute(\"aria-selected\", false);\n }\n\n $tabListItemLink.addEventListener(\n \"keydown\",\n (e) => this.handleItemLinkKeyDown(e),\n true,\n );\n $tabListItemLink.addEventListener(\n \"click\",\n (e) => this.handleItemLinkClick(e),\n true,\n );\n });\n }\n\n handleItemLinkClick(itemLinkClickEvent) {\n itemLinkClickEvent.preventDefault();\n const targetItem =\n itemLinkClickEvent.currentTarget.getAttribute(\"aria-controls\");\n\n this.switchTab(targetItem);\n }\n\n handleItemLinkKeyDown(itemLinkKeyDownEvent) {\n const targetItem = itemLinkKeyDownEvent.currentTarget;\n let overwriteKeyAction = false;\n\n switch (itemLinkKeyDownEvent.key) {\n case \"ArrowLeft\":\n case \"ArrowUp\":\n this.setSelectedToPreviousTab(targetItem);\n overwriteKeyAction = true;\n break;\n\n case \"ArrowRight\":\n case \"ArrowDown\":\n this.setSelectedToNextTab(targetItem);\n overwriteKeyAction = true;\n break;\n\n case \"Home\":\n this.switchTab(this.$tabListItemLinks[0].getAttribute(\"aria-controls\"));\n overwriteKeyAction = true;\n break;\n\n case \"End\":\n this.switchTab(\n this.$tabListItemLinks[\n this.$tabListItemLinks.length - 1\n ].getAttribute(\"aria-controls\"),\n );\n overwriteKeyAction = true;\n break;\n\n default:\n break;\n }\n\n if (overwriteKeyAction) {\n itemLinkKeyDownEvent.stopPropagation();\n itemLinkKeyDownEvent.preventDefault();\n }\n }\n\n setSelectedToNextTab(targetItem) {\n const currentIndex = [...this.$tabListItemLinks].findIndex(\n ($tabListItemLink) =>\n $tabListItemLink.getAttribute(\"id\") === targetItem.getAttribute(\"id\"),\n );\n let newIndex;\n if (currentIndex < this.$tabListItemLinks.length - 1) {\n newIndex = currentIndex + 1;\n } else {\n newIndex = 0;\n }\n this.switchTab(\n this.$tabListItemLinks[newIndex].getAttribute(\"aria-controls\"),\n );\n }\n\n setSelectedToPreviousTab(targetItem) {\n const currentIndex = [...this.$tabListItemLinks].findIndex(\n ($tabListItemLink) =>\n $tabListItemLink.getAttribute(\"id\") === targetItem.getAttribute(\"id\"),\n );\n let newIndex;\n if (currentIndex >= 1) {\n newIndex = currentIndex - 1;\n } else {\n newIndex = this.$tabListItemLinks.length - 1;\n }\n this.switchTab(\n this.$tabListItemLinks[newIndex].getAttribute(\"aria-controls\"),\n );\n }\n\n switchTab(targetId) {\n this.$tabListItemLinks.forEach(($tabListItemLink) => {\n if ($tabListItemLink.getAttribute(\"aria-controls\") === targetId) {\n $tabListItemLink.classList.add(\"tna-tabs__list-item-link--selected\");\n $tabListItemLink.setAttribute(\"aria-selected\", true);\n $tabListItemLink.setAttribute(\"tabindex\", \"0\");\n $tabListItemLink.focus();\n } else {\n $tabListItemLink.classList.remove(\"tna-tabs__list-item-link--selected\");\n $tabListItemLink.setAttribute(\"aria-selected\", false);\n $tabListItemLink.setAttribute(\"tabindex\", \"-1\");\n }\n });\n\n this.$tabItems.forEach(($tabItem) => {\n if ($tabItem.getAttribute(\"id\") === targetId) {\n $tabItem.removeAttribute(\"hidden\");\n $tabItem.setAttribute(\"tabindex\", \"0\");\n } else {\n $tabItem.setAttribute(\"hidden\", true);\n $tabItem.setAttribute(\"tabindex\", \"-1\");\n }\n });\n\n if (this.sticky) {\n if (history.replaceState) {\n history.replaceState(null, null, `#${targetId}`);\n } else {\n location.hash = `#${targetId}`;\n }\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\n/**\n * Class to handle cookies.\n * @class Cookies\n * @constructor\n * @public\n */\nexport default class Cookies {\n /** @protected */\n extraPolicies = [];\n /** @protected */\n domain = \"\";\n /** @protected */\n path = \"\";\n /** @protected */\n secure = true;\n /** @protected */\n policiesKey = \"\";\n /** @protected */\n events = null;\n\n /**\n * Create a cookie handler.\n * @param {String} [options.extraPolicies=[]] - The extra cookie policies to manage in addition to essential, settings and usage.\n * @param {String} [options.domain=\"\"] - The domain to register the cookie with.\n * @param {String} [options.path=\"\"] - The domain to register the cookie with.\n * @param {String} [options.secure=true] - Only set cookie in HTTPS environments.\n * @param {String} [options.policiesKey=\"cookies_policy\"] - The name of the cookie.\n * @param {String} [options.newInstance=false] - Create a fresh instance of the cookie class.\n */\n constructor(options = {}) {\n const {\n extraPolicies = [],\n domain = \"\",\n path = \"/\",\n secure = true,\n policiesKey = \"cookies_policy\",\n newInstance = false,\n } = options;\n if (newInstance) {\n this.destroyInstance();\n } else if (window.TNAFrontendCookies) {\n return window.TNAFrontendCookies;\n }\n this.extraPolicies = extraPolicies;\n this.domain = domain;\n this.path = path;\n this.secure = secure;\n this.policiesKey = policiesKey;\n this.events = new CookieEventHandler();\n this.init();\n window.TNAFrontendCookies = this;\n }\n\n /** @protected */\n init() {\n this.savePolicies({\n ...Object.fromEntries(\n this.extraPolicies.map((k) => [k.toLowerCase(), false]),\n ),\n usage: false,\n settings: false,\n ...this.policies,\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=31536000] - 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.domain] - The domain to register the cookie with.\n * @param {String} [options.path=this.path] - The path to register the cookie with.\n * @param {String} [options.secure=this.secure] - Only set cookie in HTTPS environments.\n */\n set(key, value, options = {}) {\n const {\n maxAge = 60 * 60 * 24 * 365,\n sameSite = \"Lax\",\n domain = this.domain,\n path = this.path,\n secure = this.secure,\n } = options;\n if (!key) {\n return;\n }\n const cookie = `${encodeURIComponent(key)}=${encodeURIComponent(value)};${\n domain ? ` domain=${domain}; ` : \"\"\n } samesite=${sameSite}; path=${path}; 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 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};","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 Cookies from \"./lib/cookies.mjs\";\n\nconst $body = document.documentElement;\n$body.classList.add(\"tna-template--js-enabled\");\n\nconst onFirstTouch = () => {\n window.removeEventListener(\"touchstart\", onFirstTouch);\n $body.classList.add(\"tna-template--touched\");\n};\n\nconst onKeyDown = (e) => {\n if (e.key === \"Tab\") {\n $body.classList.add(\"tna-template--tabbed\");\n $body.classList.remove(\"tna-template--clicked\");\n }\n};\n\nconst onMouseDown = () => {\n $body.classList.add(\"tna-template--clicked\");\n $body.classList.remove(\"tna-template--tabbed\");\n};\n\nwindow.addEventListener(\"touchstart\", onFirstTouch);\nwindow.addEventListener(\"keydown\", onKeyDown);\nwindow.addEventListener(\"mousedown\", onMouseDown);\n\nconst initAll = (options) => {\n options = typeof options !== \"undefined\" ? options : {};\n const $scope =\n options.scope instanceof HTMLElement ? options.scope : document;\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\nwindow.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=\"until-found\"], .tna-picture__transcript[hidden=\"until-found\"]',\n )\n .forEach((e) => {\n e.removeAttribute(\"hidden\");\n e.dataset.wasclosed = \"\";\n });\n } else {\n document\n .querySelectorAll(\".tna-details__details[data-wasclosed]\")\n .forEach((e) => {\n e.removeAttribute(\"open\");\n delete e.dataset.wasclosed;\n });\n document\n .querySelectorAll(\n \".tna-accordion__content[data-wasclosed], .tna-picture__transcript[data-wasclosed]\",\n )\n .forEach((e) => {\n e.setAttribute(\"hidden\", \"until-closed\");\n e.dataset.wasclosed = \"\";\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};\n"],"names":["root","factory","exports","module","define","amd","self","Accordion","$module","_this","_classCallCheck","this","$items","querySelectorAll","allowMultipleItemsOpen","dataset","forEach","$item","initItem","initState","key","value","_this2","$heading","querySelector","$content","classList","add","remove","removeAttribute","setAttribute","addEventListener","$headingButton","document","createElement","id","parentNode","insertBefore","nextSibling","appendChild","getAttribute","closeItem","openItem","_this3","closeAllItemsExcept","concat","innerText","focus","$excludeItem","_this4","Array","from","filter","Breadcrumbs","_createClass","$breadcrumbsList","$breadcrumbs","length","contains","uniqueId","uuidv4","$expandable","style","display","$expandButton","innerHTML","CookieBanner","$acceptButton","$rejectButton","$prompt","$acceptedMessage","$rejectedMessage","$closeButtons","extraPolicies","split","x","map","policy","trim","domain","undefined","path","secure","policiesKey","cookies","Cookies","newInstance","cookiePreferencesSet","hasValue","accept","reject","complete","acceptAllPolicies","rejectAllPolicies","set","$closeButton","close","ErrorSummary","setFocus","$element","_options$onBeforeFocu","options","arguments","isFocusable","onBlur","_options$onBlur","call","once","onBeforeFocus","Footer","$themeSelector","$tnaTemplate","$themeSelectorButtons","$themeSelectorButton","e","$button","target","setTheme","selectThemeSelectorButton","isPolicyAccepted","showThemeSelector","on","data","Object","hasOwn","settings","hideThemeSelector","exists","$currentThemeButton","find","get","theme","$selectedButton","Gallery","$itemsContainer","$navigation","$navigationItems","$options","$navigationButtons","$showIndex","$enterFullscreen","$exitFullscreen","$navigationButtonPrev","$navigationButtonNext","syncFullScreen","setup","allowIndex","showIndex","currentId","showItem","_this$$showIndex","_this$$navigationButt","_this$$navigationButt2","_this$$navigationButt3","_this$$enterFullscree","_this$$exitFullscreen","_this$$enterFullscree2","showPreviousItem","showNextItem","showFirstItem","showLastItem","fullscreenEnabled","enterFullScreen","exitFullScreen","_this$$showIndex2","_this$$showIndex3","focusItem","index","findIndex","nextIndexToShow","getCurrentItemIndex","fullscreenElement","exitFullscreen","requestFullscreen","GlobalHeader","$toggleButton","$topNavigation","$links","menuOpened","mql","window","matchMedia","syncState","handleToggleNavigation","addListener","code","matches","show","hide","hidden","i","Header","Picture","$imageWrapper","$transcript","transcriptOpened","openLabel","closeLabel","$transcriptToggle","handleToggleTranscript","SkipLink","linkedElementId","pop","$linkedElement","getElementById","focusLinkedElement","linkedElementListener","removeFocusProperties","Tabs","$tabList","$tabListItemLinks","$tabItems","sticky","startingTarget","location","hash","replace","doesStartingTargetExist","_toConsumableArray","some","$tabItem","$newTabList","$tabListItemLink","_$tabListItemLink$get","$replacementButton","replaceWith","handleItemLinkKeyDown","handleItemLinkClick","itemLinkClickEvent","preventDefault","targetItem","currentTarget","switchTab","itemLinkKeyDownEvent","overwriteKeyAction","setSelectedToPreviousTab","setSelectedToNextTab","stopPropagation","newIndex","currentIndex","targetId","history","replaceState","TNAFrontendCookies","TNAFrontendCookieEvents","CookieEventHandler","_defineProperty","event","callback","events","oneTimeEvents","eventToTrigger","splice","_options$extraPolicie","_options$domain","_options$path","_options$secure","_options$policiesKey","_options$newInstance","destroyInstance","init","savePolicies","_objectSpread","fromEntries","k","toLowerCase","usage","policies","essential","deserialised","cookie","parts","JSON","parse","all","decodeURIComponent","_options$maxAge","maxAge","_options$sameSite","sameSite","_options$domain2","_options$path2","_options$secure2","encodeURIComponent","trigger","keys","setPolicy","accepted","allPolicies","stringify","c","crypto","getRandomValues","Uint8Array","toString","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","d","definition","o","defineProperty","enumerable","obj","prop","prototype","hasOwnProperty","r","Symbol","toStringTag","$body","documentElement","onFirstTouch","removeEventListener","initAll","$scope","scope","HTMLElement","$accordion","$cookieBanner","$errorSummary","$footer","$gallery","$globalHeader","$header","$picture","$skipLink","$tabModule","evt","wasclosed"],"sourceRoot":""}
@@ -7,8 +7,6 @@ import { Gallery } from "./components/gallery/gallery.mjs";
7
7
  import { GlobalHeader } from "./components/global-header/global-header.mjs";
8
8
  import { Header } from "./components/header/header.mjs";
9
9
  import { Picture } from "./components/picture/picture.mjs";
10
- import { SearchFilters } from "./components/search-filters/search-filters.mjs";
11
- import { SensitiveImage } from "./components/sensitive-image/sensitive-image.mjs";
12
10
  import { SkipLink } from "./components/skip-link/skip-link.mjs";
13
11
  import { Tabs } from "./components/tabs/tabs.mjs";
14
12
  import Cookies from "./lib/cookies.mjs";
@@ -93,20 +91,6 @@ const initAll = (options) => {
93
91
  new Picture($picture);
94
92
  });
95
93
 
96
- const $searchFilters = $scope.querySelectorAll(
97
- '[data-module="tna-search-filters"]',
98
- );
99
- $searchFilters.forEach(($searchFilter) => {
100
- new SearchFilters($searchFilter);
101
- });
102
-
103
- const $sensitiveImages = $scope.querySelectorAll(
104
- '[data-module="tna-sensitive-image"]',
105
- );
106
- $sensitiveImages.forEach(($sensitiveImage) => {
107
- new SensitiveImage($sensitiveImage);
108
- });
109
-
110
94
  const $skipLinks = $scope.querySelectorAll('[data-module="tna-skip-link"]');
111
95
  $skipLinks.forEach(($skipLink) => {
112
96
  new SkipLink($skipLink);
@@ -164,8 +148,6 @@ export {
164
148
  GlobalHeader,
165
149
  Header,
166
150
  Picture,
167
- SearchFilters,
168
- SensitiveImage,
169
151
  SkipLink,
170
152
  Tabs,
171
153
  };
@@ -0,0 +1,9 @@
1
+ @use "checkboxes";
2
+ @use "date-input";
3
+ @use "date-search";
4
+ @use "error-summary";
5
+ @use "radios";
6
+ @use "search-field";
7
+ @use "select";
8
+ @use "text-input";
9
+ @use "textarea";
@@ -1,35 +1,2 @@
1
- @use "accordion";
2
- @use "breadcrumbs";
3
- @use "button";
4
- @use "card";
5
- @use "checkboxes";
6
- @use "compound-filters";
7
- @use "cookie-banner";
8
- @use "date-input";
9
- @use "date-search";
10
- @use "details";
11
- @use "error-summary";
12
- @use "featured-records";
13
- @use "files";
14
- @use "footer";
15
- @use "gallery";
16
- @use "global-header";
17
- @use "grid";
18
- @use "header";
19
- @use "hero";
20
- @use "index-grid";
21
- @use "pagination";
22
- @use "phase-banner";
23
- @use "picture";
24
- @use "quick-filters";
25
- @use "radios";
26
- @use "sensitive-image";
27
- @use "search-field";
28
- @use "search-filters";
29
- @use "select";
30
- @use "sidebar";
31
- @use "skip-link";
32
- @use "tabs";
33
- @use "text-input";
34
- @use "textarea";
35
- @use "warning";
1
+ @use "presentation";
2
+ @use "forms";
@@ -0,0 +1,23 @@
1
+ @use "accordion";
2
+ @use "breadcrumbs";
3
+ @use "button";
4
+ @use "card";
5
+ @use "compound-filters";
6
+ @use "cookie-banner";
7
+ @use "details";
8
+ @use "files-list";
9
+ @use "footer";
10
+ @use "gallery";
11
+ @use "global-header";
12
+ @use "header";
13
+ @use "hero";
14
+ @use "index-grid";
15
+ @use "pagination";
16
+ @use "phase-banner";
17
+ @use "picture";
18
+ @use "quick-filters";
19
+ @use "records-list";
20
+ @use "sidebar";
21
+ @use "skip-link";
22
+ @use "tabs";
23
+ @use "warning";