{"version":3,"sources":["sourcebook.js"],"names":["stickyOffset","navigation","document","querySelector","stickyTrigger","navigationItems","style","getPropertyValue","IntersectionObserver","entries","entry","toggleAttribute","isIntersecting","rootMargin","concat","observe","active","left","offsetLeft","scrollTo","scrollToActiveElement"],"mappings":"CAAA,WACI,IAMUA,EANJC,EAAaC,SAASC,cAAc,0BACpCC,EAAgBF,SAASC,cAAc,yCACvCE,EAAkBJ,EAAWE,cAAc,iCAIvCH,EADOE,SAASC,cAAc,SACVG,MAAMC,iBAAiB,kBAEhC,IAAIC,sBAAqB,SAAAC,GACtC,IAAMC,EAAQD,EAAQ,GAEtBR,EAAWU,gBAAgB,UAAWD,EAAME,eAChD,GAAG,CACCC,WAAU,IAAAC,OAAOd,EAAY,mBAGxBe,QAAQX,GAGS,WAC1B,IAAMY,EAASX,EAAgBF,cAAc,wCAE7C,GAAKa,EAAL,CAIA,IAAMC,EAAOD,EAAOE,WAAa,GAEjCb,EAAgBc,SAAS,CAAEF,KAAAA,GAJ3B,CAKJ,CAGAG,EACH,CAlCD","file":"../../javascript/sourcebook.js","sourcesContent":["(() => {\n    const navigation = document.querySelector('.sourcebook-navigation')\n    const stickyTrigger = document.querySelector('.sourcebook-navigation-sticky-trigger')\n    const navigationItems = navigation.querySelector('.sourcebook-navigation__items')\n\n    const setupScrollObserver = () => {\n        const root = document.querySelector(':root')\n        const stickyOffset = root.style.getPropertyValue('--navStickyTop');\n\n        const observer = new IntersectionObserver(entries => {\n            const entry = entries[0] // we only have one entry so no point in looping\n\n            navigation.toggleAttribute('sticky', !entry.isIntersecting)\n        }, {\n            rootMargin: `-${ stickyOffset } 0px 100% 0px`\n        })\n\n        observer.observe(stickyTrigger)\n    }\n\n    const scrollToActiveElement = () => {\n        const active = navigationItems.querySelector('.sourcebook-navigation__item--active')\n\n        if (!active) {\n            return\n        }\n\n        const left = active.offsetLeft - 16 // 16 is a bit handwavey magic number\n\n        navigationItems.scrollTo({ left })\n    }\n\n    setupScrollObserver()\n    scrollToActiveElement()\n})();\n"],"sourceRoot":"../../../../resources/javascript"}