@nationalarchives/frontend 0.43.0 → 0.44.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (31) hide show
  1. package/nationalarchives/all+analytics.js +1 -1
  2. package/nationalarchives/all+analytics.js.map +1 -1
  3. package/nationalarchives/all.css +1 -1
  4. package/nationalarchives/all.css.map +1 -1
  5. package/nationalarchives/all.js +1 -1
  6. package/nationalarchives/all.js.map +1 -1
  7. package/nationalarchives/components/breadcrumbs/breadcrumbs.js +1 -1
  8. package/nationalarchives/components/breadcrumbs/breadcrumbs.js.map +1 -1
  9. package/nationalarchives/components/breadcrumbs/breadcrumbs.mjs +49 -43
  10. package/nationalarchives/components/file-input/file-input.js +1 -1
  11. package/nationalarchives/components/file-input/file-input.js.map +1 -1
  12. package/nationalarchives/components/file-input/file-input.mjs +4 -0
  13. package/nationalarchives/components/footer/footer.js +1 -1
  14. package/nationalarchives/components/footer/footer.js.map +1 -1
  15. package/nationalarchives/components/footer/footer.mjs +6 -2
  16. package/nationalarchives/components/hero/fixtures.json +42 -0
  17. package/nationalarchives/components/hero/hero.css +1 -1
  18. package/nationalarchives/components/hero/hero.css.map +1 -1
  19. package/nationalarchives/components/hero/hero.scss +7 -1
  20. package/nationalarchives/components/sidebar/sidebar.css +1 -1
  21. package/nationalarchives/components/sidebar/sidebar.css.map +1 -1
  22. package/nationalarchives/components/sidebar/sidebar.js +1 -1
  23. package/nationalarchives/components/sidebar/sidebar.js.map +1 -1
  24. package/nationalarchives/components/sidebar/sidebar.mjs +13 -13
  25. package/nationalarchives/components/sidebar/sidebar.scss +18 -18
  26. package/nationalarchives/components/textarea/textarea.js +1 -1
  27. package/nationalarchives/components/textarea/textarea.js.map +1 -1
  28. package/nationalarchives/components/textarea/textarea.mjs +6 -2
  29. package/nationalarchives/prototype-kit.css +1 -1
  30. package/nationalarchives/prototype-kit.css.map +1 -1
  31. package/package.json +1 -1
@@ -1,2 +1,2 @@
1
- !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("TNAFrontend",[],t):"object"==typeof exports?exports.TNAFrontend=t():e.TNAFrontend=t()}(self,()=>(()=>{"use strict";var e={181(e,t,r){r.d(t,{A:()=>n});const n=function(){return([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g,function(e){return(e^crypto.getRandomValues(new Uint8Array(1))[0]&15>>e/4).toString(16)})}}},t={};function r(n){var o=t[n];if(void 0!==o)return o.exports;var i=t[n]={exports:{}};return e[n](i,i.exports,r),i.exports}r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var n={};r.r(n),r.d(n,{Breadcrumbs:()=>c});var o=r(181);function i(e){return i="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},i(e)}function a(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,u(n.key),n)}}function s(e,t,r){return t&&a(e.prototype,t),r&&a(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}function u(e){var t=function(e){if("object"!=i(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=i(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==i(t)?t:t+""}var c=s(function e(t){var r=this;if(function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.$module=t,this.$breadcrumbsList=t&&t.querySelector(".tna-breadcrumbs__list"),this.$breadcrumbs=t&&this.$breadcrumbsList&&t.querySelectorAll(".tna-breadcrumbs__item"),this.$module&&this.$breadcrumbsList&&this.$breadcrumbs&&this.$breadcrumbs.length>2&&!this.$module.classList.contains("tna-breadcrumbs--no-collapse")){var n="tna-breadcrumbs-".concat((0,o.A)()),i=document.createElement("li");i.classList.add("tna-breadcrumbs__item","tna-breadcrumbs__item--expandable"),i.style.display="none";var a=document.createElement("button");a.classList.add("tna-breadcrumbs__link"),a.innerHTML="<span class='tna-!--visually-hidden'>Expand breadcrumbs</span>&hellip;",a.setAttribute("type","button"),a.setAttribute("aria-expanded","false"),a.setAttribute("aria-controls",n),a.addEventListener("click",function(){r.$module.classList.remove("tna-breadcrumbs--collapsed"),i.remove(),r.$module.setAttribute("tabindex","0"),r.$module.focus(),r.$module.addEventListener("blur",function(){r.$module.removeAttribute("tabindex")},{once:!0})}),i.appendChild(a),this.$breadcrumbsList.setAttribute("id",n),this.$breadcrumbsList.insertBefore(i,this.$breadcrumbs[this.$breadcrumbs.length-2].nextSibling),this.$module.classList.add("tna-breadcrumbs--collapsed")}});return n})());
1
+ !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("TNAFrontend",[],t):"object"==typeof exports?exports.TNAFrontend=t():e.TNAFrontend=t()}(self,()=>(()=>{"use strict";var e={181(e,t,r){r.d(t,{A:()=>n});const n=function(){return([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g,function(e){return(e^crypto.getRandomValues(new Uint8Array(1))[0]&15>>e/4).toString(16)})}}},t={};function r(n){var o=t[n];if(void 0!==o)return o.exports;var i=t[n]={exports:{}};return e[n](i,i.exports,r),i.exports}r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var n={};r.r(n),r.d(n,{Breadcrumbs:()=>u});var o=r(181);function i(e){return i="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},i(e)}function a(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,s(n.key),n)}}function s(e){var t=function(e){if("object"!=i(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=i(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==i(t)?t:t+""}var u=function(){return e=function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.$module=t,this.$breadcrumbsList=t&&t.querySelector(".tna-breadcrumbs__list"),this.$breadcrumbs=t&&this.$breadcrumbsList&&t.querySelectorAll(".tna-breadcrumbs__item"),this.$module&&this.$breadcrumbsList&&this.$breadcrumbs&&this.$breadcrumbs.length>2&&!this.$module.classList.contains("tna-breadcrumbs--no-collapse")&&this.init()},(t=[{key:"init",value:function(){var e=this,t="tna-breadcrumbs-".concat((0,o.A)()),r=document.createElement("li");r.classList.add("tna-breadcrumbs__item","tna-breadcrumbs__item--expandable"),r.style.display="none";var n=document.createElement("button");n.classList.add("tna-breadcrumbs__link"),n.innerHTML="<span class='tna-!--visually-hidden'>Expand breadcrumbs</span>&hellip;",n.setAttribute("type","button"),n.setAttribute("aria-expanded","false"),n.setAttribute("aria-controls",t),n.addEventListener("click",function(){e.$module.classList.remove("tna-breadcrumbs--collapsed"),r.remove(),e.$module.setAttribute("tabindex","0"),e.$module.focus(),e.$module.addEventListener("blur",function(){e.$module.removeAttribute("tabindex")},{once:!0})}),r.appendChild(n),this.$breadcrumbsList.setAttribute("id",t),this.$breadcrumbsList.insertBefore(r,this.$breadcrumbs[this.$breadcrumbs.length-2].nextSibling),this.$module.classList.add("tna-breadcrumbs--collapsed")}}])&&a(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t}();return n})());
2
2
  //# sourceMappingURL=breadcrumbs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"components/breadcrumbs/breadcrumbs.js","mappings":"CAAA,SAAAA,EAAAC,GACA,iBAAAC,SAAA,iBAAAC,OACAA,OAAAD,QAAAD,IACA,mBAAAG,QAAAA,OAAAC,IACAD,OAAA,iBAAAH,GACA,iBAAAC,QACAA,QAAA,YAAAD,IAEAD,EAAA,YAAAC,GACC,CATD,CASCK,KAAA,0DCCD,MAAAC,EARe,WAAH,OACT,CAAC,MAAQ,KAAO,KAAO,KAAO,MAAMC,QAAQ,SAAW,SAACC,GAAI,OAEzDA,EACCC,OAAOC,gBAAgB,IAAIC,WAAW,IAAI,GAAM,IAAOH,EAAO,GAC/DI,SAAS,GAAG,EACf,ICPHC,EAAA,GAGA,SAAAC,EAAAC,GAEA,IAAAC,EAAAH,EAAAE,GACA,QAAAE,IAAAD,EACA,OAAAA,EAAAf,QAGA,IAAAC,EAAAW,EAAAE,GAAA,CAGAd,QAAA,IAOA,OAHAiB,EAAAH,GAAAb,EAAAA,EAAAD,QAAAa,GAGAZ,EAAAD,OACA,CCrBAa,EAAAK,EAAA,CAAAlB,EAAAmB,KACA,QAAAC,KAAAD,EACAN,EAAAQ,EAAAF,EAAAC,KAAAP,EAAAQ,EAAArB,EAAAoB,IACAE,OAAAC,eAAAvB,EAAAoB,EAAA,CAAyCI,YAAA,EAAAC,IAAAN,EAAAC,MCJzCP,EAAAQ,EAAA,CAAAK,EAAAC,IAAAL,OAAAM,UAAAC,eAAAC,KAAAJ,EAAAC,GCCAd,EAAAkB,EAAA/B,IACA,oBAAAgC,QAAAA,OAAAC,aACAX,OAAAC,eAAAvB,EAAAgC,OAAAC,YAAA,CAAuDC,MAAA,WAEvDZ,OAAAC,eAAAvB,EAAA,cAAgDkC,OAAA,20BCHzC,IAAMC,EAAWC,EACtB,SAAAD,EAAYE,GAAS,IAAAC,EAAAC,KASnB,+FATmBC,CAAAD,KAAAJ,GACnBI,KAAKF,QAAUA,EACfE,KAAKE,iBACHJ,GAAWA,EAAQK,cAAc,0BACnCH,KAAKI,aACHN,GACAE,KAAKE,kBACLJ,EAAQO,iBAAiB,0BAEvBL,KAAKF,SAAWE,KAAKE,kBAAoBF,KAAKI,cAG9CJ,KAAKI,aAAaE,OAAS,IAC1BN,KAAKF,QAAQS,UAAUC,SAAS,gCACjC,CACA,IAAMC,EAAQ,mBAAAC,QAAsBC,EAAAA,EAAAA,MAC9BC,EAAcC,SAASC,cAAc,MAC3CF,EAAYL,UAAUQ,IACpB,wBACA,qCAEFH,EAAYI,MAAMC,QAAU,OAE5B,IAAMC,EAAgBL,SAASC,cAAc,UAC7CI,EAAcX,UAAUQ,IAAI,yBAC5BG,EAAcC,UACZ,yEACFD,EAAcE,aAAa,OAAQ,UACnCF,EAAcE,aAAa,gBAAiB,SAC5CF,EAAcE,aAAa,gBAAiBX,GAC5CS,EAAcG,iBAAiB,QAAS,WACtCtB,EAAKD,QAAQS,UAAUe,OAAO,8BAC9BV,EAAYU,SACZvB,EAAKD,QAAQsB,aAAa,WAAY,KACtCrB,EAAKD,QAAQyB,QACbxB,EAAKD,QAAQuB,iBACX,OACA,WACEtB,EAAKD,QAAQ0B,gBAAgB,WAC/B,EACA,CAAEC,MAAM,GAEZ,GACAb,EAAYc,YAAYR,GAExBlB,KAAKE,iBAAiBkB,aAAa,KAAMX,GACzCT,KAAKE,iBAAiByB,aACpBf,EAEAZ,KAAKI,aAAaJ,KAAKI,aAAaE,OAAS,GAAGsB,aAGlD5B,KAAKF,QAAQS,UAAUQ,IAAI,6BAC7B,CAEJ","sources":["webpack://TNAFrontend/webpack/universalModuleDefinition","webpack://TNAFrontend/./src/nationalarchives/lib/uuid.mjs","webpack://TNAFrontend/webpack/bootstrap","webpack://TNAFrontend/webpack/runtime/define property getters","webpack://TNAFrontend/webpack/runtime/hasOwnProperty shorthand","webpack://TNAFrontend/webpack/runtime/make namespace object","webpack://TNAFrontend/./src/nationalarchives/components/breadcrumbs/breadcrumbs.mjs"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"TNAFrontend\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"TNAFrontend\"] = factory();\n\telse\n\t\troot[\"TNAFrontend\"] = factory();\n})(self, () => {\nreturn ","/* eslint-disable no-magic-numbers */\n/* eslint-disable no-bitwise */\nconst uuidv4 = () =>\n ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/gu, (char) =>\n (\n char ^\n (crypto.getRandomValues(new Uint8Array(1))[0] & (15 >> (char / 4)))\n ).toString(16),\n );\n\nexport default uuidv4;\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import uuidv4 from \"../../lib/uuid.mjs\";\n\nexport class Breadcrumbs {\n constructor($module) {\n this.$module = $module;\n this.$breadcrumbsList =\n $module && $module.querySelector(\".tna-breadcrumbs__list\");\n this.$breadcrumbs =\n $module &&\n this.$breadcrumbsList &&\n $module.querySelectorAll(\".tna-breadcrumbs__item\");\n\n if (this.$module && this.$breadcrumbsList && this.$breadcrumbs) {\n if (\n /* eslint-disable-next-line no-magic-numbers */\n this.$breadcrumbs.length > 2 &&\n !this.$module.classList.contains(\"tna-breadcrumbs--no-collapse\")\n ) {\n const uniqueId = `tna-breadcrumbs-${uuidv4()}`;\n const $expandable = document.createElement(\"li\");\n $expandable.classList.add(\n \"tna-breadcrumbs__item\",\n \"tna-breadcrumbs__item--expandable\",\n );\n $expandable.style.display = \"none\";\n\n const $expandButton = document.createElement(\"button\");\n $expandButton.classList.add(\"tna-breadcrumbs__link\");\n $expandButton.innerHTML =\n \"<span class='tna-!--visually-hidden'>Expand breadcrumbs</span>&hellip;\";\n $expandButton.setAttribute(\"type\", \"button\");\n $expandButton.setAttribute(\"aria-expanded\", \"false\");\n $expandButton.setAttribute(\"aria-controls\", uniqueId);\n $expandButton.addEventListener(\"click\", () => {\n this.$module.classList.remove(\"tna-breadcrumbs--collapsed\");\n $expandable.remove();\n this.$module.setAttribute(\"tabindex\", \"0\");\n this.$module.focus();\n this.$module.addEventListener(\n \"blur\",\n () => {\n this.$module.removeAttribute(\"tabindex\");\n },\n { once: true },\n );\n });\n $expandable.appendChild($expandButton);\n\n this.$breadcrumbsList.setAttribute(\"id\", uniqueId);\n this.$breadcrumbsList.insertBefore(\n $expandable,\n /* eslint-disable-next-line no-magic-numbers */\n this.$breadcrumbs[this.$breadcrumbs.length - 2].nextSibling,\n );\n\n this.$module.classList.add(\"tna-breadcrumbs--collapsed\");\n }\n }\n }\n}\n"],"names":["root","factory","exports","module","define","amd","self","__WEBPACK_DEFAULT_EXPORT__","replace","char","crypto","getRandomValues","Uint8Array","toString","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","d","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","r","Symbol","toStringTag","value","Breadcrumbs","_createClass","$module","_this","this","_classCallCheck","$breadcrumbsList","querySelector","$breadcrumbs","querySelectorAll","length","classList","contains","uniqueId","concat","uuidv4","$expandable","document","createElement","add","style","display","$expandButton","innerHTML","setAttribute","addEventListener","remove","focus","removeAttribute","once","appendChild","insertBefore","nextSibling"],"sourceRoot":""}
1
+ {"version":3,"file":"components/breadcrumbs/breadcrumbs.js","mappings":"CAAA,SAAAA,EAAAC,GACA,iBAAAC,SAAA,iBAAAC,OACAA,OAAAD,QAAAD,IACA,mBAAAG,QAAAA,OAAAC,IACAD,OAAA,iBAAAH,GACA,iBAAAC,QACAA,QAAA,YAAAD,IAEAD,EAAA,YAAAC,GACC,CATD,CASCK,KAAA,0DCCD,MAAAC,EARe,WAAH,OACT,CAAC,MAAQ,KAAO,KAAO,KAAO,MAAMC,QAAQ,SAAW,SAACC,GAAI,OAEzDA,EACCC,OAAOC,gBAAgB,IAAIC,WAAW,IAAI,GAAM,IAAOH,EAAO,GAC/DI,SAAS,GAAG,EACf,ICPHC,EAAA,GAGA,SAAAC,EAAAC,GAEA,IAAAC,EAAAH,EAAAE,GACA,QAAAE,IAAAD,EACA,OAAAA,EAAAf,QAGA,IAAAC,EAAAW,EAAAE,GAAA,CAGAd,QAAA,IAOA,OAHAiB,EAAAH,GAAAb,EAAAA,EAAAD,QAAAa,GAGAZ,EAAAD,OACA,CCrBAa,EAAAK,EAAA,CAAAlB,EAAAmB,KACA,QAAAC,KAAAD,EACAN,EAAAQ,EAAAF,EAAAC,KAAAP,EAAAQ,EAAArB,EAAAoB,IACAE,OAAAC,eAAAvB,EAAAoB,EAAA,CAAyCI,YAAA,EAAAC,IAAAN,EAAAC,MCJzCP,EAAAQ,EAAA,CAAAK,EAAAC,IAAAL,OAAAM,UAAAC,eAAAC,KAAAJ,EAAAC,GCCAd,EAAAkB,EAAA/B,IACA,oBAAAgC,QAAAA,OAAAC,aACAX,OAAAC,eAAAvB,EAAAgC,OAAAC,YAAA,CAAuDC,MAAA,WAEvDZ,OAAAC,eAAAvB,EAAA,cAAgDkC,OAAA,+tBCHzC,IAAMC,EAAW,WAqBrB,SApBD,SAAAA,EAAYC,gGAASC,CAAAC,KAAAH,GACnBG,KAAKF,QAAUA,EACfE,KAAKC,iBACHH,GAAWA,EAAQI,cAAc,0BACnCF,KAAKG,aACHL,GACAE,KAAKC,kBACLH,EAAQM,iBAAiB,0BAEtBJ,KAAKF,SAAYE,KAAKC,kBAAqBD,KAAKG,cAMnDH,KAAKG,aAAaE,OAAS,IAC1BL,KAAKF,QAAQQ,UAAUC,SAAS,iCAEjCP,KAAKQ,MAET,KAAC,EAAA1B,IAAA,OAAAc,MAED,WAAO,IAAAa,EAAAT,KACCU,EAAQ,mBAAAC,QAAsBC,EAAAA,EAAAA,MAC9BC,EAAcC,SAASC,cAAc,MAC3CF,EAAYP,UAAUU,IACpB,wBACA,qCAEFH,EAAYI,MAAMC,QAAU,OAE5B,IAAMC,EAAgBL,SAASC,cAAc,UAC7CI,EAAcb,UAAUU,IAAI,yBAC5BG,EAAcC,UACZ,yEACFD,EAAcE,aAAa,OAAQ,UACnCF,EAAcE,aAAa,gBAAiB,SAC5CF,EAAcE,aAAa,gBAAiBX,GAC5CS,EAAcG,iBAAiB,QAAS,WACtCb,EAAKX,QAAQQ,UAAUiB,OAAO,8BAC9BV,EAAYU,SACZd,EAAKX,QAAQuB,aAAa,WAAY,KACtCZ,EAAKX,QAAQ0B,QACbf,EAAKX,QAAQwB,iBACX,OACA,WACEb,EAAKX,QAAQ2B,gBAAgB,WAC/B,EACA,CAAEC,MAAM,GAEZ,GACAb,EAAYc,YAAYR,GAExBnB,KAAKC,iBAAiBoB,aAAa,KAAMX,GACzCV,KAAKC,iBAAiB2B,aACpBf,EAEAb,KAAKG,aAAaH,KAAKG,aAAaE,OAAS,GAAGwB,aAGlD7B,KAAKF,QAAQQ,UAAUU,IAAI,6BAC7B,mFAAC,CA9DqB","sources":["webpack://TNAFrontend/webpack/universalModuleDefinition","webpack://TNAFrontend/./src/nationalarchives/lib/uuid.mjs","webpack://TNAFrontend/webpack/bootstrap","webpack://TNAFrontend/webpack/runtime/define property getters","webpack://TNAFrontend/webpack/runtime/hasOwnProperty shorthand","webpack://TNAFrontend/webpack/runtime/make namespace object","webpack://TNAFrontend/./src/nationalarchives/components/breadcrumbs/breadcrumbs.mjs"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"TNAFrontend\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"TNAFrontend\"] = factory();\n\telse\n\t\troot[\"TNAFrontend\"] = factory();\n})(self, () => {\nreturn ","/* eslint-disable no-magic-numbers */\n/* eslint-disable no-bitwise */\nconst uuidv4 = () =>\n ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/gu, (char) =>\n (\n char ^\n (crypto.getRandomValues(new Uint8Array(1))[0] & (15 >> (char / 4)))\n ).toString(16),\n );\n\nexport default uuidv4;\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import uuidv4 from \"../../lib/uuid.mjs\";\n\nexport class Breadcrumbs {\n constructor($module) {\n this.$module = $module;\n this.$breadcrumbsList =\n $module && $module.querySelector(\".tna-breadcrumbs__list\");\n this.$breadcrumbs =\n $module &&\n this.$breadcrumbsList &&\n $module.querySelectorAll(\".tna-breadcrumbs__item\");\n\n if (!this.$module || !this.$breadcrumbsList || !this.$breadcrumbs) {\n return;\n }\n\n if (\n /* eslint-disable-next-line no-magic-numbers */\n this.$breadcrumbs.length > 2 &&\n !this.$module.classList.contains(\"tna-breadcrumbs--no-collapse\")\n ) {\n this.init();\n }\n }\n\n init() {\n const uniqueId = `tna-breadcrumbs-${uuidv4()}`;\n const $expandable = document.createElement(\"li\");\n $expandable.classList.add(\n \"tna-breadcrumbs__item\",\n \"tna-breadcrumbs__item--expandable\",\n );\n $expandable.style.display = \"none\";\n\n const $expandButton = document.createElement(\"button\");\n $expandButton.classList.add(\"tna-breadcrumbs__link\");\n $expandButton.innerHTML =\n \"<span class='tna-!--visually-hidden'>Expand breadcrumbs</span>&hellip;\";\n $expandButton.setAttribute(\"type\", \"button\");\n $expandButton.setAttribute(\"aria-expanded\", \"false\");\n $expandButton.setAttribute(\"aria-controls\", uniqueId);\n $expandButton.addEventListener(\"click\", () => {\n this.$module.classList.remove(\"tna-breadcrumbs--collapsed\");\n $expandable.remove();\n this.$module.setAttribute(\"tabindex\", \"0\");\n this.$module.focus();\n this.$module.addEventListener(\n \"blur\",\n () => {\n this.$module.removeAttribute(\"tabindex\");\n },\n { once: true },\n );\n });\n $expandable.appendChild($expandButton);\n\n this.$breadcrumbsList.setAttribute(\"id\", uniqueId);\n this.$breadcrumbsList.insertBefore(\n $expandable,\n /* eslint-disable-next-line no-magic-numbers */\n this.$breadcrumbs[this.$breadcrumbs.length - 2].nextSibling,\n );\n\n this.$module.classList.add(\"tna-breadcrumbs--collapsed\");\n }\n}\n"],"names":["root","factory","exports","module","define","amd","self","__WEBPACK_DEFAULT_EXPORT__","replace","char","crypto","getRandomValues","Uint8Array","toString","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","d","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","r","Symbol","toStringTag","value","Breadcrumbs","$module","_classCallCheck","this","$breadcrumbsList","querySelector","$breadcrumbs","querySelectorAll","length","classList","contains","init","_this","uniqueId","concat","uuidv4","$expandable","document","createElement","add","style","display","$expandButton","innerHTML","setAttribute","addEventListener","remove","focus","removeAttribute","once","appendChild","insertBefore","nextSibling"],"sourceRoot":""}
@@ -10,51 +10,57 @@ export class Breadcrumbs {
10
10
  this.$breadcrumbsList &&
11
11
  $module.querySelectorAll(".tna-breadcrumbs__item");
12
12
 
13
- if (this.$module && this.$breadcrumbsList && this.$breadcrumbs) {
14
- if (
15
- /* eslint-disable-next-line no-magic-numbers */
16
- this.$breadcrumbs.length > 2 &&
17
- !this.$module.classList.contains("tna-breadcrumbs--no-collapse")
18
- ) {
19
- const uniqueId = `tna-breadcrumbs-${uuidv4()}`;
20
- const $expandable = document.createElement("li");
21
- $expandable.classList.add(
22
- "tna-breadcrumbs__item",
23
- "tna-breadcrumbs__item--expandable",
24
- );
25
- $expandable.style.display = "none";
13
+ if (!this.$module || !this.$breadcrumbsList || !this.$breadcrumbs) {
14
+ return;
15
+ }
16
+
17
+ if (
18
+ /* eslint-disable-next-line no-magic-numbers */
19
+ this.$breadcrumbs.length > 2 &&
20
+ !this.$module.classList.contains("tna-breadcrumbs--no-collapse")
21
+ ) {
22
+ this.init();
23
+ }
24
+ }
26
25
 
27
- const $expandButton = document.createElement("button");
28
- $expandButton.classList.add("tna-breadcrumbs__link");
29
- $expandButton.innerHTML =
30
- "<span class='tna-!--visually-hidden'>Expand breadcrumbs</span>&hellip;";
31
- $expandButton.setAttribute("type", "button");
32
- $expandButton.setAttribute("aria-expanded", "false");
33
- $expandButton.setAttribute("aria-controls", uniqueId);
34
- $expandButton.addEventListener("click", () => {
35
- this.$module.classList.remove("tna-breadcrumbs--collapsed");
36
- $expandable.remove();
37
- this.$module.setAttribute("tabindex", "0");
38
- this.$module.focus();
39
- this.$module.addEventListener(
40
- "blur",
41
- () => {
42
- this.$module.removeAttribute("tabindex");
43
- },
44
- { once: true },
45
- );
46
- });
47
- $expandable.appendChild($expandButton);
26
+ init() {
27
+ const uniqueId = `tna-breadcrumbs-${uuidv4()}`;
28
+ const $expandable = document.createElement("li");
29
+ $expandable.classList.add(
30
+ "tna-breadcrumbs__item",
31
+ "tna-breadcrumbs__item--expandable",
32
+ );
33
+ $expandable.style.display = "none";
48
34
 
49
- this.$breadcrumbsList.setAttribute("id", uniqueId);
50
- this.$breadcrumbsList.insertBefore(
51
- $expandable,
52
- /* eslint-disable-next-line no-magic-numbers */
53
- this.$breadcrumbs[this.$breadcrumbs.length - 2].nextSibling,
54
- );
35
+ const $expandButton = document.createElement("button");
36
+ $expandButton.classList.add("tna-breadcrumbs__link");
37
+ $expandButton.innerHTML =
38
+ "<span class='tna-!--visually-hidden'>Expand breadcrumbs</span>&hellip;";
39
+ $expandButton.setAttribute("type", "button");
40
+ $expandButton.setAttribute("aria-expanded", "false");
41
+ $expandButton.setAttribute("aria-controls", uniqueId);
42
+ $expandButton.addEventListener("click", () => {
43
+ this.$module.classList.remove("tna-breadcrumbs--collapsed");
44
+ $expandable.remove();
45
+ this.$module.setAttribute("tabindex", "0");
46
+ this.$module.focus();
47
+ this.$module.addEventListener(
48
+ "blur",
49
+ () => {
50
+ this.$module.removeAttribute("tabindex");
51
+ },
52
+ { once: true },
53
+ );
54
+ });
55
+ $expandable.appendChild($expandButton);
55
56
 
56
- this.$module.classList.add("tna-breadcrumbs--collapsed");
57
- }
58
- }
57
+ this.$breadcrumbsList.setAttribute("id", uniqueId);
58
+ this.$breadcrumbsList.insertBefore(
59
+ $expandable,
60
+ /* eslint-disable-next-line no-magic-numbers */
61
+ this.$breadcrumbs[this.$breadcrumbs.length - 2].nextSibling,
62
+ );
63
+
64
+ this.$module.classList.add("tna-breadcrumbs--collapsed");
59
65
  }
60
66
  }
@@ -1,2 +1,2 @@
1
- !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("TNAFrontend",[],t):"object"==typeof exports?exports.TNAFrontend=t():e.TNAFrontend=t()}(self,()=>(()=>{"use strict";var e={d:(t,n)=>{for(var i in n)e.o(n,i)&&!e.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:n[i]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};function n(e){return n="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},n(e)}function i(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,r(i.key),i)}}function r(e){var t=function(e){if("object"!=n(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var i=t.call(e,"string");if("object"!=n(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==n(t)?t:t+""}e.r(t),e.d(t,{FileInputDroppable:()=>o});var o=function(){return e=function e(t){var n=this;if(function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.$module=t,this.$body=t&&t.querySelector(".tna-form-item__body"),this.$input=this.$body&&this.$body.querySelector(".tna-file-input"),this.$module&&this.$body&&this.$input){this.acceptMutltipleFiles=this.$input.hasAttribute("multiple"),this.$droppableArea=document.createElement("div"),this.$droppableArea.classList.add("tna-file-input__droppable","tna-file-input__droppable--empty"),this.$body.insertBefore(this.$droppableArea,this.$input),this.$droppableArea.appendChild(this.$input),this.$pseudoSelectFileText=document.createElement("span"),this.$pseudoSelectFileText.setAttribute("aria-live","polite"),this.$pseudoSelectFileText.classList.add("tna-file-input__droppable-status");var i="file";this.acceptMutltipleFiles&&(i+="s"),this.$pseudoSelectFileText.textContent="No ".concat(i," selected"),this.$droppableArea.appendChild(this.$pseudoSelectFileText);var r=document.createElement("div");r.classList.add("tna-button-group","tna-button-group--small","tna-!--margin-top-s","tna-file-input__droppable-buttons"),this.$droppableArea.appendChild(r);var o=document.createElement("span");o.classList.add("tna-button"),o.textContent="Choose ".concat(i),r.appendChild(o);var a=document.createElement("span");a.textContent="or drop ".concat(i),r.appendChild(a),this.$droppableAreaAriaLabel=document.createElement("span"),this.$droppableAreaAriaLabel.classList.add("tna-visually-hidden"),this.$droppableAreaAriaLabel.setAttribute("aria-live","assertive"),this.$droppableArea.appendChild(this.$droppableAreaAriaLabel),this.$input.addEventListener("dragenter",function(e){return n.showDropTarget(e)}),this.$input.addEventListener("dragleave",function(){return n.hideDropTarget()}),this.$input.addEventListener("dragend",function(){return n.hideDropTarget()}),this.$input.addEventListener("change",function(){return n.onChange()}),this.$input.addEventListener("drop",function(){return n.onChange()})}},t=[{key:"isContainingFiles",value:function(e){var t=!e.types.length,n=e.types.some(function(e){return"Files"===e});return t||n}},{key:"showDropTarget",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(e.dataTransfer&&this.isContainingFiles(e.dataTransfer)){var n="tna-file-input__droppable--over";e.dataTransfer.items.length&&(n="tna-file-input__droppable--over-multiple"),this.$droppableArea.classList.add(n),t&&(this.$droppableAreaAriaLabel.textContent="Entered drop zone")}}},{key:"hideDropTarget",value:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];this.$droppableArea.classList.remove("tna-file-input__droppable--over","tna-file-input__droppable--over-multiple"),e&&(this.$droppableAreaAriaLabel.textContent="Left drop zone")}},{key:"onChange",value:function(){var e,t=this.$input.files;if(this.acceptMutltipleFiles)if(t.length){var n="file";t.length>1&&(n+="s");var i="".concat(t.length," ").concat(n," selected");this.$pseudoSelectFileText.textContent=i}else this.$pseudoSelectFileText.textContent="No files selected";else this.$pseudoSelectFileText.textContent=(null===(e=t[0])||void 0===e?void 0:e.name)||"No file selected";t.length?this.$droppableArea.classList.remove("tna-file-input__droppable--empty"):this.$droppableArea.classList.add("tna-file-input__droppable--empty"),this.hideDropTarget(!1)}}],t&&i(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t}();return t})());
1
+ !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("TNAFrontend",[],t):"object"==typeof exports?exports.TNAFrontend=t():e.TNAFrontend=t()}(self,()=>(()=>{"use strict";var e={d:(t,n)=>{for(var i in n)e.o(n,i)&&!e.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:n[i]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};function n(e){return n="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},n(e)}function i(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,r(i.key),i)}}function r(e){var t=function(e){if("object"!=n(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var i=t.call(e,"string");if("object"!=n(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==n(t)?t:t+""}e.r(t),e.d(t,{FileInputDroppable:()=>o});var o=function(){return e=function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.$module=t,this.$body=t&&t.querySelector(".tna-form-item__body"),this.$input=this.$body&&this.$body.querySelector(".tna-file-input"),this.$module&&this.$body&&this.$input&&this.init()},t=[{key:"init",value:function(){var e=this;this.acceptMutltipleFiles=this.$input.hasAttribute("multiple"),this.$droppableArea=document.createElement("div"),this.$droppableArea.classList.add("tna-file-input__droppable","tna-file-input__droppable--empty"),this.$body.insertBefore(this.$droppableArea,this.$input),this.$droppableArea.appendChild(this.$input),this.$pseudoSelectFileText=document.createElement("span"),this.$pseudoSelectFileText.setAttribute("aria-live","polite"),this.$pseudoSelectFileText.classList.add("tna-file-input__droppable-status");var t="file";this.acceptMutltipleFiles&&(t+="s"),this.$pseudoSelectFileText.textContent="No ".concat(t," selected"),this.$droppableArea.appendChild(this.$pseudoSelectFileText);var n=document.createElement("div");n.classList.add("tna-button-group","tna-button-group--small","tna-!--margin-top-s","tna-file-input__droppable-buttons"),this.$droppableArea.appendChild(n);var i=document.createElement("span");i.classList.add("tna-button"),i.textContent="Choose ".concat(t),n.appendChild(i);var r=document.createElement("span");r.textContent="or drop ".concat(t),n.appendChild(r),this.$droppableAreaAriaLabel=document.createElement("span"),this.$droppableAreaAriaLabel.classList.add("tna-visually-hidden"),this.$droppableAreaAriaLabel.setAttribute("aria-live","assertive"),this.$droppableArea.appendChild(this.$droppableAreaAriaLabel),this.$input.addEventListener("dragenter",function(t){return e.showDropTarget(t)}),this.$input.addEventListener("dragleave",function(){return e.hideDropTarget()}),this.$input.addEventListener("dragend",function(){return e.hideDropTarget()}),this.$input.addEventListener("change",function(){return e.onChange()}),this.$input.addEventListener("drop",function(){return e.onChange()})}},{key:"isContainingFiles",value:function(e){var t=!e.types.length,n=e.types.some(function(e){return"Files"===e});return t||n}},{key:"showDropTarget",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(e.dataTransfer&&this.isContainingFiles(e.dataTransfer)){var n="tna-file-input__droppable--over";e.dataTransfer.items.length&&(n="tna-file-input__droppable--over-multiple"),this.$droppableArea.classList.add(n),t&&(this.$droppableAreaAriaLabel.textContent="Entered drop zone")}}},{key:"hideDropTarget",value:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];this.$droppableArea.classList.remove("tna-file-input__droppable--over","tna-file-input__droppable--over-multiple"),e&&(this.$droppableAreaAriaLabel.textContent="Left drop zone")}},{key:"onChange",value:function(){var e,t=this.$input.files;if(this.acceptMutltipleFiles)if(t.length){var n="file";t.length>1&&(n+="s");var i="".concat(t.length," ").concat(n," selected");this.$pseudoSelectFileText.textContent=i}else this.$pseudoSelectFileText.textContent="No files selected";else this.$pseudoSelectFileText.textContent=(null===(e=t[0])||void 0===e?void 0:e.name)||"No file selected";t.length?this.$droppableArea.classList.remove("tna-file-input__droppable--empty"):this.$droppableArea.classList.add("tna-file-input__droppable--empty"),this.hideDropTarget(!1)}}],t&&i(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t}();return t})());
2
2
  //# sourceMappingURL=file-input.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"components/file-input/file-input.js","mappings":"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","sources":["webpack://TNAFrontend/webpack/universalModuleDefinition","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/components/file-input/file-input.mjs"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"TNAFrontend\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"TNAFrontend\"] = factory();\n\telse\n\t\troot[\"TNAFrontend\"] = factory();\n})(self, () => {\nreturn ","// The require scope\nvar __webpack_require__ = {};\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};","export class FileInputDroppable {\n constructor($module) {\n this.$module = $module;\n this.$body = $module && $module.querySelector(\".tna-form-item__body\");\n this.$input = this.$body && this.$body.querySelector(\".tna-file-input\");\n\n if (!this.$module || !this.$body || !this.$input) {\n return;\n }\n\n this.acceptMutltipleFiles = this.$input.hasAttribute(\"multiple\");\n\n this.$droppableArea = document.createElement(\"div\");\n this.$droppableArea.classList.add(\n \"tna-file-input__droppable\",\n \"tna-file-input__droppable--empty\",\n );\n this.$body.insertBefore(this.$droppableArea, this.$input);\n this.$droppableArea.appendChild(this.$input);\n\n this.$pseudoSelectFileText = document.createElement(\"span\");\n this.$pseudoSelectFileText.setAttribute(\"aria-live\", \"polite\");\n this.$pseudoSelectFileText.classList.add(\n \"tna-file-input__droppable-status\",\n );\n\n let fileText = \"file\";\n if (this.acceptMutltipleFiles) {\n fileText += \"s\";\n }\n\n this.$pseudoSelectFileText.textContent = `No ${fileText} selected`;\n this.$droppableArea.appendChild(this.$pseudoSelectFileText);\n\n const $droppableButtons = document.createElement(\"div\");\n $droppableButtons.classList.add(\n \"tna-button-group\",\n \"tna-button-group--small\",\n \"tna-!--margin-top-s\",\n \"tna-file-input__droppable-buttons\",\n );\n this.$droppableArea.appendChild($droppableButtons);\n\n const $pseudoSelectFileButton = document.createElement(\"span\");\n $pseudoSelectFileButton.classList.add(\"tna-button\");\n $pseudoSelectFileButton.textContent = `Choose ${fileText}`;\n $droppableButtons.appendChild($pseudoSelectFileButton);\n\n const $pseudoDropFileButton = document.createElement(\"span\");\n $pseudoDropFileButton.textContent = `or drop ${fileText}`;\n $droppableButtons.appendChild($pseudoDropFileButton);\n\n this.$droppableAreaAriaLabel = document.createElement(\"span\");\n this.$droppableAreaAriaLabel.classList.add(\"tna-visually-hidden\");\n this.$droppableAreaAriaLabel.setAttribute(\"aria-live\", \"assertive\");\n this.$droppableArea.appendChild(this.$droppableAreaAriaLabel);\n\n this.$input.addEventListener(\"dragenter\", (event) =>\n this.showDropTarget(event),\n );\n this.$input.addEventListener(\"dragleave\", () => this.hideDropTarget());\n this.$input.addEventListener(\"dragend\", () => this.hideDropTarget());\n this.$input.addEventListener(\"change\", () => this.onChange());\n this.$input.addEventListener(\"drop\", () => this.onChange());\n }\n\n /* eslint-disable-next-line class-methods-use-this */\n isContainingFiles(dataTransfer) {\n const hasNoTypesInfo = !dataTransfer.types.length;\n const isDraggingFiles = dataTransfer.types.some((type) => type === \"Files\");\n return hasNoTypesInfo || isDraggingFiles;\n }\n\n showDropTarget(event, updateAriaLabel = true) {\n if (event.dataTransfer && this.isContainingFiles(event.dataTransfer)) {\n let classToAdd = \"tna-file-input__droppable--over\";\n if (event.dataTransfer.items.length) {\n classToAdd = \"tna-file-input__droppable--over-multiple\";\n }\n this.$droppableArea.classList.add(classToAdd);\n\n if (updateAriaLabel) {\n this.$droppableAreaAriaLabel.textContent = \"Entered drop zone\";\n }\n }\n }\n\n hideDropTarget(updateAriaLabel = true) {\n this.$droppableArea.classList.remove(\n \"tna-file-input__droppable--over\",\n \"tna-file-input__droppable--over-multiple\",\n );\n if (updateAriaLabel) {\n this.$droppableAreaAriaLabel.textContent = \"Left drop zone\";\n }\n }\n\n onChange() {\n const { files } = this.$input;\n if (this.acceptMutltipleFiles) {\n if (files.length) {\n let fileText = \"file\";\n /* eslint-disable-next-line no-magic-numbers */\n if (files.length > 1) {\n fileText += \"s\";\n }\n const textContent = `${files.length} ${fileText} selected`;\n this.$pseudoSelectFileText.textContent = textContent;\n } else {\n this.$pseudoSelectFileText.textContent = `No files selected`;\n }\n } else {\n this.$pseudoSelectFileText.textContent =\n /* eslint-disable-next-line no-magic-numbers */\n files[0]?.name || `No file selected`;\n }\n if (files.length) {\n this.$droppableArea.classList.remove(\"tna-file-input__droppable--empty\");\n } else {\n this.$droppableArea.classList.add(\"tna-file-input__droppable--empty\");\n }\n this.hideDropTarget(false);\n }\n}\n"],"names":["root","factory","exports","module","define","amd","self","__webpack_require__","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","Symbol","toStringTag","value","FileInputDroppable","$module","_this","this","_classCallCheck","$body","querySelector","$input","acceptMutltipleFiles","hasAttribute","$droppableArea","document","createElement","classList","add","insertBefore","appendChild","$pseudoSelectFileText","setAttribute","fileText","textContent","concat","$droppableButtons","$pseudoSelectFileButton","$pseudoDropFileButton","$droppableAreaAriaLabel","addEventListener","event","showDropTarget","hideDropTarget","onChange","dataTransfer","hasNoTypesInfo","types","length","isDraggingFiles","some","type","updateAriaLabel","arguments","undefined","isContainingFiles","classToAdd","items","remove","_files$","files","name"],"sourceRoot":""}
1
+ {"version":3,"file":"components/file-input/file-input.js","mappings":"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","sources":["webpack://TNAFrontend/webpack/universalModuleDefinition","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/components/file-input/file-input.mjs"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"TNAFrontend\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"TNAFrontend\"] = factory();\n\telse\n\t\troot[\"TNAFrontend\"] = factory();\n})(self, () => {\nreturn ","// The require scope\nvar __webpack_require__ = {};\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};","export class FileInputDroppable {\n constructor($module) {\n this.$module = $module;\n this.$body = $module && $module.querySelector(\".tna-form-item__body\");\n this.$input = this.$body && this.$body.querySelector(\".tna-file-input\");\n\n if (!this.$module || !this.$body || !this.$input) {\n return;\n }\n\n this.init();\n }\n\n init() {\n this.acceptMutltipleFiles = this.$input.hasAttribute(\"multiple\");\n\n this.$droppableArea = document.createElement(\"div\");\n this.$droppableArea.classList.add(\n \"tna-file-input__droppable\",\n \"tna-file-input__droppable--empty\",\n );\n this.$body.insertBefore(this.$droppableArea, this.$input);\n this.$droppableArea.appendChild(this.$input);\n\n this.$pseudoSelectFileText = document.createElement(\"span\");\n this.$pseudoSelectFileText.setAttribute(\"aria-live\", \"polite\");\n this.$pseudoSelectFileText.classList.add(\n \"tna-file-input__droppable-status\",\n );\n\n let fileText = \"file\";\n if (this.acceptMutltipleFiles) {\n fileText += \"s\";\n }\n\n this.$pseudoSelectFileText.textContent = `No ${fileText} selected`;\n this.$droppableArea.appendChild(this.$pseudoSelectFileText);\n\n const $droppableButtons = document.createElement(\"div\");\n $droppableButtons.classList.add(\n \"tna-button-group\",\n \"tna-button-group--small\",\n \"tna-!--margin-top-s\",\n \"tna-file-input__droppable-buttons\",\n );\n this.$droppableArea.appendChild($droppableButtons);\n\n const $pseudoSelectFileButton = document.createElement(\"span\");\n $pseudoSelectFileButton.classList.add(\"tna-button\");\n $pseudoSelectFileButton.textContent = `Choose ${fileText}`;\n $droppableButtons.appendChild($pseudoSelectFileButton);\n\n const $pseudoDropFileButton = document.createElement(\"span\");\n $pseudoDropFileButton.textContent = `or drop ${fileText}`;\n $droppableButtons.appendChild($pseudoDropFileButton);\n\n this.$droppableAreaAriaLabel = document.createElement(\"span\");\n this.$droppableAreaAriaLabel.classList.add(\"tna-visually-hidden\");\n this.$droppableAreaAriaLabel.setAttribute(\"aria-live\", \"assertive\");\n this.$droppableArea.appendChild(this.$droppableAreaAriaLabel);\n\n this.$input.addEventListener(\"dragenter\", (event) =>\n this.showDropTarget(event),\n );\n this.$input.addEventListener(\"dragleave\", () => this.hideDropTarget());\n this.$input.addEventListener(\"dragend\", () => this.hideDropTarget());\n this.$input.addEventListener(\"change\", () => this.onChange());\n this.$input.addEventListener(\"drop\", () => this.onChange());\n }\n\n /* eslint-disable-next-line class-methods-use-this */\n isContainingFiles(dataTransfer) {\n const hasNoTypesInfo = !dataTransfer.types.length;\n const isDraggingFiles = dataTransfer.types.some((type) => type === \"Files\");\n return hasNoTypesInfo || isDraggingFiles;\n }\n\n showDropTarget(event, updateAriaLabel = true) {\n if (event.dataTransfer && this.isContainingFiles(event.dataTransfer)) {\n let classToAdd = \"tna-file-input__droppable--over\";\n if (event.dataTransfer.items.length) {\n classToAdd = \"tna-file-input__droppable--over-multiple\";\n }\n this.$droppableArea.classList.add(classToAdd);\n\n if (updateAriaLabel) {\n this.$droppableAreaAriaLabel.textContent = \"Entered drop zone\";\n }\n }\n }\n\n hideDropTarget(updateAriaLabel = true) {\n this.$droppableArea.classList.remove(\n \"tna-file-input__droppable--over\",\n \"tna-file-input__droppable--over-multiple\",\n );\n if (updateAriaLabel) {\n this.$droppableAreaAriaLabel.textContent = \"Left drop zone\";\n }\n }\n\n onChange() {\n const { files } = this.$input;\n if (this.acceptMutltipleFiles) {\n if (files.length) {\n let fileText = \"file\";\n /* eslint-disable-next-line no-magic-numbers */\n if (files.length > 1) {\n fileText += \"s\";\n }\n const textContent = `${files.length} ${fileText} selected`;\n this.$pseudoSelectFileText.textContent = textContent;\n } else {\n this.$pseudoSelectFileText.textContent = `No files selected`;\n }\n } else {\n this.$pseudoSelectFileText.textContent =\n /* eslint-disable-next-line no-magic-numbers */\n files[0]?.name || `No file selected`;\n }\n if (files.length) {\n this.$droppableArea.classList.remove(\"tna-file-input__droppable--empty\");\n } else {\n this.$droppableArea.classList.add(\"tna-file-input__droppable--empty\");\n }\n this.hideDropTarget(false);\n }\n}\n"],"names":["root","factory","exports","module","define","amd","self","__webpack_require__","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","Symbol","toStringTag","value","FileInputDroppable","$module","_classCallCheck","this","$body","querySelector","$input","init","_this","acceptMutltipleFiles","hasAttribute","$droppableArea","document","createElement","classList","add","insertBefore","appendChild","$pseudoSelectFileText","setAttribute","fileText","textContent","concat","$droppableButtons","$pseudoSelectFileButton","$pseudoDropFileButton","$droppableAreaAriaLabel","addEventListener","event","showDropTarget","hideDropTarget","onChange","dataTransfer","hasNoTypesInfo","types","length","isDraggingFiles","some","type","updateAriaLabel","arguments","undefined","isContainingFiles","classToAdd","items","remove","_files$","files","name"],"sourceRoot":""}
@@ -8,6 +8,10 @@ export class FileInputDroppable {
8
8
  return;
9
9
  }
10
10
 
11
+ this.init();
12
+ }
13
+
14
+ init() {
11
15
  this.acceptMutltipleFiles = this.$input.hasAttribute("multiple");
12
16
 
13
17
  this.$droppableArea = document.createElement("div");
@@ -1,2 +1,2 @@
1
- !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("TNAFrontend",[],t):"object"==typeof exports?exports.TNAFrontend=t():e.TNAFrontend=t()}(self,()=>(()=>{"use strict";var e={533(e,t,n){function o(e){return o="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},o(e)}var i;function r(e){return function(e){if(Array.isArray(e))return s(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 s(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)?s(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 s(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=Array(t);n<t;n++)o[n]=e[n];return o}function c(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,l(o.key),o)}}function a(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"!=o(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=o(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==o(t)?t:t+""}n.d(t,{A:()=>k}),(i=window).TNAFrontendCookieEvents||(i.TNAFrontendCookieEvents=null);var u,h=function(){return e=function e(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),a(this,"events",{}),a(this,"oneTimeEvents",{}),a(this,"debug",!1),this.debug=t,window.TNAFrontendCookieEvents)return this.log("Using existing TNAFrontendCookieEvents instance"),window.TNAFrontendCookieEvents;window.TNAFrontendCookieEvents=this},t=[{key:"log",value:function(){if(this.debug){for(var e,t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];(e=console).log.apply(e,["[TNA Frontend Cookie Events]"].concat(n))}}},{key:"on",value:function(e,t){Object.hasOwn(this.events,e)||(this.events[e]=[]),this.events[e]=[].concat(r(this.events[e]),[t])}},{key:"once",value:function(e,t){Object.hasOwn(this.oneTimeEvents,e)||(this.oneTimeEvents[e]=[]),this.oneTimeEvents[e]=[].concat(r(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.log("Triggering event: ".concat(e),n),this.events[e].forEach(function(e){return e.call(t,n)})),Object.hasOwn(this.oneTimeEvents,e)){this.log("Triggering one-time event: ".concat(e),n);for(var o=this.oneTimeEvents[e].length-1;o>=0;o-=1)this.oneTimeEvents[e][o].call(this,n),this.oneTimeEvents[e].splice(o,1)}}}],t&&c(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t}();function f(e){return f="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},f(e)}function m(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=Array(t);n<t;n++)o[n]=e[n];return o}function y(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,o)}return n}function d(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?y(Object(n),!0).forEach(function(t){p(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):y(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function v(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,g(o.key),o)}}function p(e,t,n){return(t=g(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function g(e){var t=function(e){if("object"!=f(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=f(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==f(t)?t:t+""}(u=window).TNAFrontendCookies||(u.TNAFrontendCookies=null);var b=["usage","settings","marketing","essential"],k=function(){return e=function e(){var t=this,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),p(this,"defaultDomain",""),p(this,"defaultPath",""),p(this,"secure",!0),p(this,"policiesKey",""),p(this,"events",null),p(this,"defaultAge",null),p(this,"policiesCorrectOnInit",!1),p(this,"debug","true"===document.documentElement.dataset.tnaFrontendDebug);var o=n.defaultDomain,i=n.defaultPath,r=n.secure,s=n.policiesKey,c=n.defaultAge,a=n.newInstance,l=void 0!==a&&a,u=n.noInit,f=void 0!==u&&u;if(!l&&window.TNAFrontendCookies)return window.TNAFrontendCookies;this.defaultDomain=o||document.documentElement.dataset.tnaCookiesDomain||window.location.hostname,this.defaultPath=i||document.documentElement.dataset.tnaCookiesPath||"/",this.secure=r||"true"!==document.documentElement.dataset.tnaCookiesInsecure,this.policiesKey=s||document.documentElement.dataset.tnaCookiesPoliciesKey||"cookies_policy",this.defaultAge=c||parseInt(document.documentElement.dataset.tnaCookiesDefaultAge,10)||31536e3,this.events=new h(this.debug),this.policiesCorrectOnInit=Object.keys(this.policies).length===b.length&&b.every(function(e){return Object.keys(t.policies).includes(e)&&"boolean"==typeof t.policies[e]}),this.policiesCorrectOnInit||f||this.init(),this.log({defaultDomain:this.defaultDomain,defaultPath:this.defaultPath,secure:this.secure,policiesKey:this.policiesKey,defaultAge:this.defaultAge,policiesCorrectOnInit:this.policiesCorrectOnInit}),l||window.TNAFrontendCookies||(window.TNAFrontendCookies=this)},t=[{key:"init",value:function(){var e=this.policies;this.log("Existing policies on init:",e);var t=Object.fromEntries(Object.keys(e).filter(function(e){return b.includes(e)}).map(function(t){return[t,e[t]]}));Object.keys(t).length&&this.log("Filtered existing policies:",t),this.savePolicies(d(d({usage:!1,settings:!1,marketing:!1},t),{},{essential:!0}))}},{key:"log",value:function(){if(this.debug){for(var e,t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];(e=console).log.apply(e,["[TNA Frontend Cookies]"].concat(n,[this.all]))}}},{key:"destroyInstance",value:function(){this.log("Destroying TNAFrontendCookies instance"),window.TNAFrontendCookies=null}},{key:"all",get:function(){var e={};return document.cookie.split("; ").filter(function(e){return""!==e.trim()}).forEach(function(t){var n=function(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 o,i,r,s,c=[],a=!0,l=!1;try{if(r=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;a=!1}else for(;!(a=(o=r.call(n)).done)&&(c.push(o.value),c.length!==t);a=!0);}catch(e){l=!0,i=e}finally{try{if(!a&&null!=n.return&&(s=n.return(),Object(s)!==s))return}finally{if(l)throw i}}return c}}(e,t)||function(e,t){if(e){if("string"==typeof e)return m(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)?m(e,t):void 0}}(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.")}()}(t.trim().split("="),2),o=n[0],i=n[1];o&&(e[o]=decodeURIComponent(i||""))}),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]:{},o=n.maxAge,i=void 0===o?this.defaultAge:o,r=n.sameSite,s=void 0===r?"Lax":r,c=n.domain,a=void 0===c?this.defaultDomain:c,l=n.path,u=void 0===l?this.defaultPath:l,h=n.secure,f=void 0===h?this.secure:h,m=n.session,y=void 0!==m&&m;if(e){var d="";f&&(d="; secure");var v="";y||(v="; max-age=".concat(i));var p="".concat(encodeURIComponent(e),"=").concat(encodeURIComponent(t),"; domain=").concat(a,"; samesite=").concat(s,"; path=").concat(u).concat(v).concat(d);document.cookie=p,this.log("Set cookie:",{key:e,value:t,maxAge:i,path:u,sameSite:s,domain:a,secure:f,session:y,cookie:p}),this.events.trigger("setCookie",{key:e,value:t,maxAge:i,path:u,sameSite:s,domain:a,secure:f,session:y,cookie:p})}}},{key:"delete",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"/",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.defaultDomain,o={maxAge:-1,path:t,domain:n||this.defaultDomain};this.set(e,"",o),this.log("Deleted cookie:",d({key:e,path:t,domain:n},o)),this.events.trigger("deleteCookie",d({key:e},o))}},{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]:this.defaultDomain;Object.keys(this.all).forEach(function(o){e.delete(o,t,n)}),this.log("Deleted all cookies",{path:t,domain:n}),this.events.trigger("deleteAllCookies",{path:t,domain:n})}},{key:"acceptPolicy",value:function(e){this.log("Accepting policy:",e),this.setPolicy(e,!0),this.events.trigger("acceptPolicy",e),this.events.trigger("changePolicy",p({},e,!0))}},{key:"rejectPolicy",value:function(e){this.log("Rejecting policy:",e),this.setPolicy(e,!1),this.events.trigger("rejectPolicy",e),this.events.trigger("changePolicy",p({},e,!1))}},{key:"setPolicy",value:function(e,t){"essential"!==e?(this.log("Setting policy ".concat(e," to ").concat(t)),this.savePolicies(d(d({},this.policies),{},p(p({},e,t),"essential",!0))),this.events.trigger("changePolicy",p({},e,t))):this.log("Cannot change essential policy, it is always accepted.")}},{key:"acceptAllPolicies",value:function(){this.log("Accepting all policies");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(){this.log("Rejecting all policies");var e=d(d({},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.log("Saving policies:",e),this.set(this.policiesKey,JSON.stringify(e))}},{key:"isPolicyAccepted",value:function(e){return Object.hasOwn(this.policies,e)?!0===this.policies[e]:null}},{key:"on",value:function(e,t){this.log("Adding event listener for: ".concat(e)),this.events.on(e,t)}},{key:"once",value:function(e,t){this.log("Adding one-time event listener for: ".concat(e)),this.events.once(e,t)}}],t&&v(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t}()}},t={};function n(o){var i=t[o];if(void 0!==i)return i.exports;var r=t[o]={exports:{}};return e[o](r,r.exports,n),r.exports}n.d=(e,t)=>{for(var o in t)n.o(t,o)&&!n.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},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 o={};n.r(o),n.d(o,{Footer:()=>a});var i=n(533);function r(e){return r="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},r(e)}function s(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,c(o.key),o)}}function c(e){var t=function(e){if("object"!=r(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=r(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==r(t)?t:t+""}var a=function(){return e=function e(t){var n=this,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"theme";!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.$module=t,this.$themeSelector=t&&t.querySelector(".tna-footer__theme-selector"),this.$themeSelectorNotice=t&&t.querySelector(".tna-footer__theme-selector-notice"),this.$themeSelectorEnableSettingsCookiesButton=this.$themeSelectorNotice&&this.$themeSelectorNotice.querySelector(".tna-footer__theme-selector-enable-settings-cookies"),this.$tnaTemplate=document.querySelector(".tna-template"),this.$module&&this.$themeSelector&&this.$themeSelectorNotice&&this.$themeSelectorEnableSettingsCookiesButton&&this.$tnaTemplate&&(this.currentTheme=this.$themeSelector.dataset.themeOnLoad,this.themeCookieName=o,this.cookies=new i.A,this.$themeSelectorButtons=this.$themeSelector.querySelectorAll("button.tna-footer__theme-selector-button[value]"),Array.from(this.$themeSelectorButtons).forEach(function(e){e.addEventListener("click",function(e){var t=e.target;n.setTheme(t.value),n.selectThemeSelectorButton(t)})}),this.$themeSelectorEnableSettingsCookiesButton.addEventListener("click",function(){n.cookies.acceptPolicy("settings")}),this.showThemeSelector(),this.cookies.on("changePolicy",function(e){Object.hasOwn(e,"settings")&&(!0===e.settings?(n.cookies.set(n.themeCookieName,n.currentTheme),n.$themeSelectorNotice.setAttribute("hidden","")):(n.cookies.delete(n.themeCookieName),n.$themeSelectorNotice.removeAttribute("hidden")))}))},(t=[{key:"showThemeSelector",value:function(){var e=this;if(this.$themeSelector.removeAttribute("hidden"),this.cookies.exists(this.themeCookieName)){var t=Array.from(this.$themeSelectorButtons).find(function(t){return t.value===e.cookies.get(e.themeCookieName)});t&&this.selectThemeSelectorButton(t)}this.cookies.isPolicyAccepted("settings")||this.$themeSelectorNotice.removeAttribute("hidden")}},{key:"setTheme",value:function(e){if("light"===e)this.$tnaTemplate.classList.remove("tna-template--system-theme","tna-template--dark-theme");else if("dark"===e)this.$tnaTemplate.classList.remove("tna-template--system-theme"),this.$tnaTemplate.classList.add("tna-template--dark-theme");else{if("system"!==e)return;this.$tnaTemplate.classList.remove("tna-template--dark-theme"),this.$tnaTemplate.classList.add("tna-template--system-theme")}this.currentTheme=e,this.cookies.isPolicyAccepted("settings")?this.cookies.set(this.themeCookieName,this.currentTheme):this.$themeSelectorNotice.removeAttribute("hidden")}},{key:"selectThemeSelectorButton",value:function(e){Array.from(this.$themeSelectorButtons).forEach(function(t){t.value===e.value?(t.classList.remove("tna-button--plain"),t.setAttribute("aria-current",!0)):(t.classList.add("tna-button--plain"),t.removeAttribute("aria-current"))})}}])&&s(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t}();return o})());
1
+ !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("TNAFrontend",[],t):"object"==typeof exports?exports.TNAFrontend=t():e.TNAFrontend=t()}(self,()=>(()=>{"use strict";var e={533(e,t,n){function o(e){return o="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},o(e)}var i;function r(e){return function(e){if(Array.isArray(e))return s(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 s(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)?s(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 s(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=Array(t);n<t;n++)o[n]=e[n];return o}function c(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,l(o.key),o)}}function a(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"!=o(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=o(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==o(t)?t:t+""}n.d(t,{A:()=>k}),(i=window).TNAFrontendCookieEvents||(i.TNAFrontendCookieEvents=null);var u,h=function(){return e=function e(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),a(this,"events",{}),a(this,"oneTimeEvents",{}),a(this,"debug",!1),this.debug=t,window.TNAFrontendCookieEvents)return this.log("Using existing TNAFrontendCookieEvents instance"),window.TNAFrontendCookieEvents;window.TNAFrontendCookieEvents=this},t=[{key:"log",value:function(){if(this.debug){for(var e,t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];(e=console).log.apply(e,["[TNA Frontend Cookie Events]"].concat(n))}}},{key:"on",value:function(e,t){Object.hasOwn(this.events,e)||(this.events[e]=[]),this.events[e]=[].concat(r(this.events[e]),[t])}},{key:"once",value:function(e,t){Object.hasOwn(this.oneTimeEvents,e)||(this.oneTimeEvents[e]=[]),this.oneTimeEvents[e]=[].concat(r(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.log("Triggering event: ".concat(e),n),this.events[e].forEach(function(e){return e.call(t,n)})),Object.hasOwn(this.oneTimeEvents,e)){this.log("Triggering one-time event: ".concat(e),n);for(var o=this.oneTimeEvents[e].length-1;o>=0;o-=1)this.oneTimeEvents[e][o].call(this,n),this.oneTimeEvents[e].splice(o,1)}}}],t&&c(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t}();function f(e){return f="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},f(e)}function m(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=Array(t);n<t;n++)o[n]=e[n];return o}function y(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,o)}return n}function d(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?y(Object(n),!0).forEach(function(t){p(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):y(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function v(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,g(o.key),o)}}function p(e,t,n){return(t=g(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function g(e){var t=function(e){if("object"!=f(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=f(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==f(t)?t:t+""}(u=window).TNAFrontendCookies||(u.TNAFrontendCookies=null);var b=["usage","settings","marketing","essential"],k=function(){return e=function e(){var t=this,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),p(this,"defaultDomain",""),p(this,"defaultPath",""),p(this,"secure",!0),p(this,"policiesKey",""),p(this,"events",null),p(this,"defaultAge",null),p(this,"policiesCorrectOnInit",!1),p(this,"debug","true"===document.documentElement.dataset.tnaFrontendDebug);var o=n.defaultDomain,i=n.defaultPath,r=n.secure,s=n.policiesKey,c=n.defaultAge,a=n.newInstance,l=void 0!==a&&a,u=n.noInit,f=void 0!==u&&u;if(!l&&window.TNAFrontendCookies)return window.TNAFrontendCookies;this.defaultDomain=o||document.documentElement.dataset.tnaCookiesDomain||window.location.hostname,this.defaultPath=i||document.documentElement.dataset.tnaCookiesPath||"/",this.secure=r||"true"!==document.documentElement.dataset.tnaCookiesInsecure,this.policiesKey=s||document.documentElement.dataset.tnaCookiesPoliciesKey||"cookies_policy",this.defaultAge=c||parseInt(document.documentElement.dataset.tnaCookiesDefaultAge,10)||31536e3,this.events=new h(this.debug),this.policiesCorrectOnInit=Object.keys(this.policies).length===b.length&&b.every(function(e){return Object.keys(t.policies).includes(e)&&"boolean"==typeof t.policies[e]}),this.policiesCorrectOnInit||f||this.init(),this.log({defaultDomain:this.defaultDomain,defaultPath:this.defaultPath,secure:this.secure,policiesKey:this.policiesKey,defaultAge:this.defaultAge,policiesCorrectOnInit:this.policiesCorrectOnInit}),l||window.TNAFrontendCookies||(window.TNAFrontendCookies=this)},t=[{key:"init",value:function(){var e=this.policies;this.log("Existing policies on init:",e);var t=Object.fromEntries(Object.keys(e).filter(function(e){return b.includes(e)}).map(function(t){return[t,e[t]]}));Object.keys(t).length&&this.log("Filtered existing policies:",t),this.savePolicies(d(d({usage:!1,settings:!1,marketing:!1},t),{},{essential:!0}))}},{key:"log",value:function(){if(this.debug){for(var e,t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];(e=console).log.apply(e,["[TNA Frontend Cookies]"].concat(n,[this.all]))}}},{key:"destroyInstance",value:function(){this.log("Destroying TNAFrontendCookies instance"),window.TNAFrontendCookies=null}},{key:"all",get:function(){var e={};return document.cookie.split("; ").filter(function(e){return""!==e.trim()}).forEach(function(t){var n=function(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 o,i,r,s,c=[],a=!0,l=!1;try{if(r=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;a=!1}else for(;!(a=(o=r.call(n)).done)&&(c.push(o.value),c.length!==t);a=!0);}catch(e){l=!0,i=e}finally{try{if(!a&&null!=n.return&&(s=n.return(),Object(s)!==s))return}finally{if(l)throw i}}return c}}(e,t)||function(e,t){if(e){if("string"==typeof e)return m(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)?m(e,t):void 0}}(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.")}()}(t.trim().split("="),2),o=n[0],i=n[1];o&&(e[o]=decodeURIComponent(i||""))}),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]:{},o=n.maxAge,i=void 0===o?this.defaultAge:o,r=n.sameSite,s=void 0===r?"Lax":r,c=n.domain,a=void 0===c?this.defaultDomain:c,l=n.path,u=void 0===l?this.defaultPath:l,h=n.secure,f=void 0===h?this.secure:h,m=n.session,y=void 0!==m&&m;if(e){var d="";f&&(d="; secure");var v="";y||(v="; max-age=".concat(i));var p="".concat(encodeURIComponent(e),"=").concat(encodeURIComponent(t),"; domain=").concat(a,"; samesite=").concat(s,"; path=").concat(u).concat(v).concat(d);document.cookie=p,this.log("Set cookie:",{key:e,value:t,maxAge:i,path:u,sameSite:s,domain:a,secure:f,session:y,cookie:p}),this.events.trigger("setCookie",{key:e,value:t,maxAge:i,path:u,sameSite:s,domain:a,secure:f,session:y,cookie:p})}}},{key:"delete",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"/",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.defaultDomain,o={maxAge:-1,path:t,domain:n||this.defaultDomain};this.set(e,"",o),this.log("Deleted cookie:",d({key:e,path:t,domain:n},o)),this.events.trigger("deleteCookie",d({key:e},o))}},{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]:this.defaultDomain;Object.keys(this.all).forEach(function(o){e.delete(o,t,n)}),this.log("Deleted all cookies",{path:t,domain:n}),this.events.trigger("deleteAllCookies",{path:t,domain:n})}},{key:"acceptPolicy",value:function(e){this.log("Accepting policy:",e),this.setPolicy(e,!0),this.events.trigger("acceptPolicy",e),this.events.trigger("changePolicy",p({},e,!0))}},{key:"rejectPolicy",value:function(e){this.log("Rejecting policy:",e),this.setPolicy(e,!1),this.events.trigger("rejectPolicy",e),this.events.trigger("changePolicy",p({},e,!1))}},{key:"setPolicy",value:function(e,t){"essential"!==e?(this.log("Setting policy ".concat(e," to ").concat(t)),this.savePolicies(d(d({},this.policies),{},p(p({},e,t),"essential",!0))),this.events.trigger("changePolicy",p({},e,t))):this.log("Cannot change essential policy, it is always accepted.")}},{key:"acceptAllPolicies",value:function(){this.log("Accepting all policies");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(){this.log("Rejecting all policies");var e=d(d({},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.log("Saving policies:",e),this.set(this.policiesKey,JSON.stringify(e))}},{key:"isPolicyAccepted",value:function(e){return Object.hasOwn(this.policies,e)?!0===this.policies[e]:null}},{key:"on",value:function(e,t){this.log("Adding event listener for: ".concat(e)),this.events.on(e,t)}},{key:"once",value:function(e,t){this.log("Adding one-time event listener for: ".concat(e)),this.events.once(e,t)}}],t&&v(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t}()}},t={};function n(o){var i=t[o];if(void 0!==i)return i.exports;var r=t[o]={exports:{}};return e[o](r,r.exports,n),r.exports}n.d=(e,t)=>{for(var o in t)n.o(t,o)&&!n.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},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 o={};n.r(o),n.d(o,{Footer:()=>a});var i=n(533);function r(e){return r="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},r(e)}function s(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,c(o.key),o)}}function c(e){var t=function(e){if("object"!=r(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=r(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==r(t)?t:t+""}var a=function(){return e=function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"theme";!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.$module=t,this.$themeSelector=t&&t.querySelector(".tna-footer__theme-selector"),this.$themeSelectorNotice=t&&t.querySelector(".tna-footer__theme-selector-notice"),this.$themeSelectorEnableSettingsCookiesButton=this.$themeSelectorNotice&&this.$themeSelectorNotice.querySelector(".tna-footer__theme-selector-enable-settings-cookies"),this.$tnaTemplate=document.querySelector(".tna-template"),this.$module&&this.$themeSelector&&this.$themeSelectorNotice&&this.$themeSelectorEnableSettingsCookiesButton&&this.$tnaTemplate&&(this.themeCookieName=n,this.init())},(t=[{key:"init",value:function(){var e=this;this.currentTheme=this.$themeSelector.dataset.themeOnLoad,this.cookies=new i.A,this.$themeSelectorButtons=this.$themeSelector.querySelectorAll("button.tna-footer__theme-selector-button[value]"),Array.from(this.$themeSelectorButtons).forEach(function(t){t.addEventListener("click",function(t){var n=t.target;e.setTheme(n.value),e.selectThemeSelectorButton(n)})}),this.$themeSelectorEnableSettingsCookiesButton.addEventListener("click",function(){e.cookies.acceptPolicy("settings")}),this.showThemeSelector(),this.cookies.on("changePolicy",function(t){Object.hasOwn(t,"settings")&&(!0===t.settings?(e.cookies.set(e.themeCookieName,e.currentTheme),e.$themeSelectorNotice.setAttribute("hidden","")):(e.cookies.delete(e.themeCookieName),e.$themeSelectorNotice.removeAttribute("hidden")))})}},{key:"showThemeSelector",value:function(){var e=this;if(this.$themeSelector.removeAttribute("hidden"),this.cookies.exists(this.themeCookieName)){var t=Array.from(this.$themeSelectorButtons).find(function(t){return t.value===e.cookies.get(e.themeCookieName)});t&&this.selectThemeSelectorButton(t)}this.cookies.isPolicyAccepted("settings")||this.$themeSelectorNotice.removeAttribute("hidden")}},{key:"setTheme",value:function(e){if("light"===e)this.$tnaTemplate.classList.remove("tna-template--system-theme","tna-template--dark-theme");else if("dark"===e)this.$tnaTemplate.classList.remove("tna-template--system-theme"),this.$tnaTemplate.classList.add("tna-template--dark-theme");else{if("system"!==e)return;this.$tnaTemplate.classList.remove("tna-template--dark-theme"),this.$tnaTemplate.classList.add("tna-template--system-theme")}this.currentTheme=e,this.cookies.isPolicyAccepted("settings")?this.cookies.set(this.themeCookieName,this.currentTheme):this.$themeSelectorNotice.removeAttribute("hidden")}},{key:"selectThemeSelectorButton",value:function(e){Array.from(this.$themeSelectorButtons).forEach(function(t){t.value===e.value?(t.classList.remove("tna-button--plain"),t.setAttribute("aria-current",!0)):(t.classList.add("tna-button--plain"),t.removeAttribute("aria-current"))})}}])&&s(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t}();return o})());
2
2
  //# sourceMappingURL=footer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"components/footer/footer.js","mappings":"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","sources":["webpack://TNAFrontend/webpack/universalModuleDefinition","webpack://TNAFrontend/./src/nationalarchives/lib/cookie-events.mjs","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/components/footer/footer.mjs"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"TNAFrontend\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"TNAFrontend\"] = factory();\n\telse\n\t\troot[\"TNAFrontend\"] = factory();\n})(self, () => {\nreturn ","window.TNAFrontendCookieEvents ||= null;\n\nexport class CookieEventHandler {\n events = {};\n oneTimeEvents = {};\n debug = false;\n\n constructor(debug = false) {\n this.debug = debug;\n if (window.TNAFrontendCookieEvents) {\n this.log(\"Using existing TNAFrontendCookieEvents instance\");\n /* eslint-disable-next-line no-constructor-return */\n return window.TNAFrontendCookieEvents;\n }\n window.TNAFrontendCookieEvents = this;\n }\n\n log(...args) {\n if (this.debug) {\n /* eslint-disable-next-line no-console */\n console.log(\"[TNA Frontend Cookie Events]\", ...args);\n }\n }\n\n /**\n * Add an event listener.\n * @param {String} event - The event to add a listener for.\n * @param {Function} callback - The callback function to call when the event is triggered.\n */\n on(event, callback) {\n if (!Object.hasOwn(this.events, event)) {\n this.events[event] = [];\n }\n this.events[event] = [...this.events[event], callback];\n }\n\n once(event, callback) {\n if (!Object.hasOwn(this.oneTimeEvents, event)) {\n this.oneTimeEvents[event] = [];\n }\n this.oneTimeEvents[event] = [...this.oneTimeEvents[event], callback];\n }\n\n /** @protected */\n trigger(event, data = {}) {\n if (Object.hasOwn(this.events, event)) {\n this.log(`Triggering event: ${event}`, data);\n this.events[event].forEach((eventToTrigger) =>\n eventToTrigger.call(this, data),\n );\n }\n if (Object.hasOwn(this.oneTimeEvents, event)) {\n this.log(`Triggering one-time event: ${event}`, data);\n\n for (\n /* eslint-disable-next-line no-magic-numbers */\n let eventIndex = this.oneTimeEvents[event].length - 1;\n /* eslint-disable-next-line no-magic-numbers */\n eventIndex >= 0;\n /* eslint-disable-next-line no-magic-numbers */\n eventIndex -= 1\n ) {\n const eventToTrigger = this.oneTimeEvents[event][eventIndex];\n eventToTrigger.call(this, data);\n /* eslint-disable-next-line no-magic-numbers */\n this.oneTimeEvents[event].splice(eventIndex, 1);\n }\n }\n }\n}\n","/* eslint-disable max-lines */\n/* eslint-disable no-console */\n\nimport { CookieEventHandler } from \"./cookie-events.mjs\";\n\nwindow.TNAFrontendCookies ||= null;\n\nconst tnaCookiePolicies = [\"usage\", \"settings\", \"marketing\", \"essential\"];\n\n/**\n * Class to handle cookies.\n * @class Cookies\n * @constructor\n * @public\n */\nexport default class Cookies {\n /** @protected */\n defaultDomain = \"\";\n /** @protected */\n defaultPath = \"\";\n /** @protected */\n secure = true;\n /** @protected */\n policiesKey = \"\";\n /** @protected */\n events = null;\n /** @protected */\n defaultAge = null;\n /** @protected */\n policiesCorrectOnInit = false;\n /** @protected */\n debug = document.documentElement.dataset.tnaFrontendDebug === \"true\";\n\n /**\n * Create a cookie handler.\n * @param {String} [options.defaultDomain] - The domain to register the cookie with.\n * @param {String} [options.path] - The domain to register the cookie with.\n * @param {Boolean} [options.secure] - Only set cookie in HTTPS environments.\n * @param {String} [options.policiesKey] - The name of the cookie.\n * @param {Number} [options.defaultAge] - The default age of non-session cookies.\n * @param {String} [options.newInstance=false] - Create a fresh instance of the cookie class.\n * @param {Boolean} [options.noInit=false] - Don't initialise a blank cookie policy.\n */\n constructor(options = {}) {\n const {\n defaultDomain,\n defaultPath,\n secure,\n policiesKey,\n defaultAge,\n newInstance = false,\n noInit = false,\n } = options;\n if (!newInstance && window.TNAFrontendCookies) {\n /* eslint-disable-next-line no-constructor-return */\n return window.TNAFrontendCookies;\n }\n if (defaultDomain) {\n this.defaultDomain = defaultDomain;\n } else {\n this.defaultDomain =\n document.documentElement.dataset.tnaCookiesDomain ||\n window.location.hostname;\n }\n if (defaultPath) {\n this.defaultPath = defaultPath;\n } else {\n this.defaultPath = document.documentElement.dataset.tnaCookiesPath || \"/\";\n }\n if (secure) {\n this.secure = secure;\n } else {\n this.secure =\n document.documentElement.dataset.tnaCookiesInsecure !== \"true\";\n }\n if (policiesKey) {\n this.policiesKey = policiesKey;\n } else {\n this.policiesKey =\n document.documentElement.dataset.tnaCookiesPoliciesKey ||\n \"cookies_policy\";\n }\n if (defaultAge) {\n this.defaultAge = defaultAge;\n } else {\n /* eslint-disable-next-line no-magic-numbers */\n const secondsInAYear = 365 * 24 * 60 * 60;\n this.defaultAge =\n parseInt(document.documentElement.dataset.tnaCookiesDefaultAge, 10) ||\n secondsInAYear;\n }\n this.events = new CookieEventHandler(this.debug);\n this.policiesCorrectOnInit =\n Object.keys(this.policies).length === tnaCookiePolicies.length &&\n tnaCookiePolicies.every(\n (policy) =>\n Object.keys(this.policies).includes(policy) &&\n typeof this.policies[policy] === \"boolean\",\n );\n if (!this.policiesCorrectOnInit && !noInit) {\n this.init();\n }\n this.log({\n defaultDomain: this.defaultDomain,\n defaultPath: this.defaultPath,\n secure: this.secure,\n policiesKey: this.policiesKey,\n defaultAge: this.defaultAge,\n policiesCorrectOnInit: this.policiesCorrectOnInit,\n });\n if (!newInstance && !window.TNAFrontendCookies) {\n window.TNAFrontendCookies = this;\n }\n }\n\n /** @protected */\n init() {\n const existingPolicies = this.policies;\n this.log(\"Existing policies on init:\", existingPolicies);\n const filteredExistingPolicies = Object.fromEntries(\n Object.keys(existingPolicies)\n .filter((policy) => tnaCookiePolicies.includes(policy))\n .map((policy) => [policy, existingPolicies[policy]]),\n );\n if (Object.keys(filteredExistingPolicies).length) {\n this.log(\"Filtered existing policies:\", filteredExistingPolicies);\n }\n this.savePolicies({\n usage: false,\n settings: false,\n marketing: false,\n ...filteredExistingPolicies,\n essential: true,\n });\n }\n\n log(...args) {\n if (this.debug) {\n console.log(\"[TNA Frontend Cookies]\", ...args, this.all);\n }\n }\n\n destroyInstance() {\n this.log(\"Destroying TNAFrontendCookies instance\");\n window.TNAFrontendCookies = null;\n }\n\n /** @protected */\n /* eslint-disable-next-line class-methods-use-this */\n get all() {\n const deserialised = {};\n document.cookie\n .split(\"; \")\n .filter((cookie) => cookie.trim() !== \"\")\n .forEach((cookie) => {\n const parts = cookie.trim().split(\"=\");\n const [key, value] = parts;\n if (key) {\n deserialised[key] = decodeURIComponent(value || \"\");\n }\n });\n return deserialised;\n }\n\n /** @protected */\n get policies() {\n try {\n return JSON.parse(this.get(this.policiesKey) || \"{}\");\n // eslint-disable-next-line no-unused-vars\n } catch (error) {\n return {};\n }\n }\n\n /**\n * Check to see whether a cookie exists or not.\n * @param {String} key - The cookie name.\n * @returns {Boolean}\n */\n exists(key) {\n return Object.hasOwn(this.all, key);\n }\n\n /**\n * Check to see whether a cookie has a particular value.\n * @param {String} key - The cookie name.\n * @param {String|Number|Boolean} value - The value to check against.\n * @returns\n */\n hasValue(key, value) {\n return this.get(key) === value;\n }\n\n /**\n * Get a cookie.\n * @param {String} key - The cookie name.\n * @returns {String|Number|Boolean|null}\n */\n get(key) {\n if (this.exists(key)) {\n return decodeURIComponent(this.all[key]);\n }\n return null;\n }\n\n /**\n * Set a cookie.\n * @param {String} key - The cookie name.\n * @param {String|Number|Boolean} value - The cookie value.\n * @param {Object} options\n * @param {Number} [options.maxAge=this.defaultAge] - The maximum age of the cookie in seconds.\n * @param {String} [options.path=/] - The path to register the cookie for.\n * @param {String} [options.sameSite=Lax] - The sameSite attribute.\n * @param {String} [options.domain=this.defaultDomain] - The domain to register the cookie with.\n * @param {String} [options.path=this.defaultPath] - The path to register the cookie with.\n * @param {String} [options.secure=this.secure] - Only set cookie in HTTPS environments.\n * @param {String} [options.session=false] - Set a session cookie.\n */\n set(key, value, options = {}) {\n const {\n maxAge = this.defaultAge,\n sameSite = \"Lax\",\n domain = this.defaultDomain,\n path = this.defaultPath,\n secure = this.secure,\n session = false,\n } = options;\n if (!key) {\n return;\n }\n let secureString = \"\";\n if (secure) {\n secureString = \"; secure\";\n }\n let sessionString = \"\";\n if (!session) {\n sessionString = `; max-age=${maxAge}`;\n }\n const cookie = `${encodeURIComponent(key)}=${encodeURIComponent(value)}; domain=${domain}; samesite=${sameSite}; path=${path}${sessionString}${secureString}`;\n document.cookie = cookie;\n this.log(\"Set cookie:\", {\n key,\n value,\n maxAge,\n path,\n sameSite,\n domain,\n secure,\n session,\n cookie,\n });\n this.events.trigger(\"setCookie\", {\n key,\n value,\n maxAge,\n path,\n sameSite,\n domain,\n secure,\n session,\n cookie,\n });\n }\n\n /**\n * Delete a cookie.\n * @param {String} key - The cookie name.\n * @param {String} [path=/] - The path to the cookie is registered on.\n */\n delete(key, path = \"/\", domain = this.defaultDomain) {\n const options = { maxAge: -1, path, domain: domain || this.defaultDomain };\n this.set(key, \"\", options);\n this.log(\"Deleted cookie:\", { key, path, domain, ...options });\n this.events.trigger(\"deleteCookie\", { key, ...options });\n }\n\n /**\n * Delete all cookies.\n */\n deleteAll(path = \"/\", domain = this.defaultDomain) {\n Object.keys(this.all).forEach((cookie) => {\n this.delete(cookie, path, domain);\n });\n this.log(\"Deleted all cookies\", { path, domain });\n this.events.trigger(\"deleteAllCookies\", { path, domain });\n }\n\n /**\n * Accept a policy.\n * @param {String} policy - The name of the policy.\n */\n acceptPolicy(policy) {\n this.log(\"Accepting policy:\", policy);\n this.setPolicy(policy, true);\n this.events.trigger(\"acceptPolicy\", policy);\n this.events.trigger(\"changePolicy\", { [policy]: true });\n }\n\n /**\n * Reject a policy.\n * @param {String} policy - The name of the policy.\n */\n rejectPolicy(policy) {\n this.log(\"Rejecting policy:\", policy);\n this.setPolicy(policy, false);\n this.events.trigger(\"rejectPolicy\", policy);\n this.events.trigger(\"changePolicy\", { [policy]: false });\n }\n\n /**\n * Set a policy.\n * @param {String} policy - The name of the policy.\n * @param {Boolean} accepted - Whether the policy is accepted or not.\n */\n setPolicy(policy, accepted) {\n if (policy === \"essential\") {\n this.log(\"Cannot change essential policy, it is always accepted.\");\n return;\n }\n this.log(`Setting policy ${policy} to ${accepted}`);\n this.savePolicies({\n ...this.policies,\n [policy]: accepted,\n essential: true,\n });\n this.events.trigger(\"changePolicy\", { [policy]: accepted });\n }\n\n /**\n * Accept all the cookie policies.\n */\n acceptAllPolicies() {\n this.log(\"Accepting all policies\");\n const allPolicies = Object.fromEntries(\n Object.keys(this.policies).map((key) => [key.toLowerCase(), true]),\n );\n this.savePolicies(allPolicies);\n this.events.trigger(\"acceptAllPolicies\");\n this.events.trigger(\"changePolicy\", allPolicies);\n }\n\n /**\n * Reject all the cookie policies.\n */\n rejectAllPolicies() {\n this.log(\"Rejecting all policies\");\n const allPolicies = {\n ...Object.fromEntries(\n Object.keys(this.policies).map((key) => [key.toLowerCase(), false]),\n ),\n essential: true,\n };\n this.savePolicies(allPolicies);\n this.events.trigger(\"rejectAllPolicies\");\n this.events.trigger(\"changePolicy\", allPolicies);\n }\n\n /**\n * Commit policy preferences to the browser.\n * @param {object} policies - The policies to commit.\n */\n savePolicies(policies) {\n this.log(\"Saving policies:\", policies);\n this.set(this.policiesKey, JSON.stringify(policies));\n }\n\n /**\n * Get the acceptance status of a policy.\n * @param {String} policy - The name of the policy.\n * @returns {Boolean}\n */\n isPolicyAccepted(policy) {\n if (Object.hasOwn(this.policies, policy)) {\n return this.policies[policy] === true;\n }\n return null;\n }\n\n /**\n * Add an event listener.\n * @param {String} event - The event to add a listener for.\n * @param {Function} callback - The callback function to call when the event is triggered.\n */\n on(event, callback) {\n this.log(`Adding event listener for: ${event}`);\n this.events.on(event, callback);\n }\n\n /**\n * Add a one-time event listener.\n * @param {String} event - The event to add a listener for.\n * @param {Function} callback - The callback function to call when the event is triggered.\n */\n once(event, callback) {\n this.log(`Adding one-time event listener for: ${event}`);\n this.events.once(event, callback);\n }\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import Cookies from \"../../lib/cookies.mjs\";\n\nexport class Footer {\n constructor($module, themeCookieName = \"theme\") {\n this.$module = $module;\n this.$themeSelector =\n $module && $module.querySelector(\".tna-footer__theme-selector\");\n this.$themeSelectorNotice =\n $module && $module.querySelector(\".tna-footer__theme-selector-notice\");\n this.$themeSelectorEnableSettingsCookiesButton =\n this.$themeSelectorNotice &&\n this.$themeSelectorNotice.querySelector(\n \".tna-footer__theme-selector-enable-settings-cookies\",\n );\n this.$tnaTemplate = document.querySelector(\".tna-template\");\n\n if (\n !this.$module ||\n !this.$themeSelector ||\n !this.$themeSelectorNotice ||\n !this.$themeSelectorEnableSettingsCookiesButton ||\n !this.$tnaTemplate\n ) {\n return;\n }\n\n this.currentTheme = this.$themeSelector.dataset.themeOnLoad;\n\n this.themeCookieName = themeCookieName;\n\n this.cookies = new Cookies();\n\n this.$themeSelectorButtons = this.$themeSelector.querySelectorAll(\n \"button.tna-footer__theme-selector-button[value]\",\n );\n\n Array.from(this.$themeSelectorButtons).forEach(($themeSelectorButton) => {\n $themeSelectorButton.addEventListener(\"click\", (event) => {\n const $button = event.target;\n this.setTheme($button.value);\n this.selectThemeSelectorButton($button);\n });\n });\n\n this.$themeSelectorEnableSettingsCookiesButton.addEventListener(\n \"click\",\n () => {\n this.cookies.acceptPolicy(\"settings\");\n },\n );\n\n this.showThemeSelector();\n this.cookies.on(\"changePolicy\", (data) => {\n if (Object.hasOwn(data, \"settings\")) {\n if (data.settings === true) {\n this.cookies.set(this.themeCookieName, this.currentTheme);\n this.$themeSelectorNotice.setAttribute(\"hidden\", \"\");\n } else {\n this.cookies.delete(this.themeCookieName);\n this.$themeSelectorNotice.removeAttribute(\"hidden\");\n }\n }\n });\n }\n\n showThemeSelector() {\n this.$themeSelector.removeAttribute(\"hidden\");\n if (this.cookies.exists(this.themeCookieName)) {\n const $currentThemeButton = Array.from(this.$themeSelectorButtons).find(\n ($button) => $button.value === this.cookies.get(this.themeCookieName),\n );\n if ($currentThemeButton) {\n this.selectThemeSelectorButton($currentThemeButton);\n }\n }\n if (!this.cookies.isPolicyAccepted(\"settings\")) {\n this.$themeSelectorNotice.removeAttribute(\"hidden\");\n }\n }\n\n setTheme(theme) {\n if (theme === \"light\") {\n this.$tnaTemplate.classList.remove(\n \"tna-template--system-theme\",\n \"tna-template--dark-theme\",\n );\n } else if (theme === \"dark\") {\n this.$tnaTemplate.classList.remove(\"tna-template--system-theme\");\n this.$tnaTemplate.classList.add(`tna-template--dark-theme`);\n } else if (theme === \"system\") {\n this.$tnaTemplate.classList.remove(\"tna-template--dark-theme\");\n this.$tnaTemplate.classList.add(`tna-template--system-theme`);\n } else {\n return;\n }\n this.currentTheme = theme;\n if (this.cookies.isPolicyAccepted(\"settings\")) {\n this.cookies.set(this.themeCookieName, this.currentTheme);\n } else {\n this.$themeSelectorNotice.removeAttribute(\"hidden\");\n }\n }\n\n selectThemeSelectorButton($selectedButton) {\n Array.from(this.$themeSelectorButtons).forEach(($button) => {\n if ($button.value === $selectedButton.value) {\n $button.classList.remove(\"tna-button--plain\");\n $button.setAttribute(\"aria-current\", true);\n } else {\n $button.classList.add(\"tna-button--plain\");\n $button.removeAttribute(\"aria-current\");\n }\n });\n }\n}\n"],"names":["root","factory","exports","module","define","amd","self","_window","window","TNAFrontendCookieEvents","CookieEventHandler","debug","arguments","length","undefined","_classCallCheck","this","_defineProperty","log","key","value","_console","_len","args","Array","_key","console","apply","concat","event","callback","Object","hasOwn","events","_toConsumableArray","oneTimeEvents","_this","data","forEach","eventToTrigger","call","eventIndex","splice","TNAFrontendCookies","tnaCookiePolicies","Cookies","options","document","documentElement","dataset","tnaFrontendDebug","defaultDomain","defaultPath","secure","policiesKey","defaultAge","_options$newInstance","newInstance","_options$noInit","noInit","tnaCookiesDomain","location","hostname","tnaCookiesPath","tnaCookiesInsecure","tnaCookiesPoliciesKey","parseInt","tnaCookiesDefaultAge","policiesCorrectOnInit","keys","policies","every","policy","includes","init","existingPolicies","filteredExistingPolicies","fromEntries","filter","map","savePolicies","_objectSpread","usage","settings","marketing","essential","all","get","deserialised","cookie","split","trim","_parts","_slicedToArray","decodeURIComponent","JSON","parse","error","exists","_options$maxAge","maxAge","_options$sameSite","sameSite","_options$domain","domain","_options$path","path","_options$secure","_options$session","session","secureString","sessionString","encodeURIComponent","trigger","set","_this2","setPolicy","accepted","allPolicies","toLowerCase","stringify","on","once","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","d","definition","o","defineProperty","enumerable","obj","prop","prototype","hasOwnProperty","r","Symbol","toStringTag","Footer","$module","themeCookieName","$themeSelector","querySelector","$themeSelectorNotice","$themeSelectorEnableSettingsCookiesButton","$tnaTemplate","currentTheme","themeOnLoad","cookies","$themeSelectorButtons","querySelectorAll","from","$themeSelectorButton","addEventListener","$button","target","setTheme","selectThemeSelectorButton","acceptPolicy","showThemeSelector","setAttribute","removeAttribute","$currentThemeButton","find","isPolicyAccepted","theme","classList","remove","add","$selectedButton"],"sourceRoot":""}
1
+ {"version":3,"file":"components/footer/footer.js","mappings":"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","sources":["webpack://TNAFrontend/webpack/universalModuleDefinition","webpack://TNAFrontend/./src/nationalarchives/lib/cookie-events.mjs","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/components/footer/footer.mjs"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"TNAFrontend\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"TNAFrontend\"] = factory();\n\telse\n\t\troot[\"TNAFrontend\"] = factory();\n})(self, () => {\nreturn ","window.TNAFrontendCookieEvents ||= null;\n\nexport class CookieEventHandler {\n events = {};\n oneTimeEvents = {};\n debug = false;\n\n constructor(debug = false) {\n this.debug = debug;\n if (window.TNAFrontendCookieEvents) {\n this.log(\"Using existing TNAFrontendCookieEvents instance\");\n /* eslint-disable-next-line no-constructor-return */\n return window.TNAFrontendCookieEvents;\n }\n window.TNAFrontendCookieEvents = this;\n }\n\n log(...args) {\n if (this.debug) {\n /* eslint-disable-next-line no-console */\n console.log(\"[TNA Frontend Cookie Events]\", ...args);\n }\n }\n\n /**\n * Add an event listener.\n * @param {String} event - The event to add a listener for.\n * @param {Function} callback - The callback function to call when the event is triggered.\n */\n on(event, callback) {\n if (!Object.hasOwn(this.events, event)) {\n this.events[event] = [];\n }\n this.events[event] = [...this.events[event], callback];\n }\n\n once(event, callback) {\n if (!Object.hasOwn(this.oneTimeEvents, event)) {\n this.oneTimeEvents[event] = [];\n }\n this.oneTimeEvents[event] = [...this.oneTimeEvents[event], callback];\n }\n\n /** @protected */\n trigger(event, data = {}) {\n if (Object.hasOwn(this.events, event)) {\n this.log(`Triggering event: ${event}`, data);\n this.events[event].forEach((eventToTrigger) =>\n eventToTrigger.call(this, data),\n );\n }\n if (Object.hasOwn(this.oneTimeEvents, event)) {\n this.log(`Triggering one-time event: ${event}`, data);\n\n for (\n /* eslint-disable-next-line no-magic-numbers */\n let eventIndex = this.oneTimeEvents[event].length - 1;\n /* eslint-disable-next-line no-magic-numbers */\n eventIndex >= 0;\n /* eslint-disable-next-line no-magic-numbers */\n eventIndex -= 1\n ) {\n const eventToTrigger = this.oneTimeEvents[event][eventIndex];\n eventToTrigger.call(this, data);\n /* eslint-disable-next-line no-magic-numbers */\n this.oneTimeEvents[event].splice(eventIndex, 1);\n }\n }\n }\n}\n","/* eslint-disable max-lines */\n/* eslint-disable no-console */\n\nimport { CookieEventHandler } from \"./cookie-events.mjs\";\n\nwindow.TNAFrontendCookies ||= null;\n\nconst tnaCookiePolicies = [\"usage\", \"settings\", \"marketing\", \"essential\"];\n\n/**\n * Class to handle cookies.\n * @class Cookies\n * @constructor\n * @public\n */\nexport default class Cookies {\n /** @protected */\n defaultDomain = \"\";\n /** @protected */\n defaultPath = \"\";\n /** @protected */\n secure = true;\n /** @protected */\n policiesKey = \"\";\n /** @protected */\n events = null;\n /** @protected */\n defaultAge = null;\n /** @protected */\n policiesCorrectOnInit = false;\n /** @protected */\n debug = document.documentElement.dataset.tnaFrontendDebug === \"true\";\n\n /**\n * Create a cookie handler.\n * @param {String} [options.defaultDomain] - The domain to register the cookie with.\n * @param {String} [options.path] - The domain to register the cookie with.\n * @param {Boolean} [options.secure] - Only set cookie in HTTPS environments.\n * @param {String} [options.policiesKey] - The name of the cookie.\n * @param {Number} [options.defaultAge] - The default age of non-session cookies.\n * @param {String} [options.newInstance=false] - Create a fresh instance of the cookie class.\n * @param {Boolean} [options.noInit=false] - Don't initialise a blank cookie policy.\n */\n constructor(options = {}) {\n const {\n defaultDomain,\n defaultPath,\n secure,\n policiesKey,\n defaultAge,\n newInstance = false,\n noInit = false,\n } = options;\n if (!newInstance && window.TNAFrontendCookies) {\n /* eslint-disable-next-line no-constructor-return */\n return window.TNAFrontendCookies;\n }\n if (defaultDomain) {\n this.defaultDomain = defaultDomain;\n } else {\n this.defaultDomain =\n document.documentElement.dataset.tnaCookiesDomain ||\n window.location.hostname;\n }\n if (defaultPath) {\n this.defaultPath = defaultPath;\n } else {\n this.defaultPath = document.documentElement.dataset.tnaCookiesPath || \"/\";\n }\n if (secure) {\n this.secure = secure;\n } else {\n this.secure =\n document.documentElement.dataset.tnaCookiesInsecure !== \"true\";\n }\n if (policiesKey) {\n this.policiesKey = policiesKey;\n } else {\n this.policiesKey =\n document.documentElement.dataset.tnaCookiesPoliciesKey ||\n \"cookies_policy\";\n }\n if (defaultAge) {\n this.defaultAge = defaultAge;\n } else {\n /* eslint-disable-next-line no-magic-numbers */\n const secondsInAYear = 365 * 24 * 60 * 60;\n this.defaultAge =\n parseInt(document.documentElement.dataset.tnaCookiesDefaultAge, 10) ||\n secondsInAYear;\n }\n this.events = new CookieEventHandler(this.debug);\n this.policiesCorrectOnInit =\n Object.keys(this.policies).length === tnaCookiePolicies.length &&\n tnaCookiePolicies.every(\n (policy) =>\n Object.keys(this.policies).includes(policy) &&\n typeof this.policies[policy] === \"boolean\",\n );\n if (!this.policiesCorrectOnInit && !noInit) {\n this.init();\n }\n this.log({\n defaultDomain: this.defaultDomain,\n defaultPath: this.defaultPath,\n secure: this.secure,\n policiesKey: this.policiesKey,\n defaultAge: this.defaultAge,\n policiesCorrectOnInit: this.policiesCorrectOnInit,\n });\n if (!newInstance && !window.TNAFrontendCookies) {\n window.TNAFrontendCookies = this;\n }\n }\n\n /** @protected */\n init() {\n const existingPolicies = this.policies;\n this.log(\"Existing policies on init:\", existingPolicies);\n const filteredExistingPolicies = Object.fromEntries(\n Object.keys(existingPolicies)\n .filter((policy) => tnaCookiePolicies.includes(policy))\n .map((policy) => [policy, existingPolicies[policy]]),\n );\n if (Object.keys(filteredExistingPolicies).length) {\n this.log(\"Filtered existing policies:\", filteredExistingPolicies);\n }\n this.savePolicies({\n usage: false,\n settings: false,\n marketing: false,\n ...filteredExistingPolicies,\n essential: true,\n });\n }\n\n log(...args) {\n if (this.debug) {\n console.log(\"[TNA Frontend Cookies]\", ...args, this.all);\n }\n }\n\n destroyInstance() {\n this.log(\"Destroying TNAFrontendCookies instance\");\n window.TNAFrontendCookies = null;\n }\n\n /** @protected */\n /* eslint-disable-next-line class-methods-use-this */\n get all() {\n const deserialised = {};\n document.cookie\n .split(\"; \")\n .filter((cookie) => cookie.trim() !== \"\")\n .forEach((cookie) => {\n const parts = cookie.trim().split(\"=\");\n const [key, value] = parts;\n if (key) {\n deserialised[key] = decodeURIComponent(value || \"\");\n }\n });\n return deserialised;\n }\n\n /** @protected */\n get policies() {\n try {\n return JSON.parse(this.get(this.policiesKey) || \"{}\");\n // eslint-disable-next-line no-unused-vars\n } catch (error) {\n return {};\n }\n }\n\n /**\n * Check to see whether a cookie exists or not.\n * @param {String} key - The cookie name.\n * @returns {Boolean}\n */\n exists(key) {\n return Object.hasOwn(this.all, key);\n }\n\n /**\n * Check to see whether a cookie has a particular value.\n * @param {String} key - The cookie name.\n * @param {String|Number|Boolean} value - The value to check against.\n * @returns\n */\n hasValue(key, value) {\n return this.get(key) === value;\n }\n\n /**\n * Get a cookie.\n * @param {String} key - The cookie name.\n * @returns {String|Number|Boolean|null}\n */\n get(key) {\n if (this.exists(key)) {\n return decodeURIComponent(this.all[key]);\n }\n return null;\n }\n\n /**\n * Set a cookie.\n * @param {String} key - The cookie name.\n * @param {String|Number|Boolean} value - The cookie value.\n * @param {Object} options\n * @param {Number} [options.maxAge=this.defaultAge] - The maximum age of the cookie in seconds.\n * @param {String} [options.path=/] - The path to register the cookie for.\n * @param {String} [options.sameSite=Lax] - The sameSite attribute.\n * @param {String} [options.domain=this.defaultDomain] - The domain to register the cookie with.\n * @param {String} [options.path=this.defaultPath] - The path to register the cookie with.\n * @param {String} [options.secure=this.secure] - Only set cookie in HTTPS environments.\n * @param {String} [options.session=false] - Set a session cookie.\n */\n set(key, value, options = {}) {\n const {\n maxAge = this.defaultAge,\n sameSite = \"Lax\",\n domain = this.defaultDomain,\n path = this.defaultPath,\n secure = this.secure,\n session = false,\n } = options;\n if (!key) {\n return;\n }\n let secureString = \"\";\n if (secure) {\n secureString = \"; secure\";\n }\n let sessionString = \"\";\n if (!session) {\n sessionString = `; max-age=${maxAge}`;\n }\n const cookie = `${encodeURIComponent(key)}=${encodeURIComponent(value)}; domain=${domain}; samesite=${sameSite}; path=${path}${sessionString}${secureString}`;\n document.cookie = cookie;\n this.log(\"Set cookie:\", {\n key,\n value,\n maxAge,\n path,\n sameSite,\n domain,\n secure,\n session,\n cookie,\n });\n this.events.trigger(\"setCookie\", {\n key,\n value,\n maxAge,\n path,\n sameSite,\n domain,\n secure,\n session,\n cookie,\n });\n }\n\n /**\n * Delete a cookie.\n * @param {String} key - The cookie name.\n * @param {String} [path=/] - The path to the cookie is registered on.\n */\n delete(key, path = \"/\", domain = this.defaultDomain) {\n const options = { maxAge: -1, path, domain: domain || this.defaultDomain };\n this.set(key, \"\", options);\n this.log(\"Deleted cookie:\", { key, path, domain, ...options });\n this.events.trigger(\"deleteCookie\", { key, ...options });\n }\n\n /**\n * Delete all cookies.\n */\n deleteAll(path = \"/\", domain = this.defaultDomain) {\n Object.keys(this.all).forEach((cookie) => {\n this.delete(cookie, path, domain);\n });\n this.log(\"Deleted all cookies\", { path, domain });\n this.events.trigger(\"deleteAllCookies\", { path, domain });\n }\n\n /**\n * Accept a policy.\n * @param {String} policy - The name of the policy.\n */\n acceptPolicy(policy) {\n this.log(\"Accepting policy:\", policy);\n this.setPolicy(policy, true);\n this.events.trigger(\"acceptPolicy\", policy);\n this.events.trigger(\"changePolicy\", { [policy]: true });\n }\n\n /**\n * Reject a policy.\n * @param {String} policy - The name of the policy.\n */\n rejectPolicy(policy) {\n this.log(\"Rejecting policy:\", policy);\n this.setPolicy(policy, false);\n this.events.trigger(\"rejectPolicy\", policy);\n this.events.trigger(\"changePolicy\", { [policy]: false });\n }\n\n /**\n * Set a policy.\n * @param {String} policy - The name of the policy.\n * @param {Boolean} accepted - Whether the policy is accepted or not.\n */\n setPolicy(policy, accepted) {\n if (policy === \"essential\") {\n this.log(\"Cannot change essential policy, it is always accepted.\");\n return;\n }\n this.log(`Setting policy ${policy} to ${accepted}`);\n this.savePolicies({\n ...this.policies,\n [policy]: accepted,\n essential: true,\n });\n this.events.trigger(\"changePolicy\", { [policy]: accepted });\n }\n\n /**\n * Accept all the cookie policies.\n */\n acceptAllPolicies() {\n this.log(\"Accepting all policies\");\n const allPolicies = Object.fromEntries(\n Object.keys(this.policies).map((key) => [key.toLowerCase(), true]),\n );\n this.savePolicies(allPolicies);\n this.events.trigger(\"acceptAllPolicies\");\n this.events.trigger(\"changePolicy\", allPolicies);\n }\n\n /**\n * Reject all the cookie policies.\n */\n rejectAllPolicies() {\n this.log(\"Rejecting all policies\");\n const allPolicies = {\n ...Object.fromEntries(\n Object.keys(this.policies).map((key) => [key.toLowerCase(), false]),\n ),\n essential: true,\n };\n this.savePolicies(allPolicies);\n this.events.trigger(\"rejectAllPolicies\");\n this.events.trigger(\"changePolicy\", allPolicies);\n }\n\n /**\n * Commit policy preferences to the browser.\n * @param {object} policies - The policies to commit.\n */\n savePolicies(policies) {\n this.log(\"Saving policies:\", policies);\n this.set(this.policiesKey, JSON.stringify(policies));\n }\n\n /**\n * Get the acceptance status of a policy.\n * @param {String} policy - The name of the policy.\n * @returns {Boolean}\n */\n isPolicyAccepted(policy) {\n if (Object.hasOwn(this.policies, policy)) {\n return this.policies[policy] === true;\n }\n return null;\n }\n\n /**\n * Add an event listener.\n * @param {String} event - The event to add a listener for.\n * @param {Function} callback - The callback function to call when the event is triggered.\n */\n on(event, callback) {\n this.log(`Adding event listener for: ${event}`);\n this.events.on(event, callback);\n }\n\n /**\n * Add a one-time event listener.\n * @param {String} event - The event to add a listener for.\n * @param {Function} callback - The callback function to call when the event is triggered.\n */\n once(event, callback) {\n this.log(`Adding one-time event listener for: ${event}`);\n this.events.once(event, callback);\n }\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import Cookies from \"../../lib/cookies.mjs\";\n\nexport class Footer {\n constructor($module, themeCookieName = \"theme\") {\n this.$module = $module;\n this.$themeSelector =\n $module && $module.querySelector(\".tna-footer__theme-selector\");\n this.$themeSelectorNotice =\n $module && $module.querySelector(\".tna-footer__theme-selector-notice\");\n this.$themeSelectorEnableSettingsCookiesButton =\n this.$themeSelectorNotice &&\n this.$themeSelectorNotice.querySelector(\n \".tna-footer__theme-selector-enable-settings-cookies\",\n );\n this.$tnaTemplate = document.querySelector(\".tna-template\");\n\n if (\n !this.$module ||\n !this.$themeSelector ||\n !this.$themeSelectorNotice ||\n !this.$themeSelectorEnableSettingsCookiesButton ||\n !this.$tnaTemplate\n ) {\n return;\n }\n\n this.themeCookieName = themeCookieName;\n\n this.init();\n }\n\n init() {\n this.currentTheme = this.$themeSelector.dataset.themeOnLoad;\n\n this.cookies = new Cookies();\n\n this.$themeSelectorButtons = this.$themeSelector.querySelectorAll(\n \"button.tna-footer__theme-selector-button[value]\",\n );\n\n Array.from(this.$themeSelectorButtons).forEach(($themeSelectorButton) => {\n $themeSelectorButton.addEventListener(\"click\", (event) => {\n const $button = event.target;\n this.setTheme($button.value);\n this.selectThemeSelectorButton($button);\n });\n });\n\n this.$themeSelectorEnableSettingsCookiesButton.addEventListener(\n \"click\",\n () => {\n this.cookies.acceptPolicy(\"settings\");\n },\n );\n\n this.showThemeSelector();\n this.cookies.on(\"changePolicy\", (data) => {\n if (Object.hasOwn(data, \"settings\")) {\n if (data.settings === true) {\n this.cookies.set(this.themeCookieName, this.currentTheme);\n this.$themeSelectorNotice.setAttribute(\"hidden\", \"\");\n } else {\n this.cookies.delete(this.themeCookieName);\n this.$themeSelectorNotice.removeAttribute(\"hidden\");\n }\n }\n });\n }\n\n showThemeSelector() {\n this.$themeSelector.removeAttribute(\"hidden\");\n if (this.cookies.exists(this.themeCookieName)) {\n const $currentThemeButton = Array.from(this.$themeSelectorButtons).find(\n ($button) => $button.value === this.cookies.get(this.themeCookieName),\n );\n if ($currentThemeButton) {\n this.selectThemeSelectorButton($currentThemeButton);\n }\n }\n if (!this.cookies.isPolicyAccepted(\"settings\")) {\n this.$themeSelectorNotice.removeAttribute(\"hidden\");\n }\n }\n\n setTheme(theme) {\n if (theme === \"light\") {\n this.$tnaTemplate.classList.remove(\n \"tna-template--system-theme\",\n \"tna-template--dark-theme\",\n );\n } else if (theme === \"dark\") {\n this.$tnaTemplate.classList.remove(\"tna-template--system-theme\");\n this.$tnaTemplate.classList.add(`tna-template--dark-theme`);\n } else if (theme === \"system\") {\n this.$tnaTemplate.classList.remove(\"tna-template--dark-theme\");\n this.$tnaTemplate.classList.add(`tna-template--system-theme`);\n } else {\n return;\n }\n this.currentTheme = theme;\n if (this.cookies.isPolicyAccepted(\"settings\")) {\n this.cookies.set(this.themeCookieName, this.currentTheme);\n } else {\n this.$themeSelectorNotice.removeAttribute(\"hidden\");\n }\n }\n\n selectThemeSelectorButton($selectedButton) {\n Array.from(this.$themeSelectorButtons).forEach(($button) => {\n if ($button.value === $selectedButton.value) {\n $button.classList.remove(\"tna-button--plain\");\n $button.setAttribute(\"aria-current\", true);\n } else {\n $button.classList.add(\"tna-button--plain\");\n $button.removeAttribute(\"aria-current\");\n }\n });\n }\n}\n"],"names":["root","factory","exports","module","define","amd","self","_window","window","TNAFrontendCookieEvents","CookieEventHandler","debug","arguments","length","undefined","_classCallCheck","this","_defineProperty","log","key","value","_console","_len","args","Array","_key","console","apply","concat","event","callback","Object","hasOwn","events","_toConsumableArray","oneTimeEvents","_this","data","forEach","eventToTrigger","call","eventIndex","splice","TNAFrontendCookies","tnaCookiePolicies","Cookies","options","document","documentElement","dataset","tnaFrontendDebug","defaultDomain","defaultPath","secure","policiesKey","defaultAge","_options$newInstance","newInstance","_options$noInit","noInit","tnaCookiesDomain","location","hostname","tnaCookiesPath","tnaCookiesInsecure","tnaCookiesPoliciesKey","parseInt","tnaCookiesDefaultAge","policiesCorrectOnInit","keys","policies","every","policy","includes","init","existingPolicies","filteredExistingPolicies","fromEntries","filter","map","savePolicies","_objectSpread","usage","settings","marketing","essential","all","get","deserialised","cookie","split","trim","_parts","_slicedToArray","decodeURIComponent","JSON","parse","error","exists","_options$maxAge","maxAge","_options$sameSite","sameSite","_options$domain","domain","_options$path","path","_options$secure","_options$session","session","secureString","sessionString","encodeURIComponent","trigger","set","_this2","setPolicy","accepted","allPolicies","toLowerCase","stringify","on","once","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","d","definition","o","defineProperty","enumerable","obj","prop","prototype","hasOwnProperty","r","Symbol","toStringTag","Footer","$module","themeCookieName","$themeSelector","querySelector","$themeSelectorNotice","$themeSelectorEnableSettingsCookiesButton","$tnaTemplate","currentTheme","themeOnLoad","cookies","$themeSelectorButtons","querySelectorAll","from","$themeSelectorButton","addEventListener","$button","target","setTheme","selectThemeSelectorButton","acceptPolicy","showThemeSelector","setAttribute","removeAttribute","$currentThemeButton","find","isPolicyAccepted","theme","classList","remove","add","$selectedButton"],"sourceRoot":""}
@@ -24,10 +24,14 @@ export class Footer {
24
24
  return;
25
25
  }
26
26
 
27
- this.currentTheme = this.$themeSelector.dataset.themeOnLoad;
28
-
29
27
  this.themeCookieName = themeCookieName;
30
28
 
29
+ this.init();
30
+ }
31
+
32
+ init() {
33
+ this.currentTheme = this.$themeSelector.dataset.themeOnLoad;
34
+
31
35
  this.cookies = new Cookies();
32
36
 
33
37
  this.$themeSelectorButtons = this.$themeSelector.querySelectorAll(