{"version":3,"names":["getShouldBeIgnored","path","Array","isArray","buttons","filter","p","HTMLButtonElement","length","className","includes","authnLevelShieldCss","AuthnLevelShieldStyle0","AuthnLevelShield","constructor","hostRef","this","authnLevel","undefined","showMenuButton","showFlyout","closeFlyoutWhenTabbingOut","event","key","composedPath","flyout","el","shadowRoot","getElementById","hideFlyout","handleTokenEvent","ev","jwtValidationResult","JwtUtil","validateJwt","isValidJwt","jwt","level","payload","isValidAuthnLevel","componentDidLoad","sendTokenEventEmitter","emit","componentDidRender","button","querySelector","render","h","Host","class","getShield","getFlyOut","id","getIconByStorklevel","title","type","onClick","onButtonClick","role","getShieldIcons","getText","getInfobox","Fragment","storkLevel","status","href","toggleFlyout","showFlyoutContent","handleClickEvent","shouldBeIgnored","handleKeyDown","classList","add","remove","ariaExpanded","ConsentCookieTypes","CookieValues","ConsentCookieUtil","CookieUtil","setConsentCookie","accepted","cookieName","STATISTIC","statisticCookieName","PERSONAL","personalCookieName","MARKETING","marketingCookieName","age","maxAgeTage","cookieValue","getCookieContentValue","cookieMaxAge","sekProTag","cookieExpiresDate","Date","now","umrechnungsfaktorMsZuS","super","setCookie","getConsentCookie","value","getCookieValue","ACCEPTED","DENIED","boolean","CookieDisclaimerController","comp","handleAcceptAll","bind","handleAcceptSelection","handleNoSelection","handleClose","setNoCookies","personalCookies","statisticCookies","marketingCookies","setStatisticCookies","consent","setPersonalCookies","setMarketingCookies","loadConsentStatesFromCookies","forceVisible","statisticCookieVal","personalCookieVal","marketingCookieVal","autoVisible","bahfCdAcceptAll","setTimeout","closeModal","TIMEOUT_ON_CLOSE","bahfCdAcceptSelection","cookieConsentChecked","personalizationConsentChecked","marketingConsentChecked","sendConsentToDatalayer","window","_mtm","push","marketing_consent","cookie_consent","personalization_consent","CookieDisclaimerDefaults","COOKIE_DISCLAIMER_DEFAULTS","bahfCookieDisclaimerCss","BahfCookieDisclaimerDpl3Style0","BahfCookieDisclaimer","controller","DEFAULTS","componentWillLoad","modal","isOpen","I18nUtil","getTranslation","for","innerHTML","label","inputId","onToggle","checked","BaTabbar","element","hasAttribute","scrollFactor","domEl","leftPos","listWidth","viewportWidth","viewport","marker","list","items","querySelectorAll","links","controls","prev","getAttribute","next","initTabs","initVisibilityChange","initActions","initControls","initItemResizeObserver","initResize","initTouch","initTouchPad","setAttribute","observer","IntersectionObserver","entries","forEach","entry","intersectionRatio","initUI","observe","e","console","log","startMeasure","item","removeAttribute","style","width","clientWidth","offsetWidth","updateUI","activeLink","activeListItem","closest","setMarker","endMeasure","tabbar","link","addEventListener","targetElem","target","targetListItem","Object","assign","left","contains","preventDefault","activeElems","activeElem","moveIntoViewport","focusedElement","document","activeElement","prevElem","slide","nextElem","ResizeObserver","elementWidth","contentRect","containerWidth","isEnoughDifference","diff","BOLD_FACTOR","widestItem","maxWidth","itemWidth","triggerTab","bsTab","dpl","bs","Tab","getOrCreateInstance","body","focus","preventScroll","show","stopPropagation","click","resizeTimeout","clearTimeout","startPos","startOffsetX","changedTouches","pageX","touchDragHandler","touchDragEnd","Utilities","supportsPassiveEvent","passive","newOffsetX","distance","updateSlidePos","removeEventListener","supportsPassive","delta","deltaX","direction","newPos","isHidden","updateOverflow","transform","updateControlStatus","availableWidth","outerWidth","spacing","elLeft","offsetLeft","elRight","markerStyles","getParentsHidden","elem","parentSelector","parents","parentNode","o","nodeName","host","display","getComputedStyle","parentsHiddenElems","parent","setActive","tabId","showPanel","li","ActiveTab","BahfHeaderMegaflyout","ID_MEGAFLYOUT","DefaultLanguages","DE","ConfigProvider","get","handleLoggedInChange","setActiveTabByUserOrDocument","megaflyoutInstance","BsWebcomponent","tabbarElem","loggedIn","activeTab","mapActingTypeToActiveTab","actingType","isLangDe","getActiveTabFromDocument","PRIVATPERSONEN","getMegaflyoutCollapsibleId","sub","index","language","code","_a","jsonData","headline","_b","menuButton","_c","renderTabbarTrigger","renderTabbarPanels","globalStore","state","mode","HeaderMode","International","privatpersonen","renderTabbarPanel","unternehmen","institutionen","renderMobileMetaNav","data","toLowerCase","lebenslagenRow1","getLebenslagenRow","lebenslagenRow2","eServices","getEserviceRow","customLanguages","config","currentLanguage","withLangSwitch","languageLabel","srSelectionLabel","gebaerdenSprachEndpoint","leichteSprachEndpoint","ref","tabbarNavAriaLabel","onFocus","UNTERNEHMEN","INSTITUTIONEN","tabindex","backButton","_d","forwardButton","_e","row","topicsAriaLabel","map","url","alleServicesLink","urlLoggedIn","offset","lebenslage","HfUtil","uniqueKey","metaAudienceElement","head","audience","content","LanguageSwitchDesktop","dropdownItemToFocus","headLinkService","HeadLinkService","readLinksFromHead","connectedCallback","observeLinksAndHead","alternateLinks","disconnectedCallback","disconnectObservers","languageSwitchList","find","l","EN","unshift","SignLanguage","SimpleLanguage","navMetaDropdownAriaLabel","dropdownIsOpen","toString","dropdownToggleElem","toggleDropdown","onKeyDown","toggleDropdownOrFocusFirst","dropdownElem","changeFocusedLanguageInDropdown","al","active","openDropdown","closeDropdown","stopImmediatePropagation","numberOfDropdowns","focusNext","focusPrevious","changeFocused","shiftKey","documentOnClick","documentOnKeyDown","lang","endpoint","MaintenanceInfoActiveState","handleErrors","response","ok","Error","statusText","bahfMaintenanceInfoCss","BahfMaintenanceInfoStyle0","BahfMaintenanceInfo","setMaintenanceInfoClosedState","fetchMaintenanceInfo","then","async","info","json","maintenanceInfo","isMaintenanceInfoActive","validateMaintenanceInfo","catch","error","warn","initAlert","maintenanceElem","Alert","getInstance","close","maintenanceInfoUrl","fetch","method","headers","apiClientId","sessionStorage","getItem","ACTIVE","INACTIVE","ACTIVE_FROM","validateMaintenanceFromDate","fromDate","ACTIVE_FROM_TO","validateMaintenanceFromToDate","toDate","today","startDate","endDate","setItem","text","sessionTimerCss","SessionTimerStyle0","SessionTimer","size","durationInSec","durationInMillis","deltaDeg","finished","Subject","fontSize","displayDate","displayDateMessage","displayDateMessageScreenreader","svgCirclePath","calculateRemainingTime","tick","newDuration","newMinutes","newSeconds","Math","floor","formatTimerDuration","formatFlyoutDuration","minutes","seconds","padTime","time","String","padStart","calculateSvg","timeInSec","dx","dy","getCoordinates","isFirstHalf","isSecondHalf","getFinalSvgState","getInitialSvgState","deltaRad","toRadians","gk","sin","ak","cos","angle","PI","getSvgStyle","preserveAspectRatio","viewBox","height","getCircleStyle","getPathStyle","fill","getHeaderElemStyle","getSessionSvgStyle","getFlyoutMessageTimeContainerStyle","sendSessionEventEmitter","handleSessionEvent","detail","sessionEnd","setInitialState","startTimer","getShowComponent","resetTimer","ticker","interval","deltaInSec","isConfigured","pipe","takeUntil","subscribe","ceil","setNextSessionState","getSessionTimer","cx","cy","r","d","texts","getCurrentFlyoutSessionTime","getSessionTimeInfo","getGeneralSessionInfo","ms","warning","min_5_reminder"],"sources":["node_modules/@oiambk/oiam-session-timer-wc/dist/collection/util/jwt-util/html-util/html-util.js","node_modules/@oiambk/oiam-session-timer-wc/dist/collection/components/authn-level-shield/authn-level-shield.css?tag=authn-level-shield&encapsulation=shadow","node_modules/@oiambk/oiam-session-timer-wc/dist/collection/components/authn-level-shield/authn-level-shield.js","src/utils/ConsentCookieUtil.ts","src/controller/cookie-disclaimer/CookieDisclaimerController.ts","src/controller/cookie-disclaimer/CookieDisclaimerDefaults.ts","src/components/bahf-cookie-disclaimer/bahf-cookie-disclaimer.scss?tag=bahf-cookie-disclaimer-dpl3&encapsulation=shadow","src/components/bahf-cookie-disclaimer/bahf-cookie-disclaimer.tsx","node_modules/@design/bapf-pattern-library/source/js/_tabbar.js","src/components/bahf-header/bahf-header-megaflyout/ActiveTab.ts","src/components/bahf-header/bahf-header-megaflyout/bahf-header-megaflyout.tsx","src/components/bahf-header/language-switch/language-switch-desktop/language-switch-desktop.tsx","src/utils/model/MaintenanceInfo.ts","src/components/bahf-header/utils/HttpErrorHandler.ts","src/components/bahf-header/bahf-maintenance-info/bahf-maintenance-info.scss?tag=bahf-maintenance-info&encapsulation=scoped","src/components/bahf-header/bahf-maintenance-info/bahf-maintenance-info.tsx","node_modules/@oiambk/oiam-session-timer-wc/dist/collection/components/session-timer/session-timer.css?tag=session-timer&encapsulation=shadow","node_modules/@oiambk/oiam-session-timer-wc/dist/collection/components/session-timer/session-timer.js"],"sourcesContent":["/**\n * This solves a bug. Other Teams are closing their flyouts by creating an additional click on their menu-items.\n * We need to ignore these additional Clicks. Otherwise, our flyout opens and then instantly closes.\n * @param path\n */\nexport function getShouldBeIgnored(path) {\n if (!Array.isArray(path)) {\n return false;\n }\n const buttons = path.filter(p => {\n return (p instanceof HTMLButtonElement);\n });\n return buttons.length === 1 ? buttons[0].className.includes('collapsed') : false;\n}\n","@charset \"UTF-8\"; /*! @design/bapf-pattern-library v3.6.0 | 11.04.2024 | _colors.scss */ /*! @design/bapf-pattern-library v3.6.0 | 11.04.2024 | _helpers.scss */ /*! @design/bapf-pattern-library v3.6.0 | 11.04.2024 | _design-tokens.scss */ /*! @design/bapf-pattern-library v3.6.0 | 11.04.2024 | _dpl-variables.scss */ /*! @design/bapf-pattern-library v3.6.0 | 11.04.2024 | _variables.scss */ /*! @design/bapf-pattern-library v3.6.0 | 11.04.2024 | _fonts.scss */@font-face{font-display:swap;font-family:BA Icons;font-style:normal;src:url(../fonts/icons.woff?ac=1431) format(\"woff\"),url(../fonts/icons.ttf?ac=1431) format(\"truetype\"),url(../fonts/icons.svg?ac=1431#BAIcons) format(\"svg\")}@font-face{font-display:swap;font-family:Roboto;font-style:normal;font-weight:400;src:url(../fonts/roboto-v20-latin-ext-regular.eot);src:local(\"Roboto\"),local(\"Roboto-Regular\"),url(../fonts/roboto-v20-latin-ext-regular.eot?#iefix) format(\"embedded-opentype\"),url(../fonts/roboto-v20-latin-ext-regular.woff2) format(\"woff2\"),url(../fonts/roboto-v20-latin-ext-regular.woff) format(\"woff\"),url(../fonts/roboto-v20-latin-ext-regular.ttf) format(\"truetype\"),url(../fonts/roboto-v20-latin-ext-regular.svg#Roboto) format(\"svg\")}@font-face{font-display:swap;font-family:Roboto Bold;font-style:normal;font-weight:700;src:url(../fonts/roboto-v20-latin-ext-700.eot);src:local(\"Roboto Bold\"),local(\"Roboto-Bold\"),url(../fonts/roboto-v20-latin-ext-700.eot?#iefix) format(\"embedded-opentype\"),url(../fonts/roboto-v20-latin-ext-700.woff2) format(\"woff2\"),url(../fonts/roboto-v20-latin-ext-700.woff) format(\"woff\"),url(../fonts/roboto-v20-latin-ext-700.ttf) format(\"truetype\"),url(../fonts/roboto-v20-latin-ext-700.svg#Roboto) format(\"svg\")}\n/*! @design/bapf-pattern-library v3.6.0 | 11.04.2024 | _icons.scss */ /*! @design/bapf-pattern-library v3.6.0 | 11.04.2024 | _icon_font_ba_icons.scss */.alert:after,.alert:before,.ba-header nav.ba-nav-meta ul>li>a:after,.ba-header nav.ba-nav-meta ul>li>a:before,.ba-header-element .ba-menu-entry:after,.ba-header-element .ba-menu-entry:before,.ba-icon:after,.ba-icon:before,.ba-link-down:after,.ba-link-down:before,.ba-link-up:after,.ba-link-up:before,a.ba-icon:after,a.ba-icon:before{speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;display:inline-block;font-family:BA Icons,sans-serif;font-style:normal;font-weight:400;line-height:1;text-decoration:none;text-rendering:auto;text-transform:none;vertical-align:middle}@media speech{.alert:after,.alert:before,.ba-header nav.ba-nav-meta ul>li>a:after,.ba-header nav.ba-nav-meta ul>li>a:before,.ba-header-element .ba-menu-entry:after,.ba-header-element .ba-menu-entry:before,.ba-icon:after,.ba-icon:before,.ba-link-down:after,.ba-link-down:before,.ba-link-up:after,.ba-link-up:before,a.ba-icon:after,a.ba-icon:before{display:none}}.ba-header .ba-link-language:before{content:\"\\f139\";content:\"\\f139\"/\"\"}.alert-info:after{content:\"\\f143\";content:\"\\f143\"/\"\"}.ba-icon-message:before{content:\"\\f152\";content:\"\\f152\"/\"\"}.ba-header .ba-link-language:after,.ba-link-down:after{content:\"\\f16a\";content:\"\\f16a\"/\"\"}.ba-link-up:after{content:\"\\f16b\";content:\"\\f16b\"/\"\"}.ba-header .ba-link-sign-language:before{content:\"\\f16d\";content:\"\\f16d\"/\"\"}.ba-header .ba-link-simple-language:before{content:\"\\f16e\";content:\"\\f16e\"/\"\"}.ba-icon-unvisible:before{content:\"\\f17b\";content:\"\\f17b\"/\"\"}.ba-header-element .ba-messages:before{content:\"\\f1a6\";content:\"\\f1a6\"/\"\"}.alert-warning:after{content:\"\\f1ad\";content:\"\\f1ad\"/\"\"}.ba-icon-trust-low-after:after,.ba-icon-trust-low-before:before,.ba-icon-trust-low:before{content:\"\\f1d1\";content:\"\\f1d1\"/\"\"}.ba-icon-trust-medium-after:after,.ba-icon-trust-medium-before:before,.ba-icon-trust-medium:before{content:\"\\f1d2\";content:\"\\f1d2\"/\"\"}.ba-icon-trust-high-after:after,.ba-icon-trust-high-before:before,.ba-icon-trust-high:before{content:\"\\f1d3\";content:\"\\f1d3\"/\"\"}.ba-icon-trust-high-eu-after:after,.ba-icon-trust-high-eu-before:before,.ba-icon-trust-high-eu:before{content:\"\\f1d4\";content:\"\\f1d4\"/\"\"}\n\n/*! @design/bapf-pattern-library v3.6.0 | 11.04.2024 | _page.scss */:root{--ba-mobile-scroll-padding-top:58px;--ba-desktop-scroll-padding-top:96px}body{font-family:Roboto,Helvetica Neue,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;min-height:100%}@media (width <= 767px) and (orientation:portrait),(width <= 991px) and (orientation:landscape){body{margin-top:53px}}body:not(.ba-keyboard-mode) :focus{outline:none}@media (-ms-high-contrast:active),(forced-colors:active),(prefers-contrast:more){body:not(.ba-keyboard-mode) :focus{outline:auto}}body.ba-keyboard-mode :focus{box-shadow:1px 1px 0 1px #f9fbfc,1px -1px 0 1px #f9fbfc,-1px 1px 0 1px #f9fbfc,-1px -1px 0 1px #f9fbfc,0 0 0 2px #f9fbfc,0 0 0 4px #020e25;outline:2px solid transparent}.sr-only{clip:rect(0,0,0,0)!important;border:0!important;height:1px!important;margin:-1px!important;overflow:hidden!important;padding:0!important;white-space:nowrap!important;width:1px!important}.sr-only:not(caption){position:absolute!important}hr{border-bottom:1px solid rgba(2,14,37,.16);border-top:0;height:0;opacity:1}.disabled{cursor:not-allowed;opacity:.33}.disabled:hover{color:inherit;text-decoration:none}.disabled [disabled]{opacity:1}@media (-ms-high-contrast:active),(forced-colors:active),(prefers-contrast:more){[role=button]{color:ButtonText!important}}.ba-unhide-for-measure{display:block!important;visibility:hidden!important}\n\n/*! @design/bapf-pattern-library v3.6.0 | 11.04.2024 | _type.scss */.h1,.h2,h1,h2{font-family:Roboto Condensed Bold,Helvetica Neue,Arial,sans-serif;line-height:1.2;margin-bottom:1rem;margin-left:0;margin-right:0}.h1,h1{font-size:2.313125rem}.h2,h2{font-size:2.01125rem;margin-top:3.75rem}@media (min-width:768px){.h2,h2{margin-top:6rem}}:not(.container-fluid)>.h1:first-child,:not(.container-fluid)>.h2:first-child,:not(.container-fluid)>h1:first-child,:not(.container-fluid)>h2:first-child{margin-top:0}strong{font-family:Roboto Bold,Helvetica Neue,Arial,sans-serif;font-weight:400}\n\n/*! @design/bapf-pattern-library v3.6.0 | 11.04.2024 | globals.scss */ /*! @design/bapf-pattern-library v3.6.0 | 11.04.2024 | _bootstrap.scss */\n/*!\n * Bootstrap v5.3.3 (https://getbootstrap.com/)\n * Copyright 2011-2021 The Bootstrap Authors\n * Copyright 2011-2021 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */:root{--bs-blue:#0d6efd;--bs-indigo:#6610f2;--bs-purple:#6f42c1;--bs-pink:#d63384;--bs-red:#dc3545;--bs-orange:#fd7e14;--bs-yellow:#ffc107;--bs-green:#198754;--bs-teal:#20c997;--bs-cyan:#0dcaf0;--bs-black:#000;--bs-white:#fff;--bs-gray:#6c757d;--bs-gray-dark:#343a40;--bs-gray-100:#f8f9fa;--bs-gray-200:#e9ecef;--bs-gray-300:#dee2e6;--bs-gray-400:#ced4da;--bs-gray-500:#adb5bd;--bs-gray-600:#6c757d;--bs-gray-700:#495057;--bs-gray-800:#343a40;--bs-gray-900:#212529;--bs-primary:#0d6efd;--bs-secondary:#6c757d;--bs-success:#198754;--bs-info:#0dcaf0;--bs-warning:#ffc107;--bs-danger:#dc3545;--bs-light:#f8f9fa;--bs-dark:#212529;--bs-primary-rgb:13,110,253;--bs-secondary-rgb:108,117,125;--bs-success-rgb:25,135,84;--bs-info-rgb:13,202,240;--bs-warning-rgb:255,193,7;--bs-danger-rgb:220,53,69;--bs-light-rgb:248,249,250;--bs-dark-rgb:33,37,41;--bs-primary-text-emphasis:#052c65;--bs-secondary-text-emphasis:#2b2f32;--bs-success-text-emphasis:#0a3622;--bs-info-text-emphasis:#055160;--bs-warning-text-emphasis:#664d03;--bs-danger-text-emphasis:#58151c;--bs-light-text-emphasis:#495057;--bs-dark-text-emphasis:#495057;--bs-primary-bg-subtle:#cfe2ff;--bs-secondary-bg-subtle:#e2e3e5;--bs-success-bg-subtle:#d1e7dd;--bs-info-bg-subtle:#cff4fc;--bs-warning-bg-subtle:#fff3cd;--bs-danger-bg-subtle:#f8d7da;--bs-light-bg-subtle:#fcfcfd;--bs-dark-bg-subtle:#ced4da;--bs-primary-border-subtle:#9ec5fe;--bs-secondary-border-subtle:#c4c8cb;--bs-success-border-subtle:#a3cfbb;--bs-info-border-subtle:#9eeaf9;--bs-warning-border-subtle:#ffe69c;--bs-danger-border-subtle:#f1aeb5;--bs-light-border-subtle:#e9ecef;--bs-dark-border-subtle:#adb5bd;--bs-white-rgb:255,255,255;--bs-black-rgb:0,0,0;--bs-font-sans-serif:Roboto,\"Helvetica Neue\",Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\";--bs-font-monospace:SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace;--bs-gradient:linear-gradient(180deg,hsla(0,0%,100%,.15),hsla(0,0%,100%,0));--bs-body-font-family:var(--bs-font-sans-serif);--bs-body-font-size:1rem;--bs-body-font-weight:400;--bs-body-line-height:1.5;--bs-body-color:#020e25;--bs-body-color-rgb:2,14,37;--bs-body-bg:#f9fbfc;--bs-body-bg-rgb:249,251,252;--bs-emphasis-color:#000;--bs-emphasis-color-rgb:0,0,0;--bs-secondary-color:rgba(33,37,41,.75);--bs-secondary-color-rgb:33,37,41;--bs-secondary-bg:#e9ecef;--bs-secondary-bg-rgb:233,236,239;--bs-tertiary-color:rgba(33,37,41,.5);--bs-tertiary-color-rgb:33,37,41;--bs-tertiary-bg:#f8f9fa;--bs-tertiary-bg-rgb:248,249,250;--bs-heading-color:inherit;--bs-link-color:#0d6efd;--bs-link-color-rgb:13,110,253;--bs-link-decoration:none;--bs-link-hover-color:#0a58ca;--bs-link-hover-color-rgb:10,88,202;--bs-code-color:#d42c80;--bs-highlight-color:#212529;--bs-highlight-bg:#fff3cd;--bs-border-width:1px;--bs-border-style:solid;--bs-border-color:#dee2e6;--bs-border-color-translucent:rgba(0,0,0,.175);--bs-border-radius:5px;--bs-border-radius-sm:0.25rem;--bs-border-radius-lg:0.5rem;--bs-border-radius-xl:1rem;--bs-border-radius-xxl:2rem;--bs-border-radius-2xl:var(--bs-border-radius-xxl);--bs-border-radius-pill:50rem;--bs-box-shadow:0 5px 7px 0 rgba(0,0,0,.2),0 4px 24px 0 rgba(0,0,0,.08);--bs-box-shadow-sm:0 2px 4px 0 rgba(0,0,0,.16),0 4px 24px 0 rgba(0,0,0,.08);--bs-box-shadow-lg:0 12px 10px -2px rgba(0,0,0,.08),0 12px 24px 4px rgba(0,0,0,.08);--bs-box-shadow-inset:inset 0 1px 2px rgba(0,0,0,.075);--bs-focus-ring-width:0.25rem;--bs-focus-ring-opacity:0.25;--bs-focus-ring-color:rgba(13,110,253,.25);--bs-form-valid-color:#198754;--bs-form-valid-border-color:#198754;--bs-form-invalid-color:#dc3545;--bs-form-invalid-border-color:#dc3545}*,:after,:before{box-sizing:border-box}@media (prefers-reduced-motion:no-preference){:root{scroll-behavior:smooth}}body{-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0);background-color:var(--bs-body-bg);color:var(--bs-body-color);font-family:var(--bs-body-font-family);font-size:var(--bs-body-font-size);font-weight:var(--bs-body-font-weight);line-height:var(--bs-body-line-height);margin:0;text-align:var(--bs-body-text-align)}hr{border:0;border-top:var(--bs-border-width) solid;color:inherit;margin:1.5rem 0;opacity:.25}h1,h2{color:var(--bs-heading-color);font-weight:700;line-height:1.2;margin-bottom:.75rem;margin-top:0}h1{font-size:calc(1.375rem + 1.5vw)}@media (min-width:1200px){h1{font-size:2.5rem}}h2{font-size:calc(1.325rem + .9vw)}@media (min-width:1200px){h2{font-size:2rem}}p{margin-bottom:1rem;margin-top:0}strong{font-weight:bolder}a{color:rgba(var(--bs-link-color-rgb),var(--bs-link-opacity,1));text-decoration:none}a:hover{--bs-link-color-rgb:var(--bs-link-hover-color-rgb)}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code{word-wrap:break-word;color:var(--bs-code-color);font-family:var(--bs-font-monospace);font-size:1em;font-size:.8125rem}a>code{color:inherit}svg{vertical-align:middle}button{border-radius:0}button:focus:not(:focus-visible){outline:0}button{font-family:inherit;font-size:inherit;line-height:inherit;margin:0;text-transform:none}[role=button]{cursor:pointer}[type=button],button{-webkit-appearance:button}[type=button]:not(:disabled),button:not(:disabled){cursor:pointer}::-moz-focus-inner{border-style:none;padding:0}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-text,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::file-selector-button{-webkit-appearance:button;font:inherit}[hidden]{display:none!important}:root{--bs-breakpoint-xs:0;--bs-breakpoint-sm:576px;--bs-breakpoint-md:768px;--bs-breakpoint-lg:992px;--bs-breakpoint-xl:1280px;--bs-breakpoint-xxl:1400px}.row{--bs-gutter-x:24px;--bs-gutter-y:0;display:flex;flex-wrap:wrap;margin-left:calc(var(--bs-gutter-x)*-.5);margin-right:calc(var(--bs-gutter-x)*-.5);margin-top:calc(var(--bs-gutter-y)*-1)}.row>*{flex-shrink:0;margin-top:var(--bs-gutter-y);max-width:100%;padding-left:calc(var(--bs-gutter-x)*.5);padding-right:calc(var(--bs-gutter-x)*.5);width:100%}.col-4{flex:0 0 auto;width:33.33333333%}.table-active{--bs-table-color-state:var(--bs-table-active-color);--bs-table-bg-state:var(--bs-table-active-bg)}.fade{transition:opacity .08s ease-in-out}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{height:0;overflow:hidden;transition:height .24s ease-in-out}.nav{--bs-nav-link-padding-x:1rem;--bs-nav-link-padding-y:0.5rem;--bs-nav-link-font-weight: ;--bs-nav-link-color:var(--bs-link-color);--bs-nav-link-hover-color:var(--bs-link-hover-color);--bs-nav-link-disabled-color:var(--bs-secondary-color);display:flex;flex-wrap:wrap;list-style:none;margin-bottom:0;padding-left:0}.modal{--bs-modal-zindex:1055;--bs-modal-width:770px;--bs-modal-padding:1.5rem;--bs-modal-margin:0px;--bs-modal-color: ;--bs-modal-bg:var(--bs-body-bg);--bs-modal-border-color:var(--bs-border-color-translucent);--bs-modal-border-width:var(--bs-border-width);--bs-modal-border-radius:var(--bs-border-radius-lg);--bs-modal-box-shadow:var(--bs-box-shadow-sm);--bs-modal-inner-border-radius:calc(var(--bs-border-radius-lg) - var(--bs-border-width));--bs-modal-header-padding-x:1.5rem;--bs-modal-header-padding-y:1.5rem;--bs-modal-header-padding:1.5rem;--bs-modal-header-border-color:transparent;--bs-modal-header-border-width:0;--bs-modal-title-line-height:1.5;--bs-modal-footer-gap:0px;--bs-modal-footer-bg: ;--bs-modal-footer-border-color:transparent;--bs-modal-footer-border-width:0;display:none;height:100%;left:0;outline:0;overflow-x:hidden;overflow-y:auto;position:fixed;top:0;width:100%;z-index:var(--bs-modal-zindex)}.modal-dialog{margin:var(--bs-modal-margin);pointer-events:none;position:relative;width:auto}.modal.fade .modal-dialog{transform:translateY(-50px);transition:transform .3s ease-out}.modal.show .modal-dialog{transform:none}.modal.modal-static .modal-dialog{transform:scale(1.02)}.modal-dialog-centered{align-items:center;display:flex;min-height:calc(100% - var(--bs-modal-margin)*2)}.modal-content{background-clip:padding-box;background-color:var(--bs-modal-bg);border:var(--bs-modal-border-width) solid var(--bs-modal-border-color);border-radius:var(--bs-modal-border-radius);color:var(--bs-modal-color);display:flex;flex-direction:column;outline:0;pointer-events:auto;position:relative;width:100%}.modal-header{align-items:center;border-bottom:var(--bs-modal-header-border-width) solid var(--bs-modal-header-border-color);border-top-left-radius:var(--bs-modal-inner-border-radius);border-top-right-radius:var(--bs-modal-inner-border-radius);display:flex;flex-shrink:0;padding:var(--bs-modal-header-padding)}.modal-title{line-height:var(--bs-modal-title-line-height);margin-bottom:0}.modal-body{flex:1 1 auto;padding:var(--bs-modal-padding);position:relative}.modal-footer{align-items:center;background-color:var(--bs-modal-footer-bg);border-bottom-left-radius:var(--bs-modal-inner-border-radius);border-bottom-right-radius:var(--bs-modal-inner-border-radius);border-top:var(--bs-modal-footer-border-width) solid var(--bs-modal-footer-border-color);display:flex;flex-shrink:0;flex-wrap:wrap;justify-content:flex-end;padding:calc(var(--bs-modal-padding) - var(--bs-modal-footer-gap)*.5)}.modal-footer>*{margin:calc(var(--bs-modal-footer-gap)*.5)}@media (min-width:576px){.modal{--bs-modal-margin:1.75rem;--bs-modal-box-shadow:var(--bs-box-shadow)}.modal-dialog{margin-left:auto;margin-right:auto;max-width:var(--bs-modal-width)}}.overflow-visible{overflow:visible!important}.overflow-x-visible{overflow-x:visible!important}.overflow-y-visible{overflow-y:visible!important}.d-inline{display:inline!important}.d-block{display:block!important}.d-flex{display:flex!important}.shadow{box-shadow:var(--bs-box-shadow)!important}.flex-column{flex-direction:column!important}.justify-content-center{justify-content:center!important}.align-items-center{align-items:center!important}.mt-3{margin-top:1.5rem!important}.mb-0{margin-bottom:0!important}.mb-2{margin-bottom:.75rem!important}.mb-3{margin-bottom:1.5rem!important}.ms-1{margin-left:.375rem!important}.py-0{padding-bottom:0!important;padding-top:0!important}.pt-1{padding-top:.375rem!important}.pe-0{padding-right:0!important}.fs-2{font-size:calc(1.325rem + .9vw)!important}.link-opacity-10-hover:hover{--bs-link-opacity:0.1}.link-opacity-25-hover:hover{--bs-link-opacity:0.25}.link-opacity-50-hover:hover{--bs-link-opacity:0.5}.link-opacity-75-hover:hover{--bs-link-opacity:0.75}.link-opacity-100-hover:hover{--bs-link-opacity:1}.link-offset-1-hover:hover{text-underline-offset:.125em!important}.link-offset-2-hover:hover{text-underline-offset:.25em!important}.link-offset-3-hover:hover{text-underline-offset:.375em!important}.link-underline-opacity-0-hover:hover{--bs-link-underline-opacity:0}.link-underline-opacity-10-hover:hover{--bs-link-underline-opacity:0.1}.link-underline-opacity-25-hover:hover{--bs-link-underline-opacity:0.25}.link-underline-opacity-50-hover:hover{--bs-link-underline-opacity:0.5}.link-underline-opacity-75-hover:hover{--bs-link-underline-opacity:0.75}.link-underline-opacity-100-hover:hover{--bs-link-underline-opacity:1}.rounded{border-radius:var(--bs-border-radius)!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media (min-width:1200px){.fs-2{font-size:2rem!important}}\n/*! @design/bapf-pattern-library v3.6.0 | 11.04.2024 | _badge.scss */.ba-badge{background-image:linear-gradient(135deg,#ff0023,#b30920);border-radius:10px;color:#fff;display:block;font-family:Roboto Bold,Helvetica Neue,Arial,sans-serif;font-size:13px;height:19px;line-height:19px;min-width:19px;outline:1px solid transparent;padding:0 6px;text-align:center}.ba-badge .sr-only:before,.ba-badge:before{content:\" \";font-size:0}@media (-ms-high-contrast:active),(forced-colors:active),(prefers-contrast:more){.ba-badge{background:Buttonface}}\n\n/*! @design/bapf-pattern-library v3.6.0 | 11.04.2024 | _link.scss */a{font-size:1rem;line-height:1.5rem}a:focus,a:hover{text-decoration:underline}a,a:focus,a:hover,a:visited{color:#3f4859}a:active{color:#020e25}a.ba-icon{display:inline-block;padding-left:1.5rem;position:relative}a.ba-icon:before{font-size:1rem;left:0;position:absolute;top:.25rem}a.ba-icon.ba-link-down,a.ba-icon.ba-link-dropdown,a.ba-icon.ba-link-right,a.ba-icon.ba-link-up,a.ba-icon[class*=-after]{padding-left:0;padding-right:1.5rem}a.ba-icon.ba-link-down:before,a.ba-icon.ba-link-dropdown:before,a.ba-icon.ba-link-right:before,a.ba-icon.ba-link-up:before,a.ba-icon[class*=-after]:before{content:none}a.ba-icon.ba-link-down:after,a.ba-icon.ba-link-dropdown:after,a.ba-icon.ba-link-right:after,a.ba-icon.ba-link-up:after,a.ba-icon[class*=-after]:after{font-size:1rem;position:absolute;right:0;top:.25rem}a.ba-textlink{text-decoration:underline}.ba-link-up{display:inline-block;padding-left:1.5rem;position:relative}.ba-link-up:before{font-size:1rem;left:0;position:absolute;top:.25rem}.ba-link-up.ba-link-down,.ba-link-up.ba-link-up{padding-left:0;padding-right:1.5rem}.ba-link-up.ba-link-down:before,.ba-link-up.ba-link-up:before{content:none}.ba-link-up.ba-link-down:after,.ba-link-up.ba-link-up:after{font-size:1rem;position:absolute;right:0;top:.25rem}.ba-link-down{display:inline-block;padding-left:1.5rem;position:relative}.ba-link-down:before{font-size:1rem;left:0;position:absolute;top:.25rem}.ba-link-down.ba-link-down,.ba-link-down.ba-link-up{padding-left:0;padding-right:1.5rem}.ba-link-down.ba-link-down:before,.ba-link-down.ba-link-up:before{content:none}.ba-link-down.ba-link-down:after,.ba-link-down.ba-link-up:after{font-size:1rem;position:absolute;right:0;top:.25rem}\n\n/*! @design/bapf-pattern-library v3.6.0 | 11.04.2024 | _tabbar.scss */\n\n/*! @design/bapf-pattern-library v3.6.0 | 11.04.2024 | _header.scss */.ba-header{background-color:#f9fbfc;left:0;outline:1px solid transparent;transition:top .24s;width:100%;z-index:1000}@media (width <= 767px) and (orientation:portrait),(width <= 991px) and (orientation:landscape){.ba-header{position:fixed;top:0}.ba-header.ba-hidden{top:-53px}.ba-header.ba-hidden .ba-nav-main{box-shadow:none}}@media (width >= 768px) and (orientation:portrait),(width >= 992px) and (orientation:landscape){.ba-header{padding-top:16px;position:relative}@supports (position:sticky){.ba-header{position:sticky;top:-32px}}.ba-header.ba-hidden .ba-nav-meta ul{opacity:0}.ba-header.ba-hidden .ba-nav-meta:after{left:0}}.ba-header.ba-at-subheader:after{background:rgba(2,14,37,.16);bottom:0;content:\"\";display:block;height:1px;position:absolute;width:100%}.ba-header.ba-at-subheader .ba-nav-main{box-shadow:none}.ba-header .ba-logo{position:absolute;top:13px;width:auto;z-index:1}@supports (forced-color-adjust:none){@media (forced-colors:active){.ba-header .ba-logo{background:#fff!important;forced-color-adjust:none}}}@supports not (forced-color-adjust:none){@media (forced-colors:active) and (prefers-color-scheme:dark){.ba-header .ba-logo{background:ButtonText!important}}@media (forced-colors:active) and (prefers-color-scheme:light){.ba-header .ba-logo{background:Canvas!important}}}@supports (-moz-appearance:none){@media (forced-colors:active){.ba-header .ba-logo{background:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg'%3E%3Cpath style='fill:%23fff' d='M0 0h10000v10000H0z'/%3E%3C/svg%3E\")!important}}}@media (width >= 768px) and (orientation:portrait),(width >= 992px) and (orientation:landscape){.ba-header .ba-logo{top:48px;transition:top .24s}}.ba-header .ba-logo a{border-radius:5px;display:block;height:36px;overflow:hidden;width:215px;z-index:1}.ba-header .ba-logo a img{height:100%;width:216px}@media (width >= 768px) and (orientation:portrait),(width >= 992px) and (orientation:landscape){.ba-header .ba-logo a{height:43px;width:260px}.ba-header .ba-logo a img{height:100%;width:258.3px}}.ba-header nav.ba-nav-main ul.container-fluid,.ba-header nav.ba-nav-meta ul.container-fluid{display:flex;justify-content:flex-end;list-style:none;margin-bottom:0}.ba-header nav.ba-nav-meta{display:none}@media (width >= 768px) and (orientation:portrait),(width >= 992px) and (orientation:landscape){.ba-header nav.ba-nav-meta{display:block;height:20px;line-height:20px;position:relative;transition:height .24s}.ba-header nav.ba-nav-meta:after{background:#e70000 linear-gradient(90deg,#e70000 0,#b30920);border-top-left-radius:20px;bottom:0;content:\"\";left:24px;position:absolute;right:0;top:0;transition:left .24s;z-index:-1}}.ba-header nav.ba-nav-meta ul>li{margin-left:24px}.ba-header nav.ba-nav-meta ul>li>a{color:#fff;font-family:Roboto Bold,Helvetica Neue,Arial,sans-serif;font-size:15px;line-height:20px}.ba-header nav.ba-nav-meta ul>li>a:before{font-size:13px;margin:-2px 8px 0 0;text-decoration:none}.ba-header nav.ba-nav-meta ul>li>a:after{font-size:13px;margin:-2px 0 0 8px;text-decoration:none}.ba-header nav.ba-nav-meta .dropdown-menu{z-index:1002}.ba-header nav.ba-nav-main{background-color:#fff;border-top:3px solid #e70000;box-shadow:0 12px 10px -2px rgba(0,0,0,.08),0 12px 24px 4px rgba(0,0,0,.08)}@media (width >= 768px) and (orientation:portrait),(width >= 992px) and (orientation:landscape){.ba-header nav.ba-nav-main{border-top:0}}.ba-header nav.ba-nav-main .container-fluid{position:relative}.ba-header .ba-link-language:after{transition:transform .24s}.ba-header .ba-link-language[aria-expanded=true]:after{transform:rotateX(180deg)}@media (width <= 767px) and (orientation:portrait),(width <= 991px) and (orientation:landscape){.ba-header-element .ba-flyout{max-height:calc(100vh - 63px);overflow:auto}.ba-header-element.ba-hidden .ba-flyout{max-height:calc(100vh - 10px)}}.ba-header-element .ba-menu-entry{border:0;border-radius:5px;color:#000;display:block;font-family:Roboto Bold,Helvetica Neue,Arial,sans-serif;font-size:16px;height:40px;line-height:40px;margin:5px 0;outline:1px solid transparent;padding:0 12px;position:relative;transition:background-color .08s;width:44px}@media (width >= 768px) and (orientation:portrait),(width >= 992px) and (orientation:landscape){.ba-header-element .ba-menu-entry{font-size:18px;height:48px;line-height:48px;margin:12px 0;padding:0 16px;width:53px}}.ba-header-element .ba-menu-entry:focus{outline:3px solid transparent}.ba-header-element .ba-menu-entry:hover{background-color:rgba(2,14,37,.08);text-decoration:none}.ba-keyboard-mode:focus{background-color:rgba(2,14,37,.08)}.ba-header-element .ba-menu-entry:before{font-size:22px;left:11px;position:absolute;top:9px}@media (width >= 768px) and (orientation:portrait),(width >= 992px) and (orientation:landscape){.ba-header-element .ba-menu-entry:before{left:15px;top:13px}}.ba-header-element .ba-menu-entry .ba-badge{left:50%;position:absolute;top:0}.ba-header-element .ba-messages,.ba-header-element .ba-timer,.ba-header-element .ba-trust{background-color:rgba(2,14,37,.08);transition:background-color .08s}.ba-header-element .ba-messages:after,.ba-header-element .ba-timer:after,.ba-header-element .ba-trust:after{border:4px solid #fff;clip-path:polygon(50% 0,0 100%,100% 100%);content:\"\";height:0;opacity:1;position:absolute;right:50%;top:47px;transform:translateX(50%);transition:all .08s;width:24px;z-index:1001}@media (width >= 768px) and (orientation:portrait),(width >= 992px) and (orientation:landscape){.ba-header-element .ba-messages:after,.ba-header-element .ba-timer:after,.ba-header-element .ba-trust:after{top:62px}}.ba-header-element .ba-messages.collapsed,.ba-header-element .ba-timer.collapsed,.ba-header-element .ba-trust.collapsed{background-color:transparent}.ba-header-element .ba-messages.collapsed:hover,.ba-header-element .ba-timer.collapsed:hover,.ba-header-element .ba-trust.collapsed:hover,.ba-keyboard-mode .ba-header-element .ba-messages.collapsed:focus,.ba-keyboard-mode .ba-header-element .ba-timer.collapsed:focus,.ba-keyboard-mode .ba-header-element .ba-trust.collapsed:focus{background-color:rgba(2,14,37,.08)}.ba-header-element .ba-messages.collapsed:after,.ba-header-element .ba-timer.collapsed:after,.ba-header-element .ba-trust.collapsed:after{display:none}.ba-header-element .ba-flyout-container{left:0;max-width:1280px;position:absolute;width:100%;z-index:1001}@media (min-width:768px){.ba-header-element .ba-flyout-container.ba-flyout-timer,.ba-header-element .ba-flyout-container.ba-flyout-trust{left:auto;margin-left:-175px;transform:translateX(26.5px);width:350px}}@media (min-width:890px){.ba-header-element .ba-flyout-container.ba-flyout-timer{transform:translateX(63px)}}.ba-header-element .ba-flyout-collapse{box-shadow:0 12px 10px -2px rgba(0,0,0,.08),0 12px 24px 4px rgba(0,0,0,.08);padding:0;position:absolute;width:100%}.ba-header-element .ba-flyout{background-color:#fff;line-height:24px;margin-top:10px;outline:1px solid transparent;overflow:auto;padding:24px 12px;position:relative}@media (min-width:768px){.ba-header-element .ba-flyout{padding:24px}}.ba-header-element .ba-flyout h2{margin-bottom:0}.ba-header-element .ba-flyout hr{margin:5px 0}.ba-header-element .ba-menu-container a:not(.ba-textlink){border-radius:5px;color:#020e25;display:block;line-height:24px;padding:6px 16px 5px;position:relative;transition:background-color .08s ease-in}.ba-header-element .ba-menu-container a:not(.ba-textlink):focus,.ba-header-element .ba-menu-container a:not(.ba-textlink):hover{background-color:rgba(2,14,37,.08);text-decoration:none;transition:background-color .08s ease-out}.ba-header-element .ba-menu-container a:not(.ba-textlink):active{background-color:rgba(2,14,37,.16)}\n\n/*! @design/bapf-pattern-library v3.6.0 | 11.04.2024 | _loading.scss */\n\n/*! @design/bapf-pattern-library v3.6.0 | 11.04.2024 | _button.scss */.ba-btn,button{color:#020e25}.ba-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:rgba(2,14,37,.08);border:none;border-radius:5px;display:inline-block;font-family:Roboto Bold,Helvetica Neue,Arial,sans-serif;font-size:1rem;-webkit-hyphens:auto;hyphens:auto;line-height:1.4375rem;outline:1px solid transparent;padding:.375rem 1rem;position:relative;text-align:center;text-decoration:none;transition:box-shadow .08s;word-break:break-word}@media (max-width:575.98px){.ba-btn{width:100%}.ba-btn+.ba-btn{margin-top:12px}}@media (min-width:576px){.ba-btn:not(.ba-btn-block)+.ba-btn:not(.ba-btn-block){margin-left:8px}.ba-btn:not([class*=-after]):not(.ba-btn-next):not(.ba-btn-right):not(.dropdown-toggle):not(.ba-btn-block):not(:disabled):not(.ba-loading):after{background:transparent linear-gradient(180deg,transparent,transparent 2px,#b30920) no-repeat top;background-size:50% 20px;border-radius:1px;content:\"\";display:block;height:2px;transition:background-size .08s ease-in-out,background-position .08s ease-in-out}.ba-btn:not([class*=-after]):not(.ba-btn-next):not(.ba-btn-right):not(.dropdown-toggle):not(.ba-btn-block):not(:disabled):not(.ba-loading):not(.active):focus-within:after,.ba-btn:not([class*=-after]):not(.ba-btn-next):not(.ba-btn-right):not(.dropdown-toggle):not(.ba-btn-block):not(:disabled):not(.ba-loading):not(.active):focus:after,.ba-btn:not([class*=-after]):not(.ba-btn-next):not(.ba-btn-right):not(.dropdown-toggle):not(.ba-btn-block):not(:disabled):not(.ba-loading):not(.active):hover:after{background-position:bottom;background-size:100% 20px;outline:1px solid transparent;outline-offset:-1px}.ba-btn:not([class*=-after]):not(.ba-btn-next):not(.ba-btn-right):not(.dropdown-toggle):not(.ba-btn-block):not(:disabled):not(.ba-loading):after{bottom:4px;left:16px;position:absolute;right:16px}}.ba-keyboard-mode .ba-btn:focus,.ba-keyboard-mode .ba-btn:focus-within{box-shadow:1px 1px 0 1px #f9fbfc,1px -1px 0 1px #f9fbfc,-1px 1px 0 1px #f9fbfc,-1px -1px 0 1px #f9fbfc,0 0 0 2px #f9fbfc,0 0 0 4px #020e25;outline:2px solid transparent}.ba-btn:disabled,.ba-btn[disabled],[disabled] .ba-btn{cursor:not-allowed;opacity:.25}.ba-btn:disabled .ba-badge,.ba-btn[disabled] .ba-badge,[disabled] .ba-btn .ba-badge{display:none}.ba-btn:visited{color:#020e25}.ba-btn.hover,.ba-btn:focus-within:not(:disabled),.ba-btn:focus:not(:disabled),.ba-btn:hover:not(:disabled){background-color:rgba(2,14,37,.12);color:#020e25;text-decoration:none}.ba-btn:active:not(:disabled){background-color:rgba(2,14,37,.16);color:#020e25;text-decoration:none}@media (min-width:576px){.ba-btn:not([class*=-after]):not(.ba-btn-next):not(.ba-btn-right):not(.dropdown-toggle):not(.ba-btn-block):not(:disabled):not(.ba-loading):after{background-image:linear-gradient(180deg,transparent,transparent 2px,#020e25)}}.ba-btn-primary{background-color:#b30920;color:#fff;text-decoration:none}.ba-btn-primary:visited{color:#fff}.ba-btn-primary.hover,.ba-btn-primary:focus-within:not(:disabled),.ba-btn-primary:focus:not(:disabled),.ba-btn-primary:hover:not(:disabled){background-color:#8c0418;color:#fff;text-decoration:none}.ba-btn-primary:active:not(:disabled){background-color:#601;color:#fff;text-decoration:none}@media (min-width:576px){.ba-btn-primary:not([class*=-after]):not(.ba-btn-next):not(.ba-btn-right):not(.dropdown-toggle):not(.ba-btn-block):not(:disabled):not(.ba-loading):after{background-image:linear-gradient(180deg,transparent,transparent 2px,#fff)}}.ba-btn-primary .ba-badge{outline-color:#fff}.ba-btn .ba-badge{position:absolute;right:-.5rem;top:-.5rem}\n\n/*! @design/bapf-pattern-library v3.6.0 | 11.04.2024 | _form.scss */button{letter-spacing:inherit}\n\n/*! @design/bapf-pattern-library v3.6.0 | 11.04.2024 | _dropdown.scss */\n\n/*! @design/bapf-pattern-library v3.6.0 | 11.04.2024 | _collapsible.scss */\n\n/*! @design/bapf-pattern-library v3.6.0 | 11.04.2024 | _alert.scss */.alert{background-color:rgba(2,14,37,.04);border-radius:5px;clear:both;color:#020e25;display:block;margin-bottom:1.5rem;outline:1px solid transparent;padding:12px 24px;position:relative}.alert:after{background:radial-gradient(circle,#fff 0,#fff 10px,transparent 11px);border-radius:50%;font-size:24px;height:24px;left:-9px;line-height:24px;opacity:1;position:absolute;text-align:center;top:12px;transition:all .08s;width:24px}.alert .ba-heading{display:block;font-family:Roboto Condensed Bold,Helvetica Neue,Arial,sans-serif;font-size:1rem;line-height:1.5;margin:0 0 12px}.alert>:last-child:not(.ba-heading){margin-bottom:0}.collapsing .alert:after{left:0;opacity:0}.alert{border:1px solid #b3b3b3}.alert a{text-decoration:underline}.alert-info{background-color:rgba(217,225,237,.9);border-color:#305c73}.alert-info:after{color:#305c73}.alert-warning{background-color:hsla(57,83%,86%,.9);border-color:#5c5300}.alert-warning:after{background:radial-gradient(circle,#020e25 0,#020e25 8px,transparent 9px);color:#ffe900}h2{font-size:calc(1.275rem + .3vw)}@media (min-width:1200px){h2{font-size:1.5rem}}","import { Fragment, h, Host } from \"@stencil/core\";\nimport { JwtUtil } from \"../../util/jwt-util/jwt-util\";\nimport { getIconByStorklevel } from \"../../util/stork-icon-util\";\nimport { getShouldBeIgnored } from \"../../util/jwt-util/html-util/html-util\";\nexport class AuthnLevelShield {\n constructor() {\n this.authnLevel = undefined;\n this.showMenuButton = false;\n this.showFlyout = false;\n }\n el;\n jwt;\n button;\n flyout;\n /**\n * Request a token event form the oiam-oauth-wc\n */\n sendTokenEventEmitter;\n closeFlyoutWhenTabbingOut(event) {\n if (event.key !== 'Tab') {\n return;\n }\n const path = event.composedPath();\n const flyout = this.el.shadowRoot.getElementById('headerFlyoutShield');\n if (!path.includes(flyout) && this.showFlyout) {\n this.hideFlyout();\n }\n }\n handleTokenEvent(ev) {\n const jwtValidationResult = JwtUtil.validateJwt(ev);\n if (jwtValidationResult.isValidJwt) {\n this.jwt = jwtValidationResult.jwt;\n let level = this.jwt.payload['authn-level'];\n if (JwtUtil.isValidAuthnLevel(level)) {\n this.authnLevel = level;\n this.showMenuButton = true;\n }\n }\n else {\n // we have to hide the component if there is an empty jwt (logout in other tab, browser back etc.)\n if (this.showFlyout) {\n this.hideFlyout();\n }\n this.showMenuButton = false;\n }\n }\n componentDidLoad() {\n this.sendTokenEventEmitter.emit();\n }\n componentDidRender() {\n this.button = this.el.shadowRoot.querySelector('#session-shield-button');\n this.flyout = this.el.shadowRoot.querySelector('#headerFlyoutShield');\n }\n render() {\n if (this.showMenuButton) {\n return (h(Host, { class: 'd-block rounded' }, h(\"div\", { class: \"ba-header-element\" }, this.getShield(), this.getFlyOut())));\n }\n }\n getShield() {\n return (h(\"button\", { id: \"session-shield-button\", class: `${getIconByStorklevel(this.authnLevel)} ba-menu-entry ba-trust collapsed`, title: \"Aktuelle Anmeldeoption\", type: \"button\", \"data-bs-toggle\": \"collapse\", onClick: () => this.onButtonClick(), \"data-bs-target\": \"#headerFlyoutShield\", \"aria-expanded\": \"false\", \"aria-controls\": \"headerFlyoutShield\" }));\n }\n getFlyOut() {\n return (h(\"div\", { class: \"ba-flyout-container ba-flyout-trust\" }, h(\"div\", { id: \"headerFlyoutShield\", class: \"ba-flyout-collapse collapse\", \"data-parent\": \".ba-header-element\" }, h(\"nav\", { class: \"ba-flyout ba-menu-container\", \"aria-label\": \"Vertrauensniveau\" }, h(\"h2\", null, \"Aktuelle Anmeldeoption\"), h(\"hr\", { role: \"presentation\" }), h(\"div\", { class: \"row mt-3 mb-3\" }, this.getShieldIcons()), h(\"div\", { class: \"mb-2\" }, this.getText()), h(\"div\", { class: \"mb-2 alert alert-info\", role: \"note\" }, this.getInfobox())))));\n }\n getShieldIcons() {\n return (h(Fragment, null, h(\"auth-level-with-status\", { storkLevel: 'STORK-QAA-Level-1', status: this.authnLevel === 'STORK-QAA-Level-1' || this.authnLevel === 'STORK-QAA-Level-2' ? 'current' : 'inactive', class: 'col-4', \"data-testid\": 'shield-basis' }), h(\"auth-level-with-status\", { storkLevel: 'STORK-QAA-Level-3', status: this.authnLevel === 'STORK-QAA-Level-3' ? 'current' : 'inactive', class: 'col-4', \"data-testid\": 'shield-substanziell' }), h(\"auth-level-with-status\", { storkLevel: 'STORK-QAA-Level-4', status: this.authnLevel === 'STORK-QAA-Level-4' ? 'current' : 'inactive', class: 'col-4', \"data-testid\": 'shield-hoch' })));\n }\n getText() {\n if (this.authnLevel === 'STORK-QAA-Level-1') {\n return (h(\"span\", { \"data-testid\": 'text-basis' }, \"Sie sind aktuell mit \", h(\"strong\", null, \"Benutzername und Passwort\"), \" (Basisregistrierung) angemeldet.\"));\n }\n if (this.authnLevel === 'STORK-QAA-Level-3') {\n return (h(\"span\", { \"data-testid\": 'text-substanziell' }, \"Sie sind aktuell mit einem \", h(\"strong\", null, \"ELSTER-Zertifikat oder einem vergleichbaren EU-Ausweismittel\"), ' ', \"(Vertrauensniveau Substanziell) angemeldet.\"));\n }\n if (this.authnLevel === 'STORK-QAA-Level-4') {\n return (h(\"span\", { \"data-testid\": 'text-hoch' }, \"Sie sind aktuell mit \", h(\"strong\", null, \"einem deutschen oder europ\\u00E4ischen Ausweis\"), \" (Vertrauensniveau Hoch) angemeldet.\"));\n }\n }\n getInfobox() {\n if (this.authnLevel === 'STORK-QAA-Level-1') {\n return (h(\"p\", { id: \"shieldInfo\" }, \"F\\u00FCr die Nutzung von eServices und Daten, die mit einem\", h(\"a\", { class: 'ba-icon ba-icon-trust-high d-inline ms-1 py-0 pe-0' }), \" oder\", h(\"a\", { class: 'ba-icon ba-icon-trust-medium d-inline ms-1 py-0 pe-0' }), \" gekennzeichnet sind, m\\u00FCssen Sie sich mit einem ELSTER-Zertifikat, einem deutschen oder europ\\u00E4ischen Ausweis anmelden. Details finden Sie auf der\", ' ', h(\"a\", { href: 'https://www.arbeitsagentur.de/bundid-sicherer-zugang-zu-allen-eservices', class: 'ba-textlink' }, \"Informationsseite zur BundID.\")));\n }\n if (this.authnLevel === 'STORK-QAA-Level-3') {\n return (h(\"p\", { id: \"shieldInfo\" }, \"F\\u00FCr die Nutzung von eServices und Daten, die mit einem\", h(\"a\", { class: 'ba-icon ba-icon-trust-high d-inline ms-1 py-0 pe-0' }), \" gekennzeichnet sind, m\\u00FCssen Sie sich mit einem deutschen oder europ\\u00E4ischen Ausweis anmelden. Details finden Sie auf der\", h(\"br\", null), h(\"a\", { href: 'https://www.arbeitsagentur.de/bundid-sicherer-zugang-zu-allen-eservices', class: 'ba-textlink' }, \"Informationsseite zur BundID.\")));\n }\n if (this.authnLevel === 'STORK-QAA-Level-4') {\n return (h(\"p\", { id: \"shieldInfo\" }, \"Mit dieser Anmeldeoption stehen Ihnen alle unsere eServices mit dem kompletten Datenzugriff zur Verf\\u00FCgung.\"));\n }\n }\n onButtonClick() {\n this.toggleFlyout();\n }\n toggleFlyout() {\n if (this.showFlyout) {\n this.hideFlyout();\n }\n else {\n this.showFlyoutContent();\n }\n }\n handleClickEvent(event) {\n const path = event.composedPath();\n // This solves a bug. Other Teams are closing their flyouts by creating an additional click on their menu-items.\n // We need to ignore these additional Clicks. Otherwise, our flyout opens and then instantly closes.\n const shouldBeIgnored = getShouldBeIgnored(path);\n if (shouldBeIgnored) {\n return;\n }\n if (!path.includes(this.el) && this.showFlyout) {\n this.hideFlyout();\n }\n }\n handleKeyDown(ev) {\n if (ev.key === 'Escape' && this.showFlyout) {\n this.hideFlyout();\n }\n }\n showFlyoutContent() {\n this.flyout.classList.add('collapsed');\n this.flyout.classList.remove('collapse');\n this.button.classList.add('collapse');\n this.button.classList.remove('collapsed');\n this.button.ariaExpanded = 'true';\n this.showFlyout = !this.showFlyout;\n }\n hideFlyout() {\n this.flyout.classList.remove('collapsed');\n this.flyout.classList.add('collapse');\n this.button.classList.add('collapsed');\n this.button.classList.remove('collapse');\n this.button.ariaExpanded = 'false';\n this.showFlyout = !this.showFlyout;\n }\n static get is() { return \"authn-level-shield\"; }\n static get encapsulation() { return \"shadow\"; }\n static get originalStyleUrls() {\n return {\n \"$\": [\"authn-level-shield.scss\"]\n };\n }\n static get styleUrls() {\n return {\n \"$\": [\"authn-level-shield.css\"]\n };\n }\n static get states() {\n return {\n \"authnLevel\": {},\n \"showMenuButton\": {},\n \"showFlyout\": {}\n };\n }\n static get events() {\n return [{\n \"method\": \"sendTokenEventEmitter\",\n \"name\": \"oiamSendTokenEvent\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Request a token event form the oiam-oauth-wc\"\n },\n \"complexType\": {\n \"original\": \"void\",\n \"resolved\": \"void\",\n \"references\": {}\n }\n }];\n }\n static get elementRef() { return \"el\"; }\n static get listeners() {\n return [{\n \"name\": \"keyup\",\n \"method\": \"closeFlyoutWhenTabbingOut\",\n \"target\": \"window\",\n \"capture\": false,\n \"passive\": false\n }, {\n \"name\": \"oiamTokenEvent\",\n \"method\": \"handleTokenEvent\",\n \"target\": \"window\",\n \"capture\": false,\n \"passive\": false\n }, {\n \"name\": \"click\",\n \"method\": \"handleClickEvent\",\n \"target\": \"window\",\n \"capture\": false,\n \"passive\": false\n }, {\n \"name\": \"keydown\",\n \"method\": \"handleKeyDown\",\n \"target\": \"window\",\n \"capture\": false,\n \"passive\": false\n }];\n }\n}\n","import { CookieUtil } from './CookieUtil';\n\nexport enum ConsentCookieTypes {\n STATISTIC,\n PERSONAL,\n MARKETING\n}\n\n// Werte die ein Cookie annehmen kann\nexport enum CookieValues {\n ACCEPTED = 'accepted',\n DENIED = 'denied'\n}\n\nexport class ConsentCookieUtil extends CookieUtil {\n private static readonly sekProTag = 86400;\n private static maxAgeTage = 30;\n private static readonly umrechnungsfaktorMsZuS = 1000;\n\n // Name des cookies für statistische und personalisierungs Zwecke\n private static readonly statisticCookieName = 'cookie_consent';\n private static readonly personalCookieName = 'personalization_consent';\n private static readonly marketingCookieName = 'marketing_consent';\n\n /**\n * Setzt einen Consent Cookie in das HTMLDocument. Dabei kann bestimmt werden, ob der der Consent \"accepted\" oder \"denied\" ist.\n * Der gesetzte Cookie hat ein \"max-age\" von 30 Tagen (2.592.000s bzw. 2.592.000.000ms).\n * Für den Support älterer Browser (IE8, 9, 10) wird das Attribut \"expires\" gesetzt.\n *\n * Für die Einwilligung von Statistischen Cookies (\"statistic\") wird der Cookie \"cookie_consent\" gesetzt.\n * (zu Beachten: Der name \"cookie_consent\" wurde für die Abwärtskompatibilität zu Analysetoole wie bspw. Piwik übernommen.)\n *\n * Für die Einwilligung von Persönlichen Cookies (\"personal\") wird der Cookie \"personalization_consent\" gesetzt.\n *\n * @param type Typ des Consent-Cookies\n * @param accepted true für \"accepted\" oder false für \"denied\" (Default: true)\n */\n static setConsentCookie(type: ConsentCookieTypes, accepted: boolean = true) {\n let cookieName;\n switch (type){\n case ConsentCookieTypes.STATISTIC: cookieName = this.statisticCookieName; break;\n case ConsentCookieTypes.PERSONAL: cookieName = this.personalCookieName; break;\n case ConsentCookieTypes.MARKETING: cookieName = this.marketingCookieName; break;\n default: cookieName = null;\n }\n\n let age = type === ConsentCookieTypes.MARKETING ? 180 : this.maxAgeTage;\n\n const cookieValue = this.getCookieContentValue(accepted);\n const cookieMaxAge = age * this.sekProTag; // in seconds\n const cookieExpiresDate = new Date(Date.now() + cookieMaxAge * this.umrechnungsfaktorMsZuS);\n\n super.setCookie(cookieName, cookieValue, cookieMaxAge, cookieExpiresDate);\n }\n\n /**\n * Gibt den Wert (\"accepted\", \"denied\") eines angegebenen Consent-Cookies aus dem HTMLDocument zurück.\n * Ist der spezifizierte Cookie nicht vorhanden wird null zurückgegeben.\n *\n * @param type Typ des Consent-Cookies\n */\n static getConsentCookie(type: ConsentCookieTypes) {\n let cookieName;\n switch (type){\n case ConsentCookieTypes.STATISTIC: cookieName = this.statisticCookieName; break;\n case ConsentCookieTypes.PERSONAL: cookieName = this.personalCookieName; break;\n case ConsentCookieTypes.MARKETING: cookieName = this.marketingCookieName; break;\n default: cookieName = null;\n }\n\n const value = super.getCookieValue(cookieName);\n if (value !== CookieValues.ACCEPTED && value !== CookieValues.DENIED) {\n return null;\n }\n return value;\n }\n\n static getCookieContentValue(boolean:boolean) {\n return boolean ? CookieValues.ACCEPTED : CookieValues.DENIED;\n }\n}\n","import {ConsentCookieTypes, ConsentCookieUtil, CookieValues} from '../../utils/ConsentCookieUtil';\nimport {CookieDisclaimerControllableComponent} from './CookieDisclaimerControllableComponent.interface';\n\nexport class CookieDisclaimerController {\n private static TIMEOUT_ON_CLOSE = 500;\n\n constructor(private comp: CookieDisclaimerControllableComponent) {\n // Handler functions must be bound to context 'this'!\n this.handleAcceptAll = this.handleAcceptAll.bind(this);\n this.handleAcceptSelection = this.handleAcceptSelection.bind(this);\n this.handleNoSelection = this.handleNoSelection.bind(this);\n this.handleClose = this.handleClose.bind(this);\n }\n\n setNoCookies() {\n this.comp.personalCookies = false;\n this.comp.statisticCookies = false;\n this.comp.marketingCookies = false;\n }\n\n setStatisticCookies(consent) {\n this.comp.statisticCookies = !!consent;\n }\n\n setPersonalCookies(consent) {\n this.comp.personalCookies = !!consent;\n }\n\n setMarketingCookies(consent: boolean) {\n this.comp.marketingCookies = !!consent;\n }\n\n loadConsentStatesFromCookies() {\n if (!this.comp.forceVisible) {\n const statisticCookieVal = ConsentCookieUtil.getConsentCookie(ConsentCookieTypes.STATISTIC);\n const personalCookieVal = ConsentCookieUtil.getConsentCookie(ConsentCookieTypes.PERSONAL);\n const marketingCookieVal = ConsentCookieUtil.getConsentCookie(ConsentCookieTypes.MARKETING);\n\n // Falls eines der Cookies schon existiert wird das Cookie erneut gesetzt um max-age und expires zu verlängern\n if (statisticCookieVal) {\n ConsentCookieUtil.setConsentCookie(\n ConsentCookieTypes.STATISTIC,\n statisticCookieVal === CookieValues.ACCEPTED\n );\n }\n if (personalCookieVal) {\n ConsentCookieUtil.setConsentCookie(\n ConsentCookieTypes.PERSONAL,\n personalCookieVal === CookieValues.ACCEPTED\n );\n }\n if (marketingCookieVal) {\n ConsentCookieUtil.setConsentCookie(\n ConsentCookieTypes.MARKETING,\n marketingCookieVal === CookieValues.ACCEPTED\n );\n }\n\n // Falls eines der Cookies fehlt, muss der Dialog erneut geöffnet werden\n if (!statisticCookieVal || !personalCookieVal || !marketingCookieVal) {\n this.comp.autoVisible = true;\n }\n\n this.comp.statisticCookies = statisticCookieVal === CookieValues.ACCEPTED;\n this.comp.personalCookies = personalCookieVal === CookieValues.ACCEPTED;\n this.comp.marketingCookies = marketingCookieVal === CookieValues.ACCEPTED;\n }\n }\n\n handleAcceptAll() {\n this.comp.bahfCdAcceptAll.emit();\n this.setStatisticCookies(true);\n this.setPersonalCookies(true);\n this.setMarketingCookies(true);\n\n // set all consent cookies to 'accepted'\n ConsentCookieUtil.setConsentCookie(ConsentCookieTypes.STATISTIC);\n ConsentCookieUtil.setConsentCookie(ConsentCookieTypes.PERSONAL);\n ConsentCookieUtil.setConsentCookie(ConsentCookieTypes.MARKETING);\n\n // close modal\n setTimeout(() => this.closeModal(), CookieDisclaimerController.TIMEOUT_ON_CLOSE);\n }\n\n handleAcceptSelection() {\n const { statisticCookies, personalCookies, marketingCookies } = this.comp;\n\n this.comp.bahfCdAcceptSelection.emit({\n cookieConsentChecked: statisticCookies,\n personalizationConsentChecked: personalCookies,\n marketingConsentChecked: marketingCookies,\n });\n\n // set all consent cookies according to user preferences\n ConsentCookieUtil.setConsentCookie(ConsentCookieTypes.STATISTIC, statisticCookies);\n ConsentCookieUtil.setConsentCookie(ConsentCookieTypes.PERSONAL, personalCookies);\n ConsentCookieUtil.setConsentCookie(ConsentCookieTypes.MARKETING, marketingCookies);\n\n // close modal\n setTimeout(() => this.closeModal(), CookieDisclaimerController.TIMEOUT_ON_CLOSE);\n }\n\n handleNoSelection() {\n this.setNoCookies();\n\n ConsentCookieUtil.setConsentCookie(ConsentCookieTypes.STATISTIC, false);\n ConsentCookieUtil.setConsentCookie(ConsentCookieTypes.PERSONAL, false);\n ConsentCookieUtil.setConsentCookie(ConsentCookieTypes.MARKETING, false);\n\n // close modal\n setTimeout(() => this.closeModal(), CookieDisclaimerController.TIMEOUT_ON_CLOSE);\n }\n\n // close modal without saving any user preferences\n handleClose() {\n setTimeout(() => this.closeModal(), CookieDisclaimerController.TIMEOUT_ON_CLOSE);\n }\n\n private closeModal() {\n this.sendConsentToDatalayer();\n\n this.comp.autoVisible = false;\n this.comp.forceVisible = false;\n }\n\n private sendConsentToDatalayer() {\n const { statisticCookies, personalCookies, marketingCookies } = this.comp;\n if (window?._mtm) {\n window._mtm.push({\n event: 'set-consent',\n marketing_consent: ConsentCookieUtil.getCookieContentValue(marketingCookies),\n cookie_consent: ConsentCookieUtil.getCookieContentValue(statisticCookies),\n personalization_consent: ConsentCookieUtil.getCookieContentValue(personalCookies)\n });\n }\n }\n}\n","import { EventEmitter } from '@stencil/core';\nimport { CookieDisclaimerControllableComponentAttributes } from './CookieDisclaimerControllableComponentAttributes.interface';\n\nclass CookieDisclaimerDefaults implements CookieDisclaimerControllableComponentAttributes {\n readonly forceVisible: boolean = false;\n\n // Cookie checkbox Zustände\n readonly statisticCookies = false;\n readonly personalCookies = false;\n readonly marketingCookies = false;\n\n // Sichtbarkeit des Modals (falls visible = auto)\n readonly autoVisible = false;\n\n readonly bahfCdAcceptAll: EventEmitter;\n readonly bahfCdAcceptSelection: EventEmitter<{\n cookieConsentChecked: boolean;\n personalizationConsentChecked: boolean;\n marketingConsentChecked: boolean;\n }>;\n}\n\nexport const COOKIE_DISCLAIMER_DEFAULTS = new CookieDisclaimerDefaults();\n","@use '@design/bapf-pattern-library/source/sass/globals' as *;\n@use '@design/bapf-pattern-library/source/sass/vendor/bootstrap';\n\n// alles eingestellt, jetzt folgen unsere Patterns\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/copytext';\n@use '@design/bapf-pattern-library/source/sass/patterns/collapsible';\n@use '@design/bapf-pattern-library/source/sass/patterns/modal';\n@use '@design/bapf-pattern-library/source/sass/patterns/form';\n\n.initializing {\n display: none;\n}\n\n.ba-copytext{\n margin-bottom: 1.5rem;\n}\n\n.ba-progress-form-area {\n flex-basis: 100%;\n max-width: 100%;\n\n .form-check.always-checked-box {\n display:inline-flex;\n\n span.ba-icon.ba-icon-check{\n align-self: center;\n }\n\n }\n}\n\n.ba-consent-container{\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n}\n\n@include media-breakpoint-down(sm){\n .ba-consent-container{\n flex-direction: column;\n }\n}\n","import { Component, Element, Event, EventEmitter, h, Host, Prop, State } from '@stencil/core';\nimport { I18nUtil } from '../../utils/I18nUtil';\nimport {\n CookieDisclaimerControllableComponent,\n} from '../../controller/cookie-disclaimer/CookieDisclaimerControllableComponent.interface';\nimport { CookieDisclaimerController } from '../../controller/cookie-disclaimer/CookieDisclaimerController';\nimport { COOKIE_DISCLAIMER_DEFAULTS as DEFAULTS } from '../../controller/cookie-disclaimer/CookieDisclaimerDefaults';\n\n@Component({\n tag: 'bahf-cookie-disclaimer-dpl3',\n styleUrl: 'bahf-cookie-disclaimer.scss',\n assetsDirs: ['i18n-dpl3'],\n shadow: true,\n scoped: false,\n})\nexport class BahfCookieDisclaimer implements CookieDisclaimerControllableComponent {\n controller = new CookieDisclaimerController(this);\n\n @Element() el: HTMLElement;\n @Prop({ mutable: true }) forceVisible: boolean = DEFAULTS.forceVisible;\n\n // Cookie checkbox Zustände\n @State() statisticCookies = DEFAULTS.statisticCookies;\n @State() personalCookies = DEFAULTS.personalCookies;\n @State() marketingCookies = DEFAULTS.marketingCookies;\n\n // Sichtbarkeit des Modals (falls visible = auto)\n @State() autoVisible = DEFAULTS.autoVisible;\n\n @Event({ eventName: 'bahf-cd-accept-all' }) bahfCdAcceptAll: EventEmitter;\n @Event({ eventName: 'bahf-cd-accept-selection' }) bahfCdAcceptSelection: EventEmitter<{\n cookieConsentChecked: boolean;\n personalizationConsentChecked: boolean;\n marketingConsentChecked: boolean;\n }>;\n\n // Initialies setzen der cookie checkbox Zustände\n // STENCIL LIFECYCLE: Ausführung einmalig beim laden der Komponente\n componentWillLoad() {\n this.controller.loadConsentStatesFromCookies();\n }\n\n componentDidLoad(): void {\n const modal = this.el.shadowRoot.querySelector('bahf-cd-modal');\n modal.classList.remove('initializing');\n }\n\n render() {\n const isOpen = this.forceVisible || this.autoVisible;\n return (\n \n \n
\n {/* Cookie-Disclaimer-Ãœberschrift */}\n

\n \n \n

\n
\n
\n\n
\n\n
\n
\n \n \n \n
\n
\n }\n inputId=\"ba-hf-cd-stat-cookies-cb\"\n onToggle={() => this.controller.setStatisticCookies(!this.statisticCookies)}\n checked={this.statisticCookies}\n />\n
\n
\n }\n inputId=\"ba-hf-cd-pers-cookies-cb\"\n onToggle={() => this.controller.setPersonalCookies(!this.personalCookies)}\n checked={this.personalCookies}\n />\n
\n
\n }\n inputId=\"ba-hf-cd-mark-cookies-cb\"\n onToggle={() => this.controller.setMarketingCookies(!this.marketingCookies)}\n checked={this.marketingCookies}\n />\n
\n
\n
\n
\n \n
\n

\n \n

\n

\n \n

\n

\n \n

\n

\n \n

\n

\n \n

\n

\n \n

\n

\n \n

\n

\n \n

\n
\n
\n
\n
\n \n \n \n \n \n \n \n \n \n
\n \n \n );\n }\n}\n","/*! @design/bapf-pattern-library v3.7.0 | 09.12.2024 | _tabbar.js */\nimport { Utilities } from './_utilities';\r\n\r\n/**\r\n * Pattern: Tabbar\r\n * Initialisiert Tabbar-Navigation\r\n * @constructor\r\n * @param {HTMLElement} element - TabBar Pattern, default: .ba-tabbar\r\n */\r\nexport class BaTabbar {\r\n\r\n constructor (element) {\r\n /* istanbul ignore next */\r\n if (element.hasAttribute('data-initialized')) return;\r\n\r\n this.scrollFactor = .5; // Anteil des sichtbarer Bereichs, der pro Klick gescrollt wird\r\n this.domEl = element;\r\n this.leftPos = 0;\r\n this.listWidth = 0;\r\n this.viewportWidth = 0;\r\n\r\n this.viewport = this.domEl.querySelector('.ba-viewport');\r\n this.marker = this.domEl.querySelector('.ba-viewport ul li.ba-marker');\r\n\r\n this.list = this.domEl.querySelector('ul');\r\n this.items = this.domEl.querySelectorAll('ul li:not(.ba-marker)');\r\n this.links = this.domEl.querySelectorAll('ul li a');\r\n this.controls = {\r\n prev: {\r\n el : this.domEl.querySelector('.ba-prev'),\r\n title: this.domEl.getAttribute('data-title-prev') || 'zurück'\r\n },\r\n next: {\r\n el : this.domEl.querySelector('.ba-next'),\r\n title: this.domEl.getAttribute('data-title-next') || 'weiter'\r\n }\r\n };\r\n\r\n this.initTabs();\r\n this.initVisibilityChange();\r\n this.initActions();\r\n this.initControls();\r\n this.initItemResizeObserver();\r\n this.initResize();\r\n this.initTouch();\r\n this.initTouchPad();\r\n\r\n this.domEl.setAttribute('data-initialized', 'true');\r\n }\r\n\r\n /**\r\n * Initialisiert die Tabbar, wenn sichtbar\r\n */\r\n initVisibilityChange () {\r\n try {\r\n const observer = new IntersectionObserver((entries) => {\r\n entries.forEach(entry => {\r\n if (entry.intersectionRatio > 0) {\r\n this.initUI();\r\n }\r\n });\r\n });\r\n observer.observe(this.domEl);\r\n }\r\n catch (e)\r\n /* istanbul ignore next */\r\n {\r\n this.initUI();\r\n console.log('IntersectionObserver nicht unterstützt, bitte Browser updaten.'); //NOSONAR\r\n }\r\n }\r\n\r\n /**\r\n * Elemente vermessen, Marker positionieren\r\n */\r\n initUI () {\r\n this.startMeasure();\r\n this.list.classList.add('active'); // Um die max. Größe eines Eintrags zu messen, müssen alle auf aktiv (bold) gestellt werden\r\n\r\n setTimeout(() => {\r\n this.items.forEach((item) => {\r\n item.removeAttribute('style');\r\n item.style.width = item.clientWidth + 'px';\r\n });\r\n\r\n this.listWidth = this.list.offsetWidth;\r\n this.list.classList.remove('active'); // Nach dem Messen wieder alle auf Normalzustand\r\n this.updateUI();\r\n\r\n const activeLink = this.list.querySelector('a.active');\r\n if (activeLink) {\r\n const activeListItem = activeLink.closest('li');\r\n this.setMarker(activeListItem);\r\n }\r\n this.endMeasure();\r\n }, 0);\r\n }\r\n\r\n /**\r\n * Aktionen und Handler initialisieren\r\n */\r\n initActions () {\r\n const tabbar = this;\r\n tabbar.links.forEach((link) => {\r\n\r\n // Marker unter Link bewegen\r\n link.addEventListener('mouseenter', (e) => {\r\n tabbar.marker.classList.add('hover');\r\n const targetElem = e.target;\r\n const targetListItem = targetElem.closest('li');\r\n tabbar.setMarker(targetListItem);\r\n }, false);\r\n\r\n // Marker unter aktiven Link zurückbewegen\r\n link.addEventListener('mouseleave', () => {\r\n tabbar.marker.classList.remove('hover');\r\n const activeLink = tabbar.list.querySelector('a.active');\r\n if (activeLink) {\r\n const activeListItem = activeLink.closest('li');\r\n tabbar.setMarker(activeListItem);\r\n } else {\r\n /* istanbul ignore next */\r\n Object.assign(tabbar.marker.style, {\r\n left : 0,\r\n width: 0\r\n });\r\n }\r\n }, false);\r\n\r\n // Gedrückt-Stil hinzufügen\r\n link.addEventListener('mousedown', () => {\r\n setTimeout(function () { // warten auf blur Event des vorherigen :focus\r\n tabbar.marker.classList.remove('hover');\r\n }, 10);\r\n });\r\n\r\n // Gedrückt-Stil ersetzen durch hover\r\n link.addEventListener('mouseup', () => {\r\n tabbar.marker.classList.add('hover');\r\n });\r\n\r\n // Link aktiv setzen und in Viewport schieben\r\n link.addEventListener('click', (e) => {\r\n /* istanbul ignore next */\r\n if (tabbar.domEl.classList.contains('ba-static-links')) {\r\n return true;\r\n }\r\n e.preventDefault();\r\n const activeElems = tabbar.domEl.querySelectorAll('.active');\r\n if (activeElems.length > 0) {\r\n activeElems.forEach(activeElem => activeElem.classList.remove('active'));\r\n }\r\n e.target.classList.add('active');\r\n tabbar.moveIntoViewport(e.target.closest('li'));\r\n });\r\n\r\n // Active-Marker updaten\r\n link.addEventListener('blur', function () {\r\n setTimeout(function () { // auf focus warten, document.activeElement geht zwischendurch auf \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 /* istanbul ignore next */\r\n if (!focusedElement.closest('.ba-tabbar') || focusedElement.closest('.ba-tabbar') !== tabbar.domEl) { // nicht mehr in Tabbar? Active-Marker resetten\r\n const activeLink = tabbar.list.querySelector('a.active');\r\n if (activeLink) {\r\n const activeListItem = activeLink.closest('li');\r\n tabbar.setMarker(activeListItem);\r\n }\r\n }\r\n }, 10);\r\n });\r\n\r\n // Navigation per Tastatur\r\n link.addEventListener('focus', () => {\r\n const entry = link.closest('li');\r\n tabbar.moveIntoViewport(entry);\r\n tabbar.setMarker(entry);\r\n });\r\n });\r\n }\r\n\r\n /**\r\n * Links/rechts Scrollbuttons initialisieren und aus Tab-Index entfernen\r\n */\r\n initControls () {\r\n const tabbar = this;\r\n const prevElem = this.controls.prev.el;\r\n prevElem.setAttribute('tabindex', '-1');\r\n prevElem.setAttribute('title', this.controls.prev.title);\r\n prevElem.addEventListener('click', () => {\r\n tabbar.slide('prev');\r\n });\r\n const nextElem = this.controls.next.el;\r\n nextElem.setAttribute('tabindex', '-1');\r\n nextElem.setAttribute('title', this.controls.next.title);\r\n nextElem.addEventListener('click', () => {\r\n tabbar.slide('next');\r\n });\r\n }\r\n\r\n /**\r\n * A11y: reagieren auf Größenänderungen durch interaktive User-Anpassungen (letter-spacing, font-size, ...)\r\n * Prüfschritt 1.4.12a Textabstände anpassbar (AA)\r\n */\r\n initItemResizeObserver () {\r\n try {\r\n const tabbar = this;\r\n const observer = new ResizeObserver((el) => {\r\n const elementWidth = el[0].contentRect.width;\r\n const containerWidth = el[0].target.closest('li').clientWidth;\r\n\r\n const isEnoughDifference = () => {\r\n const diff = containerWidth - elementWidth; // sollte ~32 sein (2x 16px Container-Padding)\r\n const BOLD_FACTOR = 0.015; // 0.015 ist der Faktor um den sich die Groesse durch bold verändert\r\n return diff < 32 || diff > 34 + elementWidth * BOLD_FACTOR;\r\n };\r\n\r\n if (elementWidth > 0 && isEnoughDifference()) {\r\n tabbar.initUI();\r\n }\r\n });\r\n // Nur das breiteste Item muss beobachtet werden\r\n let widestItem = null;\r\n let maxWidth = 0;\r\n this.startMeasure();\r\n tabbar.items.forEach((item) => {\r\n const itemWidth = item.offsetWidth;\r\n if (itemWidth > maxWidth) {\r\n maxWidth = itemWidth;\r\n widestItem = item;\r\n }\r\n });\r\n this.endMeasure();\r\n if (widestItem) observer.observe((/** @type{HTMLElement} */(widestItem)).querySelector('a'));\r\n } catch (e) {\r\n /* istanbul ignore next */\r\n console.log('ResizeObserver nicht unterstützt, bitte Browser updaten.'); //NOSONAR\r\n }\r\n }\r\n\r\n /**\r\n * Verwendung als Tabs initialisieren\r\n */\r\n initTabs () {\r\n if (this.list.getAttribute('role') === 'tablist') {\r\n const tabbar = this;\r\n\r\n // BS Tabverhalten aktivieren\r\n tabbar.links.forEach((triggerTab) => {\r\n if (triggerTab.getAttribute('role') === 'tab') {\r\n triggerTab.bsTab = (/** @type{any} */(window)).dpl.bs.Tab.getOrCreateInstance(triggerTab);\r\n triggerTab.addEventListener('keydown', () => {\r\n document.body.classList.add('ba-keyboard-mode');\r\n });\r\n triggerTab.addEventListener('click', (e) => {\r\n e.preventDefault();\r\n triggerTab.focus({ preventScroll: true });\r\n triggerTab.bsTab.show();\r\n });\r\n }\r\n });\r\n\r\n // Bewegen des Tastaturfokus per home/end-Tasten\r\n tabbar.domEl.addEventListener('keydown', (e) => {\r\n if (e.key === 'Home') {\r\n e.stopPropagation();\r\n e.preventDefault();\r\n const next = tabbar.items[0];\r\n next.querySelector('a').click();\r\n }\r\n if (e.key === 'End') {\r\n e.stopPropagation();\r\n e.preventDefault();\r\n const next = tabbar.items[tabbar.items.length - 1];\r\n next.querySelector('a').click();\r\n }\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * Auf Größenänderungen und Orientationchange des Browsers reagieren\r\n */\r\n initResize () {\r\n const tabbar = this;\r\n let resizeTimeout = null;\r\n window.addEventListener('resize', () => {\r\n clearTimeout(resizeTimeout);\r\n resizeTimeout = setTimeout(tabbar.updateUI.bind(tabbar), 100);\r\n });\r\n }\r\n\r\n /**\r\n * Touch-Steuerung für Mobile initialisieren\r\n */\r\n initTouch () {\r\n const tabbar = this;\r\n let startPos = 0;\r\n let startOffsetX = 0;\r\n\r\n // Touchdrag Handler\r\n tabbar.list.addEventListener('touchstart', (e) => {\r\n tabbar.domEl.classList.add('ba-noanim'); // Slide-Transition für touch-drag deaktivieren\r\n startPos = tabbar.leftPos;\r\n startOffsetX = e.changedTouches[0].pageX;\r\n window.addEventListener('touchmove', touchDragHandler);\r\n window.addEventListener('touchend', touchDragEnd);\r\n }, Utilities.supportsPassiveEvent() ? { passive: true } : false);\r\n\r\n // Handler während des Drag-Vorgangs\r\n function touchDragHandler (e) {\r\n e.stopPropagation();\r\n const newOffsetX = e.changedTouches[0].pageX;\r\n const distance = startOffsetX - newOffsetX;\r\n tabbar.leftPos = startPos - distance;\r\n tabbar.updateSlidePos();\r\n }\r\n\r\n // Handler nach dem Drag/Touch-Vorgang\r\n function touchDragEnd (e) {\r\n e.stopPropagation();\r\n tabbar.domEl.classList.remove('ba-noanim'); // Slide-Transition wieder aktivieren\r\n window.removeEventListener('touchmove', touchDragHandler);\r\n window.removeEventListener('touchend', touchDragEnd);\r\n }\r\n }\r\n\r\n /**\r\n * Touchpad-/MightyMouse-Steuerung initialisieren\r\n */\r\n initTouchPad () {\r\n const tabbar = this;\r\n const supportsPassive = Utilities.supportsPassiveEvent();\r\n tabbar.domEl.addEventListener('wheel', (e) => {\r\n if (tabbar.listWidth <= tabbar.viewportWidth) {\r\n return;\r\n }\r\n if (!supportsPassive) e.preventDefault();\r\n const delta = e.deltaX;\r\n if (delta < 0) {\r\n tabbar.slide('prev');\r\n }\r\n if (delta > 0) {\r\n tabbar.slide('next');\r\n }\r\n }, supportsPassive ? { passive: true } : false);\r\n }\r\n\r\n /**\r\n * Tabbar im sichtbaren Bereich verschieben: links, rechts oder Pixelposition\r\n * @param {string} direction - Mögliche Werte: 'prev', 'next'\r\n */\r\n slide (direction) {\r\n let newPos = this.leftPos;\r\n const distance = this.viewportWidth * this.scrollFactor;\r\n if (direction === 'prev') {\r\n newPos = this.leftPos + distance;\r\n }\r\n if (direction === 'next') {\r\n newPos = this.leftPos - distance;\r\n }\r\n this.leftPos = newPos;\r\n\r\n this.updateSlidePos();\r\n }\r\n\r\n /**\r\n * Ausrichtung, Overflow, Position und Buttonzustände aktualisieren\r\n * (initial, nach Resize, nach sichtbarmachen, ...)\r\n */\r\n updateUI () {\r\n const isHidden = Utilities.isHidden(this.domEl);\r\n\r\n /* istanbul ignore next */\r\n if (isHidden) {\r\n this.startMeasure();\r\n }\r\n\r\n this.domEl.classList.add('ba-noanim');\r\n this.updateOverflow();\r\n this.updateSlidePos();\r\n const activeElem = this.list.querySelector('.active');\r\n if (activeElem) {\r\n this.moveIntoViewport(activeElem.closest('li'));\r\n }\r\n this.domEl.classList.remove('ba-noanim');\r\n\r\n /* istanbul ignore next */\r\n if (isHidden) {\r\n this.endMeasure();\r\n }\r\n }\r\n\r\n /**\r\n * Testen, ob neue Slider-Position korrekt im Viewport liegt,\r\n * dann auf neue Position sliden und Controls aktualisieren\r\n */\r\n updateSlidePos () {\r\n if (this.leftPos > 0) { // Ganz links\r\n this.leftPos = 0;\r\n }\r\n if (this.leftPos < this.viewportWidth - this.listWidth) { // Ganz rechts\r\n if (this.viewportWidth >= this.listWidth) {\r\n this.leftPos = 0;\r\n } else {\r\n this.leftPos = this.viewportWidth - this.listWidth - 8; // 8px = padding-viewport + outline auf focus\r\n }\r\n }\r\n this.list.style.transform = `translate3d(${this.leftPos}px, 0, 0)`;\r\n this.updateControlStatus();\r\n }\r\n\r\n /**\r\n * Scrollbuttons je nach Scrollposition de/aktivieren\r\n */\r\n updateControlStatus () {\r\n if (this.leftPos >= 0) { // Ganz links\r\n this.domEl.classList.remove('ba-show-prev');\r\n } else {\r\n this.domEl.classList.add('ba-show-prev');\r\n }\r\n if (this.leftPos <= this.viewportWidth - this.listWidth) { // Ganz rechts\r\n this.domEl.classList.remove('ba-show-next');\r\n } else {\r\n this.domEl.classList.add('ba-show-next');\r\n }\r\n }\r\n\r\n /**\r\n * Prüfen, ob Tabbar größer ist als sichtbarer Bereich\r\n */\r\n updateOverflow () {\r\n let availableWidth;\r\n if (this.domEl.classList.contains('ba-overflown')) {\r\n availableWidth = Utilities.outerWidth(this.viewport);\r\n } else {\r\n availableWidth = this.viewport.offsetWidth + 1; //\r\n }\r\n this.listWidth > availableWidth ? this.domEl.classList.add('ba-overflown') : this.domEl.classList.remove('ba-overflown');\r\n this.viewportWidth = this.viewport.offsetWidth;\r\n }\r\n\r\n /**\r\n * Eintrag in den sichtbaren Bereich schieben\r\n * @param {HTMLElement} el - Tabbar-Item\r\n */\r\n moveIntoViewport (el) {\r\n if (!this.domEl.classList.contains('ba-overflown')) {\r\n return;\r\n }\r\n // Zusätzlicher Abstand damit der Focus-Rahmen komplett im View liegt\r\n const spacing = 40;\r\n const elLeft = el.offsetLeft;\r\n const elRight = elLeft + el.offsetWidth;\r\n /* istanbul ignore next */\r\n if (this.leftPos < -elLeft) {\r\n this.leftPos = -elLeft + spacing;\r\n }\r\n /* istanbul ignore next */\r\n if (this.leftPos - this.viewportWidth > -elRight) {\r\n this.leftPos = this.viewportWidth - elRight - spacing;\r\n }\r\n this.updateSlidePos();\r\n }\r\n\r\n /**\r\n * Größe und Position des hover-Markers setzen\r\n * @param {HTMLElement} el - Tabbar-Item, das markiert werden soll\r\n */\r\n setMarker (el) {\r\n const markerStyles = {\r\n left : el.offsetLeft + 'px',\r\n width: el.offsetWidth + 'px'\r\n };\r\n Object.assign(this.marker.style, markerStyles);\r\n }\r\n\r\n /**\r\n * Bevor Elemente vermessen werden können, muss die Tabbar sichtbar sein\r\n */\r\n startMeasure () {\r\n function getParentsHidden (elem, parentSelector) {\r\n if (parentSelector === undefined) {\r\n parentSelector = document.body;\r\n }\r\n const parents = [];\r\n let p = elem.parentNode;\r\n while (p && p !== parentSelector) {\r\n let o = p;\r\n /* istanbul ignore next */\r\n if (o.nodeName === '#document-fragment') {\r\n o = o.host;\r\n }\r\n /* istanbul ignore next */\r\n if (o.style.display === 'none' || window.getComputedStyle(o).display === 'none') {\r\n parents.push(o);\r\n }\r\n p = o.parentNode;\r\n }\r\n return parents;\r\n }\r\n\r\n const parentsHiddenElems = getParentsHidden(this.domEl);\r\n /* istanbul ignore next */\r\n parentsHiddenElems.forEach((elem) => {\r\n elem.classList.add('ba-unhide-for-measure');\r\n });\r\n }\r\n\r\n /**\r\n * Nach dem Vermessen kann Tabbar wieder unsichtbar werden, wenn sie es vorher war\r\n */\r\n endMeasure () {\r\n let parent = this.domEl.closest('.ba-unhide-for-measure');\r\n /* istanbul ignore next */\r\n while (parent !== null) {\r\n this.domEl.closest('.ba-unhide-for-measure').classList.remove('ba-unhide-for-measure');\r\n parent = parent.closest('.ba-unhide-for-measure');\r\n }\r\n }\r\n\r\n /**\r\n * Setzt den Tab mit tabId active\r\n * @param {string} tabId\r\n * @param {boolean} showPanel\r\n */\r\n setActive(tabId, showPanel = true) {\r\n const target = document.getElementById(tabId);\r\n if (showPanel) {\r\n target.click();\r\n return;\r\n }\r\n this.links.forEach(link => {\r\n link.classList.remove('active');\r\n link.setAttribute('aria-selected', 'false');\r\n });\r\n target.classList.add('active');\r\n target.setAttribute('aria-selected', 'true');\r\n const li = target.closest('li');\r\n this.setMarker(li);\r\n this.moveIntoViewport(li);\r\n }\r\n}\r\n","export enum ActiveTab {\n PRIVATPERSONEN = 'privatpersonen',\n UNTERNEHMEN = 'unternehmen',\n INSTITUTIONEN = 'institutionen'\n}\n","import { Component, Element, h, Host, Prop, State, ComponentInterface, Watch } from '@stencil/core';\nimport { DefaultLanguages } from '../../../utils/model/DefaultLanguages';\nimport { ConfigProvider } from '../../../config/ConfigProvider';\nimport { BsWebcomponent } from '../bsWebcomponent';\nimport { BaTabbar } from '@design/bapf-pattern-library/source/js/_tabbar';\nimport { Language } from '../../../utils/model/Language';\nimport { IConfiguration } from '../../../../config/IConfiguration';\nimport { HfUtil } from '../utils/HfUtil';\nimport { ActiveTab } from './ActiveTab';\nimport { ActingType } from '@websso/oiam-oauth-types';\nimport { HeaderMode } from '../types/header-mode';\nimport globalStore from '../../../stores/globalStore';\n\n/**\n * @internal\n */\n@Component({\n tag: 'bahf-header-megaflyout',\n styles: '.pb-2 { padding-bottom:1.0rem !important }',\n assetsDirs: ['../assets'],\n shadow: false,\n scoped: false,\n})\nexport class BahfHeaderMegaflyout implements ComponentInterface {\n @Prop() loggedIn: boolean;\n @Prop() language: Language = DefaultLanguages.DE;\n @Prop() config: IConfiguration = ConfigProvider.get();\n @Prop() withLangSwitch: boolean = true;\n @Prop() jsonData;\n @Prop() actingType: ActingType | undefined;\n\n @State() isMegaFlyoutVisible: boolean;\n\n @State() activeTab: ActiveTab;\n @Element() megaflyoutInstance: HTMLElement;\n\n private readonly ID_MEGAFLYOUT = 'headerFlyoutMain';\n\n // Tabbar\n tabbarElem: HTMLElement;\n\n @Watch('loggedIn')\n @Watch('actingType')\n handleLoggedInChange() {\n this.setActiveTabByUserOrDocument();\n }\n\n componentWillLoad() {\n this.setActiveTabByUserOrDocument();\n }\n\n componentDidRender() {\n this.megaflyoutInstance && new BsWebcomponent(this.megaflyoutInstance);\n setTimeout(() => {\n this.tabbarElem &&\n !this.tabbarElem.hasAttribute('data-initialized') &&\n this.megaflyoutInstance.classList.contains('hydrated') &&\n this.megaflyoutInstance.parentNode !== null &&\n new BaTabbar(this.tabbarElem);\n });\n }\n\n setActiveTabByUserOrDocument() {\n if (this.loggedIn) {\n this.activeTab = this.mapActingTypeToActiveTab(this.actingType);\n } else {\n this.activeTab = this.isLangDe() ? this.getActiveTabFromDocument() : ActiveTab.PRIVATPERSONEN;\n }\n }\n\n getMegaflyoutCollapsibleId(sub: string, index: number) {\n return `headerFlyout${index}${'Sub' + sub}`;\n }\n\n private isLangDe(): boolean {\n return this.language.code === DefaultLanguages.DE.code;\n }\n\n render() {\n return (\n \n \n \n {this.jsonData?.menuButton}\n \n
\n \n
\n
\n
\n

\n {this.jsonData?.headline}\n

\n
\n {this.isLangDe() && this.renderTabbarTrigger()}\n
\n {this.jsonData && this.renderTabbarPanels()}\n
\n
\n
\n
\n );\n }\n\n private renderTabbarPanels() {\n return (\n
\n {globalStore.state.mode !== HeaderMode.International &&\n [\n !!this.jsonData.privatpersonen && this.renderTabbarPanel('Privatpersonen', this.jsonData.privatpersonen),\n !!this.jsonData.unternehmen && this.renderTabbarPanel('Unternehmen', this.jsonData.unternehmen),\n !!this.jsonData.institutionen && this.renderTabbarPanel('Institutionen', this.jsonData.institutionen)\n ]\n }\n\n {this.renderMobileMetaNav()}\n
\n );\n }\n\n private renderTabbarPanel(title: string, data) {\n return (\n \n
\n
\n {/*lebenslagenRow1*/}\n {data?.lebenslagenRow1 && this.getLebenslagenRow(data.lebenslagenRow1, title, 0)}\n {/*lebenslagenRow2*/}\n {data?.lebenslagenRow2 &&\n this.getLebenslagenRow(data.lebenslagenRow2, title, data.lebenslagenRow1.length)}\n
\n\n
\n {data?.eServices && this.getEserviceRow(data.eServices, title + 'EService')}\n
\n
\n \n );\n }\n\n private renderMobileMetaNav() {\n return (\n
\n \n {globalStore.state.mode !== HeaderMode.International &&\n \n
  • \n \n Gebärdensprache\n \n
  • \n
  • \n \n Leichte Sprache\n \n
  • \n \n }\n
    \n );\n }\n\n private renderTabbarTrigger() {\n return (\n
    \n \n
    \n );\n }\n\n private getEserviceRow(data, row: string) {\n return (\n
    \n
    \n \n {data.title}\n \n\n
    \n
      \n
    • \n
      \n {data?.title}\n
      \n
        \n {data.links.map((link) =>\n link.url ? (\n
      • \n {link.title}\n
      • \n ) : (\n
      • {link.title}
      • \n )\n )}\n
      \n {this.loggedIn ? (\n \n {data.alleServicesLink.title}\n \n ) : (\n \n {data.alleServicesLink.title}\n \n )}\n
    • \n
    \n
    \n
    \n
    \n );\n }\n\n private getLebenslagenRow(data, sub: string, offset: number) {\n return (\n
    \n {data.map((lebenslage, index: number) => {\n return (\n
    \n \n {lebenslage.title}\n \n\n \n
      \n
    • \n {lebenslage.url ? (\n \n {lebenslage.title}\n Zur Ãœbersicht\n \n ) : (\n
      \n {lebenslage.title}\n
      \n )}\n
        \n {lebenslage.links.map((link) =>\n link.url ? (\n
      • \n {link.title}\n
      • \n ) : (\n
      • \n {link.title}\n
      • \n )\n )}\n
      \n
    • \n
    \n
    \n
    \n );\n })}\n \n );\n }\n\n private getActiveTabFromDocument(): ActiveTab {\n //get audience from document\n const metaAudienceElement: HTMLMetaElement =\n document.head.querySelector(\"meta[name='audience']\");\n const audience: string = metaAudienceElement?.content;\n\n //map audience to activeTab\n switch (audience?.toLowerCase()) {\n case ActiveTab.INSTITUTIONEN:\n return ActiveTab.INSTITUTIONEN;\n case ActiveTab.UNTERNEHMEN:\n return ActiveTab.UNTERNEHMEN;\n case ActiveTab.PRIVATPERSONEN:\n default:\n return ActiveTab.PRIVATPERSONEN;\n }\n }\n\n private mapActingTypeToActiveTab(actingType: ActingType): ActiveTab {\n switch (actingType) {\n case 'partner':\n return ActiveTab.INSTITUTIONEN;\n case 'unternehmen':\n return ActiveTab.UNTERNEHMEN;\n case 'privatperson':\n default:\n return ActiveTab.PRIVATPERSONEN;\n }\n }\n}\n","import { Component, h, Listen, Prop, State } from '@stencil/core';\nimport { DefaultLanguages } from '../../../../utils/model/DefaultLanguages';\nimport { Language } from '../../../../utils/model/Language';\nimport { ConfigProvider } from '../../../../config/ConfigProvider';\nimport { HeadLinkService } from '../../service/head-link.service';\nimport globalStore from '../../../../stores/globalStore';\nimport { HeaderMode } from '../../types/header-mode';\n\n/**\n * @internal\n */\n@Component({\n tag: 'bahf-language-switch-desktop',\n shadow: false,\n})\nexport class LanguageSwitchDesktop {\n config = ConfigProvider.get();\n @Prop() customLanguages: Language[] = [];\n @Prop() currentLanguage: Language = DefaultLanguages.DE;\n @Prop() withLangSwitch: boolean = true;\n\n @Prop() language: Language;\n @Prop() navMetaDropdownAriaLabel: string;\n @Prop() srSelectionLabel: string;\n\n @State() dropdownIsOpen = false;\n\n dropdownElem: HTMLDivElement;\n dropdownToggleElem: HTMLAnchorElement;\n dropdownItemToFocus = 0;\n\n @State() alternateLinks: Language[] = HeadLinkService.readLinksFromHead();\n private headLinkService = new HeadLinkService();\n\n connectedCallback() {\n this.headLinkService.observeLinksAndHead(() => {\n this.alternateLinks = HeadLinkService.readLinksFromHead();\n });\n }\n\n disconnectedCallback() {\n this.headLinkService.disconnectObservers();\n }\n\n render() {\n const languageSwitchList: Language[] = [ ...this.alternateLinks ];\n\n if (globalStore.state.mode !== HeaderMode.International\n && !this.alternateLinks.find((l) => l.code === DefaultLanguages.EN.code)) {\n languageSwitchList.unshift(DefaultLanguages.EN);\n }\n if (globalStore.state.mode !== HeaderMode.International\n && !this.alternateLinks.find((l) => l.code === DefaultLanguages.DE.code)) {\n languageSwitchList.unshift(DefaultLanguages.DE);\n }\n\n return (\n \n );\n }\n\n toggleDropdownOrFocusFirst(event) {\n if (event.code === 'Space') {\n this.toggleDropdown(event);\n }\n if (event.code === 'ArrowDown') {\n this.dropdownElem.querySelectorAll('a')[0].focus();\n event.preventDefault();\n }\n }\n\n toggleDropdown(event) {\n event.preventDefault();\n event.stopPropagation();\n\n if (!this.dropdownIsOpen) {\n this.openDropdown();\n return;\n }\n this.closeDropdown();\n\n // verhindert die Verarbeitung des Events durch Bootstrap\n event.stopImmediatePropagation();\n }\n\n openDropdown() {\n this.dropdownIsOpen = true;\n }\n\n closeDropdown() {\n this.dropdownIsOpen = false;\n }\n\n changeFocusedLanguageInDropdown(event) {\n // navigate through Dropdown with arrow Keys\n const numberOfDropdowns = this.dropdownElem.querySelectorAll('a').length - 1;\n switch (event.code) {\n case 'ArrowDown':\n this.focusNext(this.dropdownItemToFocus, numberOfDropdowns, event);\n break;\n case 'ArrowUp':\n this.focusPrevious(this.dropdownItemToFocus, event);\n break;\n case 'Tab':\n this.changeFocused(this.dropdownItemToFocus, numberOfDropdowns, event);\n break;\n }\n }\n\n changeFocused(focusedElement, numberOfDropdowns: number, e: KeyboardEvent) {\n if (!e.shiftKey) {\n if (focusedElement === numberOfDropdowns) {\n this.closeDropdown();\n this.dropdownItemToFocus = 0;\n }\n if (focusedElement < numberOfDropdowns) {\n this.dropdownItemToFocus++;\n }\n } else {\n if (this.dropdownItemToFocus > 0) {\n this.dropdownItemToFocus--;\n }\n }\n }\n\n focusPrevious(focusedElement, e: KeyboardEvent) {\n if (focusedElement > 0) {\n this.dropdownItemToFocus--;\n }\n this.dropdownElem.querySelectorAll('a')[this.dropdownItemToFocus].focus();\n e.preventDefault();\n }\n\n focusNext(focusedElement, numberOfDropdowns: number, e: KeyboardEvent) {\n if (focusedElement < numberOfDropdowns) {\n this.dropdownItemToFocus++;\n }\n this.dropdownElem.querySelectorAll('a')[this.dropdownItemToFocus].focus();\n e.preventDefault();\n }\n\n /** registriert einen globalen Eventlistener auf dem \"document\" */\n @Listen('click', { target: 'document' })\n documentOnClick(event) {\n const path = event.composedPath();\n\n // dropdown schließen, falls nicht in das Dropdown-Element geklickt wird\n if (!path.includes(this.dropdownElem)) this.closeDropdown();\n }\n\n @Listen('keydown', { target: 'document' })\n documentOnKeyDown(event) {\n // dropdown schließen, falls Escape gedrückt wird\n if (event.key === 'Escape' || event.code == 'Escape') this.closeDropdown();\n }\n}\n\nfunction SignLanguage(lang: Language, endpoint: string) {\n const DE = DefaultLanguages.DE.code;\n\n return (\n
  • \n \n Gebärdensprache\n \n
  • \n );\n}\n\nfunction SimpleLanguage(lang: Language, endpoint: string) {\n const DE = DefaultLanguages.DE.code;\n\n return (\n
  • \n \n Leichte Sprache\n \n
  • \n );\n}\n","export interface MaintenanceInfo {\n state: MaintenanceInfoActiveState,\n text: string,\n fromDate: string,\n toDate: string\n}\n\nexport enum MaintenanceInfoActiveState {\n ACTIVE = 'immediately_active',\n INACTIVE = 'not_active',\n ACTIVE_FROM = 'from_date',\n ACTIVE_FROM_TO = 'active_from_to'\n}\n","export function handleErrors(response) {\n if (!response.ok) {\n throw Error(response.statusText);\n }\n return response;\n}\n","@use '@design/bapf-pattern-library/source/sass/globals' as *;\n@use '@design/bapf-pattern-library/source/sass/vendor/bootstrap';\n\n@use '@design/bapf-pattern-library/source/sass/patterns/alert';\n\n#maintenance-info-container {\n background-color: $color-blue-light;\n position: fixed;\n bottom: 0;\n right: 0;\n left: 0;\n margin: 0 auto;\n box-shadow: 0 0 30px -10px black;\n z-index: 1049;\n\n padding-left: 48px;\n &::after {\n top: 25px;\n left: 12px;\n }\n\n}\n\n\n@media (min-width: map-get($grid-breakpoints, 'md')) {\n #maintenance-info-container {\n max-width: 600px;\n margin-bottom: 80px;\n padding-left: 24px;\n &::after {\n top: 12px;\n left: -9px;\n }\n }\n}\n\n","import { Component, h, Host, State, ComponentInterface } from '@stencil/core';\nimport { MaintenanceInfo, MaintenanceInfoActiveState } from '../../../utils/model/MaintenanceInfo';\nimport { IConfiguration } from '../../../../config/IConfiguration';\nimport { ConfigProvider } from '../../../config/ConfigProvider';\nimport { handleErrors } from '../utils/HttpErrorHandler';\n\n/**\n * @internal\n */\n@Component({\n tag: 'bahf-maintenance-info',\n styleUrl: 'bahf-maintenance-info.scss',\n assetsDirs: ['../assets'],\n shadow: false,\n scoped: true,\n})\nexport class BahfMaintenanceInfo implements ComponentInterface {\n config: IConfiguration = ConfigProvider.get();\n maintenanceElem: HTMLDivElement;\n\n @State() private isMaintenanceInfoActive = false;\n maintenanceInfo: MaintenanceInfo;\n\n constructor() {\n this.setMaintenanceInfoClosedState = this.setMaintenanceInfoClosedState.bind(this);\n }\n\n componentWillLoad() {\n this.fetchMaintenanceInfo()\n .then(handleErrors)\n .then(async (response) => {\n const info: MaintenanceInfo = await response.json();\n this.maintenanceInfo = info;\n this.isMaintenanceInfoActive = this.validateMaintenanceInfo(info);\n })\n .catch((error) => {\n console.warn(error);\n });\n }\n\n componentDidLoad() {\n this.isMaintenanceInfoActive && this.initAlert();\n }\n\n initAlert() {\n this.maintenanceElem.querySelector('.close').addEventListener('click', (e) => {\n e.preventDefault();\n this.maintenanceElem['bsAlert'] =\n window.dpl.bs.Alert.getInstance(this.maintenanceElem) ||\n new window.dpl.bs.Alert(this.maintenanceElem);\n this.maintenanceElem['bsAlert'].close();\n });\n }\n\n fetchMaintenanceInfo(): Promise {\n const maintenanceInfoUrl = this.config.maintenanceInfoUrl;\n return fetch(maintenanceInfoUrl, {\n method: 'GET',\n headers: {\n 'x-api-key': this.config.apiClientId\n }\n });\n }\n\n validateMaintenanceInfo(info: MaintenanceInfo) {\n if (sessionStorage.getItem('maintenanceInfoState') === 'closed') {\n return false;\n }\n\n switch (info.state) {\n case MaintenanceInfoActiveState.ACTIVE:\n return true;\n case MaintenanceInfoActiveState.INACTIVE:\n return false;\n case MaintenanceInfoActiveState.ACTIVE_FROM:\n return this.validateMaintenanceFromDate(info.fromDate);\n case MaintenanceInfoActiveState.ACTIVE_FROM_TO:\n return this.validateMaintenanceFromToDate(info.fromDate, info.toDate);\n default:\n console.warn(`Aktivstatus des Wartungshinweises unbekannt: ${info.state}`);\n return false;\n }\n }\n\n private validateMaintenanceFromDate(fromDate: string) {\n if (!fromDate) return false;\n const today = new Date();\n const startDate = new Date(fromDate);\n return today >= startDate;\n }\n\n private validateMaintenanceFromToDate(fromDate: string, toDate: string) {\n if (!fromDate || !toDate) return false;\n const today = new Date();\n const startDate = new Date(fromDate);\n const endDate = new Date(toDate);\n return today >= startDate && today <= endDate;\n }\n\n setMaintenanceInfoClosedState() {\n this.isMaintenanceInfoActive = false;\n sessionStorage.setItem('maintenanceInfoState', 'closed');\n }\n\n render() {\n if (this.isMaintenanceInfoActive) {\n return (\n \n {\n this.maintenanceElem = el;\n }}\n >\n Wartungsarbeiten:\n

    \n \n \n
    \n );\n } else {\n return null;\n }\n }\n}\n","@charset \"UTF-8\"; /*! @design/bapf-pattern-library v3.6.0 | 11.04.2024 | _colors.scss */ /*! @design/bapf-pattern-library v3.6.0 | 11.04.2024 | _helpers.scss */ /*! @design/bapf-pattern-library v3.6.0 | 11.04.2024 | _design-tokens.scss */ /*! @design/bapf-pattern-library v3.6.0 | 11.04.2024 | _dpl-variables.scss */ /*! @design/bapf-pattern-library v3.6.0 | 11.04.2024 | _variables.scss */ /*! @design/bapf-pattern-library v3.6.0 | 11.04.2024 | _fonts.scss */@font-face{font-display:swap;font-family:BA Icons;font-style:normal;src:url(../fonts/icons.woff?ac=7099) format(\"woff\"),url(../fonts/icons.ttf?ac=7099) format(\"truetype\"),url(../fonts/icons.svg?ac=7099#BAIcons) format(\"svg\")}@font-face{font-display:swap;font-family:Roboto;font-style:normal;font-weight:400;src:url(../fonts/roboto-v20-latin-ext-regular.eot);src:local(\"Roboto\"),local(\"Roboto-Regular\"),url(../fonts/roboto-v20-latin-ext-regular.eot?#iefix) format(\"embedded-opentype\"),url(../fonts/roboto-v20-latin-ext-regular.woff2) format(\"woff2\"),url(../fonts/roboto-v20-latin-ext-regular.woff) format(\"woff\"),url(../fonts/roboto-v20-latin-ext-regular.ttf) format(\"truetype\"),url(../fonts/roboto-v20-latin-ext-regular.svg#Roboto) format(\"svg\")}@font-face{font-display:swap;font-family:Roboto Bold;font-style:normal;font-weight:700;src:url(../fonts/roboto-v20-latin-ext-700.eot);src:local(\"Roboto Bold\"),local(\"Roboto-Bold\"),url(../fonts/roboto-v20-latin-ext-700.eot?#iefix) format(\"embedded-opentype\"),url(../fonts/roboto-v20-latin-ext-700.woff2) format(\"woff2\"),url(../fonts/roboto-v20-latin-ext-700.woff) format(\"woff\"),url(../fonts/roboto-v20-latin-ext-700.ttf) format(\"truetype\"),url(../fonts/roboto-v20-latin-ext-700.svg#Roboto) format(\"svg\")}@font-face{font-display:swap;font-family:Roboto Condensed Bold;font-style:normal;font-weight:700;src:url(../fonts/roboto-condensed-v18-latin-ext-700.eot);src:local(\"Roboto Condensed Bold\"),local(\"RobotoCondensed-Bold\"),url(../fonts/roboto-condensed-v18-latin-ext-700.eot?#iefix) format(\"embedded-opentype\"),url(../fonts/roboto-condensed-v18-latin-ext-700.woff2) format(\"woff2\"),url(../fonts/roboto-condensed-v18-latin-ext-700.woff) format(\"woff\"),url(../fonts/roboto-condensed-v18-latin-ext-700.ttf) format(\"truetype\"),url(../fonts/roboto-condensed-v18-latin-ext-700.svg#RobotoCondensed) format(\"svg\")}\n/*! @design/bapf-pattern-library v3.6.0 | 11.04.2024 | _icons.scss */ /*! @design/bapf-pattern-library v3.6.0 | 11.04.2024 | _icon_font_ba_icons.scss */.alert:after,.alert:before,.ba-header nav.ba-nav-meta ul>li>a:after,.ba-header nav.ba-nav-meta ul>li>a:before,.ba-header-element .ba-menu-entry:after,.ba-header-element .ba-menu-entry:before,.ba-icon:after,.ba-icon:before,.ba-link-down:after,.ba-link-down:before,.ba-link-up:after,.ba-link-up:before,a.ba-icon:after,a.ba-icon:before{speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;display:inline-block;font-family:BA Icons,sans-serif;font-style:normal;font-weight:400;line-height:1;text-decoration:none;text-rendering:auto;text-transform:none;vertical-align:middle}@media speech{.alert:after,.alert:before,.ba-header nav.ba-nav-meta ul>li>a:after,.ba-header nav.ba-nav-meta ul>li>a:before,.ba-header-element .ba-menu-entry:after,.ba-header-element .ba-menu-entry:before,.ba-icon:after,.ba-icon:before,.ba-link-down:after,.ba-link-down:before,.ba-link-up:after,.ba-link-up:before,a.ba-icon:after,a.ba-icon:before{display:none}}.ba-header .ba-link-language:before{content:\"\\f139\";content:\"\\f139\"/\"\"}.alert-info:after{content:\"\\f143\";content:\"\\f143\"/\"\"}.ba-icon-message:before{content:\"\\f152\";content:\"\\f152\"/\"\"}.ba-header .ba-link-language:after,.ba-link-down:after{content:\"\\f16a\";content:\"\\f16a\"/\"\"}.ba-link-up:after{content:\"\\f16b\";content:\"\\f16b\"/\"\"}.ba-header .ba-link-sign-language:before{content:\"\\f16d\";content:\"\\f16d\"/\"\"}.ba-header .ba-link-simple-language:before{content:\"\\f16e\";content:\"\\f16e\"/\"\"}.ba-icon-unvisible:before{content:\"\\f17b\";content:\"\\f17b\"/\"\"}.ba-header-element .ba-messages:before{content:\"\\f1a6\";content:\"\\f1a6\"/\"\"}.alert-warning:after{content:\"\\f1ad\";content:\"\\f1ad\"/\"\"}.ba-icon-trust-low-after:after,.ba-icon-trust-low-before:before,.ba-icon-trust-low:before{content:\"\\f1d1\";content:\"\\f1d1\"/\"\"}.ba-icon-trust-medium-after:after,.ba-icon-trust-medium-before:before,.ba-icon-trust-medium:before{content:\"\\f1d2\";content:\"\\f1d2\"/\"\"}.ba-icon-trust-high-after:after,.ba-icon-trust-high-before:before,.ba-icon-trust-high:before{content:\"\\f1d3\";content:\"\\f1d3\"/\"\"}.ba-icon-trust-high-eu-after:after,.ba-icon-trust-high-eu-before:before,.ba-icon-trust-high-eu:before{content:\"\\f1d4\";content:\"\\f1d4\"/\"\"}\n\n/*! @design/bapf-pattern-library v3.6.0 | 11.04.2024 | _page.scss */:root{--ba-mobile-scroll-padding-top:58px;--ba-desktop-scroll-padding-top:96px}body{font-family:Roboto,Helvetica Neue,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;min-height:100%}@media (width <= 767px) and (orientation:portrait),(width <= 991px) and (orientation:landscape){body{margin-top:53px}}body:not(.ba-keyboard-mode) :focus{outline:none}@media (-ms-high-contrast:active),(forced-colors:active),(prefers-contrast:more){body:not(.ba-keyboard-mode) :focus{outline:auto}}body.ba-keyboard-mode :focus{box-shadow:1px 1px 0 1px #f9fbfc,1px -1px 0 1px #f9fbfc,-1px 1px 0 1px #f9fbfc,-1px -1px 0 1px #f9fbfc,0 0 0 2px #f9fbfc,0 0 0 4px #020e25;outline:2px solid transparent}.sr-only{clip:rect(0,0,0,0)!important;border:0!important;height:1px!important;margin:-1px!important;overflow:hidden!important;padding:0!important;white-space:nowrap!important;width:1px!important}.sr-only:not(caption){position:absolute!important}hr{border-bottom:1px solid rgba(2,14,37,.16);border-top:0;height:0;opacity:1}.disabled{cursor:not-allowed;opacity:.33}.disabled:hover{color:inherit;text-decoration:none}.disabled [disabled]{opacity:1}@media (-ms-high-contrast:active),(forced-colors:active),(prefers-contrast:more){[role=button]{color:ButtonText!important}}.ba-unhide-for-measure{display:block!important;visibility:hidden!important}\n\n/*! @design/bapf-pattern-library v3.6.0 | 11.04.2024 | _type.scss */.h1,.h2,h1,h2{font-family:Roboto Condensed Bold,Helvetica Neue,Arial,sans-serif;line-height:1.2;margin-bottom:1rem;margin-left:0;margin-right:0}.h1,h1{font-size:2.313125rem}.h2,h2{font-size:2.01125rem;margin-top:3.75rem}@media (min-width:768px){.h2,h2{margin-top:6rem}}:not(.container-fluid)>.h1:first-child,:not(.container-fluid)>.h2:first-child,:not(.container-fluid)>h1:first-child,:not(.container-fluid)>h2:first-child{margin-top:0}strong{font-family:Roboto Bold,Helvetica Neue,Arial,sans-serif;font-weight:400}\n\n/*! @design/bapf-pattern-library v3.6.0 | 11.04.2024 | globals.scss */ /*! @design/bapf-pattern-library v3.6.0 | 11.04.2024 | _bootstrap.scss */\n/*!\n * Bootstrap v5.3.3 (https://getbootstrap.com/)\n * Copyright 2011-2021 The Bootstrap Authors\n * Copyright 2011-2021 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */:root{--bs-blue:#0d6efd;--bs-indigo:#6610f2;--bs-purple:#6f42c1;--bs-pink:#d63384;--bs-red:#dc3545;--bs-orange:#fd7e14;--bs-yellow:#ffc107;--bs-green:#198754;--bs-teal:#20c997;--bs-cyan:#0dcaf0;--bs-black:#000;--bs-white:#fff;--bs-gray:#6c757d;--bs-gray-dark:#343a40;--bs-gray-100:#f8f9fa;--bs-gray-200:#e9ecef;--bs-gray-300:#dee2e6;--bs-gray-400:#ced4da;--bs-gray-500:#adb5bd;--bs-gray-600:#6c757d;--bs-gray-700:#495057;--bs-gray-800:#343a40;--bs-gray-900:#212529;--bs-primary:#0d6efd;--bs-secondary:#6c757d;--bs-success:#198754;--bs-info:#0dcaf0;--bs-warning:#ffc107;--bs-danger:#dc3545;--bs-light:#f8f9fa;--bs-dark:#212529;--bs-primary-rgb:13,110,253;--bs-secondary-rgb:108,117,125;--bs-success-rgb:25,135,84;--bs-info-rgb:13,202,240;--bs-warning-rgb:255,193,7;--bs-danger-rgb:220,53,69;--bs-light-rgb:248,249,250;--bs-dark-rgb:33,37,41;--bs-primary-text-emphasis:#052c65;--bs-secondary-text-emphasis:#2b2f32;--bs-success-text-emphasis:#0a3622;--bs-info-text-emphasis:#055160;--bs-warning-text-emphasis:#664d03;--bs-danger-text-emphasis:#58151c;--bs-light-text-emphasis:#495057;--bs-dark-text-emphasis:#495057;--bs-primary-bg-subtle:#cfe2ff;--bs-secondary-bg-subtle:#e2e3e5;--bs-success-bg-subtle:#d1e7dd;--bs-info-bg-subtle:#cff4fc;--bs-warning-bg-subtle:#fff3cd;--bs-danger-bg-subtle:#f8d7da;--bs-light-bg-subtle:#fcfcfd;--bs-dark-bg-subtle:#ced4da;--bs-primary-border-subtle:#9ec5fe;--bs-secondary-border-subtle:#c4c8cb;--bs-success-border-subtle:#a3cfbb;--bs-info-border-subtle:#9eeaf9;--bs-warning-border-subtle:#ffe69c;--bs-danger-border-subtle:#f1aeb5;--bs-light-border-subtle:#e9ecef;--bs-dark-border-subtle:#adb5bd;--bs-white-rgb:255,255,255;--bs-black-rgb:0,0,0;--bs-font-sans-serif:Roboto,\"Helvetica Neue\",Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\";--bs-font-monospace:SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace;--bs-gradient:linear-gradient(180deg,hsla(0,0%,100%,.15),hsla(0,0%,100%,0));--bs-body-font-family:var(--bs-font-sans-serif);--bs-body-font-size:1rem;--bs-body-font-weight:400;--bs-body-line-height:1.5;--bs-body-color:#020e25;--bs-body-color-rgb:2,14,37;--bs-body-bg:#f9fbfc;--bs-body-bg-rgb:249,251,252;--bs-emphasis-color:#000;--bs-emphasis-color-rgb:0,0,0;--bs-secondary-color:rgba(33,37,41,.75);--bs-secondary-color-rgb:33,37,41;--bs-secondary-bg:#e9ecef;--bs-secondary-bg-rgb:233,236,239;--bs-tertiary-color:rgba(33,37,41,.5);--bs-tertiary-color-rgb:33,37,41;--bs-tertiary-bg:#f8f9fa;--bs-tertiary-bg-rgb:248,249,250;--bs-heading-color:inherit;--bs-link-color:#0d6efd;--bs-link-color-rgb:13,110,253;--bs-link-decoration:none;--bs-link-hover-color:#0a58ca;--bs-link-hover-color-rgb:10,88,202;--bs-code-color:#d42c80;--bs-highlight-color:#212529;--bs-highlight-bg:#fff3cd;--bs-border-width:1px;--bs-border-style:solid;--bs-border-color:#dee2e6;--bs-border-color-translucent:rgba(0,0,0,.175);--bs-border-radius:5px;--bs-border-radius-sm:0.25rem;--bs-border-radius-lg:0.5rem;--bs-border-radius-xl:1rem;--bs-border-radius-xxl:2rem;--bs-border-radius-2xl:var(--bs-border-radius-xxl);--bs-border-radius-pill:50rem;--bs-box-shadow:0 5px 7px 0 rgba(0,0,0,.2),0 4px 24px 0 rgba(0,0,0,.08);--bs-box-shadow-sm:0 2px 4px 0 rgba(0,0,0,.16),0 4px 24px 0 rgba(0,0,0,.08);--bs-box-shadow-lg:0 12px 10px -2px rgba(0,0,0,.08),0 12px 24px 4px rgba(0,0,0,.08);--bs-box-shadow-inset:inset 0 1px 2px rgba(0,0,0,.075);--bs-focus-ring-width:0.25rem;--bs-focus-ring-opacity:0.25;--bs-focus-ring-color:rgba(13,110,253,.25);--bs-form-valid-color:#198754;--bs-form-valid-border-color:#198754;--bs-form-invalid-color:#dc3545;--bs-form-invalid-border-color:#dc3545}*,:after,:before{box-sizing:border-box}@media (prefers-reduced-motion:no-preference){:root{scroll-behavior:smooth}}body{-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0);background-color:var(--bs-body-bg);color:var(--bs-body-color);font-family:var(--bs-body-font-family);font-size:var(--bs-body-font-size);font-weight:var(--bs-body-font-weight);line-height:var(--bs-body-line-height);margin:0;text-align:var(--bs-body-text-align)}hr{border:0;border-top:var(--bs-border-width) solid;color:inherit;margin:1.5rem 0;opacity:.25}h1,h2{color:var(--bs-heading-color);font-weight:700;line-height:1.2;margin-bottom:.75rem;margin-top:0}h1{font-size:calc(1.375rem + 1.5vw)}@media (min-width:1200px){h1{font-size:2.5rem}}h2{font-size:calc(1.325rem + .9vw)}@media (min-width:1200px){h2{font-size:2rem}}p{margin-bottom:1rem;margin-top:0}strong{font-weight:bolder}a{color:rgba(var(--bs-link-color-rgb),var(--bs-link-opacity,1));text-decoration:none}a:hover{--bs-link-color-rgb:var(--bs-link-hover-color-rgb)}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code{word-wrap:break-word;color:var(--bs-code-color);font-family:var(--bs-font-monospace);font-size:1em;font-size:.8125rem}a>code{color:inherit}svg{vertical-align:middle}button{border-radius:0}button:focus:not(:focus-visible){outline:0}button{font-family:inherit;font-size:inherit;line-height:inherit;margin:0;text-transform:none}[role=button]{cursor:pointer}[type=button],button{-webkit-appearance:button}[type=button]:not(:disabled),button:not(:disabled){cursor:pointer}::-moz-focus-inner{border-style:none;padding:0}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-text,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::file-selector-button{-webkit-appearance:button;font:inherit}[hidden]{display:none!important}:root{--bs-breakpoint-xs:0;--bs-breakpoint-sm:576px;--bs-breakpoint-md:768px;--bs-breakpoint-lg:992px;--bs-breakpoint-xl:1280px;--bs-breakpoint-xxl:1400px}.row{--bs-gutter-x:24px;--bs-gutter-y:0;display:flex;flex-wrap:wrap;margin-left:calc(var(--bs-gutter-x)*-.5);margin-right:calc(var(--bs-gutter-x)*-.5);margin-top:calc(var(--bs-gutter-y)*-1)}.row>*{flex-shrink:0;margin-top:var(--bs-gutter-y);max-width:100%;padding-left:calc(var(--bs-gutter-x)*.5);padding-right:calc(var(--bs-gutter-x)*.5);width:100%}.col-4{flex:0 0 auto;width:33.33333333%}.table-active{--bs-table-color-state:var(--bs-table-active-color);--bs-table-bg-state:var(--bs-table-active-bg)}.fade{transition:opacity .08s ease-in-out}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{height:0;overflow:hidden;transition:height .24s ease-in-out}.nav{--bs-nav-link-padding-x:1rem;--bs-nav-link-padding-y:0.5rem;--bs-nav-link-font-weight: ;--bs-nav-link-color:var(--bs-link-color);--bs-nav-link-hover-color:var(--bs-link-hover-color);--bs-nav-link-disabled-color:var(--bs-secondary-color);display:flex;flex-wrap:wrap;list-style:none;margin-bottom:0;padding-left:0}.modal{--bs-modal-zindex:1055;--bs-modal-width:770px;--bs-modal-padding:1.5rem;--bs-modal-margin:0px;--bs-modal-color: ;--bs-modal-bg:var(--bs-body-bg);--bs-modal-border-color:var(--bs-border-color-translucent);--bs-modal-border-width:var(--bs-border-width);--bs-modal-border-radius:var(--bs-border-radius-lg);--bs-modal-box-shadow:var(--bs-box-shadow-sm);--bs-modal-inner-border-radius:calc(var(--bs-border-radius-lg) - var(--bs-border-width));--bs-modal-header-padding-x:1.5rem;--bs-modal-header-padding-y:1.5rem;--bs-modal-header-padding:1.5rem;--bs-modal-header-border-color:transparent;--bs-modal-header-border-width:0;--bs-modal-title-line-height:1.5;--bs-modal-footer-gap:0px;--bs-modal-footer-bg: ;--bs-modal-footer-border-color:transparent;--bs-modal-footer-border-width:0;display:none;height:100%;left:0;outline:0;overflow-x:hidden;overflow-y:auto;position:fixed;top:0;width:100%;z-index:var(--bs-modal-zindex)}.modal-dialog{margin:var(--bs-modal-margin);pointer-events:none;position:relative;width:auto}.modal.fade .modal-dialog{transform:translateY(-50px);transition:transform .3s ease-out}.modal.show .modal-dialog{transform:none}.modal.modal-static .modal-dialog{transform:scale(1.02)}.modal-dialog-centered{align-items:center;display:flex;min-height:calc(100% - var(--bs-modal-margin)*2)}.modal-content{background-clip:padding-box;background-color:var(--bs-modal-bg);border:var(--bs-modal-border-width) solid var(--bs-modal-border-color);border-radius:var(--bs-modal-border-radius);color:var(--bs-modal-color);display:flex;flex-direction:column;outline:0;pointer-events:auto;position:relative;width:100%}.modal-header{align-items:center;border-bottom:var(--bs-modal-header-border-width) solid var(--bs-modal-header-border-color);border-top-left-radius:var(--bs-modal-inner-border-radius);border-top-right-radius:var(--bs-modal-inner-border-radius);display:flex;flex-shrink:0;padding:var(--bs-modal-header-padding)}.modal-title{line-height:var(--bs-modal-title-line-height);margin-bottom:0}.modal-body{flex:1 1 auto;padding:var(--bs-modal-padding);position:relative}.modal-footer{align-items:center;background-color:var(--bs-modal-footer-bg);border-bottom-left-radius:var(--bs-modal-inner-border-radius);border-bottom-right-radius:var(--bs-modal-inner-border-radius);border-top:var(--bs-modal-footer-border-width) solid var(--bs-modal-footer-border-color);display:flex;flex-shrink:0;flex-wrap:wrap;justify-content:flex-end;padding:calc(var(--bs-modal-padding) - var(--bs-modal-footer-gap)*.5)}.modal-footer>*{margin:calc(var(--bs-modal-footer-gap)*.5)}@media (min-width:576px){.modal{--bs-modal-margin:1.75rem;--bs-modal-box-shadow:var(--bs-box-shadow)}.modal-dialog{margin-left:auto;margin-right:auto;max-width:var(--bs-modal-width)}}.overflow-visible{overflow:visible!important}.overflow-x-visible{overflow-x:visible!important}.overflow-y-visible{overflow-y:visible!important}.d-inline{display:inline!important}.d-block{display:block!important}.d-flex{display:flex!important}.shadow{box-shadow:var(--bs-box-shadow)!important}.flex-column{flex-direction:column!important}.justify-content-center{justify-content:center!important}.align-items-center{align-items:center!important}.mt-3{margin-top:1.5rem!important}.mb-0{margin-bottom:0!important}.mb-2{margin-bottom:.75rem!important}.mb-3{margin-bottom:1.5rem!important}.ms-1{margin-left:.375rem!important}.py-0{padding-bottom:0!important;padding-top:0!important}.pt-1{padding-top:.375rem!important}.pe-0{padding-right:0!important}.fs-2{font-size:calc(1.325rem + .9vw)!important}.link-opacity-10-hover:hover{--bs-link-opacity:0.1}.link-opacity-25-hover:hover{--bs-link-opacity:0.25}.link-opacity-50-hover:hover{--bs-link-opacity:0.5}.link-opacity-75-hover:hover{--bs-link-opacity:0.75}.link-opacity-100-hover:hover{--bs-link-opacity:1}.link-offset-1-hover:hover{text-underline-offset:.125em!important}.link-offset-2-hover:hover{text-underline-offset:.25em!important}.link-offset-3-hover:hover{text-underline-offset:.375em!important}.link-underline-opacity-0-hover:hover{--bs-link-underline-opacity:0}.link-underline-opacity-10-hover:hover{--bs-link-underline-opacity:0.1}.link-underline-opacity-25-hover:hover{--bs-link-underline-opacity:0.25}.link-underline-opacity-50-hover:hover{--bs-link-underline-opacity:0.5}.link-underline-opacity-75-hover:hover{--bs-link-underline-opacity:0.75}.link-underline-opacity-100-hover:hover{--bs-link-underline-opacity:1}.rounded{border-radius:var(--bs-border-radius)!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media (min-width:1200px){.fs-2{font-size:2rem!important}}\n/*! @design/bapf-pattern-library v3.6.0 | 11.04.2024 | _badge.scss */.ba-badge{background-image:linear-gradient(135deg,#ff0023,#b30920);border-radius:10px;color:#fff;display:block;font-family:Roboto Bold,Helvetica Neue,Arial,sans-serif;font-size:13px;height:19px;line-height:19px;min-width:19px;outline:1px solid transparent;padding:0 6px;text-align:center}.ba-badge .sr-only:before,.ba-badge:before{content:\" \";font-size:0}@media (-ms-high-contrast:active),(forced-colors:active),(prefers-contrast:more){.ba-badge{background:Buttonface}}\n\n/*! @design/bapf-pattern-library v3.6.0 | 11.04.2024 | _link.scss */a{font-size:1rem;line-height:1.5rem}a:focus,a:hover{text-decoration:underline}a,a:focus,a:hover,a:visited{color:#3f4859}a:active{color:#020e25}a.ba-icon{display:inline-block;padding-left:1.5rem;position:relative}a.ba-icon:before{font-size:1rem;left:0;position:absolute;top:.25rem}a.ba-icon.ba-link-down,a.ba-icon.ba-link-dropdown,a.ba-icon.ba-link-right,a.ba-icon.ba-link-up,a.ba-icon[class*=-after]{padding-left:0;padding-right:1.5rem}a.ba-icon.ba-link-down:before,a.ba-icon.ba-link-dropdown:before,a.ba-icon.ba-link-right:before,a.ba-icon.ba-link-up:before,a.ba-icon[class*=-after]:before{content:none}a.ba-icon.ba-link-down:after,a.ba-icon.ba-link-dropdown:after,a.ba-icon.ba-link-right:after,a.ba-icon.ba-link-up:after,a.ba-icon[class*=-after]:after{font-size:1rem;position:absolute;right:0;top:.25rem}a.ba-textlink{text-decoration:underline}.ba-link-up{display:inline-block;padding-left:1.5rem;position:relative}.ba-link-up:before{font-size:1rem;left:0;position:absolute;top:.25rem}.ba-link-up.ba-link-down,.ba-link-up.ba-link-up{padding-left:0;padding-right:1.5rem}.ba-link-up.ba-link-down:before,.ba-link-up.ba-link-up:before{content:none}.ba-link-up.ba-link-down:after,.ba-link-up.ba-link-up:after{font-size:1rem;position:absolute;right:0;top:.25rem}.ba-link-down{display:inline-block;padding-left:1.5rem;position:relative}.ba-link-down:before{font-size:1rem;left:0;position:absolute;top:.25rem}.ba-link-down.ba-link-down,.ba-link-down.ba-link-up{padding-left:0;padding-right:1.5rem}.ba-link-down.ba-link-down:before,.ba-link-down.ba-link-up:before{content:none}.ba-link-down.ba-link-down:after,.ba-link-down.ba-link-up:after{font-size:1rem;position:absolute;right:0;top:.25rem}\n\n/*! @design/bapf-pattern-library v3.6.0 | 11.04.2024 | _tabbar.scss */\n\n/*! @design/bapf-pattern-library v3.6.0 | 11.04.2024 | _header.scss */.ba-header{background-color:#f9fbfc;left:0;outline:1px solid transparent;transition:top .24s;width:100%;z-index:1000}@media (width <= 767px) and (orientation:portrait),(width <= 991px) and (orientation:landscape){.ba-header{position:fixed;top:0}.ba-header.ba-hidden{top:-53px}.ba-header.ba-hidden .ba-nav-main{box-shadow:none}}@media (width >= 768px) and (orientation:portrait),(width >= 992px) and (orientation:landscape){.ba-header{padding-top:16px;position:relative}@supports (position:sticky){.ba-header{position:sticky;top:-32px}}.ba-header.ba-hidden .ba-nav-meta ul{opacity:0}.ba-header.ba-hidden .ba-nav-meta:after{left:0}}.ba-header.ba-at-subheader:after{background:rgba(2,14,37,.16);bottom:0;content:\"\";display:block;height:1px;position:absolute;width:100%}.ba-header.ba-at-subheader .ba-nav-main{box-shadow:none}.ba-header .ba-logo{position:absolute;top:13px;width:auto;z-index:1}@supports (forced-color-adjust:none){@media (forced-colors:active){.ba-header .ba-logo{background:#fff!important;forced-color-adjust:none}}}@supports not (forced-color-adjust:none){@media (forced-colors:active) and (prefers-color-scheme:dark){.ba-header .ba-logo{background:ButtonText!important}}@media (forced-colors:active) and (prefers-color-scheme:light){.ba-header .ba-logo{background:Canvas!important}}}@supports (-moz-appearance:none){@media (forced-colors:active){.ba-header .ba-logo{background:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg'%3E%3Cpath style='fill:%23fff' d='M0 0h10000v10000H0z'/%3E%3C/svg%3E\")!important}}}@media (width >= 768px) and (orientation:portrait),(width >= 992px) and (orientation:landscape){.ba-header .ba-logo{top:48px;transition:top .24s}}.ba-header .ba-logo a{border-radius:5px;display:block;height:36px;overflow:hidden;width:215px;z-index:1}.ba-header .ba-logo a img{height:100%;width:216px}@media (width >= 768px) and (orientation:portrait),(width >= 992px) and (orientation:landscape){.ba-header .ba-logo a{height:43px;width:260px}.ba-header .ba-logo a img{height:100%;width:258.3px}}.ba-header nav.ba-nav-main ul.container-fluid,.ba-header nav.ba-nav-meta ul.container-fluid{display:flex;justify-content:flex-end;list-style:none;margin-bottom:0}.ba-header nav.ba-nav-meta{display:none}@media (width >= 768px) and (orientation:portrait),(width >= 992px) and (orientation:landscape){.ba-header nav.ba-nav-meta{display:block;height:20px;line-height:20px;position:relative;transition:height .24s}.ba-header nav.ba-nav-meta:after{background:#e70000 linear-gradient(90deg,#e70000 0,#b30920);border-top-left-radius:20px;bottom:0;content:\"\";left:24px;position:absolute;right:0;top:0;transition:left .24s;z-index:-1}}.ba-header nav.ba-nav-meta ul>li{margin-left:24px}.ba-header nav.ba-nav-meta ul>li>a{color:#fff;font-family:Roboto Bold,Helvetica Neue,Arial,sans-serif;font-size:15px;line-height:20px}.ba-header nav.ba-nav-meta ul>li>a:before{font-size:13px;margin:-2px 8px 0 0;text-decoration:none}.ba-header nav.ba-nav-meta ul>li>a:after{font-size:13px;margin:-2px 0 0 8px;text-decoration:none}.ba-header nav.ba-nav-meta .dropdown-menu{z-index:1002}.ba-header nav.ba-nav-main{background-color:#fff;border-top:3px solid #e70000;box-shadow:0 12px 10px -2px rgba(0,0,0,.08),0 12px 24px 4px rgba(0,0,0,.08)}@media (width >= 768px) and (orientation:portrait),(width >= 992px) and (orientation:landscape){.ba-header nav.ba-nav-main{border-top:0}}.ba-header nav.ba-nav-main .container-fluid{position:relative}.ba-header .ba-link-language:after{transition:transform .24s}.ba-header .ba-link-language[aria-expanded=true]:after{transform:rotateX(180deg)}@media (width <= 767px) and (orientation:portrait),(width <= 991px) and (orientation:landscape){.ba-header-element .ba-flyout{max-height:calc(100vh - 63px);overflow:auto}.ba-header-element.ba-hidden .ba-flyout{max-height:calc(100vh - 10px)}}.ba-header-element .ba-menu-entry{border:0;border-radius:5px;color:#000;display:block;font-family:Roboto Bold,Helvetica Neue,Arial,sans-serif;font-size:16px;height:40px;line-height:40px;margin:5px 0;outline:1px solid transparent;padding:0 12px;position:relative;transition:background-color .08s;width:44px}@media (width >= 768px) and (orientation:portrait),(width >= 992px) and (orientation:landscape){.ba-header-element .ba-menu-entry{font-size:18px;height:48px;line-height:48px;margin:12px 0;padding:0 16px;width:53px}}.ba-header-element .ba-menu-entry:focus{outline:3px solid transparent}.ba-header-element .ba-menu-entry:hover{background-color:rgba(2,14,37,.08);text-decoration:none}.ba-keyboard-mode:focus{background-color:rgba(2,14,37,.08)}.ba-header-element .ba-menu-entry:before{font-size:22px;left:11px;position:absolute;top:9px}@media (width >= 768px) and (orientation:portrait),(width >= 992px) and (orientation:landscape){.ba-header-element .ba-menu-entry:before{left:15px;top:13px}}.ba-header-element .ba-menu-entry .ba-badge{left:50%;position:absolute;top:0}.ba-header-element .ba-messages,.ba-header-element .ba-timer,.ba-header-element .ba-trust{background-color:rgba(2,14,37,.08);transition:background-color .08s}.ba-header-element .ba-messages:after,.ba-header-element .ba-timer:after,.ba-header-element .ba-trust:after{border:4px solid #fff;clip-path:polygon(50% 0,0 100%,100% 100%);content:\"\";height:0;opacity:1;position:absolute;right:50%;top:47px;transform:translateX(50%);transition:all .08s;width:24px;z-index:1001}@media (width >= 768px) and (orientation:portrait),(width >= 992px) and (orientation:landscape){.ba-header-element .ba-messages:after,.ba-header-element .ba-timer:after,.ba-header-element .ba-trust:after{top:62px}}.ba-header-element .ba-messages.collapsed,.ba-header-element .ba-timer.collapsed,.ba-header-element .ba-trust.collapsed{background-color:transparent}.ba-header-element .ba-messages.collapsed:hover,.ba-header-element .ba-timer.collapsed:hover,.ba-header-element .ba-trust.collapsed:hover,.ba-keyboard-mode .ba-header-element .ba-messages.collapsed:focus,.ba-keyboard-mode .ba-header-element .ba-timer.collapsed:focus,.ba-keyboard-mode .ba-header-element .ba-trust.collapsed:focus{background-color:rgba(2,14,37,.08)}.ba-header-element .ba-messages.collapsed:after,.ba-header-element .ba-timer.collapsed:after,.ba-header-element .ba-trust.collapsed:after{display:none}.ba-header-element .ba-flyout-container{left:0;max-width:1280px;position:absolute;width:100%;z-index:1001}@media (min-width:768px){.ba-header-element .ba-flyout-container.ba-flyout-timer,.ba-header-element .ba-flyout-container.ba-flyout-trust{left:auto;margin-left:-175px;transform:translateX(26.5px);width:350px}}@media (min-width:890px){.ba-header-element .ba-flyout-container.ba-flyout-timer{transform:translateX(63px)}}.ba-header-element .ba-flyout-collapse{box-shadow:0 12px 10px -2px rgba(0,0,0,.08),0 12px 24px 4px rgba(0,0,0,.08);padding:0;position:absolute;width:100%}.ba-header-element .ba-flyout{background-color:#fff;line-height:24px;margin-top:10px;outline:1px solid transparent;overflow:auto;padding:24px 12px;position:relative}@media (min-width:768px){.ba-header-element .ba-flyout{padding:24px}}.ba-header-element .ba-flyout h2{margin-bottom:0}.ba-header-element .ba-flyout hr{margin:5px 0}.ba-header-element .ba-menu-container a:not(.ba-textlink){border-radius:5px;color:#020e25;display:block;line-height:24px;padding:6px 16px 5px;position:relative;transition:background-color .08s ease-in}.ba-header-element .ba-menu-container a:not(.ba-textlink):focus,.ba-header-element .ba-menu-container a:not(.ba-textlink):hover{background-color:rgba(2,14,37,.08);text-decoration:none;transition:background-color .08s ease-out}.ba-header-element .ba-menu-container a:not(.ba-textlink):active{background-color:rgba(2,14,37,.16)}\n\n/*! @design/bapf-pattern-library v3.6.0 | 11.04.2024 | _loading.scss */\n\n/*! @design/bapf-pattern-library v3.6.0 | 11.04.2024 | _button.scss */.ba-btn,button{color:#020e25}.ba-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:rgba(2,14,37,.08);border:none;border-radius:5px;display:inline-block;font-family:Roboto Bold,Helvetica Neue,Arial,sans-serif;font-size:1rem;-webkit-hyphens:auto;hyphens:auto;line-height:1.4375rem;outline:1px solid transparent;padding:.375rem 1rem;position:relative;text-align:center;text-decoration:none;transition:box-shadow .08s;word-break:break-word}@media (max-width:575.98px){.ba-btn{width:100%}.ba-btn+.ba-btn{margin-top:12px}}@media (min-width:576px){.ba-btn:not(.ba-btn-block)+.ba-btn:not(.ba-btn-block){margin-left:8px}.ba-btn:not([class*=-after]):not(.ba-btn-next):not(.ba-btn-right):not(.dropdown-toggle):not(.ba-btn-block):not(:disabled):not(.ba-loading):after{background:transparent linear-gradient(180deg,transparent,transparent 2px,#b30920) no-repeat top;background-size:50% 20px;border-radius:1px;content:\"\";display:block;height:2px;transition:background-size .08s ease-in-out,background-position .08s ease-in-out}.ba-btn:not([class*=-after]):not(.ba-btn-next):not(.ba-btn-right):not(.dropdown-toggle):not(.ba-btn-block):not(:disabled):not(.ba-loading):not(.active):focus-within:after,.ba-btn:not([class*=-after]):not(.ba-btn-next):not(.ba-btn-right):not(.dropdown-toggle):not(.ba-btn-block):not(:disabled):not(.ba-loading):not(.active):focus:after,.ba-btn:not([class*=-after]):not(.ba-btn-next):not(.ba-btn-right):not(.dropdown-toggle):not(.ba-btn-block):not(:disabled):not(.ba-loading):not(.active):hover:after{background-position:bottom;background-size:100% 20px;outline:1px solid transparent;outline-offset:-1px}.ba-btn:not([class*=-after]):not(.ba-btn-next):not(.ba-btn-right):not(.dropdown-toggle):not(.ba-btn-block):not(:disabled):not(.ba-loading):after{bottom:4px;left:16px;position:absolute;right:16px}}.ba-keyboard-mode .ba-btn:focus,.ba-keyboard-mode .ba-btn:focus-within{box-shadow:1px 1px 0 1px #f9fbfc,1px -1px 0 1px #f9fbfc,-1px 1px 0 1px #f9fbfc,-1px -1px 0 1px #f9fbfc,0 0 0 2px #f9fbfc,0 0 0 4px #020e25;outline:2px solid transparent}.ba-btn:disabled,.ba-btn[disabled],[disabled] .ba-btn{cursor:not-allowed;opacity:.25}.ba-btn:disabled .ba-badge,.ba-btn[disabled] .ba-badge,[disabled] .ba-btn .ba-badge{display:none}.ba-btn:visited{color:#020e25}.ba-btn.hover,.ba-btn:focus-within:not(:disabled),.ba-btn:focus:not(:disabled),.ba-btn:hover:not(:disabled){background-color:rgba(2,14,37,.12);color:#020e25;text-decoration:none}.ba-btn:active:not(:disabled){background-color:rgba(2,14,37,.16);color:#020e25;text-decoration:none}@media (min-width:576px){.ba-btn:not([class*=-after]):not(.ba-btn-next):not(.ba-btn-right):not(.dropdown-toggle):not(.ba-btn-block):not(:disabled):not(.ba-loading):after{background-image:linear-gradient(180deg,transparent,transparent 2px,#020e25)}}.ba-btn-primary{background-color:#b30920;color:#fff;text-decoration:none}.ba-btn-primary:visited{color:#fff}.ba-btn-primary.hover,.ba-btn-primary:focus-within:not(:disabled),.ba-btn-primary:focus:not(:disabled),.ba-btn-primary:hover:not(:disabled){background-color:#8c0418;color:#fff;text-decoration:none}.ba-btn-primary:active:not(:disabled){background-color:#601;color:#fff;text-decoration:none}@media (min-width:576px){.ba-btn-primary:not([class*=-after]):not(.ba-btn-next):not(.ba-btn-right):not(.dropdown-toggle):not(.ba-btn-block):not(:disabled):not(.ba-loading):after{background-image:linear-gradient(180deg,transparent,transparent 2px,#fff)}}.ba-btn-primary .ba-badge{outline-color:#fff}.ba-btn .ba-badge{position:absolute;right:-.5rem;top:-.5rem}\n\n/*! @design/bapf-pattern-library v3.6.0 | 11.04.2024 | _form.scss */button{letter-spacing:inherit}\n\n/*! @design/bapf-pattern-library v3.6.0 | 11.04.2024 | _dropdown.scss */\n\n/*! @design/bapf-pattern-library v3.6.0 | 11.04.2024 | _collapsible.scss */\n\n/*! @design/bapf-pattern-library v3.6.0 | 11.04.2024 | _alert.scss */.alert{background-color:rgba(2,14,37,.04);border-radius:5px;clear:both;color:#020e25;display:block;margin-bottom:1.5rem;outline:1px solid transparent;padding:12px 24px;position:relative}.alert:after{background:radial-gradient(circle,#fff 0,#fff 10px,transparent 11px);border-radius:50%;font-size:24px;height:24px;left:-9px;line-height:24px;opacity:1;position:absolute;text-align:center;top:12px;transition:all .08s;width:24px}.alert .ba-heading{display:block;font-family:Roboto Condensed Bold,Helvetica Neue,Arial,sans-serif;font-size:1rem;line-height:1.5;margin:0 0 12px}.alert>:last-child:not(.ba-heading){margin-bottom:0}.collapsing .alert:after{left:0;opacity:0}.alert{border:1px solid #b3b3b3}.alert a{text-decoration:underline}.alert-info{background-color:rgba(217,225,237,.9);border-color:#305c73}.alert-info:after{color:#305c73}.alert-warning{background-color:hsla(57,83%,86%,.9);border-color:#5c5300}.alert-warning:after{background:radial-gradient(circle,#020e25 0,#020e25 8px,transparent 9px);color:#ffe900}.session-svg{height:100%;width:100%}.session-svg .svg{height:-moz-fit-content;height:fit-content;width:-moz-fit-content;width:fit-content}.session-svg .circle,.session-svg path{transform:translate(1px,1px)}.session-svg path{fill:#fff;height:-moz-fit-content;height:fit-content;width:-moz-fit-content;width:fit-content}.ba-header-element .ba-timer:before{content:\"\"!important}.timer-description{font-size:small;white-space:pre}.timer-text{font-family:Roboto Condensed Bold,Helvetica Neue,Arial,sans-serif}h2{font-size:calc(1.275rem + .3vw)}@media (min-width:1200px){h2{font-size:1.5rem}}","import { h, Host } from \"@stencil/core\";\nimport { interval, Subject, takeUntil } from \"rxjs\";\nimport { JwtUtil } from \"../../util/jwt-util/jwt-util\";\nimport { sessionTimerTexts as texts } from \"../misc/texte\";\nimport { getShouldBeIgnored } from \"../../util/jwt-util/html-util/html-util\";\nexport class SessionTimer {\n constructor() {\n this.fontSize = 18;\n this.displayDate = '';\n this.displayDateMessage = '';\n this.displayDateMessageScreenreader = '';\n this.svgCirclePath = '';\n this.showMenuButton = false;\n this.showFlyout = false;\n }\n el;\n button;\n flyout;\n size = 0;\n durationInSec = 30 * 60;\n durationInMillis = this.durationInSec * 1000;\n deltaDeg = 360 / this.durationInSec;\n finished = new Subject();\n ticker;\n /**\n * Request a token event form the oiam-oauth-wc\n */\n sendTokenEventEmitter;\n /**\n * Request a session event form the oiam-oauth-wc\n */\n sendSessionEventEmitter;\n closeFlyoutWhenTabbingOut(event) {\n if (event.key !== 'Tab') {\n return;\n }\n const path = event.composedPath();\n const flyout = this.el.shadowRoot.getElementById('headerFlyoutSessionTimer');\n if (!path.includes(flyout) && this.showFlyout) {\n this.hideFlyout();\n }\n }\n componentDidLoad() {\n this.size = this.fontSize / 2;\n this.sendTokenEventEmitter.emit();\n }\n componentDidRender() {\n this.button = this.el.shadowRoot.querySelector('#session-timer-button');\n this.flyout = this.el.shadowRoot.querySelector('#headerFlyoutSessionTimer');\n }\n calculateRemainingTime(tick) {\n let newDuration = this.durationInSec - tick;\n let newMinutes = 0;\n let newSeconds = newDuration;\n if (newDuration >= 60) {\n newMinutes = Math.floor(newDuration / 60);\n newSeconds = newDuration - newMinutes * 60;\n }\n this.displayDate = this.formatTimerDuration(newMinutes + 1, newSeconds);\n this.displayDateMessage = this.formatFlyoutDuration(newMinutes, newSeconds);\n this.displayDateMessageScreenreader = `${newMinutes} Minuten und ${newSeconds} Sekunden`;\n }\n formatTimerDuration(minutes, seconds) {\n return minutes > 1 ? `${this.padTime(minutes)} Min` : `${this.padTime(seconds)} Sek`;\n }\n formatFlyoutDuration(newMinutes, newSeconds) {\n return `${this.padTime(newMinutes)} : ${this.padTime(newSeconds)}`;\n }\n padTime(time) {\n return String(time).padStart(2, '0');\n }\n calculateSvg(timeInSec) {\n let { dx, dy } = this.getCoordinates(timeInSec);\n if (this.isFirstHalf(timeInSec)) {\n return `M${this.size},${this.size} L${this.size},0 A${this.size},${this.size} 1 0,1 ${dx} ,${dy} z`;\n }\n if (this.isSecondHalf(timeInSec)) {\n return `M${this.size},${this.size} L${this.size},0 A${this.size},${this.size} 1 0,1 ${this.size} ,${this.size * 2} A${this.size},${this.size} 1 0,1 ${dx},${dy} z`;\n }\n this.finished.next(true);\n return this.getFinalSvgState();\n }\n isFirstHalf(timeInSec) {\n return timeInSec <= this.durationInSec / 2;\n }\n isSecondHalf(timeInSec) {\n return !this.isFirstHalf(timeInSec) && timeInSec < this.durationInSec;\n }\n getInitialSvgState() {\n let { dx, dy } = this.getCoordinates(0);\n return `M${this.size},${this.size} L${this.size},0 A${this.size},${this.size} 1 0,1 ${dx} ,${dy} z`;\n }\n getFinalSvgState() {\n return `M${this.size},${this.size} L${this.size},0 A${this.size},${this.size} 1 0,1 ${this.size} ,${this.size * 2} A${this.size},${this.size} 1 0,1 ${this.size},0 z`;\n }\n getCoordinates(timeInSec) {\n let deltaRad = this.toRadians(90 - this.deltaDeg * timeInSec);\n let gk = Math.sin(deltaRad) * this.size;\n let ak = Math.cos(deltaRad) * this.size;\n let dx = this.size + ak;\n let dy = this.size - gk;\n return { dx, dy };\n }\n toRadians(angle) {\n return angle * (Math.PI / 180);\n }\n getSvgStyle() {\n return {\n preserveAspectRatio: 'xMidYMid meet',\n viewBox: '0 0 100 100',\n width: `${this.fontSize + 4}px`,\n height: `${this.fontSize + 4}px`,\n };\n }\n getCircleStyle() {\n return {\n transform: 'translate(1px, 1px)',\n };\n }\n getPathStyle() {\n return {\n fill: 'white',\n width: 'fit-content',\n height: 'fit-content',\n transform: 'translate(1px, 1px)',\n };\n }\n getHeaderElemStyle() {\n return {\n width: 'fit-content',\n };\n }\n getSessionSvgStyle() {\n return {\n 'width': 'fit-content',\n 'padding-left': '.5em',\n };\n }\n getFlyoutMessageTimeContainerStyle() {\n return {\n 'display': 'flex',\n 'flex-direction': 'column',\n 'align-items': 'center',\n 'justify-content': 'center',\n 'padding-top': '1em',\n };\n }\n onButtonClick() {\n this.toggleFlyout();\n }\n toggleFlyout() {\n if (this.showFlyout) {\n this.hideFlyout();\n }\n else {\n this.showFlyoutContent();\n }\n }\n showFlyoutContent() {\n this.flyout.classList.add('collapsed');\n this.flyout.classList.remove('collapse');\n this.button.classList.add('collapse');\n this.button.classList.remove('collapsed');\n this.button.ariaExpanded = 'true';\n this.showFlyout = !this.showFlyout;\n }\n hideFlyout() {\n this.flyout.classList.remove('collapsed');\n this.flyout.classList.add('collapse');\n this.button.classList.add('collapsed');\n this.button.classList.remove('collapse');\n this.button.ariaExpanded = 'false';\n this.showFlyout = !this.showFlyout;\n }\n handleClickEvent(event) {\n const path = event.composedPath();\n // This solves a bug. Other Teams are closing their flyouts by creating an additional click on their menu-items.\n // We need to ignore these additional Clicks. Otherwise, our flyout opens and then instantly closes.\n const shouldBeIgnored = getShouldBeIgnored(path);\n if (shouldBeIgnored) {\n return;\n }\n if (!path.includes(this.el) && this.showFlyout) {\n this.hideFlyout();\n }\n }\n handleKeyDown(ev) {\n if (ev.key === 'Escape' && this.showFlyout) {\n this.hideFlyout();\n }\n }\n handleTokenEvent(ev) {\n if (JwtUtil.validateJwt(ev).isValidJwt) {\n this.sendSessionEventEmitter.emit();\n }\n else {\n // we have to hide the component if there is an empty jwt (logout in other tab, browser back etc.)\n if (this.showFlyout) {\n this.hideFlyout();\n }\n this.finished.next(true);\n this.showMenuButton = false;\n }\n }\n handleSessionEvent(ev) {\n let durationInMillis = ev.detail.sessionEnd - Date.now();\n this.setInitialState();\n this.startTimer(ev.detail.sessionEnd);\n this.showMenuButton =\n this.getShowComponent(durationInMillis) &&\n durationInMillis <= this.durationInMillis &&\n durationInMillis > this.durationInMillis - 1000;\n }\n setInitialState() {\n this.resetTimer();\n this.displayDate = this.formatTimerDuration(30, 0);\n this.displayDateMessage = this.formatFlyoutDuration(30, 0);\n this.svgCirclePath = this.getInitialSvgState();\n }\n resetTimer() {\n this.finished.next(true);\n this.ticker = interval(1000);\n }\n startTimer(sessionEnd) {\n let deltaInSec = 0;\n let isConfigured = false;\n this.ticker.pipe(takeUntil(this.finished)).subscribe((tick) => {\n let durationInMillis = sessionEnd - Date.now();\n this.showMenuButton = this.getShowComponent(durationInMillis);\n if (!isConfigured) {\n deltaInSec = Math.ceil((this.durationInMillis - durationInMillis) / 1000) + tick;\n isConfigured = true;\n }\n if (this.showMenuButton) {\n this.setNextSessionState(deltaInSec, tick);\n }\n });\n }\n getShowComponent(durationInMillis) {\n if (durationInMillis > 0) {\n return durationInMillis <= this.durationInMillis;\n }\n return false;\n }\n setNextSessionState(deltaInSec, tick) {\n this.svgCirclePath = this.calculateSvg(tick + deltaInSec);\n this.calculateRemainingTime(tick + deltaInSec);\n }\n render() {\n if (this.showMenuButton) {\n return (h(Host, { class: 'd-block rounded' }, h(\"div\", { class: \"ba-header-element\" }, this.getSessionTimer(), this.getFlyOut())));\n }\n }\n getSessionTimer() {\n return (h(\"button\", { id: \"session-timer-button\", class: \"ba-menu-entry ba-timer collapsed\", title: \"Sitzungsdauer\", type: \"button\", \"data-bs-toggle\": \"collapse\", onClick: () => this.onButtonClick(), \"data-bs-target\": \"#headerFlyoutSessionTimer\", \"aria-expanded\": \"false\", \"aria-controls\": \"headerFlyoutSessionTimer\", style: this.getHeaderElemStyle() }, h(\"svg\", { class: \"session-svg\", style: this.getSvgStyle() }, h(\"circle\", { class: \"circle\", style: this.getCircleStyle(), cx: this.size, cy: this.size, r: this.size + 1 }), h(\"path\", { style: this.getPathStyle(), d: this.svgCirclePath })), h(\"span\", { style: this.getSessionSvgStyle() }, this.displayDate)));\n }\n getFlyOut() {\n return (h(\"div\", { class: \"ba-flyout-container ba-flyout-timer\" }, h(\"div\", { id: \"headerFlyoutSessionTimer\", class: \"ba-flyout-collapse collapse\", \"data-bs-parent\": \".ba-header\" }, h(\"nav\", { class: \"ba-flyout ba-menu-container\", \"aria-label\": \"Mitteilungen\" }, h(\"h2\", null, texts.flyout.headline), h(\"hr\", { role: 'presentation' }), this.getCurrentFlyoutSessionTime(), this.getSessionTimeInfo(), this.getGeneralSessionInfo()))));\n }\n getCurrentFlyoutSessionTime() {\n let ms = ' Minuten Sekunden';\n return [\n h(\"div\", { style: this.getFlyoutMessageTimeContainerStyle(), \"aria-hidden\": \"true\" }, h(\"span\", { class: \"fs-2 timer-text\" }, this.displayDateMessage), h(\"p\", { class: \"timer-description\" }, ms)),\n h(\"span\", { class: \"sr-only\" }, this.displayDateMessageScreenreader),\n ];\n }\n getSessionTimeInfo() {\n return (h(\"div\", { class: \"alert alert-warning\", role: \"note\" }, h(\"h2\", { class: \"ba-heading\" }, \"Hinweis\"), h(\"p\", null, texts.flyout.warning)));\n }\n getGeneralSessionInfo() {\n return h(\"p\", null, texts.flyout.min_5_reminder);\n }\n static get is() { return \"session-timer\"; }\n static get encapsulation() { return \"shadow\"; }\n static get originalStyleUrls() {\n return {\n \"$\": [\"session-timer.scss\"]\n };\n }\n static get styleUrls() {\n return {\n \"$\": [\"session-timer.css\"]\n };\n }\n static get states() {\n return {\n \"fontSize\": {},\n \"displayDate\": {},\n \"displayDateMessage\": {},\n \"displayDateMessageScreenreader\": {},\n \"svgCirclePath\": {},\n \"showMenuButton\": {},\n \"showFlyout\": {}\n };\n }\n static get events() {\n return [{\n \"method\": \"sendTokenEventEmitter\",\n \"name\": \"oiamSendTokenEvent\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Request a token event form the oiam-oauth-wc\"\n },\n \"complexType\": {\n \"original\": \"void\",\n \"resolved\": \"void\",\n \"references\": {}\n }\n }, {\n \"method\": \"sendSessionEventEmitter\",\n \"name\": \"oiamSendSessionEvent\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Request a session event form the oiam-oauth-wc\"\n },\n \"complexType\": {\n \"original\": \"void\",\n \"resolved\": \"void\",\n \"references\": {}\n }\n }];\n }\n static get elementRef() { return \"el\"; }\n static get listeners() {\n return [{\n \"name\": \"keyup\",\n \"method\": \"closeFlyoutWhenTabbingOut\",\n \"target\": \"window\",\n \"capture\": false,\n \"passive\": false\n }, {\n \"name\": \"click\",\n \"method\": \"handleClickEvent\",\n \"target\": \"window\",\n \"capture\": false,\n \"passive\": false\n }, {\n \"name\": \"keydown\",\n \"method\": \"handleKeyDown\",\n \"target\": \"window\",\n \"capture\": false,\n \"passive\": false\n }, {\n \"name\": \"oiamTokenEvent\",\n \"method\": \"handleTokenEvent\",\n \"target\": \"window\",\n \"capture\": false,\n \"passive\": false\n }, {\n \"name\": \"oiamSessionEvent\",\n \"method\": \"handleSessionEvent\",\n \"target\": \"window\",\n \"capture\": false,\n \"passive\": false\n }];\n }\n}\n"],"mappings":"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","ignoreList":[]}