{"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":";;;;;;;;;;AAAA,MAAMA,KAAK,GAAGC,QAAQ,CAACC,aAAa,CAAC,sBAAsB,CAAC;AAC5D,MAAMC,QAAQ,GAAGF,QAAQ,CAACG,gBAAgB,CAAC,sBAAsB,CAAC;AAClE,MAAMC,QAAQ,GAAGJ,QAAQ,CAACG,gBAAgB,CAAC,gCAAgC,CAAC;AAC5E,MAAME,SAAS,GAAGL,QAAQ,CAACC,aAAa,CAAC,aAAa,CAAC;AACvD,MAAMK,UAAU,GAAG,aAAa;AAChC,MAAMC,MAAM,GAAGP,QAAQ,CAACC,aAAa,CAAC,SAAS,CAAC;AAChD,IAAIO,SAAS,GAAG,KAAK;AACrB,MAAMC,aAAa,GAAG,cAAc,IAAIC,MAAM,IAAIC,SAAS,CAACC,cAAc,GAAG,CAAC,IAAID,SAAS,CAACE,gBAAgB,GAAG,CAAC;AAChH;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,MAAMC,GAAG,GAAGJ,MAAM,CAACK,QAAQ,CAACC,IAAI;AAChC,MAAMC,MAAM,GAAGH,GAAG,CAACI,QAAQ,CAAC,iCAAiC,CAAC,IAAIJ,GAAG,CAACI,QAAQ,CAAC,kCAAkC,CAAC;AAClH;;AAEA,IAAIX,MAAM,IAAIR,KAAK,IAAI,CAACkB,MAAM,EAAE;EAC9B,MAAME,eAAe,GAAG;IACtBC,IAAI,EAAE,IAAI;IACVC,SAAS,EAAE;EACb,CAAC;EAED,MAAMC,gBAAgB,GAAIC,OAAO,IAAK;IACpCA,OAAO,CAACC,OAAO,CAAEC,KAAK,IAAK;MACzB,IAAIA,KAAK,CAACC,cAAc,EAAE;QACxB;QACA3B,KAAK,CAAC4B,SAAS,CAACC,GAAG,CAAC,WAAW,CAAC;MAClC,CAAC,MAAM;QACL;QACA7B,KAAK,CAAC4B,SAAS,CAACE,MAAM,CAAC,WAAW,CAAC;MACrC;IACF,CAAC,CAAC;EACJ,CAAC;EAED,MAAMC,cAAc,GAAG,IAAIC,oBAAoB,CAACT,gBAAgB,EAAEH,eAAe,CAAC;EAClFW,cAAc,CAACE,OAAO,CAACzB,MAAM,CAAC;AAChC;AAEA,IAAIF,SAAS,EAAE;EACbA,SAAS,CAAC4B,gBAAgB,CAAC,OAAO,EAAGC,CAAC,IAAK;IACzCA,CAAC,CAACC,cAAc,EAAE;IAClBzB,MAAM,CAAC0B,MAAM,CAAC;MAAEC,GAAG,EAAE,CAAC;MAAEC,IAAI,EAAE,CAAC;MAAEC,QAAQ,EAAE;IAAS,CAAC,CAAC;EACxD,CAAC,CAAC;AACJ;AAEA,MAAMC,UAAU,GAAIC,IAAI,IAAK;EAC3BA,IAAI,CAACC,YAAY,CAACpC,UAAU,EAAE,OAAO,CAAC;EACtCmC,IAAI,CAACE,KAAK,CAACC,UAAU,GAAG,gBAAgB;EACxCH,IAAI,CAACd,SAAS,CAACC,GAAG,CAAC,SAAS,CAAC;EAC7Ba,IAAI,CAACd,SAAS,CAACE,MAAM,CAAC,QAAQ,CAAC;EAC/BY,IAAI,CAACC,YAAY,CAACpC,UAAU,EAAE,OAAO,CAAC;AACxC,CAAC;AAED,MAAMuC,YAAY,GAAIJ,IAAI,IAAK;EAC7BA,IAAI,CAACC,YAAY,CAACpC,UAAU,EAAE,MAAM,CAAC;EACrCmC,IAAI,CAACd,SAAS,CAACC,GAAG,CAAC,QAAQ,CAAC;EAC5Ba,IAAI,CAACd,SAAS,CAACE,MAAM,CAAC,SAAS,CAAC;EAChCY,IAAI,CAACC,YAAY,CAACpC,UAAU,EAAE,MAAM,CAAC;AACvC,CAAC;AAEDF,QAAQ,CAACoB,OAAO,CAAEiB,IAAI,IAAK;EACzB,IAAI,CAAChC,aAAa,EAAE;IAClBgC,IAAI,CAACR,gBAAgB,CAAC,SAAS,EAAE,MAAM;MACrCO,UAAU,CAACC,IAAI,CAAC;IAClB,CAAC,CAAC;IACFA,IAAI,CAACR,gBAAgB,CAAC,UAAU,EAAE,MAAM;MACtCY,YAAY,CAACJ,IAAI,CAAC;IACpB,CAAC,CAAC;IACFA,IAAI,CAACR,gBAAgB,CAAC,YAAY,EAAE,MAAM;MACxCO,UAAU,CAACC,IAAI,CAAC;IAClB,CAAC,CAAC;IACFA,IAAI,CAACR,gBAAgB,CAAC,YAAY,EAAE,MAAM;MACxCY,YAAY,CAACJ,IAAI,CAAC;IACpB,CAAC,CAAC;EACJ;;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AACF,CAAC,CAAC,C","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":""}