@nationalarchives/frontend 0.4.0 → 0.6.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 (115) hide show
  1. package/nationalarchives/all+analytics.js +1 -1
  2. package/nationalarchives/all+analytics.js.map +1 -1
  3. package/nationalarchives/all.css +1 -1
  4. package/nationalarchives/all.css.map +1 -1
  5. package/nationalarchives/all.js +1 -1
  6. package/nationalarchives/all.js.map +1 -1
  7. package/nationalarchives/all.mjs +6 -6
  8. package/nationalarchives/analytics.js +1 -1
  9. package/nationalarchives/analytics.js.map +1 -1
  10. package/nationalarchives/analytics.mjs +64 -14
  11. package/nationalarchives/assets/fonts/fa-brands-400.ttf +0 -0
  12. package/nationalarchives/assets/fonts/fa-brands-400.woff2 +0 -0
  13. package/nationalarchives/assets/fonts/fa-solid-900.ttf +0 -0
  14. package/nationalarchives/assets/fonts/fa-solid-900.woff2 +0 -0
  15. package/nationalarchives/components/accordion/accordion.css.map +1 -1
  16. package/nationalarchives/components/accordion/analytics.js +9 -0
  17. package/nationalarchives/components/breadcrumbs/analytics.js +5 -4
  18. package/nationalarchives/components/breadcrumbs/breadcrumbs.css.map +1 -1
  19. package/nationalarchives/components/button/button.css.map +1 -1
  20. package/nationalarchives/components/card/card.css.map +1 -1
  21. package/nationalarchives/components/checkboxes/checkboxes.css.map +1 -1
  22. package/nationalarchives/components/compound-filters/compound-filters.css.map +1 -1
  23. package/nationalarchives/components/cookie-banner/cookie-banner.js +1 -1
  24. package/nationalarchives/components/cookie-banner/cookie-banner.js.map +1 -1
  25. package/nationalarchives/components/cookie-banner/cookie-banner.mjs +6 -8
  26. package/nationalarchives/components/cookie-banner/fixtures.json +11 -11
  27. package/nationalarchives/components/cookie-banner/template.njk +1 -1
  28. package/nationalarchives/components/date-input/date-input.css.map +1 -1
  29. package/nationalarchives/components/date-search/date-search.css.map +1 -1
  30. package/nationalarchives/components/details/details.css.map +1 -1
  31. package/nationalarchives/components/error-summary/error-summary.css.map +1 -1
  32. package/nationalarchives/components/error-summary/error-summary.js +1 -1
  33. package/nationalarchives/components/error-summary/error-summary.js.map +1 -1
  34. package/nationalarchives/components/error-summary/error-summary.mjs +1 -1
  35. package/nationalarchives/components/error-summary/fixtures.json +1 -1
  36. package/nationalarchives/components/error-summary/template.njk +1 -1
  37. package/nationalarchives/components/files-list/files-list.css.map +1 -1
  38. package/nationalarchives/components/files-list/fixtures.json +4 -4
  39. package/nationalarchives/components/files-list/template.njk +1 -1
  40. package/nationalarchives/components/footer/analytics.js +9 -12
  41. package/nationalarchives/components/footer/fixtures.json +3 -3
  42. package/nationalarchives/components/footer/footer.css.map +1 -1
  43. package/nationalarchives/components/footer/footer.js +1 -1
  44. package/nationalarchives/components/footer/footer.js.map +1 -1
  45. package/nationalarchives/components/footer/template.njk +12 -13
  46. package/nationalarchives/components/gallery/analytics.js +25 -16
  47. package/nationalarchives/components/gallery/fixtures.json +3 -3
  48. package/nationalarchives/components/gallery/gallery.css +1 -1
  49. package/nationalarchives/components/gallery/gallery.css.map +1 -1
  50. package/nationalarchives/components/gallery/gallery.scss +1 -1
  51. package/nationalarchives/components/gallery/template.njk +3 -3
  52. package/nationalarchives/components/global-header/analytics.js +7 -8
  53. package/nationalarchives/components/global-header/fixtures.json +7 -7
  54. package/nationalarchives/components/global-header/global-header.css.map +1 -1
  55. package/nationalarchives/components/global-header/template.njk +4 -4
  56. package/nationalarchives/components/header/fixtures.json +1 -1
  57. package/nationalarchives/components/header/header.css.map +1 -1
  58. package/nationalarchives/components/header/template.njk +1 -1
  59. package/nationalarchives/components/hero/hero.css.map +1 -1
  60. package/nationalarchives/components/index-grid/index-grid.css.map +1 -1
  61. package/nationalarchives/components/pagination/fixtures.json +5 -5
  62. package/nationalarchives/components/pagination/template.njk +2 -2
  63. package/nationalarchives/components/phase-banner/phase-banner.css.map +1 -1
  64. package/nationalarchives/components/picture/fixtures.json +1 -1
  65. package/nationalarchives/components/picture/picture.css.map +1 -1
  66. package/nationalarchives/components/picture/picture.js +1 -1
  67. package/nationalarchives/components/picture/picture.js.map +1 -1
  68. package/nationalarchives/components/picture/picture.mjs +2 -4
  69. package/nationalarchives/components/picture/template.njk +1 -1
  70. package/nationalarchives/components/quick-filters/quick-filters.css.map +1 -1
  71. package/nationalarchives/components/radios/radios.css.map +1 -1
  72. package/nationalarchives/components/search-field/search-field.css.map +1 -1
  73. package/nationalarchives/components/select/select.css.map +1 -1
  74. package/nationalarchives/components/sidebar/analytics.js +26 -0
  75. package/nationalarchives/components/sidebar/sidebar.css.map +1 -1
  76. package/nationalarchives/components/skip-link/skip-link.css.map +1 -1
  77. package/nationalarchives/components/tabs/tabs.css.map +1 -1
  78. package/nationalarchives/components/text-input/text-input.css.map +1 -1
  79. package/nationalarchives/components/textarea/textarea.css.map +1 -1
  80. package/nationalarchives/components/warning/warning.css.map +1 -1
  81. package/nationalarchives/font-awesome.css +10 -6
  82. package/nationalarchives/font-awesome.css.map +1 -1
  83. package/nationalarchives/font-awesome.scss +1 -1
  84. package/nationalarchives/lib/analytics-helpers.mjs +2 -1
  85. package/nationalarchives/lib/cookies.mjs +2 -4
  86. package/nationalarchives/lib/font-awesome/LICENSE.txt +165 -0
  87. package/nationalarchives/lib/font-awesome/_animated.scss +0 -17
  88. package/nationalarchives/lib/font-awesome/_core.scss +17 -10
  89. package/nationalarchives/lib/font-awesome/_icons.scss +2 -2
  90. package/nationalarchives/lib/font-awesome/_list.scss +1 -1
  91. package/nationalarchives/lib/font-awesome/_mixins.scss +14 -14
  92. package/nationalarchives/lib/font-awesome/_rotated-flipped.scss +1 -1
  93. package/nationalarchives/lib/font-awesome/_shims.scss +616 -1075
  94. package/nationalarchives/lib/font-awesome/_variables.scss +75 -2
  95. package/nationalarchives/lib/font-awesome/brands.css +3 -3
  96. package/nationalarchives/lib/font-awesome/brands.css.map +1 -1
  97. package/nationalarchives/lib/font-awesome/brands.scss +4 -4
  98. package/nationalarchives/lib/font-awesome/fontawesome.css +3 -3
  99. package/nationalarchives/lib/font-awesome/fontawesome.css.map +1 -1
  100. package/nationalarchives/lib/font-awesome/fontawesome.scss +2 -2
  101. package/nationalarchives/lib/font-awesome/solid.css +2 -2
  102. package/nationalarchives/lib/font-awesome/solid.css.map +1 -1
  103. package/nationalarchives/lib/font-awesome/solid.scss +2 -2
  104. package/nationalarchives/lib/font-awesome/v4-shims.css +3 -3
  105. package/nationalarchives/lib/font-awesome/v4-shims.css.map +1 -1
  106. package/nationalarchives/lib/font-awesome/v4-shims.scss +2 -2
  107. package/nationalarchives/print.css.map +1 -1
  108. package/nationalarchives/prototype-kit.css +1 -1
  109. package/nationalarchives/prototype-kit.css.map +1 -1
  110. package/nationalarchives/templates/fixtures.json +5 -5
  111. package/nationalarchives/tools/_colour.scss +1 -1
  112. package/nationalarchives/utilities/_reset.scss +10 -0
  113. package/nationalarchives/utilities/typography/_index.scss +6 -2
  114. package/nationalarchives/variables/_features.scss +1 -1
  115. package/package.json +1 -1
@@ -1,2 +1,2 @@
1
- !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.TNAFrontendAnalytics=t():e.TNAFrontendAnalytics=t()}(self,(()=>(()=>{"use strict";var e={169:(e,t,n)=>{function a(e){return a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},a(e)}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function r(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){d(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e){return function(e){if(Array.isArray(e))return c(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return c(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?c(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function c(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}function l(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function u(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,v(a.key),a)}}function s(e,t,n){return t&&u(e.prototype,t),n&&u(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function d(e,t,n){return(t=v(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function v(e){var t=function(e){if("object"!=a(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=a(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==a(t)?t:t+""}n.d(t,{A:()=>f}),window.TNAFrontendCookies=window.TNAFrontendCookies||null,window.TNAFrontendCookieEvents=window.TNAFrontendCookieEvents||null;var m=function(){return s((function e(){if(l(this,e),d(this,"events",{}),d(this,"oneTimeEvents",{}),window.TNAFrontendCookieEvents)return window.TNAFrontendCookieEvents;window.TNAFrontendCookieEvents=this}),[{key:"on",value:function(e,t){Object.hasOwn(this.events,e)||(this.events[e]=[]),this.events[e]=[].concat(i(this.events[e]),[t])}},{key:"once",value:function(e,t){Object.hasOwn(this.oneTimeEvents,e)||(this.oneTimeEvents[e]=[]),this.oneTimeEvents[e]=[].concat(i(this.oneTimeEvents[e]),[t])}},{key:"trigger",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(Object.hasOwn(this.events,e)&&this.events[e].forEach((function(e){return e.call(t,n)})),Object.hasOwn(this.oneTimeEvents,e))for(var a=this.oneTimeEvents[e].length-1;a>=0;a--)this.oneTimeEvents[e][a].call(this,n),this.oneTimeEvents[e].splice(a,1)}}])}(),f=function(){return s((function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};l(this,e),d(this,"extraPolicies",[]),d(this,"domain",""),d(this,"path",""),d(this,"secure",!0),d(this,"policiesKey",""),d(this,"events",null),d(this,"defaultAge",null);var n=t.extraPolicies,a=void 0===n?[]:n,o=t.domain,r=void 0===o?null:o,i=t.path,c=void 0===i?null:i,u=t.secure,s=void 0===u||u,v=t.policiesKey,f=void 0===v?"cookies_policy":v,g=t.newInstance,p=void 0!==g&&g,h=t.defaultAge,y=void 0===h?31536e3:h;if(p)this.destroyInstance();else if(window.TNAFrontendCookies)return window.TNAFrontendCookies;this.extraPolicies=a,this.domain=null===r?document.documentElement.getAttribute("data-tnacookiesdomain")||"":r,this.path=null===c?document.documentElement.getAttribute("data-tnacookiespath")||"/":c,this.secure=s,this.policiesKey=f,this.defaultAge=y,this.events=new m,this.init(),window.TNAFrontendCookies=this}),[{key:"init",value:function(){this.savePolicies(r(r(r({},Object.fromEntries(this.extraPolicies.map((function(e){return[e.toLowerCase(),!1]})))),{},{usage:!1,settings:!1,marketing:!1},this.policies),{},{essential:!0}))}},{key:"destroyInstance",value:function(){window.TNAFrontendCookies=null}},{key:"all",get:function(){var e={};return document.cookie.split("; ").filter((function(e){return e})).forEach((function(t){var n=t.trim().split("=");n[0]&&(e[n[0]]=n[1])})),e}},{key:"policies",get:function(){try{return JSON.parse(this.get(this.policiesKey)||"{}")}catch(e){return{}}}},{key:"exists",value:function(e){return Object.hasOwn(this.all,e)}},{key:"hasValue",value:function(e,t){return this.get(e)==t}},{key:"get",value:function(e){return this.exists(e)?decodeURIComponent(this.all[e]):null}},{key:"set",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},a=n.maxAge,o=void 0===a?this.defaultAge:a,r=n.sameSite,i=void 0===r?"Lax":r,c=n.domain,l=void 0===c?this.domain:c,u=n.path,s=void 0===u?this.path:u,d=n.secure,v=void 0===d?this.secure:d,m=n.session,f=void 0!==m&&m;if(e){var g="".concat(encodeURIComponent(e),"=").concat(encodeURIComponent(t),";").concat(l?" domain=".concat(l,"; "):""," samesite=").concat(i,"; path=").concat(s).concat(f?"":"; max-age=".concat(o)).concat(v?"; secure":"");document.cookie=g,this.events.trigger("setCookie",{key:e,value:t,maxAge:o,path:s,sameSite:i,domain:l,secure:v,session:f,cookie:g})}}},{key:"delete",value:function(e){var t={maxAge:-1,path:arguments.length>1&&void 0!==arguments[1]?arguments[1]:"/",domain:(arguments.length>2&&void 0!==arguments[2]?arguments[2]:null)||void 0};this.set(e,"",t),this.events.trigger("deleteCookie",r({key:e},t))}},{key:"deleteAll",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"/",n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;Object.keys(this.all).forEach((function(a){e.delete(a,t,n)})),this.events.trigger("deleteAllCookies",{path:t,domain:n})}},{key:"acceptPolicy",value:function(e){this.setPolicy(e,!0),this.events.trigger("acceptPolicy",e),this.events.trigger("changePolicy",d({},e,!0))}},{key:"rejectPolicy",value:function(e){this.setPolicy(e,!1),this.events.trigger("rejectPolicy",e),this.events.trigger("changePolicy",d({},e,!1))}},{key:"setPolicy",value:function(e,t){"essential"!==e&&(this.savePolicies(r(r({},this.policies),{},d(d({},e,t),"essential",!0))),this.events.trigger("changePolicy",d({},e,t)))}},{key:"acceptAllPolicies",value:function(){var e=Object.fromEntries(Object.keys(this.policies).map((function(e){return[e.toLowerCase(),!0]})));this.savePolicies(e),this.events.trigger("acceptAllPolicies"),this.events.trigger("changePolicy",e)}},{key:"rejectAllPolicies",value:function(){var e=r(r({},Object.fromEntries(Object.keys(this.policies).map((function(e){return[e.toLowerCase(),!1]})))),{},{essential:!0});this.savePolicies(e),this.events.trigger("rejectAllPolicies"),this.events.trigger("changePolicy",e)}},{key:"savePolicies",value:function(e){this.set(this.policiesKey,JSON.stringify(e),{maxAge:31536e3})}},{key:"isPolicyAccepted",value:function(e){return Object.hasOwn(this.policies,e)?!0===this.policies[e]:null}},{key:"on",value:function(e,t){this.events.on(e,t)}},{key:"once",value:function(e,t){this.events.once(e,t)}}])}()}},t={};function n(a){var o=t[a];if(void 0!==o)return o.exports;var r=t[a]={exports:{}};return e[a](r,r.exports,n),r.exports}n.d=(e,t)=>{for(var a in t)n.o(t,a)&&!n.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:t[a]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var a={};n.r(a),n.d(a,{EventTracker:()=>G,GA4:()=>B,helpers:()=>H});var o=n(169),r=function(e){if(""!==e.id)return'id("'+e.id+'")';if(e===document.body)return e.tagName;var t=0;if(!e.parentNode)return e.tagName;for(var n=e.parentNode.childNodes,a=0;a<n.length;a++){var o=n[a];if(o===e)return r(e.parentNode)+"/"+e.tagName+"["+(t+1)+"]";1===o.nodeType&&o.tagName===e.tagName&&t++}},i=function(e,t){return t.some((function(t){return e.includes(t)}))},c=function(e){var t="",n=e;do{for(;n.previousElementSibling;)if(n=n.previousElementSibling,["h1","h2","h3","h4","h5","h6"].includes(n.tagName)||n.classList.length&&i(Array.from(n.classList),["tna-heading-xl","tna-heading-l","tna-heading-m","tna-heading-s"])){t=n.innerText;break}n=n.parentElement}while(n.parentElement&&!t);return t},l={text:function(e){return e.innerText},html:function(e){return e.innerHTML},value:function(e){return e.value},index:function(e,t,n,a){return a},checked:function(e){return e.checked?"checked":"unchecked"},expanded:function(e){var t=e.getAttribute("aria-expanded");return null===t?null:"true"===t.toString()?"opened":"closed"},closestHeading:function(e){return c(e)}};const u=[{scope:".tna-breadcrumbs",areaName:"breadcrumbs",rootEventName:"select_navigation",events:[{eventName:"click",targetElement:"a.tna-breadcrumbs__link",on:"click",data:{state:"expand",value:l.html},rootData:{data_component_name:"Breadcrumb",data_link_type:"Breadcrumb link",data_link:l.text}},{eventName:"click",targetElement:".tna-breadcrumbs__item--expandable button.tna-breadcrumbs__link",on:"click",data:{state:"expand",value:l.html},rootData:{data_component_name:"Breadcrumb",data_link_type:"Breadcrumb expand",data_link:l.text}}]}],s=[{scope:".tna-checkboxes",areaName:"checkboxes",events:[{eventName:"toggle",targetElement:".tna-checkboxes__item input",on:"change",data:{state:l.checked,value:function(e,t,n){return e.parentNode.innerText},group:function(e,t,n){var a;return null===(a=t.closest(".tna-form__group"))||void 0===a||null===(a=a.querySelector(".tna-form__heading"))||void 0===a?void 0:a.innerText}}}]}],d=[{scope:".tna-details",areaName:"details",events:[{eventName:"click",targetElement:".tna-details__summary",on:"click",data:{state:function(e,t,n){var a,o;return null!==(a=null===(o=t.querySelector(".tna-details__details"))||void 0===o?void 0:o.hasAttribute("open"))&&void 0!==a&&a?"closed":"opened"},value:l.text}}]}],v=[{scope:".tna-footer",areaName:"footer",rootEventName:"global_navigation",events:[{eventName:"link.click",targetElement:".tna-footer__navigation-block-item-link",on:"click",data:{value:l.text},rootData:{data_component_name:"Footer",data_link_type:"Link",data_section:l.closestHeading,data_link:l.text}},{eventName:"social_link.click",targetElement:".tna-footer__social-item-link",on:"click",data:{value:l.text},rootData:{data_component_name:"Footer",data_link_type:"Icon",data_section:"Social media",data_link:function(e){return e.getAttribute("data-name")}}},{eventName:"legal_link.click",targetElement:".tna-footer__legal-item-link",on:"click",data:{value:l.text},rootData:{data_component_name:"Footer",data_link_type:"Link",data_section:"Legal information",data_link:l.text}},{eventName:"mailing_list.click",targetElement:".tna-footer__mailing-list a.tna-button",on:"click",data:{value:l.text},rootData:{data_component_name:"Footer",data_link_type:"Button",data_section:"Mailing list",data_link:l.text}},{eventName:"ogl.click",targetElement:".tna-footer__licence p a.tna-footer__link",on:"click",data:{value:l.text},rootData:{data_component_name:"Footer",data_link_type:"Link",data_section:"OGL",data_link:l.text}},{eventName:"govuk.click",targetElement:".tna-footer__govuk-link",on:"click",data:{value:l.text},rootData:{data_component_name:"Footer",data_link_type:"Logo",data_section:"GOV.UK",data_link:l.text}},{eventName:"theme.change",targetElement:".tna-footer__theme-selector-button",on:"click",data:{value:l.value}}]}],m=[{scope:".tna-gallery",areaName:"gallery",rootEventName:"select_feature",events:[{eventName:"click",targetElement:".tna-gallery__navigation-item",on:"click",data:{value:l.text},rootData:{data_component_name:"Gallery",data_link_type:"Pagination thumbnail",data_position:l.index}},{eventName:"click",targetElement:".tna-gallery__navigation-prev",on:"click",data:{value:function(e,t){return t.querySelector(".tna-gallery__item:not([hidden]) .tna-gallery__item-header").innerText}},rootData:{data_component_name:"Gallery",data_link_type:"Navigation button",data_link:l.text}},{eventName:"click",targetElement:".tna-gallery__navigation-next",on:"click",data:{value:function(e,t){return t.querySelector(".tna-gallery__item:not([hidden]) .tna-gallery__item-header").innerText}},rootData:{data_component_name:"Gallery",data_link_type:"Navigation button",data_link:l.text}},{eventName:"keypress",on:"keydown",data:{value:function(e,t,n){return n.key}}},{eventName:"enter-fullscreen",targetElement:'.tna-gallery__options button[value="enter-fullscreen"]',on:"click",rootData:{data_component_name:"Gallery",data_link_type:"Full screen button",data_link:l.text}},{eventName:"exit-fullscreen",targetElement:'.tna-gallery__options button[value="exit-fullscreen"]',on:"click",rootData:{data_component_name:"Gallery",data_link_type:"Full screen button",data_link:l.text}},{eventName:"index",targetElement:'.tna-gallery__options button[value="show-index"]',on:"click"}]}],f=[{scope:".tna-global-header",areaName:"header",rootEventName:"global_navigation",events:[{eventName:"toggle",targetElement:".tna-global-header__navigation-button",on:"click",data:{state:l.expanded},rootData:{data_component_name:"Header",data_link_type:"Mobile menu",data_link:function(e){var t=e.getAttribute("aria-expanded");return null===t?null:"true"===t.toString()?"Open menu":"Close menu"},data_section:"Burger menu"}},{eventName:"logo.click",targetElement:".tna-global-header__logo",on:"click",rootData:{data_component_name:"Header",data_link_type:"Logo",data_link:"The National Archives",data_section:"Top navigation and logo"}},{eventName:"primary_link.click",targetElement:".tna-global-header__navigation-item-link",on:"click",data:{value:l.text},rootData:{data_component_name:"Header",data_link_type:"Menu",data_section:l.text,data_position:1,data_link:l.text}},{eventName:"secondary_link.click",targetElement:".tna-global-header__top-navigation-link",on:"click",data:{value:l.text},rootData:{data_component_name:"Header",data_link_type:"Icon",data_link:l.text,data_section:"Top navigation and logo"}}]}],g=[{scope:".tna-header",areaName:"header",events:[{eventName:"toggle",targetElement:".tna-header__navigation-button",on:"click",data:{state:l.expanded}}]}],p=[{scope:".tna-picture",areaName:"picture",events:[{eventName:"toggle_transcript",targetElement:".tna-picture__toggle-transcript",on:"click",data:{state:l.expanded,value:function(e,t,n){var a=c(t),o=t.querySelector(".tna-picture__image"),r=o.getAttribute("src"),i=o.getAttribute("alt"),l="".concat(i," (").concat(r,")");return a?"".concat(a," > ").concat(l):l}}}]}],h=[{scope:".tna-radios",areaName:"radios",events:[{eventName:"toggle",targetElement:".tna-radios__item input",on:"change",data:{state:l.checked,value:function(e,t,n){return e.parentNode.innerText},group:function(e,t,n){var a;return null===(a=t.closest(".tna-form__group"))||void 0===a||null===(a=a.querySelector(".tna-form__heading"))||void 0===a?void 0:a.innerText}}}]}],y=[{scope:".tna-search-field",areaName:"search-field",events:[{eventName:"blurred",targetElement:".tna-search-field__input",on:"blur",data:{value:l.value,group:function(e,t,n){var a;return null===(a=t.querySelector(".tna-form__heading"))||void 0===a?void 0:a.innerText}}}]}],b=[{scope:".tna-text-input",areaName:"text-input",events:[{eventName:"blurred",on:"blur",data:{value:l.value,group:function(e,t,n){var a;return null===(a=t.closest(".tna-form__group"))||void 0===a||null===(a=a.querySelector(".tna-form__heading"))||void 0===a?void 0:a.innerText}}}]}],_=[{scope:".tna-textarea",areaName:"textarea",events:[{eventName:"blurred",on:"blur",data:{value:l.value,group:function(e,t,n){var a;return null===(a=t.closest(".tna-form__group"))||void 0===a||null===(a=a.querySelector(".tna-form__heading"))||void 0===a?void 0:a.innerText}}}]}];function k(e,t){if(t&&("object"==T(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}function w(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(w=function(){return!!e})()}function E(e){return E=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},E(e)}function x(e,t){return x=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},x(e,t)}function N(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,o,r,i,c=[],l=!0,u=!1;try{if(r=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(a=r.call(n)).done)&&(c.push(a.value),c.length!==t);l=!0);}catch(e){u=!0,o=e}finally{try{if(!l&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(u)throw o}}return c}}(e,t)||F(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function O(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function A(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?O(Object(n),!0).forEach((function(t){D(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):O(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function T(e){return T="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},T(e)}function j(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function P(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,C(a.key),a)}}function S(e,t,n){return t&&P(e.prototype,t),n&&P(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function D(e,t,n){return(t=C(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function C(e){var t=function(e){if("object"!=T(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=T(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==T(t)?t:t+""}function L(e){return function(e){if(Array.isArray(e))return I(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||F(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function F(e,t){if(e){if("string"==typeof e)return I(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?I(e,t):void 0}}function I(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}var q=[].concat(L([{scope:".tna-accordion",areaName:"accordion",events:[{eventName:"click",targetElement:".tna-accordion__summary",on:"click",data:{state:l.expanded,value:l.text}}]}]),L(u),L(s),L(d),L(v),L(m),L(f),L(g),L([{scope:".tna-hero",areaName:"hero",events:[{eventName:"toggle_caption",targetElement:".tna-hero__details-summary",on:"click",data:{state:function(e,t,n){var a,o;return null!==(a=null===(o=t.querySelector(".tna-hero__details"))||void 0===o?void 0:o.hasAttribute("open"))&&void 0!==a&&a?"closed":"opened"},value:function(e,t,n){var a;return null===(a=t.querySelector("img[alt]"))||void 0===a?void 0:a.getAttribute("alt")}}}]}]),L(p),L(h),L(y),L(b),L(_)),G=function(){return S((function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};j(this,e),D(this,"cookies",new o.A),D(this,"events",[]),D(this,"startTime",new Date),D(this,"prefix","tna"),D(this,"document",document);var n=t.prefix,a=void 0===n?null:n,r=t.documentScope,i=void 0===r?document:r;a&&(this.prefix=a),i&&(this.document=i)}),[{key:"start",value:function(e){var t=this;navigator.doNotTrack&&1===navigator.doNotTrack||(this.cookies.isPolicyAccepted("usage")&&this.enableTracking(),this.cookies.on("changePolicy",(function(e){Object.hasOwn(e,"usage")&&(e.usage?t.enableTracking():t.disableTracking())})),e&&this.initAll())}},{key:"enableTracking",value:function(){}},{key:"disableTracking",value:function(){}},{key:"initAll",value:function(){var e=this;q.forEach((function(t){e.addListeners(t.scope,t.areaName,t.events,t.rootEventName||"")}))}},{key:"addListeners",value:function(e,t,n){var a,o=this,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"";"string"==typeof e?a=Array.from(this.document.querySelectorAll(e)):"object"===T(e)&&(a=[e]),a&&a.forEach((function(a){n.forEach((function(n){n.on&&(n.targetElement?Array.from(a.querySelectorAll(n.targetElement)).forEach((function(i,c){return o.attachListener(i,a,r,n,e,t,c+1)})):o.attachListener(a,a,r,n,e,t,1))}))}))}},{key:"generateEventName",value:function(e,t){return"".concat(this.prefix,".").concat(e,".").concat(t.eventName||t.on)}},{key:"attachListener",value:function(e,t,n,a,o,i,c){var l=this,u=a.on,s=a.data,d=a.targetElement,v=a.rootData,m=void 0===v?{}:v;e.addEventListener(u,(function(u){return l.recordEvent(n?"".concat(l.prefix,".").concat(n):l.generateEventName(i,a),A(A({},s),{},{name:l.generateEventName(i,a),value:null!=s&&s.value?l.computedValue(s.value,e,t,u,c):null,state:null!=s&&s.state?l.computedValue(s.state,e,t,u,c):null,group:null!=s&&s.group?l.computedValue(s.group,e,t,u,c):null,xPath:r(e),targetElement:d,timeSincePageLoad:new Date-l.startTime,index:c,scope:o,areaName:i}),Object.fromEntries(Object.entries(m).map((function(n){var a=N(n,2),o=a[0],r=a[1];return[o,l.computedValue(r,e,t,u,c)]}))))}))}},{key:"computedValue",value:function(e,t,n,a,o){return"function"==typeof e?e.call(this,t,n,a,o):null!=e?e:null}},{key:"recordEvent",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};this.events.push(A(D({event:e},"".concat(this.prefix,".event"),t),n))}},{key:"getTnaMetaTags",value:function(){return Object.fromEntries(Array.from(document.head.querySelectorAll("meta[name^='".concat(this.prefix,".'][content]"))).map((function(e){return[e.getAttribute("name"),e.getAttribute("content")]})))}}])}(),B=function(e){function t(){var e,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(j(this,t),window.TNAFrontendAnalyticsGA4)return k(e,window.TNAFrontendAnalyticsGA4);var a,o,r,i=n.id,c=void 0===i?"":i,l=n.prefix,u=void 0===l?null:l,s=n.initAll,d=void 0===s||s,v=n.addTrackingCode,m=void 0===v||v;return a=this,r=[{prefix:u}],o=E(o=t),D(e=k(a,w()?Reflect.construct(o,r||[],E(a).constructor):o.apply(a,r)),"addTrackingCode",!0),D(e,"trackingCodeAdded",!1),D(e,"trackingEnabled",!1),D(e,"gTagId",void 0),window.TNAFrontendAnalyticsGA4=e,e.addTrackingCode=m,window.dataLayer=window.dataLayer||[],c&&(e.gTagId=c,e.ga4Disable="ga-disable-".concat(e.gTagId),e.cookies.isPolicyAccepted("usage")||(window[e.ga4Disable]=!0,e.cookies.set(e.ga4Disable,"true"))),e.start(d),e}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&x(e,t)}(t,e),S(t,[{key:"destroy",value:function(){window.TNAFrontendAnalyticsGA4=null}},{key:"recordEvent",value:function(e,t){var n=this,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=A(A({event:e},Object.fromEntries(Object.entries(t).map((function(e){var t=N(e,2),a=t[0],o=t[1];return["".concat(n.prefix,".event.").concat(a),o]})))),a);this.pushToDataLayer(o)}},{key:"gtag",value:function(){this.pushToDataLayer(arguments)}},{key:"pushToDataLayer",value:function(e){window.dataLayer.push(e)}},{key:"enableTracking",value:function(){if(!this.trackingEnabled){if(window[this.ga4Disable]=!1,this.cookies.set(this.ga4Disable,"false"),!this.trackingCodeAdded&&this.addTrackingCode){if(!this.gTagId)throw Error("ID was not specified");var e=this.getTnaMetaTags();this.pushToDataLayer(A(A({},e),{},{"gtm.start":(new Date).getTime(),event:"gtm.js"}));var t=document.getElementsByTagName("script")[0],n=document.createElement("script");n.async=!0,n.src="https://www.googletagmanager.com/gtm.js?id=".concat(this.gTagId,"&l=dataLayer"),t?t.parentNode.insertBefore(n,t):document.head.appendChild(n),this.trackingCodeAdded=!0}this.trackingEnabled=!0}}},{key:"disableTracking",value:function(){var e=this;this.trackingEnabled&&(window[this.ga4Disable]=!0,this.cookies.set(this.ga4Disable,"true"),Object.keys(this.cookies.all).forEach((function(t){t.startsWith("_ga")&&e.cookies.delete(t)})),this.trackingEnabled=!1)}}])}(G),M=document.documentElement.getAttribute("data-ga4");M&&new B({id:M});var H={getXPathTo:r,getClosestHeading:c,valueGetters:l};return a})()));
1
+ !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.TNAFrontendAnalytics=t():e.TNAFrontendAnalytics=t()}(self,(()=>(()=>{"use strict";var e={169:(e,t,n)=>{function a(e){return a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},a(e)}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function r(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){d(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e){return function(e){if(Array.isArray(e))return l(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return l(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?l(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function l(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}function c(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function u(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,v(a.key),a)}}function s(e,t,n){return t&&u(e.prototype,t),n&&u(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function d(e,t,n){return(t=v(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function v(e){var t=function(e){if("object"!=a(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=a(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==a(t)?t:t+""}n.d(t,{A:()=>m}),window.TNAFrontendCookies=window.TNAFrontendCookies||null,window.TNAFrontendCookieEvents=window.TNAFrontendCookieEvents||null;var f=function(){return s((function e(){if(c(this,e),d(this,"events",{}),d(this,"oneTimeEvents",{}),window.TNAFrontendCookieEvents)return window.TNAFrontendCookieEvents;window.TNAFrontendCookieEvents=this}),[{key:"on",value:function(e,t){Object.hasOwn(this.events,e)||(this.events[e]=[]),this.events[e]=[].concat(i(this.events[e]),[t])}},{key:"once",value:function(e,t){Object.hasOwn(this.oneTimeEvents,e)||(this.oneTimeEvents[e]=[]),this.oneTimeEvents[e]=[].concat(i(this.oneTimeEvents[e]),[t])}},{key:"trigger",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(Object.hasOwn(this.events,e)&&this.events[e].forEach((function(e){return e.call(t,n)})),Object.hasOwn(this.oneTimeEvents,e))for(var a=this.oneTimeEvents[e].length-1;a>=0;a--)this.oneTimeEvents[e][a].call(this,n),this.oneTimeEvents[e].splice(a,1)}}])}(),m=function(){return s((function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};c(this,e),d(this,"extraPolicies",[]),d(this,"domain",""),d(this,"path",""),d(this,"secure",!0),d(this,"policiesKey",""),d(this,"events",null),d(this,"defaultAge",null);var n=t.extraPolicies,a=void 0===n?[]:n,o=t.domain,r=void 0===o?null:o,i=t.path,l=void 0===i?null:i,u=t.secure,s=void 0===u||u,v=t.policiesKey,m=void 0===v?"cookies_policy":v,g=t.newInstance,p=void 0!==g&&g,h=t.defaultAge,y=void 0===h?31536e3:h;if(p)this.destroyInstance();else if(window.TNAFrontendCookies)return window.TNAFrontendCookies;this.extraPolicies=a,this.domain=null===r?document.documentElement.dataset.tnaCookiesDomain||"":r,this.path=null===l?document.documentElement.dataset.tnaCookiesPath||"/":l,this.secure=s,this.policiesKey=m,this.defaultAge=y,this.events=new f,this.init(),window.TNAFrontendCookies=this}),[{key:"init",value:function(){this.savePolicies(r(r(r({},Object.fromEntries(this.extraPolicies.map((function(e){return[e.toLowerCase(),!1]})))),{},{usage:!1,settings:!1,marketing:!1},this.policies),{},{essential:!0}))}},{key:"destroyInstance",value:function(){window.TNAFrontendCookies=null}},{key:"all",get:function(){var e={};return document.cookie.split("; ").filter((function(e){return e})).forEach((function(t){var n=t.trim().split("=");n[0]&&(e[n[0]]=n[1])})),e}},{key:"policies",get:function(){try{return JSON.parse(this.get(this.policiesKey)||"{}")}catch(e){return{}}}},{key:"exists",value:function(e){return Object.hasOwn(this.all,e)}},{key:"hasValue",value:function(e,t){return this.get(e)==t}},{key:"get",value:function(e){return this.exists(e)?decodeURIComponent(this.all[e]):null}},{key:"set",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},a=n.maxAge,o=void 0===a?this.defaultAge:a,r=n.sameSite,i=void 0===r?"Lax":r,l=n.domain,c=void 0===l?this.domain:l,u=n.path,s=void 0===u?this.path:u,d=n.secure,v=void 0===d?this.secure:d,f=n.session,m=void 0!==f&&f;if(e){var g="".concat(encodeURIComponent(e),"=").concat(encodeURIComponent(t),";").concat(c?" domain=".concat(c,"; "):""," samesite=").concat(i,"; path=").concat(s).concat(m?"":"; max-age=".concat(o)).concat(v?"; secure":"");document.cookie=g,this.events.trigger("setCookie",{key:e,value:t,maxAge:o,path:s,sameSite:i,domain:c,secure:v,session:m,cookie:g})}}},{key:"delete",value:function(e){var t={maxAge:-1,path:arguments.length>1&&void 0!==arguments[1]?arguments[1]:"/",domain:(arguments.length>2&&void 0!==arguments[2]?arguments[2]:null)||void 0};this.set(e,"",t),this.events.trigger("deleteCookie",r({key:e},t))}},{key:"deleteAll",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"/",n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;Object.keys(this.all).forEach((function(a){e.delete(a,t,n)})),this.events.trigger("deleteAllCookies",{path:t,domain:n})}},{key:"acceptPolicy",value:function(e){this.setPolicy(e,!0),this.events.trigger("acceptPolicy",e),this.events.trigger("changePolicy",d({},e,!0))}},{key:"rejectPolicy",value:function(e){this.setPolicy(e,!1),this.events.trigger("rejectPolicy",e),this.events.trigger("changePolicy",d({},e,!1))}},{key:"setPolicy",value:function(e,t){"essential"!==e&&(this.savePolicies(r(r({},this.policies),{},d(d({},e,t),"essential",!0))),this.events.trigger("changePolicy",d({},e,t)))}},{key:"acceptAllPolicies",value:function(){var e=Object.fromEntries(Object.keys(this.policies).map((function(e){return[e.toLowerCase(),!0]})));this.savePolicies(e),this.events.trigger("acceptAllPolicies"),this.events.trigger("changePolicy",e)}},{key:"rejectAllPolicies",value:function(){var e=r(r({},Object.fromEntries(Object.keys(this.policies).map((function(e){return[e.toLowerCase(),!1]})))),{},{essential:!0});this.savePolicies(e),this.events.trigger("rejectAllPolicies"),this.events.trigger("changePolicy",e)}},{key:"savePolicies",value:function(e){this.set(this.policiesKey,JSON.stringify(e),{maxAge:31536e3})}},{key:"isPolicyAccepted",value:function(e){return Object.hasOwn(this.policies,e)?!0===this.policies[e]:null}},{key:"on",value:function(e,t){this.events.on(e,t)}},{key:"once",value:function(e,t){this.events.once(e,t)}}])}()}},t={};function n(a){var o=t[a];if(void 0!==o)return o.exports;var r=t[a]={exports:{}};return e[a](r,r.exports,n),r.exports}n.d=(e,t)=>{for(var a in t)n.o(t,a)&&!n.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:t[a]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var a={};n.r(a),n.d(a,{EventTracker:()=>M,GA4:()=>R,helpers:()=>K});var o=n(169),r=function(e){if(""!==e.id)return'id("'+e.id+'")';if(e===document.body)return e.tagName;var t=0;if(!e.parentNode)return e.tagName;for(var n=e.parentNode.childNodes,a=0;a<n.length;a++){var o=n[a];if(o===e)return r(e.parentNode)+"/"+e.tagName+"["+(t+1)+"]";1===o.nodeType&&o.tagName===e.tagName&&t++}},i=function(e,t){return t.some((function(t){return e.includes(t)}))},l=function(e){var t="",n=e;do{for(;n.previousElementSibling;)if(n=n.previousElementSibling,["h1","h2","h3","h4","h5","h6"].includes(n.tagName)||n.classList.length&&i(Array.from(n.classList),["tna-heading-xl","tna-heading-l","tna-heading-m","tna-heading-s"])){t=n.innerText;break}n=n.parentElement}while(n.parentElement&&!t);return t},c={text:function(e){return e.innerText.replace(/\n/g," ")},html:function(e){return e.innerHTML},value:function(e){return e.value},index:function(e,t,n,a){return a},instance:function(e,t,n,a,o){return o},checked:function(e){return e.checked?"checked":"unchecked"},expanded:function(e){var t=e.getAttribute("aria-expanded");return null===t?null:"true"===t.toString()?"opened":"closed"},closestHeading:function(e){return l(e)}};const u=[{scope:".tna-breadcrumbs",areaName:"breadcrumbs",rootEventName:"select_navigation",rootData:{data_component_name:"breadcrumbs"},events:[{eventName:"click",targetElement:"a.tna-breadcrumbs__link",on:"click",data:{state:"expand",value:c.html},rootData:{data_link_type:"breadcrumb_link",data_link:c.text}},{eventName:"click",targetElement:".tna-breadcrumbs__item--expandable button.tna-breadcrumbs__link",on:"click",data:{state:"expand",value:c.html},rootData:{data_link_type:"breadcrumb_expand",data_link:c.text}}]}],s=[{scope:".tna-checkboxes",areaName:"checkboxes",events:[{eventName:"toggle",targetElement:".tna-checkboxes__item input",on:"change",data:{state:c.checked,value:function(e,t,n){return e.parentNode.innerText},group:function(e,t,n){var a;return null===(a=t.closest(".tna-form__group"))||void 0===a||null===(a=a.querySelector(".tna-form__heading"))||void 0===a?void 0:a.innerText}}}]}],d=[{scope:".tna-details",areaName:"details",events:[{eventName:"click",targetElement:".tna-details__summary",on:"click",data:{state:function(e,t,n){var a,o;return null!==(a=null===(o=t.querySelector(".tna-details__details"))||void 0===o?void 0:o.hasAttribute("open"))&&void 0!==a&&a?"closed":"opened"},value:c.text}}]}],v=[{scope:".tna-footer",areaName:"footer",rootEventName:"global_navigation",rootData:{data_component_name:"footer"},events:[{eventName:"link.click",targetElement:".tna-footer__navigation-block-item-link",on:"click",data:{value:c.text},rootData:{data_link_type:"link",data_section:c.closestHeading,data_link:c.text}},{eventName:"social_link.click",targetElement:".tna-footer__social-item-link",on:"click",data:{value:c.text},rootData:{data_link_type:"icon",data_section:"Social media",data_link:function(e){return e.dataset.name}}},{eventName:"legal_link.click",targetElement:".tna-footer__legal-item-link",on:"click",data:{value:c.text},rootData:{data_link_type:"link",data_section:"Legal information",data_link:c.text}},{eventName:"mailing_list.click",targetElement:".tna-footer__mailing-list a.tna-button",on:"click",data:{value:c.text},rootData:{data_link_type:"button",data_section:"Mailing list",data_link:c.text}},{eventName:"ogl.click",targetElement:".tna-footer__licence p a.tna-footer__link",on:"click",data:{value:c.text},rootData:{data_link_type:"link",data_section:"OGL",data_link:c.text}},{eventName:"govuk.click",targetElement:".tna-footer__govuk-link",on:"click",data:{value:c.text},rootData:{data_link_type:"Logo",data_section:"GOV.UK",data_link:c.text}},{eventName:"theme.change",targetElement:".tna-footer__theme-selector-button",on:"click",data:{value:c.value}}]}],f=[{scope:".tna-gallery",areaName:"gallery",rootEventName:"select_media",rootData:{media_type:"gallery",media_duration:function(e,t){return t.querySelectorAll(".tna-gallery__navigation-item").length},media_provider:"tna",media_title:function(e,t,n,a,o){var r;return(null===(r=t.querySelector(".tna-gallery__header-inner"))||void 0===r?void 0:r.innerText)||"gallery_".concat(o)},media_progress:function(e,t){return(Array.from(t.querySelectorAll(".tna-gallery__navigation-item")).findIndex((function(e){return"true"===e.getAttribute("aria-current")}))||-1)+1}},events:[{eventName:"click",targetElement:".tna-gallery__navigation-item",on:"click",data:{value:c.text},rootData:{data_link:"image",media_action:"progress",media_progress:c.index}},{eventName:"click",targetElement:".tna-gallery__navigation-prev",on:"click",data:{value:function(e,t){return t.querySelector(".tna-gallery__item:not([hidden]) .tna-gallery__item-header").innerText}},rootData:{data_link:"previous",media_action:"progress"}},{eventName:"click",targetElement:".tna-gallery__navigation-next",on:"click",data:{value:function(e,t){return t.querySelector(".tna-gallery__item:not([hidden]) .tna-gallery__item-header").innerText}},rootData:{data_link:"next",media_action:"progress"}},{eventName:"keypress",on:"keydown",data:{value:function(e,t,n){return n.key}}},{eventName:"enter-fullscreen",targetElement:'.tna-gallery__options button[value="enter-fullscreen"]',on:"click",rootData:{data_link:"enter_full_screen_button"}},{eventName:"exit-fullscreen",targetElement:'.tna-gallery__options button[value="exit-fullscreen"]',on:"click",rootData:{data_link:"exit_full_screen_button"}},{eventName:"index",targetElement:'.tna-gallery__options button[value="show-index"]',on:"click"}]}],m=[{scope:".tna-global-header",areaName:"header",rootEventName:"global_navigation",rootData:{data_component_name:"header"},events:[{eventName:"toggle",targetElement:".tna-global-header__navigation-button",on:"click",data:{state:c.expanded},rootData:{data_link_type:"mobile_menu",data_link:function(e){var t=e.getAttribute("aria-expanded");return null===t?null:"true"===t.toString()?"Open menu":"Close menu"},data_section:"Burger menu"}},{eventName:"logo.click",targetElement:".tna-global-header__logo",on:"click",rootData:{data_link_type:"logo",data_link:"The National Archives",data_section:"Top navigation and logo"}},{eventName:"primary_link.click",targetElement:".tna-global-header__navigation-item-link",on:"click",data:{value:c.text},rootData:{data_link_type:"menu",data_section:c.text,data_position:1,data_link:c.text}},{eventName:"secondary_link.click",targetElement:".tna-global-header__top-navigation-link",on:"click",data:{value:c.text},rootData:{data_link_type:"icon",data_link:c.text,data_section:"Top navigation and logo"}}]}],g=[{scope:".tna-header",areaName:"header",events:[{eventName:"toggle",targetElement:".tna-header__navigation-button",on:"click",data:{state:c.expanded}}]}],p=[{scope:".tna-picture",areaName:"picture",events:[{eventName:"toggle_transcript",targetElement:".tna-picture__toggle-transcript",on:"click",data:{state:c.expanded,value:function(e,t,n){var a=l(t),o=t.querySelector(".tna-picture__image"),r=o.getAttribute("src"),i=o.getAttribute("alt"),c="".concat(i," (").concat(r,")");return a?"".concat(a," > ").concat(c):c}}}]}],h=[{scope:".tna-radios",areaName:"radios",events:[{eventName:"toggle",targetElement:".tna-radios__item input",on:"change",data:{state:c.checked,value:function(e,t,n){return e.parentNode.innerText},group:function(e,t,n){var a;return null===(a=t.closest(".tna-form__group"))||void 0===a||null===(a=a.querySelector(".tna-form__heading"))||void 0===a?void 0:a.innerText}}}]}],y=[{scope:".tna-search-field",areaName:"search-field",events:[{eventName:"blurred",targetElement:".tna-search-field__input",on:"blur",data:{value:c.value,group:function(e,t,n){var a;return null===(a=t.querySelector(".tna-form__heading"))||void 0===a?void 0:a.innerText}}}]}],b=[{scope:".tna-sidebar",areaName:"sidebar",rootEventName:"select_navigation",rootData:{data_component_name:"sidebar",data_section:function(e,t){return t.querySelector(".tna-sidebar__heading").innerText}},events:[{eventName:"click",targetElement:"a.tna-sidebar__link",on:"click",rootData:{data_link_type:"sidebar_link",data_link:c.text,data_position:c.index}}]}],_=[{scope:".tna-text-input",areaName:"text-input",events:[{eventName:"blurred",on:"blur",data:{value:c.value,group:function(e,t,n){var a;return null===(a=t.closest(".tna-form__group"))||void 0===a||null===(a=a.querySelector(".tna-form__heading"))||void 0===a?void 0:a.innerText}}}]}],k=[{scope:".tna-textarea",areaName:"textarea",events:[{eventName:"blurred",on:"blur",data:{value:c.value,group:function(e,t,n){var a;return null===(a=t.closest(".tna-form__group"))||void 0===a||null===(a=a.querySelector(".tna-form__heading"))||void 0===a?void 0:a.innerText}}}]}];function w(e,t){if(t&&("object"==j(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}function x(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(x=function(){return!!e})()}function E(e){return E=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},E(e)}function N(e,t){return N=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},N(e,t)}function A(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,o,r,i,l=[],c=!0,u=!1;try{if(r=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(a=r.call(n)).done)&&(l.push(a.value),l.length!==t);c=!0);}catch(e){u=!0,o=e}finally{try{if(!c&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(u)throw o}}return l}}(e,t)||q(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function O(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function T(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?O(Object(n),!0).forEach((function(t){C(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):O(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function j(e){return j="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},j(e)}function P(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function S(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,L(a.key),a)}}function D(e,t,n){return t&&S(e.prototype,t),n&&S(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function C(e,t,n){return(t=L(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function L(e){var t=function(e){if("object"!=j(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=j(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==j(t)?t:t+""}function I(e){return function(e){if(Array.isArray(e))return F(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||q(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function q(e,t){if(e){if("string"==typeof e)return F(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?F(e,t):void 0}}function F(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}var G=[].concat(I([{scope:".tna-accordion",areaName:"accordion",rootEventName:"select_feature",rootData:{data_component_name:"accordion"},events:[{eventName:"click",targetElement:".tna-accordion__summary",on:"click",data:{state:c.expanded,value:c.text},rootData:{data_link_type:c.expanded,data_link:c.text,data_position:c.index}}]}]),I(u),I(s),I(d),I(v),I(f),I(m),I(g),I([{scope:".tna-hero",areaName:"hero",events:[{eventName:"toggle_caption",targetElement:".tna-hero__details-summary",on:"click",data:{state:function(e,t,n){var a,o;return null!==(a=null===(o=t.querySelector(".tna-hero__details"))||void 0===o?void 0:o.hasAttribute("open"))&&void 0!==a&&a?"closed":"opened"},value:function(e,t,n){var a;return null===(a=t.querySelector("img[alt]"))||void 0===a?void 0:a.getAttribute("alt")}}}]}]),I(p),I(h),I(y),I(b),I(_),I(k)),M=function(){return D((function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};P(this,e),C(this,"cookies",new o.A),C(this,"events",[]),C(this,"startTime",new Date),C(this,"prefix","tna"),C(this,"document",document);var n=t.prefix,a=void 0===n?null:n,r=t.documentScope,i=void 0===r?document:r;a&&(this.prefix=a),i&&(this.document=i)}),[{key:"start",value:function(e){var t=this;navigator.doNotTrack&&1===navigator.doNotTrack||(this.cookies.isPolicyAccepted("usage")&&this.enableTracking(),this.cookies.on("changePolicy",(function(e){Object.hasOwn(e,"usage")&&(e.usage?t.enableTracking():t.disableTracking())})),e&&this.initAll())}},{key:"enableTracking",value:function(){}},{key:"disableTracking",value:function(){}},{key:"initAll",value:function(){var e=this;G.forEach((function(t){e.addListeners(t.scope,t.areaName,t.events,t.rootEventName||"",t.rootData||{})}))}},{key:"addListeners",value:function(e,t,n){var a,o=this,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"",i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};"string"==typeof e?a=Array.from(this.document.querySelectorAll(e)):"object"===j(e)&&(a=[e]),a&&a.forEach((function(a,l){n.forEach((function(n){n.on&&(n.targetElement?Array.from(a.querySelectorAll(n.targetElement)).forEach((function(c,u){return o.attachListener(c,a,r,i,n,e,t,u+1,l+1)})):o.attachListener(a,a,r,i,n,e,t,1,l+1))}))}))}},{key:"generateEventName",value:function(e,t){return"".concat(this.prefix,".").concat(e,".").concat(t.eventName||t.on)}},{key:"attachListener",value:function(e,t,n,a,o,i,l,c,u){var s=this,d=o.on,v=o.data,f=o.targetElement,m=o.rootData,g=void 0===m?{}:m;e.addEventListener(d,(function(d){return s.recordEvent(n?"".concat(s.prefix,".").concat(n):s.generateEventName(l,o),T(T({},v),{},{name:s.generateEventName(l,o),value:null!=v&&v.value?s.computedValue(v.value,e,t,d,c,u):null,state:null!=v&&v.state?s.computedValue(v.state,e,t,d,c,u):null,group:null!=v&&v.group?s.computedValue(v.group,e,t,d,c,u):null,xPath:r(e),targetElement:f,timeSincePageLoad:new Date-s.startTime,index:c,instance:u,scope:i,areaName:l}),Object.fromEntries(Object.entries(T(T({},a),g)).map((function(n){var a=A(n,2),o=a[0],r=a[1];return[o,s.computedValue(r,e,t,d,c,u)]}))))}))}},{key:"computedValue",value:function(e,t,n,a,o,r){return"function"==typeof e?e.call(this,t,n,a,o,r):null!=e?e:null}},{key:"recordEvent",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};this.events.push(T(T({event:e},t),n))}},{key:"getTnaMetaTags",value:function(){var e=this;return Object.fromEntries(Array.from(document.head.querySelectorAll('meta[name^="'.concat(this.prefix,'_root:"][content]'))).map((function(t){return[t.getAttribute("name").replace(new RegExp("^".concat(e.prefix,"_root:")),""),t.getAttribute("content")]})),Array.from(document.head.querySelectorAll('meta[name^="'.concat(this.prefix,'."][content]'))).map((function(e){return[e.getAttribute("name"),e.getAttribute("content")]})))}}])}(),R=function(e){function t(){var e,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(P(this,t),window.TNAFrontendAnalyticsGA4)return w(e,window.TNAFrontendAnalyticsGA4);var a,o,r,i=n.id,l=void 0===i?"":i,c=n.prefix,u=void 0===c?null:c,s=n.initAll,d=void 0===s||s,v=n.addTrackingCode,f=void 0===v||v;return a=this,r=[{prefix:u}],o=E(o=t),C(e=w(a,x()?Reflect.construct(o,r||[],E(a).constructor):o.apply(a,r)),"addTrackingCode",!0),C(e,"trackingCodeAdded",!1),C(e,"trackingEnabled",!1),C(e,"gTagId",void 0),window.TNAFrontendAnalyticsGA4=e,e.addTrackingCode=f,window.dataLayer=window.dataLayer||[],l&&(e.gTagId=l,e.ga4Disable="ga-disable-".concat(e.gTagId),e.cookies.isPolicyAccepted("usage")||(window[e.ga4Disable]=!0,e.cookies.set(e.ga4Disable,"true"))),e.start(d),e}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&N(e,t)}(t,e),D(t,[{key:"destroy",value:function(){window.TNAFrontendAnalyticsGA4=null}},{key:"recordEvent",value:function(e,t){var n=this,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=T(T({event:e},Object.fromEntries(Object.entries(t).map((function(e){var t=A(e,2),a=t[0],o=t[1];return["".concat(n.prefix,".event.").concat(a),o]})))),a);this.pushToDataLayer(o)}},{key:"gtag",value:function(){this.pushToDataLayer(arguments)}},{key:"pushToDataLayer",value:function(e){window.dataLayer.push(e)}},{key:"enableTracking",value:function(){if(!this.trackingEnabled){if(window[this.ga4Disable]=!1,this.cookies.set(this.ga4Disable,"false"),!this.trackingCodeAdded&&this.addTrackingCode){if(!this.gTagId)throw Error("ID was not specified");var e=this.getTnaMetaTags();this.pushToDataLayer(T(T({},e),{},{"gtm.start":(new Date).getTime(),event:"gtm.js"}));var t=document.getElementsByTagName("script")[0],n=document.createElement("script");n.async=!0,n.src="https://www.googletagmanager.com/gtm.js?id=".concat(this.gTagId,"&l=dataLayer"),t?t.parentNode.insertBefore(n,t):document.head.appendChild(n),this.trackingCodeAdded=!0}this.trackingEnabled=!0}}},{key:"disableTracking",value:function(){var e=this;this.trackingEnabled&&(window[this.ga4Disable]=!0,this.cookies.set(this.ga4Disable,"true"),Object.keys(this.cookies.all).forEach((function(t){t.startsWith("_ga")&&e.cookies.delete(t)})),this.trackingEnabled=!1)}}])}(M),V=document.documentElement.dataset.ga4;V&&new R({id:V});var K={getXPathTo:r,getClosestHeading:l,valueGetters:c};return a})()));
2
2
  //# sourceMappingURL=analytics.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"analytics.js","mappings":"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","sources":["webpack://TNAFrontend/webpack/universalModuleDefinition","webpack://TNAFrontend/./src/nationalarchives/lib/cookies.mjs","webpack://TNAFrontend/webpack/bootstrap","webpack://TNAFrontend/webpack/runtime/define property getters","webpack://TNAFrontend/webpack/runtime/hasOwnProperty shorthand","webpack://TNAFrontend/webpack/runtime/make namespace object","webpack://TNAFrontend/./src/nationalarchives/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/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"],"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[\"TNAFrontendAnalytics\"] = factory();\n\telse\n\t\troot[\"TNAFrontendAnalytics\"] = factory();\n})(self, () => {\nreturn ","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 =\n document.documentElement.getAttribute(\"data-tnacookiesdomain\") || \"\";\n } else {\n this.domain = domain;\n }\n if (path === null) {\n this.path =\n document.documentElement.getAttribute(\"data-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","// 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};","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,\n html: ($el) => $el.innerHTML,\n value: ($el) => $el.value,\n index: ($el, $scope, event, index) => index,\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 events: [\n {\n eventName: \"click\",\n targetElement: \".tna-accordion__summary\",\n on: \"click\",\n data: { state: valueGetters.expanded, value: valueGetters.text },\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 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_component_name: \"Breadcrumb\",\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_component_name: \"Breadcrumb\",\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 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_component_name: \"Footer\",\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_component_name: \"Footer\",\n data_link_type: \"Icon\",\n data_section: \"Social media\",\n data_link: ($el) => $el.getAttribute(\"data-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_component_name: \"Footer\",\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_component_name: \"Footer\",\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_component_name: \"Footer\",\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_component_name: \"Footer\",\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_feature\",\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_component_name: \"Gallery\",\n data_link_type: \"Pagination thumbnail\",\n data_position: 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_component_name: \"Gallery\",\n data_link_type: \"Navigation button\",\n data_link: valueGetters.text,\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_component_name: \"Gallery\",\n data_link_type: \"Navigation button\",\n data_link: valueGetters.text,\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_component_name: \"Gallery\",\n data_link_type: \"Full screen button\",\n data_link: valueGetters.text,\n },\n },\n {\n eventName: \"exit-fullscreen\",\n targetElement: '.tna-gallery__options button[value=\"exit-fullscreen\"]',\n on: \"click\",\n rootData: {\n data_component_name: \"Gallery\",\n data_link_type: \"Full screen button\",\n data_link: valueGetters.text,\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 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_component_name: \"Header\",\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_component_name: \"Header\",\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_component_name: \"Header\",\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_component_name: \"Header\",\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-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 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 ...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 );\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 */\n addListeners(scope, areaName, events, rootEventName = \"\") {\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) => {\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 eventConfig,\n scope,\n areaName,\n index + 1,\n ),\n );\n } else {\n this.attachListener(\n $scope,\n $scope,\n rootEventName,\n eventConfig,\n scope,\n areaName,\n 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 eventConfig,\n scope,\n areaName,\n index,\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(data.value, $el, $scope, event, index)\n : null,\n state: data?.state\n ? this.computedValue(data.state, $el, $scope, event, index)\n : null,\n group: data?.group\n ? this.computedValue(data.group, $el, $scope, event, index)\n : null,\n xPath: getXPathTo($el),\n targetElement: targetElement,\n timeSincePageLoad: new Date() - this.startTime,\n index,\n scope,\n areaName,\n },\n Object.fromEntries(\n Object.entries(rootData).map(([key, value]) => [\n key,\n this.computedValue(value, $el, $scope, event, index),\n ]),\n ),\n ),\n );\n }\n\n /** @protected */\n computedValue(value, $el, $scope, event, index) {\n return typeof value === \"function\"\n ? value.call(this, $el, $scope, event, index)\n : (value ?? null);\n }\n\n /** @protected */\n recordEvent(eventName, data, rootData = {}) {\n this.events.push({\n event: eventName,\n [`${this.prefix}.event`]: 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}.'][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.getAttribute(\"data-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"],"names":["root","factory","exports","module","define","amd","self","window","TNAFrontendCookies","TNAFrontendCookieEvents","CookieEventHandler","_createClass","_classCallCheck","_defineProperty","this","key","value","event","callback","Object","hasOwn","events","concat","_toConsumableArray","oneTimeEvents","_this","data","arguments","length","undefined","forEach","eventToTrigger","call","i","splice","Cookies","options","_options$extraPolicie","extraPolicies","_options$domain","domain","_options$path","path","_options$secure","secure","_options$policiesKey","policiesKey","_options$newInstance","newInstance","_options$defaultAge","defaultAge","destroyInstance","document","documentElement","getAttribute","init","savePolicies","_objectSpread","fromEntries","map","k","toLowerCase","usage","settings","marketing","policies","essential","get","deserialised","cookie","split","filter","x","parts","trim","JSON","parse","e","all","exists","decodeURIComponent","_options$maxAge","maxAge","_options$sameSite","sameSite","_options$domain2","_options$path2","_options$secure2","_options$session","session","encodeURIComponent","trigger","set","_this2","keys","policy","setPolicy","accepted","allPolicies","stringify","on","once","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","d","definition","o","defineProperty","enumerable","obj","prop","prototype","hasOwnProperty","r","Symbol","toStringTag","getXPathTo","$element","id","body","tagName","ix","parentNode","siblings","childNodes","sibling","nodeType","includesAny","arr","values","some","v","includes","getClosestHeading","heading","$search","previousElementSibling","classList","Array","from","innerText","parentElement","valueGetters","text","$el","html","innerHTML","index","$scope","checked","expanded","toString","closestHeading","scope","areaName","rootEventName","eventName","targetElement","state","rootData","data_component_name","data_link_type","data_link","group","_$scope$closest","closest","querySelector","_$scope$querySelector","_$scope$querySelector2","hasAttribute","data_section","data_position","image","imageSrc","imageAlt","componentAnalytics","BreadcrumbAnalytics","CheckboxesAnalytics","DetailsAnalytics","FooterAnalytics","GalleryAnalytics","GlobalHeaderAnalytics","HeaderAnalytics","_$scope$querySelector3","PictureAnalytics","RadiosAnalytics","SearchFieldAnalytics","TextInputAnalytics","TextareaAnalytics","EventTracker","Date","_options$prefix","prefix","_options$documentScop","documentScope","initAll","navigator","doNotTrack","cookies","isPolicyAccepted","enableTracking","disableTracking","componentConfig","addListeners","scopeArray","_this3","querySelectorAll","_typeof","eventConfig","attachListener","_this4","_eventConfig$rootData","addEventListener","recordEvent","generateEventName","name","computedValue","xPath","timeSincePageLoad","startTime","entries","_ref","_ref2","_slicedToArray","push","head","$metaEl","GA4","_EventTracker2","_this5","TNAFrontendAnalyticsGA4","_possibleConstructorReturn","_options$id","_options$prefix2","_options$initAll","_options$addTrackingC","addTrackingCode","dataLayer","gTagId","ga4Disable","start","_inherits","_this6","ga4Data","_ref3","_ref4","pushToDataLayer","trackingEnabled","trackingCodeAdded","Error","tnaMetaTags","getTnaMetaTags","getTime","firstScript","getElementsByTagName","script","createElement","async","src","insertBefore","appendChild","_this7","startsWith","ga4Id","helpers"],"sourceRoot":""}
1
+ {"version":3,"file":"analytics.js","mappings":"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","sources":["webpack://TNAFrontend/webpack/universalModuleDefinition","webpack://TNAFrontend/./src/nationalarchives/lib/cookies.mjs","webpack://TNAFrontend/webpack/bootstrap","webpack://TNAFrontend/webpack/runtime/define property getters","webpack://TNAFrontend/webpack/runtime/hasOwnProperty shorthand","webpack://TNAFrontend/webpack/runtime/make namespace object","webpack://TNAFrontend/./src/nationalarchives/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"],"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[\"TNAFrontendAnalytics\"] = factory();\n\telse\n\t\troot[\"TNAFrontendAnalytics\"] = factory();\n})(self, () => {\nreturn ","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","// 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};","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"],"names":["root","factory","exports","module","define","amd","self","window","TNAFrontendCookies","TNAFrontendCookieEvents","CookieEventHandler","_createClass","_classCallCheck","_defineProperty","this","key","value","event","callback","Object","hasOwn","events","concat","_toConsumableArray","oneTimeEvents","_this","data","arguments","length","undefined","forEach","eventToTrigger","call","i","splice","Cookies","options","_options$extraPolicie","extraPolicies","_options$domain","domain","_options$path","path","_options$secure","secure","_options$policiesKey","policiesKey","_options$newInstance","newInstance","_options$defaultAge","defaultAge","destroyInstance","document","documentElement","dataset","tnaCookiesDomain","tnaCookiesPath","init","savePolicies","_objectSpread","fromEntries","map","k","toLowerCase","usage","settings","marketing","policies","essential","get","deserialised","cookie","split","filter","x","parts","trim","JSON","parse","e","all","exists","decodeURIComponent","_options$maxAge","maxAge","_options$sameSite","sameSite","_options$domain2","_options$path2","_options$secure2","_options$session","session","encodeURIComponent","trigger","set","_this2","keys","policy","setPolicy","accepted","allPolicies","stringify","on","once","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","d","definition","o","defineProperty","enumerable","obj","prop","prototype","hasOwnProperty","r","Symbol","toStringTag","getXPathTo","$element","id","body","tagName","ix","parentNode","siblings","childNodes","sibling","nodeType","includesAny","arr","values","some","v","includes","getClosestHeading","heading","$search","previousElementSibling","classList","Array","from","innerText","parentElement","valueGetters","text","$el","replace","html","innerHTML","index","$scope","instance","checked","expanded","getAttribute","toString","closestHeading","scope","areaName","rootEventName","rootData","data_component_name","eventName","targetElement","state","data_link_type","data_link","group","_$scope$closest","closest","querySelector","_$scope$querySelector","_$scope$querySelector2","hasAttribute","data_section","name","media_type","media_duration","querySelectorAll","media_provider","media_title","media_progress","findIndex","$itemButton","media_action","data_position","image","imageSrc","imageAlt","componentAnalytics","BreadcrumbAnalytics","CheckboxesAnalytics","DetailsAnalytics","FooterAnalytics","GalleryAnalytics","GlobalHeaderAnalytics","HeaderAnalytics","_$scope$querySelector3","PictureAnalytics","RadiosAnalytics","SearchFieldAnalytics","SidebarAnalytics","TextInputAnalytics","TextareaAnalytics","EventTracker","Date","_options$prefix","prefix","_options$documentScop","documentScope","initAll","navigator","doNotTrack","cookies","isPolicyAccepted","enableTracking","disableTracking","componentConfig","addListeners","scopeArray","_this3","rootDefaultData","_typeof","scopeIndex","eventConfig","attachListener","_this4","_eventConfig$rootData","addEventListener","recordEvent","generateEventName","computedValue","xPath","timeSincePageLoad","startTime","entries","_ref","_ref2","_slicedToArray","push","_this5","head","$metaEl","RegExp","GA4","_EventTracker2","_this6","TNAFrontendAnalyticsGA4","_possibleConstructorReturn","_options$id","_options$prefix2","_options$initAll","_options$addTrackingC","addTrackingCode","dataLayer","gTagId","ga4Disable","start","_inherits","_this7","ga4Data","_ref3","_ref4","pushToDataLayer","trackingEnabled","trackingCodeAdded","Error","tnaMetaTags","getTnaMetaTags","getTime","firstScript","getElementsByTagName","script","createElement","async","src","insertBefore","appendChild","_this8","startsWith","ga4Id","ga4","helpers"],"sourceRoot":""}