{"version":3,"sources":["webpack:///./app/components/m/sticky-service-menu/index.js"],"names":["aside","document","querySelector","listItem","querySelectorAll","menuList","backToTop","ariaHidden","footer","isClicked","isTouchDevice","window","navigator","maxTouchPoints","msMaxTouchPoints","url","location","href","urlEnd","endsWith","observerOptions","root","threshold","observerCallback","entries","forEach","entry","isIntersecting","classList","add","remove","footerObserver","IntersectionObserver","observe","addEventListener","e","preventDefault","scroll","top","left","behavior","itemExtend","item","setAttribute","style","transition","itemContract"],"mappings":"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","file":"sticky-service-menu.chunk.js","sourcesContent":["const aside = document.querySelector('.sticky-service-menu');\r\nconst listItem = document.querySelectorAll('.sticky-service-link');\r\nconst menuList = document.querySelectorAll('.sticky-service-menu_list-item');\r\nconst backToTop = document.querySelector('.back-toTop');\r\nconst ariaHidden = 'aria-hidden';\r\nconst footer = document.querySelector('.footer');\r\nlet isClicked = false;\r\nconst isTouchDevice = 'ontouchstart' in window || navigator.maxTouchPoints > 0 || navigator.msMaxTouchPoints > 0;\r\n//const header = document.querySelector('#header');\r\n\r\n// wird vielleicht später benötigt\r\n\r\n// if (aside) {\r\n//   const observerOptions = {\r\n//     root: null, // Observe changes relative to the viewport\r\n//     rootMargin: '300px 0px 0px 0px', // Shift the top boundary upwards by 300px\r\n//     threshold: 0, // Trigger callback when any part of the target is intersecting\r\n//   };\r\n\r\n//   const observerCallback = (entries) => {\r\n//     entries.forEach((entry) => {\r\n//       if (!entry.isIntersecting) {\r\n//         // User has scrolled more than 300px\r\n//         menuList.forEach((item) => {\r\n//           item.classList.add('visible');\r\n//           item.classList.remove('hide');\r\n//         });\r\n//       } else {\r\n//         // User is within the top 300px\r\n//         menuList.forEach((item) => {\r\n//           item.classList.add('hide');\r\n//           item.classList.remove('visible');\r\n//         });\r\n//       }\r\n//     });\r\n//   };\r\n\r\n//   const observer = new IntersectionObserver(observerCallback, observerOptions);\r\n//   observer.observe(header);\r\n// }\r\n\r\n//  variable to check if url ends with /M-133-Sticky-Service-Menu.html or /M-133-Sticky-Service-Menu.html#\r\nconst url = window.location.href;\r\nconst urlEnd = url.endsWith('/M-133-Sticky-Service-Menu.html') || url.endsWith('/M-133-Sticky-Service-Menu.html#');\r\n// die obige Variabel ist nur dafür da, dass die Komponente auf ihrem eigenen Template gut aussieht\r\n\r\nif (footer && aside && !urlEnd) {\r\n  const observerOptions = {\r\n    root: null,\r\n    threshold: 0,\r\n  };\r\n\r\n  const observerCallback = (entries) => {\r\n    entries.forEach((entry) => {\r\n      if (entry.isIntersecting) {\r\n        // footer ist im Sichtbereich\r\n        aside.classList.add('at-footer');\r\n      } else {\r\n        // foter ist nict im Sichtbereich\r\n        aside.classList.remove('at-footer');\r\n      }\r\n    });\r\n  };\r\n\r\n  const footerObserver = new IntersectionObserver(observerCallback, observerOptions);\r\n  footerObserver.observe(footer);\r\n}\r\n\r\nif (backToTop) {\r\n  backToTop.addEventListener('click', (e) => {\r\n    e.preventDefault();\r\n    window.scroll({ top: 0, left: 0, behavior: 'smooth' });\r\n  });\r\n}\r\n\r\nconst itemExtend = (item) => {\r\n  item.setAttribute(ariaHidden, 'false');\r\n  item.style.transition = '300ms ease-out';\r\n  item.classList.add('moveOut');\r\n  item.classList.remove('moveIn');\r\n  item.setAttribute(ariaHidden, 'false');\r\n};\r\n\r\nconst itemContract = (item) => {\r\n  item.setAttribute(ariaHidden, 'true');\r\n  item.classList.add('moveIn');\r\n  item.classList.remove('moveOut');\r\n  item.setAttribute(ariaHidden, 'true');\r\n};\r\n\r\nmenuList.forEach((item) => {\r\n  if (!isTouchDevice) {\r\n    item.addEventListener('focusin', () => {\r\n      itemExtend(item);\r\n    });\r\n    item.addEventListener('focusout', () => {\r\n      itemContract(item);\r\n    });\r\n    item.addEventListener('mouseenter', () => {\r\n      itemExtend(item);\r\n    });\r\n    item.addEventListener('mouseleave', () => {\r\n      itemContract(item);\r\n    });\r\n  }\r\n\r\n  // wird eventuell später benötigt\r\n  // item.addEventListener('touchstart', () => {\r\n  //   if (isClicked === false) {\r\n  //     itemExtend(item);\r\n  //     isClicked = !isClicked;\r\n  //     console.log(isClicked);\r\n  //   } else {\r\n  //     itemContract(item);\r\n  //     isClicked = !isClicked;\r\n  //   }\r\n  // });\r\n});\r\n"],"sourceRoot":""}