{"version":3,"file":"observe.mjs","sources":["../../../src/scroll/observe.ts"],"sourcesContent":["import { ProgressTimeline } from \"../animation/types\"\nimport { cancelFrame, frame } from \"../frameloop\"\n\ntype Update = (progress: number) => void\n\nexport function observeTimeline(update: Update, timeline: ProgressTimeline) {\n    let prevProgress: number\n\n    const onFrame = () => {\n        const { currentTime } = timeline\n        const percentage = currentTime === null ? 0 : currentTime.value\n        const progress = percentage / 100\n\n        if (prevProgress !== progress) {\n            update(progress)\n        }\n\n        prevProgress = progress\n    }\n\n    frame.preUpdate(onFrame, true)\n\n    return () => cancelFrame(onFrame)\n}\n"],"names":[],"mappings":";;AAKgB,SAAA,eAAe,CAAC,MAAc,EAAE,QAA0B,EAAA;AACtE,IAAA,IAAI,YAAoB,CAAA;IAExB,MAAM,OAAO,GAAG,MAAK;AACjB,QAAA,MAAM,EAAE,WAAW,EAAE,GAAG,QAAQ,CAAA;AAChC,QAAA,MAAM,UAAU,GAAG,WAAW,KAAK,IAAI,GAAG,CAAC,GAAG,WAAW,CAAC,KAAK,CAAA;AAC/D,QAAA,MAAM,QAAQ,GAAG,UAAU,GAAG,GAAG,CAAA;AAEjC,QAAA,IAAI,YAAY,KAAK,QAAQ,EAAE;YAC3B,MAAM,CAAC,QAAQ,CAAC,CAAA;SACnB;QAED,YAAY,GAAG,QAAQ,CAAA;AAC3B,KAAC,CAAA;AAED,IAAA,KAAK,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;AAE9B,IAAA,OAAO,MAAM,WAAW,CAAC,OAAO,CAAC,CAAA;AACrC;;;;"}