{"version":3,"names":["ScriptInjectorUtil","injectComponentScript","endpoint","document","querySelector","s","createElement","src","text","includes","type","noModule","head","appendChild","BaHeader","constructor","element","hasAttribute","this","domEl","initScrollHeader","initBootstrap","initListeners","setAttribute","querySelectorAll","forEach","collapseEl","toggleOnClick","flyoutEl","closest","triggerEl","bsDropdown","dpl","bs","Dropdown","getInstance","offset","autoClose","addEventListener","e","key","keyCode","preventDefault","toggle","collapseElement","parentElem","options","parent","bsCollapse","Collapse","getAttribute","that","mobileHeaderHeight","desktopHeaderOffset","currentScrollTop","window","scrollY","to","newScrollTop","scrolled","Math","abs","isMobile","getComputedStyle","getPropertyValue","length","setHidden","on","shadowEls","classList","add","shadowEl","remove","clearTimeout","setTimeout","updateMenuHeight","Utilities","supportsPassiveEvent","passive","target","composedPath","closeFlyouts","menu","focusedElement","activeElement","shadowRoot","contains","control","id","focus","openMenu","menuContainer","menuTop","getBoundingClientRect","top","viewportHeight","max","documentElement","clientHeight","innerHeight","style","maxHeight","elem","hide","HfEvents","OiamEvents","OiamAuthService","sendLogin","self","dispatchEvent","CustomEvent","LOGINCLICKED","sendLogout","DOLOGOUT","askForToken","SENDTOKEN","handleError","console","error","JWTReaderService","isValidJwt","jwt","parseJwtPayload","ajwt","split","payload","utf8CleanedUpPayload","replace","binString","atob","uint8Array","Uint8Array","i","charCodeAt","decodedPayload","TextDecoder","decode","JSON","parse","getActingTypeFromJwt","jwtPayload","LogoutBtn","bahfHeaderCss","BahfHeaderStyle0","BahfHeader","config","ConfigProvider","get","HeaderMode","Standard","OIAM","headerCustomConfigWatcher","param","paramObject","_a","warn","HfUtil","overwriteConfig","mockLogin","actingType","Error","mockLogout","componentDidLoad","initHeader","removeFallbackHeader","headerElem","loginLinkToProfile","location","href","profilEndpoint","DOLOGIN","ERROR","IDLESESSIONEXPIRATION","log","loggedIn","initFallbackTimeouts","LOADED","componentWillLoad","globalStore","state","mode","setLanguage","language","code","fetchAndStore","toLowerCase","then","data","jsonData","READYFORLOGIN","isLoginButtonVisible","TOKEN","oiamTokenEventReceived","detail","clientid","setHeaderConfig","renderCookieDisclaimer","BsWebcomponent","isActiveElementInFlyoutContainer","getActiveElement","customTags","withCookieDisclaimer","disclaimerElem","body","insertBefore","childNodes","fallback","parentNode","removeChild","languageCode","I18nUtil","getCurrentLang","International","getLanguageObjectByCode","DefaultLanguages","DE","newLangState","setLanguageCookie","sekProTag","tage","multiplier","maxAge","expiresDate","Date","now","CookieUtil","setCookie","fromDefault","toUpperCase","fromCustom","customLanguages","find","lang","hfconfig","componentWillRender","glockenEndpoint","render","h","Host","class","reduced","dangerouslySetLogoutBtn","ref","el","_b","startseiteEndpoint","title","_c","baLogoTitle","getAssetPath","_d","logo","alt","_e","logoAltText","currentLanguage","withLangSwitch","navMetaDropdownAriaLabel","_f","srSelectionLabel","_h","_g","megaflyout","renderHauptnavigation","srNavLabel","sucheEndpoint","searchButton","role","SHOW","onClick","event","logoutButton","loginButton","Object","assign"],"sources":["src/utils/ScriptInjectorUtil.ts","node_modules/@design/bapf-pattern-library/source/js/_header.js","src/components/bahf-header/types/hf-event.types.ts","node_modules/@websso/oiam-oauth-types/dist/mjs/oiam-events-enum.js","src/components/bahf-header/service/oiam-auth.service.ts","src/components/bahf-header/service/jwt-reader.service.ts","src/components/bahf-header/types/logout-btn.ts","src/components/bahf-header/bahf-header.scss?tag=bahf-header&encapsulation=shadow","src/components/bahf-header/bahf-header.tsx"],"sourcesContent":["\nexport class ScriptInjectorUtil {\n public static injectComponentScript(endpoint:string){\n if(document.querySelector(`script[src='${endpoint}']`)){\n return;\n }\n\n const s: HTMLScriptElement = document.createElement('script');\n s.src = endpoint;\n s.text = ``;\n\n if(endpoint.includes('.esm.js')) {\n s.type = 'module'\n } else {\n s.noModule = true;\n }\n\n document.head.appendChild(s);\n }\n}\n","/*! @design/bapf-pattern-library v3.7.0 | 09.12.2024 | _header.js */\nimport { Utilities } from './_utilities';\r\n\r\n/**\r\n * Pattern: Header\r\n * Initialisiert die Header-Funktionen\r\n * @constructor\r\n * @param {HTMLElement} element - Header Element, default: .ba-header\r\n */\r\nexport class BaHeader {\r\n\r\n constructor (element) {\r\n /* istanbul ignore next */\r\n if (element.hasAttribute('data-initialized')) return;\r\n\r\n this.domEl = element;\r\n this.initScrollHeader();\r\n this.initBootstrap();\r\n this.initListeners();\r\n\r\n this.domEl.setAttribute('data-initialized', 'true');\r\n }\r\n\r\n /**\r\n * Initialisiert Bootstrap-Methoden für Menus und Dropdown\r\n */\r\n initBootstrap () {\r\n // flyouts\r\n this.domEl.querySelectorAll('.ba-flyout-collapse.collapse').forEach((collapseEl) => {\r\n this.toggleOnClick(collapseEl, this.domEl);\r\n });\r\n\r\n // Flyout Collapsibles\r\n this.domEl.querySelectorAll('.ba-flyout-collapse.collapse .collapse').forEach((collapseEl) => {\r\n const flyoutEl = collapseEl.closest('.ba-flyout-collapse.collapse');\r\n this.toggleOnClick(collapseEl, flyoutEl);\r\n });\r\n\r\n // Dropdown Sprache (data-bs-toggle=\"dropdown\" darf nicht entfernt werden!)\r\n this.domEl.querySelectorAll('[data-bs-toggle=\"dropdown\"]').forEach((triggerEl) => {\r\n triggerEl.bsDropdown = (/** @type{any} */(window)).dpl.bs.Dropdown.getInstance(triggerEl) || new (/** @type{any} */(window)).dpl.bs.Dropdown(triggerEl, {\r\n offset : '0,4',\r\n autoClose: true\r\n });\r\n triggerEl.addEventListener('keydown', (e) => {\r\n if (e.key === 'Space' || e.keyCode === 32) {\r\n e.preventDefault();\r\n triggerEl.bsDropdown.toggle();\r\n }\r\n });\r\n });\r\n }\r\n\r\n /**\r\n * Toggle Menu auf Klick\r\n * @param {HTMLElement} collapseElement\r\n * @param {HTMLElement} parentElem\r\n */\r\n toggleOnClick (collapseElement, parentElem) {\r\n const options = {\r\n toggle: false,\r\n parent: parentElem\r\n };\r\n\r\n (/** @type{any} */(collapseElement)).bsCollapse = (/** @type{any} */(window)).dpl.bs.Collapse.getInstance(collapseElement) || new (/** @type{any} */(window)).dpl.bs.Collapse(collapseElement, options);\r\n const triggerEl = this.domEl.querySelector(`[data-bs-target=\"#${collapseElement.getAttribute('id')}\"]`);\r\n triggerEl.addEventListener('click', () => {\r\n (/** @type{any} */(collapseElement)).bsCollapse.toggle();\r\n });\r\n }\r\n\r\n /**\r\n * Setzt Höhe und Style des Headers abhängig von Scroll-Position\r\n */\r\n initScrollHeader () {\r\n if (!this.domEl) return;\r\n const that = this;\r\n const mobileHeaderHeight = 53;\r\n const desktopHeaderOffset = 32;\r\n let currentScrollTop = window.scrollY;\r\n let to = null;\r\n\r\n window.addEventListener('scroll', () => {\r\n const newScrollTop = window.scrollY;\r\n const scrolled = newScrollTop - currentScrollTop;\r\n if (Math.abs(scrolled) < 5) return;\r\n currentScrollTop = newScrollTop;\r\n const isMobile = window.getComputedStyle(this.domEl).getPropertyValue('position') === 'fixed';\r\n if (isMobile) {\r\n /* istanbul ignore next */\r\n if (currentScrollTop < mobileHeaderHeight || document.querySelectorAll('.ba-flyout-collapse.show').length || this.domEl.querySelectorAll('.ba-flyout-collapse.show').length) {\r\n setHidden(false);\r\n return;\r\n }\r\n /* istanbul ignore next */\r\n if (scrolled > 0) { // Scroll down\r\n setHidden(true);\r\n } else { // Scroll nach oben\r\n setHidden(false);\r\n }\r\n } else {\r\n if (currentScrollTop > desktopHeaderOffset) { // Header ist sticky\r\n setHidden(true);\r\n } else { // Scroll nach oben\r\n setHidden(false);\r\n }\r\n }\r\n\r\n // .ba-hidden setzen für .ba-header und alle .ba-header-element\r\n function setHidden (on) {\r\n const shadowEls = that.domEl.querySelectorAll('.ba-header-element');\r\n if (on) {\r\n that.domEl.classList.add('ba-hidden');\r\n shadowEls.forEach((shadowEl) => {\r\n shadowEl.classList.add('ba-hidden');\r\n });\r\n } else {\r\n that.domEl.classList.remove('ba-hidden');\r\n shadowEls.forEach((shadowEl) => {\r\n shadowEl.classList.remove('ba-hidden');\r\n });\r\n }\r\n }\r\n\r\n // Höhe des Menu-Flyouts aktualisieren, um darin zu scrollen\r\n clearTimeout(to);\r\n to = setTimeout(() => {\r\n this.updateMenuHeight();\r\n }, 100);\r\n }, Utilities.supportsPassiveEvent() ? { passive: true } : false);\r\n }\r\n\r\n /**\r\n * Initialisiert Events für Header\r\n * Events: click, keydown, resize, hide.bs.collapse, shown.bs.collapse\r\n */\r\n initListeners () {\r\n // Ein Click außerhalb des Flyout schließt Flyout ba-flyout-collapse\r\n document.addEventListener('click', (e) => {\r\n const target = e.composedPath()[0];\r\n if (!target.closest('.ba-flyout-container')) {\r\n this.closeFlyouts();\r\n }\r\n });\r\n\r\n // Ein Focus außerhalb des Flyouts schließt Flyout ba-flyout-collapse\r\n document.addEventListener('focusin', (e) => {\r\n const target = e.composedPath()[0];\r\n if (!target.closest('.ba-flyout-container')) {\r\n this.closeFlyouts();\r\n }\r\n });\r\n\r\n // Esc-Taste schließt Flyout\r\n document.addEventListener('keydown', (e) => {\r\n if (e.key === 'Escape' || e.keyCode === 27) {\r\n this.closeFlyouts();\r\n }\r\n });\r\n\r\n // Menu-Height berechnen nach Resize\r\n window.addEventListener('resize', () => {\r\n this.updateMenuHeight();\r\n });\r\n\r\n // Focus auf letzten Menu-Entry setzen nach schließen des Flyouts\r\n this.domEl.addEventListener('hide.bs.collapse', (e) => {\r\n const menu = e.composedPath()[0];\r\n let focusedElement = document.activeElement;\r\n /* istanbul ignore next */\r\n if (document.activeElement.shadowRoot) {\r\n focusedElement = document.activeElement.shadowRoot.activeElement;\r\n }\r\n if (menu.classList.contains('ba-flyout-collapse') && menu.contains(focusedElement)) {\r\n const control = this.domEl.querySelector(`.ba-menu-entry[aria-controls=${menu.id}]`);\r\n if (control) control.focus();\r\n }\r\n });\r\n\r\n // Verfügbare Menu-Höhe einstellen\r\n this.domEl.addEventListener('shown.bs.collapse', (e) => {\r\n const menu = e.composedPath()[0];\r\n if (menu.classList.contains('ba-flyout-collapse')) {\r\n this.updateMenuHeight();\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Update Flyout-Höhe beim Ausklappen.\r\n * Wenn Flyout größer ist als Viewport, muss im Flyout gescrollt werden, dazu muss max-height korrekt gesetzt werden\r\n */\r\n updateMenuHeight () {\r\n const openMenu = this.domEl.querySelector('.ba-flyout-collapse.show');\r\n if (!openMenu) return;\r\n const menuContainer = openMenu.querySelector('.ba-flyout');\r\n if (!menuContainer) return;\r\n const menuTop = menuContainer.getBoundingClientRect().top;\r\n /* istanbul ignore next */\r\n const viewportHeight = Math.max(document.documentElement.clientHeight || 0, window.innerHeight || 0);\r\n menuContainer.style.maxHeight = (viewportHeight - menuTop) + 'px';\r\n }\r\n\r\n /**\r\n * Alle offenen Flyout-Menus und Collapsibles schließen\r\n */\r\n closeFlyouts () {\r\n this.domEl.querySelectorAll('.show').forEach((elem) => {\r\n if (elem && elem.bsCollapse) elem.bsCollapse.hide();\r\n });\r\n }\r\n}\r\n\r\n\r\n","export enum HfEvents {\n LOGINCLICKED = 'hfUserClickedLoginEvent',\n LOADED = 'hfLoadedEvent',\n}\n","export var OiamEvents;\n(function (OiamEvents) {\n OiamEvents[\"LOADED\"] = \"oiamLoadedEvent\";\n OiamEvents[\"READYFORLOGIN\"] = \"oiamReadyForLoginEvent\";\n OiamEvents[\"SETCONFIG\"] = \"oiamSetConfigEvent\";\n OiamEvents[\"TOKEN\"] = \"oiamTokenEvent\";\n OiamEvents[\"SENDTOKEN\"] = \"oiamSendTokenEvent\";\n OiamEvents[\"DOLOGIN\"] = \"oiamLoginEvent\";\n OiamEvents[\"DOLOGOUT\"] = \"oiamLogoutEvent\";\n OiamEvents[\"ERROR\"] = \"oiamErrorEvent\";\n /**\n * @deprecated replaced by IDLESESSIONEXPIRATIONWARNING\n */\n OiamEvents[\"IDLESESSIONEXPIREWARNING\"] = \"oiamIdleSessionExpireWarnEvent\";\n OiamEvents[\"IDLESESSIONEXPIRATIONWARNING\"] = \"oiamIdleSessionExpirationWarnEvent\";\n /**\n * @deprecated replaced by IDLESESSIONEXPIRATION\n */\n OiamEvents[\"IDLESESSIONEXPIRED\"] = \"oiamIdleSessionExpiredEvent\";\n OiamEvents[\"IDLESESSIONEXPIRATION\"] = \"oiamIdleSessionExpirationEvent\";\n OiamEvents[\"MAXSESSIONEXPIRATIONWARNING\"] = \"oiamMaxSessionExpirationWarnEvent\";\n OiamEvents[\"MAXSESSIONEXPIRATION\"] = \"oiamMaxSessionExpirationEvent\";\n OiamEvents[\"CUSTOMSTATE\"] = \"oiamCustomStateEvent\";\n OiamEvents[\"SESSION\"] = \"oiamSessionEvent\";\n OiamEvents[\"SENDSESSION\"] = \"oiamSendSessionEvent\";\n})(OiamEvents || (OiamEvents = {}));\n","import { HfEvents } from '../types/hf-event.types';\nimport { OiamEvents } from '@websso/oiam-oauth-types';\n\nexport class OiamAuthService {\n static sendLogin() {\n //emit own event when user clicked on login button\n window.self.dispatchEvent(new CustomEvent(HfEvents.LOGINCLICKED));\n }\n static sendLogout() {\n window.self.dispatchEvent(new CustomEvent(OiamEvents.DOLOGOUT));\n }\n\n static askForToken() {\n // active ask for access token\n window.self.dispatchEvent(new CustomEvent(OiamEvents.SENDTOKEN));\n }\n\n static handleError(e: CustomEvent) {\n console.error(e);\n }\n\n}\n","import { ActingType, JwtPayload } from '@websso/oiam-oauth-types';\n\nexport class JWTReaderService {\n\n static isValidJwt(jwt: string): boolean {\n return !!jwt && jwt.length > 0;\n }\n\n /**\n * liefert das JWT-Payload als Objekt\n */\n private static parseJwtPayload(jwt: string): JwtPayload {\n if (jwt != null) {\n const ajwt = jwt.split('.');\n if (ajwt.length === 3) {\n const payload = ajwt[1];\n const utf8CleanedUpPayload = payload\n .replace(/\\s+/g, '')\n .replace(/-/g, '+')\n .replace(/_/g, '/');\n const binString = atob(utf8CleanedUpPayload);\n const uint8Array = new Uint8Array(binString.length);\n\n for (let i = 0; i < binString.length; i++) {\n uint8Array[i] = binString.charCodeAt(i);\n }\n\n const decodedPayload = new TextDecoder().decode(uint8Array);\n return JSON.parse(decodedPayload);\n }\n }\n return null;\n }\n\n static getActingTypeFromJwt(jwt: string): ActingType | undefined {\n if (!jwt) return;\n\n const jwtPayload = this.parseJwtPayload(jwt);\n if (!jwtPayload) return;\n return jwtPayload['acting-type'];\n }\n\n}\n","export enum LogoutBtn {\n OIAM = 'OIAM',\n HIDE = 'HIDE',\n SHOW = 'SHOW'\n}\n","@use '@design/bapf-pattern-library/source/sass/vendor/bootstrap';\n@use '@design/bapf-pattern-library/source/sass/globals' as *;\n@use '@design/bapf-pattern-library/source/sass/patterns/header';\n@use '@design/bapf-pattern-library/source/sass/patterns/dropdown';\n@use '@design/bapf-pattern-library/source/sass/patterns/tabbar';\n@use '@design/bapf-pattern-library/source/sass/patterns/button';\n@use '@design/bapf-pattern-library/source/sass/patterns/link';\n@use '@design/bapf-pattern-library/source/sass/patterns/collapsible';\n\n\n.initializing {\n display: none;\n}\n\n.ba-keyboard-mode {\n :focus,\n .ba-focused { // für händisch gesetzte Focusrahmen\n @include dt-focus-frame();\n }\n}\n\n@media (min-width: map-get($grid-breakpoints, 'md')) {\n .ba-header-international {\n .ba-nav-main {\n height: 72px;\n }\n\n .ba-header-megaflyout-container {\n display: none;\n }\n }\n\n}\n","import { Component, getAssetPath, h, Host, Method, Prop, State, Watch, ComponentInterface } from '@stencil/core';\nimport { ConfigProvider } from '../../config/ConfigProvider';\nimport { CookieUtil } from '../../utils/CookieUtil';\nimport { DefaultLanguages } from '../../utils/model/DefaultLanguages';\nimport { ScriptInjectorUtil } from '../../utils/ScriptInjectorUtil';\nimport { IConfiguration, IPublicConfiguration } from '../../../config/IConfiguration';\nimport { BsWebcomponent } from './bsWebcomponent';\nimport { BaHeader } from '@design/bapf-pattern-library/source/js/_header';\nimport { HfUtil } from './utils/HfUtil';\nimport { Language } from '../../utils/model/Language';\nimport { LanguageCode } from '../../utils/model/LanguageCode';\nimport { OiamAuthService } from './service/oiam-auth.service';\nimport { JWTReaderService } from './service/jwt-reader.service';\nimport { I18nUtil } from '../../utils/I18nUtil';\nimport { HfEvents } from './types/hf-event.types';\nimport { ActingType, OiamEvents } from '@websso/oiam-oauth-types';\nimport '@oiambk/oiam-session-timer-wc';\nimport '@oiambk/oiam-profile-header-wc';\nimport { HeaderMode } from './types/header-mode';\nimport globalStore from '../../stores/globalStore';\nimport { fetchAndStore } from './utils/fetchAndStore';\nimport { LogoutBtn } from './types/logout-btn';\n\n@Component({\n tag: 'bahf-header',\n styleUrl: 'bahf-header.scss',\n assetsDirs: ['assets'],\n shadow: true,\n})\nexport class BahfHeader implements ComponentInterface {\n config: IConfiguration = ConfigProvider.get();\n\n /**\n * Wird diesem Attribut der Wert true zugewiesen integriert die Header-Komponente automatisch den Cookie-Disclaimer\n * (DPL3). _true_ blendet auch den Button-Link \"_Cookie-Einstellungen_\" im Footer ein.\n */\n @Prop() withCookieDisclaimer: boolean = false;\n\n /**\n * Bei aktivem Language Switch kann dieser per '_false_' deaktiviert werden.\n */\n @Prop() withLangSwitch: boolean = true;\n\n /**\n * Wird dieses optionale Attribut auf _true_ gesetzt, wird bei einem Klick auf Anmelden auf das Profil weitergeleitet,\n * ohne ein _oiamLoginEvent_ auszulösen. Wenn der Wert auf _false_ steht, wird beim Klick auf Anmelden der Login über\n * die OIAM-OAUTH-WC abgewickelt (durch Auslösen des Events _oiamLoginEvent_).\n */\n @Prop() loginLinkToProfile?: boolean = false;\n\n /**\n * Detaillierte Beschreibung, s.u. → Parameter Konfiguration\n */\n @Prop() hfconfig?: string; //Custom configuration with params in HfConfig object. See interface IPublicConfiguration.\n\n /**\n * Wird dieses optionale Attribut auf _true_ gesetzt, werden die Komponenten MISO-Glocke, Vertrauensniveau, Postfach und Anmelden-Button ausgeblendet.\n * Es sind nur das Logo, die Suche, das Burger-Menü (_Megaflyout_) und der Abmelden-Button sichtbar.\n */\n @Prop() reduced?: boolean = false;\n\n /**\n * Durch den Modus kann das Erscheinungsbild des Headers bestimmt werden\n * - `standard` (default): Der Header wird vollständig dargestellt\n * - `international`: Angepasste Darstellung für Int-Web. Entfernte Buttons/Links: Suche, Anmeldung, Megaflyout (außer mobile), Einfache Sprache, Gebärden Sprache.\n * Zudem werden Links im Footer angepasst.\n *\n */\n @Prop() mode?: HeaderMode = HeaderMode.Standard;\n\n /**\n * Konfiguriert das Verhalten des Abmelden-Buttons\n * OIAM: Abmelden-Button wird angezeigt abhängig vom OIAM-Token-Event (default).\n * SHOW: Abmelden-Button wird immer angezeigt unabhängig vom OIAM-Token-Event.\n * HIDE: Anmelden- und Abmelden-Buttons werden nicht angezeigt.\n *\n * ACHTUNG: Der Abmelden-Button sollte nur in seltenen Fällen ausgeblendet werden!\n */\n @Prop({reflect: true})\n dangerouslySetLogoutBtn: LogoutBtn = LogoutBtn.OIAM;\n\n @Watch('hfconfig')\n async headerCustomConfigWatcher(param: string) {\n let paramObject: IPublicConfiguration;\n\n try {\n paramObject = JSON.parse(param);\n } catch {\n console.warn('Ungültiges Format bei Header-Konfig');\n return;\n }\n\n if (paramObject) {\n HfUtil.overwriteConfig(paramObject, this.config);\n }\n }\n\n @State() jsonData;\n\n @State() loggedIn = false;\n @State() actingType: ActingType = 'privatperson';\n @State() language: Language;\n @State() private isLoginButtonVisible: boolean = false;\n\n @State() private oiamTokenEventReceived: boolean = false;\n\n headerElem: HTMLHeadElement;\n\n @Method()\n async mockLogin(\n actingType: ActingType = 'privatperson',\n ) {\n if (ConfigProvider.isMockLoginAllowed()) {\n this.loggedIn = true;\n this.actingType = actingType;\n } else {\n throw new Error('Mock-Logins sind in dieser Konfiguration nicht aktiv.');\n }\n }\n\n @Method()\n async mockLogout() {\n if (ConfigProvider.isMockLoginAllowed()) {\n this.loggedIn = false;\n } else {\n throw new Error('Mock-Logins sind in dieser Konfiguration nicht aktiv.');\n }\n }\n\n componentDidLoad() {\n this.initHeader();\n this.removeFallbackHeader();\n this.headerElem && this.headerElem.classList.remove('initializing');\n\n window.self.addEventListener(HfEvents.LOGINCLICKED, () => {\n if (this.loginLinkToProfile) {\n //redirect to profile\n self.location.href = this.config.profilEndpoint;\n } else {\n //send login event to oiam wc\n window.self.dispatchEvent(new CustomEvent(OiamEvents.DOLOGIN));\n }\n\n //warning if nothing happens\n setTimeout(() => {\n console.warn('Login Redirect not working.');\n }, 3000);\n });\n\n window.self.addEventListener(OiamEvents.ERROR, (e: CustomEvent) =>\n OiamAuthService.handleError(e)\n );\n\n window.self.addEventListener(OiamEvents.IDLESESSIONEXPIRATION, () => {\n console.log('session expired');\n this.loggedIn = false;\n });\n\n this.initFallbackTimeouts();\n\n window.self.dispatchEvent(new CustomEvent(HfEvents.LOADED));\n }\n\n componentWillLoad() {\n globalStore.state.mode = this.mode; //set Header-Mode globally\n\n this.setLanguage();\n globalStore.state.language = this.language.code;\n\n fetchAndStore(`assets/header.${this.language.code.toLowerCase()}.json`)\n .then((data) => this.jsonData = data);\n\n window.self.addEventListener(OiamEvents.READYFORLOGIN, () => {\n this.isLoginButtonVisible = true;\n });\n\n window.self.addEventListener(OiamEvents.TOKEN, (e: CustomEvent) => {\n this.oiamTokenEventReceived = true;\n if (e.detail && e.detail.jwt) {\n this.actingType = JWTReaderService.getActingTypeFromJwt(e.detail.jwt);\n this.loggedIn = JWTReaderService.isValidJwt(e.detail.jwt);\n } else {\n //JWT is empty -> user is not logged in\n this.loggedIn = false;\n }\n\n if (e.detail?.clientid) {\n setTimeout(() => {\n this.isLoginButtonVisible = true;\n }, 10);\n }\n });\n\n this.setHeaderConfig();\n this.renderCookieDisclaimer();\n }\n\n private initFallbackTimeouts() {\n setTimeout(() => {\n //embedded web components like HF may miss the TOKEN-Event\n //Ask for Token after 1s if oiamTokenEvent was not received\n if (!this.oiamTokenEventReceived && !this.loggedIn) {\n OiamAuthService.askForToken();\n }\n }, 500);\n }\n\n private initHeader() {\n if (this.headerElem) {\n const _baHeader = new BaHeader(this.headerElem);\n const _bsWebcomponent = new BsWebcomponent(this.headerElem);\n\n document.addEventListener('keyup', () => {\n const isActiveElementInFlyoutContainer = this.isActiveElementInFlyoutContainer();\n if (isActiveElementInFlyoutContainer) {\n this.headerElem.classList.remove('ba-keyboard-mode');\n } else {\n this.headerElem.classList.add('ba-keyboard-mode');\n }\n });\n document.addEventListener('mousedown', () => {\n this.headerElem.classList.remove('ba-keyboard-mode');\n });\n }\n }\n\n private getActiveElement(): Element {\n let activeElement: Element;\n const customTags = ['miso-glocke', 'authn-level-shield', 'session-timer', 'profile-menu'];\n\n for (const element of customTags) {\n const shadowRoot: null | ShadowRoot = this.headerElem.querySelector(element)?.shadowRoot;\n activeElement = shadowRoot?.activeElement;\n if (!!activeElement) break;\n }\n\n return activeElement ?? document.activeElement;\n }\n\n private isActiveElementInFlyoutContainer() {\n return this.getActiveElement().closest('div.ba-flyout-container');\n }\n\n private renderCookieDisclaimer() {\n if (this.withCookieDisclaimer) {\n const disclaimerElem = document.createElement('bahf-cookie-disclaimer-dpl3');\n // @ts-ignore\n document.body.insertBefore(disclaimerElem, document.body.childNodes[0]);\n }\n }\n\n private removeFallbackHeader() {\n const fallback = document.querySelector('bahf-fallback-header');\n if (fallback) {\n fallback.parentNode.removeChild(fallback);\n }\n }\n\n private setLanguage() {\n const languageCode = I18nUtil.getCurrentLang(globalStore.state.mode !== HeaderMode.International) as LanguageCode;\n\n if (!languageCode) {\n this.language = this.getLanguageObjectByCode(DefaultLanguages.DE.code);\n return;\n }\n\n const newLangState = this.getLanguageObjectByCode(languageCode);\n\n if (!newLangState) {\n if (this.mode !== HeaderMode.International) {\n this.setLanguageCookie(DefaultLanguages.DE.code);\n }\n this.language = this.getLanguageObjectByCode(DefaultLanguages.DE.code);\n return;\n }\n\n this.language = newLangState;\n }\n\n private setLanguageCookie(languageCode: LanguageCode) {\n const sekProTag = 86400;\n const tage = 30;\n const multiplier = 1000;\n\n const maxAge = tage * sekProTag;\n const expiresDate = Date.now() + tage * sekProTag * multiplier;\n CookieUtil.setCookie('LANG', languageCode.toLowerCase(), maxAge, new Date(expiresDate));\n }\n\n private getLanguageObjectByCode(code: LanguageCode): Language {\n const fromDefault = DefaultLanguages[code.toUpperCase()];\n const fromCustom = this.config.customLanguages?.find(\n (lang) => lang.code === code.toUpperCase()\n );\n return fromCustom ? fromCustom : fromDefault;\n }\n\n private setHeaderConfig() {\n // load custom header configuration and overwrite config\n if (this.hfconfig) {\n this.headerCustomConfigWatcher(this.hfconfig);\n }\n }\n\n componentWillRender() {\n if (this.loggedIn) {\n // laden der webcomponent Scripte für MISO-Glocke\n ScriptInjectorUtil.injectComponentScript(this.config.glockenEndpoint('miso-glocke.esm.js'));\n ScriptInjectorUtil.injectComponentScript(this.config.glockenEndpoint('miso-glocke.js'));\n }\n }\n\n render() {\n return (\n \n (this.headerElem = el)}\n lang={this.language?.code?.toLowerCase()}\n >\n
\n
\n {this.jsonData && \n \n }\n
\n
\n \n\n {this.renderHauptnavigation()}\n \n \n \n \n \n
\n );\n }\n\n private renderHauptnavigation() {\n return (\n \n );\n }\n}\n"],"mappings":"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","ignoreList":[]}