1/*1786086074000*/ 2"use strict"; 3// raiffeisen navigation 4let raiffeisenMainNavigation = (() => { 5 const app = () => { 6 let adminMenu = document.querySelector(".control-menu-container"); 7 let overlay = document.getElementById('rbhu-overlay'); 8 let siteNavigationMenuItems = document.querySelector('.rbhu-site-navigation-menu-items'); 9 let mainNavigationMenuItems = document.querySelector('.rbhu-main-navigation-menu-items'); 10 let menuCloseButton = document.querySelectorAll('.rbhu-menu-close-button'); 11 let currentSiteUrl = window.location.href; 12 let activatedMobileMenu = 0; 13 let activatedDesktopMenu = 0; 14 let isExactMatch = false; 15 let lastOpenedTrigger = null; 16 17 // Mobil menü 18 let mobileMenuBurgerButton = document.querySelector('.rbhu-main-navigation-menu-burger'); 19 let mobileMenu = document.querySelector('.rbhu-main-navigation-mobile-menu-items'); 20 let burgerIcon = document.querySelector('.rbhu-burger-trigger'); 21 let dropdownMenuContainer; 22 let dropdownMenuItem; 23 if (siteNavigationMenuItems) { 24 dropdownMenuContainer = siteNavigationMenuItems.querySelector('.rbhu-site-navigation-menu-dropdown-container'); 25 } 26 if (dropdownMenuContainer) { 27 dropdownMenuItem = dropdownMenuContainer.querySelectorAll('.rbhu-site-navigation-menu-dropdown'); 28 } 29 30 adminStickyMenuHandle(); 31 checkActiveSite(); 32 handleOverlay(); 33 handleMainMobileMenu(); 34 35 window.closeAllMenus = function () { 36 closeSiteMobileMenu(); 37 closeMainMenu(); 38 closeMainMobileMenu(); 39 } 40 41 function activateSiteMenuElements() { 42 //Site menu 43 const allSiteMenuItemContainers = siteNavigationMenuItems ? siteNavigationMenuItems.querySelectorAll('.rbhu-site-navigation-menu-item-container') : null; 44 const siteMenuDropdownContainer = siteNavigationMenuItems ? siteNavigationMenuItems.querySelector('.rbhu-site-navigation-menu-dropdown-container') : null; 45 const allSiteMenuDropdownContainers = siteMenuDropdownContainer ? siteMenuDropdownContainer.querySelectorAll('.rbhu-site-navigation-menu-dropdown') : null; 46 if (activatedDesktopMenu !== 1 && window.innerWidth > 980) { 47 if (allSiteMenuItemContainers) { 48 allSiteMenuItemContainers.forEach(menuItemContainer => { 49 const siteNavigationMenuItem = menuItemContainer.querySelector('a.rbhu-site-navigation-menu-item'); 50 const siteNavigationMenuItemHref = siteNavigationMenuItem ? siteNavigationMenuItem.getAttribute('href') : null; 51 if (compareWebSegmentsWithExactMatch(siteNavigationMenuItemHref, currentSiteUrl)) { 52 siteNavigationMenuItem.classList.add('active'); 53 isExactMatch = true; 54 } 55 }); 56 if (!isExactMatch) { 57 allSiteMenuItemContainers.forEach(menuItemContainer => { 58 const siteNavigationMenuItem = menuItemContainer.querySelector('a.rbhu-site-navigation-menu-item'); 59 const siteNavigationMenuItemHref = siteNavigationMenuItem ? siteNavigationMenuItem.getAttribute('href') : null; 60 if (compareWebSegments(siteNavigationMenuItemHref, currentSiteUrl)) { 61 siteNavigationMenuItem.classList.add('active'); 62 } 63 }); 64 } 65 } 66 } else if (activatedMobileMenu !== 1 && window.innerWidth <= 980) {
67 if (allSiteMenuDropdownContainers) { 68 allSiteMenuDropdownContainers.forEach(menuDropdownContainer => { 69 const siteNavigationMenuItem = menuDropdownContainer.querySelector('a.rbhu-site-navigation-menu-item'); 70 const siteNavigationMenuItemHref = siteNavigationMenuItem ? siteNavigationMenuItem.getAttribute('href') : null; 71 72 if (compareWebSegmentsWithExactMatch(siteNavigationMenuItemHref, currentSiteUrl)) { 73 siteNavigationMenuItem.classList.add('active'); 74 isExactMatch = true; 75 } 76 }); 77 if (!isExactMatch) { 78 allSiteMenuDropdownContainers.forEach(menuDropdownContainer => { 79 const siteNavigationMenuItem = menuDropdownContainer.querySelector('a.rbhu-site-navigation-menu-item'); 80 const siteNavigationMenuItemHref = siteNavigationMenuItem ? siteNavigationMenuItem.getAttribute('href') : null; 81 82 if (compareWebSegments(siteNavigationMenuItemHref, currentSiteUrl)) { 83 siteNavigationMenuItem.classList.add('active'); 84 } 85 }); 86 } 87 } 88 } 89 } 90 91 window.activateMobileMenuElements = () => { 92 //Mobile/tablet menu 93 const allMobileMenuContainer = mobileMenu ? mobileMenu.querySelectorAll('.rbhu-menu-container') : null; 94 95 if (allMobileMenuContainer) { 96 allMobileMenuContainer.forEach(function (menuContainer) { 97 const menuContainerLink = menuContainer.querySelector('a.rbhu-menu-item'); 98 const menuContainerLinkHref = menuContainerLink.getAttribute('href'); 99 100 if (isPathContainsLink(menuContainerLinkHref, currentSiteUrl)) { 101 menuContainerLink.classList.add('selected') 102 } else { 103 const mobileNavigationContent = menuContainer ? menuContainer.querySelector('.rbhu-mobile-navigation-content') : null; 104 const ulMenuBlock = mobileNavigationContent ? mobileNavigationContent.querySelector('ul.rbhu-menu-blocks') : null; 105 const menuItemListElements = ulMenuBlock ? ulMenuBlock.querySelectorAll('li.rbhu-menu-item') : null; 106 if (menuItemListElements) { 107 menuItemListElements.forEach(menuItemListElement => { 108 const columnTitleLink = menuItemListElement.querySelector('a.rbhu-column-title'); 109 const columnTitleLinkHref = columnTitleLink ? columnTitleLink.getAttribute('href') : null; 110 if (isPathContainsLink(columnTitleLinkHref, currentSiteUrl)) { 111 columnTitleLink.classList.add('selected'); 112 menuItemListElement.classList.add('selected'); 113 mobileNavigationContent.classList.add('show'); 114 menuContainerLink.classList.add('visited'); 115 } else { 116 const columnTitleUnlinkLinks = menuItemListElement.querySelectorAll('.openable'); 117 118 columnTitleUnlinkLinks.forEach(function (columnTitleUnlinkLink) { 119 const blockContent = menuItemListElement.querySelector('.rbhu-block-content'); 120 const level3MenuElementsBlock = blockContent ? blockContent.querySelector('.rbhu-level-3-menu-elements') : null; 121 const level3MenuElements = level3MenuElementsBlock ? level3MenuElementsBlock.querySelectorAll('.rbhu-level-3-menu-element') : null; 122 level3MenuElements.forEac
122h(function (level3MenuElement) { 123 const level3BlockContentLinks = level3MenuElement ? level3MenuElement.querySelectorAll('.rbhu-block-content-link') : null; 124 level3BlockContentLinks.forEach(function (level3BlockContentLink) { 125 const level3BlockContentLinkHref = level3BlockContentLink ? level3BlockContentLink.getAttribute('href') : null; 126 127 if (isPathContainsLink(level3BlockContentLinkHref, currentSiteUrl)) { 128 level3BlockContentLink.classList.add('selected'); 129 columnTitleUnlinkLink.classList.add('visited'); 130 menuContainerLink.classList.add('visited'); 131 blockContent.classList.add('show'); 132 mobileNavigationContent.classList.add('show'); 133 } 134 }); 135 }); 136 }); 137 } 138 }); 139 } 140 } 141 }); 142 } 143 } 144 145 window.activateDesktopMenuElements = () => { 146 //Desktop menu 147 const allDesktopMenuContainer = mainNavigationMenuItems ? mainNavigationMenuItems.querySelectorAll('.rbhu-menu-container') : null; 148 if (allDesktopMenuContainer) { 149 allDesktopMenuContainer.forEach(function (menuContainer) { 150 const menuContainerLink = menuContainer.querySelector('a.body-regular'); 151 const menuContainerLinkHref = menuContainerLink.getAttribute('href'); 152 153 if (isPathContainsLink(menuContainerLinkHref, currentSiteUrl)) { 154 menuContainerLink.classList.add('selected') 155 menuContainer.classList.add('selected'); 156 } else { 157 const mainNavigationDropdown = menuContainer.querySelector('.rbhu-main-navigation-content'); 158 const menuHeaderLink = mainNavigationDropdown ? mainNavigationDropdown.querySelector('a.rbhu-menu-header-link') : null; 159 const menuHeaderLinkHref = menuHeaderLink ? menuHeaderLink.getAttribute('href') : null; 160 if (isPathContainsLink(menuHeaderLinkHref, currentSiteUrl)) { 161 menuHeaderLink.classList.add('selected') 162 menuContainer.classList.add('selected'); 163 } else { 164 const menuColumns = mainNavigationDropdown ? mainNavigationDropdown.querySelectorAll('.rbhu-menu-column') : null; 165 if (menuColumns) { 166 menuColumns.forEach(function (menuColumn) { 167 const columnTitleLink = menuColumn.querySelector('a.rbhu-column-title'); 168 const columnTitleLinkHref = columnTitleLink ? columnTitleLink.getAttribute('href') : null; 169 if (isPathContainsLink(columnTitleLinkHref, currentSiteUrl)) { 170 columnTitleLink.classList.add('selected'); 171 menuContainerLink.classList.add('visited'); 172 menuContainer.classList.add('selected'); 173 } else { 174 const menuBlockContents = menuColumn.querySelectorAll('.rbhu-block-content'); 175 menuBlockContents.forEac
175h(function (blockContent) { 176 const blockContentLink = blockContent.querySelector('a.rbhu-block-content-link'); 177 const blockContentLinkHref = blockContentLink ? blockContentLink.getAttribute('href') : null; 178 if (isPathContainsLink(blockContentLinkHref, currentSiteUrl)) { 179 blockContentLink.classList.add('selected'); 180 menuContainerLink.classList.add('visited'); 181 menuContainer.classList.add('selected'); 182 } 183 }); 184 } 185 }); 186 } 187 } 188 } 189 }); 190 } 191 } 192 193 // Admin nézetben ne ragadjon fel a menü 194 function adminStickyMenuHandle() { 195 if (!adminMenu) { 196 window.onscroll = function () { 197 functionStickyNavBar(); 198 }; 199 200 let mainMenuNavBar = document.getElementById("mainMenuNavBar"); 201 let subMenuNavBars = document.querySelectorAll("#subMenuNavBar"); 202 let mobileSubMenuNavBars = document.querySelectorAll("#mobileStickySubMenuNavBar"); 203 let stickyPoz = mainMenuNavBar.offsetTop; 204 205 function functionStickyNavBar() { 206 if ((window.pageYOffset || document.documentElement.scrollTop) >= stickyPoz) { 207 mainMenuNavBar.classList.add("stickyNavBar");
208 subMenuNavBars.forEach(function (subMenuNavBar) { 209 subMenuNavBar.classList.add("stickySubMenuNavBar"); 210 }); 211 mobileSubMenuNavBars.forEach(function (mobileSubMenuNavBar) { 212 mobileSubMenuNavBar.classList.add("mobileStickySubMenuNavBar"); 213 }); 214 } else { 215 mainMenuNavBar.classList.remove("stickyNavBar"); 216 subMenuNavBars.forEach(function (subMenuNavBar) { 217 subMenuNavBar.classList.remove("stickySubMenuNavBar"); 218 }); 219 mobileSubMenuNavBars.forEach(function (mobileSubMenuNavBar) { 220 mobileSubMenuNavBar.classList.remove("mobileStickySubMenuNavBar"); 221 }); 222 } 223 } 224 } 225 } 226 227 function checkActiveSite() { 228 if (siteNavigationMenuItems != null) { 229 const menuItem = siteNavigationMenuItems.querySelectorAll('.rbhu-site-navigation-menu-item'); 230 menuItem.forEach(item => { 231 const menuItemUrlHref = item.getAttribute('data-url'); 232 if (menuItemUrlHref) { 233 const parts = menuItemUrlHref.split('/').slice(3); 234 const thirdPartOnwards = parts.join('/'); 235 236 if (thirdPartOnwards && currentSiteUrl.includes(thirdPartOnwards)) { 237 item.classList.add('active'); 238 } 239 } 240 }); 241 } 242 243 if (mainNavigationMenuItems != null) { 244 const menuContainer = mainNavigationMenuItems.querySelectorAll('.rbhu-menu-container'); 245 menuContainer.forEach(container => { 246 const menuContainerUrl = container.querySelector('a'); 247 248 if (!menuContainerUrl.getAttribute('data-url')) { 249 menuContainerUrl.addEventListener('click', toggleMainMenu); 250 } 251 }); 252 } 253 } 254 255 function showOrHideMobileSiteMenu() { 256 activateSiteMenuElements(); 257 let menuContainer; 258 let dropdownMenuItemContainers; 259 let currentSiteButton; 260 261 /* Ha megvan nyitva a mobilmenü, akkor zárja be nagyobb felbontásra váltáskor */ 262 mobileMenu = document.getElementById('mobileStickySubMenuNavBar'); 263 if (mobileMenu && mobileMenu.classList.contains('show') && window.innerWidth > 1200) { 264 closeAllMenus(); 265 } 266 267 if (siteNavigationMenuItems) { 268 dropdownMenuItemContainers = siteNavigationMenuItems.querySelectorAll('.rbhu-site-navigation-menu-dropdown'); 269 currentSiteButton = siteNavigationMenuItems.querySelector('.rbhu-site-navigation-current-site-button'); 270 } 271 if (window.innerWidth <= 980) { 272 if (dropdownMenuItemContainers) { 273 dropdownMenuItemContainers.forEach(item => { 274 const activeLink = item.querySelector('a.active'); 275 276 if (activeLink) { 277 currentSiteButton.textContent = activeLink.textContent; 278 } 279 }); 280 } 281 282 if (currentSiteButton) { 283 currentSiteButton.addEventListener('click', toggleSiteMobileMenu); 284 } 285 } else { 286 if (menuContainer) { 287 menuContainer.style.display = 'flex'; 288 } 289 if (dropdownMenuContainer) { 290 dropdownMenuContainer.classList.remove('show'); 291 } 292 if (siteNavigationMenuItems) { 293 siteNavigationMenuItems.classList.remove('active'); 294 } 295 } 296 } 297 298 function toggleMainMenu(event) { 299 event.preventDefault(); 300 301 let button = event.target.closest('a.body-regular'); 302 let menuContainer = button.closest('.rbhu-menu-container'); 303 let content = menuContainer.querySelector('.rbhu-main-navigation-content'); 304 305 if (!content) return; 306 307 if (content.classList.contains('show')) { 308 content.classList.remove('show'); 309 button.classList.remove('active'); 310 button.setAttribute('aria-expanded', 'false'); 311 if (overlay) { 312 overlay.classList.remove('show'); 313 } 314 } else { 315 closeMainMenu(); 316 317 content.classList.add('show'); 318 button.classList.add('active'); 319 button.setAttribute('aria-expanded', 'true'); 320 if (overlay) { 321 overlay.classList.add('show'); 322 } 323 } 324 325 if (menuCloseButton) { 326 menuCloseButton.forEach(closeButton => { 327 closeButton.addEventListener('click', closeMainMenu); 328 }); 329 } 330 } 331 332 function toggleSiteMobileMenu(event) { 333 event.preventDefault(); 334 335 // Bezárjuk a fÅ menüt mielÅtt kinyitjuk a site választó menüt 336 closeMainMobileMenu(); 337 338 if (dropdownMenuContainer) { 339 toggleMenu(dropdownMenuContainer, siteNavigationMenuItems, true); 340 341 dropdownMenuContainer.addEventListener('click', function () { 342 closeSiteMobileMenu(); 343 }); 344 } 345 } 346 347 function handleOverlay() { 348 if (overlay) { 349 overlay.addEventListener('click', function () { 350 closeAllMenus(); 351 document.body.classList.remove('scroll-lock'); 352 document.querySelector('html').classList.remove('scroll-lock'); 353 }) 354 } 355 } 356 357 function handleMainMobileMenu() { 358 if (mobileMenuBurgerButton && burgerIcon && mobileMenu) { 359 mobileMenuBurgerButton.addEventListener('click', function () { 360 closeEverythingInMobileMenu(); 361 toggleMenu(mobileMenu, burgerIcon, true); 362 }); 363 } 364 } 365 366 367 function closeMainMenu() { 368 let subMenuContent = document.querySelector('.rbhu-main-navigation-content.show'); 369 let activeMenuItem = document.querySelector('.body-regular.active'); 370 if (subMenuContent && activeMenuItem) { 371 subMenuContent.classList.remove('show'); 372 activeMenuItem.classList.remove('active'); 373 activeMenuItem.setAttribute('aria-expanded', 'false'); 374 } 375 if (overlay) { 376 overlay.classList.remove('show'); 377 } 378 } 379 380 function closeMainMobileMenu() { 381 closeEverythingInMobileMenu(); 382 383 if (mobileMenu) { 384 mobileMenu.classList.remove('show'); 385 } 386 if (burgerIcon) { 387 burgerIcon.classList.remove('active'); 388 } 389 if (overlay) { 390 overlay.classList.remove('show'); 391 } 392 } 393 394 function closeEverythingInMobileMenu() { 395 const allElements = mobileMenu ? mobileMenu.querySelectorAll('.show, .visited') : null; 396 397 if (allElements) {
398 allElements.forEach(element => { 399 element.classList.remove('show', 'visited'); 400 }); 401 } 402 } 403 404 function closeSiteMobileMenu() { 405 if (dropdownMenuContainer) { 406 dropdownMenuContainer.classList.remove('show'); 407 } 408 if (siteNavigationMenuItems) { 409 siteNavigationMenuItems.classList.remove('active'); 410 } 411 if (overlay) { 412 overlay.classList.remove('show'); 413 } 414 document.body.classList.remove('scroll-lock'); 415 document.querySelector('html').classList.remove('scroll-lock'); 416 } 417 418 function toggleMenu(menuElement, button, withScrollLock) { 419 activateMobileMenuElements(); 420 activateDesktopMenuElements() 421 let isAlreadyActive = menuElement ? menuElement.classList.contains('show') : false; 422 423 if (isAlreadyActive) { 424 if (menuElement) { 425 menuElement.classList.remove('show'); 426 } 427 button.classList.remove('active'); 428 overlay.classList.remove('show'); 429 if (withScrollLock) { 430 document.body.classList.remove('scroll-lock'); 431 document.querySelector('html').classList.remove('scroll-lock'); 432 } 433 } else { 434 if (menuElement) { 435 menuElement.classList.add('show'); 436 } 437 button.classList.add('active'); 438 overlay.classList.add('show'); 439 if (withScrollLock) { 440 document.body.classList.add('scroll-lock'); 441 document.querySelector('html').classList.add('scroll-lock'); 442 } 443 } 444 } 445 446 const openableItems = document.querySelectorAll('.rbhu-menu-item.openable'); 447 openableItems.forEach(item => { 448 item.addEventListener('click', function () { 449 const mobileContent = item.nextElementSibling; 450 if (mobileContent.classList.contains('rbhu-mobile-navigation-content')) { 451 mobileContent.classList.toggle('show'); 452 item.classList.toggle('visited'); 453 } 454 }); 455 }); 456 457 const menuBlocks = document.querySelectorAll('.rbhu-menu-blocks'); 458 menuBlocks.forEach(block => { 459 const listItems = block.querySelectorAll('li'); 460 listItems.forEach(item => { 461 const openable = item.querySelector('.rbhu-column-title.openable'); 462 if (openable) { 463 item.addEventListener('click', function () { 464 const itemContent = item.querySelector('.rbhu-block-content'); 465 if (itemContent) { 466 itemContent.classList.toggle('show'); 467 openable.classList.toggle('visited'); 468 } 469 }); 470 } 471 }); 472 }); 473 474 const columnTitleUnlinkItems = document.querySelectorAll('.rbhu-column-title-unlink.openable'); 475 columnTitleUnlinkItems.forEach(item => { 476 item.addEventListener('click', function () { 477 const blockContent = item.nextElementSibling; // A következŠelem a 'rbhu-block-content' 478 if (blockContent && blockContent.classList.contains('rbhu-block-content')) { 479 blockContent.classList.toggle('show'); 480 item.classList.toggle('visited'); 481 } 482 }); 483 }); 484 485 let desktopMenu = document.querySelector('.rbhu-desktop-menu'); 486 let menuItems; 487 if (desktopMenu) { 488 menuItems = desktopMenu.querySelectorAll('.rbhu-menu-blocks > li'); 489 } 490 let openStates = {}; 491 492 if (menuItems) {
493 menuItems.forEach(function (menuItem) { 494 let correspondingDivs = desktopMenu.querySelectorAll('.rbhu-menu-blocks > div.' + menuItem.className); 495 if (correspondingDivs.length > 0) { 496 openStates[menuItem.className] = false; 497 498 let anchor = menuItem.querySelector('a'); 499 if (anchor) { 500 anchor.addEventListener('click', function () { 501 let isOpen = openStates[menuItem.className]; 502 if (isOpen) { 503 correspondingDivs.forEach(function (div) { 504 div.style.display = 'none'; 505 }); 506 openStates[menuItem.className] = false; 507 } else { 508 correspondingDivs.forEach(function (div) { 509 div.style.display = 'block'; 510 }); 511 openStates[menuItem.className] = true; 512 } 513 514 anchor.classList.toggle('visited'); 515 }); 516 } 517 } 518 }); 519 } 520 521 let resizeTimer; 522 window.addEventListener('resize', function () { 523 clearTimeout(resizeTimer); 524 resizeTimer = setTimeout(showOrHideMobileSiteMenu, 200); 525 }); 526 window.addEventListener('load', showOrHideMobileSiteMenu); 527 window.addEventListener('load', activateSiteMenuElements); 528 window.addEventListener('load', activateMobileMenuElements); 529 window.addEventListener('load', activateDesktopMenuElements); 530 531 function isPathContainsLink(link, path) { 532 if (path && link) { 533 const lastSegmentPath = getLastSegmentFromPath(path); 534 const lastSegmentLink = getLastSegmentFromPath(link); 535 return lastSegmentPath !== '' && lastSegmentLink !== '' && lastSegmentPath === lastSegmentLink; 536 } 537 return false; 538 } 539 540 function compareWebSegmentsWithExactMatch(urlInput, pathInput) { 541 const url = new URL(pathInput); 542 const urlPathName = url.pathname; 543 const pathSegments = urlPathName.replace(/\/web\/[^\/]*\//, '/'); 544 const urlInputSegment = urlInput.replace(/\/web\/[^\/]*\//, '/'); 545 return pathSegments === urlInputSegment; 546 } 547 548 function compareWebSegments(urlInput, pathInput) { 549 const pathSegments = pathInput.split('/').filter(Boolean); 550 const urlSegments = urlInput.split('/').filter(Boolean); 551 552 const noProtocol = pathInput.replace(/^https?:\/\//, ''); 553 const domain = noProtocol.split('/')[0]; 554 const subdomain = domain.split(/[.-]/)[0]; 555 556 for (let i = pathSegments.length - 1; i >= 0; i--) { 557 const pathSegment = pathSegments[i]; 558 const urlSegment = urlSegments[urlSegments.length - 1]; 559 560 if (pathSegment === urlSegment) { 561 return true; 562 } 563 564 if (/\.(hu|com|net|org|eu|gov)$/.test(pathSegment)) { 565 break; 566 } 567 } 568 569 return subdomain === urlSegments[urlSegments.length - 1]; 570 } 571 572 function getLastSegmentFromPath(url) { 573 // Vizsgáljuk csak a ? elÅtti részt 574 const queryIndex = url.indexOf('?'); 575 if (queryIndex !== -1) { 576 url = url.slice(0, queryIndex); 577 } 578 579 const huIndex = url.indexOf('.hu'); 580 let slicedUrl = url; 581 if (huIndex !== -1) { 582 slicedUrl = url.slice(huIndex + 4); 583 const segments = slicedUrl.split('/'); 584 slicedUrl = segments[segments.length - 1]; 585 } 586 587 if (slicedUrl.startsWith('web/') || slicedUrl.startsWith('/web/')) { 588 // TávolÃtsuk el a /web/ részt 589 const remainingPath = slicedUrl.startsWith('/web/') ? slicedUrl.slice(5) : slicedUrl.slice(4); 590 // Szétbontás a / karakter mentén, és az utolsó rész visszaadása 591 const segments = remainingPath.split('/'); 592 return segments[segments.length - 1]; 593 } 594 595 return slicedUrl; 596 } 597 598 document.querySelectorAll('[aria-haspopup="true"]').forEach(trigger => { 599 const submenuId = trigger.getAttribute('aria-controls'); 600 const submenu = document.getElementById(submenuId); 601 602 if (!submenu) return; 603 604 trigger.addEventListener('click', () => { 605 const expanded = trigger.getAttribute('aria-expanded') === 'true'; 606 trigger.setAttribute('aria-expanded', !expanded); 607 submenu.hidden = expanded; 608 609 if (!expanded) { 610 lastOpenedTrigger = trigger; 611 612 // Töröljük az elÅzÅ 'data-last-focus' jelölést 613 submenu.querySelectorAll('[data-last-focus]').forEach(el => { 614 el.removeAttribute('data-last-focus'); 615 }); 616 617 const activeItem = submenu.querySelector('a.body-regular.active'); 618 if (activeItem) { 619 activeItem.setAttribute('data-last-focus', 'true'); 620 activeItem.focus(); 621 } else { 622 const focusable = submenu.querySelector('a, button, input, [tabindex]:not
622([tabindex="-1"])'); 623 if (focusable) { 624 focusable.setAttribute('data-last-focus', 'true'); 625 focusable.focus(); 626 } 627 } 628 } 629 }); 630 }); 631 632 document.addEventListener('keydown', (e) => { 633 const active = document.activeElement; 634 const submenu = document.querySelector('.rbhu-main-navigation-content.show'); 635 636 switch (e.key) { 637 case 'Escape': 638 if (submenu) { 639 e.preventDefault(); 640 closeMainMenu(); 641 642 // submenu parent div 643 const menuContainer = submenu.closest('.rbhu-menu-container'); 644 645 // visszakeresés: submenu-t nyitó gomb 646 const triggerLink = menuContainer?.querySelector('a.body-regular[aria-controls]'); 647 if (triggerLink) { 648 triggerLink.focus(); 649 } 650 } 651 break; 652 653 case 'ArrowDown': 654 if (active && active.matches('a.body-regular')) { 655 e.preventDefault(); 656 657 const links = Array.from(document.querySelectorAll('a.body-regular')); 658 const index = links.indexOf(active); 659 660 if (index > -1 && index < links.length - 1) { 661 links[index + 1].focus(); 662 } 663 } 664 break; 665 666 case 'ArrowUp': 667 if (active && active.matches('a.body-regular')) { 668 e.preventDefault(); 669 670 const links = Array.from(document.querySelectorAll('a.body-regular')); 671 const index = links.indexOf(active); 672 673 if (index > 0) { 674 links[index - 1].focus(); 675 } 676 } 677 break; 678 679 case 'Tab': 680 if (submenu) { 681 setTimeout(() => { 682 const focusedNow = document.activeElement; 683 if (!submenu.contains(focusedNow)) { 684 closeMainMenu(); 685 } 686 }, 0); 687 } 688 break; 689 690 } 691 }); 692 }; 693 694 return { 695 app: app, 696 }; 697 } 698) 699();
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.