/*!
 * bforge sitepackage v1.0.0 (https://brainforge.at)
 * Copyright 2023-2024 Philip Grussmann
 * Licensed under the GPL-2.0-or-later license
 */
import{listenForIntersection}from"intersectionObserver";import{debug}from"Debug";import{userInteractionPromise,startup}from"promiseHelpers";let ScrollObserverOptions={rootMargin:"0% 0% -15% 0%",once:!1},debugScrollObserver=debug("scrollObserver");startup({promise:userInteractionPromise,emitters:[{emitter:document,events:["turbo:load"]}]},({trigger:e,event:r})=>{debugScrollObserver&&(console.log("init scrollObserver"),"promise"===e&&console.log("Promise triggered"),"event"===e)&&console.log("Event triggered",r);e=document.querySelectorAll("#mainContent > .frame-container, #mainContent > .frame-container-fluid, #pageFooter > .container");let{innerHeight:s,innerWidth:i}=window,o=(debugScrollObserver&&console.groupCollapsed("Targets"),e.forEach(e=>{var{top:r,left:o,bottom:t,right:n}=e.getBoundingClientRect();(0<r&&r<s||0<t&&t<s)&&(0<o&&o<i||0<n&&n<i)?debugScrollObserver&&console.log("Target is visible, don't fade out",e):(debugScrollObserver&&console.log("Fade out target",e),e.classList.add("notInViewport"))}),debugScrollObserver&&console.groupEnd(),listenForIntersection((e,r)=>{e?(debugScrollObserver&&console.log(`Target: ${r.tagName}#${r.id} => is in viewport`),r.classList.add("inViewport"),r.classList.remove("notInViewport")):!0!==ScrollObserverOptions.once&&(debugScrollObserver&&console.log(`Target: ${r.tagName}#${r.id} => is not in viewport`),r.classList.add("notInViewport"),r.classList.remove("inViewport"))},{element:e,options:{...ScrollObserverOptions}}));document.addEventListener("turbo:before-render",()=>{o?.disconnect()},{once:!0})});