/* eslint-disable @typescript-eslint/consistent-type-assertions */ export * from "./controllers.js"; (function enableScrollPreservation() { /* https://github.com/hotwired/turbo/issues/37#issuecomment-1422200868 */ let scrollTop = 0; let shouldPreserveScroll = false; document.addEventListener("turbo:click", function (event) { if ((event.target as HTMLDivElement).hasAttribute("data-turbo-preserve-scroll")) { shouldPreserveScroll = true; } else { shouldPreserveScroll = false; } }); document.addEventListener("turbo:before-visit", function () { if (shouldPreserveScroll) { scrollTop = document.documentElement.scrollTop; } }); addEventListener("turbo:visit", () => { /* eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-explicit-any */ if (shouldPreserveScroll) { // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-explicit-any (window as any).Turbo.navigator.currentVisit.scrolled = true; document.documentElement.scrollTop = scrollTop; } shouldPreserveScroll = false; }); })();