@nationalarchives/frontend 0.6.0 → 0.7.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 (35) hide show
  1. package/nationalarchives/all+analytics.js +1 -1
  2. package/nationalarchives/all+analytics.js.map +1 -1
  3. package/nationalarchives/all+analytics.mjs +2 -0
  4. package/nationalarchives/all.css +1 -1
  5. package/nationalarchives/all.css.map +1 -1
  6. package/nationalarchives/all.js +1 -1
  7. package/nationalarchives/all.js.map +1 -1
  8. package/nationalarchives/all.mjs +7 -0
  9. package/nationalarchives/analytics.js +1 -1
  10. package/nationalarchives/analytics.js.map +1 -1
  11. package/nationalarchives/analytics.mjs +76 -63
  12. package/nationalarchives/components/accordion/accordion.js +1 -1
  13. package/nationalarchives/components/accordion/accordion.js.map +1 -1
  14. package/nationalarchives/components/accordion/accordion.mjs +2 -2
  15. package/nationalarchives/components/checkboxes/analytics.js +3 -2
  16. package/nationalarchives/components/cookie-banner/macro-options.json +1 -1
  17. package/nationalarchives/components/gallery/analytics.js +25 -7
  18. package/nationalarchives/components/radios/analytics.js +2 -1
  19. package/nationalarchives/components/search-field/analytics.js +1 -1
  20. package/nationalarchives/components/sidebar/analytics.js +1 -1
  21. package/nationalarchives/components/text-input/analytics.js +2 -1
  22. package/nationalarchives/components/text-input/fixtures.json +18 -6
  23. package/nationalarchives/components/text-input/macro-options.json +6 -0
  24. package/nationalarchives/components/text-input/template.njk +1 -1
  25. package/nationalarchives/components/text-input/text-input.css +1 -1
  26. package/nationalarchives/components/text-input/text-input.css.map +1 -1
  27. package/nationalarchives/components/text-input/text-input.js +2 -0
  28. package/nationalarchives/components/text-input/text-input.js.map +1 -0
  29. package/nationalarchives/components/text-input/text-input.mjs +54 -0
  30. package/nationalarchives/components/text-input/text-input.njk +4 -2
  31. package/nationalarchives/components/text-input/text-input.scss +22 -1
  32. package/nationalarchives/components/textarea/analytics.js +2 -1
  33. package/nationalarchives/prototype-kit.css +1 -1
  34. package/nationalarchives/prototype-kit.css.map +1 -1
  35. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"all+analytics.js","mappings":"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","sources":["webpack://TNAFrontend/webpack/universalModuleDefinition","webpack://TNAFrontend/./src/nationalarchives/all.mjs","webpack://TNAFrontend/./src/nationalarchives/lib/analytics-helpers.mjs","webpack://TNAFrontend/./src/nationalarchives/components/accordion/analytics.js","webpack://TNAFrontend/./src/nationalarchives/components/breadcrumbs/analytics.js","webpack://TNAFrontend/./src/nationalarchives/components/checkboxes/analytics.js","webpack://TNAFrontend/./src/nationalarchives/components/details/analytics.js","webpack://TNAFrontend/./src/nationalarchives/components/footer/analytics.js","webpack://TNAFrontend/./src/nationalarchives/components/gallery/analytics.js","webpack://TNAFrontend/./src/nationalarchives/components/global-header/analytics.js","webpack://TNAFrontend/./src/nationalarchives/components/header/analytics.js","webpack://TNAFrontend/./src/nationalarchives/components/picture/analytics.js","webpack://TNAFrontend/./src/nationalarchives/components/radios/analytics.js","webpack://TNAFrontend/./src/nationalarchives/components/search-field/analytics.js","webpack://TNAFrontend/./src/nationalarchives/components/sidebar/analytics.js","webpack://TNAFrontend/./src/nationalarchives/components/text-input/analytics.js","webpack://TNAFrontend/./src/nationalarchives/components/textarea/analytics.js","webpack://TNAFrontend/./src/nationalarchives/analytics.mjs","webpack://TNAFrontend/./src/nationalarchives/components/hero/analytics.js","webpack://TNAFrontend/./src/nationalarchives/components/accordion/accordion.mjs","webpack://TNAFrontend/./src/nationalarchives/components/breadcrumbs/breadcrumbs.mjs","webpack://TNAFrontend/./src/nationalarchives/components/cookie-banner/cookie-banner.mjs","webpack://TNAFrontend/./src/nationalarchives/components/error-summary/error-summary.mjs","webpack://TNAFrontend/./src/nationalarchives/components/footer/footer.mjs","webpack://TNAFrontend/./src/nationalarchives/components/gallery/gallery.mjs","webpack://TNAFrontend/./src/nationalarchives/components/global-header/global-header.mjs","webpack://TNAFrontend/./src/nationalarchives/components/header/header.mjs","webpack://TNAFrontend/./src/nationalarchives/components/picture/picture.mjs","webpack://TNAFrontend/./src/nationalarchives/components/skip-link/skip-link.mjs","webpack://TNAFrontend/./src/nationalarchives/components/tabs/tabs.mjs","webpack://TNAFrontend/./src/nationalarchives/lib/cookies.mjs","webpack://TNAFrontend/./src/nationalarchives/lib/uuid.mjs","webpack://TNAFrontend/webpack/bootstrap","webpack://TNAFrontend/webpack/runtime/define property getters","webpack://TNAFrontend/webpack/runtime/hasOwnProperty shorthand","webpack://TNAFrontend/webpack/runtime/make namespace object"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"TNAFrontend\"] = factory();\n\telse\n\t\troot[\"TNAFrontend\"] = factory();\n})(self, () => {\nreturn ","import { Accordion } from \"./components/accordion/accordion.mjs\";\nimport { Breadcrumbs } from \"./components/breadcrumbs/breadcrumbs.mjs\";\nimport { CookieBanner } from \"./components/cookie-banner/cookie-banner.mjs\";\nimport { ErrorSummary } from \"./components/error-summary/error-summary.mjs\";\nimport { Footer } from \"./components/footer/footer.mjs\";\nimport { Gallery } from \"./components/gallery/gallery.mjs\";\nimport { GlobalHeader } from \"./components/global-header/global-header.mjs\";\nimport { Header } from \"./components/header/header.mjs\";\nimport { Picture } from \"./components/picture/picture.mjs\";\nimport { SkipLink } from \"./components/skip-link/skip-link.mjs\";\nimport { Tabs } from \"./components/tabs/tabs.mjs\";\nimport Cookies from \"./lib/cookies.mjs\";\n\nconst initAll = (options) => {\n options = typeof options !== \"undefined\" ? options : {};\n const $scope =\n options.scope instanceof HTMLElement ? options.scope : document;\n\n const $body = document.documentElement;\n $body.classList.add(\"tna-template--js-enabled\");\n\n const onFirstTouch = () => {\n window.removeEventListener(\"touchstart\", onFirstTouch);\n $body.classList.add(\"tna-template--touched\");\n };\n\n const onKeyDown = (e) => {\n if (e.key === \"Tab\") {\n $body.classList.add(\"tna-template--tabbed\");\n $body.classList.remove(\"tna-template--clicked\");\n }\n };\n\n const onMouseDown = () => {\n $body.classList.add(\"tna-template--clicked\");\n $body.classList.remove(\"tna-template--tabbed\");\n };\n\n window.addEventListener(\"touchstart\", onFirstTouch);\n window.addEventListener(\"keydown\", onKeyDown);\n window.addEventListener(\"mousedown\", onMouseDown);\n\n const $accordions = $scope.querySelectorAll('[data-module=\"tna-accordion\"]');\n $accordions.forEach(($accordion) => {\n new Accordion($accordion);\n });\n\n const $breadcrumbs = $scope.querySelector('[data-module=\"tna-breadcrumbs\"]');\n if ($breadcrumbs) {\n new Breadcrumbs($breadcrumbs);\n }\n\n const $cookieBanner = $scope.querySelector(\n '[data-module=\"tna-cookie-banner\"]',\n );\n if ($cookieBanner) {\n new CookieBanner($cookieBanner);\n }\n\n const $errorSummary = $scope.querySelector(\n '[data-module=\"tna-error-summary\"]',\n );\n if ($errorSummary) {\n new ErrorSummary($errorSummary).init();\n }\n\n const $footer = $scope.querySelector('[data-module=\"tna-footer\"]');\n if ($footer) {\n new Footer($footer);\n }\n\n const $galleries = $scope.querySelectorAll('[data-module=\"tna-gallery\"]');\n $galleries.forEach(($gallery) => {\n new Gallery($gallery);\n });\n\n const $globalHeader = $scope.querySelector(\n '[data-module=\"tna-global-header\"]',\n );\n if ($globalHeader) {\n new GlobalHeader($globalHeader);\n }\n\n const $header = $scope.querySelector('[data-module=\"tna-header\"]');\n if ($header) {\n new Header($header);\n }\n\n const $pictures = $scope.querySelectorAll('[data-module=\"tna-picture\"]');\n $pictures.forEach(($picture) => {\n new Picture($picture);\n });\n\n const $skipLinks = $scope.querySelectorAll('[data-module=\"tna-skip-link\"]');\n $skipLinks.forEach(($skipLink) => {\n new SkipLink($skipLink);\n });\n\n const $tabs = $scope.querySelectorAll('[data-module=\"tna-tabs\"]');\n $tabs.forEach(($tabModule) => {\n new Tabs($tabModule);\n });\n\n const checkTableForScroll = ($tableWrapper) => {\n const scrollable = $tableWrapper.scrollWidth > $tableWrapper.clientWidth;\n const $tableCaption = $tableWrapper.querySelector(\".tna-table__caption\");\n if (scrollable) {\n $tableWrapper.setAttribute(\"tabindex\", \"0\");\n $tableCaption?.classList.add(\"tna-table__caption--scroll\");\n } else {\n $tableWrapper.removeAttribute(\"tabindex\");\n $tableCaption?.classList.remove(\"tna-table__caption--scroll\");\n }\n };\n\n const $tableWrappers = document.querySelectorAll(\n \".tna-table-wrapper:has(.tna-table__caption)\",\n );\n $tableWrappers.forEach(($tableWrapper) => checkTableForScroll($tableWrapper));\n window.addEventListener(\"resize\", () => {\n $tableWrappers.forEach(($tableWrapper) =>\n checkTableForScroll($tableWrapper),\n );\n });\n\n window.matchMedia(\"print\").addEventListener(\"change\", (evt) => {\n if (evt.matches) {\n document\n .querySelectorAll(\".tna-details__details:not([open])\")\n .forEach((e) => {\n e.setAttribute(\"open\", \"\");\n e.dataset.wasClosed = \"\";\n });\n document\n .querySelectorAll(\n '.tna-accordion__content[hidden=\"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-was-closed]\")\n .forEach((e) => {\n e.removeAttribute(\"open\");\n delete e.dataset.wasClosed;\n });\n document\n .querySelectorAll(\n \".tna-accordion__content[data-was-closed], .tna-picture__transcript[data-was-closed]\",\n )\n .forEach((e) => {\n e.setAttribute(\"hidden\", \"until-closed\");\n e.dataset.wasClosed = \"\";\n });\n }\n });\n};\n\nexport {\n initAll,\n Cookies,\n Accordion,\n Breadcrumbs,\n CookieBanner,\n ErrorSummary,\n Footer,\n Gallery,\n GlobalHeader,\n Header,\n Picture,\n SkipLink,\n Tabs,\n};\n","const getXPathTo = ($element) => {\n if ($element.id !== \"\") {\n return 'id(\"' + $element.id + '\")';\n }\n if ($element === document.body) {\n return $element.tagName;\n }\n let ix = 0;\n if ($element.parentNode) {\n const siblings = $element.parentNode.childNodes;\n for (let i = 0; i < siblings.length; i++) {\n const sibling = siblings[i];\n if (sibling === $element)\n return (\n getXPathTo($element.parentNode) +\n \"/\" +\n $element.tagName +\n \"[\" +\n (ix + 1) +\n \"]\"\n );\n if (sibling.nodeType === 1 && sibling.tagName === $element.tagName) ix++;\n }\n } else {\n return $element.tagName;\n }\n};\n\nconst includesAny = (arr, values) => values.some((v) => arr.includes(v));\n\nconst getClosestHeading = ($element) => {\n let heading = \"\";\n let $search = $element;\n do {\n while ($search.previousElementSibling) {\n $search = $search.previousElementSibling;\n if (\n [\"h1\", \"h2\", \"h3\", \"h4\", \"h5\", \"h6\"].includes($search.tagName) ||\n ($search.classList.length &&\n includesAny(Array.from($search.classList), [\n \"tna-heading-xl\",\n \"tna-heading-l\",\n \"tna-heading-m\",\n \"tna-heading-s\",\n ]))\n ) {\n heading = $search.innerText;\n break;\n }\n }\n $search = $search.parentElement;\n } while ($search.parentElement && !heading);\n return heading;\n};\n\nconst valueGetters = {\n text: ($el) => $el.innerText.replace(/\\n/g, \" \"),\n html: ($el) => $el.innerHTML,\n value: ($el) => $el.value,\n index: ($el, $scope, event, index) => index,\n instance: ($el, $scope, event, index, instance) => instance,\n checked: ($el) => ($el.checked ? \"checked\" : \"unchecked\"),\n expanded: ($el) => {\n const expanded = $el.getAttribute(\"aria-expanded\");\n if (expanded === null) {\n return null;\n }\n return expanded.toString() === \"true\" ? \"opened\" : \"closed\";\n },\n closestHeading: ($el) => getClosestHeading($el),\n};\n\nexport { getXPathTo, getClosestHeading, valueGetters };\n","import { valueGetters } from \"../../lib/analytics-helpers.mjs\";\n\nexport default [\n {\n scope: \".tna-accordion\",\n areaName: \"accordion\",\n rootEventName: \"select_feature\",\n rootData: {\n data_component_name: \"accordion\",\n },\n events: [\n {\n eventName: \"click\",\n targetElement: \".tna-accordion__summary\",\n on: \"click\",\n data: { state: valueGetters.expanded, value: valueGetters.text },\n rootData: {\n data_link_type: valueGetters.expanded,\n data_link: valueGetters.text,\n data_position: valueGetters.index,\n },\n },\n ],\n },\n];\n","import { valueGetters } from \"../../lib/analytics-helpers.mjs\";\n\nexport default [\n {\n scope: \".tna-breadcrumbs\",\n areaName: \"breadcrumbs\",\n rootEventName: \"select_navigation\",\n rootData: {\n data_component_name: \"breadcrumbs\",\n },\n events: [\n {\n eventName: \"click\",\n targetElement: \"a.tna-breadcrumbs__link\",\n on: \"click\",\n data: { state: \"expand\", value: valueGetters.html },\n rootData: {\n data_link_type: \"breadcrumb_link\",\n data_link: valueGetters.text,\n },\n },\n {\n eventName: \"click\",\n targetElement:\n \".tna-breadcrumbs__item--expandable button.tna-breadcrumbs__link\",\n on: \"click\",\n data: { state: \"expand\", value: valueGetters.html },\n rootData: {\n data_link_type: \"breadcrumb_expand\",\n data_link: valueGetters.text,\n },\n },\n ],\n },\n];\n","import { valueGetters } from \"../../lib/analytics-helpers.mjs\";\n\nexport default [\n {\n scope: \".tna-checkboxes\",\n areaName: \"checkboxes\",\n events: [\n {\n eventName: \"toggle\",\n targetElement: \".tna-checkboxes__item input\",\n on: \"change\",\n data: {\n state: valueGetters.checked,\n // eslint-disable-next-line no-unused-vars\n value: ($el, $scope, event) => $el.parentNode.innerText,\n // eslint-disable-next-line no-unused-vars\n group: ($el, $scope, event) =>\n $scope\n .closest(\".tna-form__group\")\n ?.querySelector(\".tna-form__heading\")?.innerText,\n },\n },\n ],\n },\n];\n","import { valueGetters } from \"../../lib/analytics-helpers.mjs\";\n\nexport default [\n {\n scope: \".tna-details\",\n areaName: \"details\",\n events: [\n {\n eventName: \"click\",\n targetElement: \".tna-details__summary\",\n on: \"click\",\n data: {\n // eslint-disable-next-line no-unused-vars\n state: ($el, $scope, event) => {\n const wasExpanded =\n $scope\n .querySelector(\".tna-details__details\")\n ?.hasAttribute(\"open\") ?? false;\n return wasExpanded ? \"closed\" : \"opened\";\n },\n // eslint-disable-next-line no-unused-vars\n value: valueGetters.text,\n },\n },\n ],\n },\n];\n","import { valueGetters } from \"../../lib/analytics-helpers.mjs\";\n\nexport default [\n {\n scope: \".tna-footer\",\n areaName: \"footer\",\n rootEventName: \"global_navigation\",\n rootData: {\n data_component_name: \"footer\",\n },\n events: [\n {\n eventName: \"link.click\",\n targetElement: \".tna-footer__navigation-block-item-link\",\n on: \"click\",\n data: {\n value: valueGetters.text,\n },\n rootData: {\n data_link_type: \"link\",\n data_section: valueGetters.closestHeading,\n data_link: valueGetters.text,\n },\n },\n {\n eventName: \"social_link.click\",\n targetElement: \".tna-footer__social-item-link\",\n on: \"click\",\n data: {\n value: valueGetters.text,\n },\n rootData: {\n data_link_type: \"icon\",\n data_section: \"Social media\",\n data_link: ($el) => $el.dataset.name,\n },\n },\n {\n eventName: \"legal_link.click\",\n targetElement: \".tna-footer__legal-item-link\",\n on: \"click\",\n data: {\n value: valueGetters.text,\n },\n rootData: {\n data_link_type: \"link\",\n data_section: \"Legal information\",\n data_link: valueGetters.text,\n },\n },\n {\n eventName: \"mailing_list.click\",\n targetElement: \".tna-footer__mailing-list a.tna-button\",\n on: \"click\",\n data: {\n value: valueGetters.text,\n },\n rootData: {\n data_link_type: \"button\",\n data_section: \"Mailing list\",\n data_link: valueGetters.text,\n },\n },\n {\n eventName: \"ogl.click\",\n targetElement: \".tna-footer__licence p a.tna-footer__link\",\n on: \"click\",\n data: {\n value: valueGetters.text,\n },\n rootData: {\n data_link_type: \"link\",\n data_section: \"OGL\",\n data_link: valueGetters.text,\n },\n },\n {\n eventName: \"govuk.click\",\n targetElement: \".tna-footer__govuk-link\",\n on: \"click\",\n data: {\n value: valueGetters.text,\n },\n rootData: {\n data_link_type: \"Logo\",\n data_section: \"GOV.UK\",\n data_link: valueGetters.text,\n },\n },\n {\n eventName: \"theme.change\",\n targetElement: \".tna-footer__theme-selector-button\",\n on: \"click\",\n data: {\n value: valueGetters.value,\n },\n },\n ],\n },\n];\n","import { valueGetters } from \"../../lib/analytics-helpers.mjs\";\n\nexport default [\n {\n scope: \".tna-gallery\",\n areaName: \"gallery\",\n rootEventName: \"select_media\",\n rootData: {\n media_type: \"gallery\",\n media_duration: ($el, $scope) =>\n $scope.querySelectorAll(\".tna-gallery__navigation-item\").length,\n media_provider: \"tna\",\n media_title: ($el, $scope, event, index, instance) =>\n $scope.querySelector(\".tna-gallery__header-inner\")?.innerText ||\n `gallery_${instance}`,\n media_progress: ($el, $scope) =>\n (Array.from(\n $scope.querySelectorAll(\".tna-gallery__navigation-item\"),\n ).findIndex(\n ($itemButton) => $itemButton.getAttribute(\"aria-current\") === \"true\",\n ) || -1) + 1,\n },\n events: [\n {\n eventName: \"click\",\n targetElement: \".tna-gallery__navigation-item\",\n on: \"click\",\n data: {\n value: valueGetters.text,\n },\n rootData: {\n data_link: \"image\",\n media_action: \"progress\",\n media_progress: valueGetters.index,\n },\n },\n {\n eventName: \"click\",\n targetElement: \".tna-gallery__navigation-prev\",\n on: \"click\",\n data: {\n value: ($el, $scope) =>\n $scope.querySelector(\n \".tna-gallery__item:not([hidden]) .tna-gallery__item-header\",\n ).innerText,\n },\n rootData: {\n data_link: \"previous\",\n media_action: \"progress\",\n },\n },\n {\n eventName: \"click\",\n targetElement: \".tna-gallery__navigation-next\",\n on: \"click\",\n data: {\n value: ($el, $scope) =>\n $scope.querySelector(\n \".tna-gallery__item:not([hidden]) .tna-gallery__item-header\",\n ).innerText,\n },\n rootData: {\n data_link: \"next\",\n media_action: \"progress\",\n },\n },\n {\n eventName: \"keypress\",\n on: \"keydown\",\n data: {\n value: ($el, $scope, event) => event.key,\n },\n },\n {\n eventName: \"enter-fullscreen\",\n targetElement: '.tna-gallery__options button[value=\"enter-fullscreen\"]',\n on: \"click\",\n rootData: {\n data_link: \"enter_full_screen_button\",\n },\n },\n {\n eventName: \"exit-fullscreen\",\n targetElement: '.tna-gallery__options button[value=\"exit-fullscreen\"]',\n on: \"click\",\n rootData: {\n data_link: \"exit_full_screen_button\",\n },\n },\n {\n eventName: \"index\",\n targetElement: '.tna-gallery__options button[value=\"show-index\"]',\n on: \"click\",\n },\n ],\n },\n];\n","import { valueGetters } from \"../../lib/analytics-helpers.mjs\";\n\nexport default [\n {\n scope: \".tna-global-header\",\n areaName: \"header\",\n rootEventName: \"global_navigation\",\n rootData: {\n data_component_name: \"header\",\n },\n events: [\n {\n eventName: \"toggle\",\n targetElement: \".tna-global-header__navigation-button\",\n on: \"click\",\n data: {\n state: valueGetters.expanded,\n },\n rootData: {\n data_link_type: \"mobile_menu\",\n data_link: ($el) => {\n const expanded = $el.getAttribute(\"aria-expanded\");\n if (expanded === null) {\n return null;\n }\n return expanded.toString() === \"true\" ? \"Open menu\" : \"Close menu\";\n },\n data_section: \"Burger menu\",\n },\n },\n {\n eventName: \"logo.click\",\n targetElement: \".tna-global-header__logo\",\n on: \"click\",\n rootData: {\n data_link_type: \"logo\",\n data_link: \"The National Archives\",\n data_section: \"Top navigation and logo\",\n },\n },\n {\n eventName: \"primary_link.click\",\n targetElement: \".tna-global-header__navigation-item-link\",\n on: \"click\",\n data: {\n value: valueGetters.text,\n },\n rootData: {\n data_link_type: \"menu\",\n data_section: valueGetters.text,\n data_position: 1,\n data_link: valueGetters.text,\n },\n },\n {\n eventName: \"secondary_link.click\",\n targetElement: \".tna-global-header__top-navigation-link\",\n on: \"click\",\n data: {\n value: valueGetters.text,\n },\n rootData: {\n data_link_type: \"icon\",\n data_link: valueGetters.text,\n data_section: \"Top navigation and logo\",\n },\n },\n ],\n },\n];\n","import { valueGetters } from \"../../lib/analytics-helpers.mjs\";\n\nexport default [\n {\n scope: \".tna-header\",\n areaName: \"header\",\n events: [\n {\n eventName: \"toggle\",\n targetElement: \".tna-header__navigation-button\",\n on: \"click\",\n data: {\n state: valueGetters.expanded,\n },\n },\n ],\n },\n];\n","import {\n getClosestHeading,\n valueGetters,\n} from \"../../lib/analytics-helpers.mjs\";\n\nexport default [\n {\n scope: \".tna-picture\",\n areaName: \"picture\",\n events: [\n {\n eventName: \"toggle_transcript\",\n targetElement: \".tna-picture__toggle-transcript\",\n on: \"click\",\n data: {\n state: valueGetters.expanded,\n // eslint-disable-next-line no-unused-vars\n value: ($el, $scope, event) => {\n const heading = getClosestHeading($scope);\n const image = $scope.querySelector(\".tna-picture__image\");\n const imageSrc = image.getAttribute(\"src\");\n const imageAlt = image.getAttribute(\"alt\");\n const value = `${imageAlt} (${imageSrc})`;\n return heading ? `${heading} > ${value}` : value;\n },\n },\n },\n ],\n },\n];\n","import { valueGetters } from \"../../lib/analytics-helpers.mjs\";\n\nexport default [\n {\n scope: \".tna-radios\",\n areaName: \"radios\",\n events: [\n {\n eventName: \"toggle\",\n targetElement: \".tna-radios__item input\",\n on: \"change\",\n data: {\n state: valueGetters.checked,\n // eslint-disable-next-line no-unused-vars\n value: ($el, $scope, event) => $el.parentNode.innerText,\n // eslint-disable-next-line no-unused-vars\n group: ($el, $scope, event) =>\n $scope\n .closest(\".tna-form__group\")\n ?.querySelector(\".tna-form__heading\")?.innerText,\n },\n },\n ],\n },\n];\n","import { valueGetters } from \"../../lib/analytics-helpers.mjs\";\n\nexport default [\n {\n scope: \".tna-search-field\",\n areaName: \"search-field\",\n events: [\n {\n eventName: \"blurred\",\n targetElement: \".tna-search-field__input\",\n on: \"blur\",\n data: {\n // eslint-disable-next-line no-unused-vars\n value: valueGetters.value,\n // eslint-disable-next-line no-unused-vars\n group: ($el, $scope, event) =>\n $scope.querySelector(\".tna-form__heading\")?.innerText,\n },\n },\n ],\n },\n];\n","import { valueGetters } from \"../../lib/analytics-helpers.mjs\";\n\nexport default [\n {\n scope: \".tna-sidebar\",\n areaName: \"sidebar\",\n rootEventName: \"select_navigation\",\n rootData: {\n data_component_name: \"sidebar\",\n data_section: ($el, $scope) =>\n $scope.querySelector(\".tna-sidebar__heading\").innerText,\n },\n events: [\n {\n eventName: \"click\",\n targetElement: \"a.tna-sidebar__link\",\n on: \"click\",\n rootData: {\n data_link_type: \"sidebar_link\",\n data_link: valueGetters.text,\n data_position: valueGetters.index,\n },\n },\n ],\n },\n];\n","import { valueGetters } from \"../../lib/analytics-helpers.mjs\";\n\nexport default [\n {\n scope: \".tna-text-input\",\n areaName: \"text-input\",\n events: [\n {\n eventName: \"blurred\",\n on: \"blur\",\n data: {\n // eslint-disable-next-line no-unused-vars\n value: valueGetters.value,\n // eslint-disable-next-line no-unused-vars\n group: ($el, $scope, event) =>\n $scope\n .closest(\".tna-form__group\")\n ?.querySelector(\".tna-form__heading\")?.innerText,\n },\n },\n ],\n },\n];\n","import { valueGetters } from \"../../lib/analytics-helpers.mjs\";\n\nexport default [\n {\n scope: \".tna-textarea\",\n areaName: \"textarea\",\n events: [\n {\n eventName: \"blurred\",\n on: \"blur\",\n data: {\n // eslint-disable-next-line no-unused-vars\n value: valueGetters.value,\n // eslint-disable-next-line no-unused-vars\n group: ($el, $scope, event) =>\n $scope\n .closest(\".tna-form__group\")\n ?.querySelector(\".tna-form__heading\")?.innerText,\n },\n },\n ],\n },\n];\n","import Cookies from \"./lib/cookies.mjs\";\nimport {\n getXPathTo,\n getClosestHeading,\n valueGetters,\n} from \"./lib/analytics-helpers.mjs\";\nimport AccordionAnalytics from \"./components/accordion/analytics.js\";\nimport BreadcrumbAnalytics from \"./components/breadcrumbs/analytics.js\";\nimport CheckboxesAnalytics from \"./components/checkboxes/analytics.js\";\nimport DetailsAnalytics from \"./components/details/analytics.js\";\nimport FooterAnalytics from \"./components/footer/analytics.js\";\nimport GalleryAnalytics from \"./components/gallery/analytics.js\";\nimport GlobalHeaderAnalytics from \"./components/global-header/analytics.js\";\nimport HeaderAnalytics from \"./components/header/analytics.js\";\nimport HeroAnalytics from \"./components/hero/analytics.js\";\nimport PictureAnalytics from \"./components/picture/analytics.js\";\nimport RadiosAnalytics from \"./components/radios/analytics.js\";\nimport SearchFieldAnalytics from \"./components/search-field/analytics.js\";\nimport SidebarAnalytics from \"./components/sidebar/analytics.js\";\nimport TextInputAnalytics from \"./components/text-input/analytics.js\";\nimport TextareaAnalytics from \"./components/textarea/analytics.js\";\n\nconst componentAnalytics = [\n ...AccordionAnalytics,\n ...BreadcrumbAnalytics,\n ...CheckboxesAnalytics,\n ...DetailsAnalytics,\n ...FooterAnalytics,\n ...GalleryAnalytics,\n ...GlobalHeaderAnalytics,\n ...HeaderAnalytics,\n ...HeroAnalytics,\n ...PictureAnalytics,\n ...RadiosAnalytics,\n ...SearchFieldAnalytics,\n ...SidebarAnalytics,\n ...TextInputAnalytics,\n ...TextareaAnalytics,\n];\n\nclass EventTracker {\n /** @protected */\n cookies = new Cookies();\n\n /** @protected */\n events = [];\n\n /** @protected */\n startTime = new Date();\n\n /** @protected */\n prefix = \"tna\";\n\n /** @protected */\n document = document;\n\n constructor(options = {}) {\n const { prefix = null, documentScope = document } = options;\n if (prefix) {\n this.prefix = prefix;\n }\n if (documentScope) {\n this.document = documentScope;\n }\n }\n\n start(initAll) {\n if (!navigator.doNotTrack || navigator.doNotTrack !== 1) {\n if (this.cookies.isPolicyAccepted(\"usage\")) {\n this.enableTracking();\n }\n this.cookies.on(\"changePolicy\", (policies) => {\n if (Object.hasOwn(policies, \"usage\")) {\n if (policies[\"usage\"]) {\n this.enableTracking();\n } else {\n this.disableTracking();\n }\n }\n });\n if (initAll) {\n this.initAll();\n }\n }\n }\n\n enableTracking() {}\n\n disableTracking() {}\n\n /**\n * Initialise all TNA Frontend component analytics.\n */\n initAll() {\n componentAnalytics.forEach((componentConfig) => {\n this.addListeners(\n componentConfig.scope,\n componentConfig.areaName,\n componentConfig.events,\n componentConfig.rootEventName || \"\",\n componentConfig.rootData || {},\n );\n });\n }\n\n /**\n * Add an event listener.\n * @param {String|HTMLElement} scope - The element to which the listener is scoped.\n * @param {String} areaName - The name of the component to pass on to the tracker.\n * @param {{eventName: String, targetElement: String|undefined, on: String, data: {value: Function|String|undefined, state: Function|String|undefined, group: Function|String|undefined, [String]: String|Integer}, rootData:{[String]: Function|String}}[]} events - The configuration of events to track along with their optional value and state which can be computed.\n * @param {String} rootEventName - The event name to use if specified (prefix).\n * @param {{[String]:String}} rootDefaultData - The default root data to use if specified.\n */\n addListeners(\n scope,\n areaName,\n events,\n rootEventName = \"\",\n rootDefaultData = {},\n ) {\n let scopeArray;\n if (typeof scope === \"string\") {\n scopeArray = Array.from(this.document.querySelectorAll(scope));\n } else if (typeof scope === \"object\") {\n scopeArray = [scope];\n }\n if (!scopeArray) {\n return;\n }\n scopeArray.forEach(($scope, scopeIndex) => {\n events.forEach((eventConfig) => {\n if (!eventConfig.on) {\n return;\n }\n if (eventConfig.targetElement) {\n Array.from(\n $scope.querySelectorAll(eventConfig.targetElement),\n ).forEach(($el, index) =>\n this.attachListener(\n $el,\n $scope,\n rootEventName,\n rootDefaultData,\n eventConfig,\n scope,\n areaName,\n index + 1,\n scopeIndex + 1,\n ),\n );\n } else {\n this.attachListener(\n $scope,\n $scope,\n rootEventName,\n rootDefaultData,\n eventConfig,\n scope,\n areaName,\n 1,\n scopeIndex + 1,\n );\n }\n });\n });\n }\n\n /** @protected */\n generateEventName(areaName, eventConfig) {\n return `${this.prefix}.${areaName}.${eventConfig.eventName || eventConfig.on}`;\n }\n\n /** @protected */\n attachListener(\n $el,\n $scope,\n rootEventName,\n rootDefaultData,\n eventConfig,\n scope,\n areaName,\n index,\n instance,\n ) {\n const { on, data, targetElement, rootData = {} } = eventConfig;\n $el.addEventListener(on, (event) =>\n this.recordEvent(\n rootEventName\n ? `${this.prefix}.${rootEventName}`\n : this.generateEventName(areaName, eventConfig),\n {\n ...data,\n name: this.generateEventName(areaName, eventConfig),\n value: data?.value\n ? this.computedValue(\n data.value,\n $el,\n $scope,\n event,\n index,\n instance,\n )\n : null,\n state: data?.state\n ? this.computedValue(\n data.state,\n $el,\n $scope,\n event,\n index,\n instance,\n )\n : null,\n group: data?.group\n ? this.computedValue(\n data.group,\n $el,\n $scope,\n event,\n index,\n instance,\n )\n : null,\n xPath: getXPathTo($el),\n targetElement: targetElement,\n timeSincePageLoad: new Date() - this.startTime,\n index,\n instance,\n scope,\n areaName,\n },\n Object.fromEntries(\n Object.entries({ ...rootDefaultData, ...rootData }).map(\n ([key, value]) => [\n key,\n this.computedValue(value, $el, $scope, event, index, instance),\n ],\n ),\n ),\n ),\n );\n }\n\n /** @protected */\n computedValue(value, $el, $scope, event, index, instance) {\n return typeof value === \"function\"\n ? value.call(this, $el, $scope, event, index, instance)\n : (value ?? null);\n }\n\n /** @protected */\n recordEvent(eventName, data, rootData = {}) {\n this.events.push({\n event: eventName,\n ...data,\n ...rootData,\n });\n }\n\n /** @protected */\n getTnaMetaTags() {\n return Object.fromEntries(\n Array.from(\n document.head.querySelectorAll(\n `meta[name^=\"${this.prefix}_root:\"][content]`,\n ),\n ).map(($metaEl) => [\n $metaEl\n .getAttribute(\"name\")\n .replace(new RegExp(`^${this.prefix}_root:`), \"\"),\n $metaEl.getAttribute(\"content\"),\n ]),\n Array.from(\n document.head.querySelectorAll(\n `meta[name^=\"${this.prefix}.\"][content]`,\n ),\n ).map(($metaEl) => [\n $metaEl.getAttribute(\"name\"),\n $metaEl.getAttribute(\"content\"),\n ]),\n );\n }\n}\n\n/**\n * Class to handle Google Analytics 4 reporting.\n * @class GA4\n * @extends EventTracker\n * @constructor\n * @public\n */\nclass GA4 extends EventTracker {\n /** @protected */\n addTrackingCode = true;\n\n /** @protected */\n trackingCodeAdded = false;\n\n /** @protected */\n trackingEnabled = false;\n\n /** @protected */\n gTagId;\n\n constructor(options = {}) {\n if (window.TNAFrontendAnalyticsGA4) {\n return window.TNAFrontendAnalyticsGA4;\n }\n const {\n id = \"\",\n prefix = null,\n initAll = true,\n addTrackingCode = true,\n } = options;\n super({ prefix });\n window.TNAFrontendAnalyticsGA4 = this;\n this.addTrackingCode = addTrackingCode;\n window.dataLayer = window.dataLayer || [];\n if (id) {\n this.gTagId = id;\n this.ga4Disable = `ga-disable-${this.gTagId}`;\n if (!this.cookies.isPolicyAccepted(\"usage\")) {\n window[this.ga4Disable] = true;\n this.cookies.set(this.ga4Disable, \"true\");\n }\n }\n this.start(initAll);\n }\n\n destroy() {\n window.TNAFrontendAnalyticsGA4 = null;\n }\n\n /** @protected */\n recordEvent(eventName, data, rootData = {}) {\n const ga4Data = {\n event: eventName,\n ...Object.fromEntries(\n Object.entries(data).map(([key, value]) => [\n `${this.prefix}.event.${key}`,\n value,\n ]),\n ),\n ...rootData,\n };\n this.pushToDataLayer(ga4Data);\n }\n\n /** @protected */\n gtag() {\n this.pushToDataLayer(arguments);\n }\n\n /** @protected */\n pushToDataLayer(data) {\n window.dataLayer.push(data);\n }\n\n /** @protected */\n enableTracking() {\n if (!this.trackingEnabled) {\n window[this.ga4Disable] = false;\n this.cookies.set(this.ga4Disable, \"false\");\n if (!this.trackingCodeAdded && this.addTrackingCode) {\n if (!this.gTagId) {\n throw Error(\"ID was not specified\");\n }\n const tnaMetaTags = this.getTnaMetaTags();\n this.pushToDataLayer({\n ...tnaMetaTags,\n \"gtm.start\": new Date().getTime(),\n event: \"gtm.js\",\n });\n const firstScript = document.getElementsByTagName(\"script\")[0];\n const script = document.createElement(\"script\");\n script.async = true;\n script.src = `https://www.googletagmanager.com/gtm.js?id=${this.gTagId}&l=dataLayer`;\n if (firstScript) {\n firstScript.parentNode.insertBefore(script, firstScript);\n } else {\n document.head.appendChild(script);\n }\n this.trackingCodeAdded = true;\n }\n this.trackingEnabled = true;\n }\n }\n\n /** @protected */\n disableTracking() {\n if (this.trackingEnabled) {\n window[this.ga4Disable] = true;\n this.cookies.set(this.ga4Disable, \"true\");\n Object.keys(this.cookies.all).forEach((key) => {\n if (key.startsWith(\"_ga\")) {\n this.cookies.delete(key);\n }\n });\n this.trackingEnabled = false;\n // window.location.reload();\n }\n }\n}\n\nconst ga4Id = document.documentElement.dataset.ga4;\nif (ga4Id) {\n new GA4({ id: ga4Id });\n}\n\nconst helpers = { getXPathTo, getClosestHeading, valueGetters };\n\nexport { EventTracker, GA4, helpers };\n","export default [\n {\n scope: \".tna-hero\",\n areaName: \"hero\",\n events: [\n {\n eventName: \"toggle_caption\",\n targetElement: \".tna-hero__details-summary\",\n on: \"click\",\n data: {\n // eslint-disable-next-line no-unused-vars\n state: ($el, $scope, event) => {\n const wasExpanded =\n $scope\n .querySelector(\".tna-hero__details\")\n ?.hasAttribute(\"open\") ?? false;\n return wasExpanded ? \"closed\" : \"opened\";\n },\n // eslint-disable-next-line no-unused-vars\n value: ($el, $scope, event) =>\n $scope.querySelector(\"img[alt]\")?.getAttribute(\"alt\"),\n },\n },\n ],\n },\n];\n","export class Accordion {\n 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[\"multiselectable\"] === \"true\";\n\n this.$items.forEach(($item) => this.initItem($item));\n this.initState();\n }\n\n initItem($item) {\n const $heading = $item.querySelector(\".tna-accordion__heading\");\n const $content = $item.querySelector(\".tna-accordion__body\");\n\n if (!$heading || !$content) {\n return;\n }\n\n $item.classList.add(\"tna-accordion__details\");\n $item.classList.remove(\"tna-accordion__item\");\n\n $heading.removeAttribute(\"class\");\n\n $content.classList.add(\"tna-accordion__content\");\n $content.classList.remove(\"tna-accordion__body\");\n $content.setAttribute(\"hidden\", \"until-found\");\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 }\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 // $content.setAttribute(\"tabindex\", \"-1\");\n }\n\n closeAllItemsExcept($excludeItem) {\n Array.from(this.$items)\n .filter(\n ($item) =>\n $item.querySelector(\".tna-accordion__summary\") !== $excludeItem &&\n $item\n .querySelector(\".tna-accordion__summary\")\n .getAttribute(\"aria-expanded\") === \"true\",\n )\n .forEach(($item) => this.closeItem($item));\n }\n}\n","import uuidv4 from \"../../lib/uuid.mjs\";\n\nexport class Breadcrumbs {\n constructor($module) {\n this.$module = $module;\n this.$breadcrumbsList =\n $module && $module.querySelector(\".tna-breadcrumbs__list\");\n this.$breadcrumbs =\n $module &&\n this.$breadcrumbsList &&\n $module.querySelectorAll(\".tna-breadcrumbs__item\");\n\n if (!this.$module || !this.$breadcrumbsList || !this.$breadcrumbs) {\n return;\n }\n\n if (\n this.$breadcrumbs.length > 2 &&\n !this.$module.classList.contains(\"tna-breadcrumbs--no-collapse\")\n ) {\n const uniqueId = `tna-breadcrumbs-${uuidv4()}`;\n\n const $expandable = document.createElement(\"li\");\n $expandable.classList.add(\n \"tna-breadcrumbs__item\",\n \"tna-breadcrumbs__item--expandable\",\n );\n $expandable.style.display = \"none\";\n\n const $expandButton = document.createElement(\"button\");\n $expandButton.classList.add(\"tna-breadcrumbs__link\");\n $expandButton.innerHTML =\n \"<span class='tna-!--visually-hidden'>Expand breadcrumbs</span>&hellip;\";\n $expandButton.setAttribute(\"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.dataset.policies || \"\";\n const extraPolicies = policies\n .split(\",\")\n .filter((x) => x)\n .map((policy) => policy.trim());\n const domain = this.$module.dataset.domain || undefined;\n const path = this.$module.dataset.path || undefined;\n const secure = this.$module.dataset.secure || undefined;\n const policiesKey = this.$module.dataset.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.dataset.preferencesKey || \"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.dataset.disableAutofocus === \"true\" || false;\n\n if (!disableAutoFocus) {\n this.setFocus(this.$module);\n }\n }\n\n setFocus($element, options = {}) {\n const isFocusable = $element.getAttribute(\"tabindex\");\n\n if (!isFocusable) {\n $element.setAttribute(\"tabindex\", \"-1\");\n }\n\n /**\n * Handle element focus\n */\n function onFocus() {\n $element.addEventListener(\"blur\", onBlur, { once: true });\n }\n\n /**\n * Handle element blur\n */\n function onBlur() {\n options.onBlur?.call($element);\n\n if (!isFocusable) {\n $element.removeAttribute(\"tabindex\");\n }\n }\n\n // Add listener to reset element on blur, after focus\n $element.addEventListener(\"focus\", onFocus, { once: true });\n\n // Focus element\n options.onBeforeFocus?.call($element);\n $element.focus();\n }\n}\n","import Cookies from \"../../lib/cookies.mjs\";\n\nexport class Footer {\n constructor($module) {\n this.$module = $module;\n this.$themeSelector =\n $module && $module.querySelector(\".tna-footer__theme-selector\");\n this.$tnaTemplate = document.querySelector(\".tna-template\");\n\n if (!this.$module || !this.$themeSelector || !this.$tnaTemplate) {\n return;\n }\n\n this.$themeSelectorButtons = this.$themeSelector.querySelectorAll(\n \"button.tna-footer__theme-selector-button[value]\",\n );\n\n Array.from(this.$themeSelectorButtons).forEach(($themeSelectorButton) => {\n $themeSelectorButton.addEventListener(\"click\", (e) => {\n const $button = e.target;\n this.setTheme($button.value);\n this.selectThemeSelectorButton($button);\n });\n });\n\n this.cookies = new Cookies();\n if (this.cookies.isPolicyAccepted(\"settings\")) {\n this.showThemeSelector();\n }\n this.cookies.on(\"changePolicy\", (data) => {\n if (Object.hasOwn(data, \"settings\")) {\n if (data.settings === true) {\n this.showThemeSelector();\n } else {\n this.cookies.delete(\"theme\");\n this.hideThemeSelector();\n }\n }\n });\n }\n\n showThemeSelector() {\n this.$themeSelector.removeAttribute(\"hidden\");\n if (this.cookies.exists(\"theme\")) {\n const $currentThemeButton = Array.from(this.$themeSelectorButtons).find(\n ($button) => $button.value === this.cookies.get(\"theme\"),\n );\n if ($currentThemeButton) {\n this.selectThemeSelectorButton($currentThemeButton);\n }\n }\n }\n\n hideThemeSelector() {\n this.$themeSelector.setAttribute(\"hidden\", 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--interactive\");\n\n this.$showIndex = this.$options.querySelector('button[value=\"show-index\"]');\n this.$enterFullscreen = this.$options.querySelector(\n 'button[value=\"enter-fullscreen\"]',\n );\n this.$exitFullscreen = this.$options.querySelector(\n 'button[value=\"exit-fullscreen\"]',\n );\n\n this.$navigationButtonPrev = this.$navigationButtons.querySelector(\n \".tna-gallery__navigation-prev\",\n );\n this.$navigationButtonNext = this.$navigationButtons.querySelector(\n \".tna-gallery__navigation-next\",\n );\n\n this.$module.addEventListener(\"fullscreenchange\", () =>\n this.syncFullScreen(),\n );\n\n this.setup();\n this.allowGridIndex = this.$module.dataset[\"showgrid\"] || false;\n if (this.allowGridIndex) {\n this.showIndex();\n } else {\n this.currentId = this.$items[0].id;\n this.showItem(this.currentId);\n }\n }\n\n setup() {\n this.$items.forEach(($item) => {\n $item.setAttribute(\"hidden\", \"until-found\");\n $item.setAttribute(\"aria-hidden\", \"true\");\n });\n this.$navigation.removeAttribute(\"hidden\");\n this.$navigationItems.forEach(($item) => {\n $item.addEventListener(\"click\", () => {\n this.showItem($item.getAttribute(\"aria-controls\"), true);\n this.$itemsContainer.focus();\n });\n });\n this.$module.addEventListener(\"keydown\", (e) => {\n let preventDefaultKeyAction = false;\n switch (e.key) {\n case \"ArrowLeft\":\n case \"ArrowUp\":\n this.showPreviousItem();\n preventDefaultKeyAction = true;\n break;\n case \"ArrowRight\":\n case \"ArrowDown\":\n this.showNextItem();\n preventDefaultKeyAction = true;\n break;\n case \"Home\":\n this.showFirstItem();\n preventDefaultKeyAction = true;\n break;\n case \"End\":\n this.showLastItem();\n preventDefaultKeyAction = true;\n break;\n }\n if (preventDefaultKeyAction) {\n e.stopPropagation();\n e.preventDefault();\n }\n });\n this.$options.removeAttribute(\"hidden\");\n if (\n document.fullscreenEnabled &&\n this.$enterFullscreen &&\n this.$exitFullscreen\n ) {\n this.$enterFullscreen?.addEventListener(\"click\", () =>\n this.enterFullScreen(),\n );\n this.$exitFullscreen?.addEventListener(\"click\", () =>\n this.exitFullScreen(),\n );\n this.$enterFullscreen?.removeAttribute(\"hidden\");\n }\n this.$showIndex?.addEventListener(\"click\", () => this.showIndex());\n this.$navigationButtons?.removeAttribute(\"hidden\");\n this.$navigationButtonPrev?.addEventListener(\"click\", () => {\n this.showPreviousItem();\n });\n this.$navigationButtonNext?.addEventListener(\"click\", () => {\n this.showNextItem();\n });\n\n this.$liveRegion = document.createElement(\"div\");\n this.$liveRegion.setAttribute(\"aria-live\", \"polite\");\n this.$liveRegion.setAttribute(\"aria-atomic\", \"true\");\n this.$liveRegion.setAttribute(\"class\", \"tna-gallery__item-header\");\n this.$itemsContainer.prepend(this.$liveRegion);\n this.$itemsContainer.classList.add(\"tna-gallery__items--hide-item-titles\");\n }\n\n showIndex() {\n this.showItem(\"\");\n this.$itemsContainer.classList.add(\"tna-gallery__items--hide-items\");\n this.$showIndex?.setAttribute(\"hidden\", true);\n }\n\n showItem(id, focus = false) {\n this.$items.forEach(($item) => {\n if (id && $item.id === id) {\n $item.removeAttribute(\"hidden\");\n $item.removeAttribute(\"aria-hidden\");\n if (focus) {\n $item.setAttribute(\"tabindex\", \"0\");\n $item.focus();\n }\n } else {\n $item.setAttribute(\"hidden\", \"until-found\");\n $item.setAttribute(\"aria-hidden\", \"true\");\n }\n $item.setAttribute(\"tabindex\", \"-1\");\n });\n this.$navigationItems.forEach(($item) => {\n if (id) {\n if ($item.getAttribute(\"aria-controls\") === id) {\n $item.setAttribute(\"aria-current\", \"true\");\n if (this.isFullScreen()) {\n $item.scrollIntoView({ block: \"nearest\" });\n }\n } else {\n $item.setAttribute(\"aria-current\", \"false\");\n }\n } else {\n $item.setAttribute(\"aria-current\", \"false\");\n }\n });\n if (this.allowGridIndex) {\n this.$showIndex?.removeAttribute(\"hidden\");\n }\n this.$itemsContainer.classList.remove(\"tna-gallery__items--hide-items\");\n this.currentId = id;\n this.$liveRegion.textContent = `Image ${this.getCurrentItemIndex() + 1} of ${this.$items.length}`;\n }\n\n getCurrentItemIndex() {\n return Array.from(this.$items).findIndex(\n ($item) => $item.id === this.currentId,\n );\n }\n\n showPreviousItem() {\n let nextIndexToShow = this.getCurrentItemIndex() - 1;\n if (nextIndexToShow < 0) {\n nextIndexToShow = this.$items.length - 1;\n }\n this.showItem(this.$items[nextIndexToShow].id);\n }\n\n showNextItem() {\n let nextIndexToShow = this.getCurrentItemIndex() + 1;\n if (nextIndexToShow >= this.$items.length) {\n nextIndexToShow = 0;\n }\n this.showItem(this.$items[nextIndexToShow].id);\n }\n\n showFirstItem() {\n this.showItem(this.$items[0].id);\n }\n\n showLastItem() {\n this.showItem(this.$items[this.$items.length - 1].id);\n }\n\n isFullScreen() {\n return document.fullscreenElement;\n }\n\n enterFullScreen() {\n this.$module.requestFullscreen();\n this.syncFullScreen();\n this.$module.focus();\n }\n\n exitFullScreen() {\n document.exitFullscreen();\n this.syncFullScreen();\n }\n\n syncFullScreen() {\n if (this.isFullScreen()) {\n this.$enterFullscreen.setAttribute(\"hidden\", true);\n this.$exitFullscreen.removeAttribute(\"hidden\");\n } else {\n this.$exitFullscreen.setAttribute(\"hidden\", true);\n this.$enterFullscreen.removeAttribute(\"hidden\");\n }\n }\n}\n","export class GlobalHeader {\n constructor($module) {\n this.$module = $module;\n this.$toggleButton =\n $module && $module.querySelector(\".tna-global-header__navigation-button\");\n this.$navigation =\n $module &&\n $module.querySelector(\".tna-global-header__navigation-wrapper\");\n this.$topNavigation =\n $module &&\n $module.querySelector(\".tna-global-header__top-navigation-wrapper\");\n this.$links =\n $module &&\n ((this.$navigation &&\n this.$navigation.querySelectorAll(\"[tabindex='0']\")) ||\n (this.$topNavigation &&\n this.$topNavigation.querySelectorAll(\"[tabindex='0']\")));\n this.menuOpened = false;\n this.mql = window.matchMedia(\"(max-width: 48em)\");\n\n if (\n !this.$module ||\n !this.$toggleButton ||\n (!this.$navigation && !this.$topNavigation)\n ) {\n return;\n }\n\n this.$toggleButton.removeAttribute(\"hidden\");\n this.syncState();\n this.$toggleButton.addEventListener(\"click\", () =>\n this.handleToggleNavigation(),\n );\n if (\"addEventListener\" in this.mql) {\n this.mql.addEventListener(\"change\", () => this.syncState());\n } else {\n this.mql.addListener(() => this.syncState());\n }\n\n this.$module.addEventListener(\"keyup\", (e) => {\n if (e.code === \"Escape\" && this.mql.matches) {\n if (this.menuOpened) {\n this.menuOpened = false;\n this.syncState();\n this.$toggleButton.focus();\n }\n }\n });\n }\n\n handleToggleNavigation() {\n this.menuOpened = !this.menuOpened;\n this.syncState();\n }\n\n syncState() {\n if (this.mql.matches) {\n if (this.menuOpened) {\n this.show();\n } else {\n this.hide();\n }\n } else {\n this.show();\n }\n }\n\n hide() {\n if (this.$navigation) {\n this.$navigation.hidden = true;\n this.$navigation.setAttribute(\"aria-hidden\", \"true\");\n }\n if (this.$topNavigation) {\n this.$topNavigation.hidden = true;\n this.$topNavigation.setAttribute(\"aria-hidden\", \"true\");\n }\n this.$toggleButton.setAttribute(\"aria-expanded\", \"false\");\n this.$toggleButton.setAttribute(\"title\", \"Open menu\");\n this.$toggleButton.classList.remove(\n \"tna-global-header__navigation-button--opened\",\n );\n for (let i = 0; i < this.$links.length; i++) {\n this.$links[i].setAttribute(\"tabindex\", \"-1\");\n }\n }\n\n show() {\n if (this.$navigation) {\n this.$navigation.hidden = false;\n this.$navigation.setAttribute(\"aria-hidden\", \"false\");\n }\n if (this.$topNavigation) {\n this.$topNavigation.hidden = false;\n this.$topNavigation.setAttribute(\"aria-hidden\", \"false\");\n }\n this.$toggleButton.setAttribute(\"aria-expanded\", \"true\");\n this.$toggleButton.setAttribute(\"title\", \"Close menu\");\n this.$toggleButton.classList.add(\n \"tna-global-header__navigation-button--opened\",\n );\n for (let i = 0; i < this.$links.length; i++) {\n this.$links[i].setAttribute(\"tabindex\", \"0\");\n }\n }\n}\n","export class Header {\n constructor($module) {\n this.$module = $module;\n this.$toggleButton =\n $module && $module.querySelector(\".tna-header__navigation-button\");\n this.$navigation =\n $module && $module.querySelector(\".tna-header__navigation\");\n this.$links =\n $module &&\n this.$navigation &&\n this.$navigation.querySelectorAll(\"[tabindex='0']\");\n this.menuOpened = false;\n this.mql = window.matchMedia(\"(max-width: 48em)\");\n\n if (!this.$module || !this.$toggleButton || !this.$navigation) {\n return;\n }\n\n this.$toggleButton.removeAttribute(\"hidden\");\n this.syncState();\n this.$toggleButton.addEventListener(\"click\", () =>\n this.handleToggleNavigation(),\n );\n if (\"addEventListener\" in this.mql) {\n this.mql.addEventListener(\"change\", () => this.syncState());\n } else {\n this.mql.addListener(() => this.syncState());\n }\n\n this.$module.addEventListener(\"keyup\", (e) => {\n if (e.code === \"Escape\") {\n if (this.menuOpened && this.mql.matches) {\n this.menuOpened = false;\n this.syncState();\n this.$toggleButton.focus();\n }\n }\n });\n }\n\n handleToggleNavigation() {\n this.menuOpened = !this.menuOpened;\n this.syncState();\n }\n\n syncState() {\n if (this.mql.matches) {\n if (this.menuOpened) {\n this.show();\n } else {\n this.hide();\n }\n } else {\n this.show();\n }\n }\n\n show() {\n this.$navigation.classList.add(\"tna-header__navigation--open\");\n this.$navigation.removeAttribute(\"hidden\");\n this.$navigation.setAttribute(\"aria-hidden\", \"false\");\n this.$toggleButton.setAttribute(\"aria-expanded\", \"true\");\n this.$toggleButton.setAttribute(\"title\", \"Close menu\");\n this.$toggleButton.classList.add(\"tna-header__navigation-button--opened\");\n\n for (let i = 0; i < this.$links.length; i++) {\n this.$links[i].setAttribute(\"tabindex\", \"0\");\n }\n }\n\n hide() {\n this.$navigation.classList.remove(\"tna-header__navigation--open\");\n this.$navigation.hidden = true;\n this.$navigation.setAttribute(\"aria-hidden\", \"true\");\n this.$toggleButton.setAttribute(\"aria-expanded\", \"false\");\n this.$toggleButton.setAttribute(\"title\", \"Open menu\");\n this.$toggleButton.classList.remove(\n \"tna-header__navigation-button--opened\",\n );\n\n for (let i = 0; i < this.$links.length; i++) {\n this.$links[i].setAttribute(\"tabindex\", \"-1\");\n }\n }\n}\n","import uuidv4 from \"../../lib/uuid.mjs\";\n\nexport class Picture {\n constructor($module) {\n this.$module = $module;\n this.$imageWrapper =\n $module && $module.querySelector(\".tna-picture__image-wrapper\");\n\n this.$transcriptToggle =\n this.$imageWrapper &&\n this.$imageWrapper.querySelector(\".tna-picture__toggle-transcript\");\n\n this.$transcript =\n $module && $module.querySelector(\".tna-picture__transcript\");\n this.transcriptOpened = false;\n\n if (\n !this.$module ||\n !this.$imageWrapper ||\n !this.$transcriptToggle ||\n !this.$transcript\n ) {\n return;\n }\n\n this.openLabel =\n this.$module.dataset.informationLabelOpen || \"Open transcript\";\n this.closeLabel =\n this.$module.dataset.informationLabelClose || \"Close transcript\";\n\n this.init();\n }\n\n init() {\n const uniqueId = `tna-picture-${uuidv4()}`;\n\n this.$transcriptToggle.removeAttribute(\"hidden\");\n this.$transcriptToggle.setAttribute(\"aria-controls\", uniqueId);\n this.$transcriptToggle.innerText = this.openLabel;\n this.$transcriptToggle.addEventListener(\"click\", () =>\n this.toggleTranscript(),\n );\n\n this.$transcript.setAttribute(\"id\", uniqueId);\n this.$transcript.setAttribute(\"hidden\", \"until-found\");\n\n this.$transcript.addEventListener(\"keydown\", (e) => {\n switch (e.key) {\n case \"Escape\":\n this.toggleTranscript();\n this.$transcriptToggle.focus();\n break;\n }\n });\n }\n\n toggleTranscript() {\n this.transcriptOpened = !this.transcriptOpened;\n if (this.transcriptOpened) {\n this.$transcriptToggle.setAttribute(\"aria-expanded\", true);\n this.$transcriptToggle.innerText = this.closeLabel;\n this.$transcript.removeAttribute(\"hidden\");\n } else {\n this.$transcriptToggle.setAttribute(\"aria-expanded\", false);\n this.$transcriptToggle.innerText = this.openLabel;\n this.$transcript.setAttribute(\"hidden\", \"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 this.$tabList.querySelectorAll(\".tna-tabs__button\");\n this.$tabItems = $module && $module.querySelectorAll(\".tna-tabs__item\");\n\n if (\n !this.$module ||\n !this.$tabList ||\n !this.$tabListItemLinks ||\n !this.$tabItems ||\n this.$tabListItemLinks.length !== this.$tabItems.length\n ) {\n return;\n }\n\n this.currentTabIndex = 0;\n this.init();\n }\n\n init() {\n this.$module.classList.add(\"tna-tabs--interactive\");\n this.$tabList.removeAttribute(\"hidden\");\n this.$tabListItemLinks.forEach(($tabListItemLink) => {\n const tabPanelID = $tabListItemLink.getAttribute(\"aria-controls\");\n $tabListItemLink.setAttribute(\"aria-selected\", false);\n const $tabPanel = document.getElementById(tabPanelID);\n $tabPanel.setAttribute(\"aria-labelledby\", $tabListItemLink.id);\n $tabPanel.setAttribute(\"role\", \"tabpanel\");\n $tabListItemLink.addEventListener(\n \"click\",\n (e) => this.handleItemLinkClick(e),\n true,\n );\n });\n this.switchTabByIndex(this.currentTabIndex);\n this.$module.addEventListener(\"keydown\", (e) =>\n this.handleItemLinkKeyDown(e),\n );\n }\n\n handleItemLinkClick(itemLinkClickEvent) {\n itemLinkClickEvent.preventDefault();\n const targetItem =\n itemLinkClickEvent.currentTarget.getAttribute(\"aria-controls\");\n this.switchTabByID(targetItem);\n }\n\n handleItemLinkKeyDown(itemLinkKeyDownEvent) {\n let preventDefaultKeyAction = false;\n switch (itemLinkKeyDownEvent.key) {\n case \"ArrowLeft\":\n case \"ArrowUp\":\n this.previousTab();\n preventDefaultKeyAction = true;\n break;\n case \"ArrowRight\":\n case \"ArrowDown\":\n this.nextTab();\n preventDefaultKeyAction = true;\n break;\n case \"Home\":\n this.switchTabByIndex(0, true);\n preventDefaultKeyAction = true;\n break;\n case \"End\":\n this.switchTabByIndex(this.$tabListItemLinks.length - 1, true);\n preventDefaultKeyAction = true;\n break;\n default:\n break;\n }\n if (preventDefaultKeyAction) {\n itemLinkKeyDownEvent.stopPropagation();\n itemLinkKeyDownEvent.preventDefault();\n }\n }\n\n nextTab() {\n if (this.currentTabIndex < this.$tabListItemLinks.length - 1) {\n this.switchTabByIndex(this.currentTabIndex + 1, true);\n } else {\n this.switchTabByIndex(0, true);\n }\n }\n\n previousTab() {\n if (this.currentTabIndex >= 1) {\n this.switchTabByIndex(this.currentTabIndex - 1, true);\n } else {\n this.switchTabByIndex(this.$tabListItemLinks.length - 1, true);\n }\n }\n\n switchTabByIndex(newIndex, switchFocus = false) {\n this.currentTabIndex = newIndex;\n this.$tabListItemLinks.forEach(($tabListItemLink, index) => {\n if (index === this.currentTabIndex) {\n $tabListItemLink.setAttribute(\"aria-selected\", true);\n $tabListItemLink.setAttribute(\"tabindex\", \"0\");\n if (switchFocus) {\n $tabListItemLink.focus();\n }\n } else {\n $tabListItemLink.setAttribute(\"aria-selected\", false);\n $tabListItemLink.setAttribute(\"tabindex\", \"-1\");\n }\n });\n this.$tabItems.forEach(($tabItem, index) => {\n if (index === this.currentTabIndex) {\n $tabItem.removeAttribute(\"hidden\");\n $tabItem.setAttribute(\"tabindex\", \"0\");\n } else {\n $tabItem.setAttribute(\"hidden\", \"until-found\");\n $tabItem.setAttribute(\"tabindex\", \"-1\");\n }\n });\n }\n\n switchTabByID(targetId) {\n const index = Array.from(this.$tabItems).findIndex(\n ($tabItem) => $tabItem.getAttribute(\"id\") === targetId,\n );\n this.switchTabByIndex(index);\n }\n}\n","window.TNAFrontendCookies = window.TNAFrontendCookies || null;\nwindow.TNAFrontendCookieEvents = window.TNAFrontendCookieEvents || null;\n\nexport class CookieEventHandler {\n events = {};\n oneTimeEvents = {};\n\n constructor() {\n if (window.TNAFrontendCookieEvents) {\n return window.TNAFrontendCookieEvents;\n }\n window.TNAFrontendCookieEvents = this;\n }\n\n /**\n * Add an event listener.\n * @param {String} event - The event to add a listener for.\n * @param {Function} callback - The callback function to call when the event is triggered.\n */\n on(event, callback) {\n if (!Object.hasOwn(this.events, event)) {\n this.events[event] = [];\n }\n this.events[event] = [...this.events[event], callback];\n }\n\n once(event, callback) {\n if (!Object.hasOwn(this.oneTimeEvents, event)) {\n this.oneTimeEvents[event] = [];\n }\n this.oneTimeEvents[event] = [...this.oneTimeEvents[event], callback];\n }\n\n /** @protected */\n trigger(event, data = {}) {\n if (Object.hasOwn(this.events, event)) {\n this.events[event].forEach((eventToTrigger) =>\n eventToTrigger.call(this, data),\n );\n }\n if (Object.hasOwn(this.oneTimeEvents, event)) {\n for (let i = this.oneTimeEvents[event].length - 1; i >= 0; i--) {\n const eventToTrigger = this.oneTimeEvents[event][i];\n eventToTrigger.call(this, data);\n this.oneTimeEvents[event].splice(i, 1);\n }\n }\n }\n}\n\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 /** @protected */\n defaultAge = null;\n\n /**\n * Create a cookie handler.\n * @param {String} [options.extraPolicies=[]] - The extra cookie policies to manage in addition to essential, settings, usage and marketing.\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 * @param {String} [options.defaultAge=31536000] - The default age of non-session cookies.\n */\n constructor(options = {}) {\n const {\n extraPolicies = [],\n domain = null,\n path = null,\n secure = true,\n policiesKey = \"cookies_policy\",\n newInstance = false,\n defaultAge = 31536000, // 365 days\n } = options;\n if (newInstance) {\n this.destroyInstance();\n } else if (window.TNAFrontendCookies) {\n return window.TNAFrontendCookies;\n }\n this.extraPolicies = extraPolicies;\n if (domain === null) {\n this.domain = document.documentElement.dataset.tnaCookiesDomain || \"\";\n } else {\n this.domain = domain;\n }\n if (path === null) {\n this.path = document.documentElement.dataset.tnaCookiesPath || \"/\";\n } else {\n this.path = path;\n }\n this.secure = secure;\n this.policiesKey = policiesKey;\n this.defaultAge = defaultAge;\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 marketing: 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=this.defaultAge] - The maximum age of the cookie in seconds.\n * @param {String} [options.path=/] - The path to register the cookie for.\n * @param {String} [options.sameSite=Lax] - The sameSite attribute.\n * @param {String} [options.domain=this.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 * @param {String} [options.session=false] - Set a session cookie.\n */\n set(key, value, options = {}) {\n const {\n maxAge = this.defaultAge,\n sameSite = \"Lax\",\n domain = this.domain,\n path = this.path,\n secure = this.secure,\n session = false,\n } = options;\n if (!key) {\n return;\n }\n const cookie = `${encodeURIComponent(key)}=${encodeURIComponent(value)};${\n domain ? ` domain=${domain}; ` : \"\"\n } samesite=${sameSite}; path=${path}${!session ? `; max-age=${maxAge}` : \"\"}${\n secure ? \"; secure\" : \"\"\n }`;\n document.cookie = cookie;\n this.events.trigger(\"setCookie\", {\n key,\n value,\n maxAge,\n path,\n sameSite,\n domain,\n secure,\n session,\n cookie,\n });\n }\n\n /**\n * Delete a cookie.\n * @param {String} key - The cookie name.\n * @param {String} [path=/] - The path to the cookie is registered on.\n */\n delete(key, path = \"/\", domain = null) {\n const options = { maxAge: -1, path, domain: domain || undefined };\n this.set(key, \"\", options);\n this.events.trigger(\"deleteCookie\", { key, ...options });\n }\n\n /**\n * Delete all cookies.\n */\n deleteAll(path = \"/\", domain = null) {\n Object.keys(this.all).forEach((cookie) => {\n this.delete(cookie, path, domain);\n });\n this.events.trigger(\"deleteAllCookies\", { path, domain });\n }\n\n /**\n * Accept a policy.\n * @param {String} policy - The name of the policy.\n */\n acceptPolicy(policy) {\n this.setPolicy(policy, true);\n this.events.trigger(\"acceptPolicy\", policy);\n this.events.trigger(\"changePolicy\", { [policy]: true });\n }\n\n /**\n * Reject a policy.\n * @param {String} policy - The name of the policy.\n */\n rejectPolicy(policy) {\n this.setPolicy(policy, false);\n this.events.trigger(\"rejectPolicy\", policy);\n this.events.trigger(\"changePolicy\", { [policy]: false });\n }\n\n /**\n * Set a policy.\n * @param {String} policy - The name of the policy.\n * @param {Boolean} accepted - Whether the policy is accepted or not.\n */\n setPolicy(policy, accepted) {\n if (policy === \"essential\") {\n return;\n }\n this.savePolicies({\n ...this.policies,\n [policy]: accepted,\n essential: true,\n });\n this.events.trigger(\"changePolicy\", { [policy]: accepted });\n }\n\n /**\n * Accept all the cookie policies.\n */\n acceptAllPolicies() {\n const allPolicies = Object.fromEntries(\n Object.keys(this.policies).map((k) => [k.toLowerCase(), true]),\n );\n this.savePolicies(allPolicies);\n this.events.trigger(\"acceptAllPolicies\");\n this.events.trigger(\"changePolicy\", allPolicies);\n }\n\n /**\n * Reject all the cookie policies.\n */\n rejectAllPolicies() {\n const allPolicies = {\n ...Object.fromEntries(\n Object.keys(this.policies).map((k) => [k.toLowerCase(), false]),\n ),\n essential: true,\n };\n this.savePolicies(allPolicies);\n this.events.trigger(\"rejectAllPolicies\");\n this.events.trigger(\"changePolicy\", allPolicies);\n }\n\n /**\n * Commit policy preferences to the browser.\n * @param {object} policies - The policies to commit.\n */\n savePolicies(policies) {\n this.set(this.policiesKey, JSON.stringify(policies), {\n maxAge: 60 * 60 * 24 * 365,\n });\n }\n\n /**\n * Get the acceptance status of a policy.\n * @param {String} policy - The name of the policy.\n * @returns {Boolean}\n */\n isPolicyAccepted(policy) {\n return Object.hasOwn(this.policies, policy)\n ? this.policies[policy] === true\n : null;\n }\n\n /**\n * Add an event listener.\n * @param {String} event - The event to add a listener for.\n * @param {Function} callback - The callback function to call when the event is triggered.\n */\n on(event, callback) {\n this.events.on(event, callback);\n }\n\n /**\n * Add a one-time event listener.\n * @param {String} event - The event to add a listener for.\n * @param {Function} callback - The callback function to call when the event is triggered.\n */\n once(event, callback) {\n this.events.once(event, callback);\n }\n}\n","const uuidv4 = () =>\n ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, (c) =>\n (\n c ^\n (crypto.getRandomValues(new Uint8Array(1))[0] & (15 >> (c / 4)))\n ).toString(16),\n );\n\nexport default uuidv4;\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};"],"names":["root","factory","exports","module","define","amd","self","initAll","options","$scope","scope","HTMLElement","document","$body","documentElement","classList","add","onFirstTouch","window","removeEventListener","addEventListener","e","key","remove","querySelectorAll","forEach","$accordion","Accordion","$breadcrumbs","querySelector","Breadcrumbs","$cookieBanner","CookieBanner","$errorSummary","ErrorSummary","init","$footer","Footer","$gallery","Gallery","$globalHeader","GlobalHeader","$header","Header","$picture","Picture","$skipLink","SkipLink","$tabModule","Tabs","checkTableForScroll","$tableWrapper","scrollable","scrollWidth","clientWidth","$tableCaption","setAttribute","removeAttribute","$tableWrappers","matchMedia","evt","matches","dataset","wasClosed","getXPathTo","$element","id","body","tagName","ix","parentNode","siblings","childNodes","i","length","sibling","nodeType","includesAny","arr","values","some","v","includes","getClosestHeading","heading","$search","previousElementSibling","Array","from","innerText","parentElement","valueGetters","text","$el","replace","html","innerHTML","value","index","event","instance","checked","expanded","getAttribute","toString","closestHeading","areaName","rootEventName","rootData","data_component_name","events","eventName","targetElement","on","data","state","data_link_type","data_link","group","_$scope$closest","closest","_$scope$querySelector","_$scope$querySelector2","hasAttribute","data_section","name","media_type","media_duration","media_provider","media_title","concat","media_progress","findIndex","$itemButton","media_action","data_position","image","imageSrc","imageAlt","componentAnalytics","_toConsumableArray","BreadcrumbAnalytics","CheckboxesAnalytics","DetailsAnalytics","FooterAnalytics","GalleryAnalytics","GlobalHeaderAnalytics","HeaderAnalytics","_$scope$querySelector3","PictureAnalytics","RadiosAnalytics","SearchFieldAnalytics","SidebarAnalytics","TextInputAnalytics","TextareaAnalytics","EventTracker","_createClass","arguments","undefined","_classCallCheck","_defineProperty","Cookies","Date","_options$prefix","prefix","_options$documentScop","documentScope","this","_this","navigator","doNotTrack","cookies","isPolicyAccepted","enableTracking","policies","Object","hasOwn","disableTracking","_this2","componentConfig","addListeners","scopeArray","_this3","rootDefaultData","_typeof","scopeIndex","eventConfig","attachListener","_this4","_eventConfig$rootData","recordEvent","generateEventName","_objectSpread","computedValue","xPath","timeSincePageLoad","startTime","fromEntries","entries","map","_ref","_ref2","_slicedToArray","call","push","_this5","head","$metaEl","RegExp","GA4","_EventTracker2","_this6","TNAFrontendAnalyticsGA4","_possibleConstructorReturn","_options$id","_options$prefix2","_options$initAll","_options$addTrackingC","addTrackingCode","dataLayer","gTagId","ga4Disable","set","start","_inherits","_this7","ga4Data","_ref3","_ref4","pushToDataLayer","trackingEnabled","trackingCodeAdded","Error","tnaMetaTags","getTnaMetaTags","getTime","firstScript","getElementsByTagName","script","createElement","async","src","insertBefore","appendChild","_this8","keys","all","startsWith","ga4Id","ga4","helpers","$module","$items","allowMultipleItemsOpen","$item","initItem","initState","$heading","$content","$headingButton","nextSibling","closeItem","openItem","closeAllItemsExcept","$excludeItem","filter","$breadcrumbsList","contains","uniqueId","uuidv4","$expandable","style","display","$expandButton","focus","$acceptButton","$rejectButton","$prompt","$acceptedMessage","$rejectedMessage","$closeButtons","extraPolicies","split","x","policy","trim","domain","path","secure","policiesKey","newInstance","cookiePreferencesSet","preferencesKey","hasValue","accept","reject","complete","acceptAllPolicies","rejectAllPolicies","$closeButton","close","disableAutofocus","setFocus","_options$onBeforeFocu","isFocusable","onBlur","_options$onBlur","once","onBeforeFocus","$themeSelector","$tnaTemplate","$themeSelectorButtons","$themeSelectorButton","$button","target","setTheme","selectThemeSelectorButton","showThemeSelector","settings","hideThemeSelector","exists","$currentThemeButton","find","get","theme","$selectedButton","$itemsContainer","$navigation","$navigationItems","$options","$navigationButtons","$showIndex","$enterFullscreen","$exitFullscreen","$navigationButtonPrev","$navigationButtonNext","syncFullScreen","setup","allowGridIndex","showIndex","currentId","showItem","_this$$showIndex","_this$$navigationButt","_this$$navigationButt2","_this$$navigationButt3","_this$$enterFullscree","_this$$exitFullscreen","_this$$enterFullscree2","preventDefaultKeyAction","showPreviousItem","showNextItem","showFirstItem","showLastItem","stopPropagation","preventDefault","fullscreenEnabled","enterFullScreen","exitFullScreen","$liveRegion","prepend","_this$$showIndex2","_this$$showIndex3","isFullScreen","scrollIntoView","block","textContent","getCurrentItemIndex","nextIndexToShow","fullscreenElement","requestFullscreen","exitFullscreen","$toggleButton","$topNavigation","$links","menuOpened","mql","syncState","handleToggleNavigation","addListener","code","show","hide","hidden","$imageWrapper","$transcriptToggle","$transcript","transcriptOpened","openLabel","informationLabelOpen","closeLabel","informationLabelClose","toggleTranscript","linkedElementId","pop","$linkedElement","getElementById","focusLinkedElement","linkedElementListener","removeFocusProperties","$tabList","$tabListItemLinks","$tabItems","currentTabIndex","$tabListItemLink","tabPanelID","$tabPanel","handleItemLinkClick","switchTabByIndex","handleItemLinkKeyDown","itemLinkClickEvent","targetItem","currentTarget","switchTabByID","itemLinkKeyDownEvent","previousTab","nextTab","newIndex","switchFocus","$tabItem","targetId","TNAFrontendCookies","TNAFrontendCookieEvents","CookieEventHandler","callback","oneTimeEvents","eventToTrigger","splice","_options$extraPolicie","_options$domain","_options$path","_options$secure","_options$policiesKey","_options$newInstance","_options$defaultAge","defaultAge","destroyInstance","tnaCookiesDomain","tnaCookiesPath","savePolicies","k","toLowerCase","usage","marketing","essential","deserialised","cookie","parts","JSON","parse","decodeURIComponent","_options$maxAge","maxAge","_options$sameSite","sameSite","_options$domain2","_options$path2","_options$secure2","_options$session","session","encodeURIComponent","trigger","setPolicy","accepted","allPolicies","stringify","c","crypto","getRandomValues","Uint8Array","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","d","definition","o","defineProperty","enumerable","obj","prop","prototype","hasOwnProperty","r","Symbol","toStringTag"],"sourceRoot":""}
1
+ {"version":3,"file":"all+analytics.js","mappings":"CAAA,SAA2CA,EAAMC,GAC1B,iBAAZC,SAA0C,iBAAXC,OACxCA,OAAOD,QAAUD,IACQ,mBAAXG,QAAyBA,OAAOC,IAC9CD,OAAO,GAAIH,GACe,iBAAZC,QACdA,QAAqB,YAAID,IAEzBD,EAAkB,YAAIC,GACvB,CATD,CASGK,MAAM,I,ofCKHC,EAAU,SAACC,GAEf,IAAMC,GADND,OAA6B,IAAZA,EAA0BA,EAAU,CAAC,GAE5CE,iBAAiBC,YAAcH,EAAQE,MAAQE,SAEnDC,EAAQD,SAASE,gBACvBD,EAAME,UAAUC,IAAI,4BAEpB,IAAMC,EAAe,WACnBC,OAAOC,oBAAoB,aAAcF,GACzCJ,EAAME,UAAUC,IAAI,wBACtB,EAcAE,OAAOE,iBAAiB,aAAcH,GACtCC,OAAOE,iBAAiB,WAbN,SAACC,GACH,QAAVA,EAAEC,MACJT,EAAME,UAAUC,IAAI,wBACpBH,EAAME,UAAUQ,OAAO,yBAE3B,IASAL,OAAOE,iBAAiB,aAPJ,WAClBP,EAAME,UAAUC,IAAI,yBACpBH,EAAME,UAAUQ,OAAO,uBACzB,IAMoBd,EAAOe,iBAAiB,iCAChCC,SAAQ,SAACC,GACnB,IAAIC,EAAAA,UAAUD,EAChB,IAEA,IAAME,EAAenB,EAAOoB,cAAc,mCACtCD,GACF,IAAIE,EAAAA,YAAYF,GAGlB,IAAMG,EAAgBtB,EAAOoB,cAC3B,qCAEEE,GACF,IAAIC,EAAAA,aAAaD,GAGnB,IAAME,EAAgBxB,EAAOoB,cAC3B,qCAEEI,GACF,IAAIC,EAAAA,aAAaD,GAAeE,OAGlC,IAAMC,EAAU3B,EAAOoB,cAAc,8BACjCO,GACF,IAAIC,EAAAA,OAAOD,GAGM3B,EAAOe,iBAAiB,+BAChCC,SAAQ,SAACa,GAClB,IAAIC,EAAAA,QAAQD,EACd,IAEA,IAAME,EAAgB/B,EAAOoB,cAC3B,qCAEEW,GACF,IAAIC,EAAAA,aAAaD,GAGnB,IAAME,EAAUjC,EAAOoB,cAAc,8BACjCa,GACF,IAAIC,EAAAA,OAAOD,GAGKjC,EAAOe,iBAAiB,+BAChCC,SAAQ,SAACmB,GACjB,IAAIC,EAAAA,QAAQD,EACd,IAEmBnC,EAAOe,iBAAiB,iCAChCC,SAAQ,SAACqB,GAClB,IAAIC,EAAAA,SAASD,EACf,IAEcrC,EAAOe,iBAAiB,4BAChCC,SAAQ,SAACuB,GACb,IAAIC,EAAAA,KAAKD,EACX,IAEoBvC,EAAOe,iBAAiB,kCAChCC,SAAQ,SAACyB,GACnB,IAAIC,EAAAA,UAAUD,EAChB,IAEA,IAAME,EAAsB,SAACC,GAC3B,IAAMC,EAAaD,EAAcE,YAAcF,EAAcG,YACvDC,EAAgBJ,EAAcxB,cAAc,uBAC9CyB,GACFD,EAAcK,aAAa,WAAY,KACvCD,SAAAA,EAAe1C,UAAUC,IAAI,gCAE7BqC,EAAcM,gBAAgB,YAC9BF,SAAAA,EAAe1C,UAAUQ,OAAO,8BAEpC,EAEMqC,EAAiBhD,SAASY,iBAC9B,+CAEFoC,EAAenC,SAAQ,SAAC4B,GAAa,OAAKD,EAAoBC,EAAc,IAC5EnC,OAAOE,iBAAiB,UAAU,WAChCwC,EAAenC,SAAQ,SAAC4B,GAAa,OACnCD,EAAoBC,EAAc,GAEtC,IAEAnC,OAAO2C,WAAW,SAASzC,iBAAiB,UAAU,SAAC0C,GACjDA,EAAIC,SACNnD,SACGY,iBAAiB,qCACjBC,SAAQ,SAACJ,GACRA,EAAEqC,aAAa,OAAQ,IACvBrC,EAAE2C,QAAQC,UAAY,EACxB,IACFrD,SACGY,iBACC,iGAEDC,SAAQ,SAACJ,GACRA,EAAEsC,gBAAgB,UAClBtC,EAAE2C,QAAQC,UAAY,EACxB,MAEFrD,SACGY,iBAAiB,0CACjBC,SAAQ,SAACJ,GACRA,EAAEsC,gBAAgB,eACXtC,EAAE2C,QAAQC,SACnB,IACFrD,SACGY,iBACC,uFAEDC,SAAQ,SAACJ,GACRA,EAAEqC,aAAa,SAAU,gBACzBrC,EAAE2C,QAAQC,UAAY,EACxB,IAEN,GACF,C,iFCpKMC,EAAa,SAACC,GAClB,GAAoB,KAAhBA,EAASC,GACX,MAAO,OAASD,EAASC,GAAK,KAEhC,GAAID,IAAavD,SAASyD,KACxB,OAAOF,EAASG,QAElB,IAAIC,EAAK,EACT,IAAIJ,EAASK,WAgBX,OAAOL,EAASG,QAdhB,IADA,IAAMG,EAAWN,EAASK,WAAWE,WAC5BC,EAAI,EAAGA,EAAIF,EAASG,OAAQD,IAAK,CACxC,IAAME,EAAUJ,EAASE,GACzB,GAAIE,IAAYV,EACd,OACED,EAAWC,EAASK,YACpB,IACAL,EAASG,QACT,KACCC,EAAK,GACN,IAEqB,IAArBM,EAAQC,UAAkBD,EAAQP,UAAYH,EAASG,SAASC,GACtE,CAIJ,EAEMQ,EAAc,SAACC,EAAKC,GAAM,OAAKA,EAAOC,MAAK,SAACC,GAAC,OAAKH,EAAII,SAASD,EAAE,GAAC,EAElEE,EAAoB,SAAClB,GACzB,IAAImB,EAAU,GACVC,EAAUpB,EACd,EAAG,CACD,KAAOoB,EAAQC,wBAEb,GADAD,EAAUA,EAAQC,uBAEhB,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,MAAMJ,SAASG,EAAQjB,UACrDiB,EAAQxE,UAAU6D,QACjBG,EAAYU,MAAMC,KAAKH,EAAQxE,WAAY,CACzC,iBACA,gBACA,gBACA,kBAEJ,CACAuE,EAAUC,EAAQI,UAClB,KACF,CAEFJ,EAAUA,EAAQK,aACpB,OAASL,EAAQK,gBAAkBN,GACnC,OAAOA,CACT,EAEMO,EAAe,CACnBC,KAAM,SAACC,GAAG,OAAKA,EAAIJ,UAAUK,QAAQ,MAAO,IAAI,EAChDC,KAAM,SAACF,GAAG,OAAKA,EAAIG,SAAS,EAC5BC,MAAO,SAACJ,GAAG,OAAKA,EAAII,KAAK,EACzBC,MAAO,SAACL,EAAKtF,EAAQ4F,EAAOD,GAAK,OAAKA,CAAK,EAC3CE,SAAU,SAACP,EAAKtF,EAAQ4F,EAAOD,EAAOE,GAAQ,OAAKA,CAAQ,EAC3DC,QAAS,SAACR,GAAG,OAAMA,EAAIQ,QAAU,UAAY,WAAW,EACxDC,SAAU,SAACT,GACT,IAAMS,EAAWT,EAAIU,aAAa,iBAClC,OAAiB,OAAbD,EACK,KAEsB,SAAxBA,EAASE,WAAwB,SAAW,QACrD,EACAC,eAAgB,SAACZ,GAAG,OAAKV,EAAkBU,EAAI,GCnEjD,MCAA,GACE,CACErF,MAAO,mBACPkG,SAAU,cACVC,cAAe,oBACfC,SAAU,CACRC,oBAAqB,eAEvBC,OAAQ,CACN,CACEC,UAAW,QACXC,cAAe,0BACfC,GAAI,QACJC,KAAM,CAAEC,MAAO,SAAUlB,MAAON,EAAaI,MAC7Ca,SAAU,CACRQ,eAAgB,kBAChBC,UAAW1B,EAAaC,OAG5B,CACEmB,UAAW,QACXC,cACE,kEACFC,GAAI,QACJC,KAAM,CAAEC,MAAO,SAAUlB,MAAON,EAAaI,MAC7Ca,SAAU,CACRQ,eAAgB,oBAChBC,UAAW1B,EAAaC,UC3BlC,GACE,CACEpF,MAAO,kBACPkG,SAAU,aACVI,OAAQ,CACN,CACEC,UAAW,SACXC,cAAe,8BACfC,GAAI,SACJC,KAAM,CACJC,MAAOxB,EAAaU,QAEpBJ,MAAO,SAACJ,EAAKtF,EAAQ4F,GAAK,OAAKN,EAAIvB,WAAWmB,UAAU6B,MAAM,EAE9DC,MAAO,SAAC1B,EAAKtF,EAAQ4F,GAAK,IAAAqB,EAAA,OAEM,QAFNA,EACxBjH,EACGkH,QAAQ,2BAAmB,IAAAD,GACS,QADTA,EAD9BA,EAEI7F,cAAc,6BAAqB,IAAA6F,GAC1B,QAD0BA,EAFvCA,EAGI/B,iBAAS,IAAA+B,OAAA,EAHbA,EAGeF,MAAM,OClBjC,GACE,CACE9G,MAAO,eACPkG,SAAU,UACVI,OAAQ,CACN,CACEC,UAAW,QACXC,cAAe,wBACfC,GAAI,QACJC,KAAM,CAEJC,MAAO,SAACtB,EAAKtF,EAAQ4F,GAAU,IAAAuB,EAAAC,EAK7B,OAD0B,QAHTD,EAE0B,QAF1BC,EACfpH,EACGoB,cAAc,gCAAwB,IAAAgG,OAAA,EADzCA,EAEIC,aAAa,eAAO,IAAAF,GAAAA,EACL,SAAW,QAClC,EAEAzB,MAAON,EAAaC,UCnB9B,GACE,CACEpF,MAAO,cACPkG,SAAU,SACVC,cAAe,oBACfC,SAAU,CACRC,oBAAqB,UAEvBC,OAAQ,CACN,CACEC,UAAW,aACXC,cAAe,0CACfC,GAAI,QACJC,KAAM,CACJjB,MAAON,EAAaC,MAEtBgB,SAAU,CACRQ,eAAgB,OAChBS,aAAclC,EAAac,eAC3BY,UAAW1B,EAAaC,OAG5B,CACEmB,UAAW,oBACXC,cAAe,gCACfC,GAAI,QACJC,KAAM,CACJjB,MAAON,EAAaC,MAEtBgB,SAAU,CACRQ,eAAgB,OAChBS,aAAc,eACdR,UAAW,SAACxB,GAAG,OAAKA,EAAI/B,QAAQgE,IAAI,IAGxC,CACEf,UAAW,mBACXC,cAAe,+BACfC,GAAI,QACJC,KAAM,CACJjB,MAAON,EAAaC,MAEtBgB,SAAU,CACRQ,eAAgB,OAChBS,aAAc,oBACdR,UAAW1B,EAAaC,OAG5B,CACEmB,UAAW,qBACXC,cAAe,yCACfC,GAAI,QACJC,KAAM,CACJjB,MAAON,EAAaC,MAEtBgB,SAAU,CACRQ,eAAgB,SAChBS,aAAc,eACdR,UAAW1B,EAAaC,OAG5B,CACEmB,UAAW,YACXC,cAAe,4CACfC,GAAI,QACJC,KAAM,CACJjB,MAAON,EAAaC,MAEtBgB,SAAU,CACRQ,eAAgB,OAChBS,aAAc,MACdR,UAAW1B,EAAaC,OAG5B,CACEmB,UAAW,cACXC,cAAe,0BACfC,GAAI,QACJC,KAAM,CACJjB,MAAON,EAAaC,MAEtBgB,SAAU,CACRQ,eAAgB,OAChBS,aAAc,SACdR,UAAW1B,EAAaC,OAG5B,CACEmB,UAAW,eACXC,cAAe,qCACfC,GAAI,QACJC,KAAM,CACJjB,MAAON,EAAaM,WC5F9B,GACE,CACEzF,MAAO,eACPkG,SAAU,UACVC,cAAe,eACfC,SAAU,CACRmB,WAAY,UACZC,eAAgB,SAACnC,EAAKtF,GAAM,OAC1BA,EAAOe,iBAAiB,iCAAiCoD,MAAM,EACjEuD,eAAgB,MAChBC,YAAa,SAACrC,EAAKtF,EAAQ4F,EAAOD,EAAOE,GAAQ,IAAAsB,EAAA,OACG,QAAlDA,EAAAnH,EAAOoB,cAAc,qCAA6B,IAAA+F,GAAW,QAAXA,EAAlDA,EAAoDjC,iBAAS,IAAAiC,OAAA,EAA7DA,EAA+DJ,SAAM,WAAAa,OAC1D/B,EAAU,EACvBgC,eAAgB,SAACvC,EAAKtF,GAAM,OACzBgF,MAAMC,KACLjF,EAAOe,iBAAiB,kCACxB+G,WACA,SAACC,GAAW,MAAkD,SAA7CA,EAAY/B,aAAa,eAA0B,MAChE,GAAK,CAAC,GAEhBO,OAAQ,CACN,CACEC,UAAW,QACXC,cAAe,gCACfC,GAAI,QACJC,KAAM,CACJjB,MAAON,EAAaC,MAEtBgB,SAAU,CACRS,UAAW,QACXkB,aAAc,WACdH,eAAgBzC,EAAaO,QAGjC,CACEa,UAAW,QACXC,cAAe,gCACfC,GAAI,QACJC,KAAM,CACJjB,MAAO,SAACJ,EAAKtF,GAAM,IAAAoH,EAAA,OAId,QAJcA,EACjBpH,EACGoB,cACC,qEACD,IAAAgG,GACU,QADVA,EAHHA,EAIIlC,iBAAS,IAAAkC,OAAA,EAJbA,EAIeL,MAAM,GAEzBV,SAAU,CACRS,UAAW,WACXkB,aAAc,aAGlB,CACExB,UAAW,QACXC,cAAe,gCACfC,GAAI,QACJC,KAAM,CACJjB,MAAO,SAACJ,EAAKtF,GAAM,IAAAiI,EAAA,OAId,QAJcA,EACjBjI,EACGoB,cACC,qEACD,IAAA6G,GACU,QADVA,EAHHA,EAII/C,iBAAS,IAAA+C,OAAA,EAJbA,EAIelB,MAAM,GAEzBV,SAAU,CACRS,UAAW,OACXkB,aAAc,aAGlB,CACExB,UAAW,WACXE,GAAI,UACJwB,YAAa,SAAC5C,EAAKtF,EAAQ4F,GAAK,MAC9B,CACE,YACA,aACA,UACA,YACA,MACA,OACA,UACAjB,SAASiB,EAAM/E,IAAI,EACvB8F,KAAM,CACJjB,MAAO,SAACJ,EAAKtF,EAAQ4F,GAAK,OAAKA,EAAM/E,GAAG,GAE1CwF,SAAU,CACRS,UAAW,WACXkB,aAAc,aAGlB,CACExB,UAAW,mBACXC,cAAe,yDACfC,GAAI,QACJL,SAAU,CACRS,UAAW,6BAGf,CACEN,UAAW,kBACXC,cAAe,wDACfC,GAAI,QACJL,SAAU,CACRS,UAAW,4BAGf,CACEN,UAAW,QACXC,cAAe,mDACfC,GAAI,YC5GZ,GACE,CACEzG,MAAO,qBACPkG,SAAU,SACVC,cAAe,oBACfC,SAAU,CACRC,oBAAqB,UAEvBC,OAAQ,CACN,CACEC,UAAW,SACXC,cAAe,wCACfC,GAAI,QACJC,KAAM,CACJC,MAAOxB,EAAaW,UAEtBM,SAAU,CACRQ,eAAgB,cAChBC,UAAW,SAACxB,GACV,IAAMS,EAAWT,EAAIU,aAAa,iBAClC,OAAiB,OAAbD,EACK,KAEsB,SAAxBA,EAASE,WAAwB,YAAc,YACxD,EACAqB,aAAc,gBAGlB,CACEd,UAAW,aACXC,cAAe,2BACfC,GAAI,QACJL,SAAU,CACRQ,eAAgB,OAChBC,UAAW,wBACXQ,aAAc,4BAGlB,CACEd,UAAW,qBACXC,cAAe,2CACfC,GAAI,QACJC,KAAM,CACJjB,MAAON,EAAaC,MAEtBgB,SAAU,CACRQ,eAAgB,OAChBS,aAAclC,EAAaC,KAC3B8C,cAAe,EACfrB,UAAW1B,EAAaC,OAG5B,CACEmB,UAAW,uBACXC,cAAe,0CACfC,GAAI,QACJC,KAAM,CACJjB,MAAON,EAAaC,MAEtBgB,SAAU,CACRQ,eAAgB,OAChBC,UAAW1B,EAAaC,KACxBiC,aAAc,+BC9DxB,GACE,CACErH,MAAO,cACPkG,SAAU,SACVI,OAAQ,CACN,CACEC,UAAW,SACXC,cAAe,iCACfC,GAAI,QACJC,KAAM,CACJC,MAAOxB,EAAaW,cCP9B,GACE,CACE9F,MAAO,eACPkG,SAAU,UACVI,OAAQ,CACN,CACEC,UAAW,oBACXC,cAAe,kCACfC,GAAI,QACJC,KAAM,CACJC,MAAOxB,EAAaW,SAEpBL,MAAO,SAACJ,EAAKtF,EAAQ4F,GACnB,IAAMf,EAAUD,EAAkB5E,GAC5BoI,EAAQpI,EAAOoB,cAAc,uBAC7BiH,EAAWD,EAAMpC,aAAa,OAC9BsC,EAAWF,EAAMpC,aAAa,OAC9BN,EAAQ,GAAHkC,OAAMU,EAAQ,MAAAV,OAAKS,EAAQ,KACtC,OAAOxD,EAAU,GAAH+C,OAAM/C,EAAO,OAAA+C,OAAMlC,GAAUA,CAC7C,OCtBV,GACE,CACEzF,MAAO,cACPkG,SAAU,SACVI,OAAQ,CACN,CACEC,UAAW,SACXC,cAAe,0BACfC,GAAI,SACJC,KAAM,CACJC,MAAOxB,EAAaU,QAEpBJ,MAAO,SAACJ,EAAKtF,EAAQ4F,GAAK,OAAKN,EAAIvB,WAAWmB,SAAS,EAEvD8B,MAAO,SAAC1B,EAAKtF,EAAQ4F,GAAK,IAAAqB,EAAA,OAEM,QAFNA,EACxBjH,EACGkH,QAAQ,2BAAmB,IAAAD,GACS,QADTA,EAD9BA,EAEI7F,cAAc,6BAAqB,IAAA6F,GAC1B,QAD0BA,EAFvCA,EAGI/B,iBAAS,IAAA+B,OAAA,EAHbA,EAGeF,MAAM,OClBjC,GACE,CACE9G,MAAO,oBACPkG,SAAU,eACVI,OAAQ,CACN,CACEC,UAAW,UACXC,cAAe,2BACfC,GAAI,OACJC,KAAM,CAEJjB,MAAON,EAAaM,MAEpBsB,MAAO,SAAC1B,EAAKtF,EAAQ4F,GAAK,IAAAuB,EAAA,OACkB,QADlBA,EACxBnH,EAAOoB,cAAc,6BAAqB,IAAA+F,GAAW,QAAXA,EAA1CA,EAA4CjC,iBAAS,IAAAiC,OAAA,EAArDA,EAAuDJ,MAAM,OCdzE,GACE,CACE9G,MAAO,eACPkG,SAAU,UACVC,cAAe,oBACfC,SAAU,CACRC,oBAAqB,UACrBgB,aAAc,SAAChC,EAAKtF,GAAM,IAAAmH,EAAA,OACqB,QADrBA,EACxBnH,EAAOoB,cAAc,gCAAwB,IAAA+F,GAAW,QAAXA,EAA7CA,EAA+CjC,iBAAS,IAAAiC,OAAA,EAAxDA,EAA0DJ,MAAM,GAEpER,OAAQ,CACN,CACEC,UAAW,QACXC,cAAe,sBACfC,GAAI,QACJL,SAAU,CACRQ,eAAgB,eAChBC,UAAW1B,EAAaC,KACxB8C,cAAe/C,EAAaO,WClBtC,GACE,CACE1F,MAAO,kBACPkG,SAAU,aACVI,OAAQ,CACN,CACEC,UAAW,UACXE,GAAI,OACJC,KAAM,CAEJjB,MAAON,EAAaM,MAEpBsB,MAAO,SAAC1B,EAAKtF,EAAQ4F,GAAK,IAAAqB,EAAA,OAEM,QAFNA,EACxBjH,EACGkH,QAAQ,2BAAmB,IAAAD,GACS,QADTA,EAD9BA,EAEI7F,cAAc,6BAAqB,IAAA6F,GAC1B,QAD0BA,EAFvCA,EAGI/B,iBAAS,IAAA+B,OAAA,EAHbA,EAGeF,MAAM,OChBjC,GACE,CACE9G,MAAO,gBACPkG,SAAU,WACVI,OAAQ,CACN,CACEC,UAAW,UACXE,GAAI,OACJC,KAAM,CAEJjB,MAAON,EAAaM,MAEpBsB,MAAO,SAAC1B,EAAKtF,EAAQ4F,GAAK,IAAAqB,EAAA,OAEM,QAFNA,EACxBjH,EACGkH,QAAQ,2BAAmB,IAAAD,GACS,QADTA,EAD9BA,EAEI7F,cAAc,6BAAqB,IAAA6F,GAC1B,QAD0BA,EAFvCA,EAGI/B,iBAAS,IAAA+B,OAAA,EAHbA,EAGeF,MAAM,O,ilHCIjC,IAAMwB,EAAqB,GAAHX,OAAAY,EdpBxB,CACE,CACEvI,MAAO,iBACPkG,SAAU,YACVC,cAAe,iBACfC,SAAU,CACRC,oBAAqB,aAEvBC,OAAQ,CACN,CACEC,UAAW,QACXC,cAAe,0BACfC,GAAI,QACJC,KAAM,CAAEC,MAAOxB,EAAaW,SAAUL,MAAON,EAAaC,MAC1DgB,SAAU,CACRQ,eAAgBzB,EAAaW,SAC7Be,UAAW1B,EAAaC,KACxB8C,cAAe/C,EAAaO,YcIf6C,EAClBC,GAAmBD,EACnBE,GAAmBF,EACnBG,GAAgBH,EAChBI,GAAeJ,EACfK,GAAgBL,EAChBM,GAAqBN,EACrBO,GAAeP,EC9BpB,CACE,CACEvI,MAAO,YACPkG,SAAU,OACVI,OAAQ,CACN,CACEC,UAAW,iBACXC,cAAe,6BACfC,GAAI,QACJC,KAAM,CAEJC,MAAO,SAACtB,EAAKtF,EAAQ4F,GAAU,IAAAuB,EAAAC,EAK7B,OAD0B,QAHTD,EAEuB,QAFvBC,EACfpH,EACGoB,cAAc,6BAAqB,IAAAgG,OAAA,EADtCA,EAEIC,aAAa,eAAO,IAAAF,GAAAA,EACL,SAAW,QAClC,EAEAzB,MAAO,SAACJ,EAAKtF,EAAQ4F,GAAK,IAAAqC,EAAA,OACQ,QADRA,EACxBjI,EAAOoB,cAAc,mBAAW,IAAA6G,OAAA,EAAhCA,EAAkCjC,aAAa,MAAM,QDW/CwC,EACbQ,GAAgBR,EAChBS,GAAeT,EACfU,GAAoBV,EACpBW,GAAgBX,EAChBY,GAAkBZ,EAClBa,IAGCC,EAAY,WAwBf,OAAAC,GARD,SAAAD,IAA0B,IAAdvJ,EAAOyJ,UAAArF,OAAA,QAAAsF,IAAAD,UAAA,GAAAA,UAAA,GAAG,CAAC,EAACE,EAAA,KAAAJ,GAfxBK,EAAA,eACU,IAAIC,EAAAA,GAEdD,EAAA,cACS,IAETA,EAAA,iBACY,IAAIE,MAEhBF,EAAA,cACS,OAETA,EAAA,gBACWxJ,UAGT,IAAA2J,EAAoD/J,EAA5CgK,OAAAA,OAAM,IAAAD,EAAG,KAAIA,EAAAE,EAA+BjK,EAA7BkK,cAAAA,OAAa,IAAAD,EAAG7J,SAAQ6J,EAC3CD,IACFG,KAAKH,OAASA,GAEZE,IACFC,KAAK/J,SAAW8J,EAEpB,GAAC,EAAApJ,IAAA,QAAA6E,MAED,SAAM5F,GAAS,IAAAqK,EAAA,KACRC,UAAUC,YAAuC,IAAzBD,UAAUC,aACjCH,KAAKI,QAAQC,iBAAiB,UAChCL,KAAKM,iBAEPN,KAAKI,QAAQ5D,GAAG,gBAAgB,SAAC+D,GAC3BC,OAAOC,OAAOF,EAAU,WACtBA,EAAgB,MAClBN,EAAKK,iBAELL,EAAKS,kBAGX,IACI9K,GACFoK,KAAKpK,UAGX,GAAC,CAAAe,IAAA,iBAAA6E,MAED,WAAkB,GAAC,CAAA7E,IAAA,kBAAA6E,MAEnB,WAAmB,GAEnB,CAAA7E,IAAA,UAAA6E,MAGA,WAAU,IAAAmF,EAAA,KACRtC,EAAmBvH,SAAQ,SAAC8J,GAC1BD,EAAKE,aACHD,EAAgB7K,MAChB6K,EAAgB3E,SAChB2E,EAAgBvE,OAChBuE,EAAgB1E,eAAiB,GACjC0E,EAAgBzE,UAAY,CAAC,EAEjC,GACF,GAEA,CAAAxF,IAAA,eAAA6E,MAQA,SACEzF,EACAkG,EACAI,GAGA,IACIyE,EADJC,EAAA,KAFA7E,EAAaoD,UAAArF,OAAA,QAAAsF,IAAAD,UAAA,GAAAA,UAAA,GAAG,GAChB0B,EAAe1B,UAAArF,OAAA,QAAAsF,IAAAD,UAAA,GAAAA,UAAA,GAAG,CAAC,EAGE,iBAAVvJ,EACT+K,EAAahG,MAAMC,KAAKiF,KAAK/J,SAASY,iBAAiBd,IAC7B,WAAjBkL,EAAOlL,KAChB+K,EAAa,CAAC/K,IAEX+K,GAGLA,EAAWhK,SAAQ,SAAChB,EAAQoL,GAC1B7E,EAAOvF,SAAQ,SAACqK,GACTA,EAAY3E,KAGb2E,EAAY5E,cACdzB,MAAMC,KACJjF,EAAOe,iBAAiBsK,EAAY5E,gBACpCzF,SAAQ,SAACsE,EAAKK,GAAK,OACnBsF,EAAKK,eACHhG,EACAtF,EACAoG,EACA8E,EACAG,EACApL,EACAkG,EACAR,EAAQ,EACRyF,EAAa,EACd,IAGHH,EAAKK,eACHtL,EACAA,EACAoG,EACA8E,EACAG,EACApL,EACAkG,EACA,EACAiF,EAAa,GAGnB,GACF,GACF,GAEA,CAAAvK,IAAA,oBAAA6E,MACA,SAAkBS,EAAUkF,GAC1B,MAAO,GAAPzD,OAAUsC,KAAKH,OAAM,KAAAnC,OAAIzB,EAAQ,KAAAyB,OAAIyD,EAAY7E,WAAa6E,EAAY3E,GAC5E,GAEA,CAAA7F,IAAA,iBAAA6E,MACA,SACEJ,EACAtF,EACAoG,EACA8E,EACAG,EACApL,EACAkG,EACAR,EACAE,GACA,IAAA0F,EAAA,KAEE7E,EAKE2E,EALF3E,GACAC,EAIE0E,EAJF1E,KACAF,EAGE4E,EAHF5E,cAAa+E,EAGXH,EAFFhF,SAAAA,OAAQ,IAAAmF,EAAG,CAAC,EAACA,EAAAC,EAEXJ,EADFnD,YAAAA,OAAW,IAAAuD,EAAG,KAAIA,EAEpBnG,EAAI3E,iBAAiB+F,GAAI,SAACd,GACxB,IAAM8F,EAA0B,CAACpG,EAAKtF,EAAQ4F,EAAOD,EAAOE,IAE1C,OAAhBqC,GACAqD,EAAKI,cAAaC,MAAlBL,EAAI,CAAerD,GAAWN,OAAK8D,MAEnCH,EAAKM,YACHzF,EAAa,GAAAwB,OACN2D,EAAKxB,OAAM,KAAAnC,OAAIxB,GAClBmF,EAAKO,kBAAkB3F,EAAUkF,GAAYU,EAAAA,EAAA,GAE5CpF,GAAI,IACPY,KAAMgE,EAAKO,kBAAkB3F,EAAUkF,GACvC3F,MAAOiB,SAAAA,EAAMjB,MACT6F,EAAKI,cAAaC,MAAlBL,EAAI,CAAe5E,EAAKjB,OAAKkC,OAAK8D,IAClC,KACJ9E,MAAOD,SAAAA,EAAMC,MACT2E,EAAKI,cAAaC,MAAlBL,EAAI,CAAe5E,EAAKC,OAAKgB,OAAK8D,IAClC,KACJ1E,MAAOL,SAAAA,EAAMK,MACTuE,EAAKI,cAAaC,MAAlBL,EAAI,CAAe5E,EAAKK,OAAKY,OAAK8D,IAClC,KACJM,MAAOvI,EAAW6B,GAClBmB,cAAeA,EACfwF,kBAAmB,IAAIpC,KAAS0B,EAAKW,UACrCvG,MAAAA,EACAE,SAAAA,EACA5F,MAAAA,EACAkG,SAAAA,IAEFuE,OAAOyB,YACLzB,OAAO0B,QAAOL,EAAAA,EAAC,CAAC,EAAIb,GAAoB7E,IAAYgG,KAClD,SAAAC,GAAA,IAAAC,EAAAC,EAAAF,EAAA,GAAEzL,EAAG0L,EAAA,GAAE7G,EAAK6G,EAAA,SAAM,CAChB1L,EACA0K,EAAKI,cAAaC,MAAlBL,EAAI,CAAe7F,GAAKkC,OAAK8D,IAC9B,KAKX,GACF,GAEA,CAAA7K,IAAA,gBAAA6E,MACA,SAAc+G,EAAiBnH,EAAKtF,EAAQ4F,EAAOD,EAAOE,GACxD,MAAkC,mBAApB4G,EACVA,EAAgBC,KAAKxC,KAAM5E,EAAKtF,EAAQ4F,EAAOD,EAAOE,GACrD4G,QAAAA,EAAmB,IAC1B,GAEA,CAAA5L,IAAA,cAAA6E,MACA,SAAYc,EAAWG,GAAqB,IAAfN,EAAQmD,UAAArF,OAAA,QAAAsF,IAAAD,UAAA,GAAAA,UAAA,GAAG,CAAC,EACvCU,KAAK3D,OAAOoG,KAAIZ,EAAAA,EAAC,CACfnG,MAAOY,GACJG,GACAN,GAEP,GAEA,CAAAxF,IAAA,iBAAA6E,MACA,WAAiB,IAAAkH,EAAA,KACf,OAAOlC,OAAOyB,YACZnH,MAAMC,KACJ9E,SAAS0M,KAAK9L,iBAAiB,eAAD6G,OACbsC,KAAKH,OAAM,uBAE5BsC,KAAI,SAACS,GAAO,MAAK,CACjBA,EACG9G,aAAa,QACbT,QAAQ,IAAIwH,OAAO,IAADnF,OAAKgF,EAAK7C,OAAM,WAAW,IAChD+C,EAAQ9G,aAAa,WACtB,IACDhB,MAAMC,KACJ9E,SAAS0M,KAAK9L,iBAAiB,eAAD6G,OACbsC,KAAKH,OAAM,kBAE5BsC,KAAI,SAACS,GAAO,MAAK,CACjBA,EAAQ9G,aAAa,QACrB8G,EAAQ9G,aAAa,WACtB,IAEL,GAEA,CAAAnF,IAAA,qBAAA6E,MACA,WAAqB,IAAAsH,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EACbC,EAAkB,CAAC,EAkBzB,OAjBAA,EAAgB,GAADhG,OAAIsC,KAAKH,OAAM,+BACX,QAAjBiD,GAAAC,EAAAxM,QAAO2C,kBAAU,IAAA4J,GAAjBA,EAAAN,KAAAO,EAAoB,gCAAgC3J,QAChD,OACA,QACNsK,EAAgB,GAADhG,OAAIsC,KAAKH,OAAM,wBAA0C,QAApBmD,GAAGC,EAAA1M,QAAO2C,kBAAU,IAAA8J,OAAA,EAAjBA,EAAAR,KAAAS,EACrD,2BACA7J,QACFsK,EAAgB,GAADhG,OAAIsC,KAAKH,OAAM,2BACX,QAAjBqD,GAAAC,EAAA5M,QAAO2C,kBAAU,IAAAgK,GAAjBA,EAAAV,KAAAW,EAAoB,4BAA4B/J,QAC5C,OACiB,QAAjBgK,GAAAC,EAAA9M,QAAO2C,kBAAU,IAAAkK,GAAjBA,EAAAZ,KAAAa,EAAoB,4BAA4BjK,QAC9C,OACA,GACRsK,EAAgB,GAADhG,OAAIsC,KAAKH,OAAM,iCACX,QAD0CyD,GAC3DC,EAAAhN,QAAO2C,kBAAU,IAAAoK,OAAA,EAAjBA,EAAAd,KAAAe,EAAoB,oCAAoCnK,QAC1DsK,EAAgB,GAADhG,OAAIsC,KAAKH,OAAM,uCACX,QADgD2D,GACjEC,EAAAlN,QAAO2C,kBAAU,IAAAsK,OAAA,EAAjBA,EAAAhB,KAAAiB,EAAoB,0CAA0CrK,QACzDsK,CACT,IAAC,CA/Pe,GAyQZC,EAAG,SAAAC,GAaP,SAAAD,IAA0B,IAAAE,EAAdhO,EAAOyJ,UAAArF,OAAA,QAAAsF,IAAAD,UAAA,GAAAA,UAAA,GAAG,CAAC,EACrB,GADsBE,EAAA,KAAAmE,GAClBpN,OAAOuN,wBACT,OAAAC,EAAAF,EAAOtN,OAAOuN,yBAEhB,I,MAAAE,EAKInO,EAJF4D,GAAAA,OAAE,IAAAuK,EAAG,GAAEA,EAAAC,EAILpO,EAHFgK,OAAAA,OAAM,IAAAoE,EAAG,KAAIA,EAAAC,EAGXrO,EAFFD,QAAAA,OAAO,IAAAsO,GAAOA,EAAAC,EAEZtO,EADFuO,gBAAAA,OAAe,IAAAD,GAAOA,EAcJ,O,EAZpB,K,EAAA,CAAM,CAAEtE,OAAAA,I,MAAR8D,GAtBFlE,EAsBEoE,E,kEAtBF,mBACkB,GAElBpE,EAAAoE,EAAA,qBACoB,GAEpBpE,EAAAoE,EAAA,mBACkB,GAElBpE,EAAAoE,EAAA,iBAcEtN,OAAOuN,wBAAuBD,EAC9BA,EAAKO,gBAAkBA,EACvB7N,OAAO8N,UAAY9N,OAAO8N,WAAa,GACnC5K,IACFoK,EAAKS,OAAS7K,EACdoK,EAAKU,WAAa,cAAH7G,OAAiBmG,EAAKS,QAChCT,EAAKzD,QAAQC,iBAAiB,WACjC9J,OAAOsN,EAAKU,aAAc,EAC1BV,EAAKzD,QAAQoE,IAAIX,EAAKU,WAAY,UAGtCV,EAAKY,MAAM7O,GAASiO,CACtB,CAAC,O,qRAAAa,CAAAf,EAAAC,GAAAvE,EAAAsE,EAAA,EAAAhN,IAAA,UAAA6E,MAED,WACEjF,OAAOuN,wBAA0B,IACnC,GAEA,CAAAnN,IAAA,cAAA6E,MACA,SAAYc,EAAWG,GAAqB,IAAAkI,EAAA,KAAfxI,EAAQmD,UAAArF,OAAA,QAAAsF,IAAAD,UAAA,GAAAA,UAAA,GAAG,CAAC,EACjCsF,EAAO/C,EAAAA,EAAA,CACXnG,MAAOY,GACJkE,OAAOyB,YACRzB,OAAO0B,QAAQzF,GAAM0F,KAAI,SAAA0C,GAAA,IAAAC,EAAAxC,EAAAuC,EAAA,GAAElO,EAAGmO,EAAA,GAAEtJ,EAAKsJ,EAAA,SAAM,CAAC,GAADpH,OACtCiH,EAAK9E,OAAM,WAAAnC,OAAU/G,GACxB6E,EACD,MAEAW,GAEL6D,KAAK+E,gBAAgBH,EACvB,GAEA,CAAAjO,IAAA,OAAA6E,MACA,WACEwE,KAAK+E,gBAAgBzF,UACvB,GAEA,CAAA3I,IAAA,kBAAA6E,MACA,SAAgBiB,GACdlG,OAAO8N,UAAU5B,KAAKhG,EACxB,GAEA,CAAA9F,IAAA,iBAAA6E,MACA,WACE,IAAKwE,KAAKgF,gBAAiB,CAGzB,GAFAzO,OAAOyJ,KAAKuE,aAAc,EAC1BvE,KAAKI,QAAQoE,IAAIxE,KAAKuE,WAAY,UAC7BvE,KAAKiF,mBAAqBjF,KAAKoE,gBAAiB,CACnD,IAAKpE,KAAKsE,OACR,MAAMY,MAAM,wBAEdlF,KAAK+E,gBAAelD,EAAAA,EAAAA,EAAC,CAAC,EACjB7B,KAAKmF,kBACLnF,KAAKoF,sBAAoB,IAC5B,aAAa,IAAIzF,MAAO0F,UACxB3J,MAAO,YAET,IAAM4J,EAAcrP,SAASsP,qBAAqB,UAAU,GACtDC,EAASvP,SAASwP,cAAc,UACtCD,EAAOE,OAAQ,EACfF,EAAOG,IAAM,8CAAHjI,OAAiDsC,KAAKsE,OAAM,gBAClEgB,EACFA,EAAYzL,WAAW+L,aAAaJ,EAAQF,GAE5CrP,SAAS0M,KAAKkD,YAAYL,GAE5BxF,KAAKiF,mBAAoB,CAC3B,CACAjF,KAAKgF,iBAAkB,CACzB,CACF,GAEA,CAAArO,IAAA,kBAAA6E,MACA,WAAkB,IAAAsK,EAAA,KACZ9F,KAAKgF,kBACPzO,OAAOyJ,KAAKuE,aAAc,EAC1BvE,KAAKI,QAAQoE,IAAIxE,KAAKuE,WAAY,QAClC/D,OAAOuF,KAAK/F,KAAKI,QAAQ4F,KAAKlP,SAAQ,SAACH,GACjCA,EAAIsP,WAAW,QACjBH,EAAK1F,QAAO,OAAQzJ,EAExB,IACAqJ,KAAKgF,iBAAkB,EAE3B,IAAC,CA7GM,CAAS5F,GAgHZ8G,EAAQjQ,SAASE,gBAAgBkD,QAAQ8M,IAC3CD,GACF,IAAIvC,EAAI,CAAElK,GAAIyM,IAGhB,IAAME,EAAU,CAAE7M,WAAAA,EAAYmB,kBAAAA,EAAmBQ,aAAAA,E,2sBEta1C,IAAMlE,EAAS,WAenB,O,EAZD,SAAAA,EAAYqP,GAAS,I,IAAApG,EAAA,M,4FAAAT,CAAA,KAAAxI,G,EAAA,M,MAAA,uB,mCAFF,K,iDAAA,KAGjBgJ,KAAKqG,QAAUA,EACfrG,KAAKsG,OAASD,GAAWA,EAAQxP,iBAAiB,wBAC7CmJ,KAAKqG,SAAYrG,KAAKsG,SAI3BtG,KAAKuG,uBACyC,SAA5CvG,KAAKqG,QAAQhN,QAAyB,gBAExC2G,KAAKsG,OAAOxP,SAAQ,SAAC0P,GAAK,OAAKvG,EAAKwG,SAASD,EAAM,IACnDxG,KAAK0G,YACP,G,EAAC,EAAA/P,IAAA,WAAA6E,MAED,SAASgL,GAAO,IAAA7F,EAAA,KACRgG,EAAWH,EAAMtP,cAAc,2BAC/B0P,EAAWJ,EAAMtP,cAAc,wBAErC,GAAKyP,GAAaC,EAAlB,CAIAJ,EAAMpQ,UAAUC,IAAI,0BACpBmQ,EAAMpQ,UAAUQ,OAAO,uBAEvB+P,EAAS3N,gBAAgB,SAEzB4N,EAASxQ,UAAUC,IAAI,0BACvBuQ,EAASxQ,UAAUQ,OAAO,uBAC1BgQ,EAAS7N,aAAa,SAAU,eAEhC,IAAM8N,EAAiB5Q,SAASwP,cAAc,UAC9CoB,EAAezQ,UAAUC,IAAI,0BAC7BwQ,EAAe9N,aAAa,gBAAiB6N,EAASnN,IACtDkN,EAAS9M,WAAW+L,aAAaiB,EAAgBF,EAASG,aAC1DD,EAAehB,YAAYc,GAE3BE,EAAepQ,iBAAiB,SAAS,WACyB,SAAjDoQ,EAAe/K,aAAa,iBAEzC6E,EAAKoG,UAAUP,GAEf7F,EAAKqG,SAASR,EAElB,GAxBA,CAyBF,GAAC,CAAA7P,IAAA,YAAA6E,MAED,WAAY,IAAAuF,EAAA,KACVf,KAAKsG,OAAOxP,SAAQ,SAAC0P,GACa,SAA5BA,EAAMnN,QAAgB,OACxB0H,EAAKiG,SAASR,GAEdzF,EAAKgG,UAAUP,GAEjBA,EAAMxN,gBAAgB,cACxB,GACF,GAAC,CAAArC,IAAA,WAAA6E,MAED,SAASgL,GACFxG,KAAKuG,wBACRvG,KAAKiH,oBAAoBT,GAE3B,IAAMK,EAAiBL,EAAMtP,cAAc,2BACrC0P,EAAWJ,EAAMtP,cAAc,2BACrC2P,EAAe9N,aAAa,gBAAiB,QAC7C8N,EAAe9N,aACb,aAAY,GAAA2E,OACTmJ,EAAe7L,UAAU6B,OAAM,wBAEpC+J,EAAS5N,gBAAgB,SAE3B,GAAC,CAAArC,IAAA,YAAA6E,MAED,SAAUgL,GACR,IAAMK,EAAiBL,EAAMtP,cAAc,2BACrC0P,EAAWJ,EAAMtP,cAAc,2BACrC2P,EAAe9N,aAAa,gBAAiB,SAC7C8N,EAAe9N,aACb,aAAY,GAAA2E,OACTmJ,EAAe7L,UAAU6B,OAAM,wBAEpC+J,EAAS7N,aAAa,SAAU,cAElC,GAAC,CAAApC,IAAA,sBAAA6E,MAED,SAAoB0L,GAAc,IAAA7F,EAAA,KAChCvG,MAAMC,KAAKiF,KAAKsG,QACba,QACC,SAACX,GAAK,OACJA,EAAMtP,cAAc,6BAA+BgQ,GAGd,SAFrCV,EACGtP,cAAc,2BACd4E,aAAa,gBAA2B,IAE9ChF,SAAQ,SAAC0P,GAAK,OAAKnF,EAAK0F,UAAUP,EAAM,GAC7C,M,6EAAC,CAlGmB,E,s0BCEf,IAAMrP,EAAWkI,GACtB,SAAAlI,EAAYkP,GAAS,IAAApG,EAAA,KASnB,G,4FATmBT,CAAA,KAAArI,GACnB6I,KAAKqG,QAAUA,EACfrG,KAAKoH,iBACHf,GAAWA,EAAQnP,cAAc,0BACnC8I,KAAK/I,aACHoP,GACArG,KAAKoH,kBACLf,EAAQxP,iBAAiB,0BAEtBmJ,KAAKqG,SAAYrG,KAAKoH,kBAAqBpH,KAAK/I,cAKnD+I,KAAK/I,aAAagD,OAAS,IAC1B+F,KAAKqG,QAAQjQ,UAAUiR,SAAS,gCACjC,CACA,IAAMC,EAAW,mBAAH5J,QAAsB6J,EAAAA,EAAAA,MAE9BC,EAAcvR,SAASwP,cAAc,MAC3C+B,EAAYpR,UAAUC,IACpB,wBACA,qCAEFmR,EAAYC,MAAMC,QAAU,OAE5B,IAAMC,EAAgB1R,SAASwP,cAAc,UAC7CkC,EAAcvR,UAAUC,IAAI,yBAC5BsR,EAAcpM,UACZ,yEACFoM,EAAc5O,aAAa,gBAAiB,SAC5C4O,EAAc5O,aAAa,gBAAiBuO,GAC5CK,EAAclR,iBAAiB,SAAS,WACtCwJ,EAAKoG,QAAQjQ,UAAUQ,OAAO,8BAC9B4Q,EAAY5Q,SACZqJ,EAAKoG,QAAQtN,aAAa,WAAY,KACtCkH,EAAKoG,QAAQuB,QACb3H,EAAKoG,QAAQtN,aAAa,WAAY,KACxC,IAEAyO,EAAY3B,YAAY8B,GAExB3H,KAAKoH,iBAAiBrO,aAAa,KAAMuO,GACzCtH,KAAKoH,iBAAiBxB,aACpB4B,EACAxH,KAAK/I,aAAa+I,KAAK/I,aAAagD,OAAS,GAAG6M,aAGlD9G,KAAKqG,QAAQjQ,UAAUC,IAAI,6BAC7B,CACF,G,0tBCjDK,IAAMgB,EAAY,WAyDtB,O,EAxDD,SAAAA,EAAYgP,GAAS,IAAApG,EAAA,KAYnB,G,4FAZmBT,CAAA,KAAAnI,GACnB2I,KAAKqG,QAAUA,EACfrG,KAAK6H,cAAgBxB,GAAWA,EAAQnP,cAAc,oBACtD8I,KAAK8H,cAAgBzB,GAAWA,EAAQnP,cAAc,oBACtD8I,KAAK+H,QACH1B,GAAWA,EAAQnP,cAAc,uCACnC8I,KAAKgI,iBACH3B,GAAWA,EAAQnP,cAAc,yCACnC8I,KAAKiI,iBACH5B,GAAWA,EAAQnP,cAAc,yCACnC8I,KAAKkI,cAAgB7B,GAAWA,EAAQxP,iBAAiB,mBAGtDmJ,KAAKqG,SACLrG,KAAK6H,eACL7H,KAAK8H,eACL9H,KAAK+H,SACL/H,KAAKgI,kBACLhI,KAAKiI,kBACLjI,KAAKkI,cAPR,CAYA,IACMC,GADWnI,KAAKqG,QAAQhN,QAAQkH,UAAY,IAE/C6H,MAAM,KACNjB,QAAO,SAACkB,GAAC,OAAKA,CAAC,IACflG,KAAI,SAACmG,GAAM,OAAKA,EAAOzL,MAAM,IAC1B0L,EAASvI,KAAKqG,QAAQhN,QAAQkP,aAAUhJ,EACxCiJ,EAAOxI,KAAKqG,QAAQhN,QAAQmP,WAAQjJ,EACpCkJ,EAASzI,KAAKqG,QAAQhN,QAAQoP,aAAUlJ,EACxCmJ,EAAc1I,KAAKqG,QAAQhN,QAAQqP,kBAAenJ,EAExDS,KAAKI,QAAU,IAAIV,EAAAA,EAAQ,CACzByI,cAAAA,EACAI,OAAAA,EACAC,KAAAA,EACAC,OAAAA,EACAC,YAAAA,EACAC,aAAa,IAGf3I,KAAK4I,qBACH5I,KAAKqG,QAAQhN,QAAQwP,gBAAkB,yBACZ7I,KAAKI,QAAQ0I,SACxC9I,KAAK4I,qBACL,UAIA5I,KAAKqG,QAAQrN,gBAAgB,UAE7BgH,KAAK6H,cAAcpR,iBAAiB,SAAS,kBAAMwJ,EAAK8I,QAAQ,IAChE/I,KAAK8H,cAAcrR,iBAAiB,SAAS,kBAAMwJ,EAAK+I,QAAQ,IAhClE,CAkCF,G,EAAC,EAAArS,IAAA,SAAA6E,MAED,WACEwE,KAAK+H,QAAQhP,aAAa,UAAU,GACpCiH,KAAKiJ,WACLjJ,KAAKgI,iBAAiBhP,gBAAgB,UACtCgH,KAAKgI,iBAAiBJ,QACtB5H,KAAKgI,iBAAiBjP,aAAa,WAAY,MAC/CiH,KAAKI,QAAQ8I,mBACf,GAAC,CAAAvS,IAAA,SAAA6E,MAED,WACEwE,KAAK+H,QAAQhP,aAAa,UAAU,GACpCiH,KAAKiJ,WACLjJ,KAAKiI,iBAAiBjP,gBAAgB,UACtCgH,KAAKiI,iBAAiBL,QACtB5H,KAAKiI,iBAAiBlP,aAAa,WAAY,MAC/CiH,KAAKI,QAAQ+I,mBACf,GAAC,CAAAxS,IAAA,WAAA6E,MAED,WAAW,IAAAmF,EAAA,KACTX,KAAKI,QAAQoE,IAAIxE,KAAK4I,sBAAsB,GAC5C5I,KAAKkI,cAAcpR,SAAQ,SAACsS,GAC1BA,EAAa3S,iBAAiB,SAAS,kBAAMkK,EAAK0I,OAAO,GAC3D,GACF,GAAC,CAAA1S,IAAA,QAAA6E,MAED,WACEwE,KAAKqG,QAAQtN,aAAa,UAAU,EACtC,M,6EAAC,CAtFsB,E,8sBCJlB,IAAMxB,EAAY,WAGtB,O,EAFD,SAAAA,EAAY8O,I,4FAAS7G,CAAA,KAAAjI,GACnByI,KAAKqG,QAAUA,CACjB,E,EAAC,EAAA1P,IAAA,OAAA6E,MAED,WACOwE,KAAKqG,UAKkC,SAA1CrG,KAAKqG,QAAQhN,QAAQiQ,kBAGrBtJ,KAAKuJ,SAASvJ,KAAKqG,SAEvB,GAAC,CAAA1P,IAAA,WAAA6E,MAED,SAAShC,GAAwB,IAAAgQ,EAAd3T,EAAOyJ,UAAArF,OAAA,QAAAsF,IAAAD,UAAA,GAAAA,UAAA,GAAG,CAAC,EACtBmK,EAAcjQ,EAASsC,aAAa,YAgB1C,SAAS4N,IAAS,IAAAC,EACF,QAAdA,EAAA9T,EAAQ6T,cAAM,IAAAC,GAAdA,EAAgBnH,KAAKhJ,GAEhBiQ,GACHjQ,EAASR,gBAAgB,WAE7B,CApBKyQ,GACHjQ,EAAST,aAAa,WAAY,MAsBpCS,EAAS/C,iBAAiB,SAhB1B,WACE+C,EAAS/C,iBAAiB,OAAQiT,EAAQ,CAAEE,MAAM,GACpD,GAc4C,CAAEA,MAAM,IAG/B,QAArBJ,EAAA3T,EAAQgU,qBAAa,IAAAL,GAArBA,EAAuBhH,KAAKhJ,GAC5BA,EAASoO,OACX,I,gFAAC,CAjDsB,E,qtBCElB,IAAMlQ,EAAM,WAqChB,O,EApCD,SAAAA,EAAY2O,GAAS,IAAApG,EAAA,M,4FAAAT,CAAA,KAAA9H,GACnBsI,KAAKqG,QAAUA,EACfrG,KAAK8J,eACHzD,GAAWA,EAAQnP,cAAc,+BACnC8I,KAAK+J,aAAe9T,SAASiB,cAAc,iBAEtC8I,KAAKqG,SAAYrG,KAAK8J,gBAAmB9J,KAAK+J,eAInD/J,KAAKgK,sBAAwBhK,KAAK8J,eAAejT,iBAC/C,mDAGFiE,MAAMC,KAAKiF,KAAKgK,uBAAuBlT,SAAQ,SAACmT,GAC9CA,EAAqBxT,iBAAiB,SAAS,SAACC,GAC9C,IAAMwT,EAAUxT,EAAEyT,OAClBlK,EAAKmK,SAASF,EAAQ1O,OACtByE,EAAKoK,0BAA0BH,EACjC,GACF,IAEAlK,KAAKI,QAAU,IAAIV,EAAAA,EACfM,KAAKI,QAAQC,iBAAiB,aAChCL,KAAKsK,oBAEPtK,KAAKI,QAAQ5D,GAAG,gBAAgB,SAACC,GAC3B+D,OAAOC,OAAOhE,EAAM,eACA,IAAlBA,EAAK8N,SACPtK,EAAKqK,qBAELrK,EAAKG,QAAO,OAAQ,SACpBH,EAAKuK,qBAGX,IACF,G,EAAC,EAAA7T,IAAA,oBAAA6E,MAED,WAAoB,IAAAmF,EAAA,KAElB,GADAX,KAAK8J,eAAe9Q,gBAAgB,UAChCgH,KAAKI,QAAQqK,OAAO,SAAU,CAChC,IAAMC,EAAsB5P,MAAMC,KAAKiF,KAAKgK,uBAAuBW,MACjE,SAACT,GAAO,OAAKA,EAAQ1O,QAAUmF,EAAKP,QAAQwK,IAAI,QAAQ,IAEtDF,GACF1K,KAAKqK,0BAA0BK,EAEnC,CACF,GAAC,CAAA/T,IAAA,oBAAA6E,MAED,WACEwE,KAAK8J,eAAe/Q,aAAa,UAAU,EAC7C,GAAC,CAAApC,IAAA,WAAA6E,MAED,SAASqP,GACP,GAAc,UAAVA,EACF7K,KAAK+J,aAAa3T,UAAUQ,OAC1B,6BACA,iCAEG,GAAc,SAAViU,EACT7K,KAAK+J,aAAa3T,UAAUQ,OAAO,8BACnCoJ,KAAK+J,aAAa3T,UAAUC,IAAI,gCAC3B,IAAc,WAAVwU,EAIT,OAHA7K,KAAK+J,aAAa3T,UAAUQ,OAAO,4BACnCoJ,KAAK+J,aAAa3T,UAAUC,IAAI,6BAGlC,CACA2J,KAAKI,QAAQoE,IAAI,QAASqG,EAC5B,GAAC,CAAAlU,IAAA,4BAAA6E,MAED,SAA0BsP,GACxBhQ,MAAMC,KAAKiF,KAAKgK,uBAAuBlT,SAAQ,SAACoT,GAC1CA,EAAQ1O,QAAUsP,EAAgBtP,OACpC0O,EAAQ9T,UAAUQ,OAAO,qBACzBsT,EAAQnR,aAAa,gBAAgB,KAErCmR,EAAQ9T,UAAUC,IAAI,qBACtB6T,EAAQlR,gBAAgB,gBAE5B,GACF,M,6EAAC,CAnFgB,E,ysBCFZ,IAAMpB,EAAO,WA0DjB,O,EAzDD,SAAAA,EAAYyO,GAAS,IAAApG,EAAA,M,4FAAAT,CAAA,KAAA5H,GACnBoI,KAAKqG,QAAUA,EACfrG,KAAK+K,gBACH1E,GAAWA,EAAQnP,cAAc,uBACnC8I,KAAKsG,OACHtG,KAAK+K,iBACL/K,KAAK+K,gBAAgBlU,iBAAiB,sBACxCmJ,KAAKgL,YACH3E,GAAWA,EAAQnP,cAAc,4BACnC8I,KAAKiL,iBACHjL,KAAKgL,aACL3E,EAAQxP,iBAAiB,iCAC3BmJ,KAAKkL,SAAW7E,GAAWA,EAAQnP,cAAc,yBACjD8I,KAAKmL,mBACH9E,GAAWA,EAAQnP,cAAc,oCAGhC8I,KAAKqG,SACLrG,KAAK+K,iBACL/K,KAAKsG,QACLtG,KAAKgL,aACLhL,KAAKiL,kBACLjL,KAAKkL,UACLlL,KAAKmL,qBAKRnL,KAAKqG,QAAQjQ,UAAUC,IAAI,4BAE3B2J,KAAKoL,WAAapL,KAAKkL,SAAShU,cAAc,8BAC9C8I,KAAKqL,iBAAmBrL,KAAKkL,SAAShU,cACpC,oCAEF8I,KAAKsL,gBAAkBtL,KAAKkL,SAAShU,cACnC,mCAGF8I,KAAKuL,sBAAwBvL,KAAKmL,mBAAmBjU,cACnD,iCAEF8I,KAAKwL,sBAAwBxL,KAAKmL,mBAAmBjU,cACnD,iCAGF8I,KAAKqG,QAAQ5P,iBAAiB,oBAAoB,kBAChDwJ,EAAKwL,gBAAgB,IAGvBzL,KAAK0L,QACL1L,KAAK2L,eAAiB3L,KAAKqG,QAAQhN,QAAkB,WAAK,EACtD2G,KAAK2L,eACP3L,KAAK4L,aAEL5L,KAAK6L,UAAY7L,KAAKsG,OAAO,GAAG7M,GAChCuG,KAAK8L,SAAS9L,KAAK6L,YAEvB,E,EAAC,EAAAlV,IAAA,QAAA6E,MAED,WAAQ,IAAAuQ,EAAAC,EAAAC,EAAAC,EA4CJC,EAAAC,EAAAC,EA5CI1L,EAAA,KACNX,KAAKsG,OAAOxP,SAAQ,SAAC0P,GACnBA,EAAMzN,aAAa,SAAU,eAC7ByN,EAAMzN,aAAa,cAAe,OACpC,IACAiH,KAAKgL,YAAYhS,gBAAgB,UACjCgH,KAAKiL,iBAAiBnU,SAAQ,SAAC0P,GAC7BA,EAAM/P,iBAAiB,SAAS,WAC9BkK,EAAKmL,SAAStF,EAAM1K,aAAa,kBAAkB,GACnD6E,EAAKoK,gBAAgBnD,OACvB,GACF,IACA5H,KAAKqG,QAAQ5P,iBAAiB,WAAW,SAACC,GACxC,IAAI4V,GAA0B,EAC9B,OAAQ5V,EAAEC,KACR,IAAK,YACL,IAAK,UACHgK,EAAK4L,mBACLD,GAA0B,EAC1B,MACF,IAAK,aACL,IAAK,YACH3L,EAAK6L,eACLF,GAA0B,EAC1B,MACF,IAAK,OACH3L,EAAK8L,gBACLH,GAA0B,EAC1B,MACF,IAAK,MACH3L,EAAK+L,eACLJ,GAA0B,EAG1BA,IACF5V,EAAEiW,kBACFjW,EAAEkW,iBAEN,IACA5M,KAAKkL,SAASlS,gBAAgB,UAE5B/C,SAAS4W,mBACT7M,KAAKqL,kBACLrL,KAAKsL,kBAEgB,QAArBa,EAAAnM,KAAKqL,wBAAgB,IAAAc,GAArBA,EAAuB1V,iBAAiB,SAAS,kBAC/CkK,EAAKmM,iBAAiB,IAEJ,QAApBV,EAAApM,KAAKsL,uBAAe,IAAAc,GAApBA,EAAsB3V,iBAAiB,SAAS,kBAC9CkK,EAAKoM,gBAAgB,IAEF,QAArBV,EAAArM,KAAKqL,wBAAgB,IAAAgB,GAArBA,EAAuBrT,gBAAgB,WAE1B,QAAf+S,EAAA/L,KAAKoL,kBAAU,IAAAW,GAAfA,EAAiBtV,iBAAiB,SAAS,kBAAMkK,EAAKiL,WAAW,IAC1C,QAAvBI,EAAAhM,KAAKmL,0BAAkB,IAAAa,GAAvBA,EAAyBhT,gBAAgB,UACf,QAA1BiT,EAAAjM,KAAKuL,6BAAqB,IAAAU,GAA1BA,EAA4BxV,iBAAiB,SAAS,WACpDkK,EAAK4L,kBACP,IAC0B,QAA1BL,EAAAlM,KAAKwL,6BAAqB,IAAAU,GAA1BA,EAA4BzV,iBAAiB,SAAS,WACpDkK,EAAK6L,cACP,IAEAxM,KAAKgN,YAAc/W,SAASwP,cAAc,OAC1CzF,KAAKgN,YAAYjU,aAAa,YAAa,UAC3CiH,KAAKgN,YAAYjU,aAAa,cAAe,QAC7CiH,KAAKgN,YAAYjU,aAAa,QAAS,4BACvCiH,KAAK+K,gBAAgBkC,QAAQjN,KAAKgN,aAClChN,KAAK+K,gBAAgB3U,UAAUC,IAAI,uCACrC,GAAC,CAAAM,IAAA,YAAA6E,MAED,WAAY,IAAA0R,EACVlN,KAAK8L,SAAS,IACd9L,KAAK+K,gBAAgB3U,UAAUC,IAAI,kCACpB,QAAf6W,EAAAlN,KAAKoL,kBAAU,IAAA8B,GAAfA,EAAiBnU,aAAa,UAAU,EAC1C,GAAC,CAAApC,IAAA,WAAA6E,MAED,SAAS/B,GAAmB,IA6BD0T,EA7BCpM,EAAA,KAAf6G,EAAKtI,UAAArF,OAAA,QAAAsF,IAAAD,UAAA,IAAAA,UAAA,GAChBU,KAAKsG,OAAOxP,SAAQ,SAAC0P,GACf/M,GAAM+M,EAAM/M,KAAOA,GACrB+M,EAAMxN,gBAAgB,UACtBwN,EAAMxN,gBAAgB,eAClB4O,IACFpB,EAAMzN,aAAa,WAAY,KAC/ByN,EAAMoB,WAGRpB,EAAMzN,aAAa,SAAU,eAC7ByN,EAAMzN,aAAa,cAAe,SAEpCyN,EAAMzN,aAAa,WAAY,KACjC,IACAiH,KAAKiL,iBAAiBnU,SAAQ,SAAC0P,GACzB/M,GACE+M,EAAM1K,aAAa,mBAAqBrC,GAC1C+M,EAAMzN,aAAa,eAAgB,QAC/BgI,EAAKqM,gBACP5G,EAAM6G,eAAe,CAAEC,MAAO,aAMlC9G,EAAMzN,aAAa,eAAgB,QAEvC,IACIiH,KAAK2L,iBACQ,QAAfwB,EAAAnN,KAAKoL,kBAAU,IAAA+B,GAAfA,EAAiBnU,gBAAgB,WAEnCgH,KAAK+K,gBAAgB3U,UAAUQ,OAAO,kCACtCoJ,KAAK6L,UAAYpS,EACjBuG,KAAKgN,YAAYO,YAAc,SAAH7P,OAAYsC,KAAKwN,sBAAwB,EAAC,QAAA9P,OAAOsC,KAAKsG,OAAOrM,OAC3F,GAAC,CAAAtD,IAAA,sBAAA6E,MAED,WAAsB,IAAA6F,EAAA,KACpB,OAAOvG,MAAMC,KAAKiF,KAAKsG,QAAQ1I,WAC7B,SAAC4I,GAAK,OAAKA,EAAM/M,KAAO4H,EAAKwK,SAAS,GAE1C,GAAC,CAAAlV,IAAA,mBAAA6E,MAED,WACE,IAAIiS,EAAkBzN,KAAKwN,sBAAwB,EAC/CC,EAAkB,IACpBA,EAAkBzN,KAAKsG,OAAOrM,OAAS,GAEzC+F,KAAK8L,SAAS9L,KAAKsG,OAAOmH,GAAiBhU,GAC7C,GAAC,CAAA9C,IAAA,eAAA6E,MAED,WACE,IAAIiS,EAAkBzN,KAAKwN,sBAAwB,EAC/CC,GAAmBzN,KAAKsG,OAAOrM,SACjCwT,EAAkB,GAEpBzN,KAAK8L,SAAS9L,KAAKsG,OAAOmH,GAAiBhU,GAC7C,GAAC,CAAA9C,IAAA,gBAAA6E,MAED,WACEwE,KAAK8L,SAAS9L,KAAKsG,OAAO,GAAG7M,GAC/B,GAAC,CAAA9C,IAAA,eAAA6E,MAED,WACEwE,KAAK8L,SAAS9L,KAAKsG,OAAOtG,KAAKsG,OAAOrM,OAAS,GAAGR,GACpD,GAAC,CAAA9C,IAAA,eAAA6E,MAED,WACE,OAAOvF,SAASyX,iBAClB,GAAC,CAAA/W,IAAA,kBAAA6E,MAED,WACEwE,KAAKqG,QAAQsH,oBACb3N,KAAKyL,iBACLzL,KAAKqG,QAAQuB,OACf,GAAC,CAAAjR,IAAA,iBAAA6E,MAED,WACEvF,SAAS2X,iBACT5N,KAAKyL,gBACP,GAAC,CAAA9U,IAAA,iBAAA6E,MAED,WACMwE,KAAKoN,gBACPpN,KAAKqL,iBAAiBtS,aAAa,UAAU,GAC7CiH,KAAKsL,gBAAgBtS,gBAAgB,YAErCgH,KAAKsL,gBAAgBvS,aAAa,UAAU,GAC5CiH,KAAKqL,iBAAiBrS,gBAAgB,UAE1C,I,gFAAC,CAlOiB,E,8sBCAb,IAAMlB,EAAY,WAgDtB,O,EA/CD,SAAAA,EAAYuO,GAAS,IAAApG,EAAA,M,4FAAAT,CAAA,KAAA1H,GACnBkI,KAAKqG,QAAUA,EACfrG,KAAK6N,cACHxH,GAAWA,EAAQnP,cAAc,yCACnC8I,KAAKgL,YACH3E,GACAA,EAAQnP,cAAc,0CACxB8I,KAAK8N,eACHzH,GACAA,EAAQnP,cAAc,8CACxB8I,KAAK+N,OACH1H,IACErG,KAAKgL,aACLhL,KAAKgL,YAAYnU,iBAAiB,mBACjCmJ,KAAK8N,gBACJ9N,KAAK8N,eAAejX,iBAAiB,mBAC3CmJ,KAAKgO,YAAa,EAClBhO,KAAKiO,IAAM1X,OAAO2C,WAAW,qBAG1B8G,KAAKqG,SACLrG,KAAK6N,gBACJ7N,KAAKgL,aAAgBhL,KAAK8N,kBAK9B9N,KAAK6N,cAAc7U,gBAAgB,UACnCgH,KAAKkO,YACLlO,KAAK6N,cAAcpX,iBAAiB,SAAS,kBAC3CwJ,EAAKkO,wBAAwB,IAE3B,qBAAsBnO,KAAKiO,IAC7BjO,KAAKiO,IAAIxX,iBAAiB,UAAU,kBAAMwJ,EAAKiO,WAAW,IAE1DlO,KAAKiO,IAAIG,aAAY,kBAAMnO,EAAKiO,WAAW,IAG7ClO,KAAKqG,QAAQ5P,iBAAiB,SAAS,SAACC,GACvB,WAAXA,EAAE2X,MAAqBpO,EAAKgO,IAAI7U,SAC9B6G,EAAK+N,aACP/N,EAAK+N,YAAa,EAClB/N,EAAKiO,YACLjO,EAAK4N,cAAcjG,QAGzB,IACF,G,EAAC,EAAAjR,IAAA,yBAAA6E,MAED,WACEwE,KAAKgO,YAAchO,KAAKgO,WACxBhO,KAAKkO,WACP,GAAC,CAAAvX,IAAA,YAAA6E,MAED,WACMwE,KAAKiO,IAAI7U,QACP4G,KAAKgO,WACPhO,KAAKsO,OAELtO,KAAKuO,OAGPvO,KAAKsO,MAET,GAAC,CAAA3X,IAAA,OAAA6E,MAED,WACMwE,KAAKgL,cACPhL,KAAKgL,YAAYwD,QAAS,EAC1BxO,KAAKgL,YAAYjS,aAAa,cAAe,SAE3CiH,KAAK8N,iBACP9N,KAAK8N,eAAeU,QAAS,EAC7BxO,KAAK8N,eAAe/U,aAAa,cAAe,SAElDiH,KAAK6N,cAAc9U,aAAa,gBAAiB,SACjDiH,KAAK6N,cAAc9U,aAAa,QAAS,aACzCiH,KAAK6N,cAAczX,UAAUQ,OAC3B,gDAEF,IAAK,IAAIoD,EAAI,EAAGA,EAAIgG,KAAK+N,OAAO9T,OAAQD,IACtCgG,KAAK+N,OAAO/T,GAAGjB,aAAa,WAAY,KAE5C,GAAC,CAAApC,IAAA,OAAA6E,MAED,WACMwE,KAAKgL,cACPhL,KAAKgL,YAAYwD,QAAS,EAC1BxO,KAAKgL,YAAYjS,aAAa,cAAe,UAE3CiH,KAAK8N,iBACP9N,KAAK8N,eAAeU,QAAS,EAC7BxO,KAAK8N,eAAe/U,aAAa,cAAe,UAElDiH,KAAK6N,cAAc9U,aAAa,gBAAiB,QACjDiH,KAAK6N,cAAc9U,aAAa,QAAS,cACzCiH,KAAK6N,cAAczX,UAAUC,IAC3B,gDAEF,IAAK,IAAI2D,EAAI,EAAGA,EAAIgG,KAAK+N,OAAO9T,OAAQD,IACtCgG,KAAK+N,OAAO/T,GAAGjB,aAAa,WAAY,IAE5C,M,6EAAC,CAvGsB,E,wsBCAlB,IAAMf,EAAM,WAsChB,O,EArCD,SAAAA,EAAYqO,GAAS,IAAApG,EAAA,M,4FAAAT,CAAA,KAAAxH,GACnBgI,KAAKqG,QAAUA,EACfrG,KAAK6N,cACHxH,GAAWA,EAAQnP,cAAc,kCACnC8I,KAAKgL,YACH3E,GAAWA,EAAQnP,cAAc,2BACnC8I,KAAK+N,OACH1H,GACArG,KAAKgL,aACLhL,KAAKgL,YAAYnU,iBAAiB,kBACpCmJ,KAAKgO,YAAa,EAClBhO,KAAKiO,IAAM1X,OAAO2C,WAAW,qBAExB8G,KAAKqG,SAAYrG,KAAK6N,eAAkB7N,KAAKgL,cAIlDhL,KAAK6N,cAAc7U,gBAAgB,UACnCgH,KAAKkO,YACLlO,KAAK6N,cAAcpX,iBAAiB,SAAS,kBAC3CwJ,EAAKkO,wBAAwB,IAE3B,qBAAsBnO,KAAKiO,IAC7BjO,KAAKiO,IAAIxX,iBAAiB,UAAU,kBAAMwJ,EAAKiO,WAAW,IAE1DlO,KAAKiO,IAAIG,aAAY,kBAAMnO,EAAKiO,WAAW,IAG7ClO,KAAKqG,QAAQ5P,iBAAiB,SAAS,SAACC,GACvB,WAAXA,EAAE2X,MACApO,EAAK+N,YAAc/N,EAAKgO,IAAI7U,UAC9B6G,EAAK+N,YAAa,EAClB/N,EAAKiO,YACLjO,EAAK4N,cAAcjG,QAGzB,IACF,G,EAAC,EAAAjR,IAAA,yBAAA6E,MAED,WACEwE,KAAKgO,YAAchO,KAAKgO,WACxBhO,KAAKkO,WACP,GAAC,CAAAvX,IAAA,YAAA6E,MAED,WACMwE,KAAKiO,IAAI7U,QACP4G,KAAKgO,WACPhO,KAAKsO,OAELtO,KAAKuO,OAGPvO,KAAKsO,MAET,GAAC,CAAA3X,IAAA,OAAA6E,MAED,WACEwE,KAAKgL,YAAY5U,UAAUC,IAAI,gCAC/B2J,KAAKgL,YAAYhS,gBAAgB,UACjCgH,KAAKgL,YAAYjS,aAAa,cAAe,SAC7CiH,KAAK6N,cAAc9U,aAAa,gBAAiB,QACjDiH,KAAK6N,cAAc9U,aAAa,QAAS,cACzCiH,KAAK6N,cAAczX,UAAUC,IAAI,yCAEjC,IAAK,IAAI2D,EAAI,EAAGA,EAAIgG,KAAK+N,OAAO9T,OAAQD,IACtCgG,KAAK+N,OAAO/T,GAAGjB,aAAa,WAAY,IAE5C,GAAC,CAAApC,IAAA,OAAA6E,MAED,WACEwE,KAAKgL,YAAY5U,UAAUQ,OAAO,gCAClCoJ,KAAKgL,YAAYwD,QAAS,EAC1BxO,KAAKgL,YAAYjS,aAAa,cAAe,QAC7CiH,KAAK6N,cAAc9U,aAAa,gBAAiB,SACjDiH,KAAK6N,cAAc9U,aAAa,QAAS,aACzCiH,KAAK6N,cAAczX,UAAUQ,OAC3B,yCAGF,IAAK,IAAIoD,EAAI,EAAGA,EAAIgG,KAAK+N,OAAO9T,OAAQD,IACtCgG,KAAK+N,OAAO/T,GAAGjB,aAAa,WAAY,KAE5C,M,6EAAC,CAnFgB,E,stBCEZ,IAAMb,EAAO,WA6BjB,O,EA5BD,SAAAA,EAAYmO,I,4FAAS7G,CAAA,KAAAtH,GACnB8H,KAAKqG,QAAUA,EACfrG,KAAKyO,cACHpI,GAAWA,EAAQnP,cAAc,+BAEnC8I,KAAK0O,kBACH1O,KAAKyO,eACLzO,KAAKyO,cAAcvX,cAAc,mCAEnC8I,KAAK2O,YACHtI,GAAWA,EAAQnP,cAAc,4BACnC8I,KAAK4O,kBAAmB,EAGrB5O,KAAKqG,SACLrG,KAAKyO,eACLzO,KAAK0O,mBACL1O,KAAK2O,cAKR3O,KAAK6O,UACH7O,KAAKqG,QAAQhN,QAAQyV,sBAAwB,kBAC/C9O,KAAK+O,WACH/O,KAAKqG,QAAQhN,QAAQ2V,uBAAyB,mBAEhDhP,KAAKxI,OACP,E,EAAC,EAAAb,IAAA,OAAA6E,MAED,WAAO,IAAAyE,EAAA,KACCqH,EAAW,eAAH5J,QAAkB6J,EAAAA,EAAAA,MAEhCvH,KAAK0O,kBAAkB1V,gBAAgB,UACvCgH,KAAK0O,kBAAkB3V,aAAa,gBAAiBuO,GACrDtH,KAAK0O,kBAAkB1T,UAAYgF,KAAK6O,UACxC7O,KAAK0O,kBAAkBjY,iBAAiB,SAAS,kBAC/CwJ,EAAKgP,kBAAkB,IAGzBjP,KAAK2O,YAAY5V,aAAa,KAAMuO,GACpCtH,KAAK2O,YAAY5V,aAAa,SAAU,eAExCiH,KAAK2O,YAAYlY,iBAAiB,WAAW,SAACC,GAErC,WADCA,EAAEC,MAENsJ,EAAKgP,mBACLhP,EAAKyO,kBAAkB9G,QAG7B,GACF,GAAC,CAAAjR,IAAA,mBAAA6E,MAED,WACEwE,KAAK4O,kBAAoB5O,KAAK4O,iBAC1B5O,KAAK4O,kBACP5O,KAAK0O,kBAAkB3V,aAAa,iBAAiB,GACrDiH,KAAK0O,kBAAkB1T,UAAYgF,KAAK+O,WACxC/O,KAAK2O,YAAY3V,gBAAgB,YAEjCgH,KAAK0O,kBAAkB3V,aAAa,iBAAiB,GACrDiH,KAAK0O,kBAAkB1T,UAAYgF,KAAK6O,UACxC7O,KAAK2O,YAAY5V,aAAa,SAAU,eAE5C,I,gFAAC,CAjEiB,E,0sBCFb,IAAMX,EAAQ,WAelB,O,EAZD,SAAAA,EAAYiO,GAAS,I,MAAApG,EAAA,M,4FAAAT,CAAA,KAAApH,G,EAAA,K,GAFG,G,MAEH,4B,wFACnB4H,KAAKqG,QAAUA,EACfrG,KAAKkP,gBAAkB7I,EAAQvK,aAAa,QAAQsM,MAAM,KAAK+G,MAC/DnP,KAAKoP,eACH/I,GACArG,KAAKkP,iBACLjZ,SAASoZ,eAAerP,KAAKkP,iBAE1BlP,KAAKqG,SAAYrG,KAAKoP,gBAG3BpP,KAAKqG,QAAQ5P,iBAAiB,SAAS,kBAAMwJ,EAAKqP,oBAAoB,GACxE,G,EAAC,EAAA3Y,IAAA,qBAAA6E,MAED,WAAqB,IAAAmF,EAAA,KACdX,KAAKoP,eAAetT,aAAa,cACpCkE,KAAKoP,eAAerW,aAAa,WAAY,MAC7CiH,KAAKoP,eAAehZ,UAAUC,IAAI,yBAE7B2J,KAAKuP,wBACRvP,KAAKoP,eAAe3Y,iBAAiB,QAAQ,kBAC3CkK,EAAK6O,uBAAuB,IAE9BxP,KAAKuP,uBAAwB,IAIjCvP,KAAKoP,eAAexH,OACtB,GAAC,CAAAjR,IAAA,wBAAA6E,MAED,WACEwE,KAAKoP,eAAepW,gBAAgB,YACpCgH,KAAKoP,eAAehZ,UAAUQ,OAAO,wBACvC,M,6EAAC,CApCkB,E,qsBCAd,IAAM0B,EAAI,WAsBd,O,EArBD,SAAAA,EAAY+N,I,4FAAS7G,CAAA,KAAAlH,GACnB0H,KAAKqG,QAAUA,EACfrG,KAAKyP,SAAWpJ,GAAWA,EAAQnP,cAAc,mBACjD8I,KAAK0P,kBACHrJ,GACArG,KAAKyP,UACLzP,KAAKyP,SAAS5Y,iBAAiB,qBACjCmJ,KAAK2P,UAAYtJ,GAAWA,EAAQxP,iBAAiB,mBAGlDmJ,KAAKqG,SACLrG,KAAKyP,UACLzP,KAAK0P,mBACL1P,KAAK2P,WACN3P,KAAK0P,kBAAkBzV,SAAW+F,KAAK2P,UAAU1V,SAKnD+F,KAAK4P,gBAAkB,EACvB5P,KAAKxI,OACP,E,EAAC,EAAAb,IAAA,OAAA6E,MAED,WAAO,IAAAyE,EAAA,KACLD,KAAKqG,QAAQjQ,UAAUC,IAAI,yBAC3B2J,KAAKyP,SAASzW,gBAAgB,UAC9BgH,KAAK0P,kBAAkB5Y,SAAQ,SAAC+Y,GAC9B,IAAMC,EAAaD,EAAiB/T,aAAa,iBACjD+T,EAAiB9W,aAAa,iBAAiB,GAC/C,IAAMgX,EAAY9Z,SAASoZ,eAAeS,GAC1CC,EAAUhX,aAAa,kBAAmB8W,EAAiBpW,IAC3DsW,EAAUhX,aAAa,OAAQ,YAC/B8W,EAAiBpZ,iBACf,SACA,SAACC,GAAC,OAAKuJ,EAAK+P,oBAAoBtZ,EAAE,IAClC,EAEJ,IACAsJ,KAAKiQ,iBAAiBjQ,KAAK4P,iBAC3B5P,KAAKqG,QAAQ5P,iBAAiB,WAAW,SAACC,GAAC,OACzCuJ,EAAKiQ,sBAAsBxZ,EAAE,GAEjC,GAAC,CAAAC,IAAA,sBAAA6E,MAED,SAAoB2U,GAClBA,EAAmBvD,iBACnB,IAAMwD,EACJD,EAAmBE,cAAcvU,aAAa,iBAChDkE,KAAKsQ,cAAcF,EACrB,GAAC,CAAAzZ,IAAA,wBAAA6E,MAED,SAAsB+U,GACpB,IAAIjE,GAA0B,EAC9B,OAAQiE,EAAqB5Z,KAC3B,IAAK,YACL,IAAK,UACHqJ,KAAKwQ,cACLlE,GAA0B,EAC1B,MACF,IAAK,aACL,IAAK,YACHtM,KAAKyQ,UACLnE,GAA0B,EAC1B,MACF,IAAK,OACHtM,KAAKiQ,iBAAiB,GAAG,GACzB3D,GAA0B,EAC1B,MACF,IAAK,MACHtM,KAAKiQ,iBAAiBjQ,KAAK0P,kBAAkBzV,OAAS,GAAG,GACzDqS,GAA0B,EAK1BA,IACFiE,EAAqB5D,kBACrB4D,EAAqB3D,iBAEzB,GAAC,CAAAjW,IAAA,UAAA6E,MAED,WACMwE,KAAK4P,gBAAkB5P,KAAK0P,kBAAkBzV,OAAS,EACzD+F,KAAKiQ,iBAAiBjQ,KAAK4P,gBAAkB,GAAG,GAEhD5P,KAAKiQ,iBAAiB,GAAG,EAE7B,GAAC,CAAAtZ,IAAA,cAAA6E,MAED,WACMwE,KAAK4P,iBAAmB,EAC1B5P,KAAKiQ,iBAAiBjQ,KAAK4P,gBAAkB,GAAG,GAEhD5P,KAAKiQ,iBAAiBjQ,KAAK0P,kBAAkBzV,OAAS,GAAG,EAE7D,GAAC,CAAAtD,IAAA,mBAAA6E,MAED,SAAiBkV,GAA+B,IAAA/P,EAAA,KAArBgQ,EAAWrR,UAAArF,OAAA,QAAAsF,IAAAD,UAAA,IAAAA,UAAA,GACpCU,KAAK4P,gBAAkBc,EACvB1Q,KAAK0P,kBAAkB5Y,SAAQ,SAAC+Y,EAAkBpU,GAC5CA,IAAUkF,EAAKiP,iBACjBC,EAAiB9W,aAAa,iBAAiB,GAC/C8W,EAAiB9W,aAAa,WAAY,KACtC4X,GACFd,EAAiBjI,UAGnBiI,EAAiB9W,aAAa,iBAAiB,GAC/C8W,EAAiB9W,aAAa,WAAY,MAE9C,IACAiH,KAAK2P,UAAU7Y,SAAQ,SAAC8Z,EAAUnV,GAC5BA,IAAUkF,EAAKiP,iBACjBgB,EAAS5X,gBAAgB,UACzB4X,EAAS7X,aAAa,WAAY,OAElC6X,EAAS7X,aAAa,SAAU,eAChC6X,EAAS7X,aAAa,WAAY,MAEtC,GACF,GAAC,CAAApC,IAAA,gBAAA6E,MAED,SAAcqV,GACZ,IAAMpV,EAAQX,MAAMC,KAAKiF,KAAK2P,WAAW/R,WACvC,SAACgT,GAAQ,OAAKA,EAAS9U,aAAa,QAAU+U,CAAQ,IAExD7Q,KAAKiQ,iBAAiBxU,EACxB,I,gFAAC,CAhIc,E,2sBCAV,IAAMjD,EAAS,WA+BnB,O,EA9BD,SAAAA,EAAY6N,GAAS,IAAApG,EAAA,M,4FAAAT,CAAA,KAAAhH,GACnBwH,KAAKqG,QAAUA,EACfrG,KAAK8Q,OAASzK,GAAWA,EAAQnP,cAAc,mBAE1C8I,KAAKqG,SAAYrG,KAAK8Q,QAIc,aAArC9Q,KAAK8Q,OAAOhV,aAAa,UAC3BkE,KAAK+Q,kBAAoB9a,SAASwP,cAAc,OAChDzF,KAAK+Q,kBAAkB3a,UAAUC,IAAI,0BAErC2J,KAAKgR,yBAA2B/a,SAASwP,cAAc,UACvDzF,KAAKgR,yBAAyBjY,aAAa,OAAQ,UACnDiH,KAAKgR,yBAAyB5a,UAAUC,IACtC,aACA,oBACA,yBAEF2J,KAAKiR,iCAELjR,KAAK+Q,kBAAkBlL,YAAY7F,KAAK8Q,QACxC9Q,KAAK+Q,kBAAkBlL,YAAY7F,KAAKgR,0BACxChR,KAAKqG,QAAQR,YAAY7F,KAAK+Q,mBAE9B/Q,KAAKgR,yBAAyBva,iBAAiB,SAAS,WACtDwJ,EAAKiR,qBACLjR,EAAK6Q,OAAOlJ,OACd,IAEJ,G,EAAC,EAAAjR,IAAA,qBAAA6E,MAED,WAC2C,aAArCwE,KAAK8Q,OAAOhV,aAAa,QAC3BkE,KAAK8Q,OAAO/X,aAAa,OAAQ,QAEjCiH,KAAK8Q,OAAO/X,aAAa,OAAQ,YAEnCiH,KAAKiR,gCACP,GAAC,CAAAta,IAAA,iCAAA6E,MAED,WAC2C,aAArCwE,KAAK8Q,OAAOhV,aAAa,SAC3BkE,KAAKgR,yBAAyBzV,UAAY,02BAC1CyE,KAAKgR,yBAAyBjY,aAAa,QAAS,iBACpDiH,KAAKgR,yBAAyBjY,aAAa,aAAc,mBAEzDiH,KAAKgR,yBAAyBzV,UAAY,mjCAC1CyE,KAAKgR,yBAAyBjY,aAAa,QAAS,iBACpDiH,KAAKgR,yBAAyBjY,aAAa,aAAc,iBAE7D,M,6EAAC,CApDmB,E,uyECAtBxC,OAAO4a,mBAAqB5a,OAAO4a,oBAAsB,KACzD5a,OAAO6a,wBAA0B7a,OAAO6a,yBAA2B,KAE5D,IAAMC,EAAkB,WAW7B,OAAAhS,GAPA,SAAAgS,IACE,GADY7R,EAAA,KAAA6R,GAAA5R,EAAA,cAHL,CAAC,GAACA,EAAA,qBACK,CAAC,GAGXlJ,OAAO6a,wBACT,OAAO7a,OAAO6a,wBAEhB7a,OAAO6a,wBAA0BpR,IACnC,GAEA,EAAArJ,IAAA,KAAA6E,MAKA,SAAGE,EAAO4V,GACH9Q,OAAOC,OAAOT,KAAK3D,OAAQX,KAC9BsE,KAAK3D,OAAOX,GAAS,IAEvBsE,KAAK3D,OAAOX,GAAS,GAAHgC,OAAAY,EAAO0B,KAAK3D,OAAOX,IAAM,CAAE4V,GAC/C,GAAC,CAAA3a,IAAA,OAAA6E,MAED,SAAKE,EAAO4V,GACL9Q,OAAOC,OAAOT,KAAKuR,cAAe7V,KACrCsE,KAAKuR,cAAc7V,GAAS,IAE9BsE,KAAKuR,cAAc7V,GAAS,GAAHgC,OAAAY,EAAO0B,KAAKuR,cAAc7V,IAAM,CAAE4V,GAC7D,GAEA,CAAA3a,IAAA,UAAA6E,MACA,SAAQE,GAAkB,IAAAuE,EAAA,KAAXxD,EAAI6C,UAAArF,OAAA,QAAAsF,IAAAD,UAAA,GAAAA,UAAA,GAAG,CAAC,EAMrB,GALIkB,OAAOC,OAAOT,KAAK3D,OAAQX,IAC7BsE,KAAK3D,OAAOX,GAAO5E,SAAQ,SAAC0a,GAAc,OACxCA,EAAehP,KAAKvC,EAAMxD,EAAK,IAG/B+D,OAAOC,OAAOT,KAAKuR,cAAe7V,GACpC,IAAK,IAAI1B,EAAIgG,KAAKuR,cAAc7V,GAAOzB,OAAS,EAAGD,GAAK,EAAGA,IAClCgG,KAAKuR,cAAc7V,GAAO1B,GAClCwI,KAAKxC,KAAMvD,GAC1BuD,KAAKuR,cAAc7V,GAAO+V,OAAOzX,EAAG,EAG1C,IAAC,CA5C4B,GAqDV0F,EAAO,WA4D1B,OAAAL,GAlCA,SAAAK,IAA0B,IAAd7J,EAAOyJ,UAAArF,OAAA,QAAAsF,IAAAD,UAAA,GAAAA,UAAA,GAAG,CAAC,EAACE,EAAA,KAAAE,GAzBxBD,EAAA,qBACgB,IAChBA,EAAA,cACS,IACTA,EAAA,YACO,IACPA,EAAA,eACS,GACTA,EAAA,mBACc,IACdA,EAAA,cACS,MACTA,EAAA,kBACa,MAaX,IAAAiS,EAQI7b,EAPFsS,cAAAA,OAAa,IAAAuJ,EAAG,GAAEA,EAAAC,EAOhB9b,EANF0S,OAAAA,OAAM,IAAAoJ,EAAG,KAAIA,EAAAC,EAMX/b,EALF2S,KAAAA,OAAI,IAAAoJ,EAAG,KAAIA,EAAAC,EAKThc,EAJF4S,OAAAA,OAAM,IAAAoJ,GAAOA,EAAAC,EAIXjc,EAHF6S,YAAAA,OAAW,IAAAoJ,EAAG,iBAAgBA,EAAAC,EAG5Blc,EAFF8S,YAAAA,OAAW,IAAAoJ,GAAQA,EAAAC,EAEjBnc,EADFoc,WAAAA,OAAU,IAAAD,EAAG,QAAQA,EAEvB,GAAIrJ,EACF3I,KAAKkS,uBACA,GAAI3b,OAAO4a,mBAChB,OAAO5a,OAAO4a,mBAEhBnR,KAAKmI,cAAgBA,EAEnBnI,KAAKuI,OADQ,OAAXA,EACYtS,SAASE,gBAAgBkD,QAAQ8Y,kBAAoB,GAErD5J,EAGdvI,KAAKwI,KADM,OAATA,EACUvS,SAASE,gBAAgBkD,QAAQ+Y,gBAAkB,IAEnD5J,EAEdxI,KAAKyI,OAASA,EACdzI,KAAK0I,YAAcA,EACnB1I,KAAKiS,WAAaA,EAClBjS,KAAK3D,OAAS,IAAIgV,EAClBrR,KAAKxI,OACLjB,OAAO4a,mBAAqBnR,IAC9B,GAEA,EAAArJ,IAAA,OAAA6E,MACA,WACEwE,KAAKqS,aAAYxQ,EAAAA,EAAAA,EAAC,CAAC,EACdrB,OAAOyB,YACRjC,KAAKmI,cAAchG,KAAI,SAACmQ,GAAC,MAAK,CAACA,EAAEC,eAAe,EAAM,MACvD,IACDC,OAAO,EACPjI,UAAU,EACVkI,WAAW,GACRzS,KAAKO,UAAQ,IAChBmS,WAAW,IAEf,GAAC,CAAA/b,IAAA,kBAAA6E,MAED,WACEjF,OAAO4a,mBAAqB,IAC9B,GAEA,CAAAxa,IAAA,MAAAiU,IACA,WACE,IAAM+H,EAAe,CAAC,EAUtB,OATA1c,SAAS2c,OACNxK,MAAM,MACNjB,QAAO,SAACkB,GAAC,OAAKA,CAAC,IACfvR,SAAQ,SAAC8b,GACR,IAAMC,EAAQD,EAAO/V,OAAOuL,MAAM,KAC9ByK,EAAM,KACRF,EAAaE,EAAM,IAAMA,EAAM,GAEnC,IACKF,CACT,GAEA,CAAAhc,IAAA,WAAAiU,IACA,WACE,IACE,OAAOkI,KAAKC,MAAM/S,KAAK4K,IAAI5K,KAAK0I,cAAgB,KAClD,CAAE,MAAOhS,GACP,MAAO,CAAC,CACV,CACF,GAEA,CAAAC,IAAA,SAAA6E,MAKA,SAAO7E,GACL,OAAO6J,OAAOC,OAAOT,KAAKgG,IAAKrP,EACjC,GAEA,CAAAA,IAAA,WAAA6E,MAMA,SAAS7E,EAAK6E,GACZ,OAAOwE,KAAK4K,IAAIjU,IAAQ6E,CAC1B,GAEA,CAAA7E,IAAA,MAAA6E,MAKA,SAAI7E,GACF,OAAOqJ,KAAKyK,OAAO9T,GAAOqc,mBAAmBhT,KAAKgG,IAAIrP,IAAQ,IAChE,GAEA,CAAAA,IAAA,MAAA6E,MAaA,SAAI7E,EAAK6E,GAAqB,IAAd3F,EAAOyJ,UAAArF,OAAA,QAAAsF,IAAAD,UAAA,GAAAA,UAAA,GAAG,CAAC,EACzB2T,EAOIpd,EANFqd,OAAAA,OAAM,IAAAD,EAAGjT,KAAKiS,WAAUgB,EAAAE,EAMtBtd,EALFud,SAAAA,OAAQ,IAAAD,EAAG,MAAKA,EAAAE,EAKdxd,EAJF0S,OAAAA,OAAM,IAAA8K,EAAGrT,KAAKuI,OAAM8K,EAAAC,EAIlBzd,EAHF2S,KAAAA,OAAI,IAAA8K,EAAGtT,KAAKwI,KAAI8K,EAAAC,EAGd1d,EAFF4S,OAAAA,OAAM,IAAA8K,EAAGvT,KAAKyI,OAAM8K,EAAAC,EAElB3d,EADF4d,QAAAA,OAAO,IAAAD,GAAQA,EAEjB,GAAK7c,EAAL,CAGA,IAAMic,EAAS,GAAHlV,OAAMgW,mBAAmB/c,GAAI,KAAA+G,OAAIgW,mBAAmBlY,GAAM,KAAAkC,OACpE6K,EAAS,WAAH7K,OAAc6K,EAAM,MAAO,GAAE,cAAA7K,OACxB0V,EAAQ,WAAA1V,OAAU8K,GAAI9K,OAAI+V,EAAkC,GAAxB,aAAH/V,OAAgBwV,IAAaxV,OACzE+K,EAAS,WAAa,IAExBxS,SAAS2c,OAASA,EAClB5S,KAAK3D,OAAOsX,QAAQ,YAAa,CAC/Bhd,IAAAA,EACA6E,MAAAA,EACA0X,OAAAA,EACA1K,KAAAA,EACA4K,SAAAA,EACA7K,OAAAA,EACAE,OAAAA,EACAgL,QAAAA,EACAb,OAAAA,GAhBF,CAkBF,GAEA,CAAAjc,IAAA,SAAA6E,MAKA,SAAO7E,GAAgC,IAC/Bd,EAAU,CAAEqd,QAAS,EAAG1K,KADhBlJ,UAAArF,OAAA,QAAAsF,IAAAD,UAAA,GAAAA,UAAA,GAAG,IACmBiJ,QADRjJ,UAAArF,OAAA,QAAAsF,IAAAD,UAAA,GAAAA,UAAA,GAAG,YACuBC,GACtDS,KAAKwE,IAAI7N,EAAK,GAAId,GAClBmK,KAAK3D,OAAOsX,QAAQ,eAAc9R,EAAA,CAAIlL,IAAAA,GAAQd,GAChD,GAEA,CAAAc,IAAA,YAAA6E,MAGA,WAAqC,IAAAmF,EAAA,KAA3B6H,EAAIlJ,UAAArF,OAAA,QAAAsF,IAAAD,UAAA,GAAAA,UAAA,GAAG,IAAKiJ,EAAMjJ,UAAArF,OAAA,QAAAsF,IAAAD,UAAA,GAAAA,UAAA,GAAG,KAC7BkB,OAAOuF,KAAK/F,KAAKgG,KAAKlP,SAAQ,SAAC8b,GAC7BjS,EAAI,OAAQiS,EAAQpK,EAAMD,EAC5B,IACAvI,KAAK3D,OAAOsX,QAAQ,mBAAoB,CAAEnL,KAAAA,EAAMD,OAAAA,GAClD,GAEA,CAAA5R,IAAA,eAAA6E,MAIA,SAAa8M,GACXtI,KAAK4T,UAAUtL,GAAQ,GACvBtI,KAAK3D,OAAOsX,QAAQ,eAAgBrL,GACpCtI,KAAK3D,OAAOsX,QAAQ,eAAclU,EAAA,GAAK6I,GAAS,GAClD,GAEA,CAAA3R,IAAA,eAAA6E,MAIA,SAAa8M,GACXtI,KAAK4T,UAAUtL,GAAQ,GACvBtI,KAAK3D,OAAOsX,QAAQ,eAAgBrL,GACpCtI,KAAK3D,OAAOsX,QAAQ,eAAclU,EAAA,GAAK6I,GAAS,GAClD,GAEA,CAAA3R,IAAA,YAAA6E,MAKA,SAAU8M,EAAQuL,GACD,cAAXvL,IAGJtI,KAAKqS,aAAYxQ,EAAAA,EAAC,CAAC,EACd7B,KAAKO,UAAQ,GAAAd,EAAAA,EAAA,GACf6I,EAASuL,GAAQ,aACP,KAEb7T,KAAK3D,OAAOsX,QAAQ,eAAclU,EAAA,GAAK6I,EAASuL,IAClD,GAEA,CAAAld,IAAA,oBAAA6E,MAGA,WACE,IAAMsY,EAActT,OAAOyB,YACzBzB,OAAOuF,KAAK/F,KAAKO,UAAU4B,KAAI,SAACmQ,GAAC,MAAK,CAACA,EAAEC,eAAe,EAAK,KAE/DvS,KAAKqS,aAAayB,GAClB9T,KAAK3D,OAAOsX,QAAQ,qBACpB3T,KAAK3D,OAAOsX,QAAQ,eAAgBG,EACtC,GAEA,CAAAnd,IAAA,oBAAA6E,MAGA,WACE,IAAMsY,EAAWjS,EAAAA,EAAA,GACZrB,OAAOyB,YACRzB,OAAOuF,KAAK/F,KAAKO,UAAU4B,KAAI,SAACmQ,GAAC,MAAK,CAACA,EAAEC,eAAe,EAAM,MAC/D,IACDG,WAAW,IAEb1S,KAAKqS,aAAayB,GAClB9T,KAAK3D,OAAOsX,QAAQ,qBACpB3T,KAAK3D,OAAOsX,QAAQ,eAAgBG,EACtC,GAEA,CAAAnd,IAAA,eAAA6E,MAIA,SAAa+E,GACXP,KAAKwE,IAAIxE,KAAK0I,YAAaoK,KAAKiB,UAAUxT,GAAW,CACnD2S,OAAQ,SAEZ,GAEA,CAAAvc,IAAA,mBAAA6E,MAKA,SAAiB8M,GACf,OAAO9H,OAAOC,OAAOT,KAAKO,SAAU+H,IACN,IAA1BtI,KAAKO,SAAS+H,GACd,IACN,GAEA,CAAA3R,IAAA,KAAA6E,MAKA,SAAGE,EAAO4V,GACRtR,KAAK3D,OAAOG,GAAGd,EAAO4V,EACxB,GAEA,CAAA3a,IAAA,OAAA6E,MAKA,SAAKE,EAAO4V,GACVtR,KAAK3D,OAAOuN,KAAKlO,EAAO4V,EAC1B,IAAC,CAxSyB,E,iCChD5B,QARe,WAAH,OACT,CAAC,MAAQ,KAAO,KAAO,KAAO,MAAMjW,QAAQ,UAAU,SAAC2Y,GAAC,OAErDA,EACCC,OAAOC,gBAAgB,IAAIC,WAAW,IAAI,GAAM,IAAOH,EAAI,GAC5DjY,SAAS,GAAG,GACf,C,GCLCqY,EAA2B,CAAC,EAGhC,SAASC,EAAoBC,GAE5B,IAAIC,EAAeH,EAAyBE,GAC5C,QAAqB/U,IAAjBgV,EACH,OAAOA,EAAahf,QAGrB,IAAIC,EAAS4e,EAAyBE,GAAY,CAGjD/e,QAAS,CAAC,GAOX,OAHAif,EAAoBF,GAAU9e,EAAQA,EAAOD,QAAS8e,GAG/C7e,EAAOD,OACf,CCrBA8e,EAAoBI,EAAI,CAAClf,EAASmf,KACjC,IAAI,IAAI/d,KAAO+d,EACXL,EAAoBM,EAAED,EAAY/d,KAAS0d,EAAoBM,EAAEpf,EAASoB,IAC5E6J,OAAOoU,eAAerf,EAASoB,EAAK,CAAEke,YAAY,EAAMjK,IAAK8J,EAAW/d,IAE1E,ECND0d,EAAoBM,EAAI,CAACG,EAAKC,IAAUvU,OAAOwU,UAAUC,eAAezS,KAAKsS,EAAKC,GCClFV,EAAoBa,EAAK3f,IACH,oBAAX4f,QAA0BA,OAAOC,aAC1C5U,OAAOoU,eAAerf,EAAS4f,OAAOC,YAAa,CAAE5Z,MAAO,WAE7DgF,OAAOoU,eAAerf,EAAS,aAAc,CAAEiG,OAAO,GAAO,E","sources":["webpack://TNAFrontend/webpack/universalModuleDefinition","webpack://TNAFrontend/./src/nationalarchives/all.mjs","webpack://TNAFrontend/./src/nationalarchives/lib/analytics-helpers.mjs","webpack://TNAFrontend/./src/nationalarchives/components/accordion/analytics.js","webpack://TNAFrontend/./src/nationalarchives/components/breadcrumbs/analytics.js","webpack://TNAFrontend/./src/nationalarchives/components/checkboxes/analytics.js","webpack://TNAFrontend/./src/nationalarchives/components/details/analytics.js","webpack://TNAFrontend/./src/nationalarchives/components/footer/analytics.js","webpack://TNAFrontend/./src/nationalarchives/components/gallery/analytics.js","webpack://TNAFrontend/./src/nationalarchives/components/global-header/analytics.js","webpack://TNAFrontend/./src/nationalarchives/components/header/analytics.js","webpack://TNAFrontend/./src/nationalarchives/components/picture/analytics.js","webpack://TNAFrontend/./src/nationalarchives/components/radios/analytics.js","webpack://TNAFrontend/./src/nationalarchives/components/search-field/analytics.js","webpack://TNAFrontend/./src/nationalarchives/components/sidebar/analytics.js","webpack://TNAFrontend/./src/nationalarchives/components/text-input/analytics.js","webpack://TNAFrontend/./src/nationalarchives/components/textarea/analytics.js","webpack://TNAFrontend/./src/nationalarchives/analytics.mjs","webpack://TNAFrontend/./src/nationalarchives/components/hero/analytics.js","webpack://TNAFrontend/./src/nationalarchives/components/accordion/accordion.mjs","webpack://TNAFrontend/./src/nationalarchives/components/breadcrumbs/breadcrumbs.mjs","webpack://TNAFrontend/./src/nationalarchives/components/cookie-banner/cookie-banner.mjs","webpack://TNAFrontend/./src/nationalarchives/components/error-summary/error-summary.mjs","webpack://TNAFrontend/./src/nationalarchives/components/footer/footer.mjs","webpack://TNAFrontend/./src/nationalarchives/components/gallery/gallery.mjs","webpack://TNAFrontend/./src/nationalarchives/components/global-header/global-header.mjs","webpack://TNAFrontend/./src/nationalarchives/components/header/header.mjs","webpack://TNAFrontend/./src/nationalarchives/components/picture/picture.mjs","webpack://TNAFrontend/./src/nationalarchives/components/skip-link/skip-link.mjs","webpack://TNAFrontend/./src/nationalarchives/components/tabs/tabs.mjs","webpack://TNAFrontend/./src/nationalarchives/components/text-input/text-input.mjs","webpack://TNAFrontend/./src/nationalarchives/lib/cookies.mjs","webpack://TNAFrontend/./src/nationalarchives/lib/uuid.mjs","webpack://TNAFrontend/webpack/bootstrap","webpack://TNAFrontend/webpack/runtime/define property getters","webpack://TNAFrontend/webpack/runtime/hasOwnProperty shorthand","webpack://TNAFrontend/webpack/runtime/make namespace object"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"TNAFrontend\"] = factory();\n\telse\n\t\troot[\"TNAFrontend\"] = factory();\n})(self, () => {\nreturn ","import { Accordion } from \"./components/accordion/accordion.mjs\";\nimport { Breadcrumbs } from \"./components/breadcrumbs/breadcrumbs.mjs\";\nimport { CookieBanner } from \"./components/cookie-banner/cookie-banner.mjs\";\nimport { ErrorSummary } from \"./components/error-summary/error-summary.mjs\";\nimport { Footer } from \"./components/footer/footer.mjs\";\nimport { Gallery } from \"./components/gallery/gallery.mjs\";\nimport { GlobalHeader } from \"./components/global-header/global-header.mjs\";\nimport { Header } from \"./components/header/header.mjs\";\nimport { Picture } from \"./components/picture/picture.mjs\";\nimport { SkipLink } from \"./components/skip-link/skip-link.mjs\";\nimport { Tabs } from \"./components/tabs/tabs.mjs\";\nimport { TextInput } from \"./components/text-input/text-input.mjs\";\nimport Cookies from \"./lib/cookies.mjs\";\n\nconst initAll = (options) => {\n options = typeof options !== \"undefined\" ? options : {};\n const $scope =\n options.scope instanceof HTMLElement ? options.scope : document;\n\n const $body = document.documentElement;\n $body.classList.add(\"tna-template--js-enabled\");\n\n const onFirstTouch = () => {\n window.removeEventListener(\"touchstart\", onFirstTouch);\n $body.classList.add(\"tna-template--touched\");\n };\n\n const onKeyDown = (e) => {\n if (e.key === \"Tab\") {\n $body.classList.add(\"tna-template--tabbed\");\n $body.classList.remove(\"tna-template--clicked\");\n }\n };\n\n const onMouseDown = () => {\n $body.classList.add(\"tna-template--clicked\");\n $body.classList.remove(\"tna-template--tabbed\");\n };\n\n window.addEventListener(\"touchstart\", onFirstTouch);\n window.addEventListener(\"keydown\", onKeyDown);\n window.addEventListener(\"mousedown\", onMouseDown);\n\n const $accordions = $scope.querySelectorAll('[data-module=\"tna-accordion\"]');\n $accordions.forEach(($accordion) => {\n new Accordion($accordion);\n });\n\n const $breadcrumbs = $scope.querySelector('[data-module=\"tna-breadcrumbs\"]');\n if ($breadcrumbs) {\n new Breadcrumbs($breadcrumbs);\n }\n\n const $cookieBanner = $scope.querySelector(\n '[data-module=\"tna-cookie-banner\"]',\n );\n if ($cookieBanner) {\n new CookieBanner($cookieBanner);\n }\n\n const $errorSummary = $scope.querySelector(\n '[data-module=\"tna-error-summary\"]',\n );\n if ($errorSummary) {\n new ErrorSummary($errorSummary).init();\n }\n\n const $footer = $scope.querySelector('[data-module=\"tna-footer\"]');\n if ($footer) {\n new Footer($footer);\n }\n\n const $galleries = $scope.querySelectorAll('[data-module=\"tna-gallery\"]');\n $galleries.forEach(($gallery) => {\n new Gallery($gallery);\n });\n\n const $globalHeader = $scope.querySelector(\n '[data-module=\"tna-global-header\"]',\n );\n if ($globalHeader) {\n new GlobalHeader($globalHeader);\n }\n\n const $header = $scope.querySelector('[data-module=\"tna-header\"]');\n if ($header) {\n new Header($header);\n }\n\n const $pictures = $scope.querySelectorAll('[data-module=\"tna-picture\"]');\n $pictures.forEach(($picture) => {\n new Picture($picture);\n });\n\n const $skipLinks = $scope.querySelectorAll('[data-module=\"tna-skip-link\"]');\n $skipLinks.forEach(($skipLink) => {\n new SkipLink($skipLink);\n });\n\n const $tabs = $scope.querySelectorAll('[data-module=\"tna-tabs\"]');\n $tabs.forEach(($tabModule) => {\n new Tabs($tabModule);\n });\n\n const $textInputs = $scope.querySelectorAll('[data-module=\"tna-text-input\"]');\n $textInputs.forEach(($textInput) => {\n new TextInput($textInput);\n });\n\n const checkTableForScroll = ($tableWrapper) => {\n const scrollable = $tableWrapper.scrollWidth > $tableWrapper.clientWidth;\n const $tableCaption = $tableWrapper.querySelector(\".tna-table__caption\");\n if (scrollable) {\n $tableWrapper.setAttribute(\"tabindex\", \"0\");\n $tableCaption?.classList.add(\"tna-table__caption--scroll\");\n } else {\n $tableWrapper.removeAttribute(\"tabindex\");\n $tableCaption?.classList.remove(\"tna-table__caption--scroll\");\n }\n };\n\n const $tableWrappers = document.querySelectorAll(\n \".tna-table-wrapper:has(.tna-table__caption)\",\n );\n $tableWrappers.forEach(($tableWrapper) => checkTableForScroll($tableWrapper));\n window.addEventListener(\"resize\", () => {\n $tableWrappers.forEach(($tableWrapper) =>\n checkTableForScroll($tableWrapper),\n );\n });\n\n window.matchMedia(\"print\").addEventListener(\"change\", (evt) => {\n if (evt.matches) {\n document\n .querySelectorAll(\".tna-details__details:not([open])\")\n .forEach((e) => {\n e.setAttribute(\"open\", \"\");\n e.dataset.wasClosed = \"\";\n });\n document\n .querySelectorAll(\n '.tna-accordion__content[hidden=\"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-was-closed]\")\n .forEach((e) => {\n e.removeAttribute(\"open\");\n delete e.dataset.wasClosed;\n });\n document\n .querySelectorAll(\n \".tna-accordion__content[data-was-closed], .tna-picture__transcript[data-was-closed]\",\n )\n .forEach((e) => {\n e.setAttribute(\"hidden\", \"until-closed\");\n e.dataset.wasClosed = \"\";\n });\n }\n });\n};\n\nexport {\n initAll,\n Cookies,\n Accordion,\n Breadcrumbs,\n CookieBanner,\n ErrorSummary,\n Footer,\n Gallery,\n GlobalHeader,\n Header,\n Picture,\n SkipLink,\n Tabs,\n TextInput,\n};\n","const getXPathTo = ($element) => {\n if ($element.id !== \"\") {\n return 'id(\"' + $element.id + '\")';\n }\n if ($element === document.body) {\n return $element.tagName;\n }\n let ix = 0;\n if ($element.parentNode) {\n const siblings = $element.parentNode.childNodes;\n for (let i = 0; i < siblings.length; i++) {\n const sibling = siblings[i];\n if (sibling === $element)\n return (\n getXPathTo($element.parentNode) +\n \"/\" +\n $element.tagName +\n \"[\" +\n (ix + 1) +\n \"]\"\n );\n if (sibling.nodeType === 1 && sibling.tagName === $element.tagName) ix++;\n }\n } else {\n return $element.tagName;\n }\n};\n\nconst includesAny = (arr, values) => values.some((v) => arr.includes(v));\n\nconst getClosestHeading = ($element) => {\n let heading = \"\";\n let $search = $element;\n do {\n while ($search.previousElementSibling) {\n $search = $search.previousElementSibling;\n if (\n [\"h1\", \"h2\", \"h3\", \"h4\", \"h5\", \"h6\"].includes($search.tagName) ||\n ($search.classList.length &&\n includesAny(Array.from($search.classList), [\n \"tna-heading-xl\",\n \"tna-heading-l\",\n \"tna-heading-m\",\n \"tna-heading-s\",\n ]))\n ) {\n heading = $search.innerText;\n break;\n }\n }\n $search = $search.parentElement;\n } while ($search.parentElement && !heading);\n return heading;\n};\n\nconst valueGetters = {\n text: ($el) => $el.innerText.replace(/\\n/g, \" \"),\n html: ($el) => $el.innerHTML,\n value: ($el) => $el.value,\n index: ($el, $scope, event, index) => index,\n instance: ($el, $scope, event, index, instance) => instance,\n checked: ($el) => ($el.checked ? \"checked\" : \"unchecked\"),\n expanded: ($el) => {\n const expanded = $el.getAttribute(\"aria-expanded\");\n if (expanded === null) {\n return null;\n }\n return expanded.toString() === \"true\" ? \"opened\" : \"closed\";\n },\n closestHeading: ($el) => getClosestHeading($el),\n};\n\nexport { getXPathTo, getClosestHeading, valueGetters };\n","import { valueGetters } from \"../../lib/analytics-helpers.mjs\";\n\nexport default [\n {\n scope: \".tna-accordion\",\n areaName: \"accordion\",\n rootEventName: \"select_feature\",\n rootData: {\n data_component_name: \"accordion\",\n },\n events: [\n {\n eventName: \"click\",\n targetElement: \".tna-accordion__summary\",\n on: \"click\",\n data: { state: valueGetters.expanded, value: valueGetters.text },\n rootData: {\n data_link_type: valueGetters.expanded,\n data_link: valueGetters.text,\n data_position: valueGetters.index,\n },\n },\n ],\n },\n];\n","import { valueGetters } from \"../../lib/analytics-helpers.mjs\";\n\nexport default [\n {\n scope: \".tna-breadcrumbs\",\n areaName: \"breadcrumbs\",\n rootEventName: \"select_navigation\",\n rootData: {\n data_component_name: \"breadcrumbs\",\n },\n events: [\n {\n eventName: \"click\",\n targetElement: \"a.tna-breadcrumbs__link\",\n on: \"click\",\n data: { state: \"expand\", value: valueGetters.html },\n rootData: {\n data_link_type: \"breadcrumb_link\",\n data_link: valueGetters.text,\n },\n },\n {\n eventName: \"click\",\n targetElement:\n \".tna-breadcrumbs__item--expandable button.tna-breadcrumbs__link\",\n on: \"click\",\n data: { state: \"expand\", value: valueGetters.html },\n rootData: {\n data_link_type: \"breadcrumb_expand\",\n data_link: valueGetters.text,\n },\n },\n ],\n },\n];\n","import { valueGetters } from \"../../lib/analytics-helpers.mjs\";\n\nexport default [\n {\n scope: \".tna-checkboxes\",\n areaName: \"checkboxes\",\n events: [\n {\n eventName: \"toggle\",\n targetElement: \".tna-checkboxes__item input\",\n on: \"change\",\n data: {\n state: valueGetters.checked,\n // eslint-disable-next-line no-unused-vars\n value: ($el, $scope, event) => $el.parentNode.innerText.trim(),\n // eslint-disable-next-line no-unused-vars\n group: ($el, $scope, event) =>\n $scope\n .closest(\".tna-form__group\")\n ?.querySelector(\".tna-form__heading\")\n ?.innerText?.trim(),\n },\n },\n ],\n },\n];\n","import { valueGetters } from \"../../lib/analytics-helpers.mjs\";\n\nexport default [\n {\n scope: \".tna-details\",\n areaName: \"details\",\n events: [\n {\n eventName: \"click\",\n targetElement: \".tna-details__summary\",\n on: \"click\",\n data: {\n // eslint-disable-next-line no-unused-vars\n state: ($el, $scope, event) => {\n const wasExpanded =\n $scope\n .querySelector(\".tna-details__details\")\n ?.hasAttribute(\"open\") ?? false;\n return wasExpanded ? \"closed\" : \"opened\";\n },\n // eslint-disable-next-line no-unused-vars\n value: valueGetters.text,\n },\n },\n ],\n },\n];\n","import { valueGetters } from \"../../lib/analytics-helpers.mjs\";\n\nexport default [\n {\n scope: \".tna-footer\",\n areaName: \"footer\",\n rootEventName: \"global_navigation\",\n rootData: {\n data_component_name: \"footer\",\n },\n events: [\n {\n eventName: \"link.click\",\n targetElement: \".tna-footer__navigation-block-item-link\",\n on: \"click\",\n data: {\n value: valueGetters.text,\n },\n rootData: {\n data_link_type: \"link\",\n data_section: valueGetters.closestHeading,\n data_link: valueGetters.text,\n },\n },\n {\n eventName: \"social_link.click\",\n targetElement: \".tna-footer__social-item-link\",\n on: \"click\",\n data: {\n value: valueGetters.text,\n },\n rootData: {\n data_link_type: \"icon\",\n data_section: \"Social media\",\n data_link: ($el) => $el.dataset.name,\n },\n },\n {\n eventName: \"legal_link.click\",\n targetElement: \".tna-footer__legal-item-link\",\n on: \"click\",\n data: {\n value: valueGetters.text,\n },\n rootData: {\n data_link_type: \"link\",\n data_section: \"Legal information\",\n data_link: valueGetters.text,\n },\n },\n {\n eventName: \"mailing_list.click\",\n targetElement: \".tna-footer__mailing-list a.tna-button\",\n on: \"click\",\n data: {\n value: valueGetters.text,\n },\n rootData: {\n data_link_type: \"button\",\n data_section: \"Mailing list\",\n data_link: valueGetters.text,\n },\n },\n {\n eventName: \"ogl.click\",\n targetElement: \".tna-footer__licence p a.tna-footer__link\",\n on: \"click\",\n data: {\n value: valueGetters.text,\n },\n rootData: {\n data_link_type: \"link\",\n data_section: \"OGL\",\n data_link: valueGetters.text,\n },\n },\n {\n eventName: \"govuk.click\",\n targetElement: \".tna-footer__govuk-link\",\n on: \"click\",\n data: {\n value: valueGetters.text,\n },\n rootData: {\n data_link_type: \"Logo\",\n data_section: \"GOV.UK\",\n data_link: valueGetters.text,\n },\n },\n {\n eventName: \"theme.change\",\n targetElement: \".tna-footer__theme-selector-button\",\n on: \"click\",\n data: {\n value: valueGetters.value,\n },\n },\n ],\n },\n];\n","import { valueGetters } from \"../../lib/analytics-helpers.mjs\";\n\nexport default [\n {\n scope: \".tna-gallery\",\n areaName: \"gallery\",\n rootEventName: \"select_media\",\n rootData: {\n media_type: \"gallery\",\n media_duration: ($el, $scope) =>\n $scope.querySelectorAll(\".tna-gallery__navigation-item\").length,\n media_provider: \"tna\",\n media_title: ($el, $scope, event, index, instance) =>\n $scope.querySelector(\".tna-gallery__header-inner\")?.innerText?.trim() ||\n `gallery_${instance}`,\n media_progress: ($el, $scope) =>\n (Array.from(\n $scope.querySelectorAll(\".tna-gallery__navigation-item\"),\n ).findIndex(\n ($itemButton) => $itemButton.getAttribute(\"aria-current\") === \"true\",\n ) || -1) + 1,\n },\n events: [\n {\n eventName: \"click\",\n targetElement: \".tna-gallery__navigation-item\",\n on: \"click\",\n data: {\n value: valueGetters.text,\n },\n rootData: {\n data_link: \"image\",\n media_action: \"progress\",\n media_progress: valueGetters.index,\n },\n },\n {\n eventName: \"click\",\n targetElement: \".tna-gallery__navigation-prev\",\n on: \"click\",\n data: {\n value: ($el, $scope) =>\n $scope\n .querySelector(\n \".tna-gallery__item:not([hidden]) .tna-gallery__item-header\",\n )\n ?.innerText?.trim(),\n },\n rootData: {\n data_link: \"previous\",\n media_action: \"progress\",\n },\n },\n {\n eventName: \"click\",\n targetElement: \".tna-gallery__navigation-next\",\n on: \"click\",\n data: {\n value: ($el, $scope) =>\n $scope\n .querySelector(\n \".tna-gallery__item:not([hidden]) .tna-gallery__item-header\",\n )\n ?.innerText?.trim(),\n },\n rootData: {\n data_link: \"next\",\n media_action: \"progress\",\n },\n },\n {\n eventName: \"keypress\",\n on: \"keydown\",\n onCondition: ($el, $scope, event) =>\n [\n \"ArrowLeft\",\n \"ArrowRight\",\n \"ArrowUp\",\n \"ArrowDown\",\n \"End\",\n \"Home\",\n \"Escape\",\n ].includes(event.key),\n data: {\n value: ($el, $scope, event) => event.key,\n },\n rootData: {\n data_link: \"keypress\",\n media_action: \"progress\",\n },\n },\n {\n eventName: \"enter-fullscreen\",\n targetElement: '.tna-gallery__options button[value=\"enter-fullscreen\"]',\n on: \"click\",\n rootData: {\n data_link: \"enter_full_screen_button\",\n },\n },\n {\n eventName: \"exit-fullscreen\",\n targetElement: '.tna-gallery__options button[value=\"exit-fullscreen\"]',\n on: \"click\",\n rootData: {\n data_link: \"exit_full_screen_button\",\n },\n },\n {\n eventName: \"index\",\n targetElement: '.tna-gallery__options button[value=\"show-index\"]',\n on: \"click\",\n },\n ],\n },\n];\n","import { valueGetters } from \"../../lib/analytics-helpers.mjs\";\n\nexport default [\n {\n scope: \".tna-global-header\",\n areaName: \"header\",\n rootEventName: \"global_navigation\",\n rootData: {\n data_component_name: \"header\",\n },\n events: [\n {\n eventName: \"toggle\",\n targetElement: \".tna-global-header__navigation-button\",\n on: \"click\",\n data: {\n state: valueGetters.expanded,\n },\n rootData: {\n data_link_type: \"mobile_menu\",\n data_link: ($el) => {\n const expanded = $el.getAttribute(\"aria-expanded\");\n if (expanded === null) {\n return null;\n }\n return expanded.toString() === \"true\" ? \"Open menu\" : \"Close menu\";\n },\n data_section: \"Burger menu\",\n },\n },\n {\n eventName: \"logo.click\",\n targetElement: \".tna-global-header__logo\",\n on: \"click\",\n rootData: {\n data_link_type: \"logo\",\n data_link: \"The National Archives\",\n data_section: \"Top navigation and logo\",\n },\n },\n {\n eventName: \"primary_link.click\",\n targetElement: \".tna-global-header__navigation-item-link\",\n on: \"click\",\n data: {\n value: valueGetters.text,\n },\n rootData: {\n data_link_type: \"menu\",\n data_section: valueGetters.text,\n data_position: 1,\n data_link: valueGetters.text,\n },\n },\n {\n eventName: \"secondary_link.click\",\n targetElement: \".tna-global-header__top-navigation-link\",\n on: \"click\",\n data: {\n value: valueGetters.text,\n },\n rootData: {\n data_link_type: \"icon\",\n data_link: valueGetters.text,\n data_section: \"Top navigation and logo\",\n },\n },\n ],\n },\n];\n","import { valueGetters } from \"../../lib/analytics-helpers.mjs\";\n\nexport default [\n {\n scope: \".tna-header\",\n areaName: \"header\",\n events: [\n {\n eventName: \"toggle\",\n targetElement: \".tna-header__navigation-button\",\n on: \"click\",\n data: {\n state: valueGetters.expanded,\n },\n },\n ],\n },\n];\n","import {\n getClosestHeading,\n valueGetters,\n} from \"../../lib/analytics-helpers.mjs\";\n\nexport default [\n {\n scope: \".tna-picture\",\n areaName: \"picture\",\n events: [\n {\n eventName: \"toggle_transcript\",\n targetElement: \".tna-picture__toggle-transcript\",\n on: \"click\",\n data: {\n state: valueGetters.expanded,\n // eslint-disable-next-line no-unused-vars\n value: ($el, $scope, event) => {\n const heading = getClosestHeading($scope);\n const image = $scope.querySelector(\".tna-picture__image\");\n const imageSrc = image.getAttribute(\"src\");\n const imageAlt = image.getAttribute(\"alt\");\n const value = `${imageAlt} (${imageSrc})`;\n return heading ? `${heading} > ${value}` : value;\n },\n },\n },\n ],\n },\n];\n","import { valueGetters } from \"../../lib/analytics-helpers.mjs\";\n\nexport default [\n {\n scope: \".tna-radios\",\n areaName: \"radios\",\n events: [\n {\n eventName: \"toggle\",\n targetElement: \".tna-radios__item input\",\n on: \"change\",\n data: {\n state: valueGetters.checked,\n // eslint-disable-next-line no-unused-vars\n value: ($el, $scope, event) => $el.parentNode.innerText,\n // eslint-disable-next-line no-unused-vars\n group: ($el, $scope, event) =>\n $scope\n .closest(\".tna-form__group\")\n ?.querySelector(\".tna-form__heading\")\n ?.innerText?.trim(),\n },\n },\n ],\n },\n];\n","import { valueGetters } from \"../../lib/analytics-helpers.mjs\";\n\nexport default [\n {\n scope: \".tna-search-field\",\n areaName: \"search-field\",\n events: [\n {\n eventName: \"blurred\",\n targetElement: \".tna-search-field__input\",\n on: \"blur\",\n data: {\n // eslint-disable-next-line no-unused-vars\n value: valueGetters.value,\n // eslint-disable-next-line no-unused-vars\n group: ($el, $scope, event) =>\n $scope.querySelector(\".tna-form__heading\")?.innerText?.trim(),\n },\n },\n ],\n },\n];\n","import { valueGetters } from \"../../lib/analytics-helpers.mjs\";\n\nexport default [\n {\n scope: \".tna-sidebar\",\n areaName: \"sidebar\",\n rootEventName: \"select_navigation\",\n rootData: {\n data_component_name: \"sidebar\",\n data_section: ($el, $scope) =>\n $scope.querySelector(\".tna-sidebar__heading\")?.innerText?.trim(),\n },\n events: [\n {\n eventName: \"click\",\n targetElement: \"a.tna-sidebar__link\",\n on: \"click\",\n rootData: {\n data_link_type: \"sidebar_link\",\n data_link: valueGetters.text,\n data_position: valueGetters.index,\n },\n },\n ],\n },\n];\n","import { valueGetters } from \"../../lib/analytics-helpers.mjs\";\n\nexport default [\n {\n scope: \".tna-text-input\",\n areaName: \"text-input\",\n events: [\n {\n eventName: \"blurred\",\n on: \"blur\",\n data: {\n // eslint-disable-next-line no-unused-vars\n value: valueGetters.value,\n // eslint-disable-next-line no-unused-vars\n group: ($el, $scope, event) =>\n $scope\n .closest(\".tna-form__group\")\n ?.querySelector(\".tna-form__heading\")\n ?.innerText?.trim(),\n },\n },\n ],\n },\n];\n","import { valueGetters } from \"../../lib/analytics-helpers.mjs\";\n\nexport default [\n {\n scope: \".tna-textarea\",\n areaName: \"textarea\",\n events: [\n {\n eventName: \"blurred\",\n on: \"blur\",\n data: {\n // eslint-disable-next-line no-unused-vars\n value: valueGetters.value,\n // eslint-disable-next-line no-unused-vars\n group: ($el, $scope, event) =>\n $scope\n .closest(\".tna-form__group\")\n ?.querySelector(\".tna-form__heading\")\n ?.innerText?.trim(),\n },\n },\n ],\n },\n];\n","import Cookies from \"./lib/cookies.mjs\";\nimport {\n getXPathTo,\n getClosestHeading,\n valueGetters,\n} from \"./lib/analytics-helpers.mjs\";\nimport AccordionAnalytics from \"./components/accordion/analytics.js\";\nimport BreadcrumbAnalytics from \"./components/breadcrumbs/analytics.js\";\nimport CheckboxesAnalytics from \"./components/checkboxes/analytics.js\";\nimport DetailsAnalytics from \"./components/details/analytics.js\";\nimport FooterAnalytics from \"./components/footer/analytics.js\";\nimport GalleryAnalytics from \"./components/gallery/analytics.js\";\nimport GlobalHeaderAnalytics from \"./components/global-header/analytics.js\";\nimport HeaderAnalytics from \"./components/header/analytics.js\";\nimport HeroAnalytics from \"./components/hero/analytics.js\";\nimport PictureAnalytics from \"./components/picture/analytics.js\";\nimport RadiosAnalytics from \"./components/radios/analytics.js\";\nimport SearchFieldAnalytics from \"./components/search-field/analytics.js\";\nimport SidebarAnalytics from \"./components/sidebar/analytics.js\";\nimport TextInputAnalytics from \"./components/text-input/analytics.js\";\nimport TextareaAnalytics from \"./components/textarea/analytics.js\";\n\nconst componentAnalytics = [\n ...AccordionAnalytics,\n ...BreadcrumbAnalytics,\n ...CheckboxesAnalytics,\n ...DetailsAnalytics,\n ...FooterAnalytics,\n ...GalleryAnalytics,\n ...GlobalHeaderAnalytics,\n ...HeaderAnalytics,\n ...HeroAnalytics,\n ...PictureAnalytics,\n ...RadiosAnalytics,\n ...SearchFieldAnalytics,\n ...SidebarAnalytics,\n ...TextInputAnalytics,\n ...TextareaAnalytics,\n];\n\nclass EventTracker {\n /** @protected */\n cookies = new Cookies();\n\n /** @protected */\n events = [];\n\n /** @protected */\n startTime = new Date();\n\n /** @protected */\n prefix = \"tna\";\n\n /** @protected */\n document = document;\n\n constructor(options = {}) {\n const { prefix = null, documentScope = document } = options;\n if (prefix) {\n this.prefix = prefix;\n }\n if (documentScope) {\n this.document = documentScope;\n }\n }\n\n start(initAll) {\n if (!navigator.doNotTrack || navigator.doNotTrack !== 1) {\n if (this.cookies.isPolicyAccepted(\"usage\")) {\n this.enableTracking();\n }\n this.cookies.on(\"changePolicy\", (policies) => {\n if (Object.hasOwn(policies, \"usage\")) {\n if (policies[\"usage\"]) {\n this.enableTracking();\n } else {\n this.disableTracking();\n }\n }\n });\n if (initAll) {\n this.initAll();\n }\n }\n }\n\n enableTracking() {}\n\n disableTracking() {}\n\n /**\n * Initialise all TNA Frontend component analytics.\n */\n initAll() {\n componentAnalytics.forEach((componentConfig) => {\n this.addListeners(\n componentConfig.scope,\n componentConfig.areaName,\n componentConfig.events,\n componentConfig.rootEventName || \"\",\n componentConfig.rootData || {},\n );\n });\n }\n\n /**\n * Add an event listener.\n * @param {String|HTMLElement} scope - The element to which the listener is scoped.\n * @param {String} areaName - The name of the component to pass on to the tracker.\n * @param {{eventName: String, targetElement: String|undefined, on: String, data: {value: Function|String|undefined, state: Function|String|undefined, group: Function|String|undefined, [String]: String|Integer}, rootData:{[String]: Function|String}}[]} events - The configuration of events to track along with their optional value and state which can be computed.\n * @param {String} rootEventName - The event name to use if specified (prefix).\n * @param {{[String]:String}} rootDefaultData - The default root data to use if specified.\n */\n addListeners(\n scope,\n areaName,\n events,\n rootEventName = \"\",\n rootDefaultData = {},\n ) {\n let scopeArray;\n if (typeof scope === \"string\") {\n scopeArray = Array.from(this.document.querySelectorAll(scope));\n } else if (typeof scope === \"object\") {\n scopeArray = [scope];\n }\n if (!scopeArray) {\n return;\n }\n scopeArray.forEach(($scope, scopeIndex) => {\n events.forEach((eventConfig) => {\n if (!eventConfig.on) {\n return;\n }\n if (eventConfig.targetElement) {\n Array.from(\n $scope.querySelectorAll(eventConfig.targetElement),\n ).forEach(($el, index) =>\n this.attachListener(\n $el,\n $scope,\n rootEventName,\n rootDefaultData,\n eventConfig,\n scope,\n areaName,\n index + 1,\n scopeIndex + 1,\n ),\n );\n } else {\n this.attachListener(\n $scope,\n $scope,\n rootEventName,\n rootDefaultData,\n eventConfig,\n scope,\n areaName,\n 1,\n scopeIndex + 1,\n );\n }\n });\n });\n }\n\n /** @protected */\n generateEventName(areaName, eventConfig) {\n return `${this.prefix}.${areaName}.${eventConfig.eventName || eventConfig.on}`;\n }\n\n /** @protected */\n attachListener(\n $el,\n $scope,\n rootEventName,\n rootDefaultData,\n eventConfig,\n scope,\n areaName,\n index,\n instance,\n ) {\n const {\n on,\n data,\n targetElement,\n rootData = {},\n onCondition = null,\n } = eventConfig;\n $el.addEventListener(on, (event) => {\n const computedValueParameters = [$el, $scope, event, index, instance];\n if (\n onCondition === null ||\n this.computedValue(onCondition, ...computedValueParameters)\n ) {\n this.recordEvent(\n rootEventName\n ? `${this.prefix}.${rootEventName}`\n : this.generateEventName(areaName, eventConfig),\n {\n ...data,\n name: this.generateEventName(areaName, eventConfig),\n value: data?.value\n ? this.computedValue(data.value, ...computedValueParameters)\n : null,\n state: data?.state\n ? this.computedValue(data.state, ...computedValueParameters)\n : null,\n group: data?.group\n ? this.computedValue(data.group, ...computedValueParameters)\n : null,\n xPath: getXPathTo($el),\n targetElement: targetElement,\n timeSincePageLoad: new Date() - this.startTime,\n index,\n instance,\n scope,\n areaName,\n },\n Object.fromEntries(\n Object.entries({ ...rootDefaultData, ...rootData }).map(\n ([key, value]) => [\n key,\n this.computedValue(value, ...computedValueParameters),\n ],\n ),\n ),\n );\n }\n });\n }\n\n /** @protected */\n computedValue(valueOrFunction, $el, $scope, event, index, instance) {\n return typeof valueOrFunction === \"function\"\n ? valueOrFunction.call(this, $el, $scope, event, index, instance)\n : (valueOrFunction ?? null);\n }\n\n /** @protected */\n recordEvent(eventName, data, rootData = {}) {\n this.events.push({\n event: eventName,\n ...data,\n ...rootData,\n });\n }\n\n /** @protected */\n getTnaMetaTags() {\n return Object.fromEntries(\n Array.from(\n document.head.querySelectorAll(\n `meta[name^=\"${this.prefix}_root:\"][content]`,\n ),\n ).map(($metaEl) => [\n $metaEl\n .getAttribute(\"name\")\n .replace(new RegExp(`^${this.prefix}_root:`), \"\"),\n $metaEl.getAttribute(\"content\"),\n ]),\n Array.from(\n document.head.querySelectorAll(\n `meta[name^=\"${this.prefix}.\"][content]`,\n ),\n ).map(($metaEl) => [\n $metaEl.getAttribute(\"name\"),\n $metaEl.getAttribute(\"content\"),\n ]),\n );\n }\n\n /** @protected */\n getUserPreferences() {\n const userPreferences = {};\n userPreferences[`${this.prefix}.pref.prefers-color-scheme`] =\n window.matchMedia?.(\"(prefers-color-scheme: dark)\").matches\n ? \"dark\"\n : \"light\";\n userPreferences[`${this.prefix}.pref.forced-colors`] = window.matchMedia?.(\n \"(forced-colors: active)\",\n ).matches;\n userPreferences[`${this.prefix}.pref.prefers-contrast`] =\n window.matchMedia?.(\"(prefers-contrast: more)\").matches\n ? \"more\"\n : window.matchMedia?.(\"(prefers-contrast: less)\").matches\n ? \"less\"\n : \"\";\n userPreferences[`${this.prefix}.pref.prefers-reduced-motion`] =\n window.matchMedia?.(\"(prefers-reduced-motion: reduce)\").matches;\n userPreferences[`${this.prefix}.pref.prefers-reduced-transparency`] =\n window.matchMedia?.(\"(prefers-reduced-transparency: reduce)\").matches;\n return userPreferences;\n }\n}\n\n/**\n * Class to handle Google Analytics 4 reporting.\n * @class GA4\n * @extends EventTracker\n * @constructor\n * @public\n */\nclass GA4 extends EventTracker {\n /** @protected */\n addTrackingCode = true;\n\n /** @protected */\n trackingCodeAdded = false;\n\n /** @protected */\n trackingEnabled = false;\n\n /** @protected */\n gTagId;\n\n constructor(options = {}) {\n if (window.TNAFrontendAnalyticsGA4) {\n return window.TNAFrontendAnalyticsGA4;\n }\n const {\n id = \"\",\n prefix = null,\n initAll = true,\n addTrackingCode = true,\n } = options;\n super({ prefix });\n window.TNAFrontendAnalyticsGA4 = this;\n this.addTrackingCode = addTrackingCode;\n window.dataLayer = window.dataLayer || [];\n if (id) {\n this.gTagId = id;\n this.ga4Disable = `ga-disable-${this.gTagId}`;\n if (!this.cookies.isPolicyAccepted(\"usage\")) {\n window[this.ga4Disable] = true;\n this.cookies.set(this.ga4Disable, \"true\");\n }\n }\n this.start(initAll);\n }\n\n destroy() {\n window.TNAFrontendAnalyticsGA4 = null;\n }\n\n /** @protected */\n recordEvent(eventName, data, rootData = {}) {\n const ga4Data = {\n event: eventName,\n ...Object.fromEntries(\n Object.entries(data).map(([key, value]) => [\n `${this.prefix}.event.${key}`,\n value,\n ]),\n ),\n ...rootData,\n };\n this.pushToDataLayer(ga4Data);\n }\n\n /** @protected */\n gtag() {\n this.pushToDataLayer(arguments);\n }\n\n /** @protected */\n pushToDataLayer(data) {\n window.dataLayer.push(data);\n }\n\n /** @protected */\n enableTracking() {\n if (!this.trackingEnabled) {\n window[this.ga4Disable] = false;\n this.cookies.set(this.ga4Disable, \"false\");\n if (!this.trackingCodeAdded && this.addTrackingCode) {\n if (!this.gTagId) {\n throw Error(\"ID was not specified\");\n }\n this.pushToDataLayer({\n ...this.getTnaMetaTags(),\n ...this.getUserPreferences(),\n \"gtm.start\": new Date().getTime(),\n event: \"gtm.js\",\n });\n const firstScript = document.getElementsByTagName(\"script\")[0];\n const script = document.createElement(\"script\");\n script.async = true;\n script.src = `https://www.googletagmanager.com/gtm.js?id=${this.gTagId}&l=dataLayer`;\n if (firstScript) {\n firstScript.parentNode.insertBefore(script, firstScript);\n } else {\n document.head.appendChild(script);\n }\n this.trackingCodeAdded = true;\n }\n this.trackingEnabled = true;\n }\n }\n\n /** @protected */\n disableTracking() {\n if (this.trackingEnabled) {\n window[this.ga4Disable] = true;\n this.cookies.set(this.ga4Disable, \"true\");\n Object.keys(this.cookies.all).forEach((key) => {\n if (key.startsWith(\"_ga\")) {\n this.cookies.delete(key);\n }\n });\n this.trackingEnabled = false;\n }\n }\n}\n\nconst ga4Id = document.documentElement.dataset.ga4;\nif (ga4Id) {\n new GA4({ id: ga4Id });\n}\n\nconst helpers = { getXPathTo, getClosestHeading, valueGetters };\n\nexport { EventTracker, GA4, helpers };\n","export default [\n {\n scope: \".tna-hero\",\n areaName: \"hero\",\n events: [\n {\n eventName: \"toggle_caption\",\n targetElement: \".tna-hero__details-summary\",\n on: \"click\",\n data: {\n // eslint-disable-next-line no-unused-vars\n state: ($el, $scope, event) => {\n const wasExpanded =\n $scope\n .querySelector(\".tna-hero__details\")\n ?.hasAttribute(\"open\") ?? false;\n return wasExpanded ? \"closed\" : \"opened\";\n },\n // eslint-disable-next-line no-unused-vars\n value: ($el, $scope, event) =>\n $scope.querySelector(\"img[alt]\")?.getAttribute(\"alt\"),\n },\n },\n ],\n },\n];\n","export class Accordion {\n 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[\"multiselectable\"] === \"true\";\n\n this.$items.forEach(($item) => this.initItem($item));\n this.initState();\n }\n\n initItem($item) {\n const $heading = $item.querySelector(\".tna-accordion__heading\");\n const $content = $item.querySelector(\".tna-accordion__body\");\n\n if (!$heading || !$content) {\n return;\n }\n\n $item.classList.add(\"tna-accordion__details\");\n $item.classList.remove(\"tna-accordion__item\");\n\n $heading.removeAttribute(\"class\");\n\n $content.classList.add(\"tna-accordion__content\");\n $content.classList.remove(\"tna-accordion__body\");\n $content.setAttribute(\"hidden\", \"until-found\");\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.trim()}, Hide this section`,\n );\n $content.removeAttribute(\"hidden\");\n // $content.setAttribute(\"tabindex\", \"0\");\n }\n\n closeItem($item) {\n const $headingButton = $item.querySelector(\".tna-accordion__summary\");\n const $content = $item.querySelector(\".tna-accordion__content\");\n $headingButton.setAttribute(\"aria-expanded\", \"false\");\n $headingButton.setAttribute(\n \"aria-label\",\n `${$headingButton.innerText.trim()}, Show this section`,\n );\n $content.setAttribute(\"hidden\", \"until-found\");\n // $content.setAttribute(\"tabindex\", \"-1\");\n }\n\n closeAllItemsExcept($excludeItem) {\n Array.from(this.$items)\n .filter(\n ($item) =>\n $item.querySelector(\".tna-accordion__summary\") !== $excludeItem &&\n $item\n .querySelector(\".tna-accordion__summary\")\n .getAttribute(\"aria-expanded\") === \"true\",\n )\n .forEach(($item) => this.closeItem($item));\n }\n}\n","import uuidv4 from \"../../lib/uuid.mjs\";\n\nexport class Breadcrumbs {\n constructor($module) {\n this.$module = $module;\n this.$breadcrumbsList =\n $module && $module.querySelector(\".tna-breadcrumbs__list\");\n this.$breadcrumbs =\n $module &&\n this.$breadcrumbsList &&\n $module.querySelectorAll(\".tna-breadcrumbs__item\");\n\n if (!this.$module || !this.$breadcrumbsList || !this.$breadcrumbs) {\n return;\n }\n\n if (\n this.$breadcrumbs.length > 2 &&\n !this.$module.classList.contains(\"tna-breadcrumbs--no-collapse\")\n ) {\n const uniqueId = `tna-breadcrumbs-${uuidv4()}`;\n\n const $expandable = document.createElement(\"li\");\n $expandable.classList.add(\n \"tna-breadcrumbs__item\",\n \"tna-breadcrumbs__item--expandable\",\n );\n $expandable.style.display = \"none\";\n\n const $expandButton = document.createElement(\"button\");\n $expandButton.classList.add(\"tna-breadcrumbs__link\");\n $expandButton.innerHTML =\n \"<span class='tna-!--visually-hidden'>Expand breadcrumbs</span>&hellip;\";\n $expandButton.setAttribute(\"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.dataset.policies || \"\";\n const extraPolicies = policies\n .split(\",\")\n .filter((x) => x)\n .map((policy) => policy.trim());\n const domain = this.$module.dataset.domain || undefined;\n const path = this.$module.dataset.path || undefined;\n const secure = this.$module.dataset.secure || undefined;\n const policiesKey = this.$module.dataset.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.dataset.preferencesKey || \"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.dataset.disableAutofocus === \"true\" || false;\n\n if (!disableAutoFocus) {\n this.setFocus(this.$module);\n }\n }\n\n setFocus($element, options = {}) {\n const isFocusable = $element.getAttribute(\"tabindex\");\n\n if (!isFocusable) {\n $element.setAttribute(\"tabindex\", \"-1\");\n }\n\n /**\n * Handle element focus\n */\n function onFocus() {\n $element.addEventListener(\"blur\", onBlur, { once: true });\n }\n\n /**\n * Handle element blur\n */\n function onBlur() {\n options.onBlur?.call($element);\n\n if (!isFocusable) {\n $element.removeAttribute(\"tabindex\");\n }\n }\n\n // Add listener to reset element on blur, after focus\n $element.addEventListener(\"focus\", onFocus, { once: true });\n\n // Focus element\n options.onBeforeFocus?.call($element);\n $element.focus();\n }\n}\n","import Cookies from \"../../lib/cookies.mjs\";\n\nexport class Footer {\n constructor($module) {\n this.$module = $module;\n this.$themeSelector =\n $module && $module.querySelector(\".tna-footer__theme-selector\");\n this.$tnaTemplate = document.querySelector(\".tna-template\");\n\n if (!this.$module || !this.$themeSelector || !this.$tnaTemplate) {\n return;\n }\n\n this.$themeSelectorButtons = this.$themeSelector.querySelectorAll(\n \"button.tna-footer__theme-selector-button[value]\",\n );\n\n Array.from(this.$themeSelectorButtons).forEach(($themeSelectorButton) => {\n $themeSelectorButton.addEventListener(\"click\", (e) => {\n const $button = e.target;\n this.setTheme($button.value);\n this.selectThemeSelectorButton($button);\n });\n });\n\n this.cookies = new Cookies();\n if (this.cookies.isPolicyAccepted(\"settings\")) {\n this.showThemeSelector();\n }\n this.cookies.on(\"changePolicy\", (data) => {\n if (Object.hasOwn(data, \"settings\")) {\n if (data.settings === true) {\n this.showThemeSelector();\n } else {\n this.cookies.delete(\"theme\");\n this.hideThemeSelector();\n }\n }\n });\n }\n\n showThemeSelector() {\n this.$themeSelector.removeAttribute(\"hidden\");\n if (this.cookies.exists(\"theme\")) {\n const $currentThemeButton = Array.from(this.$themeSelectorButtons).find(\n ($button) => $button.value === this.cookies.get(\"theme\"),\n );\n if ($currentThemeButton) {\n this.selectThemeSelectorButton($currentThemeButton);\n }\n }\n }\n\n hideThemeSelector() {\n this.$themeSelector.setAttribute(\"hidden\", 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--interactive\");\n\n this.$showIndex = this.$options.querySelector('button[value=\"show-index\"]');\n this.$enterFullscreen = this.$options.querySelector(\n 'button[value=\"enter-fullscreen\"]',\n );\n this.$exitFullscreen = this.$options.querySelector(\n 'button[value=\"exit-fullscreen\"]',\n );\n\n this.$navigationButtonPrev = this.$navigationButtons.querySelector(\n \".tna-gallery__navigation-prev\",\n );\n this.$navigationButtonNext = this.$navigationButtons.querySelector(\n \".tna-gallery__navigation-next\",\n );\n\n this.$module.addEventListener(\"fullscreenchange\", () =>\n this.syncFullScreen(),\n );\n\n this.setup();\n this.allowGridIndex = this.$module.dataset[\"showgrid\"] || false;\n if (this.allowGridIndex) {\n this.showIndex();\n } else {\n this.currentId = this.$items[0].id;\n this.showItem(this.currentId);\n }\n }\n\n setup() {\n this.$items.forEach(($item) => {\n $item.setAttribute(\"hidden\", \"until-found\");\n $item.setAttribute(\"aria-hidden\", \"true\");\n });\n this.$navigation.removeAttribute(\"hidden\");\n this.$navigationItems.forEach(($item) => {\n $item.addEventListener(\"click\", () => {\n this.showItem($item.getAttribute(\"aria-controls\"), true);\n this.$itemsContainer.focus();\n });\n });\n this.$module.addEventListener(\"keydown\", (e) => {\n let preventDefaultKeyAction = false;\n switch (e.key) {\n case \"ArrowLeft\":\n case \"ArrowUp\":\n this.showPreviousItem();\n preventDefaultKeyAction = true;\n break;\n case \"ArrowRight\":\n case \"ArrowDown\":\n this.showNextItem();\n preventDefaultKeyAction = true;\n break;\n case \"Home\":\n this.showFirstItem();\n preventDefaultKeyAction = true;\n break;\n case \"End\":\n this.showLastItem();\n preventDefaultKeyAction = true;\n break;\n }\n if (preventDefaultKeyAction) {\n e.stopPropagation();\n e.preventDefault();\n }\n });\n this.$options.removeAttribute(\"hidden\");\n if (\n document.fullscreenEnabled &&\n this.$enterFullscreen &&\n this.$exitFullscreen\n ) {\n this.$enterFullscreen?.addEventListener(\"click\", () =>\n this.enterFullScreen(),\n );\n this.$exitFullscreen?.addEventListener(\"click\", () =>\n this.exitFullScreen(),\n );\n this.$enterFullscreen?.removeAttribute(\"hidden\");\n }\n this.$showIndex?.addEventListener(\"click\", () => this.showIndex());\n this.$navigationButtons?.removeAttribute(\"hidden\");\n this.$navigationButtonPrev?.addEventListener(\"click\", () => {\n this.showPreviousItem();\n });\n this.$navigationButtonNext?.addEventListener(\"click\", () => {\n this.showNextItem();\n });\n\n this.$liveRegion = document.createElement(\"div\");\n this.$liveRegion.setAttribute(\"aria-live\", \"polite\");\n this.$liveRegion.setAttribute(\"aria-atomic\", \"true\");\n this.$liveRegion.setAttribute(\"class\", \"tna-gallery__item-header\");\n this.$itemsContainer.prepend(this.$liveRegion);\n this.$itemsContainer.classList.add(\"tna-gallery__items--hide-item-titles\");\n }\n\n showIndex() {\n this.showItem(\"\");\n this.$itemsContainer.classList.add(\"tna-gallery__items--hide-items\");\n this.$showIndex?.setAttribute(\"hidden\", true);\n }\n\n showItem(id, focus = false) {\n this.$items.forEach(($item) => {\n if (id && $item.id === id) {\n $item.removeAttribute(\"hidden\");\n $item.removeAttribute(\"aria-hidden\");\n if (focus) {\n $item.setAttribute(\"tabindex\", \"0\");\n $item.focus();\n }\n } else {\n $item.setAttribute(\"hidden\", \"until-found\");\n $item.setAttribute(\"aria-hidden\", \"true\");\n }\n $item.setAttribute(\"tabindex\", \"-1\");\n });\n this.$navigationItems.forEach(($item) => {\n if (id) {\n if ($item.getAttribute(\"aria-controls\") === id) {\n $item.setAttribute(\"aria-current\", \"true\");\n if (this.isFullScreen()) {\n $item.scrollIntoView({ block: \"nearest\" });\n }\n } else {\n $item.setAttribute(\"aria-current\", \"false\");\n }\n } else {\n $item.setAttribute(\"aria-current\", \"false\");\n }\n });\n if (this.allowGridIndex) {\n this.$showIndex?.removeAttribute(\"hidden\");\n }\n this.$itemsContainer.classList.remove(\"tna-gallery__items--hide-items\");\n this.currentId = id;\n this.$liveRegion.textContent = `Image ${this.getCurrentItemIndex() + 1} of ${this.$items.length}`;\n }\n\n getCurrentItemIndex() {\n return Array.from(this.$items).findIndex(\n ($item) => $item.id === this.currentId,\n );\n }\n\n showPreviousItem() {\n let nextIndexToShow = this.getCurrentItemIndex() - 1;\n if (nextIndexToShow < 0) {\n nextIndexToShow = this.$items.length - 1;\n }\n this.showItem(this.$items[nextIndexToShow].id);\n }\n\n showNextItem() {\n let nextIndexToShow = this.getCurrentItemIndex() + 1;\n if (nextIndexToShow >= this.$items.length) {\n nextIndexToShow = 0;\n }\n this.showItem(this.$items[nextIndexToShow].id);\n }\n\n showFirstItem() {\n this.showItem(this.$items[0].id);\n }\n\n showLastItem() {\n this.showItem(this.$items[this.$items.length - 1].id);\n }\n\n isFullScreen() {\n return document.fullscreenElement;\n }\n\n enterFullScreen() {\n this.$module.requestFullscreen();\n this.syncFullScreen();\n this.$module.focus();\n }\n\n exitFullScreen() {\n document.exitFullscreen();\n this.syncFullScreen();\n }\n\n syncFullScreen() {\n if (this.isFullScreen()) {\n this.$enterFullscreen.setAttribute(\"hidden\", true);\n this.$exitFullscreen.removeAttribute(\"hidden\");\n } else {\n this.$exitFullscreen.setAttribute(\"hidden\", true);\n this.$enterFullscreen.removeAttribute(\"hidden\");\n }\n }\n}\n","export class GlobalHeader {\n constructor($module) {\n this.$module = $module;\n this.$toggleButton =\n $module && $module.querySelector(\".tna-global-header__navigation-button\");\n this.$navigation =\n $module &&\n $module.querySelector(\".tna-global-header__navigation-wrapper\");\n this.$topNavigation =\n $module &&\n $module.querySelector(\".tna-global-header__top-navigation-wrapper\");\n this.$links =\n $module &&\n ((this.$navigation &&\n this.$navigation.querySelectorAll(\"[tabindex='0']\")) ||\n (this.$topNavigation &&\n this.$topNavigation.querySelectorAll(\"[tabindex='0']\")));\n this.menuOpened = false;\n this.mql = window.matchMedia(\"(max-width: 48em)\");\n\n if (\n !this.$module ||\n !this.$toggleButton ||\n (!this.$navigation && !this.$topNavigation)\n ) {\n return;\n }\n\n this.$toggleButton.removeAttribute(\"hidden\");\n this.syncState();\n this.$toggleButton.addEventListener(\"click\", () =>\n this.handleToggleNavigation(),\n );\n if (\"addEventListener\" in this.mql) {\n this.mql.addEventListener(\"change\", () => this.syncState());\n } else {\n this.mql.addListener(() => this.syncState());\n }\n\n this.$module.addEventListener(\"keyup\", (e) => {\n if (e.code === \"Escape\" && this.mql.matches) {\n if (this.menuOpened) {\n this.menuOpened = false;\n this.syncState();\n this.$toggleButton.focus();\n }\n }\n });\n }\n\n handleToggleNavigation() {\n this.menuOpened = !this.menuOpened;\n this.syncState();\n }\n\n syncState() {\n if (this.mql.matches) {\n if (this.menuOpened) {\n this.show();\n } else {\n this.hide();\n }\n } else {\n this.show();\n }\n }\n\n hide() {\n if (this.$navigation) {\n this.$navigation.hidden = true;\n this.$navigation.setAttribute(\"aria-hidden\", \"true\");\n }\n if (this.$topNavigation) {\n this.$topNavigation.hidden = true;\n this.$topNavigation.setAttribute(\"aria-hidden\", \"true\");\n }\n this.$toggleButton.setAttribute(\"aria-expanded\", \"false\");\n this.$toggleButton.setAttribute(\"title\", \"Open menu\");\n this.$toggleButton.classList.remove(\n \"tna-global-header__navigation-button--opened\",\n );\n for (let i = 0; i < this.$links.length; i++) {\n this.$links[i].setAttribute(\"tabindex\", \"-1\");\n }\n }\n\n show() {\n if (this.$navigation) {\n this.$navigation.hidden = false;\n this.$navigation.setAttribute(\"aria-hidden\", \"false\");\n }\n if (this.$topNavigation) {\n this.$topNavigation.hidden = false;\n this.$topNavigation.setAttribute(\"aria-hidden\", \"false\");\n }\n this.$toggleButton.setAttribute(\"aria-expanded\", \"true\");\n this.$toggleButton.setAttribute(\"title\", \"Close menu\");\n this.$toggleButton.classList.add(\n \"tna-global-header__navigation-button--opened\",\n );\n for (let i = 0; i < this.$links.length; i++) {\n this.$links[i].setAttribute(\"tabindex\", \"0\");\n }\n }\n}\n","export class Header {\n constructor($module) {\n this.$module = $module;\n this.$toggleButton =\n $module && $module.querySelector(\".tna-header__navigation-button\");\n this.$navigation =\n $module && $module.querySelector(\".tna-header__navigation\");\n this.$links =\n $module &&\n this.$navigation &&\n this.$navigation.querySelectorAll(\"[tabindex='0']\");\n this.menuOpened = false;\n this.mql = window.matchMedia(\"(max-width: 48em)\");\n\n if (!this.$module || !this.$toggleButton || !this.$navigation) {\n return;\n }\n\n this.$toggleButton.removeAttribute(\"hidden\");\n this.syncState();\n this.$toggleButton.addEventListener(\"click\", () =>\n this.handleToggleNavigation(),\n );\n if (\"addEventListener\" in this.mql) {\n this.mql.addEventListener(\"change\", () => this.syncState());\n } else {\n this.mql.addListener(() => this.syncState());\n }\n\n this.$module.addEventListener(\"keyup\", (e) => {\n if (e.code === \"Escape\") {\n if (this.menuOpened && this.mql.matches) {\n this.menuOpened = false;\n this.syncState();\n this.$toggleButton.focus();\n }\n }\n });\n }\n\n handleToggleNavigation() {\n this.menuOpened = !this.menuOpened;\n this.syncState();\n }\n\n syncState() {\n if (this.mql.matches) {\n if (this.menuOpened) {\n this.show();\n } else {\n this.hide();\n }\n } else {\n this.show();\n }\n }\n\n show() {\n this.$navigation.classList.add(\"tna-header__navigation--open\");\n this.$navigation.removeAttribute(\"hidden\");\n this.$navigation.setAttribute(\"aria-hidden\", \"false\");\n this.$toggleButton.setAttribute(\"aria-expanded\", \"true\");\n this.$toggleButton.setAttribute(\"title\", \"Close menu\");\n this.$toggleButton.classList.add(\"tna-header__navigation-button--opened\");\n\n for (let i = 0; i < this.$links.length; i++) {\n this.$links[i].setAttribute(\"tabindex\", \"0\");\n }\n }\n\n hide() {\n this.$navigation.classList.remove(\"tna-header__navigation--open\");\n this.$navigation.hidden = true;\n this.$navigation.setAttribute(\"aria-hidden\", \"true\");\n this.$toggleButton.setAttribute(\"aria-expanded\", \"false\");\n this.$toggleButton.setAttribute(\"title\", \"Open menu\");\n this.$toggleButton.classList.remove(\n \"tna-header__navigation-button--opened\",\n );\n\n for (let i = 0; i < this.$links.length; i++) {\n this.$links[i].setAttribute(\"tabindex\", \"-1\");\n }\n }\n}\n","import uuidv4 from \"../../lib/uuid.mjs\";\n\nexport class Picture {\n constructor($module) {\n this.$module = $module;\n this.$imageWrapper =\n $module && $module.querySelector(\".tna-picture__image-wrapper\");\n\n this.$transcriptToggle =\n this.$imageWrapper &&\n this.$imageWrapper.querySelector(\".tna-picture__toggle-transcript\");\n\n this.$transcript =\n $module && $module.querySelector(\".tna-picture__transcript\");\n this.transcriptOpened = false;\n\n if (\n !this.$module ||\n !this.$imageWrapper ||\n !this.$transcriptToggle ||\n !this.$transcript\n ) {\n return;\n }\n\n this.openLabel =\n this.$module.dataset.informationLabelOpen || \"Open transcript\";\n this.closeLabel =\n this.$module.dataset.informationLabelClose || \"Close transcript\";\n\n this.init();\n }\n\n init() {\n const uniqueId = `tna-picture-${uuidv4()}`;\n\n this.$transcriptToggle.removeAttribute(\"hidden\");\n this.$transcriptToggle.setAttribute(\"aria-controls\", uniqueId);\n this.$transcriptToggle.innerText = this.openLabel;\n this.$transcriptToggle.addEventListener(\"click\", () =>\n this.toggleTranscript(),\n );\n\n this.$transcript.setAttribute(\"id\", uniqueId);\n this.$transcript.setAttribute(\"hidden\", \"until-found\");\n\n this.$transcript.addEventListener(\"keydown\", (e) => {\n switch (e.key) {\n case \"Escape\":\n this.toggleTranscript();\n this.$transcriptToggle.focus();\n break;\n }\n });\n }\n\n toggleTranscript() {\n this.transcriptOpened = !this.transcriptOpened;\n if (this.transcriptOpened) {\n this.$transcriptToggle.setAttribute(\"aria-expanded\", true);\n this.$transcriptToggle.innerText = this.closeLabel;\n this.$transcript.removeAttribute(\"hidden\");\n } else {\n this.$transcriptToggle.setAttribute(\"aria-expanded\", false);\n this.$transcriptToggle.innerText = this.openLabel;\n this.$transcript.setAttribute(\"hidden\", \"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 this.$tabList.querySelectorAll(\".tna-tabs__button\");\n this.$tabItems = $module && $module.querySelectorAll(\".tna-tabs__item\");\n\n if (\n !this.$module ||\n !this.$tabList ||\n !this.$tabListItemLinks ||\n !this.$tabItems ||\n this.$tabListItemLinks.length !== this.$tabItems.length\n ) {\n return;\n }\n\n this.currentTabIndex = 0;\n this.init();\n }\n\n init() {\n this.$module.classList.add(\"tna-tabs--interactive\");\n this.$tabList.removeAttribute(\"hidden\");\n this.$tabListItemLinks.forEach(($tabListItemLink) => {\n const tabPanelID = $tabListItemLink.getAttribute(\"aria-controls\");\n $tabListItemLink.setAttribute(\"aria-selected\", false);\n const $tabPanel = document.getElementById(tabPanelID);\n $tabPanel.setAttribute(\"aria-labelledby\", $tabListItemLink.id);\n $tabPanel.setAttribute(\"role\", \"tabpanel\");\n $tabListItemLink.addEventListener(\n \"click\",\n (e) => this.handleItemLinkClick(e),\n true,\n );\n });\n this.switchTabByIndex(this.currentTabIndex);\n this.$module.addEventListener(\"keydown\", (e) =>\n this.handleItemLinkKeyDown(e),\n );\n }\n\n handleItemLinkClick(itemLinkClickEvent) {\n itemLinkClickEvent.preventDefault();\n const targetItem =\n itemLinkClickEvent.currentTarget.getAttribute(\"aria-controls\");\n this.switchTabByID(targetItem);\n }\n\n handleItemLinkKeyDown(itemLinkKeyDownEvent) {\n let preventDefaultKeyAction = false;\n switch (itemLinkKeyDownEvent.key) {\n case \"ArrowLeft\":\n case \"ArrowUp\":\n this.previousTab();\n preventDefaultKeyAction = true;\n break;\n case \"ArrowRight\":\n case \"ArrowDown\":\n this.nextTab();\n preventDefaultKeyAction = true;\n break;\n case \"Home\":\n this.switchTabByIndex(0, true);\n preventDefaultKeyAction = true;\n break;\n case \"End\":\n this.switchTabByIndex(this.$tabListItemLinks.length - 1, true);\n preventDefaultKeyAction = true;\n break;\n default:\n break;\n }\n if (preventDefaultKeyAction) {\n itemLinkKeyDownEvent.stopPropagation();\n itemLinkKeyDownEvent.preventDefault();\n }\n }\n\n nextTab() {\n if (this.currentTabIndex < this.$tabListItemLinks.length - 1) {\n this.switchTabByIndex(this.currentTabIndex + 1, true);\n } else {\n this.switchTabByIndex(0, true);\n }\n }\n\n previousTab() {\n if (this.currentTabIndex >= 1) {\n this.switchTabByIndex(this.currentTabIndex - 1, true);\n } else {\n this.switchTabByIndex(this.$tabListItemLinks.length - 1, true);\n }\n }\n\n switchTabByIndex(newIndex, switchFocus = false) {\n this.currentTabIndex = newIndex;\n this.$tabListItemLinks.forEach(($tabListItemLink, index) => {\n if (index === this.currentTabIndex) {\n $tabListItemLink.setAttribute(\"aria-selected\", true);\n $tabListItemLink.setAttribute(\"tabindex\", \"0\");\n if (switchFocus) {\n $tabListItemLink.focus();\n }\n } else {\n $tabListItemLink.setAttribute(\"aria-selected\", false);\n $tabListItemLink.setAttribute(\"tabindex\", \"-1\");\n }\n });\n this.$tabItems.forEach(($tabItem, index) => {\n if (index === this.currentTabIndex) {\n $tabItem.removeAttribute(\"hidden\");\n $tabItem.setAttribute(\"tabindex\", \"0\");\n } else {\n $tabItem.setAttribute(\"hidden\", \"until-found\");\n $tabItem.setAttribute(\"tabindex\", \"-1\");\n }\n });\n }\n\n switchTabByID(targetId) {\n const index = Array.from(this.$tabItems).findIndex(\n ($tabItem) => $tabItem.getAttribute(\"id\") === targetId,\n );\n this.switchTabByIndex(index);\n }\n}\n","export class TextInput {\n constructor($module) {\n this.$module = $module;\n this.$input = $module && $module.querySelector(\".tna-text-input\");\n\n if (!this.$module || !this.$input) {\n return;\n }\n\n if (this.$input.getAttribute(\"type\") === \"password\") {\n this.$textInputWrapper = document.createElement(\"div\");\n this.$textInputWrapper.classList.add(\"tna-text-input-wrapper\");\n\n this.$textInputPasswordToggle = document.createElement(\"button\");\n this.$textInputPasswordToggle.setAttribute(\"type\", \"button\");\n this.$textInputPasswordToggle.classList.add(\n \"tna-button\",\n \"tna-button--small\",\n \"tna-button--icon-only\",\n );\n this.updateTogglePasswordButtonText();\n\n this.$textInputWrapper.appendChild(this.$input);\n this.$textInputWrapper.appendChild(this.$textInputPasswordToggle);\n this.$module.appendChild(this.$textInputWrapper);\n\n this.$textInputPasswordToggle.addEventListener(\"click\", () => {\n this.togglePasswordType();\n this.$input.focus();\n });\n }\n }\n\n togglePasswordType() {\n if (this.$input.getAttribute(\"type\") === \"password\") {\n this.$input.setAttribute(\"type\", \"text\");\n } else {\n this.$input.setAttribute(\"type\", \"password\");\n }\n this.updateTogglePasswordButtonText();\n }\n\n updateTogglePasswordButtonText() {\n if (this.$input.getAttribute(\"type\") === \"password\") {\n this.$textInputPasswordToggle.innerHTML = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\" height=\"32\" aria-hidden=\"true\" focusable=\"false\"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d=\"M288 32c-80.8 0-145.5 36.8-192.6 80.6C48.6 156 17.3 208 2.5 243.7c-3.3 7.9-3.3 16.7 0 24.6C17.3 304 48.6 356 95.4 399.4C142.5 443.2 207.2 480 288 480s145.5-36.8 192.6-80.6c46.8-43.5 78.1-95.4 93-131.1c3.3-7.9 3.3-16.7 0-24.6c-14.9-35.7-46.2-87.7-93-131.1C433.5 68.8 368.8 32 288 32zM144 256a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm144-64c0 35.3-28.7 64-64 64c-7.1 0-13.9-1.2-20.3-3.3c-5.5-1.8-11.9 1.6-11.7 7.4c.3 6.9 1.3 13.8 3.2 20.7c13.7 51.2 66.4 81.6 117.6 67.9s81.6-66.4 67.9-117.6c-11.1-41.5-47.8-69.4-88.6-71.1c-5.8-.2-9.2 6.1-7.4 11.7c2.1 6.4 3.3 13.2 3.3 20.3z\"/></svg>Show password`;\n this.$textInputPasswordToggle.setAttribute(\"title\", \"Show password\");\n this.$textInputPasswordToggle.setAttribute(\"aria-title\", \"Show password\");\n } else {\n this.$textInputPasswordToggle.innerHTML = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\" height=\"32\" aria-hidden=\"true\" focusable=\"false\"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d=\"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L525.6 386.7c39.6-40.6 66.4-86.1 79.9-118.4c3.3-7.9 3.3-16.7 0-24.6c-14.9-35.7-46.2-87.7-93-131.1C465.5 68.8 400.8 32 320 32c-68.2 0-125 26.3-169.3 60.8L38.8 5.1zM223.1 149.5C248.6 126.2 282.7 112 320 112c79.5 0 144 64.5 144 144c0 24.9-6.3 48.3-17.4 68.7L408 294.5c8.4-19.3 10.6-41.4 4.8-63.3c-11.1-41.5-47.8-69.4-88.6-71.1c-5.8-.2-9.2 6.1-7.4 11.7c2.1 6.4 3.3 13.2 3.3 20.3c0 10.2-2.4 19.8-6.6 28.3l-90.3-70.8zM373 389.9c-16.4 6.5-34.3 10.1-53 10.1c-79.5 0-144-64.5-144-144c0-6.9 .5-13.6 1.4-20.2L83.1 161.5C60.3 191.2 44 220.8 34.5 243.7c-3.3 7.9-3.3 16.7 0 24.6c14.9 35.7 46.2 87.7 93 131.1C174.5 443.2 239.2 480 320 480c47.8 0 89.9-12.9 126.2-32.5L373 389.9z\"/></svg></i>Hide password`;\n this.$textInputPasswordToggle.setAttribute(\"title\", \"Hide password\");\n this.$textInputPasswordToggle.setAttribute(\"aria-title\", \"Hide password\");\n }\n }\n}\n","window.TNAFrontendCookies = window.TNAFrontendCookies || null;\nwindow.TNAFrontendCookieEvents = window.TNAFrontendCookieEvents || null;\n\nexport class CookieEventHandler {\n events = {};\n oneTimeEvents = {};\n\n constructor() {\n if (window.TNAFrontendCookieEvents) {\n return window.TNAFrontendCookieEvents;\n }\n window.TNAFrontendCookieEvents = this;\n }\n\n /**\n * Add an event listener.\n * @param {String} event - The event to add a listener for.\n * @param {Function} callback - The callback function to call when the event is triggered.\n */\n on(event, callback) {\n if (!Object.hasOwn(this.events, event)) {\n this.events[event] = [];\n }\n this.events[event] = [...this.events[event], callback];\n }\n\n once(event, callback) {\n if (!Object.hasOwn(this.oneTimeEvents, event)) {\n this.oneTimeEvents[event] = [];\n }\n this.oneTimeEvents[event] = [...this.oneTimeEvents[event], callback];\n }\n\n /** @protected */\n trigger(event, data = {}) {\n if (Object.hasOwn(this.events, event)) {\n this.events[event].forEach((eventToTrigger) =>\n eventToTrigger.call(this, data),\n );\n }\n if (Object.hasOwn(this.oneTimeEvents, event)) {\n for (let i = this.oneTimeEvents[event].length - 1; i >= 0; i--) {\n const eventToTrigger = this.oneTimeEvents[event][i];\n eventToTrigger.call(this, data);\n this.oneTimeEvents[event].splice(i, 1);\n }\n }\n }\n}\n\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 /** @protected */\n defaultAge = null;\n\n /**\n * Create a cookie handler.\n * @param {String} [options.extraPolicies=[]] - The extra cookie policies to manage in addition to essential, settings, usage and marketing.\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 * @param {String} [options.defaultAge=31536000] - The default age of non-session cookies.\n */\n constructor(options = {}) {\n const {\n extraPolicies = [],\n domain = null,\n path = null,\n secure = true,\n policiesKey = \"cookies_policy\",\n newInstance = false,\n defaultAge = 31536000, // 365 days\n } = options;\n if (newInstance) {\n this.destroyInstance();\n } else if (window.TNAFrontendCookies) {\n return window.TNAFrontendCookies;\n }\n this.extraPolicies = extraPolicies;\n if (domain === null) {\n this.domain = document.documentElement.dataset.tnaCookiesDomain || \"\";\n } else {\n this.domain = domain;\n }\n if (path === null) {\n this.path = document.documentElement.dataset.tnaCookiesPath || \"/\";\n } else {\n this.path = path;\n }\n this.secure = secure;\n this.policiesKey = policiesKey;\n this.defaultAge = defaultAge;\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 marketing: 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=this.defaultAge] - The maximum age of the cookie in seconds.\n * @param {String} [options.path=/] - The path to register the cookie for.\n * @param {String} [options.sameSite=Lax] - The sameSite attribute.\n * @param {String} [options.domain=this.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 * @param {String} [options.session=false] - Set a session cookie.\n */\n set(key, value, options = {}) {\n const {\n maxAge = this.defaultAge,\n sameSite = \"Lax\",\n domain = this.domain,\n path = this.path,\n secure = this.secure,\n session = false,\n } = options;\n if (!key) {\n return;\n }\n const cookie = `${encodeURIComponent(key)}=${encodeURIComponent(value)};${\n domain ? ` domain=${domain}; ` : \"\"\n } samesite=${sameSite}; path=${path}${!session ? `; max-age=${maxAge}` : \"\"}${\n secure ? \"; secure\" : \"\"\n }`;\n document.cookie = cookie;\n this.events.trigger(\"setCookie\", {\n key,\n value,\n maxAge,\n path,\n sameSite,\n domain,\n secure,\n session,\n cookie,\n });\n }\n\n /**\n * Delete a cookie.\n * @param {String} key - The cookie name.\n * @param {String} [path=/] - The path to the cookie is registered on.\n */\n delete(key, path = \"/\", domain = null) {\n const options = { maxAge: -1, path, domain: domain || undefined };\n this.set(key, \"\", options);\n this.events.trigger(\"deleteCookie\", { key, ...options });\n }\n\n /**\n * Delete all cookies.\n */\n deleteAll(path = \"/\", domain = null) {\n Object.keys(this.all).forEach((cookie) => {\n this.delete(cookie, path, domain);\n });\n this.events.trigger(\"deleteAllCookies\", { path, domain });\n }\n\n /**\n * Accept a policy.\n * @param {String} policy - The name of the policy.\n */\n acceptPolicy(policy) {\n this.setPolicy(policy, true);\n this.events.trigger(\"acceptPolicy\", policy);\n this.events.trigger(\"changePolicy\", { [policy]: true });\n }\n\n /**\n * Reject a policy.\n * @param {String} policy - The name of the policy.\n */\n rejectPolicy(policy) {\n this.setPolicy(policy, false);\n this.events.trigger(\"rejectPolicy\", policy);\n this.events.trigger(\"changePolicy\", { [policy]: false });\n }\n\n /**\n * Set a policy.\n * @param {String} policy - The name of the policy.\n * @param {Boolean} accepted - Whether the policy is accepted or not.\n */\n setPolicy(policy, accepted) {\n if (policy === \"essential\") {\n return;\n }\n this.savePolicies({\n ...this.policies,\n [policy]: accepted,\n essential: true,\n });\n this.events.trigger(\"changePolicy\", { [policy]: accepted });\n }\n\n /**\n * Accept all the cookie policies.\n */\n acceptAllPolicies() {\n const allPolicies = Object.fromEntries(\n Object.keys(this.policies).map((k) => [k.toLowerCase(), true]),\n );\n this.savePolicies(allPolicies);\n this.events.trigger(\"acceptAllPolicies\");\n this.events.trigger(\"changePolicy\", allPolicies);\n }\n\n /**\n * Reject all the cookie policies.\n */\n rejectAllPolicies() {\n const allPolicies = {\n ...Object.fromEntries(\n Object.keys(this.policies).map((k) => [k.toLowerCase(), false]),\n ),\n essential: true,\n };\n this.savePolicies(allPolicies);\n this.events.trigger(\"rejectAllPolicies\");\n this.events.trigger(\"changePolicy\", allPolicies);\n }\n\n /**\n * Commit policy preferences to the browser.\n * @param {object} policies - The policies to commit.\n */\n savePolicies(policies) {\n this.set(this.policiesKey, JSON.stringify(policies), {\n maxAge: 60 * 60 * 24 * 365,\n });\n }\n\n /**\n * Get the acceptance status of a policy.\n * @param {String} policy - The name of the policy.\n * @returns {Boolean}\n */\n isPolicyAccepted(policy) {\n return Object.hasOwn(this.policies, policy)\n ? this.policies[policy] === true\n : null;\n }\n\n /**\n * Add an event listener.\n * @param {String} event - The event to add a listener for.\n * @param {Function} callback - The callback function to call when the event is triggered.\n */\n on(event, callback) {\n this.events.on(event, callback);\n }\n\n /**\n * Add a one-time event listener.\n * @param {String} event - The event to add a listener for.\n * @param {Function} callback - The callback function to call when the event is triggered.\n */\n once(event, callback) {\n this.events.once(event, callback);\n }\n}\n","const uuidv4 = () =>\n ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, (c) =>\n (\n c ^\n (crypto.getRandomValues(new Uint8Array(1))[0] & (15 >> (c / 4)))\n ).toString(16),\n );\n\nexport default uuidv4;\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};"],"names":["root","factory","exports","module","define","amd","self","initAll","options","$scope","scope","HTMLElement","document","$body","documentElement","classList","add","onFirstTouch","window","removeEventListener","addEventListener","e","key","remove","querySelectorAll","forEach","$accordion","Accordion","$breadcrumbs","querySelector","Breadcrumbs","$cookieBanner","CookieBanner","$errorSummary","ErrorSummary","init","$footer","Footer","$gallery","Gallery","$globalHeader","GlobalHeader","$header","Header","$picture","Picture","$skipLink","SkipLink","$tabModule","Tabs","$textInput","TextInput","checkTableForScroll","$tableWrapper","scrollable","scrollWidth","clientWidth","$tableCaption","setAttribute","removeAttribute","$tableWrappers","matchMedia","evt","matches","dataset","wasClosed","getXPathTo","$element","id","body","tagName","ix","parentNode","siblings","childNodes","i","length","sibling","nodeType","includesAny","arr","values","some","v","includes","getClosestHeading","heading","$search","previousElementSibling","Array","from","innerText","parentElement","valueGetters","text","$el","replace","html","innerHTML","value","index","event","instance","checked","expanded","getAttribute","toString","closestHeading","areaName","rootEventName","rootData","data_component_name","events","eventName","targetElement","on","data","state","data_link_type","data_link","trim","group","_$scope$closest","closest","_$scope$querySelector","_$scope$querySelector2","hasAttribute","data_section","name","media_type","media_duration","media_provider","media_title","concat","media_progress","findIndex","$itemButton","media_action","_$scope$querySelector3","onCondition","data_position","image","imageSrc","imageAlt","componentAnalytics","_toConsumableArray","BreadcrumbAnalytics","CheckboxesAnalytics","DetailsAnalytics","FooterAnalytics","GalleryAnalytics","GlobalHeaderAnalytics","HeaderAnalytics","PictureAnalytics","RadiosAnalytics","SearchFieldAnalytics","SidebarAnalytics","TextInputAnalytics","TextareaAnalytics","EventTracker","_createClass","arguments","undefined","_classCallCheck","_defineProperty","Cookies","Date","_options$prefix","prefix","_options$documentScop","documentScope","this","_this","navigator","doNotTrack","cookies","isPolicyAccepted","enableTracking","policies","Object","hasOwn","disableTracking","_this2","componentConfig","addListeners","scopeArray","_this3","rootDefaultData","_typeof","scopeIndex","eventConfig","attachListener","_this4","_eventConfig$rootData","_eventConfig$onCondit","computedValueParameters","computedValue","apply","recordEvent","generateEventName","_objectSpread","xPath","timeSincePageLoad","startTime","fromEntries","entries","map","_ref","_ref2","_slicedToArray","valueOrFunction","call","push","_this5","head","$metaEl","RegExp","_window$matchMedia","_window","_window$matchMedia2","_window2","_window$matchMedia3","_window3","_window$matchMedia4","_window4","_window$matchMedia5","_window5","_window$matchMedia6","_window6","userPreferences","GA4","_EventTracker2","_this6","TNAFrontendAnalyticsGA4","_possibleConstructorReturn","_options$id","_options$prefix2","_options$initAll","_options$addTrackingC","addTrackingCode","dataLayer","gTagId","ga4Disable","set","start","_inherits","_this7","ga4Data","_ref3","_ref4","pushToDataLayer","trackingEnabled","trackingCodeAdded","Error","getTnaMetaTags","getUserPreferences","getTime","firstScript","getElementsByTagName","script","createElement","async","src","insertBefore","appendChild","_this8","keys","all","startsWith","ga4Id","ga4","helpers","$module","$items","allowMultipleItemsOpen","$item","initItem","initState","$heading","$content","$headingButton","nextSibling","closeItem","openItem","closeAllItemsExcept","$excludeItem","filter","$breadcrumbsList","contains","uniqueId","uuidv4","$expandable","style","display","$expandButton","focus","$acceptButton","$rejectButton","$prompt","$acceptedMessage","$rejectedMessage","$closeButtons","extraPolicies","split","x","policy","domain","path","secure","policiesKey","newInstance","cookiePreferencesSet","preferencesKey","hasValue","accept","reject","complete","acceptAllPolicies","rejectAllPolicies","$closeButton","close","disableAutofocus","setFocus","_options$onBeforeFocu","isFocusable","onBlur","_options$onBlur","once","onBeforeFocus","$themeSelector","$tnaTemplate","$themeSelectorButtons","$themeSelectorButton","$button","target","setTheme","selectThemeSelectorButton","showThemeSelector","settings","hideThemeSelector","exists","$currentThemeButton","find","get","theme","$selectedButton","$itemsContainer","$navigation","$navigationItems","$options","$navigationButtons","$showIndex","$enterFullscreen","$exitFullscreen","$navigationButtonPrev","$navigationButtonNext","syncFullScreen","setup","allowGridIndex","showIndex","currentId","showItem","_this$$showIndex","_this$$navigationButt","_this$$navigationButt2","_this$$navigationButt3","_this$$enterFullscree","_this$$exitFullscreen","_this$$enterFullscree2","preventDefaultKeyAction","showPreviousItem","showNextItem","showFirstItem","showLastItem","stopPropagation","preventDefault","fullscreenEnabled","enterFullScreen","exitFullScreen","$liveRegion","prepend","_this$$showIndex2","_this$$showIndex3","isFullScreen","scrollIntoView","block","textContent","getCurrentItemIndex","nextIndexToShow","fullscreenElement","requestFullscreen","exitFullscreen","$toggleButton","$topNavigation","$links","menuOpened","mql","syncState","handleToggleNavigation","addListener","code","show","hide","hidden","$imageWrapper","$transcriptToggle","$transcript","transcriptOpened","openLabel","informationLabelOpen","closeLabel","informationLabelClose","toggleTranscript","linkedElementId","pop","$linkedElement","getElementById","focusLinkedElement","linkedElementListener","removeFocusProperties","$tabList","$tabListItemLinks","$tabItems","currentTabIndex","$tabListItemLink","tabPanelID","$tabPanel","handleItemLinkClick","switchTabByIndex","handleItemLinkKeyDown","itemLinkClickEvent","targetItem","currentTarget","switchTabByID","itemLinkKeyDownEvent","previousTab","nextTab","newIndex","switchFocus","$tabItem","targetId","$input","$textInputWrapper","$textInputPasswordToggle","updateTogglePasswordButtonText","togglePasswordType","TNAFrontendCookies","TNAFrontendCookieEvents","CookieEventHandler","callback","oneTimeEvents","eventToTrigger","splice","_options$extraPolicie","_options$domain","_options$path","_options$secure","_options$policiesKey","_options$newInstance","_options$defaultAge","defaultAge","destroyInstance","tnaCookiesDomain","tnaCookiesPath","savePolicies","k","toLowerCase","usage","marketing","essential","deserialised","cookie","parts","JSON","parse","decodeURIComponent","_options$maxAge","maxAge","_options$sameSite","sameSite","_options$domain2","_options$path2","_options$secure2","_options$session","session","encodeURIComponent","trigger","setPolicy","accepted","allPolicies","stringify","c","crypto","getRandomValues","Uint8Array","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","d","definition","o","defineProperty","enumerable","obj","prop","prototype","hasOwnProperty","r","Symbol","toStringTag"],"sourceRoot":""}