1/* @license GPL-2.0-or-later https://www.drupal.org/licensing/faq */ 2(()=>{var e=Object.defineProperty;var t=(t,a,s)=>a in t?e(t,a,{enumerable:true,configurable:true,writable:true,value:s}):t[a]=s;var a=(t,a)=>e(t,"name",{value:a,configurable:true});var s=(e,a,s)=>t(e,typeof a!=="symbol"?a+"":a,s);var n=class e{constructor(t){s(this,"saveEventKey","localstorage-save-event");s(this,"loadOnChange",a(()=>{this.loadData()},"loadOnChange"));s(this,"triggerSaveEvent",a(()=>{dispatchEvent(new CustomEvent(this.saveEventKey))},"triggerSaveEvent"));s(this,"loadData",a(()=>{let t=null;try{const e=globalThis?.localStorage;if(!e){this.data={};return}t=e.getItem(this.storageKey)}catch(t){e.handleError(t)}this.data=t?JSON.parse(t):{}},"loadData"));s(this,"saveData",a(()=>{try{const e=globalThis?.localStorage;if(!e)return;e.setItem(this.storageKey,JSON.stringify(this.data));this.triggerSaveEvent()}catch(t){e.handleError(t)}},"saveData"));s(this,"setValue",a((e,t)=>{this.data[e]=t;this.saveData()},"setValue"));s(this,"addValue",a((e,t)=>{if(!this.data[e]){this.data[e]=[]}if(typeof t==="string"&&!this.data[e].includes(t)){this.data[e].push(t);this.saveData()}},"addValue"));s(this,"getValue",a(e=>this.data[e]||null,"getValue"));s(this,"getValues",a(e=>this.data[e]||null,"getValues"));s(this,"deleteKey",a(e=>{if(Object.hasOwn(this.data,e)){delete this.data[e];this.saveData()}},"deleteKey"));s(this,"removeValue",a((e,t)=>{if(this.data[e]){const a=this.data[e].indexOf(t);if(a>-1){this.data[e].splice(a,1);this.saveData()}}},"removeValue"));this.data={};this.storageKey=t;this.loadData();addEventListener(this.saveEventKey,this.loadOnChange)}static handleError(e){if(e instanceof ReferenceError){}else{throw e}}};a(n,"LocalStorageManager");var i=n;(()=>{const e="block-hdbt-subtheme-announcements";const t=new i("helfi-settings");let s=null;const n=a(()=>{const e=t.getValue("hidden-helfi-announcements");const a=s.querySelectorAll(".js-announcement");if(!e||!a){return}a.forEach(t=>{const{uuid:a}=t.dataset;if(e.includes(a)){t.remove()}})},"announcementItemsAddedListener");const r=a(t=>{for(const a of t){for(const t of a.addedNodes){if(t.id===e){s=t;const e=new MutationObserver(n);e.observe(t,{childList:true,subtree:false});n();o.disconnect()}}}},"announcementContainerAddedListener");const o=new MutationObserver(r);o.observe(document,{childList:true,subtree:true})})()})();;
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.